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 0D58145AFC; Thu, 10 Oct 2024 07:55:21 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 87B43400EF; Thu, 10 Oct 2024 07:55:20 +0200 (CEST) Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam02on2093.outbound.protection.outlook.com [40.107.212.93]) by mails.dpdk.org (Postfix) with ESMTP id 041EA400D6 for ; Thu, 10 Oct 2024 07:55:19 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=R12KNF2czeUlkdRUOIDLwpAfX6psXUgfkkvUsRCWQapX1LlyhRJEB3FaB/OZmXy/92a5WTuke6FBxQkF8pz6lEGsdJh2CSKcwkWCXyD+nWFL6OsPz5elExOYEhHajE18dNSryTT5anJA9S28M941D93bRRozutCmDUzNhQ6RJVaMDzDah6Y5FOKH5YHjwB6uZqtpcocUdFy/Mm5ZUawGkCfHJxh+FBne36R+z+nBwutdaeu6rO2MuDhXHAvwp+XWCRV0oBM2Dv13QdJ7UVj1qBRXi+oBbW8h1P5/8CAD6S5Iw5sYnsrA8BkLGppAPH2IdPQjyGh2x/Gt3mgOqi387Q== 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=JeY77evRyF307OAyf11XM96QXNTSuHR4SHirtN/ra/o=; b=FXQ7LXN472NoFZFytNCEJ+lpfIWu1LXAepFoph3dx5P0w8D+wMGWloeN3rsXV694Utu/2OCdT2tmgRicaI1mHfInUD3HOfM15OoEeYEVIyi4Nes7qm4UXHfmbP1u+PEcE5Fi+XVVd8M33s3jAwu3pq9ncwIE6IHewiEaCKSY0UiMOg5BwzDNvFxLQb7sTjq1KkpvKSDrqPm8YWuL0Sk6wAWtgtOhEKZJHKfoghJJaHc8SXL/Qv/RCy/jeIk7SasfomW+rQ1VNRGeR+j3aeNYZY60LLkzM1e7Sf6/5kraB63whrgkz3+3Ceb/qVp6xnN43WmlwmRwXgW9N54BkYjrrQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JeY77evRyF307OAyf11XM96QXNTSuHR4SHirtN/ra/o=; b=FmZSxpOtA9nTAZ9nBQD4ww3OtZfa7YcNQ0D85qCnI+oeX9AvBAEoR1NesewUPIzK7b0UnlkA4KFMe1xgz+BsAF1tyWtYTJNM2sHEIbkP1E5gSJ2sboYS2Ms4ggqfZVcIOxdK+kDINTw5JN7FpSW4IXOIJ7xCS0qQNIMUuEjr2io= Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by PH7PR13MB6058.namprd13.prod.outlook.com (2603:10b6:510:2b6::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8026.23; Thu, 10 Oct 2024 05:55:17 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833%5]) with mapi id 15.20.8026.020; Thu, 10 Oct 2024 05:55:17 +0000 From: Chaoyong He To: Ferruh Yigit , "dev@dpdk.org" CC: oss-drivers , James Hershaw Subject: RE: [PATCH v4 1/2] app/testpmd: add support for setting device EEPROM Thread-Topic: [PATCH v4 1/2] app/testpmd: add support for setting device EEPROM Thread-Index: AQHbCXPwH5Vvdw+Mu024kI/aWalin7Jvb7EAgBAuuXA= Date: Thu, 10 Oct 2024 05:55:17 +0000 Message-ID: References: <20240914014913.2886626-1-chaoyong.he@corigine.com> <20240918023847.2964100-1-chaoyong.he@corigine.com> <20240918023847.2964100-2-chaoyong.he@corigine.com> In-Reply-To: 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=corigine.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ0PR13MB5545:EE_|PH7PR13MB6058:EE_ x-ms-office365-filtering-correlation-id: db068c1c-b513-4588-3738-08dce8f01ddf 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?NFU0bFN6T2tKMFF5d1VYTTZ5dHFJS3NkSnYzZlBVNExVbkwzMEtvdGUrdmds?= =?utf-8?B?czVYaENKaklIcDQ3M1ZJNWxrQ3VxNzI3T3pkT0J4NlJlZ2VCaWtlbHZDd3Fq?= =?utf-8?B?RUJQUFpzb2xtdzNTd1RKTFljckxPU1dLaFY3MUh2NXdDazVOYXJMd21vSG13?= =?utf-8?B?bEJWNmpPQzJPS2lEMFNQNnEwZWtBN1V6dGRVSTh2cTVySFcrTUt2NC9ZZ1dn?= =?utf-8?B?MURqQjREK3IvZ3Nja2x6ZU9KbGRFdzJ6ZmlFTXVNZWEyQkZlNVplUE9GUkRS?= =?utf-8?B?SnMzL0hwVEUzQUFzM1hnOFFJckVWSTFWWktQU3RQTXhFZWxEUDV5SnVYRHdF?= =?utf-8?B?OHBOY3VUTVErWCtSc0Fxa2FQWXR6YldTWUZTNlFmSW1uWTZFTXBVajIvampK?= =?utf-8?B?UDRhaTJUVEl5cmZLejlBeUh3Qk1IMngxMVp0dktTbitkTHpyc1gvbGFZNzNN?= =?utf-8?B?dTNzMTBwQ1JhR1A1RTNDNFZSSytJb2tOU2JpWTV1bnJrZUdpZVhSS3ZNUXgz?= =?utf-8?B?QmpmbEloeVlZTDF6R1RoVnVlcmp6V05oa3Y5bzI4MFBnc3hSam0xbkc5MlhL?= =?utf-8?B?TFRyUk1FcG5KSFhRSGZ0S1lQeFI3VExNcTJ3QmQ4OXk0Y3dlYmFnZnZabXhy?= =?utf-8?B?ckRiRU5lMDYwUGt0N1BEeC9ua0JHa1JFSHdvUXRvSmEwczlTOWpDclJHREZT?= =?utf-8?B?bEh5bXNrbThjbldUZWo3MmhuQXRaejhLeHJReEV1NjdZZGtjZUNTa29lNVRQ?= =?utf-8?B?ODU3ZUFTTElQUkRwQitBUzZBKzdIQk9DbFB4b2ZoTzdsdjF4SktXUUdXQ05s?= =?utf-8?B?blJZQ1gyaGgzcm5xV0hGVG93N3NEOHF3aDIyVmJaVXFiUHBwSnlMQ3VvMmxj?= =?utf-8?B?OWdlc2kwSC9sQXI1RUxWcnlHSVMxWVFJQzF4d0krVldncHdYVE1rYlJiMUo0?= =?utf-8?B?RmtrSTVrdHkxdStOU0RwdU1HaHVNV2xuVlVaVkIreWtsUjc3SzhBdkdZQ1h6?= =?utf-8?B?eU9EZ25WSlRDdzNsZGhNMUc2eVd6SVIvOWo2S0oxbWRCTkdBOEpubzRNS0FY?= =?utf-8?B?dXE2SC9qVlNNSWN5MXZwdndvUm1GVFQyODZMR1VhdUl0Z1V1N0xBNTNKLzMv?= =?utf-8?B?RVRNSVROVnFkdGh2U1BwNk80dC9DNzRUUXkyaXJQa3ozMXZobFZFM3l3UEN2?= =?utf-8?B?enZ3RDVGOWFIVWZVaEVPVFVuUnVRMmIzeVBuVWExRmU2NFUvUWUvaytRT0Vw?= =?utf-8?B?ZVR3ZUhlNGxHU2RDMVplbUREZEJPWEZPNWxMWW9yR3VwSjVSNEF6ZmpuSnZ2?= =?utf-8?B?ajFWby94V3oyelVIS3VnVUJrZGZhd1NNQWRGYkpjTXdmWHhPK2N0VWYxMnI1?= =?utf-8?B?VW9hUEtjTGFHME9rKzV1UHZ1MXg5eVVpdUF3c2Z1MU9aSVM1ZFlOVE5UdnU0?= =?utf-8?B?RzhGT3BuZVNYV1RnUnhaSVZEczdLT1RTWGVKU3VyeU5kY25NVzdvYkppSHNr?= =?utf-8?B?MU1vQ3BJRGEwZnl4M1lmdG10c3UvdVFFU1ZWWnlybHUwOEVPYVdxbXVUZXgw?= =?utf-8?B?K1NsbzdZb2NnazFlckVXbnI2UzBpcU1uSGNMSFMxVTVGRzFCUHR4T0VnWDJQ?= =?utf-8?B?ajQrWDZIM2hvaWtQaXVSWU1mbVVqa3FkbkhHSDZ2c0NJc1hicEdsS2Z3cjlO?= =?utf-8?B?OXJGbTlaQU8ra1dXVXJyVE1RN3orNHJ2cm9ZWks0S1Y3ekRxZ0c3eGVwN1Vk?= =?utf-8?B?S0crdFhtSkUxNUhBSFdpVUdVUTB1NDE4UXFtUzE5em1uSkhMdGFWWCtRNTZN?= =?utf-8?B?ZWs2Q1ZKWmhoNnF2Ti9ZZz09?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(366016)(1800799024)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TXlYOUVnUTBEdHNhU2FvV0ZrL2FwTUswVTVVVHhVRDBmN0pjRVBtajVPRERq?= =?utf-8?B?Q2dnTTMzUk1heGJwYTZldlkyalY2SVdwc0RBTDZBYklhMEtrTkVac0pTbjV2?= =?utf-8?B?ZHF6ZXJzWHY2M2RRaktIdmFuaW1CZUZVczBwOTdGRGVacXB0YnpLRmU0RnpS?= =?utf-8?B?cFNJTXk2eGZXdForKzZ4YXQwZ0E2UnJzcUp2cjBpaW5yQUtHaGNVQkVvRldj?= =?utf-8?B?cXBvai8rd0k3V3FQUkg4b0UwQUZBQ2t2NlhGSkxvTWJpU2xLRXZ1UHE3ZlJp?= =?utf-8?B?ZGN1d3lZVndKWVFKeDcrNE5pMkZYVllEbEtRc3U2Y21lRW9SMDlIZGtubjdu?= =?utf-8?B?aHR0S2ZwQlkycjV6WUU4RkZNRkpoSTNRbDJCZ0UweWl1M25ZMWxYSHN4NDRv?= =?utf-8?B?U0RBeXRTOFZuM0hhSFNma2FMZE1Eci8wRXBqMkRoU3FyekV4akoxd0VhbUpj?= =?utf-8?B?UERtaXZ6SXRTYWFkOE1QNTdCN29CNUlpejVWTTZwT1dWYlVHV012OWN1VldM?= =?utf-8?B?ektRcktXOG1KTTFHejRKQ2lUVjlUR0pkWmk3Qkk0QjJjOWpHSVdWNTJKek83?= =?utf-8?B?ZnR1TFE0RFFSYlY0VkQwVlZpdWdsL3FabngxM0dzeUlMVmZOOGFUR0owdEJI?= =?utf-8?B?aSs5LzZmd0pMUVZuSE5hRHY3K2R2QVdjbm1kVEpnWkE5Vjg5M2paVmhKRm8x?= =?utf-8?B?aWJZbWpBU0M5TGxwWmpyMEVudGc0SzhZYTUxWWtDc1B6am8vdlI3OTlSOWpK?= =?utf-8?B?SjhSSjBIWTRoMW5nSFJzYXNnVnVrZlFLakVWZHF6MkpMUzRVQ2p0V1NtQ01t?= =?utf-8?B?UW16MTFZbHBad2pYNFh5NnZ3WmxZWlI1T08zM1dGc3hXcUJpUVVuMmdidnE1?= =?utf-8?B?WDF5RDQ0VURvZ3FWYk5Oc1NjREFHaWQyREhXclA3aURsTVNVVzc0TWUvc3o3?= =?utf-8?B?QlFDV09ubXlMSHk1bnA3ZnpWUnJrSFcxN3ZSOTlyWHBFckxEMTBlMldTZC9L?= =?utf-8?B?TERBMlFXQnBtNFVwazUyZzRwTCs2a1BOeDdTczJDUEI1YVJrZGptU2pBZ2dq?= =?utf-8?B?NGVXTTU4alhjV2ZCbFl2SThDaDBnTTRSZjRxZVAxZlBhWkdiWE1ZRVpIc3JR?= =?utf-8?B?bnBCTlRvOGVMMGwzL1hUTEQvbmttWmNZR0RTVmRwR1d0Zk5LREtvZEd2aytJ?= =?utf-8?B?UEhkUXFub29udkowUzArTTBIaEx6ajBsdVFWTVhYU2NVcU5VUFVRTDBXNHZk?= =?utf-8?B?cHd6Vkd1WEo2c3JLZ01NUW9mSTYxRmZnU0dRb0tuVnh1SDBKT3dNWkpxNGUx?= =?utf-8?B?Wmd6ZmFvVzBZWm1tQjhZQzJndW5XRE1IaFNKMm9ZUFRuMzZNc3NkWEpuRWFM?= =?utf-8?B?SDE1VjBhMURjTGNxOC9jSktScm5uWm1MdnBFeEpmUzBQNU9GVzdIR21JSFVk?= =?utf-8?B?ZW5NNE1TYllld2ducHF5bitKZnNhZnQvL2JOcTMwSDdhMExnM0RwV0ZvRkt2?= =?utf-8?B?QU9pS3BETEc5d09KclRQRWYybEM5WG43cGZPZ2J1dEZTb3MyejZmODhIdFp6?= =?utf-8?B?VEhSZHhxWngwL0VLNVROKzBRK29ZY2xWRCtzUnUzTXBGaWJQYS9xKy9OeDRG?= =?utf-8?B?anVsUGFsSWVQbE42ZTVScktjVFUrODBmTWdRdzhHZ1h6czdCdC91UzNLR0ll?= =?utf-8?B?dHFGdjJmNzlqVmMwcEhNME5OdHlwa040dUZuSlI5dVB2UmtzZmZjcnBIM2Fy?= =?utf-8?B?SWNYWHg5SlljZG9MMElEWmozeVM1aldvY3ZVejlIaENhY2VCcHdCN0FQU0Nt?= =?utf-8?B?dEZPMHMyOWh6VzFPZTgwNnp4K0hsbkZaVXhLZUl5UzdOSWRvWVJSd2NNaXVk?= =?utf-8?B?QW5kK090VDhmRCtjS2J0TUdHbktWMHQxL0lqS0dBUTRmSXdZUEprSHgzOCs2?= =?utf-8?B?bHkwU01Qa09pdjZkekg3SVV5RGxTSlZZTWFrcmFHWUd1N2FiL1JLMEtkeWxu?= =?utf-8?B?V1ZMZ1NSd1BaWkZnOFdoSUdtYkd3czI2d1p0bm1VY0hjM2J3ZUNHdFkyZzEz?= =?utf-8?B?RnVJUURiL1ArYi9mMEczM2YvaTdnRXk2SGNyUUEydHJ1NTNBcFhVWHRCcDI2?= =?utf-8?Q?5tyJx6gypNUZq1njOItzlrDpf?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: db068c1c-b513-4588-3738-08dce8f01ddf X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Oct 2024 05:55:17.0609 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: RbpuLAaa6Ho8X/qI3UZZkuerMz5TAvCNfWe2xHKUSv8fyrjX9e9cUqmJahF66PvhBsD3qGjE2+DZaOG+Qr2IXUS+oeWcDb3vqd6vA/7lzKM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR13MB6058 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 PiBPbiA5LzE4LzIwMjQgMzozOCBBTSwgQ2hhb3lvbmcgSGUgd3JvdGU6DQo+ID4gRnJvbTogSmFt ZXMgSGVyc2hhdyA8amFtZXMuaGVyc2hhd0Bjb3JpZ2luZS5jb20+DQo+ID4NCj4gPiBUaGVyZSBp cyBjdXJyZW50bHkgbm8gbWVhbnMgdG8gdGVzdCB0aGUgLnNldF9lZXByb20gZnVuY3Rpb24gY2Fs bGJhY2sNCj4gPiBvZiBhIGdpdmVuIFBNRCBpbiBkcml2ZXJzL25ldC8uIFRoaXMgcGF0Y2ggYWRk cyBmdW5jdGlvbmFsaXR5IHRvIGFsbG93DQo+ID4gYSB1c2VyIHRvIHNldCBkZXZpY2UgZWVwcm9t IGZyb20gdGhlIHRlc3RwbWQgY21kbGluZS4NCj4gPg0KPiA+IFVzYWdlOg0KPiA+ICAgdGVzdHBt ZD4gc2V0IHBvcnQgPHBvcnQtaWQ+IGVlcHJvbSA8Y29uZmlybT4gbWFnaWMgPG1hZ2ljPiBcDQo+ ID4gICAJCXZhbHVlIDx2YWx1ZT4gb2Zmc2V0IDxvZmZzZXQ+DQo+ID4NCj4gPiAtIDxjb25maXJt PiBpcyBhIGZpeGVkIHN0cmluZyB0aGF0IGlzIHJlcXVpcmVkIGZyb20gdGhlIHVzZXIgdG8NCj4g PiAgIGFja25vd2xlZGdlIHRoZSByaXNrIGludm9sdmVkIGluIHVzaW5nIHRoaXMgY29tbWFuZCBh bmQgYWNjZXB0aW5nIHRoZQ0KPiA+ICAgcmVwb3NpYmlsaXR5IGZvciB0aGF0Lg0KPiA+DQo+IA0K PiArMSBoYXZlIGEgd2FybmluZyBmb3IgdXNlciwgYnV0ICdjb25maXJtJyBtYXkgbm90IGJlIGNs ZWFyIGVub3VnaCwgd2hhdA0KPiBhYm91dCBzb21ldGhpbmcgYXJvdW5kICJhY2NlcHRfcmlzayI/ DQo+IA0KPiBzL3JlcG9zaWJpbGl0eS9yZXNwb25zaWJpbGl0eS8NCj4gDQoNCk1ha2Ugc2Vuc2Us IHdpbGwgc2VuZCBhIG5ldyB2ZXJzaW9uIHBhdGNoLg0KDQo+IA0KPiA+IC0gPG1hZ2ljPiBpcyBh IGRlY2ltYWwNCj4gPiAtIDx2YWx1ZT4gaXMgYSBoZXgtYXMtc3RyaW5nIHdpdGggbm8gbGVhZGlu ZyAiMHgiDQo+ID4gLSA8b2Zmc2V0PiBpcyBhIGRlY2ltYWwgKHRoaXMgZmllbGQgaXMgb3B0aW9u YWwgYW5kIGRlZmF1bHRzIHRvIDAgaWYNCj4gPiAgIG5vdCBzcGVjaWZpZWQuKQ0KPiA+DQo+ID4g U2lnbmVkLW9mZi1ieTogSmFtZXMgSGVyc2hhdyA8amFtZXMuaGVyc2hhd0Bjb3JpZ2luZS5jb20+ DQo+ID4gUmV2aWV3ZWQtYnk6IENoYW95b25nIEhlIDxjaGFveW9uZy5oZUBjb3JpZ2luZS5jb20+ DQo+ID4gLS0tDQo+ID4gIGFwcC90ZXN0LXBtZC9jbWRsaW5lLmMgICAgICAgICAgICAgICAgICAg ICAgfCAxMjMgKysrKysrKysrKysrKysrKysrKysNCj4gPiAgYXBwL3Rlc3QtcG1kL2NvbmZpZy5j ICAgICAgICAgICAgICAgICAgICAgICB8ICAzOSArKysrKysrDQo+ID4gIGFwcC90ZXN0LXBtZC90 ZXN0cG1kLmggICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKw0KPiA+ICBkb2MvZ3VpZGVzL3Rl c3RwbWRfYXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0IHwgIDE4ICsrKw0KPiA+ICA0IGZpbGVzIGNo YW5nZWQsIDE4MiBpbnNlcnRpb25zKCspDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvYXBwL3Rlc3Qt cG1kL2NtZGxpbmUuYyBiL2FwcC90ZXN0LXBtZC9jbWRsaW5lLmMgaW5kZXgNCj4gPiAzNTgzMTlj MjBhLi5hMjI3ZDNjZGM1IDEwMDY0NA0KPiA+IC0tLSBhL2FwcC90ZXN0LXBtZC9jbWRsaW5lLmMN Cj4gPiArKysgYi9hcHAvdGVzdC1wbWQvY21kbGluZS5jDQo+ID4gQEAgLTUxNCw2ICs1MTQsMTUg QEAgc3RhdGljIHZvaWQgY21kX2hlbHBfbG9uZ19wYXJzZWQodm9pZA0KPiAqcGFyc2VkX3Jlc3Vs dCwNCj4gPiAgCQkJInNldCBldGgtcGVlciAocG9ydF9pZCkgKHBlZXJfYWRkcilcbiINCj4gPiAg CQkJIiAgICBzZXQgdGhlIHBlZXIgYWRkcmVzcyBmb3IgY2VydGFpbiBwb3J0LlxuXG4iDQo+ID4N Cj4gPiArCQkJInNldCBwb3J0IChwb3J0X2lkKSBlZXByb20gKGNvbmZpcm0pIG1hZ2ljDQo+ICht YWdpY19udW0pIg0KPiA+ICsJCQkiIHZhbHVlICh2YWx1ZSkgb2Zmc2V0IChvZmZzZXQpXG4iDQo+ ID4gKwkJCSIgICAgU2V0IHRoZSBkZXZpY2UgZWVwcm9tIGZvciBjZXJ0YWluIHBvcnQuXG5Ob3Rl OlxuIg0KPiA+ICsJCQkiICAgIFRoaXMgaXMgYSBoaWdoLXJpc2sgY29tbWFuZCBhbmQgaXRzIG1p c3VzZSBtYXkiDQo+ID4gKwkJCSIgcmVzdWx0IGluIHVuZXhwZWN0ZWQgYmVoYXZpb3VyIGZyb20g dGhlIE5JQy5cbiINCj4gPiArCQkJIiAgICBCeSBpbnNlcnRpbmcgXCJjb25maXJtXCIgaW50byB0 aGUgY29tbWFuZCwgdGhlIg0KPiA+ICsJCQkiIHVzZXIgaXMgYWNrbm93bGVkZ2luZyBhbmQgdGFr aW5nIHJlc3BvbnNpYmlsaXR5IGZvciINCj4gPiArCQkJIiB0aGlzIHJpc2suXG5cbiINCj4gPiAr DQo+ID4NCj4gDQo+IFRoZXJlIGlzIGFub3RoZXIgZWVwcm9tIGNvbW1hbmQgYWJvdmUgWzFdLCBs ZXRzIHB1dCB0aGlzIG9uZSBiZWxvdyBpdC4NCj4gQWxzbyBjYW4geW91IHBsZWFzZSBtb3ZlIHRo ZSBmdW5jdGlvbiBpbXBsZW1lbnRhdGlvbiBpbiBzaW1pbGFyIG9yZGVyLg0KPiANCg0KT2theS4N Cg0KPiANCj4gWzFdDQo+ICJzaG93IHBvcnQgcG9ydF9pZCAobW9kdWxlX2VlcHJvbXxlZXByb20p XG4iDQo+IA0KPiANCj4gPiAgCQkJInNldCBwb3J0IChwb3J0X2lkKSB1dGEgKG1hY19hZGRyZXNz fGFsbCkgKG9ufG9mZilcbiINCj4gPiAgCQkJIiAgICBBZGQvUmVtb3ZlIGEgb3IgYWxsIHVuaWNh c3QgaGFzaCBmaWx0ZXIocykiDQo+ID4gIAkJCSJmcm9tIHBvcnQgWC5cblxuIg0KPiA+IEBAIC03 NDg4LDYgKzc0OTcsMTE5IEBAIHN0YXRpYyBjbWRsaW5lX3BhcnNlX2luc3RfdA0KPiBjbWRfc2V0 X2Z3ZF9ldGhfcGVlciA9IHsNCj4gPiAgCX0sDQo+ID4gIH07DQo+ID4NCj4gPiArLyogKioqIFNF VCBQT1JUIEVFUFJPTSAqKiogKi8NCj4gPiArc3RydWN0IGNtZF9zZXRlZXByb21fcmVzdWx0IHsN Cj4gPiArCWNtZGxpbmVfZml4ZWRfc3RyaW5nX3Qgc2V0Ow0KPiA+ICsJY21kbGluZV9maXhlZF9z dHJpbmdfdCBwb3J0Ow0KPiA+ICsJdWludDE2X3QgcG9ydG51bTsNCj4gPiArCWNtZGxpbmVfZml4 ZWRfc3RyaW5nX3QgZWVwcm9tOw0KPiA+ICsJY21kbGluZV9maXhlZF9zdHJpbmdfdCBjb25maXJt X3N0cjsNCj4gPiArCWNtZGxpbmVfZml4ZWRfc3RyaW5nX3QgbWFnaWNfc3RyOw0KPiA+ICsJdWlu dDMyX3QgbWFnaWM7DQo+ID4gKwljbWRsaW5lX2ZpeGVkX3N0cmluZ190IHZhbHVlOw0KPiA+ICsJ Y21kbGluZV9tdWx0aV9zdHJpbmdfdCB0b2tlbl9zdHI7DQo+ID4gK307DQo+ID4gKw0KPiA+ICtz dGF0aWMgdm9pZCBjbWRfc2V0ZWVwcm9tX3BhcnNlZCh2b2lkICpwYXJzZWRfcmVzdWx0LA0KPiA+ ICsJCV9fcnRlX3VudXNlZCBzdHJ1Y3QgY21kbGluZSAqY2wsDQo+ID4gKwkJX19ydGVfdW51c2Vk IHZvaWQgKmRhdGEpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBjbWRfc2V0ZWVwcm9tX3Jlc3VsdCAq cmVzID0gcGFyc2VkX3Jlc3VsdDsNCj4gPiArCXVpbnQzMl90IG9mZnNldCA9IDA7DQo+ID4gKwl1 aW50MzJfdCBsZW5ndGg7DQo+ID4gKwljaGFyICp0b2tlbl9zdHI7DQo+ID4gKwljaGFyICp0b2tl bjsNCj4gPiArDQo+ID4gKwl0b2tlbl9zdHIgPSByZXMtPnRva2VuX3N0cjsNCj4gPiArCXRva2Vu ID0gc3RydG9rX3IodG9rZW5fc3RyLCAiIFxmXG5cclx0XHYiLCAmdG9rZW5fc3RyKTsNCj4gPiAr DQo+ID4gKwkvKiBQYXJzZSBIZXggc3RyaW5nIHRvIEJ5dGUgZGF0YSAqLw0KPiA+ICsJaWYgKHN0 cmxlbih0b2tlbikgJSAyICE9IDApIHsNCj4gPiArCQlmcHJpbnRmKHN0ZGVyciwgIkJhZCBBcmd1 bWVudDogJXNcbkhleCBzdHJpbmcgbXVzdCBiZSBpbg0KPiBtdWx0aXBsZXMgb2YgMiBCeXRlc1xu IiwNCj4gPiArCQkJdG9rZW4pOw0KPiA+ICsJCXJldHVybjsNCj4gPiArCX0NCj4gPiArDQo+ID4g KwlsZW5ndGggPSBzdHJsZW4odG9rZW4pIC8gMjsNCj4gPiArCXVpbnQ4X3QgdmFsdWVbbGVuZ3Ro XTsNCj4gPg0KPiANCj4gVkxBIGNhbiBjYXVzZSBzdGFjayBvdmVyZmxvdywgd2hhdCBhYm91dCBk eW5hbWljIG1lbW9yeSBhbGxvY2F0aW9uLg0KDQpPa2F5Lg0KDQo+IA0KPiANCj4gPiArCWZvciAo aW50IGNvdW50ID0gMDsgY291bnQgPCAoaW50KShsZW5ndGgpOyBjb3VudCsrKSB7DQo+ID4gKwkJ aWYgKHNzY2FuZih0b2tlbiwgIiUyaGh4IiwgJnZhbHVlW2NvdW50XSkgIT0gMSkgew0KPiA+ICsJ CQlmcHJpbnRmKHN0ZGVyciwgIkJhZCBBcmd1bWVudDogJXNcblZhbHVlIG11c3QgYmUgYQ0KPiBo ZXggc3RyaW5nXG4iLA0KPiA+ICsJCQkJdG9rZW4gLSAoY291bnQgKyAxKSk7DQo+ID4gKwkJCXJl dHVybjsNCj4gPiArCQl9DQo+ID4gKwkJdG9rZW4gKz0gMjsNCj4gPiArCX0NCj4gPiArDQo+ID4g KwkvKiBTZWNvbmQgdG9rZW46IG9mZnNldCBzdHJpbmcgKi8NCj4gPiArCXRva2VuID0gc3RydG9r X3IodG9rZW5fc3RyLCAiIFxmXG5cclx0XHYiLCAmdG9rZW5fc3RyKTsNCj4gPiArCWlmICh0b2tl biAhPSBOVUxMKSB7DQo+ID4gKwkJaWYgKHN0cmNtcCh0b2tlbiwgIm9mZnNldCIpID09IDApIHsN Cj4gPiArCQkJLyogVGhpcmQgdG9rZW46IG9mZnNldCAqLw0KPiA+ICsJCQl0b2tlbiA9IHN0cnRv a19yKHRva2VuX3N0ciwgIiBcZlxuXHJcdFx2IiwgJnRva2VuX3N0cik7DQo+ID4gKwkJCWlmICh0 b2tlbiA9PSBOVUxMKSB7DQo+ID4gKwkJCQlmcHJpbnRmKHN0ZGVyciwgIk5vIG9mZnNldCBzcGVj aWZpZWRcbiIpOw0KPiA+ICsJCQkJcmV0dXJuOw0KPiA+ICsJCQl9DQo+ID4NCj4gDQo+IFdoeSBu b3QgbW92ZSAnb2Zmc2V0JyBiZWZvcmUgdmFsdWUsIHNvIGNhbiB1c2UgaXQgYXMgcmVzLT5vZmZz ZXQ/DQo+IA0KDQpUaGUgJ29mZnNldCcgaXMgdGhlIGxhc3QgYXJndW1lbnQgcHJvdmlkZWQgYmVj YXVzZSBpdCBpcyBhbiBvcHRpb25hbCBhcmd1bWVudCwgaWYgdGhlIHVzZXIgZG9lc24ndCBzcGVj aWZ5IGFuIG9mZnNldCwgMCBpcyB1c2VkLg0KSWYgd2Ugd2VyZSB0byBtb3ZlIHRoZSAnb2Zmc2V0 JyB0byBiZWZvcmUgdGhlIHZhbHVlIHRoZW4gaXQgd291bGQgaGF2ZSB0byBiZSBzcGVjaWZpZWQg ZXZlcnkgdGltZS4NCg0KPiANCj4gPiArDQo+ID4gKwkJCWNoYXIgKmVuZDsNCj4gPiArCQkJb2Zm c2V0ID0gc3RydG91bCh0b2tlbiwgJmVuZCwgMTApOw0KPiA+ICsJCQlpZiAob2Zmc2V0ID09IDAg JiYgc3RyY21wKGVuZCwgIiIpICE9IDApIHsNCj4gPiArCQkJCWZwcmludGYoc3RkZXJyLCAiQmFk IEFyZ3VtZW50OiAlc1xuIiwgdG9rZW4pOw0KPiA+ICsJCQkJcmV0dXJuOw0KPiA+ICsJCQl9DQo+ ID4gKwkJfSBlbHNlIHsNCj4gPiArCQkJZnByaW50ZihzdGRlcnIsICJCYWQgQXJndW1lbnQ6ICVz XG4iLCB0b2tlbik7DQo+ID4gKwkJCXJldHVybjsNCj4gPiArCQl9DQo+ID4gKwl9DQo+ID4gKw0K PiA+ICsJcG9ydF9lZXByb21fc2V0KHJlcy0+cG9ydG51bSwgcmVzLT5tYWdpYywgb2Zmc2V0LCBs ZW5ndGgsIHZhbHVlKTsgfQ0KPiA+ICsNCj4gPiArc3RhdGljIGNtZGxpbmVfcGFyc2VfdG9rZW5f c3RyaW5nX3QgY21kX3NldGVlcHJvbV9zZXQgPQ0KPiA+ICsJVE9LRU5fU1RSSU5HX0lOSVRJQUxJ WkVSKHN0cnVjdCBjbWRfc2V0ZWVwcm9tX3Jlc3VsdCwgc2V0LA0KPiAic2V0Iik7DQo+ID4gK3N0 YXRpYyBjbWRsaW5lX3BhcnNlX3Rva2VuX3N0cmluZ190IGNtZF9zZXRlZXByb21fcG9ydCA9DQo+ ID4gKwlUT0tFTl9TVFJJTkdfSU5JVElBTElaRVIoc3RydWN0IGNtZF9zZXRlZXByb21fcmVzdWx0 LCBwb3J0LA0KPiAicG9ydCIpOw0KPiA+ICtzdGF0aWMgY21kbGluZV9wYXJzZV90b2tlbl9udW1f dCBjbWRfc2V0ZWVwcm9tX3BvcnRudW0gPQ0KPiA+ICsJVE9LRU5fTlVNX0lOSVRJQUxJWkVSKHN0 cnVjdCBjbWRfc2V0ZWVwcm9tX3Jlc3VsdCwgcG9ydG51bSwNCj4gPiArUlRFX1VJTlQxNik7IHN0 YXRpYyBjbWRsaW5lX3BhcnNlX3Rva2VuX3N0cmluZ190DQo+IGNtZF9zZXRlZXByb21fZWVwcm9t ID0NCj4gPiArCVRPS0VOX1NUUklOR19JTklUSUFMSVpFUihzdHJ1Y3QgY21kX3NldGVlcHJvbV9y ZXN1bHQsIGVlcHJvbSwNCj4gPiArImVlcHJvbSIpOyBzdGF0aWMgY21kbGluZV9wYXJzZV90b2tl bl9zdHJpbmdfdA0KPiBjbWRfc2V0ZWVwcm9tX2NvbmZpcm1fc3RyID0NCj4gPiArCVRPS0VOX1NU UklOR19JTklUSUFMSVpFUihzdHJ1Y3QgY21kX3NldGVlcHJvbV9yZXN1bHQsDQo+IGNvbmZpcm1f c3RyLA0KPiA+ICsiY29uZmlybSIpOyBzdGF0aWMgY21kbGluZV9wYXJzZV90b2tlbl9zdHJpbmdf dCBjbWRfc2V0ZWVwcm9tX21hZ2ljX3N0cg0KPiA9DQo+ID4gKwlUT0tFTl9TVFJJTkdfSU5JVElB TElaRVIoc3RydWN0IGNtZF9zZXRlZXByb21fcmVzdWx0LCBtYWdpY19zdHIsDQo+ID4gKyJtYWdp YyIpOyBzdGF0aWMgY21kbGluZV9wYXJzZV90b2tlbl9udW1fdCBjbWRfc2V0ZWVwcm9tX21hZ2lj ID0NCj4gPiArCVRPS0VOX05VTV9JTklUSUFMSVpFUihzdHJ1Y3QgY21kX3NldGVlcHJvbV9yZXN1 bHQsIG1hZ2ljLA0KPiA+ICtSVEVfVUlOVDMyKTsgc3RhdGljIGNtZGxpbmVfcGFyc2VfdG9rZW5f c3RyaW5nX3QgY21kX3NldGVlcHJvbV92YWx1ZQ0KPiA9DQo+ID4gKwlUT0tFTl9TVFJJTkdfSU5J VElBTElaRVIoc3RydWN0IGNtZF9zZXRlZXByb21fcmVzdWx0LCB2YWx1ZSwNCj4gPiArInZhbHVl Iik7IHN0YXRpYyBjbWRsaW5lX3BhcnNlX3Rva2VuX3N0cmluZ190IGNtZF9zZXRlZXByb21fdG9r ZW5fc3RyID0NCj4gPiArCVRPS0VOX1NUUklOR19JTklUSUFMSVpFUihzdHJ1Y3QgY21kX3NldGVl cHJvbV9yZXN1bHQsIHRva2VuX3N0ciwNCj4gPiArVE9LRU5fU1RSSU5HX01VTFRJKTsNCj4gPiAr DQo+ID4gK3N0YXRpYyBjbWRsaW5lX3BhcnNlX2luc3RfdCBjbWRfc2V0ZWVwcm9tID0gew0KPiA+ ICsJLmYgPSBjbWRfc2V0ZWVwcm9tX3BhcnNlZCwNCj4gPiArCS5kYXRhID0gTlVMTCwNCj4gPiAr CS5oZWxwX3N0ciA9ICJzZXQgcG9ydCA8cG9ydF9pZD4gZWVwcm9tIDxjb25maXJtPiBtYWdpYyA8 bWFnaWNfbnVtPg0KPiAiDQo+ID4gKwkJInZhbHVlIDx2YWx1ZT4gb2Zmc2V0IDxvZmZzZXQ+OiBT ZXQgZWVwcm9tIHZhbHVlIGZvcg0KPiBwb3J0X2lkLlxuIg0KPiA+ICsJCSJOb3RlOlxuIg0KPiA+ ICsJCSJUaGlzIGlzIGEgaGlnaC1yaXNrIGNvbW1hbmQgYW5kIGl0cyBtaXN1c2UgbWF5IHJlc3Vs dCBpbiAiDQo+ID4gKwkJInVuZXhwZWN0ZWQgYmVoYXZpb3VyIGZyb20gdGhlIE5JQy5cbiINCj4g PiArCQkiQnkgaW5zZXJ0aW5nIFwiY29uZmlybVwiIGludG8gdGhlIGNvbW1hbmQsIHRoZSB1c2Vy IGlzICINCj4gPiArCQkiYWNrbm93bGVkZ2luZyBhbmQgdGFraW5nIHJlc3BvbnNpYmlsaXR5IGZv ciB0aGlzIHJpc2suIiwNCj4gPiArCS50b2tlbnMgPSB7DQo+ID4gKwkJKHZvaWQgKikmY21kX3Nl dGVlcHJvbV9zZXQsDQo+ID4gKwkJKHZvaWQgKikmY21kX3NldGVlcHJvbV9wb3J0LA0KPiA+ICsJ CSh2b2lkICopJmNtZF9zZXRlZXByb21fcG9ydG51bSwNCj4gPiArCQkodm9pZCAqKSZjbWRfc2V0 ZWVwcm9tX2VlcHJvbSwNCj4gPiArCQkodm9pZCAqKSZjbWRfc2V0ZWVwcm9tX2NvbmZpcm1fc3Ry LA0KPiA+ICsJCSh2b2lkICopJmNtZF9zZXRlZXByb21fbWFnaWNfc3RyLA0KPiA+ICsJCSh2b2lk ICopJmNtZF9zZXRlZXByb21fbWFnaWMsDQo+ID4gKwkJKHZvaWQgKikmY21kX3NldGVlcHJvbV92 YWx1ZSwNCj4gPiArCQkodm9pZCAqKSZjbWRfc2V0ZWVwcm9tX3Rva2VuX3N0ciwNCj4gPiArCQlO VUxMLA0KPiA+ICsJfSwNCj4gPiArfTsNCj4gPiArDQo+ID4gIC8qICoqKiBDT05GSUdVUkUgUVVF VUUgU1RBVFMgQ09VTlRFUiBNQVBQSU5HUyAqKiogKi8gIHN0cnVjdA0KPiA+IGNtZF9zZXRfcW1h cF9yZXN1bHQgew0KPiA+ICAJY21kbGluZV9maXhlZF9zdHJpbmdfdCBzZXQ7DQo+ID4gQEAgLTEz MTUzLDYgKzEzMjc1LDcgQEAgc3RhdGljIGNtZGxpbmVfcGFyc2VfY3R4X3QgYnVpbHRpbl9jdHhb XSA9IHsNCj4gPiAgCSZjbWRfc2hvd3BvcnQsDQo+ID4gIAkmY21kX3Nob3dxdWV1ZSwNCj4gPiAg CSZjbWRfc2hvd2VlcHJvbSwNCj4gPiArCSZjbWRfc2V0ZWVwcm9tLA0KPiA+ICAJJmNtZF9zaG93 cG9ydGFsbCwNCj4gPiAgCSZjbWRfcmVwcmVzZW50b3JfaW5mbywNCj4gPiAgCSZjbWRfc2hvd2Rl dmljZSwNCj4gPiBkaWZmIC0tZ2l0IGEvYXBwL3Rlc3QtcG1kL2NvbmZpZy5jIGIvYXBwL3Rlc3Qt cG1kL2NvbmZpZy5jIGluZGV4DQo+ID4gNmYwYmVhZmEyNy4uNzM1NDliMmI1NyAxMDA2NDQNCj4g PiAtLS0gYS9hcHAvdGVzdC1wbWQvY29uZmlnLmMNCj4gPiArKysgYi9hcHAvdGVzdC1wbWQvY29u ZmlnLmMNCj4gPiBAQCAtMTA2Myw2ICsxMDYzLDQ1IEBAIHBvcnRfZWVwcm9tX2Rpc3BsYXkocG9y dGlkX3QgcG9ydF9pZCkNCj4gPiAgCWZyZWUoZWluZm8uZGF0YSk7DQo+ID4gIH0NCj4gPg0KPiA+ ICt2b2lkDQo+ID4gK3BvcnRfZWVwcm9tX3NldChwb3J0aWRfdCBwb3J0X2lkLA0KPiA+ICsJCXVp bnQzMl90IG1hZ2ljLA0KPiA+ICsJCXVpbnQzMl90IG9mZnNldCwNCj4gPiArCQl1aW50MzJfdCBs ZW5ndGgsDQo+ID4gKwkJdWludDhfdCAqdmFsdWUpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBydGVf ZGV2X2VlcHJvbV9pbmZvIGVpbmZvOw0KPiA+ICsJaW50IGxlbl9lZXByb207DQo+ID4gKwlpbnQg cmV0Ow0KPiA+ICsNCj4gPiArCWlmIChwb3J0X2lkX2lzX2ludmFsaWQocG9ydF9pZCwgRU5BQkxF RF9XQVJOKSkgew0KPiA+ICsJCXByaW50X3ZhbGlkX3BvcnRzKCk7DQo+ID4gKwkJcmV0dXJuOw0K PiA+ICsJfQ0KPiA+ICsNCj4gPiArCWxlbl9lZXByb20gPSBydGVfZXRoX2Rldl9nZXRfZWVwcm9t X2xlbmd0aChwb3J0X2lkKTsNCj4gPiArCWlmIChsZW5fZWVwcm9tIDwgMCkgew0KPiA+ICsJCWZw cmludGYoc3RkZXJyLCAiVW5hYmxlIHRvIGdldCBFRVBST00gbGVuZ3RoOiAlc1xuIiwNCj4gPiAr CQkJcnRlX3N0cmVycm9yKC1sZW5fZWVwcm9tKSk7DQo+ID4gKwkJcmV0dXJuOw0KPiA+ICsJfQ0K PiA+ICsNCj4gPiArCWVpbmZvLmRhdGEgPSB2YWx1ZTsNCj4gPiArCWVpbmZvLm1hZ2ljID0gbWFn aWM7DQo+ID4gKwllaW5mby5sZW5ndGggPSBsZW5ndGg7DQo+ID4gKwllaW5mby5vZmZzZXQgPSBv ZmZzZXQ7DQo+ID4gKw0KPiA+ICsJaWYgKGVpbmZvLm9mZnNldCArIGVpbmZvLmxlbmd0aCA+ICh1 aW50MzJfdCkobGVuX2VlcHJvbSkpIHsNCj4gPiArCQlmcHJpbnRmKHN0ZGVyciwgIm9mZnNldCBh bmQgbGVuZ3RoIGV4Y2VlZCBjYXBhYmlsaXRpZXMgb2YNCj4gRUVQUk9NIGxlbmd0aDogJWRcbiIs DQo+ID4gKwkJCWxlbl9lZXByb20pOw0KPiA+ICsJCXJldHVybjsNCj4gPiArCX0NCj4gPiArDQo+ ID4gKwlyZXQgPSBydGVfZXRoX2Rldl9zZXRfZWVwcm9tKHBvcnRfaWQsICZlaW5mbyk7DQo+ID4g KwlpZiAocmV0ICE9IDApDQo+ID4gKwkJZnByaW50ZihzdGRlcnIsICJVbmFibGUgdG8gc2V0IEVF UFJPTTogJXNcbiIsIHJ0ZV9zdHJlcnJvcigtDQo+IHJldCkpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ ICB2b2lkDQo+ID4gIHBvcnRfbW9kdWxlX2VlcHJvbV9kaXNwbGF5KHBvcnRpZF90IHBvcnRfaWQp ICB7IGRpZmYgLS1naXQNCj4gPiBhL2FwcC90ZXN0LXBtZC90ZXN0cG1kLmggYi9hcHAvdGVzdC1w bWQvdGVzdHBtZC5oIGluZGV4DQo+ID4gOWZhY2Q3ZjI4MS4uMTI5MmQxYTBhNyAxMDA2NDQNCj4g PiAtLS0gYS9hcHAvdGVzdC1wbWQvdGVzdHBtZC5oDQo+ID4gKysrIGIvYXBwL3Rlc3QtcG1kL3Rl c3RwbWQuaA0KPiA+IEBAIC05MjcsNiArOTI3LDggQEAgdm9pZCBkZXZpY2VfaW5mb3NfZGlzcGxh eShjb25zdCBjaGFyICppZGVudGlmaWVyKTsNCj4gPiB2b2lkIHBvcnRfaW5mb3NfZGlzcGxheShw b3J0aWRfdCBwb3J0X2lkKTsgIHZvaWQNCj4gPiBwb3J0X3N1bW1hcnlfZGlzcGxheShwb3J0aWRf dCBwb3J0X2lkKTsgIHZvaWQNCj4gPiBwb3J0X2VlcHJvbV9kaXNwbGF5KHBvcnRpZF90IHBvcnRf aWQpOw0KPiA+ICt2b2lkIHBvcnRfZWVwcm9tX3NldChwb3J0aWRfdCBwb3J0X2lkLCB1aW50MzJf dCBtYWdpYywgdWludDMyX3Qgb2Zmc2V0LA0KPiA+ICsJCSAgICAgdWludDMyX3QgbGVuZ3RoLCB1 aW50OF90ICp2YWx1ZSk7DQo+ID4gIHZvaWQgcG9ydF9tb2R1bGVfZWVwcm9tX2Rpc3BsYXkocG9y dGlkX3QgcG9ydF9pZCk7ICB2b2lkDQo+ID4gcG9ydF9zdW1tYXJ5X2hlYWRlcl9kaXNwbGF5KHZv aWQpOw0KPiA+ICB2b2lkIHJ4X3F1ZXVlX2luZm9zX2Rpc3BsYXkocG9ydGlkX3QgcG9ydF9pZGks IHVpbnQxNl90IHF1ZXVlX2lkKTsNCj4gPiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy90ZXN0cG1k X2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdA0KPiA+IGIvZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91 Zy90ZXN0cG1kX2Z1bmNzLnJzdA0KPiA+IGluZGV4IGYwMGFiMDc2MDUuLjVjMzNkNjEwZWEgMTAw NjQ0DQo+ID4gLS0tIGEvZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJz dA0KPiA+ICsrKyBiL2RvYy9ndWlkZXMvdGVzdHBtZF9hcHBfdWcvdGVzdHBtZF9mdW5jcy5yc3QN Cj4gPiBAQCAtMTM1OSw2ICsxMzU5LDI0IEBAIFNldCB0aGUgZm9yd2FyZGluZyBwZWVyIGFkZHJl c3MgZm9yIGNlcnRhaW4NCj4gcG9ydDo6DQo+ID4NCj4gPiAgVGhpcyBpcyBlcXVpdmFsZW50IHRv IHRoZSBgYC0tZXRoLXBlZXJgYCBjb21tYW5kLWxpbmUgb3B0aW9uLg0KPiA+DQo+ID4gK3NldCBl ZXByb20NCj4gPiArfn5+fn5+fn5+fg0KPiA+ICsNCj4gPiArV3JpdGUgYSB2YWx1ZSB0byB0aGUg ZGV2aWNlIGVlcHJvbSBvZiBhIHBvcnQgYXQgYSBzcGVjaWZpYyBvZmZzZXQ6Og0KPiA+ICsNCj4g PiArICAgdGVzdHBtZD4gc2V0IHBvcnQgKHBvcnRfaWQpIGVlcHJvbSAoY29uZmlybSkgbWFnaWMg KG1hZ2ljX251bSkgdmFsdWUNCj4gKHZhbHVlKSBcDQo+ID4gKyAgICAgICAgICAgIG9mZnNldCAo b2Zmc2V0KQ0KPiA+ICsNCj4gPiArVmFsdWUgc2hvdWxkIGJlIGdpdmVuIGluIHRoZSBmb3JtIG9m IGEgaGV4LWFzLXN0cmluZywgd2l0aCBubyBsZWFkaW5nIGBgMHhgYC4NCj4gPiArVGhlIG9mZnNl dCBmaWVsZCBoZXJlIGlzIG9wdGlvbmFsLCBpZiBub3Qgc3BlY2lmaWVkIHRoZW4gdGhlIG9mZnNl dA0KPiA+ICt3aWxsIGRlZmF1bHQgdG8gMC4NCj4gPiArDQo+ID4gKy4uIG5vdGU6Og0KPiA+ICsN Cj4gPiArICAgVGhpcyBpcyBhIGhpZ2gtcmlzayBjb21tYW5kIGFuZCBpdHMgbWlzdXNlIG1heSBy ZXN1bHQgaW4gdW5leHBlY3RlZA0KPiA+ICsgICBiZWhhdmlvdXIgZnJvbSB0aGUgTklDLiBCeSBp bnNlcnRpbmcgImNvbmZpcm0iIGludG8gdGhlIGNvbW1hbmQsIHRoZQ0KPiB1c2VyIGlzDQo+ID4g KyAgIGFja25vd2xlZGdpbmcgYW5kIHRha2luZyByZXNwb25zaWJpbGl0eSBmb3IgdGhpcyByaXNr Lg0KPiA+ICsNCj4gPg0KPiANCj4gU2ltaWxhcmx5LCBjYW4geW91IHBsZWFzZSBtb3ZlIHRoaXMg YXJvdW5kIHRoZSBlZXByb20gZGlzcGxheSBjb21tYW5kLg0KDQpPa2F5Lg0KDQo=