From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B3C4A45A68; Fri, 11 Oct 2024 11:37:09 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A033E4028E; Fri, 11 Oct 2024 11:37:09 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2048.outbound.protection.outlook.com [40.107.94.48]) by mails.dpdk.org (Postfix) with ESMTP id BAEE44028B for ; Fri, 11 Oct 2024 11:37:07 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wYDmAM64KIs2NuUz6Ot2grOBFYoxGqJWYhvo5OCqWx1x6TTYxVA+zxTKMIQi6bMiWZx56VZi5T9get22up5k7LQZm/9Cqo9xY8acHHP+QD1b/LZzwRtJPXIPOJdU3V8qmDL1WlhlHFLX91b+tBHIMjXdvdFFnmeel/k9Xoh2RUn3OiU7cNGojrLtCk6Q3lWWji/m+TOseqDGtz8Xn/vHXlo6TUjd9aBp1IjmAtgX7x2F39s+Evf72CfdUW3GZdKHOltk3I7BRhqrqbc9K9MHPP9Y1zcfIMvWRii0s5nDa3Sp0EdAOUBliTnc2xF2f16fnXDLBFKkZEDRbpNkV/VSpw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=AmzKg6x6NDe2Vi8ihFAaKZ0RDC1yW90qqtPDYQyxN0c=; b=PtjP/F6vKS41RUXRjy5k+rZdGrxE7YoVkAEmQEJnpCW9+aCQQ0K5ug1PpBe4A1ninkIfc3YC/wMZXIFxfLBKxRfv3TuSvF2oeA2uAzEP3t86fqRv0z4XnE3WpN4rMsQFgwOuPtTntZYejiLtxOPWToWLUkcwdb5xJAwUD7lleFXRJ3eg1ra/9cSlWleeA0OM/XRg/tmzx0ekEscPGfTQEklFMuFwKxa5MpsOR3e9J/EEyGbMjk+3WgY7J0LopC3E9EjDbYUzoymYEz+8Y7jLVCt497w/Zqz5RaWE3Pofjx653WdgugxDDSKQDqe2xOZjEJZo1bs+CGlpSPg/unqzvQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AmzKg6x6NDe2Vi8ihFAaKZ0RDC1yW90qqtPDYQyxN0c=; b=dISJHz5/ZUlkFpRFrxprZpBWVbDczPGUKgRmgkFx5u+tqm9juLCvB8863owd4DRRvc6yrv9WxpwOGAxYRgTA6xyIlImu+jGOstgODFK0xuGDb06FM3L3vJrAA55Fn0xGdAMT0t5Blpk8H9ORA6Y4a3RSzEByVacz0/aJgmwul/fYtQY+xgmA3wboQCRf5EaqpWMtARrR8YcDNfUsPl3kVGuIsdYo5T+1F4g5lgZt8hHlAfd7pHegBoOKhq0UN6ITqTRQO5snpdi7NgwUCLTsy/7f7DY2LXmBYyBVRPrsi36pCLTW/vI0oD+c4av7f7Efm63+eVXKu0oSZzQ+SWaAxw== Received: from CH3PR12MB8460.namprd12.prod.outlook.com (2603:10b6:610:156::15) by CY8PR12MB7684.namprd12.prod.outlook.com (2603:10b6:930:87::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.18; Fri, 11 Oct 2024 09:37:03 +0000 Received: from CH3PR12MB8460.namprd12.prod.outlook.com ([fe80::2e9d:7265:3b84:59b5]) by CH3PR12MB8460.namprd12.prod.outlook.com ([fe80::2e9d:7265:3b84:59b5%7]) with mapi id 15.20.8048.017; Fri, 11 Oct 2024 09:37:03 +0000 From: Dariusz Sosnowski To: Konstantin Ananyev , Ferruh Yigit , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , Andrew Rybchenko CC: "dev@dpdk.org" , Bruce Richardson Subject: RE: [RFC 0/4] ethdev: rework config restore Thread-Topic: [RFC 0/4] ethdev: rework config restore Thread-Index: AQHbCaxc8KDvUepY/Eal2yE/l4xqAbJve/yAgAeO5XCABBf3gIAA4jcAgAE0v4CAAIIbgIAA+96QgAB3gQCAALueAIAAKAqAgAAx4iCAABXggIAAYcIAgAAR7oCAAI2cgIAAEpWQ Date: Fri, 11 Oct 2024 09:37:03 +0000 Message-ID: References: <20240918092201.33772-1-dsosnowski@nvidia.com> <13747524-f073-4749-adbd-be1c7681dbcd@amd.com> <3833d9270fba43af9d17765056911940@huawei.com> <8a6f760c-8bc7-46cd-92e0-a8af66114e2d@amd.com> <5ef19db7-f6fe-4a48-8497-e17b33a262b5@amd.com> <6e2487af-5bf5-4a07-bc9d-2e6f1a1def19@amd.com> <0d526176545845c49d67a30855202f2f@huawei.com> <24aa0035-79af-4f15-8dd8-fb8cd625e4e6@amd.com> <92422481b7274413b8e0a33023963cb3@huawei.com> In-Reply-To: <92422481b7274413b8e0a33023963cb3@huawei.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=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH3PR12MB8460:EE_|CY8PR12MB7684:EE_ x-ms-office365-filtering-correlation-id: 702a111b-13bf-4cd3-d80d-08dce9d843a7 x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|1800799024|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?bmx2UEk3TGlXaXV2WE9zR3hLNUdud3J4aTVrZnJWUk94UytBMDZtWU1KV3F0?= =?utf-8?B?UnZVeXhjVGV3OWxXZWVWUjRoWmZBdDZ6a05NUFJGbDFVOGVReVhjQ3kyaE1Y?= =?utf-8?B?aFF1SnVycnU5Si9rNE9ZaS9pVHEwSXZIMWJTbHV2ZitwNjloVTNJdVJpWEVX?= =?utf-8?B?dENidzk5Mk94MDZBVWhXV2l3S3VndkpiSjFNYzd4Wm1keHdScGZIWW4ycVFs?= =?utf-8?B?MjJqS01iTjNndFJYOWVPRFhKR01hclFjdEZwSjY5NVVKemlDSEJFVkJKNXJP?= =?utf-8?B?WkdUVU5FL3c3dlhGaGYwcWd0T0E0bHBHSjE0eGFwYkhrZXJzOGw1Nm1wSHFn?= =?utf-8?B?YU1VWmJBQ1pZQXhTa3M1c05TRVJDOG4yTnRvc0lJUXZaZlhrcjVrSmIrVW5G?= =?utf-8?B?RGZIYnh3K0hIOVNrMHY4OHljSDc1aFJWcTVKOU53Q2V0Q2hoNVhHUzZrUkpm?= =?utf-8?B?N1JnUmpPbjhvRG45d0F2YjdhV1FuSnM0QXlWeVRIbGozTmh5eHpRWkdlY3pL?= =?utf-8?B?NkdOVC80dHliTVBTU0FabXFzVStKV085bDRaZnY1WXZHc0N1blhpVUJPNWFV?= =?utf-8?B?TnRETXd2SVJjNWVyV1o0UWRCUEs1U1pqYkdBVjNjRkRwZkd0NkFkUUJIV3Qy?= =?utf-8?B?dE5kU2FZelZEdVp6Q0xaZitxaHgyOGMxK1NFOFo2aHF1OEQzNVBET3ZTZ2k1?= =?utf-8?B?MXNDcVNBckowMG4wbCs3eGQyUXFxZUNaSS9LV0JYUU0vQ1JlRnhZSkNBWnFq?= =?utf-8?B?T2JFUTQzYkhwZExQc2NpYXdwc0lsS29DYkc3VkNsaDJoMUhPOFpEenpNclJi?= =?utf-8?B?ZUVtWWVMZlExdjNseTZRbEZERG5KVnJiQ1h4WmU1WE8ycXRSTjJZc3JqUGR1?= =?utf-8?B?NXFLSm8zaGxOS0pCTmtVdnVuU3FkdGg1WUdnQ0FKMWlneFlRM1lDejIxMmps?= =?utf-8?B?MWxVQkd2b2E1dFNSSEpLYmlCc0plS2hzbU9ZYzMzQXFNUUt1UzBpS3hTMzcy?= =?utf-8?B?S0lyMDlRLzJMbGtwOHU3YmRvNnkvWFhZMkx1eFg4bzM3dzJyUXN4ZWc4cldY?= =?utf-8?B?SWNOQzdFZzZDUnBON1pGRGNRbTEyRlFuNjdMTWFCS2tNM09CTUQ2bzBUN21Y?= =?utf-8?B?YVpZa2tyV0c0ODhOVEZrWkxCNEl4Y1VSZEJMVklPTVdQWGhGZXR1cVJpV1Ro?= =?utf-8?B?cjhKMks2L3BaMVZNL09qbjIwdVVnbXhxSlErWURKL0sxRkN2UUNaZ2xVY3p3?= =?utf-8?B?OHdXRUVoVzAwY3Zrem93TnEwdWRqM2kzSnkvSEwzSUUrYkQ1QWlJZCtsc1BL?= =?utf-8?B?MnVNZ1RReHZkV2tySitaWURCVnUrT3VrN0pNV3JHazFHZ2xJT3BlTVdzMHZ2?= =?utf-8?B?RVN5R0QzR0NMcjFwNnJJd2tRaVNsZi9BQmVYQjRiMHZuYlFZSXRoMEVJaTlo?= =?utf-8?B?N2FNWFRDV0YrNTJrVEp1ekdGRVpQREYxT3dLeGNJMTlQb1o0elZPeGpaV1hZ?= =?utf-8?B?d1hzQXFINDcrVzY4aXdTajRwUW01MUNwSUhOYXVQUmFJYVJDbkxicmY5SG03?= =?utf-8?B?K21jNVFsKzdNa1ppcERKY2p1c0Y3YlkzRjVZUXRleVR3NXNPN0MxRjkrUVRs?= =?utf-8?B?QXpiSFh1bTJZYlpnanUvRDBLR0xqRHNPclQ2ekFNSitFeVFtMVJDeEZ2MTZJ?= =?utf-8?B?VnVuYWUyQnZscS9EMjNyMjdicWxJV05WbENtTS9jbmFET3RMRW4ycmxQajhF?= =?utf-8?B?VS8wVXFxbnZKR2hxa1RrY1hXQzJBZVR0RGMwNUhwMG9UcndwQVVTOThVOGdS?= =?utf-8?B?aHVvK2ErT1RXK0k4YkFvZz09?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH3PR12MB8460.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RW80bHM2RWFlRG9kLzVYbzZjbXhFZ2xQNy9QQ0VEaVRGOFplVlFnU1FkU0Jj?= =?utf-8?B?RmUxQlVoZDQ5NVlQNE1YaFA0aEJsRW0remNzOTdtN05TU080UmhielNaOVRI?= =?utf-8?B?QUVMM3VwaFhvVFprTjJyNUVZUzJJREcxMDNqOThyWjdoN0VOckxBbUI1eHRX?= =?utf-8?B?MVlzMndIWEVIem4xV0ExQm0weUtuUi9KOENhOUp2aHdxaUROMldYay9USEdX?= =?utf-8?B?M09mOFVqVFJOaTNiRjl4R21oVUdtQnh5d2JSbzZrWGh4bWcyenoyVW5QUWVF?= =?utf-8?B?cU52clM3ckI4bW9pR0I2RkZ2U29mb2NlN0dSSmZldE9haWxoQVhldnFnaFY1?= =?utf-8?B?UGw1NjVNMTBQWm5qVWsybklhdk83SXZyRWdNTXdBNTB5bXZ5c2hIQk0zcWly?= =?utf-8?B?eWFheGRrZFdxVFF0NmRmdHFBZGZrZFAvRDdLeFc3ajFvemg0OWt6SGFUL0ZS?= =?utf-8?B?VGhzOStJMkZ2UnNVUjhrUjNkVGlsRys0M3RINWg2aDRJd1h3VlJEbE4zcUVR?= =?utf-8?B?Z3B4bDc0eDhSUEVaVnJna3BxQmhQMlBucjZKQ3A4QlI4aXYrbDdCbTlJcS9j?= =?utf-8?B?a1dpTjZkMVhNeWVtTFVteDYvQ3Z0Zk1GVDVWY1RWcVhmeStjbzk2N0ZBKytk?= =?utf-8?B?ekdVV2lGV3NkUUJBVmJDeG5EdkE1VzBLL3dLQXFPVFJyYUY0UWVaR2lOOUUx?= =?utf-8?B?RE1wbEhwYlBDZzhwTlI4UFY2YitYNHc0b09BT2x0TzdFU3RCb0p3emlrUFVj?= =?utf-8?B?Wkh6U0ViM0MycW84TXYzUCtyM09RekhIOWEwQ3BGZit0THJrd2RKL2RiRStl?= =?utf-8?B?RHVkNTFMMkJlU0l6aGZDSTJrcUNnOW9tcklzeGNZeGNaWWhEVHVMNFhUeGtT?= =?utf-8?B?V1U3MllweDlubEsyWDZBYW0wbTJsa0pkYXFENjhRWUlEcWxvWEJEKzVieFkv?= =?utf-8?B?S0U5Z24yT3IzaUZHQy9yYk5EVC8zYVV4Q29RUFRWTEg2Wm5CQkZhZWNHUmZH?= =?utf-8?B?T1lUV3FING54OXYydWcrb3EyRXdTUExXRlcvSERoRG12dkVNd3RJbjc5Tkw0?= =?utf-8?B?c2RGY1FOaWJSdTh5WFVsQmZXMFJaQzdmZ1U1dUZIcmtLaXM2Z3hOTDVCVXpE?= =?utf-8?B?ZEk4MEtVeGdzbnlWSG9IanVWWUt3cy85ZmtZWEZTbW1lU1RIQVRoOS9YeDRD?= =?utf-8?B?OVl5eXVnRVlIZGR6enpLcUpsUElFenphMFZ2c2JaZmNZOXlPdVNFMDMzZDEr?= =?utf-8?B?NTdrYWtVdStNUEtLL1RRVTFScjlBeUU0K0w0SExkdUZqclBCNUhaRkVYZHlF?= =?utf-8?B?Z2ZsdEFWQ0RIRU4vYTdiUXZmb01FWWdLZDB6RFNBejZGWEp0bThsL1ZIczNE?= =?utf-8?B?bGZVeDRodkJnSUpsdWVONGxNckQvRmVnUFdSTHlHQ1VGelNMUjhwWWxXWUN5?= =?utf-8?B?SHFiRDlJVXF2R2NVelh0TEpwOW80bDJhK0U0TXN3RVVLQTU5NGNjVDNraE9a?= =?utf-8?B?YTNva0VtQmRMOHpBSHZTclV5QmdMOTZPK2dyNkZIYjhZSDJ5ejJqeitTbDNU?= =?utf-8?B?SG1CaDFNZDhTYmJ2ZlVPbUdDMDZMRStONGEzbWVjYjFOWTZRaEU5Z05uclFp?= =?utf-8?B?RDdrU2Z0a203NXViZkI2V0JhNGN2SURiOXJrekM0QnB6amNwRmpOMmhkTXg1?= =?utf-8?B?TFd3RExhUjhuTHVsd09YVlJqL0VKN0VDVnU0Q2lHS25tQ0d2K0xtdXRiMCtT?= =?utf-8?B?OVlXaTArazlUWUY2TExIeDF3bTM4Q0pBblp5MGdoVDhQcTdWcmZGVHI2YUg4?= =?utf-8?B?d2tNNGwyVnVUdzNZcmEvWG9Qa0RqdXcyR2g5WitqUFBkN2lhTGdvdDcxa3cz?= =?utf-8?B?UUo2UVpSYTJqeTYwTmtxY1pka21yUTBtOGdHZTMzWWlRWmtPWnhZTmRsZC9L?= =?utf-8?B?Z1hJMTdMZy9xTG1zNDJhYWhkRURldUVBSEV6Nk9IOHNVbllsaytmWCtHSkFp?= =?utf-8?B?VGJFcHFKNVFEWStIZ1pPNXpGbG5wS3h5R01JK3ZkMkl0L0dHVjJPd0tpMzR4?= =?utf-8?B?YmtrWWVuek9XSFVIYnRiaWFjeUtSdzVzeDFQckZ2ZDA0ZkRwdXhDbWtFWmZW?= =?utf-8?Q?pehvvHO5IxwVmir/XTb5SaN7m?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8460.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 702a111b-13bf-4cd3-d80d-08dce9d843a7 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Oct 2024 09:37:03.6819 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: zGYmJBi8WDA5kRBYwTtKnQ8TX9uuZtlo2ikktkRJ9DwYNVrFG7B2ZU+G9Bwj7cJ67ewjE1vFQbJkB9EVp6V9Xw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7684 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogS29uc3RhbnRpbiBBbmFu eWV2IDxrb25zdGFudGluLmFuYW55ZXZAaHVhd2VpLmNvbT4NCj4gU2VudDogRnJpZGF5LCBPY3Rv YmVyIDExLCAyMDI0IDEwOjI5DQo+IFRvOiBGZXJydWggWWlnaXQgPGZlcnJ1aC55aWdpdEBhbWQu Y29tPjsgRGFyaXVzeiBTb3Nub3dza2kNCj4gPGRzb3Nub3dza2lAbnZpZGlhLmNvbT47IE5CVS1D b250YWN0LVRob21hcyBNb25qYWxvbiAoRVhURVJOQUwpDQo+IDx0aG9tYXNAbW9uamFsb24ubmV0 PjsgQW5kcmV3IFJ5YmNoZW5rbyA8YW5kcmV3LnJ5YmNoZW5rb0Bva3RldGxhYnMucnU+DQo+IENj OiBkZXZAZHBkay5vcmc7IEJydWNlIFJpY2hhcmRzb24gPGJydWNlLnJpY2hhcmRzb25AaW50ZWwu Y29tPg0KPiBTdWJqZWN0OiBSRTogW1JGQyAwLzRdIGV0aGRldjogcmV3b3JrIGNvbmZpZyByZXN0 b3JlDQo+IA0KPiBFeHRlcm5hbCBlbWFpbDogVXNlIGNhdXRpb24gb3BlbmluZyBsaW5rcyBvciBh dHRhY2htZW50cw0KPiANCj4gDQo+ID4gPj4+Pg0KPiA+ID4+Pj4gRXh0ZXJuYWwgZW1haWw6IFVz ZSBjYXV0aW9uIG9wZW5pbmcgbGlua3Mgb3IgYXR0YWNobWVudHMNCj4gPiA+Pj4+DQo+ID4gPj4+ Pg0KPiA+ID4+Pj4gT24gMTAvMTAvMjAyNCAxOjA4IFBNLCBEYXJpdXN6IFNvc25vd3NraSB3cm90 ZToNCj4gPiA+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+Pj4+Pj4gRnJv bTogRmVycnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAYW1kLmNvbT4NCj4gPiA+Pj4+Pj4gU2VudDog VGh1cnNkYXksIE9jdG9iZXIgMTAsIDIwMjQgMDE6MTcNCj4gPiA+Pj4+Pj4gVG86IERhcml1c3og U29zbm93c2tpIDxkc29zbm93c2tpQG52aWRpYS5jb20+OyBLb25zdGFudGluDQo+ID4gPj4+Pj4+ IEFuYW55ZXYgPGtvbnN0YW50aW4uYW5hbnlldkBodWF3ZWkuY29tPjsgTkJVLUNvbnRhY3QtVGhv bWFzDQo+ID4gPj4+Pj4+IE1vbmphbG9uDQo+ID4gPj4+Pj4+IChFWFRFUk5BTCkgPHRob21hc0Bt b25qYWxvbi5uZXQ+OyBBbmRyZXcgUnliY2hlbmtvDQo+ID4gPj4+Pj4+IDxhbmRyZXcucnliY2hl bmtvQG9rdGV0bGFicy5ydT4NCj4gPiA+Pj4+Pj4gQ2M6IGRldkBkcGRrLm9yZzsgQnJ1Y2UgUmlj aGFyZHNvbiA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+DQo+ID4gPj4+Pj4+IFN1YmplY3Q6 IFJlOiBbUkZDIDAvNF0gZXRoZGV2OiByZXdvcmsgY29uZmlnIHJlc3RvcmUNCj4gPiA+Pj4+Pj4N Cj4gPiA+Pj4+Pj4gRXh0ZXJuYWwgZW1haWw6IFVzZSBjYXV0aW9uIG9wZW5pbmcgbGlua3Mgb3Ig YXR0YWNobWVudHMNCj4gPiA+Pj4+Pj4NCj4gPiA+Pj4+Pj4NCj4gPiA+Pj4+Pj4gT24gMTAvOS8y MDI0IDU6MTggUE0sIERhcml1c3ogU29zbm93c2tpIHdyb3RlOg0KPiA+ID4+Pj4+Pj4+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPj4+Pj4+Pj4gRnJvbTogRmVycnVoIFlpZ2l0IDxm ZXJydWgueWlnaXRAYW1kLmNvbT4NCj4gPiA+Pj4+Pj4+PiBTZW50OiBXZWRuZXNkYXksIE9jdG9i ZXIgOSwgMjAyNCAwMzowOA0KPiA+ID4+Pj4+Pj4+IFRvOiBLb25zdGFudGluIEFuYW55ZXYgPGtv bnN0YW50aW4uYW5hbnlldkBodWF3ZWkuY29tPjsNCj4gPiA+Pj4+Pj4+PiBEYXJpdXN6IFNvc25v d3NraSA8ZHNvc25vd3NraUBudmlkaWEuY29tPjsgTkJVLUNvbnRhY3QtVGhvbWFzDQo+ID4gPj4+ Pj4+Pj4gTW9uamFsb24NCj4gPiA+Pj4+Pj4+PiAoRVhURVJOQUwpIDx0aG9tYXNAbW9uamFsb24u bmV0PjsgQW5kcmV3IFJ5YmNoZW5rbw0KPiA+ID4+Pj4+Pj4+IDxhbmRyZXcucnliY2hlbmtvQG9r dGV0bGFicy5ydT4NCj4gPiA+Pj4+Pj4+PiBDYzogZGV2QGRwZGsub3JnOyBCcnVjZSBSaWNoYXJk c29uDQo+ID4gPj4+Pj4+Pj4gPGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tPg0KPiA+ID4+Pj4+ Pj4+IFN1YmplY3Q6IFJlOiBbUkZDIDAvNF0gZXRoZGV2OiByZXdvcmsgY29uZmlnIHJlc3RvcmUN Cj4gPiA+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+IEV4dGVybmFsIGVtYWlsOiBVc2UgY2F1dGlvbiBv cGVuaW5nIGxpbmtzIG9yIGF0dGFjaG1lbnRzDQo+ID4gPj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pg0K PiA+ID4+Pj4+Pj4+IE9uIDEwLzgvMjAyNCA2OjIxIFBNLCBLb25zdGFudGluIEFuYW55ZXYgd3Jv dGU6DQo+ID4gPj4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gV2Ug aGF2ZSBiZWVuIHdvcmtpbmcgb24gb3B0aW1pemluZyB0aGUgbGF0ZW5jeSBvZiBjYWxscw0KPiA+ ID4+Pj4+Pj4+Pj4+Pj4+IHRvIHJ0ZV9ldGhfZGV2X3N0YXJ0KCksIG9uIHBvcnRzIHNwYXduZWQg YnkgbWx4NSBQTUQuDQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gTW9zdCBvZiB0aGUgd29yayByZXF1aXJl cyBjaGFuZ2VzIGluIHRoZSBpbXBsZW1lbnRhdGlvbg0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+IG9mDQo+ ID4gPj4+Pj4+Pj4+Pj4+Pj4gLmRldl9zdGFydCgpIFBNRCBjYWxsYmFjaywgYnV0IEkgYWxzbyB3 YW50ZWQgdG8gc3RhcnQgYQ0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+IGRpc2N1c3Npb24gcmVnYXJkaW5n IGNvbmZpZ3VyYXRpb24gcmVzdG9yZS4NCj4gPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+ Pj4+Pj4+IHJ0ZV9ldGhfZGV2X3N0YXJ0KCkgZG9lcyBhIGZldyB0aGluZ3Mgb24gdG9wIG9mIGNh bGxpbmcNCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiAuZGV2X3N0YXJ0KCkNCj4gPiA+Pj4+Pj4+PiBjYWxs YmFjazoNCj4gPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+IC0gQmVmb3JlIGNh bGxpbmcgaXQ6DQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gICAgIC0gZXRoX2Rldl9tYWNfcmVzdG9yZSgp IC0gaWYgZGV2aWNlIHN1cHBvcnRzDQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gUlRFX0VUSF9ERVZfTk9M SVZFX01BQ19BRERSOw0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+IC0gQWZ0ZXIgY2FsbGluZyBpdDoNCj4g PiA+Pj4+Pj4+Pj4+Pj4+PiAgICAgLSBldGhfZGV2X21hY19yZXN0b3JlKCkgLSBpZiBkZXZpY2Ug ZG9lcyBub3QNCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiBzdXBwb3J0DQo+ID4gPj4+Pj4+Pj4+Pj4+PiBS VEVfRVRIX0RFVl9OT0xJVkVfTUFDX0FERFI7DQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gICAgIC0gcmVz dG9yZSBwcm9taXNjdW91cyBjb25maWcNCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiAgICAgLSByZXN0b3Jl IGFsbCBtdWx0aWNhc3QgY29uZmlnDQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4+ Pj4+PiBldGhfZGV2X21hY19yZXN0b3JlKCkgaXRlcmF0ZXMgb3ZlciBhbGwga25vd24gTUFDDQo+ ID4gPj4+Pj4+Pj4+Pj4+Pj4gYWRkcmVzc2VzIC0gc3RvcmVkIGluIHJ0ZV9ldGhfZGV2X2RhdGEu bWFjX2FkZHJzIGFycmF5DQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gLSBhbmQgY2FsbHMNCj4gPiA+Pj4+ Pj4+Pj4+Pj4+PiAubWFjX2FkZHJfc2V0KCkgYW5kIC5tYWNfYWRkcl9hZGQoKSBjYWxsYmFja3Mg dG8gYXBwbHkNCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiB0aGVzZSBNQUMNCj4gPiA+Pj4+Pj4+PiBhZGRy ZXNzZXMuDQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiBQcm9taXNjdW91 cyBjb25maWcgcmVzdG9yZSBjaGVja3MgaWYgcHJvbWlzY3VvdXMgbW9kZQ0KPiA+ID4+Pj4+Pj4+ Pj4+Pj4+IGlzIGVuYWJsZWQgb3Igbm90LCBhbmQgY2FsbHMgLnByb21pc2N1b3VzX2VuYWJsZSgp IG9yDQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gLnByb21pc2N1b3VzX2Rpc2FibGUoKQ0KPiA+ID4+Pj4+ Pj4+IGNhbGxiYWNrLg0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gQWxs IG11bHRpY2FzdCBjb25maWcgcmVzdG9yZSBjaGVja3MgaWYgYWxsIG11bHRpY2FzdA0KPiA+ID4+ Pj4+Pj4+Pj4+Pj4+IG1vZGUgaXMgZW5hYmxlZCBvciBub3QsIGFuZCBjYWxscw0KPiA+ID4+Pj4+ Pj4+Pj4+Pj4+IC5hbGxtdWx0aWNhc3RfZW5hYmxlKCkgb3INCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiAu YWxsbXVsdGljYXN0X2Rpc2FibGUoKQ0KPiA+ID4+Pj4+Pj4+IGNhbGxiYWNrLg0KPiA+ID4+Pj4+ Pj4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gQ2FsbGJhY2tzIGFyZSBjYWxsZWQgZGlyZWN0 bHkgaW4gYWxsIG9mIHRoZXNlIGNhc2VzLCB0bw0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+IGJ5cGFzcyB0 aGUgY2hlY2tzIGZvciBhcHBseWluZyB0aGUgc2FtZSBjb25maWd1cmF0aW9uLA0KPiA+ID4+Pj4+ Pj4+Pj4+Pj4+IHdoaWNoIGV4aXN0IGluIHJlbGV2YW50DQo+ID4gPj4+Pj4+Pj4gQVBJcy4NCj4g PiA+Pj4+Pj4+Pj4+Pj4+PiBDaGVja3MgYXJlIGJ5cGFzc2VkIHRvIGZvcmNlIGRyaXZlcnMgdG8g cmVhcHBseSB0aGUNCj4gY29uZmlndXJhdGlvbi4NCj4gPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+ID4+ Pj4+Pj4+Pj4+Pj4+IExldCdzIGNvbnNpZGVyIHdoYXQgaGFwcGVucyBpbiB0aGUgZm9sbG93aW5n IHNlcXVlbmNlIG9mIEFQSQ0KPiBjYWxscy4NCj4gPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+ID4+Pj4+ Pj4+Pj4+Pj4+IDEuIHJ0ZV9ldGhfZGV2X2NvbmZpZ3VyZSgpIDIuIHJ0ZV9ldGhfdHhfcXVldWVf c2V0dXAoKQ0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+IDMuIHJ0ZV9ldGhfcnhfcXVldWVfc2V0dXAoKSA0 Lg0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+IHJ0ZV9ldGhfcHJvbWlzY3VvdXNfZW5hYmxlKCkNCj4gPiA+ Pj4+Pj4+Pj4+Pj4+PiAgICAgLSBDYWxsIGRldi0+ZGV2X29wcy0+cHJvbWlzY3VvdXNfZW5hYmxl KCkNCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiAgICAgLSBTdG9yZXMgcHJvbWlzY3VvdXMgc3RhdGUgaW4g ZGV2LT5kYXRhLT5wcm9taXNjdW91cyA1Lg0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+IHJ0ZV9ldGhfYWxs bXVsdGljYXN0X2VuYWJsZSgpDQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gICAgIC0gQ2FsbCBkZXYtPmRl dl9vcHMtPmFsbG11bHRpY2FzdF9lbmFibGUoKQ0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAtIFN0 b3JlcyBhbGxtdWx0aWNhc3Qgc3RhdGUgaW4gZGV2LT5kYXRhLT5hbGxtdWx0aWNhc3QgNi4NCj4g PiA+Pj4+Pj4+Pj4+Pj4+PiBydGVfZXRoX2Rldl9zdGFydCgpDQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4g ICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPmRldl9zdGFydCgpDQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4g ICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPm1hY19hZGRyX3NldCgpIC0gYXBwbHkgZGVmYXVsdCBN QUMNCj4gYWRkcmVzcw0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAtIENhbGwgZGV2LT5kZXZfb3Bz LT5wcm9taXNjdW91c19lbmFibGUoKQ0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAtIENhbGwgZGV2 LT5kZXZfb3BzLT5hbGxtdWx0aWNhc3RfZW5hYmxlKCkNCj4gPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+ ID4+Pj4+Pj4+Pj4+Pj4+IEV2ZW4gdGhvdWdoIGFsbCBjb25maWd1cmF0aW9uIGlzIGF2YWlsYWJs ZSBpbiBkZXYtPmRhdGENCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiBhZnRlciBzdGVwIDUsIGxpYnJhcnkg Zm9yY2VzIHJlYXBwbHlpbmcgdGhpcyBjb25maWd1cmF0aW9uIGluIHN0ZXANCj4gNi4NCj4gPiA+ Pj4+Pj4+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+IEluIG1seDUgUE1EIGNhc2UgYWxsIHJl bGV2YW50IGNhbGxiYWNrcyByZXF1aXJlDQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gY29tbXVuaWNhdGlv biB3aXRoIHRoZSBrZXJuZWwgZHJpdmVyLCB0byBjb25maWd1cmUgdGhlDQo+ID4gPj4+Pj4+Pj4+ Pj4+Pj4gZGV2aWNlIChtbHg1IFBNRCBtdXN0IGNyZWF0ZS9kZXN0cm95IG5ldyBrZXJuZWwgZmxv dw0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+IHJ1bGVzIGFuZC9vciBjaGFuZ2UgbmV0ZGV2DQo+ID4gPj4+ PiBjb25maWcpLg0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gbWx4NSBQ TUQgaGFuZGxlcyBhcHBseWluZyBhbGwgY29uZmlndXJhdGlvbiBpbg0KPiA+ID4+Pj4+Pj4+Pj4+ Pj4+IC5kZXZfc3RhcnQoKSwgc28gdGhlIGZvbGxvd2luZyBmb3JjZWQgY2FsbGJhY2tzIGZvcmNl DQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gYWRkaXRpb25hbCBjb21tdW5pY2F0aW9uIHdpdGggdGhlIGtl cm5lbC4gVGhlDQo+ID4gPj4+Pj4+Pj4+Pj4+PiBzYW1lIGNvbmZpZ3VyYXRpb24gaXMgYXBwbGll ZCBtdWx0aXBsZSB0aW1lcy4NCj4gPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+ IEFzIGFuIG9wdGltaXphdGlvbiwgbWx4NSBQTUQgY291bGQgY2hlY2sgaWYgYSBnaXZlbg0KPiA+ ID4+Pj4+Pj4+Pj4+Pj4+IGNvbmZpZ3VyYXRpb24gd2FzIGFwcGxpZWQsIGJ1dCB0aGlzIHdvdWxk IGR1cGxpY2F0ZSB0aGUNCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiBmdW5jdGlvbmFsaXR5IG9mIHRoZSBs aWJyYXJ5IChmb3IgZXhhbXBsZQ0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+IHJ0ZV9ldGhfcHJvbWlzY3Vv dXNfZW5hYmxlKCkgZG9lcyBub3QgY2FsbCB0aGUgZHJpdmVyDQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4g aWYNCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiBkZXYtPmRhdGEtPnByb21pc2N1b3VzIGlzIHNldCkuDQo+ ID4gPj4+Pj4+Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiBRdWVzdGlvbjogU2luY2UgYWxs IG9mIHRoZSBjb25maWd1cmF0aW9uIGlzIGF2YWlsYWJsZQ0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+IGJl Zm9yZQ0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+IC5kZXZfc3RhcnQoKSBjYWxsYmFjayBpcyBjYWxsZWQs IHdoeSBldGhkZXYgbGlicmFyeQ0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+IGRvZXMgbm90IGV4cGVjdCAu ZGV2X3N0YXJ0KCkgdG8NCj4gPiA+Pj4+Pj4+Pj4+Pj4+IHRha2UgdGhpcyBjb25maWd1cmF0aW9u IGludG8gYWNjb3VudD8NCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiBJbiBvdGhlciB3b3Jkcywgd2h5IGxp YnJhcnkgaGFzIHRvIHJlYXBwbHkgdGhlIGNvbmZpZ3VyYXRpb24/DQo+ID4gPj4+Pj4+Pj4+Pj4+ Pj4NCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiBJIGNvdWxkIG5vdCBmaW5kIGFueSBwYXJ0aWN1bGFyIHJl YXNvbiB3aHkNCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiBjb25maWd1cmF0aW9uIHJlc3RvcmUgZXhpc3Rz IGFzIHBhcnQgb2YgdGhlIHByb2Nlc3MgKGl0DQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gd2FzIGluIHRo ZSBpbml0aWFsIERQREsNCj4gPiA+Pj4+IGNvbW1pdCkuDQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4NCj4g PiA+Pj4+Pj4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4+Pj4+PiBNeSBhc3N1bXB0aW9uIGlzIC5kZXZf c3RvcCgpIGNhdXNlIHRoZXNlIHZhbHVlcyByZXNldCBpbg0KPiA+ID4+Pj4+Pj4+Pj4+Pj4gc29t ZSBkZXZpY2VzLCBzbw0KPiA+ID4+Pj4+Pj4+Pj4+Pj4gLmRldl9zdGFydCgpIHJlc3RvcmVzIHRo ZW0gYmFjay4NCj4gPiA+Pj4+Pj4+Pj4+Pj4+IEBCcnVjZSBvciBAS29uc3RhbnRpbiBtYXkgcmVt ZW1iZXIgdGhlIGhpc3RvcnkuDQo+ID4gPj4+Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4+PiBZZXAs IGFzIEkgcmVtZW1iZXIsIGF0IGxlYXN0IHNvbWUgSW50ZWwgUE1EcyBjYWxsaW5nDQo+ID4gPj4+ Pj4+Pj4+Pj4gaHdfcmVzZXQoKSBhZA0KPiA+ID4+Pj4+Pj4+Pj4+IGRlY19zdG9wKCkgYW5kIGV2 ZW4gZGV2X3N0YXJ0KCkgdG8gbWFrZSBzdXJlIHRoYXQgSFcgaXMgaW4NCj4gPiA+Pj4+Pj4+Pj4+ PiBhIGNsZWFuDQo+ID4gPj4+Pj4+Pj4+Pj4gKGtub3duKQ0KPiA+ID4+Pj4+Pj4+IHN0YXRlLg0K PiA+ID4+Pj4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+Pj4+Pj4gQnV0 IEkgYWdyZWUgdGhpcyBpcyBkZXZpY2Ugc3BlY2lmaWMgYmVoYXZpb3IsIGFuZCBjYW4gYmUNCj4g PiA+Pj4+Pj4+Pj4+Pj4+IG1hbmFnZWQgYnkgd2hhdCBkZXZpY2UgcmVxdWlyZXMuDQo+ID4gPj4+ Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4+PiBQcm9iYWJseSB5ZXMuDQo+ID4gPj4+Pj4+Pj4+Pj4N Cj4gPiA+Pj4+Pj4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gVGhlIHBhdGNoZXMgaW5jbHVk ZWQgaW4gdGhpcyBSRkMsIHByb3Bvc2UgYSBtZWNoYW5pc20NCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiB3 aGljaCB3b3VsZCBoZWxwIHdpdGggbWFuYWdpbmcgd2hpY2ggZHJpdmVycyByZWx5IG9uDQo+ID4g Pj4+Pj4+Pj4+Pj4+Pj4gZm9yY2VmdWwgY29uZmlndXJhdGlvbg0KPiA+ID4+Pj4+PiByZXN0b3Jl Lg0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+IERyaXZlcnMgY291bGQgYWR2ZXJ0aXNlIGlmIGZvcmNlZnVs IGNvbmZpZ3VyYXRpb24NCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiByZXN0b3JlIGlzIG5lZWRlZCB0aHJv dWdoIGBSVEVfRVRIX0RFVl8qX0ZPUkNFX1JFU1RPUkVgDQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gZGV2 aWNlIGZsYWcuIElmIHRoaXMgZmxhZyBpcyBzZXQsIHRoZW4gdGhlIGRyaXZlciBpbg0KPiA+ID4+ Pj4+Pj4+Pj4+Pj4+IHF1ZXN0aW9uIHJlcXVpcmVzIGV0aGRldiB0byBmb3JjZWZ1bGx5IHJlc3Rv cmUNCj4gPiA+Pj4+Pj4+Pj4+Pj4+IGNvbmZpZ3VyYXRpb24uDQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4N Cj4gPiA+Pj4+Pj4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4+Pj4+PiBPSyB0byB1c2UgZmxhZyBmb3Ig aXQsIGJ1dCBub3Qgc3VyZSBhYm91dCB1c2luZyAnZGV2X2luZm8tDQo+ID5kZXZfZmxhZ3MnDQo+ ID4gPj4+Pj4+Pj4+Pj4+PiAoUlRFX0VUSF9ERVZfKikgZm9yIHRoaXMsIGFzIHRoaXMgZmxhZyBp cyBzaGFyZWQgd2l0aA0KPiA+ID4+Pj4+Pj4+Pj4+Pj4gdXNlciBhbmQgdGhpcyBpcyBhbGwgZHBk ayBpbnRlcm5hbC4NCj4gPiA+Pj4+Pj4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4+Pj4+PiBXaGF0IGFi b3V0IHRvIGhhdmUgYSBkZWRpY2F0ZWQgZmxhZyBmb3IgaXQ/IFdlIGNhbiBoYXZlDQo+ID4gPj4+ Pj4+Pj4+Pj4+PiBhIGRlZGljYXRlZCBzZXQgb2YgZmxhZyB2YWx1ZXMgZm9yIHJlc3RvcmUuDQo+ ID4gPj4+Pj4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4+Pj4+IEFncmVlZC4gV2hhdCBkbyB5b3UgdGhp bmsgYWJvdXQgdGhlIGZvbGxvd2luZz8NCj4gPiA+Pj4+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+Pj4+ IEluc3RlYWQgb2YgZXhwb3NpbmcgdGhhdCwgY2FuIHdlIHByb2JhYmx5IG1ha2UgaXQNCj4gPiA+ Pj4+Pj4+Pj4+PiB0cmFuc3BhcmVudCB0byB0aGUgdXNlciBhbmQgcHJvYmFibHkgZXRoZGV2IGxh eWVyIHRvbz8NCj4gPiA+Pj4+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4+ ICsxIHRvIG1ha2UgaXQgdHJhbnNwYXJlbnQgdG8gdXNlciwgYnV0IG5vdCBzdXJlIGlmIHdlIGNh bg0KPiA+ID4+Pj4+Pj4+Pj4gK21ha2UgaXQNCj4gPiA+Pj4+Pj4+Pj4+IHRyYW5zcGFyZW50IHRv IGV0aGRldiBsYXllci4NCj4gPiA+Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4gSnVzdCB0byBiZSBj bGVhcjoNCj4gPiA+Pj4+Pj4+Pj4gTGV0IHNheSwgdXNpbmcgZXhhbXBsZSBmcm9tIGFib3ZlOg0K PiA+ID4+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+PiAgcnRlX2V0aF9kZXZfc3RhcnQoKQ0KPiA+ID4+ Pj4+Pj4+PiAgICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPmRldl9zdGFydCgpDQo+ID4gPj4+Pj4+ Pj4+ICAgICAgLSBDYWxsIGRldi0+ZGV2X29wcy0+bWFjX2FkZHJfc2V0KCkgLSBhcHBseSBkZWZh dWx0IE1BQyBhZGRyZXNzDQo+ID4gPj4+Pj4+Pj4+ICAgICAgLSBDYWxsIGRldi0+ZGV2X29wcy0+ cHJvbWlzY3VvdXNfZW5hYmxlKCkNCj4gPiA+Pj4+Pj4+Pj4gICAgICAtIENhbGwgZGV2LT5kZXZf b3BzLT5hbGxtdWx0aWNhc3RfZW5hYmxlKCkNCj4gPiA+Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4g V2UgcHJvYmFibHkgY2FuIGludHJvZHVjZSBldGhkZXYgaW50ZXJuYWwgZnVuY3Rpb24gKHN0aWxs DQo+ID4gPj4+Pj4+Pj4+IHZpc2libGUgdG8NCj4gPiA+Pj4+Pj4+Pj4gUE1EcykgdGhhdCB3b3Vs ZCBkbyBsYXN0IDMgc3RlcHM6DQo+ID4gPj4+Pj4+Pj4+IGV0aGRldl9yZXBsYXlfdXNlcl9jb25m KC4uLikNCj4gPiA+Pj4+Pj4+Pj4gICAgICAtIENhbGwgZGV2LT5kZXZfb3BzLT5tYWNfYWRkcl9z ZXQoKSAtIGFwcGx5IGRlZmF1bHQgTUFDIGFkZHJlc3MNCj4gPiA+Pj4+Pj4+Pj4gICAgICAtIENh bGwgZGV2LT5kZXZfb3BzLT5wcm9taXNjdW91c19lbmFibGUoKQ0KPiA+ID4+Pj4+Pj4+PiAgICAg IC0gQ2FsbCBkZXYtPmRldl9vcHMtPmFsbG11bHRpY2FzdF9lbmFibGUoKQ0KPiA+ID4+Pj4+Pj4+ Pg0KPiA+ID4+Pj4+Pj4+PiBBbmQgbGV0IFBNRCBpdHNlbGYgdG8gZGVjaWRlIGRvZXMgaXQgbmVl ZHMgdG8gY2FsbCBpdCBhdCBkZXZfc3RhcnQoKSBvcg0KPiBub3QuDQo+ID4gPj4+Pj4+Pj4+IFNv IGl0IHdpbGwgYmVjb21lOg0KPiA+ID4+Pj4+Pj4+PiBydGVfZXRoX2Rldl9zdGFydCgpDQo+ID4g Pj4+Pj4+Pj4+ICAgICAgLSBDYWxsIGRldi0+ZGV2X29wcy0+ZGV2X3N0YXJ0KCkNCj4gPiA+Pj4+ Pj4+Pj4gICAgICAgLUNhbGwgZXRoZGV2X3JlcGxheV91c2VyX2NvbmYoLikNCj4gPiA+Pj4+Pj4+ Pj4gICAgICAgICAgICAgICAtIENhbGwgZGV2LT5kZXZfb3BzLT5tYWNfYWRkcl9zZXQoKSAtIGFw cGx5IGRlZmF1bHQgTUFDDQo+IGFkZHJlc3MNCj4gPiA+Pj4+Pj4+Pj4gICAgICAgICAgICAgICAt IENhbGwgZGV2LT5kZXZfb3BzLT5wcm9taXNjdW91c19lbmFibGUoKQ0KPiA+ID4+Pj4+Pj4+PiAg ICAgICAgICAgICAgIC1DYWxsIGRldi0+ZGV2X29wcy0+YWxsbXVsdGljYXN0X2VuYWJsZSgpDQo+ ID4gPj4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4+IEZvciBQTURzIHRoYXQgZG8gbmVlZCB0byByZXN0 b3JlIHVzZXIgcHJvdmlkZWQgY29uZmlnIEFuZA0KPiA+ID4+Pj4+Pj4+PiBydGVfZXRoX2Rldl9z dGFydCgpDQo+ID4gPj4+Pj4+Pj4+ICAgICAgLSBDYWxsIGRldi0+ZGV2X29wcy0+ZGV2X3N0YXJ0 KCkNCj4gPiA+Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4gRm9yIHRob3NlIHdobyBkbyBub3QuDQo+ ID4gPj4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+PiBPSywgZ290IGl0IHdoYXQg eW91IG1lYW4uDQo+ID4gPj4+Pj4+Pj4gUHVzaGluZyByZXN0b3JlIGZ1bmN0aW9uYWxpdHkgdG8g UE1EcyB3b3JrcywgYnV0IHRoaXMgbWF5IGJlDQo+ID4gPj4+Pj4+Pj4gZG9pbmcgcmVkdW5kYW50 IHdvcmsgb24gZWFjaCBQTUQuDQo+ID4gPj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+PiBJbnN0ZWFkIERh cml1c3ogc3VnZ2VzdHMgUE1EIHRvIHByb3ZpZGUgYSBmbGFnIHRvIGVodGRldiB0bw0KPiA+ID4+ Pj4+Pj4+IHdoYXQgdG8gcmVzdG9yZSBhbmQgY29tbW9uIGNvZGUgaW4gZXRoZGV2IGRvZXMgdGhl IHdvcmsuDQo+ID4gPj4+Pj4+Pj4gTXkgYmVsb3cgZGVkaWNhdGVkIGRhdGEgc3RydWN0IGNvbW1l bnQgaXMgdG8gaGF2ZSB0aGlzIGZsYWcNCj4gPiA+Pj4+Pj4+PiBpbiBhIG5ldyBzdHJ1Y3QsIG92 ZXJhbGwgbGlrZSBmb2xsb3dpbmc6DQo+ID4gPj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+PiBydGVfZXRo X2Rldl9zdGFydCgpDQo+ID4gPj4+Pj4+Pj4gICAgLSBDYWxsIGRldi0+ZGV2X29wcy0+ZGV2X3N0 YXJ0KCkNCj4gPiA+Pj4+Pj4+PiAgICAtIENhbGwgZGV2LT5kZXZfb3BzLT5nZXRfcmVzdG9yZV9m bGFncyhldGhkZXYsIFJURV9FVEhfU1RBUlQsDQo+ICZmbGFncykNCj4gPiA+Pj4+Pj4+PiAgICAt IGlmIChmbGFncyAmIE1BQykgZGV2LT5kZXZfb3BzLT5tYWNfYWRkcl9zZXQoKQ0KPiA+ID4+Pj4+ Pj4+ICAgIC0gaWYgKGZsYWdzICYgUFJPTUlTQykgZGV2LT5kZXZfb3BzLT5wcm9taXNjdW91c19l bmFibGUoKQ0KPiA+ID4+Pj4+Pj4+ICAgIC0gLi4uDQo+ID4gPj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4g Q291bGQgeW91IHBsZWFzZSBleHBsYWluIHdoYXQgaXMgdGhlIGJlbmVmaXQgb2YgZXhwb3Npbmcg ZmxhZ3MNCj4gPiA+Pj4+Pj4+IHRocm91Z2ggZGV2X29wcw0KPiA+ID4+Pj4+PiBjYWxsYmFjayB2 cyBhIGRlZGljYXRlZCBmbGFncyBmaWVsZCBpbiBydGVfZXRoX2Rldl9kYXRhPw0KPiA+ID4+Pj4+ Pj4gSW4gYm90aCBzb2x1dGlvbnM6DQo+ID4gPj4+Pj4+PiAtIGNvbmZpZyByZXN0b3JlIGlzIHRy YW5zcGFyZW50IHRvIHRoZSB1c2VyLA0KPiA+ID4+Pj4+Pj4gLSBkcml2ZXJzIGNhbiBvbWl0IGNv bmZpZyByZXN0b3JlIChlaXRoZXIgYnkgbm90IGltcGxlbWVudGluZw0KPiA+ID4+Pj4+Pj4gdGhl IGNhbGxiYWNrIG9yIG5vdCBwcm92aWRpbmcgdGhlIGZsYWdzKSwNCj4gPiA+Pj4+Pj4+IC0gYW4g QUJJIGNoYW5nZSBpcyBpbnRyb2R1Y2VkIChub3QgYSBodWdlIGNvbmNlcm4sIGF0IGxlYXN0IGZv ciAyNC4xMSkuDQo+ID4gPj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4gSSB1bmRlcnN0YW5kIHRoYXQgbXkg aW5pdGlhbCBwcm9wb3NhbCB3aXRoICJpbnRlcm5hbF9mbGFncyINCj4gPiA+Pj4+Pj4+IHdhcyB0 b28gdmFndWUsIGJ1dCByZW5hbWluZyBhbmQgc3BsaXR0aW5nIHRoaXMgZmllbGQgaW50bzoNCj4g PiA+Pj4+Pj4+DQo+ID4gPj4+Pj4+PiAtIGRldl9zdGFydF9yZXN0b3JlX2ZsYWdzDQo+ID4gPj4+ Pj4+PiAtIGRldl9yZXNldF9yZXN0b3JlX2ZsYWdzDQo+ID4gPj4+Pj4+PiAtIGFuZCBzbyBvbi4u Lg0KPiA+ID4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+IHNlZW1zIHN1ZmZpY2llbnQsIGF0IGxlYXN0IGlu IG15IG9waW5pb24uDQo+ID4gPj4+Pj4+Pg0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+PiBIaSBEYXJp dXN6LA0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+PiBQdXR0aW5nIGZsYWdzIHRvIHJ0ZV9ldGhfZGV2 X2RhdGEgd29ya3MsIGFuZCBpdCBpcyBlYXNpZXIgc2luY2UNCj4gPiA+Pj4+Pj4gdGhlcmUgaXMg ZGlyZWN0IGFjY2VzcyBmcm9tIHJ0ZV9ldGhfZGV2IHRvIHJ0ZV9ldGhfZGV2X2RhdGEsIHNvDQo+ ID4gPj4+Pj4+IHlvdSBkb24ndCBuZWVkIG5ldyBkZXZfb3BzLiBTbyB0aGlzIGlzIGEgdmFsaWQg b3B0aW9uLg0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+PiBCdXQgYmVuZWZpdCBvZiBuZXcgZGV2X29w cyBpcyB0byBrZWVwICJzdHJ1Y3QgcnRlX2V0aF9kZXZfZGF0YSIgY2xlYW4uDQo+ID4gPj4+Pj4+ DQo+ID4gPj4+Pj4+ICJzdHJ1Y3QgcnRlX2V0aF9kZXZfZGF0YSIgaXMgaW50ZWdyYWwgZGF0YSBz dHJ1Y3R1cmUgZm9yIGV0aGRldg0KPiA+ID4+Pj4+PiBhbmQgaXQgaXMgdXNlZCBpbiBtdWx0aXBs ZSBsb2NhdGlvbnMsIG1vc3RseSByZWxhdGVkIHRvIHRoZQ0KPiA+ID4+Pj4+PiBkYXRhcGF0aCBh bmQgYWxsIGRyaXZlcnMgbmVlZHMgdG8gZGVhbCB3aXRoIGZpZWxkcyBvZiB0aGlzIHN0cnVjdC4N Cj4gPiA+Pj4+Pj4gTGlrZSBbcnhdX3F1ZXVlcywgZGV2X3ByaXZhdGUsIGRldl9jb25mIGFsbCBp bXBvcnRhbnQgYW5kIHVzZWQgYSBsb3QuDQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+IEkgd2FudCB0 byBwcm90ZWN0ICJzdHJ1Y3QgcnRlX2V0aF9kZXZfZGF0YSIgZnJvbSBub2lzZSBhcyBtdWNoDQo+ ID4gPj4+Pj4+IGFzIHBvc3NpYmxlLCB0aG91Z2ggd2hhdCBpcyBub2lzZSBpcyBub3QgYWx3YXlz IHRoYXQgY2xlYXIuDQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+IFRoaXMgcmVzdG9yZSBmbGFnIGlz IG5vdCBjcml0aWNhbCwgYW5kIEkgZXhwZWN0IG1vc3Qgb2YgdGhlDQo+ID4gPj4+Pj4+IGRyaXZl cnMgd29uJ3QgY2FyZSBhbmQgcG9wdWxhdGUgdGhpcyByZXN0b3JlIGZsYWcgYXQgYWxsLiBUaGF0 DQo+ID4gPj4+Pj4+IGlzIHdoeSB0byBtZSBpdCBpcyBiZXR0ZXIgaGF2ZSBkZWRpY2F0ZWQgc3Ry dWN0IGZvciBpdCBhbmQgb25seQ0KPiA+ID4+Pj4+PiBkcml2ZXJzIGNhcmUgYWJvdXQgcmVzdG9y ZQ0KPiA+ID4+Pj4gZmVhdHVyZSBrbm93IGl0Lg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gSSBzZWUu IFRoYW5rIHlvdSB2ZXJ5IG11Y2ggZm9yIHRoZSBleHBsYW5hdGlvbi4NCj4gPiA+Pj4+Pg0KPiA+ ID4+Pj4+IEluIHRoaXMgY2FzZSwgaXQgbG9va3MgbGlrZSBhZGRpbmcgdGhpcyB0byBkZXZfb3Bz IGlzIHRoZSB3YXkgdG8gZ28uDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBTbywgc3VtbWFyaXppbmcg aXQgYWxsOg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gMS4gZGV2X29wcyBzaG91bGQgYmUgZXh0ZW5k ZWQgd2l0aCBhIGNhbGxiYWNrIHdpdGggdGhlIGZvbGxvd2luZw0KPiA+ID4+Pj4+IHNpZ25hdHVy ZSBhbmQNCj4gPiA+Pj4+IGVudW1zL2ZsYWdzOg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gZW51bSBy dGVfZXRoX2Rldl9vcGVyYXRpb24gb3Agew0KPiA+ID4+Pj4+ICAgICAgIFJURV9FVEhfU1RBUlQs DQo+ID4gPj4+Pj4gICAgICAgUlRFX0VUSF9TVE9QLA0KPiA+ID4+Pj4+ICAgICAgIFJURV9FVEhf UkVTRVQsDQo+ID4gPj4+Pj4gfTsNCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+ICNkZWZpbmUgUlRFX0VU SF9SRVNUT1JFX01BQ19BRERSIFJURV9CSVQzMigwKSAjZGVmaW5lDQo+ID4gPj4+Pj4gUlRFX0VU SF9SRVNUT1JFX1BST01JU0MgUlRFX0JJVDMyKDEpICNkZWZpbmUNCj4gPiA+Pj4+IFJURV9FVEhf UkVTVE9SRV9BTExNVUxUSQ0KPiA+ID4+Pj4+IFJURV9CSVQzMigyKQ0KPiA+ID4+Pj4+DQo+ID4g Pj4+Pj4gdm9pZCAoKmdldF9yZXN0b3JlX2ZsYWdzKSgNCj4gPiA+Pj4+PiAgICAgICBzdHJ1Y3Qg cnRlX2V0aF9kZXYgKmRldiwNCj4gPiA+Pj4+PiAgICAgICBlbnVtIHJ0ZV9ldGhfZGV2X29wZXJh dGlvbiBvcCwNCj4gPiA+Pj4+PiAgICAgICB1aW50MzJfdCAqZmxhZ3MpOw0KPiA+ID4+Pj4+DQo+ ID4gPj4+Pj4gMi4gcnRlX2V0aF9kZXZfc3RhcnQoKSB3aWxsIHdvcmsgYXMgZm9sbG93czoNCj4g PiA+Pj4+Pg0KPiA+ID4+Pj4+IC0gQ2FsbCBkZXYtPmRldl9vcHMtPmRldl9zdGFydCgpDQo+ID4g Pj4+Pj4gLSBDYWxsIGRldi0+ZGV2X29wcy0+Z2V0X3Jlc3RvcmVfZmxhZ3MoZGV2LCBSVEVfRVRI X1NUQVJULA0KPiA+ID4+Pj4+ICZmbGFncykuIElmIGNhbGxiYWNrDQo+ID4gPj4+PiBpcyBub3Qg cHJvdmlkZWQsIGFzc3VtZSBmbGFncyA9PSAwLg0KPiA+ID4+Pj4+IC0gaWYgKGZsYWdzICYgUlRF X0VUSF9SRVNUT1JFX01BQ19BRERSKSAtIHJlc3RvcmUgTUFDIGFkZHJlc3Nlcw0KPiA+ID4+Pj4+ IC0gYW5kIHNvIG9uLi4uDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+DQo+ID4gPj4+PiBBbGwgYWJvdmUg bG9va3MgZ29vZC4NCj4gPiA+Pj4+DQo+ID4gPj4+Pj4gQWxzbywgSSB3b3VsZCBsaWtlIHRvIGFk ZCB0aGUgZm9sbG93aW5nOg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gMy4gUGF0Y2hzZXQgaW50cm9k dWNpbmcgdGhpcyBjaGFuZ2Ugc2hvdWxkIGFkZA0KPiA+ID4+Pj4+IGdldF9yZXN0b3JlX2ZsYWdz KCkNCj4gPiA+Pj4+IGltcGxlbWVudGF0aW9uIHRvIGFsbCBkcml2ZXJzLCB3aGljaCBpbmZvcm1z IHRoYXQgYWxsIGNvbmZpZyBzaG91bGQgYmUNCj4gcmVzdG9yZWQuDQo+ID4gPj4+Pj4gVGhpcyB3 b3VsZCBwcmVzZXJ2ZSB0aGUgY3VycmVudCBiZWhhdmlvci4NCj4gPiA+Pj4+PiBMYXRlciwgdGhp cyBjb3VsZCBiZSByZWZpbmVkIGRyaXZlciBieSBkcml2ZXIuDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+ PiBXaGF0IGRvIHlvdSB0aGluaz8NCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4NCj4gPiA+Pj4+IFdoYXQg eW91IGFyZSBzYXlpbmcgaXMgY29ycmVjdCwgYnV0IEkgc3VzcGVjdCBtb3N0IG9mIHRoZSBkcml2 ZXJzDQo+ID4gPj4+PiBkb24ndCByZWFsbHkgbmVlZCB0aGlzIHJlc3RvcmUsIGJ1dCB0aGV5IGhh dmUgaXQgc2luY2UgaXQgd2FzIGluIHRoZSBldGhkZXYNCj4gbGF5ZXIuDQo+ID4gPj4+Pg0KPiA+ ID4+Pj4gSWYgd2UgaW50cm9kdWNlIGJhY2sgcmVzdG9yZSB2aWEgZ2V0X3Jlc3RvcmVfZmxhZ3Mo KSwgaXQgbWF5IHN0YXkNCj4gPiA+Pj4+IGFzIGl0IGlzIGluIGRyaXZlcnMsIGF0IGxlYXN0IGZv ciBtb3N0IG9mIHRoZW0uDQo+ID4gPj4+Pg0KPiA+ID4+Pj4gV2hhdCBkbyB5b3UgdGhpbmsgdG8g cmlzayBicmVha2luZyBzdHVmZiBmb3IgdGhpcyBjYXNlLg0KPiA+ID4+Pj4NCj4gPiA+Pj4+IFNv IGRvbid0IGltcGxlbWVudCB0aGlzIGluIHRoZSBkcml2ZXJzIGJ5IGRlZmF1bHQsIHNvIHdobyBu ZWVkcw0KPiA+ID4+Pj4gaXQgd2lsbCByZWNvZ25pemUgdGhlIGlzc3VlIGFuZCB3aWxsIGltcGxl bWVudCBpdC4gSWYgd2UgbWVyZ2UNCj4gPiA+Pj4+IHRoaXMgcGF0Y2ggZm9yIC1yYzEsIGl0IGdp dmVzIGVub3VnaCB0aW1lIGZvciBkcml2ZXJzIHRvIGRldGVjdCB0aGUgaXNzdWUgYW5kDQo+IGZp eCBpdC4NCj4gPiA+Pj4NCj4gPiA+Pj4gSXQgc2VlbXMgcmF0aGVyIHRvbyByaXNreSwgZXNwZWNp YWxseSBjb25zaWRlcmluZyB0aGF0IGZvcg0KPiA+ID4+PiBleGFtcGxlLCB0aGVyZSBhcmUgYSBm ZXcgSW50ZWwgZHJpdmVycyB3aGljaCBkbyBub3QgaGF2ZQ0KPiA+ID4+PiBtYWludGFpbmVycyAo bGlrZQ0KPiA+ID4+IGk0MGUpLg0KPiA+ID4+PiBTbywgSSBkb24ndCBrbm93IHdoYXQgd2lsbCBo YXBwZW4gdG8gc3VjaCBkcml2ZXJzLiBUaGV5IG1heSBiZSBsZWZ0IGJyb2tlbg0KPiAoaWYgdGhl eSBhcmUgYWZmZWN0ZWQpIGZvciAyNC4xMSBhbmQgZnV0dXJlIHJlbGVhc2VzLg0KPiA+ID4+PiBC dXQgSSBhZ3JlZSB0aGF0IGlmIGRlZmF1bHQgYmVoYXZpb3IgaXMgcHJlc2VydmVkLCB0aGlzIGRl cGVuZGVuY2Ugb2YgZHJpdmVycw0KPiBvbiBjb25maWcgcmVzdG9yZSBtaWdodCBzdGF5IGFzIGlz Lg0KPiA+ID4+PiBJJ20gb24gdGhlIGZlbmNlIGFib3V0IGl0Lg0KPiA+ID4+Pg0KPiA+ID4+DQo+ ID4gPj4gWWVhaCwgbm90IHN1cmUuDQo+ID4gPj4NCj4gPiA+PiBEbyB5b3UgdGhpbmsgdGhlIGRl dl9vcHMgZnVuY3Rpb24gY2FuIGJlIGltcGxlbWVudGVkIGluIHRoZQ0KPiA+ID4+ICdldGhkZXZf ZHJpdmVyLmMnIGFuZCBhbGwgZHJpdmVycyB1c2UgZXhhY3Qgc2FtZSBmdW5jdGlvbj8NCj4gPiA+ PiBTbyB0aGlzIHJlZHVjZXMgY2hhbmdlcyBhbmQgZHVwbGljYXRpb24gaW4gZHJpdmVycyB3aGls ZSBwcmVzZXJ2aW5nDQo+ID4gPj4gdGhlIGJlaGF2aW9yLg0KPiA+ID4NCj4gPiA+IFdvbmRlciB3 aHkgaXQgY2FuJ3QgYmUgZG9uZSB2aXNhLXZlcnNhPw0KPiA+ID4gSWYgdGhpcyBuZXcgZnVuY3Rp b24gaXMgbm90IGltcGxlbWVudGVkIGJ5IFBNRCwgdGhlbiBzaW1wbHkgYXNzdW1lDQo+ID4gPiB0 aGF0IGV2ZXJ5dGhpbmcgbmVlZHMgdG8gYmUgcmVzdG9yZWQgKGFzIGl0IGhhcHBlbnMgbm93KT8N Cj4gPiA+DQo+ID4NCj4gPiBUcnVlLCB0aGlzIHByZXNlcnZlIHRoZSBiZWhhdmlvciBhbmQgcHJl dmVudHMgdXBkYXRpbmcgYWxsIGRyaXZlcnMuDQo+ID4NCj4gPiBJIHRoaW5rIGNhbiBiZSBkb25l IGluIHR3byB3YXlzOg0KPiA+IDEuIGRldl9vcHMoKSB0ZWxscyB3aGF0IE5PVCB0byByZXN0b3Jl LCBpZiBkZXZfb3BzKCkgbm90IGltcGxlbWVudGVkDQo+ID4gb3IgaXQgcmV0dXJucyB6ZXJvLCBy ZXN0b3JlIGV2ZXJ5dGhpbmcuIEhlcmUgd2hhdCBub3QgbmljZSBpcyB3aGF0IHRvDQo+ID4gcmVz dG9yZSBpbiB0aGlzIGNhc2UgaXMgbm90IHZlcnkgd2VsbCBkZWZpbmVkLg0KPiA+DQo+ID4gMi4g ZGV2X29wcygpIHRlbGxzIHdoYXQgdG8gcmVzdG9yZSwgYnV0IHdoZW4gbm90IGltcGxlbWVudGVk IGRlZmF1bHQNCj4gPiBmbGFnIHZhbHVlIGlzIGFsbCByZXN0b3JlLiBXaGljaCBpcyBjdXJyZW50 IGJlaGF2aW9yLg0KPiA+DQo+ID4NCj4gPiBJIGFtIGZvciBvcHRpb24gMi4gYW5kIEkgYXNzdW1l IHRoYXQgaXMgd2hhdCBLb25zdGFudGluIGFsc28gc3VnZ2VzdCwNCj4gPiBidXQgSSB3YW50IHRv IGNsYXJpZnkgdG8gYmUgc3VyZS4NCj4gDQo+IFllcCwgSSBhbSBhbHNvIGluIGZhdm9yIG9mIG9w dGlvbiAyLg0KDQpJIHNlbnQgdGhlIHBhdGNoIHNlcmllcyBpbXBsZW1lbnRpbmcgdGhlIG9wdGlv biAyOiBodHRwczovL3BhdGNoZXMuZHBkay5vcmcvcHJvamVjdC9kcGRrL2xpc3QvP3Nlcmllcz0z MzQzMw0KDQo+IA0KPiA+DQo+ID4gPj4+Pg0KPiA+ID4+Pj4gT25seSB3ZSBtYXkgaW1wbGVtZW50 IHRoaXMgdG8gdGhlIGRyaXZlcnMgdGhhdCBleGlzdCB3aGVuIHRoaXMNCj4gPiA+Pj4+IHJlc3Rv cmUgY29kZSB3YXMgaW50cm9kdWNlZC4NCj4gPiA+Pj4+IEkgbWVhbiB3aGF0ZXZlciBkcml2ZXIg ZXhpc3QgaW4gdGhlIGluaXRpYWwgRFBESyBjb21taXQsDQo+ID4gPj4+PiBpbXBsZW1lbnQgdGhp cyBsb2dpYyBvbmx5IHRvIHRob3NlIGRyaXZlcnMuDQo+ID4gPj4+DQo+ID4gPj4+IFNlZW1zIHJl YXNvbmFibGUgdG8gbWUuIEluIHRoaXMgY2FzZSwgaXQgd291bGQgYmUgaWdiIChJSVVDLCBub3cg aXQncyBuYW1lZA0KPiBlMTAwMCkgYW5kIGl4Z2JlLg0KPiA+ID4+Pg0KPiA+ID4+Pj4NCj4gPiA+ Pj4+PiBBbHNvLCB0aGVyZSdzIGFuIG9wZW4gcXVlc3Rpb24gYWJvdXQgJ3N0b3AnIGFuZCAncmVz ZXQnIG9wZXJhdGlvbnMuDQo+ID4gPj4+Pj4gQXQgdGhlIG1vbWVudCwgZXRoZGV2IGxheWVyIGRv ZXMgbm90IGRvIGFueSBjb25maWcgbWFuaXB1bGF0aW9uDQo+ID4gPj4+Pj4gZHVyaW5nIHRoZXNl DQo+ID4gPj4+PiBvcGVyYXRpb25zLg0KPiA+ID4+Pj4+IE1heWJlIHdlIHNob3VsZCBsaW1pdCBn ZXRfcmVzdG9yZV9mbGFncygpIHRvICdzdGFydCcgb25seT8NCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4N Cj4gPiA+Pj4+IEFjaywgSSB3YXMgYWJvdXQgdG8gc3VnZ2VzdCB0aGUgc2FtZSwgZm9yIG5vdyBv bmx5IGhhdmUgJ1JURV9FVEhfU1RBUlQnDQo+ID4gPj4+PiBhcyBhIHBsYWNlaG9sZGVyIGZvciBs YXRlciBwb3NzaWJsZSB1c2FnZXMuDQo+ID4gPj4+DQo+ID4gPj4+IEFjaw0KPiA+ID4+Pg0KPiA+ ID4+Pj4NCj4gPiA+Pj4+Pj4NCj4gPiA+Pj4+Pj4NCj4gPiA+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pg0K PiA+ID4+Pj4+Pj4+IFNvIFBNRHMgb25seSB3aWxsIHByb3ZpZGUgd2hhdCB0byByZXN0b3JlIHdp dGggYW4gaW50ZXJuYWwNCj4gPiA+Pj4+Pj4+PiBBUEkgYW5kIGNvbW1vbiBldGhkZXYgbGF5ZXIg d2lsbCByZXN0b3JlIGl0Lg0KPiA+ID4+Pj4+Pj4+IElmIG5vIHJlc3RvcmUgcmVxdWlyZWQgUE1E IG1heSBub3QgaW1wbGVtZW50IC5nZXRfcmVzdG9yZV9mbGFncygpIGF0DQo+IGFsbC4NCj4gPiA+ Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+IEFkZGl0aW9uYWxseSwgUlRFX0VUSF9TVEFSVCwgUlRFX0VU SF9SRVNFVCBldGMgZmxhZyBjYW4gYmUNCj4gPiA+Pj4+Pj4+PiBwcm92aWRlZCB0byBpbnRlcm5h bCBBUEkgdG8gZ2V0IHdoYXQgdG8gcmVzdG9yZSBpbiBkaWZmZXJlbnQgc3RhdGVzLi4uDQo+ID4g Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4+IFN1Z2dlc3RlZCAnaW50ZXJuYWxfZmxhZycgaW4gInN0 cnVjdCBydGVfZXRoX2Rldl9kYXRhIiBjYW4NCj4gPiA+Pj4+Pj4+Pj4+IGJlIGNvbmZ1c2luZyBh bmQgb3BlbiB0byBpbnRlcnByZXRhdGlvbiB3aGF0IHRvIHVzZSBpdCBmb3INCj4gPiA+Pj4+Pj4+ Pj4+IGFuZCBieSB0aW1lIGJlY29tZSBzb3VyY2Ugb2YgZGVmZWN0Lg0KPiA+ID4+Pj4+Pj4+Pg0K PiA+ID4+Pj4+Pj4+PiBZZXMsIHNhbWUgdGhvdWdodHMuDQo+ID4gPj4+Pj4+Pj4+DQo+ID4gPj4+ Pj4+Pj4+PiBJbnN0ZWFkIHdoYXQgZG8geW91IHRoaW5rIHRvIGhhdmUgYSBzZXBhcmF0ZSwgZGVk aWNhdGVkIGRhdGEgc3RydWN0DQo+IGZvciBpdD8NCj4gPiA+Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+ Pj4gSG1tLi4uIG5vdCBzdXJlIEkgdW5kZXJzdG9vZCB5b3UgaGVyZS4uLg0KPiA+ID4+Pj4+Pj4+ Pg0KPiA+ID4+Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4+PiBNaWdodCBiZSB3ZSBjYW4gbW92ZSB0 aGlzIHJlc3RvcmF0aW9uIGNvZGUgaW50byB0aGUgbmV3DQo+ID4gPj4+Pj4+Pj4+Pj4gZXRoZGV2 IGhlbHBlciBmdW5jdGlvbiwoZXRoZGV2ZF91c2VyX2NvbmZpZ19yZXN0b3JlKCkgIG9yDQo+ID4g Pj4+Pj4+Pj4+Pj4gc28pIHRoYXQgUE1EIGNhbiBpbnZva2UNCj4gPiA+Pj4+Pj4+PiBkdXJpbmcg aXRzIGRldl9zdGFydCgpIGlmIG5lZWRlZD8NCj4gPiA+Pj4+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+ Pj4+Pg0KPiA+ID4+Pj4+Pj4+Pj4+PiAjZGVmaW5lIFJURV9FVEhfREVWX0lOVEVSTkFMX1BST01J U0NfRk9SQ0VfUkVTVE9SRQ0KPiA+ID4+Pj4+PiBSVEVfQklUMzIoMCkNCj4gPiA+Pj4+Pj4+Pj4+ Pj4gI2RlZmluZSBSVEVfRVRIX0RFVl9JTlRFUk5BTF9BTExNVUxUSV9GT1JDRV9SRVNUT1JFDQo+ ID4gPj4+Pj4+IFJURV9CSVQzMigxKQ0KPiA+ID4+Pj4+Pj4+Pj4+PiAjZGVmaW5lIFJURV9FVEhf REVWX0lOVEVSTkFMX01BQ19BRERSX0ZPUkNFX1JFU1RPUkUNCj4gPiA+Pj4+Pj4+PiBSVEVfQklU MzIoMikNCj4gPiA+Pj4+Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4+Pj4gc3RydWN0IHJ0ZV9ldGhf ZGV2X2RhdGEgew0KPiA+ID4+Pj4+Pj4+Pj4+PiAgICAvKiBzbmlwICovDQo+ID4gPj4+Pj4+Pj4+ Pj4+DQo+ID4gPj4+Pj4+Pj4+Pj4+ICAgIHVpbnQzMl90IGRldl9mbGFnczsNCj4gPiA+Pj4+Pj4+ Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4+Pj4gICAgLyoqDQo+ID4gPj4+Pj4+Pj4+Pj4+ICAgICAqIElu dGVybmFsIGRldmljZSBjYXBhYmlsaXRpZXMsIHVzZWQgb25seSBieSBldGhkZXYgbGlicmFyeS4N Cj4gPiA+Pj4+Pj4+Pj4+Pj4gICAgICogQ2VydGFpbiBmdW5jdGlvbmFsaXRpZXMgcHJvdmlkZWQg YnkgdGhlIGxpYnJhcnkNCj4gPiA+Pj4+Pj4+Pj4+Pj4gbWlnaHQNCj4gPiA+Pj4+Pj4gZW5hYmxl ZC9kaXNhYmxlZCwNCj4gPiA+Pj4+Pj4+Pj4+Pj4gICAgICogYmFzZWQgb24gZHJpdmVyIGV4cG9z aW5nIGNlcnRhaW4gY2FwYWJpbGl0aWVzLg0KPiA+ID4+Pj4+Pj4+Pj4+PiAgICAgKi8NCj4gPiA+ Pj4+Pj4+Pj4+Pj4gICAgdWludDMyX3QgaW50ZXJuYWxfZmxhZ3M7DQo+ID4gPj4+Pj4+Pj4+Pj4+ DQo+ID4gPj4+Pj4+Pj4+Pj4+ICAgIC8qIHNuaXAgKi8NCj4gPiA+Pj4+Pj4+Pj4+Pj4gfTsNCj4g PiA+Pj4+Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4+Pj4+IEFsc28gcGVyaGFwcyB3ZSBoYXZlIGdv IGludG8gZGV0YWlscyB3aGF0IG5lZWRzIHRvIGJlDQo+ID4gPj4+Pj4+Pj4+Pj4+PiByZXN0b3Jl ZCBhZnRlciAnc3RvcCcgYW5kIHdoYXQgbmVlZHMgdG8gYmUgcmVzdG9yZWQNCj4gPiA+Pj4+Pj4+ Pj4+Pj4+IGFmdGVyICdyZXNldCcgYW5kIHVzZSBzaW1pbGFyDQo+ID4gPj4+Pj4+Pj4gbWVjaGFu aXNtIGV0Yy4uLg0KPiA+ID4+Pj4+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+Pj4+PiBJIHRoaW5rIHdl IHNob3VsZCBsb29rIGludG8gdGhhdC4NCj4gPiA+Pj4+Pj4+Pj4+Pj4gQW55ICdjb2RpZmljYXRp b24nIG9mIHNlbWFudGljcyBiZXR3ZWVuIGRyaXZlcnMgYW5kDQo+ID4gPj4+Pj4+Pj4+Pj4+IGV0 aGRldiBsaWJyYXJ5IGlzIGdvb2QgaW4NCj4gPiA+Pj4+Pj4+PiBteSBvcGluaW9uLg0KPiA+ID4+ Pj4+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+Pj4+PiBBdCBsZWFzdCByaWdodCBub3csIGV0aGRldiBk b2VzIG5vdCBjaGFuZ2UgYW55DQo+ID4gPj4+Pj4+Pj4+Pj4+IGNvbmZpZ3VyYXRpb24gaW4gJ3N0 b3AnIGFuZA0KPiA+ID4+Pj4+Pj4+ICdyZXNldCcgZnJvbSB3aGF0IEkgc2VlLg0KPiA+ID4+Pj4+ Pj4+Pj4+PiBCdXQgdGhhdCdzIG9uIGxpYnJhcnkgc2lkZSBvbmx5Lg0KPiA+ID4+Pj4+Pj4+Pj4+ Pg0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+IFRoaXMgd2F5LCBpZiB3ZSB3b3VsZCBjb25jbHVkZSB0aGF0 IGl0IG1ha2VzIHNlbnNlIGZvcg0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+IC5kZXZfc3RhcnQoKSB0byBo YW5kbGUgYWxsIHN0YXJ0aW5nIGNvbmZpZ3VyYXRpb24NCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiBhc3Bl Y3RzLCB3ZSBjb3VsZCB0cmFjayB3aGljaCBkcml2ZXJzIHN0aWxsIHJlbHkNCj4gPiA+Pj4+Pj4+ Pj4+Pj4+IG9uIGNvbmZpZ3VyYXRpb24gcmVzdG9yZS4NCj4gPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+ ID4+Pj4+Pj4+Pj4+Pj4+IERhcml1c3ogU29zbm93c2tpICg0KToNCj4gPiA+Pj4+Pj4+Pj4+Pj4+ PiAgIGV0aGRldjogcmV3b3JrIGNvbmZpZyByZXN0b3JlDQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gICBl dGhkZXY6IG9taXQgcHJvbWlzY3VvdXMgY29uZmlnIHJlc3RvcmUgaWYgbm90IHJlcXVpcmVkDQo+ ID4gPj4+Pj4+Pj4+Pj4+Pj4gICBldGhkZXY6IG9taXQgYWxsIG11bHRpY2FzdCBjb25maWcgcmVz dG9yZSBpZiBub3QgcmVxdWlyZWQNCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiAgIGV0aGRldjogb21pdCBN QUMgYWRkcmVzcyByZXN0b3JlIGlmIG5vdCByZXF1aXJlZA0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+DQo+ ID4gPj4+Pj4+Pj4+Pj4+Pj4gIGxpYi9ldGhkZXYvcnRlX2V0aGRldi5jIHwgMzkNCj4gPiA+Pj4+ Pj4+Pj4+Pj4+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0NCj4gPiA+ Pj4+Pj4+Pj4+Pj4+PiAgbGliL2V0aGRldi9ydGVfZXRoZGV2LmggfCAxOCArKysrKysrKysrKysr KysrKysNCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiAgMiBmaWxlcyBjaGFuZ2VkLCA1MiBpbnNlcnRpb25z KCspLCA1IGRlbGV0aW9ucygtKQ0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4+Pj4+ Pj4gLS0NCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiAyLjM5LjUNCj4gPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+ ID4+Pj4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pg0KPiA+ID4+Pj4+DQo+ID4g Pj4+DQo+ID4gPg0KDQo=