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 6A19FA0527; Mon, 9 Nov 2020 11:38:36 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4CD2F5AA6; Mon, 9 Nov 2020 11:38:35 +0100 (CET) Received: from mailgw01.pantheon.sk (mailgw01.pantheon.sk [46.229.239.26]) by dpdk.org (Postfix) with ESMTP id 936B6593A for ; Mon, 9 Nov 2020 11:38:32 +0100 (CET) Received: from mailgw01.pantheon.sk (localhost.localdomain [127.0.0.1]) by mailgw01.pantheon.sk (Proxmox) with ESMTP id 46CB120283C; Mon, 9 Nov 2020 11:38:31 +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=zHReaATiP2YytSbQrK9P LWskYM/HgrXuQ7U9cX8BRcw=; b=fcoBcr918z1EcLrOkZdvG8fENwju0Hpb+QSU GkV8Mb69Fuj8Z8YtJeywuwWRGLzSJFwpfgeYMSlrR2ZmAb8ZzMYHLhOj9b5pBtFn Zkv5QGYUBPB9cHLM8iH1m1TYI6QAWzjZzVPcSR7Gcasdb9qrsWKLRZuunYygTtZP gtoAYdlni9BdEML0x6djsVssZwg29CzQnGJJCDIZM4Yyv/YnxlhWnQkX5VDxWTU7 ufAuRtbG/cXTx4DUz5p5Qg87gdL/v6ZBqgOnF3gzd795mAQIjtUVJFfGI4h2JzuE i9FY2JGgYC1y3ffxF8HKnbXrHUtaJPVokTiTbWUdJaJD8Ugylw== 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" , "Ajit Khaparde (ajit.khaparde@broadcom.com)" , "ferruh.yigit@intel.com" , "aconole@redhat.com" CC: "dev@dpdk.org" , nd , nd Thread-Topic: [PATCH v8 06/14] build: organize Arm config into dict Thread-Index: AQHWtBNQyRFm6F+nTk+KdGegak7F96m+lo8AgADlzPA= Date: Mon, 9 Nov 2020 10:38:30 +0000 Message-ID: <3017238126084c908039266d4b13f1b8@pantheon.tech> References: <1604584762-25321-1-git-send-email-juraj.linkes@pantheon.tech> <1604649795-27476-1-git-send-email-juraj.linkes@pantheon.tech> <1604649795-27476-7-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 v8 06/14] build: organize Arm config into dict 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+IFNlbnQ6IFN1bmRheSwgTm92 ZW1iZXIgOCwgMjAyMCA4OjQ2IFBNDQo+IFRvOiBKdXJhaiBMaW5rZcWhIDxqdXJhai5saW5rZXNA cGFudGhlb24udGVjaD47IGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tOw0KPiBSdWlmZW5nIFdh bmcgPFJ1aWZlbmcuV2FuZ0Bhcm0uY29tPjsgUGhpbCBZYW5nIDxQaGlsLllhbmdAYXJtLmNvbT47 DQo+IHZjY2h1bmdhQGFtYXpvbi5jb207IERoYXJtaWsgVGhha2thciA8RGhhcm1pay5UaGFra2Fy QGFybS5jb20+Ow0KPiBqZXJpbmphY29ia0BnbWFpbC5jb207IGhlbWFudC5hZ3Jhd2FsQG54cC5j b207IEFqaXQgS2hhcGFyZGUNCj4gKGFqaXQua2hhcGFyZGVAYnJvYWRjb20uY29tKSA8YWppdC5r aGFwYXJkZUBicm9hZGNvbS5jb20+Ow0KPiBmZXJydWgueWlnaXRAaW50ZWwuY29tOyBhY29ub2xl QHJlZGhhdC5jb20NCj4gQ2M6IGRldkBkcGRrLm9yZzsgbmQgPG5kQGFybS5jb20+OyBIb25uYXBw YSBOYWdhcmFoYWxsaQ0KPiA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT47IG5kIDxuZEBh cm0uY29tPg0KPiBTdWJqZWN0OiBSRTogW1BBVENIIHY4IDA2LzE0XSBidWlsZDogb3JnYW5pemUg QXJtIGNvbmZpZyBpbnRvIGRpY3QNCj4gDQo+IDxzbmlwPg0KPiANCj4gPg0KPiA+IFVzZSBkaWN0 aW9uYXJ5IGxvb2t1cCBpbnN0ZWFkIG9mIGNoZWNraW5nIGZvciBleGlzdGluZyB2YXJpYWJsZXMs DQo+ID4gaXRlcmF0aW5nIG92ZXIgYWxsIGVsZW1lbnRzIGluIHRoZSBsaXN0IG9yIGNoZWNraW5n IGxpc3RzIGZvciBvcHRpb25hbA0KPiA+IGNvbmZpZ3VyYXRpb24uIE1vdmUgdmFyaWFibGUgY29u dGVudHMgaW50byB0aGUgZGljdGlvbmFyeSBmb3INCj4gPiB2YXJpYWJsZXMgdGhhdCB3b3VsZCBi ZSByZWZlcmVuY2VkIG9ubHkgb25jZS4NCj4gPiBGYWxsYmFjayB0byBnZW5lcmljIHBhcnQgbnVt YmVyIGlmIHRoZSBkaXNjb3ZlcmVkIHBhcnQgbnVtYmVyIGlzIHVua25vd24uDQo+ID4NCj4gPiBT aWduZWQtb2ZmLWJ5OiBKdXJhaiBMaW5rZcWhIDxqdXJhai5saW5rZXNAcGFudGhlb24udGVjaD4N Cj4gPiAtLS0NCj4gPiAgY29uZmlnL2FybS9tZXNvbi5idWlsZCB8IDI4Mg0KPiA+ICsrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCAx NjAgaW5zZXJ0aW9ucygrKSwgMTIyIGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBh L2NvbmZpZy9hcm0vbWVzb24uYnVpbGQgYi9jb25maWcvYXJtL21lc29uLmJ1aWxkIGluZGV4DQo+ ID4gZWRhNDg1ZTdmLi41ZDIzMmYxYzQgMTAwNjQ0DQo+ID4gLS0tIGEvY29uZmlnL2FybS9tZXNv bi5idWlsZA0KPiA+ICsrKyBiL2NvbmZpZy9hcm0vbWVzb24uYnVpbGQNCj4gPiBAQCAtMjgsMTE1 ICsyOCwxNDYgQEAgZmxhZ3NfY29tbW9uX2RlZmF1bHQgPSBbDQo+ID4gIAlbJ1JURV9DQUNIRV9M SU5FX1NJWkUnLCAxMjhdDQo+ID4gIF0NCj4gPg0KPiA+IC0jIGltcGxlbWVudGVyIHNwZWNpZmlj IGFhcmNoNjQgZmxhZ3MsIHdpdGggbWlkZGxlIHByaW9yaXR5IC0jICh3aWxsDQo+ID4gb3Zlcndy aXRlIGNvbW1vbiBmbGFncykgLWZsYWdzX2ltcGxlbWVudGVyX2dlbmVyaWMgPSBbDQo+ID4gLQlb J1JURV9NQUNISU5FJywgJyJhcm12OGEiJ10sDQo+ID4gLQlbJ1JURV9VU0VfQzExX01FTV9NT0RF TCcsIHRydWVdLA0KPiA+IC0JWydSVEVfQ0FDSEVfTElORV9TSVpFJywgMTI4XSwNCj4gPiAtCVsn UlRFX01BWF9MQ09SRScsIDI1Nl0NCj4gPiAtXQ0KPiA+IC1mbGFnc19pbXBsZW1lbnRlcl9hcm0g PSBbDQo+ID4gLQlbJ1JURV9NQUNISU5FJywgJyJhcm12OGEiJ10sDQo+ID4gLQlbJ1JURV9VU0Vf QzExX01FTV9NT0RFTCcsIHRydWVdLA0KPiA+IC0JWydSVEVfQ0FDSEVfTElORV9TSVpFJywgNjRd LA0KPiA+IC0JWydSVEVfTUFYX0xDT1JFJywgMTZdDQo+ID4gLV0NCj4gPiAtZmxhZ3NfaW1wbGVt ZW50ZXJfY2F2aXVtID0gWw0KPiA+IC0JWydSVEVfTUFYX1ZGSU9fR1JPVVBTJywgMTI4XSwNCj4g PiAtCVsnUlRFX0NBQ0hFX0xJTkVfU0laRScsIDEyOF0sDQo+ID4gLQlbJ1JURV9NQVhfTENPUkUn LCA5Nl0sDQo+ID4gLQlbJ1JURV9NQVhfTlVNQV9OT0RFUycsIDJdDQo+ID4gLV0NCj4gPiAtZmxh Z3NfaW1wbGVtZW50ZXJfZHBhYSA9IFsNCj4gPiAtCVsnUlRFX01BQ0hJTkUnLCAnImRwYWEiJ10s DQo+ID4gLQlbJ1JURV9MSUJSVEVfRFBBQTJfVVNFX1BIWVNfSU9WQScsIGZhbHNlXSwNCj4gPiAt CVsnUlRFX1VTRV9DMTFfTUVNX01PREVMJywgdHJ1ZV0sDQo+ID4gLQlbJ1JURV9DQUNIRV9MSU5F X1NJWkUnLCA2NF0sDQo+ID4gLQlbJ1JURV9NQVhfTENPUkUnLCAxNl0sDQo+ID4gLQlbJ1JURV9N QVhfTlVNQV9OT0RFUycsIDFdDQo+ID4gLV0NCj4gPiAtZmxhZ3NfaW1wbGVtZW50ZXJfZW1hZyA9 IFsNCj4gPiAtCVsnUlRFX01BQ0hJTkUnLCAnImVtYWciJ10sDQo+ID4gLQlbJ1JURV9DQUNIRV9M SU5FX1NJWkUnLCA2NF0sDQo+ID4gLQlbJ1JURV9NQVhfTENPUkUnLCAzMl0sDQo+ID4gLQlbJ1JU RV9NQVhfTlVNQV9OT0RFUycsIDFdDQo+ID4gLV0NCj4gPiAtZmxhZ3NfaW1wbGVtZW50ZXJfYXJt YWRhID0gWw0KPiA+IC0JWydSVEVfTUFDSElORScsICciYXJtdjhhIiddLA0KPiA+IC0JWydSVEVf Q0FDSEVfTElORV9TSVpFJywgNjRdLA0KPiA+IC0JWydSVEVfTUFYX0xDT1JFJywgMTZdLA0KPiA+ IC0JWydSVEVfTUFYX05VTUFfTk9ERVMnLCAxXQ0KPiA+IC1dDQo+ID4gLQ0KPiA+IC0jIHBhcnQg bnVtYmVyIHNwZWNpZmljIGFhcmNoNjQgZmxhZ3MsIHdpdGggaGlnaGVzdCBwcmlvcml0eSAtIyAo d2lsbA0KPiA+IG92ZXJ3cml0ZSBib3RoIGNvbW1vbiBhbmQgaW1wbGVtZW50ZXIgc3BlY2lmaWMg ZmxhZ3MpDQo+ID4gZmxhZ3NfcGFydF9udW1iZXJfdGh1bmRlcnggPSBbDQo+ID4gIAlbJ1JURV9N QUNISU5FJywgJyJ0aHVuZGVyeCInXSwNCj4gPiAgCVsnUlRFX1VTRV9DMTFfTUVNX01PREVMJywg ZmFsc2VdDQo+ID4gIF0NCj4gPiAtZmxhZ3NfcGFydF9udW1iZXJfdGh1bmRlcngyID0gWw0KPiA+ IC0JWydSVEVfTUFDSElORScsICcidGh1bmRlcngyIiddLA0KPiA+IC0JWydSVEVfQVJNX0ZFQVRV UkVfQVRPTUlDUycsIHRydWVdLA0KPiA+IC0JWydSVEVfVVNFX0MxMV9NRU1fTU9ERUwnLCB0cnVl XSwNCj4gPiAtCVsnUlRFX0NBQ0hFX0xJTkVfU0laRScsIDY0XSwNCj4gPiAtCVsnUlRFX01BWF9M Q09SRScsIDI1Nl0sDQo+ID4gLQlbJ1JURV9NQVhfTlVNQV9OT0RFUycsIDJdDQo+ID4gLV0NCj4g PiAtZmxhZ3NfcGFydF9udW1iZXJfb2N0ZW9udHgyID0gWw0KPiA+IC0JWydSVEVfTUFDSElORScs ICcib2N0ZW9udHgyIiddLA0KPiA+IC0JWydSVEVfQVJNX0ZFQVRVUkVfQVRPTUlDUycsIHRydWVd LA0KPiA+IC0JWydSVEVfVVNFX0MxMV9NRU1fTU9ERUwnLCB0cnVlXSwNCj4gPiAtCVsnUlRFX0VB TF9JR0JfVUlPJywgZmFsc2VdLA0KPiA+IC0JWydSVEVfTUFYX0xDT1JFJywgMzZdLA0KPiA+IC0J WydSVEVfTUFYX05VTUFfTk9ERVMnLCAxXQ0KPiA+IC1dDQo+ID4gLWZsYWdzX3BhcnRfbnVtYmVy X24xZ2VuZXJpYyA9IFsNCj4gPiAtCVsnUlRFX01BQ0hJTkUnLCAnIm5lb3ZlcnNlLW4xIiddLA0K PiA+IC0JWydSVEVfQVJNX0ZFQVRVUkVfQVRPTUlDUycsIHRydWVdLA0KPiA+IC0JWydSVEVfVVNF X0MxMV9NRU1fTU9ERUwnLCB0cnVlXSwNCj4gPiAtCVsnUlRFX0VBTF9OVU1BX0FXQVJFX0hVR0VQ QUdFUycsIGZhbHNlXSwNCj4gPiAtCVsnUlRFX0xJQlJURV9WSE9TVF9OVU1BJywgZmFsc2VdLA0K PiA+IC0JWydSVEVfTUFYX01FTV9NQicsIDEwNDg1NzZdLA0KPiA+IC0JWydSVEVfQ0FDSEVfTElO RV9TSVpFJywgNjRdLA0KPiA+IC0JWydSVEVfTUFYX0xDT1JFJywgNjRdLA0KPiA+IC0JWydSVEVf TUFYX05VTUFfTk9ERVMnLCAxXQ0KPiA+IC1dDQo+ID4gLQ0KPiA+IC0jIGFybSBjb25maWcgKGlt cGxlbWVudGVyIDB4NDEpIGlzIHRoZSBkZWZhdWx0IGNvbmZpZyAtDQo+ID4gcGFydF9udW1iZXJf Y29uZmlnX2FybSA9IFsNCj4gPiAtCVsnZ2VuZXJpYycsIFsnLW1hcmNoPWFybXY4LWErY3JjJywg Jy1tb3V0bGluZS1hdG9taWNzJ11dLA0KPiA+IC0JWyduYXRpdmUnLCBbJy1tYXJjaD1uYXRpdmUn XV0sDQo+ID4gLQlbJzB4ZDAzJywgWyctbWNwdT1jb3J0ZXgtYTUzJ11dLA0KPiA+IC0JWycweGQw NCcsIFsnLW1jcHU9Y29ydGV4LWEzNSddXSwNCj4gPiAtCVsnMHhkMDcnLCBbJy1tY3B1PWNvcnRl eC1hNTcnXV0sDQo+ID4gLQlbJzB4ZDA4JywgWyctbWNwdT1jb3J0ZXgtYTcyJ11dLA0KPiA+IC0J WycweGQwOScsIFsnLW1jcHU9Y29ydGV4LWE3MyddXSwNCj4gPiAtCVsnMHhkMGEnLCBbJy1tY3B1 PWNvcnRleC1hNzUnXV0sDQo+ID4gLQlbJzB4ZDBiJywgWyctbWNwdT1jb3J0ZXgtYTc2J11dLA0K PiA+IC0JWycweGQwYycsIFsnLW1hcmNoPWFybXY4LjItYStjcnlwdG8nLCAnLW1jcHU9bmVvdmVy c2UtbjEnXSwNCj4gPiBmbGFnc19wYXJ0X251bWJlcl9uMWdlbmVyaWNdDQo+ID4gLV0NCj4gPiAt cGFydF9udW1iZXJfY29uZmlnX2Nhdml1bSA9IFsNCj4gPiAtCVsnZ2VuZXJpYycsIFsnLW1hcmNo PWFybXY4LWErY3JjK2NyeXB0bycsJy1tY3B1PXRodW5kZXJ4J11dLA0KPiA+IC0JWyduYXRpdmUn LCBbJy1tYXJjaD1uYXRpdmUnXV0sDQo+ID4gLQlbJzB4YTEnLCBbJy1tY3B1PXRodW5kZXJ4dDg4 J10sIGZsYWdzX3BhcnRfbnVtYmVyX3RodW5kZXJ4XSwNCj4gPiAtCVsnMHhhMicsIFsnLW1jcHU9 dGh1bmRlcnh0ODEnXSwgZmxhZ3NfcGFydF9udW1iZXJfdGh1bmRlcnhdLA0KPiA+IC0JWycweGEz JywgWyctbWNwdT10aHVuZGVyeHQ4MyddLCBmbGFnc19wYXJ0X251bWJlcl90aHVuZGVyeF0sDQo+ ID4gLQlbJzB4YWYnLCBbJy1tYXJjaD1hcm12OC4xLWErY3JjK2NyeXB0bycsJy1tY3B1PXRodW5k ZXJ4MnQ5OSddLA0KPiA+IGZsYWdzX3BhcnRfbnVtYmVyX3RodW5kZXJ4Ml0sDQo+ID4gLQlbJzB4 YjInLCBbJy1tYXJjaD1hcm12OC4yLWErY3JjK2NyeXB0bytsc2UnLCctbWNwdT1vY3Rlb250eDIn XSwNCj4gPiBmbGFnc19wYXJ0X251bWJlcl9vY3Rlb250eDJdDQo+ID4gLV0NCj4gPiAtcGFydF9u dW1iZXJfY29uZmlnX2VtYWcgPSBbDQo+ID4gLQlbJ2dlbmVyaWMnLCBbJy1tYXJjaD1hcm12OC1h K2NyYytjcnlwdG8nLCAnLW10dW5lPWVtYWcnXV0sDQo+ID4gLQlbJ25hdGl2ZScsIFsnLW1hcmNo PW5hdGl2ZSddXQ0KPiA+IC1dDQo+ID4gK3BhcnRfbnVtYmVyX2NvbmZpZ19hcm0gPSB7DQo+ID4g KwknZ2VuZXJpYyc6IHsnbWFjaGluZV9hcmdzJzogIFsnLW1hcmNoPWFybXY4LWErY3JjJywgJy1t b3V0bGluZS0NCj4gPiBhdG9taWNzJ119LA0KPiA+ICsJJ25hdGl2ZSc6IHsnbWFjaGluZV9hcmdz JzogIFsnLW1hcmNoPW5hdGl2ZSddfSwNCj4gPiArCScweGQwMyc6IHsnbWFjaGluZV9hcmdzJzog IFsnLW1jcHU9Y29ydGV4LWE1MyddfSwNCj4gPiArCScweGQwNCc6IHsnbWFjaGluZV9hcmdzJzog IFsnLW1jcHU9Y29ydGV4LWEzNSddfSwNCj4gPiArCScweGQwNyc6IHsnbWFjaGluZV9hcmdzJzog IFsnLW1jcHU9Y29ydGV4LWE1NyddfSwNCj4gPiArCScweGQwOCc6IHsnbWFjaGluZV9hcmdzJzog IFsnLW1jcHU9Y29ydGV4LWE3MiddfSwNCj4gPiArCScweGQwOSc6IHsnbWFjaGluZV9hcmdzJzog IFsnLW1jcHU9Y29ydGV4LWE3MyddfSwNCj4gPiArCScweGQwYSc6IHsnbWFjaGluZV9hcmdzJzog IFsnLW1jcHU9Y29ydGV4LWE3NSddfSwNCj4gPiArCScweGQwYic6IHsnbWFjaGluZV9hcmdzJzog IFsnLW1jcHU9Y29ydGV4LWE3NiddfSwNCj4gPiArCScweGQwYyc6IHsNCj4gPiArCQknbWFjaGlu ZV9hcmdzJzogIFsnLW1hcmNoPWFybXY4LjItYStjcnlwdG8nLCAnLQ0KPiA+IG1jcHU9bmVvdmVy c2UtbjEnXSwNCj4gPiArCQknZmxhZ3MnOiBbDQo+ID4gKwkJCVsnUlRFX01BQ0hJTkUnLCAnIm5l b3ZlcnNlLW4xIiddLA0KPiA+ICsJCQlbJ1JURV9BUk1fRkVBVFVSRV9BVE9NSUNTJywgdHJ1ZV0s DQo+ID4gKwkJCVsnUlRFX1VTRV9DMTFfTUVNX01PREVMJywgdHJ1ZV0sDQo+ID4gKwkJCVsnUlRF X0VBTF9OVU1BX0FXQVJFX0hVR0VQQUdFUycsIGZhbHNlXSwNCj4gPiArCQkJWydSVEVfTElCUlRF X1ZIT1NUX05VTUEnLCBmYWxzZV0sDQo+ID4gKwkJCVsnUlRFX01BWF9NRU1fTUInLCAxMDQ4NTc2 XSwNCj4gPiArCQkJWydSVEVfQ0FDSEVfTElORV9TSVpFJywgNjRdLA0KPiA+ICsJCQlbJ1JURV9N QVhfTENPUkUnLCA2NF0sDQo+ID4gKwkJCVsnUlRFX01BWF9OVU1BX05PREVTJywgMV0NCj4gPiAr CQldDQo+ID4gKwl9DQo+ID4gK30NCj4gPg0KPiA+IC0jIyBBcm0gaW1wbGVtZW50ZXIgSUQgKE1J RFIgaW4gQXJtIEFyY2hpdGVjdHVyZSBSZWZlcmVuY2UgTWFudWFsKSAtDQo+ID4gaW1wbGVtZW50 ZXJfZ2VuZXJpYyA9IFsnR2VuZXJpYyBhcm12OCcsIGZsYWdzX2ltcGxlbWVudGVyX2dlbmVyaWMs DQo+ID4gcGFydF9udW1iZXJfY29uZmlnX2FybV0NCj4gPiAtaW1wbGVtZW50ZXJfMHg0MSA9IFsn QXJtJywgZmxhZ3NfaW1wbGVtZW50ZXJfYXJtLA0KPiA+IHBhcnRfbnVtYmVyX2NvbmZpZ19hcm1d DQo+ID4gLWltcGxlbWVudGVyXzB4NDMgPSBbJ0Nhdml1bScsIGZsYWdzX2ltcGxlbWVudGVyX2Nh dml1bSwNCj4gPiBwYXJ0X251bWJlcl9jb25maWdfY2F2aXVtXQ0KPiA+IC1pbXBsZW1lbnRlcl8w eDUwID0gWydBbXBlcmUgQ29tcHV0aW5nJywgZmxhZ3NfaW1wbGVtZW50ZXJfZW1hZywNCj4gPiBw YXJ0X251bWJlcl9jb25maWdfZW1hZ10NCj4gPiAtaW1wbGVtZW50ZXJfMHg1NiA9IFsnTWFydmVs bCBBUk1BREEnLCBmbGFnc19pbXBsZW1lbnRlcl9hcm1hZGEsDQo+ID4gcGFydF9udW1iZXJfY29u ZmlnX2FybV0gLWltcGxlbWVudGVyX2RwYWEgPSBbJ05YUCBEUEFBJywNCj4gPiBmbGFnc19pbXBs ZW1lbnRlcl9kcGFhLCBwYXJ0X251bWJlcl9jb25maWdfYXJtXQ0KPiA+ICsjIyBBcm0gaW1wbGVt ZW50ZXJzIChJRCBmcm9tIE1JRFIgaW4gQXJtIEFyY2hpdGVjdHVyZSBSZWZlcmVuY2UNCj4gPiAr TWFudWFsKSAjIyBQYXJ0IG51bWJlcnMgYXJlIHNwZWNpZmljIHRvIEFybSBpbXBsZW1lbnRlcnMg Iw0KPiA+ICtpbXBsZW1lbnRlciBzcGVjaWZpYw0KPiA+ICthYXJjaDY0IGZsYWdzIGhhdmUgbWlk ZGxlIHByaW9yaXR5DQo+ID4gKyMgICAgICh3aWxsIG92ZXJ3cml0ZSBjb21tb24gZmxhZ3MpDQo+ ID4gKyMgcGFydCBudW1iZXIgc3BlY2lmaWMgYWFyY2g2NCBmbGFncyBoYXZlIHRoZSBoaWdoZXN0 IHByaW9yaXR5DQo+ID4gKyMgICAgICh3aWxsIG92ZXJ3cml0ZSBib3RoIGNvbW1vbiBhbmQgaW1w bGVtZW50ZXIgc3BlY2lmaWMgZmxhZ3MpDQo+ID4gK2ltcGxlbWVudGVycyA9IHsNCj4gSSB0aGlu ayB0aGlzIG9uZSBpcyBiaWcuIEl0IHdpbGwgZ3JvdyBmdXJ0aGVyIGluIHRoZSBmdXR1cmUuIEkg bGlrZSB0aGUgZXhpc3Rpbmcgb25lLA0KPiB3aGljaCBpcyBkaXMtaW50ZWdyYXRlZCBpbnRvIHNt YWxsZXIgY2h1bmtzIGFuZCBpcyBlYXN5IHRvIG1haW50YWluIGluIHRoZSBmdXR1cmUuDQo+IA0K DQpNeSBtYWluIGNvbmNlcm4gd2FzIHdpdGggdGhlIHJlYWRhYmlsaXR5L3VuZGVyc3RhbmRhYmls aXR5IG9mIHRoZSBkYXRhICh3aGljaCBhZmZlY3RzIG1haW50ZW5hbmNlKSwgYXQgbGVhc3Qgd2hl biBhIG5ld2NvbWVyIHRyaWVzIHRvIHdyYXAgdGhlaXIgaGVhZCBhcm91bmQgdGhlbS4gVGhlIGRh dGEgYXJlIGhpZXJhcmNoaWNhbCBhbmQgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGltcGxlbWVu dGVyIElEIGFuZCBwYXJ0IG51bWJlciBhbmQgdGhlIG9yZGVyIG9mIGZsYWcgYXBwbGljYXRpb24g aXMgbW9yZSBhcHBhcmVudCB3aGVuIG9yZ2FuaXplZCB0aGlzIHdheSwgYWx0aG91Z2ggaXQgY291 bGQgYmVjYXVzZSBvZiBiZXR0ZXIgZm9ybWF0dGluZyBhbmQgYmV0dGVyIHZhcmlhYmxlIG5hbWVz LiBUaGUgYmlnZ2VyIGRpZmZlcmVuY2UgaXMgaW4gdGhlIGNvZGUgLSB1c2luZyBpbXBsZW1lbnRl cl9jb25maWdbJ3BhcnRfbnVtYmVyX2NvbmZpZyddIGltbWVkaWF0ZWx5IHRlbGxzIHlvdSB3aGF0 IGRhdGEgYXJlIHlvdSB3b3JraW5nIHdpdGggYXMgb3Bwb3NlZCB0byBpbXBsZW1lbnRlcl9jb25m aWdbMl0uDQoNCkknbSBhbHNvIGxvb2tpbmcgYXQgbWFpbnRlbmFuY2UgaW4gdGVybXMgb2YgIndo ZXJlIGluIHRoaXMgZmlsZSBkbyBJIG5lZWQgdG8gY2hhbmdlL2FkZCB0aGluZ3MgZm9yIHRoaXMg aW1wbGVtZW50ZXIgb3IgdGhlaXIgcGFydCBudW1iZXIiLCB3aGljaCBpbmZvcm1lZCBteSBtb3Rp dmF0aW9uIGZvciAoYWxtb3N0KSByZW1vdmluZyB0aGUgZnJhZ21lbnRhdGlvbiwgd2hpY2ggd2Ug ZG9uJ3QgaGF2ZSB0byBkbywgYnV0IGl0IG1hZGUgc2Vuc2UgdG8gbWUuIFRoaXMgd2F5LCBpZiBJ J20gbG9va2luZyBmb3Igc29tZSBjb25maWd1cmF0aW9uIEkga25vdyBleGFjdGx5IHdoZXJlIHRv IGZpbmQgaXQgaW4gdGhlIGZpbGUgKHVuZGVyIHBhcnRpY3VsYXIgaW1wbGVtZW50ZXIgSUQvcGFy dCBudW1iZXIpIGFuZCBJIGRvbid0IGhhdmUgdG8gY2hhc2UgdmFyaWFibGVzIGFyb3VuZCwgYWx0 aG91Z2ggdGhpcyBpcyBzb21ld2hhdCBhbGxldmlhdGVkIGJ5IGJldHRlciB2YXJpYWJsZSBuYW1l cy4gT3IgaW4gb3RoZXIgd29yZHMgaGF2aW5nIHJlbGF0ZWQgY29uZmlndXJhdGlvbiBpbiBvbmUg cGxhY2UgcmF0aGVyIHRoYW4gZnJhZ21lbnRlZCBpbiBtdWx0aXBsZSBwbGFjZXMgaXMgYmV0dGVy IG9yZ2FuaXphdGlvbiBvZiB0aGUgZGF0YSBpbiBteSB2aWV3LCBib3RoIGluIHRlcm1zIG9mIHJl YWRhYmlsaXR5IGFuZCBtYWludGFpbmFiaWxpdHkuIA0KDQpJIGRvbid0IGFjdHVhbGx5IHNlZSBo b3cgaGF2aW5nIGZyYWdtZW50ZWQgY29uZmlndXJhdGlvbiBpcyBiZXR0ZXIgd2hlbiBpdCdzIGdv aW5nIHRvIGdyb3cuIFRoZSBkaXNqb2ludGVkIHBhcnRzIHdoaWNoIGFyZSBsb2dpY2FsbHkgY29u bmVjdGVkIChpbXBsZW1ldGVyIGNvbmZpZ3VyYXRpb24gY29ubmVjdGVkIHRvIGl0cyBwYXJ0IG51 bWJlciBjb25maWcpIGFyZSBvbmx5IGdvaW5nIHRvIGJlIGZ1cnRoZXIgYXBhcnQgaW4gdGhlIGNv ZGUsIGNhdXNpbmcgbW9yZSBwb3RlbnRpYWwgY29uZnVzaW9uLiBXaGVuIHdlIGhhdmUgY29uZmln dXJhdGlvbiBvcmdhbml6ZWQgYnkgdGhlaXIgcmVsYXRpb25zaGlwIG5ldyBhZGRpdGlvbnMgd29u J3QgcmVhbGx5IGFmZmVjdCBleGlzdGluZyBvcmdhbml6YXRpb24gLSBlLmcuIHdoZW4gd2UgYWRk IGEgbmV3IGltcGxlbWVudGVyLCBpdCB3b24ndCBtb3ZlIHRoZSBjb25maWd1cmF0aW9uIHdpdGhp biBvdGhlciBpbXBsZW1lbnRlcnM7IHRoZSBvdGhlciBpbXBsZW1lbnRlcidzIGNvbmZpZ3VyYXRp b24gd29uJ3QgYmUgYWZmZWN0ZWQuDQoNCklmIEkgdW5kZXJzdGFuZCBjb3JyZWN0bHksIHlvdXIg Z3JpcGUgaXMgbm90IHdpdGggdXNpbmcgYSBkaWN0aW9uYXJ5IChvciBob3cgSSd2ZSBmb3JtYXR0 ZWQgdGhlIGRhdGEgaW4gaXQpLCBidXQgcmF0aGVyIHdpdGggdGhlIHJlbW92YWwgb2YgZnJhZ21l bnRhdGlvbi4gSSdkIGxpa2UgdG8ga2VlcCB0aGUgZGljdGlvbmFyaWVzIChhbmQgZm9ybWF0dGlu ZyksIHNpbmNlIGl0IHJlc3VsdHMgaW4gbW9yZSByZWFkYWJsZSBjb2RlLiBJIGNvdWxkIHB1dCB0 aGUgZnJhZ21lbnRldGlvbiBiYWNrIGluIHBsYWNlLCBidXQgSSBkb24ndCB0aGluayBpdCdzIGJl dHRlciBtYWludGFuZW5jZS13aXNlLg0KDQo+ID4gKwknZ2VuZXJpYyc6IHsNCj4gPiArCQknZGVz Y3JpcHRpb24nOiAnR2VuZXJpYyBhcm12OCcsDQo+ID4gKwkJJ2ZsYWdzJzogWw0KPiA+ICsJCQlb J1JURV9NQUNISU5FJywgJyJhcm12OGEiJ10sDQo+ID4gKwkJCVsnUlRFX1VTRV9DMTFfTUVNX01P REVMJywgdHJ1ZV0sDQo+ID4gKwkJCVsnUlRFX0NBQ0hFX0xJTkVfU0laRScsIDEyOF0sDQo+ID4g KwkJCVsnUlRFX01BWF9MQ09SRScsIDI1Nl0NCj4gPiArCQldLA0KPiA+ICsJCSdwYXJ0X251bWJl cl9jb25maWcnOiBwYXJ0X251bWJlcl9jb25maWdfYXJtDQo+ID4gKwl9LA0KPiA+ICsJJzB4NDEn OiB7DQo+ID4gKwkJJ2Rlc2NyaXB0aW9uJzogJ0FybScsDQo+ID4gKwkJJ2ZsYWdzJzogWw0KPiA+ ICsJCQlbJ1JURV9NQUNISU5FJywgJyJhcm12OGEiJ10sDQo+ID4gKwkJCVsnUlRFX1VTRV9DMTFf TUVNX01PREVMJywgdHJ1ZV0sDQo+ID4gKwkJCVsnUlRFX0NBQ0hFX0xJTkVfU0laRScsIDY0XSwN Cj4gPiArCQkJWydSVEVfTUFYX0xDT1JFJywgMTZdDQo+ID4gKwkJXSwNCj4gPiArCQkncGFydF9u dW1iZXJfY29uZmlnJzogcGFydF9udW1iZXJfY29uZmlnX2FybQ0KPiA+ICsJfSwNCj4gPiArCScw eDQzJzogew0KPiA+ICsJCSdkZXNjcmlwdGlvbic6ICdDYXZpdW0nLA0KPiA+ICsJCSdmbGFncyc6 IFsNCj4gPiArCQkJWydSVEVfTUFYX1ZGSU9fR1JPVVBTJywgMTI4XSwNCj4gPiArCQkJWydSVEVf Q0FDSEVfTElORV9TSVpFJywgMTI4XSwNCj4gPiArCQkJWydSVEVfTUFYX0xDT1JFJywgOTZdLA0K PiA+ICsJCQlbJ1JURV9NQVhfTlVNQV9OT0RFUycsIDJdDQo+ID4gKwkJXSwNCj4gPiArCQkncGFy dF9udW1iZXJfY29uZmlnJzogew0KPiA+ICsJCQknZ2VuZXJpYyc6IHsnbWFjaGluZV9hcmdzJzog WyctbWFyY2g9YXJtdjgtDQo+ID4gYStjcmMrY3J5cHRvJywgJy1tY3B1PXRodW5kZXJ4J119LA0K PiA+ICsJCQknbmF0aXZlJzogeydtYWNoaW5lX2FyZ3MnOiBbJy1tYXJjaD1uYXRpdmUnXX0sDQo+ ID4gKwkJCScweGExJzogew0KPiA+ICsJCQkJJ21hY2hpbmVfYXJncyc6IFsnLW1jcHU9dGh1bmRl cnh0ODgnXSwNCj4gPiArCQkJCSdmbGFncyc6IGZsYWdzX3BhcnRfbnVtYmVyX3RodW5kZXJ4DQo+ ID4gKwkJCX0sDQo+ID4gKwkJCScweGEyJzogew0KPiA+ICsJCQkJJ21hY2hpbmVfYXJncyc6IFsn LW1jcHU9dGh1bmRlcnh0ODEnXSwNCj4gPiArCQkJCSdmbGFncyc6IGZsYWdzX3BhcnRfbnVtYmVy X3RodW5kZXJ4DQo+ID4gKwkJCX0sDQo+ID4gKwkJCScweGEzJzogew0KPiA+ICsJCQkJJ21hY2hp bmVfYXJncyc6IFsnLW1jcHU9dGh1bmRlcnh0ODMnXSwNCj4gPiArCQkJCSdmbGFncyc6IGZsYWdz X3BhcnRfbnVtYmVyX3RodW5kZXJ4DQo+ID4gKwkJCX0sDQo+ID4gKwkJCScweGFmJzogew0KPiA+ ICsJCQkJJ21hY2hpbmVfYXJncyc6IFsnLW1hcmNoPWFybXY4LjEtDQo+ID4gYStjcmMrY3J5cHRv JywnLW1jcHU9dGh1bmRlcngydDk5J10sDQo+ID4gKwkJCQknZmxhZ3MnOiBbDQo+ID4gKwkJCQkJ WydSVEVfTUFDSElORScsICcidGh1bmRlcngyIiddLA0KPiA+ICsJCQkJCVsnUlRFX0FSTV9GRUFU VVJFX0FUT01JQ1MnLA0KPiA+IHRydWVdLA0KPiA+ICsJCQkJCVsnUlRFX1VTRV9DMTFfTUVNX01P REVMJywgdHJ1ZV0sDQo+ID4gKwkJCQkJWydSVEVfQ0FDSEVfTElORV9TSVpFJywgNjRdLA0KPiA+ ICsJCQkJCVsnUlRFX01BWF9MQ09SRScsIDI1Nl0sDQo+ID4gKwkJCQkJWydSVEVfTUFYX05VTUFf Tk9ERVMnLCAyXQ0KPiA+ICsJCQkJXQ0KPiA+ICsJCQl9LA0KPiA+ICsJCQknMHhiMic6IHsNCj4g PiArCQkJCSdtYWNoaW5lX2FyZ3MnOiBbJy1tYXJjaD1hcm12OC4yLQ0KPiA+IGErY3JjK2NyeXB0 bytsc2UnLCctbWNwdT1vY3Rlb250eDInXSwNCj4gPiArCQkJCSdmbGFncyc6IFsNCj4gPiArCQkJ CQlbJ1JURV9NQUNISU5FJywgJyJvY3Rlb250eDIiJ10sDQo+ID4gKwkJCQkJWydSVEVfQVJNX0ZF QVRVUkVfQVRPTUlDUycsDQo+ID4gdHJ1ZV0sDQo+ID4gKwkJCQkJWydSVEVfVVNFX0MxMV9NRU1f TU9ERUwnLCB0cnVlXSwNCj4gPiArCQkJCQlbJ1JURV9FQUxfSUdCX1VJTycsIGZhbHNlXSwNCj4g PiArCQkJCQlbJ1JURV9NQVhfTENPUkUnLCAzNl0sDQo+ID4gKwkJCQkJWydSVEVfTUFYX05VTUFf Tk9ERVMnLCAxXQ0KPiA+ICsJCQkJXQ0KPiA+ICsJCQl9DQo+ID4gKwkJfQ0KPiA+ICsJfSwNCj4g PiArCScweDUwJzogew0KPiA+ICsJCSdkZXNjcmlwdGlvbic6ICdBbXBlcmUgQ29tcHV0aW5nJywN Cj4gPiArCQknZmxhZ3MnOiBbDQo+ID4gKwkJCVsnUlRFX01BQ0hJTkUnLCAnImVtYWciJ10sDQo+ ID4gKwkJCVsnUlRFX0NBQ0hFX0xJTkVfU0laRScsIDY0XSwNCj4gPiArCQkJWydSVEVfTUFYX0xD T1JFJywgMzJdLA0KPiA+ICsJCQlbJ1JURV9NQVhfTlVNQV9OT0RFUycsIDFdDQo+ID4gKwkJXSwN Cj4gPiArCQkncGFydF9udW1iZXJfY29uZmlnJzogew0KPiA+ICsJCQknZ2VuZXJpYyc6IHsnbWFj aGluZV9hcmdzJzogIFsnLW1hcmNoPWFybXY4LQ0KPiA+IGErY3JjK2NyeXB0bycsICctbXR1bmU9 ZW1hZyddfSwNCj4gPiArCQkJJ25hdGl2ZSc6IHsnbWFjaGluZV9hcmdzJzogIFsnLW1hcmNoPW5h dGl2ZSddfQ0KPiA+ICsJCX0NCj4gPiArCX0sDQo+ID4gKwknMHg1Nic6IHsNCj4gPiArCQknZGVz Y3JpcHRpb24nOiAnTWFydmVsbCBBUk1BREEnLA0KPiA+ICsJCSdmbGFncyc6IFsNCj4gPiArCQkJ WydSVEVfTUFDSElORScsICciYXJtdjhhIiddLA0KPiA+ICsJCQlbJ1JURV9DQUNIRV9MSU5FX1NJ WkUnLCA2NF0sDQo+ID4gKwkJCVsnUlRFX01BWF9MQ09SRScsIDE2XSwNCj4gPiArCQkJWydSVEVf TUFYX05VTUFfTk9ERVMnLCAxXQ0KPiA+ICsJCV0sDQo+ID4gKwkJJ3BhcnRfbnVtYmVyX2NvbmZp Zyc6IHBhcnRfbnVtYmVyX2NvbmZpZ19hcm0NCj4gPiArCX0sDQo+ID4gKwknZHBhYSc6IHsNCj4g PiArCQknZGVzY3JpcHRpb24nOiAnTlhQIERQQUEnLA0KPiA+ICsJCSdmbGFncyc6IFsNCj4gPiAr CQkJWydSVEVfTUFDSElORScsICciZHBhYSInXSwNCj4gPiArCQkJWydSVEVfTElCUlRFX0RQQUEy X1VTRV9QSFlTX0lPVkEnLCBmYWxzZV0sDQo+ID4gKwkJCVsnUlRFX1VTRV9DMTFfTUVNX01PREVM JywgdHJ1ZV0sDQo+ID4gKwkJCVsnUlRFX0NBQ0hFX0xJTkVfU0laRScsIDY0XSwNCj4gPiArCQkJ WydSVEVfTUFYX0xDT1JFJywgMTZdLA0KPiA+ICsJCQlbJ1JURV9NQVhfTlVNQV9OT0RFUycsIDFd DQo+ID4gKwkJXSwNCj4gPiArCQkncGFydF9udW1iZXJfY29uZmlnJzogcGFydF9udW1iZXJfY29u ZmlnX2FybQ0KPiA+ICsJfQ0KPiA+ICt9DQo+ID4NCj4gPiAgZHBka19jb25mLnNldCgnUlRFX0FS Q0hfQVJNJywgMSkNCj4gPiAgZHBka19jb25mLnNldCgnUlRFX0ZPUkNFX0lOVFJJTlNJQ1MnLCAx KSBAQCAtMTUyLDcgKzE4Myw3IEBAIGVsc2UNCj4gPiAgCWltcGxlbWVudGVyX2lkID0gJ2dlbmVy aWMnDQo+ID4gIAlpZiBtYWNoaW5lID09ICdnZW5lcmljJyBhbmQgbm90IG1lc29uLmlzX2Nyb3Nz X2J1aWxkKCkNCj4gPiAgCQkjIGdlbmVyaWMgYnVpbGQNCj4gPiAtCQlpbXBsZW1lbnRlcl9jb25m aWcgPSBpbXBsZW1lbnRlcl9nZW5lcmljDQo+ID4gKwkJaW1wbGVtZW50ZXJfY29uZmlnID0gaW1w bGVtZW50ZXJbJ2dlbmVyaWMnXQ0KPiA+ICAJCXBhcnRfbnVtYmVyID0gJ2dlbmVyaWMnDQo+ID4g IAllbGlmIG5vdCBtZXNvbi5pc19jcm9zc19idWlsZCgpDQo+ID4gIAkJIyBuYXRpdmUgYnVpbGQN Cj4gPiBAQCAtMTY3LDkgKzE5OCw5IEBAIGVsc2UNCj4gPiAgCQkJcGFydF9udW1iZXIgPSBjbWRf b3V0cHV0WzNdDQo+ID4gIAkJZW5kaWYNCj4gPiAgCQkjIFNldCB0byBnZW5lcmljIGlmIHZhcmlh YmxlIGlzIG5vdCBmb3VuZA0KPiA+IC0JCWltcGxlbWVudGVyX2NvbmZpZyA9IGdldF92YXJpYWJs ZSgnaW1wbGVtZW50ZXJfJyArDQo+ID4gaW1wbGVtZW50ZXJfaWQsIFsnZ2VuZXJpYyddKQ0KPiA+ ICsJCWltcGxlbWVudGVyX2NvbmZpZyA9IGltcGxlbWVudGVycy5nZXQoaW1wbGVtZW50ZXJfaWQs DQo+ID4gWydnZW5lcmljJ10pDQo+ID4gIAkJaWYgaW1wbGVtZW50ZXJfY29uZmlnWzBdID09ICdn ZW5lcmljJw0KPiA+IC0JCQlpbXBsZW1lbnRlcl9jb25maWcgPSBpbXBsZW1lbnRlcl9nZW5lcmlj DQo+ID4gKwkJCWltcGxlbWVudGVyX2NvbmZpZyA9IGltcGxlbWVudGVyWydnZW5lcmljJ10NCj4g PiAgCQkJcGFydF9udW1iZXIgPSAnZ2VuZXJpYycNCj4gPiAgCQllbmRpZg0KPiA+ICAJCWlmIGFy bV9mb3JjZV9uYXRpdmVfbWFyY2ggPT0gdHJ1ZQ0KPiA+IEBAIC0xNzksMjggKzIxMCwzNSBAQCBl bHNlDQo+ID4gIAkJIyBjcm9zcyBidWlsZA0KPiA+ICAJCWltcGxlbWVudGVyX2lkID0NCj4gPiBt ZXNvbi5nZXRfY3Jvc3NfcHJvcGVydHkoJ2ltcGxlbWVudGVyX2lkJywgJ2dlbmVyaWMnKQ0KPiA+ ICAJCXBhcnRfbnVtYmVyID0gbWVzb24uZ2V0X2Nyb3NzX3Byb3BlcnR5KCdwYXJ0X251bWJlcics DQo+ID4gJ2dlbmVyaWMnKQ0KPiA+IC0JCWltcGxlbWVudGVyX2NvbmZpZyA9IGdldF92YXJpYWJs ZSgnaW1wbGVtZW50ZXJfJyArDQo+ID4gaW1wbGVtZW50ZXJfaWQpDQo+ID4gKwkJaW1wbGVtZW50 ZXJfY29uZmlnID0gaW1wbGVtZW50ZXJzLmdldChpbXBsZW1lbnRlcl9pZCkNCj4gPiAgCWVuZGlm DQo+ID4NCj4gPiAtCW1lc3NhZ2UoJ0FybSBpbXBsZW1lbnRlcjogJyArIGltcGxlbWVudGVyX2Nv bmZpZ1swXSkNCj4gPiArCW1lc3NhZ2UoJ0FybSBpbXBsZW1lbnRlcjogJyArIGltcGxlbWVudGVy X2NvbmZpZ1snZGVzY3JpcHRpb24nXSkNCj4gPiAgCW1lc3NhZ2UoJ0FybSBwYXJ0IG51bWJlcjog JyArIHBhcnRfbnVtYmVyKQ0KPiA+DQo+ID4gKwlwYXJ0X251bWJlcl9jb25maWcgPSBpbXBsZW1l bnRlcl9jb25maWdbJ3BhcnRfbnVtYmVyX2NvbmZpZyddDQo+ID4gKwlpZiBwYXJ0X251bWJlcl9j b25maWcuaGFzX2tleShwYXJ0X251bWJlcikNCj4gPiArCQkjIHVzZSB0aGUgc3BlY2lmaWVkIHBh cnRfbnVtYmVyIG1hY2hpbmUgYXJncyBpZiBmb3VuZA0KPiA+ICsJCXBhcnRfbnVtYmVyX2NvbmZp ZyA9IHBhcnRfbnVtYmVyX2NvbmZpZ1twYXJ0X251bWJlcl0NCj4gPiArCWVsaWYgbm90IG1lc29u LmlzX2Nyb3NzX2J1aWxkKCkNCj4gPiArCQkjIGRlZmF1bHQgdG8gZ2VuZXJpYyBtYWNoaW5lIGFy Z3MgaWYgcGFydF9udW1iZXIgaXMgbm90IGZvdW5kDQo+ID4gKwkJIyBhbmQgbm90IGZvcmNpbmcg bmF0aXZlIG1hY2hpbmUgYXJncw0KPiA+ICsJCSMgYnV0IGRvbid0IGRlZmF1bHQgaW4gY3Jvc3Mt YnVpbGRzOyBpZiBwYXJ0X251bWJlciBpcyBzcGVjaWZpZWQNCj4gPiArCQkjIGluY29ycmVjdGx5 IGluIGEgY3Jvc3MtZmlsZSwgaXQgbmVlZHMgdG8gYmUgZml4ZWQgdGhlcmUNCj4gPiArCQlwYXJ0 X251bWJlcl9jb25maWcgPSBwYXJ0X251bWJlcl9jb25maWdbJ2dlbmVyaWMnXQ0KPiA+ICsJZWxz ZQ0KPiA+ICsJCSMgZG9pbmcgY3Jvc3MgYnVpbGQgYW5kIHBhcnQgbnVtYmVyIGlzIG5vdCBpbg0K PiA+IHBhcnRfbnVtYmVyX2NvbmZpZw0KPiA+ICsJCWVycm9yKCdDcm9zcyBidWlsZCBwYXJ0IG51 bWJlciAwQDAgbm90DQo+ID4gZm91bmQuJy5mb3JtYXQocGFydF9udW1iZXIpKQ0KPiA+ICsJZW5k aWYNCj4gPiArDQo+ID4gIAkjIHVzZSBkZWZhdWx0IGZsYWdzIHdpdGggaW1wbGVtZW50ZXIgZmxh Z3MNCj4gPiAtCWRwZGtfZmxhZ3MgPSBmbGFnc19jb21tb25fZGVmYXVsdCArIGltcGxlbWVudGVy X2NvbmZpZ1sxXQ0KPiA+ICsJZHBka19mbGFncyA9IGZsYWdzX2NvbW1vbl9kZWZhdWx0ICsgaW1w bGVtZW50ZXJfY29uZmlnWydmbGFncyddICsNCj4gPiArcGFydF9udW1iZXJfY29uZmlnLmdldCgn ZmxhZ3MnLCBbXSkNCj4gPg0KPiA+ICsJIyBhcHBseSBzdXBwb3J0ZWQgbWFjaGluZSBhcmdzDQo+ ID4gIAltYWNoaW5lX2FyZ3MgPSBbXSAjIENsZWFyIHByZXZpb3VzIG1hY2hpbmUgYXJncw0KPiA+ IC0JZm9yZWFjaCBtYXJnOiBpbXBsZW1lbnRlcl9jb25maWdbMl0NCj4gPiAtCQlpZiBtYXJnWzBd ID09IHBhcnRfbnVtYmVyDQo+ID4gLQkJCSMgYXBwbHkgc3VwcG9ydGVkIG1hY2hpbmUgYXJncw0K PiA+IC0JCQlmb3JlYWNoIGZsYWc6IG1hcmdbMV0NCj4gPiAtCQkJCWlmIGNjLmhhc19hcmd1bWVu dChmbGFnKQ0KPiA+IC0JCQkJCW1hY2hpbmVfYXJncyArPSBmbGFnDQo+ID4gLQkJCQllbmRpZg0K PiA+IC0JCQllbmRmb3JlYWNoDQo+ID4gLQkJCWlmIG1hcmcubGVuZ3RoKCkgPiAyDQo+ID4gLQkJ CQkjIGFkZCBleHRyYSBmbGFncyBmb3IgdGhlIHBhcnQNCj4gPiAtCQkJCWRwZGtfZmxhZ3MgKz0g bWFyZ1syXQ0KPiA+IC0JCQllbmRpZg0KPiA+ICsJZm9yZWFjaCBmbGFnOiBwYXJ0X251bWJlcl9j b25maWdbJ21hY2hpbmVfYXJncyddDQo+ID4gKwkJaWYgY2MuaGFzX2FyZ3VtZW50KGZsYWcpDQo+ ID4gKwkJCW1hY2hpbmVfYXJncyArPSBmbGFnDQo+ID4gIAkJZW5kaWYNCj4gPiAgCWVuZGZvcmVh Y2gNCj4gPg0KPiA+IC0tDQo+ID4gMi4yMC4xDQoNCg==