From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id CEC8FA04B5; Thu, 29 Oct 2020 10:12:42 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A2706C826; Thu, 29 Oct 2020 10:12:40 +0100 (CET) Received: from mailgw02.pantheon.sk (mailgw01.pantheon.sk [46.229.239.26]) by dpdk.org (Postfix) with ESMTP id DA029C81C for ; Thu, 29 Oct 2020 10:12:38 +0100 (CET) Received: from mailgw02.pantheon.sk (localhost.localdomain [127.0.0.1]) by mailgw02.pantheon.sk (Proxmox) with ESMTP id 66972183673; Thu, 29 Oct 2020 10:12:37 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pantheon.tech; h=cc:cc:content-transfer-encoding:content-type:content-type :date:from:from:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=dkim; bh=mUF4tddDFvKi7V5JwRHI 47o0YMVxKjtj2mlfiG8qQGg=; b=UF4c0LFHQMXrXoUw1RvxSGmy2oWVSH/yLnce pEJ+AE2mhv0+PxbdHFiIT93tt7CkLAVRCgtSXlbvzomu/G+bNA+9/wzUg7bEMiVq NiQ/nAa9bKeyRaN7S+xe7l+tF17qHXDTSw47Zj2dsyOLeIO93oXZ42jYIVhLFm0A kAqEcRCN6/5A9M0IlCSX7Szw8uHmY+GMmeRhkaafJpUwhjyUGMqnspz0gZeV5VoM enmVhcN708O11Ek/SD5OI8Lg3h0lOzshnrT+fu3upZnQebXmKVkOvKOYgNJ9uzjd yfL2EjF+GjoQ1Y5b6+vdwVGSuKeawH/u6hVKh0z0gU88JPmZZA== From: =?utf-8?B?SnVyYWogTGlua2XFoQ==?= To: Honnappa Nagarahalli , "bruce.richardson@intel.com" , Ruifeng Wang , Phil Yang , "vcchunga@amazon.com" , Dharmik Thakkar , "jerinjacobk@gmail.com" , "hemant.agrawal@nxp.com" CC: "dev@dpdk.org" , nd , nd Thread-Topic: [PATCH v4 2/6] build: refactor Arm build Thread-Index: AQHWqUuKFo5iH2etR0SB+T0fGtDV/qmtM/GAgAEGs2A= Date: Thu, 29 Oct 2020 09:12:36 +0000 Message-ID: References: <1603280261-20206-1-git-send-email-juraj.linkes@pantheon.tech> <1603464488-25493-1-git-send-email-juraj.linkes@pantheon.tech> <1603464488-25493-3-git-send-email-juraj.linkes@pantheon.tech> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.101.4.10] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v4 2/6] build: refactor Arm build 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSG9ubmFwcGEgTmFnYXJh aGFsbGkgPEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwg T2N0b2JlciAyOCwgMjAyMCA1OjU5IFBNDQo+IFRvOiBKdXJhaiBMaW5rZcWhIDxqdXJhai5saW5r ZXNAcGFudGhlb24udGVjaD47IGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tOw0KPiBSdWlmZW5n IFdhbmcgPFJ1aWZlbmcuV2FuZ0Bhcm0uY29tPjsgUGhpbCBZYW5nIDxQaGlsLllhbmdAYXJtLmNv bT47DQo+IHZjY2h1bmdhQGFtYXpvbi5jb207IERoYXJtaWsgVGhha2thciA8RGhhcm1pay5UaGFr a2FyQGFybS5jb20+Ow0KPiBqZXJpbmphY29ia0BnbWFpbC5jb207IGhlbWFudC5hZ3Jhd2FsQG54 cC5jb20NCj4gQ2M6IGRldkBkcGRrLm9yZzsgbmQgPG5kQGFybS5jb20+OyBIb25uYXBwYSBOYWdh cmFoYWxsaQ0KPiA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT47IG5kIDxuZEBhcm0uY29t Pg0KPiBTdWJqZWN0OiBSRTogW1BBVENIIHY0IDIvNl0gYnVpbGQ6IHJlZmFjdG9yIEFybSBidWls ZA0KPiANCj4gPHNuaXA+DQo+IA0KPiA+DQo+ID4gKiBSZW5hbWUgdmFyaWFibGVzIHRvIGhhdmUg bmFtZXMgdGhhdCBiZXR0ZXIgZGVzY3JpYmUgd2hhdCB0aGUNCj4gPiB2YXJpYWJsZXMgc3RvcmUN Cj4gPiAqIFJlbW92ZSB1bnVzZWQgb3Igc3VwZXJmbHVvdXMgdmFyaWFibGVzDQo+ID4gKiBDaGFu Z2UgYSBsaXN0IHRvIGRpY3Rpb25hcnkgd2hlcmUga2V5IGxvb2t1cCBpcyBuZWVkZWQNCj4gPiAq IEFkZCBpbmZvcm1hdG9yeSBjb21tZW50cyBpbiB0aGUgY29kZQ0KPiA+ICogTWlub3IgY29kZSBy ZXN0cnVjdHVyZSBhbmQgcmVmb3JtYXR0aW5nDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBKdXJh aiBMaW5rZcWhIDxqdXJhai5saW5rZXNAcGFudGhlb24udGVjaD4NCj4gPiAtLS0NCj4gPiAgY29u ZmlnL2FybS9hcm02NF9hcm1hZGFfbGludXhfZ2NjICAgIHwgICAyICstDQo+ID4gIGNvbmZpZy9h cm0vYXJtNjRfYXJtdjhfbGludXhfZ2NjICAgICB8ICAgOCArLQ0KPiA+ICBjb25maWcvYXJtL2Fy bTY0X2JsdWVmaWVsZF9saW51eF9nY2MgfCAgIDQgKy0NCj4gPiAgY29uZmlnL2FybS9hcm02NF9k cGFhX2xpbnV4X2djYyAgICAgIHwgICAyICstDQo+ID4gIGNvbmZpZy9hcm0vYXJtNjRfZW1hZ19s aW51eF9nY2MgICAgICB8ICAgMiArLQ0KPiA+ICBjb25maWcvYXJtL2FybTY0X24xc2RwX2xpbnV4 X2djYyAgICAgfCAgIDQgKy0NCj4gPiAgY29uZmlnL2FybS9hcm02NF9vY3Rlb250eDJfbGludXhf Z2NjIHwgICA0ICstDQo+ID4gIGNvbmZpZy9hcm0vYXJtNjRfc3RpbmdyYXlfbGludXhfZ2NjICB8 ICAgNCArLQ0KPiA+ICBjb25maWcvYXJtL2FybTY0X3RodW5kZXJ4Ml9saW51eF9nY2MgfCAgIDQg Ky0NCj4gPiAgY29uZmlnL2FybS9hcm02NF90aHVuZGVyeF9saW51eF9nY2MgIHwgICAyICstDQo+ ID4gIGNvbmZpZy9hcm0vbWVzb24uYnVpbGQgICAgICAgICAgICAgICB8IDI0NyArKysrKysrKysr KysrKystLS0tLS0tLS0tLS0NCj4gPiAgMTEgZmlsZXMgY2hhbmdlZCwgMTUzIGluc2VydGlvbnMo KyksIDEzMCBkZWxldGlvbnMoLSkNCj4gPg0KPiANCj4gPHNuaXA+DQo+IA0KPiA+IGRpZmYgLS1n aXQgYS9jb25maWcvYXJtL21lc29uLmJ1aWxkIGIvY29uZmlnL2FybS9tZXNvbi5idWlsZCBpbmRl eA0KPiA+IDQ5MTg0MmNhZC4uNmMzMWFiMTY3IDEwMDY0NA0KPiA+IC0tLSBhL2NvbmZpZy9hcm0v bWVzb24uYnVpbGQNCj4gPiArKysgYi9jb25maWcvYXJtL21lc29uLmJ1aWxkDQo+ID4gQEAgLTMs MTIgKzMsMTIgQEANCj4gPiAgIyBDb3B5cmlnaHQoYykgMjAxNyBDYXZpdW0sIEluYw0KPiA+ICAj IENvcHlyaWdodChjKSAyMDIwIFBBTlRIRU9OLnRlY2ggcy5yLm8uDQo+ID4NCj4gPiAtIyBmb3Ig Y2hlY2tpbmcgZGVmaW5lcyB3ZSBuZWVkIHRvIHVzZSB0aGUgY29ycmVjdCBjb21waWxlciBmbGFn cw0KPiA+IC1tYXJjaF9vcHQgPSAnLW1hcmNoPUAwQCcuZm9ybWF0KG1hY2hpbmUpDQo+ID4gLQ0K PiA+ICsjIHNldCBhcm1fZm9yY2VfbmF0aXZlX21hcmNoIGlmIHlvdSB3YW50IHRvIHVzZSBtYWNo aW5lIGFyZ3MgYmVsb3cgIw0KPiA+ICtpbnN0ZWFkIG9mIGRpc2NvdmVyZWQgdmFsdWVzOyBvbmx5 IHdvcmtzIHdoZW4gZG9pbmcgYW4gYWN0dWFsIG5hdGl2ZQ0KPiA+ICtidWlsZA0KPiA+ICBhcm1f Zm9yY2VfbmF0aXZlX21hcmNoID0gZmFsc2UNCj4gPiAtYXJtX2ZvcmNlX2dlbmVyaWNfbWFyY2gg PSAobWFjaGluZSA9PSAnZ2VuZXJpYycpDQo+ID4gK25hdGl2ZV9tYWNoaW5lX2FyZ3MgPSBbJy1t YXJjaD1uYXRpdmUnLCAnLW10dW5lPW5hdGl2ZSddDQo+ID4NCj4gDQo+IFsuLi5dDQo+IA0KPiA+ IC0NCj4gPiAtbWFjaGluZV9hcmdzX2RlZmF1bHQgPSBbDQo+ID4gLQlbJ2RlZmF1bHQnLCBbJy1t YXJjaD1hcm12OC1hK2NyYycsICctbW91dGxpbmUtYXRvbWljcyddXSwNCj4gPiAtCVsnbmF0aXZl JywgWyctbWFyY2g9bmF0aXZlJ11dLA0KPiA+IC0JWycweGQwMycsIFsnLW1jcHU9Y29ydGV4LWE1 MyddXSwNCj4gPiAtCVsnMHhkMDQnLCBbJy1tY3B1PWNvcnRleC1hMzUnXV0sDQo+ID4gLQlbJzB4 ZDA3JywgWyctbWNwdT1jb3J0ZXgtYTU3J11dLA0KPiA+IC0JWycweGQwOCcsIFsnLW1jcHU9Y29y dGV4LWE3MiddXSwNCj4gPiAtCVsnMHhkMDknLCBbJy1tY3B1PWNvcnRleC1hNzMnXV0sDQo+ID4g LQlbJzB4ZDBhJywgWyctbWNwdT1jb3J0ZXgtYTc1J11dLA0KPiA+IC0JWycweGQwYicsIFsnLW1j cHU9Y29ydGV4LWE3NiddXSwNCj4gPiAtCVsnMHhkMGMnLCBbJy1tYXJjaD1hcm12OC4yLWErY3Jj K2NyeXB0bycsICctbWNwdT1uZW92ZXJzZS1uMSddLA0KPiA+IGZsYWdzX24xc2RwX2V4dHJhXV0N Cj4gPiAtDQo+ID4gLW1hY2hpbmVfYXJnc19jYXZpdW0gPSBbDQo+ID4gLQlbJ2RlZmF1bHQnLCBb Jy1tYXJjaD1hcm12OC1hK2NyYytjcnlwdG8nLCctbWNwdT10aHVuZGVyeCddXSwNCj4gPiAtCVsn bmF0aXZlJywgWyctbWFyY2g9bmF0aXZlJ11dLA0KPiA+IC0JWycweGExJywgWyctbWNwdT10aHVu ZGVyeHQ4OCddLCBmbGFnc190aHVuZGVyeF9leHRyYV0sDQo+ID4gLQlbJzB4YTInLCBbJy1tY3B1 PXRodW5kZXJ4dDgxJ10sIGZsYWdzX3RodW5kZXJ4X2V4dHJhXSwNCj4gPiAtCVsnMHhhMycsIFsn LW1jcHU9dGh1bmRlcnh0ODMnXSwgZmxhZ3NfdGh1bmRlcnhfZXh0cmFdLA0KPiA+IC0JWycweGFm JywgWyctbWFyY2g9YXJtdjguMS1hK2NyYytjcnlwdG8nLCctbWNwdT10aHVuZGVyeDJ0OTknXSwN Cj4gPiBmbGFnc190aHVuZGVyeDJfZXh0cmFdLA0KPiA+IC0JWycweGIyJywgWyctbWFyY2g9YXJt djguMi1hK2NyYytjcnlwdG8rbHNlJywnLW1jcHU9b2N0ZW9udHgyJ10sDQo+ID4gZmxhZ3Nfb2N0 ZW9udHgyX2V4dHJhXV0NCj4gPiAtDQo+ID4gLW1hY2hpbmVfYXJnc19lbWFnID0gWw0KPiA+IC0J WydkZWZhdWx0JywgWyctbWFyY2g9YXJtdjgtYStjcmMrY3J5cHRvJywgJy1tdHVuZT1lbWFnJ11d LA0KPiA+IC0JWyduYXRpdmUnLCBbJy1tYXJjaD1uYXRpdmUnXV1dDQo+ID4gKwlbJ1JURV9VU0Vf QzExX01FTV9NT0RFTCcsIHRydWVdDQo+ID4gK10NCj4gPiArIyBhcm0gY29uZmlnIChpbXBsZW1l bnRlciAweDQxKSBpcyB0aGUgZGVmYXVsdCBjb25maWcNCj4gPiArcG5fY29uZmlnX2RlZmF1bHQN Cj4gV2hhdCBkb2VzIGl0IG1lYW4gYnkgJ2RlZmF1bHQnIGhlcmU/IEkgYW0gc29tZXdoYXQgY29u ZnVzZWQgYmV0d2VlbiAnZGVmYXVsdCcNCj4gYW5kICdnZW5lcmljJy4gV2Ugc2hvdWxkIGxvb2sg dG8gcmVtb3ZlICdkZWZhdWx0JyBhcyBtdWNoIGFzIHBvc3NpYmxlIGFuZCBzdGljaw0KPiB3aXRo ICdnZW5lcmljJy4NCj4gDQoNClRoaXMgZGVmYXVsdCBtZWFucyB3aGF0IGRlZmF1bHQgbWVhbnMs IG5vIHNwZWNpYWwgbWVhbmluZywgdGhhdCBpcyBpZiB0aGVyZSBpc24ndCBhIG1vcmUgc3BlY2lm aWMgY29uZmlndXJhdGlvbiwgZGVmYXVsdCB0byB0aGlzIG9uZS4gSXQncyBwb3NzaWJsZSB0aGF0 IGdlbmVyaWMgaXMgYmV0dGVyLCBidXQgbm93IHRoYXQgSSB0aGluayBhYm91dCBpdCwgdXNpbmcg c29tZXRoaW5nIGVsc2UgdGhhbiBkZWZhdWx0IG9yIGdlbmVyaWMgbWlnaHQgYmUgdGhlIGJlc3Qg dG8gYXZvaWQgY29uZnVzaW9uLiBQb3NzaWJseSBqdXN0IHBhcnRfbnVtYmVyX2FybSwgd2hpY2gg d2lsbCBtYWtlIGl0IGluIGxpbmUgd2l0aCB0aGUgb3RoZXIgdmFyIG5hbWVzLg0KDQo+ID4gKz0g ew0KPiA+ICsJJ2dlbmVyaWMnOiBbWyctbWFyY2g9YXJtdjgtYStjcmMnLCAnLW1vdXRsaW5lLWF0 b21pY3MnXV0sDQo+IEkgbGlrZSB0aGF0IHdlIGhhdmUgdGFrZW4gb3V0ICduYXRpdmUnIGZyb20g dGhpcyBsaXN0LiBXb3VsZCBpdCBiZSBwb3NzaWJsZSB0byB0YWtlDQo+IG91dCAnZ2VuZXJpYycg ZnJvbSB0aGlzIGFuZCBvdGhlcnMgYmVsb3cuIFRoaXMgaXMgYmVjYXVzZSB0aGUgYmluYXJ5IGJ1 aWx0IHdpdGgNCj4gJ2dlbmVyaWMnIGJ1aWxkIHNob3VsZCBydW4gb24gYW55IEFybSBwbGF0Zm9y bS4gVGhlcmUgaXMgbm8gZGVwZW5kZW5jeSBvbiBhbnkNCj4gdW5kZXJseWluZyBwbGF0Zm9ybS4N Cj4gDQoNClRoaXMgYWN0dWFsbHkgbWVhbnMgZ2VuZXJpYyBwYXJ0IGZvciB0aGUgaW1wbGVtZW50 ZXIsIG5vdCBnZW5lcmljIGZvciBldmVyeXRoaW5nLiBJIHVuZGVyc3RhbmQgdGhpcyBpcyBoZXJl IHRvIHByb2R1Y2UgYmluYXJpZXMgdGhhdCB3b3VsZCBydW4gb24gZXZlcnl0aGluZyBmcm9tIHRo YXQgaW1wZWxlbWV0ZXIgKGluIGxpbmUgb2Ygd2hhdCB5b3UgbWVudGlvbiBiZWxvdywgdGhpcyB3 b3VsZCBiZSBpbXBsZW1lbnRlci1nZW5lcmljIGNvbmZpZ3VyYXRpb24sIGEgZm91cnRoIGNhdGVn b3J5KS4gSW4gbXkgcGF0Y2hzZXQsIGl0J3MgYWxzbyBhIGZhbGxiYWNrIHdoZW4gYnVpbGRpbmcg Zm9yIGFuIHVua25vd24gcGFydCBudW1iZXIgZnJvbSB0aGUgaW1wbGVtZW50ZXIuDQoNClNpbmNl IHRoaXMgaXMgbm90IGdlbmVyaWMgZm9yIGV2ZXJ5dGhpbmcsIG9ubHkgZm9yIHRoZSBpbXBsZW1l bnRlciwgd2UncmUgbGFja2luZyB0aGUgdHJ1ZSBjb21tb24gZGVmYXVsdCBtYWNoaW5lIGFyZ3Mg Zm9yIGV2ZXJ5dGhpbmcuDQoNCj4gPiArCScweGQwMyc6IFtbJy1tY3B1PWNvcnRleC1hNTMnXV0s DQo+ID4gKwknMHhkMDQnOiBbWyctbWNwdT1jb3J0ZXgtYTM1J11dLA0KPiA+ICsJJzB4ZDA3Jzog W1snLW1jcHU9Y29ydGV4LWE1NyddXSwNCj4gPiArCScweGQwOCc6IFtbJy1tY3B1PWNvcnRleC1h NzInXV0sDQo+ID4gKwknMHhkMDknOiBbWyctbWNwdT1jb3J0ZXgtYTczJ11dLA0KPiA+ICsJJzB4 ZDBhJzogW1snLW1jcHU9Y29ydGV4LWE3NSddXSwNCj4gPiArCScweGQwYic6IFtbJy1tY3B1PWNv cnRleC1hNzYnXV0sDQo+ID4gKwknMHhkMGMnOiBbWyctbWFyY2g9YXJtdjguMi1hK2NyYytjcnlw dG8nLCAnLW1jcHU9bmVvdmVyc2UtbjEnXSwNCj4gPiArZmxhZ3NfbjFzZHBfZXh0cmFdDQo+ICdm bGFnc19uMXNkcF9leHRyYScgZG9lcyBub3QgZml0IGhlcmUuIEZvciB0aGUgcGFydCBudW1iZXIg JzB4ZDBjJyB0aGVyZSBjb3VsZCBiZQ0KPiBtdWx0aXBsZSBTb0NzIChOMVNEUCBpcyBvbmUgb2Yg dGhlbSkuIFNvLCBpZiB0aGUgU29DIGlzIG5vdCBrbm93biwgYnV0IGlmIHdlDQo+IGtub3cgdGhh dCB0aGUgQ1BVIGlzIE4xLCB0aGVuIHdlIHNob3VsZCBidWlsZCBhIE4xLUdlbmVyaWMgYnVpbGQu DQoNClRoaXMgc2hvdWxkIGJlIGNvcmUtZ2VuZXJpYyBjb25maWd1cmF0aW9uLCBJIGNhbiByZW5h bWUgaXQgdG8gZmxhZ3NfbjFnZW5lcmljX2V4dHJhLg0KDQo+IFNvLCBmcm9tIG15IHBlcnNwZWN0 aXZlLCB0aGVyZSBhcmUgMyBraW5kcyBvZiBiaW5hcmllczoNCj4gMSkgZ2VuZXJpYyAtIGJlc3Qg cG9ydGFiaWxpdHkgLSAgKHBvc3NpYmx5KSBsZWFzdCBvcHRpbWl6ZWQgZm9yIGEgZ2l2ZW4gcGxh dGZvcm0NCj4gMikgQ29yZS1HZW5lcmljIChmb3IgZXg6IE4xLWdlbmVyaWMpIC0gUG9ydGFibGUg b24gYWxsIE4xIGJhc2VkIFNvQ3Mgb25seSAtDQo+IE9wdGltaXplZCBmb3IgTjEgY29yZXMNCj4g MykgU29DIHNwZWNpZmljIC0gKHBvc3NpYmx5KSBOb3QgcG9ydGFibGUgLSBNb3N0IG9wdGltaXpl ZCBmb3IgdGhlIFNvQw0KPiANCg0KVGhlIGZvdXJ0aCBjYXRlZ29yeSBJIG1lbnRpb25lZCBhYm92 ZSwgaW1wbGVtZW50ZXItZ2VuZXJpYywgaXMgdXNlZCBpbiBob3cgdGhlIGFybSBjb25maWd1cmF0 aW9uIGlzIGN1cnJlbnRseSBwcm9jZXNzZWQ6DQoxKSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24NCkFk ZGVkIHRvL292ZXJ3cml0dGVuIGJ5DQoyKSBpbXBsZW1lbnRlciBjb25maWd1cmF0aW9uIChvbmUg b2Ygd2hpY2ggaXMgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIGdlbmVyaWMgYnVpbGQpDQpBZGRlZCB0 by9vdmVyd3JpdHRlbiBieQ0KMykgcGFydCBudW1iZXIgKG9yIGNvcmUtZ2VuZXJpYykgY29uZmln dXJhdGlvbg0KQWRkZWQgdG8vb3ZlcndyaXR0ZW4gYnkNCjQpIFNvQyBjb25maWd1cmF0aW9uICh3 aGF0IHdlJ3JlIGFkZGluZyBub3cpDQoNCkl0J3Mgbm90IG9yZ2FuaXplZCBhcyBjbGVhbmx5IC0g dGhlIG1hY2hpbmUgYXJncyBjb250YWluIGJvdGggMikgYW5kIDMpLiBEZXBlbmRpbmcgb24gd2hh dCB3ZSB3YW50IHRvIGRvIHdpdGggdGhlICdnZW5lcmljJyBwYXJ0IG51bWJlciBJJ2xsIGFkanVz dCB0aGUgY29uZmlnIG9yZ2FuaXphdGlvbi4NCg0KPiAgfSBwbl9jb25maWdfY2F2aXVtID0gew0K PiA+ICsJJ2dlbmVyaWMnOiBbWyctbWFyY2g9YXJtdjgtYStjcmMrY3J5cHRvJywgJy1tY3B1PXRo dW5kZXJ4J11dLA0KPiAnZ2VuZXJpYycgZG9lcyBub3QgbWFrZSBzZW5zZSBoZXJlLg0KPiANCj4g PiArCScweGExJzogW1snLW1jcHU9dGh1bmRlcnh0ODgnXSwgZmxhZ3NfdGh1bmRlcnhfZXh0cmFd LA0KPiA+ICsJJzB4YTInOiBbWyctbWNwdT10aHVuZGVyeHQ4MSddLCBmbGFnc190aHVuZGVyeF9l eHRyYV0sDQo+ID4gKwknMHhhMyc6IFtbJy1tY3B1PXRodW5kZXJ4dDgzJ10sIGZsYWdzX3RodW5k ZXJ4X2V4dHJhXSwNCj4gPiArCScweGFmJzogW1snLW1hcmNoPWFybXY4LjEtYStjcmMrY3J5cHRv JywnLW1jcHU9dGh1bmRlcngydDk5J10sDQo+ID4gZmxhZ3NfdGh1bmRlcngyX2V4dHJhXSwNCj4g PiArCScweGIyJzogW1snLW1hcmNoPWFybXY4LjItYStjcmMrY3J5cHRvK2xzZScsJy1tY3B1PW9j dGVvbnR4MiddLA0KPiA+ICtmbGFnc19vY3Rlb250eDJfZXh0cmFdLCB9IHBuX2NvbmZpZ19lbWFn ID0gew0KPiA+ICsJJ2dlbmVyaWMnOiBbWyctbWFyY2g9YXJtdjgtYStjcmMrY3J5cHRvJywgJy1t dHVuZT1lbWFnJ11dIH0NCj4gU2FtZSBoZXJlLg0KPiBJIHVuZGVyc3RhbmQgdGhhdCB0aGlzIGlz IGNvbWluZyBmcm9tIHRoZSBleGlzdGluZyBjb2RlLiBCdXQsIEkgdGhpbmsgd2Ugc2hvdWxkIHRy eQ0KPiB0byBzZXQgaXQgcmlnaHQuDQo+IA0KDQpUaGUgZ2VuZXJpYyBjb25maWcgZm9yIHRoZXNl IG1ha2VzIHNlbnNlIGlmIGEgZm91cnRoIGNhdGVnb3J5LCBpbXBsZW1lbnRlci1nZW5lcmljIG1h a2VzIHNlbnNlLg0KRm9yIGV4YW1wbGUsIGZvciBwYXJ0X251bWJlcl9jb25maWdfZW1hZyB0aGlz IG1lYW5zOiBmb3IgaW1wbGVtZW50ZXIgXzB4NTAgKEFtcGVyZSBDb21wdXRpbmcpIHVzZSB0aGUg Z2VuZXJpYyBtYWNoaW5lIGFyZ3MgaWYgdGhlcmUncyBub3RoaW5nIG1vcmUgc3BlY2lmaWMgKHdo aWNoIHRoZXJlIGlzbid0IC0gbm8gb3RoZXIgcGFydCBudW1iZXIpLg0KDQo+ID4NCj4gPiAgIyMg QXJtIGltcGxlbWVudGVyIElEIChBUk0gRERJIDA0ODdDLmEsIFNlY3Rpb24gRzcuMi4xMDYsIFBh Z2UNCj4gPiBHNy01MzIxKQ0KPiBOaXQsIFdvdWxkIGJlIGdvb2QgdG8gcmVtb3ZlIHRoZSByZWZl cmVuY2UgdG8gdGhlIGRvYw0KPiANCg0KSXMgdGhhdCBiZWNhdXNlIHRoZSBkb2NzIG1lbnRpb25l ZCBoZXJlIG1heSBub3QgYmUgdGhlIG1vc3QgcmVjZW50PyBJdCB3YXMgdXNlZnVsIHRvIG1lIGlu IHVuZGVyc3RhbmRpbmcgd2hlcmUgdGhlIGltcGxlbWVudGVyL3BhcnQgbnVtYmVyIHZhbHVlcyBj b21lIGZyb20uDQoNCj4gPiAtaW1wbF9nZW5lcmljID0gWydHZW5lcmljIGFybXY4JywgZmxhZ3Nf Z2VuZXJpYywgbWFjaGluZV9hcmdzX2RlZmF1bHRdDQo+ID4gLWltcGxfMHg0MSA9IFsnQXJtJywg ZmxhZ3NfYXJtLCBtYWNoaW5lX2FyZ3NfZGVmYXVsdF0NCj4gPiAtaW1wbF8weDQyID0gWydCcm9h ZGNvbScsIGZsYWdzX2dlbmVyaWMsIG1hY2hpbmVfYXJnc19kZWZhdWx0XQ0KPiA+IC1pbXBsXzB4 NDMgPSBbJ0Nhdml1bScsIGZsYWdzX2Nhdml1bSwgbWFjaGluZV9hcmdzX2Nhdml1bV0NCj4gPiAt aW1wbF8weDQ0ID0gWydERUMnLCBmbGFnc19nZW5lcmljLCBtYWNoaW5lX2FyZ3NfZGVmYXVsdF0N Cj4gPiAtaW1wbF8weDQ5ID0gWydJbmZpbmVvbicsIGZsYWdzX2dlbmVyaWMsIG1hY2hpbmVfYXJn c19kZWZhdWx0XQ0KPiA+IC1pbXBsXzB4NGQgPSBbJ01vdG9yb2xhJywgZmxhZ3NfZ2VuZXJpYywg bWFjaGluZV9hcmdzX2RlZmF1bHRdDQo+ID4gLWltcGxfMHg0ZSA9IFsnTlZJRElBJywgZmxhZ3Nf Z2VuZXJpYywgbWFjaGluZV9hcmdzX2RlZmF1bHRdDQo+ID4gLWltcGxfMHg1MCA9IFsnQW1wZXJl IENvbXB1dGluZycsIGZsYWdzX2VtYWcsIG1hY2hpbmVfYXJnc19lbWFnXQ0KPiA+IC1pbXBsXzB4 NTEgPSBbJ1F1YWxjb21tJywgZmxhZ3NfZ2VuZXJpYywgbWFjaGluZV9hcmdzX2RlZmF1bHRdDQo+ ID4gLWltcGxfMHg1MyA9IFsnU2Ftc3VuZycsIGZsYWdzX2dlbmVyaWMsIG1hY2hpbmVfYXJnc19k ZWZhdWx0XQ0KPiA+IC1pbXBsXzB4NTYgPSBbJ01hcnZlbGwgQVJNQURBJywgZmxhZ3NfYXJtYWRh LCBtYWNoaW5lX2FyZ3NfZGVmYXVsdF0NCj4gPiAtaW1wbF8weDY5ID0gWydJbnRlbCcsIGZsYWdz X2dlbmVyaWMsIG1hY2hpbmVfYXJnc19kZWZhdWx0XSAtaW1wbF9kcGFhDQo+ID4gPSBbJ05YUCBE UEFBJywgZmxhZ3NfZHBhYSwgbWFjaGluZV9hcmdzX2RlZmF1bHRdDQo+ID4gK2ltcGxfZ2VuZXJp YyA9IFsnR2VuZXJpYyBhcm12OCcsIGZsYWdzX2dlbmVyaWMsIHBuX2NvbmZpZ19kZWZhdWx0XQ0K PiA+ICtpbXBsXzB4NDEgPSBbJ0FybScsIGZsYWdzX2FybSwgcG5fY29uZmlnX2RlZmF1bHRdDQo+ ID4gK2ltcGxfMHg0MiA9IFsnQnJvYWRjb20nLCBmbGFnc19nZW5lcmljLCBwbl9jb25maWdfZGVm YXVsdF0NCj4gPiAraW1wbF8weDQzID0gWydDYXZpdW0nLCBmbGFnc19jYXZpdW0sIHBuX2NvbmZp Z19jYXZpdW1dDQo+ID4gK2ltcGxfMHg0NCA9IFsnREVDJywgZmxhZ3NfZ2VuZXJpYywgcG5fY29u ZmlnX2RlZmF1bHRdDQo+ID4gK2ltcGxfMHg0OSA9IFsnSW5maW5lb24nLCBmbGFnc19nZW5lcmlj LCBwbl9jb25maWdfZGVmYXVsdF0gaW1wbF8weDRkDQo+ID4gKz0gWydNb3Rvcm9sYScsIGZsYWdz X2dlbmVyaWMsIHBuX2NvbmZpZ19kZWZhdWx0XSBpbXBsXzB4NGUgPQ0KPiA+ICtbJ05WSURJQScs IGZsYWdzX2dlbmVyaWMsIHBuX2NvbmZpZ19kZWZhdWx0XQ0KPiA+ICtpbXBsXzB4NTAgPSBbJ0Ft cGVyZSBDb21wdXRpbmcnLCBmbGFnc19lbWFnLCBwbl9jb25maWdfZW1hZ10NCj4gPiAraW1wbF8w eDUxID0gWydRdWFsY29tbScsIGZsYWdzX2dlbmVyaWMsIHBuX2NvbmZpZ19kZWZhdWx0XQ0KPiA+ ICtpbXBsXzB4NTMgPSBbJ1NhbXN1bmcnLCBmbGFnc19nZW5lcmljLCBwbl9jb25maWdfZGVmYXVs dF0NCj4gPiAraW1wbF8weDU2ID0gWydNYXJ2ZWxsIEFSTUFEQScsIGZsYWdzX2FybWFkYSwgcG5f Y29uZmlnX2RlZmF1bHRdDQo+ID4gK2ltcGxfMHg2OSA9IFsnSW50ZWwnLCBmbGFnc19nZW5lcmlj LCBwbl9jb25maWdfZGVmYXVsdF0gaW1wbF9kcGFhID0NCj4gPiArWydOWFAgRFBBQScsIGZsYWdz X2RwYWEsIHBuX2NvbmZpZ19kZWZhdWx0XQ0KPiA+DQo+ID4gIGRwZGtfY29uZi5zZXQoJ1JURV9B UkNIX0FSTScsIDEpDQo+ID4gIGRwZGtfY29uZi5zZXQoJ1JURV9GT1JDRV9JTlRSSU5TSUNTJywg MSkNCj4gPg0KPiA+ICBpZiBkcGRrX2NvbmYuZ2V0KCdSVEVfQVJDSF8zMicpDQo+ID4gKwkjIGFy bXY3IGJ1aWxkDQo+ID4gIAlkcGRrX2NvbmYuc2V0KCdSVEVfQ0FDSEVfTElORV9TSVpFJywgNjQp DQo+ID4gIAlkcGRrX2NvbmYuc2V0KCdSVEVfQVJDSF9BUk12NycsIDEpDQo+ID4gIAkjIHRoZSBt aW5pbXVtIGFyY2hpdGVjdHVyZSBzdXBwb3J0ZWQsIGFybXY3LWEsIG5lZWRzIHRoZSBmb2xsb3dp bmcsDQo+ID4gIAkjIG1rL21hY2hpbmUvYXJtdjdhL3J0ZS52YXJzLm1rIHNldHMgaXQgdG9vDQo+ ID4gIAltYWNoaW5lX2FyZ3MgKz0gJy1tZnB1PW5lb24nDQo+ID4gIGVsc2UNCj4gPiAtCWRwZGtf Y29uZi5zZXQoJ1JURV9DQUNIRV9MSU5FX1NJWkUnLCAxMjgpDQo+ID4gLQlkcGRrX2NvbmYuc2V0 KCdSVEVfQVJDSF9BUk02NCcsIDEpDQo+ID4gKwkjIGFhcmNoNjQgYnVpbGQNCj4gPiArCWlmIG5v dCBtZXNvbi5pc19jcm9zc19idWlsZCgpDQo+ID4gKwkJaWYgbWFjaGluZSA9PSAnZ2VuZXJpYycN Cj4gPiArCQkJIyBkZWZhdWx0IGJ1aWxkDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeXl5eXl5eXl5eXiBHZW5lcmljIGJ1aWxkPw0KPiANCg0KQWxyZWFk eSBhZGRyZXNzZWQgaW4gdGhlIG5leHQgdmVyc2lvbi4NCg0KPiA+ICsJCQlpbXBsX2NvbmZpZyA9 IGltcGxfZ2VuZXJpYw0KPiA+ICsJCQlwYXJ0X251bWJlciA9ICdnZW5lcmljJw0KPiA+ICsJCWVs c2UNCj4gPiArCQkJIyBuYXRpdmUgYnVpbGQNCj4gPiArCQkJIyBUaGUgc2NyaXB0IHJldHVybnMg WydJbXBsZW1lbnRlcicsICdWYXJpYW50JywNCj4gPiAnQXJjaGl0ZWN0dXJlJywNCj4gPiArCQkJ IyAnUHJpbWFyeSBQYXJ0IG51bWJlcicsICdSZXZpc2lvbiddDQo+ID4gKwkJCWRldGVjdF92ZW5k b3IgPSBmaW5kX3Byb2dyYW0oam9pbl9wYXRocygNCj4gPiArCQkJCQltZXNvbi5jdXJyZW50X3Nv dXJjZV9kaXIoKSwNCj4gPiAnYXJtdjhfbWFjaGluZS5weScpKQ0KPiA+ICsJCQljbWQgPSBydW5f Y29tbWFuZChkZXRlY3RfdmVuZG9yLnBhdGgoKSkNCj4gPiArCQkJaWYgY21kLnJldHVybmNvZGUo KSA9PSAwDQo+ID4gKwkJCQljbWRfb3V0cHV0ID0NCj4gPiBjbWQuc3Rkb3V0KCkudG9fbG93ZXIo KS5zdHJpcCgpLnNwbGl0KCcgJykNCj4gPiArCQkJZW5kaWYNCj4gPiArCQkJaWYgYXJtX2ZvcmNl X25hdGl2ZV9tYXJjaCA9PSB0cnVlDQo+ID4gKwkJCQlwYXJ0X251bWJlciA9ICduYXRpdmUnDQo+ ID4gKwkJCWVsc2UNCj4gPiArCQkJCXBhcnRfbnVtYmVyID0gY21kX291dHB1dFszXQ0KPiA+ICsJ CQllbmRpZg0KPiA+ICsJCQkjIFNldCB0byBnZW5lcmljIGltcGxlbWVudGVyIGlmIGltcGxlbWVu dGVyIGlzIG5vdA0KPiA+IGZvdW5kDQo+ID4gKwkJCWltcGxfY29uZmlnID0gZ2V0X3ZhcmlhYmxl KCdpbXBsXycgKyBjbWRfb3V0cHV0WzBdLA0KPiA+ICdpbXBsX2dlbmVyaWMnKQ0KPiA+ICsJCWVu ZGlmDQo+ID4gKwllbHNlDQo+ID4gKwkJIyBjcm9zcyBidWlsZA0KPiA+ICsJCWltcGxfaWQgPSBt ZXNvbi5nZXRfY3Jvc3NfcHJvcGVydHkoJ2ltcGxlbWVudGVyX2lkJywNCj4gPiAnZ2VuZXJpYycp DQo+ID4gKwkJcGFydF9udW1iZXIgPSBtZXNvbi5nZXRfY3Jvc3NfcHJvcGVydHkoJ3BhcnRfbnVt YmVyJywNCj4gPiAnZ2VuZXJpYycpDQo+ID4gKwkJaW1wbF9jb25maWcgPSBnZXRfdmFyaWFibGUo J2ltcGxfJyArIGltcGxfaWQpDQo+ID4gKwllbmRpZg0KPiA+DQo+ID4gLQltYWNoaW5lID0gW10N Cj4gPiAtCWNtZF9nZW5lcmljID0gWydnZW5lcmljJywgJycsICcnLCAnZGVmYXVsdCcsICcnXQ0K PiA+IC0JY21kX291dHB1dCA9IGNtZF9nZW5lcmljICMgU2V0IGdlbmVyaWMgYnkgZGVmYXVsdA0K PiA+IC0JbWFjaGluZV9hcmdzID0gW10gIyBDbGVhciBwcmV2aW91cyBtYWNoaW5lIGFyZ3MNCj4g PiAtCWlmIGFybV9mb3JjZV9nZW5lcmljX21hcmNoIGFuZCBub3QgbWVzb24uaXNfY3Jvc3NfYnVp bGQoKQ0KPiA+IC0JCW1hY2hpbmUgPSBpbXBsX2dlbmVyaWMNCj4gPiAtCQlpbXBsX3BuID0gJ2Rl ZmF1bHQnDQo+ID4gKwltZXNzYWdlKCdBcm0gaW1wbGVtZW50ZXI6ICcgKyBpbXBsX2NvbmZpZ1sw XSkNCj4gPiArCW1lc3NhZ2UoJ0FybSBwYXJ0IG51bWJlcjogJyArIHBhcnRfbnVtYmVyKQ0KPiA+ ICsNCj4gPiArCWltcGxlbWVudGVyX2ZsYWdzID0gaW1wbF9jb25maWdbMV0NCj4gPiArCXBhcnRf bnVtYmVyX2NvbmZpZyA9IGltcGxfY29uZmlnWzJdDQo+ID4gKw0KPiA+ICsJaWYgcGFydF9udW1i ZXJfY29uZmlnLmhhc19rZXkocGFydF9udW1iZXIpDQo+ID4gKwkJIyB1c2UgdGhlIHNwZWNpZmll ZCBwYXJ0X251bWJlciBtYWNoaW5lIGFyZ3MgaWYgZm91bmQNCj4gPiArCQlwYXJ0X251bWJlcl9j b25maWcgPSBwYXJ0X251bWJlcl9jb25maWdbcGFydF9udW1iZXJdDQo+ID4gKwllbGlmIHBhcnRf bnVtYmVyID09ICduYXRpdmUnDQo+ID4gKwkJIyB1c2UgbmF0aXZlIG1hY2hpbmUgYXJncw0KPiA+ ICsJCXBhcnRfbnVtYmVyX2NvbmZpZyA9IFtbbmF0aXZlX21hY2hpbmVfYXJnc11dDQo+ID4gIAll bGlmIG5vdCBtZXNvbi5pc19jcm9zc19idWlsZCgpDQo+ID4gLQkJIyBUaGUgc2NyaXB0IHJldHVy bnMgWydJbXBsZW1lbnRlcicsICdWYXJpYW50JywgJ0FyY2hpdGVjdHVyZScsDQo+ID4gLQkJIyAn UHJpbWFyeSBQYXJ0IG51bWJlcicsICdSZXZpc2lvbiddDQo+ID4gLQkJZGV0ZWN0X3ZlbmRvciA9 IGZpbmRfcHJvZ3JhbShqb2luX3BhdGhzKA0KPiA+IC0JCQkJbWVzb24uY3VycmVudF9zb3VyY2Vf ZGlyKCksDQo+ID4gJ2FybXY4X21hY2hpbmUucHknKSkNCj4gPiAtCQljbWQgPSBydW5fY29tbWFu ZChkZXRlY3RfdmVuZG9yLnBhdGgoKSkNCj4gPiAtCQlpZiBjbWQucmV0dXJuY29kZSgpID09IDAN Cj4gPiAtCQkJY21kX291dHB1dCA9IGNtZC5zdGRvdXQoKS50b19sb3dlcigpLnN0cmlwKCkuc3Bs aXQoJw0KPiA+ICcpDQo+ID4gLQkJZW5kaWYNCj4gPiAtCQkjIFNldCB0byBnZW5lcmljIGlmIHZh cmlhYmxlIGlzIG5vdCBmb3VuZA0KPiA+IC0JCW1hY2hpbmUgPSBnZXRfdmFyaWFibGUoJ2ltcGxf JyArIGNtZF9vdXRwdXRbMF0sIFsnZ2VuZXJpYyddKQ0KPiA+IC0JCWlmIG1hY2hpbmVbMF0gPT0g J2dlbmVyaWMnDQo+ID4gLQkJCW1hY2hpbmUgPSBpbXBsX2dlbmVyaWMNCj4gPiAtCQkJY21kX291 dHB1dCA9IGNtZF9nZW5lcmljDQo+ID4gLQkJZW5kaWYNCj4gPiAtCQlpbXBsX3BuID0gY21kX291 dHB1dFszXQ0KPiA+IC0JCWlmIGFybV9mb3JjZV9uYXRpdmVfbWFyY2ggPT0gdHJ1ZQ0KPiA+IC0J CQlpbXBsX3BuID0gJ25hdGl2ZScNCj4gPiAtCQllbmRpZg0KPiA+ICsJCSMgZGVmYXVsdCB0byBn ZW5lcmljIG1hY2hpbmUgYXJncyBpZiBwYXJ0X251bWJlciBpcyBub3QgZm91bmQNCj4gPiArCQkj IGFuZCBub3QgZm9yY2luZyBuYXRpdmUgbWFjaGluZSBhcmdzDQo+ID4gKwkJIyBidXQgZG9uJ3Qg ZGVmYXVsdCBpbiBjcm9zcy1idWlsZHM7IGlmIHBhcnRfbnVtYmVyIGlzIHNwZWNpZmllZA0KPiA+ ICsJCSMgaW5jb3JyZWN0bHkgaW4gYSBjcm9zcy1maWxlLCBpdCBuZWVkcyB0byBiZSBmaXhlZCB0 aGVyZQ0KPiA+ICsJCXBhcnRfbnVtYmVyX2NvbmZpZyA9IHBhcnRfbnVtYmVyX2NvbmZpZ1snZ2Vu ZXJpYyddDQo+ID4gIAllbHNlDQo+ID4gLQkJaW1wbF9pZCA9IG1lc29uLmdldF9jcm9zc19wcm9w ZXJ0eSgnaW1wbGVtZW50b3JfaWQnLA0KPiA+ICdnZW5lcmljJykNCj4gPiAtCQlpbXBsX3BuID0g bWVzb24uZ2V0X2Nyb3NzX3Byb3BlcnR5KCdpbXBsZW1lbnRvcl9wbicsDQo+ID4gJ2RlZmF1bHQn KQ0KPiA+IC0JCW1hY2hpbmUgPSBnZXRfdmFyaWFibGUoJ2ltcGxfJyArIGltcGxfaWQpDQo+ID4g KwkJIyBjcm9zcyBidWlsZCBhbmQgcGFydCBudW1iZXIgaXMgbm90IGluIHBhcnRfbnVtYmVyX2Nv bmZpZw0KPiA+ICsJCWVycm9yKCdDcm9zcyBidWlsZCBwYXJ0IG51bWJlciAwQDAgbm90DQo+ID4g Zm91bmQuJy5mb3JtYXQocGFydF9udW1iZXIpKQ0KPiA+ICAJZW5kaWYNCj4gPg0KPiA+IC0JIyBB cHBseSBDb21tb24gRGVmYXVsdHMuIFRoZXNlIHNldHRpbmdzIG1heSBiZSBvdmVyd3JpdHRlbiBi eQ0KPiA+IG1hY2hpbmUNCj4gPiAtCSMgc2V0dGluZ3MgbGF0ZXIuDQo+ID4gLQlmb3JlYWNoIGZs YWc6IGZsYWdzX2NvbW1vbl9kZWZhdWx0DQo+ID4gLQkJaWYgZmxhZy5sZW5ndGgoKSA+IDANCj4g PiAtCQkJZHBka19jb25mLnNldChmbGFnWzBdLCBmbGFnWzFdKQ0KPiA+ICsJZHBka19mbGFncyA9 IGZsYWdzX2NvbW1vbl9kZWZhdWx0ICsgaW1wbGVtZW50ZXJfZmxhZ3MNCj4gPiArDQo+ID4gKwlp ZiBwYXJ0X251bWJlcl9jb25maWcubGVuZ3RoKCkgPiAxDQo+ID4gKwkJZHBka19mbGFncyArPSBw YXJ0X251bWJlcl9jb25maWdbMV0NCj4gPiArCWVuZGlmDQo+ID4gKw0KPiA+ICsJbWFjaGluZV9h cmdzID0gW10gIyBDbGVhciBwcmV2aW91cyBtYWNoaW5lIGFyZ3MNCj4gPiArCWZvcmVhY2ggZmxh ZzogcGFydF9udW1iZXJfY29uZmlnWzBdDQo+ID4gKwkJaWYgY2MuaGFzX2FyZ3VtZW50KGZsYWcp DQo+ID4gKwkJCW1hY2hpbmVfYXJncyArPSBmbGFnDQo+ID4gIAkJZW5kaWYNCj4gPiAgCWVuZGZv cmVhY2gNCj4gPg0KPiA+IC0JbWVzc2FnZSgnSW1wbGVtZW50ZXIgOiAnICsgbWFjaGluZVswXSkN Cj4gPiAtCWZvcmVhY2ggZmxhZzogbWFjaGluZVsxXQ0KPiA+ICsJZm9yZWFjaCBmbGFnOiBkcGRr X2ZsYWdzDQo+ID4gIAkJaWYgZmxhZy5sZW5ndGgoKSA+IDANCj4gPiAgCQkJZHBka19jb25mLnNl dChmbGFnWzBdLCBmbGFnWzFdKQ0KPiA+ICAJCWVuZGlmDQo+ID4gIAllbmRmb3JlYWNoDQo+ID4g LQ0KPiA+IC0JZm9yZWFjaCBtYXJnOiBtYWNoaW5lWzJdDQo+ID4gLQkJaWYgbWFyZ1swXSA9PSBp bXBsX3BuDQo+ID4gLQkJCWZvcmVhY2ggZmxhZzogbWFyZ1sxXQ0KPiA+IC0JCQkJaWYgY2MuaGFz X2FyZ3VtZW50KGZsYWcpDQo+ID4gLQkJCQkJbWFjaGluZV9hcmdzICs9IGZsYWcNCj4gPiAtCQkJ CWVuZGlmDQo+ID4gLQkJCWVuZGZvcmVhY2gNCj4gPiAtCQkJIyBBcHBseSBhbnkgZXh0cmEgbWFj aGluZSBzcGVjaWZpYyBmbGFncy4NCj4gPiAtCQkJZm9yZWFjaCBmbGFnOiBtYXJnLmdldCgyLCBm bGFnc19kZWZhdWx0X2V4dHJhKQ0KPiA+IC0JCQkJaWYgZmxhZy5sZW5ndGgoKSA+IDANCj4gPiAt CQkJCQlkcGRrX2NvbmYuc2V0KGZsYWdbMF0sIGZsYWdbMV0pDQo+ID4gLQkJCQllbmRpZg0KPiA+ IC0JCQllbmRmb3JlYWNoDQo+ID4gLQkJZW5kaWYNCj4gPiAtCWVuZGZvcmVhY2gNCj4gPiAgZW5k aWYNCj4gPiAtbWVzc2FnZShtYWNoaW5lX2FyZ3MpDQo+ID4gKw0KPiA+ICttZXNzYWdlKCdVc2lu ZyBtYWNoaW5lIGFyZ3M6IEAwQCcuZm9ybWF0KG1hY2hpbmVfYXJncykpDQo+ID4NCj4gPiAgaWYg KGNjLmdldF9kZWZpbmUoJ19fQVJNX05FT04nLCBhcmdzOiBtYWNoaW5lX2FyZ3MpICE9ICcnIG9y DQo+ID4gICAgICBjYy5nZXRfZGVmaW5lKCdfX2FhcmNoNjRfXycsIGFyZ3M6IG1hY2hpbmVfYXJn cykgIT0gJycpDQo+ID4gLS0NCj4gPiAyLjIwLjENCg0K