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 BF262A04FD; Tue, 10 May 2022 07:33:13 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1AEDB415D7; Tue, 10 May 2022 07:33:13 +0200 (CEST) Received: from na01-obe.outbound.protection.outlook.com (mail-centralusazon11021025.outbound.protection.outlook.com [52.101.62.25]) by mails.dpdk.org (Postfix) with ESMTP id 5EC324069D; Tue, 10 May 2022 07:33:11 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ceMogAhGsB4XpAY4bDHR5HaAFgX18wu5ZermljpHdCw0GJAoDI2zfGq4EVV00xvEoDHhHXJGeDcqtl+TGTzsMPgIbSuNLiWSGOcqji4b/LVQYhWo6ZG3mLyAJAheyeY9VqTf9oDPu7Oi+iaVcoyuNCEYuyw3NTx8YSEFnJHDvTaZuRYBcYJcrWctLBPh804p4igjk8Yjnl8faKJ9Oi5Pj07SiLPgcJK4dT5QWCLdEhhKI8Cd0gMChEEMw5GdjrGDJQ2ymXKKqtI7Gglpnytkzp628Sg58QzXc1h4JNt8iPHJTluBTnSBMV0iuMo2zGrhPGCVChgs4BYGqqisiphm3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=VuzOT7zcbOJqjq872ab/zrIpeqVqI32upijSSpwMhjg=; b=cdTdU6r97DafDdxG/vBXpUmghv+LlYGRR/eyRZKSOH75XNoTo+qkYYj4NiJKABE4ir4oPjDCOAL//U7Qn8uIZMTHPqt7ZrMNnuuOWmFHq92GP+pknfAWcGSuXr1VStjNNZztVqkfYMo+KkRkRg20xYHJZFji0Ig8CG2G5RX1q18tu2LUfnsAvCqI1xKt++8qVt6qdLwSlMWt/pVg3cRLz1TERkQ0KVtkE3rV/qMY3rGaIXd6InpCN92ptuJwN0Ef4YuVOgKj8/nUbB3kzUpVaUx+FzO0bY/LmFRsvLjokuS9s1mBY060QQyNVK415zzLfJZSZDAHcDnADTmvbWTe8A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VuzOT7zcbOJqjq872ab/zrIpeqVqI32upijSSpwMhjg=; b=VqucYNb2ee/VoUb8TmhOqCOahwxYzQmm/ROeHo4tG9Eap4vqWMdoyEPwfAJwhES6qaSqIxaMueueQvCxQjmv4mjJV8daGL5ZSER5byJY/Vg+bqMMYY7Gq7AJFl1qAAZ4wXHk//sFFHyTcype8sJ/6O3i+NDMxCUdsEtsli7Tuzc= Received: from PH7PR21MB3263.namprd21.prod.outlook.com (2603:10b6:510:1db::16) by MW2PR2101MB1100.namprd21.prod.outlook.com (2603:10b6:302:f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.4; Tue, 10 May 2022 05:33:07 +0000 Received: from PH7PR21MB3263.namprd21.prod.outlook.com ([fe80::ddf3:2951:518d:34a5]) by PH7PR21MB3263.namprd21.prod.outlook.com ([fe80::ddf3:2951:518d:34a5%8]) with mapi id 15.20.5273.004; Tue, 10 May 2022 05:33:07 +0000 From: Long Li To: Ferruh Yigit , Stephen Hemminger CC: "longli@linuxonhyperv.com" , "dev@dpdk.org" , Stephen Hemminger , "stable@dpdk.org" Subject: RE: [Patch v2] net/netvsc: report correct stats values Thread-Topic: [Patch v2] net/netvsc: report correct stats values Thread-Index: AQHYP6cEkQRXn4D8yUClXpvX3Nw0c60C8ZcAgAANvACACrUn4IAADUgAgAAB1WCAAAyYAIAADcyQgAEI6ICAAGTiIIABb0UAgAADTACAAATZgIAHHAgg Date: Tue, 10 May 2022 05:33:07 +0000 Message-ID: References: <1648143948-17821-1-git-send-email-longli@linuxonhyperv.com> <7f51e773-6ded-b736-fb02-5e3b391353b9@xilinx.com> <20220426154524.49502217@hermes.local> <924d7398-6c78-6318-52f3-d671edfc8aad@xilinx.com> <04de7df6-3d4a-21e5-7be5-15f2ef88be16@xilinx.com> <99a629d6-642e-db25-eeaa-a9eceec577cb@xilinx.com> <7809f41b-c21b-5ebe-d830-91015edb0cb8@xilinx.com> <20220505094026.22e74f43@hermes.local> <973e1c08-6fca-7664-72a3-0a25f5b73686@xilinx.com> In-Reply-To: <973e1c08-6fca-7664-72a3-0a25f5b73686@xilinx.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=4b51a0a3-7e42-4a46-abb0-c0cbbb8fbaa4; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2022-05-10T05:31:55Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microsoft.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f86157f9-67a8-4ec0-557c-08da32469027 x-ms-traffictypediagnostic: MW2PR2101MB1100:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: gkMU9ZdDq1P7O3ScvJMXSaBCJM3Fst9rd8Z1ejOAOGrTf7MRM0X0UwRuniZ82f4+VsNM1TocdLwTZ/2115orTANJATuRFKlzAmezXLcwJfAV3GE162A8VouEnv6M4fZKpS5jXE+MIqnGSLEjJLmS4KFFW/qNTu2w9AxONOLs5wvGuLlMAZu+5giz0PieaaduBydqwAfTbpIKHPegJfquRbx15zk9X6FA7O4mmakhOUjnVo1j97Le6L88m7hOaqavaX3Roh3Vvlsgp2xreUGgRx331mT8B4Fc/oVVQKZaNdHwch/LFCVuhCURSshcxYdOqKVVoSie/0+ssqUg21zGRqBvd05aXCMpjBA7W5j1j7APgcfG42G+wyCAlwUJYUo1tpsa0bmfcoVQlVv5jQMzcRCxsSg0OaiaWNgszyI/wvDZgzfHV2gRsEEJC+5+WJkoCH7t+FqU71eOjzlBfj2H3q1eBtpTIZ5uqGwxR8eFTusVYozXD88XjSeHmGarFJ7GLs7qGqKb12/ytbmEde6qXs92KOAuCOrJc5d1PTtij1UF2DujP0IhFniYMG5SLIrOjlWzhOxJq18NN629RG1AH+W0yrnyshczjgpnZ+ykUIkDJWnqr3YwSFZYDUKaRwFcr4fIqEYmkPH29ABYE4WIZ1h+q9AiLHbHKMNRTWwtqaxeMeKaMai3wKrjTH54/N1fPSDFOkpDyFVJGE6Ak3CFtU581GPiL3HMQitC8uxIf+3lmW+gV9XEVlYya6YBZVkS x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR21MB3263.namprd21.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(451199009)(5660300002)(82960400001)(82950400001)(38100700002)(122000001)(52536014)(10290500003)(8936002)(316002)(76116006)(86362001)(9686003)(2906002)(26005)(54906003)(55016003)(83380400001)(71200400001)(7696005)(53546011)(8990500004)(186003)(33656002)(4326008)(66946007)(66476007)(64756008)(8676002)(66556008)(66446008)(38070700005)(110136005)(508600001)(6506007); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aEpKbkhrUVQ2WkN6bklkUHVNM3FLandraEtmTjB0bmFhZWdwTWRRT2FXMEUr?= =?utf-8?B?M2FzTkxGaHB6QlpYZFZDRXZqTnNPbjlZcy9GTFhySEhHSnhJMzFMSjlxRzcr?= =?utf-8?B?M1pxdzdtaTIrU21FSDVGSjhDTlZibjlLN0tzYjh0QkROSlFiV09GTFA3TkZI?= =?utf-8?B?SCtOdUVTUjFzZktkVmZoUncvRk5HZWNOVzEzN2lQT09hUUFBSERVTUVNS3pD?= =?utf-8?B?REU5Z2RMNTU2OWdidkdYa0dYSGpmRGNha1Ivck1ORTVaNk0yWC95OHB2cnRK?= =?utf-8?B?ZHJIL25MK2NOcnQ5SlJoNS9XbGs2UVYzN3RqM3U0a0g1R0lyekpSdm5DUVhp?= =?utf-8?B?WkdhbHRLRUE4LzlHRU1ZOXpHei9TQnBDNjF1QlROeHduY1g2a0k4QzRQQUdu?= =?utf-8?B?WUVrNkRDejVtMkp6VjEvTG13ajhDUFNxZVFZQWRVbno5SlR1NmFvUXArUEIz?= =?utf-8?B?ZDU4bi8vV3grZCsxcTNycjVSSTBSOXZWdXZCREFZUytHU2pEN0tCeC95WURQ?= =?utf-8?B?ODE1MFZ2Vkc0aFlFM1YwcFlQa0xUdytyTUdHVDhuZkkwSDBEMkk1NkpVTFIw?= =?utf-8?B?Si92c2ZSWWk3aWhvR0oyYnJyYjNuVkdscnlXcHRmYWNPeTI1aDJpMktKZDVB?= =?utf-8?B?eHJXdHpPZlVlVUNJQkhLQmhXaUxCSlpPbFJaenQwSFplcHNGMTl4djFXRWlh?= =?utf-8?B?R3ZJcStQa08zbEJyOHFscktTcjE4OE5DMnIwV0xmd2lTSWluaVoweTdWRThG?= =?utf-8?B?WmVVVkJCWWhRdGp2N29YdUh3a2MyaU9EV3VZeTZFL1g4K2szTGtyT2Mvck9t?= =?utf-8?B?WmNzSkIwSHpxd2tSZmxubXY5QVRnNHhSb2szemZGOWJ6UWxQVFBDSHU0VEk1?= =?utf-8?B?dXdXN3JrZk9yd05USVpFS002aWZaQXZLbExkMEkzQWJWMHpRZm5WSm11WllE?= =?utf-8?B?V3NXREZlemFJclI4d1V4R2R4WGJzeUxqakhSQkkrbnJqRFhMZ01hcjV3cERx?= =?utf-8?B?eTZzMThlWTVvcnlMSkVTdEJ6UW93cnBEdTBnSy9qSklEdFdSNWVuYjhTOW5N?= =?utf-8?B?REtWaHJzZzdIcko4MG9OK2UvNkhXQ0dWQlFsdzRaQTdIUXZEbU1KTXUwbFNm?= =?utf-8?B?c3dhbzc2eUhScTZEQmJzbzEyRTBnMVBOa0ZNM2VMOEo3djdXYXQzL05DWC9h?= =?utf-8?B?VS9tNy83Wi9NNk5UcG5rWFNXVFZLRngyazdReHR2WkNPNjVGUlNqVnBHczJL?= =?utf-8?B?WmxFVElDRVRhUFRHRGpydm13UDVDRERsWTc3Q2liK0hYblZ4SGs4eG9QTi9C?= =?utf-8?B?cURWWUl1YmtjdVdleC9NQVp5OEtieHVsbVJwdnFRV0J3Q1FnWCtJMHlRNFc3?= =?utf-8?B?NjM1OFUxNlUvZk1VUW9NcXlLanZPK3dyWExmSFBJQkhTanJUdFc5L3pOMyth?= =?utf-8?B?SitkM3FaUGhROVJUb0hRSGp0UERRYlJ2UTZZQXpKOXFsZ0Z6YmhqcVQ4Mmll?= =?utf-8?B?UWNNVnplNjZTRU9wM1c5cEtXV2RiMGNURGZ4U053YUN1RFRzYmtvb2dKSXc4?= =?utf-8?B?SVlac3RTY3NYaStKQmY4Q0NPNC9selk5NWlFMmtkeXpTSWJoWjdrdDQ5eEpx?= =?utf-8?B?UlhySVBOd0x6ZWlrc1RvNWhEUytPa204cXlRdHN0ZGQ0OUh6ZnptckxmbWJC?= =?utf-8?B?cVBQbzZTUjRVb0dXRkIvbkJLRTRJTkFEL2Jsb09aWDgxcTRvc0c3cUJHZDVz?= =?utf-8?B?QVhDcHlBYXBhQ3R1Wks4OVpsSGtuYmN1Y0FVdkhsR0FHdUtudkdySjZlNk5i?= =?utf-8?B?bXhDelJYTmpMaUlkdEhmRndadUMyRnlwbmhhcFg5VGFPblJSQ0Q4c29GTVcx?= =?utf-8?B?Wk9LREdWRGhqT1lHRVRmRkJKcUhFOVhiaG9jdjBWenV6M0V4VnpLMEdwRkpw?= =?utf-8?B?RXBzcHpvLzFkaWxOYXB1K1U1aEdTMWlCaEtWUVhwMWkxN2xDYlRHdmEzQzNM?= =?utf-8?B?MVRxRmZnSTlKbUV0WGNPaHRUTDBEWW5QN3pCM05JV2ZEU3NjTWZGbmNrYXAr?= =?utf-8?B?S0R2Y3FCUktQa2tQM3hpN0Z5OXpZOXNDcG8rVUtYLzNmdUNIMlJKazhWNlY2?= =?utf-8?B?ejE2NzdjbUc1K296enJiQjB2akJhRVdyZ0hGVWZYTG1HSnZmY3ZpUzJVWmFk?= =?utf-8?B?UkNiVjMvSiszVWRJUncxREpvT3ZSS0pnQWxvV1pNQWJjTGNnWHJwTGZDc1hm?= =?utf-8?B?QTZJbGUyc3Q1NlYvbm94RWdkZWNBcnMxWnQvSHluOS9QRHJLTDkvbXNoUjBN?= =?utf-8?B?UUhYemtiSUZxdjg5SmdORDAvSWNqZVZzT2trRXhGMG4yb3BsSzdLdz09?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH7PR21MB3263.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f86157f9-67a8-4ec0-557c-08da32469027 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 May 2022 05:33:07.2843 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ZfrALsedVPeraWIqzH//Oi6+T1Cc8dGzVamrPsOpGrVVeJy3uwdE7CAJDTMTGF4vmiRsvTxwfLKbx63/UD7paQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR2101MB1100 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 PiBTdWJqZWN0OiBSZTogW1BhdGNoIHYyXSBuZXQvbmV0dnNjOiByZXBvcnQgY29ycmVjdCBzdGF0 cyB2YWx1ZXMNCj4gDQo+IE9uIDUvNS8yMDIyIDU6NDAgUE0sIFN0ZXBoZW4gSGVtbWluZ2VyIHdy b3RlOg0KPiA+IE9uIFRodSwgNSBNYXkgMjAyMiAxNzoyODozOCArMDEwMA0KPiA+IEZlcnJ1aCBZ aWdpdCA8ZmVycnVoLnlpZ2l0QHhpbGlueC5jb20+IHdyb3RlOg0KPiA+DQo+ID4+IE9uIDUvNC8y MDIyIDc6MzggUE0sIExvbmcgTGkgd3JvdGU6DQo+ID4+Pj4gU3ViamVjdDogUmU6IFtQYXRjaCB2 Ml0gbmV0L25ldHZzYzogcmVwb3J0IGNvcnJlY3Qgc3RhdHMgdmFsdWVzDQo+ID4+Pj4NCj4gPj4+ PiBPbiA1LzMvMjAyMiA5OjQ4IFBNLCBMb25nIExpIHdyb3RlOg0KPiA+Pj4+Pj4gU3ViamVjdDog UmU6IFtQYXRjaCB2Ml0gbmV0L25ldHZzYzogcmVwb3J0IGNvcnJlY3Qgc3RhdHMgdmFsdWVzDQo+ ID4+Pj4+Pg0KPiA+Pj4+Pj4gT24gNS8zLzIwMjIgODoxNCBQTSwgTG9uZyBMaSB3cm90ZToNCj4g Pj4+Pj4+Pj4gU3ViamVjdDogUmU6IFtQYXRjaCB2Ml0gbmV0L25ldHZzYzogcmVwb3J0IGNvcnJl Y3Qgc3RhdHMgdmFsdWVzDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IE9uIDUvMy8yMDIyIDc6MTgg UE0sIExvbmcgTGkgd3JvdGU6DQo+ID4+Pj4+Pj4+Pj4gU3ViamVjdDogUmU6IFtQYXRjaCB2Ml0g bmV0L25ldHZzYzogcmVwb3J0IGNvcnJlY3Qgc3RhdHMNCj4gPj4+Pj4+Pj4+PiB2YWx1ZXMNCj4g Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IE9uIFR1ZSwgMjYgQXByIDIwMjIgMjI6NTY6MTQgKzAx MDAgRmVycnVoIFlpZ2l0DQo+ID4+Pj4+Pj4+Pj4gPGZlcnJ1aC55aWdpdEB4aWxpbnguY29tPiB3 cm90ZToNCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4gICAgICAgIAkJaWYgKGkgPCBSVEVf RVRIREVWX1FVRVVFX1NUQVRfQ05UUlMpIHsNCj4gPj4+Pj4+Pj4+Pj4+IC0JCQlzdGF0cy0+cV9v cGFja2V0c1tpXSA9IHR4cS0+c3RhdHMucGFja2V0czsNCj4gPj4+Pj4+Pj4+Pj4+IC0JCQlzdGF0 cy0+cV9vYnl0ZXNbaV0gPSB0eHEtPnN0YXRzLmJ5dGVzOw0KPiA+Pj4+Pj4+Pj4+Pj4gKwkJCXN0 YXRzLT5xX29wYWNrZXRzW2ldICs9IHR4cS0NCj4gPnN0YXRzLnBhY2tldHM7DQo+ID4+Pj4+Pj4+ Pj4+PiArCQkJc3RhdHMtPnFfb2J5dGVzW2ldICs9IHR4cS0+c3RhdHMuYnl0ZXM7DQo+ID4+Pj4+ Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+IFRoaXMgaXMgcGVyIHF1ZXVlIHN0YXRzLCAnc3RhdHMtPnFf b3BhY2tldHNbaV0nLCBpbiBuZXh0DQo+ID4+Pj4+Pj4+Pj4+IGl0ZXJhdGlvbiBvZiB0aGUgbG9v cCwgJ2knIHdpbGwgYmUgaW5jcmVhc2VkIGFuZCAndHhxJyB3aWxsDQo+ID4+Pj4+Pj4+Pj4+IGJl IHVwZGF0ZWQsIHNvIGFzIGZhciBhcyBJIGNhbiBzZWUgdGhlIGFib3ZlIGNoYW5nZSBoYXMgbm8g YWZmZWN0Lg0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4gQWdyZWUsIHRoYXQgaXMgd2h5IGl0 IHdhcyBqdXN0IGFzc2lnbm1lbnQgb3JpZ2luYWxseS4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+ PiBUaGUgY29uZGl0aW9uIGhlcmUgaXMgYSBsaXR0bGUgZGlmZmVyZW50LiBORVRWU0MgaXMgYSBt YXN0ZXINCj4gPj4+Pj4+Pj4+IGRldmljZSB3aXRoDQo+ID4+Pj4+Pj4+IGFub3RoZXIgUE1EIHJ1 bm5pbmcgYXMgYSBzbGF2ZS4gV2hlbiByZXBvcnRpbmcgc3RhdHMgdmFsdWVzLCBpdA0KPiA+Pj4+ Pj4+PiBuZWVkcyB0byBhZGQgdGhlIHZhbHVlcyBmcm9tIHRoZSBzbGF2ZSBQTUQuIFRoZSBvcmln aW5hbCBjb2RlDQo+ID4+Pj4+Pj4+IGp1c3Qgb3ZlcndyaXRlcyB0aGUgdmFsdWVzIGZyb20gaXRz IHNsYXZlIFBNRC4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gV2hlcmUgdGhlIGluaXRpYWwgdmFs dWVzIGFyZSBjb21pbmcgZnJvbSwgJ2huX3ZmX3N0YXRzX2dldCgpJz8NCj4gPj4+Pj4+Pj4NCj4g Pj4+Pj4+Pj4gSWYgJ2huX3ZmX3N0YXRzX2dldCgpJyBmaWxscyB0aGUgc3RhdHMsIHdoYXQgYXJl IHRoZSB2YWx1ZXMNCj4gPj4+Pj4+Pj4ga2VwdCBpbg0KPiA+Pj4+Pj4+PiAndHhxLQ0KPiA+Pj4+ Pj4+IHN0YXRzLionDQo+ID4+Pj4+Pj4+IGluIGFib3ZlIHVwZGF0ZWQgbG9vcD8NCj4gPj4+Pj4+ Pg0KPiA+Pj4+Pj4+IFllcywgaG5fdmZfc3RhdHNfZ2V0KCkgZmlsbHMgaW4gdGhlIHN0YXRzIGZy b20gdGhlIHNsYXZlIFBNRC4NCj4gPj4+Pj4+PiB0eHEtPnN0YXRzDQo+ID4+Pj4+PiB2YWx1ZXMg YXJlIGZyb20gdGhlIG1hc3RlciBQTUQuIFRob3NlIHZhbHVlcyBhcmUgZGlmZmVyZW50IGFuZA0K PiA+Pj4+Pj4gYWNjb3VudGVkIHNlcGFyYXRlZCBmcm9tIHRoZSB2YWx1ZXMgZnJvbSB0aGUgc2xh dmUgUE1ELg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEkgc2VlLCBzaW5jZSB0aGlzIGlzIGEgbGl0dGxl IGRpZmZlcmVudCB0aGFuIHdoYXQgbW9zdCBvZiB0aGUNCj4gPj4+Pj4+IFBNRHMgZG8sIGNhbiB5 b3UgcGxlYXNlIHB1dCBhIGxpdHRsZSBtb3JlIGluZm8gdG8gdGhlIGNvbW1pdCBsb2c/DQo+ID4+ Pj4+PiBPciBwZXJoYXBzIGNhbiBhZGQgc29tZSBjb21tZW50cyB0byB0aGUgY29kZS4NCj4gPj4+ Pj4NCj4gPj4+Pj4gT2ssIHdpbGwgZG8uDQo+ID4+Pj4+DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gQW5k IHN0aWxsICdzdGF0cy0+cnhfbm9tYnVmJyBjaGFuZ2UgaXMgbm90IHJlcXVpcmVkIHJpZ2h0PyBJ ZiBzbw0KPiA+Pj4+Pj4gY2FuIHlvdSByZW1vdmUgaXQgaW4gdGhlIG5leHQgdmVyc2lvbj8NCj4g Pj4+Pj4NCj4gPj4+Pj4gSXQgaXMgc3RpbGwgbmVlZGVkLiBORVRWU0MgdW5jb25kaXRpb25hbGx5 IGNhbGxzIHRoZSBzbGF2ZSBQTUQgdG8NCj4gPj4+Pj4gcmVjZWl2ZQ0KPiA+Pj4+IHBhY2tldHMs IGV2ZW4gaWYgaXQgY2FuJ3QgYWxsb2NhdGUgYSBtYnVmIHRvIHJlY2VpdmUgYSBzeW50aGV0aWMN Cj4gPj4+PiBwYWNrZXQgaXRzZWxmLiBUaGUgYWNjb3VudGluZyBvZiByeF9ub21idWYgaXMgdmFs aWQgYmVjYXVzZSB0aGUNCj4gPj4+PiBzeW50aGV0aWMgcGFja2V0cyAodG8gTkVUVlNDKSBhbmQg VkYgcGFja2V0cyAodG8gc2xhdmUgUE1EKSBhcmUgcm91dGVkDQo+IHNlcGFyYXRlbHkgZnJvbSBI eXBlci1WLg0KPiA+Pj4+DQo+ID4+Pj4gSSBhbSBub3QgcmVmZXJyaW5nIHRvIHRoZSAiKz0iIHVw ZGF0ZSwgbXkgY29tbWVudCB3YXMgYmVjYXVzZQ0KPiA+Pj4+ICdzdGF0cy0NCj4gPj4+Pj4gcnhf bm9tYnVmJyBpcyBvdmVyd3JpdHRlbiBpbiAncnRlX2V0aF9zdGF0c19nZXQoKScgWzFdLg0KPiA+ Pj4+IElzIGl0IHN0aWxsIHJlcXVpcmVkPw0KPiA+Pj4NCj4gPj4+IFllcywgaXQgaXMgc3RpbGwg bmVlZGVkLiBORVRWU0MgY2FsbHMgdGhlIHJ0ZV9ldGhfc3RhdHNfZ2V0KCkgb24gaXRzIHNsYXZl IFBNRA0KPiBmaXJzdCwgYW5kIHN0YXRzLT5yeF9ub21idWYgaXMgdXBkYXRlZCAob3ZlcndyaXR0 ZW4pIGZvciBpdHMgc2xhdmUgUE1ELiBBZnRlIHRoYXQsDQo+IGl0IG5lZWRzIHRvIGFkZCB0byBp dHMgb3duIGRldi0+ZGF0YS0+cnhfbWJ1Zl9hbGxvY19mYWlsZWQgYmFjayB0byBzdGF0cy0NCj4g PnJ4X25vbWJ1Zi4NCj4gPj4+DQo+ID4+DQo+ID4+IEJ1dCBpdHMgb3duIHN0YXQgYWxzbyB3aWxs IGJlIG92ZXJ3cml0dGVuIChub3QgaW4gUE1EIGZ1bmN0aW9uLCBidXQNCj4gPj4gaW4gZXRoZGV2 IGxheWVyKS4NCj4gPj4gJ3N0YXRzLT5yeF9ub21idWYnIGFzc2lnbm1lbnQgaW4gdGhlIFBNRCBz ZWVtcyBoYXMgbm8gZWZmZWN0IGFuZCBjYW4NCj4gPj4gYmUgcmVtb3ZlZC4NCj4gPj4NCj4gPj4g SSBjYW4ndCBzZWUgaG93IGl0IGlzIG5lZWRlZCwgY2FuIHlvdSBwbGVhc2UgcHV0IGEgY2FsbCBz dGFjayB0byBkZXNjcmliZT8NCj4gPg0KPiA+IFRoaXMgaGVyZToNCj4gPg0KPiA+DQo+ID4gaW50 DQo+ID4gcnRlX2V0aF9zdGF0c19nZXQodWludDE2X3QgcG9ydF9pZCwgc3RydWN0IHJ0ZV9ldGhf c3RhdHMgKnN0YXRzKSB7DQo+ID4gCXN0cnVjdCBydGVfZXRoX2RldiAqZGV2Ow0KPiA+DQo+ID4g CVJURV9FVEhfVkFMSURfUE9SVElEX09SX0VSUl9SRVQocG9ydF9pZCwgLUVOT0RFVik7DQo+ID4g CWRldiA9ICZydGVfZXRoX2RldmljZXNbcG9ydF9pZF07DQo+ID4NCj4gPiAJaWYgKHN0YXRzID09 IE5VTEwpIHsNCj4gPiAJCVJURV9FVEhERVZfTE9HKEVSUiwgIkNhbm5vdCBnZXQgZXRoZGV2IHBv cnQgJXUgc3RhdHMgdG8NCj4gTlVMTFxuIiwNCj4gPiAJCQlwb3J0X2lkKTsNCj4gPiAJCXJldHVy biAtRUlOVkFMOw0KPiA+IAl9DQo+ID4NCj4gPiAJbWVtc2V0KHN0YXRzLCAwLCBzaXplb2YoKnN0 YXRzKSk7DQo+ID4NCj4gPiAJUlRFX0ZVTkNfUFRSX09SX0VSUl9SRVQoKmRldi0+ZGV2X29wcy0+ c3RhdHNfZ2V0LCAtRU5PVFNVUCk7DQo+ID4gCXN0YXRzLT5yeF9ub21idWYgPSBkZXYtPmRhdGEt PnJ4X21idWZfYWxsb2NfZmFpbGVkOw0KPiA+IAlyZXR1cm4gZXRoX2Vycihwb3J0X2lkLCAoKmRl di0+ZGV2X29wcy0+c3RhdHNfZ2V0KShkZXYsIHN0YXRzKSk7IH0NCj4gPg0KPiA+IFdpbGwgZmls bCBpbiByeF9ub21idWYgZnJvbSB0aGUgY3VycmVudCByeF9tYnVmX2FsbG9jX2ZhaWxlZC4NCj4g PiBCdXQgaXQgaGFwcGVucyBiZWZvcmUgdGhlIFBNRCBzcGVjaWZpYyBzdGF0cyBmdW5jdGlvbi4N Cj4gPg0KPiANCj4gSSBrZWVwIHNlZWluZyB0aGUgZXRoZGV2IGFzc2lnbm1lbnQgYXMgKmFmdGVy KiB0aGUgZGV2X29wcywgYnV0IGl0IGlzIG5vdCBbMV0sIHNvDQo+IGNvZGUgaXMgT0sgYXMgaXQg aXMuDQoNCkhpIEZlcnJ1aCwNCg0KRG8geW91IHN0aWxsIHdhbnQgbWUgdG8gc2VuZCBhIHYzLCBv ciB0aGlzIHBhdGNoIGlzIGdvb2QgYXMgaXQgaXM/DQoNCkxvbmcNCg0KPiANCj4gDQo+IFsxXQ0K PiBJdCBzZWVtcyBhc3NpZ25tZW50IHdhcyBhZnRlciBidXQgaXQgaXMgZml4ZWQgb24gdGhlIHdh eToNCj4gQ29tbWl0IDUzZWNmYTI0ZmJjZCAoImV0aGRldjogZml4IG92ZXJ3cml0aW5nIGRyaXZl ci1zcGVjaWZpYyBzdGF0cyIpDQo=