From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 114B02C01 for ; Fri, 22 Sep 2017 10:56:26 +0200 (CEST) Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 22 Sep 2017 01:56:25 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,427,1500966000"; d="scan'208";a="152146775" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga005.jf.intel.com with ESMTP; 22 Sep 2017 01:56:24 -0700 Received: from fmsmsx117.amr.corp.intel.com (10.18.116.17) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 22 Sep 2017 01:56:24 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx117.amr.corp.intel.com (10.18.116.17) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 22 Sep 2017 01:56:23 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.213]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.93]) with mapi id 14.03.0319.002; Fri, 22 Sep 2017 16:56:21 +0800 From: "Liu, Yong" To: "Wang, FeiX Y" , "dts@dpdk.org" CC: "Wang, FeiX Y" Thread-Topic: =?utf-8?B?W2R0c10gW3BhdGNoIHYyXSBmcmFtZXdvcmsvcGt0Z2VuLnB5OiByZW1vdmUg?= =?utf-8?B?4oCcIF9fbmFtZV9fID09IOKAnF9fbWFpbl9f4oCdIHBhcnQgICAgICAgICAg?= =?utf-8?B?ICAgICAgICAgICAgbW9kaWZ5IGNyZWF0ZV92bSgpIGFzIGEgcHJpdmF0ZSBt?= =?utf-8?B?ZXRob2QgICAgICAgICAgICAgICAgICAgICAgbW9kaWZ5IHNvbWUgdmFyaWFi?= =?utf-8?B?bGVzIGFzIHByaXZhdGUgdmFyaWFibGVzICAgICAgICAgICAgICAgICAgICAg?= =?utf-8?B?IG1vZGlmeSBfcmV0cmlldmVfcG9ydF9zdGF0aXN0aWM=?= Thread-Index: AQHTMrgoXNWdsU+8nki3pVTq5EFInaLAm45A Date: Fri, 22 Sep 2017 08:56:21 +0000 Message-ID: <86228AFD5BCD8E4EBFD2B90117B5E81E62EC9E0B@SHSMSX103.ccr.corp.intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action 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?q?=5Bpatch_v2=5D_framework/pktgen=2Epy=3A_remove_?= =?utf-8?b?4oCcIF9fbmFtZV9fID09IOKAnF9fbWFpbl9f4oCdIHBhcnQgICAgICAgICAg?= =?utf-8?q?____________modify_create=5Fvm=28=29_as_a_private_method_______?= =?utf-8?q?_______________modify_some_variables_as_private_variables______?= =?utf-8?q?________________modify_=5Fretrieve=5Fport=5Fstatistic?= 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: Fri, 22 Sep 2017 08:56:29 -0000 RmVpLA0KWW91ciBwYXRjaCBoYXNu4oCZdCBiZWVuIG1lcmdlZC4gSnVzdCBhZGQgZGVzY3JpcHRp b24gaW4gY29tbWl0IGxvZyBpcyBlbm91Z2guDQoNClRoYW5rcywNCk1hcnZpbg0KDQo+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGR0cyBbbWFpbHRvOmR0cy1ib3VuY2VzQGRw ZGsub3JnXSBPbiBCZWhhbGYgT2Ygd2FuZyBmZWkNCj4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJl ciAyMSwgMjAxNyA3OjMzIFBNDQo+IFRvOiBkdHNAZHBkay5vcmcNCj4gQ2M6IFdhbmcsIEZlaVgg WSA8ZmVpeC55LndhbmdAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBbZHRzXSBbcGF0Y2ggdjJdIGZy YW1ld29yay9wa3RnZW4ucHk6IHJlbW92ZSDigJwgX19uYW1lX18gPT0NCj4g4oCcX19tYWluX1/i gJ0gcGFydCBtb2RpZnkgY3JlYXRlX3ZtKCkgYXMgYSBwcml2YXRlIG1ldGhvZCBtb2RpZnkgc29t ZQ0KPiB2YXJpYWJsZXMgYXMgcHJpdmF0ZSB2YXJpYWJsZXMgbW9kaWZ5IF9yZXRyaWV2ZV9wb3J0 X3N0YXRpc3RpYyguLi4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IHdhbmcgZmVpIDxmZWl4Lnkud2Fu Z0BpbnRlbC5jb20+DQo+IC0tLQ0KPiAgZnJhbWV3b3JrL3BrdGdlbi5weSB8IDEwNSArKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAtLS0tLQ0KPiAgMSBm aWxlIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDY5IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlm ZiAtLWdpdCBhL2ZyYW1ld29yay9wa3RnZW4ucHkgYi9mcmFtZXdvcmsvcGt0Z2VuLnB5DQo+IGlu ZGV4IDAzNTUwYmQuLjRiYTZiMjUgMTAwNjQ0DQo+IC0tLSBhL2ZyYW1ld29yay9wa3RnZW4ucHkN Cj4gKysrIGIvZnJhbWV3b3JrL3BrdGdlbi5weQ0KPiBAQCAtOTQsNyArOTQsNyBAQCBjbGFzcyBQ YWNrZXRHZW5lcmF0b3Iob2JqZWN0KToNCj4gICAgICAgICAgcGFzcw0KPiANCj4gICAgICBAYWJz dHJhY3RtZXRob2QNCj4gLSAgICBkZWYgX3N0YXJ0X3RyYW5zbWlzc2lvbihzZWxmLCBzdHJlYW1f aWRzLCBkZWxheT01MCk6DQo+ICsgICAgZGVmIF9zdGFydF90cmFuc21pc3Npb24oc2VsZiwgc3Ry ZWFtX2lkcyk6DQo+ICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgQGFic3RyYWN0bWV0aG9kDQo+ IEBAIC0xMzYsMTAgKzEzNiwxMCBAQCBjbGFzcyBQYWNrZXRHZW5lcmF0b3Iob2JqZWN0KToNCj4g DQo+ICAgICAgICAgIHRpbWUuc2xlZXAoZGVsYXkpDQo+ICAgICAgICAgIGZvciBzdHJlYW1faWQg aW4gc3RyZWFtX2lkczoNCj4gLSAgICAgICAgICAgIHJ4YnBzX3JhdGVzLCByeHBwc19yYXRlcyA9 DQo+IHNlbGYuX3JldHJpZXZlX3BvcnRfc3RhdGlzdGljKHN0cmVhbV9pZCkNCj4gKyAgICAgICAg ICAgIHJ4X3N0YXRpc3RpY3MgPSBzZWxmLl9yZXRyaWV2ZV9wb3J0X3N0YXRpc3RpYyhzdHJlYW1f aWQpDQo+IA0KPiAtICAgICAgICAgICAgYnBzX3J4LmFwcGVuZChyeGJwc19yYXRlcykNCj4gLSAg ICAgICAgICAgIHBwc19yeC5hcHBlbmQocnhwcHNfcmF0ZXMpDQo+ICsgICAgICAgICAgICBicHNf cnguYXBwZW5kKHJ4X3N0YXRpc3RpY3NbInJhdGVfcnhfYml0cyJdKQ0KPiArICAgICAgICAgICAg cHBzX3J4LmFwcGVuZChyeF9zdGF0aXN0aWNzWyJyYXRlX3J4X3BrdHMiXSkNCj4gICAgICAgICAg ICAgIHNlbGYuX3N0b3BfdHJhbnNtaXNzaW9uKHN0cmVhbV9pZCkNCj4gICAgICAgICAgICAgIGJw c19yeF90b3RhbCA9IHNlbGYuX3N1bW1hcnlfc3RhdGlzdGljKGJwc19yeCkNCj4gICAgICAgICAg ICAgIHBwc19yeF90b3RhbCA9IHNlbGYuX3N1bW1hcnlfc3RhdGlzdGljKHBwc19yeCkNCj4gQEAg LTE0OCw4ICsxNDgsNiBAQCBjbGFzcyBQYWNrZXRHZW5lcmF0b3Iob2JqZWN0KToNCj4gDQo+ICAg ICAgICAgIHJldHVybiBicHNfcnhfdG90YWwsIHBwc19yeF90b3RhbA0KPiANCj4gLQ0KPiAtDQo+ ICAgICAgZGVmIF9zdW1tYXJ5X3N0YXRpc3RpYyhzZWxmLCBhcnJheT1bXSk6DQo+ICAgICAgICAg ICIiIg0KPiAgICAgICAgICBTdW1tYXJ5IGFsbCB2YWx1ZXMgaW4gc3RhdGlzdGljIGFycmF5DQo+ IEBAIC0xNTgsNyArMTU2LDYgQEAgY2xhc3MgUGFja2V0R2VuZXJhdG9yKG9iamVjdCk6DQo+ICAg ICAgICAgIGZvciB2YWx1ZSBpbiBhcnJheToNCj4gICAgICAgICAgICAgIHN1bW1hcnkgKz0gdmFs dWUNCj4gDQo+IC0NCj4gICAgICAgICAgcmV0dXJuIHN1bW1hcnkNCj4gDQo+ICAgICAgZGVmIF9n ZXRfc3RyZWFtKHNlbGYsIHN0cmVhbV9pZCk6DQo+IEBAIC0xODIsMTcgKzE3OSwxNyBAQCBjbGFz cyBUcmV4UGFja2V0R2VuZXJhdG9yKFBhY2tldEdlbmVyYXRvcik6DQo+ICAgICAgICAgIHNlbGYu X3BvcnRzID0gW10NCj4gICAgICAgICAgc2VsZi5fdHJhZmZpY19wb3J0cyA9IFtdDQo+ICAgICAg ICAgIHNlbGYuX3RyYW5zbWl0X3N0cmVhbXMgPSB7fQ0KPiAtICAgICAgICBzZWxmLnRyZXhfYXBw ID0gInNjcmlwdHMvdC1yZXgtNjQiDQo+ICsgICAgICAgIHNlbGYuX3RyZXhfYXBwID0gInNjcmlw dHMvdC1yZXgtNjQiDQo+IA0KPiAtICAgICAgICBzZWxmLmNvbmZfaW5zdCA9IHNlbGYuX2dldF9n ZW5lcmF0b3JfY29uZl9pbnN0YW5jZSgidHJleCIpDQo+IC0gICAgICAgIHNlbGYuY29uZiA9IHNl bGYuY29uZl9pbnN0LmxvYWRfcGt0Z2VuX2NvbmZpZygpDQo+IC0gICAgICAgIHNlbGYub3B0aW9u c19rZXlzID0gWyAncmF0ZScsICdpcCcsICd2bGFuJ10NCj4gLSAgICAgICAgc2VsZi5pcF9rZXlz ID0gWydzdGFydCcsICdlbmQnLCdhY3Rpb24nLCAnbWFzaycsICdzdGVwJ10NCj4gLSAgICAgICAg c2VsZi52bGFuX2tleXMgPSBbJ3N0YXJ0JywgJ2VuZCcsICdhY3Rpb24nLCAnc3RlcCcsICdjb3Vu dCddDQo+ICsgICAgICAgIHNlbGYuX2NvbmZfaW5zdCA9IHNlbGYuX2dldF9nZW5lcmF0b3JfY29u Zl9pbnN0YW5jZSgidHJleCIpDQo+ICsgICAgICAgIHNlbGYuX2NvbmYgPSBzZWxmLl9jb25mX2lu c3QubG9hZF9wa3RnZW5fY29uZmlnKCkNCj4gKyAgICAgICAgc2VsZi5fb3B0aW9uc19rZXlzID0g WyAncmF0ZScsICdpcCcsICd2bGFuJ10NCj4gKyAgICAgICAgc2VsZi5faXBfa2V5cyA9IFsnc3Rh cnQnLCAnZW5kJywnYWN0aW9uJywgJ21hc2snLCAnc3RlcCddDQo+ICsgICAgICAgIHNlbGYuX3Zs YW5fa2V5cyA9IFsnc3RhcnQnLCAnZW5kJywgJ2FjdGlvbicsICdzdGVwJywgJ2NvdW50J10NCj4g ICAgICAgICAgc3VwZXIoVHJleFBhY2tldEdlbmVyYXRvciwgc2VsZikuX19pbml0X18odGVzdGVy KQ0KPiANCj4gICAgICBkZWYgY29ubmVjdChzZWxmKToNCj4gLSAgICAgICAgc2VsZi5fY29ubiA9 IFNUTENsaWVudChzZXJ2ZXI9c2VsZi5jb25mWyJzZXJ2ZXIiXSkNCj4gKyAgICAgICAgc2VsZi5f Y29ubiA9IFNUTENsaWVudChzZXJ2ZXI9c2VsZi5fY29uZlsic2VydmVyIl0pDQo+ICAgICAgICAg IHRpbWUuc2xlZXAoMzApDQo+ICAgICAgICAgIHNlbGYuX2Nvbm4uY29ubmVjdCgpDQo+ICAgICAg ICAgIGZvciBwIGluIHNlbGYuX2Nvbm4uZ2V0X2FsbF9wb3J0cygpOg0KPiBAQCAtMjA1LDExICsy MDIsMTEgQEAgY2xhc3MgVHJleFBhY2tldEdlbmVyYXRvcihQYWNrZXRHZW5lcmF0b3IpOg0KPiAN Cj4gICAgICBkZWYgX2NoZWNrX29wdGlvbnMoc2VsZiwgb3B0cz17fSk6DQo+ICAgICAgICAgIGZv ciBrZXkgaW4gb3B0czoNCj4gLSAgICAgICAgICAgIGlmIGtleSBpbiBzZWxmLm9wdGlvbnNfa2V5 czoNCj4gKyAgICAgICAgICAgIGlmIGtleSBpbiBzZWxmLl9vcHRpb25zX2tleXM6DQo+ICAgICAg ICAgICAgICAgICAgaWYga2V5ID09ICdpcCc6DQo+ICAgICAgICAgICAgICAgICAgICAgIGlwID0g b3B0c1snaXAnXQ0KPiAgICAgICAgICAgICAgICAgICAgICBmb3IgaXBfa2V5IGluIGlwOg0KPiAt ICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90IGlwX2tleSBpbiBzZWxmLmlwX2tleXM6DQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgaXBfa2V5IGluIHNlbGYuX2lwX2tleXM6 DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgIiAlcyBpcyBpbnZhbGlkIGlw IG9wdGlvbiIgJSBpcF9rZXkNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g RmFsc2UNCj4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGtleSA9PSAnYWN0aW9uJzoNCj4g QEAgLTIxOSw3ICsyMTYsNyBAQCBjbGFzcyBUcmV4UGFja2V0R2VuZXJhdG9yKFBhY2tldEdlbmVy YXRvcik6DQo+ICAgICAgICAgICAgICAgICAgZWxpZiBrZXkgPT0gJ3ZsYW4nOg0KPiAgICAgICAg ICAgICAgICAgICAgICB2bGFuID0gb3B0c1sndmxhbiddDQo+ICAgICAgICAgICAgICAgICAgICAg IGZvciB2bGFuX2tleSBpbiB2bGFuOg0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90 IHZsYW5fa2V5IGluIHNlbGYudmxhbl9rZXlzOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAg aWYgbm90IHZsYW5fa2V5IGluIHNlbGYuX3ZsYW5fa2V5czoNCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwcmludCAiICVzIGlzIGludmFsaWQgdmxhbiBvcHRpb24iICUgdmxhbl9rZXkN Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UNCj4gICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIGtleSA9PSAnYWN0aW9uJzoNCj4gQEAgLTIzMSw3ICsyMjgsNyBA QCBjbGFzcyBUcmV4UGFja2V0R2VuZXJhdG9yKFBhY2tldEdlbmVyYXRvcik6DQo+ICAgICAgICAg ICAgICAgICAgcmV0dXJuIEZhbHNlDQo+ICAgICAgICAgIHJldHVybiBUcnVlDQo+IA0KPiAtICAg IGRlZiBjcmVhdGVfdm0gKHNlbGYsIGlwX3NyY19yYW5nZSwgaXBfZHN0X3JhbmdlLCBhY3Rpb249 J2luYycsDQo+IHN0ZXA9MSk6DQo+ICsgICAgZGVmIF9jcmVhdGVfdm0gKHNlbGYsIGlwX3NyY19y YW5nZSwgaXBfZHN0X3JhbmdlLCBhY3Rpb249J2luYycsDQo+IHN0ZXA9MSk6DQo+ICAgICAgICAg IGlmIG5vdCBpcF9zcmNfcmFuZ2UgYW5kIG5vdCBpcF9kc3RfcmFuZ2U6DQo+ICAgICAgICAgICAg ICByZXR1cm4gTm9uZQ0KPiANCj4gQEAgLTI1NSwxNCArMjUyLDE0IEBAIGNsYXNzIFRyZXhQYWNr ZXRHZW5lcmF0b3IoUGFja2V0R2VuZXJhdG9yKToNCj4gICAgICBkZWYgcHJlcGFyZV9nZW5lcmF0 b3Ioc2VsZik6DQo+ICAgICAgICAgIGFwcF9wYXJhbV90ZW1wID0gIi1pIg0KPiANCj4gLSAgICAg ICAgZm9yIGtleSBpbiBzZWxmLmNvbmY6DQo+ICsgICAgICAgIGZvciBrZXkgaW4gc2VsZi5fY29u ZjoNCj4gICAgICAgICAgICAgICNrZXksIHZhbHVlID0gcGt0Z2VuX2NvbmYNCj4gICAgICAgICAg ICAgIGlmIGtleSA9PSAnY29uZmlnX2ZpbGUnOg0KPiAtICAgICAgICAgICAgICAgIGFwcF9wYXJh bV90ZW1wID0gYXBwX3BhcmFtX3RlbXAgKyAiIC0tY2ZnICIgKw0KPiBzZWxmLmNvbmZba2V5XQ0K PiArICAgICAgICAgICAgICAgIGFwcF9wYXJhbV90ZW1wID0gYXBwX3BhcmFtX3RlbXAgKyAiIC0t Y2ZnICIgKw0KPiBzZWxmLl9jb25mW2tleV0NCj4gICAgICAgICAgICAgIGVsaWYga2V5ID09ICdj b3JlX251bSc6DQo+IC0gICAgICAgICAgICAgICAgYXBwX3BhcmFtX3RlbXAgPSBhcHBfcGFyYW1f dGVtcCArICIgLWMgIiArIHNlbGYuY29uZltrZXldDQo+ICsgICAgICAgICAgICAgICAgYXBwX3Bh cmFtX3RlbXAgPSBhcHBfcGFyYW1fdGVtcCArICIgLWMgIiArIHNlbGYuX2NvbmZba2V5XQ0KPiAN Cj4gLSAgICAgICAgYXBwID0gc2VsZi5jb25mWyd0cmV4X3Jvb3RfcGF0aCddICsgb3Muc2VwICsg c2VsZi50cmV4X2FwcA0KPiArICAgICAgICBhcHAgPSBzZWxmLl9jb25mWyd0cmV4X3Jvb3RfcGF0 aCddICsgb3Muc2VwICsgc2VsZi5fdHJleF9hcHANCj4gDQo+ICAgICAgICAgIGNtZCA9IGFwcCAr ICIgIiArIGFwcF9wYXJhbV90ZW1wDQo+IA0KPiBAQCAtMjk4LDE1ICsyOTUsMTUgQEAgY2xhc3Mg VHJleFBhY2tldEdlbmVyYXRvcihQYWNrZXRHZW5lcmF0b3IpOg0KPiAgICAgICAgICAgICAgc3Rl cF90ZW1wID0gaXBbJ3N0ZXAnXS5zcGxpdCgnLicpDQo+IA0KPiAgICAgICAgICAgICAgI2dldCB0 aGUgc3VibmV0IHJhbmdlIG9mIHNyYyBhbmQgZHN0IGlwDQo+IC0gICAgICAgICAgICBpZiBzZWxm LmNvbmYuaGFzX2tleSgiaXBfc3JjIik6DQo+IC0gICAgICAgICAgICAgICAgaXBfc3JjID0gc2Vs Zi5jb25mWydpcF9zcmMnXQ0KPiArICAgICAgICAgICAgaWYgc2VsZi5fY29uZi5oYXNfa2V5KCJp cF9zcmMiKToNCj4gKyAgICAgICAgICAgICAgICBpcF9zcmMgPSBzZWxmLl9jb25mWydpcF9zcmMn XQ0KPiAgICAgICAgICAgICAgICAgIGlwX3NyY19yYW5nZV9zdHJpbmcgPQ0KPiBJUHkuSVAoSVB5 LklQKGlwX3NyYykubWFrZV9uZXQobWFzaykuc3RyTm9ybWFsKCkpLnN0ck5vcm1hbCgzKQ0KPiAg ICAgICAgICAgICAgICAgIGlwX3NyY19yYW5nZV90ZW1wID0gaXBfc3JjX3JhbmdlX3N0cmluZy5z cGxpdCgnLScpDQo+ICAgICAgICAgICAgICAgICAgaXBfc3JjX3JhbmdlWydzdGFydCddID0gaXBf c3JjX3JhbmdlX3RlbXBbMF0NCj4gICAgICAgICAgICAgICAgICBpcF9zcmNfcmFuZ2VbJ2VuZCdd ID0gaXBfc3JjX3JhbmdlX3RlbXBbMV0NCj4gDQo+IC0gICAgICAgICAgICBpZiBzZWxmLmNvbmYu aGFzX2tleSgiaXBfZHN0Iik6DQo+IC0gICAgICAgICAgICAgICAgaXBfZHN0ID0gc2VsZi5jb25m WydpcF9kc3QnXQ0KPiArICAgICAgICAgICAgaWYgc2VsZi5fY29uZi5oYXNfa2V5KCJpcF9kc3Qi KToNCj4gKyAgICAgICAgICAgICAgICBpcF9kc3QgPSBzZWxmLl9jb25mWydpcF9kc3QnXQ0KPiAg ICAgICAgICAgICAgICAgIGlwX2RzdF9yYW5nZV9zdHJpbmcgPQ0KPiBJUHkuSVAoSVB5LklQKGlw X2RzdCkubWFrZV9uZXQobWFzaykuc3RyTm9ybWFsKCkpLnN0ck5vcm1hbCgzKQ0KPiAgICAgICAg ICAgICAgICAgIGlwX2RzdF9yYW5nZV90ZW1wID0gaXBfZHN0X3JhbmdlX3N0cmluZy5zcGxpdCgn LScpDQo+ICAgICAgICAgICAgICAgICAgaXBfZHN0X3JhbmdlWydzdGFydCddID0gaXBfZHN0X3Jh bmdlX3RlbXBbMF0NCj4gQEAgLTMxNCwyMiArMzExLDIyIEBAIGNsYXNzIFRyZXhQYWNrZXRHZW5l cmF0b3IoUGFja2V0R2VuZXJhdG9yKToNCj4gDQo+ICAgICAgICAgICAgICBwY2FwX2ZpbGUgPSBz dHJlYW1bJ3BjYXBfZmlsZSddDQo+IA0KPiAtICAgICAgICAgICAgdm0gPSBzZWxmLmNyZWF0ZV92 bShpcF9zcmNfcmFuZ2UsIGlwX2RzdF9yYW5nZSwNCj4gYWN0aW9uPWlwWydhY3Rpb24nXSwgc3Rl cD1zdGVwX3RlbXBbM10pDQo+ICsgICAgICAgICAgICB2bSA9IHNlbGYuX2NyZWF0ZV92bShpcF9z cmNfcmFuZ2UsIGlwX2RzdF9yYW5nZSwNCj4gYWN0aW9uPWlwWydhY3Rpb24nXSwgc3RlcD1zdGVw X3RlbXBbM10pDQo+IA0KPiAgICAgICAgICAgICAgc3RsX3N0cmVhbSA9IFNUTFN0cmVhbShwYWNr ZXQgPSBTVExQa3RCdWlsZGVyKHBrdCA9IHBjYXBfZmlsZSwNCj4gdm09dm0pLCBtb2RlID0gU1RM VFhDb250KHBlcmNlbnRhZ2U9MTAwKSkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl90cmFuc21p dF9zdHJlYW1zW3N0cmVhbV9pZF0gPSBzdGxfc3RyZWFtDQo+IA0KPiAtICAgIGRlZiBfc3RhcnRf dHJhbnNtaXNzaW9uKHNlbGYsIHN0cmVhbV9pZHMsIGRlbGF5PTUwKToNCj4gKyAgICBkZWYgX3N0 YXJ0X3RyYW5zbWlzc2lvbihzZWxmLCBzdHJlYW1faWRzKToNCj4gICAgICAgICAgc2VsZi5fY29u bi5yZXNldChwb3J0cz1zZWxmLl9wb3J0cykNCj4gICAgICAgICAgc2VsZi5fY29ubi5jbGVhcl9z dGF0cygpDQo+ICAgICAgICAgIHNlbGYuX2Nvbm4uc2V0X3BvcnRfYXR0cihzZWxmLl9wb3J0cywg cHJvbWlzY3VvdXM9VHJ1ZSkNCj4gLSAgICAgICAgZHVyYXRpb25faW50ID0gaW50KHNlbGYuY29u ZlsiZHVyYXRpb24iXSkNCj4gKyAgICAgICAgZHVyYXRpb25faW50ID0gaW50KHNlbGYuX2NvbmZb ImR1cmF0aW9uIl0pDQo+ICAgICAgICAgIHJhdGUgPSAiMTAwJSINCj4gICAgICAgICAgd2FybXVw ID0gMTUNCj4gDQo+IC0gICAgICAgIGlmIHNlbGYuY29uZi5oYXNfa2V5KCJ3YXJtdXAiKToNCj4g LSAgICAgICAgICAgIHdhcm11cCA9IGludChzZWxmLmNvbmZbIndhcm11cCJdKQ0KPiArICAgICAg ICBpZiBzZWxmLl9jb25mLmhhc19rZXkoIndhcm11cCIpOg0KPiArICAgICAgICAgICAgd2FybXVw ID0gaW50KHNlbGYuX2NvbmZbIndhcm11cCJdKQ0KPiANCj4gICAgICAgICAgZm9yIHAgaW4gc2Vs Zi5fcG9ydHM6DQo+ICAgICAgICAgICAgICBmb3Igc3RyZWFtX2lkIGluIHN0cmVhbV9pZHM6DQo+ IEBAIC0zMzksOCArMzM2LDggQEAgY2xhc3MgVHJleFBhY2tldEdlbmVyYXRvcihQYWNrZXRHZW5l cmF0b3IpOg0KPiAgICAgICAgICAgICAgICAgICAgICByYXRlID0gc3RyZWFtWyJvcHRpb25zIl1b InJhdGUiXQ0KPiAgICAgICAgICAgICAgICAgICAgICBzZWxmLl90cmFmZmljX3BvcnRzLmFwcGVu ZChwKQ0KPiANCj4gLSAgICAgICAgaWYgc2VsZi5jb25mLmhhc19rZXkoImNvcmVfbWFzayIpOg0K PiAtICAgICAgICAgICAgc2VsZi5fY29ubi5zdGFydChwb3J0cz1zZWxmLl90cmFmZmljX3BvcnRz LCBtdWx0PXJhdGUsDQo+IGR1cmF0aW9uPXdhcm11cCwgY29yZV9tYXNrPXNlbGYuY29uZlsiY29y ZV9tYXNrIl0pDQo+ICsgICAgICAgIGlmIHNlbGYuX2NvbmYuaGFzX2tleSgiY29yZV9tYXNrIik6 DQo+ICsgICAgICAgICAgICBzZWxmLl9jb25uLnN0YXJ0KHBvcnRzPXNlbGYuX3RyYWZmaWNfcG9y dHMsIG11bHQ9cmF0ZSwNCj4gZHVyYXRpb249d2FybXVwLCBjb3JlX21hc2s9c2VsZi5fY29uZlsi Y29yZV9tYXNrIl0pDQo+ICAgICAgICAgICAgICBzZWxmLl9jb25uLndhaXRfb25fdHJhZmZpYyhw b3J0cz1zZWxmLl90cmFmZmljX3BvcnRzLA0KPiB0aW1lb3V0PXdhcm11cCszMCkNCj4gICAgICAg ICAgZWxzZToNCj4gICAgICAgICAgICAgIHNlbGYuX2Nvbm4uc3RhcnQocG9ydHM9c2VsZi5fdHJh ZmZpY19wb3J0cywgbXVsdD1yYXRlLA0KPiBkdXJhdGlvbj13YXJtdXApDQo+IEBAIC0zNDgsOCAr MzQ1LDggQEAgY2xhc3MgVHJleFBhY2tldEdlbmVyYXRvcihQYWNrZXRHZW5lcmF0b3IpOg0KPiAN Cj4gICAgICAgICAgc2VsZi5fY29ubi5jbGVhcl9zdGF0cygpDQo+IA0KPiAtICAgICAgICBpZiBz ZWxmLmNvbmYuaGFzX2tleSgiY29yZV9tYXNrIik6DQo+IC0gICAgICAgICAgICBzZWxmLl9jb25u LnN0YXJ0KHBvcnRzPXNlbGYuX3RyYWZmaWNfcG9ydHMsIG11bHQ9cmF0ZSwNCj4gZHVyYXRpb249 ZHVyYXRpb25faW50LCBjb3JlX21hc2s9c2VsZi5jb25mWyJjb3JlX21hc2siXSkNCj4gKyAgICAg ICAgaWYgc2VsZi5fY29uZi5oYXNfa2V5KCJjb3JlX21hc2siKToNCj4gKyAgICAgICAgICAgIHNl bGYuX2Nvbm4uc3RhcnQocG9ydHM9c2VsZi5fdHJhZmZpY19wb3J0cywgbXVsdD1yYXRlLA0KPiBk dXJhdGlvbj1kdXJhdGlvbl9pbnQsIGNvcmVfbWFzaz1zZWxmLl9jb25mWyJjb3JlX21hc2siXSkN Cj4gICAgICAgICAgZWxzZToNCj4gICAgICAgICAgICAgIHNlbGYuX2Nvbm4uc3RhcnQocG9ydHM9 c2VsZi5fdHJhZmZpY19wb3J0cywgbXVsdD1yYXRlLA0KPiBkdXJhdGlvbj1kdXJhdGlvbl9pbnQp DQo+IA0KPiBAQCAtMzYxLDYgKzM1OCw3IEBAIGNsYXNzIFRyZXhQYWNrZXRHZW5lcmF0b3IoUGFj a2V0R2VuZXJhdG9yKToNCj4gICAgICAgICAgc2VsZi5fY29ubi5zdG9wKHBvcnRzPXNlbGYuX3Ry YWZmaWNfcG9ydHMsIHJ4X2RlbGF5X21zPTUwMDApDQo+IA0KPiAgICAgIGRlZiBfcmV0cmlldmVf cG9ydF9zdGF0aXN0aWMoc2VsZiwgc3RyZWFtX2lkKToNCj4gKyAgICAgICAgcnhfc3RhdGlzdGlj cyA9IHt9DQo+ICAgICAgICAgIHN0YXRzID0gc2VsZi5fY29ubi5nZXRfc3RhdHMoKQ0KPiAgICAg ICAgICBzdHJlYW0gPSBzZWxmLl9nZXRfc3RyZWFtKHN0cmVhbV9pZCkNCj4gICAgICAgICAgcG9y dF9pZCA9IHN0cmVhbVsicnhfcG9ydCJdDQo+IEBAIC0zNjksNyArMzY3LDkgQEAgY2xhc3MgVHJl eFBhY2tldEdlbmVyYXRvcihQYWNrZXRHZW5lcmF0b3IpOg0KPiAgICAgICAgICByYXRlX3J4X3Br dHMgPSBwb3J0X3N0YXRzWyJyeF9wcHMiXQ0KPiAgICAgICAgICByYXRlX3J4X2JpdHMgPSBwb3J0 X3N0YXRzWyJyeF9icHNfTDEiXQ0KPiAgICAgICAgICBwcmludCAicnhfcG9ydDogJWQsICByYXRl X3J4X3BrdHM6ICVmLCByYXRlX3J4X2JpdHM6JWYgIiAlDQo+IChwb3J0X2lkLHJhdGVfcnhfcGt0 cyxyYXRlX3J4X2JpdHMpDQo+IC0gICAgICAgIHJldHVybiByYXRlX3J4X2JpdHMsIHJhdGVfcnhf cGt0cw0KPiArICAgICAgICByeF9zdGF0aXN0aWNzWyJyYXRlX3J4X2JpdHMiXSA9IHJhdGVfcnhf Yml0cw0KPiArICAgICAgICByeF9zdGF0aXN0aWNzWyJyYXRlX3J4X3BrdHMiXSA9IHJhdGVfcnhf cGt0cw0KPiArICAgICAgICByZXR1cm4gcnhfc3RhdGlzdGljcw0KPiANCj4gICAgICBkZWYgcXVp dF9nZW5lcmF0b3Ioc2VsZik6DQo+ICAgICAgICAgIHNlbGYuZGlzY29ubmVjdCgpDQo+IEBAIC0z ODUsMzYgKzM4NSwzIEBAIGRlZiBnZXRQYWNrZXRHZW5lcmF0b3IodGVzdGVyLCBwa3RnZW5fdHlw ZT0idHJleCIpOg0KPiAgICAgICAgICByZXR1cm4gSXhpYVBhY2tldEdlbmVyYXRvcih0ZXN0ZXIp DQo+ICAgICAgZWxpZiBwa3RnZW5fdHlwZSA9PSAidHJleCI6DQo+ICAgICAgICAgIHJldHVybiBU cmV4UGFja2V0R2VuZXJhdG9yKHRlc3RlcikNCj4gLQ0KPiAtDQo+IC1pZiBfX25hbWVfXyA9PSAi X19tYWluX18iOg0KPiAtICAgICMgaW5pdCBwa3RnZW4gc3RyZWFtIG9wdGlvbnMNCj4gLSAgICBv cHRpb25zID0gew0KPiAtICAgICdyYXRlJyA6ICcxMDAlJywNCj4gLSAgICAnaXAnOiB7J2FjdGlv bic6ICdpbmMnLCAnbWFzaycgOiAnMjU1LjI1NS4yNTUuMCcsICdzdGVwJzonMC4wLjAuMSd9DQo+ IC0gICAgfQ0KPiAtICAgIGNyYnNjb25mID0gQ3Jic0NvbmYoKQ0KPiAtICAgIGNyYiA9IChjcmJz Y29uZi5sb2FkX2NyYnNfY29uZmlnKCkpWzBdDQo+IC0gICAgdGVzdGVyID0gVGVzdGVyKGNyYiwg Tm9uZSkNCj4gLSAgICAjIGZyYW1ld29yayBpbml0aWFsDQo+IC0gICAgdHJleCA9IGdldFBhY2tl dEdlbmVyYXRvcih0ZXN0ZXIsIHBrdGdlbl90eXBlPSJ0cmV4IikNCj4gLQ0KPiAtICAgIGNvbmZf aW5zdCA9IHRyZXguX2dldF9nZW5lcmF0b3JfY29uZl9pbnN0YW5jZSgidHJleCIpDQo+IC0gICAg Y29uZiA9IGNvbmZfaW5zdC5sb2FkX3BrdGdlbl9jb25maWcoKQ0KPiAtICAgICMgcHJlcGFyZSBy dW5uaW5nIGVudmlyb25tZW50DQo+IC0gICAgdHJleC5wcmVwYXJlX2dlbmVyYXRvcigpDQo+IC0N Cj4gLSAgICAjY29uZmlnIHN0cmVhbSBhbmQgY29udmVydCBvcHRpb25zIGludG8gcGt0Z2VuIGNv bW1hbmRzDQo+IC0gICAgc3RyZWFtX2lkMSA9IHRyZXguYWRkX3N0cmVhbSgwLCAxLCBjb25mWydw Y2FwX2ZpbGUnXSkNCj4gLSAgICB0cmV4LmNvbmZpZ19zdHJlYW0oc3RyZWFtX2lkPXN0cmVhbV9p ZDEsIG9wdHM9b3B0aW9ucykNCj4gLSAgICBzdHJlYW1faWQyID0gdHJleC5hZGRfc3RyZWFtKDEs IDAsIGNvbmZbJ3BjYXBfZmlsZSddKQ0KPiAtICAgIHRyZXguY29uZmlnX3N0cmVhbShzdHJlYW1f aWQ9c3RyZWFtX2lkMiwgb3B0cz1vcHRpb25zKQ0KPiAtICAgIHN0cmVhbV9pZDMgPSB0cmV4LmFk ZF9zdHJlYW0oMCwgMSwgY29uZlsncGNhcF9maWxlJ10pDQo+IC0gICAgdHJleC5jb25maWdfc3Ry ZWFtKHN0cmVhbV9pZD1zdHJlYW1faWQzLCBvcHRzPW9wdGlvbnMpDQo+IC0gICAgc3RyZWFtX2lk NCA9IHRyZXguYWRkX3N0cmVhbSgxLCAwLCBjb25mWydwY2FwX2ZpbGUnXSkNCj4gLSAgICB0cmV4 LmNvbmZpZ19zdHJlYW0oc3RyZWFtX2lkPXN0cmVhbV9pZDQsIG9wdHM9b3B0aW9ucykNCj4gLSAg ICAjcGt0Z2VuLnByZXBhcmVfdHJhbnNtaXNzaW9uKHN0cmVhbV9pZHM9W3N0cmVhbV9pZF0pDQo+ IC0NCj4gdHJleC5tZWFzdXJlX3Rocm91Z2hwdXQoc3RyZWFtX2lkcz1bc3RyZWFtX2lkMSxzdHJl YW1faWQyLHN0cmVhbV9pZDMsc3RyZWENCj4gbV9pZDRdLCBkZWxheT01KQ0KPiAtICAgICN0cmV4 Lm1lYXN1cmVfdGhyb3VnaHB1dChzdHJlYW1faWRzPVtzdHJlYW1faWQxLHN0cmVhbV9pZDJdLCBk ZWxheT01KQ0KPiAtICAgICMgY29tZWJhY2sgdG8gZnJhbWV3b3JrDQo+IC0gICAgdHJleC5xdWl0 X2dlbmVyYXRvcigpDQo+IC0tDQo+IDIuNy40DQoNCg==