From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 89E6B5A37 for ; Mon, 18 May 2015 11:09:15 +0200 (CEST) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga102.fm.intel.com with ESMTP; 18 May 2015 02:09:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.13,452,1427785200"; d="scan'208";a="696469817" Received: from pgsmsx104.gar.corp.intel.com ([10.221.44.91]) by orsmga001.jf.intel.com with ESMTP; 18 May 2015 02:09:13 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by PGSMSX104.gar.corp.intel.com (10.221.44.91) with Microsoft SMTP Server (TLS) id 14.3.224.2; Mon, 18 May 2015 17:08:07 +0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.94]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.50]) with mapi id 14.03.0224.002; Mon, 18 May 2015 17:08:05 +0800 From: "Jiajia, SunX" To: "Xu, HuilongX" , "dts@dpdk.org" Thread-Topic: =?utf-8?B?W2R0c10gW+KAmGR0cy12MeKAmSAzLzldIEFkZCBzb21lIHBhcmFtcyBhbmQg?= =?utf-8?Q?functions_related_to_the_virtual_test?= Thread-Index: AQHQkSiTZ8GAM1eHHUeAqbFy6HINGZ2A2NcAgACYn4A= Date: Mon, 18 May 2015 09:08:05 +0000 Message-ID: References: <1431925646-1314-1-git-send-email-sunx.jiajia@intel.com> <1431925646-1314-4-git-send-email-sunx.jiajia@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dts] =?utf-8?b?W+KAmGR0cy12MeKAmSAzLzldIEFkZCBzb21lIHBhcmFtcyBh?= =?utf-8?q?nd_functions_related_to_the_virtual_test?= X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 May 2015 09:09:17 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogWHUsIEh1aWxvbmdYDQo+ IFNlbnQ6IE1vbmRheSwgTWF5IDE4LCAyMDE1IDQ6MDAgUE0NCj4gVG86IEppYWppYSwgU3VuWDsg ZHRzQGRwZGsub3JnDQo+IFN1YmplY3Q6IFJFOiBbZHRzXSBb4oCYZHRzLXYx4oCZIDMvOV0gQWRk IHNvbWUgcGFyYW1zIGFuZCBmdW5jdGlvbnMgcmVsYXRlZA0KPiB0byB0aGUgdmlydHVhbCB0ZXN0 DQo+IA0KPiANCj4gSGkgSmlhamlhLA0KPiBJIGhhdmUgb25lIGNvbW1lbnRzIGF0ICJAQCAtMjAy LDcgKzIxMyw3IEBAIGNsYXNzIERQREtkdXQoRHV0KToiDQo+IFdvdWxkIHlvdSBjaGVjayBpdCwg dGhhbmtzICBhIGxvdA0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkdHMg W21haWx0bzpkdHMtYm91bmNlc0BkcGRrLm9yZ10gT24gQmVoYWxmIE9mIHNqaWFqaWF4DQo+IFNl bnQ6IE1vbmRheSwgTWF5IDE4LCAyMDE1IDE6MDcgUE0NCj4gVG86IGR0c0BkcGRrLm9yZw0KPiBT dWJqZWN0OiBbZHRzXSBb4oCYZHRzLXYx4oCZIDMvOV0gQWRkIHNvbWUgcGFyYW1zIGFuZCBmdW5j dGlvbnMgcmVsYXRlZCB0bw0KPiB0aGUgdmlydHVhbCB0ZXN0DQo+IA0KPiBTaWduZWQtb2ZmLWJ5 OiBzamlhamlheCA8c3VueC5qaWFqaWFAaW50ZWwuY29tPg0KPiAtLS0NCj4gIGZyYW1ld29yay9k dHMucHkgICAgICAgICAgfCA5MiArKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gLS0tLS0tLS0NCj4gIGZyYW1ld29yay9leGNlcHRpb24ucHkgICAgfCAyNyArKysrKysr KysrKysrKw0KPiAgZnJhbWV3b3JrL2xvZ2dlci5weSAgICAgICB8IDY5ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tDQo+ICBmcmFtZXdvcmsvbWFpbi5weSAgICAgICAgIHwgIDcg KysrLQ0KPiAgZnJhbWV3b3JrL3Byb2plY3RfZHBkay5weSB8IDYyICsrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tDQo+ICA1IGZpbGVzIGNoYW5nZWQsIDE1NyBpbnNlcnRpb25zKCspLCAx MDAgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZnJhbWV3b3JrL2R0cy5weSBiL2Zy YW1ld29yay9kdHMucHkNCj4gaW5kZXggYzllY2NjYi4uYzBkZjRlOSAxMDA2NDQNCj4gLS0tIGEv ZnJhbWV3b3JrL2R0cy5weQ0KPiArKysgYi9mcmFtZXdvcmsvZHRzLnB5DQo+IEBAIC00OSw2ICs0 OSw3IEBAIGZyb20gdGVzdF9jYXNlIGltcG9ydCBUZXN0Q2FzZQ0KPiAgZnJvbSB0ZXN0X3Jlc3Vs dCBpbXBvcnQgUmVzdWx0DQo+ICBmcm9tIHN0YXRzX3JlcG9ydGVyIGltcG9ydCBTdGF0c1JlcG9y dGVyDQo+ICBmcm9tIGV4Y2VsX3JlcG9ydGVyIGltcG9ydCBFeGNlbFJlcG9ydGVyDQo+ICtmcm9t IHV0aWxzIGltcG9ydCAqDQo+ICBmcm9tIGV4Y2VwdGlvbiBpbXBvcnQgVGltZW91dEV4Y2VwdGlv bg0KPiAgZnJvbSBsb2dnZXIgaW1wb3J0IGdldExvZ2dlcg0KPiAgaW1wb3J0IGxvZ2dlcg0KPiBA QCAtNTcsNiArNTgsNyBAQCBpbXBvcnQgc3lzDQo+ICByZWxvYWQoc3lzKQ0KPiAgc3lzLnNldGRl ZmF1bHRlbmNvZGluZygnVVRGOCcpDQo+IA0KPiArUFJPSkVDVF9NT0RVTEVfUFJFRklYID0gJ3By b2plY3RfJw0KPiANCj4gIGRlYnVnX21vZGUgPSBGYWxzZQ0KPiAgY29uZmlnID0gTm9uZQ0KPiBA QCAtNzMsNDQgKzc1LDEyIEBAIHJlc3VsdCA9IE5vbmUNCj4gIGV4Y2VsX3JlcG9ydCA9IE5vbmUN Cj4gIHN0YXRzID0gTm9uZQ0KPiAgbG9nX2hhbmRsZXIgPSBOb25lDQo+ICtQYWNrYWdlID0gJycN Cj4gK1BhdGNoZXMgPSBbXQ0KPiAgZHJpdmVybmFtZSA9ICIiDQo+ICBpbnRlcnJ1cHR0eXByID0g IiINCj4gDQo+IA0KPiAtZGVmIFJFRCh0ZXh0KToNCj4gLSAgICByZXR1cm4gIlx4MUJbIiArICIz MTsxbSIgKyB0ZXh0ICsgIlx4MUJbIiArICIwbSINCj4gLQ0KPiAtDQo+IC1kZWYgQkxVRSh0ZXh0 KToNCj4gLSAgICByZXR1cm4gIlx4MUJbIiArICIzNjsxbSIgKyB0ZXh0ICsgIlx4MUJbIiArICIw bSINCj4gLQ0KPiAtDQo+IC1kZWYgR1JFRU4odGV4dCk6DQo+IC0gICAgcmV0dXJuICJceDFCWyIg KyAiMzI7MW0iICsgdGV4dCArICJceDFCWyIgKyAiMG0iDQo+IC0NCj4gLQ0KPiAtZGVmIHJlZ2V4 cChzLCB0b19tYXRjaCwgYWxsU3RyaW5nPUZhbHNlKToNCj4gLSAgICAiIiINCj4gLSAgICBFbnN1 cmUgdGhhdCB0aGUgcmUgYHRvX21hdGNoJyBvbmx5IGhhcyBvbmUgZ3JvdXAgaW4gaXQuDQo+IC0g ICAgIiIiDQo+IC0NCj4gLSAgICBzY2FubmVyID0gcmUuY29tcGlsZSh0b19tYXRjaCwgcmUuRE9U QUxMKQ0KPiAtICAgIGlmIGFsbFN0cmluZzoNCj4gLSAgICAgICAgcmV0dXJuIHNjYW5uZXIuZmlu ZGFsbChzKQ0KPiAtICAgIG0gPSBzY2FubmVyLnNlYXJjaChzKQ0KPiAtICAgIGlmIG0gaXMgTm9u ZToNCj4gLSAgICAgICAgbG9nX2hhbmRsZXIud2FybmluZygiRmFpbGVkIHRvIG1hdGNoICIgKyB0 b19tYXRjaCArICIgaW4gdGhlDQo+IHN0cmluZyAiICsgcykNCj4gLSAgICAgICAgcmV0dXJuIE5v bmUNCj4gLSAgICByZXR1cm4gbS5ncm91cCgxKQ0KPiAtDQo+IC0NCj4gLWRlZiBwcHJpbnQoc29t ZV9kaWN0KToNCj4gLSAgICAiIiINCj4gLSAgICBQcmludCBKU09OIGZvcm1hdCBkaWN0aW9uYXJ5 IG9iamVjdC4NCj4gLSAgICAiIiINCj4gLSAgICByZXR1cm4ganNvbi5kdW1wcyhzb21lX2RpY3Qs IHNvcnRfa2V5cz1UcnVlLCBpbmRlbnQ9NCkNCj4gLQ0KPiAtDQo+ICBkZWYgcmVwb3J0KHRleHQs IGZyYW1lPUZhbHNlLCBhbm5leD1GYWxzZSk6DQo+ICAgICAgIiIiDQo+ICAgICAgU2F2ZSByZXBv cnQgdGV4dCBpbnRvIHJzdCBmaWxlLg0KPiBAQCAtMTMyLDM2ICsxMDIsNiBAQCBkZWYgY2xvc2Vf Y3JiX3Nlc3Npb25zKCk6DQo+ICAgICAgbG9nX2hhbmRsZXIuaW5mbygiRFRTIGVuZGVkIikNCj4g DQo+IA0KPiAtZGVmIGdldF9uaWNfZHJpdmVyKHBjaV9pZCk6DQo+IC0gICAgIiIiDQo+IC0gICAg UmV0dXJuIGxpbnV4IGRyaXZlciBmb3Igc3BlY2lmaWVkIHBjaSBkZXZpY2UNCj4gLSAgICAiIiIN Cj4gLSAgICBkcml2ZXJsaXN0ID0gZGljdCh6aXAoTklDUy52YWx1ZXMoKSwgRFJJVkVSUy5rZXlz KCkpKQ0KPiAtICAgIHRyeToNCj4gLSAgICAgICAgZHJpdmVyID0gRFJJVkVSU1tkcml2ZXJsaXN0 W3BjaV9pZF1dDQo+IC0gICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOg0KPiAtICAgICAgICBkcml2 ZXIgPSBOb25lDQo+IC0gICAgcmV0dXJuIGRyaXZlcg0KPiAtDQo+IC0NCj4gLWRlZiBhY2NlcHRl ZF9uaWMocGNpX2lkKToNCj4gLSAgICAiIiINCj4gLSAgICBSZXR1cm4gVHJ1ZSBpZiB0aGUgcGNp X2lkIGlzIGEga25vd24gTklDIGNhcmQgaW4gdGhlIHNldHRpbmdzIGZpbGUNCj4gYW5kIGlmDQo+ IC0gICAgaXQgaXMgc2VsZWN0ZWQgaW4gdGhlIGV4ZWN1dGlvbiBmaWxlLCBvdGhlcndpc2UgaXQg cmV0dXJucyBGYWxzZS4NCj4gLSAgICAiIiINCj4gLSAgICBpZiBwY2lfaWQgbm90IGluIE5JQ1Mu dmFsdWVzKCk6DQo+IC0gICAgICAgIHJldHVybiBGYWxzZQ0KPiAtDQo+IC0gICAgaWYgbmljIGlz ICdhbnknOg0KPiAtICAgICAgICByZXR1cm4gVHJ1ZQ0KPiAtDQo+IC0gICAgZWxzZToNCj4gLSAg ICAgICAgaWYgcGNpX2lkID09IE5JQ1NbbmljXToNCj4gLSAgICAgICAgICAgIHJldHVybiBUcnVl DQo+IC0NCj4gLSAgICByZXR1cm4gRmFsc2UNCj4gLQ0KPiAtDQo+ICBkZWYgZ2V0X2NyYl9vcyhj cmIpOg0KPiAgICAgIGlmICdPUycgaW4gY3JiOg0KPiAgICAgICAgICByZXR1cm4gY3JiWydPUydd DQo+IEBAIC0yMjAsOSArMTYwLDEwIEBAIGRlZiBnZXRfcHJvamVjdF9vYmoocHJvamVjdF9uYW1l LCBzdXBlcl9jbGFzcywNCj4gY3JiSW5zdCwgc2VyaWFsaXplcik6DQo+ICAgICAgIiIiDQo+ICAg ICAgTG9hZCBwcm9qZWN0IG1vZHVsZSBhbmQgcmV0dXJuIGNyYiBpbnN0YW5jZS4NCj4gICAgICAi IiINCj4gKyAgICBnbG9iYWwgUFJPSkVDVF9NT0RVTEVfUFJFRklYDQo+ICAgICAgcHJvamVjdF9v YmogPSBOb25lDQo+ICAgICAgdHJ5Og0KPiAtICAgICAgICBwcm9qZWN0X21vZHVsZSA9IF9faW1w b3J0X18oInByb2plY3RfIiArIHByb2plY3RfbmFtZSkNCj4gKyAgICAgICAgcHJvamVjdF9tb2R1 bGUgPSBfX2ltcG9ydF9fKFBST0pFQ1RfTU9EVUxFX1BSRUZJWCArDQo+IHByb2plY3RfbmFtZSkN Cj4gDQo+ICAgICAgICAgIGZvciBwcm9qZWN0X3N1YmNsYXNzbmFtZSwgcHJvamVjdF9zdWJjbGFz cyBpbg0KPiBnZXRfc3ViY2xhc3Nlcyhwcm9qZWN0X21vZHVsZSwgc3VwZXJfY2xhc3MpOg0KPiAg ICAgICAgICAgICAgcHJvamVjdF9vYmogPSBwcm9qZWN0X3N1YmNsYXNzKGNyYkluc3QsIHNlcmlh bGl6ZXIpDQo+IEBAIC0yNjcsMTkgKzIwOCwyMCBAQCBkZWYgZHRzX2xvZ19leGVjdXRpb24obG9n X2hhbmRsZXIpOg0KPiAgICAgICAgICBwYXNzDQo+IA0KPiANCj4gLWRlZiBkdHNfY3Jic19pbml0 KGNyYkluc3QsIHNraXBfc2V0dXAsIHJlYWRfY2FjaGUsIHByb2plY3QsIGJhc2VfZGlyLA0KPiBu aWMpOg0KPiArZGVmIGR0c19jcmJzX2luaXQoY3JiSW5zdCwgc2tpcF9zZXR1cCwgcmVhZF9jYWNo ZSwgcHJvamVjdCwgYmFzZV9kaXIsDQo+IG5pYywgdmlydHR5cGUpOg0KPiAgICAgICIiIg0KPiAg ICAgIENyZWF0ZSBkdHMgZHV0L3Rlc3RlciBpbnN0YW5jZSBhbmQgaW5pdGlhbGl6ZSB0aGVtLg0K PiAgICAgICIiIg0KPiAgICAgIGdsb2JhbCBkdXQNCj4gICAgICBnbG9iYWwgdGVzdGVyDQo+IC0g ICAgc2VyaWFsaXplci5zZXRfc2VyaWFsaXplZF9maWxlbmFtZSgnLi4vLiVzLmNhY2hlJyAlIGNy Ykluc3RbJ0lQJ10pDQo+ICsgICAgc2VyaWFsaXplci5zZXRfc2VyaWFsaXplZF9maWxlbmFtZSgn LiVzLmNhY2hlJyAlIGNyYkluc3RbJ0lQJ10pDQo+ICAgICAgc2VyaWFsaXplci5sb2FkX2Zyb21f ZmlsZSgpDQo+IA0KPiAgICAgIGR1dCA9IGdldF9wcm9qZWN0X29iaihwcm9qZWN0LCBEdXQsIGNy Ykluc3QsIHNlcmlhbGl6ZXIpDQo+ICAgICAgdGVzdGVyID0gZ2V0X3Byb2plY3Rfb2JqKHByb2pl Y3QsIFRlc3RlciwgY3JiSW5zdCwgc2VyaWFsaXplcikNCj4gICAgICBkdXQudGVzdGVyID0gdGVz dGVyDQo+ICAgICAgdGVzdGVyLmR1dCA9IGR1dA0KPiArICAgIGR1dC5zZXRfdmlydHR5cGUodmly dHR5cGUpDQo+ICAgICAgZHV0LnNldF9zcGVlZHVwX29wdGlvbnMocmVhZF9jYWNoZSwgc2tpcF9z ZXR1cCkNCj4gICAgICBkdXQuc2V0X2RpcmVjdG9yeShiYXNlX2RpcikNCj4gICAgICBkdXQuc2V0 X25pY190eXBlKG5pYykNCj4gQEAgLTMzNyw3ICsyNzksNiBAQCBkZWYgZHRzX3J1bl90YXJnZXQo Y3JiSW5zdCwgdGFyZ2V0cywgdGVzdF9zdWl0ZXMsDQo+IG5pYyk6DQo+ICAgICAgICAgIGlmICdu aWNfdHlwZScgbm90IGluIHBhcmFtRGljdDoNCj4gICAgICAgICAgICAgIHBhcmFtRGljdFsnbmlj X3R5cGUnXSA9ICdhbnknDQo+ICAgICAgICAgICAgICBuaWMgPSAnYW55Jw0KPiAtICAgICAgICBy ZXN1bHQubmljID0gbmljDQo+IA0KPiAgICAgICAgICBkdHNfcnVuX3N1aXRlKGNyYkluc3QsIHRl c3Rfc3VpdGVzLCB0YXJnZXQsIG5pYykNCj4gDQo+IEBAIC0zNTksNyArMzAwLDkgQEAgZGVmIGR0 c19ydW5fc3VpdGUoY3JiSW5zdCwgdGVzdF9zdWl0ZXMsIHRhcmdldCwNCj4gbmljKToNCj4gICAg ICAgICAgICAgIHRlc3RfbW9kdWxlID0gX19pbXBvcnRfXygnVGVzdFN1aXRlXycgKyB0ZXN0X3N1 aXRlKQ0KPiAgICAgICAgICAgICAgZm9yIHRlc3RfY2xhc3NuYW1lLCB0ZXN0X2NsYXNzIGluDQo+ IGdldF9zdWJjbGFzc2VzKHRlc3RfbW9kdWxlLCBUZXN0Q2FzZSk6DQo+IA0KPiAtICAgICAgICAg ICAgICAgIHRlc3Rfc3VpdGUgPSB0ZXN0X2NsYXNzKGR1dCwgdGVzdGVyLCB0YXJnZXQpDQo+ICsg ICAgICAgICAgICAgICAgdGVzdF9zdWl0ZSA9IHRlc3RfY2xhc3MoZHV0LCB0ZXN0ZXIsIHRhcmdl dCwNCj4gdGVzdF9zdWl0ZSkNCj4gKyAgICAgICAgICAgICAgICByZXN1bHQubmljID0gdGVzdF9z dWl0ZS5uaWMNCj4gKw0KPiAgICAgICAgICAgICAgICAgIGR0c19sb2dfdGVzdHN1aXRlKHRlc3Rf c3VpdGUsIGxvZ19oYW5kbGVyLA0KPiB0ZXN0X2NsYXNzbmFtZSkNCj4gDQo+ICAgICAgICAgICAg ICAgICAgbG9nX2hhbmRsZXIuaW5mbygiXG5URVNUIFNVSVRFIDogIiArIHRlc3RfY2xhc3NuYW1l KQ0KPiBAQCAtMzg2LDcgKzMyOSw3IEBAIGRlZiBkdHNfcnVuX3N1aXRlKGNyYkluc3QsIHRlc3Rf c3VpdGVzLCB0YXJnZXQsDQo+IG5pYyk6DQo+IA0KPiAgZGVmIHJ1bl9hbGwoY29uZmlnX2ZpbGUs IHBrZ05hbWUsIGdpdCwgcGF0Y2gsIHNraXBfc2V0dXAsDQo+ICAgICAgICAgICAgICByZWFkX2Nh Y2hlLCBwcm9qZWN0LCBzdWl0ZV9kaXIsIHRlc3RfY2FzZXMsDQo+IC0gICAgICAgICAgICBiYXNl X2Rpciwgb3V0cHV0X2RpciwgdmVyYm9zZSwgZGVidWcpOg0KPiArICAgICAgICAgICAgYmFzZV9k aXIsIG91dHB1dF9kaXIsIHZlcmJvc2UsIHZpcnR0eXBlLCBkZWJ1Zyk6DQo+ICAgICAgIiIiDQo+ ICAgICAgTWFpbiBwcm9jZXNzIG9mIERUUywgaXQgd2lsbCBydW4gYWxsIHRlc3Qgc3VpdGVzIGlu IHRoZSBjb25maWcNCj4gZmlsZS4NCj4gICAgICAiIiINCj4gQEAgLTQwMCw2ICszNDMsMTIgQEAg ZGVmIHJ1bl9hbGwoY29uZmlnX2ZpbGUsIHBrZ05hbWUsIGdpdCwgcGF0Y2gsDQo+IHNraXBfc2V0 dXAsDQo+ICAgICAgZ2xvYmFsIHN0YXRzDQo+ICAgICAgZ2xvYmFsIGxvZ19oYW5kbGVyDQo+ICAg ICAgZ2xvYmFsIGRlYnVnX21vZGUNCj4gKyAgICBnbG9iYWwgUGFja2FnZQ0KPiArICAgIGdsb2Jh bCBQYXRjaGVzDQo+ICsNCj4gKyAgICAjIHNhdmUgZ2xvYmFsIHZhcmlhYmxlDQo+ICsgICAgUGFj a2FnZSA9IHBrZ05hbWUNCj4gKyAgICBQYXRjaGVzID0gcGF0Y2gNCj4gDQo+ICAgICAgIyBwcmVw YXJlIHRoZSBvdXRwdXQgZm9sZGVyDQo+ICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKG91dHB1 dF9kaXIpOg0KPiBAQCAtNDY2LDcgKzQxNSw4IEBAIGRlZiBydW5fYWxsKGNvbmZpZ19maWxlLCBw a2dOYW1lLCBnaXQsIHBhdGNoLA0KPiBza2lwX3NldHVwLA0KPiAgICAgICAgICByZXN1bHQuZHV0 ID0gZHV0SVANCj4gDQo+ICAgICAgICAgICMgaW5pdCBkdXQsIHRlc3RlciBjcmINCj4gLSAgICAg ICAgZHRzX2NyYnNfaW5pdChjcmJJbnN0LCBza2lwX3NldHVwLCByZWFkX2NhY2hlLCBwcm9qZWN0 LA0KPiBiYXNlX2RpciwgbmljcykNCj4gKyAgICAgICAgZHRzX2NyYnNfaW5pdCgNCj4gKyAgICAg ICAgICAgIGNyYkluc3QsIHNraXBfc2V0dXAsIHJlYWRfY2FjaGUsIHByb2plY3QsIGJhc2VfZGly LCBuaWNzLA0KPiB2aXJ0dHlwZSkNCj4gDQo+ICAgICAgICAgICMgUnVuIERVVCBwcmVyZXF1aXNp dGVzDQo+ICAgICAgICAgIGlmIGR0c19ydW5fcHJlcmVxdWlzdGllcyhwa2dOYW1lLCBwYXRjaCkg aXMgRmFsc2U6DQo+IGRpZmYgLS1naXQgYS9mcmFtZXdvcmsvZXhjZXB0aW9uLnB5IGIvZnJhbWV3 b3JrL2V4Y2VwdGlvbi5weQ0KPiBpbmRleCBiZTM4YzE2Li45OGRlZGY0IDEwMDY0NA0KPiAtLS0g YS9mcmFtZXdvcmsvZXhjZXB0aW9uLnB5DQo+ICsrKyBiL2ZyYW1ld29yay9leGNlcHRpb24ucHkN Cj4gQEAgLTQ2LDMgKzQ2LDMwIEBAIGNsYXNzIFNTSENvbm5lY3Rpb25FeGNlcHRpb24oRXhjZXB0 aW9uKToNCj4gDQo+ICAgICAgZGVmIF9fc3RyX18oc2VsZik6DQo+ICAgICAgICAgIHJldHVybiAn RXJyb3IgdHJ5aW5nIHRvIGNvbm5lY3Qgd2l0aCAlcycgJSBzZWxmLmhvc3QNCj4gKw0KPiArDQo+ ICtjbGFzcyBTU0hTZXNzaW9uRGVhZEV4Y2VwdGlvbihFeGNlcHRpb24pOg0KPiArDQo+ICsgICAg IiIiDQo+ICsgICAgU1NIIHNlc3Npb24gaXMgbm90IGFsaXZlLg0KPiArICAgIEl0IGNhbiBubyBs b25nZXIgYmUgdXNlZC4NCj4gKyAgICAiIiINCj4gKw0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxm LCBob3N0KToNCj4gKyAgICAgICAgc2VsZi5ob3N0ID0gaG9zdA0KPiArDQo+ICsgICAgZGVmIF9f c3RyX18oc2VsZik6DQo+ICsgICAgICAgIHJldHVybiAnU1NIIHNlc3Npb24gd2l0aCAlcyBoYXMg YmVlbiBkZWFkJyAlIHNlbGYuaG9zdA0KPiArDQo+ICsNCj4gK2NsYXNzIFN0YXJ0Vk1GYWlsZWRF eGNlcHRpb24oRXhjZXB0aW9uKToNCj4gKw0KPiArICAgICIiIg0KPiArICAgIFN0YXJ0IFZNIGZh aWxlZC4NCj4gKyAgICAiIiINCj4gKw0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBlcnJvcik6 DQo+ICsgICAgICAgIHNlbGYuZXJyb3IgPSBlcnJvcg0KPiArDQo+ICsgICAgZGVmIF9fc3RyX18o c2VsZik6DQo+ICsgICAgICAgIHJldHVybiByZXByKHNlbGYuZXJyb3IpDQo+IGRpZmYgLS1naXQg YS9mcmFtZXdvcmsvbG9nZ2VyLnB5IGIvZnJhbWV3b3JrL2xvZ2dlci5weQ0KPiBpbmRleCAxODI5 ZTE4Li41NTk3ZTMzIDEwMDY0NA0KPiAtLS0gYS9mcmFtZXdvcmsvbG9nZ2VyLnB5DQo+ICsrKyBi L2ZyYW1ld29yay9sb2dnZXIucHkNCj4gQEAgLTM1LDYgKzM1LDkgQEAgaW1wb3J0IHN5cw0KPiAg aW1wb3J0IGluc3BlY3QNCj4gIGltcG9ydCByZQ0KPiANCj4gK2Zyb20gc2V0dGluZ3MgaW1wb3J0 IExPR19OQU1FX1NFUA0KPiArZnJvbSB1dGlscyBpbXBvcnQgUkVEDQo+ICsNCj4gICIiIg0KPiAg RFRTIGxvZ2dlciBtb2R1bGUgd2l0aCBzZXZlcmFsIGxvZyBsZXZlbC4gRFRTIGZyYW13b3JrIGFu ZCBUZXN0U3VpdGUNCj4gbG9nDQo+ICB3aWxsIHNhdmVkIGludG8gZGlmZmVyZW50IGxvZyBmaWxl cy4NCj4gQEAgLTU4LDYgKzYxLDkgQEAgbG9nZ2luZy5TVUlURV9URVNURVJfT1VUUFVUID0gbG9n Z2luZy5ERUJVRyArIDQNCj4gIGxvZ2dpbmcuRFRTX0lYSUFfQ01EID0gbG9nZ2luZy5JTkZPICsg NQ0KPiAgbG9nZ2luZy5EVFNfSVhJQV9PVVRQVVQgPSBsb2dnaW5nLkRFQlVHICsgNQ0KPiANCj4g K2xvZ2dpbmcuRFRTX1ZJUlREVVRfQ01EID0gbG9nZ2luZy5JTkZPICsgNg0KPiArbG9nZ2luZy5E VFNfVklSVERVVF9PVVRQVVQgPSBsb2dnaW5nLkRFQlVHICsgNg0KPiArDQo+ICBsb2dnaW5nLmFk ZExldmVsTmFtZShsb2dnaW5nLkRUU19EVVRfQ01ELCAnRFRTX0RVVF9DTUQnKQ0KPiAgbG9nZ2lu Zy5hZGRMZXZlbE5hbWUobG9nZ2luZy5EVFNfRFVUX09VVFBVVCwgJ0RUU19EVVRfT1VUUFVUJykN Cj4gIGxvZ2dpbmcuYWRkTGV2ZWxOYW1lKGxvZ2dpbmcuRFRTX0RVVF9SRVNVTFQsICdEVFNfRFVU X1JFU1VUTCcpDQo+IEBAIC02Niw2ICs3MiwxMiBAQCBsb2dnaW5nLmFkZExldmVsTmFtZShsb2dn aW5nLkRUU19URVNURVJfQ01ELA0KPiAnRFRTX1RFU1RFUl9DTUQnKQ0KPiAgbG9nZ2luZy5hZGRM ZXZlbE5hbWUobG9nZ2luZy5EVFNfVEVTVEVSX09VVFBVVCwgJ0RUU19URVNURVJfT1VUUFVUJykN Cj4gIGxvZ2dpbmcuYWRkTGV2ZWxOYW1lKGxvZ2dpbmcuRFRTX1RFU1RFUl9SRVNVTFQsICdEVFNf VEVTVEVSX1JFU1VMVCcpDQo+IA0KPiArbG9nZ2luZy5hZGRMZXZlbE5hbWUobG9nZ2luZy5EVFNf SVhJQV9DTUQsICdEVFNfSVhJQV9DTUQnKQ0KPiArbG9nZ2luZy5hZGRMZXZlbE5hbWUobG9nZ2lu Zy5EVFNfSVhJQV9PVVRQVVQsICdEVFNfSVhJQV9PVVRQVVQnKQ0KPiArDQo+ICtsb2dnaW5nLmFk ZExldmVsTmFtZShsb2dnaW5nLkRUU19WSVJURFVUX0NNRCwgJ1ZJUlREVVRfQ01EJykNCj4gK2xv Z2dpbmcuYWRkTGV2ZWxOYW1lKGxvZ2dpbmcuRFRTX1ZJUlREVVRfT1VUUFVULCAnVklSVERVVF9P VVRQVVQnKQ0KPiArDQo+ICBsb2dnaW5nLmFkZExldmVsTmFtZShsb2dnaW5nLlNVSVRFX0RVVF9D TUQsICdTVUlURV9EVVRfQ01EJykNCj4gIGxvZ2dpbmcuYWRkTGV2ZWxOYW1lKGxvZ2dpbmcuU1VJ VEVfRFVUX09VVFBVVCwgJ1NVSVRFX0RVVF9PVVRQVVQnKQ0KPiANCj4gQEAgLTgyLDE1ICs5NCwx OCBAQCBzdHJlYW1fZm10ID0NCj4gJyUoY29sb3IpcyUobGV2ZWxuYW1lKTIwczogJShtZXNzYWdl KXMnICsgUkVTRVRfQ09MT1INCj4gIGxvZ19kaXIgPSBOb25lDQo+IA0KPiANCj4gLWRlZiBSRUQo dGV4dCk6DQo+IC0gICAgcmV0dXJuICJceDFCWyIgKyAiMzE7MW0iICsgdGV4dCArICJceDFCWyIg KyAiMG0iDQo+IC0NCj4gLQ0KPiAgZGVmIHNldF92ZXJib3NlKCk6DQo+ICAgICAgZ2xvYmFsIHZl cmJvc2UNCj4gICAgICB2ZXJib3NlID0gVHJ1ZQ0KPiANCj4gDQo+ICtkZWYgYWRkX3NhbHQoc2Fs dCwgbXNnKToNCj4gKyAgICBpZiBub3Qgc2FsdDoNCj4gKyAgICAgICAgcmV0dXJuIG1zZw0KPiAr ICAgIGVsc2U6DQo+ICsgICAgICAgIHJldHVybiAnWyVzXSAnICUgc2FsdCArIHN0cihtc2cpDQo+ ICsNCj4gKw0KPiAgY2xhc3MgQmFzZUxvZ2dlckFkYXB0ZXIobG9nZ2luZy5Mb2dnZXJBZGFwdGVy KToNCj4gICAgICAiIiINCj4gICAgICBVcHBlciBsYXllciBvZiBvcmlnaW5hbCBsb2dnaW5nIG1v ZHVsZS4NCj4gQEAgLTEzMiw2ICsxNDcsMTIgQEAgY2xhc3MgQmFzZUxvZ2dlckFkYXB0ZXIobG9n Z2luZy5Mb2dnZXJBZGFwdGVyKToNCj4gICAgICBkZWYgZHRzX2l4aWFfb3V0cHV0KHNlbGYsIG1z ZywgKmFyZ3MsICoqa3dhcmdzKToNCj4gICAgICAgICAgc2VsZi5sb2cobG9nZ2luZy5EVFNfSVhJ QV9PVVRQVVQsIG1zZywgKmFyZ3MsICoqa3dhcmdzKQ0KPiANCj4gKyAgICBkZWYgZHRzX3ZpcnRk dXRfY21kKHNlbGYsIG1zZywgKmFyZ3MsICoqa3dhcmdzKToNCj4gKyAgICAgICAgc2VsZi5sb2co bG9nZ2luZy5EVFNfVklSVERVVF9DTUQsIG1zZywgKmFyZ3MsICoqa3dhcmdzKQ0KPiArDQo+ICsg ICAgZGVmIGR0c192aXJ0ZHV0X291dHB1dChzZWxmLCBtc2csICphcmdzLCAqKmt3YXJncyk6DQo+ ICsgICAgICAgIHNlbGYubG9nKGxvZ2dpbmcuRFRTX1ZJUlREVVRfT1VUUFVULCBtc2csICphcmdz LCAqKmt3YXJncykNCj4gKw0KPiANCj4gIGNsYXNzIENvbG9ySGFuZGxlcihsb2dnaW5nLlN0cmVh bUhhbmRsZXIpOg0KPiAgICAgICIiIg0KPiBAQCAtMTUwLDYgKzE3MSw4IEBAIGNsYXNzIENvbG9y SGFuZGxlcihsb2dnaW5nLlN0cmVhbUhhbmRsZXIpOg0KPiAgICAgICAgICBsb2dnaW5nLlNVSVRF X1RFU1RFUl9DTUQ6ICcnLCAgIyBTWVNURU0NCj4gICAgICAgICAgbG9nZ2luZy5EVFNfSVhJQV9D TUQ6ICcnLCAgIyBTWVNURU0NCj4gICAgICAgICAgbG9nZ2luZy5EVFNfSVhJQV9PVVRQVVQ6ICcn LCAgIyBTWVNURU0NCj4gKyAgICAgICAgbG9nZ2luZy5EVFNfVklSVERVVF9DTUQ6ICcnLCAgIyBT WVNURU0NCj4gKyAgICAgICAgbG9nZ2luZy5EVFNfVklSVERVVF9PVVRQVVQ6ICcnLCAgIyBTWVNU RU0NCj4gICAgICAgICAgbG9nZ2luZy5XQVJOOiAnXDAzM1swMTszM20nLCAgIyBCT0xEIFlFTExP Vw0KPiAgICAgICAgICBsb2dnaW5nLkRUU19EVVRfUkVTVUxUOiAnXDAzM1swMTszNG0nLCAgIyBC T0xEIEJMVUUNCj4gICAgICAgICAgbG9nZ2luZy5EVFNfVEVTVEVSX1JFU1VMVDogJ1wwMzNbMDE7 MzRtJywgICMgQk9MRCBCTFVFDQo+IEBAIC0xODksNiArMjEyLDggQEAgY2xhc3MgRFRTTE9HKEJh c2VMb2dnZXJBZGFwdGVyKToNCj4gICAgICAgICAgc2VsZi5jcmIgPSBjcmINCj4gICAgICAgICAg c3VwZXIoRFRTTE9HLCBzZWxmKS5fX2luaXRfXyhzZWxmLmxvZ2dlciwgZGljdChjcmI9c2VsZi5j cmIpKQ0KPiANCj4gKyAgICAgICAgc2VsZi5zYWx0ID0gJycNCj4gKw0KPiAgICAgICAgICBzZWxm LmZoID0gTm9uZQ0KPiAgICAgICAgICBzZWxmLmNoID0gTm9uZQ0KPiANCj4gQEAgLTIyMSwyNCAr MjQ2LDI4IEBAIGNsYXNzIERUU0xPRyhCYXNlTG9nZ2VyQWRhcHRlcik6DQo+ICAgICAgICAgICIi Ig0KPiAgICAgICAgICBEVFMgd2Fybm5pbmcgbGV2ZWwgbG9nIGZ1bmN0aW9uLg0KPiAgICAgICAg ICAiIiINCj4gKyAgICAgICAgbWVzc2FnZSA9IGFkZF9zYWx0KHNlbGYuc2FsdCwgbWVzc2FnZSkN Cj4gICAgICAgICAgc2VsZi5sb2dnZXIubG9nKHNlbGYud2Fybl9sdmwsIG1lc3NhZ2UpDQo+IA0K PiAgICAgIGRlZiBpbmZvKHNlbGYsIG1lc3NhZ2UpOg0KPiAgICAgICAgICAiIiINCj4gICAgICAg ICAgRFRTIGluZm9ybWF0aW9uIGxldmVsIGxvZyBmdW5jdGlvbi4NCj4gICAgICAgICAgIiIiDQo+ ICsgICAgICAgIG1lc3NhZ2UgPSBhZGRfc2FsdChzZWxmLnNhbHQsIG1lc3NhZ2UpDQo+ICAgICAg ICAgIHNlbGYubG9nZ2VyLmxvZyhzZWxmLmluZm9fbHZsLCBtZXNzYWdlKQ0KPiANCj4gICAgICBk ZWYgZXJyb3Ioc2VsZiwgbWVzc2FnZSk6DQo+ICAgICAgICAgICIiIg0KPiAgICAgICAgICBEVFMg ZXJyb3IgbGV2ZWwgbG9nIGZ1bmN0aW9uLg0KPiAgICAgICAgICAiIiINCj4gKyAgICAgICAgbWVz c2FnZSA9IGFkZF9zYWx0KHNlbGYuc2FsdCwgbWVzc2FnZSkNCj4gICAgICAgICAgc2VsZi5sb2dn ZXIubG9nKHNlbGYuZXJyb3JfbHZsLCBtZXNzYWdlKQ0KPiANCj4gICAgICBkZWYgZGVidWcoc2Vs ZiwgbWVzc2FnZSk6DQo+ICAgICAgICAgICIiIg0KPiAgICAgICAgICBEVFMgZGVidWcgbGV2ZWwg bG9nIGZ1bmN0aW9uLg0KPiAgICAgICAgICAiIiINCj4gKyAgICAgICAgbWVzc2FnZSA9IGFkZF9z YWx0KHNlbGYuc2FsdCwgbWVzc2FnZSkNCj4gICAgICAgICAgc2VsZi5sb2dnZXIubG9nKHNlbGYu ZGVidWdfbHZsLCBtZXNzYWdlKQ0KPiANCj4gICAgICBkZWYgc2V0X2xvZ2ZpbGVfcGF0aChzZWxm LCBwYXRoKToNCj4gQEAgLTI3MCwxNyArMjk5LDM0IEBAIGNsYXNzIERUU0xPRyhCYXNlTG9nZ2Vy QWRhcHRlcik6DQo+ICAgICAgICAgIGNoID0gQ29sb3JIYW5kbGVyKCkNCj4gICAgICAgICAgc2Vs Zi5fX2xvZ19oYW5kZXIoZmgsIGNoKQ0KPiANCj4gLSAgICAgICAgaWYgY3JiID09ICJkdXQiOg0K PiArICAgICAgICBkZWYgc2V0X3NhbHQoY3JiLCBzdGFydF9mbGFnKToNCj4gKyAgICAgICAgICAg IGlmIExPR19OQU1FX1NFUCBpbiBjcmI6DQo+ICsgICAgICAgICAgICAgICAgb2xkID0gJyVzJXMn ICUgKHN0YXJ0X2ZsYWcsIExPR19OQU1FX1NFUCkNCj4gKyAgICAgICAgICAgICAgICBpZiBub3Qg c2VsZi5zYWx0Og0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLnNhbHQgPSBjcmIucmVwbGFj ZShvbGQsICcnLCAxKQ0KPiArDQo+ICsgICAgICAgIGlmIGNyYi5zdGFydHN3aXRoKCdkdXQnKToN Cj4gICAgICAgICAgICAgIHNlbGYuaW5mb19sdmwgPSBsb2dnaW5nLkRUU19EVVRfQ01EDQo+ICAg ICAgICAgICAgICBzZWxmLmRlYnVnX2x2bCA9IGxvZ2dpbmcuRFRTX0RVVF9PVVRQVVQNCj4gICAg ICAgICAgICAgIHNlbGYud2Fybl9sdmwgPSBsb2dnaW5nLkRUU19EVVRfUkVTVUxUDQo+IC0gICAg ICAgIGVsaWYgY3JiID09ICJ0ZXN0ZXIiOg0KPiArDQo+ICsgICAgICAgICAgICBzZXRfc2FsdChj cmIsICdkdXQnKQ0KPiArICAgICAgICBlbGlmIGNyYi5zdGFydHN3aXRoKCd0ZXN0ZXInKToNCj4g ICAgICAgICAgICAgIHNlbGYuaW5mb19sdmwgPSBsb2dnaW5nLkRUU19URVNURVJfQ01EDQo+ICAg ICAgICAgICAgICBzZWxmLmRlYnVnX2x2bCA9IGxvZ2dpbmcuRFRTX1RFU1RFUl9PVVRQVVQNCj4g ICAgICAgICAgICAgIHNlbGYud2Fybl9sdmwgPSBsb2dnaW5nLkRUU19URVNURVJfUkVTVUxUDQo+ IC0gICAgICAgIGVsaWYgY3JiID09ICJpeGlhIjoNCj4gKw0KPiArICAgICAgICAgICAgc2V0X3Nh bHQoY3JiLCAndGVzdGVyJykNCj4gKyAgICAgICAgZWxpZiBjcmIuc3RhcnRzd2l0aCgnaXhpYScp Og0KPiAgICAgICAgICAgICAgc2VsZi5pbmZvX2x2bCA9IGxvZ2dpbmcuRFRTX0lYSUFfQ01EDQo+ ICAgICAgICAgICAgICBzZWxmLmRlYnVnX2x2bCA9IGxvZ2dpbmcuRFRTX0lYSUFfT1VUUFVUDQo+ ICsNCj4gKyAgICAgICAgICAgIHNldF9zYWx0KGNyYiwgJ2l4aWEnKQ0KPiArICAgICAgICBlbGlm IGNyYi5zdGFydHN3aXRoKCd2aXJ0ZHV0Jyk6DQo+ICsgICAgICAgICAgICBzZWxmLmluZm9fbHZs ID0gbG9nZ2luZy5EVFNfVklSVERVVF9DTUQNCj4gKyAgICAgICAgICAgIHNlbGYuZGVidWdfbHZs ID0gbG9nZ2luZy5EVFNfVklSVERVVF9PVVRQVVQNCj4gKw0KPiArICAgICAgICAgICAgc2V0X3Nh bHQoY3JiLCAndmlydGR1dCcpDQo+ICAgICAgICAgIGVsc2U6DQo+ICAgICAgICAgICAgICBzZWxm LmVycm9yX2x2bCA9IGxvZ2dpbmcuRVJST1INCj4gICAgICAgICAgICAgIHNlbGYud2Fybl9sdmwg PSBsb2dnaW5nLldBUk5JTkcNCj4gQEAgLTI5NiwxNSArMzQyLDE4IEBAIGNsYXNzIERUU0xPRyhC YXNlTG9nZ2VyQWRhcHRlcik6DQo+ICAgICAgICAgIGNoID0gQ29sb3JIYW5kbGVyKCkNCj4gICAg ICAgICAgc2VsZi5fX2xvZ19oYW5kZXIoZmgsIGNoKQ0KPiANCj4gLSAgICAgICAgaWYgY3JiID09 ICJkdXQiOg0KPiArICAgICAgICBpZiBjcmIgPT0gJ2R1dCc6DQo+ICAgICAgICAgICAgICBzZWxm LmluZm9fbHZsID0gbG9nZ2luZy5TVUlURV9EVVRfQ01EDQo+ICAgICAgICAgICAgICBzZWxmLmRl YnVnX2x2bCA9IGxvZ2dpbmcuU1VJVEVfRFVUX09VVFBVVA0KPiAtICAgICAgICBlbGlmIGNyYiA9 PSAidGVzdGVyIjoNCj4gKyAgICAgICAgZWxpZiBjcmIgPT0gJ3Rlc3Rlcic6DQo+ICAgICAgICAg ICAgICBzZWxmLmluZm9fbHZsID0gbG9nZ2luZy5TVUlURV9URVNURVJfQ01EDQo+ICAgICAgICAg ICAgICBzZWxmLmRlYnVnX2x2bCA9IGxvZ2dpbmcuU1VJVEVfVEVTVEVSX09VVFBVVA0KPiAtICAg ICAgICBlbGlmIGNyYiA9PSAiaXhpYSI6DQo+ICsgICAgICAgIGVsaWYgY3JiID09ICdpeGlhJzoN Cj4gICAgICAgICAgICAgIHNlbGYuaW5mb19sdmwgPSBsb2dnaW5nLkRUU19JWElBX0NNRA0KPiAg ICAgICAgICAgICAgc2VsZi5kZWJ1Z19sdmwgPSBsb2dnaW5nLkRUU19JWElBX09VVFBVVA0KPiAr ICAgICAgICBlbGlmIGNyYiA9PSAndmlydGR1dCc6DQo+ICsgICAgICAgICAgICBzZWxmLmluZm9f bHZsID0gbG9nZ2luZy5EVFNfVklSVERVVF9DTUQNCj4gKyAgICAgICAgICAgIHNlbGYuZGVidWdf bHZsID0gbG9nZ2luZy5EVFNfVklSVERVVF9PVVRQVVQNCj4gDQo+ICAgICAgZGVmIGxvZ2dlcl9l eGl0KHNlbGYpOg0KPiAgICAgICAgICAiIiINCj4gZGlmZiAtLWdpdCBhL2ZyYW1ld29yay9tYWlu LnB5IGIvZnJhbWV3b3JrL21haW4ucHkNCj4gaW5kZXggM2U0NjdkMC4uMDQ5NmIyMCAxMDA3NTUN Cj4gLS0tIGEvZnJhbWV3b3JrL21haW4ucHkNCj4gKysrIGIvZnJhbWV3b3JrL21haW4ucHkNCj4g QEAgLTExNyw2ICsxMTcsMTAgQEAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLXYnLCAnLS12ZXJib3Nl JywNCj4gICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywNCj4gICAgICAg ICAgICAgICAgICAgICAgaGVscD0nZW5hYmxlIHZlcmJvc2Ugb3V0cHV0LCBhbGwgbWVzc2FnZSBv dXRwdXQgb24NCj4gc2NyZWVuJykNCj4gDQo+ICtwYXJzZXIuYWRkX2FyZ3VtZW50KCctLXZpcnR0 eXBlJywNCj4gKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0na3ZtJywNCj4gKyAgICAgICAg ICAgICAgICAgICAgaGVscD0nc2V0IHZpcnQgdHlwZSxzdXBwb3J0IGxpYnZpcnQseGVuLGt2bScp DQo+ICsNCj4gIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tZGVidWcnLA0KPiAgICAgICAgICAgICAg ICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLA0KPiAgICAgICAgICAgICAgICAgICAgICBoZWxw PSdlbmFibGUgZGVidWcgbW9kZSwgdXNlciBjYW4gZW50ZXIgZGVidWcgbW9kZQ0KPiBpbiBwcm9j ZXNzJykNCj4gQEAgLTEzNiw0ICsxNDAsNSBAQCBpZiBhcmdzLmdpdCBpcyBub3QgTm9uZToNCj4g IGR0cy5ydW5fYWxsKGFyZ3MuY29uZmlnX2ZpbGUsIGFyZ3Muc25hcHNob3QsIGFyZ3MuZ2l0LA0K PiAgICAgICAgICAgICAgYXJncy5wYXRjaCwgYXJncy5za2lwX3NldHVwLCBhcmdzLnJlYWRfY2Fj aGUsDQo+ICAgICAgICAgICAgICBhcmdzLnByb2plY3QsIGFyZ3Muc3VpdGVfZGlyLCBhcmdzLnRl c3RfY2FzZXMsDQo+IC0gICAgICAgICAgICBhcmdzLmRpciwgYXJncy5vdXRwdXQsIGFyZ3MudmVy Ym9zZSwgYXJncy5kZWJ1ZykNCj4gKyAgICAgICAgICAgIGFyZ3MuZGlyLCBhcmdzLm91dHB1dCwg YXJncy52ZXJib3NlLGFyZ3MudmlydHR5cGUsDQo+ICsgICAgICAgICAgICBhcmdzLmRlYnVnKQ0K PiBkaWZmIC0tZ2l0IGEvZnJhbWV3b3JrL3Byb2plY3RfZHBkay5weSBiL2ZyYW1ld29yay9wcm9q ZWN0X2RwZGsucHkNCj4gaW5kZXggODk2MzkyNC4uNjdiZDQ5MiAxMDA2NDQNCj4gLS0tIGEvZnJh bWV3b3JrL3Byb2plY3RfZHBkay5weQ0KPiArKysgYi9mcmFtZXdvcmsvcHJvamVjdF9kcGRrLnB5 DQo+IEBAIC0zOSw3ICszOSw3IEBAIGZyb20gY3JiIGltcG9ydCBDcmINCj4gIGZyb20gZHV0IGlt cG9ydCBEdXQNCj4gIGZyb20gdGVzdGVyIGltcG9ydCBUZXN0ZXINCj4gIGZyb20gbG9nZ2VyIGlt cG9ydCBnZXRMb2dnZXINCj4gLWZyb20gc2V0dGluZ3MgaW1wb3J0IElYSUENCj4gK2Zyb20gc2V0 dGluZ3MgaW1wb3J0IElYSUEsIGFjY2VwdGVkX25pYw0KPiANCj4gDQo+ICBjbGFzcyBEUERLZHV0 KER1dCk6DQo+IEBAIC01MCw4ICs1MCw5IEBAIGNsYXNzIERQREtkdXQoRHV0KToNCj4gICAgICAi IiINCj4gDQo+ICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNyYiwgc2VyaWFsaXplcik6DQo+IC0g ICAgICAgIHNlbGYuTkFNRSA9ICdkdXQnDQo+ICsNCj4gICAgICAgICAgc3VwZXIoRFBES2R1dCwg c2VsZikuX19pbml0X18oY3JiLCBzZXJpYWxpemVyKQ0KPiArICAgICAgICBzZWxmLnRlc3RwbWQg PSBOb25lDQo+IA0KPiAgICAgIGRlZiBzZXRfdGFyZ2V0KHNlbGYsIHRhcmdldCk6DQo+ICAgICAg ICAgICIiIg0KPiBAQCAtNjAsNiArNjEsNyBAQCBjbGFzcyBEUERLZHV0KER1dCk6DQo+ICAgICAg ICAgIFNldCBodWdlcGFnZSBvbiBEVVQgYW5kIGluc3RhbGwgbW9kdWxlcyByZXF1aXJlZCBieSBE UERLLg0KPiAgICAgICAgICBDb25maWd1cmUgZGVmYXVsdCBpeGdiZSBQTUQgZnVuY3Rpb24uDQo+ ICAgICAgICAgICIiIg0KPiArICAgICAgICBzZWxmLnRhcmdldCA9IHRhcmdldA0KPiAgICAgICAg ICBzZWxmLnNldF90b29sY2hhaW4odGFyZ2V0KQ0KPiANCj4gICAgICAgICAgIyBzZXQgZW52IHZh cmlhYmxlDQo+IEBAIC05OSw3ICsxMDEsMTYgQEAgY2xhc3MgRFBES2R1dChEdXQpOg0KPiAgICAg ICAgICAgICAgb3V0ID0gc2VsZi5zZW5kX2V4cGVjdCgibHNtb2QgfCBncmVwIGlnYl91aW8iLCAi IyIpDQo+ICAgICAgICAgICAgICBpZiAiaWdiX3VpbyIgaW4gb3V0Og0KPiAgICAgICAgICAgICAg ICAgIHNlbGYuc2VuZF9leHBlY3QoInJtbW9kIC1mIGlnYl91aW8iLCAiIyIsIDcwKQ0KPiAtICAg ICAgICAgICAgc2VsZi5zZW5kX2V4cGVjdCgiaW5zbW9kIC4vIiArIHRhcmdldCArICIva21vZC9p Z2JfdWlvLmtvIiwNCj4gIiMiLCA2MCkNCj4gKyAgICAgICAgICAgIGlmICJydGVfZG9tMF9tbSIg aW4gc2VsZi5zZW5kX2V4cGVjdCgibHNtb2QgfGdyZXANCj4gcnRlX2RvbTBfbW0iLCAiIyIpOg0K PiArICAgICAgICAgICAgICAgIHNlbGYuc2VuZF9leHBlY3QoInJtbW9kIC1mIHJ0ZV9kbW8wX21t IiwgIiMiLCA3MCkNCj4gKyAgICAgICAgICAgIHNlbGYuc2VuZF9leHBlY3QoDQo+ICsgICAgICAg ICAgICAgICAgImluc21vZCAuLyIgKyB0YXJnZXQgKyAiL2ttb2QvaWdiX3Vpby5rbyIsICIjIiwg NjApDQo+ICsgICAgICAgICAgICBpZiBzZWxmLnZpcnR0eXBlID09ICd4ZW4nOg0KPiArICAgICAg ICAgICAgICAgIHNlbGYuc2VuZF9leHBlY3QoDQo+ICsgICAgICAgICAgICAgICAgICAgICJpbnNt b2QgLi8iICsgdGFyZ2V0ICsgIi9rbW9kL3J0ZV9kb20wX21tLmtvIiwgIiMiLA0KPiA2MCkNCj4g KyAgICAgICAgICAgICAgICBzZWxmLnNlbmRfZXhwZWN0KA0KPiArICAgICAgICAgICAgICAgICAg ICByJ2VjaG8gMTAyNCA+IC9zeXMva2VybmVsL21tL2RvbTAtbW0vbWVtc2l6ZS0NCj4gbUIvbWVt c2l6ZScsICIjIiwgNzApDQo+ICsNCj4gICAgICAgICAgICAgIG91dCA9IHNlbGYuc2VuZF9leHBl Y3QoImxzbW9kIHwgZ3JlcCBpZ2JfdWlvIiwgIiMiKQ0KPiAgICAgICAgICAgICAgYXNzZXJ0ICgi aWdiX3VpbyIgaW4gb3V0KSwgIkZhaWxlZCB0byBpbnNtb2QgaWdiX3VpbyINCj4gDQo+IEBAIC0x MTAsNyArMTIxLDcgQEAgY2xhc3MgRFBES2R1dChEdXQpOg0KPiAgICAgICAgICBiaW5kaW5nX2xp c3QgPSAnJw0KPiANCj4gICAgICAgICAgZm9yIChwY2lfYnVzLCBwY2lfaWQpIGluIHNlbGYucGNp X2RldmljZXNfaW5mbzoNCj4gLSAgICAgICAgICAgIGlmIGR0cy5hY2NlcHRlZF9uaWMocGNpX2lk KToNCj4gKyAgICAgICAgICAgIGlmIGFjY2VwdGVkX25pYyhwY2lfaWQpOg0KPiAgICAgICAgICAg ICAgICAgIGJpbmRpbmdfbGlzdCArPSAnJXMsJyAlIChwY2lfYnVzKQ0KPiANCj4gICAgICAgICAg c2VsZi5zZW5kX2V4cGVjdCgia2xkdW5sb2FkIGlmX2l4Z2JlLmtvIiwgIiMiKQ0KPiBAQCAtMTU4 LDYgKzE2OSw5IEBAIGNsYXNzIERQREtkdXQoRHV0KToNCj4gICAgICAgICAgIiIiDQo+ICAgICAg ICAgICMgY2xlYW4gYWxsDQo+ICAgICAgICAgIHNlbGYuc2VuZF9leHBlY3QoInJtIC1yZiAiICsg dGFyZ2V0LCAiIyIpDQo+ICsgICAgICAgIGlmIHNlbGYudmlydHR5cGUgPT0gJ3hlbic6DQo+ICsg ICAgICAgICAgICBzZWxmLnNlbmRfZXhwZWN0KCJzZWQgLWkgLWUNCj4gJ3MvQ09ORklHX1JURV9M SUJSVEVfWEVOX0RPTTA9LiokLyINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAi Q09ORklHX1JURV9MSUJSVEVfWEVOX0RPTTA9eS8nDQo+IGNvbmZpZy9jb21tb25fbGludXhhcHAi LCAiIyAiLCAzMCkNCj4gDQo+ICAgICAgICAgICMgY29tcGlsZQ0KPiAgICAgICAgICBvdXQgPSBz ZWxmLnNlbmRfZXhwZWN0KCJtYWtlIC1qIGluc3RhbGwgVD0lcyAlcyIgJSAodGFyZ2V0LA0KPiBl eHRyYV9vcHRpb25zKSwgIiMgIiwgMTIwKQ0KPiBAQCAtMTc4LDkgKzE5Miw5IEBAIGNsYXNzIERQ REtkdXQoRHV0KToNCj4gICAgICAgICAgc2VsZi5zZW5kX2V4cGVjdCgicm0gLXJmICIgKyB0YXJn ZXQsICIjIikNCj4gDQo+ICAgICAgICAgICMgY29tcGlsZQ0KPiAtICAgICAgICBvdXQgPSBzZWxm LnNlbmRfZXhwZWN0KCJtYWtlIC1qICVkIGluc3RhbGwgVD0lcyBDQz1nY2M0OCIgJQ0KPiAoc2Vs Zi5udW1iZXJfb2ZfY29yZXMsDQo+IC0NCj4gdGFyZ2V0KSwNCj4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiIyIsIDEyMCkNCj4gKyAgICAgICAgb3V0ID0gc2VsZi5zZW5kX2V4cGVj dCgNCj4gKyAgICAgICAgICAgICJtYWtlIC1qICVkIGluc3RhbGwgVD0lcyBDQz1nY2M0OCIgJQ0K PiArICAgICAgICAgICAgKHNlbGYubnVtYmVyX29mX2NvcmVzLCB0YXJnZXQpLCAiIyIsIDEyMCkN Cj4gDQo+ICAgICAgICAgIGlmKCJFcnJvciIgaW4gb3V0IG9yICJObyBydWxlIHRvIG1ha2UiIGlu IG91dCk6DQo+ICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigiRVJST1IgLSB0cnkgd2l0 aG91dCAnLWonIikNCj4gQEAgLTE5MSwxMCArMjA1LDcgQEAgY2xhc3MgRFBES2R1dChEdXQpOg0K PiAgICAgICAgICBhc3NlcnQgKCJFcnJvciIgbm90IGluIG91dCksICJDb21waWxhdGlvbiBlcnJv ci4uLiINCj4gICAgICAgICAgYXNzZXJ0ICgiTm8gcnVsZSB0byBtYWtlIiBub3QgaW4gb3V0KSwg Ik5vIHJ1bGUgdG8gbWFrZQ0KPiBlcnJvci4uLiINCj4gDQo+IC0gICAgZGVmIHByZXJlcXVpc2l0 ZXMoc2VsZiwgcGtnTmFtZSwgcGF0Y2gpOg0KPiAtICAgICAgICAiIiINCj4gLSAgICAgICAgQ29w eSBEUERLIHBhY2thZ2UgdG8gRFVUIGFuZCBhcHBseSBwYXRjaCBmaWxlcy4NCj4gLSAgICAgICAg IiIiDQo+ICsgICAgZGVmIHByZXBhcmVfcGFja2FnZShzZWxmLCBwa2dOYW1lLCBwYXRjaCk6DQo+ ICAgICAgICAgIGlmIG5vdCBzZWxmLnNraXBfc2V0dXA6DQo+ICAgICAgICAgICAgICBhc3NlcnQg KG9zLnBhdGguaXNmaWxlKHBrZ05hbWUpIGlzIFRydWUpLCAiSW52YWxpZA0KPiBwYWNrYWdlIg0K PiANCj4gQEAgLTIwMiw3ICsyMTMsNyBAQCBjbGFzcyBEUERLZHV0KER1dCk6DQo+ICAgICAgICAg ICAgICAjIFRvRG86IG1ha2UgdGhpcyBjb25maWd1cmFibGUNCj4gICAgICAgICAgICAgIGRzdF9k aXIgPSAiL3RtcC8iDQo+ICAgICAgICAgICAgICBsbCBpc27igJl0IGxpbnV4IGtlcm5lbCBkZWZh dWx0IGNtZGxpbmUsIHNvbWUgbGludXggbm90IGhhdmUNCj4gdGhpcyBjbWQsIHdvdWxkIHVzZWQg bHMgdG8gcmVwbGFjZS4NCg0KWWVzLCBJIHdpbGwgY2hhbmdlIGl0IGluIHRoZSBuZXh0IHZlcnNp b24uDQoNCj4gLSAgICAgICAgICAgIG91dCA9IHNlbGYuc2VuZF9leHBlY3QoImxzICVzICYmIGNk ICVzIiAlIChkc3RfZGlyLCBwX2RpciksDQo+ICsgICAgICAgICAgICBvdXQgPSBzZWxmLnNlbmRf ZXhwZWN0KCJsbCAlcyAmJiBjZCAlcyIgJSAoZHN0X2RpciwgcF9kaXIpLA0KPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiIyIsIHZlcmlmeT1UcnVlKQ0KPiAgICAgICAgICAg ICAgaWYgb3V0ID09IC0xOg0KPiAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkRp cmVjdGlyeSAlcyBvciAlcyBkb2VzIG5vdCBleGlzdCwiDQo+IEBAIC0yNDksNiArMjYwLDE3IEBA IGNsYXNzIERQREtkdXQoRHV0KToNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoc2VsZi5iYXNlX2RpciwgZHN0X2RpciArDQo+IHApLCAiIyAiKQ0KPiAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnQgIioqKioiIG5vdCBpbiBvdXQNCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLnNlc3Npb24uY29weV9maWxlX3RvKCJkZXAvYWNscnVsZS50Z3oiLCBkc3RfZGly KQ0KPiArICAgICAgICAgICAgIyB1bnBhY2sgYWNsIHJ1bGUNCj4gKyAgICAgICAgICAgIG91dCA9 IHNlbGYuc2VuZF9leHBlY3QoInRhciB6eGYgJXNhY2xydWxlLnRneiAtQyAlcyIgJQ0KPiAoZHN0 X2RpciwgcF9kaXIpLCAiIyAiLCAyMCwgdmVyaWZ5PVRydWUpDQo+ICsgICAgICAgICAgICBpZiBv dXQgPT0gLTE6DQo+ICsgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiYWNsIHJ1bGUg ZXh0cmFjdCBmYWlsdXJlISEhIikNCj4gKw0KPiArICAgIGRlZiBwcmVyZXF1aXNpdGVzKHNlbGYs IHBrZ05hbWUsIHBhdGNoKToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIENvcHkgRFBESyBw YWNrYWdlIHRvIERVVCBhbmQgYXBwbHkgcGF0Y2ggZmlsZXMuDQo+ICsgICAgICAgICIiIg0KPiAr ICAgICAgICBzZWxmLnByZXBhcmVfcGFja2FnZShwa2dOYW1lLCBwYXRjaCkNCj4gICAgICAgICAg c2VsZi5kdXRfcHJlcmVxdWlzaXRlcygpDQo+IA0KPiAgICAgIGRlZiBiaW5kX2ludGVyZmFjZXNf bGludXgoc2VsZiwgZHJpdmVyPSdpZ2JfdWlvJywNCj4gbmljc190b19iaW5kPU5vbmUpOg0KPiBA QCAtMzU0LDE2ICszNzYsMjAgQEAgY2xhc3MgRFBES3Rlc3RlcihUZXN0ZXIpOg0KPiAgICAgICAg ICAgICAgdG90YWxfaHVnZV9wYWdlcyA9IHNlbGYuZ2V0X3RvdGFsX2h1Z2VfcGFnZXMoKQ0KPiAg ICAgICAgICAgICAgaWYgdG90YWxfaHVnZV9wYWdlcyA9PSAwOg0KPiAgICAgICAgICAgICAgICAg IHNlbGYubW91bnRfaHVnZV9wYWdlcygpDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zZXRfaHVn ZV9wYWdlcyg0MDk2KQ0KPiArICAgICAgICAgICAgICAgIHNlbGYuc2V0X2h1Z2VfcGFnZXMoMTAy NCkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnNlc3Npb24uY29weV9maWxlX3RvKCJkZXAvdGdl bi50Z3oiKQ0KPiAgICAgICAgICAgICAgc2VsZi5zZXNzaW9uLmNvcHlfZmlsZV90bygiZGVwL3Rj bGNsaWVudC50Z3oiKQ0KPiArICAgICAgICAgICAgc2VsZi5zZXNzaW9uLmNvcHlfZmlsZV90bygi ZGVwL2FjbHBjYXAudGd6IikNCj4gICAgICAgICAgICAgICMgdW5wYWNrIHRnZW4NCj4gICAgICAg ICAgICAgIG91dCA9IHNlbGYuc2VuZF9leHBlY3QoInRhciB6eGYgdGdlbi50Z3oiLCAiIyAiKQ0K PiAgICAgICAgICAgICAgYXNzZXJ0ICJFcnJvciIgbm90IGluIG91dA0KPiAgICAgICAgICAgICAg IyB1bnBhY2sgdGNsY2xpZW50DQo+ICAgICAgICAgICAgICBvdXQgPSBzZWxmLnNlbmRfZXhwZWN0 KCJ0YXIgenhmIHRjbGNsaWVudC50Z3oiLCAiIyAiKQ0KPiAgICAgICAgICAgICAgYXNzZXJ0ICJF cnJvciIgbm90IGluIG91dA0KPiArICAgICAgICAgICAgIyB1bnBhY2wgQUNMIHBjYXAgZmlsZXMN Cj4gKyAgICAgICAgICAgIG91dCA9IHNlbGYuc2VuZF9leHBlY3QoInRhciB6eGYgYWNscGNhcC50 Z3oiLCAiIyAiKQ0KPiArICAgICAgICAgICAgYXNzZXJ0ICJFcnJvciIgbm90IGluIG91dA0KPiAN Cj4gICAgICAgICAgc2VsZi5zZW5kX2V4cGVjdCgibW9kcHJvYmUgdWlvIiwgIiMgIikNCj4gDQo+ IEBAIC0zODYsMTAgKzQxMiwxMCBAQCBjbGFzcyBEUERLdGVzdGVyKFRlc3Rlcik6DQo+ICAgICAg ICAgICIiIg0KPiAgICAgICAgICBodWdlcGFnZXNfc2l6ZSA9IHNlbGYuc2VuZF9leHBlY3QoImF3 ayAnL0h1Z2VwYWdlc2l6ZS8ge3ByaW50DQo+ICQyfScgL3Byb2MvbWVtaW5mbyIsICIjICIpDQo+ IA0KPiAtICAgICAgICBpZiBpbnQoaHVnZXBhZ2VzX3NpemUpIDwgKDEwMjQgKiAxMDI0KToNCj4g LSAgICAgICAgICAgIGFyY2hfaHVnZV9wYWdlcyA9IGh1Z2VwYWdlcyBpZiBodWdlcGFnZXMgPiAw IGVsc2UgNDA5Ng0KPiArICAgICAgICBpZiBpbnQoaHVnZXBhZ2VzX3NpemUpIDwgKDIwNDggKiAy MDQ4KToNCj4gKyAgICAgICAgICAgIGFyY2hfaHVnZV9wYWdlcyA9IGh1Z2VwYWdlcyBpZiBodWdl cGFnZXMgPiAwIGVsc2UgMjA0OA0KPiAgICAgICAgICAgICAgdG90YWxfaHVnZV9wYWdlcyA9IHNl bGYuZ2V0X3RvdGFsX2h1Z2VfcGFnZXMoKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYubW91bnRf aHVnZV9wYWdlcygpDQo+IC0gICAgICAgICAgICBpZiB0b3RhbF9odWdlX3BhZ2VzICE9IGFyY2hf aHVnZV9wYWdlczoNCj4gLSAgICAgICAgICAgICAgICBzZWxmLnNldF9odWdlX3BhZ2VzKGFyY2hf aHVnZV9wYWdlcykNCj4gKyAgICAgICAgc2VsZi5tb3VudF9odWdlX3BhZ2VzKCkNCj4gKyAgICAg ICAgaWYgdG90YWxfaHVnZV9wYWdlcyAhPSBhcmNoX2h1Z2VfcGFnZXM6DQo+ICsgICAgICAgICAg ICBzZWxmLnNldF9odWdlX3BhZ2VzKGFyY2hfaHVnZV9wYWdlcykNCj4gLS0NCj4gMS45LjANCg0K