From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0083.outbound.protection.outlook.com [104.47.2.83]) by dpdk.org (Postfix) with ESMTP id AB18B2BE5 for ; Fri, 9 Nov 2018 06:24:46 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cMemWhUDDcMS1FqKg7boALdpL702b+u2B/6fJYI62Ac=; b=kefn/OFvSm4k7CHqOGs66qmBaLt4G+ReWFM91zBJn5xMpKiGqUZV6zrscrx1ret+ptClqP7zlpfGnn991emuPpuHaYZsWGER6Ylv+fYu6UMz+g+2QRWzQFFSltcXnKs2YlEmwdEoFnZ6Vw1Co3rsRxz0M2bElZCmWTk7tZuN8gM= Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com (52.133.41.11) by AM0PR0502MB3650.eurprd05.prod.outlook.com (52.133.46.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1294.22; Fri, 9 Nov 2018 05:24:45 +0000 Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::b158:af20:5026:3d25]) by AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::b158:af20:5026:3d25%2]) with mapi id 15.20.1294.034; Fri, 9 Nov 2018 05:24:45 +0000 From: Matan Azrad To: Jeff Guo , "Ananyev, Konstantin" , "Burakov, Anatoly" , Thomas Monjalon , "Iremonger, Bernard" , "Wu, Jingjing" , "Lu, Wenzhuo" CC: "Yigit, Ferruh" , "dev@dpdk.org" , "Zhang, Helin" , "He, Shaopeng" Thread-Topic: [PATCH 3/3] app/testpmd: fix callback issue for hot-unplug Thread-Index: AQHUdZZ8h+lHSEr6OUWDDdkfR7wInqVCSJ3ggAGjsICAADwdAIABVAXwgAAYLoCAAAxQcIABM/GAgAAWm7A= Date: Fri, 9 Nov 2018 05:24:45 +0000 Message-ID: References: <1541484436-91320-1-git-send-email-jia.guo@intel.com> <1541484436-91320-4-git-send-email-jia.guo@intel.com> <2601191342CEEE43887BDE71AB9772580103069B86@irsmsx105.ger.corp.intel.com> <11af735e-7e8a-fb16-3ea8-2b269d8437b1@intel.com> In-Reply-To: <11af735e-7e8a-fb16-3ea8-2b269d8437b1@intel.com> Accept-Language: en-US, he-IL Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=matan@mellanox.com; x-originating-ip: [77.127.60.233] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM0PR0502MB3650; 6:4dXrV8ZKhrErbHm4U+RmVHidAYCWITtJTk2pvQmG+OWzv2b0LJruXu2H5C1Z999EmdmWK3GBGREuT5fCmtCpD7mquhMVh79gDEEUNwFL0DEZC+Sp9y837wHTFjBCE/TCyijkYvxjD5ygWKhcfzIiQqYx52Nun+/DYsDHEGPfSNrm6C+t96uXzeRXvv8tMh+O/6rTx4U1FRtB4sqtiNGQpgV1BHO5OVDztAa/qV4VCb5kqozrEVGlkSUbgn9EUuLJK+ZNNjJlbBLZXSOuWdi2n+KfXyqPJ8WVt1XRIM2/EhB9wxQkqU1+xlksx8MrWHYqfSBA4Y/+DChdudnfWbd0TH1apc0onJB7jc7CN5s65DCL9h9f6f25Pkp/bXJICS5yO0Xc2je6GiKU1E0jKlIa7IeysF0t5nFTuIPTsN+EcZEkFn9XQh7XHDnrSm3+9sDBKLpXe7ELCmMVvnaTEjcOig==; 5:Lz5Qoobv+lcyVBDPpQYoglkJAY97cwWYPeIpG+qVILN5NqYo2XA/Y+c2MXOKNqML52/wPAMOrce8Cgy31+vCkHdMEOTal80yxk09X4NKaRiGD8Bvtqkpu7G+So2tNfa23sUFvqANqfnCQVAm1x3oLQVB0Ux6MKOIMyfN1PeFJ5s=; 7:uZgnDYLpFsfcXxZ7dcV11J+HGC3vUPl+I3Gq9m8agfpvXQFItvLfjyF+zg43jigtUASaseGHUPKBzlphfdWFgrHHpEdLFoEWhnslsHdOWa4tXft0mbm3oMF0tGtcTNuDjYDjG8y0IpwTOwHuASL0WA== x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 6e4d848f-1516-42db-c51c-08d64603a8fd x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:AM0PR0502MB3650; x-ms-traffictypediagnostic: AM0PR0502MB3650: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(228905959029699); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(3231382)(944501410)(52105095)(10201501046)(6055026)(148016)(149066)(150057)(6041310)(20161123560045)(20161123562045)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699051)(76991095); SRVR:AM0PR0502MB3650; BCL:0; PCL:0; RULEID:; SRVR:AM0PR0502MB3650; x-forefront-prvs: 08512C5403 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(366004)(376002)(396003)(39860400002)(136003)(199004)(189003)(13464003)(51444003)(229853002)(9686003)(2906002)(4326008)(25786009)(33656002)(8676002)(71200400001)(55016002)(81166006)(81156014)(8936002)(6436002)(105586002)(7736002)(102836004)(86362001)(106356001)(575784001)(76176011)(110136005)(53546011)(97736004)(14454004)(26005)(54906003)(316002)(74316002)(305945005)(5660300001)(14444005)(478600001)(71190400001)(68736007)(93886005)(186003)(486006)(256004)(476003)(2900100001)(53936002)(66066001)(7416002)(6246003)(6506007)(3846002)(7696005)(446003)(11346002)(99286004)(6116002)(921003)(1121003); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR0502MB3650; H:AM0PR0502MB4019.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: NJoj2mSOfZT8HQJQBh29SLoO1yyY1MqxjxZHjA9W9BVBlN3B12FG69dnPezvPSMttwVB1n2mgJifZsRGKseB016jDjRV0MtskITHPeDUsm1uUf2ijZjyX709c5thkgr2sbxA+C/paigoepucGu06QfCz5zJR7f9NPul4bb8/06nl5noHAlv/51aNviClxbVGQnd73UOPK2aTKimebrV/w8v2GfyAx9eWenwcLCFW+vZpeRnE2Z3ydeQLW2Cr6jQd+aG+enUGsybuuGiXEy+DsbYQRX6CTqhv7unqCWUikA40xGgHfuSxTTJ8fN1D8W58AqjnHTjwziGSSw/hwgVS99uHUBEsPtG54MORQHgMoBU= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6e4d848f-1516-42db-c51c-08d64603a8fd X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Nov 2018 05:24:45.2492 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB3650 Subject: Re: [dpdk-dev] [PATCH 3/3] app/testpmd: fix callback issue for hot-unplug X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Nov 2018 05:24:46 -0000 DQoNCiBGcm9tOiBKZWZmIEd1byANCj4gT24gMTEvOC8yMDE4IDU6MzUgUE0sIE1hdGFuIEF6cmFk IHdyb3RlOg0KPiA+DQo+ID4gRnJvbTogSmVmZiBHdW8NCj4gPj4gT24gMTEvOC8yMDE4IDM6Mjgg UE0sIE1hdGFuIEF6cmFkIHdyb3RlOg0KPiA+Pj4gRnJvbTogQW5hbnlldiwgS29uc3RhbnRpbg0K PiA+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+PiBGcm9tOiBHdW8sIEpp YQ0KPiA+Pj4+PiBTZW50OiBXZWRuZXNkYXksIE5vdmVtYmVyIDcsIDIwMTggNzozMCBBTQ0KPiA+ Pj4+PiBUbzogTWF0YW4gQXpyYWQgPG1hdGFuQG1lbGxhbm94LmNvbT47IEFuYW55ZXYsIEtvbnN0 YW50aW4NCj4gPj4+Pj4gPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+OyBCdXJha292LCBB bmF0b2x5DQo+ID4+Pj4+IDxhbmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29tPjsgVGhvbWFzIE1vbmph bG9uDQo+ID4+Pj4gPHRob21hc0Btb25qYWxvbi5uZXQ+Ow0KPiA+Pj4+PiBJcmVtb25nZXIsIEJl cm5hcmQgPGJlcm5hcmQuaXJlbW9uZ2VyQGludGVsLmNvbT47IFd1LCBKaW5namluZw0KPiA+Pj4+ PiA8amluZ2ppbmcud3VAaW50ZWwuY29tPjsgTHUsIFdlbnpodW8gPHdlbnpodW8ubHVAaW50ZWwu Y29tPg0KPiA+Pj4+PiBDYzogWWlnaXQsIEZlcnJ1aCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT47 IGRldkBkcGRrLm9yZzsgWmhhbmcsDQo+ID4+Pj4+IEhlbGluIDxoZWxpbi56aGFuZ0BpbnRlbC5j b20+OyBIZSwgU2hhb3BlbmcNCj4gPj4gPHNoYW9wZW5nLmhlQGludGVsLmNvbT4NCj4gPj4+Pj4g U3ViamVjdDogUmU6IFtQQVRDSCAzLzNdIGFwcC90ZXN0cG1kOiBmaXggY2FsbGJhY2sgaXNzdWUg Zm9yDQo+ID4+Pj4+IGhvdC11bnBsdWcNCj4gPj4+Pj4NCj4gPj4+Pj4gbWF0YW4NCj4gPj4+Pj4N Cj4gPj4+Pj4gT24gMTEvNi8yMDE4IDI6MzYgUE0sIE1hdGFuIEF6cmFkIHdyb3RlOg0KPiA+Pj4+ Pj4gSGkgSmVmZg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+ICAgICBGcm9tOiBKZWZmIEd1byA8amlhLmd1 b0BpbnRlbC5jb20+DQo+ID4+Pj4+Pj4gQmVmb3JlIGRldGFjaCBkZXZpY2Ugd2hlbiBkZXZpY2Ug YmUgaG90LXVucGx1Z2dlZCwgdGhlIGZhaWx1cmUNCj4gPj4+Pj4+PiBwcm9jZXNzIGluIHVzZXIg c3BhY2UgYW5kIGtlcm5lbCBzcGFjZSBib3RoIG5lZWQgdG8gYmUgZmluaXNoZWQsDQo+ID4+Pj4+ Pj4gc3VjaCBhcyBlYWwgaW50ZXJydXB0IGNhbGxiYWNrIG5lZWQgdG8gYmUgaW5hY3RpdmUgYmVm b3JlIHRoZQ0KPiA+Pj4+Pj4+IGNhbGxiYWNrIGJlIHVucmVnaXN0ZXJlZCB3aGVuIGRldmljZSBp cyBiZWluZyBjbGVhbmVkLiBUaGlzDQo+ID4+Pj4+Pj4gcGF0Y2ggYWRkIHJ0ZSBhbGFybSBmb3Ig ZGV2aWNlIGRldGFjaGluZywgd2l0aCB0aGF0IGl0IGNvdWxkDQo+ID4+Pj4+Pj4gZmluaXNoIGlu dGVycnVwdCBjYWxsYmFjayBzb29uIGFuZCBnaXZlIHRpbWUgdG8gbGV0IHRoZSBmYWlsdXJlDQo+ ID4+Pj4+Pj4gcHJvY2VzcyBkb25lDQo+ID4+Pj4gYmVmb3JlIGRldGFjaGluZy4NCj4gPj4+Pj4+ PiBGaXhlczogMjA0OWM1MTEzZmU4ICgiYXBwL3Rlc3RwbWQ6IHVzZSBob3RwbHVnIGZhaWx1cmUg aGFuZGxlciIpDQo+ID4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogSmVmZiBHdW8gPGppYS5ndW9AaW50 ZWwuY29tPg0KPiA+Pj4+Pj4+IC0tLQ0KPiA+Pj4+Pj4+ICAgICBhcHAvdGVzdC1wbWQvdGVzdHBt ZC5jIHwgMTMgKysrKysrKysrKysrLQ0KPiA+Pj4+Pj4+ICAgICAxIGZpbGUgY2hhbmdlZCwgMTIg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gZGlmZiAt LWdpdCBhL2FwcC90ZXN0LXBtZC90ZXN0cG1kLmMgYi9hcHAvdGVzdC1wbWQvdGVzdHBtZC5jDQo+ ID4+Pj4+Pj4gaW5kZXggOWMwZWRjYS4uOWM2NzNjZiAxMDA2NDQNCj4gPj4+Pj4+PiAtLS0gYS9h cHAvdGVzdC1wbWQvdGVzdHBtZC5jDQo+ID4+Pj4+Pj4gKysrIGIvYXBwL3Rlc3QtcG1kL3Rlc3Rw bWQuYw0KPiA+Pj4+Pj4+IEBAIC0yNjIwLDcgKzI2MjAsMTggQEAgZXRoX2Rldl9ldmVudF9jYWxs YmFjayhjb25zdCBjaGFyDQo+ID4+Pj4+Pj4gKmRldmljZV9uYW1lLCBlbnVtIHJ0ZV9kZXZfZXZl bnRfdHlwZSB0eXBlLA0KPiA+Pj4+Pj4+ICAgICAJCQkJZGV2aWNlX25hbWUpOw0KPiA+Pj4+Pj4+ ICAgICAJCQlyZXR1cm47DQo+ID4+Pj4+Pj4gICAgIAkJfQ0KPiA+Pj4+Pj4+IC0JCXJtdl9ldmVu dF9jYWxsYmFjaygodm9pZCAqKShpbnRwdHJfdClwb3J0X2lkKTsNCj4gPj4+Pj4+PiArCQkvKg0K PiA+Pj4+Pj4+ICsJCSAqIEJlZm9yZSBkZXRhY2ggZGV2aWNlLCB0aGUgaG90LXVucGx1ZyBmYWls dXJlDQo+ID4+IHByb2Nlc3MgaW4NCj4gPj4+Pj4+PiArCQkgKiB1c2VyIHNwYWNlIGFuZCBrZXJu ZWwgc3BhY2UgYm90aCBuZWVkIHRvIGJlDQo+ID4+IGZpbmlzaGVkLA0KPiA+Pj4+Pj4+ICsJCSAq IHN1Y2ggYXMgZWFsIGludGVycnVwdCBjYWxsYmFjayBuZWVkIHRvIGJlIGluYWN0aXZlDQo+ID4+ IGJlZm9yZQ0KPiA+Pj4+Pj4+ICsJCSAqIHRoZSBjYWxsYmFjayBiZSB1bnJlZ2lzdGVyZWQgd2hl biBkZXZpY2UgaXMgYmVpbmcNCj4gPj4gY2xlYW5lZC4NCj4gPj4+Pj4+PiArCQkgKiBTbyBmaW5p c2hlZCBpbnRlcnJ1cHQgY2FsbGJhY2sgc29vbiBoZXJlIGFuZCBnaXZlDQo+ID4+IHRpbWUgdG8N Cj4gPj4+Pj4+PiArCQkgKiBsZXQgdGhlIHdvcmsgZG9uZSBiZWZvcmUgZGV0YWNoaW5nLg0KPiA+ Pj4+Pj4+ICsJCSAqLw0KPiA+Pj4+Pj4+ICsJCWlmIChydGVfZWFsX2FsYXJtX3NldCgxMDAwMDAs DQo+ID4+Pj4+Pj4gKwkJCQlybXZfZXZlbnRfY2FsbGJhY2ssICh2b2lkDQo+ID4+Pj4+Pj4gKiko aW50cHRyX3QpcG9ydF9pZCkpDQo+ID4+Pj4+Pj4gKwkJCVJURV9MT0coRVJSLCBFQUwsDQo+ID4+ Pj4+Pj4gKwkJCQkiQ291bGQgbm90IHNldCB1cCBkZWZlcnJlZCBkZXZpY2UNCj4gPj4+Pj4+IEl0 IGxvb2tzIG1lIHN0cmFuZ2UgdG8gdXNlIGNhbGxiYWNrIGFuZCBhbGFybSB0byByZW1vdmUgYSBk ZXZpY2U6DQo+ID4+Pj4+PiBXaHkgbm90IHRvIHVzZSBjYWxsYmFjayBhbmQgdGhhdCBpcyBpdD8N Cj4gPj4+Pj4+DQo+ID4+Pj4+PiBJIHRoaW5rIHRoYXQgaXQncyBiZXR0ZXIgdG8gbGV0IHRoZSBF QUwgdG8gZGV0YWNoIHRoZSBkZXZpY2UNCj4gPj4+Pj4+IGFmdGVyIGFsbCB0aGUNCj4gPj4+PiBj YWxsYmFja3Mgd2VyZSBkb25lIGFuZCBub3QgdG8gZG8gaXQgYnkgdGhlIHVzZXIgY2FsbGJhY2su DQo+ID4+Pj4+PiBTbyB0aGUgYXBwbGljYXRpb25cY2FsbGJhY2sgb3duZXJzIGp1c3QgbmVlZCB0 byBjbGVhbiBpdHMNCj4gPj4+Pj4+IHJlc291cmNlcyB3aXRoIHVuZGVyc3RhbmRpbmcgdGhhdCBh ZnRlciB0aGUgY2FsbGJhY2sgdGhlDQo+ID4+Pj4+PiBkZXZpY2UoYW5kIHRoZSBjYWxsYmFjaw0K PiA+Pj4+PiBpdHNlbGYpIHdpbGwgYmUgZGV0YWNoZWQgYnkgdGhlIEVBTC4NCj4gPj4+Pj4NCj4g Pj4+Pj4NCj4gPj4+Pj4gRmlyc3RseSwgYXQgdGhlIGN1cnJlbnRseSBmcmFtZXdvcmsgYW5kIHNv bHV0aW9uLCBzdWNoIGFzIGNhbGxiYWNrDQo+ID4+Pj4+IGZvciBSVEVfRVRIX0VWRU5UX0lOVFJf Uk1WLCBzdGlsbCBuZWVkIHRvIHVzZSB0aGUgZGVmZXJyZWQgZGV2aWNlDQo+ID4+Pj4gcmVtb3Zh bCwNCj4gPj4+Pj4gd2UgdGVuZCB0byBnaXZlIHRoZSBjb250cm9sIG9mIGRldGFjaGluZyBkZXZp Y2UgdG8gdGhlDQo+ID4+Pj4+IGFwcGxpY2F0aW9uLCBhbmQgdGhlIHdob2xlIHByb2Nlc3MgaXMg bG9jYXRlZCBvbiB0aGUgdXNlcidzDQo+ID4+Pj4+IGNhbGxiYWNrLiBOb3RpZnkgYXBwIHRvIGRl dGFjaCBkZXZpY2UgYnkgY2FsbGJhY2sgYnV0IG1ha2UgaXQgZGVmZXJyZWQsDQo+IGkgdGhpbmsg aXQgaXMgZmluZS4NCj4gPj4+IEJ1dCB0aGUgZGV2aWNlIG11c3QgYmUgZGV0YWNoZWQgaW4gcmVt b3ZlIGV2ZW50LCB3aHkgbm90IHRvIGRvIGl0IGluDQo+IEVBTD8NCj4gPj4NCj4gPj4gSSB0aGlu ayBpdCBiZWNhdXNlIG9mIGJlZm9yZSBkZXRhY2hlZCB0aGUgZGV2aWNlLCBhcHBsaWNhdGlvbiBz aG91bGQNCj4gPj4gYmUgc3RvcCB0aGUgZm9yd2FyZGluZyBhdCBmaXJzdCwgdGhlbiBzdG9wIHRo ZSBkZXZpY2UsIHRoZW4gY2xvc2UNCj4gPj4NCj4gPj4gdGhlIGRldmljZSwgZmluYWxseSBjYWxs IGVhbCB1bnBsdWcgQVBJIHRvIGRldGFjaCBkZXZpY2UuIElmIGVhbA0KPiA+PiBkaXJlY3RseSBk ZXRhY2ggZGV2aWNlIGF0IHRoZSBmaXJzdCBzdGVwLCB0aGVyZSB3aWxsIGJlIG1vdW50YWluIHVz ZXINCj4gPj4gc3BhY2UgZXJyb3IgbmVlZCB0byBoYW5kbGUsIHNvIHRoYXQgaXMgb25lIHJlYXNv biB3aHkgbmVlZCB0bw0KPiA+PiBwcm92aWRlciB0aGUgcmVtb3ZlIG5vdGlmaWNhdGlvbiB0byBh cHAsIGFuZCBsZXQgYXBwIHRvIHByb2Nlc3MgaXQuDQo+ID4NCj4gPiBUaGlzIGlzIHdoeSB0aGUg RUFMIG5lZWQgdG8gZGV0YWNoIHRoZSBkZXZpY2Ugb25seSBhZnRlciBhbGwgdGhlIHVzZXINCj4g Y2FsbGJhY2tzIHdlcmUgZG9uZS4NCj4gDQo+IA0KPiBJZiBpIGNvcnJlY3RseSBnb3QgeW91ciBt ZWFuaW5nLCB5b3Ugc3VwcG9zZSB0byBsZXQgZWFsIHRvIG1hbmRhdG9yeSBkZXRhY2gNCj4gZGV2 aWNlIGJ1dCBub3QgYXBwLCBhcHAganVzdCBuZWVkIHRvIHN0b3AvY2xvc2UgcG9ydCwgcmlnaHQ/ DQoNClllcywgdGhlIGFwcCBzaG91bGQgc3RvcCxjbG9zZSxjbGVhbiBpdHMgb3duIHJlc291cmNl cyBvZiB0aGUgcmVtb3ZlZCBkZXZpY2UsDQpUaGVuLCBFQUwgdG8gZGV0YWNoIHRoZSBkZXZpY2Uu DQoNCj4gDQo+IElmIHNvLCBpdCB3aWxsIG5lZWQgdG8gbW9kaWZ5IHJtdl9ldmVudF9jYWxsYmFj ayBieSBub3QgaW52b2tlIHRoZSBkZXRhY2hpbmcNCj4gZnVuYyBhbmQgYWRkIHNvbWUgZGV0YWNo aW5nIGxvZ2ljIHRvIGhvdHBsdWcgZnJhbWV3b3JrIGluIGVhbC4NCj4gDQpybXZfZXZlbnRfY2Fs bGJhY2sgaXMgdXNpbmcgYnkgb3RoZXIgaG90cGx1ZyBtZWNoYW5pc20gKEVUSERFViBSTVYgZXZl bnQpLCBzbyB5b3UgbmVlZCB0byB1c2UgYW5vdGhlciBvbmVcIGFkZCBwYXJhbWV0ZXIgdG8gaXQu DQpBbmQgeWVzLCB5b3UgbmVlZCB0byBkZXRhY2ggdGhlIGRldmljZSBmcm9tIEVBTCwgc2hvdWxk IGJlIHNpbXBsZS4NCg0KPiBJdCBpcyBoYXJkbHkgc2F5IGJldHRlciBvciB3b3JzZSBidXQgdGhp cyBuZXcgcHJvcG9zZSBuZWVkIHRvIGRpc2N1c3MgbW9yZSBpbg0KPiBwdWJsaWMuIEFuZCBpdCBt aWdodCBiZSBiZXR0ZXIgdG8gdXNlIGFub3RoZXIgc3BlY2lmaWMgcGF0Y2ggdG8gaGFuZGxlciBp dC4NCj4gV2hhdCBkbyB5b3Ugb3Igb3RoZXIgZ3V5cyB0aGluayBzbz8NCg0KU2luY2UgeW91IGFy ZSBmaXhpbmcgaXNzdWUgaGVyZSwgaXQgY2FuIGJlIGRvbmUgYnkgYSBmaXggc2VyaWVzLg0KDQpP dGhlciBmZWVkYmFja3MgYXJlIHdlbGNvbWUgYWxsIHRoZSB0aW1lIPCfmIoNCg0KPiANCj4gDQo+ ID4+DQo+ID4+Pj4gSXQgaXMgYWxzbyB1bmNsZWFyIHRvIG1lIG15IHdlIG5lZWQgYW4gYWxhcm0g aGVyZS4NCj4gPj4+PiBGaXJzdCAocHJvYmFibHkgd3JvbmcpIGltcHJlc3Npb24gd2UganVzdCB0 cnkgdG8gaGlkZSBzb21lDQo+ID4+Pj4gc3luY2hyb25pemF0aW9uIFByb2JsZW0gYnkgaW50cm9k dWNpbmcgZGVsYXkuDQo+ID4+PiBMb29rcyBsaWtlLCB0aGUgaXNzdWUgaXMgdGhhdCB0aGUgY2Fs bGJhY2sgZnVuY3Rpb24gbWVtb3J5IHdpbGwgYmUNCj4gPj4+IHJlbW92ZWQNCj4gPj4gZnJvbSB0 aGUgZnVuY3Rpb24gaXRzZWxmIChieSB0aGUgZGV0YWNoIGNhbGwpLCBubz8NCj4gPj4NCj4gPj4N Cj4gPj4gQW5zd2VyIGhlcmUgZm9yIGJvdGggS29uc3RhbnRpbiBhbmQgTWF0YW4uDQo+ID4+DQo+ ID4+IFllcywgaSB0aGluayBtYXRhbiBpcyByaWdodCwgdGhlIGludGVycnVwdCBjYWxsYmFjayB3 aWxsIGJlIGRlc3Ryb3kNCj4gPj4gaW4gdGhlIGFwcCBjYWxsYmFjayBpdHNlbGYsIHRoZSBzZXF1 ZW5jZSBpcyB0aGF0IGFzIGJlbG93DQo+ID4+DQo+ID4+IGhvdC11bnBsdWcgaW50ZXJydXB0IC0+ IGludGVycnVwdCBjYWxsYmFjayAtPiBhcHAgY2FsbGJhY2socmV0dXJuIHRvDQo+ID4+IGZpbmlz aCBpbnRlcnJ1cHQgY2FsbGJhY2ssIGRlbGF5IGRldGFjaGluZykgLT4gZGV0YWNoDQo+ID4+IGRl dmljZSh1bnJlZ2lzdGVyIGludGVycnVwdA0KPiA+PiBjYWxsYmFjaykNCj4gPj4NCj4gPj4NCj4g Pj4+PiBLb25zdGFudGluDQo+ID4+Pj4NCj4gPj4+Pj4gU2Vjb25kbHksIHRoZSB2ZmlvIGlzIGRp ZmZlcmVudCB3aXRoIGlnYl91aW8gZm9yIGhvdC11bnBsdWcsIGl0DQo+ID4+Pj4+IHJlZ2lzdGVy L3VucmVnaXN0ZXIgaG90cGx1ZyBpbnRlcnJ1cHQgY2FsbGJhY2sgZm9yIGVhY2ggZGV2aWNlLCBz bw0KPiA+Pj4+PiBuZWVkIHRvIG1ha2XCoCB0aGUgY2FsbGJhY2sgZG9uZSBiZWZvcmUgdW5yZWdp c3RlciB0aGUgY2FsbGJhY2suDQo+ID4+Pj4+DQo+ID4+Pj4+IFNvIEkgdGhpbmsgaXQgc2hvdWxk IGJlIGNvbnNpZGVyYXRlIGFzIGFuIHdvcmthcm91bmQgaGVyZSwgYmVmb3JlDQo+ID4+Pj4+IHdl IGZpbmQgYSBiZXR0ZXIgd2F5Lg0KPiA+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+Pj4+IHJlbW92YWxc biIpOw0KPiA+Pj4+Pj4+ICAgICAJCWJyZWFrOw0KPiA+Pj4+Pj4+ICAgICAJY2FzZSBSVEVfREVW X0VWRU5UX0FERDoNCj4gPj4+Pj4+PiAgICAgCQlSVEVfTE9HKEVSUiwgRUFMLCAiVGhlIGRldmlj ZTogJXMgaGFzIGJlZW4NCj4gPj4gYWRkZWQhXG4iLA0KPiA+Pj4+Pj4+IC0tDQo+ID4+Pj4+Pj4g Mi43LjQNCg==