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 1C1C445B04; Thu, 10 Oct 2024 14:08:58 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 74499402D8; Thu, 10 Oct 2024 14:08:57 +0200 (CEST) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2080.outbound.protection.outlook.com [40.107.243.80]) by mails.dpdk.org (Postfix) with ESMTP id BBD7C4029C for ; Thu, 10 Oct 2024 14:08:55 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=q3RGwGFqJPCPtE5XUjbczY4ZrKMsCZ/CVIiC+zztLT7LY46FuIKdrzKJFVKngJz2/pbpsRUPvCI7X/99F4qqQiSOqHngTiERKAOORm0/+IKvN4tFxLHMQhXkTZSyNK8kcki8AR4Y5y+E5+FLAQFxJoBjPjlOMaUPEl0Kn5cVO+SxYTOgLb/1pl7RQyy0JOqgRufSkT0MAQ2fcoxQfBr0PYNN2I45Eb1uy7BPU2SWg0kXXw3afH4qb9WGEDTx3yWtTJhdj9wM73i8W+1Tfm2TbR65sjwiuRbPgn6wMc+zDxcEbgdzPJiz2ZY4U1WQXFHn5HZWDkSxOziIevh6aHVo6A== 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=uw5xErmmgs49CgAbiuv5VHvwN9EReem/7bipWGOSr4c=; b=KcJwOdDFDZ/IvCImgBoT15ypLfy6YM2T2Y54CqVH+X/IB6+hlvQKKuJReNBCSjMWNYMs/cwiEazCbxowWBeho89sl96FXarZFz9GpofoYzEDqU0R8PGmZccV9uAm3YfUrJOtcPqoilsquq42KiMWgTHru4TFEMv20SrdcDgU2ipRSoaSc8moud/MUUEatET498EsPt/bFIAA5b4Cym4oBoQXn6mZADHd+43ofYpvKCRZ/UEAB+MeZifT+5CqdKoEAPbJA8NQp6w1ji7jQr5kB++JqprLLV+4pjhxjTSK9d34C8Yp4URJhq3FqWrwm3LGGAhCyd8cjjJSnN2ph6dIKg== 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=uw5xErmmgs49CgAbiuv5VHvwN9EReem/7bipWGOSr4c=; b=YKlPPidkMgn4aI9clGmAip5Vi6HLxNVnNqC6nYdBp09UjAFcBFl/3J9GzIjwJxkZSP7d+mjjhxU0LaBGy+TEDyOYWhfLq7+50WJPhznN9m5aramrFtxztSsxqQr4VwSOq1i+cAYEBFOE+/63pq3PeWE8xIyPS162quQUbXZ0A9adiQgICAOLdE2FxqZMrjoU6NA03Yhnsg0BibNkguKqcPhpDMuTevhU/7dXVWdewD9qYTWLsjyZiVwRPeeckaSSgXrDBJLF0RY5n7dksx/pAWYPH3oVPukBHM48OS/XNY5nKXrejaAUJ7GXiwe44GxXFVHFl0Pv3TpQDe9eNG4IIw== Received: from CH3PR12MB8460.namprd12.prod.outlook.com (2603:10b6:610:156::15) by MW3PR12MB4492.namprd12.prod.outlook.com (2603:10b6:303:57::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.18; Thu, 10 Oct 2024 12:08:49 +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.8026.020; Thu, 10 Oct 2024 12:08:48 +0000 From: Dariusz Sosnowski To: Ferruh Yigit , Konstantin Ananyev , "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+96QgAB3gQCAALueAA== Date: Thu, 10 Oct 2024 12:08:48 +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> In-Reply-To: <5ef19db7-f6fe-4a48-8497-e17b33a262b5@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=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH3PR12MB8460:EE_|MW3PR12MB4492:EE_ x-ms-office365-filtering-correlation-id: a3a3b252-2bac-4f1a-c4f6-08dce9244bf9 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|376014|366016|1800799024|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?ZEhxejZINDB3bnN4Z05ZQkdQTFVmZ2d2M2lWajA3bDd5S253OVlnbm5UN1pL?= =?utf-8?B?Wnh5OGZUVnJOcC9JTzVwWG41WWpPK01ReFdESSs0dVRJMHIwMFl1cUF6SEw2?= =?utf-8?B?eWEzYmtGQnpQM25KSERTRExZNU81M2puWTJkeElFN2xveGdxK2NIcTViQUQx?= =?utf-8?B?dnkyRDZvdlhadXhpdnFQR0ZTR1JNQkgrMmRrNExYNUlYeHVSM3NiY0JKVVZD?= =?utf-8?B?ZkdrWGJIaWM2WnNrUWJXamhUTlhtcDl2N2R5bHBvRlBCMEJLelhjcGhBdnRi?= =?utf-8?B?a1MvelZIY2VNVm9GQjVWSUJBS256ckZ6QzdxcktMYXpvSmxBZVp3eDNPUGJO?= =?utf-8?B?Tk02djVEcUtVUCtvTDB5dTBXcElEbHNNT1h2OTVjY0I5SmRoY3BIRndieWlI?= =?utf-8?B?bWh2Yk9wRjJxVnMwR0RuUk9oaHc3SDhSOEhvTm8rUkFHNTZ4dTQyVFBxalVh?= =?utf-8?B?aFZBMzFTdEkrZVd5bTJMNzZPNEw5MGY4ZEhvdjI0bXRHSHFHTVpZWmVjb0Jh?= =?utf-8?B?b1lPUEpNbi8zYkFtNFQvMHViYnlmRC9vY1lDYW9HMUpWVW5FOU9PY1NhQWd4?= =?utf-8?B?c28rK3ZwU3ZNZ1czVERZYkRCRk9ya3lqTlN0RmpCNFNQZ01sTHVFNUxBVjVm?= =?utf-8?B?M1RnNC85QWJLc2dtRkIyTFQ4OThxQkUzU241VDhxek54ZG5MQzkwM1dyVjhW?= =?utf-8?B?NEp1eWdGWUR6TjZtSWZNUm5KM2VscXlJemlvWGk2UVJwa0FUY1ZWbkxjT0Er?= =?utf-8?B?OCtzeWJjS1hnSGZDUmpWUHpBOUY2Q0tkdVZheE1NVytFZlVscDBiNzNGd2tq?= =?utf-8?B?QkQyWHlvQVJERnZNQ1g4M2lNRVgzQ0gxdlUzNmVsTHFycDhUN0ViOVlYc2ZK?= =?utf-8?B?Zmx6VDFBS05VZjNNNEVOWGtTV2EwRmpTRk1MUVlyWmkwUUR5N0xmaERSV3FC?= =?utf-8?B?QnRDaC9VNU5pckQwNjJOQWYwYytERndUWXd2RU1iakNmMVZRTUIrWXZSMHVI?= =?utf-8?B?Z21ob0VzU1FYekE5WmpHSHZuTWZGK0ZuR0NRSFVRNTRkTTRLYWxWNlFIOVFs?= =?utf-8?B?ZlBZNHpYazhqb2o1alJZbXRXb1NoTjdleFdrb2hpRnFNSzBXRktFTFhUSiti?= =?utf-8?B?K3BTOVUvckdCNlYvckowZDN0L1dBK0tJblFjWlplbnBIK3Q5VXUzeE1wUUZZ?= =?utf-8?B?MTd5cHFWSXZTWm9UbG1PdFhGOUEzOWI0V2JkNWYrR3BPWEh0YmppdHNacFZM?= =?utf-8?B?NmJ2alk5Rm5uYmU2L3ZaWFVlT2pQd2NGa0hEVGwzbFBRaEtMWEVqUy81VWQ0?= =?utf-8?B?QldYZHhsbXRzWWFlRnhRcUhTRFlmNE5oKzhCQ2lCaXhpRy80dlNCakFEQTRT?= =?utf-8?B?bVhTL0xNT0FMOFEzaWNWL0paeThDTkxiS0dGNFFZWGFYQ2FYSzlHVVU2KzlY?= =?utf-8?B?VnFNZmkvcFlUbHhoZlowV2Y3UGN0UHN2RElOeDhua0k4OGd6UGx6MjdlRDAy?= =?utf-8?B?NDJFeitJUzV2YnNyMThvTHB6UTlhVXhrTlhqVVFoUTJCMzlab3JkZGtJNlJN?= =?utf-8?B?SlYxRGZ1RExDZWh5cVFMVEh2Z3NhZ0ZPNGFLaENIaG43M2RlTDNEZ1pxRTcw?= =?utf-8?B?T3NBZ2ZZME8vSEN0NnBPWTlpQks3d3V2VDRBUUZINGw4SmtzR1dOb2dNUjdS?= =?utf-8?B?dmNPYzlEeXBQaDNLbWZtMm1Ec2pjdEgzWE8yeHBzbkMwZnVNbWx2T2FVenJ2?= =?utf-8?B?dURBdnNVekNlUUZSWkFIVHNydnR6OGFsbXBYQXpTTjUwSW84NWdvTklNek9w?= =?utf-8?B?MGQ0b1l1ck5pdDRuM0RUUT09?= 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)(376014)(366016)(1800799024)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UXF3aGV6S1owK1JMNmRrd2xhcjNKeEkyc2gwd2JhanI0dnNhUWc0QjRPN3o2?= =?utf-8?B?NHB3eEFpbnBSNnMwbnpGSkVpbnlIWGNkbE5CM3Z3LzBQNmk1Ni9HRW1sZHBC?= =?utf-8?B?SzJUWnB6U1hxS3RhV2ZKMXplSXdYYzhpZW43TkFYanEydi9CNDBCWHliY2ww?= =?utf-8?B?TnZsNFRQajRsQmJLb3UwRGRsbjNkcXVhQVd3Z0pWT1JFcU1ZQThMbGF3a0h2?= =?utf-8?B?d2sxOFVla0NVbi9ySXFzTEJIWVlXNWFIWDJ1ZDFsam9nVHJ1MnBqdDFjRDQ4?= =?utf-8?B?TGlXaWlUMU00OVFJTE0vZS9Wc2E0R1NUQ2xvcHFLVWswVmdkZDJwcit1RVFM?= =?utf-8?B?WStOajNYdVlEc2lUWndxcmxHdnpHNjVCd0NadExMNnNYdzF6aHdBSFdBRlBm?= =?utf-8?B?bEswc2xUSmxxOUtCTWt2ekJCQ0xpbnVRQmtEVmdpd1NqWFV5YzFRb010a2pH?= =?utf-8?B?Yk5OVzBUZi9jNlQzTys3YmkxWTBEM0ZkaE02Sm44cUsvdTcvUjVuYUg3b1ZQ?= =?utf-8?B?TnFISEc0T0xSTTJnL0dUU1ZDRi81NUxES0tDVjk4S2RoalExcEMvd0IybDU3?= =?utf-8?B?eVVjY0NZdEhVdTN2a2k1STByOVhwWFVjaWV3MTV2Z3gyaHFqT29LQmJXVU1U?= =?utf-8?B?MjBsTEJDbUV5TzI1bnU4UFE2YXVvL2h4dWZUUjk4VFN1aHU1cDRRSlozV2VN?= =?utf-8?B?ZGVlRktuc1YxV3YvcWxyMWdKazJhajcxMlJqK0M5Y1NRVkRZb0ltTUlUQjBs?= =?utf-8?B?aklrZjRMbmtoOXc4aDF0ZmhIR1ErbWxyL0ZQTTU2c0IzNk9RclBqRElnRHp5?= =?utf-8?B?d0lmK2F5QlZkbkVpTFdXeVVTK2pRamd6ajlFdmgvekZkelJ4MnQ5bldNY0RD?= =?utf-8?B?c3p2MzlwdEc3WTdlUkd2TXU5WC9Qa1huWStqKzZtZnVJcWdNanlyZlhsbEdv?= =?utf-8?B?a2V4S1FQVDM4ZURLdEJMcTRnOGJ1aEsrcVhBZUl2cTBIUU9pQ3czS2p4emdr?= =?utf-8?B?eGJXTW9KdXpGRGRrWGd5YmMzRURDR2pDMUVlK3NJejBUNk5rc1JFUEFWOWFT?= =?utf-8?B?czdja2U0dlZyWk9teHNNL3RTd2wzZnRGN2tMSjdVR3dlZXFLTjZTR0NhU3B3?= =?utf-8?B?cEhGWXplSGlZZTQ4dERKWitjNzZCd2FoN2FCWjgvbjZqdHkwMGZFdnZ2Q3lD?= =?utf-8?B?cnZwaDBac3VERzFvbHIzaTVBaFpDZk1maDhuUWlpNjV4elZMMXI2L3pYQlVE?= =?utf-8?B?N2tIOGZEaXlpNUwvdHhnNjNCdnMyQlU3UkJtdG5CemdTT0hEYXROd2dvMlBQ?= =?utf-8?B?Wk1ETWV0TEdlQnNmeUFYbC9DcXNjQjBGWi9tV2VlMC9jOUdCa0t1SWNXdGhq?= =?utf-8?B?SldKY3ZYUlV1WXZZL2x3YzU4V0ZSalU0bVlNWGVtaWFOUThXdTkrcXBnY0N6?= =?utf-8?B?aG44dHFSZElrRGd6S0RrZ3dBMUhjK05TS3dyYlVhempGNHYrOW1GLzhnN3Fw?= =?utf-8?B?N2dLVnRzamp5L3ZGNURUZTBsUko4a2hhNTN2bFRLY05TY2FQL2txc0ZDWjRY?= =?utf-8?B?SHhoZlFMb0hDb2RwLzg1MUZIakxraG1QSnI3eWVFUVpENENDeUUxOCt1YUQ5?= =?utf-8?B?LzhWdGozT1RETmNaeFpLTnNqdVBBa1g0RnJadDQxeDFsRG9wc29FTnUvRnhn?= =?utf-8?B?WnEyaHJhVUwraEdXTWZEZHpyM3ljMHJSYm5kaDhtQkRhOThpNS9DZUxBajVh?= =?utf-8?B?eGpCL1pEL01rdXQ5eDQ2cHh2L08vL0RrTzEvdThOQVlWK2xEYnBjVFFOM0dR?= =?utf-8?B?dTBQNzdvc3piZ2dCTXhiOFBybXVHYjFsemVqVDcvMWtaK2pKWFl3RytYRVRl?= =?utf-8?B?amZZdGhXMVFTaUJhbHRhNEZ2aFNLSnVCRGpvM0ZuZHg2d2tzdFdsV0ptM2dp?= =?utf-8?B?L1MzeUVkOGEzcVJTK2tuN0RPZWJ1YnJWbEtGc3ord1hzcUVvVnZxRDF3dktZ?= =?utf-8?B?SHFXSUJjQ09mVDd0a014SzhibEhWTTRDR1ExVVFMLzlDQVlwZnA3VjdDK0pr?= =?utf-8?B?cktaUUFKTUxoQzZqUEtBcUJGSmY0eHc3ZUZnY3JreEJkTFJXdkdDQmxvMHdV?= =?utf-8?Q?PslQ1K4Re9GarRa/Lgm14H0tP?= 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: a3a3b252-2bac-4f1a-c4f6-08dce9244bf9 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Oct 2024 12:08:48.1939 (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: DSPj7sjR072g3Z1J0R+8MEInQ+qf3P6isc4qSNRlQmpbu30RjPHclQOz1c+a+rA53Nt1hd0y2o2nsa9j18aVIw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR12MB4492 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 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBGZXJydWggWWlnaXQgPGZlcnJ1 aC55aWdpdEBhbWQuY29tPg0KPiBTZW50OiBUaHVyc2RheSwgT2N0b2JlciAxMCwgMjAyNCAwMTox Nw0KPiBUbzogRGFyaXVzeiBTb3Nub3dza2kgPGRzb3Nub3dza2lAbnZpZGlhLmNvbT47IEtvbnN0 YW50aW4gQW5hbnlldg0KPiA8a29uc3RhbnRpbi5hbmFueWV2QGh1YXdlaS5jb20+OyBOQlUtQ29u dGFjdC1UaG9tYXMgTW9uamFsb24gKEVYVEVSTkFMKQ0KPiA8dGhvbWFzQG1vbmphbG9uLm5ldD47 IEFuZHJldyBSeWJjaGVua28gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiBDYzog ZGV2QGRwZGsub3JnOyBCcnVjZSBSaWNoYXJkc29uIDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNv bT4NCj4gU3ViamVjdDogUmU6IFtSRkMgMC80XSBldGhkZXY6IHJld29yayBjb25maWcgcmVzdG9y ZQ0KPiANCj4gRXh0ZXJuYWwgZW1haWw6IFVzZSBjYXV0aW9uIG9wZW5pbmcgbGlua3Mgb3IgYXR0 YWNobWVudHMNCj4gDQo+IA0KPiBPbiAxMC85LzIwMjQgNToxOCBQTSwgRGFyaXVzeiBTb3Nub3dz a2kgd3JvdGU6DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IEZl cnJ1aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QGFtZC5jb20+DQo+ID4+IFNlbnQ6IFdlZG5lc2RheSwg T2N0b2JlciA5LCAyMDI0IDAzOjA4DQo+ID4+IFRvOiBLb25zdGFudGluIEFuYW55ZXYgPGtvbnN0 YW50aW4uYW5hbnlldkBodWF3ZWkuY29tPjsgRGFyaXVzeg0KPiA+PiBTb3Nub3dza2kgPGRzb3Nu b3dza2lAbnZpZGlhLmNvbT47IE5CVS1Db250YWN0LVRob21hcyBNb25qYWxvbg0KPiA+PiAoRVhU RVJOQUwpIDx0aG9tYXNAbW9uamFsb24ubmV0PjsgQW5kcmV3IFJ5YmNoZW5rbw0KPiA+PiA8YW5k cmV3LnJ5YmNoZW5rb0Bva3RldGxhYnMucnU+DQo+ID4+IENjOiBkZXZAZHBkay5vcmc7IEJydWNl IFJpY2hhcmRzb24gPGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tPg0KPiA+PiBTdWJqZWN0OiBS ZTogW1JGQyAwLzRdIGV0aGRldjogcmV3b3JrIGNvbmZpZyByZXN0b3JlDQo+ID4+DQo+ID4+IEV4 dGVybmFsIGVtYWlsOiBVc2UgY2F1dGlvbiBvcGVuaW5nIGxpbmtzIG9yIGF0dGFjaG1lbnRzDQo+ ID4+DQo+ID4+DQo+ID4+IE9uIDEwLzgvMjAyNCA2OjIxIFBNLCBLb25zdGFudGluIEFuYW55ZXYg d3JvdGU6DQo+ID4+Pg0KPiA+Pj4NCj4gPj4+Pj4+Pj4gV2UgaGF2ZSBiZWVuIHdvcmtpbmcgb24g b3B0aW1pemluZyB0aGUgbGF0ZW5jeSBvZiBjYWxscyB0bw0KPiA+Pj4+Pj4+PiBydGVfZXRoX2Rl dl9zdGFydCgpLCBvbiBwb3J0cyBzcGF3bmVkIGJ5IG1seDUgUE1ELiBNb3N0IG9mIHRoZQ0KPiA+ Pj4+Pj4+PiB3b3JrIHJlcXVpcmVzIGNoYW5nZXMgaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mDQo+ ID4+Pj4+Pj4+IC5kZXZfc3RhcnQoKSBQTUQgY2FsbGJhY2ssIGJ1dCBJIGFsc28gd2FudGVkIHRv IHN0YXJ0IGENCj4gPj4+Pj4+Pj4gZGlzY3Vzc2lvbiByZWdhcmRpbmcgY29uZmlndXJhdGlvbiBy ZXN0b3JlLg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBydGVfZXRoX2Rldl9zdGFydCgpIGRvZXMg YSBmZXcgdGhpbmdzIG9uIHRvcCBvZiBjYWxsaW5nDQo+ID4+Pj4+Pj4+IC5kZXZfc3RhcnQoKQ0K PiA+PiBjYWxsYmFjazoNCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gLSBCZWZvcmUgY2FsbGluZyBp dDoNCj4gPj4+Pj4+Pj4gICAgIC0gZXRoX2Rldl9tYWNfcmVzdG9yZSgpIC0gaWYgZGV2aWNlIHN1 cHBvcnRzDQo+ID4+Pj4+Pj4+IFJURV9FVEhfREVWX05PTElWRV9NQUNfQUREUjsNCj4gPj4+Pj4+ Pj4gLSBBZnRlciBjYWxsaW5nIGl0Og0KPiA+Pj4+Pj4+PiAgICAgLSBldGhfZGV2X21hY19yZXN0 b3JlKCkgLSBpZiBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydA0KPiA+Pj4+Pj4+IFJURV9FVEhfREVW X05PTElWRV9NQUNfQUREUjsNCj4gPj4+Pj4+Pj4gICAgIC0gcmVzdG9yZSBwcm9taXNjdW91cyBj b25maWcNCj4gPj4+Pj4+Pj4gICAgIC0gcmVzdG9yZSBhbGwgbXVsdGljYXN0IGNvbmZpZw0KPiA+ Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBldGhfZGV2X21hY19yZXN0b3JlKCkgaXRlcmF0ZXMgb3ZlciBh bGwga25vd24gTUFDIGFkZHJlc3NlcyAtDQo+ID4+Pj4+Pj4+IHN0b3JlZCBpbiBydGVfZXRoX2Rl dl9kYXRhLm1hY19hZGRycyBhcnJheSAtIGFuZCBjYWxscw0KPiA+Pj4+Pj4+PiAubWFjX2FkZHJf c2V0KCkgYW5kIC5tYWNfYWRkcl9hZGQoKSBjYWxsYmFja3MgdG8gYXBwbHkgdGhlc2UNCj4gPj4+ Pj4+Pj4gTUFDDQo+ID4+IGFkZHJlc3Nlcy4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gUHJvbWlz Y3VvdXMgY29uZmlnIHJlc3RvcmUgY2hlY2tzIGlmIHByb21pc2N1b3VzIG1vZGUgaXMNCj4gPj4+ Pj4+Pj4gZW5hYmxlZCBvciBub3QsIGFuZCBjYWxscyAucHJvbWlzY3VvdXNfZW5hYmxlKCkgb3IN Cj4gPj4+Pj4+Pj4gLnByb21pc2N1b3VzX2Rpc2FibGUoKQ0KPiA+PiBjYWxsYmFjay4NCj4gPj4+ Pj4+Pj4NCj4gPj4+Pj4+Pj4gQWxsIG11bHRpY2FzdCBjb25maWcgcmVzdG9yZSBjaGVja3MgaWYg YWxsIG11bHRpY2FzdCBtb2RlIGlzDQo+ID4+Pj4+Pj4+IGVuYWJsZWQgb3Igbm90LCBhbmQgY2Fs bHMgLmFsbG11bHRpY2FzdF9lbmFibGUoKSBvcg0KPiA+Pj4+Pj4+PiAuYWxsbXVsdGljYXN0X2Rp c2FibGUoKQ0KPiA+PiBjYWxsYmFjay4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gQ2FsbGJhY2tz IGFyZSBjYWxsZWQgZGlyZWN0bHkgaW4gYWxsIG9mIHRoZXNlIGNhc2VzLCB0byBieXBhc3MNCj4g Pj4+Pj4+Pj4gdGhlIGNoZWNrcyBmb3IgYXBwbHlpbmcgdGhlIHNhbWUgY29uZmlndXJhdGlvbiwg d2hpY2ggZXhpc3QgaW4NCj4gPj4+Pj4+Pj4gcmVsZXZhbnQNCj4gPj4gQVBJcy4NCj4gPj4+Pj4+ Pj4gQ2hlY2tzIGFyZSBieXBhc3NlZCB0byBmb3JjZSBkcml2ZXJzIHRvIHJlYXBwbHkgdGhlIGNv bmZpZ3VyYXRpb24uDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IExldCdzIGNvbnNpZGVyIHdoYXQg aGFwcGVucyBpbiB0aGUgZm9sbG93aW5nIHNlcXVlbmNlIG9mIEFQSSBjYWxscy4NCj4gPj4+Pj4+ Pj4NCj4gPj4+Pj4+Pj4gMS4gcnRlX2V0aF9kZXZfY29uZmlndXJlKCkNCj4gPj4+Pj4+Pj4gMi4g cnRlX2V0aF90eF9xdWV1ZV9zZXR1cCgpDQo+ID4+Pj4+Pj4+IDMuIHJ0ZV9ldGhfcnhfcXVldWVf c2V0dXAoKQ0KPiA+Pj4+Pj4+PiA0LiBydGVfZXRoX3Byb21pc2N1b3VzX2VuYWJsZSgpDQo+ID4+ Pj4+Pj4+ICAgICAtIENhbGwgZGV2LT5kZXZfb3BzLT5wcm9taXNjdW91c19lbmFibGUoKQ0KPiA+ Pj4+Pj4+PiAgICAgLSBTdG9yZXMgcHJvbWlzY3VvdXMgc3RhdGUgaW4gZGV2LT5kYXRhLT5wcm9t aXNjdW91cyA1Lg0KPiA+Pj4+Pj4+PiBydGVfZXRoX2FsbG11bHRpY2FzdF9lbmFibGUoKQ0KPiA+ Pj4+Pj4+PiAgICAgLSBDYWxsIGRldi0+ZGV2X29wcy0+YWxsbXVsdGljYXN0X2VuYWJsZSgpDQo+ ID4+Pj4+Pj4+ICAgICAtIFN0b3JlcyBhbGxtdWx0aWNhc3Qgc3RhdGUgaW4gZGV2LT5kYXRhLT5h bGxtdWx0aWNhc3QgNi4NCj4gPj4+Pj4+Pj4gcnRlX2V0aF9kZXZfc3RhcnQoKQ0KPiA+Pj4+Pj4+ PiAgICAgLSBDYWxsIGRldi0+ZGV2X29wcy0+ZGV2X3N0YXJ0KCkNCj4gPj4+Pj4+Pj4gICAgIC0g Q2FsbCBkZXYtPmRldl9vcHMtPm1hY19hZGRyX3NldCgpIC0gYXBwbHkgZGVmYXVsdCBNQUMgYWRk cmVzcw0KPiA+Pj4+Pj4+PiAgICAgLSBDYWxsIGRldi0+ZGV2X29wcy0+cHJvbWlzY3VvdXNfZW5h YmxlKCkNCj4gPj4+Pj4+Pj4gICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPmFsbG11bHRpY2FzdF9l bmFibGUoKQ0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBFdmVuIHRob3VnaCBhbGwgY29uZmlndXJh dGlvbiBpcyBhdmFpbGFibGUgaW4gZGV2LT5kYXRhIGFmdGVyDQo+ID4+Pj4+Pj4+IHN0ZXAgNSwg bGlicmFyeSBmb3JjZXMgcmVhcHBseWluZyB0aGlzIGNvbmZpZ3VyYXRpb24gaW4gc3RlcCA2Lg0K PiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBJbiBtbHg1IFBNRCBjYXNlIGFsbCByZWxldmFudCBjYWxs YmFja3MgcmVxdWlyZSBjb21tdW5pY2F0aW9uDQo+ID4+Pj4+Pj4+IHdpdGggdGhlIGtlcm5lbCBk cml2ZXIsIHRvIGNvbmZpZ3VyZSB0aGUgZGV2aWNlIChtbHg1IFBNRCBtdXN0DQo+ID4+Pj4+Pj4+ IGNyZWF0ZS9kZXN0cm95IG5ldyBrZXJuZWwgZmxvdyBydWxlcyBhbmQvb3IgY2hhbmdlIG5ldGRl diBjb25maWcpLg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBtbHg1IFBNRCBoYW5kbGVzIGFwcGx5 aW5nIGFsbCBjb25maWd1cmF0aW9uIGluIC5kZXZfc3RhcnQoKSwgc28NCj4gPj4+Pj4+Pj4gdGhl IGZvbGxvd2luZyBmb3JjZWQgY2FsbGJhY2tzIGZvcmNlIGFkZGl0aW9uYWwgY29tbXVuaWNhdGlv bg0KPiA+Pj4+Pj4+PiB3aXRoIHRoZSBrZXJuZWwuIFRoZQ0KPiA+Pj4+Pj4+IHNhbWUgY29uZmln dXJhdGlvbiBpcyBhcHBsaWVkIG11bHRpcGxlIHRpbWVzLg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+ PiBBcyBhbiBvcHRpbWl6YXRpb24sIG1seDUgUE1EIGNvdWxkIGNoZWNrIGlmIGEgZ2l2ZW4NCj4g Pj4+Pj4+Pj4gY29uZmlndXJhdGlvbiB3YXMgYXBwbGllZCwgYnV0IHRoaXMgd291bGQgZHVwbGlj YXRlIHRoZQ0KPiA+Pj4+Pj4+PiBmdW5jdGlvbmFsaXR5IG9mIHRoZSBsaWJyYXJ5IChmb3IgZXhh bXBsZQ0KPiA+Pj4+Pj4+PiBydGVfZXRoX3Byb21pc2N1b3VzX2VuYWJsZSgpIGRvZXMgbm90IGNh bGwgdGhlIGRyaXZlciBpZg0KPiA+Pj4+Pj4+PiBkZXYtPmRhdGEtPnByb21pc2N1b3VzIGlzIHNl dCkuDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IFF1ZXN0aW9uOiBTaW5jZSBhbGwgb2YgdGhlIGNv bmZpZ3VyYXRpb24gaXMgYXZhaWxhYmxlIGJlZm9yZQ0KPiA+Pj4+Pj4+PiAuZGV2X3N0YXJ0KCkg Y2FsbGJhY2sgaXMgY2FsbGVkLCB3aHkgZXRoZGV2IGxpYnJhcnkgZG9lcyBub3QNCj4gPj4+Pj4+ Pj4gZXhwZWN0IC5kZXZfc3RhcnQoKSB0bw0KPiA+Pj4+Pj4+IHRha2UgdGhpcyBjb25maWd1cmF0 aW9uIGludG8gYWNjb3VudD8NCj4gPj4+Pj4+Pj4gSW4gb3RoZXIgd29yZHMsIHdoeSBsaWJyYXJ5 IGhhcyB0byByZWFwcGx5IHRoZSBjb25maWd1cmF0aW9uPw0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+ PiBJIGNvdWxkIG5vdCBmaW5kIGFueSBwYXJ0aWN1bGFyIHJlYXNvbiB3aHkgY29uZmlndXJhdGlv bg0KPiA+Pj4+Pj4+PiByZXN0b3JlIGV4aXN0cyBhcyBwYXJ0IG9mIHRoZSBwcm9jZXNzIChpdCB3 YXMgaW4gdGhlIGluaXRpYWwgRFBESyBjb21taXQpLg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+DQo+ ID4+Pj4+Pj4gTXkgYXNzdW1wdGlvbiBpcyAuZGV2X3N0b3AoKSBjYXVzZSB0aGVzZSB2YWx1ZXMg cmVzZXQgaW4gc29tZQ0KPiA+Pj4+Pj4+IGRldmljZXMsIHNvDQo+ID4+Pj4+Pj4gLmRldl9zdGFy dCgpIHJlc3RvcmVzIHRoZW0gYmFjay4NCj4gPj4+Pj4+PiBAQnJ1Y2Ugb3IgQEtvbnN0YW50aW4g bWF5IHJlbWVtYmVyIHRoZSBoaXN0b3J5Lg0KPiA+Pj4+Pg0KPiA+Pj4+PiBZZXAsIGFzIEkgcmVt ZW1iZXIsIGF0IGxlYXN0IHNvbWUgSW50ZWwgUE1EcyBjYWxsaW5nIGh3X3Jlc2V0KCkgYWQNCj4g Pj4+Pj4gZGVjX3N0b3AoKSBhbmQgZXZlbiBkZXZfc3RhcnQoKSB0byBtYWtlIHN1cmUgdGhhdCBI VyBpcyBpbiBhIGNsZWFuDQo+ID4+Pj4+IChrbm93bikNCj4gPj4gc3RhdGUuDQo+ID4+Pj4+DQo+ ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBCdXQgSSBhZ3JlZSB0aGlzIGlzIGRldmljZSBzcGVjaWZpYyBi ZWhhdmlvciwgYW5kIGNhbiBiZSBtYW5hZ2VkDQo+ID4+Pj4+Pj4gYnkgd2hhdCBkZXZpY2UgcmVx dWlyZXMuDQo+ID4+Pj4+DQo+ID4+Pj4+IFByb2JhYmx5IHllcy4NCj4gPj4+Pj4NCj4gPj4+Pj4+ Pg0KPiA+Pj4+Pj4+PiBUaGUgcGF0Y2hlcyBpbmNsdWRlZCBpbiB0aGlzIFJGQywgcHJvcG9zZSBh IG1lY2hhbmlzbSB3aGljaA0KPiA+Pj4+Pj4+PiB3b3VsZCBoZWxwIHdpdGggbWFuYWdpbmcgd2hp Y2ggZHJpdmVycyByZWx5IG9uIGZvcmNlZnVsIGNvbmZpZ3VyYXRpb24NCj4gcmVzdG9yZS4NCj4g Pj4+Pj4+Pj4gRHJpdmVycyBjb3VsZCBhZHZlcnRpc2UgaWYgZm9yY2VmdWwgY29uZmlndXJhdGlv biByZXN0b3JlIGlzDQo+ID4+Pj4+Pj4+IG5lZWRlZCB0aHJvdWdoIGBSVEVfRVRIX0RFVl8qX0ZP UkNFX1JFU1RPUkVgIGRldmljZSBmbGFnLiBJZg0KPiA+Pj4+Pj4+PiB0aGlzIGZsYWcgaXMgc2V0 LCB0aGVuIHRoZSBkcml2ZXIgaW4gcXVlc3Rpb24gcmVxdWlyZXMgZXRoZGV2DQo+ID4+Pj4+Pj4+ IHRvIGZvcmNlZnVsbHkgcmVzdG9yZQ0KPiA+Pj4+Pj4+IGNvbmZpZ3VyYXRpb24uDQo+ID4+Pj4+ Pj4+DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBPSyB0byB1c2UgZmxhZyBmb3IgaXQsIGJ1dCBub3Qg c3VyZSBhYm91dCB1c2luZyAnZGV2X2luZm8tPmRldl9mbGFncycNCj4gPj4+Pj4+PiAoUlRFX0VU SF9ERVZfKikgZm9yIHRoaXMsIGFzIHRoaXMgZmxhZyBpcyBzaGFyZWQgd2l0aCB1c2VyIGFuZA0K PiA+Pj4+Pj4+IHRoaXMgaXMgYWxsIGRwZGsgaW50ZXJuYWwuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+ PiBXaGF0IGFib3V0IHRvIGhhdmUgYSBkZWRpY2F0ZWQgZmxhZyBmb3IgaXQ/IFdlIGNhbiBoYXZl IGENCj4gPj4+Pj4+PiBkZWRpY2F0ZWQgc2V0IG9mIGZsYWcgdmFsdWVzIGZvciByZXN0b3JlLg0K PiA+Pj4+Pj4NCj4gPj4+Pj4+IEFncmVlZC4gV2hhdCBkbyB5b3UgdGhpbmsgYWJvdXQgdGhlIGZv bGxvd2luZz8NCj4gPj4+Pj4NCj4gPj4+Pj4gSW5zdGVhZCBvZiBleHBvc2luZyB0aGF0LCBjYW4g d2UgcHJvYmFibHkgbWFrZSBpdCB0cmFuc3BhcmVudCB0bw0KPiA+Pj4+PiB0aGUgdXNlciBhbmQg cHJvYmFibHkgZXRoZGV2IGxheWVyIHRvbz8NCj4gPj4+Pj4NCj4gPj4+Pg0KPiA+Pj4+ICsxIHRv IG1ha2UgaXQgdHJhbnNwYXJlbnQgdG8gdXNlciwgYnV0IG5vdCBzdXJlIGlmIHdlIGNhbiBtYWtl IGl0DQo+ID4+Pj4gdHJhbnNwYXJlbnQgdG8gZXRoZGV2IGxheWVyLg0KPiA+Pj4NCj4gPj4+IEp1 c3QgdG8gYmUgY2xlYXI6DQo+ID4+PiBMZXQgc2F5LCB1c2luZyBleGFtcGxlIGZyb20gYWJvdmU6 DQo+ID4+Pg0KPiA+Pj4gIHJ0ZV9ldGhfZGV2X3N0YXJ0KCkNCj4gPj4+ICAgICAgLSBDYWxsIGRl di0+ZGV2X29wcy0+ZGV2X3N0YXJ0KCkNCj4gPj4+ICAgICAgLSBDYWxsIGRldi0+ZGV2X29wcy0+ bWFjX2FkZHJfc2V0KCkgLSBhcHBseSBkZWZhdWx0IE1BQyBhZGRyZXNzDQo+ID4+PiAgICAgIC0g Q2FsbCBkZXYtPmRldl9vcHMtPnByb21pc2N1b3VzX2VuYWJsZSgpDQo+ID4+PiAgICAgIC0gQ2Fs bCBkZXYtPmRldl9vcHMtPmFsbG11bHRpY2FzdF9lbmFibGUoKQ0KPiA+Pj4NCj4gPj4+IFdlIHBy b2JhYmx5IGNhbiBpbnRyb2R1Y2UgZXRoZGV2IGludGVybmFsIGZ1bmN0aW9uIChzdGlsbCB2aXNp YmxlIHRvDQo+ID4+PiBQTURzKSB0aGF0IHdvdWxkIGRvIGxhc3QgMyBzdGVwczoNCj4gPj4+IGV0 aGRldl9yZXBsYXlfdXNlcl9jb25mKC4uLikNCj4gPj4+ICAgICAgLSBDYWxsIGRldi0+ZGV2X29w cy0+bWFjX2FkZHJfc2V0KCkgLSBhcHBseSBkZWZhdWx0IE1BQyBhZGRyZXNzDQo+ID4+PiAgICAg IC0gQ2FsbCBkZXYtPmRldl9vcHMtPnByb21pc2N1b3VzX2VuYWJsZSgpDQo+ID4+PiAgICAgIC0g Q2FsbCBkZXYtPmRldl9vcHMtPmFsbG11bHRpY2FzdF9lbmFibGUoKQ0KPiA+Pj4NCj4gPj4+IEFu ZCBsZXQgUE1EIGl0c2VsZiB0byBkZWNpZGUgZG9lcyBpdCBuZWVkcyB0byBjYWxsIGl0IGF0IGRl dl9zdGFydCgpIG9yIG5vdC4NCj4gPj4+IFNvIGl0IHdpbGwgYmVjb21lOg0KPiA+Pj4gcnRlX2V0 aF9kZXZfc3RhcnQoKQ0KPiA+Pj4gICAgICAtIENhbGwgZGV2LT5kZXZfb3BzLT5kZXZfc3RhcnQo KQ0KPiA+Pj4gICAgICAgLUNhbGwgZXRoZGV2X3JlcGxheV91c2VyX2NvbmYoLikNCj4gPj4+ICAg ICAgICAgICAgICAgLSBDYWxsIGRldi0+ZGV2X29wcy0+bWFjX2FkZHJfc2V0KCkgLSBhcHBseSBk ZWZhdWx0IE1BQyBhZGRyZXNzDQo+ID4+PiAgICAgICAgICAgICAgIC0gQ2FsbCBkZXYtPmRldl9v cHMtPnByb21pc2N1b3VzX2VuYWJsZSgpDQo+ID4+PiAgICAgICAgICAgICAgIC1DYWxsIGRldi0+ ZGV2X29wcy0+YWxsbXVsdGljYXN0X2VuYWJsZSgpDQo+ID4+Pg0KPiA+Pj4gRm9yIFBNRHMgdGhh dCBkbyBuZWVkIHRvIHJlc3RvcmUgdXNlciBwcm92aWRlZCBjb25maWcgQW5kDQo+ID4+PiBydGVf ZXRoX2Rldl9zdGFydCgpDQo+ID4+PiAgICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPmRldl9zdGFy dCgpDQo+ID4+Pg0KPiA+Pj4gRm9yIHRob3NlIHdobyBkbyBub3QuDQo+ID4+Pg0KPiA+Pg0KPiA+ PiBPSywgZ290IGl0IHdoYXQgeW91IG1lYW4uDQo+ID4+IFB1c2hpbmcgcmVzdG9yZSBmdW5jdGlv bmFsaXR5IHRvIFBNRHMgd29ya3MsIGJ1dCB0aGlzIG1heSBiZSBkb2luZw0KPiA+PiByZWR1bmRh bnQgd29yayBvbiBlYWNoIFBNRC4NCj4gPj4NCj4gPj4gSW5zdGVhZCBEYXJpdXN6IHN1Z2dlc3Rz IFBNRCB0byBwcm92aWRlIGEgZmxhZyB0byBlaHRkZXYgdG8gd2hhdCB0bw0KPiA+PiByZXN0b3Jl IGFuZCBjb21tb24gY29kZSBpbiBldGhkZXYgZG9lcyB0aGUgd29yay4NCj4gPj4gTXkgYmVsb3cg ZGVkaWNhdGVkIGRhdGEgc3RydWN0IGNvbW1lbnQgaXMgdG8gaGF2ZSB0aGlzIGZsYWcgaW4gYSBu ZXcNCj4gPj4gc3RydWN0LCBvdmVyYWxsIGxpa2UgZm9sbG93aW5nOg0KPiA+Pg0KPiA+PiBydGVf ZXRoX2Rldl9zdGFydCgpDQo+ID4+ICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPmRldl9zdGFydCgp DQo+ID4+ICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPmdldF9yZXN0b3JlX2ZsYWdzKGV0aGRldiwg UlRFX0VUSF9TVEFSVCwgJmZsYWdzKQ0KPiA+PiAgICAtIGlmIChmbGFncyAmIE1BQykgZGV2LT5k ZXZfb3BzLT5tYWNfYWRkcl9zZXQoKQ0KPiA+PiAgICAtIGlmIChmbGFncyAmIFBST01JU0MpIGRl di0+ZGV2X29wcy0+cHJvbWlzY3VvdXNfZW5hYmxlKCkNCj4gPj4gICAgLSAuLi4NCj4gPg0KPiA+ IENvdWxkIHlvdSBwbGVhc2UgZXhwbGFpbiB3aGF0IGlzIHRoZSBiZW5lZml0IG9mIGV4cG9zaW5n IGZsYWdzIHRocm91Z2ggZGV2X29wcw0KPiBjYWxsYmFjayB2cyBhIGRlZGljYXRlZCBmbGFncyBm aWVsZCBpbiBydGVfZXRoX2Rldl9kYXRhPw0KPiA+IEluIGJvdGggc29sdXRpb25zOg0KPiA+IC0g Y29uZmlnIHJlc3RvcmUgaXMgdHJhbnNwYXJlbnQgdG8gdGhlIHVzZXIsDQo+ID4gLSBkcml2ZXJz IGNhbiBvbWl0IGNvbmZpZyByZXN0b3JlIChlaXRoZXIgYnkgbm90IGltcGxlbWVudGluZyB0aGUN Cj4gPiBjYWxsYmFjayBvciBub3QgcHJvdmlkaW5nIHRoZSBmbGFncyksDQo+ID4gLSBhbiBBQkkg Y2hhbmdlIGlzIGludHJvZHVjZWQgKG5vdCBhIGh1Z2UgY29uY2VybiwgYXQgbGVhc3QgZm9yIDI0 LjExKS4NCj4gPg0KPiA+IEkgdW5kZXJzdGFuZCB0aGF0IG15IGluaXRpYWwgcHJvcG9zYWwgd2l0 aCAiaW50ZXJuYWxfZmxhZ3MiIHdhcyB0b28NCj4gPiB2YWd1ZSwgYnV0IHJlbmFtaW5nIGFuZCBz cGxpdHRpbmcgdGhpcyBmaWVsZCBpbnRvOg0KPiA+DQo+ID4gLSBkZXZfc3RhcnRfcmVzdG9yZV9m bGFncw0KPiA+IC0gZGV2X3Jlc2V0X3Jlc3RvcmVfZmxhZ3MNCj4gPiAtIGFuZCBzbyBvbi4uLg0K PiA+DQo+ID4gc2VlbXMgc3VmZmljaWVudCwgYXQgbGVhc3QgaW4gbXkgb3Bpbmlvbi4NCj4gPg0K PiANCj4gSGkgRGFyaXVzeiwNCj4gDQo+IFB1dHRpbmcgZmxhZ3MgdG8gcnRlX2V0aF9kZXZfZGF0 YSB3b3JrcywgYW5kIGl0IGlzIGVhc2llciBzaW5jZSB0aGVyZSBpcyBkaXJlY3QgYWNjZXNzDQo+ IGZyb20gcnRlX2V0aF9kZXYgdG8gcnRlX2V0aF9kZXZfZGF0YSwgc28geW91IGRvbid0IG5lZWQg bmV3IGRldl9vcHMuIFNvIHRoaXMgaXMNCj4gYSB2YWxpZCBvcHRpb24uDQo+IA0KPiBCdXQgYmVu ZWZpdCBvZiBuZXcgZGV2X29wcyBpcyB0byBrZWVwICJzdHJ1Y3QgcnRlX2V0aF9kZXZfZGF0YSIg Y2xlYW4uDQo+IA0KPiAic3RydWN0IHJ0ZV9ldGhfZGV2X2RhdGEiIGlzIGludGVncmFsIGRhdGEg c3RydWN0dXJlIGZvciBldGhkZXYgYW5kIGl0IGlzIHVzZWQgaW4NCj4gbXVsdGlwbGUgbG9jYXRp b25zLCBtb3N0bHkgcmVsYXRlZCB0byB0aGUgZGF0YXBhdGggYW5kIGFsbCBkcml2ZXJzIG5lZWRz IHRvIGRlYWwNCj4gd2l0aCBmaWVsZHMgb2YgdGhpcyBzdHJ1Y3QuDQo+IExpa2UgW3J4XV9xdWV1 ZXMsIGRldl9wcml2YXRlLCBkZXZfY29uZiBhbGwgaW1wb3J0YW50IGFuZCB1c2VkIGEgbG90Lg0K PiANCj4gSSB3YW50IHRvIHByb3RlY3QgInN0cnVjdCBydGVfZXRoX2Rldl9kYXRhIiBmcm9tIG5v aXNlIGFzIG11Y2ggYXMgcG9zc2libGUsDQo+IHRob3VnaCB3aGF0IGlzIG5vaXNlIGlzIG5vdCBh bHdheXMgdGhhdCBjbGVhci4NCj4gDQo+IFRoaXMgcmVzdG9yZSBmbGFnIGlzIG5vdCBjcml0aWNh bCwgYW5kIEkgZXhwZWN0IG1vc3Qgb2YgdGhlIGRyaXZlcnMgd29uJ3QgY2FyZSBhbmQNCj4gcG9w dWxhdGUgdGhpcyByZXN0b3JlIGZsYWcgYXQgYWxsLiBUaGF0IGlzIHdoeSB0byBtZSBpdCBpcyBi ZXR0ZXIgaGF2ZSBkZWRpY2F0ZWQgc3RydWN0DQo+IGZvciBpdCBhbmQgb25seSBkcml2ZXJzIGNh cmUgYWJvdXQgcmVzdG9yZSBmZWF0dXJlIGtub3cgaXQuDQoNCkkgc2VlLiBUaGFuayB5b3UgdmVy eSBtdWNoIGZvciB0aGUgZXhwbGFuYXRpb24uDQoNCkluIHRoaXMgY2FzZSwgaXQgbG9va3MgbGlr ZSBhZGRpbmcgdGhpcyB0byBkZXZfb3BzIGlzIHRoZSB3YXkgdG8gZ28uDQoNClNvLCBzdW1tYXJp emluZyBpdCBhbGw6DQoNCjEuIGRldl9vcHMgc2hvdWxkIGJlIGV4dGVuZGVkIHdpdGggYSBjYWxs YmFjayB3aXRoIHRoZSBmb2xsb3dpbmcgc2lnbmF0dXJlIGFuZCBlbnVtcy9mbGFnczoNCg0KZW51 bSBydGVfZXRoX2Rldl9vcGVyYXRpb24gb3Agew0KCVJURV9FVEhfU1RBUlQsDQoJUlRFX0VUSF9T VE9QLA0KCVJURV9FVEhfUkVTRVQsDQp9Ow0KDQojZGVmaW5lIFJURV9FVEhfUkVTVE9SRV9NQUNf QUREUiBSVEVfQklUMzIoMCkNCiNkZWZpbmUgUlRFX0VUSF9SRVNUT1JFX1BST01JU0MgUlRFX0JJ VDMyKDEpDQojZGVmaW5lIFJURV9FVEhfUkVTVE9SRV9BTExNVUxUSSBSVEVfQklUMzIoMikNCg0K dm9pZCAoKmdldF9yZXN0b3JlX2ZsYWdzKSgNCglzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCgll bnVtIHJ0ZV9ldGhfZGV2X29wZXJhdGlvbiBvcCwNCgl1aW50MzJfdCAqZmxhZ3MpOw0KDQoyLiBy dGVfZXRoX2Rldl9zdGFydCgpIHdpbGwgd29yayBhcyBmb2xsb3dzOg0KDQotIENhbGwgZGV2LT5k ZXZfb3BzLT5kZXZfc3RhcnQoKQ0KLSBDYWxsIGRldi0+ZGV2X29wcy0+Z2V0X3Jlc3RvcmVfZmxh Z3MoZGV2LCBSVEVfRVRIX1NUQVJULCAmZmxhZ3MpLiBJZiBjYWxsYmFjayBpcyBub3QgcHJvdmlk ZWQsIGFzc3VtZSBmbGFncyA9PSAwLg0KLSBpZiAoZmxhZ3MgJiBSVEVfRVRIX1JFU1RPUkVfTUFD X0FERFIpIC0gcmVzdG9yZSBNQUMgYWRkcmVzc2VzDQotIGFuZCBzbyBvbi4uLg0KDQpBbHNvLCBJ IHdvdWxkIGxpa2UgdG8gYWRkIHRoZSBmb2xsb3dpbmc6DQoNCjMuIFBhdGNoc2V0IGludHJvZHVj aW5nIHRoaXMgY2hhbmdlIHNob3VsZCBhZGQgZ2V0X3Jlc3RvcmVfZmxhZ3MoKSBpbXBsZW1lbnRh dGlvbiB0byBhbGwgZHJpdmVycywgd2hpY2ggaW5mb3JtcyB0aGF0IGFsbCBjb25maWcgc2hvdWxk IGJlIHJlc3RvcmVkLg0KVGhpcyB3b3VsZCBwcmVzZXJ2ZSB0aGUgY3VycmVudCBiZWhhdmlvci4N CkxhdGVyLCB0aGlzIGNvdWxkIGJlIHJlZmluZWQgZHJpdmVyIGJ5IGRyaXZlci4NCg0KV2hhdCBk byB5b3UgdGhpbms/DQoNCkFsc28sIHRoZXJlJ3MgYW4gb3BlbiBxdWVzdGlvbiBhYm91dCAnc3Rv cCcgYW5kICdyZXNldCcgb3BlcmF0aW9ucy4NCkF0IHRoZSBtb21lbnQsIGV0aGRldiBsYXllciBk b2VzIG5vdCBkbyBhbnkgY29uZmlnIG1hbmlwdWxhdGlvbiBkdXJpbmcgdGhlc2Ugb3BlcmF0aW9u cy4NCk1heWJlIHdlIHNob3VsZCBsaW1pdCBnZXRfcmVzdG9yZV9mbGFncygpIHRvICdzdGFydCcg b25seT8NCg0KPiANCj4gDQo+IA0KPiA+Pg0KPiA+PiBTbyBQTURzIG9ubHkgd2lsbCBwcm92aWRl IHdoYXQgdG8gcmVzdG9yZSB3aXRoIGFuIGludGVybmFsIEFQSSBhbmQNCj4gPj4gY29tbW9uIGV0 aGRldiBsYXllciB3aWxsIHJlc3RvcmUgaXQuDQo+ID4+IElmIG5vIHJlc3RvcmUgcmVxdWlyZWQg UE1EIG1heSBub3QgaW1wbGVtZW50IC5nZXRfcmVzdG9yZV9mbGFncygpIGF0IGFsbC4NCj4gPj4N Cj4gPj4gQWRkaXRpb25hbGx5LCBSVEVfRVRIX1NUQVJULCBSVEVfRVRIX1JFU0VUIGV0YyBmbGFn IGNhbiBiZSBwcm92aWRlZA0KPiA+PiB0byBpbnRlcm5hbCBBUEkgdG8gZ2V0IHdoYXQgdG8gcmVz dG9yZSBpbiBkaWZmZXJlbnQgc3RhdGVzLi4uDQo+ID4+DQo+ID4+Pj4gU3VnZ2VzdGVkICdpbnRl cm5hbF9mbGFnJyBpbiAic3RydWN0IHJ0ZV9ldGhfZGV2X2RhdGEiIGNhbiBiZQ0KPiA+Pj4+IGNv bmZ1c2luZyBhbmQgb3BlbiB0byBpbnRlcnByZXRhdGlvbiB3aGF0IHRvIHVzZSBpdCBmb3IgYW5k IGJ5IHRpbWUNCj4gPj4+PiBiZWNvbWUgc291cmNlIG9mIGRlZmVjdC4NCj4gPj4+DQo+ID4+PiBZ ZXMsIHNhbWUgdGhvdWdodHMuDQo+ID4+Pg0KPiA+Pj4+IEluc3RlYWQgd2hhdCBkbyB5b3UgdGhp bmsgdG8gaGF2ZSBhIHNlcGFyYXRlLCBkZWRpY2F0ZWQgZGF0YSBzdHJ1Y3QgZm9yIGl0Pw0KPiA+ Pj4NCj4gPj4+IEhtbS4uLiBub3Qgc3VyZSBJIHVuZGVyc3Rvb2QgeW91IGhlcmUuLi4NCj4gPj4+ DQo+ID4+Pj4NCj4gPj4+Pj4gTWlnaHQgYmUgd2UgY2FuIG1vdmUgdGhpcyByZXN0b3JhdGlvbiBj b2RlIGludG8gdGhlIG5ldyBldGhkZXYNCj4gPj4+Pj4gaGVscGVyIGZ1bmN0aW9uLChldGhkZXZk X3VzZXJfY29uZmlnX3Jlc3RvcmUoKSAgb3Igc28pIHRoYXQgUE1EDQo+ID4+Pj4+IGNhbiBpbnZv a2UNCj4gPj4gZHVyaW5nIGl0cyBkZXZfc3RhcnQoKSBpZiBuZWVkZWQ/DQo+ID4+Pj4+DQo+ID4+ Pj4+Pg0KPiA+Pj4+Pj4gI2RlZmluZSBSVEVfRVRIX0RFVl9JTlRFUk5BTF9QUk9NSVNDX0ZPUkNF X1JFU1RPUkUNCj4gUlRFX0JJVDMyKDApDQo+ID4+Pj4+PiAjZGVmaW5lIFJURV9FVEhfREVWX0lO VEVSTkFMX0FMTE1VTFRJX0ZPUkNFX1JFU1RPUkUNCj4gUlRFX0JJVDMyKDEpDQo+ID4+Pj4+PiAj ZGVmaW5lIFJURV9FVEhfREVWX0lOVEVSTkFMX01BQ19BRERSX0ZPUkNFX1JFU1RPUkUNCj4gPj4g UlRFX0JJVDMyKDIpDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gc3RydWN0IHJ0ZV9ldGhfZGV2X2RhdGEg ew0KPiA+Pj4+Pj4gICAgLyogc25pcCAqLw0KPiA+Pj4+Pj4NCj4gPj4+Pj4+ICAgIHVpbnQzMl90 IGRldl9mbGFnczsNCj4gPj4+Pj4+DQo+ID4+Pj4+PiAgICAvKioNCj4gPj4+Pj4+ICAgICAqIElu dGVybmFsIGRldmljZSBjYXBhYmlsaXRpZXMsIHVzZWQgb25seSBieSBldGhkZXYgbGlicmFyeS4N Cj4gPj4+Pj4+ICAgICAqIENlcnRhaW4gZnVuY3Rpb25hbGl0aWVzIHByb3ZpZGVkIGJ5IHRoZSBs aWJyYXJ5IG1pZ2h0DQo+IGVuYWJsZWQvZGlzYWJsZWQsDQo+ID4+Pj4+PiAgICAgKiBiYXNlZCBv biBkcml2ZXIgZXhwb3NpbmcgY2VydGFpbiBjYXBhYmlsaXRpZXMuDQo+ID4+Pj4+PiAgICAgKi8N Cj4gPj4+Pj4+ICAgIHVpbnQzMl90IGludGVybmFsX2ZsYWdzOw0KPiA+Pj4+Pj4NCj4gPj4+Pj4+ ICAgIC8qIHNuaXAgKi8NCj4gPj4+Pj4+IH07DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4+IEFsc28gcGVy aGFwcyB3ZSBoYXZlIGdvIGludG8gZGV0YWlscyB3aGF0IG5lZWRzIHRvIGJlIHJlc3RvcmVkDQo+ ID4+Pj4+Pj4gYWZ0ZXIgJ3N0b3AnIGFuZCB3aGF0IG5lZWRzIHRvIGJlIHJlc3RvcmVkIGFmdGVy ICdyZXNldCcgYW5kIHVzZQ0KPiA+Pj4+Pj4+IHNpbWlsYXINCj4gPj4gbWVjaGFuaXNtIGV0Yy4u Lg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEkgdGhpbmsgd2Ugc2hvdWxkIGxvb2sgaW50byB0aGF0Lg0K PiA+Pj4+Pj4gQW55ICdjb2RpZmljYXRpb24nIG9mIHNlbWFudGljcyBiZXR3ZWVuIGRyaXZlcnMg YW5kIGV0aGRldg0KPiA+Pj4+Pj4gbGlicmFyeSBpcyBnb29kIGluDQo+ID4+IG15IG9waW5pb24u DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gQXQgbGVhc3QgcmlnaHQgbm93LCBldGhkZXYgZG9lcyBub3Qg Y2hhbmdlIGFueSBjb25maWd1cmF0aW9uIGluDQo+ID4+Pj4+PiAnc3RvcCcgYW5kDQo+ID4+ICdy ZXNldCcgZnJvbSB3aGF0IEkgc2VlLg0KPiA+Pj4+Pj4gQnV0IHRoYXQncyBvbiBsaWJyYXJ5IHNp ZGUgb25seS4NCj4gPj4+Pj4+DQo+ID4+Pj4+Pj4+IFRoaXMgd2F5LCBpZiB3ZSB3b3VsZCBjb25j bHVkZSB0aGF0IGl0IG1ha2VzIHNlbnNlIGZvcg0KPiA+Pj4+Pj4+PiAuZGV2X3N0YXJ0KCkgdG8g aGFuZGxlIGFsbCBzdGFydGluZyBjb25maWd1cmF0aW9uIGFzcGVjdHMsIHdlDQo+ID4+Pj4+Pj4+ IGNvdWxkIHRyYWNrIHdoaWNoIGRyaXZlcnMgc3RpbGwgcmVseQ0KPiA+Pj4+Pj4+IG9uIGNvbmZp Z3VyYXRpb24gcmVzdG9yZS4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gRGFyaXVzeiBTb3Nub3dz a2kgKDQpOg0KPiA+Pj4+Pj4+PiAgIGV0aGRldjogcmV3b3JrIGNvbmZpZyByZXN0b3JlDQo+ID4+ Pj4+Pj4+ICAgZXRoZGV2OiBvbWl0IHByb21pc2N1b3VzIGNvbmZpZyByZXN0b3JlIGlmIG5vdCBy ZXF1aXJlZA0KPiA+Pj4+Pj4+PiAgIGV0aGRldjogb21pdCBhbGwgbXVsdGljYXN0IGNvbmZpZyBy ZXN0b3JlIGlmIG5vdCByZXF1aXJlZA0KPiA+Pj4+Pj4+PiAgIGV0aGRldjogb21pdCBNQUMgYWRk cmVzcyByZXN0b3JlIGlmIG5vdCByZXF1aXJlZA0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiAgbGli L2V0aGRldi9ydGVfZXRoZGV2LmMgfCAzOQ0KPiA+Pj4+Pj4+PiArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0NCj4gPj4+Pj4+Pj4gIGxpYi9ldGhkZXYvcnRlX2V0aGRldi5o IHwgMTggKysrKysrKysrKysrKysrKysrDQo+ID4+Pj4+Pj4+ICAyIGZpbGVzIGNoYW5nZWQsIDUy IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IC0t DQo+ID4+Pj4+Pj4+IDIuMzkuNQ0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4NCj4gPg0KDQo=