From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 5DAA341D9C;
	Tue, 28 Feb 2023 12:13:16 +0100 (CET)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 3D34740EE4;
	Tue, 28 Feb 2023 12:13:16 +0100 (CET)
Received: from mga03.intel.com (mga03.intel.com [134.134.136.65])
 by mails.dpdk.org (Postfix) with ESMTP id 624F64021F
 for <dev@dpdk.org>; Tue, 28 Feb 2023 12:13:14 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
 t=1677582794; x=1709118794;
 h=from:to:cc:subject:date:message-id:references:
 in-reply-to:content-transfer-encoding:mime-version;
 bh=CKiU4b4u06HHTedFLOjSR5x/3WLBDXESI9/TRuy5AtA=;
 b=Bh91BuFxsSiZDPuFKDi8+th5Ne2ywOg5rgWCQTEo1O1FZP4TK5M/HIZ7
 StpR0g/ubb1oEFSOFiOveftXNzIiD6MrqG9S/cuRYmtdzDVESwRPmL/IB
 OIvyjtqLvMvz61fTkZWbcd3c5ZU/K2AZLpk6Nq88EDeMrDRPlAbXZpRY2
 GpJhRAipqCPLXi9L8RgpvT2ZGcMyOesyNPB3oM+U3nbOLz5eNxI0CKk28
 KrY25iFWhI4liO3EXRo5vvJ/+ZQ8yDArhSNO2jAtBXTyorlmVdhFkJ3w6
 AjGl6G/KBBeg4oY1WpLfEj0mX/FJ3wEl97KcCGwYsEDuvYA6DlKjAHxx4 A==;
X-IronPort-AV: E=McAfee;i="6500,9779,10634"; a="336397446"
X-IronPort-AV: E=Sophos;i="5.98,221,1673942400"; d="scan'208";a="336397446"
Received: from fmsmga001.fm.intel.com ([10.253.24.23])
 by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 28 Feb 2023 03:13:13 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6500,9779,10634"; a="817052978"
X-IronPort-AV: E=Sophos;i="5.98,221,1673942400"; d="scan'208";a="817052978"
Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81])
 by fmsmga001.fm.intel.com with ESMTP; 28 Feb 2023 03:12:47 -0800
Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by
 fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.16; Tue, 28 Feb 2023 03:12:46 -0800
Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by
 fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.16 via Frontend Transport; Tue, 28 Feb 2023 03:12:46 -0800
Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.42) by
 edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.16; Tue, 28 Feb 2023 03:12:46 -0800
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=W3HD072XGjMxp2GX2moXLQYLpnJBVSDT+jLd2E4EKbREQsRk5awR2ZwYbmf8M0bLX6EHvOBTVlwIbHpAhbQXntFOMmtPK8724mxxMFP2WyKjJoTjtn8h+Jvq/IOBuJM1qKVR6wKw1JRbUeuq8mIsQQIXXnFJnSUJHd4SBrU49T60Phy5vsr8NGD3Gf3mUuwRPLFoAhWkH0g4FTfI3mC9csWjO9uKsLhFx1XEdzQybmXukNQ6ARf5737IZ+Ppg+ZpcBwlOwqZMV6+eUi7eh3Anc7N/ZFR8/7oVw5B8qHei1YsvrLVLrkVfPbg8QpadzoOFSM3+pFwu44SzYkwXkELyA==
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=CKiU4b4u06HHTedFLOjSR5x/3WLBDXESI9/TRuy5AtA=;
 b=cubNViDpab4mcpfHISNV1Ae4SiTkzCFgbLv4/zNpAFDn56oiGB6F/N/sGYqxld5pZF2hNMgVpBEccKV6nI5rTPjXbJlW/Q5MpciQnILkH+yrUzMfjR7VljEY5kMHqc9uPZD08sPNIZcshVsRlujkvqvfEJv/sAfXSHWMM3gdwWRmmEj4cwlSBhEMJUltc5rw0OCbIynzq9aA4lG4zlfBxsfC33cGlO6flM2ThH7+78hWVOKgZK1IChimIMoA7KhCI8jZtpOVLu6xESgjXSEvBYNimnA7PM9R4U8GiLKGBKxRIfVOzRcDYSyzf2oOGMv5ASOv0ZeaqmVQH4BOyujPtQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
Received: from PH0PR11MB5877.namprd11.prod.outlook.com (2603:10b6:510:141::12)
 by SA1PR11MB7014.namprd11.prod.outlook.com (2603:10b6:806:2b9::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.29; Tue, 28 Feb
 2023 11:12:44 +0000
Received: from PH0PR11MB5877.namprd11.prod.outlook.com
 ([fe80::73e:9f2f:1bef:8263]) by PH0PR11MB5877.namprd11.prod.outlook.com
 ([fe80::73e:9f2f:1bef:8263%7]) with mapi id 15.20.6134.024; Tue, 28 Feb 2023
 11:12:44 +0000
From: "Liu, Mingxia" <mingxia.liu@intel.com>
To: Ferruh Yigit <ferruh.yigit@amd.com>, "Xing, Beilei"
 <beilei.xing@intel.com>, "Zhang, Yuying" <yuying.zhang@intel.com>
CC: "dev@dpdk.org" <dev@dpdk.org>
Subject: RE: [PATCH v7 01/21] net/cpfl: support device initialization
Thread-Topic: [PATCH v7 01/21] net/cpfl: support device initialization
Thread-Index: AQHZQaXnIP1faqCYNUGlqcuuTss4q67jZceAgACV9BA=
Date: Tue, 28 Feb 2023 11:12:44 +0000
Message-ID: <PH0PR11MB58774941658AB56ADF79E9CFECAC9@PH0PR11MB5877.namprd11.prod.outlook.com>
References: <20230213021956.2953088-1-mingxia.liu@intel.com>
 <20230216003010.3439881-1-mingxia.liu@intel.com>
 <20230216003010.3439881-2-mingxia.liu@intel.com>
 <215a5adc-c59e-bfef-be70-5ce5f1a28a47@amd.com>
In-Reply-To: <215a5adc-c59e-bfef-be70-5ce5f1a28a47@amd.com>
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=intel.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PH0PR11MB5877:EE_|SA1PR11MB7014:EE_
x-ms-office365-filtering-correlation-id: 07fb65ae-9381-4bdc-e538-08db197cb71d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: PGbhp8DoDn2SmP1NvMW5ufbE3E6LclUzXUfe3jwFX1dO1FJJpUnm5sJVxpuYfnZ+FlisEQuXKacK1P57dUKeUQIIb4RFhJL9BimkXQ67wJGT/OfMokpsUli3cakNHL33K3PA6zx3shkrP6sg1fAa374cVvoSRhJhD+dkg3tto5lVdgAD3cUMvMLmPTLVFwdvbzlvEeV79ThQJ2BX+MORuLzC8PzLXS5cU543NYevmuDB8D8+13xuT3DrtJIscYrbQRaV7f22jC4t13yw/nR0z64z+J99bgqJMfKRYwUNQnLISM4MtUKWo6jXQCivSQFSCsJiXO+47Q3TEBIXFHdZc35A+Q0Kdqtft9HIGE7VTPOcHo9TB/Lvy4CrX5ByZRaKIst6qHLHJQXfy2KRUxUZe1X/VCYX49Kbh4EM5U+nXl20gCaiqq3FIOyPjP99EOwygo4sarZXQfPxr9irMZ4jrq1og2u0skM61I+fE0pzk0Xt/UahxDDZtSkC2yCiCjypY5oTkaKVzOfQ6AQpYA5up6ZEYI9dErWjlccr2m2fvGuMCjjiGSJ4bQoARQcW8L3Mntx1xIatAxF9SGW+BqGEZv7/u0ofomXvDlT/iannyDbrJ/6C/DrY+f1GCD42IczIsg/lEh1iiAbg3i7CI5/hSQQ5ydEdQUcZVtzCJlOT4hNA4jLNXTbUNGvFiN9LZxcFlTmtOudd1gtE/WXbPxg0tg==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:PH0PR11MB5877.namprd11.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230025)(136003)(366004)(346002)(376002)(396003)(39860400002)(451199018)(110136005)(83380400001)(6636002)(33656002)(4326008)(122000001)(66476007)(8676002)(66446008)(38100700002)(64756008)(71200400001)(53546011)(6506007)(478600001)(316002)(186003)(9686003)(26005)(82960400001)(7696005)(5660300002)(76116006)(66556008)(55016003)(66946007)(30864003)(8936002)(52536014)(86362001)(2906002)(41300700001)(38070700005);
 DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cHIzWURCZVViZkVoSUl1ZDk0YThIWjBIbUprOHRiakRvdm1CUW9KNWFMWUpQ?=
 =?utf-8?B?dmkxZlVhL3NzaGN0Wko3cUJhVndJd01GekJ0V0VDY1hyblVaWkpHWVdnOGRW?=
 =?utf-8?B?NEpPQ0RGWkdHMiszWU1CekpDWkt4eWNMQVdYTzY1b3FZVmZqUlpjd3pmSjBG?=
 =?utf-8?B?aEpDOXhVY3MxUzFwUXZpSmk4QlFUcnJoYkpuNlFhbVZZcDl4QVpiQ2JLZW13?=
 =?utf-8?B?Z3lwT1lFZ01lQk9FRGJmMm9nSTNEWG1telp5ODhlejU4K0dUYm1BdzkzbjNB?=
 =?utf-8?B?S3VXbUc4SnFQSFpBS3RkSXZsWlZXZEtRd2JaNWhPT1BsWlVzL29TcUxxQzRy?=
 =?utf-8?B?YWlpdWMrdVJqRzBaUk83cFcrS3lJTmoxNmgyY2xjL0xhYXRZb29NV0t4cmpN?=
 =?utf-8?B?a2tucExKSnhkbDIrT0FFdENsb3cwaGoxUFlZU1hkN2dkbk8vdDV4U09ueXIr?=
 =?utf-8?B?QUZtTG4rSUtEaG9ZeDEzZUtuQy83RXh0Q1ZYZkNUUzZpV3FJSFBJVnRGeGZP?=
 =?utf-8?B?THNOK3owenpPMnBmNStmdGNaOUdNTG9FZ09ZNEQ5bUR5cG5JV3d2MDArRWpm?=
 =?utf-8?B?SFlsdUYxSmQyaXpsektBbm5EUnlKTTJycHdoU0hYVHpJSHc3SW83dUtmbDU3?=
 =?utf-8?B?RFgyOUpnNERYZC9tSmRlaWVGQnJuMlBWYTNwL2xIanVIRldxRjRJK3BDN0F2?=
 =?utf-8?B?eG5Pa0RQQ1Q5ZFMrY2s4anNQNW0rUEMzT2hYdjlCYVczZ1RCVVVsTHhRRjRY?=
 =?utf-8?B?am5sV1oxK3gySzlINWRJUG5HMmJTNjlJVGNSVmdCRFlxenhoeHpTcDhsTnd3?=
 =?utf-8?B?UCtvd3ZlVjRhZEo5ZHJQeTJCUDQ1b3V3OUUxZWYzR2dONGJSWDh3dHJDYUhF?=
 =?utf-8?B?enhxaUcrL0QxdVNYSHpIWE92dnU3RFE0M2RIYVB0VHczZnhLcUtWL0FGWGdl?=
 =?utf-8?B?MjN5amoxbGRpSEJlRHliZFVnQ3k4YXN6ajZpOW9OVDgrbGMvelFTNmQ4SXlG?=
 =?utf-8?B?VDZIZkIzNFRwQityZ0VRL3ZUTzYrL09YKzJwd3h5aUYreGlGOFV2S3U4NDNa?=
 =?utf-8?B?YXcrWDQxelNDRGs4NXFWVWRveWx5cGJ3OW1tN081QTd6aThmOVU2MURyYWdo?=
 =?utf-8?B?NXQ3RnhBamFqaVViaE9hS0ZhQVpLM2hqWldQcXVpaFFNZWdOd1AzekN5Lzdu?=
 =?utf-8?B?S1VJTVBxcXcxWnZyejdlTTZkRnRRTlVhRVBlL1MyOW9hcVJHYlhhejlEK012?=
 =?utf-8?B?NkhwS3diRXJmYis0WG9VZjdPWThVOWVZZ2djRVdvOUVUVFliZ01PWTIzRGhW?=
 =?utf-8?B?THZNSUJFNlhCemUzQWtjSUZSUmY0bkZ1eEJPa2E4K2plaGFpNDBYeUZwd1R6?=
 =?utf-8?B?M05pVFp0UUxsc0dSSWJxZjBJV0cvWDR5dGlFRWRPUWpJeGtqWXJMb295ZWg5?=
 =?utf-8?B?WjI4UThXYXdFUDQxbmZyaVdJaWgwS09lZ3VHYXp2LzJnS3prQVV2RWpjMFpS?=
 =?utf-8?B?MkJmcHc4TTFUekhLTHhWTFM3ZmY5VjNWM29KaTZPbU9yVUpMRGhVUWwyME83?=
 =?utf-8?B?RGNlVlBqMnRLT0crNi9WbWNmRldydEZwRjhaVTV5VzgyM1daMG9XV0g2UllG?=
 =?utf-8?B?eEo0TFZaZmQxaUtMVjRKVVZwWGU1RldVT3BBeTF5MHdTUkdha1NhN3JoTm4v?=
 =?utf-8?B?Sys5OTR3MXIwdXFuMEZNTWllVmhEY0NheVhMbTRydldzbzhZdk1FSlRpTGVq?=
 =?utf-8?B?T2JlVmRySVEyQ2Q2dURFNmJYTmVYU0wyU1psR0luZWhYQzZWbGJPRTV5b1JR?=
 =?utf-8?B?MDJDelJabjdIVUhTNGJDVlN3Mm1sOE5hQksvVXJCanFFZEtzVWtkMUpwMkd1?=
 =?utf-8?B?bDhqc0s4dWJNREhJOWNGODlIbmlBNG5sKzVIZ1krK3R3bW1OS0tJUFNJcSth?=
 =?utf-8?B?L25BNnFZK2pncmRaWXNnYlVXRTZ6ZC83TGk5dDRCUU5XVEliRUd1L0tsRUJP?=
 =?utf-8?B?NTkrQ1NFSC9IZC9Od2JBamdYSEdQTldvR2NuMzU3NW10MUNPOTMxMDd5OEx6?=
 =?utf-8?B?RlAyeGN5aGM2eHo3cEs5RXJtL295V28xak5IQ2hqbG1VMnFuVVRRVU1JOHlq?=
 =?utf-8?Q?DVlHcrM5MQ69rcmoQu4U7KeQS?=
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: PH0PR11MB5877.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 07fb65ae-9381-4bdc-e538-08db197cb71d
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Feb 2023 11:12:44.1417 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: xibmyxU8A4+xjfjBGGRkkIb3aytn9t/l5Sayo5mmCYILxHs+D9qoVy0luKMr9JozGNocsMWj9hSQp+0yQQ72cg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB7014
X-OriginatorOrg: intel.com
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRmVycnVoIFlpZ2l0IDxm
ZXJydWgueWlnaXRAYW1kLmNvbT4NCj4gU2VudDogVHVlc2RheSwgRmVicnVhcnkgMjgsIDIwMjMg
NTo0NCBBTQ0KPiBUbzogTGl1LCBNaW5neGlhIDxtaW5neGlhLmxpdUBpbnRlbC5jb20+OyBYaW5n
LCBCZWlsZWkgPGJlaWxlaS54aW5nQGludGVsLmNvbT47DQo+IFpoYW5nLCBZdXlpbmcgPHl1eWlu
Zy56aGFuZ0BpbnRlbC5jb20+DQo+IENjOiBkZXZAZHBkay5vcmc7IFlpZ2l0LCBGZXJydWggPGZl
cnJ1aC55aWdpdEBhbWQuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHY3IDAxLzIxXSBuZXQv
Y3BmbDogc3VwcG9ydCBkZXZpY2UgaW5pdGlhbGl6YXRpb24NCj4gDQo+IE9uIDIvMTYvMjAyMyAx
MjoyOSBBTSwgTWluZ3hpYSBMaXUgd3JvdGU6DQo+ID4gU3VwcG9ydCBkZXZpY2UgaW5pdCBhbmQg
YWRkIHRoZSBmb2xsb3dpbmcgZGV2IG9wczoNCj4gPiAgLSBkZXZfY29uZmlndXJlDQo+ID4gIC0g
ZGV2X2Nsb3NlDQo+ID4gIC0gZGV2X2luZm9zX2dldA0KPiA+ICAtIGxpbmtfdXBkYXRlDQo+ID4g
IC0gZGV2X3N1cHBvcnRlZF9wdHlwZXNfZ2V0DQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBNaW5n
eGlhIExpdSA8bWluZ3hpYS5saXVAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ICBNQUlOVEFJTkVS
UyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOCArDQo+ID4gIGRvYy9ndWlkZXMvbmlj
cy9jcGZsLnJzdCAgICAgICAgICAgICAgIHwgIDY2ICsrKw0KPiANCj4gTmVlZCB0byBhZGQgZmls
ZSB0byB0b2N0cmVlIChkb2MvZ3VpZGVzL25pY3MvaW5kZXgucnN0KSB0byBtYWtlIGl0IHZpc2li
bGUuDQo+IA0KW0xpdSwgTWluZ3hpYV0gb2ssIGdvdCBpdCEgVGhhbmtzIQ0KDQo+ID4gIGRvYy9n
dWlkZXMvbmljcy9mZWF0dXJlcy9jcGZsLmluaSAgICAgIHwgIDEyICsNCj4gPiAgZG9jL2d1aWRl
cy9yZWxfbm90ZXMvcmVsZWFzZV8yM18wMy5yc3QgfCAgIDYgKw0KPiA+ICBkcml2ZXJzL25ldC9j
cGZsL2NwZmxfZXRoZGV2LmMgICAgICAgICB8IDc2OCArKysrKysrKysrKysrKysrKysrKysrKysr
DQo+ID4gIGRyaXZlcnMvbmV0L2NwZmwvY3BmbF9ldGhkZXYuaCAgICAgICAgIHwgIDc4ICsrKw0K
PiA+ICBkcml2ZXJzL25ldC9jcGZsL2NwZmxfbG9ncy5oICAgICAgICAgICB8ICAzMiArKw0KPiA+
ICBkcml2ZXJzL25ldC9jcGZsL2NwZmxfcnh0eC5jICAgICAgICAgICB8IDI0NCArKysrKysrKw0K
PiA+ICBkcml2ZXJzL25ldC9jcGZsL2NwZmxfcnh0eC5oICAgICAgICAgICB8ICAyNSArDQo+IA0K
PiBjcGZsX3J4dHguW2NoXSBub3QgdXNlZCBhdCBhbGwgaW4gdGhpcyBwYXRjaCwgJ2NwZmxfdHhf
cXVldWVfc2V0dXAoKScgaXMgYWRkZWQgaW4NCj4gdGhpcyBwYXRjaCBhbmQgbmV4dCBwYXRjaCAo
Mi8yMSkgbG9va3MgYSBiZXR0ZXIgcGxhY2UgZm9yIGl0Lg0KPiANCltMaXUsIE1pbmd4aWFdIG9r
LCB3aWxsIHVwZGF0ZSBpdCwgdGhhbmtzIQ0KDQo+ID4gIGRyaXZlcnMvbmV0L2NwZmwvbWVzb24u
YnVpbGQgICAgICAgICAgIHwgIDE0ICsNCj4gPiAgZHJpdmVycy9uZXQvbWVzb24uYnVpbGQgICAg
ICAgICAgICAgICAgfCAgIDEgKw0KPiA+ICAxMSBmaWxlcyBjaGFuZ2VkLCAxMjU0IGluc2VydGlv
bnMoKykNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9ndWlkZXMvbmljcy9jcGZsLnJzdCAg
Y3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gZG9jL2d1aWRlcy9uaWNzL2ZlYXR1cmVzL2NwZmwuaW5p
ICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiBkcml2ZXJzL25ldC9jcGZsL2NwZmxfZXRoZGV2LmMg
IGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+IGRyaXZlcnMvbmV0L2NwZmwvY3BmbF9ldGhkZXYuaCAg
Y3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gZHJpdmVycy9uZXQvY3BmbC9jcGZsX2xvZ3MuaCAgY3Jl
YXRlIG1vZGUgMTAwNjQ0DQo+ID4gZHJpdmVycy9uZXQvY3BmbC9jcGZsX3J4dHguYyAgY3JlYXRl
IG1vZGUgMTAwNjQ0DQo+ID4gZHJpdmVycy9uZXQvY3BmbC9jcGZsX3J4dHguaCAgY3JlYXRlIG1v
ZGUgMTAwNjQ0DQo+ID4gZHJpdmVycy9uZXQvY3BmbC9tZXNvbi5idWlsZA0KPiA+DQo+ID4gZGlm
ZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMgaW5kZXggOWEwZjQxNmQyZS4uYWY4
MGVkYWY2ZQ0KPiA+IDEwMDY0NA0KPiA+IC0tLSBhL01BSU5UQUlORVJTDQo+ID4gKysrIGIvTUFJ
TlRBSU5FUlMNCj4gPiBAQCAtNzgzLDYgKzc4MywxNCBAQCBGOiBkcml2ZXJzL2NvbW1vbi9pZHBm
Lw0KPiA+ICBGOiBkb2MvZ3VpZGVzL25pY3MvaWRwZi5yc3QNCj4gPiAgRjogZG9jL2d1aWRlcy9u
aWNzL2ZlYXR1cmVzL2lkcGYuaW5pDQo+ID4NCj4gPiArSW50ZWwgY3BmbA0KPiA+ICtNOiBZdXlp
bmcgWmhhbmcgPHl1eWluZy56aGFuZ0BpbnRlbC5jb20+DQo+ID4gK006IEJlaWxlaSBYaW5nIDxi
ZWlsZWkueGluZ0BpbnRlbC5jb20+DQo+ID4gK1Q6IGdpdDovL2RwZGsub3JnL25leHQvZHBkay1u
ZXh0LW5ldC1pbnRlbA0KPiA+ICtGOiBkcml2ZXJzL25ldC9jcGZsLw0KPiA+ICtGOiBkb2MvZ3Vp
ZGVzL25pY3MvY3BmbC5yc3QNCj4gPiArRjogZG9jL2d1aWRlcy9uaWNzL2ZlYXR1cmVzL2NwZmwu
aW5pDQo+ID4gKw0KPiANCj4gRG9jdW1lbnRhdGlvbiBtZW50aW9ucyBkcml2ZXIgaXMgZXhwZXJp
bWVudGFsLCBjYW4geW91IHBsZWFzZSBoaWdobGlnaHQgdGhpcw0KPiBpbiB0aGUgbWFpbnRhaW5l
cnMgZmlsZSB0b28sIGFzOg0KPiBJbnRlbCBjcGZsIC0gRVhQRVJJTUVOVEFMDQo+IA0KW0xpdSwg
TWluZ3hpYV0gb2ssIHdpbGwgdXBkYXRlIGl0LCB0aGFua3MhDQoNCj4gPiAgSW50ZWwgaWdjDQo+
ID4gIE06IEp1bmZlbmcgR3VvIDxqdW5mZW5nLmd1b0BpbnRlbC5jb20+DQo+ID4gIE06IFNpbWVp
IFN1IDxzaW1laS5zdUBpbnRlbC5jb20+DQo+ID4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvbmlj
cy9jcGZsLnJzdCBiL2RvYy9ndWlkZXMvbmljcy9jcGZsLnJzdCBuZXcNCj4gPiBmaWxlIG1vZGUg
MTAwNjQ0IGluZGV4IDAwMDAwMDAwMDAuLjdjNWFmZjA3ODkNCj4gPiAtLS0gL2Rldi9udWxsDQo+
ID4gKysrIGIvZG9jL2d1aWRlcy9uaWNzL2NwZmwucnN0DQo+ID4gQEAgLTAsMCArMSw2NiBAQA0K
PiA+ICsuLiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlDQo+ID4gKyAgIENv
cHlyaWdodChjKSAyMDIyIEludGVsIENvcnBvcmF0aW9uLg0KPiA+ICsNCj4gDQo+IHMvMjAyMi8y
MDIzLw0KPiANCj4gPiArLi4gaW5jbHVkZTo6IDxpc29udW0udHh0Pg0KPiA+ICsNCj4gPiArQ1BG
TCBQb2xsIE1vZGUgRHJpdmVyDQo+ID4gKz09PT09PT09PT09PT09PT09PT09PQ0KPiA+ICsNCj4g
PiArVGhlIFsqRVhQRVJJTUVOVEFMKl0gY3BmbCBQTUQgKCoqbGlicnRlX25ldF9jcGZsKiopIHBy
b3ZpZGVzIHBvbGwNCj4gPiArbW9kZSBkcml2ZXIgc3VwcG9ydCBmb3IgSW50ZWxcIHxyZWd8IElu
ZnJhc3RydWN0dXJlIFByb2Nlc3NpbmcgVW5pdCAoSW50ZWxcDQo+IHxyZWd8IElQVSkgRTIxMDAu
DQo+ID4gKw0KPiANCj4gQ2FuIHlvdSBwbGVhc2UgcHJvdmlkZSBhIGxpbmsgZm9yIHRoZSBtZW50
aW9uZWQgZGV2aWNlPw0KPiANCj4gU28sIGludGVyZXN0ZWQgdXNlcnMgY2FuIGV2YWx1YXRlLCBs
ZWFybiBtb3JlIGFib3V0IHRoZSBtZW50aW9uZWQgaGFyZHdhcmUuDQo+IA0KW0xpdSwgTWluZ3hp
YV0gb2ssIHdpbGwgYWRkIGl0LCB0aGFua3MhDQo+IA0KPiA+ICsNCj4gPiArTGludXggUHJlcmVx
dWlzaXRlcw0KPiA+ICstLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKw0KPiA+ICtGb2xsb3cgdGhl
IERQREsgOmRvYzpgLi4vbGludXhfZ3NnL2luZGV4YCB0byBzZXR1cCB0aGUgYmFzaWMgRFBESw0K
PiBlbnZpcm9ubWVudC4NCj4gPiArDQo+ID4gK1RvIGdldCBiZXR0ZXIgcGVyZm9ybWFuY2Ugb24g
SW50ZWwgcGxhdGZvcm1zLCBwbGVhc2UgZm9sbG93IHRoZQ0KPiA+ICs6ZG9jOmAuLi9saW51eF9n
c2cvbmljX3BlcmZfaW50ZWxfcGxhdGZvcm1gLg0KPiA+ICsNCj4gPiArDQo+ID4gK1ByZS1JbnN0
YWxsYXRpb24gQ29uZmlndXJhdGlvbg0KPiA+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0NCj4gPiArDQo+ID4gK1J1bnRpbWUgQ29uZmlnIE9wdGlvbnMNCj4gPiArfn5+fn5+fn5+fn5+
fn5+fn5+fn5+fg0KPiANCj4gSXMgIlJ1bnRpbWUgQ29uZmlnIE9wdGlvbnMiLCBhIHN1YiBzZWN0
aW9uIG9mICJQcmUtSW5zdGFsbGF0aW9uIENvbmZpZ3VyYXRpb24iPw0KPiANCltMaXUsIE1pbmd4
aWFdIFllcywgcmVmZXIgdG8gaWNlIGFuZCBpNDBlIC5yc3QuDQoNCj4gPiArDQo+ID4gKy0gYGB2
cG9ydGBgIChkZWZhdWx0IGBgMGBgKQ0KPiA+ICsNCj4gPiArICBUaGUgUE1EIHN1cHBvcnRzIGNy
ZWF0aW9uIG9mIG11bHRpcGxlIHZwb3J0cyBmb3Igb25lIFBDSSBkZXZpY2UsDQo+ID4gKyBlYWNo
IHZwb3J0IGNvcnJlc3BvbmRzIHRvIGEgc2luZ2xlIGV0aGRldi4NCj4gPiArICBUaGUgdXNlciBj
YW4gc3BlY2lmeSB0aGUgdnBvcnRzIHdpdGggc3BlY2lmaWMgSUQgdG8gYmUgY3JlYXRlZCwgZm9y
DQo+IGV4YW1wbGU6Og0KPiA+ICsNCj4gPiArICAgIC1hIGNhOjAwLjAsdnBvcnQ9WzAsMiwzXQ0K
PiA+ICsNCj4gPiArICBUaGVuIHRoZSBQTUQgd2lsbCBjcmVhdGUgMyB2cG9ydHMgKGV0aGRldnMp
IGZvciBkZXZpY2UgYGBjYTowMC4wYGAuDQo+ID4gKw0KPiANCj4gV2h5IG5lZWQgc3BlY2lmaWMg
SURzPw0KPiANCltiZWlsZWldIHdl4oCZcmUgdXNpbmcgdGhpcyBJRCB0byBtYXAgcGh5c2ljYWwg
cG9ydCB0byB2cG9ydCBhcyBkZWZhdWx0IHJlY2VpdmUgYW5kIHRyYW5zbWl0IGludGVyZmFjZS4N
Cg0KPiBvdGhlciBvcHRpb24gaXMganVzdCBwcm92aWRlIG51bWJlciBvZiByZXF1ZXN0ZWQgdnBv
cnRzIGFuZCB0aGV5IGdldA0KPiBzZXF1ZW50aWFsIGlkcywgYnV0IHNpbmNlIHZwb3J0IGlkcyBh
cmUgZ290IGZyb20gdXNlciBpbnN0ZWFkIHRoZXJlIG11c3QgYmUNCj4gc29tZSBzaWduaWZpY2Fu
Y2Ugb2YgdGhlbSwgY2FuIHlvdSBwbGVhc2UgYnJpZWZseSBkb2N1bWVudCB3aHkgaWRzIG1hdHRl
ci4NCj4gDQo+ID4gKyAgSWYgdGhlIHBhcmFtZXRlciBpcyBub3QgcHJvdmlkZWQsIHRoZSB2cG9y
dCAwIHdpbGwgYmUgY3JlYXRlZCBieSBkZWZhdWx0Lg0KPiA+ICsNCj4gPiArLSBgYHJ4X3Npbmds
ZWBgIChkZWZhdWx0IGBgMGBgKQ0KPiA+ICsNCj4gPiArICBUaGVyZSBhcmUgdHdvIHF1ZXVlIG1v
ZGVzIHN1cHBvcnRlZCBieSBJbnRlbFwgfHJlZ3wgSVBVIEV0aGVybmV0DQo+ID4gKyBFMjEwMCBT
ZXJpZXMsICBzaW5nbGUgcXVldWUgbW9kZSBhbmQgc3BsaXQgcXVldWUgbW9kZSBmb3IgUnggcXVl
dWUuDQo+IA0KPiBDYW4geW91IHBsZWFzZSBkZXNjcmliZSBpbiB0aGUgZG9jdW1lbnRhdGlvbiB3
aGF0ICdzcGxpdCBxdWV1ZScgYW5kICdzaW5nbGUNCj4gcXVldWUnIGFyZSBhbmQgd2hhdCBpcyB0
aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZW0/DQo+DQogW2JlaWxlaV0gc3VyZSwgd2lsbCBhZGQg
dGhlIGRlc2NyaXB0aW9uLg0KDQo+IDwuLi4+DQo+IA0KPiA+IGluZGV4IDA3OTE0MTcwYTcuLmIw
YjIzZDFhNDQgMTAwNjQ0DQo+ID4gLS0tIGEvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8y
M18wMy5yc3QNCj4gPiArKysgYi9kb2MvZ3VpZGVzL3JlbF9ub3Rlcy9yZWxlYXNlXzIzXzAzLnJz
dA0KPiA+IEBAIC04OCw2ICs4OCwxMiBAQCBOZXcgRmVhdHVyZXMNCj4gPiAgICAqIEFkZGVkIHRp
bWVzeW5jIEFQSSBzdXBwb3J0Lg0KPiA+ICAgICogQWRkZWQgcGFja2V0IHBhY2luZyhsYXVuY2gg
dGltZSBvZmZsb2FkaW5nKSBzdXBwb3J0Lg0KPiA+DQo+ID4gKyogKipBZGRlZCBJbnRlbCBjcGZs
IGRyaXZlci4qKg0KPiA+ICsNCj4gPiArICBBZGRlZCB0aGUgbmV3IGBgY3BmbGBgIG5ldCBkcml2
ZXINCj4gPiArICBmb3IgSW50ZWxcIHxyZWd8IEluZnJhc3RydWN0dXJlIFByb2Nlc3NpbmcgVW5p
dCAoSW50ZWxcIHxyZWd8IElQVSkgRTIxMDAuDQo+ID4gKyAgU2VlIHRoZSA6ZG9jOmAuLi9uaWNz
L2NwZmxgIE5JQyBndWlkZSBmb3IgbW9yZSBkZXRhaWxzIG9uIHRoaXMgbmV3IGRyaXZlci4NCj4g
PiArDQo+IA0KPiAiTmV3IEZlYXR1cmVzIiBzZWN0aW9uIGlzIGdyb3VwZWQsIGFuIHRoYXQgZ3Jv
dXBpbmcgaXMgZG9jdW1lbnRlZCBpbiB0aGUNCj4gc2VjdGlvbiBjb21tZW50Lg0KPiANCj4gQ2Fu
IHlvdSBwbGVhc2UgbW92ZSB0aGUgdXBkYXRlIHRvIHRoZSBwcm9wZXIgbG9jYXRpb24gaW4gdGhl
IHNlY3Rpb24uDQo+IA0KW0xpdSwgTWluZ3hpYV0gb2ssIHRoYW5rcyB3aWxsIHVwZGF0ZSBpdC4N
Cj4gPC4uLj4NCj4gDQo+ID4gK3N0YXRpYyBpbnQNCj4gPiArY3BmbF9kZXZfbGlua191cGRhdGUo
c3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4gKwkJICAgICBfX3J0ZV91bnVzZWQgaW50IHdh
aXRfdG9fY29tcGxldGUpIHsNCj4gPiArCXN0cnVjdCBpZHBmX3Zwb3J0ICp2cG9ydCA9IGRldi0+
ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ID4gKwlzdHJ1Y3QgcnRlX2V0aF9saW5rIG5ld19saW5rOw0K
PiA+ICsNCj4gPiArCW1lbXNldCgmbmV3X2xpbmssIDAsIHNpemVvZihuZXdfbGluaykpOw0KPiA+
ICsNCj4gPiArCXN3aXRjaCAodnBvcnQtPmxpbmtfc3BlZWQpIHsNCj4gPiArCWNhc2UgUlRFX0VU
SF9TUEVFRF9OVU1fMTBNOg0KPiA+ICsJCW5ld19saW5rLmxpbmtfc3BlZWQgPSBSVEVfRVRIX1NQ
RUVEX05VTV8xME07DQo+ID4gKwkJYnJlYWs7DQo+ID4gKwljYXNlIFJURV9FVEhfU1BFRURfTlVN
XzEwME06DQo+ID4gKwkJbmV3X2xpbmsubGlua19zcGVlZCA9IFJURV9FVEhfU1BFRURfTlVNXzEw
ME07DQo+ID4gKwkJYnJlYWs7DQo+ID4gKwljYXNlIFJURV9FVEhfU1BFRURfTlVNXzFHOg0KPiA+
ICsJCW5ld19saW5rLmxpbmtfc3BlZWQgPSBSVEVfRVRIX1NQRUVEX05VTV8xRzsNCj4gPiArCQli
cmVhazsNCj4gPiArCWNhc2UgUlRFX0VUSF9TUEVFRF9OVU1fMTBHOg0KPiA+ICsJCW5ld19saW5r
Lmxpbmtfc3BlZWQgPSBSVEVfRVRIX1NQRUVEX05VTV8xMEc7DQo+ID4gKwkJYnJlYWs7DQo+ID4g
KwljYXNlIFJURV9FVEhfU1BFRURfTlVNXzIwRzoNCj4gPiArCQluZXdfbGluay5saW5rX3NwZWVk
ID0gUlRFX0VUSF9TUEVFRF9OVU1fMjBHOw0KPiA+ICsJCWJyZWFrOw0KPiA+ICsJY2FzZSBSVEVf
RVRIX1NQRUVEX05VTV8yNUc6DQo+ID4gKwkJbmV3X2xpbmsubGlua19zcGVlZCA9IFJURV9FVEhf
U1BFRURfTlVNXzI1RzsNCj4gPiArCQlicmVhazsNCj4gPiArCWNhc2UgUlRFX0VUSF9TUEVFRF9O
VU1fNDBHOg0KPiA+ICsJCW5ld19saW5rLmxpbmtfc3BlZWQgPSBSVEVfRVRIX1NQRUVEX05VTV80
MEc7DQo+ID4gKwkJYnJlYWs7DQo+ID4gKwljYXNlIFJURV9FVEhfU1BFRURfTlVNXzUwRzoNCj4g
PiArCQluZXdfbGluay5saW5rX3NwZWVkID0gUlRFX0VUSF9TUEVFRF9OVU1fNTBHOw0KPiA+ICsJ
CWJyZWFrOw0KPiA+ICsJY2FzZSBSVEVfRVRIX1NQRUVEX05VTV8xMDBHOg0KPiA+ICsJCW5ld19s
aW5rLmxpbmtfc3BlZWQgPSBSVEVfRVRIX1NQRUVEX05VTV8xMDBHOw0KPiA+ICsJCWJyZWFrOw0K
PiA+ICsJY2FzZSBSVEVfRVRIX1NQRUVEX05VTV8yMDBHOg0KPiA+ICsJCW5ld19saW5rLmxpbmtf
c3BlZWQgPSBSVEVfRVRIX1NQRUVEX05VTV8yMDBHOw0KPiA+ICsJCWJyZWFrOw0KPiANCj4gV2hh
dCBhYm91dDoNCj4gYGBgDQo+IHN3aXRjaCAodnBvcnQtPmxpbmtfc3BlZWQpIHsNCj4gY2FzZSBS
VEVfRVRIX1NQRUVEX05VTV8xME06DQo+IGNhc2UgUlRFX0VUSF9TUEVFRF9OVU1fMTAwTToNCj4g
Li4uDQo+IGNhc2UgUlRFX0VUSF9TUEVFRF9OVU1fMjAwRzoNCj4gCW5ld19saW5rLmxpbmtfc3Bl
ZWQgPSB2cG9ydC0+bGlua19zcGVlZDsNCj4gCWJyZWFrOw0KPiBkZWZhdWx0Og0KPiAJbmV3X2xp
bmsubGlua19zcGVlZCA9IFJURV9FVEhfU1BFRURfTlVNX1VOS05PV047IGBgYA0KPiANCj4gT1IN
Cj4gDQo+IGBgYA0KPiBmb3IgKGkgPSAwOyBpIDwgUlRFX0RJTShzdXBwb3J0ZWRfc3BlZWRzKTsg
aSsrKSB7DQo+IAlpZiAodnBvcnQtPmxpbmtfc3BlZWQgPT0gc3VwcG9ydGVkX3NwZWVkc1tpXSkg
ew0KPiAJCW5ld19saW5rLmxpbmtfc3BlZWQgPSB2cG9ydC0+bGlua19zcGVlZDsNCj4gCQlicmVh
azsNCj4gCX0NCj4gfQ0KPiANCj4gaWYgKGkgPT0gUlRFX0RJTShzdXBwb3J0ZWRfc3BlZWRzKSkN
Cj4gCW5ld19saW5rLmxpbmtfc3BlZWQgPSBSVEVfRVRIX1NQRUVEX05VTV9VTktOT1dOOyBgYGAN
Cj4gDQo+ID4gKwlkZWZhdWx0Og0KPiA+ICsJCW5ld19saW5rLmxpbmtfc3BlZWQgPSBSVEVfRVRI
X1NQRUVEX05VTV9OT05FOw0KPiANCj4gSSB0aGluayB0aGlzIHNob3VsZCBiZSA6DQo+IA0KPiBp
ZiAobGlua191cCkNCj4gCW5ld19saW5rLmxpbmtfc3BlZWQgPSBSVEVfRVRIX1NQRUVEX05VTV9V
TktOT1dOOyBlbHNlDQo+IAluZXdfbGluay5saW5rX3NwZWVkID0gUlRFX0VUSF9TUEVFRF9OVU1f
Tk9ORTsNCj4NCltMaXUsIE1pbmd4aWFdIFRoYW5rcywgZ29vZCBpZGVhLCB3aWxsIHVwZGF0ZS4g
DQoNCj4gPC4uLj4NCj4gDQo+ID4gK3N0YXRpYyBpbnQNCj4gPiAraW5zZXJ0X3ZhbHVlKHN0cnVj
dCBjcGZsX2RldmFyZ3MgKmRldmFyZ3MsIHVpbnQxNl90IGlkKSB7DQo+ID4gKwl1aW50MTZfdCBp
Ow0KPiA+ICsNCj4gPiArCS8qIGlnbm9yZSBkdXBsaWNhdGUgKi8NCj4gPiArCWZvciAoaSA9IDA7
IGkgPCBkZXZhcmdzLT5yZXFfdnBvcnRfbmI7IGkrKykgew0KPiA+ICsJCWlmIChkZXZhcmdzLT5y
ZXFfdnBvcnRzW2ldID09IGlkKQ0KPiA+ICsJCQlyZXR1cm4gMDsNCj4gPiArCX0NCj4gPiArDQo+
ID4gKwlpZiAoZGV2YXJncy0+cmVxX3Zwb3J0X25iID49IFJURV9ESU0oZGV2YXJncy0+cmVxX3Zw
b3J0cykpIHsNCj4gPiArCQlQTURfSU5JVF9MT0coRVJSLCAiVG90YWwgdnBvcnQgbnVtYmVyIGNh
bid0IGJlID4gJWQiLA0KPiA+ICsJCQkgICAgIENQRkxfTUFYX1ZQT1JUX05VTSk7DQo+IA0KPiBD
aGVjayBpcyB1c2luZyAnUlRFX0RJTShkZXZhcmdzLT5yZXFfdnBvcnRzKScgYW5kIGxvZyBpcyB1
c2luZw0KPiAnQ1BGTF9NQVhfVlBPUlRfTlVNJywgdGhleSBhcmUgc2FtZSB2YWx1ZSBidXQgYmV0
dGVyIHRvIHN0aWNrIHRvIG9uZSBvZg0KPiB0aGVtLg0KPiANCltMaXUsIE1pbmd4aWFdIFRoYW5r
cywgZ29vZCBpZGVhLCB3aWxsIHVwZGF0ZS4NCj4gPC4uLj4NCj4gDQo+ID4gK3N0YXRpYyBpbnQN
Cj4gPiArcGFyc2VfdnBvcnQoY29uc3QgY2hhciAqa2V5LCBjb25zdCBjaGFyICp2YWx1ZSwgdm9p
ZCAqYXJncykgew0KPiA+ICsJc3RydWN0IGNwZmxfZGV2YXJncyAqZGV2YXJncyA9IGFyZ3M7DQo+
ID4gKwljb25zdCBjaGFyICpwb3MgPSB2YWx1ZTsNCj4gPiArDQo+ID4gKwlkZXZhcmdzLT5yZXFf
dnBvcnRfbmIgPSAwOw0KPiA+ICsNCj4gDQo+IGlmICJ2cG9ydCIgY2FuIGJlIHByb3ZpZGVkIG11
bHRpcGxlIHRpbWVzLCBhYm92ZSBhc3NpZ25tZW50IGlzIHdyb25nLCBsaWtlOg0KPiAidnBvcnQ9
MSx2cG9ydD0zLTUiDQo+IA0KW2JlaWxlaV0gV2Ugd29u4oCZdCBzdXBwb3J0IHRoaXMgY2FzZS4g
V2lsbCBhZGQgY2hlY2sgaW4gaWRwZl9wYXJzZV9kZXZhcmdzLg0KDQo+IDwuLi4+DQo+IA0KPiA+
ICtzdGF0aWMgaW50DQo+ID4gK2NwZmxfcGFyc2VfZGV2YXJncyhzdHJ1Y3QgcnRlX3BjaV9kZXZp
Y2UgKnBjaV9kZXYsIHN0cnVjdA0KPiBjcGZsX2FkYXB0ZXJfZXh0ICphZGFwdGVyLA0KPiA+ICsJ
CSAgIHN0cnVjdCBjcGZsX2RldmFyZ3MgKmNwZmxfYXJncykNCj4gPiArew0KPiA+ICsJc3RydWN0
IHJ0ZV9kZXZhcmdzICpkZXZhcmdzID0gcGNpX2Rldi0+ZGV2aWNlLmRldmFyZ3M7DQo+ID4gKwlz
dHJ1Y3QgcnRlX2t2YXJncyAqa3ZsaXN0Ow0KPiA+ICsJaW50IGksIHJldDsNCj4gPiArDQo+ID4g
KwljcGZsX2FyZ3MtPnJlcV92cG9ydF9uYiA9IDA7DQo+ID4gKw0KPiA+ICsJaWYgKGRldmFyZ3Mg
PT0gTlVMTCkNCj4gPiArCQlyZXR1cm4gMDsNCj4gPiArDQo+ID4gKwlrdmxpc3QgPSBydGVfa3Zh
cmdzX3BhcnNlKGRldmFyZ3MtPmFyZ3MsIGNwZmxfdmFsaWRfYXJncyk7DQo+ID4gKwlpZiAoa3Zs
aXN0ID09IE5VTEwpIHsNCj4gPiArCQlQTURfSU5JVF9MT0coRVJSLCAiaW52YWxpZCBrdmFyZ3Mg
a2V5Iik7DQo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJLyog
Y2hlY2sgcGFyc2VkIGRldmFyZ3MgKi8NCj4gPiArCWlmIChhZGFwdGVyLT5jdXJfdnBvcnRfbmIg
KyBjcGZsX2FyZ3MtPnJlcV92cG9ydF9uYiA+DQo+ID4gKwkgICAgQ1BGTF9NQVhfVlBPUlRfTlVN
KSB7DQo+IA0KPiBBdCB0aGlzIHN0YWdlICdjcGZsX2FyZ3MtPnJlcV92cG9ydF9uYicgaXMgMCBz
aW5jZSBDUEZMX1ZQT1JUIGlzIG5vdCBwYXJzZWQNCj4geWV0LCBpcyB0aGUgaW50ZW50aW9uIHRv
IGRvIHRoaXMgY2hlY2sgYWZ0ZXIgJ3J0ZV9rdmFyZ3NfcHJvY2Vzc3MoKSc/DQo+IA0KW2JlaWxl
aV0gWWVzLCB0aGFua3MgZm9yIHRoZSBjYXRjaCwgd2lsbCBmaXggaXQgaW4gbmV4dCB2ZXJzaW9u
Lg0KDQo+ID4gKwkJUE1EX0lOSVRfTE9HKEVSUiwgIlRvdGFsIHZwb3J0IG51bWJlciBjYW4ndCBi
ZSA+ICVkIiwNCj4gPiArCQkJICAgICBDUEZMX01BWF9WUE9SVF9OVU0pOw0KPiA+ICsJCXJldCA9
IC1FSU5WQUw7DQo+ID4gKwkJZ290byBiYWlsOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCWZvciAo
aSA9IDA7IGkgPCBjcGZsX2FyZ3MtPnJlcV92cG9ydF9uYjsgaSsrKSB7PiArCQlpZg0KPiAoYWRh
cHRlci0+Y3VyX3Zwb3J0cyAmIFJURV9CSVQzMihjcGZsX2FyZ3MtPnJlcV92cG9ydHNbaV0pKSB7
DQo+ID4gKwkJCVBNRF9JTklUX0xPRyhFUlIsICJWcG9ydCAlZCBoYXMgYmVlbiBjcmVhdGVkIiwN
Cj4gPiArCQkJCSAgICAgY3BmbF9hcmdzLT5yZXFfdnBvcnRzW2ldKTsNCj4gDQo+IFRoaXMgaXMg
anVzdCBhcmd1bWVudCBwYXJzaW5nLCBub3RoaW5nIGNyZWF0ZWQgeWV0LCBJIHN1Z2dlc3QgdXBk
YXRpbmcgbG9nDQo+IGFjY29yZGluZ2x5Lg0KPiANCltiZWlsZWldIE9LLCB3aWxsIHVwZGF0ZSB0
aGUgbG9nIGluIHRoZSBuZXh0IHZlcnNpb24uDQoNCj4gPiArCQkJcmV0ID0gLUVJTlZBTDsNCj4g
PiArCQkJZ290byBiYWlsOw0KPiA+ICsJCX0NCj4gPiArCX0NCj4gDQo+IHNhbWUgaGVyZSwgYm90
aCBmb3IgJ2NwZmxfYXJncy0+cmVxX3Zwb3J0X25iJyAmICdjcGZsX2FyZ3MtPnJlcV92cG9ydHNb
XScsDQo+IHRoZXkgYXJlIG5vdCB1cGRhdGVkIHlldC4NCj4NCltiZWlsZWldIFllcywgdGhhbmtz
IGZvciB0aGUgY2F0Y2gsIHdpbGwgZml4IGl0IGluIG5leHQgdmVyc2lvbi4NCg0KPiA8Li4uPg0K
PiANCj4gPiArc3RhdGljIHZvaWQNCj4gPiArY3BmbF9oYW5kbGVfdmlydGNobmxfbXNnKHN0cnVj
dCBjcGZsX2FkYXB0ZXJfZXh0ICphZGFwdGVyX2V4KSB7DQo+ID4gKwlzdHJ1Y3QgaWRwZl9hZGFw
dGVyICphZGFwdGVyID0gJmFkYXB0ZXJfZXgtPmJhc2U7DQo+IA0KPiBFdmVyeXdoZXJlIGVsc2Us
ICdzdHJ1Y3QgY3BmbF9hZGFwdGVyX2V4dCcgdHlwZSB2YXJpYWJsZSBuYW1lIGlzICdhZGFwdGVy
JywNCj4gaGVyZSBpdCBpcyAnYWRhcHRlcl9leCcgYW5kICdzdHJ1Y3QgaWRwZl9hZGFwdGVyJyB0
eXBlIGlzICdhZGFwdGVyJy4NCj4gDQo+IEFzIGZhciBhcyBJIHVuZGVyc3RhbmQgJ3N0cnVjdCBj
cGZsX2FkYXB0ZXJfZXh0JyBpcyBzb21ldGhpbmcgbGlrZSAiZXh0ZW5kZWQNCj4gYWRhcHRlciIg
YW5kIGV4dGVuZGVkIHZlcnNpb24gb2YgJ3N0cnVjdCBpZHBmX2FkYXB0ZXInLCBzbyBpbiB0aGUg
Y29udGV4dCBvZg0KPiB0aGlzIGRyaXZlciB3aGF0IGRvIHlvdSB0aGluayB0byByZWZlcjoNCj4g
J3N0cnVjdCBjcGZsX2FkYXB0ZXJfZXh0JyBhcyAnYWRhcHRlcicNCj4gJ3N0cnVjdCBpZHBmX2Fk
YXB0ZXInICAgICBhcyAnYmFzZScgKG9yICdhZGFwdGVyX2Jhc2UnKSwgY29uc2lzdGVudGx5Lg0K
PiANCltMaXUsIE1pbmd4aWFdIG9rLCBnb3QgaXQsIEknbGwgdXBkYXRlIHRoZW0sIGZvciB5b3Vy
IGNvbW1lbnRzLg0KDQo+IDwuLi4+DQo+IA0KPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGV0aF9k
ZXZfb3BzIGNwZmxfZXRoX2Rldl9vcHMgPSB7DQo+ID4gKwkuZGV2X2NvbmZpZ3VyZQkJCT0gY3Bm
bF9kZXZfY29uZmlndXJlLA0KPiA+ICsJLmRldl9jbG9zZQkJCT0gY3BmbF9kZXZfY2xvc2UsDQo+
ID4gKwkuZGV2X2luZm9zX2dldAkJCT0gY3BmbF9kZXZfaW5mb19nZXQsDQo+ID4gKwkubGlua191
cGRhdGUJCQk9IGNwZmxfZGV2X2xpbmtfdXBkYXRlLA0KPiA+ICsJLmRldl9zdXBwb3J0ZWRfcHR5
cGVzX2dldAk9IGNwZmxfZGV2X3N1cHBvcnRlZF9wdHlwZXNfZ2V0LA0KPiA+ICt9Ow0KPiANCj4g
Q2FuIHlvdSBwbGVhc2UgbW92ZSB0aGUgYmxvY2sganVzdCBhZnRlciAnY3BmbF9kZXZfY2xvc2Uo
KScsIHRvIGdyb3VwIGRldl9vcHMNCj4gcmVsYXRlZCBjb2RlIHRvZ2V0aGVyLg0KPiANCltMaXUs
IE1pbmd4aWFdIG9rLCB0aGFua3MhDQoNCj4gPC4uLj4NCj4gDQo+ID4gKw0KPiA+ICtzdGF0aWMg
aW50DQo+ID4gK2NwZmxfZGV2X3Zwb3J0X2luaXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHZv
aWQgKmluaXRfcGFyYW1zKSB7DQo+ID4gKwlzdHJ1Y3QgaWRwZl92cG9ydCAqdnBvcnQgPSBkZXYt
PmRhdGEtPmRldl9wcml2YXRlOw0KPiA+ICsJc3RydWN0IGNwZmxfdnBvcnRfcGFyYW0gKnBhcmFt
ID0gaW5pdF9wYXJhbXM7DQo+ID4gKwlzdHJ1Y3QgY3BmbF9hZGFwdGVyX2V4dCAqYWRhcHRlciA9
IHBhcmFtLT5hZGFwdGVyOw0KPiA+ICsJLyogZm9yIHNlbmRpbmcgY3JlYXRlIHZwb3J0IHZpcnRj
aG5sIG1zZyBwcmVwYXJlICovDQo+ID4gKwlzdHJ1Y3QgdmlydGNobmwyX2NyZWF0ZV92cG9ydCBj
cmVhdGVfdnBvcnRfaW5mbzsNCj4gPiArCWludCByZXQgPSAwOw0KPiA+ICsNCj4gPiArCWRldi0+
ZGV2X29wcyA9ICZjcGZsX2V0aF9kZXZfb3BzOw0KPiA+ICsJdnBvcnQtPmFkYXB0ZXIgPSAmYWRh
cHRlci0+YmFzZTsNCj4gPiArCXZwb3J0LT5zd19pZHggPSBwYXJhbS0+aWR4Ow0KPiA+ICsJdnBv
cnQtPmRldmFyZ19pZCA9IHBhcmFtLT5kZXZhcmdfaWQ7DQo+ID4gKwl2cG9ydC0+ZGV2ID0gZGV2
Ow0KPiA+ICsNCj4gPiArCW1lbXNldCgmY3JlYXRlX3Zwb3J0X2luZm8sIDAsIHNpemVvZihjcmVh
dGVfdnBvcnRfaW5mbykpOw0KPiA+ICsJcmV0ID0gaWRwZl92cG9ydF9pbmZvX2luaXQodnBvcnQs
ICZjcmVhdGVfdnBvcnRfaW5mbyk7DQo+ID4gKwlpZiAocmV0ICE9IDApIHsNCj4gPiArCQlQTURf
SU5JVF9MT0coRVJSLCAiRmFpbGVkIHRvIGluaXQgdnBvcnQgcmVxX2luZm8uIik7DQo+ID4gKwkJ
Z290byBlcnI7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJcmV0ID0gaWRwZl92cG9ydF9pbml0KHZw
b3J0LCAmY3JlYXRlX3Zwb3J0X2luZm8sIGRldi0+ZGF0YSk7DQo+ID4gKwlpZiAocmV0ICE9IDAp
IHsNCj4gPiArCQlQTURfSU5JVF9MT0coRVJSLCAiRmFpbGVkIHRvIGluaXQgdnBvcnRzLiIpOw0K
PiA+ICsJCWdvdG8gZXJyOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCWFkYXB0ZXItPnZwb3J0c1tw
YXJhbS0+aWR4XSA9IHZwb3J0Ow0KPiA+ICsJYWRhcHRlci0+Y3VyX3Zwb3J0cyB8PSBSVEVfQklU
MzIocGFyYW0tPmRldmFyZ19pZCk7DQo+ID4gKwlhZGFwdGVyLT5jdXJfdnBvcnRfbmIrKzsNCj4g
PiArDQo+ID4gKwlkZXYtPmRhdGEtPm1hY19hZGRycyA9IHJ0ZV96bWFsbG9jKE5VTEwsIFJURV9F
VEhFUl9BRERSX0xFTiwNCj4gMCk7DQo+ID4gKwlpZiAoZGV2LT5kYXRhLT5tYWNfYWRkcnMgPT0g
TlVMTCkgew0KPiA+ICsJCVBNRF9JTklUX0xPRyhFUlIsICJDYW5ub3QgYWxsb2NhdGUgbWFjX2Fk
ZHIgbWVtb3J5LiIpOw0KPiA+ICsJCXJldCA9IC1FTk9NRU07DQo+ID4gKwkJZ290byBlcnJfbWFj
X2FkZHJzOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXJ0ZV9ldGhlcl9hZGRyX2NvcHkoKHN0cnVj
dCBydGVfZXRoZXJfYWRkciAqKXZwb3J0LQ0KPiA+ZGVmYXVsdF9tYWNfYWRkciwNCj4gPiArCQkJ
ICAgICZkZXYtPmRhdGEtPm1hY19hZGRyc1swXSk7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIDA7DQo+
ID4gKw0KPiA+ICtlcnJfbWFjX2FkZHJzOg0KPiA+ICsJYWRhcHRlci0+dnBvcnRzW3BhcmFtLT5p
ZHhdID0gTlVMTDsgIC8qIHJlc2V0ICovDQo+IA0KPiBzaG91bG4ndCB1cGRhdGUgJ2N1cl92cG9y
dHMnICYgJ2N1cl92cG9ydF9uYicgdG9vIGluIHRoaXMgZXJyb3IgcGF0aC4NCj4gDQpbYmVpbGVp
XSBZZXMsIG5lZWQgdG8gdXBkYXRlIHRoZSB0d28gZmllbGRzLg0KPiA8Li4uPg0KPiANCj4gPiAr
DQo+ID4gK2VycjoNCj4gPiArCWlmIChmaXJzdF9wcm9iZSkgew0KPiA+ICsJCXJ0ZV9zcGlubG9j
a19sb2NrKCZjcGZsX2FkYXB0ZXJfbG9jayk7DQo+ID4gKwkJVEFJTFFfUkVNT1ZFKCZjcGZsX2Fk
YXB0ZXJfbGlzdCwgYWRhcHRlciwgbmV4dCk7DQo+ID4gKwkJcnRlX3NwaW5sb2NrX3VubG9jaygm
Y3BmbF9hZGFwdGVyX2xvY2spOw0KPiA+ICsJCWNwZmxfYWRhcHRlcl9leHRfZGVpbml0KGFkYXB0
ZXIpOw0KPiA+ICsJCXJ0ZV9mcmVlKGFkYXB0ZXIpOw0KPiA+ICsJfQ0KPiANCj4gDQo+IFdoeSAn
Zmlyc3RfcHJvYmUnIGlzIG5lZWRlZCwgaXQgbG9va3MgbGlrZSBpdCBpcyBmb3IgdGhlIGNhc2Ug
d2hlbg0KPiBwcm9iZSgpIGNhbGxlZCBtdWx0aXBsZSB0aW1lIGZvciBzYW1lIHBjaV9kZXYsIGNh
biB0aGlzIGhhcHBlbj8NCj4gDQpbTGl1LCBNaW5neGlhXSBJdCdzIHJlbGF0ZWQgdG8gcnVudGlt
ZSBjcmVhdGluZyB2cG9ydCBpbiB0aGUgZnV0dXJlLCBidXQgbm93IHRoZSB2ZXJzaW9uIGRvZXNu
J3Qgc3VwcG9ydCBydW50aW1lLg0KPiA8Li4uPg0KPiANCj4gPiArUlRFX1BNRF9SRUdJU1RFUl9Q
Q0kobmV0X2NwZmwsIHJ0ZV9jcGZsX3BtZCk7DQo+ID4gK1JURV9QTURfUkVHSVNURVJfUENJX1RB
QkxFKG5ldF9jcGZsLCBwY2lfaWRfY3BmbF9tYXApOw0KPiA+ICtSVEVfUE1EX1JFR0lTVEVSX0tN
T0RfREVQKG5ldF9jcGZsLCAiKiBpZ2JfdWlvIHwgdmZpby1wY2kiKTsNCj4gPiArUlRFX1BNRF9S
RUdJU1RFUl9QQVJBTV9TVFJJTkcobmV0X2NwZmwsDQo+ID4gKwkJCSAgICAgIENQRkxfVFhfU0lO
R0xFX1EgIj08MHwxPiAiDQo+ID4gKwkJCSAgICAgIENQRkxfUlhfU0lOR0xFX1EgIj08MHwxPiAi
DQo+ID4gKwkJCSAgICAgIENQRkxfVlBPUlQgIj1bdnBvcnRfc2V0MCxbdnBvcnRfc2V0MV0sLi4u
XSIpOw0KPiANCj4gV2hhdCBhYm91dDoNCj4gIlxbdnBvcnQwX2JlZ2luWy12cG9ydDBfZW5kXVss
dnBvcnQxX2JlZ2luWy12cG9ydDFfZW5kXVssLi5dXF0iDQo+IA0KW0xpdSwgTWluZ3hpYV0gR29v
ZCBpZGVhLCB0aGFua3MhDQoNCj4gPC4uLj4NCj4gDQo+ID4gKw0KPiA+ICsjZGVmaW5lIENQRkxf
TUFYX1ZQT1JUX05VTQk4DQo+ID4gKw0KPiBJdCBsb29rcyBsaWtlIHRoZXJlIGlzIGEgZHluYW1p
YyBtYXggdnBvcnQgbnVtYmVyIChhZGFwdGVyLQ0KPiA+YmFzZS5jYXBzLm1heF92cG9ydHMpLCBh
bmQgdGhlcmUgaXMgYWJvdmUgaGFyZGNvZGVkIGRlZmluZSwgZm9yIHJlcXVlc3RlZA0KPiAoZGV2
YXJncykgdnBvcnRzLg0KPiANCj4gVGhlIGR5bmFtaWMgbWF4IGlzIHJlY2VpdmVkIHZpYSAnY3Bm
bF9hZGFwdGVyX2V4dF9pbml0KCknIGJlZm9yZSBwYXJzaW5nDQo+IGRldl9hcmcsIHNvIGNhbiBp
dCBiZSBwb3NzaWJsZSB0byByZW1vdmUgdGhpcyBoYXJkY29kZWQgbWF4IGNvbXBsZXRlbHk/DQo+
IA0KPiANCltMaXUsIE1pbmd4aWFdIHllcywgd2UnbGwgdHJ5Lg0KDQo+ID4gKyNkZWZpbmUgQ1BG
TF9JTlZBTElEX1ZQT1JUX0lEWAkweGZmZmYNCj4gPiArDQo+ID4gKyNkZWZpbmUgQ1BGTF9NSU5f
QlVGX1NJWkUJMTAyNA0KPiA+ICsjZGVmaW5lIENQRkxfTUFYX0ZSQU1FX1NJWkUJOTcyOA0KPiA+
ICsjZGVmaW5lIENQRkxfREVGQVVMVF9NVFUJUlRFX0VUSEVSX01UVQ0KPiA+ICsNCj4gPiArI2Rl
ZmluZSBDUEZMX05VTV9NQUNBRERSX01BWAk2NA0KPiANCj4gVGhlIG1hY3JvIGlzIG5vdCB1c2Vk
LCBjYW4geW91IHBsZWFzZSBhZGQgdGhlbSB3aGVuIHRoZXkgYXJlIHVzZWQuDQo+IA0KW0xpdSwg
TWluZ3hpYV0gb2ssIHRoYW5rcyEgV2lsbCBkZWxldGUgaXQuDQoNCj4gPC4uLj4NCj4gDQo+ID4g
QEAgLTAsMCArMSwzMiBAQA0KPiA+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMt
Q2xhdXNlDQo+ID4gKyAqIENvcHlyaWdodChjKSAyMDIzIEludGVsIENvcnBvcmF0aW9uICAqLw0K
PiA+ICsNCj4gPiArI2lmbmRlZiBfQ1BGTF9MT0dTX0hfDQo+ID4gKyNkZWZpbmUgX0NQRkxfTE9H
U19IXw0KPiA+ICsNCj4gPiArI2luY2x1ZGUgPHJ0ZV9sb2cuaD4NCj4gPiArDQo+ID4gK2V4dGVy
biBpbnQgY3BmbF9sb2d0eXBlX2luaXQ7DQo+ID4gK2V4dGVybiBpbnQgY3BmbF9sb2d0eXBlX2Ry
aXZlcjsNCj4gPiArDQo+ID4gKyNkZWZpbmUgUE1EX0lOSVRfTE9HKGxldmVsLCAuLi4pIFwNCj4g
PiArCXJ0ZV9sb2coUlRFX0xPR18gIyMgbGV2ZWwsIFwNCj4gPiArCQljcGZsX2xvZ3R5cGVfaW5p
dCwgXA0KPiA+ICsJCVJURV9GTVQoIiVzKCk6ICIgXA0KPiA+ICsJCQlSVEVfRk1UX0hFQUQoX19W
QV9BUkdTX18sKSAiXG4iLCBcDQo+ID4gKwkJCV9fZnVuY19fLCBcDQo+ID4gKwkJCVJURV9GTVRf
VEFJTChfX1ZBX0FSR1NfXywpKSkNCj4gPiArDQo+ID4gKyNkZWZpbmUgUE1EX0RSVl9MT0dfUkFX
KGxldmVsLCAuLi4pIFwNCj4gPiArCXJ0ZV9sb2coUlRFX0xPR18gIyMgbGV2ZWwsIFwNCj4gPiAr
CQljcGZsX2xvZ3R5cGVfZHJpdmVyLCBcDQo+ID4gKwkJUlRFX0ZNVCgiJXMoKTogIiBcDQo+ID4g
KwkJCVJURV9GTVRfSEVBRChfX1ZBX0FSR1NfXywpICJcbiIsIFwNCj4gPiArCQkJX19mdW5jX18s
IFwNCj4gPiArCQkJUlRFX0ZNVF9UQUlMKF9fVkFfQVJHU19fLCkpKQ0KPiA+ICsNCj4gPiArI2Rl
ZmluZSBQTURfRFJWX0xPRyhsZXZlbCwgZm10LCBhcmdzLi4uKSBcDQo+ID4gKwlQTURfRFJWX0xP
R19SQVcobGV2ZWwsIGZtdCAiXG4iLCAjIyBhcmdzKQ0KPiA+ICsNCj4gDQo+IElzICdQTURfRFJW
X0xPR19SQVcnIHJlcXVpcmVkIGF0IGFsbCwgd2h5IG5vdCBkZWZpbmUgJ1BNRF9EUlZfTE9HJw0K
PiBkaXJlY3RseSBhcyBpdCBpcyBkb25lIHdpdGggJ1BNRF9JTklUX0xPRyc/DQo+DQpbTGl1LCBN
aW5neGlhXSBHb29kIGlkZWEsIEknbGwgc2ltcGxpZnkgdGhlIGNvZGUuDQoNCj4gQnR3LCBib3Ro
ICdQTURfRFJWX0xPR19SQVcnIHNlZW1zIGFkZGluZyBkb3VibGUgJ1xuJywgb25lIGFzIHBhcnQg
b2YNCj4gJ2ZtdCcsIG90aGVyIGluIHRoZSBydGVfbG9nKCkuDQoNCg0K