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 C4370A04B5; Tue, 27 Oct 2020 10:12:37 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1101C2BD5; Tue, 27 Oct 2020 10:12:36 +0100 (CET) Received: from mailgw01.pantheon.sk (mailgw01.pantheon.sk [46.229.239.26]) by dpdk.org (Postfix) with ESMTP id A7A612B9D for ; Tue, 27 Oct 2020 10:12:33 +0100 (CET) Received: from mailgw01.pantheon.sk (localhost.localdomain [127.0.0.1]) by mailgw01.pantheon.sk (Proxmox) with ESMTP id 640692026CF; Tue, 27 Oct 2020 10:12:32 +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=rxQPI7e+ReCRlLOpCmss LScoYD78a473R1M2yUIwRes=; b=uA1P6su5xO1eNua62hZnNxlP2XQkrihByScP hk39H/NamEooP2p6C2rQREzBVArNcd6/1IH4DMQRu9t9hvIwFOK1z9pPMRKZUaXM 3Q9gg4OfGf7zzJqMTpfIPcEMgDkqv4cF31DUzYc6wzYKDoLyt+1yZ8cq1UhtbTtQ Wr6E+fjyQ4rPjYhAKoESwltMnCu5kAbE8Dx0uvNzL9WoR+plwZwa93aUGL298yHO ilybmxxGQfytZhu6z/2ro4NuMuzMKkW+LOo6vfIjoPk/UHCbFNkSSEjXsXF5Irvp Xm68qGU+geprOqRay2q+bGtyizMc6A/kVpmStS/5X7wabd1yYA== From: =?utf-8?B?SnVyYWogTGlua2XFoQ==?= To: =?utf-8?B?SnVyYWogTGlua2XFoQ==?= , "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/qmq16SAgABBqkCAABYSMA== Date: Tue, 27 Oct 2020 09:12:31 +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" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2IDxkZXYtYm91bmNl c0BkcGRrLm9yZz4gT24gQmVoYWxmIE9mIEp1cmFqIExpbmtlxaENCj4gU2VudDogVHVlc2RheSwg T2N0b2JlciAyNywgMjAyMCA5OjExIEFNDQo+IFRvOiBIb25uYXBwYSBOYWdhcmFoYWxsaSA8SG9u bmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT47DQo+IGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29t OyBSdWlmZW5nIFdhbmcgPFJ1aWZlbmcuV2FuZ0Bhcm0uY29tPjsgUGhpbA0KPiBZYW5nIDxQaGls LllhbmdAYXJtLmNvbT47IHZjY2h1bmdhQGFtYXpvbi5jb207IERoYXJtaWsgVGhha2thcg0KPiA8 RGhhcm1pay5UaGFra2FyQGFybS5jb20+OyBqZXJpbmphY29ia0BnbWFpbC5jb207DQo+IGhlbWFu dC5hZ3Jhd2FsQG54cC5jb20NCj4gQ2M6IGRldkBkcGRrLm9yZzsgbmQgPG5kQGFybS5jb20+OyBu ZCA8bmRAYXJtLmNvbT4NCj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHY0IDIvNl0g YnVpbGQ6IHJlZmFjdG9yIEFybSBidWlsZA0KPiANCj4gDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogSG9ubmFwcGEgTmFnYXJhaGFsbGkgPEhvbm5hcHBhLk5h Z2FyYWhhbGxpQGFybS5jb20+DQo+ID4gU2VudDogVHVlc2RheSwgT2N0b2JlciAyNywgMjAyMCA1 OjU2IEFNDQo+ID4gVG86IEp1cmFqIExpbmtlxaEgPGp1cmFqLmxpbmtlc0BwYW50aGVvbi50ZWNo PjsNCj4gPiBicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbTsgUnVpZmVuZyBXYW5nIDxSdWlmZW5n LldhbmdAYXJtLmNvbT47IFBoaWwNCj4gPiBZYW5nIDxQaGlsLllhbmdAYXJtLmNvbT47IHZjY2h1 bmdhQGFtYXpvbi5jb207IERoYXJtaWsgVGhha2thcg0KPiA+IDxEaGFybWlrLlRoYWtrYXJAYXJt LmNvbT47IGplcmluamFjb2JrQGdtYWlsLmNvbTsNCj4gPiBoZW1hbnQuYWdyYXdhbEBueHAuY29t DQo+ID4gQ2M6IGRldkBkcGRrLm9yZzsgbmQgPG5kQGFybS5jb20+OyBIb25uYXBwYSBOYWdhcmFo YWxsaQ0KPiA+IDxIb25uYXBwYS5OYWdhcmFoYWxsaUBhcm0uY29tPjsgbmQgPG5kQGFybS5jb20+ DQo+ID4gU3ViamVjdDogUkU6IFtQQVRDSCB2NCAyLzZdIGJ1aWxkOiByZWZhY3RvciBBcm0gYnVp bGQNCj4gPg0KPiA+IDxzbmlwPg0KPiA+IEkgdGhpbmsgd2UgbmVlZCB0byBzcGxpdCB0aGlzIGZ1 cnRoZXIuIEZldyBzdWdnZXN0aW9ucyBiZWxvdy4NCj4gPg0KPiA+ID4NCj4gPiA+ICogUmVuYW1l IHZhcmlhYmxlcyB0byBoYXZlIG5hbWVzIHRoYXQgYmV0dGVyIGRlc2NyaWJlIHdoYXQgdGhlDQo+ ID4gPiB2YXJpYWJsZXMgc3RvcmUNCj4gPiBUaGlzIHNob3VsZCBiZSBhIHNlcGFyYXRlIGNvbW1p dC4NCj4gPg0KPiA+ID4gKiBSZW1vdmUgdW51c2VkIG9yIHN1cGVyZmx1b3VzIHZhcmlhYmxlcw0K PiA+IFNhbWUgaGVyZQ0KPiA+DQo+ID4gPiAqIENoYW5nZSBhIGxpc3QgdG8gZGljdGlvbmFyeSB3 aGVyZSBrZXkgbG9va3VwIGlzIG5lZWRlZA0KPiA+IFNhbWUgaGVyZQ0KPiA+DQo+ID4gPiAqIEFk ZCBpbmZvcm1hdG9yeSBjb21tZW50cyBpbiB0aGUgY29kZQ0KPiA+DQo+ID4gPiAqIE1pbm9yIGNv ZGUgcmVzdHJ1Y3R1cmUgYW5kIHJlZm9ybWF0dGluZw0KPiA+IFNhbWUgZm9yIHRoaXMNCj4gPg0K PiANCj4gT2ssIGhvcGVmdWxseSBJJ2xsIGJlIGFibGUgdG8gc2VwYXJhdGUgdGhlc2UgY2xlYW5s eS4NCj4gDQo+ID4gPg0KPiA+ID4gU2lnbmVkLW9mZi1ieTogSnVyYWogTGlua2XFoSA8anVyYWou bGlua2VzQHBhbnRoZW9uLnRlY2g+DQo+ID4gPiAtLS0NCj4gPiA+ICBjb25maWcvYXJtL2FybTY0 X2FybWFkYV9saW51eF9nY2MgICAgfCAgIDIgKy0NCj4gPiA+ICBjb25maWcvYXJtL2FybTY0X2Fy bXY4X2xpbnV4X2djYyAgICAgfCAgIDggKy0NCj4gPiA+ICBjb25maWcvYXJtL2FybTY0X2JsdWVm aWVsZF9saW51eF9nY2MgfCAgIDQgKy0NCj4gPiA+ICBjb25maWcvYXJtL2FybTY0X2RwYWFfbGlu dXhfZ2NjICAgICAgfCAgIDIgKy0NCj4gPiA+ICBjb25maWcvYXJtL2FybTY0X2VtYWdfbGludXhf Z2NjICAgICAgfCAgIDIgKy0NCj4gPiA+ICBjb25maWcvYXJtL2FybTY0X24xc2RwX2xpbnV4X2dj YyAgICAgfCAgIDQgKy0NCj4gPiA+ICBjb25maWcvYXJtL2FybTY0X29jdGVvbnR4Ml9saW51eF9n Y2MgfCAgIDQgKy0NCj4gPiA+ICBjb25maWcvYXJtL2FybTY0X3N0aW5ncmF5X2xpbnV4X2djYyAg fCAgIDQgKy0NCj4gPiA+ICBjb25maWcvYXJtL2FybTY0X3RodW5kZXJ4Ml9saW51eF9nY2MgfCAg IDQgKy0NCj4gPiA+ICBjb25maWcvYXJtL2FybTY0X3RodW5kZXJ4X2xpbnV4X2djYyAgfCAgIDIg Ky0NCj4gPiA+ICBjb25maWcvYXJtL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgfCAyNDcgKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tDQo+ID4gPiAgMTEgZmlsZXMgY2hhbmdlZCwgMTUzIGlu c2VydGlvbnMoKyksIDEzMCBkZWxldGlvbnMoLSkNCj4gPiA+DQo+ID4gPiBkaWZmIC0tZ2l0IGEv Y29uZmlnL2FybS9hcm02NF9hcm1hZGFfbGludXhfZ2NjDQo+ID4gPiBiL2NvbmZpZy9hcm0vYXJt NjRfYXJtYWRhX2xpbnV4X2djYw0KPiA+ID4gaW5kZXggZmE0MGMwMzk4Li41MmM1ZjQ0NzYgMTAw NjQ0DQo+ID4gPiAtLS0gYS9jb25maWcvYXJtL2FybTY0X2FybWFkYV9saW51eF9nY2MNCj4gPiA+ ICsrKyBiL2NvbmZpZy9hcm0vYXJtNjRfYXJtYWRhX2xpbnV4X2djYw0KPiA+ID4gQEAgLTE0LDQg KzE0LDQgQEAgY3B1ID0gJ2FybXY4LWEnDQo+ID4gPiAgZW5kaWFuID0gJ2xpdHRsZScNCj4gPiA+ DQo+ID4gPiAgW3Byb3BlcnRpZXNdDQo+ID4gPiAtaW1wbGVtZW50b3JfaWQgPSAnMHg1NicNCj4g PiA+ICtpbXBsZW1lbnRlcl9pZCA9ICcweDU2Jw0KPiA+IEltcGxlbWVudG9yIGFuZCBpbXBsZW1l bnRlciBtZWFuIHRoZSBzYW1lLiBMb29rZWQgYXQgQXJtIHNwZWNzLCB0aGV5DQo+ID4gdXNlICdp bXBsZW1lbnRlcicuIFNvLCBJIGFtIGZpbmUuDQo+ID4NCj4gDQo+IFRoYXQncyB3aGVyZSBJIGdv dCB0aGlzIGFuZCBzb21lIG9mIHRoZSBvdGhlciB2YXJpYWJsZSBuYW1lIGNoYW5nZXMgZnJvbS4N Cj4gDQo+ID4gPiBkaWZmIC0tZ2l0IGEvY29uZmlnL2FybS9hcm02NF9hcm12OF9saW51eF9nY2MN Cj4gPiA+IGIvY29uZmlnL2FybS9hcm02NF9hcm12OF9saW51eF9nY2MNCj4gPiA+IGluZGV4IDg4 ZjBmZjlkYS4uMTNlZThiMjIzIDEwMDY0NA0KPiA+ID4gLS0tIGEvY29uZmlnL2FybS9hcm02NF9h cm12OF9saW51eF9nY2MNCj4gPiA+ICsrKyBiL2NvbmZpZy9hcm0vYXJtNjRfYXJtdjhfbGludXhf Z2NjDQo+ID4gPiBAQCAtMTMsMTAgKzEzLDEwIEBAIGNwdSA9ICdhcm12OC1hJw0KPiA+ID4gIGVu ZGlhbiA9ICdsaXR0bGUnDQo+ID4gPg0KPiA+ID4gIFtwcm9wZXJ0aWVzXQ0KPiA+ID4gLWltcGxl bWVudG9yX2lkID0gJ2dlbmVyaWMnDQo+ID4gPiAraW1wbGVtZW50ZXJfaWQgPSAnZ2VuZXJpYycN Cj4gPiA+DQo+ID4gPiAtIyBWYWxpZCBvcHRpb25zIGZvciBBcm0ncyBpbXBsZW1lbnRvcl9wbjoN Cj4gPiA+IC0jICdkZWZhdWx0JzogdmFsaWQgZm9yIGFsbCBhcm12OC1hIGFyY2hpdGVjdHVyZXMg KGRlZmF1bHQgdmFsdWUpDQo+ID4gPiArIyBWYWxpZCBvcHRpb25zIGZvciBBcm0ncyBwYXJ0X251 bWJlcjoNCj4gPiA+ICsjICdnZW5lcmljJzogdmFsaWQgZm9yIGFsbCBhcm12OC1hIGFyY2hpdGVj dHVyZXMgKGRlZmF1bHQgdmFsdWUpDQo+ID4gPiAgIyAnMHhkMDMnOiAgIGNvcnRleC1hNTMNCj4g PiA+ICAjICcweGQwNCc6ICAgY29ydGV4LWEzNQ0KPiA+ID4gICMgJzB4ZDA1JzogICBjb3J0ZXgt YTU1DQo+ID4gPiBAQCAtMjUsNCArMjUsNCBAQCBpbXBsZW1lbnRvcl9pZCA9ICdnZW5lcmljJw0K PiA+ID4gICMgJzB4ZDA5JzogICBjb3J0ZXgtYTczDQo+ID4gPiAgIyAnMHhkMGEnOiAgIGNvcnRl eC1hNzUNCj4gPiA+ICAjICcweGQwYic6ICAgY29ydGV4LWE3Ng0KPiA+ID4gLWltcGxlbWVudG9y X3BuID0gJ2RlZmF1bHQnDQo+ID4gPiArcGFydF9udW1iZXIgPSAnZ2VuZXJpYycNCj4gPiBTYW1l IGhlcmUsIEFybSBzcGVjcyByZWZlciB0byB0aGlzIGFzICdQYXJ0TnVtYmVyJy4gU28sIHRoaXMg c2hvdWxkIGJlIGZpbmUuDQo+ID4gSSBsaWtlICdnZW5lcmljJyBmb3IgcGFydF9udW1iZXIgaGVy ZS4NCj4gPg0KPiA+ID4gZGlmZiAtLWdpdCBhL2NvbmZpZy9hcm0vYXJtNjRfYmx1ZWZpZWxkX2xp bnV4X2djYw0KPiA+ID4gYi9jb25maWcvYXJtL2FybTY0X2JsdWVmaWVsZF9saW51eF9nY2MNCj4g PiA+IGluZGV4IDg2Nzk3ZDIzYy4uYjc5Mzg5ZDg1IDEwMDY0NA0KPiA+ID4gLS0tIGEvY29uZmln L2FybS9hcm02NF9ibHVlZmllbGRfbGludXhfZ2NjDQo+ID4gPiArKysgYi9jb25maWcvYXJtL2Fy bTY0X2JsdWVmaWVsZF9saW51eF9nY2MNCj4gPiA+IEBAIC0xMyw1ICsxMyw1IEBAIGNwdSA9ICdh cm12OC1hJw0KPiA+ID4gIGVuZGlhbiA9ICdsaXR0bGUnDQo+ID4gPg0KPiA+ID4gIFtwcm9wZXJ0 aWVzXQ0KPiA+ID4gLWltcGxlbWVudG9yX2lkID0gJzB4NDEnDQo+ID4gPiAtaW1wbGVtZW50b3Jf cG4gPSAnMHhkMDgnDQo+ID4gPiAraW1wbGVtZW50ZXJfaWQgPSAnMHg0MScNCj4gPiA+ICtwYXJ0 X251bWJlciA9ICcweGQwOCcNCj4gPiA+IGRpZmYgLS1naXQgYS9jb25maWcvYXJtL2FybTY0X2Rw YWFfbGludXhfZ2NjDQo+ID4gPiBiL2NvbmZpZy9hcm0vYXJtNjRfZHBhYV9saW51eF9nY2MgaW5k ZXggMWE0NjgyMTU0Li41NzNhZTdlNDIgMTAwNjQ0DQo+ID4gPiAtLS0gYS9jb25maWcvYXJtL2Fy bTY0X2RwYWFfbGludXhfZ2NjDQo+ID4gPiArKysgYi9jb25maWcvYXJtL2FybTY0X2RwYWFfbGlu dXhfZ2NjDQo+ID4gPiBAQCAtMTQsNCArMTQsNCBAQCBjcHUgPSAnYXJtdjgtYScNCj4gPiA+ICBl bmRpYW4gPSAnbGl0dGxlJw0KPiA+ID4NCj4gPiA+ICBbcHJvcGVydGllc10NCj4gPiA+IC1pbXBs ZW1lbnRvcl9pZCA9ICdkcGFhJw0KPiA+ID4gK2ltcGxlbWVudGVyX2lkID0gJ2RwYWEnDQo+ID4g PiBkaWZmIC0tZ2l0IGEvY29uZmlnL2FybS9hcm02NF9lbWFnX2xpbnV4X2djYw0KPiA+ID4gYi9j b25maWcvYXJtL2FybTY0X2VtYWdfbGludXhfZ2NjIGluZGV4IDhlZGNkM2U5Ny4uMjRmM2Q1MzNl IDEwMDY0NA0KPiA+ID4gLS0tIGEvY29uZmlnL2FybS9hcm02NF9lbWFnX2xpbnV4X2djYw0KPiA+ ID4gKysrIGIvY29uZmlnL2FybS9hcm02NF9lbWFnX2xpbnV4X2djYw0KPiA+ID4gQEAgLTEzLDQg KzEzLDQgQEAgY3B1ID0gJ2FybXY4LWEnDQo+ID4gPiAgZW5kaWFuID0gJ2xpdHRsZScNCj4gPiA+ DQo+ID4gPiAgW3Byb3BlcnRpZXNdDQo+ID4gPiAtaW1wbGVtZW50b3JfaWQgPSAnMHg1MCcNCj4g PiA+ICtpbXBsZW1lbnRlcl9pZCA9ICcweDUwJw0KPiA+ID4gZGlmZiAtLWdpdCBhL2NvbmZpZy9h cm0vYXJtNjRfbjFzZHBfbGludXhfZ2NjDQo+ID4gPiBiL2NvbmZpZy9hcm0vYXJtNjRfbjFzZHBf bGludXhfZ2NjDQo+ID4gPiBpbmRleCAwMjJlMDYzMDMuLjZmYjNmMDJlYSAxMDA2NDQNCj4gPiA+ IC0tLSBhL2NvbmZpZy9hcm0vYXJtNjRfbjFzZHBfbGludXhfZ2NjDQo+ID4gPiArKysgYi9jb25m aWcvYXJtL2FybTY0X24xc2RwX2xpbnV4X2djYw0KPiA+ID4gQEAgLTEzLDUgKzEzLDUgQEAgY3B1 ID0gJ2FybXY4LWEnDQo+ID4gPiAgZW5kaWFuID0gJ2xpdHRsZScNCj4gPiA+DQo+ID4gPiAgW3By b3BlcnRpZXNdDQo+ID4gPiAtaW1wbGVtZW50b3JfaWQgPSAnMHg0MScNCj4gPiA+IC1pbXBsZW1l bnRvcl9wbiA9ICcweGQwYycNCj4gPiA+ICtpbXBsZW1lbnRlcl9pZCA9ICcweDQxJw0KPiA+ID4g K3BhcnRfbnVtYmVyID0gJzB4ZDBjJw0KPiA+ID4gZGlmZiAtLWdpdCBhL2NvbmZpZy9hcm0vYXJt NjRfb2N0ZW9udHgyX2xpbnV4X2djYw0KPiA+ID4gYi9jb25maWcvYXJtL2FybTY0X29jdGVvbnR4 Ml9saW51eF9nY2MNCj4gPiA+IGluZGV4IDM2NWJkN2NiZC4uYWMxMDQyODA2IDEwMDY0NA0KPiA+ ID4gLS0tIGEvY29uZmlnL2FybS9hcm02NF9vY3Rlb250eDJfbGludXhfZ2NjDQo+ID4gPiArKysg Yi9jb25maWcvYXJtL2FybTY0X29jdGVvbnR4Ml9saW51eF9nY2MNCj4gPiA+IEBAIC0xMyw1ICsx Myw1IEBAIGNwdSA9ICdhcm12OC1hJw0KPiA+ID4gIGVuZGlhbiA9ICdsaXR0bGUnDQo+ID4gPg0K PiA+ID4gIFtwcm9wZXJ0aWVzXQ0KPiA+ID4gLWltcGxlbWVudG9yX2lkID0gJzB4NDMnDQo+ID4g PiAtaW1wbGVtZW50b3JfcG4gPSAnMHhiMicNCj4gPiA+ICtpbXBsZW1lbnRlcl9pZCA9ICcweDQz Jw0KPiA+ID4gK3BhcnRfbnVtYmVyID0gJzB4YjInDQo+ID4gPiBkaWZmIC0tZ2l0IGEvY29uZmln L2FybS9hcm02NF9zdGluZ3JheV9saW51eF9nY2MNCj4gPiA+IGIvY29uZmlnL2FybS9hcm02NF9z dGluZ3JheV9saW51eF9nY2MNCj4gPiA+IGluZGV4IDg2Nzk3ZDIzYy4uYjc5Mzg5ZDg1IDEwMDY0 NA0KPiA+ID4gLS0tIGEvY29uZmlnL2FybS9hcm02NF9zdGluZ3JheV9saW51eF9nY2MNCj4gPiA+ ICsrKyBiL2NvbmZpZy9hcm0vYXJtNjRfc3RpbmdyYXlfbGludXhfZ2NjDQo+ID4gPiBAQCAtMTMs NSArMTMsNSBAQCBjcHUgPSAnYXJtdjgtYScNCj4gPiA+ICBlbmRpYW4gPSAnbGl0dGxlJw0KPiA+ ID4NCj4gPiA+ICBbcHJvcGVydGllc10NCj4gPiA+IC1pbXBsZW1lbnRvcl9pZCA9ICcweDQxJw0K PiA+ID4gLWltcGxlbWVudG9yX3BuID0gJzB4ZDA4Jw0KPiA+ID4gK2ltcGxlbWVudGVyX2lkID0g JzB4NDEnDQo+ID4gPiArcGFydF9udW1iZXIgPSAnMHhkMDgnDQo+ID4gPiBkaWZmIC0tZ2l0IGEv Y29uZmlnL2FybS9hcm02NF90aHVuZGVyeDJfbGludXhfZ2NjDQo+ID4gPiBiL2NvbmZpZy9hcm0v YXJtNjRfdGh1bmRlcngyX2xpbnV4X2djYw0KPiA+ID4gaW5kZXggMmI0MWFjYzYxLi5kZDI1Nzc0 NWUgMTAwNjQ0DQo+ID4gPiAtLS0gYS9jb25maWcvYXJtL2FybTY0X3RodW5kZXJ4Ml9saW51eF9n Y2MNCj4gPiA+ICsrKyBiL2NvbmZpZy9hcm0vYXJtNjRfdGh1bmRlcngyX2xpbnV4X2djYw0KPiA+ ID4gQEAgLTEzLDUgKzEzLDUgQEAgY3B1ID0gJ2FybXY4LWEnDQo+ID4gPiAgZW5kaWFuID0gJ2xp dHRsZScNCj4gPiA+DQo+ID4gPiAgW3Byb3BlcnRpZXNdDQo+ID4gPiAtaW1wbGVtZW50b3JfaWQg PSAnMHg0MycNCj4gPiA+IC1pbXBsZW1lbnRvcl9wbiA9ICcweGFmJw0KPiA+ID4gK2ltcGxlbWVu dGVyX2lkID0gJzB4NDMnDQo+ID4gPiArcGFydF9udW1iZXIgPSAnMHhhZicNCj4gPiA+IGRpZmYg LS1naXQgYS9jb25maWcvYXJtL2FybTY0X3RodW5kZXJ4X2xpbnV4X2djYw0KPiA+ID4gYi9jb25m aWcvYXJtL2FybTY0X3RodW5kZXJ4X2xpbnV4X2djYw0KPiA+ID4gaW5kZXggNjU3MmFiNjE1Li42 NzA3NjQ0MzcgMTAwNjQ0DQo+ID4gPiAtLS0gYS9jb25maWcvYXJtL2FybTY0X3RodW5kZXJ4X2xp bnV4X2djYw0KPiA+ID4gKysrIGIvY29uZmlnL2FybS9hcm02NF90aHVuZGVyeF9saW51eF9nY2MN Cj4gPiA+IEBAIC0xMyw0ICsxMyw0IEBAIGNwdSA9ICdhcm12OC1hJw0KPiA+ID4gIGVuZGlhbiA9 ICdsaXR0bGUnDQo+ID4gPg0KPiA+ID4gIFtwcm9wZXJ0aWVzXQ0KPiA+ID4gLWltcGxlbWVudG9y X2lkID0gJzB4NDMnDQo+ID4gPiAraW1wbGVtZW50ZXJfaWQgPSAnMHg0MycNCj4gPiA+IGRpZmYg LS1naXQgYS9jb25maWcvYXJtL21lc29uLmJ1aWxkIGIvY29uZmlnL2FybS9tZXNvbi5idWlsZCBp bmRleA0KPiA+ID4gNDkxODQyY2FkLi42YzMxYWIxNjcgMTAwNjQ0DQo+ID4gPiAtLS0gYS9jb25m aWcvYXJtL21lc29uLmJ1aWxkDQo+ID4gPiArKysgYi9jb25maWcvYXJtL21lc29uLmJ1aWxkDQo+ ID4gPiBAQCAtMywxMiArMywxMiBAQA0KPiA+ID4gICMgQ29weXJpZ2h0KGMpIDIwMTcgQ2F2aXVt LCBJbmMNCj4gPiA+ICAjIENvcHlyaWdodChjKSAyMDIwIFBBTlRIRU9OLnRlY2ggcy5yLm8uDQo+ ID4gPg0KPiA+ID4gLSMgZm9yIGNoZWNraW5nIGRlZmluZXMgd2UgbmVlZCB0byB1c2UgdGhlIGNv cnJlY3QgY29tcGlsZXIgZmxhZ3MNCj4gPiA+IC1tYXJjaF9vcHQgPSAnLW1hcmNoPUAwQCcuZm9y bWF0KG1hY2hpbmUpDQo+ID4gPiAtDQo+ID4gPiArIyBzZXQgYXJtX2ZvcmNlX25hdGl2ZV9tYXJj aCBpZiB5b3Ugd2FudCB0byB1c2UgbWFjaGluZSBhcmdzIGJlbG93DQo+ID4gPiArIyBpbnN0ZWFk IG9mIGRpc2NvdmVyZWQgdmFsdWVzOyBvbmx5IHdvcmtzIHdoZW4gZG9pbmcgYW4gYWN0dWFsDQo+ ID4gPiArbmF0aXZlIGJ1aWxkDQo+ID4gPiAgYXJtX2ZvcmNlX25hdGl2ZV9tYXJjaCA9IGZhbHNl DQo+ID4gPiAtYXJtX2ZvcmNlX2dlbmVyaWNfbWFyY2ggPSAobWFjaGluZSA9PSAnZ2VuZXJpYycp DQo+ID4gPiArbmF0aXZlX21hY2hpbmVfYXJncyA9IFsnLW1hcmNoPW5hdGl2ZScsICctbXR1bmU9 bmF0aXZlJ10NCj4gPiA+DQo+ID4gPiArIyBjb21tb24gZmxhZ3MgdG8gYWxsIGFhcmNoNjQgYnVp bGRzLCB3aXRoIGxvd2VzdCBwcmlvcml0eQ0KPiA+ID4gIGZsYWdzX2NvbW1vbl9kZWZhdWx0ID0g Ww0KPiA+ID4gIAkjIEFjY2VsYXJhdGUgcnRlX21lbWNweS4gQmUgc3VyZSB0byBydW4gdW5pdCB0 ZXN0DQo+ID4gPiAobWVtY3B5X3BlcmZfYXV0b3Rlc3QpDQo+ID4gPiAgCSMgdG8gZGV0ZXJtaW5l IHRoZSBiZXN0IHRocmVzaG9sZCBpbiBjb2RlLiBSZWZlciB0byBub3RlcyBpbg0KPiA+ID4gc291 cmNlIGZpbGUgQEAgLTE2LDggKzE2LDkgQEAgZmxhZ3NfY29tbW9uX2RlZmF1bHQgPSBbDQo+ID4g PiAgCVsnUlRFX0FSQ0hfQVJNNjRfTUVNQ1BZJywgZmFsc2VdLA0KPiA+ID4gIAkjCVsnUlRFX0FS TTY0X01FTUNQWV9BTElHTkVEX1RIUkVTSE9MRCcsIDIwNDhdLA0KPiA+ID4gIAkjCVsnUlRFX0FS TTY0X01FTUNQWV9VTkFMSUdORURfVEhSRVNIT0xEJywgNTEyXSwNCj4gPiA+IC0JIyBMZWF2ZSBi ZWxvdyBSVEVfQVJNNjRfTUVNQ1BZX3h4eCBvcHRpb25zIGNvbW1lbnRlZCBvdXQsDQo+ID4gPiB1 bmxlc3MgdGhlcmUncmUNCj4gPiA+IC0JIyBzdHJvbmcgcmVhc29ucy4NCj4gPiA+ICsNCj4gPiA+ ICsJIyBMZWF2ZSBiZWxvdyBSVEVfQVJNNjRfTUVNQ1BZX3h4eCBvcHRpb25zIGNvbW1lbnRlZCBv dXQsDQo+ID4gPiArCSMgdW5sZXNzIHRoZXJlIGFyZSBzdHJvbmcgcmVhc29ucy4NCj4gPiA+ICAJ IwlbJ1JURV9BUk02NF9NRU1DUFlfU0tJUF9HQ0NfVkVSX0NIRUNLJywgZmFsc2VdLA0KPiA+ID4g IAkjCVsnUlRFX0FSTTY0X01FTUNQWV9BTElHTl9NQVNLJywgMHhGXSwNCj4gPiA+ICAJIwlbJ1JU RV9BUk02NF9NRU1DUFlfU1RSSUNUX0FMSUdOJywgZmFsc2VdLA0KPiA+ID4gQEAgLTI4LDE4NCAr MjksMjA2IEBAIGZsYWdzX2NvbW1vbl9kZWZhdWx0ID0gWw0KPiA+ID4NCj4gPiA+ICAJWydSVEVf U0NIRURfVkVDVE9SJywgZmFsc2VdLA0KPiA+ID4gIAlbJ1JURV9BUk1fVVNFX1dGRScsIGZhbHNl XSwNCj4gPiA+ICsJWydSVEVfQ0FDSEVfTElORV9TSVpFJywgMTI4XSwNCj4gPiA+ICsJWydSVEVf QVJDSF9BUk02NCcsIHRydWVdDQo+ID4gPiAgXQ0KPiA+ID4NCj4gPiA+ICsjIGltcGxlbWVudGVy IHNwZWNpZmljIGFhcmNoNjQgZmxhZ3MsIHdpdGggbWlkZGxlIHByaW9yaXR5ICMgKHdpbGwNCj4g PiA+ICtvdmVyd3JpdGUgY29tbW9uIGZsYWdzKQ0KPiA+ID4gIGZsYWdzX2dlbmVyaWMgPSBbDQo+ ID4gPiAgCVsnUlRFX01BQ0hJTkUnLCAnImFybXY4YSInXSwNCj4gPiA+ICAJWydSVEVfTUFYX0xD T1JFJywgMjU2XSwNCj4gPiA+ICAJWydSVEVfVVNFX0MxMV9NRU1fTU9ERUwnLCB0cnVlXSwNCj4g PiA+IC0JWydSVEVfQ0FDSEVfTElORV9TSVpFJywgMTI4XV0NCj4gPiA+ICsJWydSVEVfQ0FDSEVf TElORV9TSVpFJywgMTI4XQ0KPiA+ID4gK10NCj4gPiBBbnkgcGFydGljdWxhciByZWFzb24gZm9y IHRoaXMgY2hhbmdlPyAoYW5kIHNpbWlsYXIgY2hhbmdlcyBiZWxvdykNCj4gPg0KPiANCj4gVGhl IGZpcnN0IGJyYWNrZXQgaXMgc3BsaXQgZnJvbSB0aGUgc2Vjb25kIGJyYWNrZXQgc28gSSBkaWQg dGhlIHNhbWUgZm9yIHRoZSBsYXN0DQo+IHR3byBicmFja2V0cy4gSXQgbWFrZXMgaXQgbW9yZSBh cHBhcmVudCB3aGljaCBicmFja2V0cyBhcmUgcGFpcmVkLCBpdCdzIG1vcmUNCj4gY29uc2lzdGVu dCBhbmQgYWxzbyBpbiBsaW5lIHdpdGggaG93IGZsYWdzX2NvbW1vbl9kZWZhdWx0IGlzIGZvcm1h dHRlZC4NCj4gDQo+ID4gPiAgZmxhZ3NfYXJtID0gWw0KPiA+ID4gIAlbJ1JURV9NQUNISU5FJywg JyJhcm12OGEiJ10sDQo+ID4gPiAgCVsnUlRFX01BWF9MQ09SRScsIDE2XSwNCj4gPiA+ICAJWydS VEVfVVNFX0MxMV9NRU1fTU9ERUwnLCB0cnVlXSwNCj4gPiA+IC0JWydSVEVfQ0FDSEVfTElORV9T SVpFJywgNjRdXQ0KPiA+ID4gKwlbJ1JURV9DQUNIRV9MSU5FX1NJWkUnLCA2NF0NCj4gPiA+ICtd DQo+ID4gPiAgZmxhZ3NfY2F2aXVtID0gWw0KPiA+ID4gIAlbJ1JURV9DQUNIRV9MSU5FX1NJWkUn LCAxMjhdLA0KPiA+ID4gIAlbJ1JURV9NQVhfTlVNQV9OT0RFUycsIDJdLA0KPiA+ID4gIAlbJ1JU RV9NQVhfTENPUkUnLCA5Nl0sDQo+ID4gPiAtCVsnUlRFX01BWF9WRklPX0dST1VQUycsIDEyOF1d DQo+ID4gPiArCVsnUlRFX01BWF9WRklPX0dST1VQUycsIDEyOF0NCj4gPiA+ICtdDQo+ID4gPiAg ZmxhZ3NfZHBhYSA9IFsNCj4gPiA+ICAJWydSVEVfTUFDSElORScsICciZHBhYSInXSwNCj4gPiA+ ICAJWydSVEVfVVNFX0MxMV9NRU1fTU9ERUwnLCB0cnVlXSwNCj4gPiA+ICAJWydSVEVfQ0FDSEVf TElORV9TSVpFJywgNjRdLA0KPiA+ID4gIAlbJ1JURV9NQVhfTlVNQV9OT0RFUycsIDFdLA0KPiA+ ID4gIAlbJ1JURV9NQVhfTENPUkUnLCAxNl0sDQo+ID4gPiAtCVsnUlRFX0xJQlJURV9EUEFBMl9V U0VfUEhZU19JT1ZBJywgZmFsc2VdXQ0KPiA+ID4gKwlbJ1JURV9MSUJSVEVfRFBBQTJfVVNFX1BI WVNfSU9WQScsIGZhbHNlXSBdDQo+ID4gVGhpcyBpcyBub3QgbmVlZGVkDQo+ID4NCj4gDQo+IERv IHlvdSBtZWFuIHRoZSBzcGFjZT8gSXQgc2hvdWxkIGJlIGEgbGluZSBicmVhay4gSSdsbCBjaGVj ayB0aGUgZXhhY3QgY2hhcmFjdGVycywNCj4gYnV0IEkgc2VlIHRoaXMgYXMgYWRkaW5nIGEgc3Bh Y2UgaW4gbXkgbG9jYWwgcGF0Y2guIE9yIGRvIHlvdSBtZWFuIHRoZSBjb25maWcNCj4gb3B0aW9u PyBJdCdzIHNldCB0byB0cnVlIGJ5IGRlZmF1bHQgaW4gY29uZmlnL21lc29uLmJ1aWxkIGFuZCBh Y2NvcmRpbmcgdG8gWzFdIGl0DQo+IHNob3VsZCBiZSBkaXNhYmxlZC4NCj4gDQo+IFsxXSBodHRw Oi8vZ2l0LmRwZGsub3JnL2RwZGsvdHJlZS9jb25maWcvZGVmY29uZmlnX2FybTY0LWRwYWEtbGlu dXhhcHAtDQo+IGdjYz9oPXYyMC4wOA0KPiANCj4gPiA+ICBmbGFnc19lbWFnID0gWw0KPiA+ID4g IAlbJ1JURV9NQUNISU5FJywgJyJlbWFnIiddLA0KPiA+ID4gLQlbJ1JURV9DQUNIRV9MSU5FX1NJ WkUnLCA2NF0sDQo+ID4gPiAgCVsnUlRFX01BWF9OVU1BX05PREVTJywgMV0sDQo+ID4gPiAtCVsn UlRFX01BWF9MQ09SRScsIDMyXV0NCj4gPiA+ICsJWydSVEVfTUFYX0xDT1JFJywgMzJdLA0KPiA+ ID4gKwlbJ1JURV9DQUNIRV9MSU5FX1NJWkUnLCA2NF0NCj4gPiA+ICtdDQo+ID4gPiAgZmxhZ3Nf YXJtYWRhID0gWw0KPiA+ID4gIAlbJ1JURV9NQUNISU5FJywgJyJhcm12OGEiJ10sDQo+ID4gPiAt CVsnUlRFX0NBQ0hFX0xJTkVfU0laRScsIDY0XSwNCj4gPiA+ICAJWydSVEVfTUFYX05VTUFfTk9E RVMnLCAxXSwNCj4gPiA+IC0JWydSVEVfTUFYX0xDT1JFJywgMTZdXQ0KPiA+ID4gKwlbJ1JURV9N QVhfTENPUkUnLCAxNl0sDQo+ID4gPiArCVsnUlRFX0NBQ0hFX0xJTkVfU0laRScsIDY0XQ0KPiA+ ID4gK10NCj4gPiBBbnkgcmVhc29uIGZvciB0aGlzIGNoYW5nZT8NCj4gPg0KPiANCj4gVGhlIGRl ZmF1bHQgKGZyb20gZmxhZ3NfY29tbW9uX2RlZmF1bHQpIGlzIDEyOCBhbmQgSSBmb3VuZCBoZXJl IFswXSB0aGF0IGl0DQo+IHNob3VsZCBiZSBzZXQgdG8gNjQgc28gSSBhZGRlZCBpdCBoZXJlLiBT aG91bGQgdGhpcyBhbHNvIGJlIGluIGEgc2VwYXJhdGUgcGF0Y2gNCj4gKGFwYXJ0IGZyb20gdGhv c2UgNCBhbHJlYWR5IG1lbnRpb24gYWJvdmUpPw0KPiANCj4gWzBdIGh0dHA6Ly9naXQuZHBkay5v cmcvZHBkay90cmVlL2NvbmZpZy9kZWZjb25maWdfYXJtNjQtYXJtYWRhLWxpbnV4YXBwLQ0KPiBn Y2M/aD12MjAuMDgNCj4gDQoNClNvcnJ5LCBJIG92ZXJsb29rZWQgdGhhdCBJIGp1c3QgbW92ZWQg dGhlIGNvbmZpZyBhcm91bmQuIEkgZG9uJ3QgcmVtZW1iZXIgd2h5LiBJIGNvdWxkIHNlZSB0aGF0 IEkgd2FudGVkIHRvIG1ha2UgdGhlIG9yZGVyIGNvbnNpc3RlbnQgYWNyb3NzIHRoZSBkaWZmZXJl bnQgZmxhZyBncm91cCwgYnV0IHRoYXQgaXMgbm90IHRoZSBjYXNlIGV2ZW4gd2l0aCB0aGVzZSBj aGFuZ2VzLiBJJ2xsIG1ha2UgaXQgY29uc2lzdGVudCB3aGVuIEkgc3BsaXQgdGhlIHBhdGNoLg0K DQo+ID4gPg0KPiA+ID4gLWZsYWdzX2RlZmF1bHRfZXh0cmEgPSBbXQ0KPiA+ID4gKyMgcGFydCBu dW1iZXIgc3BlY2lmaWMgYWFyY2g2NCBmbGFncywgd2l0aCBoaWdoZXN0IHByaW9yaXR5ICMgKHdp bGwNCj4gPiA+ICtvdmVyd3JpdGUgYm90aCBjb21tb24gYW5kIGltcGxlbWVudGVyIHNwZWNpZmlj IGZsYWdzKQ0KPiA+ID4gIGZsYWdzX24xc2RwX2V4dHJhID0gWw0KPiA+ID4gIAlbJ1JURV9NQUNI SU5FJywgJyJuMXNkcCInXSwNCj4gPiA+ICAJWydSVEVfTUFYX05VTUFfTk9ERVMnLCAxXSwNCj4g PiA+ICAJWydSVEVfTUFYX0xDT1JFJywgNF0sDQo+ID4gPiAgCVsnUlRFX0VBTF9OVU1BX0FXQVJF X0hVR0VQQUdFUycsIGZhbHNlXSwNCj4gPiA+IC0JWydSVEVfTElCUlRFX1ZIT1NUX05VTUEnLCBm YWxzZV1dDQo+ID4gPiArCVsnUlRFX0xJQlJURV9WSE9TVF9OVU1BJywgZmFsc2VdDQo+ID4gPiAr XQ0KPiA+ID4gIGZsYWdzX3RodW5kZXJ4X2V4dHJhID0gWw0KPiA+ID4gIAlbJ1JURV9NQUNISU5F JywgJyJ0aHVuZGVyeCInXSwNCj4gPiA+IC0JWydSVEVfVVNFX0MxMV9NRU1fTU9ERUwnLCBmYWxz ZV1dDQo+ID4gPiArCVsnUlRFX1VTRV9DMTFfTUVNX01PREVMJywgZmFsc2VdDQo+ID4gPiArXQ0K PiA+ID4gIGZsYWdzX3RodW5kZXJ4Ml9leHRyYSA9IFsNCj4gPiA+ICAJWydSVEVfTUFDSElORScs ICcidGh1bmRlcngyIiddLA0KPiA+ID4gIAlbJ1JURV9DQUNIRV9MSU5FX1NJWkUnLCA2NF0sDQo+ ID4gPiAgCVsnUlRFX01BWF9OVU1BX05PREVTJywgMl0sDQo+ID4gPiAgCVsnUlRFX01BWF9MQ09S RScsIDI1Nl0sDQo+ID4gPiAgCVsnUlRFX0FSTV9GRUFUVVJFX0FUT01JQ1MnLCB0cnVlXSwNCj4g PiA+IC0JWydSVEVfVVNFX0MxMV9NRU1fTU9ERUwnLCB0cnVlXV0NCj4gPiA+ICsJWydSVEVfVVNF X0MxMV9NRU1fTU9ERUwnLCB0cnVlXQ0KPiA+ID4gK10NCj4gPiA+ICBmbGFnc19vY3Rlb250eDJf ZXh0cmEgPSBbDQo+ID4gPiAgCVsnUlRFX01BQ0hJTkUnLCAnIm9jdGVvbnR4MiInXSwNCj4gPiA+ ICAJWydSVEVfTUFYX05VTUFfTk9ERVMnLCAxXSwNCj4gPiA+ICAJWydSVEVfTUFYX0xDT1JFJywg MzZdLA0KPiA+ID4gIAlbJ1JURV9BUk1fRkVBVFVSRV9BVE9NSUNTJywgdHJ1ZV0sDQo+ID4gPiAg CVsnUlRFX0VBTF9JR0JfVUlPJywgZmFsc2VdLA0KPiA+ID4gLQlbJ1JURV9VU0VfQzExX01FTV9N T0RFTCcsIHRydWVdXQ0KPiA+ID4gLQ0KPiA+ID4gLW1hY2hpbmVfYXJnc19kZWZhdWx0ID0gWw0K PiA+ID4gLQlbJ2RlZmF1bHQnLCBbJy1tYXJjaD1hcm12OC1hK2NyYycsICctbW91dGxpbmUtYXRv bWljcyddXSwNCj4gPiA+IC0JWyduYXRpdmUnLCBbJy1tYXJjaD1uYXRpdmUnXV0sDQo+ID4gPiAt CVsnMHhkMDMnLCBbJy1tY3B1PWNvcnRleC1hNTMnXV0sDQo+ID4gPiAtCVsnMHhkMDQnLCBbJy1t Y3B1PWNvcnRleC1hMzUnXV0sDQo+ID4gPiAtCVsnMHhkMDcnLCBbJy1tY3B1PWNvcnRleC1hNTcn XV0sDQo+ID4gPiAtCVsnMHhkMDgnLCBbJy1tY3B1PWNvcnRleC1hNzInXV0sDQo+ID4gPiAtCVsn MHhkMDknLCBbJy1tY3B1PWNvcnRleC1hNzMnXV0sDQo+ID4gPiAtCVsnMHhkMGEnLCBbJy1tY3B1 PWNvcnRleC1hNzUnXV0sDQo+ID4gPiAtCVsnMHhkMGInLCBbJy1tY3B1PWNvcnRleC1hNzYnXV0s DQo+ID4gPiAtCVsnMHhkMGMnLCBbJy1tYXJjaD1hcm12OC4yLWErY3JjK2NyeXB0bycsICctbWNw dT1uZW92ZXJzZS1uMSddLA0KPiA+ID4gZmxhZ3NfbjFzZHBfZXh0cmFdXQ0KPiA+ID4gLQ0KPiA+ ID4gLW1hY2hpbmVfYXJnc19jYXZpdW0gPSBbDQo+ID4gPiAtCVsnZGVmYXVsdCcsIFsnLW1hcmNo PWFybXY4LWErY3JjK2NyeXB0bycsJy1tY3B1PXRodW5kZXJ4J11dLA0KPiA+ID4gLQlbJ25hdGl2 ZScsIFsnLW1hcmNoPW5hdGl2ZSddXSwNCj4gPiA+IC0JWycweGExJywgWyctbWNwdT10aHVuZGVy eHQ4OCddLCBmbGFnc190aHVuZGVyeF9leHRyYV0sDQo+ID4gPiAtCVsnMHhhMicsIFsnLW1jcHU9 dGh1bmRlcnh0ODEnXSwgZmxhZ3NfdGh1bmRlcnhfZXh0cmFdLA0KPiA+ID4gLQlbJzB4YTMnLCBb Jy1tY3B1PXRodW5kZXJ4dDgzJ10sIGZsYWdzX3RodW5kZXJ4X2V4dHJhXSwNCj4gPiA+IC0JWycw eGFmJywgWyctbWFyY2g9YXJtdjguMS1hK2NyYytjcnlwdG8nLCctbWNwdT10aHVuZGVyeDJ0OTkn XSwNCj4gPiA+IGZsYWdzX3RodW5kZXJ4Ml9leHRyYV0sDQo+ID4gPiAtCVsnMHhiMicsIFsnLW1h cmNoPWFybXY4LjItYStjcmMrY3J5cHRvK2xzZScsJy1tY3B1PW9jdGVvbnR4MiddLA0KPiA+ID4g ZmxhZ3Nfb2N0ZW9udHgyX2V4dHJhXV0NCj4gPiA+IC0NCj4gPiA+IC1tYWNoaW5lX2FyZ3NfZW1h ZyA9IFsNCj4gPiA+IC0JWydkZWZhdWx0JywgWyctbWFyY2g9YXJtdjgtYStjcmMrY3J5cHRvJywg Jy1tdHVuZT1lbWFnJ11dLA0KPiA+ID4gLQlbJ25hdGl2ZScsIFsnLW1hcmNoPW5hdGl2ZSddXV0N Cj4gPiA+ICsJWydSVEVfVVNFX0MxMV9NRU1fTU9ERUwnLCB0cnVlXQ0KPiA+ID4gK10NCj4gPiA+ ICsjIGFybSBjb25maWcgKGltcGxlbWVudGVyIDB4NDEpIGlzIHRoZSBkZWZhdWx0IGNvbmZpZw0K PiA+ID4gK3BuX2NvbmZpZ19kZWZhdWx0DQo+ID4gJ3BuJyBoZXJlIGZvciAncGFydF9udW1iZXIn IGlzIG5vdCBjb25zaXN0ZW50Lg0KPiA+DQo+IA0KPiBPaywgSSBjYW4gcmVuYW1lIGl0IHRvIHBh cnRfbnVtYmVyX2NvbmZpZ19kZWZhdWx0LiBTYW1lIGZvciB0aGUgb3RoZXIgdHdvIHBuDQo+IHZh cmlhYmxlcy4NCj4gDQo+ID4gPiArPSB7DQo+ID4gPiArCSdnZW5lcmljJzogW1snLW1hcmNoPWFy bXY4LWErY3JjJywgJy1tb3V0bGluZS1hdG9taWNzJ11dLA0KPiA+ID4gKwknMHhkMDMnOiBbWyct bWNwdT1jb3J0ZXgtYTUzJ11dLA0KPiA+ID4gKwknMHhkMDQnOiBbWyctbWNwdT1jb3J0ZXgtYTM1 J11dLA0KPiA+ID4gKwknMHhkMDcnOiBbWyctbWNwdT1jb3J0ZXgtYTU3J11dLA0KPiA+ID4gKwkn MHhkMDgnOiBbWyctbWNwdT1jb3J0ZXgtYTcyJ11dLA0KPiA+ID4gKwknMHhkMDknOiBbWyctbWNw dT1jb3J0ZXgtYTczJ11dLA0KPiA+ID4gKwknMHhkMGEnOiBbWyctbWNwdT1jb3J0ZXgtYTc1J11d LA0KPiA+ID4gKwknMHhkMGInOiBbWyctbWNwdT1jb3J0ZXgtYTc2J11dLA0KPiA+ID4gKwknMHhk MGMnOiBbWyctbWFyY2g9YXJtdjguMi1hK2NyYytjcnlwdG8nLCAnLW1jcHU9bmVvdmVyc2UtbjEn XSwNCj4gPiA+ICtmbGFnc19uMXNkcF9leHRyYV0gfSBwbl9jb25maWdfY2F2aXVtID0gew0KPiA+ ID4gKwknZ2VuZXJpYyc6IFtbJy1tYXJjaD1hcm12OC1hK2NyYytjcnlwdG8nLCAnLW1jcHU9dGh1 bmRlcngnXV0sDQo+ID4gPiArCScweGExJzogW1snLW1jcHU9dGh1bmRlcnh0ODgnXSwgZmxhZ3Nf dGh1bmRlcnhfZXh0cmFdLA0KPiA+ID4gKwknMHhhMic6IFtbJy1tY3B1PXRodW5kZXJ4dDgxJ10s IGZsYWdzX3RodW5kZXJ4X2V4dHJhXSwNCj4gPiA+ICsJJzB4YTMnOiBbWyctbWNwdT10aHVuZGVy eHQ4MyddLCBmbGFnc190aHVuZGVyeF9leHRyYV0sDQo+ID4gPiArCScweGFmJzogW1snLW1hcmNo PWFybXY4LjEtYStjcmMrY3J5cHRvJywnLW1jcHU9dGh1bmRlcngydDk5J10sDQo+ID4gPiBmbGFn c190aHVuZGVyeDJfZXh0cmFdLA0KPiA+ID4gKwknMHhiMic6IFtbJy1tYXJjaD1hcm12OC4yLWEr Y3JjK2NyeXB0bytsc2UnLCctbWNwdT1vY3Rlb250eDInXSwNCj4gPiA+ICtmbGFnc19vY3Rlb250 eDJfZXh0cmFdLCB9IHBuX2NvbmZpZ19lbWFnID0gew0KPiA+ID4gKwknZ2VuZXJpYyc6IFtbJy1t YXJjaD1hcm12OC1hK2NyYytjcnlwdG8nLCAnLW10dW5lPWVtYWcnXV0gfQ0KPiA+ID4NCj4gPiA+ ICAjIyBBcm0gaW1wbGVtZW50ZXIgSUQgKEFSTSBEREkgMDQ4N0MuYSwgU2VjdGlvbiBHNy4yLjEw NiwgUGFnZQ0KPiA+ID4gRzctNTMyMSkgLWltcGxfZ2VuZXJpYyA9IFsnR2VuZXJpYyBhcm12OCcs IGZsYWdzX2dlbmVyaWMsDQo+ID4gPiBtYWNoaW5lX2FyZ3NfZGVmYXVsdF0NCj4gPiA+IC1pbXBs XzB4NDEgPSBbJ0FybScsIGZsYWdzX2FybSwgbWFjaGluZV9hcmdzX2RlZmF1bHRdDQo+ID4gPiAt aW1wbF8weDQyID0gWydCcm9hZGNvbScsIGZsYWdzX2dlbmVyaWMsIG1hY2hpbmVfYXJnc19kZWZh dWx0XQ0KPiA+ID4gLWltcGxfMHg0MyA9IFsnQ2F2aXVtJywgZmxhZ3NfY2F2aXVtLCBtYWNoaW5l X2FyZ3NfY2F2aXVtXQ0KPiA+ID4gLWltcGxfMHg0NCA9IFsnREVDJywgZmxhZ3NfZ2VuZXJpYywg bWFjaGluZV9hcmdzX2RlZmF1bHRdDQo+ID4gPiAtaW1wbF8weDQ5ID0gWydJbmZpbmVvbicsIGZs YWdzX2dlbmVyaWMsIG1hY2hpbmVfYXJnc19kZWZhdWx0XQ0KPiA+ID4gLWltcGxfMHg0ZCA9IFsn TW90b3JvbGEnLCBmbGFnc19nZW5lcmljLCBtYWNoaW5lX2FyZ3NfZGVmYXVsdF0NCj4gPiA+IC1p bXBsXzB4NGUgPSBbJ05WSURJQScsIGZsYWdzX2dlbmVyaWMsIG1hY2hpbmVfYXJnc19kZWZhdWx0 XQ0KPiA+ID4gLWltcGxfMHg1MCA9IFsnQW1wZXJlIENvbXB1dGluZycsIGZsYWdzX2VtYWcsIG1h Y2hpbmVfYXJnc19lbWFnXQ0KPiA+ID4gLWltcGxfMHg1MSA9IFsnUXVhbGNvbW0nLCBmbGFnc19n ZW5lcmljLCBtYWNoaW5lX2FyZ3NfZGVmYXVsdF0NCj4gPiA+IC1pbXBsXzB4NTMgPSBbJ1NhbXN1 bmcnLCBmbGFnc19nZW5lcmljLCBtYWNoaW5lX2FyZ3NfZGVmYXVsdF0NCj4gPiA+IC1pbXBsXzB4 NTYgPSBbJ01hcnZlbGwgQVJNQURBJywgZmxhZ3NfYXJtYWRhLCBtYWNoaW5lX2FyZ3NfZGVmYXVs dF0NCj4gPiA+IC1pbXBsXzB4NjkgPSBbJ0ludGVsJywgZmxhZ3NfZ2VuZXJpYywgbWFjaGluZV9h cmdzX2RlZmF1bHRdDQo+ID4gPiAtaW1wbF9kcGFhID0gWydOWFAgRFBBQScsIGZsYWdzX2RwYWEs IG1hY2hpbmVfYXJnc19kZWZhdWx0XQ0KPiA+ID4gK2ltcGxfZ2VuZXJpYyA9IFsnR2VuZXJpYyBh cm12OCcsIGZsYWdzX2dlbmVyaWMsIHBuX2NvbmZpZ19kZWZhdWx0XQ0KPiA+ID4gK2ltcGxfMHg0 MSA9IFsnQXJtJywgZmxhZ3NfYXJtLCBwbl9jb25maWdfZGVmYXVsdF0NCj4gPiA+ICtpbXBsXzB4 NDIgPSBbJ0Jyb2FkY29tJywgZmxhZ3NfZ2VuZXJpYywgcG5fY29uZmlnX2RlZmF1bHRdDQo+ID4g PiAraW1wbF8weDQzID0gWydDYXZpdW0nLCBmbGFnc19jYXZpdW0sIHBuX2NvbmZpZ19jYXZpdW1d DQo+ID4gPiAraW1wbF8weDQ0ID0gWydERUMnLCBmbGFnc19nZW5lcmljLCBwbl9jb25maWdfZGVm YXVsdF0NCj4gPiA+ICtpbXBsXzB4NDkgPSBbJ0luZmluZW9uJywgZmxhZ3NfZ2VuZXJpYywgcG5f Y29uZmlnX2RlZmF1bHRdDQo+ID4gPiAraW1wbF8weDRkID0gWydNb3Rvcm9sYScsIGZsYWdzX2dl bmVyaWMsIHBuX2NvbmZpZ19kZWZhdWx0XQ0KPiA+ID4gK2ltcGxfMHg0ZSA9IFsnTlZJRElBJywg ZmxhZ3NfZ2VuZXJpYywgcG5fY29uZmlnX2RlZmF1bHRdDQo+ID4gPiAraW1wbF8weDUwID0gWydB bXBlcmUgQ29tcHV0aW5nJywgZmxhZ3NfZW1hZywgcG5fY29uZmlnX2VtYWddDQo+ID4gPiAraW1w bF8weDUxID0gWydRdWFsY29tbScsIGZsYWdzX2dlbmVyaWMsIHBuX2NvbmZpZ19kZWZhdWx0XQ0K PiA+ID4gK2ltcGxfMHg1MyA9IFsnU2Ftc3VuZycsIGZsYWdzX2dlbmVyaWMsIHBuX2NvbmZpZ19k ZWZhdWx0XQ0KPiA+ID4gK2ltcGxfMHg1NiA9IFsnTWFydmVsbCBBUk1BREEnLCBmbGFnc19hcm1h ZGEsIHBuX2NvbmZpZ19kZWZhdWx0XQ0KPiA+ID4gK2ltcGxfMHg2OSA9IFsnSW50ZWwnLCBmbGFn c19nZW5lcmljLCBwbl9jb25maWdfZGVmYXVsdF0gaW1wbF9kcGFhID0NCj4gPiA+ICtbJ05YUCBE UEFBJywgZmxhZ3NfZHBhYSwgcG5fY29uZmlnX2RlZmF1bHRdDQo+ID4gPg0KPiA+ID4gIGRwZGtf Y29uZi5zZXQoJ1JURV9BUkNIX0FSTScsIDEpDQo+ID4gPiAgZHBka19jb25mLnNldCgnUlRFX0ZP UkNFX0lOVFJJTlNJQ1MnLCAxKQ0KPiA+ID4NCj4gPiA+ICBpZiBkcGRrX2NvbmYuZ2V0KCdSVEVf QVJDSF8zMicpDQo+ID4gPiArCSMgYXJtdjcgYnVpbGQNCj4gPiA+ICAJZHBka19jb25mLnNldCgn UlRFX0NBQ0hFX0xJTkVfU0laRScsIDY0KQ0KPiA+ID4gIAlkcGRrX2NvbmYuc2V0KCdSVEVfQVJD SF9BUk12NycsIDEpDQo+ID4gPiAgCSMgdGhlIG1pbmltdW0gYXJjaGl0ZWN0dXJlIHN1cHBvcnRl ZCwgYXJtdjctYSwgbmVlZHMgdGhlIGZvbGxvd2luZywNCj4gPiA+ICAJIyBtay9tYWNoaW5lL2Fy bXY3YS9ydGUudmFycy5tayBzZXRzIGl0IHRvbw0KPiA+ID4gIAltYWNoaW5lX2FyZ3MgKz0gJy1t ZnB1PW5lb24nDQo+ID4gPiAgZWxzZQ0KPiA+ID4gLQlkcGRrX2NvbmYuc2V0KCdSVEVfQ0FDSEVf TElORV9TSVpFJywgMTI4KQ0KPiA+ID4gLQlkcGRrX2NvbmYuc2V0KCdSVEVfQVJDSF9BUk02NCcs IDEpDQo+ID4gPiArCSMgYWFyY2g2NCBidWlsZA0KPiA+ID4gKwlpZiBub3QgbWVzb24uaXNfY3Jv c3NfYnVpbGQoKQ0KPiA+ID4gKwkJaWYgbWFjaGluZSA9PSAnZ2VuZXJpYycNCj4gPiA+ICsJCQkj IGRlZmF1bHQgYnVpbGQNCj4gPiA+ICsJCQlpbXBsX2NvbmZpZyA9IGltcGxfZ2VuZXJpYw0KPiA+ ID4gKwkJCXBhcnRfbnVtYmVyID0gJ2dlbmVyaWMnDQo+ID4gPiArCQllbHNlDQo+ID4gPiArCQkJ IyBuYXRpdmUgYnVpbGQNCj4gPiA+ICsJCQkjIFRoZSBzY3JpcHQgcmV0dXJucyBbJ0ltcGxlbWVu dGVyJywgJ1ZhcmlhbnQnLA0KPiA+ID4gJ0FyY2hpdGVjdHVyZScsDQo+ID4gPiArCQkJIyAnUHJp bWFyeSBQYXJ0IG51bWJlcicsICdSZXZpc2lvbiddDQo+ID4gPiArCQkJZGV0ZWN0X3ZlbmRvciA9 IGZpbmRfcHJvZ3JhbShqb2luX3BhdGhzKA0KPiA+ID4gKwkJCQkJbWVzb24uY3VycmVudF9zb3Vy Y2VfZGlyKCksDQo+ID4gPiAnYXJtdjhfbWFjaGluZS5weScpKQ0KPiA+ID4gKwkJCWNtZCA9IHJ1 bl9jb21tYW5kKGRldGVjdF92ZW5kb3IucGF0aCgpKQ0KPiA+ID4gKwkJCWlmIGNtZC5yZXR1cm5j b2RlKCkgPT0gMA0KPiA+ID4gKwkJCQljbWRfb3V0cHV0ID0NCj4gPiA+IGNtZC5zdGRvdXQoKS50 b19sb3dlcigpLnN0cmlwKCkuc3BsaXQoJyAnKQ0KPiA+ID4gKwkJCWVuZGlmDQo+ID4gPiArCQkJ aWYgYXJtX2ZvcmNlX25hdGl2ZV9tYXJjaCA9PSB0cnVlDQo+ID4gPiArCQkJCXBhcnRfbnVtYmVy ID0gJ25hdGl2ZScNCj4gPiA+ICsJCQllbHNlDQo+ID4gPiArCQkJCXBhcnRfbnVtYmVyID0gY21k X291dHB1dFszXQ0KPiA+ID4gKwkJCWVuZGlmDQo+ID4gPiArCQkJIyBTZXQgdG8gZ2VuZXJpYyBp bXBsZW1lbnRlciBpZiBpbXBsZW1lbnRlciBpcyBub3QNCj4gPiA+IGZvdW5kDQo+ID4gPiArCQkJ aW1wbF9jb25maWcgPSBnZXRfdmFyaWFibGUoJ2ltcGxfJyArIGNtZF9vdXRwdXRbMF0sDQo+ID4g PiAnaW1wbF9nZW5lcmljJykNCj4gPiA+ICsJCWVuZGlmDQo+ID4gPiArCWVsc2UNCj4gPiA+ICsJ CSMgY3Jvc3MgYnVpbGQNCj4gPiA+ICsJCWltcGxfaWQgPSBtZXNvbi5nZXRfY3Jvc3NfcHJvcGVy dHkoJ2ltcGxlbWVudGVyX2lkJywNCj4gPiA+ICdnZW5lcmljJykNCj4gPiA+ICsJCXBhcnRfbnVt YmVyID0gbWVzb24uZ2V0X2Nyb3NzX3Byb3BlcnR5KCdwYXJ0X251bWJlcicsDQo+ID4gPiAnZ2Vu ZXJpYycpDQo+ID4gPiArCQlpbXBsX2NvbmZpZyA9IGdldF92YXJpYWJsZSgnaW1wbF8nICsgaW1w bF9pZCkNCj4gPiA+ICsJZW5kaWYNCj4gPiA+DQo+ID4gPiAtCW1hY2hpbmUgPSBbXQ0KPiA+ID4g LQljbWRfZ2VuZXJpYyA9IFsnZ2VuZXJpYycsICcnLCAnJywgJ2RlZmF1bHQnLCAnJ10NCj4gPiA+ IC0JY21kX291dHB1dCA9IGNtZF9nZW5lcmljICMgU2V0IGdlbmVyaWMgYnkgZGVmYXVsdA0KPiA+ ID4gLQltYWNoaW5lX2FyZ3MgPSBbXSAjIENsZWFyIHByZXZpb3VzIG1hY2hpbmUgYXJncw0KPiA+ ID4gLQlpZiBhcm1fZm9yY2VfZ2VuZXJpY19tYXJjaCBhbmQgbm90IG1lc29uLmlzX2Nyb3NzX2J1 aWxkKCkNCj4gPiA+IC0JCW1hY2hpbmUgPSBpbXBsX2dlbmVyaWMNCj4gPiA+IC0JCWltcGxfcG4g PSAnZGVmYXVsdCcNCj4gPiA+ICsJbWVzc2FnZSgnQXJtIGltcGxlbWVudGVyOiAnICsgaW1wbF9j b25maWdbMF0pDQo+ID4gPiArCW1lc3NhZ2UoJ0FybSBwYXJ0IG51bWJlcjogJyArIHBhcnRfbnVt YmVyKQ0KPiA+ID4gKw0KPiA+ID4gKwlpbXBsZW1lbnRlcl9mbGFncyA9IGltcGxfY29uZmlnWzFd DQo+ID4gPiArCXBhcnRfbnVtYmVyX2NvbmZpZyA9IGltcGxfY29uZmlnWzJdDQo+ID4gPiArDQo+ ID4gPiArCWlmIHBhcnRfbnVtYmVyX2NvbmZpZy5oYXNfa2V5KHBhcnRfbnVtYmVyKQ0KPiA+ID4g KwkJIyB1c2UgdGhlIHNwZWNpZmllZCBwYXJ0X251bWJlciBtYWNoaW5lIGFyZ3MgaWYgZm91bmQN Cj4gPiA+ICsJCXBhcnRfbnVtYmVyX2NvbmZpZyA9IHBhcnRfbnVtYmVyX2NvbmZpZ1twYXJ0X251 bWJlcl0NCj4gPiA+ICsJZWxpZiBwYXJ0X251bWJlciA9PSAnbmF0aXZlJw0KPiA+ID4gKwkJIyB1 c2UgbmF0aXZlIG1hY2hpbmUgYXJncw0KPiA+ID4gKwkJcGFydF9udW1iZXJfY29uZmlnID0gW1tu YXRpdmVfbWFjaGluZV9hcmdzXV0NCj4gPiA+ICAJZWxpZiBub3QgbWVzb24uaXNfY3Jvc3NfYnVp bGQoKQ0KPiA+ID4gLQkJIyBUaGUgc2NyaXB0IHJldHVybnMgWydJbXBsZW1lbnRlcicsICdWYXJp YW50JywgJ0FyY2hpdGVjdHVyZScsDQo+ID4gPiAtCQkjICdQcmltYXJ5IFBhcnQgbnVtYmVyJywg J1JldmlzaW9uJ10NCj4gPiA+IC0JCWRldGVjdF92ZW5kb3IgPSBmaW5kX3Byb2dyYW0oam9pbl9w YXRocygNCj4gPiA+IC0JCQkJbWVzb24uY3VycmVudF9zb3VyY2VfZGlyKCksDQo+ID4gPiAnYXJt djhfbWFjaGluZS5weScpKQ0KPiA+ID4gLQkJY21kID0gcnVuX2NvbW1hbmQoZGV0ZWN0X3ZlbmRv ci5wYXRoKCkpDQo+ID4gPiAtCQlpZiBjbWQucmV0dXJuY29kZSgpID09IDANCj4gPiA+IC0JCQlj bWRfb3V0cHV0ID0gY21kLnN0ZG91dCgpLnRvX2xvd2VyKCkuc3RyaXAoKS5zcGxpdCgnDQo+ID4g PiAnKQ0KPiA+ID4gLQkJZW5kaWYNCj4gPiA+IC0JCSMgU2V0IHRvIGdlbmVyaWMgaWYgdmFyaWFi bGUgaXMgbm90IGZvdW5kDQo+ID4gPiAtCQltYWNoaW5lID0gZ2V0X3ZhcmlhYmxlKCdpbXBsXycg KyBjbWRfb3V0cHV0WzBdLCBbJ2dlbmVyaWMnXSkNCj4gPiA+IC0JCWlmIG1hY2hpbmVbMF0gPT0g J2dlbmVyaWMnDQo+ID4gPiAtCQkJbWFjaGluZSA9IGltcGxfZ2VuZXJpYw0KPiA+ID4gLQkJCWNt ZF9vdXRwdXQgPSBjbWRfZ2VuZXJpYw0KPiA+ID4gLQkJZW5kaWYNCj4gPiA+IC0JCWltcGxfcG4g PSBjbWRfb3V0cHV0WzNdDQo+ID4gPiAtCQlpZiBhcm1fZm9yY2VfbmF0aXZlX21hcmNoID09IHRy dWUNCj4gPiA+IC0JCQlpbXBsX3BuID0gJ25hdGl2ZScNCj4gPiA+IC0JCWVuZGlmDQo+ID4gPiAr CQkjIGRlZmF1bHQgdG8gZ2VuZXJpYyBtYWNoaW5lIGFyZ3MgaWYgcGFydF9udW1iZXIgaXMgbm90 IGZvdW5kDQo+ID4gPiArCQkjIGFuZCBub3QgZm9yY2luZyBuYXRpdmUgbWFjaGluZSBhcmdzDQo+ ID4gPiArCQkjIGJ1dCBkb24ndCBkZWZhdWx0IGluIGNyb3NzLWJ1aWxkczsgaWYgcGFydF9udW1i ZXIgaXMgc3BlY2lmaWVkDQo+ID4gPiArCQkjIGluY29ycmVjdGx5IGluIGEgY3Jvc3MtZmlsZSwg aXQgbmVlZHMgdG8gYmUgZml4ZWQgdGhlcmUNCj4gPiA+ICsJCXBhcnRfbnVtYmVyX2NvbmZpZyA9 IHBhcnRfbnVtYmVyX2NvbmZpZ1snZ2VuZXJpYyddDQo+ID4gPiAgCWVsc2UNCj4gPiA+IC0JCWlt cGxfaWQgPSBtZXNvbi5nZXRfY3Jvc3NfcHJvcGVydHkoJ2ltcGxlbWVudG9yX2lkJywNCj4gPiA+ ICdnZW5lcmljJykNCj4gPiA+IC0JCWltcGxfcG4gPSBtZXNvbi5nZXRfY3Jvc3NfcHJvcGVydHko J2ltcGxlbWVudG9yX3BuJywNCj4gPiA+ICdkZWZhdWx0JykNCj4gPiA+IC0JCW1hY2hpbmUgPSBn ZXRfdmFyaWFibGUoJ2ltcGxfJyArIGltcGxfaWQpDQo+ID4gPiArCQkjIGNyb3NzIGJ1aWxkIGFu ZCBwYXJ0IG51bWJlciBpcyBub3QgaW4gcGFydF9udW1iZXJfY29uZmlnDQo+ID4gPiArCQllcnJv cignQ3Jvc3MgYnVpbGQgcGFydCBudW1iZXIgMEAwIG5vdA0KPiA+ID4gZm91bmQuJy5mb3JtYXQo cGFydF9udW1iZXIpKQ0KPiA+ID4gIAllbmRpZg0KPiA+ID4NCj4gPiA+IC0JIyBBcHBseSBDb21t b24gRGVmYXVsdHMuIFRoZXNlIHNldHRpbmdzIG1heSBiZSBvdmVyd3JpdHRlbiBieQ0KPiA+ID4g bWFjaGluZQ0KPiA+ID4gLQkjIHNldHRpbmdzIGxhdGVyLg0KPiA+ID4gLQlmb3JlYWNoIGZsYWc6 IGZsYWdzX2NvbW1vbl9kZWZhdWx0DQo+ID4gPiAtCQlpZiBmbGFnLmxlbmd0aCgpID4gMA0KPiA+ ID4gLQkJCWRwZGtfY29uZi5zZXQoZmxhZ1swXSwgZmxhZ1sxXSkNCj4gPiA+ICsJZHBka19mbGFn cyA9IGZsYWdzX2NvbW1vbl9kZWZhdWx0ICsgaW1wbGVtZW50ZXJfZmxhZ3MNCj4gPiA+ICsNCj4g PiA+ICsJaWYgcGFydF9udW1iZXJfY29uZmlnLmxlbmd0aCgpID4gMQ0KPiA+ID4gKwkJZHBka19m bGFncyArPSBwYXJ0X251bWJlcl9jb25maWdbMV0NCj4gPiA+ICsJZW5kaWYNCj4gPiA+ICsNCj4g PiA+ICsJbWFjaGluZV9hcmdzID0gW10gIyBDbGVhciBwcmV2aW91cyBtYWNoaW5lIGFyZ3MNCj4g PiA+ICsJZm9yZWFjaCBmbGFnOiBwYXJ0X251bWJlcl9jb25maWdbMF0NCj4gPiA+ICsJCWlmIGNj Lmhhc19hcmd1bWVudChmbGFnKQ0KPiA+ID4gKwkJCW1hY2hpbmVfYXJncyArPSBmbGFnDQo+ID4g PiAgCQllbmRpZg0KPiA+ID4gIAllbmRmb3JlYWNoDQo+ID4gPg0KPiA+ID4gLQltZXNzYWdlKCdJ bXBsZW1lbnRlciA6ICcgKyBtYWNoaW5lWzBdKQ0KPiA+ID4gLQlmb3JlYWNoIGZsYWc6IG1hY2hp bmVbMV0NCj4gPiA+ICsJZm9yZWFjaCBmbGFnOiBkcGRrX2ZsYWdzDQo+ID4gPiAgCQlpZiBmbGFn Lmxlbmd0aCgpID4gMA0KPiA+ID4gIAkJCWRwZGtfY29uZi5zZXQoZmxhZ1swXSwgZmxhZ1sxXSkN Cj4gPiA+ICAJCWVuZGlmDQo+ID4gPiAgCWVuZGZvcmVhY2gNCj4gPiA+IC0NCj4gPiA+IC0JZm9y ZWFjaCBtYXJnOiBtYWNoaW5lWzJdDQo+ID4gPiAtCQlpZiBtYXJnWzBdID09IGltcGxfcG4NCj4g PiA+IC0JCQlmb3JlYWNoIGZsYWc6IG1hcmdbMV0NCj4gPiA+IC0JCQkJaWYgY2MuaGFzX2FyZ3Vt ZW50KGZsYWcpDQo+ID4gPiAtCQkJCQltYWNoaW5lX2FyZ3MgKz0gZmxhZw0KPiA+ID4gLQkJCQll bmRpZg0KPiA+ID4gLQkJCWVuZGZvcmVhY2gNCj4gPiA+IC0JCQkjIEFwcGx5IGFueSBleHRyYSBt YWNoaW5lIHNwZWNpZmljIGZsYWdzLg0KPiA+ID4gLQkJCWZvcmVhY2ggZmxhZzogbWFyZy5nZXQo MiwgZmxhZ3NfZGVmYXVsdF9leHRyYSkNCj4gPiA+IC0JCQkJaWYgZmxhZy5sZW5ndGgoKSA+IDAN Cj4gPiA+IC0JCQkJCWRwZGtfY29uZi5zZXQoZmxhZ1swXSwgZmxhZ1sxXSkNCj4gPiA+IC0JCQkJ ZW5kaWYNCj4gPiA+IC0JCQllbmRmb3JlYWNoDQo+ID4gPiAtCQllbmRpZg0KPiA+ID4gLQllbmRm b3JlYWNoDQo+ID4gPiAgZW5kaWYNCj4gPiA+IC1tZXNzYWdlKG1hY2hpbmVfYXJncykNCj4gPiA+ ICsNCj4gPiA+ICttZXNzYWdlKCdVc2luZyBtYWNoaW5lIGFyZ3M6IEAwQCcuZm9ybWF0KG1hY2hp bmVfYXJncykpDQo+ID4gPg0KPiA+ID4gIGlmIChjYy5nZXRfZGVmaW5lKCdfX0FSTV9ORU9OJywg YXJnczogbWFjaGluZV9hcmdzKSAhPSAnJyBvcg0KPiA+ID4gICAgICBjYy5nZXRfZGVmaW5lKCdf X2FhcmNoNjRfXycsIGFyZ3M6IG1hY2hpbmVfYXJncykgIT0gJycpDQo+ID4gPiAtLQ0KPiA+ID4g Mi4yMC4xDQoNCg==