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 D05C0A04B0; Thu, 13 Aug 2020 03:46:10 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 912C61C021; Thu, 13 Aug 2020 03:46:10 +0200 (CEST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 042B51C020 for ; Thu, 13 Aug 2020 03:46:07 +0200 (CEST) IronPort-SDR: 1YZhceN8OvxU5KSmbw1hKVXHj2PehCVKRqnZM7KgveKXfKXrUNChpfEQvMlw1+3u3TRT5Lzl3F qgxR8xEj3Iwg== X-IronPort-AV: E=McAfee;i="6000,8403,9711"; a="218475454" X-IronPort-AV: E=Sophos;i="5.76,306,1592895600"; d="scan'208";a="218475454" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Aug 2020 18:46:06 -0700 IronPort-SDR: qbX5u1TEAf+2+5h38wVWNKQdrQ2ltCLtTaXg+oR821WUKs1EXMCu1PtsqDDoDydzy6LsiDyB9B dfF25zuqD1tQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,306,1592895600"; d="scan'208";a="369455041" Received: from unknown (HELO fmsmsx606.amr.corp.intel.com) ([10.18.84.216]) by orsmga001.jf.intel.com with ESMTP; 12 Aug 2020 18:46:05 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 12 Aug 2020 18:46:05 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 12 Aug 2020 18:46:04 -0700 Received: from FMSEDG001.ED.cps.intel.com (10.1.192.133) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 12 Aug 2020 18:46:04 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.169) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 12 Aug 2020 18:45:58 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bwyoPo5voF3UeIqY9VnG7Ui7FsBtAJbc2TvZoouZM0iRFI9V3m9LVLf8FhOzTG04s1cbl3zJjWSWWDMiSmXgcH3O/8jnYY6C7jw01mYe3LLbOMP7sS5Y/20UjnQV1C0R9pTFoidGKlxIhWPEVwrIVRINn1fRD/CBr2U3yYz1uT9HMLOzx3+EiU1MKe9SaZeDFsxtWj7mGJ8XtdwLEkLb5ANeDBD/DgNNQfkoQdT7msJ4gaE7q1Zv5UDN54CAf0sPKSAIpaaTJIU9HVfaeJ68xRaKZ7EOCVwfrO/eujOLcEX8gkQko66vw7qtSMQne1vdU+EGQGGOV1vBVVTw7JiGsg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fac+uQHQBnZR7a3/d2LAg3rYm43Se1UmkCR5dLdzll4=; b=lVcQOK22fbhGqk/34NROVdPtVFnFwLIQ3NBty+Cg3A0bP+Hyh9+2AU2p9zVDhMqK1LTTO0QEOZRFIHObwU3MpgxOZ9HygDmnk3Jl5dr4qm4tTxaDlriPiqgDCFYXREM/lMBHUEgD4krAofxhF6Ru0k9qo5MI486RXf6WWb00BA4hp0Vn6BAVHPNhAfnFRXUtDBEZiDO1bIH/vozXi8CF0/+K1C+biipSFsmYAcY2YBIyNwvyLyqbzzYU/F52XqHrw5s3/5XccIbaJ1+ug5SegcnMks/mSMILN5W0+yLZT7FGiSRa6keT3+93bqhsW8H3otgfdymZ2n2GHLUNPYlI8g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fac+uQHQBnZR7a3/d2LAg3rYm43Se1UmkCR5dLdzll4=; b=o/+rr0hCVo/RgOJiTo9OzMximVQAcafJCvFPT7SMwmf3N9UIvY7Eu947LsccVs7cqJ9yxtUnSkcVgwZo80I53e1rN6lVNzCPb1QK6RjBFpCg7XrCtdS/x5oeXqYSw4LhiXUbPfqhVcpULeQAVPdqnCBELGPo+DWuDqCcATL04UQ= Received: from BN8PR11MB3715.namprd11.prod.outlook.com (2603:10b6:408:85::13) by BN6PR1101MB2194.namprd11.prod.outlook.com (2603:10b6:405:55::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3261.16; Thu, 13 Aug 2020 01:45:55 +0000 Received: from BN8PR11MB3715.namprd11.prod.outlook.com ([fe80::45c2:fb36:838e:6d28]) by BN8PR11MB3715.namprd11.prod.outlook.com ([fe80::45c2:fb36:838e:6d28%7]) with mapi id 15.20.3283.015; Thu, 13 Aug 2020 01:45:55 +0000 From: "Ma, LihongX" To: David Liu , "dts@dpdk.org" CC: "lylavoie@iol.unh.edu" Thread-Topic: [dts] [PATCH] Add FW Version Thread-Index: AQHWcNccUsjONK2Sj0WBJl3gXAE03ak1Q51w Date: Thu, 13 Aug 2020 01:45:55 +0000 Message-ID: References: <20200812183235.30714-1-dliu@iol.unh.edu> In-Reply-To: <20200812183235.30714-1-dliu@iol.unh.edu> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: iol.unh.edu; dkim=none (message not signed) header.d=none;iol.unh.edu; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.193] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 282e3c73-a80b-4b10-0a94-08d83f2a9e8b x-ms-traffictypediagnostic: BN6PR1101MB2194: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1002; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Rm6rGh31nJmFMBgYa0Fl93hB18uN4HGFBCcIb5JiEZ7pLcjgEB3KsI/+wtUyMhyGuiuoEmoA+xtg7wepL4BksOXd4YBluJsoDk+bejPZGBisDlkw+T4x7mQDsRwVcId3pIMK58/zZTQfBoxkbWsagHtfCFWYX9HasWL4GaUM3012xi+OKkIizAiMFP8j9oTUK0BRBLj2foME0O5FD0uCqOpybdlncv9mkLe5FoJQ1gQeMEn0W5VjUkAq35rLdGbkdZk/WvO3sguBwgpTnVcRApPgk+HIz3f5beLZRWayVW/3ZdHf9CQp3ZasnRHXUDrfbkS8vD4LgLyyf/p1hpNB1QQ+kS75oJvwexaa2LuSru479cGE9+zsqMVTeMrVv5/oR6P94LkgOBGuMs3PAvnd7g== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN8PR11MB3715.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(376002)(39860400002)(346002)(136003)(396003)(366004)(86362001)(66446008)(2906002)(64756008)(110136005)(66556008)(76116006)(71200400001)(478600001)(316002)(5660300002)(83380400001)(66476007)(26005)(4326008)(66946007)(30864003)(186003)(9686003)(55016002)(8676002)(7696005)(53546011)(52536014)(8936002)(33656002)(6506007)(333604002)(21314003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: a6QkoEI7cRKLo6u5eFhzbm0+mmds8GiQu8THAOkTsp/AO5VTZcbY7rB1mQ/9T34YEx9TfmeJ2PBG0Hk0RO2iz8eInQ/XYHEDn+Yt5/38nT2uxCbztSTxF4nZk+JHKPiXzsjXPX9QPOSziQE3+Ha874/zaN/EyvXC9zZIUQbGJPF7mqNND/QMicQYp7AFbs8xeYTfgkw4hndWSvdMreKqb0FrbWsUoA/mWAP+2fKvK+MwNbUQFK85jwfVVp16XlIl98KmD2qi+dEBnwltrJsmynYVb9tr0sMxDDrx303xGkRwPwddwWJ3eghVpt5Lk3P0ac4lkJfUkKebNItWibmgmklrfIHZMHt7Bpll5QNWlIat2xIXbYTMlL6WWAPXFvyi1U6qtwlm6fXBgdRbOUn5IkIKGo0IQV3rZNSAFZ/zYxW92SKZTkuGkgNYMQmRL+UlA68RYXTEU12x7KBLlH/AjXj78Rbyv2qe0gLiqeVQbtnkuDsNaUmxJ2IedrcJbfMv5AteiAOXh2toH5x+ydtSvIFfYpm3Ll/BDE7Fj9db7ABk3XnyzET5bCFPUzC5IGLboHEERS2FIGSW4Rbvq/QLFd4gnHXEh/KffM3rq1RfzV2J6AH5YpkyC7PjFeYWZL7RT5WppE3BL5aBZ56JNG/WxA== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN8PR11MB3715.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 282e3c73-a80b-4b10-0a94-08d83f2a9e8b X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Aug 2020 01:45:55.1925 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: o4JHIXRBP4laS8xfuQ9djgIcaggkeRVqiTwBDM7neZubWuoi3nxG8pNz4Ls4d8yMJxbCqHAIU/Xzsz4vSht7wA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR1101MB2194 X-OriginatorOrg: intel.com Subject: Re: [dts] [PATCH] Add FW Version 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: , Errors-To: dts-bounces@dpdk.org Sender: "dts" SGksIERhdmlkIGxpdQ0KTm93IHRoZSBDb3B5cmlnaHQgb2YgaW50ZWwgaXMgMjAyMCwgZWcgJ0Nv cHlyaWdodChjKSAyMDIwIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkJw0K QW5kIGNhbiB5b3UgYWRkIHRoZSB2ZXJzaW9uIGluZm8gd2hlbiB5b3Ugc3VibWl0IHRoZSBwYXRj aCwgZWcgIltkdHNdIFtQQVRDSCBWMV0gQWRkIEZXIFZlcnNpb24iLCBpdCB3aWxsIG1ha2UgaXQg ZWFzeSBmb3IgdXMgdG8gcmV2aWV3IGFuZCBtZXJnZS4NCg0KVGhhbmtzLA0KUmVnYXJkcywNCk1h LGxpaG9uZw0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogZHRzIDxkdHMtYm91 bmNlc0BkcGRrLm9yZz4gT24gQmVoYWxmIE9mIERhdmlkIExpdQ0KU2VudDogVGh1cnNkYXksIEF1 Z3VzdCAxMywgMjAyMCAyOjMzIEFNDQpUbzogZHRzQGRwZGsub3JnDQpDYzogbHlsYXZvaWVAaW9s LnVuaC5lZHU7IERhdmlkIExpdSA8ZGxpdUBpb2wudW5oLmVkdT4NClN1YmplY3Q6IFtkdHNdIFtQ QVRDSF0gQWRkIEZXIFZlcnNpb24NCg0KQWRkIGZpcm13YXJlIHZlcnNpb24gdGVzdCBjYXNlDQpB ZGQgZmlybXdhcmUgdmVyc2lvbiB0ZXN0IHBsYW4NCkFkZCBmaXJtd2FyZSB2ZXJzaW9uIGNmZyBm aWxlDQoNClNpZ25lZC1vZmYtYnk6IERhdmlkIExpdSA8ZGxpdUBpb2wudW5oLmVkdT4NCi0tLQ0K IGNvbmYvZmlybXdhcmVfdmVyc2lvbi5jZmcgICAgICAgICAgICAgICAgIHwgIDI1ICsrKysNCiBm cmFtZXdvcmsvcG1kX291dHB1dC5weSAgICAgICAgICAgICAgICAgICB8ICAgNiArDQogdGVzdF9w bGFucy9maXJtd2FyZV92ZXJzaW9uX3Rlc3RfcGxhbi5yc3QgfCAgNzkgKysrKysrKysrKysrDQog dGVzdHMvVGVzdFN1aXRlX2Zpcm13YXJlX3ZlcnNpb24ucHkgICAgICAgfCAxNDkgKysrKysrKysr KysrKysrKysrKysrKw0KIDQgZmlsZXMgY2hhbmdlZCwgMjU5IGluc2VydGlvbnMoKykNCiBjcmVh dGUgbW9kZSAxMDA2NDQgY29uZi9maXJtd2FyZV92ZXJzaW9uLmNmZyAgY3JlYXRlIG1vZGUgMTAw NjQ0IHRlc3RfcGxhbnMvZmlybXdhcmVfdmVyc2lvbl90ZXN0X3BsYW4ucnN0DQogY3JlYXRlIG1v ZGUgMTAwNjQ0IHRlc3RzL1Rlc3RTdWl0ZV9maXJtd2FyZV92ZXJzaW9uLnB5DQoNCmRpZmYgLS1n aXQgYS9jb25mL2Zpcm13YXJlX3ZlcnNpb24uY2ZnIGIvY29uZi9maXJtd2FyZV92ZXJzaW9uLmNm ZyBuZXcgZmlsZSBtb2RlIDEwMDY0NCBpbmRleCAwMDAwMDAwLi43MDU0OWRiDQotLS0gL2Rldi9u dWxsDQorKysgYi9jb25mL2Zpcm13YXJlX3ZlcnNpb24uY2ZnDQpAQCAtMCwwICsxLDI1IEBADQor IyBVc2VycyBjb3VsZCBjaGFuZ2UgdGhlc2UgY29uZmlndXJhdGlvbiBvbiBkZW1hbmQ6DQorIw0K KyMgIC0gZXhwZWN0ZWRfZmlybXdhcmVfdmVyc2lvbiBpcyBhIGRpY3Rpb25hcnkgZGVmaW5pbmcg ZXhwZWN0ZWQgZmlybXdhcmUgdmVyc2lvbi4NCisjIEVhY2ggZGl2ZXIgd2lsbCBoYXZlIGRpZmZl cmVudCB2ZXJzaW9uIGZvcm1hdC4NCisjIFRoZSBwYXR0ZXJuIGZvciBzdXBwb3J0ZWQgZXhwZWN0 ZWQgZmlybWFyZSB2ZXJzaW9uOg0KKyMNCisjICAgLSBpNDBlOg0KKyMgICAgICAgICAgIHsnZHJp dmVyJyA6IFsnWC5YWCcsICcweDgwMDBYWFhYJywgJ1guWC5YJ119DQorIyAgIC0gbWx4NToNCisj ICAgICAgICAgICB7J2RyaXZlcicgOiBbJ1hYLlhYLlhYWFgnLCAnTVRfWFhYWFhYJ119DQorIyAg IC0gYm54dDoNCisjICAgICAgICAgICB7J2RyaXZlcicgOiBbJ1hYWC5YWFguWFhYLlhYWC9wa2cn LCAnWFhYLlhYWC5YWFguWFhYJ119DQorIw0KKyMgTm90ZTogcnVuIC4vZHRzIGFuZCB1c2Ugc2hv dyBwb3J0IGluZm8gPHBvcnRfaWQ+IGNvbW1hbmQgd2lsbCBzaG93IA0KK3lvdSB0aGUgIyBmaXJt d2FyZSB2ZXJzaW9uLg0KKw0KKyNFeGFtcGxlOg0KKyNbc3VpdGVdDQorI2V4cGVjdGVkX2Zpcm13 YXJlX3ZlcnNpb24gPSB7DQorIyAgICAnaTQwZSc6IFsnMHg4MDAwMjkxOScsICc1LjA1JywgJzEu MTMxMy4wJ10sDQorIyAgICAnbWx4NScgOiBbJzEyLjI1LjY1NTUnLCAnTVRfNTU1NTU1NTU1J10s DQorIyAgICAnYm54dCcgOiBbJzIzNi4wLjIyMi4wL3BrZycsICcyMTYuMy4yNTQuMCddfQ0KKw0K K1tzdWl0ZV0NCitleHBlY3RlZF9maXJtd2FyZV92ZXJzaW9uID0ge30NCmRpZmYgLS1naXQgYS9m cmFtZXdvcmsvcG1kX291dHB1dC5weSBiL2ZyYW1ld29yay9wbWRfb3V0cHV0LnB5IGluZGV4IDJk NjY3NDMuLjIyZWQ5YTAgMTAwNjQ0DQotLS0gYS9mcmFtZXdvcmsvcG1kX291dHB1dC5weQ0KKysr IGIvZnJhbWV3b3JrL3BtZF9vdXRwdXQucHkNCkBAIC0yMzcsNiArMjM3LDEyIEBAIGNsYXNzIFBt ZE91dHB1dCgpOg0KICAgICAgICAgIiIiDQogICAgICAgICByZXR1cm4gc2VsZi5nZXRfZGV0YWls X2Zyb21fcG9ydF9pbmZvKCJNQUMgYWRkcmVzczogIiwgIihbMC05QS1GXXsyfTopezV9WzAtOUEt Rl17Mn0iLCBwb3J0X2lkKQ0KIA0KKyAgICBkZWYgZ2V0X2Zpcm13YXJlX3ZlcnNpb24oc2VsZiwg cG9ydF9pZCk6DQorICAgICAgICAiIiINCisgICAgICAgIEdldCB0aGUgZmlybXdhcmUgdmVyc2lv bi4NCisgICAgICAgICIiIg0KKyAgICAgICAgcmV0dXJuIHNlbGYuZ2V0X2RldGFpbF9mcm9tX3Bv cnRfaW5mbygiRmlybXdhcmUtdmVyc2lvbjogIiwgDQorICJcUy4qIiwgcG9ydF9pZCkNCisNCiAg ICAgZGVmIGdldF9wb3J0X2Nvbm5lY3Rfc29ja2V0KHNlbGYsIHBvcnRfaWQpOg0KICAgICAgICAg IiIiDQogICAgICAgICBHZXQgdGhlIHNvY2tldCBpZCB3aGljaCB0aGUgc3BlY2lmaWVkIHBvcnQg aXMgY29ubmVjdGluZyB3aXRoLg0KZGlmZiAtLWdpdCBhL3Rlc3RfcGxhbnMvZmlybXdhcmVfdmVy c2lvbl90ZXN0X3BsYW4ucnN0IGIvdGVzdF9wbGFucy9maXJtd2FyZV92ZXJzaW9uX3Rlc3RfcGxh bi5yc3QNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi5mNmY5MmE2DQotLS0g L2Rldi9udWxsDQorKysgYi90ZXN0X3BsYW5zL2Zpcm13YXJlX3ZlcnNpb25fdGVzdF9wbGFuLnJz dA0KQEAgLTAsMCArMSw3OSBAQA0KKy4uICMgQlNEIExJQ0VOU0UNCisgICAgIw0KKyAgICAjIENv cHlyaWdodChjKSAyMDEwLTIwMTQgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2 ZWQuDQorICAgICMgQ29weXJpZ2h0IMKpIDIwMThbLCAyMDE5XSBUaGUgVW5pdmVyc2l0eSBvZiBO ZXcgSGFtcHNoaXJlLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KKyAgICAjIEFsbCByaWdodHMgcmVz ZXJ2ZWQuDQorICAgICMNCisgICAgIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCisgICAgIyBtb2RpZmljYXRpb24sIGFy ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCisgICAg IyBhcmUgbWV0Og0KKyAgICAjDQorICAgICMgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQorICAgICMgICAgIG5vdGljZSwg dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCisg ICAgIyAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo ZSBhYm92ZSBjb3B5cmlnaHQNCisgICAgIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0 aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluDQorICAgICMgICAgIHRoZSBkb2N1 bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUNCisgICAg IyAgICAgZGlzdHJpYnV0aW9uLg0KKyAgICAjICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEludGVs IENvcnBvcmF0aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzDQorICAgICMgICAgIGNvbnRyaWJ1dG9y cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZA0KKyAg ICAjICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu IHBlcm1pc3Npb24uDQorICAgICMNCisgICAgIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQorICAgICMgIkFTIElTIiBB TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QN CisgICAgIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ TElUWSBBTkQgRklUTkVTUyBGT1INCisgICAgIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KKyAgICAjIE9XTkVSIE9S IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO VEFMLA0KKyAgICAjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT IChJTkNMVURJTkcsIEJVVCBOT1QNCisgICAgIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwNCisgICAgIyBEQVRBLCBP UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP TiBBTlkNCisgICAgIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQorICAgICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFDQorICAgICMgT0Yg VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI IERBTUFHRS4NCisNCis9PT09PT09PT09PT09PT09PT09PT09PQ0KK0Zpcm13YXJlIFZlcnNpb24g VGVzdA0KKz09PT09PT09PT09PT09PT09PT09PT09DQorDQorVGhlIEZpcm13YXJlIFZlcnNpb24g VGVzdCBjaGVja3MgdGhlIGZpcm13YXJlIHZlcnNpb24gZnJvbSB0aGUgZGV2aWNlIA0KK2luZm8g YW5kIGNvbXBhcmVzIHRvIHRoZSBmaXJtd2FyZSB2ZXJzaW9uIGRlZmluZWQgYnkgdXNlci4gVGhp cyB0ZXN0IA0KK2Nhc2UgaXMgZHJpdmVyIHJlc3RyaWN0ZWQgc2luY2UgZWFjaCBkcml2ZXIgd2ls bCBoYXZlIGRpZmZlcmVudCB2ZXJzaW9uIGZvcm1hdC4NCisNCisNCitQcmVyZXF1aXNpdGVzDQor PT09PT09PT09PT09PQ0KKw0KK0lmIHVzaW5nIHZmaW8gdGhlIGtlcm5lbCBtdXN0IGJlID49IDMu NisgYW5kIFZULWQgbXVzdCBiZSBlbmFibGVkIGluIA0KK2Jpb3MuV2hlbiB1c2luZyB2ZmlvLCB1 c2UgdGhlIGZvbGxvd2luZyBjb21tYW5kcyB0byBsb2FkIHRoZSB2ZmlvIA0KK2RyaXZlciBhbmQg YmluZCBpdCB0byB0aGUgZGV2aWNlIHVuZGVyIHRlc3Q6Og0KKw0KKyAgIG1vZHByb2JlIHZmaW8N CisgICBtb2Rwcm9iZSB2ZmlvLXBjaQ0KKyAgIHVzZXJ0b29scy9kcGRrLWRldmJpbmQucHkgLS1i aW5kPXZmaW8tcGNpIGRldmljZV9idXNfaWQNCisNCitBc3N1bWluZyB0aGF0IHBvcnRzIGFyZSB1 cCBhbmQgd29ya2luZywgdGhlbiBsYXVuY2ggdGhlIGBgdGVzdHBtZGBgIA0KK2FwcGxpY2F0aW9u IHdpdGggdGhlIGZvbGxvd2luZyBhcmd1bWVudHM6Og0KKw0KKyAgLi9idWlsZC9hcHAvdGVzdHBt ZCAtLSAtaSAtLXBvcnRtYXNrPTB4Mw0KKw0KK0Vuc3VyZSB0aGUgYGBgZmlybXdhcmVfdmVyc2lv bi5jZmdgYGAgZmlsZSBoYXZlIHRoZSBjb3JyZWN0IG5hbWUgYW5kIA0KK2Zpcm13YXJlIHZlcnNp b24uDQorDQorVGVzdCBDYXNlIDogRmlybXdhcmUgVmVyc2lvbiBUZXN0DQorPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NCisNCisxLiBVc2UgdGVzdHBtZCB0byBzaG93IHRoZSBw b3J0IGluZm8gdGhhdCBjb250YWluZWQgdGhlIGZpcm13YXJlIHZlcnNpb246Og0KKw0KKyAgICAg IHRlc3RwbWQ+IHNob3cgcG9ydCBpbmZvIDxQT1JUX0lEPg0KKw0KKzIuIENvbXBhcmVzIHRoZSBv dXRwdXR0ZWQgZmlybXdhcmUgdmVyc2lvbiB3aXRoIHRoZSBmaXJtd2FyZSB2ZXJzaW9uIGxpc3Rl ZCBpbiB0aGUNCisgICAgYGBgZmlybXdhcmVfdmVyc2lvbi5jZmdgYGAgZmlsZS4gRGlmZmVyZW50 IGRyaXZlciB3aWxsIGhhdmUgZGlmZmVyZW50IHZlcnNpb24NCisgICAgZm9ybWF0Lg0KKyAgICBD dXJyZW50bHkgc3VwcG9ydDogaTQwZSwgbWx4NSwgYm54dA0KKw0KKyAgICBFeGFtcGxlIGJlbG93 Og0KKyAgICB7J2k0MGUnIDogWyc1LjAxJywgJzB4ODAwMDIzNDEnLCAnMS4xLjEnXX0NCisgICAg eydtbHg1JyA6IFsnMTIuMTQuMzQ2MicsICdNVF8yNDE2NTQ1NjU2J119DQorICAgIHsnYm54dCcg OiBbJzIzNi4wLjIyMi4wJywgJzIxNi4zLjI1NC4wJ119DQorDQorDQorMy4gVmVyaWZpZXMgdGhl eSBtYXRjaGVzLg0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQpkaWZmIC0tZ2l0IGEvdGVz dHMvVGVzdFN1aXRlX2Zpcm13YXJlX3ZlcnNpb24ucHkgYi90ZXN0cy9UZXN0U3VpdGVfZmlybXdh cmVfdmVyc2lvbi5weQ0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmE3Y2Rh ODkNCi0tLSAvZGV2L251bGwNCisrKyBiL3Rlc3RzL1Rlc3RTdWl0ZV9maXJtd2FyZV92ZXJzaW9u LnB5DQpAQCAtMCwwICsxLDE0OSBAQA0KKyMgQlNEIExJQ0VOU0UNCisjDQorIyBDb3B5cmlnaHQo YykgMjAxMC0yMDE0IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KKyMg Q29weXJpZ2h0IMKpIDIwMThbLCAyMDE5XSBUaGUgVW5pdmVyc2l0eSBvZiBOZXcgSGFtcHNoaXJl LiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4NCisjDQorIyBS ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y IHdpdGhvdXQgIyANCittb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0 aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgIyANCithcmUgbWV0Og0KKyMNCisjICAgKiBSZWRpc3Ry aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0K KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg ZGlzY2xhaW1lci4NCisjICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbg0KKyMgICAgIHRoZSBk b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUNCisj ICAgICBkaXN0cmlidXRpb24uDQorIyAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBJbnRlbCBDb3Jw b3JhdGlvbiBub3IgdGhlIG5hbWVzIG9mIGl0cw0KKyMgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUg dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZA0KKyMgICAgIGZyb20g dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4N CisjDQorIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS UyBBTkQgQ09OVFJJQlVUT1JTICMgDQorIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgIyANCitMSU1JVEVEIFRPLCBUSEUgSU1Q TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgIyANCitB IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF IENPUFlSSUdIVCAjIA0KK09XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCAjIA0KK1NQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgIyANCitMSU1JVEVEIFRP LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT RSwgIyANCitEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW RVIgQ0FVU0VEIEFORCBPTiBBTlkgIyANCitUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUICMgDQorKElOQ0xVRElORyBORUdM SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFICMg DQorT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP RiBTVUNIIERBTUFHRS4NCisNCisiIiINCitEUERLIFRlc3Qgc3VpdGUuDQorIiIiDQorZnJvbSBw bWRfb3V0cHV0IGltcG9ydCBQbWRPdXRwdXQNCitmcm9tIHRlc3RfY2FzZSBpbXBvcnQgVGVzdENh c2UNCitpbXBvcnQgcmUNCisNCisNCitjbGFzcyBUZXN0RmlybXdhcmVWZXJzaW9uKFRlc3RDYXNl KToNCisNCisgICAgZGVmIHNldF91cF9hbGwoc2VsZik6DQorICAgICAgICAiIiINCisgICAgICAg IFJ1biBhdCB0aGUgc3RhcnQgb2YgZWFjaCB0ZXN0IHN1aXRlLg0KKyAgICAgICAgIiIiDQorICAg ICAgICBzZWxmLnBvcnRzID0gc2VsZi5kdXQuZ2V0X3BvcnRzKCkNCisNCisgICAgICAgIHNlbGYu cG1kb3V0ID0gUG1kT3V0cHV0KHNlbGYuZHV0KQ0KKw0KKyAgICBkZWYgc2V0X3VwKHNlbGYpOg0K KyAgICAgICAgIiIiDQorICAgICAgICBSdW4gYmVmb3JlIGVhY2ggdGVzdCBjYXNlLg0KKyAgICAg ICAgIiIiDQorICAgICAgICBwYXNzDQorDQorICAgIGRlZiBjaGVja19maXJtd2FyZV92ZXJzaW9u KHNlbGYsIGV4cF9md3ZlcnNpb24sIGZ3dmVyc2lvbik6DQorICAgICAgICB2ZiA9IFsnbWFqb3In LCAnbWlub3InLCAncGF0aCcsICdidWlsZCddDQorICAgICAgICBmd3ZlcnNpb24gPSByZS5zcGxp dCgiXFwuIiwgZnd2ZXJzaW9uKQ0KKyAgICAgICAgZXhwX2Z3dmVyc2lvbiA9IHJlLnNwbGl0KCJc XC4iLCBleHBfZnd2ZXJzaW9uKQ0KKw0KKyAgICAgICAgc2VsZi52ZXJpZnkobGVuKGV4cF9md3Zl cnNpb24pID09IGxlbihmd3ZlcnNpb24pLCAiSW52YWxpZCANCisgdmVyc2lvbiBmb3JtYXQiKQ0K Kw0KKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKGV4cF9md3ZlcnNpb24pKToNCisgICAgICAg ICAgICBpZiBmd3ZlcnNpb25baV0gIT0gZXhwX2Z3dmVyc2lvbltpXSBhbmQgaSA9PSAwOg0KKyAg ICAgICAgICAgICAgICBzZWxmLnZlcmlmeShGYWxzZSwNCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZiJGYWlsOiB7dmZbaV19IHZlcnNpb24gaXMgZGlmZmVyZW50IGV4cGVjdGVkIHtleHBf Znd2ZXJzaW9uW2ldfSBidXQgd2FzIHtmd3ZlcnNpb25baV19IikNCisgICAgICAgICAgICBlbGlm IGZ3dmVyc2lvbltpXSAhPSBleHBfZnd2ZXJzaW9uW2ldIGFuZCBpID4gMDoNCisgICAgICAgICAg ICAgICAgcHJpbnQoZiJXYXJuaW5nOiB7dmZbaV19IHZlcnNpb24gaXMgZGlmZmVyZW50IGV4cGVj dGVkIA0KKyB7ZXhwX2Z3dmVyc2lvbltpXX0gYnV0IHdhcyB7Znd2ZXJzaW9uW2ldfSIpDQorDQor ICAgIGRlZiBjaGVja19mb3JtYXQoc2VsZiwgZXhwLCBvdXQsIG5hbWUsIHBhdHRlcm4sIG1hdGNo KToNCisgICAgICAgIGlmIG1hdGNoIGlzIE5vbmU6DQorICAgICAgICAgICAgc2VsZi52ZXJpZnko cmUuc2VhcmNoKHBhdHRlcm4sIGV4cCkgaXMgbm90IE5vbmUsIGYiSW52YWxpZCBleHBlY3RlZCB7 bmFtZX0gZm9ybWF0IikNCisgICAgICAgICAgICBzZWxmLnZlcmlmeShyZS5zZWFyY2gocGF0dGVy biwgb3V0KSBpcyBub3QgTm9uZSwgZiJJbnZhbGlkIHtuYW1lfSBmb3JtYXQiKQ0KKyAgICAgICAg ZWxzZToNCisgICAgICAgICAgICBleHAgPSByZS5maW5kYWxsKHBhdHRlcm4sIGV4cCkNCisgICAg ICAgICAgICBvdXQgPSByZS5maW5kYWxsKHBhdHRlcm4sIG91dCkNCisNCisgICAgICAgICAgICBz ZWxmLnZlcmlmeShleHBbMF0gPT0gbWF0Y2gsIGYiSW52YWxpZCBleHBlY3RlZCB7bmFtZX0gZm9y bWF0IikNCisgICAgICAgICAgICBzZWxmLnZlcmlmeShvdXRbMF0gPT0gbWF0Y2gsIGYiSW52YWxp ZCB7bmFtZX0gZm9ybWF0IikNCisNCisgICAgZGVmIHRlc3RfZmlybXdhcmVfdmVyc2lvbihzZWxm KToNCisgICAgICAgIHNlbGYucG1kb3V0LnN0YXJ0X3Rlc3RwbWQoIkRlZmF1bHQiKQ0KKw0KKyAg ICAgICAgIyBSZWFkIHRoZSB2ZXJzaW9uIGNmZw0KKyAgICAgICAgZXhwZWN0ZWRfdmVyc2lvbl9s aXN0ID0gDQorIHNlbGYuZ2V0X3N1aXRlX2NmZygpWydleHBlY3RlZF9maXJtd2FyZV92ZXJzaW9u J10NCisNCisgICAgICAgIHNlbGYudmVyaWZ5KHNlbGYua2RyaXZlciBpbiBleHBlY3RlZF92ZXJz aW9uX2xpc3QsICJkcml2ZXIgaXMgbm90IGluIHRoZSBjZmcgZmlsZSIpDQorICAgICAgICBleHBl Y3RlZF92ZXJzaW9uX2luZm8gPSBleHBlY3RlZF92ZXJzaW9uX2xpc3Rbc2VsZi5rZHJpdmVyXQ0K Kw0KKyAgICAgICAgZm9yIHBvcnQgaW4gc2VsZi5wb3J0czoNCisgICAgICAgICAgICBvdXQgPSBz ZWxmLmR1dC5zZW5kX2V4cGVjdChmInNob3cgcG9ydCBpbmZvIHtwb3J0fSIsICJ0ZXN0cG1kPiAi KQ0KKyAgICAgICAgICAgIHNlbGYudmVyaWZ5KCJGaXJtd2FyZS12ZXJzaW9uOiIgaW4gb3V0LCAi RmlybXdhcmUgdmVyc2lvbiANCisgbm90IGRldGVjdGVkIikNCisNCisgICAgICAgICAgICB2ZXJz aW9uX2luZm8gPSBzZWxmLnBtZG91dC5nZXRfZmlybXdhcmVfdmVyc2lvbihwb3J0KQ0KKw0KKyAg ICAgICAgICAgIGlmIHNlbGYua2RyaXZlciA9PSAiaTQwZSI6DQorICAgICAgICAgICAgICAgICMg R2V0IHRoZSB2ZXJzaW9uIGluZm9ybWF0aW9uIGZyb20gb3V0cHV0IGFuZCBjZmcgZmlsZQ0KKyAg ICAgICAgICAgICAgICBmd3ZlcnNpb24sIGV0cmFja2lkLCBuZXR3b3JrZHJpdmVyID0gdmVyc2lv bl9pbmZvLnNwbGl0KCkNCisgICAgICAgICAgICAgICAgZXhwX2V0cmFja2lkLCBleHBfZnd2ZXJz aW9uLCBleHBfbmV0d29ya2RyaXZlciA9IA0KKyBleHBlY3RlZF92ZXJzaW9uX2luZm8NCisgICAg ICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgIHNlbGYuY2hlY2tfZm9ybWF0KGV4cF9md3Zl cnNpb24sIGZ3dmVyc2lvbiwgInZlcnNpb24iLCANCisgcideXGR7MSw0fVwuXGR7MSw0fSQnLCBO b25lKQ0KKw0KKyAgICAgICAgICAgICAgICBzZWxmLmNoZWNrX2Zpcm13YXJlX3ZlcnNpb24oZXhw X2Z3dmVyc2lvbiwgZnd2ZXJzaW9uKQ0KKw0KKyAgICAgICAgICAgICAgICBzZWxmLmNoZWNrX2Zv cm1hdChleHBfZXRyYWNraWQsIGV0cmFja2lkLCAiZXRyYWNraWQiLCANCisgcideLnswLDZ9Jywg IjB4ODAwMCIpDQorDQorICAgICAgICAgICAgICAgIHNlbGYuY2hlY2tfZm9ybWF0KGV4cF9uZXR3 b3JrZHJpdmVyLCBuZXR3b3JrZHJpdmVyLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAibmV0d29yayBkcml2ZXIiLCANCisgcideXGR7MSw0fVwuXGR7MSw0fVwuXGR7MSw0fSQn LCBOb25lKQ0KKw0KKyAgICAgICAgICAgIGVsaWYgc2VsZi5rZHJpdmVyID09ICJtbHg1IjoNCisg ICAgICAgICAgICAgICAgIyBHZXQgdGhlIHZlcnNpb24gaW5mb3JtYXRpb24gZnJvbSBvdXRwdXQg YW5kIGNmZyBmaWxlDQorICAgICAgICAgICAgICAgIGV4cF9md3ZlcnNpb24sIGV4cF9wc2lkID0g ZXhwZWN0ZWRfdmVyc2lvbl9pbmZvDQorICAgICAgICAgICAgICAgIGZ3dmVyc2lvbiwgcHNpZCA9 IHZlcnNpb25faW5mby5zcGxpdCgpDQorDQorICAgICAgICAgICAgICAgIHNlbGYuY2hlY2tfZm9y bWF0KGV4cF9md3ZlcnNpb24sIGZ3dmVyc2lvbiwgInZlcnNpb24iLCANCisgcideXGR7MSw0fVwu XGR7MSw0fVwuXGR7MSw0fSQnLCBOb25lKQ0KKw0KKyAgICAgICAgICAgICAgICBzZWxmLmNoZWNr X2Zpcm13YXJlX3ZlcnNpb24oZXhwX2Z3dmVyc2lvbiwgZnd2ZXJzaW9uKQ0KKw0KKyAgICAgICAg ICAgICAgICAjIHJlbW92ZSAiKCIgYW5kICIpIiBmcm9tIHRoZSBzdHJpbmcNCisgICAgICAgICAg ICAgICAgcHNpZCA9IHJlLnN1YignWygpXScsICcnLCBwc2lkKQ0KKw0KKyAgICAgICAgICAgICAg ICBzZWxmLmNoZWNrX2Zvcm1hdChleHBfcHNpZCwgcHNpZCwgInBzaWQiLCByJ14uezAsM30nLCAN CisgIk1UXyIpDQorDQorICAgICAgICAgICAgZWxpZiBzZWxmLmtkcml2ZXIgPT0gImJueHQiOg0K KyAgICAgICAgICAgICAgICAjIEdldCB0aGUgdmVyc2lvbiBpbmZvcm1hdGlvbiBmcm9tIG91dHB1 dCBhbmQgY2ZnIGZpbGUNCisgICAgICAgICAgICAgICAgZXhwX3BrZywgZXhwX2Z3dmVyc2lvbiA9 IGV4cGVjdGVkX3ZlcnNpb25faW5mbw0KKyAgICAgICAgICAgICAgICBwa2csIGZ3dmVyc2lvbiA9 IHZlcnNpb25faW5mby5zcGxpdCgpDQorDQorICAgICAgICAgICAgICAgIHNlbGYuY2hlY2tfZm9y bWF0KGV4cF9md3ZlcnNpb24sIGZ3dmVyc2lvbiwgInZlcnNpb24iLCANCisgcideXGR7MSw0fVwu XGR7MSw0fVwuXGR7MSw0fVwuXGR7MSw0fSQnLCBOb25lKQ0KKw0KKyAgICAgICAgICAgICAgICBz ZWxmLmNoZWNrX2Zpcm13YXJlX3ZlcnNpb24oZXhwX2Z3dmVyc2lvbiwgZnd2ZXJzaW9uKQ0KKw0K KyAgICAgICAgICAgICAgICBzZWxmLmNoZWNrX2Zvcm1hdChleHBfcGtnLCBwa2csICJwa2ciLCAN CisgcideXGR7MSwzfVwuXGR7MSwzfVwuXGR7MSwzfVwuXGR7MSwzfVwvXFN7MSwzfSQnLCBOb25l KQ0KKw0KKyAgICAgICAgICAgIGVsc2U6DQorICAgICAgICAgICAgICAgIHNlbGYudmVyaWZ5KEZh bHNlLCBmIlRlc3Q6IGNhc2UgZmFpbHMgb24ge3NlbGYua2RyaXZlcn0gDQorIGRyaXZlciIpDQor DQorICAgIGRlZiB0ZWFyX2Rvd24oc2VsZik6DQorICAgICAgICAiIiINCisgICAgICAgIFJ1biBh ZnRlciBlYWNoIHRlc3QgY2FzZS4NCisgICAgICAgICIiIg0KKyAgICAgICAgc2VsZi5kdXQua2ls bF9hbGwoKQ0KKw0KKyAgICBkZWYgdGVhcl9kb3duX2FsbChzZWxmKToNCisgICAgICAgICIiIg0K KyAgICAgICAgUnVuIGFmdGVyIGVhY2ggdGVzdCBzdWl0ZS4NCisgICAgICAgICIiIg0KKyAgICAg ICAgc2VsZi5kdXQua2lsbF9hbGwoKQ0KLS0NCjIuMTcuMQ0KDQo=