From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <qi.z.zhang@intel.com>
Received: from mga18.intel.com (mga18.intel.com [134.134.136.126])
 by dpdk.org (Postfix) with ESMTP id CCAAB1BB20
 for <dev@dpdk.org>; Fri, 22 Jun 2018 08:50:02 +0200 (CEST)
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from fmsmga004.fm.intel.com ([10.253.24.48])
 by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 21 Jun 2018 23:50:00 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.51,255,1526367600"; d="scan'208";a="65365548"
Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201])
 by fmsmga004.fm.intel.com with ESMTP; 21 Jun 2018 23:50:00 -0700
Received: from fmsmsx123.amr.corp.intel.com (10.18.125.38) by
 FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS)
 id 14.3.319.2; Thu, 21 Jun 2018 23:50:00 -0700
Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by
 fmsmsx123.amr.corp.intel.com (10.18.125.38) with Microsoft SMTP Server (TLS)
 id 14.3.319.2; Thu, 21 Jun 2018 23:50:00 -0700
Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.51]) by
 SHSMSX101.ccr.corp.intel.com ([169.254.1.82]) with mapi id 14.03.0319.002;
 Fri, 22 Jun 2018 14:49:57 +0800
From: "Zhang, Qi Z" <qi.z.zhang@intel.com>
To: "Burakov, Anatoly" <anatoly.burakov@intel.com>, "thomas@monjalon.net"
 <thomas@monjalon.net>
CC: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>, "dev@dpdk.org"
 <dev@dpdk.org>, "Richardson, Bruce" <bruce.richardson@intel.com>, "Yigit,
 Ferruh" <ferruh.yigit@intel.com>, "Shelton, Benjamin H"
 <benjamin.h.shelton@intel.com>, "Vangati, Narender"
 <narender.vangati@intel.com>
Thread-Topic: [PATCH 22/22] examples/devmgm_mp: add simple device management
 sample
Thread-Index: AQHUBvAyXmRIyvxYF0Cx4z3UXggCAqRr2Mgw
Date: Fri, 22 Jun 2018 06:49:56 +0000
Message-ID: <039ED4275CED7440929022BC67E706115323B90F@SHSMSX103.ccr.corp.intel.com>
References: <20180607123849.14439-1-qi.z.zhang@intel.com>
 <20180607123849.14439-23-qi.z.zhang@intel.com>
 <181b45a2-93cc-5700-5f9e-2dfdf474e38c@intel.com>
In-Reply-To: <181b45a2-93cc-5700-5f9e-2dfdf474e38c@intel.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZmM5Y2FlZDctODFlZS00NjQ0LWE1YmQtYjQzMjFlZmVkNzllIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiOElpeDVLYkE0QWhPa29JSis5K0JCelwvNkt6YWU5OTlcL2IrY1J3UFhqS0NXZ2pHczZaYnBlMTdaNWttN3Nha2VwIn0=
x-ctpclassification: CTP_NT
dlp-product: dlpe-windows
dlp-version: 11.0.200.100
dlp-reaction: no-action
x-originating-ip: [10.239.127.40]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Subject: Re: [dpdk-dev] [PATCH 22/22] examples/devmgm_mp: add simple device
 management sample
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jun 2018 06:50:04 -0000

SGkgQW5hdG9seToNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBCdXJh
a292LCBBbmF0b2x5DQo+IFNlbnQ6IE1vbmRheSwgSnVuZSAxOCwgMjAxOCA2OjM2IFBNDQo+IFRv
OiBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0BpbnRlbC5jb20+OyB0aG9tYXNAbW9uamFsb24ubmV0
DQo+IENjOiBBbmFueWV2LCBLb25zdGFudGluIDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29t
PjsgZGV2QGRwZGsub3JnOw0KPiBSaWNoYXJkc29uLCBCcnVjZSA8YnJ1Y2UucmljaGFyZHNvbkBp
bnRlbC5jb20+OyBZaWdpdCwgRmVycnVoDQo+IDxmZXJydWgueWlnaXRAaW50ZWwuY29tPjsgU2hl
bHRvbiwgQmVuamFtaW4gSA0KPiA8YmVuamFtaW4uaC5zaGVsdG9uQGludGVsLmNvbT47IFZhbmdh
dGksIE5hcmVuZGVyDQo+IDxuYXJlbmRlci52YW5nYXRpQGludGVsLmNvbT4NCj4gU3ViamVjdDog
UmU6IFtQQVRDSCAyMi8yMl0gZXhhbXBsZXMvZGV2bWdtX21wOiBhZGQgc2ltcGxlIGRldmljZQ0K
PiBtYW5hZ2VtZW50IHNhbXBsZQ0KPiANCj4gT24gMDctSnVuLTE4IDE6MzggUE0sIFFpIFpoYW5n
IHdyb3RlOg0KPiA+IFRoZSBzYW1wbGUgY29kZSBkZW1vbnN0cmF0ZSBkZXZpY2UgKGV0aGRldiBv
bmx5KSBtYW5hZ2VtZW50IGF0DQo+ID4gbXVsdGktcHJvY2VzcyBlbnZyaW9ubWVudC4gVXNlciBj
YW4gYXR0YWNoL2RldGFjaCBhIGRldmljZSBvbiBwcmltYXJ5DQo+ID4gcHJvY2VzcyBhbmQgc2Vl
IGl0IGlzIHN5bmNlZCBvbiBzZWNvbmRhcnkgcHJvY2VzcyBhdXRvbWF0aWNhbGx5LCBhbHNvDQo+
ID4gdXNlciBjYW4gbG9jayBhIGRldmljZSB0byBwcmV2ZW50IGl0IGJlIGRldGFjaGVkIG9yIHVu
bG9jayBpdCB0byBnbw0KPiA+IGJhY2sgdG8gZGVmYXVsdCBiZWhhdmlvdXIuDQo+ID4NCj4gPiBI
b3cgdG8gc3RhcnQ/DQo+ID4gLi9kZXZtZ21fbXAgLS1wcm9jLXR5cGU9YXV0bw0KPiA+DQo+ID4g
Q29tbWFuZCBMaW5lIEV4YW1wbGU6DQo+ID4NCj4gPj4gaGVscA0KPiA+PiBsaXN0DQo+ID4NCj4g
PiAvKiBhdHRhY2ggYSBhZl9wYWNrZXQgdmRldiAqLw0KPiA+PiBhdHRhY2ggbmV0X2FmX3BhY2tl
dCxpZmFjZT1ldGgwDQo+ID4NCj4gPiAvKiBkZXRhY2ggcG9ydCAwICovDQo+ID4+IGRldGFjaCAw
DQo+ID4NCj4gPiAvKiBhdHRhY2ggYSBwcml2YXRlIGFmX3BhY2tldCB2ZGV2IChzZWNvbmRhcnkg
cHJvY2VzcyBvbmx5KSovDQo+ID4+IGF0dGFjaHAgbmV0X2FmX3BhY2tldCxpZmFjZT1ldGgwDQo+
ID4NCj4gPiAvKiBkZXRhY2ggYSBwcml2YXRlIGRldmljZSAoc2Vjb25kYXJ5IHByb2Nlc3Mgb25s
eSkgKi8NCj4gPj4gZGV0YWNocCAwDQo+ID4NCj4gPiAvKiBsb2NrIHBvcnQgMCAqLw0KPiA+PiBs
b2NrIDANCj4gPg0KPiA+IC8qIHVubG9jayBwb3J0IDAgKi8NCj4gPj4gdW5sb2NrIDANCj4gPg0K
PiA+IFNpZ25lZC1vZmYtYnk6IFFpIFpoYW5nIDxxaS56LnpoYW5nQGludGVsLmNvbT4NCj4gPiAt
LS0NCj4gDQo+IEkgdGhpbmsgdGhlICJkZXZtZ21fbXAiIGlzIG5vdCBhIGRlc2NyaXB0aXZlIGVu
b3VnaCBuYW1lLiBXaGF0IHRoaXMNCj4gZXhhbXBsZSBkZW1vbnN0cmF0ZXMsIGlzIGRldmljZSBo
b3RwbHVnLiBTbyBob3cgYWJvdXQgbmFtaW5nIHRoZSBleGFtcGxlDQo+IGFwcCAiaG90cGx1ZyI/
IChvciAibXBfaG90cGx1ZyIgdG8gaW5kaWNhdGUgdGhhdCBpdCBzcGVjaWZpY2FsbHkgc2V0cyBv
dXQgdG8NCj4gZGVtb25zdHJhdGUgbXVsdGlwcm9jZXNzIGhvdHBsdWcpDQoNCg0KT2ssIEkgc2F3
IGFsbCB0aGUgbXVsdGktcHJvY2VzcyBzYW1wbGVzIGFyZSBpbiBleGFtcGxlcy9tdWx0aV9wcm9j
ZXNzLCBzbyBJIHRoaW5rIHRoaXMgdGhlIHJpZ2h0IHBsYWNlIHRvIGFkZA0KaXQgY291bGQgYmUg
ImhvdHBsdWdfbXAiIHRvIGZvbGxvdyBvdGhlciBzYW1wbGVzIG5hbWluZyBydWxlLg0KPiANCj4g
PiAgIGV4YW1wbGVzL2Rldm1nbV9tcC9NYWtlZmlsZSAgICB8ICA2NCArKysrKysrDQo+ID4gICBl
eGFtcGxlcy9kZXZtZ21fbXAvY29tbWFuZHMuYyAgfCAzODMNCj4gKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysNCj4gPiAgIGV4YW1wbGVzL2Rldm1nbV9tcC9jb21tYW5k
cy5oICB8ICAxMCArKw0KPiA+ICAgZXhhbXBsZXMvZGV2bWdtX21wL21haW4uYyAgICAgIHwgIDQx
ICsrKysrDQo+ID4gICBleGFtcGxlcy9kZXZtZ21fbXAvbWVzb24uYnVpbGQgfCAgMTEgKysNCj4g
PiAgIDUgZmlsZXMgY2hhbmdlZCwgNTA5IGluc2VydGlvbnMoKykNCj4gPiAgIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBleGFtcGxlcy9kZXZtZ21fbXAvTWFrZWZpbGUNCj4gPiAgIGNyZWF0ZSBtb2RlIDEw
MDY0NCBleGFtcGxlcy9kZXZtZ21fbXAvY29tbWFuZHMuYw0KPiA+ICAgY3JlYXRlIG1vZGUgMTAw
NjQ0IGV4YW1wbGVzL2Rldm1nbV9tcC9jb21tYW5kcy5oDQo+ID4gICBjcmVhdGUgbW9kZSAxMDA2
NDQgZXhhbXBsZXMvZGV2bWdtX21wL21haW4uYw0KPiA+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGV4
YW1wbGVzL2Rldm1nbV9tcC9tZXNvbi5idWlsZA0KPiA+DQo+IA0KPiA8c25pcD4NCj4gDQo+ID4g
KyNpbmNsdWRlIDxzdGRpby5oPg0KPiA+ICsjaW5jbHVkZSA8c3RkaW50Lmg+DQo+ID4gKyNpbmNs
dWRlIDxzdHJpbmcuaD4NCj4gPiArI2luY2x1ZGUgPHN0ZGxpYi5oPg0KPiA+ICsjaW5jbHVkZSA8
c3RkYXJnLmg+DQo+ID4gKyNpbmNsdWRlIDxlcnJuby5oPg0KPiA+ICsjaW5jbHVkZSA8bmV0aW5l
dC9pbi5oPg0KPiA+ICsjaW5jbHVkZSA8dGVybWlvcy5oPg0KPiA+ICsjaWZuZGVmIF9fbGludXhf
Xw0KPiA+ICsJI2lmZGVmIF9fRnJlZUJTRF9fDQo+ID4gKwkJI2luY2x1ZGUgPHN5cy9zb2NrZXQu
aD4NCj4gPiArCSNlbHNlDQo+ID4gKwkJI2luY2x1ZGUgPG5ldC9zb2NrZXQuaD4NCj4gPiArCSNl
bmRpZg0KPiA+ICsjZW5kaWYNCj4gDQo+IFRoaXMgc2VlbXMgbGlrZSBhIHdlaXJkIGRlZmluZS4g
Q2FyZSB0byBlbGFib3JhdGUgd2h5IGFyZSB3ZSBjaGVja2luZyBmb3INCj4gX19saW51eF9fIG5v
dCBiZWluZyBkZWZpbmVkPw0KDQpPSywgdGhpcyBpcyBjb3B5IGZyb20gZXhpc3Qgc2FtcGxlIGNv
ZGUgOiksIEkgd2lsbCBjbGVhbiB1cCB0aGUgaGVhZGVyIGZpbGUgaW4gdjMuDQoNCj4gDQo+IElm
IHlvdSdyZSB0cnlpbmcgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIExpbnV4IGFuZCBGcmVlQlNE
LCB0aGVyZSdzIGEgcmVhZGx5DQo+IFJURV9FWEVDX0VOVl8qIGNvbmZpZyBvcHRpb25zLCBlLmcu
DQo+IA0KPiAjaWZkZWYgUlRFX0VYRUNfRU5WX0xJTlVYQVBQDQo+IC8vIGxpbnV4IGRlZmluZXMN
Cj4gI2VuZGlmDQo+ICNpZmRlZiBSVEVfRVhFQ19FTlZfQlNEQVBQDQo+IC8vIGJzZCBkZWZpbmVz
DQo+ICNlbmRpZg0KPiANCj4gb3Igc29tZXRoaW5nIHRvIHRoYXQgZWZmZWN0Lg0KPiANCj4gPiAr
DQo+ID4gKyNpbmNsdWRlIDxjbWRsaW5lX3JkbGluZS5oPg0KPiA+ICsjaW5jbHVkZSA8Y21kbGlu
ZV9wYXJzZS5oPg0KPiA+ICsjaW5jbHVkZSA8Y21kbGluZV9wYXJzZV9pcGFkZHIuaD4NCj4gPiAr
I2luY2x1ZGUgPGNtZGxpbmVfcGFyc2VfbnVtLmg+DQo+ID4gKyNpbmNsdWRlIDxjbWRsaW5lX3Bh
cnNlX3N0cmluZy5oPg0KPiA+ICsjaW5jbHVkZSA8Y21kbGluZS5oPg0KPiA+ICsjaW5jbHVkZSA8
cnRlX2V0aGRldi5oPg0KPiANCj4gR2VuZXJhbGx5IChhbmQgYXMgcGVyIERQREsgY29kaW5nIGd1
aWRlbGluZXMpLCB3ZSBwcmVmZXIgZGVmaW5lcyBvcmRlcmVkIGFzDQo+IGZvbGxvd3M6DQo+IA0K
PiAxKSBzeXN0ZW0gZGVmaW5lcyBlbmNsb3NlZCBpbiBicmFja2V0cw0KPiAyKSBEUERLIGRlZmlu
ZXMgKHJ0ZV9ibGFoKSBlbmNsb3NlZCBpbiBicmFja2V0cw0KPiAzKSBwcml2YXRlL2FwcGxpY2F0
aW9uLXNwZWNpZmljIGRlZmluZXMgZW5jbG9zZWQgaW4gcXVvdGVzLg0KPiANCj4gQWxsIHRocmVl
IGdyb3VwcyBzaG91bGQgYmUgc2VwYXJhdGVkIGJ5IG5ld2xpbmUuDQo+IA0KPiBTbywgdGhlc2Ug
ZGVmaW5lcyBzaG91bGQndmUgcmVhZCBhczoNCj4gDQo+ICNpbmNsdWRlIDxzdGRibGFoLmg+DQo+
ICNpbmNsdWRlIDxzeXMvYmxhaC5oPg0KPiANCj4gI2luY2x1ZGUgPHJ0ZV9ibGFoLmg+DQo+ICNp
bmNsdWRlIDxydGVfZm9vLmg+DQo+IA0KPiAjaW5jbHVkZSAiY21kbGluZV9ibGFoLmgiDQo+ICNp
bmNsdWRlICJjbWRsaW5lX2Zvby5oIg0KDQpHb3QgaXQsIHRoYW5rcw0KDQo+IA0KPiA+ICsNCj4g
PiArLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKiovDQo+ID4gKw0KPiA+ICtzdHJ1Y3QgY21kX2hlbHBfcmVzdWx0IHsNCj4gPiArCWNtZGxp
bmVfZml4ZWRfc3RyaW5nX3QgaGVscDsNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lk
IGNtZF9oZWxwX3BhcnNlZChfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSB2b2lkDQo+ID4gKypwYXJz
ZWRfcmVzdWx0LA0KPiANCj4gPHNuaXA+DQo+IA0KPiA+ICt7DQo+ID4gKwl1aW50MTZfdCBwb3J0
X2lkOw0KPiA+ICsJY2hhciBkZXZfbmFtZVtSVEVfREVWX05BTUVfTUFYX0xFTl07DQo+ID4gKw0K
PiA+ICsJY21kbGluZV9wcmludGYoY2wsICJsaXN0IGFsbCBldGhlcmRldlxuIik7DQo+ID4gKw0K
PiA+ICsJUlRFX0VUSF9GT1JFQUNIX0RFVihwb3J0X2lkKSB7DQo+ID4gKwkJcnRlX2V0aF9kZXZf
Z2V0X25hbWVfYnlfcG9ydChwb3J0X2lkLCBkZXZfbmFtZSk7DQo+ID4gKwkJLyogU2Vjb25kYXJ5
IHByb2Nlc3MncyBldGhkZXYtPnN0YXRlIG1heSBub3QgYmUNCj4gPiArCQkgKiB1cGRhdGVkIGFm
dGVyIGRldGFjaCBvbiBwcmltYXJ5IHByb2Nlc3MsICBidXQNCj4gPiArCQkgKiBldGhkZXYtPmRh
dGEgc2hvdWxkIGFscmVhZHkgYmUgcmVzZXQsIHNvDQo+ID4gKwkJICogdXNlIHN0cmxlbihkZXZf
bmFtZSkgPT0gMCB0byBrbm93IHRoZSBwb3J0IGlzDQo+ID4gKwkJICogbm90IHVzZWQuDQo+ID4g
KwkJICoNCj4gPiArCQkgKiBUT0RPOiBTZWNvbmRhcnkgcHJvY2VzcyBzaG91bGQgYmUgaW5mb3Jt
ZWQgd2hlbiBhDQo+ID4gKwkJICogcG9ydCBpcyByZWxlYXNlZCBvbiBwcmltYXJ5IHRocm91Z2gg
bXAgY2hhbm5lbC4NCj4gPiArCQkgKi8NCj4gDQo+IFRoYXQgc2VlbXMgbGlrZSBhIHdlaXJkIHRo
aW5nIHRvIGxlYXZlIG91dCBmb3IgVE9ETyAtIGl0IGxvb2tzIGxpa2UgYW4gQVBJDQo+IGRlZmlj
aWVuY3kuIENhbiB0aGlzIGJlIGF1dG9tYXRpY2FsbHkgdXBkYXRlZCBvbiBtdWx0aXByb2Nlc3Mg
aG90cGx1ZyBzeW5jLCBvcg0KPiBzb21laG93IG1hbmFnZWQgaW5zaWRlIFJURV9FVEhfRk9SRUFD
SF9ERVY/DQo+IA0KPiBBcyBpIHVuZGVyc3RhbmQsIHBlci1wcm9jZXNzIGV0aGRldiBsaXN0IGlz
IG5vdCBwcm90ZWN0ZWQgYnkgYW55IGxvY2tzLCBzbyBkb2luZw0KPiB0aGlzIGlzIHJhY3kuIFNp
bmNlIHRoaXMgaXMgYSBtdWx0aXByb2Nlc3MgaG90cGx1ZyBleGFtcGxlIGFwcCwgaXQgc2hvdWxk
DQo+IGRlbW9uc3RyYXRlIGJlc3QgcHJhY3RpY2VzLiBTbywgZWl0aGVyIFJURV9FVEhfRk9SRUFD
SF9ERVYgc2hvdWxkIGJlDQo+IGZpeGVkIHRvIGhhbmRsZSB0aGlzIGNhc2UsIG9yIHRoZSBhcHBs
aWNhdGlvbiBzaG91bGQgZGVtb25zdHJhdGUgaG93IHRvDQo+IHByb3Blcmx5IHN5bmNocm9uaXpl
IGFjY2VzcyB0byBsb2NhbCBkZXZpY2UgbGlzdC4gVGhlIGxhdHRlciBpcyBwcm9iYWJseSBiZXR0
ZXIgYXMNCj4gYWRkaW5nIGxvY2tpbmcgYXJvdW5kIGV0aGRldiBkZXZpY2UgbGlzdCBpcyBvdXRz
aWRlIHRoZSBzY29wZSBvZiB0aGlzIHBhdGNoc2V0Lg0KDQpBbGwgdGhpcyBjb21tZW50IHNob3Vs
ZCBiZSByZW1vdmVkIHNpbmNlIFRPRE8gYWxyZWFkeSBkb25lIDopDQpBY3R1YWxseSwgd2UgZ3Vh
cmFudGVlIGRldmljZSBiZSBkZXRhY2hlZCBmcm9tIHNlY29uZGFyeSBiZWZvcmUgcHJpbWFyeS4N
Cg0KPiANCj4gPiArCQlpZiAoc3RybGVuKGRldl9uYW1lKSA+IDApDQo+ID4gKwkJCWNtZGxpbmVf
cHJpbnRmKGNsLCAiJWRcdCVzXG4iLCBwb3J0X2lkLCBkZXZfbmFtZSk7DQo+ID4gKwkJZWxzZQ0K
PiA+ICsJCQlwcmludGYoImVtcHR5IGRldl9uYW1lIGlzIG5vdCBleHBlY3RlZCFcbiIpOw0KPiA+
ICsJfQ0KPiANCj4gPHNuaXA+DQo+IA0KPiA+ICsjaW5jbHVkZSAiY29tbWFuZHMuaCINCj4gPiAr
DQo+ID4gK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikNCj4gPiArew0KPiA+ICsJaW50
IHJldDsNCj4gPiArCXN0cnVjdCBjbWRsaW5lICpjbDsNCj4gPiArDQo+ID4gKwlyZXQgPSBydGVf
ZWFsX2luaXQoYXJnYywgYXJndik7DQo+ID4gKwlpZiAocmV0IDwgMCkNCj4gPiArCQlydGVfcGFu
aWMoIkNhbm5vdCBpbml0IEVBTFxuIik7DQo+ID4gKw0KPiA+ICsJY2wgPSBjbWRsaW5lX3N0ZGlu
X25ldyhtYWluX2N0eCwgImV4YW1wbGU+ICIpOw0KPiA+ICsJaWYgKGNsID09IE5VTEwpDQo+ID4g
KwkJcnRlX3BhbmljKCJDYW5ub3QgY3JlYXRlIGNtZGxpbmUgaW5zdGFuY2VcbiIpOw0KPiA+ICsJ
Y21kbGluZV9pbnRlcmFjdChjbCk7DQo+ID4gKwljbWRsaW5lX3N0ZGluX2V4aXQoY2wpOw0KPiA+
ICsNCj4gPiArCXJldHVybiAwOw0KPiANCj4gQXBwbGljYXRpb24gc2hvdWxkIGNhbGwgcnRlX2Vh
bF9jbGVhbnVwKCkgYmVmb3JlIGV4aXQuIE90aGVyd2lzZSwgZWFjaA0KPiBzZWNvbmRhcnkgc3Rh
cnRlZCBhbmQgc3RvcHBlZCB3aWxsIGxlYWsgbWVtb3J5Lg0KDQpPSywgd2lsbCBhZGQgaXQuDQoN
ClRoYW5rcw0KUWkNCg0KPiANCj4gLS0NCj4gVGhhbmtzLA0KPiBBbmF0b2x5DQo=