From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: [PATCH v2 REPOST 05/12] tools/libxenctrl: use new xenforeignmemory API to seed grant table Date: Thu, 24 Aug 2017 16:09:35 +0000 Message-ID: References: <20170822145107.6877-1-paul.durrant@citrix.com> <20170822145107.6877-6-paul.durrant@citrix.com> <20170824160258.xa65r777jnuacc4l@dhcp-3-128.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dkuji-00078P-O5 for xen-devel@lists.xenproject.org; Thu, 24 Aug 2017 16:12:02 +0000 In-Reply-To: <20170824160258.xa65r777jnuacc4l@dhcp-3-128.uk.xensource.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Roger Pau Monne Cc: "xen-devel@lists.xenproject.org" , Wei Liu , Ian Jackson List-Id: xen-devel@lists.xenproject.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IFJvZ2VyIFBhdSBNb25uZQo+IFNl bnQ6IDI0IEF1Z3VzdCAyMDE3IDE3OjAzCj4gVG86IFBhdWwgRHVycmFudCA8UGF1bC5EdXJyYW50 QGNpdHJpeC5jb20+Cj4gQ2M6IHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzsgV2VpIExp dSA8d2VpLmxpdTJAY2l0cml4LmNvbT47IElhbgo+IEphY2tzb24gPElhbi5KYWNrc29uQGNpdHJp eC5jb20+Cj4gU3ViamVjdDogUmU6IFtYZW4tZGV2ZWxdIFtQQVRDSCB2MiBSRVBPU1QgMDUvMTJd IHRvb2xzL2xpYnhlbmN0cmw6IHVzZSBuZXcKPiB4ZW5mb3JlaWdubWVtb3J5IEFQSSB0byBzZWVk IGdyYW50IHRhYmxlCj4gCj4gT24gVHVlLCBBdWcgMjIsIDIwMTcgYXQgMDM6NTA6NTlQTSArMDEw MCwgUGF1bCBEdXJyYW50IHdyb3RlOgo+ID4gQSBwcmV2aW91cyBwYXRjaCBhZGRlZCBzdXBwb3J0 IGZvciBwcml2LW1hcHBpbmcgZ3Vlc3QgcmVzb3VyY2VzIGRpcmVjdGx5Cj4gPiAocmF0aGVyIHRo YW4gaGF2aW5nIHRvIGZvcmVpZ24tbWFwLCB3aGljaCByZXF1aXJlcyBQMk0gbW9kaWZpY2F0aW9u IGZvcgo+ID4gSFZNIGd1ZXN0cykuCj4gPgo+ID4gVGhpcyBwYXRjaCBtYWtlcyB1c2Ugb2YgdGhl IG5ldyBBUEkgdG8gc2VlZCB0aGUgZ3Vlc3QgZ3JhbnQgdGFibGUgdW5sZXNzCj4gPiB0aGUgdW5k ZXJseWluZyBpbmZyYXN0cnVjdHVyZSAoaS5lLiBwcml2Y21kKSBkb2Vzbid0IHN1cHBvcnQgaXQs IGluIHdoaWNoCj4gPiBjYXNlIHRoZSBvbGQgc2NoZW1lIGlzIHVzZWQuCj4gPgo+ID4gTk9URTog VGhlIGNhbGwgdG8geGNfZG9tX2dudHRhYl9odm1fc2VlZCgpIGluIGh2bV9idWlsZF9zZXRfcGFy YW1zKCkKPiB3YXMKPiA+ICAgICAgIGFjdHVhbGx5IHVubmVjZXNzYXJ5LCBhcyB0aGUgZ3JhbnQg dGFibGUgaGFzIGFscmVhZHkgYmVlbiBzZWVkZWQKPiA+ICAgICAgIGJ5IGEgcHJpb3IgY2FsbCB0 byB4Y19kb21fZ250dGFiX2luaXQoKSBtYWRlIGJ5IGxpYnhsX19idWlsZF9kb20oKS4KPiA+Cj4g PiBTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgo+ ID4gQWNrZWQtYnk6IE1hcmVrIE1hcmN6eWtvd3NraS1Hw7NyZWNraQo+IDxtYXJtYXJla0BpbnZp c2libGV0aGluZ3NsYWIuY29tPgo+ID4gLS0tCj4gPiBDYzogSWFuIEphY2tzb24gPGlhbi5qYWNr c29uQGV1LmNpdHJpeC5jb20+Cj4gPiBDYzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4K PiA+IC0tLQo+ID4gIHRvb2xzL2xpYnhjL2luY2x1ZGUveGNfZG9tLmggICAgICAgIHwgICA4ICst LQo+ID4gIHRvb2xzL2xpYnhjL3hjX2RvbV9ib290LmMgICAgICAgICAgIHwgMTAyCj4gKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCj4gPiAgdG9vbHMvbGlieGMveGNfc3JfcmVz dG9yZV94ODZfaHZtLmMgfCAgMTAgKystLQo+ID4gIHRvb2xzL2xpYnhjL3hjX3NyX3Jlc3RvcmVf eDg2X3B2LmMgIHwgICAyICstCj4gPiAgdG9vbHMvbGlieGwvbGlieGxfZG9tLmMgICAgICAgICAg ICAgfCAgIDEgLQo+ID4gIHRvb2xzL3B5dGhvbi94ZW4vbG93bGV2ZWwveGMveGMuYyAgIHwgICA2 ICstLQo+ID4gIDYgZmlsZXMgY2hhbmdlZCwgOTIgaW5zZXJ0aW9ucygrKSwgMzcgZGVsZXRpb25z KC0pCj4gPgo+ID4gZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGNfZG9tLmggYi90 b29scy9saWJ4Yy9pbmNsdWRlL3hjX2RvbS5oCj4gPiBpbmRleCBjZTQ3MDU4YzQxLi5kNmNhMGE4 NjgwIDEwMDY0NAo+ID4gLS0tIGEvdG9vbHMvbGlieGMvaW5jbHVkZS94Y19kb20uaAo+ID4gKysr IGIvdG9vbHMvbGlieGMvaW5jbHVkZS94Y19kb20uaAo+ID4gQEAgLTMyMywxMiArMzIzLDggQEAg dm9pZCAqeGNfZG9tX2Jvb3RfZG9tVV9tYXAoc3RydWN0Cj4geGNfZG9tX2ltYWdlICpkb20sIHhl bl9wZm5fdCBwZm4sCj4gPiAgaW50IHhjX2RvbV9ib290X2ltYWdlKHN0cnVjdCB4Y19kb21faW1h Z2UgKmRvbSk7Cj4gPiAgaW50IHhjX2RvbV9jb21wYXRfY2hlY2soc3RydWN0IHhjX2RvbV9pbWFn ZSAqZG9tKTsKPiA+ICBpbnQgeGNfZG9tX2dudHRhYl9pbml0KHN0cnVjdCB4Y19kb21faW1hZ2Ug KmRvbSk7Cj4gPiAtaW50IHhjX2RvbV9nbnR0YWJfaHZtX3NlZWQoeGNfaW50ZXJmYWNlICp4Y2gs IGRvbWlkX3QgZG9taWQsCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90 IGNvbnNvbGVfZ21mbiwKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5fcGZuX3Qg eGVuc3RvcmVfZ21mbiwKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICBkb21pZF90IGNv bnNvbGVfZG9taWQsCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9taWRfdCB4ZW5z dG9yZV9kb21pZCk7Cj4gPiAtaW50IHhjX2RvbV9nbnR0YWJfc2VlZCh4Y19pbnRlcmZhY2UgKnhj aCwgZG9taWRfdCBkb21pZCwKPiA+ICtpbnQgeGNfZG9tX2dudHRhYl9zZWVkKHhjX2ludGVyZmFj ZSAqeGNoLCBkb21pZF90IGd1ZXN0X2RvbWlkLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg Ym9vbCBpc19odm0sCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5fcGZuX3QgY29uc29s ZV9nbWZuLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90IHhlbnN0b3JlX2dt Zm4sCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBkb21pZF90IGNvbnNvbGVfZG9taWQsCj4g PiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfZG9tX2Jvb3QuYyBiL3Rvb2xzL2xpYnhjL3hj X2RvbV9ib290LmMKPiA+IGluZGV4IGMzYjQ0ZGQzOTkuLmZjMzE3NGFkN2UgMTAwNjQ0Cj4gPiAt LS0gYS90b29scy9saWJ4Yy94Y19kb21fYm9vdC5jCj4gPiArKysgYi90b29scy9saWJ4Yy94Y19k b21fYm9vdC5jCj4gPiBAQCAtMjgwLDExICsyODAsMTEgQEAgc3RhdGljIHhlbl9wZm5fdAo+IHhj X2RvbV9nbnR0YWJfc2V0dXAoeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9taWQpCj4gPiAg ICAgIHJldHVybiBnbWZuOwo+ID4gIH0KPiA+Cj4gPiAtaW50IHhjX2RvbV9nbnR0YWJfc2VlZCh4 Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb21pZCwKPiA+IC0gICAgICAgICAgICAgICAgICAg ICAgIHhlbl9wZm5fdCBjb25zb2xlX2dtZm4sCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICB4 ZW5fcGZuX3QgeGVuc3RvcmVfZ21mbiwKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIGRvbWlk X3QgY29uc29sZV9kb21pZCwKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIGRvbWlkX3QgeGVu c3RvcmVfZG9taWQpCj4gPiArc3RhdGljIGludCBjb21wYXRfZ250dGFiX3NlZWQoeGNfaW50ZXJm YWNlICp4Y2gsIGRvbWlkX3QgZG9taWQsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgeGVuX3Bmbl90IGNvbnNvbGVfZ21mbiwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB4ZW5fcGZuX3QgeGVuc3RvcmVfZ21mbiwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkb21pZF90IGNvbnNvbGVfZG9taWQsCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZG9taWRfdCB4ZW5zdG9yZV9kb21pZCkKPiA+ICB7Cj4gPgo+ID4gICAgICB4ZW5f cGZuX3QgZ250dGFiX2dtZm47Cj4gPiBAQCAtMzM3LDExICszMzcsMTEgQEAgaW50IHhjX2RvbV9n bnR0YWJfc2VlZCh4Y19pbnRlcmZhY2UgKnhjaCwKPiBkb21pZF90IGRvbWlkLAo+ID4gICAgICBy ZXR1cm4gMDsKPiA+ICB9Cj4gPgo+ID4gLWludCB4Y19kb21fZ250dGFiX2h2bV9zZWVkKHhjX2lu dGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbWlkLAo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgIHhlbl9wZm5fdCBjb25zb2xlX2dwZm4sCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgeGVuX3Bmbl90IHhlbnN0b3JlX2dwZm4sCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgZG9taWRfdCBjb25zb2xlX2RvbWlkLAo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg IGRvbWlkX3QgeGVuc3RvcmVfZG9taWQpCj4gPiArc3RhdGljIGludCBjb21wYXRfZ250dGFiX2h2 bV9zZWVkKHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbWlkLAo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB4ZW5fcGZuX3QgY29uc29sZV9ncGZuLAo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5fcGZuX3QgeGVuc3RvcmVfZ3BmbiwKPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9taWRfdCBjb25zb2xlX2RvbWlk LAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21pZF90IHhlbnN0b3Jl X2RvbWlkKQo+ID4gIHsKPiA+ICAgICAgaW50IHJjOwo+ID4gICAgICB4ZW5fcGZuX3Qgc2NyYXRj aF9ncGZuOwo+ID4gQEAgLTM4MCw3ICszODAsNyBAQCBpbnQgeGNfZG9tX2dudHRhYl9odm1fc2Vl ZCh4Y19pbnRlcmZhY2UgKnhjaCwKPiBkb21pZF90IGRvbWlkLAo+ID4gICAgICAgICAgcmV0dXJu IC0xOwo+ID4gICAgICB9Cj4gPgo+ID4gLSAgICByYyA9IHhjX2RvbV9nbnR0YWJfc2VlZCh4Y2gs IGRvbWlkLAo+ID4gKyAgICByYyA9IGNvbXBhdF9nbnR0YWJfc2VlZCh4Y2gsIGRvbWlkLAo+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlX2dwZm4sIHhlbnN0b3JlX2dwZm4s Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVfZG9taWQsIHhlbnN0b3Jl X2RvbWlkKTsKPiA+ICAgICAgaWYgKHJjICE9IDApCj4gPiBAQCAtNDA1LDE4ICs0MDUsNzggQEAg aW50IHhjX2RvbV9nbnR0YWJfaHZtX3NlZWQoeGNfaW50ZXJmYWNlCj4gKnhjaCwgZG9taWRfdCBk b21pZCwKPiA+ICAgICAgcmV0dXJuIDA7Cj4gPiAgfQo+ID4KPiA+IC1pbnQgeGNfZG9tX2dudHRh Yl9pbml0KHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKPiA+ICtpbnQgeGNfZG9tX2dudHRhYl9z ZWVkKHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGd1ZXN0X2RvbWlkLAo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgYm9vbCBpc19odm0sIHhlbl9wZm5fdCBjb25zb2xlX2dtZm4sCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICB4ZW5fcGZuX3QgeGVuc3RvcmVfZ21mbiwgZG9taWRfdCBj b25zb2xlX2RvbWlkLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZG9taWRfdCB4ZW5zdG9y ZV9kb21pZCkKPiA+ICB7Cj4gPiAtICAgIGlmICggeGNfZG9tX3RyYW5zbGF0ZWQoZG9tKSApIHsK PiA+IC0gICAgICAgIHJldHVybiB4Y19kb21fZ250dGFiX2h2bV9zZWVkKGRvbS0+eGNoLCBkb20t Pmd1ZXN0X2RvbWlkLAo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZG9tLT5jb25zb2xlX3BmbiwgZG9tLT54ZW5zdG9yZV9wZm4sCj4gPiAtICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkb20tPmNvbnNvbGVfZG9taWQsIGRvbS0+eGVuc3RvcmVf ZG9taWQpOwo+ID4gLSAgICB9IGVsc2Ugewo+ID4gLSAgICAgICAgcmV0dXJuIHhjX2RvbV9nbnR0 YWJfc2VlZChkb20tPnhjaCwgZG9tLT5ndWVzdF9kb21pZCwKPiA+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgeGNfZG9tX3AybShkb20sIGRvbS0+Y29uc29sZV9wZm4pLAo+ID4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4Y19kb21fcDJtKGRvbSwgZG9tLT54 ZW5zdG9yZV9wZm4pLAo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb20t PmNvbnNvbGVfZG9taWQsIGRvbS0+eGVuc3RvcmVfZG9taWQpOwo+ID4gKyAgICB4ZW5mb3JlaWdu bWVtb3J5X2hhbmRsZSogZm1lbSA9IHhjaC0+Zm1lbTsKPiA+ICsgICAgeGVuZm9yZWlnbm1lbW9y eV9yZXNvdXJjZV9oYW5kbGUgKmZyZXM7Cj4gPiArICAgIHZvaWQgKmFkZHIgPSBOVUxMOwo+ID4g KyAgICBncmFudF9lbnRyeV92MV90ICpnbnR0YWI7Cj4gPiArCj4gPiArICAgIGZyZXMgPSB4ZW5m b3JlaWdubWVtb3J5X21hcF9yZXNvdXJjZShmbWVtLCBndWVzdF9kb21pZCwKPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTk1FTV9yZXNvdXJjZV9ncmFudF90 YWJsZSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAs IDEsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYWRkciwg UFJPVF9SRUFEIHwgUFJPVF9XUklURSwgMCk7Cj4gPiArICAgIGlmICggIWZyZXMgKQo+ID4gKyAg ICB7Cj4gPiArICAgICAgICBpZiAoIGVycm5vID09IEVPUE5PVFNVUFAgKQo+ID4gKyAgICAgICAg ICAgIHJldHVybiBpc19odm0gPwo+ID4gKyAgICAgICAgICAgICAgICBjb21wYXRfZ250dGFiX2h2 bV9zZWVkKHhjaCwgZ3Vlc3RfZG9taWQsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc29sZV9nbWZuLCB4ZW5zdG9yZV9nbWZuLAo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVfZG9taWQsIHhlbnN0b3JlX2RvbWlk KSA6Cj4gPiArICAgICAgICAgICAgICAgIGNvbXBhdF9nbnR0YWJfc2VlZCh4Y2gsIGd1ZXN0X2Rv bWlkLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZV9nbWZu LCB4ZW5zdG9yZV9nbWZuLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc29sZV9kb21pZCwgeGVuc3RvcmVfZG9taWQpOwo+IAo+IENvdWxkIGJlIHdyaXR0ZW4gYXM6 Cj4gCj4gcmV0dXJuIChpc19odm0gPyBjb21wYXRfZ250dGFiX2h2bV9zZWVkIDogY29tcGF0X2du dHRhYl9zZWVkKQo+ICAgICAgICAoeGNoLCBndWVzdF9kb21pZCwgY29uc29sZV9nbWZuLCB4ZW5z dG9yZV9nbWZuLCBjb25zb2xlX2RvbWlkLAo+ICAgICAgICAgeGVuc3RvcmVfZG9taWQpOwoKSXMg dGhhdCBwcmVmZXJhYmxlPwoKPiAKPiA+ICsKPiA+ICsgICAgICAgIHhjX2RvbV9wYW5pYyh4Y2gs IFhDX0lOVEVSTkFMX0VSUk9SLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICIlczogZmFpbGVk IHRvIGFjcXVpcmUgZ3JhbnQgdGFibGUgIgo+ID4gKyAgICAgICAgICAgICAgICAgICAgICJbZXJy bm89JWRdXG4iLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgZXJybm8p Owo+ID4gKyAgICAgICAgcmV0dXJuIC0xOwo+ID4gICAgICB9Cj4gPiArCj4gPiArICAgIGdudHRh YiA9IGFkZHI7Cj4gPiArCj4gPiArICAgIGlmICggZ3Vlc3RfZG9taWQgIT0gY29uc29sZV9kb21p ZCAgJiYgY29uc29sZV9nbWZuICE9IC0xKQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeIGV4dHJhIHNwYWNlLgo+ID4gKyAgICB7Cj4gPiArICAgICAgICB4Y19kb21f cHJpbnRmKHhjaCwgIiVzOiBzZXR0aW5nIGNvbnNvbGUgcGZuPTB4JSJQUklfeGVuX3BmbiwKPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBjb25zb2xlX2dtZm4pOwo+ID4g Kwo+ID4gKyAgICAgICAgZ250dGFiW0dOVFRBQl9SRVNFUlZFRF9DT05TT0xFXS5mbGFncyA9IEdU Rl9wZXJtaXRfYWNjZXNzOwo+ID4gKyAgICAgICAgZ250dGFiW0dOVFRBQl9SRVNFUlZFRF9DT05T T0xFXS5kb21pZCA9IGNvbnNvbGVfZG9taWQ7Cj4gPiArICAgICAgICBnbnR0YWJbR05UVEFCX1JF U0VSVkVEX0NPTlNPTEVdLmZyYW1lID0gY29uc29sZV9nbWZuOwo+ID4gKyAgICB9Cj4gPiArCj4g PiArICAgIGlmICggZ3Vlc3RfZG9taWQgIT0geGVuc3RvcmVfZG9taWQgJiYgeGVuc3RvcmVfZ21m biAhPSAtMSkKPiA+ICsgICAgewo+ID4gKyAgICAgICAgeGNfZG9tX3ByaW50Zih4Y2gsICIlczog c2V0dGluZyB4ZW5zdG9yZSBwZm49MHglIlBSSV94ZW5fcGZuLAo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICBfX0ZVTkNUSU9OX18sIHhlbnN0b3JlX2dtZm4pOwo+ID4gKwo+ID4gKyAgICAgICAg Z250dGFiW0dOVFRBQl9SRVNFUlZFRF9YRU5TVE9SRV0uZmxhZ3MgPSBHVEZfcGVybWl0X2FjY2Vz czsKPiA+ICsgICAgICAgIGdudHRhYltHTlRUQUJfUkVTRVJWRURfWEVOU1RPUkVdLmRvbWlkID0g eGVuc3RvcmVfZG9taWQ7Cj4gPiArICAgICAgICBnbnR0YWJbR05UVEFCX1JFU0VSVkVEX1hFTlNU T1JFXS5mcmFtZSA9IHhlbnN0b3JlX2dtZm47Cj4gPiArICAgIH0KPiAKPiBUaGUgY29kZSBhYm92 ZSBpcyBhbHJlYWR5IHByZXNlbnQgaW4geGNfZG9tX2dudHRhYl9zZWVkIChub3cgcmVuYW1lZAo+ IHRvIGNvbXBhdF9nbnR0YWJfc2VlZCwgaXNuJ3QgdGhlcmUgYW55d2F5IHRoYXQgeW91IGNvdWxk IHJlLXVzZSBpdD8KCkhtbS4gTWF5YmUuIEknbGwgc2VlIGlmIEkgY2FuIHJlLXdvcmsgaXQgdG8g cmVtb3ZlIHRoZSBkdXBsaWNhdGlvbi4KClRoYW5rcywKCiAgUGF1bAoKPiAKPiBSb2dlci4KCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=