From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from ptx.hi.pengutronix.de ([2001:67c:670:100:1d::c0]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kL3nX-0000iD-II for ptxdist@pengutronix.de; Wed, 23 Sep 2020 14:22:59 +0200 Received: from rhi by ptx.hi.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1kL3nX-0007g4-9M for ptxdist@pengutronix.de; Wed, 23 Sep 2020 14:22:59 +0200 Date: Wed, 23 Sep 2020 14:22:59 +0200 From: Roland Hieber Message-ID: <20200923122259.4ikbjceje6zhvzsc@pengutronix.de> References: <20200921221728.3229-1-rhi@pengutronix.de> <20200921221728.3229-7-rhi@pengutronix.de> <20200922094622.GG11021@pengutronix.de> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20200922094622.GG11021@pengutronix.de> Subject: Re: [ptxdist] [PATCH 7/7] ptxdist: add 'init' commands to create new configs List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ptxdist-bounces@pengutronix.de Sender: "ptxdist" To: ptxdist@pengutronix.de T24gVHVlLCBTZXAgMjIsIDIwMjAgYXQgMTE6NDY6MjJBTSArMDIwMCwgTWljaGFlbCBPbGJyaWNo IHdyb3RlOgo+IE9uIFR1ZSwgU2VwIDIyLCAyMDIwIGF0IDEyOjE3OjI4QU0gKzAyMDAsIFJvbGFu ZCBIaWViZXIgd3JvdGU6Cj4gPiBUaGUgZ29hbCBoZXJlIGlzIHRvIGdpdmUgdXNlcnMgYSB3YXkg dG8gY3JlYXRlIGEgd29ya2luZyBCU1Agb3IgcGxhdGZvcm0KPiA+IGZyb20gc2NyYXRjaCBieSBh c2tpbmcgb25seSBhIG1pbmltYWwgc2V0IG9mIHJlbGV2YW50IHF1ZXN0aW9ucyBhbmQKPiA+IGxl dHRpbmcgdGhlIHVzZXIgcHJlc3MgRW50ZXIgYWJvdXQgMTUgdGltZXMsIGluc3RlYWQgb2YgYXNr aW5nIGV2ZXJ5Cj4gPiBxdWVzdGlvbiBpbiB0aGUgd2hvbGUgcGxhdGZvcm0gYW5kIHB0eGNvbmZp ZyBtZW51LCB3aGljaCB3b3VsZCByZXF1aXJlCj4gPiBwcmVzc2luZyBFbnRlciBhYm91dCA0Mjgg dGltZXMuCj4gPiAKPiA+IEZvciB0aGF0LCB3ZSBjcmVhdGUgdHdvIHNlcGFyYXRlIEtjb25maWcg bWVudXMsIHJ1bGVzL0tjb25maWctaW5pdCBmb3IKPiA+IHRoZSBwdHhjb25maWcsIGFuZCBwbGF0 Zm9ybXMvS2NvbmZpZy1pbml0IGZvciB0aGUgcGxhdGZvcm1jb25maWcsIHdoaWNoCj4gPiBpbmNs dWRlIG9ubHkgdGhlIHJlbGV2YW50IC5pbiBmaWxlcyBmcm9tIHRoZSBmdWxsIG1lbnVzLiBTdGls bCwgc29tZQo+ID4gb3B0aW9ucyBmcm9tIHRoZXNlIC5pbiBmaWxlcyBjYW4gYmUgc2V0IHRvIHJl YXNvbmFibGUgZGVmYXVsdHMgZm9yIG5ldwo+ID4gQlNQcyBvciBwbGF0Zm9ybXMsIHdoaWNoIGlz IGRvbmUgd2l0aCB0d28gbmV3IGRlZmNvbmZpZyBmaWxlcyBpbnN0ZWFkIG9mCj4gPiBmdXJ0aGVy IG91dHNvdXJjaW5nIHRoZSByZWxldmFudCBjb25maWcgb3B0aW9ucyBpbnRvIHNpbmdsZSAuaW4g ZmlsZXMuCj4gPiAKPiA+IFdpdGggdGhlICdpbml0JyBzdWJjb21tYW5kLCBQVFhkaXN0IGZpcnN0 IGNyZWF0ZXMgYSBzdGFuZGFyZCBkaXJlY3RvcnkKPiA+IHN0cnVjdHVyZSB1bmRlciBjb25maWdz LyBpZiBuZWNlc3NhcnksIHRoZW4gY3JlYXRlcyBhIG1pbmltYWwgY29uZmlnCj4gPiBmaWxlIGZy b20gdGhlIHJlc3BlY3RpdmUgZGVmY29uZmlnLCBhbmQgZmluYWxseSBjYWxscyBrY29uZmlnIG9u IHRoZQo+ID4gcmVzcGVjdGl2ZSBLY29uZmlnLWluaXQgbWVudSwgYXNraW5nIHRoZSB1c2VyIGZv ciB0aGUgcmVtYWluaW5nIGNvbmZpZwo+ID4gb3B0aW9ucy4gQSBzaWxlbmNlZCBvbGRjb25maWcg cnVuIG9uIHRoZSBmdWxsIG1lbnUgZmlsZSB0aGVuIHRha2VzIGNhcmUKPiA+IHRvIHNldCBhbGwg b3RoZXIgY29uZmlnIG9wdGlvbnMgdG8gdGhlaXIgZGVmYXVsdHMuCj4gPiAKPiA+IFNpZ25lZC1v ZmYtYnk6IFJvbGFuZCBIaWViZXIgPHJoaUBwZW5ndXRyb25peC5kZT4KPiA+IC0tLQo+ID4gIGJp bi9wdHhkaXN0ICAgICAgICAgICAgICAgICAgICAgfCA0NiArKysrKysrKysrKysrKysrCj4gPiAg ZG9jL3JlZl9wYXJhbWV0ZXIucnN0ICAgICAgICAgICB8ICA1ICsrCj4gPiAgcGxhdGZvcm1zL0tj b25maWctaW5pdCAgICAgICAgICB8IDEzICsrKysrCj4gPiAgcGxhdGZvcm1zL2luaXRfZGVmY29u ZmlnICAgICAgICB8IDE4ICsrKysrKysKPiA+ICBydWxlcy9LY29uZmlnLWluaXQgICAgICAgICAg ICAgIHwgNjIgKysrKysrKysrKysrKysrKysrKysrCj4gPiAgcnVsZXMvaW5pdF9kZWZjb25maWcg ICAgICAgICAgICB8IDIxICsrKysrKysrCj4gPiAgcnVsZXMvaW5pdG1ldGhvZC5pbiAgICAgICAg ICAgICB8ICAzICsrCj4gPiAgc2NyaXB0cy9saWIvcHR4ZF9saWJfaW5pdC5zaCAgICB8IDk2ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4gIHNjcmlwdHMvbGliL3B0eGRfbGli X2tjb25maWcuc2ggfCAxMCArKysrCj4gPiAgOSBmaWxlcyBjaGFuZ2VkLCAyNzQgaW5zZXJ0aW9u cygrKQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBwbGF0Zm9ybXMvS2NvbmZpZy1pbml0Cj4gPiAg Y3JlYXRlIG1vZGUgMTAwNjQ0IHBsYXRmb3Jtcy9pbml0X2RlZmNvbmZpZwo+ID4gIGNyZWF0ZSBt b2RlIDEwMDY0NCBydWxlcy9LY29uZmlnLWluaXQKPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgcnVs ZXMvaW5pdF9kZWZjb25maWcKPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgc2NyaXB0cy9saWIvcHR4 ZF9saWJfaW5pdC5zaAo+IAo+IEhtbW0sIHRoaXMgbmFtZSBzZWVtcyBhIGJpdCB0b28gZ2VuZXJp Yy4gTWF5YmUgcHR4ZF9saWJfYnNwX2luaXQuc2gKClllYWgsIHNlZW1zIHJlYXNvbmFibGUgdG8g bWUuCgo+ID4gZGlmZiAtLWdpdCBhL2Jpbi9wdHhkaXN0IGIvYmluL3B0eGRpc3QKPiA+IGluZGV4 IGMyY2Y3NDRmNzBhOC4uYTNkMmYwZGVlZjU2IDEwMDc1NQo+ID4gLS0tIGEvYmluL3B0eGRpc3QK PiA+ICsrKyBiL2Jpbi9wdHhkaXN0Cj4gPiBAQCAtNjg3LDYgKzY4Nyw5IEBAIFBUWGRpc3QgJChw cmludGYgIiUtMjRzIiAke1BUWERJU1RfVkVSU0lPTl9GVUxMfSkgQnVpbGQgU3lzdGVtIGZvciBF bWJlZGRlZCBMaW51Cj4gPiAgCj4gPiAgU2V0dXAgYW5kIFByb2plY3QgQWN0aW9uczoKPiA+ICAK PiA+ICsgIGluaXQgWzxwbGF0Zm9ybW5hbWU+XQkJaW5pdGlhbGlzZSBhIG5ldyBCU1AgaW4gdGhl IGN1cnJlbnQgZGlyZWN0b3J5Cj4gPiArICBpbml0IHBsYXRmb3JtIFs8bmFtZT5dCWluaXRpYWxp c2UgYSBuZXcgcGxhdGZvcm0gaW4gdGhlIGN1cnJlbnQgQlNQCj4gPiArCj4gPiAgICBtZW51CQkJ CWVudGVyIG1haW4gY29udHJvbCBtZW51Cj4gPiAgCj4gPiAgICBzZXR1cAkJCQlzZXR1cCBwZXIt dXNlciBwcmVmZXJlbmNlcwo+ID4gQEAgLTE4MDMsNiArMTgwNiw0OSBAQCBFT0YKPiA+ICAJCQlk b18ke2NtZH0KPiA+ICAJCQlleGl0Cj4gPiAgCQkJOzsKPiA+ICsJCWluaXQpCj4gPiArCQkJbG9j YWwgZG9fcHR4Y29uZmlnPTEKPiA+ICsJCQlpZiBbICIkMSIgPSAicGxhdGZvcm0iIF07IHRoZW4K PiA+ICsJCQkJc2hpZnQKPiA+ICsJCQkJZG9fcHR4Y29uZmlnPQo+ID4gKwkJCWZpCj4gPiArCj4g PiArCQkJbG9jYWwgcGxhdGZvcm09IiQxIgo+ID4gKwkJCWlmIFsgLXogIiRwbGF0Zm9ybSIgXTsg dGhlbgo+ID4gKwkJCQllY2hvCj4gPiArCQkJCWVjaG8gIiR7UFRYRElTVF9MT0dfUFJPTVBUfWVy cm9yOiBQbGVhc2Ugc3BlY2lmeSBhIHBsYXRmb3JtIG5hbWUuIgo+ID4gKwkJCQllY2hvCj4gPiAr CQkJCWV4aXQgMQo+ID4gKwkJCWZpCj4gPiArCj4gPiArCQkJUFRYRElTVF9QTEFURk9STUNPTkZJ Rz0iY29uZmlncy9wbGF0Zm9ybS0ke3BsYXRmb3JtfS9wbGF0Zm9ybWNvbmZpZyIKPiA+ICsJCQlQ VFhESVNUX1BUWENPTkZJRz0iY29uZmlncy9wdHhjb25maWciCj4gPiArCj4gPiArCQkJIyBhYm9y dCBlYXJseQo+ID4gKwkJCXB0eGRfbGliX2luaXRfcGxhdGZvcm1fY2hlY2sgJiYKPiA+ICsJCQlp ZiBbIC1uICIkZG9fcHR4Y29uZmlnIiBdOyB0aGVuCj4gPiArCQkJCXB0eGRfbGliX2luaXRfY2hl Y2sKPiA+ICsJCQlmaSAmJgo+ID4gKwo+ID4gKwkJCXB0eGRfbGliX2luaXRfcGxhdGZvcm0gIiR7 cGxhdGZvcm19IiAmJgo+ID4gKwkJCWlmIFsgLW4gIiRkb19wdHhjb25maWciIF07IHRoZW4KPiA+ ICsJCQkJcHR4ZF9saWJfaW5pdAo+ID4gKwkJCWZpICYmCj4gPiArCj4gPiArCQkJaWYgWyAtbiAi JGRvX3B0eGNvbmZpZyIgXTsgdGhlbgo+ID4gKwkJCQlwdHhkX2RpYWxvZ19tc2dib3ggXAo+ID4g KwkJCQkJIkFkYXB0IHRoZSBuZXcgQlNQIHRvIHlvdXIgbmVlZHMgYnkgcnVubmluZzpcblxuIiBc Cj4gPiArCQkJCQkiICAgIHB0eGRpc3QgbWVudWNvbmZpZ1xuIiBcCj4gPiArCQkJCQkiICAgIHB0 eGRpc3QgbWVudWNvbmZpZyBwbGF0Zm9ybVxuIiBcCj4gPiArCQkJCQkiICAgIHB0eGRpc3QgbWVu dWNvbmZpZyBrZXJuZWwiCj4gPiArCQkJZWxzZQo+ID4gKwkJCQlwdHhkX2RpYWxvZ19tc2dib3gg XAo+ID4gKwkJCQkJIkFkYXB0IHRoZSBuZXcgcGxhdGZvcm0gdG8geW91ciBuZWVkcyBieSBydW5u aW5nOlxuXG4iIFwKPiA+ICsJCQkJCSIgICAgcHR4ZGlzdCBtZW51Y29uZmlnIHBsYXRmb3JtXG4i IFwKPiA+ICsJCQkJCSIgICAgcHR4ZGlzdCBtZW51Y29uZmlnIGtlcm5lbCIKPiA+ICsJCQlmaQo+ IAo+IFB1dCB0aGlzIHN0dWZmIGluIGEgZnVuY3Rpb24gdG9vLiBBbmQgaW4gc2NyaXB0cy9saWIv IGFzIHdlbGwuIEkgdHJ5IHRvCj4gYXZvaWQgYWRkaW5nIG5ldyBzdHVmZiBpbiB0aGUgcHR4ZGlz dCBzY3JpcHQgYmVjYXVzZSB0aGF0IHBhcnQgY2Fubm90IGJlCj4gb3ZlcndyaXR0ZW4gaW4gYSBC U1AuCgpBaCwgZ29vZCBpZGVhLCBJIGZvcmdvdCB0aGF0IHJhdGlvbmFsZS4KCj4gPiArCQkJZXhp dAo+ID4gKwkJCTs7Cj4gPiAgCQlpbWFnZSkKPiA+ICAJCQlQVFhESVNUX09QVElNSVpFX0lPPXRy dWUKPiA+ICAJCQlpZiBbICR7I30gLWVxIDAgXTsgdGhlbgo+ID4gZGlmZiAtLWdpdCBhL2RvYy9y ZWZfcGFyYW1ldGVyLnJzdCBiL2RvYy9yZWZfcGFyYW1ldGVyLnJzdAo+ID4gaW5kZXggYWMxZTA2 YzUzMzVlLi5lZGQ0ODlhZjgzMWYgMTAwNjQ0Cj4gPiAtLS0gYS9kb2MvcmVmX3BhcmFtZXRlci5y c3QKPiA+ICsrKyBiL2RvYy9yZWZfcGFyYW1ldGVyLnJzdAo+ID4gQEAgLTEyLDYgKzEyLDExIEBA IFBUWGRpc3QgaXMgYSBjb21tYW5kIGxpbmUgdG9vbCwgd2hpY2ggaXMgYmFzaWNhbGx5IGNhbGxl ZCBhczoKPiA+ICBTZXR1cCBhbmQgUHJvamVjdCBBY3Rpb25zCj4gPiAgfn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgo+ID4gIAo+ID4gK2BgaW5pdCA8cGxhdGZvcm1uYW1lPmBgLCBgYGluaXQgcGxh dGZvcm0gPHBsYXRmb3JtbmFtZT5gYAo+ID4gKyAgaW5pdGlhbGlzZSBhIG5ldyBCU1AgaW4gdGhl IGN1cnJlbnQgZGlyZWN0b3J5LCBvciBhZGQgYSBuZXcgcGxhdGZvcm0gdG8gdGhlCj4gPiArICBj dXJyZW50IEJTUC4gVGhpcyBhY3Rpb24gY3JlYXRlcyBhbGwgcmVxdWlyZWQgY29uZmlnIGZpbGVz LCBhbmQgdGhlbiBjYWxscwo+ID4gKyAgKm1lbnVjb25maWcqIG9uIHRoZW0sIGFuZCBjYW4gYmUg dXNlZCB0byBzdGFydCBhIG5ldyBCU1AgZnJvbSBzY3JhdGNoLgo+ID4gKwo+ID4gIGBgbWVudWBg Cj4gPiAgICB0aGlzIHN0YXJ0cyBhIGRpYWxvZyBiYXNlZCBmcm9udGVuZCBmb3IgdGhvc2Ugd2hv IGRvIG5vdCBsaWtlIHR5cGluZwo+ID4gICAgY29tbWFuZHMuIEl0IHdpbGwgZ2FpbiB1cyBhY2Nl c3MgdG8gdGhlIG1vc3QgY29tbW9uIHBhcmFtZXRlcnMgdG8KPiA+IGRpZmYgLS1naXQgYS9wbGF0 Zm9ybXMvS2NvbmZpZy1pbml0IGIvcGxhdGZvcm1zL0tjb25maWctaW5pdAo+ID4gbmV3IGZpbGUg bW9kZSAxMDA2NDQKPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uOWU0MjU1NmQ3N2QzCj4gPiAtLS0g L2Rldi9udWxsCj4gPiArKysgYi9wbGF0Zm9ybXMvS2NvbmZpZy1pbml0Cj4gCj4gSSB0aGluayB0 aGlzIChhbmQgdGhlIGRlZmNvbmZpZykgc2hvdWxkIGJlIHNvbWV3aGVyZSBpbiBjb25maWcvLgoK Tm90IHN1cmUuIEkgcHV0IGl0IG5leHQgdG8gdGhlIGFscmVhZHkgZXhpc3RpbmcgcGxhdGZvcm0v S2NvbmZpZywgd2hpY2gKaXMgdXNlZCBhcyB0aGUgZmlsZV9rY29uZmlnIGluIHB0eGRfa2NvbmZp ZygpLCBzbyBJIHRoaW5rIGl0IGZpdHMgd2VsbApoZXJl4oCmCgo+ID4gQEAgLTAsMCArMSwxMyBA QAo+ID4gKyMKPiA+ICsjIGEga2NvbmZpZyBtZW51IHN0cnVjdHVyZSB0aGF0IGFza3Mgb25seSBh IG1pbmltYWwgYW1vdW50IG9mIHF1ZXN0aW9ucyB0bwo+ID4gKyMgcXVpY2tseSBnZXQgc3RhcnRl ZCB3aXRoIGEgbmV3IHBsYXRmb3JtCj4gPiArIwo+ID4gK3NvdXJjZSAiZ2VuZXJhdGVkL3BsYXRm b3JtX3ZlcnNpb24uaW4iCj4gPiArc291cmNlICJwbGF0Zm9ybXMvYXJjaGl0ZWN0dXJlLmluIgo+ ID4gK3NvdXJjZSAicGxhdGZvcm1zL3Rvb2xjaGFpbi5pbiIKPiA+ICsKPiA+ICsjIGRlcGVuZGVu Y2llcyBmb3Iga2VybmVsIHJ1bGU6Cj4gPiArc291cmNlICJnZW5lcmF0ZWQvaG9zdHRvb2xzX25v cHJvbXB0LmluIgo+ID4gK3NvdXJjZSAiZ2VuZXJhdGVkL2hvc3R0b29sc19wbGF0Zm9ybS5pbiIK PiA+ICsKPiA+ICtzb3VyY2UgInBsYXRmb3Jtcy9rZXJuZWwuaW4iCj4gPiBkaWZmIC0tZ2l0IGEv cGxhdGZvcm1zL2luaXRfZGVmY29uZmlnIGIvcGxhdGZvcm1zL2luaXRfZGVmY29uZmlnCj4gPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi41ZTQ0YzUzNmYzMTQK PiA+IC0tLSAvZGV2L251bGwKPiA+ICsrKyBiL3BsYXRmb3Jtcy9pbml0X2RlZmNvbmZpZwo+ID4g QEAgLTAsMCArMSwxOCBAQAo+ID4gK1BUWENPTkZfUExBVEZPUk1fVkVSU0lPTj0iLSR7UFRYRElT VF9CU1BfQVVUT1ZFUlNJT059Igo+ID4gK1BUWENPTkZfQ09NUElMRVJfUFJFRklYX0tFUk5FTD0i JHtQVFhDT05GX0NPTVBJTEVSX1BSRUZJWH0iCj4gPiArUFRYQ09ORl9DT01QSUxFUl9QUkVGSVhf Qk9PVExPQURFUj0iJHtQVFhDT05GX0NPTVBJTEVSX1BSRUZJWH0iCj4gPiArUFRYQ09ORl9MSUJD X0dMSUJDPXkKPiA+ICsjIFBUWENPTkZfTElCQ19VQ0xJQkMgaXMgbm90IHNldAo+ID4gK1BUWENP TkZfS0VSTkVMPXkKPiA+ICsjIFBUWENPTkZfS0VSTkVMX01PRFVMRVMgaXMgbm90IHNldAo+IAo+ IE5vIG1vZHVsZXMgYnkgZGVmYXVsdD8gVGhpcyBzZWVtcyB3cm9uZy4KCk1vZHVsZXMgZG9uJ3Qg c2VlbSB0byBiZSBmcmVxdWVudGx5IHVzZWQgaW4gdGhlIGVtYmVkZGVkIHdvcmxkLiBCdXQgSQpn dWVzcyB3ZSBjYW4gbGVhdmUgaXQgb3V0IG9mIHRoZSBkZWZjb25maWcgYW5kIGFzayBmb3IgaXQg aW5zdGVhZC4KCj4gPiArIyBQVFhDT05GX0tFUk5FTF9aU1REIGlzIG5vdCBzZXQKPiA+ICsjIFBU WENPTkZfS0VSTkVMX1haIGlzIG5vdCBzZXQKPiA+ICsjIFBUWENPTkZfS0VSTkVMX0xaT1AgaXMg bm90IHNldAo+ID4gKyMgUFRYQ09ORl9LRVJORUxfTFo0IGlzIG5vdCBzZXQKPiA+ICsjIFBUWENP TkZfS0VSTkVMX09QRU5TU0wgaXMgbm90IHNldAo+ID4gKyMgUFRYQ09ORl9LRVJORUxfTElCRUxG IGlzIG5vdCBzZXQKPiAKPiBLZWVwaW5nIGFsbCBvZiB0aG9zZSBvZmYgaXMganVzdCBhc2tpbmcg Zm9yIHRyb3VibGUuCj4gZS5nLiBQVFhDT05GX0tFUk5FTF9MSUJFTEYgaXMgbmVlZGVkIGJ5IGRl ZmF1bHQgb24geDg2CgpPSywgSSdsbCBoYXZlIHRvIGxvb2sgaW50byB0aGlzLiBTaW5jZSB0aGUg cGxhdGZvcm1jb25maWcgaXMgYWRkZWQKYmVmb3JlIHRoZSBrZXJuZWwgaXMgY29uZmlndXJlZCwg SSdtIG5vdCByZWFsbHkgc3VyZSB3aGF0IHRvIGRvIGhlcmUgaWYKdXNlcnMgY29uZmlndXJlIHRo ZWlyIGtlcm5lbCBlLmcuIHRvIHByb2R1Y2Ugc2lnbmVkIGltYWdlcywgYnV0CktFUk5FTF9PUEVO U1NMIGlzIGRpc2FibGVkIGluIHBsYXRmb3JtY29uZmlnLiBUaGV5IHdvdWxkIG5lZWQgdG8gZW5h YmxlCnRoYXQgYWZ0ZXJ3YXJkcyBhbnl3YXlzLiBVbmxlc3Mgd2UganVzdCBlbmFibGUgYWxsIHRo b3NlIEtFUk5FTF8qIGhvc3QKdG9vbHMgb3B0aW9ucyB1bmNvbmRpdGlvbmFsbHksIHdoaWNoIHdp bGwgYWx3YXlzIGRvIHRoZSByaWdodCB0aGluZywKYWx0aG91Z2ggbGVhZCB0byBhIGxvbmdlciBi dWlsZCB0aW1lLgoKPiA+ICsjIFBUWENPTkZfS0VSTkVMX0dDQ19QTFVHSU5TIGlzIG5vdCBzZXQK PiAKPiBUaGlzIHNlZW1zIHdyb25nLiBJZiB5b3UgZG9uJ3QgY2FyZSBhYm91dCBwbHVnaW5zLCB0 aGVuIHRoZXkgc2hvdWxkIGJlCj4gZGlzYWJsZWQuIE90aGVyd2lzZSB0aGUgcXVlc3Rpb24gc2hv dWxkIGJlIGV4cGxpY2l0LgoKT0suCgo+ID4gKyMgUFRYQ09ORl9LRVJORUxfQ09ORklHX0JBU0Vf VkVSU0lPTiBpcyBub3Qgc2V0Cj4gPiArUFRYQ09ORl9LRVJORUxfU0VSSUVTPSJzZXJpZXMiCj4g PiArUFRYQ09ORl9LRVJORUxfQ09ORklHPSJrZXJuZWxjb25maWctJHtQVFhDT05GX0tFUk5FTF9W RVJTSU9OfSIKPiAKPiBJIHRob3VnaHQgSSBjaGFuZ2VkIHRoYXQgZGVmYXVsdC4gUGxlYXNlIGNo YW5nZSB0aGlzIGFuZCB0aGUgZGVmYXVsdCB2YWx1ZQo+IHRvIGp1c3QgImtlcm5lbGNvbmZpZyIu IFRoZSB2ZXJzaW9uIGp1c3QgY2F1c2VzIHByb2JsZW1zIGluIG1vc3QgY2FzZXMuCgpPaCwgcmln aHQuIEkgcmVtZW1iZXIgYSBkaXNjdXNzaW9uIGFib3V0IGl0LgoKPiA+ICtQVFhDT05GX0tFUk5F TF9FWFRSQV9NQUtFVkFSUz0iIgo+ID4gZGlmZiAtLWdpdCBhL3J1bGVzL0tjb25maWctaW5pdCBi L3J1bGVzL0tjb25maWctaW5pdAo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+IGluZGV4IDAw MDAwMDAwMDAwMC4uMjM1NWQwNzBkZTliCj4gPiAtLS0gL2Rldi9udWxsCj4gPiArKysgYi9ydWxl cy9LY29uZmlnLWluaXQKPiAKPiBBbHNvIGluIGNvbmZpZy8uLi4KClJpZ2h0LCBhZnRlciBoYXZp bmcgYSBsb29rIGF0IHB0eGRfa2NvbmZpZygpIGFnYWluLCB0aGlzIG1ha2VzIHNlbnNlIHRvCm1l IG5vdy4KCj4gPiBAQCAtMCwwICsxLDYyIEBACj4gPiArIwo+ID4gKyMgYSBrY29uZmlnIG1lbnUg c3RydWN0dXJlIHRoYXQgYXNrcyBvbmx5IGEgbWluaW1hbCBhbW91bnQgb2YgcXVlc3Rpb25zIHRv Cj4gPiArIyBxdWlja2x5IGdldCBzdGFydGVkIHdpdGggYSBuZXcgQlNQCj4gPiArIwo+ID4gK3Nv dXJjZSAicnVsZXMvcHR4ZGlzdC1kZ2VuLmluIgo+ID4gK3NvdXJjZSAicnVsZXMvcHR4ZGlzdC12 ZXJzaW9uLmluIgo+ID4gK3NvdXJjZSAiZ2VuZXJhdGVkL3B0eGRpc3Rfb3B0aW9ucy5pbiIKPiA+ ICsKPiA+ICtzb3VyY2UgInJ1bGVzL3Byb2plY3QtbmFtZS5pbiIKPiA+ICsKPiA+ICsjCj4gPiAr IyBzdHVicyBmb3Igb3B0aW9ucyB0aGF0IHdlIHdhbnQgdG8gYXNrIGZvciBvciBlbmFibGUgYnkg ZGVmYXVsdCwgYnV0IG5vdCBhc2sKPiA+ICsjIGZvciBhbGwgdGhlaXIgc3Vib3B0aW9ucwo+ID4g KyMKPiA+ICsKPiA+ICtjb25maWcgQlVTWUJPWAo+ID4gKwlkZWZhdWx0IHkKPiA+ICsJYm9vbAo+ ID4gKwo+ID4gKyMgYnVzeWJveCBpbnN0YWxscyBpbml0LCBwb3dlcm9mZiwgaGFsdCBldGMuIGJ5 IGRlZmF1bHQuIFRoaXMgY29uZmxpY3RzIHdpdGgKPiA+ICsjIHN5c3RlbWQsIGJ1dCBzaW5jZSBi dXN5Ym94IGJyaW5ncyBpdHMgb3duIGtjb25maWcgbWVudSBpbi10cmVlLCB3ZSBjYW5ub3QKPiA+ ICsjIGVhc2lseSBpbmZsdWVuY2UgaXRzIGRlZmF1bHRzLiBUaGVyZWZvcmUgd2UgZmlyc3QgZGlz YWJsZSB0aG9zZSBvcHRpb25zIGluCj4gPiArIyBpbml0X2RlZmNvbmZpZywgYW5kIGV4cGxpY2l0 ZWx5IHNlbGVjdCB0aGVtIHdoZW4gbmVlZGVkLgo+ID4gKyMgTm90ZTogdGhlc2Ugb3B0aW9uIG5l ZWQgdG8gaGF2ZSBhIHByb21wdCwgb3RoZXJ3aXNlIGtjb25maWcgZG9lc24ndCB3cml0ZSB0aGVt Cj4gPiArIyB0byB0aGUgY29uZmlnIGZpbGUgaWYgdGhleSBhcmUgZGlzYWJsZWQsIGFuZCBidXN5 Ym94J3MgZGVmYXVsdCB3aWxsIGtpY2sgaW4uCj4gPiArY29uZmlnIEJVU1lCT1hfSEFMVAo+ID4g Kwlib29sICJidXN5Ym94IC91c3Ivc2Jpbi9oYWx0Igo+ID4gK2NvbmZpZyBCVVNZQk9YX0lOSVQK PiA+ICsJYm9vbCAiYnVzeWJveCAvdXNyL3NiaW4vaW5pdCIKPiA+ICtjb25maWcgQlVTWUJPWF9Q T1dFUk9GRgo+ID4gKwlib29sICJidXN5Ym94IC91c3Ivc2Jpbi9wb3dlcm9mZiIKPiA+ICtjb25m aWcgQlVTWUJPWF9SRUJPT1QKPiA+ICsJYm9vbCAiYnVzeWJveCAvdXNyL3NiaW4vcmVib290Igo+ ID4gK2NvbmZpZyBCVVNZQk9YX1JVTkxFVkVMCj4gPiArCWJvb2wgImJ1c3lib3ggL3Vzci9zYmlu L3J1bmxldmVsIgo+IAo+IEkgdGhpbmsgd2Ugc2hvdWxkIGxvb2sgYXQgbXkgZXhwZXJpbWVudHMg dG8gcGF0Y2ggdGhlIGJ1c3lib3ggS2NvbmZpZyBmaWxlcwo+IGR1cmluZyBpbXBvcnQuIFdlIGNh bm5vdCBjaGFuZ2UgdGhlIGRlcGVuZGVuY2llcywgYnV0IGNoYW5naW5nIHRoZSBkZWZhdWx0cwo+ IGlzIG9rLgo+IEJ1dCBJJ20gbm90IHN1cmUgaWYgbXkgc2VkIHNjcmlwdGluZyBpcyBlbm91Z2gg Zm9yIHRoaXMuCgpBcmUgdGhlcmUgcGF0Y2hlcyBhbnl3aGVyZSBJIGNhbiBsb29rIGF0IGl0PyA6 LSkKCj4gPiArY2hvaWNlCj4gPiArCXByb21wdCAiaW5pdCBtZXRob2QiCj4gPiArCWRlZmF1bHQg SU5JVE1FVEhPRF9TWVNURU1ECj4gPiArCj4gPiArCWNvbmZpZyBJTklUTUVUSE9EX0JCSU5JVAo+ ID4gKwkJYm9vbAo+ID4gKwkJcHJvbXB0ICJidXN5Ym94IGluaXQgICAgIgo+ID4gKwkJc2VsZWN0 IEJVU1lCT1hfSEFMVAo+ID4gKwkJc2VsZWN0IEJVU1lCT1hfSU5JVAo+ID4gKwkJc2VsZWN0IEJV U1lCT1hfUE9XRVJPRkYKPiA+ICsJCXNlbGVjdCBCVVNZQk9YX1JFQk9PVAo+ID4gKwkJc2VsZWN0 IEJVU1lCT1hfUlVOTEVWRUwKPiA+ICsKPiA+ICsJY29uZmlnIElOSVRNRVRIT0RfU1lTVEVNRAo+ ID4gKwkJYm9vbAo+ID4gKwkJcHJvbXB0ICJzeXN0ZW1kICAgICAgICAgIgo+ID4gKwo+ID4gKwlj b25maWcgSU5JVE1FVEhPRF9JTklUUkFNRlMKPiA+ICsJCWJvb2wKPiA+ICsJCXByb21wdCAiaW5p dHJhbWZzIGluaXQgICIKPiA+ICsJCXNlbGVjdCBCVVNZQk9YX0hBTFQKPiA+ICsJCXNlbGVjdCBC VVNZQk9YX0lOSVQKPiA+ICsJCXNlbGVjdCBCVVNZQk9YX1BPV0VST0ZGCj4gPiArCQlzZWxlY3Qg QlVTWUJPWF9SRUJPT1QKPiA+ICsJCXNlbGVjdCBCVVNZQk9YX1JVTkxFVkVMCj4gCj4gSSBkb24n dCB0aGluayB0aGUgZGVwZW5kZW5jaWVzIG1ha2Ugc2Vuc2UgaGVyZS4KCkkgaGF2ZSBubyBleHBl cmllbmNlIHdpdGggaW5pdHJhbWZzLXRvb2xzIHRvIGJlIGhvbmVzdCwgYnV0IHdobyB3aWxsCnN1 cHBseSAvc2Jpbi9oYWx0LCAvc2Jpbi9wb3dlcm9mZiBldGMuIGluIHRoaXMgY2FzZSBpZiBub3Qg YnVzeWJveD8KCj4gPiArZW5kY2hvaWNlCj4gPiBkaWZmIC0tZ2l0IGEvcnVsZXMvaW5pdF9kZWZj b25maWcgYi9ydWxlcy9pbml0X2RlZmNvbmZpZwo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+ IGluZGV4IDAwMDAwMDAwMDAwMC4uOWZhOWFiMDBhNjBiCj4gPiAtLS0gL2Rldi9udWxsCj4gPiAr KysgYi9ydWxlcy9pbml0X2RlZmNvbmZpZwo+ID4gQEAgLTAsMCArMSwyMSBAQAo+ID4gKyMgUFRY Q09ORl9BTExZRVMgaXMgbm90IHNldAo+ID4gKyMgUFRYQ09ORl9CUk9LRU4gaXMgbm90IHNldAo+ ID4gK1BUWENPTkZfRklYX1BFUk1JU1NJT05TPXkKPiA+ICtQVFhDT05GX1BST0pFQ1RfVkVSU0lP Tj0iLSR7UFRYRElTVF9CU1BfQVVUT1ZFUlNJT059Igo+ID4gKyMgUFRYQ09ORl9QUk9KRUNUX0NS RUFURV9ERVZQS0dTIGlzIG5vdCBzZXQKPiA+ICsjIFBUWENPTkZfUFJPSkVDVF9VU0VfREVWUEtH UyBpcyBub3Qgc2V0Cj4gPiArUFRYQ09ORl9QUk9KRUNUX0RFVlBLR0RJUj0iIgo+ID4gK1BUWENP TkZfUFJPSkVDVF9ERVZNSVJST1I9IiIKPiA+ICsjIFBUWENPTkZfUFJPSkVDVF9DSEVDS19MSUNF TlNFUyBpcyBub3Qgc2V0Cj4gPiArUFRYQ09ORl9SRVBST0RVQ0lCTEVfVElNRVNUQU1QX1BUWERJ U1Q9eQo+ID4gKyMgUFRYQ09ORl9SRVBST0RVQ0lCTEVfVElNRVNUQU1QX1RPT0xDSEFJTiBpcyBu b3Qgc2V0Cj4gPiArIyBQVFhDT05GX1JFUFJPRFVDSUJMRV9USU1FU1RBTVBfQ1VTVE9NIGlzIG5v dCBzZXQKPiA+ICsjIFBUWENPTkZfUkVQUk9EVUNJQkxFX1RJTUVTVEFNUF9TVFJJTkcgaXMgbm90 IHNldAo+ID4gK1BUWENPTkZfREVCVUdfUEFDS0FHRVM9eQo+ID4gKyMgaW5pdG1ldGhvZCB3aWxs IGVuYWJsZSB0aGUgZm9sbG93aW5nIGJ1c3lib3ggdG9vbHMgaWYgbmVlZGVkOgo+ID4gKyMgUFRY Q09ORl9CVVNZQk9YX0hBTFQgaXMgbm90IHNldAo+ID4gKyMgUFRYQ09ORl9CVVNZQk9YX0lOSVQg aXMgbm90IHNldAo+ID4gKyMgUFRYQ09ORl9CVVNZQk9YX1BPV0VST0ZGIGlzIG5vdCBzZXQKPiA+ ICsjIFBUWENPTkZfQlVTWUJPWF9SRUJPT1QgaXMgbm90IHNldAo+ID4gKyMgUFRYQ09ORl9CVVNZ Qk9YX1JVTkxFVkVMIGlzIG5vdCBzZXQKPiA+ICsjIFBUWENPTkZfU1RBR0lORyBpcyBub3Qgc2V0 Cj4gCj4gSG93IGNhbiB3ZSBrZWVwIHRoZXNlIGZpbGVzIHVwLXRvLWRhdGU/CgpJIGd1ZXNzIGxp a2UgZm9yIGV2ZXJ5dGhpbmcgZWxzZTogcGF0Y2hlcyBvciBidWcgcmVwb3J0cyBpZiBzb21lb25l Cm5vdGljZXMgdGhhdCBpdCdzIGJyb2tlbi4gQW5kIHRoZSBvbmx5IHdheSBpdCBjYW4gYnJlYWsg d2lsbCBqdXN0IGxlYWQKdG8gbW9yZSB1bm5lY2Vzc2FyeSBxdWVzdGlvbnMgYmVpbmcgYXNrZWQs IHdoaWNoIGlzIGEgYml0IGFubm95aW5nIGJ1dApub3QgYSB0cmFnZWR5LCBvciBkZWZhdWx0cyBm cm9tIHRoZSBLY29uZmlnIG9wdGlvbnMgYmVpbmcgdXNlZCwgd2hpY2gKc2hvdWxkIGJlIGZpbmUu CgpBbHRlcm5hdGl2ZWx5IEkgdGhpbmsga2NvbmZpZyBoYXMgYSAic2F2ZV9kZWZjb25maWciIGZ1 bmN0aW9uIHdoaWNoCmNvdWxkIGhlbHAgdXMuCgo+ID4gZGlmZiAtLWdpdCBhL3J1bGVzL2luaXRt ZXRob2QuaW4gYi9ydWxlcy9pbml0bWV0aG9kLmluCj4gPiBpbmRleCBiOGMwYjlmOTdiMzAuLjYw NGZhZTNiNGY3YiAxMDA2NDQKPiA+IC0tLSBhL3J1bGVzL2luaXRtZXRob2QuaW4KPiA+ICsrKyBi L3J1bGVzL2luaXRtZXRob2QuaW4KPiA+IEBAIC0xMCw2ICsxMCw5IEBAIG1lbnVjb25maWcgSU5J VE1FVEhPRAo+ID4gIGlmIElOSVRNRVRIT0QKPiA+ICAKPiA+ICBjaG9pY2UKPiA+ICsJIwo+ID4g KwkjIE5PVEU6IGlmIHlvdSBhZGQgb3B0aW9ucyBoZXJlLCBhbHNvIGFkZCB0aGVtIHRvIHJ1bGVz L2luaXRfZGVmY29uZmlnCj4gPiArCSMKCk9yIHNob3VsZCBJIGFkZCBtb3JlIGNvbW1lbnRzIGxp a2UgdGhpc+KApj8KCj4gPiAgCXByb21wdCAiaW5pdCBtZXRob2QiCj4gPiAgCWRlZmF1bHQgSU5J VE1FVEhPRF9TWVNURU1ECj4gPiAgCj4gPiBkaWZmIC0tZ2l0IGEvc2NyaXB0cy9saWIvcHR4ZF9s aWJfaW5pdC5zaCBiL3NjcmlwdHMvbGliL3B0eGRfbGliX2luaXQuc2gKPiA+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0Cj4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLjU0ZmNiNGQyN2VlZQo+ID4gLS0tIC9k ZXYvbnVsbAo+ID4gKysrIGIvc2NyaXB0cy9saWIvcHR4ZF9saWJfaW5pdC5zaAo+ID4gQEAgLTAs MCArMSw5NiBAQAo+ID4gKyMhL2Jpbi9iYXNoCj4gPiArCj4gPiArcHR4ZF9saWJfaW5pdF9jaGVj aygpIHsKPiA+ICsJaWYgWyAteiAiJHtQVFhESVNUX1BUWENPTkZJR30iIF07IHRoZW4KPiA+ICsJ CWVjaG8KPiA+ICsJCWVjaG8gIiR7UFRYRElTVF9MT0dfUFJPTVBUfWVycm9yOiBjYW5ub3QgY3Jl YXRlIGVtcHR5IHB0eGNvbmZpZyBmaWxlLiIKPiA+ICsJCWVjaG8KPiA+ICsJCXJldHVybiAxCj4g PiArCWZpCj4gPiArCj4gPiArCWlmIFsgLXogIiR7UFRYRElTVF9GT1JDRX0iIF0gJiYgWyAtZSAi JHtQVFhESVNUX1BUWENPTkZJR30iIF07IHRoZW4KPiA+ICsJCWVjaG8KPiA+ICsJCWVjaG8gIiR7 UFRYRElTVF9MT0dfUFJPTVBUfWVycm9yOiB0aGUgZmlsZSAnJHtQVFhESVNUX1BUWENPTkZJR30n IGFscmVhZHkgZXhpc3RzLCIKPiA+ICsJCWVjaG8gIiR7UFRYRElTVF9MT0dfUFJPTVBUfSAgICAg ICB1c2UgJy0tZm9yY2UnIHRvIG92ZXJ3cml0ZSBpdC4iCj4gPiArCQllY2hvCj4gPiArCQlyZXR1 cm4gMQo+ID4gKwlmaQo+ID4gKwo+ID4gKwlpZiBbIC16ICIke1BUWERJU1RfRk9SQ0V9IiBdICYm IFsgLWUgIiR7UFRYRElTVF9QVFhDT05GSUdfREVGQVVMVH0iIF07IHRoZW4KPiA+ICsJCWVjaG8K PiA+ICsJCWVjaG8gIiR7UFRYRElTVF9MT0dfUFJPTVBUfWVycm9yOiB0aGUgZmlsZSAnJHtQVFhE SVNUX1BUWENPTkZJR19ERUZBVUxUfScgYWxyZWFkeSBleGlzdHMsIgo+ID4gKwkJZWNobyAiJHtQ VFhESVNUX0xPR19QUk9NUFR9ICAgICAgIHVzZSAnLS1mb3JjZScgdG8gb3ZlcndyaXRlIGl0LiIK PiA+ICsJCWVjaG8KPiA+ICsJCXJldHVybiAxCj4gPiArCWZpCj4gPiArfQo+ID4gK2V4cG9ydCAt ZiBwdHhkX2xpYl9pbml0X2NoZWNrCj4gPiArCj4gPiArcHR4ZF9saWJfaW5pdCgpIHsKPiA+ICsJ cHR4ZF9saWJfaW5pdF9jaGVjayAmJgo+ID4gKwo+ID4gKwlta2RpciAtcCAiJChkaXJuYW1lICIk e1BUWERJU1RfUFRYQ09ORklHfSIpIiAmJgo+ID4gKwljYXQgIiR7UFRYRElTVF9UT1BESVJ9L3J1 bGVzL2luaXRfZGVmY29uZmlnIiA+ICIke1BUWERJU1RfUFRYQ09ORklHfSIgJiYKPiA+ICsKPiA+ ICsJUFRYRElTVF9GT1JDRT10cnVlIGRvX3NlbGVjdCBwdHhjb25maWcgIiR7UFRYRElTVF9QVFhD T05GSUd9IiAmJgo+ID4gKwo+ID4gKwkjIG9ubHkgYXNrIHRoZSBpbXBvcnRhbnQgcXVlc3Rpb25z IGZpcnN0LCB0aGVuIGRvIHNpbGVudGRlZmNvbmZpZyBmb3IKPiA+ICsJIyBhbGwgb3RoZXIgb3B0 aW9ucwo+ID4gKwlQVFhESVNUX0RFUF9UQVJHRVQ9ImFsbCIgcHR4ZF9rY29uZmlnIG9sZGNvbmZp ZyAiaW5pdC1wdHgiICYmCj4gPiArCj4gPiArCSMgLi4uIHRoZW4gZG8gYSBzaWxlbnQgZGVmY29u ZmlnIGZvciBhbGwgb3RoZXIgZGVmYXVsdHMKPiA+ICsJUFRYRElTVF9ERVBfVEFSR0VUPSJhbGwi IFBUWERJU1RfRk9SQ0U9dHJ1ZSBcCj4gPiArCQl5ZXMgJycgfCBwdHhkX2tjb25maWcgb2xkY29u ZmlnIHB0eCA+IC9kZXYvbnVsbAo+IAo+IEkgdGhpbmsgd2UgY2FuIHVzZSBhbGxkZWZjb25maWcg aGVyZS4KCkkgaGFkIHRoaXMgaW4gbXkgZmlyc3QgZHJhZnQsIGJ1dCBhbGxkZWZjb25maWcgd2ls bCByZXNldCBhbGwgcHJldmlvdXNseQpwcmUtcHJpbWVkIG9wdGlvbnMgZnJvbSB0aGUgaW5pdF9k ZWZjb25maWcgdG8gdGhlaXIgcmVzcGVjdGl2ZSBkZWZhdWx0cwphcyBkZWZpbmVkIGluIEtjb25m aWcsIGFuZCB3ZSBkb24ndCB3YW50IHRoYXQgaGVyZS4KCj4gPiArfQo+ID4gK2V4cG9ydCAtZiBw dHhkX2xpYl9pbml0Cj4gPiArCj4gPiArcHR4ZF9saWJfaW5pdF9wbGF0Zm9ybV9jaGVjaygpIHsK PiA+ICsJaWYgWyAteiAiJHtQVFhESVNUX1BMQVRGT1JNQ09ORklHfSIgXTsgdGhlbgo+ID4gKwkJ ZWNobwo+ID4gKwkJZWNobyAiJHtQVFhESVNUX0xPR19QUk9NUFR9ZXJyb3I6IGNhbm5vdCBjcmVh dGUgZW1wdHkgcGxhdGZvcm1jb25maWcgZmlsZS4iCj4gPiArCQllY2hvCj4gPiArCQlyZXR1cm4g MQo+ID4gKwlmaQo+ID4gKwo+ID4gKwlpZiBbIC16ICIke1BUWERJU1RfRk9SQ0V9IiBdICYmIFsg LWUgIiR7UFRYRElTVF9QTEFURk9STUNPTkZJR30iIF07IHRoZW4KPiA+ICsJCWVjaG8KPiA+ICsJ CWVjaG8gIiR7UFRYRElTVF9MT0dfUFJPTVBUfWVycm9yOiB0aGUgZmlsZSAnJHtQVFhESVNUX1BM QVRGT1JNQ09ORklHfScgYWxyZWFkeSBleGlzdHMsIgo+ID4gKwkJZWNobyAiJHtQVFhESVNUX0xP R19QUk9NUFR9ICAgICAgIHVzZSAnLS1mb3JjZScgdG8gb3ZlcndyaXRlIGl0LiIKPiA+ICsJCWVj aG8KPiA+ICsJCXJldHVybiAxCj4gPiArCWZpCj4gPiArCj4gPiArCWlmIFsgLXogIiR7UFRYRElT VF9GT1JDRX0iIF0gJiYgWyAtZSAiJHtQVFhESVNUX1BMQVRGT1JNQ09ORklHX0RFRkFVTFR9IiBd OyB0aGVuCj4gPiArCQllY2hvCj4gPiArCQllY2hvICIke1BUWERJU1RfTE9HX1BST01QVH1lcnJv cjogdGhlIGZpbGUgJyR7UFRYRElTVF9QTEFURk9STUNPTkZJR19ERUZBVUxUfScgYWxyZWFkeSBl eGlzdHMsIgo+ID4gKwkJZWNobyAiJHtQVFhESVNUX0xPR19QUk9NUFR9ICAgICAgIHVzZSAnLS1m b3JjZScgdG8gb3ZlcndyaXRlIGl0LiIKPiA+ICsJCWVjaG8KPiA+ICsJCXJldHVybiAxCj4gPiAr CWZpCj4gPiArfQo+ID4gK2V4cG9ydCAtZiBwdHhkX2xpYl9pbml0X3BsYXRmb3JtX2NoZWNrCj4g PiArCj4gPiArcHR4ZF9saWJfaW5pdF9wbGF0Zm9ybSgpIHsKPiA+ICsJbG9jYWwgcGxhdGZvcm1u YW1lPSIkMSIKPiA+ICsJcHR4ZF9saWJfaW5pdF9wbGF0Zm9ybV9jaGVjayAmJgo+ID4gKwo+ID4g Kwlta2RpciAtcCAiJChkaXJuYW1lICIke1BUWERJU1RfUExBVEZPUk1DT05GSUd9IikiICYmCj4g PiArCj4gPiArCSMgcHJlLXByaW1lIHdpdGggZGVmYXVsdHMKPiA+ICsJZWNobyAiUFRYQ09ORl9Q TEFURk9STT1cIiR7cGxhdGZvcm1uYW1lfVwiIiA+ICIke1BUWERJU1RfUExBVEZPUk1DT05GSUd9 IiAmJgo+ID4gKwljYXQgIiR7UFRYRElTVF9UT1BESVJ9L3BsYXRmb3Jtcy9pbml0X2RlZmNvbmZp ZyIgPj4gIiR7UFRYRElTVF9QTEFURk9STUNPTkZJR30iICYmCj4gPiArCj4gPiArCSMgcHJldGVu ZCB3ZSBoYXZlIGEgdG9vbGNoYWluLCBvdGhlcndpc2UgZG9fc2VsZWN0IHdpbGwgdHJ5IHRvCj4g PiArCSMgYXV0b2RldGVjdCBpdCBmcm9tIGFuIGluY29tcGxldGUgcGxhdGZvcm1jb25maWcKPiA+ ICsJUFRYX3Rvb2xjaGFpbl9TRVQ9dHJ1ZSBQVFhESVNUX0ZPUkNFPXRydWUgXAo+ID4gKwkJZG9f c2VsZWN0IHBsYXRmb3JtY29uZmlnICIke1BUWERJU1RfUExBVEZPUk1DT05GSUd9IiAmJgo+ID4g KwkKPiAKPiB0cmFpbGluZyB3aGl0ZXNwYWNlLgoKVGhhbmtzIQoKPiA+ICsJIyBvbmx5IGFzayB0 aGUgaW1wb3J0YW50IHF1ZXN0aW9ucyBmaXJzdC4uLgo+ID4gKwlQVFhESVNUX0RFUF9UQVJHRVQ9 ImFsbCIgXAo+ID4gKwkJcHR4ZF9rY29uZmlnIG9sZGNvbmZpZyBpbml0LXBsYXRmb3JtICYmCj4g PiArCj4gPiArCSMgLi4uIHRoZW4gZG8gYSBzaWxlbnQgZGVmY29uZmlnIGZvciBhbGwgb3RoZXIg ZGVmYXVsdHMKPiA+ICsJUFRYRElTVF9ERVBfVEFSR0VUPSJhbGwiIFBUWERJU1RfRk9SQ0U9dHJ1 ZSBcCj4gPiArCQl5ZXMgJycgfCBwdHhkX2tjb25maWcgb2xkY29uZmlnIHBsYXRmb3JtID4gL2Rl di9udWxsCj4gCj4gYWxsZGVmY29uZmlnCgpTYW1lIGFzIGFib3ZlLgoKICAtIFJvbGFuZAoKPiAK PiBNaWNoYWVsCj4gCj4gPiArfQo+ID4gK2V4cG9ydCAtZiBwdHhkX2xpYl9pbml0X3BsYXRmb3Jt Cj4gPiBkaWZmIC0tZ2l0IGEvc2NyaXB0cy9saWIvcHR4ZF9saWJfa2NvbmZpZy5zaCBiL3Njcmlw dHMvbGliL3B0eGRfbGliX2tjb25maWcuc2gKPiA+IGluZGV4IGNhNTZhNjVhMTljMy4uNThmNDVl MDU2MTgyIDEwMDY0NAo+ID4gLS0tIGEvc2NyaXB0cy9saWIvcHR4ZF9saWJfa2NvbmZpZy5zaAo+ ID4gKysrIGIvc2NyaXB0cy9saWIvcHR4ZF9saWJfa2NvbmZpZy5zaAo+ID4gQEAgLTY4NywxMSAr Njg3LDIxIEBAIHB0eGRfa2NvbmZpZygpIHsKPiA+ICAJZmlsZV9rY29uZmlnPSIke3B0eGRfcmVw bHl9Igo+ID4gIAlmaWxlX2RvdGNvbmZpZz0iJHtQVFhESVNUX1BUWENPTkZJR30iCj4gPiAgCTs7 Cj4gPiArICAgIGluaXQtcHR4KQo+ID4gKwlwYXJ0PSJwdHgiCj4gPiArCWZpbGVfa2NvbmZpZz0i cnVsZXMvS2NvbmZpZy1pbml0Igo+ID4gKwlmaWxlX2RvdGNvbmZpZz0iJHtQVFhESVNUX1BUWENP TkZJR30iCj4gPiArCTs7Cj4gPiAgICAgIHBsYXRmb3JtKQo+ID4gIAlwdHhkX2luX3BhdGggUFRY RElTVF9QQVRIX0xBWUVSUyAicGxhdGZvcm1zL0tjb25maWciCj4gPiAgCWZpbGVfa2NvbmZpZz0i JHtwdHhkX3JlcGx5fSIKPiA+ICAJZmlsZV9kb3Rjb25maWc9IiR7UFRYRElTVF9QTEFURk9STUNP TkZJR30iCj4gPiAgCTs7Cj4gPiArICAgIGluaXQtcGxhdGZvcm0pCj4gPiArCXBhcnQ9InBsYXRm b3JtIgo+ID4gKwlmaWxlX2tjb25maWc9InBsYXRmb3Jtcy9LY29uZmlnLWluaXQiCj4gPiArCWZp bGVfZG90Y29uZmlnPSIke1BUWERJU1RfUExBVEZPUk1DT05GSUd9Igo+ID4gKwk7Owo+ID4gICAg ICBjb2xsZWN0aW9uKQo+ID4gIAlmaWxlX2RvdGNvbmZpZz0iJHtQVFhESVNUX1BUWENPTkZJR30i Cj4gPiAgCXB0eGRfbm9ybWFsaXplX2NvbmZpZwo+ID4gLS0gCj4gPiAyLjI4LjAKPiAKPiAtLSAK PiBQZW5ndXRyb25peCBlLksuICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfAo+IFN0ZXVlcndhbGRlciBTdHIuIDIxICAgICAgICAgICAgICAg ICAgICAgICB8IGh0dHA6Ly93d3cucGVuZ3V0cm9uaXguZGUvICB8Cj4gMzExMzcgSGlsZGVzaGVp bSwgR2VybWFueSAgICAgICAgICAgICAgICAgIHwgUGhvbmU6ICs0OS01MTIxLTIwNjkxNy0wICAg IHwKPiBBbXRzZ2VyaWNodCBIaWxkZXNoZWltLCBIUkEgMjY4NiAgICAgICAgICAgfCBGYXg6ICAg KzQ5LTUxMjEtMjA2OTE3LTU1NTUgfAoKLS0gClJvbGFuZCBIaWViZXIsIFBlbmd1dHJvbml4IGUu Sy4gICAgICAgICAgfCByLmhpZWJlckBwZW5ndXRyb25peC5kZSAgICAgfApTdGV1ZXJ3YWxkZXIg U3RyLiAyMSAgICAgICAgICAgICAgICAgICAgIHwgaHR0cHM6Ly93d3cucGVuZ3V0cm9uaXguZGUv IHwKMzExMzcgSGlsZGVzaGVpbSwgR2VybWFueSAgICAgICAgICAgICAgICB8IFBob25lOiArNDkt NTEyMS0yMDY5MTctMCAgICB8CkFtdHNnZXJpY2h0IEhpbGRlc2hlaW0sIEhSQSAyNjg2ICAgICAg ICAgfCBGYXg6ICAgKzQ5LTUxMjEtMjA2OTE3LTU1NTUgfAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KcHR4ZGlzdCBtYWlsaW5nIGxpc3QKcHR4ZGlzdEBw ZW5ndXRyb25peC5kZQpUbyB1bnN1YnNjcmliZSwgc2VuZCBhIG1haWwgd2l0aCBzdWJqZWN0ICJ1 bnN1YnNjcmliZSIgdG8gcHR4ZGlzdC1yZXF1ZXN0QHBlbmd1dHJvbml4LmRlCg==