Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp536805rwd; Thu, 1 Jun 2023 03:42:51 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4BVZnY8b8CXbhCTytvrpWDfR/r68KUSgX2JVVcQH3tPSt2l1ZBepJ1Euv/5divPufvGTI6 X-Received: by 2002:a05:6a21:999f:b0:102:a593:a17c with SMTP id ve31-20020a056a21999f00b00102a593a17cmr1927314pzb.0.1685616170772; Thu, 01 Jun 2023 03:42:50 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1685616170; cv=pass; d=google.com; s=arc-20160816; b=Ou6xZre8kiFB8hilUNvhpd1HGETYfBtktmteaY9jTXeIwq2Fm6ys2jZAsmdN4y3GQI eCJwghD9QjcJEDQPwmcDbd37cHn+kdbMcv7g1u1T4LTsGJ2z/9oK6BoNh0XmlB96XSud YW4bVS7rSx5dQsFvVnGLtmL5j4n4AGIaEHunbjziAy1PRPiSngq0Tu94enMaC8ShgdAe enSDvaT7+f0DMUcF2wC6flxJi8yOfhFMAJ2W39Lrvl00X/rK5POG09qJ+GO8HYSh0EG4 epzxiabBQWEN1TvoL/Kw3nqOUYiJNplzO5q7KOvghCA/OxsY4Y7wZ77CIgx/eRvsNViY T5/g== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=AXAmPFXHHncGGwvb6wdr5caSPC/AP2e40M9tgi2x79Y=; b=Tvjna14TpT5S9DMR7E59xemHtk0qvWuI3c3v/GrZerf2HmL5yJI9Smt37fadBOcml9 GAxicjoODWmxNtmv9GBuPOgzF+XsK82V14ipklo22QITSCYsIyoIMIr+VjDTheeVeGmB BI9i4BJA8RgZj9DHgvdRwzrfGRoUNilGUf4fVSsFScMJfWRAc7WjTm3UhmSdUFPneoc3 19cz0EtsiUWqe1s0vTRbMEtsdYpz9FyKPNK9xdTh6iTfh/TNz2ikfEm+ep/FHtMdXSwX q6ifcvJa/2/F6LLNIiD5j2bczrOyM0It88Z2hcnDZegwdcr2QjpW+5nspN23L+l2jcG5 jM9g== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@microchip.com header.s=mchp header.b=h3Sgl+ft; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=KTnlzZsC; arc=pass (i=1 spf=pass spfdomain=microchip.com dkim=pass dkdomain=microchip.com dmarc=pass fromdomain=microchip.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j185-20020a636ec2000000b0051f7686dfb7si2552689pgc.189.2023.06.01.03.42.36; Thu, 01 Jun 2023 03:42:50 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@microchip.com header.s=mchp header.b=h3Sgl+ft; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=KTnlzZsC; arc=pass (i=1 spf=pass spfdomain=microchip.com dkim=pass dkdomain=microchip.com dmarc=pass fromdomain=microchip.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232425AbjFAKcF (ORCPT + 99 others); Thu, 1 Jun 2023 06:32:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38552 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232302AbjFAKb5 (ORCPT ); Thu, 1 Jun 2023 06:31:57 -0400 Received: from esa.microchip.iphmx.com (esa.microchip.iphmx.com [68.232.153.233]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4C567124; Thu, 1 Jun 2023 03:31:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1685615514; x=1717151514; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=AXAmPFXHHncGGwvb6wdr5caSPC/AP2e40M9tgi2x79Y=; b=h3Sgl+ftICKD74HBiECDadojyCyIhcb2uSMPtFi2Ugr+x7n8tBsBVi0z aee6o7q5voXuIKt2l5cAvomelyL+9tEQMBRfFPSuEvMhcyrwFVZc85V1H G45KlRJ22Ujnxc0G3dRd1w6cgF6QToIu+VW4XvIY3Cl9JlsGr5C0lS6cL CMlHC9zkyTpzdRc49/pWMo7Y1LwAs4EDhpiYt1x172ee4hlthulJWVXkI j1loW+ld+MmK28mY3vwPag2Oo/6aq5sJfdqt6BA78JUCsfD8AolT4oRy1 6rHGiBGWqiGg2dWnC54E1NqXfzdJUMhWkVTgJcvhMQJUBAtaAW0ACCpuh w==; X-IronPort-AV: E=Sophos;i="6.00,209,1681196400"; d="scan'208";a="216364644" X-Amp-Result: SKIPPED(no attachment in message) Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa5.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 01 Jun 2023 03:31:53 -0700 Received: from chn-vm-ex02.mchp-main.com (10.10.85.144) by chn-vm-ex03.mchp-main.com (10.10.85.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Thu, 1 Jun 2023 03:31:47 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21 via Frontend Transport; Thu, 1 Jun 2023 03:31:47 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PXOJGyKI4saoTkwvaADNNB7Csz8/POHWu/8LWnqRWT/AMSpJ+EZVuAdCcc64MjVvQF1hkUQTs3J3lBnmah72OCX3YCglMOeKONh5xHTrbC9DtfD+nJ48n+31o/FJfQLxZoJBWf5PJC1E4FCe5TFUQrxkLwvQghzApHvIu4+ERJt6BZZO2r4XALqndPpCW9zO8NfUkc4LqNyNaTj1+5dSrGobzRXup1sxvNyVG7QEzi0xIMDoUcbQOK0l6RTb2FyP4pSt5yPKT/GuN4M7lhz1bJRinX7tccBdyhFL48jkud3a98Ivr++xnVrh/vBSEZJCCI0Pi4UA70ibDrxv20bqsA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=AXAmPFXHHncGGwvb6wdr5caSPC/AP2e40M9tgi2x79Y=; b=mm+78QxgsZB1YCXR6Th+iSrhCDXpTI8qFN459oU0a1LHibvojupVXuqhImfpPZif9qxXyg6C4NgcfNO/jxjll6uXE02HFqqA2BCdCHEyIhSmUcWg7myRcr0b89nF5y/HVh/jzEGH8UEF+r44be7JcqVis+hGcNdJInqyB2Qq1f1oLbtCTiaYIpH4ATXindvVoL1DThGO/+zCB3y34eGWr1hbfmxGh741Kwjf+rSLM8LISsmNHdy3LIdTE2lDSMM1Sfjrf+/iKhUJ2Dx7z2LrXJd75VJ8aitFOcHeCzDs213D9PnqMuYvAkOaRff+AADRca4FITgR0xRwlckJcJHV0w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AXAmPFXHHncGGwvb6wdr5caSPC/AP2e40M9tgi2x79Y=; b=KTnlzZsCyOfhP0vcxdYwmm/Hmr6XN65m3X69DGXZ4VEWge1uWUZk0Oz6D5vSGz/aVUr8sC53oCiyI3xyQDK5jWx/aGoHzIWcuOJZZTKtZqW0NkPeMMU7rAVtdMaaI28lS+XcrvUT0dgpibfgQTzLYCRuB8RnA01cpQ3iPU//x/I= Received: from BL3PR11MB6484.namprd11.prod.outlook.com (2603:10b6:208:3bf::19) by MN6PR11MB8241.namprd11.prod.outlook.com (2603:10b6:208:473::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.22; Thu, 1 Jun 2023 10:31:45 +0000 Received: from BL3PR11MB6484.namprd11.prod.outlook.com ([fe80::c13:dcee:8af:bbfb]) by BL3PR11MB6484.namprd11.prod.outlook.com ([fe80::c13:dcee:8af:bbfb%7]) with mapi id 15.20.6433.024; Thu, 1 Jun 2023 10:31:45 +0000 From: To: , , CC: , , , , Subject: RE: [PATCH v3 3/3] can: length: refactor frame lengths definition to add size in bits Thread-Topic: [PATCH v3 3/3] can: length: refactor frame lengths definition to add size in bits Thread-Index: AQHZkwW54Wwzg7neV02strl4AYZUG691hr+g Date: Thu, 1 Jun 2023 10:31:44 +0000 Message-ID: References: <20230507155506.3179711-1-mailhol.vincent@wanadoo.fr> <20230530144637.4746-1-mailhol.vincent@wanadoo.fr> <20230530144637.4746-4-mailhol.vincent@wanadoo.fr> In-Reply-To: <20230530144637.4746-4-mailhol.vincent@wanadoo.fr> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microchip.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BL3PR11MB6484:EE_|MN6PR11MB8241:EE_ x-ms-office365-filtering-correlation-id: 5ceeb0b1-225e-40ef-6272-08db628b65c3 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: VWBXBg94bFfz3xXkHodzHG8o2iTAO2lPmMc6fX5pFz4pwHzC7MJ17MqBR/qDfGHclm3bh8HHmbDU+sgsT6S09BfOpfapuV9MbIcGUb4ARGzbh6CNmJbnzv1jpwG+Ss6z0g+DIEBAe1xoSJiWxpWJnKAS0xLVcFEraE2meBllYrmDpTt/eihzx8tmKKXtrqVdf6ohKbyeE+VfqfmKiRSly9YpuKOwMKlV3CR+K533KogQcT0puAkXx99JdGgd0454Lb+SvAjd4SlJECIoELO4aYWXUc0W87mcAPK1+p3YcykUu9rn/lWJ9IT7PgJW/j6bLKxBtIo6J7mm97pWvwrld3/o7rMUpvrE0ut3IqpmfXKuiocKoVRCqk2EzNtBnlDHnfXXD43FLDquyQY4fk6bk7S2IECYSyJSaQYnTMTUJByus1jfUW2rcuRVpp2DXyleC0sTmHU1oNziMvseMK+FEE5VW2+B+jcVBR45oSp1T0I28Wy/f27jIeZqSy7bbk+v4VouTskuGER9cnbaDYiZS9j1fUqKK3LLic1KYwNF1EDrXUJiRdnnDvB1nsc8inDTCQ8AoQuWKRaI87hcQpJ8ZvcomSHSOHo70LUnnR53v6A7sT+efmLkkUuc7G3gmOon x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL3PR11MB6484.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(39860400002)(396003)(346002)(136003)(376002)(451199021)(38070700005)(7696005)(71200400001)(83380400001)(316002)(5660300002)(55016003)(41300700001)(8936002)(8676002)(86362001)(33656002)(478600001)(38100700002)(6506007)(9686003)(26005)(186003)(122000001)(54906003)(110136005)(30864003)(4326008)(52536014)(66946007)(66446008)(66556008)(66476007)(76116006)(2906002)(64756008);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MjRWNzBvMTRPN2wwNVQxTGNwS1lKZmllQ250U0pmMWFNNS9raDk4ZXRYZmVV?= =?utf-8?B?Sk10ZnkzM3pnZmw2bFNDYjVPMTFtYk5XN1FpclVHZFdLUzBsWDlsQW55L2Jq?= =?utf-8?B?K25mNm5tZnJJbTdLRjJRS2lNejFWVGNUTDZUcFNZRVE4NTE4K3RhWlZLdlg2?= =?utf-8?B?NllORDIyNW12ZEFaWFJlZ2QzYnpXTkQ3ZXpqbit1UWV6WWI3QTZEcWFZNFZu?= =?utf-8?B?Y0dXeWp6d29kMHlYSDNNM3dIVTNFOWJIT1JqeVVoY1J4QjN4V01Hci9vdkpU?= =?utf-8?B?Z0tva1VVQU1qVmNUNjFLWjMvcHFTbmpQMWFNbldESEhlQlB0QzlWVi9vbGhm?= =?utf-8?B?YzV0MTljRVhlZTZlRnBhL1dMMllJRkpKRkQ0Wjc0MmJJQ05mYzZPalg3Q1Ix?= =?utf-8?B?YnBNQkZ6UEFZZHpzcHdNK0xvKzIvbEt2S2lpWnpiZ1ZsUEY5NElBRFgwSyt5?= =?utf-8?B?eGlKek9jSUxvcGVPdkJDRzlHcjNGZEhZOXNidU9YR2RBMFBNeGwxRWJoOVJt?= =?utf-8?B?eGpqelMyQVkwMVhzeE42OS9VR25kUHltT2wvZENFV01JU3ZGK2tWSEJvZXB2?= =?utf-8?B?VDJEMUpuV0xJQ2dzN3dGZjNvT1VVV2ZJNXJuTkNxbFZrQzNSVHRlUzdIWXVp?= =?utf-8?B?OXNUVkZBZTZ1MXNjcGEwaFI4M2F4cXhWU0lRa2ozSDFQbUplYmw0VUZXWmZN?= =?utf-8?B?TUkyalA0NDJKb0EwUDk0SG12MlU2R2VMc0k3akRPTGkxRmM1M0dyTC84Q0JY?= =?utf-8?B?VGFtZkoySkQ0SWhrbFh1aVkzcWlFTGRpQzhRdDJUY0dSNTFYNDdxVUpWZm1H?= =?utf-8?B?elFKR3dlKzBpeUJHUnRwRjgxZkVFSHFMVnBPSWtxNGloQXVvSEJBZkRhOUVF?= =?utf-8?B?b3RCNjJuUkpBNFkybTc2WU4wQkRrU1lpWlFCQ3cwTXRzdHRTK05UdDNob2JG?= =?utf-8?B?aS9nYXM1c2MwVFpWSWwyc0tBUlFHRktvR0xUWU5hTUhjNWlETk00WEJsMWVM?= =?utf-8?B?c2g5d3JLQnRxQWZQQW5SQWhNV3BDOVQ1YkNucmljNGtDd3ZTdkdjVzYzblpv?= =?utf-8?B?cFllT0gwTUYvL0FjMVZXdVkydlR3REFTYURISm5vSHAwa2w5dWhVWEp5Ylp5?= =?utf-8?B?dUxZV0wvUnRUSFgzRHNtOWdIVllGUkdIelc2bjRBSk1jMjF1bU1sbW9JczVJ?= =?utf-8?B?QitKd05MTTlQREVuUmlCU2dDVDd4cExlSk8rK1pYOGpZVVhmZDNGanJvbjQ0?= =?utf-8?B?VFRLQnhwWGFaam9OT2l4MnRmM0lSQXZNUUVORjdtNDRlY0ZPZkhXM01HQlBC?= =?utf-8?B?YS9hdkdBNTZzTkl6aVllTnM5Q0VJUnpCblF3cThHMXlXMndHbUlZRGIrZlda?= =?utf-8?B?dmdBNXFudHZKMjhsTXNCeXpkaGt0eU5KU0g5U0FTNDBSMUNXcHdSY2VKU3N1?= =?utf-8?B?QytHYXVxVlpvRitRWmYreXZFTUl1Qk5naEpFR2l0MWgyL1M3NGJJcmRoNWY3?= =?utf-8?B?MVdjZjRWSm5mbUVGbmkzQndvQnRTdVVGc1NnU2NjbFhmSm1NQnR0b2dTdm9V?= =?utf-8?B?a1VtVlZMRnZWdkM0RUE3aS8waDZKS2RYL0tXb3BOMllPV2tVT0c4eVNpNlh6?= =?utf-8?B?aHpreFZnTWFpQUQrSTdxZWZ6YitXMWhvNTM3RWM3MHFvZHlFRytERFIwSTRn?= =?utf-8?B?enc1Ly9UVGpDbWR3UUxSMkJGY1dtK3VnaGpROVhvZUw5YmM0WEM1SVBBbldx?= =?utf-8?B?NkZJUW15ZytPdkRDTnkvc1FxaEpoVzZ2OG16TDVyL25KVnZMWGt4MGNrRFpr?= =?utf-8?B?TWxSSkljRFhEcXM1WHArWE96NjVnUkNLUjZaMXVOMXdHMHk2b1JnNDVPMTBS?= =?utf-8?B?V3NjOEY0dW1MRnZieHpRNGlhbFBrV3NUbnYzTjhXaXNoSUhtMk1iWEdaYVlN?= =?utf-8?B?NGhuMi9zbzZHWWZCN1dLNGVKWEVnRWdudTNuZXlYR3pYUmtFMk00Nk1WWWtk?= =?utf-8?B?OXMxRVkwVW1FQUdFVHQ5RHlZR04wblZWSWhKT3lXK2k3WGcrMWtNaHpWcG1v?= =?utf-8?B?Q3NtMTRNL0trK0hHVXdsaHI0RGpSQ2lpNC92S2tVU3RrMVJtTkVtY1RIZjVa?= =?utf-8?Q?IqM54+D5DYGqrAWuIdO2T/bis?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL3PR11MB6484.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5ceeb0b1-225e-40ef-6272-08db628b65c3 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Jun 2023 10:31:45.0084 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: DPFHociKwBR0kyLVoqGQmFCARYdJlFoMe1odDkgcmyQSrg5ANrlL7AC9WJx0fDxlhk/ktPWCPCxCH7p/6XuXFvYq+dwN3im+2erE1CTUbks= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN6PR11MB8241 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PiBJbnRyb2R1Y2UgYSBtZXRob2QgdG8gY2FsY3VsYXRlIHRoZSBleGFjdCBzaXplIGluIGJpdHMg b2YgYSBDQU4oLUZEKQ0KPiBmcmFtZSB3aXRoIG9yIHdpdGhvdXQgZHluYW1pYyBiaXRzdWZmaW5n Lg0KPiANCj4gVGhlc2UgYXJlIGFsbCB0aGUgcG9zc2libGUgY29tYmluYXRpb25zIHRha2VuIGlu dG8gYWNjb3VudDoNCj4gDQo+ICAgLSBDbGFzc2ljYWwgQ0FOIG9yIENBTi1GRA0KPiAgIC0gU3Rh bmRhcmQgb3IgRXh0ZW5kZWQgZnJhbWUgZm9ybWF0DQo+ICAgLSBDQU4tRkQgQ1JDMTcgb3IgQ1JD MjENCj4gICAtIEluY2x1ZGUgb3Igbm90IGludGVybWlzc2lvbg0KPiANCj4gSW5zdGVhZCBvZiBk b2luZyBzZXZlcmFsIGluZGl2aWR1YWwgbWFjcm8gZGVmaW5pdGlvbnMsIGRlY2xhcmUgdGhlDQo+ IGNhbl9mcmFtZV9iaXRzKCkgZnVuY3Rpb24tbGlrZSBtYWNyby4gVG8gdGhpcyBleHRlbnQsIGRv IGEgZnVsbA0KPiByZWZhY3RvcmluZyBvZiB0aGUgbGVuZ3RoIGRlZmluaXRpb25zLg0KPiANCj4g SW4gYWRkaXRpb24gYWRkIHRoZSBjYW5fZnJhbWVfYnl0ZXMoKS4gVGhpcyBmdW5jdGlvbi1saWtl IG1hY3JvDQo+IHJlcGxhY2VzIHRoZSBleGlzdGluZyBtYWNybzoNCj4gDQo+ICAgLSBDQU5fRlJB TUVfT1ZFUkhFQURfU0ZGOiBjYW5fZnJhbWVfYnl0ZXMoZmFsc2UsIGZhbHNlLCAwKQ0KPiAgIC0g Q0FOX0ZSQU1FX09WRVJIRUFEX0VGRjogY2FuX2ZyYW1lX2J5dGVzKGZhbHNlLCB0cnVlLCAwKQ0K PiAgIC0gQ0FORkRfRlJBTUVfT1ZFUkhFQURfU0ZGOiBjYW5fZnJhbWVfYnl0ZXModHJ1ZSwgZmFs c2UsIDApDQo+ICAgLSBDQU5GRF9GUkFNRV9PVkVSSEVBRF9FRkY6IGNhbl9mcmFtZV9ieXRlcyh0 cnVlLCB0cnVlLCAwKQ0KPiANCj4gVGhlIGRpZmZlcmVudCBtYXhpbXVtIGZyYW1lIGxlbmd0aHMg KG1heGltdW0gZGF0YSBsZW5ndGgsIGluY2x1ZGluZw0KPiBpbnRlcm1pc3Npb24pIGFyZSBhcyBm b2xsb3c6DQo+IA0KPiAgICBGcmFtZSB0eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0 cyAgICBieXRlcw0KPiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCj4gICAgQ2xhc3NpYyBDQU4gU0ZGIG5vLWJpdHN0dWZmaW5nICAgICAg IDExMSAgICAgMTQNCj4gICAgQ2xhc3NpYyBDQU4gRUZGIG5vLWJpdHN0dWZmaW5nICAgICAgIDEz MSAgICAgMTcNCj4gICAgQ2xhc3NpYyBDQU4gU0ZGIGJpdHN0dWZmaW5nICAgICAgICAgIDEzNSAg ICAgMTcNCj4gICAgQ2xhc3NpYyBDQU4gRUZGIGJpdHN0dWZmaW5nICAgICAgICAgIDE2MCAgICAg MjANCj4gICAgQ0FOLUZEIFNGRiBuby1iaXRzdHVmZmluZyAgICAgICAgICAgIDU3OSAgICAgNzMN Cj4gICAgQ0FOLUZEIEVGRiBuby1iaXRzdHVmZmluZyAgICAgICAgICAgIDU5OCAgICAgNzUNCj4g ICAgQ0FOLUZEIFNGRiBiaXRzdHVmZmluZyAgICAgICAgICAgICAgIDcxMiAgICAgODkNCj4gICAg Q0FOLUZEIEVGRiBiaXRzdHVmZmluZyAgICAgICAgICAgICAgIDczNiAgICAgOTINCj4gDQo+IFRo ZSBtYWNybyBDQU5fRlJBTUVfTEVOX01BWCBhbmQgQ0FORkRfRlJBTUVfTEVOX01BWCBhcmUga2Vw dCBhcw0KPiBhbg0KPiBhbGlhcyB0bywgcmVzcGVjdGl2ZWx5LCBjYW5fZnJhbWVfYnl0ZXMoZmFs c2UsIHRydWUsIENBTl9NQVhfRExFTikgYW5kDQo+IGNhbl9mcmFtZV9ieXRlcyh0cnVlLCB0cnVl LCBDQU5GRF9NQVhfRExFTikuDQo+IA0KPiBJbiBhZGRpdGlvbiB0byB0aGUgYWJvdmU6DQo+IA0K PiAgLSBVc2UgSVNPIDExODk4LTE6MjAxNSBkZWZpbml0aW9ucyBmb3IgdGhlIG5hbWUgb2YgdGhl IENBTiBmcmFtZQ0KPiAgICBmaWVsZHMuDQo+ICAtIEluY2x1ZGUgbGludXgvYml0cy5oIGZvciB1 c2Ugb2YgQklUU19QRVJfQllURS4NCj4gIC0gSW5jbHVkZSBsaW51eC9tYXRoLmggZm9yIHVzZSBv ZiBtdWx0X2ZyYWMoKSBhbmQNCj4gICAgRElWX1JPVU5EX1VQKCkuIE4uQjogdGhlIHVzZSBvZiBE SVZfUk9VTkRfVVAoKSBpcyBub3QgbmV3IHRvIHRoaXMNCj4gICAgcGF0Y2gsIGJ1dCB0aGUgaW5j bHVkZSB3YXMgcHJldmlvdXNseSBvbWl0dGVkLg0KPiAgLSBBZGQgY29weXJpZ2h0IDIwMjMgZm9y IG15c2VsZi4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IFZpbmNlbnQgTWFpbGhvbCA8bWFpbGhvbC52 aW5jZW50QHdhbmFkb28uZnI+DQo+IC0tLQ0KPiAgZHJpdmVycy9uZXQvY2FuL2Rldi9sZW5ndGgu YyB8ICAxNSArLQ0KPiAgaW5jbHVkZS9saW51eC9jYW4vbGVuZ3RoLmggICB8IDI5OCArKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQ0KPiAgMiBmaWxlcyBjaGFuZ2VkLCAyMTMgaW5z ZXJ0aW9ucygrKSwgMTAwIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2Nhbi9kZXYvbGVuZ3RoLmMgYi9kcml2ZXJzL25ldC9jYW4vZGV2L2xlbmd0aC5jDQo+IGlu ZGV4IGI0ODE0MGIxMTAyZS4uYjdmNGQ3NmRkNDQ0IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25l dC9jYW4vZGV2L2xlbmd0aC5jDQo+ICsrKyBiL2RyaXZlcnMvbmV0L2Nhbi9kZXYvbGVuZ3RoLmMN Cj4gQEAgLTc4LDE4ICs3OCw3IEBAIHVuc2lnbmVkIGludCBjYW5fc2tiX2dldF9mcmFtZV9sZW4o Y29uc3Qgc3RydWN0DQo+IHNrX2J1ZmYgKnNrYikNCj4gICAgICAgICBlbHNlDQo+ICAgICAgICAg ICAgICAgICBsZW4gPSBjZi0+bGVuOw0KPiANCj4gLSAgICAgICBpZiAoY2FuX2lzX2NhbmZkX3Nr Yihza2IpKSB7DQo+IC0gICAgICAgICAgICAgICBpZiAoY2YtPmNhbl9pZCAmIENBTl9FRkZfRkxB RykNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgbGVuICs9IENBTkZEX0ZSQU1FX09WRVJIRUFE X0VGRjsNCj4gLSAgICAgICAgICAgICAgIGVsc2UNCj4gLSAgICAgICAgICAgICAgICAgICAgICAg bGVuICs9IENBTkZEX0ZSQU1FX09WRVJIRUFEX1NGRjsNCj4gLSAgICAgICB9IGVsc2Ugew0KPiAt ICAgICAgICAgICAgICAgaWYgKGNmLT5jYW5faWQgJiBDQU5fRUZGX0ZMQUcpDQo+IC0gICAgICAg ICAgICAgICAgICAgICAgIGxlbiArPSBDQU5fRlJBTUVfT1ZFUkhFQURfRUZGOw0KPiAtICAgICAg ICAgICAgICAgZWxzZQ0KPiAtICAgICAgICAgICAgICAgICAgICAgICBsZW4gKz0gQ0FOX0ZSQU1F X09WRVJIRUFEX1NGRjsNCj4gLSAgICAgICB9DQo+IC0NCj4gLSAgICAgICByZXR1cm4gbGVuOw0K PiArICAgICAgIHJldHVybiBjYW5fZnJhbWVfYnl0ZXMoY2FuX2lzX2NhbmZkX3NrYihza2IpLCBj Zi0+Y2FuX2lkICYNCj4gQ0FOX0VGRl9GTEFHLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZmFsc2UsIGxlbik7DQo+ICB9DQo+ICBFWFBPUlRfU1lNQk9MX0dQTChjYW5fc2tiX2dl dF9mcmFtZV9sZW4pOw0KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9jYW4vbGVuZ3RoLmgg Yi9pbmNsdWRlL2xpbnV4L2Nhbi9sZW5ndGguaA0KPiBpbmRleCA1MjFmZGJjZTJkNjkuLmVmNmU3 OGZhOTViOSAxMDA2NDQNCj4gLS0tIGEvaW5jbHVkZS9saW51eC9jYW4vbGVuZ3RoLmgNCj4gKysr IGIvaW5jbHVkZS9saW51eC9jYW4vbGVuZ3RoLmgNCj4gQEAgLTEsMTMyICsxLDI1NiBAQA0KPiAg LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8NCj4gIC8qIENvcHlyaWdodCAo QykgMjAyMCBPbGl2ZXIgSGFydGtvcHAgPHNvY2tldGNhbkBoYXJ0a29wcC5uZXQ+DQo+ICAgKiBD b3B5cmlnaHQgKEMpIDIwMjAgTWFyYyBLbGVpbmUtQnVkZGUgPGtlcm5lbEBwZW5ndXRyb25peC5k ZT4NCj4gLSAqIENvcHlyaWdodCAoQykgMjAyMCBWaW5jZW50IE1haWxob2wgPG1haWxob2wudmlu Y2VudEB3YW5hZG9vLmZyPg0KPiArICogQ29weXJpZ2h0IChDKSAyMDIwLCAyMDIzIFZpbmNlbnQg TWFpbGhvbCA8bWFpbGhvbC52aW5jZW50QHdhbmFkb28uZnI+DQo+ICAgKi8NCj4gDQo+ICAjaWZu ZGVmIF9DQU5fTEVOR1RIX0gNCj4gICNkZWZpbmUgX0NBTl9MRU5HVEhfSA0KPiANCj4gKyNpbmNs dWRlIDxsaW51eC9iaXRzLmg+DQo+ICAjaW5jbHVkZSA8bGludXgvY2FuLmg+DQo+ICAjaW5jbHVk ZSA8bGludXgvY2FuL25ldGxpbmsuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9tYXRoLmg+DQo+IA0K PiAgLyoNCj4gLSAqIFNpemUgb2YgYSBDbGFzc2ljYWwgQ0FOIFN0YW5kYXJkIEZyYW1lDQo+ICsg KiBTaXplIG9mIGEgQ2xhc3NpY2FsIENBTiBTdGFuZGFyZCBGcmFtZSBoZWFkZXIgaW4gYml0cw0K PiAgICoNCj4gLSAqIE5hbWUgb2YgRmllbGQgICAgICAgICAgICAgICAgICAgICAgIEJpdHMNCj4g KyAqIE5hbWUgb2YgRmllbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQml0cw0KPiAg ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQo+IC0gKiBTdGFydC1vZi1mcmFtZSAgICAgICAgICAgICAgICAgICAgICAxDQo+IC0gKiBJ ZGVudGlmaWVyICAgICAgICAgICAgICAgICAgICAgICAgICAxMQ0KPiAtICogUmVtb3RlIHRyYW5z bWlzc2lvbiByZXF1ZXN0IChSVFIpICAgMQ0KPiAtICogSWRlbnRpZmllciBleHRlbnNpb24gYml0 IChJREUpICAgICAgMQ0KPiAtICogUmVzZXJ2ZWQgYml0IChyMCkgICAgICAgICAgICAgICAgICAg MQ0KPiAtICogRGF0YSBsZW5ndGggY29kZSAoRExDKSAgICAgICAgICAgICAgNA0KPiAtICogRGF0 YSBmaWVsZCAgICAgICAgICAgICAgICAgICAgICAgICAgMC4uLjY0DQo+IC0gKiBDUkMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAxNQ0KPiAtICogQ1JDIGRlbGltaXRlciAgICAgICAg ICAgICAgICAgICAgICAgMQ0KPiAtICogQUNLIHNsb3QgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMQ0KPiAtICogQUNLIGRlbGltaXRlciAgICAgICAgICAgICAgICAgICAgICAgMQ0KPiAtICog RW5kLW9mLWZyYW1lIChFT0YpICAgICAgICAgICAgICAgICAgNw0KPiAtICogSW50ZXIgZnJhbWUg c3BhY2luZyAgICAgICAgICAgICAgICAgMw0KPiArICogU3RhcnQgT2YgRnJhbWUgKFNPRikgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDENCj4gKyAqIEFyYml0cmF0aW9uIGZpZWxkOg0K PiArICogICAgIGJhc2UgSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMQ0KPiAr ICogICAgIFJlbW90ZSBUcmFuc21pc3Npb24gUmVxdWVzdCAoUlRSKSAgICAgICAxDQo+ICsgKiBD b250cm9sIGZpZWxkOg0KPiArICogICAgIElEZW50aWZpZXIgRXh0ZW5zaW9uIGJpdCAoSURFKSAg ICAgICAgICAxDQo+ICsgKiAgICAgRkQgRm9ybWF0IGluZGljYXRpb3IgKEZERikgICAgICAgICAg ICAgIDENCj4gKyAqICAgICBEYXRhIExlbmd0aCBDb2RlIChETEMpICAgICAgICAgICAgICAgICAg NA0KPiArICoNCj4gKyAqIGluY2x1ZGluZyBhbGwgZmllbGRzIHByZWNlZGluZyB0aGUgZGF0YSBm aWVsZCwgaWdub3JpbmcgYml0c3R1ZmZpbmcNCj4gKyAqLw0KPiArI2RlZmluZSBDQU5fRlJBTUVf SEVBREVSX1NGRl9CSVRTIDE5DQo+ICsNCj4gKy8qDQo+ICsgKiBTaXplIG9mIGEgQ2xhc3NpY2Fs IENBTiBFeHRlbmRlZCBGcmFtZSBoZWFkZXIgaW4gYml0cw0KPiArICoNCj4gKyAqIE5hbWUgb2Yg RmllbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQml0cw0KPiArICogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsgKiBT dGFydCBPZiBGcmFtZSAoU09GKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQ0KPiAr ICogQXJiaXRyYXRpb24gZmllbGQ6DQo+ICsgKiAgICAgYmFzZSBJRCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDExDQo+ICsgKiAgICAgU3Vic3RpdHV0ZSBSZW1vdGUgUmVxdWVzdCAo U1JSKSAgICAgICAgIDENCj4gKyAqICAgICBJRGVudGlmaWVyIEV4dGVuc2lvbiBiaXQgKElERSkg ICAgICAgICAgMQ0KPiArICogICAgIElEIGV4dGVuc2lvbiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAxOA0KPiArICogICAgIFJlbW90ZSBUcmFuc21pc3Npb24gUmVxdWVzdCAoUlRSKSAgICAg ICAxDQo+ICsgKiBDb250cm9sIGZpZWxkOg0KPiArICogICAgIEZEIEZvcm1hdCBpbmRpY2F0aW9y IChGREYpICAgICAgICAgICAgICAxDQpOaXQ6IGluZGljYXRvciwgc2FtZSBhYm92ZQ0KPiArICog ICAgIFJlc2VydmVkIGJpdCAocjApICAgICAgICAgICAgICAgICAgICAgICAxDQo+ICsgKiAgICAg RGF0YSBsZW5ndGggY29kZSAoRExDKSAgICAgICAgICAgICAgICAgIDQNCj4gKyAqDQo+ICsgKiBp bmNsdWRpbmcgYWxsIGZpZWxkcyBwcmVjZWRpbmcgdGhlIGRhdGEgZmllbGQsIGlnbm9yaW5nIGJp dHN0dWZmaW5nDQo+ICsgKi8NCj4gKyNkZWZpbmUgQ0FOX0ZSQU1FX0hFQURFUl9FRkZfQklUUyAz OQ0KPiArDQo+ICsvKg0KPiArICogU2l6ZSBvZiBhIENBTi1GRCBTdGFuZGFyZCBGcmFtZSBpbiBi aXRzDQo+ICsgKg0KPiArICogTmFtZSBvZiBGaWVsZCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBCaXRzDQo+ICsgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCj4gKyAqIFN0YXJ0IE9mIEZyYW1lIChTT0YpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAxDQo+ICsgKiBBcmJpdHJhdGlvbiBmaWVsZDoNCj4gKyAqICAg ICBiYXNlIElEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTENCj4gKyAqICAgICBS ZW1vdGUgUmVxdWVzdCBTdWJzdGl0dXRpb24gKFJSUykgICAgICAgMQ0KPiArICogQ29udHJvbCBm aWVsZDoNCj4gKyAqICAgICBJRGVudGlmaWVyIEV4dGVuc2lvbiBiaXQgKElERSkgICAgICAgICAg MQ0KPiArICogICAgIEZEIEZvcm1hdCBpbmRpY2F0b3IgKEZERikgICAgICAgICAgICAgICAxDQo+ ICsgKiAgICAgUmVzZXJ2ZWQgYml0IChyZXMpICAgICAgICAgICAgICAgICAgICAgIDENCj4gKyAq ICAgICBCaXQgUmF0ZSBTd2l0Y2ggKEJSUykgICAgICAgICAgICAgICAgICAgMQ0KPiArICogICAg IEVycm9yIFN0YXR1cyBJbmRpY2F0b3IgKEVTSSkgICAgICAgICAgICAxDQo+ICsgKiAgICAgRGF0 YSBsZW5ndGggY29kZSAoRExDKSAgICAgICAgICAgICAgICAgIDQNCj4gKyAqDQo+ICsgKiBpbmNs dWRpbmcgYWxsIGZpZWxkcyBwcmVjZWRpbmcgdGhlIGRhdGEgZmllbGQsIGlnbm9yaW5nIGJpdHN0 dWZmaW5nDQo+ICsgKi8NCj4gKyNkZWZpbmUgQ0FORkRfRlJBTUVfSEVBREVSX1NGRl9CSVRTIDIy DQo+ICsNCj4gKy8qDQo+ICsgKiBTaXplIG9mIGEgQ0FOLUZEIEV4dGVuZGVkIEZyYW1lIGluIGJp dHMNCj4gKyAqDQo+ICsgKiBOYW1lIG9mIEZpZWxkICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEJpdHMNCj4gKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KPiArICogU3RhcnQgT2YgRnJhbWUgKFNPRikgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDENCj4gKyAqIEFyYml0cmF0aW9uIGZpZWxkOg0KPiArICogICAg IGJhc2UgSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMQ0KPiArICogICAgIFN1 YnN0aXR1dGUgUmVtb3RlIFJlcXVlc3QgKFNSUikgICAgICAgICAxDQo+ICsgKiAgICAgSURlbnRp ZmllciBFeHRlbnNpb24gYml0IChJREUpICAgICAgICAgIDENCj4gKyAqICAgICBJRCBleHRlbnNp b24gICAgICAgICAgICAgICAgICAgICAgICAgICAgMTgNCj4gKyAqICAgICBSZW1vdGUgUmVxdWVz dCBTdWJzdGl0dXRpb24gKFJSUykgICAgICAgMQ0KPiArICogQ29udHJvbCBmaWVsZDoNCj4gKyAq ICAgICBGRCBGb3JtYXQgaW5kaWNhdG9yIChGREYpICAgICAgICAgICAgICAgMQ0KPiArICogICAg IFJlc2VydmVkIGJpdCAocmVzKSAgICAgICAgICAgICAgICAgICAgICAxDQo+ICsgKiAgICAgQml0 IFJhdGUgU3dpdGNoIChCUlMpICAgICAgICAgICAgICAgICAgIDENCj4gKyAqICAgICBFcnJvciBT dGF0dXMgSW5kaWNhdG9yIChFU0kpICAgICAgICAgICAgMQ0KPiArICogICAgIERhdGEgbGVuZ3Ro IGNvZGUgKERMQykgICAgICAgICAgICAgICAgICA0DQo+ICAgKg0KPiAtICogcm91bmRlZCB1cCBh bmQgaWdub3JpbmcgYml0c3R1ZmZpbmcNCj4gKyAqIGluY2x1ZGluZyBhbGwgZmllbGRzIHByZWNl ZGluZyB0aGUgZGF0YSBmaWVsZCwgaWdub3JpbmcgYml0c3R1ZmZpbmcNCj4gICAqLw0KPiAtI2Rl ZmluZSBDQU5fRlJBTUVfT1ZFUkhFQURfU0ZGIERJVl9ST1VORF9VUCg0NywgOCkNCj4gKyNkZWZp bmUgQ0FORkRfRlJBTUVfSEVBREVSX0VGRl9CSVRTIDQxDQo+IA0KPiAgLyoNCj4gLSAqIFNpemUg b2YgYSBDbGFzc2ljYWwgQ0FOIEV4dGVuZGVkIEZyYW1lDQo+ICsgKiBTaXplIG9mIGEgQ0FOIENS QyBGaWVsZCBpbiBiaXRzDQo+ICAgKg0KPiAgICogTmFtZSBvZiBGaWVsZCAgICAgICAgICAgICAg ICAgICAgICAgQml0cw0KPiAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IC0gKiBTdGFydC1vZi1mcmFtZSAgICAgICAgICAgICAg ICAgICAgICAxDQo+IC0gKiBJZGVudGlmaWVyIEEgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDExDQo+IC0gKiBTdWJzdGl0dXRlIHJlbW90ZSByZXF1ZXN0IChTUlIpICAgICAxDQo+IC0g KiBJZGVudGlmaWVyIGV4dGVuc2lvbiBiaXQgKElERSkgICAgICAxDQo+IC0gKiBJZGVudGlmaWVy IEIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4DQo+IC0gKiBSZW1vdGUgdHJhbnNt aXNzaW9uIHJlcXVlc3QgKFJUUikgICAxDQo+IC0gKiBSZXNlcnZlZCBiaXRzIChyMSwgcjApICAg ICAgICAgICAgICAyDQo+IC0gKiBEYXRhIGxlbmd0aCBjb2RlIChETEMpICAgICAgICAgICAgICA0 DQo+IC0gKiBEYXRhIGZpZWxkICAgICAgICAgICAgICAgICAgICAgICAgICAwLi4uNjQNCj4gLSAq IENSQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1DQo+IC0gKiBDUkMgZGVsaW1p dGVyICAgICAgICAgICAgICAgICAgICAgICAxDQo+IC0gKiBBQ0sgc2xvdCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAxDQo+IC0gKiBBQ0sgZGVsaW1pdGVyICAgICAgICAgICAgICAgICAgICAg ICAxDQo+IC0gKiBFbmQtb2YtZnJhbWUgKEVPRikgICAgICAgICAgICAgICAgICA3DQo+IC0gKiBJ bnRlciBmcmFtZSBzcGFjaW5nICAgICAgICAgICAgICAgICAzDQo+ICsgKiBDUkMgc2VxdWVuY2Ug KENSQzE1KSAgICAgICAgICAgICAgICAgICAgICAgIDE1DQo+ICsgKiBDUkMgRGVsaW1pdGVyICAg ICAgICAgICAgICAgICAgICAgICAxDQo+ICAgKg0KPiAtICogcm91bmRlZCB1cCBhbmQgaWdub3Jp bmcgYml0c3R1ZmZpbmcNCj4gKyAqIGlnbm9yaW5nIGJpdHN0dWZmaW5nDQo+ICAgKi8NCj4gLSNk ZWZpbmUgQ0FOX0ZSQU1FX09WRVJIRUFEX0VGRiBESVZfUk9VTkRfVVAoNjcsIDgpDQo+ICsjZGVm aW5lIENBTl9GUkFNRV9DUkNfRklFTERfQklUUyAxNg0KPiANCj4gIC8qDQo+IC0gKiBTaXplIG9m IGEgQ0FOLUZEIFN0YW5kYXJkIEZyYW1lDQo+ICsgKiBTaXplIG9mIGEgQ0FOLUZEIENSQzE3IEZp ZWxkIGluIGJpdHMgKGxlbmd0aDogMC4uMTYpDQo+ICAgKg0KPiAgICogTmFtZSBvZiBGaWVsZCAg ICAgICAgICAgICAgICAgICAgICAgQml0cw0KPiAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IC0gKiBTdGFydC1vZi1mcmFtZSAg ICAgICAgICAgICAgICAgICAgICAxDQo+IC0gKiBJZGVudGlmaWVyICAgICAgICAgICAgICAgICAg ICAgICAgICAxMQ0KPiAtICogUmVtb3RlIFJlcXVlc3QgU3Vic3RpdHV0aW9uIChSUlMpICAgMQ0K PiAtICogSWRlbnRpZmllciBleHRlbnNpb24gYml0IChJREUpICAgICAgMQ0KPiAtICogRmxleGli bGUgZGF0YSByYXRlIGZvcm1hdCAoRkRGKSAgICAgMQ0KPiAtICogUmVzZXJ2ZWQgYml0IChyMCkg ICAgICAgICAgICAgICAgICAgMQ0KPiAtICogQml0IFJhdGUgU3dpdGNoIChCUlMpICAgICAgICAg ICAgICAgMQ0KPiAtICogRXJyb3IgU3RhdHVzIEluZGljYXRvciAoRVNJKSAgICAgICAgICAgICAg ICAxDQo+IC0gKiBEYXRhIGxlbmd0aCBjb2RlIChETEMpICAgICAgICAgICAgICA0DQo+IC0gKiBE YXRhIGZpZWxkICAgICAgICAgICAgICAgICAgICAgICAgICAwLi4uNTEyDQo+IC0gKiBTdHVmZiBC aXQgQ291bnQgKFNCQykgICAgICAgICAgICAgICA0DQo+IC0gKiBDUkMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAwLi4uMTY6IDE3IDIwLi4uNjQ6MjENCj4gLSAqIENSQyBkZWxpbWl0 ZXIgKENEKSAgICAgICAgICAgICAgICAgIDENCj4gLSAqIEZpeGVkIFN0dWZmIGJpdHMgKEZTQikg ICAgICAgICAgICAgIDAuLi4xNjogNiAyMC4uLjY0OjcNCj4gLSAqIEFDSyBzbG90IChBUykgICAg ICAgICAgICAgICAgICAgICAgIDENCj4gLSAqIEFDSyBkZWxpbWl0ZXIgKEFEKSAgICAgICAgICAg ICAgICAgIDENCj4gLSAqIEVuZC1vZi1mcmFtZSAoRU9GKSAgICAgICAgICAgICAgICAgIDcNCj4g LSAqIEludGVyIGZyYW1lIHNwYWNpbmcgICAgICAgICAgICAgICAgIDMNCj4gLSAqDQo+IC0gKiBh c3N1bWluZyBDUkMyMSwgcm91bmRlZCB1cCBhbmQgaWdub3JpbmcgZHluYW1pYyBiaXRzdHVmZmlu Zw0KPiAtICovDQo+IC0jZGVmaW5lIENBTkZEX0ZSQU1FX09WRVJIRUFEX1NGRiBESVZfUk9VTkRf VVAoNjcsIDgpDQo+ICsgKiBTdHVmZiBDb3VudCAgICAgICAgICAgICAgICAgICAgICAgICA0DQo+ ICsgKiBDUkMgU2VxdWVuY2UgKENSQzE3KSAgICAgICAgICAgICAgICAgICAgICAgIDE3DQo+ICsg KiBDUkMgRGVsaW1pdGVyICAgICAgICAgICAgICAgICAgICAgICAxDQo+ICsgKiBGaXhlZCBzdHVm ZiBiaXRzICAgICAgICAgICAgICAgICAgICA2DQo+ICsgKi8NCj4gKyNkZWZpbmUgQ0FORkRfRlJB TUVfQ1JDMTdfRklFTERfQklUUyAyOA0KPiANCj4gIC8qDQo+IC0gKiBTaXplIG9mIGEgQ0FOLUZE IEV4dGVuZGVkIEZyYW1lDQo+ICsgKiBTaXplIG9mIGEgQ0FOLUZEIENSQzIxIEZpZWxkIGluIGJp dHMgKGxlbmd0aDogMjAuLjY0KQ0KPiAgICoNCj4gICAqIE5hbWUgb2YgRmllbGQgICAgICAgICAg ICAgICAgICAgICAgIEJpdHMNCj4gICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAtICogU3RhcnQtb2YtZnJhbWUgICAgICAgICAg ICAgICAgICAgICAgMQ0KPiAtICogSWRlbnRpZmllciBBICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAxMQ0KPiAtICogU3Vic3RpdHV0ZSByZW1vdGUgcmVxdWVzdCAoU1JSKSAgICAgMQ0K PiAtICogSWRlbnRpZmllciBleHRlbnNpb24gYml0IChJREUpICAgICAgMQ0KPiAtICogSWRlbnRp ZmllciBCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOA0KPiAtICogUmVtb3RlIFJl cXVlc3QgU3Vic3RpdHV0aW9uIChSUlMpICAgMQ0KPiAtICogRmxleGlibGUgZGF0YSByYXRlIGZv cm1hdCAoRkRGKSAgICAgMQ0KPiAtICogUmVzZXJ2ZWQgYml0IChyMCkgICAgICAgICAgICAgICAg ICAgMQ0KPiAtICogQml0IFJhdGUgU3dpdGNoIChCUlMpICAgICAgICAgICAgICAgMQ0KPiAtICog RXJyb3IgU3RhdHVzIEluZGljYXRvciAoRVNJKSAgICAgICAgICAgICAgICAxDQo+IC0gKiBEYXRh IGxlbmd0aCBjb2RlIChETEMpICAgICAgICAgICAgICA0DQo+IC0gKiBEYXRhIGZpZWxkICAgICAg ICAgICAgICAgICAgICAgICAgICAwLi4uNTEyDQo+IC0gKiBTdHVmZiBCaXQgQ291bnQgKFNCQykg ICAgICAgICAgICAgICA0DQo+IC0gKiBDUkMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAwLi4uMTY6IDE3IDIwLi4uNjQ6MjENCj4gLSAqIENSQyBkZWxpbWl0ZXIgKENEKSAgICAgICAg ICAgICAgICAgIDENCj4gLSAqIEZpeGVkIFN0dWZmIGJpdHMgKEZTQikgICAgICAgICAgICAgIDAu Li4xNjogNiAyMC4uLjY0OjcNCj4gLSAqIEFDSyBzbG90IChBUykgICAgICAgICAgICAgICAgICAg ICAgIDENCj4gLSAqIEFDSyBkZWxpbWl0ZXIgKEFEKSAgICAgICAgICAgICAgICAgIDENCj4gLSAq IEVuZC1vZi1mcmFtZSAoRU9GKSAgICAgICAgICAgICAgICAgIDcNCj4gLSAqIEludGVyIGZyYW1l IHNwYWNpbmcgICAgICAgICAgICAgICAgIDMNCj4gLSAqDQo+IC0gKiBhc3N1bWluZyBDUkMyMSwg cm91bmRlZCB1cCBhbmQgaWdub3JpbmcgZHluYW1pYyBiaXRzdHVmZmluZw0KPiAtICovDQo+IC0j ZGVmaW5lIENBTkZEX0ZSQU1FX09WRVJIRUFEX0VGRiBESVZfUk9VTkRfVVAoODYsIDgpDQo+ICsg KiBTdHVmZiBDb3VudCAgICAgICAgICAgICAgICAgICAgICAgICA0DQo+ICsgKiBDUkMgc2VxdWVu Y2UgKENSQzIxKSAgICAgICAgICAgICAgICAgICAgICAgIDIxDQo+ICsgKiBDUkMgRGVsaW1pdGVy ICAgICAgICAgICAgICAgICAgICAgICAxDQo+ICsgKiBGaXhlZCBzdHVmZiBiaXRzICAgICAgICAg ICAgICAgICAgICA3DQo+ICsgKi8NCj4gKyNkZWZpbmUgQ0FORkRfRlJBTUVfQ1JDMjFfRklFTERf QklUUyAzMw0KPiArDQo+ICsvKg0KPiArICogU2l6ZSBvZiBhIENBTigtRkQpIEZyYW1lIGZvb3Rl ciBpbiBiaXRzDQo+ICsgKg0KPiArICogTmFtZSBvZiBGaWVsZCAgICAgICAgICAgICAgICAgICAg ICAgQml0cw0KPiArICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQo+ICsgKiBBQ0sgc2xvdCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAxDQo+ICsgKiBBQ0sgZGVsaW1pdGVyICAgICAgICAgICAgICAgICAgICAgICAxDQo+ICsgKiBF bmQgT2YgRnJhbWUgKEVPRikgICAgICAgICAgICAgICAgICA3DQo+ICsgKg0KPiArICogaW5jbHVk aW5nIGFsbCBmaWVsZHMgZm9sbG93aW5nIHRoZSBDUkMgZmllbGQNCj4gKyAqLw0KPiArI2RlZmlu ZSBDQU5fRlJBTUVfRk9PVEVSX0JJVFMgOQ0KPiArDQo+ICsvKg0KPiArICogRmlyc3QgcGFydCBv ZiB0aGUgSW50ZXIgRnJhbWUgU3BhY2UNCj4gKyAqIChhLmsuYS4gSU1GIC0gaW50ZXJtaXNzaW9u IGZpZWxkKQ0KPiArICovDQo+ICsjZGVmaW5lIENBTl9JTlRFUk1JU1NJT05fQklUUyAzDQo+ICsN Cj4gKy8qKg0KPiArICogY2FuX2JpdHN0dWZmaW5nX2xlbigpIC0gQ2FsY3VsYXRlIHRoZSBtYXhp bXVtIGxlbmd0aCB3aXRoIGJpdHN1ZmZpbmcNCk5pdDogYml0c3R1ZmZpbmcsIHNhbWUgZnVydGhl ciBkb3duDQo+ICsgKiBAYml0c3RyZWFtX2xlbjogbGVuZ3RoIG9mIGEgZGVzdHVmZmVkIGJpdCBz dHJlYW0NCj4gKyAqDQo+ICsgKiBUaGUgd29yc3QgYml0IHN0dWZmaW5nIGNhc2UgaXMgYSBzZXF1 ZW5jZSBpbiB3aGljaCBkb21pbmFudCBhbmQNCj4gKyAqIHJlY2Vzc2l2ZSBiaXRzIGFsdGVybmF0 ZSBldmVyeSBmb3VyIGJpdHM6DQo+ICsgKg0KPiArICogICBEZXN0dWZmZWQ6IDEgMTExMSAgMDAw MCAgMTExMSAgMDAwMCAgMTExMQ0KPiArICogICBTdHVmZmVkOiAgIDEgMTExMW8gMDAwMGkgMTEx MW8gMDAwMGkgMTExMW8NCj4gKyAqDQo+ICsgKiBOb21lbmNsYXR1cmUNCj4gKyAqDQo+ICsgKiAg LSAiMCI6IGRvbWluYW50IGJpdA0KPiArICogIC0gIm8iOiBkb21pbmFudCBzdHVmZiBiaXQNCj4g KyAqICAtICIxIjogcmVjZXNzaXZlIGJpdA0KPiArICogIC0gImkiOiByZWNlc3NpdmUgc3R1ZmYg Yml0DQo+ICsgKg0KPiArICogQXNpZGUgb2YgdGhlIGZpcnN0IGJpdCwgb25lIHN0dWZmIGJpdCBp cyBhZGRlZCBldmVyeSBmb3VyIGJpdHMuDQo+ICsgKg0KPiArICogUmV0dXJuOiBsZW5ndGggb2Yg dGhlIHN0dWZmZWQgYml0IHN0cmVhbSBpbiB0aGUgd29yc3QgY2FzZSBzY2VuYXJpby4NCj4gKyAq Lw0KPiArI2RlZmluZSBjYW5fYml0c3R1ZmZpbmdfbGVuKGRlc3R1ZmZlZF9sZW4pICAgICAgICAg ICAgICAgICAgICAgXA0KPiArICAgICAgIChkZXN0dWZmZWRfbGVuICsgKGRlc3R1ZmZlZF9sZW4g LSAxKSAvIDQpDQo+ICsNCj4gKyNkZWZpbmUgX19jYW5fYml0c3R1ZmZpbmdfbGVuKGJpdHN0dWZm aW5nLCBkZXN0dWZmZWRfbGVuKSAgICAgIFwNCj4gKyAgICAgICAoYml0c3R1ZmZpbmcgPyBjYW5f Yml0c3R1ZmZpbmdfbGVuKGRlc3R1ZmZlZF9sZW4pIDogICAgIFwNCj4gKyAgICAgICAgICAgICAg ICAgICAgICBkZXN0dWZmZWRfbGVuKQ0KPiArDQo+ICsjZGVmaW5lIF9fY2FuX2NjX2ZyYW1lX2Jp dHMoaXNfZWZmLCBiaXRzdHVmZmluZywgICAgICAgICAgICAgICBcDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnRlcm1pc3Npb24sIGRhdGFfbGVuKSAgICAgICAgICAgICBcDQo+ICso ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcDQo+ICsgICAgICAgX19jYW5fYml0c3R1ZmZpbmdfbGVuKGJpdHN0dWZmaW5nLCAgICAg ICAgICAgICAgICAgICAgICBcDQo+ICsgICAgICAgICAgICAgICAoaXNfZWZmID8gQ0FOX0ZSQU1F X0hFQURFUl9FRkZfQklUUyA6ICAgICAgICAgICBcDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgIENBTl9GUkFNRV9IRUFERVJfU0ZGX0JJVFMpICsgICAgICAgICBcDQo+ICsgICAgICAgICAg ICAgICBkYXRhX2xlbiAqIEJJVFNfUEVSX0JZVEUgKyAgICAgICAgICAgICAgICAgICAgICBcDQo+ ICsgICAgICAgICAgICAgICBDQU5fRlJBTUVfQ1JDX0ZJRUxEX0JJVFMpICsgICAgICAgICAgICAg ICAgICAgICBcDQo+ICsgICAgICAgQ0FOX0ZSQU1FX0ZPT1RFUl9CSVRTICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQo+ICsgICAgICAgKGludGVybWlzc2lvbiA/IENBTl9JTlRF Uk1JU1NJT05fQklUUyA6IDApICAgICAgICAgICAgICBcDQo+ICspDQpJIHRoaW5rIEZvb3RlciBh bmQgSW50ZXJtaXNzaW9uIG5lZWQgdG8gYmUgcHVsbGVkIG91dCBvZiB0aGUgcGFyYW1ldGVyIGZv ciBfX2Nhbl9iaXRzdHVmZmluZ19sZW5ndGggYXMgdGhlc2UgZmllbGRzIGFyZSBuZXZlciBzdHVm ZmVkLg0KPiArDQo+ICsjZGVmaW5lIF9fY2FuX2ZkX2ZyYW1lX2JpdHMoaXNfZWZmLCBiaXRzdHVm ZmluZywgICAgICAgICAgICAgICBcDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRl cm1pc3Npb24sIGRhdGFfbGVuKSAgICAgICAgICAgICBcDQo+ICsoICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICsgICAgICAg X19jYW5fYml0c3R1ZmZpbmdfbGVuKGJpdHN0dWZmaW5nLCAgICAgICAgICAgICAgICAgICAgICBc DQo+ICsgICAgICAgICAgICAgICAoaXNfZWZmID8gQ0FORkRfRlJBTUVfSEVBREVSX0VGRl9CSVRT IDogICAgICAgICBcDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIENBTkZEX0ZSQU1FX0hF QURFUl9TRkZfQklUUykgKyAgICAgICBcDQo+ICsgICAgICAgICAgICAgICBkYXRhX2xlbiAqIEJJ VFNfUEVSX0JZVEUpICsgICAgICAgICAgICAgICAgICAgICBcDQo+ICsgICAgICAgKGRhdGFfbGVu IDw9IDE2ID8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICsgICAg ICAgICAgICAgICBDQU5GRF9GUkFNRV9DUkMxN19GSUVMRF9CSVRTIDogICAgICAgICAgICAgICAg ICBcDQo+ICsgICAgICAgICAgICAgICBDQU5GRF9GUkFNRV9DUkMyMV9GSUVMRF9CSVRTKSArICAg ICAgICAgICAgICAgICBcDQo+ICsgICAgICAgQ0FOX0ZSQU1FX0ZPT1RFUl9CSVRTICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICsgICAgICAgKGludGVybWlzc2lvbiA/IENB Tl9JTlRFUk1JU1NJT05fQklUUyA6IDApICAgICAgICAgICAgICBcDQo+ICspDQpJIHRoaW5rIEZv b3RlciBhbmQgSW50ZXJtaXNzaW9uIG5lZWQgdG8gYmUgcHVsbGVkIG91dCBvZiB0aGUgcGFyYW1l dGVyIGZvciBfX2Nhbl9iaXRzdHVmZmluZ19sZW5ndGggYXMgdGhlc2UgZmllbGRzIGFyZSBuZXZl ciBzdHVmZmVkLg0KVGhlIENBTl9GUkFNRV9DUkNfRklFTERfQklUUyBiaXRzIG5lZWQgdG8gYmUg cHVsbGVkIG91dCBvZiB0aGUgY2FuX2JpdHN0dWZmaW5nX2xlbi4gVGhhdCBwb3J0aW9uIG9mIHRo ZSBGcmFtZSBpcyBub3QgZHluYW1pY2FsbHkgc3R1ZmZlZCBpbiBGRCBmcmFtZXMuDQo+ICsNCj4g Ky8qKg0KPiArICogY2FuX2ZyYW1lX2JpdHMoKSAtIENhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIGJp dHMgaW4gb24gdGhlIHdpcmUgaW4gYQ0KTml0OiAiaW4gb24gdGhlIHdpcmUiIC1pbg0KPiArICog ICAgIENBTiBmcmFtZQ0KPiArICogQGlzX2ZkOiB0cnVlOiBDQU4tRkQgZnJhbWU7IGZhbHNlOiBD bGFzc2ljYWwgQ0FOIGZyYW1lLg0KPiArICogQGlzX2VmZjogdHJ1ZTogRXh0ZW5kZWQgZnJhbWU7 IGZhbHNlOiBTdGFuZGFyZCBmcmFtZS4NCj4gKyAqIEBiaXRzdHVmZmluZzogdHJ1ZTogY2FsY3Vs YXRlIHRoZSBiaXRzdWZmaW5nIHdvcnN0IGNhc2U7IGZhbHNlOg0KPiArICogICAgIGNhbGN1bGF0 ZSB0aGUgYml0c3VmZmluZyBiZXN0IGNhc2UgKG5vIGR5bmFtaWMNCj4gKyAqICAgICBiaXRzdWZm aW5nKS4gRml4ZWQgc3R1ZmYgYml0cyBhcmUgYWx3YXlzIGluY2x1ZGVkLg0KPiArICogQGludGVy bWlzc2lvbjogaWYgYW5kIG9ubHkgaWYgdHJ1ZSwgaW5jbHVkZSB0aGUgaW50ZXIgZnJhbWUgc3Bh Y2UNCj4gKyAqICAgICBhc3N1bWluZyBubyBidXMgaWRsZSAoaS5lLiBvbmx5IHRoZSBpbnRlcm1p c3Npb24gZ2V0cyBhZGRlZCkuDQo+ICsgKiBAZGF0YV9sZW46IGxlbmd0aCBvZiB0aGUgZGF0YSBm aWVsZCBpbiBieXRlcy4gQ29ycmVzcG9uZCB0bw0KPiArICogICAgIGNhbihmZClfZnJhbWUtPmxl bi4gU2hvdWxkIGJlIHplcm8gZm9yIHJlbW90ZSBmcmFtZXMuIE5vDQo+ICsgKiAgICAgc2FuaXRp emF0aW9uIGlzIGRvbmUgb24gQGRhdGFfbGVuLg0KPiArICoNCj4gKyAqIFJldHVybjogdGhlIG51 bWJlcnMgb2YgYml0cyBvbiB0aGUgd2lyZSBvZiBhIENBTiBmcmFtZS4NCj4gKyAqLw0KPiArI2Rl ZmluZSBjYW5fZnJhbWVfYml0cyhpc19mZCwgaXNfZWZmLCBiaXRzdHVmZmluZywgICAgICAgICAg ICAgXA0KPiArICAgICAgICAgICAgICAgICAgICAgIGludGVybWlzc2lvbiwgZGF0YV9sZW4pICAg ICAgICAgICAgICAgICAgXA0KPiArKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAgICAgIGlzX2ZkID8gX19jYW5fZmRf ZnJhbWVfYml0cyhpc19lZmYsIGJpdHN0dWZmaW5nLCAgICAgICAgXA0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm1pc3Npb24sIGRhdGFfbGVuKSA6ICAgXA0KPiAr ICAgICAgICAgICAgICAgX19jYW5fY2NfZnJhbWVfYml0cyhpc19lZmYsIGJpdHN0dWZmaW5nLCAg ICAgICAgXA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm1pc3Np b24sIGRhdGFfbGVuKSAgICAgXA0KPiArKQ0KPiArDQo+ICsvKg0KPiArICogTnVtYmVyIG9mIGJ5 dGVzIGluIGEgQ0FOIGZyYW1lDQo+ICsgKiAocm91bmRlZCB1cCwgaW5jbHVkaW5nIGludGVybWlz c2lvbikNCj4gKyAqLw0KPiArI2RlZmluZSBjYW5fZnJhbWVfYnl0ZXMoaXNfZmQsIGlzX2VmZiwg Yml0c3R1ZmZpbmcsIGRhdGFfbGVuKSAgXA0KPiArICAgICAgIERJVl9ST1VORF9VUChjYW5fZnJh bWVfYml0cyhpc19mZCwgaXNfZWZmLCBiaXRzdHVmZmluZywgXA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0cnVlLCBkYXRhX2xlbiksICAgICAgICAgICAgXA0KPiArICAg ICAgICAgICAgICAgICAgICBCSVRTX1BFUl9CWVRFKQ0KPiANCj4gIC8qDQo+ICAgKiBNYXhpbXVt IHNpemUgb2YgYSBDbGFzc2ljYWwgQ0FOIGZyYW1lDQo+IC0gKiAocm91bmRlZCB1cCBhbmQgaWdu b3JpbmcgYml0c3R1ZmZpbmcpDQo+ICsgKiAocm91bmRlZCB1cCwgaWdub3JpbmcgYml0c3R1ZmZp bmcgYnV0IGluY2x1ZGluZyBpbnRlcm1pc3Npb24pDQo+ICAgKi8NCj4gLSNkZWZpbmUgQ0FOX0ZS QU1FX0xFTl9NQVggKENBTl9GUkFNRV9PVkVSSEVBRF9FRkYgKw0KPiBDQU5fTUFYX0RMRU4pDQo+ ICsjZGVmaW5lIENBTl9GUkFNRV9MRU5fTUFYIFwNCj4gKyAgICAgICBjYW5fZnJhbWVfYnl0ZXMo ZmFsc2UsIHRydWUsIGZhbHNlLCBDQU5fTUFYX0RMRU4pDQo+IA0KPiAgLyoNCj4gICAqIE1heGlt dW0gc2l6ZSBvZiBhIENBTi1GRCBmcmFtZQ0KPiAgICogKHJvdW5kZWQgdXAgYW5kIGlnbm9yaW5n IGJpdHN0dWZmaW5nKQ0KSWdub3JpbmcgZHluYW1pYyBiaXRzdHVmZmluZw0KPiAgICovDQo+IC0j ZGVmaW5lIENBTkZEX0ZSQU1FX0xFTl9NQVggKENBTkZEX0ZSQU1FX09WRVJIRUFEX0VGRiArDQo+ IENBTkZEX01BWF9ETEVOKQ0KPiArI2RlZmluZSBDQU5GRF9GUkFNRV9MRU5fTUFYIFwNCj4gKyAg ICAgICBjYW5fZnJhbWVfYnl0ZXModHJ1ZSwgdHJ1ZSwgZmFsc2UsIENBTkZEX01BWF9ETEVOKQ0K PiANCj4gIC8qDQo+ICAgKiBjYW5fY2NfZGxjMmxlbih2YWx1ZSkgLSBjb252ZXJ0IGEgZ2l2ZW4g ZGF0YSBsZW5ndGggY29kZSAoZGxjKSBvZiBhDQo+IC0tDQo+IDIuMzkuMw0KDQpJIHRoaW5rIHlv dXIgYXR0cmlidXRpb24gb2Ygc3VnZ2VzdGVkLWJ5IGZvciBteXNlbGYgaXMgbWl4ZWQgdXAgZm9y IHRoZSBwYXRjaGVzIDIvMyBhbmQgMy8zIPCfmIoNCg0KRm9yIHRoZSBlbnRpcmUgc2VyaWVzIHlv dSBjYW4gYWRkIG15IHJldmlld2VkLWJ5Lg0KDQpUaGFua3MsDQpUaG9tYXMNCg==