From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id C9539D80127 for ; Mon, 18 Mar 2024 00:37:13 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=E1PhEl4oVwENCT2NB2tJTiRjpLOgI4sWnEargSjFKQQ=; c=relaxed/simple; d=groups.io; h=From:To:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Resent-Date:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20240206; t=1710722232; v=1; b=SgKhdBPuWceCZ/6Z65E10U0cLqB7i1boQ9nfh2AV4UX0cP91kKtmkrhpyQ1EBFuXlCfeyFhp WUmdFkrTWJyA9CO6qLNLf68XgQ9SKzqIqR9p2g0e+GiTSRYXbaxoTlo8exE96AMwqnu4WjTZxmt DxrUGE1ClYLPb2dQDya+sjiflSnqvxRTyrw/7wRd5m+BHk5wge//YEaGmtG4vwQJX6AYUVYa+3n xOeu7sptGraUSefzOZIJxfVL2e4joRz1gUQ9wY2JxG9g6xOVrSgSXq6MG0UalEeNBxJCHzawVBV u7fJvnKvlonfqHJ195IuREAO1nYH/ezbfxZVOnKnyM3lQ== X-Received: by 127.0.0.2 with SMTP id v71nYY7687511xR20e9NH9Th; Sun, 17 Mar 2024 17:37:12 -0700 X-Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.12]) by mx.groups.io with SMTP id smtpd.web10.32370.1710722229766992950 for ; Sun, 17 Mar 2024 17:37:10 -0700 X-IronPort-AV: E=McAfee;i="6600,9927,11016"; a="9296998" X-IronPort-AV: E=Sophos;i="6.07,133,1708416000"; d="scan'208";a="9296998" X-Received: from fmviesa009.fm.intel.com ([10.60.135.149]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Mar 2024 17:37:03 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,133,1708416000"; d="scan'208";a="13268481" X-Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmviesa009.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 17 Mar 2024 17:37:03 -0700 X-Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Sun, 17 Mar 2024 17:37:01 -0700 X-Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) 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.2507.35 via Frontend Transport; Sun, 17 Mar 2024 17:37:01 -0700 X-Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.169) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Sun, 17 Mar 2024 17:36:53 -0700 X-Received: from PH7PR11MB5915.namprd11.prod.outlook.com (2603:10b6:510:13c::9) by MW3PR11MB4569.namprd11.prod.outlook.com (2603:10b6:303:54::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.11; Mon, 18 Mar 2024 00:36:25 +0000 X-Received: from PH7PR11MB5915.namprd11.prod.outlook.com ([fe80::d76a:cdb:8d85:6bd3]) by PH7PR11MB5915.namprd11.prod.outlook.com ([fe80::d76a:cdb:8d85:6bd3%4]) with mapi id 15.20.7409.008; Mon, 18 Mar 2024 00:36:25 +0000 From: "Yuwei Chen" To: "devel@edk2.groups.io" , "Yang, Yuting2" Subject: Re: [edk2-devel] [Patch V2] [edk2-staging]BaseTools: Python VfrCompiler Tool Thread-Topic: [edk2-devel] [Patch V2] [edk2-staging]BaseTools: Python VfrCompiler Tool Thread-Index: AQHadrqy21rGAF6GRU6yXW3LnGGnArE8qquQ Date: Mon, 18 Mar 2024 00:36:24 +0000 Message-ID: References: <20240315092045.1626-1-yuting2.yang@intel.com> In-Reply-To: <20240315092045.1626-1-yuting2.yang@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH7PR11MB5915:EE_|MW3PR11MB4569:EE_ x-ms-office365-filtering-correlation-id: 134851fb-a4f4-44ec-b560-08dc46e370c9 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: ideueG8cTs8A1GdyJtzRJ8p0OEje9l5gehNlr/ZEIZKelYo+GUNFt1NL2vqrNmlptkB5LMQhpLssn1fjHoblpkW9rIi1GlFCZ183vjbwGNR0BShhPFQxzk+MG+tpXPRnho2LCFFnjgwdBp/Zf2/clGjo1ewFkdMRuwHBZLwPuqqpPbEszrx3xcp0MKww+60L7AIotJzXCdtFYUNImHDYK4FcAIPodzuJ1pNka7Vxuty6AjdifiQpasj5Po/zgF7VuXzRbWZCVEHcsuNXrCpYXCo6A2fMA+eW9FzFrbzBBayjpm6uHdLMLMI+bwsWSmLwezCnGqyaPkH4yiSG4AsmhWplgxVbFkKjVYYLrOLox1rz3xauD7IrCjApZ9Bk3x9LqH5pnvwCQ4gXahyCu0pgwAjKxz43rHUSFR3QJNAkqS8Y0pCXFjQGrz58BrAj6o/T8MaWaUDfcwecCj364CY8df5g5VwCpEmnL9jEzLYcDF3LEbl5tHX6NpKy9mXgkOd9J+2jKeiQLicgCK2fEQKPF546jMiOs93qCt6yudqn+3rLDUPkpIogLV6xmhcle+d0K5kuEHAfqpqVw382+mKKMRPO/AHI7VPfEIbkIe9W5xBY0ZyTKhHjBi35LWsnwnTbSeQ2FThwQvOBYV4lmBRBF8hL2Lu+EKqjbGhfdUflG4xQ5O5rus4siUy3Cdhwn+7c x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Ym5OdFZraExmYmdEYmxjZ0IxR2xzSk4zT0ZQdEhCWHFrNEZhTkNLeVNLL01W?= =?utf-8?B?RVJFZFJHQloxRzVwcnZ2QUd6WklVTlFXcEdmNTlVdjZnb255MUFFU2orU1hV?= =?utf-8?B?NkR6L01aaXlrU1pnWXVvS0NhOStNa3JWWlUzckExQ0orOTZuRUg3YVdRM0pX?= =?utf-8?B?aEw4b2UyaDRPalRSaG02d3d0YUVLUWJqeUtxU0VvOUV5eExtZGFLaEpkdXNz?= =?utf-8?B?MTJ6c1lCQi9kb3hoZlVGMExTRWV1K1FPWlFSUlNDVHFMQ1R2M0crRjFpOUIv?= =?utf-8?B?dVk3enYzbUdWUDFzN0pRaWNoSjNXYVFFWEpYbGRtMEx0TW5kdUlkdVp2Mlp6?= =?utf-8?B?Nnh0MW8xbHZLV1Axb21FQndPaExTRFFKTEZsVWlVWjBWcnIvQUJWUGhLL0Jk?= =?utf-8?B?UVVja0o1cTYvVzJJV2JPWW1mejMwcFk2R0FLamFLcytqLytXQnhNVElKQmpF?= =?utf-8?B?N0UyZjk5NGZ2WG4xc1ZRdjdWQkNtemlac0ZOWlBFNzYweU1CS0Y4UEZ1cXNY?= =?utf-8?B?d052UjhzcWRGU3BPeUVsZWwxTlBESzJ5VjFRelBwZXJNeHQzcnQrWGMyWmcz?= =?utf-8?B?dXJEQ3d0MlJjd2VPZE5USnIwVlFZUkpwSEs3SHY4aDBRNm1BaUFvYlhoM2ps?= =?utf-8?B?TjF4MnBwT2ErblNTSXNQTGRsajVDVUR6RjJ4VzFIZWxTVkVVbnhya3ZRZkFH?= =?utf-8?B?aTIxTmJQN25lSHFGVUFKR2plbk5GcExkZlB3R2ZpU0hzb0U1NmNLaXQ2Vjl0?= =?utf-8?B?eEplbkFBVlhCNmM0ZHY1V1hHbWgxZGtGT3VOUERjdm81a3REa0JSWXV4dFU4?= =?utf-8?B?ektjMzZrQnVxZEhHS1R4d0ZxYWdBeTFrMVBhcGVrMURMTi9NdjE3a05xR2Nw?= =?utf-8?B?NXJYbWE0bUp2ZWdKS1pqY3FsOGMxcWNvUllVMGRZSEtEcWx6OTFCdnhJWS9l?= =?utf-8?B?NDF6eGxjcEJoY29SRGY1R2EwNnZYRnZVREFicjdTT1FuMUZ3UTlCVjlXZExI?= =?utf-8?B?YURNT282b1BOQ3JVSTYwSTRKWTJYVWZIVnZJVVo1Z2wrR0NyNDVGaExwWXda?= =?utf-8?B?Nkg0TVI4ZGprazJHUDMzSFBORmxWZTd5T3NwLzRkc1FySU1RQXJXSThsTUZo?= =?utf-8?B?akpsSHFPR1B3TCt4aDkwQVd3MmdBL2hJWXpIZnpFNUgyTHJoVVpUMmJsRXNs?= =?utf-8?B?UDhLUXpzZW85SkpRMk9MWVcvKzJJUGlIT1JuU2tuYldEOXJwak9tMTN4a1Zz?= =?utf-8?B?WlVMVHdVRG9rZWZ0S1o3c3hPS09zWXZhT0RrVmg3ZW8rbHlRMG10eDF0ZmJL?= =?utf-8?B?YWVqVDZlS24yNGV1ZHJmZkJ4Sk5mdHRGb1p0VTVBTFlTUE4yLzRnbjFkWEFx?= =?utf-8?B?eHdkTjZUYW5YZ3grSkNxSGtSaGpEWTNRRVRYT2E5TnVGS0ppQWxjWHZRVjlv?= =?utf-8?B?VUVMVjB6Y2p1SnRYeXh1d1JFNDBxdWpyOHk3ejZFVndSYWRKbkJhQ2FTOS9G?= =?utf-8?B?SkhWcFRDZkJySmFiVkdvdlB5UWFGZGkzTUJiWkZyMkdzczNORk1CWThpZVhD?= =?utf-8?B?aUdEazRxNmxyK1d4empqd2RETGg1MHpxd3RoUmY0ejB6bHlTQlU4VVBlWWxi?= =?utf-8?B?QXhRTGQwNFlTNitJU1doNDAza3FwNkJjVW9ZKzdQbUZ4Nk9VMmh0RDNOZ082?= =?utf-8?B?aTc3SjFvR0hRVnpFUGpNcDF6K2FWRW5jTE5Pd3F0UGRZMGQ3V2xLV3dZQUdJ?= =?utf-8?B?YkowM2JRdzZyTUU1WFNNYjc2ZE9QVGR4NVdvNW13Q3EzYTc3TGlVL0I1d3FZ?= =?utf-8?B?VEh5VGlWY0pSZjIwZTV0VUZYMWJNTGxLMlFYQk9MbUtzT1hueWtHZTQrWDZB?= =?utf-8?B?ZmpQTkZlM3ExVDR2MndZbUNield0RGZ2UTQwbDAxeXB3bnlkSWs4TUZqQnh6?= =?utf-8?B?YXgvaHZjbFN0WU9scjJpRmp4NUpOWUcrbWhodVRkU3hRTWNvMDZxVnZOOGY3?= =?utf-8?B?czZPSXYvT2dTTHYvOTl5L2VYRkdGZzBYTWtCOTZFMTVOdHNReDhNM0lGTklU?= =?utf-8?B?Y2pwaVprMGtVU1lKS1F6QVRaWTJpRkxpb0ZBU21oRkF1cFM0MVNFeGdNZmZs?= =?utf-8?Q?CssbjM9NRigikWVLU0Bh09x83?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH7PR11MB5915.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 134851fb-a4f4-44ec-b560-08dc46e370c9 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Mar 2024 00:36:24.3168 (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: uqVLTwuGqMe7JPHAmkaN5QpldAKc1xF7sjPsoOTqfDFkdFqr0p82/CR/oMrpl1RcFaY0yQQRjAIivxurprd1Uw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR11MB4569 X-OriginatorOrg: intel.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Resent-Date: Sun, 17 Mar 2024 17:37:10 -0700 Reply-To: devel@edk2.groups.io,yuwei.chen@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: EyqULu6XxkQQUDmI0U1w71wIx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20240206 header.b=SgKhdBPu; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none) UmV2aWV3ZWQtYnk6IFl1d2VpIENoZW4gPHl1d2VpLmNoZW5AaW50ZWwuY29tPg0KDQo+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZl bEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIFl1dGluZw0KPiBZYW5nDQo+IFNlbnQ6IEZy aWRheSwgTWFyY2ggMTUsIDIwMjQgNToyMSBQTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8N Cj4gU3ViamVjdDogW2VkazItZGV2ZWxdIFtQYXRjaCBWMl0gW2VkazItc3RhZ2luZ11CYXNlVG9v bHM6IFB5dGhvbiBWZnJDb21waWxlcg0KPiBUb29sDQo+IA0KPiBUaGlzIHB5dGhvbiBWZnJDb21w aWxlciB0b29sIGlzIHRoZSBweXRob24gaW1wbGVtZW50YXRpb24NCj4gb2YgdGhlIGVkazIgVmZy Q29tcGlsZXIgdG9vbCB3aGljaCBDIGltcGxlbWVudGF0aW9uIGxvY2F0ZXMgYXQNCj4gaHR0cHM6 Ly9naXRodWIuY29tL3RpYW5vY29yZS9lZGsyL3RyZWUvbWFzdGVyL0Jhc2VUb29scy9Tb3VyY2Uv Qy9WZnJDb20NCj4gcGlsZS4NCj4gDQo+IFRoaXMgcHl0aG9uIGltcGxlbWVudGF0aW9uIG5vdCBv bmx5IGNvdmVycyB0aGUgc2FtZSB1c2FnZSBhcw0KPiB0aGUgQyB2ZXJzaW9uIFZmckNvbXBpbGVy LCBidXQgYWxzbyBleHRlbmRzIHNldmVyYWwgbmV3IGZlYXR1cmVzLg0KPiANCj4gQ2M6IFJlYmVj Y2EgQ3JhbiByZWJlY2NhQGJzZGlvLmNvbQ0KPiBDYzogTGltaW5nIEdhbyBnYW9saW1pbmdAYnlv c29mdC5jb20uY24NCj4gQ2M6IEJvYiBGZW5nIGJvYi5jLmZlbmdAaW50ZWwuY29tDQo+IFNpZ25l ZC1vZmYtYnk6IFl1dGluZyBZYW5nIHl1dGluZzIueWFuZ0BpbnRlbC5jb20NCj4gLS0tDQo+ICBC YXNlVG9vbHMvQmluV3JhcHBlcnMvUG9zaXhMaWtlL1B5VmZyQ29tcGlsZSAgICAgICAgICAgIHwg ICAgMTMgKysNCj4gIEJhc2VUb29scy9CaW5XcmFwcGVycy9XaW5kb3dzTGlrZS9QeVZmckNvbXBp bGUuYmF0ICAgICAgfCAgICAgNCArDQo+ICBCYXNlVG9vbHMvQ29uZi9idWlsZF9ydWxlLnRlbXBs YXRlICAgICAgICAgICAgICAgICAgICAgIHwgICAgIDQgKy0NCj4gIEJhc2VUb29scy9Db25mL3Rv b2xzX2RlZi50ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMSArDQo+ICBCYXNl VG9vbHMvU291cmNlL1B5dGhvbi9WZnJDb21waWxlci9Db21tb25DdHlwZXMucHkgICAgIHwgIDEz OTQgLS0tLS0tLS0tLS0NCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KPiAtLS0tLS0tLS0tLS0NCj4gIEJhc2VUb29scy9Tb3VyY2UvUHl0aG9uL1ZmckNvbXBp bGVyL0lmckNvbW1vbi5weSAgICAgICAgfCAgIDEwMCArKysrKysrKysNCj4gIEJhc2VUb29scy9T b3VyY2UvUHl0aG9uL1ZmckNvbXBpbGVyL0lmckNvbXBpbGVyLnB5ICAgICAgfCAgIDU4Nw0KPiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ICBC YXNlVG9vbHMvU291cmNlL1B5dGhvbi9WZnJDb21waWxlci9JZnJDdHlwZXMucHkgICAgICAgIHwg IDE4MTENCj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKw0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrDQo+ICBCYXNlVG9vbHMvU291cmNlL1B5dGhvbi9WZnJDb21waWxlci9JZnJFcnJvci5w eSAgICAgICAgIHwgICAxNTMNCj4gKysrKysrKysrKysrKysNCj4gIEJhc2VUb29scy9Tb3VyY2Uv UHl0aG9uL1ZmckNvbXBpbGVyL0lmckZvcm1Qa2cucHkgICAgICAgfCAgMjkzNw0KPiArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr DQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysNCj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKw0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ICsrKw0KPiAgQmFzZVRvb2xzL1Nv dXJjZS9QeXRob24vVmZyQ29tcGlsZXIvSWZyUHJlUHJvY2Vzcy5weSAgICB8ICAgMjYyDQo+ICsr KysrKysrKysrKysrKysrKysrKysrKw0KPiAgQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vVmZyQ29t cGlsZXIvSWZyVHJlZS5weSAgICAgICAgICB8ICAxNzM0DQo+ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0K PiArKysrKysrKysrKysrKysrKysrKysrKysrDQo+ICBCYXNlVG9vbHMvU291cmNlL1B5dGhvbi9W ZnJDb21waWxlci9JZnJVdGlsaXR5LnB5ICAgICAgIHwgIDIyMjYNCj4gKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrDQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysNCj4gKysrKw0KPiAgQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vVmZyQ29t cGlsZXIvUkVBRE1FLm1kICAgICAgICAgICB8ICAgIDg4ICsrKysrKy0tDQo+ICBCYXNlVG9vbHMv U291cmNlL1B5dGhvbi9WZnJDb21waWxlci9WZnJFcnJvci5weSAgICAgICAgIHwgICAxNjIgLS0t LS0tLS0tLS0tLS0tDQo+ICBCYXNlVG9vbHMvU291cmNlL1B5dGhvbi9WZnJDb21waWxlci9WZnJG b3JtUGtnLnB5ICAgICAgIHwgIDI3MzggLS0tLS0tLS0tLS0tLS0tDQo+IC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgQmFz ZVRvb2xzL1NvdXJjZS9QeXRob24vVmZyQ29tcGlsZXIvVmZyU3ludGF4Lmc0ICAgICAgICB8ICAz ODA4DQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysNCj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKw0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KPiAgQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vVmZyQ29tcGlsZXIv VmZyU3ludGF4TGV4ZXIucHkgICB8ICAgIDE3ICstDQo+ICBCYXNlVG9vbHMvU291cmNlL1B5dGhv bi9WZnJDb21waWxlci9WZnJTeW50YXhQYXJzZXIucHkgIHwgIDgxNDUNCj4gKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrDQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysNCj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAtLS0tLS0tLS0tLS0tLS0tLS0t DQo+ICBCYXNlVG9vbHMvU291cmNlL1B5dGhvbi9WZnJDb21waWxlci9WZnJTeW50YXhWaXNpdG9y LnB5IHwgMTA2MTANCj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKw0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0K PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrDQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysNCj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQo+IC0tLS0tLQ0KPiAgQmFzZVRvb2xzL1NvdXJjZS9QeXRob24v VmZyQ29tcGlsZXIvVmZyVHJlZS5weSAgICAgICAgICB8ICAgIDg4IC0tLS0tLS0tDQo+ICBCYXNl VG9vbHMvU291cmNlL1B5dGhvbi9WZnJDb21waWxlci9WZnJVdGlsaXR5LnB5ICAgICAgIHwgIDE5 OTEgLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KPiAgQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vVmZyQ29tcGlsZXIv X19pbml0X18ucHkgICAgICAgICB8ICAgICAxICsNCj4gIEJhc2VUb29scy9Tb3VyY2UvUHl0aG9u L1ZmckNvbXBpbGVyL21haW4ucHkgICAgICAgICAgICAgfCAgICAyNyAtLS0NCj4gIDI0IGZpbGVz IGNoYW5nZWQsIDIxNDEzIGluc2VydGlvbnMoKyksIDE3NDg4IGRlbGV0aW9ucygtKQ0KPiANCj4g ZGlmZiAtLWdpdCBhL0Jhc2VUb29scy9CaW5XcmFwcGVycy9Qb3NpeExpa2UvUHlWZnJDb21waWxl DQo+IGIvQmFzZVRvb2xzL0JpbldyYXBwZXJzL1Bvc2l4TGlrZS9QeVZmckNvbXBpbGUNCj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMC4uZTg3ZTJhZTg4Zg0KPiAtLS0g L2Rldi9udWxsDQo+ICsrKyBiL0Jhc2VUb29scy9CaW5XcmFwcGVycy9Qb3NpeExpa2UvUHlWZnJD b21waWxlDQo+IEBAIC0wLDAgKzEsMTMgQEANCj4gKyAgICAjIS91c3IvYmluL2VudiBiYXNoDQo+ ICsgICAgI3B5dGhvbiBgZGlybmFtZSAkMGAvUnVuVG9vbEZyb21Tb3VyY2UucHkgYGJhc2VuYW1l ICQwYCAkKg0KPiArDQo+ICsgICAgIyBJZiBhICR7UFlUSE9OX0NPTU1BTkR9IGNvbW1hbmQgaXMg YXZhaWxhYmxlLCB1c2UgaXQgaW4gcHJlZmVyZW5jZQ0KPiB0byBweXRob24NCj4gKyAgICBpZiBj b21tYW5kIC12ICR7UFlUSE9OX0NPTU1BTkR9ID4vZGV2L251bGwgMj4mMTsgdGhlbg0KPiArICAg ICAgICBweXRob25fZXhlPSR7UFlUSE9OX0NPTU1BTkR9DQo+ICsgICAgZmkNCj4gKyAgICBmdWxs X2NtZD0ke0JBU0hfU09VUkNFOi0kMH0gIyBzZWUNCj4gaHR0cDovL215d2lraS53b29sZWRnZS5v cmcvQmFzaEZBUS8wMjggZm9yIGEgZGlzY3Vzc2lvbiBvZiB3aHkgJDAgaXMgbm90IGENCj4gZ29v ZCBjaG9pY2UgaGVyZQ0KPiArICAgIGRpcj0kKGRpcm5hbWUgIiRmdWxsX2NtZCIpDQo+ICsgICAg Y21kPSR7ZnVsbF9jbWQjIyovfQ0KPiArDQo+ICsgICAgZXhwb3J0DQo+IFBZVEhPTlBBVEg9IiRk aXIvLi4vLi4vU291cmNlL1B5dGhvbjokZGlyLy4uLy4uL1NvdXJjZS9QeXRob24vVmZyQ29tcGls ZXINCj4gOiRkaXIvLi4vLi4vU291cmNlL1B5dGhvbiR7UFlUSE9OUEFUSDorOiIkUFlUSE9OUEFU SCJ9Ig0KPiArICAgIGV4ZWMgIiR7cHl0aG9uX2V4ZTotcHl0aG9ufSIgLW0gSWZyQ29tcGlsZXIg IiRAIg0KPiBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUNCj4gZGlmZiAtLWdpdCBhL0Jhc2VU b29scy9CaW5XcmFwcGVycy9XaW5kb3dzTGlrZS9QeVZmckNvbXBpbGUuYmF0DQo+IGIvQmFzZVRv b2xzL0JpbldyYXBwZXJzL1dpbmRvd3NMaWtlL1B5VmZyQ29tcGlsZS5iYXQNCj4gbmV3IGZpbGUg bW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMC4uNmY1NzU4YTQ4MQ0KPiAtLS0gL2Rldi9u dWxsDQo+ICsrKyBiL0Jhc2VUb29scy9CaW5XcmFwcGVycy9XaW5kb3dzTGlrZS9QeVZmckNvbXBp bGUuYmF0DQo+IEBAIC0wLDAgKzEsNCBAQA0KPiArQHNldGxvY2FsDQo+ICtAc2V0IFRvb2xOYW1l PUlmckNvbXBpbGVyDQo+ICtAc2V0DQo+IFBZVEhPTlBBVEg9JVBZVEhPTlBBVEglOyVCQVNFX1RP T0xTX1BBVEglXFNvdXJjZVxQeXRob247JUJBUw0KPiBFX1RPT0xTX1BBVEglXFNvdXJjZVxQeXRo b25cVmZyQ29tcGlsZXINCj4gK0AlUFlUSE9OX0NPTU1BTkQlIC1tICVUb29sTmFtZSUgJSoNCj4g XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQo+IGRpZmYgLS1naXQgYS9CYXNlVG9vbHMvQ29u Zi9idWlsZF9ydWxlLnRlbXBsYXRlDQo+IGIvQmFzZVRvb2xzL0NvbmYvYnVpbGRfcnVsZS50ZW1w bGF0ZQ0KPiBpbmRleCBkNDJlNzkzN2NjLi4wZTE5MTMzNTg5IDEwMDc1NQ0KPiAtLS0gYS9CYXNl VG9vbHMvQ29uZi9idWlsZF9ydWxlLnRlbXBsYXRlDQo+ICsrKyBiL0Jhc2VUb29scy9Db25mL2J1 aWxkX3J1bGUudGVtcGxhdGUNCj4gQEAgLTI1Nyw2ICsyNTcsNyBAQA0KPiAgICAgIDxDb21tYW5k Pg0KPiANCj4gICAgICAgICAgIiQoVkZSUFApIiAkKERFUFNfRkxBR1MpICQoVkZSUFBfRkxBR1Mp ICQoSU5DKSAke3NyY30gPg0KPiAkKE9VVFBVVF9ESVIpKCspJHtzX2Jhc2V9LmkNCj4gDQo+ICAg ICAgICAgICIkKFZGUikiICQoVkZSX0ZMQUdTKSAtLXN0cmluZy1kYg0KPiAkKE9VVFBVVF9ESVIp KCspJChNT0RVTEVfTkFNRSlTdHJEZWZzLmhwayAtLW91dHB1dC1kaXJlY3RvcnkNCj4gJHtkX3Bh dGh9ICQoT1VUUFVUX0RJUikoKykke3NfYmFzZX0uaQ0KPiANCj4gKyAgICAgICAgIiQoUFlWRlIp IiAke3NyY30gLS1zdHJpbmctZGINCj4gJChPVVRQVVRfRElSKSgrKSQoTU9EVUxFX05BTUUpU3Ry RGVmcy5ocGsgLXcgJChXT1JLU1BBQ0UpIC1tDQo+ICQoTU9EVUxFX05BTUUpIC1vICQoT1VUUFVU X0RJUikgLS12ZnINCj4gDQo+IA0KPiANCj4gIFtPYmplY3QtRmlsZV0NCj4gDQo+ICAgICAgPElu cHV0RmlsZT4NCj4gDQo+IEBAIC02MjgsNyArNjI5LDggQEANCj4gICAgICA8Q29tbWFuZD4NCj4g DQo+ICAgICAgICAgICIkKFZGUlBQKSIgJChERVBTX0ZMQUdTKSAkKFZGUlBQX0ZMQUdTKSAkKElO QykgJHtzcmN9ID4NCj4gJChPVVRQVVRfRElSKSgrKSR7c19kaXJ9KCspJHtzX2Jhc2V9LmkNCj4g DQo+ICAgICAgICAgICIkKFZGUikiICQoVkZSX0ZMQUdTKSAtLWNyZWF0ZS1pZnItcGFja2FnZSAt LXN0cmluZy1kYg0KPiAkKE9VVFBVVF9ESVIpKCspJChNT0RVTEVfTkFNRSlTdHJEZWZzLmhwayAt LW91dHB1dC1kaXJlY3RvcnkNCj4gJChPVVRQVVRfRElSKSgrKSR7c19kaXJ9ICQoT1VUUFVUX0RJ UikoKykke3NfZGlyfSgrKSR7c19iYXNlfS5pDQo+IA0KPiAtDQo+IA0KPiArICAgICAgICAiJChQ WVZGUikiICR7c3JjfSAtLXN0cmluZy1kYg0KPiAkKE9VVFBVVF9ESVIpKCspJChNT0RVTEVfTkFN RSlTdHJEZWZzLmhwayAtdyAkKFdPUktTUEFDRSkgLW0NCj4gJChNT0RVTEVfTkFNRSkgLW8gJChP VVRQVVRfRElSKSAtLXZmcg0KPiANCj4gKw0KPiANCj4gIFtIaWktQmluYXJ5LVBhY2thZ2UuVUVG SV9ISUldDQo+IA0KPiAgICAgIDxJbnB1dEZpbGU+DQo+IA0KPiAgICAgICAgICAqLmhwaw0KPiAN Cj4gZGlmZiAtLWdpdCBhL0Jhc2VUb29scy9Db25mL3Rvb2xzX2RlZi50ZW1wbGF0ZQ0KPiBiL0Jh c2VUb29scy9Db25mL3Rvb2xzX2RlZi50ZW1wbGF0ZQ0KPiBpbmRleCAzODBkNDU4NzMzLi42ZTAx ZmM3Y2NiIDEwMDc1NQ0KPiAtLS0gYS9CYXNlVG9vbHMvQ29uZi90b29sc19kZWYudGVtcGxhdGUN Cj4gKysrIGIvQmFzZVRvb2xzL0NvbmYvdG9vbHNfZGVmLnRlbXBsYXRlDQo+IEBAIC0zMDM2LDYg KzMwMzYsNyBAQCBSRUxFQVNFX1hDT0RFNV9YNjRfQ0NfRkxBR1MgICA9IC10YXJnZXQNCj4geDg2 XzY0LXBjLXdpbjMyLW1hY2hvIC1jICAgIC1PcyAgICAgICAtVw0KPiAgIyMjIyMjIyMjIyMjIyMj IyMjDQo+IA0KPiAgKl8qXypfVkZSX1BBVEggICAgICAgICAgICAgICAgICAgICAgPSBWZnJDb21w aWxlDQo+IA0KPiAgKl8qXypfVkZSX0ZMQUdTICAgICAgICAgICAgICAgICAgICAgPSAtbCAtbg0K PiANCj4gKypfKl8qX1BZVkZSX1BBVEggICAgICAgICAgICAgICAgICAgID0gUHlWZnJDb21waWxl DQo+IA0KPiANCj4gDQo+ICAjIyMjIyMjIyMjIyMjIyMjIyMNCj4gDQo+ICAjIE9wdGlvblJvbSB0 b29sIGRlZmluaXRpb25zDQo+IA0KPiBkaWZmIC0tZ2l0IGEvQmFzZVRvb2xzL1NvdXJjZS9QeXRo b24vVmZyQ29tcGlsZXIvQ29tbW9uQ3R5cGVzLnB5DQo+IGIvQmFzZVRvb2xzL1NvdXJjZS9QeXRo b24vVmZyQ29tcGlsZXIvQ29tbW9uQ3R5cGVzLnB5DQo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NA0KPiBpbmRleCBiNjIxNDVkOTgwLi4wMDAwMDAwMDAwDQo+IC0tLSBhL0Jhc2VUb29scy9Tb3Vy Y2UvUHl0aG9uL1ZmckNvbXBpbGVyL0NvbW1vbkN0eXBlcy5weQ0KPiArKysgL2Rldi9udWxsDQo+ IEBAIC0xLDEzOTQgKzAsMCBAQA0KPiAtZnJvbSBjdHlwZXMgaW1wb3J0ICoNCj4gDQo+IC1mcm9t IHJlIGltcG9ydCBBLCBYDQo+IA0KPiAtZnJvbSB0ZWxuZXRsaWIgaW1wb3J0IFgzUEFEDQo+IA0K PiAtZnJvbSB0a2ludGVyIGltcG9ydCBZVmlldw0KPiANCj4gLWltcG9ydCB1dWlkDQo+IA0KPiAt ZnJvbSBWZnJDb21waWxlci5WZnJFcnJvciBpbXBvcnQgKg0KPiANCj4gLWZyb20gc3RydWN0IGlt cG9ydCAqDQo+IA0KPiAtDQo+IA0KPiAtRUZJX1NUUklOR19JRF9JTlZBTElEID0gMHgwDQo+IA0K PiAtRUZJX0hJSV9ERUZBVUxUX0NMQVNTX1NUQU5EQVJEID0gMHgwMDAwDQo+IA0KPiAtRUZJX0hJ SV9ERUZBVUxUX0NMQVNTX01BTlVGQUNUVVJJTkcgPSAweDAwMDENCj4gDQo+IC1FRklfSUZSX01B WF9MRU5HVEggPSAweEZGDQo+IA0KPiAtRUZJX1ZBUlNUT1JFX0lEX0lOVkFMSUQgPSAwDQo+IA0K PiAtRUZJX1ZBUlNUT1JFX0lEX1NUQVJUID0gMHgyMA0KPiANCj4gLUVGSV9WQVJPRkZTRVRfSU5W QUxJRCA9IDB4RkZGRg0KPiANCj4gLUVGSV9JTUFHRV9JRF9JTlZBTElEID0gMHhGRkZGDQo+IA0K PiAtDQo+IA0KPiAtRUZJX05PTl9ERVZJQ0VfQ0xBU1MgPSAweDAwDQo+IA0KPiAtRUZJX0RJU0tf REVWSUNFX0NMQVNTID0gMHgwMQ0KPiANCj4gLUVGSV9WSURFT19ERVZJQ0VfQ0xBU1MgPSAweDAy DQo+IA0KPiAtRUZJX05FVFdPUktfREVWSUNFX0NMQVNTID0gMHgwNA0KPiANCj4gLUVGSV9JTlBV VF9ERVZJQ0VfQ0xBU1MgPSAweDA4DQo+IA0KPiAtRUZJX09OX0JPQVJEX0RFVklDRV9DTEFTUyA9 IDB4MTANCj4gDQo+IC1FRklfT1RIRVJfREVWSUNFX0NMQVNTID0gMHgyMA0KPiANCj4gLQ0KPiAN Cj4gLUVGSV9TRVRVUF9BUFBMSUNBVElPTl9TVUJDTEFTUyA9IDB4MDANCj4gDQo+IC1FRklfR0VO RVJBTF9BUFBMSUNBVElPTl9TVUJDTEFTUyA9IDB4MDENCj4gDQo+IC1FRklfRlJPTlRfUEFHRV9T VUJDTEFTUyA9IDB4MDINCj4gDQo+IC1FRklfU0lOR0xFX1VTRV9TVUJDTEFTUyA9IDB4MDMNCj4g DQo+IC0NCj4gDQo+IC0jIEVGSV9ISUlfUEFDS0FHRV9UWVBFX3guDQo+IA0KPiAtDQo+IA0KPiAt RUZJX0hJSV9QQUNLQUdFX1RZUEVfQUxMID0gMHgwMA0KPiANCj4gLUVGSV9ISUlfUEFDS0FHRV9U WVBFX0dVSUQgPSAweDAxDQo+IA0KPiAtRUZJX0hJSV9QQUNLQUdFX0ZPUk0gPSAweDAyDQo+IA0K PiAtRUZJX0hJSV9QQUNLQUdFX0tFWUJPQVJEX0xBWU9VVCA9IDB4MDMNCj4gDQo+IC1FRklfSElJ X1BBQ0tBR0VfU1RSSU5HUyA9IDB4MDQNCj4gDQo+IC1FRklfSElJX1BBQ0tBR0VfRk9OVFMgPSAw eDA1DQo+IA0KPiAtRUZJX0hJSV9QQUNLQUdFX0lNQUdFUyA9IDB4MDYNCj4gDQo+IC1FRklfSElJ X1BBQ0tBR0VfU0lNUExFX0ZPTlRTID0gMHgwNw0KPiANCj4gLUVGSV9ISUlfUEFDS0FHRV9ERVZJ Q0VfUEFUSCA9IDB4MDgNCj4gDQo+IC1FRklfSElJX1BBQ0tBR0VfRU5EID0gMHhERg0KPiANCj4g LUVGSV9ISUlfUEFDS0FHRV9UWVBFX1NZU1RFTV9CRUdJTiA9IDB4RTANCj4gDQo+IC1FRklfSElJ X1BBQ0tBR0VfVFlQRV9TWVNURU1fRU5EID0gMHhGRg0KPiANCj4gLQ0KPiANCj4gLUVGSV9JRlJf RVhURU5EX09QX0xBQkVMID0gMHgwDQo+IA0KPiAtRUZJX0lGUl9FWFRFTkRfT1BfQkFOTkVSID0g MHgxDQo+IA0KPiAtRUZJX0lGUl9FWFRFTkRfT1BfVElNRU9VVCA9IDB4Mg0KPiANCj4gLUVGSV9J RlJfRVhURU5EX09QX0NMQVNTID0gMHgzDQo+IA0KPiAtRUZJX0lGUl9FWFRFTkRfT1BfU1VCQ0xB U1MgPSAweDQNCj4gDQo+IC0NCj4gDQo+IC1NQVhfSUZSX0VYUFJFU1NJT05fREVQVEggPSAweDkN Cj4gDQo+IC0NCj4gDQo+IC1JTlZBTElEX0FSUkFZX0lOREVYID0gMHhGRkZGRkZGRg0KPiANCj4g LQ0KPiANCj4gLUVGSV9JRlJfVFlQRV9OVU1fU0laRV84ID0gMHgwMA0KPiANCj4gLUVGSV9JRlJf VFlQRV9OVU1fU0laRV8xNiA9IDB4MDENCj4gDQo+IC1FRklfSUZSX1RZUEVfTlVNX1NJWkVfMzIg PSAweDAyDQo+IA0KPiAtRUZJX0lGUl9UWVBFX05VTV9TSVpFXzY0ID0gMHgwMw0KPiANCj4gLUVG SV9JRlJfVFlQRV9CT09MRUFOID0gMHgwNA0KPiANCj4gLUVGSV9JRlJfVFlQRV9USU1FID0gMHgw NQ0KPiANCj4gLUVGSV9JRlJfVFlQRV9EQVRFID0gMHgwNg0KPiANCj4gLUVGSV9JRlJfVFlQRV9T VFJJTkcgPSAweDA3DQo+IA0KPiAtRUZJX0lGUl9UWVBFX09USEVSID0gMHgwOA0KPiANCj4gLUVG SV9JRlJfVFlQRV9VTkRFRklORUQgPSAweDA5DQo+IA0KPiAtRUZJX0lGUl9UWVBFX0FDVElPTiA9 IDB4MEENCj4gDQo+IC1FRklfSUZSX1RZUEVfQlVGRkVSID0gMHgwQg0KPiANCj4gLUVGSV9JRlJf VFlQRV9SRUYgPSAweDBDDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtRUZJX0lGUl9GTEFHU19I T1JJWk9OVEFMID0gMHgwMQ0KPiANCj4gLQ0KPiANCj4gLUVGSV9JRlJfRkxBR19SRUFEX09OTFkg PSAweDAxDQo+IA0KPiAtRUZJX0lGUl9GTEFHX0NBTExCQUNLID0gMHgwNA0KPiANCj4gLUVGSV9J RlJfRkxBR19SRVNFVF9SRVFVSVJFRCA9IDB4MTANCj4gDQo+IC1FRklfSUZSX0ZMQUdfUkVTVF9T VFlMRSA9IDB4MjANCj4gDQo+IC1FRklfSUZSX0ZMQUdfUkVDT05ORUNUX1JFUVVJUkVEID0gMHg0 MA0KPiANCj4gLUVGSV9JRlJfRkxBR19PUFRJT05TX09OTFkgPSAweDgwDQo+IA0KPiAtDQo+IA0K PiAtRUZJX0lGUl9TVFJJTkdfTVVMVElfTElORSA9IDB4MDENCj4gDQo+IC0NCj4gDQo+IC1FREtJ SV9JRlJfRElTUExBWV9CSVQgPSAweEMwDQo+IA0KPiAtRURLSUlfSUZSX0RJU1BMQVlfSU5UX0RF Q19CSVQgPSAweDAwDQo+IA0KPiAtRURLSUlfSUZSX0RJU1BMQVlfVUlOVF9ERUNfQklUID0gMHg0 MA0KPiANCj4gLUVES0lJX0lGUl9ESVNQTEFZX1VJTlRfSEVYX0JJVCA9IDB4ODANCj4gDQo+IC0N Cj4gDQo+IC1FREtJSV9JRlJfTlVNRVJJQ19TSVpFX0JJVCA9IDB4M0YNCj4gDQo+IC0NCj4gDQo+ IC1FRklfSUZSX01BWF9ERUZBVUxUX1RZUEUgPSAweDEwDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0K PiAtY2xhc3MgRUZJX0dVSUQoU3RydWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiAN Cj4gLSAgICBfZmllbGRzXyA9IFsNCj4gDQo+IC0gICAgICAgICgnRGF0YTEnLCBjX3VpbnQzMiks DQo+IA0KPiAtICAgICAgICAoJ0RhdGEyJywgY191aW50MTYpLA0KPiANCj4gLSAgICAgICAgKCdE YXRhMycsIGNfdWludDE2KSwNCj4gDQo+IC0gICAgICAgICgnRGF0YTQnLCBjX3VieXRlICogOCks DQo+IA0KPiAtICAgIF0NCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIGZyb21fbGlzdChzZWxmLCBs aXN0Zm9ybWF0OiBsaXN0KSAtPiBOb25lOg0KPiANCj4gLSAgICAgICAgc2VsZi5EYXRhMSA9IGxp c3Rmb3JtYXRbMF0NCj4gDQo+IC0gICAgICAgIHNlbGYuRGF0YTIgPSBsaXN0Zm9ybWF0WzFdDQo+ IA0KPiAtICAgICAgICBzZWxmLkRhdGEzID0gbGlzdGZvcm1hdFsyXQ0KPiANCj4gLSAgICAgICAg Zm9yIGkgaW4gcmFuZ2UoOCk6DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5EYXRhNFtpXSA9IGxp c3Rmb3JtYXRbaSArIDNdDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX2NtcF9fKHNlbGYsIG90 aGVyZ3VpZCkgLT4gYm9vbDoNCj4gDQo+IC0gICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG90aGVy Z3VpZCwgRUZJX0dVSUQpOg0KPiANCj4gLSAgICAgICAgICAgIHJldHVybiAnSW5wdXQgaXMgbm90 IHRoZSBHVUlEIGluc3RhbmNlIScNCj4gDQo+IC0gICAgICAgIHJ0ID0gRmFsc2UNCj4gDQo+IC0g ICAgICAgIGlmIHNlbGYuRGF0YTEgPT0gb3RoZXJndWlkLkRhdGExIGFuZCBzZWxmLkRhdGEyID09 IG90aGVyZ3VpZC5EYXRhMiBhbmQNCj4gc2VsZi5EYXRhMyA9PSBvdGhlcmd1aWQuRGF0YTM6DQo+ IA0KPiAtICAgICAgICAgICAgcnQgPSBUcnVlDQo+IA0KPiAtICAgICAgICAgICAgZm9yIGkgaW4g cmFuZ2UoOCk6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHJ0ID0gcnQgJiAoc2VsZi5EYXRhNFtp XSA9PSBvdGhlcmd1aWQuRGF0YTRbaV0pDQo+IA0KPiAtICAgICAgICByZXR1cm4gcnQNCj4gDQo+ IC0NCj4gDQo+IC0NCj4gDQo+IC1HdWlkQXJyYXkgPSBjX3VieXRlICogOA0KPiANCj4gLUVGSV9I SUlfUExBVEZPUk1fU0VUVVBfRk9STVNFVF9HVUlEID0gRUZJX0dVSUQoDQo+IA0KPiAtICAgIDB4 OTMwMzk5NzEsIDB4ODU0NSwgMHg0YjA0LA0KPiANCj4gLSAgICBHdWlkQXJyYXkoMHhiNCwgMHg1 ZSwgMHgzMiwgMHhlYiwgMHg4MywgMHgyNiwgMHg0LCAweGUpKQ0KPiANCj4gLQ0KPiANCj4gLUVG SV9JRlJfVElBTk9fR1VJRCA9IEVGSV9HVUlEKA0KPiANCj4gLSAgICAweGYwYjE3MzUsIDB4ODdh MCwgMHg0MTkzLA0KPiANCj4gLSAgICBHdWlkQXJyYXkoMHhiMiwgMHg2NiwgMHg1MywgMHg4Yywg MHgzOCwgMHhhZiwgMHg0OCwgMHhjZSkpDQo+IA0KPiAtDQo+IA0KPiAtRURLSUlfSUZSX0JJVF9W QVJTVE9SRV9HVUlEID0gKDB4ODJEREQ2OEIsIDB4OTE2MywgMHg0MTg3LA0KPiANCj4gLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBHdWlkQXJyYXkoMHg5QiwgMHgyNywgMHgyMCwgMHhB OCwgMHhGRCwgMHg2MCwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4QTcsIDB4MUQpKQ0KPiANCj4gLQ0KPiANCj4gLUVGSV9JRlJfRlJBTUVXT1JLX0dV SUQgPSAoMHgzMWNhNWQxYSwgMHhkNTExLCAweDQ5MzEsDQo+IA0KPiAtICAgICAgICAgICAgICAg ICAgICAgICAgICBHdWlkQXJyYXkoMHhiNywgMHg4MiwgMHhhZSwgMHg2YiwgMHgyYiwgMHgxNywg MHg4YywNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGQ3KSkN Cj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklfSUZSX09QX0hFQURFUihTdHJ1Y3R1cmUpOg0KPiAN Cj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9maWVsZHNfID0gWw0KPiANCj4gLSAgICAg ICAgKCdPcENvZGUnLCBjX3VieXRlKSwNCj4gDQo+IC0gICAgICAgICgnTGVuZ3RoJywgY191Ynl0 ZSwgNyksICAjDQo+IA0KPiAtICAgICAgICAoJ1Njb3BlJywgY191Ynl0ZSwgMSksICAjDQo+IA0K PiAtICAgIF0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklfSUZSX0ZPUk1fU0VU KFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18g PSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+ IC0gICAgICAgICgnR3VpZCcsIEVGSV9HVUlEKSwNCj4gDQo+IC0gICAgICAgICgnRm9ybVNldFRp dGxlJywgY191aW50MTYpLA0KPiANCj4gLSAgICAgICAgKCdIZWxwJywgY191aW50MTYpLA0KPiAN Cj4gLSAgICAgICAgKCdGbGFncycsIGNfdWJ5dGUpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+ IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9HVUlEX0NMQVNTKFN0cnVjdHVyZSk6DQo+IA0K PiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAg ICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgICAgICgnR3VpZCcs IEVGSV9HVUlEKSwNCj4gDQo+IC0gICAgICAgICgnRXh0ZW5kT3BDb2RlJywgY191Ynl0ZSksDQo+ IA0KPiAtICAgICAgICAoJ0NsYXNzJywgY191aW50MTYpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAt DQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9HVUlEX1NVQkNMQVNTKFN0cnVjdHVyZSk6 DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAt ICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgICAgICgn R3VpZCcsIEVGSV9HVUlEKSwNCj4gDQo+IC0gICAgICAgICgnRXh0ZW5kT3BDb2RlJywgY191Ynl0 ZSksDQo+IA0KPiAtICAgICAgICAoJ1N1YkNsYXNzJywgY191aW50MTYpLA0KPiANCj4gLSAgICBd DQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9ERUZBVUxUU1RPUkUoU3Ry dWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBfZmllbGRzXyA9IFsN Cj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiANCj4gLSAg ICAgICAgKCdEZWZhdWx0TmFtZScsIGNfdWludDE2KSwNCj4gDQo+IC0gICAgICAgICgnRGVmYXVs dElkJywgY191aW50MTYpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAt Y2xhc3MgRUZJX0lGUl9WQVJTVE9SRShTdHJ1Y3R1cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAx DQo+IA0KPiAtICAgIF9maWVsZHNfID0gWw0KPiANCj4gLSAgICAgICAgKCdIZWFkZXInLCBFRklf SUZSX09QX0hFQURFUiksDQo+IA0KPiAtICAgICAgICAoJ0d1aWQnLCBFRklfR1VJRCksDQo+IA0K PiAtICAgICAgICAoJ1ZhclN0b3JlSWQnLCBjX3VpbnQxNiksDQo+IA0KPiAtICAgICAgICAoJ1Np emUnLCBjX3VpbnQxNiksDQo+IA0KPiAtICAgICAgICAoJ05hbWUnLCBjX3djaGFyX3ApLA0KPiAN Cj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9WQVJTVE9S RV9FRkkoU3RydWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBfZmll bGRzXyA9IFsNCj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFERVIpLA0K PiANCj4gLSAgICAgICAgKCdHdWlkJywgRUZJX0dVSUQpLA0KPiANCj4gLSAgICAgICAgKCdWYXJT dG9yZUlkJywgY191aW50MTYpLA0KPiANCj4gLSAgICAgICAgKCdBdHRyaWJ1dGVzJywgY191aW50 MzIpLA0KPiANCj4gLSAgICAgICAgKCdTaXplJywgY191aW50MTYpLA0KPiANCj4gLSAgICAgICAg KCdOYW1lJywgY193Y2hhcl9wKSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiAN Cj4gLWNsYXNzIEVGSV9JRlJfR1VJRChTdHJ1Y3R1cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAx DQo+IA0KPiAtICAgIF9maWVsZHNfID0gWw0KPiANCj4gLSAgICAgICAgKCdIZWFkZXInLCBFRklf SUZSX09QX0hFQURFUiksDQo+IA0KPiAtICAgICAgICAoJ0d1aWQnLCBFRklfR1VJRCksDQo+IA0K PiAtICAgIF0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklfSElJX1BBQ0tBR0Vf SEVBREVSKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2Zp ZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0xlbmd0aCcsIGNfdWludDMyLCAyNCksDQo+IA0K PiAtICAgICAgICAoJ1R5cGUnLCBjX3VpbnQzMiwgOCksDQo+IA0KPiAtICAgIF0NCj4gDQo+IC0N Cj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklfSElJX1NUUklOR19QQUNLQUdFX0hEUihTdHJ1Y3R1 cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9maWVsZHNfID0gWw0KPiAN Cj4gLSAgICAgICAgKCdIZWFkZXInLCBFRklfSElJX1BBQ0tBR0VfSEVBREVSKSwNCj4gDQo+IC0g ICAgICAgICgnSGRyU2l6ZScsIGNfdWludDMyKSwNCj4gDQo+IC0gICAgICAgICgnU3RyaW5nSW5m b09mZnNldCcsIGNfdWludDMyKSwNCj4gDQo+IC0gICAgICAgICgnTGFuZ3VhZ2VXaW5kb3cnLCBj X3VzaG9ydCAqIDE2KSwNCj4gDQo+IC0gICAgICAgICgnTGFuZ3VhZ2VOYW1lJywgY191aW50MTYp LA0KPiANCj4gLSAgICAgICAgKCdMYW5ndWFnZScsIGNfY2hhciAqIDIpLA0KPiANCj4gLSAgICBd DQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9WQVJTVE9SRV9OQU1FX1ZB TFVFKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxk c18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4g DQo+IC0gICAgICAgICgnVmFyU3RvcmVJZCcsIGNfdWludDE2KSwNCj4gDQo+IC0gICAgICAgICgn R3VpZCcsIEVGSV9HVUlEKSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4g LWNsYXNzIEVGSV9JRlJfRk9STShTdHJ1Y3R1cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+ IA0KPiAtICAgIF9maWVsZHNfID0gWw0KPiANCj4gLSAgICAgICAgKCdIZWFkZXInLCBFRklfSUZS X09QX0hFQURFUiksDQo+IA0KPiAtICAgICAgICAoJ0Zvcm1JZCcsIGNfdWludDE2KSwNCj4gDQo+ IC0gICAgICAgICgnRm9ybVRpdGxlJywgY191aW50MTYpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAt DQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9HVUlEX0JBTk5FUihTdHJ1Y3R1cmUpOg0K PiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9maWVsZHNfID0gWw0KPiANCj4gLSAg ICAgICAgKCdIZWFkZXInLCBFRklfSUZSX09QX0hFQURFUiksDQo+IA0KPiAtICAgICAgICAoJ0d1 aWQnLCBFRklfR1VJRCksDQo+IA0KPiAtICAgICAgICAoJ0V4dGVuZE9wQ29kZScsIGNfdWJ5dGUp LA0KPiANCj4gLSAgICAgICAgKCdUaXRsZScsIGNfdWludDE2KSwNCj4gDQo+IC0gICAgICAgICgn TGluZU51bWJlcicsIGNfdWludDE2KSwNCj4gDQo+IC0gICAgICAgICgnQWxpZ25tZW50JywgY191 Ynl0ZSksDQo+IA0KPiAtICAgIF0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklf SUZSX0dVSURfVElNRU9VVChTdHJ1Y3R1cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0K PiAtICAgIF9maWVsZHNfID0gWw0KPiANCj4gLSAgICAgICAgKCdIZWFkZXInLCBFRklfSUZSX09Q X0hFQURFUiksDQo+IA0KPiAtICAgICAgICAoJ0d1aWQnLCBFRklfR1VJRCksDQo+IA0KPiAtICAg ICAgICAoJ0V4dGVuZE9wQ29kZScsIGNfdWJ5dGUpLA0KPiANCj4gLSAgICAgICAgKCdUaW1lT3V0 JywgY191aW50MTYpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xh c3MgRUZJX0lGUl9HVUlEX0xBQkVMKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDEN Cj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9J RlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgICAgICgnR3VpZCcsIEVGSV9HVUlEKSwNCj4gDQo+ IC0gICAgICAgICgnRXh0ZW5kT3BDb2RlJywgY191Ynl0ZSksDQo+IA0KPiAtICAgICAgICAoJ051 bWJlcicsIGNfdWludDE2KSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4g LWNsYXNzIEVGSV9JRlJfUlVMRShTdHJ1Y3R1cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+ IA0KPiAtICAgIF9maWVsZHNfID0gWw0KPiANCj4gLSAgICAgICAgKCdIZWFkZXInLCBFRklfSUZS X09QX0hFQURFUiksDQo+IA0KPiAtICAgICAgICAoJ1J1bGVJZCcsIGNfdWJ5dGUpLA0KPiANCj4g LSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9TVEFURU1FTlRf SEVBREVSKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2Zp ZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ1Byb21wdCcsIGNfdWludDE2KSwNCj4gDQo+IC0g ICAgICAgICgnSGVscCcsIGNfdWludDE2KSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4g LQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfU1VCVElUTEUoU3RydWN0dXJlKToNCj4gDQo+IC0gICAg X3BhY2tfID0gMQ0KPiANCj4gLSAgICBfZmllbGRzXyA9IFsNCj4gDQo+IC0gICAgICAgICgnSGVh ZGVyJywgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiANCj4gLSAgICAgICAgKCdTdGF0ZW1lbnQnLCBF RklfSUZSX1NUQVRFTUVOVF9IRUFERVIpLA0KPiANCj4gLSAgICAgICAgKCdGbGFncycsIGNfdWJ5 dGUpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lG Ul9URVhUKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2Zp ZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwN Cj4gDQo+IC0gICAgICAgICgnU3RhdGVtZW50JywgRUZJX0lGUl9TVEFURU1FTlRfSEVBREVSKSwN Cj4gDQo+IC0gICAgICAgICgnVGV4dFR3bycsIGNfdWludDE2KSwNCj4gDQo+IC0gICAgXQ0KPiAN Cj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfSU1BR0UoU3RydWN0dXJlKToNCj4g DQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBfZmllbGRzXyA9IFsNCj4gDQo+IC0gICAg ICAgICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiANCj4gLSAgICAgICAgKCdJZCcs IGNfdWludDE2KSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNz IFZhclN0b3JlSW5mb05vZGUoVW5pb24pOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAt ICAgIF9maWVsZHNfID0gWw0KPiANCj4gLSAgICAgICAgKCdWYXJOYW1lJywgY191aW50MTYpLA0K PiANCj4gLSAgICAgICAgKCdWYXJPZmZzZXQnLCBjX3VpbnQxNiksDQo+IA0KPiAtICAgIF0NCj4g DQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklfSUZSX1FVRVNUSU9OX0hFQURFUihTdHJ1 Y3R1cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9maWVsZHNfID0gWw0K PiANCj4gLSAgICAgICAgKCdIZWFkZXInLCBFRklfSUZSX1NUQVRFTUVOVF9IRUFERVIpLA0KPiAN Cj4gLSAgICAgICAgKCdRdWVzdGlvbklkJywgY191aW50MTYpLA0KPiANCj4gLSAgICAgICAgKCdW YXJTdG9yZUlkJywgY191aW50MTYpLA0KPiANCj4gLSAgICAgICAgKCdWYXJTdG9yZUluZm8nLCBW YXJTdG9yZUluZm9Ob2RlKSwNCj4gDQo+IC0gICAgICAgICgnRmxhZ3MnLCBjX3VieXRlKSwNCj4g DQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIHU4Tm9kZShTdHJ1Y3R1 cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9maWVsZHNfID0gWw0KPiAN Cj4gLSAgICAgICAgKCdNaW5WYWx1ZScsIGNfdWJ5dGUpLA0KPiANCj4gLSAgICAgICAgKCdNYXhW YWx1ZScsIGNfdWJ5dGUpLA0KPiANCj4gLSAgICAgICAgKCdTdGVwJywgY191Ynl0ZSksDQo+IA0K PiAtICAgIF0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyB1MTZOb2RlKFN0cnVjdHVy ZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0K PiAtICAgICAgICAoJ01pblZhbHVlJywgY191aW50MTYpLA0KPiANCj4gLSAgICAgICAgKCdNYXhW YWx1ZScsIGNfdWludDE2KSwNCj4gDQo+IC0gICAgICAgICgnU3RlcCcsIGNfdWludDE2KSwNCj4g DQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIHUzMk5vZGUoU3RydWN0 dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBfZmllbGRzXyA9IFsNCj4g DQo+IC0gICAgICAgICgnTWluVmFsdWUnLCBjX3VpbnQzMiksDQo+IA0KPiAtICAgICAgICAoJ01h eFZhbHVlJywgY191aW50MzIpLA0KPiANCj4gLSAgICAgICAgKCdTdGVwJywgY191aW50MzIpLA0K PiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgdTY0Tm9kZShTdHJ1 Y3R1cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9maWVsZHNfID0gWw0K PiANCj4gLSAgICAgICAgKCdNaW5WYWx1ZScsIGNfdWludDY0KSwNCj4gDQo+IC0gICAgICAgICgn TWF4VmFsdWUnLCBjX3VpbnQ2NCksDQo+IA0KPiAtICAgICAgICAoJ1N0ZXAnLCBjX3VpbnQ2NCks DQo+IA0KPiAtICAgIF0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBNSU5NQVhTVEVQ X0RBVEEoVW5pb24pOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9maWVsZHNf ID0gWw0KPiANCj4gLSAgICAgICAgKCd1OCcsIHU4Tm9kZSksDQo+IA0KPiAtICAgICAgICAoJ3Ux NicsIHUxNk5vZGUpLA0KPiANCj4gLSAgICAgICAgKCd1MzInLCB1MzJOb2RlKSwNCj4gDQo+IC0g ICAgICAgICgndTY0JywgdTY0Tm9kZSksDQo+IA0KPiAtICAgIF0NCj4gDQo+IC0NCj4gDQo+IC0N Cj4gDQo+IC1FRklfSUZSX05VTUVSSUNfU0laRSA9IDB4MDMNCj4gDQo+IC1FRklfSUZSX05VTUVS SUNfU0laRV8xID0gMHgwMA0KPiANCj4gLUVGSV9JRlJfTlVNRVJJQ19TSVpFXzIgPSAweDAxDQo+ IA0KPiAtRUZJX0lGUl9OVU1FUklDX1NJWkVfNCA9IDB4MDINCj4gDQo+IC1FRklfSUZSX05VTUVS SUNfU0laRV84ID0gMHgwMw0KPiANCj4gLQ0KPiANCj4gLUVGSV9JRlJfRElTUExBWSA9IDB4MzAN Cj4gDQo+IC1FRklfSUZSX0RJU1BMQVlfSU5UX0RFQyA9IDB4MDANCj4gDQo+IC1FRklfSUZSX0RJ U1BMQVlfVUlOVF9ERUMgPSAweDEwDQo+IA0KPiAtRUZJX0lGUl9ESVNQTEFZX1VJTlRfSEVYID0g MHgyMA0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfT05FX09GKFN0cnVjdHVyZSk6DQo+ IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAg ICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgICAgICgnUXVl c3Rpb24nLCBFRklfSUZSX1FVRVNUSU9OX0hFQURFUiksDQo+IA0KPiAtICAgICAgICAoJ0ZsYWdz JywgY191Ynl0ZSksDQo+IA0KPiAtICAgICAgICAoJ2RhdGEnLCBNSU5NQVhTVEVQX0RBVEEpLA0K PiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtRUZJX0lGUl9DSEVDS0JPWF9E RUZBVUxUID0gMHgwMQ0KPiANCj4gLUVGSV9JRlJfQ0hFQ0tCT1hfREVGQVVMVF9NRkcgPSAweDAy DQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9DSEVDS0JPWChTdHJ1Y3R1 cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9maWVsZHNfID0gWw0KPiAN Cj4gLSAgICAgICAgKCdIZWFkZXInLCBFRklfSUZSX09QX0hFQURFUiksDQo+IA0KPiAtICAgICAg ICAoJ1F1ZXN0aW9uJywgRUZJX0lGUl9RVUVTVElPTl9IRUFERVIpLA0KPiANCj4gLSAgICAgICAg KCdGbGFncycsIGNfdWJ5dGUpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0K PiAtY2xhc3MgRUZJX0lGUl9OVU1FUklDKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9 IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVG SV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgICAgICgnUXVlc3Rpb24nLCBFRklfSUZSX1FV RVNUSU9OX0hFQURFUiksDQo+IA0KPiAtICAgICAgICAoJ0ZsYWdzJywgY191Ynl0ZSksDQo+IA0K PiAtICAgICAgICAoJ0RhdGEnLCBNSU5NQVhTVEVQX0RBVEEpLA0KPiANCj4gLSAgICBdDQo+IA0K PiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9QQVNTV09SRChTdHJ1Y3R1cmUpOg0K PiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9maWVsZHNfID0gWw0KPiANCj4gLSAg ICAgICAgKCdIZWFkZXInLCBFRklfSUZSX09QX0hFQURFUiksDQo+IA0KPiAtICAgICAgICAoJ1F1 ZXN0aW9uJywgRUZJX0lGUl9RVUVTVElPTl9IRUFERVIpLA0KPiANCj4gLSAgICAgICAgKCdNaW5T aXplJywgY191aW50MTYpLA0KPiANCj4gLSAgICAgICAgKCdNYXhTaXplJywgY191aW50MTYpLA0K PiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0hJSV9USU1F KFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18g PSBbDQo+IA0KPiAtICAgICAgICAoJ0hvdXInLCBjX3VieXRlKSwNCj4gDQo+IC0gICAgICAgICgn TWludXRlJywgY191Ynl0ZSksDQo+IA0KPiAtICAgICAgICAoJ1NlY29uZCcsIGNfdWJ5dGUpLA0K PiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0hJSV9EQVRF KFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18g PSBbDQo+IA0KPiAtICAgICAgICAoJ1llYXInLCBjX3VpbnQxNiksDQo+IA0KPiAtICAgICAgICAo J01vbnRoJywgY191Ynl0ZSksDQo+IA0KPiAtICAgICAgICAoJ0RheScsIGNfdWJ5dGUpLA0KPiAN Cj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0hJSV9SRUYoU3Ry dWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBfZmllbGRzXyA9IFsN Cj4gDQo+IC0gICAgICAgICgnUXVlc3Rpb25JZCcsIGNfdWludDE2KSwNCj4gDQo+IC0gICAgICAg ICgnRm9ybUlkJywgY191aW50MTYpLA0KPiANCj4gLSAgICAgICAgKCdGb3JtU2V0R3VpZCcsIEVG SV9HVUlEKSwNCj4gDQo+IC0gICAgICAgICgnRGV2aWNlUGF0aCcsIGNfdWludDE2KSwNCj4gDQo+ IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfVFlQRV9WQUxV RShVbmlvbik6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBb DQo+IA0KPiAtICAgICAgICAoJ3U4JywgY191Ynl0ZSksDQo+IA0KPiAtICAgICAgICAoJ3UxNics IGNfdWludDE2KSwNCj4gDQo+IC0gICAgICAgICgndTMyJywgY191aW50MzIpLA0KPiANCj4gLSAg ICAgICAgKCd1NjQnLCBjX3VpbnQ2NCksDQo+IA0KPiAtICAgICAgICAoJ2InLCBjX2Jvb2wpLA0K PiANCj4gLSAgICAgICAgKCd0aW1lJywgRUZJX0hJSV9USU1FKSwNCj4gDQo+IC0gICAgICAgICgn ZGF0ZScsIEVGSV9ISUlfREFURSksDQo+IA0KPiAtICAgICAgICAoJ3N0cmluZycsIGNfdWludDE2 KSwNCj4gDQo+IC0gICAgICAgICgncmVmJywgRUZJX0hJSV9SRUYpLA0KPiANCj4gLSAgICBdDQo+ IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9PTkVfT0ZfT1BUSU9OKFN0cnVj dHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+ IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAg ICAgICgnT3B0aW9uJywgY191aW50MTYpLA0KPiANCj4gLSAgICAgICAgKCdGbGFncycsIGNfdWJ5 dGUpLA0KPiANCj4gLSAgICAgICAgKCdUeXBlJywgY191Ynl0ZSksDQo+IA0KPiAtICAgICAgICAo J1ZhbHVlJywgRUZJX0lGUl9UWVBFX1ZBTFVFKSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiAN Cj4gLWRlZiBSZWZpbmVfRUZJX0lGUl9PTkVfT0ZfT1BUSU9OKE51bXMpOg0KPiANCj4gLSAgICBj bGFzcyBFRklfSUZSX09ORV9PRl9PUFRJT04oU3RydWN0dXJlKToNCj4gDQo+IC0gICAgICAgIF9w YWNrXyA9IDENCj4gDQo+IC0gICAgICAgIF9maWVsZHNfID0gWw0KPiANCj4gLSAgICAgICAgICAg ICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiANCj4gLSAgICAgICAgICAgICgnT3B0 aW9uJywgY191aW50MTYpLA0KPiANCj4gLSAgICAgICAgICAgICgnRmxhZ3MnLCBjX3VieXRlKSwN Cj4gDQo+IC0gICAgICAgICAgICAoJ1R5cGUnLCBjX3VieXRlKSwNCj4gDQo+IC0gICAgICAgICAg ICAoJ1ZhbHVlJywgRUZJX0lGUl9UWVBFX1ZBTFVFICogTnVtcyksDQo+IA0KPiAtICAgICAgICBd DQo+IA0KPiAtICAgIHJldHVybiBFRklfSUZSX09ORV9PRl9PUFRJT04NCj4gDQo+IC0NCj4gDQo+ IC0NCj4gDQo+IC1FRklfSUZSX09QVElPTl9ERUZBVUxUID0gMHgxMA0KPiANCj4gLUVGSV9JRlJf T1BUSU9OX0RFRkFVTFRfTUZHID0gMHgyMA0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNz IEVGSV9JRlJfU1VQUFJFU1NfSUYoU3RydWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0K PiANCj4gLSAgICBfZmllbGRzXyA9IFsNCj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJX0lG Ul9PUF9IRUFERVIpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xh c3MgRUZJX0lGUl9MT0NLRUQoU3RydWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiAN Cj4gLSAgICBfZmllbGRzXyA9IFsNCj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9P UF9IRUFERVIpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3Mg RUZJX0lGUl9BQ1RJT04oU3RydWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4g LSAgICBfZmllbGRzXyA9IFsNCj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9PUF9I RUFERVIpLA0KPiANCj4gLSAgICAgICAgKCdRdWVzdGlvbicsIEVGSV9JRlJfUVVFU1RJT05fSEVB REVSKSwNCj4gDQo+IC0gICAgICAgICgnUXVlc3Rpb25Db25maWcnLCBjX3VpbnQxNiksDQo+IA0K PiAtICAgIF0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklfSUZSX1JFRihTdHJ1 Y3R1cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9maWVsZHNfID0gWw0K PiANCj4gLSAgICAgICAgKCdIZWFkZXInLCBFRklfSUZSX09QX0hFQURFUiksDQo+IA0KPiAtICAg ICAgICAoJ1F1ZXN0aW9uJywgRUZJX0lGUl9RVUVTVElPTl9IRUFERVIpLA0KPiANCj4gLSAgICAg ICAgKCdGb3JtSWQnLCBjX3VpbnQxNiksDQo+IA0KPiAtICAgIF0NCj4gDQo+IC0NCj4gDQo+IC0N Cj4gDQo+IC1jbGFzcyBFRklfSUZSX1JFRjIoU3RydWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tf ID0gMQ0KPiANCj4gLSAgICBfZmllbGRzXyA9IFsNCj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywg RUZJX0lGUl9PUF9IRUFERVIpLA0KPiANCj4gLSAgICAgICAgKCdRdWVzdGlvbicsIEVGSV9JRlJf UVVFU1RJT05fSEVBREVSKSwNCj4gDQo+IC0gICAgICAgICgnRm9ybUlkJywgY191aW50MTYpLA0K PiANCj4gLSAgICAgICAgKCdRdWVzdGlvbklkJywgY191aW50MTYpLA0KPiANCj4gLSAgICBdDQo+ IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9SRUYzKFN0cnVjdHVyZSk6DQo+ IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAg ICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgICAgICgnUXVl c3Rpb24nLCBFRklfSUZSX1FVRVNUSU9OX0hFQURFUiksDQo+IA0KPiAtICAgICAgICAoJ0Zvcm1J ZCcsIGNfdWludDE2KSwNCj4gDQo+IC0gICAgICAgICgnUXVlc3Rpb25JZCcsIGNfdWludDE2KSwN Cj4gDQo+IC0gICAgICAgICgnRm9ybVNldElkJywgRUZJX0dVSUQpLA0KPiANCj4gLSAgICBdDQo+ IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9SRUY0KFN0cnVjdHVyZSk6DQo+ IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAg ICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgICAgICgnUXVl c3Rpb24nLCBFRklfSUZSX1FVRVNUSU9OX0hFQURFUiksDQo+IA0KPiAtICAgICAgICAoJ0Zvcm1J ZCcsIGNfdWludDE2KSwNCj4gDQo+IC0gICAgICAgICgnUXVlc3Rpb25JZCcsIGNfdWludDE2KSwN Cj4gDQo+IC0gICAgICAgICgnRm9ybVNldElkJywgRUZJX0dVSUQpLA0KPiANCj4gLSAgICAgICAg KCdEZXZpY2VQYXRoJywgY191aW50MTYpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAt DQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9SRUY1KFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNr XyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcics IEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgICAgICgnUXVlc3Rpb24nLCBFRklfSUZS X1FVRVNUSU9OX0hFQURFUiksDQo+IA0KPiAtICAgIF0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+ IC1jbGFzcyBFRklfSUZSX1JFU0VUX0JVVFRPTihTdHJ1Y3R1cmUpOg0KPiANCj4gLSAgICBfcGFj a18gPSAxDQo+IA0KPiAtICAgIF9maWVsZHNfID0gWw0KPiANCj4gLSAgICAgICAgKCdIZWFkZXIn LCBFRklfSUZSX09QX0hFQURFUiksDQo+IA0KPiAtICAgICAgICAoJ1N0YXRlbWVudCcsIEVGSV9J RlJfU1RBVEVNRU5UX0hFQURFUiksDQo+IA0KPiAtICAgICAgICAoJ0RlZmF1bHRJZCcsIGNfdWlu dDE2KSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9J RlJfTk9fU1VCTUlUX0lGKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+ IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1Bf SEVBREVSKSwNCj4gDQo+IC0gICAgICAgICgnRXJyb3InLCBjX3VpbnQxNiksDQo+IA0KPiAtICAg IF0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklfSUZSX0lOQ09OU0lTVEVOVF9J RihTdHJ1Y3R1cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9maWVsZHNf ID0gWw0KPiANCj4gLSAgICAgICAgKCdIZWFkZXInLCBFRklfSUZSX09QX0hFQURFUiksDQo+IA0K PiAtICAgICAgICAoJ0Vycm9yJywgY191aW50MTYpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+ IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9FUV9JRF9WQUwoU3RydWN0dXJlKToNCj4gDQo+ IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBfZmllbGRzXyA9IFsNCj4gDQo+IC0gICAgICAg ICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiANCj4gLSAgICAgICAgKCdRdWVzdGlv bklkJywgY191aW50MTYpLA0KPiANCj4gLSAgICAgICAgKCdWYWx1ZScsIGNfdWludDE2KSwNCj4g DQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfRVFfSURf SUQoU3RydWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBfZmllbGRz XyA9IFsNCj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiAN Cj4gLSAgICAgICAgKCdRdWVzdGlvbklkMScsIGNfdWludDE2KSwNCj4gDQo+IC0gICAgICAgICgn UXVlc3Rpb25JZDInLCBjX3VpbnQxNiksDQo+IA0KPiAtICAgIF0NCj4gDQo+IC0NCj4gDQo+IC1j bGFzcyBFRklfSUZSX0VRX0lEX1ZBTF9MSVNUKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNr XyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcics IEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgICAgICgnUXVlc3Rpb25JZCcsIGNfdWlu dDE2KSwNCj4gDQo+IC0gICAgICAgICgnTGlzdExlbmd0aCcsIGNfdWludDE2KSwNCj4gDQo+IC0g ICAgICAgICgnVmFsdWVMaXN0JywgY191aW50MTYpLCAgIw0KPiANCj4gLSAgICBdDQo+IA0KPiAt DQo+IA0KPiAtDQo+IA0KPiAtZGVmIFJlZmluZV9FRklfSUZSX0VRX0lEX1ZBTF9MSVNUKE51bXMp Og0KPiANCj4gLSAgICBjbGFzcyBFRklfSUZSX0VRX0lEX1ZBTF9MSVNUKFN0cnVjdHVyZSk6DQo+ IA0KPiAtICAgICAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgICAgICBfZmllbGRzXyA9IFsNCj4g DQo+IC0gICAgICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0g ICAgICAgICAgICAoJ1F1ZXN0aW9uSWQnLCBjX3VpbnQxNiksDQo+IA0KPiAtICAgICAgICAgICAg KCdMaXN0TGVuZ3RoJywgY191aW50MTYpLA0KPiANCj4gLSAgICAgICAgICAgICgnVmFsdWVMaXN0 JywgY191aW50MTYgKiBOdW1zKSwgICMNCj4gDQo+IC0gICAgICAgIF0NCj4gDQo+IC0gICAgcmV0 dXJuIEVGSV9JRlJfRVFfSURfVkFMX0xJU1QNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFz cyBFRklfSUZSX0FORChTdHJ1Y3R1cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAt ICAgIF9maWVsZHNfID0gWw0KPiANCj4gLSAgICAgICAgKCdIZWFkZXInLCBFRklfSUZSX09QX0hF QURFUiksDQo+IA0KPiAtICAgIF0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklf SUZSX09SKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2Zp ZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwN Cj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfTk9U KFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18g PSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+ IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfR1JBWV9PVVRf SUYoU3RydWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBfZmllbGRz XyA9IFsNCj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiAN Cj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9EQVRFKFN0 cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBb DQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0g ICAgICAgICgnUXVlc3Rpb24nLCBFRklfSUZSX1FVRVNUSU9OX0hFQURFUiksDQo+IA0KPiAtICAg ICAgICAoJ0ZsYWdzJywgY191Ynl0ZSksDQo+IA0KPiAtICAgIF0NCj4gDQo+IC0NCj4gDQo+IC0N Cj4gDQo+IC1FRklfUUZfREFURV9ZRUFSX1NVUFBSRVNTID0gMHgwMQ0KPiANCj4gLUVGSV9RRl9E QVRFX01PTlRIX1NVUFBSRVNTID0gMHgwMg0KPiANCj4gLUVGSV9RRl9EQVRFX0RBWV9TVVBQUkVT UyA9IDB4MDQNCj4gDQo+IC0NCj4gDQo+IC1FRklfUUZfREFURV9TVE9SQUdFID0gMHgzMA0KPiAN Cj4gLVFGX0RBVEVfU1RPUkFHRV9OT1JNQUwgPSAweDAwDQo+IA0KPiAtUUZfREFURV9TVE9SQUdF X1RJTUUgPSAweDEwDQo+IA0KPiAtUUZfREFURV9TVE9SQUdFX1dBS0VVUCA9IDB4MjANCj4gDQo+ IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklfSUZSX1RJTUUoU3RydWN0dXJlKToNCj4gDQo+ IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBfZmllbGRzXyA9IFsNCj4gDQo+IC0gICAgICAg ICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiANCj4gLSAgICAgICAgKCdRdWVzdGlv bicsIEVGSV9JRlJfUVVFU1RJT05fSEVBREVSKSwNCj4gDQo+IC0gICAgICAgICgnRmxhZ3MnLCBj X3VieXRlKSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLVFGX1RJTUVf SE9VUl9TVVBQUkVTUyA9IDB4MDENCj4gDQo+IC1RRl9USU1FX01JTlVURV9TVVBQUkVTUyA9IDB4 MDINCj4gDQo+IC1RRl9USU1FX1NFQ09ORF9TVVBQUkVTUyA9IDB4MDQNCj4gDQo+IC1RRl9USU1F X1NUT1JBR0UgPSAweDMwDQo+IA0KPiAtUUZfVElNRV9TVE9SQUdFX05PUk1BTCA9IDB4MDANCj4g DQo+IC1RRl9USU1FX1NUT1JBR0VfVElNRSA9IDB4MTANCj4gDQo+IC1RRl9USU1FX1NUT1JBR0Vf V0FLRVVQID0gMHgyMA0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfU1RS SU5HKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxk c18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4g DQo+IC0gICAgICAgICgnUXVlc3Rpb24nLCBFRklfSUZSX1FVRVNUSU9OX0hFQURFUiksDQo+IA0K PiAtICAgICAgICAoJ01pblNpemUnLCBjX3VieXRlKSwNCj4gDQo+IC0gICAgICAgICgnTWF4U2l6 ZScsIGNfdWJ5dGUpLA0KPiANCj4gLSAgICAgICAgKCdGbGFncycsIGNfdWJ5dGUpLA0KPiANCj4g LSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9SRUZSRVNIKFN0 cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBb DQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0g ICAgICAgICgnUmVmcmVzaEludGVydmFsJywgY191Ynl0ZSksDQo+IA0KPiAtICAgIF0NCj4gDQo+ IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklfSUZSX0RJU0FCTEVfSUYoU3RydWN0dXJlKToN Cj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBfZmllbGRzXyA9IFsNCj4gDQo+IC0g ICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiANCj4gLSAgICBdDQo+IA0K PiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9UT19MT1dFUihTdHJ1Y3R1cmUpOg0K PiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9maWVsZHNfID0gWw0KPiANCj4gLSAg ICAgICAgKCdIZWFkZXInLCBFRklfSUZSX09QX0hFQURFUiksDQo+IA0KPiAtICAgIF0NCj4gDQo+ IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklfSUZSX1RPX1VQUEVSKFN0cnVjdHVyZSk6DQo+ IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAg ICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgXQ0KPiANCj4g LQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfTUFQKFN0cnVjdHVyZSk6DQo+IA0KPiAt ICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAo J0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiAN Cj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfT1JERVJFRF9MSVNUKFN0cnVjdHVyZSk6DQo+IA0K PiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAg ICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgICAgICgnUXVlc3Rp b24nLCBFRklfSUZSX1FVRVNUSU9OX0hFQURFUiksDQo+IA0KPiAtICAgICAgICAoJ01heENvbnRh aW5lcnMnLCBjX3VieXRlKSwNCj4gDQo+IC0gICAgICAgICgnRmxhZ3MnLCBjX3VieXRlKSwNCj4g DQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLUVGSV9JRlJfVU5JUVVFX1NFVCA9 IDB4MDENCj4gDQo+IC1FRklfSUZSX05PX0VNUFRZX1NFVCA9IDB4MDINCj4gDQo+IC0NCj4gDQo+ IC0NCj4gDQo+IC1jbGFzcyBFRklfSUZSX1ZBUlNUT1JFX0RFVklDRShTdHJ1Y3R1cmUpOg0KPiAN Cj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9maWVsZHNfID0gWw0KPiANCj4gLSAgICAg ICAgKCdIZWFkZXInLCBFRklfSUZSX09QX0hFQURFUiksDQo+IA0KPiAtICAgICAgICAoJ0Rldmlj ZVBhdGgnLCBjX3VpbnQxNiksDQo+IA0KPiAtICAgIF0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+ IC1jbGFzcyBFRklfSUZSX1ZFUlNJT04oU3RydWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0g MQ0KPiANCj4gLSAgICBfZmllbGRzXyA9IFsNCj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJ X0lGUl9PUF9IRUFERVIpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAt Y2xhc3MgRUZJX0lGUl9FTkQoU3RydWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiAN Cj4gLSAgICBfZmllbGRzXyA9IFsNCj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9P UF9IRUFERVIpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3Mg RUZJX0lGUl9NQVRDSChTdHJ1Y3R1cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAt ICAgIF9maWVsZHNfID0gWw0KPiANCj4gLSAgICAgICAgKCdIZWFkZXInLCBFRklfSUZSX09QX0hF QURFUiksDQo+IA0KPiAtICAgIF0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklf SUZSX0dFVChTdHJ1Y3R1cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9m aWVsZHNfID0gWw0KPiANCj4gLSAgICAgICAgKCdIZWFkZXInLCBFRklfSUZSX09QX0hFQURFUiks DQo+IA0KPiAtICAgICAgICAoJ1ZhclN0b3JlSWQnLCBjX3VpbnQxNiksDQo+IA0KPiAtICAgICAg ICAoJ1ZhclN0b3JlSW5mbycsIFZhclN0b3JlSW5mb05vZGUpLCAgIyMjIyMjIyMjIw0KPiANCj4g LSAgICAgICAgKCdWYXJTdG9yZVR5cGUnLCBjX3VieXRlKSwNCj4gDQo+IC0gICAgXQ0KPiANCj4g LQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfU0VUKFN0cnVjdHVyZSk6DQo+IA0KPiAt ICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAo J0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgICAgICgnVmFyU3RvcmVJ ZCcsIGNfdWludDE2KSwNCj4gDQo+IC0gICAgICAgICgnVmFyU3RvcmVJbmZvJywgVmFyU3RvcmVJ bmZvTm9kZSksICAjIyMjIyMjIyMjDQo+IA0KPiAtICAgICAgICAoJ1ZhclN0b3JlVHlwZScsIGNf dWJ5dGUpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJ X0lGUl9SRUFEKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAg X2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVS KSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJf V1JJVEUoU3RydWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBfZmll bGRzXyA9IFsNCj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFERVIpLA0K PiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9FUVVB TChTdHJ1Y3R1cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9maWVsZHNf ID0gWw0KPiANCj4gLSAgICAgICAgKCdIZWFkZXInLCBFRklfSUZSX09QX0hFQURFUiksDQo+IA0K PiAtICAgIF0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklfSUZSX05PVF9FUVVB TChTdHJ1Y3R1cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9maWVsZHNf ID0gWw0KPiANCj4gLSAgICAgICAgKCdIZWFkZXInLCBFRklfSUZSX09QX0hFQURFUiksDQo+IA0K PiAtICAgIF0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklfSUZSX0dSRUFURVJf VEhBTihTdHJ1Y3R1cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9maWVs ZHNfID0gWw0KPiANCj4gLSAgICAgICAgKCdIZWFkZXInLCBFRklfSUZSX09QX0hFQURFUiksDQo+ IA0KPiAtICAgIF0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklfSUZSX0dSRUFU RVJfRVFVQUwoU3RydWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBf ZmllbGRzXyA9IFsNCj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFERVIp LA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9M RVNTX0VRVUFMKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAg X2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVS KSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJf TEVTU19USEFOKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAg X2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVS KSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJf QklUV0lTRV9BTkQoU3RydWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAg ICBfZmllbGRzXyA9IFsNCj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFE RVIpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lG Ul9CSVRXSVNFX09SKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0g ICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVB REVSKSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9J RlJfQklUV0lTRV9OT1QoU3RydWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4g LSAgICBfZmllbGRzXyA9IFsNCj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9PUF9I RUFERVIpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJ X0lGUl9TSElGVF9MRUZUKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+ IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1Bf SEVBREVSKSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVG SV9JRlJfU0hJRlRfUklHSFQoU3RydWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiAN Cj4gLSAgICBfZmllbGRzXyA9IFsNCj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9P UF9IRUFERVIpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3Mg RUZJX0lGUl9BREQoU3RydWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAg ICBfZmllbGRzXyA9IFsNCj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFE RVIpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lG Ul9TVUJUUkFDVChTdHJ1Y3R1cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAg IF9maWVsZHNfID0gWw0KPiANCj4gLSAgICAgICAgKCdIZWFkZXInLCBFRklfSUZSX09QX0hFQURF UiksDQo+IA0KPiAtICAgIF0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklfSUZS X01VTFRJUExZKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAg X2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVS KSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJf RElWSURFKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2Zp ZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwN Cj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfTU9E VUxPKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxk c18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4g DQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfUlVMRV9S RUYoU3RydWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBfZmllbGRz XyA9IFsNCj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiAN Cj4gLSAgICAgICAgKCdSdWxlSWQnLCBjX3VieXRlKSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0K PiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfUVVFU1RJT05fUkVGMShTdHJ1Y3R1cmUpOg0K PiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9maWVsZHNfID0gWw0KPiANCj4gLSAg ICAgICAgKCdIZWFkZXInLCBFRklfSUZSX09QX0hFQURFUiksDQo+IA0KPiAtICAgICAgICAoJ1F1 ZXN0aW9uSWQnLCBjX3VpbnQxNiksDQo+IA0KPiAtICAgIF0NCj4gDQo+IC0NCj4gDQo+IC0NCj4g DQo+IC1jbGFzcyBFRklfSUZSX1FVRVNUSU9OX1JFRjIoU3RydWN0dXJlKToNCj4gDQo+IC0gICAg X3BhY2tfID0gMQ0KPiANCj4gLSAgICBfZmllbGRzXyA9IFsNCj4gDQo+IC0gICAgICAgICgnSGVh ZGVyJywgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAt DQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9RVUVTVElPTl9SRUYzKFN0cnVjdHVyZSk6DQo+IA0KPiAt ICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAo J0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiAN Cj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfUVVFU1RJT05fUkVGM18yKFN0cnVjdHVyZSk6DQo+ IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAg ICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgICAgICgnRGV2 aWNlUGF0aCcsIGNfdWludDE2KSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiAN Cj4gLWNsYXNzIEVGSV9JRlJfUVVFU1RJT05fUkVGM18zKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAg IF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hl YWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgICAgICgnRGV2aWNlUGF0aCcs IGNfdWludDE2KSwNCj4gDQo+IC0gICAgICAgICgnR3VpZCcsIEVGSV9HVUlEKSwNCj4gDQo+IC0g ICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfVUlOVDgoU3RydWN0 dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBfZmllbGRzXyA9IFsNCj4g DQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiANCj4gLSAgICAg ICAgKCdWYWx1ZScsIGNfdWJ5dGUpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+ IA0KPiAtY2xhc3MgRUZJX0lGUl9VSU5UMTYoU3RydWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tf ID0gMQ0KPiANCj4gLSAgICBfZmllbGRzXyA9IFsNCj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywg RUZJX0lGUl9PUF9IRUFERVIpLA0KPiANCj4gLSAgICAgICAgKCdWYWx1ZScsIGNfdWludDE2KSwN Cj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfVUlO VDMyKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxk c18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4g DQo+IC0gICAgICAgICgnVmFsdWUnLCBjX3VpbnQzMiksDQo+IA0KPiAtICAgIF0NCj4gDQo+IC0N Cj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklfSUZSX1VJTlQ2NChTdHJ1Y3R1cmUpOg0KPiANCj4g LSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9maWVsZHNfID0gWw0KPiANCj4gLSAgICAgICAg KCdIZWFkZXInLCBFRklfSUZSX09QX0hFQURFUiksDQo+IA0KPiAtICAgICAgICAoJ1ZhbHVlJywg Y191aW50NjQpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3Mg RUZJX0lGUl9UUlVFKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0g ICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVB REVSKSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9J RlJfRkFMU0UoU3RydWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBf ZmllbGRzXyA9IFsNCj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFERVIp LA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9U T19VSU5UKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2Zp ZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwN Cj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfVE9f U1RSSU5HKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2Zp ZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwN Cj4gDQo+IC0gICAgICAgICgnRm9ybWF0JywgY191Ynl0ZSksDQo+IA0KPiAtICAgIF0NCj4gDQo+ IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklfSUZSX1RPX0JPT0xFQU4oU3RydWN0dXJlKToN Cj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBfZmllbGRzXyA9IFsNCj4gDQo+IC0g ICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiANCj4gLSAgICBdDQo+IA0K PiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9NSUQoU3RydWN0dXJlKToNCj4gDQo+ IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBfZmllbGRzXyA9IFsNCj4gDQo+IC0gICAgICAg ICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+ IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9GSU5EKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAg IF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hl YWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgICAgICgnRm9ybWF0JywgY191 Ynl0ZSksDQo+IA0KPiAtICAgIF0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklf SUZSX1RPS0VOKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAg X2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVS KSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJf U1RSSU5HX1JFRjEoU3RydWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAg ICBfZmllbGRzXyA9IFsNCj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFE RVIpLA0KPiANCj4gLSAgICAgICAgKCdTdHJpbmdJZCcsIGNfdWludDE2KSwNCj4gDQo+IC0gICAg XQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfU1RSSU5HX1JFRjIoU3Ry dWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBfZmllbGRzXyA9IFsN Cj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiANCj4gLSAg ICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9DT05ESVRJT05BTChT dHJ1Y3R1cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9maWVsZHNfID0g Ww0KPiANCj4gLSAgICAgICAgKCdIZWFkZXInLCBFRklfSUZSX09QX0hFQURFUiksDQo+IA0KPiAt ICAgIF0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklfSUZSX1pFUk8oU3RydWN0 dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBfZmllbGRzXyA9IFsNCj4g DQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiANCj4gLSAgICBd DQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9PTkUoU3RydWN0dXJlKToN Cj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBfZmllbGRzXyA9IFsNCj4gDQo+IC0g ICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiANCj4gLSAgICBdDQo+IA0K PiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9PTkVTKFN0cnVjdHVyZSk6DQo+IA0K PiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAg ICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0K PiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfVU5ERUZJTkVEKFN0cnVjdHVyZSk6DQo+IA0K PiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAg ICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0K PiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfTEVOR1RIKFN0cnVjdHVyZSk6DQo+IA0KPiAt ICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAo J0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiAN Cj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfRFVQKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9w YWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRl cicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiANCj4gLQ0K PiANCj4gLWNsYXNzIEVGSV9JRlJfVEhJUyhTdHJ1Y3R1cmUpOg0KPiANCj4gLSAgICBfcGFja18g PSAxDQo+IA0KPiAtICAgIF9maWVsZHNfID0gWw0KPiANCj4gLSAgICAgICAgKCdIZWFkZXInLCBF RklfSUZSX09QX0hFQURFUiksDQo+IA0KPiAtICAgIF0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+ IC1FRklfSUZSX0ZMQUdTX0ZJUlNUX01BVENISU5HID0gMHgwMA0KPiANCj4gLUVGSV9JRlJfRkxB R1NfRklSU1RfTk9OX01BVENISU5HID0gMHgwMQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9J RlJfU1BBTihTdHJ1Y3R1cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9m aWVsZHNfID0gWw0KPiANCj4gLSAgICAgICAgKCdIZWFkZXInLCBFRklfSUZSX09QX0hFQURFUiks DQo+IA0KPiAtICAgICAgICAoJ0ZsYWdzJywgY191Ynl0ZSksDQo+IA0KPiAtICAgIF0NCj4gDQo+ IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklfSUZSX1ZBTFVFKFN0cnVjdHVyZSk6DQo+IA0K PiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAg ICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0K PiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfREVGQVVMVChTdHJ1Y3R1cmUpOg0KPiANCj4g LSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9maWVsZHNfID0gWw0KPiANCj4gLSAgICAgICAg KCdIZWFkZXInLCBFRklfSUZSX09QX0hFQURFUiksDQo+IA0KPiAtICAgICAgICAoJ0RlZmF1bHRJ ZCcsIGNfdWludDE2KSwNCj4gDQo+IC0gICAgICAgICgnVHlwZScsIGNfdWJ5dGUpLA0KPiANCj4g LSAgICAgICAgKCdWYWx1ZScsIEVGSV9JRlJfVFlQRV9WQUxVRSksDQo+IA0KPiAtICAgIF0NCj4g DQo+IC0NCj4gDQo+IC1kZWYgUmVmaW5lX0VGSV9JRlJfREVGQVVMVChOdW1zKToNCj4gDQo+IC0g ICAgY2xhc3MgRUZJX0lGUl9ERUZBVUxUKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgICAgICBfcGFj a18gPSAxDQo+IA0KPiAtICAgICAgICBfZmllbGRzXyA9IFsNCj4gDQo+IC0gICAgICAgICAgICAo J0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgICAgICAgICAoJ0RlZmF1 bHRJZCcsIGNfdWludDE2KSwNCj4gDQo+IC0gICAgICAgICAgICAoJ1R5cGUnLCBjX3VieXRlKSwN Cj4gDQo+IC0gICAgICAgICAgICAoJ1ZhbHVlJywgRUZJX0lGUl9UWVBFX1ZBTFVFICogTnVtcyks DQo+IA0KPiAtICAgICAgICBdDQo+IA0KPiAtICAgIHJldHVybiBFRklfSUZSX0RFRkFVTFQNCj4g DQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklfSUZSX0RFRkFVTFRfMihTdHJ1Y3R1cmUp Og0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9maWVsZHNfID0gWw0KPiANCj4g LSAgICAgICAgKCdIZWFkZXInLCBFRklfSUZSX09QX0hFQURFUiksDQo+IA0KPiAtICAgICAgICAo J0RlZmF1bHRJZCcsIGNfdWludDE2KSwNCj4gDQo+IC0gICAgICAgICgnVHlwZScsIGNfdWJ5dGUp LA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9GT1JNX01BUChT dHJ1Y3R1cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9maWVsZHNfID0g Ww0KPiANCj4gLSAgICAgICAgKCdIZWFkZXInLCBFRklfSUZSX09QX0hFQURFUiksDQo+IA0KPiAt ICAgICAgICAoJ0Zvcm1JZCcsIGNfdWludDE2KSwNCj4gDQo+IC0gICAgXQ0KPiANCj4gLQ0KPiAN Cj4gLWNsYXNzIEVGSV9JRlJfRk9STV9NQVBfTUVUSE9EKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAg IF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ01l dGhvZFRpdGxlJywgY191aW50MTYpLA0KPiANCj4gLSAgICAgICAgKCdNZXRob2RJZGVudGlmaWVy JywgRUZJX0dVSUQpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lG Ul9DQVRFTkFURShTdHJ1Y3R1cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAg IF9maWVsZHNfID0gWw0KPiANCj4gLSAgICAgICAgKCdIZWFkZXInLCBFRklfSUZSX09QX0hFQURF UiksDQo+IA0KPiAtICAgIF0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklfSUZS X1NFQ1VSSVRZKFN0cnVjdHVyZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAg X2ZpZWxkc18gPSBbDQo+IA0KPiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVS KSwNCj4gDQo+IC0gICAgICAgICgnUGVybWlzc2lvbnMnLCBFRklfR1VJRCksDQo+IA0KPiAtICAg IF0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklfSUZSX01PREFMX1RBRyhTdHJ1 Y3R1cmUpOg0KPiANCj4gLSAgICBfcGFja18gPSAxDQo+IA0KPiAtICAgIF9maWVsZHNfID0gWw0K PiANCj4gLSAgICAgICAgKCdIZWFkZXInLCBFRklfSUZSX09QX0hFQURFUiksDQo+IA0KPiAtICAg IF0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBFRklfSUZSX1JFRlJFU0hfSUQoU3Ry dWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBfZmllbGRzXyA9IFsN Cj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiANCj4gLSAg ICAgICAgKCdSZWZyZXNoRXZlbnRHcm91cElkJywgRUZJX0dVSUQpLA0KPiANCj4gLSAgICBdDQo+ IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lGUl9XQVJOSU5HX0lGKFN0cnVjdHVy ZSk6DQo+IA0KPiAtICAgIF9wYWNrXyA9IDENCj4gDQo+IC0gICAgX2ZpZWxkc18gPSBbDQo+IA0K PiAtICAgICAgICAoJ0hlYWRlcicsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gDQo+IC0gICAgICAg ICgnV2FybmluZycsIGNfdWludDE2KSwNCj4gDQo+IC0gICAgICAgICgnVGltZU91dCcsIGNfdWJ5 dGUpLA0KPiANCj4gLSAgICBdDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX0lG Ul9NQVRDSDIoU3RydWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBf ZmllbGRzXyA9IFsNCj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFERVIp LA0KPiANCj4gLSAgICAgICAgKCdTeW50YXhUeXBlJywgRUZJX0dVSUQpLA0KPiANCj4gLSAgICBd DQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtRUZJX0lGUl9GT1JNX09QID0gMHgwMQ0KPiANCj4g LUVGSV9JRlJfU1VCVElUTEVfT1AgPSAweDAyDQo+IA0KPiAtRUZJX0lGUl9URVhUX09QID0gMHgw Mw0KPiANCj4gLUVGSV9JRlJfSU1BR0VfT1AgPSAweDA0DQo+IA0KPiAtRUZJX0lGUl9PTkVfT0Zf T1AgPSAweDA1DQo+IA0KPiAtRUZJX0lGUl9DSEVDS0JPWF9PUCA9IDB4MDYNCj4gDQo+IC1FRklf SUZSX05VTUVSSUNfT1AgPSAweDA3DQo+IA0KPiAtRUZJX0lGUl9QQVNTV09SRF9PUCA9IDB4MDgN Cj4gDQo+IC1FRklfSUZSX09ORV9PRl9PUFRJT05fT1AgPSAweDA5DQo+IA0KPiAtRUZJX0lGUl9T VVBQUkVTU19JRl9PUCA9IDB4MEENCj4gDQo+IC1FRklfSUZSX0xPQ0tFRF9PUCA9IDB4MEINCj4g DQo+IC1FRklfSUZSX0FDVElPTl9PUCA9IDB4MEMNCj4gDQo+IC1FRklfSUZSX1JFU0VUX0JVVFRP Tl9PUCA9IDB4MEQNCj4gDQo+IC1FRklfSUZSX0ZPUk1fU0VUX09QID0gMHgwRQ0KPiANCj4gLUVG SV9JRlJfUkVGX09QID0gMHgwRg0KPiANCj4gLUVGSV9JRlJfTk9fU1VCTUlUX0lGX09QID0gMHgx MA0KPiANCj4gLUVGSV9JRlJfSU5DT05TSVNURU5UX0lGX09QID0gMHgxMQ0KPiANCj4gLUVGSV9J RlJfRVFfSURfVkFMX09QID0gMHgxMg0KPiANCj4gLUVGSV9JRlJfRVFfSURfSURfT1AgPSAweDEz DQo+IA0KPiAtRUZJX0lGUl9FUV9JRF9WQUxfTElTVF9PUCA9IDB4MTQNCj4gDQo+IC1FRklfSUZS X0FORF9PUCA9IDB4MTUNCj4gDQo+IC1FRklfSUZSX09SX09QID0gMHgxNg0KPiANCj4gLUVGSV9J RlJfTk9UX09QID0gMHgxNw0KPiANCj4gLUVGSV9JRlJfUlVMRV9PUCA9IDB4MTgNCj4gDQo+IC1F RklfSUZSX0dSQVlfT1VUX0lGX09QID0gMHgxOQ0KPiANCj4gLUVGSV9JRlJfREFURV9PUCA9IDB4 MUENCj4gDQo+IC1FRklfSUZSX1RJTUVfT1AgPSAweDFCDQo+IA0KPiAtRUZJX0lGUl9TVFJJTkdf T1AgPSAweDFDDQo+IA0KPiAtRUZJX0lGUl9SRUZSRVNIX09QID0gMHgxRA0KPiANCj4gLUVGSV9J RlJfRElTQUJMRV9JRl9PUCA9IDB4MUUNCj4gDQo+IC1FRklfSUZSX1RPX0xPV0VSX09QID0gMHgy MA0KPiANCj4gLUVGSV9JRlJfVE9fVVBQRVJfT1AgPSAweDIxDQo+IA0KPiAtRUZJX0lGUl9NQVBf T1AgPSAweDIyDQo+IA0KPiAtRUZJX0lGUl9PUkRFUkVEX0xJU1RfT1AgPSAweDIzDQo+IA0KPiAt RUZJX0lGUl9WQVJTVE9SRV9PUCA9IDB4MjQNCj4gDQo+IC1FRklfSUZSX1ZBUlNUT1JFX05BTUVf VkFMVUVfT1AgPSAweDI1DQo+IA0KPiAtRUZJX0lGUl9WQVJTVE9SRV9FRklfT1AgPSAweDI2DQo+ IA0KPiAtRUZJX0lGUl9WQVJTVE9SRV9ERVZJQ0VfT1AgPSAweDI3DQo+IA0KPiAtRUZJX0lGUl9W RVJTSU9OX09QID0gMHgyOA0KPiANCj4gLUVGSV9JRlJfRU5EX09QID0gMHgyOQ0KPiANCj4gLUVG SV9JRlJfTUFUQ0hfT1AgPSAweDJBDQo+IA0KPiAtRUZJX0lGUl9HRVRfT1AgPSAweDJCDQo+IA0K PiAtRUZJX0lGUl9TRVRfT1AgPSAweDJDDQo+IA0KPiAtRUZJX0lGUl9SRUFEX09QID0gMHgyRA0K PiANCj4gLUVGSV9JRlJfV1JJVEVfT1AgPSAweDJFDQo+IA0KPiAtRUZJX0lGUl9FUVVBTF9PUCA9 IDB4MkYNCj4gDQo+IC1FRklfSUZSX05PVF9FUVVBTF9PUCA9IDB4MzANCj4gDQo+IC1FRklfSUZS X0dSRUFURVJfVEhBTl9PUCA9IDB4MzENCj4gDQo+IC1FRklfSUZSX0dSRUFURVJfRVFVQUxfT1Ag PSAweDMyDQo+IA0KPiAtRUZJX0lGUl9MRVNTX1RIQU5fT1AgPSAweDMzDQo+IA0KPiAtRUZJX0lG Ul9MRVNTX0VRVUFMX09QID0gMHgzNA0KPiANCj4gLUVGSV9JRlJfQklUV0lTRV9BTkRfT1AgPSAw eDM1DQo+IA0KPiAtRUZJX0lGUl9CSVRXSVNFX09SX09QID0gMHgzNg0KPiANCj4gLUVGSV9JRlJf QklUV0lTRV9OT1RfT1AgPSAweDM3DQo+IA0KPiAtRUZJX0lGUl9TSElGVF9MRUZUX09QID0gMHgz OA0KPiANCj4gLUVGSV9JRlJfU0hJRlRfUklHSFRfT1AgPSAweDM5DQo+IA0KPiAtRUZJX0lGUl9B RERfT1AgPSAweDNBDQo+IA0KPiAtRUZJX0lGUl9TVUJUUkFDVF9PUCA9IDB4M0INCj4gDQo+IC1F RklfSUZSX01VTFRJUExZX09QID0gMHgzQw0KPiANCj4gLUVGSV9JRlJfRElWSURFX09QID0gMHgz RA0KPiANCj4gLUVGSV9JRlJfTU9EVUxPX09QID0gMHgzRQ0KPiANCj4gLUVGSV9JRlJfUlVMRV9S RUZfT1AgPSAweDNGDQo+IA0KPiAtRUZJX0lGUl9RVUVTVElPTl9SRUYxX09QID0gMHg0MA0KPiAN Cj4gLUVGSV9JRlJfUVVFU1RJT05fUkVGMl9PUCA9IDB4NDENCj4gDQo+IC1FRklfSUZSX1VJTlQ4 X09QID0gMHg0Mg0KPiANCj4gLUVGSV9JRlJfVUlOVDE2X09QID0gMHg0Mw0KPiANCj4gLUVGSV9J RlJfVUlOVDMyX09QID0gMHg0NA0KPiANCj4gLUVGSV9JRlJfVUlOVDY0X09QID0gMHg0NQ0KPiAN Cj4gLUVGSV9JRlJfVFJVRV9PUCA9IDB4NDYNCj4gDQo+IC1FRklfSUZSX0ZBTFNFX09QID0gMHg0 Nw0KPiANCj4gLUVGSV9JRlJfVE9fVUlOVF9PUCA9IDB4NDgNCj4gDQo+IC1FRklfSUZSX1RPX1NU UklOR19PUCA9IDB4NDkNCj4gDQo+IC1FRklfSUZSX1RPX0JPT0xFQU5fT1AgPSAweDRBDQo+IA0K PiAtRUZJX0lGUl9NSURfT1AgPSAweDRCDQo+IA0KPiAtRUZJX0lGUl9GSU5EX09QID0gMHg0Qw0K PiANCj4gLUVGSV9JRlJfVE9LRU5fT1AgPSAweDREDQo+IA0KPiAtRUZJX0lGUl9TVFJJTkdfUkVG MV9PUCA9IDB4NEUNCj4gDQo+IC1FRklfSUZSX1NUUklOR19SRUYyX09QID0gMHg0Rg0KPiANCj4g LUVGSV9JRlJfQ09ORElUSU9OQUxfT1AgPSAweDUwDQo+IA0KPiAtRUZJX0lGUl9RVUVTVElPTl9S RUYzX09QID0gMHg1MQ0KPiANCj4gLUVGSV9JRlJfWkVST19PUCA9IDB4NTINCj4gDQo+IC1FRklf SUZSX09ORV9PUCA9IDB4NTMNCj4gDQo+IC1FRklfSUZSX09ORVNfT1AgPSAweDU0DQo+IA0KPiAt RUZJX0lGUl9VTkRFRklORURfT1AgPSAweDU1DQo+IA0KPiAtRUZJX0lGUl9MRU5HVEhfT1AgPSAw eDU2DQo+IA0KPiAtRUZJX0lGUl9EVVBfT1AgPSAweDU3DQo+IA0KPiAtRUZJX0lGUl9USElTX09Q ID0gMHg1OA0KPiANCj4gLUVGSV9JRlJfU1BBTl9PUCA9IDB4NTkNCj4gDQo+IC1FRklfSUZSX1ZB TFVFX09QID0gMHg1QQ0KPiANCj4gLUVGSV9JRlJfREVGQVVMVF9PUCA9IDB4NUINCj4gDQo+IC1F RklfSUZSX0RFRkFVTFRTVE9SRV9PUCA9IDB4NUMNCj4gDQo+IC1FRklfSUZSX0ZPUk1fTUFQX09Q ID0gMHg1RA0KPiANCj4gLUVGSV9JRlJfQ0FURU5BVEVfT1AgPSAweDVFDQo+IA0KPiAtRUZJX0lG Ul9HVUlEX09QID0gMHg1Rg0KPiANCj4gLUVGSV9JRlJfU0VDVVJJVFlfT1AgPSAweDYwDQo+IA0K PiAtRUZJX0lGUl9NT0RBTF9UQUdfT1AgPSAweDYxDQo+IA0KPiAtRUZJX0lGUl9SRUZSRVNIX0lE X09QID0gMHg2Mg0KPiANCj4gLUVGSV9JRlJfV0FSTklOR19JRl9PUCA9IDB4NjMNCj4gDQo+IC1F RklfSUZSX01BVENIMl9PUCA9IDB4NjQNCj4gDQo+IC0NCj4gDQo+IC1Db25kaXRpb25PcHMgPSBb RUZJX0lGUl9OT19TVUJNSVRfSUZfT1AsIEVGSV9JRlJfRElTQUJMRV9JRl9PUCwNCj4gRUZJX0lG Ul9TVVBQUkVTU19JRl9PUCwgRUZJX0lGUl9HUkFZX09VVF9JRl9PUCwNCj4gRUZJX0lGUl9JTkNP TlNJU1RFTlRfSUZfT1BdDQo+IA0KPiAtQmFzaWNEYXRhVHlwZXMgPSBbJ1VJTlQ4JywgJ1VJTlQx NicsICdVSU5UMzInLCAnVUlOVDY0JywgJ0VGSV9ISUlfREFURScsDQo+ICdFRklfSElJX1RJTUUn LCAnRUZJX0hJSV9SRUYnXQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9JRlJfR1VJRF9PUFRJ T05LRVkoU3RydWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBfZmll bGRzXyA9IFsNCj4gDQo+IC0gICAgICAgICgnSGVhZGVyJywgRUZJX0lGUl9PUF9IRUFERVIpLA0K PiANCj4gLSAgICAgICAgKCdHdWlkJywgRUZJX0dVSUQpLA0KPiANCj4gLSAgICAgICAgKCdFeHRl bmRPcENvZGUnLCBjX3VpbnQ4KSwNCj4gDQo+IC0gICAgICAgICgnUXVlc3Rpb25JZCcsIGNfdWlu dDE2KSwNCj4gDQo+IC0gICAgICAgICgnT3B0aW9uVmFsdWUnLCBFRklfSUZSX1RZUEVfVkFMVUUp LA0KPiANCj4gLSAgICAgICAgKCdLZXlWYWx1ZScsIGNfdWludDE2KSwNCj4gDQo+IC0gICAgXQ0K PiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLUVGSV9JRlJfRVhURU5EX09QX09QVElPTktFWSA9IDB4 MA0KPiANCj4gLUVGSV9JRlJfRVhURU5EX09QX1ZBUkVRTkFNRSA9IDB4MQ0KPiANCj4gLQ0KPiAN Cj4gLWNsYXNzIEVGSV9DT01QQVJFX1RZUEUoRW51bSk6DQo+IA0KPiAtICAgIEVRVUFMID0gMA0K PiANCj4gLSAgICBMRVNTX0VRVUFMID0gMQ0KPiANCj4gLSAgICBMRVNTX1RIQU4gPSAyDQo+IA0K PiAtICAgIEdSRUFURVJfVEhBTiA9IDMNCj4gDQo+IC0gICAgR1JFQVRFUl9FUVVBTCA9IDQNCj4g DQo+IFwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KPiBkaWZmIC0tZ2l0IGEvQmFzZVRvb2xz L1NvdXJjZS9QeXRob24vVmZyQ29tcGlsZXIvSWZyQ29tbW9uLnB5DQo+IGIvQmFzZVRvb2xzL1Nv dXJjZS9QeXRob24vVmZyQ29tcGlsZXIvSWZyQ29tbW9uLnB5DQo+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAuLjY5ZTU2NjNmMzINCj4gLS0tIC9kZXYvbnVsbA0KPiAr KysgYi9CYXNlVG9vbHMvU291cmNlL1B5dGhvbi9WZnJDb21waWxlci9JZnJDb21tb24ucHkNCj4g QEAgLTAsMCArMSwxMDAgQEANCj4gKyMjIEBmaWxlDQo+ICsjIFRoaXMgZmlsZSBpcyB1c2VkIHRv IGRlZmluZSBjb21tb24gZnVudGlvbnMuDQo+ICsjDQo+ICsjIENvcHlyaWdodCAoYykgMjAyMi0s IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gKyMgU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gKyMjDQo+ICsNCj4gK2lt cG9ydCBDb21tb24uRWRrTG9nZ2VyIGFzIEVka0xvZ2dlcg0KPiArZnJvbSBWZnJDb21waWxlci5J ZnJDdHlwZXMgaW1wb3J0IEVGSV9HVUlEDQo+ICtmcm9tIENvbW1vbi5CdWlsZFRvb2xFcnJvciBp bXBvcnQgUEFSQU1FVEVSX0lOVkFMSUQNCj4gKw0KPiArIyBFbnVtZXJhdGlvbiBvZiBFRklfU1RB VFVTLg0KPiArUkVUVVJOX1NVQ0NFU1MgPSBFRklfU1VDQ0VTUyA9IDANCj4gK0VGSV9CVUZGRVJf VE9PX1NNQUxMID0gMHg4MDAwMDAwMDAwMDAwMDAwIHwgKDUpDQo+ICtFRklfQUJPUlRFRCA9IDB4 ODAwMDAwMDAwMDAwMDAwMCB8ICgyMSkNCj4gK0VGSV9PVVRfT0ZfUkVTT1VSQ0VTID0gMHg4MDAw MDAwMDAwMDAwMDAwIHwgKDkpDQo+ICtFRklfSU5WQUxJRF9QQVJBTUVURVIgPSAweDgwMDAwMDAw MDAwMDAwMDAgfCAoMikNCj4gK0VGSV9OT1RfRk9VTkQgPSAweDgwMDAwMDAwMDAwMDAwMDAgfCAo MTQpDQo+ICtSRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIgPSAweDgwMDAwMDAwMDAwMDAwMDAgfCAo MikNCj4gK1JFVFVSTl9VTlNVUFBPUlRFRCA9IDB4ODAwMDAwMDAwMDAwMDAwMCB8ICgzKQ0KPiAr DQo+ICtBU0NJSV9HVUlEX0JVRkZFUl9JTkRFWF8xID0gOA0KPiArQVNDSUlfR1VJRF9CVUZGRVJf SU5ERVhfMiA9IDEzDQo+ICtBU0NJSV9HVUlEX0JVRkZFUl9JTkRFWF8zID0gMTgNCj4gK0FTQ0lJ X0dVSURfQlVGRkVSX0lOREVYXzQgPSAyMw0KPiArQVNDSUlfR1VJRF9CVUZGRVJfTUFYX0lOREVY ID0gMzYNCj4gK0dVSURfQlVGRkVSX1ZBTFVFX0xFTiA9IDExDQo+ICsNCj4gKw0KPiArZGVmIEVG SV9FUlJPUihBKToNCj4gKyAgICByZXR1cm4gQSA8IDANCj4gKw0KPiArDQo+ICsjIENvbnZlcnRz IGEgc3RyaW5nIHRvIGFuIEVGSV9HVUlELg0KPiArZGVmIFN0cmluZ1RvR3VpZChBc2NpaUd1aWRC dWZmZXI6IHN0ciwgR3VpZEJ1ZmZlcjogRUZJX0dVSUQpOg0KPiArICAgIERhdGE0ID0gWzBdICog OA0KPiArICAgIGlmIEFzY2lpR3VpZEJ1ZmZlciBpcyBOb25lIG9yIEd1aWRCdWZmZXIgaXMgTm9u ZToNCj4gKyAgICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUg0KPiArICAgIEluZGV4 ID0gMA0KPiArICAgIHdoaWxlIEluZGV4IDwgQVNDSUlfR1VJRF9CVUZGRVJfTUFYX0lOREVYOg0K PiArICAgICAgICBpZiAoDQo+ICsgICAgICAgICAgICBJbmRleCA9PSBBU0NJSV9HVUlEX0JVRkZF Ul9JTkRFWF8xDQo+ICsgICAgICAgICAgICBvciBJbmRleCA9PSBBU0NJSV9HVUlEX0JVRkZFUl9J TkRFWF8yDQo+ICsgICAgICAgICAgICBvciBJbmRleCA9PSBBU0NJSV9HVUlEX0JVRkZFUl9JTkRF WF8zDQo+ICsgICAgICAgICAgICBvciBJbmRleCA9PSBBU0NJSV9HVUlEX0JVRkZFUl9JTkRFWF80 DQo+ICsgICAgICAgICk6DQo+ICsgICAgICAgICAgICBpZiBBc2NpaUd1aWRCdWZmZXJbSW5kZXhd ICE9ICItIjoNCj4gKyAgICAgICAgICAgICAgICBicmVhaw0KPiArICAgICAgICBlbGlmICgNCj4g KyAgICAgICAgICAgIChBc2NpaUd1aWRCdWZmZXJbSW5kZXhdID49ICIwIiBhbmQgQXNjaWlHdWlk QnVmZmVyW0luZGV4XSA8PSAiOSIpDQo+ICsgICAgICAgICAgICBvciAoQXNjaWlHdWlkQnVmZmVy W0luZGV4XSA+PSAiYSIgYW5kIEFzY2lpR3VpZEJ1ZmZlcltJbmRleF0gPD0gImYiKQ0KPiArICAg ICAgICAgICAgb3IgKEFzY2lpR3VpZEJ1ZmZlcltJbmRleF0gPj0gIkEiIGFuZCBBc2NpaUd1aWRC dWZmZXJbSW5kZXhdIDw9ICJGIikNCj4gKyAgICAgICAgKToNCj4gKyAgICAgICAgICAgIEluZGV4 ICs9IDENCj4gKyAgICAgICAgICAgIGNvbnRpbnVlDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAg ICAgICAgICBicmVhaw0KPiArICAgICAgICBJbmRleCArPSAxDQo+ICsgICAgICAgIGNvbnRpbnVl DQo+ICsNCj4gKyAgICBpZiBJbmRleCA8IEFTQ0lJX0dVSURfQlVGRkVSX01BWF9JTkRFWDoNCj4g KyAgICAgICAgRWRrTG9nZ2VyLmVycm9yKCJWZnJDb21waWxlciIsIFBBUkFNRVRFUl9JTlZBTElE LCAiSW52YWxpZCBvcHRpb24NCj4gdmFsdWUiKQ0KPiArICAgICAgICByZXR1cm4gRUZJX0FCT1JU RUQNCj4gKyAgICBJbmRleCA9IEdVSURfQlVGRkVSX1ZBTFVFX0xFTg0KPiArICAgIHRyeToNCj4g KyAgICAgICAgRGF0YTEgPSBpbnQoQXNjaWlHdWlkQnVmZmVyWzA6OF0sIDE2KQ0KPiArICAgICAg ICBEYXRhMiA9IGludChBc2NpaUd1aWRCdWZmZXJbOToxM10sIDE2KQ0KPiArICAgICAgICBEYXRh MyA9IGludChBc2NpaUd1aWRCdWZmZXJbMTQ6MThdLCAxNikNCj4gKyAgICAgICAgRGF0YTRbMF0g PSBpbnQoQXNjaWlHdWlkQnVmZmVyWzE5OjIxXSwgMTYpDQo+ICsgICAgICAgIERhdGE0WzFdID0g aW50KEFzY2lpR3VpZEJ1ZmZlclsyMToyM10sIDE2KQ0KPiArICAgICAgICBEYXRhNFsyXSA9IGlu dChBc2NpaUd1aWRCdWZmZXJbMjQ6MjZdLCAxNikNCj4gKyAgICAgICAgRGF0YTRbM10gPSBpbnQo QXNjaWlHdWlkQnVmZmVyWzI2OjI4XSwgMTYpDQo+ICsgICAgICAgIERhdGE0WzRdID0gaW50KEFz Y2lpR3VpZEJ1ZmZlclsyODozMF0sIDE2KQ0KPiArICAgICAgICBEYXRhNFs1XSA9IGludChBc2Np aUd1aWRCdWZmZXJbMzA6MzJdLCAxNikNCj4gKyAgICAgICAgRGF0YTRbNl0gPSBpbnQoQXNjaWlH dWlkQnVmZmVyWzMyOjM0XSwgMTYpDQo+ICsgICAgICAgIERhdGE0WzddID0gaW50KEFzY2lpR3Vp ZEJ1ZmZlclszNDozNl0sIDE2KQ0KPiArICAgIGV4Y2VwdCBFeGNlcHRpb246DQo+ICsgICAgICAg IEVka0xvZ2dlci5lcnJvcigiVmZyQ29tcGlsZXIiLCBQQVJBTUVURVJfSU5WQUxJRCwgIkludmFs aWQgRGF0YQ0KPiB2YWx1ZSEiKQ0KPiArICAgICAgICBJbmRleCA9IDANCj4gKw0KPiArICAgICMg VmVyaWZ5IHRoZSBjb3JyZWN0IG51bWJlciBvZiBpdGVtcyB3ZXJlIHNjYW5uZWQuDQo+ICsgICAg aWYgSW5kZXggIT0gR1VJRF9CVUZGRVJfVkFMVUVfTEVOOg0KPiArICAgICAgICBFZGtMb2dnZXIu ZXJyb3IoIlZmckNvbXBpbGVyIiwgUEFSQU1FVEVSX0lOVkFMSUQsICJJbnZhbGlkIG9wdGlvbg0K PiB2YWx1ZSIpDQo+ICsgICAgICAgIHJldHVybiBFRklfQUJPUlRFRA0KPiArDQo+ICsgICAgIyBD b3B5IHRoZSBkYXRhIGludG8gb3VyIEdVSUQuDQo+ICsgICAgR3VpZEJ1ZmZlci5EYXRhMSA9IERh dGExDQo+ICsgICAgR3VpZEJ1ZmZlci5EYXRhMiA9IERhdGEyDQo+ICsgICAgR3VpZEJ1ZmZlci5E YXRhMyA9IERhdGEzDQo+ICsgICAgR3VpZEJ1ZmZlci5EYXRhNFswXSA9IERhdGE0WzBdDQo+ICsg ICAgR3VpZEJ1ZmZlci5EYXRhNFsxXSA9IERhdGE0WzFdDQo+ICsgICAgR3VpZEJ1ZmZlci5EYXRh NFsyXSA9IERhdGE0WzJdDQo+ICsgICAgR3VpZEJ1ZmZlci5EYXRhNFszXSA9IERhdGE0WzNdDQo+ ICsgICAgR3VpZEJ1ZmZlci5EYXRhNFs0XSA9IERhdGE0WzRdDQo+ICsgICAgR3VpZEJ1ZmZlci5E YXRhNFs1XSA9IERhdGE0WzVdDQo+ICsgICAgR3VpZEJ1ZmZlci5EYXRhNFs2XSA9IERhdGE0WzZd DQo+ICsgICAgR3VpZEJ1ZmZlci5EYXRhNFs3XSA9IERhdGE0WzddDQo+ICsgICAgU3RhdHVzID0g RUZJX1NVQ0NFU1MNCj4gKw0KPiArICAgIHJldHVybiBTdGF0dXMsIEd1aWRCdWZmZXINCj4gZGlm ZiAtLWdpdCBhL0Jhc2VUb29scy9Tb3VyY2UvUHl0aG9uL1ZmckNvbXBpbGVyL0lmckNvbXBpbGVy LnB5DQo+IGIvQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vVmZyQ29tcGlsZXIvSWZyQ29tcGlsZXIu cHkNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMC4uZTBlYmM3Njky MQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL0Jhc2VUb29scy9Tb3VyY2UvUHl0aG9uL1ZmckNv bXBpbGVyL0lmckNvbXBpbGVyLnB5DQo+IEBAIC0wLDAgKzEsNTg3IEBADQo+ICsjIyBAZmlsZQ0K PiArIyBFeHRlbnRlZCBQeXRob24gVmZyQ29tcGlsZXIgVG9vbC4NCj4gKyMNCj4gKyMgQ29weXJp Z2h0IChjKSAyMDIyLSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS Pg0KPiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAr IyMNCj4gKw0KPiAraW1wb3J0IG9zDQo+ICtpbXBvcnQgc3lzDQo+ICtpbXBvcnQgYXJncGFyc2UN Cj4gK2ltcG9ydCBDb21tb24uRWRrTG9nZ2VyIGFzIEVka0xvZ2dlcg0KPiArZnJvbSBwYXRobGli IGltcG9ydCBQYXRoDQo+ICtmcm9tIGFudGxyNCBpbXBvcnQgKg0KPiArZnJvbSBlbnVtIGltcG9y dCBFbnVtDQo+ICtmcm9tIENvbW1vbi5CdWlsZFRvb2xFcnJvciBpbXBvcnQgKg0KPiArZnJvbSBW ZnJDb21waWxlci5WZnJTeW50YXhQYXJzZXIgaW1wb3J0IFZmclN5bnRheFBhcnNlcg0KPiArZnJv bSBWZnJDb21waWxlci5WZnJTeW50YXhWaXNpdG9yIGltcG9ydCBWZnJTeW50YXhWaXNpdG9yDQo+ ICtmcm9tIFZmckNvbXBpbGVyLlZmclN5bnRheExleGVyIGltcG9ydCBWZnJTeW50YXhMZXhlcg0K PiArZnJvbSBWZnJDb21waWxlci5JZnJDb21tb24gaW1wb3J0IEVGSV9TVUNDRVNTLCBFRklfRVJS T1IsIFN0cmluZ1RvR3VpZA0KPiArZnJvbSBWZnJDb21waWxlci5JZnJUcmVlIGltcG9ydCBJZnJU cmVlTm9kZSwgSWZyVHJlZSwNCj4gVkZSX0NPTVBJTEVSX1ZFUlNJT04sIEJVSUxEX1ZFUlNJT04N Cj4gK2Zyb20gVmZyQ29tcGlsZXIuSWZyUHJlUHJvY2VzcyBpbXBvcnQgT3B0aW9ucywgUHJlUHJv Y2Vzc0RCDQo+ICtmcm9tIFZmckNvbXBpbGVyLklmclV0aWxpdHkgaW1wb3J0IGdWZnJTdHJpbmdE Qg0KPiArZnJvbSBWZnJDb21waWxlci5JZnJGb3JtUGtnIGltcG9ydCAoDQo+ICsgICAgZ0Zvcm1Q a2csDQo+ICsgICAgZ1ZmclZhckRhdGFUeXBlREIsDQo+ICsgICAgZ1ZmckRlZmF1bHRTdG9yZSwN Cj4gKyAgICBnVmZyRGF0YVN0b3JhZ2UsDQo+ICsgICAgZ0lmckZvcm1JZCwNCj4gKykNCj4gK2Zy b20gVmZyQ29tcGlsZXIuSWZyRXJyb3IgaW1wb3J0IGdWZnJFcnJvckhhbmRsZQ0KPiArDQo+ICsN Cj4gK2NsYXNzIENPTVBJTEVSX1JVTl9TVEFUVVMoRW51bSk6DQo+ICsgICAgU1RBVFVTX1NUQVJU RUQgPSAwDQo+ICsgICAgU1RBVFVTX0lOSVRJQUxJWkVEID0gMQ0KPiArICAgIFNUQVRVU19WRlJf UFJFUFJPQ0VTU0VEID0gMg0KPiArICAgIFNUQVRVU19WRlJfQ09NUElMRUVEID0gMw0KPiArICAg IFNUQVRVU19WRlJfR0VOQklOQVJZID0gNA0KPiArICAgIFNUQVRVU19ZQU1MX0dFTkVSQVRFRCA9 IDUNCj4gKyAgICBTVEFUVVNfWUFNTF9QUkVQUk9DRVNTRUQgPSA2DQo+ICsgICAgU1RBVFVTX1lB TUxfQ09NUElMRUQgPSA3DQo+ICsgICAgU1RBVFVTX1lBTUxfRExUX0NPTlNVTUVEID0gOA0KPiAr ICAgIFNUQVRVU19ZQU1MX0dFTkJJTkFSWSA9IDkNCj4gKyAgICBTVEFUVVNfRklOSVNIRUQgPSAx MA0KPiArICAgIFNUQVRVU19GQUlMRUQgPSAxMQ0KPiArICAgIFNUQVRVU19ERUFEID0gMTINCj4g Kw0KPiArDQo+ICsiIiINCj4gKyBUaGlzIGlzIGhvdyB3ZSBpbnZva2UgdGhlIEMgcHJlcHJvY2Vz c29yIG9uIHRoZSBWRlIgc291cmNlIGZpbGUNCj4gKyB0byByZXNvbHZlICNkZWZpbmVzLCAjaW5j bHVkZXMsIGV0Yy4gVG8gbWFrZSBDIHNvdXJjZSBmaWxlcw0KPiArIHNoYXJlYWJsZSBiZXR3ZWVu IFZGUiBhbmQgZHJpdmVycywgZGVmaW5lIFZGUkNPTVBJTEUgc28gdGhhdA0KPiArICNpZmRlZnMg Y2FuIGJlIHVzZWQgaW4gc2hhcmVkIC5oIGZpbGVzLg0KPiArIiIiDQo+ICtQUkVQUk9DRVNTT1Jf Q09NTUFORCA9ICJjbCAiDQo+ICtQUkVQUk9DRVNTT1JfT1BUSU9OUyA9ICIvbm9sb2dvIC9FIC9U QyAvRFZGUkNPTVBJTEUgIg0KPiArDQo+ICsjIFNwZWNpZnkgdGhlIGZpbGVuYW1lIGV4dGVuc2lv bnMgZm9yIHRoZSBmaWxlcyB3ZSBnZW5lcmF0ZS4NCj4gK1ZGUl9fRklMRU5BTUVfRVhURU5TSU9O ID0gIi52ZnIiDQo+ICtWRlJfUFJFUFJPQ0VTU19GSUxFTkFNRV9FWFRFTlNJT04gPSAiLmkiDQo+ ICtWRlJfUEFDS0FHRV9GSUxFTkFNRV9FWFRFTlNJT04gPSAiLmhwayINCj4gK1ZGUl9SRUNPUkRM SVNUX0ZJTEVOQU1FX0VYVEVOU0lPTiA9ICIubHN0Ig0KPiArVkZSX1lBTUxfRklMRU5BTUVfRVhU RU5TSU9OID0gIi55bWwiDQo+ICtWRlJfSlNPTl9GSUxFTkFNRV9FWFRFTlNJT04gPSAiLmpzb24i DQo+ICsNCj4gK1dBUk5JTkdfTE9HX0xFVkVMID0gMTUNCj4gK1VUSUxJVFlfTkFNRSA9ICJWZnJD b21waWxlciINCj4gKw0KPiArcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoDQo+ICsg ICAgZGVzY3JpcHRpb249IlZmckNvbXBpbGVyIiwNCj4gKyAgICBlcGlsb2c9ZiJWZnJDb21waWxl IHZlcnNpb24ge1ZGUl9DT01QSUxFUl9WRVJTSU9OfSBcDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQnVpbGQge0JVSUxEX1ZFUlNJT059IENvcHlyaWdodCAoYykgMjAwNC0yMDE2 IEludGVsDQo+IENvcnBvcmF0aW9uLlwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBbGwgcmlnaHRzIHJlc2VydmVkLiIsDQo+ICspDQo+ICtwYXJzZXIuYWRkX2FyZ3VtZW50KCJJ bnB1dEZpbGVOYW1lIiwgaGVscD0iSW5wdXQgc291cmNlIGZpbGUgbmFtZSIpDQo+ICtwYXJzZXIu YWRkX2FyZ3VtZW50KA0KPiArICAgICItLXZmciIsIGRlc3Q9IkxhbnVjaFZmckNvbXBpbGVyIiwg YWN0aW9uPSJzdG9yZV90cnVlIiwgaGVscD0ibGFudWNoDQo+IFZmckNvbXBpbGVyIg0KPiArKQ0K PiArcGFyc2VyLmFkZF9hcmd1bWVudCgNCj4gKyAgICAiLS12ZXJzaW9uIiwNCj4gKyAgICBhY3Rp b249InZlcnNpb24iLA0KPiArICAgIHZlcnNpb249ZiJWZnJDb21waWxlIHZlcnNpb24ge1ZGUl9D T01QSUxFUl9WRVJTSU9OfSBCdWlsZA0KPiB7QlVJTERfVkVSU0lPTn0iLA0KPiArICAgIGhlbHA9 InByaW50cyB2ZXJzaW9uIGluZm8iLA0KPiArKQ0KPiArcGFyc2VyLmFkZF9hcmd1bWVudCgiLWwi LCBkZXN0PSJDcmVhdGVSZWNvcmRMaXN0RmlsZSIsIGhlbHA9ImNyZWF0ZSBhbg0KPiBvdXRwdXQg SUZSIGxpc3RpbmcgZmlsZSIpDQo+ICtwYXJzZXIuYWRkX2FyZ3VtZW50KCItYyIsIGRlc3Q9IkNy ZWF0ZVlhbWxGaWxlIiwgaGVscD0iY3JlYXRlIFlhbWwgZmlsZSIpDQo+ICtwYXJzZXIuYWRkX2Fy Z3VtZW50KCItaiIsIGRlc3Q9IkNyZWF0ZUpzb25GaWxlIiwgaGVscD0iY3JlYXRlIEpzb24gZmls ZSIpDQo+ICtwYXJzZXIuYWRkX2FyZ3VtZW50KCItdyIsIGRlc3Q9IldvcmtzcGFjZSIsIGhlbHA9 IndvcmtzcGFjZSIpDQo+ICtwYXJzZXIuYWRkX2FyZ3VtZW50KA0KPiArICAgICItbyIsDQo+ICsg ICAgIi0tb3V0cHV0LWRpcmVjdG9yeSIsDQo+ICsgICAgIi1vZCIsDQo+ICsgICAgZGVzdD0iT3V0 cHV0RGlyZWN0b3J5IiwNCj4gKyAgICBoZWxwPSJkZXBvc2l0IGFsbCBvdXRwdXQgZmlsZXMgdG8g ZGlyZWN0b3J5IE91dHB1dERpciwgXA0KPiArICAgICAgICAgICAgICAgICAgICBkZWZhdWx0IGlz IGN1cnJlbnQgZGlyZWN0b3J5IiwNCj4gKykNCj4gK3BhcnNlci5hZGRfYXJndW1lbnQoDQo+ICsg ICAgIi1vbyIsDQo+ICsgICAgIi0tb2xkLW91dHB1dC1kaXJlY3RvcnkiLA0KPiArICAgICItb29k IiwNCj4gKyAgICBkZXN0PSJPbGRPdXRwdXREaXJlY3RvcnkiLA0KPiArICAgIGhlbHA9IkZvcm1l ciBkaXJlY3RvcnkgT3V0cHV0RGlyIG9mIG91dHB1dCBmaWxlcywgXA0KPiArICAgICAgICAgICAg ICAgICAgICBkZWZhdWx0IGlzIGN1cnJlbnQgZGlyZWN0b3J5IiwNCj4gKykNCj4gK3BhcnNlci5h ZGRfYXJndW1lbnQoDQo+ICsgICAgIi1iIiwNCj4gKyAgICAiLS1jcmVhdGUtaWZyLXBhY2thZ2Ui LA0KPiArICAgICItaWJpbiIsDQo+ICsgICAgZGVzdD0iQ3JlYXRlSWZyUGtnRmlsZSIsDQo+ICsg ICAgaGVscD0iY3JlYXRlIGFuIElGUiBISUkgcGFjayBmaWxlIiwNCj4gKykNCj4gK3BhcnNlci5h ZGRfYXJndW1lbnQoDQo+ICsgICAgIi1uIiwNCj4gKyAgICAiLS1uby1wcmUtcHJvY2Vzc2luZyIs DQo+ICsgICAgIi1ub3BwIiwNCj4gKyAgICBkZXN0PSJTa2lwQ1ByZXByb2Nlc3NvciIsDQo+ICsg ICAgaGVscD0iZG8gbm90IHByZXByb2Nlc3NpbmcgaW5wdXQgZmlsZSIsDQo+ICspDQo+ICtwYXJz ZXIuYWRkX2FyZ3VtZW50KA0KPiArICAgICItZiIsDQo+ICsgICAgIi0tcHJlLXByb2Nlc3Npbmct ZmxhZyIsDQo+ICsgICAgIi1wcGZsYWciLA0KPiArICAgIGRlc3Q9IkNQcmVwcm9jZXNzb3JPcHRp b25zIiwNCj4gKyAgICBoZWxwPSJDLXByZXByb2Nlc3NvciBhcmd1bWVudCIsDQo+ICspICAjDQo+ ICtwYXJzZXIuYWRkX2FyZ3VtZW50KA0KPiArICAgICItcyIsICItLXN0cmluZy1kYiIsIGRlc3Q9 IlN0cmluZ0ZpbGVOYW1lIiwgaGVscD0iaW5wdXQgdW5pIHN0cmluZyBwYWNrYWdlDQo+IGZpbGUi DQo+ICspDQo+ICtwYXJzZXIuYWRkX2FyZ3VtZW50KA0KPiArICAgICItZyIsDQo+ICsgICAgIi0t Z3VpZCIsDQo+ICsgICAgZGVzdD0iT3ZlcnJpZGVDbGFzc0d1aWQiLA0KPiArICAgIGhlbHA9Im92 ZXJyaWRlIGNsYXNzIGd1aWQgaW5wdXQsXA0KPiArICAgICAgICAgICAgICAgICAgICBmb3JtYXQg aXMgeHh4eHh4eHgteHh4eC14eHh4LXh4eHgteHh4eHh4eHh4eHh4IiwNCj4gKykNCj4gK3BhcnNl ci5hZGRfYXJndW1lbnQoDQo+ICsgICAgIi13YWUiLCAiLS13YXJuaW5nLWFzLWVycm9yIiwgZGVz dD0iV2FybmluZ0FzRXJyb3IiLCBoZWxwPSJ0cmVhdCB3YXJuaW5nDQo+IGFzIGFuIGVycm9yIg0K PiArKQ0KPiArcGFyc2VyLmFkZF9hcmd1bWVudCgNCj4gKyAgICAiLWEiLA0KPiArICAgICItLWF1 dG9kZWZhdWx0IiwNCj4gKyAgICBkZXN0PSJBdXRvRGVmYXVsdCIsDQo+ICsgICAgaGVscD0iZ2Vu ZXJhdGUgZGVmYXVsdCB2YWx1ZSBmb3IgcXVlc3Rpb24gb3Bjb2RlIGlmIHNvbWUgZGVmYXVsdCBp cw0KPiBtaXNzaW5nIiwNCj4gKykNCj4gK3BhcnNlci5hZGRfYXJndW1lbnQoDQo+ICsgICAgIi1k IiwNCj4gKyAgICAiLS1jaGVja2RlZmF1bHQiLA0KPiArICAgIGRlc3Q9IkNoZWNrRGVmYXVsdCIs DQo+ICsgICAgaGVscD0iY2hlY2sgdGhlIGRlZmF1bHQgaW5mb3JtYXRpb24gaW4gYSBxdWVzdGlv biBvcGNvZGUiLA0KPiArKQ0KPiArcGFyc2VyLmFkZF9hcmd1bWVudCgiLW0iLCAiLS1tb2R1bGVu YW1lIiwgZGVzdD0iTW9kdWxlTmFtZSIsDQo+IGhlbHA9Ik1vZHVsZSBuYW1lIikNCj4gKw0KPiAr DQo+ICtjbGFzcyBDbWRQYXJzZXI6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIEFyZ3MsIEFy Z2MpOg0KPiArICAgICAgICBzZWxmLk9wdGlvbnMgPSBPcHRpb25zKCkNCj4gKyAgICAgICAgc2Vs Zi5SdW5TdGF0dXMgPSBDT01QSUxFUl9SVU5fU1RBVFVTLlNUQVRVU19TVEFSVEVEDQo+ICsgICAg ICAgIHNlbGYuUHJlUHJvY2Vzc0NtZCA9IFBSRVBST0NFU1NPUl9DT01NQU5EDQo+ICsgICAgICAg IHNlbGYuUHJlUHJvY2Vzc09wdCA9IFBSRVBST0NFU1NPUl9PUFRJT05TDQo+ICsgICAgICAgIHNl bGYuT3B0aW9uSW50aWFsaXphdGlvbihBcmdzLCBBcmdjKQ0KPiArDQo+ICsgICAgZGVmIE9wdGlv bkludGlhbGl6YXRpb24oc2VsZiwgQXJncywgQXJnYyk6DQo+ICsgICAgICAgIFN0YXR1cyA9IEVG SV9TVUNDRVNTDQo+ICsNCj4gKyAgICAgICAgaWYgQXJnYyA9PSAxOg0KPiArICAgICAgICAgICAg cGFyc2VyLnByaW50X2hlbHAoKQ0KPiArICAgICAgICAgICAgc2VsZi5TRVRfUlVOX1NUQVRVUyhD T01QSUxFUl9SVU5fU1RBVFVTLlNUQVRVU19ERUFEKQ0KPiArICAgICAgICAgICAgcmV0dXJuDQo+ ICsNCj4gKyAgICAgICAgaWYgQXJncy5MYW51Y2hWZnJDb21waWxlcjoNCj4gKyAgICAgICAgICAg IHNlbGYuT3B0aW9ucy5MYW51Y2hWZnJDb21waWxlciA9IFRydWUNCj4gKw0KPiArICAgICAgICBp ZiBBcmdzLkNyZWF0ZVJlY29yZExpc3RGaWxlOg0KPiArICAgICAgICAgICAgc2VsZi5PcHRpb25z LkNyZWF0ZVJlY29yZExpc3RGaWxlID0gVHJ1ZQ0KPiArDQo+ICsgICAgICAgIGlmIEFyZ3MuTW9k dWxlTmFtZToNCj4gKyAgICAgICAgICAgIHNlbGYuT3B0aW9ucy5Nb2R1bGVOYW1lID0gQXJncy5N b2R1bGVOYW1lDQo+ICsNCj4gKyAgICAgICAgaWYgQXJncy5PdXRwdXREaXJlY3Rvcnk6DQo+ICsg ICAgICAgICAgICBzZWxmLk9wdGlvbnMuT3V0cHV0RGlyZWN0b3J5ID0gQXJncy5PdXRwdXREaXJl Y3RvcnkNCj4gKyAgICAgICAgICAgIGlmIHNlbGYuT3B0aW9ucy5PdXRwdXREaXJlY3RvcnkgaXMg Tm9uZToNCj4gKyAgICAgICAgICAgICAgICBFZGtMb2dnZXIuZXJyb3IoIlZmckNvbXBpbGVyIiwg T1BUSU9OX01JU1NJTkcsICItbyBtaXNzaW5nDQo+IG91dHB1dCBkaXJlY3RvcnkgbmFtZSIpDQo+ ICsgICAgICAgICAgICAgICAgc2VsZi5TRVRfUlVOX1NUQVRVUyhDT01QSUxFUl9SVU5fU1RBVFVT LlNUQVRVU19ERUFEKQ0KPiArICAgICAgICAgICAgICAgIHJldHVybg0KPiArICAgICAgICAgICAg c2VsZi5PcHRpb25zLkRlYnVnRGlyZWN0b3J5ID0NCj4gc3RyKFBhdGgoc2VsZi5PcHRpb25zLk91 dHB1dERpcmVjdG9yeSkucGFyZW50IC8gIkRFQlVHIikNCj4gKyAgICAgICAgICAgIEVka0xvZ2dl ci5kZWJ1ZyhFZGtMb2dnZXIuREVCVUdfOCwgZiJPdXRwdXQgRGlyZWN0b3J5DQo+IHtzZWxmLk9w dGlvbnMuT3V0cHV0RGlyZWN0b3J5fSIpDQo+ICsNCj4gKyAgICAgICAgaWYgQXJncy5Xb3Jrc3Bh Y2U6DQo+ICsgICAgICAgICAgICBzZWxmLk9wdGlvbnMuV29ya3NwYWNlID0gQXJncy5Xb3Jrc3Bh Y2UNCj4gKyAgICAgICAgICAgIElzSW5DbHVkZVBhdGhMaW5lID0gRmFsc2UNCj4gKyAgICAgICAg ICAgIEhhc1ZGUlBQTGluZSA9IEZhbHNlDQo+ICsgICAgICAgICAgICBzZWxmLk9wdGlvbnMuSW5j bHVkZVBhdGhzID0gW10NCj4gKyAgICAgICAgICAgIE1ha2VGaWxlID0gUGF0aChzZWxmLk9wdGlv bnMuT3V0cHV0RGlyZWN0b3J5KS5wYXJlbnQgLyAiTWFrZWZpbGUiDQo+ICsgICAgICAgICAgICBp ZiBNYWtlRmlsZS5leGlzdHMoKToNCj4gKyAgICAgICAgICAgICAgICB3aXRoIE1ha2VGaWxlLm9w ZW4obW9kZT0iciIpIGFzIEZpbGU6DQo+ICsgICAgICAgICAgICAgICAgICAgIGZvciBMaW5lIGlu IEZpbGU6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiBMaW5lLmZpbmQoIklOQyA9ICBc XCIpICE9IC0xOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIElzSW5DbHVkZVBhdGhM aW5lID0gVHJ1ZQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICBpZiBMaW5lLmZpbmQoIlZGUlBQID0gIikgIT0gLTE6DQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGFzVkZSUFBMaW5lID0gVHJ1ZQ0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuT3B0aW9ucy5WRlJQUCA9IExpbmUuc3BsaXQo Ij0iKVsxXS5zdHJpcCgpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIElzSW5DbHVkZVBhdGhMaW5lOg0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpbmUgPSBMaW5lLmxzdHJpcCgpLnJzdHJpcCgiIFxc XG5cciIpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgTGluZS5zdGFydHN3aXRo KCIvSUMiKToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5DbHVkZVBhdGgg PSBMaW5lLnJlcGxhY2UoIi9JQyIsICJDIiwgMSkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5PcHRpb25zLkluY2x1ZGVQYXRocy5hcHBlbmQoSW5DbHVkZVBhdGgpDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxpZiBMaW5lLnN0YXJ0c3dpdGgoIi9JYyIp Og0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbkNsdWRlUGF0aCA9IExpbmUu cmVwbGFjZSgiL0ljIiwgIkMiLCAxKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLk9wdGlvbnMuSW5jbHVkZVBhdGhzLmFwcGVuZChJbkNsdWRlUGF0aCkNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBlbGlmIExpbmUuc3RhcnRzd2l0aCgiL0kkKFdPUktTUEFD RSkiKToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5DbHVkZVBhdGggPSBM aW5lLnJlcGxhY2UoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL0kk KFdPUktTUEFDRSkiLCBzZWxmLk9wdGlvbnMuV29ya3NwYWNlLCAxDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5PcHRpb25zLkluY2x1ZGVQYXRocy5hcHBlbmQoSW5DbHVkZVBhdGgpDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZWxpZiBMaW5lLnN0YXJ0c3dpdGgoIi9JJChERUJVR19ESVIp Iik6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluQ2x1ZGVQYXRoID0gc2Vs Zi5PcHRpb25zLkRlYnVnRGlyZWN0b3J5DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuT3B0aW9ucy5JbmNsdWRlUGF0aHMuYXBwZW5kKEluQ2x1ZGVQYXRoKQ0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgSGFzVkZSUFBMaW5lIGlzIEZhbHNlOg0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJc0luQ2x1ZGVQYXRoTGluZSA9IEZhbHNl DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYnJlYWsNCj4gKw0KPiArICAgICAgICBpZiBBcmdzLk9sZE91dHB1 dERpcmVjdG9yeToNCj4gKyAgICAgICAgICAgIHNlbGYuT3B0aW9ucy5PbGRPdXRwdXREaXJlY3Rv cnkgPSBBcmdzLk9sZE91dHB1dERpcmVjdG9yeQ0KPiArICAgICAgICAgICAgaWYgc2VsZi5PcHRp b25zLk9sZE91dHB1dERpcmVjdG9yeSBpcyBOb25lOg0KPiArICAgICAgICAgICAgICAgIEVka0xv Z2dlci5lcnJvcigiVmZyQ29tcGlsZXIiLCBPUFRJT05fTUlTU0lORywgIi1vbyBtaXNzaW5nDQo+ IG91dHB1dCBkaXJlY3RvcnkgbmFtZSIpDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5TRVRfUlVO X1NUQVRVUyhDT01QSUxFUl9SVU5fU1RBVFVTLlNUQVRVU19ERUFEKQ0KPiArICAgICAgICAgICAg ICAgIHJldHVybg0KPiArICAgICAgICAgICAgRWRrTG9nZ2VyLmRlYnVnKA0KPiArICAgICAgICAg ICAgICAgIEVka0xvZ2dlci5ERUJVR184LCBmIk9sZCBPdXRwdXQgRGlyZWN0b3J5DQo+IHtzZWxm Lk9wdGlvbnMuT2xkT3V0cHV0RGlyZWN0b3J5fSINCj4gKyAgICAgICAgICAgICkNCj4gKw0KPiAr ICAgICAgICBpZiBBcmdzLkNyZWF0ZUlmclBrZ0ZpbGU6DQo+ICsgICAgICAgICAgICBzZWxmLk9w dGlvbnMuQ3JlYXRlSWZyUGtnRmlsZSA9IFRydWUNCj4gKw0KPiArICAgICAgICBpZiBBcmdzLkNy ZWF0ZVlhbWxGaWxlOg0KPiArICAgICAgICAgICAgc2VsZi5PcHRpb25zLkNyZWF0ZVlhbWxGaWxl ID0gVHJ1ZQ0KPiArDQo+ICsgICAgICAgIGlmIEFyZ3MuQ3JlYXRlSnNvbkZpbGU6DQo+ICsgICAg ICAgICAgICBzZWxmLk9wdGlvbnMuQ3JlYXRlSnNvbkZpbGUgPSBUcnVlDQo+ICsNCj4gKyAgICAg ICAgaWYgQXJncy5Ta2lwQ1ByZXByb2Nlc3NvcjoNCj4gKyAgICAgICAgICAgIHNlbGYuT3B0aW9u cy5Ta2lwQ1ByZXByb2Nlc3NvciA9IFRydWUNCj4gKw0KPiArICAgICAgICBpZiBBcmdzLkNQcmVw cm9jZXNzb3JPcHRpb25zOg0KPiArICAgICAgICAgICAgT3B0aW9ucyA9IEFyZ3MuQ1ByZXByb2Nl c3Nvck9wdGlvbnMNCj4gKyAgICAgICAgICAgIGlmIE9wdGlvbnMgaXMgTm9uZToNCj4gKyAgICAg ICAgICAgICAgICBFZGtMb2dnZXIuZXJyb3IoDQo+ICsgICAgICAgICAgICAgICAgICAgICJWZnJD b21waWxlciIsDQo+ICsgICAgICAgICAgICAgICAgICAgIE9QVElPTl9NSVNTSU5HLA0KPiArICAg ICAgICAgICAgICAgICAgICAiLW9kIC0gbWlzc2luZyBDLXByZXByb2Nlc3NvciBhcmd1bWVudCIs DQo+ICsgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAgIHNlbGYuU0VUX1JVTl9T VEFUVVMoQ09NUElMRVJfUlVOX1NUQVRVUy5TVEFUVVNfREVBRCkNCj4gKyAgICAgICAgICAgICAg ICByZXR1cm4NCj4gKyAgICAgICAgICAgIHNlbGYuT3B0aW9ucy5DUHJlcHJvY2Vzc29yT3B0aW9u cyArPSAiICIgKyBPcHRpb25zDQo+ICsNCj4gKyAgICAgICAgaWYgQXJncy5TdHJpbmdGaWxlTmFt ZToNCj4gKyAgICAgICAgICAgIFN0cmluZ0ZpbGVOYW1lID0gQXJncy5TdHJpbmdGaWxlTmFtZQ0K PiArICAgICAgICAgICAgaWYgU3RyaW5nRmlsZU5hbWUgaXMgTm9uZToNCj4gKyAgICAgICAgICAg ICAgICBFZGtMb2dnZXIuZXJyb3IoIlZmckNvbXBpbGVyIiwgT1BUSU9OX01JU1NJTkcsICItcyBt aXNzaW5nIGlucHV0DQo+IHN0cmluZyBmaWxlIG5hbWUiKQ0KPiArICAgICAgICAgICAgICAgIHNl bGYuU0VUX1JVTl9TVEFUVVMoQ09NUElMRVJfUlVOX1NUQVRVUy5TVEFUVVNfREVBRCkNCj4gKyAg ICAgICAgICAgICAgICByZXR1cm4NCj4gKyAgICAgICAgICAgIGdWZnJTdHJpbmdEQi5TZXRTdHJp bmdGaWxlTmFtZShTdHJpbmdGaWxlTmFtZSkNCj4gKyAgICAgICAgICAgIEVka0xvZ2dlci5kZWJ1 ZyhFZGtMb2dnZXIuREVCVUdfOCwgZiJJbnB1dCBzdHJpbmcgZmlsZSBwYXRoDQo+IHtTdHJpbmdG aWxlTmFtZX0iKQ0KPiArDQo+ICsgICAgICAgIGlmIEFyZ3MuT3ZlcnJpZGVDbGFzc0d1aWQ6DQo+ ICsgICAgICAgICAgICByZXMgPSBTdHJpbmdUb0d1aWQoQXJncy5PdmVycmlkZUNsYXNzR3VpZCwN Cj4gc2VsZi5PcHRpb25zLk92ZXJyaWRlQ2xhc3NHdWlkKQ0KPiArICAgICAgICAgICAgaWYgdHlw ZShyZXMpID09ICJpbnQiOg0KPiArICAgICAgICAgICAgICAgIFN0YXR1cyA9IHJlcw0KPiArICAg ICAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAgICBTdGF0dXMgPSByZXNbMF0NCj4gKyAg ICAgICAgICAgICAgICBzZWxmLk9wdGlvbnMuT3ZlcnJpZGVDbGFzc0d1aWQgPSByZXNbMV0NCj4g Kw0KPiArICAgICAgICAgICAgaWYgRUZJX0VSUk9SKFN0YXR1cyk6DQo+ICsgICAgICAgICAgICAg ICAgRWRrTG9nZ2VyLmVycm9yKA0KPiArICAgICAgICAgICAgICAgICAgICAiVmZyQ29tcGlsZXIi LA0KPiArICAgICAgICAgICAgICAgICAgICBGT1JNQVRfSU5WQUxJRCwNCj4gKyAgICAgICAgICAg ICAgICAgICAgZiJJbnZhbGlkIGZvcm1hdDoge0FyZ3MuT3ZlcnJpZGVDbGFzc0d1aWR9IiwNCj4g KyAgICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5TRVRfUlVOX1NUQVRV UyhDT01QSUxFUl9SVU5fU1RBVFVTLlNUQVRVU19ERUFEKQ0KPiArICAgICAgICAgICAgICAgIHJl dHVybg0KPiArDQo+ICsgICAgICAgICAgICBzZWxmLk9wdGlvbnMuSGFzT3ZlcnJpZGVDbGFzc0d1 aWQgPSBUcnVlDQo+ICsNCj4gKyAgICAgICAgaWYgQXJncy5XYXJuaW5nQXNFcnJvcjoNCj4gKyAg ICAgICAgICAgIHNlbGYuT3B0aW9ucy5XYXJuaW5nQXNFcnJvciA9IFRydWUNCj4gKw0KPiArICAg ICAgICBpZiBBcmdzLkF1dG9EZWZhdWx0Og0KPiArICAgICAgICAgICAgc2VsZi5PcHRpb25zLkF1 dG9EZWZhdWx0ID0gVHJ1ZQ0KPiArDQo+ICsgICAgICAgIGlmIEFyZ3MuQ2hlY2tEZWZhdWx0Og0K PiArICAgICAgICAgICAgc2VsZi5PcHRpb25zLkNoZWNrRGVmYXVsdCA9IFRydWUNCj4gKw0KPiAr ICAgICAgICBpZiBBcmdzLklucHV0RmlsZU5hbWU6DQo+ICsgICAgICAgICAgICBzZWxmLk9wdGlv bnMuSW5wdXRGaWxlTmFtZSA9IEFyZ3MuSW5wdXRGaWxlTmFtZQ0KPiArICAgICAgICAgICAgaWYg c2VsZi5PcHRpb25zLklucHV0RmlsZU5hbWUgaXMgTm9uZToNCj4gKyAgICAgICAgICAgICAgICBF ZGtMb2dnZXIuZXJyb3IoIlZmckNvbXBpbGVyIiwgT1BUSU9OX01JU1NJTkcsICJJbnB1dCBmaWxl IG5hbWUNCj4gaXMgbm90IHNwZWNpZmllZC4iKQ0KPiArICAgICAgICAgICAgICAgIHNlbGYuU0VU X1JVTl9TVEFUVVMoQ09NUElMRVJfUlVOX1NUQVRVUy5TVEFUVVNfREVBRCkNCj4gKyAgICAgICAg ICAgICAgICByZXR1cm4NCj4gKw0KPiArICAgICAgICAgICAgaWYgc2VsZi5PcHRpb25zLk91dHB1 dERpcmVjdG9yeSBpcyBOb25lOg0KPiArICAgICAgICAgICAgICAgIHNlbGYuT3B0aW9ucy5PdXRw dXREaXJlY3RvcnkgPSAiIg0KPiArDQo+ICsgICAgICAgIGlmIHNlbGYuU2V0QmFzZUZpbGVOYW1l KCkgIT0gMDoNCj4gKyAgICAgICAgICAgIHNlbGYuU0VUX1JVTl9TVEFUVVMoQ09NUElMRVJfUlVO X1NUQVRVUy5TVEFUVVNfREVBRCkNCj4gKyAgICAgICAgICAgIHJldHVybg0KPiArDQo+ICsgICAg ICAgIGlmIHNlbGYuU2V0UGtnT3V0cHV0RmlsZU5hbWUoKSAhPSAwOg0KPiArICAgICAgICAgICAg c2VsZi5TRVRfUlVOX1NUQVRVUyhDT01QSUxFUl9SVU5fU1RBVFVTLlNUQVRVU19ERUFEKQ0KPiAr ICAgICAgICAgICAgcmV0dXJuDQo+ICsNCj4gKyAgICAgICAgaWYgc2VsZi5TZXRDT3V0cHV0Rmls ZU5hbWUoKSAhPSAwOg0KPiArICAgICAgICAgICAgc2VsZi5TRVRfUlVOX1NUQVRVUyhDT01QSUxF Ul9SVU5fU1RBVFVTLlNUQVRVU19ERUFEKQ0KPiArICAgICAgICAgICAgcmV0dXJuDQo+ICsNCj4g KyAgICAgICAgaWYgc2VsZi5TZXRQcmVwcm9jZXNzb3JPdXRwdXRGaWxlTmFtZSgpICE9IDA6DQo+ ICsgICAgICAgICAgICBzZWxmLlNFVF9SVU5fU1RBVFVTKENPTVBJTEVSX1JVTl9TVEFUVVMuU1RB VFVTX0RFQUQpDQo+ICsgICAgICAgICAgICByZXR1cm4NCj4gKw0KPiArICAgICAgICBpZiBzZWxm LlNldFJlY29yZExpc3RGaWxlTmFtZSgpICE9IDA6DQo+ICsgICAgICAgICAgICBzZWxmLlNFVF9S VU5fU1RBVFVTKENPTVBJTEVSX1JVTl9TVEFUVVMuU1RBVFVTX0RFQUQpDQo+ICsgICAgICAgICAg ICByZXR1cm4NCj4gKw0KPiArICAgICAgICBpZiBzZWxmLlNldFNvdXJjZVlhbWxGaWxlTmFtZSgp ICE9IDA6DQo+ICsgICAgICAgICAgICBzZWxmLlNFVF9SVU5fU1RBVFVTKENPTVBJTEVSX1JVTl9T VEFUVVMuU1RBVFVTX0RFQUQpDQo+ICsgICAgICAgICAgICByZXR1cm4NCj4gKw0KPiArICAgICAg ICBpZiBzZWxmLlNldEpzb25GaWxlTmFtZSgpICE9IDA6DQo+ICsgICAgICAgICAgICBzZWxmLlNF VF9SVU5fU1RBVFVTKENPTVBJTEVSX1JVTl9TVEFUVVMuU1RBVFVTX0RFQUQpDQo+ICsgICAgICAg ICAgICByZXR1cm4NCj4gKw0KPiArICAgIGRlZiBTZXRCYXNlRmlsZU5hbWUoc2VsZik6DQo+ICsg ICAgICAgIGlmIHNlbGYuT3B0aW9ucy5JbnB1dEZpbGVOYW1lIGlzIE5vbmU6DQo+ICsgICAgICAg ICAgICByZXR1cm4gLTENCj4gKyAgICAgICAgcEZpbGVOYW1lID0gc2VsZi5PcHRpb25zLklucHV0 RmlsZU5hbWUNCj4gKyAgICAgICAgd2hpbGUgKHBGaWxlTmFtZS5maW5kKCJcXCIpICE9IC0xKSBv ciAocEZpbGVOYW1lLmZpbmQoIi8iKSAhPSAtMSk6DQo+ICsgICAgICAgICAgICBpZiBwRmlsZU5h bWUuZmluZCgiXFwiKSAhPSAtMToNCj4gKyAgICAgICAgICAgICAgICBpID0gcEZpbGVOYW1lLmZp bmQoIlxcIikNCj4gKyAgICAgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICAgICAgaSA9IHBG aWxlTmFtZS5maW5kKCIvIikNCj4gKw0KPiArICAgICAgICAgICAgaWYgaSA9PSBsZW4ocEZpbGVO YW1lKSAtIDE6DQo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIC0xDQo+ICsNCj4gKyAgICAgICAg ICAgIHBGaWxlTmFtZSA9IHBGaWxlTmFtZVtpICsgMSA6XQ0KPiArDQo+ICsgICAgICAgIGlmIHBG aWxlTmFtZSA9PSAiIiBvciBwRmlsZU5hbWUuZmluZCgiLiIpID09IC0xOg0KPiArICAgICAgICAg ICAgcmV0dXJuIC0xDQo+ICsNCj4gKyAgICAgICAgc2VsZi5PcHRpb25zLkJhc2VGaWxlTmFtZSA9 IHBGaWxlTmFtZVs6IHBGaWxlTmFtZS5maW5kKCIuIildDQo+ICsgICAgICAgIHJldHVybiAwDQo+ ICsNCj4gKyAgICBkZWYgU2V0UGtnT3V0cHV0RmlsZU5hbWUoc2VsZik6DQo+ICsgICAgICAgIGlm IHNlbGYuT3B0aW9ucy5CYXNlRmlsZU5hbWUgaXMgTm9uZToNCj4gKyAgICAgICAgICAgIHJldHVy biAtMQ0KPiArICAgICAgICBpZiBzZWxmLk9wdGlvbnMuTGFudWNoVmZyQ29tcGlsZXI6DQo+ICsg ICAgICAgICAgICBzZWxmLk9wdGlvbnMuUGtnT3V0cHV0RmlsZU5hbWUgPSBzdHIoDQo+ICsgICAg ICAgICAgICAgICAgUGF0aChzZWxmLk9wdGlvbnMuT3V0cHV0RGlyZWN0b3J5KSAvDQo+IGYiUHlW ZnJfe3NlbGYuT3B0aW9ucy5CYXNlRmlsZU5hbWV9LmhwayINCj4gKyAgICAgICAgICAgICkNCj4g KyAgICAgICAgcmV0dXJuIDANCj4gKw0KPiArICAgIGRlZiBTZXRDT3V0cHV0RmlsZU5hbWUoc2Vs Zik6DQo+ICsgICAgICAgIGlmIHNlbGYuT3B0aW9ucy5CYXNlRmlsZU5hbWUgaXMgTm9uZToNCj4g KyAgICAgICAgICAgIHJldHVybiAtMQ0KPiArICAgICAgICBpZiBzZWxmLk9wdGlvbnMuTGFudWNo VmZyQ29tcGlsZXI6DQo+ICsgICAgICAgICAgICBzZWxmLk9wdGlvbnMuQ091dHB1dEZpbGVOYW1l ID0gc3RyKA0KPiArICAgICAgICAgICAgICAgIFBhdGgoc2VsZi5PcHRpb25zLkRlYnVnRGlyZWN0 b3J5KSAvDQo+IGYiUHlWZnJfe3NlbGYuT3B0aW9ucy5CYXNlRmlsZU5hbWV9LmMiDQo+ICsgICAg ICAgICAgICApDQo+ICsgICAgICAgIHJldHVybiAwDQo+ICsNCj4gKyAgICBkZWYgU2V0UHJlcHJv Y2Vzc29yT3V0cHV0RmlsZU5hbWUoc2VsZik6DQo+ICsgICAgICAgIGlmIHNlbGYuT3B0aW9ucy5C YXNlRmlsZU5hbWUgaXMgTm9uZToNCj4gKyAgICAgICAgICAgIHJldHVybiAtMQ0KPiArICAgICAg ICBzZWxmLk9wdGlvbnMuQ1Byb2Nlc3NlZFZmckZpbGVOYW1lID0gc3RyKA0KPiArICAgICAgICAg ICAgUGF0aChzZWxmLk9wdGlvbnMuT3V0cHV0RGlyZWN0b3J5KSAvIGYie3NlbGYuT3B0aW9ucy5C YXNlRmlsZU5hbWV9LmkiDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgcmV0dXJuIDANCj4gKw0K PiArICAgIGRlZiBTZXRSZWNvcmRMaXN0RmlsZU5hbWUoc2VsZik6DQo+ICsgICAgICAgIGlmIHNl bGYuT3B0aW9ucy5CYXNlRmlsZU5hbWUgaXMgTm9uZToNCj4gKyAgICAgICAgICAgIHJldHVybiAt MQ0KPiArICAgICAgICBpZiBzZWxmLk9wdGlvbnMuTGFudWNoVmZyQ29tcGlsZXI6DQo+ICsgICAg ICAgICAgICBzZWxmLk9wdGlvbnMuUmVjb3JkTGlzdEZpbGVOYW1lID0gc3RyKA0KPiArICAgICAg ICAgICAgICAgIFBhdGgoc2VsZi5PcHRpb25zLkRlYnVnRGlyZWN0b3J5KSAvDQo+IGYiUHlWZnJf e3NlbGYuT3B0aW9ucy5CYXNlRmlsZU5hbWV9LmxzdCINCj4gKyAgICAgICAgICAgICkNCj4gKyAg ICAgICAgcmV0dXJuIDANCj4gKw0KPiArICAgIGRlZiBTZXRTb3VyY2VZYW1sRmlsZU5hbWUoc2Vs Zik6DQo+ICsgICAgICAgIGlmIHNlbGYuT3B0aW9ucy5CYXNlRmlsZU5hbWUgaXMgTm9uZToNCj4g KyAgICAgICAgICAgIHJldHVybiAtMQ0KPiArICAgICAgICBzZWxmLk9wdGlvbnMuWWFtbEZpbGVO YW1lID0gc3RyKA0KPiArICAgICAgICAgICAgUGF0aChzZWxmLk9wdGlvbnMuRGVidWdEaXJlY3Rv cnkpIC8NCj4gZiJ7c2VsZi5PcHRpb25zLkJhc2VGaWxlTmFtZX0ueW1sIg0KPiArICAgICAgICAp DQo+ICsgICAgICAgIHNlbGYuT3B0aW9ucy5ZYW1sT3V0cHV0RmlsZU5hbWUgPSBzdHIoDQo+ICsg ICAgICAgICAgICBQYXRoKHNlbGYuT3B0aW9ucy5EZWJ1Z0RpcmVjdG9yeSkgLw0KPiBmIntzZWxm Lk9wdGlvbnMuQmFzZUZpbGVOYW1lfUNvbXBpbGVkLnltbCINCj4gKyAgICAgICAgKQ0KPiArICAg ICAgICByZXR1cm4gMA0KPiArDQo+ICsgICAgZGVmIFNldEpzb25GaWxlTmFtZShzZWxmKToNCj4g KyAgICAgICAgaWYgc2VsZi5PcHRpb25zLkJhc2VGaWxlTmFtZSBpcyBOb25lOg0KPiArICAgICAg ICAgICAgcmV0dXJuIC0xDQo+ICsgICAgICAgIHNlbGYuT3B0aW9ucy5Kc29uRmlsZU5hbWUgPSBz dHIoDQo+ICsgICAgICAgICAgICBQYXRoKHNlbGYuT3B0aW9ucy5EZWJ1Z0RpcmVjdG9yeSkgLw0K PiBmIntzZWxmLk9wdGlvbnMuQmFzZUZpbGVOYW1lfS5qc29uIg0KPiArICAgICAgICApDQo+ICsg ICAgICAgIHJldHVybiAwDQo+ICsNCj4gKyAgICBkZWYgRmluZEluY2x1ZGVIZWFkZXJGaWxlKHNl bGYsIFN0YXJ0LCBOYW1lKToNCj4gKyAgICAgICAgRmlsZUxpc3QgPSBbXQ0KPiArICAgICAgICBm b3IgUmVscGF0aCwgXywgRmlsZXMgaW4gb3Mud2FsayhTdGFydCk6DQo+ICsgICAgICAgICAgICBp ZiBOYW1lIGluIEZpbGVzOg0KPiArICAgICAgICAgICAgICAgIEZ1bGxQYXRoID0gb3MucGF0aC5q b2luKFN0YXJ0LCBSZWxwYXRoLCBOYW1lKQ0KPiArICAgICAgICAgICAgICAgIEZpbGVMaXN0LmFw cGVuZChvcy5wYXRoLm5vcm1wYXRoKG9zLnBhdGguYWJzcGF0aChGdWxsUGF0aCkpKQ0KPiArICAg ICAgICByZXR1cm4gRmlsZUxpc3QNCj4gKw0KPiArICAgIGRlZiBTRVRfUlVOX1NUQVRVUyhzZWxm LCBTdGF0dXMpOg0KPiArICAgICAgICBzZWxmLlJ1blN0YXR1cyA9IFN0YXR1cw0KPiArDQo+ICsg ICAgZGVmIElTX1JVTl9TVEFUVVMoc2VsZiwgU3RhdHVzKToNCj4gKyAgICAgICAgcmV0dXJuIHNl bGYuUnVuU3RhdHVzID09IFN0YXR1cw0KPiArDQo+ICsNCj4gK2NsYXNzIFZmckNvbXBpbGVyOg0K PiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBDbWQ6IENtZFBhcnNlcik6DQo+ICsgICAgICAgIHNl bGYuQ2xlYXIoKQ0KPiArICAgICAgICBzZWxmLk9wdGlvbnMgPSBDbWQuT3B0aW9ucw0KPiArICAg ICAgICBzZWxmLlJ1blN0YXR1cyA9IENtZC5SdW5TdGF0dXMNCj4gKyAgICAgICAgc2VsZi5WZnJS b290ID0gSWZyVHJlZU5vZGUoKQ0KPiArICAgICAgICBzZWxmLlByZVByb2Nlc3NEQiA9IFByZVBy b2Nlc3NEQihzZWxmLk9wdGlvbnMpDQo+ICsgICAgICAgIHNlbGYuVmZyVHJlZSA9IElmclRyZWUo c2VsZi5WZnJSb290LCBzZWxmLlByZVByb2Nlc3NEQiwgc2VsZi5PcHRpb25zKQ0KPiArICAgICAg ICBpZiAobm90IHNlbGYuSVNfUlVOX1NUQVRVUyhDT01QSUxFUl9SVU5fU1RBVFVTLlNUQVRVU19G QUlMRUQpKQ0KPiBhbmQgKA0KPiArICAgICAgICAgICAgbm90IHNlbGYuSVNfUlVOX1NUQVRVUyhD T01QSUxFUl9SVU5fU1RBVFVTLlNUQVRVU19ERUFEKQ0KPiArICAgICAgICApOg0KPiArICAgICAg ICAgICAgc2VsZi5TRVRfUlVOX1NUQVRVUyhDT01QSUxFUl9SVU5fU1RBVFVTLlNUQVRVU19JTklU SUFMSVpFRCkNCj4gKw0KPiArICAgIGRlZiBDbGVhcihzZWxmKToNCj4gKyAgICAgICAgZ1ZmclZh ckRhdGFUeXBlREIuQ2xlYXIoKQ0KPiArICAgICAgICBnVmZyRGVmYXVsdFN0b3JlLkNsZWFyKCkN Cj4gKyAgICAgICAgZ1ZmckRhdGFTdG9yYWdlLkNsZWFyKCkNCj4gKyAgICAgICAgZ0Zvcm1Qa2cu Q2xlYXIoKQ0KPiArICAgICAgICBnSWZyRm9ybUlkLkNsZWFyKCkNCj4gKw0KPiArICAgIGRlZiBQ cmVQcm9jZXNzKHNlbGYpOg0KPiArICAgICAgICBpZiBub3QNCj4gc2VsZi5JU19SVU5fU1RBVFVT KENPTVBJTEVSX1JVTl9TVEFUVVMuU1RBVFVTX0lOSVRJQUxJWkVEKToNCj4gKyAgICAgICAgICAg IGlmIG5vdCBzZWxmLklTX1JVTl9TVEFUVVMoQ09NUElMRVJfUlVOX1NUQVRVUy5TVEFUVVNfREVB RCk6DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5TRVRfUlVOX1NUQVRVUyhDT01QSUxFUl9SVU5f U1RBVFVTLlNUQVRVU19GQUlMRUQpDQo+ICsgICAgICAgIGVsaWYgc2VsZi5PcHRpb25zLlNraXBD UHJlcHJvY2Vzc29yIGlzIEZhbHNlOg0KPiArICAgICAgICAgICAgIyBjYWxsIEMgcHJlcHJvY2Vz c29yIGZpcnN0IGluIHRoZSB0b29sIGl0c2VsZiwgYnV0IGN1cnJlbnRseSBub3Qgc3VwcG9ydA0K PiBoZXJlDQo+ICsgICAgICAgICAgICBzZWxmLlNFVF9SVU5fU1RBVFVTKENPTVBJTEVSX1JVTl9T VEFUVVMuU1RBVFVTX0ZBSUxFRCkNCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICMg bWFrZWZpbGUgd2lsbCBjYWxsIGNsIGNvbW1hbmRzIHRvIGdlbmVyYXRlIC5pIGZpbGUNCj4gKyAg ICAgICAgICAgICMgZG8gbm90IG5lZWQgdG8gcnVuIEMgcHJlcHJvY2Vzc29yIGluIHRoaXMgdG9v bCBpdHNlbGYNCj4gKyAgICAgICAgICAgIHNlbGYuUHJlUHJvY2Vzc0RCLlByZXByb2Nlc3MoKQ0K PiArDQo+IHNlbGYuU0VUX1JVTl9TVEFUVVMoQ09NUElMRVJfUlVOX1NUQVRVUy5TVEFUVVNfVkZS X1BSRVBST0NFU1NFRCkNCj4gKw0KPiArICAgIGRlZiBDb21waWxlKHNlbGYpOg0KPiArICAgICAg ICBJbkZpbGVOYW1lID0gc2VsZi5PcHRpb25zLkNQcm9jZXNzZWRWZnJGaWxlTmFtZQ0KPiArICAg ICAgICBpZiBub3QNCj4gc2VsZi5JU19SVU5fU1RBVFVTKENPTVBJTEVSX1JVTl9TVEFUVVMuU1RB VFVTX1ZGUl9QUkVQUk9DRVNTRUQpOg0KPiArICAgICAgICAgICAgRWRrTG9nZ2VyLmVycm9yKA0K PiArICAgICAgICAgICAgICAgICJWZnJDb21waWxlciIsDQo+ICsgICAgICAgICAgICAgICAgRklM RV9QQVJTRV9GQUlMVVJFLA0KPiArICAgICAgICAgICAgICAgICJjb21waWxlIGVycm9yIGluIGZp bGUgJXMiICUgSW5GaWxlTmFtZSwNCj4gKyAgICAgICAgICAgICAgICBJbkZpbGVOYW1lLA0KPiAr ICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgc2VsZi5TRVRfUlVOX1NUQVRVUyhDT01QSUxF Ul9SVU5fU1RBVFVTLlNUQVRVU19GQUlMRUQpDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAg ICAgICBnVmZyRXJyb3JIYW5kbGUuU2V0SW5wdXRGaWxlKHNlbGYuT3B0aW9ucy5JbnB1dEZpbGVO YW1lKQ0KPiArICAgICAgICAgICAgZ1ZmckVycm9ySGFuZGxlLlNldFdhcm5pbmdBc0Vycm9yKHNl bGYuT3B0aW9ucy5XYXJuaW5nQXNFcnJvcikNCj4gKw0KPiArICAgICAgICAgICAgdHJ5Og0KPiAr ICAgICAgICAgICAgICAgIElucHV0U3RyZWFtID0gRmlsZVN0cmVhbShJbkZpbGVOYW1lKQ0KPiAr ICAgICAgICAgICAgICAgIFZmckxleGVyID0gVmZyU3ludGF4TGV4ZXIoSW5wdXRTdHJlYW0pDQo+ ICsgICAgICAgICAgICAgICAgVmZyU3RyZWFtID0gQ29tbW9uVG9rZW5TdHJlYW0oVmZyTGV4ZXIp DQo+ICsgICAgICAgICAgICAgICAgVmZyUGFyc2VyID0gVmZyU3ludGF4UGFyc2VyKFZmclN0cmVh bSkNCj4gKyAgICAgICAgICAgIGV4Y2VwdDoNCj4gKyAgICAgICAgICAgICAgICBFZGtMb2dnZXIu ZXJyb3IoDQo+ICsgICAgICAgICAgICAgICAgICAgICJWZnJDb21waWxlciIsDQo+ICsgICAgICAg ICAgICAgICAgICAgIEZJTEVfT1BFTl9GQUlMVVJFLA0KPiArICAgICAgICAgICAgICAgICAgICAi RmlsZSBvcGVuIGZhaWxlZCBmb3IgJXMiICUgSW5GaWxlTmFtZSwNCj4gKyAgICAgICAgICAgICAg ICAgICAgSW5GaWxlTmFtZSwNCj4gKyAgICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAg ICAgaWYgbm90IHNlbGYuSVNfUlVOX1NUQVRVUyhDT01QSUxFUl9SVU5fU1RBVFVTLlNUQVRVU19E RUFEKToNCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5TRVRfUlVOX1NUQVRVUyhDT01QSUxF Ul9SVU5fU1RBVFVTLlNUQVRVU19GQUlMRUQpDQo+ICsgICAgICAgICAgICAgICAgcmV0dXJuDQo+ ICsgICAgICAgICAgICBzZWxmLlZpc2l0b3IgPSBWZnJTeW50YXhWaXNpdG9yKA0KPiArICAgICAg ICAgICAgICAgIHNlbGYuUHJlUHJvY2Vzc0RCLCBzZWxmLlZmclJvb3QsIHNlbGYuT3B0aW9ucy5P dmVycmlkZUNsYXNzR3VpZA0KPiArICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgc2VsZi5W aXNpdG9yLnZpc2l0KFZmclBhcnNlci52ZnJQcm9ncmFtKCkpDQo+ICsNCj4gKyAgICAgICAgICAg IGlmIHNlbGYuVmlzaXRvci5QYXJzZXJTdGF0dXMgIT0gMDoNCj4gKyAgICAgICAgICAgICAgICBp ZiBub3Qgc2VsZi5JU19SVU5fU1RBVFVTKENPTVBJTEVSX1JVTl9TVEFUVVMuU1RBVFVTX0RFQUQp Og0KPiArICAgICAgICAgICAgICAgICAgICBFZGtMb2dnZXIuZXJyb3IoDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAiVmZyQ29tcGlsZXIiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg RklMRV9QQVJTRV9GQUlMVVJFLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgImNvbXBpbGUg ZXJyb3IgaW4gZmlsZSAlcyIgJSBJbkZpbGVOYW1lLA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgSW5GaWxlTmFtZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAg ICAgICAgICBzZWxmLlNFVF9SVU5fU1RBVFVTKENPTVBJTEVSX1JVTl9TVEFUVVMuU1RBVFVTX0ZB SUxFRCkNCj4gKyAgICAgICAgICAgICAgICByZXR1cm4NCj4gKw0KPiArICAgICAgICAgICAgaWYg Z0Zvcm1Qa2cuSGF2ZVBlbmRpbmdVbmFzc2lnbmVkKCkgaXMgVHJ1ZToNCj4gKyAgICAgICAgICAg ICAgICBnRm9ybVBrZy5QZW5kaW5nQXNzaWduUHJpbnRBbGwoKQ0KPiArICAgICAgICAgICAgICAg IGlmIG5vdCBzZWxmLklTX1JVTl9TVEFUVVMoQ09NUElMRVJfUlVOX1NUQVRVUy5TVEFUVVNfREVB RCk6DQo+ICsgICAgICAgICAgICAgICAgICAgIEVka0xvZ2dlci5lcnJvcigNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICJWZnJDb21waWxlciIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICBGSUxFX1BBUlNFX0ZBSUxVUkUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiY29tcGls ZSBlcnJvciBpbiBmaWxlICVzIiAlIEluRmlsZU5hbWUsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICBJbkZpbGVOYW1lLA0KPiArICAgICAgICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAg ICAgICAgICAgIHNlbGYuU0VUX1JVTl9TVEFUVVMoQ09NUElMRVJfUlVOX1NUQVRVUy5TVEFUVVNf RkFJTEVEKQ0KPiArICAgICAgICAgICAgICAgIHJldHVybg0KPiArDQo+ICsNCj4gc2VsZi5TRVRf UlVOX1NUQVRVUyhDT01QSUxFUl9SVU5fU1RBVFVTLlNUQVRVU19WRlJfQ09NUElMRUVEKQ0KPiAr ICAgICAgICAgICAgaWYgc2VsZi5PcHRpb25zLkNyZWF0ZUpzb25GaWxlOg0KPiArICAgICAgICAg ICAgICAgIHNlbGYuVmZyVHJlZS5EdW1wSnNvbigpDQo+ICsNCj4gKyAgICBkZWYgR2VuQmluYXJ5 KHNlbGYpOg0KPiArICAgICAgICBpZiBub3QNCj4gc2VsZi5JU19SVU5fU1RBVFVTKENPTVBJTEVS X1JVTl9TVEFUVVMuU1RBVFVTX1ZGUl9DT01QSUxFRUQpOg0KPiArICAgICAgICAgICAgaWYgbm90 IHNlbGYuSVNfUlVOX1NUQVRVUyhDT01QSUxFUl9SVU5fU1RBVFVTLlNUQVRVU19ERUFEKToNCj4g KyAgICAgICAgICAgICAgICBzZWxmLlNFVF9SVU5fU1RBVFVTKENPTVBJTEVSX1JVTl9TVEFUVVMu U1RBVFVTX0ZBSUxFRCkNCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIGlmIHNlbGYu T3B0aW9ucy5DcmVhdGVJZnJQa2dGaWxlOg0KPiArICAgICAgICAgICAgICAgIHNlbGYuVmZyVHJl ZS5HZW5CaW5hcnkoKQ0KPiArDQo+ICsgICAgZGVmIEdlbkNGaWxlKHNlbGYpOg0KPiArICAgICAg ICBpZiBub3QNCj4gc2VsZi5JU19SVU5fU1RBVFVTKENPTVBJTEVSX1JVTl9TVEFUVVMuU1RBVFVT X1ZGUl9DT01QSUxFRUQpOg0KPiArICAgICAgICAgICAgaWYgbm90IHNlbGYuSVNfUlVOX1NUQVRV UyhDT01QSUxFUl9SVU5fU1RBVFVTLlNUQVRVU19ERUFEKToNCj4gKyAgICAgICAgICAgICAgICBz ZWxmLlNFVF9SVU5fU1RBVFVTKENPTVBJTEVSX1JVTl9TVEFUVVMuU1RBVFVTX0ZBSUxFRCkNCj4g KyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIGlmIHNlbGYuT3B0aW9ucy5DcmVhdGVJZnJQ a2dGaWxlOg0KPiArICAgICAgICAgICAgICAgIHNlbGYuVmZyVHJlZS5HZW5DRmlsZSgpDQo+ICsN Cj4gKyAgICBkZWYgR2VuUmVjb3JkTGlzdEZpbGUoc2VsZik6DQo+ICsgICAgICAgIGlmIG5vdA0K PiBzZWxmLklTX1JVTl9TVEFUVVMoQ09NUElMRVJfUlVOX1NUQVRVUy5TVEFUVVNfVkZSX0NPTVBJ TEVFRCk6DQo+ICsgICAgICAgICAgICBpZiBub3Qgc2VsZi5JU19SVU5fU1RBVFVTKENPTVBJTEVS X1JVTl9TVEFUVVMuU1RBVFVTX0RFQUQpOg0KPiArICAgICAgICAgICAgICAgIHNlbGYuU0VUX1JV Tl9TVEFUVVMoQ09NUElMRVJfUlVOX1NUQVRVUy5TVEFUVVNfRkFJTEVEKQ0KPiArICAgICAgICBl bHNlOg0KPiArICAgICAgICAgICAgaWYgc2VsZi5PcHRpb25zLkNyZWF0ZVJlY29yZExpc3RGaWxl Og0KPiArICAgICAgICAgICAgICAgIHNlbGYuVmZyVHJlZS5HZW5SZWNvcmRMaXN0RmlsZSgpDQo+ ICsNCj4gKyAgICBkZWYgR2VuQmluYXJ5RmlsZXMoc2VsZik6DQo+ICsgICAgICAgIGlmIG5vdA0K PiBzZWxmLklTX1JVTl9TVEFUVVMoQ09NUElMRVJfUlVOX1NUQVRVUy5TVEFUVVNfVkZSX0NPTVBJ TEVFRCk6DQo+ICsgICAgICAgICAgICBpZiBub3Qgc2VsZi5JU19SVU5fU1RBVFVTKENPTVBJTEVS X1JVTl9TVEFUVVMuU1RBVFVTX0RFQUQpOg0KPiArICAgICAgICAgICAgICAgIHNlbGYuU0VUX1JV Tl9TVEFUVVMoQ09NUElMRVJfUlVOX1NUQVRVUy5TVEFUVVNfRkFJTEVEKQ0KPiArICAgICAgICBl bHNlOg0KPiArICAgICAgICAgICAgc2VsZi5WZnJUcmVlLkdlbkJpbmFyeUZpbGVzKCkNCj4gKyAg ICAgICAgICAgIHNlbGYuU0VUX1JVTl9TVEFUVVMoQ09NUElMRVJfUlVOX1NUQVRVUy5TVEFUVVNf RklOSVNIRUQpDQo+ICsNCj4gKyAgICBkZWYgRHVtcFNvdXJjZVlhbWwoc2VsZik6DQo+ICsgICAg ICAgIGlmIG5vdCBzZWxmLklTX1JVTl9TVEFUVVMoDQo+ICsgICAgICAgICAgICBDT01QSUxFUl9S VU5fU1RBVFVTLlNUQVRVU19WRlJfQ09NUElMRUVEDQo+ICsgICAgICAgICkgYW5kIG5vdA0KPiBz ZWxmLklTX1JVTl9TVEFUVVMoQ09NUElMRVJfUlVOX1NUQVRVUy5TVEFUVVNfRklOSVNIRUQpOg0K PiArICAgICAgICAgICAgaWYgbm90IHNlbGYuSVNfUlVOX1NUQVRVUyhDT01QSUxFUl9SVU5fU1RB VFVTLlNUQVRVU19ERUFEKToNCj4gKyAgICAgICAgICAgICAgICBzZWxmLlNFVF9SVU5fU1RBVFVT KENPTVBJTEVSX1JVTl9TVEFUVVMuU1RBVFVTX0ZBSUxFRCkNCj4gKyAgICAgICAgZWxzZToNCj4g KyAgICAgICAgICAgIGlmIHNlbGYuT3B0aW9ucy5DcmVhdGVZYW1sRmlsZToNCj4gKyAgICAgICAg ICAgICAgICBzZWxmLlZmclRyZWUuRHVtcFlhbWxGb3JYTUxDTEkoKQ0KPiArICAgICAgICAgICAg ICAgIHNlbGYuVmZyVHJlZS5EdW1wWWFtbEZvckNvbmZpZ0VkaXRvcigpDQo+ICsgICAgICAgICAg ICBzZWxmLlNFVF9SVU5fU1RBVFVTKENPTVBJTEVSX1JVTl9TVEFUVVMuU1RBVFVTX0ZJTklTSEVE KQ0KPiArDQo+ICsgICAgZGVmIFNFVF9SVU5fU1RBVFVTKHNlbGYsIFN0YXR1cyk6DQo+ICsgICAg ICAgIHNlbGYuUnVuU3RhdHVzID0gU3RhdHVzDQo+ICsNCj4gKyAgICBkZWYgSVNfUlVOX1NUQVRV UyhzZWxmLCBTdGF0dXMpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5SdW5TdGF0dXMgPT0gU3Rh dHVzDQo+ICsNCj4gKw0KPiArZGVmIG1haW4oKToNCj4gKyAgICBBcmdzID0gcGFyc2VyLnBhcnNl X2FyZ3MoKQ0KPiArICAgIEFyZ2MgPSBsZW4oc3lzLmFyZ3YpDQo+ICsgICAgRWRrTG9nZ2VyLlNl dExldmVsKFdBUk5JTkdfTE9HX0xFVkVMKQ0KPiArICAgIENtZCA9IENtZFBhcnNlcihBcmdzLCBB cmdjKQ0KPiArICAgIENvbXBpbGVyID0gVmZyQ29tcGlsZXIoQ21kKQ0KPiArICAgIENvbXBpbGVy LlByZVByb2Nlc3MoKQ0KPiArICAgIENvbXBpbGVyLkNvbXBpbGUoKQ0KPiArICAgIENvbXBpbGVy LkdlbkJpbmFyeUZpbGVzKCkNCj4gKyAgICAjQ29tcGlsZXIuRHVtcFNvdXJjZVlhbWwoKQ0KPiAr ICAgIFN0YXR1cyA9IENvbXBpbGVyLlJ1blN0YXR1cw0KPiArICAgIGlmIFN0YXR1cyA9PSBDT01Q SUxFUl9SVU5fU1RBVFVTLlNUQVRVU19ERUFEIG9yIFN0YXR1cyA9PQ0KPiBDT01QSUxFUl9SVU5f U1RBVFVTLlNUQVRVU19GQUlMRUQ6DQo+ICsgICAgICAgIHJldHVybiAyDQo+ICsNCj4gKyAgICBy ZXR1cm4gRUZJX1NVQ0NFU1MNCj4gKw0KPiArDQo+ICtpZiBfX25hbWVfXyA9PSAiX19tYWluX18i Og0KPiArICAgIHN5cy5leGl0KG1haW4oKSkNCj4gZGlmZiAtLWdpdCBhL0Jhc2VUb29scy9Tb3Vy Y2UvUHl0aG9uL1ZmckNvbXBpbGVyL0lmckN0eXBlcy5weQ0KPiBiL0Jhc2VUb29scy9Tb3VyY2Uv UHl0aG9uL1ZmckNvbXBpbGVyL0lmckN0eXBlcy5weQ0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0K PiBpbmRleCAwMDAwMDAwMDAwLi5jM2EzZGQ2NTg0DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIv QmFzZVRvb2xzL1NvdXJjZS9QeXRob24vVmZyQ29tcGlsZXIvSWZyQ3R5cGVzLnB5DQo+IEBAIC0w LDAgKzEsMTgxMSBAQA0KPiArIyMgQGZpbGUNCj4gKyMgVGhpcyBmaWxlIGlzIHVzZWQgdG8gZGVm aW5lIHRoZSBjb21tb24gQyBzdHJ1Y3QgYW5kIGZ1bmN0aW9ucy4NCj4gKyMNCj4gKyMgQ29weXJp Z2h0IChjKSAyMDIyLSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS Pg0KPiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAr IyMNCj4gKw0KPiArZnJvbSBjdHlwZXMgaW1wb3J0ICoNCj4gK2Zyb20gc3RydWN0IGltcG9ydCAq DQo+ICtmcm9tIGVudW0gaW1wb3J0IEVudW0NCj4gKw0KPiArDQo+ICtFRklfU1RSSU5HX0lEX0lO VkFMSUQgPSAweDANCj4gK0VGSV9ISUlfREVGQVVMVF9DTEFTU19TVEFOREFSRCA9IDB4MDAwMA0K PiArRUZJX0hJSV9ERUZBVUxUX0NMQVNTX01BTlVGQUNUVVJJTkcgPSAweDAwMDENCj4gK0VGSV9J RlJfTUFYX0xFTkdUSCA9IDB4RkYNCj4gK0VGSV9WQVJTVE9SRV9JRF9JTlZBTElEID0gMA0KPiAr RUZJX1ZBUlNUT1JFX0lEX1NUQVJUID0gMHgyMA0KPiArRUZJX1ZBUk9GRlNFVF9JTlZBTElEID0g MHhGRkZGDQo+ICtFRklfSU1BR0VfSURfSU5WQUxJRCA9IDB4RkZGRg0KPiArDQo+ICtFRklfTk9O X0RFVklDRV9DTEFTUyA9IDB4MDANCj4gK0VGSV9ESVNLX0RFVklDRV9DTEFTUyA9IDB4MDENCj4g K0VGSV9WSURFT19ERVZJQ0VfQ0xBU1MgPSAweDAyDQo+ICtFRklfTkVUV09SS19ERVZJQ0VfQ0xB U1MgPSAweDA0DQo+ICtFRklfSU5QVVRfREVWSUNFX0NMQVNTID0gMHgwOA0KPiArRUZJX09OX0JP QVJEX0RFVklDRV9DTEFTUyA9IDB4MTANCj4gK0VGSV9PVEhFUl9ERVZJQ0VfQ0xBU1MgPSAweDIw DQo+ICsNCj4gK0VGSV9TRVRVUF9BUFBMSUNBVElPTl9TVUJDTEFTUyA9IDB4MDANCj4gK0VGSV9H RU5FUkFMX0FQUExJQ0FUSU9OX1NVQkNMQVNTID0gMHgwMQ0KPiArRUZJX0ZST05UX1BBR0VfU1VC Q0xBU1MgPSAweDAyDQo+ICtFRklfU0lOR0xFX1VTRV9TVUJDTEFTUyA9IDB4MDMNCj4gKw0KPiAr IyBFRklfSElJX1BBQ0tBR0VfVFlQRV94Lg0KPiArDQo+ICtFRklfSElJX1BBQ0tBR0VfVFlQRV9B TEwgPSAweDAwDQo+ICtFRklfSElJX1BBQ0tBR0VfVFlQRV9HVUlEID0gMHgwMQ0KPiArRUZJX0hJ SV9QQUNLQUdFX0ZPUk0gPSAweDAyDQo+ICtFRklfSElJX1BBQ0tBR0VfS0VZQk9BUkRfTEFZT1VU ID0gMHgwMw0KPiArRUZJX0hJSV9QQUNLQUdFX1NUUklOR1MgPSAweDA0DQo+ICtFRklfSElJX1BB Q0tBR0VfRk9OVFMgPSAweDA1DQo+ICtFRklfSElJX1BBQ0tBR0VfSU1BR0VTID0gMHgwNg0KPiAr RUZJX0hJSV9QQUNLQUdFX1NJTVBMRV9GT05UUyA9IDB4MDcNCj4gK0VGSV9ISUlfUEFDS0FHRV9E RVZJQ0VfUEFUSCA9IDB4MDgNCj4gK0VGSV9ISUlfUEFDS0FHRV9FTkQgPSAweERGDQo+ICtFRklf SElJX1BBQ0tBR0VfVFlQRV9TWVNURU1fQkVHSU4gPSAweEUwDQo+ICtFRklfSElJX1BBQ0tBR0Vf VFlQRV9TWVNURU1fRU5EID0gMHhGRg0KPiArDQo+ICtFRklfSUZSX0VYVEVORF9PUF9MQUJFTCA9 IDB4MA0KPiArRUZJX0lGUl9FWFRFTkRfT1BfQkFOTkVSID0gMHgxDQo+ICtFRklfSUZSX0VYVEVO RF9PUF9USU1FT1VUID0gMHgyDQo+ICtFRklfSUZSX0VYVEVORF9PUF9DTEFTUyA9IDB4Mw0KPiAr RUZJX0lGUl9FWFRFTkRfT1BfU1VCQ0xBU1MgPSAweDQNCj4gKw0KPiArTUFYX0lGUl9FWFBSRVNT SU9OX0RFUFRIID0gMHg5DQo+ICsNCj4gK0lOVkFMSURfQVJSQVlfSU5ERVggPSAweEZGRkZGRkZG DQo+ICsNCj4gK0VGSV9JRlJfVFlQRV9OVU1fU0laRV84ID0gMHgwMA0KPiArRUZJX0lGUl9UWVBF X05VTV84X0JJVF9TSVpFID0gMHgwMQ0KPiArRUZJX0lGUl9UWVBFX05VTV9TSVpFXzE2ID0gMHgw MQ0KPiArRUZJX0lGUl9UWVBFX05VTV8xNl9CSVRfU0laRSA9IDB4MDINCj4gK0VGSV9JRlJfVFlQ RV9OVU1fU0laRV8zMiA9IDB4MDINCj4gK0VGSV9JRlJfVFlQRV9OVU1fMzJfQklUX1NJWkUgPSAw eDA0DQo+ICtFRklfSUZSX1RZUEVfTlVNX1NJWkVfNjQgPSAweDAzDQo+ICtFRklfSUZSX1RZUEVf TlVNXzY0X0JJVF9TSVpFID0gMHgwOA0KPiArRUZJX0lGUl9UWVBFX0JPT0xFQU4gPSAweDA0DQo+ ICtFRklfSUZSX1RZUEVfVElNRSA9IDB4MDUNCj4gK0VGSV9JRlJfVFlQRV9EQVRFID0gMHgwNg0K PiArRUZJX0lGUl9UWVBFX1NUUklORyA9IDB4MDcNCj4gK0VGSV9JRlJfVFlQRV9PVEhFUiA9IDB4 MDgNCj4gK0VGSV9JRlJfVFlQRV9VTkRFRklORUQgPSAweDA5DQo+ICtFRklfSUZSX1RZUEVfQUNU SU9OID0gMHgwQQ0KPiArRUZJX0lGUl9UWVBFX0JVRkZFUiA9IDB4MEINCj4gK0VGSV9JRlJfVFlQ RV9SRUYgPSAweDBDDQo+ICsNCj4gKw0KPiArRUZJX0lGUl9GTEFHU19IT1JJWk9OVEFMID0gMHgw MQ0KPiArDQo+ICtFRklfSUZSX0ZMQUdfUkVBRF9PTkxZID0gMHgwMQ0KPiArRUZJX0lGUl9GTEFH X0NBTExCQUNLID0gMHgwNA0KPiArRUZJX0lGUl9GTEFHX1JFU0VUX1JFUVVJUkVEID0gMHgxMA0K PiArRUZJX0lGUl9GTEFHX1JFU1RfU1RZTEUgPSAweDIwDQo+ICtFRklfSUZSX0ZMQUdfUkVDT05O RUNUX1JFUVVJUkVEID0gMHg0MA0KPiArRUZJX0lGUl9GTEFHX09QVElPTlNfT05MWSA9IDB4ODAN Cj4gKw0KPiArRUZJX0lGUl9TVFJJTkdfTVVMVElfTElORSA9IDB4MDENCj4gKw0KPiArRURLSUlf SUZSX0RJU1BMQVlfQklUID0gMHhDMA0KPiArRURLSUlfSUZSX0RJU1BMQVlfSU5UX0RFQ19CSVQg PSAweDAwDQo+ICtFREtJSV9JRlJfRElTUExBWV9VSU5UX0RFQ19CSVQgPSAweDQwDQo+ICtFREtJ SV9JRlJfRElTUExBWV9VSU5UX0hFWF9CSVQgPSAweDgwDQo+ICsNCj4gK0VES0lJX0lGUl9OVU1F UklDX1NJWkVfQklUID0gMHgzRg0KPiArDQo+ICtFRklfSUZSX01BWF9ERUZBVUxUX1RZUEUgPSAw eDEwDQo+ICsNCj4gK0VGSV9ISUlfU0lCVF9FTkQgPSAweDAwDQo+ICtFRklfSElJX1NJQlRfU1RS SU5HX1NDU1UgPSAweDEwDQo+ICtFRklfSElJX1NJQlRfU1RSSU5HX1NDU1VfRk9OVCA9IDB4MTEN Cj4gK0VGSV9ISUlfU0lCVF9TVFJJTkdTX1NDU1UgPSAweDEyDQo+ICtFRklfSElJX1NJQlRfU1RS SU5HU19TQ1NVX0ZPTlQgPSAweDEzDQo+ICtFRklfSElJX1NJQlRfU1RSSU5HX1VDUzIgPSAweDE0 DQo+ICtFRklfSElJX1NJQlRfU1RSSU5HX1VDUzJfRk9OVCA9IDB4MTUNCj4gK0VGSV9ISUlfU0lC VF9TVFJJTkdTX1VDUzIgPSAweDE2DQo+ICtFRklfSElJX1NJQlRfU1RSSU5HU19VQ1MyX0ZPTlQg PSAweDE3DQo+ICtFRklfSElJX1NJQlRfRFVQTElDQVRFID0gMHgyMA0KPiArRUZJX0hJSV9TSUJU X1NLSVAyID0gMHgyMQ0KPiArRUZJX0hJSV9TSUJUX1NLSVAxID0gMHgyMg0KPiArRUZJX0hJSV9T SUJUX0VYVDEgPSAweDMwDQo+ICtFRklfSElJX1NJQlRfRVhUMiA9IDB4MzENCj4gK0VGSV9ISUlf U0lCVF9FWFQ0ID0gMHgzMg0KPiArRUZJX0hJSV9TSUJUX0ZPTlQgPSAweDQwDQo+ICsNCj4gK0Jh c2ljVHlwZXMgPSBbDQo+ICsgICAgRUZJX0lGUl9UWVBFX05VTV9TSVpFXzgsDQo+ICsgICAgRUZJ X0lGUl9UWVBFX05VTV9TSVpFXzE2LA0KPiArICAgIEVGSV9JRlJfVFlQRV9OVU1fU0laRV8zMiwN Cj4gKyAgICBFRklfSUZSX1RZUEVfTlVNX1NJWkVfNjQsDQo+ICtdDQo+ICtCYXNpY0NJbnRzID0g W2NfdWludDY0LCBjX3VpbnQzMiwgY191aW50MTYsIGNfdWludDgsIGNfdWJ5dGUsIGNfdXNob3J0 XQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9HVUlEKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tf ID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIkRhdGExIiwgY191aW50MzIp LA0KPiArICAgICAgICAoIkRhdGEyIiwgY191aW50MTYpLA0KPiArICAgICAgICAoIkRhdGEzIiwg Y191aW50MTYpLA0KPiArICAgICAgICAoIkRhdGE0IiwgY191Ynl0ZSAqIDgpLA0KPiArICAgIF0N Cj4gKw0KPiArICAgIGRlZiBmcm9tX2xpc3Qoc2VsZiwgbGlzdGZvcm1hdDogbGlzdCkgLT4gTm9u ZToNCj4gKyAgICAgICAgc2VsZi5EYXRhMSA9IGxpc3Rmb3JtYXRbMF0NCj4gKyAgICAgICAgc2Vs Zi5EYXRhMiA9IGxpc3Rmb3JtYXRbMV0NCj4gKyAgICAgICAgc2VsZi5EYXRhMyA9IGxpc3Rmb3Jt YXRbMl0NCj4gKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoOCk6DQo+ICsgICAgICAgICAgICBzZWxm LkRhdGE0W2ldID0gbGlzdGZvcm1hdFtpICsgM10NCj4gKw0KPiArICAgIGRlZiB0b19zdHJpbmco c2VsZikgLT4gc3RyOg0KPiArICAgICAgICBHdWlkU3RyID0gZiJ7e3tzZWxmLkRhdGExOiN4fSwg e3NlbGYuRGF0YTI6I3h9LCB7c2VsZi5EYXRhMzojeH0sIHt7IHsnLA0KPiAnLmpvaW4oZid7eDoj eH0nIGZvciB4IGluIHNlbGYuRGF0YTQpfX19fX0iDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIEd1 aWRTdHINCj4gKw0KPiArICAgIGRlZiBfX2NtcF9fKHNlbGYsIG90aGVyZ3VpZCkgLT4gYm9vbDoN Cj4gKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob3RoZXJndWlkLCBFRklfR1VJRCk6DQo+ICsg ICAgICAgICAgICByZXR1cm4gIklucHV0IGlzIG5vdCB0aGUgR1VJRCBpbnN0YW5jZSEiDQo+ICsg ICAgICAgIHJ0ID0gRmFsc2UNCj4gKyAgICAgICAgaWYgKA0KPiArICAgICAgICAgICAgc2VsZi5E YXRhMSA9PSBvdGhlcmd1aWQuRGF0YTENCj4gKyAgICAgICAgICAgIGFuZCBzZWxmLkRhdGEyID09 IG90aGVyZ3VpZC5EYXRhMg0KPiArICAgICAgICAgICAgYW5kIHNlbGYuRGF0YTMgPT0gb3RoZXJn dWlkLkRhdGEzDQo+ICsgICAgICAgICk6DQo+ICsgICAgICAgICAgICBydCA9IFRydWUNCj4gKyAg ICAgICAgICAgIGZvciBpIGluIHJhbmdlKDgpOg0KPiArICAgICAgICAgICAgICAgIHJ0ID0gcnQg JiAoc2VsZi5EYXRhNFtpXSA9PSBvdGhlcmd1aWQuRGF0YTRbaV0pDQo+ICsgICAgICAgIHJldHVy biBydA0KPiArDQo+ICsNCj4gK0d1aWRBcnJheSA9IGNfdWJ5dGUgKiA4DQo+ICtFRklfSElJX1BM QVRGT1JNX1NFVFVQX0ZPUk1TRVRfR1VJRCA9IEVGSV9HVUlEKA0KPiArICAgIDB4OTMwMzk5NzEs IDB4ODU0NSwgMHg0QjA0LCBHdWlkQXJyYXkoMHhCNCwgMHg1RSwgMHgzMiwgMHhFQiwgMHg4MywN Cj4gMHgyNiwgMHg0LCAweEUpDQo+ICspDQo+ICsNCj4gK0VGSV9JRlJfVElBTk9fR1VJRCA9IEVG SV9HVUlEKA0KPiArICAgIDB4RjBCMTczNSwgMHg4N0EwLCAweDQxOTMsIEd1aWRBcnJheSgweEIy LCAweDY2LCAweDUzLCAweDhDLCAweDM4LCAweEFGLA0KPiAweDQ4LCAweENFKQ0KPiArKQ0KPiAr DQo+ICtFREtJSV9JRlJfQklUX1ZBUlNUT1JFX0dVSUQgPSAoDQo+ICsgICAgMHg4MkRERDY4QiwN Cj4gKyAgICAweDkxNjMsDQo+ICsgICAgMHg0MTg3LA0KPiArICAgIEd1aWRBcnJheSgweDlCLCAw eDI3LCAweDIwLCAweEE4LCAweEZELCAweDYwLCAweEE3LCAweDFEKSwNCj4gKykNCj4gKw0KPiAr RUZJX0lGUl9GUkFNRVdPUktfR1VJRCA9ICgNCj4gKyAgICAweDMxQ0E1RDFBLA0KPiArICAgIDB4 RDUxMSwNCj4gKyAgICAweDQ5MzEsDQo+ICsgICAgR3VpZEFycmF5KDB4QjcsIDB4ODIsIDB4QUUs IDB4NkIsIDB4MkIsIDB4MTcsIDB4OEMsIDB4RDcpLA0KPiArKQ0KPiArDQo+ICsNCj4gK2NsYXNz IEVGSV9JRlJfT1BfSEVBREVSKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAg IF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIk9wQ29kZSIsIGNfdWJ5dGUpLA0KPiArICAgICAg ICAoIkxlbmd0aCIsIGNfdWJ5dGUsIDcpLA0KPiArICAgICAgICAoIlNjb3BlIiwgY191Ynl0ZSwg MSksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfRk9STV9TRVQoU3RydWN0 dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAg ICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiArICAgICAgICAoIkd1aWQiLCBFRklf R1VJRCksDQo+ICsgICAgICAgICgiRm9ybVNldFRpdGxlIiwgY191aW50MTYpLA0KPiArICAgICAg ICAoIkhlbHAiLCBjX3VpbnQxNiksDQo+ICsgICAgICAgICgiRmxhZ3MiLCBjX3VieXRlKSwNCj4g KyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lGUl9HVUlEX0NMQVNTKFN0cnVjdHVyZSk6 DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIkhl YWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICAgICAgKCJHdWlkIiwgRUZJX0dVSUQp LA0KPiArICAgICAgICAoIkV4dGVuZE9wQ29kZSIsIGNfdWJ5dGUpLA0KPiArICAgICAgICAoIkNs YXNzIiwgY191aW50MTYpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX0dV SURfU1VCQ0xBU1MoU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxk c18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiArICAg ICAgICAoIkd1aWQiLCBFRklfR1VJRCksDQo+ICsgICAgICAgICgiRXh0ZW5kT3BDb2RlIiwgY191 Ynl0ZSksDQo+ICsgICAgICAgICgiU3ViQ2xhc3MiLCBjX3VpbnQxNiksDQo+ICsgICAgXQ0KPiAr DQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfREVGQVVMVFNUT1JFKFN0cnVjdHVyZSk6DQo+ICsgICAg X3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIkhlYWRlciIsIEVG SV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICAgICAgKCJEZWZhdWx0TmFtZSIsIGNfdWludDE2KSwN Cj4gKyAgICAgICAgKCJEZWZhdWx0SWQiLCBjX3VpbnQxNiksDQo+ICsgICAgXQ0KPiArDQo+ICsN Cj4gK2NsYXNzIEVGSV9JRlJfVkFSU1RPUkUoU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAx DQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9I RUFERVIpLA0KPiArICAgICAgICAoIkd1aWQiLCBFRklfR1VJRCksDQo+ICsgICAgICAgICgiVmFy U3RvcmVJZCIsIGNfdWludDE2KSwNCj4gKyAgICAgICAgKCJTaXplIiwgY191aW50MTYpLA0KPiAr ICAgICAgICAoIk5hbWUiLCBBUlJBWShjX3VieXRlLCAyKSksDQo+ICsgICAgXQ0KPiArDQo+ICsN Cj4gK2RlZiBSZWZpbmVfRUZJX0lGUl9WQVJTVE9SRShOdW1zKToNCj4gKyAgICBjbGFzcyBFRklf SUZSX1ZBUlNUT1JFKFN0cnVjdHVyZSk6DQo+ICsgICAgICAgIF9wYWNrXyA9IDENCj4gKyAgICAg ICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVB REVSKSwNCj4gKyAgICAgICAgICAgICgiR3VpZCIsIEVGSV9HVUlEKSwNCj4gKyAgICAgICAgICAg ICgiVmFyU3RvcmVJZCIsIGNfdWludDE2KSwNCj4gKyAgICAgICAgICAgICgiU2l6ZSIsIGNfdWlu dDE2KSwNCj4gKyAgICAgICAgICAgICgiTmFtZSIsIEFSUkFZKGNfdWJ5dGUsIE51bXMpKSwNCj4g KyAgICAgICAgXQ0KPiArDQo+ICsgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKSAtPiBOb25lOg0K PiArICAgICAgICAgICAgc2VsZi5IZWFkZXIgPSBFRklfSUZSX09QX0hFQURFUigpDQo+ICsNCj4g KyAgICByZXR1cm4gRUZJX0lGUl9WQVJTVE9SRSgpDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lG Ul9WQVJTVE9SRV9FRkkoU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2Zp ZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiAr ICAgICAgICAoIlZhclN0b3JlSWQiLCBjX3VpbnQxNiksDQo+ICsgICAgICAgICgiR3VpZCIsIEVG SV9HVUlEKSwNCj4gKyAgICAgICAgKCJBdHRyaWJ1dGVzIiwgY191aW50MzIpLA0KPiArICAgICAg ICAoIlNpemUiLCBjX3VpbnQxNiksDQo+ICsgICAgICAgICgiTmFtZSIsIEFSUkFZKGNfdWJ5dGUs IDIpKSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArZGVmIFJlZmluZV9FRklfSUZSX1ZBUlNUT1JF X0VGSShOdW1zKToNCj4gKyAgICBjbGFzcyBFRklfSUZSX1ZBUlNUT1JFX0VGSShTdHJ1Y3R1cmUp Og0KPiArICAgICAgICBfcGFja18gPSAxDQo+ICsgICAgICAgIF9maWVsZHNfID0gWw0KPiArICAg ICAgICAgICAgKCJIZWFkZXIiLCBFRklfSUZSX09QX0hFQURFUiksDQo+ICsgICAgICAgICAgICAo IlZhclN0b3JlSWQiLCBjX3VpbnQxNiksDQo+ICsgICAgICAgICAgICAoIkd1aWQiLCBFRklfR1VJ RCksDQo+ICsgICAgICAgICAgICAoIkF0dHJpYnV0ZXMiLCBjX3VpbnQzMiksDQo+ICsgICAgICAg ICAgICAoIlNpemUiLCBjX3VpbnQxNiksDQo+ICsgICAgICAgICAgICAoIk5hbWUiLCBBUlJBWShj X3VieXRlLCBOdW1zKSksDQo+ICsgICAgICAgIF0NCj4gKw0KPiArICAgICAgICBkZWYgX19pbml0 X18oc2VsZikgLT4gTm9uZToNCj4gKyAgICAgICAgICAgIHNlbGYuSGVhZGVyID0gRUZJX0lGUl9P UF9IRUFERVIoKQ0KPiArDQo+ICsgICAgcmV0dXJuIEVGSV9JRlJfVkFSU1RPUkVfRUZJKCkNCj4g Kw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX0dVSUQoU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18g PSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0lGUl9P UF9IRUFERVIpLA0KPiArICAgICAgICAoIkd1aWQiLCBFRklfR1VJRCksDQo+ICsgICAgXQ0KPiAr DQo+ICsNCj4gK2RlZiBSZWZpbmVfRUZJX0lGUl9CVUZGRVIoTnVtcyk6DQo+ICsgICAgY2xhc3Mg RUZJX0lGUl9CVUZGRVIoU3RydWN0dXJlKToNCj4gKyAgICAgICAgX3BhY2tfID0gMQ0KPiArICAg ICAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAgICAgICgiRGF0YSIsIEFSUkFZKGNfdWJ5dGUs IE51bXMpKSwNCj4gKyAgICAgICAgXQ0KPiArDQo+ICsgICAgICAgIGRlZiBTZXRCdWZmZXIoc2Vs ZiwgQnVmZmVyKToNCj4gKyAgICAgICAgICAgIHNlbGYuQnVmZmVyID0gQnVmZmVyDQo+ICsNCj4g KyAgICByZXR1cm4gRUZJX0lGUl9CVUZGRVIoKQ0KPiArDQo+ICsNCj4gK2RlZiBSZWZpbmVfRUZJ X0lGUl9CSVRfQlVGRkVSKE51bXMpOg0KPiArICAgIGNsYXNzIEVGSV9JRlJfQklUX0JVRkZFUihT dHJ1Y3R1cmUpOg0KPiArICAgICAgICBfcGFja18gPSAxDQo+ICsgICAgICAgIF9maWVsZHNfID0g Ww0KPiArICAgICAgICAgICAgKCJEYXRhIiwgQVJSQVkoY191Ynl0ZSwgTnVtcykpLA0KPiArICAg ICAgICBdDQo+ICsNCj4gKyAgICAgICAgZGVmIFNldEJ1ZmZlcihzZWxmLCBCdWZmZXIpOg0KPiAr ICAgICAgICAgICAgc2VsZi5CdWZmZXIgPSBCdWZmZXINCj4gKw0KPiArICAgIHJldHVybiBFRklf SUZSX0JJVF9CVUZGRVINCj4gKw0KPiArDQo+ICtkZWYgUmVmaW5lX0VGSV9JRlJfQklUKFR5cGUs IFByZUJpdHMsIFNpemUsIERhdGEpOg0KPiArICAgIGlmIFByZUJpdHMgPT0gMDoNCj4gKw0KPiAr ICAgICAgICBjbGFzcyBSZWZpbmVfRUZJX0lGUl9CSVQoU3RydWN0dXJlKToNCj4gKyAgICAgICAg ICAgIF9wYWNrXyA9IDENCj4gKyAgICAgICAgICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAg ICAgICAgICgiRGF0YSIsIFR5cGUsIFNpemUpLCAgIyB0aGUgcmVhbGx5IG5lZWRlZCBkYXRhDQo+ ICsgICAgICAgICAgICAgICAgKCJQb3N0Zml4IiwgVHlwZSwgc2l6ZW9mKFR5cGUpICogOCAtIFNp emUpLA0KPiArICAgICAgICAgICAgXQ0KPiArDQo+ICsgICAgICAgICAgICBkZWYgX19pbml0X18o c2VsZiwgRGF0YSk6DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5EYXRhID0gRGF0YQ0KPiArDQo+ ICsgICAgZWxpZiBzaXplb2YoVHlwZSkgKiA4IC0gU2l6ZSAtIFByZUJpdHMgPT0gMDoNCj4gKw0K PiArICAgICAgICBjbGFzcyBSZWZpbmVfRUZJX0lGUl9CSVQoU3RydWN0dXJlKToNCj4gKyAgICAg ICAgICAgIF9wYWNrXyA9IDENCj4gKyAgICAgICAgICAgIF9maWVsZHNfID0gWw0KPiArICAgICAg ICAgICAgICAgICgiUHJlZml4IiwgVHlwZSwgUHJlQml0cyksDQo+ICsgICAgICAgICAgICAgICAg KCJEYXRhIiwgVHlwZSwgU2l6ZSksICAjIHRoZSByZWFsbHkgbmVlZGVkIGRhdGENCj4gKyAgICAg ICAgICAgIF0NCj4gKw0KPiArICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIERhdGEpOg0K PiArICAgICAgICAgICAgICAgIHNlbGYuRGF0YSA9IERhdGENCj4gKw0KPiArICAgIGVsc2U6DQo+ ICsNCj4gKyAgICAgICAgY2xhc3MgUmVmaW5lX0VGSV9JRlJfQklUKFN0cnVjdHVyZSk6DQo+ICsg ICAgICAgICAgICBfcGFja18gPSAxDQo+ICsgICAgICAgICAgICBfZmllbGRzXyA9IFsNCj4gKyAg ICAgICAgICAgICAgICAoIlByZWZpeCIsIFR5cGUsIFByZUJpdHMpLA0KPiArICAgICAgICAgICAg ICAgICgiRGF0YSIsIFR5cGUsIFNpemUpLCAgIyB0aGUgcmVhbGx5IG5lZWRlZCBkYXRhDQo+ICsg ICAgICAgICAgICAgICAgKCJQb3N0Zml4IiwgVHlwZSwgc2l6ZW9mKFR5cGUpICogOCAtIFNpemUg LSBQcmVCaXRzKSwNCj4gKyAgICAgICAgICAgIF0NCj4gKw0KPiArICAgICAgICAgICAgZGVmIF9f aW5pdF9fKHNlbGYsIERhdGEpOg0KPiArICAgICAgICAgICAgICAgIHNlbGYuRGF0YSA9IERhdGEN Cj4gKw0KPiArICAgIHJldHVybiBSZWZpbmVfRUZJX0lGUl9CSVQoRGF0YSkNCj4gKw0KPiArDQo+ ICtjbGFzcyBFRklfSUZSX0dVSURfVkFSRVFOQU1FKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tf ID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJf T1BfSEVBREVSKSwNCj4gKyAgICAgICAgKCJHdWlkIiwgRUZJX0dVSUQpLA0KPiArICAgICAgICAo IkV4dGVuZE9wQ29kZSIsIGNfdWludDgpLA0KPiArICAgICAgICAoIlF1ZXN0aW9uSWQiLCBjX3Vp bnQxNiksDQo+ICsgICAgICAgICgiTmFtZUlkIiwgY191aW50MTYpLA0KPiArICAgIF0NCj4gKw0K PiArDQo+ICtjbGFzcyBFRklfSElJX1BBQ0tBR0VfSEVBREVSKFN0cnVjdHVyZSk6DQo+ICsgICAg X3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIkxlbmd0aCIsIGNf dWludDMyLCAyNCksDQo+ICsgICAgICAgICgiVHlwZSIsIGNfdWludDMyLCA4KSwNCj4gKyAgICBd DQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0hJSV9TVFJJTkdfUEFDS0FHRV9IRFIoU3RydWN0dXJl KToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgi SGVhZGVyIiwgRUZJX0hJSV9QQUNLQUdFX0hFQURFUiksDQo+ICsgICAgICAgICgiSGRyU2l6ZSIs IGNfdWludDMyKSwNCj4gKyAgICAgICAgKCJTdHJpbmdJbmZvT2Zmc2V0IiwgY191aW50MzIpLA0K PiArICAgICAgICAoIkxhbmd1YWdlV2luZG93IiwgY191c2hvcnQgKiAxNiksDQo+ICsgICAgICAg ICgiTGFuZ3VhZ2VOYW1lIiwgY191aW50MTYpLA0KPiArICAgICAgICAoIkxhbmd1YWdlIiwgY19j aGFyICogMiksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfVkFSU1RPUkVf TkFNRV9WQUxVRShTdHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRz XyA9IFsNCj4gKyAgICAgICAgKCJIZWFkZXIiLCBFRklfSUZSX09QX0hFQURFUiksDQo+ICsgICAg ICAgICgiVmFyU3RvcmVJZCIsIGNfdWludDE2KSwNCj4gKyAgICAgICAgKCJHdWlkIiwgRUZJX0dV SUQpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX0ZPUk0oU3RydWN0dXJl KToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgi SGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiArICAgICAgICAoIkZvcm1JZCIsIGNfdWlu dDE2KSwNCj4gKyAgICAgICAgKCJGb3JtVGl0bGUiLCBjX3VpbnQxNiksDQo+ICsgICAgXQ0KPiAr DQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfR1VJRF9CQU5ORVIoU3RydWN0dXJlKToNCj4gKyAgICBf cGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJ X0lGUl9PUF9IRUFERVIpLA0KPiArICAgICAgICAoIkd1aWQiLCBFRklfR1VJRCksDQo+ICsgICAg ICAgICgiRXh0ZW5kT3BDb2RlIiwgY191Ynl0ZSksDQo+ICsgICAgICAgICgiVGl0bGUiLCBjX3Vp bnQxNiksDQo+ICsgICAgICAgICgiTGluZU51bWJlciIsIGNfdWludDE2KSwNCj4gKyAgICAgICAg KCJBbGlnbm1lbnQiLCBjX3VieXRlKSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJ X0lGUl9HVUlEX1RJTUVPVVQoU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAg X2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0K PiArICAgICAgICAoIkd1aWQiLCBFRklfR1VJRCksDQo+ICsgICAgICAgICgiRXh0ZW5kT3BDb2Rl IiwgY191Ynl0ZSksDQo+ICsgICAgICAgICgiVGltZU91dCIsIGNfdWludDE2KSwNCj4gKyAgICBd DQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lGUl9HVUlEX0xBQkVMKFN0cnVjdHVyZSk6DQo+ICsg ICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIkhlYWRlciIs IEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICAgICAgKCJHdWlkIiwgRUZJX0dVSUQpLA0KPiAr ICAgICAgICAoIkV4dGVuZE9wQ29kZSIsIGNfdWJ5dGUpLA0KPiArICAgICAgICAoIk51bWJlciIs IGNfdWludDE2KSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lGUl9SVUxFKFN0 cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAg ICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICAgICAgKCJSdWxlSWQi LCBjX3VieXRlKSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lGUl9TVEFURU1F TlRfSEVBREVSKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNf ID0gWw0KPiArICAgICAgICAoIlByb21wdCIsIGNfdWludDE2KSwNCj4gKyAgICAgICAgKCJIZWxw IiwgY191aW50MTYpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX1NVQlRJ VExFKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0K PiArICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICAgICAgKCJT dGF0ZW1lbnQiLCBFRklfSUZSX1NUQVRFTUVOVF9IRUFERVIpLA0KPiArICAgICAgICAoIkZsYWdz IiwgY191Ynl0ZSksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfVEVYVChT dHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAg ICAgICAgKCJIZWFkZXIiLCBFRklfSUZSX09QX0hFQURFUiksDQo+ICsgICAgICAgICgiU3RhdGVt ZW50IiwgRUZJX0lGUl9TVEFURU1FTlRfSEVBREVSKSwNCj4gKyAgICAgICAgKCJUZXh0VHdvIiwg Y191aW50MTYpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX0lNQUdFKFN0 cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAg ICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICAgICAgKCJJZCIsIGNf dWludDE2KSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgVmFyU3RvcmVJbmZvTm9kZShV bmlvbik6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAg ICAoIlZhck5hbWUiLCBjX3VpbnQxNiksDQo+ICsgICAgICAgICgiVmFyT2Zmc2V0IiwgY191aW50 MTYpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX1FVRVNUSU9OX0hFQURF UihTdHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4g KyAgICAgICAgKCJIZWFkZXIiLCBFRklfSUZSX1NUQVRFTUVOVF9IRUFERVIpLA0KPiArICAgICAg ICAoIlF1ZXN0aW9uSWQiLCBjX3VpbnQxNiksDQo+ICsgICAgICAgICgiVmFyU3RvcmVJZCIsIGNf dWludDE2KSwNCj4gKyAgICAgICAgKCJWYXJTdG9yZUluZm8iLCBWYXJTdG9yZUluZm9Ob2RlKSwN Cj4gKyAgICAgICAgKCJGbGFncyIsIGNfdWJ5dGUpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtj bGFzcyB1OE5vZGUoU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxk c18gPSBbDQo+ICsgICAgICAgICgiTWluVmFsdWUiLCBjX3VieXRlKSwNCj4gKyAgICAgICAgKCJN YXhWYWx1ZSIsIGNfdWJ5dGUpLA0KPiArICAgICAgICAoIlN0ZXAiLCBjX3VieXRlKSwNCj4gKyAg ICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgdTE2Tm9kZShTdHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNr XyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAgKCJNaW5WYWx1ZSIsIGNfdWlu dDE2KSwNCj4gKyAgICAgICAgKCJNYXhWYWx1ZSIsIGNfdWludDE2KSwNCj4gKyAgICAgICAgKCJT dGVwIiwgY191aW50MTYpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyB1MzJOb2RlKFN0 cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAg ICAgICAoIk1pblZhbHVlIiwgY191aW50MzIpLA0KPiArICAgICAgICAoIk1heFZhbHVlIiwgY191 aW50MzIpLA0KPiArICAgICAgICAoIlN0ZXAiLCBjX3VpbnQzMiksDQo+ICsgICAgXQ0KPiArDQo+ ICsNCj4gK2NsYXNzIHU2NE5vZGUoU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsg ICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiTWluVmFsdWUiLCBjX3VpbnQ2NCksDQo+ICsg ICAgICAgICgiTWF4VmFsdWUiLCBjX3VpbnQ2NCksDQo+ICsgICAgICAgICgiU3RlcCIsIGNfdWlu dDY0KSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgTUlOTUFYU1RFUF9EQVRBKFVuaW9u KToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgi dTgiLCB1OE5vZGUpLA0KPiArICAgICAgICAoInUxNiIsIHUxNk5vZGUpLA0KPiArICAgICAgICAo InUzMiIsIHUzMk5vZGUpLA0KPiArICAgICAgICAoInU2NCIsIHU2NE5vZGUpLA0KPiArICAgIF0N Cj4gKw0KPiArDQo+ICtFRklfSUZSX05VTUVSSUNfU0laRSA9IDB4MDMNCj4gK0VGSV9JRlJfTlVN RVJJQ19TSVpFXzEgPSAweDAwDQo+ICtFRklfSUZSX05VTUVSSUNfU0laRV8yID0gMHgwMQ0KPiAr RUZJX0lGUl9OVU1FUklDX1NJWkVfNCA9IDB4MDINCj4gK0VGSV9JRlJfTlVNRVJJQ19TSVpFXzgg PSAweDAzDQo+ICtFRklfSUZSX0RJU1BMQVkgPSAweDMwDQo+ICtFRklfSUZSX0RJU1BMQVlfSU5U X0RFQyA9IDB4MDANCj4gK0VGSV9JRlJfRElTUExBWV9VSU5UX0RFQyA9IDB4MTANCj4gK0VGSV9J RlJfRElTUExBWV9VSU5UX0hFWCA9IDB4MjANCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX09O RV9PRihTdHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsN Cj4gKyAgICAgICAgKCJIZWFkZXIiLCBFRklfSUZSX09QX0hFQURFUiksDQo+ICsgICAgICAgICgi UXVlc3Rpb24iLCBFRklfSUZSX1FVRVNUSU9OX0hFQURFUiksDQo+ICsgICAgICAgICgiRmxhZ3Mi LCBjX3VieXRlKSwNCj4gKyAgICAgICAgKCJEYXRhIiwgTUlOTUFYU1RFUF9EQVRBKSwNCj4gKyAg ICBdDQo+ICsNCj4gKw0KPiArZGVmIFJlZmluZV9FRklfSUZSX09ORV9PRihUeXBlKToNCj4gKyAg ICBpZiBUeXBlID09IEVGSV9JRlJfVFlQRV9OVU1fU0laRV84Og0KPiArICAgICAgICBEYXRhVHlw ZSA9IHU4Tm9kZQ0KPiArICAgIGVsaWYgVHlwZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMTY6 DQo+ICsgICAgICAgIERhdGFUeXBlID0gdTE2Tm9kZQ0KPiArICAgIGVsaWYgVHlwZSA9PSBFRklf SUZSX1RZUEVfTlVNX1NJWkVfMzI6DQo+ICsgICAgICAgIERhdGFUeXBlID0gdTMyTm9kZQ0KPiAr ICAgIGVsaWYgVHlwZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfNjQ6DQo+ICsgICAgICAgIERh dGFUeXBlID0gdTY0Tm9kZQ0KPiArICAgIGVsc2U6DQo+ICsgICAgICAgIERhdGFUeXBlID0gdTMy Tm9kZQ0KPiArDQo+ICsgICAgY2xhc3MgRUZJX0lGUl9PTkVfT0YoU3RydWN0dXJlKToNCj4gKyAg ICAgICAgX3BhY2tfID0gMQ0KPiArICAgICAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAgICAg ICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiArICAgICAgICAgICAgKCJRdWVzdGlv biIsIEVGSV9JRlJfUVVFU1RJT05fSEVBREVSKSwNCj4gKyAgICAgICAgICAgICgiRmxhZ3MiLCBj X3VieXRlKSwNCj4gKyAgICAgICAgICAgICgiRGF0YSIsIERhdGFUeXBlKSwNCj4gKyAgICAgICAg XQ0KPiArDQo+ICsgICAgcmV0dXJuIEVGSV9JRlJfT05FX09GKCkNCj4gKw0KPiArDQo+ICtFRklf SUZSX0NIRUNLQk9YX0RFRkFVTFQgPSAweDAxDQo+ICtFRklfSUZSX0NIRUNLQk9YX0RFRkFVTFRf TUZHID0gMHgwMg0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfQ0hFQ0tCT1goU3RydWN0dXJl KToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgi SGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiArICAgICAgICAoIlF1ZXN0aW9uIiwgRUZJ X0lGUl9RVUVTVElPTl9IRUFERVIpLA0KPiArICAgICAgICAoIkZsYWdzIiwgY191Ynl0ZSksDQo+ ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfTlVNRVJJQyhTdHJ1Y3R1cmUpOg0K PiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAgKCJIZWFk ZXIiLCBFRklfSUZSX09QX0hFQURFUiksDQo+ICsgICAgICAgICgiUXVlc3Rpb24iLCBFRklfSUZS X1FVRVNUSU9OX0hFQURFUiksDQo+ICsgICAgICAgICgiRmxhZ3MiLCBjX3VieXRlKSwNCj4gKyAg ICAgICAgKCJEYXRhIiwgTUlOTUFYU1RFUF9EQVRBKSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiAr ZGVmIFJlZmluZV9FRklfSUZSX05VTUVSSUMoVHlwZSk6DQo+ICsgICAgaWYgVHlwZSA9PSBFRklf SUZSX1RZUEVfTlVNX1NJWkVfODoNCj4gKyAgICAgICAgRGF0YVR5cGUgPSB1OE5vZGUNCj4gKyAg ICBlbGlmIFR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzE2Og0KPiArICAgICAgICBEYXRh VHlwZSA9IHUxNk5vZGUNCj4gKyAgICBlbGlmIFR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpF XzMyOg0KPiArICAgICAgICBEYXRhVHlwZSA9IHUzMk5vZGUNCj4gKyAgICBlbGlmIFR5cGUgPT0g RUZJX0lGUl9UWVBFX05VTV9TSVpFXzY0Og0KPiArICAgICAgICBEYXRhVHlwZSA9IHU2NE5vZGUN Cj4gKyAgICBlbHNlOg0KPiArICAgICAgICBEYXRhVHlwZSA9IHUzMk5vZGUNCj4gKw0KPiArICAg IGNsYXNzIEVGSV9JRlJfTlVNRVJJQyhTdHJ1Y3R1cmUpOg0KPiArICAgICAgICBfcGFja18gPSAx DQo+ICsgICAgICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAgICAgKCJIZWFkZXIiLCBFRklf SUZSX09QX0hFQURFUiksDQo+ICsgICAgICAgICAgICAoIlF1ZXN0aW9uIiwgRUZJX0lGUl9RVUVT VElPTl9IRUFERVIpLA0KPiArICAgICAgICAgICAgKCJGbGFncyIsIGNfdWJ5dGUpLA0KPiArICAg ICAgICAgICAgKCJEYXRhIiwgRGF0YVR5cGUpLA0KPiArICAgICAgICBdDQo+ICsNCj4gKyAgICBy ZXR1cm4gRUZJX0lGUl9OVU1FUklDKCkNCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX1BBU1NX T1JEKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0K PiArICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICAgICAgKCJR dWVzdGlvbiIsIEVGSV9JRlJfUVVFU1RJT05fSEVBREVSKSwNCj4gKyAgICAgICAgKCJNaW5TaXpl IiwgY191aW50MTYpLA0KPiArICAgICAgICAoIk1heFNpemUiLCBjX3VpbnQxNiksDQo+ICsgICAg XQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9ISUlfVElNRShTdHJ1Y3R1cmUpOg0KPiArICAgIF9w YWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAgKCJIb3VyIiwgY191Ynl0 ZSksDQo+ICsgICAgICAgICgiTWludXRlIiwgY191Ynl0ZSksDQo+ICsgICAgICAgICgiU2Vjb25k IiwgY191Ynl0ZSksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9ISUlfREFURShT dHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAg ICAgICAgKCJZZWFyIiwgY191aW50MTYpLA0KPiArICAgICAgICAoIk1vbnRoIiwgY191Ynl0ZSks DQo+ICsgICAgICAgICgiRGF5IiwgY191Ynl0ZSksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2Ns YXNzIEVGSV9ISUlfUkVGKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9m aWVsZHNfID0gWw0KPiArICAgICAgICAoIlF1ZXN0aW9uSWQiLCBjX3VpbnQxNiksDQo+ICsgICAg ICAgICgiRm9ybUlkIiwgY191aW50MTYpLA0KPiArICAgICAgICAoIkZvcm1TZXRHdWlkIiwgRUZJ X0dVSUQpLA0KPiArICAgICAgICAoIkRldmljZVBhdGgiLCBjX3VpbnQxNiksDQo+ICsgICAgXQ0K PiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfVFlQRV9WQUxVRShVbmlvbik6DQo+ICsgICAgX3Bh Y2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAoInU4IiwgY191Ynl0ZSks DQo+ICsgICAgICAgICgidTE2IiwgY191aW50MTYpLA0KPiArICAgICAgICAoInUzMiIsIGNfdWlu dDMyKSwNCj4gKyAgICAgICAgKCJ1NjQiLCBjX3VpbnQ2NCksDQo+ICsgICAgICAgICgiYiIsIGNf dWJ5dGUpLCAgIw0KPiArICAgICAgICAoInRpbWUiLCBFRklfSElJX1RJTUUpLA0KPiArICAgICAg ICAoImRhdGUiLCBFRklfSElJX0RBVEUpLA0KPiArICAgICAgICAoInN0cmluZyIsIGNfdWludDE2 KSwNCj4gKyAgICAgICAgKCJyZWYiLCBFRklfSElJX1JFRiksDQo+ICsgICAgXQ0KPiArDQo+ICsN Cj4gK2NsYXNzIEVGSV9JRlJfT05FX09GX09QVElPTihTdHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNr XyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAgKCJIZWFkZXIiLCBFRklfSUZS X09QX0hFQURFUiksDQo+ICsgICAgICAgICgiT3B0aW9uIiwgY191aW50MTYpLA0KPiArICAgICAg ICAoIkZsYWdzIiwgY191Ynl0ZSksDQo+ICsgICAgICAgICgiVHlwZSIsIGNfdWJ5dGUpLA0KPiAr ICAgICAgICAoIlZhbHVlIiwgRUZJX0lGUl9UWVBFX1ZBTFVFKSwNCj4gKyAgICBdDQo+ICsNCj4g Kw0KPiArVHlwZURpY3QgPSB7DQo+ICsgICAgRUZJX0lGUl9UWVBFX05VTV9TSVpFXzg6IGNfdWJ5 dGUsDQo+ICsgICAgRUZJX0lGUl9UWVBFX05VTV9TSVpFXzE2OiBjX3VzaG9ydCwNCj4gKyAgICBF RklfSUZSX1RZUEVfTlVNX1NJWkVfMzI6IGNfdWxvbmcsDQo+ICsgICAgRUZJX0lGUl9UWVBFX05V TV9TSVpFXzY0OiBjX3Vsb25nbG9uZywNCj4gKyAgICBFRklfSUZSX1RZUEVfQk9PTEVBTjogY191 Ynl0ZSwNCj4gKyAgICBFRklfSUZSX1RZUEVfVElNRTogRUZJX0hJSV9USU1FLA0KPiArICAgIEVG SV9JRlJfVFlQRV9EQVRFOiBFRklfSElJX0RBVEUsDQo+ICsgICAgRUZJX0lGUl9UWVBFX1NUUklO RzogY191aW50MTYsDQo+ICsgICAgRUZJX0lGUl9UWVBFX1JFRjogRUZJX0hJSV9SRUYsDQo+ICt9 DQo+ICsNCj4gK1R5cGVTaXplRGljdCA9IHsNCj4gKyAgICBFRklfSUZSX1RZUEVfTlVNX1NJWkVf ODogMSwNCj4gKyAgICBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMTY6IDIsDQo+ICsgICAgRUZJX0lG Ul9UWVBFX05VTV9TSVpFXzMyOiA0LA0KPiArICAgIEVGSV9JRlJfVFlQRV9OVU1fU0laRV82NDog OCwNCj4gKyAgICBFRklfSUZSX1RZUEVfQk9PTEVBTjogMSwNCj4gKyAgICBFRklfSUZSX1RZUEVf U1RSSU5HOiAyLA0KPiArfQ0KPiArDQo+ICtTaXplVHlwZURpY3QgPSB7DQo+ICsgICAgMTogY191 aW50OCwNCj4gKyAgICAyOiBjX3VpbnQxNiwNCj4gKyAgICA0OiBjX3VpbnQzMiwNCj4gKyAgICA4 OiBjX3VpbnQ2NCwNCj4gK30NCj4gKw0KPiArDQo+ICtkZWYgUmVmaW5lX0VGSV9JRlJfT05FX09G X09QVElPTihUeXBlLCBOdW1zKToNCj4gKyAgICBWYWx1ZVR5cGUgPSBUeXBlRGljdFtUeXBlXQ0K PiArDQo+ICsgICAgY2xhc3MgRUZJX0lGUl9PTkVfT0ZfT1BUSU9OKFN0cnVjdHVyZSk6DQo+ICsg ICAgICAgIF9wYWNrXyA9IDENCj4gKyAgICAgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICAg ICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICAgICAgICAgICgiT3B0aW9u IiwgY191aW50MTYpLA0KPiArICAgICAgICAgICAgKCJGbGFncyIsIGNfdWJ5dGUpLA0KPiArICAg ICAgICAgICAgKCJUeXBlIiwgY191Ynl0ZSksDQo+ICsgICAgICAgICAgICAoIlZhbHVlIiwgVmFs dWVUeXBlICogTnVtcyksDQo+ICsgICAgICAgIF0NCj4gKw0KPiArICAgICAgICBkZWYgX19pbml0 X18oc2VsZikgLT4gTm9uZToNCj4gKyAgICAgICAgICAgIHNlbGYuSGVhZGVyID0gRUZJX0lGUl9P UF9IRUFERVIoKQ0KPiArDQo+ICsgICAgcmV0dXJuIEVGSV9JRlJfT05FX09GX09QVElPTigpDQo+ ICsNCj4gKw0KPiArRUZJX0lGUl9PUFRJT05fREVGQVVMVCA9IDB4MTANCj4gK0VGSV9JRlJfT1BU SU9OX0RFRkFVTFRfTUZHID0gMHgyMA0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfU1VQUFJF U1NfSUYoU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBb DQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiArICAgIF0NCj4g Kw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX0xPQ0tFRChTdHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNr XyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAgKCJIZWFkZXIiLCBFRklfSUZS X09QX0hFQURFUiksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfQUNUSU9O KFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiAr ICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICAgICAgKCJRdWVz dGlvbiIsIEVGSV9JRlJfUVVFU1RJT05fSEVBREVSKSwNCj4gKyAgICAgICAgKCJRdWVzdGlvbkNv bmZpZyIsIGNfdWludDE2KSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lGUl9S RUYoU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiArICAgICAgICAoIlF1 ZXN0aW9uIiwgRUZJX0lGUl9RVUVTVElPTl9IRUFERVIpLA0KPiArICAgICAgICAoIkZvcm1JZCIs IGNfdWludDE2KSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lGUl9SRUYyKFN0 cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAg ICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICAgICAgKCJRdWVzdGlv biIsIEVGSV9JRlJfUVVFU1RJT05fSEVBREVSKSwNCj4gKyAgICAgICAgKCJGb3JtSWQiLCBjX3Vp bnQxNiksDQo+ICsgICAgICAgICgiUXVlc3Rpb25JZCIsIGNfdWludDE2KSwNCj4gKyAgICBdDQo+ ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lGUl9SRUYzKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tf ID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJf T1BfSEVBREVSKSwNCj4gKyAgICAgICAgKCJRdWVzdGlvbiIsIEVGSV9JRlJfUVVFU1RJT05fSEVB REVSKSwNCj4gKyAgICAgICAgKCJGb3JtSWQiLCBjX3VpbnQxNiksDQo+ICsgICAgICAgICgiUXVl c3Rpb25JZCIsIGNfdWludDE2KSwNCj4gKyAgICAgICAgKCJGb3JtU2V0SWQiLCBFRklfR1VJRCks DQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfUkVGNChTdHJ1Y3R1cmUpOg0K PiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAgKCJIZWFk ZXIiLCBFRklfSUZSX09QX0hFQURFUiksDQo+ICsgICAgICAgICgiUXVlc3Rpb24iLCBFRklfSUZS X1FVRVNUSU9OX0hFQURFUiksDQo+ICsgICAgICAgICgiRm9ybUlkIiwgY191aW50MTYpLA0KPiAr ICAgICAgICAoIlF1ZXN0aW9uSWQiLCBjX3VpbnQxNiksDQo+ICsgICAgICAgICgiRm9ybVNldElk IiwgRUZJX0dVSUQpLA0KPiArICAgICAgICAoIkRldmljZVBhdGgiLCBjX3VpbnQxNiksDQo+ICsg ICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfUkVGNShTdHJ1Y3R1cmUpOg0KPiArICAg IF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAgKCJIZWFkZXIiLCBF RklfSUZSX09QX0hFQURFUiksDQo+ICsgICAgICAgICgiUXVlc3Rpb24iLCBFRklfSUZSX1FVRVNU SU9OX0hFQURFUiksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfUkVTRVRf QlVUVE9OKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0g Ww0KPiArICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICAgICAg KCJTdGF0ZW1lbnQiLCBFRklfSUZSX1NUQVRFTUVOVF9IRUFERVIpLA0KPiArICAgICAgICAoIkRl ZmF1bHRJZCIsIGNfdWludDE2KSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lG Ul9OT19TVUJNSVRfSUYoU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2Zp ZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiAr ICAgICAgICAoIkVycm9yIiwgY191aW50MTYpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFz cyBFRklfSUZSX0lOQ09OU0lTVEVOVF9JRihTdHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNrXyA9IDEN Cj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAgKCJIZWFkZXIiLCBFRklfSUZSX09QX0hF QURFUiksDQo+ICsgICAgICAgICgiRXJyb3IiLCBjX3VpbnQxNiksDQo+ICsgICAgXQ0KPiArDQo+ ICsNCj4gK2NsYXNzIEVGSV9JRlJfRVFfSURfVkFMKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tf ID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJf T1BfSEVBREVSKSwNCj4gKyAgICAgICAgKCJRdWVzdGlvbklkIiwgY191aW50MTYpLA0KPiArICAg ICAgICAoIlZhbHVlIiwgY191aW50MTYpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBF RklfSUZSX0VRX0lEX0lEKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9m aWVsZHNfID0gWw0KPiArICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4g KyAgICAgICAgKCJRdWVzdGlvbklkMSIsIGNfdWludDE2KSwNCj4gKyAgICAgICAgKCJRdWVzdGlv bklkMiIsIGNfdWludDE2KSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lGUl9F UV9JRF9WQUxfTElTVChTdHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmll bGRzXyA9IFsNCj4gKyAgICAgICAgKCJIZWFkZXIiLCBFRklfSUZSX09QX0hFQURFUiksDQo+ICsg ICAgICAgICgiUXVlc3Rpb25JZCIsIGNfdWludDE2KSwNCj4gKyAgICAgICAgKCJMaXN0TGVuZ3Ro IiwgY191aW50MTYpLA0KPiArICAgICAgICAoIlZhbHVlTGlzdCIsIGNfdWludDE2KSwgICMNCj4g KyAgICBdDQo+ICsNCj4gKw0KPiArZGVmIFJlZmluZV9FRklfSUZSX0VRX0lEX1ZBTF9MSVNUKE51 bXMpOg0KPiArICAgIGNsYXNzIEVGSV9JRlJfRVFfSURfVkFMX0xJU1QoU3RydWN0dXJlKToNCj4g KyAgICAgICAgX3BhY2tfID0gMQ0KPiArICAgICAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAg ICAgICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiArICAgICAgICAgICAgKCJRdWVz dGlvbklkIiwgY191aW50MTYpLA0KPiArICAgICAgICAgICAgKCJMaXN0TGVuZ3RoIiwgY191aW50 MTYpLA0KPiArICAgICAgICAgICAgKCJWYWx1ZUxpc3QiLCBjX3VpbnQxNiAqIE51bXMpLA0KPiAr ICAgICAgICBdDQo+ICsNCj4gKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOg0KPiArICAgICAg ICAgICAgc2VsZi5IZWFkZXIgPSBFRklfSUZSX09QX0hFQURFUigpDQo+ICsNCj4gKyAgICByZXR1 cm4gRUZJX0lGUl9FUV9JRF9WQUxfTElTVCgpDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lGUl9B TkQoU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiArICAgIF0NCj4gKw0K PiArDQo+ICtjbGFzcyBFRklfSUZSX09SKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0K PiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVB REVSKSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lGUl9OT1QoU3RydWN0dXJl KToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgi SGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFz cyBFRklfSUZSX0dSQVlfT1VUX0lGKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiAr ICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVS KSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lGUl9EQVRFKFN0cnVjdHVyZSk6 DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIkhl YWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICAgICAgKCJRdWVzdGlvbiIsIEVGSV9J RlJfUVVFU1RJT05fSEVBREVSKSwNCj4gKyAgICAgICAgKCJGbGFncyIsIGNfdWJ5dGUpLA0KPiAr ICAgIF0NCj4gKw0KPiArDQo+ICtFRklfUUZfREFURV9ZRUFSX1NVUFBSRVNTID0gMHgwMQ0KPiAr RUZJX1FGX0RBVEVfTU9OVEhfU1VQUFJFU1MgPSAweDAyDQo+ICtFRklfUUZfREFURV9EQVlfU1VQ UFJFU1MgPSAweDA0DQo+ICsNCj4gK0VGSV9RRl9EQVRFX1NUT1JBR0UgPSAweDMwDQo+ICtRRl9E QVRFX1NUT1JBR0VfTk9STUFMID0gMHgwMA0KPiArUUZfREFURV9TVE9SQUdFX1RJTUUgPSAweDEw DQo+ICtRRl9EQVRFX1NUT1JBR0VfV0FLRVVQID0gMHgyMA0KPiArDQo+ICsNCj4gK2NsYXNzIEVG SV9JRlJfVElNRShTdHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRz XyA9IFsNCj4gKyAgICAgICAgKCJIZWFkZXIiLCBFRklfSUZSX09QX0hFQURFUiksDQo+ICsgICAg ICAgICgiUXVlc3Rpb24iLCBFRklfSUZSX1FVRVNUSU9OX0hFQURFUiksDQo+ICsgICAgICAgICgi RmxhZ3MiLCBjX3VieXRlKSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArUUZfVElNRV9IT1VSX1NV UFBSRVNTID0gMHgwMQ0KPiArUUZfVElNRV9NSU5VVEVfU1VQUFJFU1MgPSAweDAyDQo+ICtRRl9U SU1FX1NFQ09ORF9TVVBQUkVTUyA9IDB4MDQNCj4gK1FGX1RJTUVfU1RPUkFHRSA9IDB4MzANCj4g K1FGX1RJTUVfU1RPUkFHRV9OT1JNQUwgPSAweDAwDQo+ICtRRl9USU1FX1NUT1JBR0VfVElNRSA9 IDB4MTANCj4gK1FGX1RJTUVfU1RPUkFHRV9XQUtFVVAgPSAweDIwDQo+ICsNCj4gKw0KPiArY2xh c3MgRUZJX0lGUl9TVFJJTkcoU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAg X2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0K PiArICAgICAgICAoIlF1ZXN0aW9uIiwgRUZJX0lGUl9RVUVTVElPTl9IRUFERVIpLA0KPiArICAg ICAgICAoIk1pblNpemUiLCBjX3VieXRlKSwNCj4gKyAgICAgICAgKCJNYXhTaXplIiwgY191Ynl0 ZSksDQo+ICsgICAgICAgICgiRmxhZ3MiLCBjX3VieXRlKSwNCj4gKyAgICBdDQo+ICsNCj4gKw0K PiArY2xhc3MgRUZJX0lGUl9SRUZSRVNIKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0K PiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVB REVSKSwNCj4gKyAgICAgICAgKCJSZWZyZXNoSW50ZXJ2YWwiLCBjX3VieXRlKSwNCj4gKyAgICBd DQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lGUl9ESVNBQkxFX0lGKFN0cnVjdHVyZSk6DQo+ICsg ICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIkhlYWRlciIs IEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lG Ul9UT19MT1dFUihTdHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRz XyA9IFsNCj4gKyAgICAgICAgKCJIZWFkZXIiLCBFRklfSUZSX09QX0hFQURFUiksDQo+ICsgICAg XQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfVE9fVVBQRVIoU3RydWN0dXJlKToNCj4gKyAg ICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwg RUZJX0lGUl9PUF9IRUFERVIpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZS X01BUChTdHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsN Cj4gKyAgICAgICAgKCJIZWFkZXIiLCBFRklfSUZSX09QX0hFQURFUiksDQo+ICsgICAgXQ0KPiAr DQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfT1JERVJFRF9MSVNUKFN0cnVjdHVyZSk6DQo+ICsgICAg X3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIkhlYWRlciIsIEVG SV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICAgICAgKCJRdWVzdGlvbiIsIEVGSV9JRlJfUVVFU1RJ T05fSEVBREVSKSwNCj4gKyAgICAgICAgKCJNYXhDb250YWluZXJzIiwgY191Ynl0ZSksDQo+ICsg ICAgICAgICgiRmxhZ3MiLCBjX3VieXRlKSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArRUZJX0lG Ul9VTklRVUVfU0VUID0gMHgwMQ0KPiArRUZJX0lGUl9OT19FTVBUWV9TRVQgPSAweDAyDQo+ICsN Cj4gKw0KPiArY2xhc3MgRUZJX0lGUl9WQVJTVE9SRV9ERVZJQ0UoU3RydWN0dXJlKToNCj4gKyAg ICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwg RUZJX0lGUl9PUF9IRUFERVIpLA0KPiArICAgICAgICAoIkRldmljZVBhdGgiLCBjX3VpbnQxNiks DQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfVkVSU0lPTihTdHJ1Y3R1cmUp Og0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAgKCJI ZWFkZXIiLCBFRklfSUZSX09QX0hFQURFUiksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNz IEVGSV9JRlJfRU5EKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVs ZHNfID0gWw0KPiArICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAg ICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lGUl9NQVRDSChTdHJ1Y3R1cmUpOg0KPiArICAg IF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAgKCJIZWFkZXIiLCBF RklfSUZSX09QX0hFQURFUiksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJf R0VUKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0K PiArICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICAgICAgKCJW YXJTdG9yZUlkIiwgY191aW50MTYpLA0KPiArICAgICAgICAoIlZhclN0b3JlSW5mbyIsIFZhclN0 b3JlSW5mb05vZGUpLA0KPiArICAgICAgICAoIlZhclN0b3JlVHlwZSIsIGNfdWJ5dGUpLA0KPiAr ICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX1NFVChTdHJ1Y3R1cmUpOg0KPiArICAg IF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAgKCJIZWFkZXIiLCBF RklfSUZSX09QX0hFQURFUiksDQo+ICsgICAgICAgICgiVmFyU3RvcmVJZCIsIGNfdWludDE2KSwN Cj4gKyAgICAgICAgKCJWYXJTdG9yZUluZm8iLCBWYXJTdG9yZUluZm9Ob2RlKSwNCj4gKyAgICAg ICAgKCJWYXJTdG9yZVR5cGUiLCBjX3VieXRlKSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xh c3MgRUZJX0lGUl9SRUFEKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9m aWVsZHNfID0gWw0KPiArICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4g KyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lGUl9XUklURShTdHJ1Y3R1cmUpOg0KPiAr ICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAgKCJIZWFkZXIi LCBFRklfSUZSX09QX0hFQURFUiksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9J RlJfRVFVQUwoU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18g PSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiArICAgIF0N Cj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX05PVF9FUVVBTChTdHJ1Y3R1cmUpOg0KPiArICAg IF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAgKCJIZWFkZXIiLCBF RklfSUZSX09QX0hFQURFUiksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJf R1JFQVRFUl9USEFOKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVs ZHNfID0gWw0KPiArICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAg ICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lGUl9HUkVBVEVSX0VRVUFMKFN0cnVjdHVyZSk6 DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIkhl YWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3Mg RUZJX0lGUl9MRVNTX0VRVUFMKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAg IF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwN Cj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lGUl9MRVNTX1RIQU4oU3RydWN0dXJl KToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgi SGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFz cyBFRklfSUZSX0JJVFdJU0VfQU5EKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiAr ICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVS KSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lGUl9CSVRXSVNFX09SKFN0cnVj dHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAg ICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiAr Y2xhc3MgRUZJX0lGUl9CSVRXSVNFX05PVChTdHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNrXyA9IDEN Cj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAgKCJIZWFkZXIiLCBFRklfSUZSX09QX0hF QURFUiksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfU0hJRlRfTEVGVChT dHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAg ICAgICAgKCJIZWFkZXIiLCBFRklfSUZSX09QX0hFQURFUiksDQo+ICsgICAgXQ0KPiArDQo+ICsN Cj4gK2NsYXNzIEVGSV9JRlJfU0hJRlRfUklHSFQoU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18g PSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0lGUl9P UF9IRUFERVIpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX0FERChTdHJ1 Y3R1cmUpOg0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAg ICAgKCJIZWFkZXIiLCBFRklfSUZSX09QX0hFQURFUiksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4g K2NsYXNzIEVGSV9JRlJfU1VCVFJBQ1QoU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFE RVIpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX01VTFRJUExZKFN0cnVj dHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAg ICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiAr Y2xhc3MgRUZJX0lGUl9ESVZJREUoU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsg ICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIp LA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX01PRFVMTyhTdHJ1Y3R1cmUp Og0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAgKCJI ZWFkZXIiLCBFRklfSUZSX09QX0hFQURFUiksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNz IEVGSV9JRlJfUlVMRV9SRUYoU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAg X2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0K PiArICAgICAgICAoIlJ1bGVJZCIsIGNfdWJ5dGUpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtj bGFzcyBFRklfSUZSX1FVRVNUSU9OX1JFRjEoU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAx DQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9I RUFERVIpLA0KPiArICAgICAgICAoIlF1ZXN0aW9uSWQiLCBjX3VpbnQxNiksDQo+ICsgICAgXQ0K PiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfUVVFU1RJT05fUkVGMihTdHJ1Y3R1cmUpOg0KPiAr ICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAgKCJIZWFkZXIi LCBFRklfSUZSX09QX0hFQURFUiksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9J RlJfUVVFU1RJT05fUkVGMyhTdHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBf ZmllbGRzXyA9IFsNCj4gKyAgICAgICAgKCJIZWFkZXIiLCBFRklfSUZSX09QX0hFQURFUiksDQo+ ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfUVVFU1RJT05fUkVGM18yKFN0cnVj dHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAg ICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICAgICAgKCJEZXZpY2VQYXRo IiwgY191aW50MTYpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX1FVRVNU SU9OX1JFRjNfMyhTdHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRz XyA9IFsNCj4gKyAgICAgICAgKCJIZWFkZXIiLCBFRklfSUZSX09QX0hFQURFUiksDQo+ICsgICAg ICAgICgiRGV2aWNlUGF0aCIsIGNfdWludDE2KSwNCj4gKyAgICAgICAgKCJHdWlkIiwgRUZJX0dV SUQpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX1VJTlQ4KFN0cnVjdHVy ZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAo IkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICAgICAgKCJWYWx1ZSIsIGNfdWJ5 dGUpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX1VJTlQxNihTdHJ1Y3R1 cmUpOg0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAg KCJIZWFkZXIiLCBFRklfSUZSX09QX0hFQURFUiksDQo+ICsgICAgICAgICgiVmFsdWUiLCBjX3Vp bnQxNiksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfVUlOVDMyKFN0cnVj dHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAg ICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICAgICAgKCJWYWx1ZSIsIGNf dWludDMyKSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lGUl9VSU5UNjQoU3Ry dWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAg ICAgICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiArICAgICAgICAoIlZhbHVlIiwg Y191aW50NjQpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX1RSVUUoU3Ry dWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAg ICAgICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ ICtjbGFzcyBFRklfSUZSX0ZBTFNFKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiAr ICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVS KSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lGUl9UT19VSU5UKFN0cnVjdHVy ZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAo IkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xh c3MgRUZJX0lGUl9UT19TVFJJTkcoU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsg ICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIp LA0KPiArICAgICAgICAoIkZvcm1hdCIsIGNfdWJ5dGUpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ ICtjbGFzcyBFRklfSUZSX1RPX0JPT0xFQU4oU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAx DQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9I RUFERVIpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX01JRChTdHJ1Y3R1 cmUpOg0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAg KCJIZWFkZXIiLCBFRklfSUZSX09QX0hFQURFUiksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2Ns YXNzIEVGSV9JRlJfRklORChTdHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBf ZmllbGRzXyA9IFsNCj4gKyAgICAgICAgKCJIZWFkZXIiLCBFRklfSUZSX09QX0hFQURFUiksDQo+ ICsgICAgICAgICgiRm9ybWF0IiwgY191Ynl0ZSksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2Ns YXNzIEVGSV9JRlJfVE9LRU4oU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAg X2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0K PiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX1NUUklOR19SRUYxKFN0cnVjdHVy ZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAo IkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICAgICAgKCJTdHJpbmdJZCIsIGNf dWludDE2KSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lGUl9TVFJJTkdfUkVG MihTdHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4g KyAgICAgICAgKCJIZWFkZXIiLCBFRklfSUZSX09QX0hFQURFUiksDQo+ICsgICAgXQ0KPiArDQo+ ICsNCj4gK2NsYXNzIEVGSV9JRlJfQ09ORElUSU9OQUwoU3RydWN0dXJlKToNCj4gKyAgICBfcGFj a18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0lG Ul9PUF9IRUFERVIpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX1pFUk8o U3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsg ICAgICAgICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiArICAgIF0NCj4gKw0KPiAr DQo+ICtjbGFzcyBFRklfSUZSX09ORShTdHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNrXyA9IDENCj4g KyAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAgKCJIZWFkZXIiLCBFRklfSUZSX09QX0hFQURF UiksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfT05FUyhTdHJ1Y3R1cmUp Og0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAgKCJI ZWFkZXIiLCBFRklfSUZSX09QX0hFQURFUiksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNz IEVGSV9JRlJfVU5ERUZJTkVEKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAg IF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwN Cj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0lGUl9MRU5HVEgoU3RydWN0dXJlKToN Cj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVh ZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBF RklfSUZSX0RVUChTdHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRz XyA9IFsNCj4gKyAgICAgICAgKCJIZWFkZXIiLCBFRklfSUZSX09QX0hFQURFUiksDQo+ICsgICAg XQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfVEhJUyhTdHJ1Y3R1cmUpOg0KPiArICAgIF9w YWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAgKCJIZWFkZXIiLCBFRklf SUZSX09QX0hFQURFUiksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK0VGSV9JRlJfRkxBR1NfRklS U1RfTUFUQ0hJTkcgPSAweDAwDQo+ICtFRklfSUZSX0ZMQUdTX0ZJUlNUX05PTl9NQVRDSElORyA9 IDB4MDENCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX1NQQU4oU3RydWN0dXJlKToNCj4gKyAg ICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwg RUZJX0lGUl9PUF9IRUFERVIpLA0KPiArICAgICAgICAoIkZsYWdzIiwgY191Ynl0ZSksDQo+ICsg ICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfVkFMVUUoU3RydWN0dXJlKToNCj4gKyAg ICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwg RUZJX0lGUl9PUF9IRUFERVIpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZS X0RFRkFVTFQoU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18g PSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiArICAgICAg ICAoIkRlZmF1bHRJZCIsIGNfdWludDE2KSwNCj4gKyAgICAgICAgKCJUeXBlIiwgY191Ynl0ZSks DQo+ICsgICAgICAgICgiVmFsdWUiLCBFRklfSUZSX1RZUEVfVkFMVUUpLA0KPiArICAgIF0NCj4g Kw0KPiArDQo+ICtkZWYgUmVmaW5lX0VGSV9JRlJfREVGQVVMVChUeXBlLCBOdW1zKToNCj4gKyAg ICBWYWx1ZVR5cGUgPSBUeXBlRGljdFtUeXBlXQ0KPiArDQo+ICsgICAgY2xhc3MgRUZJX0lGUl9E RUZBVUxUKFN0cnVjdHVyZSk6DQo+ICsgICAgICAgIF9wYWNrXyA9IDENCj4gKyAgICAgICAgX2Zp ZWxkc18gPSBbDQo+ICsgICAgICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwN Cj4gKyAgICAgICAgICAgICgiRGVmYXVsdElkIiwgY191aW50MTYpLA0KPiArICAgICAgICAgICAg KCJUeXBlIiwgY191Ynl0ZSksDQo+ICsgICAgICAgICAgICAoIlZhbHVlIiwgQVJSQVkoVmFsdWVU eXBlLCBOdW1zKSksDQo+ICsgICAgICAgIF0NCj4gKw0KPiArICAgICAgICBkZWYgX19pbml0X18o c2VsZik6DQo+ICsgICAgICAgICAgICBzZWxmLkhlYWRlciA9IEVGSV9JRlJfT1BfSEVBREVSKCkN Cj4gKw0KPiArICAgIHJldHVybiBFRklfSUZSX0RFRkFVTFQoKQ0KPiArDQo+ICsNCj4gK2NsYXNz IEVGSV9JRlJfREVGQVVMVF8yKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAg IF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwN Cj4gKyAgICAgICAgKCJEZWZhdWx0SWQiLCBjX3VpbnQxNiksDQo+ICsgICAgICAgICgiVHlwZSIs IGNfdWJ5dGUpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX0ZPUk1fTUFQ KFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiAr ICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICAgICAgKCJGb3Jt SWQiLCBjX3VpbnQxNiksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfRk9S TV9NQVBfTUVUSE9EKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVs ZHNfID0gWw0KPiArICAgICAgICAoIk1ldGhvZFRpdGxlIiwgY191aW50MTYpLA0KPiArICAgICAg ICAoIk1ldGhvZElkZW50aWZpZXIiLCBFRklfR1VJRCksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4g K2RlZiBSZWZpbmVfRUZJX0lGUl9GT1JNX01BUChOdW1zKToNCj4gKyAgICBjbGFzcyBFRklfSUZS X0ZPUk1fTUFQKFN0cnVjdHVyZSk6DQo+ICsgICAgICAgIF9wYWNrXyA9IDENCj4gKyAgICAgICAg X2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVS KSwNCj4gKyAgICAgICAgICAgICgiRm9ybUlkIiwgY191aW50MTYpLA0KPiArICAgICAgICAgICAg KCJGb3JtTWFwTWV0aG9kIiwgQVJSQVkoRUZJX0lGUl9GT1JNX01BUF9NRVRIT0QsIE51bXMpKSwN Cj4gKyAgICAgICAgXQ0KPiArDQo+ICsgICAgcmV0dXJuIEVGSV9JRlJfRk9STV9NQVAoKQ0KPiAr DQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfQ0FURU5BVEUoU3RydWN0dXJlKToNCj4gKyAgICBfcGFj a18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0lG Ul9PUF9IRUFERVIpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX1NFQ1VS SVRZKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0K PiArICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICAgICAgKCJQ ZXJtaXNzaW9ucyIsIEVGSV9HVUlEKSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJ X0lGUl9NT0RBTF9UQUcoU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2Zp ZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiAr ICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSUZSX1JFRlJFU0hfSUQoU3RydWN0dXJlKToN Cj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVh ZGVyIiwgRUZJX0lGUl9PUF9IRUFERVIpLA0KPiArICAgICAgICAoIlJlZnJlc2hFdmVudEdyb3Vw SWQiLCBFRklfR1VJRCksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfV0FS TklOR19JRihTdHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9 IFsNCj4gKyAgICAgICAgKCJIZWFkZXIiLCBFRklfSUZSX09QX0hFQURFUiksDQo+ICsgICAgICAg ICgiV2FybmluZyIsIGNfdWludDE2KSwNCj4gKyAgICAgICAgKCJUaW1lT3V0IiwgY191Ynl0ZSks DQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9JRlJfTUFUQ0gyKFN0cnVjdHVyZSk6 DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIkhl YWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwNCj4gKyAgICAgICAgKCJTeW50YXhUeXBlIiwgRUZJ X0dVSUQpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSElJX1NUUklOR19CTE9D SyhTdHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4g KyAgICAgICAgKCJCbG9ja1R5cGUiLCBjX3VpbnQ4KSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiAr Y2xhc3MgRUZJX0hJSV9TSUJUX1NUUklOR19TQ1NVX0ZPTlRfQkxPQ0soU3RydWN0dXJlKToNCj4g KyAgICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVy IiwgRUZJX0hJSV9TVFJJTkdfQkxPQ0spLA0KPiArICAgICAgICAoIkZvbnRJZGVudGlmaWVyIiwg Y191aW50OCksDQo+ICsgICAgICAgICgiU3RyaW5nVGV4dCIsIEFSUkFZKGNfdWludDgsIDIpKSwN Cj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0hJSV9TSUJUX1NUUklOR1NfU0NTVV9C TE9DSyhTdHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNrXyA9IDENCj4gKyAgICBfZmllbGRzXyA9IFsN Cj4gKyAgICAgICAgKCJIZWFkZXIiLCBFRklfSElJX1NUUklOR19CTE9DSyksDQo+ICsgICAgICAg ICgiU3RyaW5nQ291bnQiLCBjX3VpbnQxNiksDQo+ICsgICAgICAgICgiU3RyaW5nVGV4dCIsIEFS UkFZKGNfdWludDgsIDIpKSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0hJSV9T SUJUX1NUUklOR1NfU0NTVV9GT05UX0JMT0NLKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0g MQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIkhlYWRlciIsIEVGSV9ISUlfU1RS SU5HX0JMT0NLKSwNCj4gKyAgICAgICAgKCJGb250SWRlbnRpZmllciIsIGNfdWludDgpLA0KPiAr ICAgICAgICAoIlN0cmluZ0NvdW50IiwgY191aW50MTYpLA0KPiArICAgICAgICAoIlN0cmluZ1Rl eHQiLCBBUlJBWShjX3VpbnQ4LCAyKSksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVG SV9ISUlfU0lCVF9TVFJJTkdfVUNTMl9CTE9DSyhTdHJ1Y3R1cmUpOg0KPiArICAgIF9wYWNrXyA9 IDENCj4gKyAgICBfZmllbGRzXyA9IFsNCj4gKyAgICAgICAgKCJIZWFkZXIiLCBFRklfSElJX1NU UklOR19CTE9DSyksDQo+ICsgICAgICAgICgiU3RyaW5nVGV4dCIsIEFSUkFZKGNfdXNob3J0LCAy KSksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9ISUlfU0lCVF9TVFJJTkdfVUNT Ml9GT05UX0JMT0NLKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVs ZHNfID0gWw0KPiArICAgICAgICAoIkhlYWRlciIsIEVGSV9ISUlfU1RSSU5HX0JMT0NLKSwNCj4g KyAgICAgICAgKCJGb250SWRlbnRpZmllciIsIGNfdWludDgpLA0KPiArICAgICAgICAoIlN0cmlu Z1RleHQiLCBBUlJBWShjX3VzaG9ydCwgMikpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFz cyBFRklfSElJX1NJQlRfU1RSSU5HU19VQ1MyX0JMT0NLKFN0cnVjdHVyZSk6DQo+ICsgICAgX3Bh Y2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIkhlYWRlciIsIEVGSV9I SUlfU1RSSU5HX0JMT0NLKSwNCj4gKyAgICAgICAgKCJTdHJpbmdDb3VudCIsIGNfdWludDE2KSwN Cj4gKyAgICAgICAgKCJTdHJpbmdUZXh0IiwgQVJSQVkoY191c2hvcnQsIDIpKSwNCj4gKyAgICBd DQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0hJSV9TSUJUX1NUUklOR1NfVUNTMl9GT05UX0JMT0NL KFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiAr ICAgICAgICAoIkhlYWRlciIsIEVGSV9ISUlfU1RSSU5HX0JMT0NLKSwNCj4gKyAgICAgICAgKCJG b250SWRlbnRpZmllciIsIGNfdWludDgpLA0KPiArICAgICAgICAoIlN0cmluZ0NvdW50IiwgY191 aW50MTYpLA0KPiArICAgICAgICAoIlN0cmluZ1RleHQiLCBBUlJBWShjX3VzaG9ydCwgMikpLA0K PiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSElJX1NJQlRfRFVQTElDQVRFX0JMT0NL KFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiAr ICAgICAgICAoIkhlYWRlciIsIEVGSV9ISUlfU1RSSU5HX0JMT0NLKSwNCj4gKyAgICAgICAgKCJT dHJpbmdJZCIsIGNfdWludDE2KSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0hJ SV9TSUJUX0VYVDFfQkxPQ0soU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAg X2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0hJSV9TVFJJTkdfQkxPQ0sp LA0KPiArICAgICAgICAoIkJsb2NrVHlwZTIiLCBjX3VpbnQ4KSwNCj4gKyAgICAgICAgKCJMZW5n dGgiLCBjX3VpbnQ4KSwNCj4gKyAgICBdDQo+ICsNCj4gKw0KPiArY2xhc3MgRUZJX0hJSV9TSUJU X0VYVDJfQkxPQ0soU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxk c18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0hJSV9TVFJJTkdfQkxPQ0spLA0KPiAr ICAgICAgICAoIkJsb2NrVHlwZTIiLCBjX3VpbnQ4KSwNCj4gKyAgICAgICAgKCJMZW5ndGgiLCBj X3VpbnQxNiksDQo+ICsgICAgXQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9ISUlfU0lCVF9FWFQ0 X0JMT0NLKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0gMQ0KPiArICAgIF9maWVsZHNfID0g Ww0KPiArICAgICAgICAoIkhlYWRlciIsIEVGSV9ISUlfU1RSSU5HX0JMT0NLKSwNCj4gKyAgICAg ICAgKCJCbG9ja1R5cGUyIiwgY191aW50OCksDQo+ICsgICAgICAgICgiTGVuZ3RoIiwgY191aW50 MzIpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklfSElJX1NJQlRfU0tJUDFfQkxP Q0soU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsgICAgX2ZpZWxkc18gPSBbDQo+ ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0hJSV9TVFJJTkdfQkxPQ0spLA0KPiArICAgICAgICAo IlNraXBDb3VudCIsIGNfdWludDgpLA0KPiArICAgIF0NCj4gKw0KPiArDQo+ICtjbGFzcyBFRklf SElJX1NJQlRfU0tJUDJfQkxPQ0soU3RydWN0dXJlKToNCj4gKyAgICBfcGFja18gPSAxDQo+ICsg ICAgX2ZpZWxkc18gPSBbDQo+ICsgICAgICAgICgiSGVhZGVyIiwgRUZJX0hJSV9TVFJJTkdfQkxP Q0spLA0KPiArICAgICAgICAoIlNraXBDb3VudCIsIGNfdWludDE2KSwNCj4gKyAgICBdDQo+ICsN Cj4gKw0KPiArRUZJX0lGUl9GT1JNX09QID0gMHgwMQ0KPiArRUZJX0lGUl9TVUJUSVRMRV9PUCA9 IDB4MDINCj4gK0VGSV9JRlJfVEVYVF9PUCA9IDB4MDMNCj4gK0VGSV9JRlJfSU1BR0VfT1AgPSAw eDA0DQo+ICtFRklfSUZSX09ORV9PRl9PUCA9IDB4MDUNCj4gK0VGSV9JRlJfQ0hFQ0tCT1hfT1Ag PSAweDA2DQo+ICtFRklfSUZSX05VTUVSSUNfT1AgPSAweDA3DQo+ICtFRklfSUZSX1BBU1NXT1JE X09QID0gMHgwOA0KPiArRUZJX0lGUl9PTkVfT0ZfT1BUSU9OX09QID0gMHgwOQ0KPiArRUZJX0lG Ul9TVVBQUkVTU19JRl9PUCA9IDB4MEENCj4gK0VGSV9JRlJfTE9DS0VEX09QID0gMHgwQg0KPiAr RUZJX0lGUl9BQ1RJT05fT1AgPSAweDBDDQo+ICtFRklfSUZSX1JFU0VUX0JVVFRPTl9PUCA9IDB4 MEQNCj4gK0VGSV9JRlJfRk9STV9TRVRfT1AgPSAweDBFDQo+ICtFRklfSUZSX1JFRl9PUCA9IDB4 MEYNCj4gK0VGSV9JRlJfTk9fU1VCTUlUX0lGX09QID0gMHgxMA0KPiArRUZJX0lGUl9JTkNPTlNJ U1RFTlRfSUZfT1AgPSAweDExDQo+ICtFRklfSUZSX0VRX0lEX1ZBTF9PUCA9IDB4MTINCj4gK0VG SV9JRlJfRVFfSURfSURfT1AgPSAweDEzDQo+ICtFRklfSUZSX0VRX0lEX1ZBTF9MSVNUX09QID0g MHgxNA0KPiArRUZJX0lGUl9BTkRfT1AgPSAweDE1DQo+ICtFRklfSUZSX09SX09QID0gMHgxNg0K PiArRUZJX0lGUl9OT1RfT1AgPSAweDE3DQo+ICtFRklfSUZSX1JVTEVfT1AgPSAweDE4DQo+ICtF RklfSUZSX0dSQVlfT1VUX0lGX09QID0gMHgxOQ0KPiArRUZJX0lGUl9EQVRFX09QID0gMHgxQQ0K PiArRUZJX0lGUl9USU1FX09QID0gMHgxQg0KPiArRUZJX0lGUl9TVFJJTkdfT1AgPSAweDFDDQo+ ICtFRklfSUZSX1JFRlJFU0hfT1AgPSAweDFEDQo+ICtFRklfSUZSX0RJU0FCTEVfSUZfT1AgPSAw eDFFDQo+ICtFRklfSUZSX1RPX0xPV0VSX09QID0gMHgyMA0KPiArRUZJX0lGUl9UT19VUFBFUl9P UCA9IDB4MjENCj4gK0VGSV9JRlJfTUFQX09QID0gMHgyMg0KPiArRUZJX0lGUl9PUkRFUkVEX0xJ U1RfT1AgPSAweDIzDQo+ICtFRklfSUZSX1ZBUlNUT1JFX09QID0gMHgyNA0KPiArRUZJX0lGUl9W QVJTVE9SRV9OQU1FX1ZBTFVFX09QID0gMHgyNQ0KPiArRUZJX0lGUl9WQVJTVE9SRV9FRklfT1Ag PSAweDI2DQo+ICtFRklfSUZSX1ZBUlNUT1JFX0RFVklDRV9PUCA9IDB4MjcNCj4gK0VGSV9JRlJf VkVSU0lPTl9PUCA9IDB4MjgNCj4gK0VGSV9JRlJfRU5EX09QID0gMHgyOQ0KPiArRUZJX0lGUl9N QVRDSF9PUCA9IDB4MkENCj4gK0VGSV9JRlJfR0VUX09QID0gMHgyQg0KPiArRUZJX0lGUl9TRVRf T1AgPSAweDJDDQo+ICtFRklfSUZSX1JFQURfT1AgPSAweDJEDQo+ICtFRklfSUZSX1dSSVRFX09Q ID0gMHgyRQ0KPiArRUZJX0lGUl9FUVVBTF9PUCA9IDB4MkYNCj4gK0VGSV9JRlJfTk9UX0VRVUFM X09QID0gMHgzMA0KPiArRUZJX0lGUl9HUkVBVEVSX1RIQU5fT1AgPSAweDMxDQo+ICtFRklfSUZS X0dSRUFURVJfRVFVQUxfT1AgPSAweDMyDQo+ICtFRklfSUZSX0xFU1NfVEhBTl9PUCA9IDB4MzMN Cj4gK0VGSV9JRlJfTEVTU19FUVVBTF9PUCA9IDB4MzQNCj4gK0VGSV9JRlJfQklUV0lTRV9BTkRf T1AgPSAweDM1DQo+ICtFRklfSUZSX0JJVFdJU0VfT1JfT1AgPSAweDM2DQo+ICtFRklfSUZSX0JJ VFdJU0VfTk9UX09QID0gMHgzNw0KPiArRUZJX0lGUl9TSElGVF9MRUZUX09QID0gMHgzOA0KPiAr RUZJX0lGUl9TSElGVF9SSUdIVF9PUCA9IDB4MzkNCj4gK0VGSV9JRlJfQUREX09QID0gMHgzQQ0K PiArRUZJX0lGUl9TVUJUUkFDVF9PUCA9IDB4M0INCj4gK0VGSV9JRlJfTVVMVElQTFlfT1AgPSAw eDNDDQo+ICtFRklfSUZSX0RJVklERV9PUCA9IDB4M0QNCj4gK0VGSV9JRlJfTU9EVUxPX09QID0g MHgzRQ0KPiArRUZJX0lGUl9SVUxFX1JFRl9PUCA9IDB4M0YNCj4gK0VGSV9JRlJfUVVFU1RJT05f UkVGMV9PUCA9IDB4NDANCj4gK0VGSV9JRlJfUVVFU1RJT05fUkVGMl9PUCA9IDB4NDENCj4gK0VG SV9JRlJfVUlOVDhfT1AgPSAweDQyDQo+ICtFRklfSUZSX1VJTlQxNl9PUCA9IDB4NDMNCj4gK0VG SV9JRlJfVUlOVDMyX09QID0gMHg0NA0KPiArRUZJX0lGUl9VSU5UNjRfT1AgPSAweDQ1DQo+ICtF RklfSUZSX1RSVUVfT1AgPSAweDQ2DQo+ICtFRklfSUZSX0ZBTFNFX09QID0gMHg0Nw0KPiArRUZJ X0lGUl9UT19VSU5UX09QID0gMHg0OA0KPiArRUZJX0lGUl9UT19TVFJJTkdfT1AgPSAweDQ5DQo+ ICtFRklfSUZSX1RPX0JPT0xFQU5fT1AgPSAweDRBDQo+ICtFRklfSUZSX01JRF9PUCA9IDB4NEIN Cj4gK0VGSV9JRlJfRklORF9PUCA9IDB4NEMNCj4gK0VGSV9JRlJfVE9LRU5fT1AgPSAweDREDQo+ ICtFRklfSUZSX1NUUklOR19SRUYxX09QID0gMHg0RQ0KPiArRUZJX0lGUl9TVFJJTkdfUkVGMl9P UCA9IDB4NEYNCj4gK0VGSV9JRlJfQ09ORElUSU9OQUxfT1AgPSAweDUwDQo+ICtFRklfSUZSX1FV RVNUSU9OX1JFRjNfT1AgPSAweDUxDQo+ICtFRklfSUZSX1pFUk9fT1AgPSAweDUyDQo+ICtFRklf SUZSX09ORV9PUCA9IDB4NTMNCj4gK0VGSV9JRlJfT05FU19PUCA9IDB4NTQNCj4gK0VGSV9JRlJf VU5ERUZJTkVEX09QID0gMHg1NQ0KPiArRUZJX0lGUl9MRU5HVEhfT1AgPSAweDU2DQo+ICtFRklf SUZSX0RVUF9PUCA9IDB4NTcNCj4gK0VGSV9JRlJfVEhJU19PUCA9IDB4NTgNCj4gK0VGSV9JRlJf U1BBTl9PUCA9IDB4NTkNCj4gK0VGSV9JRlJfVkFMVUVfT1AgPSAweDVBDQo+ICtFRklfSUZSX0RF RkFVTFRfT1AgPSAweDVCDQo+ICtFRklfSUZSX0RFRkFVTFRTVE9SRV9PUCA9IDB4NUMNCj4gK0VG SV9JRlJfRk9STV9NQVBfT1AgPSAweDVEDQo+ICtFRklfSUZSX0NBVEVOQVRFX09QID0gMHg1RQ0K PiArRUZJX0lGUl9HVUlEX09QID0gMHg1Rg0KPiArRUZJX0lGUl9TRUNVUklUWV9PUCA9IDB4NjAN Cj4gK0VGSV9JRlJfTU9EQUxfVEFHX09QID0gMHg2MQ0KPiArRUZJX0lGUl9SRUZSRVNIX0lEX09Q ID0gMHg2Mg0KPiArRUZJX0lGUl9XQVJOSU5HX0lGX09QID0gMHg2Mw0KPiArRUZJX0lGUl9NQVRD SDJfT1AgPSAweDY0DQo+ICtFRklfSUZSX1NIT1dOX0RFRkFVTFRTVE9SRV9PUCA9IDB4NjUNCj4g Kw0KPiArQ29uZGl0aW9uT3BzID0gWw0KPiArICAgIEVGSV9JRlJfRElTQUJMRV9JRl9PUCwNCj4g KyAgICBFRklfSUZSX1NVUFBSRVNTX0lGX09QLA0KPiArICAgIEVGSV9JRlJfR1JBWV9PVVRfSUZf T1AsDQo+ICsgICAgRUZJX0lGUl9JTkNPTlNJU1RFTlRfSUZfT1AsDQo+ICtdDQo+ICtCYXNpY0Rh dGFUeXBlcyA9IFsNCj4gKyAgICAiVUlOVDgiLA0KPiArICAgICJVSU5UMTYiLA0KPiArICAgICJV SU5UMzIiLA0KPiArICAgICJVSU5UNjQiLA0KPiArICAgICJFRklfSElJX0RBVEUiLA0KPiArICAg ICJFRklfSElJX1RJTUUiLA0KPiArICAgICJFRklfSElJX1JFRiIsDQo+ICtdDQo+ICsNCj4gKw0K PiArZGVmIFJlZmluZV9FRklfSUZSX0dVSURfT1BUSU9OS0VZKFR5cGUpOg0KPiArICAgIFZhbHVl VHlwZSA9IFR5cGVEaWN0W1R5cGVdDQo+ICsNCj4gKyAgICBjbGFzcyBFRklfSUZSX0dVSURfT1BU SU9OS0VZKFN0cnVjdHVyZSk6DQo+ICsgICAgICAgIF9wYWNrXyA9IDENCj4gKyAgICAgICAgX2Zp ZWxkc18gPSBbDQo+ICsgICAgICAgICAgICAoIkhlYWRlciIsIEVGSV9JRlJfT1BfSEVBREVSKSwN Cj4gKyAgICAgICAgICAgICgiR3VpZCIsIEVGSV9HVUlEKSwNCj4gKyAgICAgICAgICAgICgiRXh0 ZW5kT3BDb2RlIiwgY191aW50OCksDQo+ICsgICAgICAgICAgICAoIlF1ZXN0aW9uSWQiLCBjX3Vp bnQxNiksDQo+ICsgICAgICAgICAgICAoIk9wdGlvblZhbHVlIiwgVmFsdWVUeXBlKSwNCj4gKyAg ICAgICAgICAgICgiS2V5VmFsdWUiLCBjX3VpbnQxNiksDQo+ICsgICAgICAgIF0NCj4gKw0KPiAr ICAgIHJldHVybiBFRklfSUZSX0dVSURfT1BUSU9OS0VZKCkNCj4gKw0KPiArDQo+ICtFRklfSUZS X0VYVEVORF9PUF9PUFRJT05LRVkgPSAweDANCj4gK0VGSV9JRlJfRVhURU5EX09QX1ZBUkVRTkFN RSA9IDB4MQ0KPiArDQo+ICsNCj4gK2NsYXNzIEVGSV9DT01QQVJFX1RZUEUoRW51bSk6DQo+ICsg ICAgRVFVQUwgPSAwDQo+ICsgICAgTEVTU19FUVVBTCA9IDENCj4gKyAgICBMRVNTX1RIQU4gPSAy DQo+ICsgICAgR1JFQVRFUl9USEFOID0gMw0KPiArICAgIEdSRUFURVJfRVFVQUwgPSA0DQo+IGRp ZmYgLS1naXQgYS9CYXNlVG9vbHMvU291cmNlL1B5dGhvbi9WZnJDb21waWxlci9JZnJFcnJvci5w eQ0KPiBiL0Jhc2VUb29scy9Tb3VyY2UvUHl0aG9uL1ZmckNvbXBpbGVyL0lmckVycm9yLnB5DQo+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAuLjhkMmVlYzFhYWUNCj4g LS0tIC9kZXYvbnVsbA0KPiArKysgYi9CYXNlVG9vbHMvU291cmNlL1B5dGhvbi9WZnJDb21waWxl ci9JZnJFcnJvci5weQ0KPiBAQCAtMCwwICsxLDE1MyBAQA0KPiArIyMgQGZpbGUNCj4gKyMgVmZy Q29tcGlsZXIgZXJyb3IgaGFuZGxlci4NCj4gKyMNCj4gKyMgQ29weXJpZ2h0IChjKSAyMDIyLSwg SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArIyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiArIyMNCj4gKw0KPiArZnJv bSBlbnVtIGltcG9ydCBFbnVtDQo+ICtmcm9tIENvbW1vbiBpbXBvcnQgRWRrTG9nZ2VyDQo+ICtm cm9tIENvbW1vbi5CdWlsZFRvb2xFcnJvciBpbXBvcnQgKg0KPiArDQo+ICsNCj4gK2NsYXNzIFZm clJldHVybkNvZGUoRW51bSk6DQo+ICsgICAgVkZSX1JFVFVSTl9TVUNDRVNTID0gMA0KPiArICAg IFZGUl9SRVRVUk5fRVJST1JfU0tJUEVEID0gMQ0KPiArICAgIFZGUl9SRVRVUk5fRkFUQUxfRVJS T1IgPSAyDQo+ICsgICAgVkZSX1JFVFVSTl9NSVNNQVRDSEVEID0gMw0KPiArICAgIFZGUl9SRVRV Uk5fSU5WQUxJRF9QQVJBTUVURVIgPSA0DQo+ICsgICAgVkZSX1JFVFVSTl9PVVRfRk9SX1JFU09V UkNFUyA9IDUNCj4gKyAgICBWRlJfUkVUVVJOX1VOU1VQUE9SVEVEID0gNg0KPiArICAgIFZGUl9S RVRVUk5fUkVERUZJTkVEID0gNw0KPiArICAgIFZGUl9SRVRVUk5fRk9STUlEX1JFREVGSU5FRCA9 IDgNCj4gKyAgICBWRlJfUkVUVVJOX1FVRVNUSU9OSURfUkVERUZJTkVEID0gOQ0KPiArICAgIFZG Ul9SRVRVUk5fVkFSU1RPUkVJRF9SRURFRklORUQgPSAxMA0KPiArICAgIFZGUl9SRVRVUk5fVU5E RUZJTkVEID0gMTENCj4gKyAgICBWRlJfUkVUVVJOX1ZBUl9OT1RERUZJTkVEX0JZX1FVRVNUSU9O ID0gMTINCj4gKyAgICBWRlJfUkVUVVJOX1ZBUlNUT1JFX0RBVEFUWVBFX1JFREVGSU5FRF9FUlJP UiA9IDEzDQo+ICsgICAgVkZSX1JFVFVSTl9HRVRfRUZJVkFSU1RPUkVfRVJST1IgPSAxNA0KPiAr ICAgIFZGUl9SRVRVUk5fRUZJVkFSU1RPUkVfVVNFX0VSUk9SID0gMTUNCj4gKyAgICBWRlJfUkVU VVJOX0VGSVZBUlNUT1JFX1NJWkVfRVJST1IgPSAxNg0KPiArICAgIFZGUl9SRVRVUk5fR0VUX05W VkFSU1RPUkVfRVJST1IgPSAxNw0KPiArICAgIFZGUl9SRVRVUk5fUVZBUl9SRVVTRSA9IDE4DQo+ ICsgICAgVkZSX1JFVFVSTl9GTEFHU19VTlNVUFBPUlRFRCA9IDE5DQo+ICsgICAgVkZSX1JFVFVS Tl9FUlJPUl9BUlJBUllfTlVNID0gMjANCj4gKyAgICBWRlJfUkVUVVJOX0RBVEFfU1RSSU5HX0VS Uk9SID0gMjENCj4gKyAgICBWRlJfUkVUVVJOX0RFRkFVTFRfVkFMVUVfUkVERUZJTkVEID0gMjIN Cj4gKyAgICBWRlJfUkVUVVJOX0NPTlNUQU5UX09OTFkgPSAyMw0KPiArICAgIFZGUl9SRVRVUk5f VkFSU1RPUkVfTkFNRV9SRURFRklORURfRVJST1IgPSAyNA0KPiArICAgIFZGUl9SRVRVUk5fQklU X1dJRFRIX0VSUk9SID0gMjUNCj4gKyAgICBWRlJfUkVUVVJOX1NUUklOR19UT19VSU5UX09WRVJG TE9XID0gMjYNCj4gKyAgICBWRlJfUkVUVVJOX0NPREVVTkRFRklORUQgPSAyNw0KPiArDQo+ICsN Cj4gK3ZmckVycm9yTWVzc2FnZSA9IHsNCj4gKyAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5f U1VDQ0VTUzogIiIsDQo+ICsgICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0VSUk9SX1NLSVBF RDogIiIsDQo+ICsgICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0ZBVEFMX0VSUk9SOiAiZmF0 YWwgZXJyb3IhISIsDQo+ICsgICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX01JU01BVENIRUQ6 ICJ1bmV4cGVjdGVkIHRva2VuIiwNCj4gKyAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5W QUxJRF9QQVJBTUVURVI6ICJpbnZhbGlkIHBhcmFtZXRlciIsDQo+ICsgICAgVmZyUmV0dXJuQ29k ZS5WRlJfUkVUVVJOX09VVF9GT1JfUkVTT1VSQ0VTOiAic3lzdGVtIG91dCBvZg0KPiBtZW1vcnki LA0KPiArICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9VTlNVUFBPUlRFRDogInVuc3VwcG9y dGVkIiwNCj4gKyAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fUkVERUZJTkVEOiAiYWxyZWFk eSBkZWZpbmVkIiwNCj4gKyAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fRk9STUlEX1JFREVG SU5FRDogImZvcm0gaWQgYWxyZWFkeQ0KPiBkZWZpbmVkIiwNCj4gKyAgICBWZnJSZXR1cm5Db2Rl LlZGUl9SRVRVUk5fUVVFU1RJT05JRF9SRURFRklORUQ6ICJxdWVzdGlvbiBpZA0KPiBhbHJlYWR5 IGRlZmluZWQiLA0KPiArICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9WQVJTVE9SRUlEX1JF REVGSU5FRDogInZhcnN0b3JlIGlkDQo+IGFscmVhZHkgZGVmaW5lZCIsDQo+ICsgICAgVmZyUmV0 dXJuQ29kZS5WRlJfUkVUVVJOX1VOREVGSU5FRDogInVuZGVmaW5lZCIsDQo+ICsgICAgVmZyUmV0 dXJuQ29kZS5WRlJfUkVUVVJOX1ZBUl9OT1RERUZJTkVEX0JZX1FVRVNUSU9OOiAic29tZQ0KPiB2 YXJpYWJsZSBoYXMgbm90IGRlZmluZWQgYnkgYSBxdWVzdGlvbiIsDQo+ICsgICAgVmZyUmV0dXJu Q29kZS5WRlJfUkVUVVJOX1ZBUlNUT1JFX0RBVEFUWVBFX1JFREVGSU5FRF9FUlJPUjoNCj4gIkRh dGEgU3RydWN0dXJlIGlzIGRlZmluZWQgYnkgbW9yZSB0aGFuIG9uZSB2YXJzdG9yZXM6IFwNCj4g KyAgICAgICAgICAgIGl0IGNhbid0IGJlIHJlZmVycmVkIGFzIHZhcnN0b3JlOiBvbmx5IHZhcnN0 b3JlIG5hbWUgY291bGQgYmUgdXNlZC4iLA0KPiArICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVS Tl9HRVRfRUZJVkFSU1RPUkVfRVJST1I6ICJnZXQgZWZpIHZhcnN0b3JlDQo+IGVycm9yIiwNCj4g KyAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fRUZJVkFSU1RPUkVfVVNFX0VSUk9SOiAiY2Fu IG5vdCB1c2UgdGhlDQo+IGVmaSB2YXJzdG9yZSBsaWtlIHRoaXMiLA0KPiArICAgIFZmclJldHVy bkNvZGUuVkZSX1JFVFVSTl9FRklWQVJTVE9SRV9TSVpFX0VSUk9SOiAidW5zdXBwb3J0IGVmaQ0K PiB2YXJzdG9yZSBzaXplIHNob3VsZCBiZSA8PSA4IGJ5dGVzIiwNCj4gKyAgICBWZnJSZXR1cm5D b2RlLlZGUl9SRVRVUk5fR0VUX05WVkFSU1RPUkVfRVJST1I6ICJnZXQgbmFtZSB2YWx1ZQ0KPiB2 YXJzdG9yZSBlcnJvciIsDQo+ICsgICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1FWQVJfUkVV U0U6ICJ2YXJpYWJsZSByZXVzZWQgYnkgbW9yZQ0KPiB0aGFuIG9uZSBxdWVzdGlvbiIsDQo+ICsg ICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0ZMQUdTX1VOU1VQUE9SVEVEOiAiZmxhZ3MgdW5z dXBwb3J0ZWQiLA0KPiArICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9FUlJPUl9BUlJBUllf TlVNOiAiYXJyYXkgbnVtYmVyDQo+IGVycm9yOiB0aGUgdmFsaWQgdmFsdWUgaXMgaW4gXA0KPiAr ICAgICAgICAoMCB+IE1BWF9JTkRFWC0xIGZvciBVRUZJIHZmciBhbmQgaW4gKDEgfiBNQVhfSU5E RVggZm9yIEZyYW1ld29yaw0KPiBWZnIiLA0KPiArICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVS Tl9EQVRBX1NUUklOR19FUlJPUjogImRhdGEgZmllbGQgc3RyaW5nDQo+IGVycm9yIG9yIG5vdCBz dXBwb3J0IiwNCj4gKyAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fREVGQVVMVF9WQUxVRV9S RURFRklORUQ6ICJkZWZhdWx0IHZhbHVlDQo+IHJlLWRlZmluZWQgd2l0aCBkaWZmZXJlbnQgdmFs dWUiLA0KPiArICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9DT05TVEFOVF9PTkxZOiAib25s eSBjb25zdGFudCBpcyBhbGxvd2VkDQo+IGluIHRoZSBleHByZXNzaW9uIiwNCj4gKyAgICBWZnJS ZXR1cm5Db2RlLlZGUl9SRVRVUk5fVkFSU1RPUkVfTkFNRV9SRURFRklORURfRVJST1I6DQo+ICJW YXJzdG9yZSBuYW1lIGlzIGRlZmluZWQgYnkgbW9yZSB0aGFuIG9uZSB2YXJzdG9yZXM6IGl0IGNh bid0IGJlIHJlZmVycmVkIGFzDQo+IHZhcnN0b3JlOlwNCj4gKyAgICAgICAgb25seSB2YXJzdG9y ZSBzdHJ1Y3R1cmUgbmFtZSBjb3VsZCBiZSB1c2VkLiIsDQo+ICsgICAgVmZyUmV0dXJuQ29kZS5W RlJfUkVUVVJOX0JJVF9XSURUSF9FUlJPUjogImJpdCB3aWR0aCBtdXN0IGJlIDw9DQo+IHNpemVv ZiAodHlwZSAqIDggYW5kIHRoZSBtYXggd2lkdGggY2FuIG5vdCA+IDMyIiwNCj4gKyAgICBWZnJS ZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1RSSU5HX1RPX1VJTlRfT1ZFUkZMT1c6ICJTdHJpbmcgdG8N Cj4gVUlOVCogT3ZlcmZsb3ciLA0KPiArICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9DT0RF VU5ERUZJTkVEOiAidW5kZWZpbmVkIEVycm9yIENvZGUiLA0KPiArfQ0KPiArDQo+ICsNCj4gK2Ns YXNzIEVGSV9WRlJfV0FSTklOR19DT0RFKEVudW0pOg0KPiArICAgIFZGUl9XQVJOSU5HX0RFRkFV TFRfVkFMVUVfUkVERUZJTkVEID0gMA0KPiArICAgIFZGUl9XQVJOSU5HX0FDVElPTl9XSVRIX1RF WFRfVFdPID0gMQ0KPiArICAgIFZGUl9XQVJOSU5HX09CU09MRVRFRF9GUkFNRVdPUktfT1BDT0RF ID0gMg0KPiArICAgIFZGUl9XQVJOSU5HX0NPREVVTkRFRklORUQgPSAzDQo+ICsNCj4gKw0KPiAr dmZyV2FybmluZ01lc3NhZ2UgPSB7DQo+ICsgICAgRUZJX1ZGUl9XQVJOSU5HX0NPREUuVkZSX1dB Uk5JTkdfREVGQVVMVF9WQUxVRV9SRURFRklORUQ6DQo+ICI6IGRlZmF1bHQgdmFsdWUgcmUtZGVm aW5lZCB3aXRoIGRpZmZlcmVudCB2YWx1ZSIsDQo+ICsgICAgRUZJX1ZGUl9XQVJOSU5HX0NPREUu VkZSX1dBUk5JTkdfQUNUSU9OX1dJVEhfVEVYVF9UV086ICI6DQo+IEFjdGlvbiBvcGNvZGUgc2hv dWxkIG5vdCBoYXZlIFRleHRUd28gcGFydCIsDQo+ICsNCj4gRUZJX1ZGUl9XQVJOSU5HX0NPREUu VkZSX1dBUk5JTkdfT0JTT0xFVEVEX0ZSQU1FV09SS19PUENPDQo+IERFOiAiOiBOb3QgcmVjb21t ZW5kIHRvIHVzZSBvYnNvbGV0ZWQgZnJhbWV3b3JrIG9wY29kZSIsDQo+ICsgICAgRUZJX1ZGUl9X QVJOSU5HX0NPREUuVkZSX1dBUk5JTkdfQ09ERVVOREVGSU5FRDogIjoNCj4gdW5kZWZpbmVkIFdh cm5pbmcgQ29kZSIsDQo+ICt9DQo+ICsNCj4gKw0KPiArY2xhc3MgVmZyRXJyb3JIYW5kbGU6DQo+ ICsgICAgZGVmIF9faW5pdF9fKHNlbGYpOg0KPiArICAgICAgICBzZWxmLklucHV0RmlsZU5hbWUg PSBOb25lDQo+ICsgICAgICAgIHNlbGYudmZyRXJyb3JNZXNzYWdlID0gdmZyRXJyb3JNZXNzYWdl DQo+ICsgICAgICAgIHNlbGYudmZyV2FybmluZ01lc3NhZ2UgPSB2ZnJXYXJuaW5nTWVzc2FnZQ0K PiArICAgICAgICBzZWxmLldhcm5pbmdBc0Vycm9yID0gRmFsc2UNCj4gKw0KPiArICAgIGRlZiBT ZXRXYXJuaW5nQXNFcnJvcihzZWxmLCBXYXJuaW5nQXNFcnJvcik6DQo+ICsgICAgICAgIHNlbGYu V2FybmluZ0FzRXJyb3IgPSBXYXJuaW5nQXNFcnJvcg0KPiArDQo+ICsgICAgZGVmIFNldElucHV0 RmlsZShzZWxmLCBJbnB1dEZpbGUpOg0KPiArICAgICAgICBzZWxmLklucHV0RmlsZU5hbWUgPSBJ bnB1dEZpbGUNCj4gKw0KPiArICAgIGRlZiBIYW5kbGVXYXJuaW5nKHNlbGYsIFdhcm5pbmdDb2Rl LCBMaW5lTnVtPU5vbmUsDQo+IFRva2VuVmFsdWU9Tm9uZSk6DQo+ICsgICAgICAgIGlmIHNlbGYu dmZyV2FybmluZ01lc3NhZ2UgaXMgTm9uZToNCj4gKyAgICAgICAgICAgIHJldHVybiAxDQo+ICsg ICAgICAgIFdhcm5pbmdNc2cgPSAiIg0KPiArICAgICAgICBmb3Iga2V5IGluIHNlbGYudmZyV2Fy bmluZ01lc3NhZ2Uua2V5cygpOg0KPiArICAgICAgICAgICAgaWYgV2FybmluZ0NvZGUgPT0gc2Vs Zi52ZnJXYXJuaW5nTWVzc2FnZVtrZXldOg0KPiArICAgICAgICAgICAgICAgIFdhcm5pbmdNc2cg PSBzZWxmLnZmcldhcm5pbmdNZXNzYWdlW2tleV0NCj4gKyAgICAgICAgICAgICAgICBicmVhaw0K PiArICAgICAgICBpZiBXYXJuaW5nTXNnICE9ICIiOg0KPiArICAgICAgICAgICAgaWYgc2VsZi5X YXJuaW5nQXNFcnJvcjoNCj4gKyAgICAgICAgICAgICAgICBFZGtMb2dnZXIuZXJyb3IoDQo+ICsg ICAgICAgICAgICAgICAgICAgICJWZnJDb21waWxlciIsDQo+ICsgICAgICAgICAgICAgICAgICAg IFdhcm5pbmdDb2RlLnZhbHVlLA0KPiArICAgICAgICAgICAgICAgICAgICBXYXJuaW5nTXNnLA0K PiArICAgICAgICAgICAgICAgICAgICBzZWxmLklucHV0RmlsZU5hbWUsDQo+ICsgICAgICAgICAg ICAgICAgICAgIExpbmVOdW0sDQo+ICsgICAgICAgICAgICAgICAgICAgICJ3YXJuaW5nIHRyZWF0 ZWQgYXMgZXJyb3IiLA0KPiArICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgIEVka0xv Z2dlci53YXJuKA0KPiArICAgICAgICAgICAgICAgICJWZnJDb21waWxlciIsIFdhcm5pbmdDb2Rl LnZhbHVlLCBzZWxmLklucHV0RmlsZU5hbWUsIExpbmVOdW0sDQo+IFRva2VuVmFsdWUNCj4gKyAg ICAgICAgICAgICkNCj4gKw0KPiArICAgIGRlZiBQcmludE1zZyhzZWxmLCBMaW5lTnVtLCBNc2dU eXBlPSJFcnJvciIsIEVycm9yTXNnPU5vbmUsDQo+IFRva2VuVmFsdWU9Tm9uZSk6DQo+ICsgICAg ICAgIGlmIE1zZ1R5cGUgPT0gIldhcm5pbmciOg0KPiArICAgICAgICAgICAgRWRrTG9nZ2VyLnZl cmJvc2UoRXJyb3JNc2cpDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICBFZGtMb2dn ZXIuZXJyb3IoDQo+ICsgICAgICAgICAgICAgICAgIlZmckNvbXBpbGVyIiwgRk9STUFUX0lOVkFM SUQsIEVycm9yTXNnLCBzZWxmLklucHV0RmlsZU5hbWUsDQo+IExpbmVOdW0sIFRva2VuVmFsdWUN Cj4gKyAgICAgICAgICAgICkNCj4gKw0KPiArICAgIGRlZiBIYW5kbGVFcnJvcihzZWxmLCBFcnJv ckNvZGUsIExpbmVOdW09Tm9uZSwgVG9rZW5WYWx1ZT1Ob25lKToNCj4gKyAgICAgICAgaWYgc2Vs Zi52ZnJFcnJvck1lc3NhZ2UgaXMgTm9uZToNCj4gKyAgICAgICAgICAgIHJldHVybiAxDQo+ICsg ICAgICAgIEVycm9yTXNnID0gIiINCj4gKyAgICAgICAgZm9yIEtleSBpbiBzZWxmLnZmckVycm9y TWVzc2FnZS5rZXlzKCk6DQo+ICsgICAgICAgICAgICBpZiBFcnJvckNvZGUgPT0gS2V5Og0KPiAr ICAgICAgICAgICAgICAgIEVycm9yTXNnID0gc2VsZi52ZnJFcnJvck1lc3NhZ2VbS2V5XQ0KPiAr ICAgICAgICAgICAgICAgIGJyZWFrDQo+ICsgICAgICAgIGlmIEVycm9yTXNnICE9ICIiOg0KPiAr ICAgICAgICAgICAgRWRrTG9nZ2VyLmVycm9yKA0KPiArICAgICAgICAgICAgICAgICJWZnJDb21w aWxlciIsIEVycm9yQ29kZS52YWx1ZSwgRXJyb3JNc2csIHNlbGYuSW5wdXRGaWxlTmFtZSwNCj4g TGluZU51bSwgVG9rZW5WYWx1ZQ0KPiArICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgcmV0 dXJuIDENCj4gKyAgICAgICAgcmV0dXJuIDANCj4gKw0KPiArDQo+ICtnVmZyRXJyb3JIYW5kbGUg PSBWZnJFcnJvckhhbmRsZSgpDQo+IGRpZmYgLS1naXQgYS9CYXNlVG9vbHMvU291cmNlL1B5dGhv bi9WZnJDb21waWxlci9JZnJGb3JtUGtnLnB5DQo+IGIvQmFzZVRvb2xzL1NvdXJjZS9QeXRob24v VmZyQ29tcGlsZXIvSWZyRm9ybVBrZy5weQ0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRl eCAwMDAwMDAwMDAwLi5kNGRlMjg5OGY1DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvQmFzZVRv b2xzL1NvdXJjZS9QeXRob24vVmZyQ29tcGlsZXIvSWZyRm9ybVBrZy5weQ0KPiBAQCAtMCwwICsx LDI5MzcgQEANCj4gKyMjIEBmaWxlDQo+ICsjIFRoZSBkZWZpbml0aW9uIG9mIEZvcm1Qa2cncyBt ZW1iZXIgZnVuY3Rpb24NCj4gKyMNCj4gKyMgQ29weXJpZ2h0IChjKSAyMDIyLSwgSW50ZWwgQ29y cG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArIyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiArIyMNCj4gKw0KPiArZnJvbSBWZnJDb21w aWxlci5JZnJDdHlwZXMgaW1wb3J0ICoNCj4gK2Zyb20gVmZyQ29tcGlsZXIuSWZyVXRpbGl0eSBp bXBvcnQgKg0KPiArZnJvbSBWZnJDb21waWxlci5JZnJFcnJvciBpbXBvcnQgVmZyUmV0dXJuQ29k ZQ0KPiArDQo+ICtnVmZyVmFyRGF0YVR5cGVEQiA9IFZmclZhckRhdGFUeXBlREIoKQ0KPiArZ1Zm ckRlZmF1bHRTdG9yZSA9IFZmckRlZmF1bHRTdG9yZSgpDQo+ICtnVmZyRGF0YVN0b3JhZ2UgPSBW ZnJEYXRhU3RvcmFnZSgpDQo+ICsNCj4gKw0KPiArY2xhc3MgT3BOb2RlOg0KPiArICAgIGRlZiBf X2luaXRfXyhzZWxmLCBTaXplLCBTY29wZSk6DQo+ICsgICAgICAgIHNlbGYuU2l6ZSA9IFNpemUN Cj4gKyAgICAgICAgc2VsZi5TY29wZSA9IFNjb3BlDQo+ICsNCj4gKw0KPiArZ09wY29kZVNpemVz U2NvcGVUYWJsZSA9IFsNCj4gKyAgICBPcE5vZGUoMCwgMCksICAjIEVGSV9JRlJfSU5WQUxJRCAt IDB4MDANCj4gKyAgICBPcE5vZGUoc2l6ZW9mKEVGSV9JRlJfRk9STSksIDEpLCAgIyBFRklfSUZS X0ZPUk1fT1ANCj4gKyAgICBPcE5vZGUoc2l6ZW9mKEVGSV9JRlJfU1VCVElUTEUpLCAxKSwgICMg RUZJX0lGUl9TVUJUSVRMRV9PUA0KPiArICAgIE9wTm9kZShzaXplb2YoRUZJX0lGUl9URVhUKSwg MCksICAjIEVGSV9JRlJfVEVYVF9PUA0KPiArICAgIE9wTm9kZShzaXplb2YoRUZJX0lGUl9JTUFH RSksIDApLCAgIyBFRklfSUZSX0lNQUdFX09QDQo+ICsgICAgT3BOb2RlKHNpemVvZihFRklfSUZS X09ORV9PRiksIDEpLCAgIyBFRklfSUZSX09ORV9PRl9PUCAtIDB4MDUNCj4gKyAgICBPcE5vZGUo c2l6ZW9mKEVGSV9JRlJfQ0hFQ0tCT1gpLCAxKSwgICMgRUZJX0lGUl9DSEVDS0JPWF9PUA0KPiAr ICAgIE9wTm9kZShzaXplb2YoRUZJX0lGUl9OVU1FUklDKSwgMSksICAjIEVGSV9JRlJfTlVNRVJJ Q19PUA0KPiArICAgIE9wTm9kZShzaXplb2YoRUZJX0lGUl9QQVNTV09SRCksIDEpLCAgIyBFRklf SUZSX1BBU1NXT1JEX09QDQo+ICsgICAgT3BOb2RlKHNpemVvZihFRklfSUZSX09ORV9PRl9PUFRJ T04pLCAwKSwgICMNCj4gRUZJX0lGUl9PTkVfT0ZfT1BUSU9OX09QDQo+ICsgICAgT3BOb2RlKHNp emVvZihFRklfSUZSX1NVUFBSRVNTX0lGKSwgMSksICAjIEVGSV9JRlJfU1VQUFJFU1NfSUYgLSAw eDBBDQo+ICsgICAgT3BOb2RlKHNpemVvZihFRklfSUZSX0xPQ0tFRCksIDApLCAgIyBFRklfSUZS X0xPQ0tFRF9PUA0KPiArICAgIE9wTm9kZShzaXplb2YoRUZJX0lGUl9BQ1RJT04pLCAxKSwgICMg RUZJX0lGUl9BQ1RJT05fT1ANCj4gKyAgICBPcE5vZGUoc2l6ZW9mKEVGSV9JRlJfUkVTRVRfQlVU VE9OKSwgMSksICAjDQo+IEVGSV9JRlJfUkVTRVRfQlVUVE9OX09QDQo+ICsgICAgT3BOb2RlKHNp emVvZihFRklfSUZSX0ZPUk1fU0VUKSwgMSksICAjIEVGSV9JRlJfRk9STV9TRVRfT1AgLTB4RQ0K PiArICAgIE9wTm9kZShzaXplb2YoRUZJX0lGUl9SRUYpLCAwKSwgICMgRUZJX0lGUl9SRUZfT1AN Cj4gKyAgICBPcE5vZGUoc2l6ZW9mKEVGSV9JRlJfTk9fU1VCTUlUX0lGKSwgMSksICAjDQo+IEVG SV9JRlJfTk9fU1VCTUlUX0lGX09QIC0weDEwDQo+ICsgICAgT3BOb2RlKHNpemVvZihFRklfSUZS X0lOQ09OU0lTVEVOVF9JRiksIDEpLCAgIw0KPiBFRklfSUZSX0lOQ09OU0lTVEVOVF9JRl9PUA0K PiArICAgIE9wTm9kZShzaXplb2YoRUZJX0lGUl9FUV9JRF9WQUwpLCAwKSwgICMgRUZJX0lGUl9F UV9JRF9WQUxfT1ANCj4gKyAgICBPcE5vZGUoc2l6ZW9mKEVGSV9JRlJfRVFfSURfSUQpLCAwKSwg ICMgRUZJX0lGUl9FUV9JRF9JRF9PUA0KPiArICAgIE9wTm9kZShzaXplb2YoRUZJX0lGUl9FUV9J RF9WQUxfTElTVCksIDApLCAgIyBFRklfSUZSX0VRX0lEX0xJU1RfT1AgLQ0KPiAweDE0DQo+ICsg ICAgT3BOb2RlKHNpemVvZihFRklfSUZSX0FORCksIDApLCAgIyBFRklfSUZSX0FORF9PUA0KPiAr ICAgIE9wTm9kZShzaXplb2YoRUZJX0lGUl9PUiksIDApLCAgIyBFRklfSUZSX09SX09QDQo+ICsg ICAgT3BOb2RlKHNpemVvZihFRklfSUZSX05PVCksIDApLCAgIyBFRklfSUZSX05PVF9PUA0KPiAr ICAgIE9wTm9kZShzaXplb2YoRUZJX0lGUl9SVUxFKSwgMSksICAjIEVGSV9JRlJfUlVMRV9PUA0K PiArICAgIE9wTm9kZShzaXplb2YoRUZJX0lGUl9HUkFZX09VVF9JRiksIDEpLCAgIyBFRklfSUZS X0dSQVlPVVRfSUZfT1AgLQ0KPiAweDE5DQo+ICsgICAgT3BOb2RlKHNpemVvZihFRklfSUZSX0RB VEUpLCAxKSwgICMgRUZJX0lGUl9EQVRFX09QDQo+ICsgICAgT3BOb2RlKHNpemVvZihFRklfSUZS X1RJTUUpLCAxKSwgICMgRUZJX0lGUl9USU1FX09QDQo+ICsgICAgT3BOb2RlKHNpemVvZihFRklf SUZSX1NUUklORyksIDEpLCAgIyBFRklfSUZSX1NUUklOR19PUA0KPiArICAgIE9wTm9kZShzaXpl b2YoRUZJX0lGUl9SRUZSRVNIKSwgMCksICAjIEVGSV9JRlJfUkVGUkVTSF9PUA0KPiArICAgIE9w Tm9kZShzaXplb2YoRUZJX0lGUl9ESVNBQkxFX0lGKSwgMSksICAjIEVGSV9JRlJfRElTQUJMRV9J Rl9PUCAtIDB4MUUNCj4gKyAgICBPcE5vZGUoMCwgMCksICAjIDB4MUYNCj4gKyAgICBPcE5vZGUo c2l6ZW9mKEVGSV9JRlJfVE9fTE9XRVIpLCAwKSwgICMgRUZJX0lGUl9UT19MT1dFUl9PUCAtIDB4 MjANCj4gKyAgICBPcE5vZGUoc2l6ZW9mKEVGSV9JRlJfVE9fVVBQRVIpLCAwKSwgICMgRUZJX0lG Ul9UT19VUFBFUl9PUCAtIDB4MjENCj4gKyAgICBPcE5vZGUoc2l6ZW9mKEVGSV9JRlJfTUFQKSwg MSksICAjIEVGSV9JRlJfTUFQIC0gMHgyMg0KPiArICAgIE9wTm9kZShzaXplb2YoRUZJX0lGUl9P UkRFUkVEX0xJU1QpLCAxKSwgICMgRUZJX0lGUl9PUkRFUkVEX0xJU1RfT1ANCj4gLSAweDIzDQo+ ICsgICAgT3BOb2RlKHNpemVvZihFRklfSUZSX1ZBUlNUT1JFKSwgMCksICAjIEVGSV9JRlJfVkFS U1RPUkVfT1ANCj4gKyAgICBPcE5vZGUoc2l6ZW9mKEVGSV9JRlJfVkFSU1RPUkVfTkFNRV9WQUxV RSksIDApLCAgIw0KPiBFRklfSUZSX1ZBUlNUT1JFX05BTUVfVkFMVUVfT1ANCj4gKyAgICBPcE5v ZGUoc2l6ZW9mKEVGSV9JRlJfVkFSU1RPUkVfRUZJKSwgMCksICAjIEVGSV9JRlJfVkFSU1RPUkVf RUZJX09QDQo+ICsgICAgT3BOb2RlKHNpemVvZihFRklfSUZSX1ZBUlNUT1JFX0RFVklDRSksIDEp LCAgIw0KPiBFRklfSUZSX1ZBUlNUT1JFX0RFVklDRV9PUA0KPiArICAgIE9wTm9kZShzaXplb2Yo RUZJX0lGUl9WRVJTSU9OKSwgMCksICAjIEVGSV9JRlJfVkVSU0lPTl9PUCAtIDB4MjgNCj4gKyAg ICBPcE5vZGUoc2l6ZW9mKEVGSV9JRlJfRU5EKSwgMCksICAjIEVGSV9JRlJfRU5EX09QDQo+ICsg ICAgT3BOb2RlKHNpemVvZihFRklfSUZSX01BVENIKSwgMCksICAjIEVGSV9JRlJfTUFUQ0hfT1Ag LSAweDJBDQo+ICsgICAgT3BOb2RlKHNpemVvZihFRklfSUZSX0dFVCksIDApLCAgIyBFRklfSUZS X0dFVCAtIDB4MkINCj4gKyAgICBPcE5vZGUoc2l6ZW9mKEVGSV9JRlJfU0VUKSwgMCksICAjIEVG SV9JRlJfU0VUIC0gMHgyQw0KPiArICAgIE9wTm9kZShzaXplb2YoRUZJX0lGUl9SRUFEKSwgMCks ICAjIEVGSV9JRlJfUkVBRCAtIDB4MkQNCj4gKyAgICBPcE5vZGUoc2l6ZW9mKEVGSV9JRlJfV1JJ VEUpLCAwKSwgICMgRUZJX0lGUl9XUklURSAtIDB4MkUNCj4gKyAgICBPcE5vZGUoc2l6ZW9mKEVG SV9JRlJfRVFVQUwpLCAwKSwgICMgRUZJX0lGUl9FUVVBTF9PUCAtIDB4MkYNCj4gKyAgICBPcE5v ZGUoc2l6ZW9mKEVGSV9JRlJfTk9UX0VRVUFMKSwgMCksICAjIEVGSV9JRlJfTk9UX0VRVUFMX09Q DQo+ICsgICAgT3BOb2RlKHNpemVvZihFRklfSUZSX0dSRUFURVJfVEhBTiksIDApLCAgIw0KPiBF RklfSUZSX0dSRUFURVJfVEhBTl9PUA0KPiArICAgIE9wTm9kZShzaXplb2YoRUZJX0lGUl9HUkVB VEVSX0VRVUFMKSwgMCksICAjDQo+IEVGSV9JRlJfR1JFQVRFUl9FUVVBTF9PUA0KPiArICAgIE9w Tm9kZShzaXplb2YoRUZJX0lGUl9MRVNTX1RIQU4pLCAwKSwgICMgRUZJX0lGUl9MRVNTX1RIQU5f T1ANCj4gKyAgICBPcE5vZGUoc2l6ZW9mKEVGSV9JRlJfTEVTU19FUVVBTCksIDApLCAgIyBFRklf SUZSX0xFU1NfRVFVQUxfT1AgLQ0KPiAweDM0DQo+ICsgICAgT3BOb2RlKHNpemVvZihFRklfSUZS X0JJVFdJU0VfQU5EKSwgMCksICAjIEVGSV9JRlJfQklUV0lTRV9BTkRfT1ANCj4gKyAgICBPcE5v ZGUoc2l6ZW9mKEVGSV9JRlJfQklUV0lTRV9PUiksIDApLCAgIyBFRklfSUZSX0JJVFdJU0VfT1Jf T1ANCj4gKyAgICBPcE5vZGUoc2l6ZW9mKEVGSV9JRlJfQklUV0lTRV9OT1QpLCAwKSwgICMgRUZJ X0lGUl9CSVRXSVNFX05PVF9PUA0KPiArICAgIE9wTm9kZShzaXplb2YoRUZJX0lGUl9TSElGVF9M RUZUKSwgMCksICAjIEVGSV9JRlJfU0hJRlRfTEVGVF9PUA0KPiArICAgIE9wTm9kZShzaXplb2Yo RUZJX0lGUl9TSElGVF9SSUdIVCksIDApLCAgIyBFRklfSUZSX1NISUZUX1JJR0hUX09QDQo+ICsg ICAgT3BOb2RlKHNpemVvZihFRklfSUZSX0FERCksIDApLCAgIyBFRklfSUZSX0FERF9PUCAtIDB4 M0ENCj4gKyAgICBPcE5vZGUoc2l6ZW9mKEVGSV9JRlJfU1VCVFJBQ1QpLCAwKSwgICMgRUZJX0lG Ul9TVUJUUkFDVF9PUA0KPiArICAgIE9wTm9kZShzaXplb2YoRUZJX0lGUl9NVUxUSVBMWSksIDAp LCAgIyBFRklfSUZSX01VTFRJUExZX09QDQo+ICsgICAgT3BOb2RlKHNpemVvZihFRklfSUZSX0RJ VklERSksIDApLCAgIyBFRklfSUZSX0RJVklERV9PUA0KPiArICAgIE9wTm9kZShzaXplb2YoRUZJ X0lGUl9NT0RVTE8pLCAwKSwgICMgRUZJX0lGUl9NT0RVTE9fT1AgLSAweDNFDQo+ICsgICAgT3BO b2RlKHNpemVvZihFRklfSUZSX1JVTEVfUkVGKSwgMCksICAjIEVGSV9JRlJfUlVMRV9SRUZfT1AN Cj4gKyAgICBPcE5vZGUoc2l6ZW9mKEVGSV9JRlJfUVVFU1RJT05fUkVGMSksIDApLCAgIw0KPiBF RklfSUZSX1FVRVNUSU9OX1JFRjFfT1ANCj4gKyAgICBPcE5vZGUoc2l6ZW9mKEVGSV9JRlJfUVVF U1RJT05fUkVGMiksIDApLCAgIw0KPiBFRklfSUZSX1FVRVNUSU9OX1JFRjJfT1AgLSAweDQxDQo+ ICsgICAgT3BOb2RlKHNpemVvZihFRklfSUZSX1VJTlQ4KSwgMCksICAjIEVGSV9JRlJfVUlOVDgN Cj4gKyAgICBPcE5vZGUoc2l6ZW9mKEVGSV9JRlJfVUlOVDE2KSwgMCksICAjIEVGSV9JRlJfVUlO VDE2DQo+ICsgICAgT3BOb2RlKHNpemVvZihFRklfSUZSX1VJTlQzMiksIDApLCAgIyBFRklfSUZS X1VJTlQzMg0KPiArICAgIE9wTm9kZShzaXplb2YoRUZJX0lGUl9VSU5UNjQpLCAwKSwgICMgRUZJ X0lGUl9VVE5UNjQNCj4gKyAgICBPcE5vZGUoc2l6ZW9mKEVGSV9JRlJfVFJVRSksIDApLCAgIyBF RklfSUZSX1RSVUVfT1AgLSAweDQ2DQo+ICsgICAgT3BOb2RlKHNpemVvZihFRklfSUZSX0ZBTFNF KSwgMCksICAjIEVGSV9JRlJfRkFMU0VfT1ANCj4gKyAgICBPcE5vZGUoc2l6ZW9mKEVGSV9JRlJf VE9fVUlOVCksIDApLCAgIyBFRklfSUZSX1RPX1VJTlRfT1ANCj4gKyAgICBPcE5vZGUoc2l6ZW9m KEVGSV9JRlJfVE9fU1RSSU5HKSwgMCksICAjIEVGSV9JRlJfVE9fU1RSSU5HX09QDQo+ICsgICAg T3BOb2RlKHNpemVvZihFRklfSUZSX1RPX0JPT0xFQU4pLCAwKSwgICMgRUZJX0lGUl9UT19CT09M RUFOX09QDQo+ICsgICAgT3BOb2RlKHNpemVvZihFRklfSUZSX01JRCksIDApLCAgIyBFRklfSUZS X01JRF9PUA0KPiArICAgIE9wTm9kZShzaXplb2YoRUZJX0lGUl9GSU5EKSwgMCksICAjIEVGSV9J RlJfRklORF9PUA0KPiArICAgIE9wTm9kZShzaXplb2YoRUZJX0lGUl9UT0tFTiksIDApLCAgIyBF RklfSUZSX1RPS0VOX09QDQo+ICsgICAgT3BOb2RlKHNpemVvZihFRklfSUZSX1NUUklOR19SRUYx KSwgMCksICAjIEVGSV9JRlJfU1RSSU5HX1JFRjFfT1AgLQ0KPiAweDRFDQo+ICsgICAgT3BOb2Rl KHNpemVvZihFRklfSUZSX1NUUklOR19SRUYyKSwgMCksICAjIEVGSV9JRlJfU1RSSU5HX1JFRjJf T1ANCj4gKyAgICBPcE5vZGUoc2l6ZW9mKEVGSV9JRlJfQ09ORElUSU9OQUwpLCAwKSwgICMgRUZJ X0lGUl9DT05ESVRJT05BTF9PUA0KPiArICAgIE9wTm9kZShzaXplb2YoRUZJX0lGUl9RVUVTVElP Tl9SRUYzKSwgMCksICAjDQo+IEVGSV9JRlJfUVVFU1RJT05fUkVGM19PUA0KPiArICAgIE9wTm9k ZShzaXplb2YoRUZJX0lGUl9aRVJPKSwgMCksICAjIEVGSV9JRlJfWkVST19PUA0KPiArICAgIE9w Tm9kZShzaXplb2YoRUZJX0lGUl9PTkUpLCAwKSwgICMgRUZJX0lGUl9PTkVfT1ANCj4gKyAgICBP cE5vZGUoc2l6ZW9mKEVGSV9JRlJfT05FUyksIDApLCAgIyBFRklfSUZSX09ORVNfT1ANCj4gKyAg ICBPcE5vZGUoc2l6ZW9mKEVGSV9JRlJfVU5ERUZJTkVEKSwgMCksICAjIEVGSV9JRlJfVU5ERUZJ TkVEX09QDQo+ICsgICAgT3BOb2RlKHNpemVvZihFRklfSUZSX0xFTkdUSCksIDApLCAgIyBFRklf SUZSX0xFTkdUSF9PUA0KPiArICAgIE9wTm9kZShzaXplb2YoRUZJX0lGUl9EVVApLCAwKSwgICMg RUZJX0lGUl9EVVBfT1AgLSAweDU3DQo+ICsgICAgT3BOb2RlKHNpemVvZihFRklfSUZSX1RISVMp LCAwKSwgICMgRUZJX0lGUl9USElTX09QDQo+ICsgICAgT3BOb2RlKHNpemVvZihFRklfSUZSX1NQ QU4pLCAwKSwgICMgRUZJX0lGUl9TUEFOX09QDQo+ICsgICAgT3BOb2RlKHNpemVvZihFRklfSUZS X1ZBTFVFKSwgMSksICAjIEVGSV9JRlJfVkFMVUVfT1ANCj4gKyAgICBPcE5vZGUoc2l6ZW9mKEVG SV9JRlJfREVGQVVMVCksIDApLCAgIyBFRklfSUZSX0RFRkFVTFRfT1ANCj4gKyAgICBPcE5vZGUo c2l6ZW9mKEVGSV9JRlJfREVGQVVMVFNUT1JFKSwgMCksICAjIEVGSV9JRlJfREVGQVVMVFNUT1JF X09QDQo+IC0gMHg1Qw0KPiArICAgIE9wTm9kZShzaXplb2YoRUZJX0lGUl9GT1JNX01BUCksIDEp LCAgIyBFRklfSUZSX0ZPUk1fTUFQX09QIC0NCj4gMHg1RA0KPiArICAgIE9wTm9kZShzaXplb2Yo RUZJX0lGUl9DQVRFTkFURSksIDApLCAgIyBFRklfSUZSX0NBVEVOQVRFX09QDQo+ICsgICAgT3BO b2RlKHNpemVvZihFRklfSUZSX0dVSUQpLCAwKSwgICMgRUZJX0lGUl9HVUlEX09QDQo+ICsgICAg T3BOb2RlKHNpemVvZihFRklfSUZSX1NFQ1VSSVRZKSwgMCksICAjIEVGSV9JRlJfU0VDVVJJVFlf T1AgLSAweDYwDQo+ICsgICAgT3BOb2RlKHNpemVvZihFRklfSUZSX01PREFMX1RBRyksIDApLCAg IyBFRklfSUZSX01PREFMX1RBR19PUCAtDQo+IDB4NjENCj4gKyAgICBPcE5vZGUoc2l6ZW9mKEVG SV9JRlJfUkVGUkVTSF9JRCksIDApLCAgIyBFRklfSUZSX1JFRlJFU0hfSURfT1AgLQ0KPiAweDYy DQo+ICsgICAgT3BOb2RlKHNpemVvZihFRklfSUZSX1dBUk5JTkdfSUYpLCAxKSwgICMgRUZJX0lG Ul9XQVJOSU5HX0lGX09QIC0NCj4gMHg2Mw0KPiArICAgIE9wTm9kZShzaXplb2YoRUZJX0lGUl9N QVRDSDIpLCAwKSwNCj4gK10NCj4gKw0KPiArDQo+ICtjbGFzcyBPcEJ1ZmZlck5vZGU6DQo+ICsg ICAgZGVmIF9faW5pdF9fKHNlbGYsIEJ1ZmZlcj1Ob25lLCBOZXh0PU5vbmUpOg0KPiArICAgICAg ICBzZWxmLkJ1ZmZlciA9IEJ1ZmZlcg0KPiArICAgICAgICBzZWxmLk5leHQgPSBOZXh0DQo+ICsN Cj4gKw0KPiArY2xhc3MgQVNTSUdOX0ZMQUcoRW51bSk6DQo+ICsgICAgUEVORElORyA9IDENCj4g KyAgICBBU1NJR05FRCA9IDINCj4gKw0KPiArDQo+ICtWQUxVRV9UWVBFX09ORSA9IDENCj4gK1ZB TFVFX1RZUEVfVFdPID0gMg0KPiArDQo+ICsNCj4gK2NsYXNzIFNQZW5kaW5nQXNzaWduOg0KPiAr ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBLZXksIFZhbEFkZHIsIExpbmVObywgTXNnLCBUeXBlPTAp Og0KPiArICAgICAgICBzZWxmLktleSA9IEtleQ0KPiArICAgICAgICBzZWxmLkFkZHIgPSBWYWxB ZGRyDQo+ICsgICAgICAgIHNlbGYuRmxhZyA9IEFTU0lHTl9GTEFHLlBFTkRJTkcNCj4gKyAgICAg ICAgc2VsZi5MaW5lTm8gPSBMaW5lTm8NCj4gKyAgICAgICAgc2VsZi5Nc2cgPSBNc2cNCj4gKyAg ICAgICAgc2VsZi5UeXBlID0gVHlwZQ0KPiArICAgICAgICBzZWxmLk5leHQgPSBOb25lDQo+ICsN Cj4gKyAgICBkZWYgQXNzaWduVmFsdWUoc2VsZiwgVmFsKToNCj4gKyAgICAgICAgaWYgc2VsZi5U eXBlID09IFZBTFVFX1RZUEVfT05FOg0KPiArICAgICAgICAgICAgc2VsZi5BZGRyLlF1ZXN0aW9u SWQxID0gVmFsDQo+ICsgICAgICAgIGVsaWYgc2VsZi5UeXBlID09IFZBTFVFX1RZUEVfVFdPOg0K PiArICAgICAgICAgICAgc2VsZi5BZGRyLlF1ZXN0aW9uSWQyID0gVmFsDQo+ICsgICAgICAgIGVs c2U6DQo+ICsgICAgICAgICAgICBzZWxmLkFkZHIuUXVlc3Rpb25JZCA9IFZhbA0KPiArDQo+ICsg ICAgICAgIHNlbGYuRmxhZyA9IEFTU0lHTl9GTEFHLkFTU0lHTkVEDQo+ICsNCj4gKw0KPiArY2xh c3MgSW5zZXJ0T3BOb2RlOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBEYXRhLCBPcENvZGUp Og0KPiArICAgICAgICBzZWxmLkRhdGEgPSBEYXRhDQo+ICsgICAgICAgIHNlbGYuT3BDb2RlID0g T3BDb2RlDQo+ICsNCj4gKw0KPiArY2xhc3MgRm9ybVBrZzoNCj4gKyAgICBkZWYgX19pbml0X18o c2VsZik6DQo+ICsgICAgICAgIHNlbGYuUGtnTGVuZ3RoID0gMA0KPiArICAgICAgICBzZWxmLk9m ZnNldCA9IDANCj4gKyAgICAgICAgc2VsZi5QZW5kaW5nQXNzaWduTGlzdCA9IE5vbmUNCj4gKw0K PiArICAgIGRlZiBDbGVhcihzZWxmKToNCj4gKyAgICAgICAgc2VsZi5Qa2dMZW5ndGggPSAwDQo+ ICsgICAgICAgIHNlbGYuT2Zmc2V0ID0gMA0KPiArICAgICAgICBzZWxmLlBlbmRpbmdBc3NpZ25M aXN0ID0gTm9uZQ0KPiArDQo+ICsgICAgZGVmIEJ1aWxkUGtnSGRyKHNlbGYpOg0KPiArICAgICAg ICBQa2dIZHIgPSBFRklfSElJX1BBQ0tBR0VfSEVBREVSKCkNCj4gKyAgICAgICAgUGtnSGRyLlR5 cGUgPSBFRklfSElJX1BBQ0tBR0VfRk9STQ0KPiArICAgICAgICBQa2dIZHIuTGVuZ3RoID0gc2Vs Zi5Qa2dMZW5ndGggKyBzaXplb2YoRUZJX0hJSV9QQUNLQUdFX0hFQURFUikNCj4gKyAgICAgICAg cmV0dXJuIFBrZ0hkcg0KPiArDQo+ICsgICAgZGVmIEJ1aWxkUGtnKHNlbGYsIFJvb3QpOg0KPiAr ICAgICAgICBpZiBSb290IGlzIE5vbmU6DQo+ICsgICAgICAgICAgICByZXR1cm4NCj4gKyAgICAg ICAgaWYgUm9vdC5PcENvZGUgaXMgbm90IE5vbmUgYW5kIFJvb3QuT3BDb2RlICE9DQo+IEVGSV9J RlJfU0hPV05fREVGQVVMVFNUT1JFX09QOg0KPiArICAgICAgICAgICAgc2VsZi5Qa2dMZW5ndGgg Kz0gUm9vdC5EYXRhLkdldEluZm8oKS5IZWFkZXIuTGVuZ3RoDQo+ICsgICAgICAgICAgICBSb290 Lk9mZnNldCA9IGdGb3JtUGtnLk9mZnNldA0KPiArICAgICAgICAgICAgc2VsZi5PZmZzZXQgKz0g Um9vdC5EYXRhLkdldEluZm8oKS5IZWFkZXIuTGVuZ3RoDQo+ICsgICAgICAgIGlmIFJvb3QuQ2hp bGQgIT0gW106DQo+ICsgICAgICAgICAgICBmb3IgQ2hpbGROb2RlIGluIFJvb3QuQ2hpbGQ6DQo+ ICsgICAgICAgICAgICAgICAgc2VsZi5CdWlsZFBrZyhDaGlsZE5vZGUpDQo+ICsNCj4gKyAgICAj IEdldCBkYXRhIGZyb20gY3R5cGVzIHRvIGJ5dGVzLg0KPiArICAgIGRlZiBTdHJ1Y3RUb1N0cmVh bShzZWxmLCBTdHJ1Y3QpIC0+IGJ5dGVzOg0KPiArICAgICAgICBMZW5ndGggPSBzaXplb2YoU3Ry dWN0KQ0KPiArICAgICAgICBQID0gY2FzdChwb2ludGVyKFN0cnVjdCksIFBPSU5URVIoY19jaGFy ICogTGVuZ3RoKSkNCj4gKyAgICAgICAgcmV0dXJuIFAuY29udGVudHMucmF3DQo+ICsNCj4gKyAg ICBkZWYgQXNzaWduUGVuZGluZyhzZWxmLCBLZXksIFZhckFkZHIsIExpbmVObywgTXNnLCBUeXBl PTApOg0KPiArICAgICAgICBwTmV3ID0gU1BlbmRpbmdBc3NpZ24oS2V5LCBWYXJBZGRyLCBMaW5l Tm8sIE1zZywgVHlwZSkNCj4gKyAgICAgICAgaWYgcE5ldyBpcyBOb25lOg0KPiArICAgICAgICAg ICAgcmV0dXJuIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9PVVRfRk9SX1JFU09VUkNFUw0KPiAr ICAgICAgICBwTmV3Lk5leHQgPSBzZWxmLlBlbmRpbmdBc3NpZ25MaXN0DQo+ICsgICAgICAgIHNl bGYuUGVuZGluZ0Fzc2lnbkxpc3QgPSBwTmV3DQo+ICsgICAgICAgIHJldHVybiBWZnJSZXR1cm5D b2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiArDQo+ICsgICAgZGVmIERvUGVuZGluZ0Fzc2lnbihz ZWxmLCBLZXksIFZhbCk6DQo+ICsgICAgICAgIGlmIEtleSBpcyBOb25lIG9yIFZhbCBpcyBOb25l Og0KPiArICAgICAgICAgICAgcmV0dXJuDQo+ICsgICAgICAgIHBOb2RlID0gc2VsZi5QZW5kaW5n QXNzaWduTGlzdA0KPiArICAgICAgICB3aGlsZSBwTm9kZSBpcyBub3QgTm9uZToNCj4gKyAgICAg ICAgICAgIGlmIHBOb2RlLktleSA9PSBLZXk6DQo+ICsgICAgICAgICAgICAgICAgcE5vZGUuQXNz aWduVmFsdWUoVmFsKQ0KPiArICAgICAgICAgICAgcE5vZGUgPSBwTm9kZS5OZXh0DQo+ICsNCj4g KyAgICBkZWYgSGF2ZVBlbmRpbmdVbmFzc2lnbmVkKHNlbGYpOg0KPiArICAgICAgICBwTm9kZSA9 IHNlbGYuUGVuZGluZ0Fzc2lnbkxpc3QNCj4gKyAgICAgICAgd2hpbGUgcE5vZGUgaXMgbm90IE5v bmU6DQo+ICsgICAgICAgICAgICBpZiBwTm9kZS5GbGFnID09IEFTU0lHTl9GTEFHLlBFTkRJTkc6 DQo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUNCj4gKyAgICAgICAgICAgIHBOb2RlID0g cE5vZGUuTmV4dA0KPiArDQo+ICsgICAgICAgIHJldHVybiBGYWxzZQ0KPiArDQo+ICsgICAgZGVm IFBlbmRpbmdBc3NpZ25QcmludEFsbChzZWxmKToNCj4gKyAgICAgICAgcE5vZGUgPSBzZWxmLlBl bmRpbmdBc3NpZ25MaXN0DQo+ICsgICAgICAgIHdoaWxlIHBOb2RlIGlzIG5vdCBOb25lOg0KPiAr ICAgICAgICAgICAgaWYgcE5vZGUuRmxhZyA9PSBBU1NJR05fRkxBRy5QRU5ESU5HOg0KPiArICAg ICAgICAgICAgICAgIGdWZnJFcnJvckhhbmRsZS5QcmludE1zZyhwTm9kZS5MaW5lTm8sICJFcnJv ciIsIHBOb2RlLk1zZywNCj4gcE5vZGUuS2V5KQ0KPiArICAgICAgICAgICAgcE5vZGUgPSBwTm9k ZS5OZXh0DQo+ICsNCj4gKyAgICBkZWYgRGVjbGFyZVBlbmRpbmdRdWVzdGlvbigNCj4gKyAgICAg ICAgc2VsZiwNCj4gKyAgICAgICAgbFZmclZhckRhdGFUeXBlREI6IFZmclZhckRhdGFUeXBlREIs DQo+ICsgICAgICAgIGxWZnJEYXRhU3RvcmFnZTogVmZyRGF0YVN0b3JhZ2UsDQo+ICsgICAgICAg IGxWZnJRdWVzdGlvbkRCOiBWZnJRdWVzdGlvbkRCLA0KPiArICAgICAgICBMaW5lTm89Tm9uZSwN Cj4gKyAgICApOg0KPiArICAgICAgICAjIERlY2xhcmUgYWxsIHF1ZXN0aW9ucyBhcyBOdW1lcmlj IGluIERpc2FibGVJZiBUcnVlDQo+ICsgICAgICAgIFJldHVybkxpc3QgPSBbXQ0KPiArICAgICAg ICBHdWlkT2JqID0gTm9uZQ0KPiArICAgICAgICBESU9iaiA9IElmckRpc2FibGVJZigpDQo+ICsg ICAgICAgIERJT2JqLlNldExpbmVObyhMaW5lTm8pDQo+ICsgICAgICAgIFJldHVybkxpc3QuYXBw ZW5kKEluc2VydE9wTm9kZShESU9iaiwgRUZJX0lGUl9ESVNBQkxFX0lGX09QKSkNCj4gKyAgICAg ICAgIyBUcnVlT3Bjb2RlDQo+ICsgICAgICAgIFRPYmogPSBJZnJUcnVlKExpbmVObykNCj4gKyAg ICAgICAgUmV0dXJuTGlzdC5hcHBlbmQoSW5zZXJ0T3BOb2RlKFRPYmosIEVGSV9JRlJfVFJVRV9P UCkpDQo+ICsgICAgICAgIHBOb2RlID0gc2VsZi5QZW5kaW5nQXNzaWduTGlzdA0KPiArICAgICAg ICB3aGlsZSBwTm9kZSBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgIGlmIHBOb2RlLkZsYWcg PT0gQVNTSUdOX0ZMQUcuUEVORElORzoNCj4gKyAgICAgICAgICAgICAgICBJbmZvID0gRUZJX1ZB UlNUT1JFX0lORk8oKQ0KPiArICAgICAgICAgICAgICAgIFZhclN0ciA9IHBOb2RlLktleQ0KPiAr ICAgICAgICAgICAgICAgIFFJZCwgUmV0dXJuQ29kZSA9IGxWZnJRdWVzdGlvbkRCLlJlZ2lzdGVy UXVlc3Rpb24oDQo+ICsgICAgICAgICAgICAgICAgICAgIE5vbmUsIFZhclN0ciwgRUZJX1FVRVNU SU9OX0lEX0lOVkFMSUQsIGdGb3JtUGtnDQo+ICsgICAgICAgICAgICAgICAgKQ0KPiArICAgICAg ICAgICAgICAgIGlmIFJldHVybkNvZGUgIT0gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NF U1M6DQo+ICsgICAgICAgICAgICAgICAgICAgIGdWZnJFcnJvckhhbmRsZS5IYW5kbGVFcnJvcihS ZXR1cm5Db2RlLCBwTm9kZS5MaW5lTm8sDQo+IHBOb2RlLktleSkNCj4gKyAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIFJldHVybkxpc3QsIFJldHVybkNvZGUNCj4gKyAgICAgICAgICAgICAgICAj IGlmZGVmIFZGUkVYUF9ERUJVRw0KPiArICAgICAgICAgICAgICAgICMgcHJpbnRmKCJVbmRlZmlu ZWQgUXVlc3Rpb24gbmFtZSBpcyAlcyBhbmQgSWQgaXMgMHgleFxuIiwgVmFyU3RyLA0KPiBRSWQp Ow0KPiArICAgICAgICAgICAgICAgICMgZW5kaWYNCj4gKyAgICAgICAgICAgICAgICAjIEdldCBR dWVzdGlvbiBJbmZvLCBmcmFtZXdvcmsgdmZyIFZhck5hbWUgPT0gU3RydWN0TmFtZQ0KPiArICAg ICAgICAgICAgICAgIEFycmF5SWR4LCBzLCBGTmFtZSwgUmV0dXJuQ29kZSA9DQo+IGxWZnJWYXJE YXRhVHlwZURCLkV4dHJhY3RGaWVsZE5hbWVBbmRBcnJhcnkoDQo+ICsgICAgICAgICAgICAgICAg ICAgIFZhclN0ciwgMA0KPiArICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICBp ZiBSZXR1cm5Db2RlICE9IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTOg0KPiArICAg ICAgICAgICAgICAgICAgICBnVmZyRXJyb3JIYW5kbGUuUHJpbnRNc2coDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICBwTm9kZS5MaW5lTm8sICJFcnJvciIsICJWYXIgc3RyaW5nIGlzIG5vdCB0 aGUgdmFsaWQgQyB2YXJpYWJsZSIsDQo+IHBOb2RlLktleQ0KPiArICAgICAgICAgICAgICAgICAg ICApDQo+ICsgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXR1cm5MaXN0LCBSZXR1cm5Db2Rl DQo+ICsNCj4gKyAgICAgICAgICAgICAgICAjIEdldCBWYXJTdG9yZVR5cGUNCj4gKyAgICAgICAg ICAgICAgICBJbmZvLlZhclN0b3JlSWQsIFJldHVybkNvZGUgPQ0KPiBsVmZyRGF0YVN0b3JhZ2Uu R2V0VmFyU3RvcmVJZChGTmFtZSkNCj4gKw0KPiArICAgICAgICAgICAgICAgIGlmIFJldHVybkNv ZGUgIT0gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1M6DQo+ICsgICAgICAgICAgICAg ICAgICAgIGdWZnJFcnJvckhhbmRsZS5QcmludE1zZygNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgIHBOb2RlLkxpbmVObywgIkVycm9yIiwgIlZhciBTdG9yZSBUeXBlIGlzIG5vdCBkZWZpbmVk IiwgRk5hbWUNCj4gKyAgICAgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAgICAg ICByZXR1cm4gUmV0dXJuTGlzdCwgUmV0dXJuQ29kZQ0KPiArDQo+ICsgICAgICAgICAgICAgICAg VmFyU3RvcmVUeXBlID0gbFZmckRhdGFTdG9yYWdlLkdldFZhclN0b3JlVHlwZShJbmZvLlZhclN0 b3JlSWQpDQo+ICsgICAgICAgICAgICAgICAgaWYgcyA9PSBsZW4oVmFyU3RyKSBhbmQgQXJyYXlJ ZHggIT0gSU5WQUxJRF9BUlJBWV9JTkRFWDoNCj4gKyAgICAgICAgICAgICAgICAgICAgUmV0dXJu Q29kZSA9IGxWZnJEYXRhU3RvcmFnZS5HZXROYW1lVmFyU3RvcmVJbmZvKEluZm8sDQo+IEFycmF5 SWR4KQ0KPiArICAgICAgICAgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICAgICAgICAgIGlm IFZhclN0b3JlVHlwZSA9PQ0KPiBFRklfVkZSX1ZBUlNUT1JFX1RZUEUuRUZJX1ZGUl9WQVJTVE9S RV9FRkk6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm5Db2RlID0gbFZmckRhdGFT dG9yYWdlLkdldEVmaVZhclN0b3JlSW5mbyhJbmZvKQ0KPiArICAgICAgICAgICAgICAgICAgICBl bGlmICgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIFZhclN0b3JlVHlwZSA9PQ0KPiBFRklf VkZSX1ZBUlNUT1JFX1RZUEUuRUZJX1ZGUl9WQVJTVE9SRV9CVUZGRVINCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIG9yIFZhclN0b3JlVHlwZSA9PQ0KPiBFRklfVkZSX1ZBUlNUT1JFX1RZUEUu RUZJX1ZGUl9WQVJTVE9SRV9CVUZGRVJfQklUUw0KPiArICAgICAgICAgICAgICAgICAgICApOg0K PiArICAgICAgICAgICAgICAgICAgICAgICAgVmFyU3RyID0gcE5vZGUuS2V5DQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICBTTmFtZSwgUmV0dXJuQ29kZSA9DQo+IGxWZnJEYXRhU3RvcmFnZS5H ZXRCdWZmZXJWYXJTdG9yZURhdGFUeXBlTmFtZSgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJbmZvLlZhclN0b3JlSWQNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICkNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgIGlmIFJldHVybkNvZGUgPT0gVmZyUmV0dXJuQ29kZS5WRlJf UkVUVVJOX1NVQ0NFU1M6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV3U3RyID0g U05hbWUgKyAiLiIgKyBWYXJTdHJbczpdDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg KA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmZvLkluZm8uVmFyT2Zmc2V0 LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmZvLlZhclR5cGUsDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZm8uVmFyVG90YWxTaXplLA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmZvLklzQml0VmFyLA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm5Db2RlLA0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICkgPSBsVmZyVmFyRGF0YVR5cGVEQi5HZXREYXRhRmllbGRJbmZvKE5ld1N0cikN Cj4gKyAgICAgICAgICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybkNvZGUgPSBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fVU5TVVBQT1JURUQNCj4gKw0K PiArICAgICAgICAgICAgICAgIGlmIFJldHVybkNvZGUgIT0gVmZyUmV0dXJuQ29kZS5WRlJfUkVU VVJOX1NVQ0NFU1M6DQo+ICsgICAgICAgICAgICAgICAgICAgIGdWZnJFcnJvckhhbmRsZS5IYW5k bGVFcnJvcihSZXR1cm5Db2RlLCBwTm9kZS5MaW5lTm8sDQo+IHBOb2RlLktleSkNCj4gKyAgICAg ICAgICAgICAgICAjIElmIHRoZSBzdG9yYWdlIGlzIGJpdCBmaWVsZHMsIGNyZWF0ZSBHdWlkIG9w Y29kZSB0byB3cmFwIHRoZSBudW1lcmljDQo+IG9wY29kZS4NCj4gKyAgICAgICAgICAgICAgICBp ZiBJbmZvLklzQml0VmFyOg0KPiArICAgICAgICAgICAgICAgICAgICBHdWlkT2JqID0gSWZyR3Vp ZCgwKQ0KPiArICAgICAgICAgICAgICAgICAgICBHdWlkT2JqLlNldEd1aWQoRURLSUlfSUZSX0JJ VF9WQVJTVE9SRV9HVUlEKQ0KPiArICAgICAgICAgICAgICAgICAgICBHdWlkT2JqLlNldExpbmVO byhMaW5lTm8pDQo+ICsgICAgICAgICAgICAgICAgICAgIFJldHVybkxpc3QuYXBwZW5kKEluc2Vy dE9wTm9kZShHdWlkT2JqLCBFRklfSUZSX0dVSURfT1ApKQ0KPiArDQo+ICsgICAgICAgICAgICAg ICAgaWYgSW5mby5Jc0JpdFZhcjoNCj4gKyAgICAgICAgICAgICAgICAgICAgSW5mby5WYXJUeXBl ID0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzMyDQo+ICsNCj4gKyAgICAgICAgICAgICAgICAjIE51 bWVyaWMgZG9lc24ndCBzdXBwb3J0IEJPT0xFQU4gZGF0YSB0eXBlLg0KPiArICAgICAgICAgICAg ICAgICMgQk9PTEVBTiB0eXBlIGhhcyB0aGUgc2FtZSBkYXRhIHNpemUgdG8gVUlOVDguDQo+ICsg ICAgICAgICAgICAgICAgZWxpZiBJbmZvLlZhclR5cGUgPT0gRUZJX0lGUl9UWVBFX0JPT0xFQU46 DQo+ICsgICAgICAgICAgICAgICAgICAgIEluZm8uVmFyVHlwZSA9IEVGSV9JRlJfVFlQRV9OVU1f U0laRV84DQo+ICsNCj4gKyAgICAgICAgICAgICAgICBDTk9iaiA9IElmck51bWVyaWMoSW5mby5W YXJUeXBlKQ0KPiArICAgICAgICAgICAgICAgIENOT2JqLlNldExpbmVObyhMaW5lTm8pDQo+ICsg ICAgICAgICAgICAgICAgQ05PYmouU2V0UHJvbXB0KDB4MCkNCj4gKyAgICAgICAgICAgICAgICBD Tk9iai5TZXRIZWxwKDB4MCkNCj4gKyAgICAgICAgICAgICAgICBDTk9iai5TZXRRdWVzdGlvbklk KFFJZCkNCj4gKyAgICAgICAgICAgICAgICBDTk9iai5TZXRWYXJTdG9yZUluZm8oSW5mbykNCj4g KyAgICAgICAgICAgICAgICBSZXR1cm5MaXN0LmFwcGVuZChJbnNlcnRPcE5vZGUoQ05PYmosIEVG SV9JRlJfR1VJRF9PUCkpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBpZiBJbmZvLklzQml0VmFy Og0KPiArICAgICAgICAgICAgICAgICAgICBNYXhWYWx1ZSA9ICgxIDw8IEluZm8uVmFyVG90YWxT aXplKSAtIDENCj4gKyAgICAgICAgICAgICAgICAgICAgQ05PYmouU2V0TWluTWF4U3RlcERhdGEo MCwgTWF4VmFsdWUsIDApDQo+ICsgICAgICAgICAgICAgICAgICAgIExGbGFncyA9IEVES0lJX0lG Ul9OVU1FUklDX1NJWkVfQklUICYgSW5mby5WYXJUb3RhbFNpemUNCj4gKyAgICAgICAgICAgICAg ICAgICAgQ05PYmouU2V0RmxhZ3NGb3JCaXRGaWVsZCgwLCBMRmxhZ3MpDQo+ICsgICAgICAgICAg ICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAgICAgICAgQ05PYmouU2V0RmxhZ3MoMCwgSW5m by5WYXJUeXBlKQ0KPiArICAgICAgICAgICAgICAgICAgICBDTk9iai5TZXRNaW5NYXhTdGVwRGF0 YSgwLCAtMSwgMCkNCj4gKw0KPiArICAgICAgICAgICAgICAgIGlmIFZhclN0b3JlVHlwZSA9PQ0K PiBFRklfVkZSX1ZBUlNUT1JFX1RZUEUuRUZJX1ZGUl9WQVJTVE9SRV9FRkk6DQo+ICsgICAgICAg ICAgICAgICAgICAgIFZOT2JqID0gSWZyVmFyRXFOYW1lKFFJZCwgSW5mby5JbmZvLlZhck5hbWUp DQo+ICsgICAgICAgICAgICAgICAgICAgIFZOT2JqLlNldExpbmVObyhMaW5lTm8pDQo+ICsgICAg ICAgICAgICAgICAgICAgIFJldHVybkxpc3QuYXBwZW5kKEluc2VydE9wTm9kZShWTk9iaiwgRUZJ X0lGUl9HVUlEX09QKSkNCj4gKw0KPiArICAgICAgICAgICAgICAgIENFT2JqID0gSWZyRW5kKCkN Cj4gKyAgICAgICAgICAgICAgICBDRU9iai5TZXRMaW5lTm8oTGluZU5vKQ0KPiArICAgICAgICAg ICAgICAgIFJldHVybkxpc3QuYXBwZW5kKEluc2VydE9wTm9kZShDRU9iaiwgRUZJX0lGUl9FTkRf T1ApKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgaWYgR3VpZE9iaiBpcyBub3QgTm9uZToNCj4g KyAgICAgICAgICAgICAgICAgICAgQ0VPYmpHdWlkID0gSWZyRW5kKCkNCj4gKyAgICAgICAgICAg ICAgICAgICAgQ0VPYmpHdWlkLlNldExpbmVObyhMaW5lTm8pDQo+ICsgICAgICAgICAgICAgICAg ICAgIFJldHVybkxpc3QuYXBwZW5kKEluc2VydE9wTm9kZShDRU9iakd1aWQsIEVGSV9JRlJfRU5E X09QKSkNCj4gKyAgICAgICAgICAgICAgICAgICAgR3VpZE9iai5TZXRTY29wZSgxKQ0KPiArICAg ICAgICAgICAgICAgICAgICBHdWlkT2JqID0gTm9uZQ0KPiArICAgICAgICAgICAgcE5vZGUgPSBw Tm9kZS5OZXh0DQo+ICsNCj4gKyAgICAgICAgU0VPYmogPSBJZnJFbmQoKQ0KPiArICAgICAgICBT RU9iai5TZXRMaW5lTm8oTGluZU5vKQ0KPiArICAgICAgICBSZXR1cm5MaXN0LmFwcGVuZChJbnNl cnRPcE5vZGUoU0VPYmosIEVGSV9JRlJfRU5EX09QKSkNCj4gKyAgICAgICAgcmV0dXJuIFJldHVy bkxpc3QsIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+ICsNCj4gKw0KPiArZ0Zv cm1Qa2cgPSBGb3JtUGtnKCkNCj4gK2dDcmVhdGVPcCA9IFRydWUNCj4gKw0KPiArZ0lmck9ialBy aW50RGVidWdUYWJsZSA9IFsNCj4gKyAgICAiRUZJX0lGUl9JTlZBTElEIiwNCj4gKyAgICAiRUZJ X0lGUl9GT1JNIiwNCj4gKyAgICAiRUZJX0lGUl9TVUJUSVRMRSIsDQo+ICsgICAgIkVGSV9JRlJf VEVYVCIsDQo+ICsgICAgIkVGSV9JRlJfSU1BR0UiLA0KPiArICAgICJFRklfSUZSX09ORV9PRiIs DQo+ICsgICAgIkVGSV9JRlJfQ0hFQ0tCT1giLA0KPiArICAgICJFRklfSUZSX05VTUVSSUMiLA0K PiArICAgICJFRklfSUZSX1BBU1NXT1JEIiwNCj4gKyAgICAiRUZJX0lGUl9PTkVfT0ZfT1BUSU9O IiwNCj4gKyAgICAiRUZJX0lGUl9TVVBQUkVTU19JRiIsDQo+ICsgICAgIkVGSV9JRlJfTE9DS0VE IiwNCj4gKyAgICAiRUZJX0lGUl9BQ1RJT04iLA0KPiArICAgICJFRklfSUZSX1JFU0VUX0JVVFRP TiIsDQo+ICsgICAgIkVGSV9JRlJfRk9STV9TRVQiLA0KPiArICAgICJFRklfSUZSX1JFRiIsDQo+ ICsgICAgIkVGSV9JRlJfTk9fU1VCTUlUX0lGIiwNCj4gKyAgICAiRUZJX0lGUl9JTkNPTlNJU1RF TlRfSUYiLA0KPiArICAgICJFRklfSUZSX0VRX0lEX1ZBTCIsDQo+ICsgICAgIkVGSV9JRlJfRVFf SURfSUQiLA0KPiArICAgICJFRklfSUZSX0VRX0lEX0xJU1QiLA0KPiArICAgICJFRklfSUZSX0FO RCIsDQo+ICsgICAgIkVGSV9JRlJfT1IiLA0KPiArICAgICJFRklfSUZSX05PVCIsDQo+ICsgICAg IkVGSV9JRlJfUlVMRSIsDQo+ICsgICAgIkVGSV9JRlJfR1JBWV9PVVRfSUYiLA0KPiArICAgICJF RklfSUZSX0RBVEUiLA0KPiArICAgICJFRklfSUZSX1RJTUUiLA0KPiArICAgICJFRklfSUZSX1NU UklORyIsDQo+ICsgICAgIkVGSV9JRlJfUkVGUkVTSCIsDQo+ICsgICAgIkVGSV9JRlJfRElTQUJM RV9JRiIsDQo+ICsgICAgIkVGSV9JRlJfSU5WQUxJRCIsDQo+ICsgICAgIkVGSV9JRlJfVE9fTE9X RVIiLA0KPiArICAgICJFRklfSUZSX1RPX1VQUEVSIiwNCj4gKyAgICAiRUZJX0lGUl9NQVAiLA0K PiArICAgICJFRklfSUZSX09SREVSRURfTElTVCIsDQo+ICsgICAgIkVGSV9JRlJfVkFSU1RPUkUi LA0KPiArICAgICJFRklfSUZSX1ZBUlNUT1JFX05BTUVfVkFMVUUiLA0KPiArICAgICJFRklfSUZS X1ZBUlNUT1JFX0VGSSIsDQo+ICsgICAgIkVGSV9JRlJfVkFSU1RPUkVfREVWSUNFIiwNCj4gKyAg ICAiRUZJX0lGUl9WRVJTSU9OIiwNCj4gKyAgICAiRUZJX0lGUl9FTkQiLA0KPiArICAgICJFRklf SUZSX01BVENIIiwNCj4gKyAgICAiRUZJX0lGUl9HRVQiLA0KPiArICAgICJFRklfSUZSX1NFVCIs DQo+ICsgICAgIkVGSV9JRlJfUkVBRCIsDQo+ICsgICAgIkVGSV9JRlJfV1JJVEUiLA0KPiArICAg ICJFRklfSUZSX0VRVUFMIiwNCj4gKyAgICAiRUZJX0lGUl9OT1RfRVFVQUwiLA0KPiArICAgICJF RklfSUZSX0dSRUFURVJfVEhBTiIsDQo+ICsgICAgIkVGSV9JRlJfR1JFQVRFUl9FUVVBTCIsDQo+ ICsgICAgIkVGSV9JRlJfTEVTU19USEFOIiwNCj4gKyAgICAiRUZJX0lGUl9MRVNTX0VRVUFMIiwN Cj4gKyAgICAiRUZJX0lGUl9CSVRXSVNFX0FORCIsDQo+ICsgICAgIkVGSV9JRlJfQklUV0lTRV9P UiIsDQo+ICsgICAgIkVGSV9JRlJfQklUV0lTRV9OT1QiLA0KPiArICAgICJFRklfSUZSX1NISUZU X0xFRlQiLA0KPiArICAgICJFRklfSUZSX1NISUZUX1JJR0hUIiwNCj4gKyAgICAiRUZJX0lGUl9B REQiLA0KPiArICAgICJFRklfSUZSX1NVQlRSQUNUIiwNCj4gKyAgICAiRUZJX0lGUl9NVUxUSVBM WSIsDQo+ICsgICAgIkVGSV9JRlJfRElWSURFIiwNCj4gKyAgICAiRUZJX0lGUl9NT0RVTE8iLA0K PiArICAgICJFRklfSUZSX1JVTEVfUkVGIiwNCj4gKyAgICAiRUZJX0lGUl9RVUVTVElPTl9SRUYx IiwNCj4gKyAgICAiRUZJX0lGUl9RVUVTVElPTl9SRUYyIiwNCj4gKyAgICAiRUZJX0lGUl9VSU5U OCIsDQo+ICsgICAgIkVGSV9JRlJfVUlOVDE2IiwNCj4gKyAgICAiRUZJX0lGUl9VSU5UMzIiLA0K PiArICAgICJFRklfSUZSX1VJTlQ2NCIsDQo+ICsgICAgIkVGSV9JRlJfVFJVRSIsDQo+ICsgICAg IkVGSV9JRlJfRkFMU0UiLA0KPiArICAgICJFRklfSUZSX1RPX1VJTlQiLA0KPiArICAgICJFRklf SUZSX1RPX1NUUklORyIsDQo+ICsgICAgIkVGSV9JRlJfVE9fQk9PTEVBTiIsDQo+ICsgICAgIkVG SV9JRlJfTUlEIiwNCj4gKyAgICAiRUZJX0lGUl9GSU5EIiwNCj4gKyAgICAiRUZJX0lGUl9UT0tF TiIsDQo+ICsgICAgIkVGSV9JRlJfU1RSSU5HX1JFRjEiLA0KPiArICAgICJFRklfSUZSX1NUUklO R19SRUYyIiwNCj4gKyAgICAiRUZJX0lGUl9DT05ESVRJT05BTCIsDQo+ICsgICAgIkVGSV9JRlJf UVVFU1RJT05fUkVGMyIsDQo+ICsgICAgIkVGSV9JRlJfWkVSTyIsDQo+ICsgICAgIkVGSV9JRlJf T05FIiwNCj4gKyAgICAiRUZJX0lGUl9PTkVTIiwNCj4gKyAgICAiRUZJX0lGUl9VTkRFRklORUQi LA0KPiArICAgICJFRklfSUZSX0xFTkdUSCIsDQo+ICsgICAgIkVGSV9JRlJfRFVQIiwNCj4gKyAg ICAiRUZJX0lGUl9USElTIiwNCj4gKyAgICAiRUZJX0lGUl9TUEFOIiwNCj4gKyAgICAiRUZJX0lG Ul9WQUxVRSIsDQo+ICsgICAgIkVGSV9JRlJfREVGQVVMVCIsDQo+ICsgICAgIkVGSV9JRlJfREVG QVVMVFNUT1JFIiwNCj4gKyAgICAiRUZJX0lGUl9GT1JNX01BUCIsDQo+ICsgICAgIkVGSV9JRlJf Q0FURU5BVEUiLA0KPiArICAgICJFRklfSUZSX0dVSUQiLA0KPiArICAgICJFRklfSUZSX1NFQ1VS SVRZIiwNCj4gKyAgICAiRUZJX0lGUl9NT0RBTF9UQUciLA0KPiArICAgICJFRklfSUZSX1JFRlJF U0hfSUQiLA0KPiArICAgICJFRklfSUZSX1dBUk5JTkdfSUYiLA0KPiArICAgICJFRklfSUZSX01B VENIMiIsDQo+ICtdDQo+ICsNCj4gK2dTY29wZUNvdW50ID0gMA0KPiArZ0lzT3JkZXJlZExpc3Qg PSBGYWxzZQ0KPiArZ0lzU3RyaW5nT3AgPSBGYWxzZQ0KPiArZ0N1cnJlbnRNaW5NYXhEYXRhID0g Tm9uZQ0KPiArDQo+ICsNCj4gK2NsYXNzIElmckxpbmU6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNl bGYsIExpbmVObz0wKToNCj4gKyAgICAgICAgc2VsZi5MaW5lTm8gPSBMaW5lTm8NCj4gKw0KPiAr ICAgIGRlZiBTZXRMaW5lTm8oc2VsZiwgTGluZU5vKToNCj4gKyAgICAgICAgc2VsZi5MaW5lTm8g PSBMaW5lTm8NCj4gKw0KPiArICAgIGRlZiBHZXRMaW5lTm8oc2VsZik6DQo+ICsgICAgICAgIHJl dHVybiBzZWxmLkxpbmVObw0KPiArDQo+ICsNCj4gK2NsYXNzIElmckJhc2VJbmZvOg0KPiArICAg IGRlZiBfX2luaXRfXyhzZWxmLCBPYmo9Tm9uZSwgUU5hbWU9Tm9uZSwgVmFySWRTdHI9IiIpOg0K PiArICAgICAgICBzZWxmLk9iaiA9IE9iag0KPiArICAgICAgICBzZWxmLlFOYW1lID0gUU5hbWUN Cj4gKyAgICAgICAgc2VsZi5WYXJJZFN0ciA9IFZhcklkU3RyDQo+ICsNCj4gKyAgICAgICAgc2Vs Zi5GbGFnc1N0cmVhbSA9ICIiDQo+ICsgICAgICAgIHNlbGYuSGFzS2V5ID0gRmFsc2UNCj4gKyAg ICAgICAgc2VsZi5IYXNRdWVzdGlvbklkID0gRmFsc2UNCj4gKw0KPiArICAgIGRlZiBTZXRRTmFt ZShzZWxmLCBRTmFtZSk6DQo+ICsgICAgICAgIHNlbGYuUU5hbWUgPSBRTmFtZQ0KPiArDQo+ICsg ICAgZGVmIFNldFZhcklkU3RyKHNlbGYsIFZhcklkU3RyKToNCj4gKyAgICAgICAgc2VsZi5WYXJJ ZFN0ciA9IFZhcklkU3RyDQo+ICsNCj4gKyAgICBkZWYgU2V0RmxhZ3NTdHJlYW0oc2VsZiwgRmxh Z3NTdHJlYW0pOg0KPiArICAgICAgICBzZWxmLkZsYWdzU3RyZWFtID0gRmxhZ3NTdHJlYW0NCj4g Kw0KPiArICAgIGRlZiBTZXRIYXNLZXkoc2VsZiwgSGFzS2V5KToNCj4gKyAgICAgICAgc2VsZi5I YXNLZXkgPSBIYXNLZXkNCj4gKw0KPiArICAgIGRlZiBTZXRIYXNRdWVzdGlvbklkKHNlbGYsIEhh c1F1ZXN0aW9uSWQpOg0KPiArICAgICAgICBzZWxmLkhhc1F1ZXN0aW9uSWQgPSBIYXNRdWVzdGlv bklkDQo+ICsNCj4gKyAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNl bGYuT2JqDQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyT3BIZWFkZXI6DQo+ICsgICAgZGVmIF9faW5p dF9fKHNlbGYsIE9wSGVhZGVyOiBFRklfSUZSX09QX0hFQURFUiwgT3BDb2RlPU5vbmUsDQo+IExl bmd0aD0wKToNCj4gKyAgICAgICAgc2VsZi5PcEhlYWRlciA9IE9wSGVhZGVyDQo+ICsgICAgICAg IGlmIE9wQ29kZSBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgIHNlbGYuT3BIZWFkZXIuT3BD b2RlID0gT3BDb2RlDQo+ICsNCj4gKyAgICAgICAgICAgIHNlbGYuT3BIZWFkZXIuTGVuZ3RoID0g Z09wY29kZVNpemVzU2NvcGVUYWJsZVtPcENvZGVdLlNpemUgaWYNCj4gTGVuZ3RoID09IDAgZWxz ZSBMZW5ndGgNCj4gKyAgICAgICAgICAgIHNlbGYuT3BIZWFkZXIuU2NvcGUgPSAoDQo+ICsgICAg ICAgICAgICAgICAgMSBpZiAoZ09wY29kZVNpemVzU2NvcGVUYWJsZVtPcENvZGVdLlNjb3BlICsg Z1Njb3BlQ291bnQgPiAwKQ0KPiBlbHNlIDANCj4gKyAgICAgICAgICAgICkNCj4gKw0KPiArICAg IGRlZiBHZXRMZW5ndGgoc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLk9wSGVhZGVyLkxl bmd0aA0KPiArDQo+ICsgICAgZGVmIFNldFNjb3BlKHNlbGYsIFNjb3BlKToNCj4gKyAgICAgICAg c2VsZi5PcEhlYWRlci5TY29wZSA9IFNjb3BlDQo+ICsNCj4gKyAgICBkZWYgVXBkYXRlSGVhZGVy KHNlbGYsIEhlYWRlcik6DQo+ICsgICAgICAgIHNlbGYuT3BIZWFkZXIgPSBIZWFkZXINCj4gKw0K PiArICAgIGRlZiBJbmNMZW5ndGgoc2VsZiwgU2l6ZSk6DQo+ICsgICAgICAgIHNlbGYuT3BIZWFk ZXIuTGVuZ3RoICs9IFNpemUNCj4gKw0KPiArICAgIGRlZiBEZWNMZW5ndGgoc2VsZiwgU2l6ZSk6 DQo+ICsgICAgICAgIHNlbGYuT3BIZWFkZXIuTGVuZ3RoIC09IFNpemUNCj4gKw0KPiArICAgIGRl ZiBBZGp1c3RMZW5ndGgoc2VsZiwgQmVmb3JlU2l6ZSwgQWZ0ZXJTaXplKToNCj4gKyAgICAgICAg c2VsZi5PcEhlYWRlci5MZW5ndGggLT0gQmVmb3JlU2l6ZQ0KPiArICAgICAgICBzZWxmLk9wSGVh ZGVyLkxlbmd0aCArPSBBZnRlclNpemUNCj4gKyAgICAgICAgc2VsZi5PcEhlYWRlci5MZW5ndGgg Kz0gMQ0KPiArDQo+ICsgICAgZGVmIEdldE9wQ29kZShzZWxmKToNCj4gKyAgICAgICAgcmV0dXJu IHNlbGYuT3BIZWFkZXIuT3BDb2RlDQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyU3RhdGVtZW50SGVh ZGVyOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzSGVhZGVyOiBFRklfSUZSX1NUQVRFTUVO VF9IRUFERVIpOg0KPiArICAgICAgICBzZWxmLnNIZWFkZXIgPSBzSGVhZGVyDQo+ICsgICAgICAg IHNlbGYuc0hlYWRlci5IZWxwID0gRUZJX1NUUklOR19JRF9JTlZBTElEDQo+ICsgICAgICAgIHNl bGYuc0hlYWRlci5Qcm9tcHQgPSBFRklfU1RSSU5HX0lEX0lOVkFMSUQNCj4gKw0KPiArICAgIGRl ZiBHZXRTdGF0ZW1lbnRIZWFkZXIoc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLnNIZWFk ZXINCj4gKw0KPiArICAgIGRlZiBTZXRQcm9tcHQoc2VsZiwgUHJvbXB0KToNCj4gKyAgICAgICAg c2VsZi5zSGVhZGVyLlByb21wdCA9IFByb21wdA0KPiArDQo+ICsgICAgZGVmIFNldEhlbHAoc2Vs ZiwgSGVscCk6DQo+ICsgICAgICAgIHNlbGYuc0hlYWRlci5IZWxwID0gSGVscA0KPiArDQo+ICsN Cj4gK2NsYXNzIElmck1pbk1heFN0ZXBEYXRhOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBN aW5NYXhTdGVwRGF0YSwgTnVtZXJpY09wY29kZT1GYWxzZSk6DQo+ICsgICAgICAgIHNlbGYuTWlu TWF4U3RlcERhdGEgPSBNaW5NYXhTdGVwRGF0YQ0KPiArICAgICAgICBzZWxmLk1pbk1heFN0ZXBE YXRhLk1pblZhbHVlID0gMA0KPiArICAgICAgICBzZWxmLk1pbk1heFN0ZXBEYXRhLk1heFZhbHVl ID0gMA0KPiArICAgICAgICBzZWxmLk1pbk1heFN0ZXBEYXRhLlN0ZXAgPSAwDQo+ICsgICAgICAg IHNlbGYuVmFsdWVJc1NldCA9IEZhbHNlDQo+ICsgICAgICAgIHNlbGYuSXNOdW1lcmljID0gTnVt ZXJpY09wY29kZQ0KPiArDQo+ICsgICAgZGVmIFNldE1pbk1heFN0ZXBEYXRhKHNlbGYsIE1pblZh bHVlLCBNYXhWYWx1ZSwgU3RlcCk6DQo+ICsgICAgICAgIGlmIHNlbGYuVmFsdWVJc1NldCA9PSBG YWxzZToNCj4gKyAgICAgICAgICAgIHNlbGYuTWluTWF4U3RlcERhdGEuTWluVmFsdWUgPSBNaW5W YWx1ZQ0KPiArICAgICAgICAgICAgc2VsZi5NaW5NYXhTdGVwRGF0YS5NYXhWYWx1ZSA9IE1heFZh bHVlDQo+ICsgICAgICAgICAgICBzZWxmLk1pbk1heFN0ZXBEYXRhLlN0ZXAgPSBTdGVwDQo+ICsN Cj4gKyAgICAgICAgICAgIHNlbGYuVmFsdWVJc1NldCA9IFRydWUNCj4gKyAgICAgICAgZWxzZToN Cj4gKyAgICAgICAgICAgIGlmIE1pblZhbHVlIDwgc2VsZi5NaW5NYXhTdGVwRGF0YS5NaW5WYWx1 ZToNCj4gKyAgICAgICAgICAgICAgICBzZWxmLk1pbk1heFN0ZXBEYXRhLk1pblZhbHVlID0gTWlu VmFsdWUNCj4gKyAgICAgICAgICAgIGlmIE1heFZhbHVlID4gc2VsZi5NaW5NYXhTdGVwRGF0YS5N YXhWYWx1ZToNCj4gKyAgICAgICAgICAgICAgICBzZWxmLk1pbk1heFN0ZXBEYXRhLk1heFZhbHVl ID0gTWF4VmFsdWUNCj4gKyAgICAgICAgICAgIHNlbGYuTWluTWF4U3RlcERhdGEuU3RlcCA9IFN0 ZXANCj4gKw0KPiArICAgIGRlZiBJc051bWVyaWNPcGNvZGUoc2VsZik6DQo+ICsgICAgICAgIHJl dHVybiBzZWxmLklzTnVtZXJpYw0KPiArDQo+ICsgICAgZGVmIFVwZGF0ZUlmck1pbk1heFN0ZXBE YXRhKHNlbGYsIE1pbk1heFN0ZXBEYXRhKToNCj4gKyAgICAgICAgc2VsZi5NaW5NYXhTdGVwRGF0 YSA9IE1pbk1heFN0ZXBEYXRhDQo+ICsNCj4gKyAgICBkZWYgR2V0TWluRGF0YShzZWxmKToNCj4g KyAgICAgICAgcmV0dXJuIHNlbGYuTWluTWF4U3RlcERhdGEuTWluVmFsdWUNCj4gKw0KPiArICAg IGRlZiBHZXRNYXhEYXRhKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5NaW5NYXhTdGVw RGF0YS5NYXhWYWx1ZQ0KPiArDQo+ICsgICAgZGVmIEdldFN0ZXBEYXRhKHNlbGYpOg0KPiArICAg ICAgICByZXR1cm4gc2VsZi5NaW5NYXhTdGVwRGF0YS5TdGVwDQo+ICsNCj4gKw0KPiArY2xhc3Mg SWZyRm9ybVNldChJZnJMaW5lLCBJZnJPcEhlYWRlcik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNl bGYsIFNpemUpOg0KPiArICAgICAgICBzZWxmLkZvcm1TZXQgPSBFRklfSUZSX0ZPUk1fU0VUKCkN Cj4gKyAgICAgICAgc2VsZi5DbGFzc0d1aWQgPSBbXQ0KPiArICAgICAgICBJZnJPcEhlYWRlci5f X2luaXRfXyhzZWxmLCBzZWxmLkZvcm1TZXQuSGVhZGVyLCBFRklfSUZSX0ZPUk1fU0VUX09QLA0K PiBTaXplKQ0KPiArICAgICAgICBzZWxmLkZvcm1TZXQuSGVscCA9IEVGSV9TVFJJTkdfSURfSU5W QUxJRA0KPiArICAgICAgICBzZWxmLkZvcm1TZXQuRm9ybVNldFRpdGxlID0gRUZJX1NUUklOR19J RF9JTlZBTElEDQo+ICsgICAgICAgIHNlbGYuRm9ybVNldC5GbGFncyA9IDANCj4gKyAgICAgICAg c2VsZi5Gb3JtU2V0Lkd1aWQgPSBFRklfR1VJRCgwLCAwLCAwLCBHdWlkQXJyYXkoMCwgMCwgMCwg MCwgMCwgMCwgMCwgMCkpDQo+ICsNCj4gKyAgICAgICAgc2VsZi5DbGFzc0d1aWROdW0gPSAwDQo+ ICsNCj4gKyAgICBkZWYgU2V0R3VpZChzZWxmLCBHdWlkKToNCj4gKyAgICAgICAgc2VsZi5Gb3Jt U2V0Lkd1aWQgPSBHdWlkDQo+ICsNCj4gKyAgICBkZWYgR2V0R3VpZChzZWxmKToNCj4gKyAgICAg ICAgcmV0dXJuIHNlbGYuRm9ybVNldC5HdWlkDQo+ICsNCj4gKyAgICBkZWYgU2V0Rm9ybVNldFRp dGxlKHNlbGYsIEZvcm1TZXRUaXRsZSk6DQo+ICsgICAgICAgIHNlbGYuRm9ybVNldC5Gb3JtU2V0 VGl0bGUgPSBGb3JtU2V0VGl0bGUNCj4gKw0KPiArICAgIGRlZiBHZXRGb3JtU2V0VGl0bGUoc2Vs Zik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLkZvcm1TZXQuRm9ybVNldFRpdGxlDQo+ICsNCj4g KyAgICBkZWYgU2V0SGVscChzZWxmLCBIZWxwKToNCj4gKyAgICAgICAgc2VsZi5Gb3JtU2V0Lkhl bHAgPSBIZWxwDQo+ICsNCj4gKyAgICBkZWYgR2V0SGVscChzZWxmKToNCj4gKyAgICAgICAgcmV0 dXJuIHNlbGYuRm9ybVNldC5IZWxwDQo+ICsNCj4gKyAgICBkZWYgU2V0Q2xhc3NHdWlkKHNlbGYs IEd1aWQpOg0KPiArICAgICAgICBzZWxmLkNsYXNzR3VpZC5hcHBlbmQoR3VpZCkNCj4gKyAgICAg ICAgc2VsZi5Gb3JtU2V0LkZsYWdzICs9IDENCj4gKw0KPiArICAgIGRlZiBHZXRDbGFzc0d1aWQo c2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLkNsYXNzR3VpZA0KPiArDQo+ICsgICAgZGVm IEdldEZsYWdzKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5Gb3JtU2V0LkZsYWdzDQo+ ICsNCj4gKyAgICBkZWYgU2V0Q2xhc3NHdWlkTnVtKHNlbGYsIE51bSk6DQo+ICsgICAgICAgIHNl bGYuQ2xhc3NHdWlkTnVtID0gTnVtDQo+ICsNCj4gKyAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4g KyAgICAgICAgcmV0dXJuIHNlbGYuRm9ybVNldA0KPiArDQo+ICsNCj4gK2NsYXNzIElmck9uZU9m T3B0aW9uKElmckxpbmUsIElmck9wSGVhZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwg VmFsdWVUeXBlLCBWYWx1ZUxpc3QpOg0KPiArICAgICAgICBOdW1zID0gbGVuKFZhbHVlTGlzdCkN Cj4gKyAgICAgICAgc2VsZi5PbmVPZk9wdGlvbiA9IFJlZmluZV9FRklfSUZSX09ORV9PRl9PUFRJ T04oVmFsdWVUeXBlLCBOdW1zKQ0KPiArICAgICAgICBJZnJPcEhlYWRlci5fX2luaXRfXygNCj4g KyAgICAgICAgICAgIHNlbGYsIHNlbGYuT25lT2ZPcHRpb24uSGVhZGVyLCBFRklfSUZSX09ORV9P Rl9PUFRJT05fT1AsDQo+IHNpemVvZihzZWxmLk9uZU9mT3B0aW9uKQ0KPiArICAgICAgICApDQo+ ICsgICAgICAgIHNlbGYuT25lT2ZPcHRpb24uRmxhZ3MgPSAwDQo+ICsgICAgICAgIHNlbGYuT25l T2ZPcHRpb24uT3B0aW9uID0gRUZJX1NUUklOR19JRF9JTlZBTElEDQo+ICsgICAgICAgIHNlbGYu T25lT2ZPcHRpb24uVHlwZSA9IEVGSV9JRlJfVFlQRV9PVEhFUg0KPiArICAgICAgICBzZWxmLlZh bHVlVHlwZSA9IFZhbHVlVHlwZQ0KPiArICAgICAgICBpZiBWYWx1ZUxpc3QgIT0gW106DQo+ICsg ICAgICAgICAgICBBcnJheVR5cGUgPSBUeXBlRGljdFtWYWx1ZVR5cGVdICogTnVtcw0KPiArICAg ICAgICAgICAgVmFsdWVBcnJheSA9IEFycmF5VHlwZSgpDQo+ICsgICAgICAgICAgICBmb3IgaSBp biByYW5nZSgwLCBsZW4oVmFsdWVMaXN0KSk6DQo+ICsgICAgICAgICAgICAgICAgVmFsdWVBcnJh eVtpXSA9IFZhbHVlTGlzdFtpXQ0KPiArICAgICAgICAgICAgc2VsZi5PbmVPZk9wdGlvbi5WYWx1 ZSA9IFZhbHVlQXJyYXkNCj4gKw0KPiArICAgICAgICBzZWxmLklmck9wdGlvbktleSA9IE5vbmUN Cj4gKyAgICAgICAgc2VsZi5GbGFnc1N0cmVhbSA9ICIiDQo+ICsgICAgICAgIHNlbGYuVmFsdWVT dHJlYW0gPSAiIg0KPiArDQo+ICsgICAgZGVmIFNldE9wdGlvbihzZWxmLCBPcHRpb24pOg0KPiAr ICAgICAgICBzZWxmLk9uZU9mT3B0aW9uLk9wdGlvbiA9IE9wdGlvbg0KPiArDQo+ICsgICAgZGVm IFNldFR5cGUoc2VsZiwgVHlwZSk6DQo+ICsgICAgICAgIHNlbGYuT25lT2ZPcHRpb24uVHlwZSA9 IFR5cGUNCj4gKw0KPiArICAgIGRlZiBTZXRJZnJPcHRpb25LZXkoc2VsZiwgSWZyT3B0aW9uS2V5 KToNCj4gKyAgICAgICAgc2VsZi5JZnJPcHRpb25LZXkgPSBJZnJPcHRpb25LZXkNCj4gKw0KPiAr ICAgIGRlZiBTZXRGbGFnc1N0cmVhbShzZWxmLCBGbGFnc1N0cmVhbSk6DQo+ICsgICAgICAgIHNl bGYuRmxhZ3NTdHJlYW0gPSBGbGFnc1N0cmVhbQ0KPiArDQo+ICsgICAgZGVmIFNldFZhbHVlU3Ry ZWFtKHNlbGYsIFZhbHVlU3RyZWFtKToNCj4gKyAgICAgICAgc2VsZi5WYWx1ZVN0cmVhbSA9IFZh bHVlU3RyZWFtDQo+ICsNCj4gKyAgICBkZWYgR2V0VmFsdWVUeXBlKHNlbGYpOg0KPiArICAgICAg ICByZXR1cm4gc2VsZi5WYWx1ZVR5cGUNCj4gKw0KPiArICAgIGRlZiBTZXRWYWx1ZShzZWxmLCBW YWx1ZUxpc3QpOg0KPiArICAgICAgICBBcnJheVR5cGUgPSBUeXBlRGljdFtzZWxmLlZhbHVlVHlw ZV0gKiAobGVuKFZhbHVlTGlzdCkpDQo+ICsgICAgICAgIFZhbHVlQXJyYXkgPSBBcnJheVR5cGUo KQ0KPiArICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCBsZW4oVmFsdWVMaXN0KSk6DQo+ICsgICAg ICAgICAgICBWYWx1ZUFycmF5W2ldID0gVmFsdWVMaXN0W2ldDQo+ICsgICAgICAgIHNlbGYuT25l T2ZPcHRpb24uVmFsdWUgPSBWYWx1ZUFycmF5DQo+ICsNCj4gKyAgICBkZWYgR2V0RmxhZ3Moc2Vs Zik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLk9uZU9mT3B0aW9uLkZsYWdzDQo+ICsNCj4gKyAg ICBkZWYgU2V0RmxhZ3Moc2VsZiwgTEZsYWdzKToNCj4gKyAgICAgICAgc2VsZi5PbmVPZk9wdGlv bi5GbGFncyA9IDANCj4gKyAgICAgICAgTEZsYWdzLCBSZXQgPSBfRkxBR19URVNUX0FORF9DTEVB UihMRmxhZ3MsDQo+IEVGSV9JRlJfT1BUSU9OX0RFRkFVTFQpDQo+ICsgICAgICAgIGlmIFJldDoN Cj4gKyAgICAgICAgICAgIHNlbGYuT25lT2ZPcHRpb24uRmxhZ3MgfD0gRUZJX0lGUl9PUFRJT05f REVGQVVMVA0KPiArDQo+ICsgICAgICAgIExGbGFncywgUmV0ID0gX0ZMQUdfVEVTVF9BTkRfQ0xF QVIoTEZsYWdzLA0KPiBFRklfSUZSX09QVElPTl9ERUZBVUxUX01GRykNCj4gKyAgICAgICAgaWYg UmV0Og0KPiArICAgICAgICAgICAgc2VsZi5PbmVPZk9wdGlvbi5GbGFncyB8PSBFRklfSUZSX09Q VElPTl9ERUZBVUxUX01GRw0KPiArDQo+ICsgICAgICAgIGlmIExGbGFncyA9PSBFRklfSUZSX1RZ UEVfTlVNX1NJWkVfODoNCj4gKyAgICAgICAgICAgIExGbGFncyA9IF9GTEFHX0NMRUFSKExGbGFn cywgRUZJX0lGUl9UWVBFX05VTV9TSVpFXzgpDQo+ICsgICAgICAgICAgICBzZWxmLk9uZU9mT3B0 aW9uLkZsYWdzIHw9IEVGSV9JRlJfVFlQRV9OVU1fU0laRV84DQo+ICsNCj4gKyAgICAgICAgZWxp ZiBMRmxhZ3MgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzE2Og0KPiArICAgICAgICAgICAgTEZs YWdzID0gX0ZMQUdfQ0xFQVIoTEZsYWdzLCBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMTYpDQo+ICsg ICAgICAgICAgICBzZWxmLk9uZU9mT3B0aW9uLkZsYWdzIHw9IEVGSV9JRlJfVFlQRV9OVU1fU0la RV8xNg0KPiArDQo+ICsgICAgICAgIGVsaWYgTEZsYWdzID09IEVGSV9JRlJfVFlQRV9OVU1fU0la RV8zMjoNCj4gKyAgICAgICAgICAgIExGbGFncyA9IF9GTEFHX0NMRUFSKExGbGFncywgRUZJX0lG Ul9UWVBFX05VTV9TSVpFXzMyKQ0KPiArICAgICAgICAgICAgc2VsZi5PbmVPZk9wdGlvbi5GbGFn cyB8PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMzINCj4gKw0KPiArICAgICAgICBlbGlmIExGbGFn cyA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfNjQ6DQo+ICsgICAgICAgICAgICBMRmxhZ3MgPSBf RkxBR19DTEVBUihMRmxhZ3MsIEVGSV9JRlJfVFlQRV9OVU1fU0laRV82NCkNCj4gKyAgICAgICAg ICAgIHNlbGYuT25lT2ZPcHRpb24uRmxhZ3MgfD0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzY0DQo+ ICsNCj4gKyAgICAgICAgZWxpZiBMRmxhZ3MgPT0gRUZJX0lGUl9UWVBFX0JPT0xFQU46DQo+ICsg ICAgICAgICAgICBMRmxhZ3MgPSBfRkxBR19DTEVBUihMRmxhZ3MsIEVGSV9JRlJfVFlQRV9CT09M RUFOKQ0KPiArICAgICAgICAgICAgc2VsZi5PbmVPZk9wdGlvbi5GbGFncyB8PSBFRklfSUZSX1RZ UEVfQk9PTEVBTg0KPiArDQo+ICsgICAgICAgIGVsaWYgTEZsYWdzID09IEVGSV9JRlJfVFlQRV9U SU1FOg0KPiArICAgICAgICAgICAgTEZsYWdzID0gX0ZMQUdfQ0xFQVIoTEZsYWdzLCBFRklfSUZS X1RZUEVfVElNRSkNCj4gKyAgICAgICAgICAgIHNlbGYuT25lT2ZPcHRpb24uRmxhZ3MgfD0gRUZJ X0lGUl9UWVBFX1RJTUUNCj4gKw0KPiArICAgICAgICBlbGlmIExGbGFncyA9PSBFRklfSUZSX1RZ UEVfREFURToNCj4gKyAgICAgICAgICAgIExGbGFncyA9IF9GTEFHX0NMRUFSKExGbGFncywgRUZJ X0lGUl9UWVBFX0RBVEUpDQo+ICsgICAgICAgICAgICBzZWxmLk9uZU9mT3B0aW9uLkZsYWdzIHw9 IEVGSV9JRlJfVFlQRV9EQVRFDQo+ICsNCj4gKyAgICAgICAgZWxpZiBMRmxhZ3MgPT0gRUZJX0lG Ul9UWVBFX1NUUklORzoNCj4gKyAgICAgICAgICAgIExGbGFncyA9IF9GTEFHX0NMRUFSKExGbGFn cywgRUZJX0lGUl9UWVBFX1NUUklORykNCj4gKyAgICAgICAgICAgIHNlbGYuT25lT2ZPcHRpb24u RmxhZ3MgfD0gRUZJX0lGUl9UWVBFX1NUUklORw0KPiArDQo+ICsgICAgICAgIGVsaWYgTEZsYWdz ID09IEVGSV9JRlJfVFlQRV9PVEhFUjoNCj4gKyAgICAgICAgICAgIExGbGFncyA9IF9GTEFHX0NM RUFSKExGbGFncywgRUZJX0lGUl9UWVBFX09USEVSKQ0KPiArICAgICAgICAgICAgc2VsZi5PbmVP Zk9wdGlvbi5GbGFncyB8PSBFRklfSUZSX1RZUEVfT1RIRVINCj4gKw0KPiArICAgICAgICByZXR1 cm4gKA0KPiArICAgICAgICAgICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4g KyAgICAgICAgICAgIGlmIExGbGFncyA9PSAwDQo+ICsgICAgICAgICAgICBlbHNlIFZmclJldHVy bkNvZGUuVkZSX1JFVFVSTl9GTEFHU19VTlNVUFBPUlRFRA0KPiArICAgICAgICApDQo+ICsNCj4g KyAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuT25lT2ZPcHRp b24NCj4gKw0KPiArDQo+ICtjbGFzcyBJZnJPcHRpb25LZXkoSWZyTGluZSwgSWZyT3BIZWFkZXIp Og0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBRdWVzdGlvbklkLCBUeXBlLCBPcHRpb25WYWx1 ZSwgS2V5VmFsdWUpOg0KPiArICAgICAgICBzZWxmLk9wdGlvbktleSA9IFJlZmluZV9FRklfSUZS X0dVSURfT1BUSU9OS0VZKFR5cGUpDQo+ICsgICAgICAgIElmck9wSGVhZGVyLl9faW5pdF9fKHNl bGYsIHNlbGYuT3B0aW9uS2V5LkhlYWRlciwgRUZJX0lGUl9HVUlEX09QLA0KPiBzaXplb2Yoc2Vs Zi5PcHRpb25LZXkpKQ0KPiArICAgICAgICBzZWxmLk9wdGlvbktleS5FeHRlbmRPcENvZGUgPSBF RklfSUZSX0VYVEVORF9PUF9PUFRJT05LRVkNCj4gKyAgICAgICAgc2VsZi5PcHRpb25LZXkuR3Vp ZCA9IEVGSV9JRlJfRlJBTUVXT1JLX0dVSUQNCj4gKyAgICAgICAgc2VsZi5PcHRpb25LZXkuUXVl c3Rpb25JZCA9IFF1ZXN0aW9uSWQNCj4gKyAgICAgICAgc2VsZi5PcHRpb25LZXkuT3B0aW9uVmFs dWUgPSBPcHRpb25WYWx1ZQ0KPiArICAgICAgICBzZWxmLk9wdGlvbktleS5LZXlWYWx1ZSA9IEtl eVZhbHVlDQo+ICsNCj4gKyAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJu IHNlbGYuT3B0aW9uS2V5DQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyQ2xhc3MoSWZyTGluZSwgSWZy T3BIZWFkZXIpOg0KPiArICAgIGRlZiBfX2luaXRfXygNCj4gKyAgICAgICAgc2VsZiwNCj4gKyAg ICApOg0KPiArICAgICAgICBzZWxmLkNsYXNzID0gRUZJX0lGUl9HVUlEX0NMQVNTKCkgICMgc3Rh dGljIGd1aWQNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5DbGFz cy5IZWFkZXIsIEVGSV9JRlJfR1VJRF9PUCwNCj4gc2l6ZW9mKEVGSV9JRlJfR1VJRF9DTEFTUykp DQo+ICsgICAgICAgIHNlbGYuQ2xhc3MuRXh0ZW5kT3BDb2RlID0gRUZJX0lGUl9FWFRFTkRfT1Bf Q0xBU1MNCj4gKyAgICAgICAgc2VsZi5DbGFzcy5HdWlkID0gRUZJX0lGUl9USUFOT19HVUlEDQo+ ICsgICAgICAgIHNlbGYuQ2xhc3MuQ2xhc3MgPSBFRklfTk9OX0RFVklDRV9DTEFTUw0KPiArDQo+ ICsgICAgICAgIHNlbGYuSGFzU3ViQ2xhc3MgPSBGYWxzZQ0KPiArICAgICAgICBzZWxmLkNsYXNz U3RyID0gTm9uZQ0KPiArDQo+ICsgICAgZGVmIFNldENsYXNzKHNlbGYsIENsYXNzKToNCj4gKyAg ICAgICAgc2VsZi5DbGFzcy5DbGFzcyA9IENsYXNzDQo+ICsNCj4gKyAgICBkZWYgU2V0Q2xhc3NT dHIoc2VsZiwgQ2xhc3NTdHIpOg0KPiArICAgICAgICBzZWxmLkNsYXNzU3RyID0gQ2xhc3NTdHIN Cj4gKw0KPiArICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5D bGFzcw0KPiArDQo+ICsNCj4gK2NsYXNzIElmclN1YkNsYXNzKElmckxpbmUsIElmck9wSGVhZGVy KToNCj4gKyAgICBkZWYgX19pbml0X18oDQo+ICsgICAgICAgIHNlbGYsDQo+ICsgICAgKToNCj4g KyAgICAgICAgc2VsZi5TdWJDbGFzcyA9IEVGSV9JRlJfR1VJRF9TVUJDTEFTUygpDQo+ICsgICAg ICAgIElmck9wSGVhZGVyLl9faW5pdF9fKA0KPiArICAgICAgICAgICAgc2VsZiwgc2VsZi5TdWJD bGFzcy5IZWFkZXIsIEVGSV9JRlJfR1VJRF9PUCwNCj4gc2l6ZW9mKEVGSV9JRlJfR1VJRF9TVUJD TEFTUykNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICBzZWxmLlN1YkNsYXNzLkV4dGVuZE9wQ29k ZSA9IEVGSV9JRlJfRVhURU5EX09QX1NVQkNMQVNTDQo+ICsgICAgICAgIHNlbGYuU3ViQ2xhc3Mu R3VpZCA9IEVGSV9JRlJfVElBTk9fR1VJRA0KPiArICAgICAgICBzZWxmLlN1YkNsYXNzLlN1YkNs YXNzID0gRUZJX1NFVFVQX0FQUExJQ0FUSU9OX1NVQkNMQVNTDQo+ICsNCj4gKyAgICAgICAgc2Vs Zi5TdWJDbGFzc1N0ciA9IE5vbmUNCj4gKw0KPiArICAgIGRlZiBTZXRTdWJDbGFzcyhzZWxmLCBT dWJDbGFzcyk6DQo+ICsgICAgICAgIHNlbGYuU3ViQ2xhc3MuU3ViQ2xhc3MgPSBTdWJDbGFzcw0K PiArDQo+ICsgICAgZGVmIFNldFN1YkNsYXNzU3RyKHNlbGYsIFN1YkNsYXNzU3RyKToNCj4gKyAg ICAgICAgc2VsZi5TdWJDbGFzc1N0ciA9IFN1YkNsYXNzU3RyDQo+ICsNCj4gKyAgICBkZWYgR2V0 SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuU3ViQ2xhc3MNCj4gKw0KPiArDQo+ ICtjbGFzcyBJZnJEZWZhdWx0U3RvcmUoSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0KPiArICAgIGRl ZiBfX2luaXRfXyhzZWxmLCBUeXBlTmFtZT1Ob25lKToNCj4gKyAgICAgICAgc2VsZi5EZWZhdWx0 U3RvcmUgPSBFRklfSUZSX0RFRkFVTFRTVE9SRSgpDQo+ICsgICAgICAgIElmck9wSGVhZGVyLl9f aW5pdF9fKHNlbGYsIHNlbGYuRGVmYXVsdFN0b3JlLkhlYWRlciwNCj4gRUZJX0lGUl9ERUZBVUxU U1RPUkVfT1ApDQo+ICsgICAgICAgIHNlbGYuRGVmYXVsdFN0b3JlLkRlZmF1bHROYW1lID0gRUZJ X1NUUklOR19JRF9JTlZBTElEDQo+ICsgICAgICAgIHNlbGYuRGVmYXVsdFN0b3JlLkRlZmF1bHRJ ZCA9IEVGSV9WQVJTVE9SRV9JRF9JTlZBTElEDQo+ICsgICAgICAgIHNlbGYuVHlwZSA9IFR5cGVO YW1lDQo+ICsgICAgICAgIHNlbGYuSGFzQXR0ciA9IEZhbHNlDQo+ICsNCj4gKyAgICBkZWYgU2V0 RGVmYXVsdE5hbWUoc2VsZiwgRGVmYXVsdE5hbWUpOg0KPiArICAgICAgICBzZWxmLkRlZmF1bHRT dG9yZS5EZWZhdWx0TmFtZSA9IERlZmF1bHROYW1lDQo+ICsNCj4gKyAgICBkZWYgU2V0VHlwZShz ZWxmLCBUeXBlKToNCj4gKyAgICAgICAgc2VsZi5UeXBlID0gVHlwZQ0KPiArDQo+ICsgICAgZGVm IFNldERlZmF1bHRJZChzZWxmLCBEZWZhdWx0SWQpOg0KPiArICAgICAgICBzZWxmLkRlZmF1bHRT dG9yZS5EZWZhdWx0SWQgPSBEZWZhdWx0SWQNCj4gKw0KPiArICAgIGRlZiBTZXREZWZhdWx0U3Rv cmUoc2VsZiwgRGVmYXVsdFN0b3JlOiBFRklfSUZSX0RFRkFVTFRTVE9SRSk6DQo+ICsgICAgICAg IHNlbGYuRGVmYXVsdFN0b3JlID0gRGVmYXVsdFN0b3JlDQo+ICsgICAgICAgIElmck9wSGVhZGVy Ll9faW5pdF9fKHNlbGYsIHNlbGYuRGVmYXVsdFN0b3JlLkhlYWRlciwNCj4gRUZJX0lGUl9ERUZB VUxUU1RPUkVfT1ApDQo+ICsNCj4gKyAgICBkZWYgR2V0RGVmYXVsdElkKHNlbGYpOg0KPiArICAg ICAgICByZXR1cm4gc2VsZi5EZWZhdWx0U3RvcmUuRGVmYXVsdElkDQo+ICsNCj4gKyAgICBkZWYg R2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuRGVmYXVsdFN0b3JlDQo+ICsN Cj4gKw0KPiArY2xhc3MgSWZyVmFyU3RvcmUoSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0KPiArICAg IGRlZiBfX2luaXRfXyhzZWxmLCBUeXBlTmFtZSwgU3RvcmVOYW1lKToNCj4gKyAgICAgICAgTnVt cyA9IGxlbihTdG9yZU5hbWUpDQo+ICsgICAgICAgIHNlbGYuVmFyc3RvcmUgPSBSZWZpbmVfRUZJ X0lGUl9WQVJTVE9SRShOdW1zKQ0KPiArICAgICAgICBJZnJPcEhlYWRlci5fX2luaXRfXygNCj4g KyAgICAgICAgICAgIHNlbGYsIHNlbGYuVmFyc3RvcmUuSGVhZGVyLCBFRklfSUZSX1ZBUlNUT1JF X09QLCBzaXplb2Yoc2VsZi5WYXJzdG9yZSkNCj4gKyAxDQo+ICsgICAgICAgICkNCj4gKyAgICAg ICAgc2VsZi5WYXJzdG9yZS5WYXJTdG9yZUlkID0gRUZJX1ZBUlNUT1JFX0lEX0lOVkFMSUQNCj4g KyAgICAgICAgc2VsZi5WYXJzdG9yZS5TaXplID0gMA0KPiArICAgICAgICBBcnJheVR5cGUgPSBj X3VieXRlICogKE51bXMpDQo+ICsgICAgICAgIFZhbHVlQXJyYXkgPSBBcnJheVR5cGUoKQ0KPiAr ICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCBOdW1zKToNCj4gKyAgICAgICAgICAgIFZhbHVlQXJy YXlbaV0gPSBvcmQoU3RvcmVOYW1lW2ldKQ0KPiArICAgICAgICBzZWxmLlZhcnN0b3JlLk5hbWUg PSBWYWx1ZUFycmF5DQo+ICsNCj4gKyAgICAgICAgIyBpbmZvIHNhdmVkIGZvciB5YW1sIGdlbmVy YXRpb24NCj4gKyAgICAgICAgc2VsZi5UeXBlID0gVHlwZU5hbWUNCj4gKyAgICAgICAgc2VsZi5I YXNWYXJTdG9yZUlkID0gRmFsc2UNCj4gKw0KPiArICAgIGRlZiBTZXRHdWlkKHNlbGYsIEd1aWQp Og0KPiArICAgICAgICBzZWxmLlZhcnN0b3JlLkd1aWQgPSBHdWlkDQo+ICsNCj4gKyAgICBkZWYg U2V0U2l6ZShzZWxmLCBTaXplKToNCj4gKyAgICAgICAgc2VsZi5WYXJzdG9yZS5TaXplID0gU2l6 ZQ0KPiArDQo+ICsgICAgZGVmIFNldFZhclN0b3JlSWQoc2VsZiwgVmFyU3RvcmVJZCk6DQo+ICsg ICAgICAgIHNlbGYuVmFyc3RvcmUuVmFyU3RvcmVJZCA9IFZhclN0b3JlSWQNCj4gKw0KPiArICAg IGRlZiBTZXRIYXNWYXJTdG9yZUlkKHNlbGYsIEhhc1ZhclN0b3JlSWQpOg0KPiArICAgICAgICBz ZWxmLkhhc1ZhclN0b3JlSWQgPSBIYXNWYXJTdG9yZUlkDQo+ICsNCj4gKyAgICBkZWYgR2V0SW5m byhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuVmFyc3RvcmUNCj4gKw0KPiArDQo+ICtj bGFzcyBJZnJWYXJTdG9yZUVmaShJZnJMaW5lLCBJZnJPcEhlYWRlcik6DQo+ICsgICAgZGVmIF9f aW5pdF9fKHNlbGYsIFR5cGVOYW1lLCBTdG9yZU5hbWUpOg0KPiArICAgICAgICBOdW1zID0gbGVu KFN0b3JlTmFtZSkNCj4gKyAgICAgICAgc2VsZi5WYXJTdG9yZUVmaSA9IFJlZmluZV9FRklfSUZS X1ZBUlNUT1JFX0VGSShOdW1zKQ0KPiArICAgICAgICBJZnJPcEhlYWRlci5fX2luaXRfXygNCj4g KyAgICAgICAgICAgIHNlbGYsIHNlbGYuVmFyU3RvcmVFZmkuSGVhZGVyLCBFRklfSUZSX1ZBUlNU T1JFX0VGSV9PUCwNCj4gc2l6ZW9mKHNlbGYuVmFyU3RvcmVFZmkpICsgMQ0KPiArICAgICAgICAp DQo+ICsgICAgICAgIHNlbGYuVmFyU3RvcmVFZmkuVmFyU3RvcmVJZCA9IEVGSV9WQVJPRkZTRVRf SU5WQUxJRA0KPiArICAgICAgICBzZWxmLlZhclN0b3JlRWZpLlNpemUgPSAwDQo+ICsgICAgICAg IEFycmF5VHlwZSA9IGNfdWJ5dGUgKiAoTnVtcykNCj4gKyAgICAgICAgVmFsdWVBcnJheSA9IEFy cmF5VHlwZSgpDQo+ICsgICAgICAgIGZvciBpIGluIHJhbmdlKDAsIE51bXMpOg0KPiArICAgICAg ICAgICAgVmFsdWVBcnJheVtpXSA9IG9yZChTdG9yZU5hbWVbaV0pDQo+ICsgICAgICAgIHNlbGYu VmFyU3RvcmVFZmkuTmFtZSA9IFZhbHVlQXJyYXkNCj4gKw0KPiArICAgICAgICAjIGluZm8gc2F2 ZWQgZm9yIHlhbWwgZ2VuZXJhdGlvbg0KPiArICAgICAgICBzZWxmLlR5cGUgPSBUeXBlTmFtZQ0K PiArICAgICAgICBzZWxmLkhhc1ZhclN0b3JlSWQgPSBGYWxzZQ0KPiArICAgICAgICBzZWxmLkF0 dHJpYnV0ZXNUZXh0ID0gTm9uZQ0KPiArICAgICAgICBzZWxmLk5hbWVTdHJpbmdJZCA9IE5vbmUN Cj4gKyAgICAgICAgc2VsZi5WYXJTaXplID0gTm9uZQ0KPiArDQo+ICsgICAgZGVmIFNldEd1aWQo c2VsZiwgR3VpZCk6DQo+ICsgICAgICAgIHNlbGYuVmFyU3RvcmVFZmkuR3VpZCA9IEd1aWQNCj4g Kw0KPiArICAgIGRlZiBTZXRTaXplKHNlbGYsIFNpemUpOg0KPiArICAgICAgICBzZWxmLlZhclN0 b3JlRWZpLlNpemUgPSBTaXplDQo+ICsNCj4gKyAgICBkZWYgU2V0TmFtZVN0cmluZ0lkKHNlbGYs IE5hbWVTdHJpbmdJZCk6DQo+ICsgICAgICAgIHNlbGYuTmFtZVN0cmluZ0lkID0gTmFtZVN0cmlu Z0lkDQo+ICsNCj4gKyAgICBkZWYgU2V0VmFyU2l6ZShzZWxmLCBWYXJTaXplKToNCj4gKyAgICAg ICAgc2VsZi5WYXJTaXplID0gVmFyU2l6ZQ0KPiArDQo+ICsgICAgZGVmIFNldFZhclN0b3JlSWQo c2VsZiwgVmFyU3RvcmVJZCk6DQo+ICsgICAgICAgIHNlbGYuVmFyU3RvcmVFZmkuVmFyU3RvcmVJ ZCA9IFZhclN0b3JlSWQNCj4gKw0KPiArICAgIGRlZiBTZXRBdHRyaWJ1dGVzKHNlbGYsIEF0dHJp YnV0ZXMpOg0KPiArICAgICAgICBzZWxmLlZhclN0b3JlRWZpLkF0dHJpYnV0ZXMgPSBBdHRyaWJ1 dGVzDQo+ICsNCj4gKyAgICBkZWYgU2V0SGFzVmFyU3RvcmVJZChzZWxmLCBIYXNWYXJTdG9yZUlk KToNCj4gKyAgICAgICAgc2VsZi5IYXNWYXJTdG9yZUlkID0gSGFzVmFyU3RvcmVJZA0KPiArDQo+ ICsgICAgZGVmIFNldEF0dHJpYnV0ZXNUZXh0KHNlbGYsIEF0dHJpYnV0ZXNUZXh0KToNCj4gKyAg ICAgICAgc2VsZi5BdHRyaWJ1dGVzVGV4dCA9IEF0dHJpYnV0ZXNUZXh0DQo+ICsNCj4gKyAgICBk ZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuVmFyU3RvcmVFZmkNCj4g Kw0KPiArDQo+ICtjbGFzcyBJZnJWYXJTdG9yZU5hbWVWYWx1ZShJZnJMaW5lLCBJZnJPcEhlYWRl cik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIFR5cGVOYW1lKToNCj4gKyAgICAgICAgc2Vs Zi5WYXJTdG9yZU5hbWVWYWx1ZSA9IEVGSV9JRlJfVkFSU1RPUkVfTkFNRV9WQUxVRSgpDQo+ICsg ICAgICAgIElmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuVmFyU3RvcmVOYW1lVmFsdWUu SGVhZGVyLA0KPiBFRklfSUZSX1ZBUlNUT1JFX05BTUVfVkFMVUVfT1ApDQo+ICsgICAgICAgIHNl bGYuVmFyU3RvcmVOYW1lVmFsdWUuVmFyU3RvcmVJZCA9IEVGSV9WQVJPRkZTRVRfSU5WQUxJRA0K PiArDQo+ICsgICAgICAgIHNlbGYuVHlwZSA9IFR5cGVOYW1lDQo+ICsgICAgICAgIHNlbGYuTmFt ZUl0ZW1MaXN0ID0gW10NCj4gKyAgICAgICAgc2VsZi5IYXNWYXJTdG9yZUlkID0gRmFsc2UNCj4g Kw0KPiArICAgIGRlZiBTZXRHdWlkKHNlbGYsIEd1aWQpOg0KPiArICAgICAgICBzZWxmLlZhclN0 b3JlTmFtZVZhbHVlLkd1aWQgPSBHdWlkDQo+ICsNCj4gKyAgICBkZWYgU2V0VmFyU3RvcmVJZChz ZWxmLCBWYXJTdG9yZUlkKToNCj4gKyAgICAgICAgc2VsZi5WYXJTdG9yZU5hbWVWYWx1ZS5WYXJT dG9yZUlkID0gVmFyU3RvcmVJZA0KPiArDQo+ICsgICAgZGVmIFNldE5hbWVJdGVtTGlzdChzZWxm LCBOYW1lSXRlbSk6DQo+ICsgICAgICAgIHNlbGYuTmFtZUl0ZW1MaXN0LmFwcGVuZChOYW1lSXRl bSkNCj4gKw0KPiArICAgIGRlZiBTZXRIYXNWYXJTdG9yZUlkKHNlbGYsIEhhc1ZhclN0b3JlSWQp Og0KPiArICAgICAgICBzZWxmLkhhc1ZhclN0b3JlSWQgPSBIYXNWYXJTdG9yZUlkDQo+ICsNCj4g KyAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuVmFyU3RvcmVO YW1lVmFsdWUNCj4gKw0KPiArDQo+ICtFRklfQklUU19QRVJfVUlOVDMyID0gMSA8PCBFRklfQklU U19TSElGVF9QRVJfVUlOVDMyDQo+ICtFRklfRk9STV9JRF9NQVggPSAweEZGRkYNCj4gKw0KPiAr RUZJX0ZSRUVfRk9STV9JRF9CSVRNQVBfU0laRSA9IGludCgoRUZJX0ZPUk1fSURfTUFYICsgMSkg Lw0KPiBFRklfQklUU19QRVJfVUlOVDMyKQ0KPiArDQo+ICsNCj4gK2NsYXNzIElmckZvcm1JZDoN Cj4gKyAgICBkZWYgX19pbml0X18oc2VsZik6DQo+ICsgICAgICAgIHNlbGYuRm9ybUlkQml0TWFw ID0gW10NCj4gKyAgICAgICAgZm9yIF8gaW4gcmFuZ2UoMCwgRUZJX0ZSRUVfRk9STV9JRF9CSVRN QVBfU0laRSk6DQo+ICsgICAgICAgICAgICBzZWxmLkZvcm1JZEJpdE1hcC5hcHBlbmQoMCkNCj4g Kw0KPiArICAgIGRlZiBDbGVhcihzZWxmKToNCj4gKyAgICAgICAgc2VsZi5Gb3JtSWRCaXRNYXAg PSBbXQ0KPiArICAgICAgICBmb3IgXyBpbiByYW5nZSgwLCBFRklfRlJFRV9GT1JNX0lEX0JJVE1B UF9TSVpFKToNCj4gKyAgICAgICAgICAgIHNlbGYuRm9ybUlkQml0TWFwLmFwcGVuZCgwKQ0KPiAr DQo+ICsgICAgZGVmIENoZWNrRm9ybUlkRnJlZShzZWxmLCBGb3JtSWQpOg0KPiArICAgICAgICBJ bmRleCA9IGludChGb3JtSWQgLyBFRklfQklUU19QRVJfVUlOVDMyKQ0KPiArICAgICAgICBPZmZz ZXQgPSBGb3JtSWQgJSBFRklfQklUU19QRVJfVUlOVDMyDQo+ICsNCj4gKyAgICAgICAgcmV0dXJu IChzZWxmLkZvcm1JZEJpdE1hcFtJbmRleF0gJiAoMHg4MDAwMDAwMCA+PiBPZmZzZXQpKSA9PSAw DQo+ICsNCj4gKyAgICBkZWYgTWFya0Zvcm1JZFVzZWQoc2VsZiwgRm9ybUlkKToNCj4gKyAgICAg ICAgSW5kZXggPSBpbnQoRm9ybUlkIC8gRUZJX0JJVFNfUEVSX1VJTlQzMikNCj4gKyAgICAgICAg T2Zmc2V0ID0gRm9ybUlkICUgRUZJX0JJVFNfUEVSX1VJTlQzMg0KPiArICAgICAgICBzZWxmLkZv cm1JZEJpdE1hcFtJbmRleF0gfD0gMHg4MDAwMDAwMCA+PiBPZmZzZXQNCj4gKw0KPiArDQo+ICtn SWZyRm9ybUlkID0gSWZyRm9ybUlkKCkNCj4gKw0KPiArDQo+ICtjbGFzcyBJZnJGb3JtKElmckxp bmUsIElmck9wSGVhZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZik6DQo+ICsgICAgICAg IHNlbGYuRm9ybSA9IEVGSV9JRlJfRk9STSgpDQo+ICsgICAgICAgIElmck9wSGVhZGVyLl9faW5p dF9fKHNlbGYsIHNlbGYuRm9ybS5IZWFkZXIsIEVGSV9JRlJfRk9STV9PUCkNCj4gKyAgICAgICAg c2VsZi5Gb3JtLkZvcm1JZCA9IDANCj4gKyAgICAgICAgc2VsZi5Gb3JtLkZvcm1UaXRsZSA9IEVG SV9TVFJJTkdfSURfSU5WQUxJRA0KPiArDQo+ICsgICAgZGVmIFNldEZvcm1JZChzZWxmLCBGb3Jt SWQpOg0KPiArICAgICAgICAjIEZvcm1JZCBjYW4ndCBiZSAwLg0KPiArICAgICAgICBpZiBGb3Jt SWQgPT0gMDoNCj4gKyAgICAgICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5f SU5WQUxJRF9QQVJBTUVURVINCj4gKyAgICAgICAgaWYgZ0lmckZvcm1JZC5DaGVja0Zvcm1JZEZy ZWUoRm9ybUlkKSA9PSBGYWxzZToNCj4gKyAgICAgICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2Rl LlZGUl9SRVRVUk5fRk9STUlEX1JFREVGSU5FRA0KPiArICAgICAgICBzZWxmLkZvcm0uRm9ybUlk ID0gRm9ybUlkDQo+ICsgICAgICAgIGdJZnJGb3JtSWQuTWFya0Zvcm1JZFVzZWQoRm9ybUlkKQ0K PiArICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gKw0K PiArICAgIGRlZiBTZXRGb3JtVGl0bGUoc2VsZiwgRm9ybVRpdGxlKToNCj4gKyAgICAgICAgc2Vs Zi5Gb3JtLkZvcm1UaXRsZSA9IEZvcm1UaXRsZQ0KPiArDQo+ICsgICAgZGVmIEdldEluZm8oc2Vs Zik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLkZvcm0NCj4gKw0KPiArDQo+ICtjbGFzcyBJZnJG b3JtTWFwKElmckxpbmUsIElmck9wSGVhZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZik6 DQo+ICsgICAgICAgIHNlbGYuRm9ybU1hcCA9IEVGSV9JRlJfRk9STV9NQVAoKQ0KPiArICAgICAg ICBzZWxmLk1ldGhvZE1hcExpc3QgPSBbXQ0KPiArICAgICAgICBJZnJPcEhlYWRlci5fX2luaXRf XyhzZWxmLCBzZWxmLkZvcm1NYXAuSGVhZGVyLA0KPiBFRklfSUZSX0ZPUk1fTUFQX09QKQ0KPiAr ICAgICAgICBzZWxmLkZvcm1NYXAuRm9ybUlkID0gMA0KPiArDQo+ICsgICAgZGVmIFNldEZvcm1J ZChzZWxmLCBGb3JtSWQpOg0KPiArICAgICAgICBpZiBGb3JtSWQgPT0gMDoNCj4gKyAgICAgICAg ICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVINCj4g Kw0KPiArICAgICAgICBpZiBnSWZyRm9ybUlkLkNoZWNrRm9ybUlkRnJlZShGb3JtSWQpID09IEZh bHNlOg0KPiArICAgICAgICAgICAgcmV0dXJuIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9GT1JN SURfUkVERUZJTkVEDQo+ICsgICAgICAgIHNlbGYuRm9ybU1hcC5Gb3JtSWQgPSBGb3JtSWQNCj4g KyAgICAgICAgZ0lmckZvcm1JZC5NYXJrRm9ybUlkVXNlZChGb3JtSWQpDQo+ICsgICAgICAgIHJl dHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiArDQo+ICsgICAgZGVmIFNl dEZvcm1NYXBNZXRob2Qoc2VsZiwgTWV0aG9kVGl0bGUsIE1ldGhvZEd1aWQ6IEVGSV9HVUlEKToN Cj4gKyAgICAgICAgTWV0aG9kTWFwID0gRUZJX0lGUl9GT1JNX01BUF9NRVRIT0QoKQ0KPiArICAg ICAgICBNZXRob2RNYXAuTWV0aG9kVGl0bGUgPSBNZXRob2RUaXRsZQ0KPiArICAgICAgICBNZXRo b2RNYXAuTWV0aG9kSWRlbnRpZmllciA9IE1ldGhvZEd1aWQNCj4gKyAgICAgICAgc2VsZi5NZXRo b2RNYXBMaXN0LmFwcGVuZChNZXRob2RNYXApDQo+ICsNCj4gKyAgICBkZWYgR2V0SW5mbyhzZWxm KToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuRm9ybU1hcA0KPiArDQo+ICsgICAgZGVmIEdldE1l dGhvZE1hcExpc3Qoc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLk1ldGhvZE1hcExpc3QN Cj4gKw0KPiArDQo+ICtjbGFzcyBJZnJFbmQoSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0KPiArICAg IGRlZiBfX2luaXRfXyhzZWxmKToNCj4gKyAgICAgICAgc2VsZi5FbmQgPSBFRklfSUZSX0VORCgp DQo+ICsgICAgICAgIElmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuRW5kLkhlYWRlciwg RUZJX0lGUl9FTkRfT1ApDQo+ICsNCj4gKyAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAg ICAgcmV0dXJuIHNlbGYuRW5kDQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyQmFubmVyKElmckxpbmUs IElmck9wSGVhZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oDQo+ICsgICAgICAgIHNlbGYsDQo+ ICsgICAgKToNCj4gKyAgICAgICAgc2VsZi5CYW5uZXIgPSBFRklfSUZSX0dVSURfQkFOTkVSKCkN Cj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5CYW5uZXIuSGVhZGVy LCBFRklfSUZSX0dVSURfT1AsDQo+IHNpemVvZihFRklfSUZSX0dVSURfQkFOTkVSKSkNCj4gKyAg ICAgICAgc2VsZi5CYW5uZXIuRXh0ZW5kT3BDb2RlID0gRUZJX0lGUl9FWFRFTkRfT1BfQkFOTkVS DQo+ICsgICAgICAgIHNlbGYuQmFubmVyLkd1aWQgPSBFRklfSUZSX1RJQU5PX0dVSUQNCj4gKw0K PiArICAgICAgICBzZWxmLkhhc1RpbWVPdXQgPSBGYWxzZQ0KPiArICAgICAgICBzZWxmLlRpbWVP dXQgPSBOb25lDQo+ICsNCj4gKyAgICBkZWYgU2V0VGl0bGUoc2VsZiwgU3RyaW5nSWQpOg0KPiAr ICAgICAgICBzZWxmLkJhbm5lci5UaXRsZSA9IFN0cmluZ0lkDQo+ICsNCj4gKyAgICBkZWYgU2V0 TGluZShzZWxmLCBMaW5lKToNCj4gKyAgICAgICAgc2VsZi5CYW5uZXIuTGluZU51bWJlciA9IExp bmUNCj4gKw0KPiArICAgIGRlZiBTZXRBbGlnbihzZWxmLCBBbGlnbik6DQo+ICsgICAgICAgIHNl bGYuQmFubmVyLkFsaWdubWVudCA9IEFsaWduDQo+ICsNCj4gKyAgICBkZWYgU2V0SGFzVGltZU91 dChzZWxmLCBIYXNUaW1lT3V0KToNCj4gKyAgICAgICAgc2VsZi5IYXNUaW1lT3V0ID0gSGFzVGlt ZU91dA0KPiArDQo+ICsgICAgZGVmIFNldFRpbWVPdXQoc2VsZiwgVGltZU91dCk6DQo+ICsgICAg ICAgIHNlbGYuVGltZU91dCA9IFRpbWVPdXQNCj4gKw0KPiArICAgIGRlZiBHZXRJbmZvKHNlbGYp Og0KPiArICAgICAgICByZXR1cm4gc2VsZi5CYW5uZXINCj4gKw0KPiArDQo+ICtjbGFzcyBJZnJW YXJFcU5hbWUoSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxm LCBRdWVzdGlvbklkLCBOYW1lSWQpOg0KPiArICAgICAgICBzZWxmLlZhckVxTmFtZSA9IEVGSV9J RlJfR1VJRF9WQVJFUU5BTUUoKQ0KPiArICAgICAgICBJZnJPcEhlYWRlci5fX2luaXRfXygNCj4g KyAgICAgICAgICAgIHNlbGYsIHNlbGYuVmFyRXFOYW1lLkhlYWRlciwgRUZJX0lGUl9HVUlEX09Q LA0KPiBzaXplb2YoRUZJX0lGUl9HVUlEX1ZBUkVRTkFNRSkNCj4gKyAgICAgICAgKQ0KPiArICAg ICAgICBzZWxmLlZhckVxTmFtZS5FeHRlbmRPcENvZGUgPSBFRklfSUZSX0VYVEVORF9PUF9WQVJF UU5BTUUNCj4gKyAgICAgICAgc2VsZi5WYXJFcU5hbWUuR3VpZCA9IEVGSV9JRlJfRlJBTUVXT1JL X0dVSUQNCj4gKyAgICAgICAgc2VsZi5WYXJFcU5hbWUuUXVlc3Rpb25JZCA9IFF1ZXN0aW9uSWQN Cj4gKyAgICAgICAgc2VsZi5WYXJFcU5hbWUuTmFtZUlkID0gTmFtZUlkDQo+ICsNCj4gKyAgICBk ZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuVmFyRXFOYW1lDQo+ICsN Cj4gKw0KPiArY2xhc3MgSWZyVGltZW91dChJZnJMaW5lLCBJZnJPcEhlYWRlcik6DQo+ICsgICAg ZGVmIF9faW5pdF9fKHNlbGYsIFRpbWVvdXQ9MCk6DQo+ICsgICAgICAgIHNlbGYuVGltZW91dCA9 IEVGSV9JRlJfR1VJRF9USU1FT1VUKCkNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18o DQo+ICsgICAgICAgICAgICBzZWxmLCBzZWxmLlRpbWVvdXQuSGVhZGVyLCBFRklfSUZSX0dVSURf T1AsDQo+IHNpemVvZihFRklfSUZSX0dVSURfVElNRU9VVCkNCj4gKyAgICAgICAgKQ0KPiArICAg ICAgICBzZWxmLlRpbWVvdXQuRXh0ZW5kT3BDb2RlID0gRUZJX0lGUl9FWFRFTkRfT1BfVElNRU9V VA0KPiArICAgICAgICBzZWxmLlRpbWVvdXQuR3VpZCA9IEVGSV9JRlJfVElBTk9fR1VJRA0KPiAr ICAgICAgICBzZWxmLlRpbWVvdXQuVGltZU91dCA9IFRpbWVvdXQNCj4gKw0KPiArICAgIGRlZiBT ZXRUaW1lb3V0KHNlbGYsIFRpbWVvdXQpOg0KPiArICAgICAgICBzZWxmLlRpbWVvdXQuVGltZU91 dCA9IFRpbWVvdXQNCj4gKw0KPiArICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiArICAgICAgICBy ZXR1cm4gc2VsZi5UaW1lb3V0DQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyTGFiZWwoSWZyTGluZSwg SWZyT3BIZWFkZXIpOg0KPiArICAgIGRlZiBfX2luaXRfXygNCj4gKyAgICAgICAgc2VsZiwNCj4g KyAgICApOg0KPiArICAgICAgICBzZWxmLkxhYmVsID0gRUZJX0lGUl9HVUlEX0xBQkVMKCkNCj4g KyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5MYWJlbC5IZWFkZXIsIEVG SV9JRlJfR1VJRF9PUCwNCj4gc2l6ZW9mKEVGSV9JRlJfR1VJRF9MQUJFTCkpDQo+ICsgICAgICAg IHNlbGYuTGFiZWwuRXh0ZW5kT3BDb2RlID0gRUZJX0lGUl9FWFRFTkRfT1BfTEFCRUwNCj4gKyAg ICAgICAgc2VsZi5MYWJlbC5HdWlkID0gRUZJX0lGUl9USUFOT19HVUlEDQo+ICsNCj4gKyAgICBk ZWYgU2V0TnVtYmVyKHNlbGYsIE51bWJlcik6DQo+ICsgICAgICAgIHNlbGYuTGFiZWwuTnVtYmVy ID0gTnVtYmVyDQo+ICsNCj4gKyAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0 dXJuIHNlbGYuTGFiZWwNCj4gKw0KPiArDQo+ICtjbGFzcyBJZnJSdWxlKElmckxpbmUsIElmck9w SGVhZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgUnVsZU5hbWU9Tm9uZSk6DQo+ICsg ICAgICAgIHNlbGYuUnVsZSA9IEVGSV9JRlJfUlVMRSgpDQo+ICsgICAgICAgIHNlbGYuUnVsZU5h bWUgPSBSdWxlTmFtZQ0KPiArICAgICAgICBJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxm LlJ1bGUuSGVhZGVyLCBFRklfSUZSX1JVTEVfT1ApDQo+ICsgICAgICAgIHNlbGYuUnVsZS5SdWxl SWQgPSBFRklfUlVMRV9JRF9JTlZBTElEDQo+ICsNCj4gKyAgICBkZWYgU2V0UnVsZUlkKHNlbGYs IFJ1bGVJZCk6DQo+ICsgICAgICAgIHNlbGYuUnVsZS5SdWxlSWQgPSBSdWxlSWQNCj4gKw0KPiAr ICAgIGRlZiBHZXRSdWxlTmFtZShzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuUnVsZU5h bWUNCj4gKw0KPiArICAgIGRlZiBTZXRSdWxlTmFtZShzZWxmLCBSdWxlTmFtZSk6DQo+ICsgICAg ICAgIHNlbGYuUnVsZU5hbWUgPSBSdWxlTmFtZQ0KPiArDQo+ICsgICAgZGVmIEdldEluZm8oc2Vs Zik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLlJ1bGUNCj4gKw0KPiArDQo+ICtkZWYgX0ZMQUdf VEVTVF9BTkRfQ0xFQVIoRmxhZ3MsIE1hc2spOg0KPiArICAgIFJldCA9IEZsYWdzICYgTWFzaw0K PiArICAgIEZsYWdzICY9IH5NYXNrDQo+ICsgICAgcmV0dXJuIEZsYWdzLCBSZXQNCj4gKw0KPiAr DQo+ICtkZWYgX0ZMQUdfQ0xFQVIoRmxhZ3MsIE1hc2spOg0KPiArICAgIEZsYWdzICY9IH5NYXNr DQo+ICsgICAgcmV0dXJuIEZsYWdzDQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyU3VidGl0bGUoSWZy TGluZSwgSWZyT3BIZWFkZXIsIElmclN0YXRlbWVudEhlYWRlcik6DQo+ICsgICAgZGVmIF9faW5p dF9fKA0KPiArICAgICAgICBzZWxmLA0KPiArICAgICk6DQo+ICsgICAgICAgIHNlbGYuU3VidGl0 bGUgPSBFRklfSUZSX1NVQlRJVExFKCkNCj4gKw0KPiArICAgICAgICBJZnJPcEhlYWRlci5fX2lu aXRfXyhzZWxmLCBzZWxmLlN1YnRpdGxlLkhlYWRlciwgRUZJX0lGUl9TVUJUSVRMRV9PUCkNCj4g KyAgICAgICAgSWZyU3RhdGVtZW50SGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuU3VidGl0bGUu U3RhdGVtZW50KQ0KPiArICAgICAgICBzZWxmLlN1YnRpdGxlLkZsYWdzID0gMA0KPiArDQo+ICsg ICAgICAgIHNlbGYuRmxhZ3NTdHJlYW0gPSAiIg0KPiArDQo+ICsgICAgZGVmIFNldEZsYWdzKHNl bGYsIEZsYWdzKToNCj4gKyAgICAgICAgRmxhZ3MsIFJlc3VsdCA9IF9GTEFHX1RFU1RfQU5EX0NM RUFSKEZsYWdzLA0KPiBFRklfSUZSX0ZMQUdTX0hPUklaT05UQUwpDQo+ICsgICAgICAgIGlmIFJl c3VsdDoNCj4gKyAgICAgICAgICAgIHNlbGYuU3VidGl0bGUuRmxhZ3MgfD0gRUZJX0lGUl9GTEFH U19IT1JJWk9OVEFMDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuICgNCj4gKyAgICAgICAgICAgIFZm clJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+ICsgICAgICAgICAgICBpZiBGbGFncyA9 PSAwDQo+ICsgICAgICAgICAgICBlbHNlIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9GTEFHU19V TlNVUFBPUlRFRA0KPiArICAgICAgICApDQo+ICsNCj4gKyAgICBkZWYgU2V0RmxhZ3NTdHJlYW0o c2VsZiwgRmxhZ3NTdHJlYW0pOg0KPiArICAgICAgICBzZWxmLkZsYWdzU3RyZWFtID0gRmxhZ3NT dHJlYW0NCj4gKw0KPiArICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4g c2VsZi5TdWJ0aXRsZQ0KPiArDQo+ICsNCj4gK2NsYXNzIElmckltYWdlKElmckxpbmUsIElmck9w SGVhZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oDQo+ICsgICAgICAgIHNlbGYsDQo+ICsgICAg KToNCj4gKyAgICAgICAgc2VsZi5JbWFnZSA9IEVGSV9JRlJfSU1BR0UoKQ0KPiArICAgICAgICBJ ZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLkltYWdlLkhlYWRlciwgRUZJX0lGUl9JTUFH RV9PUCkNCj4gKyAgICAgICAgc2VsZi5JbWFnZS5JZCA9IEVGSV9JTUFHRV9JRF9JTlZBTElEDQo+ ICsNCj4gKyAgICBkZWYgU2V0SW1hZ2VJZChzZWxmLCBJbWFnZUlkKToNCj4gKyAgICAgICAgc2Vs Zi5JbWFnZS5JZCA9IEltYWdlSWQNCj4gKw0KPiArICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiAr ICAgICAgICByZXR1cm4gc2VsZi5JbWFnZQ0KPiArDQo+ICsNCj4gK2NsYXNzIElmckxvY2tlZChJ ZnJMaW5lLCBJZnJPcEhlYWRlcik6DQo+ICsgICAgZGVmIF9faW5pdF9fKA0KPiArICAgICAgICBz ZWxmLA0KPiArICAgICk6DQo+ICsgICAgICAgIHNlbGYuTG9jayA9IEVGSV9JRlJfTE9DS0VEKCkN Cj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5Mb2NrLkhlYWRlciwg RUZJX0lGUl9MT0NLRURfT1ApDQo+ICsNCj4gKyAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAg ICAgICAgcmV0dXJuIHNlbGYuTG9jaw0KPiArDQo+ICsNCj4gK2NsYXNzIElmck1vZGFsKElmckxp bmUsIElmck9wSGVhZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oDQo+ICsgICAgICAgIHNlbGYs DQo+ICsgICAgKToNCj4gKyAgICAgICAgc2VsZi5Nb2RhbCA9IEVGSV9JRlJfTU9EQUxfVEFHKCkN Cj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5Nb2RhbC5IZWFkZXIs IEVGSV9JRlJfTU9EQUxfVEFHX09QKQ0KPiArDQo+ICsgICAgZGVmIEdldEluZm8oc2VsZik6DQo+ ICsgICAgICAgIHJldHVybiBzZWxmLk1vZGFsDQo+ICsNCj4gKw0KPiArRUZJX0lGUl9RVUVTVElP Tl9GTEFHX0RFRkFVTFQgPSAwDQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyUXVlc3Rpb25IZWFkZXIo SWZyU3RhdGVtZW50SGVhZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgUUhlYWRlciwg RmxhZ3M9RUZJX0lGUl9RVUVTVElPTl9GTEFHX0RFRkFVTFQpOg0KPiArICAgICAgICBzZWxmLlFI ZWFkZXIgPSBRSGVhZGVyDQo+ICsgICAgICAgIElmclN0YXRlbWVudEhlYWRlci5fX2luaXRfXyhz ZWxmLCBzZWxmLlFIZWFkZXIuSGVhZGVyKQ0KPiArICAgICAgICBzZWxmLlFIZWFkZXIuUXVlc3Rp b25JZCA9IEVGSV9RVUVTVElPTl9JRF9JTlZBTElEDQo+ICsgICAgICAgIHNlbGYuUUhlYWRlci5W YXJTdG9yZUlkID0gRUZJX1ZBUlNUT1JFX0lEX0lOVkFMSUQNCj4gKyAgICAgICAgc2VsZi5RSGVh ZGVyLlZhclN0b3JlSW5mby5WYXJOYW1lID0gRUZJX1NUUklOR19JRF9JTlZBTElEDQo+ICsgICAg ICAgIHNlbGYuUUhlYWRlci5WYXJTdG9yZUluZm8uVmFyT2Zmc2V0ID0gRUZJX1ZBUk9GRlNFVF9J TlZBTElEDQo+ICsgICAgICAgIHNlbGYuUUhlYWRlci5GbGFncyA9IEZsYWdzDQo+ICsNCj4gKyAg ICBkZWYgR2V0UXVlc3Rpb25JZChzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuUUhlYWRl ci5RdWVzdGlvbklkDQo+ICsNCj4gKyAgICBkZWYgU2V0UXVlc3Rpb25JZChzZWxmLCBRdWVzdGlv bklkKToNCj4gKyAgICAgICAgc2VsZi5RSGVhZGVyLlF1ZXN0aW9uSWQgPSBRdWVzdGlvbklkDQo+ ICsNCj4gKyAgICBkZWYgR2V0VmFyU3RvcmVJZChzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNl bGYuUUhlYWRlci5WYXJTdG9yZUlkDQo+ICsNCj4gKyAgICBkZWYgU2V0VmFyU3RvcmVJbmZvKHNl bGYsIEJhc2VJbmZvKToNCj4gKyAgICAgICAgc2VsZi5RSGVhZGVyLlZhclN0b3JlSWQgPSBCYXNl SW5mby5WYXJTdG9yZUlkDQo+ICsgICAgICAgIHNlbGYuUUhlYWRlci5WYXJTdG9yZUluZm8uVmFy TmFtZSA9IEJhc2VJbmZvLkluZm8uVmFyTmFtZQ0KPiArICAgICAgICBzZWxmLlFIZWFkZXIuVmFy U3RvcmVJbmZvLlZhck9mZnNldCA9IEJhc2VJbmZvLkluZm8uVmFyT2Zmc2V0DQo+ICsNCj4gKyAg ICBkZWYgR2V0VmFyU3RvcmVJbmZvKHNlbGYsIEluZm8pOg0KPiArICAgICAgICBJbmZvLlZhclN0 b3JlSWQgPSBzZWxmLlFIZWFkZXIuVmFyU3RvcmVJZA0KPiArICAgICAgICBJbmZvLlZhclN0b3Jl SW5mbyA9IHNlbGYuUUhlYWRlci5WYXJTdG9yZUluZm8NCj4gKyAgICAgICAgcmV0dXJuIEluZm8N Cj4gKw0KPiArICAgIGRlZiBHZXRRRmxhZ3Moc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxm LlFIZWFkZXIuRmxhZ3MNCj4gKw0KPiArICAgIGRlZiBTZXRGbGFncyhzZWxmLCBGbGFncyk6DQo+ ICsgICAgICAgIEZsYWdzLCBSZXQgPSBfRkxBR19URVNUX0FORF9DTEVBUihGbGFncywgRUZJX0lG Ul9GTEFHX1JFQURfT05MWSkNCj4gKyAgICAgICAgaWYgUmV0Og0KPiArICAgICAgICAgICAgc2Vs Zi5RSGVhZGVyLkZsYWdzIHw9IEVGSV9JRlJfRkxBR19SRUFEX09OTFkNCj4gKw0KPiArICAgICAg ICBGbGFncyA9IF9GTEFHX0NMRUFSKEZsYWdzLCAweDAyKQ0KPiArDQo+ICsgICAgICAgIEZsYWdz LCBSZXQgPSBfRkxBR19URVNUX0FORF9DTEVBUihGbGFncywgRUZJX0lGUl9GTEFHX0NBTExCQUNL KQ0KPiArICAgICAgICBpZiBSZXQ6DQo+ICsgICAgICAgICAgICBzZWxmLlFIZWFkZXIuRmxhZ3Mg fD0gRUZJX0lGUl9GTEFHX0NBTExCQUNLDQo+ICsNCj4gKyAgICAgICAgIyBpZ25vcmUgTlZBY2Nl c3NGbGFnDQo+ICsgICAgICAgIEZsYWdzID0gX0ZMQUdfQ0xFQVIoRmxhZ3MsIDB4MDgpDQo+ICsN Cj4gKyAgICAgICAgRmxhZ3MsIFJldCA9IF9GTEFHX1RFU1RfQU5EX0NMRUFSKEZsYWdzLA0KPiBF RklfSUZSX0ZMQUdfUkVTRVRfUkVRVUlSRUQpDQo+ICsgICAgICAgIGlmIFJldDoNCj4gKyAgICAg ICAgICAgIHNlbGYuUUhlYWRlci5GbGFncyB8PSBFRklfSUZSX0ZMQUdfUkVTRVRfUkVRVUlSRUQN Cj4gKw0KPiArICAgICAgICBGbGFncywgUmV0ID0gX0ZMQUdfVEVTVF9BTkRfQ0xFQVIoRmxhZ3Ms DQo+IEVGSV9JRlJfRkxBR19SRUNPTk5FQ1RfUkVRVUlSRUQpDQo+ICsgICAgICAgIGlmIFJldDoN Cj4gKyAgICAgICAgICAgIHNlbGYuUUhlYWRlci5GbGFncyB8PSBFRklfSUZSX0ZMQUdfUkVDT05O RUNUX1JFUVVJUkVEDQo+ICsNCj4gKyAgICAgICAgIyBTZXQgTGF0ZUNoZWNrIEZsYWcgdG8gY29t cGF0aWJsZSBmb3IgZnJhbWV3b3JrIGZsYWcNCj4gKyAgICAgICAgIyBidXQgaXQgdXNlcyAweDIw IGFzIGl0cyBmbGFnLCBpZiBpbiB0aGUgZnV0dXJlIFVFRkkgbWF5IHRha2UgdGhpcyBmbGFnDQo+ ICsNCj4gKyAgICAgICAgRmxhZ3MsIFJldCA9IF9GTEFHX1RFU1RfQU5EX0NMRUFSKEZsYWdzLCAw eDIwKQ0KPiArICAgICAgICBpZiBSZXQ6DQo+ICsgICAgICAgICAgICBzZWxmLlFIZWFkZXIuRmxh Z3MgfD0gMHgyMA0KPiArDQo+ICsgICAgICAgIEZsYWdzLCBSZXQgPSBfRkxBR19URVNUX0FORF9D TEVBUihGbGFncywNCj4gRUZJX0lGUl9GTEFHX09QVElPTlNfT05MWSkNCj4gKyAgICAgICAgaWYg UmV0Og0KPiArICAgICAgICAgICAgc2VsZi5RSGVhZGVyLkZsYWdzIHw9IEVGSV9JRlJfRkxBR19P UFRJT05TX09OTFkNCj4gKw0KPiArICAgICAgICByZXR1cm4gKA0KPiArICAgICAgICAgICAgVmZy UmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gKyAgICAgICAgICAgIGlmIEZsYWdzID09 IDANCj4gKyAgICAgICAgICAgIGVsc2UgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0ZMQUdTX1VO U1VQUE9SVEVEDQo+ICsgICAgICAgICkNCj4gKw0KPiArICAgIGRlZiBVcGRhdGVJZnJRdWVzdGlv bkhlYWRlcihzZWxmLCBxSGVhZGVyKToNCj4gKyAgICAgICAgc2VsZi5RSGVhZGVyID0gcUhlYWRl cg0KPiArDQo+ICsNCj4gK2NsYXNzIElmclJlZihJZnJMaW5lLCBJZnJCYXNlSW5mbywgSWZyT3BI ZWFkZXIsIElmclF1ZXN0aW9uSGVhZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgUU5h bWU9Tm9uZSwgVmFySWRTdHI9IiIpOg0KPiArICAgICAgICBzZWxmLlJlZiA9IEVGSV9JRlJfUkVG KCkNCj4gKyAgICAgICAgSWZyQmFzZUluZm8uX19pbml0X18oc2VsZiwgc2VsZi5SZWYsIFFOYW1l LCBWYXJJZFN0cikNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5S ZWYuSGVhZGVyLCBFRklfSUZSX1JFRl9PUCkNCj4gKyAgICAgICAgSWZyUXVlc3Rpb25IZWFkZXIu X19pbml0X18oc2VsZiwgc2VsZi5SZWYuUXVlc3Rpb24pDQo+ICsgICAgICAgIHNlbGYuUmVmLkZv cm1JZCA9IDANCj4gKw0KPiArICAgIGRlZiBTZXRGb3JtSWQoc2VsZiwgRm9ybUlkKToNCj4gKyAg ICAgICAgc2VsZi5SZWYuRm9ybUlkID0gRm9ybUlkDQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyUmVm MihJZnJMaW5lLCBJZnJCYXNlSW5mbywgSWZyT3BIZWFkZXIsIElmclF1ZXN0aW9uSGVhZGVyKToN Cj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgUU5hbWU9Tm9uZSwgVmFySWRTdHI9IiIpOg0KPiAr ICAgICAgICBzZWxmLlJlZjIgPSBFRklfSUZSX1JFRjIoKQ0KPiArICAgICAgICBJZnJCYXNlSW5m by5fX2luaXRfXyhzZWxmLCBzZWxmLlJlZjIsIFFOYW1lLCBWYXJJZFN0cikNCj4gKyAgICAgICAg SWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5SZWYyLkhlYWRlciwgRUZJX0lGUl9SRUZf T1AsDQo+IHNpemVvZihFRklfSUZSX1JFRjIpKQ0KPiArICAgICAgICBJZnJRdWVzdGlvbkhlYWRl ci5fX2luaXRfXyhzZWxmLCBzZWxmLlJlZjIuUXVlc3Rpb24pDQo+ICsgICAgICAgIHNlbGYuUmVm Mi5Gb3JtSWQgPSAwDQo+ICsgICAgICAgIHNlbGYuUmVmMi5RdWVzdGlvbklkID0gRUZJX1FVRVNU SU9OX0lEX0lOVkFMSUQNCj4gKw0KPiArICAgIGRlZiBTZXRGb3JtSWQoc2VsZiwgRm9ybUlkKToN Cj4gKyAgICAgICAgc2VsZi5SZWYyLkZvcm1JZCA9IEZvcm1JZA0KPiArDQo+ICsgICAgZGVmIFNl dFFJZChzZWxmLCBRdWVzdGlvbklkKToNCj4gKyAgICAgICAgc2VsZi5SZWYyLlF1ZXN0aW9uSWQg PSBRdWVzdGlvbklkDQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyUmVmMyhJZnJMaW5lLCBJZnJCYXNl SW5mbywgSWZyT3BIZWFkZXIsIElmclF1ZXN0aW9uSGVhZGVyKToNCj4gKyAgICBkZWYgX19pbml0 X18oc2VsZiwgUU5hbWU9Tm9uZSwgVmFySWRTdHI9IiIpOg0KPiArICAgICAgICBzZWxmLlJlZjMg PSBFRklfSUZSX1JFRjMoKQ0KPiArICAgICAgICBJZnJCYXNlSW5mby5fX2luaXRfXyhzZWxmLCBz ZWxmLlJlZjMsIFFOYW1lLCBWYXJJZFN0cikNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0 X18oc2VsZiwgc2VsZi5SZWYzLkhlYWRlciwgRUZJX0lGUl9SRUZfT1AsDQo+IHNpemVvZihFRklf SUZSX1JFRjMpKQ0KPiArICAgICAgICBJZnJRdWVzdGlvbkhlYWRlci5fX2luaXRfXyhzZWxmLCBz ZWxmLlJlZjMuUXVlc3Rpb24pDQo+ICsgICAgICAgIHNlbGYuUmVmMy5Gb3JtSWQgPSAwDQo+ICsg ICAgICAgIHNlbGYuUmVmMy5RdWVzdGlvbklkID0gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQNCj4g KyAgICAgICAgRUZJX0lGUl9ERUZBVUxUX0dVSUQgPSBFRklfR1VJRCgwLCAwLCAwLCBHdWlkQXJy YXkoMCwgMCwgMCwgMCwgMCwgMCwgMCwNCj4gMCkpDQo+ICsgICAgICAgIHNlbGYuUmVmMy5Gb3Jt U2V0SWQgPSBFRklfSUZSX0RFRkFVTFRfR1VJRA0KPiArDQo+ICsgICAgZGVmIFNldEZvcm1JZChz ZWxmLCBGb3JtSWQpOg0KPiArICAgICAgICBzZWxmLlJlZjMuRm9ybUlkID0gRm9ybUlkDQo+ICsN Cj4gKyAgICBkZWYgU2V0UUlkKHNlbGYsIFF1ZXN0aW9uSWQpOg0KPiArICAgICAgICBzZWxmLlJl ZjMuUXVlc3Rpb25JZCA9IFF1ZXN0aW9uSWQNCj4gKw0KPiArICAgIGRlZiBTZXRGb3JtU2V0SWQo c2VsZiwgRm9ybVNldElkKToNCj4gKyAgICAgICAgc2VsZi5SZWYzLkZvcm1TZXRJZCA9IEZvcm1T ZXRJZA0KPiArDQo+ICsNCj4gK2NsYXNzIElmclJlZjQoSWZyTGluZSwgSWZyQmFzZUluZm8sIElm ck9wSGVhZGVyLCBJZnJRdWVzdGlvbkhlYWRlcik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYs IFFOYW1lPU5vbmUsIFZhcklkU3RyPSIiKToNCj4gKyAgICAgICAgc2VsZi5SZWY0ID0gRUZJX0lG Ul9SRUY0KCkNCj4gKyAgICAgICAgSWZyQmFzZUluZm8uX19pbml0X18oc2VsZiwgc2VsZi5SZWY0 LCBRTmFtZSwgVmFySWRTdHIpDQo+ICsgICAgICAgIElmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYs IHNlbGYuUmVmNC5IZWFkZXIsIEVGSV9JRlJfUkVGX09QLA0KPiBzaXplb2YoRUZJX0lGUl9SRUY0 KSkNCj4gKyAgICAgICAgSWZyUXVlc3Rpb25IZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5SZWY0 LlF1ZXN0aW9uKQ0KPiArICAgICAgICBzZWxmLlJlZjQuRm9ybUlkID0gMA0KPiArICAgICAgICBz ZWxmLlJlZjQuUXVlc3Rpb25JZCA9IEVGSV9RVUVTVElPTl9JRF9JTlZBTElEDQo+ICsgICAgICAg IEVGSV9JRlJfREVGQVVMVF9HVUlEID0gRUZJX0dVSUQoMCwgMCwgMCwgR3VpZEFycmF5KDAsIDAs IDAsIDAsIDAsIDAsIDAsDQo+IDApKQ0KPiArICAgICAgICBzZWxmLlJlZjQuRm9ybVNldElkID0g RUZJX0lGUl9ERUZBVUxUX0dVSUQNCj4gKyAgICAgICAgc2VsZi5SZWY0LkRldmljZVBhdGggPSBF RklfU1RSSU5HX0lEX0lOVkFMSUQNCj4gKw0KPiArICAgIGRlZiBTZXRGb3JtSWQoc2VsZiwgRm9y bUlkKToNCj4gKyAgICAgICAgc2VsZi5SZWY0LkZvcm1JZCA9IEZvcm1JZA0KPiArDQo+ICsgICAg ZGVmIFNldFFJZChzZWxmLCBRdWVzdGlvbklkKToNCj4gKyAgICAgICAgc2VsZi5SZWY0LlF1ZXN0 aW9uSWQgPSBRdWVzdGlvbklkDQo+ICsNCj4gKyAgICBkZWYgU2V0Rm9ybVNldElkKHNlbGYsIEZv cm1TZXRJZCk6DQo+ICsgICAgICAgIHNlbGYuUmVmNC5Gb3JtU2V0SWQgPSBGb3JtU2V0SWQNCj4g Kw0KPiArICAgIGRlZiBTZXREZXZpY2VQYXRoKHNlbGYsIERldmljZVBhdGgpOg0KPiArICAgICAg ICBzZWxmLlJlZjQuRGV2aWNlUGF0aCA9IERldmljZVBhdGgNCj4gKw0KPiArDQo+ICtjbGFzcyBJ ZnJSZWY1KElmckxpbmUsIElmckJhc2VJbmZvLCBJZnJPcEhlYWRlciwgSWZyUXVlc3Rpb25IZWFk ZXIpOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBRTmFtZT1Ob25lLCBWYXJJZFN0cj0iIik6 DQo+ICsgICAgICAgIHNlbGYuUmVmNSA9IEVGSV9JRlJfUkVGNSgpDQo+ICsgICAgICAgIElmckJh c2VJbmZvLl9faW5pdF9fKHNlbGYsIHNlbGYuUmVmNSwgUU5hbWUsIFZhcklkU3RyKQ0KPiArICAg ICAgICBJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLlJlZjUuSGVhZGVyLCBFRklfSUZS X1JFRl9PUCwNCj4gc2l6ZW9mKEVGSV9JRlJfUkVGNSkpDQo+ICsgICAgICAgIElmclF1ZXN0aW9u SGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuUmVmNS5RdWVzdGlvbikNCj4gKw0KPiArDQo+ICtj bGFzcyBJZnJBY3Rpb24oSWZyTGluZSwgSWZyQmFzZUluZm8sIElmck9wSGVhZGVyLCBJZnJRdWVz dGlvbkhlYWRlcik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIFFOYW1lPU5vbmUsIFZhcklk U3RyPSIiKToNCj4gKyAgICAgICAgc2VsZi5BY3Rpb24gPSBFRklfSUZSX0FDVElPTigpDQo+ICsg ICAgICAgIElmckJhc2VJbmZvLl9faW5pdF9fKHNlbGYsIHNlbGYuQWN0aW9uLCBRTmFtZSwgVmFy SWRTdHIpDQo+ICsgICAgICAgIElmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuQWN0aW9u LkhlYWRlciwgRUZJX0lGUl9BQ1RJT05fT1ApDQo+ICsgICAgICAgIElmclF1ZXN0aW9uSGVhZGVy Ll9faW5pdF9fKHNlbGYsIHNlbGYuQWN0aW9uLlF1ZXN0aW9uKQ0KPiArICAgICAgICBzZWxmLkFj dGlvbi5RdWVzdGlvbkNvbmZpZyA9IEVGSV9TVFJJTkdfSURfSU5WQUxJRA0KPiArDQo+ICsgICAg ZGVmIFNldFF1ZXN0aW9uQ29uZmlnKHNlbGYsIFF1ZXN0aW9uQ29uZmlnKToNCj4gKyAgICAgICAg c2VsZi5BY3Rpb24uUXVlc3Rpb25Db25maWcgPSBRdWVzdGlvbkNvbmZpZw0KPiArDQo+ICsNCj4g K2NsYXNzIElmclRleHQoSWZyTGluZSwgSWZyT3BIZWFkZXIsIElmclN0YXRlbWVudEhlYWRlcik6 DQo+ICsgICAgZGVmIF9faW5pdF9fKA0KPiArICAgICAgICBzZWxmLA0KPiArICAgICk6DQo+ICsg ICAgICAgIHNlbGYuVGV4dCA9IEVGSV9JRlJfVEVYVCgpDQo+ICsgICAgICAgIElmck9wSGVhZGVy Ll9faW5pdF9fKHNlbGYsIHNlbGYuVGV4dC5IZWFkZXIsIEVGSV9JRlJfVEVYVF9PUCkNCj4gKyAg ICAgICAgSWZyU3RhdGVtZW50SGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuVGV4dC5TdGF0ZW1l bnQpDQo+ICsgICAgICAgIHNlbGYuVGV4dC5UZXh0VHdvID0gRUZJX1NUUklOR19JRF9JTlZBTElE DQo+ICsgICAgICAgIHNlbGYuSGFzVGV4dFR3byA9IEZhbHNlDQo+ICsNCj4gKyAgICBkZWYgU2V0 VGV4dFR3byhzZWxmLCBTdHJpbmdJZCk6DQo+ICsgICAgICAgIHNlbGYuVGV4dC5UZXh0VHdvID0g U3RyaW5nSWQNCj4gKw0KPiArICAgIGRlZiBTZXRIYXNUZXh0VHdvKHNlbGYsIEZsYWcpOg0KPiAr ICAgICAgICBzZWxmLkhhc1RleHRUd28gPSBGbGFnDQo+ICsNCj4gKyAgICBkZWYgR2V0SW5mbyhz ZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuVGV4dA0KPiArDQo+ICsNCj4gK2NsYXNzIElm ckd1aWQoSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBT aXplLCBEYXRhPU5vbmUpOg0KPiArICAgICAgICBzZWxmLkd1aWQgPSBFRklfSUZSX0dVSUQoKQ0K PiArICAgICAgICBzZWxmLkRhdGEgPSBEYXRhICAjIGRhdGFidWZmZXIgaXMgc2F2ZWQgaGVyZQ0K PiArICAgICAgICBJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLkd1aWQuSGVhZGVyLCBF RklfSUZSX0dVSURfT1AsDQo+IHNpemVvZihFRklfSUZSX0dVSUQpICsgU2l6ZSkNCj4gKyAgICAg ICAgRUZJX0lGUl9ERUZBVUxUX0dVSUQgPSBFRklfR1VJRCgwLCAwLCAwLCBHdWlkQXJyYXkoMCwg MCwgMCwgMCwgMCwgMCwgMCwNCj4gMCkpDQo+ICsgICAgICAgIHNlbGYuR3VpZC5HdWlkID0gRUZJ X0lGUl9ERUZBVUxUX0dVSUQNCj4gKw0KPiArICAgIGRlZiBTZXRHdWlkKHNlbGYsIEd1aWQpOg0K PiArICAgICAgICBzZWxmLkd1aWQuR3VpZCA9IEd1aWQNCj4gKw0KPiArICAgIGRlZiBTZXREYXRh KHNlbGYsIERhdGEpOg0KPiArICAgICAgICBzZWxmLkRhdGEgPSBEYXRhDQo+ICsNCj4gKyAgICBk ZWYgR2V0RGF0YShzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuRGF0YQ0KPiArDQo+ICsg ICAgZGVmIEdldEluZm8oc2VsZik6ICAjDQo+ICsgICAgICAgIHJldHVybiBzZWxmLkd1aWQNCj4g Kw0KPiArDQo+ICtjbGFzcyBJZnJFeHRlbnNpb25HdWlkKElmckxpbmUsIElmck9wSGVhZGVyKToN Cj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgU2l6ZT0wLCBUeXBlTmFtZT0iIiwgQXJyYXlTaXpl PTAsIERhdGE9Tm9uZSk6DQo+ICsgICAgICAgIHNlbGYuR3VpZCA9IEVGSV9JRlJfR1VJRCgpDQo+ ICsgICAgICAgIGlmIEFycmF5U2l6ZSAhPSAwOg0KPiArICAgICAgICAgICAgc2VsZi5EYXRhVHlw ZSA9IFR5cGVOYW1lICsgIlsiICsgc3RyKEFycmF5U2l6ZSkgKyAiXSINCj4gKyAgICAgICAgZWxz ZToNCj4gKyAgICAgICAgICAgIHNlbGYuRGF0YVR5cGUgPSBUeXBlTmFtZQ0KPiArICAgICAgICBz ZWxmLkZpZWxkTGlzdCA9IFtdDQo+ICsgICAgICAgIHNlbGYuRGF0YSA9IERhdGENCj4gKyAgICAg ICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5HdWlkLkhlYWRlciwgRUZJX0lGUl9H VUlEX09QLA0KPiBzaXplb2YoRUZJX0lGUl9HVUlEKSArIFNpemUpDQo+ICsgICAgICAgIEVGSV9J RlJfREVGQVVMVF9HVUlEID0gRUZJX0dVSUQoMCwgMCwgMCwgR3VpZEFycmF5KDAsIDAsIDAsIDAs IDAsIDAsIDAsDQo+IDApKQ0KPiArICAgICAgICBzZWxmLkd1aWQuR3VpZCA9IEVGSV9JRlJfREVG QVVMVF9HVUlEDQo+ICsNCj4gKyAgICBkZWYgU2V0R3VpZChzZWxmLCBHdWlkKToNCj4gKyAgICAg ICAgc2VsZi5HdWlkLkd1aWQgPSBHdWlkDQo+ICsNCj4gKyAgICBkZWYgU2V0RGF0YShzZWxmLCBE YXRhKToNCj4gKyAgICAgICAgc2VsZi5EYXRhID0gRGF0YQ0KPiArDQo+ICsgICAgZGVmIEdldERh dGFUeXBlKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5EYXRhVHlwZQ0KPiArDQo+ICsg ICAgZGVmIEdldEZpZWxkTGlzdChzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuRmllbGRM aXN0DQo+ICsNCj4gKyAgICBkZWYgU2V0RmllbGRMaXN0KHNlbGYsIFRGTmFtZSwgVEZWYWx1ZSk6 DQo+ICsgICAgICAgIHNlbGYuRmllbGRMaXN0LmFwcGVuZChbVEZOYW1lLCBURlZhbHVlXSkNCj4g Kw0KPiArICAgIGRlZiBHZXREYXRhKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5EYXRh DQo+ICsNCj4gKyAgICBkZWYgR2V0SW5mbyhzZWxmKTogICMNCj4gKyAgICAgICAgcmV0dXJuIHNl bGYuR3VpZA0KPiArDQo+ICsNCj4gK2NsYXNzIElmck9yZGVyZWRMaXN0KElmckxpbmUsIElmckJh c2VJbmZvLCBJZnJPcEhlYWRlciwgSWZyUXVlc3Rpb25IZWFkZXIpOg0KPiArICAgIGRlZiBfX2lu aXRfXyhzZWxmLCBRTmFtZT1Ob25lLCBWYXJJZFN0cj0iIik6DQo+ICsgICAgICAgIHNlbGYuT3Jk ZXJlZExpc3QgPSBFRklfSUZSX09SREVSRURfTElTVCgpDQo+ICsgICAgICAgIElmckJhc2VJbmZv Ll9faW5pdF9fKHNlbGYsIHNlbGYuT3JkZXJlZExpc3QsIFFOYW1lLCBWYXJJZFN0cikNCj4gKyAg ICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5PcmRlcmVkTGlzdC5IZWFkZXIs DQo+IEVGSV9JRlJfT1JERVJFRF9MSVNUX09QKQ0KPiArICAgICAgICBJZnJRdWVzdGlvbkhlYWRl ci5fX2luaXRfXyhzZWxmLCBzZWxmLk9yZGVyZWRMaXN0LlF1ZXN0aW9uKQ0KPiArICAgICAgICBz ZWxmLk9yZGVyZWRMaXN0Lk1heENvbnRhaW5lcnMgPSAwDQo+ICsgICAgICAgIHNlbGYuT3JkZXJl ZExpc3QuRmxhZ3MgPSAwDQo+ICsNCj4gKyAgICAgICAgc2VsZi5IYXNNYXhDb250YWluZXJzID0g RmFsc2UNCj4gKw0KPiArICAgIGRlZiBHZXRRdWVzdGlvbihzZWxmKToNCj4gKyAgICAgICAgcmV0 dXJuIHNlbGYNCj4gKw0KPiArICAgIGRlZiBTZXRRSGVhZGVyRmxhZ3Moc2VsZiwgRmxhZ3MpOg0K PiArICAgICAgICBJZnJRdWVzdGlvbkhlYWRlci5TZXRGbGFncyhzZWxmLCBGbGFncykNCj4gKw0K PiArICAgIGRlZiBTZXRNYXhDb250YWluZXJzKHNlbGYsIE1heENvbnRhaW5lcnMpOg0KPiArICAg ICAgICBzZWxmLk9yZGVyZWRMaXN0Lk1heENvbnRhaW5lcnMgPSBNYXhDb250YWluZXJzDQo+ICsN Cj4gKyAgICBkZWYgU2V0SGFzTWF4Q29udGFpbmVycyhzZWxmLCBIYXNNYXhDb250YWluZXJzKToN Cj4gKyAgICAgICAgc2VsZi5IYXNNYXhDb250YWluZXJzID0gSGFzTWF4Q29udGFpbmVycw0KPiAr DQo+ICsgICAgZGVmIFNldEZsYWdzKHNlbGYsIEhGbGFncywgTEZsYWdzKToNCj4gKyAgICAgICAg UmV0dXJuQ29kZSA9IElmclF1ZXN0aW9uSGVhZGVyLlNldEZsYWdzKHNlbGYsIEhGbGFncykNCj4g KyAgICAgICAgaWYgUmV0dXJuQ29kZSAhPSBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VT UzoNCj4gKyAgICAgICAgICAgIHJldHVybiBSZXR1cm5Db2RlDQo+ICsgICAgICAgIExGbGFncywg UmV0ID0gX0ZMQUdfVEVTVF9BTkRfQ0xFQVIoTEZsYWdzLCBFRklfSUZSX1VOSVFVRV9TRVQpDQo+ ICsgICAgICAgIGlmIFJldDoNCj4gKyAgICAgICAgICAgIHNlbGYuT3JkZXJlZExpc3QuRmxhZ3Mg fD0gRUZJX0lGUl9VTklRVUVfU0VUDQo+ICsNCj4gKyAgICAgICAgTEZsYWdzLCBSZXQgPSBfRkxB R19URVNUX0FORF9DTEVBUihMRmxhZ3MsIEVGSV9JRlJfTk9fRU1QVFlfU0VUKQ0KPiArICAgICAg ICBpZiBSZXQ6DQo+ICsgICAgICAgICAgICBzZWxmLk9yZGVyZWRMaXN0LkZsYWdzIHw9IEVGSV9J RlJfTk9fRU1QVFlfU0VUDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuICgNCj4gKyAgICAgICAgICAg IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+ICsgICAgICAgICAgICBpZiBMRmxh Z3MgPT0gMA0KPiArICAgICAgICAgICAgZWxzZSBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fRkxB R1NfVU5TVVBQT1JURUQNCj4gKyAgICAgICAgKQ0KPiArDQo+ICsNCj4gK2NsYXNzIElmclN0cmlu ZyhJZnJMaW5lLCBJZnJCYXNlSW5mbywgSWZyT3BIZWFkZXIsIElmclF1ZXN0aW9uSGVhZGVyKToN Cj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgUU5hbWU9Tm9uZSwgVmFySWRTdHI9IiIpOg0KPiAr ICAgICAgICBzZWxmLlN0ciA9IEVGSV9JRlJfU1RSSU5HKCkNCj4gKyAgICAgICAgSWZyQmFzZUlu Zm8uX19pbml0X18oc2VsZiwgc2VsZi5TdHIsIFFOYW1lLCBWYXJJZFN0cikNCj4gKyAgICAgICAg SWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5TdHIuSGVhZGVyLCBFRklfSUZSX1NUUklO R19PUCkNCj4gKyAgICAgICAgSWZyUXVlc3Rpb25IZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5T dHIuUXVlc3Rpb24pDQo+ICsgICAgICAgIHNlbGYuU3RyLkZsYWdzID0gMA0KPiArICAgICAgICBz ZWxmLlN0ci5NaW5TaXplID0gMA0KPiArICAgICAgICBzZWxmLlN0ci5NYXhTaXplID0gMA0KPiAr DQo+ICsgICAgZGVmIEdldFF1ZXN0aW9uKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZg0K PiArDQo+ICsgICAgZGVmIFNldFFIZWFkZXJGbGFncyhzZWxmLCBGbGFncyk6DQo+ICsgICAgICAg IElmclF1ZXN0aW9uSGVhZGVyLlNldEZsYWdzKHNlbGYsIEZsYWdzKQ0KPiArDQo+ICsgICAgZGVm IFNldEZsYWdzKHNlbGYsIEhGbGFncywgTEZsYWdzKToNCj4gKyAgICAgICAgUmV0dXJuQ29kZSA9 IElmclF1ZXN0aW9uSGVhZGVyLlNldEZsYWdzKHNlbGYsIEhGbGFncykNCj4gKyAgICAgICAgaWYg UmV0dXJuQ29kZSAhPSBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUzoNCj4gKyAgICAg ICAgICAgIHJldHVybiBSZXR1cm5Db2RlDQo+ICsNCj4gKyAgICAgICAgTEZsYWdzLCBSZXQgPSBf RkxBR19URVNUX0FORF9DTEVBUihMRmxhZ3MsDQo+IEVGSV9JRlJfU1RSSU5HX01VTFRJX0xJTkUp DQo+ICsgICAgICAgIGlmIFJldDoNCj4gKyAgICAgICAgICAgIHNlbGYuU3RyLkZsYWdzIHw9IEVG SV9JRlJfU1RSSU5HX01VTFRJX0xJTkUNCj4gKw0KPiArICAgICAgICByZXR1cm4gKA0KPiArICAg ICAgICAgICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gKyAgICAgICAgICAg IGlmIExGbGFncyA9PSAwDQo+ICsgICAgICAgICAgICBlbHNlIFZmclJldHVybkNvZGUuVkZSX1JF VFVSTl9GTEFHU19VTlNVUFBPUlRFRA0KPiArICAgICAgICApDQo+ICsNCj4gKyAgICBkZWYgU2V0 TWluU2l6ZShzZWxmLCBNaW5TaXplKToNCj4gKyAgICAgICAgc2VsZi5TdHIuTWluU2l6ZSA9IE1p blNpemUNCj4gKw0KPiArICAgIGRlZiBTZXRNYXhTaXplKHNlbGYsIE1heFNpemUpOg0KPiArICAg ICAgICBzZWxmLlN0ci5NYXhTaXplID0gTWF4U2l6ZQ0KPiArDQo+ICsNCj4gK2NsYXNzIElmclBh c3N3b3JkKElmckxpbmUsIElmckJhc2VJbmZvLCBJZnJPcEhlYWRlciwgSWZyUXVlc3Rpb25IZWFk ZXIpOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBRTmFtZT1Ob25lLCBWYXJJZFN0cj0iIik6 DQo+ICsgICAgICAgIHNlbGYuUGFzc3dvcmQgPSBFRklfSUZSX1BBU1NXT1JEKCkNCj4gKyAgICAg ICAgSWZyQmFzZUluZm8uX19pbml0X18oc2VsZiwgc2VsZi5QYXNzd29yZCwgUU5hbWUsIFZhcklk U3RyKQ0KPiArICAgICAgICBJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLlBhc3N3b3Jk LkhlYWRlciwNCj4gRUZJX0lGUl9QQVNTV09SRF9PUCkNCj4gKyAgICAgICAgSWZyUXVlc3Rpb25I ZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5QYXNzd29yZC5RdWVzdGlvbikNCj4gKyAgICAgICAg c2VsZi5QYXNzd29yZC5NaW5TaXplID0gMA0KPiArICAgICAgICBzZWxmLlBhc3N3b3JkLk1heFNp emUgPSAwDQo+ICsNCj4gKyAgICBkZWYgR2V0UXVlc3Rpb24oc2VsZik6DQo+ICsgICAgICAgIHJl dHVybiBzZWxmDQo+ICsNCj4gKyAgICBkZWYgU2V0UUhlYWRlckZsYWdzKHNlbGYsIEZsYWdzKToN Cj4gKyAgICAgICAgSWZyUXVlc3Rpb25IZWFkZXIuU2V0RmxhZ3Moc2VsZiwgRmxhZ3MpDQo+ICsN Cj4gKyAgICBkZWYgU2V0TWluU2l6ZShzZWxmLCBNaW5TaXplKToNCj4gKyAgICAgICAgc2VsZi5Q YXNzd29yZC5NaW5TaXplID0gTWluU2l6ZQ0KPiArDQo+ICsgICAgZGVmIFNldE1heFNpemUoc2Vs ZiwgTWF4U2l6ZSk6DQo+ICsgICAgICAgIHNlbGYuUGFzc3dvcmQuTWF4U2l6ZSA9IE1heFNpemUN Cj4gKw0KPiArDQo+ICtjbGFzcyBJZnJEZWZhdWx0KElmckxpbmUsIElmck9wSGVhZGVyKToNCj4g KyAgICBkZWYgX19pbml0X18oDQo+ICsgICAgICAgIHNlbGYsDQo+ICsgICAgICAgIFZhbHVlVHlw ZSwNCj4gKyAgICAgICAgVmFsdWVMaXN0LA0KPiArICAgICAgICBEZWZhdWx0SWQ9RUZJX0hJSV9E RUZBVUxUX0NMQVNTX1NUQU5EQVJELA0KPiArICAgICAgICBUeXBlPUVGSV9JRlJfVFlQRV9PVEhF UiwNCj4gKyAgICApOg0KPiArICAgICAgICBOdW1zID0gbGVuKFZhbHVlTGlzdCkNCj4gKyAgICAg ICAgc2VsZi5EZWZhdWx0ID0gUmVmaW5lX0VGSV9JRlJfREVGQVVMVChWYWx1ZVR5cGUsIE51bXMp DQo+ICsgICAgICAgIElmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuRGVmYXVsdC5IZWFk ZXIsIEVGSV9JRlJfREVGQVVMVF9PUCwNCj4gc2l6ZW9mKHNlbGYuRGVmYXVsdCkpDQo+ICsgICAg ICAgIHNlbGYuRGVmYXVsdC5UeXBlID0gVHlwZQ0KPiArICAgICAgICBzZWxmLkRlZmF1bHQuRGVm YXVsdElkID0gRGVmYXVsdElkDQo+ICsNCj4gKyAgICAgICAgc2VsZi5WYWx1ZVR5cGUgPSBWYWx1 ZVR5cGUNCj4gKyAgICAgICAgc2VsZi5EZWZhdWx0U3RvcmUgPSAiIg0KPiArICAgICAgICBzZWxm LlZhbHVlU3RyZWFtID0gIiINCj4gKw0KPiArICAgICAgICBpZiBWYWx1ZUxpc3QgIT0gW106DQo+ ICsgICAgICAgICAgICBBcnJheVR5cGUgPSBUeXBlRGljdFtWYWx1ZVR5cGVdICogTnVtcw0KPiAr ICAgICAgICAgICAgVmFsdWVBcnJheSA9IEFycmF5VHlwZSgpDQo+ICsgICAgICAgICAgICBmb3Ig aSBpbiByYW5nZSgwLCBsZW4oVmFsdWVMaXN0KSk6DQo+ICsgICAgICAgICAgICAgICAgVmFsdWVB cnJheVtpXSA9IFZhbHVlTGlzdFtpXQ0KPiArICAgICAgICAgICAgc2VsZi5EZWZhdWx0LlZhbHVl ID0gVmFsdWVBcnJheQ0KPiArDQo+ICsgICAgZGVmIFNldERlZmF1bHRJZChzZWxmLCBEZWZhdWx0 SWQpOg0KPiArICAgICAgICBzZWxmLkRlZmF1bHQuRGVmYXVsdElkID0gRGVmYXVsdElkDQo+ICsN Cj4gKyAgICBkZWYgR2V0VmFsdWVUeXBlKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5W YWx1ZVR5cGUNCj4gKw0KPiArICAgIGRlZiBTZXRUeXBlKHNlbGYsIFR5cGUpOg0KPiArICAgICAg ICBzZWxmLkRlZmF1bHQuVHlwZSA9IFR5cGUNCj4gKw0KPiArICAgIGRlZiBTZXRWYWx1ZShzZWxm LCBWYWx1ZUxpc3QpOg0KPiArICAgICAgICBBcnJheVR5cGUgPSBUeXBlRGljdFtzZWxmLlZhbHVl VHlwZV0gKiAobGVuKFZhbHVlTGlzdCkpDQo+ICsgICAgICAgIFZhbHVlQXJyYXkgPSBBcnJheVR5 cGUoKQ0KPiArICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCBsZW4oVmFsdWVMaXN0KSk6DQo+ICsg ICAgICAgICAgICBWYWx1ZUFycmF5W2ldID0gVmFsdWVMaXN0W2ldDQo+ICsgICAgICAgIHNlbGYu RGVmYXVsdC5WYWx1ZSA9IFZhbHVlQXJyYXkNCj4gKw0KPiArICAgIGRlZiBTZXREZWZhdWx0U3Rv cmUoc2VsZiwgRGVmYXVsdFN0b3JlKToNCj4gKyAgICAgICAgc2VsZi5EZWZhdWx0U3RvcmUgPSBE ZWZhdWx0U3RvcmUNCj4gKw0KPiArICAgIGRlZiBTZXRWYWx1ZVN0cmVhbShzZWxmLCBWYWx1ZVN0 cmVhbSk6DQo+ICsgICAgICAgIHNlbGYuVmFsdWVTdHJlYW0gPSBWYWx1ZVN0cmVhbQ0KPiArDQo+ ICsgICAgZGVmIEdldEluZm8oc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLkRlZmF1bHQN Cj4gKw0KPiArDQo+ICtjbGFzcyBJZnJEZWZhdWx0MihJZnJMaW5lLCBJZnJPcEhlYWRlcik6DQo+ ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIERlZmF1bHRJZD1FRklfSElJX0RFRkFVTFRfQ0xBU1Nf U1RBTkRBUkQsDQo+IFR5cGU9RUZJX0lGUl9UWVBFX09USEVSKToNCj4gKyAgICAgICAgc2VsZi5E ZWZhdWx0ID0gRUZJX0lGUl9ERUZBVUxUXzIoKQ0KPiArICAgICAgICBJZnJPcEhlYWRlci5fX2lu aXRfXygNCj4gKyAgICAgICAgICAgIHNlbGYsIHNlbGYuRGVmYXVsdC5IZWFkZXIsIEVGSV9JRlJf REVGQVVMVF9PUCwNCj4gc2l6ZW9mKEVGSV9JRlJfREVGQVVMVF8yKQ0KPiArICAgICAgICApDQo+ ICsgICAgICAgIHNlbGYuRGVmYXVsdC5UeXBlID0gVHlwZQ0KPiArICAgICAgICBzZWxmLkRlZmF1 bHQuRGVmYXVsdElkID0gRGVmYXVsdElkDQo+ICsNCj4gKyAgICAgICAgc2VsZi5EZWZhdWx0U3Rv cmUgPSAiIg0KPiArDQo+ICsgICAgZGVmIFNldERlZmF1bHRJZChzZWxmLCBEZWZhdWx0SWQpOg0K PiArICAgICAgICBzZWxmLkRlZmF1bHQuRGVmYXVsdElkID0gRGVmYXVsdElkDQo+ICsNCj4gKyAg ICBkZWYgU2V0VHlwZShzZWxmLCBUeXBlKToNCj4gKyAgICAgICAgc2VsZi5EZWZhdWx0LlR5cGUg PSBUeXBlDQo+ICsNCj4gKyAgICBkZWYgU2V0RGVmYXVsdFN0b3JlKHNlbGYsIERlZmF1bHRTdG9y ZSk6DQo+ICsgICAgICAgIHNlbGYuRGVmYXVsdFN0b3JlID0gRGVmYXVsdFN0b3JlDQo+ICsNCj4g KyAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuRGVmYXVsdA0K PiArDQo+ICsNCj4gK2NsYXNzIElmckluY29uc2lzdGVudElmKElmckxpbmUsIElmck9wSGVhZGVy KToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZik6DQo+ICsgICAgICAgIHNlbGYuSW5jb25zaXN0 ZW50SWYgPSBFRklfSUZSX0lOQ09OU0lTVEVOVF9JRigpDQo+ICsgICAgICAgIElmck9wSGVhZGVy Ll9faW5pdF9fKHNlbGYsIHNlbGYuSW5jb25zaXN0ZW50SWYuSGVhZGVyLA0KPiBFRklfSUZSX0lO Q09OU0lTVEVOVF9JRl9PUCkNCj4gKyAgICAgICAgc2VsZi5JbmNvbnNpc3RlbnRJZi5FcnJvciA9 IEVGSV9TVFJJTkdfSURfSU5WQUxJRA0KPiArICAgICAgICBzZWxmLkZsYWdzU3RyZWFtID0gIiIN Cj4gKw0KPiArICAgIGRlZiBTZXRFcnJvcihzZWxmLCBFcnJvcik6DQo+ICsgICAgICAgIHNlbGYu SW5jb25zaXN0ZW50SWYuRXJyb3IgPSBFcnJvcg0KPiArDQo+ICsgICAgZGVmIFNldEZsYWdzU3Ry ZWFtKHNlbGYsIEZsYWcpOg0KPiArICAgICAgICBzZWxmLkZsYWdzU3RyZWFtID0gRmxhZw0KPiAr DQo+ICsgICAgZGVmIEdldEluZm8oc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLkluY29u c2lzdGVudElmDQo+ICsNCj4gKw0KPiArY2xhc3MgSWZySW5jb25zaXN0ZW50SWYyKElmckxpbmUs IElmck9wSGVhZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZik6DQo+ICsgICAgICAgIHNl bGYuSW5jb25zaXN0ZW50SWYgPSBFRklfSUZSX0lOQ09OU0lTVEVOVF9JRigpDQo+ICsgICAgICAg IElmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuSW5jb25zaXN0ZW50SWYuSGVhZGVyLA0K PiBFRklfSUZSX0lOQ09OU0lTVEVOVF9JRl9PUCkNCj4gKyAgICAgICAgc2VsZi5JbmNvbnNpc3Rl bnRJZi5FcnJvciA9IEVGSV9TVFJJTkdfSURfSU5WQUxJRA0KPiArICAgICAgICBzZWxmLkZsYWdz U3RyZWFtID0gIiINCj4gKw0KPiArICAgIGRlZiBTZXRFcnJvcihzZWxmLCBFcnJvcik6DQo+ICsg ICAgICAgIHNlbGYuSW5jb25zaXN0ZW50SWYuRXJyb3IgPSBFcnJvcg0KPiArDQo+ICsgICAgZGVm IFNldEZsYWdzU3RyZWFtKHNlbGYsIEZsYWcpOg0KPiArICAgICAgICBzZWxmLkZsYWdzU3RyZWFt ID0gRmxhZw0KPiArDQo+ICsgICAgZGVmIEdldEluZm8oc2VsZik6DQo+ICsgICAgICAgIHJldHVy biBzZWxmLkluY29uc2lzdGVudElmDQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyTm9TdWJtaXRJZihJ ZnJMaW5lLCBJZnJPcEhlYWRlcik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYpOg0KPiArICAg ICAgICBzZWxmLk5vU3VibWl0SWYgPSBFRklfSUZSX05PX1NVQk1JVF9JRigpDQo+ICsgICAgICAg IElmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuTm9TdWJtaXRJZi5IZWFkZXIsDQo+IEVG SV9JRlJfTk9fU1VCTUlUX0lGX09QKQ0KPiArICAgICAgICBzZWxmLk5vU3VibWl0SWYuRXJyb3Ig PSBFRklfU1RSSU5HX0lEX0lOVkFMSUQNCj4gKw0KPiArICAgICAgICBzZWxmLkZsYWdzU3RyZWFt ID0gIiINCj4gKw0KPiArICAgIGRlZiBTZXRFcnJvcihzZWxmLCBFcnJvcik6DQo+ICsgICAgICAg IHNlbGYuTm9TdWJtaXRJZi5FcnJvciA9IEVycm9yDQo+ICsNCj4gKyAgICBkZWYgU2V0RmxhZ3NT dHJlYW0oc2VsZiwgRmxhZyk6DQo+ICsgICAgICAgIHNlbGYuRmxhZ3NTdHJlYW0gPSBGbGFnDQo+ ICsNCj4gKyAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuTm9T dWJtaXRJZg0KPiArDQo+ICsNCj4gK2NsYXNzIElmckRpc2FibGVJZihJZnJMaW5lLCBJZnJPcEhl YWRlcik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYpOg0KPiArICAgICAgICBzZWxmLkRpc2Fi bGVJZiA9IEVGSV9JRlJfRElTQUJMRV9JRigpDQo+ICsgICAgICAgIElmck9wSGVhZGVyLl9faW5p dF9fKHNlbGYsIHNlbGYuRGlzYWJsZUlmLkhlYWRlciwNCj4gRUZJX0lGUl9ESVNBQkxFX0lGX09Q KQ0KPiArDQo+ICsgICAgZGVmIEdldEluZm8oc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxm LkRpc2FibGVJZg0KPiArDQo+ICsNCj4gK2NsYXNzIElmclN1cHByZXNzSWYoSWZyTGluZSwgSWZy T3BIZWFkZXIpOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmKToNCj4gKyAgICAgICAgc2VsZi5T dXBwcmVzc0lmID0gRUZJX0lGUl9TVVBQUkVTU19JRigpDQo+ICsgICAgICAgIElmck9wSGVhZGVy Ll9faW5pdF9fKHNlbGYsIHNlbGYuU3VwcHJlc3NJZi5IZWFkZXIsDQo+IEVGSV9JRlJfU1VQUFJF U1NfSUZfT1ApDQo+ICsNCj4gKyAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0 dXJuIHNlbGYuU3VwcHJlc3NJZg0KPiArDQo+ICsNCj4gK2NsYXNzIElmckdyYXlPdXRJZihJZnJM aW5lLCBJZnJPcEhlYWRlcik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYpOg0KPiArICAgICAg ICBzZWxmLkdyYXlPdXRJZiA9IEVGSV9JRlJfR1JBWV9PVVRfSUYoKQ0KPiArICAgICAgICBJZnJP cEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLkdyYXlPdXRJZi5IZWFkZXIsDQo+IEVGSV9JRlJf R1JBWV9PVVRfSUZfT1ApDQo+ICsNCj4gKyAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAg ICAgcmV0dXJuIHNlbGYuR3JheU91dElmDQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyVmFsdWUoSWZy TGluZSwgSWZyT3BIZWFkZXIpOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmKToNCj4gKyAgICAg ICAgc2VsZi5WYWx1ZSA9IEVGSV9JRlJfVkFMVUUoKQ0KPiArICAgICAgICBJZnJPcEhlYWRlci5f X2luaXRfXyhzZWxmLCBzZWxmLlZhbHVlLkhlYWRlciwgRUZJX0lGUl9WQUxVRV9PUCkNCj4gKw0K PiArICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5WYWx1ZQ0K PiArDQo+ICsNCj4gK2NsYXNzIElmclJlYWQoSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0KPiArICAg IGRlZiBfX2luaXRfXyhzZWxmKToNCj4gKyAgICAgICAgc2VsZi5SZWFkID0gRUZJX0lGUl9SRUFE KCkNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5SZWFkLkhlYWRl ciwgRUZJX0lGUl9SRUFEX09QKQ0KPiArDQo+ICsgICAgZGVmIEdldEluZm8oc2VsZik6DQo+ICsg ICAgICAgIHJldHVybiBzZWxmLlJlYWQNCj4gKw0KPiArDQo+ICtjbGFzcyBJZnJXcml0ZShJZnJM aW5lLCBJZnJPcEhlYWRlcik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYpOg0KPiArICAgICAg ICBzZWxmLldyaXRlID0gRUZJX0lGUl9XUklURSgpDQo+ICsgICAgICAgIElmck9wSGVhZGVyLl9f aW5pdF9fKHNlbGYsIHNlbGYuV3JpdGUuSGVhZGVyLCBFRklfSUZSX1dSSVRFX09QKQ0KPiArDQo+ ICsgICAgZGVmIEdldEluZm8oc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLldyaXRlDQo+ ICsNCj4gKw0KPiArY2xhc3MgSWZyV2FybmluZ0lmKElmckxpbmUsIElmck9wSGVhZGVyKToNCj4g KyAgICBkZWYgX19pbml0X18oc2VsZik6DQo+ICsgICAgICAgIHNlbGYuV2FybmluZ0lmID0gRUZJ X0lGUl9XQVJOSU5HX0lGKCkNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwg c2VsZi5XYXJuaW5nSWYuSGVhZGVyLA0KPiBFRklfSUZSX1dBUk5JTkdfSUZfT1ApDQo+ICsgICAg ICAgIHNlbGYuV2FybmluZ0lmLldhcm5pbmcgPSBFRklfU1RSSU5HX0lEX0lOVkFMSUQNCj4gKyAg ICAgICAgc2VsZi5XYXJuaW5nSWYuVGltZU91dCA9IDANCj4gKw0KPiArICAgICAgICBzZWxmLkhh c1RpbWVPdXQgPSBGYWxzZQ0KPiArDQo+ICsgICAgZGVmIFNldFdhcm5pbmcoc2VsZiwgV2Fybk1l c3NhZ2UpOg0KPiArICAgICAgICBzZWxmLldhcm5pbmdJZi5XYXJuaW5nID0gV2Fybk1lc3NhZ2UN Cj4gKw0KPiArICAgIGRlZiBTZXRIYXNIYXNUaW1lT3V0KHNlbGYsIEhhc1RpbWVPdXQpOg0KPiAr ICAgICAgICBzZWxmLkhhc1RpbWVPdXQgPSBIYXNUaW1lT3V0DQo+ICsNCj4gKyAgICBkZWYgU2V0 VGltZU91dChzZWxmLCBUaW1lT3V0KToNCj4gKyAgICAgICAgc2VsZi5XYXJuaW5nSWYuVGltZU91 dCA9IFRpbWVPdXQNCj4gKw0KPiArICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiArICAgICAgICBy ZXR1cm4gc2VsZi5XYXJuaW5nSWYNCj4gKw0KPiArDQo+ICtjbGFzcyBJZnJSZWZyZXNoKElmckxp bmUsIElmck9wSGVhZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZik6DQo+ICsgICAgICAg IHNlbGYuUmVmcmVzaCA9IEVGSV9JRlJfUkVGUkVTSCgpDQo+ICsgICAgICAgIElmck9wSGVhZGVy Ll9faW5pdF9fKHNlbGYsIHNlbGYuUmVmcmVzaC5IZWFkZXIsIEVGSV9JRlJfUkVGUkVTSF9PUCkN Cj4gKyAgICAgICAgc2VsZi5SZWZyZXNoLlJlZnJlc2hJbnRlcnZhbCA9IDANCj4gKw0KPiArICAg IGRlZiBTZXRSZWZyZXNoSW50ZXJ2YWwoc2VsZiwgUmVmcmVzaEludGVydmFsKToNCj4gKyAgICAg ICAgc2VsZi5SZWZyZXNoLlJlZnJlc2hJbnRlcnZhbCA9IFJlZnJlc2hJbnRlcnZhbA0KPiArDQo+ ICsgICAgZGVmIEdldEluZm8oc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLlJlZnJlc2gN Cj4gKw0KPiArDQo+ICtjbGFzcyBJZnJSZWZyZXNoSWQoSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0K PiArICAgIGRlZiBfX2luaXRfXyhzZWxmKToNCj4gKyAgICAgICAgc2VsZi5SZWZyZXNoSWQgPSBF RklfSUZSX1JFRlJFU0hfSUQoKQ0KPiArICAgICAgICBJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxm LCBzZWxmLlJlZnJlc2hJZC5IZWFkZXIsDQo+IEVGSV9JRlJfUkVGUkVTSF9JRF9PUCkNCj4gKyAg ICAgICAgc2VsZi5SZWZyZXNoSWQuUmVmcmVzaEV2ZW50R3JvdXBJZCA9IEVGSV9HVUlEKDAsIDAs IDAsIEd1aWRBcnJheSgwLCAwLA0KPiAwLCAwLCAwLCAwLCAwLCAwKSkNCj4gKw0KPiArICAgIGRl ZiBTZXRSZWZyZXNoRXZlbnRHcm91dElkKHNlbGYsIFJlZnJlc2hFdmVudEdyb3VwSWQpOg0KPiAr ICAgICAgICBzZWxmLlJlZnJlc2hJZC5SZWZyZXNoRXZlbnRHcm91cElkID0gUmVmcmVzaEV2ZW50 R3JvdXBJZA0KPiArDQo+ICsgICAgZGVmIEdldEluZm8oc2VsZik6DQo+ICsgICAgICAgIHJldHVy biBzZWxmLlJlZnJlc2hJZA0KPiArDQo+ICsNCj4gK2NsYXNzIElmclZhclN0b3JlRGV2aWNlKElm ckxpbmUsIElmck9wSGVhZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZik6DQo+ICsgICAg ICAgIHNlbGYuVmFyU3RvcmVEZXZpY2UgPSBFRklfSUZSX1ZBUlNUT1JFX0RFVklDRSgpDQo+ICsg ICAgICAgIElmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuVmFyU3RvcmVEZXZpY2UuSGVh ZGVyLA0KPiBFRklfSUZSX1ZBUlNUT1JFX0RFVklDRV9PUCkNCj4gKyAgICAgICAgc2VsZi5WYXJT dG9yZURldmljZS5EZXZpY2VQYXRoID0gRUZJX1NUUklOR19JRF9JTlZBTElEDQo+ICsNCj4gKyAg ICBkZWYgU2V0RGV2aWNlUGF0aChzZWxmLCBEZXZpY2VQYXRoKToNCj4gKyAgICAgICAgc2VsZi5W YXJTdG9yZURldmljZS5EZXZpY2VQYXRoID0gRGV2aWNlUGF0aA0KPiArDQo+ICsgICAgZGVmIEdl dEluZm8oc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLlZhclN0b3JlRGV2aWNlDQo+ICsN Cj4gKw0KPiArY2xhc3MgSWZyRGF0ZShJZnJMaW5lLCBJZnJCYXNlSW5mbywgSWZyT3BIZWFkZXIs IElmclF1ZXN0aW9uSGVhZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgUU5hbWU9Tm9u ZSwgVmFySWRTdHI9IiIpOg0KPiArICAgICAgICBzZWxmLkRhdGUgPSBFRklfSUZSX0RBVEUoKQ0K PiArICAgICAgICBJZnJCYXNlSW5mby5fX2luaXRfXyhzZWxmLCBzZWxmLkRhdGUsIFFOYW1lLCBW YXJJZFN0cikNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5EYXRl LkhlYWRlciwgRUZJX0lGUl9EQVRFX09QKQ0KPiArICAgICAgICBJZnJRdWVzdGlvbkhlYWRlci5f X2luaXRfXyhzZWxmLCBzZWxmLkRhdGUuUXVlc3Rpb24pDQo+ICsgICAgICAgIHNlbGYuRGF0ZS5G bGFncyA9IDANCj4gKw0KPiArICAgICAgICBzZWxmLlllYXIgPSBOb25lDQo+ICsgICAgICAgIHNl bGYuTW9udGggPSBOb25lDQo+ICsgICAgICAgIHNlbGYuRGF5ID0gTm9uZQ0KPiArDQo+ICsgICAg ICAgIHNlbGYuRF9ZZWFyID0gTm9uZQ0KPiArICAgICAgICBzZWxmLkRfTW9udGggPSBOb25lDQo+ ICsgICAgICAgIHNlbGYuRF9EYXkgPSBOb25lDQo+ICsgICAgICAgIHNlbGYuU3RlcCA9IE5vbmUN Cj4gKyAgICAgICAgc2VsZi5NaW4gPSBOb25lDQo+ICsgICAgICAgIHNlbGYuTWF4ID0gTm9uZQ0K PiArDQo+ICsgICAgZGVmIFNldEZsYWdzKHNlbGYsIEhGbGFncywgTEZsYWdzKToNCj4gKyAgICAg ICAgUmV0dXJuQ29kZSA9IElmclF1ZXN0aW9uSGVhZGVyLlNldEZsYWdzKHNlbGYsIEhGbGFncykN Cj4gKyAgICAgICAgaWYgUmV0dXJuQ29kZSAhPSBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VD Q0VTUzoNCj4gKyAgICAgICAgICAgIHJldHVybiBSZXR1cm5Db2RlDQo+ICsNCj4gKyAgICAgICAg TEZsYWdzLCBSZXQgPSBfRkxBR19URVNUX0FORF9DTEVBUihMRmxhZ3MsDQo+IEVGSV9RRl9EQVRF X1lFQVJfU1VQUFJFU1MpDQo+ICsgICAgICAgIGlmIFJldDoNCj4gKyAgICAgICAgICAgIHNlbGYu RGF0ZS5GbGFncyB8PSBFRklfUUZfREFURV9ZRUFSX1NVUFBSRVNTDQo+ICsNCj4gKyAgICAgICAg TEZsYWdzLCBSZXQgPSBfRkxBR19URVNUX0FORF9DTEVBUihMRmxhZ3MsDQo+IEVGSV9RRl9EQVRF X01PTlRIX1NVUFBSRVNTKQ0KPiArICAgICAgICBpZiBSZXQ6DQo+ICsgICAgICAgICAgICBzZWxm LkRhdGUuRmxhZ3MgfD0gRUZJX1FGX0RBVEVfTU9OVEhfU1VQUFJFU1MNCj4gKw0KPiArICAgICAg ICBMRmxhZ3MsIFJldCA9IF9GTEFHX1RFU1RfQU5EX0NMRUFSKExGbGFncywNCj4gRUZJX1FGX0RB VEVfREFZX1NVUFBSRVNTKQ0KPiArICAgICAgICBpZiBSZXQ6DQo+ICsgICAgICAgICAgICBzZWxm LkRhdGUuRmxhZ3MgfD0gRUZJX1FGX0RBVEVfREFZX1NVUFBSRVNTDQo+ICsNCj4gKyAgICAgICAg TEZsYWdzLCBSZXQgPSBfRkxBR19URVNUX0FORF9DTEVBUihMRmxhZ3MsDQo+IFFGX0RBVEVfU1RP UkFHRV9OT1JNQUwpDQo+ICsgICAgICAgIGlmIFJldDoNCj4gKyAgICAgICAgICAgIHNlbGYuRGF0 ZS5GbGFncyB8PSBRRl9EQVRFX1NUT1JBR0VfTk9STUFMDQo+ICsNCj4gKyAgICAgICAgTEZsYWdz LCBSZXQgPSBfRkxBR19URVNUX0FORF9DTEVBUihMRmxhZ3MsDQo+IFFGX0RBVEVfU1RPUkFHRV9U SU1FKQ0KPiArICAgICAgICBpZiBSZXQ6DQo+ICsgICAgICAgICAgICBzZWxmLkRhdGUuRmxhZ3Mg fD0gUUZfREFURV9TVE9SQUdFX1RJTUUNCj4gKw0KPiArICAgICAgICBMRmxhZ3MsIFJldCA9IF9G TEFHX1RFU1RfQU5EX0NMRUFSKExGbGFncywNCj4gUUZfREFURV9TVE9SQUdFX1dBS0VVUCkNCj4g KyAgICAgICAgaWYgUmV0Og0KPiArICAgICAgICAgICAgc2VsZi5EYXRlLkZsYWdzIHw9IFFGX0RB VEVfU1RPUkFHRV9XQUtFVVANCj4gKw0KPiArICAgICAgICByZXR1cm4gKA0KPiArICAgICAgICAg ICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gKyAgICAgICAgICAgIGlmIExG bGFncyA9PSAwDQo+ICsgICAgICAgICAgICBlbHNlIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9G TEFHU19VTlNVUFBPUlRFRA0KPiArICAgICAgICApDQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyVGlt ZShJZnJMaW5lLCBJZnJCYXNlSW5mbywgSWZyT3BIZWFkZXIsIElmclF1ZXN0aW9uSGVhZGVyKToN Cj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgUU5hbWU9Tm9uZSwgVmFySWRTdHI9IiIpOg0KPiAr ICAgICAgICBzZWxmLlRpbWUgPSBFRklfSUZSX1RJTUUoKQ0KPiArICAgICAgICBJZnJCYXNlSW5m by5fX2luaXRfXyhzZWxmLCBzZWxmLlRpbWUsIFFOYW1lLCBWYXJJZFN0cikNCj4gKyAgICAgICAg SWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5UaW1lLkhlYWRlciwgRUZJX0lGUl9USU1F X09QKQ0KPiArICAgICAgICBJZnJRdWVzdGlvbkhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLlRp bWUuUXVlc3Rpb24pDQo+ICsgICAgICAgIHNlbGYuVGltZS5GbGFncyA9IDANCj4gKw0KPiArICAg ICAgICBzZWxmLkhvdXIgPSBOb25lDQo+ICsgICAgICAgIHNlbGYuTWludXRlID0gTm9uZQ0KPiAr ICAgICAgICBzZWxmLlNlY29uZCA9IE5vbmUNCj4gKw0KPiArICAgICAgICBzZWxmLkRfSG91ciA9 IE5vbmUNCj4gKyAgICAgICAgc2VsZi5EX01pbnV0ZSA9IE5vbmUNCj4gKyAgICAgICAgc2VsZi5E X1NlY29uZCA9IE5vbmUNCj4gKw0KPiArICAgICAgICBzZWxmLlN0ZXAgPSBOb25lDQo+ICsgICAg ICAgIHNlbGYuTWluID0gTm9uZQ0KPiArICAgICAgICBzZWxmLk1heCA9IE5vbmUNCj4gKw0KPiAr ICAgIGRlZiBTZXRIb3VyKHNlbGYsIEhvdXIpOg0KPiArICAgICAgICBzZWxmLkhvdXIgPSBIb3Vy DQo+ICsNCj4gKyAgICBkZWYgU2V0TWludXRlKHNlbGYsIE1pbnV0ZSk6DQo+ICsgICAgICAgIHNl bGYuTWludXRlID0gTWludXRlDQo+ICsNCj4gKyAgICBkZWYgU2V0U2Vjb25kKHNlbGYsIFNlY29u ZCk6DQo+ICsgICAgICAgIHNlbGYuU2Vjb25kID0gU2Vjb25kDQo+ICsNCj4gKyAgICBkZWYgU2V0 RmxhZ3Moc2VsZiwgSEZsYWdzLCBMRmxhZ3MpOg0KPiArICAgICAgICBSZXR1cm5Db2RlID0gSWZy UXVlc3Rpb25IZWFkZXIuU2V0RmxhZ3Moc2VsZiwgSEZsYWdzKQ0KPiArICAgICAgICBpZiBSZXR1 cm5Db2RlICE9IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTOg0KPiArICAgICAgICAg ICAgcmV0dXJuIFJldHVybkNvZGUNCj4gKw0KPiArICAgICAgICBMRmxhZ3MsIFJldCA9IF9GTEFH X1RFU1RfQU5EX0NMRUFSKExGbGFncywNCj4gUUZfVElNRV9IT1VSX1NVUFBSRVNTKQ0KPiArICAg ICAgICBpZiBSZXQ6DQo+ICsgICAgICAgICAgICBzZWxmLlRpbWUuRmxhZ3MgfD0gUUZfVElNRV9I T1VSX1NVUFBSRVNTDQo+ICsNCj4gKyAgICAgICAgTEZsYWdzLCBSZXQgPSBfRkxBR19URVNUX0FO RF9DTEVBUihMRmxhZ3MsDQo+IFFGX1RJTUVfTUlOVVRFX1NVUFBSRVNTKQ0KPiArICAgICAgICBp ZiBSZXQ6DQo+ICsgICAgICAgICAgICBzZWxmLlRpbWUuRmxhZ3MgfD0gUUZfVElNRV9NSU5VVEVf U1VQUFJFU1MNCj4gKw0KPiArICAgICAgICBMRmxhZ3MsIFJldCA9IF9GTEFHX1RFU1RfQU5EX0NM RUFSKExGbGFncywNCj4gUUZfVElNRV9TRUNPTkRfU1VQUFJFU1MpDQo+ICsgICAgICAgIGlmIFJl dDoNCj4gKyAgICAgICAgICAgIHNlbGYuVGltZS5GbGFncyB8PSBRRl9USU1FX1NFQ09ORF9TVVBQ UkVTUw0KPiArDQo+ICsgICAgICAgIExGbGFncywgUmV0ID0gX0ZMQUdfVEVTVF9BTkRfQ0xFQVIo TEZsYWdzLA0KPiBRRl9USU1FX1NUT1JBR0VfTk9STUFMKQ0KPiArICAgICAgICBpZiBSZXQ6DQo+ ICsgICAgICAgICAgICBzZWxmLlRpbWUuRmxhZ3MgfD0gUUZfVElNRV9TVE9SQUdFX05PUk1BTA0K PiArDQo+ICsgICAgICAgIExGbGFncywgUmV0ID0gX0ZMQUdfVEVTVF9BTkRfQ0xFQVIoTEZsYWdz LA0KPiBRRl9USU1FX1NUT1JBR0VfVElNRSkNCj4gKyAgICAgICAgaWYgUmV0Og0KPiArICAgICAg ICAgICAgc2VsZi5UaW1lLkZsYWdzIHw9IFFGX1RJTUVfU1RPUkFHRV9USU1FDQo+ICsNCj4gKyAg ICAgICAgTEZsYWdzLCBSZXQgPSBfRkxBR19URVNUX0FORF9DTEVBUihMRmxhZ3MsDQo+IFFGX1RJ TUVfU1RPUkFHRV9XQUtFVVApDQo+ICsgICAgICAgIGlmIFJldDoNCj4gKyAgICAgICAgICAgIHNl bGYuVGltZS5GbGFncyB8PSBRRl9USU1FX1NUT1JBR0VfV0FLRVVQDQo+ICsNCj4gKyAgICAgICAg cmV0dXJuICgNCj4gKyAgICAgICAgICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNT DQo+ICsgICAgICAgICAgICBpZiBMRmxhZ3MgPT0gMA0KPiArICAgICAgICAgICAgZWxzZSBWZnJS ZXR1cm5Db2RlLlZGUl9SRVRVUk5fRkxBR1NfVU5TVVBQT1JURUQNCj4gKyAgICAgICAgKQ0KPiAr DQo+ICsNCj4gK2NsYXNzIElmck51bWVyaWMoSWZyTGluZSwgSWZyQmFzZUluZm8sIElmck9wSGVh ZGVyLCBJZnJRdWVzdGlvbkhlYWRlciwNCj4gSWZyTWluTWF4U3RlcERhdGEpOg0KPiArICAgIGRl ZiBfX2luaXRfXyhzZWxmLCBUeXBlLCBRTmFtZT1Ob25lLCBWYXJJZFN0cj0iIik6DQo+ICsgICAg ICAgIHNlbGYuTnVtZXJpYyA9IFJlZmluZV9FRklfSUZSX05VTUVSSUMoVHlwZSkNCj4gKyAgICAg ICAgSWZyQmFzZUluZm8uX19pbml0X18oc2VsZiwgc2VsZi5OdW1lcmljLCBRTmFtZSwgVmFySWRT dHIpDQo+ICsgICAgICAgIElmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuTnVtZXJpYy5I ZWFkZXIsIEVGSV9JRlJfTlVNRVJJQ19PUCwNCj4gc2l6ZW9mKHNlbGYuTnVtZXJpYykpDQo+ICsg ICAgICAgIElmclF1ZXN0aW9uSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuTnVtZXJpYy5RdWVz dGlvbikNCj4gKyAgICAgICAgSWZyTWluTWF4U3RlcERhdGEuX19pbml0X18oc2VsZiwgc2VsZi5O dW1lcmljLkRhdGEsIFRydWUpDQo+ICsgICAgICAgIHNlbGYuTnVtZXJpYy5GbGFncyA9IEVGSV9J RlJfTlVNRVJJQ19TSVpFXzEgfA0KPiBFRklfSUZSX0RJU1BMQVlfVUlOVF9ERUMNCj4gKw0KPiAr ICAgICAgICBzZWxmLkhhc1N0ZXAgPSBGYWxzZQ0KPiArDQo+ICsgICAgZGVmIEdldFF1ZXN0aW9u KHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZg0KPiArDQo+ICsgICAgZGVmIEdldE1pbk1h eERhdGEoc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmDQo+ICsNCj4gKyAgICBkZWYgU2V0 UUhlYWRlckZsYWdzKHNlbGYsIEZsYWdzKToNCj4gKyAgICAgICAgSWZyUXVlc3Rpb25IZWFkZXIu U2V0RmxhZ3Moc2VsZiwgRmxhZ3MpDQo+ICsNCj4gKyAgICBkZWYgU2V0RmxhZ3Moc2VsZiwgSEZs YWdzLCBMRmxhZ3MsIERpc3BsYXlTZXR0aW5nc1NwZWNpZmllZD1GYWxzZSk6DQo+ICsgICAgICAg IFJldHVybkNvZGUgPSBJZnJRdWVzdGlvbkhlYWRlci5TZXRGbGFncyhzZWxmLCBIRmxhZ3MpDQo+ ICsgICAgICAgIGlmIFJldHVybkNvZGUgIT0gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NF U1M6DQo+ICsgICAgICAgICAgICByZXR1cm4gUmV0dXJuQ29kZQ0KPiArICAgICAgICBpZiBEaXNw bGF5U2V0dGluZ3NTcGVjaWZpZWQgPT0gRmFsc2U6DQo+ICsgICAgICAgICAgICBzZWxmLk51bWVy aWMuRmxhZ3MgPSBMRmxhZ3MgfCBFRklfSUZSX0RJU1BMQVlfVUlOVF9ERUMNCj4gKyAgICAgICAg ZWxzZToNCj4gKyAgICAgICAgICAgIHNlbGYuTnVtZXJpYy5GbGFncyA9IExGbGFncw0KPiArICAg ICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gKw0KPiArICAg IGRlZiBTZXRGbGFnc0ZvckJpdEZpZWxkKHNlbGYsIEhGbGFncywgTEZsYWdzLCBEaXNwbGF5U2V0 dGluZ3NTcGVjaWZpZWQ9RmFsc2UpOg0KPiArICAgICAgICBSZXR1cm5Db2RlID0gSWZyUXVlc3Rp b25IZWFkZXIuU2V0RmxhZ3Moc2VsZiwgSEZsYWdzKQ0KPiArICAgICAgICBpZiBSZXR1cm5Db2Rl ICE9IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTOg0KPiArICAgICAgICAgICAgcmV0 dXJuIFJldHVybkNvZGUNCj4gKyAgICAgICAgaWYgRGlzcGxheVNldHRpbmdzU3BlY2lmaWVkID09 IEZhbHNlOg0KPiArICAgICAgICAgICAgc2VsZi5OdW1lcmljLkZsYWdzID0gTEZsYWdzIHwgRURL SUlfSUZSX0RJU1BMQVlfVUlOVF9ERUNfQklUDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAg ICAgICBzZWxmLk51bWVyaWMuRmxhZ3MgPSBMRmxhZ3MNCj4gKyAgICAgICAgcmV0dXJuIFZmclJl dHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+ICsNCj4gKyAgICBkZWYgR2V0TnVtZXJpY0Zs YWdzKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5OdW1lcmljLkZsYWdzDQo+ICsNCj4g KyAgICBkZWYgU2V0SGFzU3RlcChzZWxmLCBIYXNTdGVwKToNCj4gKyAgICAgICAgc2VsZi5IYXNT dGVwID0gSGFzU3RlcA0KPiArDQo+ICsNCj4gK2NsYXNzIElmck9uZU9mKElmclF1ZXN0aW9uSGVh ZGVyLCBJZnJMaW5lLCBJZnJCYXNlSW5mbywgSWZyT3BIZWFkZXIsDQo+IElmck1pbk1heFN0ZXBE YXRhKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgVHlwZSwgUU5hbWU9Tm9uZSwgVmFySWRT dHI9IiIpOg0KPiArICAgICAgICBzZWxmLk9uZU9mID0gUmVmaW5lX0VGSV9JRlJfT05FX09GKFR5 cGUpDQo+ICsgICAgICAgIElmckJhc2VJbmZvLl9faW5pdF9fKHNlbGYsIHNlbGYuT25lT2YsIFFO YW1lLCBWYXJJZFN0cikNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2Vs Zi5PbmVPZi5IZWFkZXIsIEVGSV9JRlJfT05FX09GX09QLA0KPiBzaXplb2Yoc2VsZi5PbmVPZikp DQo+ICsgICAgICAgIElmclF1ZXN0aW9uSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuT25lT2Yu UXVlc3Rpb24pDQo+ICsgICAgICAgIElmck1pbk1heFN0ZXBEYXRhLl9faW5pdF9fKHNlbGYsIHNl bGYuT25lT2YuRGF0YSkNCj4gKyAgICAgICAgc2VsZi5PbmVPZi5GbGFncyA9IDANCj4gKw0KPiAr ICAgICAgICBzZWxmLkhhc01pbk1heCA9IEZhbHNlDQo+ICsNCj4gKyAgICAgICAgc2VsZi5IYXNT dGVwID0gRmFsc2UNCj4gKw0KPiArICAgIGRlZiBHZXRRdWVzdGlvbihzZWxmKToNCj4gKyAgICAg ICAgcmV0dXJuIHNlbGYNCj4gKw0KPiArICAgIGRlZiBHZXRNaW5NYXhEYXRhKHNlbGYpOg0KPiAr ICAgICAgICByZXR1cm4gc2VsZg0KPiArDQo+ICsgICAgZGVmIFNldFFIZWFkZXJGbGFncyhzZWxm LCBGbGFncyk6DQo+ICsgICAgICAgIElmclF1ZXN0aW9uSGVhZGVyLlNldEZsYWdzKHNlbGYsIEZs YWdzKQ0KPiArDQo+ICsgICAgZGVmIFNldEZsYWdzKHNlbGYsIEhGbGFncywgTEZsYWdzKToNCj4g KyAgICAgICAgUmV0dXJuQ29kZSA9IElmclF1ZXN0aW9uSGVhZGVyLlNldEZsYWdzKHNlbGYsIEhG bGFncykNCj4gKyAgICAgICAgaWYgUmV0dXJuQ29kZSAhPSBWZnJSZXR1cm5Db2RlLlZGUl9SRVRV Uk5fU1VDQ0VTUzoNCj4gKyAgICAgICAgICAgIHJldHVybiBSZXR1cm5Db2RlDQo+ICsgICAgICAg IGlmIExGbGFncyAmIEVGSV9JRlJfRElTUExBWToNCj4gKyAgICAgICAgICAgIHNlbGYuT25lT2Yu RmxhZ3MgPSBMRmxhZ3MNCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIHNlbGYuT25l T2YuRmxhZ3MgPSBMRmxhZ3MgfCBFRklfSUZSX0RJU1BMQVlfVUlOVF9ERUMNCj4gKyAgICAgICAg cmV0dXJuIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+ICsNCj4gKyAgICBkZWYg U2V0RmxhZ3NGb3JCaXRGaWVsZChzZWxmLCBIRmxhZ3MsIExGbGFncyk6DQo+ICsgICAgICAgIFJl dHVybkNvZGUgPSBJZnJRdWVzdGlvbkhlYWRlci5TZXRGbGFncyhzZWxmLCBIRmxhZ3MpDQo+ICsg ICAgICAgIGlmIFJldHVybkNvZGUgIT0gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1M6 DQo+ICsgICAgICAgICAgICByZXR1cm4gUmV0dXJuQ29kZQ0KPiArICAgICAgICBpZiBMRmxhZ3Mg JiBFREtJSV9JRlJfRElTUExBWV9CSVQ6DQo+ICsgICAgICAgICAgICBzZWxmLk9uZU9mLkZsYWdz ID0gTEZsYWdzDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICBzZWxmLk9uZU9mLkZs YWdzID0gTEZsYWdzIHwgRURLSUlfSUZSX0RJU1BMQVlfVUlOVF9ERUNfQklUDQo+ICsgICAgICAg IHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiArDQo+ICsgICAgZGVm IFNldEhhc01pbk1heChzZWxmLCBIYXNNaW5NYXgpOg0KPiArICAgICAgICBzZWxmLkhhc01pbk1h eCA9IEhhc01pbk1heA0KPiArDQo+ICsgICAgZGVmIFNldEhhc1N0ZXAoc2VsZiwgSGFzU3RlcCk6 DQo+ICsgICAgICAgIHNlbGYuSGFzU3RlcCA9IEhhc1N0ZXANCj4gKw0KPiArDQo+ICtjbGFzcyBJ ZnJDaGVja0JveChJZnJMaW5lLCBJZnJCYXNlSW5mbywgSWZyT3BIZWFkZXIsIElmclF1ZXN0aW9u SGVhZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgUU5hbWU9Tm9uZSwgVmFySWRTdHI9 IiIpOg0KPiArICAgICAgICBzZWxmLkNoZWNrQm94ID0gRUZJX0lGUl9DSEVDS0JPWCgpDQo+ICsg ICAgICAgIElmckJhc2VJbmZvLl9faW5pdF9fKHNlbGYsIHNlbGYuQ2hlY2tCb3gsIFFOYW1lLCBW YXJJZFN0cikNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5DaGVj a0JveC5IZWFkZXIsDQo+IEVGSV9JRlJfQ0hFQ0tCT1hfT1ApDQo+ICsgICAgICAgIElmclF1ZXN0 aW9uSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuQ2hlY2tCb3guUXVlc3Rpb24pDQo+ICsgICAg ICAgIHNlbGYuQ2hlY2tCb3guRmxhZ3MgPSAwDQo+ICsNCj4gKyAgICBkZWYgR2V0UXVlc3Rpb24o c2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmDQo+ICsNCj4gKyAgICBkZWYgU2V0UUhlYWRl ckZsYWdzKHNlbGYsIEZsYWdzKToNCj4gKyAgICAgICAgSWZyUXVlc3Rpb25IZWFkZXIuU2V0Rmxh Z3Moc2VsZiwgRmxhZ3MpDQo+ICsNCj4gKyAgICBkZWYgR2V0RmxhZ3Moc2VsZik6DQo+ICsgICAg ICAgIHJldHVybiBzZWxmLkNoZWNrQm94LkZsYWdzDQo+ICsNCj4gKyAgICBkZWYgU2V0RmxhZ3Mo c2VsZiwgSEZsYWdzLCBMRmxhZ3MpOg0KPiArICAgICAgICBSZXR1cm5Db2RlID0gSWZyUXVlc3Rp b25IZWFkZXIuU2V0RmxhZ3Moc2VsZiwgSEZsYWdzKQ0KPiArICAgICAgICBpZiBSZXR1cm5Db2Rl ICE9IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTOg0KPiArICAgICAgICAgICAgcmV0 dXJuIFJldHVybkNvZGUNCj4gKw0KPiArICAgICAgICBMRmxhZ3MsIFJldCA9IF9GTEFHX1RFU1Rf QU5EX0NMRUFSKExGbGFncywNCj4gRUZJX0lGUl9DSEVDS0JPWF9ERUZBVUxUKQ0KPiArICAgICAg ICBpZiBSZXQ6DQo+ICsgICAgICAgICAgICBzZWxmLkNoZWNrQm94LkZsYWdzIHw9IEVGSV9JRlJf Q0hFQ0tCT1hfREVGQVVMVA0KPiArDQo+ICsgICAgICAgIExGbGFncywgUmV0ID0gX0ZMQUdfVEVT VF9BTkRfQ0xFQVIoTEZsYWdzLA0KPiBFRklfSUZSX0NIRUNLQk9YX0RFRkFVTFRfTUZHKQ0KPiAr DQo+ICsgICAgICAgIGlmIFJldDoNCj4gKyAgICAgICAgICAgIHNlbGYuQ2hlY2tCb3guRmxhZ3Mg fD0gRUZJX0lGUl9DSEVDS0JPWF9ERUZBVUxUX01GRw0KPiArDQo+ICsgICAgICAgIHJldHVybiAo DQo+ICsgICAgICAgICAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiArICAg ICAgICAgICAgaWYgTEZsYWdzID09IDANCj4gKyAgICAgICAgICAgIGVsc2UgVmZyUmV0dXJuQ29k ZS5WRlJfUkVUVVJOX0ZMQUdTX1VOU1VQUE9SVEVEDQo+ICsgICAgICAgICkNCj4gKw0KPiArDQo+ ICtjbGFzcyBJZnJSZXNldEJ1dHRvbihJZnJMaW5lLCBJZnJPcEhlYWRlciwgSWZyU3RhdGVtZW50 SGVhZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgRGVmYXVsdFN0b3JlPU5vbmUpOg0K PiArICAgICAgICBzZWxmLlJlc2V0QnV0dG9uID0gRUZJX0lGUl9SRVNFVF9CVVRUT04oKQ0KPiAr ICAgICAgICBJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLlJlc2V0QnV0dG9uLkhlYWRl ciwNCj4gRUZJX0lGUl9SRVNFVF9CVVRUT05fT1ApDQo+ICsgICAgICAgIElmclN0YXRlbWVudEhl YWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLlJlc2V0QnV0dG9uLlN0YXRlbWVudCkNCj4gKyAgICAg ICAgc2VsZi5SZXNldEJ1dHRvbi5EZWZhdWx0SWQgPSBFRklfSElJX0RFRkFVTFRfQ0xBU1NfU1RB TkRBUkQNCj4gKw0KPiArICAgICAgICBzZWxmLkRlZmF1bHRTdG9yZSA9IERlZmF1bHRTdG9yZQ0K PiArDQo+ICsgICAgZGVmIFNldERlZmF1bHRJZChzZWxmLCBEZWZhdWx0SWQpOg0KPiArICAgICAg ICBzZWxmLlJlc2V0QnV0dG9uLkRlZmF1bHRJZCA9IERlZmF1bHRJZA0KPiArDQo+ICsgICAgZGVm IFNldERlZmF1bHRTdG9yZShzZWxmLCBEZWZhdWx0U3RvcmUpOg0KPiArICAgICAgICBzZWxmLkRl ZmF1bHRTdG9yZSA9IERlZmF1bHRTdG9yZQ0KPiArDQo+ICsgICAgZGVmIEdldEluZm8oc2VsZik6 DQo+ICsgICAgICAgIHJldHVybiBzZWxmLlJlc2V0QnV0dG9uDQo+ICsNCj4gKw0KPiArY2xhc3Mg SWZyT3IoSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBM aW5lTm8pOg0KPiArICAgICAgICBzZWxmLk9yID0gRUZJX0lGUl9PUigpDQo+ICsgICAgICAgIElm ck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuT3IuSGVhZGVyLCBFRklfSUZSX09SX09QKQ0K PiArICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+ICsNCj4gKyAgICBkZWYgR2V0SW5m byhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuT3INCj4gKw0KPiArDQo+ICtjbGFzcyBJ ZnJBbmQoSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBM aW5lTm8pOg0KPiArICAgICAgICBzZWxmLkFuZCA9IEVGSV9JRlJfQU5EKCkNCj4gKyAgICAgICAg SWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5BbmQuSGVhZGVyLCBFRklfSUZSX0FORF9P UCkNCj4gKyAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0KPiArDQo+ICsgICAgZGVmIEdl dEluZm8oc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLkFuZA0KPiArDQo+ICsNCj4gK2Ns YXNzIElmckJpdFdpc2VPcihJZnJMaW5lLCBJZnJPcEhlYWRlcik6DQo+ICsgICAgZGVmIF9faW5p dF9fKHNlbGYsIExpbmVObyk6DQo+ICsgICAgICAgIHNlbGYuQml0V2lzZU9yID0gRUZJX0lGUl9C SVRXSVNFX09SKCkNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5C aXRXaXNlT3IuSGVhZGVyLA0KPiBFRklfSUZSX0JJVFdJU0VfT1JfT1ApDQo+ICsgICAgICAgIHNl bGYuU2V0TGluZU5vKExpbmVObykNCj4gKw0KPiArICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiAr ICAgICAgICByZXR1cm4gc2VsZi5CaXRXaXNlT3INCj4gKw0KPiArDQo+ICtjbGFzcyBJZnJDYXRl bmF0ZShJZnJMaW5lLCBJZnJPcEhlYWRlcik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIExp bmVObyk6DQo+ICsgICAgICAgIHNlbGYuQ2F0ZW5hdGUgPSBFRklfSUZSX0NBVEVOQVRFKCkNCj4g KyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5DYXRlbmF0ZS5IZWFkZXIs IEVGSV9JRlJfQ0FURU5BVEVfT1ApDQo+ICsgICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykN Cj4gKw0KPiArICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5D YXRlbmF0ZQ0KPiArDQo+ICsNCj4gK2NsYXNzIElmckRpdmlkZShJZnJMaW5lLCBJZnJPcEhlYWRl cik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIExpbmVObyk6DQo+ICsgICAgICAgIHNlbGYu RGl2aWRlID0gRUZJX0lGUl9ESVZJREUoKQ0KPiArICAgICAgICBJZnJPcEhlYWRlci5fX2luaXRf XyhzZWxmLCBzZWxmLkRpdmlkZS5IZWFkZXIsIEVGSV9JRlJfRElWSURFX09QKQ0KPiArICAgICAg ICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+ICsNCj4gKyAgICBkZWYgR2V0SW5mbyhzZWxmKToN Cj4gKyAgICAgICAgcmV0dXJuIHNlbGYuRGl2aWRlDQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyRXF1 YWwoSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBMaW5l Tm8pOg0KPiArICAgICAgICBzZWxmLkVxdWFsID0gRUZJX0lGUl9FUVVBTCgpDQo+ICsgICAgICAg IElmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuRXF1YWwuSGVhZGVyLCBFRklfSUZSX0VR VUFMX09QKQ0KPiArICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+ICsNCj4gKyAgICBk ZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuRXF1YWwNCj4gKw0KPiAr DQo+ICtjbGFzcyBJZnJHcmVhdGVyRXF1YWwoSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0KPiArICAg IGRlZiBfX2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiArICAgICAgICBzZWxmLkdyZWF0ZXJFcXVh bCA9IEVGSV9JRlJfR1JFQVRFUl9FUVVBTCgpDQo+ICsgICAgICAgIElmck9wSGVhZGVyLl9faW5p dF9fKHNlbGYsIHNlbGYuR3JlYXRlckVxdWFsLkhlYWRlciwNCj4gRUZJX0lGUl9HUkVBVEVSX0VR VUFMX09QKQ0KPiArICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+ICsNCj4gKyAgICBk ZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuR3JlYXRlckVxdWFsDQo+ ICsNCj4gKw0KPiArY2xhc3MgSWZyR3JlYXRlclRoYW4oSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0K PiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiArICAgICAgICBzZWxmLkdyZWF0 ZXJUaGFuID0gRUZJX0lGUl9HUkVBVEVSX1RIQU4oKQ0KPiArICAgICAgICBJZnJPcEhlYWRlci5f X2luaXRfXyhzZWxmLCBzZWxmLkdyZWF0ZXJUaGFuLkhlYWRlciwNCj4gRUZJX0lGUl9HUkVBVEVS X1RIQU5fT1ApDQo+ICsgICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gKw0KPiArICAg IGRlZiBHZXRJbmZvKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5HcmVhdGVyVGhhbg0K PiArDQo+ICsNCj4gK2NsYXNzIElmckxlc3NFcXVhbChJZnJMaW5lLCBJZnJPcEhlYWRlcik6DQo+ ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIExpbmVObyk6DQo+ICsgICAgICAgIHNlbGYuTGVzc0Vx dWFsID0gRUZJX0lGUl9MRVNTX0VRVUFMKCkNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0 X18oc2VsZiwgc2VsZi5MZXNzRXF1YWwuSGVhZGVyLA0KPiBFRklfSUZSX0xFU1NfRVFVQUxfT1Ap DQo+ICsgICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gKw0KPiArICAgIGRlZiBHZXRJ bmZvKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5MZXNzRXF1YWwNCj4gKw0KPiArDQo+ ICtjbGFzcyBJZnJMZXNzVGhhbihJZnJMaW5lLCBJZnJPcEhlYWRlcik6DQo+ICsgICAgZGVmIF9f aW5pdF9fKHNlbGYsIExpbmVObyk6DQo+ICsgICAgICAgIHNlbGYuTGVzc1RoYW4gPSBFRklfSUZS X0xFU1NfVEhBTigpDQo+ICsgICAgICAgIElmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYu TGVzc1RoYW4uSGVhZGVyLA0KPiBFRklfSUZSX0xFU1NfVEhBTl9PUCkNCj4gKyAgICAgICAgc2Vs Zi5TZXRMaW5lTm8oTGluZU5vKQ0KPiArDQo+ICsgICAgZGVmIEdldEluZm8oc2VsZik6DQo+ICsg ICAgICAgIHJldHVybiBzZWxmLkxlc3NUaGFuDQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyTWFwKElm ckxpbmUsIElmck9wSGVhZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToN Cj4gKyAgICAgICAgc2VsZi5NYXAgPSBFRklfSUZSX01BUCgpDQo+ICsgICAgICAgIElmck9wSGVh ZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuTWFwLkhlYWRlciwgRUZJX0lGUl9NQVBfT1ApDQo+ICsg ICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gKw0KPiArICAgIGRlZiBHZXRJbmZvKHNl bGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5NYXANCj4gKw0KPiArDQo+ICtjbGFzcyBJZnJN YXRjaChJZnJMaW5lLCBJZnJPcEhlYWRlcik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIExp bmVObyk6DQo+ICsgICAgICAgIHNlbGYuTWF0Y2ggPSBFRklfSUZSX01BVENIKCkNCj4gKyAgICAg ICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5NYXRjaC5IZWFkZXIsIEVGSV9JRlJf TUFUQ0hfT1ApDQo+ICsgICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gKw0KPiArICAg IGRlZiBHZXRJbmZvKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5NYXRjaA0KPiArDQo+ ICsNCj4gK2NsYXNzIElmck1hdGNoMihJZnJMaW5lLCBJZnJPcEhlYWRlcik6DQo+ICsgICAgZGVm IF9faW5pdF9fKHNlbGYsIExpbmVObywgR3VpZCk6DQo+ICsgICAgICAgIHNlbGYuTWF0Y2gyID0g RUZJX0lGUl9NQVRDSDIoKQ0KPiArICAgICAgICBJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBz ZWxmLk1hdGNoMi5IZWFkZXIsIEVGSV9JRlJfTUFUQ0gyX09QKQ0KPiArICAgICAgICBzZWxmLlNl dExpbmVObyhMaW5lTm8pDQo+ICsgICAgICAgIHNlbGYuTWF0Y2gyLlN5bnRheFR5cGUgPSBHdWlk DQo+ICsNCj4gKyAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYu TWF0Y2gyDQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyTXVsdGlwbHkoSWZyTGluZSwgSWZyT3BIZWFk ZXIpOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiArICAgICAgICBzZWxm Lk11bHRpcGx5ID0gRUZJX0lGUl9NVUxUSVBMWSgpDQo+ICsgICAgICAgIElmck9wSGVhZGVyLl9f aW5pdF9fKHNlbGYsIHNlbGYuTXVsdGlwbHkuSGVhZGVyLCBFRklfSUZSX01VTFRJUExZX09QKQ0K PiArICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+ICsNCj4gKyAgICBkZWYgR2V0SW5m byhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuTXVsdGlwbHkNCj4gKw0KPiArDQo+ICtj bGFzcyBJZnJNb2R1bG8oSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0KPiArICAgIGRlZiBfX2luaXRf XyhzZWxmLCBMaW5lTm8pOg0KPiArICAgICAgICBzZWxmLk1vZHVsbyA9IEVGSV9JRlJfTU9EVUxP KCkNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5Nb2R1bG8uSGVh ZGVyLCBFRklfSUZSX01PRFVMT19PUCkNCj4gKyAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5v KQ0KPiArDQo+ICsgICAgZGVmIEdldEluZm8oc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxm Lk1vZHVsbw0KPiArDQo+ICsNCj4gK2NsYXNzIElmck5vdEVxdWFsKElmckxpbmUsIElmck9wSGVh ZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gKyAgICAgICAgc2Vs Zi5Ob3RFcXVhbCA9IEVGSV9JRlJfTk9UX0VRVUFMKCkNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIu X19pbml0X18oc2VsZiwgc2VsZi5Ob3RFcXVhbC5IZWFkZXIsDQo+IEVGSV9JRlJfTk9UX0VRVUFM X09QKQ0KPiArICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+ICsNCj4gKyAgICBkZWYg R2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuTm90RXF1YWwNCj4gKw0KPiAr DQo+ICtjbGFzcyBJZnJTaGlmdExlZnQoSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0KPiArICAgIGRl ZiBfX2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiArICAgICAgICBzZWxmLlNoaWZ0TGVmdCA9IEVG SV9JRlJfU0hJRlRfTEVGVCgpDQo+ICsgICAgICAgIElmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYs IHNlbGYuU2hpZnRMZWZ0LkhlYWRlciwgRUZJX0lGUl9TSElGVF9MRUZUX09QKQ0KPiArICAgICAg ICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+ICsNCj4gKyAgICBkZWYgR2V0SW5mbyhzZWxmKToN Cj4gKyAgICAgICAgcmV0dXJuIHNlbGYuU2hpZnRMZWZ0DQo+ICsNCj4gKw0KPiArY2xhc3MgSWZy U2hpZnRSaWdodChJZnJMaW5lLCBJZnJPcEhlYWRlcik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNl bGYsIExpbmVObyk6DQo+ICsgICAgICAgIHNlbGYuU2hpZnRSaWdodCA9IEVGSV9JRlJfU0hJRlRf UklHSFQoKQ0KPiArICAgICAgICBJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLlNoaWZ0 UmlnaHQuSGVhZGVyLA0KPiBFRklfSUZSX1NISUZUX1JJR0hUX09QKQ0KPiArICAgICAgICBzZWxm LlNldExpbmVObyhMaW5lTm8pDQo+ICsNCj4gKyAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAg ICAgICAgcmV0dXJuIHNlbGYuU2hpZnRSaWdodA0KPiArDQo+ICsNCj4gK2NsYXNzIElmclN1YnRy YWN0KElmckxpbmUsIElmck9wSGVhZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgTGlu ZU5vKToNCj4gKyAgICAgICAgc2VsZi5TdWJ0cmFjdCA9IEVGSV9JRlJfU1VCVFJBQ1QoKQ0KPiAr ICAgICAgICBJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLlN1YnRyYWN0LkhlYWRlciwg RUZJX0lGUl9TVUJUUkFDVF9PUCkNCj4gKyAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0K PiArDQo+ICsgICAgZGVmIEdldEluZm8oc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLlN1 YnRyYWN0DQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyQ29uZGl0aW9uYWwoSWZyTGluZSwgSWZyT3BI ZWFkZXIpOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiArICAgICAgICBz ZWxmLkNvbmRpdGlvbmFsID0gRUZJX0lGUl9DT05ESVRJT05BTCgpDQo+ICsgICAgICAgIElmck9w SGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuQ29uZGl0aW9uYWwuSGVhZGVyLA0KPiBFRklfSUZS X0NPTkRJVElPTkFMX09QKQ0KPiArICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+ICsN Cj4gKyAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuQ29uZGl0 aW9uYWwNCj4gKw0KPiArDQo+ICtjbGFzcyBJZnJGaW5kKElmckxpbmUsIElmck9wSGVhZGVyKToN Cj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gKyAgICAgICAgc2VsZi5GaW5k ID0gRUZJX0lGUl9GSU5EKCkNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwg c2VsZi5GaW5kLkhlYWRlciwgRUZJX0lGUl9GSU5EX09QKQ0KPiArICAgICAgICBzZWxmLlNldExp bmVObyhMaW5lTm8pDQo+ICsNCj4gKyAgICBkZWYgU2V0Rm9ybWF0KHNlbGYsIEZvcm1hdCk6DQo+ ICsgICAgICAgIHNlbGYuRmluZC5Gb3JtYXQgPSBGb3JtYXQNCj4gKw0KPiArICAgIGRlZiBHZXRJ bmZvKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5GaW5kDQo+ICsNCj4gKw0KPiArY2xh c3MgSWZyTWlkKElmckxpbmUsIElmck9wSGVhZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oc2Vs ZiwgTGluZU5vKToNCj4gKyAgICAgICAgc2VsZi5NaWQgPSBFRklfSUZSX01JRCgpDQo+ICsgICAg ICAgIElmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuTWlkLkhlYWRlciwgRUZJX0lGUl9N SURfT1ApDQo+ICsgICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gKw0KPiArICAgIGRl ZiBHZXRJbmZvKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5NaWQNCj4gKw0KPiArDQo+ ICtjbGFzcyBJZnJUb2tlbihJZnJMaW5lLCBJZnJPcEhlYWRlcik6DQo+ICsgICAgZGVmIF9faW5p dF9fKHNlbGYsIExpbmVObyk6DQo+ICsgICAgICAgIHNlbGYuVG9rZW4gPSBFRklfSUZSX1RPS0VO KCkNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5Ub2tlbi5IZWFk ZXIsIEVGSV9JRlJfVE9LRU5fT1ApDQo+ICsgICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykN Cj4gKw0KPiArICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5U b2tlbg0KPiArDQo+ICsNCj4gK2NsYXNzIElmclNwYW4oSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0K PiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiArICAgICAgICBzZWxmLlNwYW4g PSBFRklfSUZSX1NQQU4oKQ0KPiArICAgICAgICBJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBz ZWxmLlNwYW4uSGVhZGVyLCBFRklfSUZSX1NQQU5fT1ApDQo+ICsgICAgICAgIHNlbGYuU2V0TGlu ZU5vKExpbmVObykNCj4gKyAgICAgICAgc2VsZi5TcGFuLkZsYWdzID0gRUZJX0lGUl9GTEFHU19G SVJTVF9NQVRDSElORw0KPiArDQo+ICsgICAgZGVmIFNldEZsYWdzKHNlbGYsIExGbGFncyk6DQo+ ICsgICAgICAgIGlmIExGbGFncyA9PSBFRklfSUZSX0ZMQUdTX0ZJUlNUX01BVENISU5HOg0KPiAr ICAgICAgICAgICAgc2VsZi5TcGFuLkZsYWdzIHw9IEVGSV9JRlJfRkxBR1NfRklSU1RfTUFUQ0hJ TkcNCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIExGbGFncywgUmV0ID0gX0ZMQUdf VEVTVF9BTkRfQ0xFQVIoTEZsYWdzLA0KPiBFRklfSUZSX0ZMQUdTX0ZJUlNUX05PTl9NQVRDSElO RykNCj4gKyAgICAgICAgICAgIGlmIFJldDoNCj4gKyAgICAgICAgICAgICAgICBzZWxmLlNwYW4u RmxhZ3MgfD0gRUZJX0lGUl9GTEFHU19GSVJTVF9OT05fTUFUQ0hJTkcNCj4gKw0KPiArICAgICAg ICByZXR1cm4gKA0KPiArICAgICAgICAgICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NF U1MNCj4gKyAgICAgICAgICAgIGlmIExGbGFncyA9PSAwDQo+ICsgICAgICAgICAgICBlbHNlIFZm clJldHVybkNvZGUuVkZSX1JFVFVSTl9GTEFHU19VTlNVUFBPUlRFRA0KPiArICAgICAgICApDQo+ ICsNCj4gKyAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuU3Bh bg0KPiArDQo+ICsNCj4gK2NsYXNzIElmckJpdFdpc2VBbmQoSWZyTGluZSwgSWZyT3BIZWFkZXIp Og0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiArICAgICAgICBzZWxmLkJp dFdpc2VBbmQgPSBFRklfSUZSX0JJVFdJU0VfQU5EKCkNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIu X19pbml0X18oc2VsZiwgc2VsZi5CaXRXaXNlQW5kLkhlYWRlciwNCj4gRUZJX0lGUl9CSVRXSVNF X0FORF9PUCkNCj4gKyAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0KPiArDQo+ICsgICAg ZGVmIEdldEluZm8oc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLkJpdFdpc2VBbmQNCj4g Kw0KPiArDQo+ICtjbGFzcyBJZnJBZGQoSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0KPiArICAgIGRl ZiBfX2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiArICAgICAgICBzZWxmLkFkZCA9IEVGSV9JRlJf QUREKCkNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5BZGQuSGVh ZGVyLCBFRklfSUZSX0FERF9PUCkNCj4gKyAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0K PiArDQo+ICsgICAgZGVmIEdldEluZm8oc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLkFk ZA0KPiArDQo+ICsNCj4gK2NsYXNzIElmclRvU3RyaW5nKElmckxpbmUsIElmck9wSGVhZGVyKToN Cj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gKyAgICAgICAgc2VsZi5Ub1N0 cmluZyA9IEVGSV9JRlJfVE9fU1RSSU5HKCkNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0 X18oc2VsZiwgc2VsZi5Ub1N0cmluZy5IZWFkZXIsIEVGSV9JRlJfVE9fU1RSSU5HX09QKQ0KPiAr ICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+ICsNCj4gKyAgICBkZWYgU2V0Rm9ybWF0 KHNlbGYsIEZvcm1hdCk6DQo+ICsgICAgICAgIHNlbGYuVG9TdHJpbmcuRm9ybWF0ID0gRm9ybWF0 DQo+ICsNCj4gKyAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYu VG9TdHJpbmcNCj4gKw0KPiArDQo+ICtjbGFzcyBJZnJUb1VwcGVyKElmckxpbmUsIElmck9wSGVh ZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gKyAgICAgICAgc2Vs Zi5Ub1VwcHBlciA9IEVGSV9JRlJfVE9fVVBQRVIoKQ0KPiArICAgICAgICBJZnJPcEhlYWRlci5f X2luaXRfXyhzZWxmLCBzZWxmLlRvVXBwcGVyLkhlYWRlciwNCj4gRUZJX0lGUl9UT19VUFBFUl9P UCkNCj4gKyAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0KPiArDQo+ICsgICAgZGVmIEdl dEluZm8oc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLlRvVXBwcGVyDQo+ICsNCj4gKw0K PiArY2xhc3MgSWZyVG9VaW50KElmckxpbmUsIElmck9wSGVhZGVyKToNCj4gKyAgICBkZWYgX19p bml0X18oc2VsZiwgTGluZU5vKToNCj4gKyAgICAgICAgc2VsZi5Ub1VpbnQgPSBFRklfSUZSX1RP X1VJTlQoKQ0KPiArICAgICAgICBJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLlRvVWlu dC5IZWFkZXIsIEVGSV9JRlJfVE9fVUlOVF9PUCkNCj4gKyAgICAgICAgc2VsZi5TZXRMaW5lTm8o TGluZU5vKQ0KPiArDQo+ICsgICAgZGVmIEdldEluZm8oc2VsZik6DQo+ICsgICAgICAgIHJldHVy biBzZWxmLlRvVWludA0KPiArDQo+ICsNCj4gK2NsYXNzIElmclRvTG93ZXIoSWZyTGluZSwgSWZy T3BIZWFkZXIpOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiArICAgICAg ICBzZWxmLlRvTG93ZXIgPSBFRklfSUZSX1RPX0xPV0VSKCkNCj4gKyAgICAgICAgSWZyT3BIZWFk ZXIuX19pbml0X18oc2VsZiwgc2VsZi5Ub0xvd2VyLkhlYWRlciwgRUZJX0lGUl9UT19MT1dFUl9P UCkNCj4gKyAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0KPiArDQo+ICsgICAgZGVmIEdl dEluZm8oc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLlRvTG93ZXINCj4gKw0KPiArDQo+ ICtjbGFzcyBJZnJUb0Jvb2xlYW4oSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0KPiArICAgIGRlZiBf X2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiArICAgICAgICBzZWxmLkJvb2xlYW4gPSBFRklfSUZS X1RPX0JPT0xFQU4oKQ0KPiArICAgICAgICBJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxm LkJvb2xlYW4uSGVhZGVyLA0KPiBFRklfSUZSX1RPX0JPT0xFQU5fT1ApDQo+ICsgICAgICAgIHNl bGYuU2V0TGluZU5vKExpbmVObykNCj4gKw0KPiArICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiAr ICAgICAgICByZXR1cm4gc2VsZi5Cb29sZWFuDQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyTm90KElm ckxpbmUsIElmck9wSGVhZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToN Cj4gKyAgICAgICAgc2VsZi5Ob3QgPSBFRklfSUZSX05PVCgpDQo+ICsgICAgICAgIElmck9wSGVh ZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuTm90LkhlYWRlciwgRUZJX0lGUl9OT1RfT1ApDQo+ICsg ICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gKw0KPiArICAgIGRlZiBHZXRJbmZvKHNl bGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5Ob3QNCj4gKw0KPiArDQo+ICtjbGFzcyBJZnJE dXAoSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBMaW5l Tm8pOg0KPiArICAgICAgICBzZWxmLkR1cCA9IEVGSV9JRlJfRFVQKCkNCj4gKyAgICAgICAgSWZy T3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5EdXAuSGVhZGVyLCBFRklfSUZSX0RVUF9PUCkN Cj4gKyAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0KPiArDQo+ICsgICAgZGVmIEdldEhl YWRlcihzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuRHVwLkhlYWRlcg0KPiArDQo+ICsg ICAgZGVmIEdldEluZm8oc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLkR1cA0KPiArDQo+ ICsNCj4gK2NsYXNzIElmckVxSWRJZChJZnJMaW5lLCBJZnJPcEhlYWRlcik6DQo+ICsgICAgZGVm IF9faW5pdF9fKHNlbGYsIExpbmVObyk6DQo+ICsgICAgICAgIHNlbGYuRXFJZElkID0gRUZJX0lG Ul9FUV9JRF9JRCgpDQo+ICsgICAgICAgIElmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYu RXFJZElkLkhlYWRlciwgRUZJX0lGUl9FUV9JRF9JRF9PUCkNCj4gKyAgICAgICAgc2VsZi5TZXRM aW5lTm8oTGluZU5vKQ0KPiArICAgICAgICBzZWxmLkVxSWRJZC5RdWVzdGlvbklkMSA9IEVGSV9R VUVTVElPTl9JRF9JTlZBTElEDQo+ICsgICAgICAgIHNlbGYuRXFJZElkLlF1ZXN0aW9uSWQyID0g RUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQNCj4gKw0KPiArICAgIGRlZiBHZXRIZWFkZXIoc2VsZik6 DQo+ICsgICAgICAgIHJldHVybiBzZWxmLkVxSWRJZC5IZWFkZXINCj4gKw0KPiArICAgIGRlZiBT ZXRRdWVzdGlvbklkMShzZWxmLCBRdWVzdGlvbklkLCBWYXJJZFN0ciwgTGluZU5vKToNCj4gKyAg ICAgICAgaWYgUXVlc3Rpb25JZCAhPSBFRklfUVVFU1RJT05fSURfSU5WQUxJRDoNCj4gKyAgICAg ICAgICAgIHNlbGYuRXFJZElkLlF1ZXN0aW9uSWQxID0gUXVlc3Rpb25JZA0KPiArICAgICAgICBl bHNlOg0KPiArICAgICAgICAgICAgZ0Zvcm1Qa2cuQXNzaWduUGVuZGluZyhWYXJJZFN0ciwgc2Vs Zi5FcUlkSWQsIExpbmVObywgIm5vIHF1ZXN0aW9uDQo+IHJlZmVyZWQiLCAxKQ0KPiArDQo+ICsg ICAgZGVmIFNldFF1ZXN0aW9uSWQyKHNlbGYsIFF1ZXN0aW9uSWQsIFZhcklkU3RyLCBMaW5lTm8p Og0KPiArICAgICAgICBpZiBRdWVzdGlvbklkICE9IEVGSV9RVUVTVElPTl9JRF9JTlZBTElEOg0K PiArICAgICAgICAgICAgc2VsZi5FcUlkSWQuUXVlc3Rpb25JZDIgPSBRdWVzdGlvbklkDQo+ICsg ICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICBnRm9ybVBrZy5Bc3NpZ25QZW5kaW5nKFZhcklk U3RyLCBzZWxmLkVxSWRJZCwgTGluZU5vLCAibm8gcXVlc3Rpb24NCj4gcmVmZXJlZCIsIDIpDQo+ ICsNCj4gKyAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuRXFJ ZElkDQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyRXFJZFZhbChJZnJMaW5lLCBJZnJPcEhlYWRlcik6 DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIExpbmVObyk6DQo+ICsgICAgICAgIHNlbGYuRXFJ ZFZhbCA9IEVGSV9JRlJfRVFfSURfVkFMKCkNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0 X18oc2VsZiwgc2VsZi5FcUlkVmFsLkhlYWRlciwgRUZJX0lGUl9FUV9JRF9WQUxfT1ApDQo+ICsg ICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gKyAgICAgICAgc2VsZi5FcUlkVmFsLlF1 ZXN0aW9uSWQgPSBFRklfUVVFU1RJT05fSURfSU5WQUxJRA0KPiArDQo+ICsgICAgZGVmIFNldFF1 ZXN0aW9uSWQoc2VsZiwgUXVlc3Rpb25JZCwgVmFySWRTdHIsIExpbmVObyk6DQo+ICsgICAgICAg IGlmIFF1ZXN0aW9uSWQgIT0gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQ6DQo+ICsgICAgICAgICAg ICBzZWxmLkVxSWRWYWwuUXVlc3Rpb25JZCA9IFF1ZXN0aW9uSWQNCj4gKyAgICAgICAgZWxzZToN Cj4gKyAgICAgICAgICAgIGdGb3JtUGtnLkFzc2lnblBlbmRpbmcoVmFySWRTdHIsIHNlbGYuRXFJ ZFZhbCwgTGluZU5vLCAibm8gcXVlc3Rpb24NCj4gcmVmZXJlZCIpDQo+ICsNCj4gKyAgICBkZWYg U2V0VmFsdWUoc2VsZiwgVmFsdWUpOg0KPiArICAgICAgICBzZWxmLkVxSWRWYWwuVmFsdWUgPSBW YWx1ZQ0KPiArDQo+ICsgICAgZGVmIEdldEhlYWRlcihzZWxmKToNCj4gKyAgICAgICAgcmV0dXJu IHNlbGYuRXFJZFZhbC5IZWFkZXINCj4gKw0KPiArICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiAr ICAgICAgICByZXR1cm4gc2VsZi5FcUlkVmFsDQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyRXFJZExp c3QoSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBMaW5l Tm8sIE51bXMsIFZhbHVlTGlzdD1Ob25lKToNCj4gKyAgICAgICAgc2VsZi5FcUlkVkxpc3QgPSBS ZWZpbmVfRUZJX0lGUl9FUV9JRF9WQUxfTElTVChOdW1zKQ0KPiArICAgICAgICBJZnJPcEhlYWRl ci5fX2luaXRfXygNCj4gKyAgICAgICAgICAgIHNlbGYsIHNlbGYuRXFJZFZMaXN0LkhlYWRlciwg RUZJX0lGUl9FUV9JRF9WQUxfTElTVF9PUCwNCj4gc2l6ZW9mKHNlbGYuRXFJZFZMaXN0KQ0KPiAr ICAgICAgICApDQo+ICsgICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gKyAgICAgICAg c2VsZi5FcUlkVkxpc3QuUXVlc3Rpb25JZCA9IEVGSV9RVUVTVElPTl9JRF9JTlZBTElEDQo+ICsg ICAgICAgIHNlbGYuRXFJZFZMaXN0Lkxpc3RMZW5ndGggPSAwDQo+ICsgICAgICAgIGlmIFZhbHVl TGlzdCBpcyBub3QgTm9uZSBhbmQgVmFsdWVMaXN0ICE9IFtdOg0KPiArICAgICAgICAgICAgQXJy YXlUeXBlID0gY191aW50MTYgKiBOdW1zDQo+ICsgICAgICAgICAgICBWYWx1ZUFycmF5ID0gQXJy YXlUeXBlKCkNCj4gKyAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKDAsIGxlbihWYWx1ZUxpc3Qp KToNCj4gKyAgICAgICAgICAgICAgICBWYWx1ZUFycmF5W2ldID0gVmFsdWVMaXN0W2ldDQo+ICsg ICAgICAgICAgICBzZWxmLkVxSWRWTGlzdC5WYWx1ZUxpc3QgPSBWYWx1ZUFycmF5DQo+ICsNCj4g KyAgICBkZWYgU2V0UXVlc3Rpb25JZChzZWxmLCBRdWVzdGlvbklkLCBWYXJJZFN0ciwgTGluZU5v KToNCj4gKyAgICAgICAgaWYgUXVlc3Rpb25JZCAhPSBFRklfUVVFU1RJT05fSURfSU5WQUxJRDoN Cj4gKyAgICAgICAgICAgIHNlbGYuRXFJZFZMaXN0LlF1ZXN0aW9uSWQgPSBRdWVzdGlvbklkDQo+ ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICBnRm9ybVBrZy5Bc3NpZ25QZW5kaW5nKFZh cklkU3RyLCBzZWxmLkVxSWRWTGlzdCwgTGluZU5vLCAibm8gcXVlc3Rpb24NCj4gcmVmZXJlZCIp DQo+ICsNCj4gKyAgICBkZWYgU2V0TGlzdExlbmd0aChzZWxmLCBMaXN0TGVuZ3RoKToNCj4gKyAg ICAgICAgc2VsZi5FcUlkVkxpc3QuTGlzdExlbmd0aCA9IExpc3RMZW5ndGgNCj4gKw0KPiArICAg IGRlZiBTZXRWYWx1ZUxpc3Qoc2VsZiwgVmFsdWVMaXN0KToNCj4gKyAgICAgICAgaWYgVmFsdWVM aXN0ICE9IFtdOg0KPiArICAgICAgICAgICAgQXJyYXlUeXBlID0gY191aW50MTYgKiBsZW4oVmFs dWVMaXN0KQ0KPiArICAgICAgICAgICAgVmFsdWVBcnJheSA9IEFycmF5VHlwZSgpDQo+ICsgICAg ICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCBsZW4oVmFsdWVMaXN0KSk6DQo+ICsgICAgICAgICAg ICAgICAgVmFsdWVBcnJheVtpXSA9IFZhbHVlTGlzdFtpXQ0KPiArICAgICAgICAgICAgc2VsZi5F cUlkVkxpc3QuVmFsdWVMaXN0ID0gVmFsdWVBcnJheQ0KPiArDQo+ICsgICAgZGVmIEdldEhlYWRl cihzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuRXFJZFZMaXN0LkhlYWRlcg0KPiArDQo+ ICsgICAgZGVmIEdldEluZm8oc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLkVxSWRWTGlz dA0KPiArDQo+ICsNCj4gK2NsYXNzIElmclVpbnQ4KElmckxpbmUsIElmck9wSGVhZGVyKToNCj4g KyAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gKyAgICAgICAgc2VsZi5VaW50OCA9 IEVGSV9JRlJfVUlOVDgoKQ0KPiArICAgICAgICBJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBz ZWxmLlVpbnQ4LkhlYWRlciwgRUZJX0lGUl9VSU5UOF9PUCkNCj4gKyAgICAgICAgc2VsZi5TZXRM aW5lTm8oTGluZU5vKQ0KPiArDQo+ICsgICAgZGVmIFNldFZhbHVlKHNlbGYsIFZhbHVlKToNCj4g KyAgICAgICAgc2VsZi5VaW50OC5WYWx1ZSA9IFZhbHVlDQo+ICsNCj4gKyAgICBkZWYgR2V0SGVh ZGVyKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5VaW50OC5IZWFkZXINCj4gKw0KPiAr ICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5VaW50OA0KPiAr DQo+ICsNCj4gK2NsYXNzIElmclVpbnQxNihJZnJMaW5lLCBJZnJPcEhlYWRlcik6DQo+ICsgICAg ZGVmIF9faW5pdF9fKHNlbGYsIExpbmVObyk6DQo+ICsgICAgICAgIHNlbGYuVWludDE2ID0gRUZJ X0lGUl9VSU5UMTYoKQ0KPiArICAgICAgICBJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxm LlVpbnQxNi5IZWFkZXIsIEVGSV9JRlJfVUlOVDE2X09QKQ0KPiArICAgICAgICBzZWxmLlNldExp bmVObyhMaW5lTm8pDQo+ICsNCj4gKyAgICBkZWYgU2V0VmFsdWUoc2VsZiwgVmFsdWUpOg0KPiAr ICAgICAgICBzZWxmLlVpbnQxNi5WYWx1ZSA9IFZhbHVlDQo+ICsNCj4gKyAgICBkZWYgR2V0SGVh ZGVyKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5VaW50MTYuSGVhZGVyDQo+ICsNCj4g KyAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuVWludDE2DQo+ ICsNCj4gKw0KPiArY2xhc3MgSWZyVWludDMyKElmckxpbmUsIElmck9wSGVhZGVyKToNCj4gKyAg ICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gKyAgICAgICAgc2VsZi5VaW50MzIgPSBF RklfSUZSX1VJTlQzMigpDQo+ICsgICAgICAgIElmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNl bGYuVWludDMyLkhlYWRlciwgRUZJX0lGUl9VSU5UMzJfT1ApDQo+ICsgICAgICAgIHNlbGYuU2V0 TGluZU5vKExpbmVObykNCj4gKw0KPiArICAgIGRlZiBTZXRWYWx1ZShzZWxmLCBWYWx1ZSk6DQo+ ICsgICAgICAgIHNlbGYuVWludDMyLlZhbHVlID0gVmFsdWUNCj4gKw0KPiArICAgIGRlZiBHZXRI ZWFkZXIoc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLlVpbnQzMi5IZWFkZXINCj4gKw0K PiArICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5VaW50MzIN Cj4gKw0KPiArDQo+ICtjbGFzcyBJZnJVaW50NjQoSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0KPiAr ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiArICAgICAgICBzZWxmLlVpbnQ2NCA9 IEVGSV9JRlJfVUlOVDY0KCkNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwg c2VsZi5VaW50NjQuSGVhZGVyLCBFRklfSUZSX1VJTlQ2NF9PUCwNCj4gc2l6ZW9mKEVGSV9JRlJf VUlOVDY0KSkNCj4gKyAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0KPiArDQo+ICsgICAg ZGVmIFNldFZhbHVlKHNlbGYsIFZhbHVlKToNCj4gKyAgICAgICAgc2VsZi5VaW50NjQuVmFsdWUg PSBWYWx1ZQ0KPiArDQo+ICsgICAgZGVmIEdldEhlYWRlcihzZWxmKToNCj4gKyAgICAgICAgcmV0 dXJuIHNlbGYuVWludDY0LkhlYWRlcg0KPiArDQo+ICsgICAgZGVmIEdldEluZm8oc2VsZik6DQo+ ICsgICAgICAgIHJldHVybiBzZWxmLlVpbnQ2NA0KPiArDQo+ICsNCj4gK2NsYXNzIElmclF1ZXN0 aW9uUmVmMShJZnJMaW5lLCBJZnJPcEhlYWRlcik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYs IExpbmVObyk6DQo+ICsgICAgICAgIHNlbGYuUXVlc3Rpb25SZWYxID0gRUZJX0lGUl9RVUVTVElP Tl9SRUYxKCkNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5RdWVz dGlvblJlZjEuSGVhZGVyLA0KPiBFRklfSUZSX1FVRVNUSU9OX1JFRjFfT1ApDQo+ICsgICAgICAg IHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gKyAgICAgICAgc2VsZi5RdWVzdGlvblJlZjEuUXVl c3Rpb25JZCA9IEVGSV9RVUVTVElPTl9JRF9JTlZBTElEDQo+ICsNCj4gKyAgICBkZWYgR2V0SGVh ZGVyKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5RdWVzdGlvblJlZjEuSGVhZGVyDQo+ ICsNCj4gKyAgICBkZWYgU2V0UXVlc3Rpb25JZChzZWxmLCBRdWVzdGlvbklkLCBWYXJJZFN0ciwg TGluZU5vKToNCj4gKyAgICAgICAgaWYgUXVlc3Rpb25JZCAhPSBFRklfUVVFU1RJT05fSURfSU5W QUxJRDoNCj4gKyAgICAgICAgICAgIHNlbGYuUXVlc3Rpb25SZWYxLlF1ZXN0aW9uSWQgPSBRdWVz dGlvbklkDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICBnRm9ybVBrZy5Bc3NpZ25Q ZW5kaW5nKFZhcklkU3RyLCBzZWxmLlF1ZXN0aW9uUmVmMSwgTGluZU5vLCAibm8NCj4gcXVlc3Rp b24gcmVmZXJlZCIpDQo+ICsNCj4gKyAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAg cmV0dXJuIHNlbGYuUXVlc3Rpb25SZWYxDQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyUXVlc3Rpb25S ZWYyKElmckxpbmUsIElmck9wSGVhZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgTGlu ZU5vKToNCj4gKyAgICAgICAgc2VsZi5RdWVzdGlvblJlZjIgPSBFRklfSUZSX1FVRVNUSU9OX1JF RjIoKQ0KPiArICAgICAgICBJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLlF1ZXN0aW9u UmVmMi5IZWFkZXIsDQo+IEVGSV9JRlJfUVVFU1RJT05fUkVGMl9PUCkNCj4gKyAgICAgICAgc2Vs Zi5TZXRMaW5lTm8oTGluZU5vKQ0KPiArDQo+ICsgICAgZGVmIEdldEhlYWRlcihzZWxmKToNCj4g KyAgICAgICAgcmV0dXJuIHNlbGYuUXVlc3Rpb25SZWYyLkhlYWRlcg0KPiArDQo+ICsgICAgZGVm IEdldEluZm8oc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLlF1ZXN0aW9uUmVmMg0KPiAr DQo+ICsNCj4gK2NsYXNzIElmclF1ZXN0aW9uUmVmMyhJZnJMaW5lLCBJZnJPcEhlYWRlcik6DQo+ ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIExpbmVObyk6DQo+ICsgICAgICAgIHNlbGYuUXVlc3Rp b25SZWYzID0gRUZJX0lGUl9RVUVTVElPTl9SRUYzKCkNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIu X19pbml0X18oDQo+ICsgICAgICAgICAgICBzZWxmLCBzZWxmLlF1ZXN0aW9uUmVmMy5IZWFkZXIs IEVGSV9JRlJfUVVFU1RJT05fUkVGM19PUCwNCj4gc2l6ZW9mKEVGSV9JRlJfUVVFU1RJT05fUkVG MykNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+ICsN Cj4gKyAgICBkZWYgR2V0SGVhZGVyKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5RdWVz dGlvblJlZjMuSGVhZGVyDQo+ICsNCj4gKyAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAg ICAgcmV0dXJuIHNlbGYuUXVlc3Rpb25SZWYzDQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyUXVlc3Rp b25SZWYzXzIoSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxm LCBMaW5lTm8pOg0KPiArICAgICAgICBzZWxmLlF1ZXN0aW9uUmVmM18yID0gRUZJX0lGUl9RVUVT VElPTl9SRUYzXzIoKQ0KPiArICAgICAgICBJZnJPcEhlYWRlci5fX2luaXRfXygNCj4gKyAgICAg ICAgICAgIHNlbGYsDQo+ICsgICAgICAgICAgICBzZWxmLlF1ZXN0aW9uUmVmM18yLkhlYWRlciwN Cj4gKyAgICAgICAgICAgIEVGSV9JRlJfUVVFU1RJT05fUkVGM19PUCwNCj4gKyAgICAgICAgICAg IHNpemVvZihFRklfSUZSX1FVRVNUSU9OX1JFRjNfMiksDQo+ICsgICAgICAgICkNCj4gKyAgICAg ICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0KPiArICAgICAgICBzZWxmLlF1ZXN0aW9uUmVmM18y LkRldmljZVBhdGggPSBFRklfU1RSSU5HX0lEX0lOVkFMSUQNCj4gKw0KPiArICAgIGRlZiBTZXRE ZXZpY2VQYXRoKHNlbGYsIERldmljZVBhdGgpOg0KPiArICAgICAgICBzZWxmLlF1ZXN0aW9uUmVm M18yLkRldmljZVBhdGggPSBEZXZpY2VQYXRoDQo+ICsNCj4gKyAgICBkZWYgR2V0SGVhZGVyKHNl bGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5RdWVzdGlvblJlZjNfMi5IZWFkZXINCj4gKw0K PiArICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5RdWVzdGlv blJlZjNfMg0KPiArDQo+ICsNCj4gK2NsYXNzIElmclF1ZXN0aW9uUmVmM18zKElmckxpbmUsIElm ck9wSGVhZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gKyAgICAg ICAgc2VsZi5RdWVzdGlvblJlZjNfMyA9IEVGSV9JRlJfUVVFU1RJT05fUkVGM18zKCkNCj4gKyAg ICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oDQo+ICsgICAgICAgICAgICBzZWxmLA0KPiArICAg ICAgICAgICAgc2VsZi5RdWVzdGlvblJlZjNfMy5IZWFkZXIsDQo+ICsgICAgICAgICAgICBFRklf SUZSX1FVRVNUSU9OX1JFRjNfT1AsDQo+ICsgICAgICAgICAgICBzaXplb2YoRUZJX0lGUl9RVUVT VElPTl9SRUYzXzMpLA0KPiArICAgICAgICApDQo+ICsgICAgICAgIHNlbGYuU2V0TGluZU5vKExp bmVObykNCj4gKyAgICAgICAgc2VsZi5RdWVzdGlvblJlZjNfMy5EZXZpY2VQYXRoID0gRUZJX1NU UklOR19JRF9JTlZBTElEDQo+ICsgICAgICAgIHNlbGYuUXVlc3Rpb25SZWYzXzMuR3VpZCA9IEVG SV9HVUlEKDAsIDAsIDAsIEd1aWRBcnJheSgwLCAwLCAwLCAwLCAwLCAwLCAwLA0KPiAwKSkNCj4g Kw0KPiArICAgIGRlZiBTZXREZXZpY2VQYXRoKHNlbGYsIERldmljZVBhdGgpOg0KPiArICAgICAg ICBzZWxmLlF1ZXN0aW9uUmVmM18zLkRldmljZVBhdGggPSBEZXZpY2VQYXRoDQo+ICsNCj4gKyAg ICBkZWYgU2V0R3VpZChzZWxmLCBHdWlkKToNCj4gKyAgICAgICAgc2VsZi5RdWVzdGlvblJlZjNf My5HdWlkID0gR3VpZA0KPiArDQo+ICsgICAgZGVmIEdldEhlYWRlcihzZWxmKToNCj4gKyAgICAg ICAgcmV0dXJuIHNlbGYuUXVlc3Rpb25SZWYzXzMuSGVhZGVyDQo+ICsNCj4gKyAgICBkZWYgR2V0 SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuUXVlc3Rpb25SZWYzXzMNCj4gKw0K PiArDQo+ICtjbGFzcyBJZnJSdWxlUmVmKElmckxpbmUsIElmck9wSGVhZGVyKToNCj4gKyAgICBk ZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gKyAgICAgICAgc2VsZi5SdWxlUmVmID0gRUZJ X0lGUl9SVUxFX1JFRigpDQo+ICsgICAgICAgIElmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNl bGYuUnVsZVJlZi5IZWFkZXIsIEVGSV9JRlJfUlVMRV9SRUZfT1ApDQo+ICsgICAgICAgIHNlbGYu U2V0TGluZU5vKExpbmVObykNCj4gKyAgICAgICAgc2VsZi5SdWxlUmVmLlJ1bGVJZCA9IEVGSV9S VUxFX0lEX0lOVkFMSUQNCj4gKw0KPiArICAgIGRlZiBTZXRSdWxlSWQoc2VsZiwgUnVsZUlkKToN Cj4gKyAgICAgICAgc2VsZi5SdWxlUmVmLlJ1bGVJZCA9IFJ1bGVJZA0KPiArDQo+ICsgICAgZGVm IEdldEhlYWRlcihzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuUnVsZVJlZi5IZWFkZXIN Cj4gKw0KPiArICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5S dWxlUmVmDQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyU3RyaW5nUmVmMShJZnJMaW5lLCBJZnJPcEhl YWRlcik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIExpbmVObyk6DQo+ICsgICAgICAgIHNl bGYuU3RyaW5nUmVmMSA9IEVGSV9JRlJfU1RSSU5HX1JFRjEoKQ0KPiArICAgICAgICBJZnJPcEhl YWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLlN0cmluZ1JlZjEuSGVhZGVyLA0KPiBFRklfSUZSX1NU UklOR19SRUYxX09QKQ0KPiArICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+ICsgICAg ICAgIHNlbGYuU3RyaW5nUmVmMS5TdHJpbmdJZCA9IEVGSV9TVFJJTkdfSURfSU5WQUxJRA0KPiAr DQo+ICsgICAgZGVmIFNldFN0cmluZ0lkKHNlbGYsIFN0cmluZ0lkKToNCj4gKyAgICAgICAgc2Vs Zi5TdHJpbmdSZWYxLlN0cmluZ0lkID0gU3RyaW5nSWQNCj4gKw0KPiArICAgIGRlZiBHZXRIZWFk ZXIoc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLlN0cmluZ1JlZjEuSGVhZGVyDQo+ICsN Cj4gKyAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuU3RyaW5n UmVmMQ0KPiArDQo+ICsNCj4gK2NsYXNzIElmclN0cmluZ1JlZjIoSWZyTGluZSwgSWZyT3BIZWFk ZXIpOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiArICAgICAgICBzZWxm LlN0cmluZ1JlZjIgPSBFRklfSUZSX1NUUklOR19SRUYyKCkNCj4gKyAgICAgICAgSWZyT3BIZWFk ZXIuX19pbml0X18oc2VsZiwgc2VsZi5TdHJpbmdSZWYyLkhlYWRlciwNCj4gRUZJX0lGUl9TVFJJ TkdfUkVGMl9PUCkNCj4gKyAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0KPiArDQo+ICsg ICAgZGVmIEdldEhlYWRlcihzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuU3RyaW5nUmVm Mi5IZWFkZXINCj4gKw0KPiArICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiArICAgICAgICByZXR1 cm4gc2VsZi5TdHJpbmdSZWYyDQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyVGhpcyhJZnJMaW5lLCBJ ZnJPcEhlYWRlcik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIExpbmVObyk6DQo+ICsgICAg ICAgIHNlbGYuVGhpcyA9IEVGSV9JRlJfVEhJUygpDQo+ICsgICAgICAgIElmck9wSGVhZGVyLl9f aW5pdF9fKHNlbGYsIHNlbGYuVGhpcy5IZWFkZXIsIEVGSV9JRlJfVEhJU19PUCkNCj4gKyAgICAg ICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0KPiArDQo+ICsgICAgZGVmIEdldEhlYWRlcihzZWxm KToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuVGhpcy5IZWFkZXINCj4gKw0KPiArICAgIGRlZiBH ZXRJbmZvKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5UaGlzDQo+ICsNCj4gKw0KPiAr Y2xhc3MgSWZyU2VjdXJpdHkoSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0KPiArICAgIGRlZiBfX2lu aXRfXyhzZWxmLCBMaW5lTm8pOg0KPiArICAgICAgICBzZWxmLlNlY3VyaXR5ID0gRUZJX0lGUl9T RUNVUklUWSgpDQo+ICsgICAgICAgIElmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuU2Vj dXJpdHkuSGVhZGVyLCBFRklfSUZSX1NFQ1VSSVRZX09QKQ0KPiArICAgICAgICBzZWxmLlNldExp bmVObyhMaW5lTm8pDQo+ICsgICAgICAgIHNlbGYuU2VjdXJpdHkuUGVybWlzc2lvbnMgPSBFRklf R1VJRCgwLCAwLCAwLCBHdWlkQXJyYXkoMCwgMCwgMCwgMCwgMCwgMCwgMCwNCj4gMCkpDQo+ICsN Cj4gKyAgICBkZWYgU2V0UGVybWlzc2lvbnMoc2VsZiwgUGVybWlzc2lvbnMpOg0KPiArICAgICAg ICBzZWxmLlNlY3VyaXR5LlBlcm1pc3Npb25zID0gUGVybWlzc2lvbnMNCj4gKw0KPiArICAgIGRl ZiBHZXRIZWFkZXIoc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLlNlY3VyaXR5LkhlYWRl cg0KPiArDQo+ICsgICAgZGVmIEdldEluZm8oc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxm LlNlY3VyaXR5DQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyR2V0KElmckxpbmUsIElmck9wSGVhZGVy KToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gKyAgICAgICAgc2VsZi5H ZXQgPSBFRklfSUZSX0dFVCgpDQo+ICsgICAgICAgIElmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYs IHNlbGYuR2V0LkhlYWRlciwgRUZJX0lGUl9HRVRfT1ApDQo+ICsgICAgICAgIHNlbGYuU2V0TGlu ZU5vKExpbmVObykNCj4gKw0KPiArICAgIGRlZiBTZXRWYXJJbmZvKHNlbGYsIEJhc2VJbmZvOiBF RklfVkFSU1RPUkVfSU5GTyk6DQo+ICsgICAgICAgIHNlbGYuR2V0LlZhclN0b3JlSWQgPSBCYXNl SW5mby5WYXJTdG9yZUlkDQo+ICsgICAgICAgIHNlbGYuR2V0LlZhclN0b3JlSW5mby5WYXJOYW1l ID0gQmFzZUluZm8uSW5mby5WYXJOYW1lDQo+ICsgICAgICAgIHNlbGYuR2V0LlZhclN0b3JlSW5m by5WYXJPZmZzZXQgPSBCYXNlSW5mby5JbmZvLlZhck9mZnNldA0KPiArICAgICAgICBzZWxmLkdl dC5WYXJTdG9yZVR5cGUgPSBCYXNlSW5mby5WYXJUeXBlDQo+ICsNCj4gKyAgICBkZWYgR2V0SGVh ZGVyKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5HZXQuSGVhZGVyDQo+ICsNCj4gKyAg ICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuR2V0DQo+ICsNCj4g Kw0KPiArY2xhc3MgSWZyU2V0KElmckxpbmUsIElmck9wSGVhZGVyKToNCj4gKyAgICBkZWYgX19p bml0X18oc2VsZiwgTGluZU5vKToNCj4gKyAgICAgICAgc2VsZi5TZXQgPSBFRklfSUZSX1NFVCgp DQo+ICsgICAgICAgIElmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuU2V0LkhlYWRlciwg RUZJX0lGUl9TRVRfT1ApDQo+ICsgICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gKw0K PiArICAgIGRlZiBTZXRWYXJJbmZvKHNlbGYsIEJhc2VJbmZvOiBFRklfVkFSU1RPUkVfSU5GTyk6 DQo+ICsgICAgICAgIHNlbGYuU2V0LlZhclN0b3JlSWQgPSBCYXNlSW5mby5WYXJTdG9yZUlkDQo+ ICsgICAgICAgIHNlbGYuU2V0LlZhclN0b3JlSW5mby5WYXJOYW1lID0gQmFzZUluZm8uSW5mby5W YXJOYW1lDQo+ICsgICAgICAgIHNlbGYuU2V0LlZhclN0b3JlSW5mby5WYXJPZmZzZXQgPSBCYXNl SW5mby5JbmZvLlZhck9mZnNldA0KPiArICAgICAgICBzZWxmLlNldC5WYXJTdG9yZVR5cGUgPSBC YXNlSW5mby5WYXJUeXBlDQo+ICsNCj4gKyAgICBkZWYgR2V0SGVhZGVyKHNlbGYpOg0KPiArICAg ICAgICByZXR1cm4gc2VsZi5TZXQuSGVhZGVyDQo+ICsNCj4gKyAgICBkZWYgR2V0SW5mbyhzZWxm KToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuU2V0DQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyVHJ1 ZShJZnJMaW5lLCBJZnJPcEhlYWRlcik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIExpbmVO byk6DQo+ICsgICAgICAgIHNlbGYuVHJ1ZU9wID0gRUZJX0lGUl9UUlVFKCkNCj4gKyAgICAgICAg SWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5UcnVlT3AuSGVhZGVyLCBFRklfSUZSX1RS VUVfT1ApDQo+ICsgICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gKw0KPiArICAgIGRl ZiBHZXRIZWFkZXIoc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLlRydWVPcC5IZWFkZXIN Cj4gKw0KPiArICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5U cnVlT3ANCj4gKw0KPiArDQo+ICtjbGFzcyBJZnJGYWxzZShJZnJMaW5lLCBJZnJPcEhlYWRlcik6 DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIExpbmVObyk6DQo+ICsgICAgICAgIHNlbGYuRmFs c2VPcCA9IEVGSV9JRlJfVFJVRSgpDQo+ICsgICAgICAgIElmck9wSGVhZGVyLl9faW5pdF9fKHNl bGYsIHNlbGYuRmFsc2VPcC5IZWFkZXIsIEVGSV9JRlJfRkFMU0VfT1ApDQo+ICsgICAgICAgIHNl bGYuU2V0TGluZU5vKExpbmVObykNCj4gKw0KPiArICAgIGRlZiBHZXRIZWFkZXIoc2VsZik6DQo+ ICsgICAgICAgIHJldHVybiBzZWxmLkZhbHNlT3AuSGVhZGVyDQo+ICsNCj4gKyAgICBkZWYgR2V0 SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuRmFsc2VPcA0KPiArDQo+ICsNCj4g K2NsYXNzIElmck9uZShJZnJMaW5lLCBJZnJPcEhlYWRlcik6DQo+ICsgICAgZGVmIF9faW5pdF9f KHNlbGYsIExpbmVObyk6DQo+ICsgICAgICAgIHNlbGYuT25lID0gRUZJX0lGUl9PTkUoKQ0KPiAr ICAgICAgICBJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLk9uZS5IZWFkZXIsIEVGSV9J RlJfT05FX09QKQ0KPiArICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+ICsNCj4gKyAg ICBkZWYgR2V0SGVhZGVyKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5PbmUuSGVhZGVy DQo+ICsNCj4gKyAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYu T25lDQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyT25lcyhJZnJMaW5lLCBJZnJPcEhlYWRlcik6DQo+ ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIExpbmVObyk6DQo+ICsgICAgICAgIHNlbGYuT25lcyA9 IEVGSV9JRlJfT05FKCkNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2Vs Zi5PbmVzLkhlYWRlciwgRUZJX0lGUl9PTkVTX09QKQ0KPiArICAgICAgICBzZWxmLlNldExpbmVO byhMaW5lTm8pDQo+ICsNCj4gKyAgICBkZWYgR2V0SGVhZGVyKHNlbGYpOg0KPiArICAgICAgICBy ZXR1cm4gc2VsZi5PbmVzLkhlYWRlcg0KPiArDQo+ICsgICAgZGVmIEdldEluZm8oc2VsZik6DQo+ ICsgICAgICAgIHJldHVybiBzZWxmLk9uZXMNCj4gKw0KPiArDQo+ICtjbGFzcyBJZnJaZXJvKElm ckxpbmUsIElmck9wSGVhZGVyKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToN Cj4gKyAgICAgICAgc2VsZi5aZXJvID0gRUZJX0lGUl9aRVJPKCkNCj4gKyAgICAgICAgSWZyT3BI ZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5aZXJvLkhlYWRlciwgRUZJX0lGUl9aRVJPX09QKQ0K PiArICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+ICsNCj4gKyAgICBkZWYgR2V0SGVh ZGVyKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5aZXJvLkhlYWRlcg0KPiArDQo+ICsg ICAgZGVmIEdldEluZm8oc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLlplcm8NCj4gKw0K PiArDQo+ICtjbGFzcyBJZnJVbmRlZmluZWQoSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0KPiArICAg IGRlZiBfX2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiArICAgICAgICBzZWxmLlVuZGVmaW5lZCA9 IEVGSV9JRlJfWkVSTygpDQo+ICsgICAgICAgIElmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNl bGYuVW5kZWZpbmVkLkhlYWRlciwNCj4gRUZJX0lGUl9VTkRFRklORURfT1ApDQo+ICsgICAgICAg IHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gKw0KPiArICAgIGRlZiBHZXRIZWFkZXIoc2VsZik6 DQo+ICsgICAgICAgIHJldHVybiBzZWxmLlVuZGVmaW5lZC5IZWFkZXINCj4gKw0KPiArICAgIGRl ZiBHZXRJbmZvKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5VbmRlZmluZWQNCj4gKw0K PiArDQo+ICtjbGFzcyBJZnJWZXJzaW9uKElmckxpbmUsIElmck9wSGVhZGVyKToNCj4gKyAgICBk ZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gKyAgICAgICAgc2VsZi5WZXJzaW9uID0gRUZJ X0lGUl9WRVJTSU9OKCkNCj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2Vs Zi5WZXJzaW9uLkhlYWRlciwgRUZJX0lGUl9WRVJTSU9OX09QKQ0KPiArICAgICAgICBzZWxmLlNl dExpbmVObyhMaW5lTm8pDQo+ICsNCj4gKyAgICBkZWYgR2V0SGVhZGVyKHNlbGYpOg0KPiArICAg ICAgICByZXR1cm4gc2VsZi5WZXJzaW9uLkhlYWRlcg0KPiArDQo+ICsgICAgZGVmIEdldEluZm8o c2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLlZlcnNpb24NCj4gKw0KPiArDQo+ICtjbGFz cyBJZnJMZW5ndGgoSWZyTGluZSwgSWZyT3BIZWFkZXIpOg0KPiArICAgIGRlZiBfX2luaXRfXyhz ZWxmLCBMaW5lTm8pOg0KPiArICAgICAgICBzZWxmLkxlbmd0aCA9IEVGSV9JRlJfTEVOR1RIKCkN Cj4gKyAgICAgICAgSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5MZW5ndGguSGVhZGVy LCBFRklfSUZSX0xFTkdUSF9PUCkNCj4gKyAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0K PiArDQo+ICsgICAgZGVmIEdldEluZm8oc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLkxl bmd0aA0KPiArDQo+ICsNCj4gK2NsYXNzIElmckJpdFdpc2VOb3QoSWZyTGluZSwgSWZyT3BIZWFk ZXIpOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiArICAgICAgICBzZWxm LkJpdFdpc2VOb3QgPSBFRklfSUZSX0JJVFdJU0VfTk9UKCkNCj4gKyAgICAgICAgSWZyT3BIZWFk ZXIuX19pbml0X18oc2VsZiwgc2VsZi5CaXRXaXNlTm90LkhlYWRlciwNCj4gRUZJX0lGUl9CSVRX SVNFX05PVF9PUCkNCj4gKyAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0KPiArDQo+ICsg ICAgZGVmIEdldEluZm8oc2VsZik6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLkJpdFdpc2VOb3QN Cj4gKw0KPiArDQo+ICtjbGFzcyBFeHByZXNzaW9uSW5mbzoNCj4gKyAgICBkZWYgX19pbml0X18o c2VsZik6DQo+ICsgICAgICAgIHNlbGYuUm9vdExldmVsID0gMA0KPiArICAgICAgICBzZWxmLkV4 cE9wQ291bnQgPSAwDQo+IGRpZmYgLS1naXQgYS9CYXNlVG9vbHMvU291cmNlL1B5dGhvbi9WZnJD b21waWxlci9JZnJQcmVQcm9jZXNzLnB5DQo+IGIvQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vVmZy Q29tcGlsZXIvSWZyUHJlUHJvY2Vzcy5weQ0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRl eCAwMDAwMDAwMDAwLi5jZDc4YjMxZDlkDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvQmFzZVRv b2xzL1NvdXJjZS9QeXRob24vVmZyQ29tcGlsZXIvSWZyUHJlUHJvY2Vzcy5weQ0KPiBAQCAtMCww ICsxLDI2MiBAQA0KPiArIyMgQGZpbGUNCj4gKyMgVGhlIGZpbGUgaXMgdXNlZCB0byBwcmVwcm9j ZXNzIHRoZSBzb3VyY2UgZmlsZS4NCj4gKyMNCj4gKyMgQ29weXJpZ2h0IChjKSAyMDIyLSwgSW50 ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArIyBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiArIyMNCj4gKw0KPiAraW1wb3J0 IHJlDQo+ICtpbXBvcnQgb3MNCj4gK2ltcG9ydCBqc29uDQo+ICtpbXBvcnQgQ29tbW9uLkVka0xv Z2dlciBhcyBFZGtMb2dnZXINCj4gK2Zyb20gYW50bHI0IGltcG9ydCAqDQo+ICtmcm9tIHBhdGhs aWIgaW1wb3J0IFBhdGgNCj4gK2Zyb20gQ29tbW9uLkJ1aWxkVG9vbEVycm9yIGltcG9ydCAqDQo+ ICtmcm9tIFZmckNvbXBpbGVyLklmckN0eXBlcyBpbXBvcnQgRUZJX0dVSUQNCj4gK2Zyb20gVmZy Q29tcGlsZXIuSWZyVXRpbGl0eSBpbXBvcnQgVmZyVmFyRGF0YVR5cGVEQg0KPiArZnJvbSBDb21t b24uTG9uZ0ZpbGVQYXRoU3VwcG9ydCBpbXBvcnQgTG9uZ0ZpbGVQYXRoDQo+ICtmcm9tIFZmckNv bXBpbGVyLklmckNvbW1vbiBpbXBvcnQgR1VJRF9CVUZGRVJfVkFMVUVfTEVODQo+ICsNCj4gKw0K PiArY2xhc3MgT3B0aW9uczoNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZik6DQo+ICsgICAgICAg ICMgb3Blbi9jbG9zZSBWZnJDb21waWxlcg0KPiArICAgICAgICBzZWxmLkxhbnVjaFZmckNvbXBp bGVyID0gRmFsc2UNCj4gKyAgICAgICAgc2VsZi5Nb2R1bGVOYW1lID0gTm9uZQ0KPiArICAgICAg ICBzZWxmLldvcmtzcGFjZSA9IE5vbmUNCj4gKyAgICAgICAgc2VsZi5WRlJQUCA9IE5vbmUNCj4g KyAgICAgICAgc2VsZi5JbnB1dEZpbGVOYW1lID0gTm9uZQ0KPiArICAgICAgICBzZWxmLkJhc2VG aWxlTmFtZSA9IE5vbmUNCj4gKyAgICAgICAgc2VsZi5JbmNsdWRlUGF0aHMgPSBbXQ0KPiArICAg ICAgICBzZWxmLk91dHB1dERpcmVjdG9yeSA9IE5vbmUNCj4gKyAgICAgICAgc2VsZi5EZWJ1Z0Rp cmVjdG9yeSA9IE5vbmUNCj4gKyAgICAgICAgc2VsZi5DcmVhdGVSZWNvcmRMaXN0RmlsZSA9IFRy dWUNCj4gKyAgICAgICAgc2VsZi5SZWNvcmRMaXN0RmlsZU5hbWUgPSBOb25lDQo+ICsgICAgICAg IHNlbGYuQ3JlYXRlSWZyUGtnRmlsZSA9IFRydWUNCj4gKyAgICAgICAgc2VsZi5Qa2dPdXRwdXRG aWxlTmFtZSA9IE5vbmUNCj4gKyAgICAgICAgc2VsZi5DT3V0cHV0RmlsZU5hbWUgPSBOb25lDQo+ ICsgICAgICAgIHNlbGYuU2tpcENQcmVwcm9jZXNzb3IgPSBUcnVlDQo+ICsgICAgICAgIHNlbGYu Q1ByZXByb2Nlc3Nvck9wdGlvbnMgPSBOb25lDQo+ICsgICAgICAgIHNlbGYuQ1Byb2Nlc3NlZFZm ckZpbGVOYW1lID0gTm9uZQ0KPiArICAgICAgICBzZWxmLkhhc092ZXJyaWRlQ2xhc3NHdWlkID0g RmFsc2UNCj4gKyAgICAgICAgc2VsZi5PdmVycmlkZUNsYXNzR3VpZCA9IE5vbmUNCj4gKyAgICAg ICAgc2VsZi5XYXJuaW5nQXNFcnJvciA9IEZhbHNlDQo+ICsgICAgICAgIHNlbGYuQXV0b0RlZmF1 bHQgPSBGYWxzZQ0KPiArICAgICAgICBzZWxmLkNoZWNrRGVmYXVsdCA9IEZhbHNlDQo+ICsgICAg ICAgIHNlbGYuQ3JlYXRlWWFtbEZpbGUgPSBUcnVlDQo+ICsgICAgICAgIHNlbGYuWWFtbEZpbGVO YW1lID0gTm9uZQ0KPiArICAgICAgICBzZWxmLkNyZWF0ZUpzb25GaWxlID0gVHJ1ZQ0KPiArICAg ICAgICBzZWxmLkpzb25GaWxlTmFtZSA9IE5vbmUNCj4gKyAgICAgICAgc2VsZi5VbmlTdHJEZWZG aWxlTmFtZSA9IE5vbmUNCj4gKyAgICAgICAgc2VsZi5ZYW1sT3V0cHV0RmlsZU5hbWUgPSBOb25l DQo+ICsgICAgICAgIHNlbGYuVW5pU3RyRGlzcGxheUZpbGUgPSBOb25lDQo+ICsNCj4gKw0KPiAr Y2xhc3MgS1Y6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIEtleSwgVmFsdWUpIC0+IE5vbmU6 DQo+ICsgICAgICAgIHNlbGYuS2V5ID0gS2V5DQo+ICsgICAgICAgIHNlbGYuVmFsdWUgPSBWYWx1 ZQ0KPiArDQo+ICsNCj4gK2NsYXNzIFZhbHVlREI6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYs IFByZVZhbCwgUG9zdFZhbCkgLT4gTm9uZToNCj4gKyAgICAgICAgc2VsZi5QcmVWYWwgPSBQcmVW YWwNCj4gKyAgICAgICAgc2VsZi5Qb3N0VmFsID0gUG9zdFZhbA0KPiArDQo+ICsNCj4gK2NsYXNz IFByZVByb2Nlc3NEQjoNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgT3B0aW9uczogT3B0aW9u cykgLT4gTm9uZToNCj4gKyAgICAgICAgc2VsZi5PcHRpb25zID0gT3B0aW9ucw0KPiArICAgICAg ICBzZWxmLlZmclZhckRhdGFUeXBlREIgPSBWZnJWYXJEYXRhVHlwZURCKCkNCj4gKyAgICAgICAg c2VsZi5QcmVwcm9jZXNzZWQgPSBGYWxzZQ0KPiArDQo+ICsgICAgZGVmIFByZXByb2Nlc3Moc2Vs Zik6DQo+ICsgICAgICAgIHNlbGYuSGVhZGVyRmlsZXMgPSBzZWxmLl9FeHRyYWN0SGVhZGVyRmls ZXMoKQ0KPiArICAgICAgICAjIFJlYWQgVW5pIHN0cmluZyB0b2tlbi9pZCBkZWZpbml0aW9ucyBp biBTdHJEZWYuaCBmaWxlDQo+ICsgICAgICAgIHNlbGYuVW5pRGljdCwgc2VsZi5VbmlEaXNQbGF5 RGljdCA9IHNlbGYuX0dldFVuaURpY3RzKCkNCj4gKyAgICAgICAgIyBSZWFkIGRlZmluaXRpb25z IGluIHZmciBmaWxlDQo+ICsgICAgICAgIHNlbGYuVmZyRGljdCA9IHNlbGYuX0dldFZmckRpY3Rz KCkNCj4gKyAgICAgICAgc2VsZi5QcmVwcm9jZXNzZWQgPSBUcnVlDQo+ICsNCj4gKyAgICBkZWYg VHJhbnNWYWx1ZShzZWxmLCBWYWx1ZSk6DQo+ICsgICAgICAgIGlmIHR5cGUoVmFsdWUpID09IEVG SV9HVUlEOg0KPiArICAgICAgICAgICAgcmV0dXJuIFZhbHVlDQo+ICsgICAgICAgIGVsc2U6DQo+ ICsgICAgICAgICAgICBTdHJWYWx1ZSA9IHN0cihWYWx1ZSkNCj4gKyAgICAgICAgICAgIGlmIHNl bGYuX0lzRGlnaXQoU3RyVmFsdWUpOg0KPiArICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9U b0RpZ2l0KFN0clZhbHVlKQ0KPiArICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAg ICBHdWlkTGlzdCA9IHJlLmZpbmRhbGwociIweFswLTlhLWZBLUZdKyIsIFN0clZhbHVlKQ0KPiAr ICAgICAgICAgICAgICAgIEd1aWRMaXN0ID0gW2ludChudW0sIDE2KSBmb3IgbnVtIGluIEd1aWRM aXN0XQ0KPiArICAgICAgICAgICAgICAgIEd1aWQgPSBFRklfR1VJRCgpDQo+ICsgICAgICAgICAg ICAgICAgR3VpZC5mcm9tX2xpc3QoR3VpZExpc3QpDQo+ICsgICAgICAgICAgICAgICAgcmV0dXJu IEd1aWQNCj4gKw0KPiArICAgIGRlZiBSZXZlcnRWYWx1ZShzZWxmLCBWYWx1ZSkgLT4gc3RyOg0K PiArICAgICAgICBpZiB0eXBlKFZhbHVlKSA9PSBFRklfR1VJRDoNCj4gKyAgICAgICAgICAgIHJl dHVybiBWYWx1ZS50b19zdHJpbmcoKQ0KPiArICAgICAgICBlbGlmICgiMHgiIGluIFZhbHVlKSBv ciAoIjBYIiBpbiBWYWx1ZSk6DQo+ICsgICAgICAgICAgICBTdHJWYWx1ZSA9IGhleChWYWx1ZSkN Cj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIFN0clZhbHVlID0gc3RyKFZhbHVlKQ0K PiArICAgICAgICByZXR1cm4gU3RyVmFsdWUNCj4gKw0KPiArICAgIGRlZiBEaXNwbGF5VmFsdWUo c2VsZiwgVmFsdWUsIEZsYWc9RmFsc2UpOg0KPiArICAgICAgICBpZiB0eXBlKFZhbHVlKSA9PSBF RklfR1VJRDoNCj4gKyAgICAgICAgICAgIHJldHVybiBWYWx1ZS50b19zdHJpbmcoKQ0KPiArICAg ICAgICBTdHJWYWx1ZSA9IHN0cihWYWx1ZSkNCj4gKyAgICAgICAgaWYgc2VsZi5fSXNEaWdpdChT dHJWYWx1ZSk6DQo+ICsgICAgICAgICAgICBpZiBGbGFnOg0KPiArICAgICAgICAgICAgICAgIHJl dHVybiBmIlNUUklOR19UT0tFTih7U3RyVmFsdWV9KSINCj4gKyAgICAgICAgICAgIHJldHVybiBp bnQoU3RyVmFsdWUsIDApDQo+ICsgICAgICAgIHJldHVybiBTdHJWYWx1ZQ0KPiArDQo+ICsgICAg ZGVmIEdldEtleShzZWxmLCBWYWx1ZSk6DQo+ICsgICAgICAgIGlmIHR5cGUoVmFsdWUpID09IEVG SV9HVUlEOg0KPiArICAgICAgICAgICAgVmFsdWUgPSBWYWx1ZS50b19zdHJpbmcoKQ0KPiArICAg ICAgICAgICAgaWYgVmFsdWUgaW4gc2VsZi5VbmlEaWN0Og0KPiArICAgICAgICAgICAgICAgIHJl dHVybiBzZWxmLlVuaURpY3RbVmFsdWVdDQo+ICsgICAgICAgICAgICBpZiBWYWx1ZSBpbiBzZWxm LlZmckRpY3Q6DQo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuVmZyRGljdFtWYWx1ZV0N Cj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIFZhbHVlID0gIjB4JTA0eCIgJSBWYWx1 ZQ0KPiArICAgICAgICAgICAgVmFsdWUgPSBWYWx1ZVs6Ml0gKyBWYWx1ZVsyOl0udXBwZXIoKQ0K PiArICAgICAgICAgICAgaWYgVmFsdWUgaW4gc2VsZi5VbmlEaWN0Og0KPiArICAgICAgICAgICAg ICAgIHJldHVybiBzZWxmLlVuaURpY3RbVmFsdWVdDQo+ICsgICAgICAgIHJldHVybiBWYWx1ZQ0K PiArDQo+ICsgICAgZGVmIF9FeHRyYWN0SGVhZGVyRmlsZXMoc2VsZik6DQo+ICsgICAgICAgIEZp bGVOYW1lID0gc2VsZi5PcHRpb25zLklucHV0RmlsZU5hbWUNCj4gKyAgICAgICAgSGVhZGVyRmls ZXMgPSBbXQ0KPiArICAgICAgICB0cnk6DQo+ICsgICAgICAgICAgICB3aXRoIG9wZW4oTG9uZ0Zp bGVQYXRoKEZpbGVOYW1lKSwgbW9kZT0iciIpIGFzIGZGaWxlOg0KPiArICAgICAgICAgICAgICAg IGxpbmVzID0gZkZpbGUucmVhZGxpbmVzKCkNCj4gKyAgICAgICAgICAgIGZvciBsaW5lIGluIGxp bmVzOg0KPiArICAgICAgICAgICAgICAgIGlmICIjaW5jbHVkZSIgaW4gbGluZToNCj4gKyAgICAg ICAgICAgICAgICAgICAgaWYgbGluZS5maW5kKCI8IikgIT0gLTE6DQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICBIZWFkZXJGaWxlID0gbGluZVtsaW5lLmZpbmQoIjwiKSArIDEgOiBsaW5lLmZp bmQoIj4iKV0NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlckZpbGVzLmFwcGVuZChI ZWFkZXJGaWxlKQ0KPiArICAgICAgICAgICAgICAgICAgICBlbGlmIGxpbmUuZmluZCgnIicpICE9 IC0xOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgbCA9IGxpbmUuZmluZCgnIicpICsgMQ0K PiArICAgICAgICAgICAgICAgICAgICAgICAgciA9IGwgKyBsaW5lW2w6XS5maW5kKCciJykNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlckZpbGUgPSBsaW5lW2w6cl0NCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgIEhlYWRlckZpbGVzLmFwcGVuZChIZWFkZXJGaWxlKQ0KPiArICAg ICAgICBleGNlcHQgRXhjZXB0aW9uOg0KPiArICAgICAgICAgICAgRWRrTG9nZ2VyLmVycm9yKA0K PiArICAgICAgICAgICAgICAgICJWZnJDb21waWxlciIsIEZJTEVfUEFSU0VfRkFJTFVSRSwgIkZp bGUgcGFyc2UgZmFpbGVkIGZvciAlcyIgJQ0KPiBGaWxlTmFtZSwgTm9uZQ0KPiArICAgICAgICAg ICAgKQ0KPiArICAgICAgICByZXR1cm4gSGVhZGVyRmlsZXMNCj4gKw0KPiArICAgIGRlZiBfR2V0 VW5pRGljdHMoc2VsZik6DQo+ICsgICAgICAgIGlmIHNlbGYuT3B0aW9ucy5VbmlTdHJEZWZGaWxl TmFtZSBpcyBOb25lOg0KPiArICAgICAgICAgICAgc2VsZi5PcHRpb25zLlVuaVN0ckRlZkZpbGVO YW1lID0gc3RyKA0KPiArICAgICAgICAgICAgICAgIFBhdGgoc2VsZi5PcHRpb25zLkRlYnVnRGly ZWN0b3J5KSAvDQo+IGYie3NlbGYuT3B0aW9ucy5Nb2R1bGVOYW1lfVN0ckRlZnMuaCINCj4gKyAg ICAgICAgICAgICkNCj4gKyAgICAgICAgIyBmaW5kIFVuaUZpbGUNCj4gKyAgICAgICAgRmlsZU5h bWUgPSBzZWxmLk9wdGlvbnMuVW5pU3RyRGVmRmlsZU5hbWUNCj4gKyAgICAgICAgVW5pRGljdCA9 IHt9DQo+ICsgICAgICAgIHNlbGYuX1BhcnNlRGVmaW5lcyhGaWxlTmFtZSwgVW5pRGljdCkNCj4g KyAgICAgICAgRGlzUGxheVVuaURpY3QgPSB7fQ0KPiArICAgICAgICBpZiBzZWxmLk9wdGlvbnMu VW5pU3RyRGlzcGxheUZpbGUgaXMgTm9uZToNCj4gKyAgICAgICAgICAgIHNlbGYuT3B0aW9ucy5V bmlTdHJEaXNwbGF5RmlsZSA9IHN0cihQYXRoKHNlbGYuT3B0aW9ucy5PdXRwdXREaXJlY3Rvcnkp DQo+IC8gZiJ7c2VsZi5PcHRpb25zLk1vZHVsZU5hbWV9VW5pLmpzb24iKQ0KPiArICAgICAgICAj IFN0cmluZyBUb2tlbiA6IERpc1BsYXkgU3RyaW5nfQ0KPiArICAgICAgICBpZiBvcy5wYXRoLmV4 aXN0cyhzZWxmLk9wdGlvbnMuVW5pU3RyRGlzcGxheUZpbGUpOg0KPiArICAgICAgICAgICAgd2l0 aCBvcGVuKHNlbGYuT3B0aW9ucy5VbmlTdHJEaXNwbGF5RmlsZSkgYXMgZjoNCj4gKyAgICAgICAg ICAgICAgICBEaWN0ID0ganNvbi5sb2FkKGYpDQo+ICsgICAgICAgICAgICBEaWN0ID0gRGljdFsi T3JkZXJlZFN0cmluZ1Rlc3REaWN0Il1bImVuLVVTIl0NCj4gKyAgICAgICAgICAgIGZvciBLZXkg aW4gRGljdC5rZXlzKCk6DQo+ICsgICAgICAgICAgICAgICAgZm9yIFVuaUtleSBpbiBVbmlEaWN0 LmtleXMoKToNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgS2V5ID09IFVuaURpY3RbVW5pS2V5 XToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIERpc1BsYXlVbmlEaWN0W1VuaUtleV0gPSBE aWN0W0tleV0NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrDQo+ICsNCj4gKyAgICAg ICAgcmV0dXJuIFVuaURpY3QsIERpc1BsYXlVbmlEaWN0DQo+ICsNCj4gKw0KPiArICAgIGRlZiBf R2V0VmZyRGljdHMoc2VsZik6DQo+ICsgICAgICAgIFZmckRpY3QgPSB7fQ0KPiArICAgICAgICBp ZiBzZWxmLk9wdGlvbnMuTGFudWNoVmZyQ29tcGlsZXI6DQo+ICsgICAgICAgICAgICBGaWxlTmFt ZSA9IHNlbGYuT3B0aW9ucy5JbnB1dEZpbGVOYW1lDQo+ICsgICAgICAgICAgICBzZWxmLl9QYXJz ZURlZmluZXMoRmlsZU5hbWUsIFZmckRpY3QsIFRydWUpDQo+ICsgICAgICAgIHJldHVybiBWZnJE aWN0DQo+ICsNCj4gKyAgICBkZWYgX0lzRGlnaXQoc2VsZiwgU3RyaW5nKToNCj4gKyAgICAgICAg cmV0dXJuIFN0cmluZy5pc2RpZ2l0KCkgb3IgKA0KPiArICAgICAgICAgICAgU3RyaW5nLnN0YXJ0 c3dpdGgoKCIweCIsICIwWCIpKQ0KPiArICAgICAgICAgICAgYW5kIGFsbChjaGFyIGluICIwMTIz NDU2Nzg5QUJDREVGYWJjZGVmIiBmb3IgY2hhciBpbiBTdHJpbmdbMjpdKQ0KPiArICAgICAgICAp DQo+ICsNCj4gKyAgICBkZWYgX1RvRGlnaXQoc2VsZiwgU3RyaW5nKToNCj4gKyAgICAgICAgaWYg U3RyaW5nLnN0YXJ0c3dpdGgoKCIweCIsICIwWCIpKToNCj4gKyAgICAgICAgICAgIHJldHVybiBp bnQoU3RyaW5nLCAxNikNCj4gKyAgICAgICAgcmV0dXJuIGludChTdHJpbmcpDQo+ICsNCj4gKyAg ICBkZWYgX1BhcnNlRGVmaW5lcyhzZWxmLCBGaWxlTmFtZSwgRGljdCwgSXNWZnJEZWY9RmFsc2Up Og0KPiArICAgICAgICBQYXR0ZXJuID0gciIjZGVmaW5lXHMrKFx3KylccysoLio/KSg/Oig/PCFc XClcbnwkKSINCj4gKyAgICAgICAgd2l0aCBvcGVuKEZpbGVOYW1lKSBhcyBGaWxlOg0KPiArICAg ICAgICAgICAgQ29udGVudCA9IEZpbGUucmVhZCgpDQo+ICsNCj4gKyAgICAgICAgTWF0Y2hlcyA9 IHJlLmZpbmRhbGwoUGF0dGVybiwgQ29udGVudCwgcmUuRE9UQUxMKQ0KPiArICAgICAgICBmb3Ig TWF0Y2ggaW4gTWF0Y2hlczoNCj4gKyAgICAgICAgICAgIEtleSA9IE1hdGNoWzBdDQo+ICsgICAg ICAgICAgICBWYWx1ZSA9IHJlLnN1YihyIlxzKyIsICIgIiwgTWF0Y2hbMV0ucmVwbGFjZSgiXFxc biIsICIiKS5zdHJpcCgpKQ0KPiArICAgICAgICAgICAgU3ViRGVmaW5lTWF0Y2hlcyA9IHJlLmZp bmRhbGwoDQo+ICsgICAgICAgICAgICAgICAgciIjZGVmaW5lXHMrKFx3KylccysoLio/KSg/Oig/ PCFcXClcbnwkKSIsIFZhbHVlLCByZS5ET1RBTEwNCj4gKyAgICAgICAgICAgICkNCj4gKyAgICAg ICAgICAgIGlmIFN1YkRlZmluZU1hdGNoZXM6DQo+ICsgICAgICAgICAgICAgICAgZm9yIFN1Yk1h dGNoIGluIFN1YkRlZmluZU1hdGNoZXM6DQo+ICsgICAgICAgICAgICAgICAgICAgIFN1YktleSA9 IFN1Yk1hdGNoWzBdDQo+ICsgICAgICAgICAgICAgICAgICAgIFN1YlZhbHVlID0gcmUuc3ViKHIi XHMrIiwgIiAiLCBTdWJNYXRjaFsxXS5yZXBsYWNlKCJcXFxuIiwNCj4gIiIpLnN0cmlwKCkpDQo+ ICsgICAgICAgICAgICAgICAgICAgIGlmIFN1YlZhbHVlLmZpbmQoIi8vIikgIT0gLTE6DQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICBTdWJWYWx1ZSA9IFN1YlZhbHVlLnNwbGl0KCIvLyIpWzBd LnN0cmlwKCkNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBpZiBTdWJWYWx1ZS5maW5kKCJ7 IikgIT0gLTE6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBHdWlkTGlzdCA9IHJlLmZpbmRh bGwociIweFswLTlhLWZBLUZdKyIsIFN1YlZhbHVlKQ0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgR3VpZExpc3QgPSBbaW50KG51bSwgMTYpIGZvciBudW0gaW4gR3VpZExpc3RdDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICBTdWJWYWx1ZSA9IEVGSV9HVUlEKCkNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIGlmIGxlbihHdWlkTGlzdCkgPT0gR1VJRF9CVUZGRVJfVkFMVUVfTEVOOg0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YlZhbHVlLmZyb21fbGlzdChHdWlkTGlz dCkNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLk9wdGlvbnMuTGFudWNoVmZy Q29tcGlsZXI6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAjIEdVSUQgaXMgdW5pcXVlLCB0 byB0cmFuc2ZlciBHVUlEIFBhcnNlZCBWYWx1ZSAtPiBHVUlEDQo+IERlZmluZWQgS2V5Lg0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgaWYgSXNWZnJEZWY6DQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIyBTYXZlIGRlZiBpbmZvIGZvciB5YW1sIGdlbmVyYXRpb24NCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBEaWN0W1N1YktleV0gPSBTdWJWYWx1ZQ0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICMgdHJhbmZlciB2YWx1ZSB0byBrZXkgZm9yIHlhbWwgZ2Vu ZXJhdGlvbg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHR5cGUoU3ViVmFsdWUp ID09IEVGSV9HVUlEOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaWN0W1N1 YlZhbHVlLnRvX3N0cmluZygpXSA9IFN1YktleQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ZWxzZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJWYWx1ZSA9ICgNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKFN1YlZhbHVlKQ0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiB0eXBlKFN1YlZhbHVlKSAhPSBFRklfR1VJRA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIFN1YlZhbHVlLnRvX3N0cmluZygp DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERpY3RbU3ViVmFsdWVdID0gU3ViS2V5DQo+ICsgICAgICAgICAgICBlbHNlOg0K PiArICAgICAgICAgICAgICAgIGlmIFZhbHVlLmZpbmQoIi8vIikgIT0gLTE6DQo+ICsgICAgICAg ICAgICAgICAgICAgIFZhbHVlID0gVmFsdWUuc3BsaXQoIi8vIilbMF0uc3RyaXAoKQ0KPiArICAg ICAgICAgICAgICAgIGlmIFZhbHVlLmZpbmQoInsiKSAhPSAtMToNCj4gKyAgICAgICAgICAgICAg ICAgICAgR3VpZExpc3QgPSByZS5maW5kYWxsKHIiMHhbMC05YS1mQS1GXSsiLCBWYWx1ZSkNCj4g KyAgICAgICAgICAgICAgICAgICAgR3VpZExpc3QgPSBbaW50KG51bSwgMTYpIGZvciBudW0gaW4g R3VpZExpc3RdDQo+ICsgICAgICAgICAgICAgICAgICAgIFZhbHVlID0gRUZJX0dVSUQoKQ0KPiAr ICAgICAgICAgICAgICAgICAgICBpZiBsZW4oR3VpZExpc3QpID09IEdVSURfQlVGRkVSX1ZBTFVF X0xFTjoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlLmZyb21fbGlzdChHdWlkTGlz dCkNCj4gKw0KPiArICAgICAgICAgICAgICAgIGlmIHNlbGYuT3B0aW9ucy5MYW51Y2hWZnJDb21w aWxlcjoNCj4gKyAgICAgICAgICAgICAgICAgICAgIyBHVUlEIGlzIHVuaXF1ZSwgdG8gdHJhbnNm ZXIgR1VJRCBQYXJzZWQgVmFsdWUgLT4gR1VJRCBEZWZpbmVkDQo+IEtleS4NCj4gKyAgICAgICAg ICAgICAgICAgICAgaWYgSXNWZnJEZWY6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBEaWN0 W0tleV0gPSBWYWx1ZQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgaWYgdHlwZShWYWx1ZSkg PT0gRUZJX0dVSUQ6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGljdFtWYWx1ZS50 b19zdHJpbmcoKV0gPSBLZXkNCj4gKyAgICAgICAgICAgICAgICAgICAgZWxzZToNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgIFZhbHVlID0gc3RyKFZhbHVlKSBpZiB0eXBlKFZhbHVlKSAhPSBF RklfR1VJRCBlbHNlDQo+IFZhbHVlLnRvX3N0cmluZygpDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICBEaWN0W1ZhbHVlXSA9IEtleQ0KPiArDQo+ICsgICAgZGVmIF9GaW5kSW5jbHVkZUhlYWRl ckZpbGUoc2VsZiwgSW5jbHVkZVBhdGhzLCBGaWxlKToNCj4gKyAgICAgICAgRmlsZUxpc3QgPSBb XQ0KPiArICAgICAgICBOYW1lID0gRmlsZS5zcGxpdCgiLyIpWy0xXQ0KPiArICAgICAgICBmb3Ig U3RhcnQgaW4gSW5jbHVkZVBhdGhzOg0KPiArICAgICAgICAgICAgTWF0Y2hlcyA9IGxpc3QoUGF0 aChTdGFydCkucmdsb2IoTmFtZSkpDQo+ICsgICAgICAgICAgICBmb3IgTWF0Y2hGaWxlIGluIE1h dGNoZXM6DQo+ICsgICAgICAgICAgICAgICAgRmlsZUxpc3QuYXBwZW5kKHN0cihNYXRjaEZpbGUp KQ0KPiArICAgICAgICByZXR1cm4gbGlzdChzZXQoRmlsZUxpc3QpKQ0KPiBkaWZmIC0tZ2l0IGEv QmFzZVRvb2xzL1NvdXJjZS9QeXRob24vVmZyQ29tcGlsZXIvSWZyVHJlZS5weQ0KPiBiL0Jhc2VU b29scy9Tb3VyY2UvUHl0aG9uL1ZmckNvbXBpbGVyL0lmclRyZWUucHkNCj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMC4uNjQ5MTU3NjFjOA0KPiAtLS0gL2Rldi9udWxs DQo+ICsrKyBiL0Jhc2VUb29scy9Tb3VyY2UvUHl0aG9uL1ZmckNvbXBpbGVyL0lmclRyZWUucHkN Cj4gQEAgLTAsMCArMSwxNzM0IEBADQo+ICsjIyBAZmlsZQ0KPiArIyBUaGUgZmlsZSBpcyB1c2Vk IHRvIGRlZmluZSB2ZnIgdHJlZSBzdHJ1Y3R1cmUgYW5kIHJlbGF0ZWQgb3BlcmF0aW9ucy4NCj4g KyMNCj4gKyMgQ29weXJpZ2h0IChjKSAyMDIyLSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdo dHMgcmVzZXJ2ZWQuPEJSPg0KPiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xh dXNlLVBhdGVudA0KPiArIyMNCj4gKw0KPiAraW1wb3J0IENvbW1vbi5FZGtMb2dnZXIgYXMgRWRr TG9nZ2VyDQo+ICtmcm9tIENvbW1vbi5CdWlsZFRvb2xFcnJvciBpbXBvcnQgKg0KPiArZnJvbSBW ZnJDb21waWxlci5JZnJDdHlwZXMgaW1wb3J0ICoNCj4gK2Zyb20gVmZyQ29tcGlsZXIuSWZyRm9y bVBrZyBpbXBvcnQgKg0KPiArZnJvbSBWZnJDb21waWxlci5JZnJVdGlsaXR5IGltcG9ydCBnVmZy QnVmZmVyQ29uZmlnDQo+ICtmcm9tIFZmckNvbXBpbGVyLklmclByZVByb2Nlc3MgaW1wb3J0IFBy ZVByb2Nlc3NEQiwgT3B0aW9ucw0KPiArDQo+ICsNCj4gK1ZGUl9DT01QSUxFUl9WRVJTSU9OID0g IjIuMDEgKFVFRkkgMi40KSINCj4gK0JVSUxEX1ZFUlNJT04gPSAiRGV2ZWxvcGVyIEJ1aWxkIGJh c2VkIG9uIFJldmlzaW9uOiBVbmtub3duIg0KPiArQllURVNfUFJFX0xJTkUgPSAweDEwDQo+ICsN Cj4gKw0KPiArIyBJZnIgcmVsYXRlZCBJbmZvIC0+IGN0eXBlcyBvYmoNCj4gKyMgY29uZGl0aW9u YWwgSW5mbw0KPiArIyBTdHJ1Y3R1cmUgSW5mbw0KPiArY2xhc3MgSWZyVHJlZU5vZGU6DQo+ICsg ICAgZGVmIF9faW5pdF9fKHNlbGYsIE9wQ29kZT1Ob25lLCBEYXRhPU5vbmUsIEJ1ZmZlcj1Ob25l LA0KPiBQb3NpdGlvbj1Ob25lKToNCj4gKyAgICAgICAgc2VsZi5PcENvZGUgPSBPcENvZGUNCj4g KyAgICAgICAgc2VsZi5EYXRhID0gRGF0YQ0KPiArICAgICAgICBzZWxmLkJ1ZmZlciA9IEJ1ZmZl cg0KPiArICAgICAgICBzZWxmLlBvc2l0aW9uID0gUG9zaXRpb24NCj4gKyAgICAgICAgc2VsZi5D b25kaXRpb24gPSBOb25lDQo+ICsgICAgICAgIHNlbGYuRXhwcmVzc2lvbiA9IE5vbmUNCj4gKyAg ICAgICAgc2VsZi5EaWN0ID0ge30NCj4gKyAgICAgICAgc2VsZi5PZmZzZXQgPSBOb25lDQo+ICsg ICAgICAgIHNlbGYuUGFyZW50ID0gTm9uZQ0KPiArICAgICAgICBzZWxmLkNoaWxkID0gW10NCj4g KyAgICAgICAgc2VsZi5MZXZlbCA9IC0xDQo+ICsNCj4gKyAgICBkZWYgaGFzQ29uZGl0aW9uKHNl bGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5Db25kaXRpb24NCj4gKw0KPiArICAgIGRlZiBo YXNDaGlsZChzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuQ2hpbGQgPT0gW10NCj4gKw0K PiArICAgIGRlZiBpc0ZpbmFsQ2hpbGQoc2VsZik6DQo+ICsgICAgICAgIFBhclRyZWUgPSBzZWxm LlBhcmVudA0KPiArICAgICAgICBpZiBQYXJUcmVlIGFuZCBQYXJUcmVlLkNoaWxkWy0xXSA9PSBz ZWxmOg0KPiArICAgICAgICAgICAgcmV0dXJuIFRydWUNCj4gKyAgICAgICAgcmV0dXJuIEZhbHNl DQo+ICsNCj4gKyAgICBkZWYgaW5zZXJ0Q2hpbGQoc2VsZiwgTmV3Tm9kZSwgcG9zOiBpbnQgPSBO b25lKToNCj4gKyAgICAgICAgaWYgTmV3Tm9kZSBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAg IGlmIG5vdCBwb3M6DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5DaGlsZC5hcHBlbmQoTmV3Tm9k ZSkNCj4gKyAgICAgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5DaGlsZC5p bnNlcnQocG9zLCBOZXdOb2RlKQ0KPiArDQo+ICsgICAgICAgICAgICBOZXdOb2RlLlBhcmVudCA9 IHNlbGYNCj4gKw0KPiArICAgIGRlZiBpbnNlcnRSZWwoc2VsZiwgbmV3Tm9kZSk6DQo+ICsgICAg ICAgIGlmIHNlbGYuUGFyZW50Og0KPiArICAgICAgICAgICAgcGFyZW50VHJlZSA9IHNlbGYuUGFy ZW50DQo+ICsgICAgICAgICAgICBuZXdfaW5kZXggPSBwYXJlbnRUcmVlLkNoaWxkLmluZGV4KHNl bGYpICsgMQ0KPiArICAgICAgICAgICAgcGFyZW50VHJlZS5DaGlsZC5pbnNlcnQobmV3X2luZGV4 LCBuZXdOb2RlKQ0KPiArICAgICAgICBzZWxmLk5leHRSZWwgPSBuZXdOb2RlDQo+ICsgICAgICAg IG5ld05vZGUuTGFzdFJlbCA9IHNlbGYNCj4gKw0KPiArICAgIGRlZiBkZWxldGVOb2RlKHNlbGYs IGRlbGV0ZWtleTogc3RyKToNCj4gKyAgICAgICAgRmluZFN0YXR1cywgRGVsZXRlVHJlZSA9IHNl bGYuRmluZE5vZGUoZGVsZXRla2V5KQ0KPiArICAgICAgICBpZiBGaW5kU3RhdHVzOg0KPiArICAg ICAgICAgICAgcGFyZW50VHJlZSA9IERlbGV0ZVRyZWUuUGFyZW50DQo+ICsgICAgICAgICAgICBs YXN0VHJlZSA9IERlbGV0ZVRyZWUuTGFzdFJlbA0KPiArICAgICAgICAgICAgbmV4dFRyZWUgPSBE ZWxldGVUcmVlLk5leHRSZWwNCj4gKyAgICAgICAgICAgIGlmIHBhcmVudFRyZWU6DQo+ICsgICAg ICAgICAgICAgICAgaW5kZXggPSBwYXJlbnRUcmVlLkNoaWxkLmluZGV4KERlbGV0ZVRyZWUpDQo+ ICsgICAgICAgICAgICAgICAgZGVsIHBhcmVudFRyZWUuQ2hpbGRbaW5kZXhdDQo+ICsgICAgICAg ICAgICBpZiBsYXN0VHJlZSBhbmQgbmV4dFRyZWU6DQo+ICsgICAgICAgICAgICAgICAgbGFzdFRy ZWUuTmV4dFJlbCA9IG5leHRUcmVlDQo+ICsgICAgICAgICAgICAgICAgbmV4dFRyZWUuTGFzdFJl bCA9IGxhc3RUcmVlDQo+ICsgICAgICAgICAgICBlbGlmIGxhc3RUcmVlOg0KPiArICAgICAgICAg ICAgICAgIGxhc3RUcmVlLk5leHRSZWwgPSBOb25lDQo+ICsgICAgICAgICAgICBlbGlmIG5leHRU cmVlOg0KPiArICAgICAgICAgICAgICAgIG5leHRUcmVlLkxhc3RSZWwgPSBOb25lDQo+ICsgICAg ICAgICAgICByZXR1cm4gRGVsZXRlVHJlZQ0KPiArICAgICAgICByZXR1cm4gTm9uZQ0KPiArDQo+ ICsNCj4gK0V4cE9wcyA9IFsNCj4gKyAgICBFRklfSUZSX0RVUF9PUCwNCj4gKyAgICBFRklfSUZS X0VRX0lEX1ZBTF9PUCwNCj4gKyAgICBFRklfSUZSX1FVRVNUSU9OX1JFRjFfT1AsDQo+ICsgICAg RUZJX0lGUl9FUV9JRF9WQUxfT1AsDQo+ICsgICAgRUZJX0lGUl9FUV9JRF9JRF9PUCwNCj4gKyAg ICBFRklfSUZSX0VRX0lEX1ZBTF9MSVNUX09QLA0KPiArICAgIEVGSV9JRlJfUlVMRV9SRUZfT1As DQo+ICsgICAgRUZJX0lGUl9TVFJJTkdfUkVGMV9PUCwNCj4gKyAgICBFRklfSUZSX1RISVNfT1As DQo+ICsgICAgRUZJX0lGUl9TRUNVUklUWV9PUCwNCj4gKyAgICBFRklfSUZSX0dFVF9PUCwNCj4g KyAgICBFRklfSUZSX1RSVUVfT1AsDQo+ICsgICAgRUZJX0lGUl9GQUxTRV9PUCwNCj4gKyAgICBF RklfSUZSX09ORV9PUCwNCj4gKyAgICBFRklfSUZSX09ORVNfT1AsDQo+ICsgICAgRUZJX0lGUl9a RVJPX09QLA0KPiArICAgIEVGSV9JRlJfVU5ERUZJTkVEX09QLA0KPiArICAgIEVGSV9JRlJfVkVS U0lPTl9PUCwNCj4gKyAgICBFRklfSUZSX1VJTlQ2NF9PUCwNCj4gKyAgICBFRklfSUZSX1FVRVNU SU9OX1JFRjJfT1AsDQo+ICsgICAgRUZJX0lGUl9RVUVTVElPTl9SRUYzX09QLA0KPiArICAgIEVG SV9JRlJfU0VUX09QLA0KPiArICAgIEVGSV9JRlJfREVGQVVMVFNUT1JFX09QLA0KPiArICAgIEVG SV9JRlJfT1JfT1AsDQo+ICtdDQo+ICsNCj4gK0RlZmF1bHREaWN0TGlzdCA9IFtdDQo+ICsNCj4g Kw0KPiArY2xhc3MgUmVDb3JkTm9kZShTdHJ1Y3R1cmUpOg0KPiArICAgIGRlZiBfX2luaXRfXyhz ZWxmLCBSZWNvcmQsIExpbmVObyk6DQo+ICsgICAgICAgIHNlbGYuUmVjb3JkID0gUmVjb3JkDQo+ ICsgICAgICAgIHNlbGYuTGluZU5vID0gTGluZU5vDQo+ICsNCj4gKw0KPiArY2xhc3MgSWZyVHJl ZToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgUm9vdDogSWZyVHJlZU5vZGUsIFByZVByb2Nl c3NEQjogUHJlUHJvY2Vzc0RCLCBPcHRpb25zOg0KPiBPcHRpb25zKSAtPiBOb25lOg0KPiArICAg ICAgICBzZWxmLlJvb3QgPSBSb290DQo+ICsgICAgICAgIHNlbGYuT3B0aW9ucyA9IE9wdGlvbnMN Cj4gKyAgICAgICAgc2VsZi5QcmVQcm9jZXNzREIgPSBQcmVQcm9jZXNzREINCj4gKw0KPiArICAg IGRlZiBHZW5CaW5hcnlGaWxlcyhzZWxmKToNCj4gKyAgICAgICAgUmVjb3JkTGluZXMgPSBbXQ0K PiArICAgICAgICBIcGtGaWxlID0gc2VsZi5PcHRpb25zLlBrZ091dHB1dEZpbGVOYW1lDQo+ICsg ICAgICAgIENGaWxlID0gc2VsZi5PcHRpb25zLkNPdXRwdXRGaWxlTmFtZQ0KPiArICAgICAgICBM c3RGaWxlID0gc2VsZi5PcHRpb25zLlJlY29yZExpc3RGaWxlTmFtZQ0KPiArICAgICAgICBpZiBz ZWxmLk9wdGlvbnMuQ3JlYXRlSWZyUGtnRmlsZToNCj4gKyAgICAgICAgICAgICMgR2VuQmluYXJ5 DQo+ICsgICAgICAgICAgICBQa2dIZHIgPSBnRm9ybVBrZy5CdWlsZFBrZ0hkcigpDQo+ICsgICAg ICAgICAgICB0cnk6DQo+ICsgICAgICAgICAgICAgICAgd2l0aCBvcGVuKEhwa0ZpbGUsICJ3YiIp IGFzIEhwazoNCj4gKyAgICAgICAgICAgICAgICAgICAgSHBrLndyaXRlKGdGb3JtUGtnLlN0cnVj dFRvU3RyZWFtKFBrZ0hkcikpDQo+ICsgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6 DQo+ICsgICAgICAgICAgICAgICAgRWRrTG9nZ2VyLmVycm9yKA0KPiArICAgICAgICAgICAgICAg ICAgICAiVmZyQ29tcGlsZXIiLCBGSUxFX09QRU5fRkFJTFVSRSwgZiJGaWxlIG9wZW4gZmFpbGVk IGZvcg0KPiB7SHBrRmlsZX06IHtlfSINCj4gKyAgICAgICAgICAgICAgICApDQo+ICsNCj4gKyAg ICAgICAgICAgICMgR2VuQ0ZpbGUNCj4gKyAgICAgICAgICAgIHRyeToNCj4gKyAgICAgICAgICAg ICAgICB3aXRoIG9wZW4oQ0ZpbGUsICJ3IikgYXMgQzoNCj4gKyAgICAgICAgICAgICAgICAgICAg Qy53cml0ZSgiLy9cbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIEMud3JpdGUoIi8vIiArICIg IiArICJETyBOT1QgRURJVCAtLSBhdXRvLWdlbmVyYXRlZCBmaWxlXG4iKQ0KPiArICAgICAgICAg ICAgICAgICAgICBDLndyaXRlKCIvL1xuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgQy53cml0 ZSgiLy8iICsgIiAiICsgIlRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgdGhlIHZmcmNvbXBpbGVy DQo+IHV0aWxpdHlcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIEMud3JpdGUoIi8vXG5cbiIp DQo+ICsgICAgICAgICAgICAgICAgICAgIEJhc2VOYW1lID0gInVuc2lnbmVkIGNoYXIgIiArIHNl bGYuT3B0aW9ucy5CYXNlRmlsZU5hbWUgKw0KPiAiQmluW10gPSB7XG4iDQo+ICsgICAgICAgICAg ICAgICAgICAgIEMud3JpdGUoQmFzZU5hbWUpDQo+ICsgICAgICAgICAgICAgICAgICAgIEMud3Jp dGUoIiAgLy8gQVJSQVkgTEVOR1RIXG5cbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIFBrZ0xl bmd0aCA9IFBrZ0hkci5MZW5ndGggKyBzaXplb2YoY191aW50MzIpDQo+ICsgICAgICAgICAgICAg ICAgICAgIGZvciBCIGluIFBrZ0xlbmd0aC50b19ieXRlcyg0LCBieXRlb3JkZXI9ImxpdHRsZSIs IHNpZ25lZD1UcnVlKToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIEMud3JpdGUoIiAgMHgl MDJYLCIgJSBCKQ0KPiArICAgICAgICAgICAgICAgICAgICBDLndyaXRlKCJcblxuIikNCj4gKyAg ICAgICAgICAgICAgICAgICAgQy53cml0ZSgiICAvLyBQQUNLQUdFIEhFQURFUlxuXG4iKQ0KPiAr ICAgICAgICAgICAgICAgICAgICBIZWFkZXJCdWZmZXIgPSBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVh bShQa2dIZHIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGZvciBCIGluIEhlYWRlckJ1ZmZlcjoN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIEMud3JpdGUoIiAgMHglMDJYLCIgJSBCKQ0KPiAr ICAgICAgICAgICAgICAgICAgICBDLndyaXRlKCJcblxuIikNCj4gKyAgICAgICAgICAgICAgICAg ICAgQy53cml0ZSgiICAvLyIgKyAiICIgKyAiUEFDS0FHRSBEQVRBXG5cbiIpDQo+ICsgICAgICAg ICAgICAgICAgICAgIHNlbGYuSW5kZXggPSAwDQo+ICsgICAgICAgICAgICBleGNlcHQgRXhjZXB0 aW9uIGFzIGU6DQo+ICsgICAgICAgICAgICAgICAgRWRrTG9nZ2VyLmVycm9yKA0KPiArICAgICAg ICAgICAgICAgICAgICAiVmZyQ29tcGlsZXIiLCBGSUxFX09QRU5fRkFJTFVSRSwgZiJGaWxlIG9w ZW4gZmFpbGVkIGZvciB7Q0ZpbGV9Og0KPiB7ZX0iDQo+ICsgICAgICAgICAgICAgICAgKQ0KPiAr DQo+ICsgICAgICAgIGlmIHNlbGYuT3B0aW9ucy5DcmVhdGVSZWNvcmRMaXN0RmlsZToNCj4gKyAg ICAgICAgICAgICMgR2VuUmVjb3JkTGlzdA0KPiArICAgICAgICAgICAgdHJ5Og0KPiArICAgICAg ICAgICAgICAgIHdpdGggb3BlbihMc3RGaWxlLCAidyIpIGFzIExzdDoNCj4gKyAgICAgICAgICAg ICAgICAgICAgTHN0LndyaXRlKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZiIvL1xuLy8g IFZGUiBjb21waWxlciB2ZXJzaW9uIHtWRlJfQ09NUElMRVJfVkVSU0lPTn0NCj4ge0JVSUxEX1ZF UlNJT059XG4vL1xuIg0KPiArICAgICAgICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICBl eGNlcHQgRXhjZXB0aW9uIGFzIGU6DQo+ICsgICAgICAgICAgICAgICAgRWRrTG9nZ2VyLmVycm9y KA0KPiArICAgICAgICAgICAgICAgICAgICAiVmZyQ29tcGlsZXIiLCBGSUxFX09QRU5fRkFJTFVS RSwgZiJGaWxlIG9wZW4gZmFpbGVkIGZvcg0KPiB7THN0RmlsZX06IHtlfSINCj4gKyAgICAgICAg ICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgc2VsZi5fR2VuQmluYXJ5RmlsZXNEZnMoc2VsZi5S b290LCBIcGtGaWxlLCBDRmlsZSwgUmVjb3JkTGluZXMpDQo+ICsNCj4gKyAgICAgICAgaWYgc2Vs Zi5PcHRpb25zLkNyZWF0ZUlmclBrZ0ZpbGU6DQo+ICsgICAgICAgICAgICAjIEdlbkNGaWxlDQo+ ICsgICAgICAgICAgICB0cnk6DQo+ICsgICAgICAgICAgICAgICAgd2l0aCBvcGVuKENGaWxlLCAi YSIpIGFzIEM6DQo+ICsgICAgICAgICAgICAgICAgICAgIEMud3JpdGUoIlxufTtcbiIpDQo+ICsg ICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6DQo+ICsgICAgICAgICAgICAgICAgRWRr TG9nZ2VyLmVycm9yKA0KPiArICAgICAgICAgICAgICAgICAgICAiVmZyQ29tcGlsZXIiLCBGSUxF X1dSSVRFX0ZBSUxVUkUsIGYiRmlsZSB3cml0ZSBmYWlsZWQgZm9yIHtDRmlsZX06DQo+IHtlfSIs IE5vbmUNCj4gKyAgICAgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgaWYgc2VsZi5PcHRp b25zLkNyZWF0ZVJlY29yZExpc3RGaWxlOg0KPiArICAgICAgICAgICAgIyBHZW5SZWNvcmRMaXN0 DQo+ICsgICAgICAgICAgICBJbkZpbGVMaW5lcyA9IFtdDQo+ICsgICAgICAgICAgICB0cnk6DQo+ ICsgICAgICAgICAgICAgICAgd2l0aCBvcGVuKHNlbGYuT3B0aW9ucy5DUHJvY2Vzc2VkVmZyRmls ZU5hbWUsICJyIikgYXMgSW46DQo+ICsgICAgICAgICAgICAgICAgICAgIGZvciBMaW5lIGluIElu Og0KPiArICAgICAgICAgICAgICAgICAgICAgICAgSW5GaWxlTGluZXMuYXBwZW5kKExpbmUpDQo+ ICsgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6DQo+ICsgICAgICAgICAgICAgICAg RWRrTG9nZ2VyLmVycm9yKA0KPiArICAgICAgICAgICAgICAgICAgICAiVmZyQ29tcGlsZXIiLA0K PiArICAgICAgICAgICAgICAgICAgICBGSUxFX09QRU5fRkFJTFVSRSwNCj4gKyAgICAgICAgICAg ICAgICAgICAgZiJGaWxlIG9wZW4gZmFpbGVkIGZvciB7c2VsZi5PcHRpb25zLkNQcm9jZXNzZWRW ZnJGaWxlTmFtZX06IHtlfSIsDQo+ICsgICAgICAgICAgICAgICAgICAgIE5vbmUsDQo+ICsgICAg ICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgdHJ5Og0KPiArICAgICAgICAgICAgICAgIHdp dGggb3BlbihMc3RGaWxlLCAiYSIpIGFzIExzdDoNCj4gKyAgICAgICAgICAgICAgICAgICAgSW5z ZXJ0ZWRMaW5lID0gMA0KPiArICAgICAgICAgICAgICAgICAgICBmb3IgUmVjb3JkTGluZSBpbiBS ZWNvcmRMaW5lczoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIEluRmlsZUxpbmVzLmluc2Vy dChSZWNvcmRMaW5lLkxpbmVObyArIEluc2VydGVkTGluZSwNCj4gUmVjb3JkTGluZS5SZWNvcmQp DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBJbnNlcnRlZExpbmUgKz0gMQ0KPiArICAgICAg ICAgICAgICAgICAgICBmb3IgTGluZSBpbiBJbkZpbGVMaW5lczoNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgIExzdC53cml0ZShmIntMaW5lfSIpDQo+ICsgICAgICAgICAgICAgICAgICAgIExz dC53cml0ZSgiLy9cbi8vICBBbGwgT3Bjb2RlIFJlY29yZCBMaXN0XG4vL1xuIikNCj4gKyAgICAg ICAgICAgICAgICAgICAgZm9yIFJlY29yZExpbmUgaW4gUmVjb3JkTGluZXM6DQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICBMc3Qud3JpdGUoZiJ7UmVjb3JkTGluZS5SZWNvcmR9IikNCj4gKyAg ICAgICAgICAgICAgICAgICAgTHN0LndyaXRlKGYiXG5Ub3RhbCBTaXplIG9mIGFsbCByZWNvcmQg aXMge2dGb3JtUGtnLk9mZnNldDowPjh4fSIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGdWZnJW YXJEYXRhVHlwZURCLkR1bXAoTHN0KQ0KPiArICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh cyBlOg0KPiArICAgICAgICAgICAgICAgIEVka0xvZ2dlci5lcnJvcigNCj4gKyAgICAgICAgICAg ICAgICAgICAgIlZmckNvbXBpbGVyIiwgRklMRV9XUklURV9GQUlMVVJFLCBmIkZpbGUgd3JpdGUg ZmFpbGVkIGZvcg0KPiB7THN0RmlsZX06IHtlfSIsIE5vbmUNCj4gKyAgICAgICAgICAgICAgICAp DQo+ICsNCj4gKyAgICBkZWYgX0dlbkJpbmFyeUZpbGVzRGZzKHNlbGYsIFJvb3QsIEhwa0ZpbGUs IENGaWxlLCBSZWNvcmRMaW5lcyk6DQo+ICsgICAgICAgIGlmIFJvb3QgaXMgTm9uZToNCj4gKyAg ICAgICAgICAgIHJldHVybg0KPiArDQo+ICsgICAgICAgIGlmIFJvb3QuT3BDb2RlIGlzIG5vdCBO b25lOg0KPiArICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgaW4gRXhwT3BzOg0KPiArICAgICAg ICAgICAgICAgICMgVGhlIERhdGEgaXMgbGlrZWx5IHRvIGJlIG1vZGlmaWVkLCBzbyBnZW5lcmF0 ZSBidWZmZXIgaGVyZQ0KPiArICAgICAgICAgICAgICAgIFJvb3QuQnVmZmVyID0gZ0Zvcm1Qa2cu U3RydWN0VG9TdHJlYW0oUm9vdC5EYXRhLkdldEluZm8oKSkNCj4gKyAgICAgICAgICAgIGlmIFJv b3QuQnVmZmVyIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgICAgIGlmIHNlbGYuT3B0aW9u cy5DcmVhdGVJZnJQa2dGaWxlIGFuZCBzZWxmLk9wdGlvbnMuQ3JlYXRlUmVjb3JkTGlzdEZpbGU6 DQo+ICsgICAgICAgICAgICAgICAgICAgIHRyeToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg IHdpdGggb3BlbihIcGtGaWxlLCAiYWIiKSBhcyBIcGs6DQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSHBrLndyaXRlKFJvb3QuQnVmZmVyKQ0KPiArICAgICAgICAgICAgICAgICAgICBl eGNlcHQgRXhjZXB0aW9uOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgRWRrTG9nZ2VyLmVy cm9yKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICJWZnJDb21waWxlciIsDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRklMRV9XUklURV9GQUlMVVJFLA0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJGaWxlIHdyaXRlIGZhaWxlZCBmb3IgJXMiICUNCj4gKHNl bGYuT3B0aW9ucy5Qa2dPdXRwdXRGaWxlTmFtZSksDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICApDQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgdHJ5Og0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgd2l0aCBvcGVuKENGaWxlLCAiYSIpIGFzIEM6DQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGluZUJ1ZmZlciA9ICIiDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZm9yIGkgaW4gcmFuZ2UoMCwgbGVuKFJvb3QuQnVmZmVyKSk6DQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuSW5kZXggKz0gMQ0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBEYXRhID0gUm9vdC5CdWZmZXJbaV0NCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgc2VsZi5JbmRleCAlIEJZVEVTX1BSRV9MSU5FID09IDE6DQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDLndyaXRlKCIgICIpDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEMud3JpdGUoIjB4JTAyWCIgJSBEYXRhKQ0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLkluZGV4ICE9IGdGb3JtUGtn LlBrZ0xlbmd0aDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNl bGYuSW5kZXggJSBCWVRFU19QUkVfTElORSA9PSAwOg0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEMud3JpdGUoIixcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEMud3JpdGUoIiwgICIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGluZUJ1ZmZlciArPSBmIntSb290LkJ1ZmZlcltpXTowPjJYfSAiDQo+ICsNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWNvcmQgPSBmIj57Um9vdC5PZmZzZXQ6MD44 WH06IHtMaW5lQnVmZmVyfVxuIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpbmVO byA9IFJvb3QuRGF0YS5HZXRMaW5lTm8oKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJlY29yZExpbmVzLmFwcGVuZChSZUNvcmROb2RlKFJlY29yZCwgTGluZU5vKSkNCj4gKyAgICAg ICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgIEVka0xvZ2dlci5lcnJvcigNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVmZy Q29tcGlsZXIiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZJTEVfV1JJVEVfRkFJ TFVSRSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmlsZSB3cml0ZSBmYWlsZWQg Zm9yICVzIiAlIChzZWxmLk9wdGlvbnMuQ091dHB1dEZpbGVOYW1lKSwNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICAgICAgICAgIGlmIHNlbGYuT3B0aW9ucy5D cmVhdGVJZnJQa2dGaWxlIGFuZCBub3QNCj4gc2VsZi5PcHRpb25zLkNyZWF0ZVJlY29yZExpc3RG aWxlOg0KPiArICAgICAgICAgICAgICAgICAgICB0cnk6DQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICB3aXRoIG9wZW4oSHBrRmlsZSwgImFiIikgYXMgSHBrOg0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEhway53cml0ZShSb290LkJ1ZmZlcikNCj4gKyAgICAgICAgICAgICAgICAg ICAgZXhjZXB0IEV4Y2VwdGlvbjoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIEVka0xvZ2dl ci5lcnJvcigNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVmZyQ29tcGlsZXIiLA0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZJTEVfV1JJVEVfRkFJTFVSRSwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiRmlsZSB3cml0ZSBmYWlsZWQgZm9yICVzIiAlDQo+ IChzZWxmLk9wdGlvbnMuUGtnT3V0cHV0RmlsZU5hbWUpLA0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAgIHRyeToNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIHdpdGggb3BlbihDRmlsZSwgImEiKSBhcyBDOg0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKDAsIGxlbihSb290LkJ1ZmZlcikpOg0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkluZGV4ICs9IDENCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9IFJvb3QuQnVmZmVyW2ldDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuSW5kZXggJSBCWVRFU19QUkVfTElO RSA9PSAxOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQy53cml0ZSgi ICAiKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDLndyaXRlKCIweCUwMlgi ICUgRGF0YSkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5JbmRl eCAhPSBnRm9ybVBrZy5Qa2dMZW5ndGg6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiBzZWxmLkluZGV4ICUgQllURVNfUFJFX0xJTkUgPT0gMDoNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDLndyaXRlKCIsXG4iKQ0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDLndyaXRlKCIsICAiKQ0KPiArICAgICAgICAgICAgICAg ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBF ZGtMb2dnZXIuZXJyb3IoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlZmckNvbXBp bGVyIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBGSUxFX1dSSVRFX0ZBSUxVUkUs DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgZiJGaWxlIHdyaXRlIGZhaWxlZCBmb3Ig e3NlbGYuT3B0aW9ucy5DT3V0cHV0RmlsZU5hbWV9IDoge2V9IiwNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLk9wdGlvbnMu Q3JlYXRlSWZyUGtnRmlsZSBhbmQNCj4gc2VsZi5PcHRpb25zLkNyZWF0ZVJlY29yZExpc3RGaWxl Og0KPiArICAgICAgICAgICAgICAgICAgICBMaW5lQnVmZmVyID0gIiINCj4gKyAgICAgICAgICAg ICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgbGVuKFJvb3QuQnVmZmVyKSk6DQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICBMaW5lQnVmZmVyICs9IGYie1Jvb3QuQnVmZmVyW2ldOjA+Mlh9ICIN Cj4gKyAgICAgICAgICAgICAgICAgICAgUmVjb3JkID0gZiI+e1Jvb3QuT2Zmc2V0OjA+OFh9OiB7 TGluZUJ1ZmZlcn1cbiINCj4gKyAgICAgICAgICAgICAgICAgICAgTGluZU5vID0gUm9vdC5EYXRh LkdldExpbmVObygpDQo+ICsgICAgICAgICAgICAgICAgICAgIFJlY29yZExpbmVzLmFwcGVuZChS ZUNvcmROb2RlKFJlY29yZCwgTGluZU5vKSkNCj4gKw0KPiArICAgICAgICBpZiBSb290LkNoaWxk ICE9IFtdOg0KPiArICAgICAgICAgICAgZm9yIENoaWxkTm9kZSBpbiBSb290LkNoaWxkOg0KPiAr ICAgICAgICAgICAgICAgIHNlbGYuX0dlbkJpbmFyeUZpbGVzRGZzKENoaWxkTm9kZSwgSHBrRmls ZSwgQ0ZpbGUsIFJlY29yZExpbmVzKQ0KPiArDQo+ICsgICAgZGVmIEdlblJlY29yZExpc3RGaWxl KHNlbGYpOg0KPiArICAgICAgICBGaWxlTmFtZSA9IHNlbGYuT3B0aW9ucy5SZWNvcmRMaXN0Rmls ZU5hbWUNCj4gKyAgICAgICAgUmVjb3JkTGluZXMgPSBbXQ0KPiArICAgICAgICBzZWxmLl9HZW5S ZWNvcmRMaXN0RmlsZURmcyhzZWxmLlJvb3QsIFJlY29yZExpbmVzKQ0KPiArDQo+ICsgICAgICAg IHRyeToNCj4gKyAgICAgICAgICAgIE91dCA9IG9wZW4oRmlsZU5hbWUsICJ3IikNCj4gKyAgICAg ICAgZXhjZXB0IEV4Y2VwdGlvbjoNCj4gKyAgICAgICAgICAgIEVka0xvZ2dlci5lcnJvcigNCj4g KyAgICAgICAgICAgICAgICAiVmZyQ29tcGlsZXIiLCBGSUxFX09QRU5fRkFJTFVSRSwgIkZpbGUg b3BlbiBmYWlsZWQgZm9yICVzIiAlDQo+IEZpbGVOYW1lLCBOb25lDQo+ICsgICAgICAgICAgICAp DQo+ICsNCj4gKyAgICAgICAgdHJ5Og0KPiArICAgICAgICAgICAgT3V0LndyaXRlKCIvL1xuLy8g IEFsbCBPcGNvZGUgUmVjb3JkIExpc3Rcbi8vXG4iKQ0KPiArICAgICAgICAgICAgZm9yIFJlY29y ZExpbmUgaW4gUmVjb3JkTGluZXM6DQo+ICsgICAgICAgICAgICAgICAgT3V0LndyaXRlKGYie1Jl Y29yZExpbmV9XG4iKQ0KPiArICAgICAgICAgICAgT3V0LndyaXRlKGYiXG5Ub3RhbCBTaXplIG9m IGFsbCByZWNvcmQgaXMge2dGb3JtUGtnLk9mZnNldDowPjh4fSIpDQo+ICsgICAgICAgICAgICBn VmZyVmFyRGF0YVR5cGVEQi5EdW1wKE91dCkNCj4gKyAgICAgICAgICAgIE91dC5jbG9zZSgpDQo+ ICsgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246DQo+ICsgICAgICAgICAgICBFZGtMb2dnZXIuZXJy b3IoDQo+ICsgICAgICAgICAgICAgICAgIlZmckNvbXBpbGVyIiwgRklMRV9XUklURV9GQUlMVVJF LCAiRmlsZSB3cml0ZSBmYWlsZWQgZm9yICVzIiAlDQo+IEZpbGVOYW1lDQo+ICsgICAgICAgICAg ICApDQo+ICsNCj4gKyAgICBkZWYgX0dlblJlY29yZExpc3RGaWxlRGZzKHNlbGYsIFJvb3QsIFJl Y29yZExpbmVzKToNCj4gKyAgICAgICAgaWYgUm9vdCBpcyBOb25lOg0KPiArICAgICAgICAgICAg cmV0dXJuDQo+ICsgICAgICAgIGlmIFJvb3QuT3BDb2RlIGlzIG5vdCBOb25lOg0KPiArICAgICAg ICAgICAgTGluZUJ1ZmZlciA9ICIiDQo+ICsgICAgICAgICAgICBpZiBSb290LkJ1ZmZlciBpcyBu b3QgTm9uZToNCj4gKyAgICAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCBsZW4oUm9vdC5C dWZmZXIpKToNCj4gKyAgICAgICAgICAgICAgICAgICAgTGluZUJ1ZmZlciArPSBmIntSb290LkJ1 ZmZlcltpXTowPjJYfSAiDQo+ICsgICAgICAgICAgICAgICAgUmVjb3JkID0gZiI+e1Jvb3QuT2Zm c2V0OjA+OFh9OiB7TGluZUJ1ZmZlcn1cbiINCj4gKyAgICAgICAgICAgICAgICBSZWNvcmRMaW5l cy5hcHBlbmQoUmVjb3JkKQ0KPiArDQo+ICsgICAgICAgIGlmIFJvb3QuQ2hpbGQgIT0gW106DQo+ ICsgICAgICAgICAgICBmb3IgQ2hpbGROb2RlIGluIFJvb3QuQ2hpbGQ6DQo+ICsgICAgICAgICAg ICAgICAgc2VsZi5fR2VuUmVjb3JkTGlzdEZpbGVEZnMoQ2hpbGROb2RlLCBSZWNvcmRMaW5lcykN Cj4gKw0KPiArICAgIGRlZiBEdW1wSnNvbihzZWxmKToNCj4gKyAgICAgICAgRmlsZU5hbWUgPSBz ZWxmLk9wdGlvbnMuSnNvbkZpbGVOYW1lDQo+ICsgICAgICAgIHRyeToNCj4gKyAgICAgICAgICAg IHdpdGggb3BlbihGaWxlTmFtZSwgInciKSBhcyBmOg0KPiArICAgICAgICAgICAgICAgIGYud3Jp dGUoIntcbiIpDQo+ICsgICAgICAgICAgICAgICAgZi53cml0ZSgnICAiRGF0YVN0cnVjdCIgOiB7 XG4nKQ0KPiArICAgICAgICAgICAgICAgIHBOb2RlID0gZ1ZmclZhckRhdGFUeXBlREIuR2V0RGF0 YVR5cGVMaXN0KCkNCj4gKyAgICAgICAgICAgICAgICB3aGlsZSBwTm9kZSBpcyBub3QgTm9uZToN Cj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmJyAgICAie3BOb2RlLlR5cGVOYW1lfSIg OiBbXG4nKQ0KPiArICAgICAgICAgICAgICAgICAgICBGTm9kZSA9IHBOb2RlLk1lbWJlcnMNCj4g KyAgICAgICAgICAgICAgICAgICAgd2hpbGUgRk5vZGUgaXMgbm90IE5vbmU6DQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICBmLndyaXRlKCJ7XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgZi53cml0ZShmJyAgIk5hbWUiOiAie0ZOb2RlLkZpZWxkTmFtZX0iLFxuJykNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgIGlmIEZOb2RlLkFycmF5TnVtID4gMDoNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmLndyaXRlKGYnICAiVHlwZSI6DQo+ICJ7Rk5vZGUuRmllbGRUeXBl LlR5cGVOYW1lfVt7Rk5vZGUuQXJyYXlOdW19XSIsXG4nKQ0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYnICAi VHlwZSI6ICJ7Rk5vZGUuRmllbGRUeXBlLlR5cGVOYW1lfSIsXG4nKQ0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgZi53cml0ZShmJyAgIk9mZnNldCI6IHtGTm9kZS5PZmZzZXR9XG4nKQ0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgaWYgRk5vZGUuTmV4dCBpcyBOb25lOg0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoIn1cbiIpDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoIn0s IFxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIEZOb2RlID0gRk5vZGUuTmV4dA0KPiAr ICAgICAgICAgICAgICAgICAgICBpZiBwTm9kZS5OZXh0IGlzIE5vbmU6DQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICBmLndyaXRlKCIgICAgXVxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAg ZWxzZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoIiAgICBdLFxuIikNCj4g KyAgICAgICAgICAgICAgICAgICAgcE5vZGUgPSBwTm9kZS5OZXh0DQo+ICsgICAgICAgICAgICAg ICAgZi53cml0ZSgiICB9LFxuIikNCj4gKyAgICAgICAgICAgICAgICBmLndyaXRlKCcgICJEYXRh U3RydWN0QXR0cmlidXRlIjoge1xuJykNCj4gKyAgICAgICAgICAgICAgICBwTm9kZSA9IGdWZnJW YXJEYXRhVHlwZURCLkdldERhdGFUeXBlTGlzdCgpDQo+ICsgICAgICAgICAgICAgICAgd2hpbGUg cE5vZGUgaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZicgICAg IntwTm9kZS5UeXBlTmFtZX0iOiB7e1xuJykNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0 ZShmJyAgIkFsaWdubWVudCI6IHtwTm9kZS5BbGlnbn0sXG4nKQ0KPiArICAgICAgICAgICAgICAg ICAgICBmLndyaXRlKGYnICAiVG90YWxTaXplIjoge3BOb2RlLlRvdGFsU2l6ZX1cbicpDQo+ICsg ICAgICAgICAgICAgICAgICAgIGlmIHBOb2RlLk5leHQgaXMgTm9uZToNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIGYud3JpdGUoIn1cbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGVsc2U6 DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCJ9LFxuIikNCj4gKyAgICAgICAg ICAgICAgICAgICAgcE5vZGUgPSBwTm9kZS5OZXh0DQo+ICsgICAgICAgICAgICAgICAgZi53cml0 ZSgiICB9LFxuIikNCj4gKyAgICAgICAgICAgICAgICBmLndyaXRlKCcgICJWYXJEZWZpbmUiIDog e1xuJykNCj4gKyAgICAgICAgICAgICAgICBwVnNOb2RlID0gZ1ZmckRhdGFTdG9yYWdlLkdldEJ1 ZmZlclZhclN0b3JlTGlzdCgpDQo+ICsgICAgICAgICAgICAgICAgd2hpbGUgcFZzTm9kZSBpcyBu b3QgTm9uZToNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmJyAgICAie3BWc05vZGUu VmFyU3RvcmVOYW1lfSI6IHt7XG4nKQ0KPiArICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYn ICAiVHlwZSI6ICJ7cFZzTm9kZS5EYXRhVHlwZS5UeXBlTmFtZX0iLFxuJykNCj4gKyAgICAgICAg ICAgICAgICAgICAgZi53cml0ZShmJyAgIkF0dHJpYnV0ZXMiOiB7cFZzTm9kZS5BdHRyaWJ1dGVz fSxcbicpDQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZicgICJWYXJTdG9yZUlkIjog e3BWc05vZGUuVmFyU3RvcmVJZH0sXG4nKQ0KPiArICAgICAgICAgICAgICAgICAgICBmLndyaXRl KGYnICAiVmVuZG9yR3VpZCI6IHtwVnNOb2RlLkd1aWQudG9fc3RyaW5nKCl9XG4nKQ0KPiArICAg ICAgICAgICAgICAgICAgICBpZiBwVnNOb2RlLk5leHQgaXMgTm9uZToNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIGYud3JpdGUoIn1cbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGVsc2U6 DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCJ9LFxuIikNCj4gKw0KPiArICAg ICAgICAgICAgICAgICAgICBwVnNOb2RlID0gcFZzTm9kZS5OZXh0DQo+ICsgICAgICAgICAgICAg ICAgZi53cml0ZSgiICB9LFxuIikNCj4gKyAgICAgICAgICAgICAgICBmLndyaXRlKCcgICJEYXRh IiA6IFtcbicpDQo+ICsgICAgICAgICAgICAgICAgcFZzTm9kZSA9IGdWZnJCdWZmZXJDb25maWcu R2V0VmFySXRlbUxpc3QoKQ0KPiArICAgICAgICAgICAgICAgIHdoaWxlIHBWc05vZGUgaXMgbm90 IE5vbmU6DQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIHBWc05vZGUuSWQgaXMgTm9uZToNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgIHBWc05vZGUgPSBwVnNOb2RlLk5leHQNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlDQo+ICsgICAgICAgICAgICAgICAgICAgIHBJbmZv Tm9kZSA9IHBWc05vZGUuSW5mb1N0ckxpc3QNCj4gKyAgICAgICAgICAgICAgICAgICAgd2hpbGUg cEluZm9Ob2RlIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0 ZSgie1xuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZicgICJWZW5kb3JH dWlkIjoge3BWc05vZGUuR3VpZC50b19zdHJpbmcoKX0sXG4nKQ0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgZi53cml0ZShmJyAgIlZhck5hbWUiOiAie3BWc05vZGUuTmFtZX0iLFxuJykNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZicgICJEZWZhdWx0U3RvcmUiOiAie3BW c05vZGUuSWR9IixcbicpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYnICAi U2l6ZSI6ICJ7cEluZm9Ob2RlLldpZHRofSIsXG4nKQ0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgZi53cml0ZShmJyAgIk9mZnNldCI6IHtwSW5mb05vZGUuT2Zmc2V0fSxcbicpDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICBpZiAoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg cEluZm9Ob2RlLlR5cGUgPT0gRUZJX0lGUl9UWVBFX0RBVEUNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhbmQgdHlwZShwSW5mb05vZGUuVmFsdWUpID09IEVGSV9ISUlfREFURQ0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgKToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmLndyaXRlKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmJyAgIlZhbHVl IjoNCj4gIntwSW5mb05vZGUuVmFsdWUuWWVhcn0ve3BJbmZvTm9kZS5WYWx1ZS5Nb250aH0ve3BJ bmZvTm9kZS5WYWx1ZS5EYXl9IlxuJw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICkN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgKA0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBJbmZvTm9kZS5UeXBlID09IEVGSV9JRlJfVFlQRV9USU1FDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYW5kIHR5cGUocEluZm9Ob2RlLlZhbHVlKSA9PSBFRklfSElJ X1RJTUUNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICk6DQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZi53cml0ZSgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZicgICJWYWx1ZSI6DQo+ICJ7cEluZm9Ob2RlLlZhbHVlLkhvdXJ9OntwSW5mb05vZGUuVmFsdWUu TWludXRlfTp7cEluZm9Ob2RlLlZhbHVlLlNlY29uZA0KPiB9IlxuJw0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgKA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBJbmZvTm9kZS5UeXBlID09IEVGSV9JRlJfVFlQ RV9SRUYNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgdHlwZShwSW5mb05vZGUu VmFsdWUpID09IEVGSV9ISUlfUkVGDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICApOg0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGYnICAiVmFsdWUiOg0KPiAie3BJbmZvTm9kZS5WYWx1ZS5RdWVzdGlv bklkfTt7cEluZm9Ob2RlLlZhbHVlLkZvcm1JZH07e3BJbmZvTm9kZS5WYWx1ZS5GDQo+IG9ybVNl dEd1aWQudG9fc3RyaW5nKCl9O3twSW5mb05vZGUuVmFsdWUuRGV2aWNlUGF0aH0iXG4nDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ZWxzZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYnICAiVmFsdWUi OiAie3BJbmZvTm9kZS5WYWx1ZX0iXG4nKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICBmLndyaXRlKCJ9LFxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHBJbmZvTm9kZSA9 IHBJbmZvTm9kZS5OZXh0DQo+ICsgICAgICAgICAgICAgICAgICAgIHBWc05vZGUgPSBwVnNOb2Rl Lk5leHQNCj4gKyAgICAgICAgICAgICAgICBmLndyaXRlKCJ7XG4iKQ0KPiArICAgICAgICAgICAg ICAgIGYud3JpdGUoJyAgIlZlbmRvckd1aWQiOiAiTkEiLFxuJykNCj4gKyAgICAgICAgICAgICAg ICBmLndyaXRlKCcgICJWYXJOYW1lIjogIk5BIixcbicpDQo+ICsgICAgICAgICAgICAgICAgZi53 cml0ZSgnICAiRGVmYXVsdFN0b3JlIjogIk5BIixcbicpDQo+ICsgICAgICAgICAgICAgICAgZi53 cml0ZSgnICAiU2l6ZSI6IDAsXG4nKQ0KPiArICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgIk9m ZnNldCI6IDAsXG4nKQ0KPiArICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgIlZhbHVlIjogIjB4 MDAiXG4nKQ0KPiArICAgICAgICAgICAgICAgIGYud3JpdGUoIn1cbiIpDQo+ICsgICAgICAgICAg ICAgICAgZi53cml0ZSgiICBdXG4iKQ0KPiArICAgICAgICAgICAgICAgIGYud3JpdGUoIn1cbiIp DQo+ICsNCj4gKyAgICAgICAgICAgIGYuY2xvc2UoKQ0KPiArICAgICAgICBleGNlcHQgRXhjZXB0 aW9uOg0KPiArICAgICAgICAgICAgRWRrTG9nZ2VyLmVycm9yKA0KPiArICAgICAgICAgICAgICAg ICJWZnJDb21waWxlciIsIEZJTEVfT1BFTl9GQUlMVVJFLCAiRmlsZSBvcGVuIGZhaWxlZCBmb3Ig JXMiICUNCj4gRmlsZU5hbWUsIE5vbmUNCj4gKyAgICAgICAgICAgICkNCj4gKw0KPiArICAgIGRl ZiBfRHVtcFF1ZXN0aW9uSW5mb3NGb3JYTUxDTEkoc2VsZiwgUm9vdCwgZiwgVmFsdWVJbmRlbnQp Og0KPiArICAgICAgICBJbmZvID0gUm9vdC5EYXRhLkdldEluZm8oKQ0KPiArICAgICAgICBpZiBS b290LkNvbmRpdGlvbiBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFs dWVJbmRlbnR9Y29uZGl0aW9uOiAgJ3tSb290LkNvbmRpdGlvbn0nXG4iKQ0KPiArDQo+ICsgICAg ICAgIGlmIFJvb3QuRGF0YS5RTmFtZSBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgIGYud3Jp dGUoZiJ7VmFsdWVJbmRlbnR9bmFtZTogIHtSb290LkRhdGEuUU5hbWV9ICAjICBPcHRpb25hbA0K PiBJbnB1dFxuIikNCj4gKw0KPiArICAgICAgICBpZiBSb290LkRhdGEuVmFySWRTdHIgIT0gIiI6 DQo+ICsgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fXZhcmlkOiAge1Jvb3QuRGF0 YS5WYXJJZFN0cn0gICMgIE9wdGlvbmFsDQo+IElucHV0XG4iKQ0KPiArICAgICAgICBpZiBSb290 LkRhdGEuSGFzUXVlc3Rpb25JZDoNCj4gKyAgICAgICAgICAgIGYud3JpdGUoDQo+ICsgICAgICAg ICAgICAgICAgZiJ7VmFsdWVJbmRlbnR9cXVlc3Rpb25pZDogIHsnMHgleCcgJSBJbmZvLlF1ZXN0 aW9uLlF1ZXN0aW9uSWR9ICAjDQo+IE9wdGlvbmFsIElucHV0XG4iDQo+ICsgICAgICAgICAgICAp DQo+ICsgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9cHJvbXB0Og0KPiAne3NlbGYuX0Rp c3BsYXlVbmlTdHIoSW5mby5RdWVzdGlvbi5IZWFkZXIuUHJvbXB0KX0nXG4iKQ0KPiArICAgICAg ICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWhlbHA6DQo+ICd7c2VsZi5fRGlzcGxheVVuaVN0cihJ bmZvLlF1ZXN0aW9uLkhlYWRlci5IZWxwKX0nXG4iKQ0KPiArICAgICAgICBpZiBSb290LkRhdGEu RmxhZ3NTdHJlYW0gIT0gIiI6DQo+ICsgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50 fWZsYWdzOiAge1Jvb3QuRGF0YS5GbGFnc1N0cmVhbX0gICMgT3B0aW9uYWwNCj4gaW5wdXQgLCBm bGFnc1xuIikNCj4gKyAgICAgICAgaWYgUm9vdC5EYXRhLkhhc0tleToNCj4gKyAgICAgICAgICAg IGYud3JpdGUoDQo+ICsgICAgICAgICAgICAgICAgZiJ7VmFsdWVJbmRlbnR9a2V5OiAgeycweCUw eCAnICUgSW5mby5RdWVzdGlvbi5RdWVzdGlvbklkfSAjDQo+IE9wdGlvbmFsIGlucHV0LCBrZXlc biINCj4gKyAgICAgICAgICAgICkNCj4gKw0KPiArICAgIGRlZiBfRGlzcGxheVVuaVN0cihzZWxm LCBLZXkpOg0KPiArICAgICAgICBTdHJJZCA9IGYiMHh7S2V5OjA0eH0iDQo+ICsgICAgICAgIEZv cm1hdGVkU3RySWQgPSBTdHJJZFs6Ml0gKyBTdHJJZFsyOl0udXBwZXIoKQ0KPiArICAgICAgICBp ZiBGb3JtYXRlZFN0cklkIGluIHNlbGYuUHJlUHJvY2Vzc0RCLlVuaURpc1BsYXlEaWN0Og0KPiAr ICAgICAgICAgICAgcmV0dXJuIHNlbGYuUHJlUHJvY2Vzc0RCLlVuaURpc1BsYXlEaWN0W0Zvcm1h dGVkU3RySWRdDQo+ICsgICAgICAgIHJldHVybiBGb3JtYXRlZFN0cklkDQo+ICsgICAgICAgICNy ZXR1cm4gZiJTVFJJTkdfVE9LRU4oe0Zvcm1hdGVkU3RySWR9KSINCj4gKw0KPiArICAgIGRlZiBE dW1wWWFtbEZvclhNTENMSShzZWxmKToNCj4gKyAgICAgICAgRmlsZU5hbWUgPSBzZWxmLk9wdGlv bnMuWWFtbEZpbGVOYW1lDQo+ICsgICAgICAgIHRyeToNCj4gKyAgICAgICAgICAgIHdpdGggb3Bl bihGaWxlTmFtZSwgInciLCBlbmNvZGluZz0idXRmLTgiKSBhcyBmOg0KPiArICAgICAgICAgICAg ICAgIGYud3JpdGUoIiMjIERPIE5PVCBSRU1PVkUgLS0gWUFNTCBNb2RlXG4iKQ0KPiArICAgICAg ICAgICAgICAgIHNlbGYuX0R1bXBZYW1sRm9yWE1MQ0xJRGZzKHNlbGYuUm9vdCwgZikNCj4gKyAg ICAgICAgICAgIGYuY2xvc2UoKQ0KPiArICAgICAgICBleGNlcHQgRXhjZXB0aW9uOg0KPiArICAg ICAgICAgICAgRWRrTG9nZ2VyLmVycm9yKA0KPiArICAgICAgICAgICAgICAgICJWZnJDb21waWxl ciIsIEZJTEVfT1BFTl9GQUlMVVJFLCAiRmlsZSBvcGVuIGZhaWxlZCBmb3IgJXMiICUNCj4gRmls ZU5hbWUsIE5vbmUNCj4gKyAgICAgICAgICAgICkNCj4gKw0KPiArICAgIGRlZiBEdW1wWWFtbEZv ckNvbmZpZ0VkaXRvcihzZWxmKToNCj4gKyAgICAgICAgRmlsZU5hbWUgPSBzZWxmLk9wdGlvbnMu WWFtbE91dHB1dEZpbGVOYW1lDQo+ICsgICAgICAgIHRyeToNCj4gKyAgICAgICAgICAgIHdpdGgg b3BlbihGaWxlTmFtZSwgInciLCBlbmNvZGluZz0idXRmLTgiKSBhcyBmOg0KPiArICAgICAgICAg ICAgICAgIGYud3JpdGUoIiMjIERPIE5PVCBSRU1PVkUgLS0gWUFNTCBNb2RlXG4iKQ0KPiArICAg ICAgICAgICAgICAgICMgaWYgc2VsZi5QcmVQcm9jZXNzREIuSGVhZGVyRmlsZXMgIT0gW106DQo+ ICsgICAgICAgICAgICAgICAgIyAgICAgZi53cml0ZSgiaW5jbHVkZTpcbiIpDQo+ICsgICAgICAg ICAgICAgICAgIyAgICAgZm9yIEhlYWRlckZpbGUgaW4gc2VsZi5QcmVQcm9jZXNzREIuSGVhZGVy RmlsZXM6DQo+ICsgICAgICAgICAgICAgICAgIyAgICAgICAgIGYud3JpdGUoIi0gIiArIEhlYWRl ckZpbGUgKyAiXG4iKQ0KPiArICAgICAgICAgICAgICAgICMgICAgIGYud3JpdGUoIlxuIikNCj4g KyAgICAgICAgICAgICAgICBzZWxmLl9EdW1wWWFtbEZvckNvbmZpZ0VkaXRvckRmcyhzZWxmLlJv b3QsIGYpDQo+ICsgICAgICAgICAgICBmLmNsb3NlKCkNCj4gKyAgICAgICAgZXhjZXB0IEV4Y2Vw dGlvbjoNCj4gKyAgICAgICAgICAgIEVka0xvZ2dlci5lcnJvcigNCj4gKyAgICAgICAgICAgICAg ICAiVmZyQ29tcGlsZXIiLCBGSUxFX09QRU5fRkFJTFVSRSwgIkZpbGUgb3BlbiBmYWlsZWQgZm9y ICVzIiAlDQo+IEZpbGVOYW1lLCBOb25lDQo+ICsgICAgICAgICAgICApDQo+ICsNCj4gKyAgICBk ZWYgX0R1bXBZYW1sRm9yQ29uZmlnRWRpdG9yRGZzKHNlbGYsIFJvb3QsIGYpOg0KPiArICAgICAg ICB0cnk6DQo+ICsgICAgICAgICAgICBpZiBSb290Lk9wQ29kZSBpcyBub3QgTm9uZToNCj4gKyAg ICAgICAgICAgICAgICBpZiBSb290LkxldmVsID09IDA6DQo+ICsgICAgICAgICAgICAgICAgICAg IEtleUluZGVudCA9ICIiDQo+ICsgICAgICAgICAgICAgICAgICAgIFZhbHVlSW5kZW50ID0gIiIN Cj4gKyAgICAgICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgICAgICBLZXlJbmRl bnQgPSAiICIgKiAoKFJvb3QuTGV2ZWwgKiAyIC0gMSkgKiAyKQ0KPiArICAgICAgICAgICAgICAg ICAgICBWYWx1ZUluZGVudCA9ICIgIiAqICgoUm9vdC5MZXZlbCAqIDIgKyAxKSAqIDIpDQo+ICsN Cj4gKyAgICAgICAgICAgICAgICBJbmZvID0gUm9vdC5EYXRhLkdldEluZm8oKQ0KPiArDQo+ICsg ICAgICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9GT1JNX1NFVF9PUDoNCj4g KyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShLZXlJbmRlbnQgKyAiZm9ybXNldDpcbiIpDQo+ ICsgICAgICAgICAgICAgICAgICAgIFZhbHVlSW5kZW50ID0gIiAiICogKFJvb3QuTGV2ZWwgKyAx KSAqIDINCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgIGYie1ZhbHVlSW5kZW50fWd1aWQ6ICAne3t7SW5mby5HdWlkLkRhdGExOiN4fSwN Cj4ge0luZm8uR3VpZC5EYXRhMjojeH0sIHtJbmZvLkd1aWQuRGF0YTM6I3h9LCB7eyB7JywgJy5q b2luKGYne3g6I3h9JyBmb3IgeCBpbg0KPiBJbmZvLkd1aWQuRGF0YTQpfX19fX0nXG4iDQo+ICsg ICAgICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntW YWx1ZUluZGVudH1oZWxwOiAgJ3tzZWxmLl9EaXNwbGF5VW5pU3RyKEluZm8uSGVscCl9J1xuIikN Cj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH10aXRsZToNCj4g J3tzZWxmLl9EaXNwbGF5VW5pU3RyKEluZm8uRm9ybVNldFRpdGxlKX0nXG4iKQ0KPiArICAgICAg ICAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCBsZW4oUm9vdC5EYXRhLkdldENsYXNzR3Vp ZCgpKSk6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBHdWlkID0gUm9vdC5EYXRhLkdldENs YXNzR3VpZCgpW2ldDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiBHdWlkICE9IEVGSV9I SUlfUExBVEZPUk1fU0VUVVBfRk9STVNFVF9HVUlEOg0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGYud3JpdGUoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYie1Zh bHVlSW5kZW50fWNsYXNzZ3VpZHtpICsgMX06ICd7e3tHdWlkLkRhdGExOiN4fSwNCj4ge0d1aWQu RGF0YTI6I3h9LCB7R3VpZC5EYXRhMzojeH0sIHt7IHsnLCAnLmpvaW4oZid7eDojeH0nIGZvciB4 IGluDQo+IEd1aWQuRGF0YTQpfX19fX0nXG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKQ0KPiArICAgICAgICAgICAgICAgICAgICBpZiAoDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICBSb290LkNoaWxkICE9IFtdDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBhbmQgUm9v dC5DaGlsZFswXS5PcENvZGUgIT0gRUZJX0lGUl9FTkRfT1ANCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgIGFuZCB0eXBlKFJvb3QuQ2hpbGRbMF0uRGF0YSkgIT0gSWZyU3ViQ2xhc3MNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgIGFuZCB0eXBlKFJvb3QuQ2hpbGRbMF0uRGF0YSkgIT0gSWZy Q2xhc3MNCj4gKyAgICAgICAgICAgICAgICAgICAgKToNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgIGYud3JpdGUoVmFsdWVJbmRlbnQgKyAiY29tcG9uZW50OiAgXG4iKQ0KPiArICAgICAgICAg ICAgICAgICAgICBlbGlmICgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUoUm9vdC5D aGlsZFswXS5EYXRhKSA9PSBJZnJDbGFzcw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgYW5k IHR5cGUoUm9vdC5DaGlsZFsxXS5EYXRhKSA9PSBJZnJTdWJDbGFzcw0KPiArICAgICAgICAgICAg ICAgICAgICApOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgUm9vdC5DaGlsZFswXS5EYXRh Lkhhc1N1YkNsYXNzID0gVHJ1ZQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgaWYgUm9vdC5PcENv ZGUgPT0gRUZJX0lGUl9WQVJTVE9SRV9PUDoNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0 ZShLZXlJbmRlbnQgKyAiLSB2YXJzdG9yZTpcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgICMg Zi53cml0ZShmIntWYWx1ZUluZGVudH1idWZmZXI6IHtzZWxmLkR1bXBCdWZmZXIoUm9vdCl9XG4i KQ0KPiArICAgICAgICAgICAgICAgICAgICAjIGYud3JpdGUoVmFsdWVJbmRlbnQgKyAndHlwZTog IHt9ICMgZm9yDQo+IHJlZmVyZW5jZVxuJy5mb3JtYXQoUm9vdC5EYXRhLlR5cGUpKQ0KPiArICAg ICAgICAgICAgICAgICAgICBmLndyaXRlKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZiJ7 VmFsdWVJbmRlbnR9Z3VpZDogJ3t7e0luZm8uR3VpZC5EYXRhMTojeH0sDQo+IHtJbmZvLkd1aWQu RGF0YTI6I3h9LCB7SW5mby5HdWlkLkRhdGEzOiN4fSwge3sgeycsICcuam9pbihmJ3t4OiN4fScg Zm9yIHggaW4NCj4gSW5mby5HdWlkLkRhdGE0KX19fX19J1xuIg0KPiArICAgICAgICAgICAgICAg ICAgICApDQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9dmFy aWQ6ICB7SW5mby5WYXJTdG9yZUlkOiMwNHh9ICMgT3B0aW9uYWwNCj4gSW5wdXRcbiIpDQo+ICsg ICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9c2l6ZTogIHtJbmZvLlNp emV9ICMgTmVlZCB0byBDb21wdXRlXG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBOYW1lID0g IiIuam9pbihjaHIoeCkgZm9yIHggaW4gSW5mby5OYW1lKQ0KPiArICAgICAgICAgICAgICAgICAg ICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fW5hbWU6ICB7TmFtZX1cbiIpDQo+ICsNCj4gKyAgICAg ICAgICAgICAgICBpZiBSb290Lk9wQ29kZSA9PSBFRklfSUZSX1ZBUlNUT1JFX0VGSV9PUDoNCj4g KyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShLZXlJbmRlbnQgKyAiLSBlZml2YXJzdG9yZTpc biIpDQo+ICsgICAgICAgICAgICAgICAgICAgICMgZi53cml0ZShmIntWYWx1ZUluZGVudH1idWZm ZXI6IHtzZWxmLkR1bXBCdWZmZXIoUm9vdCl9XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICAj IGYud3JpdGUoVmFsdWVJbmRlbnQgKyAndHlwZTogIHt9IyBmb3INCj4gcmVmZXJlbmNlXG4nLmZv cm1hdChSb290LkRhdGEuVHlwZSkpDQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7 VmFsdWVJbmRlbnR9dmFyaWQ6ICB7SW5mby5WYXJTdG9yZUlkOiMwNHh9ICMgT3B0aW9uYWwNCj4g SW5wdXRcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICBmIntWYWx1ZUluZGVudH1ndWlkOiAgJ3t7e0luZm8uR3VpZC5EYXRhMToj eH0sDQo+IHtJbmZvLkd1aWQuRGF0YTI6I3h9LCB7SW5mby5HdWlkLkRhdGEzOiN4fSwge3sgeycs ICcuam9pbihmJ3t4OiN4fScgZm9yIHggaW4NCj4gSW5mby5HdWlkLkRhdGE0KX19fX19J1xuIg0K PiArICAgICAgICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUo ZiJ7VmFsdWVJbmRlbnR9YXR0cmlidXRlOiAge0luZm8uQXR0cmlidXRlc31cbiIpDQo+ICsgICAg ICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9c2l6ZTogIHtJbmZvLlNpemV9 ICMgTmVlZCB0byBDb21wdXRlXG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBOYW1lID0gIiIu am9pbihjaHIoeCkgZm9yIHggaW4gSW5mby5OYW1lKQ0KPiArICAgICAgICAgICAgICAgICAgICBm LndyaXRlKGYie1ZhbHVlSW5kZW50fW5hbWU6ICB7TmFtZX1cbiIpDQo+ICsNCj4gKyAgICAgICAg ICAgICAgICBpZiBSb290Lk9wQ29kZSA9PSBFRklfSUZSX1ZBUlNUT1JFX05BTUVfVkFMVUVfT1A6 DQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoS2V5SW5kZW50ICsgIi0gbmFtZXZhbHVl dmFyc3RvcmU6XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICAjIGYud3JpdGUoZiJ7VmFsdWVJ bmRlbnR9YnVmZmVyOiB7c2VsZi5EdW1wQnVmZmVyKFJvb3QpfVxuIikNCj4gKyAgICAgICAgICAg ICAgICAgICAgIyBmLndyaXRlKFZhbHVlSW5kZW50ICsgJ3R5cGU6ICB7fSAjIGZvcg0KPiByZWZl cmVuY2VcbicuZm9ybWF0KFJvb3QuRGF0YS5UeXBlKSkNCj4gKyAgICAgICAgICAgICAgICAgICAg Zi53cml0ZShmIntWYWx1ZUluZGVudH12YXJpZDogIHtJbmZvLlZhclN0b3JlSWQ6IzA0eH0gIyBP cHRpb25hbA0KPiBJbnB1dFxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgIGYie1ZhbHVlSW5kZW50fWd1aWQ6ICAne3t7SW5mby5H dWlkLkRhdGExOiN4fSwNCj4ge0luZm8uR3VpZC5EYXRhMjojeH0sIHtJbmZvLkd1aWQuRGF0YTM6 I3h9LCB7eyB7JywgJy5qb2luKGYne3g6I3h9JyBmb3IgeCBpbg0KPiBJbmZvLkd1aWQuRGF0YTQp fX19fX0nXG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICAg ICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1uYW1ldGFibGU6ICMgZm9yIHJlZmVyZW5jZVxuIikN Cj4gKyAgICAgICAgICAgICAgICAgICAgZm9yIE5hbWVJdGVtIGluIFJvb3QuRGF0YS5OYW1lSXRl bUxpc3Q6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50 fSAtIG5hbWU6DQo+ICd7c2VsZi5fRGlzcGxheVVuaVN0cihOYW1lSXRlbSl9J1xuIikNCj4gKw0K PiArICAgICAgICAgICAgICAgIGlmIFJvb3QuT3BDb2RlID09IEVGSV9JRlJfREVGQVVMVFNUT1JF X09QOg0KPiArICAgICAgICAgICAgICAgICAgICBnVmZyRGVmYXVsdFN0b3JlLlVwZGF0ZURlZmF1 bHRUeXBlKFJvb3QpDQo+ICsgICAgICAgICAgICAgICAgICAgIEluZm8gPSBSb290LkRhdGEuR2V0 SW5mbygpDQo+ICsgICAgICAgICAgICAgICAgICAgIFR5cGUgPSBSb290LkRhdGEuVHlwZQ0KPiAr ICAgICAgICAgICAgICAgICAgICBpZiBUeXBlIG5vdCBpbiAoIlN0YW5kYXJkIERlZmF1bHRzIiwg IlN0YW5kYXJkIE1hbnVGYWN0dXJpbmciKToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYu d3JpdGUoS2V5SW5kZW50ICsgIi0gZGVmYXVsdHN0b3JlOlxuIikNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICMgZi53cml0ZShmIntWYWx1ZUluZGVudH1idWZmZXI6IHtzZWxmLkR1bXBCdWZm ZXIoUm9vdCl9XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIyBmLndyaXRlKFZhbHVl SW5kZW50ICsgJ3R5cGU6ICB7fSAjIGZvcg0KPiByZWZlcmVuY2VcbicuZm9ybWF0KFR5cGUpKQ0K PiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmIntWYWx1ZUluZGVudH1wcm9tcHQ6DQo+ICd7c2VsZi5fRGlzcGxheVVuaVN0 cihJbmZvLkRlZmF1bHROYW1lKX0nXG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICApDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWF0dHJpYnV0 ZTogIHtJbmZvLkRlZmF1bHRJZDojMDR4fSAjIERlZmF1bHQNCj4gSURcbiIpDQo+ICsNCj4gKyAg ICAgICAgICAgICAgICBpZiBSb290Lk9wQ29kZSA9PSBFRklfSUZSX0ZPUk1fT1A6DQo+ICsgICAg ICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7S2V5SW5kZW50fS0gZm9ybTogXG4iKQ0KPiArICAg ICAgICAgICAgICAgICAgICAjIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9YnVmZmVyOiB7c2VsZi5E dW1wQnVmZmVyKFJvb3QpfVxuIikNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBmLndyaXRl KGYie1ZhbHVlSW5kZW50fWZvcm1pZDogIHtJbmZvLkZvcm1JZH1cbiIpDQo+ICsgICAgICAgICAg ICAgICAgICAgIGlmIFJvb3QuQ29uZGl0aW9uIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1jb25kaXRpb246ICAne1Jvb3QuQ29u ZGl0aW9ufSdcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRl bnR9dGl0bGU6DQo+ICd7c2VsZi5fRGlzcGxheVVuaVN0cihJbmZvLkZvcm1UaXRsZSl9J1xuIikN Cj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBpZiBSb290LkNoaWxkIGFuZCBSb290LkNoaWxk WzBdLk9wQ29kZSAhPSBFRklfSUZSX0VORF9PUDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg IGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9Y29tcG9uZW50OiAgXG4iKQ0KPiArDQo+ICsgICAgICAg ICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9GT1JNX01BUF9PUDoNCj4gKyAgICAg ICAgICAgICAgICAgICAgTWV0aG9kTWFwTGlzdCA9IFJvb3QuRGF0YS5HZXRNZXRob2RNYXBMaXN0 KCkNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShLZXlJbmRlbnQgKyAiLSBmb3JtbWFw OiBcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgICMgZi53cml0ZShmIntWYWx1ZUluZGVudH1i dWZmZXI6IHtzZWxmLkR1bXBCdWZmZXIoUm9vdCl9XG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAg ICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9Zm9ybWlkOiAge0luZm8uRm9ybUlkfSAjIEZv cm1JZA0KPiBTVFJJTkdfSURcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIFJvb3QuQ29u ZGl0aW9uIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShm IntWYWx1ZUluZGVudH1jb25kaXRpb246ICAne1Jvb3QuQ29uZGl0aW9ufSdcbiIpDQo+ICsgICAg ICAgICAgICAgICAgICAgIGlmIE1ldGhvZE1hcExpc3QgIT0gW106DQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICBmLndyaXRlKFZhbHVlSW5kZW50ICsgIm1hcDogIyBvcHRpb25hbCBpbnB1dCwg Zm9yIHJlZmVyZW5jZVxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgZm9yIE1ldGhvZE1hcCBp biBNZXRob2RNYXBMaXN0Og0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntW YWx1ZUluZGVudH0tIG1hcHRpdGxlOg0KPiB7TWV0aG9kTWFwLk1ldGhvZFRpdGxlfVxuIikNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZiJ7VmFsdWVJbmRlbnR9ICBtYXBndWlkOiAgJ3t7e3siDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZiJ7TWV0aG9kTWFwLk1ldGhvZElkZW50aWZpZXIuRGF0YTF9LA0K PiB7TWV0aG9kTWFwLk1ldGhvZElkZW50aWZpZXIuRGF0YTJ9LA0KPiB7TWV0aG9kTWFwLk1ldGhv ZElkZW50aWZpZXIuRGF0YTN9LCINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmInt7 IHsnLCAnLmpvaW4oJzB4JXgnICUgeCBmb3IgeCBpbg0KPiBNZXRob2RNYXAuTWV0aG9kSWRlbnRp Zmllci5EYXRhNCl9IH19Ig0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYifX19fSdc biINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICAgICAgICAg ICAgICBpZiBSb290LkNoaWxkICE9IFtdIGFuZCBSb290LkNoaWxkWzBdLk9wQ29kZSAhPSBFRklf SUZSX0VORF9PUDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoVmFsdWVJbmRl bnQgKyAiY29tcG9uZW50OiAgXG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgaWYgUm9vdC5P cENvZGUgPT0gRUZJX0lGUl9JTUFHRV9PUDoNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0 ZShLZXlJbmRlbnQgKyAiLSBpbWFnZTpcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgICMgZi53 cml0ZShmIntWYWx1ZUluZGVudH1idWZmZXI6IHtzZWxmLkR1bXBCdWZmZXIoUm9vdCl9XG4iKQ0K PiArDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIFJvb3QuQ29uZGl0aW9uIGlzIG5vdCBOb25l Og0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1jb25k aXRpb246ICAne1Jvb3QuQ29uZGl0aW9ufSdcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGYu d3JpdGUoZiJ7VmFsdWVJbmRlbnR9aWQ6ICB7SW5mby5JZH1cbiIpDQo+ICsNCj4gKyAgICAgICAg ICAgICAgICBpZiBSb290Lk9wQ29kZSA9PSBFRklfSUZSX1JVTEVfT1A6ICAjDQo+ICsgICAgICAg ICAgICAgICAgICAgIGYud3JpdGUoS2V5SW5kZW50ICsgIi0gcnVsZTpcbiIpDQo+ICsgICAgICAg ICAgICAgICAgICAgICMgZi53cml0ZShmIntWYWx1ZUluZGVudH1idWZmZXI6IHtzZWxmLkR1bXBC dWZmZXIoUm9vdCl9XG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIFJvb3QuQ29u ZGl0aW9uIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShm IntWYWx1ZUluZGVudH1jb25kaXRpb246ICAne1Jvb3QuQ29uZGl0aW9ufSdcbiIpDQo+ICsgICAg ICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9bmFtZTogIHtSb290LkRhdGEu R2V0UnVsZU5hbWUoKX0gIyBmb3INCj4gcmVmZXJlbmNlIFxuIikNCj4gKyAgICAgICAgICAgICAg ICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1ydWxlaWQ6ICB7SW5mby5SdWxlSWR9XG4iKQ0K PiArICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWV4cHJlc3Npb246 ICB7Um9vdC5FeHByZXNzaW9ufVxuIikNCj4gKw0KPiArICAgICAgICAgICAgICAgIGlmIFJvb3Qu T3BDb2RlID09IEVGSV9JRlJfU1VCVElUTEVfT1A6DQo+ICsgICAgICAgICAgICAgICAgICAgIGYu d3JpdGUoS2V5SW5kZW50ICsgIi0gc3VidGl0bGU6XG4iKQ0KPiArICAgICAgICAgICAgICAgICAg ICAjIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9YnVmZmVyOiB7c2VsZi5EdW1wQnVmZmVyKFJvb3Qp fVxuIikNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBpZiBSb290LkNvbmRpdGlvbiBpcyBu b3QgTm9uZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRl bnR9Y29uZGl0aW9uOiAgJ3tSb290LkNvbmRpdGlvbn0nXG4iKQ0KPiArICAgICAgICAgICAgICAg ICAgICAjIGYud3JpdGUoVmFsdWVJbmRlbnQgKyAncHJvbXB0OiAge30gICMgU3RhdGVtZW50IFBy b21wdA0KPiBTVFJJTkdfSURcbicuZm9ybWF0KCcweCUwNHgnICUgKEluZm8uU3RhdGVtZW50LlBy b21wdCkpKQ0KPiArICAgICAgICAgICAgICAgICAgICBmLndyaXRlKA0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgZiJ7VmFsdWVJbmRlbnR9cHJvbXB0Og0KPiAne3NlbGYuX0Rpc3BsYXlVbmlT dHIoSW5mby5TdGF0ZW1lbnQuUHJvbXB0KX0nXG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICkN Cj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1mbGFnczogIHtJ bmZvLkZsYWdzfSAgIyBPcHRpb25hbCBJbnB1dFxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAg aWYgUm9vdC5DaGlsZCAhPSBbXSBhbmQgUm9vdC5DaGlsZFswXS5PcENvZGUgIT0gRUZJX0lGUl9F TkRfT1A6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKFZhbHVlSW5kZW50ICsg ImNvbXBvbmVudDogIFxuIikNCj4gKw0KPiArICAgICAgICAgICAgICAgIGlmIFJvb3QuT3BDb2Rl ID09IEVGSV9JRlJfVEVYVF9PUDoNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShLZXlJ bmRlbnQgKyAiLSB0ZXh0OlxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgIyBmLndyaXRlKGYi e1ZhbHVlSW5kZW50fWJ1ZmZlcjoge3NlbGYuRHVtcEJ1ZmZlcihSb290KX1cbiIpDQo+ICsNCj4g KyAgICAgICAgICAgICAgICAgICAgaWYgUm9vdC5Db25kaXRpb24gaXMgbm90IE5vbmU6DQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWNvbmRpdGlvbjog ICd7Um9vdC5Db25kaXRpb259J1xuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgdHlwZShJ bmZvKSA9PSBFRklfSUZSX1RFWFQ6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAjIGYud3Jp dGUoVmFsdWVJbmRlbnQgKyAnaGVscDogIHt9ICAjIFN0YXRlbWVudCBIZWxwDQo+IFNUUklOR19J RFxuJy5mb3JtYXQoJzB4JTA0eCcgJSAoSW5mby5TdGF0ZW1lbnQuSGVscCkpKQ0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgIyBmLndyaXRlKFZhbHVlSW5kZW50ICsgJ3Byb21wdDogIHt9ICAj IFN0YXRlbWVudCBQcm9tcHQNCj4gU1RSSU5HX0lEXG4nLmZvcm1hdCgnMHglMDR4JyAlIChJbmZv LlN0YXRlbWVudC5Qcm9tcHQpKSkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUo DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgZiJ7VmFsdWVJbmRlbnR9aGVscDoNCj4g J3tzZWxmLl9EaXNwbGF5VW5pU3RyKEluZm8uU3RhdGVtZW50LkhlbHApfSdcbiINCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUo DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgZiJ7VmFsdWVJbmRlbnR9cHJvbXB0Og0K PiAne3NlbGYuX0Rpc3BsYXlVbmlTdHIoSW5mby5TdGF0ZW1lbnQuUHJvbXB0KX0nXG4iDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiBJ bmZvLlRleHRUd28gIT0gRUZJX1NUUklOR19JRF9JTlZBTElEOg0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9dGV4dDoNCj4gJ3tzZWxmLl9EaXNw bGF5VW5pU3RyKEluZm8uVGV4dFR3byl9J1xuIikNCj4gKw0KPiArICAgICAgICAgICAgICAgICAg ICBpZiB0eXBlKEluZm8pID09IEVGSV9JRlJfQUNUSU9OOg0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgIyBmLndyaXRlKFZhbHVlSW5kZW50ICsgJ2hlbHA6ICB7fSAgIyBRdWVzdGlvbiBIZWxw DQo+IFNUUklOR19JRFxuJy5mb3JtYXQoJzB4JTA0eCcgJSAoSW5mby5RdWVzdGlvbi5IZWFkZXIu SGVscCkpKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIyBmLndyaXRlKFZhbHVlSW5kZW50 ICsgJ3Byb21wdDogIHt9ICAjIFF1ZXN0aW9uIFByb21wdA0KPiBTVFJJTkdfSURcbicuZm9ybWF0 KCcweCUwNHgnICUgKEluZm8uUXVlc3Rpb24uSGVhZGVyLlByb21wdCkpKQ0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgZi53cml0ZSgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBm IntWYWx1ZUluZGVudH1oZWxwOg0KPiAne3NlbGYuX0Rpc3BsYXlVbmlTdHIoSW5mby5RdWVzdGlv bi5IZWFkZXIuSGVscCl9J1xuIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgKQ0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmIntWYWx1ZUluZGVudH1wcm9tcHQ6DQo+ICd7c2VsZi5fRGlzcGxheVVuaVN0cihJbmZv LlF1ZXN0aW9uLkhlYWRlci5Qcm9tcHQpfSdcbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZiJ7VmFsdWVJbmRlbnR9ZmxhZ3M6ICB7SW5mby5RdWVzdGlvbi5GbGFn c30gICMgT3B0aW9uYWwgSW5wdXQsDQo+IFF1ZXN0aW9uIEZsYWdzXG4iDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYie1ZhbHVlSW5kZW50fWtleTogIHsnMHglMDR4 JyAlIEluZm8uUXVlc3Rpb24uUXVlc3Rpb25JZH0gICMNCj4gT3B0aW9uYWwgSW5wdXQsIFF1ZXN0 aW9uIFF1ZXN0aW9uSWRcbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICkNCj4gKw0KPiAr ICAgICAgICAgICAgICAgICAgICBpZiBSb290LkNoaWxkICE9IFtdIGFuZCBSb290LkNoaWxkWzBd Lk9wQ29kZSAhPSBFRklfSUZSX0VORF9PUDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYu d3JpdGUoVmFsdWVJbmRlbnQgKyAiY29tcG9uZW50OiAgXG4iKQ0KPiArDQo+ICsgICAgICAgICAg ICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9BQ1RJT05fT1A6DQo+ICsgICAgICAgICAg ICAgICAgICAgIGYud3JpdGUoS2V5SW5kZW50ICsgIi0gYWN0aW9uOlxuIikNCj4gKyAgICAgICAg ICAgICAgICAgICAgc2VsZi5EdW1wUXVlc3Rpb25JbmZvcyhSb290LCBmLCBWYWx1ZUluZGVudCkN Cj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1jb25maWc6ICB7 SW5mby5RdWVzdGlvbkNvbmZpZ30gICMNCj4gUXVlc3Rpb25Db25maWdcbiIpDQo+ICsgICAgICAg ICAgICAgICAgICAgIGlmIFJvb3QuQ2hpbGQgIT0gW10gYW5kIFJvb3QuQ2hpbGRbMF0uT3BDb2Rl ICE9IEVGSV9JRlJfRU5EX09QOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShW YWx1ZUluZGVudCArICJjb21wb25lbnQ6ICBcbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBp ZiBSb290Lk9wQ29kZSA9PSBFRklfSUZSX09ORV9PRl9PUDoNCj4gKyAgICAgICAgICAgICAgICAg ICAgZi53cml0ZShLZXlJbmRlbnQgKyAiLSBvbmVvZjpcbiIpDQo+ICsgICAgICAgICAgICAgICAg ICAgIHNlbGYuRHVtcFF1ZXN0aW9uSW5mb3MoUm9vdCwgZiwgVmFsdWVJbmRlbnQpDQo+ICsgICAg ICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9bWF4aW11bToge0luZm8uRGF0 YS5NYXhWYWx1ZX0gIw0KPiBPcHRpb25hbCBJbnB1dFxuIikNCj4gKyAgICAgICAgICAgICAgICAg ICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1taW5pbXVtOiB7SW5mby5EYXRhLk1pblZhbHVlfSAj IE9wdGlvbmFsDQo+IElucHV0XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYi e1ZhbHVlSW5kZW50fXN0ZXA6IHsnMHglMHgnICUgSW5mby5EYXRhLlN0ZXB9ICMgT3B0aW9uYWwN Cj4gSW5wdXRcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIFJvb3QuQ2hpbGQgIT0gW10g YW5kIFJvb3QuQ2hpbGRbMF0uT3BDb2RlICE9IEVGSV9JRlJfRU5EX09QOg0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgZi53cml0ZShWYWx1ZUluZGVudCArICJjb21wb25lbnQ6ICBcbiIpDQo+ ICsNCj4gKyAgICAgICAgICAgICAgICBpZiBSb290Lk9wQ29kZSA9PSBFRklfSUZSX09ORV9PRl9P UFRJT05fT1A6DQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoS2V5SW5kZW50ICsgIi0g b3B0aW9uOiAgXG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICAjIGYud3JpdGUoZiJ7VmFsdWVJ bmRlbnR9YnVmZmVyOiB7c2VsZi5EdW1wQnVmZmVyKFJvb3QpfVxuIikNCj4gKw0KPiArICAgICAg ICAgICAgICAgICAgICBpZiBSb290LkNvbmRpdGlvbiBpcyBub3QgTm9uZToNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9Y29uZGl0aW9uOiAgJ3tSb290 LkNvbmRpdGlvbn0nXG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICAjIGYud3JpdGUoVmFsdWVJ bmRlbnQgKyAndGV4dDogIHt9ICMgT3B0aW9uDQo+IFNUUklOR19JRFxuJy5mb3JtYXQoJzB4JTA0 eCcgJSAoSW5mby5PcHRpb24pKSkNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntW YWx1ZUluZGVudH10ZXh0OiAne3NlbGYuX0Rpc3BsYXlVbmlTdHIoSW5mby5PcHRpb24pfSdcbiIp DQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9ZmxhZ3M6IHtJ bmZvLkZsYWdzfSAjIE9wdGlvbmFsIElucHV0XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBm LndyaXRlKGYie1ZhbHVlSW5kZW50fXR5cGU6IHsnMHglMDR4JyAlIEluZm8uVHlwZX0gIyBPcHRp b25hbA0KPiBJbnB1dFxuIikNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBpZiB0eXBlKFJv b3QuRGF0YSkgPT0gSWZyT25lT2ZPcHRpb246DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBp ZiBSb290LlBvc2l0aW9uIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9cG9zaXRpb246ICd7Um9vdC5Qb3NpdGlvbn0nICMg Zm9yDQo+IHJlZmVyZW5jZVxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUo ZiJ7VmFsdWVJbmRlbnR9dmFsdWU6IHtSb290LkRhdGEuVmFsdWVTdHJlYW19XG4iKQ0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgIyBuZWVkIHRvIHNhdmUgdGhlIFZhbHVlU3RyZWFtIGluIFlh bWxUcmVlLnB5DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAjIGYud3JpdGUoVmFsdWVJbmRl bnQgKyAidmFsdWU6ICB7fVxuIi5mb3JtYXQoSW5mby5WYWx1ZSkpDQo+ICsNCj4gKyAgICAgICAg ICAgICAgICAgICAgaWYgUm9vdC5DaGlsZCAhPSBbXSBhbmQgUm9vdC5DaGlsZFswXS5PcENvZGUg IT0gRUZJX0lGUl9FTkRfT1A6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKFZh bHVlSW5kZW50ICsgImNvbXBvbmVudDogIFxuIikNCj4gKw0KPiArICAgICAgICAgICAgICAgIGlm IFJvb3QuT3BDb2RlID09IEVGSV9JRlJfREVGQVVMVF9PUDoNCj4gKyAgICAgICAgICAgICAgICAg ICAgZi53cml0ZShLZXlJbmRlbnQgKyAiLSBkZWZhdWx0OlxuIikNCj4gKyAgICAgICAgICAgICAg ICAgICAgIyBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWJ1ZmZlcjoge3NlbGYuRHVtcEJ1ZmZlcihS b290KX1cbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgUm9vdC5Db25kaXRpb24g aXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVl SW5kZW50fWNvbmRpdGlvbjogICd7Um9vdC5Db25kaXRpb259J1xuIikNCj4gKyAgICAgICAgICAg ICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1kZWZhdWx0SWQ6IHtJbmZvLkRlZmF1bHRJ ZH1cbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9dHlw ZToge0luZm8uVHlwZX1cbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIHR5cGUoUm9vdC5E YXRhKSA9PSBJZnJEZWZhdWx0OiAgIyB2ZnJDb25zdGFudFZhbHVlRmllbGRbTm9kZV0NCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICMgaWYgUm9vdC5EYXRhLlZhbHVlU3RyZWFtICE9ICIiOg0K PiArICAgICAgICAgICAgICAgICAgICAgICAgIyBpZiAiZm9ybXNldGd1aWQiIGluIFJvb3QuRGlj dDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIFJvb3QuRGF0YS5WYWx1ZVN0cmVh bS5yZXBsYWNlID0NCj4gUm9vdC5EYXRhLlZhbHVlU3RyZWFtLnJlcGxhY2UoDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAjICAgICAgICAgUm9vdC5EaWN0WyJmb3Jtc2V0Z3VpZCJdLktleSwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICMNCj4gc2VsZi5QcmVQcm9jZXNzREIuUmV2ZXJ0 VmFsdWUoUm9vdC5EaWN0WyJmb3Jtc2V0Z3VpZCJdLlZhbHVlKSwNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICMgICAgICkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICMgaWYgImRldmlj ZXBhdGgiIGluIFJvb3QuRGljdDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIFJv b3QuRGF0YS5WYWx1ZVN0cmVhbS5yZXBsYWNlID0NCj4gUm9vdC5EYXRhLlZhbHVlU3RyZWFtLnJl cGxhY2UoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgUm9vdC5EaWN0WyJk ZXZpY2VwYXRoIl0uS2V5LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIw0KPiBzZWxmLlBy ZVByb2Nlc3NEQi5SZXZlcnRWYWx1ZShSb290LkRpY3RbImRldmljZXBhdGgiXS5WYWx1ZSksDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAjICAgICApDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAjIGlmICJzdHJpbmciIGluIFJvb3QuRGljdDoNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICMgICAgIFJvb3QuRGF0YS5WYWx1ZVN0cmVhbS5yZXBsYWNlID0NCj4gUm9vdC5EYXRhLlZh bHVlU3RyZWFtLnJlcGxhY2UoUm9vdC5EaWN0WyJzdHJpbmciXS5LZXksXA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgIyAgICAgICAgIHNlbGYuUHJlUHJvY2Vzc0RCLlJldmVydFZhbHVlKFJv b3QuRGljdFsic3RyaW5nIl0uVmFsdWUpKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53 cml0ZShmIntWYWx1ZUluZGVudH12YWx1ZToge1Jvb3QuRGF0YS5WYWx1ZVN0cmVhbX1cbiIpDQo+ ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgZWxpZiB0eXBlKFJvb3QuRGF0YSkgPT0gSWZyRGVm YXVsdDI6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50 fXZhbHVlX2V4cDoNCj4gJ3tSb290LkNoaWxkWzBdLkV4cHJlc3Npb259J1xuIikNCj4gKw0KPiAr ICAgICAgICAgICAgICAgICAgICAjIGlmIFJvb3QuRGF0YS5EZWZhdWx0U3RvcmUgIT0gJyc6DQo+ ICsgICAgICAgICAgICAgICAgICAgICMgICAgIGYud3JpdGUoVmFsdWVJbmRlbnQgKyAnZGVmYXVs dHN0b3JlOiB7fSAjIGZvcg0KPiByZWZlcmVuY2VcbicuZm9ybWF0KFJvb3QuRGF0YS5EZWZhdWx0 U3RvcmUpKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lG Ul9PUkRFUkVEX0xJU1RfT1A6DQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoS2V5SW5k ZW50ICsgIi0gb3JkZXJlZGxpc3Q6XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLkR1 bXBRdWVzdGlvbkluZm9zKFJvb3QsIGYsIFZhbHVlSW5kZW50KQ0KPiArICAgICAgICAgICAgICAg ICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fW1heGNvbnRhaW5lcnM6IHtJbmZvLk1heENvbnRh aW5lcnN9ICMjDQo+IE9wdGlvbmFsIElucHV0XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBp ZiBSb290LkNoaWxkICE9IFtdIGFuZCBSb290LkNoaWxkWzBdLk9wQ29kZSAhPSBFRklfSUZSX0VO RF9PUDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoVmFsdWVJbmRlbnQgKyAi Y29tcG9uZW50OiAgXG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUg PT0gRUZJX0lGUl9OVU1FUklDX09QOg0KPiArICAgICAgICAgICAgICAgICAgICBmLndyaXRlKEtl eUluZGVudCArICItIG51bWVyaWM6XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLkR1 bXBRdWVzdGlvbkluZm9zKFJvb3QsIGYsIFZhbHVlSW5kZW50KQ0KPiArICAgICAgICAgICAgICAg ICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fW1heGltdW06IHtJbmZvLkRhdGEuTWF4VmFsdWV9 ICMNCj4gT3B0aW9uYWwgSW5wdXRcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUo ZiJ7VmFsdWVJbmRlbnR9bWluaW11bToge0luZm8uRGF0YS5NaW5WYWx1ZX0gIyBPcHRpb25hbA0K PiBJbnB1dFxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVu dH1zdGVwOiB7SW5mby5EYXRhLlN0ZXB9ICMgT3B0aW9uYWwgSW5wdXRcbiIpDQo+ICsgICAgICAg ICAgICAgICAgICAgIGlmIFJvb3QuQ2hpbGQgIT0gW10gYW5kIFJvb3QuQ2hpbGRbMF0uT3BDb2Rl ICE9IEVGSV9JRlJfRU5EX09QOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShW YWx1ZUluZGVudCArICJjb21wb25lbnQ6ICBcbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBp ZiBSb290Lk9wQ29kZSA9PSBFRklfSUZSX0NIRUNLQk9YX09QOg0KPiArICAgICAgICAgICAgICAg ICAgICBmLndyaXRlKEtleUluZGVudCArICItIGNoZWNrYm94OlxuIikNCj4gKyAgICAgICAgICAg ICAgICAgICAgc2VsZi5EdW1wUXVlc3Rpb25JbmZvcyhSb290LCBmLCBWYWx1ZUluZGVudCkNCj4g KyAgICAgICAgICAgICAgICAgICAgaWYgUm9vdC5DaGlsZCAhPSBbXSBhbmQgUm9vdC5DaGlsZFsw XS5PcENvZGUgIT0gRUZJX0lGUl9FTkRfT1A6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBm LndyaXRlKFZhbHVlSW5kZW50ICsgImNvbXBvbmVudDogIFxuIikNCj4gKw0KPiArICAgICAgICAg ICAgICAgIGlmIFJvb3QuT3BDb2RlID09IEVGSV9JRlJfVElNRV9PUDoNCj4gKyAgICAgICAgICAg ICAgICAgICAgZi53cml0ZShLZXlJbmRlbnQgKyAiLSB0aW1lOlxuIikNCj4gKyAgICAgICAgICAg ICAgICAgICAgc2VsZi5EdW1wUXVlc3Rpb25JbmZvcyhSb290LCBmLCBWYWx1ZUluZGVudCkNCj4g KyAgICAgICAgICAgICAgICAgICAgaWYgUm9vdC5DaGlsZCAhPSBbXSBhbmQgUm9vdC5DaGlsZFsw XS5PcENvZGUgIT0gRUZJX0lGUl9FTkRfT1A6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBm LndyaXRlKFZhbHVlSW5kZW50ICsgImNvbXBvbmVudDogIFxuIikNCj4gKw0KPiArICAgICAgICAg ICAgICAgIGlmIFJvb3QuT3BDb2RlID09IEVGSV9JRlJfREFURV9PUDoNCj4gKyAgICAgICAgICAg ICAgICAgICAgZi53cml0ZShLZXlJbmRlbnQgKyAiLSBkYXRlOlxuIikNCj4gKyAgICAgICAgICAg ICAgICAgICAgc2VsZi5EdW1wUXVlc3Rpb25JbmZvcyhSb290LCBmLCBWYWx1ZUluZGVudCkNCj4g KyAgICAgICAgICAgICAgICAgICAgaWYgUm9vdC5DaGlsZCAhPSBbXSBhbmQgUm9vdC5DaGlsZFsw XS5PcENvZGUgIT0gRUZJX0lGUl9FTkRfT1A6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBm LndyaXRlKFZhbHVlSW5kZW50ICsgImNvbXBvbmVudDogIFxuIikNCj4gKw0KPiArICAgICAgICAg ICAgICAgIGlmIFJvb3QuT3BDb2RlID09IEVGSV9JRlJfU1RSSU5HX09QOg0KPiArICAgICAgICAg ICAgICAgICAgICBmLndyaXRlKEtleUluZGVudCArICItIHN0cmluZzpcbiIpDQo+ICsgICAgICAg ICAgICAgICAgICAgIHNlbGYuRHVtcFF1ZXN0aW9uSW5mb3MoUm9vdCwgZiwgVmFsdWVJbmRlbnQp DQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9bWluc2l6ZTog e0luZm8uTWluU2l6ZX1cbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFs dWVJbmRlbnR9bWF4c2l6ZToge0luZm8uTWF4U2l6ZX1cbiIpDQo+ICsgICAgICAgICAgICAgICAg ICAgIGlmIFJvb3QuQ2hpbGQgIT0gW10gYW5kIFJvb3QuQ2hpbGRbMF0uT3BDb2RlICE9IEVGSV9J RlJfRU5EX09QOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShWYWx1ZUluZGVu dCArICJjb21wb25lbnQ6ICBcbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBpZiBSb290Lk9w Q29kZSA9PSBFRklfSUZSX1BBU1NXT1JEX09QOg0KPiArICAgICAgICAgICAgICAgICAgICBmLndy aXRlKEtleUluZGVudCArICItIHBhc3N3b3JkOlxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAg c2VsZi5EdW1wUXVlc3Rpb25JbmZvcyhSb290LCBmLCBWYWx1ZUluZGVudCkNCj4gKyAgICAgICAg ICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1taW5zaXplOiB7SW5mby5NaW5TaXpl fVxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1tYXhz aXplOiB7SW5mby5NYXhTaXplfVxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgUm9vdC5D aGlsZCAhPSBbXSBhbmQgUm9vdC5DaGlsZFswXS5PcENvZGUgIT0gRUZJX0lGUl9FTkRfT1A6DQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKFZhbHVlSW5kZW50ICsgImNvbXBvbmVu dDogIFxuIikNCj4gKw0KPiArICAgICAgICAgICAgICAgIGlmIFJvb3QuT3BDb2RlID09IEVGSV9J RlJfUkVTRVRfQlVUVE9OX09QOg0KPiArICAgICAgICAgICAgICAgICAgICBmLndyaXRlKEtleUlu ZGVudCArICItIHJlc2V0YnV0dG9uOlxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgIyBmLndy aXRlKGYie1ZhbHVlSW5kZW50fWJ1ZmZlcjoge3NlbGYuRHVtcEJ1ZmZlcihSb290KX1cbiIpDQo+ ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgUm9vdC5Db25kaXRpb24gaXMgbm90IE5vbmU6 DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWNvbmRp dGlvbjogICd7Um9vdC5Db25kaXRpb259J1xuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgIyBm LndyaXRlKFZhbHVlSW5kZW50ICsgJ3Byb21wdDogIHt9ICAjIFN0YXRlbWVudCBQcm9tcHQNCj4g U1RSSU5HX0lEXG4nLmZvcm1hdCgnMHglMDR4JyAlIChJbmZvLlN0YXRlbWVudC5Qcm9tcHQpKSkN Cj4gKyAgICAgICAgICAgICAgICAgICAgIyBmLndyaXRlKFZhbHVlSW5kZW50ICsgJ2hlbHA6ICB7 fSAgIyBTdGF0ZW1lbnQgSGVscA0KPiBTVFJJTkdfSURcbicuZm9ybWF0KCcweCUwNHgnICUgKElu Zm8uU3RhdGVtZW50LkhlbHApKSkNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgIGYie1ZhbHVlSW5kZW50fXByb21wdDoNCj4gJ3tzZWxm Ll9EaXNwbGF5VW5pU3RyKEluZm8uU3RhdGVtZW50LlByb21wdCl9J1xuIg0KPiArICAgICAgICAg ICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRl bnR9aGVscDoNCj4gJ3tzZWxmLl9EaXNwbGF5VW5pU3RyKEluZm8uU3RhdGVtZW50LkhlbHApfSdc biIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9ZGVmYXVs dGlkOiB7SW5mby5EZWZhdWx0SWR9XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBpZiBSb290 LkNoaWxkICE9IFtdIGFuZCBSb290LkNoaWxkWzBdLk9wQ29kZSAhPSBFRklfSUZSX0VORF9PUDoN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoVmFsdWVJbmRlbnQgKyAiY29tcG9u ZW50OiAgXG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJ X0lGUl9SRUZfT1A6DQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoS2V5SW5kZW50ICsg Ii0gZ290bzpcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuRHVtcFF1ZXN0aW9uSW5m b3MoUm9vdCwgZiwgVmFsdWVJbmRlbnQpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYg dHlwZShSb290LkRhdGEpID09IElmclJlZjQ6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBm LndyaXRlKGYie1ZhbHVlSW5kZW50fWZvcm1pZDogIHsnMHgleCcgJSBJbmZvLkZvcm1JZH1cbiIp DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGYie1ZhbHVlSW5kZW50fWZvcm1zZXRndWlkOiAgJ3t7e0luZm8uRm9ybVNl dElkLkRhdGExOiN4fSwNCj4ge0luZm8uRm9ybVNldElkLkRhdGEyOiN4fSwge0luZm8uRm9ybVNl dElkLkRhdGEzOiN4fSwge3sgeycsICcuam9pbihmJ3t4OiN4fScgZm9yIHgNCj4gaW4gSW5mby5G b3JtU2V0SWQuRGF0YTQpfX19fX0nICMgIE9wdGlvbmFsIElucHV0XG4iDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAjIGYud3JpdGUoVmFs dWVJbmRlbnQgKyAncXVlc3Rpb246ICB7fSAjICBPcHRpb25hbA0KPiBJbnB1dFxuJy5mb3JtYXQo JzB4JXgnICUgKEluZm8uUXVlc3Rpb25JZCkpKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAg Zi53cml0ZSgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmIntWYWx1ZUluZGVudH1k ZXZpY2VwYXRoOg0KPiAne3NlbGYuX0Rpc3BsYXlVbmlTdHIoSW5mby5EZXZpY2VQYXRoKX0nICMg T3B0aW9uYWwgSW5wdXRcbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICkNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICMgZi53cml0ZSgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICMgICAgIGYie1ZhbHVlSW5kZW50fWRldmljZXBhdGg6IHsnMHglMDR4JyAlIEluZm8uRGV2aWNl UGF0aH0gIw0KPiBPcHRpb25hbCBJbnB1dFxuIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAg IyApDQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgdHlwZShSb290LkRhdGEpID09IElm clJlZjM6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50 fWZvcm1pZDogIHsnMHgleCcgJSBJbmZvLkZvcm1JZH1cbiIpDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICBmLndyaXRlKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYie1ZhbHVl SW5kZW50fWZvcm1zZXRndWlkOiAgJ3t7e0luZm8uRm9ybVNldElkLkRhdGExOiN4fSwNCj4ge0lu Zm8uRm9ybVNldElkLkRhdGEyOiN4fSwge0luZm8uRm9ybVNldElkLkRhdGEzOiN4fSwge3sgeycs ICcuam9pbihmJ3t4OiN4fScgZm9yIHgNCj4gaW4gSW5mby5Gb3JtU2V0SWQuRGF0YTQpfX19fX0n ICMgIE9wdGlvbmFsIElucHV0XG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICApDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGYie1ZhbHVlSW5kZW50fXF1ZXN0aW9uOiB7JzB4JXgnICUgSW5mby5RdWVzdGlvbklk fSAjDQo+IE9wdGlvbmFsIElucHV0XG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICApDQo+ ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgdHlwZShSb290LkRhdGEpID09IElmclJlZjI6 DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWZvcm1p ZDogIHsnMHgleCcgJSBJbmZvLkZvcm1JZH1cbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fXF1ZXN0aW9uOiB7SW5mby5RdWVzdGlvbklkfSAjIE9w dGlvbmFsDQo+IElucHV0XG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIHR5cGUo Um9vdC5EYXRhKSA9PSBJZnJSZWY6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRl KGYie1ZhbHVlSW5kZW50fWZvcm1pZDogIHsnMHgleCcgJSBJbmZvLkZvcm1JZH1cbiIpDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGYie1ZhbHVlSW5kZW50fXF1ZXN0aW9uOiB7JzB4JTA0eCcgJQ0KPiBJbmZvLlF1ZXN0 aW9uLlF1ZXN0aW9uSWR9ICMgT3B0aW9uYWwgSW5wdXRcbiINCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICkNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBpZiBSb290LkNoaWxkICE9IFtd IGFuZCBSb290LkNoaWxkWzBdLk9wQ29kZSAhPSBFRklfSUZSX0VORF9PUDoNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgIGYud3JpdGUoVmFsdWVJbmRlbnQgKyAiY29tcG9uZW50OiAgXG4iKQ0K PiArDQo+ICsgICAgICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9SRUZSRVNI X09QOg0KPiArICAgICAgICAgICAgICAgICAgICBmLndyaXRlKEtleUluZGVudCArICItIHJlZnJl c2g6XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICAjIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9 YnVmZmVyOiB7c2VsZi5EdW1wQnVmZmVyKFJvb3QpfVxuIikNCj4gKw0KPiArICAgICAgICAgICAg ICAgICAgICBpZiBSb290LkNvbmRpdGlvbiBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9Y29uZGl0aW9uOiAgJ3tSb290LkNvbmRp dGlvbn0nXG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50 fWludGVydmFsOiB7SW5mby5SZWZyZXNoSW50ZXJ2YWx9ICAjDQo+IFJlZnJlc2hJbnRlcnZhbFxu IikNCj4gKw0KPiArICAgICAgICAgICAgICAgIGlmIFJvb3QuT3BDb2RlID09IEVGSV9JRlJfVkFS U1RPUkVfREVWSUNFX09QOg0KPiArICAgICAgICAgICAgICAgICAgICBmLndyaXRlKEtleUluZGVu dCArICItIHZhcnN0b3JlZGV2aWNlOlxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgIyBmLndy aXRlKGYie1ZhbHVlSW5kZW50fWJ1ZmZlcjoge3NlbGYuRHVtcEJ1ZmZlcihSb290KX1cbiIpDQo+ ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgUm9vdC5Db25kaXRpb24gaXMgbm90IE5vbmU6 DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWNvbmRp dGlvbjogICd7Um9vdC5Db25kaXRpb259J1xuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53 cml0ZShmIntWYWx1ZUluZGVudH1kZXZpY2VwYXRoOiB7SW5mby5EZXZpY2VQYXRofSAgIw0KPiBE ZXZpY2VQYXRoXG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0g RUZJX0lGUl9SRUZSRVNIX0lEX09QOg0KPiArICAgICAgICAgICAgICAgICAgICBmLndyaXRlKEtl eUluZGVudCArICItIHJlZnJlc2hndWlkOlxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgIyBm LndyaXRlKGYie1ZhbHVlSW5kZW50fWJ1ZmZlcjoge3NlbGYuRHVtcEJ1ZmZlcihSb290KX1cbiIp DQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgUm9vdC5Db25kaXRpb24gaXMgbm90IE5v bmU6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWNv bmRpdGlvbjogICd7Um9vdC5Db25kaXRpb259J1xuIikNCj4gKyAgICAgICAgICAgICAgICAgICAg Zi53cml0ZSgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYie1ZhbHVlSW5kZW50fWd1aWQ6 ICAne3t7SW5mby5SZWZyZXNoRXZlbnRHcm91cElkLkRhdGExOiN4fSwNCj4ge0luZm8uUmVmcmVz aEV2ZW50R3JvdXBJZC5EYXRhMjojeH0sIHtJbmZvLlJlZnJlc2hFdmVudEdyb3VwSWQuRGF0YTM6 I3h9LA0KPiB7eyB7JywgJy5qb2luKGYne3g6I3h9JyBmb3IgeCBpbiBJbmZvLlJlZnJlc2hFdmVu dEdyb3VwSWQuRGF0YTQpfX19fX0nIFxuIg0KPiArICAgICAgICAgICAgICAgICAgICApDQo+ICsN Cj4gKyAgICAgICAgICAgICAgICBpZiBSb290Lk9wQ29kZSA9PSBFRklfSUZSX1dBUk5JTkdfSUZf T1A6DQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoS2V5SW5kZW50ICsgIi0gd2Fybmlu Z2lmOlxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgIyBmLndyaXRlKGYie1ZhbHVlSW5kZW50 fWJ1ZmZlcjoge3NlbGYuRHVtcEJ1ZmZlcihSb290KX1cbiIpDQo+ICsNCj4gKyAgICAgICAgICAg ICAgICAgICAgaWYgUm9vdC5Db25kaXRpb24gaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWNvbmRpdGlvbjogICd7Um9vdC5Db25k aXRpb259J1xuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgIGYie1ZhbHVlSW5kZW50fXByb21wdDogJ3tzZWxmLl9EaXNwbGF5VW5p U3RyKEluZm8uV2FybmluZyl9JyAjDQo+IE9wdGlvbmFsIElucHV0XG4iDQo+ICsgICAgICAgICAg ICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICAgICAgIyBmLndyaXRlKGYie1ZhbHVlSW5k ZW50fXdhcm5pbmc6IHtJbmZvLldhcm5pbmd9XG4iKSAjcGVuZGluZw0KPiArICAgICAgICAgICAg ICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fXRpbWVvdXQ6IHtJbmZvLlRpbWVPdXR9ICMg b3B0aW9uYWwNCj4gaW5wdXRcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7 VmFsdWVJbmRlbnR9ZXhwcmVzc2lvbjogIHtSb290LkV4cHJlc3Npb259XG4iKQ0KPiArDQo+ICsg ICAgICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9HVUlEX09QOg0KPiArICAg ICAgICAgICAgICAgICAgICBpZiB0eXBlKFJvb3QuRGF0YSkgPT0gSWZyTGFiZWw6ICAjIHR5cGUo SW5mbykgPT0NCj4gRUZJX0lGUl9HVUlEX0xBQkVMDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICBmLndyaXRlKEtleUluZGVudCArICItIGxhYmVsOlxuIikNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICMgZi53cml0ZShmIntWYWx1ZUluZGVudH1idWZmZXI6IHtzZWxmLkR1bXBCdWZmZXIo Um9vdCl9XG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiBSb290LkNvbmRp dGlvbiBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRl KGYie1ZhbHVlSW5kZW50fWNvbmRpdGlvbjogICd7Um9vdC5Db25kaXRpb259J1xuIikNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9bnVtYmVyOiB7JzB4 JXgnICUgSW5mby5OdW1iZXJ9ICAjDQo+IE51bWJlclxuIikNCj4gKw0KPiArICAgICAgICAgICAg ICAgICAgICBpZiB0eXBlKFJvb3QuRGF0YSkgPT0gSWZyQmFubmVyOg0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgZi53cml0ZShLZXlJbmRlbnQgKyAiLSBiYW5uZXI6XG4iKQ0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgIyBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWJ1ZmZlcjoge3NlbGYu RHVtcEJ1ZmZlcihSb290KX1cbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGlm IFJvb3QuQ29uZGl0aW9uIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9Y29uZGl0aW9uOiAgJ3tSb290LkNvbmRpdGlvbn0n XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmIntWYWx1ZUluZGVudH10aXRsZTogJ3tzZWxmLl9EaXNwbGF5VW5p U3RyKEluZm8uVGl0bGUpfScgIw0KPiBPcHRpb25hbCBJbnB1dFxuIg0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIyBmLndyaXRlKGYie1Zh bHVlSW5kZW50fXRpdGxlOiB7SW5mby5UaXRsZX1cbiIpDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWxpbmU6IHtJbmZvLkxpbmVOdW1iZXJ9XG4iKQ0K PiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1hbGlnbjog e0luZm8uQWxpZ25tZW50fVxuIikNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBpZiB0eXBl KFJvb3QuRGF0YSkgPT0gSWZyVGltZW91dDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYu d3JpdGUoS2V5SW5kZW50ICsgIi0gdGltZW91dCBpbiBiYW5uZXI6XG4iKQ0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgIyBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWJ1ZmZlcjoge3NlbGYuRHVt cEJ1ZmZlcihSb290KX1cbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIFJv b3QuQ29uZGl0aW9uIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg IGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9Y29uZGl0aW9uOiAgJ3tSb290LkNvbmRpdGlvbn0nXG4i KQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH10aW1l b3V0OiB7SW5mby5UaW1lT3V0fVxuIikNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBpZiB0 eXBlKFJvb3QuRGF0YSkgPT0gSWZyQ2xhc3M6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBm LndyaXRlKGYie0tleUluZGVudH1jbGFzczoge0luZm8uQ2xhc3N9XG4iKQ0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgIyBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWJ1ZmZlcjoge3NlbGYuRHVt cEJ1ZmZlcihSb290KX1cbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5v dCBSb290LkRhdGEuSGFzU3ViQ2xhc3M6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg Zi53cml0ZShLZXlJbmRlbnQgKyAiY29tcG9uZW50OiAgXG4iKQ0KPiArDQo+ICsgICAgICAgICAg ICAgICAgICAgIGlmIHR5cGUoUm9vdC5EYXRhKSA9PSBJZnJTdWJDbGFzczoNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7S2V5SW5kZW50fXN1YmNsYXNzOiB7SW5mby5TdWJD bGFzc31cbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKEtleUluZGVudCAr ICJjb21wb25lbnQ6ICBcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAjIGYud3JpdGUo ZiJ7VmFsdWVJbmRlbnR9YnVmZmVyOiB7c2VsZi5EdW1wQnVmZmVyKFJvb3QpfVxuIikNCj4gKw0K PiArICAgICAgICAgICAgICAgICAgICBpZiB0eXBlKFJvb3QuRGF0YSkgPT0gSWZyRXh0ZW5zaW9u R3VpZDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHR5cGUoUm9vdC5QYXJlbnQuRGF0 YSkgPT0gSWZyRXh0ZW5zaW9uR3VpZDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBS b290LkxldmVsIC09IDENCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlJbmRlbnQg PSAiICIgKiAoKFJvb3QuTGV2ZWwgKiAyIC0gMSkgKiAyKQ0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFZhbHVlSW5kZW50ID0gIiAiICogKChSb290LkxldmVsICogMiArIDEpICogMikN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoS2V5SW5kZW50ICsgIi0gZ3VpZG9w OlxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICMgZi53cml0ZShmIntWYWx1ZUluZGVu dH1idWZmZXI6IHtzZWxmLkR1bXBCdWZmZXIoUm9vdCl9XG4iKQ0KPiArDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICBpZiBSb290LkNvbmRpdGlvbiBpcyBub3QgTm9uZToNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWNvbmRpdGlvbjogICd7 Um9vdC5Db25kaXRpb259J1xuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUo DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgZiJ7VmFsdWVJbmRlbnR9Z3VpZDogICd7 e3tJbmZvLkd1aWQuRGF0YTE6I3h9LA0KPiB7SW5mby5HdWlkLkRhdGEyOiN4fSwge0luZm8uR3Vp ZC5EYXRhMzojeH0sIHt7IHsnLCAnLmpvaW4oZid7eDojeH0nIGZvciB4IGluDQo+IEluZm8uR3Vp ZC5EYXRhNCl9fX19fScgXG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICApDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICBpZiBSb290LkRhdGEuR2V0RGF0YVR5cGUoKSAhPSAiIjoNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGYud3JpdGUoVmFsdWVJbmRlbnQgKyAnZGF0 YWJ1ZmZlcjogI29wdGlvbmFsIGlucHV0XG4nKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9e1Jvb3QuRGF0YS5HZXREYXRhVHlwZSgpfTogXG4i KQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBkYXRhIGluIFJvb3QuRGF0YS5H ZXRGaWVsZExpc3QoKToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0 ZShmIntWYWx1ZUluZGVudH0gIHtkYXRhWzBdfTogeycweCV4JyAlIGRhdGFbMV19XG4iKQ0KPiAr DQo+ICsgICAgICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9JTkNPTlNJU1RF TlRfSUZfT1A6DQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIHR5cGUoUm9vdC5EYXRhKSA9PSBJ ZnJJbmNvbnNpc3RlbnRJZjI6ICAjDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRl KEtleUluZGVudCArICItIGluY29uc2lzdGVudGlmOlxuIikNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICMgZi53cml0ZShmIntWYWx1ZUluZGVudH1idWZmZXI6IHtzZWxmLkR1bXBCdWZmZXIo Um9vdCl9XG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiBSb290LkNvbmRp dGlvbiBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRl KGYie1ZhbHVlSW5kZW50fWNvbmRpdGlvbjogICd7Um9vdC5Db25kaXRpb259J1xuIikNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICMgZi53cml0ZShWYWx1ZUluZGVudCArICdwcm9tcHQ6ICB7 fSAjDQo+IFNUUklOR19JRFxuJy5mb3JtYXQoJzB4JTA0eCcgJSAoSW5mby5FcnJvcikpKQ0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1wcm9tcHQ6DQo+ ICd7c2VsZi5fRGlzcGxheVVuaVN0cihJbmZvLkVycm9yKX0nXG4iKQ0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1leHByZXNzaW9uOiAgJ3tSb290LkV4 cHJlc3Npb259J1xuIikNCj4gKw0KPiArICAgICAgICAgICAgICAgIGlmIFJvb3QuT3BDb2RlID09 IEVGSV9JRlJfTk9fU1VCTUlUX0lGX09QOg0KPiArICAgICAgICAgICAgICAgICAgICBmLndyaXRl KEtleUluZGVudCArICItIG5vc3VibWl0aWY6XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICAj IGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9YnVmZmVyOiB7c2VsZi5EdW1wQnVmZmVyKFJvb3QpfVxu IikNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBpZiBSb290LkNvbmRpdGlvbiBpcyBub3Qg Tm9uZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9 Y29uZGl0aW9uOiAgJ3tSb290LkNvbmRpdGlvbn0nXG4iKQ0KPiArICAgICAgICAgICAgICAgICAg ICAjIGYud3JpdGUoVmFsdWVJbmRlbnQgKyAncHJvbXB0OiAge30gIw0KPiBTVFJJTkdfSURcbicu Zm9ybWF0KCcweCUwNHgnICUgKEluZm8uRXJyb3IpKSkNCj4gKyAgICAgICAgICAgICAgICAgICAg Zi53cml0ZShmIntWYWx1ZUluZGVudH1wcm9tcHQ6DQo+ICd7c2VsZi5fRGlzcGxheVVuaVN0cihJ bmZvLkVycm9yKX0nXG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVl SW5kZW50fWV4cHJlc3Npb246ICAne1Jvb3QuRXhwcmVzc2lvbn0nXG4iKQ0KPiArDQo+ICsgICAg ICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9SRUFEX09QOg0KPiArICAgICAg ICAgICAgICAgICAgICBmLndyaXRlKEtleUluZGVudCArICItIHJlYWQ6XG4iKQ0KPiArICAgICAg ICAgICAgICAgICAgICAjIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9YnVmZmVyOiB7c2VsZi5EdW1w QnVmZmVyKFJvb3QpfVxuIikNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBpZiBSb290LkNv bmRpdGlvbiBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUo ZiJ7VmFsdWVJbmRlbnR9Y29uZGl0aW9uOiAgJ3tSb290LkNvbmRpdGlvbn0nXG4iKQ0KPiArICAg ICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWV4cHJlc3Npb246ICAne1Jv b3QuRXhwcmVzc2lvbn0nXG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgaWYgUm9vdC5PcENv ZGUgPT0gRUZJX0lGUl9XUklURV9PUDoNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShL ZXlJbmRlbnQgKyAiLSB3cml0ZTpcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgICMgZi53cml0 ZShmIntWYWx1ZUluZGVudH1idWZmZXI6IHtzZWxmLkR1bXBCdWZmZXIoUm9vdCl9XG4iKQ0KPiAr DQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIFJvb3QuQ29uZGl0aW9uIGlzIG5vdCBOb25lOg0K PiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1jb25kaXRp b246ICAne1Jvb3QuQ29uZGl0aW9ufSdcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3Jp dGUoZiJ7VmFsdWVJbmRlbnR9ZXhwcmVzc2lvbjogICd7Um9vdC5FeHByZXNzaW9ufSdcbiIpDQo+ ICsNCj4gKyAgICAgICAgICAgICAgICBpZiBSb290Lk9wQ29kZSA9PSBFRklfSUZSX1ZBTFVFX09Q IGFuZCBSb290LlBhcmVudC5PcENvZGUgIT0NCj4gRUZJX0lGUl9ERUZBVUxUX09QOiAgIw0KPiAr ICAgICAgICAgICAgICAgICAgICBmLndyaXRlKEtleUluZGVudCArICItIHZhbHVlOlxuIikNCj4g KyAgICAgICAgICAgICAgICAgICAgIyBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWJ1ZmZlcjoge3Nl bGYuRHVtcEJ1ZmZlcihSb290KX1cbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53 cml0ZShmIntWYWx1ZUluZGVudH1leHByZXNzaW9uOiAgJ3tSb290LkV4cHJlc3Npb259J1xuIikN Cj4gKw0KPiArICAgICAgICAgICAgICAgIGlmIFJvb3QuT3BDb2RlID09IEVGSV9JRlJfTU9EQUxf VEFHX09QOg0KPiArICAgICAgICAgICAgICAgICAgICBmLndyaXRlKEtleUluZGVudCArICItIG1v ZGFsOiBcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgICMgZi53cml0ZShmIntWYWx1ZUluZGVu dH1idWZmZXI6IHtzZWxmLkR1bXBCdWZmZXIoUm9vdCl9XG4iKQ0KPiArDQo+ICsgICAgICAgICAg ICAgICAgICAgIGlmIFJvb3QuQ29uZGl0aW9uIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1jb25kaXRpb246ICAne1Jvb3QuQ29u ZGl0aW9ufSdcbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBpZiBSb290Lk9wQ29kZSA9PSBF RklfSUZSX0xPQ0tFRF9PUDoNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShLZXlJbmRl bnQgKyAiLSBsb2NrZWQ6IFxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgIyBmLndyaXRlKGYi e1ZhbHVlSW5kZW50fWJ1ZmZlcjoge3NlbGYuRHVtcEJ1ZmZlcihSb290KX1cbiIpDQo+ICsNCj4g KyAgICAgICAgICAgICAgICAgICAgaWYgUm9vdC5Db25kaXRpb24gaXMgbm90IE5vbmU6DQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWNvbmRpdGlvbjog ICd7Um9vdC5Db25kaXRpb259J1xuIikNCj4gKw0KPiArICAgICAgICAgICAgc2VsZi5MYXN0T3Ag PSBSb290Lk9wQ29kZQ0KPiArDQo+ICsgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246DQo+ICsgICAg ICAgICAgICBFZGtMb2dnZXIuZXJyb3IoDQo+ICsgICAgICAgICAgICAgICAgIlZmckNvbXBpbGVy IiwNCj4gKyAgICAgICAgICAgICAgICBGSUxFX1dSSVRFX0ZBSUxVUkUsDQo+ICsgICAgICAgICAg ICAgICAgIkZpbGUgd3JpdGUgZmFpbGVkIGZvciAlcyIgJSAoc2VsZi5PcHRpb25zLllhbWxGaWxl TmFtZSksDQo+ICsgICAgICAgICAgICAgICAgTm9uZSwNCj4gKyAgICAgICAgICAgICkNCj4gKw0K PiArICAgICAgICBpZiBSb290LkNoaWxkICE9IFtdOg0KPiArICAgICAgICAgICAgZm9yIENoaWxk Tm9kZSBpbiBSb290LkNoaWxkOg0KPiArICAgICAgICAgICAgICAgIGlmIFJvb3QuT3BDb2RlIGlu IENvbmRpdGlvbk9wcyBhbmQgdHlwZShSb290LkRhdGEpICE9DQo+IElmckluY29uc2lzdGVudElm MjoNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgKA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgQ2hpbGROb2RlLk9wQ29kZSBpbiBDb25kaXRpb25PcHMNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgIGFuZCB0eXBlKENoaWxkTm9kZS5EYXRhKSAhPSBJZnJJbmNvbnNpc3RlbnRJZjINCj4g KyAgICAgICAgICAgICAgICAgICAgKToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIENoaWxk Tm9kZS5Db25kaXRpb24gPSBSb290LkNvbmRpdGlvbiArICIgfCAiICsNCj4gQ2hpbGROb2RlLkNv bmRpdGlvbg0KPiArICAgICAgICAgICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgQ2hpbGROb2RlLkNvbmRpdGlvbiA9IFJvb3QuQ29uZGl0aW9uDQo+ICsNCj4gKyAg ICAgICAgICAgICAgICAgICAgaWYgdHlwZShDaGlsZE5vZGUuRGF0YSkgPT0gSWZySW5jb25zaXN0 ZW50SWYyOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgQ2hpbGROb2RlLkxldmVsID0gUm9v dC5MZXZlbCArIDENCj4gKyAgICAgICAgICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIENoaWxkTm9kZS5MZXZlbCA9IFJvb3QuTGV2ZWwNCj4gKyAgICAgICAgICAg ICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgICAgICBpZiB0eXBlKFJvb3QuRGF0YSkgPT0g SWZyR3VpZCBhbmQgKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgQ2hpbGROb2RlLk9wQ29k ZQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgaW4gW0VGSV9JRlJfQ0hFQ0tCT1hfT1AsIEVG SV9JRlJfTlVNRVJJQ19PUCwNCj4gRUZJX0lGUl9PTkVfT0ZfT1BdDQo+ICsgICAgICAgICAgICAg ICAgICAgICk6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBDaGlsZE5vZGUuTGV2ZWwgPSBS b290LkxldmVsDQo+ICsgICAgICAgICAgICAgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICBDaGlsZE5vZGUuTGV2ZWwgPSBSb290LkxldmVsICsgMQ0KPiArDQo+ICsgICAg ICAgICAgICAgICAgc2VsZi5fRHVtcFlhbWxGb3JDb25maWdFZGl0b3JEZnMoQ2hpbGROb2RlLCBm KQ0KPiArDQo+ICsgICAgZGVmIF9EdW1wWWFtbEZvclhNTENMSURmcyhzZWxmLCBSb290LCBmKToN Cj4gKyAgICAgICAgdHJ5Og0KPiArICAgICAgICAgICAgaWYgUm9vdCBpcyBOb25lOg0KPiArICAg ICAgICAgICAgICAgIHJldHVybg0KPiArICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgaXMgbm90 IE5vbmU6DQo+ICsgICAgICAgICAgICAgICAgaWYgUm9vdC5MZXZlbCA9PSAwOg0KPiArICAgICAg ICAgICAgICAgICAgICBLZXlJbmRlbnQgPSAiIg0KPiArICAgICAgICAgICAgICAgICAgICBWYWx1 ZUluZGVudCA9ICIiDQo+ICsgICAgICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAg ICAgICAgS2V5SW5kZW50ID0gIiAiICogKChSb290LkxldmVsICogMiAtIDEpICogMikNCj4gKyAg ICAgICAgICAgICAgICAgICAgVmFsdWVJbmRlbnQgPSAiICIgKiAoKFJvb3QuTGV2ZWwgKiAyICsg MSkgKiAyKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgSW5mbyA9IFJvb3QuRGF0YS5HZXRJbmZv KCkNCj4gKw0KPiArICAgICAgICAgICAgICAgIGlmIFJvb3QuT3BDb2RlID09IEVGSV9JRlJfRk9S TV9TRVRfT1A6DQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoS2V5SW5kZW50ICsgImZv cm1zZXQ6XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBWYWx1ZUluZGVudCA9ICIgIiAqIChS b290LkxldmVsICsgMSkgKiAyDQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICBmIntWYWx1ZUluZGVudH1ndWlkOiAgJ3t7e0luZm8uR3Vp ZC5EYXRhMTojeH0sDQo+IHtJbmZvLkd1aWQuRGF0YTI6I3h9LCB7SW5mby5HdWlkLkRhdGEzOiN4 fSwge3sgeycsICcuam9pbihmJ3t4OiN4fScgZm9yIHggaW4NCj4gSW5mby5HdWlkLkRhdGE0KX19 fX19J1xuIg0KPiArICAgICAgICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAgICAgICAg IGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9dGl0bGU6DQo+ICd7c2VsZi5fRGlzcGxheVVuaVN0cihJ bmZvLkZvcm1TZXRUaXRsZSl9J1xuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShm IntWYWx1ZUluZGVudH1oZWxwOiAgJ3tzZWxmLl9EaXNwbGF5VW5pU3RyKEluZm8uSGVscCl9J1xu IikNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBpZiBSb290LkRhdGEuQ2xhc3NHdWlkTnVt ICE9IDA6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKFZhbHVlSW5kZW50ICsg ImNsYXNzZ3VpZDogICIpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiByYW5n ZSgwLCBsZW4oUm9vdC5EYXRhLkNsYXNzR3VpZCkpOg0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEd1aWQgPSBSb290LkRhdGEuR2V0Q2xhc3NHdWlkKClbaV0NCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiBpICE9IGxlbihSb290LkRhdGEuQ2xhc3NHdWlkKSAtIDE6DQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmIid7e3tHdWlkLkRhdGExOiN4fSwge0d1aWQuRGF0 YTI6I3h9LCB7R3VpZC5EYXRhMzojeH0sDQo+IHt7IHsnLCAnLmpvaW4oZid7eDojeH0nIGZvciB4 IGluIEd1aWQuRGF0YTQpfX19fX0nIHwgIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICApDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGYiJ3t7e0d1aWQuRGF0YTE6I3h9LCB7R3VpZC5EYXRhMjojeH0sIHtH dWlkLkRhdGEzOiN4fSwNCj4ge3sgeycsICcuam9pbihmJ3t4OiN4fScgZm9yIHggaW4gR3VpZC5E YXRhNCl9fX19fScgICMgT3B0aW9uYWwgSW5wdXQgXG4iDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBpZiAoDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICBSb290LkNoaWxkICE9IFtdDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICBhbmQgUm9vdC5DaGlsZFswXS5PcENvZGUgIT0gRUZJX0lGUl9FTkRfT1ANCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgIGFuZCB0eXBlKFJvb3QuQ2hpbGRbMF0uRGF0YSkgIT0gSWZy U3ViQ2xhc3MNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGFuZCB0eXBlKFJvb3QuQ2hpbGRb MF0uRGF0YSkgIT0gSWZyQ2xhc3MNCj4gKyAgICAgICAgICAgICAgICAgICAgKToNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgIGYud3JpdGUoVmFsdWVJbmRlbnQgKyAiY29tcG9uZW50OiAgXG4i KQ0KPiArICAgICAgICAgICAgICAgICAgICBlbGlmICgNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgIHR5cGUoUm9vdC5DaGlsZFswXS5EYXRhKSA9PSBJZnJDbGFzcw0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgYW5kIHR5cGUoUm9vdC5DaGlsZFsxXS5EYXRhKSA9PSBJZnJTdWJDbGFzcw0K PiArICAgICAgICAgICAgICAgICAgICApOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgUm9v dC5DaGlsZFswXS5EYXRhLkhhc1N1YkNsYXNzID0gVHJ1ZQ0KPiArDQo+ICsgICAgICAgICAgICAg ICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9WQVJTVE9SRV9PUDoNCj4gKyAgICAgICAgICAg ICAgICAgICAgZi53cml0ZShLZXlJbmRlbnQgKyAiLSB2YXJzdG9yZTpcbiIpDQo+ICsgICAgICAg ICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9dHlwZTogIHtSb290LkRhdGEuVHlw ZX1cbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIFJvb3QuRGF0YS5IYXNWYXJTdG9yZUlk Og0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH12YXJp ZDogIHtJbmZvLlZhclN0b3JlSWQ6IzA0eH0gIyBPcHRpb25hbA0KPiBJbnB1dFxuIikNCj4gKyAg ICAgICAgICAgICAgICAgICAgTmFtZSA9ICIiLmpvaW4oY2hyKHgpIGZvciB4IGluIEluZm8uTmFt ZSkNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1uYW1lOiAg e05hbWV9XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBmLndyaXRlKA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgZiJ7VmFsdWVJbmRlbnR9Z3VpZDogJ3t7e0luZm8uR3VpZC5EYXRhMToj eH0sDQo+IHtJbmZvLkd1aWQuRGF0YTI6I3h9LCB7SW5mby5HdWlkLkRhdGEzOiN4fSwge3sgeycs ICcuam9pbihmJ3t4OiN4fScgZm9yIHggaW4NCj4gSW5mby5HdWlkLkRhdGE0KX19fX19J1xuIg0K PiArICAgICAgICAgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBpZiBSb290 Lk9wQ29kZSA9PSBFRklfSUZSX1ZBUlNUT1JFX0VGSV9PUDoNCj4gKyAgICAgICAgICAgICAgICAg ICAgZi53cml0ZShLZXlJbmRlbnQgKyAiLSBlZml2YXJzdG9yZTpcbiIpDQo+ICsgICAgICAgICAg ICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9dHlwZTogIHtSb290LkRhdGEuVHlwZX1c biIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIFJvb3QuRGF0YS5IYXNWYXJTdG9yZUlkOg0K PiArICAgICAgICAgICAgICAgICAgICAgICAgaWYgInZhcmlkIiBpbiBSb290LkRpY3Q6DQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZiJ7VmFsdWVJbmRlbnR9dmFyaWQ6ICB7SW5mby5WYXJTdG9yZUlkOiMw NHh9ICMgT3B0aW9uYWwNCj4gSW5wdXRcbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICApDQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9YXR0cmli dXRlOiAge1Jvb3QuRGF0YS5BdHRyaWJ1dGVzVGV4dH0gXG4iKQ0KPiArICAgICAgICAgICAgICAg ICAgICBpZiBSb290LkRhdGEuTmFtZVN0cmluZ0lkOg0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgZi53cml0ZSgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmIntWYWx1ZUluZGVu dH1uYW1lOg0KPiAne3NlbGYuX0Rpc3BsYXlVbmlTdHIoUm9vdC5EYXRhLk5hbWVTdHJpbmdJZCl9 J1xuIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgZi53cml0ZShWYWx1ZUluZGVudCArICJ2YXJzaXplOiAgIiArIFJvb3QuRGF0YS5WYXJT aXplICsgIlxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIE5hbWUgPSAiIi5qb2luKGNocih4KSBmb3IgeCBpbiBJbmZvLk5hbWUpDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fW5hbWU6ICB7 TmFtZX1cbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICBmIntWYWx1ZUluZGVudH1ndWlkOiAgJ3t7e0luZm8uR3VpZC5EYXRhMToj eH0sDQo+IHtJbmZvLkd1aWQuRGF0YTI6I3h9LCB7SW5mby5HdWlkLkRhdGEzOiN4fSwge3sgeycs ICcuam9pbihmJ3t4OiN4fScgZm9yIHggaW4NCj4gSW5mby5HdWlkLkRhdGE0KX19fX19J1xuIg0K PiArICAgICAgICAgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBpZiBSb290 Lk9wQ29kZSA9PSBFRklfSUZSX1ZBUlNUT1JFX05BTUVfVkFMVUVfT1A6DQo+ICsgICAgICAgICAg ICAgICAgICAgIGYud3JpdGUoS2V5SW5kZW50ICsgIi0gbmFtZXZhbHVldmFyc3RvcmU6XG4iKQ0K PiArICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fXR5cGU6ICB7Um9v dC5EYXRhLlR5cGV9XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBpZiBSb290LkRhdGEuSGFz VmFyU3RvcmVJZDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJ bmRlbnR9dmFyaWQ6ICB7SW5mby5WYXJTdG9yZUlkOiMwNHh9ICMgT3B0aW9uYWwNCj4gSW5wdXRc biIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICBmIntWYWx1ZUluZGVudH1ndWlkOiAgJ3t7e0luZm8uR3VpZC5EYXRhMTojeH0sDQo+ IHtJbmZvLkd1aWQuRGF0YTI6I3h9LCB7SW5mby5HdWlkLkRhdGEzOiN4fSwge3sgeycsICcuam9p bihmJ3t4OiN4fScgZm9yIHggaW4NCj4gSW5mby5HdWlkLkRhdGE0KX19fX19J1xuIg0KPiArICAg ICAgICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIFJvb3QuRGF0YS5O YW1lSXRlbUxpc3QgIT0gW106DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKFZh bHVlSW5kZW50ICsgIm5hbWV0YWJsZTogXG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAg Zm9yIE5hbWVJdGVtIGluIFJvb3QuRGF0YS5OYW1lSXRlbUxpc3Q6DQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH0gLSBuYW1lOg0KPiAne3NlbGYu X0Rpc3BsYXlVbmlTdHIoTmFtZUl0ZW0pfSdcbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBp ZiBSb290Lk9wQ29kZSA9PSBFRklfSUZSX0RFRkFVTFRTVE9SRV9PUDoNCj4gKyAgICAgICAgICAg ICAgICAgICAgZ1ZmckRlZmF1bHRTdG9yZS5VcGRhdGVEZWZhdWx0VHlwZShSb290KQ0KPiArDQo+ ICsgICAgICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9TSE9XTl9ERUZBVUxU U1RPUkVfT1A6DQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoS2V5SW5kZW50ICsgIi0g ZGVmYXVsdHN0b3JlOlxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1 ZUluZGVudH10eXBlOiAge1Jvb3QuRGF0YS5UeXBlfVxuIikNCj4gKyAgICAgICAgICAgICAgICAg ICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1wcm9tcHQ6DQo+ICd7c2VsZi5fRGlzcGxheVVuaVN0 cihJbmZvLkRlZmF1bHROYW1lKX0nXG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBpZiBSb290 LkRhdGEuSGFzQXR0cjoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZiJ7VmFsdWVJbmRlbnR9YXR0cmlidXRlOiAgeycw eCUwNHgnICUgSW5mby5EZWZhdWx0SWR9ICMNCj4gRGVmYXVsdCBJRCwgT3B0aW9uYWwgaW5wdXRc biINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICAgICAgICAg IGlmIFJvb3QuT3BDb2RlID09IEVGSV9JRlJfRk9STV9PUDoNCj4gKyAgICAgICAgICAgICAgICAg ICAgZi53cml0ZShLZXlJbmRlbnQgKyAiLSBmb3JtOiBcbiIpDQo+ICsgICAgICAgICAgICAgICAg ICAgIGlmIFJvb3QuQ29uZGl0aW9uIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1jb25kaXRpb246ICAne1Jvb3QuQ29uZGl0aW9u fSdcbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVu dH1mb3JtaWQ6ICB7JzB4JXgnICUgSW5mby5Gb3JtSWR9IFxuIikNCj4gKyAgICAgICAgICAgICAg ICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH10aXRsZToNCj4gJ3tzZWxmLl9EaXNwbGF5VW5p U3RyKEluZm8uRm9ybVRpdGxlKX0nXG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAgIGlm IFJvb3QuQ2hpbGQgIT0gW10gYW5kIFJvb3QuQ2hpbGRbMF0uT3BDb2RlICE9IEVGSV9JRlJfRU5E X09QOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShWYWx1ZUluZGVudCArICJj b21wb25lbnQ6ICBcbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBpZiBSb290Lk9wQ29kZSA9 PSBFRklfSUZSX0ZPUk1fTUFQX09QOg0KPiArICAgICAgICAgICAgICAgICAgICBNZXRob2RNYXBM aXN0ID0gUm9vdC5EYXRhLkdldE1ldGhvZE1hcExpc3QoKQ0KPiArICAgICAgICAgICAgICAgICAg ICBmLndyaXRlKEtleUluZGVudCArICItIGZvcm1tYXA6IFxuIikNCj4gKyAgICAgICAgICAgICAg ICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1mb3JtaWQ6ICB7JzB4JXgnICUgSW5mby5Gb3Jt SWR9IFxuIikNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBpZiBSb290LkNvbmRpdGlvbiBp cyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJ bmRlbnR9Y29uZGl0aW9uOiAgJ3tSb290LkNvbmRpdGlvbn0nXG4iKQ0KPiArDQo+ICsgICAgICAg ICAgICAgICAgICAgIGlmIE1ldGhvZE1hcExpc3QgIT0gW106DQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICBmLndyaXRlKFZhbHVlSW5kZW50ICsgIm1hcDogIyBvcHRpb25hbCBpbnB1dFxuIikN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciBNZXRob2RNYXAgaW4gTWV0aG9kTWFwTGlz dDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50 fS0gbWFwdGl0bGU6DQo+IHtNZXRob2RNYXAuTWV0aG9kVGl0bGV9XG4iKQ0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGYud3JpdGUoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGYie1ZhbHVlSW5kZW50fSAgbWFwZ3VpZDogICd7e3t7Ig0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmIntNZXRob2RNYXAuTWV0aG9kSWRlbnRpZmllci5EYXRhMX0s DQo+IHtNZXRob2RNYXAuTWV0aG9kSWRlbnRpZmllci5EYXRhMn0sDQo+IHtNZXRob2RNYXAuTWV0 aG9kSWRlbnRpZmllci5EYXRhM30sIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmInt7IHsnLCAnLmpvaW4oJzB4JXgnICUgeCBmb3IgeCBpbg0KPiBNZXRob2RNYXAuTWV0aG9k SWRlbnRpZmllci5EYXRhNCl9IH19Ig0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmIn19fX0nXG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KPiArICAgICAg ICAgICAgICAgICAgICBpZiBSb290LkNoaWxkICE9IFtdIGFuZCBSb290LkNoaWxkWzBdLk9wQ29k ZSAhPSBFRklfSUZSX0VORF9PUDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUo VmFsdWVJbmRlbnQgKyAiY29tcG9uZW50OiAgXG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAg aWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9JTUFHRV9PUDoNCj4gKyAgICAgICAgICAgICAgICAg ICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1pbWFnZTogICd7c2VsZi5fRGlzcGxheVVuaVN0cihJ bmZvLklkKX0nXG4iKQ0KPiArICAgICAgICAgICAgICAgIGlmIFJvb3QuT3BDb2RlID09IEVGSV9J RlJfUlVMRV9PUDogICMNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntLZXlJbmRl bnR9LSBydWxlOlxuIikNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBpZiBSb290LkNvbmRp dGlvbiBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7 VmFsdWVJbmRlbnR9Y29uZGl0aW9uOiAgJ3tSb290LkNvbmRpdGlvbn0nXG4iKQ0KPiArDQo+ICsg ICAgICAgICAgICAgICAgICAgIGYud3JpdGUoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBm IntWYWx1ZUluZGVudH1uYW1lOiAge1Jvb3QuRGF0YS5HZXRSdWxlTmFtZSgpfVxuIg0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgZiJ7VmFsdWVJbmRlbnR9ZXhwcmVzc2lvbjogIHtSb290LkV4 cHJlc3Npb259IFxuIg0KPiArICAgICAgICAgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAg ICAgICAgICBpZiBSb290Lk9wQ29kZSA9PSBFRklfSUZSX1NVQlRJVExFX09QOg0KPiArICAgICAg ICAgICAgICAgICAgICBmLndyaXRlKEtleUluZGVudCArICItIHN1YnRpdGxlOlxuIikNCj4gKyAg ICAgICAgICAgICAgICAgICAgaWYgUm9vdC5Db25kaXRpb24gaXMgbm90IE5vbmU6DQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWNvbmRpdGlvbjogICd7 Um9vdC5Db25kaXRpb259J1xuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntW YWx1ZUluZGVudH10ZXh0Og0KPiAne3NlbGYuX0Rpc3BsYXlVbmlTdHIoSW5mby5TdGF0ZW1lbnQu UHJvbXB0KX0nXG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIFJvb3QuRGF0YS5G bGFnc1N0cmVhbSAhPSAiIjoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7 VmFsdWVJbmRlbnR9ZmxhZ3M6ICB7Um9vdC5EYXRhLkZsYWdzU3RyZWFtfSAgIw0KPiBPcHRpb25h bCBJbnB1dFxuIikNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBpZiBSb290LkNoaWxkICE9 IFtdIGFuZCBSb290LkNoaWxkWzBdLk9wQ29kZSAhPSBFRklfSUZSX0VORF9PUDoNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9Y29tcG9uZW50OiAgXG4i KQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9URVhU X09QOg0KPiArICAgICAgICAgICAgICAgICAgICBmLndyaXRlKEtleUluZGVudCArICItIHRleHQ6 XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBpZiBSb290LkNvbmRpdGlvbiBpcyBub3QgTm9u ZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9Y29u ZGl0aW9uOiAgJ3tSb290LkNvbmRpdGlvbn0nXG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBp ZiB0eXBlKEluZm8pID09IEVGSV9JRlJfVEVYVDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg IGYud3JpdGUoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgZiJ7VmFsdWVJbmRlbnR9 aGVscDoNCj4gJ3tzZWxmLl9EaXNwbGF5VW5pU3RyKEluZm8uU3RhdGVtZW50LkhlbHApfSdcbiIN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg IGYud3JpdGUoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgZiJ7VmFsdWVJbmRlbnR9 cHJvbXB0Og0KPiAne3NlbGYuX0Rpc3BsYXlVbmlTdHIoSW5mby5TdGF0ZW1lbnQuUHJvbXB0KX0n XG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICBpZiBSb290LkRhdGEuSGFzVGV4dFR3bzoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fXRleHQ6DQo+ICd7c2VsZi5fRGlzcGxheVVuaVN0 cihJbmZvLlRleHRUd28pfSdcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIHR5cGUoSW5m bykgPT0gRUZJX0lGUl9BQ1RJT046DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRl KA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYie1ZhbHVlSW5kZW50fWhlbHA6DQo+ ICd7c2VsZi5fRGlzcGxheVVuaVN0cihJbmZvLlF1ZXN0aW9uLkhlYWRlci5IZWxwKX0nXG4iDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBm LndyaXRlKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYie1ZhbHVlSW5kZW50fXBy b21wdDoNCj4gJ3tzZWxmLl9EaXNwbGF5VW5pU3RyKEluZm8uUXVlc3Rpb24uSGVhZGVyLlByb21w dCl9J1xuIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgaWYgUm9vdC5EYXRhLkZsYWdzU3RyZWFtICE9ICIiOg0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGYud3JpdGUoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGYie1ZhbHVlSW5kZW50fWZsYWdzOiAge1Jvb3QuRGF0YS5GbGFnc1N0cmVhbX0gICMgT3B0 aW9uYWwNCj4gSW5wdXQsIFF1ZXN0aW9uIEZsYWdzXG4iDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgaWYgUm9vdC5EYXRhLkhhc0tl eToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmIntWYWx1ZUluZGVudH1rZXk6ICB7JzB4JTA0eCcgJSBJ bmZvLlF1ZXN0aW9uLlF1ZXN0aW9uSWR9DQo+ICMgT3B0aW9uYWwgSW5wdXQsIFF1ZXN0aW9uIFF1 ZXN0aW9uSWRcbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQo+ICsgICAgICAg ICAgICAgICAgICAgIGlmIFJvb3QuQ2hpbGQgIT0gW10gYW5kIFJvb3QuQ2hpbGRbMF0uT3BDb2Rl ICE9IEVGSV9JRlJfRU5EX09QOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShW YWx1ZUluZGVudCArICJjb21wb25lbnQ6ICBcbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBp ZiBSb290Lk9wQ29kZSA9PSBFRklfSUZSX0FDVElPTl9PUDoNCj4gKyAgICAgICAgICAgICAgICAg ICAgZi53cml0ZShLZXlJbmRlbnQgKyAiLSBhY3Rpb246XG4iKQ0KPiArICAgICAgICAgICAgICAg ICAgICBzZWxmLl9EdW1wUXVlc3Rpb25JbmZvc0ZvclhNTENMSShSb290LCBmLCBWYWx1ZUluZGVu dCkNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1jb25maWc6 ICB7SW5mby5RdWVzdGlvbkNvbmZpZ30gICMNCj4gUXVlc3Rpb25Db25maWdcbiIpDQo+ICsgICAg ICAgICAgICAgICAgICAgIGlmIFJvb3QuQ2hpbGQgIT0gW10gYW5kIFJvb3QuQ2hpbGRbMF0uT3BD b2RlICE9IEVGSV9JRlJfRU5EX09QOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0 ZShWYWx1ZUluZGVudCArICJjb21wb25lbnQ6ICBcbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAg ICBpZiBSb290Lk9wQ29kZSA9PSBFRklfSUZSX09ORV9PRl9PUDoNCj4gKyAgICAgICAgICAgICAg ICAgICAgZi53cml0ZShLZXlJbmRlbnQgKyAiLSBvbmVvZjpcbiIpDQo+ICsNCj4gKyAgICAgICAg ICAgICAgICAgICAgc2VsZi5fRHVtcFF1ZXN0aW9uSW5mb3NGb3JYTUxDTEkoUm9vdCwgZiwgVmFs dWVJbmRlbnQpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgUm9vdC5EYXRhLkhhc01p bk1heDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZiJ7VmFsdWVJbmRlbnR9bWF4aW11bTogIHsnMHglMHgnICUgSW5m by5EYXRhLk1heFZhbHVlfSAjDQo+IE9wdGlvbmFsIElucHV0XG4iDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGYie1ZhbHVlSW5kZW50fW1pbmltdW06ICB7JzB4JTB4 JyAlIEluZm8uRGF0YS5NaW5WYWx1ZX0gIw0KPiBPcHRpb25hbCBJbnB1dFxuIg0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIFJvb3Qu RGF0YS5IYXNTdGVwOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1 ZUluZGVudH1zdGVwOiAge0luZm8uRGF0YS5TdGVwfSAjIE9wdGlvbmFsDQo+IElucHV0XG4iKQ0K PiArICAgICAgICAgICAgICAgICAgICBpZiBSb290LkNoaWxkICE9IFtdIGFuZCBSb290LkNoaWxk WzBdLk9wQ29kZSAhPSBFRklfSUZSX0VORF9PUDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg IGYud3JpdGUoVmFsdWVJbmRlbnQgKyAiY29tcG9uZW50OiAgXG4iKQ0KPiArDQo+ICsgICAgICAg ICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9PTkVfT0ZfT1BUSU9OX09QOg0KPiAr ICAgICAgICAgICAgICAgICAgICBmLndyaXRlKEtleUluZGVudCArICItIG9wdGlvbjogIFxuIikN Cj4gKyAgICAgICAgICAgICAgICAgICAgaWYgUm9vdC5Db25kaXRpb24gaXMgbm90IE5vbmU6DQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWNvbmRpdGlv bjogICd7Um9vdC5Db25kaXRpb259J1xuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0 ZShmIntWYWx1ZUluZGVudH10ZXh0OiAne3NlbGYuX0Rpc3BsYXlVbmlTdHIoSW5mby5PcHRpb24p fSdcbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgdHlwZShSb290LkRhdGEpID09 IElmck9uZU9mT3B0aW9uOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgaWYgUm9vdC5EYXRh LlZhbHVlU3RyZWFtICE9ICIiOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYud3Jp dGUoZiJ7VmFsdWVJbmRlbnR9dmFsdWU6ICB7Um9vdC5EYXRhLlZhbHVlU3RyZWFtfVxuIikNCj4g Kw0KPiArICAgICAgICAgICAgICAgICAgICBpZiBSb290LkRhdGEuRmxhZ3NTdHJlYW0gIT0gIiI6 DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWZsYWdz OiAge1Jvb3QuRGF0YS5GbGFnc1N0cmVhbX0gIw0KPiBPcHRpb25hbCBJbnB1dFxuIikNCj4gKw0K PiArICAgICAgICAgICAgICAgICAgICBpZiBSb290LkRhdGEuSWZyT3B0aW9uS2V5IGlzIG5vdCBO b25lOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmIntWYWx1ZUluZGVudH1rZXk6ICB7JzB4JTA0eCcgJQ0KPiBSb290 LkRhdGEuR2V0SWZyT3B0aW9uS2V5KCl9ICMgT3B0aW9uYWwgSW5wdXRcbiINCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBpZiBSb290LkNo aWxkICE9IFtdIGFuZCBSb290LkNoaWxkWzBdLk9wQ29kZSAhPSBFRklfSUZSX0VORF9PUDoNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoVmFsdWVJbmRlbnQgKyAiY29tcG9uZW50 OiAgXG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lG Ul9ERUZBVUxUX09QOg0KPiArICAgICAgICAgICAgICAgICAgICAjIOOAgHNwZWNpZmljIGNvbmRp dGlvbiBoZXJlDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIFJvb3QuUG9zaXRpb24gIT0gIkRv IG5vdCBkaXNwbGF5IjoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoS2V5SW5k ZW50ICsgIi0gZGVmYXVsdDpcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiBSb290 LkNvbmRpdGlvbiBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBm LndyaXRlKGYie1ZhbHVlSW5kZW50fWNvbmRpdGlvbjogICd7Um9vdC5Db25kaXRpb259J1xuIikN Cj4gKw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgaWYgdHlwZShSb290LkRhdGEpID09IElm ckRlZmF1bHQ6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyID0gUm9vdC5EYXRh LlZhbHVlU3RyZWFtDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgU3RyLmZpbmQo IjsiKSAhPSAtMToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVmTGlzdCA9 IFN0ci5zcGxpdCgiOyIpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0ciA9 ICgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZkxpc3RbMF0NCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIjsiDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArIFJlZkxpc3RbMV0NCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsgIjsiDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArIGYie3t7SW5mby5WYWx1ZVswXS5Gb3JtU2V0R3VpZC5EYXRhMTojeH0sDQo+ IHtJbmZvLlZhbHVlWzBdLkZvcm1TZXRHdWlkLkRhdGEyOiN4fSwge0luZm8uVmFsdWVbMF0uRm9y bVNldEd1aWQuRGF0YTM6I3h9LA0KPiB7eyB7JywgJy5qb2luKGYne3g6I3h9JyBmb3IgeCBpbiBJ bmZvLlZhbHVlWzBdLkZvcm1TZXRHdWlkLkRhdGE0KX19fX19Ig0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKyAiOyINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsgc2VsZi5fRGlzcGxheVVuaVN0cihJbmZvLlZhbHVlWzBdLkRldmljZVBhdGgp DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIFN0ciAhPSAiIjoNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3RyID0gU3RyLnJlcGxhY2UoInsiLCAiWyIpLnJlcGxhY2UoIn0iLCAiXSIp DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0ci5maW5kKCI6IikgIT0gLTENCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIFN0ci5maW5kKCIvIikgIT0gLTENCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIFN0ci5maW5kKCI7IikgIT0gLTEN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKToNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0ciA9ICIoIiArIFN0ciArICIpIg0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fXZhbHVlOiAge1N0 cn1cbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgdHlwZShSb290LkRh dGEpID09IElmckRlZmF1bHQyOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYud3Jp dGUoZiJ7VmFsdWVJbmRlbnR9dmFsdWVfZXhwOg0KPiAne1Jvb3QuQ2hpbGRbMF0uRXhwcmVzc2lv bn0nXG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiBSb290LkRhdGEuRGVm YXVsdFN0b3JlICE9ICIiOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUo ZiJ7VmFsdWVJbmRlbnR9ZGVmYXVsdHN0b3JlOg0KPiB7Um9vdC5EYXRhLkRlZmF1bHRTdG9yZX1c biIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBpZiBSb290Lk9wQ29kZSA9PSBFRklfSUZSX09S REVSRURfTElTVF9PUDoNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShLZXlJbmRlbnQg KyAiLSBvcmRlcmVkbGlzdDpcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuX0R1bXBR dWVzdGlvbkluZm9zRm9yWE1MQ0xJKFJvb3QsIGYsIFZhbHVlSW5kZW50KQ0KPiArICAgICAgICAg ICAgICAgICAgICBpZiBSb290LkRhdGEuSGFzTWF4Q29udGFpbmVyczoNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIGYud3JpdGUoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgZiJ7 VmFsdWVJbmRlbnR9bWF4Y29udGFpbmVyczogIHtJbmZvLk1heENvbnRhaW5lcnN9ICMNCj4gT3B0 aW9uYWwgSW5wdXRcbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICkNCj4gKw0KPiArICAg ICAgICAgICAgICAgICAgICBpZiBSb290LkNoaWxkICE9IFtdIGFuZCBSb290LkNoaWxkWzBdLk9w Q29kZSAhPSBFRklfSUZSX0VORF9PUDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3Jp dGUoVmFsdWVJbmRlbnQgKyAiY29tcG9uZW50OiAgXG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAg ICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9OVU1FUklDX09QOg0KPiArICAgICAgICAgICAg ICAgICAgICBmLndyaXRlKEtleUluZGVudCArICItIG51bWVyaWM6XG4iKQ0KPiArICAgICAgICAg ICAgICAgICAgICBzZWxmLl9EdW1wUXVlc3Rpb25JbmZvc0ZvclhNTENMSShSb290LCBmLCBWYWx1 ZUluZGVudCkNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1t YXhpbXVtOiAgeycweCUweCcgJQ0KPiBJbmZvLkRhdGEuTWF4VmFsdWV9XG4iKQ0KPiArICAgICAg ICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fW1pbmltdW06ICB7JzB4JTB4JyAl DQo+IEluZm8uRGF0YS5NaW5WYWx1ZX1cbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAg aWYgUm9vdC5EYXRhLkhhc1N0ZXA6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRl KGYie1ZhbHVlSW5kZW50fXN0ZXA6ICB7SW5mby5EYXRhLlN0ZXB9ICMgT3B0aW9uYWwNCj4gSW5w dXRcbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgUm9vdC5DaGlsZCAhPSBbXSBh bmQgUm9vdC5DaGlsZFswXS5PcENvZGUgIT0gRUZJX0lGUl9FTkRfT1A6DQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICBmLndyaXRlKFZhbHVlSW5kZW50ICsgImNvbXBvbmVudDogIFxuIikNCj4g Kw0KPiArICAgICAgICAgICAgICAgIGlmIFJvb3QuT3BDb2RlID09IEVGSV9JRlJfQ0hFQ0tCT1hf T1A6DQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoS2V5SW5kZW50ICsgIi0gY2hlY2ti b3g6XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLl9EdW1wUXVlc3Rpb25JbmZvc0Zv clhNTENMSShSb290LCBmLCBWYWx1ZUluZGVudCkNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYg Um9vdC5DaGlsZCAhPSBbXSBhbmQgUm9vdC5DaGlsZFswXS5PcENvZGUgIT0gRUZJX0lGUl9FTkRf T1A6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKFZhbHVlSW5kZW50ICsgImNv bXBvbmVudDogIFxuIikNCj4gKw0KPiArICAgICAgICAgICAgICAgIGlmIFJvb3QuT3BDb2RlID09 IEVGSV9JRlJfVElNRV9PUDoNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShLZXlJbmRl bnQgKyAiLSB0aW1lOlxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgUm9vdC5EYXRhLkhv dXIgaXMgTm9uZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX0R1bXBRdWVzdGlv bkluZm9zRm9yWE1MQ0xJKFJvb3QsIGYsIFZhbHVlSW5kZW50KQ0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgaWYgUm9vdC5DaGlsZCAhPSBbXSBhbmQgUm9vdC5DaGlsZFswXS5PcENvZGUgIT0N Cj4gRUZJX0lGUl9FTkRfT1A6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0 ZShWYWx1ZUluZGVudCArICJjb21wb25lbnQ6ICBcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAg IGVsc2U6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50 fWhvdXI6ICB7Um9vdC5EYXRhLkhvdXJ9XG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICBpZiBSb290LkRhdGEuRF9Ib3VyIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9ZGVmYXVsdF9ob3VyOg0KPiB7Um9v dC5EYXRhLkRfSG91cn1cbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3Jp dGUoZiJ7VmFsdWVJbmRlbnR9bWludXRlOiAge1Jvb3QuRGF0YS5NaW51dGV9XG4iKQ0KPiArDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiBSb290LkRhdGEuRF9NaW51dGUgaXMgbm90IE5v bmU6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVu dH1kZWZhdWx0X21pbnV0ZToNCj4ge1Jvb3QuRGF0YS5EX01pbnV0ZX1cbiIpDQo+ICsNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9c2Vjb25kOiAge1Jv b3QuRGF0YS5TZWNvbmR9XG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiBS b290LkRhdGEuRF9TZWNvbmQgaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1kZWZhdWx0X3NlY29uZDoNCj4ge1Jvb3QuRGF0 YS5EX1NlY29uZH1cbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYie1ZhbHVlSW5kZW50fXByb21wdDoNCj4gJ3tz ZWxmLl9EaXNwbGF5VW5pU3RyKEluZm8uUXVlc3Rpb24uSGVhZGVyLlByb21wdCl9J1xuIg0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53 cml0ZSgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmIntWYWx1ZUluZGVudH1oZWxw Og0KPiAne3NlbGYuX0Rpc3BsYXlVbmlTdHIoSW5mby5RdWVzdGlvbi5IZWFkZXIuSGVscCl9J1xu Ig0KPiArICAgICAgICAgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgaWYgUm9vdC5EYXRhLkZsYWdzU3RyZWFtICE9ICIiOg0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGYud3JpdGUoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYi e1ZhbHVlSW5kZW50fWZsYWdzOiAge1Jvb3QuRGF0YS5GbGFnc1N0cmVhbX0gICMgT3B0aW9uYWwN Cj4gaW5wdXQgLCBmbGFnc1xuIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCj4g Kw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgaWYgUm9vdC5DaGlsZCAhPSBbXSBhbmQgUm9v dC5DaGlsZFswXS5PcENvZGUgIT0NCj4gRUZJX0lGUl9ERUZBVUxUX09QOg0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGYud3JpdGUoVmFsdWVJbmRlbnQgKyAiY29tcG9uZW50OiAgXG4i KQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9EQVRF X09QOg0KPiArICAgICAgICAgICAgICAgICAgICBmLndyaXRlKEtleUluZGVudCArICItIGRhdGU6 XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBpZiBSb290LkRhdGEuWWVhciBpcyBOb25lOg0K PiArICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fRHVtcFF1ZXN0aW9uSW5mb3NGb3JYTUxD TEkoUm9vdCwgZiwgVmFsdWVJbmRlbnQpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiBS b290LkNoaWxkICE9IFtdIGFuZCBSb290LkNoaWxkWzBdLk9wQ29kZSAhPQ0KPiBFRklfSUZSX0VO RF9PUDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKFZhbHVlSW5kZW50 ICsgImNvbXBvbmVudDogIFxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgZWxzZToNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9eWVhcjogIHtSb290 LkRhdGEuWWVhcn1cbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1Zh bHVlSW5kZW50fW1pbl95ZWFyOiAge1Jvb3QuRGF0YS5NaW59XG4iKQ0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1tYXhfeWVhcjogIHtSb290LkRhdGEu TWF4fVxuIikNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgaWYgUm9vdC5EYXRhLkRf WWVhciBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRl KGYie1ZhbHVlSW5kZW50fWRlZmF1bHRfeWVhcjogIHtSb290LkRhdGEuRF9ZZWFyfVxuIikNCj4g Kw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1tb250 aDogIHtSb290LkRhdGEuTW9udGh9XG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICBpZiBSb290LkRhdGEuRF9Nb250aCBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWRlZmF1bHRfbW9udGg6DQo+IHtSb290 LkRhdGEuRF9Nb250aH1cbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3Jp dGUoZiJ7VmFsdWVJbmRlbnR9ZGF5OiAge1Jvb3QuRGF0YS5EYXl9XG4iKQ0KPiArDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICBpZiBSb290LkRhdGEuRF9EYXkgaXMgbm90IE5vbmU6DQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1kZWZhdWx0 X2RheTogIHtSb290LkRhdGEuRF9EYXl9XG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICBmLndyaXRlKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYie1ZhbHVlSW5k ZW50fXByb21wdDoNCj4gJ3tzZWxmLl9EaXNwbGF5VW5pU3RyKEluZm8uUXVlc3Rpb24uSGVhZGVy LlByb21wdCl9J1xuIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgZi53cml0ZSgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBm IntWYWx1ZUluZGVudH1oZWxwOg0KPiAne3NlbGYuX0Rpc3BsYXlVbmlTdHIoSW5mby5RdWVzdGlv bi5IZWFkZXIuSGVscCl9J1xuIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgKQ0KPiArDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiBSb290LkRhdGEuRmxhZ3NTdHJlYW0gIT0gIiI6 DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZiJ7VmFsdWVJbmRlbnR9ZmxhZ3M6ICB7Um9vdC5EYXRhLkZs YWdzU3RyZWFtfSAgIyBPcHRpb25hbA0KPiBpbnB1dCAsIGZsYWdzXG4iDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiBS b290LkNoaWxkICE9IFtdIGFuZCBSb290LkNoaWxkWzBdLk9wQ29kZSAhPQ0KPiBFRklfSUZSX0RF RkFVTFRfT1A6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShWYWx1ZUlu ZGVudCArICJjb21wb25lbnQ6ICBcbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBpZiBSb290 Lk9wQ29kZSA9PSBFRklfSUZSX1NUUklOR19PUDoNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53 cml0ZShLZXlJbmRlbnQgKyAiLSBzdHJpbmc6XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBz ZWxmLl9EdW1wUXVlc3Rpb25JbmZvc0ZvclhNTENMSShSb290LCBmLCBWYWx1ZUluZGVudCkNCj4g KyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1taW5zaXplOiAge0lu Zm8uTWluU2l6ZX1cbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJ bmRlbnR9bWF4c2l6ZTogIHtJbmZvLk1heFNpemV9XG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAg ICAgICAgIGlmIFJvb3QuQ2hpbGQgIT0gW10gYW5kIFJvb3QuQ2hpbGRbMF0uT3BDb2RlICE9IEVG SV9JRlJfRU5EX09QOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1 ZUluZGVudH1jb21wb25lbnQ6ICBcbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBpZiBSb290 Lk9wQ29kZSA9PSBFRklfSUZSX1BBU1NXT1JEX09QOg0KPiArICAgICAgICAgICAgICAgICAgICBm LndyaXRlKEtleUluZGVudCArICItIHBhc3N3b3JkOlxuIikNCj4gKyAgICAgICAgICAgICAgICAg ICAgc2VsZi5fRHVtcFF1ZXN0aW9uSW5mb3NGb3JYTUxDTEkoUm9vdCwgZiwgVmFsdWVJbmRlbnQp DQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICBmIntWYWx1ZUluZGVudH1taW5zaXplOiAge1Jvb3QuRGljdFsnbWluc2l6ZSddLktleSBp ZiAnbWluc2l6ZScgaW4NCj4gUm9vdC5EaWN0IGVsc2UgSW5mby5NaW5TaXplfVxuIg0KPiArICAg ICAgICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICBmIntWYWx1ZUluZGVudH1tYXhzaXplOiAge1Jvb3QuRGlj dFsnbWF4c2l6ZSddLktleSBpZiAnbWF4c2l6ZScgaW4NCj4gUm9vdC5EaWN0IGVsc2UgSW5mby5N YXhTaXplfVxuIg0KPiArICAgICAgICAgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgICAg ICAgICAgICAgaWYgUm9vdC5DaGlsZCAhPSBbXSBhbmQgUm9vdC5DaGlsZFswXS5PcENvZGUgIT0g RUZJX0lGUl9FTkRfT1A6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1Zh bHVlSW5kZW50fWNvbXBvbmVudDogIFxuIikNCj4gKw0KPiArICAgICAgICAgICAgICAgIGlmIFJv b3QuT3BDb2RlID09IEVGSV9JRlJfUkVTRVRfQlVUVE9OX09QOg0KPiArICAgICAgICAgICAgICAg ICAgICBmLndyaXRlKEtleUluZGVudCArICItIHJlc2V0YnV0dG9uOlxuIikNCj4gKyAgICAgICAg ICAgICAgICAgICAgaWYgUm9vdC5Db25kaXRpb24gaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWNvbmRpdGlvbjogICd7Um9vdC5D b25kaXRpb259J1xuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUlu ZGVudH1kZWZhdWx0c3RvcmU6ICB7Um9vdC5EYXRhLkRlZmF1bHRTdG9yZX1cbiIpDQo+ICsgICAg ICAgICAgICAgICAgICAgIGYud3JpdGUoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmIntW YWx1ZUluZGVudH1wcm9tcHQ6DQo+ICd7c2VsZi5fRGlzcGxheVVuaVN0cihJbmZvLlN0YXRlbWVu dC5Qcm9tcHQpfSdcbiINCj4gKyAgICAgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAg ICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWhlbHA6DQo+ICd7c2VsZi5fRGlzcGxheVVu aVN0cihJbmZvLlN0YXRlbWVudC5IZWxwKX0nXG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBp ZiBSb290LkNoaWxkICE9IFtdIGFuZCBSb290LkNoaWxkWzBdLk9wQ29kZSAhPSBFRklfSUZSX0VO RF9PUDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoVmFsdWVJbmRlbnQgKyAi Y29tcG9uZW50OiAgXG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUg PT0gRUZJX0lGUl9SRUZfT1A6DQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoS2V5SW5k ZW50ICsgIi0gZ290bzpcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIFJvb3QuQ29uZGl0 aW9uIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntW YWx1ZUluZGVudH1jb25kaXRpb246ICAne1Jvb3QuQ29uZGl0aW9ufSdcbiIpDQo+ICsNCj4gKyAg ICAgICAgICAgICAgICAgICAgaWYgdHlwZShSb290LkRhdGEpID09IElmclJlZjQ6DQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICBmLndyaXRlKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGYie1ZhbHVlSW5kZW50fWRldmljZXBhdGg6DQo+ICd7c2VsZi5fRGlzcGxheVVuaVN0cihJ bmZvLkRldmljZVBhdGgpfScgIyBPcHRpb25hbCBJbnB1dFxuIg0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmIntWYWx1ZUluZGVudH1mb3Jtc2V0Z3VpZDogICd7e3tJ bmZvLkZvcm1TZXRJZC5EYXRhMTojeH0sDQo+IHtJbmZvLkZvcm1TZXRJZC5EYXRhMjojeH0sIHtJ bmZvLkZvcm1TZXRJZC5EYXRhMzojeH0sIHt7IHsnLCAnLmpvaW4oZid7eDojeH0nIGZvciB4DQo+ IGluIEluZm8uRm9ybVNldElkLkRhdGE0KX19fX19JyAjICBPcHRpb25hbCBJbnB1dFxuIg0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53 cml0ZShmIntWYWx1ZUluZGVudH1mb3JtaWQ6ICB7JzB4JXgnICUgSW5mby5Gb3JtSWR9XG4iKQ0K PiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmIntWYWx1ZUluZGVudH1xdWVzdGlvbjogIHsnMHgleCcgJSBJbmZvLlF1ZXN0 aW9uSWR9ICMNCj4gT3B0aW9uYWwgSW5wdXRcbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICkNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBpZiB0eXBlKFJvb3QuRGF0YSkgPT0gSWZy UmVmMzoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZiJ7VmFsdWVJbmRlbnR9Zm9ybXNldGd1aWQ6ICAne3t7SW5mby5G b3JtU2V0SWQuRGF0YTE6I3h9LA0KPiB7SW5mby5Gb3JtU2V0SWQuRGF0YTI6I3h9LCB7SW5mby5G b3JtU2V0SWQuRGF0YTM6I3h9LCB7eyB7JywgJy5qb2luKGYne3g6I3h9JyBmb3IgeA0KPiBpbiBJ bmZvLkZvcm1TZXRJZC5EYXRhNCl9fX19fScgIyAgT3B0aW9uYWwgSW5wdXRcbiINCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUo ZiJ7VmFsdWVJbmRlbnR9Zm9ybWlkOiAgeycweCV4JyAlIEluZm8uRm9ybUlkfVxuIikNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZiJ7VmFsdWVJbmRlbnR9cXVlc3Rpb246ICB7JzB4JXgnICUgSW5mby5RdWVzdGlvbklk fSAjDQo+IE9wdGlvbmFsIElucHV0XG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICApDQo+ ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgdHlwZShSb290LkRhdGEpID09IElmclJlZjI6 DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWZvcm1p ZDogIHsnMHgleCcgJSBJbmZvLkZvcm1JZH1cbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICBmLndyaXRlKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYie1ZhbHVlSW5kZW50 fXF1ZXN0aW9uOiAgeycweCV4JyAlIEluZm8uUXVlc3Rpb25JZH0gIw0KPiBPcHRpb25hbCBJbnB1 dFxuIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgICAgICAg ICAgICAgIGlmIHR5cGUoUm9vdC5EYXRhKSA9PSBJZnJSZWY6DQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWZvcm1pZDogIHsnMHgleCcgJSBJbmZvLkZv cm1JZH1cbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fRHVtcFF1ZXN0aW9u SW5mb3NGb3JYTUxDTEkoUm9vdCwgZiwgVmFsdWVJbmRlbnQpDQo+ICsNCj4gKyAgICAgICAgICAg ICAgICAgICAgaWYgUm9vdC5DaGlsZCAhPSBbXSBhbmQgUm9vdC5DaGlsZFswXS5PcENvZGUgIT0g RUZJX0lGUl9FTkRfT1A6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKFZhbHVl SW5kZW50ICsgImNvbXBvbmVudDogIFxuIikNCj4gKw0KPiArICAgICAgICAgICAgICAgIGlmIFJv b3QuT3BDb2RlID09IEVGSV9JRlJfUkVGUkVTSF9PUDoNCj4gKyAgICAgICAgICAgICAgICAgICAg Zi53cml0ZShLZXlJbmRlbnQgKyAiLSByZWZyZXNoOlxuIikNCj4gKyAgICAgICAgICAgICAgICAg ICAgaWYgUm9vdC5Db25kaXRpb24gaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWNvbmRpdGlvbjogICd7Um9vdC5Db25kaXRpb259 J1xuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1pbnRl cnZhbDogIHtJbmZvLlJlZnJlc2hJbnRlcnZhbH0gICMNCj4gUmVmcmVzaEludGVydmFsXG4iKQ0K PiArDQo+ICsgICAgICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9WQVJTVE9S RV9ERVZJQ0VfT1A6DQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoS2V5SW5kZW50ICsg Ii0gdmFyc3RvcmVkZXZpY2U6XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBpZiBSb290LkNv bmRpdGlvbiBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUo ZiJ7VmFsdWVJbmRlbnR9Y29uZGl0aW9uOiAgJ3tSb290LkNvbmRpdGlvbn0nXG4iKQ0KPiArICAg ICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWRldmljZXBhdGg6ICB7SW5m by5EZXZpY2VQYXRofSAgIw0KPiBEZXZpY2VQYXRoXG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAg ICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9SRUZSRVNIX0lEX09QOg0KPiArICAgICAgICAg ICAgICAgICAgICBmLndyaXRlKEtleUluZGVudCArICItIHJlZnJlc2hndWlkOlxuIikNCj4gKyAg ICAgICAgICAgICAgICAgICAgaWYgUm9vdC5Db25kaXRpb24gaXMgbm90IE5vbmU6DQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWNvbmRpdGlvbjogICd7 Um9vdC5Db25kaXRpb259J1xuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgIGYie1ZhbHVlSW5kZW50fWd1aWQ6ICAne3t7SW5mby5S ZWZyZXNoRXZlbnRHcm91cElkLkRhdGExOiN4fSwNCj4ge0luZm8uUmVmcmVzaEV2ZW50R3JvdXBJ ZC5EYXRhMjojeH0sIHtJbmZvLlJlZnJlc2hFdmVudEdyb3VwSWQuRGF0YTM6I3h9LA0KPiB7eyB7 JywgJy5qb2luKGYne3g6I3h9JyBmb3IgeCBpbiBJbmZvLlJlZnJlc2hFdmVudEdyb3VwSWQuRGF0 YTQpfX19fX0nIFxuIg0KPiArICAgICAgICAgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAg ICAgICAgICBpZiBSb290Lk9wQ29kZSA9PSBFRklfSUZSX1dBUk5JTkdfSUZfT1A6DQo+ICsgICAg ICAgICAgICAgICAgICAgIGYud3JpdGUoS2V5SW5kZW50ICsgIi0gd2FybmluZ2lmOlxuIikNCj4g KyAgICAgICAgICAgICAgICAgICAgaWYgUm9vdC5Db25kaXRpb24gaXMgbm90IE5vbmU6DQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWNvbmRpdGlvbjog ICd7Um9vdC5Db25kaXRpb259J1xuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYie1ZhbHVlSW5kZW50fXByb21wdDogJ3tzZWxm Ll9EaXNwbGF5VW5pU3RyKEluZm8uV2FybmluZyl9JyAjDQo+IE9wdGlvbmFsIElucHV0XG4iDQo+ ICsgICAgICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgUm9vdC5E YXRhLkhhc1RpbWVPdXQ6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1Zh bHVlSW5kZW50fXRpbWVvdXQ6ICB7SW5mby5UaW1lT3V0fSAjIG9wdGlvbmFsIGlucHV0DQo+IFxu IikNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1leHByZXNz aW9uOiAge1Jvb3QuRXhwcmVzc2lvbn1cbiIpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBpZiBS b290Lk9wQ29kZSA9PSBFRklfSUZSX0dVSURfT1A6DQo+ICsgICAgICAgICAgICAgICAgICAgIGlm IHR5cGUoUm9vdC5EYXRhKSA9PSBJZnJMYWJlbDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg IGYud3JpdGUoS2V5SW5kZW50ICsgIi0gbGFiZWw6XG4iKQ0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgaWYgUm9vdC5Db25kaXRpb24gaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1jb25kaXRpb246ICAne1Jvb3QuQ29u ZGl0aW9ufSdcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVl SW5kZW50fW51bWJlcjogIHsnMHgleCcgJSBJbmZvLk51bWJlcn0gICMNCj4gTnVtYmVyXG4iKQ0K PiArDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIHR5cGUoUm9vdC5EYXRhKSA9PSBJZnJCYW5u ZXI6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKEtleUluZGVudCArICItIGJh bm5lcjpcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiBSb290LkNvbmRpdGlvbiBp cyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1Zh bHVlSW5kZW50fWNvbmRpdGlvbjogICd7Um9vdC5Db25kaXRpb259J1xuIikNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgIGYud3JpdGUoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZiJ7VmFsdWVJbmRlbnR9dGl0bGU6ICd7c2VsZi5fRGlzcGxheVVuaVN0cihJbmZvLlRpdGxlKX0n ICMNCj4gT3B0aW9uYWwgSW5wdXRcbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICkNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBSb290LkRhdGEuSGFzVGltZU91dDoNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAibGluZSIgaW4gUm9vdC5EaWN0Og0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWxp bmU6ICB7Um9vdC5EaWN0WydsaW5lJ10uS2V5fVxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRl KGYie1ZhbHVlSW5kZW50fWxpbmU6ICB7SW5mby5MaW5lTnVtYmVyfVxuIikNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWFsaWduOiAge1Jvb3Qu RGljdFsnYWxpZ24nXS5LZXl9XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fXRp bWVvdXQ6ICB7Um9vdC5EYXRhLlRpbWVPdXR9XG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAg ICAgIGlmIHR5cGUoUm9vdC5EYXRhKSA9PSBJZnJDbGFzczoNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgIGYud3JpdGUoS2V5SW5kZW50ICsgImNsYXNzOiAgIiArIFJvb3QuRGF0YS5DbGFzc1N0 ciArICJcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgUm9vdC5EYXRhLkhh c1N1YkNsYXNzOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoS2V5SW5k ZW50ICsgImNvbXBvbmVudDogIFxuIikNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBpZiB0 eXBlKFJvb3QuRGF0YSkgPT0gSWZyU3ViQ2xhc3M6DQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICBmLndyaXRlKEtleUluZGVudCArICJzdWJjbGFzczogICIgKyBSb290LkRhdGEuU3ViQ2xhc3NT dHIgKyAiXG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShLZXlJbmRlbnQg KyAiY29tcG9uZW50OiAgXG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIHR5cGUo Um9vdC5EYXRhKSA9PSBJZnJFeHRlbnNpb25HdWlkOg0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgaWYgdHlwZShSb290LlBhcmVudC5EYXRhKSA9PSBJZnJFeHRlbnNpb25HdWlkOg0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJvb3QuTGV2ZWwgLT0gMQ0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEtleUluZGVudCA9ICIgIiAqICgoUm9vdC5MZXZlbCAqIDIgLSAxKSAq IDIpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVJbmRlbnQgPSAiICIgKiAo KFJvb3QuTGV2ZWwgKiAyICsgMSkgKiAyKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53 cml0ZShLZXlJbmRlbnQgKyAiLSBndWlkb3A6XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgaWYgUm9vdC5Db25kaXRpb24gaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1jb25kaXRpb246ICAne1Jvb3QuQ29uZGl0 aW9ufSdcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKA0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGYie1ZhbHVlSW5kZW50fWd1aWQ6ICAne3t7SW5mby5HdWlk LkRhdGExOiN4fSwNCj4ge0luZm8uR3VpZC5EYXRhMjojeH0sIHtJbmZvLkd1aWQuRGF0YTM6I3h9 LCB7eyB7JywgJy5qb2luKGYne3g6I3h9JyBmb3IgeCBpbg0KPiBJbmZvLkd1aWQuRGF0YTQpfX19 fX0nIFxuIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgaWYgUm9vdC5EYXRhLkdldERhdGFUeXBlKCkgIT0gIiI6DQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH17Um9vdC5EYXRhLkdldERh dGFUeXBlKCl9OiBcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGRhdGEg aW4gUm9vdC5EYXRhLkdldEZpZWxkTGlzdCgpOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fSAge2RhdGFbMF19OiAge2RhdGFbMV06I3h9 XG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9O T19TVUJNSVRfSUZfT1A6DQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoS2V5SW5kZW50 ICsgIi0gbm9zdWJtaXRpZjpcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIFJvb3QuQ29u ZGl0aW9uIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShm IntWYWx1ZUluZGVudH1jb25kaXRpb246ICAne1Jvb3QuQ29uZGl0aW9ufSdcbiIpDQo+ICsgICAg ICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9cHJvbXB0Og0KPiAne3NlbGYu X0Rpc3BsYXlVbmlTdHIoSW5mby5FcnJvcil9J1xuIikNCj4gKyAgICAgICAgICAgICAgICAgICAg aWYgUm9vdC5EYXRhLkZsYWdzU3RyZWFtICE9ICIiOg0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgZi53cml0ZShWYWx1ZUluZGVudCArICJmbGFnczogICIgKyBSb290LkRhdGEuRmxhZ3NTdHJl YW0gKyAiXG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50 fWV4cHJlc3Npb246ICAne1Jvb3QuRXhwcmVzc2lvbn0nXG4iKQ0KPiArDQo+ICsgICAgICAgICAg ICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9SRUFEX09QOg0KPiArICAgICAgICAgICAg ICAgICAgICBmLndyaXRlKEtleUluZGVudCArICItIHJlYWQ6XG4iKQ0KPiArICAgICAgICAgICAg ICAgICAgICBpZiBSb290LkNvbmRpdGlvbiBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9Y29uZGl0aW9uOiAgJ3tSb290LkNvbmRp dGlvbn0nXG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50 fWV4cHJlc3Npb246ICAne1Jvb3QuRXhwcmVzc2lvbn0nXG4iKQ0KPiArDQo+ICsgICAgICAgICAg ICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9XUklURV9PUDoNCj4gKyAgICAgICAgICAg ICAgICAgICAgZi53cml0ZShLZXlJbmRlbnQgKyAiLSB3cml0ZTpcbiIpDQo+ICsgICAgICAgICAg ICAgICAgICAgIGlmIFJvb3QuQ29uZGl0aW9uIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1jb25kaXRpb246ICAne1Jvb3QuQ29u ZGl0aW9ufSdcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRl bnR9ZXhwcmVzc2lvbjogICd7Um9vdC5FeHByZXNzaW9ufSdcbiIpDQo+ICsNCj4gKyAgICAgICAg ICAgICAgICBpZiBSb290Lk9wQ29kZSA9PSBFRklfSUZSX1ZBTFVFX09QIGFuZCBSb290LlBhcmVu dC5PcENvZGUgIT0NCj4gRUZJX0lGUl9ERUZBVUxUX09QOiAgIw0KPiArICAgICAgICAgICAgICAg ICAgICBmLndyaXRlKEtleUluZGVudCArICItIHZhbHVlOlxuIikNCj4gKyAgICAgICAgICAgICAg ICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1leHByZXNzaW9uOiAgJ3tSb290LkV4cHJlc3Np b259J1xuIikNCj4gKw0KPiArICAgICAgICAgICAgICAgIGlmIFJvb3QuT3BDb2RlID09IEVGSV9J RlJfTU9EQUxfVEFHX09QOg0KPiArICAgICAgICAgICAgICAgICAgICBpZiBSb290LkNvbmRpdGlv biBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoZiJ7VmFs dWVJbmRlbnR9Y29uZGl0aW9uOiAgJ3tSb290LkNvbmRpdGlvbn0nXG4iKQ0KPiArICAgICAgICAg ICAgICAgICAgICBmLndyaXRlKEtleUluZGVudCArICItIG1vZGFsOiBudWxsXG4iKQ0KPiArDQo+ ICsgICAgICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9MT0NLRURfT1A6DQo+ ICsgICAgICAgICAgICAgICAgICAgIGlmIFJvb3QuQ29uZGl0aW9uIGlzIG5vdCBOb25lOg0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1jb25kaXRpb246 ICAne1Jvb3QuQ29uZGl0aW9ufSdcbiIpDQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUo S2V5SW5kZW50ICsgIi0gbG9ja2VkOiBudWxsXG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAg aWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9TVVBQUkVTU19JRl9PUDoNCj4gKyAgICAgICAgICAg ICAgICAgICAgZi53cml0ZShLZXlJbmRlbnQgKyAiLSBzdXBwcmVzc2lmOlxuIikNCj4gKyAgICAg ICAgICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1leHByZXNzaW9uOiAgJ3tSb290 LkV4cHJlc3Npb259J1xuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgbGVuKFJvb3QuQ2hp bGQpID4gMiBhbmQgUm9vdC5DaGlsZFtsZW4oUm9vdC5DaGlsZCkgLSAyXS5PcENvZGUNCj4gbm90 IGluIEV4cE9wczoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoVmFsdWVJbmRl bnQgKyAiY29tcG9uZW50OiAgXG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgaWYgUm9vdC5P cENvZGUgPT0gRUZJX0lGUl9ESVNBQkxFX0lGX09QOg0KPiArICAgICAgICAgICAgICAgICAgICAj IElmIHRoZSBkaXNhYmxlIG5vZGUgaXMgaW5zZXJ0ZWQgYWZ0ZXIgdGhlIGZvcm1zZXQgZW5kcywg ZG8gbm90DQo+IHNob3cgaXQgaW4gc291cmNlIHltbA0KPiArICAgICAgICAgICAgICAgICAgICAj IHVzZSB0aGUgZXhwcmVzc2lvbiBjb250ZW50IHRvIHRlbGwgaWYgdGhlICBkaXNhYmxlIG5vZGUg aXMgaW5zZXJ0ZWQNCj4gYWZ0ZXIgdGhlIGZvcm1zZXQgZW5kcw0KPiArICAgICAgICAgICAgICAg ICAgICBpZiBSb290LkV4cHJlc3Npb24gaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICBmLndyaXRlKEtleUluZGVudCArICItIGRpc2FibGVpZjpcbiIpDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWV4cHJlc3Npb246ICAne1Jv b3QuRXhwcmVzc2lvbn0nXG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgaWYgKA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihSb290LkNoaWxkKSA+IDINCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhbmQgUm9vdC5DaGlsZFtsZW4oUm9vdC5DaGlsZCkgLSAy XS5PcENvZGUgbm90IGluIEV4cE9wcw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgKToNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKFZhbHVlSW5kZW50ICsgImNvbXBv bmVudDogIFxuIikNCj4gKw0KPiArICAgICAgICAgICAgICAgIGlmIFJvb3QuT3BDb2RlID09IEVG SV9JRlJfR1JBWV9PVVRfSUZfT1A6DQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoS2V5 SW5kZW50ICsgIi0gZ3JheW91dGlmOlxuIikNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0 ZShmIntWYWx1ZUluZGVudH1leHByZXNzaW9uOiAgJ3tSb290LkV4cHJlc3Npb259J1xuIikNCj4g KyAgICAgICAgICAgICAgICAgICAgaWYgbGVuKFJvb3QuQ2hpbGQpID4gMiBhbmQgUm9vdC5DaGls ZFtsZW4oUm9vdC5DaGlsZCkgLSAyXS5PcENvZGUNCj4gbm90IGluIEV4cE9wczoNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgIGYud3JpdGUoVmFsdWVJbmRlbnQgKyAiY29tcG9uZW50OiAgXG4i KQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9JTkNP TlNJU1RFTlRfSUZfT1A6DQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoS2V5SW5kZW50 ICsgIi0gaW5jb25zaXN0ZW50aWY6XG4iKQ0KPiArICAgICAgICAgICAgICAgICAgICBmLndyaXRl KGYie1ZhbHVlSW5kZW50fWV4cHJlc3Npb246ICAne1Jvb3QuRXhwcmVzc2lvbn0nXG4iKQ0KPiAr ICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fXByb21wdDoNCj4gJ3tz ZWxmLl9EaXNwbGF5VW5pU3RyKEluZm8uRXJyb3IpfSdcbiIpDQo+ICsgICAgICAgICAgICAgICAg ICAgIGlmIFJvb3QuRGF0YS5GbGFnc1N0cmVhbSAhPSAiIjoNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgIGYud3JpdGUoVmFsdWVJbmRlbnQgKyAiZmxhZ3M6ICAiICsgUm9vdC5EYXRhLkZsYWdz U3RyZWFtICsgIlxuIikNCj4gKyAgICAgICAgICAgIHNlbGYuTGFzdE9wID0gUm9vdC5PcENvZGUN Cj4gKw0KPiArICAgICAgICBleGNlcHQgRXhjZXB0aW9uOg0KPiArICAgICAgICAgICAgRWRrTG9n Z2VyLmVycm9yKA0KPiArICAgICAgICAgICAgICAgICJWZnJDb21waWxlciIsDQo+ICsgICAgICAg ICAgICAgICAgRklMRV9XUklURV9GQUlMVVJFLA0KPiArICAgICAgICAgICAgICAgICJGaWxlIHdy aXRlIGZhaWxlZCBmb3IgJXMiICUgKHNlbGYuT3B0aW9ucy5ZYW1sRmlsZU5hbWUpLA0KPiArICAg ICAgICAgICAgICAgIE5vbmUsDQo+ICsgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgaWYg Um9vdC5DaGlsZCAhPSBbXToNCj4gKyAgICAgICAgICAgIGZvciBDaGlsZE5vZGUgaW4gUm9vdC5D aGlsZDoNCj4gKyAgICAgICAgICAgICAgICBpZiBSb290Lk9wQ29kZSBpbiBDb25kaXRpb25PcHM6 DQo+ICsgICAgICAgICAgICAgICAgICAgIENoaWxkTm9kZS5MZXZlbCA9IFJvb3QuTGV2ZWwgKyAx DQo+ICsgICAgICAgICAgICAgICAgZWxpZiB0eXBlKFJvb3QuRGF0YSkgPT0gSWZyR3VpZCBhbmQg KA0KPiArICAgICAgICAgICAgICAgICAgICBDaGlsZE5vZGUuT3BDb2RlIGluIFtFRklfSUZSX0NI RUNLQk9YX09QLA0KPiBFRklfSUZSX05VTUVSSUNfT1AsIEVGSV9JRlJfT05FX09GX09QXQ0KPiAr ICAgICAgICAgICAgICAgICk6DQo+ICsgICAgICAgICAgICAgICAgICAgIENoaWxkTm9kZS5MZXZl bCA9IFJvb3QuTGV2ZWwNCj4gKyAgICAgICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAg ICAgICAgICBDaGlsZE5vZGUuTGV2ZWwgPSBSb290LkxldmVsICsgMQ0KPiArDQo+ICsgICAgICAg ICAgICAgICAgc2VsZi5fRHVtcFlhbWxGb3JYTUxDTElEZnMoQ2hpbGROb2RlLCBmKQ0KPiArDQo+ ICsgICAgICAgIHJldHVybg0KPiArDQo+ICsgICAgZGVmIER1bXBRdWVzdGlvbkluZm9zKHNlbGYs IFJvb3QsIGYsIFZhbHVlSW5kZW50KToNCj4gKyAgICAgICAgSW5mbyA9IFJvb3QuRGF0YS5HZXRJ bmZvKCkNCj4gKyAgICAgICAgaWYgUm9vdC5Db25kaXRpb24gaXMgbm90IE5vbmU6DQo+ICsgICAg ICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWNvbmRpdGlvbjogICd7Um9vdC5Db25kaXRp b259J1xuIikNCj4gKyAgICAgICAgaWYgUm9vdC5Qb3NpdGlvbiBpcyBub3QgTm9uZToNCj4gKyAg ICAgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9cG9zaXRpb246ICAne1Jvb3QuUG9zaXRp b259JyAjIGZvciByZWZlcmVuY2VcbiIpDQo+ICsgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRl bnR9cXVlc3Rpb25pZDogIHtJbmZvLlF1ZXN0aW9uLlF1ZXN0aW9uSWR9XG4iKQ0KPiArICAgICAg ICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fXZhcnN0b3JlaWQ6ICB7SW5mby5RdWVzdGlvbi5WYXJT dG9yZUlkfSAgIyAgT3B0aW9uYWwNCj4gSW5wdXRcbiIpDQo+ICsgICAgICAgIGYud3JpdGUoDQo+ ICsgICAgICAgICAgICBmIntWYWx1ZUluZGVudH12YXJuYW1lOiAge0luZm8uUXVlc3Rpb24uVmFy U3RvcmVJbmZvLlZhck5hbWV9ICAjDQo+IFF1ZXN0aW9uIFZhck5hbWVcbiINCj4gKyAgICAgICAg KQ0KPiArICAgICAgICBmLndyaXRlKA0KPiArICAgICAgICAgICAgZiJ7VmFsdWVJbmRlbnR9dmFy b2Zmc2V0OiAge0luZm8uUXVlc3Rpb24uVmFyU3RvcmVJbmZvLlZhck9mZnNldH0gICMNCj4gUXVl c3Rpb24gVmFyT2Zmc2V0XG4iDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgZi53cml0ZShmIntW YWx1ZUluZGVudH1xdWVzdGlvbmZsYWdzOiAge0luZm8uUXVlc3Rpb24uRmxhZ3N9ICMgT3B0aW9u YWwNCj4gSW5wdXRcbiIpDQo+ICsgICAgICAgIGYud3JpdGUoZiJ7VmFsdWVJbmRlbnR9cHJvbXB0 Og0KPiAne3NlbGYuX0Rpc3BsYXlVbmlTdHIoSW5mby5RdWVzdGlvbi5IZWFkZXIuUHJvbXB0KX0n XG4iKQ0KPiArICAgICAgICBmLndyaXRlKGYie1ZhbHVlSW5kZW50fWhlbHA6DQo+ICd7c2VsZi5f RGlzcGxheVVuaVN0cihJbmZvLlF1ZXN0aW9uLkhlYWRlci5IZWxwKX0nXG4iKQ0KPiArICAgICAg ICBpZiAoDQo+ICsgICAgICAgICAgICBSb290Lk9wQ29kZSAhPSBFRklfSUZSX1JFRl9PUA0KPiAr ICAgICAgICAgICAgYW5kIFJvb3QuT3BDb2RlICE9IEVGSV9JRlJfQUNUSU9OX09QDQo+ICsgICAg ICAgICAgICBhbmQgUm9vdC5PcENvZGUgIT0gRUZJX0lGUl9QQVNTV09SRF9PUA0KPiArICAgICAg ICApOg0KPiArICAgICAgICAgICAgZi53cml0ZShmIntWYWx1ZUluZGVudH1vcGNvZGVmbGFnczog IHtJbmZvLkZsYWdzOiN4fSAgIyBvcHRpb25hbA0KPiBpbnB1dFxuIikNCj4gZGlmZiAtLWdpdCBh L0Jhc2VUb29scy9Tb3VyY2UvUHl0aG9uL1ZmckNvbXBpbGVyL0lmclV0aWxpdHkucHkNCj4gYi9C YXNlVG9vbHMvU291cmNlL1B5dGhvbi9WZnJDb21waWxlci9JZnJVdGlsaXR5LnB5DQo+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAuLjZjOTRkMWZmMzkNCj4gLS0tIC9k ZXYvbnVsbA0KPiArKysgYi9CYXNlVG9vbHMvU291cmNlL1B5dGhvbi9WZnJDb21waWxlci9JZnJV dGlsaXR5LnB5DQo+IEBAIC0wLDAgKzEsMjIyNiBAQA0KPiArIyMgQGZpbGUNCj4gKyMgVmZyIGNv bW1vbiBsaWJyYXJ5IGZ1bmN0aW9ucy4NCj4gKyMNCj4gKyMgQ29weXJpZ2h0IChjKSAyMDIyLSwg SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArIyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiArIyMNCj4gK2ltcG9ydCBv cw0KPiArZnJvbSBlbnVtIGltcG9ydCBFbnVtDQo+ICtmcm9tIFZmckNvbXBpbGVyLklmckN0eXBl cyBpbXBvcnQgKg0KPiArZnJvbSBWZnJDb21waWxlci5JZnJFcnJvciBpbXBvcnQgZ1ZmckVycm9y SGFuZGxlLCBWZnJSZXR1cm5Db2RlDQo+ICtmcm9tIFZmckNvbXBpbGVyLklmckNvbW1vbiBpbXBv cnQgRUZJX1NVQ0NFU1MsIEVGSV9OT1RfRk9VTkQsDQo+IFJFVFVSTl9TVUNDRVNTDQo+ICtmcm9t IGFiYyBpbXBvcnQgQUJDTWV0YSwgYWJzdHJhY3RtZXRob2QNCj4gK2Zyb20gQ29tbW9uLkxvbmdG aWxlUGF0aFN1cHBvcnQgaW1wb3J0IExvbmdGaWxlUGF0aA0KPiArDQo+ICtWRlJfUEFDS19TSE9X ID0gMHgwMg0KPiArVkZSX1BBQ0tfQVNTSUdOID0gMHgwMQ0KPiArVkZSX1BBQ0tfUFVTSCA9IDB4 MDQNCj4gK1ZGUl9QQUNLX1BPUCA9IDB4MDgNCj4gK0RFRkFVTFRfUEFDS19BTElHTiA9IDB4OA0K PiArREVGQVVMVF9BTElHTiA9IDENCj4gK1pFUk9fQUxJR04gPSAwDQo+ICtNQVhfUEFDS19BTElH TiA9IDB4MTANCj4gK01BWF9OQU1FX0xFTiA9IDY0DQo+ICtNQVhfQklUX1dJRFRIID0gMzINCj4g K0VGSV9WQVJTVE9SRV9JRF9NQVggPSAweEZGRkYNCj4gK0VGSV9CSVRTX1NISUZUX1BFUl9VSU5U MzIgPSAweDUNCj4gK0VGSV9CSVRTX1BFUl9VSU5UMzIgPSAxIDw8IEVGSV9CSVRTX1NISUZUX1BF Ul9VSU5UMzINCj4gK0VGSV9GUkVFX1ZBUlNUT1JFX0lEX0JJVE1BUF9TSVpFID0gaW50KChFRklf VkFSU1RPUkVfSURfTUFYICsgMSkgLw0KPiBFRklfQklUU19QRVJfVUlOVDMyKQ0KPiArDQo+ICsN Cj4gK2NsYXNzIFNWZnJQYWNrU3RhY2tOb2RlOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBJ ZGVudGlmaWVyLCBOdW1iZXIpOg0KPiArICAgICAgICBzZWxmLklkZW50aWZpZXIgPSBJZGVudGlm aWVyDQo+ICsgICAgICAgIHNlbGYuTnVtYmVyID0gTnVtYmVyDQo+ICsgICAgICAgIHNlbGYuTmV4 dCA9IE5vbmUNCj4gKw0KPiArICAgIGRlZiBNYXRjaChzZWxmLCBJZGVudGlmaWVyKToNCj4gKyAg ICAgICAgaWYgSWRlbnRpZmllciBpcyBOb25lOg0KPiArICAgICAgICAgICAgcmV0dXJuIFRydWUN Cj4gKyAgICAgICAgZWxpZiBzZWxmLklkZW50aWZpZXIgaXMgTm9uZToNCj4gKyAgICAgICAgICAg IHJldHVybiBGYWxzZQ0KPiArICAgICAgICByZXR1cm4gc2VsZi5JZGVudGlmaWVyID09IElkZW50 aWZpZXINCj4gKw0KPiArDQo+ICtjbGFzcyBTVmZyRGF0YVR5cGU6DQo+ICsgICAgZGVmIF9faW5p dF9fKHNlbGYsIFR5cGVOYW1lPSIiKToNCj4gKyAgICAgICAgc2VsZi5UeXBlTmFtZSA9IFR5cGVO YW1lDQo+ICsgICAgICAgIHNlbGYuVHlwZSA9IDANCj4gKyAgICAgICAgc2VsZi5BbGlnbiA9IDEN Cj4gKyAgICAgICAgc2VsZi5Ub3RhbFNpemUgPSAwDQo+ICsgICAgICAgIHNlbGYuSGFzQml0Rmll bGQgPSBGYWxzZQ0KPiArICAgICAgICBzZWxmLk1lbWJlcnMgPSBOb25lDQo+ICsgICAgICAgIHNl bGYuTmV4dCA9IE5vbmUNCj4gKw0KPiArDQo+ICtjbGFzcyBTVmZyRGF0YUZpZWxkOg0KPiArICAg IGRlZiBfX2luaXRfXyhzZWxmLCBGaWVsZE5hbWU9Tm9uZSk6DQo+ICsgICAgICAgIHNlbGYuRmll bGROYW1lID0gRmllbGROYW1lDQo+ICsgICAgICAgIHNlbGYuRmllbGRUeXBlID0gTm9uZQ0KPiAr ICAgICAgICBzZWxmLk9mZnNldCA9IDANCj4gKyAgICAgICAgc2VsZi5BcnJheU51bSA9IDANCj4g KyAgICAgICAgc2VsZi5Jc0JpdEZpZWxkID0gRmFsc2UNCj4gKyAgICAgICAgc2VsZi5CaXRXaWR0 aCA9IDANCj4gKyAgICAgICAgc2VsZi5CaXRPZmZzZXQgPSAwDQo+ICsgICAgICAgIHNlbGYuTmV4 dCA9IE5vbmUNCj4gKw0KPiArDQo+ICtjbGFzcyBJbnRlcm5hbFR5cGVzOg0KPiArICAgIGRlZiBf X2luaXRfXyhzZWxmLCBUeXBlTmFtZSwgVHlwZSwgU2l6ZSwgQWxpZ24pOg0KPiArICAgICAgICBz ZWxmLlR5cGVOYW1lID0gVHlwZU5hbWUNCj4gKyAgICAgICAgc2VsZi5UeXBlID0gVHlwZQ0KPiAr ICAgICAgICBzZWxmLlNpemUgPSBTaXplDQo+ICsgICAgICAgIHNlbGYuQWxpZ24gPSBBbGlnbg0K PiArDQo+ICsNCj4gK2dJbnRlcm5hbFR5cGVzVGFibGUgPSBbDQo+ICsgICAgSW50ZXJuYWxUeXBl cygiVUlOVDY0IiwgRUZJX0lGUl9UWVBFX05VTV9TSVpFXzY0LA0KPiBzaXplb2YoY191bG9uZ2xv bmcpLCBzaXplb2YoY191bG9uZ2xvbmcpKSwNCj4gKyAgICBJbnRlcm5hbFR5cGVzKCJVSU5UMzIi LCBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMzIsIHNpemVvZihjX3Vsb25nKSwNCj4gc2l6ZW9mKGNf dWxvbmcpKSwNCj4gKyAgICBJbnRlcm5hbFR5cGVzKCJVSU5UMTYiLCBFRklfSUZSX1RZUEVfTlVN X1NJWkVfMTYsIHNpemVvZihjX3VzaG9ydCksDQo+IHNpemVvZihjX3VzaG9ydCkpLA0KPiArICAg IEludGVybmFsVHlwZXMoIlVJTlQ4IiwgRUZJX0lGUl9UWVBFX05VTV9TSVpFXzgsIHNpemVvZihj X3VieXRlKSwNCj4gc2l6ZW9mKGNfdWJ5dGUpKSwNCj4gKyAgICBJbnRlcm5hbFR5cGVzKCJCT09M RUFOIiwgRUZJX0lGUl9UWVBFX0JPT0xFQU4sIHNpemVvZihjX3VieXRlKSwNCj4gc2l6ZW9mKGNf dWJ5dGUpKSwNCj4gKyAgICBJbnRlcm5hbFR5cGVzKCJFRklfR1VJRCIsIEVGSV9JRlJfVFlQRV9P VEhFUiwgc2l6ZW9mKEVGSV9HVUlEKSwNCj4gc2l6ZW9mKGNfdWJ5dGUgKiA4KSksDQo+ICsgICAg SW50ZXJuYWxUeXBlcygiRUZJX0hJSV9EQVRFIiwgRUZJX0lGUl9UWVBFX0RBVEUsIHNpemVvZihF RklfSElJX0RBVEUpLA0KPiBzaXplb2YoY191c2hvcnQpKSwNCj4gKyAgICBJbnRlcm5hbFR5cGVz KCJFRklfU1RSSU5HX0lEIiwgRUZJX0lGUl9UWVBFX1NUUklORywgc2l6ZW9mKGNfdXNob3J0KSwN Cj4gc2l6ZW9mKGNfdXNob3J0KSksDQo+ICsgICAgSW50ZXJuYWxUeXBlcygiRUZJX0hJSV9USU1F IiwgRUZJX0lGUl9UWVBFX1RJTUUsIHNpemVvZihFRklfSElJX1RJTUUpLA0KPiBzaXplb2YoY191 Ynl0ZSkpLA0KPiArICAgIEludGVybmFsVHlwZXMoIkVGSV9ISUlfUkVGIiwgRUZJX0lGUl9UWVBF X1JFRiwgc2l6ZW9mKEVGSV9ISUlfUkVGKSwNCj4gc2l6ZW9mKEVGSV9HVUlEKSksDQo+ICtdDQo+ ICsNCj4gKw0KPiArY2xhc3MgVmZyVmFyRGF0YVR5cGVEQjoNCj4gKyAgICBkZWYgX19pbml0X18o c2VsZik6DQo+ICsgICAgICAgIHNlbGYuUGFja0FsaWduID0gREVGQVVMVF9QQUNLX0FMSUdODQo+ ICsgICAgICAgIHNlbGYuUGFja1N0YWNrID0gTm9uZQ0KPiArICAgICAgICBzZWxmLkRhdGFUeXBl TGlzdCA9IE5vbmUNCj4gKyAgICAgICAgc2VsZi5OZXdEYXRhVHlwZSA9IE5vbmUNCj4gKyAgICAg ICAgc2VsZi5DdXJyRGF0YVR5cGUgPSBOb25lDQo+ICsgICAgICAgIHNlbGYuQ3VyckRhdGFGaWVs ZCA9IE5vbmUNCj4gKyAgICAgICAgc2VsZi5GaXJzdE5ld0RhdGFUeXBlTmFtZSA9IE5vbmUNCj4g KyAgICAgICAgc2VsZi5JbnRlcm5hbFR5cGVzTGlzdEluaXQoKQ0KPiArDQo+ICsgICAgZGVmIENs ZWFyKHNlbGYpOg0KPiArICAgICAgICBzZWxmLlBhY2tBbGlnbiA9IERFRkFVTFRfUEFDS19BTElH Tg0KPiArICAgICAgICBzZWxmLlBhY2tTdGFjayA9IE5vbmUNCj4gKyAgICAgICAgc2VsZi5EYXRh VHlwZUxpc3QgPSBOb25lDQo+ICsgICAgICAgIHNlbGYuTmV3RGF0YVR5cGUgPSBOb25lDQo+ICsg ICAgICAgIHNlbGYuQ3VyckRhdGFUeXBlID0gTm9uZQ0KPiArICAgICAgICBzZWxmLkN1cnJEYXRh RmllbGQgPSBOb25lDQo+ICsgICAgICAgIHNlbGYuRmlyc3ROZXdEYXRhVHlwZU5hbWUgPSBOb25l DQo+ICsgICAgICAgIHNlbGYuSW50ZXJuYWxUeXBlc0xpc3RJbml0KCkNCj4gKw0KPiArICAgIGRl ZiBJbnRlcm5hbFR5cGVzTGlzdEluaXQoc2VsZik6DQo+ICsgICAgICAgIGZvciBpIGluIHJhbmdl KDAsIGxlbihnSW50ZXJuYWxUeXBlc1RhYmxlKSk6DQo+ICsgICAgICAgICAgICBwTmV3VHlwZSA9 IFNWZnJEYXRhVHlwZSgpDQo+ICsgICAgICAgICAgICBwTmV3VHlwZS5UeXBlTmFtZSA9IGdJbnRl cm5hbFR5cGVzVGFibGVbaV0uVHlwZU5hbWUNCj4gKyAgICAgICAgICAgIHBOZXdUeXBlLlR5cGUg PSBnSW50ZXJuYWxUeXBlc1RhYmxlW2ldLlR5cGUNCj4gKyAgICAgICAgICAgIHBOZXdUeXBlLkFs aWduID0gZ0ludGVybmFsVHlwZXNUYWJsZVtpXS5BbGlnbg0KPiArICAgICAgICAgICAgcE5ld1R5 cGUuVG90YWxTaXplID0gZ0ludGVybmFsVHlwZXNUYWJsZVtpXS5TaXplDQo+ICsNCj4gKyAgICAg ICAgICAgIGlmIGdJbnRlcm5hbFR5cGVzVGFibGVbaV0uVHlwZU5hbWUgPT0gIkVGSV9ISUlfREFU RSI6DQo+ICsgICAgICAgICAgICAgICAgcFllYXJGaWVsZCA9IFNWZnJEYXRhRmllbGQoKQ0KPiAr ICAgICAgICAgICAgICAgIHBNb250aEZpZWxkID0gU1ZmckRhdGFGaWVsZCgpDQo+ICsgICAgICAg ICAgICAgICAgcERheUZpZWxkID0gU1ZmckRhdGFGaWVsZCgpDQo+ICsNCj4gKyAgICAgICAgICAg ICAgICBwWWVhckZpZWxkLkZpZWxkTmFtZSA9ICJZZWFyIg0KPiArICAgICAgICAgICAgICAgIHBZ ZWFyRmllbGQuRmllbGRUeXBlLCBfID0gc2VsZi5HZXREYXRhVHlwZSgiVUlOVDE2IikNCj4gKyAg ICAgICAgICAgICAgICBwWWVhckZpZWxkLk9mZnNldCA9IDANCj4gKyAgICAgICAgICAgICAgICBw WWVhckZpZWxkLk5leHQgPSBwTW9udGhGaWVsZA0KPiArICAgICAgICAgICAgICAgIHBZZWFyRmll bGQuQXJyYXlOdW0gPSAwDQo+ICsgICAgICAgICAgICAgICAgcFllYXJGaWVsZC5Jc0JpdEZpZWxk ID0gRmFsc2UNCj4gKw0KPiArICAgICAgICAgICAgICAgIHBNb250aEZpZWxkLkZpZWxkTmFtZSA9 ICJNb250aCINCj4gKyAgICAgICAgICAgICAgICBwTW9udGhGaWVsZC5GaWVsZFR5cGUsIF8gPSBz ZWxmLkdldERhdGFUeXBlKCJVSU5UOCIpDQo+ICsgICAgICAgICAgICAgICAgcE1vbnRoRmllbGQu T2Zmc2V0ID0gMg0KPiArICAgICAgICAgICAgICAgIHBNb250aEZpZWxkLk5leHQgPSBwRGF5Rmll bGQNCj4gKyAgICAgICAgICAgICAgICBwTW9udGhGaWVsZC5BcnJheU51bSA9IDANCj4gKyAgICAg ICAgICAgICAgICBwTW9udGhGaWVsZC5Jc0JpdEZpZWxkID0gRmFsc2UNCj4gKw0KPiArICAgICAg ICAgICAgICAgIHBEYXlGaWVsZC5GaWVsZE5hbWUgPSAiRGF5Ig0KPiArICAgICAgICAgICAgICAg IHBEYXlGaWVsZC5GaWVsZFR5cGUsIF8gPSBzZWxmLkdldERhdGFUeXBlKCJVSU5UOCIpDQo+ICsg ICAgICAgICAgICAgICAgcERheUZpZWxkLk9mZnNldCA9IDMNCj4gKyAgICAgICAgICAgICAgICBw RGF5RmllbGQuTmV4dCA9IE5vbmUNCj4gKyAgICAgICAgICAgICAgICBwRGF5RmllbGQuQXJyYXlO dW0gPSAwDQo+ICsgICAgICAgICAgICAgICAgcERheUZpZWxkLklzQml0RmllbGQgPSBGYWxzZQ0K PiArDQo+ICsgICAgICAgICAgICAgICAgcE5ld1R5cGUuTWVtYmVycyA9IHBZZWFyRmllbGQNCj4g Kw0KPiArICAgICAgICAgICAgZWxpZiBnSW50ZXJuYWxUeXBlc1RhYmxlW2ldLlR5cGVOYW1lID09 ICJFRklfSElJX1RJTUUiOg0KPiArICAgICAgICAgICAgICAgIHBIb3Vyc0ZpZWxkID0gU1ZmckRh dGFGaWVsZCgpDQo+ICsgICAgICAgICAgICAgICAgcE1pbnV0ZXNGaWVsZCA9IFNWZnJEYXRhRmll bGQoKQ0KPiArICAgICAgICAgICAgICAgIHBTZWNvbmRzRmllbGQgPSBTVmZyRGF0YUZpZWxkKCkN Cj4gKw0KPiArICAgICAgICAgICAgICAgIHBIb3Vyc0ZpZWxkLkZpZWxkTmFtZSA9ICJIb3VycyIN Cj4gKyAgICAgICAgICAgICAgICBwSG91cnNGaWVsZC5GaWVsZFR5cGUsIF8gPSBzZWxmLkdldERh dGFUeXBlKCJVSU5UOCIpDQo+ICsgICAgICAgICAgICAgICAgcEhvdXJzRmllbGQuT2Zmc2V0ID0g MA0KPiArICAgICAgICAgICAgICAgIHBIb3Vyc0ZpZWxkLk5leHQgPSBwTWludXRlc0ZpZWxkDQo+ ICsgICAgICAgICAgICAgICAgcEhvdXJzRmllbGQuQXJyYXlOdW0gPSAwDQo+ICsgICAgICAgICAg ICAgICAgcEhvdXJzRmllbGQuSXNCaXRGaWVsZCA9IEZhbHNlDQo+ICsNCj4gKyAgICAgICAgICAg ICAgICBwTWludXRlc0ZpZWxkLkZpZWxkTmFtZSA9ICJNaW51dGVzIg0KPiArICAgICAgICAgICAg ICAgIHBNaW51dGVzRmllbGQuRmllbGRUeXBlLCBfID0gc2VsZi5HZXREYXRhVHlwZSgiVUlOVDgi KQ0KPiArICAgICAgICAgICAgICAgIHBNaW51dGVzRmllbGQuT2Zmc2V0ID0gMQ0KPiArICAgICAg ICAgICAgICAgIHBNaW51dGVzRmllbGQuTmV4dCA9IHBTZWNvbmRzRmllbGQNCj4gKyAgICAgICAg ICAgICAgICBwTWludXRlc0ZpZWxkLkFycmF5TnVtID0gMA0KPiArICAgICAgICAgICAgICAgIHBN aW51dGVzRmllbGQuSXNCaXRGaWVsZCA9IEZhbHNlDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBw U2Vjb25kc0ZpZWxkLkZpZWxkTmFtZSA9ICJTZWNvbmRzIg0KPiArICAgICAgICAgICAgICAgIHBT ZWNvbmRzRmllbGQuRmllbGRUeXBlLCBfID0gc2VsZi5HZXREYXRhVHlwZSgiVUlOVDgiKQ0KPiAr ICAgICAgICAgICAgICAgIHBTZWNvbmRzRmllbGQuT2Zmc2V0ID0gMg0KPiArICAgICAgICAgICAg ICAgIHBTZWNvbmRzRmllbGQuTmV4dCA9IE5vbmUNCj4gKyAgICAgICAgICAgICAgICBwU2Vjb25k c0ZpZWxkLkFycmF5TnVtID0gMA0KPiArICAgICAgICAgICAgICAgIHBTZWNvbmRzRmllbGQuSXNC aXRGaWVsZCA9IEZhbHNlDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBwTmV3VHlwZS5NZW1iZXJz ID0gcEhvdXJzRmllbGQNCj4gKw0KPiArICAgICAgICAgICAgZWxpZiBnSW50ZXJuYWxUeXBlc1Rh YmxlW2ldLlR5cGVOYW1lID09ICJFRklfSElJX1JFRiI6DQo+ICsgICAgICAgICAgICAgICAgcFF1 ZXN0aW9uSWRGaWVsZCA9IFNWZnJEYXRhRmllbGQoKQ0KPiArICAgICAgICAgICAgICAgIHBGb3Jt SWRGaWVsZCA9IFNWZnJEYXRhRmllbGQoKQ0KPiArICAgICAgICAgICAgICAgIHBGb3JtU2V0R3Vp ZEZpZWxkID0gU1ZmckRhdGFGaWVsZCgpDQo+ICsgICAgICAgICAgICAgICAgcERldmljZVBhdGhG aWVsZCA9IFNWZnJEYXRhRmllbGQoKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgcFF1ZXN0aW9u SWRGaWVsZC5GaWVsZE5hbWUgPSAiUXVlc3Rpb25JZCINCj4gKyAgICAgICAgICAgICAgICBwUXVl c3Rpb25JZEZpZWxkLkZpZWxkVHlwZSwgXyA9IHNlbGYuR2V0RGF0YVR5cGUoIlVJTlQxNiIpDQo+ ICsgICAgICAgICAgICAgICAgcFF1ZXN0aW9uSWRGaWVsZC5PZmZzZXQgPSAwDQo+ICsgICAgICAg ICAgICAgICAgcFF1ZXN0aW9uSWRGaWVsZC5OZXh0ID0gcEZvcm1JZEZpZWxkDQo+ICsgICAgICAg ICAgICAgICAgcFF1ZXN0aW9uSWRGaWVsZC5BcnJheU51bSA9IDANCj4gKyAgICAgICAgICAgICAg ICBwUXVlc3Rpb25JZEZpZWxkLklzQml0RmllbGQgPSBGYWxzZQ0KPiArDQo+ICsgICAgICAgICAg ICAgICAgcEZvcm1JZEZpZWxkLkZpZWxkTmFtZSA9ICJGb3JtSWQiDQo+ICsgICAgICAgICAgICAg ICAgcEZvcm1JZEZpZWxkLkZpZWxkVHlwZSwgXyA9IHNlbGYuR2V0RGF0YVR5cGUoIlVJTlQxNiIp DQo+ICsgICAgICAgICAgICAgICAgcEZvcm1JZEZpZWxkLk9mZnNldCA9IDINCj4gKyAgICAgICAg ICAgICAgICBwRm9ybUlkRmllbGQuTmV4dCA9IHBGb3JtU2V0R3VpZEZpZWxkDQo+ICsgICAgICAg ICAgICAgICAgcEZvcm1JZEZpZWxkLkFycmF5TnVtID0gMA0KPiArICAgICAgICAgICAgICAgIHBG b3JtSWRGaWVsZC5Jc0JpdEZpZWxkID0gRmFsc2UNCj4gKw0KPiArICAgICAgICAgICAgICAgIHBG b3JtU2V0R3VpZEZpZWxkLkZpZWxkTmFtZSA9ICJGb3JtU2V0R3VpZCINCj4gKyAgICAgICAgICAg ICAgICBwRm9ybVNldEd1aWRGaWVsZC5GaWVsZFR5cGUsIF8gPSBzZWxmLkdldERhdGFUeXBlKCJF RklfR1VJRCIpDQo+ICsgICAgICAgICAgICAgICAgcEZvcm1TZXRHdWlkRmllbGQuT2Zmc2V0ID0g NA0KPiArICAgICAgICAgICAgICAgIHBGb3JtU2V0R3VpZEZpZWxkLk5leHQgPSBwRGV2aWNlUGF0 aEZpZWxkDQo+ICsgICAgICAgICAgICAgICAgcEZvcm1TZXRHdWlkRmllbGQuQXJyYXlOdW0gPSAw DQo+ICsgICAgICAgICAgICAgICAgcEZvcm1TZXRHdWlkRmllbGQuSXNCaXRGaWVsZCA9IEZhbHNl DQo+ICsNCj4gKyAgICAgICAgICAgICAgICBwRGV2aWNlUGF0aEZpZWxkLkZpZWxkTmFtZSA9ICJE ZXZpY2VQYXRoIg0KPiArICAgICAgICAgICAgICAgIHBEZXZpY2VQYXRoRmllbGQuRmllbGRUeXBl LCBfID0gc2VsZi5HZXREYXRhVHlwZSgiRUZJX1NUUklOR19JRCIpDQo+ICsgICAgICAgICAgICAg ICAgcERldmljZVBhdGhGaWVsZC5PZmZzZXQgPSAyMA0KPiArICAgICAgICAgICAgICAgIHBEZXZp Y2VQYXRoRmllbGQuTmV4dCA9IE5vbmUNCj4gKyAgICAgICAgICAgICAgICBwRGV2aWNlUGF0aEZp ZWxkLkFycmF5TnVtID0gMA0KPiArICAgICAgICAgICAgICAgIHBEZXZpY2VQYXRoRmllbGQuSXNC aXRGaWVsZCA9IEZhbHNlDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBwTmV3VHlwZS5NZW1iZXJz ID0gcFF1ZXN0aW9uSWRGaWVsZA0KPiArDQo+ICsgICAgICAgICAgICBwTmV3VHlwZS5OZXh0ID0g Tm9uZQ0KPiArICAgICAgICAgICAgcE5ld1R5cGUuTmV4dCA9IHNlbGYuRGF0YVR5cGVMaXN0DQo+ ICsgICAgICAgICAgICBzZWxmLkRhdGFUeXBlTGlzdCA9IHBOZXdUeXBlDQo+ICsgICAgICAgICAg ICBwTmV3VHlwZSA9IE5vbmUNCj4gKw0KPiArICAgIGRlZiBHZXREYXRhVHlwZUxpc3Qoc2VsZik6 DQo+ICsgICAgICAgIHJldHVybiBzZWxmLkRhdGFUeXBlTGlzdA0KPiArDQo+ICsgICAgZGVmIFBh Y2soc2VsZiwgTGluZU51bSwgQWN0aW9uLCBJZGVudGlmaWVyPU5vbmUsDQo+IE51bWJlcj1ERUZB VUxUX1BBQ0tfQUxJR04pOg0KPiArICAgICAgICBpZiBBY3Rpb24gJiBWRlJfUEFDS19TSE9XOg0K PiArICAgICAgICAgICAgTXNnID0gc3RyLmZvcm1hdCgidmFsdWUgb2YgcHJhZ21hIHBhY2soc2hv dykgPT0gJWQiICUNCj4gKHNlbGYuUGFja0FsaWduKSkNCj4gKyAgICAgICAgICAgIGdWZnJFcnJv ckhhbmRsZS5QcmludE1zZyhMaW5lTnVtLCAiV2FybmluZyIsIE1zZykNCj4gKw0KPiArICAgICAg ICBpZiBBY3Rpb24gJiBWRlJfUEFDS19QVVNIOg0KPiArICAgICAgICAgICAgcE5ldyA9IFNWZnJQ YWNrU3RhY2tOb2RlKElkZW50aWZpZXIsIHNlbGYuUGFja0FsaWduKQ0KPiArICAgICAgICAgICAg aWYgcE5ldyBpcyBOb25lOg0KPiArICAgICAgICAgICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2Rl LlZGUl9SRVRVUk5fRkFUQUxfRVJST1INCj4gKyAgICAgICAgICAgIHBOZXcuTmV4dCA9IHNlbGYu UGFja1N0YWNrDQo+ICsgICAgICAgICAgICBzZWxmLlBhY2tTdGFjayA9IHBOZXcNCj4gKw0KPiAr ICAgICAgICBpZiBBY3Rpb24gJiBWRlJfUEFDS19QT1A6DQo+ICsgICAgICAgICAgICBwTm9kZSA9 IE5vbmUNCj4gKyAgICAgICAgICAgIGlmIHNlbGYuUGFja1N0YWNrIGlzIE5vbmU6DQo+ICsgICAg ICAgICAgICAgICAgZ1ZmckVycm9ySGFuZGxlLlByaW50TXNnKExpbmVOdW0sICJFcnJvciIsICIj cHJhZ21hDQo+IHBhY2socG9wLi4uKSA6IG1vcmUgcG9wcyB0aGFuIHB1c2hlcyIpDQo+ICsNCj4g KyAgICAgICAgICAgIHBOb2RlID0gc2VsZi5QYWNrU3RhY2sNCj4gKyAgICAgICAgICAgIHdoaWxl IHBOb2RlIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgICAgIGlmIHBOb2RlLk1hdGNoKElk ZW50aWZpZXIpIGlzIFRydWU6DQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuUGFja0FsaWdu ID0gcE5vZGUuTnVtYmVyDQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuUGFja1N0YWNrID0g cE5vZGUuTmV4dA0KPiArICAgICAgICAgICAgICAgIHBOb2RlID0gcE5vZGUuTmV4dA0KPiArDQo+ ICsgICAgICAgIGlmIEFjdGlvbiAmIFZGUl9QQUNLX0FTU0lHTjoNCj4gKyAgICAgICAgICAgIFBh Y2tBbGlnbiA9IChOdW1iZXIgKyBOdW1iZXIgJSAyKSBpZiAoTnVtYmVyID4gMSkgZWxzZSBOdW1i ZXINCj4gKyAgICAgICAgICAgIGlmIFBhY2tBbGlnbiA9PSBaRVJPX0FMSUdOIG9yIFBhY2tBbGln biA+IE1BWF9QQUNLX0FMSUdOOg0KPiArICAgICAgICAgICAgICAgIGdWZnJFcnJvckhhbmRsZS5Q cmludE1zZyhMaW5lTnVtLCAiRXJyb3IiLCAiZXhwZWN0ZWQgcHJhZ21hDQo+IHBhcmFtZXRlciB0 byBiZSAnMScsICcyJywgJzQnLCAnOCcsIG9yICcxNiciKQ0KPiArICAgICAgICAgICAgZWxzZToN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLlBhY2tBbGlnbiA9IFBhY2tBbGlnbg0KPiArDQo+ICsg ICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiArDQo+ICsg ICAgZGVmIERlY2xhcmVEYXRhVHlwZUJlZ2luKHNlbGYpOg0KPiArICAgICAgICBwTmV3VHlwZSA9 IFNWZnJEYXRhVHlwZSgpDQo+ICsNCj4gKyAgICAgICAgcE5ld1R5cGUuVHlwZU5hbWUgPSAiIg0K PiArICAgICAgICBwTmV3VHlwZS5UeXBlID0gRUZJX0lGUl9UWVBFX09USEVSDQo+ICsgICAgICAg IHBOZXdUeXBlLkFsaWduID0gREVGQVVMVF9BTElHTg0KPiArICAgICAgICBwTmV3VHlwZS5Ub3Rh bFNpemUgPSAwDQo+ICsgICAgICAgIHBOZXdUeXBlLkhhc0JpdEZpZWxkID0gRmFsc2UNCj4gKyAg ICAgICAgcE5ld1R5cGUuTWVtYmVycyA9IE5vbmUNCj4gKyAgICAgICAgcE5ld1R5cGUuTmV4dCA9 IE5vbmUNCj4gKyAgICAgICAgc2VsZi5OZXdEYXRhVHlwZSA9IHBOZXdUeXBlDQo+ICsNCj4gKyAg ICBkZWYgU2V0TmV3VHlwZVR5cGUoc2VsZiwgVHlwZSk6DQo+ICsgICAgICAgIGlmIHNlbGYuTmV3 RGF0YVR5cGUgaXMgTm9uZToNCj4gKyAgICAgICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZG Ul9SRVRVUk5fRVJST1JfU0tJUEVEDQo+ICsNCj4gKyAgICAgICAgaWYgVHlwZSBpcyBOb25lOg0K PiArICAgICAgICAgICAgcmV0dXJuIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9GQVRBTF9FUlJP Ug0KPiArICAgICAgICAjIG5lZWQgdG8gbGltaXQgdGhlIHZhbHVlIG9mIHRoZSB0eXBlDQo+ICsg ICAgICAgIHNlbGYuTmV3RGF0YVR5cGUuVHlwZSA9IFR5cGUNCj4gKw0KPiArICAgICAgICByZXR1 cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gKw0KPiArICAgIGRlZiBTZXRO ZXdUeXBlVG90YWxTaXplKHNlbGYsIFNpemUpOg0KPiArICAgICAgICBzZWxmLk5ld0RhdGFUeXBl LlRvdGFsU2l6ZSA9IFNpemUNCj4gKw0KPiArICAgIGRlZiBTZXROZXdUeXBlQWxpZ24oc2VsZiwg QWxpZ24pOg0KPiArICAgICAgICBzZWxmLk5ld0RhdGFUeXBlLkFsaWduID0gQWxpZ24NCj4gKw0K PiArICAgIGRlZiBTZXROZXdUeXBlTmFtZShzZWxmLCBUeXBlTmFtZSk6DQo+ICsgICAgICAgIGlm IHNlbGYuTmV3RGF0YVR5cGUgaXMgTm9uZToNCj4gKyAgICAgICAgICAgIHJldHVybiBWZnJSZXR1 cm5Db2RlLlZGUl9SRVRVUk5fRVJST1JfU0tJUEVEDQo+ICsNCj4gKyAgICAgICAgaWYgVHlwZU5h bWUgaXMgTm9uZToNCj4gKyAgICAgICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRV Uk5fRkFUQUxfRVJST1INCj4gKw0KPiArICAgICAgICBpZiBsZW4oVHlwZU5hbWUpID49IE1BWF9O QU1FX0xFTjoNCj4gKyAgICAgICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5f SU5WQUxJRF9QQVJBTUVURVINCj4gKw0KPiArICAgICAgICBwVHlwZSA9IHNlbGYuRGF0YVR5cGVM aXN0DQo+ICsgICAgICAgIHdoaWxlIHBUeXBlIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAg aWYgcFR5cGUuVHlwZU5hbWUgPT0gVHlwZU5hbWU6DQo+ICsgICAgICAgICAgICAgICAgcmV0dXJu IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9SRURFRklORUQNCj4gKyAgICAgICAgICAgIHBUeXBl ID0gcFR5cGUuTmV4dA0KPiArDQo+ICsgICAgICAgIHNlbGYuTmV3RGF0YVR5cGUuVHlwZU5hbWUg PSBUeXBlTmFtZQ0KPiArICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NV Q0NFU1MNCj4gKw0KPiArICAgIGRlZiBBbGlnblN0dWZmKHNlbGYsIFNpemUsIEFsaWduKToNCj4g KyAgICAgICAgcmV0dXJuIEFsaWduIC0gKFNpemUpICUgKEFsaWduKQ0KPiArDQo+ICsgICAgZGVm IERlY2xhcmVEYXRhVHlwZUVuZChzZWxmKToNCj4gKyAgICAgICAgaWYgc2VsZi5OZXdEYXRhVHlw ZS5UeXBlTmFtZSA9PSAiIjoNCj4gKyAgICAgICAgICAgIHJldHVybg0KPiArDQo+ICsgICAgICAg IGlmIHNlbGYuTmV3RGF0YVR5cGUuVG90YWxTaXplICUgc2VsZi5OZXdEYXRhVHlwZS5BbGlnbiAh PSAwOg0KPiArICAgICAgICAgICAgc2VsZi5OZXdEYXRhVHlwZS5Ub3RhbFNpemUgKz0NCj4gc2Vs Zi5BbGlnblN0dWZmKHNlbGYuTmV3RGF0YVR5cGUuVG90YWxTaXplLCBzZWxmLk5ld0RhdGFUeXBl LkFsaWduKQ0KPiArICAgICAgICBzZWxmLk5ld0RhdGFUeXBlLk5leHQgPSBzZWxmLkRhdGFUeXBl TGlzdA0KPiArICAgICAgICBzZWxmLkRhdGFUeXBlTGlzdCA9IHNlbGYuTmV3RGF0YVR5cGUNCj4g KyAgICAgICAgaWYgc2VsZi5GaXJzdE5ld0RhdGFUeXBlTmFtZSBpcyBOb25lOg0KPiArICAgICAg ICAgICAgc2VsZi5GaXJzdE5ld0RhdGFUeXBlTmFtZSA9IHNlbGYuTmV3RGF0YVR5cGUuVHlwZU5h bWUNCj4gKw0KPiArICAgICAgICBzZWxmLk5ld0RhdGFUeXBlID0gTm9uZQ0KPiArDQo+ICsgICAg IyB0d28gZGVmaW5pdGlvbnMNCj4gKyAgICBkZWYgR2V0RGF0YVR5cGVTaXplQnlUeXBlTmFtZShz ZWxmLCBUeXBlTmFtZSk6DQo+ICsgICAgICAgIFNpemUgPSAwDQo+ICsgICAgICAgIHBEYXRhVHlw ZSA9IHNlbGYuRGF0YVR5cGVMaXN0DQo+ICsgICAgICAgIHdoaWxlIHBEYXRhVHlwZSBpcyBub3Qg Tm9uZToNCj4gKyAgICAgICAgICAgIGlmIHBEYXRhVHlwZS5UeXBlTmFtZSA9PSBUeXBlTmFtZToN Cj4gKyAgICAgICAgICAgICAgICBTaXplID0gcERhdGFUeXBlLlRvdGFsU2l6ZQ0KPiArICAgICAg ICAgICAgICAgIHJldHVybiBTaXplLCBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0K PiArICAgICAgICAgICAgcERhdGFUeXBlID0gcERhdGFUeXBlLk5leHQNCj4gKw0KPiArICAgICAg ICByZXR1cm4gU2l6ZSwgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1VOREVGSU5FRA0KPiArDQo+ ICsgICAgZGVmIEdldERhdGFUeXBlU2l6ZUJ5RGF0YVR5cGUoc2VsZiwgRGF0YVR5cGUpOg0KPiAr ICAgICAgICBTaXplID0gMA0KPiArICAgICAgICBEYXRhVHlwZSA9IERhdGFUeXBlICYgMHgwRg0K PiArICAgICAgICAjIEZvciB1c2VyIGRlZmluZWQgZGF0YSB0eXBlLCB0aGUgc2l6ZSBjYW4ndCBi ZSBnb3QgYnkgdGhpcyBmdW5jdGlvbi4NCj4gKyAgICAgICAgaWYgRGF0YVR5cGUgPT0gRUZJX0lG Ul9UWVBFX09USEVSOg0KPiArICAgICAgICAgICAgcmV0dXJuIFNpemUsIFZmclJldHVybkNvZGUu VkZSX1JFVFVSTl9TVUNDRVNTDQo+ICsgICAgICAgIHBEYXRhVHlwZSA9IHNlbGYuRGF0YVR5cGVM aXN0DQo+ICsgICAgICAgIHdoaWxlIHBEYXRhVHlwZSBpcyBub3QgTm9uZToNCj4gKyAgICAgICAg ICAgIGlmIERhdGFUeXBlID09IHBEYXRhVHlwZS5UeXBlOg0KPiArICAgICAgICAgICAgICAgIFNp emUgPSBwRGF0YVR5cGUuVG90YWxTaXplDQo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIFNpemUs IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+ICsgICAgICAgICAgICBwRGF0YVR5 cGUgPSBwRGF0YVR5cGUuTmV4dA0KPiArDQo+ICsgICAgICAgIHJldHVybiBTaXplLCBWZnJSZXR1 cm5Db2RlLlZGUl9SRVRVUk5fVU5ERUZJTkVEDQo+ICsNCj4gKyAgICBkZWYgRXh0cmFjdFN0cnVj dFR5cGVOYW1lKHNlbGYsIFZhclN0cik6DQo+ICsgICAgICAgIHRyeToNCj4gKyAgICAgICAgICAg IGluZGV4ID0gVmFyU3RyLmluZGV4KCIuIikNCj4gKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6 DQo+ICsgICAgICAgICAgICByZXR1cm4gVmFyU3RyLCBsZW4oVmFyU3RyKQ0KPiArICAgICAgICBl bHNlOg0KPiArICAgICAgICAgICAgcmV0dXJuIFZhclN0clswOmluZGV4XSwgaW5kZXggKyAxDQo+ ICsNCj4gKyAgICBkZWYgRXh0cmFjdEZpZWxkTmFtZUFuZEFycmFyeShzZWxmLCBWYXJTdHIsIHMp Og0KPiArICAgICAgICBBcnJheUlkeCA9IElOVkFMSURfQVJSQVlfSU5ERVgNCj4gKyAgICAgICAg c19jb3B5ID0gcw0KPiArICAgICAgICB3aGlsZSBzIDwgbGVuKFZhclN0cikgYW5kIFZhclN0cltz XSAhPSAiLiIgYW5kIFZhclN0cltzXSAhPSAiWyIgYW5kDQo+IFZhclN0cltzXSAhPSAiXSI6DQo+ ICsgICAgICAgICAgICBzICs9IDENCj4gKw0KPiArICAgICAgICBGTmFtZSA9IFZhclN0cltzX2Nv cHk6c10NCj4gKw0KPiArICAgICAgICBpZiBzID09IGxlbihWYXJTdHIpOg0KPiArICAgICAgICAg ICAgcmV0dXJuIEFycmF5SWR4LCBzLCBGTmFtZSwgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NV Q0NFU1MNCj4gKw0KPiArICAgICAgICBpZiBWYXJTdHJbc10gPT0gIi4iOg0KPiArICAgICAgICAg ICAgcyArPSAxDQo+ICsgICAgICAgICAgICByZXR1cm4gQXJyYXlJZHgsIHMsIEZOYW1lLCBWZnJS ZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiArDQo+ICsgICAgICAgIGlmIFZhclN0cltz XSA9PSAiWyI6DQo+ICsgICAgICAgICAgICBzICs9IDENCj4gKyAgICAgICAgICAgIHRyeToNCj4g KyAgICAgICAgICAgICAgICBlID0gcyArIFZhclN0cltzOl0uaW5kZXgoIl0iKQ0KPiArDQo+ICsg ICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoNCj4gKyAgICAgICAgICAgICAgICByZXR1cm4g Tm9uZSwgTm9uZSwgTm9uZSwNCj4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0RBVEFfU1RSSU5H X0VSUk9SDQo+ICsgICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgIEFycmF5U3Ry ID0gVmFyU3RyW3M6ZV0NCj4gKyAgICAgICAgICAgICAgICBBcnJheUlkeCA9IGludChBcnJheVN0 cikNCj4gKyAgICAgICAgICAgICAgICBpZiBWYXJTdHJbZV0gPT0gIl0iOg0KPiArICAgICAgICAg ICAgICAgICAgICBlICs9IDENCj4gKyAgICAgICAgICAgICAgICBpZiBlIDwgbGVuKFZhclN0cikg YW5kIChWYXJTdHJbZV0gPT0gIi4iKToNCj4gKyAgICAgICAgICAgICAgICAgICAgZSArPSAxDQo+ ICsgICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5SWR4LCBlLCBGTmFtZSwgVmZyUmV0dXJuQ29k ZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gKw0KPiArICAgICAgICBpZiBWYXJTdHJbc10gPT0gIl0i Og0KPiArICAgICAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUsIE5vbmUsDQo+IFZmclJldHVybkNv ZGUuVkZSX1JFVFVSTl9EQVRBX1NUUklOR19FUlJPUg0KPiArDQo+ICsgICAgICAgIHJldHVybiBB cnJheUlkeCwgcywgRk5hbWUsIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+ICsN Cj4gKyAgICBkZWYgR2V0VHlwZUZpZWxkKHNlbGYsIEZOYW1lLCBUeXBlKToNCj4gKyAgICAgICAg aWYgRk5hbWUgaXMgTm9uZSBvciBUeXBlIGlzIE5vbmU6DQo+ICsgICAgICAgICAgICByZXR1cm4g Tm9uZSwgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0ZBVEFMX0VSUk9SDQo+ICsNCj4gKyAgICAg ICAgcEZpZWxkID0gVHlwZS5NZW1iZXJzDQo+ICsgICAgICAgIHdoaWxlIHBGaWVsZCBpcyBub3Qg Tm9uZToNCj4gKyAgICAgICAgICAgIGlmIFR5cGUuVHlwZSA9PSBFRklfSUZSX1RZUEVfVElNRToN Cj4gKyAgICAgICAgICAgICAgICBpZiBGTmFtZSA9PSAiSG91ciI6DQo+ICsgICAgICAgICAgICAg ICAgICAgIEZOYW1lID0gIkhvdXJzIg0KPiArICAgICAgICAgICAgICAgIGVsaWYgRk5hbWUgPT0g Ik1pbnV0ZSI6DQo+ICsgICAgICAgICAgICAgICAgICAgIEZOYW1lID09ICJNaW51dGVzIg0KPiAr ICAgICAgICAgICAgICAgIGVsaWYgRk5hbWUgPT0gIlNlY29uZCI6DQo+ICsgICAgICAgICAgICAg ICAgICAgIEZOYW1lID0gIlNlY29uZHMiDQo+ICsgICAgICAgICAgICBpZiBwRmllbGQuRmllbGRO YW1lID09IEZOYW1lOg0KPiArICAgICAgICAgICAgICAgIEZpZWxkID0gcEZpZWxkDQo+ICsgICAg ICAgICAgICAgICAgcmV0dXJuIEZpZWxkLCBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VT Uw0KPiArDQo+ICsgICAgICAgICAgICBwRmllbGQgPSBwRmllbGQuTmV4dA0KPiArDQo+ICsgICAg ICAgIHJldHVybiBOb25lLCBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fVU5ERUZJTkVEDQo+ICsN Cj4gKyAgICBkZWYgSXNUaGlzQml0RmllbGQoc2VsZiwgVmFyU3RyTmFtZSk6DQo+ICsgICAgICAg IFROYW1lLCBpID0gc2VsZi5FeHRyYWN0U3RydWN0VHlwZU5hbWUoVmFyU3RyTmFtZSkNCj4gKyAg ICAgICAgcFR5cGUsIFJldHVybkNvZGUgPSBzZWxmLkdldERhdGFUeXBlKFROYW1lKQ0KPiArICAg ICAgICBpZiBSZXR1cm5Db2RlICE9IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTOg0K PiArICAgICAgICAgICAgcmV0dXJuIE5vbmUsIFJldHVybkNvZGUNCj4gKyAgICAgICAgcEZpZWxk ID0gTm9uZQ0KPiArICAgICAgICB3aGlsZSBpIDwgbGVuKFZhclN0ck5hbWUpOg0KPiArICAgICAg ICAgICAgIyBpIHN0YXJ0IGZyb20gZmllbGQNCj4gKyAgICAgICAgICAgIF8sIGksIEZOYW1lLCBS ZXR1cm5Db2RlID0NCj4gc2VsZi5FeHRyYWN0RmllbGROYW1lQW5kQXJyYXJ5KFZhclN0ck5hbWUs IGkpDQo+ICsgICAgICAgICAgICBpZiBSZXR1cm5Db2RlICE9IFZmclJldHVybkNvZGUuVkZSX1JF VFVSTl9TVUNDRVNTOg0KPiArICAgICAgICAgICAgICAgIHJldHVybiBOb25lLCBSZXR1cm5Db2Rl DQo+ICsgICAgICAgICAgICBwRmllbGQsIFJldHVybkNvZGUgPSBzZWxmLkdldFR5cGVGaWVsZChG TmFtZSwgcFR5cGUpDQo+ICsgICAgICAgICAgICBpZiBSZXR1cm5Db2RlICE9IFZmclJldHVybkNv ZGUuVkZSX1JFVFVSTl9TVUNDRVNTOg0KPiArICAgICAgICAgICAgICAgIHJldHVybiBOb25lLCBS ZXR1cm5Db2RlDQo+ICsgICAgICAgICAgICBwVHlwZSA9IHBGaWVsZC5GaWVsZFR5cGUNCj4gKw0K PiArICAgICAgICBpZiBwRmllbGQgaXMgbm90IE5vbmUgYW5kIHBGaWVsZC5Jc0JpdEZpZWxkOg0K PiArICAgICAgICAgICAgcmV0dXJuIFRydWUsIFJldHVybkNvZGUNCj4gKyAgICAgICAgcmV0dXJu IEZhbHNlLCBSZXR1cm5Db2RlDQo+ICsNCj4gKyAgICBkZWYgR2V0RmllbGRPZmZzZXQoc2VsZiwg RmllbGQsIEFycmF5SWR4LCBJc0JpdEZpZWxkKToNCj4gKyAgICAgICAgaWYgRmllbGQgaXMgTm9u ZToNCj4gKyAgICAgICAgICAgIHJldHVybiBOb25lLCBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5f RkFUQUxfRVJST1INCj4gKw0KPiArICAgICAgICBpZiAoQXJyYXlJZHggIT0gSU5WQUxJRF9BUlJB WV9JTkRFWCkgYW5kIChGaWVsZC5BcnJheU51bSA9PSAwIG9yDQo+IEZpZWxkLkFycmF5TnVtIDw9 IEFycmF5SWR4KToNCj4gKyAgICAgICAgICAgIHJldHVybiBOb25lLCBWZnJSZXR1cm5Db2RlLlZG Ul9SRVRVUk5fRVJST1JfQVJSQVJZX05VTQ0KPiArDQo+ICsgICAgICAgIElkeCA9IDAgaWYgQXJy YXlJZHggPT0gSU5WQUxJRF9BUlJBWV9JTkRFWCBlbHNlIEFycmF5SWR4DQo+ICsgICAgICAgIGlm IElzQml0RmllbGQ6DQo+ICsgICAgICAgICAgICBPZmZzZXQgPSBGaWVsZC5CaXRPZmZzZXQgKyBG aWVsZC5GaWVsZFR5cGUuVG90YWxTaXplICogSWR4ICogOA0KPiArICAgICAgICBlbHNlOg0KPiAr ICAgICAgICAgICAgT2Zmc2V0ID0gRmllbGQuT2Zmc2V0ICsgRmllbGQuRmllbGRUeXBlLlRvdGFs U2l6ZSAqIElkeA0KPiArDQo+ICsgICAgICAgIHJldHVybiBPZmZzZXQsIFZmclJldHVybkNvZGUu VkZSX1JFVFVSTl9TVUNDRVNTDQo+ICsNCj4gKyAgICBkZWYgR2V0RmllbGRXaWR0aChzZWxmLCBG aWVsZCk6DQo+ICsgICAgICAgIGlmIEZpZWxkIGlzIE5vbmU6DQo+ICsgICAgICAgICAgICByZXR1 cm4gMA0KPiArICAgICAgICByZXR1cm4gRmllbGQuRmllbGRUeXBlLlR5cGUNCj4gKw0KPiArICAg IGRlZiBHZXRGaWVsZFNpemUoc2VsZiwgRmllbGQsIEFycmF5SWR4LCBCaXRGaWVsZCk6DQo+ICsg ICAgICAgIGlmIEZpZWxkIGlzIE5vbmU6DQo+ICsgICAgICAgICAgICByZXR1cm4gVmZyUmV0dXJu Q29kZS5WRlJfUkVUVVJOX0ZBVEFMX0VSUk9SDQo+ICsNCj4gKyAgICAgICAgaWYgKEFycmF5SWR4 ID09IElOVkFMSURfQVJSQVlfSU5ERVgpIGFuZCAoRmllbGQuQXJyYXlOdW0gIT0gMCk6DQo+ICsg ICAgICAgICAgICByZXR1cm4gRmllbGQuRmllbGRUeXBlLlRvdGFsU2l6ZSAqIEZpZWxkLkFycmF5 TnVtDQo+ICsgICAgICAgIGVsaWYgQml0RmllbGQ6DQo+ICsgICAgICAgICAgICByZXR1cm4gRmll bGQuQml0V2lkdGgNCj4gKyAgICAgICAgcmV0dXJuIEZpZWxkLkZpZWxkVHlwZS5Ub3RhbFNpemUN Cj4gKw0KPiArICAgIGRlZiBHZXREYXRhRmllbGRJbmZvKHNlbGYsIFZhclN0cik6DQo+ICsgICAg ICAgICMgVmFyU3RyIC0+IFR5cGUuRmllbGQNCj4gKyAgICAgICAgT2Zmc2V0ID0gMA0KPiArICAg ICAgICBUeXBlID0gRUZJX0lGUl9UWVBFX09USEVSDQo+ICsgICAgICAgIFNpemUgPSAwDQo+ICsg ICAgICAgIEJpdEZpZWxkID0gRmFsc2UNCj4gKw0KPiArICAgICAgICBUTmFtZSwgaSA9IHNlbGYu RXh0cmFjdFN0cnVjdFR5cGVOYW1lKFZhclN0cikNCj4gKw0KPiArICAgICAgICBwVHlwZSwgUmV0 dXJuQ29kZSA9IHNlbGYuR2V0RGF0YVR5cGUoVE5hbWUpDQo+ICsgICAgICAgIGlmIFJldHVybkNv ZGUgIT0gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1M6DQo+ICsgICAgICAgICAgICBy ZXR1cm4gT2Zmc2V0LCBUeXBlLCBTaXplLCBCaXRGaWVsZCwgUmV0dXJuQ29kZQ0KPiArDQo+ICsg ICAgICAgIEJpdEZpZWxkLCBSZXR1cm5Db2RlID0gc2VsZi5Jc1RoaXNCaXRGaWVsZChWYXJTdHIp DQo+ICsNCj4gKyAgICAgICAgaWYgUmV0dXJuQ29kZSAhPSBWZnJSZXR1cm5Db2RlLlZGUl9SRVRV Uk5fU1VDQ0VTUzoNCj4gKyAgICAgICAgICAgIHJldHVybiBPZmZzZXQsIFR5cGUsIFNpemUsIEJp dEZpZWxkLCBSZXR1cm5Db2RlDQo+ICsNCj4gKyAgICAgICAgIyBpZiBpdCBpcyBub3Qgc3RydWN0 IGRhdGEgdHlwZQ0KPiArICAgICAgICBUeXBlID0gcFR5cGUuVHlwZQ0KPiArICAgICAgICBTaXpl ID0gcFR5cGUuVG90YWxTaXplDQo+ICsNCj4gKyAgICAgICAgd2hpbGUgaSA8IGxlbihWYXJTdHIp Og0KPiArICAgICAgICAgICAgQXJyYXlJZHgsIGksIEZOYW1lLCBSZXR1cm5Db2RlID0NCj4gc2Vs Zi5FeHRyYWN0RmllbGROYW1lQW5kQXJyYXJ5KFZhclN0ciwgaSkNCj4gKyAgICAgICAgICAgIGlm IFJldHVybkNvZGUgIT0gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1M6DQo+ICsgICAg ICAgICAgICAgICAgcmV0dXJuIE9mZnNldCwgVHlwZSwgU2l6ZSwgQml0RmllbGQsIFJldHVybkNv ZGUNCj4gKyAgICAgICAgICAgIHBGaWVsZCwgUmV0dXJuQ29kZSA9IHNlbGYuR2V0VHlwZUZpZWxk KEZOYW1lLCBwVHlwZSkNCj4gKyAgICAgICAgICAgIGlmIFJldHVybkNvZGUgIT0gVmZyUmV0dXJu Q29kZS5WRlJfUkVUVVJOX1NVQ0NFU1M6DQo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIE9mZnNl dCwgVHlwZSwgU2l6ZSwgQml0RmllbGQsIFJldHVybkNvZGUNCj4gKyAgICAgICAgICAgIHBUeXBl ID0gcEZpZWxkLkZpZWxkVHlwZQ0KPiArICAgICAgICAgICAgVG1wLCBSZXR1cm5Db2RlID0gc2Vs Zi5HZXRGaWVsZE9mZnNldChwRmllbGQsIEFycmF5SWR4LA0KPiBwRmllbGQuSXNCaXRGaWVsZCkN Cj4gKyAgICAgICAgICAgIGlmIFJldHVybkNvZGUgIT0gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJO X1NVQ0NFU1M6DQo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIE9mZnNldCwgVHlwZSwgU2l6ZSwg Qml0RmllbGQsIFJldHVybkNvZGUNCj4gKw0KPiArICAgICAgICAgICAgaWYgQml0RmllbGQgYW5k IHBGaWVsZC5Jc0JpdEZpZWxkIGlzIEZhbHNlOg0KPiArICAgICAgICAgICAgICAgIE9mZnNldCA9 IGludChPZmZzZXQgKyBUbXAgKiA4KQ0KPiArICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAg ICAgICAgICBPZmZzZXQgPSBpbnQoT2Zmc2V0ICsgVG1wKQ0KPiArDQo+ICsgICAgICAgICAgICBU eXBlID0gc2VsZi5HZXRGaWVsZFdpZHRoKHBGaWVsZCkNCj4gKyAgICAgICAgICAgIFNpemUgPSBz ZWxmLkdldEZpZWxkU2l6ZShwRmllbGQsIEFycmF5SWR4LCBCaXRGaWVsZCkNCj4gKw0KPiArICAg ICAgICByZXR1cm4gT2Zmc2V0LCBUeXBlLCBTaXplLCBCaXRGaWVsZCwgVmZyUmV0dXJuQ29kZS5W RlJfUkVUVVJOX1NVQ0NFU1MNCj4gKw0KPiArDQo+ICsgICAgZGVmIERhdGFUeXBlQWRkRmllbGQo c2VsZiwgRmllbGROYW1lLCBUeXBlTmFtZSwgQXJyYXlOdW0sDQo+IEZpZWxkSW5Vbmlvbik6DQo+ ICsgICAgICAgIHBGaWVsZFR5cGUsIFJldHVybkNvZGUgPSBzZWxmLkdldERhdGFUeXBlKFR5cGVO YW1lKQ0KPiArDQo+ICsgICAgICAgIGlmIFJldHVybkNvZGUgIT0gVmZyUmV0dXJuQ29kZS5WRlJf UkVUVVJOX1NVQ0NFU1M6DQo+ICsgICAgICAgICAgICByZXR1cm4gUmV0dXJuQ29kZQ0KPiArDQo+ ICsgICAgICAgIE1heERhdGFUeXBlU2l6ZSA9IHNlbGYuTmV3RGF0YVR5cGUuVG90YWxTaXplDQo+ ICsNCj4gKyAgICAgICAgaWYgbGVuKEZpZWxkTmFtZSkgPj0gTUFYX05BTUVfTEVOOg0KPiArICAg ICAgICAgICAgcmV0dXJuIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRF Ug0KPiArDQo+ICsgICAgICAgIHBUbXAgPSBzZWxmLk5ld0RhdGFUeXBlLk1lbWJlcnMNCj4gKyAg ICAgICAgd2hpbGUgcFRtcCBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgIGlmIHBUbXAuRmll bGROYW1lID09IEZpZWxkTmFtZToNCj4gKyAgICAgICAgICAgICAgICByZXR1cm4gVmZyUmV0dXJu Q29kZS5WRlJfUkVUVVJOX1JFREVGSU5FRA0KPiArICAgICAgICAgICAgcFRtcCA9IHBUbXAuTmV4 dA0KPiArDQo+ICsgICAgICAgIEFsaWduID0gbWluKHNlbGYuUGFja0FsaWduLCBwRmllbGRUeXBl LkFsaWduKQ0KPiArICAgICAgICBwTmV3RmllbGQgPSBTVmZyRGF0YUZpZWxkKCkNCj4gKyAgICAg ICAgaWYgcE5ld0ZpZWxkIGlzIE5vbmU6DQo+ICsgICAgICAgICAgICByZXR1cm4gVmZyUmV0dXJu Q29kZS5WRlJfUkVUVVJOX09VVF9GT1JfUkVTT1VSQ0VTDQo+ICsgICAgICAgIHBOZXdGaWVsZC5G aWVsZE5hbWUgPSBGaWVsZE5hbWUNCj4gKyAgICAgICAgcE5ld0ZpZWxkLkZpZWxkVHlwZSA9IHBG aWVsZFR5cGUNCj4gKyAgICAgICAgcE5ld0ZpZWxkLkFycmF5TnVtID0gQXJyYXlOdW0NCj4gKyAg ICAgICAgcE5ld0ZpZWxkLklzQml0RmllbGQgPSBGYWxzZQ0KPiArDQo+ICsgICAgICAgIGlmIHNl bGYuTmV3RGF0YVR5cGUuVG90YWxTaXplICUgQWxpZ24gPT0gMDoNCj4gKyAgICAgICAgICAgIHBO ZXdGaWVsZC5PZmZzZXQgPSBzZWxmLk5ld0RhdGFUeXBlLlRvdGFsU2l6ZQ0KPiArICAgICAgICBl bHNlOg0KPiArICAgICAgICAgICAgcE5ld0ZpZWxkLk9mZnNldCA9IHNlbGYuTmV3RGF0YVR5cGUu VG90YWxTaXplICsNCj4gc2VsZi5BbGlnblN0dWZmKHNlbGYuTmV3RGF0YVR5cGUuVG90YWxTaXpl LCBBbGlnbikNCj4gKw0KPiArICAgICAgICBpZiBzZWxmLk5ld0RhdGFUeXBlLk1lbWJlcnMgaXMg Tm9uZToNCj4gKyAgICAgICAgICAgIHNlbGYuTmV3RGF0YVR5cGUuTWVtYmVycyA9IHBOZXdGaWVs ZA0KPiArICAgICAgICAgICAgcE5ld0ZpZWxkLk5leHQgPSBOb25lDQo+ICsgICAgICAgIGVsc2U6 DQo+ICsgICAgICAgICAgICBwVG1wID0gc2VsZi5OZXdEYXRhVHlwZS5NZW1iZXJzDQo+ICsgICAg ICAgICAgICB3aGlsZSBwVG1wLk5leHQgaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICAgICAg cFRtcCA9IHBUbXAuTmV4dA0KPiArICAgICAgICAgICAgcFRtcC5OZXh0ID0gcE5ld0ZpZWxkDQo+ ICsgICAgICAgICAgICBwTmV3RmllbGQuTmV4dCA9IE5vbmUNCj4gKw0KPiArICAgICAgICBzZWxm Lk5ld0RhdGFUeXBlLkFsaWduID0gbWluKHNlbGYuUGFja0FsaWduLCBtYXgocEZpZWxkVHlwZS5B bGlnbiwNCj4gc2VsZi5OZXdEYXRhVHlwZS5BbGlnbikpDQo+ICsNCj4gKyAgICAgICAgaWYgRmll bGRJblVuaW9uOg0KPiArICAgICAgICAgICAgaWYgTWF4RGF0YVR5cGVTaXplIDwgcE5ld0ZpZWxk LkZpZWxkVHlwZS5Ub3RhbFNpemU6DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5OZXdEYXRhVHlw ZS5Ub3RhbFNpemUgPSBwTmV3RmllbGQuRmllbGRUeXBlLlRvdGFsU2l6ZQ0KPiArICAgICAgICAg ICAgcE5ld0ZpZWxkLk9mZnNldCA9IDANCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAg IE51bSA9IEFycmF5TnVtIGlmIEFycmF5TnVtICE9IDAgZWxzZSAxDQo+ICsgICAgICAgICAgICBz ZWxmLk5ld0RhdGFUeXBlLlRvdGFsU2l6ZSA9IHBOZXdGaWVsZC5PZmZzZXQgKw0KPiAocE5ld0Zp ZWxkLkZpZWxkVHlwZS5Ub3RhbFNpemUpICogTnVtDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIFZm clJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+ICsNCj4gKyAgICBkZWYgRGF0YVR5cGVB ZGRCaXRGaWVsZChzZWxmLCBGaWVsZE5hbWUsIFR5cGVOYW1lLCBXaWR0aCwNCj4gRmllbGRJblVu aW9uKToNCj4gKyAgICAgICAgcEZpZWxkVHlwZSwgUmV0dXJuQ29kZSA9IHNlbGYuR2V0RGF0YVR5 cGUoVHlwZU5hbWUpDQo+ICsgICAgICAgIGlmIFJldHVybkNvZGUgIT0gVmZyUmV0dXJuQ29kZS5W RlJfUkVUVVJOX1NVQ0NFU1M6DQo+ICsgICAgICAgICAgICByZXR1cm4gUmV0dXJuQ29kZQ0KPiAr DQo+ICsgICAgICAgIGlmIFdpZHRoID4gTUFYX0JJVF9XSURUSDoNCj4gKyAgICAgICAgICAgIHJl dHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fQklUX1dJRFRIX0VSUk9SDQo+ICsNCj4gKyAg ICAgICAgaWYgV2lkdGggPiAocEZpZWxkVHlwZS5Ub3RhbFNpemUpICogODoNCj4gKyAgICAgICAg ICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fQklUX1dJRFRIX0VSUk9SDQo+ICsN Cj4gKyAgICAgICAgaWYgKEZpZWxkTmFtZSBpcyBub3QgTm9uZSkgYW5kIChsZW4oRmllbGROYW1l KSA+PSBNQVhfTkFNRV9MRU4pOg0KPiArICAgICAgICAgICAgcmV0dXJuIFZmclJldHVybkNvZGUu VkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUg0KPiArDQo+ICsgICAgICAgIGlmIFdpZHRoID09 IDAgYW5kIEZpZWxkTmFtZSBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgIHJldHVybiBWZnJS ZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVINCj4gKw0KPiArICAgICAgICBw VG1wID0gc2VsZi5OZXdEYXRhVHlwZS5NZW1iZXJzDQo+ICsgICAgICAgIHdoaWxlIHBUbXAgaXMg bm90IE5vbmU6DQo+ICsgICAgICAgICAgICBpZiBGaWVsZE5hbWUgaXMgbm90IE5vbmUgYW5kIHBU bXAuRmllbGROYW1lID09IEZpZWxkTmFtZToNCj4gKyAgICAgICAgICAgICAgICByZXR1cm4gVmZy UmV0dXJuQ29kZS5WRlJfUkVUVVJOX1JFREVGSU5FRA0KPiArICAgICAgICAgICAgcFRtcCA9IHBU bXAuTmV4dA0KPiArDQo+ICsgICAgICAgIEFsaWduID0gbWluKHNlbGYuUGFja0FsaWduLCBwRmll bGRUeXBlLkFsaWduKQ0KPiArICAgICAgICBVcGRhdGVUb3RhbFNpemUgPSBGYWxzZQ0KPiArDQo+ ICsgICAgICAgIHBOZXdGaWVsZCA9IFNWZnJEYXRhRmllbGQoKQ0KPiArICAgICAgICBpZiBwTmV3 RmllbGQgaXMgTm9uZToNCj4gKyAgICAgICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9S RVRVUk5fT1VUX0ZPUl9SRVNPVVJDRVMNCj4gKw0KPiArICAgICAgICBNYXhEYXRhVHlwZVNpemUg PSBzZWxmLk5ld0RhdGFUeXBlLlRvdGFsU2l6ZQ0KPiArDQo+ICsgICAgICAgIHBOZXdGaWVsZC5G aWVsZE5hbWUgPSBGaWVsZE5hbWUNCj4gKyAgICAgICAgcE5ld0ZpZWxkLkZpZWxkVHlwZSA9IHBG aWVsZFR5cGUNCj4gKyAgICAgICAgcE5ld0ZpZWxkLklzQml0RmllbGQgPSBUcnVlDQo+ICsgICAg ICAgIHBOZXdGaWVsZC5CaXRXaWR0aCA9IFdpZHRoDQo+ICsgICAgICAgIHBOZXdGaWVsZC5BcnJh eU51bSA9IDANCj4gKyAgICAgICAgcE5ld0ZpZWxkLkJpdE9mZnNldCA9IDANCj4gKyAgICAgICAg cE5ld0ZpZWxkLk9mZnNldCA9IDANCj4gKw0KPiArICAgICAgICBpZiBzZWxmLk5ld0RhdGFUeXBl Lk1lbWJlcnMgaXMgTm9uZToNCj4gKyAgICAgICAgICAgIHNlbGYuTmV3RGF0YVR5cGUuTWVtYmVy cyA9IHBOZXdGaWVsZA0KPiArICAgICAgICAgICAgcE5ld0ZpZWxkLk5leHQgPSBOb25lDQo+ICsg ICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICBwVG1wID0gc2VsZi5OZXdEYXRhVHlwZS5NZW1i ZXJzDQo+ICsgICAgICAgICAgICB3aGlsZSBwVG1wLk5leHQgaXMgbm90IE5vbmU6DQo+ICsgICAg ICAgICAgICAgICAgcFRtcCA9IHBUbXAuTmV4dA0KPiArICAgICAgICAgICAgcFRtcC5OZXh0ID0g cE5ld0ZpZWxkDQo+ICsgICAgICAgICAgICBwTmV3RmllbGQuTmV4dCA9IE5vbmUNCj4gKw0KPiAr ICAgICAgICBpZiBGaWVsZEluVW5pb246DQo+ICsgICAgICAgICAgICBwTmV3RmllbGQuT2Zmc2V0 ID0gMA0KPiArICAgICAgICAgICAgaWYgTWF4RGF0YVR5cGVTaXplIDwgcE5ld0ZpZWxkLkZpZWxk VHlwZS5Ub3RhbFNpemU6DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5OZXdEYXRhVHlwZS5Ub3Rh bFNpemUgPSBwTmV3RmllbGQuRmllbGRUeXBlLlRvdGFsU2l6ZQ0KPiArICAgICAgICBlbHNlOg0K PiArICAgICAgICAgICAgIyBDaGVjayB3aGV0aGVyIHRoZSBiaXQgZmllbGRzIGNhbiBiZSBjb250 YWluZWQgd2l0aGluIG9uZSBGaWVsZFR5cGUuDQo+ICsgICAgICAgICAgICBjb25kMSA9IChwVG1w IGlzIG5vdCBOb25lKSBhbmQgKHBUbXAuSXNCaXRGaWVsZCkgYW5kDQo+IChwVG1wLkZpZWxkVHlw ZS5UeXBlTmFtZSA9PSBwTmV3RmllbGQuRmllbGRUeXBlLlR5cGVOYW1lKQ0KPiArICAgICAgICAg ICAgY29uZDIgPSAocFRtcCBpcyBub3QgTm9uZSkgYW5kIChwVG1wLkJpdE9mZnNldCAtIHBUbXAu T2Zmc2V0ICogOCArDQo+IHBUbXAuQml0V2lkdGggKyBwTmV3RmllbGQuQml0V2lkdGggPD0gcE5l d0ZpZWxkLkZpZWxkVHlwZS5Ub3RhbFNpemUgKiA4KQ0KPiArICAgICAgICAgICAgaWYgY29uZDEg YW5kIGNvbmQyOg0KPiArICAgICAgICAgICAgICAgIHBOZXdGaWVsZC5CaXRPZmZzZXQgPSBwVG1w LkJpdE9mZnNldCArIHBUbXAuQml0V2lkdGgNCj4gKyAgICAgICAgICAgICAgICBwTmV3RmllbGQu T2Zmc2V0ID0gcFRtcC5PZmZzZXQNCj4gKw0KPiArICAgICAgICAgICAgICAgIGlmIHBOZXdGaWVs ZC5CaXRXaWR0aCA9PSAwOg0KPiArICAgICAgICAgICAgICAgICAgICBwTmV3RmllbGQuQml0V2lk dGggPSBwTmV3RmllbGQuRmllbGRUeXBlLlRvdGFsU2l6ZSAqIDggLQ0KPiAocE5ld0ZpZWxkLkJp dE9mZnNldCAtIHBUbXAuT2Zmc2V0ICogOCkNCj4gKyAgICAgICAgICAgIGVsc2U6DQo+ICsgICAg ICAgICAgICAgICAgcE5ld0ZpZWxkLkJpdE9mZnNldCA9IHNlbGYuTmV3RGF0YVR5cGUuVG90YWxT aXplICogOA0KPiArICAgICAgICAgICAgICAgIFVwZGF0ZVRvdGFsU2l6ZSA9IFRydWUNCj4gKw0K PiArICAgICAgICBpZiBVcGRhdGVUb3RhbFNpemU6DQo+ICsgICAgICAgICAgICBpZiBzZWxmLk5l d0RhdGFUeXBlLlRvdGFsU2l6ZSAlIEFsaWduID09IDA6DQo+ICsgICAgICAgICAgICAgICAgcE5l d0ZpZWxkLk9mZnNldCA9IHNlbGYuTmV3RGF0YVR5cGUuVG90YWxTaXplDQo+ICsgICAgICAgICAg ICBlbHNlOg0KPiArICAgICAgICAgICAgICAgIHBOZXdGaWVsZC5PZmZzZXQgPSBzZWxmLk5ld0Rh dGFUeXBlLlRvdGFsU2l6ZSArDQo+IHNlbGYuQWxpZ25TdHVmZihzZWxmLk5ld0RhdGFUeXBlLlRv dGFsU2l6ZSwgQWxpZ24pDQo+ICsgICAgICAgICAgICBzZWxmLk5ld0RhdGFUeXBlLlRvdGFsU2l6 ZSA9IHBOZXdGaWVsZC5PZmZzZXQgKw0KPiBwTmV3RmllbGQuRmllbGRUeXBlLlRvdGFsU2l6ZQ0K PiArDQo+ICsgICAgICAgIHNlbGYuTmV3RGF0YVR5cGUuQWxpZ24gPSBtaW4oc2VsZi5QYWNrQWxp Z24sIG1heChwRmllbGRUeXBlLkFsaWduLA0KPiBzZWxmLk5ld0RhdGFUeXBlLkFsaWduKSkNCj4g KyAgICAgICAgc2VsZi5OZXdEYXRhVHlwZS5IYXNCaXRGaWVsZCA9IFRydWUNCj4gKyAgICAgICAg cmV0dXJuIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+ICsNCj4gKyAgICBkZWYg R2V0RGF0YVR5cGUoc2VsZiwgVHlwZU5hbWUpOg0KPiArICAgICAgICBpZiBUeXBlTmFtZSBpcyBO b25lOg0KPiArICAgICAgICAgICAgcmV0dXJuIE5vbmUsIFZmclJldHVybkNvZGUuVkZSX1JFVFVS Tl9FUlJPUl9TS0lQRUQNCj4gKw0KPiArICAgICAgICBEYXRhVHlwZSA9IHNlbGYuRGF0YVR5cGVM aXN0DQo+ICsgICAgICAgIHdoaWxlIERhdGFUeXBlIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAg ICAgaWYgRGF0YVR5cGUuVHlwZU5hbWUgPT0gVHlwZU5hbWU6DQo+ICsgICAgICAgICAgICAgICAg cmV0dXJuIERhdGFUeXBlLCBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiArICAg ICAgICAgICAgRGF0YVR5cGUgPSBEYXRhVHlwZS5OZXh0DQo+ICsgICAgICAgIHJldHVybiBOb25l LCBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fVU5ERUZJTkVEDQo+ICsNCj4gKyAgICBkZWYgRGF0 YVR5cGVIYXNCaXRGaWVsZChzZWxmLCBUeXBlTmFtZSk6DQo+ICsgICAgICAgIGlmIFR5cGVOYW1l IGlzIE5vbmU6DQo+ICsgICAgICAgICAgICByZXR1cm4gRmFsc2UNCj4gKw0KPiArICAgICAgICBw VHlwZSA9IHNlbGYuRGF0YVR5cGVMaXN0DQo+ICsgICAgICAgIHdoaWxlIHBUeXBlIGlzIG5vdCBO b25lOg0KPiArICAgICAgICAgICAgaWYgcFR5cGUuVHlwZU5hbWUgPT0gVHlwZU5hbWU6DQo+ICsg ICAgICAgICAgICAgICAgYnJlYWsNCj4gKyAgICAgICAgICAgIHBUeXBlID0gcFR5cGUuTmV4dA0K PiArDQo+ICsgICAgICAgIGlmIHBUeXBlIGlzIE5vbmU6DQo+ICsgICAgICAgICAgICByZXR1cm4g RmFsc2UNCj4gKw0KPiArICAgICAgICBwVG1wID0gcFR5cGUuTWVtYmVycw0KPiArICAgICAgICB3 aGlsZSBwVG1wIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgaWYgcFRtcC5Jc0JpdEZpZWxk Og0KPiArICAgICAgICAgICAgICAgIHJldHVybiBUcnVlDQo+ICsgICAgICAgICAgICBwVG1wID0g cFRtcC5OZXh0DQo+ICsgICAgICAgIHJldHVybiBGYWxzZQ0KPiArDQo+ICsgICAgZGVmIER1bXAo c2VsZiwgZik6DQo+ICsgICAgICAgIGYud3JpdGUoIlxuXG4qKioqKioqKioqKioqXG4iKQ0KPiAr ICAgICAgICBmLndyaXRlKCJcdFx0UGFja0FsaWduID0gIiArIHN0cihzZWxmLlBhY2tBbGlnbikg KyAiXG4iKQ0KPiArICAgICAgICBwTm9kZSA9IHNlbGYuRGF0YVR5cGVMaXN0DQo+ICsgICAgICAg IHdoaWxlIHBOb2RlIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgZi53cml0ZSgiXHRcdHN0 cnVjdCB7fSA6IEFsaWduIDogW3t9XSAgVG90YWxTaXplIDoNCj4gW3s6I3h9XVxuXG4iLmZvcm1h dChwTm9kZS5UeXBlTmFtZSwgcE5vZGUuQWxpZ24sIHBOb2RlLlRvdGFsU2l6ZSkpDQo+ICsgICAg ICAgICAgICBmLndyaXRlKCJcdFx0c3RydWN0IHt9Ii5mb3JtYXQoc3RyKHBOb2RlLlR5cGVOYW1l KSkgKyAiXHR7XG4iKQ0KPiArICAgICAgICAgICAgRk5vZGUgPSBwTm9kZS5NZW1iZXJzDQo+ICsg ICAgICAgICAgICB3aGlsZSBGTm9kZSBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgICAgICBp ZiBGTm9kZS5BcnJheU51bSA+IDA6DQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoIlx0 XHRcdCt7OjA+OGR9W3s6MD44eH1dIHt9W3t9XSA8e30+XG4iLmZvcm1hdChGTm9kZS5PZmZzZXQs DQo+IEZOb2RlLk9mZnNldCwgRk5vZGUuRmllbGROYW1lLCBGTm9kZS5BcnJheU51bSwNCj4gRk5v ZGUuRmllbGRUeXBlLlR5cGVOYW1lKSkNCj4gKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgi XHRcdFx0K3s6MD44ZH1bezowPjh4fV0ge31be31dIDx7fT5cbiIuZm9ybWF0KEZOb2RlLk9mZnNl dCwNCj4gRk5vZGUuQml0T2Zmc2V0LCBGTm9kZS5GaWVsZE5hbWUsIEZOb2RlLkFycmF5TnVtLA0K PiBGTm9kZS5GaWVsZFR5cGUuVHlwZU5hbWUpKQ0KPiArICAgICAgICAgICAgICAgIGVsaWYgRk5v ZGUuRmllbGROYW1lIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgICAgICAgICBmLndyaXRl KCJcdFx0XHQrezowPjhkfVt7OjA+OHh9XSB7fSA8e30+XG4iLmZvcm1hdChGTm9kZS5PZmZzZXQs DQo+IEZOb2RlLk9mZnNldCwgRk5vZGUuRmllbGROYW1lLCBGTm9kZS5GaWVsZFR5cGUuVHlwZU5h bWUpKQ0KPiArICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCJcdFx0XHQrezowPjhkfVt7OjA+ OHh9XSB7fSA8e30+XG4iLmZvcm1hdChGTm9kZS5PZmZzZXQsDQo+IEZOb2RlLkJpdE9mZnNldCwg Rk5vZGUuRmllbGROYW1lLCBGTm9kZS5GaWVsZFR5cGUuVHlwZU5hbWUpKQ0KPiArICAgICAgICAg ICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoIlx0XHRcdCt7OjA+ OGR9W3s6MD44eH1dIDx7fT5cbiIuZm9ybWF0KEZOb2RlLk9mZnNldCwNCj4gRk5vZGUuT2Zmc2V0 LCBGTm9kZS5GaWVsZFR5cGUuVHlwZU5hbWUpKQ0KPiArICAgICAgICAgICAgICAgICAgICBmLndy aXRlKCJcdFx0XHQrezowPjhkfVt7OjA+OHh9XSA8e30+XG4iLmZvcm1hdChGTm9kZS5PZmZzZXQs DQo+IEZOb2RlLkJpdE9mZnNldCwgRk5vZGUuRmllbGRUeXBlLlR5cGVOYW1lKSkNCj4gKyAgICAg ICAgICAgICAgICBGTm9kZSA9IEZOb2RlLk5leHQNCj4gKyAgICAgICAgICAgIGYud3JpdGUoIlx0 XHR9O1xuIikNCj4gKyAgICAgICAgICAgIGYud3JpdGUoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIikNCj4gKyAgICAgICAg ICAgIHBOb2RlID0gcE5vZGUuTmV4dA0KPiArDQo+IGYud3JpdGUoIioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPiAqKioqKipcbiIpDQo+ ICsNCj4gKw0KPiArY2xhc3MgU1ZmckRlZmF1bHRTdG9yZU5vZGU6DQo+ICsgICAgZGVmIF9faW5p dF9fKHNlbGYsIE9iakFkZHI9Tm9uZSwgUmVmTmFtZT0iIiwgRGVmYXVsdFN0b3JlTmFtZUlkPTAs DQo+IERlZmF1bHRJZD0wKToNCj4gKyAgICAgICAgc2VsZi5PYmpBZGRyID0gT2JqQWRkcg0KPiAr ICAgICAgICBzZWxmLlJlZk5hbWUgPSBSZWZOYW1lDQo+ICsgICAgICAgIHNlbGYuRGVmYXVsdFN0 b3JlTmFtZUlkID0gRGVmYXVsdFN0b3JlTmFtZUlkDQo+ICsgICAgICAgIHNlbGYuRGVmYXVsdElk ID0gRGVmYXVsdElkDQo+ICsgICAgICAgIHNlbGYuTmV4dCA9IE5vbmUNCj4gKw0KPiArDQo+ICtj bGFzcyBWZnJEZWZhdWx0U3RvcmU6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYpOg0KPiArICAg ICAgICBzZWxmLkRlZmF1bHRTdG9yZUxpc3QgPSBOb25lDQo+ICsNCj4gKyAgICBkZWYgQ2xlYXIo c2VsZik6DQo+ICsgICAgICAgIHNlbGYuRGVmYXVsdFN0b3JlTGlzdCA9IE5vbmUNCj4gKw0KPiAr ICAgIGRlZiBSZWdpc3RlckRlZmF1bHRTdG9yZShzZWxmLCBPYmpBZGRyOiBFRklfSUZSX0RFRkFV TFRTVE9SRSwgUmVmTmFtZSwNCj4gRGVmYXVsdFN0b3JlTmFtZUlkLCBEZWZhdWx0SWQpOg0KPiAr ICAgICAgICBpZiBSZWZOYW1lID09ICIiIG9yIFJlZk5hbWUgaXMgTm9uZToNCj4gKyAgICAgICAg ICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fRkFUQUxfRVJST1INCj4gKw0KPiAr ICAgICAgICBwTm9kZSA9IHNlbGYuRGVmYXVsdFN0b3JlTGlzdA0KPiArICAgICAgICB3aGlsZSBw Tm9kZSBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgIGlmIHBOb2RlLlJlZk5hbWUgPT0gUmVm TmFtZToNCj4gKyAgICAgICAgICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJO X1JFREVGSU5FRA0KPiArICAgICAgICAgICAgcE5vZGUgPSBwTm9kZS5OZXh0DQo+ICsNCj4gKyAg ICAgICAgcE5vZGUgPSBTVmZyRGVmYXVsdFN0b3JlTm9kZShPYmpBZGRyLCBSZWZOYW1lLA0KPiBE ZWZhdWx0U3RvcmVOYW1lSWQsIERlZmF1bHRJZCkNCj4gKw0KPiArICAgICAgICBpZiBwTm9kZSBp cyBOb25lOg0KPiArICAgICAgICAgICAgcmV0dXJuIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9P VVRfRk9SX1JFU09VUkNFUw0KPiArDQo+ICsgICAgICAgIHBOb2RlLk5leHQgPSBzZWxmLkRlZmF1 bHRTdG9yZUxpc3QNCj4gKyAgICAgICAgc2VsZi5EZWZhdWx0U3RvcmVMaXN0ID0gcE5vZGUNCj4g Kw0KPiArICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4g Kw0KPiArICAgIGRlZiBVcGRhdGVEZWZhdWx0VHlwZShzZWxmLCBEZWZhdWx0Tm9kZSk6DQo+ICsg ICAgICAgIHBOb2RlID0gc2VsZi5EZWZhdWx0U3RvcmVMaXN0DQo+ICsgICAgICAgIHdoaWxlIHBO b2RlIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgaWYgcE5vZGUuT2JqQWRkci5EZWZhdWx0 SWQgPT0gRGVmYXVsdE5vZGUuRGF0YS5HZXREZWZhdWx0SWQoKToNCj4gKyAgICAgICAgICAgICAg ICBEZWZhdWx0Tm9kZS5EYXRhLlNldFR5cGUocE5vZGUuUmVmTmFtZSkNCj4gKyAgICAgICAgICAg IHBOb2RlID0gcE5vZGUuTmV4dA0KPiArDQo+ICsgICAgZGVmIERlZmF1bHRJZFJlZ2lzdGVyZWQo c2VsZiwgRGVmYXVsdElkKToNCj4gKyAgICAgICAgcE5vZGUgPSBzZWxmLkRlZmF1bHRTdG9yZUxp c3QNCj4gKyAgICAgICAgd2hpbGUgcE5vZGUgaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICBp ZiBwTm9kZS5EZWZhdWx0SWQgPT0gRGVmYXVsdElkOg0KPiArICAgICAgICAgICAgICAgIHJldHVy biBUcnVlDQo+ICsgICAgICAgICAgICBwTm9kZSA9IHBOb2RlLk5leHQNCj4gKw0KPiArICAgICAg ICByZXR1cm4gRmFsc2UNCj4gKw0KPiArICAgIGRlZiBSZVJlZ2lzdGVyRGVmYXVsdFN0b3JlQnlJ ZChzZWxmLCBEZWZhdWx0SWQsIFJlZk5hbWUsDQo+IERlZmF1bHRTdG9yZU5hbWVJZCk6DQo+ICsg ICAgICAgIHBOb2RlID0gc2VsZi5EZWZhdWx0U3RvcmVMaXN0DQo+ICsgICAgICAgIHdoaWxlIHBO b2RlIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgaWYgcE5vZGUuRGVmYXVsdElkID09IERl ZmF1bHRJZDoNCj4gKyAgICAgICAgICAgICAgICBicmVhaw0KPiArICAgICAgICAgICAgcE5vZGUg PSBwTm9kZS5OZXh0DQo+ICsNCj4gKyAgICAgICAgaWYgcE5vZGUgaXMgTm9uZToNCj4gKyAgICAg ICAgICAgIHJldHVybiBOb25lLCBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fVU5ERUZJTkVEDQo+ ICsNCj4gKyAgICAgICAgaWYgcE5vZGUuRGVmYXVsdFN0b3JlTmFtZUlkID09IEVGSV9TVFJJTkdf SURfSU5WQUxJRDoNCj4gKyAgICAgICAgICAgIHBOb2RlLkRlZmF1bHRTdG9yZU5hbWVJZCA9IERl ZmF1bHRTdG9yZU5hbWVJZA0KPiArICAgICAgICAgICAgcE5vZGUuUmVmTmFtZSA9IFJlZk5hbWUN Cj4gKyAgICAgICAgICAgIGlmIHBOb2RlLk9iakFkZHIgaXMgbm90IE5vbmU6DQo+ICsgICAgICAg ICAgICAgICAgcE5vZGUuT2JqQWRkci5EZWZhdWx0TmFtZSA9IERlZmF1bHRTdG9yZU5hbWVJZA0K PiArICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgcmV0dXJuIE5vbmUsIFZmclJldHVybkNv ZGUuVkZSX1JFVFVSTl9SRURFRklORUQNCj4gKw0KPiArICAgICAgICByZXR1cm4gcE5vZGUsIFZm clJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+ICsNCj4gKyAgICBkZWYgR2V0RGVmYXVs dElkKHNlbGYsIFJlZk5hbWUpOg0KPiArICAgICAgICBwVG1wID0gc2VsZi5EZWZhdWx0U3RvcmVM aXN0DQo+ICsgICAgICAgIHdoaWxlIHBUbXAgaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICBp ZiBwVG1wLlJlZk5hbWUgPT0gUmVmTmFtZToNCj4gKyAgICAgICAgICAgICAgICBEZWZhdWx0SWQg PSBwVG1wLkRlZmF1bHRJZA0KPiArICAgICAgICAgICAgICAgIHJldHVybiBEZWZhdWx0SWQsIFZm clJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+ICsgICAgICAgICAgICBwVG1wID0gcFRt cC5OZXh0DQo+ICsgICAgICAgIHJldHVybiBOb25lLCBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5f VU5ERUZJTkVEDQo+ICsNCj4gKyAgICBkZWYgQnVmZmVyVmFyU3RvcmVBbHRDb25maWdBZGQoc2Vs ZiwgRGVmYXVsdElkLCBCYXNlSW5mbywgVmFyU3RvcmVOYW1lLA0KPiBWYXJTdG9yZUd1aWQsIFR5 cGUsIFZhbHVlKToNCj4gKyAgICAgICAgaWYgVmFyU3RvcmVOYW1lIGlzIE5vbmU6DQo+ICsgICAg ICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0ZBVEFMX0VSUk9SDQo+ICsg ICAgICAgIHBOb2RlID0gc2VsZi5EZWZhdWx0U3RvcmVMaXN0DQo+ICsgICAgICAgIHdoaWxlIHBO b2RlIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgaWYgcE5vZGUuRGVmYXVsdElkID09IERl ZmF1bHRJZDoNCj4gKyAgICAgICAgICAgICAgICBicmVhaw0KPiArICAgICAgICAgICAgcE5vZGUg PSBwTm9kZS5OZXh0DQo+ICsgICAgICAgIGlmIHBOb2RlIGlzIE5vbmU6DQo+ICsgICAgICAgICAg ICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1VOREVGSU5FRA0KPiArICAgICAgICBn VmZyQnVmZmVyQ29uZmlnLk9wZW4oKQ0KPiArICAgICAgICBpZiBnVmZyQnVmZmVyQ29uZmlnLlNl bGVjdChWYXJTdG9yZU5hbWUsIFZhclN0b3JlR3VpZCkgPT0gMDoNCj4gKyAgICAgICAgICAgIFJl dHVybnZhbHVlID0gZ1ZmckJ1ZmZlckNvbmZpZy5Xcml0ZSgNCj4gKyAgICAgICAgICAgICAgICAi YSIsDQo+ICsgICAgICAgICAgICAgICAgVmFyU3RvcmVOYW1lLA0KPiArICAgICAgICAgICAgICAg IFZhclN0b3JlR3VpZCwNCj4gKyAgICAgICAgICAgICAgICBwTm9kZS5EZWZhdWx0SWQsDQo+ICsg ICAgICAgICAgICAgICAgVHlwZSwNCj4gKyAgICAgICAgICAgICAgICBCYXNlSW5mby5JbmZvLlZh ck9mZnNldCwNCj4gKyAgICAgICAgICAgICAgICBCYXNlSW5mby5WYXJUb3RhbFNpemUsDQo+ICsg ICAgICAgICAgICAgICAgVmFsdWUsDQo+ICsgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICBp ZiBSZXR1cm52YWx1ZSAhPSAwOg0KPiArICAgICAgICAgICAgICAgIGdWZnJCdWZmZXJDb25maWcu Q2xvc2UoKQ0KPiArICAgICAgICAgICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlKFJldHVybnZh bHVlKQ0KPiArICAgICAgICBnVmZyQnVmZmVyQ29uZmlnLkNsb3NlKCkNCj4gKyAgICAgICAgcmV0 dXJuIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+ICsNCj4gKw0KPiArY2xhc3Mg RUZJX1ZGUl9WQVJTVE9SRV9UWVBFKEVudW0pOg0KPiArICAgIEVGSV9WRlJfVkFSU1RPUkVfSU5W QUxJRCA9IDANCj4gKyAgICBFRklfVkZSX1ZBUlNUT1JFX0JVRkZFUiA9IDENCj4gKyAgICBFRklf VkZSX1ZBUlNUT1JFX0VGSSA9IDINCj4gKyAgICBFRklfVkZSX1ZBUlNUT1JFX05BTUUgPSAzDQo+ ICsgICAgRUZJX1ZGUl9WQVJTVE9SRV9CVUZGRVJfQklUUyA9IDQNCj4gKw0KPiArDQo+ICtjbGFz cyBFZmlWYXI6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIFZhck5hbWU9MCwgVmFyU2l6ZT0w KToNCj4gKyAgICAgICAgc2VsZi5FZmlWYXJOYW1lID0gVmFyTmFtZQ0KPiArICAgICAgICBzZWxm LkVmaVZhclNpemUgPSBWYXJTaXplDQo+ICsNCj4gKw0KPiArREVGQVVMVF9OQU1FX1RBQkxFX0lU RU1TID0gMTAyNA0KPiArDQo+ICsNCj4gK2NsYXNzIFNWZnJWYXJTdG9yYWdlTm9kZToNCj4gKyAg ICBkZWYgX19pbml0X18oDQo+ICsgICAgICAgIHNlbGYsDQo+ICsgICAgICAgIFZhclN0b3JlTmFt ZT0iIiwNCj4gKyAgICAgICAgVmFyU3RvcmVJZD0wLA0KPiArICAgICAgICBHdWlkPU5vbmUsDQo+ ICsgICAgICAgIEF0dHJpYnV0ZXM9MCwNCj4gKyAgICAgICAgRmxhZz1UcnVlLA0KPiArICAgICAg ICBFZmlWYWx1ZT1Ob25lLA0KPiArICAgICAgICBEYXRhVHlwZT1Ob25lLA0KPiArICAgICAgICBC aXRzVmFyc3RvcmU9RmFsc2UsDQo+ICsgICAgKToNCj4gKyAgICAgICAgc2VsZi5HdWlkID0gR3Vp ZA0KPiArICAgICAgICBzZWxmLlZhclN0b3JlTmFtZSA9IFZhclN0b3JlTmFtZQ0KPiArICAgICAg ICBzZWxmLlZhclN0b3JlSWQgPSBWYXJTdG9yZUlkDQo+ICsgICAgICAgIHNlbGYuQXNzaWduZWRG bGFnID0gRmxhZw0KPiArICAgICAgICBzZWxmLkF0dHJpYnV0ZXMgPSBBdHRyaWJ1dGVzDQo+ICsg ICAgICAgIHNlbGYuTmV4dCA9IE5vbmUNCj4gKyAgICAgICAgc2VsZi5FZmlWYXIgPSBFZmlWYWx1 ZQ0KPiArICAgICAgICBzZWxmLkRhdGFUeXBlID0gRGF0YVR5cGUNCj4gKyAgICAgICAgc2VsZi5O YW1lU3BhY2UgPSBbXQ0KPiArDQo+ICsgICAgICAgIGlmIEVmaVZhbHVlIGlzIG5vdCBOb25lOg0K PiArICAgICAgICAgICAgc2VsZi5WYXJzdG9yZVR5cGUgPSBFRklfVkZSX1ZBUlNUT1JFX1RZUEUu RUZJX1ZGUl9WQVJTVE9SRV9FRkkNCj4gKyAgICAgICAgZWxpZiBEYXRhVHlwZSBpcyBub3QgTm9u ZToNCj4gKyAgICAgICAgICAgIGlmIEJpdHNWYXJzdG9yZToNCj4gKyAgICAgICAgICAgICAgICBz ZWxmLlZhcnN0b3JlVHlwZSA9DQo+IEVGSV9WRlJfVkFSU1RPUkVfVFlQRS5FRklfVkZSX1ZBUlNU T1JFX0JVRkZFUl9CSVRTDQo+ICsgICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAg IHNlbGYuVmFyc3RvcmVUeXBlID0NCj4gRUZJX1ZGUl9WQVJTVE9SRV9UWVBFLkVGSV9WRlJfVkFS U1RPUkVfQlVGRkVSDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICBzZWxmLlZhcnN0 b3JlVHlwZSA9DQo+IEVGSV9WRlJfVkFSU1RPUkVfVFlQRS5FRklfVkZSX1ZBUlNUT1JFX05BTUUN Cj4gKw0KPiArDQo+ICtjbGFzcyBTQ29uZmlnSXRlbToNCj4gKyAgICBkZWYgX19pbml0X18oc2Vs ZiwgTmFtZT1Ob25lLCBHdWlkPU5vbmUsIElkPU5vbmUsIFR5cGU9Tm9uZSwNCj4gT2Zmc2V0PU5v bmUsIFdpZHRoPU5vbmUsIFZhbHVlPU5vbmUpOg0KPiArICAgICAgICBzZWxmLk5hbWUgPSBOYW1l DQo+ICsgICAgICAgIHNlbGYuR3VpZCA9IEd1aWQNCj4gKyAgICAgICAgc2VsZi5JZCA9IElkDQo+ ICsgICAgICAgIGlmIFR5cGUgaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICAjIGxpc3Qgb2Yg T2Zmc2V0L1ZhbHVlIGluIHRoZSB2YXJzdG9yZQ0KPiArICAgICAgICAgICAgc2VsZi5JbmZvU3Ry TGlzdCA9IFNDb25maWdJbmZvKFR5cGUsIE9mZnNldCwgV2lkdGgsIFZhbHVlKQ0KPiArICAgICAg ICBlbHNlOg0KPiArICAgICAgICAgICAgc2VsZi5JbmZvU3RyTGlzdCA9IE5vbmUNCj4gKyAgICAg ICAgc2VsZi5OZXh0ID0gTm9uZQ0KPiArDQo+ICsNCj4gK2NsYXNzIFNDb25maWdJbmZvOg0KPiAr ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBUeXBlLCBPZmZzZXQsIFdpZHRoLCBWYWx1ZSk6DQo+ICsg ICAgICAgIHNlbGYuVHlwZSA9IFR5cGUNCj4gKyAgICAgICAgc2VsZi5PZmZzZXQgPSBPZmZzZXQN Cj4gKyAgICAgICAgc2VsZi5XaWR0aCA9IFdpZHRoDQo+ICsgICAgICAgIHNlbGYuTmV4dCA9IE5v bmUNCj4gKyAgICAgICAgc2VsZi5WYWx1ZSA9IFZhbHVlDQo+ICsNCj4gKw0KPiArY2xhc3MgVmZy QnVmZmVyQ29uZmlnOg0KPiArICAgIF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhDQo+ICsNCj4gKyAg ICBkZWYgX19pbml0X18oc2VsZik6DQo+ICsgICAgICAgIHNlbGYuSXRlbUxpc3RIZWFkID0gTm9u ZQ0KPiArICAgICAgICBzZWxmLkl0ZW1MaXN0VGFpbCA9IE5vbmUNCj4gKyAgICAgICAgc2VsZi5J dGVtTGlzdFBvcyA9IE5vbmUNCj4gKw0KPiArICAgIGRlZiBHZXRWYXJJdGVtTGlzdChzZWxmKToN Cj4gKyAgICAgICAgcmV0dXJuIHNlbGYuSXRlbUxpc3RIZWFkDQo+ICsNCj4gKyAgICBAYWJzdHJh Y3RtZXRob2QNCj4gKyAgICBkZWYgT3BlbihzZWxmKToNCj4gKyAgICAgICAgc2VsZi5JdGVtTGlz dFBvcyA9IHNlbGYuSXRlbUxpc3RIZWFkDQo+ICsNCj4gKyAgICBAYWJzdHJhY3RtZXRob2QNCj4g KyAgICBkZWYgQ2xvc2Uoc2VsZik6DQo+ICsgICAgICAgIHNlbGYuSXRlbUxpc3RQb3MgPSBOb25l DQo+ICsNCj4gKyAgICBAYWJzdHJhY3RtZXRob2QNCj4gKyAgICBkZWYgU2VsZWN0KHNlbGYsIE5h bWUsIEd1aWQsIElkPU5vbmUpOg0KPiArICAgICAgICBpZiBOYW1lIGlzIE5vbmUgb3IgR3VpZCBp cyBOb25lOg0KPiArICAgICAgICAgICAgc2VsZi5JdGVtTGlzdFBvcyA9IHNlbGYuSXRlbUxpc3RI ZWFkDQo+ICsgICAgICAgICAgICByZXR1cm4gMA0KPiArICAgICAgICBwID0gc2VsZi5JdGVtTGlz dEhlYWQNCj4gKyAgICAgICAgd2hpbGUgcCBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgIGlm IHAuTmFtZSAhPSBOYW1lIG9yIHAuR3VpZC5fX2NtcF9fKEd1aWQpIGlzIEZhbHNlOg0KPiArICAg ICAgICAgICAgICAgIHAgPSBwLk5leHQNCj4gKyAgICAgICAgICAgICAgICBjb250aW51ZQ0KPiAr ICAgICAgICAgICAgaWYgSWQgaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICAgICAgaWYgcC5J ZCBpcyBOb25lIG9yIHAuSWQgIT0gSWQ6DQo+ICsgICAgICAgICAgICAgICAgICAgIHAgPSBwLk5l eHQNCj4gKyAgICAgICAgICAgICAgICAgICAgY29udGludWUNCj4gKyAgICAgICAgICAgIGVsaWYg cC5JZCBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgICAgICBwID0gcC5OZXh0DQo+ICsgICAg ICAgICAgICAgICAgY29udGludWUNCj4gKyAgICAgICAgICAgIHNlbGYuSXRlbUxpc3RQb3MgPSBw DQo+ICsgICAgICAgICAgICByZXR1cm4gMA0KPiArICAgICAgICByZXR1cm4gMQ0KPiArDQo+ICsg ICAgQGFic3RyYWN0bWV0aG9kDQo+ICsgICAgZGVmIFJlZ2lzdGVyKHNlbGYsIE5hbWUsIEd1aWQs IElkPU5vbmUpOg0KPiArICAgICAgICBpZiBzZWxmLlNlbGVjdChOYW1lLCBHdWlkKSA9PSAwOg0K PiArICAgICAgICAgICAgcmV0dXJuIDENCj4gKyAgICAgICAgcE5ldyA9IFNDb25maWdJdGVtKE5h bWUsIEd1aWQsIElkKQ0KPiArICAgICAgICBpZiBwTmV3IGlzIE5vbmU6DQo+ICsgICAgICAgICAg ICByZXR1cm4gMg0KPiArICAgICAgICBpZiBzZWxmLkl0ZW1MaXN0SGVhZCBpcyBOb25lOg0KPiAr ICAgICAgICAgICAgc2VsZi5JdGVtTGlzdEhlYWQgPSBwTmV3DQo+ICsgICAgICAgICAgICBzZWxm Lkl0ZW1MaXN0VGFpbCA9IHBOZXcNCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIHNl bGYuSXRlbUxpc3RUYWlsLk5leHQgPSBwTmV3DQo+ICsgICAgICAgICAgICBzZWxmLkl0ZW1MaXN0 VGFpbCA9IHBOZXcNCj4gKyAgICAgICAgc2VsZi5JdGVtTGlzdFBvcyA9IHBOZXcNCj4gKyAgICAg ICAgcmV0dXJuIDANCj4gKw0KPiArICAgIEBhYnN0cmFjdG1ldGhvZA0KPiArICAgIGRlZiBXcml0 ZShzZWxmLCBNb2RlLCBOYW1lLCBHdWlkLCBJZCwgVHlwZSwgT2Zmc2V0LCBXaWR0aCwgVmFsdWUp Og0KPiArICAgICAgICBSZXQgPSBzZWxmLlNlbGVjdChOYW1lLCBHdWlkKQ0KPiArICAgICAgICBp ZiBSZXQgIT0gMDoNCj4gKyAgICAgICAgICAgIHJldHVybiBSZXQNCj4gKw0KPiArICAgICAgICBp ZiBNb2RlID09ICJhIjoNCj4gKyAgICAgICAgICAgIGlmIHNlbGYuU2VsZWN0KE5hbWUsIEd1aWQs IElkKSAhPSAwOg0KPiArICAgICAgICAgICAgICAgIHBJdGVtID0gU0NvbmZpZ0l0ZW0oTmFtZSwg R3VpZCwgSWQsIFR5cGUsIE9mZnNldCwgV2lkdGgsIFZhbHVlKQ0KPiArICAgICAgICAgICAgICAg IGlmIHBJdGVtIGlzIE5vbmU6DQo+ICsgICAgICAgICAgICAgICAgICAgIHJldHVybiAyDQo+ICsN Cj4gKyAgICAgICAgICAgICAgICBpZiBzZWxmLkl0ZW1MaXN0SGVhZCBpcyBOb25lOg0KPiArICAg ICAgICAgICAgICAgICAgICBzZWxmLkl0ZW1MaXN0SGVhZCA9IHBJdGVtDQo+ICsgICAgICAgICAg ICAgICAgICAgIHNlbGYuSXRlbUxpc3RUYWlsID0gcEl0ZW0NCj4gKyAgICAgICAgICAgICAgICBl bHNlOg0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLkl0ZW1MaXN0VGFpbC5OZXh0ID0gcEl0 ZW0NCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5JdGVtTGlzdFRhaWwgPSBwSXRlbQ0KPiAr DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5JdGVtTGlzdFBvcyA9IHBJdGVtDQo+ICsNCj4gKyAg ICAgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICAgICAgIyB0cmFudmVyc2UgdGhlIGxpc3Qg dG8gZmluZCBvdXQgaWYgdGhlcmUncyBhbHJlYWR5IHRoZSB2YWx1ZSBmb3IgdGhlDQo+IHNhbWUg T2Zmc2V0DQo+ICsgICAgICAgICAgICAgICAgcEluZm8gPSBzZWxmLkl0ZW1MaXN0UG9zLkluZm9T dHJMaXN0DQo+ICsgICAgICAgICAgICAgICAgd2hpbGUgcEluZm8gaXMgbm90IE5vbmU6DQo+ICsg ICAgICAgICAgICAgICAgICAgIGlmIHBJbmZvLk9mZnNldCA9PSBPZmZzZXQ6DQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICByZXR1cm4gMA0KPiArICAgICAgICAgICAgICAgICAgICBwSW5mbyA9 IHBJbmZvLk5leHQNCj4gKw0KPiArICAgICAgICAgICAgICAgIHBJbmZvID0gU0NvbmZpZ0luZm8o VHlwZSwgT2Zmc2V0LCBXaWR0aCwgVmFsdWUpDQo+ICsgICAgICAgICAgICAgICAgaWYgcEluZm8g aXMgTm9uZToNCj4gKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDINCj4gKw0KPiArICAgICAg ICAgICAgICAgIHBJbmZvLk5leHQgPSBzZWxmLkl0ZW1MaXN0UG9zLkluZm9TdHJMaXN0DQo+ICsg ICAgICAgICAgICAgICAgc2VsZi5JdGVtTGlzdFBvcy5JbmZvU3RyTGlzdCA9IHBJbmZvDQo+ICsN Cj4gKyAgICAgICAgZWxpZiBNb2RlID09ICJkIjoNCj4gKyAgICAgICAgICAgIGlmIHNlbGYuSXRl bUxpc3RIZWFkID09IHNlbGYuSXRlbUxpc3RQb3M6DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5J dGVtTGlzdEhlYWQgPSBzZWxmLkl0ZW1MaXN0UG9zLk5leHQNCj4gKw0KPiArICAgICAgICAgICAg cEl0ZW0gPSBzZWxmLkl0ZW1MaXN0SGVhZA0KPiArICAgICAgICAgICAgd2hpbGUgcEl0ZW0uTmV4 dCAhPSBzZWxmLkl0ZW1MaXN0UG9zOg0KPiArICAgICAgICAgICAgICAgIHBJdGVtID0gcEl0ZW0u TmV4dA0KPiArICAgICAgICAgICAgcEl0ZW0uTmV4dCA9IHNlbGYuSXRlbUxpc3RQb3MuTmV4dA0K PiArDQo+ICsgICAgICAgICAgICBpZiBzZWxmLkl0ZW1MaXN0VGFpbCA9PSBzZWxmLkl0ZW1MaXN0 UG9zOg0KPiArICAgICAgICAgICAgICAgIHNlbGYuSXRlbUxpc3RUYWlsID0gcEl0ZW0NCj4gKw0K PiArICAgICAgICAgICAgc2VsZi5JdGVtTGlzdFBvcyA9IHBJdGVtLk5leHQNCj4gKw0KPiArICAg ICAgICBlbGlmIE1vZGUgPT0gImkiOg0KPiArICAgICAgICAgICAgaWYgSWQgaXMgbm90IE5vbmU6 DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5JdGVtTGlzdFBvcy5JZCA9IElkDQo+ICsgICAgICAg IGVsc2U6DQo+ICsgICAgICAgICAgICByZXR1cm4gMQ0KPiArICAgICAgICByZXR1cm4gMA0KPiAr DQo+ICsNCj4gK2dWZnJCdWZmZXJDb25maWcgPSBWZnJCdWZmZXJDb25maWcoKQ0KPiArDQo+ICsN Cj4gK2NsYXNzIEVGSV9WQVJTVE9SRV9JTkZPKFN0cnVjdHVyZSk6DQo+ICsgICAgX3BhY2tfID0g MQ0KPiArICAgIF9maWVsZHNfID0gWw0KPiArICAgICAgICAoIlZhclN0b3JlSWQiLCBjX3VpbnQx NiksDQo+ICsgICAgICAgICgiSW5mbyIsIFZhclN0b3JlSW5mb05vZGUpLA0KPiArICAgICAgICAo IlZhclR5cGUiLCBjX3VpbnQ4KSwNCj4gKyAgICAgICAgKCJWYXJUb3RhbFNpemUiLCBjX3VpbnQz MiksDQo+ICsgICAgICAgICgiSXNCaXRWYXIiLCBjX2Jvb2wpLA0KPiArICAgIF0NCj4gKw0KPiAr ICAgIGRlZiBfX2luaXRfXygNCj4gKyAgICAgICAgc2VsZiwNCj4gKyAgICAgICAgVmFyU3RvcmVJ ZD1FRklfVkFSU1RPUkVfSURfSU5WQUxJRCwNCj4gKyAgICAgICAgVmFyTmFtZT1FRklfU1RSSU5H X0lEX0lOVkFMSUQsDQo+ICsgICAgICAgIFZhck9mZnNldD1FRklfVkFST0ZGU0VUX0lOVkFMSUQs DQo+ICsgICAgICAgIFZhclR5cGU9RUZJX0lGUl9UWVBFX09USEVSLA0KPiArICAgICAgICBWYXJU b3RhbFNpemU9MCwNCj4gKyAgICAgICAgSXNCaXRWYXI9RmFsc2UsDQo+ICsgICAgKToNCj4gKyAg ICAgICAgc2VsZi5WYXJTdG9yZUlkID0gVmFyU3RvcmVJZA0KPiArICAgICAgICBzZWxmLkluZm8u VmFyTmFtZSA9IFZhck5hbWUNCj4gKyAgICAgICAgc2VsZi5JbmZvLlZhck9mZnNldCA9IFZhck9m ZnNldA0KPiArICAgICAgICBzZWxmLlZhclRvdGFsU2l6ZSA9IFZhclRvdGFsU2l6ZQ0KPiArICAg ICAgICBzZWxmLklzQml0VmFyID0gSXNCaXRWYXINCj4gKyAgICAgICAgc2VsZi5WYXJUeXBlID0g VmFyVHlwZQ0KPiArDQo+ICsNCj4gK2NsYXNzIEJ1ZmZlclZhclN0b3JlRmllbGRJbmZvTm9kZToN Cj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgQmFzZUluZm86IEVGSV9WQVJTVE9SRV9JTkZPKToN Cj4gKyAgICAgICAgc2VsZi5WYXJTdG9yZUluZm8gPSBFRklfVkFSU1RPUkVfSU5GTygpDQo+ICsg ICAgICAgIHNlbGYuVmFyU3RvcmVJbmZvLlZhclR5cGUgPSBCYXNlSW5mby5WYXJUeXBlDQo+ICsg ICAgICAgIHNlbGYuVmFyU3RvcmVJbmZvLlZhclRvdGFsU2l6ZSA9IEJhc2VJbmZvLlZhclRvdGFs U2l6ZQ0KPiArICAgICAgICBzZWxmLlZhclN0b3JlSW5mby5JbmZvLlZhck9mZnNldCA9IEJhc2VJ bmZvLkluZm8uVmFyT2Zmc2V0DQo+ICsgICAgICAgIHNlbGYuVmFyU3RvcmVJbmZvLlZhclN0b3Jl SWQgPSBCYXNlSW5mby5WYXJTdG9yZUlkDQo+ICsgICAgICAgIHNlbGYuTmV4dCA9IE5vbmUNCj4g Kw0KPiArDQo+ICtjbGFzcyBWZnJEYXRhU3RvcmFnZToNCj4gKyAgICBkZWYgX19pbml0X18oc2Vs Zik6DQo+ICsgICAgICAgICMgU1ZmclZhclN0b3JhZ2VOb2RlDQo+ICsgICAgICAgIHNlbGYuQnVm ZmVyVmFyU3RvcmVMaXN0ID0gTm9uZQ0KPiArICAgICAgICBzZWxmLkVmaVZhclN0b3JlTGlzdCA9 IE5vbmUNCj4gKyAgICAgICAgc2VsZi5OYW1lVmFyU3RvcmVMaXN0ID0gTm9uZQ0KPiArICAgICAg ICBzZWxmLkN1cnJWYXJTdG9yYWdlTm9kZSA9IE5vbmUNCj4gKyAgICAgICAgc2VsZi5OZXdWYXJT dG9yYWdlTm9kZSA9IE5vbmUNCj4gKyAgICAgICAgc2VsZi5CdWZmZXJGaWVsZEluZm9MaXN0SGVh ZCA9IE5vbmUNCj4gKyAgICAgICAgc2VsZi5tQnVmZmVyRmllbGRJbmZvTGlzdFRhaWwgPSBOb25l DQo+ICsgICAgICAgIHNlbGYuRnJlZVZhclN0b3JlSWRCaXRNYXAgPSBbXQ0KPiArICAgICAgICBm b3IgaSBpbiByYW5nZSgwLCBFRklfRlJFRV9WQVJTVE9SRV9JRF9CSVRNQVBfU0laRSk6DQo+ICsg ICAgICAgICAgICBzZWxmLkZyZWVWYXJTdG9yZUlkQml0TWFwLmFwcGVuZCgwKQ0KPiArICAgICAg ICAjIFF1ZXN0aW9uIElEMCBpcyByZXNlcnZlZA0KPiArICAgICAgICBzZWxmLkZyZWVWYXJTdG9y ZUlkQml0TWFwWzBdID0gMHg4MDAwMDAwMA0KPiArDQo+ICsgICAgZGVmIENsZWFyKHNlbGYpOg0K PiArICAgICAgICAjICBTVmZyVmFyU3RvcmFnZU5vZGUNCj4gKyAgICAgICAgc2VsZi5CdWZmZXJW YXJTdG9yZUxpc3QgPSBOb25lDQo+ICsgICAgICAgIHNlbGYuRWZpVmFyU3RvcmVMaXN0ID0gTm9u ZQ0KPiArICAgICAgICBzZWxmLk5hbWVWYXJTdG9yZUxpc3QgPSBOb25lDQo+ICsgICAgICAgIHNl bGYuQ3VyclZhclN0b3JhZ2VOb2RlID0gTm9uZQ0KPiArICAgICAgICBzZWxmLk5ld1ZhclN0b3Jh Z2VOb2RlID0gTm9uZQ0KPiArICAgICAgICBzZWxmLkJ1ZmZlckZpZWxkSW5mb0xpc3RIZWFkID0g Tm9uZQ0KPiArICAgICAgICBzZWxmLm1CdWZmZXJGaWVsZEluZm9MaXN0VGFpbCA9IE5vbmUNCj4g KyAgICAgICAgc2VsZi5GcmVlVmFyU3RvcmVJZEJpdE1hcCA9IFtdDQo+ICsgICAgICAgIGZvciBf IGluIHJhbmdlKDAsIEVGSV9GUkVFX1ZBUlNUT1JFX0lEX0JJVE1BUF9TSVpFKToNCj4gKyAgICAg ICAgICAgIHNlbGYuRnJlZVZhclN0b3JlSWRCaXRNYXAuYXBwZW5kKDApDQo+ICsgICAgICAgICMg IFF1ZXN0aW9uIElEMCBpcyByZXNlcnZlZA0KPiArICAgICAgICBzZWxmLkZyZWVWYXJTdG9yZUlk Qml0TWFwWzBdID0gMHg4MDAwMDAwMA0KPiArDQo+ICsgICAgZGVmIEdldEJ1ZmZlclZhclN0b3Jl TGlzdChzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuQnVmZmVyVmFyU3RvcmVMaXN0DQo+ ICsNCj4gKyAgICBkZWYgQ2hlY2tHdWlkRmllbGQoc2VsZiwgcE5vZGUsIFN0b3JlR3VpZCwgSGFz Rm91bmRPbmUsIFJldHVybkNvZGUpOg0KPiArICAgICAgICBpZiBTdG9yZUd1aWQgaXMgbm90IE5v bmU6DQo+ICsgICAgICAgICAgICAjICBJZiBoYXMgZ3VpZCBpbmZvLCBjb21wYXJlIHRoZSBndWlk IGZpZWxkLg0KPiArICAgICAgICAgICAgaWYgcE5vZGUuR3VpZC5fX2NtcF9fKFN0b3JlR3VpZCk6 DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5DdXJyVmFyU3RvcmFnZU5vZGUgPSBwTm9kZQ0KPiAr ICAgICAgICAgICAgICAgIFJldHVybkNvZGUgPSBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VD Q0VTUw0KPiArICAgICAgICAgICAgICAgIHJldHVybiBUcnVlLCBSZXR1cm5Db2RlLCBIYXNGb3Vu ZE9uZQ0KPiArICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgIyAgbm90IGhhcyBHdWlkIGZp ZWxkLCBjaGVjayB3aGV0aGVyIHRoaXMgbmFtZSBpcyB0aGUgb25seSBvbmUuDQo+ICsgICAgICAg ICAgICBpZiBIYXNGb3VuZE9uZToNCj4gKyAgICAgICAgICAgICAgICAjICBUaGUgbmFtZSBoYXMg Y29uZmxpY3QsIHJldHVybiBuYW1lIHJlZGVmaW5lZC4NCj4gKyAgICAgICAgICAgICAgICBSZXR1 cm5Db2RlID0NCj4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1ZBUlNUT1JFX05BTUVfUkVERUZJ TkVEX0VSUk9SDQo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUsIFJldHVybkNvZGUsIEhh c0ZvdW5kT25lDQo+ICsNCj4gKyAgICAgICAgICAgIHNlbGYuQ3VyclZhclN0b3JhZ2VOb2RlID0g cE5vZGUNCj4gKyAgICAgICAgICAgIEhhc0ZvdW5kT25lID0gVHJ1ZQ0KPiArICAgICAgICByZXR1 cm4gRmFsc2UsIFJldHVybkNvZGUsIEhhc0ZvdW5kT25lDQo+ICsNCj4gKyAgICBkZWYgR2V0VmFy U3RvcmVCeURhdGFUeXBlKHNlbGYsIERhdGFUeXBlTmFtZSwgVmFyR3VpZCk6DQo+ICsgICAgICAg IE1hdGNoTm9kZSA9IE5vbmUNCj4gKyAgICAgICAgcE5vZGUgPSBzZWxmLkJ1ZmZlclZhclN0b3Jl TGlzdA0KPiArICAgICAgICB3aGlsZSBwTm9kZSBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAg IGlmIHBOb2RlLkRhdGFUeXBlLlR5cGVOYW1lICE9IERhdGFUeXBlTmFtZToNCj4gKyAgICAgICAg ICAgICAgICBwTm9kZSA9IHBOb2RlLk5leHQNCj4gKyAgICAgICAgICAgICAgICBjb250aW51ZQ0K PiArICAgICAgICAgICAgaWYgVmFyR3VpZCBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgICAg ICBpZiBwTm9kZS5HdWlkLl9fY21wX18oVmFyR3VpZCk6DQo+ICsgICAgICAgICAgICAgICAgICAg IHJldHVybiBwTm9kZSwgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gKyAgICAg ICAgICAgIGVsaWYgTWF0Y2hOb2RlIGlzIE5vbmU6DQo+ICsgICAgICAgICAgICAgICAgTWF0Y2hO b2RlID0gcE5vZGUNCj4gKyAgICAgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICAgICAgIyBN b3JlIHRoYW4gb25lIHZhcnN0b3JlcyByZWZlcnJlZCB0aGUgc2FtZSBkYXRhIHN0cnVjdHVyZXMN Cj4gKyAgICAgICAgICAgICAgICByZXR1cm4gTm9uZSwNCj4gVmZyUmV0dXJuQ29kZS5WRlJfUkVU VVJOX1ZBUlNUT1JFX0RBVEFUWVBFX1JFREVGSU5FRF9FUlJPUg0KPiArICAgICAgICAgICAgcE5v ZGUgPSBwTm9kZS5OZXh0DQo+ICsNCj4gKyAgICAgICAgaWYgTWF0Y2hOb2RlIGlzIE5vbmU6DQo+ ICsgICAgICAgICAgICByZXR1cm4gTWF0Y2hOb2RlLCBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5f VU5ERUZJTkVEDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIE1hdGNoTm9kZSwgVmZyUmV0dXJuQ29k ZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gKw0KPiArICAgICIiIg0KPiArICAgICAgIEJhc2Ugb24g dGhlIGlucHV0IHN0b3JlIG5hbWUgYW5kIGd1aWQgdG8gZmluZCB0aGUgdmFyc3RvcmUgaWQuDQo+ ICsgICAgICAgSWYgYm90aCBuYW1lIGFuZCBndWlkIGFyZSBpbnB1dGVkLCBiYXNlIG9uIHRoZSBu YW1lIGFuZCBndWlkIHRvDQo+ICsgICAgICAgZm91bmQgdGhlIHZhcnN0b3JlLiBJZiBvbmx5IG5h bWUgaW5wdXRlZCwgYmFzZSBvbiB0aGUgbmFtZSB0bw0KPiArICAgICAgIGZvdW5kIHRoZSB2YXJz dG9yZSBhbmQgZ28gb24gdG8gY2hlY2sgd2hldGhlciBtb3JlIHRoYW4gb25lIHZhcnN0b3JlDQo+ ICsgICAgICAgaGFzIHRoZSBzYW1lIG5hbWUuIElmIG9ubHkgaGFzIGZvdW5kIG9uZSB2YXJzdG9y ZSwgcmV0dXJuIHRoaXMNCj4gKyAgICAgICB2YXJzdG9yZTsgaWYgbW9yZSB0aGFuIG9uZSB2YXJz dG9yZSBoYXMgc2FtZSBuYW1lLCByZXR1cm4gdmFyc3RvcmUNCj4gKyAgICAgICBuYW1lIHJlZGVm aW5lZCBlcnJvci4gSWYgbm8gdmFyc3RvcmUgZm91bmQgYnkgdmFyc3RvcmUgbmFtZSwgY2FsbA0K PiArICAgICAgIGZ1bmN0aW9uIEdldFZhclN0b3JlQnlEYXRhVHlwZSBhbmQgdXNlIGlucHV0ZWQg dmFyc3RvcmUgbmFtZSBhcw0KPiArICAgICAgIGRhdGEgdHlwZSBuYW1lIHRvIHNlYXJjaC4NCj4g KyAgICAgICAiIiINCj4gKw0KPiArICAgIGRlZiBHZXRWYXJTdG9yZUlkKHNlbGYsIFN0b3JlTmFt ZSwgU3RvcmVHdWlkPU5vbmUpOg0KPiArICAgICAgICBSZXR1cm5Db2RlID0gTm9uZQ0KPiArICAg ICAgICBIYXNGb3VuZE9uZSA9IEZhbHNlDQo+ICsgICAgICAgIHNlbGYuQ3VyclZhclN0b3JhZ2VO b2RlID0gTm9uZQ0KPiArDQo+ICsgICAgICAgIHBOb2RlID0gc2VsZi5CdWZmZXJWYXJTdG9yZUxp c3QNCj4gKyAgICAgICAgd2hpbGUgcE5vZGUgaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICBp ZiBwTm9kZS5WYXJTdG9yZU5hbWUgPT0gU3RvcmVOYW1lOg0KPiArICAgICAgICAgICAgICAgIFJl c3VsdCwgUmV0dXJuQ29kZSwgSGFzRm91bmRPbmUgPSBzZWxmLkNoZWNrR3VpZEZpZWxkKHBOb2Rl LA0KPiBTdG9yZUd1aWQsIEhhc0ZvdW5kT25lLCBSZXR1cm5Db2RlKQ0KPiArICAgICAgICAgICAg ICAgIGlmIFJlc3VsdDoNCj4gKyAgICAgICAgICAgICAgICAgICAgVmFyU3RvcmVJZCA9IHNlbGYu Q3VyclZhclN0b3JhZ2VOb2RlLlZhclN0b3JlSWQNCj4gKyAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIFZhclN0b3JlSWQsIFJldHVybkNvZGUNCj4gKyAgICAgICAgICAgIHBOb2RlID0gcE5vZGUu TmV4dA0KPiArDQo+ICsgICAgICAgIHBOb2RlID0gc2VsZi5FZmlWYXJTdG9yZUxpc3QNCj4gKyAg ICAgICAgd2hpbGUgcE5vZGUgaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICBpZiBwTm9kZS5W YXJTdG9yZU5hbWUgPT0gU3RvcmVOYW1lOg0KPiArICAgICAgICAgICAgICAgIFJlc3VsdCwgUmV0 dXJuQ29kZSwgSGFzRm91bmRPbmUgPSBzZWxmLkNoZWNrR3VpZEZpZWxkKHBOb2RlLA0KPiBTdG9y ZUd1aWQsIEhhc0ZvdW5kT25lLCBSZXR1cm5Db2RlKQ0KPiArICAgICAgICAgICAgICAgIGlmIFJl c3VsdDoNCj4gKyAgICAgICAgICAgICAgICAgICAgVmFyU3RvcmVJZCA9IHNlbGYuQ3VyclZhclN0 b3JhZ2VOb2RlLlZhclN0b3JlSWQNCj4gKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZhclN0 b3JlSWQsIFJldHVybkNvZGUNCj4gKyAgICAgICAgICAgIHBOb2RlID0gcE5vZGUuTmV4dA0KPiAr DQo+ICsgICAgICAgIHBOb2RlID0gc2VsZi5OYW1lVmFyU3RvcmVMaXN0DQo+ICsgICAgICAgIHdo aWxlIHBOb2RlIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgaWYgcE5vZGUuVmFyU3RvcmVO YW1lID09IFN0b3JlTmFtZToNCj4gKyAgICAgICAgICAgICAgICBSZXN1bHQsIFJldHVybkNvZGUs IEhhc0ZvdW5kT25lID0gc2VsZi5DaGVja0d1aWRGaWVsZChwTm9kZSwNCj4gU3RvcmVHdWlkLCBI YXNGb3VuZE9uZSwgUmV0dXJuQ29kZSkNCj4gKyAgICAgICAgICAgICAgICBpZiBSZXN1bHQ6DQo+ ICsgICAgICAgICAgICAgICAgICAgIFZhclN0b3JlSWQgPSBzZWxmLkN1cnJWYXJTdG9yYWdlTm9k ZS5WYXJTdG9yZUlkDQo+ICsgICAgICAgICAgICAgICAgICAgIHJldHVybiBWYXJTdG9yZUlkLCBS ZXR1cm5Db2RlDQo+ICsgICAgICAgICAgICBwTm9kZSA9IHBOb2RlLk5leHQNCj4gKw0KPiArICAg ICAgICBpZiBIYXNGb3VuZE9uZToNCj4gKyAgICAgICAgICAgIFZhclN0b3JlSWQgPSBzZWxmLkN1 cnJWYXJTdG9yYWdlTm9kZS5WYXJTdG9yZUlkDQo+ICsgICAgICAgICAgICByZXR1cm4gVmFyU3Rv cmVJZCwgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gKw0KPiArICAgICAgICBW YXJTdG9yZUlkID0gRUZJX1ZBUlNUT1JFX0lEX0lOVkFMSUQNCj4gKyAgICAgICAgcE5vZGUsIFJl dHVybkNvZGUgPSBzZWxmLkdldFZhclN0b3JlQnlEYXRhVHlwZShTdG9yZU5hbWUsDQo+IFN0b3Jl R3VpZCkNCj4gKyAgICAgICAgaWYgcE5vZGUgaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICBz ZWxmLkN1cnJWYXJTdG9yYWdlTm9kZSA9IHBOb2RlDQo+ICsgICAgICAgICAgICBWYXJTdG9yZUlk ID0gcE5vZGUuVmFyU3RvcmVJZA0KPiArDQo+ICsgICAgICAgIHJldHVybiBWYXJTdG9yZUlkLCBS ZXR1cm5Db2RlDQo+ICsNCj4gKyAgICBkZWYgR2V0RnJlZVZhclN0b3JlSWQoc2VsZiwgVmFyVHlw ZSk6DQo+ICsgICAgICAgIEluZGV4ID0gMA0KPiArICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCBF RklfRlJFRV9WQVJTVE9SRV9JRF9CSVRNQVBfU0laRSk6DQo+ICsgICAgICAgICAgICBpZiBzZWxm LkZyZWVWYXJTdG9yZUlkQml0TWFwW2ldICE9IDB4RkZGRkZGRkY6DQo+ICsgICAgICAgICAgICAg ICAgSW5kZXggPSBpDQo+ICsgICAgICAgICAgICAgICAgYnJlYWsNCj4gKyAgICAgICAgaWYgSW5k ZXggPT0gRUZJX0ZSRUVfVkFSU1RPUkVfSURfQklUTUFQX1NJWkU6DQo+ICsgICAgICAgICAgICBy ZXR1cm4gRUZJX1ZBUlNUT1JFX0lEX0lOVkFMSUQNCj4gKw0KPiArICAgICAgICBPZmZzZXQgPSAw DQo+ICsgICAgICAgIE1hc2sgPSAweDgwMDAwMDAwDQo+ICsgICAgICAgIHdoaWxlIE1hc2sgIT0g MDoNCj4gKyAgICAgICAgICAgIGlmIChzZWxmLkZyZWVWYXJTdG9yZUlkQml0TWFwW0luZGV4XSAm IE1hc2spID09IDA6DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5GcmVlVmFyU3RvcmVJZEJpdE1h cFtJbmRleF0gfD0gTWFzaw0KPiArICAgICAgICAgICAgICAgIHJldHVybiAoSW5kZXggPDwgRUZJ X0JJVFNfU0hJRlRfUEVSX1VJTlQzMikgKyBPZmZzZXQNCj4gKyAgICAgICAgICAgIE1hc2sgPj49 IDENCj4gKyAgICAgICAgICAgIE9mZnNldCArPSAxDQo+ICsgICAgICAgIHJldHVybiBFRklfVkFS U1RPUkVfSURfSU5WQUxJRA0KPiArDQo+ICsgICAgZGVmIENoZWNrVmFyU3RvcmVJZEZyZWUoc2Vs ZiwgVmFyU3RvcmVJZCk6DQo+ICsgICAgICAgIEluZGV4ID0gaW50KFZhclN0b3JlSWQgLyBFRklf QklUU19QRVJfVUlOVDMyKQ0KPiArICAgICAgICBPZmZzZXQgPSBWYXJTdG9yZUlkICUgRUZJX0JJ VFNfUEVSX1VJTlQzMg0KPiArICAgICAgICByZXR1cm4gKHNlbGYuRnJlZVZhclN0b3JlSWRCaXRN YXBbSW5kZXhdICYgKDB4ODAwMDAwMDAgPj4gT2Zmc2V0KSkgPT0NCj4gMA0KPiArDQo+ICsgICAg ZGVmIE1hcmtWYXJTdG9yZUlkVXNlZChzZWxmLCBWYXJTdG9yZUlkKToNCj4gKyAgICAgICAgSW5k ZXggPSBpbnQoVmFyU3RvcmVJZCAvIEVGSV9CSVRTX1BFUl9VSU5UMzIpDQo+ICsgICAgICAgIE9m ZnNldCA9IFZhclN0b3JlSWQgJSBFRklfQklUU19QRVJfVUlOVDMyDQo+ICsgICAgICAgIHNlbGYu RnJlZVZhclN0b3JlSWRCaXRNYXBbSW5kZXhdIHw9IDB4ODAwMDAwMDAgPj4gT2Zmc2V0DQo+ICsN Cj4gKyAgICBkZWYgRGVjbGFyZUJ1ZmZlclZhclN0b3JlKHNlbGYsIFN0b3JlTmFtZSwgR3VpZCwg RGF0YVR5cGVEQiwgVHlwZU5hbWUsDQo+IFZhclN0b3JlSWQsIElzQml0VmFyU3RvcmUsIEF0dHI9 MCwgRmxhZz1UcnVlKToNCj4gKyAgICAgICAgaWYgU3RvcmVOYW1lIGlzIE5vbmUgb3IgR3VpZCBp cyBOb25lIG9yIERhdGFUeXBlREIgaXMgTm9uZToNCj4gKyAgICAgICAgICAgIHJldHVybiBWZnJS ZXR1cm5Db2RlLlZGUl9SRVRVUk5fRkFUQUxfRVJST1INCj4gKyAgICAgICAgXywgUmV0dXJuQ29k ZSA9IHNlbGYuR2V0VmFyU3RvcmVJZChTdG9yZU5hbWUsIEd1aWQpDQo+ICsNCj4gKyAgICAgICAg aWYgUmV0dXJuQ29kZSA9PSBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUzoNCj4gKyAg ICAgICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fUkVERUZJTkVEDQo+ICsN Cj4gKyAgICAgICAgRGF0YVR5cGUsIFJldHVybkNvZGUgPSBEYXRhVHlwZURCLkdldERhdGFUeXBl KFR5cGVOYW1lKQ0KPiArDQo+ICsgICAgICAgIGlmIFJldHVybkNvZGUgIT0gVmZyUmV0dXJuQ29k ZS5WRlJfUkVUVVJOX1NVQ0NFU1M6DQo+ICsgICAgICAgICAgICByZXR1cm4gUmV0dXJuQ29kZQ0K PiArDQo+ICsgICAgICAgIGlmIFZhclN0b3JlSWQgPT0gRUZJX1ZBUlNUT1JFX0lEX0lOVkFMSUQ6 DQo+ICsgICAgICAgICAgICBWYXJTdG9yZUlkID0NCj4gc2VsZi5HZXRGcmVlVmFyU3RvcmVJZChF RklfVkZSX1ZBUlNUT1JFX1RZUEUuRUZJX1ZGUl9WQVJTVE9SRV9CVUZGRVINCj4gKQ0KPiArICAg ICAgICBlbHNlOg0KPiArICAgICAgICAgICAgaWYgc2VsZi5DaGVja1ZhclN0b3JlSWRGcmVlKFZh clN0b3JlSWQpIGlzIEZhbHNlOg0KPiArICAgICAgICAgICAgICAgIHJldHVybiBWZnJSZXR1cm5D b2RlLlZGUl9SRVRVUk5fVkFSU1RPUkVJRF9SRURFRklORUQNCj4gKyAgICAgICAgICAgIHNlbGYu TWFya1ZhclN0b3JlSWRVc2VkKFZhclN0b3JlSWQpDQo+ICsgICAgICAgIHBOZXcgPSBTVmZyVmFy U3RvcmFnZU5vZGUoU3RvcmVOYW1lLCBWYXJTdG9yZUlkLCBHdWlkLCBBdHRyLCBGbGFnLA0KPiBO b25lLCBEYXRhVHlwZSwgSXNCaXRWYXJTdG9yZSkNCj4gKw0KPiArICAgICAgICBpZiBwTmV3IGlz IE5vbmU6DQo+ICsgICAgICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX09V VF9GT1JfUkVTT1VSQ0VTDQo+ICsNCj4gKyAgICAgICAgcE5ldy5OZXh0ID0gc2VsZi5CdWZmZXJW YXJTdG9yZUxpc3QNCj4gKyAgICAgICAgc2VsZi5CdWZmZXJWYXJTdG9yZUxpc3QgPSBwTmV3DQo+ ICsNCj4gKyAgICAgICAgaWYgZ1ZmckJ1ZmZlckNvbmZpZy5SZWdpc3RlcihTdG9yZU5hbWUsIEd1 aWQpICE9IDA6DQo+ICsgICAgICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJO X0ZBVEFMX0VSUk9SDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIFZmclJldHVybkNvZGUuVkZSX1JF VFVSTl9TVUNDRVNTDQo+ICsNCj4gKyAgICBkZWYgRGVjbGFyZU5hbWVWYXJTdG9yZUJlZ2luKHNl bGYsIFN0b3JlTmFtZSwgVmFyU3RvcmVJZCk6DQo+ICsgICAgICAgIGlmIFN0b3JlTmFtZSBpcyBO b25lOg0KPiArICAgICAgICAgICAgcmV0dXJuIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9GQVRB TF9FUlJPUg0KPiArDQo+ICsgICAgICAgIF8sIFJldHVybkNvZGUgPSBzZWxmLkdldFZhclN0b3Jl SWQoU3RvcmVOYW1lKQ0KPiArICAgICAgICBpZiBSZXR1cm5Db2RlID09IFZmclJldHVybkNvZGUu VkZSX1JFVFVSTl9TVUNDRVNTOg0KPiArICAgICAgICAgICAgcmV0dXJuIFZmclJldHVybkNvZGUu VkZSX1JFVFVSTl9SRURFRklORUQNCj4gKw0KPiArICAgICAgICBpZiBWYXJTdG9yZUlkID09IEVG SV9WQVJTVE9SRV9JRF9JTlZBTElEOg0KPiArICAgICAgICAgICAgVmFyU3RvcmVJZCA9DQo+IHNl bGYuR2V0RnJlZVZhclN0b3JlSWQoRUZJX1ZGUl9WQVJTVE9SRV9UWVBFLkVGSV9WRlJfVkFSU1RP UkVfTkFNRSkNCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIGlmIHNlbGYuQ2hlY2tW YXJTdG9yZUlkRnJlZShWYXJTdG9yZUlkKSBpcyBGYWxzZToNCj4gKyAgICAgICAgICAgICAgICBy ZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1ZBUlNUT1JFSURfUkVERUZJTkVEDQo+ICsg ICAgICAgICAgICBzZWxmLk1hcmtWYXJTdG9yZUlkVXNlZChWYXJTdG9yZUlkKQ0KPiArDQo+ICsg ICAgICAgIHBOb2RlID0gU1ZmclZhclN0b3JhZ2VOb2RlKFN0b3JlTmFtZSwgVmFyU3RvcmVJZCkN Cj4gKw0KPiArICAgICAgICBpZiBwTm9kZSBpcyBOb25lOg0KPiArICAgICAgICAgICAgcmV0dXJu IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9PVVRfRk9SX1JFU09VUkNFUw0KPiArDQo+ICsgICAg ICAgIHNlbGYuTmV3VmFyU3RvcmFnZU5vZGUgPSBwTm9kZQ0KPiArICAgICAgICByZXR1cm4gVmZy UmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gKw0KPiArICAgIGRlZiBEZWNsYXJlTmFt ZVZhclN0b3JlRW5kKHNlbGYsIEd1aWQpOg0KPiArICAgICAgICBzZWxmLk5ld1ZhclN0b3JhZ2VO b2RlLkd1aWQgPSBHdWlkDQo+ICsgICAgICAgIHNlbGYuTmV3VmFyU3RvcmFnZU5vZGUuTmV4dCA9 IHNlbGYuTmFtZVZhclN0b3JlTGlzdA0KPiArICAgICAgICBzZWxmLk5hbWVWYXJTdG9yZUxpc3Qg PSBzZWxmLk5ld1ZhclN0b3JhZ2VOb2RlDQo+ICsgICAgICAgIHNlbGYuTmV3VmFyU3RvcmFnZU5v ZGUgPSBOb25lDQo+ICsNCj4gKyAgICBkZWYgTmFtZVRhYmxlQWRkSXRlbShzZWxmLCBJdGVtKToN Cj4gKyAgICAgICAgc2VsZi5OZXdWYXJTdG9yYWdlTm9kZS5OYW1lU3BhY2UuYXBwZW5kKEl0ZW0p DQo+ICsgICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiAr DQo+ICsgICAgZGVmIEdldE5hbWVWYXJTdG9yZUluZm8oc2VsZiwgQmFzZUluZm8sIEluZGV4KToN Cj4gKyAgICAgICAgaWYgQmFzZUluZm8gaXMgTm9uZToNCj4gKyAgICAgICAgICAgIHJldHVybiBW ZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fRkFUQUxfRVJST1INCj4gKw0KPiArICAgICAgICBpZiBz ZWxmLkN1cnJWYXJTdG9yYWdlTm9kZSBpcyBOb25lOg0KPiArICAgICAgICAgICAgcmV0dXJuIFZm clJldHVybkNvZGUuVkZSX1JFVFVSTl9HRVRfTlZWQVJTVE9SRV9FUlJPUg0KPiArDQo+ICsgICAg ICAgIEJhc2VJbmZvLkluZm8uVmFyTmFtZSA9IHNlbGYuQ3VyclZhclN0b3JhZ2VOb2RlLk5hbWVT cGFjZVtJbmRleF0NCj4gKw0KPiArICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVU VVJOX1NVQ0NFU1MNCj4gKw0KPiArICAgIGRlZiBHZXRWYXJTdG9yZVR5cGUoc2VsZiwgVmFyU3Rv cmVJZCk6DQo+ICsgICAgICAgIFZhclN0b3JlVHlwZSA9IEVGSV9WRlJfVkFSU1RPUkVfVFlQRS5F RklfVkZSX1ZBUlNUT1JFX0lOVkFMSUQNCj4gKw0KPiArICAgICAgICBpZiBWYXJTdG9yZUlkID09 IEVGSV9WQVJTVE9SRV9JRF9JTlZBTElEOg0KPiArICAgICAgICAgICAgcmV0dXJuIFZhclN0b3Jl VHlwZQ0KPiArDQo+ICsgICAgICAgIHBOb2RlID0gc2VsZi5CdWZmZXJWYXJTdG9yZUxpc3QNCj4g KyAgICAgICAgd2hpbGUgcE5vZGUgaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICBpZiBwTm9k ZS5WYXJTdG9yZUlkID09IFZhclN0b3JlSWQ6DQo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIHBO b2RlLlZhcnN0b3JlVHlwZQ0KPiArICAgICAgICAgICAgcE5vZGUgPSBwTm9kZS5OZXh0DQo+ICsN Cj4gKyAgICAgICAgcE5vZGUgPSBzZWxmLkVmaVZhclN0b3JlTGlzdA0KPiArICAgICAgICB3aGls ZSBwTm9kZSBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgIGlmIHBOb2RlLlZhclN0b3JlSWQg PT0gVmFyU3RvcmVJZDoNCj4gKyAgICAgICAgICAgICAgICByZXR1cm4gcE5vZGUuVmFyc3RvcmVU eXBlDQo+ICsgICAgICAgICAgICBwTm9kZSA9IHBOb2RlLk5leHQNCj4gKw0KPiArICAgICAgICBw Tm9kZSA9IHNlbGYuTmFtZVZhclN0b3JlTGlzdA0KPiArICAgICAgICB3aGlsZSBwTm9kZSBpcyBu b3QgTm9uZToNCj4gKyAgICAgICAgICAgIGlmIHBOb2RlLlZhclN0b3JlSWQgPT0gVmFyU3RvcmVJ ZDoNCj4gKyAgICAgICAgICAgICAgICByZXR1cm4gcE5vZGUuVmFyc3RvcmVUeXBlDQo+ICsgICAg ICAgICAgICBwTm9kZSA9IHBOb2RlLk5leHQNCj4gKw0KPiArICAgICAgICByZXR1cm4gVmFyU3Rv cmVUeXBlDQo+ICsNCj4gKyAgICBkZWYgR2V0VmFyU3RvcmVOYW1lKHNlbGYsIFZhclN0b3JlSWQp Og0KPiArICAgICAgICBwTm9kZSA9IHNlbGYuQnVmZmVyVmFyU3RvcmVMaXN0DQo+ICsgICAgICAg IHdoaWxlIHBOb2RlIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgaWYgcE5vZGUuVmFyU3Rv cmVJZCA9PSBWYXJTdG9yZUlkOg0KPiArICAgICAgICAgICAgICAgIHJldHVybiBwTm9kZS5WYXJT dG9yZU5hbWUsDQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+ICsgICAgICAg ICAgICBwTm9kZSA9IHBOb2RlLk5leHQNCj4gKw0KPiArICAgICAgICBwTm9kZSA9IHNlbGYuRWZp VmFyU3RvcmVMaXN0DQo+ICsgICAgICAgIHdoaWxlIHBOb2RlIGlzIG5vdCBOb25lOg0KPiArICAg ICAgICAgICAgaWYgcE5vZGUuVmFyU3RvcmVJZCA9PSBWYXJTdG9yZUlkOg0KPiArICAgICAgICAg ICAgICAgIHJldHVybiBwTm9kZS5WYXJTdG9yZU5hbWUsDQo+IFZmclJldHVybkNvZGUuVkZSX1JF VFVSTl9TVUNDRVNTDQo+ICsgICAgICAgICAgICBwTm9kZSA9IHBOb2RlLk5leHQNCj4gKw0KPiAr ICAgICAgICBwTm9kZSA9IHNlbGYuTmFtZVZhclN0b3JlTGlzdA0KPiArICAgICAgICB3aGlsZSBw Tm9kZSBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgIGlmIHBOb2RlLlZhclN0b3JlSWQgPT0g VmFyU3RvcmVJZDoNCj4gKyAgICAgICAgICAgICAgICByZXR1cm4gcE5vZGUuVmFyU3RvcmVOYW1l LA0KPiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiArICAgICAgICAgICAgcE5v ZGUgPSBwTm9kZS5OZXh0DQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIE5vbmUsIFZmclJldHVybkNv ZGUuVkZSX1JFVFVSTl9VTkRFRklORUQNCj4gKw0KPiArICAgIGRlZiBHZXRCdWZmZXJWYXJTdG9y ZURhdGFUeXBlTmFtZShzZWxmLCBWYXJTdG9yZUlkKToNCj4gKyAgICAgICAgRGF0YVR5cGVOYW1l ID0gTm9uZQ0KPiArICAgICAgICBpZiBWYXJTdG9yZUlkID09IEVGSV9WQVJTVE9SRV9JRF9JTlZB TElEOg0KPiArICAgICAgICAgICAgcmV0dXJuIERhdGFUeXBlTmFtZSwgVmZyUmV0dXJuQ29kZS5W RlJfUkVUVVJOX0ZBVEFMX0VSUk9SDQo+ICsNCj4gKyAgICAgICAgcE5vZGUgPSBzZWxmLkJ1ZmZl clZhclN0b3JlTGlzdA0KPiArICAgICAgICB3aGlsZSBwTm9kZSBpcyBub3QgTm9uZToNCj4gKyAg ICAgICAgICAgIGlmIHBOb2RlLlZhclN0b3JlSWQgPT0gVmFyU3RvcmVJZDoNCj4gKyAgICAgICAg ICAgICAgICBEYXRhVHlwZU5hbWUgPSBwTm9kZS5EYXRhVHlwZS5UeXBlTmFtZQ0KPiArICAgICAg ICAgICAgICAgIHJldHVybiBEYXRhVHlwZU5hbWUsIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9T VUNDRVNTDQo+ICsgICAgICAgICAgICBwTm9kZSA9IHBOb2RlLk5leHQNCj4gKw0KPiArICAgICAg ICByZXR1cm4gRGF0YVR5cGVOYW1lLCBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fVU5ERUZJTkVE DQo+ICsNCj4gKyAgICBkZWYgR2V0RWZpVmFyU3RvcmVJbmZvKHNlbGYsIEJhc2VJbmZvOiBFRklf VkFSU1RPUkVfSU5GTyk6DQo+ICsgICAgICAgIGlmIEJhc2VJbmZvIGlzIE5vbmU6DQo+ICsgICAg ICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0ZBVEFMX0VSUk9SDQo+ICsN Cj4gKyAgICAgICAgaWYgc2VsZi5DdXJyVmFyU3RvcmFnZU5vZGUgaXMgTm9uZToNCj4gKyAgICAg ICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fR0VUX0VGSVZBUlNUT1JFX0VS Uk9SDQo+ICsNCj4gKyAgICAgICAgQmFzZUluZm8uSW5mby5WYXJOYW1lID0gc2VsZi5DdXJyVmFy U3RvcmFnZU5vZGUuRWZpVmFyLkVmaVZhck5hbWUNCj4gKyAgICAgICAgQmFzZUluZm8uVmFyVG90 YWxTaXplID0gc2VsZi5DdXJyVmFyU3RvcmFnZU5vZGUuRWZpVmFyLkVmaVZhclNpemUNCj4gKw0K PiArICAgICAgICBpZiBCYXNlSW5mby5WYXJUb3RhbFNpemUgPT0gRUZJX0lGUl9UWVBFX05VTV84 X0JJVF9TSVpFOg0KPiArICAgICAgICAgICAgQmFzZUluZm8uVmFyVHlwZSA9IEVGSV9JRlJfVFlQ RV9OVU1fU0laRV84DQo+ICsgICAgICAgIGVsaWYgQmFzZUluZm8uVmFyVG90YWxTaXplID09IEVG SV9JRlJfVFlQRV9OVU1fMTZfQklUX1NJWkU6DQo+ICsgICAgICAgICAgICBCYXNlSW5mby5WYXJU eXBlID0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzE2DQo+ICsgICAgICAgIGVsaWYgQmFzZUluZm8u VmFyVG90YWxTaXplID09IEVGSV9JRlJfVFlQRV9OVU1fMzJfQklUX1NJWkU6DQo+ICsgICAgICAg ICAgICBCYXNlSW5mby5WYXJUeXBlID0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzMyDQo+ICsgICAg ICAgIGVsaWYgQmFzZUluZm8uVmFyVG90YWxTaXplID09IEVGSV9JRlJfVFlQRV9OVU1fNjRfQklU X1NJWkU6DQo+ICsgICAgICAgICAgICBCYXNlSW5mby5WYXJUeXBlID0gRUZJX0lGUl9UWVBFX05V TV9TSVpFXzY0DQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICByZXR1cm4gVmZyUmV0 dXJuQ29kZS5WRlJfUkVUVVJOX0ZBVEFMX0VSUk9SDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIFZm clJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+ICsNCj4gKyAgICBkZWYgR2V0VmFyU3Rv cmVHdWlkKHNlbGYsIFZhclN0b3JlSWQpOg0KPiArICAgICAgICBWYXJHdWlkID0gTm9uZQ0KPiAr ICAgICAgICBpZiBWYXJTdG9yZUlkID09IEVGSV9WQVJTVE9SRV9JRF9JTlZBTElEOg0KPiArICAg ICAgICAgICAgcmV0dXJuIFZhckd1aWQNCj4gKw0KPiArICAgICAgICBwTm9kZSA9IHNlbGYuQnVm ZmVyVmFyU3RvcmVMaXN0DQo+ICsgICAgICAgIHdoaWxlIHBOb2RlIGlzIG5vdCBOb25lOg0KPiAr ICAgICAgICAgICAgaWYgcE5vZGUuVmFyU3RvcmVJZCA9PSBWYXJTdG9yZUlkOg0KPiArICAgICAg ICAgICAgICAgIFZhckd1aWQgPSBwTm9kZS5HdWlkDQo+ICsgICAgICAgICAgICAgICAgcmV0dXJu IFZhckd1aWQNCj4gKyAgICAgICAgICAgIHBOb2RlID0gcE5vZGUuTmV4dA0KPiArDQo+ICsgICAg ICAgIHBOb2RlID0gc2VsZi5FZmlWYXJTdG9yZUxpc3QNCj4gKyAgICAgICAgd2hpbGUgcE5vZGUg aXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICBpZiBwTm9kZS5WYXJTdG9yZUlkID09IFZhclN0 b3JlSWQ6DQo+ICsgICAgICAgICAgICAgICAgVmFyR3VpZCA9IHBOb2RlLkd1aWQNCj4gKyAgICAg ICAgICAgICAgICByZXR1cm4gVmFyR3VpZA0KPiArICAgICAgICAgICAgcE5vZGUgPSBwTm9kZS5O ZXh0DQo+ICsNCj4gKyAgICAgICAgcE5vZGUgPSBzZWxmLk5hbWVWYXJTdG9yZUxpc3QNCj4gKyAg ICAgICAgd2hpbGUgcE5vZGUgaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICBpZiBwTm9kZS5W YXJTdG9yZUlkID09IFZhclN0b3JlSWQ6DQo+ICsgICAgICAgICAgICAgICAgVmFyR3VpZCA9IHBO b2RlLkd1aWQNCj4gKyAgICAgICAgICAgICAgICByZXR1cm4gVmFyR3VpZA0KPiArICAgICAgICAg ICAgcE5vZGUgPSBwTm9kZS5OZXh0DQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIFZhckd1aWQNCj4g Kw0KPiArICAgIGRlZiBBZGRCdWZmZXJWYXJTdG9yZUZpZWxkSW5mbyhzZWxmLCBCYXNlSW5mbzog RUZJX1ZBUlNUT1JFX0lORk8pOg0KPiArICAgICAgICBwTmV3ID0gQnVmZmVyVmFyU3RvcmVGaWVs ZEluZm9Ob2RlKEJhc2VJbmZvKQ0KPiArICAgICAgICBpZiBwTmV3IGlzIE5vbmU6DQo+ICsgICAg ICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0ZBVEFMX0VSUk9SDQo+ICsN Cj4gKyAgICAgICAgaWYgc2VsZi5CdWZmZXJGaWVsZEluZm9MaXN0SGVhZCBpcyBOb25lOg0KPiAr ICAgICAgICAgICAgc2VsZi5CdWZmZXJGaWVsZEluZm9MaXN0SGVhZCA9IHBOZXcNCj4gKyAgICAg ICAgICAgIHNlbGYubUJ1ZmZlckZpZWxkSW5mb0xpc3RUYWlsID0gcE5ldw0KPiArICAgICAgICBl bHNlOg0KPiArICAgICAgICAgICAgc2VsZi5tQnVmZmVyRmllbGRJbmZvTGlzdFRhaWwuTmV4dCA9 IHBOZXcNCj4gKyAgICAgICAgICAgIHNlbGYubUJ1ZmZlckZpZWxkSW5mb0xpc3RUYWlsID0gcE5l dw0KPiArDQo+ICsgICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VT Uw0KPiArDQo+ICsNCj4gK2NsYXNzIFZmclN0cmluZ0RCOg0KPiArICAgIGRlZiBfX2luaXRfXyhz ZWxmKToNCj4gKyAgICAgICAgc2VsZi5TdHJpbmdGaWxlTmFtZSA9IE5vbmUNCj4gKw0KPiArICAg IGRlZiBTZXRTdHJpbmdGaWxlTmFtZShzZWxmLCBTdHJpbmdGaWxlTmFtZSk6DQo+ICsgICAgICAg IHNlbGYuU3RyaW5nRmlsZU5hbWUgPSBTdHJpbmdGaWxlTmFtZQ0KPiArDQo+ICsgICAgZGVmIEdl dEJlc3RMYW5ndWFnZShzZWxmLCBTdXBwb3J0ZWRMYW5ndWFnZXMsIExhbmd1YWdlKToNCj4gKyAg ICAgICAgaWYgU3VwcG9ydGVkTGFuZ3VhZ2VzIGlzIE5vbmUgb3IgTGFuZ3VhZ2UgaXMgTm9uZToN Cj4gKyAgICAgICAgICAgIHJldHVybiBGYWxzZQ0KPiArDQo+ICsgICAgICAgIExhbmd1YWdlTGVu Z3RoID0gMA0KPiArICAgICAgICAjIERldGVybWluZSB0aGUgbGVuZ3RoIG9mIHRoZSBmaXJzdCBS RkMgNDY0NiBsYW5ndWFnZSBjb2RlIGluIExhbmd1YWdlDQo+ICsgICAgICAgIHdoaWxlIExhbmd1 YWdlTGVuZ3RoIDwgbGVuKExhbmd1YWdlKSBhbmQNCj4gTGFuZ3VhZ2VbTGFuZ3VhZ2VMZW5ndGhd ICE9IDAgYW5kIExhbmd1YWdlW0xhbmd1YWdlTGVuZ3RoXSAhPSAiOyI6DQo+ICsgICAgICAgICAg ICBMYW5ndWFnZUxlbmd0aCArPSAxDQo+ICsNCj4gKyAgICAgICAgU3VwcG9ydGVkID0gU3VwcG9y dGVkTGFuZ3VhZ2VzDQo+ICsgICAgICAgICMgVHJpbSBiYWNrIHRoZSBsZW5ndGggb2YgTGFuZ3Vh Z2UgdXNlZCB1bnRpbCBpdCBpcyBlbXB0eQ0KPiArICAgICAgICB3aGlsZSBMYW5ndWFnZUxlbmd0 aCA+IDA6DQo+ICsgICAgICAgICAgICAjIExvb3AgdGhyb3VnaCBhbGwgbGFuZ3VhZ2UgY29kZXMg aW4gU3VwcG9ydGVkTGFuZ3VhZ2VzDQo+ICsgICAgICAgICAgICB3aGlsZSBsZW4oU3VwcG9ydGVk KSA+IDA6DQo+ICsgICAgICAgICAgICAgICAgIyBTa2lwICc7JyBjaGFyYWN0ZXJzIGluIFN1cHBv cnRlZA0KPiArICAgICAgICAgICAgICAgIHdoaWxlIGxlbihTdXBwb3J0ZWQpID4gMCBhbmQgU3Vw cG9ydGVkWzBdID09ICI7IjoNCj4gKyAgICAgICAgICAgICAgICAgICAgU3VwcG9ydGVkID0gU3Vw cG9ydGVkWzE6XQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgQ29tcGFyZUxlbmd0aCA9IDANCj4g KyAgICAgICAgICAgICAgICAjIERldGVybWluZSB0aGUgbGVuZ3RoIG9mIHRoZSBuZXh0IGxhbmd1 YWdlIGNvZGUgaW4gU3VwcG9ydGVkDQo+ICsgICAgICAgICAgICAgICAgd2hpbGUgQ29tcGFyZUxl bmd0aCA8IGxlbihTdXBwb3J0ZWQpIGFuZA0KPiBTdXBwb3J0ZWRbQ29tcGFyZUxlbmd0aF0gIT0g MCBhbmQgU3VwcG9ydGVkW0NvbXBhcmVMZW5ndGhdICE9ICI7IjoNCj4gKyAgICAgICAgICAgICAg ICAgICAgQ29tcGFyZUxlbmd0aCArPSAxDQo+ICsNCj4gKyAgICAgICAgICAgICAgICAjIElmIExh bmd1YWdlIGlzIGxvbmdlciB0aGFuIHRoZSBTdXBwb3J0ZWQsIHRoZW4gc2tpcCB0byB0aGUgbmV4 dA0KPiBsYW5ndWFnZQ0KPiArICAgICAgICAgICAgICAgIGlmIExhbmd1YWdlTGVuZ3RoID4gQ29t cGFyZUxlbmd0aDoNCj4gKyAgICAgICAgICAgICAgICAgICAgY29udGludWUNCj4gKw0KPiArICAg ICAgICAgICAgICAgICMgU2VlIGlmIHRoZSBmaXJzdCBMYW5ndWFnZUxlbmd0aCBjaGFyYWN0ZXJz IGluIFN1cHBvcnRlZCBtYXRjaA0KPiBMYW5ndWFnZQ0KPiArICAgICAgICAgICAgICAgIGlmIFN1 cHBvcnRlZFs6TGFuZ3VhZ2VMZW5ndGhdID09IExhbmd1YWdlOg0KPiArICAgICAgICAgICAgICAg ICAgICByZXR1cm4gVHJ1ZQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgU3VwcG9ydGVkID0gU3Vw cG9ydGVkW0NvbXBhcmVMZW5ndGg6XQ0KPiArDQo+ICsgICAgICAgICAgICAjIFRyaW0gTGFuZ3Vh Z2UgZnJvbSB0aGUgcmlnaHQgdG8gdGhlIG5leHQgJy0nIGNoYXJhY3Rlcg0KPiArICAgICAgICAg ICAgTGFuZ3VhZ2VMZW5ndGggLT0gMQ0KPiArICAgICAgICAgICAgd2hpbGUgTGFuZ3VhZ2VMZW5n dGggPiAwIGFuZCBMYW5ndWFnZVtMYW5ndWFnZUxlbmd0aF0gIT0gIi0iOg0KPiArICAgICAgICAg ICAgICAgIExhbmd1YWdlTGVuZ3RoIC09IDENCj4gKw0KPiArICAgICAgICAjIE5vIG1hdGNoZXMg d2VyZSBmb3VuZA0KPiArICAgICAgICByZXR1cm4gRmFsc2UNCj4gKw0KPiArICAgIGRlZiBHZXRV bmljb2RlU3RyaW5nVGV4dFNpemUoc2VsZiwgU3RyaW5nU3JjKToNCj4gKyAgICAgICAgU3RyaW5n U2l6ZSA9IHNpemVvZihjX3VzaG9ydCkNCj4gKyAgICAgICAgU3RyaW5nU3RyID0gY2FzdChTdHJp bmdTcmMsIFBPSU5URVIoY191c2hvcnQpKQ0KPiArDQo+ICsgICAgICAgIHdoaWxlIFN0cmluZ1N0 ci5jb250ZW50cy52YWx1ZSAhPSAiXDAiOg0KPiArICAgICAgICAgICAgU3RyaW5nU2l6ZSArPSBz aXplb2YoY191c2hvcnQpDQo+ICsgICAgICAgICAgICBTdHJpbmdTdHIgPSBjYXN0KGFkZHJlc3Nv ZihTdHJpbmdTdHIuY29udGVudHMpICsgc2l6ZW9mKGNfdXNob3J0KSwNCj4gUE9JTlRFUihjX3Vz aG9ydCkpDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIFN0cmluZ1NpemUNCj4gKw0KPiArICAgIGRl ZiBGaW5kU3RyaW5nQmxvY2soc2VsZiwgc3RyaW5nX2RhdGEsIHN0cmluZ19pZCk6DQo+ICsgICAg ICAgIGN1cnJlbnRfc3RyaW5nX2lkID0gMQ0KPiArICAgICAgICBibG9ja19oZHIgPSBzdHJpbmdf ZGF0YQ0KPiArICAgICAgICBibG9ja19zaXplID0gMA0KPiArICAgICAgICBvZmZzZXQgPSAwDQo+ ICsNCj4gKyAgICAgICAgd2hpbGUgYmxvY2tfaGRyWzBdICE9IEVGSV9ISUlfU0lCVF9FTkQ6DQo+ ICsgICAgICAgICAgICBibG9ja190eXBlID0gYmxvY2tfaGRyWzBdDQo+ICsNCj4gKyAgICAgICAg ICAgIGlmIGJsb2NrX3R5cGUgPT0gRUZJX0hJSV9TSUJUX1NUUklOR19TQ1NVOg0KPiArICAgICAg ICAgICAgICAgIG9mZnNldCA9IHNpemVvZihFRklfSElJX1NUUklOR19CTE9DSykNCj4gKyAgICAg ICAgICAgICAgICBzdHJpbmdfdGV4dF9wdHIgPSBibG9ja19oZHIgKyBvZmZzZXQNCj4gKyAgICAg ICAgICAgICAgICBibG9ja19zaXplICs9IG9mZnNldCArIGxlbihzdHIoc3RyaW5nX3RleHRfcHRy KSkgKyAxDQo+ICsgICAgICAgICAgICAgICAgY3VycmVudF9zdHJpbmdfaWQgKz0gMQ0KPiArDQo+ ICsgICAgICAgICAgICBlbGlmIGJsb2NrX3R5cGUgPT0gRUZJX0hJSV9TSUJUX1NUUklOR19TQ1NV X0ZPTlQ6DQo+ICsgICAgICAgICAgICAgICAgb2Zmc2V0ID0gc2l6ZW9mKEVGSV9ISUlfU0lCVF9T VFJJTkdfU0NTVV9GT05UX0JMT0NLKSAtDQo+IHNpemVvZihjX3VpbnQ4KQ0KPiArICAgICAgICAg ICAgICAgIHN0cmluZ190ZXh0X3B0ciA9IGJsb2NrX2hkciArIG9mZnNldA0KPiArICAgICAgICAg ICAgICAgIGJsb2NrX3NpemUgKz0gb2Zmc2V0ICsgbGVuKHN0cihzdHJpbmdfdGV4dF9wdHIpKSAr IDENCj4gKyAgICAgICAgICAgICAgICBjdXJyZW50X3N0cmluZ19pZCArPSAxDQo+ICsNCj4gKyAg ICAgICAgICAgIGVsaWYgYmxvY2tfdHlwZSA9PSBFRklfSElJX1NJQlRfU1RSSU5HU19TQ1NVOg0K PiArICAgICAgICAgICAgICAgIHN0cmluZ19jb3VudCA9IGludC5mcm9tX2J5dGVzKA0KPiArICAg ICAgICAgICAgICAgICAgICBibG9ja19oZHJbc2l6ZW9mKEVGSV9ISUlfU1RSSU5HX0JMT0NLKSA6 DQo+IHNpemVvZihFRklfSElJX1NUUklOR19CTE9DSykgKyBzaXplb2YoY191aW50MTYpXSwNCj4g KyAgICAgICAgICAgICAgICAgICAgYnl0ZW9yZGVyPSJsaXR0bGUiLA0KPiArICAgICAgICAgICAg ICAgICkNCj4gKyAgICAgICAgICAgICAgICBzdHJpbmdfdGV4dF9wdHIgPSBibG9ja19oZHIgKw0K PiBzaXplb2YoRUZJX0hJSV9TSUJUX1NUUklOR1NfU0NTVV9CTE9DSykgLSBzaXplb2YoY191aW50 OCkNCj4gKyAgICAgICAgICAgICAgICBibG9ja19zaXplICs9IHN0cmluZ190ZXh0X3B0ciAtIGJs b2NrX2hkcg0KPiArDQo+ICsgICAgICAgICAgICAgICAgZm9yIF8gaW4gcmFuZ2Uoc3RyaW5nX2Nv dW50KToNCj4gKyAgICAgICAgICAgICAgICAgICAgYmxvY2tfc2l6ZSArPSBsZW4oc3RyKHN0cmlu Z190ZXh0X3B0cikpICsgMQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIGN1cnJlbnRf c3RyaW5nX2lkID09IHN0cmluZ19pZDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGJsb2Nr X3R5cGUgPSBibG9ja19oZHJbMF0NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ190 ZXh0X29mZnNldCA9IHN0cmluZ190ZXh0X3B0ciAtIHN0cmluZ19kYXRhDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gRUZJX1NVQ0NFU1MNCj4gKw0KPiArICAgICAgICAgICAgICAg ICAgICBzdHJpbmdfdGV4dF9wdHIgPSBzdHJpbmdfdGV4dF9wdHIgKyBsZW4oc3RyKHN0cmluZ190 ZXh0X3B0cikpICsgMQ0KPiArICAgICAgICAgICAgICAgICAgICBjdXJyZW50X3N0cmluZ19pZCAr PSAxDQo+ICsNCj4gKyAgICAgICAgICAgIGVsaWYgYmxvY2tfdHlwZSA9PSBFRklfSElJX1NJQlRf U1RSSU5HU19TQ1NVX0ZPTlQ6DQo+ICsgICAgICAgICAgICAgICAgc3RyaW5nX2NvdW50ID0gaW50 LmZyb21fYnl0ZXMoDQo+ICsgICAgICAgICAgICAgICAgICAgIGJsb2NrX2hkcltzaXplb2YoRUZJ X0hJSV9TVFJJTkdfQkxPQ0spICsgc2l6ZW9mKGNfdWludDgpIDoNCj4gc2l6ZW9mKEVGSV9ISUlf U1RSSU5HX0JMT0NLKSArIHNpemVvZihjX3VpbnQ4KSArIHNpemVvZihjX3VpbnQxNildLA0KPiAr ICAgICAgICAgICAgICAgICAgICBieXRlb3JkZXI9ImxpdHRsZSIsDQo+ICsgICAgICAgICAgICAg ICAgKQ0KPiArICAgICAgICAgICAgICAgIHN0cmluZ190ZXh0X3B0ciA9IGJsb2NrX2hkciArDQo+ IHNpemVvZihFRklfSElJX1NJQlRfU1RSSU5HU19TQ1NVX0ZPTlRfQkxPQ0spIC0gc2l6ZW9mKGNf dWludDgpDQo+ICsgICAgICAgICAgICAgICAgYmxvY2tfc2l6ZSArPSBzdHJpbmdfdGV4dF9wdHIg LSBibG9ja19oZHINCj4gKw0KPiArICAgICAgICAgICAgICAgIGZvciBfIGluIHJhbmdlKHN0cmlu Z19jb3VudCk6DQo+ICsgICAgICAgICAgICAgICAgICAgIGJsb2NrX3NpemUgKz0gbGVuKHN0cihz dHJpbmdfdGV4dF9wdHIpKSArIDENCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBpZiBjdXJy ZW50X3N0cmluZ19pZCA9PSBzdHJpbmdfaWQ6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBi bG9ja190eXBlID0gYmxvY2tfaGRyWzBdDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBzdHJp bmdfdGV4dF9vZmZzZXQgPSBzdHJpbmdfdGV4dF9wdHIgLSBzdHJpbmdfZGF0YQ0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIEVGSV9TVUNDRVNTDQo+ICsNCj4gKyAgICAgICAgICAg ICAgICAgICAgc3RyaW5nX3RleHRfcHRyID0gc3RyaW5nX3RleHRfcHRyICsgbGVuKHN0cihzdHJp bmdfdGV4dF9wdHIpKSArIDENCj4gKyAgICAgICAgICAgICAgICAgICAgY3VycmVudF9zdHJpbmdf aWQgKz0gMQ0KPiArDQo+ICsgICAgICAgICAgICBlbGlmIGJsb2NrX3R5cGUgPT0gRUZJX0hJSV9T SUJUX1NUUklOR19VQ1MyOg0KPiArICAgICAgICAgICAgICAgIG9mZnNldCA9IHNpemVvZihFRklf SElJX1NUUklOR19CTE9DSykNCj4gKyAgICAgICAgICAgICAgICBzdHJpbmdfdGV4dF9wdHIgPSBi bG9ja19oZHIgKyBvZmZzZXQNCj4gKyAgICAgICAgICAgICAgICBzdHJpbmdfc2l6ZSA9IHNlbGYu R2V0VW5pY29kZVN0cmluZ1RleHRTaXplKHN0cmluZ190ZXh0X3B0cikNCj4gKyAgICAgICAgICAg ICAgICBibG9ja19zaXplICs9IG9mZnNldCArIHN0cmluZ19zaXplDQo+ICsgICAgICAgICAgICAg ICAgY3VycmVudF9zdHJpbmdfaWQgKz0gMQ0KPiArDQo+ICsgICAgICAgICAgICBlbGlmIGJsb2Nr X3R5cGUgPT0gRUZJX0hJSV9TSUJUX1NUUklOR19VQ1MyX0ZPTlQ6DQo+ICsgICAgICAgICAgICAg ICAgb2Zmc2V0ID0gc2l6ZW9mKEVGSV9ISUlfU0lCVF9TVFJJTkdfVUNTMl9GT05UX0JMT0NLKSAt DQo+IHNpemVvZihjX3VzaG9ydCkNCj4gKyAgICAgICAgICAgICAgICBzdHJpbmdfdGV4dF9wdHIg PSBibG9ja19oZHIgKyBvZmZzZXQNCj4gKyAgICAgICAgICAgICAgICBzdHJpbmdfc2l6ZSA9IHNl bGYuR2V0VW5pY29kZVN0cmluZ1RleHRTaXplKHN0cmluZ190ZXh0X3B0cikNCj4gKyAgICAgICAg ICAgICAgICBibG9ja19zaXplICs9IG9mZnNldCArIHN0cmluZ19zaXplDQo+ICsgICAgICAgICAg ICAgICAgY3VycmVudF9zdHJpbmdfaWQgKz0gMQ0KPiArDQo+ICsgICAgICAgICAgICBlbGlmIGJs b2NrX3R5cGUgPT0gRUZJX0hJSV9TSUJUX1NUUklOR1NfVUNTMjoNCj4gKyAgICAgICAgICAgICAg ICBvZmZzZXQgPSBsZW4oRUZJX0hJSV9TSUJUX1NUUklOR1NfVUNTMl9CTE9DSykgLSBsZW4oY191 c2hvcnQpDQo+ICsgICAgICAgICAgICAgICAgc3RyaW5nX3RleHRfcHRyID0gYmxvY2tfaGRyICsg b2Zmc2V0DQo+ICsgICAgICAgICAgICAgICAgYmxvY2tfc2l6ZSArPSBvZmZzZXQNCj4gKyAgICAg ICAgICAgICAgICBzdHJpbmdfY291bnQgPSBpbnQuZnJvbV9ieXRlcygNCj4gKyAgICAgICAgICAg ICAgICAgICAgYmxvY2tfaGRyW3NpemVvZihFRklfSElJX1NUUklOR19CTE9DSykgOg0KPiBzaXpl b2YoRUZJX0hJSV9TVFJJTkdfQkxPQ0spICsgc2l6ZW9mKGNfdWludDE2KV0sDQo+ICsgICAgICAg ICAgICAgICAgICAgIGJ5dGVvcmRlcj0ibGl0dGxlIiwNCj4gKyAgICAgICAgICAgICAgICApDQo+ ICsNCj4gKyAgICAgICAgICAgICAgICBmb3IgXyBpbiByYW5nZShzdHJpbmdfY291bnQpOg0KPiAr ICAgICAgICAgICAgICAgICAgICBzdHJpbmdfc2l6ZSA9IHNlbGYuR2V0VW5pY29kZVN0cmluZ1Rl eHRTaXplKHN0cmluZ190ZXh0X3B0cikNCj4gKyAgICAgICAgICAgICAgICAgICAgYmxvY2tfc2l6 ZSArPSBzdHJpbmdfc2l6ZQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIGN1cnJlbnRf c3RyaW5nX2lkID09IHN0cmluZ19pZDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGJsb2Nr X3R5cGUgPSBibG9ja19oZHJbMF0NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ190 ZXh0X29mZnNldCA9IHN0cmluZ190ZXh0X3B0ciAtIHN0cmluZ19kYXRhDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gRUZJX1NVQ0NFU1MNCj4gKw0KPiArICAgICAgICAgICAgICAg ICAgICBzdHJpbmdfdGV4dF9wdHIgPSBzdHJpbmdfdGV4dF9wdHIgKyBzdHJpbmdfc2l6ZQ0KPiAr ICAgICAgICAgICAgICAgICAgICBjdXJyZW50X3N0cmluZ19pZCArPSAxDQo+ICsNCj4gKyAgICAg ICAgICAgIGVsaWYgYmxvY2tfdHlwZSA9PSBFRklfSElJX1NJQlRfU1RSSU5HU19VQ1MyX0ZPTlQ6 DQo+ICsgICAgICAgICAgICAgICAgb2Zmc2V0ID0gbGVuKEVGSV9ISUlfU0lCVF9TVFJJTkdTX1VD UzJfRk9OVF9CTE9DSykgLQ0KPiBsZW4oY191c2hvcnQpDQo+ICsgICAgICAgICAgICAgICAgc3Ry aW5nX3RleHRfcHRyID0gYmxvY2tfaGRyICsgb2Zmc2V0DQo+ICsgICAgICAgICAgICAgICAgYmxv Y2tfc2l6ZSArPSBvZmZzZXQNCj4gKyAgICAgICAgICAgICAgICBzdHJpbmdfY291bnQgPSBpbnQu ZnJvbV9ieXRlcygNCj4gKyAgICAgICAgICAgICAgICAgICAgYmxvY2tfaGRyW3NpemVvZihFRklf SElJX1NUUklOR19CTE9DSykgKyBzaXplb2YoY191aW50OCkgOg0KPiBzaXplb2YoRUZJX0hJSV9T VFJJTkdfQkxPQ0spICsgc2l6ZW9mKGNfdWludDgpICsgc2l6ZW9mKGNfdWludDE2KV0sDQo+ICsg ICAgICAgICAgICAgICAgICAgIGJ5dGVvcmRlcj0ibGl0dGxlIiwNCj4gKyAgICAgICAgICAgICAg ICApDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBmb3IgXyBpbiByYW5nZShzdHJpbmdfY291bnQp Og0KPiArICAgICAgICAgICAgICAgICAgICBzdHJpbmdfc2l6ZSA9IHNlbGYuR2V0VW5pY29kZVN0 cmluZ1RleHRTaXplKHN0cmluZ190ZXh0X3B0cikNCj4gKyAgICAgICAgICAgICAgICAgICAgYmxv Y2tfc2l6ZSArPSBzdHJpbmdfc2l6ZQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIGN1 cnJlbnRfc3RyaW5nX2lkID09IHN0cmluZ19pZDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg IGJsb2NrX3R5cGUgPSBibG9ja19oZHJbMF0NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHN0 cmluZ190ZXh0X29mZnNldCA9IHN0cmluZ190ZXh0X3B0ciAtIHN0cmluZ19kYXRhDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gRUZJX1NVQ0NFU1MNCj4gKw0KPiArICAgICAgICAg ICAgICAgICAgICBzdHJpbmdfdGV4dF9wdHIgPSBzdHJpbmdfdGV4dF9wdHIgKyBzdHJpbmdfc2l6 ZQ0KPiArICAgICAgICAgICAgICAgICAgICBjdXJyZW50X3N0cmluZ19pZCArPSAxDQo+ICsNCj4g KyAgICAgICAgICAgIGVsaWYgYmxvY2tfdHlwZSA9PSBFRklfSElJX1NJQlRfRFVQTElDQVRFOg0K PiArICAgICAgICAgICAgICAgIGlmIGN1cnJlbnRfc3RyaW5nX2lkID09IHN0cmluZ19pZDoNCj4g KyAgICAgICAgICAgICAgICAgICAgc3RyaW5nX2lkID0gaW50LmZyb21fYnl0ZXMoDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICBibG9ja19oZHJbc2l6ZW9mKEVGSV9ISUlfU1RSSU5HX0JMT0NL KSA6DQo+IHNpemVvZihFRklfSElJX1NUUklOR19CTE9DSykgKyBzaXplb2YoY191aW50MTYpXSwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVvcmRlcj0ibGl0dGxlIiwNCj4gKyAgICAg ICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAgICAgICBjdXJyZW50X3N0cmluZ19p ZCA9IDENCj4gKyAgICAgICAgICAgICAgICAgICAgYmxvY2tfc2l6ZSA9IDANCj4gKyAgICAgICAg ICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgICAgICBibG9ja19zaXplICs9IHNpemVv ZihFRklfSElJX1NJQlRfRFVQTElDQVRFX0JMT0NLKQ0KPiArICAgICAgICAgICAgICAgICAgICBj dXJyZW50X3N0cmluZ19pZCArPSAxDQo+ICsNCj4gKyAgICAgICAgICAgIGVsaWYgYmxvY2tfdHlw ZSA9PSBFRklfSElJX1NJQlRfU0tJUDE6DQo+ICsgICAgICAgICAgICAgICAgc2tpcF9jb3VudCA9 DQo+IGludC5mcm9tX2J5dGVzKGJsb2NrX2hkcltzaXplb2YoRUZJX0hJSV9TVFJJTkdfQkxPQ0sp XSwgYnl0ZW9yZGVyPSJsaXR0bGUiKQ0KPiArICAgICAgICAgICAgICAgIGN1cnJlbnRfc3RyaW5n X2lkICs9IHNraXBfY291bnQNCj4gKyAgICAgICAgICAgICAgICBibG9ja19zaXplICs9IHNpemVv ZihFRklfSElJX1NJQlRfU0tJUDFfQkxPQ0spDQo+ICsNCj4gKyAgICAgICAgICAgIGVsaWYgYmxv Y2tfdHlwZSA9PSBFRklfSElJX1NJQlRfU0tJUDI6DQo+ICsgICAgICAgICAgICAgICAgc2tpcF9j b3VudCA9IGludC5mcm9tX2J5dGVzKA0KPiArICAgICAgICAgICAgICAgICAgICBibG9ja19oZHJb c2l6ZW9mKEVGSV9ISUlfU1RSSU5HX0JMT0NLKSA6DQo+IHNpemVvZihFRklfSElJX1NUUklOR19C TE9DSykgKyBzaXplb2YoY191aW50MTYpXSwNCj4gKyAgICAgICAgICAgICAgICAgICAgYnl0ZW9y ZGVyPSJsaXR0bGUiLA0KPiArICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICBj dXJyZW50X3N0cmluZ19pZCArPSBza2lwX2NvdW50DQo+ICsgICAgICAgICAgICAgICAgYmxvY2tf c2l6ZSArPSBzaXplb2YoRUZJX0hJSV9TSUJUX1NLSVAyX0JMT0NLKQ0KPiArDQo+ICsgICAgICAg ICAgICBlbGlmIGJsb2NrX3R5cGUgPT0gRUZJX0hJSV9TSUJUX0VYVDE6DQo+ICsgICAgICAgICAg ICAgICAgbGVuZ3RoOCA9IGludC5mcm9tX2J5dGVzKA0KPiArICAgICAgICAgICAgICAgICAgICBi bG9ja19oZHJbc2l6ZW9mKEVGSV9ISUlfU1RSSU5HX0JMT0NLKSArIHNpemVvZihjX3VpbnQ4KSA6 DQo+IHNpemVvZihFRklfSElJX1NUUklOR19CTE9DSykgKyBzaXplb2YoY191aW50OCkgKyBzaXpl b2YoY191aW50OCldLA0KPiArICAgICAgICAgICAgICAgICAgICBieXRlb3JkZXI9ImxpdHRsZSIs DQo+ICsgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAgIGJsb2NrX3NpemUgKz0g bGVuZ3RoOA0KPiArDQo+ICsgICAgICAgICAgICBlbGlmIGJsb2NrX3R5cGUgPT0gRUZJX0hJSV9T SUJUX0VYVDI6DQo+ICsgICAgICAgICAgICAgICAgbGVuZ3RoMzIgPSBpbnQuZnJvbV9ieXRlcygN Cj4gKyAgICAgICAgICAgICAgICAgICAgYmxvY2tfaGRyW3NpemVvZihFRklfSElJX1NUUklOR19C TE9DSykgKyBzaXplb2YoY191aW50OCkgOg0KPiBzaXplb2YoRUZJX0hJSV9TVFJJTkdfQkxPQ0sp ICsgc2l6ZW9mKGNfdWludDgpICsgc2l6ZW9mKGNfdWludDMyKV0sDQo+ICsgICAgICAgICAgICAg ICAgICAgIGJ5dGVvcmRlcj0ibGl0dGxlIiwNCj4gKyAgICAgICAgICAgICAgICApDQo+ICsgICAg ICAgICAgICAgICAgYmxvY2tfc2l6ZSArPSBsZW5ndGgzMg0KPiArDQo+ICsgICAgICAgICAgICBp ZiBzdHJpbmdfaWQgPiAwIGFuZCBzdHJpbmdfaWQgIT0gKGNfdWludDE2KSgtMSk6DQo+ICsgICAg ICAgICAgICAgICAgYmxvY2tfdHlwZSA9IGJsb2NrX2hkclswXQ0KPiArDQo+ICsgICAgICAgICAg ICAgICAgaWYgc3RyaW5nX2lkID09IGN1cnJlbnRfc3RyaW5nX2lkIC0gMToNCj4gKyAgICAgICAg ICAgICAgICAgICAgaWYgYmxvY2tfdHlwZSBpbiAoRUZJX0hJSV9TSUJUX1NLSVAyLCBFRklfSElJ X1NJQlRfU0tJUDEpOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVGSV9OT1Rf Rk9VTkQNCj4gKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVGSV9TVUNDRVNTDQo+ICsNCj4g KyAgICAgICAgICAgICAgICBpZiBzdHJpbmdfaWQgPCBjdXJyZW50X3N0cmluZ19pZCAtIDE6DQo+ ICsgICAgICAgICAgICAgICAgICAgIHJldHVybiBFRklfTk9UX0ZPVU5EDQo+ICsNCj4gKyAgICAg ICAgICAgIGJsb2NrX2hkciA9IHN0cmluZ19kYXRhICsgYmxvY2tfc2l6ZQ0KPiArDQo+ICsgICAg ICAgIHJldHVybiBFRklfTk9UX0ZPVU5EDQo+ICsNCj4gKyAgICBkZWYgR2V0VmFyU3RvcmVOYW1l Rm9ybVN0cmluZ0lkKHNlbGYsIFN0cmluZ0lkKToNCj4gKyAgICAgICAgcEluRmlsZSA9IE5vbmUN Cj4gKyAgICAgICAgTmFtZU9mZnNldCA9IDANCj4gKyAgICAgICAgTGVuZ3RoID0gMA0KPiArICAg ICAgICBTdHJpbmdQdHIgPSBOb25lDQo+ICsgICAgICAgIFN0cmluZ05hbWUgPSBOb25lDQo+ICsg ICAgICAgIFVuaWNvZGVTdHJpbmcgPSBOb25lDQo+ICsgICAgICAgIFZhclN0b3JlTmFtZSA9IE5v bmUNCj4gKyAgICAgICAgRGVzdFRtcCA9IE5vbmUNCj4gKyAgICAgICAgQ3VycmVudCA9IE5vbmUN Cj4gKyAgICAgICAgU3RhdHVzID0gTm9uZQ0KPiArICAgICAgICBCbG9ja1R5cGUgPSAwDQo+ICsg ICAgICAgIFBrZ0hlYWRlciA9IE5vbmUNCj4gKw0KPiArICAgICAgICBpZiBzZWxmLlN0cmluZ0Zp bGVOYW1lIGlzIE5vbmU6DQo+ICsgICAgICAgICAgICByZXR1cm4gTm9uZQ0KPiArDQo+ICsgICAg ICAgIHRyeToNCj4gKyAgICAgICAgICAgIHdpdGggb3BlbihMb25nRmlsZVBhdGgoc2VsZi5TdHJp bmdGaWxlTmFtZSksICJyYiIpIGFzIHBJbkZpbGU6DQo+ICsgICAgICAgICAgICAgICAgIyBHZXQg ZmlsZSBsZW5ndGgNCj4gKyAgICAgICAgICAgICAgICBwSW5GaWxlLnNlZWsoMCwgb3MuU0VFS19F TkQpDQo+ICsgICAgICAgICAgICAgICAgTGVuZ3RoID0gcEluRmlsZS50ZWxsKCkNCj4gKyAgICAg ICAgICAgICAgICBwSW5GaWxlLnNlZWsoMCwgb3MuU0VFS19TRVQpDQo+ICsNCj4gKyAgICAgICAg ICAgICAgICAjIEdldCBmaWxlIGRhdGENCj4gKyAgICAgICAgICAgICAgICBTdHJpbmdQdHIgPSBi eXRlYXJyYXkocEluRmlsZS5yZWFkKCkpDQo+ICsgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246DQo+ ICsgICAgICAgICAgICByZXR1cm4gTm9uZQ0KPiArDQo+ICsgICAgICAgIFBrZ0hlYWRlciA9IEVG SV9ISUlfU1RSSU5HX1BBQ0tBR0VfSERSLmZyb21fYnVmZmVyKFN0cmluZ1B0cikNCj4gKw0KPiAr ICAgICAgICAjIENoZWNrIHRoZSBTdHJpbmcgcGFja2FnZQ0KPiArICAgICAgICBpZiBQa2dIZWFk ZXIuSGVhZGVyLlR5cGUgIT0gRUZJX0hJSV9QQUNLQUdFX1NUUklOR1M6DQo+ICsgICAgICAgICAg ICByZXR1cm4gTm9uZQ0KPiArDQo+ICsgICAgICAgICMgU2VhcmNoIHRoZSBsYW5ndWFnZSwgZ2V0 IGJlc3QgbGFuZ3VhZ2UgYmFzZWQgb24gUkZDIDQ2NDcgbWF0Y2hpbmcNCj4gYWxnb3JpdGhtDQo+ ICsgICAgICAgIEN1cnJlbnQgPSBTdHJpbmdQdHINCj4gKyAgICAgICAgd2hpbGUgbm90IHNlbGYu R2V0QmVzdExhbmd1YWdlKCJlbiIsIFBrZ0hlYWRlci5MYW5ndWFnZSk6DQo+ICsgICAgICAgICAg ICBDdXJyZW50ICs9IFBrZ0hlYWRlci5IZWFkZXIuTGVuZ3RoDQo+ICsgICAgICAgICAgICBQa2dI ZWFkZXIgPSBFRklfSElJX1NUUklOR19QQUNLQUdFX0hEUi5mcm9tX2J1ZmZlcihDdXJyZW50KQ0K PiArDQo+ICsgICAgICAgICAgICAjIElmIGNhbid0IGZpbmQgc3RyaW5nIHBhY2thZ2UgYmFzZWQg b24gbGFuZ3VhZ2UsIGp1c3QgcmV0dXJuIHRoZSBmaXJzdA0KPiBzdHJpbmcgcGFja2FnZQ0KPiAr ICAgICAgICAgICAgaWYgQ3VycmVudCAtIFN0cmluZ1B0ciA+PSBMZW5ndGg6DQo+ICsgICAgICAg ICAgICAgICAgQ3VycmVudCA9IFN0cmluZ1B0cg0KPiArICAgICAgICAgICAgICAgIFBrZ0hlYWRl ciA9IEVGSV9ISUlfU1RSSU5HX1BBQ0tBR0VfSERSLmZyb21fYnVmZmVyKFN0cmluZ1B0cikNCj4g KyAgICAgICAgICAgICAgICBicmVhaw0KPiArDQo+ICsgICAgICAgIEN1cnJlbnQgKz0gUGtnSGVh ZGVyLkhkclNpemUNCj4gKw0KPiArICAgICAgICAjIEZpbmQgdGhlIHN0cmluZyBibG9jayBhY2Nv cmRpbmcgdG8gdGhlIHN0cmluZ0lkDQo+ICsgICAgICAgIFN0YXR1cywgTmFtZU9mZnNldCwgQmxv Y2tUeXBlID0gc2VsZi5GaW5kU3RyaW5nQmxvY2soQ3VycmVudCwgU3RyaW5nSWQpDQo+ICsgICAg ICAgIGlmIFN0YXR1cyAhPSBSRVRVUk5fU1VDQ0VTUzoNCj4gKyAgICAgICAgICAgIHJldHVybiBO b25lDQo+ICsNCj4gKyAgICAgICAgIyBHZXQgdmFyc3RvcmUgbmFtZSBhY2NvcmRpbmcgdG8gdGhl IHN0cmluZyB0eXBlDQo+ICsgICAgICAgIGlmIEJsb2NrVHlwZSBpbiBbDQo+ICsgICAgICAgICAg ICBFRklfSElJX1NJQlRfU1RSSU5HX1NDU1UsDQo+ICsgICAgICAgICAgICBFRklfSElJX1NJQlRf U1RSSU5HX1NDU1VfRk9OVCwNCj4gKyAgICAgICAgICAgIEVGSV9ISUlfU0lCVF9TVFJJTkdTX1ND U1UsDQo+ICsgICAgICAgICAgICBFRklfSElJX1NJQlRfU1RSSU5HU19TQ1NVX0ZPTlQsDQo+ICsg ICAgICAgIF06DQo+ICsgICAgICAgICAgICBTdHJpbmdOYW1lID0gQ3VycmVudCArIE5hbWVPZmZz ZXQNCj4gKyAgICAgICAgICAgIFZhclN0b3JlTmFtZSA9IFN0cmluZ05hbWUuZGVjb2RlKCJ1dGYt OCIpDQo+ICsgICAgICAgIGVsaWYgQmxvY2tUeXBlIGluIFsNCj4gKyAgICAgICAgICAgIEVGSV9I SUlfU0lCVF9TVFJJTkdfVUNTMiwNCj4gKyAgICAgICAgICAgIEVGSV9ISUlfU0lCVF9TVFJJTkdf VUNTMl9GT05ULA0KPiArICAgICAgICAgICAgRUZJX0hJSV9TSUJUX1NUUklOR1NfVUNTMiwNCj4g KyAgICAgICAgICAgIEVGSV9ISUlfU0lCVF9TVFJJTkdTX1VDUzJfRk9OVCwNCj4gKyAgICAgICAg XToNCj4gKyAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcgPSBDdXJyZW50ICsgTmFtZU9mZnNldA0K PiArICAgICAgICAgICAgTGVuZ3RoID0gc2VsZi5HZXRVbmljb2RlU3RyaW5nVGV4dFNpemUoVW5p Y29kZVN0cmluZykNCj4gKyAgICAgICAgICAgIERlc3RUbXAgPSBieXRlYXJyYXkoTGVuZ3RoIC8v IDIgKyAxKQ0KPiArICAgICAgICAgICAgVmFyU3RvcmVOYW1lID0gRGVzdFRtcA0KPiArICAgICAg ICAgICAgaW5kZXggPSAwDQo+ICsgICAgICAgICAgICB3aGlsZSBVbmljb2RlU3RyaW5nW2luZGV4 XSAhPSAiXDAiOg0KPiArICAgICAgICAgICAgICAgIERlc3RUbXBbaW5kZXhdID0gb3JkKFVuaWNv ZGVTdHJpbmdbaW5kZXhdKQ0KPiArICAgICAgICAgICAgICAgIGluZGV4ICs9IDENCj4gKyAgICAg ICAgICAgIERlc3RUbXBbaW5kZXhdID0gIlwwIg0KPiArICAgICAgICBlbHNlOg0KPiArICAgICAg ICAgICAgcmV0dXJuIE5vbmUNCj4gKw0KPiArICAgICAgICByZXR1cm4gVmFyU3RvcmVOYW1lDQo+ ICsNCj4gKw0KPiArZ1ZmclN0cmluZ0RCID0gVmZyU3RyaW5nREIoKQ0KPiArDQo+ICtFRklfUlVM RV9JRF9TVEFSVCA9IDB4MDENCj4gK0VGSV9SVUxFX0lEX0lOVkFMSUQgPSAweDAwDQo+ICsNCj4g Kw0KPiArY2xhc3MgU1ZmclJ1bGVOb2RlOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBSdWxl TmFtZT1Ob25lLCBSdWxlSWQ9MCk6DQo+ICsgICAgICAgIHNlbGYuUnVsZUlkID0gUnVsZUlkDQo+ ICsgICAgICAgIHNlbGYuUnVsZU5hbWUgPSBSdWxlTmFtZQ0KPiArICAgICAgICBzZWxmLk5leHQg PSBOb25lDQo+ICsNCj4gKw0KPiArY2xhc3MgVmZyUnVsZXNEQjoNCj4gKyAgICBkZWYgX19pbml0 X18oc2VsZik6DQo+ICsgICAgICAgIHNlbGYuUnVsZUxpc3QgPSBOb25lDQo+ICsgICAgICAgIHNl bGYuRnJlZVJ1bGVJZCA9IEVGSV9WQVJTVE9SRV9JRF9TVEFSVA0KPiArDQo+ICsgICAgZGVmIFJl Z2lzdGVyUnVsZShzZWxmLCBSdWxlTmFtZSk6DQo+ICsgICAgICAgIGlmIFJ1bGVOYW1lIGlzIE5v bmU6DQo+ICsgICAgICAgICAgICByZXR1cm4NCj4gKw0KPiArICAgICAgICBwTmV3ID0gU1ZmclJ1 bGVOb2RlKFJ1bGVOYW1lLCBzZWxmLkZyZWVSdWxlSWQpDQo+ICsgICAgICAgIGlmIHBOZXcgaXMg Tm9uZToNCj4gKyAgICAgICAgICAgIHJldHVybg0KPiArICAgICAgICBzZWxmLkZyZWVSdWxlSWQg Kz0gMQ0KPiArICAgICAgICBwTmV3Lk5leHQgPSBzZWxmLlJ1bGVMaXN0DQo+ICsgICAgICAgIHNl bGYuUnVsZUxpc3QgPSBwTmV3DQo+ICsNCj4gKyAgICBkZWYgR2V0UnVsZUlkKHNlbGYsIFJ1bGVO YW1lKToNCj4gKyAgICAgICAgaWYgUnVsZU5hbWUgaXMgTm9uZToNCj4gKyAgICAgICAgICAgIHJl dHVybiBFRklfUlVMRV9JRF9JTlZBTElEDQo+ICsNCj4gKyAgICAgICAgcE5vZGUgPSBzZWxmLlJ1 bGVMaXN0DQo+ICsgICAgICAgIHdoaWxlIHBOb2RlIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAg ICAgaWYgcE5vZGUuUnVsZU5hbWUgPT0gUnVsZU5hbWU6DQo+ICsgICAgICAgICAgICAgICAgcmV0 dXJuIHBOb2RlLlJ1bGVJZA0KPiArICAgICAgICAgICAgcE5vZGUgPSBwTm9kZS5OZXh0DQo+ICsN Cj4gKyAgICAgICAgcmV0dXJuIEVGSV9SVUxFX0lEX0lOVkFMSUQNCj4gKw0KPiArDQo+ICtFRklf UVVFU1RJT05fSURfTUFYID0gMHhGRkZGDQo+ICtFRklfRlJFRV9RVUVTVElPTl9JRF9CSVRNQVBf U0laRSA9IGludCgoRUZJX1FVRVNUSU9OX0lEX01BWCArIDEpIC8NCj4gRUZJX0JJVFNfUEVSX1VJ TlQzMikNCj4gK0VGSV9RVUVTVElPTl9JRF9JTlZBTElEID0gMHgwDQo+ICsNCj4gKw0KPiArY2xh c3MgRUZJX1FVRVNJT05fVFlQRShFbnVtKToNCj4gKyAgICBRVUVTVElPTl9OT1JNQUwgPSAwDQo+ ICsgICAgUVVFU1RJT05fREFURSA9IDENCj4gKyAgICBRVUVTVElPTl9USU1FID0gMg0KPiArICAg IFFVRVNUSU9OX1JFRiA9IDMNCj4gKw0KPiArDQo+ICtjbGFzcyBTVmZyUXVlc3Rpb25Ob2RlOg0K PiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBOYW1lPU5vbmUsIFZhcklkU3RyPU5vbmUsIEJpdE1h c2s9MCk6ICAjDQo+ICsgICAgICAgIHNlbGYuTmFtZSA9IE5hbWUNCj4gKyAgICAgICAgc2VsZi5W YXJJZFN0ciA9IFZhcklkU3RyDQo+ICsgICAgICAgIHNlbGYuUXVlc3Rpb25JZCA9IEVGSV9RVUVT VElPTl9JRF9JTlZBTElEDQo+ICsgICAgICAgIHNlbGYuQml0TWFzayA9IEJpdE1hc2sNCj4gKyAg ICAgICAgc2VsZi5OZXh0ID0gTm9uZQ0KPiArICAgICAgICBzZWxmLlFUeXBlID0gRUZJX1FVRVNJ T05fVFlQRS5RVUVTVElPTl9OT1JNQUwNCj4gKw0KPiArDQo+ICtEQVRFX1lFQVJfQklUTUFTSyA9 IDB4MDAwMEZGRkYNCj4gK0RBVEVfTU9OVEhfQklUTUFTSyA9IDB4MDBGRjAwMDANCj4gK0RBVEVf REFZX0JJVE1BU0sgPSAweEZGMDAwMDAwDQo+ICtUSU1FX0hPVVJfQklUTUFTSyA9IDB4MDAwMDAw RkYNCj4gK1RJTUVfTUlOVVRFX0JJVE1BU0sgPSAweDAwMDBGRjAwDQo+ICtUSU1FX1NFQ09ORF9C SVRNQVNLID0gMHgwMEZGMDAwMA0KPiArDQo+ICsNCj4gK2NsYXNzIFZmclF1ZXN0aW9uREI6DQo+ ICsgICAgZGVmIF9faW5pdF9fKHNlbGYpOg0KPiArICAgICAgICBzZWxmLkZyZWVRSWRCaXRNYXAg PSBbXQ0KPiArICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCBFRklfRlJFRV9RVUVTVElPTl9JRF9C SVRNQVBfU0laRSk6DQo+ICsgICAgICAgICAgICBzZWxmLkZyZWVRSWRCaXRNYXAuYXBwZW5kKDAp DQo+ICsNCj4gKyAgICAgICAgIyBRdWVzdGlvbiBJRCAwIGlzIHJlc2VydmVkLg0KPiArICAgICAg ICBzZWxmLkZyZWVRSWRCaXRNYXBbMF0gPSAweDgwMDAwMDAwDQo+ICsNCj4gKyAgICAgICAgc2Vs Zi5RdWVzdGlvbkxpc3QgPSBOb25lDQo+ICsNCj4gKyAgICBkZWYgRmluZFF1ZXN0aW9uQnlOYW1l KHNlbGYsIE5hbWUpOg0KPiArICAgICAgICBpZiBOYW1lIGlzIE5vbmU6DQo+ICsgICAgICAgICAg ICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0ZBVEFMX0VSUk9SDQo+ICsNCj4gKyAg ICAgICAgcE5vZGUgPSBzZWxmLlF1ZXN0aW9uTGlzdA0KPiArICAgICAgICB3aGlsZSBwTm9kZSBp cyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgIGlmIHBOb2RlLk5hbWUgPT0gTmFtZToNCj4gKyAg ICAgICAgICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4g KyAgICAgICAgICAgIHBOb2RlID0gcE5vZGUuTmV4dA0KPiArDQo+ICsgICAgICAgIHJldHVybiBW ZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fVU5ERUZJTkVEDQo+ICsNCj4gKyAgICBkZWYgRmluZFF1 ZXN0aW9uQnlJZChzZWxmLCBRdWVzdGlvbklkKToNCj4gKyAgICAgICAgaWYgUXVlc3Rpb25JZCA9 PSBFRklfUVVFU1RJT05fSURfSU5WQUxJRDoNCj4gKyAgICAgICAgICAgIHJldHVybiBWZnJSZXR1 cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVINCj4gKw0KPiArICAgICAgICBwTm9k ZSA9IHNlbGYuUXVlc3Rpb25MaXN0DQo+ICsgICAgICAgIHdoaWxlIHBOb2RlIGlzIG5vdCBOb25l Og0KPiArICAgICAgICAgICAgaWYgcE5vZGUuUXVlc3Rpb25JZCA9PSBRdWVzdGlvbklkOg0KPiAr ICAgICAgICAgICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0K PiArICAgICAgICAgICAgcE5vZGUgPSBwTm9kZS5OZXh0DQo+ICsNCj4gKyAgICAgICAgcmV0dXJu IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9VTkRFRklORUQNCj4gKw0KPiArICAgIGRlZiBHZXRG cmVlUXVlc3Rpb25JZChzZWxmKToNCj4gKyAgICAgICAgSW5kZXggPSAwDQo+ICsgICAgICAgIGZv ciBpIGluIHJhbmdlKDAsIEVGSV9GUkVFX1FVRVNUSU9OX0lEX0JJVE1BUF9TSVpFKToNCj4gKyAg ICAgICAgICAgIGlmIHNlbGYuRnJlZVFJZEJpdE1hcFtpXSAhPSAweEZGRkZGRkZGOg0KPiArICAg ICAgICAgICAgICAgIEluZGV4ID0gaQ0KPiArICAgICAgICAgICAgICAgIGJyZWFrDQo+ICsgICAg ICAgIGlmIEluZGV4ID09IEVGSV9GUkVFX1FVRVNUSU9OX0lEX0JJVE1BUF9TSVpFOg0KPiArICAg ICAgICAgICAgcmV0dXJuIEVGSV9RVUVTVElPTl9JRF9JTlZBTElEDQo+ICsNCj4gKyAgICAgICAg T2Zmc2V0ID0gMA0KPiArICAgICAgICBNYXNrID0gMHg4MDAwMDAwMA0KPiArICAgICAgICB3aGls ZSBNYXNrICE9IDA6DQo+ICsgICAgICAgICAgICBpZiAoc2VsZi5GcmVlUUlkQml0TWFwW0luZGV4 XSAmIE1hc2spID09IDA6DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5GcmVlUUlkQml0TWFwW0lu ZGV4XSB8PSBNYXNrDQo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIChJbmRleCA8PCBFRklfQklU U19TSElGVF9QRVJfVUlOVDMyKSArIE9mZnNldA0KPiArICAgICAgICAgICAgTWFzayA+Pj0gMQ0K PiArICAgICAgICAgICAgT2Zmc2V0ICs9IDENCj4gKw0KPiArICAgICAgICByZXR1cm4gRUZJX1FV RVNUSU9OX0lEX0lOVkFMSUQNCj4gKw0KPiArICAgIGRlZiBDaGVja1F1ZXN0aW9uSWRGcmVlKHNl bGYsIFFJZCk6DQo+ICsgICAgICAgIEluZGV4ID0gaW50KFFJZCAvIEVGSV9CSVRTX1BFUl9VSU5U MzIpDQo+ICsgICAgICAgIE9mZnNldCA9IFFJZCAlIEVGSV9CSVRTX1BFUl9VSU5UMzINCj4gKyAg ICAgICAgcmV0dXJuIChzZWxmLkZyZWVRSWRCaXRNYXBbSW5kZXhdICYgKDB4ODAwMDAwMDAgPj4g T2Zmc2V0KSkgPT0gMA0KPiArDQo+ICsgICAgZGVmIE1hcmtRdWVzdGlvbklkVXNlZChzZWxmLCBR SWQpOg0KPiArICAgICAgICBJbmRleCA9IGludChRSWQgLyBFRklfQklUU19QRVJfVUlOVDMyKQ0K PiArICAgICAgICBPZmZzZXQgPSBRSWQgJSBFRklfQklUU19QRVJfVUlOVDMyDQo+ICsgICAgICAg IHNlbGYuRnJlZVFJZEJpdE1hcFtJbmRleF0gfD0gMHg4MDAwMDAwMCA+PiBPZmZzZXQNCj4gKw0K PiArICAgIGRlZiBNYXJrUXVlc3Rpb25JZFVudXNlZChzZWxmLCBRSWQpOg0KPiArICAgICAgICBJ bmRleCA9IGludChRSWQgLyBFRklfQklUU19QRVJfVUlOVDMyKQ0KPiArICAgICAgICBPZmZzZXQg PSBRSWQgJSBFRklfQklUU19QRVJfVUlOVDMyDQo+ICsgICAgICAgIHNlbGYuRnJlZVFJZEJpdE1h cFtJbmRleF0gJj0gfigweDgwMDAwMDAwID4+IE9mZnNldCkNCj4gKw0KPiArICAgIGRlZiBSZWdp c3RlclF1ZXN0aW9uKHNlbGYsIE5hbWUsIFZhcklkU3RyLCBRdWVzdGlvbklkLCBnRm9ybVBrZyk6 DQo+ICsgICAgICAgIGlmIChOYW1lIGlzIG5vdCBOb25lKSBhbmQgKHNlbGYuRmluZFF1ZXN0aW9u QnlOYW1lKE5hbWUpID09DQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTKToNCj4g KyAgICAgICAgICAgIHJldHVybiBRdWVzdGlvbklkLCBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5f UkVERUZJTkVEDQo+ICsNCj4gKyAgICAgICAgcE5vZGUgPSBTVmZyUXVlc3Rpb25Ob2RlKE5hbWUs IFZhcklkU3RyKQ0KPiArICAgICAgICBpZiBwTm9kZSBpcyBOb25lOg0KPiArICAgICAgICAgICAg cmV0dXJuIFF1ZXN0aW9uSWQsDQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9PVVRfRk9SX1JF U09VUkNFUw0KPiArDQo+ICsgICAgICAgIGlmIFF1ZXN0aW9uSWQgPT0gRUZJX1FVRVNUSU9OX0lE X0lOVkFMSUQ6DQo+ICsgICAgICAgICAgICBRdWVzdGlvbklkID0gc2VsZi5HZXRGcmVlUXVlc3Rp b25JZCgpDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICBpZiBzZWxmLkNoZWNrUXVl c3Rpb25JZEZyZWUoUXVlc3Rpb25JZCkgaXMgRmFsc2U6DQo+ICsgICAgICAgICAgICAgICAgcmV0 dXJuIFF1ZXN0aW9uSWQsDQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9RVUVTVElPTklEX1JF REVGSU5FRA0KPiArICAgICAgICAgICAgc2VsZi5NYXJrUXVlc3Rpb25JZFVzZWQoUXVlc3Rpb25J ZCkNCj4gKw0KPiArICAgICAgICBwTm9kZS5RdWVzdGlvbklkID0gUXVlc3Rpb25JZA0KPiArICAg ICAgICBwTm9kZS5OZXh0ID0gc2VsZi5RdWVzdGlvbkxpc3QNCj4gKyAgICAgICAgc2VsZi5RdWVz dGlvbkxpc3QgPSBwTm9kZQ0KPiArDQo+ICsgICAgICAgIGdGb3JtUGtnLkRvUGVuZGluZ0Fzc2ln bihWYXJJZFN0ciwgUXVlc3Rpb25JZCkNCj4gKw0KPiArICAgICAgICByZXR1cm4gUXVlc3Rpb25J ZCwgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gKw0KPiArICAgIGRlZiBVcGRh dGVRdWVzdGlvbklkKHNlbGYsIFFJZCwgTmV3UUlkLCBnRm9ybVBrZyk6DQo+ICsgICAgICAgIGlm IFFJZCA9PSBOZXdRSWQ6DQo+ICsgICAgICAgICAgICAjIGRvbid0IHVwZGF0ZQ0KPiArICAgICAg ICAgICAgcmV0dXJuIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+ICsNCj4gKyAg ICAgICAgaWYgc2VsZi5DaGVja1F1ZXN0aW9uSWRGcmVlKE5ld1FJZCkgaXMgRmFsc2U6DQo+ICsg ICAgICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1JFREVGSU5FRA0KPiAr DQo+ICsgICAgICAgIHBOb2RlID0gc2VsZi5RdWVzdGlvbkxpc3QNCj4gKyAgICAgICAgVGVtcExp c3QgPSBbXQ0KPiArICAgICAgICB3aGlsZSBwTm9kZSBpcyBub3QgTm9uZToNCj4gKyAgICAgICAg ICAgIGlmIHBOb2RlLlF1ZXN0aW9uSWQgPT0gUUlkOg0KPiArICAgICAgICAgICAgICAgIFRlbXBM aXN0LmFwcGVuZChwTm9kZSkNCj4gKyAgICAgICAgICAgIHBOb2RlID0gcE5vZGUuTmV4dA0KPiAr DQo+ICsgICAgICAgIGlmIGxlbihUZW1wTGlzdCkgPT0gMDoNCj4gKyAgICAgICAgICAgIHJldHVy biBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fVU5ERUZJTkVEDQo+ICsNCj4gKyAgICAgICAgc2Vs Zi5NYXJrUXVlc3Rpb25JZFVudXNlZChRSWQpDQo+ICsNCj4gKyAgICAgICAgZm9yIHBOb2RlIGlu IFRlbXBMaXN0Og0KPiArICAgICAgICAgICAgcE5vZGUuUXVlc3Rpb25JZCA9IE5ld1FJZA0KPiAr ICAgICAgICAgICAgZ0Zvcm1Qa2cuRG9QZW5kaW5nQXNzaWduKHBOb2RlLlZhcklkU3RyLCBOZXdR SWQpDQo+ICsNCj4gKyAgICAgICAgc2VsZi5NYXJrUXVlc3Rpb25JZFVzZWQoTmV3UUlkKQ0KPiAr DQo+ICsgICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiAr DQo+ICsgICAgZGVmIEdldFF1ZXN0aW9uSWQoc2VsZiwgTmFtZSwgVmFySWRTdHI9Tm9uZSwgUVR5 cGU9Tm9uZSk6DQo+ICsgICAgICAgIFF1ZXN0aW9uSWQgPSBFRklfUVVFU1RJT05fSURfSU5WQUxJ RA0KPiArICAgICAgICBCaXRNYXNrID0gMHgwMDAwMDAwMA0KPiArICAgICAgICBpZiBRVHlwZSBp cyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgIFFUeXBlID0gRUZJX1FVRVNJT05fVFlQRS5RVUVT VElPTl9OT1JNQUwNCj4gKw0KPiArICAgICAgICBpZiBOYW1lIGlzIE5vbmUgYW5kIFZhcklkU3Ry IGlzIE5vbmU6DQo+ICsgICAgICAgICAgICByZXR1cm4gUXVlc3Rpb25JZCwgQml0TWFzaywgUVR5 cGUNCj4gKw0KPiArICAgICAgICBwTm9kZSA9IHNlbGYuUXVlc3Rpb25MaXN0DQo+ICsgICAgICAg IHdoaWxlIHBOb2RlIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgaWYgTmFtZSBpcyBub3Qg Tm9uZToNCj4gKyAgICAgICAgICAgICAgICBpZiBwTm9kZS5OYW1lICE9IE5hbWU6DQo+ICsgICAg ICAgICAgICAgICAgICAgIHBOb2RlID0gcE5vZGUuTmV4dA0KPiArICAgICAgICAgICAgICAgICAg ICBjb250aW51ZQ0KPiArDQo+ICsgICAgICAgICAgICBpZiBWYXJJZFN0ciBpcyBub3QgTm9uZToN Cj4gKyAgICAgICAgICAgICAgICBpZiBwTm9kZS5WYXJJZFN0ciAhPSBWYXJJZFN0cjoNCj4gKyAg ICAgICAgICAgICAgICAgICAgcE5vZGUgPSBwTm9kZS5OZXh0DQo+ICsgICAgICAgICAgICAgICAg ICAgIGNvbnRpbnVlDQo+ICsNCj4gKyAgICAgICAgICAgIFF1ZXN0aW9uSWQgPSBwTm9kZS5RdWVz dGlvbklkDQo+ICsgICAgICAgICAgICBCaXRNYXNrID0gcE5vZGUuQml0TWFzaw0KPiArICAgICAg ICAgICAgaWYgUVR5cGUgaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICAgICAgUVR5cGUgPSBw Tm9kZS5RVHlwZQ0KPiArICAgICAgICAgICAgYnJlYWsNCj4gKw0KPiArICAgICAgICByZXR1cm4g UXVlc3Rpb25JZCwgQml0TWFzaywgUVR5cGUNCj4gKw0KPiArICAgIGRlZiBSZWdpc3Rlck5ld0Rh dGVRdWVzdGlvbihzZWxmLCBOYW1lLCBCYXNlVmFySWQsIFF1ZXN0aW9uSWQsDQo+IGdGb3JtUGtn KToNCj4gKyAgICAgICAgaWYgQmFzZVZhcklkID09ICIiIGFuZCBOYW1lIGlzIE5vbmU6DQo+ICsg ICAgICAgICAgICBpZiBRdWVzdGlvbklkID09IEVGSV9RVUVTVElPTl9JRF9JTlZBTElEOg0KPiAr ICAgICAgICAgICAgICAgIFF1ZXN0aW9uSWQgPSBzZWxmLkdldEZyZWVRdWVzdGlvbklkKCkNCj4g KyAgICAgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICAgICAgaWYgc2VsZi5DaGVja1F1ZXN0 aW9uSWRGcmVlKFF1ZXN0aW9uSWQpIGlzIEZhbHNlOg0KPiArICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gUXVlc3Rpb25JZCwgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1JFREVGSU5FRA0KPiAr ICAgICAgICAgICAgICAgIHNlbGYuTWFya1F1ZXN0aW9uSWRVc2VkKFF1ZXN0aW9uSWQpDQo+ICsg ICAgICAgICAgICByZXR1cm4gUXVlc3Rpb25JZCwgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NV Q0NFU1MNCj4gKw0KPiArICAgICAgICBWYXJJZFN0ckxpc3QgPSBbXQ0KPiArICAgICAgICBpZiBC YXNlVmFySWQgIT0gIiI6DQo+ICsgICAgICAgICAgICBWYXJJZFN0ckxpc3QuYXBwZW5kKEJhc2VW YXJJZCArICIuWWVhciIpDQo+ICsgICAgICAgICAgICBWYXJJZFN0ckxpc3QuYXBwZW5kKEJhc2VW YXJJZCArICIuTW9udGgiKQ0KPiArICAgICAgICAgICAgVmFySWRTdHJMaXN0LmFwcGVuZChCYXNl VmFySWQgKyAiLkRheSIpDQo+ICsNCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIFZh cklkU3RyTGlzdC5hcHBlbmQoTmFtZSArICIuWWVhciIpDQo+ICsgICAgICAgICAgICBWYXJJZFN0 ckxpc3QuYXBwZW5kKE5hbWUgKyAiLk1vbnRoIikNCj4gKyAgICAgICAgICAgIFZhcklkU3RyTGlz dC5hcHBlbmQoTmFtZSArICIuRGF5IikNCj4gKw0KPiArICAgICAgICBwTm9kZUxpc3QgPSBbXQ0K PiArICAgICAgICBwTm9kZSA9IFNWZnJRdWVzdGlvbk5vZGUoTmFtZSwgVmFySWRTdHJMaXN0WzBd LA0KPiBEQVRFX1lFQVJfQklUTUFTSykNCj4gKyAgICAgICAgaWYgcE5vZGUgaXMgbm90IE5vbmU6 DQo+ICsgICAgICAgICAgICBwTm9kZUxpc3QuYXBwZW5kKHBOb2RlKQ0KPiArICAgICAgICBlbHNl Og0KPiArICAgICAgICAgICAgcmV0dXJuIFF1ZXN0aW9uSWQsDQo+IFZmclJldHVybkNvZGUuVkZS X1JFVFVSTl9PVVRfRk9SX1JFU09VUkNFUw0KPiArDQo+ICsgICAgICAgIHBOb2RlID0gU1ZmclF1 ZXN0aW9uTm9kZShOYW1lLCBWYXJJZFN0ckxpc3RbMV0sDQo+IERBVEVfTU9OVEhfQklUTUFTSykN Cj4gKyAgICAgICAgaWYgcE5vZGUgaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICBwTm9kZUxp c3QuYXBwZW5kKHBOb2RlKQ0KPiArICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgcmV0dXJu IFF1ZXN0aW9uSWQsDQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9PVVRfRk9SX1JFU09VUkNF Uw0KPiArDQo+ICsgICAgICAgIHBOb2RlID0gU1ZmclF1ZXN0aW9uTm9kZShOYW1lLCBWYXJJZFN0 ckxpc3RbMl0sIERBVEVfREFZX0JJVE1BU0spDQo+ICsgICAgICAgIGlmIHBOb2RlIGlzIG5vdCBO b25lOg0KPiArICAgICAgICAgICAgcE5vZGVMaXN0LmFwcGVuZChwTm9kZSkNCj4gKyAgICAgICAg ZWxzZToNCj4gKyAgICAgICAgICAgIHJldHVybiBRdWVzdGlvbklkLA0KPiBWZnJSZXR1cm5Db2Rl LlZGUl9SRVRVUk5fT1VUX0ZPUl9SRVNPVVJDRVMNCj4gKw0KPiArICAgICAgICBpZiBRdWVzdGlv bklkID09IEVGSV9RVUVTVElPTl9JRF9JTlZBTElEOg0KPiArICAgICAgICAgICAgUXVlc3Rpb25J ZCA9IHNlbGYuR2V0RnJlZVF1ZXN0aW9uSWQoKQ0KPiArICAgICAgICBlbHNlOg0KPiArICAgICAg ICAgICAgaWYgc2VsZi5DaGVja1F1ZXN0aW9uSWRGcmVlKFF1ZXN0aW9uSWQpIGlzIEZhbHNlOg0K PiArICAgICAgICAgICAgICAgIHJldHVybiBRdWVzdGlvbklkLCBWZnJSZXR1cm5Db2RlLlZGUl9S RVRVUk5fUkVERUZJTkVEDQo+ICsgICAgICAgICAgICBzZWxmLk1hcmtRdWVzdGlvbklkVXNlZChR dWVzdGlvbklkKQ0KPiArDQo+ICsgICAgICAgIHBOb2RlTGlzdFswXS5RdWVzdGlvbklkID0gUXVl c3Rpb25JZA0KPiArICAgICAgICBwTm9kZUxpc3RbMV0uUXVlc3Rpb25JZCA9IFF1ZXN0aW9uSWQN Cj4gKyAgICAgICAgcE5vZGVMaXN0WzJdLlF1ZXN0aW9uSWQgPSBRdWVzdGlvbklkDQo+ICsgICAg ICAgIHBOb2RlTGlzdFswXS5RVHlwZSA9IEVGSV9RVUVTSU9OX1RZUEUuUVVFU1RJT05fREFURQ0K PiArICAgICAgICBwTm9kZUxpc3RbMV0uUVR5cGUgPSBFRklfUVVFU0lPTl9UWVBFLlFVRVNUSU9O X0RBVEUNCj4gKyAgICAgICAgcE5vZGVMaXN0WzJdLlFUeXBlID0gRUZJX1FVRVNJT05fVFlQRS5R VUVTVElPTl9EQVRFDQo+ICsgICAgICAgIHBOb2RlTGlzdFswXS5OZXh0ID0gcE5vZGVMaXN0WzFd DQo+ICsgICAgICAgIHBOb2RlTGlzdFsxXS5OZXh0ID0gcE5vZGVMaXN0WzJdDQo+ICsgICAgICAg IHBOb2RlTGlzdFsyXS5OZXh0ID0gc2VsZi5RdWVzdGlvbkxpc3QNCj4gKyAgICAgICAgc2VsZi5R dWVzdGlvbkxpc3QgPSBwTm9kZUxpc3RbMF0NCj4gKw0KPiArICAgICAgICBnRm9ybVBrZy5Eb1Bl bmRpbmdBc3NpZ24oVmFySWRTdHJMaXN0WzBdLCBRdWVzdGlvbklkKQ0KPiArICAgICAgICBnRm9y bVBrZy5Eb1BlbmRpbmdBc3NpZ24oVmFySWRTdHJMaXN0WzFdLCBRdWVzdGlvbklkKQ0KPiArICAg ICAgICBnRm9ybVBrZy5Eb1BlbmRpbmdBc3NpZ24oVmFySWRTdHJMaXN0WzJdLCBRdWVzdGlvbklk KQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBRdWVzdGlvbklkLCBWZnJSZXR1cm5Db2RlLlZGUl9S RVRVUk5fU1VDQ0VTUw0KPiArDQo+ICsgICAgZGVmIFJlZ2lzdGVyTmV3VGltZVF1ZXN0aW9uKHNl bGYsIE5hbWUsIEJhc2VWYXJJZCwgUXVlc3Rpb25JZCwNCj4gZ0Zvcm1Qa2cpOg0KPiArICAgICAg ICBpZiBCYXNlVmFySWQgPT0gIiIgYW5kIE5hbWUgaXMgTm9uZToNCj4gKyAgICAgICAgICAgIGlm IFF1ZXN0aW9uSWQgPT0gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQ6DQo+ICsgICAgICAgICAgICAg ICAgUXVlc3Rpb25JZCA9IHNlbGYuR2V0RnJlZVF1ZXN0aW9uSWQoKQ0KPiArICAgICAgICAgICAg ZWxzZToNCj4gKyAgICAgICAgICAgICAgICBpZiBzZWxmLkNoZWNrUXVlc3Rpb25JZEZyZWUoUXVl c3Rpb25JZCkgaXMgRmFsc2U6DQo+ICsgICAgICAgICAgICAgICAgICAgIHJldHVybiBRdWVzdGlv bklkLCBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fUkVERUZJTkVEDQo+ICsgICAgICAgICAgICAg ICAgc2VsZi5NYXJrUXVlc3Rpb25JZFVzZWQoUXVlc3Rpb25JZCkNCj4gKyAgICAgICAgICAgIHJl dHVybiBRdWVzdGlvbklkLCBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiArDQo+ ICsgICAgICAgIFZhcklkU3RyTGlzdCA9IFtdDQo+ICsgICAgICAgIGlmIEJhc2VWYXJJZCAhPSAi IjoNCj4gKyAgICAgICAgICAgIFZhcklkU3RyTGlzdC5hcHBlbmQoQmFzZVZhcklkICsgIi5Ib3Vy IikNCj4gKyAgICAgICAgICAgIFZhcklkU3RyTGlzdC5hcHBlbmQoQmFzZVZhcklkICsgIi5NaW51 dGUiKQ0KPiArICAgICAgICAgICAgVmFySWRTdHJMaXN0LmFwcGVuZChCYXNlVmFySWQgKyAiLlNl Y29uZCIpDQo+ICsNCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIFZhcklkU3RyTGlz dC5hcHBlbmQoTmFtZSArICIuSG91ciIpDQo+ICsgICAgICAgICAgICBWYXJJZFN0ckxpc3QuYXBw ZW5kKE5hbWUgKyAiLk1pbnV0ZSIpDQo+ICsgICAgICAgICAgICBWYXJJZFN0ckxpc3QuYXBwZW5k KE5hbWUgKyAiLlNlY29uZCIpDQo+ICsNCj4gKyAgICAgICAgcE5vZGVMaXN0ID0gW10NCj4gKyAg ICAgICAgcE5vZGUgPSBTVmZyUXVlc3Rpb25Ob2RlKE5hbWUsIFZhcklkU3RyTGlzdFswXSwNCj4g VElNRV9IT1VSX0JJVE1BU0spDQo+ICsgICAgICAgIGlmIHBOb2RlIGlzIG5vdCBOb25lOg0KPiAr ICAgICAgICAgICAgcE5vZGVMaXN0LmFwcGVuZChwTm9kZSkNCj4gKyAgICAgICAgZWxzZToNCj4g KyAgICAgICAgICAgIHJldHVybiBRdWVzdGlvbklkLA0KPiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRV Uk5fT1VUX0ZPUl9SRVNPVVJDRVMNCj4gKw0KPiArICAgICAgICBwTm9kZSA9IFNWZnJRdWVzdGlv bk5vZGUoTmFtZSwgVmFySWRTdHJMaXN0WzFdLA0KPiBUSU1FX01JTlVURV9CSVRNQVNLKQ0KPiAr ICAgICAgICBpZiBwTm9kZSBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgIHBOb2RlTGlzdC5h cHBlbmQocE5vZGUpDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICByZXR1cm4gUXVl c3Rpb25JZCwNCj4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX09VVF9GT1JfUkVTT1VSQ0VTDQo+ ICsNCj4gKyAgICAgICAgcE5vZGUgPSBTVmZyUXVlc3Rpb25Ob2RlKE5hbWUsIFZhcklkU3RyTGlz dFsyXSwNCj4gVElNRV9TRUNPTkRfQklUTUFTSykNCj4gKyAgICAgICAgaWYgcE5vZGUgaXMgbm90 IE5vbmU6DQo+ICsgICAgICAgICAgICBwTm9kZUxpc3QuYXBwZW5kKHBOb2RlKQ0KPiArICAgICAg ICBlbHNlOg0KPiArICAgICAgICAgICAgcmV0dXJuIFF1ZXN0aW9uSWQsDQo+IFZmclJldHVybkNv ZGUuVkZSX1JFVFVSTl9PVVRfRk9SX1JFU09VUkNFUw0KPiArDQo+ICsgICAgICAgIGlmIFF1ZXN0 aW9uSWQgPT0gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQ6DQo+ICsgICAgICAgICAgICBRdWVzdGlv bklkID0gc2VsZi5HZXRGcmVlUXVlc3Rpb25JZCgpDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAg ICAgICAgICBpZiBzZWxmLkNoZWNrUXVlc3Rpb25JZEZyZWUoUXVlc3Rpb25JZCkgaXMgRmFsc2U6 DQo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIFF1ZXN0aW9uSWQsIFZmclJldHVybkNvZGUuVkZS X1JFVFVSTl9SRURFRklORUQNCj4gKyAgICAgICAgICAgIHNlbGYuTWFya1F1ZXN0aW9uSWRVc2Vk KFF1ZXN0aW9uSWQpDQo+ICsNCj4gKyAgICAgICAgcE5vZGVMaXN0WzBdLlF1ZXN0aW9uSWQgPSBR dWVzdGlvbklkDQo+ICsgICAgICAgIHBOb2RlTGlzdFsxXS5RdWVzdGlvbklkID0gUXVlc3Rpb25J ZA0KPiArICAgICAgICBwTm9kZUxpc3RbMl0uUXVlc3Rpb25JZCA9IFF1ZXN0aW9uSWQNCj4gKyAg ICAgICAgcE5vZGVMaXN0WzBdLlFUeXBlID0gRUZJX1FVRVNJT05fVFlQRS5RVUVTVElPTl9USU1F DQo+ICsgICAgICAgIHBOb2RlTGlzdFsxXS5RVHlwZSA9IEVGSV9RVUVTSU9OX1RZUEUuUVVFU1RJ T05fVElNRQ0KPiArICAgICAgICBwTm9kZUxpc3RbMl0uUVR5cGUgPSBFRklfUVVFU0lPTl9UWVBF LlFVRVNUSU9OX1RJTUUNCj4gKyAgICAgICAgcE5vZGVMaXN0WzBdLk5leHQgPSBwTm9kZUxpc3Rb MV0NCj4gKyAgICAgICAgcE5vZGVMaXN0WzFdLk5leHQgPSBwTm9kZUxpc3RbMl0NCj4gKyAgICAg ICAgcE5vZGVMaXN0WzJdLk5leHQgPSBzZWxmLlF1ZXN0aW9uTGlzdA0KPiArICAgICAgICBzZWxm LlF1ZXN0aW9uTGlzdCA9IHBOb2RlTGlzdFswXQ0KPiArDQo+ICsgICAgICAgIGdGb3JtUGtnLkRv UGVuZGluZ0Fzc2lnbihWYXJJZFN0ckxpc3RbMF0sIFF1ZXN0aW9uSWQpDQo+ICsgICAgICAgIGdG b3JtUGtnLkRvUGVuZGluZ0Fzc2lnbihWYXJJZFN0ckxpc3RbMV0sIFF1ZXN0aW9uSWQpDQo+ICsg ICAgICAgIGdGb3JtUGtnLkRvUGVuZGluZ0Fzc2lnbihWYXJJZFN0ckxpc3RbMl0sIFF1ZXN0aW9u SWQpDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIFF1ZXN0aW9uSWQsIFZmclJldHVybkNvZGUuVkZS X1JFVFVSTl9TVUNDRVNTDQo+ICsNCj4gKyAgICBkZWYgUmVnaXN0ZXJSZWZRdWVzdGlvbihzZWxm LCBOYW1lLCBCYXNlVmFySWQsIFF1ZXN0aW9uSWQsIGdGb3JtUGtnKToNCj4gKyAgICAgICAgaWYg QmFzZVZhcklkID09ICIiIGFuZCBOYW1lIGlzIE5vbmU6DQo+ICsgICAgICAgICAgICByZXR1cm4g UXVlc3Rpb25JZCwgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0ZBVEFMX0VSUk9SDQo+ICsNCj4g KyAgICAgICAgVmFySWRTdHJMaXN0ID0gW10NCj4gKyAgICAgICAgaWYgQmFzZVZhcklkICE9ICIi Og0KPiArICAgICAgICAgICAgVmFySWRTdHJMaXN0LmFwcGVuZChCYXNlVmFySWQgKyAiLlF1ZXN0 aW9uSWQiKQ0KPiArICAgICAgICAgICAgVmFySWRTdHJMaXN0LmFwcGVuZChCYXNlVmFySWQgKyAi LkZvcm1JZCIpDQo+ICsgICAgICAgICAgICBWYXJJZFN0ckxpc3QuYXBwZW5kKEJhc2VWYXJJZCAr ICIuRm9ybVNldEd1aWQiKQ0KPiArICAgICAgICAgICAgVmFySWRTdHJMaXN0LmFwcGVuZChCYXNl VmFySWQgKyAiLkRldmljZVBhdGgiKQ0KPiArDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAg ICAgICBWYXJJZFN0ckxpc3QuYXBwZW5kKEJhc2VWYXJJZCArICIuUXVlc3Rpb25JZCIpDQo+ICsg ICAgICAgICAgICBWYXJJZFN0ckxpc3QuYXBwZW5kKEJhc2VWYXJJZCArICIuRm9ybUlkIikNCj4g KyAgICAgICAgICAgIFZhcklkU3RyTGlzdC5hcHBlbmQoQmFzZVZhcklkICsgIi5Gb3JtU2V0R3Vp ZCIpDQo+ICsgICAgICAgICAgICBWYXJJZFN0ckxpc3QuYXBwZW5kKEJhc2VWYXJJZCArICIuRGV2 aWNlUGF0aCIpDQo+ICsNCj4gKyAgICAgICAgcE5vZGVMaXN0ID0gW10NCj4gKyAgICAgICAgcE5v ZGUgPSBTVmZyUXVlc3Rpb25Ob2RlKE5hbWUsIFZhcklkU3RyTGlzdFswXSkNCj4gKyAgICAgICAg aWYgcE5vZGUgaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICBwTm9kZUxpc3QuYXBwZW5kKHBO b2RlKQ0KPiArICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgcmV0dXJuIFF1ZXN0aW9uSWQs DQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9PVVRfRk9SX1JFU09VUkNFUw0KPiArDQo+ICsg ICAgICAgIHBOb2RlID0gU1ZmclF1ZXN0aW9uTm9kZShOYW1lLCBWYXJJZFN0ckxpc3RbMV0pDQo+ ICsgICAgICAgIGlmIHBOb2RlIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgcE5vZGVMaXN0 LmFwcGVuZChwTm9kZSkNCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIHJldHVybiBR dWVzdGlvbklkLA0KPiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fT1VUX0ZPUl9SRVNPVVJDRVMN Cj4gKw0KPiArICAgICAgICBwTm9kZSA9IFNWZnJRdWVzdGlvbk5vZGUoTmFtZSwgVmFySWRTdHJM aXN0WzJdKQ0KPiArICAgICAgICBpZiBwTm9kZSBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAg IHBOb2RlTGlzdC5hcHBlbmQocE5vZGUpDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAg ICByZXR1cm4gUXVlc3Rpb25JZCwNCj4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX09VVF9GT1Jf UkVTT1VSQ0VTDQo+ICsNCj4gKyAgICAgICAgcE5vZGUgPSBTVmZyUXVlc3Rpb25Ob2RlKE5hbWUs IFZhcklkU3RyTGlzdFszXSkNCj4gKyAgICAgICAgaWYgcE5vZGUgaXMgbm90IE5vbmU6DQo+ICsg ICAgICAgICAgICBwTm9kZUxpc3QuYXBwZW5kKHBOb2RlKQ0KPiArICAgICAgICBlbHNlOg0KPiAr ICAgICAgICAgICAgcmV0dXJuIFF1ZXN0aW9uSWQsDQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVS Tl9PVVRfRk9SX1JFU09VUkNFUw0KPiArDQo+ICsgICAgICAgIGlmIFF1ZXN0aW9uSWQgPT0gRUZJ X1FVRVNUSU9OX0lEX0lOVkFMSUQ6DQo+ICsgICAgICAgICAgICBRdWVzdGlvbklkID0gc2VsZi5H ZXRGcmVlUXVlc3Rpb25JZCgpDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICBpZiBz ZWxmLkNoZWNrUXVlc3Rpb25JZEZyZWUoUXVlc3Rpb25JZCkgaXMgRmFsc2U6DQo+ICsgICAgICAg ICAgICAgICAgcmV0dXJuIFF1ZXN0aW9uSWQsIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9SRURF RklORUQNCj4gKyAgICAgICAgICAgIHNlbGYuTWFya1F1ZXN0aW9uSWRVc2VkKFF1ZXN0aW9uSWQp DQo+ICsNCj4gKyAgICAgICAgcE5vZGVMaXN0WzBdLlF1ZXN0aW9uSWQgPSBRdWVzdGlvbklkDQo+ ICsgICAgICAgIHBOb2RlTGlzdFsxXS5RdWVzdGlvbklkID0gUXVlc3Rpb25JZA0KPiArICAgICAg ICBwTm9kZUxpc3RbMl0uUXVlc3Rpb25JZCA9IFF1ZXN0aW9uSWQNCj4gKyAgICAgICAgcE5vZGVM aXN0WzNdLlF1ZXN0aW9uSWQgPSBRdWVzdGlvbklkDQo+ICsNCj4gKyAgICAgICAgcE5vZGVMaXN0 WzBdLlFUeXBlID0gRUZJX1FVRVNJT05fVFlQRS5RVUVTVElPTl9SRUYNCj4gKyAgICAgICAgcE5v ZGVMaXN0WzFdLlFUeXBlID0gRUZJX1FVRVNJT05fVFlQRS5RVUVTVElPTl9SRUYNCj4gKyAgICAg ICAgcE5vZGVMaXN0WzJdLlFUeXBlID0gRUZJX1FVRVNJT05fVFlQRS5RVUVTVElPTl9SRUYNCj4g KyAgICAgICAgcE5vZGVMaXN0WzNdLlFUeXBlID0gRUZJX1FVRVNJT05fVFlQRS5RVUVTVElPTl9S RUYNCj4gKw0KPiArICAgICAgICBwTm9kZUxpc3RbMF0uTmV4dCA9IHBOb2RlTGlzdFsxXQ0KPiAr ICAgICAgICBwTm9kZUxpc3RbMV0uTmV4dCA9IHBOb2RlTGlzdFsyXQ0KPiArICAgICAgICBwTm9k ZUxpc3RbMl0uTmV4dCA9IHBOb2RlTGlzdFszXQ0KPiArICAgICAgICBwTm9kZUxpc3RbM10uTmV4 dCA9IHNlbGYuUXVlc3Rpb25MaXN0DQo+ICsgICAgICAgIHNlbGYuUXVlc3Rpb25MaXN0ID0gcE5v ZGVMaXN0WzBdDQo+ICsNCj4gKyAgICAgICAgZ0Zvcm1Qa2cuRG9QZW5kaW5nQXNzaWduKFZhcklk U3RyTGlzdFswXSwgUXVlc3Rpb25JZCkNCj4gKyAgICAgICAgZ0Zvcm1Qa2cuRG9QZW5kaW5nQXNz aWduKFZhcklkU3RyTGlzdFsxXSwgUXVlc3Rpb25JZCkNCj4gKyAgICAgICAgZ0Zvcm1Qa2cuRG9Q ZW5kaW5nQXNzaWduKFZhcklkU3RyTGlzdFsyXSwgUXVlc3Rpb25JZCkNCj4gKyAgICAgICAgZ0Zv cm1Qa2cuRG9QZW5kaW5nQXNzaWduKFZhcklkU3RyTGlzdFszXSwgUXVlc3Rpb25JZCkNCj4gKw0K PiArICAgICAgICByZXR1cm4gUXVlc3Rpb25JZCwgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NV Q0NFU1MNCj4gKw0KPiArICAgIGRlZiBSZWdpc3Rlck9sZERhdGVRdWVzdGlvbihzZWxmLCBZZWFy VmFySWQsIE1vbnRoVmFySWQsIERheVZhcklkLA0KPiBRdWVzdGlvbklkLCBnRm9ybVBrZyk6DQo+ ICsgICAgICAgIHBOb2RlTGlzdCA9IFtdDQo+ICsgICAgICAgIGlmIFllYXJWYXJJZCA9PSAiIiBv ciBNb250aFZhcklkID09ICIiIG9yIERheVZhcklkID09ICIiIG9yIFwNCj4gKyAgICAgICAgICAg IFllYXJWYXJJZCBpcyBOb25lIG9yIE1vbnRoVmFySWQgaXMgTm9uZSBvciBEYXlWYXJJZCBpcyBO b25lOg0KPiArICAgICAgICAgICAgcmV0dXJuIFF1ZXN0aW9uSWQsIFZmclJldHVybkNvZGUuVkZS X1JFVFVSTl9FUlJPUl9TS0lQRUQNCj4gKw0KPiArICAgICAgICBwTm9kZSA9IFNWZnJRdWVzdGlv bk5vZGUoTm9uZSwgWWVhclZhcklkLCBEQVRFX1lFQVJfQklUTUFTSykNCj4gKyAgICAgICAgaWYg cE5vZGUgaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICBwTm9kZUxpc3QuYXBwZW5kKHBOb2Rl KQ0KPiArICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgcmV0dXJuIEVGSV9RVUVTVElPTl9J RF9JTlZBTElELA0KPiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fT1VUX0ZPUl9SRVNPVVJDRVMN Cj4gKw0KPiArICAgICAgICBwTm9kZSA9IFNWZnJRdWVzdGlvbk5vZGUoTm9uZSwgTW9udGhWYXJJ ZCwNCj4gREFURV9NT05USF9CSVRNQVNLKQ0KPiArICAgICAgICBpZiBwTm9kZSBpcyBub3QgTm9u ZToNCj4gKyAgICAgICAgICAgIHBOb2RlTGlzdC5hcHBlbmQocE5vZGUpDQo+ICsgICAgICAgIGVs c2U6DQo+ICsgICAgICAgICAgICByZXR1cm4gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQsDQo+IFZm clJldHVybkNvZGUuVkZSX1JFVFVSTl9PVVRfRk9SX1JFU09VUkNFUw0KPiArDQo+ICsgICAgICAg IHBOb2RlID0gU1ZmclF1ZXN0aW9uTm9kZShOb25lLCBEYXlWYXJJZCwgREFURV9EQVlfQklUTUFT SykNCj4gKyAgICAgICAgaWYgcE5vZGUgaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICBwTm9k ZUxpc3QuYXBwZW5kKHBOb2RlKQ0KPiArICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgcmV0 dXJuIEVGSV9RVUVTVElPTl9JRF9JTlZBTElELA0KPiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5f T1VUX0ZPUl9SRVNPVVJDRVMNCj4gKw0KPiArICAgICAgICBpZiBRdWVzdGlvbklkID09IEVGSV9R VUVTVElPTl9JRF9JTlZBTElEOg0KPiArICAgICAgICAgICAgUXVlc3Rpb25JZCA9IHNlbGYuR2V0 RnJlZVF1ZXN0aW9uSWQoKQ0KPiArICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgaWYgc2Vs Zi5DaGVja1F1ZXN0aW9uSWRGcmVlKFF1ZXN0aW9uSWQpIGlzIEZhbHNlOg0KPiArICAgICAgICAg ICAgICAgIHJldHVybiBFRklfUVVFU1RJT05fSURfSU5WQUxJRCwNCj4gVmZyUmV0dXJuQ29kZS5W RlJfUkVUVVJOX1JFREVGSU5FRA0KPiArICAgICAgICAgICAgc2VsZi5NYXJrUXVlc3Rpb25JZFVz ZWQoUXVlc3Rpb25JZCkNCj4gKw0KPiArICAgICAgICBwTm9kZUxpc3RbMF0uUXVlc3Rpb25JZCA9 IFF1ZXN0aW9uSWQNCj4gKyAgICAgICAgcE5vZGVMaXN0WzFdLlF1ZXN0aW9uSWQgPSBRdWVzdGlv bklkDQo+ICsgICAgICAgIHBOb2RlTGlzdFsyXS5RdWVzdGlvbklkID0gUXVlc3Rpb25JZA0KPiAr ICAgICAgICBwTm9kZUxpc3RbMF0uUVR5cGUgPSBFRklfUVVFU0lPTl9UWVBFLlFVRVNUSU9OX0RB VEUNCj4gKyAgICAgICAgcE5vZGVMaXN0WzFdLlFUeXBlID0gRUZJX1FVRVNJT05fVFlQRS5RVUVT VElPTl9EQVRFDQo+ICsgICAgICAgIHBOb2RlTGlzdFsyXS5RVHlwZSA9IEVGSV9RVUVTSU9OX1RZ UEUuUVVFU1RJT05fREFURQ0KPiArICAgICAgICBwTm9kZUxpc3RbMF0uTmV4dCA9IHBOb2RlTGlz dFsxXQ0KPiArICAgICAgICBwTm9kZUxpc3RbMV0uTmV4dCA9IHBOb2RlTGlzdFsyXQ0KPiArICAg ICAgICBwTm9kZUxpc3RbMl0uTmV4dCA9IHNlbGYuUXVlc3Rpb25MaXN0DQo+ICsgICAgICAgIHNl bGYuUXVlc3Rpb25MaXN0ID0gcE5vZGVMaXN0WzBdDQo+ICsNCj4gKyAgICAgICAgZ0Zvcm1Qa2cu RG9QZW5kaW5nQXNzaWduKFllYXJWYXJJZCwgUXVlc3Rpb25JZCkNCj4gKyAgICAgICAgZ0Zvcm1Q a2cuRG9QZW5kaW5nQXNzaWduKE1vbnRoVmFySWQsIFF1ZXN0aW9uSWQpDQo+ICsgICAgICAgIGdG b3JtUGtnLkRvUGVuZGluZ0Fzc2lnbihEYXlWYXJJZCwgUXVlc3Rpb25JZCkNCj4gKw0KPiArICAg ICAgICByZXR1cm4gUXVlc3Rpb25JZCwgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MN Cj4gKw0KPiArICAgIGRlZiBSZWdpc3Rlck9sZFRpbWVRdWVzdGlvbihzZWxmLCBIb3VyVmFySWQs IE1pbnV0ZVZhcklkLCBTZWNvbmRWYXJJZCwNCj4gUXVlc3Rpb25JZCwgZ0Zvcm1Qa2cpOg0KPiAr ICAgICAgICBwTm9kZUxpc3QgPSBbXQ0KPiArICAgICAgICBpZiBIb3VyVmFySWQgPT0gIiIgb3Ig TWludXRlVmFySWQgPT0gIiIgb3IgU2Vjb25kVmFySWQgPT0gIiIgXA0KPiArICAgICAgICAgICAg b3IgSG91clZhcklkIGlzIE5vbmUgb3IgTWludXRlVmFySWQgaXMgTm9uZSBvciBTZWNvbmRWYXJJ ZCBpcyBOb25lOg0KPiArICAgICAgICAgICAgcmV0dXJuIFF1ZXN0aW9uSWQsIFZmclJldHVybkNv ZGUuVkZSX1JFVFVSTl9FUlJPUl9TS0lQRUQNCj4gKw0KPiArICAgICAgICBwTm9kZSA9IFNWZnJR dWVzdGlvbk5vZGUoTm9uZSwgSG91clZhcklkLCBUSU1FX0hPVVJfQklUTUFTSykNCj4gKyAgICAg ICAgaWYgcE5vZGUgaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICBwTm9kZUxpc3QuYXBwZW5k KHBOb2RlKQ0KPiArICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgcmV0dXJuIEVGSV9RVUVT VElPTl9JRF9JTlZBTElELA0KPiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fT1VUX0ZPUl9SRVNP VVJDRVMNCj4gKw0KPiArICAgICAgICBwTm9kZSA9IFNWZnJRdWVzdGlvbk5vZGUoTm9uZSwgTWlu dXRlVmFySWQsDQo+IFRJTUVfTUlOVVRFX0JJVE1BU0spDQo+ICsgICAgICAgIGlmIHBOb2RlIGlz IG5vdCBOb25lOg0KPiArICAgICAgICAgICAgcE5vZGVMaXN0LmFwcGVuZChwTm9kZSkNCj4gKyAg ICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIHJldHVybiBFRklfUVVFU1RJT05fSURfSU5WQUxJ RCwNCj4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX09VVF9GT1JfUkVTT1VSQ0VTDQo+ICsNCj4g KyAgICAgICAgcE5vZGUgPSBTVmZyUXVlc3Rpb25Ob2RlKE5vbmUsIFNlY29uZFZhcklkLA0KPiBU SU1FX1NFQ09ORF9CSVRNQVNLKQ0KPiArICAgICAgICBpZiBwTm9kZSBpcyBub3QgTm9uZToNCj4g KyAgICAgICAgICAgIHBOb2RlTGlzdC5hcHBlbmQocE5vZGUpDQo+ICsgICAgICAgIGVsc2U6DQo+ ICsgICAgICAgICAgICByZXR1cm4gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQsDQo+IFZmclJldHVy bkNvZGUuVkZSX1JFVFVSTl9PVVRfRk9SX1JFU09VUkNFUw0KPiArDQo+ICsgICAgICAgIGlmIFF1 ZXN0aW9uSWQgPT0gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQ6DQo+ICsgICAgICAgICAgICBRdWVz dGlvbklkID0gc2VsZi5HZXRGcmVlUXVlc3Rpb25JZCgpDQo+ICsgICAgICAgIGVsc2U6DQo+ICsg ICAgICAgICAgICBpZiBzZWxmLkNoZWNrUXVlc3Rpb25JZEZyZWUoUXVlc3Rpb25JZCkgaXMgRmFs c2U6DQo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIEVGSV9RVUVTVElPTl9JRF9JTlZBTElELA0K PiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fUkVERUZJTkVEDQo+ICsgICAgICAgICAgICBzZWxm Lk1hcmtRdWVzdGlvbklkVXNlZChRdWVzdGlvbklkKQ0KPiArDQo+ICsgICAgICAgIHBOb2RlTGlz dFswXS5RdWVzdGlvbklkID0gUXVlc3Rpb25JZA0KPiArICAgICAgICBwTm9kZUxpc3RbMV0uUXVl c3Rpb25JZCA9IFF1ZXN0aW9uSWQNCj4gKyAgICAgICAgcE5vZGVMaXN0WzJdLlF1ZXN0aW9uSWQg PSBRdWVzdGlvbklkDQo+ICsgICAgICAgIHBOb2RlTGlzdFswXS5RVHlwZSA9IEVGSV9RVUVTSU9O X1RZUEUuUVVFU1RJT05fVElNRQ0KPiArICAgICAgICBwTm9kZUxpc3RbMV0uUVR5cGUgPSBFRklf UVVFU0lPTl9UWVBFLlFVRVNUSU9OX1RJTUUNCj4gKyAgICAgICAgcE5vZGVMaXN0WzJdLlFUeXBl ID0gRUZJX1FVRVNJT05fVFlQRS5RVUVTVElPTl9USU1FDQo+ICsgICAgICAgIHBOb2RlTGlzdFsw XS5OZXh0ID0gcE5vZGVMaXN0WzFdDQo+ICsgICAgICAgIHBOb2RlTGlzdFsxXS5OZXh0ID0gcE5v ZGVMaXN0WzJdDQo+ICsgICAgICAgIHBOb2RlTGlzdFsyXS5OZXh0ID0gc2VsZi5RdWVzdGlvbkxp c3QNCj4gKyAgICAgICAgc2VsZi5RdWVzdGlvbkxpc3QgPSBwTm9kZUxpc3RbMF0NCj4gKw0KPiAr ICAgICAgICBnRm9ybVBrZy5Eb1BlbmRpbmdBc3NpZ24oSG91clZhcklkLCBRdWVzdGlvbklkKQ0K PiArICAgICAgICBnRm9ybVBrZy5Eb1BlbmRpbmdBc3NpZ24oTWludXRlVmFySWQsIFF1ZXN0aW9u SWQpDQo+ICsgICAgICAgIGdGb3JtUGtnLkRvUGVuZGluZ0Fzc2lnbihTZWNvbmRWYXJJZCwgUXVl c3Rpb25JZCkNCj4gKw0KPiArICAgICAgICByZXR1cm4gUXVlc3Rpb25JZCwgVmZyUmV0dXJuQ29k ZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gKw0KPiArICAgIGRlZiBQcmludEFsbFF1ZXN0aW9uKHNl bGYsIEZpbGVOYW1lKToNCj4gKyAgICAgICAgd2l0aCBvcGVuKEZpbGVOYW1lLCAidyIpIGFzIGY6 DQo+ICsgICAgICAgICAgICBwTm9kZSA9IHNlbGYuUXVlc3Rpb25MaXN0DQo+ICsgICAgICAgICAg ICB3aGlsZSBwTm9kZSBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgICAgICBmLndyaXRlKCJR dWVzdGlvbiBWYXJJZCBpcyB7fSBhbmQgUXVlc3Rpb25JZCBpcw0KPiAiLmZvcm1hdChwTm9kZS5W YXJJZFN0cikpDQo+ICsgICAgICAgICAgICAgICAgZi53cml0ZSgiJWRcbiIgJSAocE5vZGUuUXVl c3Rpb25JZCkpDQo+ICsgICAgICAgICAgICAgICAgcE5vZGUgPSBwTm9kZS5OZXh0DQo+ICsNCj4g KyAgICAgICAgZi5jbG9zZSgpDQo+IGRpZmYgLS1naXQgYS9CYXNlVG9vbHMvU291cmNlL1B5dGhv bi9WZnJDb21waWxlci9SRUFETUUubWQNCj4gYi9CYXNlVG9vbHMvU291cmNlL1B5dGhvbi9WZnJD b21waWxlci9SRUFETUUubWQNCj4gaW5kZXggZTkxZDQxYzg4ZC4uYjUwYTdiMjNjZiAxMDA2NDQN Cj4gLS0tIGEvQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vVmZyQ29tcGlsZXIvUkVBRE1FLm1kDQo+ ICsrKyBiL0Jhc2VUb29scy9Tb3VyY2UvUHl0aG9uL1ZmckNvbXBpbGVyL1JFQURNRS5tZA0KPiBA QCAtMSwyMCArMSw2OCBAQA0KPiAtIyBQeXRob24gVmZyQ29tcGlsZXIgVG9vbA0KPiANCj4gLSMj IE92ZXJ2aWV3DQo+IA0KPiAtVGhpcyBweXRob24gVmZyQ29tcGlsZXIgdG9vbCBpcyB0aGUgaW1w bGVtZW50YXRpb24gb2YgdGhlIGVkazIgVmZyQ29tcGlsZXINCj4gdG9vbCB3aGljaCBsb2NhdGVz IGF0DQo+IGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi90cmVlL21hc3Rlci9CYXNl VG9vbHMvU291cmNlL0MvVmZyQ29tDQo+IHBpbGUuDQo+IA0KPiAtDQo+IA0KPiAtIyMjIEludHJv ZHVjdGlvbg0KPiANCj4gLVRoZSBjb3JlIGZ1bmN0aW9uIG9mIHRoZSBvcmlnaW5hbCBDIFZmckNv bXBpbGVyIHRvb2wgaXMgdG8gY29udmVydCB0aGUgdmZyIGZpbGUNCj4gaW50byBJRlIgYmluYXJ5 IGFycmF5LiBIb3dldmVyLCB0aGUgdmZyIGZvcm1hdCBmaWxlIHN5bnRheCBpcyByZWxhdGl2ZWx5 DQo+IHVuY29tbW9uIGFuZCBoYXMgcG9vciByZWFkYWJpbGl0eSBmb3IgdXNlcnMuIFdoYXQncyBt b3JlLCB0aGUgQyB0b29sIGRvZXMNCj4gbm90IGNvbGxlY3QgYW5kIHN0b3JlIGV4dHJhIGluZm9y bWF0aW9uIGV4Y2VwdCBmb3IgYmluYXJ5IGdlbmVyYXRpb24uIFdoZW4NCj4gYW55IG1vZGlmaWNh dGlvbiBpcyBuZWVkZWQsIGRldmVsb3BlcnMgaGF2ZSB0byByZWFkIGFuZCBkZWFsIHdpdGggdGhl IElGUg0KPiBiaW5hcnksIHdoaWNoIGlzIHF1aXRlIGluZWZmaWNpZW50LiBUbyBzb2x2ZSB0aGlz IGlzc3VlLCB0aGlzIHB5dGhvbiBWZnJDb21waWxlcg0KPiB0b29sIHByb3Bvc2VzIHRvIGdlbmVy YXRlIHRoZSB5YW1sIGZvcm1hdCBmaWxlIG9uIHRoZSBiYXNpcyBvZiB0aGUgdmZyIGZvcm1hdA0K PiBmaWxlLiBXaXRoIHRoZSB5YW1sIGZpbGUsICB0aGUgbGF5b3V0IGFuZCBoaWVyYXJjaHkgb2Yg YWxsIE9wY29kZXMgaW4gdGhlIHZmciBmaWxlDQo+IHdpbGwgYmUgc2F2ZWQuIFRoZW4gbW9kaWZp Y2F0aW9uIHdpbGwgYmUgbXVjaCBlYWlzZXIuIEluIGFkZGl0aW9uLCBhbiBleHRyYQ0KPiBqc29u IGZpbGUgd2lsbCBiZSBnZW5lcmF0ZWQgZm9yIGJldHRlciB2YXJpYWJsZSByZWxhdGVkIGluZm9y bWF0aW9uIHByZXNlbnRhdGlvbi4NCj4gU28gdGhlIGxvbmctdGVybSBhaW0gb2YgdGhpcyB0b29s IGlzIHRvIGNvdmVyIHRoZSBzYW1lIHVzYWdlIGFzIHRoZSBlZGsyIEMNCj4gVmZyQ29tcGlsZXIg YW5kIGV4dGVuZCB0aGUgeWFtbC9qc29uIG91dHB1dCBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5IGFu ZA0KPiB2YXJpYWJpbGl0eS4NCj4gDQo+IC0NCj4gDQo+IC0jIyMgTWFpbiB1cGRhdGUgaW4gdGhp cyBjb21taXRtZW50DQo+IA0KPiAtLSBVcGRhdGUgdGhlIHZmciBwYXJzZXIgZ2VuZXJhdG9yIGZy b20gQU5UTFIgdG8gQU5UTFIgdjQsIHdoaWNoIGlzIG1vcmUNCj4gcmVhZGFibGUgYW5kIGlzIGVh aXNlciB0byBhZGQgb24gbmV3IGZ1bmN0aW9ucy4NCj4gDQo+IC0tIEdlbmVyYXRlIGEgeWFtbCBm aWxlIGZvciBlYWNoIHZmciBmaWxlLiBUaGUgeWFtbCBmaWxlIGRpc3BsYXlzIGFsbCB0aGUgY29u dGVudHMNCj4gaW4gdGhlIFZmciBmaWxlIGJ5IGRpZmZlcmVudCBPcGNvZGUgdHlwZXMgaW4gc2Vx dWVuY2UuDQo+IA0KPiAtLSBHZW5lcmF0ZSBhIGpzb24gZmlsZSBmb3IgZWFjaCB2ZnIgZmlsZS4g VGhlIGpzb24gZmlsZSBjb250YWlucyBhbGwgdGhlIGRlZmF1bHQNCj4gdmFsdWVzIGZvciBkaWZm ZXJlbnQgT3Bjb2RlIHR5cGVzIGluIHZmciBmaWxlcy4NCj4gDQo+IC0NCj4gDQo+IC0jIyMgS25v d24gaXNzdWVzDQo+IA0KPiAtDQo+IA0KPiAtLSBUaGUgcHl0aG9uIFZmckNvbXBpbGVyIHRvb2wg YWltcyB0byBjb3ZlciB0aGUgc2FtZSB1c2FnZSBhcyB0aGUgZWRrMiBDDQo+IFZmckNvbXBpbGVy LiBCdXQgY3VycmVudGx5LCB0aGUgcHl0aG9uIFZmckNvbXBpbGVyIHRvb2wgZG9lcyBub3Qgc3Vw cG9ydCBJRlINCj4gYmluYXJ5IGdlbmVyYXRpb24gZmVhdHVyZSwgdGhpcyBmZWF0dXJlIHdpbGwg YmUgYWRkZWQgaW4gZnV0dXJlIHVwZGF0ZS4NCj4gDQo+IC0tIFRoZSBweXRob24gVmZyQ29tcGls ZXIgdG9vbCB3aWxsIGV4dGVuZCBuZXcgZnVuY3Rpb25zLCB3aGljaCBpcyBhYmxlIHRvDQo+IGNv bXBpbGUgYm90aCB0aGUgdmZyIGFuZCB5YW1sIGZpbGVzLiBUaGlzIGZlYXR1cmUgd2lsbCBiZSBh ZGRlZCBpbiBmdXR1cmUNCj4gdXBkYXRlLg0KPiANCj4gLQ0KPiANCj4gLSMjIyBVc2Ugd2l0aCBC dWlsZCBTeXN0ZW0NCj4gDQo+IC0tIFRvIHVzZSB0aGUgVmZyQ29tcGlsZXIgUHl0aG9uIFRvb2wg d2l0aCBCdWlsZCBTeXN0ZW0sICBwbGVhc2UgYWRkIHRoZSAqKionLQ0KPiAtdmZyLXlhbWwtZW5h YmxlJyoqKiAgb3B0aW9uIGluIHRoZSBidWlsZCBjb21tYW5kLg0KPiANCj4gLS0gRm9yIEV4YW1w bGU6ICoqKmJ1aWxkIC1wIE92bWZQa2dcT3ZtZlBrZ0lhMzJYNjQuZHNjIC1hIElBMzIgLWEgWDY0 IC1qDQo+IGJ1aWxkLmxvZyAtLXZmci15YW1sLWVuYWJsZSoqKg0KPiANCj4gXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlDQo+ICsjIFB5dGhvbiBWZnJDb21waWxlciBUb29sDQo+ICsjIyBPdmVy dmlldw0KPiArVGhpcyBweXRob24gVmZyQ29tcGlsZXIgdG9vbCBpcyB0aGUgcHl0aG9uIGltcGxl bWVudGF0aW9uIG9mIHRoZSBlZGsyDQo+IFZmckNvbXBpbGVyIHRvb2wgd2hpY2ggQyBpbXBsZW1l bnRhdGlvbiBsb2NhdGVzIGF0DQo+IGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi90 cmVlL21hc3Rlci9CYXNlVG9vbHMvU291cmNlL0MvVmZyQ29tDQo+IHBpbGUuDQo+ICsNCj4gK1Ro aXMgcHl0aG9uIGltcGxlbWVudGF0aW9uIG5vdCBvbmx5IGNvdmVycyB0aGUgc2FtZSB1c2FnZSBh cyB0aGUgQyB2ZXJzaW9uDQo+IFZmckNvbXBpbGVyLCBidXQgYWxzbyBleHRlbmRzIHNldmVyYWwg bmV3IGZlYXR1cmVzLg0KPiArDQo+ICsjIyMgSW50cm9kdWN0aW9uDQo+ICtUaGUgY29yZSBmdW5j dGlvbiBvZiB0aGUgb3JpZ2luYWwgQyBWZnJDb21waWxlciB0b29sIGlzIHRvIGNvbnZlcnQgVkZS IGZpbGVzDQo+IGludG8gSUZSIGJpbmFyaWVzLiBIb3dldmVyLCB0aGUgVkZSIGZvcm1hdCBzeW50 YXggaXMgdW5jb21tb24gYW5kIGhhcyBwb29yDQo+IHJlYWRhYmlsaXR5IGZvciB1c2Vycy4gQWRk aXRpb25hbGx5LCB0aGUgQyB0b29sIGRvZXNuJ3QgZ2F0aGVyIG9yIHN0b3JlIGRlZmF1bHQNCj4g dmFyaWFibGUgaW5mb3JtYXRpb24sIGV4Y2VwdCBmb3IgYmluYXJ5IGdlbmVyYXRpb24uIFdoZW4g bW9kaWZpY2F0aW9ucyBhcmUNCj4gcmVxdWlyZWQsIGRldmVsb3BlcnMgaGF2ZSB0byBkZWFsIHdp dGggdGhlIGFic3RyYWN0IElGUiBiaW5hcnksIHJlc3VsdGluZyBpbg0KPiBpbmVmZmljaWVuY3ku IFRvIGFkZHJlc3MgdGhlc2UgY2hhbGxlbmdlcywgdGhpcyBweXRob24gdG9vbCBnZW5lcmF0ZXMg WUFNTA0KPiBmb3JtYXQgZmlsZXMgZnJvbSBWRlIgZmlsZXMuIFRoaXMgYXBwcm9hY2ggYWxsb3dz IGZvciBwcmVzZXJ2YXRpb24gb2YgdGhlIFZGUg0KPiBmaWxlJ3Mgb3Bjb2RlIGxheW91dCBhbmQg aGllcmFyY2h5LCBzaW1wbGlmeWluZyByZWFkYWJpbGl0eS4gTW9yZW92ZXIsIHRoZSB0b29sDQo+ IGdlbmVyYXRlcyBhbiBhZGRpdGlvbmFsIEpTT04gZmlsZSB0byBwcm92aWRlIGEgbW9yZSBhY2Nl c3NpYmxlIHByZXNlbnRhdGlvbiBvZg0KPiB2YXJpYWJsZS1yZWxhdGVkIGluZm9ybWF0aW9uLiBJ biBhIGZldyB3b3JkcywgdGhlIG5ldyB0b29sIG9mZmVycyB0aGUgc2FtZQ0KPiB1c2FnZSBhcyB0 aGUgb3JpZ2luYWwgQyBWZnJDb21waWxlciB3aGlsZSBleHBhbmRpbmcgZnVuY3Rpb25hbGl0eSB3 aXRoIHRoZQ0KPiBZQU1ML0pTT04gb3V0cHV0LCBlbmhhbmNpbmcgcmVhZGFiaWxpdHkgYW5kIGFk YXB0YWJpbGl0eS4NCj4gKw0KPiArIyMjIE1haW4gdXBkYXRlIGluIHRoaXMgY29tbWl0bWVudA0K PiArLSBVcGRhdGUgdGhlIHZmciBwYXJzZXIgZ2VuZXJhdG9yIGZyb20gQU5UTFIgdG8gQU5UTFIg djQsIHdoaWNoIGlzIG1vcmUNCj4gcmVhZGFibGUgYW5kIGlzIGVhaXNlciB0byBhZGQgb24gbmV3 IGdyYW1tYXJzIGFuZCBmdW5jdGlvbnMuDQo+ICstIENvdmVyIHRoZSBzYW1lIHVzYWdlIGFzIHRo ZSBlZGsyIEMgVmZyQ29tcGlsZXIuIFRoZSB0b29sIGlzIGFibGUgdG8NCj4gY29tcGlsZXMgVkZS IGludG8gLmMvbHN0L2hwayBvdXRwdXQgZmlsZXMuDQo+ICstIEV4dHJhY3QgdmFyaWFibGUgaW5m b3JtYXRpb24gZnJvbSBlYWNoIFZGUiBmaWxlIHRvIEpTT04uIFRoZSBvdXRwdXQgSlNPTg0KPiBm aWxlIHN0b3JlcyB0aGUgZGF0YSBzdHJ1Y3R1cmVzIGFuZCBkZWZhdWx0IHZhbHVlcyBvZiB2YXJp YWJsZXMuDQo+ICstIENvbnZlcnQgZWFjaCBWRlIgc291cmNlIGZvcm1hdCB0byBhbiBlcXVpdmFs ZW50IFlBTUwuIFRoZSBnZW5lcmF0ZWQNCj4gWUFNTCBmaWxlIGNvdmVycyB0aGUgc2FtZSBmb3Jt YXQgY29udGVudHMgaW4gdGhlIFZmciBmaWxlLg0KPiArDQo+ICsjIyMgS25vd24gaXNzdWVzDQo+ ICstIElzc3VlIDEgLSBUZXN0IENvdmVyYWdlIGFuZCBNZXRob2QNCj4gKyAgLSBUaGUgY3VycmVu dCBweXRob24gdmZyY29tcGlsZXIgdG9vbCBkb2VzIG5vdCBoYXZlIGEgZnVsbCBjb2RlIGNvdmVy YWdlDQo+IHRlc3QuDQo+ICsgICAgLSBTaG91bGQgYWRkIHVuaXQgdGVzdHMgZm9yIGhpZ2hlciBj b2RlIGNvdmVyYWdlLg0KPiArICAtIFRoZSB0ZXN0IHNob3VsZCBiZSBlbmFibGVkIGludG8gQXp1 cmUgcGlwZWxpbmVzIGZvciByZXRyaWdnZXJpbmcuDQo+ICsgIC0gVGhlIGN1cnJlbnQgdGVzdCBz Y3JpcHQgdXNlcyBzb21lIG91dHB1dCBiaW5hcmllcyBmb3IgdGVzdCBpbnB1dCwgd2lsbA0KPiBy ZW1vdmUgdGhlc2UgYmluYXJpZXMsIGFuZCBzYXZlIHRoZSBuZWNlc3NhcnkgcGFydCBjb250ZW50 IG9mIGl0IGRpcmVjdGx5IGludG8NCj4gdGhlIHRlc3Qgc2NyaXB0IGl0c2VsZi4NCj4gKy0gSXNz dWUgMiAtIENvZGUgc3R5bGUNCj4gKyAgLSBUaGUgY3VycmVudCBweXRob24gdmZyY29tcGlsZXIg dG9vbCBoYXMgc29tZSBjb2Rpbmcgc3R5bGUgc3RpbGwgbGlrZSBDIHN0eWxlDQo+IHdoaWNoIG5v dCBmb2xsb3dzIHRoZSBweXRob24gc3RhbmRhcmRpemUgcnVsZS4NCj4gKyAgICAtIFNob3VsZCBl bmhhbmNlIEdVSUQgdXNhZ2Ugd2l0aCAndXVpZCcgcGlwIG1vZHVsZTsNCj4gKyAgICAtIFNob3Vs ZCBmaWd1cmUgb3V0IGNvbW1vbiB3YXkgZm9yIFN0YXR1cyBDb2RlIHByb2Nlc3Npbmc7DQo+ICsg IC0gVGhlIGN1cnJlbnQgcHl0aG9uIHZmcmNvbXBpbGVyIHRvb2wgbmVlZCBkb2NzdHJpbmcgZGVz Y3JpcHRpb24gZm9yIGNvZGUNCj4gZXhwbGFuYXRpb24uDQo+ICstIElzc3VlIDMgLSBOZXcgZ2Vu ZXJhdGVkIFlBTUwgZm9ybWF0DQo+ICsgIC0gVGhlIGN1cnJlbnQgWUFNTCBmb3JtYXQgaXMgYSBy ZWZlcmVuY2UgdmVyc2lvbiwgYW5kIHdlIHdhcm1seSB3ZWxjb21lDQo+IGV2ZXJ5b25lIHRvIHBy b3ZpZGUgZmVlZGJhY2suDQo+ICstIEZ1dHVyZSBleHRlbnNpb24NCj4gKyAgLSBUaGUgdG9vbCB3 aWxsIGV4dGVuZCBuZXcgZnVuY3Rpb25zLCB3aGljaCBpcyBhYmxlIHRvIGNvbXBpbGUgeWFtbCBm aWxlcy4NCj4gVGhpcyBmZWF0dXJlIHdpbGwgYmUgYWRkZWQgaW4gZnV0dXJlIHVwZGF0ZS4NCj4g Kw0KPiArIyMjIFVzZSB3aXRoIEJ1aWxkIFN5c3RlbQ0KPiArVG8gdXNlIHRoZSBWZnJDb21waWxl ciBQeXRob24gVG9vbCB3aXRoIEJ1aWxkIFN5c3RlbSwgIHBsZWFzZSBkbyB0aGUNCj4gZm9sbG93 aW5nIHN0ZXBzIGluIHRoZSBidWlsZCBjb21tYW5kLg0KPiArMS4gTG9jYXRlIHRoZSAqKlZmckNv bXBpbGVyKiogZm9sZGVyIHRvIHBhdGgNCj4gKionXGVkazJcQmFzZVRvb2xzXFNvdXJjZVxQeXRo b24nLioqDQo+ICsxLiBPcGVuICAqKididWlsZF9ydWxlLnRlbXBsYXRlJyoqICBmaWxlICBpbiBw YXRoDQo+ICoqJ1xlZGsyXEJhc2VUb29sc1xDb25mXCcuKioNCj4gKyAgLSBGaW5kIHRoZSBDIFZG UiBjb21tYW5kIGxpbmUgYCQoVkZSKSIgJChWRlJfRkxBR1MpIC0tc3RyaW5nLWRiDQo+ICQoT1VU UFVUX0RJUikoKykkKE1PRFVMRV9OQU1FKVN0ckRlZnMuaHBrIC0tb3V0cHV0LWRpcmVjdG9yeQ0K PiAke2RfcGF0aH0gJChPVVRQVVRfRElSKSgrKSR7c19iYXNlfS5pYCBpbiAqKmJ1aWxkX3J1bGUu dGVtcGxhdGUqKiBmaWxlLg0KPiBUaGVyZSBhcmUgdHdvIEMgVkZSIGNvbW1hbmRzIGluIGl0Lg0K PiArICAtIEFkZCBuZXcgY29tbWFuZCBsaW5lIGAiJChQWVZGUikiICR7c3JjfSAtLXN0cmluZy1k Yg0KPiAkKE9VVFBVVF9ESVIpKCspJChNT0RVTEVfTkFNRSlTdHJEZWZzLmhwayAtdyAkKFdPUktT UEFDRSkgLW0NCj4gJChNT0RVTEVfTkFNRSkgLW8gJChPVVRQVVRfRElSKSAtLXZmcmAgYWZ0ZXIg ZWFjaCBWRlIgY29tbWFuZCBsaW5lcy4NCj4gKzIuIE9wZW4gICoqJ3Rvb2xzX2RlZi50ZW1wbGF0 ZScqKiAgZmlsZSAgaW4gcGF0aCAqKidcZWRrMlxCYXNlVG9vbHNcQ29uZlwnLioqDQo+ICsgIC0g RmluZCB0aGUgQyBWRlJfUEFUSCBjb21tYW5kIGxpbmUgYCpfKl8qX1ZGUl9QQVRIICAgICAgICAg ICAgICAgICAgICAgID0NCj4gVmZyQ29tcGlsZWAgaW4gKip0b29sc19kZWYudGVtcGxhdGUqKiBm aWxlLg0KPiArICAtIEFkZCBuZXcgY29tbWFuZCBsaW5lIGAqXypfKl9QWVZGUl9QQVRIICAgICAg ICAgICAgICAgICAgICA9IFB5VmZyQ29tcGlsZWANCj4gYWZ0ZXIgdGhlIFZGUl9QQVRIIGNvbW1h bmQgbGluZS4NCj4gKzMuIEZvciB3aW5kb3dzIGJ1aWxkLCBjcmVhdGUgYSAqKlB5VmZyQ29tcGls ZS5iYXQqKiBmaWxlIGluIHBhdGgNCj4gKionQzpcZWRrMlxCYXNlVG9vbHNcQmluV3JhcHBlcnNc V2luZG93c0xpa2UnLioqDQo+ICsgIC0gQWRkIHRoZSBmb2xsb3dpbmcgbGluZXMgaW4gdGhlIGNy ZWF0ZWQgKipQeVZmckNvbXBpbGUuYmF0KiogZmlsZS4NCj4gKyAgICBgYGANCj4gKyAgICBAc2V0 bG9jYWwNCj4gKyAgICBAc2V0IFRvb2xOYW1lPUlmckNvbXBpbGVyDQo+ICsgICAgQHNldA0KPiBQ WVRIT05QQVRIPSVQWVRIT05QQVRIJTslQkFTRV9UT09MU19QQVRIJVxTb3VyY2VcUHl0aG9uOyVC QVMNCj4gRV9UT09MU19QQVRIJVxTb3VyY2VcUHl0aG9uXFZmckNvbXBpbGVyDQo+ICsgICAgQCVQ WVRIT05fQ09NTUFORCUgLW0gJVRvb2xOYW1lJSAlKg0KPiArICAgIGBgYA0KPiArNC4gRm9yIFVu aXggYnVpbGQsIGNyZWF0ZSBhICoqUHlWZnJDb21waWxlKiogZmlsZSBpbiBwYXRoDQo+ICoqJ0M6 XGVkazJcQmFzZVRvb2xzXEJpbldyYXBwZXJzXFBvc2l4TGlrZScuKioNCj4gKyAgLSBBZGQgdGhl IGZvbGxvd2luZyBsaW5lcyBpbiB0aGUgY3JlYXRlZCAqKlB5VmZyQ29tcGlsZSoqIGZpbGUuDQo+ ICsgICAgYGBgDQo+ICsgICAgIyEvdXNyL2Jpbi9lbnYgYmFzaA0KPiArICAgICNweXRob24gYGRp cm5hbWUgJDBgL1J1blRvb2xGcm9tU291cmNlLnB5IGBiYXNlbmFtZSAkMGAgJCoNCj4gKw0KPiAr ICAgICMgSWYgYSAke1BZVEhPTl9DT01NQU5EfSBjb21tYW5kIGlzIGF2YWlsYWJsZSwgdXNlIGl0 IGluIHByZWZlcmVuY2UNCj4gdG8gcHl0aG9uDQo+ICsgICAgaWYgY29tbWFuZCAtdiAke1BZVEhP Tl9DT01NQU5EfSA+L2Rldi9udWxsIDI+JjE7IHRoZW4NCj4gKyAgICAgICAgcHl0aG9uX2V4ZT0k e1BZVEhPTl9DT01NQU5EfQ0KPiArICAgIGZpDQo+ICsgICAgZnVsbF9jbWQ9JHtCQVNIX1NPVVJD RTotJDB9ICMgc2VlDQo+IGh0dHA6Ly9teXdpa2kud29vbGVkZ2Uub3JnL0Jhc2hGQVEvMDI4IGZv ciBhIGRpc2N1c3Npb24gb2Ygd2h5ICQwIGlzIG5vdCBhDQo+IGdvb2QgY2hvaWNlIGhlcmUNCj4g KyAgICBkaXI9JChkaXJuYW1lICIkZnVsbF9jbWQiKQ0KPiArICAgIGNtZD0ke2Z1bGxfY21kIyMq L30NCj4gKw0KPiArICAgIGV4cG9ydA0KPiBQWVRIT05QQVRIPSIkZGlyLy4uLy4uL1NvdXJjZS9Q eXRob246JGRpci8uLi8uLi9Tb3VyY2UvUHl0aG9uL1ZmckNvbXBpbGVyDQo+IDokZGlyLy4uLy4u L1NvdXJjZS9QeXRob24ke1BZVEhPTlBBVEg6KzoiJFBZVEhPTlBBVEgifSINCj4gKyAgICBleGVj ICIke3B5dGhvbl9leGU6LXB5dGhvbn0iIC1tIElmckNvbXBpbGVyICIkQCINCj4gKyAgICBgYGAN Cj4gKzUuIEFkZCBFbnY6IHJ1biBgcGlwIGluc3RhbGwgYW50bHI0LXB5dGhvbjMtcnVudGltZT09 NC43LjFgIGJhc2VkIG9uIHRoZQ0KPiBvcmlnaW5hbCBidWlsZCBlbnZpcm9ubWVudC4NCj4gKzYu IFJ1biBCdWlsZCBDb21tYW5kOiBgYnVpbGQgLXAgT3ZtZlBrZ1xPdm1mUGtnSWEzMlg2NC5kc2Mg LWEgSUEzMiAtYQ0KPiBYNjQgLWogYnVpbGQubG9nYA0KPiArYA0KPiBkaWZmIC0tZ2l0IGEvQmFz ZVRvb2xzL1NvdXJjZS9QeXRob24vVmZyQ29tcGlsZXIvVmZyRXJyb3IucHkNCj4gYi9CYXNlVG9v bHMvU291cmNlL1B5dGhvbi9WZnJDb21waWxlci9WZnJFcnJvci5weQ0KPiBkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQNCj4gaW5kZXggMzFjNDc5YTdkMS4uMDAwMDAwMDAwMA0KPiAtLS0gYS9CYXNl VG9vbHMvU291cmNlL1B5dGhvbi9WZnJDb21waWxlci9WZnJFcnJvci5weQ0KPiArKysgL2Rldi9u dWxsDQo+IEBAIC0xLDE2MiArMCwwIEBADQo+IC1pbXBvcnQgaW1wDQo+IA0KPiAtaW1wb3J0IHN5 cw0KPiANCj4gLWltcG9ydCBvcw0KPiANCj4gLWZyb20gZW51bSBpbXBvcnQgRW51bQ0KPiANCj4g LWZyb20gQ29tbW9uLkJ1aWxkVG9vbEVycm9yIGltcG9ydCAqDQo+IA0KPiAtaW1wb3J0IENvbW1v bi5FZGtMb2dnZXIgYXMgRWRrTG9nZ2VyDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3Mg VmZyUmV0dXJuQ29kZShFbnVtKToNCj4gDQo+IC0gICAgVkZSX1JFVFVSTl9TVUNDRVNTID0gMA0K PiANCj4gLSAgICBWRlJfUkVUVVJOX0VSUk9SX1NLSVBFRCA9IDENCj4gDQo+IC0gICAgVkZSX1JF VFVSTl9GQVRBTF9FUlJPUiA9IDINCj4gDQo+IC0gICAgVkZSX1JFVFVSTl9NSVNNQVRDSEVEID0g Mw0KPiANCj4gLSAgICBWRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSID0gNA0KPiANCj4gLSAg ICBWRlJfUkVUVVJOX09VVF9GT1JfUkVTT1VSQ0VTID0gNQ0KPiANCj4gLSAgICBWRlJfUkVUVVJO X1VOU1VQUE9SVEVEID0gNg0KPiANCj4gLSAgICBWRlJfUkVUVVJOX1JFREVGSU5FRCA9IDcNCj4g DQo+IC0gICAgVkZSX1JFVFVSTl9GT1JNSURfUkVERUZJTkVEID0gOA0KPiANCj4gLSAgICBWRlJf UkVUVVJOX1FVRVNUSU9OSURfUkVERUZJTkVEID0gOQ0KPiANCj4gLSAgICBWRlJfUkVUVVJOX1ZB UlNUT1JFSURfUkVERUZJTkVEID0gMTANCj4gDQo+IC0gICAgVkZSX1JFVFVSTl9VTkRFRklORUQg PSAxMQ0KPiANCj4gLSAgICBWRlJfUkVUVVJOX1ZBUl9OT1RERUZJTkVEX0JZX1FVRVNUSU9OID0g MTINCj4gDQo+IC0gICAgVkZSX1JFVFVSTl9WQVJTVE9SRV9EQVRBVFlQRV9SRURFRklORURfRVJS T1IgPSAxMw0KPiANCj4gLSAgICBWRlJfUkVUVVJOX0dFVF9FRklWQVJTVE9SRV9FUlJPUiA9IDE0 DQo+IA0KPiAtICAgIFZGUl9SRVRVUk5fRUZJVkFSU1RPUkVfVVNFX0VSUk9SID0gMTUNCj4gDQo+ IC0gICAgVkZSX1JFVFVSTl9FRklWQVJTVE9SRV9TSVpFX0VSUk9SID0gMTYNCj4gDQo+IC0gICAg VkZSX1JFVFVSTl9HRVRfTlZWQVJTVE9SRV9FUlJPUiA9IDE3DQo+IA0KPiAtICAgIFZGUl9SRVRV Uk5fUVZBUl9SRVVTRSA9IDE4DQo+IA0KPiAtICAgIFZGUl9SRVRVUk5fRkxBR1NfVU5TVVBQT1JU RUQgPSAxOQ0KPiANCj4gLSAgICBWRlJfUkVUVVJOX0VSUk9SX0FSUkFSWV9OVU0gPSAyMA0KPiAN Cj4gLSAgICBWRlJfUkVUVVJOX0RBVEFfU1RSSU5HX0VSUk9SID0gMjENCj4gDQo+IC0gICAgVkZS X1JFVFVSTl9ERUZBVUxUX1ZBTFVFX1JFREVGSU5FRCA9IDIyDQo+IA0KPiAtICAgIFZGUl9SRVRV Uk5fQ09OU1RBTlRfT05MWSA9IDIzDQo+IA0KPiAtICAgIFZGUl9SRVRVUk5fVkFSU1RPUkVfTkFN RV9SRURFRklORURfRVJST1IgPSAyNA0KPiANCj4gLSAgICBWRlJfUkVUVVJOX0JJVF9XSURUSF9F UlJPUiA9IDI1DQo+IA0KPiAtICAgIFZGUl9SRVRVUk5fU1RSSU5HX1RPX1VJTlRfT1ZFUkZMT1cg PSAyNg0KPiANCj4gLSAgICBWRlJfUkVUVVJOX0NPREVVTkRFRklORUQgPSAyNw0KPiANCj4gLQ0K PiANCj4gLQ0KPiANCj4gLXZmckVycm9yTWVzc2FnZSA9IHsNCj4gDQo+IC0gICAgVmZyUmV0dXJu Q29kZS5WRlJfUkVUVVJOX1NVQ0NFU1M6ICcnLA0KPiANCj4gLSAgICBWZnJSZXR1cm5Db2RlLlZG Ul9SRVRVUk5fRVJST1JfU0tJUEVEOiAnJywNCj4gDQo+IC0gICAgVmZyUmV0dXJuQ29kZS5WRlJf UkVUVVJOX0ZBVEFMX0VSUk9SOiAnZmF0YWwgZXJyb3IhIScsDQo+IA0KPiAtICAgIFZmclJldHVy bkNvZGUuVkZSX1JFVFVSTl9NSVNNQVRDSEVEOiAndW5leHBlY3RlZCB0b2tlbicsDQo+IA0KPiAt ICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUjogJ2ludmFsaWQg cGFyYW1ldGVyJywNCj4gDQo+IC0gICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX09VVF9GT1Jf UkVTT1VSQ0VTOiAnc3lzdGVtIG91dCBvZg0KPiBtZW1vcnknLA0KPiANCj4gLSAgICBWZnJSZXR1 cm5Db2RlLlZGUl9SRVRVUk5fVU5TVVBQT1JURUQ6ICd1bnN1cHBvcnRlZCcsDQo+IA0KPiAtICAg IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9SRURFRklORUQ6ICdhbHJlYWR5IGRlZmluZWQnLA0K PiANCj4gLSAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fRk9STUlEX1JFREVGSU5FRDogJ2Zv cm0gaWQgYWxyZWFkeQ0KPiBkZWZpbmVkJywNCj4gDQo+IC0gICAgVmZyUmV0dXJuQ29kZS5WRlJf UkVUVVJOX1FVRVNUSU9OSURfUkVERUZJTkVEOg0KPiANCj4gLSAgICAncXVlc3Rpb24gaWQgYWxy ZWFkeSBkZWZpbmVkJywNCj4gDQo+IC0gICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1ZBUlNU T1JFSURfUkVERUZJTkVEOg0KPiANCj4gLSAgICAndmFyc3RvcmUgaWQgYWxyZWFkeSBkZWZpbmVk JywNCj4gDQo+IC0gICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1VOREVGSU5FRDogJ3VuZGVm aW5lZCcsDQo+IA0KPiAtICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9WQVJfTk9UREVGSU5F RF9CWV9RVUVTVElPTjoNCj4gDQo+IC0gICAgJ3NvbWUgdmFyaWFibGUgaGFzIG5vdCBkZWZpbmVk IGJ5IGEgcXVlc3Rpb24nLA0KPiANCj4gLSAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fVkFS U1RPUkVfREFUQVRZUEVfUkVERUZJTkVEX0VSUk9SOg0KPiANCj4gLSAgICAnRGF0YSBTdHJ1Y3R1 cmUgaXMgZGVmaW5lZCBieSBtb3JlIHRoYW4gb25lIHZhcnN0b3JlczogaXQgY2FuXCd0IGJlIHJl ZmVycmVkDQo+IGFzIHZhcnN0b3JlOiBvbmx5IHZhcnN0b3JlIG5hbWUgY291bGQgYmUgdXNlZC4n LA0KPiANCj4gLSAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fR0VUX0VGSVZBUlNUT1JFX0VS Uk9SOiAnZ2V0IGVmaSB2YXJzdG9yZQ0KPiBlcnJvcicsDQo+IA0KPiAtICAgIFZmclJldHVybkNv ZGUuVkZSX1JFVFVSTl9FRklWQVJTVE9SRV9VU0VfRVJST1I6DQo+IA0KPiAtICAgICdjYW4gbm90 IHVzZSB0aGUgZWZpIHZhcnN0b3JlIGxpa2UgdGhpcycsDQo+IA0KPiAtICAgIFZmclJldHVybkNv ZGUuVkZSX1JFVFVSTl9FRklWQVJTVE9SRV9TSVpFX0VSUk9SOg0KPiANCj4gLSAgICAndW5zdXBw b3J0IGVmaSB2YXJzdG9yZSBzaXplIHNob3VsZCBiZSA8PSA4IGJ5dGVzJywNCj4gDQo+IC0gICAg VmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0dFVF9OVlZBUlNUT1JFX0VSUk9SOg0KPiANCj4gLSAg ICAnZ2V0IG5hbWUgdmFsdWUgdmFyc3RvcmUgZXJyb3InLA0KPiANCj4gLSAgICBWZnJSZXR1cm5D b2RlLlZGUl9SRVRVUk5fUVZBUl9SRVVTRToNCj4gDQo+IC0gICAgJ3ZhcmlhYmxlIHJldXNlZCBi eSBtb3JlIHRoYW4gb25lIHF1ZXN0aW9uJywNCj4gDQo+IC0gICAgVmZyUmV0dXJuQ29kZS5WRlJf UkVUVVJOX0ZMQUdTX1VOU1VQUE9SVEVEOiAnZmxhZ3MgdW5zdXBwb3J0ZWQnLA0KPiANCj4gLSAg ICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fRVJST1JfQVJSQVJZX05VTToNCj4gDQo+IC0gICAg J2FycmF5IG51bWJlciBlcnJvcjogdGhlIHZhbGlkIHZhbHVlIGlzIGluICgwIH4gTUFYX0lOREVY LTEgZm9yIFVFRkkgdmZyDQo+IGFuZCBpbiAoMSB+IE1BWF9JTkRFWCBmb3IgRnJhbWV3b3JrIFZm cicsDQo+IA0KPiAtICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9EQVRBX1NUUklOR19FUlJP UjoNCj4gDQo+IC0gICAgJ2RhdGEgZmllbGQgc3RyaW5nIGVycm9yIG9yIG5vdCBzdXBwb3J0JywN Cj4gDQo+IC0gICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0RFRkFVTFRfVkFMVUVfUkVERUZJ TkVEOg0KPiANCj4gLSAgICAnZGVmYXVsdCB2YWx1ZSByZS1kZWZpbmVkIHdpdGggZGlmZmVyZW50 IHZhbHVlJywNCj4gDQo+IC0gICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0NPTlNUQU5UX09O TFk6DQo+IA0KPiAtICAgICdvbmx5IGNvbnN0YW50IGlzIGFsbG93ZWQgaW4gdGhlIGV4cHJlc3Np b24nLA0KPiANCj4gLSAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fVkFSU1RPUkVfTkFNRV9S RURFRklORURfRVJST1I6DQo+IA0KPiAtICAgICdWYXJzdG9yZSBuYW1lIGlzIGRlZmluZWQgYnkg bW9yZSB0aGFuIG9uZSB2YXJzdG9yZXM6IGl0IGNhblwndCBiZSByZWZlcnJlZA0KPiBhcyB2YXJz dG9yZTogb25seSB2YXJzdG9yZSBzdHJ1Y3R1cmUgbmFtZSBjb3VsZCBiZSB1c2VkLicsDQo+IA0K PiAtICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9CSVRfV0lEVEhfRVJST1I6DQo+IA0KPiAt ICAgICdiaXQgd2lkdGggbXVzdCBiZSA8PSBzaXplb2YgKHR5cGUgKiA4IGFuZCB0aGUgbWF4IHdp ZHRoIGNhbiBub3QgPiAzMicsDQo+IA0KPiAtICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9T VFJJTkdfVE9fVUlOVF9PVkVSRkxPVzoNCj4gDQo+IC0gICAgJ1N0cmluZyB0byBVSU5UKiBPdmVy ZmxvdycsDQo+IA0KPiAtICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9DT0RFVU5ERUZJTkVE OiAndW5kZWZpbmVkIEVycm9yIENvZGUnDQo+IA0KPiAtfQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiAN Cj4gLWNsYXNzIEVGSV9WRlJfV0FSTklOR19DT0RFKEVudW0pOg0KPiANCj4gLSAgICBWRlJfV0FS TklOR19ERUZBVUxUX1ZBTFVFX1JFREVGSU5FRCA9IDANCj4gDQo+IC0gICAgVkZSX1dBUk5JTkdf QUNUSU9OX1dJVEhfVEVYVF9UV08gPSAxDQo+IA0KPiAtICAgIFZGUl9XQVJOSU5HX09CU09MRVRF RF9GUkFNRVdPUktfT1BDT0RFID0gMg0KPiANCj4gLSAgICBWRlJfV0FSTklOR19DT0RFVU5ERUZJ TkVEID0gMw0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLXZmcldhcm5pbmdNZXNzYWdlID0gew0K PiANCj4gLSAgICBFRklfVkZSX1dBUk5JTkdfQ09ERS5WRlJfV0FSTklOR19ERUZBVUxUX1ZBTFVF X1JFREVGSU5FRDoNCj4gDQo+IC0gICAgIjogZGVmYXVsdCB2YWx1ZSByZS1kZWZpbmVkIHdpdGgg ZGlmZmVyZW50IHZhbHVlIiwNCj4gDQo+IC0gICAgRUZJX1ZGUl9XQVJOSU5HX0NPREUuVkZSX1dB Uk5JTkdfQUNUSU9OX1dJVEhfVEVYVF9UV086DQo+IA0KPiAtICAgICI6IEFjdGlvbiBvcGNvZGUg c2hvdWxkIG5vdCBoYXZlIFRleHRUd28gcGFydCIsDQo+IA0KPiAtDQo+IEVGSV9WRlJfV0FSTklO R19DT0RFLlZGUl9XQVJOSU5HX09CU09MRVRFRF9GUkFNRVdPUktfT1BDTw0KPiBERToNCj4gDQo+ IC0gICAgIjogTm90IHJlY29tbWVuZCB0byB1c2Ugb2Jzb2xldGVkIGZyYW1ld29yayBvcGNvZGUi LA0KPiANCj4gLSAgICBFRklfVkZSX1dBUk5JTkdfQ09ERS5WRlJfV0FSTklOR19DT0RFVU5ERUZJ TkVEOiAiOiB1bmRlZmluZWQNCj4gV2FybmluZyBDb2RlIg0KPiANCj4gLX0NCj4gDQo+IC0NCj4g DQo+IC0NCj4gDQo+IC1jbGFzcyBDVmZyRXJyb3JIYW5kbGUoKToNCj4gDQo+IC0NCj4gDQo+IC0g ICAgZGVmIF9faW5pdF9fKHNlbGYpOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX0lucHV0RmlsZU5h bWUgPSBOb25lDQo+IA0KPiAtICAgICAgICBzZWxmLl9fdmZyRXJyb3JNZXNzYWdlID0gdmZyRXJy b3JNZXNzYWdlDQo+IA0KPiAtICAgICAgICBzZWxmLl9fdmZyV2FybmluZ01lc3NhZ2UgPSB2ZnJX YXJuaW5nTWVzc2FnZQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX1dhcm5pbmdBc0Vycm9yID0gRmFs c2UNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldFdhcm5pbmdBc0Vycm9yKHNlbGYsIFdhcm5p bmdBc0Vycm9yKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19XYXJuaW5nQXNFcnJvciA9IFdhcm5p bmdBc0Vycm9yDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXRJbnB1dEZpbGUoc2VsZiwgSW5w dXRGaWxlKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19JbnB1dEZpbGVOYW1lID0gSW5wdXRGaWxl DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBIYW5kbGVXYXJuaW5nKHNlbGYsIFdhcm5pbmdDb2Rl LCBMaW5lTnVtLCBUb2tlblZhbHVlPU5vbmUpOg0KPiANCj4gLSAgICAgICAgaWYgc2VsZi5fX3Zm cldhcm5pbmdNZXNzYWdlID09IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIDENCj4g DQo+IC0gICAgICAgIFdhcm5pbmdNc2cgPSAnJw0KPiANCj4gLSAgICAgICAgZm9yIGtleSBpbiBz ZWxmLl9fdmZyV2FybmluZ01lc3NhZ2Uua2V5cygpOg0KPiANCj4gLSAgICAgICAgICAgIGlmIFdh cm5pbmdDb2RlID09IHNlbGYuX192ZnJXYXJuaW5nTWVzc2FnZVtrZXldOg0KPiANCj4gLSAgICAg ICAgICAgICAgICBXYXJuaW5nTXNnID0gc2VsZi5fX3Zmcldhcm5pbmdNZXNzYWdlW2tleV0NCj4g DQo+IC0gICAgICAgICAgICAgICAgYnJlYWsNCj4gDQo+IC0gICAgICAgIGlmIFdhcm5pbmdNc2cg IT0gJyc6DQo+IA0KPiAtICAgICAgICAgICAgaWYgc2VsZi5fX1dhcm5pbmdBc0Vycm9yOg0KPiAN Cj4gLSAgICAgICAgICAgICAgICBFZGtMb2dnZXIuZXJyb3IoJ1ZmckNvbXBpbGVyJywgV2Fybmlu Z0NvZGUsIFdhcm5pbmdNc2csDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLl9fSW5wdXRGaWxlTmFtZSwgTGluZU51bSwNCj4gDQo+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJ3YXJuaW5nIHRyZWF0ZWQgYXMgZXJyb3IiKQ0KPiANCj4gLSAgICAg ICAgICAgIEVka0xvZ2dlci53YXJuKCdWZnJDb21waWxlcicsIFdhcm5pbmdNc2csIHNlbGYuX19J bnB1dEZpbGVOYW1lLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgIExpbmVOdW0s IFRva2VuVmFsdWUpDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBQcmludE1zZyhzZWxmLA0KPiAN Cj4gLSAgICAgICAgICAgICAgICAgTGluZU51bSwNCj4gDQo+IC0gICAgICAgICAgICAgICAgIE1z Z1R5cGU9J0Vycm9yJywNCj4gDQo+IC0gICAgICAgICAgICAgICAgIEVycm9yTXNnPU5vbmUsDQo+ IA0KPiAtICAgICAgICAgICAgICAgICBUb2tlblZhbHVlPU5vbmUpOg0KPiANCj4gLSAgICAgICAg aWYgTXNnVHlwZSA9PSAnV2FybmluZyc6DQo+IA0KPiAtICAgICAgICAgICAgRWRrTG9nZ2VyLnZl cmJvc2UoRXJyb3JNc2cpDQo+IA0KPiAtICAgICAgICBlbHNlOg0KPiANCj4gLSAgICAgICAgICAg IEVka0xvZ2dlci5lcnJvcignVmZyQ29tcGlsZXInLCAweDMwMDAsIEVycm9yTXNnLA0KPiANCj4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9fSW5wdXRGaWxlTmFtZSwgTGluZU51 bSwgVG9rZW5WYWx1ZSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEhhbmRsZUVycm9yKHNlbGYs IEVycm9yQ29kZSwgTGluZU51bT1Ob25lLCBUb2tlblZhbHVlPU5vbmUpOg0KPiANCj4gLSAgICAg ICAgaWYgc2VsZi5fX3ZmckVycm9yTWVzc2FnZSA9PSBOb25lOg0KPiANCj4gLSAgICAgICAgICAg IHJldHVybiAxDQo+IA0KPiAtICAgICAgICBFcnJvck1zZyA9ICcnDQo+IA0KPiAtICAgICAgICBm b3Iga2V5IGluIHNlbGYuX192ZnJFcnJvck1lc3NhZ2Uua2V5cygpOg0KPiANCj4gLSAgICAgICAg ICAgIGlmIEVycm9yQ29kZSA9PSBzZWxmLl9fdmZyRXJyb3JNZXNzYWdlW2tleV06DQo+IA0KPiAt ICAgICAgICAgICAgICAgIEVycm9yTXNnID0gc2VsZi5fX3ZmckVycm9yTWVzc2FnZVtrZXldDQo+ IA0KPiAtICAgICAgICAgICAgICAgIGJyZWFrDQo+IA0KPiAtICAgICAgICBpZiBFcnJvck1zZyAh PSAnJzoNCj4gDQo+IC0gICAgICAgICAgICBFZGtMb2dnZXIuZXJyb3IoJ1ZmckNvbXBpbGVyJywg RXJyb3JDb2RlLCBFcnJvck1zZywNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5fX0lucHV0RmlsZU5hbWUsIExpbmVOdW0sIFRva2VuVmFsdWUpDQo+IA0KPiAtICAgICAg ICAgICAgcmV0dXJuIDENCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAg cmV0dXJuIDANCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1nQ1ZmckVycm9ySGFuZGxlID0gQ1Zm ckVycm9ySGFuZGxlKCkNCj4gDQo+IFwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KPiBkaWZm IC0tZ2l0IGEvQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vVmZyQ29tcGlsZXIvVmZyRm9ybVBrZy5w eQ0KPiBiL0Jhc2VUb29scy9Tb3VyY2UvUHl0aG9uL1ZmckNvbXBpbGVyL1ZmckZvcm1Qa2cucHkN Cj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDk0NGIxZmUxOTMuLjAwMDAwMDAw MDANCj4gLS0tIGEvQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vVmZyQ29tcGlsZXIvVmZyRm9ybVBr Zy5weQ0KPiArKysgL2Rldi9udWxsDQo+IEBAIC0xLDI3MzggKzAsMCBAQA0KPiAtZnJvbSBhc3Qg aW1wb3J0IEZvcg0KPiANCj4gLWZyb20gcmUgaW1wb3J0IEwNCj4gDQo+IC1mcm9tIHNyZV9wYXJz ZSBpbXBvcnQgRkxBR1MNCj4gDQo+IC1mcm9tIHN0YXQgaW1wb3J0IEZJTEVfQVRUUklCVVRFX1NQ QVJTRV9GSUxFDQo+IA0KPiAtZnJvbSBWZnJDb21waWxlci5Db21tb25DdHlwZXMgaW1wb3J0ICoN Cj4gDQo+IC1mcm9tIFZmckNvbXBpbGVyLlZmckVycm9yIGltcG9ydCBWZnJSZXR1cm5Db2RlDQo+ IA0KPiAtZnJvbSBWZnJDb21waWxlci5WZnJVdGlsaXR5IGltcG9ydCAqDQo+IA0KPiAtDQo+IA0K PiAtZnJvbSBjdHlwZXMgaW1wb3J0ICoNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBP cGNvZGVTaXplc1Njb3BlTm9kZSgpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18o c2VsZiwgU2l6ZSwgU2NvcGUpOg0KPiANCj4gLSAgICAgICAgc2VsZi5TaXplID0gU2l6ZQ0KPiAN Cj4gLSAgICAgICAgc2VsZi5TY29wZSA9IFNjb3BlDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAt Z09wY29kZVNpemVzU2NvcGVUYWJsZSA9IFsNCj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5v ZGUoMCwgMCksICAjIEVGSV9JRlJfSU5WQUxJRCAtIDB4MDANCj4gDQo+IC0gICAgT3Bjb2RlU2l6 ZXNTY29wZU5vZGUoY3R5cGVzLnNpemVvZihFRklfSUZSX0ZPUk0pLCAxKSwgICMNCj4gRUZJX0lG Ul9GT1JNX09QDQo+IA0KPiAtICAgIE9wY29kZVNpemVzU2NvcGVOb2RlKGN0eXBlcy5zaXplb2Yo RUZJX0lGUl9TVUJUSVRMRSksDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgIDEpLCAg IyBFRklfSUZSX1NVQlRJVExFX09QDQo+IA0KPiAtICAgIE9wY29kZVNpemVzU2NvcGVOb2RlKGN0 eXBlcy5zaXplb2YoRUZJX0lGUl9URVhUKSwgMCksICAjDQo+IEVGSV9JRlJfVEVYVF9PUA0KPiAN Cj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9JRlJfSU1BR0Up LCAwKSwgICMNCj4gRUZJX0lGUl9JTUFHRV9PUA0KPiANCj4gLSAgICBPcGNvZGVTaXplc1Njb3Bl Tm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9JRlJfT05FX09GKSwNCj4gDQo+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgMSksICAjIEVGSV9JRlJfT05FX09GX09QIC0gMHgwNQ0KPiANCj4gLSAgICBP cGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9JRlJfQ0hFQ0tCT1gpLA0KPiAN Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAxKSwgICMgRUZJX0lGUl9DSEVDS0JPWF9PUA0K PiANCj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9JRlJfTlVN RVJJQyksDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgIDEpLCAgIyBFRklfSUZSX05V TUVSSUNfT1ANCj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5vZGUoY3R5cGVzLnNpemVvZihF RklfSUZSX1BBU1NXT1JEKSwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgMSksICAj IEVGSV9JRlJfUEFTU1dPUkRfT1ANCj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5vZGUoY3R5 cGVzLnNpemVvZihFRklfSUZSX09ORV9PRl9PUFRJT04pLA0KPiANCj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAwKSwgICMgRUZJX0lGUl9PTkVfT0ZfT1BUSU9OX09QDQo+IA0KPiAtICAgIE9w Y29kZVNpemVzU2NvcGVOb2RlKGN0eXBlcy5zaXplb2YoRUZJX0lGUl9TVVBQUkVTU19JRiksDQo+ IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgIDEpLCAgIyBFRklfSUZSX1NVUFBSRVNTX0lG IC0gMHgwQQ0KPiANCj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVG SV9JRlJfTE9DS0VEKSwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgMCksICAjIEVG SV9JRlJfTE9DS0VEX09QDQo+IA0KPiAtICAgIE9wY29kZVNpemVzU2NvcGVOb2RlKGN0eXBlcy5z aXplb2YoRUZJX0lGUl9BQ1RJT04pLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAx KSwgICMgRUZJX0lGUl9BQ1RJT05fT1ANCj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5vZGUo Y3R5cGVzLnNpemVvZihFRklfSUZSX1JFU0VUX0JVVFRPTiksDQo+IA0KPiAtICAgICAgICAgICAg ICAgICAgICAgICAgIDEpLCAgIyBFRklfSUZSX1JFU0VUX0JVVFRPTl9PUA0KPiANCj4gLSAgICBP cGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9JRlJfRk9STV9TRVQpLA0KPiAN Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAxKSwgICMgRUZJX0lGUl9GT1JNX1NFVF9PUCAt MHhFDQo+IA0KPiAtICAgIE9wY29kZVNpemVzU2NvcGVOb2RlKGN0eXBlcy5zaXplb2YoRUZJX0lG Ul9SRUYpLCAwKSwgICMgRUZJX0lGUl9SRUZfT1ANCj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29w ZU5vZGUoY3R5cGVzLnNpemVvZihFRklfSUZSX05PX1NVQk1JVF9JRiksDQo+IA0KPiAtICAgICAg ICAgICAgICAgICAgICAgICAgIDEpLCAgIyBFRklfSUZSX05PX1NVQk1JVF9JRl9PUCAtMHgxMA0K PiANCj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9JRlJfSU5D T05TSVNURU5UX0lGKSwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgMSksICAjIEVG SV9JRlJfSU5DT05TSVNURU5UX0lGX09QDQo+IA0KPiAtICAgIE9wY29kZVNpemVzU2NvcGVOb2Rl KGN0eXBlcy5zaXplb2YoRUZJX0lGUl9FUV9JRF9WQUwpLA0KPiANCj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAwKSwgICMgRUZJX0lGUl9FUV9JRF9WQUxfT1ANCj4gDQo+IC0gICAgT3Bjb2Rl U2l6ZXNTY29wZU5vZGUoY3R5cGVzLnNpemVvZihFRklfSUZSX0VRX0lEX0lEKSwNCj4gDQo+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgMCksICAjIEVGSV9JRlJfRVFfSURfSURfT1ANCj4gDQo+ IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5vZGUoY3R5cGVzLnNpemVvZihFRklfSUZSX0VRX0lEX1ZB TF9MSVNUKSwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgMCksICAjIEVGSV9JRlJf RVFfSURfTElTVF9PUCAtIDB4MTQNCj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5vZGUoY3R5 cGVzLnNpemVvZihFRklfSUZSX0FORCksIDApLCAgIw0KPiBFRklfSUZSX0FORF9PUA0KPiANCj4g LSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9JRlJfT1IpLCAwKSwg ICMgRUZJX0lGUl9PUl9PUA0KPiANCj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMu c2l6ZW9mKEVGSV9JRlJfTk9UKSwgMCksICAjDQo+IEVGSV9JRlJfTk9UX09QDQo+IA0KPiAtICAg IE9wY29kZVNpemVzU2NvcGVOb2RlKGN0eXBlcy5zaXplb2YoRUZJX0lGUl9SVUxFKSwgMSksICAj DQo+IEVGSV9JRlJfUlVMRV9PUA0KPiANCj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlw ZXMuc2l6ZW9mKEVGSV9JRlJfR1JBWV9PVVRfSUYpLA0KPiANCj4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAxKSwgICMgRUZJX0lGUl9HUkFZT1VUX0lGX09QIC0gMHgxOQ0KPiANCj4gLSAgICBP cGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9JRlJfREFURSksIDEpLCAgIw0K PiBFRklfSUZSX0RBVEVfT1ANCj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5vZGUoY3R5cGVz LnNpemVvZihFRklfSUZSX1RJTUUpLCAxKSwgICMNCj4gRUZJX0lGUl9USU1FX09QDQo+IA0KPiAt ICAgIE9wY29kZVNpemVzU2NvcGVOb2RlKGN0eXBlcy5zaXplb2YoRUZJX0lGUl9TVFJJTkcpLA0K PiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAxKSwgICMgRUZJX0lGUl9TVFJJTkdfT1AN Cj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5vZGUoY3R5cGVzLnNpemVvZihFRklfSUZSX1JF RlJFU0gpLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAwKSwgICMgRUZJX0lGUl9S RUZSRVNIX09QDQo+IA0KPiAtICAgIE9wY29kZVNpemVzU2NvcGVOb2RlKGN0eXBlcy5zaXplb2Yo RUZJX0lGUl9ESVNBQkxFX0lGKSwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgMSks ICAjIEVGSV9JRlJfRElTQUJMRV9JRl9PUCAtIDB4MUUNCj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNT Y29wZU5vZGUoMCwgMCksICAjIDB4MUYNCj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5vZGUo Y3R5cGVzLnNpemVvZihFRklfSUZSX1RPX0xPV0VSKSwNCj4gDQo+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgMCksICAjIEVGSV9JRlJfVE9fTE9XRVJfT1AgLSAweDIwDQo+IA0KPiAtICAgIE9w Y29kZVNpemVzU2NvcGVOb2RlKGN0eXBlcy5zaXplb2YoRUZJX0lGUl9UT19VUFBFUiksDQo+IA0K PiAtICAgICAgICAgICAgICAgICAgICAgICAgIDApLCAgIyBFRklfSUZSX1RPX1VQUEVSX09QIC0g MHgyMQ0KPiANCj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9J RlJfTUFQKSwgMSksICAjIEVGSV9JRlJfTUFQIC0NCj4gMHgyMg0KPiANCj4gLSAgICBPcGNvZGVT aXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9JRlJfT1JERVJFRF9MSVNUKSwNCj4gDQo+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgMSksICAjIEVGSV9JRlJfT1JERVJFRF9MSVNUX09Q IC0gMHgyMw0KPiANCj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVG SV9JRlJfVkFSU1RPUkUpLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAwKSwgICMg RUZJX0lGUl9WQVJTVE9SRV9PUA0KPiANCj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlw ZXMuc2l6ZW9mKEVGSV9JRlJfVkFSU1RPUkVfTkFNRV9WQUxVRSksDQo+IA0KPiAtICAgICAgICAg ICAgICAgICAgICAgICAgIDApLCAgIyBFRklfSUZSX1ZBUlNUT1JFX05BTUVfVkFMVUVfT1ANCj4g DQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5vZGUoY3R5cGVzLnNpemVvZihFRklfSUZSX1ZBUlNU T1JFX0VGSSksDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgIDApLCAgIyBFRklfSUZS X1ZBUlNUT1JFX0VGSV9PUA0KPiANCj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMu c2l6ZW9mKEVGSV9JRlJfVkFSU1RPUkVfREVWSUNFKSwNCj4gDQo+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgMSksICAjIEVGSV9JRlJfVkFSU1RPUkVfREVWSUNFX09QDQo+IA0KPiAtICAgIE9w Y29kZVNpemVzU2NvcGVOb2RlKGN0eXBlcy5zaXplb2YoRUZJX0lGUl9WRVJTSU9OKSwNCj4gDQo+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgMCksICAjIEVGSV9JRlJfVkVSU0lPTl9PUCAtIDB4 MjgNCj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5vZGUoY3R5cGVzLnNpemVvZihFRklfSUZS X0VORCksIDApLCAgIw0KPiBFRklfSUZSX0VORF9PUA0KPiANCj4gLSAgICBPcGNvZGVTaXplc1Nj b3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9JRlJfTUFUQ0gpLA0KPiANCj4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAwKSwgICMgRUZJX0lGUl9NQVRDSF9PUCAtIDB4MkENCj4gDQo+IC0gICAg T3Bjb2RlU2l6ZXNTY29wZU5vZGUoY3R5cGVzLnNpemVvZihFRklfSUZSX0dFVCksIDApLCAgIyBF RklfSUZSX0dFVCAtDQo+IDB4MkINCj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5vZGUoY3R5 cGVzLnNpemVvZihFRklfSUZSX1NFVCksIDApLCAgIyBFRklfSUZSX1NFVCAtDQo+IDB4MkMNCj4g DQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5vZGUoY3R5cGVzLnNpemVvZihFRklfSUZSX1JFQUQp LA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAwKSwgICMgRUZJX0lGUl9SRUFEIC0g MHgyRA0KPiANCj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9J RlJfV1JJVEUpLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAwKSwgICMgRUZJX0lG Ul9XUklURSAtIDB4MkUNCj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5vZGUoY3R5cGVzLnNp emVvZihFRklfSUZSX0VRVUFMKSwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgMCks ICAjIEVGSV9JRlJfRVFVQUxfT1AgLSAweDJGDQo+IA0KPiAtICAgIE9wY29kZVNpemVzU2NvcGVO b2RlKGN0eXBlcy5zaXplb2YoRUZJX0lGUl9OT1RfRVFVQUwpLA0KPiANCj4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAwKSwgICMgRUZJX0lGUl9OT1RfRVFVQUxfT1ANCj4gDQo+IC0gICAgT3Bj b2RlU2l6ZXNTY29wZU5vZGUoY3R5cGVzLnNpemVvZihFRklfSUZSX0dSRUFURVJfVEhBTiksDQo+ IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgIDApLCAgIyBFRklfSUZSX0dSRUFURVJfVEhB Tl9PUA0KPiANCj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9J RlJfR1JFQVRFUl9FUVVBTCksDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgIDApLCAg IyBFRklfSUZSX0dSRUFURVJfRVFVQUxfT1ANCj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5v ZGUoY3R5cGVzLnNpemVvZihFRklfSUZSX0xFU1NfVEhBTiksDQo+IA0KPiAtICAgICAgICAgICAg ICAgICAgICAgICAgIDApLCAgIyBFRklfSUZSX0xFU1NfVEhBTl9PUA0KPiANCj4gLSAgICBPcGNv ZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9JRlJfTEVTU19FUVVBTCksDQo+IA0K PiAtICAgICAgICAgICAgICAgICAgICAgICAgIDApLCAgIyBFRklfSUZSX0xFU1NfRVFVQUxfT1Ag LSAweDM0DQo+IA0KPiAtICAgIE9wY29kZVNpemVzU2NvcGVOb2RlKGN0eXBlcy5zaXplb2YoRUZJ X0lGUl9CSVRXSVNFX0FORCksDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgIDApLCAg IyBFRklfSUZSX0JJVFdJU0VfQU5EX09QDQo+IA0KPiAtICAgIE9wY29kZVNpemVzU2NvcGVOb2Rl KGN0eXBlcy5zaXplb2YoRUZJX0lGUl9CSVRXSVNFX09SKSwNCj4gDQo+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgMCksICAjIEVGSV9JRlJfQklUV0lTRV9PUl9PUA0KPiANCj4gLSAgICBPcGNv ZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9JRlJfQklUV0lTRV9OT1QpLA0KPiAN Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAwKSwgICMgRUZJX0lGUl9CSVRXSVNFX05PVF9P UA0KPiANCj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9JRlJf U0hJRlRfTEVGVCksDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgIDApLCAgIyBFRklf SUZSX1NISUZUX0xFRlRfT1ANCj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5vZGUoY3R5cGVz LnNpemVvZihFRklfSUZSX1NISUZUX1JJR0hUKSwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgMCksICAjIEVGSV9JRlJfU0hJRlRfUklHSFRfT1ANCj4gDQo+IC0gICAgT3Bjb2RlU2l6 ZXNTY29wZU5vZGUoY3R5cGVzLnNpemVvZihFRklfSUZSX0FERCksDQo+IA0KPiAtICAgICAgICAg ICAgICAgICAgICAgICAgIDApLCAgIyBFRklfSUZSX0FERF9PUCAtIDB4M0ENCj4gDQo+IC0gICAg T3Bjb2RlU2l6ZXNTY29wZU5vZGUoY3R5cGVzLnNpemVvZihFRklfSUZSX1NVQlRSQUNUKSwNCj4g DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgMCksICAjIEVGSV9JRlJfU1VCVFJBQ1RfT1AN Cj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5vZGUoY3R5cGVzLnNpemVvZihFRklfSUZSX01V TFRJUExZKSwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgMCksICAjIEVGSV9JRlJf TVVMVElQTFlfT1ANCj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5vZGUoY3R5cGVzLnNpemVv ZihFRklfSUZSX0RJVklERSksDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgIDApLCAg IyBFRklfSUZSX0RJVklERV9PUA0KPiANCj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlw ZXMuc2l6ZW9mKEVGSV9JRlJfTU9EVUxPKSwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgMCksICAjIEVGSV9JRlJfTU9EVUxPX09QIC0gMHgzRQ0KPiANCj4gLSAgICBPcGNvZGVTaXpl c1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9JRlJfUlVMRV9SRUYpLA0KPiANCj4gLSAgICAg ICAgICAgICAgICAgICAgICAgICAwKSwgICMgRUZJX0lGUl9SVUxFX1JFRl9PUA0KPiANCj4gLSAg ICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9JRlJfUVVFU1RJT05fUkVG MSksDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgIDApLCAgIyBFRklfSUZSX1FVRVNU SU9OX1JFRjFfT1ANCj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5vZGUoY3R5cGVzLnNpemVv ZihFRklfSUZSX1FVRVNUSU9OX1JFRjIpLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAwKSwgICMgRUZJX0lGUl9RVUVTVElPTl9SRUYyX09QIC0gMHg0MQ0KPiANCj4gLSAgICBPcGNv ZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9JRlJfVUlOVDgpLCAwKSwgICMNCj4g RUZJX0lGUl9VSU5UOA0KPiANCj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6 ZW9mKEVGSV9JRlJfVUlOVDE2KSwgMCksICAjDQo+IEVGSV9JRlJfVUlOVDE2DQo+IA0KPiAtICAg IE9wY29kZVNpemVzU2NvcGVOb2RlKGN0eXBlcy5zaXplb2YoRUZJX0lGUl9VSU5UMzIpLCAwKSwg ICMNCj4gRUZJX0lGUl9VSU5UMzINCj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5vZGUoY3R5 cGVzLnNpemVvZihFRklfSUZSX1VJTlQ2NCksIDApLCAgIw0KPiBFRklfSUZSX1VUTlQ2NA0KPiAN Cj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9JRlJfVFJVRSks DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgIDApLCAgIyBFRklfSUZSX1RSVUVfT1Ag LSAweDQ2DQo+IA0KPiAtICAgIE9wY29kZVNpemVzU2NvcGVOb2RlKGN0eXBlcy5zaXplb2YoRUZJ X0lGUl9GQUxTRSksIDApLCAgIw0KPiBFRklfSUZSX0ZBTFNFX09QDQo+IA0KPiAtICAgIE9wY29k ZVNpemVzU2NvcGVOb2RlKGN0eXBlcy5zaXplb2YoRUZJX0lGUl9UT19VSU5UKSwNCj4gDQo+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgMCksICAjIEVGSV9JRlJfVE9fVUlOVF9PUA0KPiANCj4g LSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9JRlJfVE9fU1RSSU5H KSwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgMCksICAjIEVGSV9JRlJfVE9fU1RS SU5HX09QDQo+IA0KPiAtICAgIE9wY29kZVNpemVzU2NvcGVOb2RlKGN0eXBlcy5zaXplb2YoRUZJ X0lGUl9UT19CT09MRUFOKSwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgMCksICAj IEVGSV9JRlJfVE9fQk9PTEVBTl9PUA0KPiANCj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShj dHlwZXMuc2l6ZW9mKEVGSV9JRlJfTUlEKSwgMCksICAjDQo+IEVGSV9JRlJfTUlEX09QDQo+IA0K PiAtICAgIE9wY29kZVNpemVzU2NvcGVOb2RlKGN0eXBlcy5zaXplb2YoRUZJX0lGUl9GSU5EKSwg MCksICAjDQo+IEVGSV9JRlJfRklORF9PUA0KPiANCj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9k ZShjdHlwZXMuc2l6ZW9mKEVGSV9JRlJfVE9LRU4pLCAwKSwgICMNCj4gRUZJX0lGUl9UT0tFTl9P UA0KPiANCj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9JRlJf U1RSSU5HX1JFRjEpLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAwKSwgICMgRUZJ X0lGUl9TVFJJTkdfUkVGMV9PUCAtIDB4NEUNCj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5v ZGUoY3R5cGVzLnNpemVvZihFRklfSUZSX1NUUklOR19SRUYyKSwNCj4gDQo+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgMCksICAjIEVGSV9JRlJfU1RSSU5HX1JFRjJfT1ANCj4gDQo+IC0gICAg T3Bjb2RlU2l6ZXNTY29wZU5vZGUoY3R5cGVzLnNpemVvZihFRklfSUZSX0NPTkRJVElPTkFMKSwN Cj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgMCksICAjIEVGSV9JRlJfQ09ORElUSU9O QUxfT1ANCj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5vZGUoY3R5cGVzLnNpemVvZihFRklf SUZSX1FVRVNUSU9OX1JFRjMpLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAwKSwg ICMgRUZJX0lGUl9RVUVTVElPTl9SRUYzX09QDQo+IA0KPiAtICAgIE9wY29kZVNpemVzU2NvcGVO b2RlKGN0eXBlcy5zaXplb2YoRUZJX0lGUl9aRVJPKSwgMCksICAjDQo+IEVGSV9JRlJfWkVST19P UA0KPiANCj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9JRlJf T05FKSwgMCksICAjDQo+IEVGSV9JRlJfT05FX09QDQo+IA0KPiAtICAgIE9wY29kZVNpemVzU2Nv cGVOb2RlKGN0eXBlcy5zaXplb2YoRUZJX0lGUl9PTkVTKSwgMCksICAjDQo+IEVGSV9JRlJfT05F U19PUA0KPiANCj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9J RlJfVU5ERUZJTkVEKSwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgMCksICAjIEVG SV9JRlJfVU5ERUZJTkVEX09QDQo+IA0KPiAtICAgIE9wY29kZVNpemVzU2NvcGVOb2RlKGN0eXBl cy5zaXplb2YoRUZJX0lGUl9MRU5HVEgpLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAwKSwgICMgRUZJX0lGUl9MRU5HVEhfT1ANCj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5v ZGUoY3R5cGVzLnNpemVvZihFRklfSUZSX0RVUCksDQo+IA0KPiAtICAgICAgICAgICAgICAgICAg ICAgICAgIDApLCAgIyBFRklfSUZSX0RVUF9PUCAtIDB4NTcNCj4gDQo+IC0gICAgT3Bjb2RlU2l6 ZXNTY29wZU5vZGUoY3R5cGVzLnNpemVvZihFRklfSUZSX1RISVMpLCAwKSwgICMNCj4gRUZJX0lG Ul9USElTX09QDQo+IA0KPiAtICAgIE9wY29kZVNpemVzU2NvcGVOb2RlKGN0eXBlcy5zaXplb2Yo RUZJX0lGUl9TUEFOKSwgMCksICAjDQo+IEVGSV9JRlJfU1BBTl9PUA0KPiANCj4gLSAgICBPcGNv ZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9JRlJfVkFMVUUpLCAxKSwgICMNCj4g RUZJX0lGUl9WQUxVRV9PUA0KPiANCj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMu c2l6ZW9mKEVGSV9JRlJfREVGQVVMVCksDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg IDApLCAgIyBFRklfSUZSX0RFRkFVTFRfT1ANCj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5v ZGUoY3R5cGVzLnNpemVvZihFRklfSUZSX0RFRkFVTFRTVE9SRSksDQo+IA0KPiAtICAgICAgICAg ICAgICAgICAgICAgICAgIDApLCAgIyBFRklfSUZSX0RFRkFVTFRTVE9SRV9PUCAtIDB4NUMNCj4g DQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5vZGUoY3R5cGVzLnNpemVvZihFRklfSUZSX0ZPUk1f TUFQKSwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgMSksICAjIEVGSV9JRlJfRk9S TV9NQVBfT1AgLSAweDVEDQo+IA0KPiAtICAgIE9wY29kZVNpemVzU2NvcGVOb2RlKGN0eXBlcy5z aXplb2YoRUZJX0lGUl9DQVRFTkFURSksDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg IDApLCAgIyBFRklfSUZSX0NBVEVOQVRFX09QDQo+IA0KPiAtICAgIE9wY29kZVNpemVzU2NvcGVO b2RlKGN0eXBlcy5zaXplb2YoRUZJX0lGUl9HVUlEKSwgMCksICAjDQo+IEVGSV9JRlJfR1VJRF9P UA0KPiANCj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVGSV9JRlJf U0VDVVJJVFkpLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAwKSwgICMgRUZJX0lG Ul9TRUNVUklUWV9PUCAtIDB4NjANCj4gDQo+IC0gICAgT3Bjb2RlU2l6ZXNTY29wZU5vZGUoY3R5 cGVzLnNpemVvZihFRklfSUZSX01PREFMX1RBRyksDQo+IA0KPiAtICAgICAgICAgICAgICAgICAg ICAgICAgIDApLCAgIyBFRklfSUZSX01PREFMX1RBR19PUCAtIDB4NjENCj4gDQo+IC0gICAgT3Bj b2RlU2l6ZXNTY29wZU5vZGUoY3R5cGVzLnNpemVvZihFRklfSUZSX1JFRlJFU0hfSUQpLA0KPiAN Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAwKSwgICMgRUZJX0lGUl9SRUZSRVNIX0lEX09Q IC0gMHg2Mg0KPiANCj4gLSAgICBPcGNvZGVTaXplc1Njb3BlTm9kZShjdHlwZXMuc2l6ZW9mKEVG SV9JRlJfV0FSTklOR19JRiksDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgIDEpLCAg IyBFRklfSUZSX1dBUk5JTkdfSUZfT1AgLSAweDYzDQo+IA0KPiAtICAgIE9wY29kZVNpemVzU2Nv cGVOb2RlKGN0eXBlcy5zaXplb2YoRUZJX0lGUl9NQVRDSDIpLCAwKQ0KPiANCj4gLV0NCj4gDQo+ IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBTQnVmZmVyTm9kZSgpOg0KPiANCj4gLQ0KPiANCj4g LSAgICBkZWYgX19pbml0X18oc2VsZiwgQnVmZmVyPScnLCBOZXh0PU5vbmUpOg0KPiANCj4gLSAg ICAgICAgc2VsZi5CdWZmZXIgPSBCdWZmZXINCj4gDQo+IC0gICAgICAgIHNlbGYuTmV4dCA9IE5l eHQNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBDRm9ybVBrZygpOg0KPiANCj4gLQ0K PiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwgQnVmZmVyU2l6ZT00MDk2KToNCj4gDQo+IC0N Cj4gDQo+IC0gICAgICAgIE5vZGUgPSBTQnVmZmVyTm9kZSgpDQo+IA0KPiAtICAgICAgICBzZWxm Ll9fQnVmZmVyTm9kZVF1ZXVlSGVhZCA9IE5vZGUNCj4gDQo+IC0gICAgICAgIHNlbGYuX19CdWZm ZXJOb2RlUXVldWVUYWlsID0gTm9kZQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX0N1cnJCdWZmZXJO b2RlID0gTm9kZQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX1JlYWRCdWZmZXJOb2RlID0gTm9uZQ0K PiANCj4gLSAgICAgICAgc2VsZi5fX1JlYWRCdWZmZXJPZmZzZXQgPSAwDQo+IA0KPiAtICAgICAg ICBzZWxmLl9fUGtnTGVuZ3RoID0gMA0KPiANCj4gLSAgICAgICAgc2VsZi5fX1BlbmRpbmdBc3Np Z25MaXN0ID0gTm9uZQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX0J1ZmZlclNpemUgPSBCdWZmZXJT aXplDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBHZXRQa2dMZW5ndGgoc2VsZik6DQo+IA0KPiAt ICAgICAgICByZXR1cm4gc2VsZi5fX1BrZ0xlbmd0aA0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYg X19jcmVhdGVOZXdOb2RlKHNlbGYpOg0KPiANCj4gLSAgICAgICAgTm9kZSA9IFNCdWZmZXJOb2Rl KCkNCj4gDQo+IC0gICAgICAgIHJldHVybiBOb2RlDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBf X0dldE5vZGVCZWZvcmUoc2VsZiwgQ3VycmVudE5vZGUpOg0KPiANCj4gLSAgICAgICAgRmlyc3RO b2RlID0gc2VsZi5fX0J1ZmZlck5vZGVRdWV1ZUhlYWQNCj4gDQo+IC0gICAgICAgIExhc3ROb2Rl ID0gc2VsZi5fX0J1ZmZlck5vZGVRdWV1ZUhlYWQNCj4gDQo+IC0gICAgICAgIHdoaWxlIEZpcnN0 Tm9kZSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGlmIEZpcnN0Tm9kZSA9PSBDdXJyZW50 Tm9kZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgYnJlYWsNCj4gDQo+IC0NCj4gDQo+IC0gICAg ICAgICAgICBMYXN0Tm9kZSA9IEZpcnN0Tm9kZQ0KPiANCj4gLSAgICAgICAgICAgIEZpcnN0Tm9k ZSA9IEZpcnN0Tm9kZS5OZXh0DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBGaXJzdE5vZGUg PT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBMYXN0Tm9kZSA9IE5vbmUNCj4gDQo+IC0NCj4g DQo+IC0gICAgICAgIHJldHVybiBMYXN0Tm9kZQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19J bnNlcnROb2RlQmVmb3JlKHNlbGYsIEN1cnJlbnROb2RlLCBOZXdOb2RlKToNCj4gDQo+IC0gICAg ICAgIExhc3ROb2RlID0gc2VsZi5fX0dldE5vZGVCZWZvcmUoQ3VycmVudE5vZGUpDQo+IA0KPiAt ICAgICAgICBpZiBMYXN0Tm9kZSA9PSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIHJldHVybiBW ZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fTUlTTUFUQ0hFRA0KPiANCj4gLQ0KPiANCj4gLSAgICAg ICAgTmV3Tm9kZS5OZXh0ID0gTGFzdE5vZGUuTmV4dA0KPiANCj4gLSAgICAgICAgTGFzdE5vZGUu TmV4dCA9IE5ld05vZGUNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIElmckJpbkJ1ZmZlckdldChz ZWxmLCBMZW4pOg0KPiANCj4gLSAgICAgICAgaWYgTGVuID09IDAgb3IgTGVuID4gc2VsZi5fX0J1 ZmZlclNpemU6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIE5vbmUNCj4gDQo+IC0gICAgICAg IGlmIGxlbihzZWxmLl9fQ3VyckJ1ZmZlck5vZGUuQnVmZmVyKSArIExlbiA+IHNlbGYuX19CdWZm ZXJTaXplOg0KPiANCj4gLSAgICAgICAgICAgIE5vZGUgPSBzZWxmLl9fY3JlYXRlTmV3Tm9kZSgp DQo+IA0KPiAtICAgICAgICAgICAgaWYgTm9kZSA9PSBOb25lOg0KPiANCj4gLSAgICAgICAgICAg ICAgICByZXR1cm4gTm9uZQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgIGlmIHNlbGYuX19C dWZmZXJOb2RlUXVldWVUYWlsID09IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYu X19CdWZmZXJOb2RlUXVldWVIZWFkID0gc2VsZi5fX0J1ZmZlck5vZGVRdWV1ZVRhaWwgPSBOb2Rl DQo+IA0KPiAtICAgICAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5f X0J1ZmZlck5vZGVRdWV1ZVRhaWwuTmV4dCA9IE5vZGUNCj4gDQo+IC0gICAgICAgICAgICAgICAg bUJ1ZmZlck5vZGVRdWV1ZVRhaWwgPSBOb2RlDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX0N1 cnJCdWZmZXJOb2RlID0gTm9kZQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX1BrZ0xl bmd0aCArPSBMZW4NCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxmLl9fQ3VyckJ1 ZmZlck5vZGUuQnVmZmVyDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtZ0NGb3Jt UGtnID0gQ0Zvcm1Qa2coKQ0KPiANCj4gLWdDcmVhdGVPcCA9IFRydWUNCj4gDQo+IC0NCj4gDQo+ IC1nSWZyT2JqUHJpbnREZWJ1Z1RhYmxlID0gWw0KPiANCj4gLSAgICAiRUZJX0lGUl9JTlZBTElE IiwNCj4gDQo+IC0gICAgIkVGSV9JRlJfRk9STSIsDQo+IA0KPiAtICAgICJFRklfSUZSX1NVQlRJ VExFIiwNCj4gDQo+IC0gICAgIkVGSV9JRlJfVEVYVCIsDQo+IA0KPiAtICAgICJFRklfSUZSX0lN QUdFIiwNCj4gDQo+IC0gICAgIkVGSV9JRlJfT05FX09GIiwNCj4gDQo+IC0gICAgIkVGSV9JRlJf Q0hFQ0tCT1giLA0KPiANCj4gLSAgICAiRUZJX0lGUl9OVU1FUklDIiwNCj4gDQo+IC0gICAgIkVG SV9JRlJfUEFTU1dPUkQiLA0KPiANCj4gLSAgICAiRUZJX0lGUl9PTkVfT0ZfT1BUSU9OIiwNCj4g DQo+IC0gICAgIkVGSV9JRlJfU1VQUFJFU1NfSUYiLA0KPiANCj4gLSAgICAiRUZJX0lGUl9MT0NL RUQiLA0KPiANCj4gLSAgICAiRUZJX0lGUl9BQ1RJT04iLA0KPiANCj4gLSAgICAiRUZJX0lGUl9S RVNFVF9CVVRUT04iLA0KPiANCj4gLSAgICAiRUZJX0lGUl9GT1JNX1NFVCIsDQo+IA0KPiAtICAg ICJFRklfSUZSX1JFRiIsDQo+IA0KPiAtICAgICJFRklfSUZSX05PX1NVQk1JVF9JRiIsDQo+IA0K PiAtICAgICJFRklfSUZSX0lOQ09OU0lTVEVOVF9JRiIsDQo+IA0KPiAtICAgICJFRklfSUZSX0VR X0lEX1ZBTCIsDQo+IA0KPiAtICAgICJFRklfSUZSX0VRX0lEX0lEIiwNCj4gDQo+IC0gICAgIkVG SV9JRlJfRVFfSURfTElTVCIsDQo+IA0KPiAtICAgICJFRklfSUZSX0FORCIsDQo+IA0KPiAtICAg ICJFRklfSUZSX09SIiwNCj4gDQo+IC0gICAgIkVGSV9JRlJfTk9UIiwNCj4gDQo+IC0gICAgIkVG SV9JRlJfUlVMRSIsDQo+IA0KPiAtICAgICJFRklfSUZSX0dSQVlfT1VUX0lGIiwNCj4gDQo+IC0g ICAgIkVGSV9JRlJfREFURSIsDQo+IA0KPiAtICAgICJFRklfSUZSX1RJTUUiLA0KPiANCj4gLSAg ICAiRUZJX0lGUl9TVFJJTkciLA0KPiANCj4gLSAgICAiRUZJX0lGUl9SRUZSRVNIIiwNCj4gDQo+ IC0gICAgIkVGSV9JRlJfRElTQUJMRV9JRiIsDQo+IA0KPiAtICAgICJFRklfSUZSX0lOVkFMSUQi LA0KPiANCj4gLSAgICAiRUZJX0lGUl9UT19MT1dFUiIsDQo+IA0KPiAtICAgICJFRklfSUZSX1RP X1VQUEVSIiwNCj4gDQo+IC0gICAgIkVGSV9JRlJfTUFQIiwNCj4gDQo+IC0gICAgIkVGSV9JRlJf T1JERVJFRF9MSVNUIiwNCj4gDQo+IC0gICAgIkVGSV9JRlJfVkFSU1RPUkUiLA0KPiANCj4gLSAg ICAiRUZJX0lGUl9WQVJTVE9SRV9OQU1FX1ZBTFVFIiwNCj4gDQo+IC0gICAgIkVGSV9JRlJfVkFS U1RPUkVfRUZJIiwNCj4gDQo+IC0gICAgIkVGSV9JRlJfVkFSU1RPUkVfREVWSUNFIiwNCj4gDQo+ IC0gICAgIkVGSV9JRlJfVkVSU0lPTiIsDQo+IA0KPiAtICAgICJFRklfSUZSX0VORCIsDQo+IA0K PiAtICAgICJFRklfSUZSX01BVENIIiwNCj4gDQo+IC0gICAgIkVGSV9JRlJfR0VUIiwNCj4gDQo+ IC0gICAgIkVGSV9JRlJfU0VUIiwNCj4gDQo+IC0gICAgIkVGSV9JRlJfUkVBRCIsDQo+IA0KPiAt ICAgICJFRklfSUZSX1dSSVRFIiwNCj4gDQo+IC0gICAgIkVGSV9JRlJfRVFVQUwiLA0KPiANCj4g LSAgICAiRUZJX0lGUl9OT1RfRVFVQUwiLA0KPiANCj4gLSAgICAiRUZJX0lGUl9HUkVBVEVSX1RI QU4iLA0KPiANCj4gLSAgICAiRUZJX0lGUl9HUkVBVEVSX0VRVUFMIiwNCj4gDQo+IC0gICAgIkVG SV9JRlJfTEVTU19USEFOIiwNCj4gDQo+IC0gICAgIkVGSV9JRlJfTEVTU19FUVVBTCIsDQo+IA0K PiAtICAgICJFRklfSUZSX0JJVFdJU0VfQU5EIiwNCj4gDQo+IC0gICAgIkVGSV9JRlJfQklUV0lT RV9PUiIsDQo+IA0KPiAtICAgICJFRklfSUZSX0JJVFdJU0VfTk9UIiwNCj4gDQo+IC0gICAgIkVG SV9JRlJfU0hJRlRfTEVGVCIsDQo+IA0KPiAtICAgICJFRklfSUZSX1NISUZUX1JJR0hUIiwNCj4g DQo+IC0gICAgIkVGSV9JRlJfQUREIiwNCj4gDQo+IC0gICAgIkVGSV9JRlJfU1VCVFJBQ1QiLA0K PiANCj4gLSAgICAiRUZJX0lGUl9NVUxUSVBMWSIsDQo+IA0KPiAtICAgICJFRklfSUZSX0RJVklE RSIsDQo+IA0KPiAtICAgICJFRklfSUZSX01PRFVMTyIsDQo+IA0KPiAtICAgICJFRklfSUZSX1JV TEVfUkVGIiwNCj4gDQo+IC0gICAgIkVGSV9JRlJfUVVFU1RJT05fUkVGMSIsDQo+IA0KPiAtICAg ICJFRklfSUZSX1FVRVNUSU9OX1JFRjIiLA0KPiANCj4gLSAgICAiRUZJX0lGUl9VSU5UOCIsDQo+ IA0KPiAtICAgICJFRklfSUZSX1VJTlQxNiIsDQo+IA0KPiAtICAgICJFRklfSUZSX1VJTlQzMiIs DQo+IA0KPiAtICAgICJFRklfSUZSX1VJTlQ2NCIsDQo+IA0KPiAtICAgICJFRklfSUZSX1RSVUUi LA0KPiANCj4gLSAgICAiRUZJX0lGUl9GQUxTRSIsDQo+IA0KPiAtICAgICJFRklfSUZSX1RPX1VJ TlQiLA0KPiANCj4gLSAgICAiRUZJX0lGUl9UT19TVFJJTkciLA0KPiANCj4gLSAgICAiRUZJX0lG Ul9UT19CT09MRUFOIiwNCj4gDQo+IC0gICAgIkVGSV9JRlJfTUlEIiwNCj4gDQo+IC0gICAgIkVG SV9JRlJfRklORCIsDQo+IA0KPiAtICAgICJFRklfSUZSX1RPS0VOIiwNCj4gDQo+IC0gICAgIkVG SV9JRlJfU1RSSU5HX1JFRjEiLA0KPiANCj4gLSAgICAiRUZJX0lGUl9TVFJJTkdfUkVGMiIsDQo+ IA0KPiAtICAgICJFRklfSUZSX0NPTkRJVElPTkFMIiwNCj4gDQo+IC0gICAgIkVGSV9JRlJfUVVF U1RJT05fUkVGMyIsDQo+IA0KPiAtICAgICJFRklfSUZSX1pFUk8iLA0KPiANCj4gLSAgICAiRUZJ X0lGUl9PTkUiLA0KPiANCj4gLSAgICAiRUZJX0lGUl9PTkVTIiwNCj4gDQo+IC0gICAgIkVGSV9J RlJfVU5ERUZJTkVEIiwNCj4gDQo+IC0gICAgIkVGSV9JRlJfTEVOR1RIIiwNCj4gDQo+IC0gICAg IkVGSV9JRlJfRFVQIiwNCj4gDQo+IC0gICAgIkVGSV9JRlJfVEhJUyIsDQo+IA0KPiAtICAgICJF RklfSUZSX1NQQU4iLA0KPiANCj4gLSAgICAiRUZJX0lGUl9WQUxVRSIsDQo+IA0KPiAtICAgICJF RklfSUZSX0RFRkFVTFQiLA0KPiANCj4gLSAgICAiRUZJX0lGUl9ERUZBVUxUU1RPUkUiLA0KPiAN Cj4gLSAgICAiRUZJX0lGUl9GT1JNX01BUCIsDQo+IA0KPiAtICAgICJFRklfSUZSX0NBVEVOQVRF IiwNCj4gDQo+IC0gICAgIkVGSV9JRlJfR1VJRCIsDQo+IA0KPiAtICAgICJFRklfSUZSX1NFQ1VS SVRZIiwNCj4gDQo+IC0gICAgIkVGSV9JRlJfTU9EQUxfVEFHIiwNCj4gDQo+IC0gICAgIkVGSV9J RlJfUkVGUkVTSF9JRCIsDQo+IA0KPiAtICAgICJFRklfSUZSX1dBUk5JTkdfSUYiLA0KPiANCj4g LSAgICAiRUZJX0lGUl9NQVRDSDIiLA0KPiANCj4gLV0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+ IC1jbGFzcyBDSWZyT2JqKCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX2luaXRfXyhzZWxm LCBPYmo9Tm9uZSwgT3BDb2RlPU5vbmUsIE9iakJpbkxlbj0wLA0KPiBEZWxheUVtaXQ9RmFsc2Us IExpbmVObz0wKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYuX19EZWxheUVtaXQgPSBE ZWxheUVtaXQNCj4gDQo+IC0gICAgICAgIHNlbGYuX19Qa2dPZmZzZXQgPSBnQ0Zvcm1Qa2cuR2V0 UGtnTGVuZ3RoKCkNCj4gDQo+IC0gICAgICAgIHNlbGYuX19PYmpCaW5MZW4gPSBnT3Bjb2RlU2l6 ZXNTY29wZVRhYmxlWw0KPiANCj4gLSAgICAgICAgICAgIE9wQ29kZV0uU2l6ZSBpZiBPYmpCaW5M ZW4gPT0gMCBlbHNlIE9iakJpbkxlbg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX09i akJpbkJ1ZiA9IE9iag0KPiANCj4gLSAgICAgICAgc2VsZi5fX0xpbmVObyA9IExpbmVObw0KPiAN Cj4gLQ0KPiANCj4gLSAgICAgICAgIyBwcmludCAoIj09PT09PUNyZWF0ZSBJRlIgWyVzXVxuIiwg Z0lmck9ialByaW50RGVidWdUYWJsZVtPcENvZGVdKQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNl bGYuX19PYmpCaW5CdWYNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldE9iakJpbihzZWxmLCBP YmpCaW5MZW4pOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX09iakJpbkxlbiA9IE9i akJpbkxlbg0KPiANCj4gLSAgICAgICAgaWYgc2VsZi5fX0RlbGF5RW1pdCA9PSBGYWxzZSBhbmQg Z0NyZWF0ZU9wID09IFRydWU6DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX09iakJpbkJ1ZiA9 IGdDRm9ybVBrZy5JZnJCaW5CdWZmZXJHZXQoc2VsZi5fX09iakJpbkxlbikNCj4gDQo+IC0NCj4g DQo+IC0gICAgZGVmIFNldExpbmVObyhzZWxmLCBMaW5lTm8pOg0KPiANCj4gLSAgICAgICAgc2Vs Zi5fX0xpbmVObyA9IExpbmVObw0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0T2JqQmluQWRk cihzZWxmLCBBZGRyKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19PYmpCaW5CdWYgPSBBZGRyDQo+ IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi5fX09iakJpbkJ1Zg0KPiANCj4gLQ0KPiANCj4gLSAg ICBkZWYgR2V0T2JqQmluT2Zmc2V0KHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYu X19Qa2dPZmZzZXQNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldE9iakJpbkxlbihzZWxmKToN Cj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxmLl9fT2JqQmluTGVuDQo+IA0KPiAtDQo+IA0KPiAt ICAgIGRlZiBFeHBlbmRPYmpCaW4oc2VsZiwgU2l6ZSk6DQo+IA0KPiAtICAgICAgICBpZiAoc2Vs Zi5fX0RlbGF5RW1pdCkgPT0gVHJ1ZSBhbmQgKA0KPiANCj4gLSAgICAgICAgICAgIChzZWxmLl9f T2JqQmluTGVuICsgU2l6ZSkgPiBzZWxmLl9fT2JqQmluTGVuKToNCj4gDQo+IC0gICAgICAgICAg ICBzZWxmLl9fT2JqQmluTGVuID0gc2VsZi5fX09iakJpbkxlbiArIFNpemUNCj4gDQo+IC0gICAg ICAgICAgICByZXR1cm4gVHJ1ZQ0KPiANCj4gLSAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAg ICAgICByZXR1cm4gRmFsc2UNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNocmlua09iakJpbihz ZWxmLCBTaXplKToNCj4gDQo+IC0gICAgICAgIGlmIChzZWxmLl9fRGVsYXlFbWl0KSA9PSBUcnVl IGFuZCAoc2VsZi5fX09iakJpbkxlbiA+IFNpemUpOg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYu X19PYmpCaW5MZW4gPSBzZWxmLl9fT2JqQmluTGVuIC0gU2l6ZQ0KPiANCj4gLQ0KPiANCj4gLSAg ICBkZWYgR2V0T2JqQmluKHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYuX19PYmpC aW5CdWYNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEVNSVRfUEVORElOR19PQkooc2VsZik6DQo+ IA0KPiAtICAgICAgICBpZiBzZWxmLl9fRGVsYXlFbWl0ID09IEZhbHNlIG9yIGdDcmVhdGVPcCA9 PSBGYWxzZToNCj4gDQo+IC0gICAgICAgICAgICByZXR1cm4NCj4gDQo+IC0NCj4gDQo+IC0gICAg ICAgIHNlbGYuX19Qa2dPZmZzZXQgPSBnQ0Zvcm1Qa2cuR2V0UGtnTGVuZ3RoKCkNCj4gDQo+IC0g ICAgICAgICMgdXBkYXRlIGRhdGEgYnVmZmVyIHRvIHBhY2thZ2UgZGF0YQ0KPiANCj4gLSAgICAg ICAgc2VsZi5fX09iakJpbkJ1ZiA9IGdDRm9ybVBrZy5JZnJCaW5CdWZmZXJHZXQoc2VsZi5fX09i akJpbkxlbikNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYuX19EZWxheUVtaXQgPSBGYWxz ZQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWdTY29wZUNvdW50ID0gMA0KPiANCj4gLWdJc09y ZGVyZWRMaXN0ID0gRmFsc2UNCj4gDQo+IC1nSXNTdHJpbmdPcCA9IEZhbHNlDQo+IA0KPiAtZ0N1 cnJlbnRRdWVzdGlvbiA9IE5vbmUNCj4gDQo+IC1nQ3VycmVudE1pbk1heERhdGEgPSBOb25lDQo+ IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtZGVmIFNldEN1cnJlbnRRdWVzdGlvbihRdWVzdGlvbik6 DQo+IA0KPiAtDQo+IA0KPiAtICAgIGdDdXJyZW50UXVlc3Rpb24gPSBRdWVzdGlvbg0KPiANCj4g LSAgICByZXR1cm4gZ0N1cnJlbnRRdWVzdGlvbg0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNs YXNzIENJZnJPcEhlYWRlcigpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2Vs ZiwgT3BIZWFkZXI6IEVGSV9JRlJfT1BfSEVBREVSLCBPcENvZGU9Tm9uZSwNCj4gTGVuZ3RoPTAp Og0KPiANCj4gLSAgICAgICAgc2VsZi5fX09wSGVhZGVyID0gT3BIZWFkZXINCj4gDQo+IC0gICAg ICAgIGlmIE9wQ29kZSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19PcEhlYWRl ci5PcENvZGUgPSBPcENvZGUNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fT3BI ZWFkZXIuTGVuZ3RoID0gZ09wY29kZVNpemVzU2NvcGVUYWJsZVsNCj4gDQo+IC0gICAgICAgICAg ICAgICAgT3BDb2RlXS5TaXplIGlmIExlbmd0aCA9PSAwIGVsc2UgTGVuZ3RoDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5fX09wSGVhZGVyLlNjb3BlID0gMSBpZiAoDQo+IA0KPiAtICAgICAgICAg ICAgICAgIGdPcGNvZGVTaXplc1Njb3BlVGFibGVbT3BDb2RlXS5TY29wZSArIGdTY29wZUNvdW50 ID4gMCkgZWxzZSAwDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBHZXRMZW5ndGgoc2VsZik6DQo+ IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi5fX09wSGVhZGVyLkxlbmd0aA0KPiANCj4gLQ0KPiAN Cj4gLSAgICBkZWYgU2V0U2NvcGUoc2VsZiwgU2NvcGUpOg0KPiANCj4gLSAgICAgICAgc2VsZi5f X09wSGVhZGVyLlNjb3BlID0gU2NvcGUNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldFNjb3Bl KHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYuX19PcEhlYWRlci5TY29wZQ0KPiAN Cj4gLQ0KPiANCj4gLSAgICBkZWYgVXBkYXRlSGVhZGVyKHNlbGYsIEhlYWRlcik6DQo+IA0KPiAt ICAgICAgICBzZWxmLl9fT3BIZWFkZXIgPSBIZWFkZXINCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVm IEluY0xlbmd0aChzZWxmLCBTaXplKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19PcEhlYWRlci5M ZW5ndGggKz0gU2l6ZQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgRGVjTGVuZ3RoKHNlbGYsIFNp emUpOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX09wSGVhZGVyLkxlbmd0aCAtPSBTaXplDQo+IA0K PiAtDQo+IA0KPiAtICAgIGRlZiBHZXRPcENvZGUoc2VsZik6DQo+IA0KPiAtICAgICAgICByZXR1 cm4gc2VsZi5fX09wSGVhZGVyLk9wQ29kZQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNz IENJZnJTdGF0ZW1lbnRIZWFkZXIoKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9f KHNlbGYsIHNIZWFkZXI6IEVGSV9JRlJfU1RBVEVNRU5UX0hFQURFUik6DQo+IA0KPiAtICAgICAg ICBzZWxmLl9fc0hlYWRlciA9IHNIZWFkZXINCj4gDQo+IC0gICAgICAgIHNlbGYuX19zSGVhZGVy LkhlbHAgPSBFRklfU1RSSU5HX0lEX0lOVkFMSUQNCj4gDQo+IC0gICAgICAgIHNlbGYuX19zSGVh ZGVyLlByb21wdCA9IEVGSV9TVFJJTkdfSURfSU5WQUxJRA0KPiANCj4gLQ0KPiANCj4gLSAgICBk ZWYgR2V0U3RhdGVtZW50SGVhZGVyKHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYu X19zSGVhZGVyDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXRQcm9tcHQoc2VsZiwgUHJvbXB0 KToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19zSGVhZGVyLlByb21wdCA9IFByb21wdA0KPiANCj4g LQ0KPiANCj4gLSAgICBkZWYgU2V0SGVscChzZWxmLCBIZWxwKToNCj4gDQo+IC0gICAgICAgIHNl bGYuX19zSGVhZGVyLkhlbHAgPSBIZWxwDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3Mg Q0lmck1pbk1heFN0ZXBEYXRhKCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX2luaXRfXyhz ZWxmLCBNaW5NYXhTdGVwRGF0YSwgTnVtZXJpY09wY29kZT1GYWxzZSk6DQo+IA0KPiAtICAgICAg ICBzZWxmLl9fTWluTWF4U3RlcERhdGEgPSBNaW5NYXhTdGVwRGF0YQ0KPiANCj4gLSAgICAgICAg c2VsZi5fX01pbk1heFN0ZXBEYXRhLnU2NC5NaW5WYWx1ZSA9IDANCj4gDQo+IC0gICAgICAgIHNl bGYuX19NaW5NYXhTdGVwRGF0YS51NjQuTWF4VmFsdWUgPSAwDQo+IA0KPiAtICAgICAgICBzZWxm Ll9fTWluTWF4U3RlcERhdGEudTY0LlN0ZXAgPSAwDQo+IA0KPiAtICAgICAgICBzZWxmLl9fVmFs dWVJc1NldCA9IEZhbHNlDQo+IA0KPiAtICAgICAgICBzZWxmLl9fSXNOdW1lcmljID0gTnVtZXJp Y09wY29kZQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX1ZhclR5cGUgPSBFRklfSUZSX1RZUEVfTlVN X1NJWkVfNjQNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldE1pbk1heFN0ZXBEYXRhKHNlbGYs IE1pblZhbHVlLCBNYXhWYWx1ZSwgU3RlcCwgVmFyVHlwZSk6DQo+IA0KPiAtICAgICAgICBzZWxm Ll9fVmFyVHlwZSA9IFZhclR5cGUNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIHNlbGYuX19W YWx1ZUlzU2V0ID09IEZhbHNlOg0KPiANCj4gLSAgICAgICAgICAgIGlmIFZhclR5cGUgPT0gRUZJ X0lGUl9UWVBFX05VTV9TSVpFXzY0Og0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLl9fTWlu TWF4U3RlcERhdGEudTY0Lk1pblZhbHVlID0gTWluVmFsdWUNCj4gDQo+IC0gICAgICAgICAgICAg ICAgc2VsZi5fX01pbk1heFN0ZXBEYXRhLnU2NC5NYXhWYWx1ZSA9IE1heFZhbHVlDQo+IA0KPiAt ICAgICAgICAgICAgICAgIHNlbGYuX19NaW5NYXhTdGVwRGF0YS51NjQuU3RlcCA9IFN0ZXANCj4g DQo+IC0gICAgICAgICAgICBpZiBWYXJUeXBlID09IEVGSV9JRlJfVFlQRV9OVU1fU0laRV8zMjoN Cj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5fX01pbk1heFN0ZXBEYXRhLnUzMi5NaW5WYWx1 ZSA9IE1pblZhbHVlDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuX19NaW5NYXhTdGVwRGF0 YS51MzIuTWF4VmFsdWUgPSBNYXhWYWx1ZQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLl9f TWluTWF4U3RlcERhdGEudTMyLlN0ZXAgPSBTdGVwDQo+IA0KPiAtICAgICAgICAgICAgaWYgVmFy VHlwZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMTY6DQo+IA0KPiAtICAgICAgICAgICAgICAg IHNlbGYuX19NaW5NYXhTdGVwRGF0YS51MTYuTWluVmFsdWUgPSBNaW5WYWx1ZQ0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLl9fTWluTWF4U3RlcERhdGEudTE2Lk1heFZhbHVlID0gTWF4VmFs dWUNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5fX01pbk1heFN0ZXBEYXRhLnUxNi5TdGVw ID0gU3RlcA0KPiANCj4gLSAgICAgICAgICAgIGlmIFZhclR5cGUgPT0gRUZJX0lGUl9UWVBFX05V TV9TSVpFXzg6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuX19NaW5NYXhTdGVwRGF0YS51 OC5NaW5WYWx1ZSA9IE1pblZhbHVlDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuX19NaW5N YXhTdGVwRGF0YS51OC5NYXhWYWx1ZSA9IE1heFZhbHVlDQo+IA0KPiAtICAgICAgICAgICAgICAg IHNlbGYuX19NaW5NYXhTdGVwRGF0YS51OC5TdGVwID0gU3RlcA0KPiANCj4gLSAgICAgICAgICAg IHNlbGYuX19WYWx1ZUlzU2V0ID0gVHJ1ZQ0KPiANCj4gLSAgICAgICAgZWxzZToNCj4gDQo+IC0g ICAgICAgICAgICBpZiBWYXJUeXBlID09IEVGSV9JRlJfVFlQRV9OVU1fU0laRV82NDoNCj4gDQo+ IC0gICAgICAgICAgICAgICAgaWYgTWluVmFsdWUgPCBzZWxmLl9fTWluTWF4U3RlcERhdGEudTY0 Lk1pblZhbHVlOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fX01pbk1heFN0ZXBE YXRhLnU2NC5NaW5WYWx1ZSA9IE1pblZhbHVlDQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIE1h eFZhbHVlID4gc2VsZi5fX01pbk1heFN0ZXBEYXRhLnU2NC5NYXhWYWx1ZToNCj4gDQo+IC0gICAg ICAgICAgICAgICAgICAgIHNlbGYuX19NaW5NYXhTdGVwRGF0YS51NjQuTWF4VmFsdWUgPSBNYXhW YWx1ZQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLl9fTWluTWF4U3RlcERhdGEudTY0LlN0 ZXAgPSBTdGVwDQo+IA0KPiAtICAgICAgICAgICAgaWYgVmFyVHlwZSA9PSBFRklfSUZSX1RZUEVf TlVNX1NJWkVfMzI6DQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIE1pblZhbHVlIDwgc2VsZi5f X01pbk1heFN0ZXBEYXRhLnUzMi5NaW5WYWx1ZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAg IHNlbGYuX19NaW5NYXhTdGVwRGF0YS51MzIuTWluVmFsdWUgPSBNaW5WYWx1ZQ0KPiANCj4gLSAg ICAgICAgICAgICAgICBpZiBNYXhWYWx1ZSA+IHNlbGYuX19NaW5NYXhTdGVwRGF0YS51MzIuTWF4 VmFsdWU6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBzZWxmLl9fTWluTWF4U3RlcERhdGEu dTMyLk1heFZhbHVlID0gTWF4VmFsdWUNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5fX01p bk1heFN0ZXBEYXRhLnUzMi5TdGVwID0gU3RlcA0KPiANCj4gLSAgICAgICAgICAgIGlmIFZhclR5 cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzE2Og0KPiANCj4gLSAgICAgICAgICAgICAgICBp ZiBNaW5WYWx1ZSA8IHNlbGYuX19NaW5NYXhTdGVwRGF0YS51MTYuTWluVmFsdWU6DQo+IA0KPiAt ICAgICAgICAgICAgICAgICAgICBzZWxmLl9fTWluTWF4U3RlcERhdGEudTE2Lk1pblZhbHVlID0g TWluVmFsdWUNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgTWF4VmFsdWUgPiBzZWxmLl9fTWlu TWF4U3RlcERhdGEudTE2Lk1heFZhbHVlOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgc2Vs Zi5fX01pbk1heFN0ZXBEYXRhLnUxNi5NYXhWYWx1ZSA9IE1heFZhbHVlDQo+IA0KPiAtICAgICAg ICAgICAgICAgIHNlbGYuX19NaW5NYXhTdGVwRGF0YS51MTYuU3RlcCA9IFN0ZXANCj4gDQo+IC0g ICAgICAgICAgICBpZiBWYXJUeXBlID09IEVGSV9JRlJfVFlQRV9OVU1fU0laRV84Og0KPiANCj4g LSAgICAgICAgICAgICAgICBpZiBNaW5WYWx1ZSA8IHNlbGYuX19NaW5NYXhTdGVwRGF0YS51OC5N aW5WYWx1ZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuX19NaW5NYXhTdGVwRGF0 YS51OC5NaW5WYWx1ZSA9IE1pblZhbHVlDQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIE1heFZh bHVlID4gc2VsZi5fX01pbk1heFN0ZXBEYXRhLnU4Lk1heFZhbHVlOg0KPiANCj4gLSAgICAgICAg ICAgICAgICAgICAgc2VsZi5fX01pbk1heFN0ZXBEYXRhLnU4Lk1heFZhbHVlID0gTWF4VmFsdWUN Cj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5fX01pbk1heFN0ZXBEYXRhLnU4LlN0ZXAgPSBT dGVwDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBHZXRWYXJUeXBlKHNlbGYpOg0KPiANCj4gLSAg ICAgICAgcmV0dXJuIHNlbGYuX19WYXJUeXBlDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBJc051 bWVyaWNPcGNvZGUoc2VsZik6DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi5fX0lzTnVtZXJp Yw0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgVXBkYXRlQ0lmck1pbk1heFN0ZXBEYXRhKHNlbGYs IE1pbk1heFN0ZXBEYXRhKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19NaW5NYXhTdGVwRGF0YSA9 IE1pbk1heFN0ZXBEYXRhDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBHZXRNaW5EYXRhKHNlbGYs IFZhclR5cGUsIElzQml0VmFyKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIElzQml0VmFy Og0KPiANCj4gLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9fTWluTWF4U3RlcERhdGEudTMyLk1p blZhbHVlDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBlbHNlOg0KPiANCj4gLSAgICAgICAgICAg IGlmIFZhclR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzY0Og0KPiANCj4gLSAgICAgICAg ICAgICAgICByZXR1cm4gc2VsZi5fX01pbk1heFN0ZXBEYXRhLnU2NC5NaW5WYWx1ZQ0KPiANCj4g LSAgICAgICAgICAgIGlmIFZhclR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzMyOg0KPiAN Cj4gLSAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fX01pbk1heFN0ZXBEYXRhLnUzMi5NaW5W YWx1ZQ0KPiANCj4gLSAgICAgICAgICAgIGlmIFZhclR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9T SVpFXzE2Og0KPiANCj4gLSAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fX01pbk1heFN0ZXBE YXRhLnUxNi5NaW5WYWx1ZQ0KPiANCj4gLSAgICAgICAgICAgIGlmIFZhclR5cGUgPT0gRUZJX0lG Ul9UWVBFX05VTV9TSVpFXzg6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9f TWluTWF4U3RlcERhdGEudTguTWluVmFsdWUNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVy biAwDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBHZXRNYXhEYXRhKHNlbGYsIFZhclR5cGUsIElz Qml0VmFyKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIElzQml0VmFyOg0KPiANCj4gLSAg ICAgICAgICAgIHJldHVybiBzZWxmLl9fTWluTWF4U3RlcERhdGEudTMyLk1heFZhbHVlDQo+IA0K PiAtDQo+IA0KPiAtICAgICAgICBlbHNlOg0KPiANCj4gLSAgICAgICAgICAgIGlmIFZhclR5cGUg PT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzY0Og0KPiANCj4gLSAgICAgICAgICAgICAgICByZXR1 cm4gc2VsZi5fX01pbk1heFN0ZXBEYXRhLnU2NC5NYXhWYWx1ZQ0KPiANCj4gLSAgICAgICAgICAg IGlmIFZhclR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzMyOg0KPiANCj4gLSAgICAgICAg ICAgICAgICByZXR1cm4gc2VsZi5fX01pbk1heFN0ZXBEYXRhLnUzMi5NYXhWYWx1ZQ0KPiANCj4g LSAgICAgICAgICAgIGlmIFZhclR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzE2Og0KPiAN Cj4gLSAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fX01pbk1heFN0ZXBEYXRhLnUxNi5NYXhW YWx1ZQ0KPiANCj4gLSAgICAgICAgICAgIGlmIFZhclR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9T SVpFXzg6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9fTWluTWF4U3RlcERh dGEudTguTWF4VmFsdWUNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiAwDQo+IA0KPiAt DQo+IA0KPiAtICAgIGRlZiBHZXRTdGVwRGF0YShzZWxmLCBWYXJUeXBlLCBJc0JpdFZhcik6DQo+ IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBJc0JpdFZhcjoNCj4gDQo+IC0gICAgICAgICAgICBy ZXR1cm4gc2VsZi5fX01pbk1heFN0ZXBEYXRhLnUzMi5TdGVwDQo+IA0KPiAtDQo+IA0KPiAtICAg ICAgICBlbHNlOg0KPiANCj4gLSAgICAgICAgICAgIGlmIFZhclR5cGUgPT0gRUZJX0lGUl9UWVBF X05VTV9TSVpFXzY0Og0KPiANCj4gLSAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fX01pbk1h eFN0ZXBEYXRhLnU2NC5TdGVwDQo+IA0KPiAtICAgICAgICAgICAgaWYgVmFyVHlwZSA9PSBFRklf SUZSX1RZUEVfTlVNX1NJWkVfMzI6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHJldHVybiBzZWxm Ll9fTWluTWF4U3RlcERhdGEudTMyLlN0ZXANCj4gDQo+IC0gICAgICAgICAgICBpZiBWYXJUeXBl ID09IEVGSV9JRlJfVFlQRV9OVU1fU0laRV8xNjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgcmV0 dXJuIHNlbGYuX19NaW5NYXhTdGVwRGF0YS51MTYuU3RlcA0KPiANCj4gLSAgICAgICAgICAgIGlm IFZhclR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzg6DQo+IA0KPiAtICAgICAgICAgICAg ICAgIHJldHVybiBzZWxmLl9fTWluTWF4U3RlcERhdGEudTguU3RlcA0KPiANCj4gLQ0KPiANCj4g LSAgICAgICAgcmV0dXJuIDANCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBDSWZyRm9y bVNldChDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19p bml0X18oc2VsZiwgU2l6ZSk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fRm9ybVNldCA9IEVGSV9J RlJfRk9STV9TRVQoKQ0KPiANCj4gLSAgICAgICAgQ0lmck9iai5fX2luaXRfXyhzZWxmLCBzZWxm Ll9fRm9ybVNldCwgRUZJX0lGUl9GT1JNX1NFVF9PUCkNCj4gDQo+IC0gICAgICAgIENJZnJPcEhl YWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLl9fRm9ybVNldC5IZWFkZXIsDQo+IEVGSV9JRlJfRk9S TV9TRVRfT1AsDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2l6ZSkNCj4g DQo+IC0gICAgICAgIHNlbGYuX19Gb3JtU2V0LkhlbHAgPSBFRklfU1RSSU5HX0lEX0lOVkFMSUQN Cj4gDQo+IC0gICAgICAgIHNlbGYuX19Gb3JtU2V0LkZvcm1TZXRUaXRsZSA9IEVGSV9TVFJJTkdf SURfSU5WQUxJRA0KPiANCj4gLSAgICAgICAgc2VsZi5fX0Zvcm1TZXQuRmxhZ3MgPSAwDQo+IA0K PiAtICAgICAgICBzZWxmLl9fRm9ybVNldC5HdWlkID0gRUZJX0dVSUQoMCwgMCwgMCwNCj4gDQo+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHdWlkQXJyYXkoMCwgMCwg MCwgMCwgMCwgMCwgMCwgMCkpDQo+IA0KPiAtICAgICAgICBzZWxmLl9fQ2xhc3NHdWlkID0gW10N Cj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldEd1aWQoc2VsZiwgR3VpZCk6DQo+IA0KPiAtICAg ICAgICBzZWxmLl9fRm9ybVNldC5HdWlkID0gR3VpZA0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYg R2V0R3VpZChzZWxmKToNCj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxmLl9fRm9ybVNldC5HdWlk DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXRGb3JtU2V0VGl0bGUoc2VsZiwgRm9ybVNldFRp dGxlKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19Gb3JtU2V0LkZvcm1TZXRUaXRsZSA9IEZvcm1T ZXRUaXRsZQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0Rm9ybVNldFRpdGxlKHNlbGYpOg0K PiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYuX19Gb3JtU2V0LkZvcm1TZXRUaXRsZQ0KPiANCj4g LQ0KPiANCj4gLSAgICBkZWYgU2V0SGVscChzZWxmLCBIZWxwKToNCj4gDQo+IC0gICAgICAgIHNl bGYuX19Gb3JtU2V0LkhlbHAgPSBIZWxwDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBHZXRIZWxw KHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYuX19Gb3JtU2V0LkhlbHANCj4gDQo+ IC0NCj4gDQo+IC0gICAgZGVmIFNldENsYXNzR3VpZChzZWxmLCBHdWlkKToNCj4gDQo+IC0gICAg ICAgIHNlbGYuX19DbGFzc0d1aWQuYXBwZW5kKEd1aWQpDQo+IA0KPiAtICAgICAgICBzZWxmLl9f Rm9ybVNldC5GbGFncyArPSAxDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBHZXRDbGFzc0d1aWQo c2VsZik6DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi5fX0NsYXNzR3VpZA0KPiANCj4gLQ0K PiANCj4gLSAgICBkZWYgR2V0RmxhZ3Moc2VsZik6DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2Vs Zi5fX0Zvcm1TZXQuRmxhZ3MNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldEluZm8oc2VsZik6 DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi5fX0Zvcm1TZXQNCj4gDQo+IC0NCj4gDQo+IC0N Cj4gDQo+IC1jbGFzcyBDSWZyT25lT2ZPcHRpb24oQ0lmck9iaiwgQ0lmck9wSGVhZGVyKToNCj4g DQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsIFNpemUpOg0KPiANCj4gLSAgICAg ICAgc2VsZi5fX09uZU9mT3B0aW9uID0gRUZJX0lGUl9PTkVfT0ZfT1BUSU9OKCkNCj4gDQo+IC0g ICAgICAgIENJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLl9fT25lT2ZPcHRpb24uSGVh ZGVyLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9JRlJfT05FX09G X09QVElPTl9PUCwgU2l6ZSkNCj4gDQo+IC0gICAgICAgIHNlbGYuX19PbmVPZk9wdGlvbi5GbGFn cyA9IDANCj4gDQo+IC0gICAgICAgIHNlbGYuX19PbmVPZk9wdGlvbi5PcHRpb24gPSBFRklfU1RS SU5HX0lEX0lOVkFMSUQNCj4gDQo+IC0gICAgICAgIHNlbGYuX19PbmVPZk9wdGlvbi5UeXBlID0g RUZJX0lGUl9UWVBFX09USEVSDQo+IA0KPiAtICAgICAgICBzZWxmLl9fT25lT2ZPcHRpb24uVmFs dWUgPSBFRklfSUZSX1RZUEVfVkFMVUUoKQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0T3B0 aW9uKHNlbGYsIE9wdGlvbik6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fT25lT2ZPcHRpb24uT3B0 aW9uID0gT3B0aW9uDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXRUeXBlKHNlbGYsIFR5cGUp Og0KPiANCj4gLSAgICAgICAgc2VsZi5fX09uZU9mT3B0aW9uLlR5cGUgPSBUeXBlDQo+IA0KPiAt DQo+IA0KPiAtICAgIGRlZiBTZXRWYWx1ZShzZWxmLCBWYWx1ZSk6DQo+IA0KPiAtICAgICAgICBz ZWxmLl9fT25lT2ZPcHRpb24uVmFsdWUgPSBWYWx1ZQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYg R2V0RmxhZ3Moc2VsZik6DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi5fX09uZU9mT3B0aW9u LkZsYWdzDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXRGbGFncyhzZWxmLCBMRmxhZ3MpOg0K PiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX09uZU9mT3B0aW9uLkZsYWdzID0gMA0KPiAN Cj4gLSAgICAgICAgTEZsYWdzLCBSZXQgPSBfRkxBR19URVNUX0FORF9DTEVBUihMRmxhZ3MsDQo+ IEVGSV9JRlJfT1BUSU9OX0RFRkFVTFQpDQo+IA0KPiAtICAgICAgICBpZiBSZXQ6DQo+IA0KPiAt ICAgICAgICAgICAgc2VsZi5fX09uZU9mT3B0aW9uLkZsYWdzIHw9IEVGSV9JRlJfT1BUSU9OX0RF RkFVTFQNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIExGbGFncywgUmV0ID0gX0ZMQUdfVEVTVF9B TkRfQ0xFQVIoTEZsYWdzLA0KPiBFRklfSUZSX09QVElPTl9ERUZBVUxUX01GRykNCj4gDQo+IC0g ICAgICAgIGlmIFJldDoNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fT25lT2ZPcHRpb24uRmxh Z3MgfD0gRUZJX0lGUl9PUFRJT05fREVGQVVMVF9NRkcNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAg IGlmIExGbGFncyA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfODoNCj4gDQo+IC0gICAgICAgICAg ICBMRmxhZ3MgPSBfRkxBR19DTEVBUihMRmxhZ3MsIEVGSV9JRlJfVFlQRV9OVU1fU0laRV84KQ0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuX19PbmVPZk9wdGlvbi5GbGFncyB8PSBFRklfSUZSX1RZ UEVfTlVNX1NJWkVfOA0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgZWxpZiBMRmxhZ3MgPT0gRUZJ X0lGUl9UWVBFX05VTV9TSVpFXzE2Og0KPiANCj4gLSAgICAgICAgICAgIExGbGFncyA9IF9GTEFH X0NMRUFSKExGbGFncywgRUZJX0lGUl9UWVBFX05VTV9TSVpFXzE2KQ0KPiANCj4gLSAgICAgICAg ICAgIHNlbGYuX19PbmVPZk9wdGlvbi5GbGFncyB8PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMTYN Cj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGVsaWYgTEZsYWdzID09IEVGSV9JRlJfVFlQRV9OVU1f U0laRV8zMjoNCj4gDQo+IC0gICAgICAgICAgICBMRmxhZ3MgPSBfRkxBR19DTEVBUihMRmxhZ3Ms IEVGSV9JRlJfVFlQRV9OVU1fU0laRV8zMikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fT25l T2ZPcHRpb24uRmxhZ3MgfD0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzMyDQo+IA0KPiAtDQo+IA0K PiAtICAgICAgICBlbGlmIExGbGFncyA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfNjQ6DQo+IA0K PiAtICAgICAgICAgICAgTEZsYWdzID0gX0ZMQUdfQ0xFQVIoTEZsYWdzLCBFRklfSUZSX1RZUEVf TlVNX1NJWkVfNjQpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX09uZU9mT3B0aW9uLkZsYWdz IHw9IEVGSV9JRlJfVFlQRV9OVU1fU0laRV82NA0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgZWxp ZiBMRmxhZ3MgPT0gRUZJX0lGUl9UWVBFX0JPT0xFQU46DQo+IA0KPiAtICAgICAgICAgICAgTEZs YWdzID0gX0ZMQUdfQ0xFQVIoTEZsYWdzLCBFRklfSUZSX1RZUEVfQk9PTEVBTikNCj4gDQo+IC0g ICAgICAgICAgICBzZWxmLl9fT25lT2ZPcHRpb24uRmxhZ3MgfD0gRUZJX0lGUl9UWVBFX0JPT0xF QU4NCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGVsaWYgTEZsYWdzID09IEVGSV9JRlJfVFlQRV9U SU1FOg0KPiANCj4gLSAgICAgICAgICAgIExGbGFncyA9IF9GTEFHX0NMRUFSKExGbGFncywgRUZJ X0lGUl9UWVBFX1RJTUUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX09uZU9mT3B0aW9uLkZs YWdzIHw9IEVGSV9JRlJfVFlQRV9USU1FDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBlbGlmIExG bGFncyA9PSBFRklfSUZSX1RZUEVfREFURToNCj4gDQo+IC0gICAgICAgICAgICBMRmxhZ3MgPSBf RkxBR19DTEVBUihMRmxhZ3MsIEVGSV9JRlJfVFlQRV9EQVRFKQ0KPiANCj4gLSAgICAgICAgICAg IHNlbGYuX19PbmVPZk9wdGlvbi5GbGFncyB8PSBFRklfSUZSX1RZUEVfREFURQ0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgZWxpZiBMRmxhZ3MgPT0gRUZJX0lGUl9UWVBFX1NUUklORzoNCj4gDQo+ IC0gICAgICAgICAgICBMRmxhZ3MgPSBfRkxBR19DTEVBUihMRmxhZ3MsIEVGSV9JRlJfVFlQRV9T VFJJTkcpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX09uZU9mT3B0aW9uLkZsYWdzIHw9IEVG SV9JRlJfVFlQRV9TVFJJTkcNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGVsaWYgTEZsYWdzID09 IEVGSV9JRlJfVFlQRV9PVEhFUjoNCj4gDQo+IC0gICAgICAgICAgICBMRmxhZ3MgPSBfRkxBR19D TEVBUihMRmxhZ3MsIEVGSV9JRlJfVFlQRV9PVEhFUikNCj4gDQo+IC0gICAgICAgICAgICBzZWxm Ll9fT25lT2ZPcHRpb24uRmxhZ3MgfD0gRUZJX0lGUl9UWVBFX09USEVSDQo+IA0KPiAtDQo+IA0K PiAtICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MgaWYgTEZs YWdzID09IDAgZWxzZQ0KPiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fRkxBR1NfVU5TVVBQT1JU RUQNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldEluZm8oc2VsZik6DQo+IA0KPiAtICAgICAg ICByZXR1cm4gc2VsZi5fX09uZU9mT3B0aW9uDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xh c3MgQ0lmck9uZU9mT3B0aW9uMihDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiANCj4gLQ0KPiAN Cj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwgU2l6ZSwgTnVtcywgVmFsdWVUeXBlLCBWYWx1ZUxp c3Q9W10pOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX09uZU9mT3B0aW9uID0gUmVmaW5lX0VGSV9J RlJfT05FX09GX09QVElPTihOdW1zKQ0KPiANCj4gLSAgICAgICAgSGVhZGVyID0gRUZJX0lGUl9P UF9IRUFERVIoKQ0KPiANCj4gLSAgICAgICAgQ0lmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIEhl YWRlciwgRUZJX0lGUl9PTkVfT0ZfT1BUSU9OX09QLCBTaXplKQ0KPiANCj4gLSAgICAgICAgc2Vs Zi5fX09uZU9mT3B0aW9uLkhlYWRlciA9IEhlYWRlcg0KPiANCj4gLSAgICAgICAgc2VsZi5fX09u ZU9mT3B0aW9uLkZsYWdzID0gMA0KPiANCj4gLSAgICAgICAgc2VsZi5fX09uZU9mT3B0aW9uLk9w dGlvbiA9IEVGSV9TVFJJTkdfSURfSU5WQUxJRA0KPiANCj4gLSAgICAgICAgc2VsZi5fX09uZU9m T3B0aW9uLlR5cGUgPSBFRklfSUZSX1RZUEVfT1RIRVINCj4gDQo+IC0gICAgICAgIHNlbGYuX19W YWx1ZVR5cGUgPSBWYWx1ZVR5cGUNCj4gDQo+IC0gICAgICAgIGlmIFZhbHVlTGlzdCAhPSBbXToN Cj4gDQo+IC0gICAgICAgICAgICBBcnJheVR5cGUgPSBFRklfSUZSX1RZUEVfVkFMVUUgKiBOdW1z DQo+IA0KPiAtICAgICAgICAgICAgVmFsdWVBcnJheSA9IEFycmF5VHlwZSgpDQo+IA0KPiAtICAg ICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgbGVuKFZhbHVlTGlzdCkpOg0KPiANCj4gLSAgICAg ICAgICAgICAgICBWYWx1ZUFycmF5W2ldID0gVmFsdWVMaXN0W2ldDQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi5fX09uZU9mT3B0aW9uLlZhbHVlID0gVmFsdWVBcnJheQ0KPiANCj4gLQ0KPiANCj4g LSAgICBkZWYgU2V0T3B0aW9uKHNlbGYsIE9wdGlvbik6DQo+IA0KPiAtICAgICAgICBzZWxmLl9f T25lT2ZPcHRpb24uT3B0aW9uID0gT3B0aW9uDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXRU eXBlKHNlbGYsIFR5cGUpOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX09uZU9mT3B0aW9uLlR5cGUg PSBUeXBlDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBHZXRWYWx1ZVR5cGUoc2VsZik6DQo+IA0K PiAtICAgICAgICByZXR1cm4gc2VsZi5fX1ZhbHVlVHlwZQ0KPiANCj4gLQ0KPiANCj4gLSAgICBk ZWYgU2V0VmFsdWUoc2VsZiwgVmFsdWVMaXN0KToNCj4gDQo+IC0gICAgICAgIEFycmF5VHlwZSA9 IEVGSV9JRlJfVFlQRV9WQUxVRSAqIChsZW4oVmFsdWVMaXN0KSkNCj4gDQo+IC0gICAgICAgIFZh bHVlQXJyYXkgPSBBcnJheVR5cGUoKQ0KPiANCj4gLSAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwg bGVuKFZhbHVlTGlzdCkpOg0KPiANCj4gLSAgICAgICAgICAgIFZhbHVlQXJyYXlbaV0gPSBWYWx1 ZUxpc3RbaV0NCj4gDQo+IC0gICAgICAgIHNlbGYuX19PbmVPZk9wdGlvbi5WYWx1ZSA9IFZhbHVl QXJyYXkNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldEZsYWdzKHNlbGYpOg0KPiANCj4gLSAg ICAgICAgcmV0dXJuIHNlbGYuX19PbmVPZk9wdGlvbi5GbGFncw0KPiANCj4gLQ0KPiANCj4gLSAg ICBkZWYgU2V0RmxhZ3Moc2VsZiwgTEZsYWdzKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNl bGYuX19PbmVPZk9wdGlvbi5GbGFncyA9IDANCj4gDQo+IC0gICAgICAgIExGbGFncywgUmV0ID0g X0ZMQUdfVEVTVF9BTkRfQ0xFQVIoTEZsYWdzLA0KPiBFRklfSUZSX09QVElPTl9ERUZBVUxUKQ0K PiANCj4gLSAgICAgICAgaWYgUmV0Og0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19PbmVPZk9w dGlvbi5GbGFncyB8PSBFRklfSUZSX09QVElPTl9ERUZBVUxUDQo+IA0KPiAtDQo+IA0KPiAtICAg ICAgICBMRmxhZ3MsIFJldCA9IF9GTEFHX1RFU1RfQU5EX0NMRUFSKExGbGFncywNCj4gRUZJX0lG Ul9PUFRJT05fREVGQVVMVF9NRkcpDQo+IA0KPiAtICAgICAgICBpZiBSZXQ6DQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5fX09uZU9mT3B0aW9uLkZsYWdzIHw9IEVGSV9JRlJfT1BUSU9OX0RFRkFV TFRfTUZHDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBMRmxhZ3MgPT0gRUZJX0lGUl9UWVBF X05VTV9TSVpFXzg6DQo+IA0KPiAtICAgICAgICAgICAgTEZsYWdzID0gX0ZMQUdfQ0xFQVIoTEZs YWdzLCBFRklfSUZSX1RZUEVfTlVNX1NJWkVfOCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9f T25lT2ZPcHRpb24uRmxhZ3MgfD0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzgNCj4gDQo+IC0NCj4g DQo+IC0gICAgICAgIGVsaWYgTEZsYWdzID09IEVGSV9JRlJfVFlQRV9OVU1fU0laRV8xNjoNCj4g DQo+IC0gICAgICAgICAgICBMRmxhZ3MgPSBfRkxBR19DTEVBUihMRmxhZ3MsIEVGSV9JRlJfVFlQ RV9OVU1fU0laRV8xNikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fT25lT2ZPcHRpb24uRmxh Z3MgfD0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzE2DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBl bGlmIExGbGFncyA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMzI6DQo+IA0KPiAtICAgICAgICAg ICAgTEZsYWdzID0gX0ZMQUdfQ0xFQVIoTEZsYWdzLCBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMzIp DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX09uZU9mT3B0aW9uLkZsYWdzIHw9IEVGSV9JRlJf VFlQRV9OVU1fU0laRV8zMg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgZWxpZiBMRmxhZ3MgPT0g RUZJX0lGUl9UWVBFX05VTV9TSVpFXzY0Og0KPiANCj4gLSAgICAgICAgICAgIExGbGFncyA9IF9G TEFHX0NMRUFSKExGbGFncywgRUZJX0lGUl9UWVBFX05VTV9TSVpFXzY0KQ0KPiANCj4gLSAgICAg ICAgICAgIHNlbGYuX19PbmVPZk9wdGlvbi5GbGFncyB8PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVf NjQNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGVsaWYgTEZsYWdzID09IEVGSV9JRlJfVFlQRV9C T09MRUFOOg0KPiANCj4gLSAgICAgICAgICAgIExGbGFncyA9IF9GTEFHX0NMRUFSKExGbGFncywg RUZJX0lGUl9UWVBFX0JPT0xFQU4pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX09uZU9mT3B0 aW9uLkZsYWdzIHw9IEVGSV9JRlJfVFlQRV9CT09MRUFODQo+IA0KPiAtDQo+IA0KPiAtICAgICAg ICBlbGlmIExGbGFncyA9PSBFRklfSUZSX1RZUEVfVElNRToNCj4gDQo+IC0gICAgICAgICAgICBM RmxhZ3MgPSBfRkxBR19DTEVBUihMRmxhZ3MsIEVGSV9JRlJfVFlQRV9USU1FKQ0KPiANCj4gLSAg ICAgICAgICAgIHNlbGYuX19PbmVPZk9wdGlvbi5GbGFncyB8PSBFRklfSUZSX1RZUEVfVElNRQ0K PiANCj4gLQ0KPiANCj4gLSAgICAgICAgZWxpZiBMRmxhZ3MgPT0gRUZJX0lGUl9UWVBFX0RBVEU6 DQo+IA0KPiAtICAgICAgICAgICAgTEZsYWdzID0gX0ZMQUdfQ0xFQVIoTEZsYWdzLCBFRklfSUZS X1RZUEVfREFURSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fT25lT2ZPcHRpb24uRmxhZ3Mg fD0gRUZJX0lGUl9UWVBFX0RBVEUNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGVsaWYgTEZsYWdz ID09IEVGSV9JRlJfVFlQRV9TVFJJTkc6DQo+IA0KPiAtICAgICAgICAgICAgTEZsYWdzID0gX0ZM QUdfQ0xFQVIoTEZsYWdzLCBFRklfSUZSX1RZUEVfU1RSSU5HKQ0KPiANCj4gLSAgICAgICAgICAg IHNlbGYuX19PbmVPZk9wdGlvbi5GbGFncyB8PSBFRklfSUZSX1RZUEVfU1RSSU5HDQo+IA0KPiAt DQo+IA0KPiAtICAgICAgICBlbGlmIExGbGFncyA9PSBFRklfSUZSX1RZUEVfT1RIRVI6DQo+IA0K PiAtICAgICAgICAgICAgTEZsYWdzID0gX0ZMQUdfQ0xFQVIoTEZsYWdzLCBFRklfSUZSX1RZUEVf T1RIRVIpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX09uZU9mT3B0aW9uLkZsYWdzIHw9IEVG SV9JRlJfVFlQRV9PVEhFUg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIFZmclJldHVy bkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTIGlmIExGbGFncyA9PSAwIGVsc2UNCj4gVmZyUmV0dXJu Q29kZS5WRlJfUkVUVVJOX0ZMQUdTX1VOU1VQUE9SVEVEDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRl ZiBHZXRJbmZvKHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYuX19PbmVPZk9wdGlv bg0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJPcHRpb25LZXkoQ0lmck9iaiwg Q0lmck9wSGVhZGVyKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsIFF1 ZXN0aW9uSWQsIE9wdGlvblZhbHVlLCBLZXlWYWx1ZSk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAg ICBzZWxmLl9fT3B0aW9uS2V5ID0gRUZJX0lGUl9HVUlEX09QVElPTktFWSgpDQo+IA0KPiAtICAg ICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX09wdGlvbktleS5IZWFkZXIs IEVGSV9JRlJfR1VJRF9PUCwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj dHlwZXMuc2l6ZW9mKEVGSV9JRlJfR1VJRF9PUFRJT05LRVkpKQ0KPiANCj4gLSAgICAgICAgc2Vs Zi5fX09wdGlvbktleS5FeHRlbmRPcENvZGUgPSBFRklfSUZSX0VYVEVORF9PUF9PUFRJT05LRVkN Cj4gDQo+IC0gICAgICAgIHNlbGYuX19PcHRpb25LZXkuR3VpZCA9IEVGSV9JRlJfRlJBTUVXT1JL X0dVSUQNCj4gDQo+IC0gICAgICAgIHNlbGYuX19PcHRpb25LZXkuUXVlc3Rpb25JZCA9IFF1ZXN0 aW9uSWQNCj4gDQo+IC0gICAgICAgIHNlbGYuX19PcHRpb25LZXkuT3B0aW9uVmFsdWUgPSBPcHRp b25WYWx1ZQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX09wdGlvbktleS5LZXlWYWx1ZSA9IEtleVZh bHVlDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiANCj4gLSAgICAg ICAgcmV0dXJuIHNlbGYuX19PcHRpb25LZXkNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFz cyBDSWZyQ2xhc3MoQ0lmck9iaiwgQ0lmck9wSGVhZGVyKToNCj4gDQo+IC0NCj4gDQo+IC0gICAg ZGVmIF9faW5pdF9fKHNlbGYsICk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fQ2xhc3MgPSBFRklf SUZSX0dVSURfQ0xBU1MoKSAgIyBzdGF0aWMgZ3VpZA0KPiANCj4gLSAgICAgICAgQ0lmck9wSGVh ZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19DbGFzcy5IZWFkZXIsIEVGSV9JRlJfR1VJRF9PUCwN Cj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHlwZXMuc2l6ZW9mKEVGSV9J RlJfR1VJRF9DTEFTUykpDQo+IA0KPiAtICAgICAgICBzZWxmLl9fQ2xhc3MuRXh0ZW5kT3BDb2Rl ID0gRUZJX0lGUl9FWFRFTkRfT1BfQ0xBU1MNCj4gDQo+IC0gICAgICAgIHNlbGYuX19DbGFzcy5H dWlkID0gRUZJX0lGUl9USUFOT19HVUlEDQo+IA0KPiAtICAgICAgICBzZWxmLl9fQ2xhc3MuQ2xh c3MgPSBFRklfTk9OX0RFVklDRV9DTEFTUw0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0Q2xh c3Moc2VsZiwgQ2xhc3MpOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX0NsYXNzLkNsYXNzID0gQ2xh c3MNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldEluZm8oc2VsZik6DQo+IA0KPiAtICAgICAg ICByZXR1cm4gc2VsZi5fX0NsYXNzDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lm clN1YkNsYXNzKENJZnJPYmosIENJZnJPcEhlYWRlcik6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRl ZiBfX2luaXRfXyhzZWxmLCApOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX1N1YkNsYXNzID0gRUZJ X0lGUl9HVUlEX1NVQkNMQVNTKCkgICMgc3RhdGljIGd1aWQNCj4gDQo+IC0gICAgICAgIENJZnJP cEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLl9fU3ViQ2xhc3MuSGVhZGVyLCBFRklfSUZSX0dV SURfT1AsDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R5cGVzLnNpemVv ZihFRklfSUZSX0dVSURfU1VCQ0xBU1MpKQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX1N1YkNsYXNz LkV4dGVuZE9wQ29kZSA9IEVGSV9JRlJfRVhURU5EX09QX1NVQkNMQVNTDQo+IA0KPiAtICAgICAg ICBzZWxmLl9fU3ViQ2xhc3MuR3VpZCA9IEVGSV9JRlJfVElBTk9fR1VJRA0KPiANCj4gLSAgICAg ICAgc2VsZi5fX1N1YkNsYXNzLlN1YkNsYXNzID0gRUZJX1NFVFVQX0FQUExJQ0FUSU9OX1NVQkNM QVNTDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXRTdWJDbGFzcyhzZWxmLCBTdWJDbGFzcyk6 DQo+IA0KPiAtICAgICAgICBzZWxmLl9fU3ViQ2xhc3MuU3ViQ2xhc3MgPSBTdWJDbGFzcw0KPiAN Cj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gDQo+IC0gICAgICAgIHJldHVy biBzZWxmLl9fU3ViQ2xhc3MNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBDSWZyRGVm YXVsdFN0b3JlKENJZnJPYmosIENJZnJPcEhlYWRlcik6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRl ZiBfX2luaXRfXyhzZWxmLCApOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX0RlZmF1bHRTdG9yZSA9 IEVGSV9JRlJfREVGQVVMVFNUT1JFKCkNCj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5fX2lu aXRfXyhzZWxmLCBzZWxmLl9fRGVmYXVsdFN0b3JlLkhlYWRlciwNCj4gDQo+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFRklfSUZSX0RFRkFVTFRTVE9SRV9PUCkNCj4gDQo+IC0gICAg ICAgIHNlbGYuX19EZWZhdWx0U3RvcmUuRGVmYXVsdE5hbWUgPSBFRklfU1RSSU5HX0lEX0lOVkFM SUQNCj4gDQo+IC0gICAgICAgIHNlbGYuX19EZWZhdWx0U3RvcmUuRGVmYXVsdElkID0gRUZJX1ZB UlNUT1JFX0lEX0lOVkFMSUQNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldERlZmF1bHROYW1l KHNlbGYsIERlZmF1bHROYW1lKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19EZWZhdWx0U3RvcmUu RGVmYXVsdE5hbWUgPSBEZWZhdWx0TmFtZQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0RGVm YXVsdElkKHNlbGYsIERlZmF1bHRJZCk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fRGVmYXVsdFN0 b3JlLkRlZmF1bHRJZCA9IERlZmF1bHRJZA0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0RGVm YXVsdFN0b3JlKHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYuX19EZWZhdWx0U3Rv cmUNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldERlZmF1bHRTdG9yZShzZWxmLCBEZWZhdWx0 U3RvcmU6IEVGSV9JRlJfREVGQVVMVFNUT1JFKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19EZWZh dWx0U3RvcmUgPSBEZWZhdWx0U3RvcmUNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldEluZm8o c2VsZik6DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi5fX0RlZmF1bHRTdG9yZQ0KPiANCj4g LQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJWYXJTdG9yZShDSWZyT2JqLCBDSWZyT3BIZWFk ZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwgKToNCj4gDQo+IC0g ICAgICAgIHNlbGYuX19WYXJzdG9yZSA9IEVGSV9JRlJfVkFSU1RPUkUoKQ0KPiANCj4gLSAgICAg ICAgQ0lmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19WYXJzdG9yZS5IZWFkZXIsDQo+ IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUZJX0lGUl9WQVJTVE9SRV9PUCkN Cj4gDQo+IC0gICAgICAgIHNlbGYuX19WYXJzdG9yZS5WYXJTdG9yZUlkID0gRUZJX1ZBUlNUT1JF X0lEX0lOVkFMSUQNCj4gDQo+IC0gICAgICAgIHNlbGYuX19WYXJzdG9yZS5TaXplID0gMA0KPiAN Cj4gLSAgICAgICAgc2VsZi5fX1ZhcnN0b3JlLk5hbWUgPSAnJw0KPiANCj4gLQ0KPiANCj4gLSAg ICBkZWYgU2V0R3VpZChzZWxmLCBHdWlkKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19WYXJzdG9y ZS5HdWlkID0gR3VpZA0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0U2l6ZShzZWxmLCBTaXpl KToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19WYXJzdG9yZS5TaXplID0gU2l6ZQ0KPiANCj4gLQ0K PiANCj4gLSAgICBkZWYgU2V0VmFyU3RvcmVJZChzZWxmLCBWYXJTdG9yZUlkKToNCj4gDQo+IC0g ICAgICAgIHNlbGYuX19WYXJzdG9yZS5WYXJTdG9yZUlkID0gVmFyU3RvcmVJZA0KPiANCj4gLQ0K PiANCj4gLSAgICBkZWYgU2V0TmFtZShzZWxmLCBOYW1lKToNCj4gDQo+IC0gICAgICAgIHNlbGYu X19WYXJzdG9yZS5OYW1lID0gTmFtZQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0SW5mbyhz ZWxmKToNCj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxmLl9fVmFyc3RvcmUNCj4gDQo+IC0NCj4g DQo+IC0NCj4gDQo+IC1jbGFzcyBDSWZyVmFyU3RvcmVFZmkoQ0lmck9iaiwgQ0lmck9wSGVhZGVy KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsICk6DQo+IA0KPiAtICAg ICAgICBzZWxmLl9fVmFyU3RvcmVFZmkgPSBFRklfSUZSX1ZBUlNUT1JFX0VGSSgpDQo+IA0KPiAt ICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX1ZhclN0b3JlRWZpLkhl YWRlciwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFRklfSUZSX1ZBUlNU T1JFX0VGSV9PUCkNCj4gDQo+IC0gICAgICAgIHNlbGYuX19WYXJTdG9yZUVmaS5WYXJTdG9yZUlk ID0gRUZJX1ZBUk9GRlNFVF9JTlZBTElEDQo+IA0KPiAtICAgICAgICBzZWxmLl9fVmFyU3RvcmVF ZmkuU2l6ZSA9IDANCj4gDQo+IC0gICAgICAgIHNlbGYuX19WYXJTdG9yZUVmaS5OYW1lID0gJycN Cj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldEd1aWQoc2VsZiwgR3VpZCk6DQo+IA0KPiAtICAg ICAgICBzZWxmLl9fVmFyU3RvcmVFZmkuR3VpZCA9IEd1aWQNCj4gDQo+IC0NCj4gDQo+IC0gICAg ZGVmIFNldFNpemUoc2VsZiwgU2l6ZSk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fVmFyU3RvcmVF ZmkuU2l6ZSA9IFNpemUNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldFZhclN0b3JlSWQoc2Vs ZiwgVmFyU3RvcmVJZCk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fVmFyU3RvcmVFZmkuVmFyU3Rv cmVJZCA9IFZhclN0b3JlSWQNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldE5hbWUoc2VsZiwg TmFtZSk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fVmFyU3RvcmVFZmkuTmFtZSA9IE5hbWUNCj4g DQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldEF0dHJpYnV0ZXMoc2VsZiwgQXR0cmlidXRlcyk6DQo+ IA0KPiAtICAgICAgICBzZWxmLl9fVmFyU3RvcmVFZmkuQXR0cmlidXRlcyA9IEF0dHJpYnV0ZXMN Cj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldEluZm8oc2VsZik6DQo+IA0KPiAtICAgICAgICBy ZXR1cm4gc2VsZi5fX1ZhclN0b3JlRWZpDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3Mg Q0lmclZhclN0b3JlTmFtZVZhbHVlKENJZnJPYmosIENJZnJPcEhlYWRlcik6DQo+IA0KPiAtDQo+ IA0KPiAtICAgIGRlZiBfX2luaXRfXyhzZWxmKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19WYXJT dG9yZU5hbWVWYWx1ZSA9IEVGSV9JRlJfVkFSU1RPUkVfTkFNRV9WQUxVRSgpDQo+IA0KPiAtICAg ICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX1ZhclN0b3JlTmFtZVZhbHVl LkhlYWRlciwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFRklfSUZSX1ZB UlNUT1JFX05BTUVfVkFMVUVfT1ApDQo+IA0KPiAtICAgICAgICBzZWxmLl9fVmFyU3RvcmVOYW1l VmFsdWUuVmFyU3RvcmVJZCA9IEVGSV9WQVJPRkZTRVRfSU5WQUxJRA0KPiANCj4gLQ0KPiANCj4g LSAgICBkZWYgU2V0R3VpZChzZWxmLCBHdWlkKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19WYXJT dG9yZU5hbWVWYWx1ZS5HdWlkID0gR3VpZA0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0VmFy U3RvcmVJZChzZWxmLCBWYXJTdG9yZUlkKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19WYXJTdG9y ZU5hbWVWYWx1ZS5WYXJTdG9yZUlkID0gVmFyU3RvcmVJZA0KPiANCj4gLQ0KPiANCj4gLSAgICBk ZWYgR2V0SW5mbyhzZWxmKToNCj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxmLl9fVmFyU3RvcmVO YW1lVmFsdWUNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1FRklfQklUU19QRVJfVUlOVDMyID0g MSA8PCBFRklfQklUU19TSElGVF9QRVJfVUlOVDMyDQo+IA0KPiAtRUZJX0ZPUk1fSURfTUFYID0g MHhGRkZGDQo+IA0KPiAtDQo+IA0KPiAtRUZJX0ZSRUVfRk9STV9JRF9CSVRNQVBfU0laRSA9IGlu dCgoRUZJX0ZPUk1fSURfTUFYICsgMSkgLw0KPiBFRklfQklUU19QRVJfVUlOVDMyKQ0KPiANCj4g LQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJGb3JtSWQoKToNCj4gDQo+IC0NCj4gDQo+IC0g ICAgRm9ybUlkQml0TWFwID0gW10NCj4gDQo+IC0gICAgZm9yIGkgaW4gcmFuZ2UoMCwgRUZJX0ZS RUVfRk9STV9JRF9CSVRNQVBfU0laRSk6DQo+IA0KPiAtICAgICAgICBGb3JtSWRCaXRNYXAuYXBw ZW5kKDApDQo+IA0KPiAtDQo+IA0KPiAtICAgIEBjbGFzc21ldGhvZA0KPiANCj4gLSAgICBkZWYg Q2hlY2tGb3JtSWRGcmVlKGNscywgRm9ybUlkKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIElu ZGV4ID0gaW50KEZvcm1JZCAvIEVGSV9CSVRTX1BFUl9VSU5UMzIpDQo+IA0KPiAtICAgICAgICBP ZmZzZXQgPSBGb3JtSWQgJSBFRklfQklUU19QRVJfVUlOVDMyDQo+IA0KPiAtDQo+IA0KPiAtICAg ICAgICByZXR1cm4gKGNscy5Gb3JtSWRCaXRNYXBbSW5kZXhdICYgKDB4ODAwMDAwMDAgPj4gT2Zm c2V0KSkgPT0gMA0KPiANCj4gLQ0KPiANCj4gLSAgICBAY2xhc3NtZXRob2QNCj4gDQo+IC0gICAg ZGVmIE1hcmtGb3JtSWRVc2VkKGNscywgRm9ybUlkKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAg IEluZGV4ID0gaW50KEZvcm1JZCAvIEVGSV9CSVRTX1BFUl9VSU5UMzIpDQo+IA0KPiAtICAgICAg ICBPZmZzZXQgPSBGb3JtSWQgJSBFRklfQklUU19QRVJfVUlOVDMyDQo+IA0KPiAtICAgICAgICBj bHMuRm9ybUlkQml0TWFwW0luZGV4XSB8PSAoMHg4MDAwMDAwMCA+PiBPZmZzZXQpDQo+IA0KPiAt DQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lmckZvcm0oQ0lmck9iaiwgQ0lmck9wSGVhZGVyKToN Cj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYpOg0KPiANCj4gLSAgICAgICAg c2VsZi5fX0Zvcm0gPSBFRklfSUZSX0ZPUk0oKQ0KPiANCj4gLSAgICAgICAgQ0lmck9wSGVhZGVy Ll9faW5pdF9fKHNlbGYsIHNlbGYuX19Gb3JtLkhlYWRlciwgRUZJX0lGUl9GT1JNX09QKQ0KPiAN Cj4gLSAgICAgICAgc2VsZi5fX0Zvcm0uRm9ybUlkID0gMA0KPiANCj4gLSAgICAgICAgc2VsZi5f X0Zvcm0uRm9ybVRpdGxlID0gRUZJX1NUUklOR19JRF9JTlZBTElEDQo+IA0KPiAtDQo+IA0KPiAt ICAgIGRlZiBTZXRGb3JtSWQoc2VsZiwgRm9ybUlkKToNCj4gDQo+IC0gICAgICAgICMgRm9ybUlk IGNhbid0IGJlIDAuDQo+IA0KPiAtICAgICAgICBpZiBGb3JtSWQgPT0gMDoNCj4gDQo+IC0gICAg ICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVS DQo+IA0KPiAtICAgICAgICBpZiBDSWZyRm9ybUlkLkNoZWNrRm9ybUlkRnJlZShGb3JtSWQpID09 IEZhbHNlOg0KPiANCj4gLSAgICAgICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRV Uk5fRk9STUlEX1JFREVGSU5FRA0KPiANCj4gLSAgICAgICAgc2VsZi5fX0Zvcm0uRm9ybUlkID0g Rm9ybUlkDQo+IA0KPiAtICAgICAgICBDSWZyRm9ybUlkLk1hcmtGb3JtSWRVc2VkKEZvcm1JZCkN Cj4gDQo+IC0gICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0K PiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0Rm9ybVRpdGxlKHNlbGYsIEZvcm1UaXRsZSk6DQo+ IA0KPiAtICAgICAgICBzZWxmLl9fRm9ybS5Gb3JtVGl0bGUgPSBGb3JtVGl0bGUNCj4gDQo+IC0N Cj4gDQo+IC0gICAgZGVmIEdldEluZm8oc2VsZik6DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2Vs Zi5fX0Zvcm0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBDSWZyRm9ybU1hcChDSWZy T2JqLCBDSWZyT3BIZWFkZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2Vs Zik6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fRm9ybU1hcCA9IEVGSV9JRlJfRk9STV9NQVAoKQ0K PiANCj4gLSAgICAgICAgc2VsZi5fX01ldGhvZE1hcExpc3QgPSBbXSAgIyBFRklfSUZSX0ZPUk1f TUFQX01FVEhPRCgpDQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwg c2VsZi5fX0Zvcm1NYXAuSGVhZGVyLA0KPiBFRklfSUZSX0ZPUk1fTUFQX09QKQ0KPiANCj4gLSAg ICAgICAgc2VsZi5fX0Zvcm1NYXAuRm9ybUlkID0gMA0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYg U2V0Rm9ybUlkKHNlbGYsIEZvcm1JZCk6DQo+IA0KPiAtICAgICAgICBpZiBGb3JtSWQgPT0gMDoN Cj4gDQo+IC0gICAgICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFM SURfUEFSQU1FVEVSDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBDSWZyRm9ybUlkLkNoZWNr Rm9ybUlkRnJlZShGb3JtSWQpID09IEZhbHNlOg0KPiANCj4gLSAgICAgICAgICAgIHJldHVybiBW ZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fRk9STUlEX1JFREVGSU5FRA0KPiANCj4gLSAgICAgICAg c2VsZi5fX0Zvcm1NYXAuRm9ybUlkID0gRm9ybUlkDQo+IA0KPiAtICAgICAgICBDSWZyRm9ybUlk Lk1hcmtGb3JtSWRVc2VkKEZvcm1JZCkNCj4gDQo+IC0gICAgICAgIHJldHVybiBWZnJSZXR1cm5D b2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0Rm9ybU1h cE1ldGhvZChzZWxmLCBNZXRob2RUaXRsZSwgTWV0aG9kR3VpZDogRUZJX0dVSUQpOg0KPiANCj4g LSAgICAgICAgTWV0aG9kTWFwID0gRUZJX0lGUl9GT1JNX01BUF9NRVRIT0QoKQ0KPiANCj4gLSAg ICAgICAgTWV0aG9kTWFwLk1ldGhvZFRpdGxlID0gTWV0aG9kVGl0bGUNCj4gDQo+IC0gICAgICAg IE1ldGhvZE1hcC5NZXRob2RJZGVudGlmaWVyID0gTWV0aG9kR3VpZA0KPiANCj4gLSAgICAgICAg c2VsZi5fX01ldGhvZE1hcExpc3QuYXBwZW5kKE1ldGhvZE1hcCkNCj4gDQo+IC0NCj4gDQo+IC0g ICAgZGVmIEdldEluZm8oc2VsZik6DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi5fX0Zvcm1N YXAsIHNlbGYuX19NZXRob2RNYXBMaXN0DQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3Mg Q0lmckVuZChDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYg X19pbml0X18oc2VsZiwgKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19FbmQgPSBFRklfSUZSX0VO RCgpDQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX0Vu ZC5IZWFkZXIsIEVGSV9JRlJfRU5EX09QKQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNz IENJZnJCYW5uZXIoQ0lmck9iaiwgQ0lmck9wSGVhZGVyKToNCj4gDQo+IC0NCj4gDQo+IC0gICAg ZGVmIF9faW5pdF9fKHNlbGYsICk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fQmFubmVyID0gRUZJ X0lGUl9HVUlEX0JBTk5FUigpDQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18o c2VsZiwgc2VsZi5fX0Jhbm5lci5IZWFkZXIsIEVGSV9JRlJfR1VJRF9PUCwNCj4gDQo+IC0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjdHlwZXMuc2l6ZW9mKEVGSV9JRlJfR1VJRF9CQU5O RVIpKQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX0Jhbm5lci5FeHRlbmRPcENvZGUgPSBFRklfSUZS X0VYVEVORF9PUF9CQU5ORVINCj4gDQo+IC0gICAgICAgIHNlbGYuX19CYW5uZXIuR3VpZCA9IEVG SV9JRlJfVElBTk9fR1VJRA0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0VGl0bGUoc2VsZiwg U3RyaW5nSWQpOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX0Jhbm5lci5UaXRsZSA9IFN0cmluZ0lk DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXRMaW5lKHNlbGYsIExpbmUpOg0KPiANCj4gLSAg ICAgICAgc2VsZi5fX0Jhbm5lci5MaW5lTnVtYmVyID0gTGluZQ0KPiANCj4gLQ0KPiANCj4gLSAg ICBkZWYgU2V0QWxpZ24oc2VsZiwgQWxpZ24pOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX0Jhbm5l ci5BbGlnbm1lbnQgPSBBbGlnbg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0SW5mbyhzZWxm KToNCj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxmLl9fQmFubmVyDQo+IA0KPiAtDQo+IA0KPiAt DQo+IA0KPiAtY2xhc3MgQ0lmclRpbWVvdXQoQ0lmck9iaiwgQ0lmck9wSGVhZGVyKToNCj4gDQo+ IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsIFRpbWVvdXQ9MCk6DQo+IA0KPiAtICAg ICAgICBzZWxmLl9fVGltZW91dCA9IEVGSV9JRlJfR1VJRF9USU1FT1VUKCkNCj4gDQo+IC0gICAg ICAgIENJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLl9fVGltZW91dC5IZWFkZXIsIEVG SV9JRlJfR1VJRF9PUCwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHlw ZXMuc2l6ZW9mKEVGSV9JRlJfR1VJRF9USU1FT1VUKSkNCj4gDQo+IC0gICAgICAgIHNlbGYuX19U aW1lb3V0LkV4dGVuZE9wQ29kZSA9IEVGSV9JRlJfRVhURU5EX09QX1RJTUVPVVQNCj4gDQo+IC0g ICAgICAgIHNlbGYuX19UaW1lb3V0Lkd1aWQgPSBFRklfSUZSX1RJQU5PX0dVSUQNCj4gDQo+IC0g ICAgICAgIHNlbGYuX19UaW1lb3V0LlRpbWVPdXQgPSBUaW1lb3V0DQo+IA0KPiAtDQo+IA0KPiAt ICAgIGRlZiBTZXRUaW1lb3V0KHNlbGYsIFRpbWVvdXQpOg0KPiANCj4gLSAgICAgICAgc2VsZi5f X1RpbWVvdXQuVGltZU91dCA9IFRpbWVvdXQNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldElu Zm8oc2VsZik6DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi5fX1RpbWVvdXQNCj4gDQo+IC0N Cj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBDSWZyTGFiZWwoQ0lmck9iaiwgQ0lmck9wSGVhZGVyKToN Cj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsICk6DQo+IA0KPiAtICAgICAg ICBzZWxmLl9fTGFiZWwgPSBFRklfSUZSX0dVSURfTEFCRUwoKQ0KPiANCj4gLSAgICAgICAgQ0lm ck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19MYWJlbC5IZWFkZXIsIEVGSV9JRlJfR1VJ RF9PUCwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHlwZXMuc2l6ZW9m KEVGSV9JRlJfR1VJRF9MQUJFTCkpDQo+IA0KPiAtICAgICAgICBzZWxmLl9fTGFiZWwuRXh0ZW5k T3BDb2RlID0gRUZJX0lGUl9FWFRFTkRfT1BfTEFCRUwNCj4gDQo+IC0gICAgICAgIHNlbGYuX19M YWJlbC5HdWlkID0gRUZJX0lGUl9USUFOT19HVUlEDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBT ZXROdW1iZXIoc2VsZiwgTnVtYmVyKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19MYWJlbC5OdW1i ZXIgPSBOdW1iZXINCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldEluZm8oc2VsZik6DQo+IA0K PiAtICAgICAgICByZXR1cm4gc2VsZi5fX0xhYmVsDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAt Y2xhc3MgQ0lmclJ1bGUoQ0lmck9iaiwgQ0lmck9wSGVhZGVyKToNCj4gDQo+IC0NCj4gDQo+IC0g ICAgZGVmIF9faW5pdF9fKHNlbGYsICk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fUnVsZSA9IEVG SV9JRlJfUlVMRSgpDQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwg c2VsZi5fX1J1bGUuSGVhZGVyLCBFRklfSUZSX1JVTEVfT1ApDQo+IA0KPiAtICAgICAgICBzZWxm Ll9fUnVsZS5SdWxlSWQgPSBFRklfUlVMRV9JRF9JTlZBTElEDQo+IA0KPiAtDQo+IA0KPiAtICAg IGRlZiBTZXRSdWxlSWQoc2VsZiwgUnVsZUlkKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19SdWxl LlJ1bGVJZCA9IFJ1bGVJZA0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0SW5mbyhzZWxmKToN Cj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxmLl9fUnVsZQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiAN Cj4gLWRlZiBfRkxBR19URVNUX0FORF9DTEVBUihGbGFncywgTWFzayk6DQo+IA0KPiAtDQo+IA0K PiAtICAgIFJldCA9IEZsYWdzICYgTWFzaw0KPiANCj4gLSAgICBGbGFncyAmPSAofk1hc2spDQo+ IA0KPiAtICAgIHJldHVybiBGbGFncywgUmV0DQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtZGVm IF9GTEFHX0NMRUFSKEZsYWdzLCBNYXNrKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgRmxhZ3MgJj0g KH5NYXNrKQ0KPiANCj4gLSAgICByZXR1cm4gRmxhZ3MNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+ IC1jbGFzcyBDSWZyU3VidGl0bGUoQ0lmck9iaiwgQ0lmck9wSGVhZGVyLCBDSWZyU3RhdGVtZW50 SGVhZGVyKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsICk6DQo+IA0K PiAtICAgICAgICBzZWxmLl9fU3VidGl0bGUgPSBFRklfSUZSX1NVQlRJVExFKCkNCj4gDQo+IC0N Cj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLl9fU3VidGl0 bGUuSGVhZGVyLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9JRlJf U1VCVElUTEVfT1ApDQo+IA0KPiAtICAgICAgICBDSWZyU3RhdGVtZW50SGVhZGVyLl9faW5pdF9f KHNlbGYsIHNlbGYuX19TdWJ0aXRsZS5TdGF0ZW1lbnQpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAg ICBzZWxmLl9fU3VidGl0bGUuRmxhZ3MgPSAwDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXRG bGFncyhzZWxmLCBGbGFncyk6DQo+IA0KPiAtICAgICAgICBGbGFncywgUmVzdWx0ID0gX0ZMQUdf VEVTVF9BTkRfQ0xFQVIoRmxhZ3MsDQo+IEVGSV9JRlJfRkxBR1NfSE9SSVpPTlRBTCkNCj4gDQo+ IC0gICAgICAgIGlmIFJlc3VsdDoNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fU3VidGl0bGUu RmxhZ3MgfD0gRUZJX0lGUl9GTEFHU19IT1JJWk9OVEFMDQo+IA0KPiAtDQo+IA0KPiAtICAgICAg ICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MgaWYgRmxhZ3MgPT0gMCBl bHNlDQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9GTEFHU19VTlNVUFBPUlRFRA0KPiANCj4g LQ0KPiANCj4gLSAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gDQo+IC0gICAgICAgIHJldHVybiBz ZWxmLl9fU3VidGl0bGUNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBDSWZySW1hZ2Uo Q0lmck9iaiwgQ0lmck9wSGVhZGVyKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9f KHNlbGYsICk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fSW1hZ2UgPSBFRklfSUZSX0lNQUdFKCkN Cj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLl9fSW1hZ2Uu SGVhZGVyLCBFRklfSUZSX0lNQUdFX09QKQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX0ltYWdlLklk ID0gRUZJX0lNQUdFX0lEX0lOVkFMSUQNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldEltYWdl SWQoc2VsZiwgSW1hZ2VJZCk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fSW1hZ2UuSWQgPSBJbWFn ZUlkDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiANCj4gLSAgICAg ICAgcmV0dXJuIHNlbGYuX19JbWFnZQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIENJ ZnJMb2NrZWQoQ0lmck9iaiwgQ0lmck9wSGVhZGVyKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVm IF9faW5pdF9fKHNlbGYsICk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fTG9jayA9IEVGSV9JRlJf TE9DS0VEKCkNCj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxm Ll9fTG9jay5IZWFkZXIsIEVGSV9JRlJfTE9DS0VEX09QKQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiAN Cj4gLWNsYXNzIENJZnJNb2RhbChDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiANCj4gLQ0KPiAN Cj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwgKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19Nb2Rh bCA9IEVGSV9JRlJfTU9EQUxfVEFHKCkNCj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5fX2lu aXRfXyhzZWxmLCBzZWxmLl9fTW9kYWwuSGVhZGVyLA0KPiBFRklfSUZSX01PREFMX1RBR19PUCkN Cj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1FRklfSUZSX1FVRVNUSU9OX0ZMQUdfREVGQVVMVCA9 IDANCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBDSWZyUXVlc3Rpb25IZWFkZXIoQ0lm clN0YXRlbWVudEhlYWRlcik6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX2luaXRfXyhzZWxm LCBxSGVhZGVyLCBGbGFncz1FRklfSUZSX1FVRVNUSU9OX0ZMQUdfREVGQVVMVCk6DQo+IA0KPiAt DQo+IA0KPiAtICAgICAgICBzZWxmLl9fcUhlYWRlciA9IHFIZWFkZXINCj4gDQo+IC0gICAgICAg IENJZnJTdGF0ZW1lbnRIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX3FIZWFkZXIuSGVhZGVy KQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX3FIZWFkZXIuUXVlc3Rpb25JZCA9IEVGSV9RVUVTVElP Tl9JRF9JTlZBTElEDQo+IA0KPiAtICAgICAgICBzZWxmLl9fcUhlYWRlci5WYXJTdG9yZUlkID0g RUZJX1ZBUlNUT1JFX0lEX0lOVkFMSUQNCj4gDQo+IC0gICAgICAgIHNlbGYuX19xSGVhZGVyLlZh clN0b3JlSW5mby5WYXJOYW1lID0gRUZJX1NUUklOR19JRF9JTlZBTElEDQo+IA0KPiAtICAgICAg ICBzZWxmLl9fcUhlYWRlci5WYXJTdG9yZUluZm8uVmFyT2Zmc2V0ID0gRUZJX1ZBUk9GRlNFVF9J TlZBTElEDQo+IA0KPiAtICAgICAgICBzZWxmLl9fcUhlYWRlci5GbGFncyA9IEZsYWdzDQo+IA0K PiAtDQo+IA0KPiAtICAgIGRlZiBHZXRRdWVzdGlvbklkKHNlbGYpOg0KPiANCj4gLSAgICAgICAg cmV0dXJuIHNlbGYuX19xSGVhZGVyLlF1ZXN0aW9uSWQNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVm IFNldFF1ZXN0aW9uSWQoc2VsZiwgUXVlc3Rpb25JZCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAg ICBzZWxmLl9fcUhlYWRlci5RdWVzdGlvbklkID0gUXVlc3Rpb25JZA0KPiANCj4gLQ0KPiANCj4g LSAgICBkZWYgR2V0VmFyU3RvcmVJZChzZWxmKToNCj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxm Ll9fcUhlYWRlci5WYXJTdG9yZUlkDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXRWYXJTdG9y ZUluZm8oc2VsZiwgQmFzZUluZm8pOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX3FI ZWFkZXIuVmFyU3RvcmVJZCA9IEJhc2VJbmZvLlZhclN0b3JlSWQNCj4gDQo+IC0gICAgICAgIHNl bGYuX19xSGVhZGVyLlZhclN0b3JlSW5mby5WYXJOYW1lID0gQmFzZUluZm8uSW5mby5WYXJOYW1l DQo+IA0KPiAtICAgICAgICBzZWxmLl9fcUhlYWRlci5WYXJTdG9yZUluZm8uVmFyT2Zmc2V0ID0g QmFzZUluZm8uSW5mby5WYXJPZmZzZXQNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldFZhclN0 b3JlSW5mbyhzZWxmLCBJbmZvKTogICMgQnVnDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBJbmZv LlZhclN0b3JlSWQgPSBzZWxmLl9fcUhlYWRlci5WYXJTdG9yZUlkDQo+IA0KPiAtICAgICAgICBJ bmZvLlZhclN0b3JlSW5mbyA9IHNlbGYuX19xSGVhZGVyLlZhclN0b3JlSW5mbw0KPiANCj4gLSAg ICAgICAgcmV0dXJuIEluZm8NCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldEZsYWdzKHNlbGYp Og0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYuX19xSGVhZGVyLkZsYWdzDQo+IA0KPiAtDQo+ IA0KPiAtICAgIGRlZiBTZXRGbGFncyhzZWxmLCBGbGFncyk6DQo+IA0KPiAtDQo+IA0KPiAtICAg ICAgICBGbGFncywgUmV0ID0gX0ZMQUdfVEVTVF9BTkRfQ0xFQVIoRmxhZ3MsIEVGSV9JRlJfRkxB R19SRUFEX09OTFkpDQo+IA0KPiAtICAgICAgICBpZiBSZXQ6DQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5fX3FIZWFkZXIuRmxhZ3MgfD0gRUZJX0lGUl9GTEFHX1JFQURfT05MWQ0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgRmxhZ3MgPSBfRkxBR19DTEVBUihGbGFncywgMHgwMikNCj4gDQo+IC0N Cj4gDQo+IC0gICAgICAgIEZsYWdzLCBSZXQgPSBfRkxBR19URVNUX0FORF9DTEVBUihGbGFncywg RUZJX0lGUl9GTEFHX0NBTExCQUNLKQ0KPiANCj4gLSAgICAgICAgaWYgUmV0Og0KPiANCj4gLSAg ICAgICAgICAgIHNlbGYuX19xSGVhZGVyLkZsYWdzIHw9IEVGSV9JRlJfRkxBR19DQUxMQkFDSw0K PiANCj4gLQ0KPiANCj4gLSAgICAgICAgIyBpZ25vcmUgTlZBY2Nlc3NGbGFnDQo+IA0KPiAtICAg ICAgICBGbGFncyA9IF9GTEFHX0NMRUFSKEZsYWdzLCAweDA4KQ0KPiANCj4gLQ0KPiANCj4gLSAg ICAgICAgRmxhZ3MsIFJldCA9IF9GTEFHX1RFU1RfQU5EX0NMRUFSKEZsYWdzLA0KPiBFRklfSUZS X0ZMQUdfUkVTRVRfUkVRVUlSRUQpDQo+IA0KPiAtICAgICAgICBpZiBSZXQ6DQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5fX3FIZWFkZXIuRmxhZ3MgfD0gRUZJX0lGUl9GTEFHX1JFU0VUX1JFUVVJ UkVEDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBGbGFncywgUmV0ID0gX0ZMQUdfVEVTVF9BTkRf Q0xFQVIoRmxhZ3MsDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRUZJX0lGUl9GTEFHX1JFQ09OTkVDVF9SRVFVSVJFRCkNCj4gDQo+IC0gICAgICAgIGlm IFJldDoNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fcUhlYWRlci5GbGFncyB8PSBFRklfSUZS X0ZMQUdfUkVDT05ORUNUX1JFUVVJUkVEDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAjIFNldCBM YXRlQ2hlY2sgRmxhZyB0byBjb21wYXRpYmxlIGZvciBmcmFtZXdvcmsgZmxhZw0KPiANCj4gLSAg ICAgICAgIyBidXQgaXQgdXNlcyAweDIwIGFzIGl0cyBmbGFnLCBpZiBpbiB0aGUgZnV0dXJlIFVF RkkgbWF5IHRha2UgdGhpcyBmbGFnDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBGbGFncywgUmV0 ID0gX0ZMQUdfVEVTVF9BTkRfQ0xFQVIoRmxhZ3MsIDB4MjApDQo+IA0KPiAtICAgICAgICBpZiBS ZXQ6DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX3FIZWFkZXIuRmxhZ3MgfD0gMHgyMA0KPiAN Cj4gLQ0KPiANCj4gLSAgICAgICAgRmxhZ3MsIFJldCA9IF9GTEFHX1RFU1RfQU5EX0NMRUFSKEZs YWdzLA0KPiBFRklfSUZSX0ZMQUdfT1BUSU9OU19PTkxZKQ0KPiANCj4gLSAgICAgICAgaWYgUmV0 Og0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19xSGVhZGVyLkZsYWdzIHw9IEVGSV9JRlJfRkxB R19PUFRJT05TX09OTFkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBWZnJSZXR1cm5D b2RlLlZGUl9SRVRVUk5fU1VDQ0VTUyBpZiBGbGFncyA9PSAwIGVsc2UNCj4gVmZyUmV0dXJuQ29k ZS5WRlJfUkVUVVJOX0ZMQUdTX1VOU1VQUE9SVEVEDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBV cGRhdGVDSWZyUXVlc3Rpb25IZWFkZXIoc2VsZiwgcUhlYWRlcik6DQo+IA0KPiAtICAgICAgICBz ZWxmLl9fcUhlYWRlciA9IHFIZWFkZXINCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBD SWZyUmVmKENJZnJPYmosIENJZnJPcEhlYWRlciwgQ0lmclF1ZXN0aW9uSGVhZGVyKToNCj4gDQo+ IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsICk6DQo+IA0KPiAtICAgICAgICBzZWxm Ll9fUmVmID0gRUZJX0lGUl9SRUYoKQ0KPiANCj4gLSAgICAgICAgQ0lmck9wSGVhZGVyLl9faW5p dF9fKHNlbGYsIHNlbGYuX19SZWYuSGVhZGVyLCBFRklfSUZSX1JFRl9PUCkNCj4gDQo+IC0gICAg ICAgIENJZnJRdWVzdGlvbkhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLl9fUmVmLlF1ZXN0aW9u KQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX1JlZi5Gb3JtSWQgPSAwDQo+IA0KPiAtDQo+IA0KPiAt ICAgIGRlZiBTZXRGb3JtSWQoc2VsZiwgRm9ybUlkKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19S ZWYuRm9ybUlkID0gRm9ybUlkDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBHZXRJbmZvKHNlbGYp Og0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYuX19SZWYNCj4gDQo+IC0NCj4gDQo+IC0NCj4g DQo+IC1jbGFzcyBDSWZyUmVmMihDSWZyT2JqLCBDSWZyT3BIZWFkZXIsIENJZnJRdWVzdGlvbkhl YWRlcik6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX2luaXRfXyhzZWxmLCApOg0KPiANCj4g LSAgICAgICAgc2VsZi5fX1JlZjIgPSBFRklfSUZSX1JFRjIoKQ0KPiANCj4gLSAgICAgICAgQ0lm ck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19SZWYyLkhlYWRlciwgRUZJX0lGUl9SRUZf T1ApDQo+IA0KPiAtICAgICAgICBDSWZyUXVlc3Rpb25IZWFkZXIuX19pbml0X18oc2VsZiwgc2Vs Zi5fX1JlZjIuUXVlc3Rpb24pDQo+IA0KPiAtICAgICAgICBzZWxmLl9fUmVmMi5Gb3JtSWQgPSAw DQo+IA0KPiAtICAgICAgICBzZWxmLl9fUmVmMi5RdWVzdGlvbklkID0gRUZJX1FVRVNUSU9OX0lE X0lOVkFMSUQNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldEZvcm1JZChzZWxmLCBGb3JtSWQp Og0KPiANCj4gLSAgICAgICAgc2VsZi5fX1JlZjIuRm9ybUlkID0gRm9ybUlkDQo+IA0KPiAtDQo+ IA0KPiAtICAgIGRlZiBTZXRRdWVzdGlvbklkKHNlbGYsIFF1ZXN0aW9uSWQpOg0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgc2VsZi5fX1JlZjIuUXVlc3Rpb25JZCA9IFF1ZXN0aW9uSWQNCj4gDQo+ IC0NCj4gDQo+IC0gICAgZGVmIEdldEluZm8oc2VsZik6DQo+IA0KPiAtICAgICAgICByZXR1cm4g c2VsZi5fX1JlZjINCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBDSWZyUmVmMyhDSWZy T2JqLCBDSWZyT3BIZWFkZXIsIENJZnJRdWVzdGlvbkhlYWRlcik6DQo+IA0KPiAtDQo+IA0KPiAt ICAgIGRlZiBfX2luaXRfXyhzZWxmLCApOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX1JlZjMgPSBF RklfSUZSX1JFRjMoKQ0KPiANCj4gLSAgICAgICAgQ0lmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYs IHNlbGYuX19SZWYzLkhlYWRlciwgRUZJX0lGUl9SRUZfT1ApDQo+IA0KPiAtICAgICAgICBDSWZy UXVlc3Rpb25IZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX1JlZjMuUXVlc3Rpb24pDQo+IA0K PiAtICAgICAgICBzZWxmLl9fUmVmMy5Gb3JtSWQgPSAwDQo+IA0KPiAtICAgICAgICBzZWxmLl9f UmVmMy5RdWVzdGlvbklkID0gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQNCj4gDQo+IC0gICAgICAg IEVGSV9JRlJfREVGQVVMVF9HVUlEID0gRUZJX0dVSUQoMCwgMCwgMCwNCj4gDQo+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3VpZEFycmF5KDAsIDAsIDAsIDAsIDAs IDAsIDAsIDApKQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX1JlZjMuRm9ybVNldElkID0gRUZJX0lG Ul9ERUZBVUxUX0dVSUQNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldEZvcm1JZChzZWxmLCBG b3JtSWQpOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX1JlZjMuRm9ybUlkID0gRm9ybUlkDQo+IA0K PiAtDQo+IA0KPiAtICAgIGRlZiBTZXRRdWVzdGlvbklkKHNlbGYsIFF1ZXN0aW9uSWQpOg0KPiAN Cj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX1JlZjMuUXVlc3Rpb25JZCA9IFF1ZXN0aW9uSWQN Cj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldEZvcm1TZXRJZChzZWxmLCBGb3JtU2V0SWQpOg0K PiANCj4gLSAgICAgICAgc2VsZi5fX1JlZjMuRm9ybVNldElkID0gRm9ybVNldElkDQo+IA0KPiAt DQo+IA0KPiAtICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNl bGYuX19SZWYzDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lmclJlZjQoQ0lmck9i aiwgQ0lmck9wSGVhZGVyLCBDSWZyUXVlc3Rpb25IZWFkZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAg ICBkZWYgX19pbml0X18oc2VsZiwgKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19SZWY0ID0gRUZJ X0lGUl9SRUY0KCkNCj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBz ZWxmLl9fUmVmNC5IZWFkZXIsIEVGSV9JRlJfUkVGX09QKQ0KPiANCj4gLSAgICAgICAgQ0lmclF1 ZXN0aW9uSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19SZWY0LlF1ZXN0aW9uKQ0KPiANCj4g LSAgICAgICAgc2VsZi5fX1JlZjQuRm9ybUlkID0gMA0KPiANCj4gLSAgICAgICAgc2VsZi5fX1Jl ZjQuUXVlc3Rpb25JZCA9IEVGSV9RVUVTVElPTl9JRF9JTlZBTElEDQo+IA0KPiAtICAgICAgICBF RklfSUZSX0RFRkFVTFRfR1VJRCA9IEVGSV9HVUlEKDAsIDAsIDAsDQo+IA0KPiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEd1aWRBcnJheSgwLCAwLCAwLCAwLCAwLCAw LCAwLCAwKSkNCj4gDQo+IC0gICAgICAgIHNlbGYuX19SZWY0LkZvcm1TZXRJZCA9IEVGSV9JRlJf REVGQVVMVF9HVUlEDQo+IA0KPiAtICAgICAgICBzZWxmLl9fUmVmNC5EZXZpY2VQYXRoID0gRUZJ X1NUUklOR19JRF9JTlZBTElEDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXRGb3JtSWQoc2Vs ZiwgRm9ybUlkKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19SZWY0LkZvcm1JZCA9IEZvcm1JZA0K PiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0UXVlc3Rpb25JZChzZWxmLCBRdWVzdGlvbklkKToN Cj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYuX19SZWY0LlF1ZXN0aW9uSWQgPSBRdWVzdGlv bklkDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXRGb3JtU2V0SWQoc2VsZiwgRm9ybVNldElk KToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19SZWY0LkZvcm1TZXRJZCA9IEZvcm1TZXRJZA0KPiAN Cj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0RGV2aWNlUGF0aChzZWxmLCBEZXZpY2VQYXRoKToNCj4g DQo+IC0gICAgICAgIHNlbGYuX19SZWY0LkRldmljZVBhdGggPSBEZXZpY2VQYXRoDQo+IA0KPiAt DQo+IA0KPiAtICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNl bGYuX19SZWY0DQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lmclJlZjUoQ0lmck9i aiwgQ0lmck9wSGVhZGVyLCBDSWZyUXVlc3Rpb25IZWFkZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAg ICBkZWYgX19pbml0X18oc2VsZiwgKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19SZWY1ID0gRUZJ X0lGUl9SRUY1KCkNCj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBz ZWxmLl9fUmVmNS5IZWFkZXIsIEVGSV9JRlJfUkVGX09QKQ0KPiANCj4gLSAgICAgICAgQ0lmclF1 ZXN0aW9uSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19SZWY1LlF1ZXN0aW9uKQ0KPiANCj4g LQ0KPiANCj4gLSAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gDQo+IC0gICAgICAgIHJldHVybiBz ZWxmLl9fUmVmNQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJBY3Rpb24oQ0lm ck9iaiwgQ0lmck9wSGVhZGVyLCBDSWZyUXVlc3Rpb25IZWFkZXIpOg0KPiANCj4gLQ0KPiANCj4g LSAgICBkZWYgX19pbml0X18oc2VsZiwgKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19BY3Rpb24g PSBFRklfSUZSX0FDVElPTigpDQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18o c2VsZiwgc2VsZi5fX0FjdGlvbi5IZWFkZXIsIEVGSV9JRlJfQUNUSU9OX09QKQ0KPiANCj4gLSAg ICAgICAgQ0lmclF1ZXN0aW9uSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19BY3Rpb24uUXVl c3Rpb24pDQo+IA0KPiAtICAgICAgICBzZWxmLl9fQWN0aW9uLlF1ZXN0aW9uQ29uZmlnID0gRUZJ X1NUUklOR19JRF9JTlZBTElEDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXRRdWVzdGlvbkNv bmZpZyhzZWxmLCBRdWVzdGlvbkNvbmZpZyk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fQWN0aW9u LlF1ZXN0aW9uQ29uZmlnID0gUXVlc3Rpb25Db25maWcNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVm IEdldEluZm8oc2VsZik6DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi5fX0FjdGlvbg0KPiAN Cj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJUZXh0KENJZnJPYmosIENJZnJPcEhlYWRl ciwgQ0lmclN0YXRlbWVudEhlYWRlcik6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX2luaXRf XyhzZWxmLCApOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX1RleHQgPSBFRklfSUZSX1RFWFQoKQ0K PiANCj4gLSAgICAgICAgQ0lmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19UZXh0Lkhl YWRlciwgRUZJX0lGUl9URVhUX09QKQ0KPiANCj4gLSAgICAgICAgQ0lmclN0YXRlbWVudEhlYWRl ci5fX2luaXRfXyhzZWxmLCBzZWxmLl9fVGV4dC5TdGF0ZW1lbnQpDQo+IA0KPiAtICAgICAgICBz ZWxmLl9fVGV4dC5UZXh0VHdvID0gRUZJX1NUUklOR19JRF9JTlZBTElEDQo+IA0KPiAtDQo+IA0K PiAtICAgIGRlZiBTZXRUZXh0VHdvKHNlbGYsIFN0cmluZ0lkKToNCj4gDQo+IC0gICAgICAgIHNl bGYuX19UZXh0LlRleHRUd28gPSBTdHJpbmdJZA0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0 SW5mbyhzZWxmKToNCj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxmLl9fVGV4dA0KPiANCj4gLQ0K PiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJHdWlkKENJZnJPYmosIENJZnJPcEhlYWRlcik6DQo+ IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX2luaXRfXyhzZWxmLCBTaXplLCBEYXRhYnVmZj1Ob25l KToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19HdWlkID0gRUZJX0lGUl9HVUlEKCkNCj4gDQo+IC0g ICAgICAgIHNlbGYuX19EYXRhID0gRGF0YWJ1ZmYNCj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRl ci5fX2luaXRfXyhzZWxmLCBzZWxmLl9fR3VpZC5IZWFkZXIsIEVGSV9JRlJfR1VJRF9PUCwNCj4g DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHlwZXMuc2l6ZW9mKEVGSV9JRlJf R1VJRCkgKyBTaXplKQ0KPiANCj4gLSAgICAgICAgRUZJX0lGUl9ERUZBVUxUX0dVSUQgPSBFRklf R1VJRCgwLCAwLCAwLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBHdWlkQXJyYXkoMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCkpDQo+IA0KPiAtICAgICAgICBz ZWxmLl9fR3VpZC5HdWlkID0gRUZJX0lGUl9ERUZBVUxUX0dVSUQNCj4gDQo+IC0NCj4gDQo+IC0g ICAgZGVmIFNldEd1aWQoc2VsZiwgR3VpZCk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fR3VpZC5H dWlkID0gR3VpZA0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0RGF0YShzZWxmLCBEYXRhYnVm Zik6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fRGF0YSA9IERhdGFidWZmDQo+IA0KPiAtDQo+IA0K PiAtICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYuX19H dWlkDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lmck9yZGVyZWRMaXN0KENJZnJP YmosIENJZnJPcEhlYWRlciwgQ0lmclF1ZXN0aW9uSGVhZGVyKToNCj4gDQo+IC0NCj4gDQo+IC0g ICAgZGVmIF9faW5pdF9fKHNlbGYpOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX09yZGVyZWRMaXN0 ID0gRUZJX0lGUl9PUkRFUkVEX0xJU1QoKQ0KPiANCj4gLSAgICAgICAgQ0lmck9wSGVhZGVyLl9f aW5pdF9fKHNlbGYsIHNlbGYuX19PcmRlcmVkTGlzdC5IZWFkZXIsDQo+IA0KPiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRUZJX0lGUl9PUkRFUkVEX0xJU1RfT1ApDQo+IA0KPiAtICAg ICAgICBDSWZyUXVlc3Rpb25IZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX09yZGVyZWRMaXN0 LlF1ZXN0aW9uKQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX09yZGVyZWRMaXN0Lk1heENvbnRhaW5l cnMgPSAwDQo+IA0KPiAtICAgICAgICBzZWxmLl9fT3JkZXJlZExpc3QuRmxhZ3MgPSAwDQo+IA0K PiAtDQo+IA0KPiAtICAgIGRlZiBHZXRRdWVzdGlvbihzZWxmKToNCj4gDQo+IC0gICAgICAgIHJl dHVybiBzZWxmDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXRRSGVhZGVyRmxhZ3Moc2VsZiwg RmxhZ3MpOg0KPiANCj4gLSAgICAgICAgQ0lmclF1ZXN0aW9uSGVhZGVyLlNldEZsYWdzKHNlbGYs IEZsYWdzKQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0TWF4Q29udGFpbmVycyhzZWxmLCBN YXhDb250YWluZXJzKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19PcmRlcmVkTGlzdC5NYXhDb250 YWluZXJzID0gTWF4Q29udGFpbmVycw0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0RmxhZ3Mo c2VsZiwgSEZsYWdzLCBMRmxhZ3MpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgUmV0dXJuQ29k ZSA9IENJZnJRdWVzdGlvbkhlYWRlci5TZXRGbGFncyhzZWxmLCBIRmxhZ3MpDQo+IA0KPiAtICAg ICAgICBpZiBSZXR1cm5Db2RlICE9IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTOg0K PiANCj4gLSAgICAgICAgICAgIHJldHVybiBSZXR1cm5Db2RlDQo+IA0KPiAtICAgICAgICBMRmxh Z3MsIFJldCA9IF9GTEFHX1RFU1RfQU5EX0NMRUFSKExGbGFncywgRUZJX0lGUl9VTklRVUVfU0VU KQ0KPiANCj4gLSAgICAgICAgaWYgUmV0Og0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19PcmRl cmVkTGlzdC5GbGFncyB8PSBFRklfSUZSX1VOSVFVRV9TRVQNCj4gDQo+IC0NCj4gDQo+IC0gICAg ICAgIExGbGFncywgUmV0ID0gX0ZMQUdfVEVTVF9BTkRfQ0xFQVIoTEZsYWdzLCBFRklfSUZSX05P X0VNUFRZX1NFVCkNCj4gDQo+IC0gICAgICAgIGlmIFJldDoNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLl9fT3JkZXJlZExpc3QuRmxhZ3MgfD0gRUZJX0lGUl9OT19FTVBUWV9TRVQNCj4gDQo+IC0N Cj4gDQo+IC0gICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUyBp ZiBMRmxhZ3MgPT0gMCBlbHNlDQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9GTEFHU19VTlNV UFBPUlRFRA0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gDQo+IC0g ICAgICAgIHJldHVybiBzZWxmLl9fT3JkZXJlZExpc3QNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+ IC1jbGFzcyBDSWZyU3RyaW5nKENJZnJPYmosIENJZnJPcEhlYWRlciwgQ0lmclF1ZXN0aW9uSGVh ZGVyKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYpOg0KPiANCj4gLSAg ICAgICAgc2VsZi5fX1N0ciA9IEVGSV9JRlJfU1RSSU5HKCkNCj4gDQo+IC0gICAgICAgIENJZnJP cEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLl9fU3RyLkhlYWRlciwgRUZJX0lGUl9TVFJJTkdf T1ApDQo+IA0KPiAtICAgICAgICBDSWZyUXVlc3Rpb25IZWFkZXIuX19pbml0X18oc2VsZiwgc2Vs Zi5fX1N0ci5RdWVzdGlvbikNCj4gDQo+IC0gICAgICAgIHNlbGYuX19TdHIuRmxhZ3MgPSAwDQo+ IA0KPiAtICAgICAgICBzZWxmLl9fU3RyLk1pblNpemUgPSAwDQo+IA0KPiAtICAgICAgICBzZWxm Ll9fU3RyLk1heFNpemUgPSAwDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBHZXRRdWVzdGlvbihz ZWxmKToNCj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxmDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRl ZiBTZXRRSGVhZGVyRmxhZ3Moc2VsZiwgRmxhZ3MpOg0KPiANCj4gLSAgICAgICAgQ0lmclF1ZXN0 aW9uSGVhZGVyLlNldEZsYWdzKHNlbGYsIEZsYWdzKQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYg U2V0RmxhZ3Moc2VsZiwgSEZsYWdzLCBMRmxhZ3MpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAg UmV0dXJuQ29kZSA9IENJZnJRdWVzdGlvbkhlYWRlci5TZXRGbGFncyhzZWxmLCBIRmxhZ3MpDQo+ IA0KPiAtICAgICAgICBpZiBSZXR1cm5Db2RlICE9IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9T VUNDRVNTOg0KPiANCj4gLSAgICAgICAgICAgIHJldHVybiBSZXR1cm5Db2RlDQo+IA0KPiAtDQo+ IA0KPiAtICAgICAgICBMRmxhZ3MsIFJldCA9IF9GTEFHX1RFU1RfQU5EX0NMRUFSKExGbGFncywN Cj4gRUZJX0lGUl9TVFJJTkdfTVVMVElfTElORSkNCj4gDQo+IC0gICAgICAgIGlmIFJldDoNCj4g DQo+IC0gICAgICAgICAgICBzZWxmLl9fU3RyLkZsYWdzIHw9IEVGSV9JRlJfU1RSSU5HX01VTFRJ X0xJTkUNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9S RVRVUk5fU1VDQ0VTUyBpZiBMRmxhZ3MgPT0gMCBlbHNlDQo+IFZmclJldHVybkNvZGUuVkZSX1JF VFVSTl9GTEFHU19VTlNVUFBPUlRFRA0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0TWluU2l6 ZShzZWxmLCBNaW5TaXplKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19TdHIuTWluU2l6ZSA9IE1p blNpemUNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldE1heFNpemUoc2VsZiwgTWF4U2l6ZSk6 DQo+IA0KPiAtICAgICAgICBzZWxmLl9fU3RyLk1heFNpemUgPSBNYXhTaXplDQo+IA0KPiAtDQo+ IA0KPiAtICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYu X19TdHINCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBDSWZyUGFzc3dvcmQoQ0lmck9i aiwgQ0lmck9wSGVhZGVyLCBDSWZyUXVlc3Rpb25IZWFkZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAg ICBkZWYgX19pbml0X18oc2VsZik6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fUGFzc3dvcmQgPSBF RklfSUZSX1BBU1NXT1JEKCkNCj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5fX2luaXRfXyhz ZWxmLCBzZWxmLl9fUGFzc3dvcmQuSGVhZGVyLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVGSV9JRlJfUEFTU1dPUkRfT1ApDQo+IA0KPiAtICAgICAgICBDSWZyUXVlc3Rp b25IZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX1Bhc3N3b3JkLlF1ZXN0aW9uKQ0KPiANCj4g LSAgICAgICAgc2VsZi5fX1Bhc3N3b3JkLk1pblNpemUgPSAwDQo+IA0KPiAtICAgICAgICBzZWxm Ll9fUGFzc3dvcmQuTWF4U2l6ZSA9IDANCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldFF1ZXN0 aW9uKHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYNCj4gDQo+IC0NCj4gDQo+IC0g ICAgZGVmIFNldFFIZWFkZXJGbGFncyhzZWxmLCBGbGFncyk6DQo+IA0KPiAtICAgICAgICBDSWZy UXVlc3Rpb25IZWFkZXIuU2V0RmxhZ3Moc2VsZiwgRmxhZ3MpDQo+IA0KPiAtDQo+IA0KPiAtICAg IGRlZiBTZXRNaW5TaXplKHNlbGYsIE1pblNpemUpOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX1Bh c3N3b3JkLk1pblNpemUgPSBNaW5TaXplDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXRNYXhT aXplKHNlbGYsIE1heFNpemUpOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX1Bhc3N3b3JkLk1heFNp emUgPSBNYXhTaXplDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiAN Cj4gLSAgICAgICAgcmV0dXJuIHNlbGYuX19QYXNzd29yZA0KPiANCj4gLQ0KPiANCj4gLQ0KPiAN Cj4gLWNsYXNzIENJZnJEZWZhdWx0KENJZnJPYmosIENJZnJPcEhlYWRlcik6DQo+IA0KPiAtDQo+ IA0KPiAtICAgIGRlZiBfX2luaXRfXyhzZWxmLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgU2l6 ZSwNCj4gDQo+IC0gICAgICAgICAgICAgICAgIERlZmF1bHRJZD1FRklfSElJX0RFRkFVTFRfQ0xB U1NfU1RBTkRBUkQsDQo+IA0KPiAtICAgICAgICAgICAgICAgICBUeXBlPUVGSV9JRlJfVFlQRV9P VEhFUiwNCj4gDQo+IC0gICAgICAgICAgICAgICAgIFZhbHVlPUVGSV9JRlJfVFlQRV9WQUxVRSgp KToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19EZWZhdWx0ID0gRUZJX0lGUl9ERUZBVUxUKCkNCj4g DQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLl9fRGVmYXVsdC5I ZWFkZXIsIEVGSV9JRlJfREVGQVVMVF9PUCwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTaXplKQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX0RlZmF1bHQuVHlwZSA9IFR5cGUN Cj4gDQo+IC0gICAgICAgIHNlbGYuX19EZWZhdWx0LkRlZmF1bHRJZCA9IERlZmF1bHRJZA0KPiAN Cj4gLSAgICAgICAgc2VsZi5fX0RlZmF1bHQuVmFsdWUgPSBWYWx1ZQ0KPiANCj4gLQ0KPiANCj4g LSAgICBkZWYgU2V0RGVmYXVsdElkKHNlbGYsIERlZmF1bHRJZCk6DQo+IA0KPiAtICAgICAgICBz ZWxmLl9fRGVmYXVsdC5EZWZhdWx0SWQgPSBEZWZhdWx0SWQNCj4gDQo+IC0NCj4gDQo+IC0gICAg ZGVmIFNldFR5cGUoc2VsZiwgVHlwZSk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fRGVmYXVsdC5U eXBlID0gVHlwZQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0VmFsdWUoc2VsZiwgVmFsdWUp Og0KPiANCj4gLSAgICAgICAgc2VsZi5fX0RlZmF1bHQuVmFsdWUgPSBWYWx1ZQ0KPiANCj4gLQ0K PiANCj4gLSAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxm Ll9fRGVmYXVsdA0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJEZWZhdWx0MyhD SWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18o c2VsZiwNCj4gDQo+IC0gICAgICAgICAgICAgICAgIFNpemUsDQo+IA0KPiAtICAgICAgICAgICAg ICAgICBOdW1zLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgVmFsdWVUeXBlLA0KPiANCj4gLSAg ICAgICAgICAgICAgICAgRGVmYXVsdElkPUVGSV9ISUlfREVGQVVMVF9DTEFTU19TVEFOREFSRCwN Cj4gDQo+IC0gICAgICAgICAgICAgICAgIFR5cGU9RUZJX0lGUl9UWVBFX09USEVSLA0KPiANCj4g LSAgICAgICAgICAgICAgICAgVmFsdWVMaXN0PVtdKToNCj4gDQo+IC0gICAgICAgIEhlYWRlciA9 IEVGSV9JRlJfT1BfSEVBREVSKCkNCj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5fX2luaXRf XyhzZWxmLCBIZWFkZXIsIEVGSV9JRlJfREVGQVVMVF9PUCwgU2l6ZSkNCj4gDQo+IC0gICAgICAg IHNlbGYuX19EZWZhdWx0ID0gUmVmaW5lX0VGSV9JRlJfREVGQVVMVChOdW1zKQ0KPiANCj4gLSAg ICAgICAgc2VsZi5fX0RlZmF1bHQuSGVhZGVyID0gSGVhZGVyDQo+IA0KPiAtICAgICAgICBzZWxm Ll9fRGVmYXVsdC5UeXBlID0gVHlwZQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX0RlZmF1bHQuRGVm YXVsdElkID0gRGVmYXVsdElkDQo+IA0KPiAtICAgICAgICBzZWxmLl9fVmFsdWVUeXBlID0gVmFs dWVUeXBlDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBWYWx1ZUxpc3QgIT0gW106DQo+IA0K PiAtICAgICAgICAgICAgQXJyYXlUeXBlID0gRUZJX0lGUl9UWVBFX1ZBTFVFICogTnVtcw0KPiAN Cj4gLSAgICAgICAgICAgIFZhbHVlQXJyYXkgPSBBcnJheVR5cGUoKQ0KPiANCj4gLSAgICAgICAg ICAgIGZvciBpIGluIHJhbmdlKDAsIGxlbihWYWx1ZUxpc3QpKToNCj4gDQo+IC0gICAgICAgICAg ICAgICAgVmFsdWVBcnJheVtpXSA9IFZhbHVlTGlzdFtpXQ0KPiANCj4gLSAgICAgICAgICAgIHNl bGYuX19EZWZhdWx0LlZhbHVlID0gVmFsdWVBcnJheQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYg U2V0RGVmYXVsdElkKHNlbGYsIERlZmF1bHRJZCk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fRGVm YXVsdC5EZWZhdWx0SWQgPSBEZWZhdWx0SWQNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldFZh bHVlVHlwZShzZWxmKToNCj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxmLl9fVmFsdWVUeXBlDQo+ IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXRUeXBlKHNlbGYsIFR5cGUpOg0KPiANCj4gLSAgICAg ICAgc2VsZi5fX0RlZmF1bHQuVHlwZSA9IFR5cGUNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNl dFZhbHVlKHNlbGYsIFZhbHVlTGlzdCk6DQo+IA0KPiAtICAgICAgICBBcnJheVR5cGUgPSBFRklf SUZSX1RZUEVfVkFMVUUgKiAobGVuKFZhbHVlTGlzdCkpDQo+IA0KPiAtICAgICAgICBWYWx1ZUFy cmF5ID0gQXJyYXlUeXBlKCkNCj4gDQo+IC0gICAgICAgIGZvciBpIGluIHJhbmdlKDAsIGxlbihW YWx1ZUxpc3QpKToNCj4gDQo+IC0gICAgICAgICAgICBWYWx1ZUFycmF5W2ldID0gVmFsdWVMaXN0 W2ldDQo+IA0KPiAtICAgICAgICBzZWxmLl9fRGVmYXVsdC5WYWx1ZSA9IFZhbHVlQXJyYXkNCj4g DQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldEluZm8oc2VsZik6DQo+IA0KPiAtICAgICAgICByZXR1 cm4gc2VsZi5fX0RlZmF1bHQNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBDSWZyRGVm YXVsdDIoQ0lmck9iaiwgQ0lmck9wSGVhZGVyKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9f aW5pdF9fKHNlbGYsDQo+IA0KPiAtICAgICAgICAgICAgICAgICBEZWZhdWx0SWQ9RUZJX0hJSV9E RUZBVUxUX0NMQVNTX1NUQU5EQVJELA0KPiANCj4gLSAgICAgICAgICAgICAgICAgVHlwZT1FRklf SUZSX1RZUEVfT1RIRVIpOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX0RlZmF1bHQgPSBFRklfSUZS X0RFRkFVTFRfMigpDQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwg c2VsZi5fX0RlZmF1bHQuSGVhZGVyLCBFRklfSUZSX0RFRkFVTFRfT1ApDQo+IA0KPiAtICAgICAg ICBzZWxmLl9fRGVmYXVsdC5UeXBlID0gVHlwZQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX0RlZmF1 bHQuRGVmYXVsdElkID0gRGVmYXVsdElkDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXREZWZh dWx0SWQoc2VsZiwgRGVmYXVsdElkKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19EZWZhdWx0LkRl ZmF1bHRJZCA9IERlZmF1bHRJZA0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0VHlwZShzZWxm LCBUeXBlKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19EZWZhdWx0LlR5cGUgPSBUeXBlDQo+IA0K PiAtDQo+IA0KPiAtICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJu IHNlbGYuX19EZWZhdWx0DQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lmckluY29u c2lzdGVudElmKENJZnJPYmosIENJZnJPcEhlYWRlcik6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRl ZiBfX2luaXRfXyhzZWxmKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19JbmNvbnNpc3RlbnRJZiA9 IEVGSV9JRlJfSU5DT05TSVNURU5UX0lGKCkNCj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5f X2luaXRfXyhzZWxmLCBzZWxmLl9fSW5jb25zaXN0ZW50SWYuSGVhZGVyLA0KPiANCj4gLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9JRlJfSU5DT05TSVNURU5UX0lGX09QKQ0KPiAN Cj4gLSAgICAgICAgc2VsZi5fX0luY29uc2lzdGVudElmLkVycm9yID0gRUZJX1NUUklOR19JRF9J TlZBTElEDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXRFcnJvcihzZWxmLCBFcnJvcik6DQo+ IA0KPiAtICAgICAgICBzZWxmLl9fSW5jb25zaXN0ZW50SWYuRXJyb3IgPSBFcnJvcg0KPiANCj4g LQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJOb1N1Ym1pdElmKENJZnJPYmosIENJZnJPcEhl YWRlcik6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX2luaXRfXyhzZWxmKToNCj4gDQo+IC0g ICAgICAgIHNlbGYuX19Ob1N1Ym1pdElmID0gRUZJX0lGUl9OT19TVUJNSVRfSUYoKQ0KPiANCj4g LSAgICAgICAgQ0lmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19Ob1N1Ym1pdElmLkhl YWRlciwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFRklfSUZSX05PX1NV Qk1JVF9JRl9PUCkNCj4gDQo+IC0gICAgICAgIHNlbGYuX19Ob1N1Ym1pdElmLkVycm9yID0gRUZJ X1NUUklOR19JRF9JTlZBTElEDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXRFcnJvcihzZWxm LCBFcnJvcik6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fTm9TdWJtaXRJZi5FcnJvciA9IEVycm9y DQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lmckRpc2FibGVJZihDSWZyT2JqLCBD SWZyT3BIZWFkZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZik6DQo+ IA0KPiAtICAgICAgICBzZWxmLl9fRGlzYWJsZUlmID0gRUZJX0lGUl9ESVNBQkxFX0lGKCkNCj4g DQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLl9fRGlzYWJsZUlm LkhlYWRlciwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFRklfSUZSX0RJ U0FCTEVfSUZfT1ApDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lmclN1cHByZXNz SWYoQ0lmck9iaiwgQ0lmck9wSGVhZGVyKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5p dF9fKHNlbGYpOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX1N1cHByZXNzSWYgPSBFRklfSUZSX1NV UFBSRVNTX0lGKCkNCj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBz ZWxmLl9fU3VwcHJlc3NJZi5IZWFkZXIsDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRUZJX0lGUl9TVVBQUkVTU19JRl9PUCkNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1j bGFzcyBDSWZyR3JheU91dElmKENJZnJPYmosIENJZnJPcEhlYWRlcik6DQo+IA0KPiAtDQo+IA0K PiAtICAgIGRlZiBfX2luaXRfXyhzZWxmKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19HcmF5T3V0 SWYgPSBFRklfSUZSX0dSQVlfT1VUX0lGKCkNCj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5f X2luaXRfXyhzZWxmLCBzZWxmLl9fR3JheU91dElmLkhlYWRlciwNCj4gDQo+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFRklfSUZSX0dSQVlfT1VUX0lGX09QKQ0KPiANCj4gLQ0KPiAN Cj4gLQ0KPiANCj4gLWNsYXNzIENJZnJWYWx1ZShDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiAN Cj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZik6DQo+IA0KPiAtICAgICAgICBzZWxm Ll9fVmFsdWUgPSBFRklfSUZSX1ZBTFVFKCkNCj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5f X2luaXRfXyhzZWxmLCBzZWxmLl9fVmFsdWUuSGVhZGVyLCBFRklfSUZSX1ZBTFVFX09QKQ0KPiAN Cj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJSZWFkKENJZnJPYmosIENJZnJPcEhlYWRl cik6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX2luaXRfXyhzZWxmKToNCj4gDQo+IC0gICAg ICAgIHNlbGYuX19SZWFkID0gRUZJX0lGUl9SRUFEKCkNCj4gDQo+IC0gICAgICAgIENJZnJPcEhl YWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLl9fUmVhZC5IZWFkZXIsIEVGSV9JRlJfUkVBRF9PUCkN Cj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBDSWZyV3JpdGUoQ0lmck9iaiwgQ0lmck9w SGVhZGVyKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYpOg0KPiANCj4g LSAgICAgICAgc2VsZi5fX1dyaXRlID0gRUZJX0lGUl9XUklURSgpDQo+IA0KPiAtICAgICAgICBD SWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX1dyaXRlLkhlYWRlciwgRUZJX0lGUl9X UklURV9PUCkNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBDSWZyV2FybmluZ0lmKENJ ZnJPYmosIENJZnJPcEhlYWRlcik6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX2luaXRfXyhz ZWxmKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19XYXJuaW5nSWYgPSBFRklfSUZSX1dBUk5JTkdf SUYoKQ0KPiANCj4gLSAgICAgICAgQ0lmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19X YXJuaW5nSWYuSGVhZGVyLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVG SV9JRlJfV0FSTklOR19JRl9PUCkNCj4gDQo+IC0gICAgICAgIHNlbGYuX19XYXJuaW5nSWYuV2Fy bmluZyA9IEVGSV9TVFJJTkdfSURfSU5WQUxJRA0KPiANCj4gLSAgICAgICAgc2VsZi5fX1dhcm5p bmdJZi5UaW1lT3V0ID0gMA0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0V2FybmluZyhzZWxm LCBXYXJuaW5nKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19XYXJuaW5nSWYuV2FybmluZyA9IFdh cm5pbmcNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldFRpbWVPdXQoc2VsZiwgVGltZU91dCk6 DQo+IA0KPiAtICAgICAgICBzZWxmLl9fV2FybmluZ0lmLlRpbWVPdXQgPSBUaW1lT3V0DQo+IA0K PiAtDQo+IA0KPiAtICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJu IHNlbGYuX19XYXJuaW5nSWYNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBDSWZyUmVm cmVzaChDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19p bml0X18oc2VsZik6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fUmVmcmVzaCA9IEVGSV9JRlJfUkVG UkVTSCgpDQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5f X1JlZnJlc2guSGVhZGVyLA0KPiBFRklfSUZSX1JFRlJFU0hfT1ApDQo+IA0KPiAtICAgICAgICBz ZWxmLl9fUmVmcmVzaC5SZWZyZXNoSW50ZXJ2YWwgPSAwDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRl ZiBTZXRSZWZyZXNoSW50ZXJ2YWwoc2VsZiwgUmVmcmVzaEludGVydmFsKToNCj4gDQo+IC0gICAg ICAgIHNlbGYuX19SZWZyZXNoLlJlZnJlc2hJbnRlcnZhbCA9IFJlZnJlc2hJbnRlcnZhbA0KPiAN Cj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gDQo+IC0gICAgICAgIHJldHVy biBzZWxmLl9fUmVmcmVzaA0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJSZWZy ZXNoSWQoQ0lmck9iaiwgQ0lmck9wSGVhZGVyKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9f aW5pdF9fKHNlbGYpOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX1JlZnJlc2hJZCA9IEVGSV9JRlJf UkVGUkVTSF9JRCgpDQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwg c2VsZi5fX1JlZnJlc2hJZC5IZWFkZXIsDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRUZJX0lGUl9SRUZSRVNIX0lEX09QKQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX1JlZnJl c2hJZC5SZWZyZXNoRXZlbnRHcm91cElkID0gRUZJX0dVSUQoDQo+IA0KPiAtICAgICAgICAgICAg MCwgMCwgMCwgR3VpZEFycmF5KDAsIDAsIDAsIDAsIDAsIDAsIDAsIDApKQ0KPiANCj4gLQ0KPiAN Cj4gLSAgICBkZWYgU2V0UmVmcmVzaEV2ZW50R3JvdXRJZChzZWxmLCBSZWZyZXNoRXZlbnRHcm91 cElkKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19SZWZyZXNoSWQuUmVmcmVzaEV2ZW50R3JvdXBJ ZCA9IFJlZnJlc2hFdmVudEdyb3VwSWQNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldEluZm8o c2VsZik6DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi5fX1JlZnJlc2hJZA0KPiANCj4gLQ0K PiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJWYXJTdG9yZURldmljZShDSWZyT2JqLCBDSWZyT3BI ZWFkZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZik6DQo+IA0KPiAt ICAgICAgICBzZWxmLl9fVmFyU3RvcmVEZXZpY2UgPSBFRklfSUZSX1ZBUlNUT1JFX0RFVklDRSgp DQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX1ZhclN0 b3JlRGV2aWNlLkhlYWRlciwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF RklfSUZSX1ZBUlNUT1JFX0RFVklDRV9PUCkNCj4gDQo+IC0gICAgICAgIHNlbGYuX19WYXJTdG9y ZURldmljZS5EZXZpY2VQYXRoID0gRUZJX1NUUklOR19JRF9JTlZBTElEDQo+IA0KPiAtDQo+IA0K PiAtICAgIGRlZiBTZXREZXZpY2VQYXRoKHNlbGYsIERldmljZVBhdGgpOg0KPiANCj4gLSAgICAg ICAgc2VsZi5fX1ZhclN0b3JlRGV2aWNlLkRldmljZVBhdGggPSBEZXZpY2VQYXRoDQo+IA0KPiAt DQo+IA0KPiAtICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNl bGYuX19WYXJTdG9yZURldmljZQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJE YXRlKENJZnJPYmosIENJZnJPcEhlYWRlciwgQ0lmclF1ZXN0aW9uSGVhZGVyKToNCj4gDQo+IC0N Cj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYpOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX0Rh dGUgPSBFRklfSUZSX0RBVEUoKQ0KPiANCj4gLSAgICAgICAgQ0lmck9wSGVhZGVyLl9faW5pdF9f KHNlbGYsIHNlbGYuX19EYXRlLkhlYWRlciwgRUZJX0lGUl9EQVRFX09QKQ0KPiANCj4gLSAgICAg ICAgQ0lmclF1ZXN0aW9uSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19EYXRlLlF1ZXN0aW9u KQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX0RhdGUuRmxhZ3MgPSAwDQo+IA0KPiAtDQo+IA0KPiAt ICAgIGRlZiBTZXRGbGFncyhzZWxmLCBIRmxhZ3MsIExGbGFncyk6DQo+IA0KPiAtDQo+IA0KPiAt ICAgICAgICBSZXR1cm5Db2RlID0gQ0lmclF1ZXN0aW9uSGVhZGVyLlNldEZsYWdzKHNlbGYsIEhG bGFncykNCj4gDQo+IC0gICAgICAgIGlmIFJldHVybkNvZGUgIT0gVmZyUmV0dXJuQ29kZS5WRlJf UkVUVVJOX1NVQ0NFU1M6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIFJldHVybkNvZGUNCj4g DQo+IC0NCj4gDQo+IC0gICAgICAgIExGbGFncywgUmV0ID0gX0ZMQUdfVEVTVF9BTkRfQ0xFQVIo TEZsYWdzLA0KPiBFRklfUUZfREFURV9ZRUFSX1NVUFBSRVNTKQ0KPiANCj4gLSAgICAgICAgaWYg UmV0Og0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19EYXRlLkZsYWdzIHw9IEVGSV9RRl9EQVRF X1lFQVJfU1VQUFJFU1MNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIExGbGFncywgUmV0ID0gX0ZM QUdfVEVTVF9BTkRfQ0xFQVIoTEZsYWdzLA0KPiBFRklfUUZfREFURV9NT05USF9TVVBQUkVTUykN Cj4gDQo+IC0gICAgICAgIGlmIFJldDoNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fRGF0ZS5G bGFncyB8PSBFRklfUUZfREFURV9NT05USF9TVVBQUkVTUw0KPiANCj4gLQ0KPiANCj4gLSAgICAg ICAgTEZsYWdzLCBSZXQgPSBfRkxBR19URVNUX0FORF9DTEVBUihMRmxhZ3MsDQo+IEVGSV9RRl9E QVRFX0RBWV9TVVBQUkVTUykNCj4gDQo+IC0gICAgICAgIGlmIFJldDoNCj4gDQo+IC0gICAgICAg ICAgICBzZWxmLl9fRGF0ZS5GbGFncyB8PSBFRklfUUZfREFURV9EQVlfU1VQUFJFU1MNCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgIExGbGFncywgUmV0ID0gX0ZMQUdfVEVTVF9BTkRfQ0xFQVIoTEZs YWdzLA0KPiBRRl9EQVRFX1NUT1JBR0VfTk9STUFMKQ0KPiANCj4gLSAgICAgICAgaWYgUmV0Og0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuX19EYXRlLkZsYWdzIHw9IFFGX0RBVEVfU1RPUkFHRV9O T1JNQUwNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIExGbGFncywgUmV0ID0gX0ZMQUdfVEVTVF9B TkRfQ0xFQVIoTEZsYWdzLA0KPiBRRl9EQVRFX1NUT1JBR0VfVElNRSkNCj4gDQo+IC0gICAgICAg IGlmIFJldDoNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fRGF0ZS5GbGFncyB8PSBRRl9EQVRF X1NUT1JBR0VfVElNRQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgTEZsYWdzLCBSZXQgPSBfRkxB R19URVNUX0FORF9DTEVBUihMRmxhZ3MsDQo+IFFGX0RBVEVfU1RPUkFHRV9XQUtFVVApDQo+IA0K PiAtICAgICAgICBpZiBSZXQ6DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX0RhdGUuRmxhZ3Mg fD0gUUZfREFURV9TVE9SQUdFX1dBS0VVUA0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJu IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTIGlmIExGbGFncyA9PSAwIGVsc2UNCj4g VmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0ZMQUdTX1VOU1VQUE9SVEVEDQo+IA0KPiAtDQo+IA0K PiAtICAgIGRlZiBHZXRJbmZvKHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYuX19E YXRlDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lmclRpbWUoQ0lmck9iaiwgQ0lm ck9wSGVhZGVyLCBDSWZyUXVlc3Rpb25IZWFkZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYg X19pbml0X18oc2VsZik6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fVGltZSA9IEVGSV9JRlJfVElN RSgpDQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX1Rp bWUuSGVhZGVyLCBFRklfSUZSX1RJTUVfT1ApDQo+IA0KPiAtICAgICAgICBDSWZyUXVlc3Rpb25I ZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX1RpbWUuUXVlc3Rpb24pDQo+IA0KPiAtICAgICAg ICBzZWxmLl9fVGltZS5GbGFncyA9IDANCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldEZsYWdz KHNlbGYsIEhGbGFncywgTEZsYWdzKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIFJldHVybkNv ZGUgPSBDSWZyUXVlc3Rpb25IZWFkZXIuU2V0RmxhZ3Moc2VsZiwgSEZsYWdzKQ0KPiANCj4gLSAg ICAgICAgaWYgUmV0dXJuQ29kZSAhPSBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUzoN Cj4gDQo+IC0gICAgICAgICAgICByZXR1cm4gUmV0dXJuQ29kZQ0KPiANCj4gLQ0KPiANCj4gLSAg ICAgICAgTEZsYWdzLCBSZXQgPSBfRkxBR19URVNUX0FORF9DTEVBUihMRmxhZ3MsDQo+IFFGX1RJ TUVfSE9VUl9TVVBQUkVTUykNCj4gDQo+IC0gICAgICAgIGlmIFJldDoNCj4gDQo+IC0gICAgICAg ICAgICBzZWxmLl9fVGltZS5GbGFncyB8PSBRRl9USU1FX0hPVVJfU1VQUFJFU1MNCj4gDQo+IC0N Cj4gDQo+IC0gICAgICAgIExGbGFncywgUmV0ID0gX0ZMQUdfVEVTVF9BTkRfQ0xFQVIoTEZsYWdz LA0KPiBRRl9USU1FX01JTlVURV9TVVBQUkVTUykNCj4gDQo+IC0gICAgICAgIGlmIFJldDoNCj4g DQo+IC0gICAgICAgICAgICBzZWxmLl9fVGltZS5GbGFncyB8PSBRRl9USU1FX01JTlVURV9TVVBQ UkVTUw0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgTEZsYWdzLCBSZXQgPSBfRkxBR19URVNUX0FO RF9DTEVBUihMRmxhZ3MsDQo+IFFGX1RJTUVfU0VDT05EX1NVUFBSRVNTKQ0KPiANCj4gLSAgICAg ICAgaWYgUmV0Og0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19UaW1lLkZsYWdzIHw9IFFGX1RJ TUVfU0VDT05EX1NVUFBSRVNTDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBMRmxhZ3MsIFJldCA9 IF9GTEFHX1RFU1RfQU5EX0NMRUFSKExGbGFncywNCj4gUUZfVElNRV9TVE9SQUdFX05PUk1BTCkN Cj4gDQo+IC0gICAgICAgIGlmIFJldDoNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fVGltZS5G bGFncyB8PSBRRl9USU1FX1NUT1JBR0VfTk9STUFMDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBM RmxhZ3MsIFJldCA9IF9GTEFHX1RFU1RfQU5EX0NMRUFSKExGbGFncywNCj4gUUZfVElNRV9TVE9S QUdFX1RJTUUpDQo+IA0KPiAtICAgICAgICBpZiBSZXQ6DQo+IA0KPiAtICAgICAgICAgICAgc2Vs Zi5fX1RpbWUuRmxhZ3MgfD0gUUZfVElNRV9TVE9SQUdFX1RJTUUNCj4gDQo+IC0NCj4gDQo+IC0g ICAgICAgIExGbGFncywgUmV0ID0gX0ZMQUdfVEVTVF9BTkRfQ0xFQVIoTEZsYWdzLA0KPiBRRl9U SU1FX1NUT1JBR0VfV0FLRVVQKQ0KPiANCj4gLSAgICAgICAgaWYgUmV0Og0KPiANCj4gLSAgICAg ICAgICAgIHNlbGYuX19UaW1lLkZsYWdzIHw9IFFGX1RJTUVfU1RPUkFHRV9XQUtFVVANCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VT UyBpZiBMRmxhZ3MgPT0gMCBlbHNlDQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9GTEFHU19V TlNVUFBPUlRFRA0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gDQo+ IC0gICAgICAgIHJldHVybiBzZWxmLl9fVGltZQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNs YXNzIENJZnJOdW1lcmljKENJZnJPYmosIENJZnJPcEhlYWRlciwgQ0lmclF1ZXN0aW9uSGVhZGVy LA0KPiANCj4gLSAgICAgICAgICAgICAgICAgIENJZnJNaW5NYXhTdGVwRGF0YSk6DQo+IA0KPiAt DQo+IA0KPiAtICAgIGRlZiBfX2luaXRfXyhzZWxmKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19O dW1lcmljID0gRUZJX0lGUl9OVU1FUklDKCkgICMgZGF0YQ0KPiANCj4gLSAgICAgICAgQ0lmck9w SGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19OdW1lcmljLkhlYWRlciwNCj4gRUZJX0lGUl9O VU1FUklDX09QKQ0KPiANCj4gLSAgICAgICAgQ0lmclF1ZXN0aW9uSGVhZGVyLl9faW5pdF9fKHNl bGYsIHNlbGYuX19OdW1lcmljLlF1ZXN0aW9uKQ0KPiANCj4gLSAgICAgICAgQ0lmck1pbk1heFN0 ZXBEYXRhLl9faW5pdF9fKHNlbGYsIHNlbGYuX19OdW1lcmljLkRhdGEsIFRydWUpDQo+IA0KPiAt ICAgICAgICBzZWxmLl9fTnVtZXJpYy5GbGFncyA9IEVGSV9JRlJfTlVNRVJJQ19TSVpFXzEgfA0K PiBFRklfSUZSX0RJU1BMQVlfVUlOVF9ERUMNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldFF1 ZXN0aW9uKHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYNCj4gDQo+IC0NCj4gDQo+ IC0gICAgZGVmIEdldE1pbk1heERhdGEoc2VsZik6DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2Vs Zg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0UUhlYWRlckZsYWdzKHNlbGYsIEZsYWdzKToN Cj4gDQo+IC0gICAgICAgIENJZnJRdWVzdGlvbkhlYWRlci5TZXRGbGFncyhzZWxmLCBGbGFncykN Cj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldEZsYWdzKHNlbGYsIEhGbGFncywgTEZsYWdzLCBE aXNwbGF5U2V0dGluZ3NTcGVjaWZpZWQ9RmFsc2UpOg0KPiANCj4gLSAgICAgICAgUmV0dXJuQ29k ZSA9IENJZnJRdWVzdGlvbkhlYWRlci5TZXRGbGFncyhzZWxmLCBIRmxhZ3MpDQo+IA0KPiAtICAg ICAgICBpZiBSZXR1cm5Db2RlICE9IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTOg0K PiANCj4gLSAgICAgICAgICAgIHJldHVybiBSZXR1cm5Db2RlDQo+IA0KPiAtICAgICAgICBpZiBE aXNwbGF5U2V0dGluZ3NTcGVjaWZpZWQgPT0gRmFsc2U6DQo+IA0KPiAtICAgICAgICAgICAgc2Vs Zi5fX051bWVyaWMuRmxhZ3MgPSBMRmxhZ3MgfCBFRklfSUZSX0RJU1BMQVlfVUlOVF9ERUMNCj4g DQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX051bWVyaWMuRmxh Z3MgPSBMRmxhZ3MNCj4gDQo+IC0gICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRV Uk5fU1VDQ0VTUw0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0RmxhZ3NGb3JCaXRGaWVsZChz ZWxmLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBIRmxhZ3MsDQo+IA0KPiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExGbGFncywNCj4gDQo+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgRGlzcGxheVNldHRpbmdzU3BlY2lmaWVkPUZhbHNlKToNCj4gDQo+IC0g ICAgICAgIFJldHVybkNvZGUgPSBDSWZyUXVlc3Rpb25IZWFkZXIuU2V0RmxhZ3Moc2VsZiwgSEZs YWdzKQ0KPiANCj4gLSAgICAgICAgaWYgUmV0dXJuQ29kZSAhPSBWZnJSZXR1cm5Db2RlLlZGUl9S RVRVUk5fU1VDQ0VTUzoNCj4gDQo+IC0gICAgICAgICAgICByZXR1cm4gUmV0dXJuQ29kZQ0KPiAN Cj4gLSAgICAgICAgaWYgRGlzcGxheVNldHRpbmdzU3BlY2lmaWVkID09IEZhbHNlOg0KPiANCj4g LSAgICAgICAgICAgIHNlbGYuX19OdW1lcmljLkZsYWdzID0gTEZsYWdzIHwgRURLSUlfSUZSX0RJ U1BMQVlfVUlOVF9ERUNfQklUDQo+IA0KPiAtICAgICAgICBlbHNlOg0KPiANCj4gLSAgICAgICAg ICAgIHNlbGYuX19OdW1lcmljLkZsYWdzID0gTEZsYWdzDQo+IA0KPiAtICAgICAgICByZXR1cm4g VmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVm IEdldE51bWVyaWNGbGFncyhzZWxmKToNCj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxmLl9fTnVt ZXJpYy5GbGFncw0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2hyaW5rQmluU2l6ZShzZWxmLCBT aXplKToNCj4gDQo+IC0gICAgICAgIHNlbGYuU2hyaW5rQmluU2l6ZShTaXplKQ0KPiANCj4gLSAg ICAgICAgc2VsZi5EZWNMZW5ndGgoU2l6ZSkNCj4gDQo+IC0gICAgICAgICMgIF9FTUlUX1BFTkRJ TkdfT0JKKCk7DQo+IA0KPiAtICAgICAgICBOdW1lcmljID0gRUZJX0lGUl9OVU1FUklDKCkNCj4g DQo+IC0gICAgICAgIHNlbGYuVXBkYXRlSGVhZGVyKE51bWVyaWMuSGVhZGVyKQ0KPiANCj4gLQ0K PiANCj4gLSAgICBkZWYgR2V0SW5mbyhzZWxmKToNCj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxm Ll9fTnVtZXJpYw0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJPbmVPZigNCj4g DQo+IC0gICAgICAgIENJZnJRdWVzdGlvbkhlYWRlciwNCj4gDQo+IC0gICAgICAgIENJZnJPYmos DQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFkZXIsDQo+IA0KPiAtKToNCj4gDQo+IC0NCj4gDQo+ IC0gICAgZGVmIF9faW5pdF9fKHNlbGYpOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX09uZU9mID0g RUZJX0lGUl9PTkVfT0YoKQ0KPiANCj4gLSAgICAgICAgQ0lmck9wSGVhZGVyLl9faW5pdF9fKHNl bGYsIHNlbGYuX19PbmVPZi5IZWFkZXIsIEVGSV9JRlJfT05FX09GX09QKQ0KPiANCj4gLSAgICAg ICAgQ0lmclF1ZXN0aW9uSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19PbmVPZi5RdWVzdGlv bikNCj4gDQo+IC0gICAgICAgIHNlbGYuX19PbmVPZi5GbGFncyA9IDANCj4gDQo+IC0NCj4gDQo+ IC0gICAgZGVmIEdldFF1ZXN0aW9uKHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYN Cj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldE1pbk1heERhdGEoc2VsZik6DQo+IA0KPiAtICAg ICAgICByZXR1cm4gc2VsZg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0UUhlYWRlckZsYWdz KHNlbGYsIEZsYWdzKToNCj4gDQo+IC0gICAgICAgIENJZnJRdWVzdGlvbkhlYWRlci5TZXRGbGFn cyhzZWxmLCBGbGFncykNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldEZsYWdzKHNlbGYsIEhG bGFncywgTEZsYWdzKToNCj4gDQo+IC0gICAgICAgIFJldHVybkNvZGUgPSBDSWZyUXVlc3Rpb25I ZWFkZXIuU2V0RmxhZ3Moc2VsZiwgSEZsYWdzKQ0KPiANCj4gLSAgICAgICAgaWYgUmV0dXJuQ29k ZSAhPSBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUzoNCj4gDQo+IC0gICAgICAgICAg ICByZXR1cm4gUmV0dXJuQ29kZQ0KPiANCj4gLSAgICAgICAgaWYgTEZsYWdzICYgRUZJX0lGUl9E SVNQTEFZOg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19PbmVPZi5GbGFncyA9IExGbGFncw0K PiANCj4gLSAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fT25lT2YuRmxh Z3MgPSBMRmxhZ3MgfCBFRklfSUZSX0RJU1BMQVlfVUlOVF9ERUMNCj4gDQo+IC0gICAgICAgIHJl dHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiANCj4gLQ0KPiANCj4gLSAg ICBkZWYgU2V0RmxhZ3NGb3JCaXRGaWVsZChzZWxmLCBIRmxhZ3MsIExGbGFncyk6DQo+IA0KPiAt ICAgICAgICBSZXR1cm5Db2RlID0gQ0lmclF1ZXN0aW9uSGVhZGVyLlNldEZsYWdzKHNlbGYsIEhG bGFncykNCj4gDQo+IC0gICAgICAgIGlmIFJldHVybkNvZGUgIT0gVmZyUmV0dXJuQ29kZS5WRlJf UkVUVVJOX1NVQ0NFU1M6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIFJldHVybkNvZGUNCj4g DQo+IC0gICAgICAgIGlmIExGbGFncyAmIEVES0lJX0lGUl9ESVNQTEFZX0JJVDoNCj4gDQo+IC0g ICAgICAgICAgICBzZWxmLl9fT25lT2YuRmxhZ3MgPSBMRmxhZ3MNCj4gDQo+IC0gICAgICAgIGVs c2U6DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX09uZU9mLkZsYWdzID0gTEZsYWdzIHwgRURL SUlfSUZSX0RJU1BMQVlfVUlOVF9ERUNfQklUDQo+IA0KPiAtICAgICAgICByZXR1cm4gVmZyUmV0 dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldElu Zm8oc2VsZik6DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi5fX09uZU9mDQo+IA0KPiAtDQo+ IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lmckNoZWNrQm94KENJZnJPYmosIENJZnJPcEhlYWRlciwg Q0lmclF1ZXN0aW9uSGVhZGVyKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNl bGYpOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX0NoZWNrQm94ID0gRUZJX0lGUl9DSEVDS0JPWCgp DQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX0NoZWNr Qm94LkhlYWRlciwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFRklfSUZS X0NIRUNLQk9YX09QKQ0KPiANCj4gLSAgICAgICAgQ0lmclF1ZXN0aW9uSGVhZGVyLl9faW5pdF9f KHNlbGYsIHNlbGYuX19DaGVja0JveC5RdWVzdGlvbikNCj4gDQo+IC0gICAgICAgIHNlbGYuX19D aGVja0JveC5GbGFncyA9IDANCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldFF1ZXN0aW9uKHNl bGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVm IFNldFFIZWFkZXJGbGFncyhzZWxmLCBGbGFncyk6DQo+IA0KPiAtICAgICAgICBDSWZyUXVlc3Rp b25IZWFkZXIuU2V0RmxhZ3Moc2VsZiwgRmxhZ3MpDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBH ZXRGbGFncyhzZWxmKToNCj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxmLl9fQ2hlY2tCb3guRmxh Z3MNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldEZsYWdzKHNlbGYsIEhGbGFncywgTEZsYWdz KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIFJldHVybkNvZGUgPSBDSWZyUXVlc3Rpb25IZWFk ZXIuU2V0RmxhZ3Moc2VsZiwgSEZsYWdzKQ0KPiANCj4gLSAgICAgICAgaWYgUmV0dXJuQ29kZSAh PSBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUzoNCj4gDQo+IC0gICAgICAgICAgICBy ZXR1cm4gUmV0dXJuQ29kZQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgTEZsYWdzLCBSZXQgPSBf RkxBR19URVNUX0FORF9DTEVBUihMRmxhZ3MsDQo+IEVGSV9JRlJfQ0hFQ0tCT1hfREVGQVVMVCkN Cj4gDQo+IC0gICAgICAgIGlmIFJldDoNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fQ2hlY2tC b3guRmxhZ3MgfD0gRUZJX0lGUl9DSEVDS0JPWF9ERUZBVUxUDQo+IA0KPiAtDQo+IA0KPiAtICAg ICAgICBMRmxhZ3MsIFJldCA9IF9GTEFHX1RFU1RfQU5EX0NMRUFSKExGbGFncywNCj4gDQo+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUZJX0lGUl9DSEVDS0JP WF9ERUZBVUxUX01GRykNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIFJldDoNCj4gDQo+IC0g ICAgICAgICAgICBzZWxmLl9fQ2hlY2tCb3guRmxhZ3MgfD0gRUZJX0lGUl9DSEVDS0JPWF9ERUZB VUxUX01GRw0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIFZmclJldHVybkNvZGUuVkZS X1JFVFVSTl9TVUNDRVNTIGlmIExGbGFncyA9PSAwIGVsc2UNCj4gVmZyUmV0dXJuQ29kZS5WRlJf UkVUVVJOX0ZMQUdTX1VOU1VQUE9SVEVEDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBHZXRJbmZv KHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYuX19DaGVja0JveA0KPiANCj4gLQ0K PiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJSZXNldEJ1dHRvbihDSWZyT2JqLCBDSWZyT3BIZWFk ZXIsIENJZnJTdGF0ZW1lbnRIZWFkZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0 X18oc2VsZik6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fUmVzZXRCdXR0b24gPSBFRklfSUZSX1JF U0VUX0JVVFRPTigpDQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwg c2VsZi5fX1Jlc2V0QnV0dG9uLkhlYWRlciwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFRklfSUZSX1JFU0VUX0JVVFRPTl9PUCkNCj4gDQo+IC0gICAgICAgIENJZnJTdGF0 ZW1lbnRIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX1Jlc2V0QnV0dG9uLlN0YXRlbWVudCkN Cj4gDQo+IC0gICAgICAgIHNlbGYuX19SZXNldEJ1dHRvbi5EZWZhdWx0SWQgPSBFRklfSElJX0RF RkFVTFRfQ0xBU1NfU1RBTkRBUkQNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldERlZmF1bHRJ ZChzZWxmLCBEZWZhdWx0SWQpOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX1Jlc2V0QnV0dG9uLkRl ZmF1bHRJZCA9IERlZmF1bHRJZA0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0SW5mbyhzZWxm KToNCj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxmLl9fUmVzZXRCdXR0b24NCj4gDQo+IC0NCj4g DQo+IC0NCj4gDQo+IC1jbGFzcyBDSWZyT3IoQ0lmck9iaiwgQ0lmck9wSGVhZGVyKToNCj4gDQo+ IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsIExpbmVObyk6DQo+IA0KPiAtICAgICAg ICBzZWxmLl9fT3IgPSBFRklfSUZSX09SKCkNCj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5f X2luaXRfXyhzZWxmLCBzZWxmLl9fT3IuSGVhZGVyLCBFRklfSUZSX09SX09QKQ0KPiANCj4gLSAg ICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNs YXNzIENJZnJBbmQoQ0lmck9iaiwgQ0lmck9wSGVhZGVyKToNCj4gDQo+IC0NCj4gDQo+IC0gICAg ZGVmIF9faW5pdF9fKHNlbGYsIExpbmVObyk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fQW5kID0g RUZJX0lGUl9BTkQoKQ0KPiANCj4gLSAgICAgICAgQ0lmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYs IHNlbGYuX19BbmQuSGVhZGVyLCBFRklfSUZSX0FORF9PUCkNCj4gDQo+IC0gICAgICAgIHNlbGYu U2V0TGluZU5vKExpbmVObykNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBDSWZyQml0 V2lzZU9yKENJZnJPYmosIENJZnJPcEhlYWRlcik6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBf X2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX0JpdFdpc2VPciA9 IEVGSV9JRlJfQklUV0lTRV9PUigpDQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0 X18oc2VsZiwgc2VsZi5fX0JpdFdpc2VPci5IZWFkZXIsDQo+IA0KPiAtICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRUZJX0lGUl9CSVRXSVNFX09SX09QKQ0KPiANCj4gLSAgICAgICAgc2Vs Zi5TZXRMaW5lTm8oTGluZU5vKQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJD YXRlbmF0ZShDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYg X19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19DYXRlbmF0ZSA9 IEVGSV9JRlJfQ0FURU5BVEUoKQ0KPiANCj4gLSAgICAgICAgQ0lmck9wSGVhZGVyLl9faW5pdF9f KHNlbGYsIHNlbGYuX19DYXRlbmF0ZS5IZWFkZXIsDQo+IA0KPiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRUZJX0lGUl9DQVRFTkFURV9PUCkNCj4gDQo+IC0gICAgICAgIHNlbGYuU2V0 TGluZU5vKExpbmVObykNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBDSWZyRGl2aWRl KENJZnJPYmosIENJZnJPcEhlYWRlcik6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX2luaXRf XyhzZWxmLCBMaW5lTm8pOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX0RpdmlkZSA9IEVGSV9JRlJf RElWSURFKCkNCj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxm Ll9fRGl2aWRlLkhlYWRlciwgRUZJX0lGUl9ESVZJREVfT1ApDQo+IA0KPiAtICAgICAgICBzZWxm LlNldExpbmVObyhMaW5lTm8pDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lmckVx dWFsKENJZnJPYmosIENJZnJPcEhlYWRlcik6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX2lu aXRfXyhzZWxmLCBMaW5lTm8pOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX0VxdWFsID0gRUZJX0lG Ul9FUVVBTCgpDQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2Vs Zi5fX0VxdWFsLkhlYWRlciwgRUZJX0lGUl9FUVVBTF9PUCkNCj4gDQo+IC0gICAgICAgIHNlbGYu U2V0TGluZU5vKExpbmVObykNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBDSWZyR3Jl YXRlckVxdWFsKENJZnJPYmosIENJZnJPcEhlYWRlcik6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRl ZiBfX2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX0dyZWF0ZXJF cXVhbCA9IEVGSV9JRlJfR1JFQVRFUl9FUVVBTCgpDQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFk ZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX0dyZWF0ZXJFcXVhbC5IZWFkZXIsDQo+IA0KPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRUZJX0lGUl9HUkVBVEVSX0VRVUFMX09QKQ0KPiAN Cj4gLSAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiAN Cj4gLWNsYXNzIENJZnJHcmVhdGVyVGhhbihDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiANCj4g LQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gDQo+IC0gICAgICAg IHNlbGYuX19HcmVhdGVyVGhhbiA9IEVGSV9JRlJfR1JFQVRFUl9USEFOKCkNCj4gDQo+IC0gICAg ICAgIENJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLl9fR3JlYXRlclRoYW4uSGVhZGVy LA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9JRlJfR1JFQVRFUl9U SEFOX09QKQ0KPiANCj4gLSAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0KPiANCj4gLQ0K PiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJMZXNzRXF1YWwoQ0lmck9iaiwgQ0lmck9wSGVhZGVy KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsIExpbmVObyk6DQo+IA0K PiAtICAgICAgICBzZWxmLl9fTGVzc0VxdWFsID0gRUZJX0lGUl9MRVNTX0VRVUFMKCkNCj4gDQo+ IC0gICAgICAgIENJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLl9fTGVzc0VxdWFsLkhl YWRlciwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFRklfSUZSX0xFU1Nf RVFVQUxfT1ApDQo+IA0KPiAtICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+IA0KPiAt DQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lmckxlc3NUaGFuKENJZnJPYmosIENJZnJPcEhlYWRl cik6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiAN Cj4gLSAgICAgICAgc2VsZi5fX0xlc3NUaGFuID0gRUZJX0lGUl9MRVNTX1RIQU4oKQ0KPiANCj4g LSAgICAgICAgQ0lmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19MZXNzVGhhbi5IZWFk ZXIsDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUZJX0lGUl9MRVNTX1RI QU5fT1ApDQo+IA0KPiAtICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+IA0KPiAtDQo+ IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lmck1hcChDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiAN Cj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gDQo+IC0gICAg ICAgIHNlbGYuX19NYXAgPSBFRklfSUZSX01BUCgpDQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFk ZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX01hcC5IZWFkZXIsIEVGSV9JRlJfTUFQX09QKQ0KPiAN Cj4gLSAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiAN Cj4gLWNsYXNzIENJZnJNYXRjaChDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiANCj4gLQ0KPiAN Cj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gDQo+IC0gICAgICAgIHNlbGYu X19NYXRjaCA9IEVGSV9JRlJfTUFUQ0goKQ0KPiANCj4gLSAgICAgICAgQ0lmck9wSGVhZGVyLl9f aW5pdF9fKHNlbGYsIHNlbGYuX19NYXRjaC5IZWFkZXIsIEVGSV9JRlJfTUFUQ0hfT1ApDQo+IA0K PiAtICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0K PiAtY2xhc3MgQ0lmck1hdGNoMihDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiANCj4gLQ0KPiAN Cj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vLCBHdWlkKToNCj4gDQo+IC0gICAgICAg IHNlbGYuX19NYXRjaDIgPSBFRklfSUZSX01BVENIMigpDQo+IA0KPiAtICAgICAgICBDSWZyT3BI ZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX01hdGNoMi5IZWFkZXIsIEVGSV9JRlJfTUFUQ0gy X09QKQ0KPiANCj4gLSAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0KPiANCj4gLSAgICAg ICAgc2VsZi5fX01hdGNoMi5TeW50YXhUeXBlID0gR3VpZA0KPiANCj4gLQ0KPiANCj4gLQ0KPiAN Cj4gLWNsYXNzIENJZnJNdWx0aXBseShDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiANCj4gLQ0K PiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gDQo+IC0gICAgICAgIHNl bGYuX19NdWx0aXBseSA9IEVGSV9JRlJfTVVMVElQTFkoKQ0KPiANCj4gLSAgICAgICAgQ0lmck9w SGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19NdWx0aXBseS5IZWFkZXIsDQo+IA0KPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRUZJX0lGUl9NVUxUSVBMWV9PUCkNCj4gDQo+IC0g ICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1j bGFzcyBDSWZyTW9kdWxvKENJZnJPYmosIENJZnJPcEhlYWRlcik6DQo+IA0KPiAtDQo+IA0KPiAt ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX01v ZHVsbyA9IEVGSV9JRlJfTU9EVUxPKCkNCj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5fX2lu aXRfXyhzZWxmLCBzZWxmLl9fTW9kdWxvLkhlYWRlciwNCj4gRUZJX0lGUl9NT0RVTE9fT1ApDQo+ IA0KPiAtICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+IA0KPiAtDQo+IA0KPiAtDQo+ IA0KPiAtY2xhc3MgQ0lmck5vdEVxdWFsKENJZnJPYmosIENJZnJPcEhlYWRlcik6DQo+IA0KPiAt DQo+IA0KPiAtICAgIGRlZiBfX2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiANCj4gLSAgICAgICAg c2VsZi5fX05vdEVxdWFsID0gRUZJX0lGUl9OT1RfRVFVQUwoKQ0KPiANCj4gLSAgICAgICAgQ0lm ck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19Ob3RFcXVhbC5IZWFkZXIsDQo+IA0KPiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUZJX0lGUl9OT1RfRVFVQUxfT1ApDQo+IA0K PiAtICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0K PiAtY2xhc3MgQ0lmclNoaWZ0TGVmdChDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiANCj4gLQ0K PiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gDQo+IC0gICAgICAgIHNl bGYuX19TaGlmdExlZnQgPSBFRklfSUZSX1NISUZUX0xFRlQoKQ0KPiANCj4gLSAgICAgICAgQ0lm ck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19TaGlmdExlZnQuSGVhZGVyLA0KPiANCj4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9JRlJfU0hJRlRfTEVGVF9PUCkNCj4g DQo+IC0gICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gDQo+IC0NCj4gDQo+IC0NCj4g DQo+IC1jbGFzcyBDSWZyU2hpZnRSaWdodChDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiANCj4g LQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gDQo+IC0gICAgICAg IHNlbGYuX19TaGlmdFJpZ2h0ID0gRUZJX0lGUl9TSElGVF9SSUdIVCgpDQo+IA0KPiAtICAgICAg ICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX1NoaWZ0UmlnaHQuSGVhZGVyLA0K PiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9JRlJfU0hJRlRfUklHSFRf T1ApDQo+IA0KPiAtICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+IA0KPiAtDQo+IA0K PiAtDQo+IA0KPiAtY2xhc3MgQ0lmclN1YnRyYWN0KENJZnJPYmosIENJZnJPcEhlYWRlcik6DQo+ IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiANCj4gLSAg ICAgICAgc2VsZi5fX1N1YnRyYWN0ID0gRUZJX0lGUl9TVUJUUkFDVCgpDQo+IA0KPiAtICAgICAg ICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX1N1YnRyYWN0LkhlYWRlciwNCj4g DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFRklfSUZSX1NVQlRSQUNUX09QKQ0K PiANCj4gLSAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0KPiANCj4gLQ0KPiANCj4gLQ0K PiANCj4gLWNsYXNzIENJZnJDb25kaXRpb25hbChDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiAN Cj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gDQo+IC0gICAg ICAgIHNlbGYuX19Db25kaXRpb25hbCA9IEVGSV9JRlJfQ09ORElUSU9OQUwoKQ0KPiANCj4gLSAg ICAgICAgQ0lmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19Db25kaXRpb25hbC5IZWFk ZXIsDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUZJX0lGUl9DT05ESVRJ T05BTF9PUCkNCj4gDQo+IC0gICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gDQo+IC0N Cj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBDSWZyRmluZChDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0K PiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gDQo+IC0g ICAgICAgIHNlbGYuX19GaW5kID0gRUZJX0lGUl9GSU5EKCkNCj4gDQo+IC0gICAgICAgIENJZnJP cEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLl9fRmluZC5IZWFkZXIsIEVGSV9JRlJfRklORF9P UCkNCj4gDQo+IC0gICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gDQo+IC0NCj4gDQo+ IC0gICAgZGVmIFNldEZvcm1hdChzZWxmLCBGb3JtYXQpOg0KPiANCj4gLSAgICAgICAgc2VsZi5f X0ZpbmQuRm9ybWF0ID0gRm9ybWF0DQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lm ck1pZChDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19p bml0X18oc2VsZiwgTGluZU5vKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19NaWQgPSBFRklfSUZS X01JRCgpDQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5f X01pZC5IZWFkZXIsIEVGSV9JRlJfTUlEX09QKQ0KPiANCj4gLSAgICAgICAgc2VsZi5TZXRMaW5l Tm8oTGluZU5vKQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJUb2tlbihDSWZy T2JqLCBDSWZyT3BIZWFkZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2Vs ZiwgTGluZU5vKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19Ub2tlbiA9IEVGSV9JRlJfVE9LRU4o KQ0KPiANCj4gLSAgICAgICAgQ0lmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19Ub2tl bi5IZWFkZXIsIEVGSV9JRlJfVE9LRU5fT1ApDQo+IA0KPiAtICAgICAgICBzZWxmLlNldExpbmVO byhMaW5lTm8pDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lmclNwYW4oQ0lmck9i aiwgQ0lmck9wSGVhZGVyKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYs IExpbmVObyk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fU3BhbiA9IEVGSV9JRlJfU1BBTigpDQo+ IA0KPiAtICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX1NwYW4uSGVh ZGVyLCBFRklfSUZSX1NQQU5fT1ApDQo+IA0KPiAtICAgICAgICBzZWxmLlNldExpbmVObyhMaW5l Tm8pDQo+IA0KPiAtICAgICAgICBzZWxmLl9fU3Bhbi5GbGFncyA9IEVGSV9JRlJfRkxBR1NfRklS U1RfTUFUQ0hJTkcNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldEZsYWdzKHNlbGYsIExGbGFn cyk6DQo+IA0KPiAtICAgICAgICBpZiBMRmxhZ3MgPT0gRUZJX0lGUl9GTEFHU19GSVJTVF9NQVRD SElORzoNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fU3Bhbi5GbGFncyB8PSBFRklfSUZSX0ZM QUdTX0ZJUlNUX01BVENISU5HDQo+IA0KPiAtICAgICAgICBlbHNlOg0KPiANCj4gLSAgICAgICAg ICAgIExGbGFncywgUmV0ID0gX0ZMQUdfVEVTVF9BTkRfQ0xFQVIoDQo+IA0KPiAtICAgICAgICAg ICAgICAgIExGbGFncywgRUZJX0lGUl9GTEFHU19GSVJTVF9OT05fTUFUQ0hJTkcpDQo+IA0KPiAt ICAgICAgICAgICAgaWYgUmV0Og0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLl9fU3Bhbi5G bGFncyB8PSBFRklfSUZSX0ZMQUdTX0ZJUlNUX05PTl9NQVRDSElORw0KPiANCj4gLQ0KPiANCj4g LSAgICAgICAgcmV0dXJuIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTIGlmIExGbGFn cyA9PSAwIGVsc2UNCj4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0ZMQUdTX1VOU1VQUE9SVEVE DQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lmckJpdFdpc2VBbmQoQ0lmck9iaiwg Q0lmck9wSGVhZGVyKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsIExp bmVObyk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fQml0V2lzZUFuZCA9IEVGSV9JRlJfQklUV0lT RV9BTkQoKQ0KPiANCj4gLSAgICAgICAgQ0lmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYu X19CaXRXaXNlQW5kLkhlYWRlciwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBFRklfSUZSX0JJVFdJU0VfQU5EX09QKQ0KPiANCj4gLSAgICAgICAgc2VsZi5TZXRMaW5lTm8o TGluZU5vKQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJCaXRXaXNlT3IoQ0lm ck9iaiwgQ0lmck9wSGVhZGVyKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNl bGYsIExpbmVObyk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fQml0V2lzZU9yID0gRUZJX0lGUl9C SVRXSVNFX09SKCkNCj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBz ZWxmLl9fQml0V2lzZU9yLkhlYWRlciwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFRklfSUZSX0JJVFdJU0VfT1JfT1ApDQo+IA0KPiAtICAgICAgICBzZWxmLlNldExpbmVO byhMaW5lTm8pDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lmckFkZChDSWZyT2Jq LCBDSWZyT3BIZWFkZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwg TGluZU5vKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19BZGQgPSBFRklfSUZSX0FERCgpDQo+IA0K PiAtICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX0FkZC5IZWFkZXIs IEVGSV9JRlJfQUREX09QKQ0KPiANCj4gLSAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0K PiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJUb1N0cmluZyhDSWZyT2JqLCBDSWZy T3BIZWFkZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5v KToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19Ub1N0cmluZyA9IEVGSV9JRlJfVE9fU1RSSU5HKCkN Cj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLl9fVG9TdHJp bmcuSGVhZGVyLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9JRlJf VE9fU1RSSU5HX09QKQ0KPiANCj4gLSAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0KPiAN Cj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0Rm9ybWF0KHNlbGYsIEZvcm1hdCk6DQo+IA0KPiAtICAg ICAgICBzZWxmLl9fVG9TdHJpbmcuRm9ybWF0ID0gRm9ybWF0DQo+IA0KPiAtDQo+IA0KPiAtDQo+ IA0KPiAtY2xhc3MgQ0lmclRvVXBwZXIoQ0lmck9iaiwgQ0lmck9wSGVhZGVyKToNCj4gDQo+IC0N Cj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsIExpbmVObyk6DQo+IA0KPiAtICAgICAgICBz ZWxmLl9fVG9VcHBwZXIgPSBFRklfSUZSX1RPX1VQUEVSKCkNCj4gDQo+IC0gICAgICAgIENJZnJP cEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLl9fVG9VcHBwZXIuSGVhZGVyLA0KPiANCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9JRlJfVE9fVVBQRVJfT1ApDQo+IA0KPiAt ICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAt Y2xhc3MgQ0lmclRvVWludChDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiANCj4gLQ0KPiANCj4g LSAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19U b1VpbnQgPSBFRklfSUZSX1RPX1VJTlQoKQ0KPiANCj4gLSAgICAgICAgQ0lmck9wSGVhZGVyLl9f aW5pdF9fKHNlbGYsIHNlbGYuX19Ub1VpbnQuSGVhZGVyLCBFRklfSUZSX1RPX1VJTlRfT1ApDQo+ IA0KPiAtICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+IA0KPiAtDQo+IA0KPiAtDQo+ IA0KPiAtY2xhc3MgQ0lmclRvTG93ZXIoQ0lmck9iaiwgQ0lmck9wSGVhZGVyKToNCj4gDQo+IC0N Cj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsIExpbmVObyk6DQo+IA0KPiAtICAgICAgICBz ZWxmLl9fVG9Mb3dlciA9IEVGSV9JRlJfVE9fTE9XRVIoKQ0KPiANCj4gLSAgICAgICAgQ0lmck9w SGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19Ub0xvd2VyLkhlYWRlciwNCj4gRUZJX0lGUl9U T19MT1dFUl9PUCkNCj4gDQo+IC0gICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gDQo+ IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBDSWZyVG9Cb29sZWFuKENJZnJPYmosIENJZnJPcEhl YWRlcik6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX2luaXRfXyhzZWxmLCBMaW5lTm8pOg0K PiANCj4gLSAgICAgICAgc2VsZi5fX0Jvb2xlYW4gPSBFRklfSUZSX1RPX0JPT0xFQU4oKQ0KPiAN Cj4gLSAgICAgICAgQ0lmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19Cb29sZWFuLkhl YWRlciwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFRklfSUZSX1RPX0JP T0xFQU5fT1ApDQo+IA0KPiAtICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+IA0KPiAt DQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lmck5vdChDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0K PiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gDQo+IC0g ICAgICAgIHNlbGYuX19Ob3QgPSBFRklfSUZSX05PVCgpDQo+IA0KPiAtICAgICAgICBDSWZyT3BI ZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX05vdC5IZWFkZXIsIEVGSV9JRlJfTk9UX09QKQ0K PiANCj4gLSAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0KPiANCj4gLQ0KPiANCj4gLQ0K PiANCj4gLWNsYXNzIENJZnJEdXAoQ0lmck9iaiwgQ0lmck9wSGVhZGVyKToNCj4gDQo+IC0NCj4g DQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsIExpbmVObyk6DQo+IA0KPiAtICAgICAgICBzZWxm Ll9fRHVwID0gRUZJX0lGUl9EVVAoKQ0KPiANCj4gLSAgICAgICAgQ0lmck9wSGVhZGVyLl9faW5p dF9fKHNlbGYsIHNlbGYuX19EdXAuSGVhZGVyLCBFRklfSUZSX0RVUF9PUCkNCj4gDQo+IC0gICAg ICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldEhl YWRlcihzZWxmKToNCj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxmLl9fRHVwLkhlYWRlcg0KPiAN Cj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJFcUlkSWQoQ0lmck9iaiwgQ0lmck9wSGVh ZGVyKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsIExpbmVObyk6DQo+ IA0KPiAtICAgICAgICBzZWxmLl9fRXFJZElkID0gRUZJX0lGUl9FUV9JRF9JRCgpDQo+IA0KPiAt ICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX0VxSWRJZC5IZWFkZXIs IEVGSV9JRlJfRVFfSURfSURfT1ApDQo+IA0KPiAtICAgICAgICBzZWxmLlNldExpbmVObyhMaW5l Tm8pDQo+IA0KPiAtICAgICAgICBzZWxmLl9fRXFJZElkLlF1ZXN0aW9uSWQxID0gRUZJX1FVRVNU SU9OX0lEX0lOVkFMSUQNCj4gDQo+IC0gICAgICAgIHNlbGYuX19FcUlkSWQuUXVlc3Rpb25JZDIg PSBFRklfUVVFU1RJT05fSURfSU5WQUxJRA0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0SGVh ZGVyKHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYuX19FcUlkSWQuSGVhZGVyDQo+ IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXRRdWVzdGlvbklkMShzZWxmLCBRdWVzdGlvbklkLCBW YXJJZFN0ciwgTGluZU5vKToNCj4gDQo+IC0gICAgICAgIGlmIFF1ZXN0aW9uSWQgIT0gRUZJX1FV RVNUSU9OX0lEX0lOVkFMSUQ6DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX0VxSWRJZC5RdWVz dGlvbklkMSA9IFF1ZXN0aW9uSWQNCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAg ICAgICAgcGFzcw0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0UXVlc3Rpb25JZDIoc2VsZiwg UXVlc3Rpb25JZCwgVmFySWRTdHIsIExpbmVObyk6DQo+IA0KPiAtICAgICAgICBpZiBRdWVzdGlv bklkICE9IEVGSV9RVUVTVElPTl9JRF9JTlZBTElEOg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYu X19FcUlkSWQuUXVlc3Rpb25JZDIgPSBRdWVzdGlvbklkDQo+IA0KPiAtICAgICAgICBlbHNlOg0K PiANCj4gLSAgICAgICAgICAgIHBhc3MNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBD SWZyRXFJZFZhbChDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBk ZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19FcUlkVmFs ID0gRUZJX0lGUl9FUV9JRF9WQUwoKQ0KPiANCj4gLSAgICAgICAgQ0lmck9wSGVhZGVyLl9faW5p dF9fKHNlbGYsIHNlbGYuX19FcUlkVmFsLkhlYWRlciwNCj4gDQo+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBFRklfSUZSX0VRX0lEX1ZBTF9PUCkNCj4gDQo+IC0gICAgICAgIHNlbGYu U2V0TGluZU5vKExpbmVObykNCj4gDQo+IC0gICAgICAgIHNlbGYuX19FcUlkVmFsLlF1ZXN0aW9u SWQgPSBFRklfUVVFU1RJT05fSURfSU5WQUxJRA0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0 UXVlc3Rpb25JZChzZWxmLCBRdWVzdGlvbklkLCBWYXJJZFN0ciwgTGluZU5vKToNCj4gDQo+IC0g ICAgICAgIGlmIFF1ZXN0aW9uSWQgIT0gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQ6DQo+IA0KPiAt ICAgICAgICAgICAgc2VsZi5fX0VxSWRWYWwuUXVlc3Rpb25JZCA9IFF1ZXN0aW9uSWQNCj4gDQo+ IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgcGFzcw0KPiANCj4gLQ0KPiANCj4g LSAgICBkZWYgU2V0VmFsdWUoc2VsZiwgVmFsdWUpOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX0Vx SWRWYWwuVmFsdWUgPSBWYWx1ZQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0SGVhZGVyKHNl bGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYuX19FcUlkVmFsLkhlYWRlcg0KPiANCj4g LQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJFcUlkTGlzdChDSWZyT2JqLCBDSWZyT3BIZWFk ZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vLCBOdW1z LCBWYWx1ZUxpc3Q9W10pOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX0VxSWRWTGlzdCA9IFJlZmlu ZV9FRklfSUZSX0VRX0lEX1ZBTF9MSVNUKE51bXMpDQo+IA0KPiAtICAgICAgICBIZWFkZXIgPSBF RklfSUZSX09QX0hFQURFUigpDQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18o c2VsZiwgSGVhZGVyLCBFRklfSUZSX0VRX0lEX1ZBTF9PUCkNCj4gDQo+IC0gICAgICAgIHNlbGYu U2V0TGluZU5vKExpbmVObykNCj4gDQo+IC0gICAgICAgIHNlbGYuX19FcUlkVkxpc3QuSGVhZGVy ID0gSGVhZGVyDQo+IA0KPiAtICAgICAgICBzZWxmLl9fRXFJZFZMaXN0LlF1ZXN0aW9uSWQgPSBF RklfUVVFU1RJT05fSURfSU5WQUxJRA0KPiANCj4gLSAgICAgICAgc2VsZi5fX0VxSWRWTGlzdC5M aXN0TGVuZ3RoID0gMA0KPiANCj4gLSAgICAgICAgaWYgVmFsdWVMaXN0ICE9IFtdOg0KPiANCj4g LSAgICAgICAgICAgIEFycmF5VHlwZSA9IGNfdWludDE2ICogTnVtcw0KPiANCj4gLSAgICAgICAg ICAgIFZhbHVlQXJyYXkgPSBBcnJheVR5cGUoKQ0KPiANCj4gLSAgICAgICAgICAgIGZvciBpIGlu IHJhbmdlKDAsIGxlbihWYWx1ZUxpc3QpKToNCj4gDQo+IC0gICAgICAgICAgICAgICAgVmFsdWVB cnJheVtpXSA9IFZhbHVlTGlzdFtpXQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19FcUlkVkxp c3QuVmFsdWVMaXN0ID0gVmFsdWVBcnJheQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0UXVl c3Rpb25JZChzZWxmLCBRdWVzdGlvbklkLCBWYXJJZFN0ciwgTGluZU5vKToNCj4gDQo+IC0gICAg ICAgIGlmIFF1ZXN0aW9uSWQgIT0gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQ6DQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5fX0VxSWRWTGlzdC5RdWVzdGlvbklkID0gUXVlc3Rpb25JZA0KPiANCj4g LSAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICBwYXNzDQo+IA0KPiAtDQo+IA0KPiAt ICAgIGRlZiBTZXRMaXN0TGVuZ3RoKHNlbGYsIExpc3RMZW5ndGgpOg0KPiANCj4gLSAgICAgICAg c2VsZi5fX0VxSWRWTGlzdC5MaXN0TGVuZ3RoID0gTGlzdExlbmd0aA0KPiANCj4gLQ0KPiANCj4g LSAgICBkZWYgU2V0VmFsdWVMaXN0KHNlbGYsIFZhbHVlTGlzdCk6DQo+IA0KPiAtICAgICAgICBp ZiBWYWx1ZUxpc3QgIT0gW106DQo+IA0KPiAtICAgICAgICAgICAgQXJyYXlUeXBlID0gY191aW50 MTYgKiBsZW4oVmFsdWVMaXN0KQ0KPiANCj4gLSAgICAgICAgICAgIFZhbHVlQXJyYXkgPSBBcnJh eVR5cGUoKQ0KPiANCj4gLSAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKDAsIGxlbihWYWx1ZUxp c3QpKToNCj4gDQo+IC0gICAgICAgICAgICAgICAgVmFsdWVBcnJheVtpXSA9IFZhbHVlTGlzdFtp XQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19FcUlkVkxpc3QuVmFsdWVMaXN0ID0gVmFsdWVB cnJheQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0SGVhZGVyKHNlbGYpOg0KPiANCj4gLSAg ICAgICAgcmV0dXJuIHNlbGYuX19FcUlkVkxpc3QuSGVhZGVyDQo+IA0KPiAtDQo+IA0KPiAtDQo+ IA0KPiAtY2xhc3MgQ0lmclVpbnQ4KENJZnJPYmosIENJZnJPcEhlYWRlcik6DQo+IA0KPiAtDQo+ IA0KPiAtICAgIGRlZiBfX2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiANCj4gLSAgICAgICAgc2Vs Zi5fX1VpbnQ4ID0gRUZJX0lGUl9VSU5UOCgpDQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFkZXIu X19pbml0X18oc2VsZiwgc2VsZi5fX1VpbnQ4LkhlYWRlciwgRUZJX0lGUl9VSU5UOF9PUCkNCj4g DQo+IC0gICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gDQo+IC0NCj4gDQo+IC0gICAg ZGVmIFNldFZhbHVlKHNlbGYsIFZhbHVlKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19VaW50OC5W YWx1ZSA9IFZhbHVlDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBHZXRIZWFkZXIoc2VsZik6DQo+ IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi5fX1VpbnQ4LkhlYWRlcg0KPiANCj4gLQ0KPiANCj4g LQ0KPiANCj4gLWNsYXNzIENJZnJVaW50MTYoQ0lmck9iaiwgQ0lmck9wSGVhZGVyKToNCj4gDQo+ IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsIExpbmVObyk6DQo+IA0KPiAtICAgICAg ICBzZWxmLl9fVWludDE2ID0gRUZJX0lGUl9VSU5UMTYoKQ0KPiANCj4gLSAgICAgICAgQ0lmck9w SGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19VaW50MTYuSGVhZGVyLCBFRklfSUZSX1VJTlQx Nl9PUCkNCj4gDQo+IC0gICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gDQo+IC0NCj4g DQo+IC0gICAgZGVmIFNldFZhbHVlKHNlbGYsIFZhbHVlKToNCj4gDQo+IC0gICAgICAgIHNlbGYu X19VaW50MTYuVmFsdWUgPSBWYWx1ZQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0SGVhZGVy KHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYuX19VaW50MTYuSGVhZGVyDQo+IA0K PiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lmclVpbnQzMihDSWZyT2JqLCBDSWZyT3BIZWFk ZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4g DQo+IC0gICAgICAgIHNlbGYuX19VaW50MzIgPSBFRklfSUZSX1VJTlQzMigpDQo+IA0KPiAtICAg ICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX1VpbnQzMi5IZWFkZXIsIEVG SV9JRlJfVUlOVDMyX09QKQ0KPiANCj4gLSAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0K PiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0VmFsdWUoc2VsZiwgVmFsdWUpOg0KPiANCj4gLSAg ICAgICAgc2VsZi5fX1VpbnQzMi5WYWx1ZSA9IFZhbHVlDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRl ZiBHZXRIZWFkZXIoc2VsZik6DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi5fX1VpbnQzMi5I ZWFkZXINCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBDSWZyVWludDY0KENJZnJPYmos IENJZnJPcEhlYWRlcik6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX2luaXRfXyhzZWxmLCBM aW5lTm8pOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX1VpbnQ2NCA9IEVGSV9JRlJfVUlOVDY0KCkN Cj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLl9fVWludDY0 LkhlYWRlciwgRUZJX0lGUl9VSU5UNjRfT1ApDQo+IA0KPiAtICAgICAgICBzZWxmLlNldExpbmVO byhMaW5lTm8pDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXRWYWx1ZShzZWxmLCBWYWx1ZSk6 DQo+IA0KPiAtICAgICAgICBzZWxmLl9fVWludDY0LlZhbHVlID0gVmFsdWUNCj4gDQo+IC0NCj4g DQo+IC0gICAgZGVmIEdldEhlYWRlcihzZWxmKToNCj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxm Ll9fVWludDY0LkhlYWRlcg0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJRdWVz dGlvblJlZjEoQ0lmck9iaiwgQ0lmck9wSGVhZGVyKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVm IF9faW5pdF9fKHNlbGYsIExpbmVObyk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fUXVlc3Rpb25S ZWYxID0gRUZJX0lGUl9RVUVTVElPTl9SRUYxKCkNCj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRl ci5fX2luaXRfXyhzZWxmLCBzZWxmLl9fUXVlc3Rpb25SZWYxLkhlYWRlciwNCj4gDQo+IC0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBFRklfSUZSX1FVRVNUSU9OX1JFRjFfT1ApDQo+IA0K PiAtICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+IA0KPiAtICAgICAgICBzZWxmLl9f UXVlc3Rpb25SZWYxLlF1ZXN0aW9uSWQgPSBFRklfUVVFU1RJT05fSURfSU5WQUxJRA0KPiANCj4g LQ0KPiANCj4gLSAgICBkZWYgR2V0SGVhZGVyKHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJu IHNlbGYuX19RdWVzdGlvblJlZjEuSGVhZGVyDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXRR dWVzdGlvbklkKHNlbGYsIFF1ZXN0aW9uSWQsIFZhcklkU3RyLCBMaW5lTm8pOg0KPiANCj4gLSAg ICAgICAgaWYgUXVlc3Rpb25JZCAhPSBFRklfUVVFU1RJT05fSURfSU5WQUxJRDoNCj4gDQo+IC0g ICAgICAgICAgICBzZWxmLl9fUXVlc3Rpb25SZWYxLlF1ZXN0aW9uSWQgPSBRdWVzdGlvbklkDQo+ IA0KPiAtICAgICAgICBlbHNlOg0KPiANCj4gLSAgICAgICAgICAgIHBhc3MNCj4gDQo+IC0NCj4g DQo+IC0NCj4gDQo+IC1jbGFzcyBDSWZyUXVlc3Rpb25SZWYyKENJZnJPYmosIENJZnJPcEhlYWRl cik6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiAN Cj4gLSAgICAgICAgc2VsZi5fX1F1ZXN0aW9uUmVmMiA9IEVGSV9JRlJfUVVFU1RJT05fUkVGMigp DQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX1F1ZXN0 aW9uUmVmMi5IZWFkZXIsDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUZJ X0lGUl9RVUVTVElPTl9SRUYyX09QKQ0KPiANCj4gLSAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGlu ZU5vKQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0SGVhZGVyKHNlbGYpOg0KPiANCj4gLSAg ICAgICAgcmV0dXJuIHNlbGYuX19RdWVzdGlvblJlZjIuSGVhZGVyDQo+IA0KPiAtDQo+IA0KPiAt DQo+IA0KPiAtY2xhc3MgQ0lmclF1ZXN0aW9uUmVmMyhDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0K PiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gDQo+IC0g ICAgICAgIHNlbGYuX19RdWVzdGlvblJlZjMgPSBFRklfSUZSX1FVRVNUSU9OX1JFRjMoKQ0KPiAN Cj4gLSAgICAgICAgQ0lmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19RdWVzdGlvblJl ZjMuSGVhZGVyLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9JRlJf UVVFU1RJT05fUkVGM19PUCkNCj4gDQo+IC0gICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykN Cj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldEhlYWRlcihzZWxmKToNCj4gDQo+IC0gICAgICAg IHJldHVybiBzZWxmLl9fUXVlc3Rpb25SZWYzLkhlYWRlcg0KPiANCj4gLQ0KPiANCj4gLQ0KPiAN Cj4gLWNsYXNzIENJZnJRdWVzdGlvblJlZjNfMihDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiAN Cj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gDQo+IC0gICAg ICAgIHNlbGYuX19RdWVzdGlvblJlZjNfMiA9IEVGSV9JRlJfUVVFU1RJT05fUkVGM18yKCkNCj4g DQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLl9fUXVlc3Rpb25S ZWYzXzIuSGVhZGVyLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9J RlJfUVVFU1RJT05fUkVGM19PUCkNCj4gDQo+IC0gICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVO bykNCj4gDQo+IC0gICAgICAgIHNlbGYuX19RdWVzdGlvblJlZjNfMi5EZXZpY2VQYXRoID0gRUZJ X1NUUklOR19JRF9JTlZBTElEDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXREZXZpY2VQYXRo KHNlbGYsIERldmljZVBhdGgpOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX1F1ZXN0aW9uUmVmM18y LkRldmljZVBhdGggPSBEZXZpY2VQYXRoDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBHZXRIZWFk ZXIoc2VsZik6DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi5fX1F1ZXN0aW9uUmVmM18yLkhl YWRlcg0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJRdWVzdGlvblJlZjNfMyhD SWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18o c2VsZiwgTGluZU5vKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19RdWVzdGlvblJlZjNfMyA9IEVG SV9JRlJfUVVFU1RJT05fUkVGM18zKCkNCj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5fX2lu aXRfXyhzZWxmLCBzZWxmLl9fUXVlc3Rpb25SZWYzXzMuSGVhZGVyLA0KPiANCj4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEVGSV9JRlJfUVVFU1RJT05fUkVGM19PUCkNCj4gDQo+IC0g ICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gDQo+IC0gICAgICAgIHNlbGYuX19RdWVz dGlvblJlZjNfMy5EZXZpY2VQYXRoID0gRUZJX1NUUklOR19JRF9JTlZBTElEDQo+IA0KPiAtICAg ICAgICBzZWxmLl9fUXVlc3Rpb25SZWYzXzMuR3VpZCA9IEVGSV9HVUlEKA0KPiANCj4gLSAgICAg ICAgICAgIDAsIDAsIDAsIEd1aWRBcnJheSgwLCAwLCAwLCAwLCAwLCAwLCAwLCAwKSkNCj4gDQo+ IC0NCj4gDQo+IC0gICAgZGVmIFNldERldmljZVBhdGgoc2VsZiwgRGV2aWNlUGF0aCk6DQo+IA0K PiAtICAgICAgICBzZWxmLl9fUXVlc3Rpb25SZWYzXzMuRGV2aWNlUGF0aCA9IERldmljZVBhdGgN Cj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldEd1aWQoc2VsZiwgR3VpZCk6DQo+IA0KPiAtICAg ICAgICBzZWxmLl9fUXVlc3Rpb25SZWYzXzMuR3VpZCA9IEd1aWQNCj4gDQo+IC0NCj4gDQo+IC0g ICAgZGVmIEdldEhlYWRlcihzZWxmKToNCj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxmLl9fUXVl c3Rpb25SZWYzXzMuSGVhZGVyDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lmclJ1 bGVSZWYoQ0lmck9iaiwgQ0lmck9wSGVhZGVyKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9f aW5pdF9fKHNlbGYsIExpbmVObyk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fUnVsZVJlZiA9IEVG SV9JRlJfUlVMRV9SRUYoKQ0KPiANCj4gLSAgICAgICAgQ0lmck9wSGVhZGVyLl9faW5pdF9fKHNl bGYsIHNlbGYuX19SdWxlUmVmLkhlYWRlciwNCj4gRUZJX0lGUl9SVUxFX1JFRl9PUCkNCj4gDQo+ IC0gICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gDQo+IC0gICAgICAgIHNlbGYuX19S dWxlUmVmLlJ1bGVJZCA9IEVGSV9SVUxFX0lEX0lOVkFMSUQNCj4gDQo+IC0NCj4gDQo+IC0gICAg ZGVmIFNldFJ1bGVJZChzZWxmLCBSdWxlSWQpOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX1J1bGVS ZWYuUnVsZUlkID0gUnVsZUlkDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBHZXRIZWFkZXIoc2Vs Zik6DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi5fX1J1bGVSZWYuSGVhZGVyDQo+IA0KPiAt DQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lmclN0cmluZ1JlZjEoQ0lmck9iaiwgQ0lmck9wSGVh ZGVyKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsIExpbmVObyk6DQo+ IA0KPiAtICAgICAgICBzZWxmLl9fU3RyaW5nUmVmMSA9IEVGSV9JRlJfU1RSSU5HX1JFRjEoKQ0K PiANCj4gLSAgICAgICAgQ0lmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19TdHJpbmdS ZWYxLkhlYWRlciwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFRklfSUZS X1NUUklOR19SRUYxX09QKQ0KPiANCj4gLSAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0K PiANCj4gLSAgICAgICAgc2VsZi5fX1N0cmluZ1JlZjEuU3RyaW5nSWQgPSBFRklfU1RSSU5HX0lE X0lOVkFMSUQNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldFN0cmluZ0lkKHNlbGYsIFN0cmlu Z0lkKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19TdHJpbmdSZWYxLlN0cmluZ0lkID0gU3RyaW5n SWQNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldEhlYWRlcihzZWxmKToNCj4gDQo+IC0gICAg ICAgIHJldHVybiBzZWxmLl9fU3RyaW5nUmVmMS5IZWFkZXINCj4gDQo+IC0NCj4gDQo+IC0NCj4g DQo+IC1jbGFzcyBDSWZyU3RyaW5nUmVmMihDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiANCj4g LQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gDQo+IC0gICAgICAg IHNlbGYuX19TdHJpbmdSZWYyID0gRUZJX0lGUl9TVFJJTkdfUkVGMigpDQo+IA0KPiAtICAgICAg ICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX1N0cmluZ1JlZjIuSGVhZGVyLA0K PiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9JRlJfU1RSSU5HX1JFRjJf T1ApDQo+IA0KPiAtICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+IA0KPiAtDQo+IA0K PiAtICAgIGRlZiBHZXRIZWFkZXIoc2VsZik6DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi5f X1N0cmluZ1JlZjIuSGVhZGVyDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lmclRo aXMoQ0lmck9iaiwgQ0lmck9wSGVhZGVyKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5p dF9fKHNlbGYsIExpbmVObyk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fVGhpcyA9IEVGSV9JRlJf VEhJUygpDQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5f X1RoaXMuSGVhZGVyLCBFRklfSUZSX1RISVNfT1ApDQo+IA0KPiAtICAgICAgICBzZWxmLlNldExp bmVObyhMaW5lTm8pDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBHZXRIZWFkZXIoc2VsZik6DQo+ IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi5fX1RoaXMuSGVhZGVyDQo+IA0KPiAtDQo+IA0KPiAt DQo+IA0KPiAtY2xhc3MgQ0lmclNlY3VyaXR5KENJZnJPYmosIENJZnJPcEhlYWRlcik6DQo+IA0K PiAtDQo+IA0KPiAtICAgIGRlZiBfX2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiANCj4gLSAgICAg ICAgc2VsZi5fX1NlY3VyaXR5ID0gRUZJX0lGUl9TRUNVUklUWSgpDQo+IA0KPiAtICAgICAgICBD SWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX1NlY3VyaXR5LkhlYWRlciwNCj4gDQo+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFRklfSUZSX1NFQ1VSSVRZX09QKQ0KPiAN Cj4gLSAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0KPiANCj4gLSAgICAgICAgc2VsZi5f X1NlY3VyaXR5LlBlcm1pc3Npb25zID0gRUZJX0dVSUQoDQo+IA0KPiAtICAgICAgICAgICAgMCwg MCwgMCwgR3VpZEFycmF5KDAsIDAsIDAsIDAsIDAsIDAsIDAsIDApKQ0KPiANCj4gLQ0KPiANCj4g LSAgICBkZWYgU2V0UGVybWlzc2lvbnMoc2VsZiwgUGVybWlzc2lvbnMpOg0KPiANCj4gLSAgICAg ICAgc2VsZi5fX1NlY3VyaXR5LlBlcm1pc3Npb25zID0gUGVybWlzc2lvbnMNCj4gDQo+IC0NCj4g DQo+IC0gICAgZGVmIEdldEhlYWRlcihzZWxmKToNCj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxm Ll9fU2VjdXJpdHkuSGVhZGVyDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lmckdl dChDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0 X18oc2VsZiwgTGluZU5vKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19HZXQgPSBFRklfSUZSX0dF VCgpDQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX0dl dC5IZWFkZXIsIEVGSV9JRlJfR0VUX09QKQ0KPiANCj4gLSAgICAgICAgc2VsZi5TZXRMaW5lTm8o TGluZU5vKQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0VmFySW5mbyhzZWxmLCBCYXNlSW5m bzogRUZJX1ZBUlNUT1JFX0lORk8pOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX0dldC5WYXJTdG9y ZUlkID0gQmFzZUluZm8uVmFyU3RvcmVJZA0KPiANCj4gLSAgICAgICAgc2VsZi5fX0dldC5WYXJT dG9yZUluZm8uVmFyTmFtZSA9IEJhc2VJbmZvLkluZm8uVmFyTmFtZQ0KPiANCj4gLSAgICAgICAg c2VsZi5fX0dldC5WYXJTdG9yZUluZm8uVmFyT2Zmc2V0ID0gQmFzZUluZm8uSW5mby5WYXJPZmZz ZXQNCj4gDQo+IC0gICAgICAgIHNlbGYuX19HZXQuVmFyU3RvcmVUeXBlID0gQmFzZUluZm8uVmFy VHlwZQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0SGVhZGVyKHNlbGYpOg0KPiANCj4gLSAg ICAgICAgcmV0dXJuIHNlbGYuX19HZXQuSGVhZGVyDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAt Y2xhc3MgQ0lmclNldChDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0KPiANCj4gLQ0KPiANCj4gLSAg ICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19TZXQg PSBFRklfSUZSX1NFVCgpDQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2Vs Ziwgc2VsZi5fX1NldC5IZWFkZXIsIEVGSV9JRlJfU0VUX09QKQ0KPiANCj4gLSAgICAgICAgc2Vs Zi5TZXRMaW5lTm8oTGluZU5vKQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0VmFySW5mbyhz ZWxmLCBCYXNlSW5mbzogRUZJX1ZBUlNUT1JFX0lORk8pOg0KPiANCj4gLSAgICAgICAgc2VsZi5f X1NldC5WYXJTdG9yZUlkID0gQmFzZUluZm8uVmFyU3RvcmVJZA0KPiANCj4gLSAgICAgICAgc2Vs Zi5fX1NldC5WYXJTdG9yZUluZm8uVmFyTmFtZSA9IEJhc2VJbmZvLkluZm8uVmFyTmFtZQ0KPiAN Cj4gLSAgICAgICAgc2VsZi5fX1NldC5WYXJTdG9yZUluZm8uVmFyT2Zmc2V0ID0gQmFzZUluZm8u SW5mby5WYXJPZmZzZXQNCj4gDQo+IC0gICAgICAgIHNlbGYuX19TZXQuVmFyU3RvcmVUeXBlID0g QmFzZUluZm8uVmFyVHlwZQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0SGVhZGVyKHNlbGYp Og0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYuX19TZXQuSGVhZGVyDQo+IA0KPiAtDQo+IA0K PiAtDQo+IA0KPiAtY2xhc3MgQ0lmclRydWUoQ0lmck9iaiwgQ0lmck9wSGVhZGVyKToNCj4gDQo+ IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsIExpbmVObyk6DQo+IA0KPiAtICAgICAg ICBzZWxmLl9fVHJ1ZSA9IEVGSV9JRlJfVFJVRSgpDQo+IA0KPiAtICAgICAgICBDSWZyT3BIZWFk ZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX1RydWUuSGVhZGVyLCBFRklfSUZSX1RSVUVfT1ApDQo+ IA0KPiAtICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+IA0KPiAtDQo+IA0KPiAtICAg IGRlZiBHZXRIZWFkZXIoc2VsZik6DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi5fX1RydWUu SGVhZGVyDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ0lmckZhbHNlKENJZnJPYmos IENJZnJPcEhlYWRlcik6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX2luaXRfXyhzZWxmLCBM aW5lTm8pOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX0ZhbHNlID0gRUZJX0lGUl9UUlVFKCkNCj4g DQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5fX2luaXRfXyhzZWxmLCBzZWxmLl9fRmFsc2UuSGVh ZGVyLCBFRklfSUZSX0ZBTFNFX09QKQ0KPiANCj4gLSAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGlu ZU5vKQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0SGVhZGVyKHNlbGYpOg0KPiANCj4gLSAg ICAgICAgcmV0dXJuIHNlbGYuX19GYWxzZS5IZWFkZXINCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+ IC1jbGFzcyBDSWZyT25lKENJZnJPYmosIENJZnJPcEhlYWRlcik6DQo+IA0KPiAtDQo+IA0KPiAt ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBMaW5lTm8pOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX09u ZSA9IEVGSV9JRlJfT05FKCkNCj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRlci5fX2luaXRfXyhz ZWxmLCBzZWxmLl9fT25lLkhlYWRlciwgRUZJX0lGUl9PTkVfT1ApDQo+IA0KPiAtICAgICAgICBz ZWxmLlNldExpbmVObyhMaW5lTm8pDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBHZXRIZWFkZXIo c2VsZik6DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi5fX09uZS5IZWFkZXINCj4gDQo+IC0N Cj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBDSWZyT25lcyhDSWZyT2JqLCBDSWZyT3BIZWFkZXIpOg0K PiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gDQo+IC0g ICAgICAgIHNlbGYuX19PbmVzID0gRUZJX0lGUl9PTkUoKQ0KPiANCj4gLSAgICAgICAgQ0lmck9w SGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19PbmVzLkhlYWRlciwgRUZJX0lGUl9PTkVTX09Q KQ0KPiANCj4gLSAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGluZU5vKQ0KPiANCj4gLQ0KPiANCj4g LSAgICBkZWYgR2V0SGVhZGVyKHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYuX19P bmVzLkhlYWRlcg0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJaZXJvKENJZnJP YmosIENJZnJPcEhlYWRlcik6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX2luaXRfXyhzZWxm LCBMaW5lTm8pOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX1plcm8gPSBFRklfSUZSX1pFUk8oKQ0K PiANCj4gLSAgICAgICAgQ0lmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19aZXJvLkhl YWRlciwgRUZJX0lGUl9aRVJPX09QKQ0KPiANCj4gLSAgICAgICAgc2VsZi5TZXRMaW5lTm8oTGlu ZU5vKQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0SGVhZGVyKHNlbGYpOg0KPiANCj4gLSAg ICAgICAgcmV0dXJuIHNlbGYuX19aZXJvLkhlYWRlcg0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4g LWNsYXNzIENJZnJVbmRlZmluZWQoQ0lmck9iaiwgQ0lmck9wSGVhZGVyKToNCj4gDQo+IC0NCj4g DQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsIExpbmVObyk6DQo+IA0KPiAtICAgICAgICBzZWxm Ll9fVW5kZWZpbmVkID0gRUZJX0lGUl9aRVJPKCkNCj4gDQo+IC0gICAgICAgIENJZnJPcEhlYWRl ci5fX2luaXRfXyhzZWxmLCBzZWxmLl9fVW5kZWZpbmVkLkhlYWRlciwNCj4gDQo+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBFRklfSUZSX1VOREVGSU5FRF9PUCkNCj4gDQo+IC0gICAg ICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldEhl YWRlcihzZWxmKToNCj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxmLl9fVW5kZWZpbmVkLkhlYWRl cg0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIENJZnJWZXJzaW9uKENJZnJPYmosIENJ ZnJPcEhlYWRlcik6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX2luaXRfXyhzZWxmLCBMaW5l Tm8pOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX1ZlcnNpb24gPSBFRklfSUZSX1ZFUlNJT04oKQ0K PiANCj4gLSAgICAgICAgQ0lmck9wSGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19WZXJzaW9u LkhlYWRlciwgRUZJX0lGUl9WRVJTSU9OX09QKQ0KPiANCj4gLSAgICAgICAgc2VsZi5TZXRMaW5l Tm8oTGluZU5vKQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0SGVhZGVyKHNlbGYpOg0KPiAN Cj4gLSAgICAgICAgcmV0dXJuIHNlbGYuX19WZXJzaW9uLkhlYWRlcg0KPiANCj4gLQ0KPiANCj4g LQ0KPiANCj4gLWNsYXNzIENJZnJMZW5ndGgoQ0lmck9iaiwgQ0lmck9wSGVhZGVyKToNCj4gDQo+ IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsIExpbmVObyk6DQo+IA0KPiAtICAgICAg ICBzZWxmLl9fTGVuZ3RoID0gRUZJX0lGUl9MRU5HVEgoKQ0KPiANCj4gLSAgICAgICAgQ0lmck9w SGVhZGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuX19MZW5ndGguSGVhZGVyLCBFRklfSUZSX0xFTkdU SF9PUCkNCj4gDQo+IC0gICAgICAgIHNlbGYuU2V0TGluZU5vKExpbmVObykNCj4gDQo+IC0NCj4g DQo+IC0NCj4gDQo+IC1jbGFzcyBDSWZyQml0V2lzZU5vdChDSWZyT2JqLCBDSWZyT3BIZWFkZXIp Og0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwgTGluZU5vKToNCj4gDQo+ IC0gICAgICAgIHNlbGYuX19CaXRXaXNlTm90ID0gRUZJX0lGUl9CSVRXSVNFX05PVCgpDQo+IA0K PiAtICAgICAgICBDSWZyT3BIZWFkZXIuX19pbml0X18oc2VsZiwgc2VsZi5fX0JpdFdpc2VOb3Qu SGVhZGVyLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9JRlJfQklU V0lTRV9OT1RfT1ApDQo+IA0KPiAtICAgICAgICBzZWxmLlNldExpbmVObyhMaW5lTm8pDQo+IA0K PiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRXhwcmVzc2lvbkluZm8oKToNCj4gDQo+IC0NCj4g DQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYpOg0KPiANCj4gLSAgICAgICAgc2VsZi5Sb290TGV2 ZWwgPSAwDQo+IA0KPiAtICAgICAgICBzZWxmLkV4cE9wQ291bnQgPSAwDQo+IA0KPiBcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUNCj4gZGlmZiAtLWdpdCBhL0Jhc2VUb29scy9Tb3VyY2UvUHl0 aG9uL1ZmckNvbXBpbGVyL1ZmclN5bnRheC5nNA0KPiBiL0Jhc2VUb29scy9Tb3VyY2UvUHl0aG9u L1ZmckNvbXBpbGVyL1ZmclN5bnRheC5nNA0KPiBpbmRleCAzOWRlMTA2YTUyLi4xNzY4NTg2ZTFj IDEwMDY0NA0KPiAtLS0gYS9CYXNlVG9vbHMvU291cmNlL1B5dGhvbi9WZnJDb21waWxlci9WZnJT eW50YXguZzQNCj4gKysrIGIvQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vVmZyQ29tcGlsZXIvVmZy U3ludGF4Lmc0DQo+IEBAIC0xLDE4ODcgKzEsMTkyMSBAQA0KPiAtZ3JhbW1hciBWZnJTeW50YXg7 DQo+IA0KPiAtb3B0aW9ucyB7DQo+IA0KPiAtICAgIGxhbmd1YWdlPVB5dGhvbjsNCj4gDQo+IC19 DQo+IA0KPiAtQGhlYWRlcnsNCj4gDQo+IC0NCj4gDQo+IC1mcm9tIFZmckNvbXBpbGVyLkNvbW1v bkN0eXBlcyBpbXBvcnQgKg0KPiANCj4gLWZyb20gVmZyQ29tcGlsZXIuVmZyRm9ybVBrZyBpbXBv cnQgKg0KPiANCj4gLWZyb20gVmZyQ29tcGlsZXIuVmZyVXRpbGl0eSBpbXBvcnQgKg0KPiANCj4g LWZyb20gVmZyQ29tcGlsZXIuVmZyVHJlZSBpbXBvcnQgKg0KPiANCj4gLX0NCj4gDQo+IC0NCj4g DQo+IC12ZnJQcm9ncmFtDQo+IA0KPiAtICAgIDogICAodmZyUHJhZ21hUGFja0RlZmluaXRpb24g fCB2ZnJEYXRhU3RydWN0RGVmaW5pdGlvbiB8DQo+IHZmckRhdGFVbmlvbkRlZmluaXRpb24pKiB2 ZnJGb3JtU2V0RGVmaW5pdGlvbg0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtcHJhZ21h UGFja1Nob3dEZWYNCj4gDQo+IC0gICAgOiAgICdzaG93Jw0KPiANCj4gLSAgICA7DQo+IA0KPiAt DQo+IA0KPiAtcHJhZ21hUGFja1N0YWNrRGVmDQo+IA0KPiAtICAgIDogICAoJ3B1c2gnIHwgJ3Bv cCcpICAoJywnIFN0cmluZ0lkZW50aWZpZXIpPyAoJywnIE51bWJlcik/DQo+IA0KPiAtICAgIDsN Cj4gDQo+IC0NCj4gDQo+IC1wcmFnbWFQYWNrTnVtYmVyDQo+IA0KPiAtICAgIDogICBOdW1iZXI/ DQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC12ZnJQcmFnbWFQYWNrRGVmaW5pdGlvbg0K PiANCj4gLSAgICA6ICAgJyNwcmFnbWEnICdwYWNrJyAnKCcNCj4gDQo+IC0gICAgICAgICggICBw cmFnbWFQYWNrU2hvd0RlZg0KPiANCj4gLSAgICAgICAgfCAgIHByYWdtYVBhY2tTdGFja0RlZg0K PiANCj4gLSAgICAgICAgfCAgIHByYWdtYVBhY2tOdW1iZXINCj4gDQo+IC0gICAgICAgICk/DQo+ IA0KPiAtICAgICcpJw0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtdmZyRGF0YVN0cnVj dERlZmluaXRpb24NCj4gDQo+IC0gICAgOiAgIChUeXBlRGVmKT8gU3RydWN0IE5vbk52RGF0YU1h cD8gTjE9U3RyaW5nSWRlbnRpZmllcj8gJ3snDQo+IHZmckRhdGFTdHJ1Y3RGaWVsZHNbRmFsc2Vd ICd9JyAgTjI9U3RyaW5nSWRlbnRpZmllcj8gJzsnDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4g DQo+IC12ZnJEYXRhVW5pb25EZWZpbml0aW9uDQo+IA0KPiAtICAgIDogICAoVHlwZURlZik/IFVu aW9uIE5vbk52RGF0YU1hcD8gTjE9U3RyaW5nSWRlbnRpZmllcj8gJ3snDQo+IHZmckRhdGFTdHJ1 Y3RGaWVsZHNbVHJ1ZV0nfScgTjI9U3RyaW5nSWRlbnRpZmllcj8gJzsnDQo+IA0KPiAtICAgIDsN Cj4gDQo+IC0NCj4gDQo+IC12ZnJEYXRhU3RydWN0RmllbGRzW0ZpZWxkSW5Vbmlvbl0NCj4gDQo+ IC0gICAgOg0KPiANCj4gLSAgICAoICAgZGF0YVN0cnVjdEZpZWxkNjRbRmllbGRJblVuaW9uXQ0K PiANCj4gLSAgICB8ICAgZGF0YVN0cnVjdEZpZWxkMzJbRmllbGRJblVuaW9uXQ0KPiANCj4gLSAg ICB8ICAgZGF0YVN0cnVjdEZpZWxkMTZbRmllbGRJblVuaW9uXQ0KPiANCj4gLSAgICB8ICAgZGF0 YVN0cnVjdEZpZWxkOFtGaWVsZEluVW5pb25dDQo+IA0KPiAtICAgIHwgICBkYXRhU3RydWN0Rmll bGRCb29sW0ZpZWxkSW5Vbmlvbl0NCj4gDQo+IC0gICAgfCAgIGRhdGFTdHJ1Y3RGaWVsZFN0cmlu Z1tGaWVsZEluVW5pb25dDQo+IA0KPiAtICAgIHwgICBkYXRhU3RydWN0RmllbGREYXRlW0ZpZWxk SW5Vbmlvbl0NCj4gDQo+IC0gICAgfCAgIGRhdGFTdHJ1Y3RGaWVsZFRpbWVbRmllbGRJblVuaW9u XQ0KPiANCj4gLSAgICB8ICAgZGF0YVN0cnVjdEZpZWxkUmVmW0ZpZWxkSW5Vbmlvbl0NCj4gDQo+ IC0gICAgfCAgIGRhdGFTdHJ1Y3RGaWVsZFVzZXJbRmllbGRJblVuaW9uXQ0KPiANCj4gLSAgICB8 ICAgZGF0YVN0cnVjdEJpdEZpZWxkNjRbRmllbGRJblVuaW9uXQ0KPiANCj4gLSAgICB8ICAgZGF0 YVN0cnVjdEJpdEZpZWxkMzJbRmllbGRJblVuaW9uXQ0KPiANCj4gLSAgICB8ICAgZGF0YVN0cnVj dEJpdEZpZWxkMTZbRmllbGRJblVuaW9uXQ0KPiANCj4gLSAgICB8ICAgZGF0YVN0cnVjdEJpdEZp ZWxkOFtGaWVsZEluVW5pb25dDQo+IA0KPiAtICAgICkqDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0N Cj4gDQo+IC1kYXRhU3RydWN0RmllbGQ2NFtGaWVsZEluVW5pb25dDQo+IA0KPiAtICAgIDogICAn VUlOVDY0JyBOPVN0cmluZ0lkZW50aWZpZXIgKCdbJyBOdW1iZXIgJ10nKT8gJzsnDQo+IA0KPiAt ICAgIDsNCj4gDQo+IC0NCj4gDQo+IC1kYXRhU3RydWN0RmllbGQzMltGaWVsZEluVW5pb25dDQo+ IA0KPiAtICAgIDogICAnVUlOVDMyJyBOPVN0cmluZ0lkZW50aWZpZXIgKCdbJyBOdW1iZXIgJ10n KT8gJzsnDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC1kYXRhU3RydWN0RmllbGQxNltG aWVsZEluVW5pb25dDQo+IA0KPiAtICAgIDogICAnVUlOVDE2JyBOPVN0cmluZ0lkZW50aWZpZXIg KCdbJyBOdW1iZXIgJ10nKT8gJzsnDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC1kYXRh U3RydWN0RmllbGQ4W0ZpZWxkSW5Vbmlvbl0NCj4gDQo+IC0gICAgOiAgICdVSU5UOCcgTj1TdHJp bmdJZGVudGlmaWVyICgnWycgTnVtYmVyICddJyk/ICc7Jw0KPiANCj4gLSAgICA7DQo+IA0KPiAt DQo+IA0KPiAtZGF0YVN0cnVjdEZpZWxkQm9vbFtGaWVsZEluVW5pb25dDQo+IA0KPiAtICAgIDog ICAnQk9PTEVBTicgTj1TdHJpbmdJZGVudGlmaWVyICgnWycgTnVtYmVyICddJyk/ICc7Jw0KPiAN Cj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtZGF0YVN0cnVjdEZpZWxkU3RyaW5nW0ZpZWxkSW5V bmlvbl0NCj4gDQo+IC0gICAgOiAgICdFRklfU1RSSU5HX0lEJyBOPVN0cmluZ0lkZW50aWZpZXIg KCdbJyBOdW1iZXIgJ10nKT8gJzsnDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC1kYXRh U3RydWN0RmllbGREYXRlW0ZpZWxkSW5Vbmlvbl0NCj4gDQo+IC0gICAgOiAgICdFRklfSElJX0RB VEUnIE49U3RyaW5nSWRlbnRpZmllciAoJ1snIE51bWJlciAnXScpPyAnOycNCj4gDQo+IC0gICAg Ow0KPiANCj4gLQ0KPiANCj4gLWRhdGFTdHJ1Y3RGaWVsZFRpbWVbRmllbGRJblVuaW9uXQ0KPiAN Cj4gLSAgICA6ICAgJ0VGSV9ISUlfVElNRScgTj1TdHJpbmdJZGVudGlmaWVyICgnWycgTnVtYmVy ICddJyk/ICc7Jw0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtZGF0YVN0cnVjdEZpZWxk UmVmW0ZpZWxkSW5Vbmlvbl0NCj4gDQo+IC0gICAgOiAgICdFRklfSElJX1JFRicgTj1TdHJpbmdJ ZGVudGlmaWVyICgnWycgTnVtYmVyICddJyk/ICc7Jw0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+ IA0KPiAtZGF0YVN0cnVjdEZpZWxkVXNlcltGaWVsZEluVW5pb25dDQo+IA0KPiAtICAgIDogICBU PVN0cmluZ0lkZW50aWZpZXIgTj1TdHJpbmdJZGVudGlmaWVyICgnWycgTnVtYmVyICddJyk/ICc7 Jw0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtZGF0YVN0cnVjdEJpdEZpZWxkNjRbRmll bGRJblVuaW9uXQ0KPiANCj4gLSAgICA6ICAgRD0nVUlOVDY0JyAgTj1TdHJpbmdJZGVudGlmaWVy PyAnOicgTnVtYmVyICc7Jw0KPiANCj4gLSAgICA7DQo+IA0KPiAtZGF0YVN0cnVjdEJpdEZpZWxk MzJbRmllbGRJblVuaW9uXQ0KPiANCj4gLSAgICA6ICAgRD0nVUlOVDMyJyBOPVN0cmluZ0lkZW50 aWZpZXI/ICc6JyBOdW1iZXIgJzsnDQo+IA0KPiAtICAgIDsNCj4gDQo+IC1kYXRhU3RydWN0Qml0 RmllbGQxNltGaWVsZEluVW5pb25dDQo+IA0KPiAtICAgIDogICBEPSdVSU5UMTYnIE49U3RyaW5n SWRlbnRpZmllcj8gJzonIE51bWJlciAnOycNCj4gDQo+IC0gICAgOw0KPiANCj4gLWRhdGFTdHJ1 Y3RCaXRGaWVsZDhbRmllbGRJblVuaW9uXQ0KPiANCj4gLSAgICA6ICAgRD0nVUlOVDgnIE49U3Ry aW5nSWRlbnRpZmllcj8gJzonIE51bWJlciAnOycNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiAN Cj4gLS8vIDIuNCBWRlIgRm9ybVNldCBEZWZpbml0aW9uDQo+IA0KPiAtdmZyRm9ybVNldERlZmlu aXRpb24NCj4gDQo+IC1sb2NhbHNbTm9kZT1WZnJUcmVlTm9kZShFRklfSUZSX0ZPUk1fU0VUX09Q KV0NCj4gDQo+IC0gICAgOiAgICdmb3Jtc2V0Jw0KPiANCj4gLSAgICAgICAgJ2d1aWQnICc9JyBn dWlkRGVmaW5pdGlvbiAnLCcNCj4gDQo+IC0gICAgICAgICd0aXRsZScgJz0nICdTVFJJTkdfVE9L RU4nICcoJyBOdW1iZXIgJyknICcsJw0KPiANCj4gLSAgICAgICAgJ2hlbHAnICc9JyAnU1RSSU5H X1RPS0VOJyAnKCcgTnVtYmVyICcpJyAnLCcNCj4gDQo+IC0gICAgICAgICgnY2xhc3NndWlkJyAn PScgY2xhc3NndWlkRGVmaW5pdGlvbltsb2NhbGN0eC5Ob2RlXSAnLCcpPw0KPiANCj4gLSAgICAg ICAgKCdjbGFzcycgJz0nIGNsYXNzRGVmaW5pdGlvbiAnLCcpPw0KPiANCj4gLSAgICAgICAgKCdz dWJjbGFzcycgJz0nIHN1YmNsYXNzRGVmaW5pdGlvbiAnLCcpPw0KPiANCj4gLSAgICAgICAgdmZy Rm9ybVNldExpc3RbbG9jYWxjdHguTm9kZV0NCj4gDQo+IC0gICAgICAgICdlbmRmb3Jtc2V0JyAn OycNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLWNsYXNzZ3VpZERlZmluaXRpb25bTm9k ZV0NCj4gDQo+IC1sb2NhbHNbR3VpZExpc3Q9W11dDQo+IA0KPiAtICAgIDogICBndWlkRGVmaW5p dGlvbiAoJ3wnIGd1aWREZWZpbml0aW9uKT8gKCd8JyBndWlkRGVmaW5pdGlvbik/KCd8Jw0KPiBn dWlkRGVmaW5pdGlvbik/DQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC1jbGFzc0RlZmlu aXRpb24NCj4gDQo+IC1sb2NhbHNbTm9kZT1WZnJUcmVlTm9kZShFRklfSUZSX0dVSURfT1ApXQ0K PiANCj4gLSAgICA6ICAgdmFsaWRDbGFzc05hbWVzICgnfCcgdmFsaWRDbGFzc05hbWVzKSoNCj4g DQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZhbGlkQ2xhc3NOYW1lcw0KPiANCj4gLWxvY2Fs c1tDbGFzc05hbWU9MF0NCj4gDQo+IC0gICAgOiAgIENsYXNzTm9uRGV2aWNlDQo+IA0KPiAtICAg IHwgICBDbGFzc0Rpc2tEZXZpY2UNCj4gDQo+IC0gICAgfCAgIENsYXNzVmlkZW9EZXZpY2UNCj4g DQo+IC0gICAgfCAgIENsYXNzTmV0d29ya0RldmljZQ0KPiANCj4gLSAgICB8ICAgQ2xhc3NJbnB1 dERldmljZQ0KPiANCj4gLSAgICB8ICAgQ2xhc3NPbkJvYXJkRGV2aWNlDQo+IA0KPiAtICAgIHwg ICBDbGFzc090aGVyRGV2aWNlDQo+IA0KPiAtICAgIHwgICBOdW1iZXINCj4gDQo+IC0gICAgOw0K PiANCj4gLQ0KPiANCj4gLXN1YmNsYXNzRGVmaW5pdGlvbg0KPiANCj4gLWxvY2Fsc1tOb2RlPVZm clRyZWVOb2RlKEVGSV9JRlJfR1VJRF9PUCldDQo+IA0KPiAtICAgIDogICBTdWJjbGFzc1NldHVw QXBwbGljYXRpb24NCj4gDQo+IC0gICAgfCAgIFN1YmNsYXNzR2VuZXJhbEFwcGxpY2F0aW9uDQo+ IA0KPiAtICAgIHwgICBTdWJjbGFzc0Zyb250UGFnZQ0KPiANCj4gLSAgICB8ICAgU3ViY2xhc3NT aW5nbGVVc2UNCj4gDQo+IC0gICAgfCAgIE51bWJlcg0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+ IA0KPiAtDQo+IA0KPiAtdmZyRm9ybVNldExpc3RbTm9kZV0NCj4gDQo+IC0gICAgOiAodmZyRm9y bVNldCkqDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC0vLzIuNSBWRlIgRm9ybVNldCBM aXN0IERlZmluaXRpb24NCj4gDQo+IC12ZnJGb3JtU2V0DQo+IA0KPiAtbG9jYWxzW05vZGU9Tm9u ZV0NCj4gDQo+IC0gICAgOg0KPiANCj4gLSAgICAoICAgdmZyRm9ybURlZmluaXRpb24NCj4gDQo+ IC0gICAgfCAgIHZmckZvcm1NYXBEZWZpbml0aW9uDQo+IA0KPiAtICAgIHwgICB2ZnJTdGF0ZW1l bnRJbWFnZQ0KPiANCj4gLSAgICB8ICAgdmZyU3RhdGVtZW50VmFyU3RvcmVMaW5lYXINCj4gDQo+ IC0gICAgfCAgIHZmclN0YXRlbWVudFZhclN0b3JlRWZpDQo+IA0KPiAtICAgIHwgICB2ZnJTdGF0 ZW1lbnRWYXJTdG9yZU5hbWVWYWx1ZQ0KPiANCj4gLSAgICB8ICAgdmZyU3RhdGVtZW50RGVmYXVs dFN0b3JlDQo+IA0KPiAtICAgIHwgICB2ZnJTdGF0ZW1lbnREaXNhYmxlSWZGb3JtU2V0DQo+IA0K PiAtICAgIHwgICB2ZnJTdGF0ZW1lbnRTdXBwcmVzc0lmRm9ybVNldA0KPiANCj4gLSAgICB8ICAg dmZyU3RhdGVtZW50RXh0ZW5zaW9uDQo+IA0KPiAtICAgICkNCj4gDQo+IC0gICAgOw0KPiANCj4g LQ0KPiANCj4gLQ0KPiANCj4gLS8vMi42IFZGUiBEZWZhdWx0IFN0b3JlcyBEZWZpbml0aW9uDQo+ IA0KPiAtdmZyU3RhdGVtZW50RGVmYXVsdFN0b3JlDQo+IA0KPiAtbG9jYWxzW05vZGU9VmZyVHJl ZU5vZGUoRUZJX0lGUl9ERUZBVUxUU1RPUkVfT1ApXQ0KPiANCj4gLSAgICA6ICAgJ2RlZmF1bHRz dG9yZScgTj1TdHJpbmdJZGVudGlmaWVyICcsJw0KPiANCj4gLSAgICAgICAgJ3Byb21wdCcgJz0n ICdTVFJJTkdfVE9LRU4nICcoJyBTPU51bWJlciAnKScNCj4gDQo+IC0gICAgICAgICgnLCcgJ2F0 dHJpYnV0ZScgJz0nIEE9TnVtYmVyKT8gJzsnDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+ IC0vLzIuNyBWRlIgVmFyaWFibGUgU3RvcmUgRGVmaW5pdGlvbg0KPiANCj4gLXZmclN0YXRlbWVu dFZhclN0b3JlTGluZWFyDQo+IA0KPiAtbG9jYWxzW05vZGU9VmZyVHJlZU5vZGUoRUZJX0lGUl9W QVJTVE9SRV9PUCldDQo+IA0KPiAtICAgIDogICAndmFyc3RvcmUnDQo+IA0KPiAtICAgICAgICAo ICAgVE49U3RyaW5nSWRlbnRpZmllciAnLCcNCj4gDQo+IC0gICAgICAgIHwgICAnVUlOVDgnICcs Jw0KPiANCj4gLSAgICAgICAgfCAgICdVSU5UMTYnICcsJw0KPiANCj4gLSAgICAgICAgfCAgICdV SU5UMzInICcsJw0KPiANCj4gLSAgICAgICAgfCAgICdVSU5UNjQnICcsJw0KPiANCj4gLSAgICAg ICAgfCAgICdFRklfSElJX0RBVEUnICcsJw0KPiANCj4gLSAgICAgICAgfCAgICdFRklfSElJX1RJ TUUnICcsJw0KPiANCj4gLSAgICAgICAgfCAgICdFRklfSElJX1JFRicgJywnDQo+IA0KPiAtICAg ICAgICApDQo+IA0KPiAtICAgICAgICAoJ3ZhcmlkJyAnPScgSUQ9TnVtYmVyICcsJyk/DQo+IA0K PiAtICAgICAgICAnbmFtZScgJz0nIFNOPVN0cmluZ0lkZW50aWZpZXIgJywnDQo+IA0KPiAtICAg ICAgICAnZ3VpZCcgJz0nIGd1aWREZWZpbml0aW9uICc7Jw0KPiANCj4gLSAgICA7DQo+IA0KPiAt DQo+IA0KPiAtdmZyU3RhdGVtZW50VmFyU3RvcmVFZmkNCj4gDQo+IC1sb2NhbHNbTm9kZT1WZnJU cmVlTm9kZShFRklfSUZSX1ZBUlNUT1JFX0VGSV9PUCldDQo+IA0KPiAtICAgIDogICAnZWZpdmFy c3RvcmUnDQo+IA0KPiAtICAgICAgICAoICAgVE49U3RyaW5nSWRlbnRpZmllciAnLCcNCj4gDQo+ IC0gICAgICAgIHwgICAnVUlOVDgnICcsJw0KPiANCj4gLSAgICAgICAgfCAgICdVSU5UMTYnICcs Jw0KPiANCj4gLSAgICAgICAgfCAgICdVSU5UMzInICcsJw0KPiANCj4gLSAgICAgICAgfCAgICdV SU5UNjQnICcsJw0KPiANCj4gLSAgICAgICAgfCAgICdFRklfSElJX0RBVEUnICcsJw0KPiANCj4g LSAgICAgICAgfCAgICdFRklfSElJX1RJTUUnICcsJw0KPiANCj4gLSAgICAgICAgfCAgICdFRklf SElJX1JFRicgJywnDQo+IA0KPiAtICAgICAgICApDQo+IA0KPiAtICAgICAgICAoJ3ZhcmlkJyAn PScgSUQ9TnVtYmVyICcsJyk/DQo+IA0KPiAtICAgICAgICAnYXR0cmlidXRlJyAnPScgdmZyVmFy U3RvcmVFZmlBdHRyICgnfCcgdmZyVmFyU3RvcmVFZmlBdHRyKSogJywnDQo+IA0KPiAtICAgICAg ICAoICAgJ25hbWUnICc9JyBTTj1TdHJpbmdJZGVudGlmaWVyICcsJw0KPiANCj4gLSAgICAgICAg fCAgICduYW1lJyAnPScgJ1NUUklOR19UT0tFTicgJygnIFZOPU51bWJlciAnKScgJywnICAndmFy c2l6ZScgJz0nDQo+IE49TnVtYmVyICcsJw0KPiANCj4gLSAgICAgICAgKQ0KPiANCj4gLSAgICAg ICAgJ2d1aWQnICc9JyBndWlkRGVmaW5pdGlvbiAnOycNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0K PiANCj4gLXZmclZhclN0b3JlRWZpQXR0cg0KPiANCj4gLWxvY2Fsc1tBdHRyPTBdDQo+IA0KPiAt ICAgIDogICBOdW1iZXI7DQo+IA0KPiAtDQo+IA0KPiAtdmZyU3RhdGVtZW50VmFyU3RvcmVOYW1l VmFsdWUNCj4gDQo+IC1sb2NhbHNbTm9kZT1WZnJUcmVlTm9kZShFRklfSUZSX1ZBUlNUT1JFX05B TUVfVkFMVUVfT1ApXQ0KPiANCj4gLSAgICA6ICAgJ25hbWV2YWx1ZXZhcnN0b3JlJyBTTj1TdHJp bmdJZGVudGlmaWVyICcsJw0KPiANCj4gLSAgICAgICAgKCd2YXJpZCcgJz0nIElEPU51bWJlciAn LCcpPw0KPiANCj4gLSAgICAgICAgKCduYW1lJyAnPScgJ1NUUklOR19UT0tFTicgJygnIE51bWJl ciAnKScgJywnKSsNCj4gDQo+IC0gICAgICAgICdndWlkJyAnPScgZ3VpZERlZmluaXRpb24gJzsn DQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC12ZnJTdGF0ZW1lbnREaXNhYmxlSWZGb3Jt U2V0DQo+IA0KPiAtbG9jYWxzW05vZGU9VmZyVHJlZU5vZGUoRUZJX0lGUl9ESVNBQkxFX0lGX09Q KV0NCj4gDQo+IC0gICAgOiAgICdkaXNhYmxlaWYnIHZmclN0YXRlbWVudEV4cHJlc3Npb24gJzsn DQo+IA0KPiAtICAgICAgICB2ZnJGb3JtU2V0TGlzdFtsb2NhbGN0eC5Ob2RlXQ0KPiANCj4gLSAg ICAgICAgJ2VuZGlmJyAnOycNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmclN0YXRl bWVudFN1cHByZXNzSWZGb3JtU2V0DQo+IA0KPiAtbG9jYWxzW05vZGU9VmZyVHJlZU5vZGUoRUZJ X0lGUl9TVVBQUkVTU19JRl9PUCldDQo+IA0KPiAtICAgIDogICAnc3VwcHJlc3NpZicgdmZyU3Rh dGVtZW50RXhwcmVzc2lvbiAnOycNCj4gDQo+IC0gICAgICAgIHZmckZvcm1TZXRMaXN0W2xvY2Fs Y3R4Lk5vZGVdDQo+IA0KPiAtICAgICAgICAnZW5kaWYnICc7Jw0KPiANCj4gLSAgICA7DQo+IA0K PiAtDQo+IA0KPiAtZ3VpZFN1YkRlZmluaXRpb25bR3VpZF0NCj4gDQo+IC0gICAgOiAgIE51bWJl ciAnLCcgTnVtYmVyICcsJyBOdW1iZXIgJywnIE51bWJlciAnLCcNCj4gDQo+IC0gICAgICAgIE51 bWJlciAnLCcgTnVtYmVyICcsJyBOdW1iZXIgJywnIE51bWJlcg0KPiANCj4gLSAgICA7DQo+IA0K PiAtDQo+IA0KPiAtZ3VpZERlZmluaXRpb24NCj4gDQo+IC1sb2NhbHNbTm9kZT1WZnJUcmVlTm9k ZSgpLCBHdWlkPUVGSV9HVUlEKCldDQo+IA0KPiAtICAgIDogICAneycNCj4gDQo+IC0gICAgICAg IE51bWJlciAnLCcgTnVtYmVyICcsJyBOdW1iZXIgJywnDQo+IA0KPiAtICAgICAgICAoICAgJ3sn IGd1aWRTdWJEZWZpbml0aW9uW2xvY2FsY3R4Lkd1aWRdICd9Jw0KPiANCj4gLSAgICAgICAgfCAg IGd1aWRTdWJEZWZpbml0aW9uW2xvY2FsY3R4Lkd1aWRdDQo+IA0KPiAtICAgICAgICApDQo+IA0K PiAtICAgICAgICAnfScNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLWdldFN0cmluZ0lk DQo+IA0KPiAtbG9jYWxzW1N0cmluZ0lkPScnXQ0KPiANCj4gLSAgICA6ICAgJ1NUUklOR19UT0tF TicgJygnIE51bWJlciAnKScNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmclF1ZXN0 aW9uSGVhZGVyW09wT2JqLCBRVHlwZV0NCj4gDQo+IC0gICAgOiAgIHZmclF1ZXN0aW9uQmFzZUlu Zm9bT3BPYmosIFFUeXBlXQ0KPiANCj4gLSAgICAgICAgdmZyU3RhdGVtZW50SGVhZGVyW09wT2Jq XQ0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtdmZyUXVlc3Rpb25CYXNlSW5mb1tPcE9i aiwgUVR5cGVdDQo+IA0KPiAtbG9jYWxzW0Jhc2VJbmZvPUVGSV9WQVJTVE9SRV9JTkZPKCksIFFJ ZD1FRklfUVVFU1RJT05fSURfSU5WQUxJRCwNCj4gQ2hlY2tGbGFnPVRydWVdDQo+IA0KPiAtICAg IDogICAoJ25hbWUnICc9JyBRTj1TdHJpbmdJZGVudGlmaWVyICcsJyk/DQo+IA0KPiAtICAgICAg ICAoJ3ZhcmlkJyAnPScgdmZyU3RvcmFnZVZhcklkW2xvY2FsY3R4LkJhc2VJbmZvLCBsb2NhbGN0 eC5DaGVja0ZsYWddICcsJyk/DQo+IA0KPiAtICAgICAgICAoJ3F1ZXN0aW9uaWQnICc9JyBJRD1O dW1iZXIgJywnKT8NCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmclN0YXRlbWVudEhl YWRlcltPcE9ial0NCj4gDQo+IC0gICAgOiAgICdwcm9tcHQnICc9JyAnU1RSSU5HX1RPS0VOJyAn KCcgTnVtYmVyICcpJyAnLCcNCj4gDQo+IC0gICAgICAgICdoZWxwJyAnPScgJ1NUUklOR19UT0tF TicgJygnIE51bWJlciAnKScNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXF1ZXN0aW9u aGVhZGVyRmxhZ3NGaWVsZA0KPiANCj4gLWxvY2Fsc1tRSEZsYWc9MF0NCj4gDQo+IC0gICAgOiAg IFJlYWRPbmx5RmxhZw0KPiANCj4gLSAgICB8ICAgSW50ZXJhY3RpdmVGbGFnDQo+IA0KPiAtICAg IHwgICBSZXNldFJlcXVpcmVkRmxhZw0KPiANCj4gLSAgICB8ICAgUmVzdFN0eWxlRmxhZw0KPiAN Cj4gLSAgICB8ICAgUmVjb25uZWN0UmVxdWlyZWRGbGFnDQo+IA0KPiAtICAgIHwgICBPPU9wdGlv bk9ubHlGbGFnDQo+IA0KPiAtICAgIHwgICBOPU5WQWNjZXNzRmxhZw0KPiANCj4gLSAgICB8ICAg TD1MYXRlQ2hlY2tGbGFnDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0vLzIuMTAuNQ0KPiANCj4gLXZm clN0b3JhZ2VWYXJJZFtCYXNlSW5mbywgQ2hlY2tGbGFnXQ0KPiANCj4gLWxvY2Fsc1tWYXJJZFN0 cj0nJ10NCj4gDQo+IC0gICAgOiAgIChTTjE9U3RyaW5nSWRlbnRpZmllciAnWycgST1OdW1iZXIg J10nKSAgICAjIHZmclN0b3JhZ2VWYXJJZFJ1bGUxDQo+IA0KPiAtICAgIHwgICAoU04yPVN0cmlu Z0lkZW50aWZpZXIgKCcuJyBhcnJheU5hbWUpKiApICMgdmZyU3RvcmFnZVZhcklkUnVsZTINCj4g DQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmckNvbnN0YW50VmFsdWVGaWVsZA0KPiANCj4g LWxvY2Fsc1tWYWx1ZT1FRklfSUZSX1RZUEVfVkFMVUUoKSwgVmFsdWVMaXN0PVtdLCBMaXN0VHlw ZT1GYWxzZV0NCj4gDQo+IC0gICAgOiAgICgnLScpPyBOdW1iZXINCj4gDQo+IC0gICAgfCAgICdU UlVFJw0KPiANCj4gLSAgICB8ICAgJ0ZBTFNFJw0KPiANCj4gLSAgICB8ICAgJ09ORScNCj4gDQo+ IC0gICAgfCAgICdPTkVTJw0KPiANCj4gLSAgICB8ICAgJ1pFUk8nDQo+IA0KPiAtICAgIHwgICBO dW1iZXIgJzonIE51bWJlciAnOicgTnVtYmVyDQo+IA0KPiAtICAgIHwgICBOdW1iZXIgJy8nIE51 bWJlciAnLycgTnVtYmVyDQo+IA0KPiAtICAgIHwgICBOdW1iZXIgJzsnIE51bWJlciAnOycgZ3Vp ZERlZmluaXRpb24gJzsnICdTVFJJTkdfVE9LRU4nICcoJyBOdW1iZXIgJyknDQo+IA0KPiAtICAg IHwgICAnU1RSSU5HX1RPS0VOJyAnKCcgTnVtYmVyICcpJw0KPiANCj4gLSAgICB8ICAgJ3snIE51 bWJlciAoJywnIE51bWJlcikqICd9Jw0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtdmZy SW1hZ2VUYWcNCj4gDQo+IC1sb2NhbHNbTm9kZT1WZnJUcmVlTm9kZShFRklfSUZSX0lNQUdFX09Q KV0NCj4gDQo+IC0gICAgOiAgICdpbWFnZScgJz0nICdJTUFHRV9UT0tFTicgJygnIE51bWJlciAn KScNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmckxvY2tlZFRhZw0KPiANCj4gLWxv Y2Fsc1tOb2RlPVZmclRyZWVOb2RlKEVGSV9JRlJfTE9DS0VEX09QKV0NCj4gDQo+IC0gICAgOiAg ICdsb2NrZWQnDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC12ZnJTdGF0ZW1lbnRTdGF0 VGFnDQo+IA0KPiAtbG9jYWxzW05vZGVdDQo+IA0KPiAtICAgIDogICB2ZnJJbWFnZVRhZyB8IHZm ckxvY2tlZFRhZw0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtdmZyU3RhdGVtZW50U3Rh dFRhZ0xpc3RbTm9kZV0NCj4gDQo+IC0gICAgOiAgIHZmclN0YXRlbWVudFN0YXRUYWcgKCcsJyB2 ZnJTdGF0ZW1lbnRTdGF0VGFnKSoNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmckZv cm1EZWZpbml0aW9uDQo+IA0KPiAtbG9jYWxzW05vZGU9VmZyVHJlZU5vZGUoRUZJX0lGUl9GT1JN X09QKV0NCj4gDQo+IC0gICAgOiAgICdmb3JtJyAnZm9ybWlkJyAnPScgTnVtYmVyICcsJw0KPiAN Cj4gLSAgICAgICAgJ3RpdGxlJyAnPScgJ1NUUklOR19UT0tFTicgJygnIE51bWJlciAnKScgJzsn DQo+IA0KPiAtICAgICAgICAodmZyRm9ybSkqDQo+IA0KPiAtICAgICAgICAnZW5kZm9ybScgJzsn DQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC12ZnJGb3JtDQo+IA0KPiAtbG9jYWxzW05v ZGVdDQo+IA0KPiAtICAgIDoNCj4gDQo+IC0gICAgKCAgIHZmclN0YXRlbWVudEltYWdlDQo+IA0K PiAtICAgIHwgICB2ZnJTdGF0ZW1lbnRMb2NrZWQNCj4gDQo+IC0gICAgfCAgIHZmclN0YXRlbWVu dFJ1bGVzDQo+IA0KPiAtICAgIHwgICB2ZnJTdGF0ZW1lbnREZWZhdWx0DQo+IA0KPiAtICAgIHwg ICB2ZnJTdGF0ZW1lbnRTdGF0DQo+IA0KPiAtICAgIHwgICB2ZnJTdGF0ZW1lbnRRdWVzdGlvbnMN Cj4gDQo+IC0gICAgfCAgIHZmclN0YXRlbWVudENvbmRpdGlvbmFsDQo+IA0KPiAtICAgIHwgICB2 ZnJTdGF0ZW1lbnRMYWJlbA0KPiANCj4gLSAgICB8ICAgdmZyU3RhdGVtZW50QmFubmVyDQo+IA0K PiAtICAgIHwgICB2ZnJTdGF0ZW1lbnRJbnZhbGlkDQo+IA0KPiAtICAgIHwgICB2ZnJTdGF0ZW1l bnRFeHRlbnNpb24NCj4gDQo+IC0gICAgfCAgIHZmclN0YXRlbWVudE1vZGFsDQo+IA0KPiAtICAg IHwgICB2ZnJTdGF0ZW1lbnRSZWZyZXNoRXZlbnQgJzsnDQo+IA0KPiAtICAgICkNCj4gDQo+IC0g ICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmckZvcm1NYXBEZWZpbml0aW9uDQo+IA0KPiAtbG9jYWxz W05vZGU9VmZyVHJlZU5vZGUoRUZJX0lGUl9GT1JNX01BUF9PUCldDQo+IA0KPiAtICAgIDogICAn Zm9ybW1hcCcgJ2Zvcm1pZCcgJz0nIFMxPU51bWJlciAnLCcNCj4gDQo+IC0gICAgICAgICggICAn bWFwdGl0bGUnICc9JyAnU1RSSU5HX1RPS0VOJyAnKCcgTnVtYmVyICcpJyAnOycNCj4gDQo+IC0g ICAgICAgICAgICAnbWFwZ3VpZCcgJz0nIGd1aWREZWZpbml0aW9uICc7Jw0KPiANCj4gLSAgICAg ICAgKSoNCj4gDQo+IC0gICAgICAgICh2ZnJGb3JtKSoNCj4gDQo+IC0gICAgICAgICdlbmRmb3Jt JyAnOycNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmclN0YXRlbWVudEltYWdlDQo+ IA0KPiAtbG9jYWxzW05vZGVdDQo+IA0KPiAtICAgIDogICB2ZnJJbWFnZVRhZyAnOycNCj4gDQo+ IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmclN0YXRlbWVudExvY2tlZA0KPiANCj4gLWxvY2Fs c1tOb2RlXQ0KPiANCj4gLSAgICA6ICAgdmZyTG9ja2VkVGFnICc7Jw0KPiANCj4gLSAgICA7DQo+ IA0KPiAtDQo+IA0KPiAtdmZyU3RhdGVtZW50UnVsZXMNCj4gDQo+IC1sb2NhbHNbTm9kZT1WZnJU cmVlTm9kZShFRklfSUZSX1JVTEVfT1ApXQ0KPiANCj4gLSAgICA6ICAgJ3J1bGUnIFN0cmluZ0lk ZW50aWZpZXIgJywnDQo+IA0KPiAtICAgICAgICB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uDQo+IA0K PiAtICAgICAgICAnZW5kcnVsZScgJzsnDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC12 ZnJTdGF0ZW1lbnRTdGF0DQo+IA0KPiAtbG9jYWxzW05vZGVdDQo+IA0KPiAtICAgIDogICB2ZnJT dGF0ZW1lbnRTdWJUaXRsZQ0KPiANCj4gLSAgICB8ICAgdmZyU3RhdGVtZW50U3RhdGljVGV4dA0K PiANCj4gLSAgICB8ICAgdmZyU3RhdGVtZW50Q3Jvc3NSZWZlcmVuY2UNCj4gDQo+IC0gICAgOw0K PiANCj4gLQ0KPiANCj4gLXZmclN0YXRlbWVudFN1YlRpdGxlDQo+IA0KPiAtbG9jYWxzW05vZGU9 VmZyVHJlZU5vZGUoRUZJX0lGUl9TVUJUSVRMRV9PUCksIE9wT2JqPUNJZnJTdWJ0aXRsZSgpXQ0K PiANCj4gLSAgICA6ICAgJ3N1YnRpdGxlJw0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgJ3RleHQn ICc9JyAnU1RSSU5HX1RPS0VOJyAnKCcgTnVtYmVyICcpJw0KPiANCj4gLSAgICAgICAgKCcsJyAn ZmxhZ3MnICc9JyB2ZnJTdWJ0aXRsZUZsYWdzKT8NCj4gDQo+IC0gICAgICAgICggICAoJywnIHZm clN0YXRlbWVudFN0YXRUYWdMaXN0W2xvY2FsY3R4Lk5vZGVdKT8gJzsnDQo+IA0KPiAtICAgICAg ICB8DQo+IA0KPiAtICAgICAgICAgICAgKCcsJyB2ZnJTdGF0ZW1lbnRTdGF0VGFnTGlzdFtsb2Nh bGN0eC5Ob2RlXSk/DQo+IA0KPiAtICAgICAgICAgICAgKCcsJyAodmZyU3RhdGVtZW50U3ViVGl0 bGVDb21wb25lbnQpKiApPw0KPiANCj4gLSAgICAgICAgICAgICdlbmRzdWJ0aXRsZScgJzsnDQo+ IA0KPiAtICAgICAgICApDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC12ZnJTdGF0ZW1l bnRTdWJUaXRsZUNvbXBvbmVudA0KPiANCj4gLWxvY2Fsc1tOb2RlXQ0KPiANCj4gLSAgICA6ICB2 ZnJTdGF0ZW1lbnRTdGF0IHwgdmZyU3RhdGVtZW50UXVlc3Rpb25zDQo+IA0KPiAtICAgIDsNCj4g DQo+IC0NCj4gDQo+IC12ZnJTdWJ0aXRsZUZsYWdzDQo+IA0KPiAtbG9jYWxzW1N1YkZsYWdzPTBd DQo+IA0KPiAtICAgIDogICBzdWJ0aXRsZUZsYWdzRmllbGQgKCd8JyBzdWJ0aXRsZUZsYWdzRmll bGQpKg0KPiANCj4gLSAgICA7DQo+IA0KPiAtc3VidGl0bGVGbGFnc0ZpZWxkDQo+IA0KPiAtbG9j YWxzW0ZsYWc9MF0NCj4gDQo+IC0gICAgOiAgIE51bWJlciB8ICdIT1JJWk9OVEFMJw0KPiANCj4g LSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtdmZyU3RhdGVtZW50U3RhdGljVGV4dA0KPiANCj4gLWxv Y2Fsc1tOb2RlPVZmclRyZWVOb2RlKEVGSV9JRlJfVEVYVF9PUCldDQo+IA0KPiAtICAgIDogICAn dGV4dCcNCj4gDQo+IC0gICAgICAgICdoZWxwJyAnPScgJ1NUUklOR19UT0tFTicgJygnIFMxPU51 bWJlciAnKScgJywnDQo+IA0KPiAtICAgICAgICAndGV4dCcgJz0nICdTVFJJTkdfVE9LRU4nICco JyBTMj1OdW1iZXIgJyknDQo+IA0KPiAtICAgICAgICAoJywnICd0ZXh0JyAnPScgJ1NUUklOR19U T0tFTicgJygnIFMzPU51bWJlciAnKScpPw0KPiANCj4gLSAgICAgICAgKCcsJyBGPSdmbGFncycg Jz0nIHN0YXRpY1RleHRGbGFnc0ZpZWxkICgnfCcgc3RhdGljVGV4dEZsYWdzRmllbGQpKiAnLCcg J2tleScgJz0nDQo+IFM0PU51bWJlcik/DQo+IA0KPiAtICAgICAgICAoJywnIHZmclN0YXRlbWVu dFN0YXRUYWdMaXN0W2xvY2FsY3R4Lk5vZGVdKT8gJzsnDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0N Cj4gDQo+IC1zdGF0aWNUZXh0RmxhZ3NGaWVsZA0KPiANCj4gLWxvY2Fsc1tGbGFnPTBdDQo+IA0K PiAtICAgIDogICBOPU51bWJlciB8IHF1ZXN0aW9uaGVhZGVyRmxhZ3NGaWVsZA0KPiANCj4gLSAg ICA7DQo+IA0KPiAtDQo+IA0KPiAtdmZyU3RhdGVtZW50Q3Jvc3NSZWZlcmVuY2UNCj4gDQo+IC1s b2NhbHNbTm9kZV0NCj4gDQo+IC0gICAgOiAgIHZmclN0YXRlbWVudEdvdG8gfCB2ZnJTdGF0ZW1l bnRSZXNldEJ1dHRvbg0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtdmZyU3RhdGVtZW50 R290bw0KPiANCj4gLWxvY2Fsc1tOb2RlPVZmclRyZWVOb2RlKEVGSV9JRlJfUkVGX09QKSwgT3BP Ymo9Tm9uZSwgT0hPYmo9Tm9uZSwNCj4gUVR5cGU9RUZJX1FVRVNJT05fVFlQRS5RVUVTVElPTl9S RUZdDQo+IA0KPiAtICAgIDogICAnZ290bycNCj4gDQo+IC0gICAgICAgICggICAoICAgRGV2aWNl UGF0aCAnPScgJ1NUUklOR19UT0tFTicgJygnIE51bWJlciAnKScgJywnDQo+IA0KPiAtICAgICAg ICAgICAgICAgIEZvcm1TZXRHdWlkICc9JyBndWlkRGVmaW5pdGlvbiAnLCcNCj4gDQo+IC0gICAg ICAgICAgICAgICAgRm9ybUlkICc9JyBOdW1iZXIgJywnDQo+IA0KPiAtICAgICAgICAgICAgICAg IFF1ZXN0aW9uICc9JyBOdW1iZXIgJywnDQo+IA0KPiAtICAgICAgICAgICAgKQ0KPiANCj4gLSAg ICAgICAgICAgIHwNCj4gDQo+IC0gICAgICAgICAgICAoICAgRm9ybVNldEd1aWQgJz0nIGd1aWRE ZWZpbml0aW9uICcsJw0KPiANCj4gLSAgICAgICAgICAgICAgICBGb3JtSWQgJz0nIE51bWJlciAn LCcNCj4gDQo+IC0gICAgICAgICAgICAgICAgUXVlc3Rpb24gJz0nIE51bWJlciAnLCcNCj4gDQo+ IC0gICAgICAgICAgICApDQo+IA0KPiAtICAgICAgICAgICAgfA0KPiANCj4gLSAgICAgICAgICAg ICggICBGb3JtSWQgJz0nIE51bWJlciAnLCcNCj4gDQo+IC0gICAgICAgICAgICAgICAgUXVlc3Rp b24gJz0nIChRTj1TdHJpbmdJZGVudGlmaWVyICcsJyB8IE51bWJlciAnLCcpDQo+IA0KPiAtICAg ICAgICAgICAgKQ0KPiANCj4gLSAgICAgICAgICAgIHwNCj4gDQo+IC0gICAgICAgICAgICAoICAg TnVtYmVyICcsJyApDQo+IA0KPiAtICAgICAgICApPw0KPiANCj4gLSAgICAgICAgdmZyUXVlc3Rp b25IZWFkZXJbbG9jYWxjdHguT3BPYmosIGxvY2FsY3R4LlFUeXBlXQ0KPiANCj4gLSAgICAgICAg KCcsJyAnZmxhZ3MnICc9JyB2ZnJHb3RvRmxhZ3NbbG9jYWxjdHguT3BPYmpdKT8NCj4gDQo+IC0g ICAgICAgICgnLCcgJ2tleScgJz0nIE51bWJlcik/DQo+IA0KPiAtICAgICAgICAoJywnIHZmclN0 YXRlbWVudFF1ZXN0aW9uT3B0aW9uTGlzdFtsb2NhbGN0eC5Ob2RlXSk/ICc7Jw0KPiANCj4gLSAg ICA7DQo+IA0KPiAtDQo+IA0KPiAtdmZyR290b0ZsYWdzW09ial0NCj4gDQo+IC1sb2NhbHNbR290 b0ZsYWdzPTBdDQo+IA0KPiAtICAgIDogICBnb3RvRmxhZ3NGaWVsZCgnfCcgZ290b0ZsYWdzRmll bGQpKg0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtZ290b0ZsYWdzRmllbGQNCj4gDQo+ IC1sb2NhbHNbRmxhZz0wXQ0KPiANCj4gLSAgICA6ICBOPU51bWJlciB8IHF1ZXN0aW9uaGVhZGVy RmxhZ3NGaWVsZA0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtdmZyU3RhdGVtZW50UmVz ZXRCdXR0b24NCj4gDQo+IC1sb2NhbHNbTm9kZT1WZnJUcmVlTm9kZShFRklfSUZSX1JFU0VUX0JV VFRPTl9PUCksDQo+IE9wT2JqPUNJZnJSZXNldEJ1dHRvbigpXQ0KPiANCj4gLSAgICA6ICAncmVz ZXRidXR0b24nDQo+IA0KPiAtICAgICAgICdkZWZhdWx0c3RvcmUnICc9JyBOPVN0cmluZ0lkZW50 aWZpZXIgJywnDQo+IA0KPiAtICAgICAgIHZmclN0YXRlbWVudEhlYWRlcltsb2NhbGN0eC5PcE9i al0gJywnDQo+IA0KPiAtICAgICAgICh2ZnJTdGF0ZW1lbnRTdGF0VGFnTGlzdFtsb2NhbGN0eC5O b2RlXSAnLCcpPw0KPiANCj4gLSAgICAgICAnZW5kcmVzZXRidXR0b24nICc7Jw0KPiANCj4gLSAg ICA7DQo+IA0KPiAtDQo+IA0KPiAtdmZyU3RhdGVtZW50UXVlc3Rpb25zDQo+IA0KPiAtbG9jYWxz W05vZGVdDQo+IA0KPiAtICAgIDogICB2ZnJTdGF0ZW1lbnRCb29sZWFuVHlwZQ0KPiANCj4gLSAg ICB8ICAgdmZyU3RhdGVtZW50RGF0ZQ0KPiANCj4gLSAgICB8ICAgdmZyU3RhdGVtZW50TnVtZXJp Y1R5cGUNCj4gDQo+IC0gICAgfCAgIHZmclN0YXRlbWVudFN0cmluZ1R5cGUNCj4gDQo+IC0gICAg fCAgIHZmclN0YXRlbWVudE9yZGVyZWRMaXN0DQo+IA0KPiAtICAgIHwgICB2ZnJTdGF0ZW1lbnRU aW1lDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC12ZnJTdGF0ZW1lbnRRdWVzdGlvblRh Zw0KPiANCj4gLWxvY2Fsc1tOb2RlXQ0KPiANCj4gLSAgICA6ICAgdmZyU3RhdGVtZW50U3RhdFRh ZyAnLCcNCj4gDQo+IC0gICAgfCAgIHZmclN0YXRlbWVudEluY29uc2lzdGVudElmDQo+IA0KPiAt ICAgIHwgICB2ZnJTdGF0ZW1lbnROb1N1Ym1pdElmDQo+IA0KPiAtICAgIHwgICB2ZnJTdGF0ZW1l bnREaXNhYmxlSWZRdWVzdA0KPiANCj4gLSAgICB8ICAgdmZyU3RhdGVtZW50UmVmcmVzaA0KPiAN Cj4gLSAgICB8ICAgdmZyU3RhdGVtZW50VmFyc3RvcmVEZXZpY2UNCj4gDQo+IC0gICAgfCAgIHZm clN0YXRlbWVudEV4dGVuc2lvbg0KPiANCj4gLSAgICB8ICAgdmZyU3RhdGVtZW50UmVmcmVzaEV2 ZW50DQo+IA0KPiAtICAgIHwgICB2ZnJTdGF0ZW1lbnRXYXJuaW5nSWYNCj4gDQo+IC0gICAgOw0K PiANCj4gLQ0KPiANCj4gLXZmclN0YXRlbWVudEluY29uc2lzdGVudElmDQo+IA0KPiAtbG9jYWxz W05vZGU9VmZyVHJlZU5vZGUoRUZJX0lGUl9JTkNPTlNJU1RFTlRfSUZfT1ApXQ0KPiANCj4gLSAg ICA6ICAgJ2luY29uc2lzdGVudGlmJw0KPiANCj4gLSAgICAgICAgJ3Byb21wdCcgJz0nICdTVFJJ TkdfVE9LRU4nICcoJyBOdW1iZXIgJyknICcsJw0KPiANCj4gLSAgICAgICAgKCdmbGFncycgJz0n IGZsYWdzRmllbGQgKCd8JyBmbGFnc0ZpZWxkKSogJywnKT8NCj4gDQo+IC0gICAgICAgIHZmclN0 YXRlbWVudEV4cHJlc3Npb24NCj4gDQo+IC0gICAgICAgICdlbmRpZicgKCc7Jyk/DQo+IA0KPiAt ICAgIDsNCj4gDQo+IC0NCj4gDQo+IC12ZnJTdGF0ZW1lbnROb1N1Ym1pdElmDQo+IA0KPiAtbG9j YWxzW05vZGU9VmZyVHJlZU5vZGUoRUZJX0lGUl9OT19TVUJNSVRfSUZfT1ApXQ0KPiANCj4gLSAg ICA6ICAgJ25vc3VibWl0aWYnDQo+IA0KPiAtICAgICAgICAncHJvbXB0JyAnPScgJ1NUUklOR19U T0tFTicgJygnIE51bWJlciAnKScgJywnDQo+IA0KPiAtICAgICAgICAoJ2ZsYWdzJyAnPScgZmxh Z3NGaWVsZCAoJ3wnIGZsYWdzRmllbGQpKiAnLCcpPw0KPiANCj4gLSAgICAgICAgdmZyU3RhdGVt ZW50RXhwcmVzc2lvbg0KPiANCj4gLSAgICAgICAgJ2VuZGlmJyAoJzsnKT8NCj4gDQo+IC0gICAg Ow0KPiANCj4gLQ0KPiANCj4gLXZmclN0YXRlbWVudERpc2FibGVJZlF1ZXN0DQo+IA0KPiAtbG9j YWxzW05vZGU9VmZyVHJlZU5vZGUoRUZJX0lGUl9ESVNBQkxFX0lGX09QKV0NCj4gDQo+IC0gICAg OiAgICdkaXNhYmxlaWYnIHZmclN0YXRlbWVudEV4cHJlc3Npb24gJzsnDQo+IA0KPiAtICAgICAg ICB2ZnJTdGF0ZW1lbnRRdWVzdGlvbk9wdGlvbkxpc3RbbG9jYWxjdHguTm9kZV0NCj4gDQo+IC0g ICAgICAgICdlbmRpZicgKCc7Jyk/DQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC12ZnJT dGF0ZW1lbnRSZWZyZXNoDQo+IA0KPiAtbG9jYWxzW05vZGU9VmZyVHJlZU5vZGUoRUZJX0lGUl9S RUZSRVNIX09QKV0NCj4gDQo+IC0gICAgOiAgICdyZWZyZXNoJyAnaW50ZXJ2YWwnICc9JyBOdW1i ZXINCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmclN0YXRlbWVudFZhcnN0b3JlRGV2 aWNlDQo+IA0KPiAtbG9jYWxzW05vZGU9VmZyVHJlZU5vZGUoRUZJX0lGUl9WQVJTVE9SRV9ERVZJ Q0VfT1ApXQ0KPiANCj4gLSAgICA6ICAgJ3ZhcnN0b3JlZGV2aWNlJyAnPScgJ1NUUklOR19UT0tF TicgJygnIE51bWJlciAnKScgJywnDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC12ZnJT dGF0ZW1lbnRSZWZyZXNoRXZlbnQNCj4gDQo+IC1sb2NhbHNbTm9kZT1WZnJUcmVlTm9kZShFRklf SUZSX1JFRlJFU0hfSURfT1ApXQ0KPiANCj4gLSAgICA6ICAgJ3JlZnJlc2hndWlkJyAnPScgZ3Vp ZERlZmluaXRpb24gJywnDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC12ZnJTdGF0ZW1l bnRXYXJuaW5nSWYNCj4gDQo+IC1sb2NhbHNbTm9kZT1WZnJUcmVlTm9kZShFRklfSUZSX1dBUk5J TkdfSUZfT1ApXQ0KPiANCj4gLSAgICA6ICAgJ3dhcm5pbmdpZicNCj4gDQo+IC0gICAgICAgICdw cm9tcHQnICc9JyAnU1RSSU5HX1RPS0VOJyAnKCcgTnVtYmVyICcpJyAnLCcNCj4gDQo+IC0gICAg ICAgICgndGltZW91dCcgJz0nIE51bWJlciAnLCcpPw0KPiANCj4gLSAgICAgICAgdmZyU3RhdGVt ZW50RXhwcmVzc2lvbg0KPiANCj4gLSAgICAgICAgJ2VuZGlmJyAoJzsnKT8NCj4gDQo+IC0gICAg Ow0KPiANCj4gLQ0KPiANCj4gLXZmclN0YXRlbWVudFF1ZXN0aW9uVGFnTGlzdFtOb2RlXQ0KPiAN Cj4gLSAgICA6ICAgKHZmclN0YXRlbWVudFF1ZXN0aW9uVGFnKSoNCj4gDQo+IC0gICAgOw0KPiAN Cj4gLQ0KPiANCj4gLXZmclN0YXRlbWVudFF1ZXN0aW9uT3B0aW9uVGFnDQo+IA0KPiAtbG9jYWxz W05vZGVdDQo+IA0KPiAtICAgIDogICB2ZnJTdGF0ZW1lbnRTdXBwcmVzc0lmUXVlc3QNCj4gDQo+ IC0gICAgfCAgIHZmclN0YXRlbWVudEdyYXlPdXRJZlF1ZXN0DQo+IA0KPiAtICAgIHwgICB2ZnJT dGF0ZW1lbnRWYWx1ZQ0KPiANCj4gLSAgICB8ICAgdmZyU3RhdGVtZW50RGVmYXVsdA0KPiANCj4g LSAgICB8ICAgdmZyU3RhdGVtZW50T3B0aW9ucw0KPiANCj4gLSAgICB8ICAgdmZyU3RhdGVtZW50 UmVhZA0KPiANCj4gLSAgICB8ICAgdmZyU3RhdGVtZW50V3JpdGUNCj4gDQo+IC0gICAgOw0KPiAN Cj4gLQ0KPiANCj4gLWZsYWdzRmllbGQNCj4gDQo+IC0gICAgOiAgIE51bWJlcg0KPiANCj4gLSAg ICB8ICAgSW50ZXJhY3RpdmVGbGFnDQo+IA0KPiAtICAgIHwgICBNYW51ZmFjdHVyaW5nRmxhZw0K PiANCj4gLSAgICB8ICAgRGVmYXVsdEZsYWcNCj4gDQo+IC0gICAgfCAgIFJlc2V0UmVxdWlyZWRG bGFnDQo+IA0KPiAtICAgIHwgICBSZWNvbm5lY3RSZXF1aXJlZEZsYWcNCj4gDQo+IC0gICAgfCAg IE49TlZBY2Nlc3NGbGFnDQo+IA0KPiAtICAgIHwgICBMPUxhdGVDaGVja0ZsYWcNCj4gDQo+IC0g ICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmclN0YXRlbWVudFN1cHByZXNzSWZRdWVzdA0KPiANCj4g LWxvY2Fsc1tOb2RlPVZmclRyZWVOb2RlKEVGSV9JRlJfU1VQUFJFU1NfSUZfT1ApXQ0KPiANCj4g LSAgICA6ICAgJ3N1cHByZXNzaWYnIHZmclN0YXRlbWVudEV4cHJlc3Npb24gJzsnDQo+IA0KPiAt ICAgICAgICAoJ2ZsYWdzJyAnPScgZmxhZ3NGaWVsZCAoJ3wnIGZsYWdzRmllbGQgKSogJywnKT8N Cj4gDQo+IC0gICAgICAgIHZmclN0YXRlbWVudFF1ZXN0aW9uT3B0aW9uTGlzdFtsb2NhbGN0eC5O b2RlXQ0KPiANCj4gLSAgICAgICAgJ2VuZGlmJyAoJzsnKT8NCj4gDQo+IC0gICAgOw0KPiANCj4g LQ0KPiANCj4gLXZmclN0YXRlbWVudEdyYXlPdXRJZlF1ZXN0DQo+IA0KPiAtbG9jYWxzW05vZGU9 VmZyVHJlZU5vZGUoRUZJX0lGUl9TVVBQUkVTU19JRl9PUCldDQo+IA0KPiAtICAgIDogICAnZ3Jh eW91dGlmJyB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uICc7Jw0KPiANCj4gLSAgICAgICAgKCdmbGFn cycgJz0nIGZsYWdzRmllbGQgKCd8JyBmbGFnc0ZpZWxkICkqICcsJyk/DQo+IA0KPiAtICAgICAg ICB2ZnJTdGF0ZW1lbnRRdWVzdGlvbk9wdGlvbkxpc3RbbG9jYWxjdHguTm9kZV0NCj4gDQo+IC0g ICAgICAgICdlbmRpZicgKCc7Jyk/DQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC0NCj4g DQo+IC12ZnJTdGF0ZW1lbnREZWZhdWx0DQo+IA0KPiAtbG9jYWxzW05vZGU9VmZyVHJlZU5vZGUo RUZJX0lGUl9ERUZBVUxUX09QKV0NCj4gDQo+IC0gICAgOiAgIEQ9J2RlZmF1bHQnDQo+IA0KPiAt ICAgICAgICAoICAgKCAgIHZmclN0YXRlbWVudFZhbHVlICcsJw0KPiANCj4gLSAgICAgICAgICAg IHwgICAnPScgdmZyQ29uc3RhbnRWYWx1ZUZpZWxkICcsJw0KPiANCj4gLSAgICAgICAgICAgICkN Cj4gDQo+IC0gICAgICAgICAgICAoICAgJ2RlZmF1bHRzdG9yZScgJz0nIFNOPVN0cmluZ0lkZW50 aWZpZXIgJywnDQo+IA0KPiAtICAgICAgICAgICAgKT8NCj4gDQo+IC0gICAgICAgICkNCj4gDQo+ IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmclN0YXRlbWVudFZhbHVlDQo+IA0KPiAtbG9jYWxz W05vZGU9VmZyVHJlZU5vZGUoRUZJX0lGUl9WQUxVRV9PUCldDQo+IA0KPiAtICAgIDogICAndmFs dWUnICc9JyB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4g DQo+IC12ZnJTdGF0ZW1lbnRPcHRpb25zDQo+IA0KPiAtbG9jYWxzW05vZGVdDQo+IA0KPiAtICAg IDogICB2ZnJTdGF0ZW1lbnRPbmVPZk9wdGlvbg0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0K PiAtdmZyU3RhdGVtZW50T25lT2ZPcHRpb24NCj4gDQo+IC1sb2NhbHNbTm9kZT1WZnJUcmVlTm9k ZShFRklfSUZSX09ORV9PRl9PUFRJT05fT1ApXQ0KPiANCj4gLSAgICA6ICAgJ29wdGlvbicNCj4g DQo+IC0gICAgICAgICd0ZXh0JyAnPScgJ1NUUklOR19UT0tFTicgJygnIE51bWJlciAnKScgJywn DQo+IA0KPiAtICAgICAgICAndmFsdWUnICc9JyB2ZnJDb25zdGFudFZhbHVlRmllbGQgJywnDQo+ IA0KPiAtICAgICAgICBGPSdmbGFncycgJz0nIHZmck9uZU9mT3B0aW9uRmxhZ3MgKCcsJyAna2V5 JyAnPScgS049TnVtYmVyKSA/ICgnLCcNCj4gdmZySW1hZ2VUYWcpKiAnOycNCj4gDQo+IC0gICAg Ow0KPiANCj4gLQ0KPiANCj4gLXZmck9uZU9mT3B0aW9uRmxhZ3MNCj4gDQo+IC1sb2NhbHNbSEZs YWdzPTAsIExGbGFncz0wXQ0KPiANCj4gLSAgICA6ICAgb25lb2ZvcHRpb25GbGFnc0ZpZWxkICgn fCcgb25lb2ZvcHRpb25GbGFnc0ZpZWxkKSo7DQo+IA0KPiAtDQo+IA0KPiAtb25lb2ZvcHRpb25G bGFnc0ZpZWxkDQo+IA0KPiAtCWxvY2Fsc1tIRmxhZz0wLCBMRmxhZz0wXQ0KPiANCj4gLSAgICA6 ICAgTnVtYmVyDQo+IA0KPiAtICAgIHwgICBPcHRpb25EZWZhdWx0DQo+IA0KPiAtICAgIHwgICBP cHRpb25EZWZhdWx0TWZnDQo+IA0KPiAtICAgIHwgICBJbnRlcmFjdGl2ZUZsYWcNCj4gDQo+IC0g ICAgfCAgIFJlc2V0UmVxdWlyZWRGbGFnDQo+IA0KPiAtICAgIHwgICBSZXN0U3R5bGVGbGFnDQo+ IA0KPiAtICAgIHwgICBSZWNvbm5lY3RSZXF1aXJlZEZsYWcNCj4gDQo+IC0gICAgfCAgIE1hbnVm YWN0dXJpbmdGbGFnDQo+IA0KPiAtICAgIHwgICBEZWZhdWx0RmxhZw0KPiANCj4gLSAgICB8ICAg QT1OVkFjY2Vzc0ZsYWcNCj4gDQo+IC0gICAgfCAgIEw9TGF0ZUNoZWNrRmxhZw0KPiANCj4gLSAg ICA7DQo+IA0KPiAtDQo+IA0KPiAtdmZyU3RhdGVtZW50UmVhZA0KPiANCj4gLWxvY2Fsc1tOb2Rl PVZmclRyZWVOb2RlKEVGSV9JRlJfUkVBRF9PUCldDQo+IA0KPiAtICAgIDogICAncmVhZCcgdmZy U3RhdGVtZW50RXhwcmVzc2lvbiAnOycNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZm clN0YXRlbWVudFdyaXRlDQo+IA0KPiAtbG9jYWxzW05vZGU9VmZyVHJlZU5vZGUoRUZJX0lGUl9X UklURV9PUCldDQo+IA0KPiAtICAgIDogICAnd3JpdGUnIHZmclN0YXRlbWVudEV4cHJlc3Npb24g JzsnDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC12ZnJTdGF0ZW1lbnRRdWVzdGlvbk9w dGlvbkxpc3RbTm9kZV0NCj4gDQo+IC0gICAgOiAgICh2ZnJTdGF0ZW1lbnRRdWVzdGlvbk9wdGlv bikqDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC12ZnJT dGF0ZW1lbnRRdWVzdGlvbk9wdGlvbg0KPiANCj4gLWxvY2Fsc1tOb2RlXQ0KPiANCj4gLSAgICA6 ICAgdmZyU3RhdGVtZW50UXVlc3Rpb25UYWcgfCB2ZnJTdGF0ZW1lbnRRdWVzdGlvbk9wdGlvblRh Zw0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtdmZyU3RhdGVtZW50Qm9vbGVhblR5cGUN Cj4gDQo+IC1sb2NhbHNbTm9kZV0NCj4gDQo+IC0gICAgOiAgIHZmclN0YXRlbWVudENoZWNrQm94 IHwgdmZyU3RhdGVtZW50QWN0aW9uDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC12ZnJT dGF0ZW1lbnRDaGVja0JveA0KPiANCj4gLWxvY2Fsc1tOb2RlPVZmclRyZWVOb2RlKEVGSV9JRlJf Q0hFQ0tCT1hfT1ApLCBPcE9iaj1DSWZyQ2hlY2tCb3goKSwNCj4gUVR5cGU9RUZJX1FVRVNJT05f VFlQRS5RVUVTVElPTl9OT1JNQUxdDQo+IA0KPiAtICAgIDogICBMPSdjaGVja2JveCcNCj4gDQo+ IC0gICAgICAgIHZmclF1ZXN0aW9uQmFzZUluZm9bbG9jYWxjdHguT3BPYmosIGxvY2FsY3R4LlFU eXBlXQ0KPiANCj4gLSAgICAgICAgdmZyU3RhdGVtZW50SGVhZGVyW2xvY2FsY3R4Lk9wT2JqXSAn LCcNCj4gDQo+IC0gICAgICAgIChGPSdmbGFncycgJz0nIHZmckNoZWNrQm94RmxhZ3MgJywnKT8N Cj4gDQo+IC0gICAgICAgICgna2V5JyAnPScgTnVtYmVyICcsJyk/DQo+IA0KPiAtICAgICAgICB2 ZnJTdGF0ZW1lbnRRdWVzdGlvbk9wdGlvbkxpc3RbbG9jYWxjdHguTm9kZV0NCj4gDQo+IC0gICAg ICAgICdlbmRjaGVja2JveCcgJzsnDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC12ZnJD aGVja0JveEZsYWdzDQo+IA0KPiAtbG9jYWxzW0xGbGFncz0wLCBIRmxhZ3M9MF0NCj4gDQo+IC0g ICAgOiAgIGNoZWNrYm94RmxhZ3NGaWVsZCAoJ3wnIGNoZWNrYm94RmxhZ3NGaWVsZCkqDQo+IA0K PiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC1jaGVja2JveEZsYWdzRmllbGQNCj4gDQo+IC1sb2Nh bHNbTEZsYWc9MCwgSEZsYWc9MF0NCj4gDQo+IC0gICAgOiAgIE51bWJlcg0KPiANCj4gLSAgICB8 ICAgRD0nREVGQVVMVCcNCj4gDQo+IC0gICAgfCAgIE09J01BTlVGQUNUVVJJTkcnDQo+IA0KPiAt ICAgIHwgICAnQ0hFQ0tCT1hfREVGQVVMVCcNCj4gDQo+IC0gICAgfCAgICdDSEVDS0JPWF9ERUZB VUxUX01GRycNCj4gDQo+IC0gICAgfCAgIHF1ZXN0aW9uaGVhZGVyRmxhZ3NGaWVsZA0KPiANCj4g LSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtdmZyU3RhdGVtZW50QWN0aW9uDQo+IA0KPiAtbG9jYWxz W05vZGU9VmZyVHJlZU5vZGUoRUZJX0lGUl9BQ1RJT05fT1ApLE9wT2JqPUNJZnJBY3Rpb24oKSwN Cj4gUVR5cGU9RUZJX1FVRVNJT05fVFlQRS5RVUVTVElPTl9OT1JNQUxdDQo+IA0KPiAtICAgIDog ICAnYWN0aW9uJw0KPiANCj4gLSAgICAgICAgdmZyUXVlc3Rpb25IZWFkZXJbbG9jYWxjdHguT3BP YmosIGxvY2FsY3R4LlFUeXBlXSAnLCcNCj4gDQo+IC0gICAgICAgICgnZmxhZ3MnICc9JyB2ZnJB Y3Rpb25GbGFncyAnLCcpPw0KPiANCj4gLSAgICAgICAgJ2NvbmZpZycgJz0nICdTVFJJTkdfVE9L RU4nICcoJyBOdW1iZXIgJyknICcsJw0KPiANCj4gLSAgICAgICAgdmZyU3RhdGVtZW50UXVlc3Rp b25UYWdMaXN0W2xvY2FsY3R4Lk5vZGVdDQo+IA0KPiAtICAgICAgICAnZW5kYWN0aW9uJyAnOycN Cj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmckFjdGlvbkZsYWdzDQo+IA0KPiAtbG9j YWxzW0hGbGFncz0wXQ0KPiANCj4gLSAgICA6ICAgYWN0aW9uRmxhZ3NGaWVsZCAoJ3wnIGFjdGlv bkZsYWdzRmllbGQpKg0KPiANCj4gLSAgICA7DQo+IA0KPiAtYWN0aW9uRmxhZ3NGaWVsZA0KPiAN Cj4gLWxvY2Fsc1tIRmxhZz0wXQ0KPiANCj4gLSAgICA6ICAgTj1OdW1iZXIgfCBxdWVzdGlvbmhl YWRlckZsYWdzRmllbGQNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmclN0YXRlbWVu dE51bWVyaWNUeXBlDQo+IA0KPiAtbG9jYWxzW05vZGVdDQo+IA0KPiAtICAgIDogICB2ZnJTdGF0 ZW1lbnROdW1lcmljIHwgdmZyU3RhdGVtZW50T25lT2YNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0K PiANCj4gLXZmclN0YXRlbWVudE51bWVyaWMNCj4gDQo+IC1sb2NhbHNbTm9kZT1WZnJUcmVlTm9k ZShFRklfSUZSX05VTUVSSUNfT1ApLCBPcE9iaj1DSWZyTnVtZXJpYygpLA0KPiBRVHlwZT1FRklf UVVFU0lPTl9UWVBFLlFVRVNUSU9OX05PUk1BTF0NCj4gDQo+IC0gICAgOiAgICdudW1lcmljJw0K PiANCj4gLSAgICAgICAgdmZyUXVlc3Rpb25CYXNlSW5mb1tsb2NhbGN0eC5PcE9iaiwgbG9jYWxj dHguUVR5cGVdDQo+IA0KPiAtICAgICAgICB2ZnJTdGF0ZW1lbnRIZWFkZXJbbG9jYWxjdHguT3BP YmpdICcsJw0KPiANCj4gLSAgICAgICAgKEY9J2ZsYWdzJyAnPScgdmZyTnVtZXJpY0ZsYWdzICcs Jyk/DQo+IA0KPiAtICAgICAgICAoJ2tleScgJz0nIE51bWJlciAnLCcpPw0KPiANCj4gLSAgICAg ICAgdmZyU2V0TWluTWF4U3RlcFtsb2NhbGN0eC5PcE9ial0NCj4gDQo+IC0gICAgICAgIHZmclN0 YXRlbWVudFF1ZXN0aW9uT3B0aW9uTGlzdFtsb2NhbGN0eC5Ob2RlXQ0KPiANCj4gLSAgICAgICAg J2VuZG51bWVyaWMnICc7Jw0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtdmZyU2V0TWlu TWF4U3RlcFtPcE9ial0gLy8gQ0lmck1pbk1heFN0ZXBEYXRhDQo+IA0KPiAtICAgIDogICAnbWlu aW11bScgJz0nIChOMT0nLScpPyBJPU51bWJlciAnLCcNCj4gDQo+IC0gICAgICAgICdtYXhpbXVt JyAnPScgKE4yPSctJyk/IEE9TnVtYmVyICcsJw0KPiANCj4gLSAgICAgICAgKCdzdGVwJyAnPScg Uz1OdW1iZXIgJywnKT8NCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmck51bWVyaWNG bGFncw0KPiANCj4gLWxvY2Fsc1tIRmxhZ3M9MCwgTEZsYWdzPTAsSXNEaXNwbGF5U3BlY2lmaWVk PUZhbHNlXQ0KPiANCj4gLSAgICA6ICAgbnVtZXJpY0ZsYWdzRmllbGQgKCd8JyBudW1lcmljRmxh Z3NGaWVsZCkqDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC1udW1lcmljRmxhZ3NGaWVs ZA0KPiANCj4gLWxvY2Fsc1tIRmxhZz0wLElzU2V0VHlwZT1GYWxzZSxJc0Rpc3BsYXlTcGVjaWZp ZWQ9RmFsc2VdDQo+IA0KPiAtICAgIDogICBOPU51bWJlcg0KPiANCj4gLSAgICB8ICAgJ05VTUVS SUNfU0laRV8xJw0KPiANCj4gLSAgICB8ICAgJ05VTUVSSUNfU0laRV8yJw0KPiANCj4gLSAgICB8 ICAgJ05VTUVSSUNfU0laRV80Jw0KPiANCj4gLSAgICB8ICAgJ05VTUVSSUNfU0laRV84Jw0KPiAN Cj4gLSAgICB8ICAgJ0RJU1BMQVlfSU5UX0RFQycNCj4gDQo+IC0gICAgfCAgICdESVNQTEFZX1VJ TlRfREVDJw0KPiANCj4gLSAgICB8ICAgJ0RJU1BMQVlfVUlOVF9IRVgnDQo+IA0KPiAtICAgIHwg ICBxdWVzdGlvbmhlYWRlckZsYWdzRmllbGQNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4g LXZmclN0YXRlbWVudE9uZU9mDQo+IA0KPiAtbG9jYWxzW05vZGU9VmZyVHJlZU5vZGUoRUZJX0lG Ul9PTkVfT0ZfT1ApLCBPcE9iaj1DSWZyT25lT2YoKSwNCj4gUVR5cGU9RUZJX1FVRVNJT05fVFlQ RS5RVUVTVElPTl9OT1JNQUxdDQo+IA0KPiAtICAgIDogICAnb25lb2YnDQo+IA0KPiAtICAgICAg ICB2ZnJRdWVzdGlvbkJhc2VJbmZvW2xvY2FsY3R4Lk9wT2JqLCBsb2NhbGN0eC5RVHlwZV0NCj4g DQo+IC0gICAgICAgIHZmclN0YXRlbWVudEhlYWRlcltsb2NhbGN0eC5PcE9ial0gJywnDQo+IA0K PiAtICAgICAgICAoRj0nZmxhZ3MnICc9JyB2ZnJPbmVvZkZsYWdzRmllbGQgJywnKT8NCj4gDQo+ IC0gICAgICAgICh2ZnJTZXRNaW5NYXhTdGVwW2xvY2FsY3R4Lk9wT2JqXSk/DQo+IA0KPiAtICAg ICAgICB2ZnJTdGF0ZW1lbnRRdWVzdGlvbk9wdGlvbkxpc3RbbG9jYWxjdHguTm9kZV0NCj4gDQo+ IC0gICAgICAgICdlbmRvbmVvZicgJzsnDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC12 ZnJPbmVvZkZsYWdzRmllbGQNCj4gDQo+IC1sb2NhbHNbSEZsYWdzPTAsIExGbGFncz0wXQ0KPiAN Cj4gLSAgICA6ICAgbnVtZXJpY0ZsYWdzRmllbGQgKCd8JyBudW1lcmljRmxhZ3NGaWVsZCkqDQo+ IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC12ZnJTdGF0ZW1lbnRTdHJpbmdUeXBlDQo+IA0K PiAtbG9jYWxzW05vZGVdDQo+IA0KPiAtICAgIDogICB2ZnJTdGF0ZW1lbnRTdHJpbmcgfCB2ZnJT dGF0ZW1lbnRQYXNzd29yZA0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtdmZyU3RhdGVt ZW50U3RyaW5nDQo+IA0KPiAtbG9jYWxzW05vZGU9VmZyVHJlZU5vZGUoRUZJX0lGUl9TVFJJTkdf T1ApLCBPcE9iaj1DSWZyU3RyaW5nKCksDQo+IFFUeXBlPUVGSV9RVUVTSU9OX1RZUEUuUVVFU1RJ T05fTk9STUFMXQ0KPiANCj4gLSAgICA6ICAgJ3N0cmluZycNCj4gDQo+IC0gICAgICAgIHZmclF1 ZXN0aW9uSGVhZGVyW2xvY2FsY3R4Lk9wT2JqLCBsb2NhbGN0eC5RVHlwZV0gJywnDQo+IA0KPiAt ICAgICAgICAoRj0nZmxhZ3MnICc9JyB2ZnJTdHJpbmdGbGFnc0ZpZWxkICcsJyk/DQo+IA0KPiAt ICAgICAgICAoJ2tleScgJz0nIE51bWJlciAnLCcpPw0KPiANCj4gLSAgICAgICAgTWluPSdtaW5z aXplJyAnPScgTnVtYmVyICcsJw0KPiANCj4gLSAgICAgICAgTWF4PSdtYXhzaXplJyAnPScgTnVt YmVyICcsJw0KPiANCj4gLSAgICAgICAgdmZyU3RhdGVtZW50UXVlc3Rpb25PcHRpb25MaXN0W2xv Y2FsY3R4Lk5vZGVdDQo+IA0KPiAtICAgICAgICAnZW5kc3RyaW5nJyAnOycNCj4gDQo+IC0gICAg Ow0KPiANCj4gLQ0KPiANCj4gLXZmclN0cmluZ0ZsYWdzRmllbGQNCj4gDQo+IC1sb2NhbHNbSEZs YWdzPTAsIExGbGFncz0wXQ0KPiANCj4gLSAgICA6ICAgc3RyaW5nRmxhZ3NGaWVsZCAoJ3wnIHN0 cmluZ0ZsYWdzRmllbGQpKg0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtc3RyaW5nRmxh Z3NGaWVsZA0KPiANCj4gLWxvY2Fsc1tIRmxhZz0wLCBMRmxhZz0wXQ0KPiANCj4gLSAgICA6ICAg Tj1OdW1iZXINCj4gDQo+IC0gICAgfCAgICdNVUxUSV9MSU5FJw0KPiANCj4gLSAgICB8ICAgcXVl c3Rpb25oZWFkZXJGbGFnc0ZpZWxkDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC12ZnJT dGF0ZW1lbnRQYXNzd29yZA0KPiANCj4gLWxvY2Fsc1tOb2RlPVZmclRyZWVOb2RlKEVGSV9JRlJf UEFTU1dPUkRfT1ApLCBPcE9iaj1DSWZyUGFzc3dvcmQoKSwNCj4gUVR5cGU9RUZJX1FVRVNJT05f VFlQRS5RVUVTVElPTl9OT1JNQUxdDQo+IA0KPiAtICAgIDogICAncGFzc3dvcmQnDQo+IA0KPiAt ICAgICAgICB2ZnJRdWVzdGlvbkhlYWRlcltsb2NhbGN0eC5PcE9iaiwgbG9jYWxjdHguUVR5cGVd JywnDQo+IA0KPiAtICAgICAgICAoRj0nZmxhZ3MnICc9JyB2ZnJQYXNzd29yZEZsYWdzRmllbGQg JywnKT8NCj4gDQo+IC0gICAgICAgICgna2V5JyAnPScgTnVtYmVyICcsJyk/DQo+IA0KPiAtICAg ICAgICBNaW49J21pbnNpemUnICc9JyBOdW1iZXIgJywnDQo+IA0KPiAtICAgICAgICBNYXg9J21h eHNpemUnICc9JyBOdW1iZXIgJywnDQo+IA0KPiAtICAgICAgICAoJ2VuY29kaW5nJyAnPScgTnVt YmVyICcsJyk/DQo+IA0KPiAtICAgICAgICB2ZnJTdGF0ZW1lbnRRdWVzdGlvbk9wdGlvbkxpc3Rb bG9jYWxjdHguTm9kZV0NCj4gDQo+IC0gICAgICAgICdlbmRwYXNzd29yZCcgJzsnDQo+IA0KPiAt ICAgIDsNCj4gDQo+IC0NCj4gDQo+IC12ZnJQYXNzd29yZEZsYWdzRmllbGQNCj4gDQo+IC1sb2Nh bHNbSEZsYWdzPTBdDQo+IA0KPiAtICAgIDogICBwYXNzd29yZEZsYWdzRmllbGQoJ3wnIHBhc3N3 b3JkRmxhZ3NGaWVsZCkqDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC1wYXNzd29yZEZs YWdzRmllbGQNCj4gDQo+IC1sb2NhbHNbSEZsYWc9MF0NCj4gDQo+IC0gICAgOiAgIE51bWJlcg0K PiANCj4gLSAgICB8ICAgcXVlc3Rpb25oZWFkZXJGbGFnc0ZpZWxkDQo+IA0KPiAtICAgIDsNCj4g DQo+IC0NCj4gDQo+IC12ZnJTdGF0ZW1lbnRPcmRlcmVkTGlzdA0KPiANCj4gLWxvY2Fsc1tOb2Rl PVZmclRyZWVOb2RlKEVGSV9JRlJfT1JERVJFRF9MSVNUX09QKSwNCj4gT3BPYmo9Q0lmck9yZGVy ZWRMaXN0KCksIFFUeXBlPUVGSV9RVUVTSU9OX1RZUEUuUVVFU1RJT05fTk9STUFMXQ0KPiANCj4g LSAgICA6ICAgJ29yZGVyZWRsaXN0Jw0KPiANCj4gLSAgICAgICAgdmZyUXVlc3Rpb25IZWFkZXJb bG9jYWxjdHguT3BPYmosIGxvY2FsY3R4LlFUeXBlXSAnLCcNCj4gDQo+IC0gICAgICAgIChNPSdt YXhjb250YWluZXJzJyAnPScgTnVtYmVyICcsJyk/DQo+IA0KPiAtICAgICAgICAoRj0nZmxhZ3Mn ICc9JyB2ZnJPcmRlcmVkTGlzdEZsYWdzICcsJyk/DQo+IA0KPiAtICAgICAgICB2ZnJTdGF0ZW1l bnRRdWVzdGlvbk9wdGlvbkxpc3RbbG9jYWxjdHguTm9kZV0NCj4gDQo+IC0gICAgICAgICdlbmRs aXN0JyAnOycNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmck9yZGVyZWRMaXN0Rmxh Z3MNCj4gDQo+IC1sb2NhbHNbSEZsYWdzPTAsIExGbGFncz0wXQ0KPiANCj4gLSAgICA6ICAgb3Jk ZXJlZGxpc3RGbGFnc0ZpZWxkICgnfCcgb3JkZXJlZGxpc3RGbGFnc0ZpZWxkKSoNCj4gDQo+IC0g ICAgOw0KPiANCj4gLQ0KPiANCj4gLW9yZGVyZWRsaXN0RmxhZ3NGaWVsZA0KPiANCj4gLWxvY2Fs c1tIRmxhZz0wLCBMRmxhZz0wXQ0KPiANCj4gLSAgICA6ICAgTnVtYmVyDQo+IA0KPiAtICAgIHwg ICAnVU5JUVVFJw0KPiANCj4gLSAgICB8ICAgJ05PRU1QVFknDQo+IA0KPiAtICAgIHwgICBxdWVz dGlvbmhlYWRlckZsYWdzRmllbGQNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmclN0 YXRlbWVudERhdGUNCj4gDQo+IC1sb2NhbHNbTm9kZT1WZnJUcmVlTm9kZShFRklfSUZSX0RBVEVf T1ApLCBPcE9iaj1DSWZyRGF0ZSgpLA0KPiBRVHlwZT1FRklfUVVFU0lPTl9UWVBFLlFVRVNUSU9O X0RBVEUsIFZhbD1FRklfSUZSX1RZUEVfVkFMVUUoKV0NCj4gDQo+IC0gICAgOiAgICdkYXRlJw0K PiANCj4gLSAgICAgICAgKCAgICggICB2ZnJRdWVzdGlvbkhlYWRlcltsb2NhbGN0eC5PcE9iaiwg bG9jYWxjdHguUVR5cGVdICcsJw0KPiANCj4gLSAgICAgICAgICAgICAgICAoRjE9J2ZsYWdzJyAn PScgdmZyRGF0ZUZsYWdzICcsJyk/DQo+IA0KPiAtICAgICAgICAgICAgICAgIHZmclN0YXRlbWVu dFF1ZXN0aW9uT3B0aW9uTGlzdFtsb2NhbGN0eC5Ob2RlXQ0KPiANCj4gLSAgICAgICAgICAgICkN Cj4gDQo+IC0gICAgICAgICAgICB8DQo+IA0KPiAtICAgICAgICAgICAgKCAgICd5ZWFyJyAndmFy aWQnICc9JyBTdHJpbmdJZGVudGlmaWVyICcuJyBTdHJpbmdJZGVudGlmaWVyICcsJw0KPiANCj4g LSAgICAgICAgICAgICAgICAncHJvbXB0JyAnPScgJ1NUUklOR19UT0tFTicgJygnIE51bWJlciAn KScgJywnDQo+IA0KPiAtICAgICAgICAgICAgICAgICdoZWxwJyAnPScgJ1NUUklOR19UT0tFTicg JygnIE51bWJlciAnKScgJywnDQo+IA0KPiAtICAgICAgICAgICAgICAgIG1pbk1heERhdGVTdGVw RGVmYXVsdFtsb2NhbGN0eC5WYWwuZGF0ZSwgMF0NCj4gDQo+IC0gICAgICAgICAgICAgICAgJ21v bnRoJyAndmFyaWQnICc9JyBTdHJpbmdJZGVudGlmaWVyICcuJyBTdHJpbmdJZGVudGlmaWVyICcs Jw0KPiANCj4gLSAgICAgICAgICAgICAgICAncHJvbXB0JyAnPScgJ1NUUklOR19UT0tFTicgJygn IE51bWJlciAnKScgJywnDQo+IA0KPiAtICAgICAgICAgICAgICAgICdoZWxwJyAnPScgJ1NUUklO R19UT0tFTicgJygnIE51bWJlciAnKScgJywnDQo+IA0KPiAtICAgICAgICAgICAgICAgIG1pbk1h eERhdGVTdGVwRGVmYXVsdFtsb2NhbGN0eC5WYWwuZGF0ZSwgMV0NCj4gDQo+IC0gICAgICAgICAg ICAgICAgJ2RheScgJ3ZhcmlkJyAnPScgU3RyaW5nSWRlbnRpZmllciAnLicgU3RyaW5nSWRlbnRp ZmllciAnLCcNCj4gDQo+IC0gICAgICAgICAgICAgICAgJ3Byb21wdCcgJz0nICdTVFJJTkdfVE9L RU4nICcoJyBOdW1iZXIgJyknICcsJw0KPiANCj4gLSAgICAgICAgICAgICAgICAnaGVscCcgJz0n ICdTVFJJTkdfVE9LRU4nICcoJyBOdW1iZXIgJyknICcsJw0KPiANCj4gLSAgICAgICAgICAgICAg ICBtaW5NYXhEYXRlU3RlcERlZmF1bHRbbG9jYWxjdHguVmFsLmRhdGUsIDJdDQo+IA0KPiAtICAg ICAgICAgICAgICAgIChGMj0nZmxhZ3MnICc9JyB2ZnJEYXRlRmxhZ3MgJywnKT8NCj4gDQo+IC0g ICAgICAgICAgICAgICAgKHZmclN0YXRlbWVudEluY29uc2lzdGVudElmKSoNCj4gDQo+IC0gICAg ICAgICAgICApDQo+IA0KPiAtICAgICAgICApDQo+IA0KPiAtICAgICAgICAnZW5kZGF0ZScgJzsn DQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC1taW5NYXhEYXRlU3RlcERlZmF1bHRbRGF0 ZSwgS2V5VmFsdWVdDQo+IA0KPiAtICAgIDogICAnbWluaW11bScgJz0nIE51bWJlciAnLCcNCj4g DQo+IC0gICAgICAgICdtYXhpbXVtJyAnPScgTnVtYmVyICcsJw0KPiANCj4gLSAgICAgICAgKCdz dGVwJyAnPScgTnVtYmVyICcsJyk/DQo+IA0KPiAtICAgICAgICAoJ2RlZmF1bHQnICc9JyBOPU51 bWJlciAnLCcpPw0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtdmZyRGF0ZUZsYWdzDQo+ IA0KPiAtbG9jYWxzW0xGbGFncz0wXQ0KPiANCj4gLSAgICA6ICAgZGF0ZUZsYWdzRmllbGQgKCd8 JyBkYXRlRmxhZ3NGaWVsZCkqDQo+IA0KPiAtICAgIDsNCj4gDQo+IC1kYXRlRmxhZ3NGaWVsZA0K PiANCj4gLWxvY2Fsc1tMRmxhZz0wXQ0KPiANCj4gLSAgICA6ICAgTnVtYmVyDQo+IA0KPiAtICAg IHwgICAnWUVBUl9TVVBQUkVTUycNCj4gDQo+IC0gICAgfCAgICdNT05USF9TVVBQUkVTUycNCj4g DQo+IC0gICAgfCAgICdEQVlfU1VQUFJFU1MnDQo+IA0KPiAtICAgIHwgICAnU1RPUkFHRV9OT1JN QUwnDQo+IA0KPiAtICAgIHwgICAnU1RPUkFHRV9USU1FJw0KPiANCj4gLSAgICB8ICAgJ1NUT1JB R0VfV0FLRVVQJw0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtdmZyU3RhdGVtZW50VGlt ZQ0KPiANCj4gLWxvY2Fsc1tOb2RlPVZmclRyZWVOb2RlKEVGSV9JRlJfVElNRV9PUCksIE9wT2Jq PUNJZnJUaW1lKCksDQo+IFFUeXBlPUVGSV9RVUVTSU9OX1RZUEUuUVVFU1RJT05fVElNRSwgIFZh bD1FRklfSUZSX1RZUEVfVkFMVUUoKV0NCj4gDQo+IC0gICAgOiAgICd0aW1lJw0KPiANCj4gLSAg ICAgICAgKCAgICggICB2ZnJRdWVzdGlvbkhlYWRlcltsb2NhbGN0eC5PcE9iaiwgbG9jYWxjdHgu UVR5cGVdICcsJw0KPiANCj4gLSAgICAgICAgICAgICAgICAoRjE9J2ZsYWdzJyAnPScgdmZyVGlt ZUZsYWdzICcsJyk/DQo+IA0KPiAtICAgICAgICAgICAgICAgIHZmclN0YXRlbWVudFF1ZXN0aW9u T3B0aW9uTGlzdFtsb2NhbGN0eC5Ob2RlXQ0KPiANCj4gLSAgICAgICAgICAgICkNCj4gDQo+IC0g ICAgICAgICAgICB8DQo+IA0KPiAtICAgICAgICAgICAgKA0KPiANCj4gLSAgICAgICAgICAgICAg ICAnaG91cicgJ3ZhcmlkJyAnPScgU3RyaW5nSWRlbnRpZmllciAnLicgU3RyaW5nSWRlbnRpZmll ciAnLCcNCj4gDQo+IC0gICAgICAgICAgICAgICAgJ3Byb21wdCcgJz0nICdTVFJJTkdfVE9LRU4n ICcoJyBOdW1iZXIgJyknICcsJw0KPiANCj4gLSAgICAgICAgICAgICAgICAnaGVscCcgJz0nICdT VFJJTkdfVE9LRU4nICcoJyBOdW1iZXIgJyknICcsJw0KPiANCj4gLSAgICAgICAgICAgICAgICBt aW5NYXhUaW1lU3RlcERlZmF1bHRbbG9jYWxjdHguVmFsLnRpbWUsIDBdDQo+IA0KPiAtICAgICAg ICAgICAgICAgICdtaW51dGUnICd2YXJpZCcgJz0nIFN0cmluZ0lkZW50aWZpZXIgJy4nIFN0cmlu Z0lkZW50aWZpZXIgJywnDQo+IA0KPiAtICAgICAgICAgICAgICAgICdwcm9tcHQnICc9JyAnU1RS SU5HX1RPS0VOJyAnKCcgTnVtYmVyICcpJyAnLCcNCj4gDQo+IC0gICAgICAgICAgICAgICAgJ2hl bHAnICc9JyAnU1RSSU5HX1RPS0VOJyAnKCcgTnVtYmVyICcpJyAnLCcNCj4gDQo+IC0gICAgICAg ICAgICAgICAgbWluTWF4VGltZVN0ZXBEZWZhdWx0W2xvY2FsY3R4LlZhbC50aW1lLCAxXQ0KPiAN Cj4gLSAgICAgICAgICAgICAgICAnc2Vjb25kJyAndmFyaWQnICc9JyBTdHJpbmdJZGVudGlmaWVy ICcuJyBTdHJpbmdJZGVudGlmaWVyICcsJw0KPiANCj4gLSAgICAgICAgICAgICAgICAncHJvbXB0 JyAnPScgJ1NUUklOR19UT0tFTicgJygnIE51bWJlciAnKScgJywnDQo+IA0KPiAtICAgICAgICAg ICAgICAgICdoZWxwJyAnPScgJ1NUUklOR19UT0tFTicgJygnIE51bWJlciAnKScgJywnDQo+IA0K PiAtICAgICAgICAgICAgICAgIG1pbk1heFRpbWVTdGVwRGVmYXVsdFtsb2NhbGN0eC5WYWwudGlt ZSwgMl0NCj4gDQo+IC0gICAgICAgICAgICAgICAgKEYyPSdmbGFncycgJz0nIHZmclRpbWVGbGFn cyAnLCcpPw0KPiANCj4gLSAgICAgICAgICAgICAgICAodmZyU3RhdGVtZW50SW5jb25zaXN0ZW50 SWYpKg0KPiANCj4gLSAgICAgICAgICAgICkNCj4gDQo+IC0gICAgICAgICkNCj4gDQo+IC0gICAg ICAgICdlbmR0aW1lJyAnOycNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLW1pbk1heFRp bWVTdGVwRGVmYXVsdFtUaW1lLCBLZXlWYWx1ZV0NCj4gDQo+IC0gICAgOiAgICdtaW5pbXVtJyAn PScgTnVtYmVyICcsJw0KPiANCj4gLSAgICAgICAgJ21heGltdW0nICc9JyBOdW1iZXIgJywnDQo+ IA0KPiAtICAgICAgICAoJ3N0ZXAnICc9JyBOdW1iZXIgJywnKT8NCj4gDQo+IC0gICAgICAgICgn ZGVmYXVsdCcgJz0nIE49TnVtYmVyICcsJyk/DQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+ IC12ZnJUaW1lRmxhZ3MNCj4gDQo+IC1sb2NhbHNbTEZsYWdzPTBdDQo+IA0KPiAtICAgIDogICB0 aW1lRmxhZ3NGaWVsZCAoJ3wnIHRpbWVGbGFnc0ZpZWxkKSoNCj4gDQo+IC0gICAgOw0KPiANCj4g LQ0KPiANCj4gLXRpbWVGbGFnc0ZpZWxkDQo+IA0KPiAtbG9jYWxzW0xGbGFnPTBdDQo+IA0KPiAt ICAgIDogICBOdW1iZXINCj4gDQo+IC0gICAgfCAgICdIT1VSX1NVUFBSRVNTJw0KPiANCj4gLSAg ICB8ICAgJ01JTlVURV9TVVBQUkVTUycNCj4gDQo+IC0gICAgfCAgICdTRUNPTkRfU1VQUFJFU1Mn DQo+IA0KPiAtICAgIHwgICAnU1RPUkFHRV9OT1JNQUwnDQo+IA0KPiAtICAgIHwgICAnU1RPUkFH RV9USU1FJw0KPiANCj4gLSAgICB8ICAgJ1NUT1JBR0VfV0FLRVVQJw0KPiANCj4gLSAgICA7DQo+ IA0KPiAtDQo+IA0KPiAtdmZyU3RhdGVtZW50Q29uZGl0aW9uYWwNCj4gDQo+IC1sb2NhbHNbTm9k ZV0NCj4gDQo+IC0gICAgOiAgIHZmclN0YXRlbWVudERpc2FibGVJZlN0YXQNCj4gDQo+IC0gICAg fCAgIHZmclN0YXRlbWVudFN1cHByZXNzSWZTdGF0IC8vZW5oYW5jZSB0byBiZSBjb21wYXRpYmxl IGZvciBmcmFtZXdvcmsNCj4gZW5kaWYNCj4gDQo+IC0gICAgfCAgIHZmclN0YXRlbWVudEdyYXlP dXRJZlN0YXQNCj4gDQo+IC0gICAgfCAgIHZmclN0YXRlbWVudEluY29uc2lzdGVudElmU3RhdCAg IC8vdG8gYmUgY29tcGF0aWJsZSBmb3IgZnJhbWV3b3JrDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0N Cj4gDQo+IC0vLyBuZXcgc2VlbXMgdG8gYmUgdGhlIHNhbWUgYXMgdGhlIG9sZCwgd2h5IG5ldz8N Cj4gDQo+IC12ZnJTdGF0ZW1lbnRDb25kaXRpb25hbE5ldw0KPiANCj4gLWxvY2Fsc1tOb2RlXQ0K PiANCj4gLSAgICA6ICAgdmZyU3RhdGVtZW50RGlzYWJsZUlmU3RhdA0KPiANCj4gLSAgICAgICAg dmZyU3RhdGVtZW50U3VwcHJlc3NJZlN0YXROZXcNCj4gDQo+IC0gICAgICAgIHZmclN0YXRlbWVu dEdyYXlPdXRJZlN0YXROZXcNCj4gDQo+IC0gICAgICAgIHZmclN0YXRlbWVudEluY29uc2lzdGVu dElmU3RhdCAgIC8vdG8gYmUgY29tcGF0aWJsZSBmb3IgZnJhbWV3b3JrDQo+IA0KPiAtICAgIDsN Cj4gDQo+IC0NCj4gDQo+IC12ZnJTdGF0ZW1lbnRTdXBwcmVzc0lmU3RhdA0KPiANCj4gLWxvY2Fs c1tOb2RlXQ0KPiANCj4gLSAgICA6ICAgdmZyU3RhdGVtZW50U3VwcHJlc3NJZlN0YXROZXcNCj4g DQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmclN0YXRlbWVudEdyYXlPdXRJZlN0YXQNCj4g DQo+IC1sb2NhbHNbTm9kZV0NCj4gDQo+IC0gICAgOiAgIHZmclN0YXRlbWVudEdyYXlPdXRJZlN0 YXROZXcNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmclN0YXRlbWVudFN0YXRMaXN0 DQo+IA0KPiAtbG9jYWxzW05vZGVdDQo+IA0KPiAtICAgIDogICB2ZnJTdGF0ZW1lbnRTdGF0DQo+ IA0KPiAtICAgIHwgICB2ZnJTdGF0ZW1lbnRRdWVzdGlvbnMNCj4gDQo+IC0gICAgfCAgIHZmclN0 YXRlbWVudENvbmRpdGlvbmFsDQo+IA0KPiAtICAgIHwgICB2ZnJTdGF0ZW1lbnRMYWJlbA0KPiAN Cj4gLSAgICB8ICAgdmZyU3RhdGVtZW50RXh0ZW5zaW9uDQo+IA0KPiAtICAgIHwgICB2ZnJTdGF0 ZW1lbnRJbnZhbGlkDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC12ZnJTdGF0ZW1lbnRT dGF0TGlzdE9sZA0KPiANCj4gLSAgICA6ICAgdmZyU3RhdGVtZW50U3RhdA0KPiANCj4gLSAgICB8 ICAgdmZyU3RhdGVtZW50UXVlc3Rpb25zDQo+IA0KPiAtICAgIHwgICB2ZnJTdGF0ZW1lbnRMYWJl bA0KPiANCj4gLSAgLy8gSnVzdCBmb3IgZnJhbWV3b3JrIHZmciBjb21wYXRpYmlsaXR5DQo+IA0K PiAtICAgIHwgICB2ZnJTdGF0ZW1lbnRJbnZhbGlkDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4g DQo+IC12ZnJTdGF0ZW1lbnREaXNhYmxlSWZTdGF0DQo+IA0KPiAtbG9jYWxzW05vZGU9VmZyVHJl ZU5vZGUoRUZJX0lGUl9ESVNBQkxFX0lGX09QKV0NCj4gDQo+IC0gICAgOiAgICdkaXNhYmxlaWYn IHZmclN0YXRlbWVudEV4cHJlc3Npb24gJzsnDQo+IA0KPiAtICAgICAgICAodmZyU3RhdGVtZW50 U3RhdExpc3QpKg0KPiANCj4gLSAgICAgICAgJ2VuZGlmJyAnOycNCj4gDQo+IC0gICAgOw0KPiAN Cj4gLQ0KPiANCj4gLQ0KPiANCj4gLS8vIENvbXBhdGlibGUgZm9yIGZyYW1ld29yayB2ZnIgZmls ZQ0KPiANCj4gLS8vDQo+IA0KPiAtdmZyU3RhdGVtZW50Z3JheW91dElmU3VwcHJlc3NJZg0KPiAN Cj4gLSAgICA6ICAgJ3N1cHByZXNzaWYnDQo+IA0KPiAtICAgICAgICAoJ2ZsYWdzJyAnPScgZmxh Z3NGaWVsZCAoJ3wnIGZsYWdzRmllbGQpKiAnLCcpPw0KPiANCj4gLSAgICAgICAgdmZyU3RhdGVt ZW50RXhwcmVzc2lvbiAnOycNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmclN0YXRl bWVudHN1cHByZXNzSWZHcmF5T3V0SWYNCj4gDQo+IC0gICAgOiAgICdncmF5b3V0aWYnDQo+IA0K PiAtICAgICAgICAoJ2ZsYWdzJyAnPScgZmxhZ3NGaWVsZCAoJ3wnIGZsYWdzRmllbGQpKiAnLCcp Pw0KPiANCj4gLSAgICAgICAgdmZyU3RhdGVtZW50RXhwcmVzc2lvbiAnOycNCj4gDQo+IC0gICAg Ow0KPiANCj4gLQ0KPiANCj4gLXZmclN0YXRlbWVudFN1cHByZXNzSWZTdGF0TmV3DQo+IA0KPiAt bG9jYWxzW05vZGU9VmZyVHJlZU5vZGUoRUZJX0lGUl9TVVBQUkVTU19JRl9PUCldDQo+IA0KPiAt ICAgIDogICAnc3VwcHJlc3NpZicNCj4gDQo+IC0gICAgICAgICgnZmxhZ3MnICc9JyBmbGFnc0Zp ZWxkICgnfCcgZmxhZ3NGaWVsZCkqICcsJyk/DQo+IA0KPiAtICAgICAgICB2ZnJTdGF0ZW1lbnRF eHByZXNzaW9uICc7Jw0KPiANCj4gLSAgICAgICAgKHZmclN0YXRlbWVudFN0YXRMaXN0KSoNCj4g DQo+IC0gICAgICAgICdlbmRpZicgJzsnDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC12 ZnJTdGF0ZW1lbnRHcmF5T3V0SWZTdGF0TmV3DQo+IA0KPiAtbG9jYWxzW05vZGU9VmZyVHJlZU5v ZGUoRUZJX0lGUl9HUkFZX09VVF9JRl9PUCldDQo+IA0KPiAtICAgIDogICAnZ3JheW91dGlmJw0K PiANCj4gLSAgICAgICAgKCdmbGFncycgJz0nIGZsYWdzRmllbGQgKCd8JyBmbGFnc0ZpZWxkKSog JywnKT8NCj4gDQo+IC0gICAgICAgIHZmclN0YXRlbWVudEV4cHJlc3Npb24gJzsnDQo+IA0KPiAt ICAgICAgICAodmZyU3RhdGVtZW50U3RhdExpc3QpKg0KPiANCj4gLSAgICAgICAgJ2VuZGlmJyAn OycNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmclN0YXRlbWVudEluY29uc2lzdGVu dElmU3RhdA0KPiANCj4gLWxvY2Fsc1tOb2RlPVZmclRyZWVOb2RlKEVGSV9JRlJfSU5DT05TSVNU RU5UX0lGX09QKV0NCj4gDQo+IC0gICAgOiAgICdpbmNvbnNpc3RlbnRpZicNCj4gDQo+IC0gICAg ICAgICdwcm9tcHQnICc9JyAnU1RSSU5HX1RPS0VOJyAnKCcgTnVtYmVyICcpJyAnLCcNCj4gDQo+ IC0gICAgICAgICgnZmxhZ3MnICc9JyBmbGFnc0ZpZWxkICgnfCcgZmxhZ3NGaWVsZCkqICcsJyk/ DQo+IA0KPiAtICAgICAgICB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uDQo+IA0KPiAtICAgICAgICAn ZW5kaWYnICc7Jw0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtdmZyU3RhdGVtZW50SW52 YWxpZCAvLyBmb3IgY29tcGF0aWJpbGl0eQ0KPiANCj4gLSAgICA6ICAgdmZyU3RhdGVtZW50SW52 YWxpZEhpZGRlbg0KPiANCj4gLSAgICB8ICAgdmZyU3RhdGVtZW50SW52YWxpZEludmVudG9yeQ0K PiANCj4gLSAgICB8ICAgdmZyU3RhdGVtZW50SW52YWxpZFNhdmVSZXN0b3JlRGVmYXVsdHMNCj4g DQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmclN0YXRlbWVudEludmFsaWRIaWRkZW4NCj4g DQo+IC0gICAgOiAgICdoaWRkZW4nDQo+IA0KPiAtICAgICAgICAndmFsdWUnICc9JyBOdW1iZXIg JywnDQo+IA0KPiAtICAgICAgICAna2V5JyAnPScgTnVtYmVyICc7Jw0KPiANCj4gLSAgICA7DQo+ IA0KPiAtDQo+IA0KPiAtdmZyU3RhdGVtZW50SW52YWxpZEludmVudG9yeQ0KPiANCj4gLSAgICA6 ICAgJ2ludmVudG9yeScNCj4gDQo+IC0gICAgICAgICdoZWxwJyAnPScgJ1NUUklOR19UT0tFTicg JygnIE51bWJlciAnKScgJywnDQo+IA0KPiAtICAgICAgICAndGV4dCcgJz0nICdTVFJJTkdfVE9L RU4nICcoJyBOdW1iZXIgJyknICcsJw0KPiANCj4gLSAgICAgICAgKCd0ZXh0JyAnPScgJ1NUUklO R19UT0tFTicgJygnIE51bWJlciAnKScpPw0KPiANCj4gLSAgICAgICAgJzsnDQo+IA0KPiAtICAg IDsNCj4gDQo+IC0NCj4gDQo+IC12ZnJTdGF0ZW1lbnRJbnZhbGlkU2F2ZVJlc3RvcmVEZWZhdWx0 cw0KPiANCj4gLSAgICA6ICAgKCAgICdzYXZlJw0KPiANCj4gLSAgICAgICAgfCAgICdyZXN0b3Jl Jw0KPiANCj4gLSAgICAgICAgKQ0KPiANCj4gLSAgICAgICAgJ2RlZmF1bHRzJyAnLCcNCj4gDQo+ IC0gICAgICAgICdmb3JtaWQnICc9JyBOdW1iZXIgJywnDQo+IA0KPiAtICAgICAgICAncHJvbXB0 JyAnPScgJ1NUUklOR19UT0tFTicgJygnIE51bWJlciAnKScgJywnDQo+IA0KPiAtICAgICAgICAn aGVscCcgJz0nICdTVFJJTkdfVE9LRU4nICcoJyBOdW1iZXIgJyknDQo+IA0KPiAtICAgICAgICAo JywnICdmbGFncycgJz0nIGZsYWdzRmllbGQgKCd8JyBmbGFnc0ZpZWxkKSopPw0KPiANCj4gLSAg ICAgICAgKCcsJyAna2V5JyAnPScgTnVtYmVyKT8NCj4gDQo+IC0gICAgICAgICc7Jw0KPiANCj4g LSAgICA7DQo+IA0KPiAtdmZyU3RhdGVtZW50TGFiZWwNCj4gDQo+IC1sb2NhbHNbTm9kZT1WZnJU cmVlTm9kZShFRklfSUZSX0dVSURfT1ApXQ0KPiANCj4gLSAgICA6ICAgJ2xhYmVsJyBOdW1iZXIg JzsnDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC12ZnJTdGF0ZW1lbnRCYW5uZXIgLy8g SXMgVGltZU91dCBuZWVkZWQNCj4gDQo+IC1sb2NhbHNbTm9kZT1WZnJUcmVlTm9kZShFRklfSUZS X0dVSURfT1ApXQ0KPiANCj4gLSAgICA6ICAgJ2Jhbm5lcicgKCcsJyk/DQo+IA0KPiAtICAgICAg ICAndGl0bGUnICc9JyAnU1RSSU5HX1RPS0VOJyAnKCcgTnVtYmVyICcpJyAnLCcNCj4gDQo+IC0g ICAgICAgICggICAoICAgJ2xpbmUnIE51bWJlciAnLCcNCj4gDQo+IC0gICAgICAgICAgICAgICAg J2FsaWduJyAoJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnKSAnOycNCj4gDQo+IC0gICAgICAg ICAgICApDQo+IA0KPiAtICAgICAgICAgICAgfA0KPiANCj4gLSAgICAgICAgICAgICggICAndGlt ZW91dCcgJz0nIE51bWJlciAnOycNCj4gDQo+IC0gICAgICAgICAgICApDQo+IA0KPiAtICAgICAg ICApDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC12ZnJTdGF0ZW1lbnRFeHRlbnNpb24N Cj4gDQo+IC1sb2NhbHNbTm9kZT1WZnJUcmVlTm9kZShFRklfSUZSX0dVSURfT1ApLCBEYXRhQnVm ZiwgU2l6ZT0wLCBUeXBlTmFtZT0nJywNCj4gVHlwZVNpemU9MCwgSXNTdHJ1Y3Q9RmFsc2UsIEFy cmF5TnVtPTBdDQo+IA0KPiAtICAgIDogICAnZ3VpZG9wJw0KPiANCj4gLSAgICAgICAgJ2d1aWQn ICc9JyBndWlkRGVmaW5pdGlvbg0KPiANCj4gLSAgICAgICAgKCAgICcsJyBEPSdkYXRhdHlwZScg Jz0nDQo+IA0KPiAtICAgICAgICAgICAgKCAgICdVSU5UNjQnICgnWycgTnVtYmVyICddJyk/DQo+ IA0KPiAtICAgICAgICAgICAgfCAgICdVSU5UMzInICgnWycgTnVtYmVyICddJyk/DQo+IA0KPiAt ICAgICAgICAgICAgfCAgICdVSU5UMTYnICgnWycgTnVtYmVyICddJyk/DQo+IA0KPiAtICAgICAg ICAgICAgfCAgICdVSU5UOCcgKCdbJyBOdW1iZXIgJ10nKT8NCj4gDQo+IC0gICAgICAgICAgICB8 ICAgJ0JPT0xFQU4nICgnWycgTnVtYmVyICddJyk/DQo+IA0KPiAtICAgICAgICAgICAgfCAgICdF RklfU1RSSU5HX0lEJyAoJ1snIE51bWJlciAnXScpPw0KPiANCj4gLSAgICAgICAgICAgIHwgICAn RUZJX0hJSV9EQVRFJyAoJ1snIE51bWJlciAnXScpPw0KPiANCj4gLSAgICAgICAgICAgIHwgICAn RUZJX0hJSV9USU1FJyAoJ1snIE51bWJlciAnXScpPw0KPiANCj4gLSAgICAgICAgICAgIHwgICAn RUZJX0hJSV9SRUYnICgnWycgTnVtYmVyICddJyk/DQo+IA0KPiAtICAgICAgICAgICAgfCAgIFN0 cmluZ0lkZW50aWZpZXIgKCdbJyBOdW1iZXIgJ10nKT8NCj4gDQo+IC0gICAgICAgICAgICApDQo+ IA0KPiAtICAgICAgICAgICAgKHZmckV4dGVuc2lvbkRhdGFbbG9jYWxjdHguRGF0YUJ1ZmZdKSoN Cj4gDQo+IC0gICAgICAgICk/DQo+IA0KPiAtICAgICAgICAoDQo+IA0KPiAtICAgICAgICAgICAg JywnICh2ZnJTdGF0ZW1lbnRFeHRlbnNpb24pKg0KPiANCj4gLSAgICAgICAgICAgICdlbmRndWlk b3AnDQo+IA0KPiAtICAgICAgICApPw0KPiANCj4gLSAgICAgICAgJzsnDQo+IA0KPiAtICAgIDsN Cj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC12ZnJFeHRlbnNpb25EYXRhW0RhdGFCdWZmXQ0KPiAN Cj4gLWxvY2Fsc1tJc1N0cnVjdF0NCj4gDQo+IC0gICAgOiAgICcsJyAnZGF0YScgKCdbJyBOdW1i ZXIgJ10nKT8NCj4gDQo+IC0gICAgICAgICggJy4nIGFycmF5TmFtZSkqICAnPScgTj1OdW1iZXIN Cj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLXZmclN0YXRlbWVudE1vZGFs DQo+IA0KPiAtbG9jYWxzW05vZGVdDQo+IA0KPiAtICAgIDogdmZyTW9kYWxUYWcgJzsnDQo+IA0K PiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC12ZnJNb2RhbFRhZw0KPiANCj4gLWxvY2Fsc1tOb2Rl PVZmclRyZWVOb2RlKEVGSV9JRlJfTU9EQUxfVEFHX09QKV0NCj4gDQo+IC0gICAgOiAgICdtb2Rh bCcNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmclN0YXRlbWVudEV4cHJlc3Npb24N Cj4gDQo+IC1sb2NhbHNbRXhwSW5mbz1FeHByZXNzaW9uSW5mbygpXQ0KPiANCj4gLSAgICA6ICAg YW5kVGVybVtsb2NhbGN0eC5FeHBJbmZvXSAoJ09SJyBhbmRUZXJtW2xvY2FsY3R4LkV4cEluZm9d KSoNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmclN0YXRlbWVudEV4cHJlc3Npb25T dWINCj4gDQo+IC1sb2NhbHNbRXhwSW5mbz1FeHByZXNzaW9uSW5mbygpXQ0KPiANCj4gLSAgICA6 ICAgYW5kVGVybVtsb2NhbGN0eC5FeHBJbmZvXSAoJ09SJyBhbmRUZXJtW2xvY2FsY3R4LkV4cElu Zm9dKSoNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLWFuZFRlcm1bRXhwSW5mb10NCj4g DQo+IC1sb2NhbHNbQ0lmckFuZExpc3Q9W11dDQo+IA0KPiAtICAgIDogICBiaXR3aXNlb3JUZXJt W0V4cEluZm9dICgnQU5EJyBiaXR3aXNlb3JUZXJtW0V4cEluZm9dKSoNCj4gDQo+IC0gICAgOw0K PiANCj4gLQ0KPiANCj4gLWJpdHdpc2VvclRlcm1bRXhwSW5mb10NCj4gDQo+IC1sb2NhbHNbQ0lm ckJpdFdpc2VPckxpc3Q9W11dDQo+IA0KPiAtICAgIDogICBiaXR3aXNlYW5kVGVybVtFeHBJbmZv XSAoJ3wnIGJpdHdpc2VhbmRUZXJtW0V4cEluZm9dKSoNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0K PiANCj4gLQ0KPiANCj4gLWJpdHdpc2VhbmRUZXJtW0V4cEluZm9dDQo+IA0KPiAtbG9jYWxzW0NJ ZnJCaXRXaXNlQW5kTGlzdD1bXV0NCj4gDQo+IC0gICAgOiAgIGVxdWFsVGVybVtFeHBJbmZvXSAo JyYnIGVxdWFsVGVybVtFeHBJbmZvXSkqDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC0N Cj4gDQo+IC1lcXVhbFRlcm1bRXhwSW5mb10NCj4gDQo+IC1sb2NhbHNbQ0lmckVxdWFsTGlzdD1b XSwgQ0lmck5vdEVxdWFsTGlzdD1bXV0NCj4gDQo+IC0gICAgOiAgIGNvbXBhcmVUZXJtW2xvY2Fs Y3R4LkV4cEluZm9dDQo+IA0KPiAtICAgICAgICAoZXF1YWxUZXJtU3VwcGxlbWVudGFyeVtsb2Nh bGN0eC5DSWZyRXF1YWxMaXN0LA0KPiBsb2NhbGN0eC5DSWZyTm90RXF1YWxMaXN0LCBFeHBJbmZv XSkqDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1lcXVhbFRlcm1TdXBw bGVtZW50YXJ5W0NJZnJFcXVhbExpc3QsIENJZnJOb3RFcXVhbExpc3QsIEV4cEluZm9dDQo+IA0K PiAtICAgIDogICAoJz09JyBjb21wYXJlVGVybVtFeHBJbmZvXSkgICMgZXF1YWxUZXJtRXF1YWxS dWxlDQo+IA0KPiAtICAgICAgICB8DQo+IA0KPiAtICAgICAgICAoJyE9JyBjb21wYXJlVGVybVtF eHBJbmZvXSkgIyBlcXVhbFRlcm1Ob3RFcXVhbFJ1bGUNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0K PiANCj4gLWNvbXBhcmVUZXJtW0V4cEluZm9dDQo+IA0KPiAtbG9jYWxzW0NJZnJMZXNzVGhhbkxp c3Q9W10sIENJZnJMZXNzRXF1YWxMaXN0PVtdLCBDSWZyR3JlYXRlclRoYW5MaXN0PVtdLA0KPiBD SWZyR3JlYXRlckVxdWFsTGlzdD1bXV0NCj4gDQo+IC0gICAgOiAgIHNoaWZ0VGVybVtFeHBJbmZv XQ0KPiANCj4gLSAgICAgICAgKGNvbXBhcmVUZXJtU3VwcGxlbWVudGFyeVtsb2NhbGN0eC5DSWZy TGVzc1RoYW5MaXN0LA0KPiBsb2NhbGN0eC5DSWZyTGVzc0VxdWFsTGlzdCwgbG9jYWxjdHguQ0lm ckdyZWF0ZXJUaGFuTGlzdCwNCj4gbG9jYWxjdHguQ0lmckdyZWF0ZXJFcXVhbExpc3QsIEV4cElu Zm9dKSoNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLWNvbXBhcmVUZXJtU3VwcGxlbWVu dGFyeVtDSWZyTGVzc1RoYW5MaXN0LCBDSWZyTGVzc0VxdWFsTGlzdCwNCj4gQ0lmckdyZWF0ZXJU aGFuTGlzdCwgQ0lmckdyZWF0ZXJFcXVhbExpc3QsIEV4cEluZm9dDQo+IA0KPiAtICAgIDogICAo JzwnIHNoaWZ0VGVybVtFeHBJbmZvXSkgICAjIGNvbXBhcmVUZXJtTGVzc1J1bGUNCj4gDQo+IC0g ICAgICAgIHwNCj4gDQo+IC0gICAgICAgICgnPD0nIHNoaWZ0VGVybVtFeHBJbmZvXSkgICMgIGNv bXBhcmVUZXJtTGVzc0VxdWFsUnVsZQ0KPiANCj4gLSAgICAgICAgfA0KPiANCj4gLSAgICAgICAg KCc+JyBzaGlmdFRlcm1bRXhwSW5mb10pICAgIyAgY29tcGFyZVRlcm1HcmVhdGVyUnVsZQ0KPiAN Cj4gLSAgICAgICAgfA0KPiANCj4gLSAgICAgICAgKCc+PScgc2hpZnRUZXJtW0V4cEluZm9dKSAg IyAgY29tcGFyZVRlcm1HcmVhdGVyRXF1YWxSdWxlDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4g DQo+IC1zaGlmdFRlcm1bRXhwSW5mb10NCj4gDQo+IC1sb2NhbHNbQ0lmclNoaWZ0TGVmdExpc3Q9 W10sIENJZnJTaGlmdFJpZ2h0TGlzdD1bXV0NCj4gDQo+IC0gICAgOiAgIGFkZE1pbnVzVGVybVtF eHBJbmZvXQ0KPiANCj4gLSAgICAgICAgKHNoaWZ0VGVybVN1cHBsZW1lbnRhcnlbbG9jYWxjdHgu Q0lmclNoaWZ0TGVmdExpc3QsDQo+IGxvY2FsY3R4LkNJZnJTaGlmdFJpZ2h0TGlzdCwgRXhwSW5m b10pKg0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtc2hpZnRUZXJtU3VwcGxlbWVudGFy eVtDSWZyU2hpZnRMZWZ0TGlzdCwgQ0lmclNoaWZ0UmlnaHRMaXN0LCBFeHBJbmZvXQ0KPiANCj4g LSAgICA6ICAgKCc8PCcgYWRkTWludXNUZXJtW0V4cEluZm9dKSAgIyBzaGlmdFRlcm1MZWZ0DQo+ IA0KPiAtICAgICAgICB8DQo+IA0KPiAtICAgICAgICAoJz4+JyBhZGRNaW51c1Rlcm1bRXhwSW5m b10pICMgc2hpZnRUZXJtUmlnaHQNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLWFkZE1p bnVzVGVybVtFeHBJbmZvXQ0KPiANCj4gLWxvY2Fsc1tDSWZyQWRkTGlzdD1bXSwgQ0lmclN1YnRy YWN0TGlzdD1bXV0NCj4gDQo+IC0gICAgOiAgIG11bHRkaXZtb2RUZXJtW0V4cEluZm9dDQo+IA0K PiAtICAgICAgICAoYWRkTWludXNUZXJtU3VwcGxlbWVudGFyeVtsb2NhbGN0eC5DSWZyQWRkTGlz dCwNCj4gbG9jYWxjdHguQ0lmclN1YnRyYWN0TGlzdCwgRXhwSW5mb10pKg0KPiANCj4gLSAgICA7 DQo+IA0KPiAtDQo+IA0KPiAtYWRkTWludXNUZXJtU3VwcGxlbWVudGFyeVtDSWZyQWRkTGlzdCwg Q0lmclN1YnRyYWN0TGlzdCwgRXhwSW5mb10NCj4gDQo+IC0gICAgOiAgICgnKycgbXVsdGRpdm1v ZFRlcm1bRXhwSW5mb10pICMgYWRkTWludXNUZXJtcEFkZA0KPiANCj4gLSAgICAgICAgfA0KPiAN Cj4gLSAgICAgICAgKCctJyBtdWx0ZGl2bW9kVGVybVtFeHBJbmZvXSkgIyBhZGRNaW51c1Rlcm1T dWJ0cmFjdA0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtbXVsdGRpdm1vZFRlcm1bRXhw SW5mb10NCj4gDQo+IC1sb2NhbHNbQ0lmck11bHRpcGx5TGlzdD1bXSwgQ0lmckRpdmlkZUxpc3Q9 W10sIENJZnJNb2R1bG9MaXN0PVtdXQ0KPiANCj4gLSAgICA6ICAgY2FzdFRlcm1bRXhwSW5mb10N Cj4gDQo+IC0gICAgICAgIChtdWx0ZGl2bW9kVGVybVN1cHBsZW1lbnRhcnlbbG9jYWxjdHguQ0lm ck11bHRpcGx5TGlzdCwNCj4gbG9jYWxjdHguQ0lmckRpdmlkZUxpc3QsIGxvY2FsY3R4LkNJZnJN b2R1bG9MaXN0LCBFeHBJbmZvXSkqDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC1tdWx0 ZGl2bW9kVGVybVN1cHBsZW1lbnRhcnlbQ0lmck11bHRpcGx5TGlzdCwgQ0lmckRpdmlkZUxpc3Qs DQo+IENJZnJNb2R1bG9MaXN0LCBFeHBJbmZvXQ0KPiANCj4gLSAgICA6ICAgKCcqJyBjYXN0VGVy bVtFeHBJbmZvXSkgIyBtdWx0ZGl2bW9kVGVybU11bA0KPiANCj4gLSAgICAgICAgfA0KPiANCj4g LSAgICAgICAgKCcvJyBjYXN0VGVybVtFeHBJbmZvXSkgIyBtdWx0ZGl2bW9kVGVybURpdg0KPiAN Cj4gLSAgICAgICAgfA0KPiANCj4gLSAgICAgICAgKCclJyBjYXN0VGVybVtFeHBJbmZvXSkgIyBt dWx0ZGl2bW9kVGVybU1vZHVsbw0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtY2FzdFRl cm1bRXhwSW5mb10NCj4gDQo+IC1sb2NhbHNbVEJPYmo9Tm9uZSwgVFVPYmo9Tm9uZV0NCj4gDQo+ IC0gICAgOiAgICggICAnKCcNCj4gDQo+IC0gICAgICAgICAgICAoICAnQk9PTEVBTicNCj4gDQo+ IC0gICAgICAgICAgICB8ICAnVUlOVDY0Jw0KPiANCj4gLSAgICAgICAgICAgIHwgICdVSU5UMzIn DQo+IA0KPiAtICAgICAgICAgICAgfCAgJ1VJTlQxNicNCj4gDQo+IC0gICAgICAgICAgICB8ICAn VUlOVDgnDQo+IA0KPiAtICAgICAgICAgICAgKQ0KPiANCj4gLSAgICAgICAgICAgICcpJw0KPiAN Cj4gLSAgICAgICAgKSoNCj4gDQo+IC0gICAgICAgIGF0b21UZXJtW0V4cEluZm9dDQo+IA0KPiAt ICAgIDsNCj4gDQo+IC0NCj4gDQo+IC1hdG9tVGVybVtFeHBJbmZvXQ0KPiANCj4gLSAgICA6ICAg dmZyRXhwcmVzc2lvbkNhdGVuYXRlW0V4cEluZm9dDQo+IA0KPiAtICAgIHwgICB2ZnJFeHByZXNz aW9uTWF0Y2hbRXhwSW5mb10NCj4gDQo+IC0gICAgfCAgIHZmckV4cHJlc3Npb25NYXRjaDJbRXhw SW5mb10NCj4gDQo+IC0gICAgfCAgIHZmckV4cHJlc3Npb25QYXJlbltFeHBJbmZvXQ0KPiANCj4g LSAgICB8ICAgdmZyRXhwcmVzc2lvbkJ1aWxkSW5GdW5jdGlvbltFeHBJbmZvXQ0KPiANCj4gLSAg ICB8ICAgdmZyRXhwcmVzc2lvbkNvbnN0YW50W0V4cEluZm9dDQo+IA0KPiAtICAgIHwgICB2ZnJF eHByZXNzaW9uVW5hcnlPcFtFeHBJbmZvXQ0KPiANCj4gLSAgICB8ICAgdmZyRXhwcmVzc2lvblRl cm5hcnlPcFtFeHBJbmZvXQ0KPiANCj4gLSAgICB8ICAgdmZyRXhwcmVzc2lvbk1hcFtFeHBJbmZv XQ0KPiANCj4gLSAgICB8ICAgKCdOT1QnIGF0b21UZXJtW0V4cEluZm9dKQ0KPiANCj4gLSAgICB8 ICAgdmZyRXhwcmVzc2lvbk1hdGNoMltFeHBJbmZvXQ0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+ IA0KPiAtdmZyRXhwcmVzc2lvbkNhdGVuYXRlW0V4cEluZm9dDQo+IA0KPiAtbG9jYWxzW0NPYmo9 Tm9uZV0NCj4gDQo+IC0gICAgOiAgICdjYXRlbmF0ZScNCj4gDQo+IC0gICAgICAgICcoJyB2ZnJT dGF0ZW1lbnRFeHByZXNzaW9uU3ViICcsJyB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViICcpJw0K PiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtdmZyRXhwcmVzc2lvbk1hdGNoW0V4cEluZm9d DQo+IA0KPiAtbG9jYWxzW01PYmo9Tm9uZV0NCj4gDQo+IC0gICAgOiAgICdtYXRjaCcNCj4gDQo+ IC0gICAgICAgICcoJyB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViICcsJyB2ZnJTdGF0ZW1lbnRF eHByZXNzaW9uU3ViICcpJw0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtdmZyRXhwcmVz c2lvbk1hdGNoMltFeHBJbmZvXQ0KPiANCj4gLWxvY2Fsc1tNMk9iaj1Ob25lXQ0KPiANCj4gLSAg ICA6ICAgJ21hdGNoMicNCj4gDQo+IC0gICAgICAgICcoJyB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9u U3ViJywnDQo+IA0KPiAtICAgICAgICB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViICcsJw0KPiAN Cj4gLSAgICAgICAgZ3VpZERlZmluaXRpb24gJyknDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4g DQo+IC12ZnJFeHByZXNzaW9uUGFyZW5bRXhwSW5mb10NCj4gDQo+IC0gICAgOiAgICcoJyB2ZnJT dGF0ZW1lbnRFeHByZXNzaW9uU3ViICcpJw0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAt dmZyRXhwcmVzc2lvbkJ1aWxkSW5GdW5jdGlvbltFeHBJbmZvXQ0KPiANCj4gLSAgICA6ICAgZHVw RXhwW0V4cEluZm9dDQo+IA0KPiAtICAgIHwgICB2YXJlcXZhbEV4cFtFeHBJbmZvXQ0KPiANCj4g LSAgICB8ICAgaWRlcXZhbEV4cFtFeHBJbmZvXQ0KPiANCj4gLSAgICB8ICAgaWRlcWlkRXhwW0V4 cEluZm9dDQo+IA0KPiAtICAgIHwgICBpZGVxdmFsbGlzdEV4cFtFeHBJbmZvXQ0KPiANCj4gLSAg ICB8ICAgcXVlc3Rpb25yZWYxRXhwW0V4cEluZm9dDQo+IA0KPiAtICAgIHwgICBydWxlcmVmRXhw W0V4cEluZm9dDQo+IA0KPiAtICAgIHwgICBzdHJpbmdyZWYxRXhwW0V4cEluZm9dDQo+IA0KPiAt ICAgIHwgICBwdXNodGhpc0V4cFtFeHBJbmZvXQ0KPiANCj4gLSAgICB8ICAgc2VjdXJpdHlFeHBb RXhwSW5mb10NCj4gDQo+IC0gICAgfCAgIGdldEV4cFtFeHBJbmZvXQ0KPiANCj4gLSAgICA7DQo+ IA0KPiAtDQo+IA0KPiAtZHVwRXhwW0V4cEluZm9dDQo+IA0KPiAtbG9jYWxzW0RPYmo9Tm9uZV0N Cj4gDQo+IC0gICAgOiAgICdkdXAnDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC0NCj4g DQo+IC12YXJlcXZhbEV4cFtFeHBJbmZvXQ0KPiANCj4gLSAgICA6ICAgJ3ZhcmVxdmFsJw0KPiAN Cj4gLSAgICAgICAgJ3ZhcicgJygnIE51bWJlciAnKScNCj4gDQo+IC0gICAgICAgICggICAnPT0n IE51bWJlcg0KPiANCj4gLQkgICAgfCAgICc8PScgTnVtYmVyDQo+IA0KPiAtCSAgICB8ICAgJzwn IE51bWJlcg0KPiANCj4gLQkgICAgfCAgICc+PScgTnVtYmVyDQo+IA0KPiAtCSAgICB8ICAgJz4n IE51bWJlcg0KPiANCj4gLSAgICAgICAgKQ0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAt aWRlcXZhbEV4cFtFeHBJbmZvXQ0KPiANCj4gLSAgICA6ICAgST0naWRlcXZhbCcgdmZyUXVlc3Rp b25EYXRhRmllbGROYW1lDQo+IA0KPiAtICAgICAgICAoICAgJz09JyBOdW1iZXINCj4gDQo+IC0J ICAgIHwgICAnPD0nIE51bWJlcg0KPiANCj4gLQkgICAgfCAgICc8JyBOdW1iZXINCj4gDQo+IC0J ICAgIHwgICAnPj0nIE51bWJlcg0KPiANCj4gLQkgICAgfCAgICc+JyBOdW1iZXINCj4gDQo+IC0g ICAgICAgICkNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLWlkZXFpZEV4cFtFeHBJbmZv XQ0KPiANCj4gLSAgICA6ICAgST0naWRlcWlkJyB2ZnJRdWVzdGlvbkRhdGFGaWVsZE5hbWUNCj4g DQo+IC0gICAgICAgICggICBFPSc9PScgdmZyUXVlc3Rpb25EYXRhRmllbGROYW1lDQo+IA0KPiAt CSAgICB8ICAgTEU9Jzw9JyB2ZnJRdWVzdGlvbkRhdGFGaWVsZE5hbWUNCj4gDQo+IC0JICAgIHwg ICBMPSc8JyB2ZnJRdWVzdGlvbkRhdGFGaWVsZE5hbWUNCj4gDQo+IC0JICAgIHwgICBCRT0nPj0n IHZmclF1ZXN0aW9uRGF0YUZpZWxkTmFtZQ0KPiANCj4gLQkgICAgfCAgIEI9Jz4nIHZmclF1ZXN0 aW9uRGF0YUZpZWxkTmFtZQ0KPiANCj4gLSAgICAgICAgKQ0KPiANCj4gLSAgICA7DQo+IA0KPiAt DQo+IA0KPiAtaWRlcXZhbGxpc3RFeHBbRXhwSW5mb10NCj4gDQo+IC0gICAgOiAgICdpZGVxdmFs bGlzdCcgdmZyUXVlc3Rpb25EYXRhRmllbGROYW1lICc9PScgKE51bWJlcikrDQo+IA0KPiAtICAg IDsNCj4gDQo+IC0NCj4gDQo+IC12ZnJRdWVzdGlvbkRhdGFGaWVsZE5hbWUNCj4gDQo+IC1sb2Nh bHNbUUlkPUVGSV9RVUVTVElPTl9JRF9JTlZBTElELCBNYXNrPTAsIFZhcklkU3RyPScnLCBMaW5l PU5vbmVdDQo+IA0KPiAtICAgIDogICAoU04xPVN0cmluZ0lkZW50aWZpZXIgJ1snIEk9TnVtYmVy ICddJykgIyB2ZnJRdWVzdGlvbkRhdGFGaWVsZE5hbWVSdWxlMQ0KPiANCj4gLSAgICAgICAgfCAg IChTTjI9U3RyaW5nSWRlbnRpZmllciAoJy4nIGFycmF5TmFtZSkqKSAjDQo+IHZmclF1ZXN0aW9u RGF0YUZpZWxkTmFtZVJ1bGUyDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC1hcnJheU5h bWUNCj4gDQo+IC1sb2NhbHNbU3ViU3RyPScnLCBTdWJTdHJaPScnXQ0KPiANCj4gLSAgICA6IFN0 cmluZ0lkZW50aWZpZXIgKCdbJyBOPU51bWJlciAnXScpPw0KPiANCj4gLSAgICA7DQo+IA0KPiAt DQo+IA0KPiAtcXVlc3Rpb25yZWYxRXhwW0V4cEluZm9dDQo+IA0KPiAtICAgIDogICAncXVlc3Rp b25yZWYnDQo+IA0KPiAtICAgICAgICAnKCcgKCBTdHJpbmdJZGVudGlmaWVyIHwgTnVtYmVyICkg JyknDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC1ydWxlcmVmRXhwW0V4cEluZm9dDQo+ IA0KPiAtICAgIDogICAncnVsZXJlZicgJygnIFN0cmluZ0lkZW50aWZpZXIgJyknDQo+IA0KPiAt ICAgIDsNCj4gDQo+IC0NCj4gDQo+IC1zdHJpbmdyZWYxRXhwW0V4cEluZm9dDQo+IA0KPiAtICAg IDogICAnc3RyaW5ncmVmJyAnKCcNCj4gDQo+IC0gICAgICAgICgNCj4gDQo+IC0gICAgICAgICAg ICAnU1RSSU5HX1RPS0VOJyAnKCcgTnVtYmVyICcpJw0KPiANCj4gLSAgICAgICAgfCAgIE51bWJl cg0KPiANCj4gLSAgICAgICAgKQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAnKScNCj4g DQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXB1c2h0aGlzRXhwW0V4cEluZm9dDQo+IA0KPiAt ICAgIDogICAncHVzaHRoaXMnDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC1zZWN1cml0 eUV4cFtFeHBJbmZvXQ0KPiANCj4gLSAgICA6ICAgJ3NlY3VyaXR5JyAnKCcgZ3VpZERlZmluaXRp b24gJyknDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC1udW1lcmljVmFyU3RvcmVUeXBl DQo+IA0KPiAtbG9jYWxzW1ZhclR5cGVdDQo+IA0KPiAtICAgIDogICAnTlVNRVJJQ19TSVpFXzEn DQo+IA0KPiAtICAgIHwgICAnTlVNRVJJQ19TSVpFXzInDQo+IA0KPiAtICAgIHwgICAnTlVNRVJJ Q19TSVpFXzQnDQo+IA0KPiAtICAgIHwgICAnTlVNRVJJQ19TSVpFXzgnDQo+IA0KPiAtICAgIDsN Cj4gDQo+IC0NCj4gDQo+IC1nZXRFeHBbRXhwSW5mb10NCj4gDQo+IC1sb2NhbHNbQmFzZUluZm89 RUZJX1ZBUlNUT1JFX0lORk8oKSwgR09iaj1Ob25lXQ0KPiANCj4gLSAgICA6ICAgJ2dldCcgJygn IHZmclN0b3JhZ2VWYXJJZFtsb2NhbGN0eC5CYXNlSW5mbywgRmFsc2VdKCd8JyAnZmxhZ3MnICc9 Jw0KPiBudW1lcmljVmFyU3RvcmVUeXBlKT8gJyknDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4g DQo+IC12ZnJFeHByZXNzaW9uQ29uc3RhbnRbRXhwSW5mb10NCj4gDQo+IC0gICAgOiAgICdUUlVF Jw0KPiANCj4gLSAgICB8ICAgJ0ZBTFNFJw0KPiANCj4gLSAgICB8ICAgJ09ORScNCj4gDQo+IC0g ICAgfCAgICdPTkVTJw0KPiANCj4gLSAgICB8ICAgJ1pFUk8nDQo+IA0KPiAtICAgIHwgICAnVU5E RUZJTkVEJw0KPiANCj4gLSAgICB8ICAgJ1ZFUlNJT04nDQo+IA0KPiAtICAgIHwgICBOdW1iZXIN Cj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXZmckV4cHJlc3Npb25VbmFyeU9wW0V4cElu Zm9dDQo+IA0KPiAtICAgIDogICBsZW5ndGhFeHBbRXhwSW5mb10NCj4gDQo+IC0gICAgfCAgIGJp dHdpc2Vub3RFeHBbRXhwSW5mb10NCj4gDQo+IC0gICAgfCAgIHF1ZXN0aW9uMjNyZWZFeHBbRXhw SW5mb10NCj4gDQo+IC0gICAgfCAgIHN0cmluZ3JlZjJFeHBbRXhwSW5mb10NCj4gDQo+IC0gICAg fCAgIHRvYm9vbEV4cFtFeHBJbmZvXQ0KPiANCj4gLSAgICB8ICAgdG9zdHJpbmdFeHBbRXhwSW5m b10NCj4gDQo+IC0gICAgfCAgIHVuaW50RXhwW0V4cEluZm9dDQo+IA0KPiAtICAgIHwgICB0b3Vw cGVyRXhwW0V4cEluZm9dDQo+IA0KPiAtICAgIHwgICB0b2x3ZXJFeHBbRXhwSW5mb10NCj4gDQo+ IC0gICAgfCAgIHNldEV4cFtFeHBJbmZvXQ0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAt bGVuZ3RoRXhwW0V4cEluZm9dDQo+IA0KPiAtbG9jYWxzW0xPYmo9Tm9uZV0NCj4gDQo+IC0gICAg OiAgICdsZW5ndGgnICcoJyB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViICcpJw0KPiANCj4gLSAg ICA7DQo+IA0KPiAtDQo+IA0KPiAtYml0d2lzZW5vdEV4cFtFeHBJbmZvXQ0KPiANCj4gLWxvY2Fs c1tCV05PYmo9Tm9uZV0NCj4gDQo+IC0gICAgOiAgICd+JyAnKCcgdmZyU3RhdGVtZW50RXhwcmVz c2lvblN1YiAnKScNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXF1ZXN0aW9uMjNyZWZF eHBbRXhwSW5mb10NCj4gDQo+IC0gICAgOiAgICdxdWVzdGlvbnJlZnZhbCcNCj4gDQo+IC0gICAg ICAgICcoJw0KPiANCj4gLSAgICAgICAgKERldmljZVBhdGggJz0nICdTVFJJTkdfVE9LRU4nICco JyBOdW1iZXIgJyknICcsJyApPw0KPiANCj4gLSAgICAgICAgKFV1aWQgJz0nIGd1aWREZWZpbml0 aW9uICcsJyApPw0KPiANCj4gLSAgICAgICAgdmZyU3RhdGVtZW50RXhwcmVzc2lvblN1Yg0KPiAN Cj4gLSAgICAgICAgJyknDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC1zdHJpbmdyZWYy RXhwW0V4cEluZm9dDQo+IA0KPiAtbG9jYWxzW1NSMk9iaj1Ob25lXQ0KPiANCj4gLSAgICA6ICAg J3N0cmluZ3JlZnZhbCcgJygnIHZmclN0YXRlbWVudEV4cHJlc3Npb25TdWIgJyknDQo+IA0KPiAt ICAgIDsNCj4gDQo+IC0NCj4gDQo+IC10b2Jvb2xFeHBbRXhwSW5mb10NCj4gDQo+IC1sb2NhbHNb VEJPYmo9Tm9uZV0NCj4gDQo+IC0gICAgOiAgICdib29sdmFsJyAnKCcgdmZyU3RhdGVtZW50RXhw cmVzc2lvblN1YiAnKScNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXRvc3RyaW5nRXhw W0V4cEluZm9dDQo+IA0KPiAtbG9jYWxzW1RTT2JqPU5vbmVdDQo+IA0KPiAtICAgIDogICAnc3Ry aW5ndmFsJyAoJ2Zvcm1hdCcgJz0nIE51bWJlciAnLCcgKT8NCj4gDQo+IC0gICAgICAgICcoJyB2 ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViICcpJw0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0K PiAtdW5pbnRFeHBbRXhwSW5mb10NCj4gDQo+IC1sb2NhbHNbVFVPYmo9Tm9uZV0NCj4gDQo+IC0g ICAgOiAgICd1bmludHZhbCcgJygnIHZmclN0YXRlbWVudEV4cHJlc3Npb25TdWIgJyknDQo+IA0K PiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC10b3VwcGVyRXhwW0V4cEluZm9dDQo+IA0KPiAtbG9j YWxzW1RVT2JqPU5vbmVdDQo+IA0KPiAtICAgIDogICAndG91cHBlcicgJygnIHZmclN0YXRlbWVu dEV4cHJlc3Npb25TdWIgJyknDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC10b2x3ZXJF eHBbRXhwSW5mb10NCj4gDQo+IC1sb2NhbHNbVExPYmo9Tm9uZV0NCj4gDQo+IC0gICAgOiAgICd0 b2xvd2VyJyAnKCcgdmZyU3RhdGVtZW50RXhwcmVzc2lvblN1YiAnKScNCj4gDQo+IC0gICAgOw0K PiANCj4gLQ0KPiANCj4gLXNldEV4cFtFeHBJbmZvXQ0KPiANCj4gLWxvY2Fsc1tCYXNlSW5mbz1F RklfVkFSU1RPUkVfSU5GTygpLCBUU09iaj1Ob25lXQ0KPiANCj4gLSAgICA6ICAgJ3NldCcNCj4g DQo+IC0gICAgICAgICcoJw0KPiANCj4gLSAgICAgICAgdmZyU3RvcmFnZVZhcklkW2xvY2FsY3R4 LkJhc2VJbmZvLCBGYWxzZV0oJ3wnICdmbGFncycgJz0nDQo+IG51bWVyaWNWYXJTdG9yZVR5cGUp PyAnLCcNCj4gDQo+IC0gICAgICAgIHZmclN0YXRlbWVudEV4cHJlc3Npb25TdWINCj4gDQo+IC0g ICAgICAgICcpJw0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtdmZyRXhwcmVzc2lvblRl cm5hcnlPcFtFeHBJbmZvXQ0KPiANCj4gLSAgICA6ICAgY29uZGl0aW9uYWxFeHBbRXhwSW5mb10N Cj4gDQo+IC0gICAgfCAgIGZpbmRFeHBbRXhwSW5mb10NCj4gDQo+IC0gICAgfCAgIG1pZEV4cFtF eHBJbmZvXQ0KPiANCj4gLSAgICB8ICAgdG9rZW5FeHBbRXhwSW5mb10NCj4gDQo+IC0gICAgfCAg IHNwYW5FeHBbRXhwSW5mb10NCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLWNvbmRpdGlv bmFsRXhwW0V4cEluZm9dDQo+IA0KPiAtbG9jYWxzW0NPYmo9Tm9uZV0NCj4gDQo+IC0gICAgOiAg ICdjb25kJw0KPiANCj4gLSAgICAgICAgJygnDQo+IA0KPiAtICAgICAgICB2ZnJTdGF0ZW1lbnRF eHByZXNzaW9uU3ViIC8vDQo+IA0KPiAtICAgICAgICAnPycNCj4gDQo+IC0gICAgICAgIHZmclN0 YXRlbWVudEV4cHJlc3Npb25TdWIgLy8NCj4gDQo+IC0gICAgICAgICc6Jw0KPiANCj4gLSAgICAg ICAgdmZyU3RhdGVtZW50RXhwcmVzc2lvblN1YiAvLw0KPiANCj4gLSAgICAgICAgJyknDQo+IA0K PiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC1maW5kRXhwW0V4cEluZm9dDQo+IA0KPiAtbG9jYWxz W0ZPYmo9Tm9uZV0NCj4gDQo+IC0gICAgOiAgICdmaW5kJw0KPiANCj4gLSAgICAgICAgJygnDQo+ IA0KPiAtICAgICAgICBmaW5kRm9ybWF0W0V4cEluZm9dICgnfCcgZmluZEZvcm1hdFtFeHBJbmZv XSkqDQo+IA0KPiAtICAgICAgICAnLCcNCj4gDQo+IC0gICAgICAgIHZmclN0YXRlbWVudEV4cHJl c3Npb25TdWINCj4gDQo+IC0gICAgICAgICcsJw0KPiANCj4gLSAgICAgICAgdmZyU3RhdGVtZW50 RXhwcmVzc2lvblN1Yg0KPiANCj4gLSAgICAgICAgJywnDQo+IA0KPiAtICAgICAgICB2ZnJTdGF0 ZW1lbnRFeHByZXNzaW9uU3ViDQo+IA0KPiAtICAgICAgICAnKScNCj4gDQo+IC0gICAgOw0KPiAN Cj4gLQ0KPiANCj4gLWZpbmRGb3JtYXRbRXhwSW5mb10NCj4gDQo+IC1sb2NhbHNbRm9ybWF0PTBd DQo+IA0KPiAtICAgIDogICAnU0VOU0lUSVZFJyB8ICdJTlNFTlNJVElWRScNCj4gDQo+IC0gICAg Ow0KPiANCj4gLQ0KPiANCj4gLW1pZEV4cFtFeHBJbmZvXQ0KPiANCj4gLWxvY2Fsc1tNT2JqPU5v bmVdDQo+IA0KPiAtICAgIDogICAnbWlkJw0KPiANCj4gLSAgICAgICAgJygnDQo+IA0KPiAtICAg ICAgICB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViDQo+IA0KPiAtICAgICAgICAnLCcNCj4gDQo+ IC0gICAgICAgIHZmclN0YXRlbWVudEV4cHJlc3Npb25TdWINCj4gDQo+IC0gICAgICAgICcsJw0K PiANCj4gLSAgICAgICAgdmZyU3RhdGVtZW50RXhwcmVzc2lvblN1Yg0KPiANCj4gLSAgICAgICAg JyknDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC10b2tlbkV4cFtFeHBJbmZvXQ0KPiAN Cj4gLWxvY2Fsc1tUT2JqPU5vbmVdDQo+IA0KPiAtICAgIDogICAndG9rZW4nDQo+IA0KPiAtICAg ICAgICAnKCcNCj4gDQo+IC0gICAgICAgIHZmclN0YXRlbWVudEV4cHJlc3Npb25TdWINCj4gDQo+ IC0gICAgICAgICcsJw0KPiANCj4gLSAgICAgICAgdmZyU3RhdGVtZW50RXhwcmVzc2lvblN1Yg0K PiANCj4gLSAgICAgICAgJywnDQo+IA0KPiAtICAgICAgICB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9u U3ViDQo+IA0KPiAtICAgICAgICAnKScNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXNw YW5FeHBbRXhwSW5mb10NCj4gDQo+IC1sb2NhbHNbU09iaj1Ob25lXQ0KPiANCj4gLSAgICA6ICAg J3NwYW4nDQo+IA0KPiAtICAgICAgICAnKCcNCj4gDQo+IC0gICAgICAgICdmbGFncycgJz0nIHNw YW5GbGFncyAoJ3wnIHNwYW5GbGFncykqDQo+IA0KPiAtICAgICAgICAnLCcNCj4gDQo+IC0gICAg ICAgIHZmclN0YXRlbWVudEV4cHJlc3Npb25TdWINCj4gDQo+IC0gICAgICAgICcsJw0KPiANCj4g LSAgICAgICAgdmZyU3RhdGVtZW50RXhwcmVzc2lvblN1Yg0KPiANCj4gLSAgICAgICAgJywnDQo+ IA0KPiAtICAgICAgICB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViDQo+IA0KPiAtICAgICAgICAn KScNCj4gDQo+IC0gICAgOw0KPiANCj4gLQ0KPiANCj4gLXNwYW5GbGFncw0KPiANCj4gLWxvY2Fs c1tGbGFnPTBdDQo+IA0KPiAtICAgIDogICBOdW1iZXINCj4gDQo+IC0gICAgfCAgICdMQVNUX05P Tl9NQVRDSCcNCj4gDQo+IC0gICAgfCAgICdGSVJTVF9OT05fTUFUQ0gnDQo+IA0KPiAtICAgIDsN Cj4gDQo+IC0NCj4gDQo+IC12ZnJFeHByZXNzaW9uTWFwW0V4cEluZm9dDQo+IA0KPiAtbG9jYWxz W01PYmo9Tm9uZV0NCj4gDQo+IC0gICAgOiAgICdtYXAnDQo+IA0KPiAtICAgICAgICAnKCcNCj4g DQo+IC0gICAgICAgIHZmclN0YXRlbWVudEV4cHJlc3Npb25TdWINCj4gDQo+IC0gICAgICAgICc6 Jw0KPiANCj4gLSAgICAgICAgKCAgIHZmclN0YXRlbWVudEV4cHJlc3Npb24NCj4gDQo+IC0gICAg ICAgICAgICAnLCcNCj4gDQo+IC0gICAgICAgICAgICB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uDQo+ IA0KPiAtICAgICAgICAgICAgJzsnDQo+IA0KPiAtICAgICAgICApKg0KPiANCj4gLSAgICAgICAg JyknDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1EZWZpbmUgOicjZGVm aW5lJzsNCj4gDQo+IC1JbmNsdWRlIDogJyNpbmNsdWRlJzsNCj4gDQo+IC1Gb3JtUGtnVHlwZSA6 ICdmb3JtcGtndHlwZSc7DQo+IA0KPiAtT3BlbkJyYWNlIDogJ3snOw0KPiANCj4gLUNsb3NlQnJh Y2UgOiAnfSc7DQo+IA0KPiAtT3BlblBhcmVuIDogJygnOw0KPiANCj4gLUNsb3NlUGFyZW4gOiAn KSc7DQo+IA0KPiAtT3BlbkJyYWNrZXQgOiAnWyc7DQo+IA0KPiAtQ2xvc2VCcmFja2V0IDogJ10n Ow0KPiANCj4gLURvdCA6ICcuJzsNCj4gDQo+IC1OZWdhdGl2ZSA6ICctJzsNCj4gDQo+IC1Db2xv biA6ICc6JzsNCj4gDQo+IC1TbGFzaCA6ICcvJzsNCj4gDQo+IC1TZW1pY29sb24gOiAnOyc7DQo+ IA0KPiAtQ29tbWEgOiAnLCc7DQo+IA0KPiAtRXF1YWwgOiAnPT0nOw0KPiANCj4gLU5vdEVxdWFs IDogJyE9JzsNCj4gDQo+IC1MZXNzRXF1YWw6ICc8PSc7DQo+IA0KPiAtTGVzczonPCc7DQo+IA0K PiAtR3JlYXRlckVxdWFsOic+PSc7DQo+IA0KPiAtR3JlYXRlcjonPic7DQo+IA0KPiAtQml0V2lz ZU9yOiAnfCc7DQo+IA0KPiAtQml0V2lzZUFuZDogJyYnOw0KPiANCj4gLQ0KPiANCj4gLURldmlj ZVBhdGggOiAnZGV2aWNlcGF0aCc7DQo+IA0KPiAtRm9ybVNldCA6ICdmb3Jtc2V0JzsNCj4gDQo+ IC1Gb3JtU2V0SWQgOiAnZm9ybXNldGlkJzsNCj4gDQo+IC1FbmRGb3JtU2V0IDogJ2VuZGZvcm1z ZXQnOw0KPiANCj4gLVRpdGxlIDogJ3RpdGxlJzsNCj4gDQo+IC1Gb3JtSWQgOiAnZm9ybWlkJzsN Cj4gDQo+IC1PbmVPZiA6ICdvbmVvZic7DQo+IA0KPiAtRW5kT25lT2YgOiAnZW5kb25lb2YnOw0K PiANCj4gLVByb21wdCA6ICdwcm9tcHQnOw0KPiANCj4gLU9yZGVyZWRMaXN0IDogJ29yZGVyZWRs aXN0JzsNCj4gDQo+IC1NYXhDb250YWluZXJzIDogJ21heGNvbnRhaW5lcnMnOw0KPiANCj4gLUVu ZExpc3QgOiAnZW5kbGlzdCc7DQo+IA0KPiAtRW5kRm9ybSA6ICdlbmRmb3JtJzsNCj4gDQo+IC1G b3JtIDogJ2Zvcm0nOw0KPiANCj4gLUZvcm1NYXAgOiAnZm9ybW1hcCc7DQo+IA0KPiAtTWFwVGl0 bGUgOiAnbWFwdGl0bGUnOw0KPiANCj4gLU1hcEd1aWQgOiAnbWFwZ3VpZCc7DQo+IA0KPiAtU3Vi dGl0bGUgOiAnc3VidGl0bGUnOw0KPiANCj4gLUVuZFN1YnRpdGxlIDogJ2VuZHN1YnRpdGxlJzsN Cj4gDQo+IC1IZWxwIDogJ2hlbHAnOw0KPiANCj4gLVRleHQgOiAndGV4dCc7DQo+IA0KPiAtT3B0 aW9uIDogJ29wdGlvbic7DQo+IA0KPiAtRkxBR1MgOiAnZmxhZ3MnOw0KPiANCj4gLURhdGUgOiAn ZGF0ZSc7DQo+IA0KPiAtRW5kRGF0ZSA6ICdlbmRkYXRlJzsNCj4gDQo+IC1ZZWFyIDogJ3llYXIn Ow0KPiANCj4gLU1vbnRoIDogJ21vbnRoJzsNCj4gDQo+IC1EYXkgOiAnZGF5JzsNCj4gDQo+IC1U aW1lIDogJ3RpbWUnOw0KPiANCj4gLUVuZFRpbWUgOiAnZW5kdGltZSc7DQo+IA0KPiAtSG91ciA6 ICdob3VyJzsNCj4gDQo+IC1NaW51dGUgOiAnbWludXRlJzsNCj4gDQo+IC1TZWNvbmQgOiAnc2Vj b25kJzsNCj4gDQo+IC1HcmF5T3V0SWYgOiAnZ3JheW91dGlmJzsNCj4gDQo+IC1MYWJlbCA6ICds YWJlbCc7DQo+IA0KPiAtVGltZW91dCA6ICd0aW1lb3V0JzsNCj4gDQo+IC1JbnZlbnRvcnkgOiAn aW52ZW50b3J5JzsNCj4gDQo+IC1Ob25OdkRhdGFNYXAgOiAnX05PTl9OVl9EQVRBX01BUCc7DQo+ IA0KPiAtU3RydWN0IDogJ3N0cnVjdCc7DQo+IA0KPiAtVW5pb24gOiAndW5pb24nOw0KPiANCj4g LUJvb2xlYW4gOiAnQk9PTEVBTic7DQo+IA0KPiAtVWludDY0IDogJ1VJTlQ2NCc7DQo+IA0KPiAt VWludDMyIDogJ1VJTlQzMic7DQo+IA0KPiAtVWludDE2IDogJ1VJTlQxNic7DQo+IA0KPiAtVWlu dDggOidVSU5UOCc7DQo+IA0KPiAtRUZJX1NUUklOR19JRCA6J0VGSV9TVFJJTkdfSUQnOw0KPiAN Cj4gLUVGSV9ISUlfREFURSA6ICdFRklfSElJX0RBVEUnOw0KPiANCj4gLUVGSV9ISUlfVElNRSA6 ICdFRklfSElJX1RJTUUnOw0KPiANCj4gLUVGSV9ISUlfUkVGIDogJ0VGSV9ISUlfUkVGJzsNCj4g DQo+IC1VdWlkIDogJ2d1aWQnOw0KPiANCj4gLUNoZWNrQm94IDogJ2NoZWNrYm94JzsNCj4gDQo+ IC1FbmRDaGVja0JveCA6ICdlbmRjaGVja2JveCc7DQo+IA0KPiAtTnVtZXJpYyA6ICdudW1lcmlj JzsNCj4gDQo+IC1FbmROdW1lcmljIDogJ2VuZG51bWVyaWMnOw0KPiANCj4gLU1pbmltdW0gOiAn bWluaW11bSc7DQo+IA0KPiAtTWF4aW11bSA6ICdtYXhpbXVtJzsNCj4gDQo+IC1TdGVwIDogJ3N0 ZXAnOw0KPiANCj4gLURlZmF1bHQgOiAnZGVmYXVsdCc7DQo+IA0KPiAtUGFzc3dvcmQgOiAncGFz c3dvcmQnOw0KPiANCj4gLUVuZFBhc3N3b3JkIDogJ2VuZHBhc3N3b3JkJzsNCj4gDQo+IC1TdHJp bmcgOiAnc3RyaW5nJzsNCj4gDQo+IC1FbmRTdHJpbmcgOiAnZW5kc3RyaW5nJzsNCj4gDQo+IC1N aW5TaXplIDogJ21pbnNpemUnOw0KPiANCj4gLU1heFNpemUgOiAnbWF4c2l6ZSc7DQo+IA0KPiAt RW5jb2RpbmcgOiAnZW5jb2RpbmcnOw0KPiANCj4gLVN1cHByZXNzSWYgOiAnc3VwcHJlc3NpZic7 DQo+IA0KPiAtRGlzYWJsZUlmIDogJ2Rpc2FibGVpZic7DQo+IA0KPiAtSGlkZGVuIDogJ2hpZGRl bic7DQo+IA0KPiAtR290byA6ICdnb3RvJzsNCj4gDQo+IC1Gb3JtU2V0R3VpZCA6ICdmb3Jtc2V0 Z3VpZCc7DQo+IA0KPiAtSW5jb25zaXN0ZW50SWYgOiAnaW5jb25zaXN0ZW50aWYnOw0KPiANCj4g LVdhcm5pbmdJZiA6ICd3YXJuaW5naWYnOw0KPiANCj4gLU5vU3VibWl0SWYgOiAnbm9zdWJtaXRp Zic7DQo+IA0KPiAtRW5kSWYgOiAnZW5kaWYnOw0KPiANCj4gLUtleSA6ICdrZXknOw0KPiANCj4g LURlZmF1bHRGbGFnIDogJ0RFRkFVTFQnOw0KPiANCj4gLU1hbnVmYWN0dXJpbmdGbGFnIDogJ01B TlVGQUNUVVJJTkcnOw0KPiANCj4gLUNoZWNrQm94RGVmYXVsdEZsYWcgOiAnQ0hFQ0tCT1hfREVG QVVMVCc7DQo+IA0KPiAtQ2hlY2tCb3hEZWZhdWx0TWZnRmxhZyA6ICdDSEVDS0JPWF9ERUZBVUxU X01GRyc7DQo+IA0KPiAtSW50ZXJhY3RpdmVGbGFnIDogJ0lOVEVSQUNUSVZFJzsNCj4gDQo+IC1O VkFjY2Vzc0ZsYWcgOiAnTlZfQUNDRVNTJzsNCj4gDQo+IC1SZXNldFJlcXVpcmVkRmxhZyA6ICdS RVNFVF9SRVFVSVJFRCc7DQo+IA0KPiAtUmVjb25uZWN0UmVxdWlyZWRGbGFnIDogJ1JFQ09OTkVD VF9SRVFVSVJFRCc7DQo+IA0KPiAtTGF0ZUNoZWNrRmxhZyA6ICdMQVRFX0NIRUNLJzsNCj4gDQo+ IC1SZWFkT25seUZsYWcgOiAnUkVBRF9PTkxZJzsNCj4gDQo+IC1PcHRpb25Pbmx5RmxhZyA6ICdP UFRJT05TX09OTFknOw0KPiANCj4gLVJlc3RTdHlsZUZsYWcgOiAnUkVTVF9TVFlMRSc7DQo+IA0K PiAtQ2xhc3MgOiAnY2xhc3MnOw0KPiANCj4gLVN1YmNsYXNzIDogJ3N1YmNsYXNzJzsNCj4gDQo+ IC1DbGFzc0d1aWQgOiAnY2xhc3NndWlkJzsNCj4gDQo+IC1UeXBlRGVmIDogJ3R5cGVkZWYnOw0K PiANCj4gLVJlc3RvcmUgOiAncmVzdG9yZSc7DQo+IA0KPiAtU2F2ZSA6ICdzYXZlJzsNCj4gDQo+ IC1EZWZhdWx0cyA6ICdkZWZhdWx0cyc7DQo+IA0KPiAtQmFubmVyIDogICdiYW5uZXInOw0KPiAN Cj4gLUFsaWduIDogJ2FsaWduJzsNCj4gDQo+IC1MZWZ0IDogJ2xlZnQnOw0KPiANCj4gLVJpZ2h0 IDogJ3JpZ2h0JzsNCj4gDQo+IC1DZW50ZXIgOiAnY2VudGVyJzsNCj4gDQo+IC1MaW5lIDogJ2xp bmUnOw0KPiANCj4gLU5hbWUgOiAnbmFtZSc7DQo+IA0KPiAtDQo+IA0KPiAtVmFySWQ6ICd2YXJp ZCc7DQo+IA0KPiAtUXVlc3Rpb246ICdxdWVzdGlvbic7DQo+IA0KPiAtUXVlc3Rpb25JZDogJ3F1 ZXN0aW9uaWQnOw0KPiANCj4gLUltYWdlOiAnaW1hZ2UnOw0KPiANCj4gLUxvY2tlZDogJ2xvY2tl ZCc7DQo+IA0KPiAtUnVsZTogJ3J1bGUnOw0KPiANCj4gLUVuZFJ1bGU6ICdlbmRydWxlJzsNCj4g DQo+IC1WYWx1ZTogJ3ZhbHVlJzsNCj4gDQo+IC1SZWFkOiAncmVhZCc7DQo+IA0KPiAtV3JpdGU6 ICd3cml0ZSc7DQo+IA0KPiAtUmVzZXRCdXR0b246ICdyZXNldGJ1dHRvbic7DQo+IA0KPiAtRW5k UmVzZXRCdXR0b246ICdlbmRyZXNldGJ1dHRvbic7DQo+IA0KPiAtRGVmYXVsdFN0b3JlOiAnZGVm YXVsdHN0b3JlJzsNCj4gDQo+IC1BdHRyaWJ1dGU6ICdhdHRyaWJ1dGUnOw0KPiANCj4gLVZhcnN0 b3JlOiAndmFyc3RvcmUnOw0KPiANCj4gLUVmaXZhcnN0b3JlOiAnZWZpdmFyc3RvcmUnOw0KPiAN Cj4gLVZhclNpemU6ICd2YXJzaXplJzsNCj4gDQo+IC1OYW1lVmFsdWVWYXJTdG9yZTogJ25hbWV2 YWx1ZXZhcnN0b3JlJzsNCj4gDQo+IC1BY3Rpb246ICdhY3Rpb24nOw0KPiANCj4gLUNvbmZpZzog J2NvbmZpZyc7DQo+IA0KPiAtRW5kQWN0aW9uOiAnZW5kYWN0aW9uJzsNCj4gDQo+IC1SZWZyZXNo OiAncmVmcmVzaCc7DQo+IA0KPiAtSW50ZXJ2YWw6ICdpbnRlcnZhbCc7DQo+IA0KPiAtVmFyc3Rv cmVEZXZpY2U6ICd2YXJzdG9yZWRldmljZSc7DQo+IA0KPiAtR3VpZE9wOiAnZ3VpZG9wJzsNCj4g DQo+IC1FbmRHdWlkT3A6ICdlbmRndWlkb3AnOw0KPiANCj4gLURhdGFUeXBlOiAnZGF0YXR5cGUn Ow0KPiANCj4gLURhdGE6ICdkYXRhJzsNCj4gDQo+IC1Nb2RhbDogJ21vZGFsJzsNCj4gDQo+IC0N Cj4gDQo+IC0vLw0KPiANCj4gLS8vIERlZmluZSB0aGUgY2xhc3MgYW5kIHN1YmNsYXNzIHRva2Vu cw0KPiANCj4gLS8vDQo+IA0KPiAtLy8NCj4gDQo+IC1DbGFzc05vbkRldmljZTogJ05PTl9ERVZJ Q0UnOw0KPiANCj4gLUNsYXNzRGlza0RldmljZTogJ0RJU0tfREVWSUNFJzsNCj4gDQo+IC1DbGFz c1ZpZGVvRGV2aWNlOiAnVklERU9fREVWSUNFJzsNCj4gDQo+IC1DbGFzc05ldHdvcmtEZXZpY2U6 ICdORVRXT1JLX0RFVklDRSc7DQo+IA0KPiAtQ2xhc3NJbnB1dERldmljZTogJ0lOUFVUX0RFVklD RSc7DQo+IA0KPiAtQ2xhc3NPbkJvYXJkRGV2aWNlOiAnT05CT0FSRF9ERVZJQ0UnOw0KPiANCj4g LUNsYXNzT3RoZXJEZXZpY2U6ICdPVEhFUl9ERVZJQ0UnOw0KPiANCj4gLQ0KPiANCj4gLVN1YmNs YXNzU2V0dXBBcHBsaWNhdGlvbjogJ1NFVFVQX0FQUExJQ0FUSU9OJzsNCj4gDQo+IC1TdWJjbGFz c0dlbmVyYWxBcHBsaWNhdGlvbjogJ0dFTkVSQUxfQVBQTElDQVRJT04nOw0KPiANCj4gLVN1YmNs YXNzRnJvbnRQYWdlOiAnRlJPTlRfUEFHRSc7DQo+IA0KPiAtU3ViY2xhc3NTaW5nbGVVc2U6ICdT SU5HTEVfVVNFJzsNCj4gDQo+IC0NCj4gDQo+IC1ZZWFyU3VwcHByZXNzRmxhZzogJ1lFQVJfU1VQ UFJFU1MnOw0KPiANCj4gLU1vbnRoU3VwcHJlc3NGbGFnOiAnTU9OVEhfU1VQUFJFU1MnOw0KPiAN Cj4gLURheVN1cHByZXNzRmxhZzogJ0RBWV9TVVBQUkVTUyc7DQo+IA0KPiAtSG91clN1cHBwcmVz c0ZsYWc6ICdIT1VSX1NVUFBSRVNTJzsNCj4gDQo+IC1NaW51dGVTdXBwcmVzc0ZsYWc6ICdNSU5V VEVfU1VQUFJFU1MnOw0KPiANCj4gLVNlY29uZFN1cHByZXNzRmxhZzogJ1NFQ09ORF9TVVBQUkVT Uyc7DQo+IA0KPiAtU3RvcmFnZU5vcm1hbEZsYWc6ICdTVE9SQUdFX05PUk1BTCc7DQo+IA0KPiAt U3RvcmFnZVRpbWVGbGFnOiAnU1RPUkFHRV9USU1FJzsNCj4gDQo+IC1TdG9yYWdlV2FrZVVwRmxh ZzogJ1NUT1JBR0VfV0FLRVVQJzsNCj4gDQo+IC0NCj4gDQo+IC1VbmlRdWVGbGFnOiAnVU5JUVVF JzsNCj4gDQo+IC1Ob0VtcHR5RmxhZzogJ05PRU1QVFknOw0KPiANCj4gLQ0KPiANCj4gLUNvbmQ6 ICdjb25kJzsNCj4gDQo+IC1GaW5kOiAnZmluZCc7DQo+IA0KPiAtTWlkOiAnbWlkJzsNCj4gDQo+ IC1Ub2s6ICd0b2tlbic7DQo+IA0KPiAtU3BhbjogJ3NwYW4nOw0KPiANCj4gLQ0KPiANCj4gLS8v IFRoZSBzeW50YXggb2YgZXhwcmVzc2lvbg0KPiANCj4gLQ0KPiANCj4gLUR1cDogJ2R1cCc7DQo+ IA0KPiAtVmFyRXFWYWw6ICd2YXJlcXZhbCc7DQo+IA0KPiAtVmFyOiAndmFyJzsNCj4gDQo+IC1J ZEVxVmFsOiAnaWRlcXZhbCc7DQo+IA0KPiAtSWRFcUlkOiAnaWRlcWlkJzsNCj4gDQo+IC1JZEVx VmFsTGlzdDogJ2lkZXF2YWxsaXN0JzsNCj4gDQo+IC1RdWVzdGlvblJlZjogJ3F1ZXN0aW9ucmVm JzsNCj4gDQo+IC1SdWxlUmVmOiAncnVsZXJlZic7DQo+IA0KPiAtU3RyaW5nUmVmOiAnc3RyaW5n cmVmJzsNCj4gDQo+IC1QdXNoVGhpczogJ3B1c2h0aGlzJzsNCj4gDQo+IC1TZWN1cml0eTogJ3Nl Y3VyaXR5JzsNCj4gDQo+IC1HZXQ6ICdnZXQnOw0KPiANCj4gLVRydWVTeW1ib2w6ICdUUlVFJzsN Cj4gDQo+IC1GYWxzZVN5bWJvbDogJ0ZBTFNFJzsNCj4gDQo+IC1PbmU6ICdPTkUnOw0KPiANCj4g LU9uZXM6ICdPTkVTJzsNCj4gDQo+IC1aZXJvOiAnWkVSTyc7DQo+IA0KPiAtVW5kZWZpbmVkOiAn VU5ERUZJTkVEJzsNCj4gDQo+IC1WZXJzaW9uOiAnVkVSU0lPTic7DQo+IA0KPiAtTGVuZ3RoOiAn bGVuZ3RoJzsNCj4gDQo+IC1BTkQ6ICdBTkQnOw0KPiANCj4gLU9SOiAnT1InOw0KPiANCj4gLU5P VDogJ05PVCc7DQo+IA0KPiAtU2V0OiAnc2V0JzsNCj4gDQo+IC1CaXRXaXNlTm90OiAnfic7DQo+ IA0KPiAtQm9vbFZhbDogJ2Jvb2x2YWwnOw0KPiANCj4gLVN0cmluZ1ZhbDogJ3N0cmluZ3ZhbCc7 DQo+IA0KPiAtVW5JbnRWYWw6ICd1bmludHZhbCc7DQo+IA0KPiAtVG9VcHBlcjogJ3RvdXBwZXIn Ow0KPiANCj4gLVRvTG93ZXI6ICd0b2xvd2VyJzsNCj4gDQo+IC1NYXRjaDogJ21hdGNoJzsNCj4g DQo+IC1NYXRjaDI6ICdtYXRjaDInOw0KPiANCj4gLUNhdGVuYXRlOiAnY2F0ZW5hdGUnOw0KPiAN Cj4gLVF1ZXN0aW9uUmVmVmFsOiAncXVlc3Rpb25yZWZ2YWwnOw0KPiANCj4gLVN0cmluZ1JlZlZh bDogJ3N0cmluZ3JlZnZhbCc7DQo+IA0KPiAtTWFwOiAnbWFwJzsNCj4gDQo+IC1SZWZyZXNoR3Vp ZDogJ3JlZnJlc2hndWlkJzsNCj4gDQo+IC1TdHJpbmdUb2tlbjogJ1NUUklOR19UT0tFTic7DQo+ IA0KPiAtDQo+IA0KPiAtT3B0aW9uRGVmYXVsdDogJ09QVElPTl9ERUZBVUxUJzsNCj4gDQo+IC1P cHRpb25EZWZhdWx0TWZnOiAnT1BUSU9OX0RFRkFVTFRfTUZHJzsNCj4gDQo+IC0NCj4gDQo+IC1O dW1lcmljU2l6ZU9uZTogJ05VTUVSSUNfU0laRV8xJzsNCj4gDQo+IC1OdW1lcmljU2l6ZVR3bzog J05VTUVSSUNfU0laRV8yJzsNCj4gDQo+IC1OdW1lcmljU2l6ZUZvdXI6ICdOVU1FUklDX1NJWkVf NCc7DQo+IA0KPiAtTnVtZXJpY1NpemVFaWdodDogJ05VTUVSSUNfU0laRV84JzsNCj4gDQo+IC1E aXNQbGF5SW50RGVjOiAnRElTUExBWV9JTlRfREVDJzsNCj4gDQo+IC1EaXNQbGF5VUludERlYzog J0RJU1BMQVlfVUlOVF9ERUMnOw0KPiANCj4gLURpc1BsYXlVSW50SGV4OiAnRElTUExBWV9VSU5U X0hFWCc7DQo+IA0KPiAtDQo+IA0KPiAtSW5zZW5zaXRpdmU6ICAnSU5TRU5TSVRJVkUnOw0KPiAN Cj4gLVNlbnNpdGl2ZTogJ1NFTlNJVElWRSc7DQo+IA0KPiAtDQo+IA0KPiAtTGFzdE5vbk1hdGNo OiAnTEFTVF9OT05fTUFUQ0gnOw0KPiANCj4gLUZpcnN0Tm9uTWF0Y2g6ICdGSVJTVF9OT05fTUFU Q0gnOw0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLU51bWJlcg0KPiANCj4gLSAg ICA6ICAgKCcweCdbMC05QS1GYS1mXSspIHwgWzAtOV0rDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0N Cj4gDQo+IC1TdHJpbmdJZGVudGlmaWVyDQo+IA0KPiAtICAgIDogICBbQS1aYS16X11bQS1aYS16 XzAtOV0qDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC1Db21wbGV4RGVmaW5lDQo+IA0K PiAtICAgIDogICAnIycgV2hpdGVzcGFjZT8gJ2RlZmluZScgIH5bI1xyXG5dKg0KPiANCj4gLSAg ICAgICAgLT4gc2tpcA0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtTGlu ZURlZmluaXRpb24NCj4gDQo+IC0gICAgOiAgICcjJyBXaGl0ZXNwYWNlPyAnbGluZScgIH5bI1xy XG5dKg0KPiANCj4gLSAgICAgICAgLT4gc2tpcA0KPiANCj4gLSAgICA7DQo+IA0KPiAtDQo+IA0K PiAtSW5jbHVkZURlZmluaXRpb24NCj4gDQo+IC0gICAgOiAgICcjJyBXaGl0ZXNwYWNlPyAnaW5j bHVkZScgIH5bI1xyXG5dKg0KPiANCj4gLSAgICAgICAgLT4gc2tpcA0KPiANCj4gLSAgICA7DQo+ IA0KPiAtDQo+IA0KPiAtV2hpdGVzcGFjZQ0KPiANCj4gLSAgICA6ICAgWyBcdF0rDQo+IA0KPiAt ICAgICAgICAtPiBza2lwDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC1OZXdsaW5lDQo+ IA0KPiAtICAgIDogICAoICAgJ1xyJyAnXG4nPw0KPiANCj4gLSAgICAgICAgfCAgICdcbicNCj4g DQo+IC0gICAgICAgICkNCj4gDQo+IC0gICAgICAgIC0+IHNraXANCj4gDQo+IC0gICAgOw0KPiAN Cj4gLQ0KPiANCj4gLUxpbmVDb21tZW50DQo+IA0KPiAtICAgIDogICAnLy8nIH5bXHJcbl0qDQo+ IA0KPiAtICAgICAgICAtPiBza2lwDQo+IA0KPiAtICAgIDsNCj4gDQo+IC0NCj4gDQo+IC0vLyBT a2lwIG92ZXIgJ2V4dGVybicgaW4gYW55IGluY2x1ZGVkIC5IIGZpbGUNCj4gDQo+IC1FeHRlcm4N Cj4gDQo+IC0gICAgOiAnZXh0ZXJuJyB+WyNcclxuXSoNCj4gDQo+IC0gICAgICAgIC0+IHNraXAN Cj4gDQo+IC0gICAgOw0KPiANCj4gXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQo+ICsvLy8v IEBmaWxlDQo+ICsvLyB2ZnIgc3ludGF4DQo+ICsvLw0KPiArLy8gQ29weXJpZ2h0IChjKSAyMDIy LSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArLy8gU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gKy8vLy8NCj4gK2dy YW1tYXIgVmZyU3ludGF4Ow0KPiArb3B0aW9ucyB7DQo+ICsgICAgbGFuZ3VhZ2U9UHl0aG9uOw0K PiArfQ0KPiArQGhlYWRlcnsNCj4gKw0KPiArZnJvbSBWZnJDb21waWxlci5JZnJDdHlwZXMgaW1w b3J0ICoNCj4gK2Zyb20gVmZyQ29tcGlsZXIuSWZyRm9ybVBrZyBpbXBvcnQgKg0KPiArZnJvbSBW ZnJDb21waWxlci5JZnJVdGlsaXR5IGltcG9ydCAqDQo+ICtmcm9tIFZmckNvbXBpbGVyLklmclRy ZWUgaW1wb3J0ICoNCj4gK2Zyb20gVmZyQ29tcGlsZXIuSWZyRXJyb3IgaW1wb3J0ICoNCj4gK2Zy b20gVmZyQ29tcGlsZXIuSWZyUHJlUHJvY2VzcyBpbXBvcnQgKg0KPiArfQ0KPiArDQo+ICt2ZnJQ cm9ncmFtDQo+ICsgICAgOiAgICh2ZnJQcmFnbWFQYWNrRGVmaW5pdGlvbiB8IHZmckRhdGFTdHJ1 Y3REZWZpbml0aW9uIHwNCj4gdmZyRGF0YVVuaW9uRGVmaW5pdGlvbikqIHZmckZvcm1TZXREZWZp bml0aW9uPw0KPiArICAgIDsNCj4gKw0KPiArcHJhZ21hUGFja1Nob3dEZWYNCj4gKyAgICA6ICAg J3Nob3cnDQo+ICsgICAgOw0KPiArDQo+ICtwcmFnbWFQYWNrU3RhY2tEZWYNCj4gKyAgICA6ICAg KCdwdXNoJyB8ICdwb3AnKSAgKCcsJyBTdHJpbmdJZGVudGlmaWVyKT8gKCcsJyBOdW1iZXIpPw0K PiArICAgIDsNCj4gKw0KPiArcHJhZ21hUGFja051bWJlcg0KPiArICAgIDogICBOdW1iZXI/DQo+ ICsgICAgOw0KPiArDQo+ICt2ZnJQcmFnbWFQYWNrRGVmaW5pdGlvbg0KPiArICAgIDogICAnI3By YWdtYScgJ3BhY2snICcoJw0KPiArICAgICAgICAoICAgcHJhZ21hUGFja1Nob3dEZWYNCj4gKyAg ICAgICAgfCAgIHByYWdtYVBhY2tTdGFja0RlZg0KPiArICAgICAgICB8ICAgcHJhZ21hUGFja051 bWJlcg0KPiArICAgICAgICApPw0KPiArICAgICcpJw0KPiArICAgIDsNCj4gKw0KPiArdmZyRGF0 YVN0cnVjdERlZmluaXRpb24NCj4gKyAgICA6ICAgKFR5cGVEZWYpPyBTdHJ1Y3QgTm9uTnZEYXRh TWFwPyBOMT1TdHJpbmdJZGVudGlmaWVyPyAneycNCj4gdmZyRGF0YVN0cnVjdEZpZWxkc1tGYWxz ZV0gJ30nICBOMj1TdHJpbmdJZGVudGlmaWVyPyAnOycNCj4gKyAgICA7DQo+ICsNCj4gK3ZmckRh dGFVbmlvbkRlZmluaXRpb24NCj4gKyAgICA6ICAgKFR5cGVEZWYpPyBVbmlvbiBOb25OdkRhdGFN YXA/IE4xPVN0cmluZ0lkZW50aWZpZXI/ICd7Jw0KPiB2ZnJEYXRhU3RydWN0RmllbGRzW1RydWVd J30nIE4yPVN0cmluZ0lkZW50aWZpZXI/ICc7Jw0KPiArICAgIDsNCj4gKw0KPiArdmZyRGF0YVN0 cnVjdEZpZWxkc1tGaWVsZEluVW5pb25dDQo+ICsgICAgOg0KPiArICAgICggICBkYXRhU3RydWN0 RmllbGQ2NFtGaWVsZEluVW5pb25dDQo+ICsgICAgfCAgIGRhdGFTdHJ1Y3RGaWVsZDMyW0ZpZWxk SW5Vbmlvbl0NCj4gKyAgICB8ICAgZGF0YVN0cnVjdEZpZWxkMTZbRmllbGRJblVuaW9uXQ0KPiAr ICAgIHwgICBkYXRhU3RydWN0RmllbGQ4W0ZpZWxkSW5Vbmlvbl0NCj4gKyAgICB8ICAgZGF0YVN0 cnVjdEZpZWxkQm9vbFtGaWVsZEluVW5pb25dDQo+ICsgICAgfCAgIGRhdGFTdHJ1Y3RGaWVsZFN0 cmluZ1tGaWVsZEluVW5pb25dDQo+ICsgICAgfCAgIGRhdGFTdHJ1Y3RGaWVsZERhdGVbRmllbGRJ blVuaW9uXQ0KPiArICAgIHwgICBkYXRhU3RydWN0RmllbGRUaW1lW0ZpZWxkSW5Vbmlvbl0NCj4g KyAgICB8ICAgZGF0YVN0cnVjdEZpZWxkUmVmW0ZpZWxkSW5Vbmlvbl0NCj4gKyAgICB8ICAgZGF0 YVN0cnVjdEZpZWxkVXNlcltGaWVsZEluVW5pb25dDQo+ICsgICAgfCAgIGRhdGFTdHJ1Y3RCaXRG aWVsZDY0W0ZpZWxkSW5Vbmlvbl0NCj4gKyAgICB8ICAgZGF0YVN0cnVjdEJpdEZpZWxkMzJbRmll bGRJblVuaW9uXQ0KPiArICAgIHwgICBkYXRhU3RydWN0Qml0RmllbGQxNltGaWVsZEluVW5pb25d DQo+ICsgICAgfCAgIGRhdGFTdHJ1Y3RCaXRGaWVsZDhbRmllbGRJblVuaW9uXQ0KPiArICAgICkq DQo+ICsgICAgOw0KPiArDQo+ICtkYXRhU3RydWN0RmllbGQ2NFtGaWVsZEluVW5pb25dDQo+ICsg ICAgOiAgICdVSU5UNjQnIE49U3RyaW5nSWRlbnRpZmllciAoJ1snIE51bWJlciAnXScpPyAnOycN Cj4gKyAgICA7DQo+ICsNCj4gK2RhdGFTdHJ1Y3RGaWVsZDMyW0ZpZWxkSW5Vbmlvbl0NCj4gKyAg ICA6ICAgJ1VJTlQzMicgTj1TdHJpbmdJZGVudGlmaWVyICgnWycgTnVtYmVyICddJyk/ICc7Jw0K PiArICAgIDsNCj4gKw0KPiArZGF0YVN0cnVjdEZpZWxkMTZbRmllbGRJblVuaW9uXQ0KPiArICAg IDogICAnVUlOVDE2JyBOPVN0cmluZ0lkZW50aWZpZXIgKCdbJyBOdW1iZXIgJ10nKT8gJzsnDQo+ ICsgICAgOw0KPiArDQo+ICtkYXRhU3RydWN0RmllbGQ4W0ZpZWxkSW5Vbmlvbl0NCj4gKyAgICA6 ICAgJ1VJTlQ4JyBOPVN0cmluZ0lkZW50aWZpZXIgKCdbJyBOdW1iZXIgJ10nKT8gJzsnDQo+ICsg ICAgOw0KPiArDQo+ICtkYXRhU3RydWN0RmllbGRCb29sW0ZpZWxkSW5Vbmlvbl0NCj4gKyAgICA6 ICAgJ0JPT0xFQU4nIE49U3RyaW5nSWRlbnRpZmllciAoJ1snIE51bWJlciAnXScpPyAnOycNCj4g KyAgICA7DQo+ICsNCj4gK2RhdGFTdHJ1Y3RGaWVsZFN0cmluZ1tGaWVsZEluVW5pb25dDQo+ICsg ICAgOiAgICdFRklfU1RSSU5HX0lEJyBOPVN0cmluZ0lkZW50aWZpZXIgKCdbJyBOdW1iZXIgJ10n KT8gJzsnDQo+ICsgICAgOw0KPiArDQo+ICtkYXRhU3RydWN0RmllbGREYXRlW0ZpZWxkSW5Vbmlv bl0NCj4gKyAgICA6ICAgJ0VGSV9ISUlfREFURScgTj1TdHJpbmdJZGVudGlmaWVyICgnWycgTnVt YmVyICddJyk/ICc7Jw0KPiArICAgIDsNCj4gKw0KPiArZGF0YVN0cnVjdEZpZWxkVGltZVtGaWVs ZEluVW5pb25dDQo+ICsgICAgOiAgICdFRklfSElJX1RJTUUnIE49U3RyaW5nSWRlbnRpZmllciAo J1snIE51bWJlciAnXScpPyAnOycNCj4gKyAgICA7DQo+ICsNCj4gK2RhdGFTdHJ1Y3RGaWVsZFJl ZltGaWVsZEluVW5pb25dDQo+ICsgICAgOiAgICdFRklfSElJX1JFRicgTj1TdHJpbmdJZGVudGlm aWVyICgnWycgTnVtYmVyICddJyk/ICc7Jw0KPiArICAgIDsNCj4gKw0KPiArZGF0YVN0cnVjdEZp ZWxkVXNlcltGaWVsZEluVW5pb25dDQo+ICsgICAgOiAgIFQ9U3RyaW5nSWRlbnRpZmllciBOPVN0 cmluZ0lkZW50aWZpZXIgKCdbJyBOdW1iZXIgJ10nKT8gJzsnDQo+ICsgICAgOw0KPiArDQo+ICtk YXRhU3RydWN0Qml0RmllbGQ2NFtGaWVsZEluVW5pb25dDQo+ICsgICAgOiAgIEQ9J1VJTlQ2NCcg IE49U3RyaW5nSWRlbnRpZmllcj8gJzonIE51bWJlciAnOycNCj4gKyAgICA7DQo+ICtkYXRhU3Ry dWN0Qml0RmllbGQzMltGaWVsZEluVW5pb25dDQo+ICsgICAgOiAgIEQ9J1VJTlQzMicgTj1TdHJp bmdJZGVudGlmaWVyPyAnOicgTnVtYmVyICc7Jw0KPiArICAgIDsNCj4gK2RhdGFTdHJ1Y3RCaXRG aWVsZDE2W0ZpZWxkSW5Vbmlvbl0NCj4gKyAgICA6ICAgRD0nVUlOVDE2JyBOPVN0cmluZ0lkZW50 aWZpZXI/ICc6JyBOdW1iZXIgJzsnDQo+ICsgICAgOw0KPiArZGF0YVN0cnVjdEJpdEZpZWxkOFtG aWVsZEluVW5pb25dDQo+ICsgICAgOiAgIEQ9J1VJTlQ4JyBOPVN0cmluZ0lkZW50aWZpZXI/ICc6 JyBOdW1iZXIgJzsnDQo+ICsgICAgOw0KPiArDQo+ICsvLyBWRlIgRm9ybVNldCBEZWZpbml0aW9u DQo+ICt2ZnJGb3JtU2V0RGVmaW5pdGlvbg0KPiArbG9jYWxzW05vZGU9SWZyVHJlZU5vZGUoRUZJ X0lGUl9GT1JNX1NFVF9PUCldDQo+ICsgICAgOiAgICdmb3Jtc2V0Jw0KPiArICAgICAgICAnZ3Vp ZCcgJz0nIGd1aWREZWZpbml0aW9uICcsJw0KPiArICAgICAgICAndGl0bGUnICc9JyAnU1RSSU5H X1RPS0VOJyAnKCcgTnVtYmVyICcpJyAnLCcNCj4gKyAgICAgICAgJ2hlbHAnICc9JyAnU1RSSU5H X1RPS0VOJyAnKCcgTnVtYmVyICcpJyAnLCcNCj4gKyAgICAgICAgKCdjbGFzc2d1aWQnICc9JyBj bGFzc2d1aWREZWZpbml0aW9uW2xvY2FsY3R4Lk5vZGVdICcsJyk/DQo+ICsgICAgICAgICgnY2xh c3MnICc9JyBjbGFzc0RlZmluaXRpb24gJywnKT8NCj4gKyAgICAgICAgKCdzdWJjbGFzcycgJz0n IHN1YmNsYXNzRGVmaW5pdGlvbiAnLCcpPw0KPiArICAgICAgICB2ZnJGb3JtU2V0TGlzdFtsb2Nh bGN0eC5Ob2RlXQ0KPiArICAgICAgICAnZW5kZm9ybXNldCcgJzsnDQo+ICsgICAgOw0KPiArDQo+ ICtjbGFzc2d1aWREZWZpbml0aW9uW05vZGVdDQo+ICtsb2NhbHNbR3VpZExpc3Q9W11dDQo+ICsg ICAgOiAgIGd1aWREZWZpbml0aW9uICgnfCcgZ3VpZERlZmluaXRpb24pPyAoJ3wnIGd1aWREZWZp bml0aW9uKT8oJ3wnDQo+IGd1aWREZWZpbml0aW9uKT8NCj4gKyAgICA7DQo+ICsNCj4gK2NsYXNz RGVmaW5pdGlvbg0KPiArbG9jYWxzW05vZGU9SWZyVHJlZU5vZGUoRUZJX0lGUl9HVUlEX09QKV0N Cj4gKyAgICA6ICAgdmFsaWRDbGFzc05hbWVzICgnfCcgdmFsaWRDbGFzc05hbWVzKSoNCj4gKyAg ICA7DQo+ICsNCj4gK3ZhbGlkQ2xhc3NOYW1lcw0KPiArbG9jYWxzW0NsYXNzTmFtZT0wXQ0KPiAr ICAgIDogICBDbGFzc05vbkRldmljZQ0KPiArICAgIHwgICBDbGFzc0Rpc2tEZXZpY2UNCj4gKyAg ICB8ICAgQ2xhc3NWaWRlb0RldmljZQ0KPiArICAgIHwgICBDbGFzc05ldHdvcmtEZXZpY2UNCj4g KyAgICB8ICAgQ2xhc3NJbnB1dERldmljZQ0KPiArICAgIHwgICBDbGFzc09uQm9hcmREZXZpY2UN Cj4gKyAgICB8ICAgQ2xhc3NPdGhlckRldmljZQ0KPiArICAgIHwgICBOdW1iZXINCj4gKyAgICA7 DQo+ICsNCj4gK3N1YmNsYXNzRGVmaW5pdGlvbg0KPiArbG9jYWxzW05vZGU9SWZyVHJlZU5vZGUo RUZJX0lGUl9HVUlEX09QKV0NCj4gKyAgICA6ICAgU3ViY2xhc3NTZXR1cEFwcGxpY2F0aW9uDQo+ ICsgICAgfCAgIFN1YmNsYXNzR2VuZXJhbEFwcGxpY2F0aW9uDQo+ICsgICAgfCAgIFN1YmNsYXNz RnJvbnRQYWdlDQo+ICsgICAgfCAgIFN1YmNsYXNzU2luZ2xlVXNlDQo+ICsgICAgfCAgIE51bWJl cg0KPiArICAgIDsNCj4gKw0KPiArDQo+ICt2ZnJGb3JtU2V0TGlzdFtOb2RlXQ0KPiArICAgIDog KHZmckZvcm1TZXQpKg0KPiArICAgIDsNCj4gKw0KPiArLy8yLjUgVkZSIEZvcm1TZXQgTGlzdCBE ZWZpbml0aW9uDQo+ICt2ZnJGb3JtU2V0DQo+ICtsb2NhbHNbTm9kZT1Ob25lXQ0KPiArICAgIDoN Cj4gKyAgICAoICAgdmZyRm9ybURlZmluaXRpb24NCj4gKyAgICB8ICAgdmZyRm9ybU1hcERlZmlu aXRpb24NCj4gKyAgICB8ICAgdmZyU3RhdGVtZW50SW1hZ2UNCj4gKyAgICB8ICAgdmZyU3RhdGVt ZW50VmFyU3RvcmVMaW5lYXINCj4gKyAgICB8ICAgdmZyU3RhdGVtZW50VmFyU3RvcmVFZmkNCj4g KyAgICB8ICAgdmZyU3RhdGVtZW50VmFyU3RvcmVOYW1lVmFsdWUNCj4gKyAgICB8ICAgdmZyU3Rh dGVtZW50RGVmYXVsdFN0b3JlDQo+ICsgICAgfCAgIHZmclN0YXRlbWVudERpc2FibGVJZkZvcm1T ZXQNCj4gKyAgICB8ICAgdmZyU3RhdGVtZW50U3VwcHJlc3NJZkZvcm1TZXQNCj4gKyAgICB8ICAg dmZyU3RhdGVtZW50RXh0ZW5zaW9uDQo+ICsgICAgKQ0KPiArICAgIDsNCj4gKw0KPiArDQo+ICsv LzIuNiBWRlIgRGVmYXVsdCBTdG9yZXMgRGVmaW5pdGlvbg0KPiArdmZyU3RhdGVtZW50RGVmYXVs dFN0b3JlDQo+ICtsb2NhbHNbTm9kZT1JZnJUcmVlTm9kZShFRklfSUZSX0RFRkFVTFRTVE9SRV9P UCldDQo+ICsgICAgOiAgICdkZWZhdWx0c3RvcmUnIE49U3RyaW5nSWRlbnRpZmllciAnLCcNCj4g KyAgICAgICAgJ3Byb21wdCcgJz0nICdTVFJJTkdfVE9LRU4nICcoJyBTPU51bWJlciAnKScNCj4g KyAgICAgICAgKCcsJyAnYXR0cmlidXRlJyAnPScgQT1OdW1iZXIpPyAnOycNCj4gKyAgICA7DQo+ ICsNCj4gKy8vMi43IFZGUiBWYXJpYWJsZSBTdG9yZSBEZWZpbml0aW9uDQo+ICt2ZnJTdGF0ZW1l bnRWYXJTdG9yZUxpbmVhcg0KPiArbG9jYWxzW05vZGU9SWZyVHJlZU5vZGUoRUZJX0lGUl9WQVJT VE9SRV9PUCldDQo+ICsgICAgOiAgICd2YXJzdG9yZScNCj4gKyAgICAgICAgKCAgIFROPVN0cmlu Z0lkZW50aWZpZXIgJywnDQo+ICsgICAgICAgIHwgICAnVUlOVDgnICcsJw0KPiArICAgICAgICB8 ICAgJ1VJTlQxNicgJywnDQo+ICsgICAgICAgIHwgICAnVUlOVDMyJyAnLCcNCj4gKyAgICAgICAg fCAgICdVSU5UNjQnICcsJw0KPiArICAgICAgICB8ICAgJ0VGSV9ISUlfREFURScgJywnDQo+ICsg ICAgICAgIHwgICAnRUZJX0hJSV9USU1FJyAnLCcNCj4gKyAgICAgICAgfCAgICdFRklfSElJX1JF RicgJywnDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgKCd2YXJpZCcgJz0nIElEPU51bWJlciAn LCcpPw0KPiArICAgICAgICAnbmFtZScgJz0nIFNOPVN0cmluZ0lkZW50aWZpZXIgJywnDQo+ICsg ICAgICAgICdndWlkJyAnPScgZ3VpZERlZmluaXRpb24gJzsnDQo+ICsgICAgOw0KPiArDQo+ICt2 ZnJTdGF0ZW1lbnRWYXJTdG9yZUVmaQ0KPiArbG9jYWxzW05vZGU9SWZyVHJlZU5vZGUoRUZJX0lG Ul9WQVJTVE9SRV9FRklfT1ApXQ0KPiArICAgIDogICAnZWZpdmFyc3RvcmUnDQo+ICsgICAgICAg ICggICBUTj1TdHJpbmdJZGVudGlmaWVyICcsJw0KPiArICAgICAgICB8ICAgJ1VJTlQ4JyAnLCcN Cj4gKyAgICAgICAgfCAgICdVSU5UMTYnICcsJw0KPiArICAgICAgICB8ICAgJ1VJTlQzMicgJywn DQo+ICsgICAgICAgIHwgICAnVUlOVDY0JyAnLCcNCj4gKyAgICAgICAgfCAgICdFRklfSElJX0RB VEUnICcsJw0KPiArICAgICAgICB8ICAgJ0VGSV9ISUlfVElNRScgJywnDQo+ICsgICAgICAgIHwg ICAnRUZJX0hJSV9SRUYnICcsJw0KPiArICAgICAgICApDQo+ICsgICAgICAgICgndmFyaWQnICc9 JyBJRD1OdW1iZXIgJywnKT8NCj4gKyAgICAgICAgJ2F0dHJpYnV0ZScgJz0nIHZmclZhclN0b3Jl RWZpQXR0ciAoJ3wnIHZmclZhclN0b3JlRWZpQXR0cikqICcsJw0KPiArICAgICAgICAoICAgJ25h bWUnICc9JyBTTj1TdHJpbmdJZGVudGlmaWVyICcsJw0KPiArICAgICAgICB8ICAgJ25hbWUnICc9 JyAnU1RSSU5HX1RPS0VOJyAnKCcgVk49TnVtYmVyICcpJyAnLCcgICd2YXJzaXplJyAnPScNCj4g Tj1OdW1iZXIgJywnDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgJ2d1aWQnICc9JyBndWlkRGVm aW5pdGlvbiAnOycNCj4gKyAgICA7DQo+ICsNCj4gK3ZmclZhclN0b3JlRWZpQXR0cg0KPiArbG9j YWxzW0F0dHI9MF0NCj4gKyAgICA6ICAgTnVtYmVyOw0KPiArDQo+ICt2ZnJTdGF0ZW1lbnRWYXJT dG9yZU5hbWVWYWx1ZQ0KPiArbG9jYWxzW05vZGU9SWZyVHJlZU5vZGUoRUZJX0lGUl9WQVJTVE9S RV9OQU1FX1ZBTFVFX09QKV0NCj4gKyAgICA6ICAgJ25hbWV2YWx1ZXZhcnN0b3JlJyBTTj1TdHJp bmdJZGVudGlmaWVyICcsJw0KPiArICAgICAgICAoJ3ZhcmlkJyAnPScgSUQ9TnVtYmVyICcsJyk/ DQo+ICsgICAgICAgICgnbmFtZScgJz0nICdTVFJJTkdfVE9LRU4nICcoJyBOdW1iZXIgJyknICcs JykrDQo+ICsgICAgICAgICdndWlkJyAnPScgZ3VpZERlZmluaXRpb24gJzsnDQo+ICsgICAgOw0K PiArDQo+ICt2ZnJTdGF0ZW1lbnREaXNhYmxlSWZGb3JtU2V0DQo+ICtsb2NhbHNbTm9kZT1JZnJU cmVlTm9kZShFRklfSUZSX0RJU0FCTEVfSUZfT1ApXQ0KPiArICAgIDogICAnZGlzYWJsZWlmJyB2 ZnJTdGF0ZW1lbnRFeHByZXNzaW9uW2xvY2FsY3R4Lk5vZGVdICc7Jw0KPiArICAgICAgICB2ZnJG b3JtU2V0TGlzdFtsb2NhbGN0eC5Ob2RlXQ0KPiArICAgICAgICAnZW5kaWYnICc7Jw0KPiArICAg IDsNCj4gKw0KPiArdmZyU3RhdGVtZW50U3VwcHJlc3NJZkZvcm1TZXQNCj4gK2xvY2Fsc1tOb2Rl PUlmclRyZWVOb2RlKEVGSV9JRlJfU1VQUFJFU1NfSUZfT1ApXQ0KPiArICAgIDogICAnc3VwcHJl c3NpZicgdmZyU3RhdGVtZW50RXhwcmVzc2lvbltsb2NhbGN0eC5Ob2RlXSAnOycNCj4gKyAgICAg ICAgdmZyRm9ybVNldExpc3RbbG9jYWxjdHguTm9kZV0NCj4gKyAgICAgICAgJ2VuZGlmJyAnOycN Cj4gKyAgICA7DQo+ICsNCj4gK2d1aWRTdWJEZWZpbml0aW9uW0d1aWRdDQo+ICsgICAgOiAgIE51 bWJlciAnLCcgTnVtYmVyICcsJyBOdW1iZXIgJywnIE51bWJlciAnLCcNCj4gKyAgICAgICAgTnVt YmVyICcsJyBOdW1iZXIgJywnIE51bWJlciAnLCcgTnVtYmVyDQo+ICsgICAgOw0KPiArDQo+ICtn dWlkRGVmaW5pdGlvbg0KPiArbG9jYWxzW05vZGU9SWZyVHJlZU5vZGUoKSwgR3VpZD1FRklfR1VJ RCgpXQ0KPiArICAgIDogICAneycNCj4gKyAgICAgICAgTnVtYmVyICcsJyBOdW1iZXIgJywnIE51 bWJlciAnLCcNCj4gKyAgICAgICAgKCAgICd7JyBndWlkU3ViRGVmaW5pdGlvbltsb2NhbGN0eC5H dWlkXSAnfScNCj4gKyAgICAgICAgfCAgIGd1aWRTdWJEZWZpbml0aW9uW2xvY2FsY3R4Lkd1aWRd DQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgJ30nDQo+ICsgICAgOw0KPiArDQo+ICtnZXRTdHJp bmdJZA0KPiArbG9jYWxzW1N0cmluZ0lkPScnXQ0KPiArICAgIDogICAnU1RSSU5HX1RPS0VOJyAn KCcgTnVtYmVyICcpJw0KPiArICAgIDsNCj4gKw0KPiArdmZyUXVlc3Rpb25IZWFkZXJbTm9kZSwg UVR5cGVdDQo+ICsgICAgOiAgIHZmclF1ZXN0aW9uQmFzZUluZm9bTm9kZSwgUVR5cGVdDQo+ICsg ICAgICAgIHZmclN0YXRlbWVudEhlYWRlcltOb2RlXQ0KPiArICAgIDsNCj4gKw0KPiArdmZyUXVl c3Rpb25CYXNlSW5mb1tOb2RlLCBRVHlwZV0NCj4gK2xvY2Fsc1tCYXNlSW5mbz1FRklfVkFSU1RP UkVfSU5GTygpLCBRSWQ9RUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQsDQo+IENoZWNrRmxhZz1UcnVl LCBRTmFtZT1Ob25lLCBWYXJJZFN0cj0nJ10NCj4gKyAgICA6ICAgKCduYW1lJyAnPScgUU49U3Ry aW5nSWRlbnRpZmllciAnLCcpPw0KPiArICAgICAgICAoJ3ZhcmlkJyAnPScgdmZyU3RvcmFnZVZh cklkW2xvY2FsY3R4LkJhc2VJbmZvLCBsb2NhbGN0eC5DaGVja0ZsYWddICcsJyk/DQo+ICsgICAg ICAgICgncXVlc3Rpb25pZCcgJz0nIElEPU51bWJlciAnLCcpPw0KPiArICAgIDsNCj4gKw0KPiAr dmZyU3RhdGVtZW50SGVhZGVyW05vZGVdDQo+ICsgICAgOiAgICdwcm9tcHQnICc9JyAnU1RSSU5H X1RPS0VOJyAnKCcgTnVtYmVyICcpJyAnLCcNCj4gKyAgICAgICAgJ2hlbHAnICc9JyAnU1RSSU5H X1RPS0VOJyAnKCcgTnVtYmVyICcpJw0KPiArICAgIDsNCj4gKw0KPiArcXVlc3Rpb25oZWFkZXJG bGFnc0ZpZWxkDQo+ICtsb2NhbHNbUUhGbGFnPTBdDQo+ICsgICAgOiAgIFJlYWRPbmx5RmxhZw0K PiArICAgIHwgICBJbnRlcmFjdGl2ZUZsYWcNCj4gKyAgICB8ICAgUmVzZXRSZXF1aXJlZEZsYWcN Cj4gKyAgICB8ICAgUmVzdFN0eWxlRmxhZw0KPiArICAgIHwgICBSZWNvbm5lY3RSZXF1aXJlZEZs YWcNCj4gKyAgICB8ICAgTz1PcHRpb25Pbmx5RmxhZw0KPiArICAgIHwgICBOPU5WQWNjZXNzRmxh Zw0KPiArICAgIHwgICBMPUxhdGVDaGVja0ZsYWcNCj4gKyAgICA7DQo+ICsvLzIuMTAuNQ0KPiAr dmZyU3RvcmFnZVZhcklkW0Jhc2VJbmZvLCBDaGVja0ZsYWddDQo+ICtsb2NhbHNbVmFySWRTdHI9 JyddDQo+ICsgICAgOiAgIChTTjE9U3RyaW5nSWRlbnRpZmllciAnWycgST1OdW1iZXIgJ10nKSAg ICAjIHZmclN0b3JhZ2VWYXJJZFJ1bGUxDQo+ICsgICAgfCAgIChTTjI9U3RyaW5nSWRlbnRpZmll ciAoJy4nIGFycmF5TmFtZSkqICkgIyB2ZnJTdG9yYWdlVmFySWRSdWxlMg0KPiArICAgIDsNCj4g Kw0KPiArdmZyQ29uc3RhbnRWYWx1ZUZpZWxkDQo+ICtsb2NhbHNbVmFsdWVMaXN0PVtdLCBMaXN0 VHlwZT1GYWxzZV0NCj4gKyAgICA6ICAgKCctJyk/IE51bWJlcg0KPiArICAgIHwgICAnVFJVRScN Cj4gKyAgICB8ICAgJ0ZBTFNFJw0KPiArICAgIHwgICAnT05FJw0KPiArICAgIHwgICAnT05FUycN Cj4gKyAgICB8ICAgJ1pFUk8nDQo+ICsgICAgfCAgIE51bWJlciAnOicgTnVtYmVyICc6JyBOdW1i ZXINCj4gKyAgICB8ICAgTnVtYmVyICcvJyBOdW1iZXIgJy8nIE51bWJlcg0KPiArICAgIHwgICBO dW1iZXIgJzsnIE51bWJlciAnOycgZ3VpZERlZmluaXRpb24gJzsnICdTVFJJTkdfVE9LRU4nICco JyBOdW1iZXIgJyknDQo+ICsgICAgfCAgICdTVFJJTkdfVE9LRU4nICcoJyBOdW1iZXIgJyknDQo+ ICsgICAgfCAgICd7JyBOdW1iZXIgKCcsJyBOdW1iZXIpKiAnfScNCj4gKyAgICA7DQo+ICsNCj4g K3ZmckltYWdlVGFnDQo+ICtsb2NhbHNbTm9kZT1JZnJUcmVlTm9kZShFRklfSUZSX0lNQUdFX09Q KV0NCj4gKyAgICA6ICAgJ2ltYWdlJyAnPScgJ0lNQUdFX1RPS0VOJyAnKCcgTnVtYmVyICcpJw0K PiArICAgIDsNCj4gKw0KPiArdmZyTG9ja2VkVGFnDQo+ICtsb2NhbHNbTm9kZT1JZnJUcmVlTm9k ZShFRklfSUZSX0xPQ0tFRF9PUCldDQo+ICsgICAgOiAgICdsb2NrZWQnDQo+ICsgICAgOw0KPiAr DQo+ICt2ZnJTdGF0ZW1lbnRTdGF0VGFnDQo+ICtsb2NhbHNbTm9kZV0NCj4gKyAgICA6ICAgdmZy SW1hZ2VUYWcgfCB2ZnJMb2NrZWRUYWcNCj4gKyAgICA7DQo+ICsNCj4gK3ZmclN0YXRlbWVudFN0 YXRUYWdMaXN0W05vZGVdDQo+ICsgICAgOiAgIHZmclN0YXRlbWVudFN0YXRUYWcgKCcsJyB2ZnJT dGF0ZW1lbnRTdGF0VGFnKSoNCj4gKyAgICA7DQo+ICsNCj4gK3ZmckZvcm1EZWZpbml0aW9uDQo+ ICtsb2NhbHNbTm9kZT1JZnJUcmVlTm9kZShFRklfSUZSX0ZPUk1fT1ApXQ0KPiArICAgIDogICAn Zm9ybScgJ2Zvcm1pZCcgJz0nIE51bWJlciAnLCcNCj4gKyAgICAgICAgJ3RpdGxlJyAnPScgJ1NU UklOR19UT0tFTicgJygnIE51bWJlciAnKScgJzsnDQo+ICsgICAgICAgICh2ZnJGb3JtKSoNCj4g KyAgICAgICAgJ2VuZGZvcm0nICc7Jw0KPiArICAgIDsNCj4gKw0KPiArdmZyRm9ybQ0KPiArbG9j YWxzW05vZGVdDQo+ICsgICAgOg0KPiArICAgICggICB2ZnJTdGF0ZW1lbnRJbWFnZQ0KPiArICAg IHwgICB2ZnJTdGF0ZW1lbnRMb2NrZWQNCj4gKyAgICB8ICAgdmZyU3RhdGVtZW50UnVsZXMNCj4g KyAgICB8ICAgdmZyU3RhdGVtZW50RGVmYXVsdA0KPiArICAgIHwgICB2ZnJTdGF0ZW1lbnRTdGF0 DQo+ICsgICAgfCAgIHZmclN0YXRlbWVudFF1ZXN0aW9ucw0KPiArICAgIHwgICB2ZnJTdGF0ZW1l bnRDb25kaXRpb25hbA0KPiArICAgIHwgICB2ZnJTdGF0ZW1lbnRMYWJlbA0KPiArICAgIHwgICB2 ZnJTdGF0ZW1lbnRCYW5uZXINCj4gKyAgICB8ICAgdmZyU3RhdGVtZW50SW52YWxpZA0KPiArICAg IHwgICB2ZnJTdGF0ZW1lbnRFeHRlbnNpb24NCj4gKyAgICB8ICAgdmZyU3RhdGVtZW50TW9kYWwN Cj4gKyAgICB8ICAgdmZyU3RhdGVtZW50UmVmcmVzaEV2ZW50ICc7Jw0KPiArICAgICkNCj4gKyAg ICA7DQo+ICsNCj4gK3ZmckZvcm1NYXBEZWZpbml0aW9uDQo+ICtsb2NhbHNbTm9kZT1JZnJUcmVl Tm9kZShFRklfSUZSX0ZPUk1fTUFQX09QKV0NCj4gKyAgICA6ICAgJ2Zvcm1tYXAnICdmb3JtaWQn ICc9JyBTMT1OdW1iZXIgJywnDQo+ICsgICAgICAgICggICAnbWFwdGl0bGUnICc9JyAnU1RSSU5H X1RPS0VOJyAnKCcgTnVtYmVyICcpJyAnOycNCj4gKyAgICAgICAgICAgICdtYXBndWlkJyAnPScg Z3VpZERlZmluaXRpb24gJzsnDQo+ICsgICAgICAgICkqDQo+ICsgICAgICAgICh2ZnJGb3JtKSoN Cj4gKyAgICAgICAgJ2VuZGZvcm0nICc7Jw0KPiArICAgIDsNCj4gKw0KPiArdmZyU3RhdGVtZW50 SW1hZ2UNCj4gK2xvY2Fsc1tOb2RlXQ0KPiArICAgIDogICB2ZnJJbWFnZVRhZyAnOycNCj4gKyAg ICA7DQo+ICsNCj4gK3ZmclN0YXRlbWVudExvY2tlZA0KPiArbG9jYWxzW05vZGVdDQo+ICsgICAg OiAgIHZmckxvY2tlZFRhZyAnOycNCj4gKyAgICA7DQo+ICsNCj4gK3ZmclN0YXRlbWVudFJ1bGVz DQo+ICtsb2NhbHNbTm9kZT1JZnJUcmVlTm9kZShFRklfSUZSX1JVTEVfT1ApXQ0KPiArICAgIDog ICAncnVsZScgU3RyaW5nSWRlbnRpZmllciAnLCcNCj4gKyAgICAgICAgdmZyU3RhdGVtZW50RXhw cmVzc2lvbltsb2NhbGN0eC5Ob2RlXQ0KPiArICAgICAgICAnZW5kcnVsZScgJzsnDQo+ICsgICAg Ow0KPiArDQo+ICt2ZnJTdGF0ZW1lbnRTdGF0DQo+ICtsb2NhbHNbTm9kZV0NCj4gKyAgICA6ICAg dmZyU3RhdGVtZW50U3ViVGl0bGUNCj4gKyAgICB8ICAgdmZyU3RhdGVtZW50U3RhdGljVGV4dA0K PiArICAgIHwgICB2ZnJTdGF0ZW1lbnRDcm9zc1JlZmVyZW5jZQ0KPiArICAgIDsNCj4gKw0KPiAr dmZyU3RhdGVtZW50U3ViVGl0bGUNCj4gK2xvY2Fsc1tOb2RlPUlmclRyZWVOb2RlKEVGSV9JRlJf U1VCVElUTEVfT1ApXQ0KPiArICAgIDogICAnc3VidGl0bGUnDQo+ICsNCj4gKyAgICAgICAgJ3Rl eHQnICc9JyAnU1RSSU5HX1RPS0VOJyAnKCcgTnVtYmVyICcpJw0KPiArICAgICAgICAoJywnICdm bGFncycgJz0nIHZmclN1YnRpdGxlRmxhZ3MpPw0KPiArICAgICAgICAoICAgKCcsJyB2ZnJTdGF0 ZW1lbnRTdGF0VGFnTGlzdFtsb2NhbGN0eC5Ob2RlXSk/ICc7Jw0KPiArICAgICAgICB8DQo+ICsg ICAgICAgICAgICAoJywnIHZmclN0YXRlbWVudFN0YXRUYWdMaXN0W2xvY2FsY3R4Lk5vZGVdKT8N Cj4gKyAgICAgICAgICAgICgnLCcgKHZmclN0YXRlbWVudFN1YlRpdGxlQ29tcG9uZW50KSogKT8N Cj4gKyAgICAgICAgICAgICdlbmRzdWJ0aXRsZScgJzsnDQo+ICsgICAgICAgICkNCj4gKyAgICA7 DQo+ICsNCj4gK3ZmclN0YXRlbWVudFN1YlRpdGxlQ29tcG9uZW50DQo+ICtsb2NhbHNbTm9kZV0N Cj4gKyAgICA6ICB2ZnJTdGF0ZW1lbnRTdGF0IHwgdmZyU3RhdGVtZW50UXVlc3Rpb25zDQo+ICsg ICAgOw0KPiArDQo+ICt2ZnJTdWJ0aXRsZUZsYWdzDQo+ICtsb2NhbHNbU3ViRmxhZ3M9MF0NCj4g KyAgICA6ICAgc3VidGl0bGVGbGFnc0ZpZWxkICgnfCcgc3VidGl0bGVGbGFnc0ZpZWxkKSoNCj4g KyAgICA7DQo+ICtzdWJ0aXRsZUZsYWdzRmllbGQNCj4gK2xvY2Fsc1tGbGFnPTBdDQo+ICsgICAg OiAgIE51bWJlciB8ICdIT1JJWk9OVEFMJw0KPiArICAgIDsNCj4gKw0KPiArdmZyU3RhdGVtZW50 U3RhdGljVGV4dA0KPiArbG9jYWxzW05vZGU9SWZyVHJlZU5vZGUoRUZJX0lGUl9URVhUX09QKV0N Cj4gKyAgICA6ICAgJ3RleHQnDQo+ICsgICAgICAgICdoZWxwJyAnPScgJ1NUUklOR19UT0tFTicg JygnIFMxPU51bWJlciAnKScgJywnDQo+ICsgICAgICAgICd0ZXh0JyAnPScgJ1NUUklOR19UT0tF TicgJygnIFMyPU51bWJlciAnKScNCj4gKyAgICAgICAgKCcsJyAndGV4dCcgJz0nICdTVFJJTkdf VE9LRU4nICcoJyBTMz1OdW1iZXIgJyknKT8NCj4gKyAgICAgICAgKCcsJyBGPSdmbGFncycgJz0n IHN0YXRpY1RleHRGbGFnc0ZpZWxkICgnfCcgc3RhdGljVGV4dEZsYWdzRmllbGQpKiAnLCcgJ2tl eScgJz0nDQo+IFM0PU51bWJlcik/DQo+ICsgICAgICAgICgnLCcgdmZyU3RhdGVtZW50U3RhdFRh Z0xpc3RbbG9jYWxjdHguTm9kZV0pPyAnOycNCj4gKyAgICA7DQo+ICsNCj4gK3N0YXRpY1RleHRG bGFnc0ZpZWxkDQo+ICtsb2NhbHNbRmxhZz0wXQ0KPiArICAgIDogICBOPU51bWJlciB8IHF1ZXN0 aW9uaGVhZGVyRmxhZ3NGaWVsZA0KPiArICAgIDsNCj4gKw0KPiArdmZyU3RhdGVtZW50Q3Jvc3NS ZWZlcmVuY2UNCj4gK2xvY2Fsc1tOb2RlXQ0KPiArICAgIDogICB2ZnJTdGF0ZW1lbnRHb3RvIHwg dmZyU3RhdGVtZW50UmVzZXRCdXR0b24NCj4gKyAgICA7DQo+ICsNCj4gK3ZmclN0YXRlbWVudEdv dG8NCj4gK2xvY2Fsc1tOb2RlPUlmclRyZWVOb2RlKEVGSV9JRlJfUkVGX09QKSwNCj4gUVR5cGU9 RUZJX1FVRVNJT05fVFlQRS5RVUVTVElPTl9SRUZdDQo+ICsgICAgOiAgICdnb3RvJw0KPiArICAg ICAgICAoICAgKCAgIERldmljZVBhdGggJz0nICdTVFJJTkdfVE9LRU4nICcoJyBOdW1iZXIgJykn ICcsJw0KPiArICAgICAgICAgICAgICAgIEZvcm1TZXRHdWlkICc9JyBndWlkRGVmaW5pdGlvbiAn LCcNCj4gKyAgICAgICAgICAgICAgICBGb3JtSWQgJz0nIE51bWJlciAnLCcNCj4gKyAgICAgICAg ICAgICAgICBRdWVzdGlvbiAnPScgTnVtYmVyICcsJw0KPiArICAgICAgICAgICAgKQ0KPiArICAg ICAgICAgICAgfA0KPiArICAgICAgICAgICAgKCAgIEZvcm1TZXRHdWlkICc9JyBndWlkRGVmaW5p dGlvbiAnLCcNCj4gKyAgICAgICAgICAgICAgICBGb3JtSWQgJz0nIE51bWJlciAnLCcNCj4gKyAg ICAgICAgICAgICAgICBRdWVzdGlvbiAnPScgTnVtYmVyICcsJw0KPiArICAgICAgICAgICAgKQ0K PiArICAgICAgICAgICAgfA0KPiArICAgICAgICAgICAgKCAgIEZvcm1JZCAnPScgTnVtYmVyICcs Jw0KPiArICAgICAgICAgICAgICAgIFF1ZXN0aW9uICc9JyAoUU49U3RyaW5nSWRlbnRpZmllciAn LCcgfCBOdW1iZXIgJywnKQ0KPiArICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgfA0KPiAr ICAgICAgICAgICAgKCAgIE49TnVtYmVyICcsJyApDQo+ICsgICAgICAgICk/DQo+ICsgICAgICAg IHZmclF1ZXN0aW9uSGVhZGVyW2xvY2FsY3R4Lk5vZGUsIGxvY2FsY3R4LlFUeXBlXQ0KPiArICAg ICAgICAoJywnICdmbGFncycgJz0nIHZmckdvdG9GbGFncyk/DQo+ICsgICAgICAgICgnLCcgJ2tl eScgJz0nIE51bWJlcik/DQo+ICsgICAgICAgIChFPScsJyB2ZnJTdGF0ZW1lbnRRdWVzdGlvbk9w dGlvbkxpc3RbbG9jYWxjdHguTm9kZV0pPyAnOycNCj4gKyAgICA7DQo+ICsNCj4gK3ZmckdvdG9G bGFncw0KPiArbG9jYWxzW0dvdG9GbGFncz0wXQ0KPiArICAgIDogICBnb3RvRmxhZ3NGaWVsZCgn fCcgZ290b0ZsYWdzRmllbGQpKg0KPiArICAgIDsNCj4gKw0KPiArZ290b0ZsYWdzRmllbGQNCj4g K2xvY2Fsc1tGbGFnPTBdDQo+ICsgICAgOiAgTj1OdW1iZXIgfCBxdWVzdGlvbmhlYWRlckZsYWdz RmllbGQNCj4gKyAgICA7DQo+ICsNCj4gK3ZmclN0YXRlbWVudFJlc2V0QnV0dG9uDQo+ICtsb2Nh bHNbTm9kZT1JZnJUcmVlTm9kZShFRklfSUZSX1JFU0VUX0JVVFRPTl9PUCldDQo+ICsgICAgOiAg J3Jlc2V0YnV0dG9uJw0KPiArICAgICAgICdkZWZhdWx0c3RvcmUnICc9JyBOPVN0cmluZ0lkZW50 aWZpZXIgJywnDQo+ICsgICAgICAgdmZyU3RhdGVtZW50SGVhZGVyW2xvY2FsY3R4Lk5vZGVdICcs Jw0KPiArICAgICAgICh2ZnJTdGF0ZW1lbnRTdGF0VGFnTGlzdFtsb2NhbGN0eC5Ob2RlXSAnLCcp Pw0KPiArICAgICAgICdlbmRyZXNldGJ1dHRvbicgJzsnDQo+ICsgICAgOw0KPiArDQo+ICt2ZnJT dGF0ZW1lbnRRdWVzdGlvbnMNCj4gK2xvY2Fsc1tOb2RlXQ0KPiArICAgIDogICB2ZnJTdGF0ZW1l bnRCb29sZWFuVHlwZQ0KPiArICAgIHwgICB2ZnJTdGF0ZW1lbnREYXRlDQo+ICsgICAgfCAgIHZm clN0YXRlbWVudE51bWVyaWNUeXBlDQo+ICsgICAgfCAgIHZmclN0YXRlbWVudFN0cmluZ1R5cGUN Cj4gKyAgICB8ICAgdmZyU3RhdGVtZW50T3JkZXJlZExpc3QNCj4gKyAgICB8ICAgdmZyU3RhdGVt ZW50VGltZQ0KPiArICAgIDsNCj4gKw0KPiArdmZyU3RhdGVtZW50UXVlc3Rpb25UYWcNCj4gK2xv Y2Fsc1tOb2RlXQ0KPiArICAgIDogICB2ZnJTdGF0ZW1lbnRTdGF0VGFnICcsJw0KPiArICAgIHwg ICB2ZnJTdGF0ZW1lbnRJbmNvbnNpc3RlbnRJZg0KPiArICAgIHwgICB2ZnJTdGF0ZW1lbnROb1N1 Ym1pdElmDQo+ICsgICAgfCAgIHZmclN0YXRlbWVudERpc2FibGVJZlF1ZXN0DQo+ICsgICAgfCAg IHZmclN0YXRlbWVudFJlZnJlc2gNCj4gKyAgICB8ICAgdmZyU3RhdGVtZW50VmFyc3RvcmVEZXZp Y2UNCj4gKyAgICB8ICAgdmZyU3RhdGVtZW50RXh0ZW5zaW9uDQo+ICsgICAgfCAgIHZmclN0YXRl bWVudFJlZnJlc2hFdmVudA0KPiArICAgIHwgICB2ZnJTdGF0ZW1lbnRXYXJuaW5nSWYNCj4gKyAg ICA7DQo+ICsNCj4gK3ZmclN0YXRlbWVudEluY29uc2lzdGVudElmIC8vDQo+ICtsb2NhbHNbTm9k ZT1JZnJUcmVlTm9kZShFRklfSUZSX0lOQ09OU0lTVEVOVF9JRl9PUCldDQo+ICsgICAgOiAgICdp bmNvbnNpc3RlbnRpZicNCj4gKyAgICAgICAgJ3Byb21wdCcgJz0nICdTVFJJTkdfVE9LRU4nICco JyBOdW1iZXIgJyknICcsJw0KPiArICAgICAgICAoJ2ZsYWdzJyAnPScgZmxhZ3NGaWVsZCAoJ3wn IGZsYWdzRmllbGQpKiAnLCcpPw0KPiArICAgICAgICB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uW2xv Y2FsY3R4Lk5vZGVdDQo+ICsgICAgICAgICdlbmRpZicgKCc7Jyk/DQo+ICsgICAgOw0KPiArDQo+ ICt2ZnJTdGF0ZW1lbnROb1N1Ym1pdElmIC8vDQo+ICtsb2NhbHNbTm9kZT1JZnJUcmVlTm9kZShF RklfSUZSX05PX1NVQk1JVF9JRl9PUCldDQo+ICsgICAgOiAgICdub3N1Ym1pdGlmJw0KPiArICAg ICAgICAncHJvbXB0JyAnPScgJ1NUUklOR19UT0tFTicgJygnIE51bWJlciAnKScgJywnDQo+ICsg ICAgICAgICgnZmxhZ3MnICc9JyBmbGFnc0ZpZWxkICgnfCcgZmxhZ3NGaWVsZCkqICcsJyk/DQo+ ICsgICAgICAgIHZmclN0YXRlbWVudEV4cHJlc3Npb25bbG9jYWxjdHguTm9kZV0NCj4gKyAgICAg ICAgJ2VuZGlmJyAoJzsnKT8NCj4gKyAgICA7DQo+ICsNCj4gK3ZmclN0YXRlbWVudERpc2FibGVJ ZlF1ZXN0DQo+ICtsb2NhbHNbTm9kZT1JZnJUcmVlTm9kZShFRklfSUZSX0RJU0FCTEVfSUZfT1Ap XQ0KPiArICAgIDogICAnZGlzYWJsZWlmJyB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uW2xvY2FsY3R4 Lk5vZGVdICc7Jw0KPiArICAgICAgICB2ZnJTdGF0ZW1lbnRRdWVzdGlvbk9wdGlvbkxpc3RbbG9j YWxjdHguTm9kZV0NCj4gKyAgICAgICAgJ2VuZGlmJyAoJzsnKT8NCj4gKyAgICA7DQo+ICsNCj4g K3ZmclN0YXRlbWVudFJlZnJlc2gNCj4gK2xvY2Fsc1tOb2RlPUlmclRyZWVOb2RlKEVGSV9JRlJf UkVGUkVTSF9PUCldDQo+ICsgICAgOiAgICdyZWZyZXNoJyAnaW50ZXJ2YWwnICc9JyBOdW1iZXIN Cj4gKyAgICA7DQo+ICsNCj4gK3ZmclN0YXRlbWVudFZhcnN0b3JlRGV2aWNlDQo+ICtsb2NhbHNb Tm9kZT1JZnJUcmVlTm9kZShFRklfSUZSX1ZBUlNUT1JFX0RFVklDRV9PUCldDQo+ICsgICAgOiAg ICd2YXJzdG9yZWRldmljZScgJz0nICdTVFJJTkdfVE9LRU4nICcoJyBOdW1iZXIgJyknICcsJw0K PiArICAgIDsNCj4gKw0KPiArdmZyU3RhdGVtZW50UmVmcmVzaEV2ZW50DQo+ICtsb2NhbHNbTm9k ZT1JZnJUcmVlTm9kZShFRklfSUZSX1JFRlJFU0hfSURfT1ApXQ0KPiArICAgIDogICAncmVmcmVz aGd1aWQnICc9JyBndWlkRGVmaW5pdGlvbiAnLCcNCj4gKyAgICA7DQo+ICsNCj4gK3ZmclN0YXRl bWVudFdhcm5pbmdJZiAvLw0KPiArbG9jYWxzW05vZGU9SWZyVHJlZU5vZGUoRUZJX0lGUl9XQVJO SU5HX0lGX09QKV0NCj4gKyAgICA6ICAgJ3dhcm5pbmdpZicNCj4gKyAgICAgICAgJ3Byb21wdCcg Jz0nICdTVFJJTkdfVE9LRU4nICcoJyBOdW1iZXIgJyknICcsJw0KPiArICAgICAgICAoJ3RpbWVv dXQnICc9JyBOdW1iZXIgJywnKT8NCj4gKyAgICAgICAgdmZyU3RhdGVtZW50RXhwcmVzc2lvblts b2NhbGN0eC5Ob2RlXQ0KPiArICAgICAgICAnZW5kaWYnICgnOycpPw0KPiArICAgIDsNCj4gKw0K PiArdmZyU3RhdGVtZW50UXVlc3Rpb25UYWdMaXN0W05vZGVdDQo+ICsgICAgOiAgICh2ZnJTdGF0 ZW1lbnRRdWVzdGlvblRhZykqDQo+ICsgICAgOw0KPiArDQo+ICt2ZnJTdGF0ZW1lbnRRdWVzdGlv bk9wdGlvblRhZw0KPiArbG9jYWxzW05vZGVdDQo+ICsgICAgOiAgIHZmclN0YXRlbWVudFN1cHBy ZXNzSWZRdWVzdA0KPiArICAgIHwgICB2ZnJTdGF0ZW1lbnRHcmF5T3V0SWZRdWVzdA0KPiArICAg IHwgICB2ZnJTdGF0ZW1lbnRWYWx1ZQ0KPiArICAgIHwgICB2ZnJTdGF0ZW1lbnREZWZhdWx0DQo+ ICsgICAgfCAgIHZmclN0YXRlbWVudE9wdGlvbnMNCj4gKyAgICB8ICAgdmZyU3RhdGVtZW50UmVh ZA0KPiArICAgIHwgICB2ZnJTdGF0ZW1lbnRXcml0ZQ0KPiArICAgIDsNCj4gKw0KPiArZmxhZ3NG aWVsZA0KPiArICAgIDogICBOdW1iZXINCj4gKyAgICB8ICAgSW50ZXJhY3RpdmVGbGFnDQo+ICsg ICAgfCAgIE1hbnVmYWN0dXJpbmdGbGFnDQo+ICsgICAgfCAgIERlZmF1bHRGbGFnDQo+ICsgICAg fCAgIFJlc2V0UmVxdWlyZWRGbGFnDQo+ICsgICAgfCAgIFJlY29ubmVjdFJlcXVpcmVkRmxhZw0K PiArICAgIHwgICBOPU5WQWNjZXNzRmxhZw0KPiArICAgIHwgICBMPUxhdGVDaGVja0ZsYWcNCj4g KyAgICA7DQo+ICsNCj4gK3ZmclN0YXRlbWVudFN1cHByZXNzSWZRdWVzdA0KPiArbG9jYWxzW05v ZGU9SWZyVHJlZU5vZGUoRUZJX0lGUl9TVVBQUkVTU19JRl9PUCldDQo+ICsgICAgOiAgICdzdXBw cmVzc2lmJyB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uW2xvY2FsY3R4Lk5vZGVdICc7Jw0KPiArICAg ICAgICAoJ2ZsYWdzJyAnPScgZmxhZ3NGaWVsZCAoJ3wnIGZsYWdzRmllbGQgKSogJywnKT8NCj4g KyAgICAgICAgdmZyU3RhdGVtZW50UXVlc3Rpb25PcHRpb25MaXN0W2xvY2FsY3R4Lk5vZGVdDQo+ ICsgICAgICAgICdlbmRpZicgKCc7Jyk/DQo+ICsgICAgOw0KPiArDQo+ICt2ZnJTdGF0ZW1lbnRH cmF5T3V0SWZRdWVzdA0KPiArbG9jYWxzW05vZGU9SWZyVHJlZU5vZGUoRUZJX0lGUl9TVVBQUkVT U19JRl9PUCldDQo+ICsgICAgOiAgICdncmF5b3V0aWYnIHZmclN0YXRlbWVudEV4cHJlc3Npb25b bG9jYWxjdHguTm9kZV0gJzsnDQo+ICsgICAgICAgICgnZmxhZ3MnICc9JyBmbGFnc0ZpZWxkICgn fCcgZmxhZ3NGaWVsZCApKiAnLCcpPw0KPiArICAgICAgICB2ZnJTdGF0ZW1lbnRRdWVzdGlvbk9w dGlvbkxpc3RbbG9jYWxjdHguTm9kZV0NCj4gKyAgICAgICAgJ2VuZGlmJyAoJzsnKT8NCj4gKyAg ICA7DQo+ICsNCj4gKw0KPiArdmZyU3RhdGVtZW50RGVmYXVsdA0KPiArbG9jYWxzW05vZGU9SWZy VHJlZU5vZGUoRUZJX0lGUl9ERUZBVUxUX09QKV0NCj4gKyAgICA6ICAgRD0nZGVmYXVsdCcNCj4g KyAgICAgICAgKCAgICggICBWPXZmclN0YXRlbWVudFZhbHVlICcsJw0KPiArICAgICAgICAgICAg fCAgICc9JyB2ZnJDb25zdGFudFZhbHVlRmllbGQgJywnDQo+ICsgICAgICAgICAgICApDQo+ICsg ICAgICAgICAgICAoICAgJ2RlZmF1bHRzdG9yZScgJz0nIFNOPVN0cmluZ0lkZW50aWZpZXIgJywn DQo+ICsgICAgICAgICAgICApPw0KPiArICAgICAgICApDQo+ICsgICAgOw0KPiArDQo+ICt2ZnJT dGF0ZW1lbnRWYWx1ZQ0KPiArbG9jYWxzW05vZGU9SWZyVHJlZU5vZGUoRUZJX0lGUl9WQUxVRV9P UCldDQo+ICsgICAgOiAgICd2YWx1ZScgJz0nIHZmclN0YXRlbWVudEV4cHJlc3Npb25bbG9jYWxj dHguTm9kZV0NCj4gKyAgICA7DQo+ICsNCj4gK3ZmclN0YXRlbWVudE9wdGlvbnMNCj4gK2xvY2Fs c1tOb2RlXQ0KPiArICAgIDogICB2ZnJTdGF0ZW1lbnRPbmVPZk9wdGlvbg0KPiArICAgIDsNCj4g Kw0KPiArdmZyU3RhdGVtZW50T25lT2ZPcHRpb24NCj4gK2xvY2Fsc1tOb2RlPUlmclRyZWVOb2Rl KEVGSV9JRlJfT05FX09GX09QVElPTl9PUCldDQo+ICsgICAgOiAgICdvcHRpb24nDQo+ICsgICAg ICAgICd0ZXh0JyAnPScgJ1NUUklOR19UT0tFTicgJygnIE51bWJlciAnKScgJywnDQo+ICsgICAg ICAgICd2YWx1ZScgJz0nIHZmckNvbnN0YW50VmFsdWVGaWVsZCAnLCcNCj4gKyAgICAgICAgRj0n ZmxhZ3MnICc9JyB2ZnJPbmVPZk9wdGlvbkZsYWdzICgnLCcgJ2tleScgJz0nIEtOPU51bWJlcikg PyAoVD0nLCcNCj4gdmZySW1hZ2VUYWcpKiAnOycNCj4gKyAgICA7DQo+ICsNCj4gK3Zmck9uZU9m T3B0aW9uRmxhZ3MNCj4gK2xvY2Fsc1tIRmxhZ3M9MCwgTEZsYWdzPTBdDQo+ICsgICAgOiAgIG9u ZW9mb3B0aW9uRmxhZ3NGaWVsZCAoJ3wnIG9uZW9mb3B0aW9uRmxhZ3NGaWVsZCkqOw0KPiArDQo+ ICtvbmVvZm9wdGlvbkZsYWdzRmllbGQNCj4gKyAgICBsb2NhbHNbSEZsYWc9MCwgTEZsYWc9MF0N Cj4gKyAgICA6ICAgTnVtYmVyDQo+ICsgICAgfCAgIE9wdGlvbkRlZmF1bHQNCj4gKyAgICB8ICAg T3B0aW9uRGVmYXVsdE1mZw0KPiArICAgIHwgICBJbnRlcmFjdGl2ZUZsYWcNCj4gKyAgICB8ICAg UmVzZXRSZXF1aXJlZEZsYWcNCj4gKyAgICB8ICAgUmVzdFN0eWxlRmxhZw0KPiArICAgIHwgICBS ZWNvbm5lY3RSZXF1aXJlZEZsYWcNCj4gKyAgICB8ICAgTWFudWZhY3R1cmluZ0ZsYWcNCj4gKyAg ICB8ICAgRGVmYXVsdEZsYWcNCj4gKyAgICB8ICAgQT1OVkFjY2Vzc0ZsYWcNCj4gKyAgICB8ICAg TD1MYXRlQ2hlY2tGbGFnDQo+ICsgICAgOw0KPiArDQo+ICt2ZnJTdGF0ZW1lbnRSZWFkDQo+ICts b2NhbHNbTm9kZT1JZnJUcmVlTm9kZShFRklfSUZSX1JFQURfT1ApXQ0KPiArICAgIDogICAncmVh ZCcgdmZyU3RhdGVtZW50RXhwcmVzc2lvbltsb2NhbGN0eC5Ob2RlXSAnOycNCj4gKyAgICA7DQo+ ICsNCj4gK3ZmclN0YXRlbWVudFdyaXRlDQo+ICtsb2NhbHNbTm9kZT1JZnJUcmVlTm9kZShFRklf SUZSX1dSSVRFX09QKV0NCj4gKyAgICA6ICAgJ3dyaXRlJyB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9u W2xvY2FsY3R4Lk5vZGVdICc7Jw0KPiArICAgIDsNCj4gKw0KPiArdmZyU3RhdGVtZW50UXVlc3Rp b25PcHRpb25MaXN0W05vZGVdDQo+ICsgICAgOiAgICh2ZnJTdGF0ZW1lbnRRdWVzdGlvbk9wdGlv bikqDQo+ICsgICAgOw0KPiArDQo+ICsNCj4gKw0KPiArdmZyU3RhdGVtZW50UXVlc3Rpb25PcHRp b24NCj4gK2xvY2Fsc1tOb2RlXQ0KPiArICAgIDogICB2ZnJTdGF0ZW1lbnRRdWVzdGlvblRhZyB8 IHZmclN0YXRlbWVudFF1ZXN0aW9uT3B0aW9uVGFnDQo+ICsgICAgOw0KPiArDQo+ICt2ZnJTdGF0 ZW1lbnRCb29sZWFuVHlwZQ0KPiArbG9jYWxzW05vZGVdDQo+ICsgICAgOiAgIHZmclN0YXRlbWVu dENoZWNrQm94IHwgdmZyU3RhdGVtZW50QWN0aW9uDQo+ICsgICAgOw0KPiArDQo+ICt2ZnJTdGF0 ZW1lbnRDaGVja0JveA0KPiArbG9jYWxzW05vZGU9SWZyVHJlZU5vZGUoRUZJX0lGUl9DSEVDS0JP WF9PUCksR3VpZE5vZGU9SWZyVHJlZU5vZGUoRUYNCj4gSV9JRlJfR1VJRF9PUCksIFFUeXBlPUVG SV9RVUVTSU9OX1RZUEUuUVVFU1RJT05fTk9STUFMXQ0KPiArICAgIDogICBMPSdjaGVja2JveCcN Cj4gKyAgICAgICAgdmZyUXVlc3Rpb25CYXNlSW5mb1tsb2NhbGN0eC5Ob2RlLCBsb2NhbGN0eC5R VHlwZV0NCj4gKyAgICAgICAgdmZyU3RhdGVtZW50SGVhZGVyW2xvY2FsY3R4Lk5vZGVdICcsJw0K PiArICAgICAgICAoRj0nZmxhZ3MnICc9JyB2ZnJDaGVja0JveEZsYWdzICcsJyk/DQo+ICsgICAg ICAgICgna2V5JyAnPScgTnVtYmVyICcsJyk/DQo+ICsgICAgICAgIHZmclN0YXRlbWVudFF1ZXN0 aW9uT3B0aW9uTGlzdFtsb2NhbGN0eC5Ob2RlXQ0KPiArICAgICAgICAnZW5kY2hlY2tib3gnICc7 Jw0KPiArICAgIDsNCj4gKw0KPiArdmZyQ2hlY2tCb3hGbGFncw0KPiArbG9jYWxzW0xGbGFncz0w LCBIRmxhZ3M9MF0NCj4gKyAgICA6ICAgY2hlY2tib3hGbGFnc0ZpZWxkICgnfCcgY2hlY2tib3hG bGFnc0ZpZWxkKSoNCj4gKyAgICA7DQo+ICsNCj4gK2NoZWNrYm94RmxhZ3NGaWVsZA0KPiArbG9j YWxzW0xGbGFnPTAsIEhGbGFnPTBdDQo+ICsgICAgOiAgIE51bWJlcg0KPiArICAgIHwgICBEPSdE RUZBVUxUJw0KPiArICAgIHwgICBNPSdNQU5VRkFDVFVSSU5HJw0KPiArICAgIHwgICAnQ0hFQ0tC T1hfREVGQVVMVCcNCj4gKyAgICB8ICAgJ0NIRUNLQk9YX0RFRkFVTFRfTUZHJw0KPiArICAgIHwg ICBxdWVzdGlvbmhlYWRlckZsYWdzRmllbGQNCj4gKyAgICA7DQo+ICsNCj4gK3ZmclN0YXRlbWVu dEFjdGlvbg0KPiArbG9jYWxzW05vZGU9SWZyVHJlZU5vZGUoRUZJX0lGUl9BQ1RJT05fT1ApLA0K PiBRVHlwZT1FRklfUVVFU0lPTl9UWVBFLlFVRVNUSU9OX05PUk1BTF0NCj4gKyAgICA6ICAgJ2Fj dGlvbicNCj4gKyAgICAgICAgdmZyUXVlc3Rpb25IZWFkZXJbbG9jYWxjdHguTm9kZSwgbG9jYWxj dHguUVR5cGVdICcsJw0KPiArICAgICAgICAoJ2ZsYWdzJyAnPScgdmZyQWN0aW9uRmxhZ3MgJywn KT8NCj4gKyAgICAgICAgJ2NvbmZpZycgJz0nICdTVFJJTkdfVE9LRU4nICcoJyBOdW1iZXIgJykn ICcsJw0KPiArICAgICAgICB2ZnJTdGF0ZW1lbnRRdWVzdGlvblRhZ0xpc3RbbG9jYWxjdHguTm9k ZV0NCj4gKyAgICAgICAgJ2VuZGFjdGlvbicgJzsnDQo+ICsgICAgOw0KPiArDQo+ICt2ZnJBY3Rp b25GbGFncw0KPiArbG9jYWxzW0hGbGFncz0wXQ0KPiArICAgIDogICBhY3Rpb25GbGFnc0ZpZWxk ICgnfCcgYWN0aW9uRmxhZ3NGaWVsZCkqDQo+ICsgICAgOw0KPiArYWN0aW9uRmxhZ3NGaWVsZA0K PiArbG9jYWxzW0hGbGFnPTBdDQo+ICsgICAgOiAgIE49TnVtYmVyIHwgcXVlc3Rpb25oZWFkZXJG bGFnc0ZpZWxkDQo+ICsgICAgOw0KPiArDQo+ICt2ZnJTdGF0ZW1lbnROdW1lcmljVHlwZQ0KPiAr bG9jYWxzW05vZGVdDQo+ICsgICAgOiAgIHZmclN0YXRlbWVudE51bWVyaWMgfCB2ZnJTdGF0ZW1l bnRPbmVPZg0KPiArICAgIDsNCj4gKw0KPiArdmZyU3RhdGVtZW50TnVtZXJpYw0KPiArbG9jYWxz W05vZGU9SWZyVHJlZU5vZGUoRUZJX0lGUl9OVU1FUklDX09QKSwNCj4gR3VpZE5vZGU9SWZyVHJl ZU5vZGUoRUZJX0lGUl9HVUlEX09QKSwNCj4gUVR5cGU9RUZJX1FVRVNJT05fVFlQRS5RVUVTVElP Tl9OT1JNQUxdDQo+ICsgICAgOiAgICdudW1lcmljJw0KPiArICAgICAgICB2ZnJRdWVzdGlvbkJh c2VJbmZvW2xvY2FsY3R4Lk5vZGUsIGxvY2FsY3R4LlFUeXBlXQ0KPiArICAgICAgICB2ZnJTdGF0 ZW1lbnRIZWFkZXJbbG9jYWxjdHguTm9kZV0gJywnDQo+ICsgICAgICAgIChGPSdmbGFncycgJz0n IHZmck51bWVyaWNGbGFncyAnLCcpPw0KPiArICAgICAgICAoJ2tleScgJz0nIE51bWJlciAnLCcp Pw0KPiArICAgICAgICB2ZnJTZXRNaW5NYXhTdGVwW2xvY2FsY3R4Lk5vZGVdDQo+ICsgICAgICAg IHZmclN0YXRlbWVudFF1ZXN0aW9uT3B0aW9uTGlzdFtsb2NhbGN0eC5Ob2RlXQ0KPiArICAgICAg ICAnZW5kbnVtZXJpYycgJzsnDQo+ICsgICAgOw0KPiArDQo+ICt2ZnJTZXRNaW5NYXhTdGVwW05v ZGVdIC8vIENJZnJNaW5NYXhTdGVwRGF0YQ0KPiArICAgIDogICAnbWluaW11bScgJz0nIChOMT0n LScpPyBJPU51bWJlciAnLCcNCj4gKyAgICAgICAgJ21heGltdW0nICc9JyAoTjI9Jy0nKT8gQT1O dW1iZXIgJywnDQo+ICsgICAgICAgICgnc3RlcCcgJz0nIFM9TnVtYmVyICcsJyk/DQo+ICsgICAg Ow0KPiArDQo+ICt2ZnJOdW1lcmljRmxhZ3MNCj4gK2xvY2Fsc1tIRmxhZ3M9MCwgTEZsYWdzPTAs IElzRGlzcGxheVNwZWNpZmllZD1GYWxzZSwgVXBkYXRlVmFyVHlwZT1GYWxzZV0NCj4gKyAgICA6 ICAgbnVtZXJpY0ZsYWdzRmllbGQgKCd8JyBudW1lcmljRmxhZ3NGaWVsZCkqDQo+ICsgICAgOw0K PiArDQo+ICtudW1lcmljRmxhZ3NGaWVsZA0KPiArbG9jYWxzW0hGbGFnPTAsSXNTZXRUeXBlPUZh bHNlLElzRGlzcGxheVNwZWNpZmllZD1GYWxzZV0NCj4gKyAgICA6ICAgTj1OdW1iZXINCj4gKyAg ICB8ICAgJ05VTUVSSUNfU0laRV8xJw0KPiArICAgIHwgICAnTlVNRVJJQ19TSVpFXzInDQo+ICsg ICAgfCAgICdOVU1FUklDX1NJWkVfNCcNCj4gKyAgICB8ICAgJ05VTUVSSUNfU0laRV84Jw0KPiAr ICAgIHwgICAnRElTUExBWV9JTlRfREVDJw0KPiArICAgIHwgICAnRElTUExBWV9VSU5UX0RFQycN Cj4gKyAgICB8ICAgJ0RJU1BMQVlfVUlOVF9IRVgnDQo+ICsgICAgfCAgIHF1ZXN0aW9uaGVhZGVy RmxhZ3NGaWVsZA0KPiArICAgIDsNCj4gKw0KPiArdmZyU3RhdGVtZW50T25lT2YNCj4gK2xvY2Fs c1tOb2RlPUlmclRyZWVOb2RlKEVGSV9JRlJfT05FX09GX09QKSwNCj4gR3VpZE5vZGU9SWZyVHJl ZU5vZGUoRUZJX0lGUl9HVUlEX09QKSwNCj4gUVR5cGU9RUZJX1FVRVNJT05fVFlQRS5RVUVTVElP Tl9OT1JNQUxdDQo+ICsgICAgOiAgICdvbmVvZicNCj4gKyAgICAgICAgdmZyUXVlc3Rpb25CYXNl SW5mb1tsb2NhbGN0eC5Ob2RlLCBsb2NhbGN0eC5RVHlwZV0NCj4gKyAgICAgICAgdmZyU3RhdGVt ZW50SGVhZGVyW2xvY2FsY3R4Lk5vZGVdICcsJw0KPiArICAgICAgICAoRj0nZmxhZ3MnICc9JyB2 ZnJPbmVvZkZsYWdzRmllbGQgJywnKT8gLy8NCj4gKyAgICAgICAgKHZmclNldE1pbk1heFN0ZXBb bG9jYWxjdHguTm9kZV0pPw0KPiArICAgICAgICB2ZnJTdGF0ZW1lbnRRdWVzdGlvbk9wdGlvbkxp c3RbbG9jYWxjdHguTm9kZV0NCj4gKyAgICAgICAgJ2VuZG9uZW9mJyAnOycNCj4gKyAgICA7DQo+ ICsNCj4gK3Zmck9uZW9mRmxhZ3NGaWVsZA0KPiArbG9jYWxzW0hGbGFncz0wLCBMRmxhZ3M9MCwg VXBkYXRlVmFyVHlwZT1GYWxzZV0NCj4gKyAgICA6ICAgbnVtZXJpY0ZsYWdzRmllbGQgKCd8JyBu dW1lcmljRmxhZ3NGaWVsZCkqDQo+ICsgICAgOw0KPiArDQo+ICt2ZnJTdGF0ZW1lbnRTdHJpbmdU eXBlDQo+ICtsb2NhbHNbTm9kZV0NCj4gKyAgICA6ICAgdmZyU3RhdGVtZW50U3RyaW5nIHwgdmZy U3RhdGVtZW50UGFzc3dvcmQNCj4gKyAgICA7DQo+ICsNCj4gK3ZmclN0YXRlbWVudFN0cmluZw0K PiArbG9jYWxzW05vZGU9SWZyVHJlZU5vZGUoRUZJX0lGUl9TVFJJTkdfT1ApLA0KPiBRVHlwZT1F RklfUVVFU0lPTl9UWVBFLlFVRVNUSU9OX05PUk1BTF0NCj4gKyAgICA6ICAgJ3N0cmluZycNCj4g KyAgICAgICAgdmZyUXVlc3Rpb25IZWFkZXJbbG9jYWxjdHguTm9kZSwgbG9jYWxjdHguUVR5cGVd ICcsJw0KPiArICAgICAgICAoRj0nZmxhZ3MnICc9JyB2ZnJTdHJpbmdGbGFnc0ZpZWxkICcsJyk/ DQo+ICsgICAgICAgICgna2V5JyAnPScgTnVtYmVyICcsJyk/DQo+ICsgICAgICAgIE1pbj0nbWlu c2l6ZScgJz0nIE51bWJlciAnLCcNCj4gKyAgICAgICAgTWF4PSdtYXhzaXplJyAnPScgTnVtYmVy ICcsJw0KPiArICAgICAgICB2ZnJTdGF0ZW1lbnRRdWVzdGlvbk9wdGlvbkxpc3RbbG9jYWxjdHgu Tm9kZV0NCj4gKyAgICAgICAgJ2VuZHN0cmluZycgJzsnDQo+ICsgICAgOw0KPiArDQo+ICt2ZnJT dHJpbmdGbGFnc0ZpZWxkDQo+ICtsb2NhbHNbSEZsYWdzPTAsIExGbGFncz0wXQ0KPiArICAgIDog ICBzdHJpbmdGbGFnc0ZpZWxkICgnfCcgc3RyaW5nRmxhZ3NGaWVsZCkqDQo+ICsgICAgOw0KPiAr DQo+ICtzdHJpbmdGbGFnc0ZpZWxkDQo+ICtsb2NhbHNbSEZsYWc9MCwgTEZsYWc9MF0NCj4gKyAg ICA6ICAgTj1OdW1iZXINCj4gKyAgICB8ICAgJ01VTFRJX0xJTkUnDQo+ICsgICAgfCAgIHF1ZXN0 aW9uaGVhZGVyRmxhZ3NGaWVsZA0KPiArICAgIDsNCj4gKw0KPiArdmZyU3RhdGVtZW50UGFzc3dv cmQNCj4gK2xvY2Fsc1tOb2RlPUlmclRyZWVOb2RlKEVGSV9JRlJfUEFTU1dPUkRfT1ApLA0KPiBR VHlwZT1FRklfUVVFU0lPTl9UWVBFLlFVRVNUSU9OX05PUk1BTF0NCj4gKyAgICA6ICAgJ3Bhc3N3 b3JkJw0KPiArICAgICAgICB2ZnJRdWVzdGlvbkhlYWRlcltsb2NhbGN0eC5Ob2RlLCBsb2NhbGN0 eC5RVHlwZV0nLCcNCj4gKyAgICAgICAgKEY9J2ZsYWdzJyAnPScgdmZyUGFzc3dvcmRGbGFnc0Zp ZWxkICcsJyk/DQo+ICsgICAgICAgICgna2V5JyAnPScgTnVtYmVyICcsJyk/DQo+ICsgICAgICAg IE1pbj0nbWluc2l6ZScgJz0nIE51bWJlciAnLCcNCj4gKyAgICAgICAgTWF4PSdtYXhzaXplJyAn PScgTnVtYmVyICcsJw0KPiArICAgICAgICAoJ2VuY29kaW5nJyAnPScgTnVtYmVyICcsJyk/DQo+ ICsgICAgICAgIHZmclN0YXRlbWVudFF1ZXN0aW9uT3B0aW9uTGlzdFtsb2NhbGN0eC5Ob2RlXQ0K PiArICAgICAgICAnZW5kcGFzc3dvcmQnICc7Jw0KPiArICAgIDsNCj4gKw0KPiArdmZyUGFzc3dv cmRGbGFnc0ZpZWxkDQo+ICtsb2NhbHNbSEZsYWdzPTBdDQo+ICsgICAgOiAgIHBhc3N3b3JkRmxh Z3NGaWVsZCgnfCcgcGFzc3dvcmRGbGFnc0ZpZWxkKSoNCj4gKyAgICA7DQo+ICsNCj4gK3Bhc3N3 b3JkRmxhZ3NGaWVsZA0KPiArbG9jYWxzW0hGbGFnPTBdDQo+ICsgICAgOiAgIE51bWJlcg0KPiAr ICAgIHwgICBxdWVzdGlvbmhlYWRlckZsYWdzRmllbGQNCj4gKyAgICA7DQo+ICsNCj4gK3ZmclN0 YXRlbWVudE9yZGVyZWRMaXN0DQo+ICtsb2NhbHNbTm9kZT1JZnJUcmVlTm9kZShFRklfSUZSX09S REVSRURfTElTVF9PUCksDQo+IFFUeXBlPUVGSV9RVUVTSU9OX1RZUEUuUVVFU1RJT05fTk9STUFM XQ0KPiArICAgIDogICAnb3JkZXJlZGxpc3QnDQo+ICsgICAgICAgIHZmclF1ZXN0aW9uSGVhZGVy W2xvY2FsY3R4Lk5vZGUsIGxvY2FsY3R4LlFUeXBlXSAnLCcNCj4gKyAgICAgICAgKE09J21heGNv bnRhaW5lcnMnICc9JyBOdW1iZXIgJywnKT8NCj4gKyAgICAgICAgKEY9J2ZsYWdzJyAnPScgdmZy T3JkZXJlZExpc3RGbGFncyAnLCcpPw0KPiArICAgICAgICB2ZnJTdGF0ZW1lbnRRdWVzdGlvbk9w dGlvbkxpc3RbbG9jYWxjdHguTm9kZV0NCj4gKyAgICAgICAgJ2VuZGxpc3QnICc7Jw0KPiArICAg IDsNCj4gKw0KPiArdmZyT3JkZXJlZExpc3RGbGFncw0KPiArbG9jYWxzW0hGbGFncz0wLCBMRmxh Z3M9MF0NCj4gKyAgICA6ICAgb3JkZXJlZGxpc3RGbGFnc0ZpZWxkICgnfCcgb3JkZXJlZGxpc3RG bGFnc0ZpZWxkKSoNCj4gKyAgICA7DQo+ICsNCj4gK29yZGVyZWRsaXN0RmxhZ3NGaWVsZA0KPiAr bG9jYWxzW0hGbGFnPTAsIExGbGFnPTBdDQo+ICsgICAgOiAgIE51bWJlcg0KPiArICAgIHwgICAn VU5JUVVFJw0KPiArICAgIHwgICAnTk9FTVBUWScNCj4gKyAgICB8ICAgcXVlc3Rpb25oZWFkZXJG bGFnc0ZpZWxkDQo+ICsgICAgOw0KPiArDQo+ICt2ZnJTdGF0ZW1lbnREYXRlDQo+ICtsb2NhbHNb Tm9kZT1JZnJUcmVlTm9kZShFRklfSUZSX0RBVEVfT1ApLA0KPiBRVHlwZT1FRklfUVVFU0lPTl9U WVBFLlFVRVNUSU9OX0RBVEUsIFZhbD1FRklfSElJX0RBVEUoKV0NCj4gKyAgICA6ICAgJ2RhdGUn DQo+ICsgICAgICAgICggICAoICAgdmZyUXVlc3Rpb25IZWFkZXJbbG9jYWxjdHguTm9kZSwgbG9j YWxjdHguUVR5cGVdICcsJw0KPiArICAgICAgICAgICAgICAgIChGMT0nZmxhZ3MnICc9JyB2ZnJE YXRlRmxhZ3MgJywnKT8NCj4gKyAgICAgICAgICAgICAgICB2ZnJTdGF0ZW1lbnRRdWVzdGlvbk9w dGlvbkxpc3RbbG9jYWxjdHguTm9kZV0NCj4gKyAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAg IHwNCj4gKyAgICAgICAgICAgICggICAneWVhcicgJ3ZhcmlkJyAnPScgU3RyaW5nSWRlbnRpZmll ciAnLicgU3RyaW5nSWRlbnRpZmllciAnLCcNCj4gKyAgICAgICAgICAgICAgICAncHJvbXB0JyAn PScgJ1NUUklOR19UT0tFTicgJygnIE51bWJlciAnKScgJywnDQo+ICsgICAgICAgICAgICAgICAg J2hlbHAnICc9JyAnU1RSSU5HX1RPS0VOJyAnKCcgTnVtYmVyICcpJyAnLCcNCj4gKyAgICAgICAg ICAgICAgICBtaW5NYXhEYXRlU3RlcERlZmF1bHRbbG9jYWxjdHguTm9kZSwgbG9jYWxjdHguVmFs LCAwXQ0KPiArICAgICAgICAgICAgICAgICdtb250aCcgJ3ZhcmlkJyAnPScgU3RyaW5nSWRlbnRp ZmllciAnLicgU3RyaW5nSWRlbnRpZmllciAnLCcNCj4gKyAgICAgICAgICAgICAgICAncHJvbXB0 JyAnPScgJ1NUUklOR19UT0tFTicgJygnIE51bWJlciAnKScgJywnDQo+ICsgICAgICAgICAgICAg ICAgJ2hlbHAnICc9JyAnU1RSSU5HX1RPS0VOJyAnKCcgTnVtYmVyICcpJyAnLCcNCj4gKyAgICAg ICAgICAgICAgICBtaW5NYXhEYXRlU3RlcERlZmF1bHRbbG9jYWxjdHguTm9kZSwgbG9jYWxjdHgu VmFsLCAxXQ0KPiArICAgICAgICAgICAgICAgICdkYXknICd2YXJpZCcgJz0nIFN0cmluZ0lkZW50 aWZpZXIgJy4nIFN0cmluZ0lkZW50aWZpZXIgJywnDQo+ICsgICAgICAgICAgICAgICAgJ3Byb21w dCcgJz0nICdTVFJJTkdfVE9LRU4nICcoJyBOdW1iZXIgJyknICcsJw0KPiArICAgICAgICAgICAg ICAgICdoZWxwJyAnPScgJ1NUUklOR19UT0tFTicgJygnIE51bWJlciAnKScgJywnDQo+ICsgICAg ICAgICAgICAgICAgbWluTWF4RGF0ZVN0ZXBEZWZhdWx0W2xvY2FsY3R4Lk5vZGUsIGxvY2FsY3R4 LlZhbCwgMl0NCj4gKyAgICAgICAgICAgICAgICAoRjI9J2ZsYWdzJyAnPScgdmZyRGF0ZUZsYWdz ICcsJyk/DQo+ICsgICAgICAgICAgICAgICAgKHZmclN0YXRlbWVudEluY29uc2lzdGVudElmKSoN Cj4gKyAgICAgICAgICAgICkNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAnZW5kZGF0ZScgJzsn DQo+ICsgICAgOw0KPiArDQo+ICttaW5NYXhEYXRlU3RlcERlZmF1bHRbTm9kZSwgRGF0ZSwgS2V5 VmFsdWVdDQo+ICsgICAgOiAgICdtaW5pbXVtJyAnPScgTnVtYmVyICcsJw0KPiArICAgICAgICAn bWF4aW11bScgJz0nIE51bWJlciAnLCcNCj4gKyAgICAgICAgKCdzdGVwJyAnPScgTnVtYmVyICcs Jyk/DQo+ICsgICAgICAgICgnZGVmYXVsdCcgJz0nIE49TnVtYmVyICcsJyk/DQo+ICsgICAgOw0K PiArDQo+ICt2ZnJEYXRlRmxhZ3MNCj4gK2xvY2Fsc1tMRmxhZ3M9MF0NCj4gKyAgICA6ICAgZGF0 ZUZsYWdzRmllbGQgKCd8JyBkYXRlRmxhZ3NGaWVsZCkqDQo+ICsgICAgOw0KPiArZGF0ZUZsYWdz RmllbGQNCj4gK2xvY2Fsc1tMRmxhZz0wXQ0KPiArICAgIDogICBOdW1iZXINCj4gKyAgICB8ICAg J1lFQVJfU1VQUFJFU1MnDQo+ICsgICAgfCAgICdNT05USF9TVVBQUkVTUycNCj4gKyAgICB8ICAg J0RBWV9TVVBQUkVTUycNCj4gKyAgICB8ICAgJ1NUT1JBR0VfTk9STUFMJw0KPiArICAgIHwgICAn U1RPUkFHRV9USU1FJw0KPiArICAgIHwgICAnU1RPUkFHRV9XQUtFVVAnDQo+ICsgICAgOw0KPiAr DQo+ICt2ZnJTdGF0ZW1lbnRUaW1lDQo+ICtsb2NhbHNbTm9kZT1JZnJUcmVlTm9kZShFRklfSUZS X1RJTUVfT1ApLA0KPiBRVHlwZT1FRklfUVVFU0lPTl9UWVBFLlFVRVNUSU9OX1RJTUUsICBWYWw9 RUZJX0hJSV9USU1FKCldDQo+ICsgICAgOiAgICd0aW1lJw0KPiArICAgICAgICAoICAgKCAgIHZm clF1ZXN0aW9uSGVhZGVyW2xvY2FsY3R4Lk5vZGUsIGxvY2FsY3R4LlFUeXBlXSAnLCcNCj4gKyAg ICAgICAgICAgICAgICAoRjE9J2ZsYWdzJyAnPScgdmZyVGltZUZsYWdzICcsJyk/DQo+ICsgICAg ICAgICAgICAgICAgdmZyU3RhdGVtZW50UXVlc3Rpb25PcHRpb25MaXN0W2xvY2FsY3R4Lk5vZGVd DQo+ICsgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICB8DQo+ICsgICAgICAgICAgICAoDQo+ ICsgICAgICAgICAgICAgICAgJ2hvdXInICd2YXJpZCcgJz0nIFN0cmluZ0lkZW50aWZpZXIgJy4n IFN0cmluZ0lkZW50aWZpZXIgJywnDQo+ICsgICAgICAgICAgICAgICAgJ3Byb21wdCcgJz0nICdT VFJJTkdfVE9LRU4nICcoJyBOdW1iZXIgJyknICcsJw0KPiArICAgICAgICAgICAgICAgICdoZWxw JyAnPScgJ1NUUklOR19UT0tFTicgJygnIE51bWJlciAnKScgJywnDQo+ICsgICAgICAgICAgICAg ICAgbWluTWF4VGltZVN0ZXBEZWZhdWx0W2xvY2FsY3R4Lk5vZGUsIGxvY2FsY3R4LlZhbCwgMF0N Cj4gKyAgICAgICAgICAgICAgICAnbWludXRlJyAndmFyaWQnICc9JyBTdHJpbmdJZGVudGlmaWVy ICcuJyBTdHJpbmdJZGVudGlmaWVyICcsJw0KPiArICAgICAgICAgICAgICAgICdwcm9tcHQnICc9 JyAnU1RSSU5HX1RPS0VOJyAnKCcgTnVtYmVyICcpJyAnLCcNCj4gKyAgICAgICAgICAgICAgICAn aGVscCcgJz0nICdTVFJJTkdfVE9LRU4nICcoJyBOdW1iZXIgJyknICcsJw0KPiArICAgICAgICAg ICAgICAgIG1pbk1heFRpbWVTdGVwRGVmYXVsdFtsb2NhbGN0eC5Ob2RlLCBsb2NhbGN0eC5WYWws IDFdDQo+ICsgICAgICAgICAgICAgICAgJ3NlY29uZCcgJ3ZhcmlkJyAnPScgU3RyaW5nSWRlbnRp ZmllciAnLicgU3RyaW5nSWRlbnRpZmllciAnLCcNCj4gKyAgICAgICAgICAgICAgICAncHJvbXB0 JyAnPScgJ1NUUklOR19UT0tFTicgJygnIE51bWJlciAnKScgJywnDQo+ICsgICAgICAgICAgICAg ICAgJ2hlbHAnICc9JyAnU1RSSU5HX1RPS0VOJyAnKCcgTnVtYmVyICcpJyAnLCcNCj4gKyAgICAg ICAgICAgICAgICBtaW5NYXhUaW1lU3RlcERlZmF1bHRbbG9jYWxjdHguTm9kZSwgbG9jYWxjdHgu VmFsLCAyXQ0KPiArICAgICAgICAgICAgICAgIChGMj0nZmxhZ3MnICc9JyB2ZnJUaW1lRmxhZ3Mg JywnKT8NCj4gKyAgICAgICAgICAgICAgICAodmZyU3RhdGVtZW50SW5jb25zaXN0ZW50SWYpKg0K PiArICAgICAgICAgICAgKQ0KPiArICAgICAgICApDQo+ICsgICAgICAgICdlbmR0aW1lJyAnOycN Cj4gKyAgICA7DQo+ICsNCj4gK21pbk1heFRpbWVTdGVwRGVmYXVsdFtOb2RlLCBUaW1lLCBLZXlW YWx1ZV0NCj4gKyAgICA6ICAgJ21pbmltdW0nICc9JyBOdW1iZXIgJywnDQo+ICsgICAgICAgICdt YXhpbXVtJyAnPScgTnVtYmVyICcsJw0KPiArICAgICAgICAoJ3N0ZXAnICc9JyBOdW1iZXIgJywn KT8NCj4gKyAgICAgICAgKCdkZWZhdWx0JyAnPScgTj1OdW1iZXIgJywnKT8NCj4gKyAgICA7DQo+ ICsNCj4gK3ZmclRpbWVGbGFncw0KPiArbG9jYWxzW0xGbGFncz0wXQ0KPiArICAgIDogICB0aW1l RmxhZ3NGaWVsZCAoJ3wnIHRpbWVGbGFnc0ZpZWxkKSoNCj4gKyAgICA7DQo+ICsNCj4gK3RpbWVG bGFnc0ZpZWxkDQo+ICtsb2NhbHNbTEZsYWc9MF0NCj4gKyAgICA6ICAgTnVtYmVyDQo+ICsgICAg fCAgICdIT1VSX1NVUFBSRVNTJw0KPiArICAgIHwgICAnTUlOVVRFX1NVUFBSRVNTJw0KPiArICAg IHwgICAnU0VDT05EX1NVUFBSRVNTJw0KPiArICAgIHwgICAnU1RPUkFHRV9OT1JNQUwnDQo+ICsg ICAgfCAgICdTVE9SQUdFX1RJTUUnDQo+ICsgICAgfCAgICdTVE9SQUdFX1dBS0VVUCcNCj4gKyAg ICA7DQo+ICsNCj4gK3ZmclN0YXRlbWVudENvbmRpdGlvbmFsDQo+ICtsb2NhbHNbTm9kZV0NCj4g KyAgICA6ICAgdmZyU3RhdGVtZW50RGlzYWJsZUlmU3RhdA0KPiArICAgIHwgICB2ZnJTdGF0ZW1l bnRTdXBwcmVzc0lmU3RhdCAvL2VuaGFuY2UgdG8gYmUgY29tcGF0aWJsZSBmb3IgZnJhbWV3b3Jr DQo+IGVuZGlmDQo+ICsgICAgfCAgIHZmclN0YXRlbWVudEdyYXlPdXRJZlN0YXQNCj4gKyAgICB8 ICAgdmZyU3RhdGVtZW50SW5jb25zaXN0ZW50SWZTdGF0ICAgLy90byBiZSBjb21wYXRpYmxlIGZv ciBmcmFtZXdvcmsNCj4gKyAgICA7DQo+ICsNCj4gKy8vIG5ldyBzZWVtcyB0byBiZSB0aGUgc2Ft ZSBhcyB0aGUgb2xkLCB3aHkgbmV3Pw0KPiArdmZyU3RhdGVtZW50Q29uZGl0aW9uYWxOZXcNCj4g K2xvY2Fsc1tOb2RlXQ0KPiArICAgIDogICB2ZnJTdGF0ZW1lbnREaXNhYmxlSWZTdGF0DQo+ICsg ICAgICAgIHZmclN0YXRlbWVudFN1cHByZXNzSWZTdGF0TmV3DQo+ICsgICAgICAgIHZmclN0YXRl bWVudEdyYXlPdXRJZlN0YXROZXcNCj4gKyAgICAgICAgdmZyU3RhdGVtZW50SW5jb25zaXN0ZW50 SWZTdGF0ICAgLy90byBiZSBjb21wYXRpYmxlIGZvciBmcmFtZXdvcmsNCj4gKyAgICA7DQo+ICsN Cj4gK3ZmclN0YXRlbWVudFN1cHByZXNzSWZTdGF0DQo+ICtsb2NhbHNbTm9kZV0NCj4gKyAgICA6 ICAgdmZyU3RhdGVtZW50U3VwcHJlc3NJZlN0YXROZXcNCj4gKyAgICA7DQo+ICsNCj4gK3ZmclN0 YXRlbWVudEdyYXlPdXRJZlN0YXQNCj4gK2xvY2Fsc1tOb2RlXQ0KPiArICAgIDogICB2ZnJTdGF0 ZW1lbnRHcmF5T3V0SWZTdGF0TmV3DQo+ICsgICAgOw0KPiArDQo+ICt2ZnJTdGF0ZW1lbnRTdGF0 TGlzdA0KPiArbG9jYWxzW05vZGVdDQo+ICsgICAgOiAgIHZmclN0YXRlbWVudFN0YXQNCj4gKyAg ICB8ICAgdmZyU3RhdGVtZW50UXVlc3Rpb25zDQo+ICsgICAgfCAgIHZmclN0YXRlbWVudENvbmRp dGlvbmFsDQo+ICsgICAgfCAgIHZmclN0YXRlbWVudExhYmVsDQo+ICsgICAgfCAgIHZmclN0YXRl bWVudEV4dGVuc2lvbg0KPiArICAgIHwgICB2ZnJTdGF0ZW1lbnRJbnZhbGlkDQo+ICsgICAgOw0K PiArDQo+ICt2ZnJTdGF0ZW1lbnRTdGF0TGlzdE9sZA0KPiArICAgIDogICB2ZnJTdGF0ZW1lbnRT dGF0DQo+ICsgICAgfCAgIHZmclN0YXRlbWVudFF1ZXN0aW9ucw0KPiArICAgIHwgICB2ZnJTdGF0 ZW1lbnRMYWJlbA0KPiArICAvLyBKdXN0IGZvciBmcmFtZXdvcmsgdmZyIGNvbXBhdGliaWxpdHkN Cj4gKyAgICB8ICAgdmZyU3RhdGVtZW50SW52YWxpZA0KPiArICAgIDsNCj4gKw0KPiArdmZyU3Rh dGVtZW50RGlzYWJsZUlmU3RhdA0KPiArbG9jYWxzW05vZGU9SWZyVHJlZU5vZGUoRUZJX0lGUl9E SVNBQkxFX0lGX09QKV0NCj4gKyAgICA6ICAgJ2Rpc2FibGVpZicgdmZyU3RhdGVtZW50RXhwcmVz c2lvbltsb2NhbGN0eC5Ob2RlXSAnOycNCj4gKyAgICAgICAgKHZmclN0YXRlbWVudFN0YXRMaXN0 KSoNCj4gKyAgICAgICAgJ2VuZGlmJyAnOycNCj4gKyAgICA7DQo+ICsNCj4gKw0KPiArLy8gQ29t cGF0aWJsZSBmb3IgZnJhbWV3b3JrIHZmciBmaWxlDQo+ICt2ZnJTdGF0ZW1lbnRncmF5b3V0SWZT dXBwcmVzc0lmDQo+ICtsb2NhbHNbTm9kZV0NCj4gKyAgICA6ICAgJ3N1cHByZXNzaWYnDQo+ICsg ICAgICAgICgnZmxhZ3MnICc9JyBmbGFnc0ZpZWxkICgnfCcgZmxhZ3NGaWVsZCkqICcsJyk/DQo+ ICsgICAgICAgIHZmclN0YXRlbWVudEV4cHJlc3Npb25bbG9jYWxjdHguTm9kZV0gJzsnDQo+ICsg ICAgOw0KPiArDQo+ICt2ZnJTdGF0ZW1lbnRzdXBwcmVzc0lmR3JheU91dElmDQo+ICtsb2NhbHNb Tm9kZV0NCj4gKyAgICA6ICAgJ2dyYXlvdXRpZicNCj4gKyAgICAgICAgKCdmbGFncycgJz0nIGZs YWdzRmllbGQgKCd8JyBmbGFnc0ZpZWxkKSogJywnKT8NCj4gKyAgICAgICAgdmZyU3RhdGVtZW50 RXhwcmVzc2lvbltsb2NhbGN0eC5Ob2RlXSAnOycNCj4gKyAgICA7DQo+ICsNCj4gK3ZmclN0YXRl bWVudFN1cHByZXNzSWZTdGF0TmV3DQo+ICtsb2NhbHNbTm9kZT1JZnJUcmVlTm9kZShFRklfSUZS X1NVUFBSRVNTX0lGX09QKV0NCj4gKyAgICA6ICAgJ3N1cHByZXNzaWYnDQo+ICsgICAgICAgICgn ZmxhZ3MnICc9JyBmbGFnc0ZpZWxkICgnfCcgZmxhZ3NGaWVsZCkqICcsJyk/DQo+ICsgICAgICAg IHZmclN0YXRlbWVudEV4cHJlc3Npb25bbG9jYWxjdHguTm9kZV0gJzsnDQo+ICsgICAgICAgICh2 ZnJTdGF0ZW1lbnRTdGF0TGlzdCkqDQo+ICsgICAgICAgICdlbmRpZicgJzsnDQo+ICsgICAgOw0K PiArDQo+ICt2ZnJTdGF0ZW1lbnRHcmF5T3V0SWZTdGF0TmV3DQo+ICtsb2NhbHNbTm9kZT1JZnJU cmVlTm9kZShFRklfSUZSX0dSQVlfT1VUX0lGX09QKV0NCj4gKyAgICA6ICAgJ2dyYXlvdXRpZicN Cj4gKyAgICAgICAgKCdmbGFncycgJz0nIGZsYWdzRmllbGQgKCd8JyBmbGFnc0ZpZWxkKSogJywn KT8NCj4gKyAgICAgICAgdmZyU3RhdGVtZW50RXhwcmVzc2lvbltsb2NhbGN0eC5Ob2RlXSAnOycN Cj4gKyAgICAgICAgKHZmclN0YXRlbWVudFN0YXRMaXN0KSoNCj4gKyAgICAgICAgJ2VuZGlmJyAn OycNCj4gKyAgICA7DQo+ICsNCj4gK3ZmclN0YXRlbWVudEluY29uc2lzdGVudElmU3RhdA0KPiAr bG9jYWxzW05vZGU9SWZyVHJlZU5vZGUoRUZJX0lGUl9JTkNPTlNJU1RFTlRfSUZfT1ApXQ0KPiAr ICAgIDogICAnaW5jb25zaXN0ZW50aWYnDQo+ICsgICAgICAgICdwcm9tcHQnICc9JyAnU1RSSU5H X1RPS0VOJyAnKCcgTnVtYmVyICcpJyAnLCcNCj4gKyAgICAgICAgKCdmbGFncycgJz0nIGZsYWdz RmllbGQgKCd8JyBmbGFnc0ZpZWxkKSogJywnKT8NCj4gKyAgICAgICAgdmZyU3RhdGVtZW50RXhw cmVzc2lvbltsb2NhbGN0eC5Ob2RlXQ0KPiArICAgICAgICAnZW5kaWYnICc7Jw0KPiArICAgIDsN Cj4gKw0KPiArdmZyU3RhdGVtZW50SW52YWxpZCAvLyBmb3IgY29tcGF0aWJpbGl0eQ0KPiArICAg IDogICB2ZnJTdGF0ZW1lbnRJbnZhbGlkSGlkZGVuDQo+ICsgICAgfCAgIHZmclN0YXRlbWVudElu dmFsaWRJbnZlbnRvcnkNCj4gKyAgICB8ICAgdmZyU3RhdGVtZW50SW52YWxpZFNhdmVSZXN0b3Jl RGVmYXVsdHMNCj4gKyAgICA7DQo+ICsNCj4gK3ZmclN0YXRlbWVudEludmFsaWRIaWRkZW4NCj4g KyAgICA6ICAgJ2hpZGRlbicNCj4gKyAgICAgICAgJ3ZhbHVlJyAnPScgTnVtYmVyICcsJw0KPiAr ICAgICAgICAna2V5JyAnPScgTnVtYmVyICc7Jw0KPiArICAgIDsNCj4gKw0KPiArdmZyU3RhdGVt ZW50SW52YWxpZEludmVudG9yeQ0KPiArICAgIDogICAnaW52ZW50b3J5Jw0KPiArICAgICAgICAn aGVscCcgJz0nICdTVFJJTkdfVE9LRU4nICcoJyBOdW1iZXIgJyknICcsJw0KPiArICAgICAgICAn dGV4dCcgJz0nICdTVFJJTkdfVE9LRU4nICcoJyBOdW1iZXIgJyknICcsJw0KPiArICAgICAgICAo J3RleHQnICc9JyAnU1RSSU5HX1RPS0VOJyAnKCcgTnVtYmVyICcpJyk/DQo+ICsgICAgICAgICc7 Jw0KPiArICAgIDsNCj4gKw0KPiArdmZyU3RhdGVtZW50SW52YWxpZFNhdmVSZXN0b3JlRGVmYXVs dHMNCj4gKyAgICA6ICAgKCAgICdzYXZlJw0KPiArICAgICAgICB8ICAgJ3Jlc3RvcmUnDQo+ICsg ICAgICAgICkNCj4gKyAgICAgICAgJ2RlZmF1bHRzJyAnLCcNCj4gKyAgICAgICAgJ2Zvcm1pZCcg Jz0nIE51bWJlciAnLCcNCj4gKyAgICAgICAgJ3Byb21wdCcgJz0nICdTVFJJTkdfVE9LRU4nICco JyBOdW1iZXIgJyknICcsJw0KPiArICAgICAgICAnaGVscCcgJz0nICdTVFJJTkdfVE9LRU4nICco JyBOdW1iZXIgJyknDQo+ICsgICAgICAgICgnLCcgJ2ZsYWdzJyAnPScgZmxhZ3NGaWVsZCAoJ3wn IGZsYWdzRmllbGQpKik/DQo+ICsgICAgICAgICgnLCcgJ2tleScgJz0nIE51bWJlcik/DQo+ICsg ICAgICAgICc7Jw0KPiArICAgIDsNCj4gK3ZmclN0YXRlbWVudExhYmVsDQo+ICtsb2NhbHNbTm9k ZT1JZnJUcmVlTm9kZShFRklfSUZSX0dVSURfT1ApXQ0KPiArICAgIDogICAnbGFiZWwnIE51bWJl ciAnOycNCj4gKyAgICA7DQo+ICsNCj4gK3ZmclN0YXRlbWVudEJhbm5lcg0KPiArbG9jYWxzW05v ZGU9SWZyVHJlZU5vZGUoRUZJX0lGUl9HVUlEX09QKV0NCj4gKyAgICA6ICAgJ2Jhbm5lcicgKCcs Jyk/DQo+ICsgICAgICAgICd0aXRsZScgJz0nICdTVFJJTkdfVE9LRU4nICcoJyBOdW1iZXIgJykn ICcsJw0KPiArICAgICAgICAoICAgKCAgICdsaW5lJyBOdW1iZXIgJywnDQo+ICsgICAgICAgICAg ICAgICAgJ2FsaWduJyAoJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnKSAnOycNCj4gKyAgICAg ICAgICAgICkNCj4gKyAgICAgICAgICAgIHwNCj4gKyAgICAgICAgICAgICggICAndGltZW91dCcg Jz0nIE51bWJlciAnOycNCj4gKyAgICAgICAgICAgICkNCj4gKyAgICAgICAgKQ0KPiArICAgIDsN Cj4gKw0KPiArdmZyU3RhdGVtZW50RXh0ZW5zaW9uDQo+ICtsb2NhbHNbTm9kZT1JZnJUcmVlTm9k ZShFRklfSUZSX0dVSURfT1ApLCBCdWZmZXI9Tm9uZSwgU2l6ZT0wLA0KPiBUeXBlTmFtZT0nJywg VHlwZVNpemU9MCwgSXNTdHJ1Y3Q9RmFsc2UsIEFycmF5TnVtPTBdDQo+ICsgICAgOiAgICdndWlk b3AnDQo+ICsgICAgICAgICdndWlkJyAnPScgZ3VpZERlZmluaXRpb24NCj4gKyAgICAgICAgKCAg ICcsJyBEPSdkYXRhdHlwZScgJz0nDQo+ICsgICAgICAgICAgICAoICAgJ1VJTlQ2NCcgKCdbJyBO dW1iZXIgJ10nKT8NCj4gKyAgICAgICAgICAgIHwgICAnVUlOVDMyJyAoJ1snIE51bWJlciAnXScp Pw0KPiArICAgICAgICAgICAgfCAgICdVSU5UMTYnICgnWycgTnVtYmVyICddJyk/DQo+ICsgICAg ICAgICAgICB8ICAgJ1VJTlQ4JyAoJ1snIE51bWJlciAnXScpPw0KPiArICAgICAgICAgICAgfCAg ICdCT09MRUFOJyAoJ1snIE51bWJlciAnXScpPw0KPiArICAgICAgICAgICAgfCAgICdFRklfU1RS SU5HX0lEJyAoJ1snIE51bWJlciAnXScpPw0KPiArICAgICAgICAgICAgfCAgICdFRklfSElJX0RB VEUnICgnWycgTnVtYmVyICddJyk/DQo+ICsgICAgICAgICAgICB8ICAgJ0VGSV9ISUlfVElNRScg KCdbJyBOdW1iZXIgJ10nKT8NCj4gKyAgICAgICAgICAgIHwgICAnRUZJX0hJSV9SRUYnICgnWycg TnVtYmVyICddJyk/DQo+ICsgICAgICAgICAgICB8ICAgU3RyaW5nSWRlbnRpZmllciAoJ1snIE51 bWJlciAnXScpPw0KPiArICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgKHZmckV4dGVuc2lv bkRhdGEpKg0KPiArICAgICAgICApPw0KPiArICAgICAgICAoDQo+ICsgICAgICAgICAgICAnLCcg KHZmclN0YXRlbWVudEV4dGVuc2lvbikqDQo+ICsgICAgICAgICAgICAnZW5kZ3VpZG9wJw0KPiAr ICAgICAgICApPw0KPiArICAgICAgICAnOycNCj4gKyAgICA7DQo+ICsNCj4gKw0KPiArdmZyRXh0 ZW5zaW9uRGF0YQ0KPiArbG9jYWxzW1RGTmFtZT0nJywgRk5hbWU9JycsIFRGVmFsdWU9Tm9uZV0N Cj4gKyAgICA6ICAgJywnICdkYXRhJyAoJ1snIEk9TnVtYmVyICddJyk/DQo+ICsgICAgICAgICgg Jy4nIGFycmF5TmFtZSkqICAnPScgTj1OdW1iZXINCj4gKyAgICA7DQo+ICsNCj4gKw0KPiArdmZy U3RhdGVtZW50TW9kYWwNCj4gK2xvY2Fsc1tOb2RlXQ0KPiArICAgIDogdmZyTW9kYWxUYWcgJzsn DQo+ICsgICAgOw0KPiArDQo+ICt2ZnJNb2RhbFRhZw0KPiArbG9jYWxzW05vZGU9SWZyVHJlZU5v ZGUoRUZJX0lGUl9NT0RBTF9UQUdfT1ApXQ0KPiArICAgIDogICAnbW9kYWwnDQo+ICsgICAgOw0K PiArDQo+ICt2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uW1BhcmVudE5vZGVdDQo+ICtsb2NhbHNbRXhw SW5mbz1FeHByZXNzaW9uSW5mbygpLCBOb2Rlcz1bXV0NCj4gKyAgICA6ICAgYW5kVGVybVtsb2Nh bGN0eC5FeHBJbmZvXSAoTD0nT1InIGFuZFRlcm1bbG9jYWxjdHguRXhwSW5mb10pKg0KPiArICAg IDsNCj4gKw0KPiArdmZyU3RhdGVtZW50RXhwcmVzc2lvblN1YltQYXJlbnROb2Rlc10NCj4gK2xv Y2Fsc1tFeHBJbmZvPUV4cHJlc3Npb25JbmZvKCksIE5vZGVzPVtdXQ0KPiArICAgIDogICBhbmRU ZXJtW2xvY2FsY3R4LkV4cEluZm9dICgnT1InIGFuZFRlcm1bbG9jYWxjdHguRXhwSW5mb10pKg0K PiArICAgIDsNCj4gKw0KPiArYW5kVGVybVtFeHBJbmZvXQ0KPiArbG9jYWxzW05vZGVzPVtdLCBM aW5lXQ0KPiArICAgIDogICBiaXR3aXNlb3JUZXJtW0V4cEluZm9dIChMPSdBTkQnIGJpdHdpc2Vv clRlcm1bRXhwSW5mb10pKg0KPiArICAgIDsNCj4gKw0KPiArYml0d2lzZW9yVGVybVtFeHBJbmZv XQ0KPiArbG9jYWxzW05vZGVzPVtdLCBMaW5lXQ0KPiArICAgIDogICBiaXR3aXNlYW5kVGVybVtF eHBJbmZvXSAoTD0nfCcgYml0d2lzZWFuZFRlcm1bRXhwSW5mb10pKg0KPiArICAgIDsNCj4gKw0K PiArDQo+ICtiaXR3aXNlYW5kVGVybVtFeHBJbmZvXQ0KPiArbG9jYWxzW05vZGVzPVtdLCBMaW5l XQ0KPiArICAgIDogICBlcXVhbFRlcm1bRXhwSW5mb10gKEw9JyYnIGVxdWFsVGVybVtFeHBJbmZv XSkqDQo+ICsgICAgOw0KPiArDQo+ICsNCj4gK2VxdWFsVGVybVtFeHBJbmZvXQ0KPiArbG9jYWxz W05vZGVzPVtdLCBMaW5lXQ0KPiArICAgIDogICBjb21wYXJlVGVybVtFeHBJbmZvXQ0KPiArICAg ICAgICAoZXF1YWxUZXJtU3VwcGxlbWVudGFyeVtFeHBJbmZvXSkqDQo+ICsgICAgOw0KPiArDQo+ ICsNCj4gK2VxdWFsVGVybVN1cHBsZW1lbnRhcnlbRXhwSW5mb10NCj4gK2xvY2Fsc1tOb2Rlcz1b XV0NCj4gKyAgICA6ICAgKCc9PScgY29tcGFyZVRlcm1bRXhwSW5mb10pICAjIGVxdWFsVGVybUVx dWFsUnVsZQ0KPiArICAgICAgICB8DQo+ICsgICAgICAgICgnIT0nIGNvbXBhcmVUZXJtW0V4cElu Zm9dKSAjIGVxdWFsVGVybU5vdEVxdWFsUnVsZQ0KPiArICAgIDsNCj4gKw0KPiArY29tcGFyZVRl cm1bRXhwSW5mb10NCj4gK2xvY2Fsc1tOb2Rlcz1bXV0NCj4gKyAgICA6ICAgc2hpZnRUZXJtW0V4 cEluZm9dDQo+ICsgICAgICAgIChjb21wYXJlVGVybVN1cHBsZW1lbnRhcnlbRXhwSW5mb10pKg0K PiArICAgIDsNCj4gKw0KPiArY29tcGFyZVRlcm1TdXBwbGVtZW50YXJ5W0V4cEluZm9dDQo+ICts b2NhbHNbTm9kZXM9W11dDQo+ICsgICAgOiAgICgnPCcgc2hpZnRUZXJtW0V4cEluZm9dKSAgICMg Y29tcGFyZVRlcm1MZXNzUnVsZQ0KPiArICAgICAgICB8DQo+ICsgICAgICAgICgnPD0nIHNoaWZ0 VGVybVtFeHBJbmZvXSkgICMgIGNvbXBhcmVUZXJtTGVzc0VxdWFsUnVsZQ0KPiArICAgICAgICB8 DQo+ICsgICAgICAgICgnPicgc2hpZnRUZXJtW0V4cEluZm9dKSAgICMgIGNvbXBhcmVUZXJtR3Jl YXRlclJ1bGUNCj4gKyAgICAgICAgfA0KPiArICAgICAgICAoJz49JyBzaGlmdFRlcm1bRXhwSW5m b10pICAjICBjb21wYXJlVGVybUdyZWF0ZXJFcXVhbFJ1bGUNCj4gKyAgICA7DQo+ICsNCj4gK3No aWZ0VGVybVtFeHBJbmZvXQ0KPiArbG9jYWxzW05vZGVzPVtdXQ0KPiArICAgIDogICBhZGRNaW51 c1Rlcm1bRXhwSW5mb10NCj4gKyAgICAgICAgKHNoaWZ0VGVybVN1cHBsZW1lbnRhcnlbRXhwSW5m b10pKg0KPiArICAgIDsNCj4gKw0KPiArc2hpZnRUZXJtU3VwcGxlbWVudGFyeVtFeHBJbmZvXQ0K PiArbG9jYWxzW05vZGVzPVtdXQ0KPiArICAgIDogICAoJzw8JyBhZGRNaW51c1Rlcm1bRXhwSW5m b10pICAjIHNoaWZ0VGVybUxlZnQNCj4gKyAgICAgICAgfA0KPiArICAgICAgICAoJz4+JyBhZGRN aW51c1Rlcm1bRXhwSW5mb10pICMgc2hpZnRUZXJtUmlnaHQNCj4gKyAgICA7DQo+ICsNCj4gK2Fk ZE1pbnVzVGVybVtFeHBJbmZvXQ0KPiArbG9jYWxzW05vZGVzPVtdXQ0KPiArICAgIDogICBtdWx0 ZGl2bW9kVGVybVtFeHBJbmZvXQ0KPiArICAgICAgICAoYWRkTWludXNUZXJtU3VwcGxlbWVudGFy eVtFeHBJbmZvXSkqDQo+ICsgICAgOw0KPiArDQo+ICthZGRNaW51c1Rlcm1TdXBwbGVtZW50YXJ5 W0V4cEluZm9dDQo+ICtsb2NhbHNbTm9kZXM9W11dDQo+ICsgICAgOiAgICgnKycgbXVsdGRpdm1v ZFRlcm1bRXhwSW5mb10pICMgYWRkTWludXNUZXJtcEFkZA0KPiArICAgICAgICB8DQo+ICsgICAg ICAgICgnLScgbXVsdGRpdm1vZFRlcm1bRXhwSW5mb10pICMgYWRkTWludXNUZXJtU3VidHJhY3QN Cj4gKyAgICA7DQo+ICsNCj4gK211bHRkaXZtb2RUZXJtW0V4cEluZm9dDQo+ICtsb2NhbHNbTm9k ZXM9W11dDQo+ICsgICAgOiAgIGNhc3RUZXJtW0V4cEluZm9dDQo+ICsgICAgICAgIChtdWx0ZGl2 bW9kVGVybVN1cHBsZW1lbnRhcnlbRXhwSW5mb10pKg0KPiArICAgIDsNCj4gKw0KPiArbXVsdGRp dm1vZFRlcm1TdXBwbGVtZW50YXJ5W0V4cEluZm9dDQo+ICtsb2NhbHNbTm9kZXM9W11dDQo+ICsg ICAgOiAgICgnKicgY2FzdFRlcm1bRXhwSW5mb10pICMgbXVsdGRpdm1vZFRlcm1NdWwNCj4gKyAg ICAgICAgfA0KPiArICAgICAgICAoJy8nIGNhc3RUZXJtW0V4cEluZm9dKSAjIG11bHRkaXZtb2RU ZXJtRGl2DQo+ICsgICAgICAgIHwNCj4gKyAgICAgICAgKCclJyBjYXN0VGVybVtFeHBJbmZvXSkg IyBtdWx0ZGl2bW9kVGVybU1vZHVsbw0KPiArICAgIDsNCj4gKw0KPiArY2FzdFRlcm1bRXhwSW5m b10NCj4gK2xvY2Fsc1tOb2Rlcz1bXV0NCj4gKyAgICA6ICAgKGNhc3RUZXJtU3ViKSoNCj4gKyAg ICAgICAgYXRvbVRlcm1bRXhwSW5mb10NCj4gKyAgICA7DQo+ICsNCj4gK2Nhc3RUZXJtU3ViDQo+ ICtsb2NhbHNbQ2FzdFR5cGU9MHhGRl0NCj4gKyAgICA6ICAgJygnDQo+ICsgICAgICAgICggICdC T09MRUFOJw0KPiArICAgICAgICB8ICAnVUlOVDY0Jw0KPiArICAgICAgICB8ICAnVUlOVDMyJw0K PiArICAgICAgICB8ICAnVUlOVDE2Jw0KPiArICAgICAgICB8ICAnVUlOVDgnDQo+ICsgICAgICAg ICkNCj4gKyAgICAgICAgJyknDQo+ICsNCj4gKyAgICA7DQo+ICsNCj4gK2F0b21UZXJtW0V4cElu Zm9dDQo+ICtsb2NhbHNbTm9kZXM9W11dDQo+ICsgICAgOiAgIHZmckV4cHJlc3Npb25DYXRlbmF0 ZVtFeHBJbmZvXQ0KPiArICAgIHwgICB2ZnJFeHByZXNzaW9uTWF0Y2hbRXhwSW5mb10NCj4gKyAg ICB8ICAgdmZyRXhwcmVzc2lvbk1hdGNoMltFeHBJbmZvXQ0KPiArICAgIHwgICB2ZnJFeHByZXNz aW9uUGFyZW5bRXhwSW5mb10NCj4gKyAgICB8ICAgdmZyRXhwcmVzc2lvbkJ1aWxkSW5GdW5jdGlv bltFeHBJbmZvXQ0KPiArICAgIHwgICB2ZnJFeHByZXNzaW9uQ29uc3RhbnRbRXhwSW5mb10NCj4g KyAgICB8ICAgdmZyRXhwcmVzc2lvblVuYXJ5T3BbRXhwSW5mb10NCj4gKyAgICB8ICAgdmZyRXhw cmVzc2lvblRlcm5hcnlPcFtFeHBJbmZvXQ0KPiArICAgIHwgICB2ZnJFeHByZXNzaW9uTWFwW0V4 cEluZm9dDQo+ICsgICAgfCAgICgnTk9UJyBhdG9tVGVybVtFeHBJbmZvXSkNCj4gKyAgICA7DQo+ ICsNCj4gK3ZmckV4cHJlc3Npb25DYXRlbmF0ZVtFeHBJbmZvXQ0KPiArbG9jYWxzW05vZGVzPVtd XQ0KPiArICAgIDogICAnY2F0ZW5hdGUnDQo+ICsgICAgICAgICcoJyB2ZnJTdGF0ZW1lbnRFeHBy ZXNzaW9uU3ViW2xvY2FsY3R4Lk5vZGVzXSAnLCcNCj4gdmZyU3RhdGVtZW50RXhwcmVzc2lvblN1 Yltsb2NhbGN0eC5Ob2Rlc10gJyknDQo+ICsgICAgOw0KPiArDQo+ICt2ZnJFeHByZXNzaW9uTWF0 Y2hbRXhwSW5mb10NCj4gK2xvY2Fsc1tOb2Rlcz1bXV0NCj4gKyAgICA6ICAgJ21hdGNoJw0KPiAr ICAgICAgICAnKCcgdmZyU3RhdGVtZW50RXhwcmVzc2lvblN1Yltsb2NhbGN0eC5Ob2Rlc10gICcs Jw0KPiB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViW2xvY2FsY3R4Lk5vZGVzXSAnKScNCj4gKyAg ICA7DQo+ICsNCj4gK3ZmckV4cHJlc3Npb25NYXRjaDJbRXhwSW5mb10NCj4gK2xvY2Fsc1tOb2Rl cz1bXV0NCj4gKyAgICA6ICAgJ21hdGNoMicNCj4gKyAgICAgICAgJygnIHZmclN0YXRlbWVudEV4 cHJlc3Npb25TdWJbbG9jYWxjdHguTm9kZXNdICcsJw0KPiArICAgICAgICB2ZnJTdGF0ZW1lbnRF eHByZXNzaW9uU3ViW2xvY2FsY3R4Lk5vZGVzXSAgJywnDQo+ICsgICAgICAgIGd1aWREZWZpbml0 aW9uICcpJw0KPiArICAgIDsNCj4gKw0KPiArdmZyRXhwcmVzc2lvblBhcmVuW0V4cEluZm9dDQo+ ICtsb2NhbHNbTm9kZXM9W11dDQo+ICsgICAgOiAgICcoJyB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9u U3ViW2xvY2FsY3R4Lk5vZGVzXSAgJyknDQo+ICsgICAgOw0KPiArDQo+ICt2ZnJFeHByZXNzaW9u QnVpbGRJbkZ1bmN0aW9uW0V4cEluZm9dDQo+ICtsb2NhbHNbTm9kZV0NCj4gKyAgICA6ICAgZHVw RXhwW0V4cEluZm9dDQo+ICsgICAgfCAgIHZhcmVxdmFsRXhwW0V4cEluZm9dDQo+ICsgICAgfCAg IGlkZXF2YWxFeHBbRXhwSW5mb10NCj4gKyAgICB8ICAgaWRlcWlkRXhwW0V4cEluZm9dDQo+ICsg ICAgfCAgIGlkZXF2YWxsaXN0RXhwW0V4cEluZm9dDQo+ICsgICAgfCAgIHF1ZXN0aW9ucmVmMUV4 cFtFeHBJbmZvXQ0KPiArICAgIHwgICBydWxlcmVmRXhwW0V4cEluZm9dDQo+ICsgICAgfCAgIHN0 cmluZ3JlZjFFeHBbRXhwSW5mb10NCj4gKyAgICB8ICAgcHVzaHRoaXNFeHBbRXhwSW5mb10NCj4g KyAgICB8ICAgc2VjdXJpdHlFeHBbRXhwSW5mb10NCj4gKyAgICB8ICAgZ2V0RXhwW0V4cEluZm9d DQo+ICsgICAgOw0KPiArDQo+ICtkdXBFeHBbRXhwSW5mb10NCj4gK2xvY2Fsc1tOb2RlPUlmclRy ZWVOb2RlKEVGSV9JRlJfRFVQX09QKV0NCj4gKyAgICA6ICAgJ2R1cCcNCj4gKyAgICA7DQo+ICsN Cj4gKw0KPiArdmFyZXF2YWxFeHBbRXhwSW5mb10NCj4gK2xvY2Fsc1tOb2RlXQ0KPiArICAgIDog ICAndmFyZXF2YWwnDQo+ICsgICAgICAgICd2YXInICcoJyBWTj1OdW1iZXIgJyknDQo+ICsgICAg ICAgICggICAnPT0nIE51bWJlcg0KPiArICAgICAgICB8ICAgJzw9JyBOdW1iZXINCj4gKyAgICAg ICAgfCAgICc8JyAgTnVtYmVyDQo+ICsgICAgICAgIHwgICAnPj0nIE51bWJlcg0KPiArICAgICAg ICB8ICAgJz4nICBOdW1iZXINCj4gKyAgICAgICAgKQ0KPiArICAgIDsNCj4gKw0KPiAraWRlcXZh bEV4cFtFeHBJbmZvXQ0KPiArbG9jYWxzW05vZGVdDQo+ICsgICAgOiAgIEk9J2lkZXF2YWwnIHZm clF1ZXN0aW9uRGF0YUZpZWxkTmFtZQ0KPiArICAgICAgICAoICAgJz09JyBOdW1iZXINCj4gKyAg ICAgICAgfCAgICc8PScgTnVtYmVyDQo+ICsgICAgICAgIHwgICAnPCcgTnVtYmVyDQo+ICsgICAg ICAgIHwgICAnPj0nIE51bWJlcg0KPiArICAgICAgICB8ICAgJz4nIE51bWJlcg0KPiArICAgICAg ICApDQo+ICsgICAgOw0KPiArDQo+ICtpZGVxaWRFeHBbRXhwSW5mb10NCj4gK2xvY2Fsc1tOb2Rl XQ0KPiArICAgIDogICBJPSdpZGVxaWQnIHZmclF1ZXN0aW9uRGF0YUZpZWxkTmFtZQ0KPiArICAg ICAgICAoICAgRT0nPT0nIHZmclF1ZXN0aW9uRGF0YUZpZWxkTmFtZQ0KPiArICAgICAgICB8ICAg TEU9Jzw9JyB2ZnJRdWVzdGlvbkRhdGFGaWVsZE5hbWUNCj4gKyAgICAgICAgfCAgIEw9JzwnIHZm clF1ZXN0aW9uRGF0YUZpZWxkTmFtZQ0KPiArICAgICAgICB8ICAgQkU9Jz49JyB2ZnJRdWVzdGlv bkRhdGFGaWVsZE5hbWUNCj4gKyAgICAgICAgfCAgIEI9Jz4nIHZmclF1ZXN0aW9uRGF0YUZpZWxk TmFtZQ0KPiArICAgICAgICApDQo+ICsgICAgOw0KPiArDQo+ICtpZGVxdmFsbGlzdEV4cFtFeHBJ bmZvXQ0KPiArbG9jYWxzW05vZGVdDQo+ICsgICAgOiAgICdpZGVxdmFsbGlzdCcgdmZyUXVlc3Rp b25EYXRhRmllbGROYW1lICc9PScgKE51bWJlcikrDQo+ICsgICAgOw0KPiArDQo+ICt2ZnJRdWVz dGlvbkRhdGFGaWVsZE5hbWUNCj4gK2xvY2Fsc1tRSWQ9RUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQs IE1hc2s9MCwgVmFySWRTdHI9JycsIExpbmU9Tm9uZV0NCj4gKyAgICA6ICAgKFNOMT1TdHJpbmdJ ZGVudGlmaWVyICdbJyBJPU51bWJlciAnXScpICMNCj4gdmZyUXVlc3Rpb25EYXRhRmllbGROYW1l UnVsZTENCj4gKyAgICAgICAgfCAgIChTTjI9U3RyaW5nSWRlbnRpZmllciAoJy4nIGFycmF5TmFt ZSkqKSAjDQo+IHZmclF1ZXN0aW9uRGF0YUZpZWxkTmFtZVJ1bGUyDQo+ICsgICAgOw0KPiArDQo+ ICthcnJheU5hbWUNCj4gK2xvY2Fsc1tTdWJTdHI9JycsIFN1YlN0clo9JyddDQo+ICsgICAgOiBT dHJpbmdJZGVudGlmaWVyICgnWycgTj1OdW1iZXIgJ10nKT8NCj4gKyAgICA7DQo+ICsNCj4gK3F1 ZXN0aW9ucmVmMUV4cFtFeHBJbmZvXQ0KPiArbG9jYWxzW05vZGU9SWZyVHJlZU5vZGUoRUZJX0lG Ul9RVUVTVElPTl9SRUYxX09QKV0NCj4gKyAgICA6ICAgJ3F1ZXN0aW9ucmVmJw0KPiArICAgICAg ICAnKCcgKCBTdHJpbmdJZGVudGlmaWVyIHwgTnVtYmVyICkgJyknDQo+ICsgICAgOw0KPiArDQo+ ICtydWxlcmVmRXhwW0V4cEluZm9dDQo+ICtsb2NhbHNbTm9kZT1JZnJUcmVlTm9kZShFRklfSUZS X1JVTEVfUkVGX09QKV0NCj4gKyAgICA6ICAgJ3J1bGVyZWYnICcoJyBTdHJpbmdJZGVudGlmaWVy ICcpJw0KPiArICAgIDsNCj4gKw0KPiArc3RyaW5ncmVmMUV4cFtFeHBJbmZvXQ0KPiArbG9jYWxz W05vZGU9SWZyVHJlZU5vZGUoRUZJX0lGUl9TVFJJTkdfUkVGMV9PUCldDQo+ICsgICAgOiAgICdz dHJpbmdyZWYnICcoJw0KPiArICAgICAgICAoDQo+ICsgICAgICAgICAgICAnU1RSSU5HX1RPS0VO JyAnKCcgTnVtYmVyICcpJw0KPiArICAgICAgICB8ICAgTnVtYmVyDQo+ICsgICAgICAgICkNCj4g Kw0KPiArDQo+ICsgICAgJyknDQo+ICsgICAgOw0KPiArDQo+ICtwdXNodGhpc0V4cFtFeHBJbmZv XQ0KPiArbG9jYWxzW05vZGU9SWZyVHJlZU5vZGUoRUZJX0lGUl9USElTX09QKV0NCj4gKyAgICA6 ICAgJ3B1c2h0aGlzJw0KPiArICAgIDsNCj4gKw0KPiArc2VjdXJpdHlFeHBbRXhwSW5mb10NCj4g K2xvY2Fsc1tOb2RlPUlmclRyZWVOb2RlKEVGSV9JRlJfU0VDVVJJVFlfT1ApXQ0KPiArICAgIDog ICAnc2VjdXJpdHknICcoJyBndWlkRGVmaW5pdGlvbiAnKScNCj4gKyAgICA7DQo+ICsNCj4gK251 bWVyaWNWYXJTdG9yZVR5cGUNCj4gK2xvY2Fsc1tWYXJUeXBlXQ0KPiArICAgIDogICAnTlVNRVJJ Q19TSVpFXzEnDQo+ICsgICAgfCAgICdOVU1FUklDX1NJWkVfMicNCj4gKyAgICB8ICAgJ05VTUVS SUNfU0laRV80Jw0KPiArICAgIHwgICAnTlVNRVJJQ19TSVpFXzgnDQo+ICsgICAgOw0KPiArDQo+ ICtnZXRFeHBbRXhwSW5mb10NCj4gK2xvY2Fsc1tCYXNlSW5mbz1FRklfVkFSU1RPUkVfSU5GTygp LA0KPiBOb2RlPUlmclRyZWVOb2RlKEVGSV9JRlJfR0VUX09QKV0NCj4gKyAgICA6ICAgJ2dldCcg JygnIHZmclN0b3JhZ2VWYXJJZFtsb2NhbGN0eC5CYXNlSW5mbywgRmFsc2VdKCd8JyAnZmxhZ3Mn ICc9Jw0KPiBudW1lcmljVmFyU3RvcmVUeXBlKT8gJyknDQo+ICsgICAgOw0KPiArDQo+ICt2ZnJF eHByZXNzaW9uQ29uc3RhbnRbRXhwSW5mb10NCj4gK2xvY2Fsc1tOb2RlXQ0KPiArICAgIDogICAn VFJVRScNCj4gKyAgICB8ICAgJ0ZBTFNFJw0KPiArICAgIHwgICAnT05FJw0KPiArICAgIHwgICAn T05FUycNCj4gKyAgICB8ICAgJ1pFUk8nDQo+ICsgICAgfCAgICdVTkRFRklORUQnDQo+ICsgICAg fCAgICdWRVJTSU9OJw0KPiArICAgIHwgICBOdW1iZXINCj4gKyAgICA7DQo+ICsNCj4gK3ZmckV4 cHJlc3Npb25VbmFyeU9wW0V4cEluZm9dDQo+ICtsb2NhbHNbTm9kZXNdDQo+ICsgICAgOiAgIGxl bmd0aEV4cFtFeHBJbmZvXQ0KPiArICAgIHwgICBiaXR3aXNlbm90RXhwW0V4cEluZm9dDQo+ICsg ICAgfCAgIHF1ZXN0aW9uMjNyZWZFeHBbRXhwSW5mb10NCj4gKyAgICB8ICAgc3RyaW5ncmVmMkV4 cFtFeHBJbmZvXQ0KPiArICAgIHwgICB0b2Jvb2xFeHBbRXhwSW5mb10NCj4gKyAgICB8ICAgdG9z dHJpbmdFeHBbRXhwSW5mb10NCj4gKyAgICB8ICAgdW5pbnRFeHBbRXhwSW5mb10NCj4gKyAgICB8 ICAgdG91cHBlckV4cFtFeHBJbmZvXQ0KPiArICAgIHwgICB0b2x3ZXJFeHBbRXhwSW5mb10NCj4g KyAgICB8ICAgc2V0RXhwW0V4cEluZm9dDQo+ICsgICAgOw0KPiArDQo+ICtsZW5ndGhFeHBbRXhw SW5mb10NCj4gK2xvY2Fsc1tOb2Rlcz1bXV0NCj4gKyAgICA6ICAgJ2xlbmd0aCcgJygnIHZmclN0 YXRlbWVudEV4cHJlc3Npb25TdWJbbG9jYWxjdHguTm9kZXNdICcpJw0KPiArICAgIDsNCj4gKw0K PiArYml0d2lzZW5vdEV4cFtFeHBJbmZvXQ0KPiArbG9jYWxzW05vZGVzPVtdXQ0KPiArICAgIDog ICAnficgJygnIHZmclN0YXRlbWVudEV4cHJlc3Npb25TdWJbbG9jYWxjdHguTm9kZXNdICcpJw0K PiArICAgIDsNCj4gKw0KPiArcXVlc3Rpb24yM3JlZkV4cFtFeHBJbmZvXQ0KPiArbG9jYWxzW05v ZGVzPVtdXQ0KPiArICAgIDogICAncXVlc3Rpb25yZWZ2YWwnDQo+ICsgICAgICAgICcoJw0KPiAr ICAgICAgICAoRGV2aWNlUGF0aCAnPScgJ1NUUklOR19UT0tFTicgJygnIE51bWJlciAnKScgJywn ICk/DQo+ICsgICAgICAgIChVdWlkICc9JyBndWlkRGVmaW5pdGlvbiAnLCcgKT8NCj4gKyAgICAg ICAgdmZyU3RhdGVtZW50RXhwcmVzc2lvblN1Yltsb2NhbGN0eC5Ob2Rlc10NCj4gKyAgICAgICAg JyknDQo+ICsgICAgOw0KPiArDQo+ICtzdHJpbmdyZWYyRXhwW0V4cEluZm9dDQo+ICtsb2NhbHNb Tm9kZXM9W11dDQo+ICsgICAgOiAgICdzdHJpbmdyZWZ2YWwnICcoJyB2ZnJTdGF0ZW1lbnRFeHBy ZXNzaW9uU3ViW2xvY2FsY3R4Lk5vZGVzXSAnKScNCj4gKyAgICA7DQo+ICsNCj4gK3RvYm9vbEV4 cFtFeHBJbmZvXQ0KPiArbG9jYWxzW05vZGVzPVtdXQ0KPiArICAgIDogICAnYm9vbHZhbCcgJygn IHZmclN0YXRlbWVudEV4cHJlc3Npb25TdWJbbG9jYWxjdHguTm9kZXNdICcpJw0KPiArICAgIDsN Cj4gKw0KPiArdG9zdHJpbmdFeHBbRXhwSW5mb10NCj4gK2xvY2Fsc1tOb2Rlcz1bXV0NCj4gKyAg ICA6ICAgJ3N0cmluZ3ZhbCcgKCdmb3JtYXQnICc9JyBOdW1iZXIgJywnICk/DQo+ICsgICAgICAg ICcoJyB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViW2xvY2FsY3R4Lk5vZGVzXSAnKScNCj4gKyAg ICA7DQo+ICsNCj4gK3VuaW50RXhwW0V4cEluZm9dDQo+ICtsb2NhbHNbTm9kZXM9W11dDQo+ICsg ICAgOiAgICd1bmludHZhbCcgJygnIHZmclN0YXRlbWVudEV4cHJlc3Npb25TdWJbbG9jYWxjdHgu Tm9kZXNdICcpJw0KPiArICAgIDsNCj4gKw0KPiArdG91cHBlckV4cFtFeHBJbmZvXQ0KPiArbG9j YWxzW05vZGVzPVtdXQ0KPiArICAgIDogICAndG91cHBlcicgJygnIHZmclN0YXRlbWVudEV4cHJl c3Npb25TdWJbbG9jYWxjdHguTm9kZXNdICcpJw0KPiArICAgIDsNCj4gKw0KPiArdG9sd2VyRXhw W0V4cEluZm9dDQo+ICtsb2NhbHNbTm9kZXM9W11dDQo+ICsgICAgOiAgICd0b2xvd2VyJyAnKCcg dmZyU3RhdGVtZW50RXhwcmVzc2lvblN1Yltsb2NhbGN0eC5Ob2Rlc10gJyknDQo+ICsgICAgOw0K PiArDQo+ICtzZXRFeHBbRXhwSW5mb10NCj4gK2xvY2Fsc1tCYXNlSW5mbz1FRklfVkFSU1RPUkVf SU5GTygpLCBOb2Rlcz1bXV0NCj4gKyAgICA6ICAgJ3NldCcNCj4gKyAgICAgICAgJygnDQo+ICsg ICAgICAgIHZmclN0b3JhZ2VWYXJJZFtsb2NhbGN0eC5CYXNlSW5mbywgRmFsc2VdKCd8JyAnZmxh Z3MnICc9Jw0KPiBudW1lcmljVmFyU3RvcmVUeXBlKT8gJywnDQo+ICsgICAgICAgIHZmclN0YXRl bWVudEV4cHJlc3Npb25TdWJbbG9jYWxjdHguTm9kZXNdDQo+ICsgICAgICAgICcpJw0KPiArICAg IDsNCj4gKw0KPiArdmZyRXhwcmVzc2lvblRlcm5hcnlPcFtFeHBJbmZvXQ0KPiArbG9jYWxzW05v ZGVzXQ0KPiArICAgIDogICBjb25kaXRpb25hbEV4cFtFeHBJbmZvXQ0KPiArICAgIHwgICBmaW5k RXhwW0V4cEluZm9dDQo+ICsgICAgfCAgIG1pZEV4cFtFeHBJbmZvXQ0KPiArICAgIHwgICB0b2tl bkV4cFtFeHBJbmZvXQ0KPiArICAgIHwgICBzcGFuRXhwW0V4cEluZm9dDQo+ICsgICAgOw0KPiAr DQo+ICtjb25kaXRpb25hbEV4cFtFeHBJbmZvXQ0KPiArbG9jYWxzW05vZGVzPVtdXQ0KPiArICAg IDogICAnY29uZCcNCj4gKyAgICAgICAgJygnDQo+ICsgICAgICAgIHZmclN0YXRlbWVudEV4cHJl c3Npb25TdWJbbG9jYWxjdHguTm9kZXNdDQo+ICsgICAgICAgICc/Jw0KPiArICAgICAgICB2ZnJT dGF0ZW1lbnRFeHByZXNzaW9uU3ViW2xvY2FsY3R4Lk5vZGVzXQ0KPiArICAgICAgICAnOicNCj4g KyAgICAgICAgdmZyU3RhdGVtZW50RXhwcmVzc2lvblN1Yltsb2NhbGN0eC5Ob2Rlc10NCj4gKyAg ICAgICAgJyknDQo+ICsgICAgOw0KPiArDQo+ICtmaW5kRXhwW0V4cEluZm9dDQo+ICtsb2NhbHNb Tm9kZXM9W11dDQo+ICsgICAgOiAgICdmaW5kJw0KPiArICAgICAgICAnKCcNCj4gKyAgICAgICAg ZmluZEZvcm1hdFtFeHBJbmZvXSAoJ3wnIGZpbmRGb3JtYXRbRXhwSW5mb10pKg0KPiArICAgICAg ICAnLCcNCj4gKyAgICAgICAgdmZyU3RhdGVtZW50RXhwcmVzc2lvblN1Yltsb2NhbGN0eC5Ob2Rl c10NCj4gKyAgICAgICAgJywnDQo+ICsgICAgICAgIHZmclN0YXRlbWVudEV4cHJlc3Npb25TdWJb bG9jYWxjdHguTm9kZXNdDQo+ICsgICAgICAgICcsJw0KPiArICAgICAgICB2ZnJTdGF0ZW1lbnRF eHByZXNzaW9uU3ViW2xvY2FsY3R4Lk5vZGVzXQ0KPiArICAgICAgICAnKScNCj4gKyAgICA7DQo+ ICsNCj4gK2ZpbmRGb3JtYXRbRXhwSW5mb10NCj4gK2xvY2Fsc1tGb3JtYXQ9MF0NCj4gKyAgICA6 ICAgJ1NFTlNJVElWRScgfCAnSU5TRU5TSVRJVkUnDQo+ICsgICAgOw0KPiArDQo+ICttaWRFeHBb RXhwSW5mb10NCj4gK2xvY2Fsc1tOb2Rlcz1bXV0NCj4gKyAgICA6ICAgJ21pZCcNCj4gKyAgICAg ICAgJygnDQo+ICsgICAgICAgIHZmclN0YXRlbWVudEV4cHJlc3Npb25TdWJbbG9jYWxjdHguTm9k ZXNdDQo+ICsgICAgICAgICcsJw0KPiArICAgICAgICB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3Vi W2xvY2FsY3R4Lk5vZGVzXQ0KPiArICAgICAgICAnLCcNCj4gKyAgICAgICAgdmZyU3RhdGVtZW50 RXhwcmVzc2lvblN1Yltsb2NhbGN0eC5Ob2Rlc10NCj4gKyAgICAgICAgJyknDQo+ICsgICAgOw0K PiArDQo+ICt0b2tlbkV4cFtFeHBJbmZvXQ0KPiArbG9jYWxzW05vZGVzPVtdXQ0KPiArICAgIDog ICAndG9rZW4nDQo+ICsgICAgICAgICcoJw0KPiArICAgICAgICB2ZnJTdGF0ZW1lbnRFeHByZXNz aW9uU3ViW2xvY2FsY3R4Lk5vZGVzXQ0KPiArICAgICAgICAnLCcNCj4gKyAgICAgICAgdmZyU3Rh dGVtZW50RXhwcmVzc2lvblN1Yltsb2NhbGN0eC5Ob2Rlc10NCj4gKyAgICAgICAgJywnDQo+ICsg ICAgICAgIHZmclN0YXRlbWVudEV4cHJlc3Npb25TdWJbbG9jYWxjdHguTm9kZXNdDQo+ICsgICAg ICAgICcpJw0KPiArICAgIDsNCj4gKw0KPiArc3BhbkV4cFtFeHBJbmZvXQ0KPiArbG9jYWxzW05v ZGVzPVtdXQ0KPiArICAgIDogICAnc3BhbicNCj4gKyAgICAgICAgJygnDQo+ICsgICAgICAgICdm bGFncycgJz0nIHNwYW5GbGFncyAoJ3wnIHNwYW5GbGFncykqDQo+ICsgICAgICAgICcsJw0KPiAr ICAgICAgICB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViW2xvY2FsY3R4Lk5vZGVzXQ0KPiArICAg ICAgICAnLCcNCj4gKyAgICAgICAgdmZyU3RhdGVtZW50RXhwcmVzc2lvblN1Yltsb2NhbGN0eC5O b2Rlc10NCj4gKyAgICAgICAgJywnDQo+ICsgICAgICAgIHZmclN0YXRlbWVudEV4cHJlc3Npb25T dWJbbG9jYWxjdHguTm9kZXNdDQo+ICsgICAgICAgICcpJw0KPiArICAgIDsNCj4gKw0KPiArc3Bh bkZsYWdzDQo+ICtsb2NhbHNbRmxhZz0wXQ0KPiArICAgIDogICBOdW1iZXINCj4gKyAgICB8ICAg J0xBU1RfTk9OX01BVENIJw0KPiArICAgIHwgICAnRklSU1RfTk9OX01BVENIJw0KPiArICAgIDsN Cj4gKw0KPiArdmZyRXhwcmVzc2lvbk1hcFtFeHBJbmZvXQ0KPiArbG9jYWxzW05vZGVzPVtdLCBO b2RlPUlmclRyZWVOb2RlKCldDQo+ICsgICAgOiAgICdtYXAnDQo+ICsgICAgICAgICcoJw0KPiAr ICAgICAgICB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViW2xvY2FsY3R4Lk5vZGVzXQ0KPiArICAg ICAgICAnOicNCj4gKyAgICAgICAgKCAgIHZmclN0YXRlbWVudEV4cHJlc3Npb25bbG9jYWxjdHgu Tm9kZV0NCj4gKyAgICAgICAgICAgICcsJw0KPiArICAgICAgICAgICAgdmZyU3RhdGVtZW50RXhw cmVzc2lvbltsb2NhbGN0eC5Ob2RlXQ0KPiArICAgICAgICAgICAgJzsnDQo+ICsgICAgICAgICkq DQo+ICsgICAgICAgICcpJw0KPiArICAgIDsNCj4gKw0KPiArDQo+ICtEZWZpbmUgOicjZGVmaW5l JzsNCj4gK0luY2x1ZGUgOiAnI2luY2x1ZGUnOw0KPiArRm9ybVBrZ1R5cGUgOiAnZm9ybXBrZ3R5 cGUnOw0KPiArT3BlbkJyYWNlIDogJ3snOw0KPiArQ2xvc2VCcmFjZSA6ICd9JzsNCj4gK09wZW5Q YXJlbiA6ICcoJzsNCj4gK0Nsb3NlUGFyZW4gOiAnKSc7DQo+ICtPcGVuQnJhY2tldCA6ICdbJzsN Cj4gK0Nsb3NlQnJhY2tldCA6ICddJzsNCj4gK0RvdCA6ICcuJzsNCj4gK05lZ2F0aXZlIDogJy0n Ow0KPiArQ29sb24gOiAnOic7DQo+ICtTbGFzaCA6ICcvJzsNCj4gK1NlbWljb2xvbiA6ICc7JzsN Cj4gK0NvbW1hIDogJywnOw0KPiArRXF1YWwgOiAnPT0nOw0KPiArTm90RXF1YWwgOiAnIT0nOw0K PiArTGVzc0VxdWFsOiAnPD0nOw0KPiArTGVzczonPCc7DQo+ICtHcmVhdGVyRXF1YWw6Jz49JzsN Cj4gK0dyZWF0ZXI6Jz4nOw0KPiArQml0V2lzZU9yOiAnfCc7DQo+ICtCaXRXaXNlQW5kOiAnJic7 DQo+ICsNCj4gK0RldmljZVBhdGggOiAnZGV2aWNlcGF0aCc7DQo+ICtGb3JtU2V0IDogJ2Zvcm1z ZXQnOw0KPiArRm9ybVNldElkIDogJ2Zvcm1zZXRpZCc7DQo+ICtFbmRGb3JtU2V0IDogJ2VuZGZv cm1zZXQnOw0KPiArVGl0bGUgOiAndGl0bGUnOw0KPiArRm9ybUlkIDogJ2Zvcm1pZCc7DQo+ICtP bmVPZiA6ICdvbmVvZic7DQo+ICtFbmRPbmVPZiA6ICdlbmRvbmVvZic7DQo+ICtQcm9tcHQgOiAn cHJvbXB0JzsNCj4gK09yZGVyZWRMaXN0IDogJ29yZGVyZWRsaXN0JzsNCj4gK01heENvbnRhaW5l cnMgOiAnbWF4Y29udGFpbmVycyc7DQo+ICtFbmRMaXN0IDogJ2VuZGxpc3QnOw0KPiArRW5kRm9y bSA6ICdlbmRmb3JtJzsNCj4gK0Zvcm0gOiAnZm9ybSc7DQo+ICtGb3JtTWFwIDogJ2Zvcm1tYXAn Ow0KPiArTWFwVGl0bGUgOiAnbWFwdGl0bGUnOw0KPiArTWFwR3VpZCA6ICdtYXBndWlkJzsNCj4g K1N1YnRpdGxlIDogJ3N1YnRpdGxlJzsNCj4gK0VuZFN1YnRpdGxlIDogJ2VuZHN1YnRpdGxlJzsN Cj4gK0hlbHAgOiAnaGVscCc7DQo+ICtUZXh0IDogJ3RleHQnOw0KPiArT3B0aW9uIDogJ29wdGlv bic7DQo+ICtGTEFHUyA6ICdmbGFncyc7DQo+ICtEYXRlIDogJ2RhdGUnOw0KPiArRW5kRGF0ZSA6 ICdlbmRkYXRlJzsNCj4gK1llYXIgOiAneWVhcic7DQo+ICtNb250aCA6ICdtb250aCc7DQo+ICtE YXkgOiAnZGF5JzsNCj4gK1RpbWUgOiAndGltZSc7DQo+ICtFbmRUaW1lIDogJ2VuZHRpbWUnOw0K PiArSG91ciA6ICdob3VyJzsNCj4gK01pbnV0ZSA6ICdtaW51dGUnOw0KPiArU2Vjb25kIDogJ3Nl Y29uZCc7DQo+ICtHcmF5T3V0SWYgOiAnZ3JheW91dGlmJzsNCj4gK0xhYmVsIDogJ2xhYmVsJzsN Cj4gK1RpbWVvdXQgOiAndGltZW91dCc7DQo+ICtJbnZlbnRvcnkgOiAnaW52ZW50b3J5JzsNCj4g K05vbk52RGF0YU1hcCA6ICdfTk9OX05WX0RBVEFfTUFQJzsNCj4gK1N0cnVjdCA6ICdzdHJ1Y3Qn Ow0KPiArVW5pb24gOiAndW5pb24nOw0KPiArQm9vbGVhbiA6ICdCT09MRUFOJzsNCj4gK1VpbnQ2 NCA6ICdVSU5UNjQnOw0KPiArVWludDMyIDogJ1VJTlQzMic7DQo+ICtVaW50MTYgOiAnVUlOVDE2 JzsNCj4gK1VpbnQ4IDonVUlOVDgnOw0KPiArRUZJX1NUUklOR19JRCA6J0VGSV9TVFJJTkdfSUQn Ow0KPiArRUZJX0hJSV9EQVRFIDogJ0VGSV9ISUlfREFURSc7DQo+ICtFRklfSElJX1RJTUUgOiAn RUZJX0hJSV9USU1FJzsNCj4gK0VGSV9ISUlfUkVGIDogJ0VGSV9ISUlfUkVGJzsNCj4gK1V1aWQg OiAnZ3VpZCc7DQo+ICtDaGVja0JveCA6ICdjaGVja2JveCc7DQo+ICtFbmRDaGVja0JveCA6ICdl bmRjaGVja2JveCc7DQo+ICtOdW1lcmljIDogJ251bWVyaWMnOw0KPiArRW5kTnVtZXJpYyA6ICdl bmRudW1lcmljJzsNCj4gK01pbmltdW0gOiAnbWluaW11bSc7DQo+ICtNYXhpbXVtIDogJ21heGlt dW0nOw0KPiArU3RlcCA6ICdzdGVwJzsNCj4gK0RlZmF1bHQgOiAnZGVmYXVsdCc7DQo+ICtQYXNz d29yZCA6ICdwYXNzd29yZCc7DQo+ICtFbmRQYXNzd29yZCA6ICdlbmRwYXNzd29yZCc7DQo+ICtT dHJpbmcgOiAnc3RyaW5nJzsNCj4gK0VuZFN0cmluZyA6ICdlbmRzdHJpbmcnOw0KPiArTWluU2l6 ZSA6ICdtaW5zaXplJzsNCj4gK01heFNpemUgOiAnbWF4c2l6ZSc7DQo+ICtFbmNvZGluZyA6ICdl bmNvZGluZyc7DQo+ICtTdXBwcmVzc0lmIDogJ3N1cHByZXNzaWYnOw0KPiArRGlzYWJsZUlmIDog J2Rpc2FibGVpZic7DQo+ICtIaWRkZW4gOiAnaGlkZGVuJzsNCj4gK0dvdG8gOiAnZ290byc7DQo+ ICtGb3JtU2V0R3VpZCA6ICdmb3Jtc2V0Z3VpZCc7DQo+ICtJbmNvbnNpc3RlbnRJZiA6ICdpbmNv bnNpc3RlbnRpZic7DQo+ICtXYXJuaW5nSWYgOiAnd2FybmluZ2lmJzsNCj4gK05vU3VibWl0SWYg OiAnbm9zdWJtaXRpZic7DQo+ICtFbmRJZiA6ICdlbmRpZic7DQo+ICtLZXkgOiAna2V5JzsNCj4g K0RlZmF1bHRGbGFnIDogJ0RFRkFVTFQnOw0KPiArTWFudWZhY3R1cmluZ0ZsYWcgOiAnTUFOVUZB Q1RVUklORyc7DQo+ICtDaGVja0JveERlZmF1bHRGbGFnIDogJ0NIRUNLQk9YX0RFRkFVTFQnOw0K PiArQ2hlY2tCb3hEZWZhdWx0TWZnRmxhZyA6ICdDSEVDS0JPWF9ERUZBVUxUX01GRyc7DQo+ICtJ bnRlcmFjdGl2ZUZsYWcgOiAnSU5URVJBQ1RJVkUnOw0KPiArTlZBY2Nlc3NGbGFnIDogJ05WX0FD Q0VTUyc7DQo+ICtSZXNldFJlcXVpcmVkRmxhZyA6ICdSRVNFVF9SRVFVSVJFRCc7DQo+ICtSZWNv bm5lY3RSZXF1aXJlZEZsYWcgOiAnUkVDT05ORUNUX1JFUVVJUkVEJzsNCj4gK0xhdGVDaGVja0Zs YWcgOiAnTEFURV9DSEVDSyc7DQo+ICtSZWFkT25seUZsYWcgOiAnUkVBRF9PTkxZJzsNCj4gK09w dGlvbk9ubHlGbGFnIDogJ09QVElPTlNfT05MWSc7DQo+ICtSZXN0U3R5bGVGbGFnIDogJ1JFU1Rf U1RZTEUnOw0KPiArQ2xhc3MgOiAnY2xhc3MnOw0KPiArU3ViY2xhc3MgOiAnc3ViY2xhc3MnOw0K PiArQ2xhc3NHdWlkIDogJ2NsYXNzZ3VpZCc7DQo+ICtUeXBlRGVmIDogJ3R5cGVkZWYnOw0KPiAr UmVzdG9yZSA6ICdyZXN0b3JlJzsNCj4gK1NhdmUgOiAnc2F2ZSc7DQo+ICtEZWZhdWx0cyA6ICdk ZWZhdWx0cyc7DQo+ICtCYW5uZXIgOiAgJ2Jhbm5lcic7DQo+ICtBbGlnbiA6ICdhbGlnbic7DQo+ ICtMZWZ0IDogJ2xlZnQnOw0KPiArUmlnaHQgOiAncmlnaHQnOw0KPiArQ2VudGVyIDogJ2NlbnRl cic7DQo+ICtMaW5lIDogJ2xpbmUnOw0KPiArTmFtZSA6ICduYW1lJzsNCj4gKw0KPiArVmFySWQ6 ICd2YXJpZCc7DQo+ICtRdWVzdGlvbjogJ3F1ZXN0aW9uJzsNCj4gK1F1ZXN0aW9uSWQ6ICdxdWVz dGlvbmlkJzsNCj4gK0ltYWdlOiAnaW1hZ2UnOw0KPiArTG9ja2VkOiAnbG9ja2VkJzsNCj4gK1J1 bGU6ICdydWxlJzsNCj4gK0VuZFJ1bGU6ICdlbmRydWxlJzsNCj4gK1ZhbHVlOiAndmFsdWUnOw0K PiArUmVhZDogJ3JlYWQnOw0KPiArV3JpdGU6ICd3cml0ZSc7DQo+ICtSZXNldEJ1dHRvbjogJ3Jl c2V0YnV0dG9uJzsNCj4gK0VuZFJlc2V0QnV0dG9uOiAnZW5kcmVzZXRidXR0b24nOw0KPiArRGVm YXVsdFN0b3JlOiAnZGVmYXVsdHN0b3JlJzsNCj4gK0F0dHJpYnV0ZTogJ2F0dHJpYnV0ZSc7DQo+ ICtWYXJzdG9yZTogJ3ZhcnN0b3JlJzsNCj4gK0VmaXZhcnN0b3JlOiAnZWZpdmFyc3RvcmUnOw0K PiArVmFyU2l6ZTogJ3ZhcnNpemUnOw0KPiArTmFtZVZhbHVlVmFyU3RvcmU6ICduYW1ldmFsdWV2 YXJzdG9yZSc7DQo+ICtBY3Rpb246ICdhY3Rpb24nOw0KPiArQ29uZmlnOiAnY29uZmlnJzsNCj4g K0VuZEFjdGlvbjogJ2VuZGFjdGlvbic7DQo+ICtSZWZyZXNoOiAncmVmcmVzaCc7DQo+ICtJbnRl cnZhbDogJ2ludGVydmFsJzsNCj4gK1ZhcnN0b3JlRGV2aWNlOiAndmFyc3RvcmVkZXZpY2UnOw0K PiArR3VpZE9wOiAnZ3VpZG9wJzsNCj4gK0VuZEd1aWRPcDogJ2VuZGd1aWRvcCc7DQo+ICtEYXRh VHlwZTogJ2RhdGF0eXBlJzsNCj4gK0RhdGE6ICdkYXRhJzsNCj4gK01vZGFsOiAnbW9kYWwnOw0K PiArDQo+ICsvLw0KPiArLy8gRGVmaW5lIHRoZSBjbGFzcyBhbmQgc3ViY2xhc3MgdG9rZW5zDQo+ ICsvLw0KPiArLy8NCj4gK0NsYXNzTm9uRGV2aWNlOiAnTk9OX0RFVklDRSc7DQo+ICtDbGFzc0Rp c2tEZXZpY2U6ICdESVNLX0RFVklDRSc7DQo+ICtDbGFzc1ZpZGVvRGV2aWNlOiAnVklERU9fREVW SUNFJzsNCj4gK0NsYXNzTmV0d29ya0RldmljZTogJ05FVFdPUktfREVWSUNFJzsNCj4gK0NsYXNz SW5wdXREZXZpY2U6ICdJTlBVVF9ERVZJQ0UnOw0KPiArQ2xhc3NPbkJvYXJkRGV2aWNlOiAnT05C T0FSRF9ERVZJQ0UnOw0KPiArQ2xhc3NPdGhlckRldmljZTogJ09USEVSX0RFVklDRSc7DQo+ICsN Cj4gK1N1YmNsYXNzU2V0dXBBcHBsaWNhdGlvbjogJ1NFVFVQX0FQUExJQ0FUSU9OJzsNCj4gK1N1 YmNsYXNzR2VuZXJhbEFwcGxpY2F0aW9uOiAnR0VORVJBTF9BUFBMSUNBVElPTic7DQo+ICtTdWJj bGFzc0Zyb250UGFnZTogJ0ZST05UX1BBR0UnOw0KPiArU3ViY2xhc3NTaW5nbGVVc2U6ICdTSU5H TEVfVVNFJzsNCj4gKw0KPiArWWVhclN1cHBwcmVzc0ZsYWc6ICdZRUFSX1NVUFBSRVNTJzsNCj4g K01vbnRoU3VwcHJlc3NGbGFnOiAnTU9OVEhfU1VQUFJFU1MnOw0KPiArRGF5U3VwcHJlc3NGbGFn OiAnREFZX1NVUFBSRVNTJzsNCj4gK0hvdXJTdXBwcHJlc3NGbGFnOiAnSE9VUl9TVVBQUkVTUyc7 DQo+ICtNaW51dGVTdXBwcmVzc0ZsYWc6ICdNSU5VVEVfU1VQUFJFU1MnOw0KPiArU2Vjb25kU3Vw cHJlc3NGbGFnOiAnU0VDT05EX1NVUFBSRVNTJzsNCj4gK1N0b3JhZ2VOb3JtYWxGbGFnOiAnU1RP UkFHRV9OT1JNQUwnOw0KPiArU3RvcmFnZVRpbWVGbGFnOiAnU1RPUkFHRV9USU1FJzsNCj4gK1N0 b3JhZ2VXYWtlVXBGbGFnOiAnU1RPUkFHRV9XQUtFVVAnOw0KPiArDQo+ICtVbmlRdWVGbGFnOiAn VU5JUVVFJzsNCj4gK05vRW1wdHlGbGFnOiAnTk9FTVBUWSc7DQo+ICsNCj4gK0NvbmQ6ICdjb25k JzsNCj4gK0ZpbmQ6ICdmaW5kJzsNCj4gK01pZDogJ21pZCc7DQo+ICtUb2s6ICd0b2tlbic7DQo+ ICtTcGFuOiAnc3Bhbic7DQo+ICsNCj4gKy8vIFRoZSBzeW50YXggb2YgZXhwcmVzc2lvbg0KPiAr DQo+ICtEdXA6ICdkdXAnOw0KPiArVmFyRXFWYWw6ICd2YXJlcXZhbCc7DQo+ICtWYXI6ICd2YXIn Ow0KPiArSWRFcVZhbDogJ2lkZXF2YWwnOw0KPiArSWRFcUlkOiAnaWRlcWlkJzsNCj4gK0lkRXFW YWxMaXN0OiAnaWRlcXZhbGxpc3QnOw0KPiArUXVlc3Rpb25SZWY6ICdxdWVzdGlvbnJlZic7DQo+ ICtSdWxlUmVmOiAncnVsZXJlZic7DQo+ICtTdHJpbmdSZWY6ICdzdHJpbmdyZWYnOw0KPiArUHVz aFRoaXM6ICdwdXNodGhpcyc7DQo+ICtTZWN1cml0eTogJ3NlY3VyaXR5JzsNCj4gK0dldDogJ2dl dCc7DQo+ICtUcnVlU3ltYm9sOiAnVFJVRSc7DQo+ICtGYWxzZVN5bWJvbDogJ0ZBTFNFJzsNCj4g K09uZTogJ09ORSc7DQo+ICtPbmVzOiAnT05FUyc7DQo+ICtaZXJvOiAnWkVSTyc7DQo+ICtVbmRl ZmluZWQ6ICdVTkRFRklORUQnOw0KPiArVmVyc2lvbjogJ1ZFUlNJT04nOw0KPiArTGVuZ3RoOiAn bGVuZ3RoJzsNCj4gK0FORDogJ0FORCc7DQo+ICtPUjogJ09SJzsNCj4gK05PVDogJ05PVCc7DQo+ ICtTZXQ6ICdzZXQnOw0KPiArQml0V2lzZU5vdDogJ34nOw0KPiArQm9vbFZhbDogJ2Jvb2x2YWwn Ow0KPiArU3RyaW5nVmFsOiAnc3RyaW5ndmFsJzsNCj4gK1VuSW50VmFsOiAndW5pbnR2YWwnOw0K PiArVG9VcHBlcjogJ3RvdXBwZXInOw0KPiArVG9Mb3dlcjogJ3RvbG93ZXInOw0KPiArTWF0Y2g6 ICdtYXRjaCc7DQo+ICtNYXRjaDI6ICdtYXRjaDInOw0KPiArQ2F0ZW5hdGU6ICdjYXRlbmF0ZSc7 DQo+ICtRdWVzdGlvblJlZlZhbDogJ3F1ZXN0aW9ucmVmdmFsJzsNCj4gK1N0cmluZ1JlZlZhbDog J3N0cmluZ3JlZnZhbCc7DQo+ICtNYXA6ICdtYXAnOw0KPiArUmVmcmVzaEd1aWQ6ICdyZWZyZXNo Z3VpZCc7DQo+ICtTdHJpbmdUb2tlbjogJ1NUUklOR19UT0tFTic7DQo+ICsNCj4gK09wdGlvbkRl ZmF1bHQ6ICdPUFRJT05fREVGQVVMVCc7DQo+ICtPcHRpb25EZWZhdWx0TWZnOiAnT1BUSU9OX0RF RkFVTFRfTUZHJzsNCj4gKw0KPiArTnVtZXJpY1NpemVPbmU6ICdOVU1FUklDX1NJWkVfMSc7DQo+ ICtOdW1lcmljU2l6ZVR3bzogJ05VTUVSSUNfU0laRV8yJzsNCj4gK051bWVyaWNTaXplRm91cjog J05VTUVSSUNfU0laRV80JzsNCj4gK051bWVyaWNTaXplRWlnaHQ6ICdOVU1FUklDX1NJWkVfOCc7 DQo+ICtEaXNQbGF5SW50RGVjOiAnRElTUExBWV9JTlRfREVDJzsNCj4gK0Rpc1BsYXlVSW50RGVj OiAnRElTUExBWV9VSU5UX0RFQyc7DQo+ICtEaXNQbGF5VUludEhleDogJ0RJU1BMQVlfVUlOVF9I RVgnOw0KPiArDQo+ICtJbnNlbnNpdGl2ZTogICdJTlNFTlNJVElWRSc7DQo+ICtTZW5zaXRpdmU6 ICdTRU5TSVRJVkUnOw0KPiArDQo+ICtMYXN0Tm9uTWF0Y2g6ICdMQVNUX05PTl9NQVRDSCc7DQo+ ICtGaXJzdE5vbk1hdGNoOiAnRklSU1RfTk9OX01BVENIJzsNCj4gKw0KPiArDQo+ICsNCj4gK051 bWJlcg0KPiArICAgIDogICAoJzB4J1swLTlBLUZhLWZdKykgfCBbMC05XSsNCj4gKyAgICA7DQo+ ICsNCj4gK1N0cmluZ0lkZW50aWZpZXINCj4gKyAgICA6ICAgW0EtWmEtel9dW0EtWmEtel8wLTld Kg0KPiArICAgIDsNCj4gKw0KPiArQ29tcGxleERlZmluZQ0KPiArICAgIDogICAnIycgV2hpdGVz cGFjZT8gJ2RlZmluZScgIH5bI1xyXG5dKg0KPiArICAgICAgICAtPiBza2lwDQo+ICsgICAgOw0K PiArDQo+ICsNCj4gK0xpbmVEZWZpbml0aW9uDQo+ICsgICAgOiAgICcjJyBXaGl0ZXNwYWNlPyAn bGluZScgIH5bI1xyXG5dKg0KPiArICAgICAgICAtPiBza2lwDQo+ICsgICAgOw0KPiArDQo+ICtJ bmNsdWRlRGVmaW5pdGlvbg0KPiArICAgIDogICAnIycgV2hpdGVzcGFjZT8gJ2luY2x1ZGUnICB+ WyNcclxuXSoNCj4gKyAgICAgICAgLT4gc2tpcA0KPiArICAgIDsNCj4gKw0KPiArV2hpdGVzcGFj ZQ0KPiArICAgIDogICBbIFx0XSsNCj4gKyAgICAgICAgLT4gc2tpcA0KPiArICAgIDsNCj4gKw0K PiArTmV3bGluZQ0KPiArICAgIDogICAoICAgJ1xyJyAnXG4nPw0KPiArICAgICAgICB8ICAgJ1xu Jw0KPiArICAgICAgICApDQo+ICsgICAgICAgIC0+IHNraXANCj4gKyAgICA7DQo+ICsNCj4gK0xp bmVDb21tZW50DQo+ICsgICAgOiAgICcvLycgfltcclxuXSoNCj4gKyAgICAgICAgLT4gc2tpcA0K PiArICAgIDsNCj4gKw0KPiArLy8gU2tpcCBvdmVyICdleHRlcm4nIGluIGFueSBpbmNsdWRlZCAu SCBmaWxlDQo+ICtFeHRlcm4NCj4gKyAgICA6ICdleHRlcm4nIH5bI1xyXG5dKg0KPiArICAgICAg ICAtPiBza2lwDQo+ICsgICAgOw0KPiBkaWZmIC0tZ2l0IGEvQmFzZVRvb2xzL1NvdXJjZS9QeXRo b24vVmZyQ29tcGlsZXIvVmZyU3ludGF4TGV4ZXIucHkNCj4gYi9CYXNlVG9vbHMvU291cmNlL1B5 dGhvbi9WZnJDb21waWxlci9WZnJTeW50YXhMZXhlci5weQ0KPiBpbmRleCAyYjdhNWMzMmEzLi4w ZTE2NWEwNDQ2IDEwMDY0NA0KPiAtLS0gYS9CYXNlVG9vbHMvU291cmNlL1B5dGhvbi9WZnJDb21w aWxlci9WZnJTeW50YXhMZXhlci5weQ0KPiArKysgYi9CYXNlVG9vbHMvU291cmNlL1B5dGhvbi9W ZnJDb21waWxlci9WZnJTeW50YXhMZXhlci5weQ0KPiBAQCAtMSwxNiArMSwxNSBAQA0KPiAgIyBH ZW5lcmF0ZWQgZnJvbSBWZnJTeW50YXguZzQgYnkgQU5UTFIgNC43LjINCj4gDQo+ICsNCj4gDQo+ ICtpbXBvcnQgc3lzDQo+IA0KPiAgZnJvbSBhbnRscjQgaW1wb3J0ICoNCj4gDQo+ICBmcm9tIGlv IGltcG9ydCBTdHJpbmdJTw0KPiANCj4gIGZyb20gdHlwaW5nIGltcG9ydCBUZXh0SU8NCj4gDQo+ IC1pbXBvcnQgc3lzDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtZnJvbSBWZnJD b21waWxlci5Db21tb25DdHlwZXMgaW1wb3J0ICoNCj4gDQo+IC1mcm9tIFZmckNvbXBpbGVyLlZm ckZvcm1Qa2cgaW1wb3J0ICoNCj4gDQo+IC1mcm9tIFZmckNvbXBpbGVyLlZmclV0aWxpdHkgaW1w b3J0ICoNCj4gDQo+IC1mcm9tIFZmckNvbXBpbGVyLlZmclRyZWUgaW1wb3J0ICoNCj4gDQo+IC0N Cj4gDQo+ICtmcm9tIFZmckNvbXBpbGVyLklmckN0eXBlcyBpbXBvcnQgKg0KPiANCj4gK2Zyb20g VmZyQ29tcGlsZXIuSWZyRm9ybVBrZyBpbXBvcnQgKg0KPiANCj4gK2Zyb20gVmZyQ29tcGlsZXIu SWZyVXRpbGl0eSBpbXBvcnQgKg0KPiANCj4gK2Zyb20gVmZyQ29tcGlsZXIuSWZyVHJlZSBpbXBv cnQgKg0KPiANCj4gK2Zyb20gVmZyQ29tcGlsZXIuSWZyRXJyb3IgaW1wb3J0ICoNCj4gDQo+ICtm cm9tIFZmckNvbXBpbGVyLklmclByZVByb2Nlc3MgaW1wb3J0ICoNCj4gDQo+IA0KPiANCj4gDQo+ IA0KPiAgZGVmIHNlcmlhbGl6ZWRBVE4oKToNCj4gDQo+IGRpZmYgLS1naXQgYS9CYXNlVG9vbHMv U291cmNlL1B5dGhvbi9WZnJDb21waWxlci9WZnJTeW50YXhQYXJzZXIucHkNCj4gYi9CYXNlVG9v bHMvU291cmNlL1B5dGhvbi9WZnJDb21waWxlci9WZnJTeW50YXhQYXJzZXIucHkNCj4gaW5kZXgg YjZhZjIxYjc5NS4uZDVkNjFhMjZhOSAxMDA2NDQNCj4gLS0tIGEvQmFzZVRvb2xzL1NvdXJjZS9Q eXRob24vVmZyQ29tcGlsZXIvVmZyU3ludGF4UGFyc2VyLnB5DQo+ICsrKyBiL0Jhc2VUb29scy9T b3VyY2UvUHl0aG9uL1ZmckNvbXBpbGVyL1ZmclN5bnRheFBhcnNlci5weQ0KPiBAQCAtMSwyMiAr MSwyMyBAQA0KPiAgIyBHZW5lcmF0ZWQgZnJvbSBWZnJTeW50YXguZzQgYnkgQU5UTFIgNC43LjIN Cj4gDQo+ICAjIGVuY29kaW5nOiB1dGYtOA0KPiANCj4gKw0KPiANCj4gK2ltcG9ydCBvcw0KPiAN Cj4gK2ltcG9ydCBzeXMNCj4gDQo+ICBmcm9tIGFudGxyNCBpbXBvcnQgKg0KPiANCj4gIGZyb20g aW8gaW1wb3J0IFN0cmluZ0lPDQo+IA0KPiAgZnJvbSB0eXBpbmcgaW1wb3J0IFRleHRJTw0KPiAN Cj4gLWltcG9ydCBzeXMNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1mcm9tIFZm ckNvbXBpbGVyLkNvbW1vbkN0eXBlcyBpbXBvcnQgKg0KPiANCj4gLWZyb20gVmZyQ29tcGlsZXIu VmZyRm9ybVBrZyBpbXBvcnQgKg0KPiANCj4gLWZyb20gVmZyQ29tcGlsZXIuVmZyVXRpbGl0eSBp bXBvcnQgKg0KPiANCj4gLWZyb20gVmZyQ29tcGlsZXIuVmZyVHJlZSBpbXBvcnQgKg0KPiANCj4g K2Zyb20gVmZyQ29tcGlsZXIuSWZyQ3R5cGVzIGltcG9ydCAqDQo+IA0KPiArZnJvbSBWZnJDb21w aWxlci5JZnJGb3JtUGtnIGltcG9ydCAqDQo+IA0KPiArZnJvbSBWZnJDb21waWxlci5JZnJVdGls aXR5IGltcG9ydCAqDQo+IA0KPiArZnJvbSBWZnJDb21waWxlci5JZnJUcmVlIGltcG9ydCAqDQo+ IA0KPiArZnJvbSBWZnJDb21waWxlci5JZnJFcnJvciBpbXBvcnQgKg0KPiANCj4gK2Zyb20gVmZy Q29tcGlsZXIuSWZyUHJlUHJvY2VzcyBpbXBvcnQgKg0KPiANCj4gDQo+IA0KPiANCj4gDQo+ICBk ZWYgc2VyaWFsaXplZEFUTigpOg0KPiANCj4gICAgICB3aXRoIFN0cmluZ0lPKCkgYXMgYnVmOg0K PiANCj4gDQo+IGJ1Zi53cml0ZSgiXDNcdTYwOGJcdWE3MmFcdTgxMzNcdWI5ZWRcdTQxN2NcdTNi ZTdcdTc3ODZcdTU5NjRcM1x1MDEwDQo+IDIiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJc dTBiYTNcNFwyXHRcMlw0XDNcdFwzXDRcNFx0XDRcNFw1XHRcNVw0XDZcdFw2XDRcN1x0XDciKQ0K PiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTBiYTdcNFwyXHRcMlw0XDNcdFwzXDRcNFx0XDRc NFw1XHRcNVw0XDZcdFw2XDRcN1x0XDciKQ0KPiANCj4gICAgICAgICAgYnVmLndyaXRlKCJcNFxi XHRcYlw0XHRcdFx0XDRcblx0XG5cNFwxM1x0XDEzXDRcZlx0XGZcNFxyXHRcclw0XDE2IikNCj4g DQo+ICAgICAgICAgIGJ1Zi53cml0ZSgiXHRcMTZcNFwxN1x0XDE3XDRcMjBcdFwyMFw0XDIxXHRc MjFcNFwyMlx0XDIyXDRcMjNcdFwyMyIpDQo+IA0KPiAgICAgICAgICBidWYud3JpdGUoIlw0XDI0 XHRcMjRcNFwyNVx0XDI1XDRcMjZcdFwyNlw0XDI3XHRcMjdcNFwzMFx0XDMwXDRcMzEiKQ0KPiAN Cj4gQEAgLTU0LDE1MjggKzU1LDE1MzAgQEAgZGVmIHNlcmlhbGl6ZWRBVE4oKToNCj4gDQo+IGJ1 Zi53cml0ZSgiXDRcdTAwYzBcdFx1MDBjMFw0XHUwMGMxXHRcdTAwYzFcNFx1MDBjMlx0XHUwMGMy XDRcdTAwYzMiKQ0KPiANCj4gDQo+IGJ1Zi53cml0ZSgiXHRcdTAwYzNcNFx1MDBjNFx0XHUwMGM0 XDRcdTAwYzVcdFx1MDBjNVw0XHUwMGM2XHRcdTAwYzYiKQ0KPiANCj4gDQo+IGJ1Zi53cml0ZSgi XDRcdTAwYzdcdFx1MDBjN1w0XHUwMGM4XHRcdTAwYzhcNFx1MDBjOVx0XHUwMGM5XDRcdTAwY2Ei KQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdFx1MDBjYVw0XHUwMGNiXHRcdTAwY2JcM1wy XDNcMlwzXDJcN1wyXHUwMTlhXG5cMlxmXDIiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJc MTZcMlx1MDE5ZFwxM1wyXDNcMlwzXDJcM1wzXDNcM1wzXDRcM1w0XDNcNFw1XDRcdTAxYTYiKQ0K PiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcblw0XDNcNFwzXDRcNVw0XHUwMWFhXG5cNFwzXDVc NVw1XHUwMWFkXG5cNVwzXDZcM1w2XDMiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcNlwz XDZcM1w2XDNcNlw1XDZcdTAxYjVcblw2XDNcNlwzXDZcM1w3XDVcN1x1MDFiYVxuXDciKQ0KPiAN Cj4gLSAgICAgICAgYnVmLndyaXRlKCJcM1w3XDNcN1w1XDdcdTAxYmVcblw3XDNcN1w1XDdcdTAx YzFcblw3XDNcN1wzXDdcM1w3XDMiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcN1w1XDdc dTAxYzdcblw3XDNcN1wzXDdcM1xiXDVcYlx1MDFjY1xuXGJcM1xiXDNcYlw1XGIiKQ0KPiANCj4g LQ0KPiBidWYud3JpdGUoIlx1MDFkMFxuXGJcM1xiXDVcYlx1MDFkM1xuXGJcM1xiXDNcYlwzXGJc M1xiXDVcYlx1MDFkOSIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlxuXGJcM1xiXDNcYlwz XHRcM1x0XDNcdFwzXHRcM1x0XDNcdFwzXHRcM1x0XDNcdFwzXHRcMyIpDQo+IA0KPiAtICAgICAg ICBidWYud3JpdGUoIlx0XDNcdFwzXHRcM1x0XDdcdFx1MDFlYlxuXHRcZlx0XDE2XHRcdTAxZWVc MTNcdFwzXG5cMyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlxuXDNcblwzXG5cM1xuXDVc blx1MDFmNVxuXG5cM1xuXDNcblwzXDEzXDNcMTNcM1wxM1wzIikNCj4gDQo+IC0gICAgICAgIGJ1 Zi53cml0ZSgiXDEzXDNcMTNcNVwxM1x1MDFmZVxuXDEzXDNcMTNcM1wxM1wzXGZcM1xmXDNcZlwz XGZcM1xmIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDVcZlx1MDIwN1xuXGZcM1xmXDNc ZlwzXHJcM1xyXDNcclwzXHJcM1xyXDVcclx1MDIxMFxuIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53 cml0ZSgiXHJcM1xyXDNcclwzXDE2XDNcMTZcM1wxNlwzXDE2XDNcMTZcNVwxNlx1MDIxOVxuXDE2 XDMiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcMTZcM1wxNlwzXDE3XDNcMTdcM1wxN1wz XDE3XDNcMTdcNVwxN1x1MDIyMlxuXDE3XDNcMTciKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRl KCJcM1wxN1wzXDIwXDNcMjBcM1wyMFwzXDIwXDNcMjBcNVwyMFx1MDIyYlxuXDIwXDNcMjBcMyIp DQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwyMFwzXDIxXDNcMjFcM1wyMVwzXDIxXDNcMjFc NVwyMVx1MDIzNFxuXDIxXDNcMjFcM1wyMSIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwz XDIyXDNcMjJcM1wyMlwzXDIyXDNcMjJcNVwyMlx1MDIzZFxuXDIyXDNcMjJcM1wyMlwzIikNCj4g DQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDIzXDNcMjNcM1wyM1wzXDIzXDNcMjNcNVwyM1x1MDI0 NlxuXDIzXDNcMjNcM1wyM1wzXDI0IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDNcMjRc NVwyNFx1MDI0Y1xuXDI0XDNcMjRcM1wyNFwzXDI0XDNcMjRcM1wyNVwzXDI1XDUiKQ0KPiANCj4g LQ0KPiBidWYud3JpdGUoIlwyNVx1MDI1NFxuXDI1XDNcMjVcM1wyNVwzXDI1XDNcMjVcM1wyNlwz XDI2XDVcMjZcdTAyNWMiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcblwyNlwzXDI2XDNc MjZcM1wyNlwzXDI2XDNcMjdcM1wyN1w1XDI3XHUwMjY0XG5cMjdcMyIpDQo+IA0KPiAtICAgICAg ICBidWYud3JpdGUoIlwyN1wzXDI3XDNcMjdcM1wyN1wzXDMwXDNcMzBcM1wzMFwzXDMwXDNcMzBc M1wzMFwzXDMwIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHRcdTAwY2FcNFx1MDBjYlx0 XHUwMGNiXDRcdTAwY2NcdFx1MDBjY1wzXDJcM1wyXDNcMlw3IikNCj4gDQo+ICsgICAgICAgIGJ1 Zi53cml0ZSgiXDJcdTAxOWNcblwyXGZcMlwxNlwyXHUwMTlmXDEzXDJcM1wyXDVcMlx1MDFhMlxu XDJcM1wzIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDNcM1wzXDRcM1w0XDNcNFw1XDRc dTAxYTlcblw0XDNcNFwzXDRcNVw0XHUwMWFkXG5cNFwzIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53 cml0ZSgiXDVcNVw1XHUwMWIwXG5cNVwzXDZcM1w2XDNcNlwzXDZcM1w2XDNcNlw1XDZcdTAxYjhc blw2IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDNcNlwzXDZcM1w3XDVcN1x1MDFiZFxu XDdcM1w3XDNcN1w1XDdcdTAxYzFcblw3XDNcN1w1IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0 ZSgiXDdcdTAxYzRcblw3XDNcN1wzXDdcM1w3XDNcN1w1XDdcdTAxY2Fcblw3XDNcN1wzXDdcM1xi IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcNVxiXHUwMWNmXG5cYlwzXGJcM1xiXDVcYlx1MDFk M1xuXGJcM1xiXDVcYlx1MDFkNlxuXGIiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcM1xi XDNcYlwzXGJcM1xiXDVcYlx1MDFkY1xuXGJcM1xiXDNcYlwzXHRcM1x0XDNcdFwzXHQiKQ0KPiAN Cj4gKyAgICAgICAgYnVmLndyaXRlKCJcM1x0XDNcdFwzXHRcM1x0XDNcdFwzXHRcM1x0XDNcdFwz XHRcM1x0XDdcdFx1MDFlZVxuXHQiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcZlx0XDE2 XHRcdTAxZjFcMTNcdFwzXG5cM1xuXDNcblwzXG5cM1xuXDVcblx1MDFmOFxuXG4iKQ0KPiANCj4g KyAgICAgICAgYnVmLndyaXRlKCJcM1xuXDNcblwzXDEzXDNcMTNcM1wxM1wzXDEzXDNcMTNcNVwx M1x1MDIwMVxuXDEzXDNcMTMiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcM1wxM1wzXGZc M1xmXDNcZlwzXGZcM1xmXDVcZlx1MDIwYVxuXGZcM1xmXDNcZlwzXHJcMyIpDQo+IA0KPiArICAg ICAgICBidWYud3JpdGUoIlxyXDNcclwzXHJcM1xyXDVcclx1MDIxM1xuXHJcM1xyXDNcclwzXDE2 XDNcMTZcM1wxNlwzIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDE2XDNcMTZcNVwxNlx1 MDIxY1xuXDE2XDNcMTZcM1wxNlwzXDE3XDNcMTdcM1wxN1wzXDE3IikNCj4gDQo+ICsgICAgICAg IGJ1Zi53cml0ZSgiXDNcMTdcNVwxN1x1MDIyNVxuXDE3XDNcMTdcM1wxN1wzXDIwXDNcMjBcM1wy MFwzXDIwXDMiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcMjBcNVwyMFx1MDIyZVxuXDIw XDNcMjBcM1wyMFwzXDIxXDNcMjFcM1wyMVwzXDIxXDNcMjEiKQ0KPiANCj4gKyAgICAgICAgYnVm LndyaXRlKCJcNVwyMVx1MDIzN1xuXDIxXDNcMjFcM1wyMVwzXDIyXDNcMjJcM1wyMlwzXDIyXDNc MjJcNSIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlwyMlx1MDI0MFxuXDIyXDNcMjJcM1wy MlwzXDIzXDNcMjNcM1wyM1wzXDIzXDNcMjNcNVwyMyIpDQo+IA0KPiArICAgICAgICBidWYud3Jp dGUoIlx1MDI0OVxuXDIzXDNcMjNcM1wyM1wzXDI0XDNcMjRcNVwyNFx1MDI0ZlxuXDI0XDNcMjRc MyIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlwyNFwzXDI0XDNcMjRcM1wyNVwzXDI1XDVc MjVcdTAyNTdcblwyNVwzXDI1XDNcMjVcM1wyNSIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUo IlwzXDI1XDNcMjZcM1wyNlw1XDI2XHUwMjVmXG5cMjZcM1wyNlwzXDI2XDNcMjZcM1wyNlwzIikN Cj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDI3XDNcMjdcNVwyN1x1MDI2N1xuXDI3XDNcMjdc M1wyN1wzXDI3XDNcMjdcM1wzMFwzXDMwIikNCj4gDQo+ICAgICAgICAgIGJ1Zi53cml0ZSgiXDNc MzBcM1wzMFwzXDMwXDNcMzBcM1wzMFwzXDMwXDNcMzBcM1wzMFwzXDMwXDNcMzBcM1wzMCIpDQo+ IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwzXDMwXDNcMzBcM1wzMFwzXDMwXDNcMzBcM1wzMFw1 XDMwXHUwMjgyXG5cMzBcM1wzMFwzIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDMwXDNc MzBcM1wzMFwzXDMwXDVcMzBcdTAyODlcblwzMFwzXDMwXDNcMzBcM1wzMFwzXDMwIikNCj4gDQo+ IC0gICAgICAgIGJ1Zi53cml0ZSgiXDNcMzBcNVwzMFx1MDI5MFxuXDMwXDNcMzBcM1wzMFwzXDMw XDNcMzBcM1wzMVwzXDMxXDMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzMVw1XDMxXHUwMjk5 XG5cMzFcM1wzMVwzXDMxXDVcMzFcdTAyOWRcblwzMVwzXDMxXDNcMzEiKQ0KPiANCj4gLQ0KPiBi dWYud3JpdGUoIlw1XDMxXHUwMmExXG5cMzFcM1wzMlwzXDMyXDNcMzJcN1wzMlx1MDJhNlxuXDMy XGZcMzJcMTYiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcMzJcdTAyYTlcMTNcMzJcM1wz M1wzXDMzXDNcMzRcM1wzNFwzXDM1XDdcMzVcdTAyYjBcbiIpDQo+IA0KPiAtICAgICAgICBidWYu d3JpdGUoIlwzNVxmXDM1XDE2XDM1XHUwMmIzXDEzXDM1XDNcMzZcM1wzNlwzXDM2XDNcMzZcM1wz NlwzIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDM2XDNcMzZcM1wzNlwzXDM2XDNcMzZc NVwzNlx1MDJiZlxuXDM2XDNcMzdcM1wzN1wzXDM3IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0 ZSgiXDNcMzdcM1wzN1wzXDM3XDNcMzdcM1wzN1wzXDM3XDNcMzdcM1wzN1wzXDM3XDNcMzdcNVwz NyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDJjZVxuXDM3XDNcMzdcM1wzN1wzIFwz IFwzIFwzIFwzIFwzIFwzIFwzIFwzIFwzIFwzIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgi IFwzIFwzIFwzIFwzIFwzIFwzIFw1IFx1MDJlM1xuIFwzIFwzIFwzIFwzIFw1IFx1MDJlOVxuIikN Cj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiIFwzIFwzIFwzIFwzIFwzIFwzIFwzIFwzIFwzIFwz IVwzIVwzIVwzIVwzIVwzIVwzIVwzIVwzIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiIVwz IVwzIVwzIVwzIVwzIVwzIVwzIVwzIVw1IVx1MDMwNVxuIVwzIVwzIVwzIVwzIVw1IVx1MDMwYiIp DQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlxuIVwzIVwzIVwzIVwzIVwzIVw3IVx1MDMxMlxu IVxmIVwxNiFcdTAzMTVcMTMhXDMhXDMhIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDMh XDMhXDMhXDMhXDMhXDMhXDMhXDMhXDMhXDMhXDMhXDMhXDMhXDMhXDUhXHUwMzI3XG4iKQ0KPiAN Cj4gLSAgICAgICAgYnVmLndyaXRlKCIhXDMhXDMhXDMhXDMhXDMhXDNcIlwzXCJcMyNcMyNcMyNc MyNcMyNcMyNcMyNcNSNcdTAzMzciKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlxuI1wzI1wzI1wz I1wzI1wzI1wzI1wzI1w2I1x1MDM0MFxuI1xyI1wxNiNcdTAzNDFcMyNcMyIpDQo+IA0KPiAtDQo+ IGJ1Zi53cml0ZSgiI1wzI1wzI1wzI1wzJFwzJFwzJFwzJFwzJFwzJFwzJFwzJVwzJVwzJVwzJVwz JVwzJVwzJVwzIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCImXDMmXDMmXDMmXDMmXDMmXDMmXDMm XDMmXDMmXDMmXDMmXDMmXDMmXDMmXDMmXDNcJ1wzXCciKQ0KPiANCj4gLSAgICAgICAgYnVmLndy aXRlKCJcM1wnXDNcJ1wzXCdcM1wnXDNcJ1wzXCdcM1wnXDNcJ1wzXCdcM1wnXDVcJ1x1MDM3M1xu XCciKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcM1wnXDNcJ1wzKFwzKFwzKFwzKFwzKFwz KVwzKVwzKVwzKlwzKlwzKlwzKlw1Klx1MDM4MyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUo IlxuKlwzKlwzKlwzKlwzKlwzKlw1Klx1MDM4YVxuKlwzKlwzKlwzKlwzKlw1Klx1MDM5MFxuIikN Cj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiKlwzK1wzK1wzK1wzK1wzK1wzK1wzK1wzK1wzK1wz K1wzK1wzK1wzK1wzK1wzLFwzLFwzLFwzIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiLFwz LFwzLFwzLFwzLFw1LFx1MDNhOFxuLFwzLVwzLVwzLVwzLVwzLVwzLVwzLVw3LVx1MDNiMSIpDQo+ IA0KPiAtICAgICAgICBidWYud3JpdGUoIlxuLVxmLVwxNi1cdTAzYjRcMTMtXDUtXHUwM2I2XG4t XDMuXDUuXHUwM2I5XG4uXDMuXDMuIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDMuXDMu XDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMiKQ0KPiANCj4g LSAgICAgICAgYnVmLndyaXRlKCIuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMu XDMuXDMuXDMuXDcuXHUwM2RlIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXG4uXGYuXDE2 Llx1MDNlMVwxMy5cMy5cNS5cdTAzZTRcbi5cMy9cMy9cMy9cMy9cMy9cMy8iKQ0KPiANCj4gLSAg ICAgICAgYnVmLndyaXRlKCJcMy9cM1w2MFwzXDYwXDNcNjFcM1w2MVw1XDYxXHUwM2YxXG5cNjFc M1w2MlwzXDYyXDNcNjIiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcN1w2Mlx1MDNmNlxu XDYyXGZcNjJcMTZcNjJcdTAzZjlcMTNcNjJcM1w2M1wzXDYzXDNcNjMiKQ0KPiANCj4gLSAgICAg ICAgYnVmLndyaXRlKCJcM1w2M1wzXDYzXDNcNjNcM1w2M1wzXDYzXDNcNjNcM1w2M1wzXDYzXDNc NjNcM1w2M1w3XDYzIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwNDA4XG5cNjNcZlw2 M1wxNlw2M1x1MDQwYlwxM1w2M1wzXDYzXDNcNjNcM1w2M1wzXDY0IikNCj4gDQo+IC0gICAgICAg IGJ1Zi53cml0ZSgiXDNcNjRcM1w2NFwzXDY0XDNcNjRcM1w2NFwzXDY0XDNcNjRcM1w2NFwzXDY0 XDNcNjRcM1w2NCIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwzXDY0XDNcNjRcM1w2NFw1 XDY0XHUwNDFmXG5cNjRcM1w2NVwzXDY1XDNcNjVcM1w2NVwzIikNCj4gDQo+IC0gICAgICAgIGJ1 Zi53cml0ZSgiXDY1XDNcNjVcM1w2NVwzXDY1XDNcNjVcM1w2NVwzXDY1XDNcNjVcM1w2NVwzXDY1 XDNcNjUiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcM1w2NVwzXDY1XDdcNjVcdTA0MzJc blw2NVxmXDY1XDE2XDY1XHUwNDM1XDEzXDY1XDNcNjUiKQ0KPiANCj4gLSAgICAgICAgYnVmLndy aXRlKCJcN1w2NVx1MDQzOFxuXDY1XGZcNjVcMTZcNjVcdTA0M2JcMTNcNjVcM1w2NVwzXDY1XDNc NjUiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcM1w2NlwzXDY2XDNcNjZcM1w2N1wzXDY3 XDNcNjdcMzhcMzhcMzhcMzhcMzhcMzhcMzhcMyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUo IjlcMzlcMzlcNTlcdTA0NTBcbjlcMzpcMzpcMzpcMzpcMzpcMzpcMzpcMzpcMzpcMzpcMzpcNSIp DQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIjpcdTA0NWRcbjpcMzpcMzpcNTpcdTA0NjFcbjpc MzpcMzpcMzpcNTpcdTA0NjZcbjpcMzpcMyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIjpc NzpcdTA0NmFcbjpcZjpcMTY6XHUwNDZkXDEzOlw1Olx1MDQ2ZlxuOlwzOlwzOlw1Olx1MDQ3MyIp DQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlxuOlwzO1wzO1w1O1x1MDQ3N1xuO1wzPFwzPFwz PFw3PFx1MDQ3Y1xuPFxmPFwxNjxcdTA0N2YiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJc MTM8XDM9XDM9XDM+XDM+XDM+XDM+XDM+XDM+XDM+XDM+XDM+XDM+XDM+XDM+XDM+XDM+XDMiKQ0K PiANCj4gLQ0KPiBidWYud3JpdGUoIj5cMz5cMz5cMz5cMz5cMz5cMz5cNT5cdTA0OThcbj5cMz5c Mz5cMz5cMz5cMz5cMz5cNz5cdTA0YTAiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcbj5c Zj5cMTY+XHUwNGEzXDEzPlwzPlwzPlwzPlwzPlwzPlw1Plx1MDRhYVxuPlwzPlwzPiIpDQo+IA0K PiAtDQo+IGJ1Zi53cml0ZSgiXDU+XHUwNGFlXG4+XDM+XDM+XDM/XDM/XDU/XHUwNGI0XG4/XDNA XDNAXDVAXHUwNGI4XG4iKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIkBcM0FcM0FcM0FcM0FcM0Fc M0FcM0FcM0FcM0FcM0FcM0FcM0FcM0FcM0FcM0FcM0FcM0FcMyIpDQo+IA0KPiArICAgICAgICBi dWYud3JpdGUoIlwzXDMwXDNcMzBcM1wzMFwzXDMwXDNcMzBcM1wzMFwzXDMwXDNcMzBcM1wzMFwz XDMwXDNcMzAiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcNVwzMFx1MDI4NVxuXDMwXDNc MzBcM1wzMFwzXDMwXDNcMzBcM1wzMFw1XDMwXHUwMjhjXG4iKQ0KPiANCj4gKyAgICAgICAgYnVm LndyaXRlKCJcMzBcM1wzMFwzXDMwXDNcMzBcM1wzMFwzXDMwXDVcMzBcdTAyOTNcblwzMFwzXDMw XDNcMzAiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcM1wzMFwzXDMwXDNcMzFcM1wzMVwz XDMxXDVcMzFcdTAyOWNcblwzMVwzXDMxXDNcMzFcNSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgi XDMxXHUwMmEwXG5cMzFcM1wzMVwzXDMxXDVcMzFcdTAyYTRcblwzMVwzXDMyXDNcMzJcM1wzMiIp DQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlw3XDMyXHUwMmE5XG5cMzJcZlwzMlwxNlwzMlx1 MDJhY1wxM1wzMlwzXDMzXDNcMzNcM1wzNCIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlwz XDM0XDNcMzVcN1wzNVx1MDJiM1xuXDM1XGZcMzVcMTZcMzVcdTAyYjZcMTNcMzVcM1wzNiIpDQo+ IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcMzZcM1wzNlwzXDM2XDNcMzZcM1wzNlwzXDM2XDNcMzZc M1wzNlwzXDM2XDVcMzZcdTAyYzIiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcblwzNlwz XDM3XDNcMzdcM1wzN1wzXDM3XDNcMzdcM1wzN1wzXDM3XDNcMzdcM1wzN1wzXDM3IikNCj4gDQo+ ICsgICAgICAgIGJ1Zi53cml0ZSgiXDNcMzdcM1wzN1wzXDM3XDVcMzdcdTAyZDFcblwzN1wzXDM3 XDNcMzdcMyBcMyBcMyBcMyAiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcMyBcMyBcMyBc MyBcMyBcMyBcMyBcMyBcMyBcMyBcMyBcMyBcMyBcNSBcdTAyZTZcbiBcMyIpDQo+IA0KPiArICAg ICAgICBidWYud3JpdGUoIiBcMyBcMyBcMyBcNSBcdTAyZWNcbiBcMyBcMyBcMyBcMyBcMyBcMyBc MyBcMyBcMyBcMyFcMyIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIiFcMyFcMyFcMyFcMyFc MyFcMyFcMyFcMyFcMyFcMyFcMyFcMyFcMyFcMyFcMyFcNSFcdTAzMDgiKQ0KPiANCj4gKyAgICAg ICAgYnVmLndyaXRlKCJcbiFcMyFcMyFcMyFcMyFcNSFcdTAzMGVcbiFcMyFcMyFcMyFcMyFcMyFc NyFcdTAzMTVcbiIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIiFcZiFcMTYhXHUwMzE4XDEz IVwzIVwzIVwzIVwzIVwzIVwzIVwzIVwzIVwzIVwzIVwzIVwzIikNCj4gDQo+ICsgICAgICAgIGJ1 Zi53cml0ZSgiIVwzIVwzIVwzIVwzIVw1IVx1MDMyYVxuIVwzIVwzIVwzIVwzIVwzIVwzXCJcM1wi XDMjXDMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIiNcMyNcMyNcMyNcMyNcMyNcNSNcdTAzM2Fc biNcMyNcMyNcMyNcMyNcMyNcMyNcMyNcNiNcdTAzNDMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUo IlxuI1xyI1wxNiNcdTAzNDRcMyNcMyNcMyNcMyNcMyNcMyRcMyRcMyRcMyRcMyRcMyRcMyRcMyIp DQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiJVwzJVwzJVwzJVwzJVwzJVwzJVwzJlwzJlwzJlwzJlwz JlwzJlwzJlwzJlwzJlwzJlwzJlwNCj4gMyIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIiZc MyZcMyZcMyZcMyZcM1wnXDNcJ1wzXCdcM1wnXDNcJ1wzXCdcM1wnXDNcJ1wzXCdcM1wnIikNCj4g DQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDNcJ1wzXCdcNVwnXHUwMzc2XG5cJ1wzXCdcM1wnXDMo XDMoXDMoXDMoXDMoXDMpXDMpXDMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIilcMypcMypcMypc MypcNSpcdTAzODZcbipcMypcMypcMypcMypcMypcNSpcdTAzOGRcbipcMyIpDQo+IA0KPiArDQo+ IGJ1Zi53cml0ZSgiKlwzKlwzKlwzKlw1Klx1MDM5M1xuKlwzK1wzK1wzK1wzK1wzK1wzK1wzK1wz K1wzK1wzK1wzIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiK1wzK1wzK1wzK1wzLFwzLFwz LFwzLFwzLFwzLFwzLFwzLFw1LFx1MDNhYlxuLFwzLVwzLVwzIikNCj4gDQo+ICsgICAgICAgIGJ1 Zi53cml0ZSgiLVwzLVwzLVwzLVwzLVw3LVx1MDNiNFxuLVxmLVwxNi1cdTAzYjdcMTMtXDUtXHUw M2I5XG4iKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCItXDMuXDUuXHUwM2JjXG4uXDMuXDMu XDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMiKQ0KPiANCj4gKyAgICAgICAgYnVmLndy aXRlKCIuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMuXDMu XDMiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCIuXDMuXDMuXDMuXDMuXDcuXHUwM2UxXG4u XGYuXDE2Llx1MDNlNFwxMy5cMy5cNS5cdTAzZTciKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRl KCJcbi5cMy9cMy9cMy9cMy9cMy9cMy9cMy9cM1w2MFwzXDYwXDNcNjFcM1w2MVw1XDYxXHUwM2Y0 IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXG5cNjFcM1w2MlwzXDYyXDNcNjJcN1w2Mlx1 MDNmOVxuXDYyXGZcNjJcMTZcNjJcdTAzZmMiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJc MTNcNjJcM1w2M1wzXDYzXDNcNjNcM1w2M1wzXDYzXDNcNjNcM1w2M1wzXDYzXDNcNjNcMyIpDQo+ IA0KPiArICAgICAgICBidWYud3JpdGUoIlw2M1wzXDYzXDNcNjNcM1w2M1w3XDYzXHUwNDBiXG5c NjNcZlw2M1wxNlw2M1x1MDQwZVwxMyIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlw2M1wz XDYzXDNcNjNcM1w2M1wzXDY0XDNcNjRcM1w2NFwzXDY0XDNcNjRcM1w2NFwzXDY0IikNCj4gDQo+ ICsgICAgICAgIGJ1Zi53cml0ZSgiXDNcNjRcM1w2NFwzXDY0XDNcNjRcM1w2NFwzXDY0XDNcNjRc M1w2NFw1XDY0XHUwNDIyXG4iKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcNjRcM1w2NVwz XDY1XDNcNjVcM1w2NVwzXDY1XDNcNjVcM1w2NVwzXDY1XDNcNjVcM1w2NSIpDQo+IA0KPiArICAg ICAgICBidWYud3JpdGUoIlwzXDY1XDNcNjVcM1w2NVwzXDY1XDNcNjVcM1w2NVwzXDY1XDdcNjVc dTA0MzVcblw2NVxmIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDY1XDE2XDY1XHUwNDM4 XDEzXDY1XDNcNjVcN1w2NVx1MDQzYlxuXDY1XGZcNjVcMTZcNjUiKQ0KPiANCj4gKyAgICAgICAg YnVmLndyaXRlKCJcdTA0M2VcMTNcNjVcM1w2NVwzXDY1XDNcNjVcM1w2NlwzXDY2XDNcNjZcM1w2 N1wzXDY3XDMiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcNjdcMzhcMzhcMzhcMzhcMzhc MzhcMzhcMzlcMzlcMzlcNTlcdTA0NTNcbjlcMzpcMzpcMyIpDQo+IA0KPiArICAgICAgICBidWYu d3JpdGUoIjpcMzpcMzpcMzpcMzpcMzpcMzpcMzpcMzpcNTpcdTA0NjBcbjpcMzpcMzpcNTpcdTA0 NjRcbiIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIjpcMzpcMzpcMzpcNTpcdTA0Njlcbjpc MzpcMzpcNzpcdTA0NmRcbjpcZjpcMTY6XHUwNDcwIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0 ZSgiXDEzOlw1Olx1MDQ3MlxuOlwzOlwzOlw1Olx1MDQ3NlxuOlwzO1wzO1w1O1x1MDQ3YVxuO1wz IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiPFwzPFwzPFw3PFx1MDQ3ZlxuPFxmPFwxNjxc dTA0ODJcMTM8XDM9XDM9XDM+XDM+XDM+XDMiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCI+ XDM+XDM+XDM+XDM+XDM+XDM+XDM+XDM+XDM+XDM+XDM+XDM+XDM+XDM+XDM+XDM+XDM+XDUiKQ0K PiANCj4gKw0KPiBidWYud3JpdGUoIj5cdTA0OWJcbj5cMz5cMz5cMz5cMz5cMz5cMz5cNz5cdTA0 YTNcbj5cZj5cMTY+XHUwNGE2IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMTM+XDM+XDM+XDM+ XDM+XDM+XDU+XHUwNGFkXG4+XDM+XDM+XDU+XHUwNGIxXG4+XDM+XDMiKQ0KPiANCj4gKw0KPiBi dWYud3JpdGUoIj5cMz9cMz9cNT9cdTA0Yjdcbj9cM0BcM0BcNUBcdTA0YmJcbkBcM0FcM0FcM0Fc M0FcM0FcMyINCj4gKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIkFcM0FcM0FcM0FcM0FcM0FcM0Fc M0FcM0FcM0FcM0FcM0FcM0FcM0FcM0FcM0FcM0FcM0FcMyIpDQo+IA0KPiANCj4gYnVmLndyaXRl KCJBXDNBXDNBXDNBXDNBXDNBXDNBXDNBXDNBXDNBXDNBXDNBXDNBXDNBXDNBXDNBXDNBXDNBXDMi KQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIkFcM0FcM0FcM0FcM0FcM0FcM0FcM0FcM0FcNUFcdTA0 ZTZcbkFcM0FcM0FcNUFcdTA0ZWFcbiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiQVwzQVwzQVwz QVwzQVwzQVw1QVx1MDRmMVxuQVwzQVwzQVwzQVwzQVw1QVx1MDRmN1xuQVwzIikNCj4gDQo+IC0N Cj4gYnVmLndyaXRlKCJBXDNBXDVBXHUwNGZiXG5BXDNBXDNBXDNCXDNCXDNCXDdCXHUwNTAyXG5C XGZCXDE2Qlx1MDUwNSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDEzQlwzQ1wzQ1w1Q1x1MDUw OVxuQ1wzRFwzRFwzRFwzRFwzRFwzRFwzRFwzRFwzRFwzRFw1IikNCj4gDQo+IC0NCj4gYnVmLndy aXRlKCJEXHUwNTE1XG5EXDNEXDNEXDNEXDNFXDNFXDNFXDNFXDNFXDNFXDVFXHUwNTIwXG5FXDNG XDMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIkZcM0ZcM0ZcM0ZcM0ZcM0ZcM0ZcM0ZcM0ZcM0Zc NUZcdTA1MmRcbkZcM0dcM0dcM0dcM0dcMyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiR1wzR1wz R1wzR1wzR1wzR1wzR1wzR1wzR1w3R1x1MDUzY1xuR1xmR1wxNkdcdTA1M2ZcMTMiKQ0KPiANCj4g LQ0KPiBidWYud3JpdGUoIkdcM0dcM0dcNUdcdTA1NDNcbkdcM0dcM0dcM0dcNUdcdTA1NDhcbkdc M0hcM0hcM0hcM0hcMyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiSFwzSFwzSFwzSFwzSFwzSFwz SFwzSFwzSFw3SFx1MDU1N1xuSFxmSFwxNkhcdTA1NWFcMTMiKQ0KPiANCj4gLQ0KPiBidWYud3Jp dGUoIkhcM0hcM0hcNUhcdTA1NWVcbkhcM0hcM0hcM0hcNUhcdTA1NjNcbkhcM0lcM0lcM0lcM0lc MyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIklcM0lcNUlcdTA1NmJcbklcM0pcM0pcM0pc M0pcM0pcM0tcM0tcM0tcM0tcM0tcM0tcM0tcMyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiS1wz TFwzTFwzTFwzTFwzTFwzTVwzTVwzTVwzTVwzTVwzTVwzTVwzTVwzTVwzTVwzTVwzTQ0KPiBcNSIp DQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiTVx1MDU4YlxuTVwzTVwzTVwzTVw1TVx1MDU5MFxuTVwz Tlw3Tlx1MDU5M1xuTlxmTlwxNg0KPiBOIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA1OTZc MTNOXDNPXDNPXDNPXDNPXDNPXDNPXDNPXDVPXHUwNTlmXG5PXDNQXDNQXDNQXDMiKQ0KPiANCj4g LQ0KPiBidWYud3JpdGUoIlBcM1BcM1BcM1BcM1BcNVBcdTA1YTlcblBcM1FcM1FcM1FcM1FcM1Fc M1FcM1FcM1FcN1FcdTA1DQo+IGIzIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcblFcZlFcMTZR XHUwNWI2XDEzUVwzUVwzUVw1UVx1MDViYVxuUVwzUVwzUVwzUVw1UVx1MDUNCj4gYmYiKQ0KPiAN Cj4gLQ0KPiBidWYud3JpdGUoIlxuUVwzUlwzUlwzUlwzUlwzUlwzUlwzUlwzUlw3Ulx1MDVjOVxu UlxmUlwxNlJcdTA1Y2NcMTMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlJcM1JcM1JcNVJcdTA1 ZDBcblJcM1JcM1JcM1JcNVJcdTA1ZDVcblJcM1NcM1NcM1NcM1NcMyIpDQo+IA0KPiAtICAgICAg ICBidWYud3JpdGUoIlNcM1NcM1NcM1NcNVNcdTA1ZGZcblNcM1NcM1NcM1NcM1NcNVNcdTA1ZTVc blNcM1RcM1RcMyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiVFwzVFwzVVwzVVwzVlwzVlwzVlwz VlwzVlwzVlwzVlwzVlwzVlwzVlwzVlwzVlwzVlwzVlwzIikNCj4gDQo+IC0NCj4gYnVmLndyaXRl KCJWXDNWXDNWXDNWXDNWXDVWXHUwNjAwXG5WXDNWXDNWXDdWXHUwNjA0XG5WXGZWXDE2Vlx1MDYw NyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDEzVlwzVlwzVlwzV1wzV1wzV1w3V1x1MDYwZVxu V1xmV1wxNldcdTA2MTFcMTNXXDNYXA0KPiAzIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgi WFwzWFwzWFwzWFwzWFwzWFwzWFwzWFwzWFwzWFw1WFx1MDYxZVxuWFwzWVwzWVwzWVwzWVwzIikN Cj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiWlwzWlwzWlwzWlwzW1w3W1x1MDYyOVxuW1xmW1wx NltcdTA2MmNcMTNbXDNcXFwzXFxcNVxcIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUw NjMwXG5cXFwzXVwzXVw1XVx1MDYzNFxuXVwzXlwzXlwzXlwzXlwzXlwzXlwzXlwzXlwzIikNCj4g DQo+IC0NCj4gYnVmLndyaXRlKCJeXDVeXHUwNjNmXG5eXDNeXDNeXDNeXDNeXDVeXHUwNjQ1XG5e XDNeXDNeXDNeXDNeXDNfXDMiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJfXDNfXDdfXHUw NjRlXG5fXGZfXDE2X1x1MDY1MVwxM19cM2BcM2BcM2BcM2BcM2BcM2BcNSIpDQo+IA0KPiAtICAg ICAgICBidWYud3JpdGUoImBcdTA2NTlcbmBcM2FcM2FcM2FcM2FcM2FcM2FcM2FcM2FcNWFcdTA2 NjNcbmFcM2FcM2FcMyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoImFcM2FcM2FcM2FcM2Fc M2FcM2FcM2FcM2FcM2JcM2JcM2JcN2JcdTA2NzNcbmJcZmJcMTZiIikNCj4gDQo+IC0NCj4gYnVm LndyaXRlKCJcdTA2NzZcMTNiXDNjXDNjXDVjXHUwNjdhXG5jXDNkXDNkXDVkXHUwNjdlXG5kXDNl XDNlXDMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoImVcM2VcM2VcM2VcM2VcM2VcM2VcNWVcdTA2 ODlcbmVcM2VcM2VcM2VcM2VcNWVcdTA2OGZcbiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUo ImVcM2VcM2VcM2VcM2VcM2VcM2ZcM2ZcM2ZcNWZcdTA2OTlcbmZcM2ZcM2ZcM2ZcM2ZcM2ZcNSIp DQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiZlx1MDZhMFxuZlwzZlwzZlwzZlwzZlwzZlwzZlw1Zlx1 MDZhOFxuZlwzZ1wzZ1wzZ1w3Z1x1MDZhZCIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXG5nXGZn XDE2Z1x1MDZiMFwxM2dcM2hcM2hcM2hcM2hcM2hcM2hcM2hcM2hcM2hcNWhcdTA2YmIiKQ0KPiAN Cj4gLSAgICAgICAgYnVmLndyaXRlKCJcbmhcM2lcM2lcM2lcM2lcM2lcM2lcM2lcM2lcM2lcNWlc dTA2YzZcbmlcM2lcNWlcdTA2YzkiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcbmlcM2lc M2lcM2lcM2lcM2pcM2pcM2pcN2pcdTA2ZDJcbmpcZmpcMTZqXHUwNmQ1XDEzaiIpDQo+IA0KPiAt ICAgICAgICBidWYud3JpdGUoIlwza1wza1w1a1x1MDZkOVxua1wzbFwzbFwzbFwzbFwzbFwzbFwz bFwzbFw1bFx1MDZlM1xuIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgibFwzbFwzbFwzbFwz bFw1bFx1MDZlOVxubFwzbFwzbFwzbFwzbFwzbFwzbFwzbFwzbFwzbFwzIikNCj4gDQo+IC0NCj4g YnVmLndyaXRlKCJsXDNsXDNsXDNtXDNtXDNtXDdtXHUwNmZhXG5tXGZtXDE2bVx1MDZmZFwxM21c M25cM25cMyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiblw1blx1MDcwMlxublwzb1wzb1wzb1wz b1wzb1wzb1wzb1wzb1w1b1x1MDcwY1xub1wzb1wzIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJv XDNvXDNvXDVvXHUwNzEyXG5vXDNvXDNvXDNvXDNvXDNvXDNvXDNvXDNvXDNvXDNvXDNvXDMiKQ0K PiANCj4gLQ0KPiBidWYud3JpdGUoIm9cNW9cdTA3MjBcbm9cM29cM29cM29cM29cM3BcM3BcM3Bc N3BcdTA3MjlcbnBcZnBcMTZwIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA3MmNcMTNwXDNx XDNxXDVxXHUwNzMwXG5xXDNyXDNyXDNyXDNyXDNyXDNyXDNyXDVyXHUwNzM5IikNCj4gDQo+IC0g ICAgICAgIGJ1Zi53cml0ZSgiXG5yXDNyXDNyXDNyXDNyXDNyXDVyXHUwNzQwXG5yXDNyXDNyXDNy XDNyXDNzXDNzXDNzXDciKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJzXHUwNzQ5XG5zXGZz XDE2c1x1MDc0Y1wxM3NcM3RcM3RcM3RcM3RcNXRcdTA3NTJcbnRcMyIpDQo+IA0KPiAtDQo+IGJ1 Zi53cml0ZSgidVwzdVwzdVwzdVwzdVwzdVwzdVwzdVw1dVx1MDc1Y1xudVwzdVwzdVwzdVwzdVwz dVwzdVwzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJBXDNBXDNBXDVBXHUwNGU5XG5BXDNBXDNB XDVBXHUwNGVkXG5BXDNBXDNBXDNBXDNBXDNBXDUiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIkFc dTA0ZjRcbkFcM0FcM0FcM0FcM0FcNUFcdTA0ZmFcbkFcM0FcM0FcNUFcdTA0ZmVcbkFcMyIpDQo+ IA0KPiArDQo+IGJ1Zi53cml0ZSgiQVwzQVwzQlwzQlwzQlw3Qlx1MDUwNVxuQlxmQlwxNkJcdTA1 MDhcMTNCXDNDXDNDXDVDXHUwNTBjIg0KPiApDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXG5DXDNE XDNEXDNEXDNEXDNEXDNEXDNEXDNEXDNEXDNEXDVEXHUwNTE4XG5EXDNEXDNEXDMiKQ0KPiANCj4g KyAgICAgICAgYnVmLndyaXRlKCJEXDNFXDNFXDNFXDNFXDNFXDNFXDVFXHUwNTIzXG5FXDNGXDNG XDNGXDNGXDNGXDNGXDNGXDMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIkZcM0ZcM0ZcM0ZcNUZc dTA1MzBcbkZcM0dcM0dcM0dcM0dcM0dcM0dcM0dcM0dcM0dcM0dcMyIpDQo+IA0KPiArDQo+IGJ1 Zi53cml0ZSgiR1wzR1wzR1w3R1x1MDUzZlxuR1xmR1wxNkdcdTA1NDJcMTNHXDNHXDNHXDVHXHUw NTQ2XG4iKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIkdcM0dcM0dcM0dcNUdcdTA1NGJcbkdcM0hc M0hcM0hcM0hcM0hcM0hcM0hcM0hcM0hcM0hcMyINCj4gKQ0KPiANCj4gKw0KPiBidWYud3JpdGUo IkhcM0hcM0hcN0hcdTA1NWFcbkhcZkhcMTZIXHUwNTVkXDEzSFwzSFwzSFw1SFx1MDU2MVxuIikN Cj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiSFwzSFwzSFwzSFw1SFx1MDU2NlxuSFwzSVwzSVwz SVwzSVwzSVwzSVw1SVx1MDU2ZVxuSVwzIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiSlwz SlwzSlwzSlwzSlwzS1wzS1wzS1wzS1wzS1wzS1wzS1wzS1wzTFwzTFwzTFwzTFwzTFwzIikNCj4g DQo+ICsNCj4gYnVmLndyaXRlKCJNXDNNXDNNXDNNXDNNXDNNXDNNXDNNXDNNXDNNXDNNXDNNXDVN XHUwNThlXG5NXDMNCj4gTVwzTVwzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJNXDVNXHUwNTkz XG5NXDNOXDdOXHUwNTk2XG5OXGZOXDE2Tlx1MDU5OVwxM05cM09cM09cMyIpDQo+IA0KPiArDQo+ IGJ1Zi53cml0ZSgiT1wzT1wzT1wzT1wzT1w1T1x1MDVhMlxuT1wzUFwzUFwzUFwzUFwzUFwzUFwz UFwzUFw1UFx1MDVhDQo+IGMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlxuUFwzUVwzUVwzUVwz UVwzUVwzUVwzUVwzUVw3UVx1MDViNlxuUVxmUVwxNlFcdTA1YjlcMTMNCj4gIikNCj4gDQo+ICsN Cj4gYnVmLndyaXRlKCJRXDNRXDNRXDVRXHUwNWJkXG5RXDNRXDNRXDNRXDVRXHUwNWMyXG5RXDNS XDNSXDNSXDNSXDMiDQo+ICkNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJSXDNSXDNSXDNSXDdSXHUw NWNjXG5SXGZSXDE2Ulx1MDVjZlwxM1JcM1JcM1JcNVJcdTA1ZDMiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlxuUlwzUlwzUlwzUlw1Ulx1MDVkOFxuUlwzU1wzU1wzU1wzU1wzU1wzU1wzU1wzU1w1 U1x1MDVlMiIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlxuU1wzU1wzU1wzU1wzU1w1U1x1 MDVlOFxuU1wzVFwzVFwzVFwzVFwzVVwzVVwzVlwzVlwzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRl KCJWXDNWXDNWXDNWXDNWXDNWXDNWXDNWXDNWXDNWXDNWXDNWXDNWXDNWXDNWXDNWXDNWXDVWXHUw NjAzDQo+ICIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXG5WXDNWXDNWXDdWXHUwNjA3XG5WXGZW XDE2Vlx1MDYwYVwxM1ZcM1ZcM1ZcM1dcM1dcM1ciKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3 V1x1MDYxMVxuV1xmV1wxNldcdTA2MTRcMTNXXDNYXDNYXDNYXDNYXDNYXDNYXDNYXDNYIikNCj4g DQo+ICsNCj4gYnVmLndyaXRlKCJcM1hcM1hcM1hcNVhcdTA2MjFcblhcM1lcM1lcM1lcM1lcM1pc M1pcM1pcM1pcM1tcN1tcdTA2MmMiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcbltcZltc MTZbXHUwNjJmXDEzW1wzXFxcM1xcXDVcXFx1MDYzM1xuXFxcM11cM11cNV1cdTA2MzciKQ0KPiAN Cj4gKyAgICAgICAgYnVmLndyaXRlKCJcbl1cM15cM15cM15cM15cM15cM15cM15cM15cM15cNV5c dTA2NDJcbl5cM15cM15cM15cMyIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIl5cNV5cdTA2 NDhcbl5cM15cM15cM15cM15cM19cM19cM19cN19cdTA2NTFcbl9cZl9cMTZfIikNCj4gDQo+ICsg ICAgICAgIGJ1Zi53cml0ZSgiXHUwNjU0XDEzX1wzYFwzYFwzYFwzYFwzYFwzYFw1YFx1MDY1Y1xu YFwzYVwzYVwzYVwzYVwzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJhXDNhXDNhXDNhXDVhXHUw NjY2XG5hXDNhXDNhXDNhXDNhXDNhXDNhXDNhXDNhXDNhXDNhXDMiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoImFcM2JcM2JcM2JcN2JcdTA2NzZcbmJcZmJcMTZiXHUwNjc5XDEzYlwzY1wzY1w1Y1x1 MDY3ZCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXG5jXDNkXDNkXDVkXHUwNjgxXG5kXDNlXDNl XDNlXDNlXDNlXDNlXDNlXDNlXDNlXDVlXHUwNjhjIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0 ZSgiXG5lXDNlXDNlXDNlXDNlXDVlXHUwNjkyXG5lXDNlXDNlXDNlXDNlXDNlXDNmXDNmXDNmXDUi KQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJmXHUwNjljXG5mXDNmXDNmXDNmXDNmXDNmXDVm XHUwNmEzXG5mXDNmXDNmXDNmXDNmXDNmXDMiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJm XDVmXHUwNmFiXG5mXDNnXDNnXDNnXDdnXHUwNmIwXG5nXGZnXDE2Z1x1MDZiM1wxM2dcMyIpDQo+ IA0KPiArICAgICAgICBidWYud3JpdGUoImhcM2hcM2hcM2hcM2hcM2hcM2hcM2hcM2hcNWhcdTA2 YmVcbmhcM2lcM2lcM2lcM2lcM2lcMyIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoImlcM2lc M2lcM2lcNWlcdTA2YzlcbmlcM2lcNWlcdTA2Y2NcbmlcM2lcM2lcM2lcM2lcM2pcMyIpDQo+IA0K PiArICAgICAgICBidWYud3JpdGUoImpcM2pcN2pcdTA2ZDVcbmpcZmpcMTZqXHUwNmQ4XDEzalwz a1wza1w1a1x1MDZkY1xua1wzIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgibFwzbFwzbFwz bFwzbFwzbFwzbFwzbFw1bFx1MDZlNlxubFwzbFwzbFwzbFwzbFw1bFx1MDZlYyIpDQo+IA0KPiAr ICAgICAgICBidWYud3JpdGUoIlxubFwzbFwzbFwzbFwzbFwzbFwzbFwzbFwzbFwzbFwzbFwzbFwz bFwzbVwzbVwzbVw3bVx1MDZmZCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXG5tXGZtXDE2bVx1 MDcwMFwxM21cM25cM25cM25cNW5cdTA3MDVcbm5cM29cM29cM29cM28iKQ0KPiANCj4gKw0KPiBi dWYud3JpdGUoIlwzb1wzb1wzb1wzb1w1b1x1MDcwZlxub1wzb1wzb1wzb1wzb1w1b1x1MDcxNVxu b1wzb1wzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJvXDNvXDNvXDNvXDNvXDNvXDNvXDNvXDNv XDNvXDNvXDVvXHUwNzIzXG5vXDNvXDNvXDNvXDMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIm9c M3BcM3BcM3BcN3BcdTA3MmNcbnBcZnBcMTZwXHUwNzJmXDEzcFwzcVwzcVw1cVx1MDczMyIpDQo+ IA0KPiArICAgICAgICBidWYud3JpdGUoIlxucVwzclwzclwzclwzclwzclwzclwzclw1clx1MDcz Y1xuclwzclwzclwzclwzclwzclw1IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiclx1MDc0 M1xuclwzclwzclwzclwzclwzc1wzc1wzc1w3c1x1MDc0Y1xuc1xmc1wxNnNcdTA3NGYiKQ0KPiAN Cj4gKyAgICAgICAgYnVmLndyaXRlKCJcMTNzXDN0XDN0XDN0XDN0XDV0XHUwNzU1XG50XDN1XDN1 XDN1XDN1XDN1XDN1XDN1XDN1XDUiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoInVcdTA3NWZcbnVc M3VcM3VcM3VcM3VcM3VcM3VcM3VcM3VcM3VcM3VcM3VcM3VcM3VcM3VcMyIpDQo+IA0KPiANCj4g YnVmLndyaXRlKCJ1XDN1XDN1XDN1XDN1XDN1XDN1XDN1XDN1XDN1XDN1XDN1XDN1XDN1XDN1XDN1 XDN1XDN1XDMiKQ0KPiANCj4gDQo+IGJ1Zi53cml0ZSgidVwzdVwzdVwzdVwzdVwzdVwzdVwzdVwz dVwzdVwzdVwzdVwzdVwzdVwzdVwzdVwzdVwzdVwzIikNCj4gDQo+IA0KPiBidWYud3JpdGUoInVc M3VcM3VcM3VcM3VcM3VcM3VcM3VcM3VcM3VcM3VcM3VcM3VcM3VcM3VcM3VcM3VcM3VcMyIpDQo+ IA0KPiAtDQo+IGJ1Zi53cml0ZSgidVwzdVwzdVwzdVwzdVwzdVwzdVwzdVwzdVwzdVwzdVwzdVwz dVw1dVx1MDdhN1xudVwzdVw3IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJ1XHUwN2FhXG51XGZ1 XDE2dVx1MDdhZFwxM3VcNXVcdTA3YWZcbnVcM3VcM3VcM3VcM3ZcMyIpDQo+IA0KPiAtICAgICAg ICBidWYud3JpdGUoInZcM3ZcM3ZcM3ZcM3ZcM3ZcM3ZcM3ZcM3ZcM3ZcM3ZcNXZcdTA3YzBcbnZc M3ZcM3ZcM3ZcMyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgidlw1dlx1MDdjNlxudlwzd1wzd1wz d1w3d1x1MDdjYlxud1xmd1wxNndcdTA3Y2VcMTN3XDMiKQ0KPiANCj4gLSAgICAgICAgYnVmLndy aXRlKCJ4XDN4XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDV5XHUwN2RhXG55XDN5XDN5XDN5XDN5 XDMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoInVcM3VcM3VcM3VcM3VcNXVcdTA3YWFcbnVcM3Vc N3VcdTA3YWRcbnVcZnVcMTZ1XHUwN2IwIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMTN1XDV1 XHUwN2IyXG51XDN1XDN1XDN1XDN2XDN2XDN2XDN2XDN2XDN2XDN2XDN2XDN2XDMiKQ0KPiANCj4g Kw0KPiBidWYud3JpdGUoInZcM3ZcM3ZcNXZcdTA3YzNcbnZcM3ZcM3ZcM3ZcM3ZcNXZcdTA3Yzlc bnZcM3dcM3dcM3dcNyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgid1x1MDdjZVxud1xmd1wxNndc dTA3ZDFcMTN3XDN4XDN4XDN5XDN5XDN5XDN5XDN5XDN5XDMiKQ0KPiANCj4gKyAgICAgICAgYnVm LndyaXRlKCJ5XDN5XDV5XHUwN2RkXG55XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5 XDN5XDMiKQ0KPiANCj4gICAgICAgICAgYnVmLndyaXRlKCJ5XDN5XDN5XDN5XDN5XDN5XDN5XDN5 XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDMiKQ0KPiANCj4gICAgICAgICAgYnVmLndy aXRlKCJ5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5 XDMiKQ0KPiANCj4gICAgICAgICAgYnVmLndyaXRlKCJ5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5 XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDMiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRl KCJ5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDN5XDV5XHUwODI1XG4i KQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJ5XDN5XDd5XHUwODI4XG55XGZ5XDE2eVx1MDgy YlwxM3lcNXlcdTA4MmRcbnlcM3lcM3lcMyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoInlc M3pcM3pcM3pcM3pcM3pcM3pcM3pcM3pcM3pcM3pcM3pcM3pcNXpcdTA4M2VcbnpcM3pcMyIpDQo+ IA0KPiAtICAgICAgICBidWYud3JpdGUoInpcM3pcM3pcNXpcdTA4NDRcbnpcM3tcM3tcM3tcN3tc dTA4NDlcbntcZntcMTZ7XHUwODRjIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDEze1wz fFwzfFwzfVwzfVwzfVwzfVw1fVx1MDg1NFxufVwzflwzflwzflwzflwzflwzXDE3NyIpDQo+IA0K PiAtDQo+IGJ1Zi53cml0ZSgiXDNcMTc3XDNcdTAwODBcM1x1MDA4MFwzXHUwMDgxXDNcdTAwODFc M1x1MDA4MVwzXHUwMDgxIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1x1MDA4MVwzXHUwMDgx XDVcdTAwODFcdTA4NjVcblx1MDA4MVwzXHUwMDgyXDNcdTAwODIiKQ0KPiANCj4gLQ0KPiBidWYu d3JpdGUoIlwzXHUwMDgyXDNcdTAwODJcNVx1MDA4Mlx1MDg2YlxuXHUwMDgyXDNcdTAwODNcM1x1 MDA4MyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcdTAwODNcM1x1MDA4M1w3XHUwMDgzXHUw ODcxXG5cdTAwODNcZlx1MDA4M1wxNlx1MDA4MyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUw ODc0XDEzXHUwMDgzXDNcdTAwODNcM1x1MDA4M1wzXHUwMDgzXDNcdTAwODRcM1x1MDA4NCIpDQo+ IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcdTAwODRcM1x1MDA4NFwzXHUwMDg0XDNcdTAwODRcN1x1 MDA4NFx1MDg3ZlxuXHUwMDg0IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcZlx1MDA4NFwxNlx1 MDA4NFx1MDg4MlwxM1x1MDA4NFwzXHUwMDg0XDNcdTAwODRcNVx1MDA4NCIpDQo+IA0KPiAtDQo+ IGJ1Zi53cml0ZSgiXHUwODg2XG5cdTAwODRcM1x1MDA4NFwzXHUwMDg0XDNcdTAwODRcM1x1MDA4 NVwzXHUwMDg1IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1x1MDA4NVwzXHUwMDg1XDNcdTAw ODVcM1x1MDA4NVw3XHUwMDg1XHUwODkxXG5cdTAwODUiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUo IlxmXHUwMDg1XDE2XHUwMDg1XHUwODk0XDEzXHUwMDg1XDNcdTAwODVcM1x1MDA4NVw1XHUwMDg1 IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA4OThcblx1MDA4NVwzXHUwMDg1XDNcdTAwODVc M1x1MDA4NVwzXHUwMDg2XDNcdTAwODYiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzXHUwMDg2 XDNcdTAwODZcM1x1MDA4NlwzXHUwMDg2XDdcdTAwODZcdTA4YTNcblx1MDA4NiIpDQo+IA0KPiAt DQo+IGJ1Zi53cml0ZSgiXGZcdTAwODZcMTZcdTAwODZcdTA4YTZcMTNcdTAwODZcM1x1MDA4Nlwz XHUwMDg2XDVcdTAwODYiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDhhYVxuXHUwMDg2XDNc dTAwODZcM1x1MDA4NlwzXHUwMDg2XDdcdTAwODZcdTA4YWZcbiIpDQo+IA0KPiAtDQo+IGJ1Zi53 cml0ZSgiXHUwMDg2XGZcdTAwODZcMTZcdTAwODZcdTA4YjJcMTNcdTAwODZcM1x1MDA4NlwzXHUw MDg2IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1x1MDA4NlwzXHUwMDg3XDNcdTAwODdcM1x1 MDA4N1wzXHUwMDg3XDNcdTAwODdcM1x1MDA4NyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDdc dTAwODdcdTA4YmRcblx1MDA4N1xmXHUwMDg3XDE2XHUwMDg3XHUwOGMwXDEzXHUwMDg3IikNCj4g DQo+IC0NCj4gYnVmLndyaXRlKCJcM1x1MDA4N1wzXHUwMDg3XDVcdTAwODdcdTA4YzRcblx1MDA4 N1wzXHUwMDg3XDNcdTAwODciKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcM1x1MDA4N1w3 XHUwMDg3XHUwOGM5XG5cdTAwODdcZlx1MDA4N1wxNlx1MDA4N1x1MDhjYyIpDQo+IA0KPiAtDQo+ IGJ1Zi53cml0ZSgiXDEzXHUwMDg3XDNcdTAwODdcM1x1MDA4N1wzXHUwMDg3XDNcdTAwODhcM1x1 MDA4OFwzXHUwMDg4IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgieVwzeVwzeVwzeVwzeVwz eVwzeVw1eVx1MDgyOFxueVwzeVw3eVx1MDgyYlxueVxmeVwxNnkiKQ0KPiANCj4gKyAgICAgICAg YnVmLndyaXRlKCJcdTA4MmVcMTN5XDV5XHUwODMwXG55XDN5XDN5XDN5XDN6XDN6XDN6XDN6XDN6 XDN6XDN6XDMiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJ6XDN6XDN6XDN6XDN6XDV6XHUw ODQxXG56XDN6XDN6XDN6XDN6XDV6XHUwODQ3XG56XDN7XDMiKQ0KPiANCj4gKyAgICAgICAgYnVm LndyaXRlKCJ7XDN7XDd7XHUwODRjXG57XGZ7XDE2e1x1MDg0ZlwxM3tcM3xcM3xcM31cM31cM31c M31cNSIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIn1cdTA4NTdcbn1cM35cM35cM35cM35c M35cM1wxNzdcM1wxNzdcM1x1MDA4MFwzXHUwMDgwIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJc M1x1MDA4MVwzXHUwMDgxXDNcdTAwODFcM1x1MDA4MVwzXHUwMDgxXDNcdTAwODFcNVx1MDA4MSIp DQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwODY4XG5cdTAwODFcM1x1MDA4MlwzXHUwMDgyXDNc dTAwODJcM1x1MDA4Mlw1XHUwMDgyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA4NmVcblx1 MDA4MlwzXHUwMDgzXDNcdTAwODNcM1x1MDA4M1wzXHUwMDgzXDdcdTAwODMiKQ0KPiANCj4gKw0K PiBidWYud3JpdGUoIlx1MDg3NFxuXHUwMDgzXGZcdTAwODNcMTZcdTAwODNcdTA4NzdcMTNcdTAw ODNcM1x1MDA4MyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcdTAwODNcM1x1MDA4M1wzXHUw MDg0XDNcdTAwODRcM1x1MDA4NFwzXHUwMDg0XDNcdTAwODQiKQ0KPiANCj4gKw0KPiBidWYud3Jp dGUoIlwzXHUwMDg0XDdcdTAwODRcdTA4ODJcblx1MDA4NFxmXHUwMDg0XDE2XHUwMDg0XHUwODg1 IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMTNcdTAwODRcM1x1MDA4NFwzXHUwMDg0XDVcdTAw ODRcdTA4ODlcblx1MDA4NFwzXHUwMDg0IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1x1MDA4 NFwzXHUwMDg0XDNcdTAwODVcM1x1MDA4NVwzXHUwMDg1XDNcdTAwODVcM1x1MDA4NSIpDQo+IA0K PiArDQo+IGJ1Zi53cml0ZSgiXDNcdTAwODVcN1x1MDA4NVx1MDg5NFxuXHUwMDg1XGZcdTAwODVc MTZcdTAwODVcdTA4OTciKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwxM1x1MDA4NVwzXHUwMDg1 XDNcdTAwODVcNVx1MDA4NVx1MDg5YlxuXHUwMDg1XDNcdTAwODUiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlwzXHUwMDg1XDNcdTAwODVcM1x1MDA4NlwzXHUwMDg2XDNcdTAwODZcM1x1MDA4Nlwz XHUwMDg2IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1x1MDA4Nlw3XHUwMDg2XHUwOGE2XG5c dTAwODZcZlx1MDA4NlwxNlx1MDA4Nlx1MDhhOSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDEz XHUwMDg2XDNcdTAwODZcM1x1MDA4Nlw1XHUwMDg2XHUwOGFkXG5cdTAwODZcM1x1MDA4NiIpDQo+ IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcdTAwODZcM1x1MDA4Nlw3XHUwMDg2XHUwOGIyXG5cdTAw ODZcZlx1MDA4NlwxNlx1MDA4NiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwOGI1XDEzXHUw MDg2XDNcdTAwODZcM1x1MDA4NlwzXHUwMDg2XDNcdTAwODdcM1x1MDA4NyIpDQo+IA0KPiArDQo+ IGJ1Zi53cml0ZSgiXDNcdTAwODdcM1x1MDA4N1wzXHUwMDg3XDNcdTAwODdcN1x1MDA4N1x1MDhj MFxuXHUwMDg3IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcZlx1MDA4N1wxNlx1MDA4N1x1MDhj M1wxM1x1MDA4N1wzXHUwMDg3XDNcdTAwODdcNVx1MDA4NyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXHUwOGM3XG5cdTAwODdcM1x1MDA4N1wzXHUwMDg3XDNcdTAwODdcN1x1MDA4N1x1MDhjY1xu IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAwODdcZlx1MDA4N1wxNlx1MDA4N1x1MDhjZlwx M1x1MDA4N1wzXHUwMDg3XDNcdTAwODciKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXHUwMDg3 XDNcdTAwODhcM1x1MDA4OFwzXHUwMDg4XDNcdTAwODhcM1x1MDA4OFwzXHUwMDg4IikNCj4gDQo+ IA0KPiBidWYud3JpdGUoIlwzXHUwMDg4XDNcdTAwODhcM1x1MDA4OFwzXHUwMDg4XDNcdTAwODhc M1x1MDA4OFwzXHUwMDg4IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1x1MDA4OFwzXHUwMDg4 XDNcdTAwODhcN1x1MDA4OFx1MDhkZVxuXHUwMDg4XGZcdTAwODgiKQ0KPiANCj4gLQ0KPiBidWYu d3JpdGUoIlwxNlx1MDA4OFx1MDhlMVwxM1x1MDA4OFwzXHUwMDg4XDNcdTAwODhcNVx1MDA4OFx1 MDhlNSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXG5cdTAwODhcM1x1MDA4OFwzXHUwMDg4XDNc dTAwODhcM1x1MDA4OFwzXHUwMDg5XDNcdTAwODkiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwz XHUwMDg5XDVcdTAwODlcdTA4ZWVcblx1MDA4OVwzXHUwMDhhXDNcdTAwOGFcM1x1MDA4YSIpDQo+ IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcdTAwOGFcM1x1MDA4YVwzXHUwMDhhXDNcdTAwOGFcM1x1 MDA4YVwzXHUwMDhhXDNcdTAwOGEiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3XHUwMDg4XHUw OGUxXG5cdTAwODhcZlx1MDA4OFwxNlx1MDA4OFx1MDhlNFwxM1x1MDA4OCIpDQo+IA0KPiArDQo+ IGJ1Zi53cml0ZSgiXDNcdTAwODhcM1x1MDA4OFw1XHUwMDg4XHUwOGU4XG5cdTAwODhcM1x1MDA4 OFwzXHUwMDg4IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1x1MDA4OFwzXHUwMDg4XDNcdTAw ODlcM1x1MDA4OVwzXHUwMDg5XDVcdTAwODlcdTA4ZjEiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUo IlxuXHUwMDg5XDNcdTAwOGFcM1x1MDA4YVwzXHUwMDhhXDNcdTAwOGFcM1x1MDA4YVwzXHUwMDhh IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1x1MDA4YVwzXHUwMDhhXDNcdTAwOGFcM1x1MDA4 YVwzXHUwMDhiXDNcdTAwOGJcM1x1MDA4YiIpDQo+IA0KPiANCj4gYnVmLndyaXRlKCJcM1x1MDA4 YlwzXHUwMDhiXDNcdTAwOGJcM1x1MDA4YlwzXHUwMDhiXDNcdTAwOGJcM1x1MDA4YiIpDQo+IA0K PiANCj4gYnVmLndyaXRlKCJcM1x1MDA4YlwzXHUwMDhiXDNcdTAwOGJcM1x1MDA4YlwzXHUwMDhi XDNcdTAwOGJcM1x1MDA4YiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcdTAwOGJcM1x1MDA4 YlwzXHUwMDhiXDNcdTAwOGJcM1x1MDA4YlwzXHUwMDhiXDNcdTAwOGIiKQ0KPiANCj4gLQ0KPiBi dWYud3JpdGUoIlw1XHUwMDhiXHUwOTBmXG5cdTAwOGJcM1x1MDA4YlwzXHUwMDhiXDNcdTAwOGNc M1x1MDA4YyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcdTAwOGJcM1x1MDA4YlwzXHUwMDhi XDNcdTAwOGJcNVx1MDA4Ylx1MDkxMlxuXHUwMDhiIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJc M1x1MDA4YlwzXHUwMDhiXDNcdTAwOGNcM1x1MDA4Y1wzXHUwMDhjXDNcdTAwOGNcM1x1MDA4YyIp DQo+IA0KPiANCj4gYnVmLndyaXRlKCJcM1x1MDA4Y1wzXHUwMDhjXDNcdTAwOGNcM1x1MDA4Y1wz XHUwMDhjXDNcdTAwOGNcM1x1MDA4YyIpDQo+IA0KPiANCj4gYnVmLndyaXRlKCJcM1x1MDA4Y1wz XHUwMDhjXDNcdTAwOGNcM1x1MDA4Y1wzXHUwMDhjXDNcdTAwOGNcM1x1MDA4YyIpDQo+IA0KPiAN Cj4gYnVmLndyaXRlKCJcM1x1MDA4Y1wzXHUwMDhjXDNcdTAwOGNcM1x1MDA4Y1wzXHUwMDhjXDNc dTAwOGNcM1x1MDA4YyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcdTAwOGNcM1x1MDA4Y1wz XHUwMDhjXDdcdTAwOGNcdTA5MmRcblx1MDA4Y1xmXHUwMDhjIikNCj4gDQo+IC0NCj4gYnVmLndy aXRlKCJcMTZcdTAwOGNcdTA5MzBcMTNcdTAwOGNcNVx1MDA4Y1x1MDkzMlxuXHUwMDhjXDNcdTAw OGMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzXHUwMDhjXDNcdTAwOGNcM1x1MDA4Y1w1XHUw MDhjXHUwOTM4XG5cdTAwOGNcM1x1MDA4YyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcdTAw OGNcM1x1MDA4ZFwzXHUwMDhkXDNcdTAwOGRcM1x1MDA4ZFwzXHUwMDhlXDNcdTAwOGUiKQ0KPiAN Cj4gLQ0KPiBidWYud3JpdGUoIlw1XHUwMDhlXHUwOTQyXG5cdTAwOGVcM1x1MDA4ZVwzXHUwMDhl XDNcdTAwOGVcM1x1MDA4ZSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDdcdTAwOGNcdTA5MzBc blx1MDA4Y1xmXHUwMDhjXDE2XHUwMDhjXHUwOTMzXDEzXHUwMDhjIikNCj4gDQo+ICsNCj4gYnVm LndyaXRlKCJcNVx1MDA4Y1x1MDkzNVxuXHUwMDhjXDNcdTAwOGNcM1x1MDA4Y1wzXHUwMDhjXDNc dTAwOGMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw1XHUwMDhjXHUwOTNiXG5cdTAwOGNcM1x1 MDA4Y1wzXHUwMDhjXDNcdTAwOGRcM1x1MDA4ZCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNc dTAwOGRcM1x1MDA4ZFwzXHUwMDhlXDNcdTAwOGVcNVx1MDA4ZVx1MDk0NVxuXHUwMDhlIikNCj4g DQo+ICsNCj4gYnVmLndyaXRlKCJcM1x1MDA4ZVwzXHUwMDhlXDNcdTAwOGVcM1x1MDA4ZVwzXHUw MDhlXDNcdTAwOGVcM1x1MDA4ZSIpDQo+IA0KPiANCj4gYnVmLndyaXRlKCJcM1x1MDA4ZVwzXHUw MDhlXDNcdTAwOGVcM1x1MDA4ZVwzXHUwMDhlXDNcdTAwOGVcM1x1MDA4ZSIpDQo+IA0KPiAtDQo+ IGJ1Zi53cml0ZSgiXDNcdTAwOGVcM1x1MDA4ZVwzXHUwMDhlXDNcdTAwOGVcM1x1MDA4ZVwzXHUw MDhlXDVcdTAwOGUiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTA5NTVcblx1MDA4ZVwz XHUwMDhmXDNcdTAwOGZcM1x1MDA4ZlwzXHUwMDhmXDNcdTAwOGYiKQ0KPiANCj4gLQ0KPiBidWYu d3JpdGUoIlwzXHUwMDhmXDNcdTAwOGZcM1x1MDA4ZlwzXHUwMDhmXDNcdTAwOGZcM1x1MDA4Zlw1 XHUwMDhmIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwOTYyXG5cdTAwOGZcM1x1MDA4 ZlwzXHUwMDhmXDNcdTAwOGZcM1x1MDA4Zlw1XHUwMDhmIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53 cml0ZSgiXHUwOTY4XG5cdTAwOGZcM1x1MDA4ZlwzXHUwMDhmXDNcdTAwOGZcM1x1MDA4Zlw1XHUw MDhmIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwOTZlXG5cdTAwOGZcM1x1MDA4Zlwz XHUwMDhmXDNcdTAwOGZcM1x1MDA4Zlw1XHUwMDhmIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0 ZSgiXHUwOTc0XG5cdTAwOGZcM1x1MDA4ZlwzXHUwMDhmXDNcdTAwOGZcM1x1MDA4Zlw1XHUwMDhm IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwOTdhXG5cdTAwOGZcM1x1MDA4ZlwzXHUw MDhmXDNcdTAwOGZcM1x1MDA4Zlw1XHUwMDhmIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgi XHUwOTgwXG5cdTAwOGZcM1x1MDA4ZlwzXHUwMDhmXDNcdTAwOGZcM1x1MDA4Zlw1XHUwMDhmIikN Cj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwOTg2XG5cdTAwOGZcM1x1MDA4ZlwzXHUwMDhm XDNcdTAwOGZcM1x1MDA4Zlw1XHUwMDhmIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUw OThjXG5cdTAwOGZcM1x1MDA4ZlwzXHUwMDhmXDNcdTAwOGZcM1x1MDA4Zlw1XHUwMDhmIikNCj4g DQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwOTkyXG5cdTAwOGZcM1x1MDA4ZlwzXHUwMDhmXDNc dTAwOGZcM1x1MDA4Zlw1XHUwMDhmIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA5OThcblx1 MDA4Zlw1XHUwMDhmXHUwOTlhXG5cdTAwOGZcM1x1MDA4Zlw3XHUwMDhmXHUwOTlkIikNCj4gDQo+ IC0gICAgICAgIGJ1Zi53cml0ZSgiXG5cdTAwOGZcZlx1MDA4ZlwxNlx1MDA4Zlx1MDlhMFwxM1x1 MDA4Zlw1XHUwMDhmXHUwOWEyIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXG5cdTAwOGZc M1x1MDA4ZlwzXHUwMDhmXDdcdTAwOGZcdTA5YTZcblx1MDA4ZlxmXHUwMDhmIikNCj4gDQo+IC0g ICAgICAgIGJ1Zi53cml0ZSgiXDE2XHUwMDhmXHUwOWE5XDEzXHUwMDhmXDNcdTAwOGZcNVx1MDA4 Zlx1MDlhY1xuXHUwMDhmIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1x1MDA4ZlwzXHUwMDhm XDNcdTAwOTBcM1x1MDA5MFwzXHUwMDkwXDNcdTAwOTBcM1x1MDA5MCIpDQo+IA0KPiAtDQo+IGJ1 Zi53cml0ZSgiXDVcdTAwOTBcdTA5YjVcblx1MDA5MFwzXHUwMDkwXDNcdTAwOTBcN1x1MDA5MFx1 MDliOVxuIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAwOTBcZlx1MDA5MFwxNlx1MDA5MFx1 MDliY1wxM1x1MDA5MFwzXHUwMDkwXDNcdTAwOTAiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwz XHUwMDkwXDNcdTAwOTFcM1x1MDA5MVwzXHUwMDkxXDNcdTAwOTJcM1x1MDA5MlwzXHUwMDkzIikN Cj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1x1MDA5M1wzXHUwMDkzXDdcdTAwOTNcdTA5Yzlcblx1 MDA5M1xmXHUwMDkzXDE2XHUwMDkzIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA5Y2NcMTNc dTAwOTNcM1x1MDA5NFwzXHUwMDk0XDNcdTAwOTRcN1x1MDA5NFx1MDlkMSIpDQo+IA0KPiAtDQo+ IGJ1Zi53cml0ZSgiXG5cdTAwOTRcZlx1MDA5NFwxNlx1MDA5NFx1MDlkNFwxM1x1MDA5NFwzXHUw MDk1XDNcdTAwOTUiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzXHUwMDk1XDdcdTAwOTVcdTA5 ZDlcblx1MDA5NVxmXHUwMDk1XDE2XHUwMDk1XHUwOWRjIikNCj4gDQo+IC0NCj4gYnVmLndyaXRl KCJcMTNcdTAwOTVcM1x1MDA5NlwzXHUwMDk2XDNcdTAwOTZcN1x1MDA5Nlx1MDllMVxuXHUwMDk2 IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcZlx1MDA5NlwxNlx1MDA5Nlx1MDllNFwxM1x1MDA5 NlwzXHUwMDk3XDNcdTAwOTdcM1x1MDA5NyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDdcdTAw OTdcdTA5ZTlcblx1MDA5N1xmXHUwMDk3XDE2XHUwMDk3XHUwOWVjXDEzXHUwMDk3IikNCj4gDQo+ IC0NCj4gYnVmLndyaXRlKCJcM1x1MDA5OFwzXHUwMDk4XDdcdTAwOThcdTA5ZjBcblx1MDA5OFxm XHUwMDk4XDE2XHUwMDk4IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA5ZjNcMTNcdTAwOThc M1x1MDA5OVwzXHUwMDk5XDNcdTAwOTlcM1x1MDA5OVw1XHUwMDk5IikNCj4gDQo+IC0NCj4gYnVm LndyaXRlKCJcdTA5Zjlcblx1MDA5OVwzXHUwMDlhXDNcdTAwOWFcN1x1MDA5YVx1MDlmZFxuXHUw MDlhXGYiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDA5YVwxNlx1MDA5YVx1MGEwMFwxM1x1 MDA5YVwzXHUwMDliXDNcdTAwOWJcM1x1MDA5YiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNc dTAwOWJcM1x1MDA5YlwzXHUwMDliXDNcdTAwOWJcM1x1MDA5Ylw1XHUwMDliXHUwYTBhIikNCj4g DQo+IC0NCj4gYnVmLndyaXRlKCJcblx1MDA5YlwzXHUwMDljXDNcdTAwOWNcN1x1MDA5Y1x1MGEw ZVxuXHUwMDljXGZcdTAwOWMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwxNlx1MDA5Y1x1MGEx MVwxM1x1MDA5Y1wzXHUwMDlkXDNcdTAwOWRcM1x1MDA5ZFwzXHUwMDlkIikNCj4gDQo+IC0NCj4g YnVmLndyaXRlKCJcNVx1MDA5ZFx1MGExN1xuXHUwMDlkXDNcdTAwOWVcM1x1MDA5ZVw3XHUwMDll XHUwYTFiXG4iKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDA5ZVxmXHUwMDllXDE2XHUwMDll XHUwYTFlXDEzXHUwMDllXDNcdTAwOWZcM1x1MDA5ZiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgi XDNcdTAwOWZcM1x1MDA5Zlw1XHUwMDlmXHUwYTI0XG5cdTAwOWZcM1x1MDBhMFwzXHUwMGEwIikN Cj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcN1x1MDBhMFx1MGEyOFxuXHUwMGEwXGZcdTAwYTBcMTZc dTAwYTBcdTBhMmJcMTNcdTAwYTAiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzXHUwMGExXDNc dTAwYTFcM1x1MDBhMVwzXHUwMGExXDNcdTAwYTFcM1x1MDBhMVw1XHUwMGExIikNCj4gDQo+IC0N Cj4gYnVmLndyaXRlKCJcdTBhMzNcblx1MDBhMVwzXHUwMGEyXDNcdTAwYTJcM1x1MDBhMlw3XHUw MGEyXHUwYTM4XG4iKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDBhMlxmXHUwMGEyXDE2XHUw MGEyXHUwYTNiXDEzXHUwMGEyXDNcdTAwYTJcM1x1MDBhMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0 ZSgiXDNcdTAwYTNcM1x1MDBhM1wzXHUwMGEzXDNcdTAwYTNcM1x1MDBhM1wzXHUwMGEzXDNcdTAw YTMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzXHUwMGEzXDNcdTAwYTNcM1x1MDBhM1wzXHUw MGEzXDNcdTAwYTNcNVx1MDBhM1x1MGE0YiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXG5cdTAw YTNcM1x1MDBhNFwzXHUwMGE0XDNcdTAwYTRcM1x1MDBhNFwzXHUwMGE0XDNcdTAwYTQiKQ0KPiAN Cj4gLQ0KPiBidWYud3JpdGUoIlwzXHUwMGE0XDNcdTAwYTVcM1x1MDBhNVwzXHUwMGE1XDNcdTAw YTVcM1x1MDBhNVwzXHUwMGE1IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1x1MDBhNVwzXHUw MGE2XDNcdTAwYTZcM1x1MDBhNlwzXHUwMGE2XDNcdTAwYTZcM1x1MDBhNiIpDQo+IA0KPiAtDQo+ IGJ1Zi53cml0ZSgiXDNcdTAwYTZcM1x1MDBhNlwzXHUwMGE2XDNcdTAwYTdcM1x1MDBhN1wzXHUw MGE3XDNcdTAwYTciKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzXHUwMGE4XDNcdTAwYThcM1x1 MDBhOFwzXHUwMGE4XDNcdTAwYThcM1x1MDBhOFwzXHUwMGE4IikNCj4gDQo+IC0NCj4gYnVmLndy aXRlKCJcM1x1MDBhOFwzXHUwMGE4XDNcdTAwYThcM1x1MDBhOFw1XHUwMGE4XHUwYTczXG5cdTAw YTgiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzXHUwMGE5XDNcdTAwYTlcM1x1MDBhYVwzXHUw MGFhXDNcdTAwYWFcM1x1MDBhYVwzXHUwMGFhIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1x1 MDBhYVwzXHUwMGFhXDNcdTAwYWFcM1x1MDBhYVwzXHUwMGFhXDNcdTAwYWFcM1x1MDBhYSIpDQo+ IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcdTAwYWFcM1x1MDBhYVwzXHUwMGFhXDVcdTAwYWFcdTBh ODZcblx1MDBhYVwzXHUwMGFiIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1x1MDA4ZVwzXHUw MDhlXDNcdTAwOGVcNVx1MDA4ZVx1MDk1OFxuXHUwMDhlXDNcdTAwOGYiKQ0KPiANCj4gKw0KPiBi dWYud3JpdGUoIlwzXHUwMDhmXDNcdTAwOGZcM1x1MDA4ZlwzXHUwMDhmXDNcdTAwOGZcM1x1MDA4 ZlwzXHUwMDhmIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDNcdTAwOGZcM1x1MDA4Zlwz XHUwMDhmXDVcdTAwOGZcdTA5NjVcblx1MDA4ZlwzXHUwMDhmIikNCj4gDQo+ICsgICAgICAgIGJ1 Zi53cml0ZSgiXDNcdTAwOGZcM1x1MDA4ZlwzXHUwMDhmXDVcdTAwOGZcdTA5NmJcblx1MDA4Zlwz XHUwMDhmIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDNcdTAwOGZcM1x1MDA4ZlwzXHUw MDhmXDVcdTAwOGZcdTA5NzFcblx1MDA4ZlwzXHUwMDhmIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53 cml0ZSgiXDNcdTAwOGZcM1x1MDA4ZlwzXHUwMDhmXDVcdTAwOGZcdTA5Nzdcblx1MDA4ZlwzXHUw MDhmIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDNcdTAwOGZcM1x1MDA4ZlwzXHUwMDhm XDVcdTAwOGZcdTA5N2Rcblx1MDA4ZlwzXHUwMDhmIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0 ZSgiXDNcdTAwOGZcM1x1MDA4ZlwzXHUwMDhmXDVcdTAwOGZcdTA5ODNcblx1MDA4ZlwzXHUwMDhm IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDNcdTAwOGZcM1x1MDA4ZlwzXHUwMDhmXDVc dTAwOGZcdTA5ODlcblx1MDA4ZlwzXHUwMDhmIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgi XDNcdTAwOGZcM1x1MDA4ZlwzXHUwMDhmXDVcdTAwOGZcdTA5OGZcblx1MDA4ZlwzXHUwMDhmIikN Cj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDNcdTAwOGZcM1x1MDA4ZlwzXHUwMDhmXDVcdTAw OGZcdTA5OTVcblx1MDA4ZlwzXHUwMDhmIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDNc dTAwOGZcM1x1MDA4ZlwzXHUwMDhmXDVcdTAwOGZcdTA5OWJcblx1MDA4Zlw1XHUwMDhmIikNCj4g DQo+ICsNCj4gYnVmLndyaXRlKCJcdTA5OWRcblx1MDA4ZlwzXHUwMDhmXDdcdTAwOGZcdTA5YTBc blx1MDA4ZlxmXHUwMDhmXDE2IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwMDhmXHUw OWEzXDEzXHUwMDhmXDVcdTAwOGZcdTA5YTVcblx1MDA4ZlwzXHUwMDhmXDMiKQ0KPiANCj4gKyAg ICAgICAgYnVmLndyaXRlKCJcdTAwOGZcN1x1MDA4Zlx1MDlhOVxuXHUwMDhmXGZcdTAwOGZcMTZc dTAwOGZcdTA5YWNcMTMiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTAwOGZcM1x1MDA4 Zlw1XHUwMDhmXHUwOWFmXG5cdTAwOGZcM1x1MDA4ZlwzXHUwMDhmXDMiKQ0KPiANCj4gKw0KPiBi dWYud3JpdGUoIlx1MDA5MFwzXHUwMDkwXDNcdTAwOTBcM1x1MDA5MFwzXHUwMDkwXDVcdTAwOTBc dTA5YjhcbiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMDkwXDNcdTAwOTBcM1x1MDA5MFw3 XHUwMDkwXHUwOWJjXG5cdTAwOTBcZlx1MDA5MFwxNiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgi XHUwMDkwXHUwOWJmXDEzXHUwMDkwXDNcdTAwOTBcM1x1MDA5MFwzXHUwMDkwXDNcdTAwOTEiKQ0K PiANCj4gKw0KPiBidWYud3JpdGUoIlwzXHUwMDkxXDNcdTAwOTFcM1x1MDA5MlwzXHUwMDkyXDNc dTAwOTNcM1x1MDA5M1wzXHUwMDkzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcN1x1MDA5M1x1 MDljY1xuXHUwMDkzXGZcdTAwOTNcMTZcdTAwOTNcdTA5Y2ZcMTNcdTAwOTMiKQ0KPiANCj4gKw0K PiBidWYud3JpdGUoIlwzXHUwMDk0XDNcdTAwOTRcM1x1MDA5NFw3XHUwMDk0XHUwOWQ0XG5cdTAw OTRcZlx1MDA5NCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDE2XHUwMDk0XHUwOWQ3XDEzXHUw MDk0XDNcdTAwOTVcM1x1MDA5NVwzXHUwMDk1XDdcdTAwOTUiKQ0KPiANCj4gKw0KPiBidWYud3Jp dGUoIlx1MDlkY1xuXHUwMDk1XGZcdTAwOTVcMTZcdTAwOTVcdTA5ZGZcMTNcdTAwOTVcM1x1MDA5 NiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcdTAwOTZcM1x1MDA5Nlw3XHUwMDk2XHUwOWU0 XG5cdTAwOTZcZlx1MDA5NlwxNlx1MDA5NiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwOWU3 XDEzXHUwMDk2XDNcdTAwOTdcM1x1MDA5N1wzXHUwMDk3XDdcdTAwOTdcdTA5ZWMiKQ0KPiANCj4g Kw0KPiBidWYud3JpdGUoIlxuXHUwMDk3XGZcdTAwOTdcMTZcdTAwOTdcdTA5ZWZcMTNcdTAwOTdc M1x1MDA5OFwzXHUwMDk4IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcN1x1MDA5OFx1MDlmM1xu XHUwMDk4XGZcdTAwOThcMTZcdTAwOThcdTA5ZjZcMTNcdTAwOTgiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlwzXHUwMDk5XDNcdTAwOTlcM1x1MDA5OVwzXHUwMDk5XDVcdTAwOTlcdTA5ZmNcblx1 MDA5OSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcdTAwOWFcM1x1MDA5YVw3XHUwMDlhXHUw YTAwXG5cdTAwOWFcZlx1MDA5YVwxNlx1MDA5YSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUw YTAzXDEzXHUwMDlhXDNcdTAwOWJcM1x1MDA5YlwzXHUwMDliXDNcdTAwOWJcM1x1MDA5YiIpDQo+ IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcdTAwOWJcM1x1MDA5YlwzXHUwMDliXDVcdTAwOWJcdTBh MGRcblx1MDA5YlwzXHUwMDljIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDNcdTAwOWNc N1x1MDA5Y1x1MGExMVxuXHUwMDljXGZcdTAwOWNcMTZcdTAwOWNcdTBhMTQiKQ0KPiANCj4gKw0K PiBidWYud3JpdGUoIlwxM1x1MDA5Y1wzXHUwMDlkXDNcdTAwOWRcM1x1MDA5ZFwzXHUwMDlkXDVc dTAwOWRcdTBhMWEiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlxuXHUwMDlkXDNcdTAwOWVcM1x1 MDA5ZVw3XHUwMDllXHUwYTFlXG5cdTAwOWVcZlx1MDA5ZSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXDE2XHUwMDllXHUwYTIxXDEzXHUwMDllXDNcdTAwOWZcM1x1MDA5ZlwzXHUwMDlmXDNcdTAw OWYiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw1XHUwMDlmXHUwYTI3XG5cdTAwOWZcM1x1MDBh MFwzXHUwMGEwXDdcdTAwYTBcdTBhMmJcbiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMGEw XGZcdTAwYTBcMTZcdTAwYTBcdTBhMmVcMTNcdTAwYTBcM1x1MDBhMVwzXHUwMGExIikNCj4gDQo+ ICsNCj4gYnVmLndyaXRlKCJcM1x1MDBhMVwzXHUwMGExXDNcdTAwYTFcM1x1MDBhMVw1XHUwMGEx XHUwYTM2XG5cdTAwYTEiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXHUwMGEyXDdcdTAwYTJc dTBhMzlcblx1MDBhMlxmXHUwMGEyXDE2XHUwMGEyXHUwYTNjIikNCj4gDQo+ICsNCj4gYnVmLndy aXRlKCJcMTNcdTAwYTJcM1x1MDBhMlwzXHUwMGEyXDNcdTAwYTNcM1x1MDBhM1wzXHUwMGEzXDNc dTAwYTMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXHUwMGE0XDNcdTAwYTRcM1x1MDBhNFwz XHUwMGE0XDNcdTAwYTRcM1x1MDBhNFwzXHUwMGE0IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJc M1x1MDBhNFwzXHUwMGE0XDNcdTAwYTRcM1x1MDBhNFw1XHUwMGE0XHUwYTRmXG5cdTAwYTQiKQ0K PiANCj4gKw0KPiBidWYud3JpdGUoIlwzXHUwMGE1XDNcdTAwYTVcM1x1MDBhNVwzXHUwMGE1XDNc dTAwYTVcM1x1MDBhNVwzXHUwMGE1IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1x1MDBhNlwz XHUwMGE2XDNcdTAwYTZcM1x1MDBhNlwzXHUwMGE2XDNcdTAwYTZcM1x1MDBhNiIpDQo+IA0KPiAr DQo+IGJ1Zi53cml0ZSgiXDNcdTAwYTdcM1x1MDBhN1wzXHUwMGE3XDNcdTAwYTdcM1x1MDBhN1wz XHUwMGE3XDNcdTAwYTciKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXHUwMGE3XDNcdTAwYTdc M1x1MDBhOFwzXHUwMGE4XDNcdTAwYThcM1x1MDBhOFwzXHUwMGE5IikNCj4gDQo+ICsNCj4gYnVm LndyaXRlKCJcM1x1MDBhOVwzXHUwMGE5XDNcdTAwYTlcM1x1MDBhOVwzXHUwMGE5XDNcdTAwYTlc M1x1MDBhOSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcdTAwYTlcM1x1MDBhOVwzXHUwMGE5 XDVcdTAwYTlcdTBhNzdcblx1MDBhOVwzXHUwMGFhIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJc M1x1MDBhYVwzXHUwMGFiXDNcdTAwYWJcM1x1MDBhYlwzXHUwMGFiXDNcdTAwYWJcM1x1MDBhYiIp DQo+IA0KPiANCj4gYnVmLndyaXRlKCJcM1x1MDBhYlwzXHUwMGFiXDNcdTAwYWJcM1x1MDBhYlwz XHUwMGFiXDNcdTAwYWJcM1x1MDBhYiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcdTAwYWJc M1x1MDBhYlwzXHUwMGFiXDNcdTAwYWJcNVx1MDBhYlx1MGE5NFxuXHUwMGFiIikNCj4gDQo+ICsN Cj4gYnVmLndyaXRlKCJcM1x1MDBhYlwzXHUwMGFiXDVcdTAwYWJcdTBhOGFcblx1MDBhYlwzXHUw MGFjXDNcdTAwYWMiKQ0KPiANCj4gDQo+IGJ1Zi53cml0ZSgiXDNcdTAwYWNcM1x1MDBhY1wzXHUw MGFjXDNcdTAwYWNcM1x1MDBhY1wzXHUwMGFjXDNcdTAwYWMiKQ0KPiANCj4gLQ0KPiBidWYud3Jp dGUoIlwzXHUwMGFjXDNcdTAwYWNcM1x1MDBhY1wzXHUwMGFjXDNcdTAwYWNcNVx1MDBhY1x1MGFh MiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXG5cdTAwYWNcM1x1MDBhZFwzXHUwMGFkXDNcdTAw YWRcM1x1MDBhZFw2XHUwMGFkXHUwYWE4IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcblx1MDBh ZFxyXHUwMGFkXDE2XHUwMGFkXHUwYWE5XDNcdTAwYWVcM1x1MDBhZVwzXHUwMGFlIikNCj4gDQo+ IC0NCj4gYnVmLndyaXRlKCJcM1x1MDBhZVwzXHUwMGFlXDNcdTAwYWVcM1x1MDBhZVw3XHUwMGFl XHUwYWIzXG5cdTAwYWUiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlxmXHUwMGFlXDE2XHUwMGFl XHUwYWI2XDEzXHUwMGFlXDVcdTAwYWVcdTBhYjhcblx1MDBhZSIpDQo+IA0KPiAtICAgICAgICBi dWYud3JpdGUoIlwzXHUwMGFmXDNcdTAwYWZcM1x1MDBhZlwzXHUwMGFmXDVcdTAwYWZcdTBhYmVc blx1MDBhZiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcdTAwYjBcM1x1MDBiMFwzXHUwMGIw XDNcdTAwYjBcM1x1MDBiMFwzXHUwMGIxXDNcdTAwYjEiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUo IlwzXHUwMGIxXDNcdTAwYjFcM1x1MDBiMVwzXHUwMGIyXDNcdTAwYjJcM1x1MDBiMlwzXHUwMGIy IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1x1MDBiMlwzXHUwMGIyXDNcdTAwYjJcNVx1MDBi Mlx1MGFkMVxuXHUwMGIyXDNcdTAwYjIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzXHUwMGIy XDNcdTAwYjNcM1x1MDBiM1wzXHUwMGI0XDNcdTAwYjRcM1x1MDBiNFwzXHUwMGI0IikNCj4gDQo+ IC0NCj4gYnVmLndyaXRlKCJcM1x1MDBiNFwzXHUwMGI1XDNcdTAwYjVcM1x1MDBiNlwzXHUwMGI2 XDNcdTAwYjZcM1x1MDBiNiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcdTAwYjZcM1x1MDBi NlwzXHUwMGI2XDVcdTAwYjZcdTBhZTVcblx1MDBiNlwzXHUwMGI2IikNCj4gDQo+IC0NCj4gYnVm LndyaXRlKCJcM1x1MDBiNlwzXHUwMGI3XDNcdTAwYjdcM1x1MDBiOFwzXHUwMGI4XDNcdTAwYjhc M1x1MDBiOCIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcdTAwYjhcM1x1MDBiOFwzXHUwMGI4 XDNcdTAwYjhcM1x1MDBiOFwzXHUwMGI4XDVcdTAwYjgiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUo Ilx1MGFmNVxuXHUwMGI4XDNcdTAwYjlcM1x1MDBiOVwzXHUwMGI5XDNcdTAwYjlcM1x1MDBiOSIp DQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcdTAwYmFcM1x1MDBiYVwzXHUwMGJhXDNcdTAwYmFc M1x1MDBiYVwzXHUwMGJiXDNcdTAwYmIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzXHUwMGJi XDNcdTAwYmJcM1x1MDBiYlwzXHUwMGJiXDNcdTAwYmJcM1x1MDBiYlwzXHUwMGJiIg0KPiApDQo+ IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDVcdTAwYmJcdTBiMGFcblx1MDBiYlwzXHUwMGJiXDNcdTAw YmJcM1x1MDBiYlwzXHUwMGJiIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1x1MDBiYlw1XHUw MGJiXHUwYjExXG5cdTAwYmJcM1x1MDBiYlwzXHUwMGJiXDNcdTAwYmIiKQ0KPiANCj4gLQ0KPiBi dWYud3JpdGUoIlwzXHUwMGJjXDNcdTAwYmNcM1x1MDBiY1wzXHUwMGJjXDNcdTAwYmNcM1x1MDBi ZFwzXHUwMGJkIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1x1MDBiZFwzXHUwMGJkXDNcdTAw YmRcM1x1MDBiZVwzXHUwMGJlXDNcdTAwYmVcM1x1MDBiZSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0 ZSgiXDNcdTAwYmVcNVx1MDBiZVx1MGIyNVxuXHUwMGJlXDNcdTAwYmVcM1x1MDBiZVwzXHUwMGJl IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1x1MDBiZVwzXHUwMGJmXDNcdTAwYmZcM1x1MDBi ZlwzXHUwMGJmXDNcdTAwYmZcM1x1MDBjMCIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcdTAw YzBcM1x1MDBjMFwzXHUwMGMwXDNcdTAwYzBcM1x1MDBjMVwzXHUwMGMxXDNcdTAwYzEiKQ0KPiAN Cj4gLQ0KPiBidWYud3JpdGUoIlwzXHUwMGMxXDNcdTAwYzFcM1x1MDBjMlwzXHUwMGMyXDNcdTAw YzJcM1x1MDBjMlwzXHUwMGMyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1x1MDBjMlwzXHUw MGMyXDVcdTAwYzJcdTBiNDFcblx1MDBjMlwzXHUwMGMyXDNcdTAwYzIiKQ0KPiANCj4gLQ0KPiBi dWYud3JpdGUoIlwzXHUwMGMyXDNcdTAwYzJcM1x1MDBjM1wzXHUwMGMzXDNcdTAwYzNcM1x1MDBj M1wzXHUwMGMzIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcNVx1MDBjM1x1MGI0Y1xuXHUwMGMz XDNcdTAwYzRcM1x1MDBjNFwzXHUwMGM0XDNcdTAwYzQiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUo IlwzXHUwMGM0XDNcdTAwYzRcM1x1MDBjNFwzXHUwMGM0XDNcdTAwYzRcM1x1MDBjNVwzXHUwMGM1 IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1x1MDBjNVwzXHUwMGM1XDNcdTAwYzVcN1x1MDBj NVx1MGI1Y1xuXHUwMGM1XGZcdTAwYzUiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwxNlx1MDBj NVx1MGI1ZlwxM1x1MDBjNVwzXHUwMGM1XDNcdTAwYzVcM1x1MDBjNVwzXHUwMGM1IikNCj4gDQo+ IC0NCj4gYnVmLndyaXRlKCJcM1x1MDBjNVwzXHUwMGM1XDNcdTAwYzVcM1x1MDBjNVwzXHUwMGM2 XDNcdTAwYzZcM1x1MDBjNyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcdTAwYzdcM1x1MDBj N1wzXHUwMGM3XDNcdTAwYzdcM1x1MDBjN1wzXHUwMGM3XDNcdTAwYzciKQ0KPiANCj4gLQ0KPiBi dWYud3JpdGUoIlwzXHUwMGM3XDNcdTAwYzhcM1x1MDBjOFwzXHUwMGM4XDNcdTAwYzhcM1x1MDBj OFwzXHUwMGM4IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1x1MDBjOFwzXHUwMGM4XDNcdTAw YzhcM1x1MDBjOVwzXHUwMGM5XDNcdTAwYzlcM1x1MDBjOSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0 ZSgiXDNcdTAwYzlcM1x1MDBjOVwzXHUwMGM5XDdcdTAwYzlcdTBiODRcblx1MDBjOVxmXHUwMGM5 IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMTZcdTAwYzlcdTBiODdcMTNcdTAwYzlcM1x1MDBj OVwzXHUwMGM5XDNcdTAwYzlcM1x1MDBjOSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcdTAw YzlcM1x1MDBjOVwzXHUwMGM5XDNcdTAwYzlcM1x1MDBjYVwzXHUwMGNhXDNcdTAwY2IiKQ0KPiAN Cj4gLQ0KPiBidWYud3JpdGUoIlwzXHUwMGNiXDNcdTAwY2JcM1x1MDBjYlwzXHUwMGNiXDNcdTAw Y2JcM1x1MDBjYlwzXHUwMGNiIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDNcdTAwY2Jc N1x1MDBjYlx1MGI5Y1xuXHUwMGNiXGZcdTAwY2JcMTZcdTAwY2JcdTBiOWYiKQ0KPiANCj4gLSAg ICAgICAgYnVmLndyaXRlKCJcMTNcdTAwY2JcM1x1MDBjYlwzXHUwMGNiXDNcdTAwY2JcMlwyXHUw MGNjXDJcNFw2XGJcbiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlxmXDE2XDIwXDIyXDI0 XDI2XDMwXDMyXDM0XDM2IFwiJCYoKiwuXDYwXDYyXDY0XDY2ODo8IikNCj4gDQo+IC0NCj4gYnVm LndyaXRlKCI+QEJERkhKTE5QUlRWWFpcXF5gYmRmaGpsbnBydHZ4enx+XHUwMDgwXHUwMDgyXHUw MDg0XHUwMDg2DQo+ICIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwMDg4XHUwMDhhXHUwMDhj XHUwMDhlXHUwMDkwXHUwMDkyXHUwMDk0XHUwMDk2XHUwMDk4IikNCj4gDQo+IC0NCj4gYnVmLndy aXRlKCJcdTAwOWFcdTAwOWNcdTAwOWVcdTAwYTBcdTAwYTJcdTAwYTRcdTAwYTZcdTAwYThcdTAw YWEiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDBhY1x1MDBhZVx1MDBiMFx1MDBiMlx1MDBi NFx1MDBiNlx1MDBiOFx1MDBiYVx1MDBiYyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwMGJl XHUwMGMwXHUwMGMyXHUwMGM0XHUwMGM2XHUwMGM4XHUwMGNhXHUwMGNjXHUwMGNlIikNCj4gDQo+ IC0NCj4gYnVmLndyaXRlKCJcdTAwZDBcdTAwZDJcdTAwZDRcdTAwZDZcdTAwZDhcdTAwZGFcdTAw ZGNcdTAwZGVcdTAwZTAiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDBlMlx1MDBlNFx1MDBl Nlx1MDBlOFx1MDBlYVx1MDBlY1x1MDBlZVx1MDBmMFx1MDBmMiIpDQo+IA0KPiAtDQo+IGJ1Zi53 cml0ZSgiXHUwMGY0XHUwMGY2XHUwMGY4XHUwMGZhXHUwMGZjXHUwMGZlXHUwMTAwXHUwMTAyXHUw MTA0IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAxMDZcdTAxMDhcdTAxMGFcdTAxMGNcdTAx MGVcdTAxMTBcdTAxMTJcdTAxMTRcdTAxMTYiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDEx OFx1MDExYVx1MDExY1x1MDExZVx1MDEyMFx1MDEyMlx1MDEyNFx1MDEyNlx1MDEyOCIpDQo+IA0K PiAtDQo+IGJ1Zi53cml0ZSgiXHUwMTJhXHUwMTJjXHUwMTJlXHUwMTMwXHUwMTMyXHUwMTM0XHUw MTM2XHUwMTM4XHUwMTNhIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAxM2NcdTAxM2VcdTAx NDBcdTAxNDJcdTAxNDRcdTAxNDZcdTAxNDhcdTAxNGFcdTAxNGMiKQ0KPiANCj4gLQ0KPiBidWYu d3JpdGUoIlx1MDE0ZVx1MDE1MFx1MDE1Mlx1MDE1NFx1MDE1Nlx1MDE1OFx1MDE1YVx1MDE1Y1x1 MDE1ZSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwMTYwXHUwMTYyXHUwMTY0XHUwMTY2XHUw MTY4XHUwMTZhXHUwMTZjXHUwMTZlXHUwMTcwIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAx NzJcdTAxNzRcdTAxNzZcdTAxNzhcdTAxN2FcdTAxN2NcdTAxN2VcdTAxODBcdTAxODIiKQ0KPiAN Cj4gLQ0KPiBidWYud3JpdGUoIlx1MDE4NFx1MDE4Nlx1MDE4OFx1MDE4YVx1MDE4Y1x1MDE4ZVx1 MDE5MFx1MDE5Mlx1MDE5NCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcdTAwYWNcM1x1MDBh Y1wzXHUwMGFjXDVcdTAwYWNcdTBhOThcblx1MDBhY1wzXHUwMGFkIikNCj4gDQo+ICsNCj4gYnVm LndyaXRlKCJcM1x1MDBhZFwzXHUwMGFkXDNcdTAwYWRcM1x1MDBhZFwzXHUwMGFkXDNcdTAwYWRc M1x1MDBhZCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcdTAwYWRcM1x1MDBhZFwzXHUwMGFk XDNcdTAwYWRcNVx1MDBhZFx1MGFhNlxuXHUwMGFkIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJc M1x1MDBhZVwzXHUwMGFlXDNcdTAwYWVcM1x1MDBhZVw2XHUwMGFlXHUwYWFjXG5cdTAwYWUiKQ0K PiANCj4gKw0KPiBidWYud3JpdGUoIlxyXHUwMGFlXDE2XHUwMGFlXHUwYWFkXDNcdTAwYWZcM1x1 MDBhZlwzXHUwMGFmXDNcdTAwYWYiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcM1x1MDBh ZlwzXHUwMGFmXDNcdTAwYWZcN1x1MDBhZlx1MGFiN1xuXHUwMGFmXGZcdTAwYWYiKQ0KPiANCj4g Kw0KPiBidWYud3JpdGUoIlwxNlx1MDBhZlx1MGFiYVwxM1x1MDBhZlw1XHUwMGFmXHUwYWJjXG5c dTAwYWZcM1x1MDBiMCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcdTAwYjBcM1x1MDBiMFwz XHUwMGIwXDVcdTAwYjBcdTBhYzJcblx1MDBiMFwzXHUwMGIxIikNCj4gDQo+ICsNCj4gYnVmLndy aXRlKCJcM1x1MDBiMVwzXHUwMGIxXDNcdTAwYjFcM1x1MDBiMVwzXHUwMGIyXDNcdTAwYjJcM1x1 MDBiMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcdTAwYjJcM1x1MDBiMlwzXHUwMGIzXDNc dTAwYjNcM1x1MDBiM1wzXHUwMGIzXDNcdTAwYjMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwz XHUwMGIzXDNcdTAwYjNcNVx1MDBiM1x1MGFkNVxuXHUwMGIzXDNcdTAwYjNcM1x1MDBiMyIpDQo+ IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcdTAwYjRcM1x1MDBiNFwzXHUwMGI1XDNcdTAwYjVcM1x1 MDBiNVwzXHUwMGI1XDNcdTAwYjUiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXHUwMGI2XDNc dTAwYjZcM1x1MDBiN1wzXHUwMGI3XDNcdTAwYjdcM1x1MDBiN1wzXHUwMGI3IikNCj4gDQo+ICsN Cj4gYnVmLndyaXRlKCJcM1x1MDBiN1wzXHUwMGI3XDVcdTAwYjdcdTBhZTlcblx1MDBiN1wzXHUw MGI3XDNcdTAwYjciKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXHUwMGI4XDNcdTAwYjhcM1x1 MDBiOVwzXHUwMGI5XDNcdTAwYjlcM1x1MDBiOVwzXHUwMGI5IikNCj4gDQo+ICsNCj4gYnVmLndy aXRlKCJcM1x1MDBiOVwzXHUwMGI5XDNcdTAwYjlcM1x1MDBiOVwzXHUwMGI5XDVcdTAwYjlcdTBh ZjkiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlxuXHUwMGI5XDNcdTAwYmFcM1x1MDBiYVwzXHUw MGJhXDNcdTAwYmFcM1x1MDBiYVwzXHUwMGJiIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1x1 MDBiYlwzXHUwMGJiXDNcdTAwYmJcM1x1MDBiYlwzXHUwMGJjXDNcdTAwYmNcM1x1MDBiYyIpDQo+ IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcdTAwYmNcM1x1MDBiY1wzXHUwMGJjXDNcdTAwYmNcM1x1 MDBiY1wzXHUwMGJjXDVcdTAwYmMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MGIwZVxuXHUw MGJjXDNcdTAwYmNcM1x1MDBiY1wzXHUwMGJjXDNcdTAwYmNcM1x1MDBiYyIpDQo+IA0KPiArDQo+ IGJ1Zi53cml0ZSgiXDVcdTAwYmNcdTBiMTVcblx1MDBiY1wzXHUwMGJjXDNcdTAwYmNcM1x1MDBi Y1wzXHUwMGJkIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1x1MDBiZFwzXHUwMGJkXDNcdTAw YmRcM1x1MDBiZFwzXHUwMGJlXDNcdTAwYmVcM1x1MDBiZSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXDNcdTAwYmVcM1x1MDBiZVwzXHUwMGJmXDNcdTAwYmZcM1x1MDBiZlwzXHUwMGJmXDNcdTAw YmYiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcNVx1MDBiZlx1MGIyOVxuXHUwMGJmXDNc dTAwYmZcM1x1MDBiZlwzXHUwMGJmXDNcdTAwYmYiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwz XHUwMGMwXDNcdTAwYzBcM1x1MDBjMFwzXHUwMGMwXDNcdTAwYzBcM1x1MDBjMVwzXHUwMGMxIikN Cj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1x1MDBjMVwzXHUwMGMxXDNcdTAwYzFcM1x1MDBjMlwz XHUwMGMyXDNcdTAwYzJcM1x1MDBjMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcdTAwYzJc M1x1MDBjM1wzXHUwMGMzXDNcdTAwYzNcM1x1MDBjM1wzXHUwMGMzXDNcdTAwYzMiKQ0KPiANCj4g Kw0KPiBidWYud3JpdGUoIlwzXHUwMGMzXDVcdTAwYzNcdTBiNDVcblx1MDBjM1wzXHUwMGMzXDNc dTAwYzNcM1x1MDBjMyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcdTAwYzNcM1x1MDBjNFwz XHUwMGM0XDNcdTAwYzRcM1x1MDBjNFwzXHUwMGM0XDVcdTAwYzQiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlx1MGI1MFxuXHUwMGM0XDNcdTAwYzVcM1x1MDBjNVwzXHUwMGM1XDNcdTAwYzVcM1x1 MDBjNSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcdTAwYzVcM1x1MDBjNVwzXHUwMGM1XDNc dTAwYzVcM1x1MDBjNlwzXHUwMGM2XDNcdTAwYzYiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwz XHUwMGM2XDNcdTAwYzZcN1x1MDBjNlx1MGI2MFxuXHUwMGM2XGZcdTAwYzZcMTZcdTAwYzYiKQ0K PiANCj4gKw0KPiBidWYud3JpdGUoIlx1MGI2M1wxM1x1MDBjNlwzXHUwMGM2XDNcdTAwYzZcM1x1 MDBjNlwzXHUwMGM2XDNcdTAwYzYiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXHUwMGM2XDNc dTAwYzZcM1x1MDBjNlwzXHUwMGM3XDNcdTAwYzdcM1x1MDBjOFwzXHUwMGM4IikNCj4gDQo+ICsN Cj4gYnVmLndyaXRlKCJcM1x1MDBjOFwzXHUwMGM4XDNcdTAwYzhcM1x1MDBjOFwzXHUwMGM4XDNc dTAwYzhcM1x1MDBjOCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcdTAwYzlcM1x1MDBjOVwz XHUwMGM5XDNcdTAwYzlcM1x1MDBjOVwzXHUwMGM5XDNcdTAwYzkiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlwzXHUwMGM5XDNcdTAwYzlcM1x1MDBjYVwzXHUwMGNhXDNcdTAwY2FcM1x1MDBjYVwz XHUwMGNhIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1x1MDBjYVwzXHUwMGNhXDdcdTAwY2Fc dTBiODhcblx1MDBjYVxmXHUwMGNhXDE2XHUwMGNhIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJc dTBiOGJcMTNcdTAwY2FcM1x1MDBjYVwzXHUwMGNhXDNcdTAwY2FcM1x1MDBjYVwzXHUwMGNhIikN Cj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1x1MDBjYVwzXHUwMGNhXDNcdTAwY2FcM1x1MDBjYlwz XHUwMGNiXDNcdTAwY2NcM1x1MDBjYyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcdTAwY2Nc M1x1MDBjY1wzXHUwMGNjXDNcdTAwY2NcM1x1MDBjY1wzXHUwMGNjXDNcdTAwY2MiKQ0KPiANCj4g Kw0KPiBidWYud3JpdGUoIlw3XHUwMGNjXHUwYmEwXG5cdTAwY2NcZlx1MDBjY1wxNlx1MDBjY1x1 MGJhM1wxM1x1MDBjYyIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlwzXHUwMGNjXDNcdTAw Y2NcM1x1MDBjY1wyXDJcdTAwY2RcMlw0XDZcYlxuXGZcMTZcMjBcMjIiKQ0KPiANCj4gKyAgICAg ICAgYnVmLndyaXRlKCJcMjRcMjZcMzBcMzJcMzRcMzYgXCIkJigqLC5cNjBcNjJcNjRcNjY4Ojw+ QEJERkhKTE5QUiIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlRWWFpcXF5gYmRmaGpsbnBy dHZ4enx+XHUwMDgwXHUwMDgyXHUwMDg0XHUwMDg2XHUwMDg4IikNCj4gDQo+ICsNCj4gYnVmLndy aXRlKCJcdTAwOGFcdTAwOGNcdTAwOGVcdTAwOTBcdTAwOTJcdTAwOTRcdTAwOTZcdTAwOThcdTAw OWEiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDA5Y1x1MDA5ZVx1MDBhMFx1MDBhMlx1MDBh NFx1MDBhNlx1MDBhOFx1MDBhYVx1MDBhYyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMGFl XHUwMGIwXHUwMGIyXHUwMGI0XHUwMGI2XHUwMGI4XHUwMGJhXHUwMGJjXHUwMGJlIikNCj4gDQo+ ICsNCj4gYnVmLndyaXRlKCJcdTAwYzBcdTAwYzJcdTAwYzRcdTAwYzZcdTAwYzhcdTAwY2FcdTAw Y2NcdTAwY2VcdTAwZDAiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDBkMlx1MDBkNFx1MDBk Nlx1MDBkOFx1MDBkYVx1MDBkY1x1MDBkZVx1MDBlMFx1MDBlMiIpDQo+IA0KPiArDQo+IGJ1Zi53 cml0ZSgiXHUwMGU0XHUwMGU2XHUwMGU4XHUwMGVhXHUwMGVjXHUwMGVlXHUwMGYwXHUwMGYyXHUw MGY0IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAwZjZcdTAwZjhcdTAwZmFcdTAwZmNcdTAw ZmVcdTAxMDBcdTAxMDJcdTAxMDRcdTAxMDYiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDEw OFx1MDEwYVx1MDEwY1x1MDEwZVx1MDExMFx1MDExMlx1MDExNFx1MDExNlx1MDExOCIpDQo+IA0K PiArDQo+IGJ1Zi53cml0ZSgiXHUwMTFhXHUwMTFjXHUwMTFlXHUwMTIwXHUwMTIyXHUwMTI0XHUw MTI2XHUwMTI4XHUwMTJhIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAxMmNcdTAxMmVcdTAx MzBcdTAxMzJcdTAxMzRcdTAxMzZcdTAxMzhcdTAxM2FcdTAxM2MiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlx1MDEzZVx1MDE0MFx1MDE0Mlx1MDE0NFx1MDE0Nlx1MDE0OFx1MDE0YVx1MDE0Y1x1 MDE0ZSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMTUwXHUwMTUyXHUwMTU0XHUwMTU2XHUw MTU4XHUwMTVhXHUwMTVjXHUwMTVlXHUwMTYwIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAx NjJcdTAxNjRcdTAxNjZcdTAxNjhcdTAxNmFcdTAxNmNcdTAxNmVcdTAxNzBcdTAxNzIiKQ0KPiAN Cj4gKw0KPiBidWYud3JpdGUoIlx1MDE3NFx1MDE3Nlx1MDE3OFx1MDE3YVx1MDE3Y1x1MDE3ZVx1 MDE4MFx1MDE4Mlx1MDE4NCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMTg2XHUwMTg4XHUw MThhXHUwMThjXHUwMThlXHUwMTkwXHUwMTkyXHUwMTk0XHUwMTk2IikNCj4gDQo+IA0KPiBidWYu d3JpdGUoIlwyXDIwXDNcMlw0XDVcNFwyXHUwMGFjXHUwMGIyXHUwMGZhXHUwMGZhXDRcMlx1MDBi M1x1MDBiNiIpDQo+IA0KPiANCj4gYnVmLndyaXRlKCJcdTAwZmFcdTAwZmFcNFwyXG5cblx1MDBm YVx1MDBmYVw1XDJcdTAwYjdcdTAwYjlcdTAwYmQiKQ0KPiANCj4gDQo+IGJ1Zi53cml0ZSgiXHUw MGJmXHUwMGZhXHUwMGZhXDRcMlx1MDBiYVx1MDBiZlx1MDBmYVx1MDBmYVwzXDJcdTAwODUiKQ0K PiANCj4gICAgICAgICAgYnVmLndyaXRlKCJcdTAwODZcM1wyXHUwMDhhXHUwMDhjXDNcMlJWXDNc Mlx1MDBmYVx1MDBmYlwzXDJcdTAwZWYiKQ0KPiANCj4gICAgICAgICAgYnVmLndyaXRlKCJcdTAw ZjJcNFwyXHUwMGQzXHUwMGQ5XHUwMGZhXHUwMGZhXDNcMlx1MDBmNlx1MDBmN1wzXDIiKQ0KPiAN Cj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTAwZjhcdTAwZmFcMlx1MGM2ZVwyXHUwMTliXDNcMlwy XDJcNFx1MDFhMFwzXDJcMlwyXDYiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTAxYTJc M1wyXDJcMlxiXHUwMWFjXDNcMlwyXDJcblx1MDFhZVwzXDJcMlwyXGZcdTAxYjkiKQ0KPiANCj4g LSAgICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlwxNlx1MDFjYlwzXDJcMlwyXDIwXHUwMWVjXDNc MlwyXDJcMjJcdTAxZWZcMyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwyXDJcMlwyNFx1 MDFmOFwzXDJcMlwyXDI2XHUwMjAxXDNcMlwyXDJcMzBcdTAyMGFcM1wyIikNCj4gDQo+IC0gICAg ICAgIGJ1Zi53cml0ZSgiXDJcMlwzMlx1MDIxM1wzXDJcMlwyXDM0XHUwMjFjXDNcMlwyXDJcMzZc dTAyMjVcM1wyXDIiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcMg0KPiBcdTAyMmVcM1wy XDJcMlwiXHUwMjM3XDNcMlwyXDIkXHUwMjQwXDNcMlwyXDImXHUwMjQ5IikNCj4gDQo+IC0gICAg ICAgIGJ1Zi53cml0ZSgiXDNcMlwyXDIoXHUwMjUxXDNcMlwyXDIqXHUwMjU5XDNcMlwyXDIsXHUw MjYxXDNcMlwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIi5cdTAyNjlcM1wyXDJcMlw2MFx1 MDI5NVwzXDJcMlwyXDYyXHUwMmEyXDNcMlwyXDJcNjRcdTAyYWEiKQ0KPiANCj4gLSAgICAgICAg YnVmLndyaXRlKCJcM1wyXDJcMlw2Nlx1MDJhY1wzXDJcMlwyOFx1MDJiMVwzXDJcMlwyOlx1MDJi ZVwzXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDI8XHUwMmMwXDNcMlwyXDI+XHUwMmQx XDNcMlwyXDJAXHUwMmYzXDNcMlwyXDJCXHUwMzJkIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0 ZSgiXDNcMlwyXDJEXHUwMzJmXDNcMlwyXDJGXHUwMzQ4XDNcMlwyXDJIXHUwMzRmXDNcMlwyXDIi KQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJKXHUwMzU2XDNcMlwyXDJMXHUwMzY2XDNcMlwy XDJOXHUwMzc2XDNcMlwyXDJQXHUwMzdiXDMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJc MlJcdTAzODJcM1wyXDJcMlRcdTAzOTFcM1wyXDJcMlZcdTAzYTdcM1wyXDJcMlhcdTAzYjUiKQ0K PiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlpcdTAzZTNcM1wyXDJcMlxcXHUwM2U1 XDNcMlwyXDJeXHUwM2VjXDNcMlwyXDIiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJgXHUw M2YwXDNcMlwyXDJiXHUwM2YyXDNcMlwyXDJkXHUwM2ZhXDNcMlwyXDJmXHUwNDFlXDMiKQ0KPiAN Cj4gLQ0KPiBidWYud3JpdGUoIlwyXDJcMmhcdTA0MjBcM1wyXDJcMmpcdTA0M2ZcM1wyXDJcMmxc dTA0NDJcM1wyXDJcMm5cdTA0NDUiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcM1wyXDJc MnBcdTA0NGZcM1wyXDJcMnJcdTA0NTFcM1wyXDJcMnRcdTA0NzZcM1wyXDJcMiIpDQo+IA0KPiAt ICAgICAgICBidWYud3JpdGUoInZcdTA0NzhcM1wyXDJcMnhcdTA0ODBcM1wyXDJcMnpcdTA0ODJc M1wyXDJcMnxcdTA0YjNcMyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwyXDJcMn5cdTA0 YjdcM1wyXDJcMlx1MDA4MFx1MDRiOVwzXDJcMlwyXHUwMDgyXHUwNGZlIikNCj4gDQo+IC0NCj4g YnVmLndyaXRlKCJcM1wyXDJcMlx1MDA4NFx1MDUwOFwzXDJcMlwyXHUwMDg2XHUwNTBhXDNcMlwy XDJcdTAwODgiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTA1MWZcM1wyXDJcMlx1MDA4 YVx1MDUyY1wzXDJcMlwyXHUwMDhjXHUwNTJlXDNcMlwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3Jp dGUoIlx1MDA4ZVx1MDU0OVwzXDJcMlwyXHUwMDkwXHUwNTY0XDNcMlwyXDJcdTAwOTJcdTA1NmNc MyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwMDk0XHUwNTcxXDNcMlwyXDJcdTAw OTZcdTA1NzlcM1wyXDJcMlx1MDA5OFx1MDU3ZSINCj4gKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUo IlwzXDJcMlwyXHUwMDlhXHUwNTk0XDNcMlwyXDJcdTAwOWNcdTA1OWVcM1wyXDJcMlx1MDA5ZSIp DQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNWE4XDNcMlwyXDJcdTAwYTBcdTA1YWFcM1wyXDJc Mlx1MDBhMlx1MDVjMFwzXDJcMlwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAwYTRcdTA1 ZDZcM1wyXDJcMlx1MDBhNlx1MDVlNlwzXDJcMlwyXHUwMGE4XHUwNWVhXDMiKQ0KPiANCj4gLQ0K PiBidWYud3JpdGUoIlwyXDJcMlx1MDBhYVx1MDVlY1wzXDJcMlwyXHUwMGFjXHUwNjBhXDNcMlwy XDJcdTAwYWVcdTA2MWQiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwMGIwXHUw NjFmXDNcMlwyXDJcdTAwYjJcdTA2MjNcM1wyXDJcMlx1MDBiNCIpDQo+IA0KPiAtDQo+IGJ1Zi53 cml0ZSgiXHUwNjJhXDNcMlwyXDJcdTAwYjZcdTA2MmZcM1wyXDJcMlx1MDBiOFx1MDYzM1wzXDJc MlwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAwYmFcdTA2MzVcM1wyXDJcMlx1MDBiY1x1 MDY0YVwzXDJcMlwyXHUwMGJlXHUwNjU4XDMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJc Mlx1MDBjMFx1MDY1YVwzXDJcMlwyXHUwMGMyXHUwNjZmXDNcMlwyXDJcdTAwYzRcdTA2NzkiKQ0K PiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1MDBjNlx1MDY3ZFwzXDJcMlwyXHUw MGM4XHUwNjdmXDNcMlwyXDJcdTAwY2EiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTA2 OTVcM1wyXDJcMlx1MDBjY1x1MDZhOVwzXDJcMlwyXHUwMGNlXHUwNmJhXDNcMlwyXDIiKQ0KPiAN Cj4gLQ0KPiBidWYud3JpdGUoIlx1MDBkMFx1MDZiY1wzXDJcMlwyXHUwMGQyXHUwNmNlXDNcMlwy XDJcdTAwZDRcdTA2ZDhcMyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwMGQ2XHUw NmRhXDNcMlwyXDJcdTAwZDhcdTA2ZjZcM1wyXDJcMlx1MDBkYVx1MDcwMSINCj4gKQ0KPiANCj4g LQ0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwMGRjXHUwNzAzXDNcMlwyXDJcdTAwZGVcdTA3MjVc M1wyXDJcMlx1MDBlMCIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDcyZlwzXDJcMlwy XHUwMGUyXHUwNzMxXDNcMlwyXDJcdTAwZTRcdTA3NDVcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1 Zi53cml0ZSgiXHUwMGU2XHUwNzUxXDNcMlwyXDJcdTAwZThcdTA3NTNcM1wyXDJcMlx1MDBlYVx1 MDdiM1wzIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlwyXDJcdTAwZWNcdTA3YzdcM1wyXDJc Mlx1MDBlZVx1MDdjZlwzXDJcMlwyXHUwMGYwXHUwN2QxIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53 cml0ZSgiXDNcMlwyXDJcdTAwZjJcdTA4MzFcM1wyXDJcMlx1MDBmNFx1MDg0NVwzXDJcMlwyXHUw MGY2IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwODRkXDNcMlwyXDJcdTAwZjhcdTA4 NTNcM1wyXDJcMlx1MDBmYVx1MDg1NVwzXDJcMlwyIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0 ZSgiXHUwMGZjXHUwODVhXDNcMlwyXDJcdTAwZmVcdTA4NWNcM1wyXDJcMlx1MDEwMFx1MDg2NFwz IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlwyXDJcdTAxMDJcdTA4NmFcM1wyXDJcMlx1MDEw NFx1MDg2Y1wzXDJcMlwyXHUwMTA2XHUwODc4IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgi XDNcMlwyXDJcdTAxMDhcdTA4OGFcM1wyXDJcMlx1MDEwYVx1MDg5Y1wzXDJcMlwyXHUwMTBjIikN Cj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA4YjZcM1wyXDJcMlx1MDEwZVx1MDhkMFwzXDJcMlwy XHUwMTEwXHUwOGVkXDNcMlwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDExMlx1MDhl ZlwzXDJcMlwyXHUwMTE0XHUwOGY5XDNcMlwyXDJcdTAxMTZcdTA5MTJcMyIpDQo+IA0KPiAtDQo+ IGJ1Zi53cml0ZSgiXDJcMlwyXHUwMTE4XHUwOTNiXDNcMlwyXDJcdTAxMWFcdTA5M2ZcM1wyXDJc Mlx1MDExY1x1MDk1NiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwyXHUwMTFl XHUwOWFmXDNcMlwyXDJcdTAxMjBcdTA5YzBcM1wyXDJcMlx1MDEyMiIpDQo+IA0KPiAtICAgICAg ICBidWYud3JpdGUoIlx1MDljM1wzXDJcMlwyXHUwMTI0XHUwOWM1XDNcMlwyXDJcdTAxMjZcdTA5 Y2RcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwMTI4XHUwOWQ1XDNcMlwyXDJc dTAxMmFcdTA5ZGRcM1wyXDJcMlx1MDEyY1x1MDllNVwzIikNCj4gDQo+IC0NCj4gYnVmLndyaXRl KCJcMlwyXDJcdTAxMmVcdTA5ZWRcM1wyXDJcMlx1MDEzMFx1MDlmOFwzXDJcMlwyXHUwMTMyXHUw OWZhIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1MDEzNFx1MGEwOVwzXDJcMlwy XHUwMTM2XHUwYTBiXDNcMlwyXDJcdTAxMzgiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MGEx NlwzXDJcMlwyXHUwMTNhXHUwYTE4XDNcMlwyXDJcdTAxM2NcdTBhMjNcM1wyXDJcMiIpDQo+IA0K PiAtDQo+IGJ1Zi53cml0ZSgiXHUwMTNlXHUwYTI1XDNcMlwyXDJcdTAxNDBcdTBhMzJcM1wyXDJc Mlx1MDE0Mlx1MGEzOVwzIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlwyXDJcdTAxNDRcdTBh NGFcM1wyXDJcMlx1MDE0Nlx1MGE0Y1wzXDJcMlwyXHUwMTQ4XHUwYTUzIikNCj4gDQo+IC0NCj4g YnVmLndyaXRlKCJcM1wyXDJcMlx1MDE0YVx1MGE1YVwzXDJcMlwyXHUwMTRjXHUwYTYzXDNcMlwy XDJcdTAxNGUiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MGE3MlwzXDJcMlwyXHUwMTUwXHUw YTc0XDNcMlwyXDJcdTAxNTJcdTBhNzZcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgi XHUwMTU0XHUwYTg3XDNcMlwyXDJcdTAxNTZcdTBhOTVcM1wyXDJcMlx1MDE1OFx1MGFhM1wzIikN Cj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlwyXDJcdTAxNWFcdTBhYjdcM1wyXDJcMlx1MDE1Y1x1 MGFiOVwzXDJcMlwyXHUwMTVlXHUwYWJmIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDNc MlwyXDJcdTAxNjBcdTBhYzRcM1wyXDJcMlx1MDE2Mlx1MGFjOVwzXDJcMlwyXHUwMTY0IikNCj4g DQo+IC0NCj4gYnVmLndyaXRlKCJcdTBhZDRcM1wyXDJcMlx1MDE2Nlx1MGFkNlwzXDJcMlwyXHUw MTY4XHUwYWRiXDNcMlwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDE2YVx1MGFkZFwz XDJcMlwyXHUwMTZjXHUwYWU4XDNcMlwyXDJcdTAxNmVcdTBhZjRcMyIpDQo+IA0KPiAtDQo+IGJ1 Zi53cml0ZSgiXDJcMlwyXHUwMTcwXHUwYWY2XDNcMlwyXDJcdTAxNzJcdTBhZmJcM1wyXDJcMlx1 MDE3NFx1MGIwMCIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTAxNzZcdTBiMTVc M1wyXDJcMlx1MDE3OFx1MGIxYVwzXDJcMlwyXHUwMTdhIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53 cml0ZSgiXHUwYjFmXDNcMlwyXDJcdTAxN2NcdTBiMmFcM1wyXDJcMlx1MDE3ZVx1MGIyZlwzXDJc MlwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAxODBcdTBiMzRcM1wyXDJcMlx1MDE4Mlx1 MGIzOVwzXDJcMlwyXHUwMTg0XHUwYjRiXDMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJc Mlx1MDE4Nlx1MGI0ZFwzXDJcMlwyXHUwMTg4XHUwYjU2XDNcMlwyXDJcdTAxOGFcdTBiNjgiDQo+ ICkNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1MDE4Y1x1MGI2YVwzXDJcMlwyXHUw MThlXHUwYjczXDNcMlwyXDJcdTAxOTAiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MGI3Y1wz XDJcMlwyXHUwMTkyXHUwYjkwXDNcMlwyXDJcdTAxOTRcdTBiOTJcM1wyXDJcMiIpDQo+IA0KPiAt DQo+IGJ1Zi53cml0ZSgiXHUwMTk2XHUwMTlhXDVcblw2XDJcdTAxOTdcdTAxOWFcNVxmXDdcMlx1 MDE5OFx1MDE5YVw1IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDE2XGJcMlx1MDE5OVx1 MDE5NlwzXDJcMlwyXHUwMTk5XHUwMTk3XDNcMlwyXDJcdTAxOTkiKQ0KPiANCj4gLQ0KPiBidWYu d3JpdGUoIlx1MDE5OFwzXDJcMlwyXHUwMTlhXHUwMTlkXDNcMlwyXDJcdTAxOWJcdTAxOTlcM1wy XDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwMTliXHUwMTljXDNcMlwyXDJcdTAxOWNc dTAxOWVcM1wyXDJcMlx1MDE5ZFx1MDE5YlwzIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgi XDJcMlwyXHUwMTllXHUwMTlmXDUuXDMwXDJcdTAxOWZcM1wzXDJcMlwyXHUwMWEwXHUwMWExIikN Cj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcN1wzXDJcMlx1MDFhMVw1XDNcMlwyXDJcdTAxYTJcdTAx YTVcdFwyXDJcMlx1MDFhM1x1MDFhNCIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDchXDJcMlx1 MDFhNFx1MDFhNlw3XHUwMGZiXDJcMlx1MDFhNVx1MDFhM1wzXDJcMlwyXHUwMWE1IikNCj4gDQo+ IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwMWE2XDNcMlwyXDJcdTAxYTZcdTAxYTlcM1wyXDJcMlx1 MDFhN1x1MDFhOFw3IVwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDFhOFx1MDFhYVw3 XHUwMGZhXDJcMlx1MDFhOVx1MDFhN1wzXDJcMlwyXHUwMWE5XHUwMWFhIikNCj4gDQo+IC0gICAg ICAgIGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTAxYWFcN1wzXDJcMlwyXHUwMWFiXHUwMWFkXDdcdTAw ZmFcMlwyXHUwMWFjIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAxYWJcM1wyXDJcMlx1MDFh Y1x1MDFhZFwzXDJcMlwyXHUwMWFkXHRcM1wyXDJcMlx1MDFhZSIpDQo+IA0KPiAtICAgICAgICBi dWYud3JpdGUoIlx1MDFhZlw3XDZcMlwyXHUwMWFmXHUwMWIwXDdcN1wyXDJcdTAxYjBcdTAxYjRc N1wzMFwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlx1MDFiMVx1MDFiNVw1XDRcM1wyXHUw MWIyXHUwMWI1XDVcNlw0XDJcdTAxYjNcdTAxYjUiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlw1 XGJcNVwyXHUwMWI0XHUwMWIxXDNcMlwyXDJcdTAxYjRcdTAxYjJcM1wyXDJcMlx1MDFiNCIpDQo+ IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwMWIzXDNcMlwyXDJcdTAxYjRcdTAxYjVcM1wyXDJcMlx1 MDFiNVx1MDFiNlwzXDJcMlwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAxYjZcdTAxYjdc N1wzMVwyXDJcdTAxYjdcMTNcM1wyXDJcMlx1MDFiOFx1MDFiYVw3XHUwMDg0DQo+ICIpDQo+IA0K PiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDFiOVx1MDFiOFwzXDJcMlwyXHUwMWI5XHUwMWJhXDNc MlwyXDJcdTAxYmFcdTAxYmIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwMWJi XHUwMWJkXDdQXDJcMlx1MDFiY1x1MDFiZVw3T1wyXDJcdTAxYmRcdTAxYmMNCj4gIikNCj4gDQo+ IC0NCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1MDFiZFx1MDFiZVwzXDJcMlwyXHUwMWJlXHUwMWMw XDNcMlwyXDJcdTAxYmYiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTAxYzFcN1x1MDBm YlwyXDJcdTAxYzBcdTAxYmZcM1wyXDJcMlx1MDFjMFx1MDFjMVwzXDIiKQ0KPiANCj4gLQ0KPiBi dWYud3JpdGUoIlwyXDJcdTAxYzFcdTAxYzJcM1wyXDJcMlx1MDFjMlx1MDFjM1w3XDI2XDJcMlx1 MDFjM1x1MDFjNCIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlw1XDIwXHRcMlx1MDFjNFx1 MDFjNlw3XDI3XDJcMlx1MDFjNVx1MDFjN1w3XHUwMGZiXDJcMiIpDQo+IA0KPiAtICAgICAgICBi dWYud3JpdGUoIlx1MDFjNlx1MDFjNVwzXDJcMlwyXHUwMWM2XHUwMWM3XDNcMlwyXDJcdTAxYzdc dTAxYzhcMyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwyXDJcMlx1MDFjOFx1MDFjOVw3 IFwyXDJcdTAxYzlcclwzXDJcMlwyXHUwMWNhXHUwMWNjIikNCj4gDQo+IC0NCj4gYnVmLndyaXRl KCJcN1x1MDA4NFwyXDJcdTAxY2JcdTAxY2FcM1wyXDJcMlx1MDFjYlx1MDFjY1wzXDJcMlwyXHUw MWNjIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAxY2RcM1wyXDJcMlx1MDFjZFx1MDFjZlw3 UVwyXDJcdTAxY2VcdTAxZDBcN09cMlwyXHUwMWNmIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0 ZSgiXHUwMWNlXDNcMlwyXDJcdTAxY2ZcdTAxZDBcM1wyXDJcMlx1MDFkMFx1MDFkMlwzXDJcMlwy IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAxZDFcdTAxZDNcN1x1MDBmYlwyXDJcdTAxZDJc dTAxZDFcM1wyXDJcMlx1MDFkMlx1MDFkMyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcMlwy XDJcdTAxZDNcdTAxZDRcM1wyXDJcMlx1MDFkNFx1MDFkNVw3XDI2XDJcMlx1MDFkNSIpDQo+IA0K PiAtDQo+IGJ1Zi53cml0ZSgiXHUwMWQ2XDVcMjBcdFwyXHUwMWQ2XHUwMWQ4XDdcMjdcMlwyXHUw MWQ3XHUwMWQ5XDdcdTAwZmIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJcdTAxZDhcdTAx ZDdcM1wyXDJcMlx1MDFkOFx1MDFkOVwzXDJcMlwyXHUwMWQ5XHUwMWRhIikNCj4gDQo+IC0gICAg ICAgIGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTAxZGFcdTAxZGJcNw0KPiBcMlwyXHUwMWRiXDE3XDNc MlwyXDJcdTAxZGNcdTAxZWIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlw1XDIyXG5cMlx1MDFk ZFx1MDFlYlw1XDI0XDEzXDJcdTAxZGVcdTAxZWJcNVwyNlxmXDJcdTAxZGYiKQ0KPiANCj4gLQ0K PiBidWYud3JpdGUoIlx1MDFlYlw1XDMwXHJcMlx1MDFlMFx1MDFlYlw1XDMyXDE2XDJcdTAxZTFc dTAxZWJcNVwzNCIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwxN1wyXHUwMWUyXHUwMWVi XDVcMzZcMjBcMlx1MDFlM1x1MDFlYlw1IFwyMVwyXHUwMWU0IikNCj4gDQo+IC0NCj4gYnVmLndy aXRlKCJcdTAxZWJcNVwiXDIyXDJcdTAxZTVcdTAxZWJcNSRcMjNcMlx1MDFlNlx1MDFlYlw1Jlwy NCIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcdTAxZTdcdTAxZWJcNShcMjVcMlx1MDFlOFx1 MDFlYlw1KlwyNlwyXHUwMWU5XHUwMWViIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcNSxcMjdc Mlx1MDFlYVx1MDFkY1wzXDJcMlwyXHUwMWVhXHUwMWRkXDNcMlwyXDJcdTAxZWEiKQ0KPiANCj4g LQ0KPiBidWYud3JpdGUoIlx1MDFkZVwzXDJcMlwyXHUwMWVhXHUwMWRmXDNcMlwyXDJcdTAxZWFc dTAxZTBcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwMWVhXHUwMWUxXDNcMlwy XDJcdTAxZWFcdTAxZTJcM1wyXDJcMlx1MDFlYVx1MDFlM1wzIikNCj4gDQo+IC0NCj4gYnVmLndy aXRlKCJcMlwyXDJcdTAxZWFcdTAxZTRcM1wyXDJcMlx1MDFlYVx1MDFlNVwzXDJcMlwyXHUwMWVh XHUwMWU2Ig0KPiApDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTAxZWFcdTAxZTdc M1wyXDJcMlx1MDFlYVx1MDFlOFwzXDJcMlwyXHUwMWVhIikNCj4gDQo+IC0NCj4gYnVmLndyaXRl KCJcdTAxZTlcM1wyXDJcMlx1MDFlYlx1MDFlZVwzXDJcMlwyXHUwMWVjXHUwMWVhXDNcMlwyXDIi KQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTAxZWNcdTAxZWRcM1wyXDJcMlx1MDFlZFwy MVwzXDJcMlwyXHUwMWVlXHUwMWVjXDNcMiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwy XDJcdTAxZWZcdTAxZjBcN1NcMlwyXHUwMWYwXHUwMWY0XDdcdTAwZmJcMlwyXHUwMWYxIikNCj4g DQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwMWYyXDdcMzJcMlwyXHUwMWYyXHUwMWYzXDdcdTAw ZmFcMlwyXHUwMWYzXHUwMWY1XDciKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcMzNcMlwy XHUwMWY0XHUwMWYxXDNcMlwyXDJcdTAxZjRcdTAxZjVcM1wyXDJcMlx1MDFmNSIpDQo+IA0KPiAt ICAgICAgICBidWYud3JpdGUoIlx1MDFmNlwzXDJcMlwyXHUwMWY2XHUwMWY3XDcgXDJcMlx1MDFm N1wyM1wzXDJcMlwyXHUwMWY4IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwMWY5XDdU XDJcMlx1MDFmOVx1MDFmZFw3XHUwMGZiXDJcMlx1MDFmYVx1MDFmYlw3XDMyIikNCj4gDQo+IC0g ICAgICAgIGJ1Zi53cml0ZSgiXDJcMlx1MDFmYlx1MDFmY1w3XHUwMGZhXDJcMlx1MDFmY1x1MDFm ZVw3XDMzXDJcMlx1MDFmZCIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDFmYVwzXDJc MlwyXHUwMWZkXHUwMWZlXDNcMlwyXDJcdTAxZmVcdTAxZmZcM1wyXDJcMiIpDQo+IA0KPiAtICAg ICAgICBidWYud3JpdGUoIlx1MDFmZlx1MDIwMFw3IFwyXDJcdTAyMDBcMjVcM1wyXDJcMlx1MDIw MVx1MDIwMlw3VVwyIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDJcdTAyMDJcdTAyMDZc N1x1MDBmYlwyXDJcdTAyMDNcdTAyMDRcN1wzMlwyXDJcdTAyMDQiKQ0KPiANCj4gLSAgICAgICAg YnVmLndyaXRlKCJcdTAyMDVcN1x1MDBmYVwyXDJcdTAyMDVcdTAyMDdcN1wzM1wyXDJcdTAyMDZc dTAyMDNcMyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwMjA2XHUwMjA3XDNcMlwy XDJcdTAyMDdcdTAyMDhcM1wyXDJcMlx1MDIwOFx1MDIwOSINCj4gKQ0KPiANCj4gLSAgICAgICAg YnVmLndyaXRlKCJcNw0KPiBcMlwyXHUwMjA5XDI3XDNcMlwyXDJcdTAyMGFcdTAyMGJcN1ZcMlwy XHUwMjBiXHUwMjBmIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDdcdTAwZmJcMlwyXHUw MjBjXHUwMjBkXDdcMzJcMlwyXHUwMjBkXHUwMjBlXDdcdTAwZmEiKQ0KPiANCj4gLQ0KPiBidWYu d3JpdGUoIlwyXDJcdTAyMGVcdTAyMTBcN1wzM1wyXDJcdTAyMGZcdTAyMGNcM1wyXDJcMlx1MDIw Zlx1MDIxMCIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwyXHUwMjEwXHUwMjEx XDNcMlwyXDJcdTAyMTFcdTAyMTJcNyBcMlwyXHUwMjEyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRl KCJcMzFcM1wyXDJcMlx1MDIxM1x1MDIxNFw3UlwyXDJcdTAyMTRcdTAyMThcN1x1MDBmYlwyXDIi KQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDIxNVx1MDIxNlw3XDMyXDJcMlx1MDIxNlx1MDIx N1w3XHUwMGZhXDJcMlx1MDIxN1x1MDIxOSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDdcMzNc MlwyXHUwMjE4XHUwMjE1XDNcMlwyXDJcdTAyMThcdTAyMTlcM1wyXDJcMlx1MDIxOSIpDQo+IA0K PiAtICAgICAgICBidWYud3JpdGUoIlx1MDIxYVwzXDJcMlwyXHUwMjFhXHUwMjFiXDcNCj4gXDJc Mlx1MDIxYlwzM1wzXDJcMlwyXHUwMjFjIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAyMWRc N1dcMlwyXHUwMjFkXHUwMjIxXDdcdTAwZmJcMlwyXHUwMjFlXHUwMjFmXDdcMzIiKQ0KPiANCj4g LQ0KPiBidWYud3JpdGUoIlwyXDJcdTAyMWZcdTAyMjBcN1x1MDBmYVwyXDJcdTAyMjBcdTAyMjJc N1wzM1wyXDJcdTAyMjEiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDIxZVwzXDJcMlwyXHUw MjIxXHUwMjIyXDNcMlwyXDJcdTAyMjJcdTAyMjNcM1wyXDJcMiIpDQo+IA0KPiAtICAgICAgICBi dWYud3JpdGUoIlx1MDIyM1x1MDIyNFw3IFwyXDJcdTAyMjRcMzVcM1wyXDJcMlx1MDIyNVx1MDIy Nlw3WFwyIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDJcdTAyMjZcdTAyMmFcN1x1MDBm YlwyXDJcdTAyMjdcdTAyMjhcN1wzMlwyXDJcdTAyMjgiKQ0KPiANCj4gLSAgICAgICAgYnVmLndy aXRlKCJcdTAyMjlcN1x1MDBmYVwyXDJcdTAyMjlcdTAyMmJcN1wzM1wyXDJcdTAyMmFcdTAyMjdc MyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwMjJhXHUwMjJiXDNcMlwyXDJcdTAy MmJcdTAyMmNcM1wyXDJcMlx1MDIyY1x1MDIyZCIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUo Ilw3DQo+IFwyXDJcdTAyMmRcMzdcM1wyXDJcMlx1MDIyZVx1MDIyZlw3WVwyXDJcdTAyMmZcdTAy MzMiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcN1x1MDBmYlwyXDJcdTAyMzBcdTAyMzFc N1wzMlwyXDJcdTAyMzFcdTAyMzJcN1x1MDBmYSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJc Mlx1MDIzMlx1MDIzNFw3XDMzXDJcMlx1MDIzM1x1MDIzMFwzXDJcMlwyXHUwMjMzXHUwMjM0IikN Cj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTAyMzRcdTAyMzVcM1wyXDJcMlx1 MDIzNVx1MDIzNlw3IFwyXDJcdTAyMzYiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIiFcM1wyXDJc Mlx1MDIzN1x1MDIzOFw3WlwyXDJcdTAyMzhcdTAyM2NcN1x1MDBmYlwyXDJcdTAyMzkiKQ0KPiAN Cj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTAyM2FcN1wzMlwyXDJcdTAyM2FcdTAyM2JcN1x1MDBm YVwyXDJcdTAyM2JcdTAyM2RcNyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwzM1wyXDJc dTAyM2NcdTAyMzlcM1wyXDJcMlx1MDIzY1x1MDIzZFwzXDJcMlwyXHUwMjNkIikNCj4gDQo+IC0g ICAgICAgIGJ1Zi53cml0ZSgiXHUwMjNlXDNcMlwyXDJcdTAyM2VcdTAyM2ZcNyBcMlwyXHUwMjNm I1wzXDJcMlwyXHUwMjQwIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAyNDFcN1x1MDBmYlwy XDJcdTAyNDFcdTAyNDVcN1x1MDBmYlwyXDJcdTAyNDJcdTAyNDMiKQ0KPiANCj4gLQ0KPiBidWYu d3JpdGUoIlw3XDMyXDJcMlx1MDI0M1x1MDI0NFw3XHUwMGZhXDJcMlx1MDI0NFx1MDI0Nlw3XDMz XDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwMjQ1XHUwMjQyXDNcMlwyXDJcdTAyNDVc dTAyNDZcM1wyXDJcMlx1MDI0Nlx1MDI0N1wzIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgi XDJcMlwyXHUwMjQ3XHUwMjQ4XDcNCj4gXDJcMlx1MDI0OCVcM1wyXDJcMlx1MDI0OVx1MDI0Ylw3 IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJTXDJcMlx1MDI0YVx1MDI0Y1w3XHUwMGZiXDJcMlx1 MDI0Ylx1MDI0YVwzXDJcMlwyXHUwMjRiIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUw MjRjXDNcMlwyXDJcdTAyNGNcdTAyNGRcM1wyXDJcMlx1MDI0ZFx1MDI0ZVw3XDM2XDIiKQ0KPiAN Cj4gLSAgICAgICAgYnVmLndyaXRlKCJcMlx1MDI0ZVx1MDI0Zlw3XHUwMGZhXDJcMlx1MDI0Zlx1 MDI1MFw3IFwyXDJcdTAyNTBcJyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTAy NTFcdTAyNTNcN1RcMlwyXHUwMjUyXHUwMjU0XDdcdTAwZmJcMlwyXHUwMjUzIikNCj4gDQo+IC0N Cj4gYnVmLndyaXRlKCJcdTAyNTJcM1wyXDJcMlx1MDI1M1x1MDI1NFwzXDJcMlwyXHUwMjU0XHUw MjU1XDNcMlwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDI1NVx1MDI1Nlw3XDM2XDJc Mlx1MDI1Nlx1MDI1N1w3XHUwMGZhXDJcMlx1MDI1N1x1MDI1OCIpDQo+IA0KPiAtICAgICAgICBi dWYud3JpdGUoIlw3IFwyXDJcdTAyNTgpXDNcMlwyXDJcdTAyNTlcdTAyNWJcN1VcMlwyXHUwMjVh XHUwMjVjIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcN1x1MDBmYlwyXDJcdTAyNWJcdTAyNWFc M1wyXDJcMlx1MDI1Ylx1MDI1Y1wzXDJcMlwyXHUwMjVjIikNCj4gDQo+IC0NCj4gYnVmLndyaXRl KCJcdTAyNWRcM1wyXDJcMlx1MDI1ZFx1MDI1ZVw3XDM2XDJcMlx1MDI1ZVx1MDI1Zlw3XHUwMGZh IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDJcMlx1MDI1Zlx1MDI2MFw3IFwyXDJcdTAy NjArXDNcMlwyXDJcdTAyNjFcdTAyNjNcN1YiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJc dTAyNjJcdTAyNjRcN1x1MDBmYlwyXDJcdTAyNjNcdTAyNjJcM1wyXDJcMlx1MDI2MyIpDQo+IA0K PiAtICAgICAgICBidWYud3JpdGUoIlx1MDI2NFwzXDJcMlwyXHUwMjY0XHUwMjY1XDNcMlwyXDJc dTAyNjVcdTAyNjZcN1wzNlwyIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDJcdTAyNjZc dTAyNjdcN1x1MDBmYVwyXDJcdTAyNjdcdTAyNjhcNyBcMlwyXHUwMjY4LVwzIikNCj4gDQo+IC0N Cj4gYnVmLndyaXRlKCJcMlwyXDJcdTAyNjlcdTAyNmFcNytcMlwyXHUwMjZhXHUwMjZiXDdbXDJc Mlx1MDI2Ylx1MDI2YyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDdcYlwyXDJcdTAyNmNcdTAy NmRcNUxcJ1wyXHUwMjZkXHUwMjZlXDchXDJcMlx1MDI2ZVx1MDI2ZiIpDQo+IA0KPiAtDQo+IGJ1 Zi53cml0ZSgiXDcuXDJcMlx1MDI2Zlx1MDI3MFw3XGJcMlwyXHUwMjcwXHUwMjcxXDdcdTAwZWNc MlwyXHUwMjcxIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwMjcyXDdcMzBcMlwyXHUw MjcyXHUwMjczXDdcdTAwZmFcMlwyXHUwMjczXHUwMjc0XDciKQ0KPiANCj4gLQ0KPiBidWYud3Jp dGUoIlwzMVwyXDJcdTAyNzRcdTAyNzVcNyFcMlwyXHUwMjc1XHUwMjc2XDc9XDJcMlx1MDI3Nlx1 MDI3NyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlw3XGJcMlwyXHUwMjc3XHUwMjc4XDdc dTAwZWNcMlwyXHUwMjc4XHUwMjc5XDdcMzBcMlwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJc dTAyNzlcdTAyN2FcN1x1MDBmYVwyXDJcdTAyN2FcdTAyN2JcN1wzMVwyXDJcdTAyN2JcdTAyODEi KQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlw3IVwyXDJcdTAyN2NcdTAyN2RcN1x1MDA4M1wyXDJc dTAyN2RcdTAyN2VcN1xiXDJcMlx1MDI3ZSIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1 MDI3Zlw1XDYwXDMxXDJcdTAyN2ZcdTAyODBcNyFcMlwyXHUwMjgwXHUwMjgyXDNcMlwyIikNCj4g DQo+IC0NCj4gYnVmLndyaXRlKCJcMlx1MDI4MVx1MDI3Y1wzXDJcMlwyXHUwMjgxXHUwMjgyXDNc MlwyXDJcdTAyODJcdTAyODgiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwMjgz XHUwMjg0XDdcdTAwODFcMlwyXHUwMjg0XHUwMjg1XDdcYlwyXDJcdTAyODUiDQo+ICkNCj4gDQo+ IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwMjg2XDVcNjJcMzJcMlx1MDI4Nlx1MDI4N1w3IVwyXDJc dTAyODdcdTAyODlcM1wyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXHUwMjg4XHUwMjgz XDNcMlwyXDJcdTAyODhcdTAyODlcM1wyXDJcMlx1MDI4OVx1MDI4ZiIpDQo+IA0KPiAtDQo+IGJ1 Zi53cml0ZSgiXDNcMlwyXDJcdTAyOGFcdTAyOGJcN1x1MDA4MlwyXDJcdTAyOGJcdTAyOGNcN1xi XDJcMlx1MDI4YyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDI4ZFw1XDY2XDM0XDJc dTAyOGRcdTAyOGVcNyFcMlwyXHUwMjhlXHUwMjkwXDNcMlwyIikNCj4gDQo+IC0NCj4gYnVmLndy aXRlKCJcMlx1MDI4Zlx1MDI4YVwzXDJcMlwyXHUwMjhmXHUwMjkwXDNcMlwyXDJcdTAyOTBcdTAy OTEiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1MDI5MVx1MDI5Mlw1OFwz NVwyXHUwMjkyXHUwMjkzXDctXDJcMlx1MDI5MyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUo Ilx1MDI5NFw3IFwyXDJcdTAyOTQvXDNcMlwyXDJcdTAyOTVcdTAyOThcNUxcJ1wyXHUwMjk2IikN Cj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAyOTdcNyhcMlwyXHUwMjk3XHUwMjk5XDVMXCdcMlx1 MDI5OFx1MDI5NlwzXDJcMlwyXHUwMjk4IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUw Mjk5XDNcMlwyXDJcdTAyOTlcdTAyOWNcM1wyXDJcMlx1MDI5YVx1MDI5Ylw3KFwyXDIiKQ0KPiAN Cj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTAyOWJcdTAyOWRcNUxcJ1wyXHUwMjljXHUwMjlhXDNc MlwyXDJcdTAyOWNcdTAyOWRcMyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwMjlk XHUwMmEwXDNcMlwyXDJcdTAyOWVcdTAyOWZcNyhcMlwyXHUwMjlmXHUwMmExIikNCj4gDQo+IC0g ICAgICAgIGJ1Zi53cml0ZSgiXDVMXCdcMlx1MDJhMFx1MDI5ZVwzXDJcMlwyXHUwMmEwXHUwMmEx XDNcMlwyXDJcdTAyYTEiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlw2MVwzXDJcMlwyXHUwMmEy XHUwMmE3XDVcNjRcMzNcMlx1MDJhM1x1MDJhNFw3KFwyXDJcdTAyYTQiKQ0KPiANCj4gLQ0KPiBi dWYud3JpdGUoIlx1MDJhNlw1XDY0XDMzXDJcdTAyYTVcdTAyYTNcM1wyXDJcMlx1MDJhNlx1MDJh OVwzXDJcMiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwyXHUwMmE3XHUwMmE1XDNcMlwy XDJcdTAyYTdcdTAyYThcM1wyXDJcMlx1MDJhOFw2M1wzIikNCj4gDQo+IC0NCj4gYnVmLndyaXRl KCJcMlwyXDJcdTAyYTlcdTAyYTdcM1wyXDJcMlx1MDJhYVx1MDJhYlx0XDNcMlwyXHUwMmFiXDY1 IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1MDJhY1x1MDJhZFx0XDRcMlwyXHUw MmFkXDY3XDNcMlwyXDJcdTAyYWVcdTAyYjAiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJc NTpcMzZcMlx1MDJhZlx1MDJhZVwzXDJcMlwyXHUwMmIwXHUwMmIzXDNcMlwyXDJcdTAyYjEiKQ0K PiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDJhZlwzXDJcMlwyXHUwMmIxXHUwMmIyXDNcMlwyXDJc dTAyYjI5XDNcMlwyXDJcdTAyYjMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDJiMVwzXDJc MlwyXHUwMmI0XHUwMmJmXDVkXDYzXDJcdTAyYjVcdTAyYmZcNWhcNjVcMiIpDQo+IA0KPiAtICAg ICAgICBidWYud3JpdGUoIlx1MDJiNlx1MDJiZlw1alw2NlwyXHUwMmI3XHUwMmJmXDU+IFwyXHUw MmI4XHUwMmJmXDVAIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiIVwyXHUwMmI5XHUwMmJm XDVEI1wyXHUwMmJhXHUwMmJmXDU8XDM3XDJcdTAyYmJcdTAyYmYiKQ0KPiANCj4gLQ0KPiBidWYu d3JpdGUoIlw1RiRcMlx1MDJiY1x1MDJiZlw1SCVcMlx1MDJiZFx1MDJiZlw1XHUwMTFjXHUwMDhm XDJcdTAyYmUNCj4gIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAyYjRcM1wyXDJcMlx1MDJi ZVx1MDJiNVwzXDJcMlwyXHUwMmJlXHUwMmI2XDNcMlwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3Jp dGUoIlx1MDJiZVx1MDJiN1wzXDJcMlwyXHUwMmJlXHUwMmI4XDNcMlwyXDJcdTAyYmVcdTAyYjlc MyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwMmJlXHUwMmJhXDNcMlwyXDJcdTAy YmVcdTAyYmJcM1wyXDJcMlx1MDJiZVx1MDJiYyINCj4gKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUo IlwzXDJcMlwyXHUwMmJlXHUwMmJkXDNcMlwyXDJcdTAyYmY7XDNcMlwyXDJcdTAyYzBcdTAyYzEi KQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcN1x1MDA5YlwyXDJcdTAyYzFcdTAyYzJcN1x1 MDBmYlwyXDJcdTAyYzJcdTAyYzNcNyFcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcdTAy YzNcdTAyYzRcN1w2MlwyXDJcdTAyYzRcdTAyYzVcN1xiXDJcMlx1MDJjNVx1MDJjNiIpDQo+IA0K PiAtICAgICAgICBidWYud3JpdGUoIlw3XHUwMGVjXDJcMlx1MDJjNlx1MDJjN1w3XDMwXDJcMlx1 MDJjN1x1MDJjOFw3XHUwMGZhIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlwyXHUwMmM4XHUw MmNkXDdcMzFcMlwyXHUwMmM5XHUwMmNhXDchXDJcMlx1MDJjYVx1MDJjYiIpDQo+IA0KPiAtICAg ICAgICBidWYud3JpdGUoIlw3XHUwMDljXDJcMlx1MDJjYlx1MDJjY1w3XGJcMlwyXHUwMmNjXHUw MmNlXDdcdTAwZmFcMiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwyXHUwMmNkXHUwMmM5 XDNcMlwyXDJcdTAyY2RcdTAyY2VcM1wyXDJcMlx1MDJjZVx1MDJjZiIpDQo+IA0KPiAtICAgICAg ICBidWYud3JpdGUoIlwzXDJcMlwyXHUwMmNmXHUwMmQwXDcgXDJcMlx1MDJkMD1cM1wyXDJcMlx1 MDJkMVx1MDJlMiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlw3XHUwMDlkXDJcMlx1MDJk Mlx1MDJkM1w3XHUwMGZiXDJcMlx1MDJkM1x1MDJlM1w3IVwyIikNCj4gDQo+IC0NCj4gYnVmLndy aXRlKCJcMlx1MDJkNFx1MDJkNVw3VlwyXDJcdTAyZDVcdTAyZTNcNyFcMlwyXHUwMmQ2XHUwMmQ3 XDciKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlVcMlwyXHUwMmQ3XHUwMmUzXDchXDJcMlx1MDJk OFx1MDJkOVw3VFwyXDJcdTAyZDlcdTAyZTMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlw3IVwy XDJcdTAyZGFcdTAyZGJcN1NcMlwyXHUwMmRiXHUwMmUzXDchXDJcMlx1MDJkY1x1MDJkZCIpDQo+ IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDdYXDJcMlx1MDJkZFx1MDJlM1w3IVwyXDJcdTAyZGVcdTAy ZGZcN1lcMlwyXHUwMmRmXHUwMmUzIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcNyFcMlwyXHUw MmUwXHUwMmUxXDdaXDJcMlx1MDJlMVx1MDJlM1w3IVwyXDJcdTAyZTJcdTAyZDIiKQ0KPiANCj4g LQ0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwMmUyXHUwMmQ0XDNcMlwyXDJcdTAyZTJcdTAyZDZc M1wyXDJcMlx1MDJlMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwMmQ4XDNcMlwyXDJcdTAy ZTJcdTAyZGFcM1wyXDJcMlx1MDJlMlx1MDJkY1wzXDJcMlwyIikNCj4gDQo+IC0NCj4gYnVmLndy aXRlKCJcdTAyZTJcdTAyZGVcM1wyXDJcMlx1MDJlMlx1MDJlMFwzXDJcMlwyXHUwMmUzXHUwMmU4 XDMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJcMlx1MDJlNFx1MDJlNVw3XHUwMDhmXDJc Mlx1MDJlNVx1MDJlNlw3XGJcMlwyXHUwMmU2IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgi XHUwMmU3XDdcdTAwZmFcMlwyXHUwMmU3XHUwMmU5XDchXDJcMlx1MDJlOFx1MDJlNFwzXDIiKQ0K PiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJcdTAyZThcdTAyZTlcM1wyXDJcMlx1MDJlOVx1MDJl YVwzXDJcMlwyXHUwMmVhXHUwMmViIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcN1x1MDA4ZVwy XDJcdTAyZWJcdTAyZWNcN1xiXDJcMlx1MDJlY1x1MDJlZFw3XHUwMGZiXDIiKQ0KPiANCj4gLSAg ICAgICAgYnVmLndyaXRlKCJcMlx1MDJlZFx1MDJlZVw3IVwyXDJcdTAyZWVcdTAyZWZcN1tcMlwy XHUwMmVmXHUwMmYwXDciKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcYlwyXDJcdTAyZjBc dTAyZjFcNUxcJ1wyXHUwMmYxXHUwMmYyXDcgXDJcMlx1MDJmMj9cMyIpDQo+IA0KPiAtICAgICAg ICBidWYud3JpdGUoIlwyXDJcMlx1MDJmM1x1MDMwNFw3XHUwMDllXDJcMlx1MDJmNFx1MDJmNVw3 XHUwMGZiXDJcMiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDJmNVx1MDMwNVw3IVwy XDJcdTAyZjZcdTAyZjdcN1ZcMlwyXHUwMmY3XHUwMzA1XDchIikNCj4gDQo+IC0gICAgICAgIGJ1 Zi53cml0ZSgiXDJcMlx1MDJmOFx1MDJmOVw3VVwyXDJcdTAyZjlcdTAzMDVcNyFcMlwyXHUwMmZh XHUwMmZiIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcN1RcMlwyXHUwMmZiXHUwMzA1XDchXDJc Mlx1MDJmY1x1MDJmZFw3U1wyXDJcdTAyZmRcdTAzMDUiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUo Ilw3IVwyXDJcdTAyZmVcdTAyZmZcN1hcMlwyXHUwMmZmXHUwMzA1XDchXDJcMlx1MDMwMFx1MDMw MSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDdZXDJcMlx1MDMwMVx1MDMwNVw3IVwyXDJcdTAz MDJcdTAzMDNcN1pcMlwyXHUwMzAzXHUwMzA1IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgi XDchXDJcMlx1MDMwNFx1MDJmNFwzXDJcMlwyXHUwMzA0XHUwMmY2XDNcMlwyXDJcdTAzMDQiKQ0K PiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTAyZjhcM1wyXDJcMlx1MDMwNFx1MDJmYVwzXDJc MlwyXHUwMzA0XHUwMmZjXDNcMlwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDMwNFx1 MDJmZVwzXDJcMlwyXHUwMzA0XHUwMzAwXDNcMlwyXDJcdTAzMDRcdTAzMDJcMyIpDQo+IA0KPiAt DQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwMzA1XHUwMzBhXDNcMlwyXDJcdTAzMDZcdTAzMDdcN1x1 MDA4ZlwyXDJcdTAzMDciKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTAzMDhcN1xiXDJc Mlx1MDMwOFx1MDMwOVw3XHUwMGZhXDJcMlx1MDMwOVx1MDMwYlw3ISIpDQo+IA0KPiAtDQo+IGJ1 Zi53cml0ZSgiXDJcMlx1MDMwYVx1MDMwNlwzXDJcMlwyXHUwMzBhXHUwMzBiXDNcMlwyXDJcdTAz MGJcdTAzMGMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwMzBjXHUwMzBkXDdc dTAwOWNcMlwyXHUwMzBkXHUwMzBlXDdcYlwyXDJcdTAzMGUiKQ0KPiANCj4gLQ0KPiBidWYud3Jp dGUoIlx1MDMxM1w1QlwiXDJcdTAzMGZcdTAzMTBcNyhcMlwyXHUwMzEwXHUwMzEyXDVCXCJcMlx1 MDMxMSIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDMwZlwzXDJcMlwyXHUwMzEyXHUw MzE1XDNcMlwyXDJcdTAzMTNcdTAzMTFcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgi XHUwMzEzXHUwMzE0XDNcMlwyXDJcdTAzMTRcdTAzMTZcM1wyXDJcMlx1MDMxNVx1MDMxM1wzIikN Cj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlwyXDJcdTAzMTZcdTAzMjZcNyFcMlwyXHUwMzE3XHUw MzE4XDdcdTAwOGVcMlwyXHUwMzE4IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwMzE5 XDdcYlwyXDJcdTAzMTlcdTAzMWFcN1x1MDBmYlwyXDJcdTAzMWFcdTAzMjdcNyEiKQ0KPiANCj4g LQ0KPiBidWYud3JpdGUoIlwyXDJcdTAzMWJcdTAzMWNcN1x1MDA4ZVwyXDJcdTAzMWNcdTAzMWRc N1xiXDJcMlx1MDMxZCIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDMxZVw3XHUwMGVj XDJcMlx1MDMxZVx1MDMxZlw3XDMwXDJcMlx1MDMxZlx1MDMyMFw3IikNCj4gDQo+IC0NCj4gYnVm LndyaXRlKCJcdTAwZmFcMlwyXHUwMzIwXHUwMzIxXDdcMzFcMlwyXHUwMzIxXHUwMzIyXDchXDJc Mlx1MDMyMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwMzIzXDdcdTAwOWZcMlwyXHUwMzIz XHUwMzI0XDdcYlwyXDJcdTAzMjRcdTAzMjVcN1x1MDBmYSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0 ZSgiXDJcMlx1MDMyNVx1MDMyN1w3IVwyXDJcdTAzMjZcdTAzMTdcM1wyXDJcMlx1MDMyNlx1MDMx YiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwyXHUwMzI3XHUwMzI4XDNcMlwy XDJcdTAzMjhcdTAzMjlcN1tcMlwyXHUwMzI5IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgi XHUwMzJhXDdcYlwyXDJcdTAzMmFcdTAzMmJcNUxcJ1wyXHUwMzJiXHUwMzJjXDcNCj4gXDJcMlx1 MDMyYyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiQVwzXDJcMlwyXHUwMzJkXHUwMzJlXDdcdTAw ZmFcMlwyXHUwMzJlQ1wzXDJcMlwyXHUwMzJmIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAz MzBcN1x1MDBhMFwyXDJcdTAzMzBcdTAzMzFcN1x1MDBmYlwyXDJcdTAzMzFcdTAzMzYiKQ0KPiAN Cj4gLQ0KPiBidWYud3JpdGUoIlw3IVwyXDJcdTAzMzJcdTAzMzNcN1x1MDA4ZlwyXDJcdTAzMzNc dTAzMzRcN1xiXDJcMlx1MDMzNCIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDMzNVw3 XHUwMGZhXDJcMlx1MDMzNVx1MDMzN1w3IVwyXDJcdTAzMzZcdTAzMzJcM1wyIikNCj4gDQo+IC0N Cj4gYnVmLndyaXRlKCJcMlwyXHUwMzM2XHUwMzM3XDNcMlwyXDJcdTAzMzdcdTAzM2ZcM1wyXDJc Mlx1MDMzOFx1MDMzOSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDdcdTAwOGVcMlwyXHUwMzM5 XHUwMzNhXDdcYlwyXDJcdTAzM2FcdTAzM2JcN1x1MDBlY1wyIikNCj4gDQo+IC0gICAgICAgIGJ1 Zi53cml0ZSgiXDJcdTAzM2JcdTAzM2NcN1wzMFwyXDJcdTAzM2NcdTAzM2RcN1x1MDBmYVwyXDJc dTAzM2QiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTAzM2VcN1wzMVwyXDJcdTAzM2Vc dTAzNDBcNyFcMlwyXHUwMzNmXHUwMzM4XDNcMlwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUo Ilx1MDM0MFx1MDM0MVwzXDJcMlwyXHUwMzQxXHUwMzNmXDNcMlwyXDJcdTAzNDFcdTAzNDJcMyIp DQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwMzQyXHUwMzQzXDNcMlwyXDJcdTAzNDNc dTAzNDRcN1tcMlwyXHUwMzQ0XHUwMzQ1IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDdc YlwyXDJcdTAzNDVcdTAzNDZcNUxcJ1wyXHUwMzQ2XHUwMzQ3XDcgXDJcMlx1MDM0N0UiKQ0KPiAN Cj4gLSAgICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1MDM0OFx1MDM0OVw3bFwyXDJcdTAzNDlc dTAzNGFcNVx1MDEyNFx1MDA5MyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwyXHUwMzRh XHUwMzRiXDcgXDJcMlx1MDM0Ylx1MDM0Y1w1OFwzNVwyXHUwMzRjXHUwMzRkIikNCj4gDQo+IC0g ICAgICAgIGJ1Zi53cml0ZSgiXDdzXDJcMlx1MDM0ZFx1MDM0ZVw3IFwyXDJcdTAzNGVHXDNcMlwy XDJcdTAzNGZcdTAzNTAiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcN2tcMlwyXHUwMzUw XHUwMzUxXDVcdTAxMjRcdTAwOTNcMlx1MDM1MVx1MDM1Mlw3DQo+IFwyXDIiKQ0KPiANCj4gLQ0K PiBidWYud3JpdGUoIlx1MDM1Mlx1MDM1M1w1OFwzNVwyXHUwMzUzXHUwMzU0XDdzXDJcMlx1MDM1 NFx1MDM1NVw3IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiDQo+IFwyXDJcdTAzNTVJXDNc MlwyXDJcdTAzNTZcdTAzNTdcN1x1MDBmYVwyXDJcdTAzNTdcdTAzNTgiKQ0KPiANCj4gLQ0KPiBi dWYud3JpdGUoIlw3IVwyXDJcdTAzNThcdTAzNTlcN1x1MDBmYVwyXDJcdTAzNTlcdTAzNWFcNyFc MlwyXHUwMzVhIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAzNWJcN1x1MDBmYVwyXDJcdTAz NWJcdTAzNWNcNyFcMlwyXHUwMzVjXHUwMzVkXDdcdTAwZmEiKQ0KPiANCj4gLSAgICAgICAgYnVm LndyaXRlKCJcMlwyXHUwMzVkXHUwMzVlXDchXDJcMlx1MDM1ZVx1MDM1Zlw3XHUwMGZhXDJcMlx1 MDM1ZiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDM2MFw3IVwyXDJcdTAzNjBcdTAz NjFcN1x1MDBmYVwyXDJcdTAzNjFcdTAzNjJcNyFcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgi XDJcdTAzNjJcdTAzNjNcN1x1MDBmYVwyXDJcdTAzNjNcdTAzNjRcNyFcMlwyXHUwMzY0XHUwMzY1 IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcN1x1MDBmYVwyXDJcdTAzNjVLXDNcMlwyXDJcdTAz NjZcdTAzNjdcN1wyNlwyXDJcdTAzNjciKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDM2OFw3 XHUwMGZhXDJcMlx1MDM2OFx1MDM2OVw3IVwyXDJcdTAzNjlcdTAzNmFcN1x1MDBmYSIpDQo+IA0K PiAtICAgICAgICBidWYud3JpdGUoIlwyXDJcdTAzNmFcdTAzNmJcNyFcMlwyXHUwMzZiXHUwMzZj XDdcdTAwZmFcMlwyXHUwMzZjIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAzNzJcNyFcMlwy XHUwMzZkXHUwMzZlXDdcMjZcMlwyXHUwMzZlXHUwMzZmXDVKJlwyXHUwMzZmIikNCj4gDQo+IC0g ICAgICAgIGJ1Zi53cml0ZSgiXHUwMzcwXDdcMjdcMlwyXHUwMzcwXHUwMzczXDNcMlwyXDJcdTAz NzFcdTAzNzNcNUomXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDM3Mlx1MDM2ZFwzXDJc MlwyXHUwMzcyXHUwMzcxXDNcMlwyXDJcdTAzNzNcdTAzNzRcMyIpDQo+IA0KPiAtDQo+IGJ1Zi53 cml0ZSgiXDJcMlwyXHUwMzc0XHUwMzc1XDdcMjdcMlwyXHUwMzc1TVwzXDJcMlwyXHUwMzc2XHUw Mzc3IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDdcdTAwZWNcMlwyXHUwMzc3XHUwMzc4 XDdcMzBcMlwyXHUwMzc4XHUwMzc5XDdcdTAwZmEiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwy XDJcdTAzNzlcdTAzN2FcN1wzMVwyXDJcdTAzN2FPXDNcMlwyXDJcdTAzN2JcdTAzN2NcNSIpDQo+ IA0KPiAtDQo+IGJ1Zi53cml0ZSgiUipcMlx1MDM3Y1x1MDM3ZFw1VCtcMlx1MDM3ZFFcM1wyXDJc Mlx1MDM3ZVx1MDM3Zlw3XHUwMDhlIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlwyXHUwMzdm XHUwMzgwXDdcYlwyXDJcdTAzODBcdTAzODFcN1x1MDBmYlwyXDJcdTAzODEiKQ0KPiANCj4gLSAg ICAgICAgYnVmLndyaXRlKCJcdTAzODNcNyFcMlwyXHUwMzgyXHUwMzdlXDNcMlwyXDJcdTAzODJc dTAzODNcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwMzgzXHUwMzg5XDNcMlwy XDJcdTAzODRcdTAzODVcN1x1MDA4ZlwyXDJcdTAzODVcdTAzODYiKQ0KPiANCj4gLSAgICAgICAg YnVmLndyaXRlKCJcN1xiXDJcMlx1MDM4Nlx1MDM4N1w1WC0NCj4gXDJcdTAzODdcdTAzODhcNyFc MlwyXHUwMzg4XHUwMzhhIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1MDM4OVx1 MDM4NFwzXDJcMlwyXHUwMzg5XHUwMzhhXDNcMlwyXDJcdTAzOGEiKQ0KPiANCj4gLQ0KPiBidWYu d3JpdGUoIlx1MDM4ZlwzXDJcMlwyXHUwMzhiXHUwMzhjXDdcdTAwOTFcMlwyXHUwMzhjXHUwMzhk XDdcYiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwyXDJcdTAzOGRcdTAzOGVcN1x1MDBm YVwyXDJcdTAzOGVcdTAzOTBcNyFcMlwyXHUwMzhmIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJc dTAzOGJcM1wyXDJcMlx1MDM4Zlx1MDM5MFwzXDJcMlwyXHUwMzkwU1wzXDJcMlwyXHUwMzkxIikN Cj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAzOTJcN1w2MlwyXDJcdTAzOTJcdTAzOTNcN1xiXDJc Mlx1MDM5M1x1MDM5NFw3XHUwMGVjIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlwyXHUwMzk0 XHUwMzk1XDdcMzBcMlwyXHUwMzk1XHUwMzk2XDdcdTAwZmFcMlwyXHUwMzk2IikNCj4gDQo+IC0g ICAgICAgIGJ1Zi53cml0ZSgiXHUwMzk3XDdcMzFcMlwyXHUwMzk3XHUwMzk4XDchXDJcMlx1MDM5 OFx1MDM5OVw3PVwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDM5OVx1MDM5YVw3XGJc MlwyXHUwMzlhXHUwMzliXDdcdTAwZWNcMlwyXHUwMzliXHUwMzljIikNCj4gDQo+IC0NCj4gYnVm LndyaXRlKCJcN1wzMFwyXDJcdTAzOWNcdTAzOWRcN1x1MDBmYVwyXDJcdTAzOWRcdTAzOWVcN1wz MVwyXDIiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTAzOWVVXDNcMlwyXDJcdTAzOWZc dTAzYThcN35cMlwyXHUwM2EwXHUwM2E4XDd5XDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgi XHUwM2ExXHUwM2E4XDd7XDJcMlx1MDNhMlx1MDNhOFw3XHUwMDgwXDJcMlx1MDNhM1x1MDNhOCIp DQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDd8XDJcMlx1MDNhNFx1MDNhOFw3XDE3N1wyXDJcdTAz YTVcdTAzYThcN3pcMlwyXHUwM2E2IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwM2E4 XDd9XDJcMlx1MDNhN1x1MDM5ZlwzXDJcMlwyXHUwM2E3XHUwM2EwXDNcMlwyXDIiKQ0KPiANCj4g LQ0KPiBidWYud3JpdGUoIlx1MDNhN1x1MDNhMVwzXDJcMlwyXHUwM2E3XHUwM2EyXDNcMlwyXDJc dTAzYTdcdTAzYTNcMyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwM2E3XHUwM2E0 XDNcMlwyXDJcdTAzYTdcdTAzYTVcM1wyXDJcMlx1MDNhN1x1MDNhNiINCj4gKQ0KPiANCj4gLSAg ICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1MDNhOFdcM1wyXDJcMlx1MDNhOVx1MDNhYVw3XHUw MGZiXDJcMlx1MDNhYSIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDNhYlw3XDMyXDJc Mlx1MDNhYlx1MDNhY1w3XHUwMGZhXDJcMlx1MDNhY1x1MDNiNlw3IikNCj4gDQo+IC0NCj4gYnVm LndyaXRlKCJcMzNcMlwyXHUwM2FkXHUwM2IyXDdcdTAwZmJcMlwyXHUwM2FlXHUwM2FmXDdcMzRc MlwyXHUwM2FmIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAzYjFcNVx1MDE1Y1x1MDBhZlwy XHUwM2IwXHUwM2FlXDNcMlwyXDJcdTAzYjFcdTAzYjQiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUo IlwzXDJcMlwyXHUwM2IyXHUwM2IwXDNcMlwyXDJcdTAzYjJcdTAzYjNcM1wyXDJcMlx1MDNiMyIp DQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwM2I2XDNcMlwyXDJcdTAzYjRcdTAzYjJcM1wyXDJc Mlx1MDNiNVx1MDNhOVwzXDJcMlwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAzYjVcdTAz YWRcM1wyXDJcMlx1MDNiNllcM1wyXDJcMlx1MDNiN1x1MDNiOVw3XDM1XDIiKQ0KPiANCj4gLQ0K PiBidWYud3JpdGUoIlwyXHUwM2I4XHUwM2I3XDNcMlwyXDJcdTAzYjhcdTAzYjlcM1wyXDJcMlx1 MDNiOVx1MDNiYSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTAzYmFcdTAzZTRc N1x1MDBmYVwyXDJcdTAzYmJcdTAzZTRcN1x1MDBkM1wyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRl KCJcMlx1MDNiY1x1MDNlNFw3XHUwMGQ0XDJcMlx1MDNiZFx1MDNlNFw3XHUwMGQ1XDJcMlx1MDNi ZSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwM2U0XDdcdTAwZDZcMlwyXHUwM2JmXHUwM2U0 XDdcdTAwZDdcMlwyXHUwM2MwXHUwM2MxIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDdc dTAwZmFcMlwyXHUwM2MxXHUwM2MyXDdcMzZcMlwyXHUwM2MyXHUwM2MzXDdcdTAwZmEiKQ0KPiAN Cj4gLQ0KPiBidWYud3JpdGUoIlwyXDJcdTAzYzNcdTAzYzRcN1wzNlwyXDJcdTAzYzRcdTAzZTRc N1x1MDBmYVwyXDJcdTAzYzUiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTAzYzZcN1x1 MDBmYVwyXDJcdTAzYzZcdTAzYzdcN1wzN1wyXDJcdTAzYzdcdTAzYzhcNyIpDQo+IA0KPiAtICAg ICAgICBidWYud3JpdGUoIlx1MDBmYVwyXDJcdTAzYzhcdTAzYzlcN1wzN1wyXDJcdTAzYzlcdTAz ZTRcN1x1MDBmYVwyIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDJcdTAzY2FcdTAzY2Jc N1x1MDBmYVwyXDJcdTAzY2JcdTAzY2NcNw0KPiBcMlwyXHUwM2NjXHUwM2NkIikNCj4gDQo+IC0g ICAgICAgIGJ1Zi53cml0ZSgiXDdcdTAwZmFcMlwyXHUwM2NkXHUwM2NlXDcgXDJcMlx1MDNjZVx1 MDNjZlw1TFwnXDJcdTAzY2YiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTAzZDBcNw0K PiBcMlwyXHUwM2QwXHUwM2QxXDdcdTAwZWNcMlwyXHUwM2QxXHUwM2QyXDdcMzAiKQ0KPiANCj4g LQ0KPiBidWYud3JpdGUoIlwyXDJcdTAzZDJcdTAzZDNcN1x1MDBmYVwyXDJcdTAzZDNcdTAzZDRc N1wzMVwyXDJcdTAzZDQiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDNlNFwzXDJcMlwyXHUw M2Q1XHUwM2Q2XDdcdTAwZWNcMlwyXHUwM2Q2XHUwM2Q3XDdcMzAiKQ0KPiANCj4gLQ0KPiBidWYu d3JpdGUoIlwyXDJcdTAzZDdcdTAzZDhcN1x1MDBmYVwyXDJcdTAzZDhcdTAzZTRcN1wzMVwyXDJc dTAzZDkiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTAzZGFcN1wyNlwyXDJcdTAzZGFc dTAzZGZcN1x1MDBmYVwyXDJcdTAzZGJcdTAzZGNcNyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgi IVwyXDJcdTAzZGNcdTAzZGVcN1x1MDBmYVwyXDJcdTAzZGRcdTAzZGJcM1wyXDJcMlx1MDNkZSIp DQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDNlMVwzXDJcMlwyXHUwM2RmXHUwM2RkXDNc MlwyXDJcdTAzZGZcdTAzZTBcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwM2Uw XHUwM2UyXDNcMlwyXDJcdTAzZTFcdTAzZGZcM1wyXDJcMlx1MDNlMlx1MDNlNFw3IikNCj4gDQo+ IC0gICAgICAgIGJ1Zi53cml0ZSgiXDI3XDJcMlx1MDNlM1x1MDNiOFwzXDJcMlwyXHUwM2UzXHUw M2JiXDNcMlwyXDJcdTAzZTMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDNiY1wzXDJcMlwy XHUwM2UzXHUwM2JkXDNcMlwyXDJcdTAzZTNcdTAzYmVcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1 Zi53cml0ZSgiXHUwM2UzXHUwM2JmXDNcMlwyXDJcdTAzZTNcdTAzYzBcM1wyXDJcMlx1MDNlM1x1 MDNjNVwzIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlwyXDJcdTAzZTNcdTAzY2FcM1wyXDJc Mlx1MDNlM1x1MDNkNVwzXDJcMlwyXHUwM2UzXHUwM2Q5Ig0KPiApDQo+IA0KPiAtICAgICAgICBi dWYud3JpdGUoIlwzXDJcMlwyXHUwM2U0W1wzXDJcMlwyXHUwM2U1XHUwM2U2XDdcdTAwOTJcMlwy XHUwM2U2IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwM2U3XDdcYlwyXDJcdTAzZTdc dTAzZThcN1x0XDJcMlx1MDNlOFx1MDNlOVw3XDMwXDIiKQ0KPiANCj4gLSAgICAgICAgYnVmLndy aXRlKCJcMlx1MDNlOVx1MDNlYVw3XHUwMGZhXDJcMlx1MDNlYVx1MDNlYlw3XDMxXDJcMlx1MDNl YiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXVwzXDJcMlwyXHUwM2VjXHUwM2VkXDdcdTAwOTNc MlwyXHUwM2VkX1wzXDJcMlwyXHUwM2VlIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUw M2YxXDVcXC9cMlx1MDNlZlx1MDNmMVw1Xlw2MFwyXHUwM2YwXHUwM2VlXDNcMlwyXDIiKQ0KPiAN Cj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTAzZjBcdTAzZWZcM1wyXDJcMlx1MDNmMWFcM1wyXDJc Mlx1MDNmMlx1MDNmN1w1YFw2MSIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwyXHUwM2Yz XHUwM2Y0XDchXDJcMlx1MDNmNFx1MDNmNlw1YFw2MVwyXHUwM2Y1XHUwM2YzIikNCj4gDQo+IC0g ICAgICAgIGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTAzZjZcdTAzZjlcM1wyXDJcMlx1MDNmN1x1MDNm NVwzXDJcMlwyXHUwM2Y3IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwM2Y4XDNcMlwy XDJcdTAzZjhjXDNcMlwyXDJcdTAzZjlcdTAzZjdcM1wyXDJcMlx1MDNmYSIpDQo+IA0KPiAtICAg ICAgICBidWYud3JpdGUoIlx1MDNmYlw3XDY3XDJcMlx1MDNmYlx1MDNmY1w3L1wyXDJcdTAzZmNc dTAzZmRcN1xiXDJcMiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDNmZFx1MDNmZVw3 XHUwMGZhXDJcMlx1MDNmZVx1MDNmZlw3IVwyXDJcdTAzZmZcdTA0MDAiKQ0KPiANCj4gLQ0KPiBi dWYud3JpdGUoIlw3LlwyXDJcdTA0MDBcdTA0MDFcN1xiXDJcMlx1MDQwMVx1MDQwMlw3XHUwMGVj XDJcMlx1MDQwMiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDQwM1w3XDMwXDJcMlx1 MDQwM1x1MDQwNFw3XHUwMGZhXDJcMlx1MDQwNFx1MDQwNVw3IikNCj4gDQo+IC0gICAgICAgIGJ1 Zi53cml0ZSgiXDMxXDJcMlx1MDQwNVx1MDQwOVw3DQo+IFwyXDJcdTA0MDZcdTA0MDhcNWZcNjRc Mlx1MDQwN1x1MDQwNiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA0MDhcdTA0 MGJcM1wyXDJcMlx1MDQwOVx1MDQwN1wzXDJcMlwyXHUwNDA5IikNCj4gDQo+IC0NCj4gYnVmLndy aXRlKCJcdTA0MGFcM1wyXDJcMlx1MDQwYVx1MDQwY1wzXDJcMlwyXHUwNDBiXHUwNDA5XDNcMlwy XDIiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTA0MGNcdTA0MGRcN1w2NlwyXDJcdTA0 MGRcdTA0MGVcNyBcMlwyXHUwNDBlZVwzXDJcMiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUo IlwyXHUwNDBmXHUwNDFmXDVqXDY2XDJcdTA0MTBcdTA0MWZcNWxcNjdcMlx1MDQxMVx1MDQxZiIp DQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDVuOFwyXHUwNDEyXHUwNDFmXDVcdTAwYTRTXDJcdTA0 MTNcdTA0MWZcNXA5XDJcdTA0MTQiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTA0MWZc NVx1MDA4OEVcMlx1MDQxNVx1MDQxZlw1XHUwMGY4fVwyXHUwNDE2XHUwNDFmXDUiKQ0KPiANCj4g LQ0KPiBidWYud3JpdGUoIlx1MDExOFx1MDA4ZFwyXHUwNDE3XHUwNDFmXDVcdTAxMWFcdTAwOGVc Mlx1MDQxOFx1MDQxZiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDVcdTAxMTBcdTAwODlcMlx1 MDQxOVx1MDQxZlw1XHUwMTFjXHUwMDhmXDJcdTA0MWFcdTA0MWYiKQ0KPiANCj4gLQ0KPiBidWYu d3JpdGUoIlw1XHUwMTIwXHUwMDkxXDJcdTA0MWJcdTA0MWNcNVx1MDA5NkxcMlx1MDQxY1x1MDQx ZFw3IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiDQo+IFwyXDJcdTA0MWRcdTA0MWZcM1wy XDJcMlx1MDQxZVx1MDQwZlwzXDJcMlwyXHUwNDFlXHUwNDEwIikNCj4gDQo+IC0NCj4gYnVmLndy aXRlKCJcM1wyXDJcMlx1MDQxZVx1MDQxMVwzXDJcMlwyXHUwNDFlXHUwNDEyXDNcMlwyXDJcdTA0 MWUiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDQxM1wzXDJcMlwyXHUwNDFlXHUwNDE0XDNc MlwyXDJcdTA0MWVcdTA0MTVcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNDFl XHUwNDE2XDNcMlwyXDJcdTA0MWVcdTA0MTdcM1wyXDJcMlx1MDQxZVx1MDQxOFwzIikNCj4gDQo+ IC0NCj4gYnVmLndyaXRlKCJcMlwyXDJcdTA0MWVcdTA0MTlcM1wyXDJcMlx1MDQxZVx1MDQxYVwz XDJcMlwyXHUwNDFlXHUwNDFiIg0KPiApDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwzXDJc MlwyXHUwNDFmZ1wzXDJcMlwyXHUwNDIwXHUwNDIxXDc4XDJcMlx1MDQyMVx1MDQyMiIpDQo+IA0K PiAtDQo+IGJ1Zi53cml0ZSgiXDcvXDJcMlx1MDQyMlx1MDQyM1w3XGJcMlwyXHUwNDIzXHUwNDI0 XDdcdTAwZmFcMlwyXHUwNDI0IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA0MzNcNyFcMlwy XHUwNDI1XHUwNDI2XDc5XDJcMlx1MDQyNlx1MDQyN1w3XGJcMlwyXHUwNDI3Ig0KPiApDQo+IA0K PiAtICAgICAgICBidWYud3JpdGUoIlx1MDQyOFw3XHUwMGVjXDJcMlx1MDQyOFx1MDQyOVw3XDMw XDJcMlx1MDQyOVx1MDQyYVw3IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwMGZhXDJc Mlx1MDQyYVx1MDQyYlw3XDMxXDJcMlx1MDQyYlx1MDQyY1w3DQo+IFwyXDJcdTA0MmMiKQ0KPiAN Cj4gLQ0KPiBidWYud3JpdGUoIlx1MDQyZFw3OlwyXDJcdTA0MmRcdTA0MmVcN1xiXDJcMlx1MDQy ZVx1MDQyZlw1TFwnXDJcdTA0MmYiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTA0MzBc NyBcMlwyXHUwNDMwXHUwNDMyXDNcMlwyXDJcdTA0MzFcdTA0MjVcM1wyXDJcMiIpDQo+IA0KPiAt DQo+IGJ1Zi53cml0ZSgiXHUwNDMyXHUwNDM1XDNcMlwyXDJcdTA0MzNcdTA0MzFcM1wyXDJcMlx1 MDQzM1x1MDQzNFwzIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlwyXDJcdTA0MzRcdTA0Mzlc M1wyXDJcMlx1MDQzNVx1MDQzM1wzXDJcMlwyXHUwNDM2XHUwNDM4Ig0KPiApDQo+IA0KPiAtDQo+ IGJ1Zi53cml0ZSgiXDVmXDY0XDJcdTA0MzdcdTA0MzZcM1wyXDJcMlx1MDQzOFx1MDQzYlwzXDJc MlwyXHUwNDM5IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA0MzdcM1wyXDJcMlx1MDQzOVx1 MDQzYVwzXDJcMlwyXHUwNDNhXHUwNDNjXDNcMlwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUo Ilx1MDQzYlx1MDQzOVwzXDJcMlwyXHUwNDNjXHUwNDNkXDdcNjZcMlwyXHUwNDNkXHUwNDNlIikN Cj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDcgXDJcMlx1MDQzZWlcM1wyXDJcMlx1MDQzZlx1 MDQ0MFw1XFwvXDJcdTA0NDBcdTA0NDEiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcNw0K PiBcMlwyXHUwNDQxa1wzXDJcMlwyXHUwNDQyXHUwNDQzXDVeXDYwXDJcdTA0NDNcdTA0NDQiKQ0K PiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcNw0KPiBcMlwyXHUwNDQ0bVwzXDJcMlwyXHUwNDQ1 XHUwNDQ2XDdcdTAwOTRcMlwyXHUwNDQ2XHUwNDQ3IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJc N1x1MDBmYlwyXDJcdTA0NDdcdTA0NDhcNyFcMlwyXHUwNDQ4XHUwNDQ5XDVcdTAxMjRcdTAwOTMi KQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcMlx1MDQ0OVx1MDQ0YVw3XHUwMDk1XDJcMlx1 MDQ0YVx1MDQ0Ylw3DQo+IFwyXDJcdTA0NGJvXDMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwy XDJcMlx1MDQ0Y1x1MDQ1MFw1cjpcMlx1MDQ0ZFx1MDQ1MFw1ej5cMlx1MDQ0ZVx1MDQ1MCIpDQo+ IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDV+QFwyXHUwNDRmXHUwNDRjXDNcMlwyXDJcdTA0NGZcdTA0 NGRcM1wyXDJcMlx1MDQ0Zlx1MDQ0ZSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJc dTA0NTBxXDNcMlwyXDJcdTA0NTFcdTA0NTJcNztcMlwyXHUwNDUyXHUwNDUzIikNCj4gDQo+IC0N Cj4gYnVmLndyaXRlKCJcNz5cMlwyXHUwNDUzXHUwNDU0XDdcYlwyXDJcdTA0NTRcdTA0NTVcN1x1 MDBlY1wyXDJcdTA0NTUiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTA0NTZcN1wzMFwy XDJcdTA0NTZcdTA0NTdcN1x1MDBmYVwyXDJcdTA0NTdcdTA0NWNcNyIpDQo+IA0KPiAtDQo+IGJ1 Zi53cml0ZSgiXDMxXDJcMlx1MDQ1OFx1MDQ1OVw3IVwyXDJcdTA0NTlcdTA0NWFcN0BcMlwyXHUw NDVhXHUwNDViIg0KPiApDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDdcYlwyXDJcdTA0NWJcdTA0 NWRcNXY8XDJcdTA0NWNcdTA0NThcM1wyXDJcMlx1MDQ1Y1x1MDQ1ZCINCj4gKQ0KPiANCj4gLSAg ICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1MDQ1ZFx1MDQ3MlwzXDJcMlwyXHUwNDVlXHUwNDVm XDchXDJcMlx1MDQ1ZiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNDYxXDViXDYyXDJcdTA0 NjBcdTA0NWVcM1wyXDJcMlx1MDQ2MFx1MDQ2MVwzXDJcMlwyIikNCj4gDQo+IC0gICAgICAgIGJ1 Zi53cml0ZSgiXHUwNDYxXHUwNDYyXDNcMlwyXDJcdTA0NjJcdTA0NzNcNyBcMlwyXHUwNDYzXHUw NDY0XDciKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIiFcMlwyXHUwNDY0XHUwNDY2XDViXDYyXDJc dTA0NjVcdTA0NjNcM1wyXDJcMlx1MDQ2NVx1MDQ2NiIpDQo+IA0KPiAtICAgICAgICBidWYud3Jp dGUoIlwzXDJcMlwyXHUwNDY2XHUwNDZlXDNcMlwyXDJcdTA0NjdcdTA0NmJcNyFcMlwyXHUwNDY4 IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA0NmFcNXQ7XDJcdTA0NjlcdTA0NjhcM1wyXDJc Mlx1MDQ2YVx1MDQ2ZFwzXDJcMlwyXHUwNDZiIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgi XHUwNDY5XDNcMlwyXDJcdTA0NmJcdTA0NmNcM1wyXDJcMlx1MDQ2Y1x1MDQ2ZlwzXDJcMlwyIikN Cj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA0NmRcdTA0NmJcM1wyXDJcMlx1MDQ2ZVx1MDQ2N1wz XDJcMlwyXHUwNDZlXHUwNDZmXDMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJcMlx1MDQ2 Zlx1MDQ3MFwzXDJcMlwyXHUwNDcwXHUwNDcxXDc8XDJcMlx1MDQ3MVx1MDQ3MyIpDQo+IA0KPiAt ICAgICAgICBidWYud3JpdGUoIlw3IFwyXDJcdTA0NzJcdTA0NjBcM1wyXDJcMlx1MDQ3Mlx1MDQ2 NVwzXDJcMlwyXHUwNDczIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJzXDNcMlwyXDJcdTA0NzRc dTA0NzdcNXA5XDJcdTA0NzVcdTA0NzdcNVx1MDA4OEVcMlx1MDQ3NiIpDQo+IA0KPiAtDQo+IGJ1 Zi53cml0ZSgiXHUwNDc0XDNcMlwyXDJcdTA0NzZcdTA0NzVcM1wyXDJcMlx1MDQ3N3VcM1wyXDJc Mlx1MDQ3OCIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNDdkXDV4PVwyXHUwNDc5XHUwNDdh XDcoXDJcMlx1MDQ3YVx1MDQ3Y1w1eD1cMlx1MDQ3YiIpDQo+IA0KPiAtICAgICAgICBidWYud3Jp dGUoIlx1MDQ3OVwzXDJcMlwyXHUwNDdjXHUwNDdmXDNcMlwyXDJcdTA0N2RcdTA0N2JcM1wyXDJc MiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDQ3ZFx1MDQ3ZVwzXDJcMlwyXHUwNDdl d1wzXDJcMlwyXHUwNDdmXHUwNDdkXDNcMlwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlx1 MDQ4MFx1MDQ4MVx0XDVcMlwyXHUwNDgxeVwzXDJcMlwyXHUwNDgyXHUwNDgzXDc+XDIiKQ0KPiAN Cj4gLQ0KPiBidWYud3JpdGUoIlwyXHUwNDgzXHUwNDg0XDc9XDJcMlx1MDQ4NFx1MDQ4NVw3XGJc MlwyXHUwNDg1XHUwNDg2IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDdcdTAwZWNcMlwy XHUwNDg2XHUwNDg3XDdcMzBcMlwyXHUwNDg3XHUwNDg4XDdcdTAwZmEiKQ0KPiANCj4gLQ0KPiBi dWYud3JpdGUoIlwyXDJcdTA0ODhcdTA0ODlcN1wzMVwyXDJcdTA0ODlcdTA0OGFcNyFcMlwyXHUw NDhhXHUwNDhiIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcNz5cMlwyXHUwNDhiXHUwNDhjXDdc YlwyXDJcdTA0OGNcdTA0OGRcN1x1MDBlY1wyXDJcdTA0OGQiKQ0KPiANCj4gLSAgICAgICAgYnVm LndyaXRlKCJcdTA0OGVcN1wzMFwyXDJcdTA0OGVcdTA0OGZcN1x1MDBmYVwyXDJcdTA0OGZcdTA0 OTdcNyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDMxXDJcMlx1MDQ5MFx1MDQ5MVw3IVwyXDJc dTA0OTFcdTA0OTJcNz5cMlwyXHUwNDkyXHUwNDkzIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0 ZSgiXDdcYlwyXDJcdTA0OTNcdTA0OTRcN1x1MDBlY1wyXDJcdTA0OTRcdTA0OTVcN1wzMFwyXDIi KQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDQ5NVx1MDQ5Nlw3XHUwMGZhXDJcMlx1MDQ5Nlx1 MDQ5OFw3XDMxXDJcMlx1MDQ5N1x1MDQ5MCIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcMlwy XDJcdTA0OTdcdTA0OThcM1wyXDJcMlx1MDQ5OFx1MDRhOVwzXDJcMlwyXHUwNDk5IikNCj4gDQo+ IC0NCj4gYnVmLndyaXRlKCJcdTA0OWFcNyFcMlwyXHUwNDlhXHUwNDliXDdAXDJcMlx1MDQ5Ylx1 MDQ5Y1w3XGJcMlwyXHUwNDljDQo+ICIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNGExXDV8 P1wyXHUwNDlkXHUwNDllXDcoXDJcMlx1MDQ5ZVx1MDRhMFw1fD9cMlx1MDQ5ZiIpDQo+IA0KPiAt ICAgICAgICBidWYud3JpdGUoIlx1MDQ5ZFwzXDJcMlwyXHUwNGEwXHUwNGEzXDNcMlwyXDJcdTA0 YTFcdTA0OWZcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNGExXHUwNGEyXDNc MlwyXDJcdTA0YTJcdTA0YTRcM1wyXDJcMlx1MDRhM1x1MDRhMVwzIikNCj4gDQo+IC0NCj4gYnVm LndyaXRlKCJcMlwyXDJcdTA0YTRcdTA0YTVcNyFcMlwyXHUwNGE1XHUwNGE2XDd0XDJcMlx1MDRh Nlx1MDRhNyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDdcYlwyXDJcdTA0YTdcdTA0YThcN1x1 MDBmYVwyXDJcdTA0YThcdTA0YWFcM1wyXDJcMlx1MDRhOSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0 ZSgiXHUwNDk5XDNcMlwyXDJcdTA0YTlcdTA0YWFcM1wyXDJcMlx1MDRhYVx1MDRhZFwzXDJcMlwy IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA0YWJcdTA0YWNcNyFcMlwyXHUwNGFjXHUwNGFl XDViXDYyXDJcdTA0YWRcdTA0YWJcMyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUw NGFkXHUwNGFlXDNcMlwyXDJcdTA0YWVcdTA0YWZcM1wyXDJcMlx1MDRhZlx1MDRiMCIpDQo+IA0K PiAtICAgICAgICBidWYud3JpdGUoIlw3DQo+IFwyXDJcdTA0YjB7XDNcMlwyXDJcdTA0YjFcdTA0 YjRcN1x1MDBmYVwyXDJcdTA0YjJcdTA0YjQiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJc NVYsXDJcdTA0YjNcdTA0YjFcM1wyXDJcMlx1MDRiM1x1MDRiMlwzXDJcMlwyXHUwNGI0fSIpDQo+ IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA0YjVcdTA0YjhcNVx1MDA4MEFcMlx1MDRi Nlx1MDRiOFw1XHUwMDg2RFwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA0YjdcdTA0YjVc M1wyXDJcMlx1MDRiN1x1MDRiNlwzXDJcMlwyXHUwNGI4XDE3N1wzXDIiKQ0KPiANCj4gLQ0KPiBi dWYud3JpdGUoIlwyXDJcdTA0YjlcdTA0ZTlcN25cMlwyXHUwNGJhXHUwNGJiXDcqXDJcMlx1MDRi Ylx1MDRiYyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlw3XGJcMlwyXHUwNGJjXHUwNGJk XDdcdTAwZWNcMlwyXHUwNGJkXHUwNGJlXDdcMzBcMlwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRl KCJcdTA0YmVcdTA0YmZcN1x1MDBmYVwyXDJcdTA0YmZcdTA0YzBcN1wzMVwyXDJcdTA0YzBcdTA0 YzEiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlw3IVwyXDJcdTA0YzFcdTA0YzJcN29cMlwyXHUw NGMyXHUwNGMzXDdcYlwyXDJcdTA0YzNcdTA0YzQiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlw1 TFwnXDJcdTA0YzRcdTA0YzVcNyFcMlwyXHUwNGM1XHUwNGM2XDcvXDJcMlx1MDRjNlx1MDRjNyIp DQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDdcYlwyXDJcdTA0YzdcdTA0YzhcN1x1MDBmYVwyXDJc dTA0YzhcdTA0YzlcNyFcMlwyXHUwNGM5IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA0Y2Fc N1x1MDA5MFwyXDJcdTA0Y2FcdTA0Y2JcN1xiXDJcMlx1MDRjYlx1MDRjY1w3XHUwMGZhIikNCj4g DQo+IC0NCj4gYnVmLndyaXRlKCJcMlwyXHUwNGNjXHUwNGNkXDchXDJcMlx1MDRjZFx1MDRlYVwz XDJcMlwyXHUwNGNlXHUwNGNmIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcN29cMlwyXHUwNGNm XHUwNGQwXDdcYlwyXDJcdTA0ZDBcdTA0ZDFcNUxcJ1wyXHUwNGQxXHUwNGQyIikNCj4gDQo+IC0N Cj4gYnVmLndyaXRlKCJcNyFcMlwyXHUwNGQyXHUwNGQzXDcvXDJcMlx1MDRkM1x1MDRkNFw3XGJc MlwyXHUwNGQ0XHUwNGQ1Ig0KPiApDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlw3XHUwMGZh XDJcMlx1MDRkNVx1MDRkNlw3IVwyXDJcdTA0ZDZcdTA0ZDdcN1x1MDA5MFwyIikNCj4gDQo+IC0N Cj4gYnVmLndyaXRlKCJcMlx1MDRkN1x1MDRkOFw3XGJcMlwyXHUwNGQ4XHUwNGQ5XDdcdTAwZmFc MlwyXHUwNGQ5XHUwNGRhDQo+ICIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDchXDJcMlx1MDRk YVx1MDRlYVwzXDJcMlwyXHUwNGRiXHUwNGRjXDcvXDJcMlx1MDRkY1x1MDRkZCIpDQo+IA0KPiAt DQo+IGJ1Zi53cml0ZSgiXDdcYlwyXDJcdTA0ZGRcdTA0ZGVcN1x1MDBmYVwyXDJcdTA0ZGVcdTA0 ZGZcNyFcMlwyXHUwNGRmIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA0ZTBcN1x1MDA5MFwy XDJcdTA0ZTBcdTA0ZTVcN1xiXDJcMlx1MDRlMVx1MDRlMlw3XHUwMGZiIg0KPiApDQo+IA0KPiAt ICAgICAgICBidWYud3JpdGUoIlwyXDJcdTA0ZTJcdTA0ZTZcNyFcMlwyXHUwNGUzXHUwNGU0XDdc dTAwZmFcMlwyXHUwNGU0IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwNGU2XDchXDJc Mlx1MDRlNVx1MDRlMVwzXDJcMlwyXHUwNGU1XHUwNGUzXDNcMlwyXDIiKQ0KPiANCj4gLQ0KPiBi dWYud3JpdGUoIlx1MDRlNlx1MDRlYVwzXDJcMlwyXHUwNGU3XHUwNGU4XDdcdTAwZmFcMlwyXHUw NGU4XHUwNGVhIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDchXDJcMlx1MDRlOVx1MDRi YVwzXDJcMlwyXHUwNGU5XHUwNGNlXDNcMlwyXDJcdTA0ZTkiKQ0KPiANCj4gLQ0KPiBidWYud3Jp dGUoIlx1MDRkYlwzXDJcMlwyXHUwNGU5XHUwNGU3XDNcMlwyXDJcdTA0ZTlcdTA0ZWFcM1wyXDJc MiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDRlYVx1MDRlYlwzXDJcMlwyXHUwNGVi XHUwNGYwXDVQKVwyXHUwNGVjXHUwNGVkXDchIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlwy XHUwNGVkXHUwNGVlXDdAXDJcMlx1MDRlZVx1MDRlZlw3XGJcMlwyXHUwNGVmXHUwNGYxIikNCj4g DQo+IC0NCj4gYnVmLndyaXRlKCJcNVx1MDA4MkJcMlx1MDRmMFx1MDRlY1wzXDJcMlwyXHUwNGYw XHUwNGYxXDNcMlwyXDJcdTA0ZjEiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDRmNlwzXDJc MlwyXHUwNGYyXHUwNGYzXDchXDJcMlx1MDRmM1x1MDRmNFw3dFwyXDJcdTA0ZjQiKQ0KPiANCj4g LSAgICAgICAgYnVmLndyaXRlKCJcdTA0ZjVcN1xiXDJcMlx1MDRmNVx1MDRmN1w3XHUwMGZhXDJc Mlx1MDRmNlx1MDRmMlwzXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJcdTA0ZjZcdTA0 ZjdcM1wyXDJcMlx1MDRmN1x1MDRmYVwzXDJcMlwyXHUwNGY4XHUwNGY5IikNCj4gDQo+IC0NCj4g YnVmLndyaXRlKCJcNyFcMlwyXHUwNGY5XHUwNGZiXDVcdTAwYjRbXDJcdTA0ZmFcdTA0ZjhcM1wy XDJcMlx1MDRmYSIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDRmYlwzXDJcMlwyXHUw NGZiXHUwNGZjXDNcMlwyXDJcdTA0ZmNcdTA0ZmRcNyBcMlwyIikNCj4gDQo+IC0NCj4gYnVmLndy aXRlKCJcdTA0ZmRcdTAwODFcM1wyXDJcMlx1MDRmZVx1MDUwM1w1XHUwMDg0Q1wyXHUwNGZmXHUw NTAwIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcNyhcMlwyXHUwNTAwXHUwNTAyXDVcdTAwODRD XDJcdTA1MDFcdTA0ZmZcM1wyXDJcMlx1MDUwMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUw NTA1XDNcMlwyXDJcdTA1MDNcdTA1MDFcM1wyXDJcMlx1MDUwM1x1MDUwNFwzXDJcMlwyIikNCj4g DQo+IC0NCj4gYnVmLndyaXRlKCJcdTA1MDRcdTAwODNcM1wyXDJcMlx1MDUwNVx1MDUwM1wzXDJc MlwyXHUwNTA2XHUwNTA5XDciKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDBmYVwyXDJcdTA1 MDdcdTA1MDlcNVYsXDJcdTA1MDhcdTA1MDZcM1wyXDJcMlx1MDUwOCIpDQo+IA0KPiAtDQo+IGJ1 Zi53cml0ZSgiXHUwNTA3XDNcMlwyXDJcdTA1MDlcdTAwODVcM1wyXDJcMlx1MDUwYVx1MDUwYlw3 XHUwMDk5IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlwyXHUwNTBiXHUwNTBjXDdcdTAwOWJc MlwyXHUwNTBjXHUwNTBkXDdcYlwyXDJcdTA1MGQiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRl KCJcdTA1MGVcN1x1MDBmYlwyXDJcdTA1MGVcdTA1MGZcNyFcMlwyXHUwNTBmXHUwNTEwXDVUKyIp DQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcdTA1MTBcdTA1MTRcNyFcMlwyXHUwNTExXHUwNTEy XDViXDYyXDJcdTA1MTJcdTA1MTMiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcNyFcMlwy XHUwNTEzXHUwNTE1XDNcMlwyXDJcdTA1MTRcdTA1MTFcM1wyXDJcMlx1MDUxNCIpDQo+IA0KPiAt DQo+IGJ1Zi53cml0ZSgiXHUwNTE1XDNcMlwyXDJcdTA1MTVcdTA1MTZcM1wyXDJcMlx1MDUxNlx1 MDUxN1w3XHUwMDlhIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDJcMlx1MDUxN1x1MDUx OFw3DQo+IFwyXDJcdTA1MThcdTAwODdcM1wyXDJcMlx1MDUxOVx1MDUyMCIpDQo+IA0KPiAtDQo+ IGJ1Zi53cml0ZSgiXDVcdTAwYjhdXDJcdTA1MWFcdTA1MjBcNVx1MDBlOHVcMlx1MDUxYlx1MDUy MFw1XHUwMGM2IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJkXDJcdTA1MWNcdTA1MjBcNVx1MDBk NGtcMlx1MDUxZFx1MDUyMFw1XHUwMGUyclwyXHUwNTFlIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53 cml0ZSgiXHUwNTIwXDVcdTAwZjB5XDJcdTA1MWZcdTA1MTlcM1wyXDJcMlx1MDUxZlx1MDUxYVwz XDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJcdTA1MWZcdTA1MWJcM1wyXDJcMlx1MDUx Zlx1MDUxY1wzXDJcMlwyXHUwNTFmXHUwNTFkIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgi XDNcMlwyXDJcdTA1MWZcdTA1MWVcM1wyXDJcMlx1MDUyMFx1MDA4OVwzXDJcMlwyXHUwNTIxIikN Cj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwNTIyXDVgXDYxXDJcdTA1MjJcdTA1MjNcNyFc MlwyXHUwNTIzXHUwNTJkXDNcMlwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDUyNFx1 MDUyZFw1XHUwMDhjR1wyXHUwNTI1XHUwNTJkXDVcdTAwOGVIXDJcdTA1MjZcdTA1Mg0KPiBkIikN Cj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcNVx1MDA5MElcMlx1MDUyN1x1MDUyZFw1XHUwMDkySlwy XHUwNTI4XHUwNTJkXDVcdTAwOTQiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIktcMlx1MDUyOVx1 MDUyZFw1XHUwMTFjXHUwMDhmXDJcdTA1MmFcdTA1MmRcNVx1MDA5NkxcMiIpDQo+IA0KPiAtDQo+ IGJ1Zi53cml0ZSgiXHUwNTJiXHUwNTJkXDVcdTAwOThNXDJcdTA1MmNcdTA1MjFcM1wyXDJcMlx1 MDUyY1x1MDUyNCIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwyXHUwNTJjXHUw NTI1XDNcMlwyXDJcdTA1MmNcdTA1MjZcM1wyXDJcMlx1MDUyYyIpDQo+IA0KPiAtICAgICAgICBi dWYud3JpdGUoIlx1MDUyN1wzXDJcMlwyXHUwNTJjXHUwNTI4XDNcMlwyXDJcdTA1MmNcdTA1Mjlc M1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNTJjXHUwNTJhXDNcMlwyXDJcdTA1 MmNcdTA1MmJcM1wyXDJcMlx1MDUyZFx1MDA4YlwzIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJc MlwyXDJcdTA1MmVcdTA1MmZcN3BcMlwyXHUwNTJmXHUwNTMwXDdcNjJcMlwyXHUwNTMwXHUwNTMx IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDdcYlwyXDJcdTA1MzFcdTA1MzJcN1x1MDBl Y1wyXDJcdTA1MzJcdTA1MzNcN1wzMFwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDUz M1x1MDUzNFw3XHUwMGZhXDJcMlx1MDUzNFx1MDUzNVw3XDMxXDJcMlx1MDUzNVx1MDU0MiIpDQo+ IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDchXDJcMlx1MDUzNlx1MDUzN1w3QFwyXDJcdTA1MzdcdTA1 MzhcN1xiXDJcMlx1MDUzOFx1MDUzZA0KPiAiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJc NVx1MDA5ZVBcMlx1MDUzOVx1MDUzYVw3KFwyXDJcdTA1M2FcdTA1M2NcNVx1MDA5ZVBcMiIpDQo+ IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNTNiXHUwNTM5XDNcMlwyXDJcdTA1M2NcdTA1M2ZcM1wy XDJcMlx1MDUzZFx1MDUzYlwzIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlwyXDJcdTA1M2Rc dTA1M2VcM1wyXDJcMlx1MDUzZVx1MDU0MFwzXDJcMlwyXHUwNTNmXHUwNTNkIikNCj4gDQo+IC0g ICAgICAgIGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA1NDBcdTA1NDFcNyFcMlwyXHUwNTQxXHUwNTQz XDNcMlwyXDJcdTA1NDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDUzNlwzXDJcMlwyXHUw NTQyXHUwNTQzXDNcMlwyXDJcdTA1NDNcdTA1NDRcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53 cml0ZSgiXHUwNTQ0XHUwNTQ1XDVcdTAxMjRcdTAwOTNcMlx1MDU0NVx1MDU0N1w3c1wyXDJcdTA1 NDYiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTA1NDhcNyBcMlwyXHUwNTQ3XHUwNTQ2 XDNcMlwyXDJcdTA1NDdcdTA1NDhcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUw NTQ4XHUwMDhkXDNcMlwyXDJcdTA1NDlcdTA1NGFcN3JcMlwyXHUwNTRhXHUwNTRiXDciKQ0KPiAN Cj4gLQ0KPiBidWYud3JpdGUoIlw2MlwyXDJcdTA1NGJcdTA1NGNcN1xiXDJcMlx1MDU0Y1x1MDU0 ZFw3XHUwMGVjXDJcMlx1MDU0ZCIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDU0ZVw3 XDMwXDJcMlx1MDU0ZVx1MDU0Zlw3XHUwMGZhXDJcMlx1MDU0Zlx1MDU1MFw3IikNCj4gDQo+IC0N Cj4gYnVmLndyaXRlKCJcMzFcMlwyXHUwNTUwXHUwNTVkXDchXDJcMlx1MDU1MVx1MDU1Mlw3QFwy XDJcdTA1NTJcdTA1NTMiDQo+ICkNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcN1xiXDJcMlx1MDU1 M1x1MDU1OFw1XHUwMDllUFwyXHUwNTU0XHUwNTU1XDcoXDJcMlx1MDU1NSIpDQo+IA0KPiAtDQo+ IGJ1Zi53cml0ZSgiXHUwNTU3XDVcdTAwOWVQXDJcdTA1NTZcdTA1NTRcM1wyXDJcMlx1MDU1N1x1 MDU1YVwzXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJcdTA1NThcdTA1NTZcM1wyXDJc Mlx1MDU1OFx1MDU1OVwzXDJcMlwyXHUwNTU5XHUwNTViIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53 cml0ZSgiXDNcMlwyXDJcdTA1NWFcdTA1NThcM1wyXDJcMlx1MDU1Ylx1MDU1Y1w3IVwyXDJcdTA1 NWMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDU1ZVwzXDJcMlwyXHUwNTVkXHUwNTUxXDNc MlwyXDJcdTA1NWRcdTA1NWVcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNTVl XHUwNTVmXDNcMlwyXDJcdTA1NWZcdTA1NjBcNVx1MDEyNFx1MDA5M1wyXHUwNTYwIikNCj4gDQo+ IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwNTYyXDdzXDJcMlx1MDU2MVx1MDU2M1w3DQo+IFwyXDJc dTA1NjJcdTA1NjFcM1wyXDJcMlx1MDU2MiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1 MDU2M1wzXDJcMlwyXHUwNTYzXHUwMDhmXDNcMlwyXDJcdTA1NjRcdTA1NjVcN2xcMlwyIikNCj4g DQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwNTY1XHUwNTY2XDVcdTAxMjRcdTAwOTNcMlx1MDU2 Nlx1MDU2N1w3DQo+IFwyXDJcdTA1NjciKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTA1 NjhcNVx1MDBiNFtcMlx1MDU2OFx1MDU2YVw3c1wyXDJcdTA1NjlcdTA1NmJcNyBcMiIpDQo+IA0K PiAtDQo+IGJ1Zi53cml0ZSgiXDJcdTA1NmFcdTA1NjlcM1wyXDJcMlx1MDU2YVx1MDU2YlwzXDJc MlwyXHUwNTZiXHUwMDkxIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1MDU2Y1x1 MDU2ZFw3XHUwMGE0XDJcMlx1MDU2ZFx1MDU2ZVw3XHUwMGE1XDIiKQ0KPiANCj4gLQ0KPiBidWYu d3JpdGUoIlwyXHUwNTZlXHUwNTZmXDdcYlwyXDJcdTA1NmZcdTA1NzBcN1x1MDBmYVwyXDJcdTA1 NzBcdTAwOTMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwNTcxXHUwNTcyXDdc dTAwYTZcMlwyXHUwNTcyXHUwNTczXDdcYlwyXDJcdTA1NzMiDQo+ICkNCj4gDQo+IC0gICAgICAg IGJ1Zi53cml0ZSgiXHUwNTc0XDdcdTAwZWNcMlwyXHUwNTc0XHUwNTc1XDdcMzBcMlwyXHUwNTc1 XHUwNTc2XDciKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDBmYVwyXDJcdTA1NzZcdTA1Nzdc N1wzMVwyXDJcdTA1NzdcdTA1NzhcNyFcMlwyXHUwNTc4IikNCj4gDQo+IC0NCj4gYnVmLndyaXRl KCJcdTAwOTVcM1wyXDJcMlx1MDU3OVx1MDU3YVw3XHUwMGViXDJcMlx1MDU3YVx1MDU3Ylw3XGIi KQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcMlwyXHUwNTdiXHUwNTdjXDVMXCdcMlx1MDU3 Y1x1MDU3ZFw3IVwyXDJcdTA1N2RcdTAwOTciKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJc M1wyXDJcMlx1MDU3ZVx1MDU3Zlw3cVwyXDJcdTA1N2ZcdTA1ODBcN1w2MlwyXDJcdTA1ODAiKQ0K PiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDU4MVw3XGJcMlwyXHUwNTgxXHUwNTgyXDdcdTAwZWNc MlwyXHUwNTgyXHUwNTgzXDdcMzAiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJcdTA1ODNc dTA1ODRcN1x1MDBmYVwyXDJcdTA1ODRcdTA1ODVcN1wzMVwyXDJcdTA1ODUiKQ0KPiANCj4gLQ0K PiBidWYud3JpdGUoIlx1MDU4YVw3IVwyXDJcdTA1ODZcdTA1ODdcN01cMlwyXHUwNTg3XHUwNTg4 XDdcYlwyXDJcdTA1ODgNCj4gIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwNTg5XDdc dTAwZmFcMlwyXHUwNTg5XHUwNThiXDchXDJcMlx1MDU4YVx1MDU4NlwzXDIiKQ0KPiANCj4gLQ0K PiBidWYud3JpdGUoIlwyXDJcdTA1OGFcdTA1OGJcM1wyXDJcMlx1MDU4Ylx1MDU4Y1wzXDJcMlwy XHUwNThjXHUwNThkIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDVcdTAxMjRcdTAwOTNc Mlx1MDU4ZFx1MDU4Zlw3c1wyXDJcdTA1OGVcdTA1OTBcNw0KPiBcMlwyIikNCj4gDQo+IC0NCj4g YnVmLndyaXRlKCJcdTA1OGZcdTA1OGVcM1wyXDJcMlx1MDU4Zlx1MDU5MFwzXDJcMlwyXHUwNTkw XHUwMDk5XDMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJcMlx1MDU5MVx1MDU5M1w1XHUw MDhhRlwyXHUwNTkyXHUwNTkxXDNcMlwyXDJcdTA1OTMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUo Ilx1MDU5NlwzXDJcMlwyXHUwNTk0XHUwNTkyXDNcMlwyXDJcdTA1OTRcdTA1OTVcM1wyXDJcMiIp DQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNTk1XHUwMDliXDNcMlwyXDJcdTA1OTZcdTA1OTRc M1wyXDJcMlx1MDU5N1x1MDU5Zlw1IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAwYTBRXDJc dTA1OThcdTA1OWZcNVx1MDBhMlJcMlx1MDU5OVx1MDU5Zlw1XHUwMGE2VCIpDQo+IA0KPiAtDQo+ IGJ1Zi53cml0ZSgiXDJcdTA1OWFcdTA1OWZcNVx1MDBhNFNcMlx1MDU5Ylx1MDU5Zlw1XHUwMGE4 VVwyXHUwNTljIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA1OWZcNVx1MDBiMFlcMlx1MDU5 ZFx1MDU5Zlw1XHUwMGIyWlwyXHUwNTllXHUwNTk3XDMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUo IlwyXDJcMlx1MDU5ZVx1MDU5OFwzXDJcMlwyXHUwNTllXHUwNTk5XDNcMlwyXDJcdTA1OWVcdTA1 OWEiDQo+ICkNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1MDU5ZVx1MDU5YlwzXDJc MlwyXHUwNTllXHUwNTljXDNcMlwyXDJcdTA1OWUiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1 MDU5ZFwzXDJcMlwyXHUwNTlmXHUwMDlkXDNcMlwyXDJcdTA1YTBcdTA1YTlcN1x1MDBmYSIpDQo+ IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDVhMVx1MDVhOVw3eVwyXDJcdTA1YTJcdTA1YTlc N3ZcMlwyXHUwNWEzXHUwNWE5IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcN3VcMlwyXHUwNWE0 XHUwNWE5XDd7XDJcMlx1MDVhNVx1MDVhOVw3fFwyXDJcdTA1YTZcdTA1YTkiKQ0KPiANCj4gLQ0K PiBidWYud3JpdGUoIlw3elwyXDJcdTA1YTdcdTA1YTlcN31cMlwyXHUwNWE4XHUwNWEwXDNcMlwy XDJcdTA1YThcdTA1YTEiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwNWE4XHUw NWEyXDNcMlwyXDJcdTA1YThcdTA1YTNcM1wyXDJcMlx1MDVhOCIpDQo+IA0KPiAtDQo+IGJ1Zi53 cml0ZSgiXHUwNWE0XDNcMlwyXDJcdTA1YThcdTA1YTVcM1wyXDJcMlx1MDVhOFx1MDVhNlwzXDJc MlwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA1YThcdTA1YTdcM1wyXDJcMlx1MDVhOVx1 MDA5ZlwzXDJcMlwyXHUwNWFhXHUwNWFiXDciKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJr XDJcMlx1MDVhYlx1MDVhY1w1XHUwMTI0XHUwMDkzXDJcdTA1YWNcdTA1YjlcNw0KPiBcMlwyXHUw NWFkIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA1YWVcN0BcMlwyXHUwNWFlXHUwNWFmXDdc YlwyXDJcdTA1YWZcdTA1YjRcNVx1MDA5ZSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiUFwyXHUw NWIwXHUwNWIxXDcoXDJcMlx1MDViMVx1MDViM1w1XHUwMDllUFwyXHUwNWIyXHUwNWIwIg0KPiAp DQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA1YjNcdTA1YjZcM1wyXDJcMlx1MDVi NFx1MDViMlwzXDJcMlwyXHUwNWI0IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA1YjVcM1wy XDJcMlx1MDViNVx1MDViN1wzXDJcMlwyXHUwNWI2XHUwNWI0XDNcMlwyXDIiKQ0KPiANCj4gLQ0K PiBidWYud3JpdGUoIlx1MDViN1x1MDViOFw3IVwyXDJcdTA1YjhcdTA1YmFcM1wyXDJcMlx1MDVi OVx1MDVhZFwzIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlwyXDJcdTA1YjlcdTA1YmFcM1wy XDJcMlx1MDViYVx1MDViYlwzXDJcMlwyXHUwNWJiXHUwNWJjIg0KPiApDQo+IA0KPiAtICAgICAg ICBidWYud3JpdGUoIlw1XHUwMGI0W1wyXHUwNWJjXHUwNWJlXDdzXDJcMlx1MDViZFx1MDViZlw3 DQo+IFwyXDJcdTA1YmUiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTA1YmRcM1wyXDJc Mlx1MDViZVx1MDViZlwzXDJcMlwyXHUwNWJmXHUwMGExXDNcMlwyXDIiKQ0KPiANCj4gLSAgICAg ICAgYnVmLndyaXRlKCJcdTA1YzBcdTA1YzFcN0tcMlwyXHUwNWMxXHUwNWMyXDVcdTAxMjRcdTAw OTNcMlx1MDVjMiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDVjZlw3DQo+IFwyXDJc dTA1YzNcdTA1YzRcN0BcMlwyXHUwNWM0XHUwNWM1XDdcYlwyXDJcdTA1YzUiKQ0KPiANCj4gLQ0K PiBidWYud3JpdGUoIlx1MDVjYVw1XHUwMDllUFwyXHUwNWM2XHUwNWM3XDcoXDJcMlx1MDVjN1x1 MDVjOVw1XHUwMDllIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJQXDJcdTA1YzhcdTA1YzZcM1wy XDJcMlx1MDVjOVx1MDVjY1wzXDJcMlwyXHUwNWNhXHUwNWM4IikNCj4gDQo+IC0gICAgICAgIGJ1 Zi53cml0ZSgiXDNcMlwyXDJcdTA1Y2FcdTA1Y2JcM1wyXDJcMlx1MDVjYlx1MDVjZFwzXDJcMlwy XHUwNWNjIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwNWNhXDNcMlwyXDJcdTA1Y2Rc dTA1Y2VcNyFcMlwyXHUwNWNlXHUwNWQwXDNcMlwyXDIiKQ0KPiANCj4gLSAgICAgICAgYnVmLndy aXRlKCJcdTA1Y2ZcdTA1YzNcM1wyXDJcMlx1MDVjZlx1MDVkMFwzXDJcMlwyXHUwNWQwXHUwNWQx XDMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJcMlx1MDVkMVx1MDVkMlw1XHUwMGI0W1wy XHUwNWQyXHUwNWQ0XDdzXDJcMlx1MDVkMyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1 MDVkNVw3IFwyXDJcdTA1ZDRcdTA1ZDNcM1wyXDJcMlx1MDVkNFx1MDVkNVwzXDJcMlwyIikNCj4g DQo+IC0NCj4gYnVmLndyaXRlKCJcdTA1ZDVcdTAwYTNcM1wyXDJcMlx1MDVkNlx1MDVkZVw3Y1wy XDJcdTA1ZDdcdTA1ZDhcNSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwMGE2VFwyXHUwNWQ4 XHUwNWQ5XDchXDJcMlx1MDVkOVx1MDVkZlwzXDJcMlwyXHUwNWRhIikNCj4gDQo+IC0NCj4gYnVm LndyaXRlKCJcdTA1ZGJcN1xiXDJcMlx1MDVkYlx1MDVkY1w1Wi5cMlx1MDVkY1x1MDVkZFw3IVwy XDJcdTA1ZGQiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDVkZlwzXDJcMlwyXHUwNWRlXHUw NWQ3XDNcMlwyXDJcdTA1ZGVcdTA1ZGFcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgi XHUwNWRmXHUwNWU0XDNcMlwyXDJcdTA1ZTBcdTA1ZTFcN1x1MDA5YlwyXDJcdTA1ZTFcdTA1ZTIi KQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlw3XGJcMlwyXHUwNWUyXHUwNWUzXDdcdTAwZmJcMlwy XHUwNWUzXHUwNWU1XDchXDJcMlx1MDVlNCIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNWUw XDNcMlwyXDJcdTA1ZTRcdTA1ZTVcM1wyXDJcMlx1MDVlNVx1MDBhNVwzXDJcMlwyIikNCj4gDQo+ IC0NCj4gYnVmLndyaXRlKCJcdTA1ZTZcdTA1ZTdcN1x1MDA5NlwyXDJcdTA1ZTdcdTA1ZThcN1xi XDJcMlx1MDVlOFx1MDVlOSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDVcdTAxMjRcdTAwOTNc Mlx1MDVlOVx1MDBhN1wzXDJcMlwyXHUwNWVhXHUwNWViXDVcdTAwYWEiKQ0KPiANCj4gLQ0KPiBi dWYud3JpdGUoIlZcMlx1MDVlYlx1MDBhOVwzXDJcMlwyXHUwNWVjXHUwNWVkXDc/XDJcMlx1MDVl ZFx1MDVlZSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDc+XDJcMlx1MDVlZVx1MDVlZlw3XGJc MlwyXHUwNWVmXHUwNWYwXDdcdTAwZWNcMlwyXHUwNWYwIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53 cml0ZSgiXHUwNWYxXDdcMzBcMlwyXHUwNWYxXHUwNWYyXDdcdTAwZmFcMlwyXHUwNWYyXHUwNWYz XDciKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzMVwyXDJcdTA1ZjNcdTA1ZjRcNyFcMlwyXHUw NWY0XHUwNWY1XDdcdTAwOTZcMlwyXHUwNWY1IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA1 ZjZcN1xiXDJcMlx1MDVmNlx1MDVmN1w1Wi5cMlx1MDVmN1x1MDVmOFw3IVwyXDJcdTA1ZjgiKQ0K PiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTA1ZjlcN0BcMlwyXHUwNWY5XHUwNWZhXDdcYlwy XDJcdTA1ZmFcdTA1ZmZcNVx1MDBhYyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIldcMlx1 MDVmYlx1MDVmY1w3IVwyXDJcdTA1ZmNcdTA1ZmRcN3RcMlwyXHUwNWZkXHUwNWZlIikNCj4gDQo+ IC0NCj4gYnVmLndyaXRlKCJcN1xiXDJcMlx1MDVmZVx1MDYwMFw3XHUwMGZhXDJcMlx1MDVmZlx1 MDVmYlwzXDJcMlwyXHUwNWZmIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwNjAwXDNc MlwyXDJcdTA2MDBcdTA2MDVcM1wyXDJcMlx1MDYwMVx1MDYwMlw3IVwyXDIiKQ0KPiANCj4gLSAg ICAgICAgYnVmLndyaXRlKCJcdTA2MDJcdTA2MDRcNVxcL1wyXHUwNjAzXHUwNjAxXDNcMlwyXDJc dTA2MDRcdTA2MDdcMyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwNjA1XHUwNjAz XDNcMlwyXDJcdTA2MDVcdTA2MDZcM1wyXDJcMlx1MDYwNlx1MDYwOCINCj4gKQ0KPiANCj4gLSAg ICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1MDYwN1x1MDYwNVwzXDJcMlwyXHUwNjA4XHUwNjA5 XDcgXDJcMlx1MDYwOSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwMGFiXDNcMlwyXDJcdTA2 MGFcdTA2MGZcNVx1MDBhZVhcMlx1MDYwYlx1MDYwY1w3KFwyIikNCj4gDQo+IC0NCj4gYnVmLndy aXRlKCJcMlx1MDYwY1x1MDYwZVw1XHUwMGFlWFwyXHUwNjBkXHUwNjBiXDNcMlwyXDJcdTA2MGVc dTA2MTEiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1MDYwZlx1MDYwZFwz XDJcMlwyXHUwNjBmXHUwNjEwXDNcMlwyXDJcdTA2MTAiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUo Ilx1MDBhZFwzXDJcMlwyXHUwNjExXHUwNjBmXDNcMlwyXDJcdTA2MTJcdTA2MWVcN1x1MDBmYSIp DQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDYxM1x1MDYxZVw3XHUwMGVkXDJcMlx1MDYx NFx1MDYxZVw3XHUwMGVlXDJcMlx1MDYxNQ0KPiAiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1 MDYxZVw3eVwyXDJcdTA2MTZcdTA2MWVcN3tcMlwyXHUwNjE3XHUwNjFlXDdcdTAwODBcMiIpDQo+ IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcdTA2MThcdTA2MWVcN3xcMlwyXHUwNjE5XHUwNjFlXDd2 XDJcMlx1MDYxYVx1MDYxZVw3IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJ1XDJcMlx1MDYxYlx1 MDYxZVw3elwyXDJcdTA2MWNcdTA2MWVcN31cMlwyXHUwNjFkXHUwNjEyIikNCj4gDQo+IC0NCj4g YnVmLndyaXRlKCJcM1wyXDJcMlx1MDYxZFx1MDYxM1wzXDJcMlwyXHUwNjFkXHUwNjE0XDNcMlwy XDJcdTA2MWQiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDYxNVwzXDJcMlwyXHUwNjFkXHUw NjE2XDNcMlwyXDJcdTA2MWRcdTA2MTdcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgi XHUwNjFkXHUwNjE4XDNcMlwyXDJcdTA2MWRcdTA2MTlcM1wyXDJcMlx1MDYxZFx1MDYxYVwzIikN Cj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlwyXDJcdTA2MWRcdTA2MWJcM1wyXDJcMlx1MDYxZFx1 MDYxY1wzXDJcMlwyXHUwNjFlXHUwMGFmIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1wyXDJc Mlx1MDYxZlx1MDYyMFw3XHUwMDk3XDJcMlx1MDYyMFx1MDYyMVw1XHUwMTI0XHUwMDkzIg0KPiAp DQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwyXHUwNjIxXHUwNjIyXDcgXDJcMlx1MDYyMlx1 MDBiMVwzXDJcMlwyXHUwNjIzXHUwNjI0IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcN1x1MDA5 OFwyXDJcdTA2MjRcdTA2MjVcNVx1MDEyNFx1MDA5M1wyXHUwNjI1XHUwNjI2XDciKQ0KPiANCj4g LSAgICAgICAgYnVmLndyaXRlKCINCj4gXDJcMlx1MDYyNlx1MDBiM1wzXDJcMlwyXHUwNjI3XHUw NjI5XDVcdTAwYjZcXFwyXHUwNjI4IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA2MjdcM1wy XDJcMlx1MDYyOVx1MDYyY1wzXDJcMlwyXHUwNjJhXHUwNjI4XDNcMlwyXDIiKQ0KPiANCj4gLQ0K PiBidWYud3JpdGUoIlx1MDYyYVx1MDYyYlwzXDJcMlwyXHUwNjJiXHUwMGI1XDNcMlwyXDJcdTA2 MmNcdTA2MmFcMyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwNjJkXHUwNjMwXDVc dTAwOGFGXDJcdTA2MmVcdTA2MzBcNVx1MDA5Y09cMlx1MDYyZg0KPiAiKQ0KPiANCj4gLQ0KPiBi dWYud3JpdGUoIlx1MDYyZFwzXDJcMlwyXHUwNjJmXHUwNjJlXDNcMlwyXDJcdTA2MzBcdTAwYjdc M1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNjMxXHUwNjM0XDVcdTAwYmFeXDJc dTA2MzJcdTA2MzRcNVx1MDBjMGFcMlx1MDYzM1x1MDYzDQo+IDEiKQ0KPiANCj4gLQ0KPiBidWYu d3JpdGUoIlwzXDJcMlwyXHUwNjMzXHUwNjMyXDNcMlwyXDJcdTA2MzRcdTAwYjlcM1wyXDJcMlx1 MDYzNSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNjM2XDdcXFwyXDJcdTA2MzZcdTA2Mzdc NVIqXDJcdTA2MzdcdTA2MzhcNVQrXDJcdTA2MzgiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1 MDYzZVw3IVwyXDJcdTA2MzlcdTA2M2FcN0BcMlwyXHUwNjNhXHUwNjNiXDdcYlwyXDJcdTA2M2IN Cj4gIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA2M2NcNVx1MDBiY19cMlx1MDYzY1x1MDYz ZFw3IVwyXDJcdTA2M2RcdTA2M2ZcM1wyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXHUw NjNlXHUwNjM5XDNcMlwyXDJcdTA2M2VcdTA2M2ZcM1wyXDJcMlx1MDYzZlx1MDY0NCIpDQo+IA0K PiAtICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwyXHUwNjQwXHUwNjQxXDd0XDJcMlx1MDY0MVx1 MDY0Mlw3XGJcMlwyXHUwNjQyIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwNjQzXDdc dTAwZmFcMlwyXHUwNjQzXHUwNjQ1XDchXDJcMlx1MDY0NFx1MDY0MFwzXDIiKQ0KPiANCj4gLQ0K PiBidWYud3JpdGUoIlwyXDJcdTA2NDRcdTA2NDVcM1wyXDJcMlx1MDY0NVx1MDY0NlwzXDJcMlwy XHUwNjQ2XHUwNjQ3IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDVcdTAwYjRbXDJcdTA2 NDdcdTA2NDhcN11cMlwyXHUwNjQ4XHUwNjQ5XDcNCj4gXDJcMlx1MDY0OSIpDQo+IA0KPiAtDQo+ IGJ1Zi53cml0ZSgiXHUwMGJiXDNcMlwyXDJcdTA2NGFcdTA2NGZcNVx1MDBiZWBcMlx1MDY0Ylx1 MDY0Y1w3KFwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlx1MDY0Y1x1MDY0ZVw1XHUwMGJl YFwyXHUwNjRkXHUwNjRiXDNcMlwyXDJcdTA2NGVcdTA2NTEiKQ0KPiANCj4gLSAgICAgICAgYnVm LndyaXRlKCJcM1wyXDJcMlx1MDY0Zlx1MDY0ZFwzXDJcMlwyXHUwNjRmXHUwNjUwXDNcMlwyXDJc dTA2NTAiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDBiZFwzXDJcMlwyXHUwNjUxXHUwNjRm XDNcMlwyXDJcdTA2NTJcdTA2NTlcN1x1MDBmYSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJc Mlx1MDY1M1x1MDY1OVw3dVwyXDJcdTA2NTRcdTA2NTlcN3ZcMlwyXHUwNjU1XHUwNjU5IikNCj4g DQo+IC0NCj4gYnVmLndyaXRlKCJcN3dcMlwyXHUwNjU2XHUwNjU5XDd4XDJcMlx1MDY1N1x1MDY1 OVw1VixcMlx1MDY1OFx1MDY1MiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA2 NThcdTA2NTNcM1wyXDJcMlx1MDY1OFx1MDY1NFwzXDJcMlwyXHUwNjU4IikNCj4gDQo+IC0NCj4g YnVmLndyaXRlKCJcdTA2NTVcM1wyXDJcMlx1MDY1OFx1MDY1NlwzXDJcMlwyXHUwNjU4XHUwNjU3 XDNcMlwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDY1OVx1MDBiZlwzXDJcMlwyXHUw NjVhXHUwNjViXDdcdTAwYTFcMlwyXHUwNjViXHUwNjVjIikNCj4gDQo+IC0NCj4gYnVmLndyaXRl KCJcNVApXDJcdTA2NWNcdTA2NjJcNyFcMlwyXHUwNjVkXHUwNjVlXDdAXDJcMlx1MDY1ZVx1MDY1 ZiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDdcYlwyXDJcdTA2NWZcdTA2NjBcNVx1MDBjMmJc Mlx1MDY2MFx1MDY2MVw3IVwyXDJcdTA2NjEiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDY2 M1wzXDJcMlwyXHUwNjYyXHUwNjVkXDNcMlwyXDJcdTA2NjJcdTA2NjNcM1wyXDJcMiIpDQo+IA0K PiAtDQo+IGJ1Zi53cml0ZSgiXHUwNjYzXHUwNjY0XDNcMlwyXDJcdTA2NjRcdTA2NjVcN1x1MDBh MlwyXDJcdTA2NjVcdTA2NjYiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcN1xiXDJcMlx1 MDY2Nlx1MDY2N1w3XHUwMGVjXDJcMlx1MDY2N1x1MDY2OFw3XDMwXDJcMiIpDQo+IA0KPiAtDQo+ IGJ1Zi53cml0ZSgiXHUwNjY4XHUwNjY5XDdcdTAwZmFcMlwyXHUwNjY5XHUwNjZhXDdcMzFcMlwy XHUwNjZhXHUwNjZiIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcNyFcMlwyXHUwNjZiXHUwNjZj XDVcdTAwOWFOXDJcdTA2NmNcdTA2NmRcN1x1MDBhM1wyXDIiKQ0KPiANCj4gLSAgICAgICAgYnVm LndyaXRlKCJcdTA2NmRcdTA2NmVcNyBcMlwyXHUwNjZlXHUwMGMxXDNcMlwyXDJcdTA2NmZcdTA2 NzRcNSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwMGM0Y1wyXHUwNjcwXHUwNjcxXDcoXDJc Mlx1MDY3MVx1MDY3M1w1XHUwMGM0Y1wyXHUwNjcyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJc dTA2NzBcM1wyXDJcMlx1MDY3M1x1MDY3NlwzXDJcMlwyXHUwNjc0XHUwNjcyXDNcMlwyXDIiKQ0K PiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDY3NFx1MDY3NVwzXDJcMlwyXHUwNjc1XHUwMGMzXDNc MlwyXDJcdTA2NzZcdTA2NzRcMyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwNjc3 XHUwNjdhXDdcdTAwZmFcMlwyXHUwNjc4XHUwNjdhXDVWLFwyXHUwNjc5IikNCj4gDQo+IC0NCj4g YnVmLndyaXRlKCJcdTA2NzdcM1wyXDJcMlx1MDY3OVx1MDY3OFwzXDJcMlwyXHUwNjdhXHUwMGM1 XDNcMlwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDY3Ylx1MDY3ZVw1XHUwMGM4ZVwy XHUwNjdjXHUwNjdlXDVcdTAwZDBpXDJcdTA2N2RcdTA2N2INCj4gIikNCj4gDQo+IC0gICAgICAg IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA2N2RcdTA2N2NcM1wyXDJcMlx1MDY3ZVx1MDBjN1wzXDJc MlwyXHUwNjdmIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA2ODBcN15cMlwyXHUwNjgwXHUw NjgxXDVSKlwyXHUwNjgxXHUwNjgyXDVUK1wyXHUwNjgyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRl KCJcdTA2ODhcNyFcMlwyXHUwNjgzXHUwNjg0XDdAXDJcMlx1MDY4NFx1MDY4NVw3XGJcMlwyXHUw Njg1DQo+ICIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNjg2XDVcdTAwY2NnXDJcdTA2ODZc dTA2ODdcNyFcMlwyXHUwNjg3XHUwNjg5XDNcMlwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJc Mlx1MDY4OFx1MDY4M1wzXDJcMlwyXHUwNjg4XHUwNjg5XDNcMlwyXDJcdTA2ODlcdTA2OGUiKQ0K PiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1MDY4YVx1MDY4Ylw3dFwyXDJcdTA2 OGJcdTA2OGNcN1xiXDJcMlx1MDY4YyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDY4 ZFw3XHUwMGZhXDJcMlx1MDY4ZFx1MDY4Zlw3IVwyXDJcdTA2OGVcdTA2OGFcM1wyIikNCj4gDQo+ IC0NCj4gYnVmLndyaXRlKCJcMlwyXHUwNjhlXHUwNjhmXDNcMlwyXDJcdTA2OGZcdTA2OTBcM1wy XDJcMlx1MDY5MFx1MDY5MSIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlw1XHUwMGNhZlwy XHUwNjkxXHUwNjkyXDVcdTAwYjRbXDJcdTA2OTJcdTA2OTNcN19cMlwyIikNCj4gDQo+IC0gICAg ICAgIGJ1Zi53cml0ZSgiXHUwNjkzXHUwNjk0XDcgXDJcMlx1MDY5NFx1MDBjOVwzXDJcMlwyXHUw Njk1XHUwNjk2XDciKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoImBcMlwyXHUwNjk2XHUwNjk4XDdc YlwyXDJcdTA2OTdcdTA2OTlcN1wzNVwyXDJcdTA2OThcdTA2OTciKQ0KPiANCj4gLQ0KPiBidWYu d3JpdGUoIlwzXDJcMlwyXHUwNjk4XHUwNjk5XDNcMlwyXDJcdTA2OTlcdTA2OWFcM1wyXDJcMlx1 MDY5YSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNjliXDdcdTAwZmFcMlwyXHUwNjliXHUw NjljXDchXDJcMlx1MDY5Y1x1MDY5ZFw3YVwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlx1 MDY5ZFx1MDY5Zlw3XGJcMlwyXHUwNjllXHUwNmEwXDdcMzVcMlwyXHUwNjlmXHUwNjllIikNCj4g DQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA2OWZcdTA2YTBcM1wyXDJcMlx1MDZh MFx1MDZhMVwzXDJcMlwyXHUwNmExIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA2YTJcN1x1 MDBmYVwyXDJcdTA2YTJcdTA2YTdcNyFcMlwyXHUwNmEzXHUwNmE0XDdiXDIiKQ0KPiANCj4gLQ0K PiBidWYud3JpdGUoIlwyXHUwNmE0XHUwNmE1XDdcYlwyXDJcdTA2YTVcdTA2YTZcN1x1MDBmYVwy XDJcdTA2YTZcdTA2YTgiDQo+ICkNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDchXDJcMlx1 MDZhN1x1MDZhM1wzXDJcMlwyXHUwNmE3XHUwNmE4XDNcMlwyXDJcdTA2YTgiKQ0KPiANCj4gLQ0K PiBidWYud3JpdGUoIlx1MDBjYlwzXDJcMlwyXHUwNmE5XHUwNmFlXDVcdTAwY2VoXDJcdTA2YWFc dTA2YWJcNyhcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcdTA2YWJcdTA2YWRcNVx1MDBj ZWhcMlx1MDZhY1x1MDZhYVwzXDJcMlwyXHUwNmFkXHUwNmIwIg0KPiApDQo+IA0KPiAtICAgICAg ICBidWYud3JpdGUoIlwzXDJcMlwyXHUwNmFlXHUwNmFjXDNcMlwyXDJcdTA2YWVcdTA2YWZcM1wy XDJcMlx1MDZhZiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwMGNkXDNcMlwyXDJcdTA2YjBc dTA2YWVcM1wyXDJcMlx1MDZiMVx1MDZiYlw3XHUwMGZhIikNCj4gDQo+IC0NCj4gYnVmLndyaXRl KCJcMlwyXHUwNmIyXHUwNmJiXDdcdTAwZWZcMlwyXHUwNmIzXHUwNmJiXDdcdTAwZjBcMlwyXHUw NmI0Ig0KPiApDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNmJiXDdcdTAwZjFcMlwyXHUwNmI1 XHUwNmJiXDdcdTAwZjJcMlwyXHUwNmI2XHUwNmJiIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJc N1x1MDBmM1wyXDJcdTA2YjdcdTA2YmJcN1x1MDBmNFwyXDJcdTA2YjhcdTA2YmJcN1x1MDBmNSIp DQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDZiOVx1MDZiYlw1VixcMlx1MDZiYVx1MDZi MVwzXDJcMlwyXHUwNmJhXHUwNmIyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1 MDZiYVx1MDZiM1wzXDJcMlwyXHUwNmJhXHUwNmI0XDNcMlwyXDJcdTA2YmEiKQ0KPiANCj4gLQ0K PiBidWYud3JpdGUoIlx1MDZiNVwzXDJcMlwyXHUwNmJhXHUwNmI2XDNcMlwyXDJcdTA2YmFcdTA2 YjdcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNmJhXHUwNmI4XDNcMlwyXDJc dTA2YmFcdTA2YjlcM1wyXDJcMlx1MDZiYlx1MDBjZlwzIikNCj4gDQo+IC0NCj4gYnVmLndyaXRl KCJcMlwyXDJcdTA2YmNcdTA2YmRcN1w2MFwyXDJcdTA2YmRcdTA2YmVcNVIqXDJcdTA2YmVcdTA2 YmYiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlw1VCtcMlx1MDZiZlx1MDZjNVw3IVwyXDJcdTA2 YzBcdTA2YzFcN0BcMlwyXHUwNmMxXHUwNmMyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcN1xi XDJcMlx1MDZjMlx1MDZjM1w1XHUwMGQyalwyXHUwNmMzXHUwNmM0XDchXDJcMlx1MDZjNCIpDQo+ IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDZjNlwzXDJcMlwyXHUwNmM1XHUwNmMwXDNcMlwy XDJcdTA2YzVcdTA2YzZcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNmM2XHUw NmM4XDNcMlwyXDJcdTA2YzdcdTA2YzlcNVx1MDBjYWZcMlx1MDZjOFx1MDZjNyIpDQo+IA0KPiAt ICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwyXHUwNmM4XHUwNmM5XDNcMlwyXDJcdTA2YzlcdTA2 Y2FcM1wyXDJcMlx1MDZjYSIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDZjYlw1XHUw MGI0W1wyXHUwNmNiXHUwNmNjXDdcNjFcMlwyXHUwNmNjXHUwNmNkXDcgIikNCj4gDQo+IC0gICAg ICAgIGJ1Zi53cml0ZSgiXDJcMlx1MDZjZFx1MDBkMVwzXDJcMlwyXHUwNmNlXHUwNmQzXDVcdTAw Y2VoXDJcdTA2Y2YiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDZkMFw3KFwyXDJcdTA2ZDBc dTA2ZDJcNVx1MDBjZWhcMlx1MDZkMVx1MDZjZlwzXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0 ZSgiXDJcdTA2ZDJcdTA2ZDVcM1wyXDJcMlx1MDZkM1x1MDZkMVwzXDJcMlwyXHUwNmQzXHUwNmQ0 IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1MDZkNFx1MDBkM1wzXDJcMlwyXHUw NmQ1XHUwNmQzXDNcMlwyXDJcdTA2ZDYiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDZkOVw1 XHUwMGQ2bFwyXHUwNmQ3XHUwNmQ5XDVcdTAwZGNvXDJcdTA2ZDhcdTA2ZDZcMyIpDQo+IA0KPiAt DQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwNmQ4XHUwNmQ3XDNcMlwyXDJcdTA2ZDlcdTAwZDVcM1wy XDJcMlx1MDZkYVx1MDZkYg0KPiAiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlw3ZlwyXDJcdTA2 ZGJcdTA2ZGNcNVApXDJcdTA2ZGNcdTA2ZTJcNyFcMlwyXHUwNmRkXHUwNmRlIikNCj4gDQo+IC0N Cj4gYnVmLndyaXRlKCJcN0BcMlwyXHUwNmRlXHUwNmRmXDdcYlwyXDJcdTA2ZGZcdTA2ZTBcNVx1 MDBkOG1cMlx1MDZlMCIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDZlMVw3IVwyXDJc dTA2ZTFcdTA2ZTNcM1wyXDJcMlx1MDZlMlx1MDZkZFwzXDJcMlwyIikNCj4gDQo+IC0NCj4gYnVm LndyaXRlKCJcdTA2ZTJcdTA2ZTNcM1wyXDJcMlx1MDZlM1x1MDZlOFwzXDJcMlwyXHUwNmU0XHUw NmU1XDciKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoInRcMlwyXHUwNmU1XHUwNmU2XDdcYlwyXDJc dTA2ZTZcdTA2ZTdcN1x1MDBmYVwyXDJcdTA2ZTciKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRl KCJcdTA2ZTlcNyFcMlwyXHUwNmU4XHUwNmU0XDNcMlwyXDJcdTA2ZThcdTA2ZTlcM1wyXDJcMiIp DQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNmU5XHUwNmVhXDNcMlwyXDJcdTA2ZWFcdTA2ZWJc N2hcMlwyXHUwNmViXHUwNmVjXDciKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlxiXDJcMlx1MDZl Y1x1MDZlZFw3XHUwMGZhXDJcMlx1MDZlZFx1MDZlZVw3IVwyXDJcdTA2ZWUiKQ0KPiANCj4gLSAg ICAgICAgYnVmLndyaXRlKCJcdTA2ZWZcN2lcMlwyXHUwNmVmXHUwNmYwXDdcYlwyXDJcdTA2ZjBc dTA2ZjFcN1x1MDBmYSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDZmMVx1MDZmMlw3 IVwyXDJcdTA2ZjJcdTA2ZjNcNVx1MDBiNFtcMlx1MDZmM1x1MDZmNCIpDQo+IA0KPiAtICAgICAg ICBidWYud3JpdGUoIlw3Z1wyXDJcdTA2ZjRcdTA2ZjVcNw0KPiBcMlwyXHUwNmY1XHUwMGQ3XDNc MlwyXDJcdTA2ZjZcdTA2ZmIiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcNVx1MDBkYW5c Mlx1MDZmN1x1MDZmOFw3KFwyXDJcdTA2ZjhcdTA2ZmFcNVx1MDBkYW5cMiIpDQo+IA0KPiAtICAg ICAgICBidWYud3JpdGUoIlx1MDZmOVx1MDZmN1wzXDJcMlwyXHUwNmZhXHUwNmZkXDNcMlwyXDJc dTA2ZmJcdTA2ZjlcMyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwNmZiXHUwNmZj XDNcMlwyXDJcdTA2ZmNcdTAwZDlcM1wyXDJcMlx1MDZmZFx1MDZmYiIpDQo+IA0KPiAtICAgICAg ICBidWYud3JpdGUoIlwzXDJcMlwyXHUwNmZlXHUwNzAyXDdcdTAwZmFcMlwyXHUwNmZmXHUwNzAy XDdcMTNcMlwyIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwNzAwXHUwNzAyXDVWLFwy XHUwNzAxXHUwNmZlXDNcMlwyXDJcdTA3MDFcdTA2ZmZcM1wyIikNCj4gDQo+IC0NCj4gYnVmLndy aXRlKCJcMlwyXHUwNzAxXHUwNzAwXDNcMlwyXDJcdTA3MDJcdTAwZGJcM1wyXDJcMlx1MDcwM1x1 MDcwNCIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDdkXDJcMlx1MDcwNFx1MDcwNVw1UClcMlx1 MDcwNVx1MDcwYlw3IVwyXDJcdTA3MDZcdTA3MDciKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlw3 QFwyXDJcdTA3MDdcdTA3MDhcN1xiXDJcMlx1MDcwOFx1MDcwOVw1XHUwMGRlcFwyXHUwNzA5IikN Cj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwNzBhXDchXDJcMlx1MDcwYVx1MDcwY1wzXDJc MlwyXHUwNzBiXHUwNzA2XDNcMlwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDcwYlx1 MDcwY1wzXDJcMlwyXHUwNzBjXHUwNzExXDNcMlwyXDJcdTA3MGRcdTA3MGVcNyIpDQo+IA0KPiAt DQo+IGJ1Zi53cml0ZSgidFwyXDJcdTA3MGVcdTA3MGZcN1xiXDJcMlx1MDcwZlx1MDcxMFw3XHUw MGZhXDJcMlx1MDcxMCIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDcxMlw3IVwyXDJc dTA3MTFcdTA3MGRcM1wyXDJcMlx1MDcxMVx1MDcxMlwzXDJcMlwyIikNCj4gDQo+IC0NCj4gYnVm LndyaXRlKCJcdTA3MTJcdTA3MTNcM1wyXDJcMlx1MDcxM1x1MDcxNFw3aFwyXDJcdTA3MTRcdTA3 MTVcNyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXGJcMlwyXHUwNzE1XHUwNzE2XDdcdTAwZmFc MlwyXHUwNzE2XHUwNzE3XDchXDJcMlx1MDcxNyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUo Ilx1MDcxOFw3aVwyXDJcdTA3MThcdTA3MTlcN1xiXDJcMlx1MDcxOVx1MDcxYVw3XHUwMGZhIikN Cj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDJcMlx1MDcxYVx1MDcxZlw3IVwyXDJcdTA3MWJc dTA3MWNcN2pcMlwyXHUwNzFjXHUwNzFkIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcN1xiXDJc Mlx1MDcxZFx1MDcxZVw3XHUwMGZhXDJcMlx1MDcxZVx1MDcyMFw3IVwyXDJcdTA3MWYiKQ0KPiAN Cj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTA3MWJcM1wyXDJcMlx1MDcxZlx1MDcyMFwzXDJcMlwy XHUwNzIwXHUwNzIxXDNcMlwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDcyMVx1MDcy Mlw1XHUwMGI0W1wyXHUwNzIyXHUwNzIzXDdlXDJcMlx1MDcyM1x1MDcyNCIpDQo+IA0KPiAtICAg ICAgICBidWYud3JpdGUoIlw3DQo+IFwyXDJcdTA3MjRcdTAwZGRcM1wyXDJcMlx1MDcyNVx1MDcy YVw1XHUwMGUwcVwyXHUwNzI2IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA3MjdcNyhcMlwy XHUwNzI3XHUwNzI5XDVcdTAwZTBxXDJcdTA3MjhcdTA3MjZcM1wyXDIiKQ0KPiANCj4gLQ0KPiBi dWYud3JpdGUoIlwyXHUwNzI5XHUwNzJjXDNcMlwyXDJcdTA3MmFcdTA3MjhcM1wyXDJcMlx1MDcy YVx1MDcyYiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwyXHUwNzJiXHUwMGRm XDNcMlwyXDJcdTA3MmNcdTA3MmFcM1wyXDJcMlx1MDcyZCIpDQo+IA0KPiAtICAgICAgICBidWYu d3JpdGUoIlx1MDczMFw3XHUwMGZhXDJcMlx1MDcyZVx1MDczMFw1VixcMlx1MDcyZlx1MDcyZFwz XDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcdTA3MmZcdTA3MmVcM1wyXDJcMlx1MDcz MFx1MDBlMVwzXDJcMlwyXHUwNzMxXHUwNzMyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcN1w2 M1wyXDJcdTA3MzJcdTA3MzNcNVApXDJcdTA3MzNcdTA3MzhcNyFcMlwyXHUwNzM0XHUwNzM1IikN Cj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDdcNjRcMlwyXHUwNzM1XHUwNzM2XDdcYlwyXDJc dTA3MzZcdTA3MzdcN1x1MDBmYVwyXDIiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTA3 MzdcdTA3MzlcNyFcMlwyXHUwNzM4XHUwNzM0XDNcMlwyXDJcdTA3MzhcdTA3MzlcMyIpDQo+IA0K PiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwNzM5XHUwNzNmXDNcMlwyXDJcdTA3M2FcdTA3M2Jc N0BcMlwyXHUwNzNiXHUwNzNjIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcN1xiXDJcMlx1MDcz Y1x1MDczZFw1XHUwMGU0c1wyXHUwNzNkXHUwNzNlXDchXDJcMlx1MDczZSIpDQo+IA0KPiAtICAg ICAgICBidWYud3JpdGUoIlx1MDc0MFwzXDJcMlwyXHUwNzNmXHUwNzNhXDNcMlwyXDJcdTA3M2Zc dTA3NDBcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNzQwXHUwNzQxXDNcMlwy XDJcdTA3NDFcdTA3NDJcNVx1MDBiNFtcMlx1MDc0Mlx1MDc0MyIpDQo+IA0KPiAtICAgICAgICBi dWYud3JpdGUoIlw3XDY1XDJcMlx1MDc0M1x1MDc0NFw3IFwyXDJcdTA3NDRcdTAwZTNcM1wyXDJc Mlx1MDc0NSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNzRhXDVcdTAwZTZ0XDJcdTA3NDZc dTA3NDdcNyhcMlwyXHUwNzQ3XHUwNzQ5XDVcdTAwZTYiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUo InRcMlx1MDc0OFx1MDc0NlwzXDJcMlwyXHUwNzQ5XHUwNzRjXDNcMlwyXDJcdTA3NGFcdTA3NDgi KQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwNzRhXHUwNzRiXDNcMlwyXDJcdTA3 NGJcdTAwZTVcM1wyXDJcMlx1MDc0YyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNzRhXDNc MlwyXDJcdTA3NGRcdTA3NTJcN1x1MDBmYVwyXDJcdTA3NGVcdTA3NTJcN1x1MDBjMCINCj4gKQ0K PiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJcdTA3NGZcdTA3NTJcN1x1MDBjMVwyXDJcdTA3NTBc dTA3NTJcNVYsXDJcdTA3NTFcdTA3NGQiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcM1wy XDJcMlx1MDc1MVx1MDc0ZVwzXDJcMlwyXHUwNzUxXHUwNzRmXDNcMlwyXDJcdTA3NTEiKQ0KPiAN Cj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTA3NTBcM1wyXDJcMlx1MDc1Mlx1MDBlN1wzXDJcMlwy XHUwNzUzXHUwN2FlXDdBXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNzU0XHUwNzU1 XDVQKVwyXHUwNzU1XHUwNzViXDchXDJcMlx1MDc1Nlx1MDc1N1w3QFwyIikNCj4gDQo+IC0NCj4g YnVmLndyaXRlKCJcMlx1MDc1N1x1MDc1OFw3XGJcMlwyXHUwNzU4XHUwNzU5XDVcdTAwZWN3XDJc dTA3NTlcdTA3NWEiDQo+ICkNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDchXDJcMlx1MDc1 YVx1MDc1Y1wzXDJcMlwyXHUwNzViXHUwNzU2XDNcMlwyXDJcdTA3NWIiKQ0KPiANCj4gLQ0KPiBi dWYud3JpdGUoIlx1MDc1Y1wzXDJcMlwyXHUwNzVjXHUwNzVkXDNcMlwyXDJcdTA3NWRcdTA3NWVc NVx1MDBiNCIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiW1wyXHUwNzVlXHUwN2FmXDNcMlwyXDJc dTA3NWZcdTA3NjBcN0NcMlwyXHUwNzYwXHUwNzYxIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJc N1x1MDA4ZlwyXDJcdTA3NjFcdTA3NjJcN1xiXDJcMlx1MDc2Mlx1MDc2M1w3XHUwMGZiXDIiKQ0K PiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcMlx1MDc2M1x1MDc2NFw3XDM0XDJcMlx1MDc2NFx1 MDc2NVw3XHUwMGZiXDJcMlx1MDc2NSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNzY2XDch XDJcMlx1MDc2Nlx1MDc2N1w3XDYyXDJcMlx1MDc2N1x1MDc2OFw3XGJcMlwyIikNCj4gDQo+IC0N Cj4gYnVmLndyaXRlKCJcdTA3NjhcdTA3NjlcN1x1MDBlY1wyXDJcdTA3NjlcdTA3NmFcN1wzMFwy XDJcdTA3NmFcdTA3NmIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlw3XHUwMGZhXDJcMlx1MDc2 Ylx1MDc2Y1w3XDMxXDJcMlx1MDc2Y1x1MDc2ZFw3IVwyXDJcdTA3NmQiKQ0KPiANCj4gLSAgICAg ICAgYnVmLndyaXRlKCJcdTA3NmVcNz1cMlwyXHUwNzZlXHUwNzZmXDdcYlwyXDJcdTA3NmZcdTA3 NzBcN1x1MDBlYyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDc3MFx1MDc3MVw3XDMw XDJcMlx1MDc3MVx1MDc3Mlw3XHUwMGZhXDJcMlx1MDc3MiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0 ZSgiXHUwNzczXDdcMzFcMlwyXHUwNzczXHUwNzc0XDchXDJcMlx1MDc3NFx1MDc3NVw1XHUwMGVh IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJ2XDJcdTA3NzVcdTA3NzZcN0RcMlwyXHUwNzc2XHUw Nzc3XDdcdTAwOGZcMlwyXHUwNzc3XHUwNzc4DQo+ICIpDQo+IA0KPiAtICAgICAgICBidWYud3Jp dGUoIlw3XGJcMlwyXHUwNzc4XHUwNzc5XDdcdTAwZmJcMlwyXHUwNzc5XHUwNzdhXDdcMzRcMlwy IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA3N2FcdTA3N2JcN1x1MDBmYlwyXDJcdTA3N2Jc dTA3N2NcNyFcMlwyXHUwNzdjXHUwNzdkIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDdc NjJcMlwyXHUwNzdkXHUwNzdlXDdcYlwyXDJcdTA3N2VcdTA3N2ZcN1x1MDBlY1wyXDIiKQ0KPiAN Cj4gLQ0KPiBidWYud3JpdGUoIlx1MDc3Zlx1MDc4MFw3XDMwXDJcMlx1MDc4MFx1MDc4MVw3XHUw MGZhXDJcMlx1MDc4MVx1MDc4MiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlw3XDMxXDJc Mlx1MDc4Mlx1MDc4M1w3IVwyXDJcdTA3ODNcdTA3ODRcNz1cMlwyXHUwNzg0IikNCj4gDQo+IC0N Cj4gYnVmLndyaXRlKCJcdTA3ODVcN1xiXDJcMlx1MDc4NVx1MDc4Nlw3XHUwMGVjXDJcMlx1MDc4 Nlx1MDc4N1w3XDMwIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlwyXHUwNzg3XHUwNzg4XDdc dTAwZmFcMlwyXHUwNzg4XHUwNzg5XDdcMzFcMlwyXHUwNzg5IikNCj4gDQo+IC0gICAgICAgIGJ1 Zi53cml0ZSgiXHUwNzhhXDchXDJcMlx1MDc4YVx1MDc4Ylw1XHUwMGVhdlwyXHUwNzhiXHUwNzhj XDdFXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXHUwNzhjXHUwNzhkXDdcdTAwOGZcMlwy XHUwNzhkXHUwNzhlXDdcYlwyXDJcdTA3OGVcdTA3OGYiDQo+ICkNCj4gDQo+IC0gICAgICAgIGJ1 Zi53cml0ZSgiXDdcdTAwZmJcMlwyXHUwNzhmXHUwNzkwXDdcMzRcMlwyXHUwNzkwXHUwNzkxXDdc dTAwZmIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJcdTA3OTFcdTA3OTJcNyFcMlwyXHUw NzkyXHUwNzkzXDdcNjJcMlwyXHUwNzkzXHUwNzk0IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0 ZSgiXDdcYlwyXDJcdTA3OTRcdTA3OTVcN1x1MDBlY1wyXDJcdTA3OTVcdTA3OTZcN1wzMFwyXDIi KQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDc5Nlx1MDc5N1w3XHUwMGZhXDJcMlx1MDc5N1x1 MDc5OFw3XDMxXDJcMlx1MDc5OFx1MDc5OSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDchXDJc Mlx1MDc5OVx1MDc5YVw3PVwyXDJcdTA3OWFcdTA3OWJcN1xiXDJcMlx1MDc5Ylx1MDc5YyINCj4g KQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcN1x1MDBlY1wyXDJcdTA3OWNcdTA3OWRcN1wz MFwyXDJcdTA3OWRcdTA3OWVcN1x1MDBmYSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlx1 MDc5ZVx1MDc5Zlw3XDMxXDJcMlx1MDc5Zlx1MDdhMFw3IVwyXDJcdTA3YTBcdTA3YTYiKQ0KPiAN Cj4gLQ0KPiBidWYud3JpdGUoIlw1XHUwMGVhdlwyXHUwN2ExXHUwN2EyXDdAXDJcMlx1MDdhMlx1 MDdhM1w3XGJcMlwyXHUwN2EzIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA3YTRcNVx1MDBl Y3dcMlx1MDdhNFx1MDdhNVw3IVwyXDJcdTA3YTVcdTA3YTdcM1wyXDIiKQ0KPiANCj4gLQ0KPiBi dWYud3JpdGUoIlwyXHUwN2E2XHUwN2ExXDNcMlwyXDJcdTA3YTZcdTA3YTdcM1wyXDJcMlx1MDdh N1x1MDdhYiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA3YThcdTA3YWFcNVx1 MDA4Y0dcMlx1MDdhOVx1MDdhOFwzXDJcMlwyXHUwN2FhIikNCj4gDQo+IC0NCj4gYnVmLndyaXRl KCJcdTA3YWRcM1wyXDJcMlx1MDdhYlx1MDdhOVwzXDJcMlwyXHUwN2FiXHUwN2FjXDNcMlwyXDIi KQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDdhY1x1MDdhZlwzXDJcMlwyXHUwN2FkXHUwN2Fi XDNcMlwyXDJcdTA3YWVcdTA3NTRcMyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUw N2FlXHUwNzVmXDNcMlwyXDJcdTA3YWZcdTA3YjBcM1wyXDJcMlx1MDdiMFx1MDdiMSIpDQo+IA0K PiAtICAgICAgICBidWYud3JpdGUoIlw3QlwyXDJcdTA3YjFcdTA3YjJcNw0KPiBcMlwyXHUwN2Iy XHUwMGU5XDNcMlwyXDJcdTA3YjNcdTA3YjQiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlw3YFwy XDJcdTA3YjRcdTA3YjVcN1xiXDJcMlx1MDdiNVx1MDdiNlw3XHUwMGZhXDJcMlx1MDdiNiIpDQo+ IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwN2I3XDchXDJcMlx1MDdiN1x1MDdiOFw3YVwyXDJcdTA3 YjhcdTA3YjlcN1xiXDJcMlx1MDdiOSINCj4gKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDdi YVw3XHUwMGZhXDJcMlx1MDdiYVx1MDdiZlw3IVwyXDJcdTA3YmJcdTA3YmNcN2JcMiIpDQo+IA0K PiAtDQo+IGJ1Zi53cml0ZSgiXDJcdTA3YmNcdTA3YmRcN1xiXDJcMlx1MDdiZFx1MDdiZVw3XHUw MGZhXDJcMlx1MDdiZVx1MDdjMCINCj4gKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcNyFc MlwyXHUwN2JmXHUwN2JiXDNcMlwyXDJcdTA3YmZcdTA3YzBcM1wyXDJcMlx1MDdjMCIpDQo+IA0K PiAtICAgICAgICBidWYud3JpdGUoIlx1MDdjNVwzXDJcMlwyXHUwN2MxXHUwN2MyXDdjXDJcMlx1 MDdjMlx1MDdjM1w3XGJcMlwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA3YzNcdTA3YzRc N1x1MDBmYVwyXDJcdTA3YzRcdTA3YzZcNyFcMlwyXHUwN2M1XHUwN2MxIikNCj4gDQo+IC0gICAg ICAgIGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA3YzVcdTA3YzZcM1wyXDJcMlx1MDdjNlx1MDBlYlwz XDJcMlwyXHUwN2M3IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA3Y2NcNVx1MDBlZXhcMlx1 MDdjOFx1MDdjOVw3KFwyXDJcdTA3YzlcdTA3Y2JcNVx1MDBlZSIpDQo+IA0KPiAtDQo+IGJ1Zi53 cml0ZSgieFwyXHUwN2NhXHUwN2M4XDNcMlwyXDJcdTA3Y2JcdTA3Y2VcM1wyXDJcMlx1MDdjY1x1 MDdjYSIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwyXHUwN2NjXHUwN2NkXDNc MlwyXDJcdTA3Y2RcdTAwZWRcM1wyXDJcMlx1MDdjZSIpDQo+IA0KPiAtICAgICAgICBidWYud3Jp dGUoIlx1MDdjY1wzXDJcMlwyXHUwN2NmXHUwN2QwXHRcNlwyXDJcdTA3ZDBcdTAwZWZcM1wyXDJc MiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwN2QxXHUwODJjXDdGXDJcMlx1MDdkMlx1MDdk M1w1UClcMlx1MDdkM1x1MDdkOVw3IVwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlx1MDdk NFx1MDdkNVw3QFwyXDJcdTA3ZDVcdTA3ZDZcN1xiXDJcMlx1MDdkNlx1MDdkNyIpDQo+IA0KPiAt DQo+IGJ1Zi53cml0ZSgiXDVcdTAwZjR7XDJcdTA3ZDdcdTA3ZDhcNyFcMlwyXHUwN2Q4XHUwN2Rh XDNcMlwyXDJcdTA3ZDkiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDdkNFwzXDJcMlwyXHUw N2Q5XHUwN2RhXDNcMlwyXDJcdTA3ZGFcdTA3ZGJcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53 cml0ZSgiXHUwN2RiXHUwN2RjXDVcdTAwYjRbXDJcdTA3ZGNcdTA4MmRcM1wyXDJcMlx1MDdkZFx1 MDdkZSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDdIXDJcMlx1MDdkZVx1MDdkZlw3XHUwMDhm XDJcMlx1MDdkZlx1MDdlMFw3XGJcMlwyXHUwN2UwIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0 ZSgiXHUwN2UxXDdcdTAwZmJcMlwyXHUwN2UxXHUwN2UyXDdcMzRcMlwyXHUwN2UyXHUwN2UzXDci KQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDBmYlwyXDJcdTA3ZTNcdTA3ZTRcNyFcMlwyXHUw N2U0XHUwN2U1XDdcNjJcMlwyXHUwN2U1IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA3ZTZc N1xiXDJcMlx1MDdlNlx1MDdlN1w3XHUwMGVjXDJcMlx1MDdlN1x1MDdlOFw3XDMwIikNCj4gDQo+ IC0NCj4gYnVmLndyaXRlKCJcMlwyXHUwN2U4XHUwN2U5XDdcdTAwZmFcMlwyXHUwN2U5XHUwN2Vh XDdcMzFcMlwyXHUwN2VhIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA3ZWJcNyFcMlwyXHUw N2ViXHUwN2VjXDc9XDJcMlx1MDdlY1x1MDdlZFw3XGJcMlwyXHUwN2VkIg0KPiApDQo+IA0KPiAt ICAgICAgICBidWYud3JpdGUoIlx1MDdlZVw3XHUwMGVjXDJcMlx1MDdlZVx1MDdlZlw3XDMwXDJc Mlx1MDdlZlx1MDdmMFw3IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAwZmFcMlwyXHUwN2Yw XHUwN2YxXDdcMzFcMlwyXHUwN2YxXHUwN2YyXDchXDJcMlx1MDdmMiIpDQo+IA0KPiAtDQo+IGJ1 Zi53cml0ZSgiXHUwN2YzXDVcdTAwZjJ6XDJcdTA3ZjNcdTA3ZjRcN0lcMlwyXHUwN2Y0XHUwN2Y1 XDdcdTAwOGYiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcMlwyXHUwN2Y1XHUwN2Y2XDdc YlwyXDJcdTA3ZjZcdTA3ZjdcN1x1MDBmYlwyXDJcdTA3ZjciKQ0KPiANCj4gLSAgICAgICAgYnVm LndyaXRlKCJcdTA3ZjhcN1wzNFwyXDJcdTA3ZjhcdTA3ZjlcN1x1MDBmYlwyXDJcdTA3ZjlcdTA3 ZmFcNyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiIVwyXDJcdTA3ZmFcdTA3ZmJcN1w2MlwyXDJc dTA3ZmJcdTA3ZmNcN1xiXDJcMlx1MDdmY1x1MDdmZCIpDQo+IA0KPiAtICAgICAgICBidWYud3Jp dGUoIlw3XHUwMGVjXDJcMlx1MDdmZFx1MDdmZVw3XDMwXDJcMlx1MDdmZVx1MDdmZlw3XHUwMGZh IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlwyXHUwN2ZmXHUwODAwXDdcMzFcMlwyXHUwODAw XHUwODAxXDchXDJcMlx1MDgwMVx1MDgwMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDc9XDJc Mlx1MDgwMlx1MDgwM1w3XGJcMlwyXHUwODAzXHUwODA0XDdcdTAwZWNcMlwyXHUwODA0IikNCj4g DQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwODA1XDdcMzBcMlwyXHUwODA1XHUwODA2XDdcdTAw ZmFcMlwyXHUwODA2XHUwODA3XDciKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzMVwyXDJcdTA4 MDdcdTA4MDhcNyFcMlwyXHUwODA4XHUwODA5XDVcdTAwZjJ6XDJcdTA4MDkiKQ0KPiANCj4gLSAg ICAgICAgYnVmLndyaXRlKCJcdTA4MGFcN0pcMlwyXHUwODBhXHUwODBiXDdcdTAwOGZcMlwyXHUw ODBiXHUwODBjXDdcYiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDgwY1x1MDgwZFw3 XHUwMGZiXDJcMlx1MDgwZFx1MDgwZVw3XDM0XDJcMlx1MDgwZSIpDQo+IA0KPiAtICAgICAgICBi dWYud3JpdGUoIlx1MDgwZlw3XHUwMGZiXDJcMlx1MDgwZlx1MDgxMFw3IVwyXDJcdTA4MTBcdTA4 MTFcN1w2MiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDgxMVx1MDgxMlw3XGJcMlwy XHUwODEyXHUwODEzXDdcdTAwZWNcMlwyXHUwODEzIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0 ZSgiXHUwODE0XDdcMzBcMlwyXHUwODE0XHUwODE1XDdcdTAwZmFcMlwyXHUwODE1XHUwODE2XDci KQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzMVwyXDJcdTA4MTZcdTA4MTdcNyFcMlwyXHUwODE3 XHUwODE4XDc9XDJcMlx1MDgxOFx1MDgxOSIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlw3 XGJcMlwyXHUwODE5XHUwODFhXDdcdTAwZWNcMlwyXHUwODFhXHUwODFiXDdcMzBcMlwyIikNCj4g DQo+IC0NCj4gYnVmLndyaXRlKCJcdTA4MWJcdTA4MWNcN1x1MDBmYVwyXDJcdTA4MWNcdTA4MWRc N1wzMVwyXDJcdTA4MWRcdTA4MWUiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlw3IVwyXDJcdTA4 MWVcdTA4MjRcNVx1MDBmMnpcMlx1MDgxZlx1MDgyMFw3QFwyXDJcdTA4MjAiKQ0KPiANCj4gLQ0K PiBidWYud3JpdGUoIlx1MDgyMVw3XGJcMlwyXHUwODIxXHUwODIyXDVcdTAwZjR7XDJcdTA4MjJc dTA4MjNcNyFcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcdTA4MjNcdTA4MjVcM1wyXDJc Mlx1MDgyNFx1MDgxZlwzXDJcMlwyXHUwODI0XHUwODI1IikNCj4gDQo+IC0NCj4gYnVmLndyaXRl KCJcM1wyXDJcMlx1MDgyNVx1MDgyOVwzXDJcMlwyXHUwODI2XHUwODI4XDVcdTAwOGNHXDJcdTA4 MjciKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDgyNlwzXDJcMlwyXHUwODI4XHUwODJiXDNc MlwyXDJcdTA4MjlcdTA4MjdcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwODI5 XHUwODJhXDNcMlwyXDJcdTA4MmFcdTA4MmRcM1wyXDJcMlx1MDgyYlx1MDgyOVwzIikNCj4gDQo+ IC0NCj4gYnVmLndyaXRlKCJcMlwyXDJcdTA4MmNcdTA3ZDJcM1wyXDJcMlx1MDgyY1x1MDdkZFwz XDJcMlwyXHUwODJkXHUwODJlIg0KPiApDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwzXDJc MlwyXHUwODJlXHUwODJmXDdHXDJcMlx1MDgyZlx1MDgzMFw3DQo+IFwyXDJcdTA4MzBcdTAwZjEi KQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1MDgzMVx1MDgzMlw3YFwyXDJc dTA4MzJcdTA4MzNcN1xiXDJcMlx1MDgzMyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwODM0 XDdcdTAwZmFcMlwyXHUwODM0XHUwODM1XDchXDJcMlx1MDgzNVx1MDgzNlw3YVwyIikNCj4gDQo+ IC0NCj4gYnVmLndyaXRlKCJcMlx1MDgzNlx1MDgzN1w3XGJcMlwyXHUwODM3XHUwODM4XDdcdTAw ZmFcMlwyXHUwODM4XHUwODNkIg0KPiApDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDchXDJcMlx1 MDgzOVx1MDgzYVw3YlwyXDJcdTA4M2FcdTA4M2JcN1xiXDJcMlx1MDgzYlx1MDgzYyINCj4gKQ0K PiANCj4gLQ0KPiBidWYud3JpdGUoIlw3XHUwMGZhXDJcMlx1MDgzY1x1MDgzZVw3IVwyXDJcdTA4 M2RcdTA4MzlcM1wyXDJcMlx1MDgzZCIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDgz ZVwzXDJcMlwyXHUwODNlXHUwODQzXDNcMlwyXDJcdTA4M2ZcdTA4NDBcN2NcMlwyIikNCj4gDQo+ IC0NCj4gYnVmLndyaXRlKCJcdTA4NDBcdTA4NDFcN1xiXDJcMlx1MDg0MVx1MDg0Mlw3XHUwMGZh XDJcMlx1MDg0Mlx1MDg0NCIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlw3IVwyXDJcdTA4 NDNcdTA4M2ZcM1wyXDJcMlx1MDg0M1x1MDg0NFwzXDJcMlwyXHUwODQ0IikNCj4gDQo+IC0gICAg ICAgIGJ1Zi53cml0ZSgiXHUwMGYzXDNcMlwyXDJcdTA4NDVcdTA4NGFcNVx1MDBmNnxcMlx1MDg0 Nlx1MDg0N1w3KFwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlx1MDg0N1x1MDg0OVw1XHUw MGY2fFwyXHUwODQ4XHUwODQ2XDNcMlwyXDJcdTA4NDlcdTA4NGMiKQ0KPiANCj4gLQ0KPiBidWYu d3JpdGUoIlwzXDJcMlwyXHUwODRhXHUwODQ4XDNcMlwyXDJcdTA4NGFcdTA4NGJcM1wyXDJcMlx1 MDg0YiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDBmNVwzXDJcMlwyXHUwODRjXHUw ODRhXDNcMlwyXDJcdTA4NGRcdTA4NGVcdFw3XDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgi XHUwODRlXHUwMGY3XDNcMlwyXDJcdTA4NGZcdTA4NTRcNVx1MDEwNFx1MDA4M1wyXHUwODUwIikN Cj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA4NTRcNVx1MDBmY1wxNzdcMlx1MDg1MVx1MDg1NFw1 XHUwMGZlXHUwMDgwXDJcdTA4NTIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDg1NFw1XHUw MTBlXHUwMDg4XDJcdTA4NTNcdTA4NGZcM1wyXDJcMlx1MDg1M1x1MDg1MCIpDQo+IA0KPiAtDQo+ IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA4NTNcdTA4NTFcM1wyXDJcMlx1MDg1M1x1MDg1MlwzXDJc MlwyXHUwODU0IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAwZjlcM1wyXDJcMlx1MDg1NVx1 MDg1Nlw1XHUwMTA0XHUwMDgzXDJcdTA4NTZcdTA4NTciKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUo Ilw1XHUwMTBhXHUwMDg2XDJcdTA4NTdcdTA4NThcNVx1MDEwY1x1MDA4N1wyXHUwODU4XHUwODU5 IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcNVx1MDEwZVx1MDA4OFwyXHUwODU5XHUwMGZiXDNc MlwyXDJcdTA4NWFcdTA4NWJcNVx1MDEwYSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwMDg2 XDJcdTA4NWJcdTAwZmRcM1wyXDJcMlx1MDg1Y1x1MDg1ZFw1XHUwMTBjXHUwMDg3IikNCj4gDQo+ IC0NCj4gYnVmLndyaXRlKCJcMlx1MDg1ZFx1MDBmZlwzXDJcMlwyXHUwODVlXHUwODY1XDVwOVwy XHUwODVmXHUwODY1XDUiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDA4OEVcMlx1MDg2MFx1 MDg2NVw1XHUwMGY4fVwyXHUwODYxXHUwODY1XDVcdTAxMThcdTAwOGQNCj4gIikNCj4gDQo+IC0N Cj4gYnVmLndyaXRlKCJcMlx1MDg2Mlx1MDg2NVw1XHUwMTFjXHUwMDhmXDJcdTA4NjNcdTA4NjVc NVx1MDExMFx1MDA4OSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcdTA4NjRcdTA4NWVcM1wy XDJcMlx1MDg2NFx1MDg1ZlwzXDJcMlwyXHUwODY0XHUwODYwIikNCj4gDQo+IC0NCj4gYnVmLndy aXRlKCJcM1wyXDJcMlx1MDg2NFx1MDg2MVwzXDJcMlwyXHUwODY0XHUwODYyXDNcMlwyXDJcdTA4 NjQiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDg2M1wzXDJcMlwyXHUwODY1XHUwMTAxXDNc MlwyXDJcdTA4NjZcdTA4NmJcNXA5XDJcdTA4NjciDQo+ICkNCj4gDQo+IC0NCj4gYnVmLndyaXRl KCJcdTA4NmJcNVx1MDA4OEVcMlx1MDg2OFx1MDg2Ylw1XHUwMTE4XHUwMDhkXDJcdTA4NjlcdTA4 NmINCj4gIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcNVx1MDExMFx1MDA4OVwyXHUwODZhXHUw ODY2XDNcMlwyXDJcdTA4NmFcdTA4NjdcM1wyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwy XHUwODZhXHUwODY4XDNcMlwyXDJcdTA4NmFcdTA4NjlcM1wyXDJcMlx1MDg2Ylx1MDEwMyIpDQo+ IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwyXHUwODZjXHUwODZkXDdsXDJcMlx1MDg2 ZFx1MDg2ZVw1XHUwMTI0XHUwMDkzIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDJcdTA4 NmVcdTA4NzJcNw0KPiBcMlwyXHUwODZmXHUwODcxXDVcdTAxMDBcdTAwODFcMlx1MDg3MCIpDQo+ IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDg2ZlwzXDJcMlwyXHUwODcxXHUwODc0XDNcMlwy XDJcdTA4NzJcdTA4NzBcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwODcyXHUw ODczXDNcMlwyXDJcdTA4NzNcdTA4NzVcM1wyXDJcMlx1MDg3NFx1MDg3MlwzIikNCj4gDQo+IC0g ICAgICAgIGJ1Zi53cml0ZSgiXDJcMlwyXHUwODc1XHUwODc2XDdzXDJcMlx1MDg3Nlx1MDg3N1w3 DQo+IFwyXDJcdTA4NzdcdTAxMDUiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUw ODc4XHUwODg1XDdrXDJcMlx1MDg3OVx1MDg3YVw3QFwyXDJcdTA4N2FcdTA4N2INCj4gIikNCj4g DQo+IC0NCj4gYnVmLndyaXRlKCJcN1xiXDJcMlx1MDg3Ylx1MDg4MFw1XHUwMDllUFwyXHUwODdj XHUwODdkXDcoXDJcMlx1MDg3ZCIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDg3Zlw1 XHUwMDllUFwyXHUwODdlXHUwODdjXDNcMlwyXDJcdTA4N2ZcdTA4ODJcM1wyIikNCj4gDQo+IC0N Cj4gYnVmLndyaXRlKCJcMlwyXHUwODgwXHUwODdlXDNcMlwyXDJcdTA4ODBcdTA4ODFcM1wyXDJc Mlx1MDg4MVx1MDg4MyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwyXHUwODgy XHUwODgwXDNcMlwyXDJcdTA4ODNcdTA4ODRcNyFcMlwyXHUwODg0IikNCj4gDQo+IC0NCj4gYnVm LndyaXRlKCJcdTA4ODZcM1wyXDJcMlx1MDg4NVx1MDg3OVwzXDJcMlwyXHUwODg1XHUwODg2XDNc MlwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDg4Nlx1MDg4N1wzXDJcMlwyXHUwODg3 XHUwODg4XDVcdTAxMjRcdTAwOTNcMlx1MDg4OCIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUo Ilx1MDg4OVw3DQo+IFwyXDJcdTA4ODlcdTAxMDdcM1wyXDJcMlx1MDg4YVx1MDg5N1w3S1wyXDJc dTA4OGIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDg4Y1w3QFwyXDJcdTA4OGNcdTA4OGRc N1xiXDJcMlx1MDg4ZFx1MDg5Mlw1XHUwMDllIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJQXDJc dTA4OGVcdTA4OGZcNyhcMlwyXHUwODhmXHUwODkxXDVcdTAwOWVQXDJcdTA4OTBcdTA4OGUiKQ0K PiANCj4gLQ0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwODkxXHUwODk0XDNcMlwyXDJcdTA4OTJc dTA4OTBcM1wyXDJcMlx1MDg5MiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwODkzXDNcMlwy XDJcdTA4OTNcdTA4OTVcM1wyXDJcMlx1MDg5NFx1MDg5MlwzXDJcMlwyIikNCj4gDQo+IC0gICAg ICAgIGJ1Zi53cml0ZSgiXHUwODk1XHUwODk2XDchXDJcMlx1MDg5Nlx1MDg5OFwzXDJcMlwyXHUw ODk3XHUwODhiXDMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJcMlx1MDg5N1x1MDg5OFwz XDJcMlwyXHUwODk4XHUwODk5XDNcMlwyXDJcdTA4OTlcdTA4OWEiDQo+ICkNCj4gDQo+IC0gICAg ICAgIGJ1Zi53cml0ZSgiXDVcdTAxMjRcdTAwOTNcMlx1MDg5YVx1MDg5Ylw3IFwyXDJcdTA4OWJc dTAxMDlcM1wyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXHUwODljXHUwOGE5XDdrXDJc Mlx1MDg5ZFx1MDg5ZVw3QFwyXDJcdTA4OWVcdTA4OWZcNyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0 ZSgiXGJcMlwyXHUwODlmXHUwOGE0XDVcdTAwOWVQXDJcdTA4YTBcdTA4YTFcNyhcMlwyXHUwOGEx IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA4YTNcNVx1MDA5ZVBcMlx1MDhhMlx1MDhhMFwz XDJcMlwyXHUwOGEzXHUwOGE2XDNcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDhh NFx1MDhhMlwzXDJcMlwyXHUwOGE0XHUwOGE1XDNcMlwyXDJcdTA4YTVcdTA4YTciKQ0KPiANCj4g LSAgICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1MDhhNlx1MDhhNFwzXDJcMlwyXHUwOGE3XHUw OGE4XDchXDJcMlx1MDhhOCIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwOGFhXDNcMlwyXDJc dTA4YTlcdTA4OWRcM1wyXDJcMlx1MDhhOVx1MDhhYVwzXDJcMlwyIikNCj4gDQo+IC0NCj4gYnVm LndyaXRlKCJcdTA4YWFcdTA4YWJcM1wyXDJcMlx1MDhhYlx1MDhhY1w1XHUwMTI0XHUwMDkzXDJc dTA4YWMiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTA4YjBcNw0KPiBcMlwyXHUwOGFk XHUwOGFmXDVcdTAxMDBcdTAwODFcMlx1MDhhZVx1MDhhZCIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0 ZSgiXDNcMlwyXDJcdTA4YWZcdTA4YjJcM1wyXDJcMlx1MDhiMFx1MDhhZVwzXDJcMlwyXHUwOGIw IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA4YjFcM1wyXDJcMlx1MDhiMVx1MDhiM1wzXDJc MlwyXHUwOGIyXHUwOGIwXDNcMlwyXDIiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTA4 YjNcdTA4YjRcN3NcMlwyXHUwOGI0XHUwOGI1XDcNCj4gXDJcMlx1MDhiNVx1MDEwYlwzXDIiKQ0K PiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJcdTA4YjZcdTA4YzNcN0tcMlwyXHUwOGI3XHUwOGI4 XDdAXDJcMlx1MDhiOFx1MDhiOSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDdcYlwyXDJcdTA4 YjlcdTA4YmVcNVx1MDA5ZVBcMlx1MDhiYVx1MDhiYlw3KFwyXDJcdTA4YmIiKQ0KPiANCj4gLQ0K PiBidWYud3JpdGUoIlx1MDhiZFw1XHUwMDllUFwyXHUwOGJjXHUwOGJhXDNcMlwyXDJcdTA4YmRc dTA4YzBcM1wyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlwyXHUwOGJlXHUwOGJjXDNcMlwy XDJcdTA4YmVcdTA4YmZcM1wyXDJcMlx1MDhiZlx1MDhjMSIpDQo+IA0KPiAtICAgICAgICBidWYu d3JpdGUoIlwzXDJcMlwyXHUwOGMwXHUwOGJlXDNcMlwyXDJcdTA4YzFcdTA4YzJcNyFcMlwyXHUw OGMyIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwOGM0XDNcMlwyXDJcdTA4YzNcdTA4 YjdcM1wyXDJcMlx1MDhjM1x1MDhjNFwzXDJcMlwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJc dTA4YzRcdTA4YzVcM1wyXDJcMlx1MDhjNVx1MDhjNlw1XHUwMTI0XHUwMDkzXDJcdTA4YzYiKQ0K PiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTA4Y2FcNyBcMlwyXHUwOGM3XHUwOGM5XDVcdTAx MDBcdTAwODFcMlx1MDhjOFx1MDhjNyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwzXDJc MlwyXHUwOGM5XHUwOGNjXDNcMlwyXDJcdTA4Y2FcdTA4YzhcM1wyXDJcMlx1MDhjYSIpDQo+IA0K PiAtICAgICAgICBidWYud3JpdGUoIlx1MDhjYlwzXDJcMlwyXHUwOGNiXHUwOGNkXDNcMlwyXDJc dTA4Y2NcdTA4Y2FcM1wyXDJcMiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDhjZFx1 MDhjZVw3c1wyXDJcdTA4Y2VcdTA4Y2ZcNyBcMlwyXHUwOGNmXHUwMTBkXDNcMiIpDQo+IA0KPiAt DQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDhkMFx1MDhkMVw3cFwyXDJcdTA4ZDFcdTA4ZDJcN1w2Mlwy XDJcdTA4ZDJcdTA4ZDMiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcN1xiXDJcMlx1MDhk M1x1MDhkNFw3XHUwMGVjXDJcMlx1MDhkNFx1MDhkNVw3XDMwXDJcMiIpDQo+IA0KPiAtDQo+IGJ1 Zi53cml0ZSgiXHUwOGQ1XHUwOGQ2XDdcdTAwZmFcMlwyXHUwOGQ2XHUwOGQ3XDdcMzFcMlwyXHUw OGQ3XHUwOGU0IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcNyFcMlwyXHUwOGQ4XHUwOGQ5XDdA XDJcMlx1MDhkOVx1MDhkYVw3XGJcMlwyXHUwOGRhXHUwOGRmDQo+ICIpDQo+IA0KPiAtDQo+IGJ1 Zi53cml0ZSgiXDVcdTAwOWVQXDJcdTA4ZGJcdTA4ZGNcNyhcMlwyXHUwOGRjXHUwOGRlXDVcdTAw OWVQXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDhkZFx1MDhkYlwzXDJcMlwyXHUwOGRl XHUwOGUxXDNcMlwyXDJcdTA4ZGZcdTA4ZGRcMyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJc MlwyXHUwOGRmXHUwOGUwXDNcMlwyXDJcdTA4ZTBcdTA4ZTJcM1wyXDJcMlx1MDhlMVx1MDhkZiIp DQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwyXHUwOGUyXHUwOGUzXDchXDJcMlx1 MDhlM1x1MDhlNVwzXDJcMlwyXHUwOGU0IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA4ZDhc M1wyXDJcMlx1MDhlNFx1MDhlNVwzXDJcMlwyXHUwOGU1XHUwOGU2XDNcMlwyXDIiKQ0KPiANCj4g LQ0KPiBidWYud3JpdGUoIlx1MDhlNlx1MDhlN1w1XHUwMTI0XHUwMDkzXDJcdTA4ZTdcdTA4ZThc N3NcMlwyXHUwOGU4IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwOGU5XDcgXDJcMlx1 MDhlOVx1MDEwZlwzXDJcMlwyXHUwOGVhXHUwOGVlXDVcdTAxMTIiKQ0KPiANCj4gLQ0KPiBidWYu d3JpdGUoIlx1MDA4YVwyXHUwOGViXHUwOGVlXDVcdTAxMTRcdTAwOGJcMlx1MDhlY1x1MDhlZVw1 XHUwMTE2IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAwOGNcMlx1MDhlZFx1MDhlYVwzXDJc MlwyXHUwOGVkXHUwOGViXDNcMlwyXDJcdTA4ZWQiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRl KCJcdTA4ZWNcM1wyXDJcMlx1MDhlZVx1MDExMVwzXDJcMlwyXHUwOGVmXHUwOGYwXDdtXDJcMiIp DQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwOGYwXHUwOGYxXDdcdTAwOTZcMlwyXHUwOGYxXHUw OGYyXDdcYlwyXDJcdTA4ZjJcdTA4ZjMiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcN1x1 MDBmYVwyXDJcdTA4ZjNcdTA4ZjRcNyFcMlwyXHUwOGY0XHUwOGY1XDd0XDJcMlx1MDhmNSIpDQo+ IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDhmNlw3XGJcMlwyXHUwOGY2XHUwOGY3XDdcdTAw ZmFcMlwyXHUwOGY3XHUwOGY4XDcgIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlwyXHUwOGY4 XHUwMTEzXDNcMlwyXDJcdTA4ZjlcdTA4ZmFcN05cMlwyXHUwOGZhXHUwOGZiIikNCj4gDQo+IC0N Cj4gYnVmLndyaXRlKCJcNz1cMlwyXHUwOGZiXHUwOGZjXDdcYlwyXDJcdTA4ZmNcdTA4ZmRcN1x1 MDBlY1wyXDJcdTA4ZmQiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTA4ZmVcN1wzMFwy XDJcdTA4ZmVcdTA4ZmZcN1x1MDBmYVwyXDJcdTA4ZmZcdTA5MDBcNyIpDQo+IA0KPiAtDQo+IGJ1 Zi53cml0ZSgiXDMxXDJcMlx1MDkwMFx1MDkwMVw3IVwyXDJcdTA5MDFcdTA5MDJcNz5cMlwyXHUw OTAyXHUwOTAzIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDdcYlwyXDJcdTA5MDNcdTA5 MDRcN1x1MDBlY1wyXDJcdTA5MDRcdTA5MDVcN1wzMFwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3Jp dGUoIlx1MDkwNVx1MDkwNlw3XHUwMGZhXDJcMlx1MDkwNlx1MDkwN1w3XDMxXDJcMlx1MDkwN1x1 MDkwZSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDchXDJcMlx1MDkwOFx1MDkwOVw3PlwyXDJc dTA5MDlcdTA5MGFcN1xiXDJcMlx1MDkwYVx1MDkwYiINCj4gKQ0KPiANCj4gLSAgICAgICAgYnVm LndyaXRlKCJcN1x1MDBlY1wyXDJcdTA5MGJcdTA5MGNcN1wzMFwyXDJcdTA5MGNcdTA5MGRcN1x1 MDBmYSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDkwZFx1MDkwZlw3XDMxXDJcMlx1 MDkwZVx1MDkwOFwzXDJcMlwyXHUwOTBlXHUwOTBmIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0 ZSgiXDNcMlwyXDJcdTA5MGZcdTA5MTBcM1wyXDJcMlx1MDkxMFx1MDkxMVw3IFwyXDJcdTA5MTEi KQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDExNVwzXDJcMlwyXHUwOTEyXHUwOTEzXHRcYlwy XDJcdTA5MTNcdTA5MTRcN1x1MDA4NyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDkx NFx1MDkxNVw3IVwyXDJcdTA5MTVcdTA5MTZcNy9cMlwyXHUwOTE2XHUwOTE3IikNCj4gDQo+IC0N Cj4gYnVmLndyaXRlKCJcN1xiXDJcMlx1MDkxN1x1MDkxOFw3XHUwMGZhXDJcMlx1MDkxOFx1MDkx OVw3IVwyXDJcdTA5MTkiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDkxYVw3XDYyXDJcMlx1 MDkxYVx1MDkxYlw3XGJcMlwyXHUwOTFiXHUwOTFjXDdcdTAwZWMiKQ0KPiANCj4gLQ0KPiBidWYu d3JpdGUoIlwyXDJcdTA5MWNcdTA5MWRcN1wzMFwyXDJcdTA5MWRcdTA5MWVcN1x1MDBmYVwyXDJc dTA5MWUiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTA5MWZcN1wzMVwyXDJcdTA5MWZc dTA5MjBcNyFcMlwyXHUwOTIwXHUwOTIxXDc9XDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgi XHUwOTIxXHUwOTIyXDdcYlwyXDJcdTA5MjJcdTA5MjNcN1x1MDBlY1wyXDJcdTA5MjNcdTA5MjQi KQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlw3XDMwXDJcMlx1MDkyNFx1MDkyNVw3XHUwMGZhXDJc Mlx1MDkyNVx1MDkzMVw3XDMxXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwOTI2XHUw OTI3XDchXDJcMlx1MDkyN1x1MDkyOFw3QFwyXDJcdTA5MjhcdTA5MjlcN1xiIikNCj4gDQo+IC0N Cj4gYnVmLndyaXRlKCJcMlwyXHUwOTI5XHUwOTJlXDVcdTAwOWVQXDJcdTA5MmFcdTA5MmJcNyhc MlwyXHUwOTJiXHUwOTJkDQo+ICIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDVcdTAwOWVQXDJc dTA5MmNcdTA5MmFcM1wyXDJcMlx1MDkyZFx1MDkzMFwzXDJcMlwyXHUwOTJlIikNCj4gDQo+IC0g ICAgICAgIGJ1Zi53cml0ZSgiXHUwOTJjXDNcMlwyXDJcdTA5MmVcdTA5MmZcM1wyXDJcMlx1MDky Zlx1MDkzMlwzXDJcMlwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA5MzBcdTA5MmVcM1wy XDJcMlx1MDkzMVx1MDkyNlwzXDJcMlwyXHUwOTMxXHUwOTMyXDMiKQ0KPiANCj4gLQ0KPiBidWYu d3JpdGUoIlwyXDJcMlx1MDkzMlx1MDkzN1wzXDJcMlwyXHUwOTMzXHUwOTM0XDchXDJcMlx1MDkz NFx1MDkzNSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDd0XDJcMlx1MDkzNVx1MDkzNlw3XGJc MlwyXHUwOTM2XHUwOTM4XDdcdTAwZmFcMlwyXHUwOTM3IikNCj4gDQo+IC0NCj4gYnVmLndyaXRl KCJcdTA5MzNcM1wyXDJcMlx1MDkzN1x1MDkzOFwzXDJcMlwyXHUwOTM4XHUwOTM5XDNcMlwyXDIi KQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTA5MzlcdTA5M2FcNyBcMlwyXHUwOTNhXHUw MTE3XDNcMlwyXDJcdTA5M2JcdTA5M2NcNyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIkxc MlwyXHUwOTNjXHUwOTNkXDdcdTAwZmFcMlwyXHUwOTNkXHUwOTNlXDcgXDJcMlx1MDkzZSIpDQo+ IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDExOVwzXDJcMlwyXHUwOTNmXHUwOTQxXDdcdTAw ODhcMlwyXHUwOTQwXHUwOTQyXDchIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlwyXHUwOTQx XHUwOTQwXDNcMlwyXDJcdTA5NDFcdTA5NDJcM1wyXDJcMlx1MDk0Mlx1MDk0MyIpDQo+IA0KPiAt ICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwyXHUwOTQzXHUwOTQ0XDcuXDJcMlx1MDk0NFx1MDk0 NVw3XGJcMlwyXHUwOTQ1IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwOTQ2XDdcdTAw ZWNcMlwyXHUwOTQ2XHUwOTQ3XDdcMzBcMlwyXHUwOTQ3XHUwOTQ4XDciKQ0KPiANCj4gLQ0KPiBi dWYud3JpdGUoIlx1MDBmYVwyXDJcdTA5NDhcdTA5NDlcN1wzMVwyXDJcdTA5NDlcdTA5NTRcNyFc MlwyXHUwOTRhIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA5NGJcN1x1MDA4ZFwyXDJcdTA5 NGJcdTA5NGNcN1x1MDBmYVwyXDJcdTA5NGNcdTA5NGQiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUo Ilw3IVwyXDJcdTA5NGRcdTA5NGVcN1x1MDA4OVwyXDJcdTA5NGVcdTA5NGZcdFx0XDJcMlx1MDk0 ZiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDk1NVw3DQo+IFwyXDJcdTA5NTBcdTA5 NTFcN01cMlwyXHUwOTUxXHUwOTUyXDdcYlwyXDJcdTA5NTIiKQ0KPiANCj4gLSAgICAgICAgYnVm LndyaXRlKCJcdTA5NTNcN1x1MDBmYVwyXDJcdTA5NTNcdTA5NTVcNyBcMlwyXHUwOTU0XHUwOTRh XDNcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDk1NFx1MDk1MFwzXDJcMlwyXHUw OTU1XHUwMTFiXDNcMlwyXDJcdTA5NTZcdTA5NTciKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlw3 XHUwMGE3XDJcMlx1MDk1N1x1MDk1OFw3W1wyXDJcdTA5NThcdTA5NTlcN1xiXDJcMlx1MDk1OSIp DQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwOWExXDVMXCdcMlx1MDk1YVx1MDk1Ylw3IVwyXDJc dTA5NWJcdTA5NWNcN1x1MDBhOVwyIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDJcdTA5 NWNcdTA5OTlcN1xiXDJcMlx1MDk1ZFx1MDk2MVw3U1wyXDJcdTA5NWVcdTA5NWYiKQ0KPiANCj4g LSAgICAgICAgYnVmLndyaXRlKCJcN1wzMlwyXDJcdTA5NWZcdTA5NjBcN1x1MDBmYVwyXDJcdTA5 NjBcdTA5NjJcN1wzM1wyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDk2MVx1MDk1ZVwz XDJcMlwyXHUwOTYxXHUwOTYyXDNcMlwyXDJcdTA5NjJcdTA5OWFcMyIpDQo+IA0KPiAtDQo+IGJ1 Zi53cml0ZSgiXDJcMlwyXHUwOTYzXHUwOTY3XDdUXDJcMlx1MDk2NFx1MDk2NVw3XDMyXDJcMlx1 MDk2NVx1MDk2NiINCj4gKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcN1x1MDBmYVwyXDJc dTA5NjZcdTA5NjhcN1wzM1wyXDJcdTA5NjdcdTA5NjRcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1 Zi53cml0ZSgiXHUwOTY3XHUwOTY4XDNcMlwyXDJcdTA5NjhcdTA5OWFcM1wyXDJcMlx1MDk2OVx1 MDk2ZFw3IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJVXDJcMlx1MDk2YVx1MDk2Ylw3XDMyXDJc Mlx1MDk2Ylx1MDk2Y1w3XHUwMGZhXDJcMlx1MDk2YyIpDQo+IA0KPiAtICAgICAgICBidWYud3Jp dGUoIlx1MDk2ZVw3XDMzXDJcMlx1MDk2ZFx1MDk2YVwzXDJcMlwyXHUwOTZkXHUwOTZlXDNcMlwy IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDJcdTA5NmVcdTA5OWFcM1wyXDJcMlx1MDk2 Zlx1MDk3M1w3VlwyXDJcdTA5NzBcdTA5NzEiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlw3XDMy XDJcMlx1MDk3MVx1MDk3Mlw3XHUwMGZhXDJcMlx1MDk3Mlx1MDk3NFw3XDMzXDJcMiIpDQo+IA0K PiAtDQo+IGJ1Zi53cml0ZSgiXHUwOTczXHUwOTcwXDNcMlwyXDJcdTA5NzNcdTA5NzRcM1wyXDJc Mlx1MDk3NFx1MDk5YVwzIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlwyXDJcdTA5NzVcdTA5 NzlcN1JcMlwyXHUwOTc2XHUwOTc3XDdcMzJcMlwyXHUwOTc3XHUwOTc4Ig0KPiApDQo+IA0KPiAt ICAgICAgICBidWYud3JpdGUoIlw3XHUwMGZhXDJcMlx1MDk3OFx1MDk3YVw3XDMzXDJcMlx1MDk3 OVx1MDk3NlwzXDJcMlwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA5NzlcdTA5N2FcM1wy XDJcMlx1MDk3YVx1MDk5YVwzXDJcMlwyXHUwOTdiXHUwOTdmXDciKQ0KPiANCj4gLQ0KPiBidWYu d3JpdGUoIldcMlwyXHUwOTdjXHUwOTdkXDdcMzJcMlwyXHUwOTdkXHUwOTdlXDdcdTAwZmFcMlwy XHUwOTdlIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwOTgwXDdcMzNcMlwyXHUwOTdm XHUwOTdjXDNcMlwyXDJcdTA5N2ZcdTA5ODBcM1wyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUo IlwyXHUwOTgwXHUwOTlhXDNcMlwyXDJcdTA5ODFcdTA5ODVcN1hcMlwyXHUwOTgyXHUwOTgzIikN Cj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcN1wzMlwyXDJcdTA5ODNcdTA5ODRcN1x1MDBmYVwyXDJc dTA5ODRcdTA5ODZcN1wzM1wyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDk4NVx1MDk4 MlwzXDJcMlwyXHUwOTg1XHUwOTg2XDNcMlwyXDJcdTA5ODZcdTA5OWFcMyIpDQo+IA0KPiAtDQo+ IGJ1Zi53cml0ZSgiXDJcMlwyXHUwOTg3XHUwOThiXDdZXDJcMlx1MDk4OFx1MDk4OVw3XDMyXDJc Mlx1MDk4OVx1MDk4YSINCj4gKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcN1x1MDBmYVwy XDJcdTA5OGFcdTA5OGNcN1wzM1wyXDJcdTA5OGJcdTA5ODhcM1wyXDJcMiIpDQo+IA0KPiAtDQo+ IGJ1Zi53cml0ZSgiXHUwOThiXHUwOThjXDNcMlwyXDJcdTA5OGNcdTA5OWFcM1wyXDJcMlx1MDk4 ZFx1MDk5MVw3IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJaXDJcMlx1MDk4ZVx1MDk4Zlw3XDMy XDJcMlx1MDk4Zlx1MDk5MFw3XHUwMGZhXDJcMlx1MDk5MCIpDQo+IA0KPiAtICAgICAgICBidWYu d3JpdGUoIlx1MDk5Mlw3XDMzXDJcMlx1MDk5MVx1MDk4ZVwzXDJcMlwyXHUwOTkxXHUwOTkyXDNc MlwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlx1MDk5Mlx1MDk5YVwzXDJcMlwyXHUwOTkz XHUwOTk3XDdcdTAwZmJcMlwyXHUwOTk0XHUwOTk1Ig0KPiApDQo+IA0KPiAtDQo+IGJ1Zi53cml0 ZSgiXDdcMzJcMlwyXHUwOTk1XHUwOTk2XDdcdTAwZmFcMlwyXHUwOTk2XHUwOTk4XDdcMzNcMlwy IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA5OTdcdTA5OTRcM1wyXDJcMlx1MDk5N1x1MDk5 OFwzXDJcMlwyXHUwOTk4XHUwOTlhXDMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJcMlx1 MDk5OVx1MDk1ZFwzXDJcMlwyXHUwOTk5XHUwOTYzXDNcMlwyXDJcdTA5OTlcdTA5NjkiDQo+ICkN Cj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA5OTlcdTA5NmZcM1wyXDJcMlx1 MDk5OVx1MDk3NVwzXDJcMlwyXHUwOTk5IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA5N2Jc M1wyXDJcMlx1MDk5OVx1MDk4MVwzXDJcMlwyXHUwOTk5XHUwOTg3XDNcMlwyXDIiKQ0KPiANCj4g LQ0KPiBidWYud3JpdGUoIlx1MDk5OVx1MDk4ZFwzXDJcMlwyXHUwOTk5XHUwOTkzXDNcMlwyXDJc dTA5OWFcdTA5OWVcMyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwOTliXHUwOTlk XDVcdTAxMWVcdTAwOTBcMlx1MDk5Y1x1MDk5YlwzXDJcMlwyIikNCj4gDQo+IC0NCj4gYnVmLndy aXRlKCJcdTA5OWRcdTA5YTBcM1wyXDJcMlx1MDk5ZVx1MDk5Y1wzXDJcMlwyXHUwOTllXHUwOTlm XDMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJcMlx1MDk5Zlx1MDlhMlwzXDJcMlwyXHUw OWEwXHUwOTllXDNcMlwyXDJcdTA5YTFcdTA5NWEiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwz XDJcMlwyXHUwOWExXHUwOWEyXDNcMlwyXDJcdTA5YTJcdTA5YWJcM1wyXDJcMlx1MDlhMyIpDQo+ IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDlhN1w3IVwyXDJcdTA5YTRcdTA5YTZcNVx1MDEx Y1x1MDA4ZlwyXHUwOWE1XHUwOWE0IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1 MDlhNlx1MDlhOVwzXDJcMlwyXHUwOWE3XHUwOWE1XDNcMlwyXDJcdTA5YTciKQ0KPiANCj4gLQ0K PiBidWYud3JpdGUoIlx1MDlhOFwzXDJcMlwyXHUwOWE4XHUwOWFhXDNcMlwyXDJcdTA5YTlcdTA5 YTdcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwOWFhXHUwOWFjXDdcdTAwYThc MlwyXHUwOWFiXHUwOWEzXDNcMlwyXDJcdTA5YWJcdTA5YWMiKQ0KPiANCj4gLSAgICAgICAgYnVm LndyaXRlKCJcM1wyXDJcMlx1MDlhY1x1MDlhZFwzXDJcMlwyXHUwOWFkXHUwOWFlXDcgXDJcMlx1 MDlhZSIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDExZFwzXDJcMlwyXHUwOWFmXHUw OWIwXDchXDJcMlx1MDliMFx1MDliNFw3XHUwMGFhIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJc MlwyXHUwOWIxXHUwOWIyXDdcMzJcMlwyXHUwOWIyXHUwOWIzXDdcdTAwZmFcMlwyXHUwOWIzIikN Cj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwOWI1XDdcMzNcMlwyXHUwOWI0XHUwOWIxXDNc MlwyXDJcdTA5YjRcdTA5YjVcM1wyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXHUwOWI1 XHUwOWJhXDNcMlwyXDJcdTA5YjZcdTA5YjdcN1wzNFwyXDJcdTA5YjdcdTA5YjkiKQ0KPiANCj4g LQ0KPiBidWYud3JpdGUoIlw1XHUwMTVjXHUwMGFmXDJcdTA5YjhcdTA5YjZcM1wyXDJcMlx1MDli OVx1MDliY1wzXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcdTA5YmFcdTA5YjhcM1wy XDJcMlx1MDliYVx1MDliYlwzXDJcMlwyXHUwOWJiXHUwOWJkIikNCj4gDQo+IC0NCj4gYnVmLndy aXRlKCJcM1wyXDJcMlx1MDliY1x1MDliYVwzXDJcMlwyXHUwOWJkXHUwOWJlXDdcYlwyXDJcdTA5 YmUiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDliZlw3XHUwMGZhXDJcMlx1MDliZlx1MDEx ZlwzXDJcMlwyXHUwOWMwXHUwOWMxXDVcdTAxMjIiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRl KCJcdTAwOTJcMlx1MDljMVx1MDljMlw3IFwyXDJcdTA5YzJcdTAxMjFcM1wyXDJcMlx1MDljMyIp DQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwOWM0XDdcdTAwYWJcMlwyXHUwOWM0XHUwMTIzXDNc MlwyXDJcdTA5YzVcdTA5Y2FcNVx1MDEyOCINCj4gKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1 MDA5NVwyXHUwOWM2XHUwOWM3XDdcdTAwZGNcMlwyXHUwOWM3XHUwOWM5XDVcdTAxMjhcdTAwOTUi DQo+ICkNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDJcdTA5YzhcdTA5YzZcM1wyXDJcMlx1 MDljOVx1MDljY1wzXDJcMlwyXHUwOWNhXHUwOWM4IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0 ZSgiXDNcMlwyXDJcdTA5Y2FcdTA5Y2JcM1wyXDJcMlx1MDljYlx1MDEyNVwzXDJcMlwyXHUwOWNj IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA5Y2FcM1wyXDJcMlx1MDljZFx1MDlkMlw1XHUw MTI4XHUwMDk1XDJcdTA5Y2VcdTA5Y2YiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlw3XHUwMGRj XDJcMlx1MDljZlx1MDlkMVw1XHUwMTI4XHUwMDk1XDJcdTA5ZDBcdTA5Y2VcMyIpDQo+IA0KPiAt DQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwOWQxXHUwOWQ0XDNcMlwyXDJcdTA5ZDJcdTA5ZDBcM1wy XDJcMlx1MDlkMlx1MDlkMyINCj4gKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUw OWQzXHUwMTI3XDNcMlwyXDJcdTA5ZDRcdTA5ZDJcM1wyXDJcMlx1MDlkNSIpDQo+IA0KPiAtDQo+ IGJ1Zi53cml0ZSgiXHUwOWRhXDVcdTAxMmFcdTAwOTZcMlx1MDlkNlx1MDlkN1w3XHUwMGRiXDJc Mlx1MDlkN1x1MDlkDQo+IDkiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlw1XHUwMTJhXHUwMDk2 XDJcdTA5ZDhcdTA5ZDZcM1wyXDJcMlx1MDlkOVx1MDlkY1wzXDJcMiIpDQo+IA0KPiAtDQo+IGJ1 Zi53cml0ZSgiXDJcdTA5ZGFcdTA5ZDhcM1wyXDJcMlx1MDlkYVx1MDlkYlwzXDJcMlwyXHUwOWRi XHUwMTI5IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1MDlkY1x1MDlkYVwzXDJc MlwyXHUwOWRkXHUwOWUyXDVcdTAxMmNcdTAwOTciKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwy XHUwOWRlXHUwOWRmXDcoXDJcMlx1MDlkZlx1MDllMVw1XHUwMTJjXHUwMDk3XDJcdTA5ZTAiKQ0K PiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDlkZVwzXDJcMlwyXHUwOWUxXHUwOWU0XDNcMlwyXDJc dTA5ZTJcdTA5ZTBcM1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwOWUyXHUwOWUz XDNcMlwyXDJcdTA5ZTNcdTAxMmJcM1wyXDJcMlx1MDllNFx1MDllMlwzIikNCj4gDQo+IC0gICAg ICAgIGJ1Zi53cml0ZSgiXDJcMlwyXHUwOWU1XHUwOWVhXDVcdTAxMmVcdTAwOThcMlx1MDllNlx1 MDllN1w3KVwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDllN1x1MDllOVw1XHUwMTJl XHUwMDk4XDJcdTA5ZThcdTA5ZTZcM1wyXDJcMlx1MDllOSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0 ZSgiXHUwOWVjXDNcMlwyXDJcdTA5ZWFcdTA5ZThcM1wyXDJcMlx1MDllYVx1MDllYlwzXDJcMlwy IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA5ZWJcdTAxMmRcM1wyXDJcMlx1MDllY1x1MDll YVwzXDJcMlwyXHUwOWVkXHUwOWYxXDUiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDEzMlx1 MDA5YVwyXHUwOWVlXHUwOWYwXDVcdTAxMzBcdTAwOTlcMlx1MDllZlx1MDllZSIpDQo+IA0KPiAt ICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwyXHUwOWYwXHUwOWYzXDNcMlwyXDJcdTA5ZjFcdTA5 ZWZcM1wyXDJcMlx1MDlmMSIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDlmMlwzXDJc MlwyXHUwOWYyXHUwMTJmXDNcMlwyXDJcdTA5ZjNcdTA5ZjFcM1wyXDJcMiIpDQo+IA0KPiAtICAg ICAgICBidWYud3JpdGUoIlx1MDlmNFx1MDlmNVw3XCJcMlwyXHUwOWY1XHUwOWY5XDVcdTAxMzJc dTAwOWFcMlx1MDlmNiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDlmN1w3I1wyXDJc dTA5ZjdcdTA5ZjlcNVx1MDEzMlx1MDA5YVwyXHUwOWY4XHUwOWY0IikNCj4gDQo+IC0gICAgICAg IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA5ZjhcdTA5ZjZcM1wyXDJcMlx1MDlmOVx1MDEzMVwzXDJc MlwyXHUwOWZhIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA5ZmVcNVx1MDEzNlx1MDA5Y1wy XHUwOWZiXHUwOWZkXDVcdTAxMzRcdTAwOWJcMlx1MDlmYyIpDQo+IA0KPiAtICAgICAgICBidWYu d3JpdGUoIlx1MDlmYlwzXDJcMlwyXHUwOWZkXHUwYTAwXDNcMlwyXDJcdTA5ZmVcdTA5ZmNcM1wy XDJcMiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDlmZVx1MDlmZlwzXDJcMlwyXHUw OWZmXHUwMTMzXDNcMlwyXDJcdTBhMDBcdTA5ZmVcMyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgi XDJcMlwyXHUwYTAxXHUwYTAyXDclXDJcMlx1MGEwMlx1MGEwYVw1XHUwMTM2XHUwMDljXDIiKQ0K PiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MGEwM1x1MGEwNFw3JFwyXDJcdTBhMDRcdTBhMGFcNVx1 MDEzNlx1MDA5Y1wyXHUwYTA1IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTBhMDZcN1wnXDJc Mlx1MGEwNlx1MGEwYVw1XHUwMTM2XHUwMDljXDJcdTBhMDdcdTBhMDgiKQ0KPiANCj4gLQ0KPiBi dWYud3JpdGUoIlw3JlwyXDJcdTBhMDhcdTBhMGFcNVx1MDEzNlx1MDA5Y1wyXHUwYTA5XHUwYTAx XDNcMlwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlx1MGEwOVx1MGEwM1wzXDJcMlwyXHUw YTA5XHUwYTA1XDNcMlwyXDJcdTBhMDlcdTBhMDciKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwz XDJcMlwyXHUwYTBhXHUwMTM1XDNcMlwyXDJcdTBhMGJcdTBhMGZcNVx1MDEzYVx1MDA5ZSIpDQo+ IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcdTBhMGNcdTBhMGVcNVx1MDEzOFx1MDA5ZFwyXHUwYTBk XHUwYTBjXDNcMlwyXDJcdTBhMGUiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTBhMTFc M1wyXDJcMlx1MGEwZlx1MGEwZFwzXDJcMlwyXHUwYTBmXHUwYTEwXDNcMlwyXDIiKQ0KPiANCj4g LQ0KPiBidWYud3JpdGUoIlx1MGExMFx1MDEzN1wzXDJcMlwyXHUwYTExXHUwYTBmXDNcMlwyXDJc dTBhMTJcdTBhMTNcNyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXGZcMlwyXHUwYTEzXHUwYTE3 XDVcdTAxM2FcdTAwOWVcMlx1MGExNFx1MGExNVw3XHJcMlwyIikNCj4gDQo+IC0NCj4gYnVmLndy aXRlKCJcdTBhMTVcdTBhMTdcNVx1MDEzYVx1MDA5ZVwyXHUwYTE2XHUwYTEyXDNcMlwyXDJcdTBh MTYiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MGExNFwzXDJcMlwyXHUwYTE3XHUwMTM5XDNc MlwyXDJcdTBhMThcdTBhMWNcNVx1MDEzZSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwMGEw XDJcdTBhMTlcdTBhMWJcNVx1MDEzY1x1MDA5ZlwyXHUwYTFhXHUwYTE5XDNcMlwyIikNCj4gDQo+ IC0NCj4gYnVmLndyaXRlKCJcMlx1MGExYlx1MGExZVwzXDJcMlwyXHUwYTFjXHUwYTFhXDNcMlwy XDJcdTBhMWNcdTBhMWQiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1MGEx ZFx1MDEzYlwzXDJcMlwyXHUwYTFlXHUwYTFjXDNcMlwyXDJcdTBhMWYiKQ0KPiANCj4gLQ0KPiBi dWYud3JpdGUoIlx1MGEyMFw3XDE2XDJcMlx1MGEyMFx1MGEyNFw1XHUwMTNlXHUwMGEwXDJcdTBh MjFcdTBhMjIiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcN1wzNVwyXDJcdTBhMjJcdTBh MjRcNVx1MDEzZVx1MDBhMFwyXHUwYTIzXHUwYTFmXDNcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0 ZSgiXDJcMlx1MGEyM1x1MGEyMVwzXDJcMlwyXHUwYTI0XHUwMTNkXDNcMlwyXDJcdTBhMjVcdTBh MjkiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlw1XHUwMTQyXHUwMGEyXDJcdTBhMjZcdTBhMjhc NVx1MDE0MFx1MDBhMVwyXHUwYTI3XHUwYTI2IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1wy XDJcMlx1MGEyOFx1MGEyYlwzXDJcMlwyXHUwYTI5XHUwYTI3XDNcMlwyXDJcdTBhMjkiKQ0KPiAN Cj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTBhMmFcM1wyXDJcMlx1MGEyYVx1MDEzZlwzXDJcMlwy XHUwYTJiXHUwYTI5XDNcMlwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MGEyY1x1MGEy ZFw3XDE3XDJcMlx1MGEyZFx1MGEzM1w1XHUwMTQyXHUwMGEyXDJcdTBhMmUiKQ0KPiANCj4gLQ0K PiBidWYud3JpdGUoIlx1MGEyZlw3XDM3XDJcMlx1MGEyZlx1MGEzM1w1XHUwMTQyXHUwMGEyXDJc dTBhMzBcdTBhMzEiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcN1wyMFwyXDJcdTBhMzFc dTBhMzNcNVx1MDE0Mlx1MDBhMlwyXHUwYTMyXHUwYTJjXDNcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53 cml0ZSgiXDJcMlx1MGEzMlx1MGEyZVwzXDJcMlwyXHUwYTMyXHUwYTMwXDNcMlwyXDJcdTBhMzNc dTAxNDEiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwYTM0XHUwYTM1XDdcMzBc MlwyXHUwYTM1XHUwYTM2XHRcblwyXDJcdTBhMzYiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRl KCJcdTBhMzhcN1wzMVwyXDJcdTBhMzdcdTBhMzRcM1wyXDJcMlx1MGEzOFx1MGEzYlwzXDJcMiIp DQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcdTBhMzlcdTBhMzdcM1wyXDJcMlx1MGEzOVx1MGEz YVwzXDJcMlwyXHUwYTNhXHUwYTNjIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1 MGEzYlx1MGEzOVwzXDJcMlwyXHUwYTNjXHUwYTNkXDVcdTAxNDRcdTAwYTMiKQ0KPiANCj4gLQ0K PiBidWYud3JpdGUoIlwyXHUwYTNkXHUwMTQzXDNcMlwyXDJcdTBhM2VcdTBhNGJcNVx1MDE0Nlx1 MDBhNFwyXHUwYTNmIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTBhNGJcNVx1MDE0OFx1MDBh NVwyXHUwYTQwXHUwYTRiXDVcdTAxNGFcdTAwYTZcMlx1MGE0MSIpDQo+IA0KPiAtDQo+IGJ1Zi53 cml0ZSgiXHUwYTRiXDVcdTAxNGNcdTAwYTdcMlx1MGE0Mlx1MGE0Ylw1XHUwMTRlXHUwMGE4XDJc dTBhNDMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MGE0Ylw1XHUwMTZjXHUwMGI3XDJcdTBh NDRcdTBhNGJcNVx1MDE2ZVx1MDBiOFwyXHUwYTQ1IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJc dTBhNGJcNVx1MDE4NFx1MDBjM1wyXHUwYTQ2XHUwYTRiXDVcdTAxOTRcdTAwY2JcMlx1MGE0NyIp DQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwYTQ4XDdcdTAwZGRcMlwyXHUwYTQ4XHUwYTRiXDVc dTAxNDRcdTAwYTNcMlx1MGE0OVx1MGE0DQo+IGIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlw1 XHUwMTRhXHUwMGE2XDJcdTBhNGFcdTBhM2VcM1wyXDJcMlx1MGE0YVx1MGEzZlwzXDJcMiIpDQo+ IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcdTBhNGFcdTBhNDBcM1wyXDJcMlx1MGE0YVx1MGE0MVwz XDJcMlwyXHUwYTRhXHUwYTQyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1MGE0 YVx1MGE0M1wzXDJcMlwyXHUwYTRhXHUwYTQ0XDNcMlwyXDJcdTBhNGEiKQ0KPiANCj4gLQ0KPiBi dWYud3JpdGUoIlx1MGE0NVwzXDJcMlwyXHUwYTRhXHUwYTQ2XDNcMlwyXDJcdTBhNGFcdTBhNDdc M1wyXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwYTRhXHUwYTQ5XDNcMlwyXDJcdTBh NGJcdTAxNDVcM1wyXDJcMlx1MGE0Y1x1MGE0ZFw3IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJc dTAwZTdcMlwyXHUwYTRkXHUwYTRlXDdcMzBcMlwyXHUwYTRlXHUwYTRmXDVcdTAxMjZcdTAwOTQi KQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXHUwYTRmXHUwYTUwXDchXDJcMlx1MGE1MFx1MGE1 MVw1XHUwMTI2XHUwMDk0XDJcdTBhNTEiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MGE1Mlw3 XDMxXDJcMlx1MGE1Mlx1MDE0N1wzXDJcMlwyXHUwYTUzXHUwYTU0XDdcdTAwZTUiKQ0KPiANCj4g LQ0KPiBidWYud3JpdGUoIlwyXDJcdTBhNTRcdTBhNTVcN1wzMFwyXDJcdTBhNTVcdTBhNTZcNVx1 MDEyNlx1MDA5NFwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTBhNTZcdTBhNTdcNyFcMlwy XHUwYTU3XHUwYTU4XDVcdTAxMjZcdTAwOTRcMlx1MGE1OCIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0 ZSgiXHUwYTU5XDdcMzFcMlwyXHUwYTU5XHUwMTQ5XDNcMlwyXDJcdTBhNWFcdTBhNWJcN1x1MDBl NiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwyXDJcdTBhNWJcdTBhNWNcN1wzMFwyXDJc dTBhNWNcdTBhNWRcNVx1MDEyNlx1MDA5NFwyIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgi XHUwYTVkXHUwYTVlXDchXDJcMlx1MGE1ZVx1MGE1Zlw1XHUwMTI2XHUwMDk0XDJcdTBhNWYiKQ0K PiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTBhNjBcNyFcMlwyXHUwYTYwXHUwYTYxXDVMXCdc Mlx1MGE2MVx1MGE2Mlw3XDMxXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwYTYyXHUw MTRiXDNcMlwyXDJcdTBhNjNcdTBhNjRcN1wzMFwyXDJcdTBhNjRcdTBhNjUiKQ0KPiANCj4gLQ0K PiBidWYud3JpdGUoIlw1XHUwMTI2XHUwMDk0XDJcdTBhNjVcdTBhNjZcN1wzMVwyXDJcdTBhNjZc dTAxNGRcM1wyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlwyXHUwYTY3XHUwYTczXDVcdTAx NTBcdTAwYTlcMlx1MGE2OFx1MGE3M1w1XHUwMTUyXHUwMGFhDQo+ICIpDQo+IA0KPiAtDQo+IGJ1 Zi53cml0ZSgiXDJcdTBhNjlcdTBhNzNcNVx1MDE1NFx1MDBhYlwyXHUwYTZhXHUwYTczXDVcdTAx NTZcdTAwYWMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXHUwYTZiXHUwYTczXDVcdTAxNThc dTAwYWRcMlx1MGE2Y1x1MGE3M1w1XHUwMTVlXHUwMGIwIikNCj4gDQo+IC0NCj4gYnVmLndyaXRl KCJcMlx1MGE2ZFx1MGE3M1w1XHUwMTYwXHUwMGIxXDJcdTBhNmVcdTBhNzNcNVx1MDE2Mlx1MDBi MiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcdTBhNmZcdTBhNzNcNVx1MDE2NFx1MDBiM1wy XHUwYTcwXHUwYTczXDVcdTAxNjZcdTAwYjQiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXHUw YTcxXHUwYTczXDVcdTAxNmFcdTAwYjZcMlx1MGE3Mlx1MGE2N1wzXDJcMlwyXHUwYTcyIikNCj4g DQo+IC0NCj4gYnVmLndyaXRlKCJcdTBhNjhcM1wyXDJcMlx1MGE3Mlx1MGE2OVwzXDJcMlwyXHUw YTcyXHUwYTZhXDNcMlwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MGE3Mlx1MGE2Ylwz XDJcMlwyXHUwYTcyXHUwYTZjXDNcMlwyXDJcdTBhNzJcdTBhNmRcMyIpDQo+IA0KPiAtDQo+IGJ1 Zi53cml0ZSgiXDJcMlwyXHUwYTcyXHUwYTZlXDNcMlwyXDJcdTBhNzJcdTBhNmZcM1wyXDJcMlx1 MGE3Mlx1MGE3MCIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwyXHUwYTcyXHUw YTcxXDNcMlwyXDJcdTBhNzNcdTAxNGZcM1wyXDJcMlx1MGE3NCIpDQo+IA0KPiAtDQo+IGJ1Zi53 cml0ZSgiXHUwYTc1XDdcdTAwYzdcMlwyXHUwYTc1XHUwMTUxXDNcMlwyXDJcdTBhNzZcdTBhNzdc N1x1MDBjOCINCj4gKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJcdTBhNzdcdTBhNzhcN1x1 MDBjOVwyXDJcdTBhNzhcdTBhNzlcN1wzMFwyXDJcdTBhNzkiKQ0KPiANCj4gLSAgICAgICAgYnVm LndyaXRlKCJcdTBhN2FcN1x1MDBmYVwyXDJcdTBhN2FcdTBhODVcN1wzMVwyXDJcdTBhN2JcdTBh N2NcNyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXCJcMlwyXHUwYTdjXHUwYTg2XDdcdTAwZmFc MlwyXHUwYTdkXHUwYTdlXDckXDJcMlx1MGE3ZSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUw YTg2XDdcdTAwZmFcMlwyXHUwYTdmXHUwYTgwXDclXDJcMlx1MGE4MFx1MGE4Nlw3XHUwMGZhIikN Cj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlwyXHUwYTgxXHUwYTgyXDcmXDJcMlx1MGE4Mlx1MGE4 Nlw3XHUwMGZhXDJcMlx1MGE4MyIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MGE4NFw3 XCdcMlwyXHUwYTg0XHUwYTg2XDdcdTAwZmFcMlwyXHUwYTg1XHUwYTdiXDNcMiIpDQo+IA0KPiAt DQo+IGJ1Zi53cml0ZSgiXDJcMlx1MGE4NVx1MGE3ZFwzXDJcMlwyXHUwYTg1XHUwYTdmXDNcMlwy XDJcdTBhODVcdTBhODEiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwYTg1XHUw YTgzXDNcMlwyXDJcdTBhODZcdTAxNTNcM1wyXDJcMlx1MGE4NyIpDQo+IA0KPiAtDQo+IGJ1Zi53 cml0ZSgiXHUwYTg4XDdcdTAwY2FcMlwyXHUwYTg4XHUwYTkzXDVcdTAxNWFcdTAwYWVcMlx1MGE4 OVx1MGE4YQ0KPiAiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlw3XCJcMlwyXHUwYThhXHUwYTk0 XDdcdTAwZmFcMlwyXHUwYThiXHUwYThjXDckXDJcMlx1MGE4YyIpDQo+IA0KPiAtDQo+IGJ1Zi53 cml0ZSgiXHUwYTk0XDdcdTAwZmFcMlwyXHUwYThkXHUwYThlXDclXDJcMlx1MGE4ZVx1MGE5NFw3 XHUwMGZhIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDJcMlx1MGE4Zlx1MGE5MFw3Jlwy XDJcdTBhOTBcdTBhOTRcN1x1MDBmYVwyXDJcdTBhOTEiKQ0KPiANCj4gLSAgICAgICAgYnVmLndy aXRlKCJcdTBhOTJcN1wnXDJcMlx1MGE5Mlx1MGE5NFw3XHUwMGZhXDJcMlx1MGE5M1x1MGE4OVwz XDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJcdTBhOTNcdTBhOGJcM1wyXDJcMlx1MGE5 M1x1MGE4ZFwzXDJcMlwyXHUwYTkzXHUwYThmIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcM1wy XDJcMlx1MGE5M1x1MGE5MVwzXDJcMlwyXHUwYTk0XHUwMTU1XDNcMlwyXDJcdTBhOTUiKQ0KPiAN Cj4gLQ0KPiBidWYud3JpdGUoIlx1MGE5Nlw3XHUwMGNiXDJcMlx1MGE5Nlx1MGFhMVw1XHUwMTVh XHUwMGFlXDJcdTBhOTdcdTBhOTgNCj4gIikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDdc IlwyXDJcdTBhOThcdTBhYTJcNVx1MDE1YVx1MDBhZVwyXHUwYTk5XHUwYTlhXDckXDIiKQ0KPiAN Cj4gLQ0KPiBidWYud3JpdGUoIlwyXHUwYTlhXHUwYWEyXDVcdTAxNWFcdTAwYWVcMlx1MGE5Ylx1 MGE5Y1w3JVwyXDJcdTBhOWMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MGFhMlw1XHUwMTVh XHUwMGFlXDJcdTBhOWRcdTBhOWVcNyZcMlwyXHUwYTllXHUwYWEyIikNCj4gDQo+IC0NCj4gYnVm LndyaXRlKCJcNVx1MDE1YVx1MDBhZVwyXHUwYTlmXHUwYWEwXDdcJ1wyXDJcdTBhYTBcdTBhYTJc NVx1MDE1YSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwMGFlXDJcdTBhYTFcdTBhOTdcM1wy XDJcMlx1MGFhMVx1MGE5OVwzXDJcMlwyXHUwYWExIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJc dTBhOWJcM1wyXDJcMlx1MGFhMVx1MGE5ZFwzXDJcMlwyXHUwYWExXHUwYTlmXDNcMlwyXDIiKQ0K PiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MGFhMlx1MDE1N1wzXDJcMlwyXHUwYWEzXHUwYWE0XDdc dTAwY2NcMlwyXHUwYWE0XHUwYWE1IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcNVx1MDE1YVx1 MDBhZVwyXHUwYWE1XHUwYWE3XDdcIlwyXDJcdTBhYTZcdTBhYThcN1x1MDBmYSIpDQo+IA0KPiAt DQo+IGJ1Zi53cml0ZSgiXDJcMlx1MGFhN1x1MGFhNlwzXDJcMlwyXHUwYWE4XHUwYWE5XDNcMlwy XDJcdTBhYTlcdTBhYTciKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwYWE5XHUw YWFhXDNcMlwyXDJcdTBhYWFcdTAxNTlcM1wyXDJcMlx1MGFhYiIpDQo+IA0KPiAtICAgICAgICBi dWYud3JpdGUoIlx1MGFhY1w3XHUwMGZiXDJcMlx1MGFhY1x1MGFhZFw3XDMyXDJcMlx1MGFhZFx1 MGFhZVw3IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwMGZhXDJcMlx1MGFhZVx1MGFi OFw3XDMzXDJcMlx1MGFhZlx1MGFiNFw3XHUwMGZiXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUo IlwyXHUwYWIwXHUwYWIxXDdcMzRcMlwyXHUwYWIxXHUwYWIzXDVcdTAxNWNcdTAwYWZcMlx1MGFi MiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwYWIwXDNcMlwyXDJcdTBhYjNcdTBhYjZcM1wy XDJcMlx1MGFiNFx1MGFiMlwzXDJcMlwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTBhYjRc dTBhYjVcM1wyXDJcMlx1MGFiNVx1MGFiOFwzXDJcMlwyXHUwYWI2XHUwYWI0XDMiKQ0KPiANCj4g LQ0KPiBidWYud3JpdGUoIlwyXDJcMlx1MGFiN1x1MGFhYlwzXDJcMlwyXHUwYWI3XHUwYWFmXDNc MlwyXDJcdTBhYjhcdTAxNWIiDQo+ICkNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXDNcMlwy XDJcdTBhYjlcdTBhYmRcN1x1MDBmYlwyXDJcdTBhYmFcdTBhYmJcN1wzMlwyXDIiKQ0KPiANCj4g LQ0KPiBidWYud3JpdGUoIlx1MGFiYlx1MGFiY1w3XHUwMGZhXDJcMlx1MGFiY1x1MGFiZVw3XDMz XDJcMlx1MGFiZFx1MGFiYSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTBhYmRc dTBhYmVcM1wyXDJcMlx1MGFiZVx1MDE1ZFwzXDJcMlwyXHUwYWJmIikNCj4gDQo+IC0gICAgICAg IGJ1Zi53cml0ZSgiXHUwYWMwXDdcdTAwY2RcMlwyXHUwYWMwXHUwYWMxXDdcMzBcMlwyXHUwYWMx XHUwYWMyXHQiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcMTNcMlwyXHUwYWMyXHUwYWMz XDdcMzFcMlwyXHUwYWMzXHUwMTVmXDNcMlwyXDJcdTBhYzQiKQ0KPiANCj4gLSAgICAgICAgYnVm LndyaXRlKCJcdTBhYzVcN1x1MDBjZVwyXDJcdTBhYzVcdTBhYzZcN1wzMFwyXDJcdTBhYzZcdTBh YzdcNyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwMGZiXDJcMlx1MGFjN1x1MGFjOFw3XDMx XDJcMlx1MGFjOFx1MDE2MVwzXDJcMlwyXHUwYWM5IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0 ZSgiXHUwYWNhXDdcdTAwY2ZcMlwyXHUwYWNhXHUwYWQwXDdcMzBcMlwyXHUwYWNiXHUwYWNjXDci KQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTAwZWNcMlwyXHUwYWNjXHUwYWNkXDdcMzBc MlwyXHUwYWNkXHUwYWNlXDdcdTAwZmFcMiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwy XHUwYWNlXHUwYWQxXDdcMzFcMlwyXHUwYWNmXHUwYWQxXDdcdTAwZmFcMlwyXHUwYWQwIikNCj4g DQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwYWNiXDNcMlwyXDJcdTBhZDBcdTBhY2ZcM1wyXDJc Mlx1MGFkMVx1MGFkMlwzXDJcMlwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTBhZDJcdTBh ZDNcN1wzMVwyXDJcdTBhZDNcdTAxNjNcM1wyXDJcMlx1MGFkNFx1MGFkNSIpDQo+IA0KPiAtDQo+ IGJ1Zi53cml0ZSgiXDdcdTAwZDBcMlwyXHUwYWQ1XHUwMTY1XDNcMlwyXDJcdTBhZDZcdTBhZDdc N1x1MDBkMVwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlx1MGFkN1x1MGFkOFw3XDMwXDJc Mlx1MGFkOFx1MGFkOVw1TFwnXDJcdTBhZDlcdTBhZGEiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUo Ilw3XDMxXDJcMlx1MGFkYVx1MDE2N1wzXDJcMlwyXHUwYWRiXHUwYWRjXHRcZlwyXDJcdTBhZGMi KQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDE2OVwzXDJcMlwyXHUwYWRkXHUwYWRlXDdcdTAw ZDJcMlwyXHUwYWRlXHUwYWRmXDdcMzAiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcMlwy XHUwYWRmXHUwYWU0XDVYLVwyXHUwYWUwXHUwYWUxXDcoXDJcMlx1MGFlMVx1MGFlMiIpDQo+IA0K PiAtDQo+IGJ1Zi53cml0ZSgiXDdAXDJcMlx1MGFlMlx1MGFlM1w3XGJcMlwyXHUwYWUzXHUwYWU1 XDVcdTAxNjhcdTAwYjUiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXHUwYWU0XHUwYWUwXDNc MlwyXDJcdTBhZTRcdTBhZTVcM1wyXDJcMlx1MGFlNVx1MGFlNiIpDQo+IA0KPiAtDQo+IGJ1Zi53 cml0ZSgiXDNcMlwyXDJcdTBhZTZcdTBhZTdcN1wzMVwyXDJcdTBhZTdcdTAxNmJcM1wyXDJcMlx1 MGFlOCIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MGFlOVx0XHJcMlwyXHUwYWU5XHUw MTZkXDNcMlwyXDJcdTBhZWFcdTBhZjVcNVx1MDE3MCIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgi XHUwMGI5XDJcdTBhZWJcdTBhZjVcNVx1MDE3Mlx1MDBiYVwyXHUwYWVjXHUwYWY1XDVcdTAxNzQi KQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDBiYlwyXHUwYWVkXHUwYWY1XDVcdTAxNzZcdTAw YmNcMlx1MGFlZVx1MGFmNVw1XHUwMTc4IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAwYmRc Mlx1MGFlZlx1MGFmNVw1XHUwMTdhXHUwMGJlXDJcdTBhZjBcdTBhZjVcNVx1MDE3YyIpDQo+IA0K PiAtDQo+IGJ1Zi53cml0ZSgiXHUwMGJmXDJcdTBhZjFcdTBhZjVcNVx1MDE3ZVx1MDBjMFwyXHUw YWYyXHUwYWY1XDVcdTAxODAiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTAwYzFcMlx1 MGFmM1x1MGFmNVw1XHUwMTgyXHUwMGMyXDJcdTBhZjRcdTBhZWFcM1wyXDIiKQ0KPiANCj4gLSAg ICAgICAgYnVmLndyaXRlKCJcMlx1MGFmNFx1MGFlYlwzXDJcMlwyXHUwYWY0XHUwYWVjXDNcMlwy XDJcdTBhZjRcdTBhZWQiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1MGFm NFx1MGFlZVwzXDJcMlwyXHUwYWY0XHUwYWVmXDNcMlwyXDJcdTBhZjQiKQ0KPiANCj4gLSAgICAg ICAgYnVmLndyaXRlKCJcdTBhZjBcM1wyXDJcMlx1MGFmNFx1MGFmMVwzXDJcMlwyXHUwYWY0XHUw YWYyXDNcMlwyXDIiKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcdTBhZjRcdTBhZjNcM1wy XDJcMlx1MGFmNVx1MDE2ZlwzXDJcMlwyXHUwYWY2XHUwYWY3XDciKQ0KPiANCj4gLQ0KPiBidWYu d3JpdGUoIlx1MDBkYVwyXDJcdTBhZjdcdTBhZjhcN1wzMFwyXDJcdTBhZjhcdTBhZjlcNVx1MDEy Nlx1MDA5NCIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlwyXHUwYWY5XHUwYWZhXDdcMzFc MlwyXHUwYWZhXHUwMTcxXDNcMlwyXDJcdTBhZmJcdTBhZmMiKQ0KPiANCj4gLSAgICAgICAgYnVm LndyaXRlKCJcN1x1MDBkZlwyXDJcdTBhZmNcdTBhZmRcN1wzMFwyXDJcdTBhZmRcdTBhZmVcNVx1 MDEyNiIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlx1MDA5NFwyXHUwYWZlXHUwYWZmXDdc MzFcMlwyXHUwYWZmXHUwMTczXDNcMlwyXDJcdTBiMDAiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUo Ilx1MGIwMVw3XHUwMGU4XDJcMlx1MGIwMVx1MGIwOVw3XDMwXDJcMlx1MGIwMlx1MGIwM1w3IikN Cj4gDQo+IC0NCj4gYnVmLndyaXRlKCIqXDJcMlx1MGIwM1x1MGIwNFw3XGJcMlwyXHUwYjA0XHUw YjA1XDdcdTAwZWNcMlwyXHUwYjA1IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTBiMDZcN1wz MFwyXDJcdTBiMDZcdTBiMDdcN1x1MDBmYVwyXDJcdTBiMDdcdTBiMDhcNyIpDQo+IA0KPiAtDQo+ IGJ1Zi53cml0ZSgiXDMxXDJcMlx1MGIwOFx1MGIwYVw3IVwyXDJcdTBiMDlcdTBiMDJcM1wyXDJc Mlx1MGIwOVx1MGIwYSINCj4gKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1 MGIwYVx1MGIxMFwzXDJcMlwyXHUwYjBiXHUwYjBjXDdbXDJcMlx1MGIwYyIpDQo+IA0KPiAtDQo+ IGJ1Zi53cml0ZSgiXHUwYjBkXDdcYlwyXDJcdTBiMGRcdTBiMGVcNUxcJ1wyXHUwYjBlXHUwYjBm XDchXDJcMlx1MGIwZiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwYjExXDNcMlwyXDJcdTBi MTBcdTBiMGJcM1wyXDJcMlx1MGIxMFx1MGIxMVwzXDJcMlwyIikNCj4gDQo+IC0NCj4gYnVmLndy aXRlKCJcdTBiMTFcdTBiMTJcM1wyXDJcMlx1MGIxMlx1MGIxM1w1XHUwMTI2XHUwMDk0XDJcdTBi MTMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MGIxNFw3XDMxXDJcMlx1MGIxNFx1MDE3NVwz XDJcMlwyXHUwYjE1XHUwYjE2XDdcdTAwZTkiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJc dTBiMTZcdTBiMTdcN1wzMFwyXDJcdTBiMTdcdTBiMThcNVx1MDEyNlx1MDA5NFwyIikNCj4gDQo+ IC0NCj4gYnVmLndyaXRlKCJcdTBiMThcdTBiMTlcN1wzMVwyXDJcdTBiMTlcdTAxNzdcM1wyXDJc Mlx1MGIxYVx1MGIxYiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDdcdTAwZTBcMlwyXHUwYjFi XHUwYjFjXDdcMzBcMlwyXHUwYjFjXHUwYjFkXDVcdTAxMjYiKQ0KPiANCj4gLQ0KPiBidWYud3Jp dGUoIlx1MDA5NFwyXHUwYjFkXHUwYjFlXDdcMzFcMlwyXHUwYjFlXHUwMTc5XDNcMlwyXDJcdTBi MWYiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MGIyNFw3XHUwMGUxXDJcMlx1MGIyMFx1MGIy MVw3XDIxXDJcMlx1MGIyMVx1MGIyMlw3IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcYlwyXDJc dTBiMjJcdTBiMjNcN1x1MDBmYVwyXDJcdTBiMjNcdTBiMjVcNyFcMlwyXHUwYjI0IikNCj4gDQo+ IC0NCj4gYnVmLndyaXRlKCJcdTBiMjBcM1wyXDJcMlx1MGIyNFx1MGIyNVwzXDJcMlwyXHUwYjI1 XHUwYjI2XDNcMlwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MGIyNlx1MGIyN1w3XDMw XDJcMlx1MGIyN1x1MGIyOFw1XHUwMTI2XHUwMDk0XDJcdTBiMjgiKQ0KPiANCj4gLQ0KPiBidWYu d3JpdGUoIlx1MGIyOVw3XDMxXDJcMlx1MGIyOVx1MDE3YlwzXDJcMlwyXHUwYjJhXHUwYjJiXDdc dTAwZTIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXDJcdTBiMmJcdTBiMmNcN1wzMFwyXDJc dTBiMmNcdTBiMmRcNVx1MDEyNlx1MDA5NFwyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTBi MmRcdTBiMmVcN1wzMVwyXDJcdTBiMmVcdTAxN2RcM1wyXDJcMlx1MGIyZlx1MGIzMCIpDQo+IA0K PiAtDQo+IGJ1Zi53cml0ZSgiXDdcdTAwZTNcMlwyXHUwYjMwXHUwYjMxXDdcMzBcMlwyXHUwYjMx XHUwYjMyXDVcdTAxMjYiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDA5NFwyXHUwYjMyXHUw YjMzXDdcMzFcMlwyXHUwYjMzXHUwMTdmXDNcMlwyXDJcdTBiMzQiKQ0KPiANCj4gLQ0KPiBidWYu d3JpdGUoIlx1MGIzNVw3XHUwMGU0XDJcMlx1MGIzNVx1MGIzNlw3XDMwXDJcMlx1MGIzNlx1MGIz N1w1IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTAxMjZcdTAwOTRcMlx1MGIzN1x1MGIzOFw3 XDMxXDJcMlx1MGIzOFx1MDE4MVwzXDJcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcdTBi MzlcdTBiM2FcN1x1MDBkZVwyXDJcdTBiM2FcdTBiM2JcN1wzMFwyXDJcdTBiM2IiKQ0KPiANCj4g LSAgICAgICAgYnVmLndyaXRlKCJcdTBiNDBcNVgtDQo+IFwyXHUwYjNjXHUwYjNkXDcoXDJcMlx1 MGIzZFx1MGIzZVw3QFwyXDJcdTBiM2UiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MGIzZlw3 XGJcMlwyXHUwYjNmXHUwYjQxXDVcdTAxNjhcdTAwYjVcMlx1MGI0MFx1MGIzYyIpDQo+IA0KPiAt DQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTBiNDBcdTBiNDFcM1wyXDJcMlx1MGI0MVx1MGI0Mlwz XDJcMlwyXHUwYjQyIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTBiNDNcNyFcMlwyXHUwYjQz XHUwYjQ0XDVcdTAxMjZcdTAwOTRcMlx1MGI0NFx1MGI0NSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0 ZSgiXDdcMzFcMlwyXHUwYjQ1XHUwMTgzXDNcMlwyXDJcdTBiNDZcdTBiNGNcNVx1MDE4Nlx1MDBj NCIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcdTBiNDdcdTBiNGNcNVx1MDE4OFx1MDBjNVwy XHUwYjQ4XHUwYjRjXDVcdTAxOGNcdTAwYzciKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwyXHUw YjQ5XHUwYjRjXDVcdTAxOGVcdTAwYzhcMlx1MGI0YVx1MGI0Y1w1XHUwMTkwXHUwMGM5IikNCj4g DQo+IC0NCj4gYnVmLndyaXRlKCJcMlx1MGI0Ylx1MGI0NlwzXDJcMlwyXHUwYjRiXHUwYjQ3XDNc MlwyXDJcdTBiNGJcdTBiNDgiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwYjRi XHUwYjQ5XDNcMlwyXDJcdTBiNGJcdTBiNGFcM1wyXDJcMlx1MGI0YyIpDQo+IA0KPiAtDQo+IGJ1 Zi53cml0ZSgiXHUwMTg1XDNcMlwyXDJcdTBiNGRcdTBiNGVcN1x1MDBjMlwyXDJcdTBiNGVcdTBi NGZcN1wzMCIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MGI0Zlx1MGI1MFw1XHUwMTI2 XHUwMDk0XDJcdTBiNTBcdTBiNTFcN1wyMlwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1 MGI1MVx1MGI1Mlw1XHUwMTI2XHUwMDk0XDJcdTBiNTJcdTBiNTNcN1wzNlwyXDJcdTBiNTMiKQ0K PiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MGI1NFw1XHUwMTI2XHUwMDk0XDJcdTBiNTRcdTBiNTVc N1wzMVwyXDJcdTBiNTVcdTAxODciKQ0KPiANCj4gLSAgICAgICAgYnVmLndyaXRlKCJcM1wyXDJc Mlx1MGI1Nlx1MGI1N1w3XHUwMGMzXDJcMlx1MGI1N1x1MGI1OFw3XDMwXDJcMiIpDQo+IA0KPiAt DQo+IGJ1Zi53cml0ZSgiXHUwYjU4XHUwYjVkXDVcdTAxOGFcdTAwYzZcMlx1MGI1OVx1MGI1YVw3 KFwyXDJcdTBiNWEiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MGI1Y1w1XHUwMThhXHUwMGM2 XDJcdTBiNWJcdTBiNTlcM1wyXDJcMlx1MGI1Y1x1MGI1ZiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0 ZSgiXDNcMlwyXDJcdTBiNWRcdTBiNWJcM1wyXDJcMlx1MGI1ZFx1MGI1ZVwzXDJcMlwyXHUwYjVl IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwYjYwXDNcMlwyXDJcdTBiNWZcdTBiNWRc M1wyXDJcMlx1MGI2MFx1MGI2MVw3IVwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MGI2 MVx1MGI2Mlw1XHUwMTI2XHUwMDk0XDJcdTBiNjJcdTBiNjNcNyFcMlwyXHUwYjYzIikNCj4gDQo+ IC0NCj4gYnVmLndyaXRlKCJcdTBiNjRcNVx1MDEyNlx1MDA5NFwyXHUwYjY0XHUwYjY1XDchXDJc Mlx1MGI2NVx1MGI2NiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDVcdTAxMjZcdTAwOTRcMlx1 MGI2Nlx1MGI2N1w3XDMxXDJcMlx1MGI2N1x1MDE4OVwzXDIiKQ0KPiANCj4gLQ0KPiBidWYud3Jp dGUoIlwyXDJcdTBiNjhcdTBiNjlcdFwxNlwyXDJcdTBiNjlcdTAxOGJcM1wyXDJcMlx1MGI2YVx1 MGI2YiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDdcdTAwYzRcMlwyXHUwYjZiXHUwYjZjXDdc MzBcMlwyXHUwYjZjXHUwYjZkXDVcdTAxMjYiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDA5 NFwyXHUwYjZkXHUwYjZlXDchXDJcMlx1MGI2ZVx1MGI2Zlw1XHUwMTI2XHUwMDk0IikNCj4gDQo+ IC0NCj4gYnVmLndyaXRlKCJcMlx1MGI2Zlx1MGI3MFw3IVwyXDJcdTBiNzBcdTBiNzFcNVx1MDEy Nlx1MDA5NFwyXHUwYjcxIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTBiNzJcN1wzMVwyXDJc dTBiNzJcdTAxOGRcM1wyXDJcMlx1MGI3M1x1MGI3NFw3XHUwMGM1IikNCj4gDQo+IC0NCj4gYnVm LndyaXRlKCJcMlwyXHUwYjc0XHUwYjc1XDdcMzBcMlwyXHUwYjc1XHUwYjc2XDVcdTAxMjZcdTAw OTRcMiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwYjc2XHUwYjc3XDchXDJcMlx1MGI3N1x1 MGI3OFw1XHUwMTI2XHUwMDk0XDJcdTBiNzgiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MGI3 OVw3IVwyXDJcdTBiNzlcdTBiN2FcNVx1MDEyNlx1MDA5NFwyXHUwYjdhXHUwYjdiIikNCj4gDQo+ IC0gICAgICAgIGJ1Zi53cml0ZSgiXDdcMzFcMlwyXHUwYjdiXHUwMThmXDNcMlwyXDJcdTBiN2Nc dTBiN2RcN1x1MDBjNlwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MGI3ZFx1MGI3ZVw3 XDMwXDJcMlx1MGI3ZVx1MGI3Zlw3QFwyXDJcdTBiN2ZcdTBiODBcNyIpDQo+IA0KPiAtDQo+IGJ1 Zi53cml0ZSgiXGJcMlwyXHUwYjgwXHUwYjg1XDVcdTAxOTJcdTAwY2FcMlx1MGI4MVx1MGI4Mlw3 KFwyXDIiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MGI4Mlx1MGI4NFw1XHUwMTkyXHUwMGNh XDJcdTBiODNcdTBiODFcM1wyXDJcMlx1MGI4NCIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUw Yjg3XDNcMlwyXDJcdTBiODVcdTBiODNcM1wyXDJcMlx1MGI4NVx1MGI4NlwzXDJcMlwyIikNCj4g DQo+IC0NCj4gYnVmLndyaXRlKCJcdTBiODZcdTBiODhcM1wyXDJcMlx1MGI4N1x1MGI4NVwzXDJc MlwyXHUwYjg4XHUwYjg5XDciKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIiFcMlwyXHUwYjg5XHUw YjhhXDVcdTAxMjZcdTAwOTRcMlx1MGI4YVx1MGI4Ylw3IVwyXDJcdTBiOGINCj4gIikNCj4gDQo+ IC0NCj4gYnVmLndyaXRlKCJcdTBiOGNcNVx1MDEyNlx1MDA5NFwyXHUwYjhjXHUwYjhkXDchXDJc Mlx1MGI4ZFx1MGI4ZSIpDQo+IA0KPiAtICAgICAgICBidWYud3JpdGUoIlw1XHUwMTI2XHUwMDk0 XDJcdTBiOGVcdTBiOGZcN1wzMVwyXDJcdTBiOGZcdTAxOTFcM1wyIikNCj4gDQo+IC0NCj4gYnVm LndyaXRlKCJcMlwyXHUwYjkwXHUwYjkxXHRcMTdcMlwyXHUwYjkxXHUwMTkzXDNcMlwyXDJcdTBi OTJcdTBiOTMiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlw3XHUwMGVhXDJcMlx1MGI5M1x1MGI5 NFw3XDMwXDJcMlx1MGI5NFx1MGI5NVw1XHUwMTI2IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJc dTAwOTRcMlx1MGI5NVx1MGI5ZFw3XDM2XDJcMlx1MGI5Nlx1MGI5N1w1XHUwMTI0XHUwMDkzIikN Cj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcMlx1MGI5N1x1MGI5OFw3IVwyXDJcdTBiOThcdTBiOTlc NVx1MDEyNFx1MDA5M1wyXHUwYjk5IikNCj4gDQo+IC0gICAgICAgIGJ1Zi53cml0ZSgiXHUwYjlh XDcgXDJcMlx1MGI5YVx1MGI5Y1wzXDJcMlwyXHUwYjliXHUwYjk2XDNcMlwyXDIiKQ0KPiANCj4g LQ0KPiBidWYud3JpdGUoIlx1MGI5Y1x1MGI5ZlwzXDJcMlwyXHUwYjlkXHUwYjliXDNcMlwyXDJc dTBiOWRcdTBiOWVcMyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwYjllXHUwYmEw XDNcMlwyXDJcdTBiOWZcdTBiOWRcM1wyXDJcMlx1MGJhMFx1MGJhMSINCj4gKQ0KPiANCj4gLSAg ICAgICAgYnVmLndyaXRlKCJcN1wzMVwyXDJcdTBiYTFcdTAxOTVcM1wyXDJcMlx1MDBmMFx1MDE5 OVx1MDE5Ylx1MDFhNSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwMWE5XHUwMWFjXHUwMWI0 XHUwMWI5XHUwMWJkXHUwMWMwXHUwMWM2XHUwMWNiXHUwMWNmIikNCj4gDQo+IC0NCj4gYnVmLndy aXRlKCJcdTAxZDJcdTAxZDhcdTAxZWFcdTAxZWNcdTAxZjRcdTAxZmRcdTAyMDZcdTAyMGZcdTAy MTgiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDIyMVx1MDIyYVx1MDIzM1x1MDIzY1x1MDI0 NVx1MDI0Ylx1MDI1M1x1MDI1Ylx1MDI2MyIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwMjgx XHUwMjg4XHUwMjhmXHUwMjk4XHUwMjljXHUwMmEwXHUwMmE3XHUwMmIxXHUwMmJlIikNCj4gDQo+ IC0NCj4gYnVmLndyaXRlKCJcdTAyY2RcdTAyZTJcdTAyZThcdTAzMDRcdTAzMGFcdTAzMTNcdTAz MjZcdTAzMzZcdTAzNDEiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDM3Mlx1MDM4Mlx1MDM4 OVx1MDM4Zlx1MDNhN1x1MDNiMlx1MDNiNVx1MDNiOFx1MDNkZiIpDQo+IA0KPiAtDQo+IGJ1Zi53 cml0ZSgiXHUwM2UzXHUwM2YwXHUwM2Y3XHUwNDA5XHUwNDFlXHUwNDMzXHUwNDM5XHUwNDRmXHUw NDVjIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA0NjBcdTA0NjVcdTA0NmJcdTA0NmVcdTA0 NzJcdTA0NzZcdTA0N2RcdTA0OTdcdTA0YTEiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDRh OVx1MDRhZFx1MDRiM1x1MDRiN1x1MDRlNVx1MDRlOVx1MDRmMFx1MDRmNlx1MDRmYSIpDQo+IA0K PiAtDQo+IGJ1Zi53cml0ZSgiXHUwNTAzXHUwNTA4XHUwNTE0XHUwNTFmXHUwNTJjXHUwNTNkXHUw NTQyXHUwNTQ3XHUwNTU4IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA1NWRcdTA1NjJcdTA1 NmFcdTA1OGFcdTA1OGZcdTA1OTRcdTA1OWVcdTA1YThcdTA1YjQiKQ0KPiANCj4gLQ0KPiBidWYu d3JpdGUoIlx1MDViOVx1MDViZVx1MDVjYVx1MDVjZlx1MDVkNFx1MDVkZVx1MDVlNFx1MDVmZlx1 MDYwNSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNjBmXHUwNjFkXHUwNjJhXHUwNjJmXHUw NjMzXHUwNjNlXHUwNjQ0XHUwNjRmXHUwNjU4IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA2 NjJcdTA2NzRcdTA2NzlcdTA2N2RcdTA2ODhcdTA2OGVcdTA2OThcdTA2OWZcdTA2YTciKQ0KPiAN Cj4gLQ0KPiBidWYud3JpdGUoIlx1MDZhZVx1MDZiYVx1MDZjNVx1MDZjOFx1MDZkM1x1MDZkOFx1 MDZlMlx1MDZlOFx1MDZmYiIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwNzAxXHUwNzBiXHUw NzExXHUwNzFmXHUwNzJhXHUwNzJmXHUwNzM4XHUwNzNmXHUwNzRhIikNCj4gDQo+IC0NCj4gYnVm LndyaXRlKCJcdTA3NTFcdTA3NWJcdTA3YTZcdTA3YWJcdTA3YWVcdTA3YmZcdTA3YzVcdTA3Y2Nc dTA3ZDkiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDgyNFx1MDgyOVx1MDgyY1x1MDgzZFx1 MDg0M1x1MDg0YVx1MDg1M1x1MDg2NFx1MDg2YSIpDQo+IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUw ODcyXHUwODgwXHUwODg1XHUwODkyXHUwODk3XHUwOGE0XHUwOGE5XHUwOGIwXHUwOGJlIikNCj4g DQo+IC0NCj4gYnVmLndyaXRlKCJcdTA4YzNcdTA4Y2FcdTA4ZGZcdTA4ZTRcdTA4ZWRcdTA5MGVc dTA5MmVcdTA5MzFcdTA5MzciKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1MDk0MVx1MDk1NFx1 MDk2MVx1MDk2N1x1MDk2ZFx1MDk3M1x1MDk3OVx1MDk3Zlx1MDk4NSIpDQo+IA0KPiAtDQo+IGJ1 Zi53cml0ZSgiXHUwOThiXHUwOTkxXHUwOTk3XHUwOTk5XHUwOTllXHUwOWExXHUwOWE3XHUwOWFi XHUwOWI0IikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTA5YmFcdTA5Y2FcdTA5ZDJcdTA5ZGFc dTA5ZTJcdTA5ZWFcdTA5ZjFcdTA5ZjhcdTA5ZmUiKQ0KPiANCj4gLQ0KPiBidWYud3JpdGUoIlx1 MGEwOVx1MGEwZlx1MGExNlx1MGExY1x1MGEyM1x1MGEyOVx1MGEzMlx1MGEzOVx1MGE0YSIpDQo+ IA0KPiAtDQo+IGJ1Zi53cml0ZSgiXHUwYTcyXHUwYTg1XHUwYTkzXHUwYWExXHUwYWE5XHUwYWI0 XHUwYWI3XHUwYWJkXHUwYWQwIikNCj4gDQo+IC0NCj4gYnVmLndyaXRlKCJcdTBhZTRcdTBhZjRc dTBiMDlcdTBiMTBcdTBiMjRcdTBiNDBcdTBiNGJcdTBiNWRcdTBiODUiKQ0KPiANCj4gLSAgICAg ICAgYnVmLndyaXRlKCJcdTBiOWQiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTAwZjhc dTAwZmFcMlx1MGM3MVwyXHUwMTlkXDNcMlwyXDJcNFx1MDFhM1wzXDJcMlwyXDYiKQ0KPiANCj4g KyAgICAgICAgYnVmLndyaXRlKCJcdTAxYTVcM1wyXDJcMlxiXHUwMWFmXDNcMlwyXDJcblx1MDFi MVwzXDJcMlwyXGZcdTAxYmMiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlwx Nlx1MDFjZVwzXDJcMlwyXDIwXHUwMWVmXDNcMlwyXDJcMjJcdTAxZjJcMyIpDQo+IA0KPiArICAg ICAgICBidWYud3JpdGUoIlwyXDJcMlwyNFx1MDFmYlwzXDJcMlwyXDI2XHUwMjA0XDNcMlwyXDJc MzBcdTAyMGRcM1wyIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDJcMlwzMlx1MDIxNlwz XDJcMlwyXDM0XHUwMjFmXDNcMlwyXDJcMzZcdTAyMjhcM1wyXDIiKQ0KPiANCj4gKyAgICAgICAg YnVmLndyaXRlKCJcMg0KPiBcdTAyMzFcM1wyXDJcMlwiXHUwMjNhXDNcMlwyXDIkXHUwMjQzXDNc MlwyXDImXHUwMjRjIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDNcMlwyXDIoXHUwMjU0 XDNcMlwyXDIqXHUwMjVjXDNcMlwyXDIsXHUwMjY0XDNcMlwyXDIiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIi5cdTAyNmNcM1wyXDJcMlw2MFx1MDI5OFwzXDJcMlwyXDYyXHUwMmE1XDNcMlwyXDJc NjRcdTAyYWQiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlw2Nlx1MDJhZlwz XDJcMlwyOFx1MDJiNFwzXDJcMlwyOlx1MDJjMVwzXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXDI8XHUwMmMzXDNcMlwyXDI+XHUwMmQ0XDNcMlwyXDJAXHUwMmY2XDNcMlwyXDJCXHUwMzMw IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDNcMlwyXDJEXHUwMzMyXDNcMlwyXDJGXHUw MzRiXDNcMlwyXDJIXHUwMzUyXDNcMlwyXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIkpcdTAz NTlcM1wyXDJcMkxcdTAzNjlcM1wyXDJcMk5cdTAzNzlcM1wyXDJcMlBcdTAzN2VcMyIpDQo+IA0K PiArDQo+IGJ1Zi53cml0ZSgiXDJcMlwyUlx1MDM4NVwzXDJcMlwyVFx1MDM5NFwzXDJcMlwyVlx1 MDNhYVwzXDJcMlwyWFx1MDNiOCIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwy Wlx1MDNlNlwzXDJcMlwyXFxcdTAzZThcM1wyXDJcMl5cdTAzZWZcM1wyXDJcMiIpDQo+IA0KPiAr ICAgICAgICBidWYud3JpdGUoImBcdTAzZjNcM1wyXDJcMmJcdTAzZjVcM1wyXDJcMmRcdTAzZmRc M1wyXDJcMmZcdTA0MjFcMyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlwyaFx1MDQyM1wz XDJcMlwyalx1MDQ0MlwzXDJcMlwybFx1MDQ0NVwzXDJcMlwyblx1MDQ0OCIpDQo+IA0KPiArICAg ICAgICBidWYud3JpdGUoIlwzXDJcMlwycFx1MDQ1MlwzXDJcMlwyclx1MDQ1NFwzXDJcMlwydFx1 MDQ3OVwzXDJcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJ2XHUwNDdiXDNcMlwyXDJ4XHUw NDgzXDNcMlwyXDJ6XHUwNDg1XDNcMlwyXDJ8XHUwNGI2XDMiKQ0KPiANCj4gKyAgICAgICAgYnVm LndyaXRlKCJcMlwyXDJ+XHUwNGJhXDNcMlwyXDJcdTAwODBcdTA0YmNcM1wyXDJcMlx1MDA4Mlx1 MDUwMSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTAwODRcdTA1MGJcM1wyXDJc Mlx1MDA4Nlx1MDUwZFwzXDJcMlwyXHUwMDg4IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA1 MjJcM1wyXDJcMlx1MDA4YVx1MDUyZlwzXDJcMlwyXHUwMDhjXHUwNTMxXDNcMlwyXDIiKQ0KPiAN Cj4gKw0KPiBidWYud3JpdGUoIlx1MDA4ZVx1MDU0Y1wzXDJcMlwyXHUwMDkwXHUwNTY3XDNcMlwy XDJcdTAwOTJcdTA1NmZcMyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwMDk0XHUw NTc0XDNcMlwyXDJcdTAwOTZcdTA1N2NcM1wyXDJcMlx1MDA5OFx1MDU4MSIpDQo+IA0KPiArDQo+ IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTAwOWFcdTA1OTdcM1wyXDJcMlx1MDA5Y1x1MDVhMVwzXDJc MlwyXHUwMDllIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA1YWJcM1wyXDJcMlx1MDBhMFx1 MDVhZFwzXDJcMlwyXHUwMGEyXHUwNWMzXDNcMlwyXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUo Ilx1MDBhNFx1MDVkOVwzXDJcMlwyXHUwMGE2XHUwNWU5XDNcMlwyXDJcdTAwYThcdTA1ZWRcMyIp DQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwMGFhXHUwNWVmXDNcMlwyXDJcdTAwYWNc dTA2MGRcM1wyXDJcMlx1MDBhZVx1MDYyMCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcMlwy XDJcdTAwYjBcdTA2MjJcM1wyXDJcMlx1MDBiMlx1MDYyNlwzXDJcMlwyXHUwMGI0IikNCj4gDQo+ ICsNCj4gYnVmLndyaXRlKCJcdTA2MmRcM1wyXDJcMlx1MDBiNlx1MDYzMlwzXDJcMlwyXHUwMGI4 XHUwNjM2XDNcMlwyXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDBiYVx1MDYzOFwzXDJc MlwyXHUwMGJjXHUwNjRkXDNcMlwyXDJcdTAwYmVcdTA2NWJcMyIpDQo+IA0KPiArDQo+IGJ1Zi53 cml0ZSgiXDJcMlwyXHUwMGMwXHUwNjVkXDNcMlwyXDJcdTAwYzJcdTA2NzJcM1wyXDJcMlx1MDBj NFx1MDY3YyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTAwYzZcdTA2ODBcM1wy XDJcMlx1MDBjOFx1MDY4MlwzXDJcMlwyXHUwMGNhIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJc dTA2OThcM1wyXDJcMlx1MDBjY1x1MDZhY1wzXDJcMlwyXHUwMGNlXHUwNmJkXDNcMlwyXDIiKQ0K PiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDBkMFx1MDZiZlwzXDJcMlwyXHUwMGQyXHUwNmQxXDNc MlwyXDJcdTAwZDRcdTA2ZGJcMyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwMGQ2 XHUwNmRkXDNcMlwyXDJcdTAwZDhcdTA2ZjlcM1wyXDJcMlx1MDBkYVx1MDcwNCINCj4gKQ0KPiAN Cj4gKw0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwMGRjXHUwNzA2XDNcMlwyXDJcdTAwZGVcdTA3 MjhcM1wyXDJcMlx1MDBlMCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNzMyXDNcMlwyXDJc dTAwZTJcdTA3MzRcM1wyXDJcMlx1MDBlNFx1MDc0OFwzXDJcMlwyIikNCj4gDQo+ICsNCj4gYnVm LndyaXRlKCJcdTAwZTZcdTA3NTRcM1wyXDJcMlx1MDBlOFx1MDc1NlwzXDJcMlwyXHUwMGVhXHUw N2I2XDMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcMlx1MDBlY1x1MDdjYVwzXDJcMlwy XHUwMGVlXHUwN2QyXDNcMlwyXDJcdTAwZjBcdTA3ZDQiKQ0KPiANCj4gKyAgICAgICAgYnVmLndy aXRlKCJcM1wyXDJcMlx1MDBmMlx1MDgzNFwzXDJcMlwyXHUwMGY0XHUwODQ4XDNcMlwyXDJcdTAw ZjYiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTA4NTBcM1wyXDJcMlx1MDBmOFx1MDg1 NlwzXDJcMlwyXHUwMGZhXHUwODU4XDNcMlwyXDIiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRl KCJcdTAwZmNcdTA4NWRcM1wyXDJcMlx1MDBmZVx1MDg1ZlwzXDJcMlwyXHUwMTAwXHUwODY3XDMi KQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcMlx1MDEwMlx1MDg2ZFwzXDJcMlwyXHUwMTA0 XHUwODZmXDNcMlwyXDJcdTAxMDZcdTA4N2IiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJc MlwyXHUwMTA4XHUwODhkXDNcMlwyXDJcdTAxMGFcdTA4OWZcM1wyXDJcMlx1MDEwYyIpDQo+IA0K PiArDQo+IGJ1Zi53cml0ZSgiXHUwOGI5XDNcMlwyXDJcdTAxMGVcdTA4ZDNcM1wyXDJcMlx1MDEx MFx1MDhmMFwzXDJcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAxMTJcdTA4ZjJcM1wy XDJcMlx1MDExNFx1MDhmY1wzXDJcMlwyXHUwMTE2XHUwOTE1XDMiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlwyXDJcMlx1MDExOFx1MDkzZVwzXDJcMlwyXHUwMTFhXHUwOTQyXDNcMlwyXDJcdTAx MWNcdTA5NTkiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwMTFlXHUwOWIyXDNc MlwyXDJcdTAxMjBcdTA5YzNcM1wyXDJcMlx1MDEyMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgi XHUwOWM2XDNcMlwyXDJcdTAxMjRcdTA5YzhcM1wyXDJcMlx1MDEyNlx1MDlkMFwzXDJcMlwyIikN Cj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAxMjhcdTA5ZDhcM1wyXDJcMlx1MDEyYVx1MDllMFwz XDJcMlwyXHUwMTJjXHUwOWU4XDMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcMlx1MDEy ZVx1MDlmMFwzXDJcMlwyXHUwMTMwXHUwOWZiXDNcMlwyXDJcdTAxMzJcdTA5ZmQiKQ0KPiANCj4g Kw0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwMTM0XHUwYTBjXDNcMlwyXDJcdTAxMzZcdTBhMGVc M1wyXDJcMlx1MDEzOCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwYTE5XDNcMlwyXDJcdTAx M2FcdTBhMWJcM1wyXDJcMlx1MDEzY1x1MGEyNlwzXDJcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndy aXRlKCJcdTAxM2VcdTBhMjhcM1wyXDJcMlx1MDE0MFx1MGEzNVwzXDJcMlwyXHUwMTQyXHUwYTNh XDMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcMlx1MDE0NFx1MGEzZlwzXDJcMlwyXHUw MTQ2XHUwYTRlXDNcMlwyXDJcdTAxNDhcdTBhNTAiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwz XDJcMlwyXHUwMTRhXHUwYTU3XDNcMlwyXDJcdTAxNGNcdTBhNWVcM1wyXDJcMlx1MDE0ZSIpDQo+ IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwYTY3XDNcMlwyXDJcdTAxNTBcdTBhNzZcM1wyXDJcMlx1 MDE1Mlx1MGE3OFwzXDJcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAxNTRcdTBhN2Fc M1wyXDJcMlx1MDE1Nlx1MGE4YlwzXDJcMlwyXHUwMTU4XHUwYTk5XDMiKQ0KPiANCj4gKw0KPiBi dWYud3JpdGUoIlwyXDJcMlx1MDE1YVx1MGFhN1wzXDJcMlwyXHUwMTVjXHUwYWJiXDNcMlwyXDJc dTAxNWVcdTBhYmQiDQo+ICkNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1MDE2MFx1 MGFjM1wzXDJcMlwyXHUwMTYyXHUwYWM4XDNcMlwyXDJcdTAxNjQiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlx1MGFjZFwzXDJcMlwyXHUwMTY2XHUwYWQ4XDNcMlwyXDJcdTAxNjhcdTBhZGFcM1wy XDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMTZhXHUwYWRmXDNcMlwyXDJcdTAxNmNc dTBhZTFcM1wyXDJcMlx1MDE2ZVx1MGFlY1wzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwy XDJcdTAxNzBcdTBhZjhcM1wyXDJcMlx1MDE3Mlx1MGFmYVwzXDJcMlwyXHUwMTc0XHUwYWZmIikN Cj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1MDE3Nlx1MGIwNFwzXDJcMlwyXHUwMTc4 XHUwYjE5XDNcMlwyXDJcdTAxN2EiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MGIxZVwzXDJc MlwyXHUwMTdjXHUwYjIzXDNcMlwyXDJcdTAxN2VcdTBiMmVcM1wyXDJcMiIpDQo+IA0KPiArDQo+ IGJ1Zi53cml0ZSgiXHUwMTgwXHUwYjMzXDNcMlwyXDJcdTAxODJcdTBiMzhcM1wyXDJcMlx1MDE4 NFx1MGIzZFwzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXDJcdTAxODZcdTBiNGZcM1wy XDJcMlx1MDE4OFx1MGI1MVwzXDJcMlwyXHUwMThhXHUwYjVhIikNCj4gDQo+ICsNCj4gYnVmLndy aXRlKCJcM1wyXDJcMlx1MDE4Y1x1MGI2Y1wzXDJcMlwyXHUwMThlXHUwYjZlXDNcMlwyXDJcdTAx OTAiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MGI3N1wzXDJcMlwyXHUwMTkyXHUwYjgwXDNc MlwyXDJcdTAxOTRcdTBiOTRcM1wyXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMTk2 XHUwYjk2XDNcMlwyXDJcdTAxOThcdTAxOWNcNVxuXDZcMlx1MDE5OVx1MDE5Y1w1IikNCj4gDQo+ ICsgICAgICAgIGJ1Zi53cml0ZSgiXGZcN1wyXHUwMTlhXHUwMTljXDVcMTZcYlwyXHUwMTliXHUw MTk4XDNcMlwyXDJcdTAxOWIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDE5OVwzXDJcMlwy XHUwMTliXHUwMTlhXDNcMlwyXDJcdTAxOWNcdTAxOWZcM1wyXDJcMiIpDQo+IA0KPiArDQo+IGJ1 Zi53cml0ZSgiXHUwMTlkXHUwMTliXDNcMlwyXDJcdTAxOWRcdTAxOWVcM1wyXDJcMlx1MDE5ZVx1 MDFhMVwzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXDJcdTAxOWZcdTAxOWRcM1wyXDJc Mlx1MDFhMFx1MDFhMlw1LlwzMFwyXHUwMWExXHUwMWEwIikNCj4gDQo+ICsNCj4gYnVmLndyaXRl KCJcM1wyXDJcMlx1MDFhMVx1MDFhMlwzXDJcMlwyXHUwMWEyXDNcM1wyXDJcMlx1MDFhM1x1MDFh NCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDdcM1wyXDJcdTAxYTRcNVwzXDJcMlwyXHUwMWE1 XHUwMWE4XHRcMlwyXDJcdTAxYTZcdTAxYTciKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3IVwy XDJcdTAxYTdcdTAxYTlcN1x1MDBmYlwyXDJcdTAxYThcdTAxYTZcM1wyXDJcMlx1MDFhOCIpDQo+ IA0KPiArICAgICAgICBidWYud3JpdGUoIlx1MDFhOVwzXDJcMlwyXHUwMWE5XHUwMWFjXDNcMlwy XDJcdTAxYWFcdTAxYWJcNyFcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAxYWJcdTAx YWRcN1x1MDBmYVwyXDJcdTAxYWNcdTAxYWFcM1wyXDJcMlx1MDFhY1x1MDFhZCIpDQo+IA0KPiAr ICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwyXHUwMWFkXDdcM1wyXDJcMlx1MDFhZVx1MDFiMFw3 XHUwMGZhXDJcMlx1MDFhZiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMWFlXDNcMlwyXDJc dTAxYWZcdTAxYjBcM1wyXDJcMlx1MDFiMFx0XDNcMlwyXDJcdTAxYjEiKQ0KPiANCj4gKw0KPiBi dWYud3JpdGUoIlx1MDFiMlw3XDZcMlwyXHUwMWIyXHUwMWIzXDdcN1wyXDJcdTAxYjNcdTAxYjdc N1wzMFwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlx1MDFiNFx1MDFiOFw1XDRcM1wyXHUw MWI1XHUwMWI4XDVcNlw0XDJcdTAxYjZcdTAxYjgiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw1 XGJcNVwyXHUwMWI3XHUwMWI0XDNcMlwyXDJcdTAxYjdcdTAxYjVcM1wyXDJcMlx1MDFiNyIpDQo+ IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMWI2XDNcMlwyXDJcdTAxYjdcdTAxYjhcM1wyXDJcMlx1 MDFiOFx1MDFiOVwzXDJcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAxYjlcdTAxYmFc N1wzMVwyXDJcdTAxYmFcMTNcM1wyXDJcMlx1MDFiYlx1MDFiZFw3XHUwMDg0DQo+ICIpDQo+IA0K PiArDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDFiY1x1MDFiYlwzXDJcMlwyXHUwMWJjXHUwMWJkXDNc MlwyXDJcdTAxYmRcdTAxYmUiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwMWJl XHUwMWMwXDdQXDJcMlx1MDFiZlx1MDFjMVw3T1wyXDJcdTAxYzBcdTAxYmYiKQ0KPiANCj4gKyAg ICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1MDFjMFx1MDFjMVwzXDJcMlwyXHUwMWMxXHUwMWMz XDNcMlwyXDJcdTAxYzIiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTAxYzRcN1x1MDBm YlwyXDJcdTAxYzNcdTAxYzJcM1wyXDJcMlx1MDFjM1x1MDFjNFwzXDIiKQ0KPiANCj4gKw0KPiBi dWYud3JpdGUoIlwyXDJcdTAxYzRcdTAxYzVcM1wyXDJcMlx1MDFjNVx1MDFjNlw3XDI2XDJcMlx1 MDFjNlx1MDFjNyIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlw1XDIwXHRcMlx1MDFjN1x1 MDFjOVw3XDI3XDJcMlx1MDFjOFx1MDFjYVw3XHUwMGZiXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53 cml0ZSgiXHUwMWM5XHUwMWM4XDNcMlwyXDJcdTAxYzlcdTAxY2FcM1wyXDJcMlx1MDFjYVx1MDFj YlwzIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDJcMlwyXHUwMWNiXHUwMWNjXDcgXDJc Mlx1MDFjY1xyXDNcMlwyXDJcdTAxY2RcdTAxY2YiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3 XHUwMDg0XDJcMlx1MDFjZVx1MDFjZFwzXDJcMlwyXHUwMWNlXHUwMWNmXDNcMlwyXDJcdTAxY2Yi KQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDFkMFwzXDJcMlwyXHUwMWQwXHUwMWQyXDdRXDJc Mlx1MDFkMVx1MDFkM1w3T1wyXDJcdTAxZA0KPiAyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJc dTAxZDFcM1wyXDJcMlx1MDFkMlx1MDFkM1wzXDJcMlwyXHUwMWQzXHUwMWQ1XDNcMlwyXDIiKQ0K PiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDFkNFx1MDFkNlw3XHUwMGZiXDJcMlx1MDFkNVx1MDFk NFwzXDJcMlwyXHUwMWQ1XHUwMWQ2IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1 MDFkNlx1MDFkN1wzXDJcMlwyXHUwMWQ3XHUwMWQ4XDdcMjZcMlwyXHUwMWQ4IikNCj4gDQo+ICsN Cj4gYnVmLndyaXRlKCJcdTAxZDlcNVwyMFx0XDJcdTAxZDlcdTAxZGJcN1wyN1wyXDJcdTAxZGFc dTAxZGNcN1x1MDBmYiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDFkYlx1MDFkYVwz XDJcMlwyXHUwMWRiXHUwMWRjXDNcMlwyXDJcdTAxZGNcdTAxZGQiKQ0KPiANCj4gKyAgICAgICAg YnVmLndyaXRlKCJcM1wyXDJcMlx1MDFkZFx1MDFkZVw3DQo+IFwyXDJcdTAxZGVcMTdcM1wyXDJc Mlx1MDFkZlx1MDFlZSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDVcMjJcblwyXHUwMWUwXHUw MWVlXDVcMjRcMTNcMlx1MDFlMVx1MDFlZVw1XDI2XGZcMlx1MDFlMiIpDQo+IA0KPiArDQo+IGJ1 Zi53cml0ZSgiXHUwMWVlXDVcMzBcclwyXHUwMWUzXHUwMWVlXDVcMzJcMTZcMlx1MDFlNFx1MDFl ZVw1XDM0IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDE3XDJcdTAxZTVcdTAxZWVcNVwz NlwyMFwyXHUwMWU2XHUwMWVlXDUgXDIxXDJcdTAxZTciKQ0KPiANCj4gKw0KPiBidWYud3JpdGUo Ilx1MDFlZVw1XCJcMjJcMlx1MDFlOFx1MDFlZVw1JFwyM1wyXHUwMWU5XHUwMWVlXDUmXDI0IikN Cj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlx1MDFlYVx1MDFlZVw1KFwyNVwyXHUwMWViXHUwMWVl XDUqXDI2XDJcdTAxZWNcdTAxZWUiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw1LFwyN1wyXHUw MWVkXHUwMWRmXDNcMlwyXDJcdTAxZWRcdTAxZTBcM1wyXDJcMlx1MDFlZCIpDQo+IA0KPiArDQo+ IGJ1Zi53cml0ZSgiXHUwMWUxXDNcMlwyXDJcdTAxZWRcdTAxZTJcM1wyXDJcMlx1MDFlZFx1MDFl M1wzXDJcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAxZWRcdTAxZTRcM1wyXDJcMlx1 MDFlZFx1MDFlNVwzXDJcMlwyXHUwMWVkXHUwMWU2XDMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUo IlwyXDJcMlx1MDFlZFx1MDFlN1wzXDJcMlwyXHUwMWVkXHUwMWU4XDNcMlwyXDJcdTAxZWRcdTAx ZTkiDQo+ICkNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1MDFlZFx1MDFlYVwzXDJc MlwyXHUwMWVkXHUwMWViXDNcMlwyXDJcdTAxZWQiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRl KCJcdTAxZWNcM1wyXDJcMlx1MDFlZVx1MDFmMVwzXDJcMlwyXHUwMWVmXHUwMWVkXDNcMlwyXDIi KQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTAxZWZcdTAxZjBcM1wyXDJcMlx1MDFmMFwy MVwzXDJcMlwyXHUwMWYxXHUwMWVmXDNcMiIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlwy XDJcdTAxZjJcdTAxZjNcN1NcMlwyXHUwMWYzXHUwMWY3XDdcdTAwZmJcMlwyXHUwMWY0IikNCj4g DQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwMWY1XDdcMzJcMlwyXHUwMWY1XHUwMWY2XDdcdTAw ZmFcMlwyXHUwMWY2XHUwMWY4XDciKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcMzNcMlwy XHUwMWY3XHUwMWY0XDNcMlwyXDJcdTAxZjdcdTAxZjhcM1wyXDJcMlx1MDFmOCIpDQo+IA0KPiAr ICAgICAgICBidWYud3JpdGUoIlx1MDFmOVwzXDJcMlwyXHUwMWY5XHUwMWZhXDcNCj4gXDJcMlx1 MDFmYVwyM1wzXDJcMlwyXHUwMWZiIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwMWZj XDdUXDJcMlx1MDFmY1x1MDIwMFw3XHUwMGZiXDJcMlx1MDFmZFx1MDFmZVw3XDMyIikNCj4gDQo+ ICsgICAgICAgIGJ1Zi53cml0ZSgiXDJcMlx1MDFmZVx1MDFmZlw3XHUwMGZhXDJcMlx1MDFmZlx1 MDIwMVw3XDMzXDJcMlx1MDIwMCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMWZkXDNcMlwy XDJcdTAyMDBcdTAyMDFcM1wyXDJcMlx1MDIwMVx1MDIwMlwzXDJcMlwyIikNCj4gDQo+ICsgICAg ICAgIGJ1Zi53cml0ZSgiXHUwMjAyXHUwMjAzXDcgXDJcMlx1MDIwM1wyNVwzXDJcMlwyXHUwMjA0 XHUwMjA1XDdVXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXHUwMjA1XHUwMjA5XDdcdTAw ZmJcMlwyXHUwMjA2XHUwMjA3XDdcMzJcMlwyXHUwMjA3IikNCj4gDQo+ICsNCj4gYnVmLndyaXRl KCJcdTAyMDhcN1x1MDBmYVwyXDJcdTAyMDhcdTAyMGFcN1wzM1wyXDJcdTAyMDlcdTAyMDZcMyIp DQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwMjA5XHUwMjBhXDNcMlwyXDJcdTAyMGFc dTAyMGJcM1wyXDJcMlx1MDIwYlx1MDIwYyINCj4gKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRl KCJcNw0KPiBcMlwyXHUwMjBjXDI3XDNcMlwyXDJcdTAyMGRcdTAyMGVcN1ZcMlwyXHUwMjBlXHUw MjEyIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDdcdTAwZmJcMlwyXHUwMjBmXHUwMjEw XDdcMzJcMlwyXHUwMjEwXHUwMjExXDdcdTAwZmEiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwy XDJcdTAyMTFcdTAyMTNcN1wzM1wyXDJcdTAyMTJcdTAyMGZcM1wyXDJcMlx1MDIxMlx1MDIxMyIp DQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwyXHUwMjEzXHUwMjE0XDNcMlwyXDJc dTAyMTRcdTAyMTVcNyBcMlwyXHUwMjE1IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMzFcM1wy XDJcMlx1MDIxNlx1MDIxN1w3UlwyXDJcdTAyMTdcdTAyMWJcN1x1MDBmYlwyXDIiKQ0KPiANCj4g Kw0KPiBidWYud3JpdGUoIlx1MDIxOFx1MDIxOVw3XDMyXDJcMlx1MDIxOVx1MDIxYVw3XHUwMGZh XDJcMlx1MDIxYVx1MDIxYyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDdcMzNcMlwyXHUwMjFi XHUwMjE4XDNcMlwyXDJcdTAyMWJcdTAyMWNcM1wyXDJcMlx1MDIxYyIpDQo+IA0KPiArICAgICAg ICBidWYud3JpdGUoIlx1MDIxZFwzXDJcMlwyXHUwMjFkXHUwMjFlXDcNCj4gXDJcMlx1MDIxZVwz M1wzXDJcMlwyXHUwMjFmIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAyMjBcN1dcMlwyXHUw MjIwXHUwMjI0XDdcdTAwZmJcMlwyXHUwMjIxXHUwMjIyXDdcMzIiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlwyXDJcdTAyMjJcdTAyMjNcN1x1MDBmYVwyXDJcdTAyMjNcdTAyMjVcN1wzM1wyXDJc dTAyMjQiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDIyMVwzXDJcMlwyXHUwMjI0XHUwMjI1 XDNcMlwyXDJcdTAyMjVcdTAyMjZcM1wyXDJcMiIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUo Ilx1MDIyNlx1MDIyN1w3IFwyXDJcdTAyMjdcMzVcM1wyXDJcMlx1MDIyOFx1MDIyOVw3WFwyIikN Cj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlx1MDIyOVx1MDIyZFw3XHUwMGZiXDJcMlx1MDIyYVx1 MDIyYlw3XDMyXDJcMlx1MDIyYiIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlx1MDIyY1w3 XHUwMGZhXDJcMlx1MDIyY1x1MDIyZVw3XDMzXDJcMlx1MDIyZFx1MDIyYVwzIikNCj4gDQo+ICsN Cj4gYnVmLndyaXRlKCJcMlwyXDJcdTAyMmRcdTAyMmVcM1wyXDJcMlx1MDIyZVx1MDIyZlwzXDJc MlwyXHUwMjJmXHUwMjMwIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDcNCj4gXDJcMlx1 MDIzMFwzN1wzXDJcMlwyXHUwMjMxXHUwMjMyXDdZXDJcMlx1MDIzMlx1MDIzNiIpDQo+IA0KPiAr ICAgICAgICBidWYud3JpdGUoIlw3XHUwMGZiXDJcMlx1MDIzM1x1MDIzNFw3XDMyXDJcMlx1MDIz NFx1MDIzNVw3XHUwMGZhIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXHUwMjM1XHUwMjM3 XDdcMzNcMlwyXHUwMjM2XHUwMjMzXDNcMlwyXDJcdTAyMzZcdTAyMzciKQ0KPiANCj4gKyAgICAg ICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1MDIzN1x1MDIzOFwzXDJcMlwyXHUwMjM4XHUwMjM5XDcg XDJcMlx1MDIzOSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiIVwzXDJcMlwyXHUwMjNhXHUwMjNi XDdaXDJcMlx1MDIzYlx1MDIzZlw3XHUwMGZiXDJcMlx1MDIzYyIpDQo+IA0KPiArDQo+IGJ1Zi53 cml0ZSgiXHUwMjNkXDdcMzJcMlwyXHUwMjNkXHUwMjNlXDdcdTAwZmFcMlwyXHUwMjNlXHUwMjQw XDciKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcMzNcMlwyXHUwMjNmXHUwMjNjXDNcMlwy XDJcdTAyM2ZcdTAyNDBcM1wyXDJcMlx1MDI0MCIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUo Ilx1MDI0MVwzXDJcMlwyXHUwMjQxXHUwMjQyXDcNCj4gXDJcMlx1MDI0MiNcM1wyXDJcMlx1MDI0 MyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMjQ0XDdcdTAwZmJcMlwyXHUwMjQ0XHUwMjQ4 XDdcdTAwZmJcMlwyXHUwMjQ1XHUwMjQ2IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcN1wzMlwy XDJcdTAyNDZcdTAyNDdcN1x1MDBmYVwyXDJcdTAyNDdcdTAyNDlcN1wzM1wyXDIiKQ0KPiANCj4g Kw0KPiBidWYud3JpdGUoIlx1MDI0OFx1MDI0NVwzXDJcMlwyXHUwMjQ4XHUwMjQ5XDNcMlwyXDJc dTAyNDlcdTAyNGFcMyIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlwyXDJcMlx1MDI0YVx1 MDI0Ylw3DQo+IFwyXDJcdTAyNGIlXDNcMlwyXDJcdTAyNGNcdTAyNGVcNyIpDQo+IA0KPiArDQo+ IGJ1Zi53cml0ZSgiU1wyXDJcdTAyNGRcdTAyNGZcN1x1MDBmYlwyXDJcdTAyNGVcdTAyNGRcM1wy XDJcMlx1MDI0ZSIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlx1MDI0ZlwzXDJcMlwyXHUw MjRmXHUwMjUwXDNcMlwyXDJcdTAyNTBcdTAyNTFcN1wzNlwyIikNCj4gDQo+ICsgICAgICAgIGJ1 Zi53cml0ZSgiXDJcdTAyNTFcdTAyNTJcN1x1MDBmYVwyXDJcdTAyNTJcdTAyNTNcNyBcMlwyXHUw MjUzXCciKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwMjU0XHUwMjU2XDdUXDJc Mlx1MDI1NVx1MDI1N1w3XHUwMGZiXDJcMlx1MDI1NiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgi XHUwMjU1XDNcMlwyXDJcdTAyNTZcdTAyNTdcM1wyXDJcMlx1MDI1N1x1MDI1OFwzXDJcMlwyIikN Cj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAyNThcdTAyNTlcN1wzNlwyXDJcdTAyNTlcdTAyNWFc N1x1MDBmYVwyXDJcdTAyNWFcdTAyNWIiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcNyBc MlwyXHUwMjViKVwzXDJcMlwyXHUwMjVjXHUwMjVlXDdVXDJcMlx1MDI1ZFx1MDI1ZiIpDQo+IA0K PiArDQo+IGJ1Zi53cml0ZSgiXDdcdTAwZmJcMlwyXHUwMjVlXHUwMjVkXDNcMlwyXDJcdTAyNWVc dTAyNWZcM1wyXDJcMlx1MDI1ZiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMjYwXDNcMlwy XDJcdTAyNjBcdTAyNjFcN1wzNlwyXDJcdTAyNjFcdTAyNjJcN1x1MDBmYSIpDQo+IA0KPiArICAg ICAgICBidWYud3JpdGUoIlwyXDJcdTAyNjJcdTAyNjNcNyBcMlwyXHUwMjYzK1wzXDJcMlwyXHUw MjY0XHUwMjY2XDdWIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXHUwMjY1XHUwMjY3XDdc dTAwZmJcMlwyXHUwMjY2XHUwMjY1XDNcMlwyXDJcdTAyNjYiKQ0KPiANCj4gKyAgICAgICAgYnVm LndyaXRlKCJcdTAyNjdcM1wyXDJcMlx1MDI2N1x1MDI2OFwzXDJcMlwyXHUwMjY4XHUwMjY5XDdc MzZcMiIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlwyXHUwMjY5XHUwMjZhXDdcdTAwZmFc MlwyXHUwMjZhXHUwMjZiXDcgXDJcMlx1MDI2Yi0NCj4gXDMiKQ0KPiANCj4gKw0KPiBidWYud3Jp dGUoIlwyXDJcMlx1MDI2Y1x1MDI2ZFw3K1wyXDJcdTAyNmRcdTAyNmVcN1tcMlwyXHUwMjZlXHUw MjZmIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcN1xiXDJcMlx1MDI2Zlx1MDI3MFw1TFwnXDJc dTAyNzBcdTAyNzFcNyFcMlwyXHUwMjcxXHUwMjcyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJc Ny5cMlwyXHUwMjcyXHUwMjczXDdcYlwyXDJcdTAyNzNcdTAyNzRcN1x1MDBlY1wyXDJcdTAyNzQi KQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDI3NVw3XDMwXDJcMlx1MDI3NVx1MDI3Nlw3XHUw MGZhXDJcMlx1MDI3Nlx1MDI3N1w3IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMzFcMlwyXHUw Mjc3XHUwMjc4XDchXDJcMlx1MDI3OFx1MDI3OVw3PVwyXDJcdTAyNzlcdTAyN2EiKQ0KPiANCj4g KyAgICAgICAgYnVmLndyaXRlKCJcN1xiXDJcMlx1MDI3YVx1MDI3Ylw3XHUwMGVjXDJcMlx1MDI3 Ylx1MDI3Y1w3XDMwXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMjdjXHUwMjdkXDdc dTAwZmFcMlwyXHUwMjdkXHUwMjdlXDdcMzFcMlwyXHUwMjdlXHUwMjg0IikNCj4gDQo+ICsNCj4g YnVmLndyaXRlKCJcNyFcMlwyXHUwMjdmXHUwMjgwXDdcdTAwODNcMlwyXHUwMjgwXHUwMjgxXDdc YlwyXDJcdTAyODEiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTAyODJcNVw2MFwzMVwy XHUwMjgyXHUwMjgzXDchXDJcMlx1MDI4M1x1MDI4NVwzXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53 cml0ZSgiXDJcdTAyODRcdTAyN2ZcM1wyXDJcMlx1MDI4NFx1MDI4NVwzXDJcMlwyXHUwMjg1XHUw MjhiIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1MDI4Nlx1MDI4N1w3XHUwMDgx XDJcMlx1MDI4N1x1MDI4OFw3XGJcMlwyXHUwMjg4Ig0KPiApDQo+IA0KPiArICAgICAgICBidWYu d3JpdGUoIlx1MDI4OVw1XDYyXDMyXDJcdTAyODlcdTAyOGFcNyFcMlwyXHUwMjhhXHUwMjhjXDNc MlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlx1MDI4Ylx1MDI4NlwzXDJcMlwyXHUwMjhi XHUwMjhjXDNcMlwyXDJcdTAyOGNcdTAyOTIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJc MlwyXHUwMjhkXHUwMjhlXDdcdTAwODJcMlwyXHUwMjhlXHUwMjhmXDdcYlwyXDJcdTAyOGYiKQ0K PiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTAyOTBcNVw2NlwzNFwyXHUwMjkwXHUwMjkxXDch XDJcMlx1MDI5MVx1MDI5M1wzXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcdTAyOTJc dTAyOGRcM1wyXDJcMlx1MDI5Mlx1MDI5M1wzXDJcMlwyXHUwMjkzXHUwMjk0IikNCj4gDQo+ICsg ICAgICAgIGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTAyOTRcdTAyOTVcNThcMzVcMlx1MDI5NVx1MDI5 Nlw3LVwyXDJcdTAyOTYiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTAyOTdcNyBcMlwy XHUwMjk3L1wzXDJcMlwyXHUwMjk4XHUwMjliXDVMXCdcMlx1MDI5OSIpDQo+IA0KPiArDQo+IGJ1 Zi53cml0ZSgiXHUwMjlhXDcoXDJcMlx1MDI5YVx1MDI5Y1w1TFwnXDJcdTAyOWJcdTAyOTlcM1wy XDJcMlx1MDI5YiIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlx1MDI5Y1wzXDJcMlwyXHUw MjljXHUwMjlmXDNcMlwyXDJcdTAyOWRcdTAyOWVcNyhcMlwyIikNCj4gDQo+ICsgICAgICAgIGJ1 Zi53cml0ZSgiXHUwMjllXHUwMmEwXDVMXCdcMlx1MDI5Zlx1MDI5ZFwzXDJcMlwyXHUwMjlmXHUw MmEwXDMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcMlx1MDJhMFx1MDJhM1wzXDJcMlwy XHUwMmExXHUwMmEyXDcoXDJcMlx1MDJhMlx1MDJhNCIpDQo+IA0KPiArICAgICAgICBidWYud3Jp dGUoIlw1TFwnXDJcdTAyYTNcdTAyYTFcM1wyXDJcMlx1MDJhM1x1MDJhNFwzXDJcMlwyXHUwMmE0 IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcNjFcM1wyXDJcMlx1MDJhNVx1MDJhYVw1XDY0XDMz XDJcdTAyYTZcdTAyYTdcNyhcMlwyXHUwMmE3IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAy YTlcNVw2NFwzM1wyXHUwMmE4XHUwMmE2XDNcMlwyXDJcdTAyYTlcdTAyYWNcM1wyXDIiKQ0KPiAN Cj4gKw0KPiBidWYud3JpdGUoIlwyXHUwMmFhXHUwMmE4XDNcMlwyXDJcdTAyYWFcdTAyYWJcM1wy XDJcMlx1MDJhYlw2M1wzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXDJcdTAyYWNcdTAy YWFcM1wyXDJcMlx1MDJhZFx1MDJhZVx0XDNcMlwyXHUwMmFlXDY1IikNCj4gDQo+ICsNCj4gYnVm LndyaXRlKCJcM1wyXDJcMlx1MDJhZlx1MDJiMFx0XDRcMlwyXHUwMmIwXDY3XDNcMlwyXDJcdTAy YjFcdTAyYjMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw1OlwzNlwyXHUwMmIyXHUwMmIxXDNc MlwyXDJcdTAyYjNcdTAyYjZcM1wyXDJcMlx1MDJiNCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgi XHUwMmIyXDNcMlwyXDJcdTAyYjRcdTAyYjVcM1wyXDJcMlx1MDJiNTlcM1wyXDJcMlx1MDJiNiIp DQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMmI0XDNcMlwyXDJcdTAyYjdcdTAyYzJcNWRcNjNc Mlx1MDJiOFx1MDJjMlw1aFw2NVwyIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwMmI5 XHUwMmMyXDVqXDY2XDJcdTAyYmFcdTAyYzJcNT4NCj4gXDJcdTAyYmJcdTAyYzJcNUAiKQ0KPiAN Cj4gKw0KPiBidWYud3JpdGUoIiFcMlx1MDJiY1x1MDJjMlw1RCNcMlx1MDJiZFx1MDJjMlw1PFwz N1wyXHUwMmJlXHUwMmMyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcNUYkXDJcdTAyYmZcdTAy YzJcNUglXDJcdTAyYzBcdTAyYzJcNVx1MDExY1x1MDA4ZlwyXHUwMmMxIg0KPiApDQo+IA0KPiAr DQo+IGJ1Zi53cml0ZSgiXHUwMmI3XDNcMlwyXDJcdTAyYzFcdTAyYjhcM1wyXDJcMlx1MDJjMVx1 MDJiOVwzXDJcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAyYzFcdTAyYmFcM1wyXDJc Mlx1MDJjMVx1MDJiYlwzXDJcMlwyXHUwMmMxXHUwMmJjXDMiKQ0KPiANCj4gKw0KPiBidWYud3Jp dGUoIlwyXDJcMlx1MDJjMVx1MDJiZFwzXDJcMlwyXHUwMmMxXHUwMmJlXDNcMlwyXDJcdTAyYzFc dTAyYmYiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwMmMxXHUwMmMwXDNcMlwy XDJcdTAyYzI7XDNcMlwyXDJcdTAyYzNcdTAyYzQiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRl KCJcN1x1MDA5YlwyXDJcdTAyYzRcdTAyYzVcN1x1MDBmYlwyXDJcdTAyYzVcdTAyYzZcNyFcMiIp DQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcdTAyYzZcdTAyYzdcN1w2MlwyXDJcdTAyYzdcdTAy YzhcN1xiXDJcMlx1MDJjOFx1MDJjOSIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlw3XHUw MGVjXDJcMlx1MDJjOVx1MDJjYVw3XDMwXDJcMlx1MDJjYVx1MDJjYlw3XHUwMGZhIikNCj4gDQo+ ICsNCj4gYnVmLndyaXRlKCJcMlwyXHUwMmNiXHUwMmQwXDdcMzFcMlwyXHUwMmNjXHUwMmNkXDch XDJcMlx1MDJjZFx1MDJjZSIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlw3XHUwMDljXDJc Mlx1MDJjZVx1MDJjZlw3XGJcMlwyXHUwMmNmXHUwMmQxXDdcdTAwZmFcMiIpDQo+IA0KPiArDQo+ IGJ1Zi53cml0ZSgiXDJcdTAyZDBcdTAyY2NcM1wyXDJcMlx1MDJkMFx1MDJkMVwzXDJcMlwyXHUw MmQxXHUwMmQyIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTAyZDJcdTAy ZDNcNw0KPiBcMlwyXHUwMmQzPVwzXDJcMlwyXHUwMmQ0XHUwMmU1IikNCj4gDQo+ICsNCj4gYnVm LndyaXRlKCJcN1x1MDA5ZFwyXDJcdTAyZDVcdTAyZDZcN1x1MDBmYlwyXDJcdTAyZDZcdTAyZTZc NyFcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcdTAyZDdcdTAyZDhcN1ZcMlwyXHUwMmQ4 XHUwMmU2XDchXDJcMlx1MDJkOVx1MDJkYVw3IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJVXDJc Mlx1MDJkYVx1MDJlNlw3IVwyXDJcdTAyZGJcdTAyZGNcN1RcMlwyXHUwMmRjXHUwMmU2IikNCj4g DQo+ICsNCj4gYnVmLndyaXRlKCJcNyFcMlwyXHUwMmRkXHUwMmRlXDdTXDJcMlx1MDJkZVx1MDJl Nlw3IVwyXDJcdTAyZGZcdTAyZTAiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3WFwyXDJcdTAy ZTBcdTAyZTZcNyFcMlwyXHUwMmUxXHUwMmUyXDdZXDJcMlx1MDJlMlx1MDJlNiIpDQo+IA0KPiAr DQo+IGJ1Zi53cml0ZSgiXDchXDJcMlx1MDJlM1x1MDJlNFw3WlwyXDJcdTAyZTRcdTAyZTZcNyFc MlwyXHUwMmU1XHUwMmQ1IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1MDJlNVx1 MDJkN1wzXDJcMlwyXHUwMmU1XHUwMmQ5XDNcMlwyXDJcdTAyZTUiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlx1MDJkYlwzXDJcMlwyXHUwMmU1XHUwMmRkXDNcMlwyXDJcdTAyZTVcdTAyZGZcM1wy XDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMmU1XHUwMmUxXDNcMlwyXDJcdTAyZTVc dTAyZTNcM1wyXDJcMlx1MDJlNlx1MDJlYlwzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwy XDJcdTAyZTdcdTAyZThcN1x1MDA4ZlwyXDJcdTAyZThcdTAyZTlcN1xiXDJcMlx1MDJlOSIpDQo+ IA0KPiArICAgICAgICBidWYud3JpdGUoIlx1MDJlYVw3XHUwMGZhXDJcMlx1MDJlYVx1MDJlY1w3 IVwyXDJcdTAyZWJcdTAyZTdcM1wyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXHUwMmVi XHUwMmVjXDNcMlwyXDJcdTAyZWNcdTAyZWRcM1wyXDJcMlx1MDJlZFx1MDJlZSIpDQo+IA0KPiAr ICAgICAgICBidWYud3JpdGUoIlw3XHUwMDhlXDJcMlx1MDJlZVx1MDJlZlw3XGJcMlwyXHUwMmVm XHUwMmYwXDdcdTAwZmJcMiIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlwyXHUwMmYwXHUw MmYxXDchXDJcMlx1MDJmMVx1MDJmMlw3W1wyXDJcdTAyZjJcdTAyZjNcNyIpDQo+IA0KPiArICAg ICAgICBidWYud3JpdGUoIlxiXDJcMlx1MDJmM1x1MDJmNFw1TFwnXDJcdTAyZjRcdTAyZjVcNyBc MlwyXHUwMmY1P1wzIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDJcMlwyXHUwMmY2XHUw MzA3XDdcdTAwOWVcMlwyXHUwMmY3XHUwMmY4XDdcdTAwZmJcMlwyIikNCj4gDQo+ICsgICAgICAg IGJ1Zi53cml0ZSgiXHUwMmY4XHUwMzA4XDchXDJcMlx1MDJmOVx1MDJmYVw3VlwyXDJcdTAyZmFc dTAzMDhcNyEiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcMlwyXHUwMmZiXHUwMmZjXDdV XDJcMlx1MDJmY1x1MDMwOFw3IVwyXDJcdTAyZmRcdTAyZmUiKQ0KPiANCj4gKw0KPiBidWYud3Jp dGUoIlw3VFwyXDJcdTAyZmVcdTAzMDhcNyFcMlwyXHUwMmZmXHUwMzAwXDdTXDJcMlx1MDMwMFx1 MDMwOCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDchXDJcMlx1MDMwMVx1MDMwMlw3WFwyXDJc dTAzMDJcdTAzMDhcNyFcMlwyXHUwMzAzXHUwMzA0IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJc N1lcMlwyXHUwMzA0XHUwMzA4XDchXDJcMlx1MDMwNVx1MDMwNlw3WlwyXDJcdTAzMDZcdTAzMDgi KQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcNyFcMlwyXHUwMzA3XHUwMmY3XDNcMlwyXDJc dTAzMDdcdTAyZjlcM1wyXDJcMlx1MDMwNyIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlx1 MDJmYlwzXDJcMlwyXHUwMzA3XHUwMmZkXDNcMlwyXDJcdTAzMDdcdTAyZmZcM1wyXDJcMiIpDQo+ IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMzA3XHUwMzAxXDNcMlwyXDJcdTAzMDdcdTAzMDNcM1wy XDJcMlx1MDMwN1x1MDMwNVwzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXDJcdTAzMDhc dTAzMGRcM1wyXDJcMlx1MDMwOVx1MDMwYVw3XHUwMDhmXDJcMlx1MDMwYSIpDQo+IA0KPiArICAg ICAgICBidWYud3JpdGUoIlx1MDMwYlw3XGJcMlwyXHUwMzBiXHUwMzBjXDdcdTAwZmFcMlwyXHUw MzBjXHUwMzBlXDchIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXHUwMzBkXHUwMzA5XDNc MlwyXDJcdTAzMGRcdTAzMGVcM1wyXDJcMlx1MDMwZVx1MDMwZiIpDQo+IA0KPiArDQo+IGJ1Zi53 cml0ZSgiXDNcMlwyXDJcdTAzMGZcdTAzMTBcN1x1MDA5Y1wyXDJcdTAzMTBcdTAzMTFcN1xiXDJc Mlx1MDMxMSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMzE2XDVCXCJcMlx1MDMxMlx1MDMx M1w3KFwyXDJcdTAzMTNcdTAzMTVcNUJcIlwyXHUwMzE0IikNCj4gDQo+ICsNCj4gYnVmLndyaXRl KCJcdTAzMTJcM1wyXDJcMlx1MDMxNVx1MDMxOFwzXDJcMlwyXHUwMzE2XHUwMzE0XDNcMlwyXDIi KQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDMxNlx1MDMxN1wzXDJcMlwyXHUwMzE3XHUwMzE5 XDNcMlwyXDJcdTAzMThcdTAzMTZcMyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUw MzE5XHUwMzI5XDchXDJcMlx1MDMxYVx1MDMxYlw3XHUwMDhlXDJcMlx1MDMxYiIpDQo+IA0KPiAr ICAgICAgICBidWYud3JpdGUoIlx1MDMxY1w3XGJcMlwyXHUwMzFjXHUwMzFkXDdcdTAwZmJcMlwy XHUwMzFkXHUwMzJhXDchIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXHUwMzFlXHUwMzFm XDdcdTAwOGVcMlwyXHUwMzFmXHUwMzIwXDdcYlwyXDJcdTAzMjAiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlx1MDMyMVw3XHUwMGVjXDJcMlx1MDMyMVx1MDMyMlw3XDMwXDJcMlx1MDMyMlx1MDMy M1w3IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAwZmFcMlwyXHUwMzIzXHUwMzI0XDdcMzFc MlwyXHUwMzI0XHUwMzI1XDchXDJcMlx1MDMyNSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUw MzI2XDdcdTAwOWZcMlwyXHUwMzI2XHUwMzI3XDdcYlwyXDJcdTAzMjdcdTAzMjhcN1x1MDBmYSIp DQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDMyOFx1MDMyYVw3IVwyXDJcdTAzMjlcdTAz MWFcM1wyXDJcMlx1MDMyOVx1MDMxZSIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlwzXDJc MlwyXHUwMzJhXHUwMzJiXDNcMlwyXDJcdTAzMmJcdTAzMmNcN1tcMlwyXHUwMzJjIikNCj4gDQo+ ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwMzJkXDdcYlwyXDJcdTAzMmRcdTAzMmVcNUxcJ1wyXHUw MzJlXHUwMzJmXDcNCj4gXDJcMlx1MDMyZiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiQVwzXDJc MlwyXHUwMzMwXHUwMzMxXDdcdTAwZmFcMlwyXHUwMzMxQ1wzXDJcMlwyXHUwMzMyIikNCj4gDQo+ ICsNCj4gYnVmLndyaXRlKCJcdTAzMzNcN1x1MDBhMFwyXDJcdTAzMzNcdTAzMzRcN1x1MDBmYlwy XDJcdTAzMzRcdTAzMzkiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3IVwyXDJcdTAzMzVcdTAz MzZcN1x1MDA4ZlwyXDJcdTAzMzZcdTAzMzdcN1xiXDJcMlx1MDMzNyIpDQo+IA0KPiArICAgICAg ICBidWYud3JpdGUoIlx1MDMzOFw3XHUwMGZhXDJcMlx1MDMzOFx1MDMzYVw3IVwyXDJcdTAzMzlc dTAzMzVcM1wyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXHUwMzM5XHUwMzNhXDNcMlwy XDJcdTAzM2FcdTAzNDJcM1wyXDJcMlx1MDMzYlx1MDMzYyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXDdcdTAwOGVcMlwyXHUwMzNjXHUwMzNkXDdcYlwyXDJcdTAzM2RcdTAzM2VcN1x1MDBlY1wy IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDJcdTAzM2VcdTAzM2ZcN1wzMFwyXDJcdTAz M2ZcdTAzNDBcN1x1MDBmYVwyXDJcdTAzNDAiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDM0 MVw3XDMxXDJcMlx1MDM0MVx1MDM0M1w3IVwyXDJcdTAzNDJcdTAzM2JcM1wyXDJcMiIpDQo+IA0K PiArDQo+IGJ1Zi53cml0ZSgiXHUwMzQzXHUwMzQ0XDNcMlwyXDJcdTAzNDRcdTAzNDJcM1wyXDJc Mlx1MDM0NFx1MDM0NVwzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXDJcdTAzNDVcdTAz NDZcM1wyXDJcMlx1MDM0Nlx1MDM0N1w3W1wyXDJcdTAzNDdcdTAzNDgiKQ0KPiANCj4gKyAgICAg ICAgYnVmLndyaXRlKCJcN1xiXDJcMlx1MDM0OFx1MDM0OVw1TFwnXDJcdTAzNDlcdTAzNGFcNyBc MlwyXHUwMzRhRSIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwyXHUwMzRiXHUw MzRjXDdsXDJcMlx1MDM0Y1x1MDM0ZFw1XHUwMTI0XHUwMDkzIikNCj4gDQo+ICsgICAgICAgIGJ1 Zi53cml0ZSgiXDJcdTAzNGRcdTAzNGVcNyBcMlwyXHUwMzRlXHUwMzRmXDU4XDM1XDJcdTAzNGZc dTAzNTAiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcN3NcMlwyXHUwMzUwXHUwMzUxXDcg XDJcMlx1MDM1MUdcM1wyXDJcMlx1MDM1Mlx1MDM1MyIpDQo+IA0KPiArICAgICAgICBidWYud3Jp dGUoIlw3a1wyXDJcdTAzNTNcdTAzNTRcNVx1MDEyNFx1MDA5M1wyXHUwMzU0XHUwMzU1XDcNCj4g XDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMzU1XHUwMzU2XDU4XDM1XDJcdTAzNTZc dTAzNTdcN3NcMlwyXHUwMzU3XHUwMzU4XDciKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCIN Cj4gXDJcMlx1MDM1OElcM1wyXDJcMlx1MDM1OVx1MDM1YVw3XHUwMGZhXDJcMlx1MDM1YVx1MDM1 YiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDchXDJcMlx1MDM1Ylx1MDM1Y1w3XHUwMGZhXDJc Mlx1MDM1Y1x1MDM1ZFw3IVwyXDJcdTAzNWQiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDM1 ZVw3XHUwMGZhXDJcMlx1MDM1ZVx1MDM1Zlw3IVwyXDJcdTAzNWZcdTAzNjBcN1x1MDBmYSIpDQo+ IA0KPiArICAgICAgICBidWYud3JpdGUoIlwyXDJcdTAzNjBcdTAzNjFcNyFcMlwyXHUwMzYxXHUw MzYyXDdcdTAwZmFcMlwyXHUwMzYyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAzNjNcNyFc MlwyXHUwMzYzXHUwMzY0XDdcdTAwZmFcMlwyXHUwMzY0XHUwMzY1XDchXDIiKQ0KPiANCj4gKw0K PiBidWYud3JpdGUoIlwyXHUwMzY1XHUwMzY2XDdcdTAwZmFcMlwyXHUwMzY2XHUwMzY3XDchXDJc Mlx1MDM2N1x1MDM2OCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDdcdTAwZmFcMlwyXHUwMzY4 S1wzXDJcMlwyXHUwMzY5XHUwMzZhXDdcMjZcMlwyXHUwMzZhIikNCj4gDQo+ICsNCj4gYnVmLndy aXRlKCJcdTAzNmJcN1x1MDBmYVwyXDJcdTAzNmJcdTAzNmNcNyFcMlwyXHUwMzZjXHUwMzZkXDdc dTAwZmEiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcMlwyXHUwMzZkXHUwMzZlXDchXDJc Mlx1MDM2ZVx1MDM2Zlw3XHUwMGZhXDJcMlx1MDM2ZiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgi XHUwMzc1XDchXDJcMlx1MDM3MFx1MDM3MVw3XDI2XDJcMlx1MDM3MVx1MDM3Mlw1SiZcMlx1MDM3 MiINCj4gKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDM3M1w3XDI3XDJcMlx1MDM3M1x1MDM3 NlwzXDJcMlwyXHUwMzc0XHUwMzc2XDVKJlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAz NzVcdTAzNzBcM1wyXDJcMlx1MDM3NVx1MDM3NFwzXDJcMlwyXHUwMzc2XHUwMzc3XDMiKQ0KPiAN Cj4gKw0KPiBidWYud3JpdGUoIlwyXDJcMlx1MDM3N1x1MDM3OFw3XDI3XDJcMlx1MDM3OE1cM1wy XDJcMlx1MDM3OVx1MDM3YSIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlw3XHUwMGVjXDJc Mlx1MDM3YVx1MDM3Ylw3XDMwXDJcMlx1MDM3Ylx1MDM3Y1w3XHUwMGZhIikNCj4gDQo+ICsNCj4g YnVmLndyaXRlKCJcMlwyXHUwMzdjXHUwMzdkXDdcMzFcMlwyXHUwMzdkT1wzXDJcMlwyXHUwMzdl XHUwMzdmXDUiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlIqXDJcdTAzN2ZcdTAzODBcNVQrXDJc dTAzODBRXDNcMlwyXDJcdTAzODFcdTAzODJcN1x1MDA4ZSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXDJcMlx1MDM4Mlx1MDM4M1w3XGJcMlwyXHUwMzgzXHUwMzg0XDdcdTAwZmJcMlwyXHUwMzg0 IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwMzg2XDchXDJcMlx1MDM4NVx1MDM4MVwz XDJcMlwyXHUwMzg1XHUwMzg2XDNcMlwyXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDM4 Nlx1MDM4Y1wzXDJcMlwyXHUwMzg3XHUwMzg4XDdcdTAwOGZcMlwyXHUwMzg4XHUwMzg5IikNCj4g DQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDdcYlwyXDJcdTAzODlcdTAzOGFcNVgtDQo+IFwyXHUw MzhhXHUwMzhiXDchXDJcMlx1MDM4Ylx1MDM4ZCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNc MlwyXDJcdTAzOGNcdTAzODdcM1wyXDJcMlx1MDM4Y1x1MDM4ZFwzXDJcMlwyXHUwMzhkIikNCj4g DQo+ICsNCj4gYnVmLndyaXRlKCJcdTAzOTJcM1wyXDJcMlx1MDM4ZVx1MDM4Zlw3XHUwMDkxXDJc Mlx1MDM4Zlx1MDM5MFw3XGIiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcMlwyXHUwMzkw XHUwMzkxXDdcdTAwZmFcMlwyXHUwMzkxXHUwMzkzXDchXDJcMlx1MDM5MiIpDQo+IA0KPiArDQo+ IGJ1Zi53cml0ZSgiXHUwMzhlXDNcMlwyXDJcdTAzOTJcdTAzOTNcM1wyXDJcMlx1MDM5M1NcM1wy XDJcMlx1MDM5NCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMzk1XDdcNjJcMlwyXHUwMzk1 XHUwMzk2XDdcYlwyXDJcdTAzOTZcdTAzOTdcN1x1MDBlYyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXDJcMlx1MDM5N1x1MDM5OFw3XDMwXDJcMlx1MDM5OFx1MDM5OVw3XHUwMGZhXDJcMlx1MDM5 OSIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlx1MDM5YVw3XDMxXDJcMlx1MDM5YVx1MDM5 Ylw3IVwyXDJcdTAzOWJcdTAzOWNcNz1cMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAz OWNcdTAzOWRcN1xiXDJcMlx1MDM5ZFx1MDM5ZVw3XHUwMGVjXDJcMlx1MDM5ZVx1MDM5ZiIpDQo+ IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDdcMzBcMlwyXHUwMzlmXHUwM2EwXDdcdTAwZmFcMlwyXHUw M2EwXHUwM2ExXDdcMzFcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAzYTFVXDNcMlwy XDJcdTAzYTJcdTAzYWJcN35cMlwyXHUwM2EzXHUwM2FiXDd5XDJcMiIpDQo+IA0KPiArDQo+IGJ1 Zi53cml0ZSgiXHUwM2E0XHUwM2FiXDd7XDJcMlx1MDNhNVx1MDNhYlw3XHUwMDgwXDJcMlx1MDNh Nlx1MDNhYiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDd8XDJcMlx1MDNhN1x1MDNhYlw3XDE3 N1wyXDJcdTAzYThcdTAzYWJcN3pcMlwyXHUwM2E5IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0 ZSgiXHUwM2FiXDd9XDJcMlx1MDNhYVx1MDNhMlwzXDJcMlwyXHUwM2FhXHUwM2EzXDNcMlwyXDIi KQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDNhYVx1MDNhNFwzXDJcMlwyXHUwM2FhXHUwM2E1 XDNcMlwyXDJcdTAzYWFcdTAzYTZcMyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUw M2FhXHUwM2E3XDNcMlwyXDJcdTAzYWFcdTAzYThcM1wyXDJcMlx1MDNhYVx1MDNhOSINCj4gKQ0K PiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwM2FiV1wzXDJcMlwyXHUwM2FjXHUwM2Fk XDdcdTAwZmJcMlwyXHUwM2FkIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwM2FlXDdc MzJcMlwyXHUwM2FlXHUwM2FmXDdcdTAwZmFcMlwyXHUwM2FmXHUwM2I5XDciKQ0KPiANCj4gKw0K PiBidWYud3JpdGUoIlwzM1wyXDJcdTAzYjBcdTAzYjVcN1x1MDBmYlwyXDJcdTAzYjFcdTAzYjJc N1wzNFwyXDJcdTAzYjIiDQo+ICkNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAzYjRcNVx1MDE1 ZVx1MDBiMFwyXHUwM2IzXHUwM2IxXDNcMlwyXDJcdTAzYjRcdTAzYjciKQ0KPiANCj4gKw0KPiBi dWYud3JpdGUoIlwzXDJcMlwyXHUwM2I1XHUwM2IzXDNcMlwyXDJcdTAzYjVcdTAzYjZcM1wyXDJc Mlx1MDNiNiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwM2I5XDNcMlwyXDJcdTAzYjdcdTAz YjVcM1wyXDJcMlx1MDNiOFx1MDNhY1wzXDJcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJc dTAzYjhcdTAzYjBcM1wyXDJcMlx1MDNiOVlcM1wyXDJcMlx1MDNiYVx1MDNiY1w3XDM1XDIiKQ0K PiANCj4gKw0KPiBidWYud3JpdGUoIlwyXHUwM2JiXHUwM2JhXDNcMlwyXDJcdTAzYmJcdTAzYmNc M1wyXDJcMlx1MDNiY1x1MDNiZCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTAz YmRcdTAzZTdcN1x1MDBmYVwyXDJcdTAzYmVcdTAzZTdcN1x1MDBkM1wyIikNCj4gDQo+ICsNCj4g YnVmLndyaXRlKCJcMlx1MDNiZlx1MDNlN1w3XHUwMGQ0XDJcMlx1MDNjMFx1MDNlN1w3XHUwMGQ1 XDJcMlx1MDNjMSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwM2U3XDdcdTAwZDZcMlwyXHUw M2MyXHUwM2U3XDdcdTAwZDdcMlwyXHUwM2MzXHUwM2M0IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53 cml0ZSgiXDdcdTAwZmFcMlwyXHUwM2M0XHUwM2M1XDdcMzZcMlwyXHUwM2M1XHUwM2M2XDdcdTAw ZmEiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcdTAzYzZcdTAzYzdcN1wzNlwyXDJcdTAz YzdcdTAzZTdcN1x1MDBmYVwyXDJcdTAzYzgiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJc dTAzYzlcN1x1MDBmYVwyXDJcdTAzYzlcdTAzY2FcN1wzN1wyXDJcdTAzY2FcdTAzY2JcNyIpDQo+ IA0KPiArICAgICAgICBidWYud3JpdGUoIlx1MDBmYVwyXDJcdTAzY2JcdTAzY2NcN1wzN1wyXDJc dTAzY2NcdTAzZTdcN1x1MDBmYVwyIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDJcdTAz Y2RcdTAzY2VcN1x1MDBmYVwyXDJcdTAzY2VcdTAzY2ZcNw0KPiBcMlwyXHUwM2NmXHUwM2QwIikN Cj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDdcdTAwZmFcMlwyXHUwM2QwXHUwM2QxXDcNCj4g XDJcMlx1MDNkMVx1MDNkMlw1TFwnXDJcdTAzZDIiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRl KCJcdTAzZDNcNw0KPiBcMlwyXHUwM2QzXHUwM2Q0XDdcdTAwZWNcMlwyXHUwM2Q0XHUwM2Q1XDdc MzAiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcdTAzZDVcdTAzZDZcN1x1MDBmYVwyXDJc dTAzZDZcdTAzZDdcN1wzMVwyXDJcdTAzZDciKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDNl N1wzXDJcMlwyXHUwM2Q4XHUwM2Q5XDdcdTAwZWNcMlwyXHUwM2Q5XHUwM2RhXDdcMzAiKQ0KPiAN Cj4gKw0KPiBidWYud3JpdGUoIlwyXDJcdTAzZGFcdTAzZGJcN1x1MDBmYVwyXDJcdTAzZGJcdTAz ZTdcN1wzMVwyXDJcdTAzZGMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDNkZFw3XDI2XDJc Mlx1MDNkZFx1MDNlMlw3XHUwMGZhXDJcMlx1MDNkZVx1MDNkZlw3IikNCj4gDQo+ICsNCj4gYnVm LndyaXRlKCIhXDJcMlx1MDNkZlx1MDNlMVw3XHUwMGZhXDJcMlx1MDNlMFx1MDNkZVwzXDJcMlwy XHUwM2UxIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAzZTRcM1wyXDJcMlx1MDNlMlx1MDNl MFwzXDJcMlwyXHUwM2UyXHUwM2UzXDNcMlwyXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1 MDNlM1x1MDNlNVwzXDJcMlwyXHUwM2U0XHUwM2UyXDNcMlwyXDJcdTAzZTVcdTAzZTdcNyIpDQo+ IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDI3XDJcMlx1MDNlNlx1MDNiYlwzXDJcMlwyXHUwM2U2XHUw M2JlXDNcMlwyXDJcdTAzZTYiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTAzYmZcM1wy XDJcMlx1MDNlNlx1MDNjMFwzXDJcMlwyXHUwM2U2XHUwM2MxXDNcMlwyXDIiKQ0KPiANCj4gKw0K PiBidWYud3JpdGUoIlx1MDNlNlx1MDNjMlwzXDJcMlwyXHUwM2U2XHUwM2MzXDNcMlwyXDJcdTAz ZTZcdTAzYzhcMyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwM2U2XHUwM2NkXDNc MlwyXDJcdTAzZTZcdTAzZDhcM1wyXDJcMlx1MDNlNlx1MDNkYyIpDQo+IA0KPiArICAgICAgICBi dWYud3JpdGUoIlwzXDJcMlwyXHUwM2U3W1wzXDJcMlwyXHUwM2U4XHUwM2U5XDdcdTAwOTJcMlwy XHUwM2U5IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwM2VhXDdcYlwyXDJcdTAzZWFc dTAzZWJcN1x0XDJcMlx1MDNlYlx1MDNlY1w3XDMwXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUo IlwyXHUwM2VjXHUwM2VkXDdcdTAwZmFcMlwyXHUwM2VkXHUwM2VlXDdcMzFcMlwyXHUwM2VlIikN Cj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXVwzXDJcMlwyXHUwM2VmXHUwM2YwXDdcdTAwOTNc MlwyXHUwM2YwX1wzXDJcMlwyXHUwM2YxIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUw M2Y0XDVcXC9cMlx1MDNmMlx1MDNmNFw1Xlw2MFwyXHUwM2YzXHUwM2YxXDNcMlwyXDIiKQ0KPiAN Cj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTAzZjNcdTAzZjJcM1wyXDJcMlx1MDNmNGFcM1wyXDJc Mlx1MDNmNVx1MDNmYVw1YFw2MSIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlwyXHUwM2Y2 XHUwM2Y3XDchXDJcMlx1MDNmN1x1MDNmOVw1YFw2MVwyXHUwM2Y4XHUwM2Y2IikNCj4gDQo+ICsg ICAgICAgIGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTAzZjlcdTAzZmNcM1wyXDJcMlx1MDNmYVx1MDNm OFwzXDJcMlwyXHUwM2ZhIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwM2ZiXDNcMlwy XDJcdTAzZmJjXDNcMlwyXDJcdTAzZmNcdTAzZmFcM1wyXDJcMlx1MDNmZCIpDQo+IA0KPiArICAg ICAgICBidWYud3JpdGUoIlx1MDNmZVw3XDY3XDJcMlx1MDNmZVx1MDNmZlw3L1wyXDJcdTAzZmZc dTA0MDBcN1xiXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNDAwXHUwNDAxXDdcdTAw ZmFcMlwyXHUwNDAxXHUwNDAyXDchXDJcMlx1MDQwMlx1MDQwMyIpDQo+IA0KPiArDQo+IGJ1Zi53 cml0ZSgiXDcuXDJcMlx1MDQwM1x1MDQwNFw3XGJcMlwyXHUwNDA0XHUwNDA1XDdcdTAwZWNcMlwy XHUwNDA1IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA0MDZcN1wzMFwyXDJcdTA0MDZcdTA0 MDdcN1x1MDBmYVwyXDJcdTA0MDdcdTA0MDhcNyIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUo IlwzMVwyXDJcdTA0MDhcdTA0MGNcNw0KPiBcMlwyXHUwNDA5XHUwNDBiXDVmXDY0XDJcdTA0MGFc dTA0MDkiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwNDBiXHUwNDBlXDNcMlwy XDJcdTA0MGNcdTA0MGFcM1wyXDJcMlx1MDQwYyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUw NDBkXDNcMlwyXDJcdTA0MGRcdTA0MGZcM1wyXDJcMlx1MDQwZVx1MDQwY1wzXDJcMlwyIikNCj4g DQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwNDBmXHUwNDEwXDdcNjZcMlwyXHUwNDEwXHUwNDEx XDcgXDJcMlx1MDQxMWVcM1wyXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXHUwNDEyXHUw NDIyXDVqXDY2XDJcdTA0MTNcdTA0MjJcNWxcNjdcMlx1MDQxNFx1MDQyMiIpDQo+IA0KPiArDQo+ IGJ1Zi53cml0ZSgiXDVuOFwyXHUwNDE1XHUwNDIyXDVcdTAwYTRTXDJcdTA0MTZcdTA0MjJcNXA5 XDJcdTA0MTciKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDQyMlw1XHUwMDg4RVwyXHUwNDE4 XHUwNDIyXDVcdTAwZjh9XDJcdTA0MTlcdTA0MjJcNSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgi XHUwMTE4XHUwMDhkXDJcdTA0MWFcdTA0MjJcNVx1MDExYVx1MDA4ZVwyXHUwNDFiXHUwNDIyIikN Cj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcNVx1MDExMFx1MDA4OVwyXHUwNDFjXHUwNDIyXDVcdTAx MWNcdTAwOGZcMlx1MDQxZFx1MDQyMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDVcdTAxMjBc dTAwOTFcMlx1MDQxZVx1MDQxZlw1XHUwMDk2TFwyXHUwNDFmXHUwNDIwXDciKQ0KPiANCj4gKyAg ICAgICAgYnVmLndyaXRlKCINCj4gXDJcMlx1MDQyMFx1MDQyMlwzXDJcMlwyXHUwNDIxXHUwNDEy XDNcMlwyXDJcdTA0MjFcdTA0MTMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUw NDIxXHUwNDE0XDNcMlwyXDJcdTA0MjFcdTA0MTVcM1wyXDJcMlx1MDQyMSIpDQo+IA0KPiArDQo+ IGJ1Zi53cml0ZSgiXHUwNDE2XDNcMlwyXDJcdTA0MjFcdTA0MTdcM1wyXDJcMlx1MDQyMVx1MDQx OFwzXDJcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA0MjFcdTA0MTlcM1wyXDJcMlx1 MDQyMVx1MDQxYVwzXDJcMlwyXHUwNDIxXHUwNDFiXDMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUo IlwyXDJcMlx1MDQyMVx1MDQxY1wzXDJcMlwyXHUwNDIxXHUwNDFkXDNcMlwyXDJcdTA0MjFcdTA0 MWUiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwNDIyZ1wzXDJcMlwyXHUwNDIz XHUwNDI0XDc4XDJcMlx1MDQyNFx1MDQyNSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDcvXDJc Mlx1MDQyNVx1MDQyNlw3XGJcMlwyXHUwNDI2XHUwNDI3XDdcdTAwZmFcMlwyXHUwNDI3IikNCj4g DQo+ICsNCj4gYnVmLndyaXRlKCJcdTA0MzZcNyFcMlwyXHUwNDI4XHUwNDI5XDc5XDJcMlx1MDQy OVx1MDQyYVw3XGJcMlwyXHUwNDJhIg0KPiApDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNDJi XDdcdTAwZWNcMlwyXHUwNDJiXHUwNDJjXDdcMzBcMlwyXHUwNDJjXHUwNDJkXDciKQ0KPiANCj4g KyAgICAgICAgYnVmLndyaXRlKCJcdTAwZmFcMlwyXHUwNDJkXHUwNDJlXDdcMzFcMlwyXHUwNDJl XHUwNDJmXDcNCj4gXDJcMlx1MDQyZiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNDMwXDc6 XDJcMlx1MDQzMFx1MDQzMVw3XGJcMlwyXHUwNDMxXHUwNDMyXDVMXCdcMlx1MDQzMiIpDQo+IA0K PiArICAgICAgICBidWYud3JpdGUoIlx1MDQzM1w3IFwyXDJcdTA0MzNcdTA0MzVcM1wyXDJcMlx1 MDQzNFx1MDQyOFwzXDJcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA0MzVcdTA0Mzhc M1wyXDJcMlx1MDQzNlx1MDQzNFwzXDJcMlwyXHUwNDM2XHUwNDM3XDMiKQ0KPiANCj4gKw0KPiBi dWYud3JpdGUoIlwyXDJcMlx1MDQzN1x1MDQzY1wzXDJcMlwyXHUwNDM4XHUwNDM2XDNcMlwyXDJc dTA0MzlcdTA0M2IiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw1Zlw2NFwyXHUwNDNhXHUwNDM5 XDNcMlwyXDJcdTA0M2JcdTA0M2VcM1wyXDJcMlx1MDQzYyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXHUwNDNhXDNcMlwyXDJcdTA0M2NcdTA0M2RcM1wyXDJcMlx1MDQzZFx1MDQzZlwzXDJcMlwy IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwNDNlXHUwNDNjXDNcMlwyXDJcdTA0M2Zc dTA0NDBcN1w2NlwyXDJcdTA0NDBcdTA0NDEiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJc NyBcMlwyXHUwNDQxaVwzXDJcMlwyXHUwNDQyXHUwNDQzXDVcXC9cMlx1MDQ0M1x1MDQ0NCIpDQo+ IA0KPiArICAgICAgICBidWYud3JpdGUoIlw3DQo+IFwyXDJcdTA0NDRrXDNcMlwyXDJcdTA0NDVc dTA0NDZcNV5cNjBcMlx1MDQ0Nlx1MDQ0NyIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlw3 DQo+IFwyXDJcdTA0NDdtXDNcMlwyXDJcdTA0NDhcdTA0NDlcN1x1MDA5NFwyXDJcdTA0NDlcdTA0 NGEiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3XHUwMGZiXDJcMlx1MDQ0YVx1MDQ0Ylw3IVwy XDJcdTA0NGJcdTA0NGNcNVx1MDEyNFx1MDA5MyIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUo IlwyXHUwNDRjXHUwNDRkXDdcdTAwOTVcMlwyXHUwNDRkXHUwNDRlXDcNCj4gXDJcMlx1MDQ0ZW9c MyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwNDRmXHUwNDUzXDVyOlwyXHUwNDUw XHUwNDUzXDV6PlwyXHUwNDUxXHUwNDUzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcNX5AXDJc dTA0NTJcdTA0NGZcM1wyXDJcMlx1MDQ1Mlx1MDQ1MFwzXDJcMlwyXHUwNDUyXHUwNDUxDQo+ICIp DQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA0NTNxXDNcMlwyXDJcdTA0NTRcdTA0 NTVcNztcMlwyXHUwNDU1XHUwNDU2IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcNz5cMlwyXHUw NDU2XHUwNDU3XDdcYlwyXDJcdTA0NTdcdTA0NThcN1x1MDBlY1wyXDJcdTA0NTgiKQ0KPiANCj4g KyAgICAgICAgYnVmLndyaXRlKCJcdTA0NTlcN1wzMFwyXDJcdTA0NTlcdTA0NWFcN1x1MDBmYVwy XDJcdTA0NWFcdTA0NWZcNyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDMxXDJcMlx1MDQ1Ylx1 MDQ1Y1w3IVwyXDJcdTA0NWNcdTA0NWRcN0BcMlwyXHUwNDVkXHUwNDVlIikNCj4gDQo+ICsNCj4g YnVmLndyaXRlKCJcN1xiXDJcMlx1MDQ1ZVx1MDQ2MFw1djxcMlx1MDQ1Zlx1MDQ1YlwzXDJcMlwy XHUwNDVmXHUwNDYwIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA0NjBc dTA0NzVcM1wyXDJcMlx1MDQ2MVx1MDQ2Mlw3IVwyXDJcdTA0NjIiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlx1MDQ2NFw1Ylw2MlwyXHUwNDYzXHUwNDYxXDNcMlwyXDJcdTA0NjNcdTA0NjRcM1wy XDJcMiIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlx1MDQ2NFx1MDQ2NVwzXDJcMlwyXHUw NDY1XHUwNDc2XDcgXDJcMlx1MDQ2Nlx1MDQ2N1w3IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCIh XDJcMlx1MDQ2N1x1MDQ2OVw1Ylw2MlwyXHUwNDY4XHUwNDY2XDNcMlwyXDJcdTA0NjhcdTA0Njki KQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1MDQ2OVx1MDQ3MVwzXDJcMlwy XHUwNDZhXHUwNDZlXDchXDJcMlx1MDQ2YiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNDZk XDV0O1wyXHUwNDZjXHUwNDZiXDNcMlwyXDJcdTA0NmRcdTA0NzBcM1wyXDJcMlx1MDQ2ZSIpDQo+ IA0KPiArICAgICAgICBidWYud3JpdGUoIlx1MDQ2Y1wzXDJcMlwyXHUwNDZlXHUwNDZmXDNcMlwy XDJcdTA0NmZcdTA0NzJcM1wyXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNDcwXHUw NDZlXDNcMlwyXDJcdTA0NzFcdTA0NmFcM1wyXDJcMlx1MDQ3MVx1MDQ3MlwzIikNCj4gDQo+ICsN Cj4gYnVmLndyaXRlKCJcMlwyXDJcdTA0NzJcdTA0NzNcM1wyXDJcMlx1MDQ3M1x1MDQ3NFw3PFwy XDJcdTA0NzRcdTA0NzYiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcNyBcMlwyXHUwNDc1 XHUwNDYzXDNcMlwyXDJcdTA0NzVcdTA0NjhcM1wyXDJcMlx1MDQ3NiIpDQo+IA0KPiArDQo+IGJ1 Zi53cml0ZSgic1wzXDJcMlwyXHUwNDc3XHUwNDdhXDVwOVwyXHUwNDc4XHUwNDdhXDVcdTAwODhF XDJcdTA0NzkiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDQ3N1wzXDJcMlwyXHUwNDc5XHUw NDc4XDNcMlwyXDJcdTA0N2F1XDNcMlwyXDJcdTA0N2IiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUo Ilx1MDQ4MFw1eD1cMlx1MDQ3Y1x1MDQ3ZFw3KFwyXDJcdTA0N2RcdTA0N2ZcNXg9XDJcdTA0N2Ui KQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDQ3Y1wzXDJcMlwyXHUwNDdmXHUwNDgyXDNcMlwy XDJcdTA0ODBcdTA0N2VcM1wyXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNDgwXHUw NDgxXDNcMlwyXDJcdTA0ODF3XDNcMlwyXDJcdTA0ODJcdTA0ODBcM1wyXDIiKQ0KPiANCj4gKw0K PiBidWYud3JpdGUoIlwyXHUwNDgzXHUwNDg0XHRcNVwyXDJcdTA0ODR5XDNcMlwyXDJcdTA0ODVc dTA0ODZcNz5cMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcdTA0ODZcdTA0ODdcNz1cMlwy XHUwNDg3XHUwNDg4XDdcYlwyXDJcdTA0ODhcdTA0ODkiKQ0KPiANCj4gKyAgICAgICAgYnVmLndy aXRlKCJcN1x1MDBlY1wyXDJcdTA0ODlcdTA0OGFcN1wzMFwyXDJcdTA0OGFcdTA0OGJcN1x1MDBm YSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDQ4Ylx1MDQ4Y1w3XDMxXDJcMlx1MDQ4 Y1x1MDQ4ZFw3IVwyXDJcdTA0OGRcdTA0OGUiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3Plwy XDJcdTA0OGVcdTA0OGZcN1xiXDJcMlx1MDQ4Zlx1MDQ5MFw3XHUwMGVjXDJcMlx1MDQ5MCIpDQo+ IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNDkxXDdcMzBcMlwyXHUwNDkxXHUwNDkyXDdcdTAwZmFc MlwyXHUwNDkyXHUwNDlhXDciKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzMVwyXDJcdTA0OTNc dTA0OTRcNyFcMlwyXHUwNDk0XHUwNDk1XDc+XDJcMlx1MDQ5NVx1MDQ5NiIpDQo+IA0KPiArICAg ICAgICBidWYud3JpdGUoIlw3XGJcMlwyXHUwNDk2XHUwNDk3XDdcdTAwZWNcMlwyXHUwNDk3XHUw NDk4XDdcMzBcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA0OThcdTA0OTlcN1x1MDBm YVwyXDJcdTA0OTlcdTA0OWJcN1wzMVwyXDJcdTA0OWFcdTA0OTMiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlwzXDJcMlwyXHUwNDlhXHUwNDliXDNcMlwyXDJcdTA0OWJcdTA0YWNcM1wyXDJcMlx1 MDQ5YyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNDlkXDchXDJcMlx1MDQ5ZFx1MDQ5ZVw3 QFwyXDJcdTA0OWVcdTA0OWZcN1xiXDJcMlx1MDQ5ZiINCj4gKQ0KPiANCj4gKw0KPiBidWYud3Jp dGUoIlx1MDRhNFw1fD9cMlx1MDRhMFx1MDRhMVw3KFwyXDJcdTA0YTFcdTA0YTNcNXw/XDJcdTA0 YTIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDRhMFwzXDJcMlwyXHUwNGEzXHUwNGE2XDNc MlwyXDJcdTA0YTRcdTA0YTJcM1wyXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNGE0 XHUwNGE1XDNcMlwyXDJcdTA0YTVcdTA0YTdcM1wyXDJcMlx1MDRhNlx1MDRhNFwzIikNCj4gDQo+ ICsNCj4gYnVmLndyaXRlKCJcMlwyXDJcdTA0YTdcdTA0YThcNyFcMlwyXHUwNGE4XHUwNGE5XDd0 XDJcMlx1MDRhOVx1MDRhYSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDdcYlwyXDJcdTA0YWFc dTA0YWJcN1x1MDBmYVwyXDJcdTA0YWJcdTA0YWRcM1wyXDJcMlx1MDRhYyIpDQo+IA0KPiArDQo+ IGJ1Zi53cml0ZSgiXHUwNDljXDNcMlwyXDJcdTA0YWNcdTA0YWRcM1wyXDJcMlx1MDRhZFx1MDRi MFwzXDJcMlwyIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwNGFlXHUwNGFmXDchXDJc Mlx1MDRhZlx1MDRiMVw1Ylw2MlwyXHUwNGIwXHUwNGFlXDMiKQ0KPiANCj4gKw0KPiBidWYud3Jp dGUoIlwyXDJcMlx1MDRiMFx1MDRiMVwzXDJcMlwyXHUwNGIxXHUwNGIyXDNcMlwyXDJcdTA0YjJc dTA0YjMiDQo+ICkNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDcNCj4gXDJcMlx1MDRiM3tc M1wyXDJcMlx1MDRiNFx1MDRiN1w3XHUwMGZhXDJcMlx1MDRiNVx1MDRiNyIpDQo+IA0KPiArICAg ICAgICBidWYud3JpdGUoIlw1VixcMlx1MDRiNlx1MDRiNFwzXDJcMlwyXHUwNGI2XHUwNGI1XDNc MlwyXDJcdTA0Yjd9IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1MDRiOFx1MDRi Ylw1XHUwMDgwQVwyXHUwNGI5XHUwNGJiXDVcdTAwODZEXDIiKQ0KPiANCj4gKw0KPiBidWYud3Jp dGUoIlx1MDRiYVx1MDRiOFwzXDJcMlwyXHUwNGJhXHUwNGI5XDNcMlwyXDJcdTA0YmJcMTc3XDNc MiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDRiY1x1MDRlY1w3blwyXDJcdTA0YmRc dTA0YmVcNypcMlwyXHUwNGJlXHUwNGJmIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDdc YlwyXDJcdTA0YmZcdTA0YzBcN1x1MDBlY1wyXDJcdTA0YzBcdTA0YzFcN1wzMFwyXDIiKQ0KPiAN Cj4gKw0KPiBidWYud3JpdGUoIlx1MDRjMVx1MDRjMlw3XHUwMGZhXDJcMlx1MDRjMlx1MDRjM1w3 XDMxXDJcMlx1MDRjM1x1MDRjNCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDchXDJcMlx1MDRj NFx1MDRjNVw3b1wyXDJcdTA0YzVcdTA0YzZcN1xiXDJcMlx1MDRjNlx1MDRjNyIpDQo+IA0KPiAr DQo+IGJ1Zi53cml0ZSgiXDVMXCdcMlx1MDRjN1x1MDRjOFw3IVwyXDJcdTA0YzhcdTA0YzlcNy9c MlwyXHUwNGM5XHUwNGNhIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcN1xiXDJcMlx1MDRjYVx1 MDRjYlw3XHUwMGZhXDJcMlx1MDRjYlx1MDRjY1w3IVwyXDJcdTA0Y2MiKQ0KPiANCj4gKw0KPiBi dWYud3JpdGUoIlx1MDRjZFw3XHUwMDkwXDJcMlx1MDRjZFx1MDRjZVw3XGJcMlwyXHUwNGNlXHUw NGNmXDdcdTAwZmEiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcdTA0Y2ZcdTA0ZDBcNyFc MlwyXHUwNGQwXHUwNGVkXDNcMlwyXDJcdTA0ZDFcdTA0ZDIiKQ0KPiANCj4gKw0KPiBidWYud3Jp dGUoIlw3b1wyXDJcdTA0ZDJcdTA0ZDNcN1xiXDJcMlx1MDRkM1x1MDRkNFw1TFwnXDJcdTA0ZDRc dTA0ZDUiDQo+ICkNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcNyFcMlwyXHUwNGQ1XHUwNGQ2XDcv XDJcMlx1MDRkNlx1MDRkN1w3XGJcMlwyXHUwNGQ3XHUwNGQ4Ig0KPiApDQo+IA0KPiArDQo+IGJ1 Zi53cml0ZSgiXDdcdTAwZmFcMlwyXHUwNGQ4XHUwNGQ5XDchXDJcMlx1MDRkOVx1MDRkYVw3XHUw MDkwXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXHUwNGRhXHUwNGRiXDdcYlwyXDJcdTA0 ZGJcdTA0ZGNcN1x1MDBmYVwyXDJcdTA0ZGNcdTA0ZGQNCj4gIikNCj4gDQo+ICsNCj4gYnVmLndy aXRlKCJcNyFcMlwyXHUwNGRkXHUwNGVkXDNcMlwyXDJcdTA0ZGVcdTA0ZGZcNy9cMlwyXHUwNGRm XHUwNGUwIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcN1xiXDJcMlx1MDRlMFx1MDRlMVw3XHUw MGZhXDJcMlx1MDRlMVx1MDRlMlw3IVwyXDJcdTA0ZTIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUo Ilx1MDRlM1w3XHUwMDkwXDJcMlx1MDRlM1x1MDRlOFw3XGJcMlwyXHUwNGU0XHUwNGU1XDdcdTAw ZmIiDQo+ICkNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDJcMlx1MDRlNVx1MDRlOVw3IVwy XDJcdTA0ZTZcdTA0ZTdcN1x1MDBmYVwyXDJcdTA0ZTciKQ0KPiANCj4gKyAgICAgICAgYnVmLndy aXRlKCJcdTA0ZTlcNyFcMlwyXHUwNGU4XHUwNGU0XDNcMlwyXDJcdTA0ZThcdTA0ZTZcM1wyXDJc MiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNGU5XHUwNGVkXDNcMlwyXDJcdTA0ZWFcdTA0 ZWJcN1x1MDBmYVwyXDJcdTA0ZWJcdTA0ZWQiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJc NyFcMlwyXHUwNGVjXHUwNGJkXDNcMlwyXDJcdTA0ZWNcdTA0ZDFcM1wyXDJcMlx1MDRlYyIpDQo+ IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNGRlXDNcMlwyXDJcdTA0ZWNcdTA0ZWFcM1wyXDJcMlx1 MDRlY1x1MDRlZFwzXDJcMlwyIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwNGVkXHUw NGVlXDNcMlwyXDJcdTA0ZWVcdTA0ZjNcNVApXDJcdTA0ZWZcdTA0ZjBcNyEiKQ0KPiANCj4gKw0K PiBidWYud3JpdGUoIlwyXDJcdTA0ZjBcdTA0ZjFcN0BcMlwyXHUwNGYxXHUwNGYyXDdcYlwyXDJc dTA0ZjJcdTA0ZjQiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw1XHUwMDgyQlwyXHUwNGYzXHUw NGVmXDNcMlwyXDJcdTA0ZjNcdTA0ZjRcM1wyXDJcMlx1MDRmNCIpDQo+IA0KPiArDQo+IGJ1Zi53 cml0ZSgiXHUwNGY5XDNcMlwyXDJcdTA0ZjVcdTA0ZjZcNyFcMlwyXHUwNGY2XHUwNGY3XDd0XDJc Mlx1MDRmNyIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlx1MDRmOFw3XGJcMlwyXHUwNGY4 XHUwNGZhXDdcdTAwZmFcMlwyXHUwNGY5XHUwNGY1XDNcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXDJcMlx1MDRmOVx1MDRmYVwzXDJcMlwyXHUwNGZhXHUwNGZkXDNcMlwyXDJcdTA0ZmJcdTA0 ZmMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3IVwyXDJcdTA0ZmNcdTA0ZmVcNVx1MDBiNFtc Mlx1MDRmZFx1MDRmYlwzXDJcMlwyXHUwNGZkIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgi XHUwNGZlXDNcMlwyXDJcdTA0ZmVcdTA0ZmZcM1wyXDJcMlx1MDRmZlx1MDUwMFw3IFwyXDIiKQ0K PiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDUwMFx1MDA4MVwzXDJcMlwyXHUwNTAxXHUwNTA2XDVc dTAwODRDXDJcdTA1MDJcdTA1MDMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3KFwyXDJcdTA1 MDNcdTA1MDVcNVx1MDA4NENcMlx1MDUwNFx1MDUwMlwzXDJcMlwyXHUwNTA1IikNCj4gDQo+ICsN Cj4gYnVmLndyaXRlKCJcdTA1MDhcM1wyXDJcMlx1MDUwNlx1MDUwNFwzXDJcMlwyXHUwNTA2XHUw NTA3XDNcMlwyXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDUwN1x1MDA4M1wzXDJcMlwy XHUwNTA4XHUwNTA2XDNcMlwyXDJcdTA1MDlcdTA1MGNcNyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXHUwMGZhXDJcMlx1MDUwYVx1MDUwY1w1VixcMlx1MDUwYlx1MDUwOVwzXDJcMlwyXHUwNTBi IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA1MGFcM1wyXDJcMlx1MDUwY1x1MDA4NVwzXDJc MlwyXHUwNTBkXHUwNTBlXDdcdTAwOTkiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcdTA1 MGVcdTA1MGZcN1x1MDA5YlwyXDJcdTA1MGZcdTA1MTBcN1xiXDJcMlx1MDUxMCIpDQo+IA0KPiAr DQo+IGJ1Zi53cml0ZSgiXHUwNTExXDdcdTAwZmJcMlwyXHUwNTExXHUwNTEyXDchXDJcMlx1MDUx Mlx1MDUxM1w1VCsiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXHUwNTEzXHUwNTE3XDchXDJc Mlx1MDUxNFx1MDUxNVw1Ylw2MlwyXHUwNTE1XHUwNTE2IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53 cml0ZSgiXDchXDJcMlx1MDUxNlx1MDUxOFwzXDJcMlwyXHUwNTE3XHUwNTE0XDNcMlwyXDJcdTA1 MTciKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDUxOFwzXDJcMlwyXHUwNTE4XHUwNTE5XDNc MlwyXDJcdTA1MTlcdTA1MWFcN1x1MDA5YSIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlwy XDJcdTA1MWFcdTA1MWJcNw0KPiBcMlwyXHUwNTFiXHUwMDg3XDNcMlwyXDJcdTA1MWNcdTA1MjMi KQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw1XHUwMGI4XVwyXHUwNTFkXHUwNTIzXDVcdTAwZTh1 XDJcdTA1MWVcdTA1MjNcNVx1MDBjNiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiZFwyXHUwNTFm XHUwNTIzXDVcdTAwZDRrXDJcdTA1MjBcdTA1MjNcNVx1MDBlMnJcMlx1MDUyMSIpDQo+IA0KPiAr ICAgICAgICBidWYud3JpdGUoIlx1MDUyM1w1XHUwMGYweVwyXHUwNTIyXHUwNTFjXDNcMlwyXDJc dTA1MjJcdTA1MWRcM1wyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXHUwNTIyXHUwNTFl XDNcMlwyXDJcdTA1MjJcdTA1MWZcM1wyXDJcMlx1MDUyMlx1MDUyMCIpDQo+IA0KPiArDQo+IGJ1 Zi53cml0ZSgiXDNcMlwyXDJcdTA1MjJcdTA1MjFcM1wyXDJcMlx1MDUyM1x1MDA4OVwzXDJcMlwy XHUwNTI0IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwNTI1XDVgXDYxXDJcdTA1MjVc dTA1MjZcNyFcMlwyXHUwNTI2XHUwNTMwXDNcMlwyXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUo Ilx1MDUyN1x1MDUzMFw1XHUwMDhjR1wyXHUwNTI4XHUwNTMwXDVcdTAwOGVIXDJcdTA1MjlcdTA1 Mw0KPiAwIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcNVx1MDA5MElcMlx1MDUyYVx1MDUzMFw1 XHUwMDkySlwyXHUwNTJiXHUwNTMwXDVcdTAwOTQiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIktc Mlx1MDUyY1x1MDUzMFw1XHUwMTFjXHUwMDhmXDJcdTA1MmRcdTA1MzBcNVx1MDA5NkxcMiIpDQo+ IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNTJlXHUwNTMwXDVcdTAwOThNXDJcdTA1MmZcdTA1MjRc M1wyXDJcMlx1MDUyZlx1MDUyNyIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwy XHUwNTJmXHUwNTI4XDNcMlwyXDJcdTA1MmZcdTA1MjlcM1wyXDJcMlx1MDUyZiIpDQo+IA0KPiAr ICAgICAgICBidWYud3JpdGUoIlx1MDUyYVwzXDJcMlwyXHUwNTJmXHUwNTJiXDNcMlwyXDJcdTA1 MmZcdTA1MmNcM1wyXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNTJmXHUwNTJkXDNc MlwyXDJcdTA1MmZcdTA1MmVcM1wyXDJcMlx1MDUzMFx1MDA4YlwzIikNCj4gDQo+ICsNCj4gYnVm LndyaXRlKCJcMlwyXDJcdTA1MzFcdTA1MzJcN3BcMlwyXHUwNTMyXHUwNTMzXDdcNjJcMlwyXHUw NTMzXHUwNTM0Ig0KPiApDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlw3XGJcMlwyXHUwNTM0 XHUwNTM1XDdcdTAwZWNcMlwyXHUwNTM1XHUwNTM2XDdcMzBcMlwyIikNCj4gDQo+ICsNCj4gYnVm LndyaXRlKCJcdTA1MzZcdTA1MzdcN1x1MDBmYVwyXDJcdTA1MzdcdTA1MzhcN1wzMVwyXDJcdTA1 MzhcdTA1NDUiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3IVwyXDJcdTA1MzlcdTA1M2FcN0Bc MlwyXHUwNTNhXHUwNTNiXDdcYlwyXDJcdTA1M2JcdTA1NDANCj4gIikNCj4gDQo+ICsNCj4gYnVm LndyaXRlKCJcNVx1MDA5ZVBcMlx1MDUzY1x1MDUzZFw3KFwyXDJcdTA1M2RcdTA1M2ZcNVx1MDA5 ZVBcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNTNlXHUwNTNjXDNcMlwyXDJcdTA1M2Zc dTA1NDJcM1wyXDJcMlx1MDU0MFx1MDUzZVwzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwy XDJcdTA1NDBcdTA1NDFcM1wyXDJcMlx1MDU0MVx1MDU0M1wzXDJcMlwyXHUwNTQyXHUwNTQwIg0K PiApDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwyXHUwNTQzXHUwNTQ0XDchXDJc Mlx1MDU0NFx1MDU0NlwzXDJcMlwyXHUwNTQ1IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA1 MzlcM1wyXDJcMlx1MDU0NVx1MDU0NlwzXDJcMlwyXHUwNTQ2XHUwNTQ3XDNcMlwyXDIiKQ0KPiAN Cj4gKw0KPiBidWYud3JpdGUoIlx1MDU0N1x1MDU0OFw1XHUwMTI0XHUwMDkzXDJcdTA1NDhcdTA1 NGFcN3NcMlwyXHUwNTQ5IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwNTRiXDcgXDJc Mlx1MDU0YVx1MDU0OVwzXDJcMlwyXHUwNTRhXHUwNTRiXDNcMlwyXDIiKQ0KPiANCj4gKw0KPiBi dWYud3JpdGUoIlx1MDU0Ylx1MDA4ZFwzXDJcMlwyXHUwNTRjXHUwNTRkXDdyXDJcMlx1MDU0ZFx1 MDU0ZVw3IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcNjJcMlwyXHUwNTRlXHUwNTRmXDdcYlwy XDJcdTA1NGZcdTA1NTBcN1x1MDBlY1wyXDJcdTA1NTAiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUo Ilx1MDU1MVw3XDMwXDJcMlx1MDU1MVx1MDU1Mlw3XHUwMGZhXDJcMlx1MDU1Mlx1MDU1M1w3IikN Cj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMzFcMlwyXHUwNTUzXHUwNTYwXDchXDJcMlx1MDU1NFx1 MDU1NVw3QFwyXDJcdTA1NTVcdTA1NTYiDQo+ICkNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcN1xi XDJcMlx1MDU1Nlx1MDU1Ylw1XHUwMDllUFwyXHUwNTU3XHUwNTU4XDcoXDJcMlx1MDU1OCIpDQo+ IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNTVhXDVcdTAwOWVQXDJcdTA1NTlcdTA1NTdcM1wyXDJc Mlx1MDU1YVx1MDU1ZFwzXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcdTA1NWJcdTA1 NTlcM1wyXDJcMlx1MDU1Ylx1MDU1Y1wzXDJcMlwyXHUwNTVjXHUwNTVlIikNCj4gDQo+ICsgICAg ICAgIGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA1NWRcdTA1NWJcM1wyXDJcMlx1MDU1ZVx1MDU1Zlw3 IVwyXDJcdTA1NWYiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDU2MVwzXDJcMlwyXHUwNTYw XHUwNTU0XDNcMlwyXDJcdTA1NjBcdTA1NjFcM1wyXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXHUwNTYxXHUwNTYyXDNcMlwyXDJcdTA1NjJcdTA1NjNcNVx1MDEyNFx1MDA5M1wyXHUwNTYz IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwNTY1XDdzXDJcMlx1MDU2NFx1MDU2Nlw3 DQo+IFwyXDJcdTA1NjVcdTA1NjRcM1wyXDJcMlx1MDU2NSIpDQo+IA0KPiArICAgICAgICBidWYu d3JpdGUoIlx1MDU2NlwzXDJcMlwyXHUwNTY2XHUwMDhmXDNcMlwyXDJcdTA1NjdcdTA1NjhcN2xc MlwyIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwNTY4XHUwNTY5XDVcdTAxMjRcdTAw OTNcMlx1MDU2OVx1MDU2YVw3DQo+IFwyXDJcdTA1NmEiKQ0KPiANCj4gKyAgICAgICAgYnVmLndy aXRlKCJcdTA1NmJcNVx1MDBiNFtcMlx1MDU2Ylx1MDU2ZFw3c1wyXDJcdTA1NmNcdTA1NmVcNyBc MiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcdTA1NmRcdTA1NmNcM1wyXDJcMlx1MDU2ZFx1 MDU2ZVwzXDJcMlwyXHUwNTZlXHUwMDkxIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1wyXDJc Mlx1MDU2Zlx1MDU3MFw3XHUwMGE0XDJcMlx1MDU3MFx1MDU3MVw3XHUwMGE1XDIiKQ0KPiANCj4g Kw0KPiBidWYud3JpdGUoIlwyXHUwNTcxXHUwNTcyXDdcYlwyXDJcdTA1NzJcdTA1NzNcN1x1MDBm YVwyXDJcdTA1NzNcdTAwOTMiDQo+ICkNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1 MDU3NFx1MDU3NVw3XHUwMGE2XDJcMlx1MDU3NVx1MDU3Nlw3XGJcMlwyXHUwNTc2Ig0KPiApDQo+ IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNTc3XDdcdTAwZWNcMlwyXHUwNTc3XHUwNTc4XDdcMzBc MlwyXHUwNTc4XHUwNTc5XDciKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDBmYVwyXDJcdTA1 NzlcdTA1N2FcN1wzMVwyXDJcdTA1N2FcdTA1N2JcNyFcMlwyXHUwNTdiIikNCj4gDQo+ICsNCj4g YnVmLndyaXRlKCJcdTAwOTVcM1wyXDJcMlx1MDU3Y1x1MDU3ZFw3XHUwMGViXDJcMlx1MDU3ZFx1 MDU3ZVw3XGIiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcMlwyXHUwNTdlXHUwNTdmXDVM XCdcMlx1MDU3Zlx1MDU4MFw3IVwyXDJcdTA1ODBcdTAwOTciKQ0KPiANCj4gKw0KPiBidWYud3Jp dGUoIlwzXDJcMlwyXHUwNTgxXHUwNTgyXDdxXDJcMlx1MDU4Mlx1MDU4M1w3XDYyXDJcMlx1MDU4 MyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNTg0XDdcYlwyXDJcdTA1ODRcdTA1ODVcN1x1 MDBlY1wyXDJcdTA1ODVcdTA1ODZcN1wzMCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlx1 MDU4Nlx1MDU4N1w3XHUwMGZhXDJcMlx1MDU4N1x1MDU4OFw3XDMxXDJcMlx1MDU4OCIpDQo+IA0K PiArDQo+IGJ1Zi53cml0ZSgiXHUwNThkXDchXDJcMlx1MDU4OVx1MDU4YVw3TVwyXDJcdTA1OGFc dTA1OGJcN1xiXDJcMlx1MDU4Yg0KPiAiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTA1 OGNcN1x1MDBmYVwyXDJcdTA1OGNcdTA1OGVcNyFcMlwyXHUwNThkXHUwNTg5XDNcMiIpDQo+IA0K PiArDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDU4ZFx1MDU4ZVwzXDJcMlwyXHUwNThlXHUwNThmXDNc MlwyXDJcdTA1OGZcdTA1OTAiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcNVx1MDEyNFx1 MDA5M1wyXHUwNTkwXHUwNTkyXDdzXDJcMlx1MDU5MVx1MDU5M1w3DQo+IFwyXDIiKQ0KPiANCj4g Kw0KPiBidWYud3JpdGUoIlx1MDU5Mlx1MDU5MVwzXDJcMlwyXHUwNTkyXHUwNTkzXDNcMlwyXDJc dTA1OTNcdTAwOTlcMyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwNTk0XHUwNTk2 XDVcdTAwOGFGXDJcdTA1OTVcdTA1OTRcM1wyXDJcMlx1MDU5NiIpDQo+IA0KPiArDQo+IGJ1Zi53 cml0ZSgiXHUwNTk5XDNcMlwyXDJcdTA1OTdcdTA1OTVcM1wyXDJcMlx1MDU5N1x1MDU5OFwzXDJc MlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA1OThcdTAwOWJcM1wyXDJcMlx1MDU5OVx1 MDU5N1wzXDJcMlwyXHUwNTlhXHUwNWEyXDUiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDBh MFFcMlx1MDU5Ylx1MDVhMlw1XHUwMGEyUlwyXHUwNTljXHUwNWEyXDVcdTAwYTZUIikNCj4gDQo+ ICsNCj4gYnVmLndyaXRlKCJcMlx1MDU5ZFx1MDVhMlw1XHUwMGE0U1wyXHUwNTllXHUwNWEyXDVc dTAwYThVXDJcdTA1OWYiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDVhMlw1XHUwMGIwWVwy XHUwNWEwXHUwNWEyXDVcdTAwYjJaXDJcdTA1YTFcdTA1OWFcMyIpDQo+IA0KPiArDQo+IGJ1Zi53 cml0ZSgiXDJcMlwyXHUwNWExXHUwNTliXDNcMlwyXDJcdTA1YTFcdTA1OWNcM1wyXDJcMlx1MDVh MVx1MDU5ZCINCj4gKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwNWExXHUwNTll XDNcMlwyXDJcdTA1YTFcdTA1OWZcM1wyXDJcMlx1MDVhMSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXHUwNWEwXDNcMlwyXDJcdTA1YTJcdTAwOWRcM1wyXDJcMlx1MDVhM1x1MDVhY1w3XHUwMGZh IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXHUwNWE0XHUwNWFjXDd5XDJcMlx1MDVhNVx1 MDVhY1w3dlwyXDJcdTA1YTZcdTA1YWMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3dVwyXDJc dTA1YTdcdTA1YWNcN3tcMlwyXHUwNWE4XHUwNWFjXDd8XDJcMlx1MDVhOVx1MDVhYyIpDQo+IA0K PiArDQo+IGJ1Zi53cml0ZSgiXDd6XDJcMlx1MDVhYVx1MDVhY1w3fVwyXDJcdTA1YWJcdTA1YTNc M1wyXDJcMlx1MDVhYlx1MDVhNCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA1 YWJcdTA1YTVcM1wyXDJcMlx1MDVhYlx1MDVhNlwzXDJcMlwyXHUwNWFiIikNCj4gDQo+ICsNCj4g YnVmLndyaXRlKCJcdTA1YTdcM1wyXDJcMlx1MDVhYlx1MDVhOFwzXDJcMlwyXHUwNWFiXHUwNWE5 XDNcMlwyXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDVhYlx1MDVhYVwzXDJcMlwyXHUw NWFjXHUwMDlmXDNcMlwyXDJcdTA1YWRcdTA1YWVcNyIpDQo+IA0KPiArICAgICAgICBidWYud3Jp dGUoImtcMlwyXHUwNWFlXHUwNWFmXDVcdTAxMjRcdTAwOTNcMlx1MDVhZlx1MDViY1w3DQo+IFwy XDJcdTA1YjAiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDViMVw3QFwyXDJcdTA1YjFcdTA1 YjJcN1xiXDJcMlx1MDViMlx1MDViN1w1XHUwMDllIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJQ XDJcdTA1YjNcdTA1YjRcNyhcMlwyXHUwNWI0XHUwNWI2XDVcdTAwOWVQXDJcdTA1YjVcdTA1YjMi DQo+ICkNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1MDViNlx1MDViOVwzXDJcMlwy XHUwNWI3XHUwNWI1XDNcMlwyXDJcdTA1YjciKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDVi OFwzXDJcMlwyXHUwNWI4XHUwNWJhXDNcMlwyXDJcdTA1YjlcdTA1YjdcM1wyXDJcMiIpDQo+IA0K PiArDQo+IGJ1Zi53cml0ZSgiXHUwNWJhXHUwNWJiXDchXDJcMlx1MDViYlx1MDViZFwzXDJcMlwy XHUwNWJjXHUwNWIwXDMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcMlx1MDViY1x1MDVi ZFwzXDJcMlwyXHUwNWJkXHUwNWJlXDNcMlwyXDJcdTA1YmVcdTA1YmYiDQo+ICkNCj4gDQo+ICsg ICAgICAgIGJ1Zi53cml0ZSgiXDVcdTAwYjRbXDJcdTA1YmZcdTA1YzFcN3NcMlwyXHUwNWMwXHUw NWMyXDcNCj4gXDJcMlx1MDVjMSIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlx1MDVjMFwz XDJcMlwyXHUwNWMxXHUwNWMyXDNcMlwyXDJcdTA1YzJcdTAwYTFcM1wyXDJcMiIpDQo+IA0KPiAr DQo+IGJ1Zi53cml0ZSgiXHUwNWMzXHUwNWM0XDdLXDJcMlx1MDVjNFx1MDVjNVw1XHUwMTI0XHUw MDkzXDJcdTA1YzUiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTA1ZDJcNw0KPiBcMlwy XHUwNWM2XHUwNWM3XDdAXDJcMlx1MDVjN1x1MDVjOFw3XGJcMlwyXHUwNWM4IikNCj4gDQo+ICsN Cj4gYnVmLndyaXRlKCJcdTA1Y2RcNVx1MDA5ZVBcMlx1MDVjOVx1MDVjYVw3KFwyXDJcdTA1Y2Fc dTA1Y2NcNVx1MDA5ZSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiUFwyXHUwNWNiXHUwNWM5XDNc MlwyXDJcdTA1Y2NcdTA1Y2ZcM1wyXDJcMlx1MDVjZFx1MDVjYiIpDQo+IA0KPiArICAgICAgICBi dWYud3JpdGUoIlwzXDJcMlwyXHUwNWNkXHUwNWNlXDNcMlwyXDJcdTA1Y2VcdTA1ZDBcM1wyXDJc Mlx1MDVjZiIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlx1MDVjZFwzXDJcMlwyXHUwNWQw XHUwNWQxXDchXDJcMlx1MDVkMVx1MDVkM1wzXDJcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRl KCJcdTA1ZDJcdTA1YzZcM1wyXDJcMlx1MDVkMlx1MDVkM1wzXDJcMlwyXHUwNWQzXHUwNWQ0XDMi KQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcMlx1MDVkNFx1MDVkNVw1XHUwMGI0W1wyXHUw NWQ1XHUwNWQ3XDdzXDJcMlx1MDVkNiIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlx1MDVk OFw3IFwyXDJcdTA1ZDdcdTA1ZDZcM1wyXDJcMlx1MDVkN1x1MDVkOFwzXDJcMlwyIikNCj4gDQo+ ICsNCj4gYnVmLndyaXRlKCJcdTA1ZDhcdTAwYTNcM1wyXDJcMlx1MDVkOVx1MDVlMVw3Y1wyXDJc dTA1ZGFcdTA1ZGJcNSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMGE2VFwyXHUwNWRiXHUw NWRjXDchXDJcMlx1MDVkY1x1MDVlMlwzXDJcMlwyXHUwNWRkIikNCj4gDQo+ICsNCj4gYnVmLndy aXRlKCJcdTA1ZGVcN1xiXDJcMlx1MDVkZVx1MDVkZlw1Wi5cMlx1MDVkZlx1MDVlMFw3IVwyXDJc dTA1ZTAiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDVlMlwzXDJcMlwyXHUwNWUxXHUwNWRh XDNcMlwyXDJcdTA1ZTFcdTA1ZGRcM1wyXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUw NWUyXHUwNWU3XDNcMlwyXDJcdTA1ZTNcdTA1ZTRcN1x1MDA5YlwyXDJcdTA1ZTRcdTA1ZTUiKQ0K PiANCj4gKw0KPiBidWYud3JpdGUoIlw3XGJcMlwyXHUwNWU1XHUwNWU2XDdcdTAwZmJcMlwyXHUw NWU2XHUwNWU4XDchXDJcMlx1MDVlNyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNWUzXDNc MlwyXDJcdTA1ZTdcdTA1ZThcM1wyXDJcMlx1MDVlOFx1MDBhNVwzXDJcMlwyIikNCj4gDQo+ICsN Cj4gYnVmLndyaXRlKCJcdTA1ZTlcdTA1ZWFcN1x1MDA5NlwyXDJcdTA1ZWFcdTA1ZWJcN1xiXDJc Mlx1MDVlYlx1MDVlYyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDVcdTAxMjRcdTAwOTNcMlx1 MDVlY1x1MDBhN1wzXDJcMlwyXHUwNWVkXHUwNWVlXDVcdTAwYWEiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlZcMlx1MDVlZVx1MDBhOVwzXDJcMlwyXHUwNWVmXHUwNWYwXDc/XDJcMlx1MDVmMFx1 MDVmMSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDc+XDJcMlx1MDVmMVx1MDVmMlw3XGJcMlwy XHUwNWYyXHUwNWYzXDdcdTAwZWNcMlwyXHUwNWYzIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0 ZSgiXHUwNWY0XDdcMzBcMlwyXHUwNWY0XHUwNWY1XDdcdTAwZmFcMlwyXHUwNWY1XHUwNWY2XDci KQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzMVwyXDJcdTA1ZjZcdTA1ZjdcNyFcMlwyXHUwNWY3 XHUwNWY4XDdcdTAwOTZcMlwyXHUwNWY4IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA1Zjlc N1xiXDJcMlx1MDVmOVx1MDVmYVw1Wi5cMlx1MDVmYVx1MDVmYlw3IVwyXDJcdTA1ZmIiKQ0KPiAN Cj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTA1ZmNcN0BcMlwyXHUwNWZjXHUwNWZkXDdcYlwyXDJc dTA1ZmRcdTA2MDJcNVx1MDBhYyIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIldcMlx1MDVm ZVx1MDVmZlw3IVwyXDJcdTA1ZmZcdTA2MDBcN3RcMlwyXHUwNjAwXHUwNjAxIikNCj4gDQo+ICsN Cj4gYnVmLndyaXRlKCJcN1xiXDJcMlx1MDYwMVx1MDYwM1w3XHUwMGZhXDJcMlx1MDYwMlx1MDVm ZVwzXDJcMlwyXHUwNjAyIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwNjAzXDNcMlwy XDJcdTA2MDNcdTA2MDhcM1wyXDJcMlx1MDYwNFx1MDYwNVw3IVwyXDIiKQ0KPiANCj4gKyAgICAg ICAgYnVmLndyaXRlKCJcdTA2MDVcdTA2MDdcNVxcL1wyXHUwNjA2XHUwNjA0XDNcMlwyXDJcdTA2 MDdcdTA2MGFcMyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwNjA4XHUwNjA2XDNc MlwyXDJcdTA2MDhcdTA2MDlcM1wyXDJcMlx1MDYwOVx1MDYwYiINCj4gKQ0KPiANCj4gKyAgICAg ICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1MDYwYVx1MDYwOFwzXDJcMlwyXHUwNjBiXHUwNjBjXDcg XDJcMlx1MDYwYyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMGFiXDNcMlwyXDJcdTA2MGRc dTA2MTJcNVx1MDBhZVhcMlx1MDYwZVx1MDYwZlw3KFwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRl KCJcMlx1MDYwZlx1MDYxMVw1XHUwMGFlWFwyXHUwNjEwXHUwNjBlXDNcMlwyXDJcdTA2MTFcdTA2 MTQiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwNjEyXHUwNjEwXDNcMlwyXDJc dTA2MTJcdTA2MTNcM1wyXDJcMlx1MDYxMyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMGFk XDNcMlwyXDJcdTA2MTRcdTA2MTJcM1wyXDJcMlx1MDYxNVx1MDYyMVw3XHUwMGZhIikNCj4gDQo+ ICsNCj4gYnVmLndyaXRlKCJcMlwyXHUwNjE2XHUwNjIxXDdcdTAwZWRcMlwyXHUwNjE3XHUwNjIx XDdcdTAwZWVcMlwyXHUwNjE4DQo+ICIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNjIxXDd5 XDJcMlx1MDYxOVx1MDYyMVw3e1wyXDJcdTA2MWFcdTA2MjFcN1x1MDA4MFwyIikNCj4gDQo+ICsN Cj4gYnVmLndyaXRlKCJcMlx1MDYxYlx1MDYyMVw3fFwyXDJcdTA2MWNcdTA2MjFcN3ZcMlwyXHUw NjFkXHUwNjIxXDciKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoInVcMlwyXHUwNjFlXHUwNjIxXDd6 XDJcMlx1MDYxZlx1MDYyMVw3fVwyXDJcdTA2MjBcdTA2MTUiKQ0KPiANCj4gKw0KPiBidWYud3Jp dGUoIlwzXDJcMlwyXHUwNjIwXHUwNjE2XDNcMlwyXDJcdTA2MjBcdTA2MTdcM1wyXDJcMlx1MDYy MCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNjE4XDNcMlwyXDJcdTA2MjBcdTA2MTlcM1wy XDJcMlx1MDYyMFx1MDYxYVwzXDJcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA2MjBc dTA2MWJcM1wyXDJcMlx1MDYyMFx1MDYxY1wzXDJcMlwyXHUwNjIwXHUwNjFkXDMiKQ0KPiANCj4g Kw0KPiBidWYud3JpdGUoIlwyXDJcMlx1MDYyMFx1MDYxZVwzXDJcMlwyXHUwNjIwXHUwNjFmXDNc MlwyXDJcdTA2MjFcdTAwYWYiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwNjIy XHUwNjIzXDdcdTAwOTdcMlwyXHUwNjIzXHUwNjI0XDVcdTAxMjRcdTAwOTMNCj4gIikNCj4gDQo+ ICsgICAgICAgIGJ1Zi53cml0ZSgiXDJcdTA2MjRcdTA2MjVcNw0KPiBcMlwyXHUwNjI1XHUwMGIx XDNcMlwyXDJcdTA2MjZcdTA2MjciKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3XHUwMDk4XDJc Mlx1MDYyN1x1MDYyOFw1XHUwMTI0XHUwMDkzXDJcdTA2MjhcdTA2MjlcNyIpDQo+IA0KPiArICAg ICAgICBidWYud3JpdGUoIg0KPiBcMlwyXHUwNjI5XHUwMGIzXDNcMlwyXDJcdTA2MmFcdTA2MmNc NVx1MDBiNlxcXDJcdTA2MmIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDYyYVwzXDJcMlwy XHUwNjJjXHUwNjJmXDNcMlwyXDJcdTA2MmRcdTA2MmJcM1wyXDJcMiIpDQo+IA0KPiArDQo+IGJ1 Zi53cml0ZSgiXHUwNjJkXHUwNjJlXDNcMlwyXDJcdTA2MmVcdTAwYjVcM1wyXDJcMlx1MDYyZlx1 MDYyZFwzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXDJcdTA2MzBcdTA2MzNcNVx1MDA4 YUZcMlx1MDYzMVx1MDYzM1w1XHUwMDljT1wyXHUwNjMyDQo+ICIpDQo+IA0KPiArDQo+IGJ1Zi53 cml0ZSgiXHUwNjMwXDNcMlwyXDJcdTA2MzJcdTA2MzFcM1wyXDJcMlx1MDYzM1x1MDBiN1wzXDJc MlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA2MzRcdTA2MzdcNVx1MDBiYV5cMlx1MDYz NVx1MDYzN1w1XHUwMGMwYVwyXHUwNjM2XHUwNjMNCj4gNCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXDNcMlwyXDJcdTA2MzZcdTA2MzVcM1wyXDJcMlx1MDYzN1x1MDBiOVwzXDJcMlwyXHUwNjM4 IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA2MzlcN1xcXDJcMlx1MDYzOVx1MDYzYVw1Uipc Mlx1MDYzYVx1MDYzYlw1VCtcMlx1MDYzYiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNjQx XDchXDJcMlx1MDYzY1x1MDYzZFw3QFwyXDJcdTA2M2RcdTA2M2VcN1xiXDJcMlx1MDYzZQ0KPiAi KQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDYzZlw1XHUwMGJjX1wyXHUwNjNmXHUwNjQwXDch XDJcMlx1MDY0MFx1MDY0MlwzXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcdTA2NDFc dTA2M2NcM1wyXDJcMlx1MDY0MVx1MDY0MlwzXDJcMlwyXHUwNjQyXHUwNjQ3IikNCj4gDQo+ICsg ICAgICAgIGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA2NDNcdTA2NDRcN3RcMlwyXHUwNjQ0XHUwNjQ1 XDdcYlwyXDJcdTA2NDUiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTA2NDZcN1x1MDBm YVwyXDJcdTA2NDZcdTA2NDhcNyFcMlwyXHUwNjQ3XHUwNjQzXDNcMiIpDQo+IA0KPiArDQo+IGJ1 Zi53cml0ZSgiXDJcMlx1MDY0N1x1MDY0OFwzXDJcMlwyXHUwNjQ4XHUwNjQ5XDNcMlwyXDJcdTA2 NDlcdTA2NGEiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcNVx1MDBiNFtcMlx1MDY0YVx1 MDY0Ylw3XVwyXDJcdTA2NGJcdTA2NGNcNw0KPiBcMlwyXHUwNjRjIikNCj4gDQo+ICsNCj4gYnVm LndyaXRlKCJcdTAwYmJcM1wyXDJcMlx1MDY0ZFx1MDY1Mlw1XHUwMGJlYFwyXHUwNjRlXHUwNjRm XDcoXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXHUwNjRmXHUwNjUxXDVcdTAwYmVgXDJc dTA2NTBcdTA2NGVcM1wyXDJcMlx1MDY1MVx1MDY1NCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgi XDNcMlwyXDJcdTA2NTJcdTA2NTBcM1wyXDJcMlx1MDY1Mlx1MDY1M1wzXDJcMlwyXHUwNjUzIikN Cj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAwYmRcM1wyXDJcMlx1MDY1NFx1MDY1MlwzXDJcMlwy XHUwNjU1XHUwNjVjXDdcdTAwZmEiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcdTA2NTZc dTA2NWNcN3VcMlwyXHUwNjU3XHUwNjVjXDd2XDJcMlx1MDY1OFx1MDY1YyIpDQo+IA0KPiArDQo+ IGJ1Zi53cml0ZSgiXDd3XDJcMlx1MDY1OVx1MDY1Y1w3eFwyXDJcdTA2NWFcdTA2NWNcNVYsXDJc dTA2NWJcdTA2NTUiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwNjViXHUwNjU2 XDNcMlwyXDJcdTA2NWJcdTA2NTdcM1wyXDJcMlx1MDY1YiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXHUwNjU4XDNcMlwyXDJcdTA2NWJcdTA2NTlcM1wyXDJcMlx1MDY1Ylx1MDY1YVwzXDJcMlwy IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA2NWNcdTAwYmZcM1wyXDJcMlx1MDY1ZFx1MDY1 ZVw3XHUwMGExXDJcMlx1MDY1ZVx1MDY1ZiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDVQKVwy XHUwNjVmXHUwNjY1XDchXDJcMlx1MDY2MFx1MDY2MVw3QFwyXDJcdTA2NjFcdTA2NjIiKQ0KPiAN Cj4gKw0KPiBidWYud3JpdGUoIlw3XGJcMlwyXHUwNjYyXHUwNjYzXDVcdTAwYzJiXDJcdTA2NjNc dTA2NjRcNyFcMlwyXHUwNjY0IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA2NjZcM1wyXDJc Mlx1MDY2NVx1MDY2MFwzXDJcMlwyXHUwNjY1XHUwNjY2XDNcMlwyXDIiKQ0KPiANCj4gKw0KPiBi dWYud3JpdGUoIlx1MDY2Nlx1MDY2N1wzXDJcMlwyXHUwNjY3XHUwNjY4XDdcdTAwYTJcMlwyXHUw NjY4XHUwNjY5IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDdcYlwyXDJcdTA2NjlcdTA2 NmFcN1x1MDBlY1wyXDJcdTA2NmFcdTA2NmJcN1wzMFwyXDIiKQ0KPiANCj4gKw0KPiBidWYud3Jp dGUoIlx1MDY2Ylx1MDY2Y1w3XHUwMGZhXDJcMlx1MDY2Y1x1MDY2ZFw3XDMxXDJcMlx1MDY2ZFx1 MDY2ZSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDchXDJcMlx1MDY2ZVx1MDY2Zlw1XHUwMDlh TlwyXHUwNjZmXHUwNjcwXDdcdTAwYTNcMlwyIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgi XHUwNjcwXHUwNjcxXDcgXDJcMlx1MDY3MVx1MDBjMVwzXDJcMlwyXHUwNjcyXHUwNjc3XDUiKQ0K PiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDBjNGNcMlx1MDY3M1x1MDY3NFw3KFwyXDJcdTA2NzRc dTA2NzZcNVx1MDBjNGNcMlx1MDY3NSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNjczXDNc MlwyXDJcdTA2NzZcdTA2NzlcM1wyXDJcMlx1MDY3N1x1MDY3NVwzXDJcMlwyIikNCj4gDQo+ICsN Cj4gYnVmLndyaXRlKCJcdTA2NzdcdTA2NzhcM1wyXDJcMlx1MDY3OFx1MDBjM1wzXDJcMlwyXHUw Njc5XHUwNjc3XDMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcMlx1MDY3YVx1MDY3ZFw3 XHUwMGZhXDJcMlx1MDY3Ylx1MDY3ZFw1VixcMlx1MDY3YyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXHUwNjdhXDNcMlwyXDJcdTA2N2NcdTA2N2JcM1wyXDJcMlx1MDY3ZFx1MDBjNVwzXDJcMlwy IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA2N2VcdTA2ODFcNVx1MDBjOGVcMlx1MDY3Zlx1 MDY4MVw1XHUwMGQwaVwyXHUwNjgwXHUwNjdlIg0KPiApDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgi XDNcMlwyXDJcdTA2ODBcdTA2N2ZcM1wyXDJcMlx1MDY4MVx1MDBjN1wzXDJcMlwyXHUwNjgyIikN Cj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA2ODNcN15cMlwyXHUwNjgzXHUwNjg0XDVSKlwyXHUw Njg0XHUwNjg1XDVUK1wyXHUwNjg1IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA2OGJcNyFc MlwyXHUwNjg2XHUwNjg3XDdAXDJcMlx1MDY4N1x1MDY4OFw3XGJcMlwyXHUwNjg4DQo+ICIpDQo+ IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNjg5XDVcdTAwY2NnXDJcdTA2ODlcdTA2OGFcNyFcMlwy XHUwNjhhXHUwNjhjXDNcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlx1MDY4Ylx1MDY4 NlwzXDJcMlwyXHUwNjhiXHUwNjhjXDNcMlwyXDJcdTA2OGNcdTA2OTEiKQ0KPiANCj4gKyAgICAg ICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1MDY4ZFx1MDY4ZVw3dFwyXDJcdTA2OGVcdTA2OGZcN1xi XDJcMlx1MDY4ZiIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlx1MDY5MFw3XHUwMGZhXDJc Mlx1MDY5MFx1MDY5Mlw3IVwyXDJcdTA2OTFcdTA2OGRcM1wyIikNCj4gDQo+ICsNCj4gYnVmLndy aXRlKCJcMlwyXHUwNjkxXHUwNjkyXDNcMlwyXDJcdTA2OTJcdTA2OTNcM1wyXDJcMlx1MDY5M1x1 MDY5NCIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlw1XHUwMGNhZlwyXHUwNjk0XHUwNjk1 XDVcdTAwYjRbXDJcdTA2OTVcdTA2OTZcN19cMlwyIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0 ZSgiXHUwNjk2XHUwNjk3XDcgXDJcMlx1MDY5N1x1MDBjOVwzXDJcMlwyXHUwNjk4XHUwNjk5XDci KQ0KPiANCj4gKw0KPiBidWYud3JpdGUoImBcMlwyXHUwNjk5XHUwNjliXDdcYlwyXDJcdTA2OWFc dTA2OWNcN1wzNVwyXDJcdTA2OWJcdTA2OWEiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJc MlwyXHUwNjliXHUwNjljXDNcMlwyXDJcdTA2OWNcdTA2OWRcM1wyXDJcMlx1MDY5ZCIpDQo+IA0K PiArICAgICAgICBidWYud3JpdGUoIlx1MDY5ZVw3XHUwMGZhXDJcMlx1MDY5ZVx1MDY5Zlw3IVwy XDJcdTA2OWZcdTA2YTBcN2FcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcdTA2YTBcdTA2 YTJcN1xiXDJcMlx1MDZhMVx1MDZhM1w3XDM1XDJcMlx1MDZhMlx1MDZhMSIpDQo+IA0KPiArDQo+ IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA2YTJcdTA2YTNcM1wyXDJcMlx1MDZhM1x1MDZhNFwzXDJc MlwyXHUwNmE0IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA2YTVcN1x1MDBmYVwyXDJcdTA2 YTVcdTA2YWFcNyFcMlwyXHUwNmE2XHUwNmE3XDdiXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUo IlwyXHUwNmE3XHUwNmE4XDdcYlwyXDJcdTA2YThcdTA2YTlcN1x1MDBmYVwyXDJcdTA2YTlcdTA2 YWIiDQo+ICkNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDchXDJcMlx1MDZhYVx1MDZhNlwz XDJcMlwyXHUwNmFhXHUwNmFiXDNcMlwyXDJcdTA2YWIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUo Ilx1MDBjYlwzXDJcMlwyXHUwNmFjXHUwNmIxXDVcdTAwY2VoXDJcdTA2YWRcdTA2YWVcNyhcMiIp DQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcdTA2YWVcdTA2YjBcNVx1MDBjZWhcMlx1MDZhZlx1 MDZhZFwzXDJcMlwyXHUwNmIwXHUwNmIzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1wyXDJc Mlx1MDZiMVx1MDZhZlwzXDJcMlwyXHUwNmIxXHUwNmIyXDNcMlwyXDJcdTA2YjIiKQ0KPiANCj4g Kw0KPiBidWYud3JpdGUoIlx1MDBjZFwzXDJcMlwyXHUwNmIzXHUwNmIxXDNcMlwyXDJcdTA2YjRc dTA2YmVcN1x1MDBmYSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDZiNVx1MDZiZVw3 XHUwMGVmXDJcMlx1MDZiNlx1MDZiZVw3XHUwMGYwXDJcMlx1MDZiNyINCj4gKQ0KPiANCj4gKw0K PiBidWYud3JpdGUoIlx1MDZiZVw3XHUwMGYxXDJcMlx1MDZiOFx1MDZiZVw3XHUwMGYyXDJcMlx1 MDZiOVx1MDZiZSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDdcdTAwZjNcMlwyXHUwNmJhXHUw NmJlXDdcdTAwZjRcMlwyXHUwNmJiXHUwNmJlXDdcdTAwZjUiKQ0KPiANCj4gKw0KPiBidWYud3Jp dGUoIlwyXDJcdTA2YmNcdTA2YmVcNVYsXDJcdTA2YmRcdTA2YjRcM1wyXDJcMlx1MDZiZFx1MDZi NSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA2YmRcdTA2YjZcM1wyXDJcMlx1 MDZiZFx1MDZiN1wzXDJcMlwyXHUwNmJkIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA2Yjhc M1wyXDJcMlx1MDZiZFx1MDZiOVwzXDJcMlwyXHUwNmJkXHUwNmJhXDNcMlwyXDIiKQ0KPiANCj4g Kw0KPiBidWYud3JpdGUoIlx1MDZiZFx1MDZiYlwzXDJcMlwyXHUwNmJkXHUwNmJjXDNcMlwyXDJc dTA2YmVcdTAwY2ZcMyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUwNmJmXHUwNmMw XDdcNjBcMlwyXHUwNmMwXHUwNmMxXDVSKlwyXHUwNmMxXHUwNmMyIikNCj4gDQo+ICsNCj4gYnVm LndyaXRlKCJcNVQrXDJcdTA2YzJcdTA2YzhcNyFcMlwyXHUwNmMzXHUwNmM0XDdAXDJcMlx1MDZj NFx1MDZjNSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDdcYlwyXDJcdTA2YzVcdTA2YzZcNVx1 MDBkMmpcMlx1MDZjNlx1MDZjN1w3IVwyXDJcdTA2YzciKQ0KPiANCj4gKyAgICAgICAgYnVmLndy aXRlKCJcdTA2YzlcM1wyXDJcMlx1MDZjOFx1MDZjM1wzXDJcMlwyXHUwNmM4XHUwNmM5XDNcMlwy XDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDZjOVx1MDZjYlwzXDJcMlwyXHUwNmNhXHUw NmNjXDVcdTAwY2FmXDJcdTA2Y2JcdTA2Y2EiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJc M1wyXDJcMlx1MDZjYlx1MDZjY1wzXDJcMlwyXHUwNmNjXHUwNmNkXDNcMlwyXDJcdTA2Y2QiKQ0K PiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTA2Y2VcNVx1MDBiNFtcMlx1MDZjZVx1MDZjZlw3 XDYxXDJcMlx1MDZjZlx1MDZkMFw3ICIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDZk MFx1MDBkMVwzXDJcMlwyXHUwNmQxXHUwNmQ2XDVcdTAwY2VoXDJcdTA2ZDIiKQ0KPiANCj4gKw0K PiBidWYud3JpdGUoIlx1MDZkM1w3KFwyXDJcdTA2ZDNcdTA2ZDVcNVx1MDBjZWhcMlx1MDZkNFx1 MDZkMlwzXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcdTA2ZDVcdTA2ZDhcM1wyXDJc Mlx1MDZkNlx1MDZkNFwzXDJcMlwyXHUwNmQ2XHUwNmQ3IikNCj4gDQo+ICsNCj4gYnVmLndyaXRl KCJcM1wyXDJcMlx1MDZkN1x1MDBkM1wzXDJcMlwyXHUwNmQ4XHUwNmQ2XDNcMlwyXDJcdTA2ZDki KQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDZkY1w1XHUwMGQ2bFwyXHUwNmRhXHUwNmRjXDVc dTAwZGNvXDJcdTA2ZGJcdTA2ZDlcMyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlwyXHUw NmRiXHUwNmRhXDNcMlwyXDJcdTA2ZGNcdTAwZDVcM1wyXDJcMlx1MDZkZFx1MDZkZSINCj4gKQ0K PiANCj4gKw0KPiBidWYud3JpdGUoIlw3ZlwyXDJcdTA2ZGVcdTA2ZGZcNVApXDJcdTA2ZGZcdTA2 ZTVcNyFcMlwyXHUwNmUwXHUwNmUxIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcN0BcMlwyXHUw NmUxXHUwNmUyXDdcYlwyXDJcdTA2ZTJcdTA2ZTNcNVx1MDBkOG1cMlx1MDZlMyINCj4gKQ0KPiAN Cj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTA2ZTRcNyFcMlwyXHUwNmU0XHUwNmU2XDNcMlwyXDJc dTA2ZTVcdTA2ZTBcM1wyXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNmU1XHUwNmU2 XDNcMlwyXDJcdTA2ZTZcdTA2ZWJcM1wyXDJcMlx1MDZlN1x1MDZlOFw3IikNCj4gDQo+ICsNCj4g YnVmLndyaXRlKCJ0XDJcMlx1MDZlOFx1MDZlOVw3XGJcMlwyXHUwNmU5XHUwNmVhXDdcdTAwZmFc MlwyXHUwNmVhIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwNmVjXDchXDJcMlx1MDZl Ylx1MDZlN1wzXDJcMlwyXHUwNmViXHUwNmVjXDNcMlwyXDIiKQ0KPiANCj4gKw0KPiBidWYud3Jp dGUoIlx1MDZlY1x1MDZlZFwzXDJcMlwyXHUwNmVkXHUwNmVlXDdoXDJcMlx1MDZlZVx1MDZlZlw3 IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXGJcMlwyXHUwNmVmXHUwNmYwXDdcdTAwZmFc MlwyXHUwNmYwXHUwNmYxXDchXDJcMlx1MDZmMSIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUo Ilx1MDZmMlw3aVwyXDJcdTA2ZjJcdTA2ZjNcN1xiXDJcMlx1MDZmM1x1MDZmNFw3XHUwMGZhIikN Cj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXHUwNmY0XHUwNmY1XDchXDJcMlx1MDZmNVx1MDZm Nlw1XHUwMGI0W1wyXHUwNmY2XHUwNmY3IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDdn XDJcMlx1MDZmN1x1MDZmOFw3DQo+IFwyXDJcdTA2ZjhcdTAwZDdcM1wyXDJcMlx1MDZmOVx1MDZm ZSIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlw1XHUwMGRhblwyXHUwNmZhXHUwNmZiXDco XDJcMlx1MDZmYlx1MDZmZFw1XHUwMGRhblwyIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgi XHUwNmZjXHUwNmZhXDNcMlwyXDJcdTA2ZmRcdTA3MDBcM1wyXDJcMlx1MDZmZVx1MDZmY1wzIikN Cj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXDJcdTA2ZmVcdTA2ZmZcM1wyXDJcMlx1MDZmZlx1 MDBkOVwzXDJcMlwyXHUwNzAwXHUwNmZlIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDNc MlwyXDJcdTA3MDFcdTA3MDVcN1x1MDBmYVwyXDJcdTA3MDJcdTA3MDVcN1wxM1wyXDIiKQ0KPiAN Cj4gKw0KPiBidWYud3JpdGUoIlx1MDcwM1x1MDcwNVw1VixcMlx1MDcwNFx1MDcwMVwzXDJcMlwy XHUwNzA0XHUwNzAyXDNcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDcwNFx1MDcw M1wzXDJcMlwyXHUwNzA1XHUwMGRiXDNcMlwyXDJcdTA3MDZcdTA3MDciKQ0KPiANCj4gKw0KPiBi dWYud3JpdGUoIlw3ZFwyXDJcdTA3MDdcdTA3MDhcNVApXDJcdTA3MDhcdTA3MGVcNyFcMlwyXHUw NzA5XHUwNzBhIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcN0BcMlwyXHUwNzBhXHUwNzBiXDdc YlwyXDJcdTA3MGJcdTA3MGNcNVx1MDBkZXBcMlx1MDcwYyIpDQo+IA0KPiArICAgICAgICBidWYu d3JpdGUoIlx1MDcwZFw3IVwyXDJcdTA3MGRcdTA3MGZcM1wyXDJcMlx1MDcwZVx1MDcwOVwzXDJc MlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA3MGVcdTA3MGZcM1wyXDJcMlx1MDcwZlx1 MDcxNFwzXDJcMlwyXHUwNzEwXHUwNzExXDciKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoInRcMlwy XHUwNzExXHUwNzEyXDdcYlwyXDJcdTA3MTJcdTA3MTNcN1x1MDBmYVwyXDJcdTA3MTMiKQ0KPiAN Cj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTA3MTVcNyFcMlwyXHUwNzE0XHUwNzEwXDNcMlwyXDJc dTA3MTRcdTA3MTVcM1wyXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNzE1XHUwNzE2 XDNcMlwyXDJcdTA3MTZcdTA3MTdcN2hcMlwyXHUwNzE3XHUwNzE4XDciKQ0KPiANCj4gKw0KPiBi dWYud3JpdGUoIlxiXDJcMlx1MDcxOFx1MDcxOVw3XHUwMGZhXDJcMlx1MDcxOVx1MDcxYVw3IVwy XDJcdTA3MWEiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTA3MWJcN2lcMlwyXHUwNzFi XHUwNzFjXDdcYlwyXDJcdTA3MWNcdTA3MWRcN1x1MDBmYSIpDQo+IA0KPiArICAgICAgICBidWYu d3JpdGUoIlwyXDJcdTA3MWRcdTA3MjJcNyFcMlwyXHUwNzFlXHUwNzFmXDdqXDJcMlx1MDcxZlx1 MDcyMCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDdcYlwyXDJcdTA3MjBcdTA3MjFcN1x1MDBm YVwyXDJcdTA3MjFcdTA3MjNcNyFcMlwyXHUwNzIyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJc dTA3MWVcM1wyXDJcMlx1MDcyMlx1MDcyM1wzXDJcMlwyXHUwNzIzXHUwNzI0XDNcMlwyXDIiKQ0K PiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDcyNFx1MDcyNVw1XHUwMGI0W1wyXHUwNzI1XHUwNzI2 XDdlXDJcMlx1MDcyNlx1MDcyNyIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlw3DQo+IFwy XDJcdTA3MjdcdTAwZGRcM1wyXDJcMlx1MDcyOFx1MDcyZFw1XHUwMGUwcVwyXHUwNzI5IikNCj4g DQo+ICsNCj4gYnVmLndyaXRlKCJcdTA3MmFcNyhcMlwyXHUwNzJhXHUwNzJjXDVcdTAwZTBxXDJc dTA3MmJcdTA3MjlcM1wyXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXHUwNzJjXHUwNzJm XDNcMlwyXDJcdTA3MmRcdTA3MmJcM1wyXDJcMlx1MDcyZFx1MDcyZSIpDQo+IA0KPiArDQo+IGJ1 Zi53cml0ZSgiXDNcMlwyXDJcdTA3MmVcdTAwZGZcM1wyXDJcMlx1MDcyZlx1MDcyZFwzXDJcMlwy XHUwNzMwIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA3MzNcN1x1MDBmYVwyXDJcdTA3MzFc dTA3MzNcNVYsXDJcdTA3MzJcdTA3MzBcM1wyXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwy XHUwNzMyXHUwNzMxXDNcMlwyXDJcdTA3MzNcdTAwZTFcM1wyXDJcMlx1MDczNFx1MDczNSIpDQo+ IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDdcNjNcMlwyXHUwNzM1XHUwNzM2XDVQKVwyXHUwNzM2XHUw NzNiXDchXDJcMlx1MDczN1x1MDczOCIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlw3XDY0 XDJcMlx1MDczOFx1MDczOVw3XGJcMlwyXHUwNzM5XHUwNzNhXDdcdTAwZmFcMlwyIikNCj4gDQo+ ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwNzNhXHUwNzNjXDchXDJcMlx1MDczYlx1MDczN1wzXDJc MlwyXHUwNzNiXHUwNzNjXDMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcMlx1MDczY1x1 MDc0MlwzXDJcMlwyXHUwNzNkXHUwNzNlXDdAXDJcMlx1MDczZVx1MDczZiIpDQo+IA0KPiArDQo+ IGJ1Zi53cml0ZSgiXDdcYlwyXDJcdTA3M2ZcdTA3NDBcNVx1MDBlNHNcMlx1MDc0MFx1MDc0MVw3 IVwyXDJcdTA3NDEiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDc0M1wzXDJcMlwyXHUwNzQy XHUwNzNkXDNcMlwyXDJcdTA3NDJcdTA3NDNcM1wyXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXHUwNzQzXHUwNzQ0XDNcMlwyXDJcdTA3NDRcdTA3NDVcNVx1MDBiNFtcMlx1MDc0NVx1MDc0 NiIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlw3XDY1XDJcMlx1MDc0Nlx1MDc0N1w3DQo+ IFwyXDJcdTA3NDdcdTAwZTNcM1wyXDJcMlx1MDc0OCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgi XHUwNzRkXDVcdTAwZTZ0XDJcdTA3NDlcdTA3NGFcNyhcMlwyXHUwNzRhXHUwNzRjXDVcdTAwZTYi KQ0KPiANCj4gKw0KPiBidWYud3JpdGUoInRcMlx1MDc0Ylx1MDc0OVwzXDJcMlwyXHUwNzRjXHUw NzRmXDNcMlwyXDJcdTA3NGRcdTA3NGIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJcMlwy XHUwNzRkXHUwNzRlXDNcMlwyXDJcdTA3NGVcdTAwZTVcM1wyXDJcMlx1MDc0ZiIpDQo+IA0KPiAr DQo+IGJ1Zi53cml0ZSgiXHUwNzRkXDNcMlwyXDJcdTA3NTBcdTA3NTVcN1x1MDBmYVwyXDJcdTA3 NTFcdTA3NTVcN1x1MDBjMCINCj4gKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcdTA3NTJc dTA3NTVcN1x1MDBjMVwyXDJcdTA3NTNcdTA3NTVcNVYsXDJcdTA3NTRcdTA3NTAiDQo+ICkNCj4g DQo+ICsNCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1MDc1NFx1MDc1MVwzXDJcMlwyXHUwNzU0XHUw NzUyXDNcMlwyXDJcdTA3NTQiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDc1M1wzXDJcMlwy XHUwNzU1XHUwMGU3XDNcMlwyXDJcdTA3NTZcdTA3YjFcN0FcMlwyIikNCj4gDQo+ICsNCj4gYnVm LndyaXRlKCJcdTA3NTdcdTA3NThcNVApXDJcdTA3NThcdTA3NWVcNyFcMlwyXHUwNzU5XHUwNzVh XDdAXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXHUwNzVhXHUwNzViXDdcYlwyXDJcdTA3 NWJcdTA3NWNcNVx1MDBlY3dcMlx1MDc1Y1x1MDc1ZCINCj4gKQ0KPiANCj4gKyAgICAgICAgYnVm LndyaXRlKCJcNyFcMlwyXHUwNzVkXHUwNzVmXDNcMlwyXDJcdTA3NWVcdTA3NTlcM1wyXDJcMlx1 MDc1ZSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNzVmXDNcMlwyXDJcdTA3NWZcdTA3NjBc M1wyXDJcMlx1MDc2MFx1MDc2MVw1XHUwMGI0IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJbXDJc dTA3NjFcdTA3YjJcM1wyXDJcMlx1MDc2Mlx1MDc2M1w3Q1wyXDJcdTA3NjNcdTA3NjQiKQ0KPiAN Cj4gKw0KPiBidWYud3JpdGUoIlw3XHUwMDhmXDJcMlx1MDc2NFx1MDc2NVw3XGJcMlwyXHUwNzY1 XHUwNzY2XDdcdTAwZmJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcdTA3NjZcdTA3Njdc N1wzNFwyXDJcdTA3NjdcdTA3NjhcN1x1MDBmYlwyXDJcdTA3NjgiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlx1MDc2OVw3IVwyXDJcdTA3NjlcdTA3NmFcN1w2MlwyXDJcdTA3NmFcdTA3NmJcN1xi XDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNzZiXHUwNzZjXDdcdTAwZWNcMlwyXHUw NzZjXHUwNzZkXDdcMzBcMlwyXHUwNzZkXHUwNzZlIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJc N1x1MDBmYVwyXDJcdTA3NmVcdTA3NmZcN1wzMVwyXDJcdTA3NmZcdTA3NzBcNyFcMlwyXHUwNzcw IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA3NzFcNz1cMlwyXHUwNzcxXHUwNzcyXDdcYlwy XDJcdTA3NzJcdTA3NzNcN1x1MDBlYyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDc3 M1x1MDc3NFw3XDMwXDJcMlx1MDc3NFx1MDc3NVw3XHUwMGZhXDJcMlx1MDc3NSIpDQo+IA0KPiAr DQo+IGJ1Zi53cml0ZSgiXHUwNzc2XDdcMzFcMlwyXHUwNzc2XHUwNzc3XDchXDJcMlx1MDc3N1x1 MDc3OFw1XHUwMGVhIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJ2XDJcdTA3NzhcdTA3NzlcN0Rc MlwyXHUwNzc5XHUwNzdhXDdcdTAwOGZcMlwyXHUwNzdhXHUwNzdiDQo+ICIpDQo+IA0KPiArICAg ICAgICBidWYud3JpdGUoIlw3XGJcMlwyXHUwNzdiXHUwNzdjXDdcdTAwZmJcMlwyXHUwNzdjXHUw NzdkXDdcMzRcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA3N2RcdTA3N2VcN1x1MDBm YlwyXDJcdTA3N2VcdTA3N2ZcNyFcMlwyXHUwNzdmXHUwNzgwIikNCj4gDQo+ICsgICAgICAgIGJ1 Zi53cml0ZSgiXDdcNjJcMlwyXHUwNzgwXHUwNzgxXDdcYlwyXDJcdTA3ODFcdTA3ODJcN1x1MDBl Y1wyXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDc4Mlx1MDc4M1w3XDMwXDJcMlx1MDc4 M1x1MDc4NFw3XHUwMGZhXDJcMlx1MDc4NFx1MDc4NSIpDQo+IA0KPiArICAgICAgICBidWYud3Jp dGUoIlw3XDMxXDJcMlx1MDc4NVx1MDc4Nlw3IVwyXDJcdTA3ODZcdTA3ODdcNz1cMlwyXHUwNzg3 IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA3ODhcN1xiXDJcMlx1MDc4OFx1MDc4OVw3XHUw MGVjXDJcMlx1MDc4OVx1MDc4YVw3XDMwIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXHUw NzhhXHUwNzhiXDdcdTAwZmFcMlwyXHUwNzhiXHUwNzhjXDdcMzFcMlwyXHUwNzhjIikNCj4gDQo+ ICsNCj4gYnVmLndyaXRlKCJcdTA3OGRcNyFcMlwyXHUwNzhkXHUwNzhlXDVcdTAwZWF2XDJcdTA3 OGVcdTA3OGZcN0VcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcdTA3OGZcdTA3OTBcN1x1 MDA4ZlwyXDJcdTA3OTBcdTA3OTFcN1xiXDJcMlx1MDc5MVx1MDc5MiINCj4gKQ0KPiANCj4gKyAg ICAgICAgYnVmLndyaXRlKCJcN1x1MDBmYlwyXDJcdTA3OTJcdTA3OTNcN1wzNFwyXDJcdTA3OTNc dTA3OTRcN1x1MDBmYiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDc5NFx1MDc5NVw3 IVwyXDJcdTA3OTVcdTA3OTZcN1w2MlwyXDJcdTA3OTZcdTA3OTciKQ0KPiANCj4gKyAgICAgICAg YnVmLndyaXRlKCJcN1xiXDJcMlx1MDc5N1x1MDc5OFw3XHUwMGVjXDJcMlx1MDc5OFx1MDc5OVw3 XDMwXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNzk5XHUwNzlhXDdcdTAwZmFcMlwy XHUwNzlhXHUwNzliXDdcMzFcMlwyXHUwNzliXHUwNzljIikNCj4gDQo+ICsNCj4gYnVmLndyaXRl KCJcNyFcMlwyXHUwNzljXHUwNzlkXDc9XDJcMlx1MDc5ZFx1MDc5ZVw3XGJcMlwyXHUwNzllXHUw NzlmIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDdcdTAwZWNcMlwyXHUwNzlmXHUwN2Ew XDdcMzBcMlwyXHUwN2EwXHUwN2ExXDdcdTAwZmEiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwy XDJcdTA3YTFcdTA3YTJcN1wzMVwyXDJcdTA3YTJcdTA3YTNcNyFcMlwyXHUwN2EzXHUwN2E5IikN Cj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcNVx1MDBlYXZcMlx1MDdhNFx1MDdhNVw3QFwyXDJcdTA3 YTVcdTA3YTZcN1xiXDJcMlx1MDdhNiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwN2E3XDVc dTAwZWN3XDJcdTA3YTdcdTA3YThcNyFcMlwyXHUwN2E4XHUwN2FhXDNcMlwyIikNCj4gDQo+ICsN Cj4gYnVmLndyaXRlKCJcMlx1MDdhOVx1MDdhNFwzXDJcMlwyXHUwN2E5XHUwN2FhXDNcMlwyXDJc dTA3YWFcdTA3YWUiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwN2FiXHUwN2Fk XDVcdTAwOGNHXDJcdTA3YWNcdTA3YWJcM1wyXDJcMlx1MDdhZCIpDQo+IA0KPiArDQo+IGJ1Zi53 cml0ZSgiXHUwN2IwXDNcMlwyXDJcdTA3YWVcdTA3YWNcM1wyXDJcMlx1MDdhZVx1MDdhZlwzXDJc MlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA3YWZcdTA3YjJcM1wyXDJcMlx1MDdiMFx1 MDdhZVwzXDJcMlwyXHUwN2IxXHUwNzU3XDMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJc Mlx1MDdiMVx1MDc2MlwzXDJcMlwyXHUwN2IyXHUwN2IzXDNcMlwyXDJcdTA3YjNcdTA3YjQiDQo+ ICkNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDdCXDJcMlx1MDdiNFx1MDdiNVw3DQo+IFwy XDJcdTA3YjVcdTAwZTlcM1wyXDJcMlx1MDdiNlx1MDdiNyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXDdgXDJcMlx1MDdiN1x1MDdiOFw3XGJcMlwyXHUwN2I4XHUwN2I5XDdcdTAwZmFcMlwyXHUw N2I5IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA3YmFcNyFcMlwyXHUwN2JhXHUwN2JiXDdh XDJcMlx1MDdiYlx1MDdiY1w3XGJcMlwyXHUwN2JjIg0KPiApDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXHUwN2JkXDdcdTAwZmFcMlwyXHUwN2JkXHUwN2MyXDchXDJcMlx1MDdiZVx1MDdiZlw3Ylwy IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlx1MDdiZlx1MDdjMFw3XGJcMlwyXHUwN2MwXHUw N2MxXDdcdTAwZmFcMlwyXHUwN2MxXHUwN2MzIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgi XDchXDJcMlx1MDdjMlx1MDdiZVwzXDJcMlwyXHUwN2MyXHUwN2MzXDNcMlwyXDJcdTA3YzMiKQ0K PiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTA3YzhcM1wyXDJcMlx1MDdjNFx1MDdjNVw3Y1wy XDJcdTA3YzVcdTA3YzZcN1xiXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwN2M2XHUw N2M3XDdcdTAwZmFcMlwyXHUwN2M3XHUwN2M5XDchXDJcMlx1MDdjOFx1MDdjNCIpDQo+IA0KPiAr ICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwyXHUwN2M4XHUwN2M5XDNcMlwyXDJcdTA3YzlcdTAw ZWJcM1wyXDJcMlx1MDdjYSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwN2NmXDVcdTAwZWV4 XDJcdTA3Y2JcdTA3Y2NcNyhcMlwyXHUwN2NjXHUwN2NlXDVcdTAwZWUiKQ0KPiANCj4gKw0KPiBi dWYud3JpdGUoInhcMlx1MDdjZFx1MDdjYlwzXDJcMlwyXHUwN2NlXHUwN2QxXDNcMlwyXDJcdTA3 Y2ZcdTA3Y2QiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwN2NmXHUwN2QwXDNc MlwyXDJcdTA3ZDBcdTAwZWRcM1wyXDJcMlx1MDdkMSIpDQo+IA0KPiArICAgICAgICBidWYud3Jp dGUoIlx1MDdjZlwzXDJcMlwyXHUwN2QyXHUwN2QzXHRcNlwyXDJcdTA3ZDNcdTAwZWZcM1wyXDJc MiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwN2Q0XHUwODJmXDdGXDJcMlx1MDdkNVx1MDdk Nlw1UClcMlx1MDdkNlx1MDdkY1w3IVwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlx1MDdk N1x1MDdkOFw3QFwyXDJcdTA3ZDhcdTA3ZDlcN1xiXDJcMlx1MDdkOVx1MDdkYSIpDQo+IA0KPiAr DQo+IGJ1Zi53cml0ZSgiXDVcdTAwZjR7XDJcdTA3ZGFcdTA3ZGJcNyFcMlwyXHUwN2RiXHUwN2Rk XDNcMlwyXDJcdTA3ZGMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDdkN1wzXDJcMlwyXHUw N2RjXHUwN2RkXDNcMlwyXDJcdTA3ZGRcdTA3ZGVcM1wyXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53 cml0ZSgiXHUwN2RlXHUwN2RmXDVcdTAwYjRbXDJcdTA3ZGZcdTA4MzBcM1wyXDJcMlx1MDdlMFx1 MDdlMSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDdIXDJcMlx1MDdlMVx1MDdlMlw3XHUwMDhm XDJcMlx1MDdlMlx1MDdlM1w3XGJcMlwyXHUwN2UzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJc dTA3ZTRcN1x1MDBmYlwyXDJcdTA3ZTRcdTA3ZTVcN1wzNFwyXDJcdTA3ZTVcdTA3ZTZcNyIpDQo+ IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMGZiXDJcMlx1MDdlNlx1MDdlN1w3IVwyXDJcdTA3ZTdc dTA3ZThcN1w2MlwyXDJcdTA3ZTgiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDdlOVw3XGJc MlwyXHUwN2U5XHUwN2VhXDdcdTAwZWNcMlwyXHUwN2VhXHUwN2ViXDdcMzAiKQ0KPiANCj4gKw0K PiBidWYud3JpdGUoIlwyXDJcdTA3ZWJcdTA3ZWNcN1x1MDBmYVwyXDJcdTA3ZWNcdTA3ZWRcN1wz MVwyXDJcdTA3ZWQiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDdlZVw3IVwyXDJcdTA3ZWVc dTA3ZWZcNz1cMlwyXHUwN2VmXHUwN2YwXDdcYlwyXDJcdTA3ZjAiKQ0KPiANCj4gKyAgICAgICAg YnVmLndyaXRlKCJcdTA3ZjFcN1x1MDBlY1wyXDJcdTA3ZjFcdTA3ZjJcN1wzMFwyXDJcdTA3ZjJc dTA3ZjNcNyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMGZhXDJcMlx1MDdmM1x1MDdmNFw3 XDMxXDJcMlx1MDdmNFx1MDdmNVw3IVwyXDJcdTA3ZjUiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUo Ilx1MDdmNlw1XHUwMGYyelwyXHUwN2Y2XHUwN2Y3XDdJXDJcMlx1MDdmN1x1MDdmOFw3XHUwMDhm IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDJcMlx1MDdmOFx1MDdmOVw3XGJcMlwyXHUw N2Y5XHUwN2ZhXDdcdTAwZmJcMlwyXHUwN2ZhIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgi XHUwN2ZiXDdcMzRcMlwyXHUwN2ZiXHUwN2ZjXDdcdTAwZmJcMlwyXHUwN2ZjXHUwN2ZkXDciKQ0K PiANCj4gKw0KPiBidWYud3JpdGUoIiFcMlwyXHUwN2ZkXHUwN2ZlXDdcNjJcMlwyXHUwN2ZlXHUw N2ZmXDdcYlwyXDJcdTA3ZmZcdTA4MDAiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcN1x1 MDBlY1wyXDJcdTA4MDBcdTA4MDFcN1wzMFwyXDJcdTA4MDFcdTA4MDJcN1x1MDBmYSIpDQo+IA0K PiArDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDgwMlx1MDgwM1w3XDMxXDJcMlx1MDgwM1x1MDgwNFw3 IVwyXDJcdTA4MDRcdTA4MDUiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3PVwyXDJcdTA4MDVc dTA4MDZcN1xiXDJcMlx1MDgwNlx1MDgwN1w3XHUwMGVjXDJcMlx1MDgwNyIpDQo+IA0KPiArDQo+ IGJ1Zi53cml0ZSgiXHUwODA4XDdcMzBcMlwyXHUwODA4XHUwODA5XDdcdTAwZmFcMlwyXHUwODA5 XHUwODBhXDciKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzMVwyXDJcdTA4MGFcdTA4MGJcNyFc MlwyXHUwODBiXHUwODBjXDVcdTAwZjJ6XDJcdTA4MGMiKQ0KPiANCj4gKyAgICAgICAgYnVmLndy aXRlKCJcdTA4MGRcN0pcMlwyXHUwODBkXHUwODBlXDdcdTAwOGZcMlwyXHUwODBlXHUwODBmXDdc YiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDgwZlx1MDgxMFw3XHUwMGZiXDJcMlx1 MDgxMFx1MDgxMVw3XDM0XDJcMlx1MDgxMSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwODEy XDdcdTAwZmJcMlwyXHUwODEyXHUwODEzXDchXDJcMlx1MDgxM1x1MDgxNFw3XDYyIikNCj4gDQo+ ICsNCj4gYnVmLndyaXRlKCJcMlwyXHUwODE0XHUwODE1XDdcYlwyXDJcdTA4MTVcdTA4MTZcN1x1 MDBlY1wyXDJcdTA4MTYiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDgxN1w3XDMwXDJcMlx1 MDgxN1x1MDgxOFw3XHUwMGZhXDJcMlx1MDgxOFx1MDgxOVw3IikNCj4gDQo+ICsNCj4gYnVmLndy aXRlKCJcMzFcMlwyXHUwODE5XHUwODFhXDchXDJcMlx1MDgxYVx1MDgxYlw3PVwyXDJcdTA4MWJc dTA4MWMiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcN1xiXDJcMlx1MDgxY1x1MDgxZFw3 XHUwMGVjXDJcMlx1MDgxZFx1MDgxZVw3XDMwXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgi XHUwODFlXHUwODFmXDdcdTAwZmFcMlwyXHUwODFmXHUwODIwXDdcMzFcMlwyXHUwODIwXHUwODIx IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcNyFcMlwyXHUwODIxXHUwODI3XDVcdTAwZjJ6XDJc dTA4MjJcdTA4MjNcN0BcMlwyXHUwODIzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA4MjRc N1xiXDJcMlx1MDgyNFx1MDgyNVw1XHUwMGY0e1wyXHUwODI1XHUwODI2XDchXDIiKQ0KPiANCj4g Kw0KPiBidWYud3JpdGUoIlwyXHUwODI2XHUwODI4XDNcMlwyXDJcdTA4MjdcdTA4MjJcM1wyXDJc Mlx1MDgyN1x1MDgyOCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA4MjhcdTA4 MmNcM1wyXDJcMlx1MDgyOVx1MDgyYlw1XHUwMDhjR1wyXHUwODJhIikNCj4gDQo+ICsNCj4gYnVm LndyaXRlKCJcdTA4MjlcM1wyXDJcMlx1MDgyYlx1MDgyZVwzXDJcMlwyXHUwODJjXHUwODJhXDNc MlwyXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDgyY1x1MDgyZFwzXDJcMlwyXHUwODJk XHUwODMwXDNcMlwyXDJcdTA4MmVcdTA4MmNcMyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJc MlwyXHUwODJmXHUwN2Q1XDNcMlwyXDJcdTA4MmZcdTA3ZTBcM1wyXDJcMlx1MDgzMFx1MDgzMSIp DQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwyXHUwODMxXHUwODMyXDdHXDJcMlx1 MDgzMlx1MDgzM1w3DQo+IFwyXDJcdTA4MzNcdTAwZjEiKQ0KPiANCj4gKyAgICAgICAgYnVmLndy aXRlKCJcM1wyXDJcMlx1MDgzNFx1MDgzNVw3YFwyXDJcdTA4MzVcdTA4MzZcN1xiXDJcMlx1MDgz NiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwODM3XDdcdTAwZmFcMlwyXHUwODM3XHUwODM4 XDchXDJcMlx1MDgzOFx1MDgzOVw3YVwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlx1MDgz OVx1MDgzYVw3XGJcMlwyXHUwODNhXHUwODNiXDdcdTAwZmFcMlwyXHUwODNiXHUwODQwIg0KPiAp DQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDchXDJcMlx1MDgzY1x1MDgzZFw3YlwyXDJcdTA4M2Rc dTA4M2VcN1xiXDJcMlx1MDgzZVx1MDgzZiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDdcdTAw ZmFcMlwyXHUwODNmXHUwODQxXDchXDJcMlx1MDg0MFx1MDgzY1wzXDJcMlwyXHUwODQwIikNCj4g DQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwODQxXDNcMlwyXDJcdTA4NDFcdTA4NDZcM1wyXDJc Mlx1MDg0Mlx1MDg0M1w3Y1wyXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDg0M1x1MDg0 NFw3XGJcMlwyXHUwODQ0XHUwODQ1XDdcdTAwZmFcMlwyXHUwODQ1XHUwODQ3IikNCj4gDQo+ICsg ICAgICAgIGJ1Zi53cml0ZSgiXDchXDJcMlx1MDg0Nlx1MDg0MlwzXDJcMlwyXHUwODQ2XHUwODQ3 XDNcMlwyXDJcdTA4NDciKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDBmM1wzXDJcMlwyXHUw ODQ4XHUwODRkXDVcdTAwZjZ8XDJcdTA4NDlcdTA4NGFcNyhcMiIpDQo+IA0KPiArDQo+IGJ1Zi53 cml0ZSgiXDJcdTA4NGFcdTA4NGNcNVx1MDBmNnxcMlx1MDg0Ylx1MDg0OVwzXDJcMlwyXHUwODRj XHUwODRmIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1MDg0ZFx1MDg0YlwzXDJc MlwyXHUwODRkXHUwODRlXDNcMlwyXDJcdTA4NGUiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRl KCJcdTAwZjVcM1wyXDJcMlx1MDg0Zlx1MDg0ZFwzXDJcMlwyXHUwODUwXHUwODUxXHRcN1wyXDIi KQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDg1MVx1MDBmN1wzXDJcMlwyXHUwODUyXHUwODU3 XDVcdTAxMDRcdTAwODNcMlx1MDg1MyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwODU3XDVc dTAwZmNcMTc3XDJcdTA4NTRcdTA4NTdcNVx1MDBmZVx1MDA4MFwyXHUwODU1IikNCj4gDQo+ICsN Cj4gYnVmLndyaXRlKCJcdTA4NTdcNVx1MDEwZVx1MDA4OFwyXHUwODU2XHUwODUyXDNcMlwyXDJc dTA4NTZcdTA4NTMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwODU2XHUwODU0 XDNcMlwyXDJcdTA4NTZcdTA4NTVcM1wyXDJcMlx1MDg1NyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXHUwMGY5XDNcMlwyXDJcdTA4NThcdTA4NTlcNVx1MDEwNFx1MDA4M1wyXHUwODU5XHUwODVh IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcNVx1MDEwYVx1MDA4NlwyXHUwODVhXHUwODViXDVc dTAxMGNcdTAwODdcMlx1MDg1Ylx1MDg1YyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDVcdTAx MGVcdTAwODhcMlx1MDg1Y1x1MDBmYlwzXDJcMlwyXHUwODVkXHUwODVlXDVcdTAxMGEiKQ0KPiAN Cj4gKw0KPiBidWYud3JpdGUoIlx1MDA4NlwyXHUwODVlXHUwMGZkXDNcMlwyXDJcdTA4NWZcdTA4 NjBcNVx1MDEwY1x1MDA4NyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcdTA4NjBcdTAwZmZc M1wyXDJcMlx1MDg2MVx1MDg2OFw1cDlcMlx1MDg2Mlx1MDg2OFw1IikNCj4gDQo+ICsNCj4gYnVm LndyaXRlKCJcdTAwODhFXDJcdTA4NjNcdTA4NjhcNVx1MDBmOH1cMlx1MDg2NFx1MDg2OFw1XHUw MTE4XHUwMDhkDQo+ICIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcdTA4NjVcdTA4NjhcNVx1 MDExY1x1MDA4ZlwyXHUwODY2XHUwODY4XDVcdTAxMTBcdTAwODkiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlwyXHUwODY3XHUwODYxXDNcMlwyXDJcdTA4NjdcdTA4NjJcM1wyXDJcMlx1MDg2N1x1 MDg2MyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA4NjdcdTA4NjRcM1wyXDJc Mlx1MDg2N1x1MDg2NVwzXDJcMlwyXHUwODY3IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA4 NjZcM1wyXDJcMlx1MDg2OFx1MDEwMVwzXDJcMlwyXHUwODY5XHUwODZlXDVwOVwyXHUwODZhIg0K PiApDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwODZlXDVcdTAwODhFXDJcdTA4NmJcdTA4NmVc NVx1MDExOFx1MDA4ZFwyXHUwODZjXHUwODZlIg0KPiApDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgi XDVcdTAxMTBcdTAwODlcMlx1MDg2ZFx1MDg2OVwzXDJcMlwyXHUwODZkXHUwODZhXDNcMlwyIikN Cj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlx1MDg2ZFx1MDg2YlwzXDJcMlwyXHUwODZkXHUwODZj XDNcMlwyXDJcdTA4NmVcdTAxMDMiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcM1wyXDJc Mlx1MDg2Zlx1MDg3MFw3bFwyXDJcdTA4NzBcdTA4NzFcNVx1MDEyNFx1MDA5MyIpDQo+IA0KPiAr ICAgICAgICBidWYud3JpdGUoIlwyXHUwODcxXHUwODc1XDcNCj4gXDJcMlx1MDg3Mlx1MDg3NFw1 XHUwMTAwXHUwMDgxXDJcdTA4NzMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDg3MlwzXDJc MlwyXHUwODc0XHUwODc3XDNcMlwyXDJcdTA4NzVcdTA4NzNcM1wyXDJcMiIpDQo+IA0KPiArDQo+ IGJ1Zi53cml0ZSgiXHUwODc1XHUwODc2XDNcMlwyXDJcdTA4NzZcdTA4NzhcM1wyXDJcMlx1MDg3 N1x1MDg3NVwzIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDJcMlwyXHUwODc4XHUwODc5 XDdzXDJcMlx1MDg3OVx1MDg3YVw3DQo+IFwyXDJcdTA4N2FcdTAxMDUiKQ0KPiANCj4gKw0KPiBi dWYud3JpdGUoIlwzXDJcMlwyXHUwODdiXHUwODg4XDdrXDJcMlx1MDg3Y1x1MDg3ZFw3QFwyXDJc dTA4N2RcdTA4N2UNCj4gIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcN1xiXDJcMlx1MDg3ZVx1 MDg4M1w1XHUwMDllUFwyXHUwODdmXHUwODgwXDcoXDJcMlx1MDg4MCIpDQo+IA0KPiArDQo+IGJ1 Zi53cml0ZSgiXHUwODgyXDVcdTAwOWVQXDJcdTA4ODFcdTA4N2ZcM1wyXDJcMlx1MDg4Mlx1MDg4 NVwzXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcdTA4ODNcdTA4ODFcM1wyXDJcMlx1 MDg4M1x1MDg4NFwzXDJcMlwyXHUwODg0XHUwODg2IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0 ZSgiXDNcMlwyXDJcdTA4ODVcdTA4ODNcM1wyXDJcMlx1MDg4Nlx1MDg4N1w3IVwyXDJcdTA4ODci KQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDg4OVwzXDJcMlwyXHUwODg4XHUwODdjXDNcMlwy XDJcdTA4ODhcdTA4ODlcM1wyXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwODg5XHUw ODhhXDNcMlwyXDJcdTA4OGFcdTA4OGJcNVx1MDEyNFx1MDA5M1wyXHUwODhiIikNCj4gDQo+ICsg ICAgICAgIGJ1Zi53cml0ZSgiXHUwODhjXDcNCj4gXDJcMlx1MDg4Y1x1MDEwN1wzXDJcMlwyXHUw ODhkXHUwODlhXDdLXDJcMlx1MDg4ZSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwODhmXDdA XDJcMlx1MDg4Zlx1MDg5MFw3XGJcMlwyXHUwODkwXHUwODk1XDVcdTAwOWUiKQ0KPiANCj4gKw0K PiBidWYud3JpdGUoIlBcMlx1MDg5MVx1MDg5Mlw3KFwyXDJcdTA4OTJcdTA4OTRcNVx1MDA5ZVBc Mlx1MDg5M1x1MDg5MSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA4OTRcdTA4 OTdcM1wyXDJcMlx1MDg5NVx1MDg5M1wzXDJcMlwyXHUwODk1IikNCj4gDQo+ICsNCj4gYnVmLndy aXRlKCJcdTA4OTZcM1wyXDJcMlx1MDg5Nlx1MDg5OFwzXDJcMlwyXHUwODk3XHUwODk1XDNcMlwy XDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDg5OFx1MDg5OVw3IVwyXDJcdTA4OTlcdTA4 OWJcM1wyXDJcMlx1MDg5YVx1MDg4ZVwzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXDJc dTA4OWFcdTA4OWJcM1wyXDJcMlx1MDg5Ylx1MDg5Y1wzXDJcMlwyXHUwODljXHUwODlkIikNCj4g DQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDVcdTAxMjRcdTAwOTNcMlx1MDg5ZFx1MDg5ZVw3DQo+ IFwyXDJcdTA4OWVcdTAxMDlcM1wyXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXHUwODlm XHUwOGFjXDdrXDJcMlx1MDhhMFx1MDhhMVw3QFwyXDJcdTA4YTFcdTA4YTJcNyIpDQo+IA0KPiAr DQo+IGJ1Zi53cml0ZSgiXGJcMlwyXHUwOGEyXHUwOGE3XDVcdTAwOWVQXDJcdTA4YTNcdTA4YTRc NyhcMlwyXHUwOGE0IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA4YTZcNVx1MDA5ZVBcMlx1 MDhhNVx1MDhhM1wzXDJcMlwyXHUwOGE2XHUwOGE5XDNcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXDJcMlx1MDhhN1x1MDhhNVwzXDJcMlwyXHUwOGE3XHUwOGE4XDNcMlwyXDJcdTA4YThcdTA4 YWEiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1MDhhOVx1MDhhN1wzXDJc MlwyXHUwOGFhXHUwOGFiXDchXDJcMlx1MDhhYiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUw OGFkXDNcMlwyXDJcdTA4YWNcdTA4YTBcM1wyXDJcMlx1MDhhY1x1MDhhZFwzXDJcMlwyIikNCj4g DQo+ICsNCj4gYnVmLndyaXRlKCJcdTA4YWRcdTA4YWVcM1wyXDJcMlx1MDhhZVx1MDhhZlw1XHUw MTI0XHUwMDkzXDJcdTA4YWYiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTA4YjNcNw0K PiBcMlwyXHUwOGIwXHUwOGIyXDVcdTAxMDBcdTAwODFcMlx1MDhiMVx1MDhiMCIpDQo+IA0KPiAr DQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA4YjJcdTA4YjVcM1wyXDJcMlx1MDhiM1x1MDhiMVwz XDJcMlwyXHUwOGIzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA4YjRcM1wyXDJcMlx1MDhi NFx1MDhiNlwzXDJcMlwyXHUwOGI1XHUwOGIzXDNcMlwyXDIiKQ0KPiANCj4gKyAgICAgICAgYnVm LndyaXRlKCJcdTA4YjZcdTA4YjdcN3NcMlwyXHUwOGI3XHUwOGI4XDcNCj4gXDJcMlx1MDhiOFx1 MDEwYlwzXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcdTA4YjlcdTA4YzZcN0tcMlwy XHUwOGJhXHUwOGJiXDdAXDJcMlx1MDhiYlx1MDhiYyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgi XDdcYlwyXDJcdTA4YmNcdTA4YzFcNVx1MDA5ZVBcMlx1MDhiZFx1MDhiZVw3KFwyXDJcdTA4YmUi KQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTA4YzBcNVx1MDA5ZVBcMlx1MDhiZlx1MDhi ZFwzXDJcMlwyXHUwOGMwXHUwOGMzXDNcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlx1 MDhjMVx1MDhiZlwzXDJcMlwyXHUwOGMxXHUwOGMyXDNcMlwyXDJcdTA4YzJcdTA4YzQiKQ0KPiAN Cj4gKyAgICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1MDhjM1x1MDhjMVwzXDJcMlwyXHUwOGM0 XHUwOGM1XDchXDJcMlx1MDhjNSIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlx1MDhjN1wz XDJcMlwyXHUwOGM2XHUwOGJhXDNcMlwyXDJcdTA4YzZcdTA4YzdcM1wyXDJcMiIpDQo+IA0KPiAr DQo+IGJ1Zi53cml0ZSgiXHUwOGM3XHUwOGM4XDNcMlwyXDJcdTA4YzhcdTA4YzlcNVx1MDEyNFx1 MDA5M1wyXHUwOGM5IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwOGNkXDcgXDJcMlx1 MDhjYVx1MDhjY1w1XHUwMTAwXHUwMDgxXDJcdTA4Y2JcdTA4Y2EiKQ0KPiANCj4gKyAgICAgICAg YnVmLndyaXRlKCJcM1wyXDJcMlx1MDhjY1x1MDhjZlwzXDJcMlwyXHUwOGNkXHUwOGNiXDNcMlwy XDJcdTA4Y2QiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTA4Y2VcM1wyXDJcMlx1MDhj ZVx1MDhkMFwzXDJcMlwyXHUwOGNmXHUwOGNkXDNcMlwyXDIiKQ0KPiANCj4gKyAgICAgICAgYnVm LndyaXRlKCJcdTA4ZDBcdTA4ZDFcN3NcMlwyXHUwOGQxXHUwOGQyXDcNCj4gXDJcMlx1MDhkMlx1 MDEwZFwzXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcdTA4ZDNcdTA4ZDRcN3BcMlwy XHUwOGQ0XHUwOGQ1XDdcNjJcMlwyXHUwOGQ1XHUwOGQ2IikNCj4gDQo+ICsNCj4gYnVmLndyaXRl KCJcN1xiXDJcMlx1MDhkNlx1MDhkN1w3XHUwMGVjXDJcMlx1MDhkN1x1MDhkOFw3XDMwXDJcMiIp DQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwOGQ4XHUwOGQ5XDdcdTAwZmFcMlwyXHUwOGQ5XHUw OGRhXDdcMzFcMlwyXHUwOGRhXHUwOGU3IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcNyFcMlwy XHUwOGRiXHUwOGRjXDdAXDJcMlx1MDhkY1x1MDhkZFw3XGJcMlwyXHUwOGRkXHUwOGUyDQo+ICIp DQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlw1XHUwMDllUFwyXHUwOGRlXHUwOGRmXDcoXDJc Mlx1MDhkZlx1MDhlMVw1XHUwMDllUFwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA4ZTBc dTA4ZGVcM1wyXDJcMlx1MDhlMVx1MDhlNFwzXDJcMlwyXHUwOGUyXHUwOGUwXDMiKQ0KPiANCj4g Kw0KPiBidWYud3JpdGUoIlwyXDJcMlx1MDhlMlx1MDhlM1wzXDJcMlwyXHUwOGUzXHUwOGU1XDNc MlwyXDJcdTA4ZTRcdTA4ZTIiDQo+ICkNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDNcMlwy XDJcdTA4ZTVcdTA4ZTZcNyFcMlwyXHUwOGU2XHUwOGU4XDNcMlwyXDJcdTA4ZTciKQ0KPiANCj4g Kw0KPiBidWYud3JpdGUoIlx1MDhkYlwzXDJcMlwyXHUwOGU3XHUwOGU4XDNcMlwyXDJcdTA4ZThc dTA4ZTlcM1wyXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwOGU5XHUwOGVhXDVcdTAx MjRcdTAwOTNcMlx1MDhlYVx1MDhlYlw3c1wyXDJcdTA4ZWIiKQ0KPiANCj4gKyAgICAgICAgYnVm LndyaXRlKCJcdTA4ZWNcNyBcMlwyXHUwOGVjXHUwMTBmXDNcMlwyXDJcdTA4ZWRcdTA4ZjFcNVx1 MDExMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMDhhXDJcdTA4ZWVcdTA4ZjFcNVx1MDEx NFx1MDA4YlwyXHUwOGVmXHUwOGYxXDVcdTAxMTYiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1 MDA4Y1wyXHUwOGYwXHUwOGVkXDNcMlwyXDJcdTA4ZjBcdTA4ZWVcM1wyXDJcMlx1MDhmMCIpDQo+ IA0KPiArICAgICAgICBidWYud3JpdGUoIlx1MDhlZlwzXDJcMlwyXHUwOGYxXHUwMTExXDNcMlwy XDJcdTA4ZjJcdTA4ZjNcN21cMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA4ZjNcdTA4 ZjRcN1x1MDA5NlwyXDJcdTA4ZjRcdTA4ZjVcN1xiXDJcMlx1MDhmNVx1MDhmNiIpDQo+IA0KPiAr DQo+IGJ1Zi53cml0ZSgiXDdcdTAwZmFcMlwyXHUwOGY2XHUwOGY3XDchXDJcMlx1MDhmN1x1MDhm OFw3dFwyXDJcdTA4ZjgiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTA4ZjlcN1xiXDJc Mlx1MDhmOVx1MDhmYVw3XHUwMGZhXDJcMlx1MDhmYVx1MDhmYlw3ICIpDQo+IA0KPiArDQo+IGJ1 Zi53cml0ZSgiXDJcMlx1MDhmYlx1MDExM1wzXDJcMlwyXHUwOGZjXHUwOGZkXDdOXDJcMlx1MDhm ZFx1MDhmZSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDc9XDJcMlx1MDhmZVx1MDhmZlw3XGJc MlwyXHUwOGZmXHUwOTAwXDdcdTAwZWNcMlwyXHUwOTAwIikNCj4gDQo+ICsNCj4gYnVmLndyaXRl KCJcdTA5MDFcN1wzMFwyXDJcdTA5MDFcdTA5MDJcN1x1MDBmYVwyXDJcdTA5MDJcdTA5MDNcNyIp DQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDMxXDJcMlx1MDkwM1x1MDkwNFw3IVwyXDJcdTA5MDRc dTA5MDVcNz5cMlwyXHUwOTA1XHUwOTA2IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDdc YlwyXDJcdTA5MDZcdTA5MDdcN1x1MDBlY1wyXDJcdTA5MDdcdTA5MDhcN1wzMFwyXDIiKQ0KPiAN Cj4gKw0KPiBidWYud3JpdGUoIlx1MDkwOFx1MDkwOVw3XHUwMGZhXDJcMlx1MDkwOVx1MDkwYVw3 XDMxXDJcMlx1MDkwYVx1MDkxMSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDchXDJcMlx1MDkw Ylx1MDkwY1w3PlwyXDJcdTA5MGNcdTA5MGRcN1xiXDJcMlx1MDkwZFx1MDkwZSIpDQo+IA0KPiAr ICAgICAgICBidWYud3JpdGUoIlw3XHUwMGVjXDJcMlx1MDkwZVx1MDkwZlw3XDMwXDJcMlx1MDkw Zlx1MDkxMFw3XHUwMGZhIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXHUwOTEwXHUwOTEy XDdcMzFcMlwyXHUwOTExXHUwOTBiXDNcMlwyXDJcdTA5MTFcdTA5MTIiKQ0KPiANCj4gKyAgICAg ICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1MDkxMlx1MDkxM1wzXDJcMlwyXHUwOTEzXHUwOTE0XDcg XDJcMlx1MDkxNCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMTE1XDNcMlwyXDJcdTA5MTVc dTA5MTZcdFxiXDJcMlx1MDkxNlx1MDkxN1w3XHUwMDg3IikNCj4gDQo+ICsNCj4gYnVmLndyaXRl KCJcMlwyXHUwOTE3XHUwOTE4XDchXDJcMlx1MDkxOFx1MDkxOVw3L1wyXDJcdTA5MTlcdTA5MWEi KQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3XGJcMlwyXHUwOTFhXHUwOTFiXDdcdTAwZmFcMlwy XHUwOTFiXHUwOTFjXDchXDJcMlx1MDkxYyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwOTFk XDdcNjJcMlwyXHUwOTFkXHUwOTFlXDdcYlwyXDJcdTA5MWVcdTA5MWZcN1x1MDBlYyIpDQo+IA0K PiArDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MDkxZlx1MDkyMFw3XDMwXDJcMlx1MDkyMFx1MDkyMVw3 XHUwMGZhXDJcMlx1MDkyMSIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlx1MDkyMlw3XDMx XDJcMlx1MDkyMlx1MDkyM1w3IVwyXDJcdTA5MjNcdTA5MjRcNz1cMlwyIikNCj4gDQo+ICsNCj4g YnVmLndyaXRlKCJcdTA5MjRcdTA5MjVcN1xiXDJcMlx1MDkyNVx1MDkyNlw3XHUwMGVjXDJcMlx1 MDkyNlx1MDkyNyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDdcMzBcMlwyXHUwOTI3XHUwOTI4 XDdcdTAwZmFcMlwyXHUwOTI4XHUwOTM0XDdcMzFcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRl KCJcdTA5MjlcdTA5MmFcNyFcMlwyXHUwOTJhXHUwOTJiXDdAXDJcMlx1MDkyYlx1MDkyY1w3XGIi KQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcdTA5MmNcdTA5MzFcNVx1MDA5ZVBcMlx1MDky ZFx1MDkyZVw3KFwyXDJcdTA5MmVcdTA5MzAiDQo+ICkNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJc NVx1MDA5ZVBcMlx1MDkyZlx1MDkyZFwzXDJcMlwyXHUwOTMwXHUwOTMzXDNcMlwyXDJcdTA5MzEi KQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDkyZlwzXDJcMlwyXHUwOTMxXHUwOTMyXDNcMlwy XDJcdTA5MzJcdTA5MzVcM1wyXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwOTMzXHUw OTMxXDNcMlwyXDJcdTA5MzRcdTA5MjlcM1wyXDJcMlx1MDkzNFx1MDkzNVwzIikNCj4gDQo+ICsN Cj4gYnVmLndyaXRlKCJcMlwyXDJcdTA5MzVcdTA5M2FcM1wyXDJcMlx1MDkzNlx1MDkzN1w3IVwy XDJcdTA5MzdcdTA5MzgiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3dFwyXDJcdTA5MzhcdTA5 MzlcN1xiXDJcMlx1MDkzOVx1MDkzYlw3XHUwMGZhXDJcMlx1MDkzYSIpDQo+IA0KPiArDQo+IGJ1 Zi53cml0ZSgiXHUwOTM2XDNcMlwyXDJcdTA5M2FcdTA5M2JcM1wyXDJcMlx1MDkzYlx1MDkzY1wz XDJcMlwyIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwOTNjXHUwOTNkXDcgXDJcMlx1 MDkzZFx1MDExN1wzXDJcMlwyXHUwOTNlXHUwOTNmXDciKQ0KPiANCj4gKyAgICAgICAgYnVmLndy aXRlKCJMXDJcMlx1MDkzZlx1MDk0MFw3XHUwMGZhXDJcMlx1MDk0MFx1MDk0MVw3IFwyXDJcdTA5 NDEiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDExOVwzXDJcMlwyXHUwOTQyXHUwOTQ0XDdc dTAwODhcMlwyXHUwOTQzXHUwOTQ1XDchIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXHUw OTQ0XHUwOTQzXDNcMlwyXDJcdTA5NDRcdTA5NDVcM1wyXDJcMlx1MDk0NVx1MDk0NiIpDQo+IA0K PiArICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwyXHUwOTQ2XHUwOTQ3XDcuXDJcMlx1MDk0N1x1 MDk0OFw3XGJcMlwyXHUwOTQ4IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA5NDlcN1x1MDBl Y1wyXDJcdTA5NDlcdTA5NGFcN1wzMFwyXDJcdTA5NGFcdTA5NGJcNyIpDQo+IA0KPiArDQo+IGJ1 Zi53cml0ZSgiXHUwMGZhXDJcMlx1MDk0Ylx1MDk0Y1w3XDMxXDJcMlx1MDk0Y1x1MDk1N1w3IVwy XDJcdTA5NGQiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDk0ZVw3XHUwMDhkXDJcMlx1MDk0 ZVx1MDk0Zlw3XHUwMGZhXDJcMlx1MDk0Zlx1MDk1MCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgi XDchXDJcMlx1MDk1MFx1MDk1MVw3XHUwMDg5XDJcMlx1MDk1MVx1MDk1Mlx0XHRcMlwyXHUwOTUy IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwOTU4XDcNCj4gXDJcMlx1MDk1M1x1MDk1 NFw3TVwyXDJcdTA5NTRcdTA5NTVcN1xiXDJcMlx1MDk1NSIpDQo+IA0KPiArICAgICAgICBidWYu d3JpdGUoIlx1MDk1Nlw3XHUwMGZhXDJcMlx1MDk1Nlx1MDk1OFw3IFwyXDJcdTA5NTdcdTA5NGRc M1wyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXHUwOTU3XHUwOTUzXDNcMlwyXDJcdTA5 NThcdTAxMWJcM1wyXDJcMlx1MDk1OVx1MDk1YSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDdc dTAwYTdcMlwyXHUwOTVhXHUwOTViXDdbXDJcMlx1MDk1Ylx1MDk1Y1w3XGJcMlwyXHUwOTVjIikN Cj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA5YTRcNUxcJ1wyXHUwOTVkXHUwOTVlXDchXDJcMlx1 MDk1ZVx1MDk1Zlw3XHUwMGE5XDIiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcMlx1MDk1 Zlx1MDk5Y1w3XGJcMlwyXHUwOTYwXHUwOTY0XDdTXDJcMlx1MDk2MVx1MDk2MiIpDQo+IA0KPiAr DQo+IGJ1Zi53cml0ZSgiXDdcMzJcMlwyXHUwOTYyXHUwOTYzXDdcdTAwZmFcMlwyXHUwOTYzXHUw OTY1XDdcMzNcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA5NjRcdTA5NjFcM1wyXDJc Mlx1MDk2NFx1MDk2NVwzXDJcMlwyXHUwOTY1XHUwOTlkXDMiKQ0KPiANCj4gKw0KPiBidWYud3Jp dGUoIlwyXDJcMlx1MDk2Nlx1MDk2YVw3VFwyXDJcdTA5NjdcdTA5NjhcN1wzMlwyXDJcdTA5Njhc dTA5NjkiDQo+ICkNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDdcdTAwZmFcMlwyXHUwOTY5 XHUwOTZiXDdcMzNcMlwyXHUwOTZhXHUwOTY3XDNcMlwyXDIiKQ0KPiANCj4gKw0KPiBidWYud3Jp dGUoIlx1MDk2YVx1MDk2YlwzXDJcMlwyXHUwOTZiXHUwOTlkXDNcMlwyXDJcdTA5NmNcdTA5NzBc NyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiVVwyXDJcdTA5NmRcdTA5NmVcN1wzMlwyXDJcdTA5 NmVcdTA5NmZcN1x1MDBmYVwyXDJcdTA5NmYiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJc dTA5NzFcN1wzM1wyXDJcdTA5NzBcdTA5NmRcM1wyXDJcMlx1MDk3MFx1MDk3MVwzXDJcMiIpDQo+ IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcdTA5NzFcdTA5OWRcM1wyXDJcMlx1MDk3Mlx1MDk3Nlw3 VlwyXDJcdTA5NzNcdTA5NzQiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3XDMyXDJcMlx1MDk3 NFx1MDk3NVw3XHUwMGZhXDJcMlx1MDk3NVx1MDk3N1w3XDMzXDJcMiIpDQo+IA0KPiArDQo+IGJ1 Zi53cml0ZSgiXHUwOTc2XHUwOTczXDNcMlwyXDJcdTA5NzZcdTA5NzdcM1wyXDJcMlx1MDk3N1x1 MDk5ZFwzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXDJcdTA5NzhcdTA5N2NcN1JcMlwy XHUwOTc5XHUwOTdhXDdcMzJcMlwyXHUwOTdhXHUwOTdiIg0KPiApDQo+IA0KPiArICAgICAgICBi dWYud3JpdGUoIlw3XHUwMGZhXDJcMlx1MDk3Ylx1MDk3ZFw3XDMzXDJcMlx1MDk3Y1x1MDk3OVwz XDJcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA5N2NcdTA5N2RcM1wyXDJcMlx1MDk3 ZFx1MDk5ZFwzXDJcMlwyXHUwOTdlXHUwOTgyXDciKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIldc MlwyXHUwOTdmXHUwOTgwXDdcMzJcMlwyXHUwOTgwXHUwOTgxXDdcdTAwZmFcMlwyXHUwOTgxIikN Cj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwOTgzXDdcMzNcMlwyXHUwOTgyXHUwOTdmXDNc MlwyXDJcdTA5ODJcdTA5ODNcM1wyXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXHUwOTgz XHUwOTlkXDNcMlwyXDJcdTA5ODRcdTA5ODhcN1hcMlwyXHUwOTg1XHUwOTg2IikNCj4gDQo+ICsN Cj4gYnVmLndyaXRlKCJcN1wzMlwyXDJcdTA5ODZcdTA5ODdcN1x1MDBmYVwyXDJcdTA5ODdcdTA5 ODlcN1wzM1wyXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDk4OFx1MDk4NVwzXDJcMlwy XHUwOTg4XHUwOTg5XDNcMlwyXDJcdTA5ODlcdTA5OWRcMyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXDJcMlwyXHUwOThhXHUwOThlXDdZXDJcMlx1MDk4Ylx1MDk4Y1w3XDMyXDJcMlx1MDk4Y1x1 MDk4ZCINCj4gKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcN1x1MDBmYVwyXDJcdTA5OGRc dTA5OGZcN1wzM1wyXDJcdTA5OGVcdTA5OGJcM1wyXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXHUwOThlXHUwOThmXDNcMlwyXDJcdTA5OGZcdTA5OWRcM1wyXDJcMlx1MDk5MFx1MDk5NFw3 IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJaXDJcMlx1MDk5MVx1MDk5Mlw3XDMyXDJcMlx1MDk5 Mlx1MDk5M1w3XHUwMGZhXDJcMlx1MDk5MyIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlx1 MDk5NVw3XDMzXDJcMlx1MDk5NFx1MDk5MVwzXDJcMlwyXHUwOTk0XHUwOTk1XDNcMlwyIikNCj4g DQo+ICsNCj4gYnVmLndyaXRlKCJcMlx1MDk5NVx1MDk5ZFwzXDJcMlwyXHUwOTk2XHUwOTlhXDdc dTAwZmJcMlwyXHUwOTk3XHUwOTk4Ig0KPiApDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDdcMzJc MlwyXHUwOTk4XHUwOTk5XDdcdTAwZmFcMlwyXHUwOTk5XHUwOTliXDdcMzNcMlwyIikNCj4gDQo+ ICsNCj4gYnVmLndyaXRlKCJcdTA5OWFcdTA5OTdcM1wyXDJcMlx1MDk5YVx1MDk5YlwzXDJcMlwy XHUwOTliXHUwOTlkXDMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcMlx1MDk5Y1x1MDk2 MFwzXDJcMlwyXHUwOTljXHUwOTY2XDNcMlwyXDJcdTA5OWNcdTA5NmMiKQ0KPiANCj4gKw0KPiBi dWYud3JpdGUoIlwzXDJcMlwyXHUwOTljXHUwOTcyXDNcMlwyXDJcdTA5OWNcdTA5NzhcM1wyXDJc Mlx1MDk5YyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwOTdlXDNcMlwyXDJcdTA5OWNcdTA5 ODRcM1wyXDJcMlx1MDk5Y1x1MDk4YVwzXDJcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJc dTA5OWNcdTA5OTBcM1wyXDJcMlx1MDk5Y1x1MDk5NlwzXDJcMlwyXHUwOTlkXHUwOWExXDMiKQ0K PiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcMlx1MDk5ZVx1MDlhMFw1XHUwMTFlXHUwMDkwXDJc dTA5OWZcdTA5OWVcM1wyXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwOWEwXHUwOWEz XDNcMlwyXDJcdTA5YTFcdTA5OWZcM1wyXDJcMlx1MDlhMVx1MDlhMlwzIikNCj4gDQo+ICsNCj4g YnVmLndyaXRlKCJcMlwyXDJcdTA5YTJcdTA5YTVcM1wyXDJcMlx1MDlhM1x1MDlhMVwzXDJcMlwy XHUwOWE0XHUwOTVkIg0KPiApDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA5YTRc dTA5YTVcM1wyXDJcMlx1MDlhNVx1MDlhZVwzXDJcMlwyXHUwOWE2IikNCj4gDQo+ICsNCj4gYnVm LndyaXRlKCJcdTA5YWFcNyFcMlwyXHUwOWE3XHUwOWE5XDVcdTAxMWNcdTAwOGZcMlx1MDlhOFx1 MDlhNyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA5YTlcdTA5YWNcM1wyXDJc Mlx1MDlhYVx1MDlhOFwzXDJcMlwyXHUwOWFhIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA5 YWJcM1wyXDJcMlx1MDlhYlx1MDlhZFwzXDJcMlwyXHUwOWFjXHUwOWFhXDNcMlwyXDIiKQ0KPiAN Cj4gKw0KPiBidWYud3JpdGUoIlx1MDlhZFx1MDlhZlw3XHUwMGE4XDJcMlx1MDlhZVx1MDlhNlwz XDJcMlwyXHUwOWFlXHUwOWFmIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDNcMlwyXDJc dTA5YWZcdTA5YjBcM1wyXDJcMlx1MDliMFx1MDliMVw3IFwyXDJcdTA5YjEiKQ0KPiANCj4gKw0K PiBidWYud3JpdGUoIlx1MDExZFwzXDJcMlwyXHUwOWIyXHUwOWIzXDchXDJcMlx1MDliM1x1MDli N1w3XHUwMGFhIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXHUwOWI0XHUwOWI1XDdcMzJc MlwyXHUwOWI1XHUwOWI2XDdcdTAwZmFcMlwyXHUwOWI2IikNCj4gDQo+ICsNCj4gYnVmLndyaXRl KCJcdTA5YjhcN1wzM1wyXDJcdTA5YjdcdTA5YjRcM1wyXDJcMlx1MDliN1x1MDliOFwzXDJcMiIp DQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcdTA5YjhcdTA5YmRcM1wyXDJcMlx1MDliOVx1MDli YVw3XDM0XDJcMlx1MDliYVx1MDliYyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDVcdTAxNWVc dTAwYjBcMlx1MDliYlx1MDliOVwzXDJcMlwyXHUwOWJjXHUwOWJmXDNcMlwyIikNCj4gDQo+ICsN Cj4gYnVmLndyaXRlKCJcMlx1MDliZFx1MDliYlwzXDJcMlwyXHUwOWJkXHUwOWJlXDNcMlwyXDJc dTA5YmVcdTA5YzAiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1MDliZlx1 MDliZFwzXDJcMlwyXHUwOWMwXHUwOWMxXDdcYlwyXDJcdTA5YzEiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlx1MDljMlw3XHUwMGZhXDJcMlx1MDljMlx1MDExZlwzXDJcMlwyXHUwOWMzXHUwOWM0 XDVcdTAxMjIiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTAwOTJcMlx1MDljNFx1MDlj NVw3IFwyXDJcdTA5YzVcdTAxMjFcM1wyXDJcMlx1MDljNiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXHUwOWM3XDdcdTAwYWJcMlwyXHUwOWM3XHUwMTIzXDNcMlwyXDJcdTA5YzhcdTA5Y2RcNVx1 MDEyOCINCj4gKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDA5NVwyXHUwOWM5XHUwOWNhXDdc dTAwZGNcMlwyXHUwOWNhXHUwOWNjXDVcdTAxMjhcdTAwOTUiDQo+ICkNCj4gDQo+ICsgICAgICAg IGJ1Zi53cml0ZSgiXDJcdTA5Y2JcdTA5YzlcM1wyXDJcMlx1MDljY1x1MDljZlwzXDJcMlwyXHUw OWNkXHUwOWNiIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTA5Y2RcdTA5 Y2VcM1wyXDJcMlx1MDljZVx1MDEyNVwzXDJcMlwyXHUwOWNmIikNCj4gDQo+ICsNCj4gYnVmLndy aXRlKCJcdTA5Y2RcM1wyXDJcMlx1MDlkMFx1MDlkNVw1XHUwMTI4XHUwMDk1XDJcdTA5ZDFcdTA5 ZDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3XHUwMGRjXDJcMlx1MDlkMlx1MDlkNFw1XHUw MTI4XHUwMDk1XDJcdTA5ZDNcdTA5ZDFcMyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlwy XHUwOWQ0XHUwOWQ3XDNcMlwyXDJcdTA5ZDVcdTA5ZDNcM1wyXDJcMlx1MDlkNVx1MDlkNiINCj4g KQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwOWQ2XHUwMTI3XDNcMlwyXDJcdTA5 ZDdcdTA5ZDVcM1wyXDJcMlx1MDlkOCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwOWRkXDVc dTAxMmFcdTAwOTZcMlx1MDlkOVx1MDlkYVw3XHUwMGRiXDJcMlx1MDlkYVx1MDlkDQo+IGMiKQ0K PiANCj4gKw0KPiBidWYud3JpdGUoIlw1XHUwMTJhXHUwMDk2XDJcdTA5ZGJcdTA5ZDlcM1wyXDJc Mlx1MDlkY1x1MDlkZlwzXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcdTA5ZGRcdTA5 ZGJcM1wyXDJcMlx1MDlkZFx1MDlkZVwzXDJcMlwyXHUwOWRlXHUwMTI5IikNCj4gDQo+ICsNCj4g YnVmLndyaXRlKCJcM1wyXDJcMlx1MDlkZlx1MDlkZFwzXDJcMlwyXHUwOWUwXHUwOWU1XDVcdTAx MmNcdTAwOTciKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXHUwOWUxXHUwOWUyXDcoXDJcMlx1 MDllMlx1MDllNFw1XHUwMTJjXHUwMDk3XDJcdTA5ZTMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUo Ilx1MDllMVwzXDJcMlwyXHUwOWU0XHUwOWU3XDNcMlwyXDJcdTA5ZTVcdTA5ZTNcM1wyXDJcMiIp DQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwOWU1XHUwOWU2XDNcMlwyXDJcdTA5ZTZcdTAxMmJc M1wyXDJcMlx1MDllN1x1MDllNVwzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXDJcdTA5 ZThcdTA5ZWRcNVx1MDEyZVx1MDA5OFwyXHUwOWU5XHUwOWVhXDcpXDJcMiIpDQo+IA0KPiArDQo+ IGJ1Zi53cml0ZSgiXHUwOWVhXHUwOWVjXDVcdTAxMmVcdTAwOThcMlx1MDllYlx1MDllOVwzXDJc MlwyXHUwOWVjIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA5ZWZcM1wyXDJcMlx1MDllZFx1 MDllYlwzXDJcMlwyXHUwOWVkXHUwOWVlXDNcMlwyXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUo Ilx1MDllZVx1MDEyZFwzXDJcMlwyXHUwOWVmXHUwOWVkXDNcMlwyXDJcdTA5ZjBcdTA5ZjRcNSIp DQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMTMyXHUwMDlhXDJcdTA5ZjFcdTA5ZjNcNVx1MDEz MFx1MDA5OVwyXHUwOWYyXHUwOWYxIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDNcMlwy XDJcdTA5ZjNcdTA5ZjZcM1wyXDJcMlx1MDlmNFx1MDlmMlwzXDJcMlwyXHUwOWY0IikNCj4gDQo+ ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwOWY1XDNcMlwyXDJcdTA5ZjVcdTAxMmZcM1wyXDJcMlx1 MDlmNlx1MDlmNFwzXDJcMlwyIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwOWY3XHUw OWY4XDdcIlwyXDJcdTA5ZjhcdTA5ZmNcNVx1MDEzMlx1MDA5YVwyXHUwOWY5IikNCj4gDQo+ICsg ICAgICAgIGJ1Zi53cml0ZSgiXHUwOWZhXDcjXDJcMlx1MDlmYVx1MDlmY1w1XHUwMTMyXHUwMDlh XDJcdTA5ZmJcdTA5ZjciKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1MDlm Ylx1MDlmOVwzXDJcMlwyXHUwOWZjXHUwMTMxXDNcMlwyXDJcdTA5ZmQiKQ0KPiANCj4gKw0KPiBi dWYud3JpdGUoIlx1MGEwMVw1XHUwMTM2XHUwMDljXDJcdTA5ZmVcdTBhMDBcNVx1MDEzNFx1MDA5 YlwyXHUwOWZmIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwOWZlXDNcMlwyXDJcdTBh MDBcdTBhMDNcM1wyXDJcMlx1MGEwMVx1MDlmZlwzXDJcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndy aXRlKCJcdTBhMDFcdTBhMDJcM1wyXDJcMlx1MGEwMlx1MDEzM1wzXDJcMlwyXHUwYTAzXHUwYTAx XDMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcMlx1MGEwNFx1MGEwNVw3JVwyXDJcdTBh MDVcdTBhMGRcNVx1MDEzNlx1MDA5Y1wyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTBhMDZc dTBhMDdcNyRcMlwyXHUwYTA3XHUwYTBkXDVcdTAxMzZcdTAwOWNcMlx1MGEwOCIpDQo+IA0KPiAr DQo+IGJ1Zi53cml0ZSgiXHUwYTA5XDdcJ1wyXDJcdTBhMDlcdTBhMGRcNVx1MDEzNlx1MDA5Y1wy XHUwYTBhXHUwYTBiIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcNyZcMlwyXHUwYTBiXHUwYTBk XDVcdTAxMzZcdTAwOWNcMlx1MGEwY1x1MGEwNFwzXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXDJcdTBhMGNcdTBhMDZcM1wyXDJcMlx1MGEwY1x1MGEwOFwzXDJcMlwyXHUwYTBjXHUwYTBh IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1MGEwZFx1MDEzNVwzXDJcMlwyXHUw YTBlXHUwYTEyXDVcdTAxM2FcdTAwOWUiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXHUwYTBm XHUwYTExXDVcdTAxMzhcdTAwOWRcMlx1MGExMFx1MGEwZlwzXDJcMlwyXHUwYTExIikNCj4gDQo+ ICsNCj4gYnVmLndyaXRlKCJcdTBhMTRcM1wyXDJcMlx1MGExMlx1MGExMFwzXDJcMlwyXHUwYTEy XHUwYTEzXDNcMlwyXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MGExM1x1MDEzN1wzXDJc MlwyXHUwYTE0XHUwYTEyXDNcMlwyXDJcdTBhMTVcdTBhMTZcNyIpDQo+IA0KPiArDQo+IGJ1Zi53 cml0ZSgiXGZcMlwyXHUwYTE2XHUwYTFhXDVcdTAxM2FcdTAwOWVcMlx1MGExN1x1MGExOFw3XHJc MlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTBhMThcdTBhMWFcNVx1MDEzYVx1MDA5ZVwy XHUwYTE5XHUwYTE1XDNcMlwyXDJcdTBhMTkiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MGEx N1wzXDJcMlwyXHUwYTFhXHUwMTM5XDNcMlwyXDJcdTBhMWJcdTBhMWZcNVx1MDEzZSIpDQo+IA0K PiArDQo+IGJ1Zi53cml0ZSgiXHUwMGEwXDJcdTBhMWNcdTBhMWVcNVx1MDEzY1x1MDA5ZlwyXHUw YTFkXHUwYTFjXDNcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlx1MGExZVx1MGEyMVwz XDJcMlwyXHUwYTFmXHUwYTFkXDNcMlwyXDJcdTBhMWZcdTBhMjAiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlwzXDJcMlwyXHUwYTIwXHUwMTNiXDNcMlwyXDJcdTBhMjFcdTBhMWZcM1wyXDJcMlx1 MGEyMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwYTIzXDdcMTZcMlwyXHUwYTIzXHUwYTI3 XDVcdTAxM2VcdTAwYTBcMlx1MGEyNFx1MGEyNSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDdc MzVcMlwyXHUwYTI1XHUwYTI3XDVcdTAxM2VcdTAwYTBcMlx1MGEyNlx1MGEyMlwzXDIiKQ0KPiAN Cj4gKw0KPiBidWYud3JpdGUoIlwyXDJcdTBhMjZcdTBhMjRcM1wyXDJcMlx1MGEyN1x1MDEzZFwz XDJcMlwyXHUwYTI4XHUwYTJjIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcNVx1MDE0Mlx1MDBh MlwyXHUwYTI5XHUwYTJiXDVcdTAxNDBcdTAwYTFcMlx1MGEyYVx1MGEyOSIpDQo+IA0KPiArDQo+ IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTBhMmJcdTBhMmVcM1wyXDJcMlx1MGEyY1x1MGEyYVwzXDJc MlwyXHUwYTJjIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTBhMmRcM1wyXDJcMlx1MGEyZFx1 MDEzZlwzXDJcMlwyXHUwYTJlXHUwYTJjXDNcMlwyXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUo Ilx1MGEyZlx1MGEzMFw3XDE3XDJcMlx1MGEzMFx1MGEzNlw1XHUwMTQyXHUwMGEyXDJcdTBhMzEi KQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MGEzMlw3XDM3XDJcMlx1MGEzMlx1MGEzNlw1XHUw MTQyXHUwMGEyXDJcdTBhMzNcdTBhMzQiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3XDIwXDJc Mlx1MGEzNFx1MGEzNlw1XHUwMTQyXHUwMGEyXDJcdTBhMzVcdTBhMmZcM1wyIikNCj4gDQo+ICsN Cj4gYnVmLndyaXRlKCJcMlwyXHUwYTM1XHUwYTMxXDNcMlwyXDJcdTBhMzVcdTBhMzNcM1wyXDJc Mlx1MGEzNlx1MDE0MSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTBhMzdcdTBh MzlcNVx1MDE0NFx1MDBhM1wyXHUwYTM4XHUwYTM3XDNcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndy aXRlKCJcMlx1MGEzOVx1MGEzY1wzXDJcMlwyXHUwYTNhXHUwYTM4XDNcMlwyXDJcdTBhM2FcdTBh M2IiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwYTNiXHUwYTNkXDNcMlwyXDJc dTBhM2NcdTBhM2FcM1wyXDJcMlx1MGEzZCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwYTNl XDVcdTAxNDZcdTAwYTRcMlx1MGEzZVx1MDE0M1wzXDJcMlwyXHUwYTNmXHUwYTQwIikNCj4gDQo+ ICsNCj4gYnVmLndyaXRlKCJcN1wzMFwyXDJcdTBhNDBcdTBhNDFcdFxuXDJcMlx1MGE0MVx1MGE0 Mlw3XDMxXDJcMlx1MGE0MiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMTQ1XDNcMlwyXDJc dTBhNDNcdTBhNGZcNVx1MDE0OFx1MDBhNVwyXHUwYTQ0XHUwYTRmIikNCj4gDQo+ICsNCj4gYnVm LndyaXRlKCJcNVx1MDE0YVx1MDBhNlwyXHUwYTQ1XHUwYTRmXDVcdTAxNGNcdTAwYTdcMlx1MGE0 Nlx1MGE0ZiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDVcdTAxNGVcdTAwYThcMlx1MGE0N1x1 MGE0Zlw1XHUwMTUwXHUwMGE5XDJcdTBhNDhcdTBhNGYiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUo Ilw1XHUwMTZlXHUwMGI4XDJcdTBhNDlcdTBhNGZcNVx1MDE3MFx1MDBiOVwyXHUwYTRhXHUwYTRm IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcNVx1MDE4Nlx1MDBjNFwyXHUwYTRiXHUwYTRmXDVc dTAxOTZcdTAwY2NcMlx1MGE0Y1x1MGE0ZCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDdcdTAw ZGRcMlwyXHUwYTRkXHUwYTRmXDVcdTAxNDZcdTAwYTRcMlx1MGE0ZVx1MGE0M1wzIikNCj4gDQo+ ICsNCj4gYnVmLndyaXRlKCJcMlwyXDJcdTBhNGVcdTBhNDRcM1wyXDJcMlx1MGE0ZVx1MGE0NVwz XDJcMlwyXHUwYTRlXHUwYTQ2Ig0KPiApDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJc dTBhNGVcdTBhNDdcM1wyXDJcMlx1MGE0ZVx1MGE0OFwzXDJcMlwyXHUwYTRlIikNCj4gDQo+ICsN Cj4gYnVmLndyaXRlKCJcdTBhNDlcM1wyXDJcMlx1MGE0ZVx1MGE0YVwzXDJcMlwyXHUwYTRlXHUw YTRiXDNcMlwyXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MGE0ZVx1MGE0Y1wzXDJcMlwy XHUwYTRmXHUwMTQ3XDNcMlwyXDJcdTBhNTBcdTBhNTFcNyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXHUwMGU3XDJcMlx1MGE1MVx1MGE1Mlw3XDMwXDJcMlx1MGE1Mlx1MGE1M1w1XHUwMTI2XHUw MDk0IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlx1MGE1M1x1MGE1NFw3IVwyXDJcdTBhNTRc dTBhNTVcNVx1MDEyNlx1MDA5NFwyXHUwYTU1IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTBh NTZcN1wzMVwyXDJcdTBhNTZcdTAxNDlcM1wyXDJcMlx1MGE1N1x1MGE1OFw3XHUwMGU1IikNCj4g DQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXHUwYTU4XHUwYTU5XDdcMzBcMlwyXHUwYTU5XHUwYTVh XDVcdTAxMjZcdTAwOTRcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwYTVhXHUwYTViXDch XDJcMlx1MGE1Ylx1MGE1Y1w1XHUwMTI2XHUwMDk0XDJcdTBhNWMiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlx1MGE1ZFw3XDMxXDJcMlx1MGE1ZFx1MDE0YlwzXDJcMlwyXHUwYTVlXHUwYTVmXDdc dTAwZTYiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcdTBhNWZcdTBhNjBcN1wzMFwyXDJc dTBhNjBcdTBhNjFcNVx1MDEyNlx1MDA5NFwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTBh NjFcdTBhNjJcNyFcMlwyXHUwYTYyXHUwYTYzXDVcdTAxMjZcdTAwOTRcMlx1MGE2MyIpDQo+IA0K PiArICAgICAgICBidWYud3JpdGUoIlx1MGE2NFw3IVwyXDJcdTBhNjRcdTBhNjVcNUxcJ1wyXHUw YTY1XHUwYTY2XDdcMzFcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTBhNjZcdTAxNGRc M1wyXDJcMlx1MGE2N1x1MGE2OFw3XDMwXDJcMlx1MGE2OFx1MGE2OSIpDQo+IA0KPiArDQo+IGJ1 Zi53cml0ZSgiXDVcdTAxMjZcdTAwOTRcMlx1MGE2OVx1MGE2YVw3XDMxXDJcMlx1MGE2YVx1MDE0 ZlwzXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcdTBhNmJcdTBhNzdcNVx1MDE1Mlx1 MDBhYVwyXHUwYTZjXHUwYTc3XDVcdTAxNTRcdTAwYWINCj4gIikNCj4gDQo+ICsNCj4gYnVmLndy aXRlKCJcMlx1MGE2ZFx1MGE3N1w1XHUwMTU2XHUwMGFjXDJcdTBhNmVcdTBhNzdcNVx1MDE1OFx1 MDBhZCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcdTBhNmZcdTBhNzdcNVx1MDE1YVx1MDBh ZVwyXHUwYTcwXHUwYTc3XDVcdTAxNjBcdTAwYjEiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwy XHUwYTcxXHUwYTc3XDVcdTAxNjJcdTAwYjJcMlx1MGE3Mlx1MGE3N1w1XHUwMTY0XHUwMGIzIikN Cj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlx1MGE3M1x1MGE3N1w1XHUwMTY2XHUwMGI0XDJcdTBh NzRcdTBhNzdcNVx1MDE2OFx1MDBiNSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcdTBhNzVc dTBhNzdcNVx1MDE2Y1x1MDBiN1wyXHUwYTc2XHUwYTZiXDNcMlwyXDJcdTBhNzYiKQ0KPiANCj4g Kw0KPiBidWYud3JpdGUoIlx1MGE2Y1wzXDJcMlwyXHUwYTc2XHUwYTZkXDNcMlwyXDJcdTBhNzZc dTBhNmVcM1wyXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwYTc2XHUwYTZmXDNcMlwy XDJcdTBhNzZcdTBhNzBcM1wyXDJcMlx1MGE3Nlx1MGE3MVwzIikNCj4gDQo+ICsNCj4gYnVmLndy aXRlKCJcMlwyXDJcdTBhNzZcdTBhNzJcM1wyXDJcMlx1MGE3Nlx1MGE3M1wzXDJcMlwyXHUwYTc2 XHUwYTc0Ig0KPiApDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTBhNzZcdTBhNzVc M1wyXDJcMlx1MGE3N1x1MDE1MVwzXDJcMlwyXHUwYTc4IikNCj4gDQo+ICsNCj4gYnVmLndyaXRl KCJcdTBhNzlcN1x1MDBjN1wyXDJcdTBhNzlcdTAxNTNcM1wyXDJcMlx1MGE3YVx1MGE3Ylw3XHUw MGM4Ig0KPiApDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcMlx1MGE3Ylx1MGE3Y1w3XHUwMGM5 XDJcMlx1MGE3Y1x1MGE3ZFw3XDMwXDJcMlx1MGE3ZCIpDQo+IA0KPiArICAgICAgICBidWYud3Jp dGUoIlx1MGE3ZVw3XHUwMGZhXDJcMlx1MGE3ZVx1MGE4OVw3XDMxXDJcMlx1MGE3Zlx1MGE4MFw3 IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcIlwyXDJcdTBhODBcdTBhOGFcN1x1MDBmYVwyXDJc dTBhODFcdTBhODJcNyRcMlwyXHUwYTgyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTBhOGFc N1x1MDBmYVwyXDJcdTBhODNcdTBhODRcNyVcMlwyXHUwYTg0XHUwYThhXDdcdTAwZmEiKQ0KPiAN Cj4gKw0KPiBidWYud3JpdGUoIlwyXDJcdTBhODVcdTBhODZcNyZcMlwyXHUwYTg2XHUwYThhXDdc dTAwZmFcMlwyXHUwYTg3IikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwYTg4XDdcJ1wy XDJcdTBhODhcdTBhOGFcN1x1MDBmYVwyXDJcdTBhODlcdTBhN2ZcM1wyIikNCj4gDQo+ICsNCj4g YnVmLndyaXRlKCJcMlwyXHUwYTg5XHUwYTgxXDNcMlwyXDJcdTBhODlcdTBhODNcM1wyXDJcMlx1 MGE4OVx1MGE4NSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTBhODlcdTBhODdc M1wyXDJcMlx1MGE4YVx1MDE1NVwzXDJcMlwyXHUwYThiIikNCj4gDQo+ICsNCj4gYnVmLndyaXRl KCJcdTBhOGNcN1x1MDBjYVwyXDJcdTBhOGNcdTBhOTdcNVx1MDE1Y1x1MDBhZlwyXHUwYThkXHUw YThlIg0KPiApDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDdcIlwyXDJcdTBhOGVcdTBhOThcN1x1 MDBmYVwyXDJcdTBhOGZcdTBhOTBcNyRcMlwyXHUwYTkwIikNCj4gDQo+ICsNCj4gYnVmLndyaXRl KCJcdTBhOThcN1x1MDBmYVwyXDJcdTBhOTFcdTBhOTJcNyVcMlwyXHUwYTkyXHUwYTk4XDdcdTAw ZmEiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcdTBhOTNcdTBhOTRcNyZcMlwyXHUwYTk0 XHUwYTk4XDdcdTAwZmFcMlwyXHUwYTk1IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTBhOTZc N1wnXDJcMlx1MGE5Nlx1MGE5OFw3XHUwMGZhXDJcMlx1MGE5N1x1MGE4ZFwzXDIiKQ0KPiANCj4g Kw0KPiBidWYud3JpdGUoIlwyXDJcdTBhOTdcdTBhOGZcM1wyXDJcMlx1MGE5N1x1MGE5MVwzXDJc MlwyXHUwYTk3XHUwYTkzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1MGE5N1x1 MGE5NVwzXDJcMlwyXHUwYTk4XHUwMTU3XDNcMlwyXDJcdTBhOTkiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlx1MGE5YVw3XHUwMGNiXDJcMlx1MGE5YVx1MGFhNVw1XHUwMTVjXHUwMGFmXDJcdTBh OWJcdTBhOWMiDQo+ICkNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDdcIlwyXDJcdTBhOWNc dTBhYTZcNVx1MDE1Y1x1MDBhZlwyXHUwYTlkXHUwYTllXDckXDIiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlwyXHUwYTllXHUwYWE2XDVcdTAxNWNcdTAwYWZcMlx1MGE5Zlx1MGFhMFw3JVwyXDJc dTBhYTAiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MGFhNlw1XHUwMTVjXHUwMGFmXDJcdTBh YTFcdTBhYTJcNyZcMlwyXHUwYWEyXHUwYWE2IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcNVx1 MDE1Y1x1MDBhZlwyXHUwYWEzXHUwYWE0XDdcJ1wyXDJcdTBhYTRcdTBhYTZcNVx1MDE1YyIpDQo+ IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMGFmXDJcdTBhYTVcdTBhOWJcM1wyXDJcMlx1MGFhNVx1 MGE5ZFwzXDJcMlwyXHUwYWE1IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTBhOWZcM1wyXDJc Mlx1MGFhNVx1MGFhMVwzXDJcMlwyXHUwYWE1XHUwYWEzXDNcMlwyXDIiKQ0KPiANCj4gKw0KPiBi dWYud3JpdGUoIlx1MGFhNlx1MDE1OVwzXDJcMlwyXHUwYWE3XHUwYWE4XDdcdTAwY2NcMlwyXHUw YWE4XHUwYWE5IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcNVx1MDE1Y1x1MDBhZlwyXHUwYWE5 XHUwYWFiXDdcIlwyXDJcdTBhYWFcdTBhYWNcN1x1MDBmYSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXDJcMlx1MGFhYlx1MGFhYVwzXDJcMlwyXHUwYWFjXHUwYWFkXDNcMlwyXDJcdTBhYWRcdTBh YWIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwYWFkXHUwYWFlXDNcMlwyXDJc dTBhYWVcdTAxNWJcM1wyXDJcMlx1MGFhZiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwYWIw XDdcdTAwZmJcMlwyXHUwYWIwXHUwYWIxXDdcMzJcMlwyXHUwYWIxXHUwYWIyXDciKQ0KPiANCj4g KyAgICAgICAgYnVmLndyaXRlKCJcdTAwZmFcMlwyXHUwYWIyXHUwYWJjXDdcMzNcMlwyXHUwYWIz XHUwYWI4XDdcdTAwZmJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcdTBhYjRcdTBhYjVc N1wzNFwyXDJcdTBhYjVcdTBhYjdcNVx1MDE1ZVx1MDBiMFwyXHUwYWI2Ig0KPiApDQo+IA0KPiAr DQo+IGJ1Zi53cml0ZSgiXHUwYWI0XDNcMlwyXDJcdTBhYjdcdTBhYmFcM1wyXDJcMlx1MGFiOFx1 MGFiNlwzXDJcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTBhYjhcdTBhYjlcM1wyXDJc Mlx1MGFiOVx1MGFiY1wzXDJcMlwyXHUwYWJhXHUwYWI4XDMiKQ0KPiANCj4gKw0KPiBidWYud3Jp dGUoIlwyXDJcMlx1MGFiYlx1MGFhZlwzXDJcMlwyXHUwYWJiXHUwYWIzXDNcMlwyXDJcdTBhYmNc dTAxNWQiDQo+ICkNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTBhYmRcdTBh YzFcN1x1MDBmYlwyXDJcdTBhYmVcdTBhYmZcN1wzMlwyXDIiKQ0KPiANCj4gKw0KPiBidWYud3Jp dGUoIlx1MGFiZlx1MGFjMFw3XHUwMGZhXDJcMlx1MGFjMFx1MGFjMlw3XDMzXDJcMlx1MGFjMVx1 MGFiZSIpDQo+IA0KPiArICAgICAgICBidWYud3JpdGUoIlwzXDJcMlwyXHUwYWMxXHUwYWMyXDNc MlwyXDJcdTBhYzJcdTAxNWZcM1wyXDJcMlx1MGFjMyIpDQo+IA0KPiArICAgICAgICBidWYud3Jp dGUoIlx1MGFjNFw3XHUwMGNkXDJcMlx1MGFjNFx1MGFjNVw3XDMwXDJcMlx1MGFjNVx1MGFjNlx0 IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMTNcMlwyXHUwYWM2XHUwYWM3XDdcMzFcMlwyXHUw YWM3XHUwMTYxXDNcMlwyXDJcdTBhYzgiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTBh YzlcN1x1MDBjZVwyXDJcdTBhYzlcdTBhY2FcN1wzMFwyXDJcdTBhY2FcdTBhY2JcNyIpDQo+IA0K PiArDQo+IGJ1Zi53cml0ZSgiXHUwMGZiXDJcMlx1MGFjYlx1MGFjY1w3XDMxXDJcMlx1MGFjY1x1 MDE2M1wzXDJcMlwyXHUwYWNkIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwYWNlXDdc dTAwY2ZcMlwyXHUwYWNlXHUwYWQ0XDdcMzBcMlwyXHUwYWNmXHUwYWQwXDciKQ0KPiANCj4gKw0K PiBidWYud3JpdGUoIlx1MDBlY1wyXDJcdTBhZDBcdTBhZDFcN1wzMFwyXDJcdTBhZDFcdTBhZDJc N1x1MDBmYVwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlx1MGFkMlx1MGFkNVw3XDMxXDJc Mlx1MGFkM1x1MGFkNVw3XHUwMGZhXDJcMlx1MGFkNCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgi XHUwYWNmXDNcMlwyXDJcdTBhZDRcdTBhZDNcM1wyXDJcMlx1MGFkNVx1MGFkNlwzXDJcMlwyIikN Cj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTBhZDZcdTBhZDdcN1wzMVwyXDJcdTBhZDdcdTAxNjVc M1wyXDJcMlx1MGFkOFx1MGFkOSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDdcdTAwZDBcMlwy XHUwYWQ5XHUwMTY3XDNcMlwyXDJcdTBhZGFcdTBhZGJcN1x1MDBkMVwyIikNCj4gDQo+ICsNCj4g YnVmLndyaXRlKCJcMlx1MGFkYlx1MGFkY1w3XDMwXDJcMlx1MGFkY1x1MGFkZFw1TFwnXDJcdTBh ZGRcdTBhZGUiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3XDMxXDJcMlx1MGFkZVx1MDE2OVwz XDJcMlwyXHUwYWRmXHUwYWUwXHRcZlwyXDJcdTBhZTAiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUo Ilx1MDE2YlwzXDJcMlwyXHUwYWUxXHUwYWUyXDdcdTAwZDJcMlwyXHUwYWUyXHUwYWUzXDdcMzAi KQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcMlwyXHUwYWUzXHUwYWU4XDVYLQ0KPiBcMlx1 MGFlNFx1MGFlNVw3KFwyXDJcdTBhZTVcdTBhZTYiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3 QFwyXDJcdTBhZTZcdTBhZTdcN1xiXDJcMlx1MGFlN1x1MGFlOVw1XHUwMTZhXHUwMGI2IikNCj4g DQo+ICsNCj4gYnVmLndyaXRlKCJcMlx1MGFlOFx1MGFlNFwzXDJcMlwyXHUwYWU4XHUwYWU5XDNc MlwyXDJcdTBhZTlcdTBhZWEiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwYWVh XHUwYWViXDdcMzFcMlwyXHUwYWViXHUwMTZkXDNcMlwyXDJcdTBhZWMiKQ0KPiANCj4gKyAgICAg ICAgYnVmLndyaXRlKCJcdTBhZWRcdFxyXDJcMlx1MGFlZFx1MDE2ZlwzXDJcMlwyXHUwYWVlXHUw YWY5XDVcdTAxNzIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDBiYVwyXHUwYWVmXHUwYWY5 XDVcdTAxNzRcdTAwYmJcMlx1MGFmMFx1MGFmOVw1XHUwMTc2IikNCj4gDQo+ICsNCj4gYnVmLndy aXRlKCJcdTAwYmNcMlx1MGFmMVx1MGFmOVw1XHUwMTc4XHUwMGJkXDJcdTBhZjJcdTBhZjlcNVx1 MDE3YSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMGJlXDJcdTBhZjNcdTBhZjlcNVx1MDE3 Y1x1MDBiZlwyXHUwYWY0XHUwYWY5XDVcdTAxN2UiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1 MDBjMFwyXHUwYWY1XHUwYWY5XDVcdTAxODBcdTAwYzFcMlx1MGFmNlx1MGFmOVw1XHUwMTgyIikN Cj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAwYzJcMlx1MGFmN1x1MGFmOVw1XHUwMTg0XHUwMGMz XDJcdTBhZjhcdTBhZWVcM1wyXDIiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcMlx1MGFm OFx1MGFlZlwzXDJcMlwyXHUwYWY4XHUwYWYwXDNcMlwyXDJcdTBhZjhcdTBhZjEiKQ0KPiANCj4g KyAgICAgICAgYnVmLndyaXRlKCJcM1wyXDJcMlx1MGFmOFx1MGFmMlwzXDJcMlwyXHUwYWY4XHUw YWYzXDNcMlwyXDJcdTBhZjgiKQ0KPiANCj4gKyAgICAgICAgYnVmLndyaXRlKCJcdTBhZjRcM1wy XDJcMlx1MGFmOFx1MGFmNVwzXDJcMlwyXHUwYWY4XHUwYWY2XDNcMlwyXDIiKQ0KPiANCj4gKyAg ICAgICAgYnVmLndyaXRlKCJcdTBhZjhcdTBhZjdcM1wyXDJcMlx1MGFmOVx1MDE3MVwzXDJcMlwy XHUwYWZhXHUwYWZiXDciKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDBkYVwyXDJcdTBhZmJc dTBhZmNcN1wzMFwyXDJcdTBhZmNcdTBhZmRcNVx1MDEyNlx1MDA5NCIpDQo+IA0KPiArICAgICAg ICBidWYud3JpdGUoIlwyXHUwYWZkXHUwYWZlXDdcMzFcMlwyXHUwYWZlXHUwMTczXDNcMlwyXDJc dTBhZmZcdTBiMDAiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3XHUwMGRmXDJcMlx1MGIwMFx1 MGIwMVw3XDMwXDJcMlx1MGIwMVx1MGIwMlw1XHUwMTI2IikNCj4gDQo+ICsNCj4gYnVmLndyaXRl KCJcdTAwOTRcMlx1MGIwMlx1MGIwM1w3XDMxXDJcMlx1MGIwM1x1MDE3NVwzXDJcMlwyXHUwYjA0 IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTBiMDVcN1x1MDBlOFwyXDJcdTBiMDVcdTBiMGRc N1wzMFwyXDJcdTBiMDZcdTBiMDdcNyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiKlwyXDJcdTBi MDdcdTBiMDhcN1xiXDJcMlx1MGIwOFx1MGIwOVw3XHUwMGVjXDJcMlx1MGIwOSIpDQo+IA0KPiAr DQo+IGJ1Zi53cml0ZSgiXHUwYjBhXDdcMzBcMlwyXHUwYjBhXHUwYjBiXDdcdTAwZmFcMlwyXHUw YjBiXHUwYjBjXDciKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzMVwyXDJcdTBiMGNcdTBiMGVc NyFcMlwyXHUwYjBkXHUwYjA2XDNcMlwyXDJcdTBiMGRcdTBiMGUiDQo+ICkNCj4gDQo+ICsgICAg ICAgIGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTBiMGVcdTBiMTRcM1wyXDJcMlx1MGIwZlx1MGIxMFw3 W1wyXDJcdTBiMTAiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MGIxMVw3XGJcMlwyXHUwYjEx XHUwYjEyXDVMXCdcMlx1MGIxMlx1MGIxM1w3IVwyXDJcdTBiMTMiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlx1MGIxNVwzXDJcMlwyXHUwYjE0XHUwYjBmXDNcMlwyXDJcdTBiMTRcdTBiMTVcM1wy XDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwYjE1XHUwYjE2XDNcMlwyXDJcdTBiMTZc dTBiMTdcNVx1MDEyNlx1MDA5NFwyXHUwYjE3IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTBi MThcN1wzMVwyXDJcdTBiMThcdTAxNzdcM1wyXDJcMlx1MGIxOVx1MGIxYVw3XHUwMGU5IikNCj4g DQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXHUwYjFhXHUwYjFiXDdcMzBcMlwyXHUwYjFiXHUwYjFj XDVcdTAxMjZcdTAwOTRcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwYjFjXHUwYjFkXDdc MzFcMlwyXHUwYjFkXHUwMTc5XDNcMlwyXDJcdTBiMWVcdTBiMWYiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlw3XHUwMGUwXDJcMlx1MGIxZlx1MGIyMFw3XDMwXDJcMlx1MGIyMFx1MGIyMVw1XHUw MTI2IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAwOTRcMlx1MGIyMVx1MGIyMlw3XDMxXDJc Mlx1MGIyMlx1MDE3YlwzXDJcMlwyXHUwYjIzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTBi MjhcN1x1MDBlMVwyXDJcdTBiMjRcdTBiMjVcN1wyMVwyXDJcdTBiMjVcdTBiMjZcNyIpDQo+IA0K PiArDQo+IGJ1Zi53cml0ZSgiXGJcMlwyXHUwYjI2XHUwYjI3XDdcdTAwZmFcMlwyXHUwYjI3XHUw YjI5XDchXDJcMlx1MGIyOCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwYjI0XDNcMlwyXDJc dTBiMjhcdTBiMjlcM1wyXDJcMlx1MGIyOVx1MGIyYVwzXDJcMlwyIikNCj4gDQo+ICsNCj4gYnVm LndyaXRlKCJcdTBiMmFcdTBiMmJcN1wzMFwyXDJcdTBiMmJcdTBiMmNcNVx1MDEyNlx1MDA5NFwy XHUwYjJjIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTBiMmRcN1wzMVwyXDJcdTBiMmRcdTAx N2RcM1wyXDJcMlx1MGIyZVx1MGIyZlw3XHUwMGUyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJc MlwyXHUwYjJmXHUwYjMwXDdcMzBcMlwyXHUwYjMwXHUwYjMxXDVcdTAxMjZcdTAwOTRcMiIpDQo+ IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwYjMxXHUwYjMyXDdcMzFcMlwyXHUwYjMyXHUwMTdmXDNc MlwyXDJcdTBiMzNcdTBiMzQiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3XHUwMGUzXDJcMlx1 MGIzNFx1MGIzNVw3XDMwXDJcMlx1MGIzNVx1MGIzNlw1XHUwMTI2IikNCj4gDQo+ICsNCj4gYnVm LndyaXRlKCJcdTAwOTRcMlx1MGIzNlx1MGIzN1w3XDMxXDJcMlx1MGIzN1x1MDE4MVwzXDJcMlwy XHUwYjM4IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTBiMzlcN1x1MDBlNFwyXDJcdTBiMzlc dTBiM2FcN1wzMFwyXDJcdTBiM2FcdTBiM2JcNSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUw MTI2XHUwMDk0XDJcdTBiM2JcdTBiM2NcN1wzMVwyXDJcdTBiM2NcdTAxODNcM1wyXDIiKQ0KPiAN Cj4gKw0KPiBidWYud3JpdGUoIlwyXHUwYjNkXHUwYjNlXDdcdTAwZGVcMlwyXHUwYjNlXHUwYjNm XDdcMzBcMlwyXHUwYjNmIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwYjQ0XDVYLQ0K PiBcMlx1MGI0MFx1MGI0MVw3KFwyXDJcdTBiNDFcdTBiNDJcN0BcMlwyXHUwYjQyIikNCj4gDQo+ ICsNCj4gYnVmLndyaXRlKCJcdTBiNDNcN1xiXDJcMlx1MGI0M1x1MGI0NVw1XHUwMTZhXHUwMGI2 XDJcdTBiNDRcdTBiNDAiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwzXDJcMlwyXHUwYjQ0XHUw YjQ1XDNcMlwyXDJcdTBiNDVcdTBiNDZcM1wyXDJcMlx1MGI0NiIpDQo+IA0KPiArDQo+IGJ1Zi53 cml0ZSgiXHUwYjQ3XDchXDJcMlx1MGI0N1x1MGI0OFw1XHUwMTI2XHUwMDk0XDJcdTBiNDhcdTBi NDkiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlw3XDMxXDJcMlx1MGI0OVx1MDE4NVwzXDJcMlwy XHUwYjRhXHUwYjUwXDVcdTAxODhcdTAwYzUiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXHUw YjRiXHUwYjUwXDVcdTAxOGFcdTAwYzZcMlx1MGI0Y1x1MGI1MFw1XHUwMThlXHUwMGM4IikNCj4g DQo+ICsNCj4gYnVmLndyaXRlKCJcMlx1MGI0ZFx1MGI1MFw1XHUwMTkwXHUwMGM5XDJcdTBiNGVc dTBiNTBcNVx1MDE5Mlx1MDBjYSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDJcdTBiNGZcdTBi NGFcM1wyXDJcMlx1MGI0Zlx1MGI0YlwzXDJcMlwyXHUwYjRmXHUwYjRjIikNCj4gDQo+ICsNCj4g YnVmLndyaXRlKCJcM1wyXDJcMlx1MGI0Zlx1MGI0ZFwzXDJcMlwyXHUwYjRmXHUwYjRlXDNcMlwy XDJcdTBiNTAiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDE4N1wzXDJcMlwyXHUwYjUxXHUw YjUyXDdcdTAwYzJcMlwyXHUwYjUyXHUwYjUzXDdcMzAiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUo IlwyXDJcdTBiNTNcdTBiNTRcNVx1MDEyNlx1MDA5NFwyXHUwYjU0XHUwYjU1XDdcMjJcMlwyIikN Cj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTBiNTVcdTBiNTZcNVx1MDEyNlx1MDA5NFwyXHUwYjU2 XHUwYjU3XDdcMzZcMlwyXHUwYjU3IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTBiNThcNVx1 MDEyNlx1MDA5NFwyXHUwYjU4XHUwYjU5XDdcMzFcMlwyXHUwYjU5XHUwMTg5IikNCj4gDQo+ICsN Cj4gYnVmLndyaXRlKCJcM1wyXDJcMlx1MGI1YVx1MGI1Ylw3XHUwMGMzXDJcMlx1MGI1Ylx1MGI1 Y1w3XDMwXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwYjVjXHUwYjYxXDVcdTAxOGNc dTAwYzdcMlx1MGI1ZFx1MGI1ZVw3KFwyXDJcdTBiNWUiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUo Ilx1MGI2MFw1XHUwMThjXHUwMGM3XDJcdTBiNWZcdTBiNWRcM1wyXDJcMlx1MGI2MFx1MGI2MyIp DQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDNcMlwyXDJcdTBiNjFcdTBiNWZcM1wyXDJcMlx1MGI2 MVx1MGI2MlwzXDJcMlwyXHUwYjYyIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwYjY0 XDNcMlwyXDJcdTBiNjNcdTBiNjFcM1wyXDJcMlx1MGI2NFx1MGI2NVw3IVwyXDIiKQ0KPiANCj4g Kw0KPiBidWYud3JpdGUoIlx1MGI2NVx1MGI2Nlw1XHUwMTI2XHUwMDk0XDJcdTBiNjZcdTBiNjdc NyFcMlwyXHUwYjY3IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTBiNjhcNVx1MDEyNlx1MDA5 NFwyXHUwYjY4XHUwYjY5XDchXDJcMlx1MGI2OVx1MGI2YSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXDVcdTAxMjZcdTAwOTRcMlx1MGI2YVx1MGI2Ylw3XDMxXDJcMlx1MGI2Ylx1MDE4YlwzXDIi KQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcdTBiNmNcdTBiNmRcdFwxNlwyXDJcdTBiNmRc dTAxOGRcM1wyXDJcMlx1MGI2ZVx1MGI2ZiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDdcdTAw YzRcMlwyXHUwYjZmXHUwYjcwXDdcMzBcMlwyXHUwYjcwXHUwYjcxXDVcdTAxMjYiKQ0KPiANCj4g Kw0KPiBidWYud3JpdGUoIlx1MDA5NFwyXHUwYjcxXHUwYjcyXDchXDJcMlx1MGI3Mlx1MGI3M1w1 XHUwMTI2XHUwMDk0IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlx1MGI3M1x1MGI3NFw3IVwy XDJcdTBiNzRcdTBiNzVcNVx1MDEyNlx1MDA5NFwyXHUwYjc1IikNCj4gDQo+ICsNCj4gYnVmLndy aXRlKCJcdTBiNzZcN1wzMVwyXDJcdTBiNzZcdTAxOGZcM1wyXDJcMlx1MGI3N1x1MGI3OFw3XHUw MGM1IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcMlwyXHUwYjc4XHUwYjc5XDdcMzBcMlwyXHUw Yjc5XHUwYjdhXDVcdTAxMjZcdTAwOTRcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwYjdh XHUwYjdiXDchXDJcMlx1MGI3Ylx1MGI3Y1w1XHUwMTI2XHUwMDk0XDJcdTBiN2MiKQ0KPiANCj4g Kw0KPiBidWYud3JpdGUoIlx1MGI3ZFw3IVwyXDJcdTBiN2RcdTBiN2VcNVx1MDEyNlx1MDA5NFwy XHUwYjdlXHUwYjdmIikNCj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXDdcMzFcMlwyXHUwYjdm XHUwMTkxXDNcMlwyXDJcdTBiODBcdTBiODFcN1x1MDBjNlwyXDIiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlx1MGI4MVx1MGI4Mlw3XDMwXDJcMlx1MGI4Mlx1MGI4M1w3QFwyXDJcdTBiODNcdTBi ODRcNyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXGJcMlwyXHUwYjg0XHUwYjg5XDVcdTAxOTRc dTAwY2JcMlx1MGI4NVx1MGI4Nlw3KFwyXDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MGI4 Nlx1MGI4OFw1XHUwMTk0XHUwMGNiXDJcdTBiODdcdTBiODVcM1wyXDJcMlx1MGI4OCIpDQo+IA0K PiArDQo+IGJ1Zi53cml0ZSgiXHUwYjhiXDNcMlwyXDJcdTBiODlcdTBiODdcM1wyXDJcMlx1MGI4 OVx1MGI4YVwzXDJcMlwyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTBiOGFcdTBiOGNcM1wy XDJcMlx1MGI4Ylx1MGI4OVwzXDJcMlwyXHUwYjhjXHUwYjhkXDciKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIiFcMlwyXHUwYjhkXHUwYjhlXDVcdTAxMjZcdTAwOTRcMlx1MGI4ZVx1MGI4Zlw3IVwy XDJcdTBiOGYiDQo+ICkNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTBiOTBcNVx1MDEyNlx1MDA5 NFwyXHUwYjkwXHUwYjkxXDchXDJcMlx1MGI5MVx1MGI5MiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0 ZSgiXDVcdTAxMjZcdTAwOTRcMlx1MGI5Mlx1MGI5M1w3XDMxXDJcMlx1MGI5M1x1MDE5M1wzXDIi KQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXDJcdTBiOTRcdTBiOTVcdFwxN1wyXDJcdTBiOTVc dTAxOTVcM1wyXDJcMlx1MGI5Nlx1MGI5NyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDdcdTAw ZWFcMlwyXHUwYjk3XHUwYjk4XDdcMzBcMlwyXHUwYjk4XHUwYjk5XDVcdTAxMjYiKQ0KPiANCj4g Kw0KPiBidWYud3JpdGUoIlx1MDA5NFwyXHUwYjk5XHUwYmExXDdcMzZcMlwyXHUwYjlhXHUwYjli XDVcdTAxMjRcdTAwOTMiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlwyXHUwYjliXHUwYjljXDch XDJcMlx1MGI5Y1x1MGI5ZFw1XHUwMTI0XHUwMDkzXDJcdTBiOWQiKQ0KPiANCj4gKyAgICAgICAg YnVmLndyaXRlKCJcdTBiOWVcNyBcMlwyXHUwYjllXHUwYmEwXDNcMlwyXDJcdTBiOWZcdTBiOWFc M1wyXDJcMiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwYmEwXHUwYmEzXDNcMlwyXDJcdTBi YTFcdTBiOWZcM1wyXDJcMlx1MGJhMVx1MGJhMlwzIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJc MlwyXDJcdTBiYTJcdTBiYTRcM1wyXDJcMlx1MGJhM1x1MGJhMVwzXDJcMlwyXHUwYmE0XHUwYmE1 Ig0KPiApDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXDdcMzFcMlwyXHUwYmE1XHUwMTk3XDNcMlwy XDJcdTAwZjFcdTAxOWJcdTAxOWRcdTAxYTEiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDFh OFx1MDFhY1x1MDFhZlx1MDFiN1x1MDFiY1x1MDFjMFx1MDFjM1x1MDFjOVx1MDFjZSIpDQo+IA0K PiArDQo+IGJ1Zi53cml0ZSgiXHUwMWQyXHUwMWQ1XHUwMWRiXHUwMWVkXHUwMWVmXHUwMWY3XHUw MjAwXHUwMjA5XHUwMjEyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAyMWJcdTAyMjRcdTAy MmRcdTAyMzZcdTAyM2ZcdTAyNDhcdTAyNGVcdTAyNTZcdTAyNWUiKQ0KPiANCj4gKw0KPiBidWYu d3JpdGUoIlx1MDI2Nlx1MDI4NFx1MDI4Ylx1MDI5Mlx1MDI5Ylx1MDI5Zlx1MDJhM1x1MDJhYVx1 MDJiNCIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwMmMxXHUwMmQwXHUwMmU1XHUwMmViXHUw MzA3XHUwMzBkXHUwMzE2XHUwMzI5XHUwMzM5IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTAz NDRcdTAzNzVcdTAzODVcdTAzOGNcdTAzOTJcdTAzYWFcdTAzYjVcdTAzYjhcdTAzYmIiKQ0KPiAN Cj4gKw0KPiBidWYud3JpdGUoIlx1MDNlMlx1MDNlNlx1MDNmM1x1MDNmYVx1MDQwY1x1MDQyMVx1 MDQzNlx1MDQzY1x1MDQ1MiIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNDVmXHUwNDYzXHUw NDY4XHUwNDZlXHUwNDcxXHUwNDc1XHUwNDc5XHUwNDgwXHUwNDlhIikNCj4gDQo+ICsNCj4gYnVm LndyaXRlKCJcdTA0YTRcdTA0YWNcdTA0YjBcdTA0YjZcdTA0YmFcdTA0ZThcdTA0ZWNcdTA0ZjNc dTA0ZjkiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDRmZFx1MDUwNlx1MDUwYlx1MDUxN1x1 MDUyMlx1MDUyZlx1MDU0MFx1MDU0NVx1MDU0YSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUw NTViXHUwNTYwXHUwNTY1XHUwNTZkXHUwNThkXHUwNTkyXHUwNTk3XHUwNWExXHUwNWFiIikNCj4g DQo+ICsNCj4gYnVmLndyaXRlKCJcdTA1YjdcdTA1YmNcdTA1YzFcdTA1Y2RcdTA1ZDJcdTA1ZDdc dTA1ZTFcdTA1ZTdcdTA2MDIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDYwOFx1MDYxMlx1 MDYyMFx1MDYyZFx1MDYzMlx1MDYzNlx1MDY0MVx1MDY0N1x1MDY1MiIpDQo+IA0KPiArDQo+IGJ1 Zi53cml0ZSgiXHUwNjViXHUwNjY1XHUwNjc3XHUwNjdjXHUwNjgwXHUwNjhiXHUwNjkxXHUwNjli XHUwNmEyIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA2YWFcdTA2YjFcdTA2YmRcdTA2Yzhc dTA2Y2JcdTA2ZDZcdTA2ZGJcdTA2ZTVcdTA2ZWIiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1 MDZmZVx1MDcwNFx1MDcwZVx1MDcxNFx1MDcyMlx1MDcyZFx1MDczMlx1MDczYlx1MDc0MiIpDQo+ IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwNzRkXHUwNzU0XHUwNzVlXHUwN2E5XHUwN2FlXHUwN2Ix XHUwN2MyXHUwN2M4XHUwN2NmIikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJcdTA3ZGNcdTA4Mjdc dTA4MmNcdTA4MmZcdTA4NDBcdTA4NDZcdTA4NGRcdTA4NTZcdTA4NjciKQ0KPiANCj4gKw0KPiBi dWYud3JpdGUoIlx1MDg2ZFx1MDg3NVx1MDg4M1x1MDg4OFx1MDg5NVx1MDg5YVx1MDhhN1x1MDhh Y1x1MDhiMyIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwOGMxXHUwOGM2XHUwOGNkXHUwOGUy XHUwOGU3XHUwOGYwXHUwOTExXHUwOTMxXHUwOTM0IikNCj4gDQo+ICsNCj4gYnVmLndyaXRlKCJc dTA5M2FcdTA5NDRcdTA5NTdcdTA5NjRcdTA5NmFcdTA5NzBcdTA5NzZcdTA5N2NcdTA5ODIiKQ0K PiANCj4gKw0KPiBidWYud3JpdGUoIlx1MDk4OFx1MDk4ZVx1MDk5NFx1MDk5YVx1MDk5Y1x1MDlh MVx1MDlhNFx1MDlhYVx1MDlhZSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgiXHUwOWI3XHUwOWJk XHUwOWNkXHUwOWQ1XHUwOWRkXHUwOWU1XHUwOWVkXHUwOWY0XHUwOWZiIikNCj4gDQo+ICsNCj4g YnVmLndyaXRlKCJcdTBhMDFcdTBhMGNcdTBhMTJcdTBhMTlcdTBhMWZcdTBhMjZcdTBhMmNcdTBh MzVcdTBhM2EiKQ0KPiANCj4gKw0KPiBidWYud3JpdGUoIlx1MGE0ZVx1MGE3Nlx1MGE4OVx1MGE5 N1x1MGFhNVx1MGFhZFx1MGFiOFx1MGFiYlx1MGFjMSIpDQo+IA0KPiArDQo+IGJ1Zi53cml0ZSgi XHUwYWQ0XHUwYWU4XHUwYWY4XHUwYjBkXHUwYjE0XHUwYjI4XHUwYjQ0XHUwYjRmXHUwYjYxIikN Cj4gDQo+ICsgICAgICAgIGJ1Zi53cml0ZSgiXHUwYjg5XHUwYmExIikNCj4gDQo+ICAgICAgICAg IHJldHVybiBidWYuZ2V0dmFsdWUoKQ0KPiANCj4gDQo+IA0KPiANCj4gDQo+IEBAIC0xODcxLDQ3 ICsxODc0LDQ4IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgIFJV TEVfbXVsdGRpdm1vZFRlcm0gPSAxNTgNCj4gDQo+ICAgICAgUlVMRV9tdWx0ZGl2bW9kVGVybVN1 cHBsZW1lbnRhcnkgPSAxNTkNCj4gDQo+ICAgICAgUlVMRV9jYXN0VGVybSA9IDE2MA0KPiANCj4g LSAgICBSVUxFX2F0b21UZXJtID0gMTYxDQo+IA0KPiAtICAgIFJVTEVfdmZyRXhwcmVzc2lvbkNh dGVuYXRlID0gMTYyDQo+IA0KPiAtICAgIFJVTEVfdmZyRXhwcmVzc2lvbk1hdGNoID0gMTYzDQo+ IA0KPiAtICAgIFJVTEVfdmZyRXhwcmVzc2lvbk1hdGNoMiA9IDE2NA0KPiANCj4gLSAgICBSVUxF X3ZmckV4cHJlc3Npb25QYXJlbiA9IDE2NQ0KPiANCj4gLSAgICBSVUxFX3ZmckV4cHJlc3Npb25C dWlsZEluRnVuY3Rpb24gPSAxNjYNCj4gDQo+IC0gICAgUlVMRV9kdXBFeHAgPSAxNjcNCj4gDQo+ IC0gICAgUlVMRV92YXJlcXZhbEV4cCA9IDE2OA0KPiANCj4gLSAgICBSVUxFX2lkZXF2YWxFeHAg PSAxNjkNCj4gDQo+IC0gICAgUlVMRV9pZGVxaWRFeHAgPSAxNzANCj4gDQo+IC0gICAgUlVMRV9p ZGVxdmFsbGlzdEV4cCA9IDE3MQ0KPiANCj4gLSAgICBSVUxFX3ZmclF1ZXN0aW9uRGF0YUZpZWxk TmFtZSA9IDE3Mg0KPiANCj4gLSAgICBSVUxFX2FycmF5TmFtZSA9IDE3Mw0KPiANCj4gLSAgICBS VUxFX3F1ZXN0aW9ucmVmMUV4cCA9IDE3NA0KPiANCj4gLSAgICBSVUxFX3J1bGVyZWZFeHAgPSAx NzUNCj4gDQo+IC0gICAgUlVMRV9zdHJpbmdyZWYxRXhwID0gMTc2DQo+IA0KPiAtICAgIFJVTEVf cHVzaHRoaXNFeHAgPSAxNzcNCj4gDQo+IC0gICAgUlVMRV9zZWN1cml0eUV4cCA9IDE3OA0KPiAN Cj4gLSAgICBSVUxFX251bWVyaWNWYXJTdG9yZVR5cGUgPSAxNzkNCj4gDQo+IC0gICAgUlVMRV9n ZXRFeHAgPSAxODANCj4gDQo+IC0gICAgUlVMRV92ZnJFeHByZXNzaW9uQ29uc3RhbnQgPSAxODEN Cj4gDQo+IC0gICAgUlVMRV92ZnJFeHByZXNzaW9uVW5hcnlPcCA9IDE4Mg0KPiANCj4gLSAgICBS VUxFX2xlbmd0aEV4cCA9IDE4Mw0KPiANCj4gLSAgICBSVUxFX2JpdHdpc2Vub3RFeHAgPSAxODQN Cj4gDQo+IC0gICAgUlVMRV9xdWVzdGlvbjIzcmVmRXhwID0gMTg1DQo+IA0KPiAtICAgIFJVTEVf c3RyaW5ncmVmMkV4cCA9IDE4Ng0KPiANCj4gLSAgICBSVUxFX3RvYm9vbEV4cCA9IDE4Nw0KPiAN Cj4gLSAgICBSVUxFX3Rvc3RyaW5nRXhwID0gMTg4DQo+IA0KPiAtICAgIFJVTEVfdW5pbnRFeHAg PSAxODkNCj4gDQo+IC0gICAgUlVMRV90b3VwcGVyRXhwID0gMTkwDQo+IA0KPiAtICAgIFJVTEVf dG9sd2VyRXhwID0gMTkxDQo+IA0KPiAtICAgIFJVTEVfc2V0RXhwID0gMTkyDQo+IA0KPiAtICAg IFJVTEVfdmZyRXhwcmVzc2lvblRlcm5hcnlPcCA9IDE5Mw0KPiANCj4gLSAgICBSVUxFX2NvbmRp dGlvbmFsRXhwID0gMTk0DQo+IA0KPiAtICAgIFJVTEVfZmluZEV4cCA9IDE5NQ0KPiANCj4gLSAg ICBSVUxFX2ZpbmRGb3JtYXQgPSAxOTYNCj4gDQo+IC0gICAgUlVMRV9taWRFeHAgPSAxOTcNCj4g DQo+IC0gICAgUlVMRV90b2tlbkV4cCA9IDE5OA0KPiANCj4gLSAgICBSVUxFX3NwYW5FeHAgPSAx OTkNCj4gDQo+IC0gICAgUlVMRV9zcGFuRmxhZ3MgPSAyMDANCj4gDQo+IC0gICAgUlVMRV92ZnJF eHByZXNzaW9uTWFwID0gMjAxDQo+IA0KPiArICAgIFJVTEVfY2FzdFRlcm1TdWIgPSAxNjENCj4g DQo+ICsgICAgUlVMRV9hdG9tVGVybSA9IDE2Mg0KPiANCj4gKyAgICBSVUxFX3ZmckV4cHJlc3Np b25DYXRlbmF0ZSA9IDE2Mw0KPiANCj4gKyAgICBSVUxFX3ZmckV4cHJlc3Npb25NYXRjaCA9IDE2 NA0KPiANCj4gKyAgICBSVUxFX3ZmckV4cHJlc3Npb25NYXRjaDIgPSAxNjUNCj4gDQo+ICsgICAg UlVMRV92ZnJFeHByZXNzaW9uUGFyZW4gPSAxNjYNCj4gDQo+ICsgICAgUlVMRV92ZnJFeHByZXNz aW9uQnVpbGRJbkZ1bmN0aW9uID0gMTY3DQo+IA0KPiArICAgIFJVTEVfZHVwRXhwID0gMTY4DQo+ IA0KPiArICAgIFJVTEVfdmFyZXF2YWxFeHAgPSAxNjkNCj4gDQo+ICsgICAgUlVMRV9pZGVxdmFs RXhwID0gMTcwDQo+IA0KPiArICAgIFJVTEVfaWRlcWlkRXhwID0gMTcxDQo+IA0KPiArICAgIFJV TEVfaWRlcXZhbGxpc3RFeHAgPSAxNzINCj4gDQo+ICsgICAgUlVMRV92ZnJRdWVzdGlvbkRhdGFG aWVsZE5hbWUgPSAxNzMNCj4gDQo+ICsgICAgUlVMRV9hcnJheU5hbWUgPSAxNzQNCj4gDQo+ICsg ICAgUlVMRV9xdWVzdGlvbnJlZjFFeHAgPSAxNzUNCj4gDQo+ICsgICAgUlVMRV9ydWxlcmVmRXhw ID0gMTc2DQo+IA0KPiArICAgIFJVTEVfc3RyaW5ncmVmMUV4cCA9IDE3Nw0KPiANCj4gKyAgICBS VUxFX3B1c2h0aGlzRXhwID0gMTc4DQo+IA0KPiArICAgIFJVTEVfc2VjdXJpdHlFeHAgPSAxNzkN Cj4gDQo+ICsgICAgUlVMRV9udW1lcmljVmFyU3RvcmVUeXBlID0gMTgwDQo+IA0KPiArICAgIFJV TEVfZ2V0RXhwID0gMTgxDQo+IA0KPiArICAgIFJVTEVfdmZyRXhwcmVzc2lvbkNvbnN0YW50ID0g MTgyDQo+IA0KPiArICAgIFJVTEVfdmZyRXhwcmVzc2lvblVuYXJ5T3AgPSAxODMNCj4gDQo+ICsg ICAgUlVMRV9sZW5ndGhFeHAgPSAxODQNCj4gDQo+ICsgICAgUlVMRV9iaXR3aXNlbm90RXhwID0g MTg1DQo+IA0KPiArICAgIFJVTEVfcXVlc3Rpb24yM3JlZkV4cCA9IDE4Ng0KPiANCj4gKyAgICBS VUxFX3N0cmluZ3JlZjJFeHAgPSAxODcNCj4gDQo+ICsgICAgUlVMRV90b2Jvb2xFeHAgPSAxODgN Cj4gDQo+ICsgICAgUlVMRV90b3N0cmluZ0V4cCA9IDE4OQ0KPiANCj4gKyAgICBSVUxFX3VuaW50 RXhwID0gMTkwDQo+IA0KPiArICAgIFJVTEVfdG91cHBlckV4cCA9IDE5MQ0KPiANCj4gKyAgICBS VUxFX3RvbHdlckV4cCA9IDE5Mg0KPiANCj4gKyAgICBSVUxFX3NldEV4cCA9IDE5Mw0KPiANCj4g KyAgICBSVUxFX3ZmckV4cHJlc3Npb25UZXJuYXJ5T3AgPSAxOTQNCj4gDQo+ICsgICAgUlVMRV9j b25kaXRpb25hbEV4cCA9IDE5NQ0KPiANCj4gKyAgICBSVUxFX2ZpbmRFeHAgPSAxOTYNCj4gDQo+ ICsgICAgUlVMRV9maW5kRm9ybWF0ID0gMTk3DQo+IA0KPiArICAgIFJVTEVfbWlkRXhwID0gMTk4 DQo+IA0KPiArICAgIFJVTEVfdG9rZW5FeHAgPSAxOTkNCj4gDQo+ICsgICAgUlVMRV9zcGFuRXhw ID0gMjAwDQo+IA0KPiArICAgIFJVTEVfc3BhbkZsYWdzID0gMjAxDQo+IA0KPiArICAgIFJVTEVf dmZyRXhwcmVzc2lvbk1hcCA9IDIwMg0KPiANCj4gDQo+IA0KPiAgICAgIHJ1bGVOYW1lcyA9ICBb ICJ2ZnJQcm9ncmFtIiwgInByYWdtYVBhY2tTaG93RGVmIiwNCj4gInByYWdtYVBhY2tTdGFja0Rl ZiIsDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICJwcmFnbWFQYWNrTnVtYmVyIiwgInZmclBy YWdtYVBhY2tEZWZpbml0aW9uIiwNCj4gInZmckRhdGFTdHJ1Y3REZWZpbml0aW9uIiwNCj4gDQo+ IEBAIC0xOTcyLDcgKzE5NzYsNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToN Cj4gICAgICAgICAgICAgICAgICAgICAiY29tcGFyZVRlcm0iLCAiY29tcGFyZVRlcm1TdXBwbGVt ZW50YXJ5IiwgInNoaWZ0VGVybSIsDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICJzaGlmdFRl cm1TdXBwbGVtZW50YXJ5IiwgImFkZE1pbnVzVGVybSIsDQo+ICJhZGRNaW51c1Rlcm1TdXBwbGVt ZW50YXJ5IiwNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIm11bHRkaXZtb2RUZXJtIiwgIm11 bHRkaXZtb2RUZXJtU3VwcGxlbWVudGFyeSIsDQo+ICJjYXN0VGVybSIsDQo+IA0KPiAtICAgICAg ICAgICAgICAgICAgICJhdG9tVGVybSIsICJ2ZnJFeHByZXNzaW9uQ2F0ZW5hdGUiLCAidmZyRXhw cmVzc2lvbk1hdGNoIiwNCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgImNhc3RUZXJtU3ViIiwg ImF0b21UZXJtIiwgInZmckV4cHJlc3Npb25DYXRlbmF0ZSIsDQo+ICJ2ZnJFeHByZXNzaW9uTWF0 Y2giLA0KPiANCj4gICAgICAgICAgICAgICAgICAgICAidmZyRXhwcmVzc2lvbk1hdGNoMiIsICJ2 ZnJFeHByZXNzaW9uUGFyZW4iLA0KPiAidmZyRXhwcmVzc2lvbkJ1aWxkSW5GdW5jdGlvbiIsDQo+ IA0KPiAgICAgICAgICAgICAgICAgICAgICJkdXBFeHAiLCAidmFyZXF2YWxFeHAiLCAiaWRlcXZh bEV4cCIsICJpZGVxaWRFeHAiLA0KPiAiaWRlcXZhbGxpc3RFeHAiLA0KPiANCj4gICAgICAgICAg ICAgICAgICAgICAidmZyUXVlc3Rpb25EYXRhRmllbGROYW1lIiwgImFycmF5TmFtZSIsICJxdWVz dGlvbnJlZjFFeHAiLA0KPiANCj4gQEAgLTIyNTcsMTAgKzIyNjEsNiBAQCBjbGFzcyBWZnJTeW50 YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFy ZW50LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFy c2VyDQo+IA0KPiANCj4gDQo+IC0gICAgICAgIGRlZiB2ZnJGb3JtU2V0RGVmaW5pdGlvbihzZWxm KToNCj4gDQo+IC0gICAgICAgICAgICByZXR1cm4NCj4gc2VsZi5nZXRUeXBlZFJ1bGVDb250ZXh0 KFZmclN5bnRheFBhcnNlci5WZnJGb3JtU2V0RGVmaW5pdGlvbkNvbnRleHQsMCkNCj4gDQo+IC0N Cj4gDQo+IC0NCj4gDQo+ICAgICAgICAgIGRlZiB2ZnJQcmFnbWFQYWNrRGVmaW5pdGlvbihzZWxm LCBpOmludD1Ob25lKToNCj4gDQo+ICAgICAgICAgICAgICBpZiBpIGlzIE5vbmU6DQo+IA0KPiAg ICAgICAgICAgICAgICAgIHJldHVybg0KPiBzZWxmLmdldFR5cGVkUnVsZUNvbnRleHRzKFZmclN5 bnRheFBhcnNlci5WZnJQcmFnbWFQYWNrRGVmaW5pdGlvbkNvbnRleHQpDQo+IA0KPiBAQCAtMjI4 Miw2ICsyMjgyLDEwIEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAg ICAgICAgICAgICAgIHJldHVybg0KPiBzZWxmLmdldFR5cGVkUnVsZUNvbnRleHQoVmZyU3ludGF4 UGFyc2VyLlZmckRhdGFVbmlvbkRlZmluaXRpb25Db250ZXh0LGkpDQo+IA0KPiANCj4gDQo+IA0K PiANCj4gKyAgICAgICAgZGVmIHZmckZvcm1TZXREZWZpbml0aW9uKHNlbGYpOg0KPiANCj4gKyAg ICAgICAgICAgIHJldHVybg0KPiBzZWxmLmdldFR5cGVkUnVsZUNvbnRleHQoVmZyU3ludGF4UGFy c2VyLlZmckZvcm1TZXREZWZpbml0aW9uQ29udGV4dCwwKQ0KPiANCj4gKw0KPiANCj4gKw0KPiAN Cj4gICAgICAgICAgZGVmIGdldFJ1bGVJbmRleChzZWxmKToNCj4gDQo+ICAgICAgICAgICAgICBy ZXR1cm4gVmZyU3ludGF4UGFyc2VyLlJVTEVfdmZyUHJvZ3JhbQ0KPiANCj4gDQo+IA0KPiBAQCAt MjMwMSwzNSArMjMwNSw0MSBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4g ICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4gdHlwZQ0KPiANCj4gICAgICAgICAgdHJ5Og0K PiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+ IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gNDA5DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDQxMQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxm KQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAg ICAgICAgICAgd2hpbGUgX2xhPT1WZnJTeW50YXhQYXJzZXIuVF9fMyBvciAoKCgoX2xhIC0gNzgp KSAmIH4weDNmKSA9PSAwIGFuZCAoKDENCj4gPDwgKF9sYSAtIDc4KSkgJiAoKDEgPDwgKFZmclN5 bnRheFBhcnNlci5TdHJ1Y3QgLSA3OCkpIHwgKDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5Vbmlv biAtIDc4KSkgfCAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLlR5cGVEZWYgLSA3OCkpKSkgIT0gMCk6 DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0MDcNCj4gDQo+ICsgICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDQwOQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLl9l cnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICAgICAgbGFfID0gc2VsZi5f aW50ZXJwLmFkYXB0aXZlUHJlZGljdChzZWxmLl9pbnB1dCwwLHNlbGYuX2N0eCkNCj4gDQo+ICAg ICAgICAgICAgICAgICAgaWYgbGFfID09IDE6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gNDA0DQo+IA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g NDA2DQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBzZWxmLnZmclByYWdtYVBhY2tEZWZpbml0 aW9uKCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+IA0KPiANCj4gICAg ICAgICAgICAgICAgICBlbGlmIGxhXyA9PSAyOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDQwNQ0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDQwNw0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgc2VsZi52ZnJEYXRhU3RydWN0RGVmaW5p dGlvbigpDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiANCj4gDQo+ICAg ICAgICAgICAgICAgICAgZWxpZiBsYV8gPT0gMzoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSA0MDYNCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSA0MDgNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIHNlbGYudmZyRGF0YVVuaW9uRGVmaW5p dGlvbigpDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiANCj4gDQo+IA0K PiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNDExDQo+IA0KPiArICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSA0MTMNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5fZXJy SGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lu cHV0LkxBKDEpDQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gNDEyDQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi52ZnJGb3JtU2V0RGVmaW5pdGlvbigpDQo+IA0KPiArICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDQxNQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuX2Vyckhh bmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gKyAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxB KDEpDQo+IA0KPiArICAgICAgICAgICAgaWYgX2xhPT1WZnJTeW50YXhQYXJzZXIuRm9ybVNldDoN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQxNA0KPiANCj4gKyAgICAgICAg ICAgICAgICBzZWxmLnZmckZvcm1TZXREZWZpbml0aW9uKCkNCj4gDQo+ICsNCj4gDQo+ICsNCj4g DQo+ICAgICAgICAgIGV4Y2VwdCBSZWNvZ25pdGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAg ICAgICAgICAgICBsb2NhbGN0eC5leGNlcHRpb24gPSByZQ0KPiANCj4gICAgICAgICAgICAgIHNl bGYuX2VyckhhbmRsZXIucmVwb3J0RXJyb3Ioc2VsZiwgcmUpDQo+IA0KPiBAQCAtMjM2NCw3ICsy Mzc0LDcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNl bGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAyLCBzZWxmLlJVTEVfcHJhZ21hUGFja1Nob3dEZWYpDQo+ IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0 KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0MTQNCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNDE3DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuVF9fMCkNCj4gDQo+ICAgICAgICAgIGV4Y2VwdCBSZWNvZ25p dGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5leGNlcHRp b24gPSByZQ0KPiANCj4gQEAgLTI0MTIsMzAgKzI0MjIsMzAgQEAgY2xhc3MgVmZyU3ludGF4UGFy c2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUNCj4g DQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQo bG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQxNg0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0MTkNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBz ZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIG5vdChfbGE9PVZmclN5bnRh eFBhcnNlci5UX18xIG9yIF9sYT09VmZyU3ludGF4UGFyc2VyLlRfXzIpOg0KPiANCj4gICAgICAg ICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnJlY292ZXJJbmxpbmUoc2VsZikNCj4gDQo+ICAg ICAgICAgICAgICBlbHNlOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVy LnJlcG9ydE1hdGNoKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuY29uc3VtZSgp DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQxOQ0KPiANCj4gKyAgICAgICAgICAg IHNlbGYuc3RhdGUgPSA0MjINCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5 bmMoc2VsZikNCj4gDQo+IC0gICAgICAgICAgICBsYV8gPSBzZWxmLl9pbnRlcnAuYWRhcHRpdmVQ cmVkaWN0KHNlbGYuX2lucHV0LDIsc2VsZi5fY3R4KQ0KPiANCj4gKyAgICAgICAgICAgIGxhXyA9 IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRpY3Qoc2VsZi5faW5wdXQsMyxzZWxmLl9jdHgpDQo+ IA0KPiAgICAgICAgICAgICAgaWYgbGFfID09IDE6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSA0MTcNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQyMA0K PiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkN Cj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQxOA0KPiANCj4gKyAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gNDIxDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLlN0cmluZ0lkZW50aWZpZXIpDQo+IA0KPiANCj4gDQo+IA0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0MjMNCj4gDQo+ICsgICAgICAgICAgICBzZWxm LnN0YXRlID0gNDI2DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNl bGYpDQo+IA0KPiAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAg ICAgICAgICAgICBpZiBfbGE9PVZmclN5bnRheFBhcnNlci5Db21tYToNCj4gDQo+IC0gICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDQyMQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gNDI0DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLkNvbW1hKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNDIyDQo+IA0K PiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0MjUNCj4gDQo+ICAgICAgICAgICAgICAg ICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gDQo+IA0KPiANCj4g DQo+IEBAIC0yNDc2LDExICsyNDg2LDExIEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNl ciApOg0KPiAgICAgICAgICBzZWxmLl9sYSA9IDAgIyBUb2tlbiB0eXBlDQo+IA0KPiAgICAgICAg ICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAx KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0MjYNCj4gDQo+ICsgICAgICAgICAg ICBzZWxmLnN0YXRlID0gNDI5DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5z eW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4g DQo+ICAgICAgICAgICAgICBpZiBfbGE9PVZmclN5bnRheFBhcnNlci5OdW1iZXI6DQo+IA0KPiAt ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0MjUNCj4gDQo+ICsgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDQyOA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gQEAgLTI1MzUsMjkgKzI1 NDUsMjkgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNl bGYuZW50ZXJSdWxlKGxvY2FsY3R4LCA4LCBzZWxmLlJVTEVfdmZyUHJhZ21hUGFja0RlZmluaXRp b24pDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91 dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0MjgN Cj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNDMxDQo+IA0KPiAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fMykNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LnN0YXRlID0gNDI5DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQzMg0KPiANCj4g ICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzQpDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDQzMA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUg PSA0MzMNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVu UGFyZW4pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQzNA0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSA0MzcNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5k bGVyLnN5bmMoc2VsZikNCj4gDQo+IC0gICAgICAgICAgICBsYV8gPSBzZWxmLl9pbnRlcnAuYWRh cHRpdmVQcmVkaWN0KHNlbGYuX2lucHV0LDUsc2VsZi5fY3R4KQ0KPiANCj4gKyAgICAgICAgICAg IGxhXyA9IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRpY3Qoc2VsZi5faW5wdXQsNixzZWxmLl9j dHgpDQo+IA0KPiAgICAgICAgICAgICAgaWYgbGFfID09IDE6DQo+IA0KPiAtICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSA0MzENCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDQzNA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnByYWdtYVBhY2tTaG93RGVmKCkNCj4g DQo+IA0KPiANCj4gICAgICAgICAgICAgIGVsaWYgbGFfID09IDI6DQo+IA0KPiAtICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSA0MzINCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDQzNQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnByYWdtYVBhY2tTdGFja0RlZigp DQo+IA0KPiANCj4gDQo+ICAgICAgICAgICAgICBlbGlmIGxhXyA9PSAzOg0KPiANCj4gLSAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gNDMzDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSA0MzYNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5wcmFnbWFQYWNrTnVtYmVy KCkNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQzNg0K PiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0MzkNCj4gDQo+ICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0KPiANCj4gICAgICAgICAgZXhj ZXB0IFJlY29nbml0aW9uRXhjZXB0aW9uIGFzIHJlOg0KPiANCj4gICAgICAgICAgICAgIGxvY2Fs Y3R4LmV4Y2VwdGlvbiA9IHJlDQo+IA0KPiBAQCAtMjYyMyw0NyArMjYzMyw0NyBAQCBjbGFzcyBW ZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9r ZW4gdHlwZQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50 ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0g NDM5DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQ0Mg0KPiANCj4gICAgICAgICAg ICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9 IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYgX2xhPT1WZnJTeW50YXhQ YXJzZXIuVHlwZURlZjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQzOA0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNDQxDQo+IA0KPiAgICAgICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlR5cGVEZWYpDQo+IA0KPiANCj4gDQo+ IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0NDENCj4gDQo+ICsgICAgICAgICAg ICBzZWxmLnN0YXRlID0gNDQ0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuU3RydWN0KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0NDMNCj4g DQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNDQ2DQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgX2xhID0gc2VsZi5f aW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBpZiBfbGE9PVZmclN5bnRheFBhcnNlci5O b25OdkRhdGFNYXA6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0NDINCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQ0NQ0KPiANCj4gICAgICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Ob25OdkRhdGFNYXApDQo+IA0KPiANCj4g DQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0NDYNCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLnN0YXRlID0gNDQ5DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxl ci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkN Cj4gDQo+ICAgICAgICAgICAgICBpZiBfbGE9PVZmclN5bnRheFBhcnNlci5TdHJpbmdJZGVudGlm aWVyOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNDQ1DQo+IA0KPiArICAg ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0NDgNCj4gDQo+ICAgICAgICAgICAgICAgICAgbG9j YWxjdHguTjEgPSBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdJZGVudGlmaWVyKQ0K PiANCj4gDQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gNDQ4DQo+IA0K PiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQ1MQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5CcmFjZSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LnN0YXRlID0gNDQ5DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQ1Mg0KPiANCj4g ICAgICAgICAgICAgIHNlbGYudmZyRGF0YVN0cnVjdEZpZWxkcyhGYWxzZSkNCj4gDQo+IC0gICAg ICAgICAgICBzZWxmLnN0YXRlID0gNDUwDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDQ1Mw0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3Nl QnJhY2UpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQ1Mg0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSA0NTUNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5k bGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgx KQ0KPiANCj4gICAgICAgICAgICAgIGlmIF9sYT09VmZyU3ludGF4UGFyc2VyLlN0cmluZ0lkZW50 aWZpZXI6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0NTENCj4gDQo+ICsg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQ1NA0KPiANCj4gICAgICAgICAgICAgICAgICBs b2NhbGN0eC5OMiA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlN0cmluZ0lkZW50aWZpZXIp DQo+IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0NTQNCj4g DQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNDU3DQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU2VtaWNvbG9uKQ0KPiANCj4gICAgICAgICAgZXhjZXB0 IFJlY29nbml0aW9uRXhjZXB0aW9uIGFzIHJlOg0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4 LmV4Y2VwdGlvbiA9IHJlDQo+IA0KPiBAQCAtMjcyOSw0NyArMjczOSw0NyBAQCBjbGFzcyBWZnJT eW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4g dHlwZQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJP dXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gNDU3 DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQ2MA0KPiANCj4gICAgICAgICAgICAg IHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9IHNl bGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYgX2xhPT1WZnJTeW50YXhQYXJz ZXIuVHlwZURlZjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQ1Ng0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNDU5DQo+IA0KPiAgICAgICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlR5cGVEZWYpDQo+IA0KPiANCj4gDQo+IA0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0NTkNCj4gDQo+ICsgICAgICAgICAgICBz ZWxmLnN0YXRlID0gNDYyDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuVW5pb24pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQ2MQ0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0NjQNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9l cnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1 dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIF9sYT09VmZyU3ludGF4UGFyc2VyLk5vbk52 RGF0YU1hcDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQ2MA0KPiANCj4g KyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNDYzDQo+IA0KPiAgICAgICAgICAgICAgICAg IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk5vbk52RGF0YU1hcCkNCj4gDQo+IA0KPiANCj4g DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQ2NA0KPiANCj4gKyAgICAgICAgICAg IHNlbGYuc3RhdGUgPSA0NjcNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5 bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiAN Cj4gICAgICAgICAgICAgIGlmIF9sYT09VmZyU3ludGF4UGFyc2VyLlN0cmluZ0lkZW50aWZpZXI6 DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0NjMNCj4gDQo+ICsgICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDQ2Ng0KPiANCj4gICAgICAgICAgICAgICAgICBsb2NhbGN0 eC5OMSA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlN0cmluZ0lkZW50aWZpZXIpDQo+IA0K PiANCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0NjYNCj4gDQo+ICsg ICAgICAgICAgICBzZWxmLnN0YXRlID0gNDY5DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRj aChWZnJTeW50YXhQYXJzZXIuT3BlbkJyYWNlKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSA0NjcNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNDcwDQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi52ZnJEYXRhU3RydWN0RmllbGRzKFRydWUpDQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDQ2OA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0NzEN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5DbG9zZUJyYWNl KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0NzANCj4gDQo+ICsgICAgICAgICAg ICBzZWxmLnN0YXRlID0gNDczDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5z eW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4g DQo+ICAgICAgICAgICAgICBpZiBfbGE9PVZmclN5bnRheFBhcnNlci5TdHJpbmdJZGVudGlmaWVy Og0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNDY5DQo+IA0KPiArICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSA0NzINCj4gDQo+ICAgICAgICAgICAgICAgICAgbG9jYWxj dHguTjIgPSBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdJZGVudGlmaWVyKQ0KPiAN Cj4gDQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gNDcyDQo+IA0KPiAr ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQ3NQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLlNlbWljb2xvbikNCj4gDQo+ICAgICAgICAgIGV4Y2VwdCBSZWNv Z25pdGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5leGNl cHRpb24gPSByZQ0KPiANCj4gQEAgLTI5MDUsODUgKzI5MTUsODUgQEAgY2xhc3MgVmZyU3ludGF4 UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUN Cj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJB bHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQ5MA0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0OTMNCj4gDQo+ICAgICAgICAgICAgICBzZWxm Ll9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9p bnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIHdoaWxlICgoKChfbGEgLSA4MCkpICYgfjB4 M2YpID09IDAgYW5kICgoMSA8PCAoX2xhIC0gODApKSAmICgoMSA8PA0KPiAoVmZyU3ludGF4UGFy c2VyLkJvb2xlYW4gLSA4MCkpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5VaW50NjQgLSA4MCkp IHwgKDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5VaW50MzIgLSA4MCkpIHwgKDEgPDwgKFZmclN5 bnRheFBhcnNlci5VaW50MTYgLSA4MCkpIHwgKDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5VaW50 OCAtIDgwKSkgfCAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLkVGSV9TVFJJTkdfSUQgLSA4MCkpIHwg KDENCj4gPDwgKFZmclN5bnRheFBhcnNlci5FRklfSElJX0RBVEUgLSA4MCkpIHwgKDEgPDwgKFZm clN5bnRheFBhcnNlci5FRklfSElJX1RJTUUNCj4gLSA4MCkpIHwgKDEgPDwgKFZmclN5bnRheFBh cnNlci5FRklfSElJX1JFRiAtIDgwKSkpKSAhPSAwKSBvcg0KPiBfbGE9PVZmclN5bnRheFBhcnNl ci5TdHJpbmdJZGVudGlmaWVyOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g NDg4DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0OTENCj4gDQo+ICAgICAg ICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAtICAgICAgICAg ICAgICAgIGxhXyA9IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRpY3Qoc2VsZi5faW5wdXQsMTQs c2VsZi5fY3R4KQ0KPiANCj4gKyAgICAgICAgICAgICAgICBsYV8gPSBzZWxmLl9pbnRlcnAuYWRh cHRpdmVQcmVkaWN0KHNlbGYuX2lucHV0LDE1LHNlbGYuX2N0eCkNCj4gDQo+ICAgICAgICAgICAg ICAgICAgaWYgbGFfID09IDE6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gNDc0DQo+IA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNDc3DQo+IA0K PiAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRhdGFTdHJ1Y3RGaWVsZDY0KEZpZWxkSW5Vbmlv bikNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+IA0KPiANCj4gICAgICAg ICAgICAgICAgICBlbGlmIGxhXyA9PSAyOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDQ3NQ0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQ3 OA0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYXRhU3RydWN0RmllbGQzMihGaWVs ZEluVW5pb24pDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiANCj4gDQo+ ICAgICAgICAgICAgICAgICAgZWxpZiBsYV8gPT0gMzoNCj4gDQo+IC0gICAgICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSA0NzYNCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSA0NzkNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGF0YVN0cnVjdEZpZWxk MTYoRmllbGRJblVuaW9uKQ0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4g DQo+IA0KPiAgICAgICAgICAgICAgICAgIGVsaWYgbGFfID09IDQ6DQo+IA0KPiAtICAgICAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gNDc3DQo+IA0KPiArICAgICAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gNDgwDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRhdGFTdHJ1 Y3RGaWVsZDgoRmllbGRJblVuaW9uKQ0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgcGFzcw0K PiANCj4gDQo+IA0KPiAgICAgICAgICAgICAgICAgIGVsaWYgbGFfID09IDU6DQo+IA0KPiAtICAg ICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNDc4DQo+IA0KPiArICAgICAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gNDgxDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRh dGFTdHJ1Y3RGaWVsZEJvb2woRmllbGRJblVuaW9uKQ0KPiANCj4gICAgICAgICAgICAgICAgICAg ICAgcGFzcw0KPiANCj4gDQo+IA0KPiAgICAgICAgICAgICAgICAgIGVsaWYgbGFfID09IDY6DQo+ IA0KPiAtICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNDc5DQo+IA0KPiArICAgICAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNDgyDQo+IA0KPiAgICAgICAgICAgICAgICAgICAg ICBzZWxmLmRhdGFTdHJ1Y3RGaWVsZFN0cmluZyhGaWVsZEluVW5pb24pDQo+IA0KPiAgICAgICAg ICAgICAgICAgICAgICBwYXNzDQo+IA0KPiANCj4gDQo+ICAgICAgICAgICAgICAgICAgZWxpZiBs YV8gPT0gNzoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0ODANCj4g DQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0ODMNCj4gDQo+ICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZGF0YVN0cnVjdEZpZWxkRGF0ZShGaWVsZEluVW5pb24pDQo+IA0K PiAgICAgICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiANCj4gDQo+ICAgICAgICAgICAgICAg ICAgZWxpZiBsYV8gPT0gODoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSA0ODENCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0ODQNCj4gDQo+ ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGF0YVN0cnVjdEZpZWxkVGltZShGaWVsZEluVW5p b24pDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiANCj4gDQo+ICAgICAg ICAgICAgICAgICAgZWxpZiBsYV8gPT0gOToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSA0ODINCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0 ODUNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGF0YVN0cnVjdEZpZWxkUmVmKEZp ZWxkSW5VbmlvbikNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+IA0KPiAN Cj4gICAgICAgICAgICAgICAgICBlbGlmIGxhXyA9PSAxMDoNCj4gDQo+IC0gICAgICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSA0ODMNCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSA0ODYNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGF0YVN0cnVjdEZp ZWxkVXNlcihGaWVsZEluVW5pb24pDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBwYXNzDQo+ IA0KPiANCj4gDQo+ICAgICAgICAgICAgICAgICAgZWxpZiBsYV8gPT0gMTE6DQo+IA0KPiAtICAg ICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNDg0DQo+IA0KPiArICAgICAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gNDg3DQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRh dGFTdHJ1Y3RCaXRGaWVsZDY0KEZpZWxkSW5VbmlvbikNCj4gDQo+ICAgICAgICAgICAgICAgICAg ICAgIHBhc3MNCj4gDQo+IA0KPiANCj4gICAgICAgICAgICAgICAgICBlbGlmIGxhXyA9PSAxMjoN Cj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0ODUNCj4gDQo+ICsgICAg ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0ODgNCj4gDQo+ICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuZGF0YVN0cnVjdEJpdEZpZWxkMzIoRmllbGRJblVuaW9uKQ0KPiANCj4gICAgICAg ICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gDQo+IA0KPiAgICAgICAgICAgICAgICAgIGVsaWYg bGFfID09IDEzOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQ4Ng0K PiANCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQ4OQ0KPiANCj4gICAgICAg ICAgICAgICAgICAgICAgc2VsZi5kYXRhU3RydWN0Qml0RmllbGQxNihGaWVsZEluVW5pb24pDQo+ IA0KPiAgICAgICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiANCj4gDQo+ICAgICAgICAgICAg ICAgICAgZWxpZiBsYV8gPT0gMTQ6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gNDg3DQo+IA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNDkwDQo+ IA0KPiAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRhdGFTdHJ1Y3RCaXRGaWVsZDgoRmllbGRJ blVuaW9uKQ0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gDQo+IA0KPiAN Cj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQ5Mg0KPiANCj4gKyAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gNDk1DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuX2Vy ckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9p bnB1dC5MQSgxKQ0KPiANCj4gDQo+IA0KPiBAQCAtMzA0MiwyMyArMzA1MiwyMyBAQCBjbGFzcyBW ZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9r ZW4gdHlwZQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50 ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0g NDkzDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQ5Ng0KPiANCj4gICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlVpbnQ2NCkNCj4gDQo+IC0gICAgICAgICAg ICBzZWxmLnN0YXRlID0gNDk0DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQ5Nw0K PiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4Lk4gPSBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5TdHJpbmdJZGVudGlmaWVyKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA0OTgN Cj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNTAxDQo+IA0KPiAgICAgICAgICAgICAg c2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgX2xhID0gc2Vs Zi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBpZiBfbGE9PVZmclN5bnRheFBhcnNl ci5PcGVuQnJhY2tldDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDQ5NQ0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNDk4DQo+IA0KPiAgICAgICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5CcmFja2V0KQ0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNDk2DQo+IA0KPiArICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSA0OTkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNDk3 DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1MDANCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ2xvc2VCcmFja2V0KQ0KPiANCj4g DQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gNTAwDQo+IA0KPiArICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDUwMw0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLlNlbWljb2xvbikNCj4gDQo+ICAgICAgICAgIGV4Y2VwdCBSZWNvZ25p dGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5leGNlcHRp b24gPSByZQ0KPiANCj4gQEAgLTMxMTUsMjMgKzMxMjUsMjMgQEAgY2xhc3MgVmZyU3ludGF4UGFy c2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUNCj4g DQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQo bG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDUwMg0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1MDUNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5VaW50MzIpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDUwMw0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1MDYNCj4gDQo+ICAgICAg ICAgICAgICBsb2NhbGN0eC5OID0gc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nSWRl bnRpZmllcikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gNTA3DQo+IA0KPiArICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDUxMA0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2Vyckhh bmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxB KDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYgX2xhPT1WZnJTeW50YXhQYXJzZXIuT3BlbkJyYWNr ZXQ6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1MDQNCj4gDQo+ICsgICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDUwNw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuQnJhY2tldCkNCj4gDQo+IC0gICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDUwNQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g NTA4DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51 bWJlcikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDUwNg0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNTA5DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3NlQnJhY2tldCkNCj4gDQo+IA0KPiANCj4gDQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDUwOQ0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuc3RhdGUgPSA1MTINCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5TZW1pY29sb24pDQo+IA0KPiAgICAgICAgICBleGNlcHQgUmVjb2duaXRpb25FeGNlcHRp b24gYXMgcmU6DQo+IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHguZXhjZXB0aW9uID0gcmUNCj4g DQo+IEBAIC0zMTg4LDIzICszMTk4LDIzIEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNl ciApOg0KPiAgICAgICAgICBzZWxmLl9sYSA9IDAgIyBUb2tlbiB0eXBlDQo+IA0KPiAgICAgICAg ICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAx KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1MTENCj4gDQo+ICsgICAgICAgICAg ICBzZWxmLnN0YXRlID0gNTE0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuVWludDE2KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1MTINCj4g DQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNTE1DQo+IA0KPiAgICAgICAgICAgICAgbG9j YWxjdHguTiA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlN0cmluZ0lkZW50aWZpZXIpDQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDUxNg0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuc3RhdGUgPSA1MTkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMo c2VsZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4g ICAgICAgICAgICAgIGlmIF9sYT09VmZyU3ludGF4UGFyc2VyLk9wZW5CcmFja2V0Og0KPiANCj4g LSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNTEzDQo+IA0KPiArICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSA1MTYNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuT3BlbkJyYWNrZXQpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSA1MTQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDUxNw0KPiANCj4g ICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0K PiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1MTUNCj4gDQo+ICsgICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDUxOA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5DbG9zZUJyYWNrZXQpDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSA1MTgNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0g NTIxDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU2VtaWNv bG9uKQ0KPiANCj4gICAgICAgICAgZXhjZXB0IFJlY29nbml0aW9uRXhjZXB0aW9uIGFzIHJlOg0K PiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LmV4Y2VwdGlvbiA9IHJlDQo+IA0KPiBAQCAtMzI2 MSwyMyArMzI3MSwyMyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAg ICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4gdHlwZQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiAN Cj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0g ICAgICAgICAgICBzZWxmLnN0YXRlID0gNTIwDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDUyMw0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlVp bnQ4KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1MjENCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLnN0YXRlID0gNTI0DQo+IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHguTiA9IHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlN0cmluZ0lkZW50aWZpZXIpDQo+IA0KPiAtICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDUyNQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1 MjgNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAg IGlmIF9sYT09VmZyU3ludGF4UGFyc2VyLk9wZW5CcmFja2V0Og0KPiANCj4gLSAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gNTIyDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSA1MjUNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu T3BlbkJyYWNrZXQpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1MjMNCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDUyNg0KPiANCj4gICAgICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSA1MjQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDUyNw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5DbG9zZUJyYWNrZXQpDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYu c3RhdGUgPSA1MjcNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNTMwDQo+IA0KPiAg ICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU2VtaWNvbG9uKQ0KPiANCj4g ICAgICAgICAgZXhjZXB0IFJlY29nbml0aW9uRXhjZXB0aW9uIGFzIHJlOg0KPiANCj4gICAgICAg ICAgICAgIGxvY2FsY3R4LmV4Y2VwdGlvbiA9IHJlDQo+IA0KPiBAQCAtMzMzNCwyMyArMzM0NCwy MyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5f bGEgPSAwICMgVG9rZW4gdHlwZQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAg ICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLnN0YXRlID0gNTI5DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDUzMg0KPiAN Cj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkJvb2xlYW4pDQo+IA0K PiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDUzMA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYu c3RhdGUgPSA1MzMNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5OID0gc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuU3RyaW5nSWRlbnRpZmllcikNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LnN0YXRlID0gNTM0DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDUzNw0KPiANCj4g ICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAg ICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYgX2xhPT1W ZnJTeW50YXhQYXJzZXIuT3BlbkJyYWNrZXQ6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSA1MzENCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDUzNA0KPiAN Cj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuQnJhY2tl dCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDUzMg0KPiANCj4gKyAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gNTM1DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDUzMw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNTM2DQo+ IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3NlQnJh Y2tldCkNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDUz Ng0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1MzkNCj4gDQo+ICAgICAgICAgICAg ICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TZW1pY29sb24pDQo+IA0KPiAgICAgICAgICBl eGNlcHQgUmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAgICAgICAgICAgICAgbG9j YWxjdHguZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC0zNDA3LDIzICszNDE3LDIzIEBAIGNsYXNz IFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLl9sYSA9IDAgIyBU b2tlbiB0eXBlDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5l bnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUg PSA1MzgNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNTQxDQo+IA0KPiAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRUZJX1NUUklOR19JRCkNCj4gDQo+IC0g ICAgICAgICAgICBzZWxmLnN0YXRlID0gNTM5DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDU0Mg0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4Lk4gPSBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5TdHJpbmdJZGVudGlmaWVyKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSA1NDMNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNTQ2DQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAg X2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBpZiBfbGE9PVZmclN5 bnRheFBhcnNlci5PcGVuQnJhY2tldDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDU0MA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNTQzDQo+IA0KPiAg ICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5CcmFja2V0KQ0K PiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNTQxDQo+IA0KPiArICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSA1NDQNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRj aChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gNTQyDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1NDUNCj4gDQo+ ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ2xvc2VCcmFja2V0 KQ0KPiANCj4gDQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gNTQ1DQo+ IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDU0OA0KPiANCj4gICAgICAgICAgICAgIHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlNlbWljb2xvbikNCj4gDQo+ICAgICAgICAgIGV4Y2Vw dCBSZWNvZ25pdGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0 eC5leGNlcHRpb24gPSByZQ0KPiANCj4gQEAgLTM0ODAsMjMgKzM0OTAsMjMgQEAgY2xhc3MgVmZy U3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2Vu IHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVy T3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDU0 Nw0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1NTANCj4gDQo+ICAgICAgICAgICAg ICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5FRklfSElJX0RBVEUpDQo+IA0KPiAtICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDU0OA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1 NTENCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5OID0gc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuU3RyaW5nSWRlbnRpZmllcikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0g NTUyDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDU1NQ0KPiANCj4gICAgICAgICAg ICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9 IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYgX2xhPT1WZnJTeW50YXhQ YXJzZXIuT3BlbkJyYWNrZXQ6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1 NDkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDU1Mg0KPiANCj4gICAgICAg ICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuQnJhY2tldCkNCj4gDQo+ IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDU1MA0KPiANCj4gKyAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gNTUzDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDU1MQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNTU0DQo+IA0KPiAgICAg ICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3NlQnJhY2tldCkNCj4g DQo+IA0KPiANCj4gDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDU1NA0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1NTcNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5TZW1pY29sb24pDQo+IA0KPiAgICAgICAgICBleGNlcHQgUmVj b2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHguZXhj ZXB0aW9uID0gcmUNCj4gDQo+IEBAIC0zNTUzLDIzICszNTYzLDIzIEBAIGNsYXNzIFZmclN5bnRh eFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLl9sYSA9IDAgIyBUb2tlbiB0eXBl DQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVy QWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1NTYNCj4g DQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNTU5DQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRUZJX0hJSV9USU1FKQ0KPiANCj4gLSAgICAgICAgICAg IHNlbGYuc3RhdGUgPSA1NTcNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNTYwDQo+ IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHguTiA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy LlN0cmluZ0lkZW50aWZpZXIpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDU2MQ0K PiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1NjQNCj4gDQo+ICAgICAgICAgICAgICBz ZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxm Ll9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIF9sYT09VmZyU3ludGF4UGFyc2Vy Lk9wZW5CcmFja2V0Og0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNTU4DQo+ IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1NjENCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3BlbkJyYWNrZXQpDQo+IA0KPiAtICAg ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1NTkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDU2Mg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1NjAN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDU2Mw0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5DbG9zZUJyYWNrZXQpDQo+IA0KPiAN Cj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1NjMNCj4gDQo+ICsgICAg ICAgICAgICBzZWxmLnN0YXRlID0gNTY2DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuU2VtaWNvbG9uKQ0KPiANCj4gICAgICAgICAgZXhjZXB0IFJlY29nbml0 aW9uRXhjZXB0aW9uIGFzIHJlOg0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LmV4Y2VwdGlv biA9IHJlDQo+IA0KPiBAQCAtMzYyNiwyMyArMzYzNiwyMyBAQCBjbGFzcyBWZnJTeW50YXhQYXJz ZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4gdHlwZQ0KPiAN Cj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChs b2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gNTY1DQo+IA0KPiAr ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDU2OA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLkVGSV9ISUlfUkVGKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYu c3RhdGUgPSA1NjYNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNTY5DQo+IA0KPiAg ICAgICAgICAgICAgbG9jYWxjdHguTiA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlN0cmlu Z0lkZW50aWZpZXIpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDU3MA0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1NzMNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9l cnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1 dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIF9sYT09VmZyU3ludGF4UGFyc2VyLk9wZW5C cmFja2V0Og0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNTY3DQo+IA0KPiAr ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1NzANCj4gDQo+ICAgICAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3BlbkJyYWNrZXQpDQo+IA0KPiAtICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSA1NjgNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDU3MQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1NjkNCj4gDQo+ ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDU3Mg0KPiANCj4gICAgICAgICAgICAgICAg ICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5DbG9zZUJyYWNrZXQpDQo+IA0KPiANCj4gDQo+ IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1NzINCj4gDQo+ICsgICAgICAgICAg ICBzZWxmLnN0YXRlID0gNTc1DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuU2VtaWNvbG9uKQ0KPiANCj4gICAgICAgICAgZXhjZXB0IFJlY29nbml0aW9uRXhj ZXB0aW9uIGFzIHJlOg0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LmV4Y2VwdGlvbiA9IHJl DQo+IA0KPiBAQCAtMzcwMCwyMyArMzcxMCwyMyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQ YXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4gdHlwZQ0KPiANCj4gICAg ICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0 eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gNTc0DQo+IA0KPiArICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDU3Nw0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LlQgPSBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdJZGVudGlmaWVyKQ0KPiANCj4gLSAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSA1NzUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0g NTc4DQo+IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHguTiA9IHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLlN0cmluZ0lkZW50aWZpZXIpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDU3OQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1ODINCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEg PSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIF9sYT09VmZyU3ludGF4 UGFyc2VyLk9wZW5CcmFja2V0Og0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g NTc2DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1NzkNCj4gDQo+ICAgICAg ICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3BlbkJyYWNrZXQpDQo+IA0K PiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1NzcNCj4gDQo+ICsgICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDU4MA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSA1NzgNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDU4MQ0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5DbG9zZUJyYWNrZXQpDQo+ IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1ODENCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNTg0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuU2VtaWNvbG9uKQ0KPiANCj4gICAgICAgICAgZXhjZXB0IFJl Y29nbml0aW9uRXhjZXB0aW9uIGFzIHJlOg0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LmV4 Y2VwdGlvbiA9IHJlDQo+IA0KPiBAQCAtMzc3MSwyMSArMzc4MSwyMSBAQCBjbGFzcyBWZnJTeW50 YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4gdHlw ZQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRl ckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gNTgzDQo+ IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDU4Ng0KPiANCj4gICAgICAgICAgICAgIGxv Y2FsY3R4LkQgPSBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5VaW50NjQpDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDU4NQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUg PSA1ODgNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4g DQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAg ICAgIGlmIF9sYT09VmZyU3ludGF4UGFyc2VyLlN0cmluZ0lkZW50aWZpZXI6DQo+IA0KPiAtICAg ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1ODQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDU4Nw0KPiANCj4gICAgICAgICAgICAgICAgICBsb2NhbGN0eC5OID0gc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nSWRlbnRpZmllcikNCj4gDQo+IA0KPiANCj4gDQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDU4Nw0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuc3RhdGUgPSA1OTANCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5Db2xvbikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gNTg4DQo+IA0KPiAr ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDU5MQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRl ID0gNTg5DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDU5Mg0KPiANCj4gICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlNlbWljb2xvbikNCj4gDQo+ICAgICAg ICAgIGV4Y2VwdCBSZWNvZ25pdGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAgICAgICAg ICBsb2NhbGN0eC5leGNlcHRpb24gPSByZQ0KPiANCj4gQEAgLTM4NDAsMjEgKzM4NTAsMjEgQEAg Y2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuX2xhID0g MCAjIFRva2VuIHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBz ZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDU5MQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1OTQNCj4gDQo+ICAg ICAgICAgICAgICBsb2NhbGN0eC5EID0gc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVWludDMy KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1OTMNCj4gDQo+ICsgICAgICAgICAg ICBzZWxmLnN0YXRlID0gNTk2DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5z eW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4g DQo+ICAgICAgICAgICAgICBpZiBfbGE9PVZmclN5bnRheFBhcnNlci5TdHJpbmdJZGVudGlmaWVy Og0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNTkyDQo+IA0KPiArICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSA1OTUNCj4gDQo+ICAgICAgICAgICAgICAgICAgbG9jYWxj dHguTiA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlN0cmluZ0lkZW50aWZpZXIpDQo+IA0K PiANCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1OTUNCj4gDQo+ICsg ICAgICAgICAgICBzZWxmLnN0YXRlID0gNTk4DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRj aChWZnJTeW50YXhQYXJzZXIuQ29sb24pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDU5Ng0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA1OTkNCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDU5Nw0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2MDAN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TZW1pY29sb24p DQo+IA0KPiAgICAgICAgICBleGNlcHQgUmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0K PiAgICAgICAgICAgICAgbG9jYWxjdHguZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC0zOTA5LDIx ICszOTE5LDIxIEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAg ICBzZWxmLl9sYSA9IDAgIyBUb2tlbiB0eXBlDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAg ICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSA1OTkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0g NjAyDQo+IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHguRCA9IHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLlVpbnQxNikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gNjAxDQo+IA0K PiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDYwNA0KPiANCj4gICAgICAgICAgICAgIHNlbGYu X2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lu cHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYgX2xhPT1WZnJTeW50YXhQYXJzZXIuU3Ry aW5nSWRlbnRpZmllcjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDYwMA0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNjAzDQo+IA0KPiAgICAgICAgICAg ICAgICAgIGxvY2FsY3R4Lk4gPSBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdJZGVu dGlmaWVyKQ0KPiANCj4gDQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0g NjAzDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDYwNg0KPiANCj4gICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbG9uKQ0KPiANCj4gLSAgICAgICAgICAg IHNlbGYuc3RhdGUgPSA2MDQNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNjA3DQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2MDUNCj4gDQo+ICsgICAgICAgICAgICBzZWxm LnN0YXRlID0gNjA4DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJz ZXIuU2VtaWNvbG9uKQ0KPiANCj4gICAgICAgICAgZXhjZXB0IFJlY29nbml0aW9uRXhjZXB0aW9u IGFzIHJlOg0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LmV4Y2VwdGlvbiA9IHJlDQo+IA0K PiBAQCAtMzk3OCwyMSArMzk4OCwyMSBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIg KToNCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4gdHlwZQ0KPiANCj4gICAgICAgICAg dHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gNjA3DQo+IA0KPiArICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDYxMA0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LkQgPSBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5VaW50OCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRl ID0gNjA5DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDYxMg0KPiANCj4gICAgICAg ICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9s YSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYgX2xhPT1WZnJTeW50 YXhQYXJzZXIuU3RyaW5nSWRlbnRpZmllcjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDYwOA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNjExDQo+IA0K PiAgICAgICAgICAgICAgICAgIGxvY2FsY3R4Lk4gPSBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5TdHJpbmdJZGVudGlmaWVyKQ0KPiANCj4gDQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLnN0YXRlID0gNjExDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDYxNA0KPiAN Cj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbG9uKQ0KPiANCj4g LSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2MTINCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0 YXRlID0gNjE1DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu TnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2MTMNCj4gDQo+ICsgICAg ICAgICAgICBzZWxmLnN0YXRlID0gNjE2DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuU2VtaWNvbG9uKQ0KPiANCj4gICAgICAgICAgZXhjZXB0IFJlY29nbml0 aW9uRXhjZXB0aW9uIGFzIHJlOg0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LmV4Y2VwdGlv biA9IHJlDQo+IA0KPiBAQCAtNDAwOCw3ICs0MDE4LDcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2Vy ICggUGFyc2VyICk6DQo+ICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJzZXIsIHBhcmVu dDpQYXJzZXJSdWxlQ29udGV4dD1Ob25lLA0KPiBpbnZva2luZ1N0YXRlOmludD0tMSk6DQo+IA0K PiAgICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhwYXJlbnQsIGludm9raW5nU3RhdGUpDQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJzZXINCj4gDQo+IC0gICAgICAgICAg ICBzZWxmLk5vZGUgPSBWZnJUcmVlTm9kZShFRklfSUZSX0ZPUk1fU0VUX09QKQ0KPiANCj4gKyAg ICAgICAgICAgIHNlbGYuTm9kZSA9IElmclRyZWVOb2RlKEVGSV9JRlJfRk9STV9TRVRfT1ApDQo+ IA0KPiANCj4gDQo+ICAgICAgICAgIGRlZiBGb3JtU2V0KHNlbGYpOg0KPiANCj4gICAgICAgICAg ICAgIHJldHVybiBzZWxmLmdldFRva2VuKFZmclN5bnRheFBhcnNlci5Gb3JtU2V0LCAwKQ0KPiAN Cj4gQEAgLTQxMDYsOTEgKzQxMTYsOTEgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2Vy ICk6DQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUNCj4gDQo+ICAgICAgICAg IHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEp DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDYxNQ0KPiANCj4gKyAgICAgICAgICAg IHNlbGYuc3RhdGUgPSA2MTgNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5Gb3JtU2V0KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2MTYNCj4g DQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNjE5DQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVXVpZCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0 YXRlID0gNjE3DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDYyMA0KPiANCj4gICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDYxOA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2 MjENCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmd1aWREZWZpbml0aW9uKCkNCj4gDQo+IC0gICAg ICAgICAgICBzZWxmLnN0YXRlID0gNjE5DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDYyMg0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1h KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2MjANCj4gDQo+ICsgICAgICAgICAg ICBzZWxmLnN0YXRlID0gNjIzDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuVGl0bGUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDYyMQ0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2MjQNCj4gDQo+ICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSA2MjINCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNjI1DQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nVG9rZW4pDQo+IA0KPiAt ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDYyMw0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSA2MjYNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5P cGVuUGFyZW4pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDYyNA0KPiANCj4gKyAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSA2MjcNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNo KFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDYyNQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2MjgNCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0KPiANCj4gLSAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSA2MjYNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0g NjI5DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEp DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDYyNw0KPiANCj4gKyAgICAgICAgICAg IHNlbGYuc3RhdGUgPSA2MzANCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5IZWxwKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2MjgNCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNjMxDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRl ID0gNjI5DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDYzMg0KPiANCj4gICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlN0cmluZ1Rva2VuKQ0KPiANCj4gLSAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSA2MzANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRl ID0gNjMzDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3Bl blBhcmVuKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2MzENCj4gDQo+ICsgICAg ICAgICAgICBzZWxmLnN0YXRlID0gNjM0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2 MzINCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNjM1DQo+IA0KPiAgICAgICAgICAg ICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ2xvc2VQYXJlbikNCj4gDQo+IC0gICAgICAg ICAgICBzZWxmLnN0YXRlID0gNjMzDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDYz Ng0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2MzkNCj4gDQo+ICsgICAgICAgICAgICBz ZWxmLnN0YXRlID0gNjQyDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5j KHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ ICAgICAgICAgICAgICBpZiBfbGE9PVZmclN5bnRheFBhcnNlci5DbGFzc0d1aWQ6DQo+IA0KPiAt ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2MzQNCj4gDQo+ICsgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDYzNw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5DbGFzc0d1aWQpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSA2MzUNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDYzOA0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNjM2DQo+IA0KPiArICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSA2MzkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5jbGFzc2d1aWREZWZp bml0aW9uKGxvY2FsY3R4Lk5vZGUpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSA2MzcNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDY0MA0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IA0K PiANCj4gDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDY0Ng0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSA2NDkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5k bGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgx KQ0KPiANCj4gICAgICAgICAgICAgIGlmIF9sYT09VmZyU3ludGF4UGFyc2VyLkNsYXNzOg0KPiAN Cj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNjQxDQo+IA0KPiArICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSA2NDQNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuQ2xhc3MpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSA2NDINCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDY0NQ0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNjQzDQo+IA0KPiArICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSA2NDYNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5jbGFzc0RlZmluaXRp b24oKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNjQ0DQo+IA0KPiArICAg ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2NDcNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gLSAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSA2NTMNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRl ID0gNjU2DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+ IA0KPiAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAg ICAgICBpZiBfbGE9PVZmclN5bnRheFBhcnNlci5TdWJjbGFzczoNCj4gDQo+IC0gICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDY0OA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gNjUxDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy LlN1YmNsYXNzKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNjQ5DQo+IA0K PiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2NTINCj4gDQo+ICAgICAgICAgICAgICAg ICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDY1MA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g NjUzDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3ViY2xhc3NEZWZpbml0aW9uKCkNCj4g DQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDY1MQ0KPiANCj4gKyAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gNjU0DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gDQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAg ICBzZWxmLnN0YXRlID0gNjU1DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDY1OA0K PiANCj4gICAgICAgICAgICAgIHNlbGYudmZyRm9ybVNldExpc3QobG9jYWxjdHguTm9kZSkNCj4g DQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gNjU2DQo+IA0KPiArICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDY1OQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLkVuZEZvcm1TZXQpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDY1Nw0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2NjANCj4gDQo+ICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5TZW1pY29sb24pDQo+IA0KPiAgICAgICAgICBleGNlcHQg UmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHgu ZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC00MjQyLDM1ICs0MjUyLDM1IEBAIGNsYXNzIFZmclN5 bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLl9sYSA9IDAgIyBUb2tlbiB0 eXBlDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91 dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2NTkN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLmd1aWREZWZpbml0aW9uKCkNCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gNjYyDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5ndWlkRGVmaW5p dGlvbigpDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDY2NQ0KPiANCj4gICAgICAg ICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gLSAgICAgICAgICAgIGxh XyA9IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRpY3Qoc2VsZi5faW5wdXQsMzMsc2VsZi5fY3R4 KQ0KPiANCj4gKyAgICAgICAgICAgIGxhXyA9IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRpY3Qo c2VsZi5faW5wdXQsMzQsc2VsZi5fY3R4KQ0KPiANCj4gICAgICAgICAgICAgIGlmIGxhXyA9PSAx Og0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNjYwDQo+IA0KPiArICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSA2NjMNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuQml0V2lzZU9yKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gNjYxDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2NjQN Cj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5ndWlkRGVmaW5pdGlvbigpDQo+IA0KPiANCj4g DQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2NjYNCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLnN0YXRlID0gNjY5DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxl ci5zeW5jKHNlbGYpDQo+IA0KPiAtICAgICAgICAgICAgbGFfID0gc2VsZi5faW50ZXJwLmFkYXB0 aXZlUHJlZGljdChzZWxmLl9pbnB1dCwzNCxzZWxmLl9jdHgpDQo+IA0KPiArICAgICAgICAgICAg bGFfID0gc2VsZi5faW50ZXJwLmFkYXB0aXZlUHJlZGljdChzZWxmLl9pbnB1dCwzNSxzZWxmLl9j dHgpDQo+IA0KPiAgICAgICAgICAgICAgaWYgbGFfID09IDE6DQo+IA0KPiAtICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSA2NjQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDY2Nw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5C aXRXaXNlT3IpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2NjUNCj4gDQo+ ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDY2OA0KPiANCj4gICAgICAgICAgICAgICAg ICBzZWxmLmd1aWREZWZpbml0aW9uKCkNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDY3MA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2NzMN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAg ICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlm IF9sYT09VmZyU3ludGF4UGFyc2VyLkJpdFdpc2VPcjoNCj4gDQo+IC0gICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDY2OA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNjcx DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkJpdFdp c2VPcikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDY2OQ0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNjcyDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNl bGYuZ3VpZERlZmluaXRpb24oKQ0KPiANCj4gDQo+IA0KPiANCj4gDQo+IEBAIC00Mjg4LDcgKzQy OTgsNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgZGVm IF9faW5pdF9fKHNlbGYsIHBhcnNlciwgcGFyZW50OlBhcnNlclJ1bGVDb250ZXh0PU5vbmUsDQo+ IGludm9raW5nU3RhdGU6aW50PS0xKToNCj4gDQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5p dF9fKHBhcmVudCwgaW52b2tpbmdTdGF0ZSkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNl ciA9IHBhcnNlcg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuTm9kZSA9IFZmclRyZWVOb2RlKEVG SV9JRlJfR1VJRF9PUCkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5vZGUgPSBJZnJUcmVlTm9k ZShFRklfSUZSX0dVSURfT1ApDQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGRlZiB2YWxpZENsYXNz TmFtZXMoc2VsZiwgaTppbnQ9Tm9uZSk6DQo+IA0KPiAgICAgICAgICAgICAgaWYgaSBpcyBOb25l Og0KPiANCj4gQEAgLTQzMjIsMTcgKzQzMzIsMTcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICgg UGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUNCj4gDQo+ICAg ICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxj dHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDY3Mg0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSA2NzUNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnZhbGlkQ2xh c3NOYW1lcygpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDY3Nw0KPiANCj4gKyAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSA2ODANCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJI YW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5M QSgxKQ0KPiANCj4gICAgICAgICAgICAgIHdoaWxlIF9sYT09VmZyU3ludGF4UGFyc2VyLkJpdFdp c2VPcjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDY3Mw0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNjc2DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkJpdFdpc2VPcikNCj4gDQo+IC0gICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDY3NA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g Njc3DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudmFsaWRDbGFzc05hbWVzKCkNCj4gDQo+ IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDY3OQ0KPiANCj4gKyAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gNjgyDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRs ZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5M QSgxKQ0KPiANCj4gDQo+IA0KPiBAQCAtNDM5NSw3ICs0NDA1LDcgQEAgY2xhc3MgVmZyU3ludGF4 UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUN Cj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJB bHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDY4MA0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2ODMNCj4gDQo+ICAgICAgICAgICAgICBfbGEg PSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIG5vdCgoKCgoX2xhIC0g MTcwKSkgJiB+MHgzZikgPT0gMCBhbmQgKCgxIDw8IChfbGEgLSAxNzApKSAmICgoMSA8PA0KPiAo VmZyU3ludGF4UGFyc2VyLkNsYXNzTm9uRGV2aWNlIC0gMTcwKSkgfCAoMSA8PA0KPiAoVmZyU3lu dGF4UGFyc2VyLkNsYXNzRGlza0RldmljZSAtIDE3MCkpIHwgKDEgPDwNCj4gKFZmclN5bnRheFBh cnNlci5DbGFzc1ZpZGVvRGV2aWNlIC0gMTcwKSkgfCAoMSA8PA0KPiAoVmZyU3ludGF4UGFyc2Vy LkNsYXNzTmV0d29ya0RldmljZSAtIDE3MCkpIHwgKDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5D bGFzc0lucHV0RGV2aWNlIC0gMTcwKSkgfCAoMSA8PA0KPiAoVmZyU3ludGF4UGFyc2VyLkNsYXNz T25Cb2FyZERldmljZSAtIDE3MCkpIHwgKDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5DbGFzc090 aGVyRGV2aWNlIC0gMTcwKSkpKSAhPSAwKSBvcg0KPiBfbGE9PVZmclN5bnRheFBhcnNlci5OdW1i ZXIpOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnJlY292ZXJJbmxp bmUoc2VsZikNCj4gDQo+IEBAIC00NDE2LDcgKzQ0MjYsNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJz ZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcnNlciwgcGFy ZW50OlBhcnNlclJ1bGVDb250ZXh0PU5vbmUsDQo+IGludm9raW5nU3RhdGU6aW50PS0xKToNCj4g DQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwgaW52b2tpbmdTdGF0ZSkN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0KPiANCj4gLSAgICAgICAg ICAgIHNlbGYuTm9kZSA9IFZmclRyZWVOb2RlKEVGSV9JRlJfR1VJRF9PUCkNCj4gDQo+ICsgICAg ICAgICAgICBzZWxmLk5vZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX0dVSURfT1ApDQo+IA0KPiAN Cj4gDQo+ICAgICAgICAgIGRlZiBTdWJjbGFzc1NldHVwQXBwbGljYXRpb24oc2VsZik6DQo+IA0K PiAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZ2V0VG9rZW4oVmZyU3ludGF4UGFyc2VyLlN1YmNs YXNzU2V0dXBBcHBsaWNhdGlvbiwgMCkNCj4gDQo+IEBAIC00NDUyLDcgKzQ0NjIsNyBAQCBjbGFz cyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMg VG9rZW4gdHlwZQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYu ZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRl ID0gNjgyDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDY4NQ0KPiANCj4gICAgICAg ICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYgbm90 KCgoKChfbGEgLSAxNzcpKSAmIH4weDNmKSA9PSAwIGFuZCAoKDEgPDwgKF9sYSAtIDE3NykpICYg KCgxIDw8DQo+IChWZnJTeW50YXhQYXJzZXIuU3ViY2xhc3NTZXR1cEFwcGxpY2F0aW9uIC0gMTc3 KSkgfCAoMSA8PA0KPiAoVmZyU3ludGF4UGFyc2VyLlN1YmNsYXNzR2VuZXJhbEFwcGxpY2F0aW9u IC0gMTc3KSkgfCAoMSA8PA0KPiAoVmZyU3ludGF4UGFyc2VyLlN1YmNsYXNzRnJvbnRQYWdlIC0g MTc3KSkgfCAoMSA8PA0KPiAoVmZyU3ludGF4UGFyc2VyLlN1YmNsYXNzU2luZ2xlVXNlIC0gMTc3 KSkpKSAhPSAwKSBvcg0KPiBfbGE9PVZmclN5bnRheFBhcnNlci5OdW1iZXIpOg0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnJlY292ZXJJbmxpbmUoc2VsZikNCj4gDQo+ IEBAIC00NTAyLDEzICs0NTEyLDEzIEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciAp Og0KPiAgICAgICAgICBzZWxmLl9sYSA9IDAgIyBUb2tlbiB0eXBlDQo+IA0KPiAgICAgICAgICB0 cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2ODcNCj4gDQo+ICsgICAgICAgICAgICBz ZWxmLnN0YXRlID0gNjkwDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5j KHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ ICAgICAgICAgICAgICB3aGlsZSBfbGE9PVZmclN5bnRheFBhcnNlci5Gb3JtIG9yIF9sYT09VmZy U3ludGF4UGFyc2VyLkZvcm1NYXAgb3INCj4gKCgoKF9sYSAtIDEwNSkpICYgfjB4M2YpID09IDAg YW5kICgoMSA8PCAoX2xhIC0gMTA1KSkgJiAoKDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5TdXBw cmVzc0lmIC0gMTA1KSkgfCAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLkRpc2FibGVJZiAtIDEwNSkp IHwNCj4gKDEgPDwgKFZmclN5bnRheFBhcnNlci5JbWFnZSAtIDEwNSkpIHwgKDEgPDwgKFZmclN5 bnRheFBhcnNlci5EZWZhdWx0U3RvcmUgLQ0KPiAxMDUpKSB8ICgxIDw8IChWZnJTeW50YXhQYXJz ZXIuVmFyc3RvcmUgLSAxMDUpKSB8ICgxIDw8DQo+IChWZnJTeW50YXhQYXJzZXIuRWZpdmFyc3Rv cmUgLSAxMDUpKSB8ICgxIDw8DQo+IChWZnJTeW50YXhQYXJzZXIuTmFtZVZhbHVlVmFyU3RvcmUg LSAxMDUpKSB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuR3VpZE9wIC0NCj4gMTA1KSkpKSAhPSAw KToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDY4NA0KPiANCj4gKyAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gNjg3DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYu dmZyRm9ybVNldCgpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2ODkNCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDY5Mg0KPiANCj4gICAgICAgICAgICAg ICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICAgICAg X2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+IA0KPiANCj4gQEAgLTQ1ODYsNDcgKzQ1OTYs NDcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYu ZW50ZXJSdWxlKGxvY2FsY3R4LCA1Niwgc2VsZi5SVUxFX3ZmckZvcm1TZXQpDQo+IA0KPiAgICAg ICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4 LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3MDANCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLnN0YXRlID0gNzAzDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxl ci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgdG9rZW4gPSBzZWxmLl9pbnB1dC5MQSgx KQ0KPiANCj4gICAgICAgICAgICAgIGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuRm9ybV06 DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2OTANCj4gDQo+ICsgICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDY5Mw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnZm ckZvcm1EZWZpbml0aW9uKCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAg ICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5Gb3JtTWFwXToNCj4gDQo+ IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDY5MQ0KPiANCj4gKyAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gNjk0DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudmZyRm9ybU1h cERlZmluaXRpb24oKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAg ICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLkltYWdlXToNCj4gDQo+IC0gICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDY5Mg0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gNjk1DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50SW1h Z2UoKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxp ZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLlZhcnN0b3JlXToNCj4gDQo+IC0gICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDY5Mw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gNjk2DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50VmFyU3RvcmVM aW5lYXIoKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAg ZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLkVmaXZhcnN0b3JlXToNCj4gDQo+IC0gICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDY5NA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gNjk3DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50VmFy U3RvcmVFZmkoKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAg ICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLk5hbWVWYWx1ZVZhclN0b3JlXToNCj4g DQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDY5NQ0KPiANCj4gKyAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gNjk4DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3Rh dGVtZW50VmFyU3RvcmVOYW1lVmFsdWUoKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+ IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLkRlZmF1bHRT dG9yZV06DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2OTYNCj4gDQo+ICsg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDY5OQ0KPiANCj4gICAgICAgICAgICAgICAgICBz ZWxmLnZmclN0YXRlbWVudERlZmF1bHRTdG9yZSgpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBh c3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuRGlz YWJsZUlmXToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDY5Nw0KPiANCj4g KyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzAwDQo+IA0KPiAgICAgICAgICAgICAgICAg IHNlbGYudmZyU3RhdGVtZW50RGlzYWJsZUlmRm9ybVNldCgpDQo+IA0KPiAgICAgICAgICAgICAg ICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJz ZXIuU3VwcHJlc3NJZl06DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA2OTgN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDcwMQ0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLnZmclN0YXRlbWVudFN1cHByZXNzSWZGb3JtU2V0KCkNCj4gDQo+ICAgICAg ICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5 bnRheFBhcnNlci5HdWlkT3BdOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g Njk5DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3MDINCj4gDQo+ICAgICAg ICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRFeHRlbnNpb24oKQ0KPiANCj4gICAgICAgICAg ICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxzZToNCj4gDQo+IEBAIC00NjQ2LDcg KzQ2NTYsNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAg ZGVmIF9faW5pdF9fKHNlbGYsIHBhcnNlciwgcGFyZW50OlBhcnNlclJ1bGVDb250ZXh0PU5vbmUs DQo+IGludm9raW5nU3RhdGU6aW50PS0xKToNCj4gDQo+ICAgICAgICAgICAgICBzdXBlcigpLl9f aW5pdF9fKHBhcmVudCwgaW52b2tpbmdTdGF0ZSkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBh cnNlciA9IHBhcnNlcg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuTm9kZSA9IFZmclRyZWVOb2Rl KEVGSV9JRlJfREVGQVVMVFNUT1JFX09QKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuTm9kZSA9 IElmclRyZWVOb2RlKEVGSV9JRlJfREVGQVVMVFNUT1JFX09QKQ0KPiANCj4gICAgICAgICAgICAg IHNlbGYuTiA9IE5vbmUgIyBUb2tlbg0KPiANCj4gICAgICAgICAgICAgIHNlbGYuUyA9IE5vbmUg IyBUb2tlbg0KPiANCj4gICAgICAgICAgICAgIHNlbGYuQSA9IE5vbmUgIyBUb2tlbg0KPiANCj4g QEAgLTQ3MDYsMzkgKzQ3MTYsMzkgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6 DQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUNCj4gDQo+ICAgICAgICAgIHRy eToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDcwMg0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuc3RhdGUgPSA3MDUNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5EZWZhdWx0U3RvcmUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDcwMw0K PiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3MDYNCj4gDQo+ICAgICAgICAgICAgICBs b2NhbGN0eC5OID0gc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nSWRlbnRpZmllcikN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gNzA0DQo+IA0KPiArICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDcwNw0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLkNvbW1hKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3MDUNCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzA4DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuUHJvbXB0KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSA3MDYNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzA5DQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAg ICAgICBzZWxmLnN0YXRlID0gNzA3DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDcx MA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlN0cmluZ1Rv a2VuKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3MDgNCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLnN0YXRlID0gNzExDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuT3BlblBhcmVuKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3 MDkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzEyDQo+IA0KPiAgICAgICAgICAg ICAgbG9jYWxjdHguUyA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+ IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gNzEwDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDcxMw0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy LkNsb3NlUGFyZW4pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDcxNQ0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3MTgNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9l cnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1 dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIF9sYT09VmZyU3ludGF4UGFyc2VyLkNvbW1h Og0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzExDQo+IA0KPiArICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSA3MTQNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSA3MTINCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDcxNQ0KPiAN Cj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5BdHRyaWJ1dGUp DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3MTMNCj4gDQo+ICsgICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDcxNg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gNzE0DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3MTcNCj4gDQo+ ICAgICAgICAgICAgICAgICAgbG9jYWxjdHguQSA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy Lk51bWJlcikNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDcxNw0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3MjANCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TZW1pY29sb24pDQo+IA0KPiAgICAgICAg ICBleGNlcHQgUmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAgICAgICAgICAgICAg bG9jYWxjdHguZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC00NzU0LDcgKzQ3NjQsNyBAQCBjbGFz cyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgZGVmIF9faW5pdF9fKHNl bGYsIHBhcnNlciwgcGFyZW50OlBhcnNlclJ1bGVDb250ZXh0PU5vbmUsDQo+IGludm9raW5nU3Rh dGU6aW50PS0xKToNCj4gDQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwg aW52b2tpbmdTdGF0ZSkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuTm9kZSA9IFZmclRyZWVOb2RlKEVGSV9JRlJfVkFSU1RP UkVfT1ApDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2RlID0gSWZyVHJlZU5vZGUoRUZJX0lG Ul9WQVJTVE9SRV9PUCkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLlROID0gTm9uZSAjIFRva2Vu DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5JRCA9IE5vbmUgIyBUb2tlbg0KPiANCj4gICAgICAg ICAgICAgIHNlbGYuU04gPSBOb25lICMgVG9rZW4NCj4gDQo+IEBAIC00ODMzLDkxICs0ODQzLDkx IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLl9s YSA9IDAgIyBUb2tlbiB0eXBlDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAg ICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNl bGYuc3RhdGUgPSA3MTkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzIyDQo+IA0K PiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVmFyc3RvcmUpDQo+IA0K PiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDczNg0KPiANCj4gKyAgICAgICAgICAgIHNlbGYu c3RhdGUgPSA3MzkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2Vs ZikNCj4gDQo+ICAgICAgICAgICAgICB0b2tlbiA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAg ICAgICAgICAgICAgaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5TdHJpbmdJZGVudGlmaWVy XToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDcyMA0KPiANCj4gKyAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gNzIzDQo+IA0KPiAgICAgICAgICAgICAgICAgIGxvY2Fs Y3R4LlROID0gc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nSWRlbnRpZmllcikNCj4g DQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDcyMQ0KPiANCj4gKyAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gNzI0DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0K PiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLlVpbnQ4XToNCj4g DQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDcyMg0KPiANCj4gKyAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gNzI1DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLlVpbnQ4KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gNzIzDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3MjYNCj4gDQo+ICAg ICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAg ICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtW ZnJTeW50YXhQYXJzZXIuVWludDE2XToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDcyNA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzI3DQo+IA0KPiAg ICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlVpbnQxNikNCj4gDQo+ IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDcyNQ0KPiANCj4gKyAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gNzI4DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAg ICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLlVpbnQzMl06DQo+IA0K PiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3MjYNCj4gDQo+ICsgICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDcyOQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5VaW50MzIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSA3MjcNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDczMA0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ICAg ICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1Zm clN5bnRheFBhcnNlci5VaW50NjRdOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gNzI4DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3MzENCj4gDQo+ICAg ICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVWludDY0KQ0KPiANCj4g LSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzI5DQo+IA0KPiArICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSA3MzINCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAg ICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuRUZJX0hJSV9EQVRFXToN Cj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDczMA0KPiANCj4gKyAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gNzMzDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLkVGSV9ISUlfREFURSkNCj4gDQo+IC0gICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDczMQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzM0 DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1h KQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0 b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLkVGSV9ISUlfVElNRV06DQo+IA0KPiAtICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSA3MzINCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDczNQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5FRklfSElJX1RJTUUpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3MzMN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDczNg0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ICAgICAgICAg ICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRh eFBhcnNlci5FRklfSElJX1JFRl06DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSA3MzQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDczNw0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5FRklfSElJX1JFRikNCj4g DQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDczNQ0KPiANCj4gKyAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gNzM4DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0K PiAgICAgICAgICAgICAgZWxzZToNCj4gDQo+ICAgICAgICAgICAgICAgICAgcmFpc2UgTm9WaWFi bGVBbHRFeGNlcHRpb24oc2VsZikNCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSA3NDINCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzQ1DQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAg X2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBpZiBfbGE9PVZmclN5 bnRheFBhcnNlci5WYXJJZDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDcz OA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzQxDQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlZhcklkKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gNzM5DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSA3NDINCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDc0MA0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzQzDQo+IA0KPiAgICAgICAgICAgICAg ICAgIGxvY2FsY3R4LklEID0gc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiAN Cj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzQxDQo+IA0KPiArICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSA3NDQNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAg IHNlbGYuc3RhdGUgPSA3NDQNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzQ3DQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTmFtZSkNCj4gDQo+ IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gNzQ1DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDc0OA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy LlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDc0Ng0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSA3NDkNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5TTiA9 IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlN0cmluZ0lkZW50aWZpZXIpDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDc0Nw0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUg PSA3NTANCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21t YSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gNzQ4DQo+IA0KPiArICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDc1MQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3lu dGF4UGFyc2VyLlV1aWQpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDc0OQ0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3NTINCj4gDQo+ICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSA3NTANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzUzDQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi5ndWlkRGVmaW5pdGlvbigpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDc1MQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3NTQNCj4gDQo+ICAg ICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TZW1pY29sb24pDQo+IA0KPiAg ICAgICAgICBleGNlcHQgUmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAgICAgICAg ICAgICAgbG9jYWxjdHguZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC00OTMzLDcgKzQ5NDMsNyBA QCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgZGVmIF9faW5p dF9fKHNlbGYsIHBhcnNlciwgcGFyZW50OlBhcnNlclJ1bGVDb250ZXh0PU5vbmUsDQo+IGludm9r aW5nU3RhdGU6aW50PS0xKToNCj4gDQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKHBh cmVudCwgaW52b2tpbmdTdGF0ZSkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNlciA9IHBh cnNlcg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuTm9kZSA9IFZmclRyZWVOb2RlKEVGSV9JRlJf VkFSU1RPUkVfRUZJX09QKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuTm9kZSA9IElmclRyZWVO b2RlKEVGSV9JRlJfVkFSU1RPUkVfRUZJX09QKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuVE4g PSBOb25lICMgVG9rZW4NCj4gDQo+ICAgICAgICAgICAgICBzZWxmLklEID0gTm9uZSAjIFRva2Vu DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5TTiA9IE5vbmUgIyBUb2tlbg0KPiANCj4gQEAgLTUw NDUsMTQzICs1MDU1LDE0MyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4g ICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4gdHlwZQ0KPiANCj4gICAgICAgICAgdHJ5Og0K PiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+ IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gNzUzDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDc1Ng0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy LkVmaXZhcnN0b3JlKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3NzANCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzczDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5f ZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgdG9rZW4gPSBzZWxmLl9p bnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJz ZXIuU3RyaW5nSWRlbnRpZmllcl06DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSA3NTQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDc1Nw0KPiANCj4gICAg ICAgICAgICAgICAgICBsb2NhbGN0eC5UTiA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlN0 cmluZ0lkZW50aWZpZXIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3NTUN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDc1OA0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ICAgICAgICAg ICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRh eFBhcnNlci5VaW50OF06DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3NTYN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDc1OQ0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5VaW50OCkNCj4gDQo+IC0gICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDc1Nw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gNzYwDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLkNvbW1hKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAg ICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLlVpbnQxNl06DQo+IA0KPiAtICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSA3NTgNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDc2MQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5VaW50MTYpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3NTkNCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDc2Mg0KPiANCj4gICAgICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ICAgICAgICAgICAg ICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBh cnNlci5VaW50MzJdOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzYwDQo+ IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3NjMNCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVWludDMyKQ0KPiANCj4gLSAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gNzYxDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSA3NjQNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJz ZXIuQ29tbWEpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAg ICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuVWludDY0XToNCj4gDQo+IC0gICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDc2Mg0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gNzY1DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLlVpbnQ2NCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDc2Mw0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzY2DQo+IA0KPiAgICAgICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gICAgICAgICAgICAg ICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFy c2VyLkVGSV9ISUlfREFURV06DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3 NjQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDc2Nw0KPiANCj4gICAgICAg ICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5FRklfSElJX0RBVEUpDQo+IA0K PiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3NjUNCj4gDQo+ICsgICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDc2OA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4g ICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5FRklfSElJX1RJTUVd Og0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzY2DQo+IA0KPiArICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSA3NjkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuRUZJX0hJSV9USU1FKQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gNzY3DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3 NzANCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29t bWEpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlm IHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuRUZJX0hJSV9SRUZdOg0KPiANCj4gLSAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gNzY4DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSA3NzENCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJz ZXIuRUZJX0hJSV9SRUYpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3NjkN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDc3Mg0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ICAgICAgICAg ICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAgICAgICAgICAg ICAgICAgIHJhaXNlIE5vVmlhYmxlQWx0RXhjZXB0aW9uKHNlbGYpDQo+IA0KPiANCj4gDQo+IC0g ICAgICAgICAgICBzZWxmLnN0YXRlID0gNzc2DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDc3OQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0K PiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAg ICAgICAgaWYgX2xhPT1WZnJTeW50YXhQYXJzZXIuVmFySWQ6DQo+IA0KPiAtICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSA3NzINCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDc3NQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5W YXJJZCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDc3Mw0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzc2DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSA3NzQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDc3Nw0K PiANCj4gICAgICAgICAgICAgICAgICBsb2NhbGN0eC5JRCA9IHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDc3NQ0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzc4DQo+IA0KPiAgICAgICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gDQo+IA0KPiAN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gNzc4DQo+IA0KPiArICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDc4MQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLkF0dHJpYnV0ZSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gNzc5DQo+ IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDc4Mg0KPiANCj4gICAgICAgICAgICAgIHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDc4MA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3ODMNCj4gDQo+ICAg ICAgICAgICAgICBzZWxmLnZmclZhclN0b3JlRWZpQXR0cigpDQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDc4NQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3ODgNCj4g DQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAg ICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIHdoaWxl IF9sYT09VmZyU3ludGF4UGFyc2VyLkJpdFdpc2VPcjoNCj4gDQo+IC0gICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDc4MQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzg0 DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkJpdFdp c2VPcikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDc4Mg0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzg1DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNl bGYudmZyVmFyU3RvcmVFZmlBdHRyKCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDc4Nw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzkwDQo+IA0KPiAg ICAgICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAg ICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gDQo+IA0KPiAtICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDc4OA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3 OTENCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gODA0DQo+IA0KPiArICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDgwNw0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3lu YyhzZWxmKQ0KPiANCj4gLSAgICAgICAgICAgIGxhXyA9IHNlbGYuX2ludGVycC5hZGFwdGl2ZVBy ZWRpY3Qoc2VsZi5faW5wdXQsNDUsc2VsZi5fY3R4KQ0KPiANCj4gKyAgICAgICAgICAgIGxhXyA9 IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRpY3Qoc2VsZi5faW5wdXQsNDYsc2VsZi5fY3R4KQ0K PiANCj4gICAgICAgICAgICAgIGlmIGxhXyA9PSAxOg0KPiANCj4gLSAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gNzg5DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3OTIN Cj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTmFtZSkN Cj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDc5MA0KPiANCj4gKyAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gNzkzDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSA3OTENCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDc5NA0KPiANCj4g ICAgICAgICAgICAgICAgICBsb2NhbGN0eC5TTiA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy LlN0cmluZ0lkZW50aWZpZXIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3 OTINCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDc5NQ0KPiANCj4gICAgICAg ICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ICAgICAg ICAgICAgICAgICAgcGFzcw0KPiANCj4gDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiBsYV8gPT0g MjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDc5Mw0KPiANCj4gKyAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gNzk2DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLk5hbWUpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSA3OTQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDc5Nw0KPiAN Cj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiAN Cj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gNzk1DQo+IA0KPiArICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSA3OTgNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuU3RyaW5nVG9rZW4pDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSA3OTYNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDc5OQ0KPiAN Cj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuUGFyZW4p DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3OTcNCj4gDQo+ICsgICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDgwMA0KPiANCj4gICAgICAgICAgICAgICAgICBsb2NhbGN0 eC5WTiA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDc5OA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gODAxDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLkNsb3NlUGFyZW4pDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA3OTkN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDgwMg0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IC0gICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDgwMA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gODAzDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLlZhclNpemUpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4MDENCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDgwNA0KPiANCj4gICAgICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gLSAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gODAyDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSA4MDUNCj4gDQo+ICAgICAgICAgICAgICAgICAgbG9jYWxjdHguTiA9IHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDgwMw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gODA2DQo+IA0KPiAgICAg ICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gICAg ICAgICAgICAgICAgICBwYXNzDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNl bGYuc3RhdGUgPSA4MDYNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gODA5DQo+IA0K PiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVXVpZCkNCj4gDQo+IC0g ICAgICAgICAgICBzZWxmLnN0YXRlID0gODA3DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDgxMA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRf XzUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDgwOA0KPiANCj4gKyAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSA4MTENCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmd1aWREZWZpbml0 aW9uKCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gODA5DQo+IA0KPiArICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDgxMg0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLlNlbWljb2xvbikNCj4gDQo+ICAgICAgICAgIGV4Y2VwdCBSZWNvZ25pdGlv bkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5leGNlcHRpb24g PSByZQ0KPiANCj4gQEAgLTUyMjAsNyArNTIzMCw3IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAo IFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgNjQsIHNlbGYu UlVMRV92ZnJWYXJTdG9yZUVmaUF0dHIpDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSA4MTENCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gODE0 DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0K PiANCj4gICAgICAgICAgZXhjZXB0IFJlY29nbml0aW9uRXhjZXB0aW9uIGFzIHJlOg0KPiANCj4g ICAgICAgICAgICAgIGxvY2FsY3R4LmV4Y2VwdGlvbiA9IHJlDQo+IA0KPiBAQCAtNTIzNiw3ICs1 MjQ2LDcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIGRl ZiBfX2luaXRfXyhzZWxmLCBwYXJzZXIsIHBhcmVudDpQYXJzZXJSdWxlQ29udGV4dD1Ob25lLA0K PiBpbnZva2luZ1N0YXRlOmludD0tMSk6DQo+IA0KPiAgICAgICAgICAgICAgc3VwZXIoKS5fX2lu aXRfXyhwYXJlbnQsIGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5wYXJz ZXIgPSBwYXJzZXINCj4gDQo+IC0gICAgICAgICAgICBzZWxmLk5vZGUgPSBWZnJUcmVlTm9kZShF RklfSUZSX1ZBUlNUT1JFX05BTUVfVkFMVUVfT1ApDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5O b2RlID0gSWZyVHJlZU5vZGUoRUZJX0lGUl9WQVJTVE9SRV9OQU1FX1ZBTFVFX09QKQ0KPiANCj4g ICAgICAgICAgICAgIHNlbGYuU04gPSBOb25lICMgVG9rZW4NCj4gDQo+ICAgICAgICAgICAgICBz ZWxmLklEID0gTm9uZSAjIFRva2VuDQo+IA0KPiANCj4gDQo+IEBAIC01MzE0LDU3ICs1MzI0LDU3 IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLl9s YSA9IDAgIyBUb2tlbiB0eXBlDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAg ICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNl bGYuc3RhdGUgPSA4MTMNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gODE2DQo+IA0K PiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTmFtZVZhbHVlVmFyU3Rv cmUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDgxNA0KPiANCj4gKyAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSA4MTcNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5TTiA9IHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlN0cmluZ0lkZW50aWZpZXIpDQo+IA0KPiAtICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDgxNQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4 MTgNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gODIwDQo+IA0KPiArICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDgyMw0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3lu YyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0K PiAgICAgICAgICAgICAgaWYgX2xhPT1WZnJTeW50YXhQYXJzZXIuVmFySWQ6DQo+IA0KPiAtICAg ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4MTYNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDgxOQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5WYXJJZCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDgxNw0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gODIwDQo+IA0KPiAgICAgICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSA4MTgNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDgyMQ0KPiANCj4gICAgICAgICAgICAgICAgICBsb2NhbGN0eC5JRCA9IHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDgxOQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gODIyDQo+IA0KPiAg ICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4g DQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gODI5DQo+IA0KPiArICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDgzMg0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2Vyckhh bmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxB KDEpDQo+IA0KPiAgICAgICAgICAgICAgd2hpbGUgVHJ1ZToNCj4gDQo+IC0gICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDgyMg0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g ODI1DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk5h bWUpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4MjMNCj4gDQo+ICsgICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDgyNg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gODI0DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4MjcNCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nVG9r ZW4pDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4MjUNCj4gDQo+ICsgICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDgyOA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuUGFyZW4pDQo+IA0KPiAtICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSA4MjYNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDgy OQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1i ZXIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4MjcNCj4gDQo+ICsgICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDgzMA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gODI4DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g ODMxDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNv bW1hKQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gODM0DQo+IA0KPiAgICAg ICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAg ICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgICAgICBp ZiBub3QgKF9sYT09VmZyU3ludGF4UGFyc2VyLk5hbWUpOg0KPiANCj4gICAgICAgICAgICAgICAg ICAgICAgYnJlYWsNCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4MzMN Cj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gODM2DQo+IA0KPiAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVXVpZCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LnN0YXRlID0gODM0DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDgzNw0KPiANCj4g ICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDgzNQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUg PSA4MzgNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmd1aWREZWZpbml0aW9uKCkNCj4gDQo+IC0g ICAgICAgICAgICBzZWxmLnN0YXRlID0gODM2DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDgzOQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlNl bWljb2xvbikNCj4gDQo+ICAgICAgICAgIGV4Y2VwdCBSZWNvZ25pdGlvbkV4Y2VwdGlvbiBhcyBy ZToNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5leGNlcHRpb24gPSByZQ0KPiANCj4gQEAg LTUzODAsNyArNTM5MCw3IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAg ICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRl eHQ9Tm9uZSwNCj4gaW52b2tpbmdTdGF0ZTppbnQ9LTEpOg0KPiANCj4gICAgICAgICAgICAgIHN1 cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAg IHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5Ob2RlID0gVmZy VHJlZU5vZGUoRUZJX0lGUl9ESVNBQkxFX0lGX09QKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYu Tm9kZSA9IElmclRyZWVOb2RlKEVGSV9JRlJfRElTQUJMRV9JRl9PUCkNCj4gDQo+IA0KPiANCj4g ICAgICAgICAgZGVmIERpc2FibGVJZihzZWxmKToNCj4gDQo+ICAgICAgICAgICAgICByZXR1cm4g c2VsZi5nZXRUb2tlbihWZnJTeW50YXhQYXJzZXIuRGlzYWJsZUlmLCAwKQ0KPiANCj4gQEAgLTU0 MjAsMTcgKzU0MzAsMTcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAg ICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCA2OCwgc2VsZi5SVUxFX3ZmclN0YXRlbWVu dERpc2FibGVJZkZvcm1TZXQpDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAg ICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNl bGYuc3RhdGUgPSA4MzgNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gODQxDQo+IA0K PiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRGlzYWJsZUlmKQ0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4MzkNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LnZmclN0YXRlbWVudEV4cHJlc3Npb24oKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUg PSA4NDANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gODQyDQo+IA0KPiArICAgICAg ICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uKGxvY2FsY3R4Lk5vZGUpDQo+IA0KPiAr ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg0Mw0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLlNlbWljb2xvbikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0 YXRlID0gODQxDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg0NA0KPiANCj4gICAg ICAgICAgICAgIHNlbGYudmZyRm9ybVNldExpc3QobG9jYWxjdHguTm9kZSkNCj4gDQo+IC0gICAg ICAgICAgICBzZWxmLnN0YXRlID0gODQyDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDg0NQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkVuZElm KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4NDMNCj4gDQo+ICsgICAgICAgICAg ICBzZWxmLnN0YXRlID0gODQ2DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuU2VtaWNvbG9uKQ0KPiANCj4gICAgICAgICAgZXhjZXB0IFJlY29nbml0aW9uRXhj ZXB0aW9uIGFzIHJlOg0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LmV4Y2VwdGlvbiA9IHJl DQo+IA0KPiBAQCAtNTQ0Niw3ICs1NDU2LDcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFy c2VyICk6DQo+ICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJzZXIsIHBhcmVudDpQYXJz ZXJSdWxlQ29udGV4dD1Ob25lLA0KPiBpbnZva2luZ1N0YXRlOmludD0tMSk6DQo+IA0KPiAgICAg ICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhwYXJlbnQsIGludm9raW5nU3RhdGUpDQo+IA0KPiAg ICAgICAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJzZXINCj4gDQo+IC0gICAgICAgICAgICBzZWxm Lk5vZGUgPSBWZnJUcmVlTm9kZShFRklfSUZSX1NVUFBSRVNTX0lGX09QKQ0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuTm9kZSA9IElmclRyZWVOb2RlKEVGSV9JRlJfU1VQUFJFU1NfSUZfT1ApDQo+ IA0KPiANCj4gDQo+ICAgICAgICAgIGRlZiBTdXBwcmVzc0lmKHNlbGYpOg0KPiANCj4gICAgICAg ICAgICAgIHJldHVybiBzZWxmLmdldFRva2VuKFZmclN5bnRheFBhcnNlci5TdXBwcmVzc0lmLCAw KQ0KPiANCj4gQEAgLTU0ODYsMTcgKzU0OTYsMTcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICgg UGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCA3MCwgc2VsZi5S VUxFX3ZmclN0YXRlbWVudFN1cHByZXNzSWZGb3JtU2V0KQ0KPiANCj4gICAgICAgICAgdHJ5Og0K PiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+ IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gODQ1DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDg0OA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy LlN1cHByZXNzSWYpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg0Ng0KPiANCj4g LSAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50RXhwcmVzc2lvbigpDQo+IA0KPiAtICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDg0Nw0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4 NDkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudEV4cHJlc3Npb24obG9jYWxj dHguTm9kZSkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gODUwDQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU2VtaWNvbG9uKQ0KPiANCj4gLSAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSA4NDgNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRl ID0gODUxDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi52ZnJGb3JtU2V0TGlzdChsb2NhbGN0eC5O b2RlKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4NDkNCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLnN0YXRlID0gODUyDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuRW5kSWYpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg1MA0K PiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4NTMNCj4gDQo+ICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TZW1pY29sb24pDQo+IA0KPiAgICAgICAgICBleGNl cHQgUmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAgICAgICAgICAgICAgbG9jYWxj dHguZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC01NTQ1LDM1ICs1NTU1LDM1IEBAIGNsYXNzIFZm clN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLmVudGVyUnVsZShsb2Nh bGN0eCwgNzIsIHNlbGYuUlVMRV9ndWlkU3ViRGVmaW5pdGlvbikNCj4gDQo+ICAgICAgICAgIHRy eToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg1Mg0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuc3RhdGUgPSA4NTUNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg1Mw0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4NTYNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRl ID0gODU0DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg1Nw0KPiANCj4gICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAg ICAgICBzZWxmLnN0YXRlID0gODU1DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg1 OA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4NTYNCj4gDQo+ICsgICAgICAgICAgICBz ZWxmLnN0YXRlID0gODU5DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4NTcNCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gODYwDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDg1OA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4NjENCj4gDQo+ICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDg1OQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4 NjINCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gODYwDQo+IA0KPiArICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDg2Mw0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gODYxDQo+IA0K PiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg2NA0KPiANCj4gICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSA4NjINCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gODY1DQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSA4NjMNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0g ODY2DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEp DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg2NA0KPiANCj4gKyAgICAgICAgICAg IHNlbGYuc3RhdGUgPSA4NjcNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg2NQ0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4NjgNCj4gDQo+ICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0 YXRlID0gODY2DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg2OQ0KPiANCj4gICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+ICAgICAg ICAgIGV4Y2VwdCBSZWNvZ25pdGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAgICAgICAg ICBsb2NhbGN0eC5leGNlcHRpb24gPSByZQ0KPiANCj4gQEAgLTU1ODksNyArNTU5OSw3IEBAIGNs YXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBkZWYgX19pbml0X18o c2VsZiwgcGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tpbmdT dGF0ZTppbnQ9LTEpOg0KPiANCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50 LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2Vy DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5Ob2RlID0gVmZyVHJlZU5vZGUoKQ0KPiANCj4gKyAg ICAgICAgICAgIHNlbGYuTm9kZSA9IElmclRyZWVOb2RlKCkNCj4gDQo+ICAgICAgICAgICAgICBz ZWxmLkd1aWQgPSBFRklfR1VJRCgpDQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGRlZiBPcGVuQnJh Y2Uoc2VsZiwgaTppbnQ9Tm9uZSk6DQo+IA0KPiBAQCAtNTYzOCwzOSArNTY0OCwzOSBAQCBjbGFz cyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5lbnRlclJ1bGUo bG9jYWxjdHgsIDc0LCBzZWxmLlJVTEVfZ3VpZERlZmluaXRpb24pDQo+IA0KPiAgICAgICAgICB0 cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4NjgNCj4gDQo+ICsgICAgICAgICAgICBz ZWxmLnN0YXRlID0gODcxDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuT3BlbkJyYWNlKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4NjkNCj4g DQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gODcyDQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYu c3RhdGUgPSA4NzANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gODczDQo+IA0KPiAg ICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDg3MQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUg PSA4NzQNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1i ZXIpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg3Mg0KPiANCj4gKyAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSA4NzUNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gODczDQo+ IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg3Ng0KPiANCj4gICAgICAgICAgICAgIHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LnN0YXRlID0gODc0DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg3Nw0KPiANCj4g ICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gLSAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSA4ODANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRl ID0gODgzDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+ IA0KPiAgICAgICAgICAgICAgdG9rZW4gPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAg ICAgICAgIGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuT3BlbkJyYWNlXToNCj4gDQo+IC0g ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg3NQ0KPiANCj4gKyAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gODc4DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3lu dGF4UGFyc2VyLk9wZW5CcmFjZSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDg3Ng0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gODc5DQo+IA0KPiAgICAg ICAgICAgICAgICAgIHNlbGYuZ3VpZFN1YkRlZmluaXRpb24obG9jYWxjdHguR3VpZCkNCj4gDQo+ IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg3Nw0KPiANCj4gKyAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gODgwDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLkNsb3NlQnJhY2UpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4g DQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuTnVtYmVyXToN Cj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg3OQ0KPiANCj4gKyAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gODgyDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZ3Vp ZFN1YkRlZmluaXRpb24obG9jYWxjdHguR3VpZCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFz cw0KPiANCj4gICAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAgICAgICAgICAgICAgICAgIHJhaXNl IE5vVmlhYmxlQWx0RXhjZXB0aW9uKHNlbGYpDQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLnN0YXRlID0gODgyDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg4NQ0KPiAN Cj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3NlQnJhY2UpDQo+ IA0KPiAgICAgICAgICBleGNlcHQgUmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAg ICAgICAgICAgICAgbG9jYWxjdHguZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC01NzE4LDEzICs1 NzI4LDEzIEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBz ZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgNzYsIHNlbGYuUlVMRV9nZXRTdHJpbmdJZCkNCj4gDQo+ ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9j YWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg4NA0KPiANCj4gKyAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSA4ODcNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNo KFZmclN5bnRheFBhcnNlci5TdHJpbmdUb2tlbikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0 YXRlID0gODg1DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg4OA0KPiANCj4gICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+IC0g ICAgICAgICAgICBzZWxmLnN0YXRlID0gODg2DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDg4OQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51 bWJlcikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gODg3DQo+IA0KPiArICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDg5MA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLkNsb3NlUGFyZW4pDQo+IA0KPiAgICAgICAgICBleGNlcHQgUmVjb2duaXRp b25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHguZXhjZXB0aW9u ID0gcmUNCj4gDQo+IEBAIC01NzM3LDEyICs1NzQ3LDEyIEBAIGNsYXNzIFZmclN5bnRheFBhcnNl ciAoIFBhcnNlciApOg0KPiANCj4gDQo+ICAgICAgY2xhc3MgVmZyUXVlc3Rpb25IZWFkZXJDb250 ZXh0KFBhcnNlclJ1bGVDb250ZXh0KToNCj4gDQo+IA0KPiANCj4gLSAgICAgICAgZGVmIF9faW5p dF9fKHNlbGYsIHBhcnNlciwgcGFyZW50OlBhcnNlclJ1bGVDb250ZXh0PU5vbmUsDQo+IGludm9r aW5nU3RhdGU6aW50PS0xLCBPcE9iaj1Ob25lLCBRVHlwZT1Ob25lKToNCj4gDQo+ICsgICAgICAg IGRlZiBfX2luaXRfXyhzZWxmLCBwYXJzZXIsIHBhcmVudDpQYXJzZXJSdWxlQ29udGV4dD1Ob25l LA0KPiBpbnZva2luZ1N0YXRlOmludD0tMSwgTm9kZT1Ob25lLCBRVHlwZT1Ob25lKToNCj4gDQo+ ICAgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwgaW52b2tpbmdTdGF0ZSkNCj4g DQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0KPiANCj4gLSAgICAgICAgICAg IHNlbGYuT3BPYmogPSBOb25lDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2RlID0gTm9uZQ0K PiANCj4gICAgICAgICAgICAgIHNlbGYuUVR5cGUgPSBOb25lDQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5PcE9iaiA9IE9wT2JqDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2RlID0gTm9kZQ0K PiANCj4gICAgICAgICAgICAgIHNlbGYuUVR5cGUgPSBRVHlwZQ0KPiANCj4gDQo+IA0KPiAgICAg ICAgICBkZWYgdmZyUXVlc3Rpb25CYXNlSW5mbyhzZWxmKToNCj4gDQo+IEBAIC01NzY1LDE2ICs1 Nzc1LDE2IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiANCj4gDQo+IA0K PiANCj4gDQo+IA0KPiAtICAgIGRlZiB2ZnJRdWVzdGlvbkhlYWRlcihzZWxmLCBPcE9iaiwgUVR5 cGUpOg0KPiANCj4gKyAgICBkZWYgdmZyUXVlc3Rpb25IZWFkZXIoc2VsZiwgTm9kZSwgUVR5cGUp Og0KPiANCj4gDQo+IA0KPiAtICAgICAgICBsb2NhbGN0eCA9IFZmclN5bnRheFBhcnNlci5WZnJR dWVzdGlvbkhlYWRlckNvbnRleHQoc2VsZiwgc2VsZi5fY3R4LA0KPiBzZWxmLnN0YXRlLCBPcE9i aiwgUVR5cGUpDQo+IA0KPiArICAgICAgICBsb2NhbGN0eCA9IFZmclN5bnRheFBhcnNlci5WZnJR dWVzdGlvbkhlYWRlckNvbnRleHQoc2VsZiwgc2VsZi5fY3R4LA0KPiBzZWxmLnN0YXRlLCBOb2Rl LCBRVHlwZSkNCj4gDQo+ICAgICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCA3OCwgc2Vs Zi5SVUxFX3ZmclF1ZXN0aW9uSGVhZGVyKQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAg ICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAg ICAgICBzZWxmLnN0YXRlID0gODg5DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi52ZnJRdWVzdGlv bkJhc2VJbmZvKE9wT2JqLCBRVHlwZSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0g ODkwDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRIZWFkZXIoT3BPYmopDQo+ IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg5Mg0KPiANCj4gKyAgICAgICAgICAgIHNl bGYudmZyUXVlc3Rpb25CYXNlSW5mbyhOb2RlLCBRVHlwZSkNCj4gDQo+ICsgICAgICAgICAgICBz ZWxmLnN0YXRlID0gODkzDQo+IA0KPiArICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRIZWFk ZXIoTm9kZSkNCj4gDQo+ICAgICAgICAgIGV4Y2VwdCBSZWNvZ25pdGlvbkV4Y2VwdGlvbiBhcyBy ZToNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5leGNlcHRpb24gPSByZQ0KPiANCj4gICAg ICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIucmVwb3J0RXJyb3Ioc2VsZiwgcmUpDQo+IA0KPiBA QCAtNTc4NiwxNyArNTc5NiwxOSBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToN Cj4gDQo+IA0KPiAgICAgIGNsYXNzIFZmclF1ZXN0aW9uQmFzZUluZm9Db250ZXh0KFBhcnNlclJ1 bGVDb250ZXh0KToNCj4gDQo+IA0KPiANCj4gLSAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBh cnNlciwgcGFyZW50OlBhcnNlclJ1bGVDb250ZXh0PU5vbmUsDQo+IGludm9raW5nU3RhdGU6aW50 PS0xLCBPcE9iaj1Ob25lLCBRVHlwZT1Ob25lKToNCj4gDQo+ICsgICAgICAgIGRlZiBfX2luaXRf XyhzZWxmLCBwYXJzZXIsIHBhcmVudDpQYXJzZXJSdWxlQ29udGV4dD1Ob25lLA0KPiBpbnZva2lu Z1N0YXRlOmludD0tMSwgTm9kZT1Ob25lLCBRVHlwZT1Ob25lKToNCj4gDQo+ICAgICAgICAgICAg ICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwgaW52b2tpbmdTdGF0ZSkNCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuT3BPYmog PSBOb25lDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2RlID0gTm9uZQ0KPiANCj4gICAgICAg ICAgICAgIHNlbGYuUVR5cGUgPSBOb25lDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5CYXNlSW5m byA9IEVGSV9WQVJTVE9SRV9JTkZPKCkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLlFJZCA9IEVG SV9RVUVTVElPTl9JRF9JTlZBTElEDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5DaGVja0ZsYWcg PSBUcnVlDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5RTmFtZSA9IE5vbmUNCj4gDQo+ICsgICAg ICAgICAgICBzZWxmLlZhcklkU3RyID0gJycNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLlFOID0g Tm9uZSAjIFRva2VuDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5JRCA9IE5vbmUgIyBUb2tlbg0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuT3BPYmogPSBPcE9iag0KPiANCj4gKyAgICAgICAgICAg IHNlbGYuTm9kZSA9IE5vZGUNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLlFUeXBlID0gUVR5cGUN Cj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVmIE5hbWUoc2VsZik6DQo+IA0KPiBAQCAtNTgzNiw1 MiArNTg0OCw1MiBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gDQo+IA0K PiANCj4gDQo+IA0KPiANCj4gLSAgICBkZWYgdmZyUXVlc3Rpb25CYXNlSW5mbyhzZWxmLCBPcE9i aiwgUVR5cGUpOg0KPiANCj4gKyAgICBkZWYgdmZyUXVlc3Rpb25CYXNlSW5mbyhzZWxmLCBOb2Rl LCBRVHlwZSk6DQo+IA0KPiANCj4gDQo+IC0gICAgICAgIGxvY2FsY3R4ID0gVmZyU3ludGF4UGFy c2VyLlZmclF1ZXN0aW9uQmFzZUluZm9Db250ZXh0KHNlbGYsIHNlbGYuX2N0eCwNCj4gc2VsZi5z dGF0ZSwgT3BPYmosIFFUeXBlKQ0KPiANCj4gKyAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50YXhQ YXJzZXIuVmZyUXVlc3Rpb25CYXNlSW5mb0NvbnRleHQoc2VsZiwgc2VsZi5fY3R4LA0KPiBzZWxm LnN0YXRlLCBOb2RlLCBRVHlwZSkNCj4gDQo+ICAgICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2Fs Y3R4LCA4MCwgc2VsZi5SVUxFX3ZmclF1ZXN0aW9uQmFzZUluZm8pDQo+IA0KPiAgICAgICAgICBz ZWxmLl9sYSA9IDAgIyBUb2tlbiB0eXBlDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSA4OTYNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gODk5 DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAg ICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBp ZiBfbGE9PVZmclN5bnRheFBhcnNlci5OYW1lOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gODkyDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4OTUNCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTmFtZSkNCj4g DQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg5Mw0KPiANCj4gKyAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gODk2DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSA4OTQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg5Nw0KPiANCj4gICAg ICAgICAgICAgICAgICBsb2NhbGN0eC5RTiA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlN0 cmluZ0lkZW50aWZpZXIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4OTUN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDg5OA0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IA0KPiANCj4g DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDkwMw0KPiANCj4gKyAgICAgICAgICAg IHNlbGYuc3RhdGUgPSA5MDYNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5 bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiAN Cj4gICAgICAgICAgICAgIGlmIF9sYT09VmZyU3ludGF4UGFyc2VyLlZhcklkOg0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gODk4DQo+IA0KPiArICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSA5MDENCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuVmFySWQpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA4OTkN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDkwMg0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gLSAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gOTAwDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSA5MDMNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi52ZnJTdG9yYWdlVmFySWQobG9j YWxjdHguQmFzZUluZm8sIGxvY2FsY3R4LkNoZWNrRmxhZykNCj4gDQo+IC0gICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDkwMQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g OTA0DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNv bW1hKQ0KPiANCj4gDQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gOTA5 DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDkxMg0KPiANCj4gICAgICAgICAgICAg IHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9IHNl bGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYgX2xhPT1WZnJTeW50YXhQYXJz ZXIuUXVlc3Rpb25JZDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDkwNQ0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTA4DQo+IA0KPiAgICAgICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlF1ZXN0aW9uSWQpDQo+IA0KPiAtICAg ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5MDYNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDkwOQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5UX181KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTA3DQo+ IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5MTANCj4gDQo+ICAgICAgICAgICAg ICAgICAgbG9jYWxjdHguSUQgPSBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+ IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5MDgNCj4gDQo+ICsgICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDkxMQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNo KFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiBAQCAtNTg5Niwx MSArNTkwOCwxMSBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gDQo+IA0K PiAgICAgIGNsYXNzIFZmclN0YXRlbWVudEhlYWRlckNvbnRleHQoUGFyc2VyUnVsZUNvbnRleHQp Og0KPiANCj4gDQo+IA0KPiAtICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyc2VyLCBwYXJl bnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tpbmdTdGF0ZTppbnQ9LTEsIE9wT2Jq PU5vbmUpOg0KPiANCj4gKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcnNlciwgcGFyZW50 OlBhcnNlclJ1bGVDb250ZXh0PU5vbmUsDQo+IGludm9raW5nU3RhdGU6aW50PS0xLCBOb2RlPU5v bmUpOg0KPiANCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZva2lu Z1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAt ICAgICAgICAgICAgc2VsZi5PcE9iaiA9IE5vbmUNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLk9w T2JqID0gT3BPYmoNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5vZGUgPSBOb25lDQo+IA0KPiAr ICAgICAgICAgICAgc2VsZi5Ob2RlID0gTm9kZQ0KPiANCj4gDQo+IA0KPiAgICAgICAgICBkZWYg UHJvbXB0KHNlbGYpOg0KPiANCj4gICAgICAgICAgICAgIHJldHVybiBzZWxmLmdldFRva2VuKFZm clN5bnRheFBhcnNlci5Qcm9tcHQsIDApDQo+IA0KPiBAQCAtNTk0NywzNyArNTk1OSwzNyBAQCBj bGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiAN Cj4gLSAgICBkZWYgdmZyU3RhdGVtZW50SGVhZGVyKHNlbGYsIE9wT2JqKToNCj4gDQo+ICsgICAg ZGVmIHZmclN0YXRlbWVudEhlYWRlcihzZWxmLCBOb2RlKToNCj4gDQo+IA0KPiANCj4gLSAgICAg ICAgbG9jYWxjdHggPSBWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50SGVhZGVyQ29udGV4dChz ZWxmLCBzZWxmLl9jdHgsDQo+IHNlbGYuc3RhdGUsIE9wT2JqKQ0KPiANCj4gKyAgICAgICAgbG9j YWxjdHggPSBWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50SGVhZGVyQ29udGV4dChzZWxmLCBz ZWxmLl9jdHgsDQo+IHNlbGYuc3RhdGUsIE5vZGUpDQo+IA0KPiAgICAgICAgICBzZWxmLmVudGVy UnVsZShsb2NhbGN0eCwgODIsIHNlbGYuUlVMRV92ZnJTdGF0ZW1lbnRIZWFkZXIpDQo+IA0KPiAg ICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2Fs Y3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5MTENCj4gDQo+ICsgICAg ICAgICAgICBzZWxmLnN0YXRlID0gOTE0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuUHJvbXB0KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5 MTINCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTE1DQo+IA0KPiAgICAgICAgICAg ICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLnN0YXRlID0gOTEzDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDkxNg0KPiAN Cj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlN0cmluZ1Rva2VuKQ0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5MTQNCj4gDQo+ICsgICAgICAgICAgICBz ZWxmLnN0YXRlID0gOTE3DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuT3BlblBhcmVuKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5MTUNCj4g DQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTE4DQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYu c3RhdGUgPSA5MTYNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTE5DQo+IA0KPiAg ICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ2xvc2VQYXJlbikNCj4gDQo+ IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gOTE3DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDkyMA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy LkNvbW1hKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5MTgNCj4gDQo+ICsgICAg ICAgICAgICBzZWxmLnN0YXRlID0gOTIxDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuSGVscCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gOTE5 DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDkyMg0KPiANCj4gICAgICAgICAgICAg IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDkyMA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5MjMNCj4gDQo+ ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdUb2tlbikNCj4g DQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gOTIxDQo+IA0KPiArICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDkyNA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLk9wZW5QYXJlbikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gOTIyDQo+IA0K PiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDkyNQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0 YXRlID0gOTIzDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDkyNg0KPiANCj4gICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3NlUGFyZW4pDQo+IA0KPiAg ICAgICAgICBleGNlcHQgUmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAgICAgICAg ICAgICAgbG9jYWxjdHguZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC02MDM5LDQ3ICs2MDUxLDQ3 IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBsb2NhbGN0 eCA9IFZmclN5bnRheFBhcnNlci5RdWVzdGlvbmhlYWRlckZsYWdzRmllbGRDb250ZXh0KHNlbGYs DQo+IHNlbGYuX2N0eCwgc2VsZi5zdGF0ZSkNCj4gDQo+ICAgICAgICAgIHNlbGYuZW50ZXJSdWxl KGxvY2FsY3R4LCA4NCwgc2VsZi5SVUxFX3F1ZXN0aW9uaGVhZGVyRmxhZ3NGaWVsZCkNCj4gDQo+ ICAgICAgICAgIHRyeToNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gOTMzDQo+IA0K PiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDkzNg0KPiANCj4gICAgICAgICAgICAgIHNlbGYu X2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIHRva2VuID0gc2VsZi5f aW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFy c2VyLlJlYWRPbmx5RmxhZ106DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRl ckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDky NQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTI4DQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlJlYWRPbmx5RmxhZykNCj4gDQo+ ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4g W1ZmclN5bnRheFBhcnNlci5JbnRlcmFjdGl2ZUZsYWddOg0KPiANCj4gICAgICAgICAgICAgICAg ICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDIpDQo+IA0KPiAtICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSA5MjYNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDky OQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5JbnRl cmFjdGl2ZUZsYWcpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAg ICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuUmVzZXRSZXF1aXJlZEZsYWddOg0K PiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDMpDQo+ IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5MjcNCj4gDQo+ICsgICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDkzMA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNo KFZmclN5bnRheFBhcnNlci5SZXNldFJlcXVpcmVkRmxhZykNCj4gDQo+ICAgICAgICAgICAgICAg ICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNl ci5SZXN0U3R5bGVGbGFnXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVy QWx0KGxvY2FsY3R4LCA0KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTI4 DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5MzENCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuUmVzdFN0eWxlRmxhZykNCj4gDQo+ ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4g W1ZmclN5bnRheFBhcnNlci5SZWNvbm5lY3RSZXF1aXJlZEZsYWddOg0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDUpDQo+IA0KPiAtICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSA5MjkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDkzMg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5SZWNvbm5lY3RSZXF1aXJlZEZsYWcpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4g DQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuT3B0aW9uT25s eUZsYWddOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxj dHgsIDYpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5MzANCj4gDQo+ICsg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDkzMw0KPiANCj4gICAgICAgICAgICAgICAgICBs b2NhbGN0eC5PID0gc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3B0aW9uT25seUZsYWcpDQo+ IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2Vu IGluIFtWZnJTeW50YXhQYXJzZXIuTlZBY2Nlc3NGbGFnXToNCj4gDQo+ICAgICAgICAgICAgICAg ICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCA3KQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gOTMxDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5 MzQNCj4gDQo+ICAgICAgICAgICAgICAgICAgbG9jYWxjdHguTiA9IHNlbGYubWF0Y2goVmZyU3lu dGF4UGFyc2VyLk5WQWNjZXNzRmxhZykNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiAN Cj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5MYXRlQ2hlY2tG bGFnXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4 LCA4KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTMyDQo+IA0KPiArICAg ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5MzUNCj4gDQo+ICAgICAgICAgICAgICAgICAgbG9j YWxjdHguTCA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkxhdGVDaGVja0ZsYWcpDQo+IA0K PiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbHNlOg0KPiANCj4g QEAgLTYxNzcsMzYgKzYxODksMzYgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6 DQo+ICAgICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCA4Niwgc2VsZi5SVUxFX3ZmclN0 b3JhZ2VWYXJJZCkNCj4gDQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUNCj4g DQo+ICAgICAgICAgIHRyeToNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gOTQ3DQo+ IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDk1MA0KPiANCj4gICAgICAgICAgICAgIHNl bGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gLSAgICAgICAgICAgIGxhXyA9IHNlbGYu X2ludGVycC5hZGFwdGl2ZVByZWRpY3Qoc2VsZi5faW5wdXQsNTQsc2VsZi5fY3R4KQ0KPiANCj4g KyAgICAgICAgICAgIGxhXyA9IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRpY3Qoc2VsZi5faW5w dXQsNTUsc2VsZi5fY3R4KQ0KPiANCj4gICAgICAgICAgICAgIGlmIGxhXyA9PSAxOg0KPiANCj4g ICAgICAgICAgICAgICAgICBsb2NhbGN0eCA9IFZmclN5bnRheFBhcnNlci5WZnJTdG9yYWdlVmFy SWRSdWxlMUNvbnRleHQoc2VsZiwgbG9jYWxjdHgpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNl bGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDkzNQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTM4DQo+ IA0KPiAgICAgICAgICAgICAgICAgIGxvY2FsY3R4LlNOMSA9IHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLlN0cmluZ0lkZW50aWZpZXIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSA5MzYNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDkzOQ0KPiANCj4g ICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuQnJhY2tldCkN Cj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDkzNw0KPiANCj4gKyAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gOTQwDQo+IA0KPiAgICAgICAgICAgICAgICAgIGxvY2FsY3R4 LkkgPSBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSA5MzgNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDk0MQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5DbG9zZUJyYWNrZXQpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+IA0KPiAN Cj4gICAgICAgICAgICAgIGVsaWYgbGFfID09IDI6DQo+IA0KPiAgICAgICAgICAgICAgICAgIGxv Y2FsY3R4ID0gVmZyU3ludGF4UGFyc2VyLlZmclN0b3JhZ2VWYXJJZFJ1bGUyQ29udGV4dChzZWxm LCBsb2NhbGN0eCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxv Y2FsY3R4LCAyKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTM5DQo+IA0K PiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5NDINCj4gDQo+ICAgICAgICAgICAgICAg ICAgbG9jYWxjdHguU04yID0gc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nSWRlbnRp ZmllcikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDk0NA0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTQ3DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNl bGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICBfbGEgPSBz ZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgICAgICB3aGlsZSBfbGE9PVZmclN5 bnRheFBhcnNlci5Eb3Q6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g OTQwDQo+IA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTQzDQo+IA0KPiAg ICAgICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Eb3QpDQo+IA0K PiAtICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTQxDQo+IA0KPiArICAgICAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gOTQ0DQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmFycmF5TmFtZSgpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g OTQ2DQo+IA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTQ5DQo+IA0KPiAg ICAgICAgICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAg ICAgICAgICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiANCj4gDQo+ IEBAIC02MjI3LDkgKzYyMzksOSBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToN Cj4gICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcnNlciwgcGFyZW50OlBhcnNlclJ1bGVD b250ZXh0PU5vbmUsDQo+IGludm9raW5nU3RhdGU6aW50PS0xKToNCj4gDQo+ICAgICAgICAgICAg ICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwgaW52b2tpbmdTdGF0ZSkNCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuVmFsdWUg PSBFRklfSUZSX1RZUEVfVkFMVUUoKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuVmFsdWVMaXN0 ID0gW10NCj4gDQo+ICAgICAgICAgICAgICBzZWxmLkxpc3RUeXBlID0gRmFsc2UNCj4gDQo+ICsg ICAgICAgICAgICBzZWxmLlZhbHVlVHlwZSA9IE5vbmUNCj4gDQo+IA0KPiANCj4gICAgICAgICAg ZGVmIE51bWJlcihzZWxmLCBpOmludD1Ob25lKToNCj4gDQo+ICAgICAgICAgICAgICBpZiBpIGlz IE5vbmU6DQo+IA0KPiBAQCAtNjMxNiwxMzYgKzYzMjgsMTM2IEBAIGNsYXNzIFZmclN5bnRheFBh cnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgODgs IHNlbGYuUlVMRV92ZnJDb25zdGFudFZhbHVlRmllbGQpDQo+IA0KPiAgICAgICAgICBzZWxmLl9s YSA9IDAgIyBUb2tlbiB0eXBlDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDk5Mw0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5OTYN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+IC0g ICAgICAgICAgICBsYV8gPSBzZWxmLl9pbnRlcnAuYWRhcHRpdmVQcmVkaWN0KHNlbGYuX2lucHV0 LDU3LHNlbGYuX2N0eCkNCj4gDQo+ICsgICAgICAgICAgICBsYV8gPSBzZWxmLl9pbnRlcnAuYWRh cHRpdmVQcmVkaWN0KHNlbGYuX2lucHV0LDU4LHNlbGYuX2N0eCkNCj4gDQo+ICAgICAgICAgICAg ICBpZiBsYV8gPT0gMToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0 KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTUwDQo+ IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5NTMNCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgICAg IF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgICAgIGlmIF9sYT09 VmZyU3ludGF4UGFyc2VyLk5lZ2F0aXZlOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDk0OQ0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDk1 Mg0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu TmVnYXRpdmUpDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gOTUyDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5NTUNCj4gDQo+ ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiAN Cj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiANCj4gDQo+ICAgICAgICAgICAgICBlbGlm IGxhXyA9PSAyOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9j YWxjdHgsIDIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5NTMNCj4gDQo+ ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDk1Ng0KPiANCj4gICAgICAgICAgICAgICAg ICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UcnVlU3ltYm9sKQ0KPiANCj4gICAgICAgICAg ICAgICAgICBwYXNzDQo+IA0KPiANCj4gDQo+ICAgICAgICAgICAgICBlbGlmIGxhXyA9PSAzOg0K PiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDMpDQo+ IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5NTQNCj4gDQo+ICsgICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDk1Nw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNo KFZmclN5bnRheFBhcnNlci5GYWxzZVN5bWJvbCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFz cw0KPiANCj4gDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiBsYV8gPT0gNDoNCj4gDQo+ICAgICAg ICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCA0KQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gOTU1DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSA5NTgNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuT25lKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiANCj4gDQo+ICAg ICAgICAgICAgICBlbGlmIGxhXyA9PSA1Og0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVu dGVyT3V0ZXJBbHQobG9jYWxjdHgsIDUpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSA5NTYNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDk1OQ0KPiANCj4g ICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PbmVzKQ0KPiANCj4g ICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiANCj4gDQo+ICAgICAgICAgICAgICBlbGlmIGxh XyA9PSA2Og0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxj dHgsIDYpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5NTcNCj4gDQo+ICsg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDk2MA0KPiANCj4gICAgICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5aZXJvKQ0KPiANCj4gICAgICAgICAgICAgICAgICBw YXNzDQo+IA0KPiANCj4gDQo+ICAgICAgICAgICAgICBlbGlmIGxhXyA9PSA3Og0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDcpDQo+IA0KPiAtICAg ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5NTgNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDk2MQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5NTkN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDk2Mg0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db2xvbikNCj4gDQo+IC0gICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDk2MA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gOTYzDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDk2MQ0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTY0DQo+IA0KPiAgICAgICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbG9uKQ0KPiANCj4gLSAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gOTYyDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSA5NjUNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu TnVtYmVyKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiANCj4gDQo+ICAgICAg ICAgICAgICBlbGlmIGxhXyA9PSA4Og0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVy T3V0ZXJBbHQobG9jYWxjdHgsIDgpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSA5NjMNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDk2Ng0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAt ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5NjQNCj4gDQo+ICsgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDk2Nw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5TbGFzaCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDk2 NQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTY4DQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDk2Ng0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gOTY5DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLlNsYXNoKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTY3DQo+ IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5NzANCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gICAgICAgICAg ICAgICAgICBwYXNzDQo+IA0KPiANCj4gDQo+ICAgICAgICAgICAgICBlbGlmIGxhXyA9PSA5Og0K PiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDkpDQo+ IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5NjgNCj4gDQo+ICsgICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDk3MQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNo KFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSA5NjkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDk3Mg0KPiANCj4g ICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TZW1pY29sb24pDQo+ IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5NzANCj4gDQo+ICsgICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDk3Mw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNo KFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSA5NzENCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDk3NA0KPiANCj4g ICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TZW1pY29sb24pDQo+ IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5NzINCj4gDQo+ICsgICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDk3NQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmd1aWRE ZWZpbml0aW9uKCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDk3Mw0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTc2DQo+IA0KPiAgICAgICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlNlbWljb2xvbikNCj4gDQo+IC0gICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDk3NA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gOTc3DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLlN0cmluZ1Rva2VuKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTc1 DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5NzgNCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3BlblBhcmVuKQ0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTc2DQo+IA0KPiArICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSA5NzkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTc3 DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5ODANCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ2xvc2VQYXJlbikNCj4gDQo+ICAg ICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiBsYV8g PT0gMTA6DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0 eCwgMTApDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5NzkNCj4gDQo+ICsg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDk4Mg0KPiANCj4gICAgICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdUb2tlbikNCj4gDQo+IC0gICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDk4MA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gOTgzDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy Lk9wZW5QYXJlbikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDk4MQ0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTg0DQo+IA0KPiAgICAgICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDk4Mg0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gOTg1DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy LkNsb3NlUGFyZW4pDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+IA0KPiANCj4g ICAgICAgICAgICAgIGVsaWYgbGFfID09IDExOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm LmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDExKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gOTgzDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5ODYNCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3BlbkJyYWNl KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTg0DQo+IA0KPiArICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSA5ODcNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gOTg5DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5OTINCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAg ICAgICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAg ICAgICAgIHdoaWxlIF9sYT09VmZyU3ludGF4UGFyc2VyLkNvbW1hOg0KPiANCj4gLSAgICAgICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDk4NQ0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDk4OA0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gOTg2DQo+IA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTg5DQo+ IA0KPiAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1i ZXIpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTkxDQo+IA0KPiAr ICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTk0DQo+IA0KPiAgICAgICAgICAgICAg ICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICAg ICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDk5Mg0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gOTk1DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy LkNsb3NlQnJhY2UpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+IA0KPiANCj4g QEAgLTY0NjQsNyArNjQ3Niw3IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0K PiAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNv bnRleHQ9Tm9uZSwNCj4gaW52b2tpbmdTdGF0ZTppbnQ9LTEpOg0KPiANCj4gICAgICAgICAgICAg IHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAg ICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5Ob2RlID0g VmZyVHJlZU5vZGUoRUZJX0lGUl9JTUFHRV9PUCkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5v ZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX0lNQUdFX09QKQ0KPiANCj4gDQo+IA0KPiAgICAgICAg ICBkZWYgSW1hZ2Uoc2VsZik6DQo+IA0KPiAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZ2V0VG9r ZW4oVmZyU3ludGF4UGFyc2VyLkltYWdlLCAwKQ0KPiANCj4gQEAgLTY0OTYsMTcgKzY1MDgsMTcg QEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuZW50 ZXJSdWxlKGxvY2FsY3R4LCA5MCwgc2VsZi5SVUxFX3ZmckltYWdlVGFnKQ0KPiANCj4gICAgICAg ICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwg MSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gOTk1DQo+IA0KPiArICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDk5OA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3lu dGF4UGFyc2VyLkltYWdlKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSA5OTYNCj4g DQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gOTk5DQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0 YXRlID0gOTk3DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEwMDANCj4gDQo+ICAg ICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX182KQ0KPiANCj4gLSAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSA5OTgNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0g MTAwMQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5Q YXJlbikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gOTk5DQo+IA0KPiArICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDEwMDINCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEw MDANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTAwMw0KPiANCj4gICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3NlUGFyZW4pDQo+IA0KPiAgICAgICAg ICBleGNlcHQgUmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAgICAgICAgICAgICAg bG9jYWxjdHguZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC02NTIyLDcgKzY1MzQsNyBAQCBjbGFz cyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgZGVmIF9faW5pdF9fKHNl bGYsIHBhcnNlciwgcGFyZW50OlBhcnNlclJ1bGVDb250ZXh0PU5vbmUsDQo+IGludm9raW5nU3Rh dGU6aW50PS0xKToNCj4gDQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwg aW52b2tpbmdTdGF0ZSkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuTm9kZSA9IFZmclRyZWVOb2RlKEVGSV9JRlJfTE9DS0VE X09QKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuTm9kZSA9IElmclRyZWVOb2RlKEVGSV9JRlJf TE9DS0VEX09QKQ0KPiANCj4gDQo+IA0KPiAgICAgICAgICBkZWYgTG9ja2VkKHNlbGYpOg0KPiAN Cj4gICAgICAgICAgICAgIHJldHVybiBzZWxmLmdldFRva2VuKFZmclN5bnRheFBhcnNlci5Mb2Nr ZWQsIDApDQo+IA0KPiBAQCAtNjU0NSw3ICs2NTU3LDcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2Vy ICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCA5Miwgc2Vs Zi5SVUxFX3ZmckxvY2tlZFRhZykNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDEwMDINCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTAwNQ0K PiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkxvY2tlZCkNCj4g DQo+ICAgICAgICAgIGV4Y2VwdCBSZWNvZ25pdGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAg ICAgICAgICAgICBsb2NhbGN0eC5leGNlcHRpb24gPSByZQ0KPiANCj4gQEAgLTY1ODgsMTcgKzY2 MDAsMTcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIGxv Y2FsY3R4ID0gVmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudFN0YXRUYWdDb250ZXh0KHNlbGYs IHNlbGYuX2N0eCwNCj4gc2VsZi5zdGF0ZSkNCj4gDQo+ICAgICAgICAgIHNlbGYuZW50ZXJSdWxl KGxvY2FsY3R4LCA5NCwgc2VsZi5SVUxFX3ZmclN0YXRlbWVudFN0YXRUYWcpDQo+IA0KPiAgICAg ICAgICB0cnk6DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEwMDYNCj4gDQo+ICsg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTAwOQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2Vy ckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIHRva2VuID0gc2VsZi5faW5w dXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2Vy LkltYWdlXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2Fs Y3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTAwNA0KPiANCj4g KyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTAwNw0KPiANCj4gICAgICAgICAgICAgICAg ICBzZWxmLnZmckltYWdlVGFnKCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4g ICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5Mb2NrZWRdOg0KPiAN Cj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDIpDQo+IA0K PiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDA1DQo+IA0KPiArICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAxMDA4DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudmZyTG9j a2VkVGFnKCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAg IGVsc2U6DQo+IA0KPiBAQCAtNjY1MiwyMCArNjY2NCwyMCBAQCBjbGFzcyBWZnJTeW50YXhQYXJz ZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgsIDk2LCBz ZWxmLlJVTEVfdmZyU3RhdGVtZW50U3RhdFRhZ0xpc3QpDQo+IA0KPiAgICAgICAgICB0cnk6DQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4g LSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDA4DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDEwMTENCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudFN0YXRUYWco KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDEzDQo+IA0KPiArICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDEwMTYNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVy LnN5bmMoc2VsZikNCj4gDQo+IC0gICAgICAgICAgICBfYWx0ID0gc2VsZi5faW50ZXJwLmFkYXB0 aXZlUHJlZGljdChzZWxmLl9pbnB1dCw1OSxzZWxmLl9jdHgpDQo+IA0KPiArICAgICAgICAgICAg X2FsdCA9IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRpY3Qoc2VsZi5faW5wdXQsNjAsc2VsZi5f Y3R4KQ0KPiANCj4gICAgICAgICAgICAgIHdoaWxlIF9hbHQhPTIgYW5kIF9hbHQhPUFUTi5JTlZB TElEX0FMVF9OVU1CRVI6DQo+IA0KPiAgICAgICAgICAgICAgICAgIGlmIF9hbHQ9PTE6DQo+IA0K PiAtICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTAwOQ0KPiANCj4gKyAgICAgICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEwMTINCj4gDQo+ICAgICAgICAgICAgICAgICAgICAg IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gLSAgICAgICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDEwMTANCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxMDEzDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVu dFN0YXRUYWcoKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTAxNQ0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTAxOA0KPiANCj4gICAgICAgICAgICAg ICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+IC0gICAgICAgICAgICAgICAg X2FsdCA9IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRpY3Qoc2VsZi5faW5wdXQsNTksc2VsZi5f Y3R4KQ0KPiANCj4gKyAgICAgICAgICAgICAgICBfYWx0ID0gc2VsZi5faW50ZXJwLmFkYXB0aXZl UHJlZGljdChzZWxmLl9pbnB1dCw2MCxzZWxmLl9jdHgpDQo+IA0KPiANCj4gDQo+ICAgICAgICAg IGV4Y2VwdCBSZWNvZ25pdGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAgICAgICAgICBs b2NhbGN0eC5leGNlcHRpb24gPSByZQ0KPiANCj4gQEAgLTY2ODEsNyArNjY5Myw3IEBAIGNsYXNz IFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBkZWYgX19pbml0X18oc2Vs ZiwgcGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tpbmdTdGF0 ZTppbnQ9LTEpOg0KPiANCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBp bnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5Ob2RlID0gVmZyVHJlZU5vZGUoRUZJX0lGUl9GT1JNX09Q KQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuTm9kZSA9IElmclRyZWVOb2RlKEVGSV9JRlJfRk9S TV9PUCkNCj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVmIEZvcm0oc2VsZik6DQo+IA0KPiAgICAg ICAgICAgICAgcmV0dXJuIHNlbGYuZ2V0VG9rZW4oVmZyU3ludGF4UGFyc2VyLkZvcm0sIDApDQo+ IA0KPiBAQCAtNjc0NSw0MyArNjc1Nyw0MyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJz ZXIgKToNCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4gdHlwZQ0KPiANCj4gICAgICAg ICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwg MSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTAxNg0KPiANCj4gKyAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAxMDE5DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuRm9ybSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTAxNw0K PiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDIwDQo+IA0KPiAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRm9ybUlkKQ0KPiANCj4gLSAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxMDE4DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEwMjENCj4g DQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4g LSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDE5DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDEwMjINCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEwMjANCj4gDQo+ICsg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTAyMw0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAxMDIxDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEwMjQNCj4gDQo+ICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UaXRsZSkNCj4gDQo+IC0gICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTAyMg0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx MDI1DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTAyMw0KPiANCj4gKyAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAxMDI2DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuU3RyaW5nVG9rZW4pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEw MjQNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTAyNw0KPiANCj4gICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+IC0gICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTAyNQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx MDI4DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVy KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDI2DQo+IA0KPiArICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDEwMjkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx MDI3DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEwMzANCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TZW1pY29sb24pDQo+IA0KPiAtICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDEwMzENCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0g MTAzNA0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiAN Cj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAg ICAgd2hpbGUgKCgoKF9sYSAtIDQ2KSkgJiB+MHgzZikgPT0gMCBhbmQgKCgxIDw8IChfbGEgLSA0 NikpICYgKCgxIDw8DQo+IChWZnJTeW50YXhQYXJzZXIuT25lT2YgLSA0NikpIHwgKDEgPDwgKFZm clN5bnRheFBhcnNlci5PcmRlcmVkTGlzdCAtIDQ2KSkgfCAoMQ0KPiA8PCAoVmZyU3ludGF4UGFy c2VyLlN1YnRpdGxlIC0gNDYpKSB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuVGV4dCAtIDQ2KSkg fCAoMSA8PA0KPiAoVmZyU3ludGF4UGFyc2VyLkRhdGUgLSA0NikpIHwgKDEgPDwgKFZmclN5bnRh eFBhcnNlci5UaW1lIC0gNDYpKSB8ICgxIDw8DQo+IChWZnJTeW50YXhQYXJzZXIuR3JheU91dElm IC0gNDYpKSB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuTGFiZWwgLSA0NikpIHwgKDEgPDwNCj4g KFZmclN5bnRheFBhcnNlci5JbnZlbnRvcnkgLSA0NikpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNl ci5DaGVja0JveCAtIDQ2KSkgfCAoMQ0KPiA8PCAoVmZyU3ludGF4UGFyc2VyLk51bWVyaWMgLSA0 NikpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5EZWZhdWx0IC0gNDYpKSB8ICgxDQo+IDw8IChW ZnJTeW50YXhQYXJzZXIuUGFzc3dvcmQgLSA0NikpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5T dHJpbmcgLSA0NikpIHwgKDENCj4gPDwgKFZmclN5bnRheFBhcnNlci5TdXBwcmVzc0lmIC0gNDYp KSB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuRGlzYWJsZUlmIC0gNDYpKSB8DQo+ICgxIDw8IChW ZnJTeW50YXhQYXJzZXIuSGlkZGVuIC0gNDYpKSB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuR290 byAtIDQ2KSkpKSAhPSAwKQ0KPiBvciAoKCgoX2xhIC0gMTEwKSkgJiB+MHgzZikgPT0gMCBhbmQg KCgxIDw8IChfbGEgLSAxMTApKSAmICgoMSA8PA0KPiAoVmZyU3ludGF4UGFyc2VyLkluY29uc2lz dGVudElmIC0gMTEwKSkgfCAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLlJlc3RvcmUgLSAxMTApKQ0K PiB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuU2F2ZSAtIDExMCkpIHwgKDEgPDwgKFZmclN5bnRh eFBhcnNlci5CYW5uZXIgLSAxMTApKSB8DQo+ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuSW1hZ2Ug LSAxMTApKSB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuTG9ja2VkIC0gMTEwKSkgfA0KPiAoMSA8 PCAoVmZyU3ludGF4UGFyc2VyLlJ1bGUgLSAxMTApKSB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIu UmVzZXRCdXR0b24gLSAxMTApKQ0KPiB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuQWN0aW9uIC0g MTEwKSkgfCAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLkd1aWRPcCAtIDExMCkpDQo+IHwgKDEgPDwg KFZmclN5bnRheFBhcnNlci5Nb2RhbCAtIDExMCkpKSkgIT0gMCkgb3INCj4gX2xhPT1WZnJTeW50 YXhQYXJzZXIuUmVmcmVzaEd1aWQ6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAxMDI4DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDMxDQo+IA0KPiAg ICAgICAgICAgICAgICAgIHNlbGYudmZyRm9ybSgpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxMDMzDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDM2 DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiAN Cj4gICAgICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gDQo+IA0K PiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEwMzQNCj4gDQo+ICsgICAgICAgICAgICBzZWxm LnN0YXRlID0gMTAzNw0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLkVuZEZvcm0pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEwMzUNCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTAzOA0KPiANCj4gICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLlNlbWljb2xvbikNCj4gDQo+ICAgICAgICAgIGV4Y2VwdCBS ZWNvZ25pdGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5l eGNlcHRpb24gPSByZQ0KPiANCj4gQEAgLTY4NzIsNjEgKzY4ODQsNjEgQEAgY2xhc3MgVmZyU3lu dGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4 LCAxMDAsIHNlbGYuUlVMRV92ZnJGb3JtKQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAg ICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTA1Mg0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx MDU1DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0K PiAgICAgICAgICAgICAgdG9rZW4gPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAg ICAgIGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuSW1hZ2VdOg0KPiANCj4gLSAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMTAzNw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMTA0MA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudEltYWdl KCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYg dG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5Mb2NrZWRdOg0KPiANCj4gLSAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTAzOA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MTA0MQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudExvY2tlZCgpDQo+ IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2Vu IGluIFtWZnJTeW50YXhQYXJzZXIuUnVsZV06DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxMDM5DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDQyDQo+ IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50UnVsZXMoKQ0KPiANCj4gICAg ICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZy U3ludGF4UGFyc2VyLkRlZmF1bHRdOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTA0MA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTA0Mw0KPiANCj4g ICAgICAgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudERlZmF1bHQoKQ0KPiANCj4gICAgICAg ICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3lu dGF4UGFyc2VyLlN1YnRpdGxlLCBWZnJTeW50YXhQYXJzZXIuVGV4dCwNCj4gVmZyU3ludGF4UGFy c2VyLkdvdG8sIFZmclN5bnRheFBhcnNlci5SZXNldEJ1dHRvbl06DQo+IA0KPiAtICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxMDQxDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxMDQ0DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50U3RhdCgp DQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRv a2VuIGluIFtWZnJTeW50YXhQYXJzZXIuT25lT2YsIFZmclN5bnRheFBhcnNlci5PcmRlcmVkTGlz dCwNCj4gVmZyU3ludGF4UGFyc2VyLkRhdGUsIFZmclN5bnRheFBhcnNlci5UaW1lLCBWZnJTeW50 YXhQYXJzZXIuQ2hlY2tCb3gsDQo+IFZmclN5bnRheFBhcnNlci5OdW1lcmljLCBWZnJTeW50YXhQ YXJzZXIuUGFzc3dvcmQsIFZmclN5bnRheFBhcnNlci5TdHJpbmcsDQo+IFZmclN5bnRheFBhcnNl ci5BY3Rpb25dOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTA0Mg0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTA0NQ0KPiANCj4gICAgICAgICAgICAg ICAgICBzZWxmLnZmclN0YXRlbWVudFF1ZXN0aW9ucygpDQo+IA0KPiAgICAgICAgICAgICAgICAg IHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIu R3JheU91dElmLCBWZnJTeW50YXhQYXJzZXIuU3VwcHJlc3NJZiwNCj4gVmZyU3ludGF4UGFyc2Vy LkRpc2FibGVJZiwgVmZyU3ludGF4UGFyc2VyLkluY29uc2lzdGVudElmXToNCj4gDQo+IC0gICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEwNDMNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDEwNDYNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRD b25kaXRpb25hbCgpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAg ICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuTGFiZWxdOg0KPiANCj4gLSAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTA0NA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMTA0Nw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudExh YmVsKCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVs aWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5CYW5uZXJdOg0KPiANCj4gLSAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTA0NQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTA0OA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudEJhbm5lcigp DQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRv a2VuIGluIFtWZnJTeW50YXhQYXJzZXIuSW52ZW50b3J5LCBWZnJTeW50YXhQYXJzZXIuSGlkZGVu LA0KPiBWZnJTeW50YXhQYXJzZXIuUmVzdG9yZSwgVmZyU3ludGF4UGFyc2VyLlNhdmVdOg0KPiAN Cj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTA0Ng0KPiANCj4gKyAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTA0OQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnZmclN0 YXRlbWVudEludmFsaWQoKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAg ICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLkd1aWRPcF06DQo+IA0KPiAt ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDQ3DQo+IA0KPiArICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAxMDUwDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVt ZW50RXh0ZW5zaW9uKCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAg ICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5Nb2RhbF06DQo+IA0KPiAtICAg ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDQ4DQo+IA0KPiArICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxMDUxDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50 TW9kYWwoKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAg ZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLlJlZnJlc2hHdWlkXToNCj4gDQo+IC0gICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEwNDkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDEwNTINCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRS ZWZyZXNoRXZlbnQoKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTA1MA0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTA1Mw0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TZW1pY29sb24pDQo+IA0KPiAgICAg ICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbHNlOg0KPiANCj4gQEAgLTY5 NDYsNyArNjk1OCw3IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAg ICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9 Tm9uZSwNCj4gaW52b2tpbmdTdGF0ZTppbnQ9LTEpOg0KPiANCj4gICAgICAgICAgICAgIHN1cGVy KCkuX19pbml0X18ocGFyZW50LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNl bGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5Ob2RlID0gVmZyVHJl ZU5vZGUoRUZJX0lGUl9GT1JNX01BUF9PUCkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5vZGUg PSBJZnJUcmVlTm9kZShFRklfSUZSX0ZPUk1fTUFQX09QKQ0KPiANCj4gICAgICAgICAgICAgIHNl bGYuUzEgPSBOb25lICMgVG9rZW4NCj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVmIEZvcm1NYXAo c2VsZik6DQo+IA0KPiBAQCAtNzAzNiw1OSArNzA0OCw1OSBAQCBjbGFzcyBWZnJTeW50YXhQYXJz ZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4gdHlwZQ0KPiAN Cj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChs b2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTA1NA0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDU3DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuRm9ybU1hcCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0 YXRlID0gMTA1NQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDU4DQo+IA0KPiAg ICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRm9ybUlkKQ0KPiANCj4gLSAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDU2DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDEwNTkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5U X181KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDU3DQo+IA0KPiArICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDEwNjANCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5TMSA9 IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTA1OA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDYxDQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0K PiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEwNzMNCj4gDQo+ICsgICAgICAgICAgICBzZWxm LnN0YXRlID0gMTA3Ng0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhz ZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAg ICAgICAgICAgICAgd2hpbGUgX2xhPT1WZnJTeW50YXhQYXJzZXIuTWFwVGl0bGU6DQo+IA0KPiAt ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDU5DQo+IA0KPiArICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAxMDYyDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLk1hcFRpdGxlKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTA2MA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTA2Mw0KPiANCj4g ICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4g LSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTA2MQ0KPiANCj4gKyAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTA2NA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5TdHJpbmdUb2tlbikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDEwNjINCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEwNjUNCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3BlblBhcmVu KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTA2Mw0KPiANCj4gKyAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTA2Ng0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxMDY0DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDY3 DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3Nl UGFyZW4pDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDY1DQo+IA0KPiAr ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDY4DQo+IA0KPiAgICAgICAgICAgICAgICAg IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlNlbWljb2xvbikNCj4gDQo+IC0gICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDEwNjYNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDEwNjkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJz ZXIuTWFwR3VpZCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEwNjcNCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEwNzANCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDEwNjgNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDEwNzENCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5ndWlkRGVmaW5pdGlvbigpDQo+ IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDY5DQo+IA0KPiArICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxMDcyDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLlNlbWljb2xvbikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDEwNzUNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEwNzgN Cj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0K PiAgICAgICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiANCj4gDQo+ IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTA3OQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxMDgyDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNl bGYpDQo+IA0KPiAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAg ICAgICAgICAgICB3aGlsZSAoKCgoX2xhIC0gNDYpKSAmIH4weDNmKSA9PSAwIGFuZCAoKDEgPDwg KF9sYSAtIDQ2KSkgJiAoKDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5PbmVPZiAtIDQ2KSkgfCAo MSA8PCAoVmZyU3ludGF4UGFyc2VyLk9yZGVyZWRMaXN0IC0gNDYpKSB8ICgxDQo+IDw8IChWZnJT eW50YXhQYXJzZXIuU3VidGl0bGUgLSA0NikpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5UZXh0 IC0gNDYpKSB8ICgxIDw8DQo+IChWZnJTeW50YXhQYXJzZXIuRGF0ZSAtIDQ2KSkgfCAoMSA8PCAo VmZyU3ludGF4UGFyc2VyLlRpbWUgLSA0NikpIHwgKDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5H cmF5T3V0SWYgLSA0NikpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5MYWJlbCAtIDQ2KSkgfCAo MSA8PA0KPiAoVmZyU3ludGF4UGFyc2VyLkludmVudG9yeSAtIDQ2KSkgfCAoMSA8PCAoVmZyU3lu dGF4UGFyc2VyLkNoZWNrQm94IC0gNDYpKSB8ICgxDQo+IDw8IChWZnJTeW50YXhQYXJzZXIuTnVt ZXJpYyAtIDQ2KSkgfCAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLkRlZmF1bHQgLSA0NikpIHwgKDEN Cj4gPDwgKFZmclN5bnRheFBhcnNlci5QYXNzd29yZCAtIDQ2KSkgfCAoMSA8PCAoVmZyU3ludGF4 UGFyc2VyLlN0cmluZyAtIDQ2KSkgfCAoMQ0KPiA8PCAoVmZyU3ludGF4UGFyc2VyLlN1cHByZXNz SWYgLSA0NikpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5EaXNhYmxlSWYgLSA0NikpIHwNCj4g KDEgPDwgKFZmclN5bnRheFBhcnNlci5IaWRkZW4gLSA0NikpIHwgKDEgPDwgKFZmclN5bnRheFBh cnNlci5Hb3RvIC0gNDYpKSkpICE9IDApDQo+IG9yICgoKChfbGEgLSAxMTApKSAmIH4weDNmKSA9 PSAwIGFuZCAoKDEgPDwgKF9sYSAtIDExMCkpICYgKCgxIDw8DQo+IChWZnJTeW50YXhQYXJzZXIu SW5jb25zaXN0ZW50SWYgLSAxMTApKSB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuUmVzdG9yZSAt IDExMCkpDQo+IHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5TYXZlIC0gMTEwKSkgfCAoMSA8PCAo VmZyU3ludGF4UGFyc2VyLkJhbm5lciAtIDExMCkpIHwNCj4gKDEgPDwgKFZmclN5bnRheFBhcnNl ci5JbWFnZSAtIDExMCkpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5Mb2NrZWQgLSAxMTApKSB8 DQo+ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuUnVsZSAtIDExMCkpIHwgKDEgPDwgKFZmclN5bnRh eFBhcnNlci5SZXNldEJ1dHRvbiAtIDExMCkpDQo+IHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5B Y3Rpb24gLSAxMTApKSB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuR3VpZE9wIC0gMTEwKSkNCj4g fCAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLk1vZGFsIC0gMTEwKSkpKSAhPSAwKSBvcg0KPiBfbGE9 PVZmclN5bnRheFBhcnNlci5SZWZyZXNoR3VpZDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDEwNzYNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEwNzkN Cj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi52ZnJGb3JtKCkNCj4gDQo+IC0gICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDEwODENCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDEwODQNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNl bGYpDQo+IA0KPiAgICAgICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0K PiANCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTA4Mg0KPiANCj4gKyAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAxMDg1DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuRW5kRm9ybSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTA4 Mw0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDg2DQo+IA0KPiAgICAgICAgICAg ICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU2VtaWNvbG9uKQ0KPiANCj4gICAgICAgICAg ZXhjZXB0IFJlY29nbml0aW9uRXhjZXB0aW9uIGFzIHJlOg0KPiANCj4gICAgICAgICAgICAgIGxv Y2FsY3R4LmV4Y2VwdGlvbiA9IHJlDQo+IA0KPiBAQCAtNzEzMSw5ICs3MTQzLDkgQEAgY2xhc3Mg VmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuZW50ZXJSdWxlKGxv Y2FsY3R4LCAxMDQsIHNlbGYuUlVMRV92ZnJTdGF0ZW1lbnRJbWFnZSkNCj4gDQo+ICAgICAgICAg IHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEp DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEwODUNCj4gDQo+ICsgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTA4OA0KPiANCj4gICAgICAgICAgICAgIHNlbGYudmZySW1hZ2VUYWco KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDg2DQo+IA0KPiArICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDEwODkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5TZW1pY29sb24pDQo+IA0KPiAgICAgICAgICBleGNlcHQgUmVjb2duaXRpb25F eGNlcHRpb24gYXMgcmU6DQo+IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHguZXhjZXB0aW9uID0g cmUNCj4gDQo+IEBAIC03MTc2LDkgKzcxODgsOSBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQ YXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgsIDEwNiwgc2VsZi5S VUxFX3ZmclN0YXRlbWVudExvY2tlZCkNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAg ICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDEwODgNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTA5 MQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYudmZyTG9ja2VkVGFnKCkNCj4gDQo+IC0gICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTA4OQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx MDkyDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU2VtaWNv bG9uKQ0KPiANCj4gICAgICAgICAgZXhjZXB0IFJlY29nbml0aW9uRXhjZXB0aW9uIGFzIHJlOg0K PiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LmV4Y2VwdGlvbiA9IHJlDQo+IA0KPiBAQCAtNzE5 NCw3ICs3MjA2LDcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAg ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJzZXIsIHBhcmVudDpQYXJzZXJSdWxlQ29udGV4dD1O b25lLA0KPiBpbnZva2luZ1N0YXRlOmludD0tMSk6DQo+IA0KPiAgICAgICAgICAgICAgc3VwZXIo KS5fX2luaXRfXyhwYXJlbnQsIGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5wYXJzZXIgPSBwYXJzZXINCj4gDQo+IC0gICAgICAgICAgICBzZWxmLk5vZGUgPSBWZnJUcmVl Tm9kZShFRklfSUZSX1JVTEVfT1ApDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2RlID0gSWZy VHJlZU5vZGUoRUZJX0lGUl9SVUxFX09QKQ0KPiANCj4gDQo+IA0KPiAgICAgICAgICBkZWYgUnVs ZShzZWxmKToNCj4gDQo+ICAgICAgICAgICAgICByZXR1cm4gc2VsZi5nZXRUb2tlbihWZnJTeW50 YXhQYXJzZXIuUnVsZSwgMCkNCj4gDQo+IEBAIC03MjMzLDE3ICs3MjQ1LDE3IEBAIGNsYXNzIFZm clN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLmVudGVyUnVsZShsb2Nh bGN0eCwgMTA4LCBzZWxmLlJVTEVfdmZyU3RhdGVtZW50UnVsZXMpDQo+IA0KPiAgICAgICAgICB0 cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDkxDQo+IA0KPiArICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDEwOTQNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5SdWxlKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDkyDQo+IA0K PiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEwOTUNCj4gDQo+ICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdJZGVudGlmaWVyKQ0KPiANCj4gLSAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAxMDkzDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEw OTYNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTA5NA0KPiANCj4gLSAgICAgICAgICAg IHNlbGYudmZyU3RhdGVtZW50RXhwcmVzc2lvbigpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDEwOTUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTA5Nw0KPiANCj4g KyAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50RXhwcmVzc2lvbihsb2NhbGN0eC5Ob2RlKQ0K PiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDk4DQo+IA0KPiAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRW5kUnVsZSkNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTA5Ng0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMDk5DQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU2VtaWNvbG9uKQ0K PiANCj4gICAgICAgICAgZXhjZXB0IFJlY29nbml0aW9uRXhjZXB0aW9uIGFzIHJlOg0KPiANCj4g ICAgICAgICAgICAgIGxvY2FsY3R4LmV4Y2VwdGlvbiA9IHJlDQo+IA0KPiBAQCAtNzI5MCwyMiAr NzMwMiwyMiBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAg bG9jYWxjdHggPSBWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50U3RhdENvbnRleHQoc2VsZiwg c2VsZi5fY3R4LA0KPiBzZWxmLnN0YXRlKQ0KPiANCj4gICAgICAgICAgc2VsZi5lbnRlclJ1bGUo bG9jYWxjdHgsIDExMCwgc2VsZi5SVUxFX3ZmclN0YXRlbWVudFN0YXQpDQo+IA0KPiAgICAgICAg ICB0cnk6DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExMDENCj4gDQo+ICsgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMTEwNA0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2Vyckhh bmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIHRva2VuID0gc2VsZi5faW5wdXQu TEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLlN1 YnRpdGxlXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2Fs Y3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTA5OA0KPiANCj4g KyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTEwMQ0KPiANCj4gICAgICAgICAgICAgICAg ICBzZWxmLnZmclN0YXRlbWVudFN1YlRpdGxlKCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFz cw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5UZXh0 XToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAy KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTA5OQ0KPiANCj4gKyAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTEwMg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm LnZmclN0YXRlbWVudFN0YXRpY1RleHQoKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+ IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLkdvdG8sIFZm clN5bnRheFBhcnNlci5SZXNldEJ1dHRvbl06DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYu ZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMykNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDExMDANCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExMDMNCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRDcm9zc1JlZmVyZW5jZSgpDQo+ IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbHNlOg0KPiAN Cj4gQEAgLTczMjUsOCArNzMzNyw3IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciAp Og0KPiAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVs ZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tpbmdTdGF0ZTppbnQ9LTEpOg0KPiANCj4gICAgICAgICAg ICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAg ICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5Ob2Rl ID0gVmZyVHJlZU5vZGUoRUZJX0lGUl9TVUJUSVRMRV9PUCkNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLk9wT2JqID0gQ0lmclN1YnRpdGxlKCkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5vZGUg PSBJZnJUcmVlTm9kZShFRklfSUZSX1NVQlRJVExFX09QKQ0KPiANCj4gDQo+IA0KPiAgICAgICAg ICBkZWYgU3VidGl0bGUoc2VsZik6DQo+IA0KPiAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZ2V0 VG9rZW4oVmZyU3ludGF4UGFyc2VyLlN1YnRpdGxlLCAwKQ0KPiANCj4gQEAgLTczOTUsODQgKzc0 MDYsODQgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNl bGYuX2xhID0gMCAjIFRva2VuIHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAg ICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDExMDMNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTEw Ng0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlN1YnRpdGxl KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTA0DQo+IA0KPiArICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDExMDcNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5UZXh0KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTA1DQo+ IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExMDgNCj4gDQo+ICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxMTA2DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExMDkNCj4gDQo+ ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdUb2tlbikNCj4g DQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTEwNw0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxMTEwDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuT3BlblBhcmVuKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTA4DQo+ IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExMTENCj4gDQo+ICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDExMDkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTExMg0KPiAN Cj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3NlUGFyZW4pDQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExMTQNCj4gDQo+ICsgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTExNw0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3lu YyhzZWxmKQ0KPiANCj4gLSAgICAgICAgICAgIGxhXyA9IHNlbGYuX2ludGVycC5hZGFwdGl2ZVBy ZWRpY3Qoc2VsZi5faW5wdXQsNjUsc2VsZi5fY3R4KQ0KPiANCj4gKyAgICAgICAgICAgIGxhXyA9 IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRpY3Qoc2VsZi5faW5wdXQsNjYsc2VsZi5fY3R4KQ0K PiANCj4gICAgICAgICAgICAgIGlmIGxhXyA9PSAxOg0KPiANCj4gLSAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTExMA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTEx Mw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21t YSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExMTENCj4gDQo+ICsgICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExMTQNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRkxBR1MpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxMTEyDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTE1 DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUp DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTEzDQo+IA0KPiArICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTE2DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYu dmZyU3VidGl0bGVGbGFncygpDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxMTM2DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExMzkNCj4g DQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+IC0gICAg ICAgICAgICBsYV8gPSBzZWxmLl9pbnRlcnAuYWRhcHRpdmVQcmVkaWN0KHNlbGYuX2lucHV0LDcw LHNlbGYuX2N0eCkNCj4gDQo+ICsgICAgICAgICAgICBsYV8gPSBzZWxmLl9pbnRlcnAuYWRhcHRp dmVQcmVkaWN0KHNlbGYuX2lucHV0LDcxLHNlbGYuX2N0eCkNCj4gDQo+ICAgICAgICAgICAgICBp ZiBsYV8gPT0gMToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExMTgNCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExMjENCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgICAg IF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgICAgIGlmIF9sYT09 VmZyU3ludGF4UGFyc2VyLkNvbW1hOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDExMTYNCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTE5 DQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5D b21tYSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTE3DQo+IA0K PiArICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTEyMA0KPiANCj4gICAgICAgICAg ICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRTdGF0VGFnTGlzdChsb2NhbGN0eC5Ob2RlKQ0K PiANCj4gDQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExMjAN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExMjMNCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU2VtaWNvbG9uKQ0KPiANCj4gICAg ICAgICAgICAgICAgICBwYXNzDQo+IA0KPiANCj4gDQo+ICAgICAgICAgICAgICBlbGlmIGxhXyA9 PSAyOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTEyMw0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTEyNg0KPiANCj4gICAgICAgICAgICAgICAgICBz ZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+IC0gICAgICAgICAgICAgICAgbGFfID0g c2VsZi5faW50ZXJwLmFkYXB0aXZlUHJlZGljdChzZWxmLl9pbnB1dCw2NyxzZWxmLl9jdHgpDQo+ IA0KPiArICAgICAgICAgICAgICAgIGxhXyA9IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRpY3Qo c2VsZi5faW5wdXQsNjgsc2VsZi5fY3R4KQ0KPiANCj4gICAgICAgICAgICAgICAgICBpZiBsYV8g PT0gMToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTIxDQo+IA0K PiArICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTEyNA0KPiANCj4gICAgICAgICAg ICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAtICAg ICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTEyMg0KPiANCj4gKyAgICAgICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDExMjUNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIHNlbGYu dmZyU3RhdGVtZW50U3RhdFRhZ0xpc3QobG9jYWxjdHguTm9kZSkNCj4gDQo+IA0KPiANCj4gDQo+ IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTMyDQo+IA0KPiArICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxMTM1DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuX2Vy ckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9p bnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgICAgICBpZiBfbGE9PVZmclN5bnRheFBhcnNl ci5Db21tYToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTI1DQo+ IA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTEyOA0KPiANCj4gICAgICAg ICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAt ICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTEyOQ0KPiANCj4gKyAgICAgICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDExMzINCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIHNl bGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgX2xh ID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICgo KChfbGEgLSA0NikpICYgfjB4M2YpID09IDAgYW5kICgoMSA8PCAoX2xhIC0gNDYpKSAmICgoMSA8 PA0KPiAoVmZyU3ludGF4UGFyc2VyLk9uZU9mIC0gNDYpKSB8ICgxIDw8IChWZnJTeW50YXhQYXJz ZXIuT3JkZXJlZExpc3QgLSA0NikpIHwgKDENCj4gPDwgKFZmclN5bnRheFBhcnNlci5TdWJ0aXRs ZSAtIDQ2KSkgfCAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLlRleHQgLSA0NikpIHwgKDEgPDwNCj4g KFZmclN5bnRheFBhcnNlci5EYXRlIC0gNDYpKSB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuVGlt ZSAtIDQ2KSkgfCAoMSA8PA0KPiAoVmZyU3ludGF4UGFyc2VyLkNoZWNrQm94IC0gNDYpKSB8ICgx IDw8IChWZnJTeW50YXhQYXJzZXIuTnVtZXJpYyAtIDQ2KSkgfCAoMQ0KPiA8PCAoVmZyU3ludGF4 UGFyc2VyLlBhc3N3b3JkIC0gNDYpKSB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuU3RyaW5nIC0g NDYpKSB8ICgxDQo+IDw8IChWZnJTeW50YXhQYXJzZXIuR290byAtIDQ2KSkpKSAhPSAwKSBvciBf bGE9PVZmclN5bnRheFBhcnNlci5SZXNldEJ1dHRvbiBvcg0KPiBfbGE9PVZmclN5bnRheFBhcnNl ci5BY3Rpb246DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEx MjYNCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTEyOQ0KPiAN Cj4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50U3ViVGl0bGVDb21w b25lbnQoKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTMx DQo+IA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExMzQNCj4gDQo+ ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4g DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiAN Cj4gDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MTEzNA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTEzNw0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5FbmRTdWJ0aXRsZSkNCj4g DQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExMzUNCj4gDQo+ICsgICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDExMzgNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRj aChWZnJTeW50YXhQYXJzZXIuU2VtaWNvbG9uKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNz DQo+IA0KPiANCj4gDQo+IEBAIC03NTE4LDE3ICs3NTI5LDE3IEBAIGNsYXNzIFZmclN5bnRheFBh cnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBsb2NhbGN0eCA9IFZmclN5bnRheFBhcnNlci5W ZnJTdGF0ZW1lbnRTdWJUaXRsZUNvbXBvbmVudENvbnRleHQoc2VsZiwNCj4gc2VsZi5fY3R4LCBz ZWxmLnN0YXRlKQ0KPiANCj4gICAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgsIDExNCwg c2VsZi5SVUxFX3ZmclN0YXRlbWVudFN1YlRpdGxlQ29tcG9uZW50KQ0KPiANCj4gICAgICAgICAg dHJ5Og0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTQwDQo+IA0KPiArICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDExNDMNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5k bGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICB0b2tlbiA9IHNlbGYuX2lucHV0LkxB KDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5TdWJ0 aXRsZSwgVmZyU3ludGF4UGFyc2VyLlRleHQsDQo+IFZmclN5bnRheFBhcnNlci5Hb3RvLCBWZnJT eW50YXhQYXJzZXIuUmVzZXRCdXR0b25dOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVu dGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxMTM4DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTQxDQo+IA0K PiAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50U3RhdCgpDQo+IA0KPiAgICAgICAg ICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50 YXhQYXJzZXIuT25lT2YsIFZmclN5bnRheFBhcnNlci5PcmRlcmVkTGlzdCwNCj4gVmZyU3ludGF4 UGFyc2VyLkRhdGUsIFZmclN5bnRheFBhcnNlci5UaW1lLCBWZnJTeW50YXhQYXJzZXIuQ2hlY2tC b3gsDQo+IFZmclN5bnRheFBhcnNlci5OdW1lcmljLCBWZnJTeW50YXhQYXJzZXIuUGFzc3dvcmQs IFZmclN5bnRheFBhcnNlci5TdHJpbmcsDQo+IFZmclN5bnRheFBhcnNlci5BY3Rpb25dOg0KPiAN Cj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDIpDQo+IA0K PiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTM5DQo+IA0KPiArICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAxMTQyDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3Rh dGVtZW50UXVlc3Rpb25zKCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAg ICAgICAgICAgIGVsc2U6DQo+IA0KPiBAQCAtNzU4MiwxNyArNzU5MywxNyBAQCBjbGFzcyBWZnJT eW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4g dHlwZQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJP dXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTE0 Mg0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTQ1DQo+IA0KPiAgICAgICAgICAg ICAgc2VsZi5zdWJ0aXRsZUZsYWdzRmllbGQoKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxMTQ3DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExNTANCj4gDQo+ICAg ICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAg ICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIHdoaWxlIF9sYT09 VmZyU3ludGF4UGFyc2VyLkJpdFdpc2VPcjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDExNDMNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExNDYNCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQml0V2lzZU9y KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTE0NA0KPiANCj4gKyAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTE0Nw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm LnN1YnRpdGxlRmxhZ3NGaWVsZCgpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAxMTQ5DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTUyDQo+IA0KPiAg ICAgICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAg ICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gDQo+IA0KPiBAQCAtNzYz NCw3ICs3NjQ1LDcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAg ICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDExNTANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTE1Mw0KPiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0K PiAgICAgICAgICAgICAgaWYgbm90KF9sYT09VmZyU3ludGF4UGFyc2VyLlRfXzcgb3IgX2xhPT1W ZnJTeW50YXhQYXJzZXIuTnVtYmVyKToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5fZXJy SGFuZGxlci5yZWNvdmVySW5saW5lKHNlbGYpDQo+IA0KPiBAQCAtNzY1NSw3ICs3NjY2LDcgQEAg Y2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIGRlZiBfX2luaXRf XyhzZWxmLCBwYXJzZXIsIHBhcmVudDpQYXJzZXJSdWxlQ29udGV4dD1Ob25lLA0KPiBpbnZva2lu Z1N0YXRlOmludD0tMSk6DQo+IA0KPiAgICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhwYXJl bnQsIGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJz ZXINCj4gDQo+IC0gICAgICAgICAgICBzZWxmLk5vZGUgPSBWZnJUcmVlTm9kZShFRklfSUZSX1RF WFRfT1ApDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2RlID0gSWZyVHJlZU5vZGUoRUZJX0lG Ul9URVhUX09QKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuUzEgPSBOb25lICMgVG9rZW4NCj4g DQo+ICAgICAgICAgICAgICBzZWxmLlMyID0gTm9uZSAjIFRva2VuDQo+IA0KPiAgICAgICAgICAg ICAgc2VsZi5TMyA9IE5vbmUgIyBUb2tlbg0KPiANCj4gQEAgLTc3NDYsOTkgKzc3NTcsOTkgQEAg Y2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuX2xhID0g MCAjIFRva2VuIHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBz ZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDExNTINCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTE1NQ0KPiANCj4g ICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRleHQpDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDExNTMNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTE1Ng0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkhl bHApDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExNTQNCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTE1Nw0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExNTUN Cj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTE1OA0KPiANCj4gICAgICAgICAgICAg IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlN0cmluZ1Rva2VuKQ0KPiANCj4gLSAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAxMTU2DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEx NTkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuUGFy ZW4pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExNTcNCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTE2MA0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LlMxID0g c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxMTU4DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExNjENCj4g DQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTU5DQo+IA0KPiArICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDExNjINCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5Db21tYSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTE2MA0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTYzDQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVGV4dCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0 YXRlID0gMTE2MQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTY0DQo+IA0KPiAg ICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAg ICAgICAgICBzZWxmLnN0YXRlID0gMTE2Mg0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAxMTY1DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3Ry aW5nVG9rZW4pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExNjMNCj4gDQo+ICsg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTE2Ng0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0 YXRlID0gMTE2NA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTY3DQo+IA0KPiAg ICAgICAgICAgICAgbG9jYWxjdHguUzIgPSBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1i ZXIpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExNjUNCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTE2OA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLkNsb3NlUGFyZW4pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDExNzMNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTE3Ng0KPiANCj4gICAgICAg ICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gLSAgICAgICAgICAgIGxh XyA9IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRpY3Qoc2VsZi5faW5wdXQsNzMsc2VsZi5fY3R4 KQ0KPiANCj4gKyAgICAgICAgICAgIGxhXyA9IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRpY3Qo c2VsZi5faW5wdXQsNzQsc2VsZi5fY3R4KQ0KPiANCj4gICAgICAgICAgICAgIGlmIGxhXyA9PSAx Og0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTE2Ng0KPiANCj4gKyAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTE2OQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDExNjcNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExNzAN Cj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVGV4dCkN Cj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExNjgNCj4gDQo+ICsgICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDExNzENCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDExNjkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExNzINCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nVG9r ZW4pDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTcwDQo+IA0KPiArICAg ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTczDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+IC0gICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDExNzENCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDExNzQNCj4gDQo+ICAgICAgICAgICAgICAgICAgbG9jYWxjdHguUzMgPSBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAxMTcyDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTc1DQo+IA0KPiAg ICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3NlUGFyZW4pDQo+ IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTkxDQo+IA0K PiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExOTQNCj4gDQo+ICAgICAgICAgICAgICBzZWxm Ll9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+IC0gICAgICAgICAgICBsYV8gPSBzZWxmLl9p bnRlcnAuYWRhcHRpdmVQcmVkaWN0KHNlbGYuX2lucHV0LDc1LHNlbGYuX2N0eCkNCj4gDQo+ICsg ICAgICAgICAgICBsYV8gPSBzZWxmLl9pbnRlcnAuYWRhcHRpdmVQcmVkaWN0KHNlbGYuX2lucHV0 LDc2LHNlbGYuX2N0eCkNCj4gDQo+ICAgICAgICAgICAgICBpZiBsYV8gPT0gMToNCj4gDQo+IC0g ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExNzUNCj4gDQo+ICsgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDExNzgNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx MTc2DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTc5DQo+IA0KPiAgICAg ICAgICAgICAgICAgIGxvY2FsY3R4LkYgPSBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5GTEFH UykNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExNzcNCj4gDQo+ICsgICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExODANCj4gDQo+ICAgICAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDExNzgNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExODEN Cj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0aWNUZXh0RmxhZ3NGaWVsZCgpDQo+IA0K PiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTgzDQo+IA0KPiArICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAxMTg2DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuX2Vyckhh bmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1 dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgICAgICB3aGlsZSBfbGE9PVZmclN5bnRheFBhcnNl ci5CaXRXaXNlT3I6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTE3 OQ0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDExODINCj4gDQo+ICAg ICAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkJpdFdpc2VPcikN Cj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTgwDQo+IA0KPiArICAg ICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTE4Mw0KPiANCj4gICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zdGF0aWNUZXh0RmxhZ3NGaWVsZCgpDQo+IA0KPiAtICAgICAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTE4NQ0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDExODgNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIu c3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQu TEEoMSkNCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTE4Ng0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTE4OQ0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IC0gICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDExODcNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDExOTANCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuS2V5KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTE4OA0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTE5MQ0KPiANCj4gICAgICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gLSAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTE4OQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTE5Mg0KPiANCj4gICAgICAgICAgICAgICAgICBsb2NhbGN0eC5TNCA9IHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDExOTUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTE5 OA0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4g ICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAg aWYgX2xhPT1WZnJTeW50YXhQYXJzZXIuQ29tbWE6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxMTkzDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTk2 DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1h KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTE5NA0KPiANCj4gKyAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTE5Nw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm LnZmclN0YXRlbWVudFN0YXRUYWdMaXN0KGxvY2FsY3R4Lk5vZGUpDQo+IA0KPiANCj4gDQo+IA0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMTk3DQo+IA0KPiArICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDEyMDANCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5TZW1pY29sb24pDQo+IA0KPiAgICAgICAgICBleGNlcHQgUmVjb2duaXRpb25FeGNl cHRpb24gYXMgcmU6DQo+IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHguZXhjZXB0aW9uID0gcmUN Cj4gDQo+IEBAIC03ODgxLDE3ICs3ODkyLDE3IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBh cnNlciApOg0KPiAgICAgICAgICBsb2NhbGN0eCA9IFZmclN5bnRheFBhcnNlci5TdGF0aWNUZXh0 RmxhZ3NGaWVsZENvbnRleHQoc2VsZiwgc2VsZi5fY3R4LA0KPiBzZWxmLnN0YXRlKQ0KPiANCj4g ICAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgsIDEyMiwgc2VsZi5SVUxFX3N0YXRpY1Rl eHRGbGFnc0ZpZWxkKQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gLSAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxMjAxDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyMDQNCj4g DQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAg ICAgICAgICB0b2tlbiA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYg dG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5OdW1iZXJdOg0KPiANCj4gICAgICAgICAgICAgICAg ICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAxMTk5DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx MjAyDQo+IA0KPiAgICAgICAgICAgICAgICAgIGxvY2FsY3R4Lk4gPSBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAg ICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuSW50ZXJhY3RpdmVGbGFn LA0KPiBWZnJTeW50YXhQYXJzZXIuTlZBY2Nlc3NGbGFnLCBWZnJTeW50YXhQYXJzZXIuUmVzZXRS ZXF1aXJlZEZsYWcsDQo+IFZmclN5bnRheFBhcnNlci5SZWNvbm5lY3RSZXF1aXJlZEZsYWcsIFZm clN5bnRheFBhcnNlci5MYXRlQ2hlY2tGbGFnLA0KPiBWZnJTeW50YXhQYXJzZXIuUmVhZE9ubHlG bGFnLCBWZnJTeW50YXhQYXJzZXIuT3B0aW9uT25seUZsYWcsDQo+IFZmclN5bnRheFBhcnNlci5S ZXN0U3R5bGVGbGFnXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0 KGxvY2FsY3R4LCAyKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTIwMA0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTIwMw0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLnF1ZXN0aW9uaGVhZGVyRmxhZ3NGaWVsZCgpDQo+IA0KPiAgICAgICAgICAg ICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbHNlOg0KPiANCj4gQEAgLTc5MzgsMTcg Kzc5NDksMTcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAg IGxvY2FsY3R4ID0gVmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudENyb3NzUmVmZXJlbmNlQ29u dGV4dChzZWxmLA0KPiBzZWxmLl9jdHgsIHNlbGYuc3RhdGUpDQo+IA0KPiAgICAgICAgICBzZWxm LmVudGVyUnVsZShsb2NhbGN0eCwgMTI0LCBzZWxmLlJVTEVfdmZyU3RhdGVtZW50Q3Jvc3NSZWZl cmVuY2UpDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDEyMDUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTIwOA0KPiANCj4gICAg ICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAg IHRva2VuID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBpZiB0b2tlbiBp biBbVmZyU3ludGF4UGFyc2VyLkdvdG9dOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVu dGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxMjAzDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMjA2DQo+IA0K PiAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50R290bygpDQo+IA0KPiAgICAgICAg ICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50 YXhQYXJzZXIuUmVzZXRCdXR0b25dOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVy T3V0ZXJBbHQobG9jYWxjdHgsIDIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAxMjA0DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMjA3DQo+IA0KPiAg ICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50UmVzZXRCdXR0b24oKQ0KPiANCj4gICAg ICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxzZToNCj4gDQo+IEBAIC03 OTY4LDExICs3OTc5LDExIEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAg ICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRl eHQ9Tm9uZSwNCj4gaW52b2tpbmdTdGF0ZTppbnQ9LTEpOg0KPiANCj4gICAgICAgICAgICAgIHN1 cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAg IHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5Ob2RlID0gVmZy VHJlZU5vZGUoRUZJX0lGUl9SRUZfT1ApDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5PcE9iaiA9 IE5vbmUNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLk9IT2JqID0gTm9uZQ0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuTm9kZSA9IElmclRyZWVOb2RlKEVGSV9JRlJfUkVGX09QKQ0KPiANCj4gICAg ICAgICAgICAgIHNlbGYuUVR5cGUgPSBFRklfUVVFU0lPTl9UWVBFLlFVRVNUSU9OX1JFRg0KPiAN Cj4gICAgICAgICAgICAgIHNlbGYuUU4gPSBOb25lICMgVG9rZW4NCj4gDQo+ICsgICAgICAgICAg ICBzZWxmLk4gPSBOb25lICMgVG9rZW4NCj4gDQo+ICsgICAgICAgICAgICBzZWxmLkUgPSBOb25l ICMgVG9rZW4NCj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVmIEdvdG8oc2VsZik6DQo+IA0KPiAg ICAgICAgICAgICAgcmV0dXJuIHNlbGYuZ2V0VG9rZW4oVmZyU3ludGF4UGFyc2VyLkdvdG8sIDAp DQo+IA0KPiBAQCAtODA1NywxMDMgKzgwNjgsMTAzIEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAo IFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLl9sYSA9IDAgIyBUb2tlbiB0eXBlDQo+IA0KPiAg ICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2Fs Y3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMjA3DQo+IA0KPiArICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyMTANCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNo KFZmclN5bnRheFBhcnNlci5Hb3RvKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx MjU1DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyNTgNCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICB0b2tl biA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYgdG9rZW4gaW4gW1Zm clN5bnRheFBhcnNlci5EZXZpY2VQYXRoXToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDEyMDgNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyMTENCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRGV2aWNlUGF0 aCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyMDkNCj4gDQo+ICsgICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyMTINCj4gDQo+ICAgICAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDEyMTANCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyMTMN Cj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5n VG9rZW4pDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMjExDQo+IA0KPiAr ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMjE0DQo+IA0KPiAgICAgICAgICAgICAgICAg IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+IC0gICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDEyMTINCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDEyMTUNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJz ZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTIxMw0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTIxNg0KPiANCj4gICAgICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTIxNA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMTIxNw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5Db21tYSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyMTUN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyMTgNCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRm9ybVNldEd1aWQpDQo+IA0KPiAt ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMjE2DQo+IA0KPiArICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAxMjE5DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx MjE3DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMjIwDQo+IA0KPiAgICAg ICAgICAgICAgICAgIHNlbGYuZ3VpZERlZmluaXRpb24oKQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTIxOA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MTIyMQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5D b21tYSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyMTkNCj4gDQo+ICsg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyMjINCj4gDQo+ICAgICAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRm9ybUlkKQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTIyMA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MTIyMw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5U X181KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTIyMQ0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTIyNA0KPiANCj4gICAgICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAxMjIyDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx MjI1DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNv bW1hKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTIyMw0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTIyNg0KPiANCj4gICAgICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5RdWVzdGlvbikNCj4gDQo+IC0gICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDEyMjQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDEyMjcNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu VF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyMjUNCj4gDQo+ICsg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyMjgNCj4gDQo+ICAgICAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTIyNg0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MTIyOQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5D b21tYSkNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVs aWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5Gb3JtU2V0R3VpZF06DQo+IA0KPiAtICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMjI4DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxMjMxDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLkZvcm1TZXRHdWlkKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MTIyOQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTIzMg0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTIzMA0KPiANCj4gKyAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTIzMw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmd1aWREZWZpbml0 aW9uKCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyMzENCj4gDQo+ICsg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyMzQNCj4gDQo+ICAgICAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAtICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAxMjMyDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx MjM1DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkZv cm1JZCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyMzMNCj4gDQo+ICsg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyMzYNCj4gDQo+ICAgICAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDEyMzQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEy MzcNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVt YmVyKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTIzNQ0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTIzOA0KPiANCj4gICAgICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IC0gICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDEyMzYNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEy MzkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuUXVl c3Rpb24pDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMjM3DQo+IA0KPiAr ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMjQwDQo+IA0KPiAgICAgICAgICAgICAgICAg IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAxMjM4DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx MjQxDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51 bWJlcikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyMzkNCj4gDQo+ICsg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyNDINCj4gDQo+ICAgICAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAgICAgICAgICAgICAgICAg IHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIu Rm9ybUlkXToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyNDENCj4gDQo+ ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyNDQNCj4gDQo+ICAgICAgICAgICAgICAg ICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRm9ybUlkKQ0KPiANCj4gLSAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTI0Mg0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTI0NQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5UX181KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI0Mw0KPiANCj4g KyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI0Ng0KPiANCj4gICAgICAgICAgICAgICAg ICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAxMjQ0DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAxMjQ3DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy LkNvbW1hKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI0NQ0KPiANCj4g KyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI0OA0KPiANCj4gICAgICAgICAgICAgICAg ICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5RdWVzdGlvbikNCj4gDQo+IC0gICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDEyNDYNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDEyNDkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJz ZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyNTENCj4gDQo+ ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyNTQNCj4gDQo+ICAgICAgICAgICAgICAg ICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHRv a2VuID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICAgICAgaWYgdG9rZW4g aW4gW1ZmclN5bnRheFBhcnNlci5TdHJpbmdJZGVudGlmaWVyXToNCj4gDQo+IC0gICAgICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMjQ3DQo+IA0KPiArICAgICAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTI1MA0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgbG9jYWxjdHguUU4g PSBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdJZGVudGlmaWVyKQ0KPiANCj4gLSAg ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyNDgNCj4gDQo+ICsgICAgICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxMjUxDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAg IHBhc3MNCj4gDQo+ICAgICAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFy c2VyLk51bWJlcl06DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI0 OQ0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyNTINCj4gDQo+ICAg ICAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4g DQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMjUwDQo+IA0KPiArICAgICAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI1Mw0KPiANCj4gICAgICAgICAgICAgICAgICAg ICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAgICAgICAgICAgICAg ICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgICAgIGVsc2U6DQo+IA0KPiBAQCAtODE2 MSw1NiArODE3Miw1NiBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gDQo+ IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2Vu IGluIFtWZnJTeW50YXhQYXJzZXIuTnVtYmVyXToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDEyNTMNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI1 NA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI1Ng0KPiANCj4gKyAgICAg ICAgICAgICAgICBsb2NhbGN0eC5OID0gc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVy KQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI1Nw0KPiANCj4gICAgICAg ICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ICAgICAg ICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5 bnRheFBhcnNlci5Qcm9tcHQsIFZmclN5bnRheFBhcnNlci5OYW1lLA0KPiBWZnJTeW50YXhQYXJz ZXIuVmFySWQsIFZmclN5bnRheFBhcnNlci5RdWVzdGlvbklkXToNCj4gDQo+ICAgICAgICAgICAg ICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAgICAgICAgICAgICAg ICAgIHBhc3MNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI1Nw0KPiANCj4gLSAg ICAgICAgICAgIHNlbGYudmZyUXVlc3Rpb25IZWFkZXIobG9jYWxjdHguT3BPYmosIGxvY2FsY3R4 LlFUeXBlKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMjYyDQo+IA0KPiArICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyNjANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnZmclF1 ZXN0aW9uSGVhZGVyKGxvY2FsY3R4Lk5vZGUsIGxvY2FsY3R4LlFUeXBlKQ0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxMjY1DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFu ZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAtICAgICAgICAgICAgbGFfID0gc2VsZi5faW50ZXJwLmFk YXB0aXZlUHJlZGljdChzZWxmLl9pbnB1dCw4MSxzZWxmLl9jdHgpDQo+IA0KPiArICAgICAgICAg ICAgbGFfID0gc2VsZi5faW50ZXJwLmFkYXB0aXZlUHJlZGljdChzZWxmLl9pbnB1dCw4MixzZWxm Ll9jdHgpDQo+IA0KPiAgICAgICAgICAgICAgaWYgbGFfID09IDE6DQo+IA0KPiAtICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxMjU4DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxMjYxDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLkNvbW1hKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI1OQ0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI2Mg0KPiANCj4gICAgICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5GTEFHUykNCj4gDQo+IC0gICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDEyNjANCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDEyNjMNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJz ZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyNjENCj4gDQo+ IC0gICAgICAgICAgICAgICAgc2VsZi52ZnJHb3RvRmxhZ3MobG9jYWxjdHguT3BPYmopDQo+IA0K PiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMjY0DQo+IA0KPiArICAgICAgICAgICAg ICAgIHNlbGYudmZyR290b0ZsYWdzKCkNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDEyNjgNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI3 MQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4g LSAgICAgICAgICAgIGxhXyA9IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRpY3Qoc2VsZi5faW5w dXQsODIsc2VsZi5fY3R4KQ0KPiANCj4gKyAgICAgICAgICAgIGxhXyA9IHNlbGYuX2ludGVycC5h ZGFwdGl2ZVByZWRpY3Qoc2VsZi5faW5wdXQsODMsc2VsZi5fY3R4KQ0KPiANCj4gICAgICAgICAg ICAgIGlmIGxhXyA9PSAxOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI2 NA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI2Nw0KPiANCj4gICAgICAg ICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IC0gICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyNjUNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDEyNjgNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuS2V5KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI2Ng0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI2OQ0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gLSAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMTI2Nw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMTI3MA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5OdW1iZXIpDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxMjcyDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyNzUNCj4gDQo+ICAg ICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAg ICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIF9sYT09VmZy U3ludGF4UGFyc2VyLkNvbW1hOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MTI3MA0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5D b21tYSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyNzENCj4gDQo+ICsg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyNzMNCj4gDQo+ICsgICAgICAgICAgICAgICAg bG9jYWxjdHguRSA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI3NA0KPiANCj4gICAgICAgICAgICAgICAgICBz ZWxmLnZmclN0YXRlbWVudFF1ZXN0aW9uT3B0aW9uTGlzdChsb2NhbGN0eC5Ob2RlKQ0KPiANCj4g DQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI3NA0KPiANCj4gKyAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMjc3DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRj aChWZnJTeW50YXhQYXJzZXIuU2VtaWNvbG9uKQ0KPiANCj4gICAgICAgICAgZXhjZXB0IFJlY29n bml0aW9uRXhjZXB0aW9uIGFzIHJlOg0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LmV4Y2Vw dGlvbiA9IHJlDQo+IA0KPiBAQCAtODIyMywxMiArODIzNCwxMCBAQCBjbGFzcyBWZnJTeW50YXhQ YXJzZXIgKCBQYXJzZXIgKToNCj4gDQo+IA0KPiAgICAgIGNsYXNzIFZmckdvdG9GbGFnc0NvbnRl eHQoUGFyc2VyUnVsZUNvbnRleHQpOg0KPiANCj4gDQo+IA0KPiAtICAgICAgICBkZWYgX19pbml0 X18oc2VsZiwgcGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tp bmdTdGF0ZTppbnQ9LTEsIE9iaj1Ob25lKToNCj4gDQo+ICsgICAgICAgIGRlZiBfX2luaXRfXyhz ZWxmLCBwYXJzZXIsIHBhcmVudDpQYXJzZXJSdWxlQ29udGV4dD1Ob25lLA0KPiBpbnZva2luZ1N0 YXRlOmludD0tMSk6DQo+IA0KPiAgICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhwYXJlbnQs IGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJzZXIN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLk9iaiA9IE5vbmUNCj4gDQo+ICAgICAgICAgICAgICBz ZWxmLkdvdG9GbGFncyA9IDANCj4gDQo+IC0gICAgICAgICAgICBzZWxmLk9iaiA9IE9iag0KPiAN Cj4gDQo+IA0KPiAgICAgICAgICBkZWYgZ290b0ZsYWdzRmllbGQoc2VsZiwgaTppbnQ9Tm9uZSk6 DQo+IA0KPiAgICAgICAgICAgICAgaWYgaSBpcyBOb25lOg0KPiANCj4gQEAgLTgyNTUsMjQgKzgy NjQsMjQgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+IA0KPiANCj4gDQo+ IA0KPiANCj4gDQo+IC0gICAgZGVmIHZmckdvdG9GbGFncyhzZWxmLCBPYmopOg0KPiANCj4gKyAg ICBkZWYgdmZyR290b0ZsYWdzKHNlbGYpOg0KPiANCj4gDQo+IA0KPiAtICAgICAgICBsb2NhbGN0 eCA9IFZmclN5bnRheFBhcnNlci5WZnJHb3RvRmxhZ3NDb250ZXh0KHNlbGYsIHNlbGYuX2N0eCwg c2VsZi5zdGF0ZSwNCj4gT2JqKQ0KPiANCj4gKyAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50YXhQ YXJzZXIuVmZyR290b0ZsYWdzQ29udGV4dChzZWxmLCBzZWxmLl9jdHgsIHNlbGYuc3RhdGUpDQo+ IA0KPiAgICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMTI4LCBzZWxmLlJVTEVfdmZy R290b0ZsYWdzKQ0KPiANCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4gdHlwZQ0KPiAN Cj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChs b2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI3Ng0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMjc5DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5n b3RvRmxhZ3NGaWVsZCgpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyODENCj4g DQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI4NA0KPiANCj4gICAgICAgICAgICAgIHNl bGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYu X2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgd2hpbGUgX2xhPT1WZnJTeW50YXhQYXJz ZXIuQml0V2lzZU9yOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI3Nw0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI4MA0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5CaXRXaXNlT3IpDQo+IA0KPiAtICAg ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMjc4DQo+IA0KPiArICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxMjgxDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZ290b0ZsYWdzRmll bGQoKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI4Mw0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI4Ng0KPiANCj4gICAgICAgICAgICAgICAgICBz ZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICAgICAgX2xhID0g c2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+IA0KPiANCj4gQEAgLTgzMTcsMTcgKzgzMjYsMTcgQEAg Y2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIGxvY2FsY3R4ID0g VmZyU3ludGF4UGFyc2VyLkdvdG9GbGFnc0ZpZWxkQ29udGV4dChzZWxmLCBzZWxmLl9jdHgsIHNl bGYuc3RhdGUpDQo+IA0KPiAgICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMTMwLCBz ZWxmLlJVTEVfZ290b0ZsYWdzRmllbGQpDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyODYNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTI4OQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0K PiANCj4gICAgICAgICAgICAgIHRva2VuID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAg ICAgICAgICBpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLk51bWJlcl06DQo+IA0KPiAgICAg ICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyODQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDEyODcNCj4gDQo+ICAgICAgICAgICAgICAgICAgbG9jYWxjdHguTiA9IHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFz cw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5JbnRl cmFjdGl2ZUZsYWcsDQo+IFZmclN5bnRheFBhcnNlci5OVkFjY2Vzc0ZsYWcsIFZmclN5bnRheFBh cnNlci5SZXNldFJlcXVpcmVkRmxhZywNCj4gVmZyU3ludGF4UGFyc2VyLlJlY29ubmVjdFJlcXVp cmVkRmxhZywgVmZyU3ludGF4UGFyc2VyLkxhdGVDaGVja0ZsYWcsDQo+IFZmclN5bnRheFBhcnNl ci5SZWFkT25seUZsYWcsIFZmclN5bnRheFBhcnNlci5PcHRpb25Pbmx5RmxhZywNCj4gVmZyU3lu dGF4UGFyc2VyLlJlc3RTdHlsZUZsYWddOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVu dGVyT3V0ZXJBbHQobG9jYWxjdHgsIDIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxMjg1DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMjg4DQo+IA0K PiAgICAgICAgICAgICAgICAgIHNlbGYucXVlc3Rpb25oZWFkZXJGbGFnc0ZpZWxkKCkNCj4gDQo+ ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsc2U6DQo+IA0KPiBA QCAtODM0Nyw4ICs4MzU2LDcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ ICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJzZXIsIHBhcmVudDpQYXJzZXJSdWxlQ29u dGV4dD1Ob25lLA0KPiBpbnZva2luZ1N0YXRlOmludD0tMSk6DQo+IA0KPiAgICAgICAgICAgICAg c3VwZXIoKS5fX2luaXRfXyhwYXJlbnQsIGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAg ICAgc2VsZi5wYXJzZXIgPSBwYXJzZXINCj4gDQo+IC0gICAgICAgICAgICBzZWxmLk5vZGUgPSBW ZnJUcmVlTm9kZShFRklfSUZSX1JFU0VUX0JVVFRPTl9PUCkNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLk9wT2JqID0gQ0lmclJlc2V0QnV0dG9uKCkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5v ZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX1JFU0VUX0JVVFRPTl9PUCkNCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLk4gPSBOb25lICMgVG9rZW4NCj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVmIFJl c2V0QnV0dG9uKHNlbGYpOg0KPiANCj4gQEAgLTgzOTksMzMgKzg0MDcsMzMgQEAgY2xhc3MgVmZy U3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2Vu IHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVy T3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEy ODgNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI5MQ0KPiANCj4gICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlJlc2V0QnV0dG9uKQ0KPiANCj4gLSAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxMjg5DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDEyOTINCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5EZWZh dWx0U3RvcmUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyOTANCj4gDQo+ICsg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI5Mw0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDEyOTENCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI5NA0KPiANCj4gICAgICAg ICAgICAgIGxvY2FsY3R4Lk4gPSBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdJZGVu dGlmaWVyKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMjkyDQo+IA0KPiArICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyOTUNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNo KFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0g MTI5Mw0KPiANCj4gLSAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50SGVhZGVyKGxvY2FsY3R4 Lk9wT2JqKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMjk0DQo+IA0KPiArICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyOTYNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnZmclN0 YXRlbWVudEhlYWRlcihsb2NhbGN0eC5Ob2RlKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxMjk3DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu Q29tbWEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEyOTgNCj4gDQo+ICsgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMTMwMQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2Vyckhh bmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxB KDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYgX2xhPT1WZnJTeW50YXhQYXJzZXIuSW1hZ2Ugb3Ig X2xhPT1WZnJTeW50YXhQYXJzZXIuTG9ja2VkOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMTI5NQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTI5OA0K PiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudFN0YXRUYWdMaXN0KGxvY2Fs Y3R4Lk5vZGUpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMjk2DQo+IA0K PiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMjk5DQo+IA0KPiAgICAgICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gDQo+IA0KPiANCj4g DQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTMwMA0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxMzAzDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuRW5kUmVzZXRCdXR0b24pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEz MDENCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTMwNA0KPiANCj4gICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlNlbWljb2xvbikNCj4gDQo+ICAgICAgICAg IGV4Y2VwdCBSZWNvZ25pdGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAgICAgICAgICBs b2NhbGN0eC5leGNlcHRpb24gPSByZQ0KPiANCj4gQEAgLTg0ODQsMzcgKzg0OTIsMzcgQEAgY2xh c3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIGxvY2FsY3R4ID0gVmZy U3ludGF4UGFyc2VyLlZmclN0YXRlbWVudFF1ZXN0aW9uc0NvbnRleHQoc2VsZiwgc2VsZi5fY3R4 LA0KPiBzZWxmLnN0YXRlKQ0KPiANCj4gICAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgs IDEzNCwgc2VsZi5SVUxFX3ZmclN0YXRlbWVudFF1ZXN0aW9ucykNCj4gDQo+ICAgICAgICAgIHRy eToNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTMwOQ0KPiANCj4gKyAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAxMzEyDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxl ci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgdG9rZW4gPSBzZWxmLl9pbnB1dC5MQSgx KQ0KPiANCj4gICAgICAgICAgICAgIGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuQ2hlY2tC b3gsIFZmclN5bnRheFBhcnNlci5BY3Rpb25dOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm LmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxMzAzDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzA2DQo+ IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50Qm9vbGVhblR5cGUoKQ0KPiAN Cj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBp biBbVmZyU3ludGF4UGFyc2VyLkRhdGVdOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVu dGVyT3V0ZXJBbHQobG9jYWxjdHgsIDIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxMzA0DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzA3DQo+IA0K PiAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50RGF0ZSgpDQo+IA0KPiAgICAgICAg ICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50 YXhQYXJzZXIuT25lT2YsIFZmclN5bnRheFBhcnNlci5OdW1lcmljXToNCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAzKQ0KPiANCj4gLSAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMTMwNQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMTMwOA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudE51bWVy aWNUeXBlKCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAg IGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5QYXNzd29yZCwgVmZyU3ludGF4UGFyc2Vy LlN0cmluZ106DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2Nh bGN0eCwgNCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzMDYNCj4gDQo+ ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzMDkNCj4gDQo+ICAgICAgICAgICAgICAg ICAgc2VsZi52ZnJTdGF0ZW1lbnRTdHJpbmdUeXBlKCkNCj4gDQo+ICAgICAgICAgICAgICAgICAg cGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5P cmRlcmVkTGlzdF06DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChs b2NhbGN0eCwgNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzMDcNCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzMTANCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRPcmRlcmVkTGlzdCgpDQo+IA0KPiAgICAgICAgICAgICAg ICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJz ZXIuVGltZV06DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2Nh bGN0eCwgNikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzMDgNCj4gDQo+ ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzMTENCj4gDQo+ICAgICAgICAgICAgICAg ICAgc2VsZi52ZnJTdGF0ZW1lbnRUaW1lKCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0K PiANCj4gICAgICAgICAgICAgIGVsc2U6DQo+IA0KPiBAQCAtODU5Miw1NCArODYwMCw1NCBAQCBj bGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgbG9jYWxjdHggPSBW ZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50UXVlc3Rpb25UYWdDb250ZXh0KHNlbGYsIHNlbGYu X2N0eCwNCj4gc2VsZi5zdGF0ZSkNCj4gDQo+ICAgICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2Fs Y3R4LCAxMzYsIHNlbGYuUlVMRV92ZnJTdGF0ZW1lbnRRdWVzdGlvblRhZykNCj4gDQo+ICAgICAg ICAgIHRyeToNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTMyMg0KPiANCj4gKyAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzI1DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJy SGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgdG9rZW4gPSBzZWxmLl9pbnB1 dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIu SW1hZ2UsIFZmclN5bnRheFBhcnNlci5Mb2NrZWRdOg0KPiANCj4gICAgICAgICAgICAgICAgICBz ZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxMzExDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzE0 DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50U3RhdFRhZygpDQo+IA0K PiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzEyDQo+IA0KPiArICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAxMzE1DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0K PiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLkluY29uc2lzdGVu dElmXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4 LCAyKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTMxNA0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTMxNw0KPiANCj4gICAgICAgICAgICAgICAgICBz ZWxmLnZmclN0YXRlbWVudEluY29uc2lzdGVudElmKCkNCj4gDQo+ICAgICAgICAgICAgICAgICAg cGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5O b1N1Ym1pdElmXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxv Y2FsY3R4LCAzKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTMxNQ0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTMxOA0KPiANCj4gICAgICAgICAgICAg ICAgICBzZWxmLnZmclN0YXRlbWVudE5vU3VibWl0SWYoKQ0KPiANCj4gICAgICAgICAgICAgICAg ICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2Vy LkRpc2FibGVJZl06DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChs b2NhbGN0eCwgNCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzMTYNCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzMTkNCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi52ZnJTdGF0ZW1lbnREaXNhYmxlSWZRdWVzdCgpDQo+IA0KPiAgICAgICAgICAg ICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQ YXJzZXIuUmVmcmVzaF06DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFs dChsb2NhbGN0eCwgNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzMTcN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzMjANCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRSZWZyZXNoKCkNCj4gDQo+ICAgICAgICAgICAgICAg ICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNl ci5WYXJzdG9yZURldmljZV06DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRl ckFsdChsb2NhbGN0eCwgNikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEz MTgNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzMjENCj4gDQo+ICAgICAg ICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRWYXJzdG9yZURldmljZSgpDQo+IA0KPiAgICAg ICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJT eW50YXhQYXJzZXIuR3VpZE9wXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91 dGVyQWx0KGxvY2FsY3R4LCA3KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MTMxOQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTMyMg0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudEV4dGVuc2lvbigpDQo+IA0KPiAgICAgICAg ICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50 YXhQYXJzZXIuUmVmcmVzaEd1aWRdOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVy T3V0ZXJBbHQobG9jYWxjdHgsIDgpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAxMzIwDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzIzDQo+IA0KPiAg ICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50UmVmcmVzaEV2ZW50KCkNCj4gDQo+ICAg ICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1Zm clN5bnRheFBhcnNlci5XYXJuaW5nSWZdOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVu dGVyT3V0ZXJBbHQobG9jYWxjdHgsIDkpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxMzIxDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzI0DQo+IA0K PiAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50V2FybmluZ0lmKCkNCj4gDQo+ICAg ICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsc2U6DQo+IA0KPiBAQCAt ODY1OSw3ICs4NjY3LDcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAg ICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJzZXIsIHBhcmVudDpQYXJzZXJSdWxlQ29udGV4 dD1Ob25lLA0KPiBpbnZva2luZ1N0YXRlOmludD0tMSk6DQo+IA0KPiAgICAgICAgICAgICAgc3Vw ZXIoKS5fX2luaXRfXyhwYXJlbnQsIGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAgICAg c2VsZi5wYXJzZXIgPSBwYXJzZXINCj4gDQo+IC0gICAgICAgICAgICBzZWxmLk5vZGUgPSBWZnJU cmVlTm9kZShFRklfSUZSX0lOQ09OU0lTVEVOVF9JRl9PUCkNCj4gDQo+ICsgICAgICAgICAgICBz ZWxmLk5vZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX0lOQ09OU0lTVEVOVF9JRl9PUCkNCj4gDQo+ IA0KPiANCj4gICAgICAgICAgZGVmIEluY29uc2lzdGVudElmKHNlbGYpOg0KPiANCj4gICAgICAg ICAgICAgIHJldHVybiBzZWxmLmdldFRva2VuKFZmclN5bnRheFBhcnNlci5JbmNvbnNpc3RlbnRJ ZiwgMCkNCj4gDQo+IEBAIC04NzMwLDU3ICs4NzM4LDU3IEBAIGNsYXNzIFZmclN5bnRheFBhcnNl ciAoIFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLl9sYSA9IDAgIyBUb2tlbiB0eXBlDQo+IA0K PiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxv Y2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzI0DQo+IA0KPiAr ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzMjcNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5JbmNvbnNpc3RlbnRJZikNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTMyNQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzI4DQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuUHJvbXB0KQ0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzI2DQo+IA0KPiArICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDEzMjkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5UX181KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzI3DQo+IA0KPiAr ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzMzANCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdUb2tlbikNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LnN0YXRlID0gMTMyOA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzMxDQo+IA0K PiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3BlblBhcmVuKQ0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzI5DQo+IA0KPiArICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDEzMzINCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzMzANCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTMzMw0KPiANCj4gICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3NlUGFyZW4pDQo+IA0KPiAtICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDEzMzENCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTMzNA0KPiAN Cj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4g LSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzQ0DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDEzNDcNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2Vs ZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAg ICAgICAgICAgIGlmIF9sYT09VmZyU3ludGF4UGFyc2VyLkZMQUdTOg0KPiANCj4gLSAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMTMzMg0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMTMzNQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5GTEFHUykNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzMzMNCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzMzYNCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDEzMzQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDEzMzcNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5mbGFnc0ZpZWxkKCkNCj4gDQo+ IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzMzkNCj4gDQo+ICsgICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDEzNDINCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5fZXJySGFu ZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0 LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHdoaWxlIF9sYT09VmZyU3ludGF4UGFyc2Vy LkJpdFdpc2VPcjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzM1 DQo+IA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTMzOA0KPiANCj4gICAg ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQml0V2lzZU9yKQ0K PiANCj4gLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzMzYNCj4gDQo+ICsgICAg ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzM5DQo+IA0KPiAgICAgICAgICAgICAgICAg ICAgICBzZWxmLmZsYWdzRmllbGQoKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDEzNDENCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzQ0 DQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikN Cj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0K PiANCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzNDINCj4gDQo+ICsgICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzNDUNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gLSAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzQ2DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi52ZnJT dGF0ZW1lbnRFeHByZXNzaW9uKCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTM0 Nw0KPiANCj4gLSAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkVuZElmKQ0K PiANCj4gICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzQ5DQo+IA0KPiArICAgICAgICAgICAg c2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uKGxvY2FsY3R4Lk5vZGUpDQo+IA0KPiArICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDEzNTANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5FbmRJZikNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTM1 Mg0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4g LSAgICAgICAgICAgIGxhXyA9IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRpY3Qoc2VsZi5faW5w dXQsOTEsc2VsZi5fY3R4KQ0KPiANCj4gKyAgICAgICAgICAgIGxhXyA9IHNlbGYuX2ludGVycC5h ZGFwdGl2ZVByZWRpY3Qoc2VsZi5faW5wdXQsOTIsc2VsZi5fY3R4KQ0KPiANCj4gICAgICAgICAg ICAgIGlmIGxhXyA9PSAxOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTM0 OA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTM1MQ0KPiANCj4gICAgICAg ICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TZW1pY29sb24pDQo+IA0KPiAN Cj4gDQo+IA0KPiANCj4gQEAgLTg3OTgsNyArODgwNiw3IEBAIGNsYXNzIFZmclN5bnRheFBhcnNl ciAoIFBhcnNlciApOg0KPiAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyc2VyLCBwYXJl bnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tpbmdTdGF0ZTppbnQ9LTEpOg0KPiAN Cj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZva2luZ1N0YXRlKQ0K PiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi5Ob2RlID0gVmZyVHJlZU5vZGUoRUZJX0lGUl9OT19TVUJNSVRfSUZfT1ApDQo+IA0K PiArICAgICAgICAgICAgc2VsZi5Ob2RlID0gSWZyVHJlZU5vZGUoRUZJX0lGUl9OT19TVUJNSVRf SUZfT1ApDQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGRlZiBOb1N1Ym1pdElmKHNlbGYpOg0KPiAN Cj4gICAgICAgICAgICAgIHJldHVybiBzZWxmLmdldFRva2VuKFZmclN5bnRheFBhcnNlci5Ob1N1 Ym1pdElmLCAwKQ0KPiANCj4gQEAgLTg4NjksNTcgKzg4NzcsNTcgQEAgY2xhc3MgVmZyU3ludGF4 UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUN Cj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJB bHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzNTENCj4g DQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTM1NA0KPiANCj4gICAgICAgICAgICAgIHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk5vU3VibWl0SWYpDQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDEzNTINCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTM1NQ0K PiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlByb21wdCkNCj4g DQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTM1Mw0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxMzU2DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTM1NA0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzU3DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nVG9rZW4pDQo+IA0KPiAtICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDEzNTUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTM1OA0KPiAN Cj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4g DQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTM1Ng0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxMzU5DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzU3DQo+IA0K PiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzNjANCj4gDQo+ICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0KPiANCj4gLSAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxMzU4DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzNjENCj4g DQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTM3MQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxMzc0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNl bGYpDQo+IA0KPiAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAg ICAgICAgICAgICBpZiBfbGE9PVZmclN5bnRheFBhcnNlci5GTEFHUzoNCj4gDQo+IC0gICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzNTkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDEzNjINCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuRkxBR1MpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzYwDQo+ IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzYzDQo+IA0KPiAgICAgICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxMzYxDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxMzY0DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZmxhZ3NGaWVsZCgpDQo+IA0K PiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzY2DQo+IA0KPiArICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAxMzY5DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuX2Vyckhh bmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1 dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgICAgICB3aGlsZSBfbGE9PVZmclN5bnRheFBhcnNl ci5CaXRXaXNlT3I6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTM2 Mg0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzNjUNCj4gDQo+ICAg ICAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkJpdFdpc2VPcikN Cj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzYzDQo+IA0KPiArICAg ICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTM2Ng0KPiANCj4gICAgICAgICAgICAgICAg ICAgICAgc2VsZi5mbGFnc0ZpZWxkKCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxMzY4DQo+IA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTM3 MQ0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYp DQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiAN Cj4gDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzY5DQo+IA0KPiArICAg ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzcyDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gDQo+IA0KPiANCj4gDQo+IC0g ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTM3Mw0KPiANCj4gLSAgICAgICAgICAgIHNlbGYudmZy U3RhdGVtZW50RXhwcmVzc2lvbigpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEz NzQNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5FbmRJZikN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTM3Ng0KPiANCj4gKyAgICAgICAgICAg IHNlbGYudmZyU3RhdGVtZW50RXhwcmVzc2lvbihsb2NhbGN0eC5Ob2RlKQ0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxMzc3DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuRW5kSWYpDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEz NzkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ IC0gICAgICAgICAgICBsYV8gPSBzZWxmLl9pbnRlcnAuYWRhcHRpdmVQcmVkaWN0KHNlbGYuX2lu cHV0LDk0LHNlbGYuX2N0eCkNCj4gDQo+ICsgICAgICAgICAgICBsYV8gPSBzZWxmLl9pbnRlcnAu YWRhcHRpdmVQcmVkaWN0KHNlbGYuX2lucHV0LDk1LHNlbGYuX2N0eCkNCj4gDQo+ICAgICAgICAg ICAgICBpZiBsYV8gPT0gMToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEz NzUNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzNzgNCj4gDQo+ICAgICAg ICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU2VtaWNvbG9uKQ0KPiANCj4g DQo+IA0KPiANCj4gDQo+IEBAIC04OTM3LDcgKzg5NDUsNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJz ZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcnNlciwgcGFy ZW50OlBhcnNlclJ1bGVDb250ZXh0PU5vbmUsDQo+IGludm9raW5nU3RhdGU6aW50PS0xKToNCj4g DQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwgaW52b2tpbmdTdGF0ZSkN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0KPiANCj4gLSAgICAgICAg ICAgIHNlbGYuTm9kZSA9IFZmclRyZWVOb2RlKEVGSV9JRlJfRElTQUJMRV9JRl9PUCkNCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLk5vZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX0RJU0FCTEVfSUZf T1ApDQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGRlZiBEaXNhYmxlSWYoc2VsZik6DQo+IA0KPiAg ICAgICAgICAgICAgcmV0dXJuIHNlbGYuZ2V0VG9rZW4oVmZyU3ludGF4UGFyc2VyLkRpc2FibGVJ ZiwgMCkNCj4gDQo+IEBAIC04OTc3LDIxICs4OTg1LDIxIEBAIGNsYXNzIFZmclN5bnRheFBhcnNl ciAoIFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMTQyLCBz ZWxmLlJVTEVfdmZyU3RhdGVtZW50RGlzYWJsZUlmUXVlc3QpDQo+IA0KPiAgICAgICAgICB0cnk6 DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzc4DQo+IA0KPiArICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDEzODENCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5EaXNhYmxlSWYpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzNzkNCj4g DQo+IC0gICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudEV4cHJlc3Npb24oKQ0KPiANCj4gLSAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzgwDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDEzODINCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudEV4cHJlc3Npb24o bG9jYWxjdHguTm9kZSkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTM4Mw0KPiAN Cj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlNlbWljb2xvbikNCj4g DQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTM4MQ0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxMzg0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRRdWVz dGlvbk9wdGlvbkxpc3QobG9jYWxjdHguTm9kZSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0 YXRlID0gMTM4Mg0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzg1DQo+IA0KPiAg ICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRW5kSWYpDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzODQNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTM4Nw0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0K PiANCj4gLSAgICAgICAgICAgIGxhXyA9IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRpY3Qoc2Vs Zi5faW5wdXQsOTUsc2VsZi5fY3R4KQ0KPiANCj4gKyAgICAgICAgICAgIGxhXyA9IHNlbGYuX2lu dGVycC5hZGFwdGl2ZVByZWRpY3Qoc2VsZi5faW5wdXQsOTYsc2VsZi5fY3R4KQ0KPiANCj4gICAg ICAgICAgICAgIGlmIGxhXyA9PSAxOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTM4Mw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTM4Ng0KPiANCj4g ICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TZW1pY29sb24pDQo+ IA0KPiANCj4gDQo+IA0KPiANCj4gQEAgLTkwMDksNyArOTAxNyw3IEBAIGNsYXNzIFZmclN5bnRh eFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyc2Vy LCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tpbmdTdGF0ZTppbnQ9LTEp Og0KPiANCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZva2luZ1N0 YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5Ob2RlID0gVmZyVHJlZU5vZGUoRUZJX0lGUl9SRUZSRVNIX09QKQ0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYuTm9kZSA9IElmclRyZWVOb2RlKEVGSV9JRlJfUkVGUkVTSF9P UCkNCj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVmIFJlZnJlc2goc2VsZik6DQo+IA0KPiAgICAg ICAgICAgICAgcmV0dXJuIHNlbGYuZ2V0VG9rZW4oVmZyU3ludGF4UGFyc2VyLlJlZnJlc2gsIDAp DQo+IA0KPiBAQCAtOTAzOCwxMyArOTA0NiwxMyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQ YXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgsIDE0NCwgc2VsZi5S VUxFX3ZmclN0YXRlbWVudFJlZnJlc2gpDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAxMzg2DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEz ODkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5SZWZyZXNo KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzg3DQo+IA0KPiArICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDEzOTANCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5JbnRlcnZhbCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTM4 OA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzkxDQo+IA0KPiAgICAgICAgICAg ICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTM4OQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzkyDQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiAN Cj4gICAgICAgICAgZXhjZXB0IFJlY29nbml0aW9uRXhjZXB0aW9uIGFzIHJlOg0KPiANCj4gICAg ICAgICAgICAgIGxvY2FsY3R4LmV4Y2VwdGlvbiA9IHJlDQo+IA0KPiBAQCAtOTA2MCw3ICs5MDY4 LDcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIGRlZiBf X2luaXRfXyhzZWxmLCBwYXJzZXIsIHBhcmVudDpQYXJzZXJSdWxlQ29udGV4dD1Ob25lLA0KPiBp bnZva2luZ1N0YXRlOmludD0tMSk6DQo+IA0KPiAgICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRf XyhwYXJlbnQsIGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5wYXJzZXIg PSBwYXJzZXINCj4gDQo+IC0gICAgICAgICAgICBzZWxmLk5vZGUgPSBWZnJUcmVlTm9kZShFRklf SUZSX1ZBUlNUT1JFX0RFVklDRV9PUCkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5vZGUgPSBJ ZnJUcmVlTm9kZShFRklfSUZSX1ZBUlNUT1JFX0RFVklDRV9PUCkNCj4gDQo+IA0KPiANCj4gICAg ICAgICAgZGVmIFZhcnN0b3JlRGV2aWNlKHNlbGYpOg0KPiANCj4gICAgICAgICAgICAgIHJldHVy biBzZWxmLmdldFRva2VuKFZmclN5bnRheFBhcnNlci5WYXJzdG9yZURldmljZSwgMCkNCj4gDQo+ IEBAIC05MDk4LDE5ICs5MTA2LDE5IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciAp Og0KPiAgICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMTQ2LCBzZWxmLlJVTEVfdmZy U3RhdGVtZW50VmFyc3RvcmVEZXZpY2UpDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAxMzkxDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEz OTQNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5WYXJzdG9y ZURldmljZSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTM5Mg0KPiANCj4gKyAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzk1DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRj aChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0g MTM5Mw0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzk2DQo+IA0KPiAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nVG9rZW4pDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzOTQNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTM5Nw0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9w ZW5QYXJlbikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTM5NQ0KPiANCj4gKyAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzk4DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRj aChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAxMzk2DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDEzOTkNCj4gDQo+ICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0KPiANCj4gLSAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxMzk3DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDE0MDANCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5D b21tYSkNCj4gDQo+ICAgICAgICAgIGV4Y2VwdCBSZWNvZ25pdGlvbkV4Y2VwdGlvbiBhcyByZToN Cj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5leGNlcHRpb24gPSByZQ0KPiANCj4gQEAgLTkx MjYsNyArOTEzNCw3IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAg ICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9 Tm9uZSwNCj4gaW52b2tpbmdTdGF0ZTppbnQ9LTEpOg0KPiANCj4gICAgICAgICAgICAgIHN1cGVy KCkuX19pbml0X18ocGFyZW50LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNl bGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5Ob2RlID0gVmZyVHJl ZU5vZGUoRUZJX0lGUl9SRUZSRVNIX0lEX09QKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuTm9k ZSA9IElmclRyZWVOb2RlKEVGSV9JRlJfUkVGUkVTSF9JRF9PUCkNCj4gDQo+IA0KPiANCj4gICAg ICAgICAgZGVmIFJlZnJlc2hHdWlkKHNlbGYpOg0KPiANCj4gICAgICAgICAgICAgIHJldHVybiBz ZWxmLmdldFRva2VuKFZmclN5bnRheFBhcnNlci5SZWZyZXNoR3VpZCwgMCkNCj4gDQo+IEBAIC05 MTU2LDEzICs5MTY0LDEzIEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAg ICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMTQ4LCBzZWxmLlJVTEVfdmZyU3RhdGVt ZW50UmVmcmVzaEV2ZW50KQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAg IHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LnN0YXRlID0gMTM5OQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDAyDQo+IA0K PiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuUmVmcmVzaEd1aWQpDQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0MDANCj4gDQo+ICsgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTQwMw0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0MDENCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQwNA0KPiANCj4gICAgICAgICAgICAgIHNlbGYu Z3VpZERlZmluaXRpb24oKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDAyDQo+ IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0MDUNCj4gDQo+ICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ICAgICAgICAgIGV4Y2VwdCBS ZWNvZ25pdGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5l eGNlcHRpb24gPSByZQ0KPiANCj4gQEAgLTkxNzgsNyArOTE4Niw3IEBAIGNsYXNzIFZmclN5bnRh eFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyc2Vy LCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tpbmdTdGF0ZTppbnQ9LTEp Og0KPiANCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZva2luZ1N0 YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5Ob2RlID0gVmZyVHJlZU5vZGUoRUZJX0lGUl9XQVJOSU5HX0lGX09QKQ0K PiANCj4gKyAgICAgICAgICAgIHNlbGYuTm9kZSA9IElmclRyZWVOb2RlKEVGSV9JRlJfV0FSTklO R19JRl9PUCkNCj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVmIFdhcm5pbmdJZihzZWxmKToNCj4g DQo+ICAgICAgICAgICAgICByZXR1cm4gc2VsZi5nZXRUb2tlbihWZnJTeW50YXhQYXJzZXIuV2Fy bmluZ0lmLCAwKQ0KPiANCj4gQEAgLTkyMzksNDUgKzkyNDcsNDUgQEAgY2xhc3MgVmZyU3ludGF4 UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUN Cj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJB bHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0MDQNCj4g DQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQwNw0KPiANCj4gICAgICAgICAgICAgIHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLldhcm5pbmdJZikNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTQwNQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDA4DQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuUHJvbXB0KQ0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDA2DQo+IA0KPiArICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDE0MDkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5UX181KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDA3DQo+IA0KPiAr ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0MTANCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdUb2tlbikNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LnN0YXRlID0gMTQwOA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDExDQo+IA0K PiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3BlblBhcmVuKQ0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDA5DQo+IA0KPiArICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDE0MTINCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0MTANCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQxMw0KPiANCj4gICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3NlUGFyZW4pDQo+IA0KPiAtICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDE0MTENCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQxNA0KPiAN Cj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4g LSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDE2DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDE0MTkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2Vs ZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAg ICAgICAgICAgIGlmIF9sYT09VmZyU3ludGF4UGFyc2VyLlRpbWVvdXQ6DQo+IA0KPiAtICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDEyDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxNDE1DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLlRpbWVvdXQpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDEz DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDE2DQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDE0DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxNDE3DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0MTUN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0MTgNCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiANCj4gDQo+ IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDE4DQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uKCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LnN0YXRlID0gMTQxOQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLkVuZElmKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDIxDQo+IA0KPiAr ICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uKGxvY2FsY3R4Lk5vZGUpDQo+ IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0MjINCj4gDQo+ICsgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5FbmRJZikNCj4gDQo+ICsgICAgICAgICAgICBzZWxm LnN0YXRlID0gMTQyNA0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhz ZWxmKQ0KPiANCj4gLSAgICAgICAgICAgIGxhXyA9IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRp Y3Qoc2VsZi5faW5wdXQsOTcsc2VsZi5fY3R4KQ0KPiANCj4gKyAgICAgICAgICAgIGxhXyA9IHNl bGYuX2ludGVycC5hZGFwdGl2ZVByZWRpY3Qoc2VsZi5faW5wdXQsOTgsc2VsZi5fY3R4KQ0KPiAN Cj4gICAgICAgICAgICAgIGlmIGxhXyA9PSAxOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMTQyMA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQyMw0K PiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TZW1pY29s b24pDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gQEAgLTkzMjQsMTMgKzkzMzIsMTMgQEAgY2xhc3Mg VmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRv a2VuIHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVu dGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDE0MjYNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQyOQ0KPiANCj4gICAgICAg ICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9s YSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgd2hpbGUgKCgoKF9sYSAt IDEwNikpICYgfjB4M2YpID09IDAgYW5kICgoMSA8PCAoX2xhIC0gMTA2KSkgJiAoKDEgPDwNCj4g KFZmclN5bnRheFBhcnNlci5EaXNhYmxlSWYgLSAxMDYpKSB8ICgxIDw8IChWZnJTeW50YXhQYXJz ZXIuSW5jb25zaXN0ZW50SWYgLSAxMDYpKQ0KPiB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuV2Fy bmluZ0lmIC0gMTA2KSkgfCAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLk5vU3VibWl0SWYNCj4gLSAx MDYpKSB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuSW1hZ2UgLSAxMDYpKSB8ICgxIDw8IChWZnJT eW50YXhQYXJzZXIuTG9ja2VkIC0NCj4gMTA2KSkgfCAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLlJl ZnJlc2ggLSAxMDYpKSB8ICgxIDw8DQo+IChWZnJTeW50YXhQYXJzZXIuVmFyc3RvcmVEZXZpY2Ug LSAxMDYpKSB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuR3VpZE9wIC0NCj4gMTA2KSkpKSAhPSAw KSBvciBfbGE9PVZmclN5bnRheFBhcnNlci5SZWZyZXNoR3VpZDoNCj4gDQo+IC0gICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDE0MjMNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDE0MjYNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRRdWVzdGlv blRhZygpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDI4DQo+IA0KPiAr ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDMxDQo+IA0KPiAgICAgICAgICAgICAgICAg IHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICBfbGEg PSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gDQo+IA0KPiBAQCAtOTM5NSw0MiArOTQwMyw0MiBA QCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgbG9jYWxjdHgg PSBWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50UXVlc3Rpb25PcHRpb25UYWdDb250ZXh0KHNl bGYsDQo+IHNlbGYuX2N0eCwgc2VsZi5zdGF0ZSkNCj4gDQo+ICAgICAgICAgIHNlbGYuZW50ZXJS dWxlKGxvY2FsY3R4LCAxNTQsIHNlbGYuUlVMRV92ZnJTdGF0ZW1lbnRRdWVzdGlvbk9wdGlvblRh ZykNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0g MTQzNg0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDM5DQo+IA0KPiAgICAgICAg ICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgdG9r ZW4gPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIHRva2VuIGluIFtW ZnJTeW50YXhQYXJzZXIuU3VwcHJlc3NJZl06DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYu ZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDE0MjkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0MzINCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRTdXBwcmVzc0lmUXVlc3QoKQ0K PiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tl biBpbiBbVmZyU3ludGF4UGFyc2VyLkdyYXlPdXRJZl06DQo+IA0KPiAgICAgICAgICAgICAgICAg IHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMikNCj4gDQo+IC0gICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDE0MzANCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0 MzMNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRHcmF5T3V0SWZRdWVz dCgpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlm IHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuVmFsdWVdOg0KPiANCj4gICAgICAgICAgICAgICAg ICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDMpDQo+IA0KPiAtICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAxNDMxDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx NDM0DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50VmFsdWUoKQ0KPiAN Cj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBp biBbVmZyU3ludGF4UGFyc2VyLkRlZmF1bHRdOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm LmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDQpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxNDMyDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDM1DQo+ IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50RGVmYXVsdCgpDQo+IA0KPiAg ICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtW ZnJTeW50YXhQYXJzZXIuT3B0aW9uXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRl ck91dGVyQWx0KGxvY2FsY3R4LCA1KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTQzMw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQzNg0KPiANCj4g ICAgICAgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudE9wdGlvbnMoKQ0KPiANCj4gICAgICAg ICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3lu dGF4UGFyc2VyLlJlYWRdOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJB bHQobG9jYWxjdHgsIDYpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDM0 DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDM3DQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50UmVhZCgpDQo+IA0KPiAgICAgICAgICAgICAgICAg IHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIu V3JpdGVdOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxj dHgsIDcpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDM1DQo+IA0KPiAr ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDM4DQo+IA0KPiAgICAgICAgICAgICAgICAg IHNlbGYudmZyU3RhdGVtZW50V3JpdGUoKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+ IA0KPiAgICAgICAgICAgICAgZWxzZToNCj4gDQo+IEBAIC05NDk0LDQ3ICs5NTAyLDQ3IEBAIGNs YXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBsb2NhbGN0eCA9IFZm clN5bnRheFBhcnNlci5GbGFnc0ZpZWxkQ29udGV4dChzZWxmLCBzZWxmLl9jdHgsIHNlbGYuc3Rh dGUpDQo+IA0KPiAgICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMTU2LCBzZWxmLlJV TEVfZmxhZ3NGaWVsZCkNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTQ0Ng0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDQ5DQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAg ICAgICAgICAgdG9rZW4gPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlm IHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuTnVtYmVyXToNCj4gDQo+ICAgICAgICAgICAgICAg ICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTQzOA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MTQ0MQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5O dW1iZXIpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBl bGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuSW50ZXJhY3RpdmVGbGFnXToNCj4gDQo+ICAg ICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAyKQ0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQzOQ0KPiANCj4gKyAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTQ0Mg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5JbnRlcmFjdGl2ZUZsYWcpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MN Cj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuTWFudWZh Y3R1cmluZ0ZsYWddOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQo bG9jYWxjdHgsIDMpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDQwDQo+ IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDQzDQo+IA0KPiAgICAgICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk1hbnVmYWN0dXJpbmdGbGFnKQ0KPiAN Cj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBp biBbVmZyU3ludGF4UGFyc2VyLkRlZmF1bHRGbGFnXToNCj4gDQo+ICAgICAgICAgICAgICAgICAg c2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCA0KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTQ0MQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQ0 NA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5EZWZh dWx0RmxhZykNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAg IGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5SZXNldFJlcXVpcmVkRmxhZ106DQo+IA0K PiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgNSkNCj4gDQo+ IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0NDINCj4gDQo+ICsgICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDE0NDUNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuUmVzZXRSZXF1aXJlZEZsYWcpDQo+IA0KPiAgICAgICAgICAgICAgICAg IHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIu UmVjb25uZWN0UmVxdWlyZWRGbGFnXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRl ck91dGVyQWx0KGxvY2FsY3R4LCA2KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTQ0Mw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQ0Ng0KPiANCj4g ICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5SZWNvbm5lY3RSZXF1 aXJlZEZsYWcpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAg ICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuTlZBY2Nlc3NGbGFnXToNCj4gDQo+ICAg ICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCA3KQ0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQ0NA0KPiANCj4gKyAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTQ0Nw0KPiANCj4gICAgICAgICAgICAgICAgICBsb2NhbGN0eC5OID0gc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTlZBY2Nlc3NGbGFnKQ0KPiANCj4gICAgICAgICAgICAg ICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFy c2VyLkxhdGVDaGVja0ZsYWddOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0 ZXJBbHQobG9jYWxjdHgsIDgpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx NDQ1DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDQ4DQo+IA0KPiAgICAg ICAgICAgICAgICAgIGxvY2FsY3R4LkwgPSBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5MYXRl Q2hlY2tGbGFnKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAg ICAgZWxzZToNCj4gDQo+IEBAIC05NTU0LDcgKzk1NjIsNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJz ZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcnNlciwgcGFy ZW50OlBhcnNlclJ1bGVDb250ZXh0PU5vbmUsDQo+IGludm9raW5nU3RhdGU6aW50PS0xKToNCj4g DQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwgaW52b2tpbmdTdGF0ZSkN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0KPiANCj4gLSAgICAgICAg ICAgIHNlbGYuTm9kZSA9IFZmclRyZWVOb2RlKEVGSV9JRlJfU1VQUFJFU1NfSUZfT1ApDQo+IA0K PiArICAgICAgICAgICAgc2VsZi5Ob2RlID0gSWZyVHJlZU5vZGUoRUZJX0lGUl9TVVBQUkVTU19J Rl9PUCkNCj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVmIFN1cHByZXNzSWYoc2VsZik6DQo+IA0K PiAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZ2V0VG9rZW4oVmZyU3ludGF4UGFyc2VyLlN1cHBy ZXNzSWYsIDApDQo+IA0KPiBAQCAtOTYxNCw0NyArOTYyMiw0NyBAQCBjbGFzcyBWZnJTeW50YXhQ YXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4gdHlwZQ0K PiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFs dChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQ0OA0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDUxDQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3VwcHJlc3NJZikNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTQ0OQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50RXhw cmVzc2lvbigpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0NTANCj4gDQo+ICsg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQ1Mg0KPiANCj4gKyAgICAgICAgICAgIHNlbGYudmZy U3RhdGVtZW50RXhwcmVzc2lvbihsb2NhbGN0eC5Ob2RlKQ0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxNDUzDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuU2VtaWNvbG9uKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDYzDQo+ IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0NjYNCj4gDQo+ICAgICAgICAgICAgICBz ZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxm Ll9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIF9sYT09VmZyU3ludGF4UGFyc2Vy LkZMQUdTOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQ1MQ0KPiANCj4g KyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQ1NA0KPiANCj4gICAgICAgICAgICAgICAg ICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5GTEFHUykNCj4gDQo+IC0gICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDE0NTINCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDE0NTUNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu VF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0NTMNCj4gDQo+ICsg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0NTYNCj4gDQo+ICAgICAgICAgICAgICAgICAg c2VsZi5mbGFnc0ZpZWxkKCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0 NTgNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0NjENCj4gDQo+ICAgICAg ICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAg ICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHdo aWxlIF9sYT09VmZyU3ludGF4UGFyc2VyLkJpdFdpc2VPcjoNCj4gDQo+IC0gICAgICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxNDU0DQo+IA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMTQ1Nw0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuQml0V2lzZU9yKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDE0NTUNCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDU4 DQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZsYWdzRmllbGQoKQ0KPiANCj4gLSAg ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0NjANCj4gDQo+ICsgICAgICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxNDYzDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBzZWxm Ll9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIF9sYSA9 IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDE0NjENCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0NjQNCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+ IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDY1DQo+IA0K PiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0NjgNCj4gDQo+ICAgICAgICAgICAgICBzZWxm LnZmclN0YXRlbWVudFF1ZXN0aW9uT3B0aW9uTGlzdChsb2NhbGN0eC5Ob2RlKQ0KPiANCj4gLSAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDY2DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDE0NjkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5F bmRJZikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQ2OA0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxNDcxDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFu ZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAtICAgICAgICAgICAgbGFfID0gc2VsZi5faW50ZXJwLmFk YXB0aXZlUHJlZGljdChzZWxmLl9pbnB1dCwxMDMsc2VsZi5fY3R4KQ0KPiANCj4gKyAgICAgICAg ICAgIGxhXyA9IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRpY3Qoc2VsZi5faW5wdXQsMTA0LHNl bGYuX2N0eCkNCj4gDQo+ICAgICAgICAgICAgICBpZiBsYV8gPT0gMToNCj4gDQo+IC0gICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0NjcNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDE0NzANCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuU2VtaWNvbG9uKQ0KPiANCj4gDQo+IA0KPiANCj4gDQo+IEBAIC05NjcyLDcgKzk2ODAs NyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgZGVmIF9f aW5pdF9fKHNlbGYsIHBhcnNlciwgcGFyZW50OlBhcnNlclJ1bGVDb250ZXh0PU5vbmUsDQo+IGlu dm9raW5nU3RhdGU6aW50PS0xKToNCj4gDQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9f KHBhcmVudCwgaW52b2tpbmdTdGF0ZSkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNlciA9 IHBhcnNlcg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuTm9kZSA9IFZmclRyZWVOb2RlKEVGSV9J RlJfU1VQUFJFU1NfSUZfT1ApDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2RlID0gSWZyVHJl ZU5vZGUoRUZJX0lGUl9TVVBQUkVTU19JRl9PUCkNCj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVm IEdyYXlPdXRJZihzZWxmKToNCj4gDQo+ICAgICAgICAgICAgICByZXR1cm4gc2VsZi5nZXRUb2tl bihWZnJTeW50YXhQYXJzZXIuR3JheU91dElmLCAwKQ0KPiANCj4gQEAgLTk3MzIsNDcgKzk3NDAs NDcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYu X2xhID0gMCAjIFRva2VuIHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDE0NzANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQ3Mw0K PiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkdyYXlPdXRJZikN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQ3MQ0KPiANCj4gLSAgICAgICAgICAg IHNlbGYudmZyU3RhdGVtZW50RXhwcmVzc2lvbigpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDE0NzINCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQ3NA0KPiANCj4g KyAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50RXhwcmVzc2lvbihsb2NhbGN0eC5Ob2RlKQ0K PiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDc1DQo+IA0KPiAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU2VtaWNvbG9uKQ0KPiANCj4gLSAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAxNDg1DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0ODgN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAg ICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlm IF9sYT09VmZyU3ludGF4UGFyc2VyLkZMQUdTOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMTQ3Mw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQ3Ng0K PiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5GTEFHUykN Cj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0NzQNCj4gDQo+ICsgICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0NzcNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDE0NzUNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0NzgNCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi5mbGFnc0ZpZWxkKCkNCj4gDQo+IC0gICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDE0ODANCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDE0ODMNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNl bGYpDQo+IA0KPiAgICAgICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0K PiAgICAgICAgICAgICAgICAgIHdoaWxlIF9sYT09VmZyU3ludGF4UGFyc2VyLkJpdFdpc2VPcjoN Cj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDc2DQo+IA0KPiArICAg ICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQ3OQ0KPiANCj4gICAgICAgICAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQml0V2lzZU9yKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0NzcNCj4gDQo+ICsgICAgICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAxNDgwDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZs YWdzRmllbGQoKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0ODIN Cj4gDQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDg1DQo+IA0KPiAgICAg ICAgICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAg ICAgICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiANCj4gDQo+IC0g ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0ODMNCj4gDQo+ICsgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDE0ODYNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxNDg3DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0OTANCj4g DQo+ICAgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudFF1ZXN0aW9uT3B0aW9uTGlzdChsb2Nh bGN0eC5Ob2RlKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDg4DQo+IA0KPiAr ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0OTENCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5FbmRJZikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTQ5MA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNDkzDQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAtICAgICAgICAgICAg bGFfID0gc2VsZi5faW50ZXJwLmFkYXB0aXZlUHJlZGljdChzZWxmLl9pbnB1dCwxMDYsc2VsZi5f Y3R4KQ0KPiANCj4gKyAgICAgICAgICAgIGxhXyA9IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRp Y3Qoc2VsZi5faW5wdXQsMTA3LHNlbGYuX2N0eCkNCj4gDQo+ICAgICAgICAgICAgICBpZiBsYV8g PT0gMToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0ODkNCj4gDQo+ICsg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0OTINCj4gDQo+ICAgICAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU2VtaWNvbG9uKQ0KPiANCj4gDQo+IA0KPiANCj4g DQo+IEBAIC05NzkwLDE3ICs5Nzk4LDE0IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNl ciApOg0KPiAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyc2VyLCBwYXJlbnQ6UGFyc2Vy UnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tpbmdTdGF0ZTppbnQ9LTEpOg0KPiANCj4gICAgICAg ICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAg ICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5O b2RlID0gVmZyVHJlZU5vZGUoRUZJX0lGUl9ERUZBVUxUX09QKQ0KPiANCj4gKyAgICAgICAgICAg IHNlbGYuTm9kZSA9IElmclRyZWVOb2RlKEVGSV9JRlJfREVGQVVMVF9PUCkNCj4gDQo+ICAgICAg ICAgICAgICBzZWxmLkQgPSBOb25lICMgVG9rZW4NCj4gDQo+ICsgICAgICAgICAgICBzZWxmLlYg PSBOb25lICMgVmZyU3RhdGVtZW50VmFsdWVDb250ZXh0DQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5TTiA9IE5vbmUgIyBUb2tlbg0KPiANCj4gDQo+IA0KPiAgICAgICAgICBkZWYgRGVmYXVsdChz ZWxmKToNCj4gDQo+ICAgICAgICAgICAgICByZXR1cm4gc2VsZi5nZXRUb2tlbihWZnJTeW50YXhQ YXJzZXIuRGVmYXVsdCwgMCkNCj4gDQo+IA0KPiANCj4gLSAgICAgICAgZGVmIHZmclN0YXRlbWVu dFZhbHVlKHNlbGYpOg0KPiANCj4gLSAgICAgICAgICAgIHJldHVybg0KPiBzZWxmLmdldFR5cGVk UnVsZUNvbnRleHQoVmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudFZhbHVlQ29udGV4dCwwKQ0K PiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gICAgICAgICAgZGVmIENvbW1hKHNlbGYsIGk6aW50PU5v bmUpOg0KPiANCj4gICAgICAgICAgICAgIGlmIGkgaXMgTm9uZToNCj4gDQo+ICAgICAgICAgICAg ICAgICAgcmV0dXJuIHNlbGYuZ2V0VG9rZW5zKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ IEBAIC05ODExLDYgKzk4MTYsMTAgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6 DQo+ICAgICAgICAgICAgICByZXR1cm4NCj4gc2VsZi5nZXRUeXBlZFJ1bGVDb250ZXh0KFZmclN5 bnRheFBhcnNlci5WZnJDb25zdGFudFZhbHVlRmllbGRDb250ZXh0LDApDQo+IA0KPiANCj4gDQo+ IA0KPiANCj4gKyAgICAgICAgZGVmIHZmclN0YXRlbWVudFZhbHVlKHNlbGYpOg0KPiANCj4gKyAg ICAgICAgICAgIHJldHVybg0KPiBzZWxmLmdldFR5cGVkUnVsZUNvbnRleHQoVmZyU3ludGF4UGFy c2VyLlZmclN0YXRlbWVudFZhbHVlQ29udGV4dCwwKQ0KPiANCj4gKw0KPiANCj4gKw0KPiANCj4g ICAgICAgICAgZGVmIERlZmF1bHRTdG9yZShzZWxmKToNCj4gDQo+ICAgICAgICAgICAgICByZXR1 cm4gc2VsZi5nZXRUb2tlbihWZnJTeW50YXhQYXJzZXIuRGVmYXVsdFN0b3JlLCAwKQ0KPiANCj4g DQo+IA0KPiBAQCAtOTgzNiw0MCArOTg0NSw0MCBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQ YXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4gdHlwZQ0KPiANCj4gICAg ICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0 eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQ5Mg0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxNDk1DQo+IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHguRCA9 IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkRlZmF1bHQpDQo+IA0KPiANCj4gDQo+IC0gICAg ICAgICAgICBzZWxmLnN0YXRlID0gMTUwMA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAxNTAzDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+ IA0KPiAgICAgICAgICAgICAgdG9rZW4gPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAg ICAgICAgIGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuVmFsdWVdOg0KPiANCj4gLSAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQ5Mw0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxm LnZmclN0YXRlbWVudFZhbHVlKCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDE0OTQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0OTYNCj4gDQo+ICsg ICAgICAgICAgICAgICAgbG9jYWxjdHguViA9IHNlbGYudmZyU3RhdGVtZW50VmFsdWUoKQ0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQ5Nw0KPiANCj4gICAgICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ICAgICAgICAgICAg ICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBh cnNlci5UX181XToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0OTYNCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE0OTkNCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDE0OTcNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDE1MDANCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi52ZnJDb25zdGFudFZhbHVlRmll bGQoKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTQ5OA0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTUwMQ0KPiANCj4gICAgICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ICAgICAgICAgICAgICAgICAg cGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAgICAgICAgICAgICAgICAgIHJh aXNlIE5vVmlhYmxlQWx0RXhjZXB0aW9uKHNlbGYpDQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTUwNg0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTA5 DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAg ICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBp ZiBfbGE9PVZmclN5bnRheFBhcnNlci5EZWZhdWx0U3RvcmU6DQo+IA0KPiAtICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAxNTAyDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAxNTA1DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy LkRlZmF1bHRTdG9yZSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1MDMN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1MDYNCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1MDQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDE1MDcNCj4gDQo+ICAgICAgICAgICAgICAgICAgbG9jYWxjdHguU04gPSBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdJZGVudGlmaWVyKQ0KPiANCj4gLSAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTUwNQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTUwOA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5Db21tYSkNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiBAQCAtOTg4Nyw3ICs5ODk2LDcgQEAgY2xh c3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIGRlZiBfX2luaXRfXyhz ZWxmLCBwYXJzZXIsIHBhcmVudDpQYXJzZXJSdWxlQ29udGV4dD1Ob25lLA0KPiBpbnZva2luZ1N0 YXRlOmludD0tMSk6DQo+IA0KPiAgICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhwYXJlbnQs IGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJzZXIN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLk5vZGUgPSBWZnJUcmVlTm9kZShFRklfSUZSX1ZBTFVF X09QKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuTm9kZSA9IElmclRyZWVOb2RlKEVGSV9JRlJf VkFMVUVfT1ApDQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGRlZiBWYWx1ZShzZWxmKToNCj4gDQo+ ICAgICAgICAgICAgICByZXR1cm4gc2VsZi5nZXRUb2tlbihWZnJTeW50YXhQYXJzZXIuVmFsdWUs IDApDQo+IA0KPiBAQCAtOTkxNCwxMiArOTkyMywxMiBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIg KCBQYXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgsIDE2NCwgc2Vs Zi5SVUxFX3ZmclN0YXRlbWVudFZhbHVlKQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAg ICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTUwOA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx NTExDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVmFsdWUp DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1MDkNCj4gDQo+ICsgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTUxMg0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3lu dGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1MTANCj4g DQo+IC0gICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudEV4cHJlc3Npb24oKQ0KPiANCj4gKyAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTEzDQo+IA0KPiArICAgICAgICAgICAgc2VsZi52ZnJT dGF0ZW1lbnRFeHByZXNzaW9uKGxvY2FsY3R4Lk5vZGUpDQo+IA0KPiAgICAgICAgICBleGNlcHQg UmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHgu ZXhjZXB0aW9uID0gcmUNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnJlcG9y dEVycm9yKHNlbGYsIHJlKQ0KPiANCj4gQEAgLTk5NTgsNyArOTk2Nyw3IEBAIGNsYXNzIFZmclN5 bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0 eCwgMTY2LCBzZWxmLlJVTEVfdmZyU3RhdGVtZW50T3B0aW9ucykNCj4gDQo+ICAgICAgICAgIHRy eToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1MTINCj4gDQo+ICsgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTUxNQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50T25l T2ZPcHRpb24oKQ0KPiANCj4gICAgICAgICAgZXhjZXB0IFJlY29nbml0aW9uRXhjZXB0aW9uIGFz IHJlOg0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LmV4Y2VwdGlvbiA9IHJlDQo+IA0KPiBA QCAtOTk3NCw5ICs5OTgzLDEwIEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0K PiAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNv bnRleHQ9Tm9uZSwNCj4gaW52b2tpbmdTdGF0ZTppbnQ9LTEpOg0KPiANCj4gICAgICAgICAgICAg IHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAg ICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5Ob2RlID0g VmZyVHJlZU5vZGUoRUZJX0lGUl9PTkVfT0ZfT1BUSU9OX09QKQ0KPiANCj4gKyAgICAgICAgICAg IHNlbGYuTm9kZSA9IElmclRyZWVOb2RlKEVGSV9JRlJfT05FX09GX09QVElPTl9PUCkNCj4gDQo+ ICAgICAgICAgICAgICBzZWxmLkYgPSBOb25lICMgVG9rZW4NCj4gDQo+ICAgICAgICAgICAgICBz ZWxmLktOID0gTm9uZSAjIFRva2VuDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5UID0gTm9uZSAj IFRva2VuDQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGRlZiBPcHRpb24oc2VsZik6DQo+IA0KPiAg ICAgICAgICAgICAgcmV0dXJuIHNlbGYuZ2V0VG9rZW4oVmZyU3ludGF4UGFyc2VyLk9wdGlvbiwg MCkNCj4gDQo+IEBAIC0xMDA1MSw2MyArMTAwNjEsNjMgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2Vy ICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUNCj4gDQo+ ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9j YWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1MTQNCj4gDQo+ICsg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTUxNw0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLk9wdGlvbikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTUxNQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTE4DQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVGV4dCkNCj4gDQo+IC0gICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTUxNg0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx NTE5DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTUxNw0KPiANCj4gKyAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAxNTIwDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuU3RyaW5nVG9rZW4pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1 MTgNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTUyMQ0KPiANCj4gICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+IC0gICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTUxOQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx NTIyDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVy KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTIwDQo+IA0KPiArICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDE1MjMNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx NTIxDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1MjQNCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IC0gICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTUyMg0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTI1 DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVmFsdWUpDQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1MjMNCj4gDQo+ICsgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTUyNg0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1MjQNCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTUyNw0KPiANCj4gICAgICAgICAgICAgIHNlbGYu dmZyQ29uc3RhbnRWYWx1ZUZpZWxkKCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0g MTUyNQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTI4DQo+IA0KPiAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDE1MjYNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTUy OQ0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LkYgPSBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5GTEFHUykNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTUyNw0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTMwDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTUyOA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTMxDQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi52ZnJPbmVPZk9wdGlvbkZsYWdzKCkNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTUzMw0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTM2DQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAtICAg ICAgICAgICAgbGFfID0gc2VsZi5faW50ZXJwLmFkYXB0aXZlUHJlZGljdChzZWxmLl9pbnB1dCwx MDksc2VsZi5fY3R4KQ0KPiANCj4gKyAgICAgICAgICAgIGxhXyA9IHNlbGYuX2ludGVycC5hZGFw dGl2ZVByZWRpY3Qoc2VsZi5faW5wdXQsMTEwLHNlbGYuX2N0eCkNCj4gDQo+ICAgICAgICAgICAg ICBpZiBsYV8gPT0gMToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1MjkN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1MzINCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAtICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTMwDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxNTMzDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLktleSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1MzENCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1MzQNCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDE1MzINCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDE1MzUNCj4gDQo+ICAgICAgICAgICAgICAgICAgbG9jYWxjdHguS04gPSBzZWxmLm1hdGNo KFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAxNTM5DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1 NDINCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAg IHdoaWxlIF9sYT09VmZyU3ludGF4UGFyc2VyLkNvbW1hOg0KPiANCj4gLSAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTUzNQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDE1MzYNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1MzgNCj4gDQo+ICsg ICAgICAgICAgICAgICAgbG9jYWxjdHguVCA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNv bW1hKQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTUzOQ0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLnZmckltYWdlVGFnKCkNCj4gDQo+IC0gICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDE1NDENCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1 NDQNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+ IA0KPiAgICAgICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiANCj4g DQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTU0Mg0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxNTQ1DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuU2VtaWNvbG9uKQ0KPiANCj4gICAgICAgICAgZXhjZXB0IFJlY29nbml0aW9uRXhjZXB0 aW9uIGFzIHJlOg0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LmV4Y2VwdGlvbiA9IHJlDQo+ IA0KPiBAQCAtMTAxNTgsMTcgKzEwMTY4LDE3IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBh cnNlciApOg0KPiAgICAgICAgICBzZWxmLl9sYSA9IDAgIyBUb2tlbiB0eXBlDQo+IA0KPiAgICAg ICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4 LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTQ0DQo+IA0KPiArICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDE1NDcNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm9uZW9mb3B0 aW9uRmxhZ3NGaWVsZCgpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1NDkNCj4g DQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTU1Mg0KPiANCj4gICAgICAgICAgICAgIHNl bGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYu X2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgd2hpbGUgX2xhPT1WZnJTeW50YXhQYXJz ZXIuQml0V2lzZU9yOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTU0NQ0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTU0OA0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5CaXRXaXNlT3IpDQo+IA0KPiAtICAg ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTQ2DQo+IA0KPiArICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxNTQ5DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYub25lb2ZvcHRpb25G bGFnc0ZpZWxkKCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1NTENCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1NTQNCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgICAg IF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiANCj4gDQo+IEBAIC0xMDI0MSw2MiArMTAy NTEsNjIgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIGxv Y2FsY3R4ID0gVmZyU3ludGF4UGFyc2VyLk9uZW9mb3B0aW9uRmxhZ3NGaWVsZENvbnRleHQoc2Vs Ziwgc2VsZi5fY3R4LA0KPiBzZWxmLnN0YXRlKQ0KPiANCj4gICAgICAgICAgc2VsZi5lbnRlclJ1 bGUobG9jYWxjdHgsIDE3Miwgc2VsZi5SVUxFX29uZW9mb3B0aW9uRmxhZ3NGaWVsZCkNCj4gDQo+ ICAgICAgICAgIHRyeToNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTU2Mw0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTY2DQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgdG9rZW4gPSBzZWxm Ll9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIHRva2VuIGluIFtWZnJTeW50YXhQ YXJzZXIuTnVtYmVyXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0 KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTU1Mg0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTU1NQ0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAgICAgICAg ICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50 YXhQYXJzZXIuT3B0aW9uRGVmYXVsdF06DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50 ZXJPdXRlckFsdChsb2NhbGN0eCwgMikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDE1NTMNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1NTYNCj4gDQo+ ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3B0aW9uRGVmYXVs dCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYg dG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5PcHRpb25EZWZhdWx0TWZnXToNCj4gDQo+ICAgICAg ICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAzKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTU1NA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMTU1Nw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5PcHRpb25EZWZhdWx0TWZnKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+ IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLkludGVyYWN0 aXZlRmxhZ106DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2Nh bGN0eCwgNCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1NTUNCj4gDQo+ ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1NTgNCj4gDQo+ICAgICAgICAgICAgICAg ICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuSW50ZXJhY3RpdmVGbGFnKQ0KPiANCj4gICAg ICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZy U3ludGF4UGFyc2VyLlJlc2V0UmVxdWlyZWRGbGFnXToNCj4gDQo+ICAgICAgICAgICAgICAgICAg c2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCA1KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTU1Ng0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTU1 OQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5SZXNl dFJlcXVpcmVkRmxhZykNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAg ICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5SZXN0U3R5bGVGbGFnXToNCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCA2KQ0KPiAN Cj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTU1Nw0KPiANCj4gKyAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTU2MA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNo KFZmclN5bnRheFBhcnNlci5SZXN0U3R5bGVGbGFnKQ0KPiANCj4gICAgICAgICAgICAgICAgICBw YXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLlJl Y29ubmVjdFJlcXVpcmVkRmxhZ106DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJP dXRlckFsdChsb2NhbGN0eCwgNykNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDE1NTgNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1NjENCj4gDQo+ICAg ICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuUmVjb25uZWN0UmVxdWly ZWRGbGFnKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAg ZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLk1hbnVmYWN0dXJpbmdGbGFnXToNCj4gDQo+ ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCA4KQ0KPiANCj4g LSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTU1OQ0KPiANCj4gKyAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTU2Mg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5NYW51ZmFjdHVyaW5nRmxhZykNCj4gDQo+ICAgICAgICAgICAgICAgICAg cGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5E ZWZhdWx0RmxhZ106DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChs b2NhbGN0eCwgOSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1NjANCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1NjMNCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRGVmYXVsdEZsYWcpDQo+IA0KPiAgICAg ICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJT eW50YXhQYXJzZXIuTlZBY2Nlc3NGbGFnXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5l bnRlck91dGVyQWx0KGxvY2FsY3R4LCAxMCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDE1NjENCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1NjQNCj4g DQo+ICAgICAgICAgICAgICAgICAgbG9jYWxjdHguQSA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLk5WQWNjZXNzRmxhZykNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAg ICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5MYXRlQ2hlY2tGbGFnXToN Cj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxMSkN Cj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1NjINCj4gDQo+ICsgICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1NjUNCj4gDQo+ICAgICAgICAgICAgICAgICAgbG9jYWxj dHguTCA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkxhdGVDaGVja0ZsYWcpDQo+IA0KPiAg ICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbHNlOg0KPiANCj4gQEAg LTEwMzE2LDcgKzEwMzI2LDcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ ICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJzZXIsIHBhcmVudDpQYXJzZXJSdWxlQ29u dGV4dD1Ob25lLA0KPiBpbnZva2luZ1N0YXRlOmludD0tMSk6DQo+IA0KPiAgICAgICAgICAgICAg c3VwZXIoKS5fX2luaXRfXyhwYXJlbnQsIGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAg ICAgc2VsZi5wYXJzZXIgPSBwYXJzZXINCj4gDQo+IC0gICAgICAgICAgICBzZWxmLk5vZGUgPSBW ZnJUcmVlTm9kZShFRklfSUZSX1JFQURfT1ApDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2Rl ID0gSWZyVHJlZU5vZGUoRUZJX0lGUl9SRUFEX09QKQ0KPiANCj4gDQo+IA0KPiAgICAgICAgICBk ZWYgUmVhZChzZWxmKToNCj4gDQo+ICAgICAgICAgICAgICByZXR1cm4gc2VsZi5nZXRUb2tlbihW ZnJTeW50YXhQYXJzZXIuUmVhZCwgMCkNCj4gDQo+IEBAIC0xMDM0NiwxMSArMTAzNTYsMTEgQEAg Y2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuZW50ZXJS dWxlKGxvY2FsY3R4LCAxNzQsIHNlbGYuUlVMRV92ZnJTdGF0ZW1lbnRSZWFkKQ0KPiANCj4gICAg ICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0 eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTU2NQ0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxNTY4DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuUmVhZCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTU2 Ng0KPiANCj4gLSAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50RXhwcmVzc2lvbigpDQo+IA0K PiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1NjcNCj4gDQo+ICsgICAgICAgICAgICBzZWxm LnN0YXRlID0gMTU2OQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50RXhwcmVz c2lvbihsb2NhbGN0eC5Ob2RlKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTcw DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU2VtaWNvbG9u KQ0KPiANCj4gICAgICAgICAgZXhjZXB0IFJlY29nbml0aW9uRXhjZXB0aW9uIGFzIHJlOg0KPiAN Cj4gICAgICAgICAgICAgIGxvY2FsY3R4LmV4Y2VwdGlvbiA9IHJlDQo+IA0KPiBAQCAtMTAzNjYs NyArMTAzNzYsNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAg ICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcnNlciwgcGFyZW50OlBhcnNlclJ1bGVDb250ZXh0PU5v bmUsDQo+IGludm9raW5nU3RhdGU6aW50PS0xKToNCj4gDQo+ICAgICAgICAgICAgICBzdXBlcigp Ll9faW5pdF9fKHBhcmVudCwgaW52b2tpbmdTdGF0ZSkNCj4gDQo+ICAgICAgICAgICAgICBzZWxm LnBhcnNlciA9IHBhcnNlcg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuTm9kZSA9IFZmclRyZWVO b2RlKEVGSV9JRlJfV1JJVEVfT1ApDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2RlID0gSWZy VHJlZU5vZGUoRUZJX0lGUl9XUklURV9PUCkNCj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVmIFdy aXRlKHNlbGYpOg0KPiANCj4gICAgICAgICAgICAgIHJldHVybiBzZWxmLmdldFRva2VuKFZmclN5 bnRheFBhcnNlci5Xcml0ZSwgMCkNCj4gDQo+IEBAIC0xMDM5NiwxMSArMTA0MDYsMTEgQEAgY2xh c3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuZW50ZXJSdWxl KGxvY2FsY3R4LCAxNzYsIHNlbGYuUlVMRV92ZnJTdGF0ZW1lbnRXcml0ZSkNCj4gDQo+ICAgICAg ICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgs IDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1NjkNCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTU3Mg0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLldyaXRlKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTcw DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uKCkNCj4gDQo+ IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTU3MQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxNTczDQo+IA0KPiArICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNz aW9uKGxvY2FsY3R4Lk5vZGUpDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1NzQN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TZW1pY29sb24p DQo+IA0KPiAgICAgICAgICBleGNlcHQgUmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0K PiAgICAgICAgICAgICAgbG9jYWxjdHguZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC0xMDQ0NSwx MyArMTA0NTUsMTMgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAg ICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1NzYNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTU3OQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0K PiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAg ICAgICAgd2hpbGUgKCgoKF9sYSAtIDYxKSkgJiB+MHgzZikgPT0gMCBhbmQgKCgxIDw8IChfbGEg LSA2MSkpICYgKCgxIDw8DQo+IChWZnJTeW50YXhQYXJzZXIuT3B0aW9uIC0gNjEpKSB8ICgxIDw8 IChWZnJTeW50YXhQYXJzZXIuR3JheU91dElmIC0gNjEpKSB8ICgxIDw8DQo+IChWZnJTeW50YXhQ YXJzZXIuRGVmYXVsdCAtIDYxKSkgfCAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLlN1cHByZXNzSWYg LSA2MSkpIHwgKDENCj4gPDwgKFZmclN5bnRheFBhcnNlci5EaXNhYmxlSWYgLSA2MSkpIHwgKDEg PDwgKFZmclN5bnRheFBhcnNlci5JbmNvbnNpc3RlbnRJZiAtDQo+IDYxKSkgfCAoMSA8PCAoVmZy U3ludGF4UGFyc2VyLldhcm5pbmdJZiAtIDYxKSkgfCAoMSA8PA0KPiAoVmZyU3ludGF4UGFyc2Vy Lk5vU3VibWl0SWYgLSA2MSkpKSkgIT0gMCkgb3IgKCgoKF9sYSAtIDE0NCkpICYgfjB4M2YpID09 IDAgYW5kDQo+ICgoMSA8PCAoX2xhIC0gMTQ0KSkgJiAoKDEgPDwgKFZmclN5bnRheFBhcnNlci5J bWFnZSAtIDE0NCkpIHwgKDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5Mb2NrZWQgLSAxNDQpKSB8 ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuVmFsdWUgLSAxNDQpKSB8ICgxIDw8DQo+IChWZnJTeW50 YXhQYXJzZXIuUmVhZCAtIDE0NCkpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5Xcml0ZSAtIDE0 NCkpIHwgKDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5SZWZyZXNoIC0gMTQ0KSkgfCAoMSA8PCAo VmZyU3ludGF4UGFyc2VyLlZhcnN0b3JlRGV2aWNlIC0gMTQ0KSkNCj4gfCAoMSA8PCAoVmZyU3lu dGF4UGFyc2VyLkd1aWRPcCAtIDE0NCkpKSkgIT0gMCkgb3INCj4gX2xhPT1WZnJTeW50YXhQYXJz ZXIuUmVmcmVzaEd1aWQ6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTcz DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTc2DQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50UXVlc3Rpb25PcHRpb24oKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTU3OA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMTU4MQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5 bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkN Cj4gDQo+IA0KPiANCj4gQEAgLTEwNDk2LDE3ICsxMDUwNiwxNyBAQCBjbGFzcyBWZnJTeW50YXhQ YXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50YXhQYXJzZXIu VmZyU3RhdGVtZW50UXVlc3Rpb25PcHRpb25Db250ZXh0KHNlbGYsDQo+IHNlbGYuX2N0eCwgc2Vs Zi5zdGF0ZSkNCj4gDQo+ICAgICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAxODAsIHNl bGYuUlVMRV92ZnJTdGF0ZW1lbnRRdWVzdGlvbk9wdGlvbikNCj4gDQo+ICAgICAgICAgIHRyeToN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTU4MQ0KPiANCj4gKyAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAxNTg0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5z eW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgdG9rZW4gPSBzZWxmLl9pbnB1dC5MQSgxKQ0K PiANCj4gICAgICAgICAgICAgIGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuRGlzYWJsZUlm LCBWZnJTeW50YXhQYXJzZXIuSW5jb25zaXN0ZW50SWYsDQo+IFZmclN5bnRheFBhcnNlci5XYXJu aW5nSWYsIFZmclN5bnRheFBhcnNlci5Ob1N1Ym1pdElmLCBWZnJTeW50YXhQYXJzZXIuSW1hZ2Us DQo+IFZmclN5bnRheFBhcnNlci5Mb2NrZWQsIFZmclN5bnRheFBhcnNlci5SZWZyZXNoLA0KPiBW ZnJTeW50YXhQYXJzZXIuVmFyc3RvcmVEZXZpY2UsIFZmclN5bnRheFBhcnNlci5HdWlkT3AsDQo+ IFZmclN5bnRheFBhcnNlci5SZWZyZXNoR3VpZF06DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNl bGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDE1NzkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1ODIN Cj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRRdWVzdGlvblRhZygpDQo+ IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2Vu IGluIFtWZnJTeW50YXhQYXJzZXIuT3B0aW9uLCBWZnJTeW50YXhQYXJzZXIuR3JheU91dElmLA0K PiBWZnJTeW50YXhQYXJzZXIuRGVmYXVsdCwgVmZyU3ludGF4UGFyc2VyLlN1cHByZXNzSWYsIFZm clN5bnRheFBhcnNlci5WYWx1ZSwNCj4gVmZyU3ludGF4UGFyc2VyLlJlYWQsIFZmclN5bnRheFBh cnNlci5Xcml0ZV06DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChs b2NhbGN0eCwgMikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1ODANCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1ODMNCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRRdWVzdGlvbk9wdGlvblRhZygpDQo+IA0KPiAgICAgICAg ICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbHNlOg0KPiANCj4gQEAgLTEwNTUz LDE3ICsxMDU2MywxNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAg ICAgICAgbG9jYWxjdHggPSBWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50Qm9vbGVhblR5cGVD b250ZXh0KHNlbGYsDQo+IHNlbGYuX2N0eCwgc2VsZi5zdGF0ZSkNCj4gDQo+ICAgICAgICAgIHNl bGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAxODIsIHNlbGYuUlVMRV92ZnJTdGF0ZW1lbnRCb29sZWFu VHlwZSkNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTU4NQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTg4DQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAg dG9rZW4gPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIHRva2VuIGlu IFtWZnJTeW50YXhQYXJzZXIuQ2hlY2tCb3hdOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm LmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxNTgzDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTg2DQo+ IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50Q2hlY2tCb3goKQ0KPiANCj4g ICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBb VmZyU3ludGF4UGFyc2VyLkFjdGlvbl06DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50 ZXJPdXRlckFsdChsb2NhbGN0eCwgMikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDE1ODQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1ODcNCj4gDQo+ ICAgICAgICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRBY3Rpb24oKQ0KPiANCj4gICAgICAg ICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxzZToNCj4gDQo+IEBAIC0xMDU4 Myw4ICsxMDU5Myw4IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAg ICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9 Tm9uZSwNCj4gaW52b2tpbmdTdGF0ZTppbnQ9LTEpOg0KPiANCj4gICAgICAgICAgICAgIHN1cGVy KCkuX19pbml0X18ocGFyZW50LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNl bGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5Ob2RlID0gVmZyVHJl ZU5vZGUoRUZJX0lGUl9DSEVDS0JPWF9PUCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLk9wT2Jq ID0gQ0lmckNoZWNrQm94KCkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5vZGUgPSBJZnJUcmVl Tm9kZShFRklfSUZSX0NIRUNLQk9YX09QKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuR3VpZE5v ZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX0dVSURfT1ApDQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5RVHlwZSA9IEVGSV9RVUVTSU9OX1RZUEUuUVVFU1RJT05fTk9STUFMDQo+IA0KPiAgICAgICAg ICAgICAgc2VsZi5MID0gTm9uZSAjIFRva2VuDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5GID0g Tm9uZSAjIFRva2VuDQo+IA0KPiBAQCAtMTA2NDgsNDcgKzEwNjU4LDQ3IEBAIGNsYXNzIFZmclN5 bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLl9sYSA9IDAgIyBUb2tlbiB0 eXBlDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91 dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTg3 DQo+IA0KPiAtICAgICAgICAgICAgbG9jYWxjdHguTCA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLkNoZWNrQm94KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTg4DQo+IA0K PiAtICAgICAgICAgICAgc2VsZi52ZnJRdWVzdGlvbkJhc2VJbmZvKGxvY2FsY3R4Lk9wT2JqLCBs b2NhbGN0eC5RVHlwZSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTU4OQ0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50SGVhZGVyKGxvY2FsY3R4Lk9wT2JqKQ0K PiANCj4gICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTkwDQo+IA0KPiArICAgICAgICAgICAg bG9jYWxjdHguTCA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNoZWNrQm94KQ0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTkxDQo+IA0KPiArICAgICAgICAgICAgc2VsZi52 ZnJRdWVzdGlvbkJhc2VJbmZvKGxvY2FsY3R4Lk5vZGUsIGxvY2FsY3R4LlFUeXBlKQ0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTkyDQo+IA0KPiArICAgICAgICAgICAgc2VsZi52 ZnJTdGF0ZW1lbnRIZWFkZXIobG9jYWxjdHguTm9kZSkNCj4gDQo+ICsgICAgICAgICAgICBzZWxm LnN0YXRlID0gMTU5Mw0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLkNvbW1hKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTk2DQo+IA0KPiAr ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE1OTkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9l cnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1 dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIF9sYT09VmZyU3ludGF4UGFyc2VyLkZMQUdT Og0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTU5MQ0KPiANCj4gKyAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTU5NA0KPiANCj4gICAgICAgICAgICAgICAgICBsb2Nh bGN0eC5GID0gc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRkxBR1MpDQo+IA0KPiAtICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTkyDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxNTk1DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTkzDQo+ IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTk2DQo+IA0KPiAgICAgICAgICAg ICAgICAgIHNlbGYudmZyQ2hlY2tCb3hGbGFncygpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxNTk0DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTk3 DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1h KQ0KPiANCj4gDQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTYwMg0K PiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjA1DQo+IA0KPiAgICAgICAgICAgICAg c2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgX2xhID0gc2Vs Zi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBpZiBfbGE9PVZmclN5bnRheFBhcnNl ci5LZXk6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNTk4DQo+IA0KPiAr ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjAxDQo+IA0KPiAgICAgICAgICAgICAgICAg IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLktleSkNCj4gDQo+IC0gICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDE1OTkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2 MDINCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9f NSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2MDANCj4gDQo+ICsgICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2MDMNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTYwMQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTYw NA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21t YSkNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2MDQN Cj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTYwNw0KPiANCj4gICAgICAgICAgICAg IHNlbGYudmZyU3RhdGVtZW50UXVlc3Rpb25PcHRpb25MaXN0KGxvY2FsY3R4Lk5vZGUpDQo+IA0K PiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2MDUNCj4gDQo+ICsgICAgICAgICAgICBzZWxm LnN0YXRlID0gMTYwOA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLkVuZENoZWNrQm94KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjA2DQo+ IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2MDkNCj4gDQo+ICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TZW1pY29sb24pDQo+IA0KPiAgICAgICAgICBleGNl cHQgUmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAgICAgICAgICAgICAgbG9jYWxj dHguZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC0xMDczOSwxNyArMTA3NDksMTcgQEAgY2xhc3Mg VmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRv a2VuIHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVu dGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDE2MDgNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTYxMQ0KPiANCj4gICAgICAg ICAgICAgIHNlbGYuY2hlY2tib3hGbGFnc0ZpZWxkKCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LnN0YXRlID0gMTYxMw0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjE2DQo+IA0K PiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAg ICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICB3aGlsZSBf bGE9PVZmclN5bnRheFBhcnNlci5CaXRXaXNlT3I6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxNjA5DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjEy DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkJpdFdp c2VPcikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2MTANCj4gDQo+ICsg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2MTMNCj4gDQo+ICAgICAgICAgICAgICAgICAg c2VsZi5jaGVja2JveEZsYWdzRmllbGQoKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMTYxNQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTYxOA0KPiAN Cj4gICAgICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAg ICAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+IA0KPiANCj4gQEAg LTEwODA4LDM3ICsxMDgxOCwzNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToN Cj4gICAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50YXhQYXJzZXIuQ2hlY2tib3hGbGFnc0ZpZWxk Q29udGV4dChzZWxmLCBzZWxmLl9jdHgsDQo+IHNlbGYuc3RhdGUpDQo+IA0KPiAgICAgICAgICBz ZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMTg4LCBzZWxmLlJVTEVfY2hlY2tib3hGbGFnc0ZpZWxk KQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx NjIyDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2MjUNCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICB0b2tl biA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYgdG9rZW4gaW4gW1Zm clN5bnRheFBhcnNlci5OdW1iZXJdOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVy T3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAxNjE2DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjE5DQo+IA0KPiAg ICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+ ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4g W1ZmclN5bnRheFBhcnNlci5EZWZhdWx0RmxhZ106DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNl bGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDE2MTcNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2MjAN Cj4gDQo+ICAgICAgICAgICAgICAgICAgbG9jYWxjdHguRCA9IHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLkRlZmF1bHRGbGFnKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAg ICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLk1hbnVmYWN0dXJpbmdG bGFnXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4 LCAzKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTYxOA0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTYyMQ0KPiANCj4gICAgICAgICAgICAgICAgICBs b2NhbGN0eC5NID0gc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTWFudWZhY3R1cmluZ0ZsYWcp DQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRv a2VuIGluIFtWZnJTeW50YXhQYXJzZXIuQ2hlY2tCb3hEZWZhdWx0RmxhZ106DQo+IA0KPiAgICAg ICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgNCkNCj4gDQo+IC0gICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2MTkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDE2MjINCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuQ2hlY2tCb3hEZWZhdWx0RmxhZykNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFz cw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5DaGVj a0JveERlZmF1bHRNZmdGbGFnXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91 dGVyQWx0KGxvY2FsY3R4LCA1KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MTYyMA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTYyMw0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5DaGVja0JveERlZmF1bHRN ZmdGbGFnKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAg ZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLkludGVyYWN0aXZlRmxhZywNCj4gVmZyU3lu dGF4UGFyc2VyLk5WQWNjZXNzRmxhZywgVmZyU3ludGF4UGFyc2VyLlJlc2V0UmVxdWlyZWRGbGFn LA0KPiBWZnJTeW50YXhQYXJzZXIuUmVjb25uZWN0UmVxdWlyZWRGbGFnLCBWZnJTeW50YXhQYXJz ZXIuTGF0ZUNoZWNrRmxhZywNCj4gVmZyU3ludGF4UGFyc2VyLlJlYWRPbmx5RmxhZywgVmZyU3lu dGF4UGFyc2VyLk9wdGlvbk9ubHlGbGFnLA0KPiBWZnJTeW50YXhQYXJzZXIuUmVzdFN0eWxlRmxh Z106DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwg NikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2MjENCj4gDQo+ICsgICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2MjQNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2Vs Zi5xdWVzdGlvbmhlYWRlckZsYWdzRmllbGQoKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNz DQo+IA0KPiAgICAgICAgICAgICAgZWxzZToNCj4gDQo+IEBAIC0xMDg1OCw4ICsxMDg2OCw3IEBA IGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBkZWYgX19pbml0 X18oc2VsZiwgcGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tp bmdTdGF0ZTppbnQ9LTEpOg0KPiANCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFy ZW50LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFy c2VyDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5Ob2RlID0gVmZyVHJlZU5vZGUoRUZJX0lGUl9B Q1RJT05fT1ApDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5PcE9iaiA9IENJZnJBY3Rpb24oKQ0K PiANCj4gKyAgICAgICAgICAgIHNlbGYuTm9kZSA9IElmclRyZWVOb2RlKEVGSV9JRlJfQUNUSU9O X09QKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuUVR5cGUgPSBFRklfUVVFU0lPTl9UWVBFLlFV RVNUSU9OX05PUk1BTA0KPiANCj4gDQo+IA0KPiAgICAgICAgICBkZWYgQWN0aW9uKHNlbGYpOg0K PiANCj4gQEAgLTEwOTI2LDQ1ICsxMDkzNSw0NSBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQ YXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4gdHlwZQ0KPiANCj4gICAg ICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0 eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTYyNA0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxNjI3DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuQWN0aW9uKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx NjI1DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi52ZnJRdWVzdGlvbkhlYWRlcihsb2NhbGN0eC5P cE9iaiwgbG9jYWxjdHguUVR5cGUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2 MjYNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTYyOA0KPiANCj4gKyAgICAgICAg ICAgIHNlbGYudmZyUXVlc3Rpb25IZWFkZXIobG9jYWxjdHguTm9kZSwgbG9jYWxjdHguUVR5cGUp DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2MjkNCj4gDQo+ICAgICAgICAgICAg ICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTYzMg0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjM1DQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAg ICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBpZiBf bGE9PVZmclN5bnRheFBhcnNlci5GTEFHUzoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDE2MjcNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2MzANCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRkxBR1MpDQo+ IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjI4DQo+IA0KPiArICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxNjMxDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxNjI5DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjMyDQo+IA0K PiAgICAgICAgICAgICAgICAgIHNlbGYudmZyQWN0aW9uRmxhZ3MoKQ0KPiANCj4gLSAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMTYzMA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMTYzMw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5Db21tYSkNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDE2MzQNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTYzNw0KPiANCj4gICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbmZpZykNCj4gDQo+IC0gICAg ICAgICAgICBzZWxmLnN0YXRlID0gMTYzNQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAxNjM4DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9f NSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTYzNg0KPiANCj4gKyAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAxNjM5DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuU3RyaW5nVG9rZW4pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDE2MzcNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTY0MA0KPiANCj4gICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+IC0gICAg ICAgICAgICBzZWxmLnN0YXRlID0gMTYzOA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAxNjQxDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVt YmVyKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjM5DQo+IA0KPiArICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDE2NDINCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAxNjQwDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2NDMNCj4gDQo+ICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IC0gICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTY0MQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx NjQ0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRRdWVzdGlvblRhZ0xpc3Qo bG9jYWxjdHguTm9kZSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTY0Mg0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjQ1DQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRW5kQWN0aW9uKQ0KPiANCj4gLSAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxNjQzDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2NDYNCj4g DQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TZW1pY29sb24pDQo+ IA0KPiAgICAgICAgICBleGNlcHQgUmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAg ICAgICAgICAgICAgbG9jYWxjdHguZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC0xMTAxNCwxNyAr MTEwMjMsMTcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAg IHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAg ICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDE2NDUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0g MTY0OA0KPiANCj4gICAgICAgICAgICAgIHNlbGYuYWN0aW9uRmxhZ3NGaWVsZCgpDQo+IA0KPiAt ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2NTANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMTY1Mw0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxm KQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAg ICAgICAgICAgd2hpbGUgX2xhPT1WZnJTeW50YXhQYXJzZXIuQml0V2lzZU9yOg0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTY0Ng0KPiANCj4gKyAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTY0OQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5CaXRXaXNlT3IpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAxNjQ3DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjUwDQo+IA0KPiAg ICAgICAgICAgICAgICAgIHNlbGYuYWN0aW9uRmxhZ3NGaWVsZCgpDQo+IA0KPiAtICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxNjUyDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxNjU1DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhz ZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiAN Cj4gDQo+IA0KPiBAQCAtMTEwNjksMTcgKzExMDc4LDE3IEBAIGNsYXNzIFZmclN5bnRheFBhcnNl ciAoIFBhcnNlciApOg0KPiAgICAgICAgICBsb2NhbGN0eCA9IFZmclN5bnRheFBhcnNlci5BY3Rp b25GbGFnc0ZpZWxkQ29udGV4dChzZWxmLCBzZWxmLl9jdHgsDQo+IHNlbGYuc3RhdGUpDQo+IA0K PiAgICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMTk0LCBzZWxmLlJVTEVfYWN0aW9u RmxhZ3NGaWVsZCkNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LnN0YXRlID0gMTY1NQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjU4DQo+IA0K PiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAg ICAgICAgdG9rZW4gPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIHRv a2VuIGluIFtWZnJTeW50YXhQYXJzZXIuTnVtYmVyXToNCj4gDQo+ICAgICAgICAgICAgICAgICAg c2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTY1Mw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTY1 Ng0KPiANCj4gICAgICAgICAgICAgICAgICBsb2NhbGN0eC5OID0gc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAg ICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLkludGVyYWN0aXZlRmxhZywN Cj4gVmZyU3ludGF4UGFyc2VyLk5WQWNjZXNzRmxhZywgVmZyU3ludGF4UGFyc2VyLlJlc2V0UmVx dWlyZWRGbGFnLA0KPiBWZnJTeW50YXhQYXJzZXIuUmVjb25uZWN0UmVxdWlyZWRGbGFnLCBWZnJT eW50YXhQYXJzZXIuTGF0ZUNoZWNrRmxhZywNCj4gVmZyU3ludGF4UGFyc2VyLlJlYWRPbmx5Rmxh ZywgVmZyU3ludGF4UGFyc2VyLk9wdGlvbk9ubHlGbGFnLA0KPiBWZnJTeW50YXhQYXJzZXIuUmVz dFN0eWxlRmxhZ106DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChs b2NhbGN0eCwgMikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2NTQNCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2NTcNCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi5xdWVzdGlvbmhlYWRlckZsYWdzRmllbGQoKQ0KPiANCj4gICAgICAgICAgICAg ICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxzZToNCj4gDQo+IEBAIC0xMTEyNiwxNyAr MTExMzUsMTcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAg IGxvY2FsY3R4ID0gVmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudE51bWVyaWNUeXBlQ29udGV4 dChzZWxmLA0KPiBzZWxmLl9jdHgsIHNlbGYuc3RhdGUpDQo+IA0KPiAgICAgICAgICBzZWxmLmVu dGVyUnVsZShsb2NhbGN0eCwgMTk2LCBzZWxmLlJVTEVfdmZyU3RhdGVtZW50TnVtZXJpY1R5cGUp DQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2 NTkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTY2Mg0KPiANCj4gICAgICAgICAg ICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIHRva2Vu ID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBpZiB0b2tlbiBpbiBbVmZy U3ludGF4UGFyc2VyLk51bWVyaWNdOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVy T3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAxNjU3DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjYwDQo+IA0KPiAg ICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50TnVtZXJpYygpDQo+IA0KPiAgICAgICAg ICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50 YXhQYXJzZXIuT25lT2ZdOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJB bHQobG9jYWxjdHgsIDIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjU4 DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjYxDQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50T25lT2YoKQ0KPiANCj4gICAgICAgICAgICAgICAg ICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxzZToNCj4gDQo+IEBAIC0xMTE1Niw4ICsxMTE2 NSw4IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBkZWYg X19pbml0X18oc2VsZiwgcGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4g aW52b2tpbmdTdGF0ZTppbnQ9LTEpOg0KPiANCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0 X18ocGFyZW50LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2Vy ID0gcGFyc2VyDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5Ob2RlID0gVmZyVHJlZU5vZGUoRUZJ X0lGUl9OVU1FUklDX09QKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuT3BPYmogPSBDSWZyTnVt ZXJpYygpDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2RlID0gSWZyVHJlZU5vZGUoRUZJX0lG Ul9OVU1FUklDX09QKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuR3VpZE5vZGUgPSBJZnJUcmVl Tm9kZShFRklfSUZSX0dVSURfT1ApDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5RVHlwZSA9IEVG SV9RVUVTSU9OX1RZUEUuUVVFU1RJT05fTk9STUFMDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5G ID0gTm9uZSAjIFRva2VuDQo+IA0KPiANCj4gDQo+IEBAIC0xMTIyNCw0OSArMTEyMzMsNDkgQEAg Y2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuX2xhID0g MCAjIFRva2VuIHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBz ZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDE2NjENCj4gDQo+IC0gICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5OdW1lcmljKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjYyDQo+IA0KPiAt ICAgICAgICAgICAgc2VsZi52ZnJRdWVzdGlvbkJhc2VJbmZvKGxvY2FsY3R4Lk9wT2JqLCBsb2Nh bGN0eC5RVHlwZSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTY2Mw0KPiANCj4g LSAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50SGVhZGVyKGxvY2FsY3R4Lk9wT2JqKQ0KPiAN Cj4gICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjY0DQo+IA0KPiArICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtZXJpYykNCj4gDQo+ICsgICAgICAgICAgICBzZWxm LnN0YXRlID0gMTY2NQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYudmZyUXVlc3Rpb25CYXNlSW5m byhsb2NhbGN0eC5Ob2RlLCBsb2NhbGN0eC5RVHlwZSkNCj4gDQo+ICsgICAgICAgICAgICBzZWxm LnN0YXRlID0gMTY2Ng0KPiANCj4gKyAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50SGVhZGVy KGxvY2FsY3R4Lk5vZGUpDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2NjcNCj4g DQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTY3MA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxNjczDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNl bGYpDQo+IA0KPiAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAg ICAgICAgICAgICBpZiBfbGE9PVZmclN5bnRheFBhcnNlci5GTEFHUzoNCj4gDQo+IC0gICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2NjUNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDE2NjgNCj4gDQo+ICAgICAgICAgICAgICAgICAgbG9jYWxjdHguRiA9IHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLkZMQUdTKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMTY2Ng0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTY2OQ0KPiAN Cj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiAN Cj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTY2Nw0KPiANCj4gKyAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTY3MA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnZmck51 bWVyaWNGbGFncygpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjY4DQo+ IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjcxDQo+IA0KPiAgICAgICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gDQo+IA0KPiAN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTY3Ng0KPiANCj4gKyAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAxNjc5DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5z eW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4g DQo+ICAgICAgICAgICAgICBpZiBfbGE9PVZmclN5bnRheFBhcnNlci5LZXk6DQo+IA0KPiAtICAg ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjcyDQo+IA0KPiArICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxNjc1DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3lu dGF4UGFyc2VyLktleSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2NzMN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2NzYNCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2NzQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDE2NzcNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTY3NQ0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTY3OA0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IA0KPiANCj4g DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2NzgNCj4gDQo+IC0gICAgICAgICAg ICBzZWxmLnZmclNldE1pbk1heFN0ZXAobG9jYWxjdHguT3BPYmopDQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDE2NzkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTY4 MQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYudmZyU2V0TWluTWF4U3RlcChsb2NhbGN0eC5Ob2Rl KQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjgyDQo+IA0KPiAgICAgICAgICAg ICAgc2VsZi52ZnJTdGF0ZW1lbnRRdWVzdGlvbk9wdGlvbkxpc3QobG9jYWxjdHguTm9kZSkNCj4g DQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTY4MA0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxNjgzDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuRW5kTnVtZXJpYykNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTY4MQ0K PiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjg0DQo+IA0KPiAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU2VtaWNvbG9uKQ0KPiANCj4gICAgICAgICAgZXhj ZXB0IFJlY29nbml0aW9uRXhjZXB0aW9uIGFzIHJlOg0KPiANCj4gICAgICAgICAgICAgIGxvY2Fs Y3R4LmV4Y2VwdGlvbiA9IHJlDQo+IA0KPiBAQCAtMTEyNzksMTYgKzExMjg4LDE2IEBAIGNsYXNz IFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiANCj4gDQo+ICAgICAgY2xhc3MgVmZyU2V0 TWluTWF4U3RlcENvbnRleHQoUGFyc2VyUnVsZUNvbnRleHQpOg0KPiANCj4gDQo+IA0KPiAtICAg ICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9 Tm9uZSwNCj4gaW52b2tpbmdTdGF0ZTppbnQ9LTEsIE9wT2JqPU5vbmUpOg0KPiANCj4gKyAgICAg ICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcnNlciwgcGFyZW50OlBhcnNlclJ1bGVDb250ZXh0PU5v bmUsDQo+IGludm9raW5nU3RhdGU6aW50PS0xLCBOb2RlPU5vbmUpOg0KPiANCj4gICAgICAgICAg ICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAg ICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5PcE9i aiA9IE5vbmUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5vZGUgPSBOb25lDQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi5OMSA9IE5vbmUgIyBUb2tlbg0KPiANCj4gICAgICAgICAgICAgIHNlbGYu SSA9IE5vbmUgIyBUb2tlbg0KPiANCj4gICAgICAgICAgICAgIHNlbGYuTjIgPSBOb25lICMgVG9r ZW4NCj4gDQo+ICAgICAgICAgICAgICBzZWxmLkEgPSBOb25lICMgVG9rZW4NCj4gDQo+ICAgICAg ICAgICAgICBzZWxmLlMgPSBOb25lICMgVG9rZW4NCj4gDQo+IC0gICAgICAgICAgICBzZWxmLk9w T2JqID0gT3BPYmoNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5vZGUgPSBOb2RlDQo+IA0KPiAN Cj4gDQo+ICAgICAgICAgIGRlZiBNaW5pbXVtKHNlbGYpOg0KPiANCj4gICAgICAgICAgICAgIHJl dHVybiBzZWxmLmdldFRva2VuKFZmclN5bnRheFBhcnNlci5NaW5pbXVtLCAwKQ0KPiANCj4gQEAg LTExMzI5LDU2ICsxMTMzOCw1NiBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToN Cj4gDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICBkZWYgdmZyU2V0TWluTWF4U3RlcChzZWxm LCBPcE9iaik6DQo+IA0KPiArICAgIGRlZiB2ZnJTZXRNaW5NYXhTdGVwKHNlbGYsIE5vZGUpOg0K PiANCj4gDQo+IA0KPiAtICAgICAgICBsb2NhbGN0eCA9IFZmclN5bnRheFBhcnNlci5WZnJTZXRN aW5NYXhTdGVwQ29udGV4dChzZWxmLCBzZWxmLl9jdHgsDQo+IHNlbGYuc3RhdGUsIE9wT2JqKQ0K PiANCj4gKyAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50YXhQYXJzZXIuVmZyU2V0TWluTWF4U3Rl cENvbnRleHQoc2VsZiwgc2VsZi5fY3R4LA0KPiBzZWxmLnN0YXRlLCBOb2RlKQ0KPiANCj4gICAg ICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgsIDIwMCwgc2VsZi5SVUxFX3ZmclNldE1pbk1h eFN0ZXApDQo+IA0KPiAgICAgICAgICBzZWxmLl9sYSA9IDAgIyBUb2tlbiB0eXBlDQo+IA0KPiAg ICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2Fs Y3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjgzDQo+IA0KPiArICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2ODYNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNo KFZmclN5bnRheFBhcnNlci5NaW5pbXVtKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAxNjg0DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2ODcNCj4gDQo+ICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gLSAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAxNjg2DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2 ODkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAg IGlmIF9sYT09VmZyU3ludGF4UGFyc2VyLk5lZ2F0aXZlOg0KPiANCj4gLSAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTY4NQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MTY4OA0KPiANCj4gICAgICAgICAgICAgICAgICBsb2NhbGN0eC5OMSA9IHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLk5lZ2F0aXZlKQ0KPiANCj4gDQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTY4OA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjkx DQo+IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHguSSA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTY4OQ0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjkyDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDE2OTANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTY5Mw0KPiANCj4gICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk1heGltdW0pDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2OTENCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTY5NA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRf XzUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2OTMNCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTY5Ng0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRs ZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEp DQo+IA0KPiAgICAgICAgICAgICAgaWYgX2xhPT1WZnJTeW50YXhQYXJzZXIuTmVnYXRpdmU6DQo+ IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjkyDQo+IA0KPiArICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxNjk1DQo+IA0KPiAgICAgICAgICAgICAgICAgIGxvY2FsY3R4 Lk4yID0gc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTmVnYXRpdmUpDQo+IA0KPiANCj4gDQo+ IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNjk1DQo+IA0KPiArICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDE2OTgNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5BID0gc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxNjk2DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE2OTkNCj4gDQo+ ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IC0g ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTcwMQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxNzA0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYp DQo+IA0KPiAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAg ICAgICAgICBpZiBfbGE9PVZmclN5bnRheFBhcnNlci5TdGVwOg0KPiANCj4gLSAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTY5Nw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTcwMA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5TdGVwKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTY5OA0KPiANCj4g KyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTcwMQ0KPiANCj4gICAgICAgICAgICAgICAg ICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTY5OQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MTcwMg0KPiANCj4gICAgICAgICAgICAgICAgICBsb2NhbGN0eC5TID0gc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MTcwMA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTcwMw0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IA0K PiANCj4gDQo+IA0KPiBAQCAtMTEzOTksNiArMTE0MDgsNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJz ZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgICAgIHNlbGYuSEZsYWdzID0gMA0KPiANCj4gICAg ICAgICAgICAgIHNlbGYuTEZsYWdzID0gMA0KPiANCj4gICAgICAgICAgICAgIHNlbGYuSXNEaXNw bGF5U3BlY2lmaWVkID0gRmFsc2UNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLlVwZGF0ZVZhclR5 cGUgPSBGYWxzZQ0KPiANCj4gDQo+IA0KPiAgICAgICAgICBkZWYgbnVtZXJpY0ZsYWdzRmllbGQo c2VsZiwgaTppbnQ9Tm9uZSk6DQo+IA0KPiAgICAgICAgICAgICAgaWYgaSBpcyBOb25lOg0KPiAN Cj4gQEAgLTExNDMyLDE3ICsxMTQ0MiwxNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJz ZXIgKToNCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4gdHlwZQ0KPiANCj4gICAgICAg ICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwg MSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTcwMw0KPiANCj4gKyAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAxNzA2DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5udW1lcmljRmxh Z3NGaWVsZCgpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3MDgNCj4gDQo+ICsg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTcxMQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2Vy ckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0 LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgd2hpbGUgX2xhPT1WZnJTeW50YXhQYXJzZXIuQml0 V2lzZU9yOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTcwNA0KPiANCj4g KyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTcwNw0KPiANCj4gICAgICAgICAgICAgICAg ICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5CaXRXaXNlT3IpDQo+IA0KPiAtICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxNzA1DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxNzA4DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubnVtZXJpY0ZsYWdzRmllbGQo KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTcxMA0KPiANCj4gKyAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTcxMw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm Ll9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICAgICAgX2xhID0gc2Vs Zi5faW5wdXQuTEEoMSkNCj4gDQo+IA0KPiANCj4gQEAgLTExNTEwLDUyICsxMTUyMCw1MiBAQCBj bGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgbG9jYWxjdHggPSBW ZnJTeW50YXhQYXJzZXIuTnVtZXJpY0ZsYWdzRmllbGRDb250ZXh0KHNlbGYsIHNlbGYuX2N0eCwN Cj4gc2VsZi5zdGF0ZSkNCj4gDQo+ICAgICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAy MDQsIHNlbGYuUlVMRV9udW1lcmljRmxhZ3NGaWVsZCkNCj4gDQo+ICAgICAgICAgIHRyeToNCj4g DQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTcyMA0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxNzIzDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5j KHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgdG9rZW4gPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiAN Cj4gICAgICAgICAgICAgIGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuTnVtYmVyXToNCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiAN Cj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTcxMQ0KPiANCj4gKyAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTcxNA0KPiANCj4gICAgICAgICAgICAgICAgICBsb2NhbGN0eC5O ID0gc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gICAgICAgICAgICAg ICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFy c2VyLk51bWVyaWNTaXplT25lXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91 dGVyQWx0KGxvY2FsY3R4LCAyKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MTcxMg0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTcxNQ0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1lcmljU2l6ZU9uZSkN Cj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9r ZW4gaW4gW1ZmclN5bnRheFBhcnNlci5OdW1lcmljU2l6ZVR3b106DQo+IA0KPiAgICAgICAgICAg ICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMykNCj4gDQo+IC0gICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDE3MTMNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDE3MTYNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJz ZXIuTnVtZXJpY1NpemVUd28pDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAg ICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuTnVtZXJpY1NpemVGb3Vy XToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCA0 KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTcxNA0KPiANCj4gKyAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTcxNw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1lcmljU2l6ZUZvdXIpDQo+IA0KPiAgICAgICAgICAg ICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQ YXJzZXIuTnVtZXJpY1NpemVFaWdodF06DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50 ZXJPdXRlckFsdChsb2NhbGN0eCwgNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDE3MTUNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3MTgNCj4gDQo+ ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtZXJpY1NpemVF aWdodCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVs aWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5EaXNQbGF5SW50RGVjXToNCj4gDQo+ICAgICAg ICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCA2KQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTcxNg0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMTcxOQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5EaXNQbGF5SW50RGVjKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0K PiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLkRpc1BsYXlVSW50 RGVjXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4 LCA3KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTcxNw0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTcyMA0KPiANCj4gICAgICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5EaXNQbGF5VUludERlYykNCj4gDQo+ICAgICAgICAg ICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRh eFBhcnNlci5EaXNQbGF5VUludEhleF06DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50 ZXJPdXRlckFsdChsb2NhbGN0eCwgOCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDE3MTgNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3MjENCj4gDQo+ ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRGlzUGxheVVJbnRI ZXgpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlm IHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuSW50ZXJhY3RpdmVGbGFnLA0KPiBWZnJTeW50YXhQ YXJzZXIuTlZBY2Nlc3NGbGFnLCBWZnJTeW50YXhQYXJzZXIuUmVzZXRSZXF1aXJlZEZsYWcsDQo+ IFZmclN5bnRheFBhcnNlci5SZWNvbm5lY3RSZXF1aXJlZEZsYWcsIFZmclN5bnRheFBhcnNlci5M YXRlQ2hlY2tGbGFnLA0KPiBWZnJTeW50YXhQYXJzZXIuUmVhZE9ubHlGbGFnLCBWZnJTeW50YXhQ YXJzZXIuT3B0aW9uT25seUZsYWcsDQo+IFZmclN5bnRheFBhcnNlci5SZXN0U3R5bGVGbGFnXToN Cj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCA5KQ0K PiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTcxOQ0KPiANCj4gKyAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMTcyMg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnF1 ZXN0aW9uaGVhZGVyRmxhZ3NGaWVsZCgpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4g DQo+ICAgICAgICAgICAgICBlbHNlOg0KPiANCj4gQEAgLTExNTc1LDggKzExNTg1LDggQEAgY2xh c3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIGRlZiBfX2luaXRfXyhz ZWxmLCBwYXJzZXIsIHBhcmVudDpQYXJzZXJSdWxlQ29udGV4dD1Ob25lLA0KPiBpbnZva2luZ1N0 YXRlOmludD0tMSk6DQo+IA0KPiAgICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhwYXJlbnQs IGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJzZXIN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLk5vZGUgPSBWZnJUcmVlTm9kZShFRklfSUZSX09ORV9P Rl9PUCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLk9wT2JqID0gQ0lmck9uZU9mKCkNCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLk5vZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX09ORV9PRl9PUCkN Cj4gDQo+ICsgICAgICAgICAgICBzZWxmLkd1aWROb2RlID0gSWZyVHJlZU5vZGUoRUZJX0lGUl9H VUlEX09QKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuUVR5cGUgPSBFRklfUVVFU0lPTl9UWVBF LlFVRVNUSU9OX05PUk1BTA0KPiANCj4gICAgICAgICAgICAgIHNlbGYuRiA9IE5vbmUgIyBUb2tl bg0KPiANCj4gDQo+IA0KPiBAQCAtMTE2MzcsNDEgKzExNjQ3LDQxIEBAIGNsYXNzIFZmclN5bnRh eFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLl9sYSA9IDAgIyBUb2tlbiB0eXBl DQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVy QWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzIyDQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT25lT2YpDQo+IA0K PiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3MjMNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LnZmclF1ZXN0aW9uQmFzZUluZm8obG9jYWxjdHguT3BPYmosIGxvY2FsY3R4LlFUeXBlKQ0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzI0DQo+IA0KPiAtICAgICAgICAgICAgc2Vs Zi52ZnJTdGF0ZW1lbnRIZWFkZXIobG9jYWxjdHguT3BPYmopDQo+IA0KPiAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDE3MjUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5PbmVPZikNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTcyNg0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYudmZyUXVlc3Rpb25CYXNlSW5mbyhsb2NhbGN0eC5Ob2RlLCBs b2NhbGN0eC5RVHlwZSkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTcyNw0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50SGVhZGVyKGxvY2FsY3R4Lk5vZGUpDQo+ IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3MjgNCj4gDQo+ICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LnN0YXRlID0gMTczMQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzM0DQo+IA0K PiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAg ICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBpZiBfbGE9 PVZmclN5bnRheFBhcnNlci5GTEFHUzoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDE3MjYNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3MjkNCj4gDQo+ ICAgICAgICAgICAgICAgICAgbG9jYWxjdHguRiA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy LkZMQUdTKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTcyNw0KPiANCj4g KyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTczMA0KPiANCj4gICAgICAgICAgICAgICAg ICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTcyOA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MTczMQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnZmck9uZW9mRmxhZ3NGaWVsZCgpDQo+ IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzI5DQo+IA0KPiArICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxNzMyDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gDQo+IA0KPiANCj4gDQo+IC0gICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTczNA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx NzM3DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0K PiAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAg ICBpZiBfbGE9PVZmclN5bnRheFBhcnNlci5NaW5pbXVtOg0KPiANCj4gLSAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTczMw0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnZmclNldE1p bk1heFN0ZXAobG9jYWxjdHguT3BPYmopDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxNzM2DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYudmZyU2V0TWluTWF4U3RlcChs b2NhbGN0eC5Ob2RlKQ0KPiANCj4gDQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0 YXRlID0gMTczNg0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzM5DQo+IA0KPiAg ICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRRdWVzdGlvbk9wdGlvbkxpc3QobG9jYWxjdHgu Tm9kZSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTczNw0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxNzQwDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuRW5kT25lT2YpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDE3MzgNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTc0MQ0KPiANCj4gICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlNlbWljb2xvbikNCj4gDQo+ICAgICAg ICAgIGV4Y2VwdCBSZWNvZ25pdGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAgICAgICAg ICBsb2NhbGN0eC5leGNlcHRpb24gPSByZQ0KPiANCj4gQEAgLTExNjg5LDYgKzExNjk5LDcgQEAg Y2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgICAgICBzZWxmLnBh cnNlciA9IHBhcnNlcg0KPiANCj4gICAgICAgICAgICAgIHNlbGYuSEZsYWdzID0gMA0KPiANCj4g ICAgICAgICAgICAgIHNlbGYuTEZsYWdzID0gMA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuVXBk YXRlVmFyVHlwZSA9IEZhbHNlDQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGRlZiBudW1lcmljRmxh Z3NGaWVsZChzZWxmLCBpOmludD1Ob25lKToNCj4gDQo+ICAgICAgICAgICAgICBpZiBpIGlzIE5v bmU6DQo+IA0KPiBAQCAtMTE3MjIsMTcgKzExNzMzLDE3IEBAIGNsYXNzIFZmclN5bnRheFBhcnNl ciAoIFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLl9sYSA9IDAgIyBUb2tlbiB0eXBlDQo+IA0K PiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxv Y2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzQwDQo+IA0KPiAr ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3NDMNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm51 bWVyaWNGbGFnc0ZpZWxkKCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTc0NQ0K PiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzQ4DQo+IA0KPiAgICAgICAgICAgICAg c2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgX2xhID0gc2Vs Zi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICB3aGlsZSBfbGE9PVZmclN5bnRheFBh cnNlci5CaXRXaXNlT3I6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzQx DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzQ0DQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkJpdFdpc2VPcikNCj4gDQo+IC0g ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3NDINCj4gDQo+ICsgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDE3NDUNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5udW1lcmljRmxh Z3NGaWVsZCgpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzQ3DQo+IA0K PiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzUwDQo+IA0KPiAgICAgICAgICAgICAg ICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICBf bGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gDQo+IA0KPiBAQCAtMTE3NzcsMTcgKzExNzg4 LDE3IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBsb2Nh bGN0eCA9IFZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRTdHJpbmdUeXBlQ29udGV4dChzZWxm LCBzZWxmLl9jdHgsDQo+IHNlbGYuc3RhdGUpDQo+IA0KPiAgICAgICAgICBzZWxmLmVudGVyUnVs ZShsb2NhbGN0eCwgMjEwLCBzZWxmLlJVTEVfdmZyU3RhdGVtZW50U3RyaW5nVHlwZSkNCj4gDQo+ ICAgICAgICAgIHRyeToNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTc1MA0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzUzDQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgdG9rZW4gPSBzZWxm Ll9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIHRva2VuIGluIFtWZnJTeW50YXhQ YXJzZXIuU3RyaW5nXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0 KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTc0OA0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTc1MQ0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLnZmclN0YXRlbWVudFN0cmluZygpDQo+IA0KPiAgICAgICAgICAgICAgICAg IHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIu UGFzc3dvcmRdOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9j YWxjdHgsIDIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzQ5DQo+IA0K PiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzUyDQo+IA0KPiAgICAgICAgICAgICAg ICAgIHNlbGYudmZyU3RhdGVtZW50UGFzc3dvcmQoKQ0KPiANCj4gICAgICAgICAgICAgICAgICBw YXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxzZToNCj4gDQo+IEBAIC0xMTgwNyw4ICsxMTgxOCw3 IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBkZWYgX19p bml0X18oc2VsZiwgcGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52 b2tpbmdTdGF0ZTppbnQ9LTEpOg0KPiANCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18o cGFyZW50LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0g cGFyc2VyDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5Ob2RlID0gVmZyVHJlZU5vZGUoRUZJX0lG Ul9TVFJJTkdfT1ApDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5PcE9iaiA9IENJZnJTdHJpbmco KQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuTm9kZSA9IElmclRyZWVOb2RlKEVGSV9JRlJfU1RS SU5HX09QKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuUVR5cGUgPSBFRklfUVVFU0lPTl9UWVBF LlFVRVNUSU9OX05PUk1BTA0KPiANCj4gICAgICAgICAgICAgIHNlbGYuRiA9IE5vbmUgIyBUb2tl bg0KPiANCj4gICAgICAgICAgICAgIHNlbGYuTWluID0gTm9uZSAjIFRva2VuDQo+IA0KPiBAQCAt MTE4NzgsNjEgKzExODg4LDYxIEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0K PiAgICAgICAgICBzZWxmLl9sYSA9IDAgIyBUb2tlbiB0eXBlDQo+IA0KPiAgICAgICAgICB0cnk6 DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzUyDQo+IA0KPiArICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDE3NTUNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5TdHJpbmcpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3NTMNCj4gDQo+ IC0gICAgICAgICAgICBzZWxmLnZmclF1ZXN0aW9uSGVhZGVyKGxvY2FsY3R4Lk9wT2JqLCBsb2Nh bGN0eC5RVHlwZSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTc1NA0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzU2DQo+IA0KPiArICAgICAgICAgICAgc2VsZi52 ZnJRdWVzdGlvbkhlYWRlcihsb2NhbGN0eC5Ob2RlLCBsb2NhbGN0eC5RVHlwZSkNCj4gDQo+ICsg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTc1Nw0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAxNzYwDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3NjMNCj4gDQo+ICAgICAg ICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICBf bGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIF9sYT09VmZyU3lu dGF4UGFyc2VyLkZMQUdTOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTc1 NQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTc1OA0KPiANCj4gICAgICAg ICAgICAgICAgICBsb2NhbGN0eC5GID0gc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRkxBR1Mp DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzU2DQo+IA0KPiArICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzU5DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxNzU3DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzYwDQo+ IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3RyaW5nRmxhZ3NGaWVsZCgpDQo+IA0KPiAt ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzU4DQo+IA0KPiArICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAxNzYxDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gDQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTc2Ng0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzY5DQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAg ICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBpZiBf bGE9PVZmclN5bnRheFBhcnNlci5LZXk6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxNzYyDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzY1DQo+IA0K PiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLktleSkNCj4gDQo+ IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3NjMNCj4gDQo+ICsgICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDE3NjYNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDE3NjQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3NjcNCj4gDQo+ICAg ICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4g LSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTc2NQ0KPiANCj4gKyAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTc2OA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDE3NjgNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTc3MQ0K PiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4Lk1pbiA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLk1pblNpemUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3NjkNCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTc3Mg0KPiANCj4gICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDE3NzANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTc3Mw0KPiANCj4gICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAg ICAgICAgICBzZWxmLnN0YXRlID0gMTc3MQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAxNzc0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29t bWEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3NzINCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTc3NQ0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4Lk1heCA9 IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk1heFNpemUpDQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDE3NzMNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTc3Ng0K PiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0K PiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3NzQNCj4gDQo+ICsgICAgICAgICAgICBzZWxm LnN0YXRlID0gMTc3Nw0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTc3NQ0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzc4DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDE3NzYNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTc3OQ0KPiANCj4gICAg ICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50UXVlc3Rpb25PcHRpb25MaXN0KGxvY2FsY3R4Lk5v ZGUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3NzcNCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTc4MA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLkVuZFN0cmluZykNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0g MTc3OA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzgxDQo+IA0KPiAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU2VtaWNvbG9uKQ0KPiANCj4gICAgICAg ICAgZXhjZXB0IFJlY29nbml0aW9uRXhjZXB0aW9uIGFzIHJlOg0KPiANCj4gICAgICAgICAgICAg IGxvY2FsY3R4LmV4Y2VwdGlvbiA9IHJlDQo+IA0KPiBAQCAtMTE5ODMsMTcgKzExOTkzLDE3IEBA IGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLl9sYSA9 IDAgIyBUb2tlbiB0eXBlDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAg c2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxNzgwDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3ODMNCj4gDQo+ ICAgICAgICAgICAgICBzZWxmLnN0cmluZ0ZsYWdzRmllbGQoKQ0KPiANCj4gLSAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAxNzg1DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3ODgN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAg ICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIHdo aWxlIF9sYT09VmZyU3ludGF4UGFyc2VyLkJpdFdpc2VPcjoNCj4gDQo+IC0gICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDE3ODENCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDE3ODQNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu Qml0V2lzZU9yKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTc4Mg0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTc4NQ0KPiANCj4gICAgICAgICAgICAg ICAgICBzZWxmLnN0cmluZ0ZsYWdzRmllbGQoKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMTc4Nw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTc5MA0K PiANCj4gICAgICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ ICAgICAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+IA0KPiANCj4g QEAgLTEyMDM5LDIyICsxMjA0OSwyMiBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIg KToNCj4gICAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50YXhQYXJzZXIuU3RyaW5nRmxhZ3NGaWVs ZENvbnRleHQoc2VsZiwgc2VsZi5fY3R4LCBzZWxmLnN0YXRlKQ0KPiANCj4gICAgICAgICAgc2Vs Zi5lbnRlclJ1bGUobG9jYWxjdHgsIDIxNiwgc2VsZi5SVUxFX3N0cmluZ0ZsYWdzRmllbGQpDQo+ IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3OTEN Cj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTc5NA0KPiANCj4gICAgICAgICAgICAg IHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIHRva2VuID0g c2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBpZiB0b2tlbiBpbiBbVmZyU3lu dGF4UGFyc2VyLk51bWJlcl06DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRl ckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3 ODgNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3OTENCj4gDQo+ICAgICAg ICAgICAgICAgICAgbG9jYWxjdHguTiA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJl cikNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYg dG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5UX184XToNCj4gDQo+ICAgICAgICAgICAgICAgICAg c2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAyKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTc4OQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTc5 Mg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX184 KQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0 b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLkludGVyYWN0aXZlRmxhZywNCj4gVmZyU3ludGF4UGFy c2VyLk5WQWNjZXNzRmxhZywgVmZyU3ludGF4UGFyc2VyLlJlc2V0UmVxdWlyZWRGbGFnLA0KPiBW ZnJTeW50YXhQYXJzZXIuUmVjb25uZWN0UmVxdWlyZWRGbGFnLCBWZnJTeW50YXhQYXJzZXIuTGF0 ZUNoZWNrRmxhZywNCj4gVmZyU3ludGF4UGFyc2VyLlJlYWRPbmx5RmxhZywgVmZyU3ludGF4UGFy c2VyLk9wdGlvbk9ubHlGbGFnLA0KPiBWZnJTeW50YXhQYXJzZXIuUmVzdFN0eWxlRmxhZ106DQo+ IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMykNCj4g DQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3OTANCj4gDQo+ICsgICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDE3OTMNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5xdWVz dGlvbmhlYWRlckZsYWdzRmllbGQoKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0K PiAgICAgICAgICAgICAgZWxzZToNCj4gDQo+IEBAIC0xMjA3NCw4ICsxMjA4NCw3IEBAIGNsYXNz IFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBkZWYgX19pbml0X18oc2Vs ZiwgcGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tpbmdTdGF0 ZTppbnQ9LTEpOg0KPiANCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBp bnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5Ob2RlID0gVmZyVHJlZU5vZGUoRUZJX0lGUl9QQVNTV09S RF9PUCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLk9wT2JqID0gQ0lmclBhc3N3b3JkKCkNCj4g DQo+ICsgICAgICAgICAgICBzZWxmLk5vZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX1BBU1NXT1JE X09QKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuUVR5cGUgPSBFRklfUVVFU0lPTl9UWVBFLlFV RVNUSU9OX05PUk1BTA0KPiANCj4gICAgICAgICAgICAgIHNlbGYuRiA9IE5vbmUgIyBUb2tlbg0K PiANCj4gICAgICAgICAgICAgIHNlbGYuTWluID0gTm9uZSAjIFRva2VuDQo+IA0KPiBAQCAtMTIx NDgsNzUgKzEyMTU3LDc1IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAg ICAgICAgICBzZWxmLl9sYSA9IDAgIyBUb2tlbiB0eXBlDQo+IA0KPiAgICAgICAgICB0cnk6DQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4g LSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzkzDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDE3OTYNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5QYXNzd29yZCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTc5NA0KPiANCj4g LSAgICAgICAgICAgIHNlbGYudmZyUXVlc3Rpb25IZWFkZXIobG9jYWxjdHguT3BPYmosIGxvY2Fs Y3R4LlFUeXBlKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzk1DQo+IA0KPiAr ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3OTcNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnZm clF1ZXN0aW9uSGVhZGVyKGxvY2FsY3R4Lk5vZGUsIGxvY2FsY3R4LlFUeXBlKQ0KPiANCj4gKyAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzk4DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRj aChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDE4MDENCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTgwNA0KPiANCj4gICAgICAg ICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9s YSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYgX2xhPT1WZnJTeW50 YXhQYXJzZXIuRkxBR1M6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzk2 DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxNzk5DQo+IA0KPiAgICAgICAg ICAgICAgICAgIGxvY2FsY3R4LkYgPSBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5GTEFHUykN Cj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE3OTcNCj4gDQo+ICsgICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4MDANCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDE3OTgNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4MDENCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi52ZnJQYXNzd29yZEZsYWdzRmllbGQoKQ0KPiANCj4g LSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTc5OQ0KPiANCj4gKyAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTgwMg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDE4MDcNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTgxMA0K PiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAg ICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYg X2xhPT1WZnJTeW50YXhQYXJzZXIuS2V5Og0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMTgwMw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTgwNg0KPiAN Cj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5LZXkpDQo+IA0K PiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODA0DQo+IA0KPiArICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAxODA3DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAxODA1DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODA4DQo+IA0KPiAg ICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+ IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4MDYNCj4gDQo+ICsgICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDE4MDkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAxODA5DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4MTIN Cj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5NaW4gPSBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5NaW5TaXplKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODEwDQo+IA0K PiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4MTMNCj4gDQo+ICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxODExDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4MTQNCj4gDQo+ICAg ICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4MTINCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTgxNQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNv bW1hKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODEzDQo+IA0KPiArICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDE4MTYNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5NYXgg PSBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5NYXhTaXplKQ0KPiANCj4gLSAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAxODE0DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4MTcN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODE1DQo+IA0KPiArICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDE4MTgNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4MTYNCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTgxOQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxODIxDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4MjQNCj4gDQo+ICAg ICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAg ICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIF9sYT09VmZy U3ludGF4UGFyc2VyLkVuY29kaW5nOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTgxNw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTgyMA0KPiANCj4g ICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5FbmNvZGluZykNCj4g DQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4MTgNCj4gDQo+ICsgICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDE4MjENCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRj aChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDE4MTkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4MjINCj4gDQo+ ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiAN Cj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTgyMA0KPiANCj4gKyAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTgyMw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNo KFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDE4MjMNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTgy Ng0KPiANCj4gICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50UXVlc3Rpb25PcHRpb25MaXN0 KGxvY2FsY3R4Lk5vZGUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4MjQNCj4g DQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTgyNw0KPiANCj4gICAgICAgICAgICAgIHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkVuZFBhc3N3b3JkKQ0KPiANCj4gLSAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAxODI1DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4MjgN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TZW1pY29sb24p DQo+IA0KPiAgICAgICAgICBleGNlcHQgUmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0K PiAgICAgICAgICAgICAgbG9jYWxjdHguZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC0xMjI2Niwx NyArMTIyNzUsMTcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAg ICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4MjcNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTgzMA0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFzc3dvcmRGbGFnc0ZpZWxkKCkNCj4g DQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTgzMg0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxODM1DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5j KHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ ICAgICAgICAgICAgICB3aGlsZSBfbGE9PVZmclN5bnRheFBhcnNlci5CaXRXaXNlT3I6DQo+IA0K PiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODI4DQo+IA0KPiArICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAxODMxDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLkJpdFdpc2VPcikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDE4MjkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4MzINCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi5wYXNzd29yZEZsYWdzRmllbGQoKQ0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTgzNA0KPiANCj4gKyAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTgzNw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVy LnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEo MSkNCj4gDQo+IA0KPiANCj4gQEAgLTEyMzIwLDE3ICsxMjMyOSwxNyBAQCBjbGFzcyBWZnJTeW50 YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50YXhQYXJz ZXIuUGFzc3dvcmRGbGFnc0ZpZWxkQ29udGV4dChzZWxmLCBzZWxmLl9jdHgsDQo+IHNlbGYuc3Rh dGUpDQo+IA0KPiAgICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMjIyLCBzZWxmLlJV TEVfcGFzc3dvcmRGbGFnc0ZpZWxkKQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gLSAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxODM3DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDE4NDANCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4g DQo+ICAgICAgICAgICAgICB0b2tlbiA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAg ICAgICAgaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5OdW1iZXJdOg0KPiANCj4gICAgICAg ICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODM1DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxODM4DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLk51bWJlcikNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAg ICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5JbnRlcmFjdGl2ZUZsYWcsDQo+ IFZmclN5bnRheFBhcnNlci5OVkFjY2Vzc0ZsYWcsIFZmclN5bnRheFBhcnNlci5SZXNldFJlcXVp cmVkRmxhZywNCj4gVmZyU3ludGF4UGFyc2VyLlJlY29ubmVjdFJlcXVpcmVkRmxhZywgVmZyU3lu dGF4UGFyc2VyLkxhdGVDaGVja0ZsYWcsDQo+IFZmclN5bnRheFBhcnNlci5SZWFkT25seUZsYWcs IFZmclN5bnRheFBhcnNlci5PcHRpb25Pbmx5RmxhZywNCj4gVmZyU3ludGF4UGFyc2VyLlJlc3RT dHlsZUZsYWddOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9j YWxjdHgsIDIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODM2DQo+IA0K PiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODM5DQo+IA0KPiAgICAgICAgICAgICAg ICAgIHNlbGYucXVlc3Rpb25oZWFkZXJGbGFnc0ZpZWxkKCkNCj4gDQo+ICAgICAgICAgICAgICAg ICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsc2U6DQo+IA0KPiBAQCAtMTIzNTAsOCArMTIz NTksNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgZGVm IF9faW5pdF9fKHNlbGYsIHBhcnNlciwgcGFyZW50OlBhcnNlclJ1bGVDb250ZXh0PU5vbmUsDQo+ IGludm9raW5nU3RhdGU6aW50PS0xKToNCj4gDQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5p dF9fKHBhcmVudCwgaW52b2tpbmdTdGF0ZSkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNl ciA9IHBhcnNlcg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuTm9kZSA9IFZmclRyZWVOb2RlKEVG SV9JRlJfT1JERVJFRF9MSVNUX09QKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuT3BPYmogPSBD SWZyT3JkZXJlZExpc3QoKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuTm9kZSA9IElmclRyZWVO b2RlKEVGSV9JRlJfT1JERVJFRF9MSVNUX09QKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuUVR5 cGUgPSBFRklfUVVFU0lPTl9UWVBFLlFVRVNUSU9OX05PUk1BTA0KPiANCj4gICAgICAgICAgICAg IHNlbGYuTSA9IE5vbmUgIyBUb2tlbg0KPiANCj4gICAgICAgICAgICAgIHNlbGYuRiA9IE5vbmUg IyBUb2tlbg0KPiANCj4gQEAgLTEyNDExLDQ1ICsxMjQxOSw0NSBAQCBjbGFzcyBWZnJTeW50YXhQ YXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4gdHlwZQ0K PiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFs dChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTgzOQ0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODQyDQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3JkZXJlZExpc3QpDQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDE4NDANCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnZmclF1ZXN0aW9uSGVh ZGVyKGxvY2FsY3R4Lk9wT2JqLCBsb2NhbGN0eC5RVHlwZSkNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTg0MQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODQzDQo+ IA0KPiArICAgICAgICAgICAgc2VsZi52ZnJRdWVzdGlvbkhlYWRlcihsb2NhbGN0eC5Ob2RlLCBs b2NhbGN0eC5RVHlwZSkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTg0NA0KPiAN Cj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4g LSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODQ2DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDE4NDkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2Vs ZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAg ICAgICAgICAgIGlmIF9sYT09VmZyU3ludGF4UGFyc2VyLk1heENvbnRhaW5lcnM6DQo+IA0KPiAt ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODQyDQo+IA0KPiArICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAxODQ1DQo+IA0KPiAgICAgICAgICAgICAgICAgIGxvY2FsY3R4Lk0gPSBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5NYXhDb250YWluZXJzKQ0KPiANCj4gLSAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMTg0Mw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMTg0Ng0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5UX181KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTg0NA0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTg0Nw0KPiANCj4gICAgICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxODQ1DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxODQ4DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLkNvbW1hKQ0KPiANCj4gDQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTg1Mw0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODU2DQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAg X2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBpZiBfbGE9PVZmclN5 bnRheFBhcnNlci5GTEFHUzoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4 NDgNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4NTENCj4gDQo+ICAgICAg ICAgICAgICAgICAgbG9jYWxjdHguRiA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkZMQUdT KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTg0OQ0KPiANCj4gKyAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTg1Mg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMTg1MA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTg1Mw0K PiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnZmck9yZGVyZWRMaXN0RmxhZ3MoKQ0KPiANCj4g LSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTg1MQ0KPiANCj4gKyAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTg1NA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDE4NTUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTg1OA0K PiANCj4gICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50UXVlc3Rpb25PcHRpb25MaXN0KGxv Y2FsY3R4Lk5vZGUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4NTYNCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTg1OQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLkVuZExpc3QpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDE4NTcNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTg2MA0KPiANCj4g ICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlNlbWljb2xvbikNCj4gDQo+ ICAgICAgICAgIGV4Y2VwdCBSZWNvZ25pdGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAg ICAgICAgICBsb2NhbGN0eC5leGNlcHRpb24gPSByZQ0KPiANCj4gQEAgLTEyNTAwLDE3ICsxMjUw OCwxNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgc2Vs Zi5fbGEgPSAwICMgVG9rZW4gdHlwZQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAg ICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTg1OQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODYy DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5vcmRlcmVkbGlzdEZsYWdzRmllbGQoKQ0KPiANCj4g LSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODY0DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDE4NjcNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2Vs ZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAg ICAgICAgICAgIHdoaWxlIF9sYT09VmZyU3ludGF4UGFyc2VyLkJpdFdpc2VPcjoNCj4gDQo+IC0g ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4NjANCj4gDQo+ICsgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDE4NjMNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuQml0V2lzZU9yKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTg2MQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTg2NA0KPiANCj4g ICAgICAgICAgICAgICAgICBzZWxmLm9yZGVyZWRsaXN0RmxhZ3NGaWVsZCgpDQo+IA0KPiAtICAg ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODY2DQo+IA0KPiArICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxODY5DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIu c3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgx KQ0KPiANCj4gDQo+IA0KPiBAQCAtMTI1NjEsMjcgKzEyNTY5LDI3IEBAIGNsYXNzIFZmclN5bnRh eFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBsb2NhbGN0eCA9IFZmclN5bnRheFBhcnNl ci5PcmRlcmVkbGlzdEZsYWdzRmllbGRDb250ZXh0KHNlbGYsIHNlbGYuX2N0eCwNCj4gc2VsZi5z dGF0ZSkNCj4gDQo+ICAgICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAyMjgsIHNlbGYu UlVMRV9vcmRlcmVkbGlzdEZsYWdzRmllbGQpDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAt ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4NzENCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMTg3NA0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxm KQ0KPiANCj4gICAgICAgICAgICAgIHRva2VuID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAg ICAgICAgICAgICBpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLk51bWJlcl06DQo+IA0KPiAg ICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0g ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4NjcNCj4gDQo+ICsgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDE4NzANCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAg ICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLlVuaVF1ZUZsYWddOg0K PiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDIpDQo+ IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODY4DQo+IA0KPiArICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxODcxDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLlVuaVF1ZUZsYWcpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBh c3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuTm9F bXB0eUZsYWddOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9j YWxjdHgsIDMpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODY5DQo+IA0K PiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODcyDQo+IA0KPiAgICAgICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk5vRW1wdHlGbGFnKQ0KPiANCj4gICAgICAg ICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3lu dGF4UGFyc2VyLkludGVyYWN0aXZlRmxhZywNCj4gVmZyU3ludGF4UGFyc2VyLk5WQWNjZXNzRmxh ZywgVmZyU3ludGF4UGFyc2VyLlJlc2V0UmVxdWlyZWRGbGFnLA0KPiBWZnJTeW50YXhQYXJzZXIu UmVjb25uZWN0UmVxdWlyZWRGbGFnLCBWZnJTeW50YXhQYXJzZXIuTGF0ZUNoZWNrRmxhZywNCj4g VmZyU3ludGF4UGFyc2VyLlJlYWRPbmx5RmxhZywgVmZyU3ludGF4UGFyc2VyLk9wdGlvbk9ubHlG bGFnLA0KPiBWZnJTeW50YXhQYXJzZXIuUmVzdFN0eWxlRmxhZ106DQo+IA0KPiAgICAgICAgICAg ICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgNCkNCj4gDQo+IC0gICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDE4NzANCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDE4NzMNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5xdWVzdGlvbmhlYWRlckZsYWdz RmllbGQoKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAg ZWxzZToNCj4gDQo+IEBAIC0xMjYwMSwxMCArMTI2MDksOSBAQCBjbGFzcyBWZnJTeW50YXhQYXJz ZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcnNlciwgcGFy ZW50OlBhcnNlclJ1bGVDb250ZXh0PU5vbmUsDQo+IGludm9raW5nU3RhdGU6aW50PS0xKToNCj4g DQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwgaW52b2tpbmdTdGF0ZSkN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0KPiANCj4gLSAgICAgICAg ICAgIHNlbGYuTm9kZSA9IFZmclRyZWVOb2RlKEVGSV9JRlJfREFURV9PUCkNCj4gDQo+IC0gICAg ICAgICAgICBzZWxmLk9wT2JqID0gQ0lmckRhdGUoKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYu Tm9kZSA9IElmclRyZWVOb2RlKEVGSV9JRlJfREFURV9PUCkNCj4gDQo+ICAgICAgICAgICAgICBz ZWxmLlFUeXBlID0gRUZJX1FVRVNJT05fVFlQRS5RVUVTVElPTl9EQVRFDQo+IA0KPiAtICAgICAg ICAgICAgc2VsZi5WYWwgPSBFRklfSUZSX1RZUEVfVkFMVUUoKQ0KPiANCj4gKyAgICAgICAgICAg IHNlbGYuVmFsID0gRUZJX0hJSV9EQVRFKCkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLkYxID0g Tm9uZSAjIFRva2VuDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5GMiA9IE5vbmUgIyBUb2tlbg0K PiANCj4gDQo+IA0KPiBAQCAtMTI3MzQsMTg3ICsxMjc0MSwxODcgQEAgY2xhc3MgVmZyU3ludGF4 UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUN Cj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJB bHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4NzMNCj4g DQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTg3Ng0KPiANCj4gICAgICAgICAgICAgIHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkRhdGUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDE5NjQNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTk2Nw0KPiANCj4g ICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAg ICAgIHRva2VuID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBpZiB0b2tl biBpbiBbVmZyU3ludGF4UGFyc2VyLlByb21wdCwgVmZyU3ludGF4UGFyc2VyLk5hbWUsDQo+IFZm clN5bnRheFBhcnNlci5WYXJJZCwgVmZyU3ludGF4UGFyc2VyLlF1ZXN0aW9uSWRdOg0KPiANCj4g LSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTg3NA0KPiANCj4gLSAgICAgICAgICAgICAg ICBzZWxmLnZmclF1ZXN0aW9uSGVhZGVyKGxvY2FsY3R4Lk9wT2JqLCBsb2NhbGN0eC5RVHlwZSkN Cj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4NzUNCj4gDQo+ICsgICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4NzcNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi52 ZnJRdWVzdGlvbkhlYWRlcihsb2NhbGN0eC5Ob2RlLCBsb2NhbGN0eC5RVHlwZSkNCj4gDQo+ICsg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4NzgNCj4gDQo+ICAgICAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAtICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAxODgxDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx ODg0DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0K PiANCj4gICAgICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAg ICAgICAgICAgICAgICBpZiBfbGE9PVZmclN5bnRheFBhcnNlci5GTEFHUzoNCj4gDQo+IC0gICAg ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODc2DQo+IA0KPiArICAgICAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTg3OQ0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgbG9jYWxj dHguRjEgPSBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5GTEFHUykNCj4gDQo+IC0gICAgICAg ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODc3DQo+IA0KPiArICAgICAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTg4MA0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgc2VsZi5tYXRj aChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxODc4DQo+IA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTg4 MQ0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgc2VsZi52ZnJEYXRlRmxhZ3MoKQ0KPiANCj4g LSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4NzkNCj4gDQo+ICsgICAgICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODgyDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiAt ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODgzDQo+IA0KPiArICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAxODg2DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVt ZW50UXVlc3Rpb25PcHRpb25MaXN0KGxvY2FsY3R4Lk5vZGUpDQo+IA0KPiAgICAgICAgICAgICAg ICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJz ZXIuWWVhcl06DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODg1DQo+IA0K PiAtICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlllYXIpDQo+IA0K PiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODg2DQo+IA0KPiAtICAgICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlZhcklkKQ0KPiANCj4gLSAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTg4Nw0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNo KFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTg4OA0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5TdHJpbmdJZGVudGlmaWVyKQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5ZZWFyKQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MTg4OQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5E b3QpDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlZh cklkKQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTg5MA0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdJZGVudGlmaWVy KQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181 KQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTg5MQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ICsgICAg ICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nSWRlbnRpZmllcikN Cj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4OTINCj4gDQo+IC0gICAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuUHJvbXB0KQ0KPiANCj4gKyAgICAg ICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Eb3QpDQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODkzDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLlN0cmluZ0lkZW50aWZpZXIpDQo+IA0KPiAgICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxODk0DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLlN0cmluZ1Rva2VuKQ0KPiANCj4gKyAgICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ICAgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDE4OTUNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuT3BlblBhcmVuKQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLm1hdGNo KFZmclN5bnRheFBhcnNlci5Qcm9tcHQpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxODk2DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLk51bWJlcikNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuVF9fNSkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE4OTcNCj4g DQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ2xvc2VQYXJl bikNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3Ry aW5nVG9rZW4pDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODk4DQo+IA0K PiAtICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuUGFyZW4p DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxODk5DQo+IA0KPiAtICAgICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkhlbHApDQo+IA0KPiArICAgICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+ICAgICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5MDANCj4gDQo+IC0gICAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ2xvc2VQYXJlbikNCj4gDQo+ICAgICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDE5MDENCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuU3RyaW5nVG9rZW4pDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMTkwMg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5PcGVuUGFyZW4pDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLkhlbHApDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAx OTAzDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51 bWJlcikNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu VF9fNSkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5MDQNCj4gDQo+IC0g ICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ2xvc2VQYXJlbikNCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nVG9r ZW4pDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxOTA1DQo+IA0KPiAtICAg ICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuUGFyZW4pDQo+IA0K PiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxOTA2DQo+IA0KPiAtICAgICAgICAgICAg ICAgIHNlbGYubWluTWF4RGF0ZVN0ZXBEZWZhdWx0KGxvY2FsY3R4LlZhbC5kYXRlLCAwKQ0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+ IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxOTA3DQo+IA0KPiAtICAgICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk1vbnRoKQ0KPiANCj4gKyAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTkwOA0KPiANCj4gLSAgICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5WYXJJZCkNCj4gDQo+ICsgICAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAgICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAxOTA5DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWluTWF4RGF0 ZVN0ZXBEZWZhdWx0KGxvY2FsY3R4Lk5vZGUsIGxvY2FsY3R4LlZhbCwgMCkNCj4gDQo+ICAgICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5MTANCj4gDQo+IC0gICAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nSWRlbnRpZmllcikNCj4gDQo+ICsgICAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTW9udGgpDQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxOTExDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLkRvdCkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuVmFySWQpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxOTEyDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLlN0cmluZ0lkZW50aWZpZXIpDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxOTEzDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLkNvbW1hKQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5TdHJpbmdJZGVudGlmaWVyKQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTkxNA0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5Qcm9tcHQpDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLkRvdCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5MTUNCj4gDQo+ IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+ ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nSWRlbnRp ZmllcikNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5MTYNCj4gDQo+IC0g ICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nVG9rZW4pDQo+ IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0K PiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTkxNw0KPiANCj4gLSAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuUGFyZW4pDQo+IA0KPiArICAg ICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlByb21wdCkNCj4gDQo+ICAg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5MTgNCj4gDQo+IC0gICAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gKyAgICAgICAgICAgICAg ICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gICAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTkxOQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdUb2tlbikNCj4gDQo+ICAgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDE5MjANCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDE5MjENCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJz ZXIuSGVscCkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJz ZXIuTnVtYmVyKQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTkyMg0KPiAN Cj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5DbG9zZVBhcmVu KQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTkyMw0KPiANCj4gLSAgICAg ICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdUb2tlbikNCj4gDQo+ ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0K PiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxOTI0DQo+IA0KPiAtICAgICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+ICsgICAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuSGVscCkNCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5MjUNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMTkyNg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5DbG9zZVBhcmVuKQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5TdHJpbmdUb2tlbikNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDE5MjcNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuQ29tbWEpDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5 MjgNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5taW5NYXhEYXRlU3RlcERlZmF1bHQobG9j YWxjdHguVmFsLmRhdGUsIDEpDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDE5MjkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu RGF5KQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5D bG9zZVBhcmVuKQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTkzMA0KPiAN Cj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5WYXJJZCkNCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+ IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxOTMxDQo+IA0KPiAtICAgICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiArICAgICAgICAg ICAgICAgIHNlbGYubWluTWF4RGF0ZVN0ZXBEZWZhdWx0KGxvY2FsY3R4Lk5vZGUsIGxvY2FsY3R4 LlZhbCwgMSkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5MzINCj4gDQo+ IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nSWRlbnRp ZmllcikNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu RGF5KQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTkzMw0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Eb3QpDQo+IA0KPiArICAg ICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlZhcklkKQ0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTkzNA0KPiANCj4gLSAgICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdJZGVudGlmaWVyKQ0KPiANCj4gKyAgICAg ICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gICAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTkzNQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nSWRlbnRpZmllcikNCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5MzYNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuUHJvbXB0KQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5Eb3QpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxOTM3DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLlRfXzUpDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLlN0cmluZ0lkZW50aWZpZXIpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxOTM4DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLlN0cmluZ1Rva2VuKQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5 MzkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3Bl blBhcmVuKQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5Qcm9tcHQpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxOTQwDQo+IA0K PiAtICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5NDENCj4gDQo+IC0gICAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ2xvc2VQYXJlbikNCj4gDQo+ICsgICAg ICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nVG9rZW4pDQo+IA0K PiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxOTQyDQo+IA0KPiAtICAgICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gKyAgICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuUGFyZW4pDQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxOTQzDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLkhlbHApDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDE5NDQNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuVF9fNSkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuQ2xvc2VQYXJlbikNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDE5NDUNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu U3RyaW5nVG9rZW4pDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLkNvbW1hKQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTk0Ng0K PiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuUGFy ZW4pDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkhl bHApDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxOTQ3DQo+IA0KPiAtICAg ICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+ICsg ICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+ICAg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5NDgNCj4gDQo+IC0gICAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ2xvc2VQYXJlbikNCj4gDQo+ICsgICAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nVG9rZW4pDQo+IA0KPiAgICAg ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxOTQ5DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gKyAgICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuUGFyZW4pDQo+IA0KPiAgICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAxOTUwDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYubWluTWF4 RGF0ZVN0ZXBEZWZhdWx0KGxvY2FsY3R4LlZhbC5kYXRlLCAyKQ0KPiANCj4gLSAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTk1Ng0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLm1hdGNo KFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAxOTUxDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLkNsb3NlUGFyZW4pDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxOTUy DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1h KQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTk1Mw0KPiANCj4gKyAgICAg ICAgICAgICAgICBzZWxmLm1pbk1heERhdGVTdGVwRGVmYXVsdChsb2NhbGN0eC5Ob2RlLCBsb2Nh bGN0eC5WYWwsIDIpDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxOTU5DQo+ IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4g ICAgICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAg ICAgICAgICBpZiBfbGE9PVZmclN5bnRheFBhcnNlci5GTEFHUzoNCj4gDQo+IC0gICAgICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxOTUxDQo+IA0KPiArICAgICAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTk1NA0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgbG9jYWxjdHguRjIg PSBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5GTEFHUykNCj4gDQo+IC0gICAgICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxOTUyDQo+IA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMTk1NQ0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAxOTUzDQo+IA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTk1Ng0KPiAN Cj4gICAgICAgICAgICAgICAgICAgICAgc2VsZi52ZnJEYXRlRmxhZ3MoKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5NTQNCj4gDQo+ICsgICAgICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAxOTU3DQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiAtICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAxOTYxDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAxOTY0DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3lu YyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0K PiANCj4gICAgICAgICAgICAgICAgICB3aGlsZSBfbGE9PVZmclN5bnRheFBhcnNlci5JbmNvbnNp c3RlbnRJZjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxOTU4DQo+ IA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTk2MQ0KPiANCj4gICAgICAg ICAgICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRJbmNvbnNpc3RlbnRJZigpDQo+IA0KPiAt ICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTk2Mw0KPiANCj4gKyAgICAgICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5NjYNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIHNl bGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgX2xh ID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+IA0KPiANCj4gQEAgLTEyOTIyLDkgKzEyOTI5LDkg QEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgICAgICBlbHNl Og0KPiANCj4gICAgICAgICAgICAgICAgICByYWlzZSBOb1ZpYWJsZUFsdEV4Y2VwdGlvbihzZWxm KQ0KPiANCj4gDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5NjYNCj4gDQo+ICsg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMTk2OQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLkVuZERhdGUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDE5NjcNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTk3MA0KPiANCj4gICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlNlbWljb2xvbikNCj4gDQo+ICAg ICAgICAgIGV4Y2VwdCBSZWNvZ25pdGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAgICAg ICAgICBsb2NhbGN0eC5leGNlcHRpb24gPSByZQ0KPiANCj4gQEAgLTEyOTM3LDEyICsxMjk0NCwx NCBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gDQo+IA0KPiAgICAgIGNs YXNzIE1pbk1heERhdGVTdGVwRGVmYXVsdENvbnRleHQoUGFyc2VyUnVsZUNvbnRleHQpOg0KPiAN Cj4gDQo+IA0KPiAtICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyc2VyLCBwYXJlbnQ6UGFy c2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tpbmdTdGF0ZTppbnQ9LTEsIERhdGU9Tm9uZSwg S2V5VmFsdWU9Tm9uZSk6DQo+IA0KPiArICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyc2Vy LCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tpbmdTdGF0ZTppbnQ9LTEs IE5vZGU9Tm9uZSwgRGF0ZT1Ob25lLCBLZXlWYWx1ZT1Ob25lKToNCj4gDQo+ICAgICAgICAgICAg ICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwgaW52b2tpbmdTdGF0ZSkNCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuTm9kZSA9 IE5vbmUNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLkRhdGUgPSBOb25lDQo+IA0KPiAgICAgICAg ICAgICAgc2VsZi5LZXlWYWx1ZSA9IE5vbmUNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLk4gPSBO b25lICMgVG9rZW4NCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5vZGUgPSBOb2RlDQo+IA0KPiAg ICAgICAgICAgICAgc2VsZi5EYXRlID0gRGF0ZQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuS2V5 VmFsdWUgPSBLZXlWYWx1ZQ0KPiANCj4gDQo+IA0KPiBAQCAtMTI5ODIsNTQgKzEyOTkxLDU0IEBA IGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiANCj4gDQo+IA0KPiANCj4gDQo+ IA0KPiAtICAgIGRlZiBtaW5NYXhEYXRlU3RlcERlZmF1bHQoc2VsZiwgRGF0ZSwgS2V5VmFsdWUp Og0KPiANCj4gKyAgICBkZWYgbWluTWF4RGF0ZVN0ZXBEZWZhdWx0KHNlbGYsIE5vZGUsIERhdGUs IEtleVZhbHVlKToNCj4gDQo+IA0KPiANCj4gLSAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50YXhQ YXJzZXIuTWluTWF4RGF0ZVN0ZXBEZWZhdWx0Q29udGV4dChzZWxmLCBzZWxmLl9jdHgsDQo+IHNl bGYuc3RhdGUsIERhdGUsIEtleVZhbHVlKQ0KPiANCj4gKyAgICAgICAgbG9jYWxjdHggPSBWZnJT eW50YXhQYXJzZXIuTWluTWF4RGF0ZVN0ZXBEZWZhdWx0Q29udGV4dChzZWxmLCBzZWxmLl9jdHgs DQo+IHNlbGYuc3RhdGUsIE5vZGUsIERhdGUsIEtleVZhbHVlKQ0KPiANCj4gICAgICAgICAgc2Vs Zi5lbnRlclJ1bGUobG9jYWxjdHgsIDIzMiwgc2VsZi5SVUxFX21pbk1heERhdGVTdGVwRGVmYXVs dCkNCj4gDQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUNCj4gDQo+ICAgICAg ICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgs IDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5NjkNCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTk3Mg0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLk1pbmltdW0pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5 NzANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTk3Mw0KPiANCj4gICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDE5NzENCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTk3NA0K PiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4g DQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTk3Mg0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxOTc1DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuQ29tbWEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5NzMNCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTk3Ng0KPiANCj4gICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLk1heGltdW0pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDE5NzQNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTk3Nw0KPiANCj4g ICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5NzUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTk3OA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51 bWJlcikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTk3Ng0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAxOTc5DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5 ODENCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTk4NA0KPiANCj4gICAgICAgICAg ICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9 IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYgX2xhPT1WZnJTeW50YXhQ YXJzZXIuU3RlcDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5NzcNCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5ODANCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RlcCkNCj4gDQo+IC0gICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDE5NzgNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDE5ODENCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJz ZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5NzkNCj4gDQo+ ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5ODINCj4gDQo+ICAgICAgICAgICAgICAg ICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMTk4MA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMTk4Mw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5Db21tYSkNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDE5ODcNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTk5MA0KPiANCj4gICAgICAg ICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9s YSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYgX2xhPT1WZnJTeW50 YXhQYXJzZXIuRGVmYXVsdDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5 ODMNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5ODYNCj4gDQo+ICAgICAg ICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRGVmYXVsdCkNCj4gDQo+IC0g ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5ODQNCj4gDQo+ICsgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDE5ODcNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5 ODUNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5ODgNCj4gDQo+ICAgICAg ICAgICAgICAgICAgbG9jYWxjdHguTiA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJl cikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5ODYNCj4gDQo+ICsgICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5ODkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gQEAg LTEzMDgxLDE3ICsxMzA5MCwxNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToN Cj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4gdHlwZQ0KPiANCj4gICAgICAgICAgdHJ5 Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4g DQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMTk4OQ0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxOTkyDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5kYXRlRmxhZ3NGaWVsZCgp DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5OTQNCj4gDQo+ICsgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMTk5Nw0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIu c3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+ IA0KPiAgICAgICAgICAgICAgd2hpbGUgX2xhPT1WZnJTeW50YXhQYXJzZXIuQml0V2lzZU9yOg0K PiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTk5MA0KPiANCj4gKyAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMTk5Mw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5CaXRXaXNlT3IpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAxOTkxDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAxOTk0 DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZGF0ZUZsYWdzRmllbGQoKQ0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMTk5Ng0KPiANCj4gKyAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMTk5OQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVy LnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEo MSkNCj4gDQo+IA0KPiANCj4gQEAgLTEzMTUxLDcgKzEzMTYwLDcgQEAgY2xhc3MgVmZyU3ludGF4 UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUN Cj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJB bHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDE5OTcNCj4g DQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjAwMA0KPiANCj4gICAgICAgICAgICAgIF9s YSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYgbm90KCgoKChfbGEg LSAxODEpKSAmIH4weDNmKSA9PSAwIGFuZCAoKDEgPDwgKF9sYSAtIDE4MSkpICYgKCgxIDw8DQo+ IChWZnJTeW50YXhQYXJzZXIuWWVhclN1cHBwcmVzc0ZsYWcgLSAxODEpKSB8ICgxIDw8DQo+IChW ZnJTeW50YXhQYXJzZXIuTW9udGhTdXBwcmVzc0ZsYWcgLSAxODEpKSB8ICgxIDw8DQo+IChWZnJT eW50YXhQYXJzZXIuRGF5U3VwcHJlc3NGbGFnIC0gMTgxKSkgfCAoMSA8PA0KPiAoVmZyU3ludGF4 UGFyc2VyLlN0b3JhZ2VOb3JtYWxGbGFnIC0gMTgxKSkgfCAoMSA8PA0KPiAoVmZyU3ludGF4UGFy c2VyLlN0b3JhZ2VUaW1lRmxhZyAtIDE4MSkpIHwgKDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5T dG9yYWdlV2FrZVVwRmxhZyAtIDE4MSkpKSkgIT0gMCkgb3INCj4gX2xhPT1WZnJTeW50YXhQYXJz ZXIuTnVtYmVyKToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5yZWNv dmVySW5saW5lKHNlbGYpDQo+IA0KPiBAQCAtMTMxNzIsMTAgKzEzMTgxLDkgQEAgY2xhc3MgVmZy U3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBw YXJzZXIsIHBhcmVudDpQYXJzZXJSdWxlQ29udGV4dD1Ob25lLA0KPiBpbnZva2luZ1N0YXRlOmlu dD0tMSk6DQo+IA0KPiAgICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhwYXJlbnQsIGludm9r aW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJzZXINCj4gDQo+ IC0gICAgICAgICAgICBzZWxmLk5vZGUgPSBWZnJUcmVlTm9kZShFRklfSUZSX1RJTUVfT1ApDQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5PcE9iaiA9IENJZnJUaW1lKCkNCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLk5vZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX1RJTUVfT1ApDQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi5RVHlwZSA9IEVGSV9RVUVTSU9OX1RZUEUuUVVFU1RJT05fVElNRQ0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYuVmFsID0gRUZJX0lGUl9UWVBFX1ZBTFVFKCkNCj4gDQo+ICsg ICAgICAgICAgICBzZWxmLlZhbCA9IEVGSV9ISUlfVElNRSgpDQo+IA0KPiAgICAgICAgICAgICAg c2VsZi5GMSA9IE5vbmUgIyBUb2tlbg0KPiANCj4gICAgICAgICAgICAgIHNlbGYuRjIgPSBOb25l ICMgVG9rZW4NCj4gDQo+IA0KPiANCj4gQEAgLTEzMzA1LDE4NyArMTMzMTMsMTg3IEBAIGNsYXNz IFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLl9sYSA9IDAgIyBU b2tlbiB0eXBlDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5l bnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAxOTk5DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIwMDINCj4gDQo+ICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UaW1lKQ0KPiANCj4gLSAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAyMDkwDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIw OTMNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ ICAgICAgICAgICAgICB0b2tlbiA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAg ICAgaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5Qcm9tcHQsIFZmclN5bnRheFBhcnNlci5O YW1lLA0KPiBWZnJTeW50YXhQYXJzZXIuVmFySWQsIFZmclN5bnRheFBhcnNlci5RdWVzdGlvbklk XToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIwMDANCj4gDQo+IC0gICAg ICAgICAgICAgICAgc2VsZi52ZnJRdWVzdGlvbkhlYWRlcihsb2NhbGN0eC5PcE9iaiwgbG9jYWxj dHguUVR5cGUpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDAxDQo+IA0K PiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDAzDQo+IA0KPiArICAgICAgICAgICAg ICAgIHNlbGYudmZyUXVlc3Rpb25IZWFkZXIobG9jYWxjdHguTm9kZSwgbG9jYWxjdHguUVR5cGUp DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDA0DQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjAwNw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjAxMA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5 bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkN Cj4gDQo+ICAgICAgICAgICAgICAgICAgaWYgX2xhPT1WZnJTeW50YXhQYXJzZXIuRkxBR1M6DQo+ IA0KPiAtICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjAwMg0KPiANCj4gKyAgICAg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIwMDUNCj4gDQo+ICAgICAgICAgICAgICAgICAg ICAgIGxvY2FsY3R4LkYxID0gc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRkxBR1MpDQo+IA0K PiAtICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjAwMw0KPiANCj4gKyAgICAgICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIwMDYNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAg IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMjAwNA0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDIwMDcNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIHNlbGYudmZyVGltZUZsYWdz KCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDA1DQo+IA0KPiAr ICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjAwOA0KPiANCj4gICAgICAgICAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiANCj4gDQo+ IA0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjAwOQ0KPiANCj4gKyAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjAxMg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm LnZmclN0YXRlbWVudFF1ZXN0aW9uT3B0aW9uTGlzdChsb2NhbGN0eC5Ob2RlKQ0KPiANCj4gICAg ICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZy U3ludGF4UGFyc2VyLkhvdXJdOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjAxMQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5I b3VyKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjAxMg0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5WYXJJZCkNCj4gDQo+IC0g ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIwMTMNCj4gDQo+IC0gICAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+ICAgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDIwMTQNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuU3RyaW5nSWRlbnRpZmllcikNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuSG91cikNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDIwMTUNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuRG90KQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5WYXJJZCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIwMTYN Cj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5n SWRlbnRpZmllcikNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuVF9fNSkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIwMTcNCj4g DQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+ IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlN0cmluZ0lk ZW50aWZpZXIpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDE4DQo+IA0K PiAtICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlByb21wdCkNCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRG90KQ0KPiAN Cj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjAxOQ0KPiANCj4gLSAgICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gKyAgICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdJZGVudGlmaWVyKQ0KPiANCj4g ICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjAyMA0KPiANCj4gLSAgICAgICAgICAgICAg ICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdUb2tlbikNCj4gDQo+ICsgICAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDIxDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+ICsgICAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuUHJvbXB0KQ0KPiANCj4gICAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjAyMg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyMDIzDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy LkNsb3NlUGFyZW4pDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLlN0cmluZ1Rva2VuKQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjAyNA0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5D b21tYSkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu T3BlblBhcmVuKQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjAyNQ0KPiAN Cj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5IZWxwKQ0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+ IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDI2DQo+IA0KPiAtICAgICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiArICAgICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3NlUGFyZW4pDQo+IA0KPiAgICAg ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDI3DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlN0cmluZ1Rva2VuKQ0KPiANCj4gKyAgICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDIwMjgNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRj aChWZnJTeW50YXhQYXJzZXIuT3BlblBhcmVuKQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5IZWxwKQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjAyOQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5OdW1iZXIpDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3lu dGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDMw DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3Nl UGFyZW4pDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy LlN0cmluZ1Rva2VuKQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjAzMQ0K PiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3BlblBh cmVuKQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjAzMg0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLm1pbk1heFRpbWVTdGVwRGVmYXVsdChsb2NhbGN0eC5WYWwudGlt ZSwgMCkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu TnVtYmVyKQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjAzMw0KPiANCj4g LSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5NaW51dGUpDQo+IA0K PiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3NlUGFyZW4p DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDM0DQo+IA0KPiAtICAgICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlZhcklkKQ0KPiANCj4gKyAgICAg ICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ICAgICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIwMzUNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5taW5NYXhUaW1lU3RlcERlZmF1bHQobG9jYWxjdHguTm9kZSwgbG9jYWxjdHguVmFsLCAwKQ0K PiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjAzNg0KPiANCj4gLSAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdJZGVudGlmaWVyKQ0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5NaW51dGUpDQo+ IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDM3DQo+IA0KPiAtICAgICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkRvdCkNCj4gDQo+ICsgICAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVmFySWQpDQo+IA0KPiAgICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyMDM4DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLlN0cmluZ0lkZW50aWZpZXIpDQo+IA0KPiArICAgICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAgICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAyMDM5DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLm1hdGNo KFZmclN5bnRheFBhcnNlci5TdHJpbmdJZGVudGlmaWVyKQ0KPiANCj4gICAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjA0MA0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5Qcm9tcHQpDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLkRvdCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDIwNDENCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu VF9fNSkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu U3RyaW5nSWRlbnRpZmllcikNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIw NDINCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3Ry aW5nVG9rZW4pDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLkNvbW1hKQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjA0Mw0KPiAN Cj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuUGFyZW4p DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlByb21w dCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIwNDQNCj4gDQo+IC0gICAg ICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjA0NQ0KPiANCj4gLSAgICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0KPiANCj4gKyAgICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdUb2tlbikNCj4gDQo+ICAgICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIwNDYNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiArICAgICAgICAgICAgICAgIHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+ICAgICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDIwNDcNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuSGVscCkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjA0OA0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5UX181KQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5DbG9zZVBhcmVuKQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjA0OQ0K PiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdU b2tlbikNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu Q29tbWEpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDUwDQo+IA0KPiAt ICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuSGVscCkNCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIwNTENCj4gDQo+IC0gICAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gKyAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjA1Mg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0KPiANCj4gKyAgICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdUb2tlbikNCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDIwNTMNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRj aChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDIwNTQNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5taW5NYXhUaW1lU3Rl cERlZmF1bHQobG9jYWxjdHguVmFsLnRpbWUsIDEpDQo+IA0KPiArICAgICAgICAgICAgICAgIHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+ICAgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDIwNTUNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuU2Vjb25kKQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMjA1Ng0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5WYXJJZCkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuQ29tbWEpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDU3DQo+ IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+ IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWluTWF4VGltZVN0ZXBEZWZhdWx0KGxvY2FsY3R4 Lk5vZGUsIGxvY2FsY3R4LlZhbCwgMSkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDIwNTgNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJz ZXIuU3RyaW5nSWRlbnRpZmllcikNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuU2Vjb25kKQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjA1OQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5Eb3QpDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy LlZhcklkKQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjA2MA0KPiANCj4g LSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdJZGVudGlm aWVyKQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5U X181KQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjA2MQ0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ICsg ICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nSWRlbnRpZmll cikNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIwNjINCj4gDQo+IC0gICAg ICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuUHJvbXB0KQ0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Eb3QpDQo+IA0KPiAgICAg ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDYzDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiArICAgICAgICAgICAgICAgIHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlN0cmluZ0lkZW50aWZpZXIpDQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDY0DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLlN0cmluZ1Rva2VuKQ0KPiANCj4gKyAgICAgICAgICAgICAg ICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ICAgICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDIwNjUNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuT3BlblBhcmVuKQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5Qcm9tcHQpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyMDY2DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLk51bWJlcikNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuVF9fNSkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIwNjcN Cj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ2xvc2VQ YXJlbikNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu U3RyaW5nVG9rZW4pDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDY4DQo+ IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuUGFy ZW4pDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDY5DQo+IA0KPiAtICAg ICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkhlbHApDQo+IA0KPiArICAg ICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+ICAg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIwNzANCj4gDQo+IC0gICAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+ICsgICAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ2xvc2VQYXJlbikNCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDIwNzENCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRj aChWZnJTeW50YXhQYXJzZXIuU3RyaW5nVG9rZW4pDQo+IA0KPiArICAgICAgICAgICAgICAgIHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gICAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMjA3Mg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5PcGVuUGFyZW4pDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLkhlbHApDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyMDczDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy Lk51bWJlcikNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJz ZXIuVF9fNSkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIwNzQNCj4gDQo+ IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ2xvc2VQYXJlbikN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5n VG9rZW4pDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDc1DQo+IA0KPiAt ICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4g KyAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuUGFyZW4pDQo+ IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDc2DQo+IA0KPiAtICAgICAgICAg ICAgICAgIHNlbGYubWluTWF4VGltZVN0ZXBEZWZhdWx0KGxvY2FsY3R4LlZhbC50aW1lLCAyKQ0K PiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjA4Mg0KPiANCj4gKyAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiArICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDc3DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3NlUGFyZW4pDQo+IA0KPiArICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAyMDc4DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjA3OQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLm1pbk1heFRpbWVTdGVwRGVmYXVsdChs b2NhbGN0eC5Ob2RlLCBsb2NhbGN0eC5WYWwsIDIpDQo+IA0KPiArICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAyMDg1DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIu c3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgx KQ0KPiANCj4gICAgICAgICAgICAgICAgICBpZiBfbGE9PVZmclN5bnRheFBhcnNlci5GTEFHUzoN Cj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDc3DQo+IA0KPiArICAg ICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjA4MA0KPiANCj4gICAgICAgICAgICAgICAg ICAgICAgbG9jYWxjdHguRjIgPSBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5GTEFHUykNCj4g DQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDc4DQo+IA0KPiArICAgICAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjA4MQ0KPiANCj4gICAgICAgICAgICAgICAgICAg ICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyMDc5DQo+IA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjA4Mg0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgc2VsZi52ZnJUaW1lRmxh Z3MoKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIwODANCj4gDQo+ ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDgzDQo+IA0KPiAgICAgICAgICAg ICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IA0KPiAN Cj4gDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDg3DQo+IA0KPiArICAg ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMDkwDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNl bGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICBfbGEgPSBz ZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgICAgICB3aGlsZSBfbGE9PVZmclN5 bnRheFBhcnNlci5JbmNvbnNpc3RlbnRJZjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAyMDg0DQo+IA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjA4Nw0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRJbmNvbnNp c3RlbnRJZigpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjA4OQ0K PiANCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIwOTINCj4gDQo+ICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAg ICAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+IA0KPiANCj4gQEAg LTEzNDkzLDkgKzEzNTAxLDkgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ ICAgICAgICAgICAgICBlbHNlOg0KPiANCj4gICAgICAgICAgICAgICAgICByYWlzZSBOb1ZpYWJs ZUFsdEV4Y2VwdGlvbihzZWxmKQ0KPiANCj4gDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDIwOTINCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjA5NQ0KPiANCj4gICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkVuZFRpbWUpDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDIwOTMNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjA5Ng0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlNl bWljb2xvbikNCj4gDQo+ICAgICAgICAgIGV4Y2VwdCBSZWNvZ25pdGlvbkV4Y2VwdGlvbiBhcyBy ZToNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5leGNlcHRpb24gPSByZQ0KPiANCj4gQEAg LTEzNTA4LDEyICsxMzUxNiwxNCBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToN Cj4gDQo+IA0KPiAgICAgIGNsYXNzIE1pbk1heFRpbWVTdGVwRGVmYXVsdENvbnRleHQoUGFyc2Vy UnVsZUNvbnRleHQpOg0KPiANCj4gDQo+IA0KPiAtICAgICAgICBkZWYgX19pbml0X18oc2VsZiwg cGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tpbmdTdGF0ZTpp bnQ9LTEsIFRpbWU9Tm9uZSwgS2V5VmFsdWU9Tm9uZSk6DQo+IA0KPiArICAgICAgICBkZWYgX19p bml0X18oc2VsZiwgcGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52 b2tpbmdTdGF0ZTppbnQ9LTEsIE5vZGU9Tm9uZSwgVGltZT1Ob25lLCBLZXlWYWx1ZT1Ob25lKToN Cj4gDQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwgaW52b2tpbmdTdGF0 ZSkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuTm9kZSA9IE5vbmUNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLlRpbWUgPSBO b25lDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5LZXlWYWx1ZSA9IE5vbmUNCj4gDQo+ICAgICAg ICAgICAgICBzZWxmLk4gPSBOb25lICMgVG9rZW4NCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5v ZGUgPSBOb2RlDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5UaW1lID0gVGltZQ0KPiANCj4gICAg ICAgICAgICAgIHNlbGYuS2V5VmFsdWUgPSBLZXlWYWx1ZQ0KPiANCj4gDQo+IA0KPiBAQCAtMTM1 NTMsNTQgKzEzNTYzLDU0IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAN Cj4gDQo+IA0KPiANCj4gDQo+IA0KPiAtICAgIGRlZiBtaW5NYXhUaW1lU3RlcERlZmF1bHQoc2Vs ZiwgVGltZSwgS2V5VmFsdWUpOg0KPiANCj4gKyAgICBkZWYgbWluTWF4VGltZVN0ZXBEZWZhdWx0 KHNlbGYsIE5vZGUsIFRpbWUsIEtleVZhbHVlKToNCj4gDQo+IA0KPiANCj4gLSAgICAgICAgbG9j YWxjdHggPSBWZnJTeW50YXhQYXJzZXIuTWluTWF4VGltZVN0ZXBEZWZhdWx0Q29udGV4dChzZWxm LCBzZWxmLl9jdHgsDQo+IHNlbGYuc3RhdGUsIFRpbWUsIEtleVZhbHVlKQ0KPiANCj4gKyAgICAg ICAgbG9jYWxjdHggPSBWZnJTeW50YXhQYXJzZXIuTWluTWF4VGltZVN0ZXBEZWZhdWx0Q29udGV4 dChzZWxmLA0KPiBzZWxmLl9jdHgsIHNlbGYuc3RhdGUsIE5vZGUsIFRpbWUsIEtleVZhbHVlKQ0K PiANCj4gICAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgsIDI0MCwgc2VsZi5SVUxFX21p bk1heFRpbWVTdGVwRGVmYXVsdCkNCj4gDQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2Vu IHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVy T3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIw OTUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjA5OA0KPiANCj4gICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk1pbmltdW0pDQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDIwOTYNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjA5 OQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIwOTcNCj4gDQo+ICsgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMjEwMA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjA5OA0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTAxDQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDIwOTkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjEwMg0KPiANCj4g ICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk1heGltdW0pDQo+IA0KPiAt ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxMDANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMjEwMw0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy LlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxMDENCj4gDQo+ICsgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjEwNA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0g MjEwMg0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTA1DQo+IA0KPiAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDIxMDcNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjEx MA0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4g ICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAg aWYgX2xhPT1WZnJTeW50YXhQYXJzZXIuU3RlcDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDIxMDMNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxMDYN Cj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RlcCkN Cj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxMDQNCj4gDQo+ICsgICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxMDcNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDIxMDUNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxMDgNCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0K PiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjEwNg0KPiANCj4gKyAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjEwOQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiAtICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDIxMTMNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjExNg0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiAN Cj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAg ICAgaWYgX2xhPT1WZnJTeW50YXhQYXJzZXIuRGVmYXVsdDoNCj4gDQo+IC0gICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDIxMDkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDIxMTINCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu RGVmYXVsdCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxMTANCj4gDQo+ ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxMTMNCj4gDQo+ICAgICAgICAgICAgICAg ICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDIxMTENCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDIxMTQNCj4gDQo+ICAgICAgICAgICAgICAgICAgbG9jYWxjdHguTiA9IHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDIxMTINCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxMTUNCj4gDQo+ICAg ICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAN Cj4gDQo+IA0KPiANCj4gQEAgLTEzNjUyLDE3ICsxMzY2MiwxNyBAQCBjbGFzcyBWZnJTeW50YXhQ YXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4gdHlwZQ0K PiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFs dChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjExNQ0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTE4DQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi50aW1lRmxhZ3NGaWVsZCgpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxMjAN Cj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjEyMw0KPiANCj4gICAgICAgICAgICAg IHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9IHNl bGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgd2hpbGUgX2xhPT1WZnJTeW50YXhQ YXJzZXIuQml0V2lzZU9yOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjEx Ng0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjExOQ0KPiANCj4gICAgICAg ICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5CaXRXaXNlT3IpDQo+IA0KPiAt ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTE3DQo+IA0KPiArICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAyMTIwDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudGltZUZsYWdz RmllbGQoKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjEyMg0KPiANCj4g KyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjEyNQ0KPiANCj4gICAgICAgICAgICAgICAg ICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICAgICAgX2xh ID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+IA0KPiANCj4gQEAgLTEzNzIyLDcgKzEzNzMyLDcg QEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuX2xh ID0gMCAjIFRva2VuIHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAg ICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDIxMjMNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjEyNg0KPiAN Cj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAg ICAgaWYgbm90KCgoKChfbGEgLSAxODQpKSAmIH4weDNmKSA9PSAwIGFuZCAoKDEgPDwgKF9sYSAt IDE4NCkpICYgKCgxIDw8DQo+IChWZnJTeW50YXhQYXJzZXIuSG91clN1cHBwcmVzc0ZsYWcgLSAx ODQpKSB8ICgxIDw8DQo+IChWZnJTeW50YXhQYXJzZXIuTWludXRlU3VwcHJlc3NGbGFnIC0gMTg0 KSkgfCAoMSA8PA0KPiAoVmZyU3ludGF4UGFyc2VyLlNlY29uZFN1cHByZXNzRmxhZyAtIDE4NCkp IHwgKDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5TdG9yYWdlTm9ybWFsRmxhZyAtIDE4NCkpIHwg KDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5TdG9yYWdlVGltZUZsYWcgLSAxODQpKSB8ICgxIDw8 DQo+IChWZnJTeW50YXhQYXJzZXIuU3RvcmFnZVdha2VVcEZsYWcgLSAxODQpKSkpICE9IDApIG9y DQo+IF9sYT09VmZyU3ludGF4UGFyc2VyLk51bWJlcik6DQo+IA0KPiAgICAgICAgICAgICAgICAg IHNlbGYuX2VyckhhbmRsZXIucmVjb3ZlcklubGluZShzZWxmKQ0KPiANCj4gQEAgLTEzNzc4LDI3 ICsxMzc4OCwyNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAg ICAgbG9jYWxjdHggPSBWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50Q29uZGl0aW9uYWxDb250 ZXh0KHNlbGYsIHNlbGYuX2N0eCwNCj4gc2VsZi5zdGF0ZSkNCj4gDQo+ICAgICAgICAgIHNlbGYu ZW50ZXJSdWxlKGxvY2FsY3R4LCAyNDYsIHNlbGYuUlVMRV92ZnJTdGF0ZW1lbnRDb25kaXRpb25h bCkNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0g MjEyOQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTMyDQo+IA0KPiAgICAgICAg ICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgdG9r ZW4gPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIHRva2VuIGluIFtW ZnJTeW50YXhQYXJzZXIuRGlzYWJsZUlmXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5l bnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMjEyNQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjEyOA0KPiAN Cj4gICAgICAgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudERpc2FibGVJZlN0YXQoKQ0KPiAN Cj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBp biBbVmZyU3ludGF4UGFyc2VyLlN1cHByZXNzSWZdOg0KPiANCj4gICAgICAgICAgICAgICAgICBz ZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAyMTI2DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTI5 DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50U3VwcHJlc3NJZlN0YXQo KQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0 b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLkdyYXlPdXRJZl06DQo+IA0KPiAgICAgICAgICAgICAg ICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMykNCj4gDQo+IC0gICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDIxMjcNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDIxMzANCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRHcmF5T3V0SWZT dGF0KCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVs aWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5JbmNvbnNpc3RlbnRJZl06DQo+IA0KPiAgICAg ICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgNCkNCj4gDQo+IC0gICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxMjgNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDIxMzENCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRJ bmNvbnNpc3RlbnRJZlN0YXQoKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAg ICAgICAgICAgICAgZWxzZToNCj4gDQo+IEBAIC0xMzg1NCwxMyArMTM4NjQsMTMgQEAgY2xhc3Mg VmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuZW50ZXJSdWxlKGxv Y2FsY3R4LCAyNDgsIHNlbGYuUlVMRV92ZnJTdGF0ZW1lbnRDb25kaXRpb25hbE5ldykNCj4gDQo+ ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9j YWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxMzENCj4gDQo+ICsg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjEzNA0KPiANCj4gICAgICAgICAgICAgIHNlbGYudmZy U3RhdGVtZW50RGlzYWJsZUlmU3RhdCgpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDIxMzINCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjEzNQ0KPiANCj4gICAgICAg ICAgICAgIHNlbGYudmZyU3RhdGVtZW50U3VwcHJlc3NJZlN0YXROZXcoKQ0KPiANCj4gLSAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyMTMzDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDIxMzYNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudEdyYXlPdXRJZlN0YXRO ZXcoKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTM0DQo+IA0KPiArICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDIxMzcNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnZmclN0YXRl bWVudEluY29uc2lzdGVudElmU3RhdCgpDQo+IA0KPiAgICAgICAgICBleGNlcHQgUmVjb2duaXRp b25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHguZXhjZXB0aW9u ID0gcmUNCj4gDQo+IEBAIC0xMzkwMCw3ICsxMzkxMCw3IEBAIGNsYXNzIFZmclN5bnRheFBhcnNl ciAoIFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMjUwLCBz ZWxmLlJVTEVfdmZyU3RhdGVtZW50U3VwcHJlc3NJZlN0YXQpDQo+IA0KPiAgICAgICAgICB0cnk6 DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTM2DQo+IA0KPiArICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDIxMzkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudFN1cHBy ZXNzSWZTdGF0TmV3KCkNCj4gDQo+ICAgICAgICAgIGV4Y2VwdCBSZWNvZ25pdGlvbkV4Y2VwdGlv biBhcyByZToNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5leGNlcHRpb24gPSByZQ0KPiAN Cj4gQEAgLTEzOTQwLDcgKzEzOTUwLDcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2Vy ICk6DQo+ICAgICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAyNTIsIHNlbGYuUlVMRV92 ZnJTdGF0ZW1lbnRHcmF5T3V0SWZTdGF0KQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAg ICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAg ICAgICBzZWxmLnN0YXRlID0gMjEzOA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAy MTQxDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRHcmF5T3V0SWZTdGF0TmV3 KCkNCj4gDQo+ICAgICAgICAgIGV4Y2VwdCBSZWNvZ25pdGlvbkV4Y2VwdGlvbiBhcyByZToNCj4g DQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5leGNlcHRpb24gPSByZQ0KPiANCj4gQEAgLTEzOTk5 LDM3ICsxNDAwOSwzNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAg ICAgICAgbG9jYWxjdHggPSBWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50U3RhdExpc3RDb250 ZXh0KHNlbGYsIHNlbGYuX2N0eCwNCj4gc2VsZi5zdGF0ZSkNCj4gDQo+ICAgICAgICAgIHNlbGYu ZW50ZXJSdWxlKGxvY2FsY3R4LCAyNTQsIHNlbGYuUlVMRV92ZnJTdGF0ZW1lbnRTdGF0TGlzdCkN Cj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjE0 Ng0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTQ5DQo+IA0KPiAgICAgICAgICAg ICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgdG9rZW4g PSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIHRva2VuIGluIFtWZnJT eW50YXhQYXJzZXIuU3VidGl0bGUsIFZmclN5bnRheFBhcnNlci5UZXh0LA0KPiBWZnJTeW50YXhQ YXJzZXIuR290bywgVmZyU3ludGF4UGFyc2VyLlJlc2V0QnV0dG9uXToNCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjE0MA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMjE0Mw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudFN0YXQo KQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0 b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLk9uZU9mLCBWZnJTeW50YXhQYXJzZXIuT3JkZXJlZExp c3QsDQo+IFZmclN5bnRheFBhcnNlci5EYXRlLCBWZnJTeW50YXhQYXJzZXIuVGltZSwgVmZyU3lu dGF4UGFyc2VyLkNoZWNrQm94LA0KPiBWZnJTeW50YXhQYXJzZXIuTnVtZXJpYywgVmZyU3ludGF4 UGFyc2VyLlBhc3N3b3JkLCBWZnJTeW50YXhQYXJzZXIuU3RyaW5nLA0KPiBWZnJTeW50YXhQYXJz ZXIuQWN0aW9uXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxv Y2FsY3R4LCAyKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjE0MQ0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjE0NA0KPiANCj4gICAgICAgICAgICAg ICAgICBzZWxmLnZmclN0YXRlbWVudFF1ZXN0aW9ucygpDQo+IA0KPiAgICAgICAgICAgICAgICAg IHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIu R3JheU91dElmLCBWZnJTeW50YXhQYXJzZXIuU3VwcHJlc3NJZiwNCj4gVmZyU3ludGF4UGFyc2Vy LkRpc2FibGVJZiwgVmZyU3ludGF4UGFyc2VyLkluY29uc2lzdGVudElmXToNCj4gDQo+ICAgICAg ICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAzKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjE0Mg0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjE0NQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudENv bmRpdGlvbmFsKCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAg ICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5MYWJlbF06DQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgNCkNCj4gDQo+IC0gICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxNDMNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDIxNDYNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRMYWJl bCgpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlm IHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuR3VpZE9wXToNCj4gDQo+ICAgICAgICAgICAgICAg ICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCA1KQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjE0NA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjE0Nw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudEV4dGVuc2lvbigp DQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRv a2VuIGluIFtWZnJTeW50YXhQYXJzZXIuSW52ZW50b3J5LCBWZnJTeW50YXhQYXJzZXIuSGlkZGVu LA0KPiBWZnJTeW50YXhQYXJzZXIuUmVzdG9yZSwgVmZyU3ludGF4UGFyc2VyLlNhdmVdOg0KPiAN Cj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDYpDQo+IA0K PiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTQ1DQo+IA0KPiArICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAyMTQ4DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3Rh dGVtZW50SW52YWxpZCgpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAg ICAgICAgICBlbHNlOg0KPiANCj4gQEAgLTE0MDgzLDI3ICsxNDA5MywyNyBAQCBjbGFzcyBWZnJT eW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50YXhQ YXJzZXIuVmZyU3RhdGVtZW50U3RhdExpc3RPbGRDb250ZXh0KHNlbGYsIHNlbGYuX2N0eCwNCj4g c2VsZi5zdGF0ZSkNCj4gDQo+ICAgICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAyNTYs IHNlbGYuUlVMRV92ZnJTdGF0ZW1lbnRTdGF0TGlzdE9sZCkNCj4gDQo+ICAgICAgICAgIHRyeToN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjE1Mg0KPiANCj4gKyAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAyMTU1DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5z eW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgdG9rZW4gPSBzZWxmLl9pbnB1dC5MQSgxKQ0K PiANCj4gICAgICAgICAgICAgIGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuU3VidGl0bGUs IFZmclN5bnRheFBhcnNlci5UZXh0LA0KPiBWZnJTeW50YXhQYXJzZXIuR290bywgVmZyU3ludGF4 UGFyc2VyLlJlc2V0QnV0dG9uXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91 dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjE0OA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjE1MQ0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudFN0YXQoKQ0KPiANCj4gICAgICAgICAgICAg ICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFy c2VyLk9uZU9mLCBWZnJTeW50YXhQYXJzZXIuT3JkZXJlZExpc3QsDQo+IFZmclN5bnRheFBhcnNl ci5EYXRlLCBWZnJTeW50YXhQYXJzZXIuVGltZSwgVmZyU3ludGF4UGFyc2VyLkNoZWNrQm94LA0K PiBWZnJTeW50YXhQYXJzZXIuTnVtZXJpYywgVmZyU3ludGF4UGFyc2VyLlBhc3N3b3JkLCBWZnJT eW50YXhQYXJzZXIuU3RyaW5nLA0KPiBWZnJTeW50YXhQYXJzZXIuQWN0aW9uXToNCj4gDQo+ICAg ICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAyKQ0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjE0OQ0KPiANCj4gKyAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMjE1Mg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVu dFF1ZXN0aW9ucygpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAg ICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuTGFiZWxdOg0KPiANCj4gICAgICAg ICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDMpDQo+IA0KPiAtICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTUwDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyMTUzDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50TGFi ZWwoKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxp ZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLkludmVudG9yeSwgVmZyU3ludGF4UGFyc2VyLkhp ZGRlbiwNCj4gVmZyU3ludGF4UGFyc2VyLlJlc3RvcmUsIFZmclN5bnRheFBhcnNlci5TYXZlXToN Cj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCA0KQ0K PiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjE1MQ0KPiANCj4gKyAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjE1NA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnZm clN0YXRlbWVudEludmFsaWQoKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAg ICAgICAgICAgICAgZWxzZToNCj4gDQo+IEBAIC0xNDEyMyw3ICsxNDEzMyw3IEBAIGNsYXNzIFZm clN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwg cGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tpbmdTdGF0ZTpp bnQ9LTEpOg0KPiANCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZv a2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0K PiAtICAgICAgICAgICAgc2VsZi5Ob2RlID0gVmZyVHJlZU5vZGUoRUZJX0lGUl9ESVNBQkxFX0lG X09QKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuTm9kZSA9IElmclRyZWVOb2RlKEVGSV9JRlJf RElTQUJMRV9JRl9PUCkNCj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVmIERpc2FibGVJZihzZWxm KToNCj4gDQo+ICAgICAgICAgICAgICByZXR1cm4gc2VsZi5nZXRUb2tlbihWZnJTeW50YXhQYXJz ZXIuRGlzYWJsZUlmLCAwKQ0KPiANCj4gQEAgLTE0MTY3LDI1ICsxNDE3NywyNSBAQCBjbGFzcyBW ZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9r ZW4gdHlwZQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50 ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0g MjE1NA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTU3DQo+IA0KPiAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRGlzYWJsZUlmKQ0KPiANCj4gLSAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyMTU1DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi52ZnJTdGF0 ZW1lbnRFeHByZXNzaW9uKCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjE1Ng0K PiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTU4DQo+IA0KPiArICAgICAgICAgICAg c2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uKGxvY2FsY3R4Lk5vZGUpDQo+IA0KPiArICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDIxNTkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5TZW1pY29sb24pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDIxNjANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjE2Mw0KPiANCj4gICAgICAg ICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9s YSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgd2hpbGUgKCgoKF9sYSAt IDQ2KSkgJiB+MHgzZikgPT0gMCBhbmQgKCgxIDw8IChfbGEgLSA0NikpICYgKCgxIDw8DQo+IChW ZnJTeW50YXhQYXJzZXIuT25lT2YgLSA0NikpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5PcmRl cmVkTGlzdCAtIDQ2KSkgfCAoMQ0KPiA8PCAoVmZyU3ludGF4UGFyc2VyLlN1YnRpdGxlIC0gNDYp KSB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuVGV4dCAtIDQ2KSkgfCAoMSA8PA0KPiAoVmZyU3lu dGF4UGFyc2VyLkRhdGUgLSA0NikpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5UaW1lIC0gNDYp KSB8ICgxIDw8DQo+IChWZnJTeW50YXhQYXJzZXIuR3JheU91dElmIC0gNDYpKSB8ICgxIDw8IChW ZnJTeW50YXhQYXJzZXIuTGFiZWwgLSA0NikpIHwgKDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5J bnZlbnRvcnkgLSA0NikpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5DaGVja0JveCAtIDQ2KSkg fCAoMQ0KPiA8PCAoVmZyU3ludGF4UGFyc2VyLk51bWVyaWMgLSA0NikpIHwgKDEgPDwgKFZmclN5 bnRheFBhcnNlci5QYXNzd29yZCAtIDQ2KSkgfA0KPiAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLlN0 cmluZyAtIDQ2KSkgfCAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLlN1cHByZXNzSWYgLSA0NikpIHwN Cj4gKDEgPDwgKFZmclN5bnRheFBhcnNlci5EaXNhYmxlSWYgLSA0NikpIHwgKDEgPDwgKFZmclN5 bnRheFBhcnNlci5IaWRkZW4gLSA0NikpIHwNCj4gKDEgPDwgKFZmclN5bnRheFBhcnNlci5Hb3Rv IC0gNDYpKSkpICE9IDApIG9yICgoKChfbGEgLSAxMTApKSAmIH4weDNmKSA9PSAwIGFuZCAoKDEN Cj4gPDwgKF9sYSAtIDExMCkpICYgKCgxIDw8IChWZnJTeW50YXhQYXJzZXIuSW5jb25zaXN0ZW50 SWYgLSAxMTApKSB8ICgxIDw8DQo+IChWZnJTeW50YXhQYXJzZXIuUmVzdG9yZSAtIDExMCkpIHwg KDEgPDwgKFZmclN5bnRheFBhcnNlci5TYXZlIC0gMTEwKSkgfCAoMSA8PA0KPiAoVmZyU3ludGF4 UGFyc2VyLlJlc2V0QnV0dG9uIC0gMTEwKSkgfCAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLkFjdGlv biAtIDExMCkpIHwNCj4gKDEgPDwgKFZmclN5bnRheFBhcnNlci5HdWlkT3AgLSAxMTApKSkpICE9 IDApOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjE1Nw0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjE2MA0KPiANCj4gICAgICAgICAgICAgICAgICBz ZWxmLnZmclN0YXRlbWVudFN0YXRMaXN0KCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDIxNjINCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxNjUNCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAg ICAgICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiANCj4gDQo+IC0g ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjE2Mw0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAyMTY2DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu RW5kSWYpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxNjQNCj4gDQo+ICsgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjE2Nw0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLlNlbWljb2xvbikNCj4gDQo+ICAgICAgICAgIGV4Y2VwdCBSZWNvZ25p dGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5leGNlcHRp b24gPSByZQ0KPiANCj4gQEAgLTE0MjAxLDYgKzE0MjExLDcgQEAgY2xhc3MgVmZyU3ludGF4UGFy c2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJzZXIsIHBh cmVudDpQYXJzZXJSdWxlQ29udGV4dD1Ob25lLA0KPiBpbnZva2luZ1N0YXRlOmludD0tMSk6DQo+ IA0KPiAgICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhwYXJlbnQsIGludm9raW5nU3RhdGUp DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJzZXINCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLk5vZGUgPSBOb25lDQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGRlZiBTdXBwcmVz c0lmKHNlbGYpOg0KPiANCj4gICAgICAgICAgICAgIHJldHVybiBzZWxmLmdldFRva2VuKFZmclN5 bnRheFBhcnNlci5TdXBwcmVzc0lmLCAwKQ0KPiANCj4gQEAgLTE0MjUwLDM3ICsxNDI2MSwzNyBA QCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5fbGEg PSAwICMgVG9rZW4gdHlwZQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAg IHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LnN0YXRlID0gMjE2Ng0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTY5DQo+IA0K PiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3VwcHJlc3NJZikNCj4g DQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjE3OQ0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAyMTgyDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5j KHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ ICAgICAgICAgICAgICBpZiBfbGE9PVZmclN5bnRheFBhcnNlci5GTEFHUzoNCj4gDQo+IC0gICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxNjcNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDIxNzANCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuRkxBR1MpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTY4 DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTcxDQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTY5DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyMTcyDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZmxhZ3NGaWVsZCgpDQo+ IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTc0DQo+IA0KPiArICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyMTc3DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuX2Vy ckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9p bnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgICAgICB3aGlsZSBfbGE9PVZmclN5bnRheFBh cnNlci5CaXRXaXNlT3I6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjE3MA0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxNzMNCj4gDQo+ ICAgICAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkJpdFdpc2VP cikNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTcxDQo+IA0KPiAr ICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjE3NA0KPiANCj4gICAgICAgICAgICAg ICAgICAgICAgc2VsZi5mbGFnc0ZpZWxkKCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAyMTc2DQo+IA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjE3OQ0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNl bGYpDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0K PiANCj4gDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTc3DQo+IA0KPiAr ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTgwDQo+IA0KPiAgICAgICAgICAgICAgICAg IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gDQo+IA0KPiANCj4gDQo+ IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjE4MQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYu dmZyU3RhdGVtZW50RXhwcmVzc2lvbigpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDIxODINCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjE4NA0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYudmZyU3RhdGVtZW50RXhwcmVzc2lvbihsb2NhbGN0eC5Ob2RlKQ0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTg1DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuU2VtaWNvbG9uKQ0KPiANCj4gICAgICAgICAgZXhjZXB0IFJl Y29nbml0aW9uRXhjZXB0aW9uIGFzIHJlOg0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LmV4 Y2VwdGlvbiA9IHJlDQo+IA0KPiBAQCAtMTQyOTYsNiArMTQzMDcsNyBAQCBjbGFzcyBWZnJTeW50 YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcnNl ciwgcGFyZW50OlBhcnNlclJ1bGVDb250ZXh0PU5vbmUsDQo+IGludm9raW5nU3RhdGU6aW50PS0x KToNCj4gDQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwgaW52b2tpbmdT dGF0ZSkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0KPiANCj4gKyAg ICAgICAgICAgIHNlbGYuTm9kZSA9IE5vbmUNCj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVmIEdy YXlPdXRJZihzZWxmKToNCj4gDQo+ICAgICAgICAgICAgICByZXR1cm4gc2VsZi5nZXRUb2tlbihW ZnJTeW50YXhQYXJzZXIuR3JheU91dElmLCAwKQ0KPiANCj4gQEAgLTE0MzQ1LDM3ICsxNDM1Nywz NyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5f bGEgPSAwICMgVG9rZW4gdHlwZQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAg ICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLnN0YXRlID0gMjE4NA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTg3DQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuR3JheU91dElmKQ0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTk3DQo+IA0KPiArICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDIyMDANCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5 bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiAN Cj4gICAgICAgICAgICAgIGlmIF9sYT09VmZyU3ludGF4UGFyc2VyLkZMQUdTOg0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjE4NQ0KPiANCj4gKyAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMjE4OA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5GTEFHUykNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIx ODYNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxODkNCj4gDQo+ICAgICAg ICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxODcNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDIxOTANCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5mbGFnc0ZpZWxkKCkN Cj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxOTINCj4gDQo+ICsgICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxOTUNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5f ZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgICAgIF9sYSA9IHNlbGYu X2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHdoaWxlIF9sYT09VmZyU3ludGF4 UGFyc2VyLkJpdFdpc2VPcjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyMTg4DQo+IA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjE5MQ0KPiAN Cj4gICAgICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQml0V2lz ZU9yKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxODkNCj4gDQo+ ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTkyDQo+IA0KPiAgICAgICAgICAg ICAgICAgICAgICBzZWxmLmZsYWdzRmllbGQoKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDIxOTQNCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyMTk3DQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMo c2VsZikNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEp DQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxOTUNCj4gDQo+ ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIxOTgNCj4gDQo+ICAgICAgICAgICAgICAg ICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiANCj4gDQo+IA0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMTk5DQo+IA0KPiAtICAgICAgICAgICAgc2Vs Zi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uKCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjIwMA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMjAyDQo+IA0KPiArICAg ICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uKGxvY2FsY3R4Lk5vZGUpDQo+IA0K PiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyMDMNCj4gDQo+ICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5TZW1pY29sb24pDQo+IA0KPiAgICAgICAgICBleGNlcHQg UmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHgu ZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC0xNDM5MSw3ICsxNDQwMyw3IEBAIGNsYXNzIFZmclN5 bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFy c2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tpbmdTdGF0ZTppbnQ9 LTEpOg0KPiANCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZva2lu Z1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAt ICAgICAgICAgICAgc2VsZi5Ob2RlID0gVmZyVHJlZU5vZGUoRUZJX0lGUl9TVVBQUkVTU19JRl9P UCkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5vZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX1NV UFBSRVNTX0lGX09QKQ0KPiANCj4gDQo+IA0KPiAgICAgICAgICBkZWYgU3VwcHJlc3NJZihzZWxm KToNCj4gDQo+ICAgICAgICAgICAgICByZXR1cm4gc2VsZi5nZXRUb2tlbihWZnJTeW50YXhQYXJz ZXIuU3VwcHJlc3NJZiwgMCkNCj4gDQo+IEBAIC0xNDQ1NCw1MSArMTQ0NjYsNTEgQEAgY2xhc3Mg VmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRv a2VuIHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVu dGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDIyMDINCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjIwNQ0KPiANCj4gICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlN1cHByZXNzSWYpDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyMTUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjIxOA0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0K PiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAg ICAgICAgaWYgX2xhPT1WZnJTeW50YXhQYXJzZXIuRkxBR1M6DQo+IA0KPiAtICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAyMjAzDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyMjA2DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy LkZMQUdTKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjIwNA0KPiANCj4g KyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjIwNw0KPiANCj4gICAgICAgICAgICAgICAg ICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjIwNQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjIwOA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmZsYWdzRmllbGQoKQ0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjIxMA0KPiANCj4gKyAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMjIxMw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVy LnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEo MSkNCj4gDQo+ICAgICAgICAgICAgICAgICAgd2hpbGUgX2xhPT1WZnJTeW50YXhQYXJzZXIuQml0 V2lzZU9yOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyMDYNCj4g DQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMjA5DQo+IA0KPiAgICAgICAg ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5CaXRXaXNlT3IpDQo+IA0K PiAtICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjIwNw0KPiANCj4gKyAgICAgICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyMTANCj4gDQo+ICAgICAgICAgICAgICAgICAgICAg IHNlbGYuZmxhZ3NGaWVsZCgpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjIxMg0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyMTUNCj4g DQo+ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiAN Cj4gICAgICAgICAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+IA0K PiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjIxMw0KPiANCj4gKyAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjIxNg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiAtICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDIyMTcNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnZmclN0YXRl bWVudEV4cHJlc3Npb24oKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMjE4DQo+ IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyMjANCj4gDQo+ICsgICAgICAgICAgICBz ZWxmLnZmclN0YXRlbWVudEV4cHJlc3Npb24obG9jYWxjdHguTm9kZSkNCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMjIyMQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLlNlbWljb2xvbikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0g MjIyMg0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMjI1DQo+IA0KPiAgICAgICAg ICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgX2xh ID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICB3aGlsZSAoKCgoX2xhIC0g NDYpKSAmIH4weDNmKSA9PSAwIGFuZCAoKDEgPDwgKF9sYSAtIDQ2KSkgJiAoKDEgPDwNCj4gKFZm clN5bnRheFBhcnNlci5PbmVPZiAtIDQ2KSkgfCAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLk9yZGVy ZWRMaXN0IC0gNDYpKSB8ICgxDQo+IDw8IChWZnJTeW50YXhQYXJzZXIuU3VidGl0bGUgLSA0Nikp IHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5UZXh0IC0gNDYpKSB8ICgxIDw8DQo+IChWZnJTeW50 YXhQYXJzZXIuRGF0ZSAtIDQ2KSkgfCAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLlRpbWUgLSA0Nikp IHwgKDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5HcmF5T3V0SWYgLSA0NikpIHwgKDEgPDwgKFZm clN5bnRheFBhcnNlci5MYWJlbCAtIDQ2KSkgfCAoMSA8PA0KPiAoVmZyU3ludGF4UGFyc2VyLklu dmVudG9yeSAtIDQ2KSkgfCAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLkNoZWNrQm94IC0gNDYpKSB8 ICgxDQo+IDw8IChWZnJTeW50YXhQYXJzZXIuTnVtZXJpYyAtIDQ2KSkgfCAoMSA8PCAoVmZyU3lu dGF4UGFyc2VyLlBhc3N3b3JkIC0gNDYpKSB8DQo+ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuU3Ry aW5nIC0gNDYpKSB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuU3VwcHJlc3NJZiAtIDQ2KSkgfA0K PiAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLkRpc2FibGVJZiAtIDQ2KSkgfCAoMSA8PCAoVmZyU3lu dGF4UGFyc2VyLkhpZGRlbiAtIDQ2KSkgfA0KPiAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLkdvdG8g LSA0NikpKSkgIT0gMCkgb3IgKCgoKF9sYSAtIDExMCkpICYgfjB4M2YpID09IDAgYW5kICgoMQ0K PiA8PCAoX2xhIC0gMTEwKSkgJiAoKDEgPDwgKFZmclN5bnRheFBhcnNlci5JbmNvbnNpc3RlbnRJ ZiAtIDExMCkpIHwgKDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5SZXN0b3JlIC0gMTEwKSkgfCAo MSA8PCAoVmZyU3ludGF4UGFyc2VyLlNhdmUgLSAxMTApKSB8ICgxIDw8DQo+IChWZnJTeW50YXhQ YXJzZXIuUmVzZXRCdXR0b24gLSAxMTApKSB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuQWN0aW9u IC0gMTEwKSkgfA0KPiAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLkd1aWRPcCAtIDExMCkpKSkgIT0g MCk6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMjE5DQo+IA0KPiArICAg ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMjIyDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNl bGYudmZyU3RhdGVtZW50U3RhdExpc3QoKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMjIyNA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjIyNw0KPiAN Cj4gICAgICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAg ICAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+IA0KPiANCj4gLSAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMjI1DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDIyMjgNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5F bmRJZikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjIyNg0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyMjI5DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuU2VtaWNvbG9uKQ0KPiANCj4gICAgICAgICAgZXhjZXB0IFJlY29nbml0 aW9uRXhjZXB0aW9uIGFzIHJlOg0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LmV4Y2VwdGlv biA9IHJlDQo+IA0KPiBAQCAtMTQ1MTQsNyArMTQ1MjYsNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJz ZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcnNlciwgcGFy ZW50OlBhcnNlclJ1bGVDb250ZXh0PU5vbmUsDQo+IGludm9raW5nU3RhdGU6aW50PS0xKToNCj4g DQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwgaW52b2tpbmdTdGF0ZSkN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0KPiANCj4gLSAgICAgICAg ICAgIHNlbGYuTm9kZSA9IFZmclRyZWVOb2RlKEVGSV9JRlJfR1JBWV9PVVRfSUZfT1ApDQo+IA0K PiArICAgICAgICAgICAgc2VsZi5Ob2RlID0gSWZyVHJlZU5vZGUoRUZJX0lGUl9HUkFZX09VVF9J Rl9PUCkNCj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVmIEdyYXlPdXRJZihzZWxmKToNCj4gDQo+ ICAgICAgICAgICAgICByZXR1cm4gc2VsZi5nZXRUb2tlbihWZnJTeW50YXhQYXJzZXIuR3JheU91 dElmLCAwKQ0KPiANCj4gQEAgLTE0NTc3LDUxICsxNDU4OSw1MSBAQCBjbGFzcyBWZnJTeW50YXhQ YXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4gdHlwZQ0K PiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFs dChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjIyOA0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMjMxDQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuR3JheU91dElmKQ0KPiANCj4gLSAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAyMjQxDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyNDQNCj4g DQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAg ICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIF9s YT09VmZyU3ludGF4UGFyc2VyLkZMQUdTOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMjIyOQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjIzMg0KPiAN Cj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5GTEFHUykNCj4g DQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyMzANCj4gDQo+ICsgICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDIyMzMNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRj aChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDIyMzENCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyMzQNCj4gDQo+ ICAgICAgICAgICAgICAgICAgc2VsZi5mbGFnc0ZpZWxkKCkNCj4gDQo+IC0gICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDIyMzYNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDIyMzkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYp DQo+IA0KPiAgICAgICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAg ICAgICAgICAgICAgICAgIHdoaWxlIF9sYT09VmZyU3ludGF4UGFyc2VyLkJpdFdpc2VPcjoNCj4g DQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMjMyDQo+IA0KPiArICAgICAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjIzNQ0KPiANCj4gICAgICAgICAgICAgICAgICAg ICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQml0V2lzZU9yKQ0KPiANCj4gLSAgICAgICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyMzMNCj4gDQo+ICsgICAgICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAyMjM2DQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZsYWdz RmllbGQoKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyMzgNCj4g DQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMjQxDQo+IA0KPiAgICAgICAg ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAg ICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiANCj4gDQo+IC0gICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyMzkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDIyNDINCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyMjQzDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNz aW9uKCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjI0NA0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyMjQ2DQo+IA0KPiArICAgICAgICAgICAgc2VsZi52ZnJTdGF0 ZW1lbnRFeHByZXNzaW9uKGxvY2FsY3R4Lk5vZGUpDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDIyNDcNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5TZW1pY29sb24pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyNDgNCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjI1MQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYu X2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lu cHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgd2hpbGUgKCgoKF9sYSAtIDQ2KSkgJiB+MHgz ZikgPT0gMCBhbmQgKCgxIDw8IChfbGEgLSA0NikpICYgKCgxIDw8DQo+IChWZnJTeW50YXhQYXJz ZXIuT25lT2YgLSA0NikpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5PcmRlcmVkTGlzdCAtIDQ2 KSkgfCAoMQ0KPiA8PCAoVmZyU3ludGF4UGFyc2VyLlN1YnRpdGxlIC0gNDYpKSB8ICgxIDw8IChW ZnJTeW50YXhQYXJzZXIuVGV4dCAtIDQ2KSkgfCAoMSA8PA0KPiAoVmZyU3ludGF4UGFyc2VyLkRh dGUgLSA0NikpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5UaW1lIC0gNDYpKSB8ICgxIDw8DQo+ IChWZnJTeW50YXhQYXJzZXIuR3JheU91dElmIC0gNDYpKSB8ICgxIDw8IChWZnJTeW50YXhQYXJz ZXIuTGFiZWwgLSA0NikpIHwgKDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5JbnZlbnRvcnkgLSA0 NikpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5DaGVja0JveCAtIDQ2KSkgfCAoMQ0KPiA8PCAo VmZyU3ludGF4UGFyc2VyLk51bWVyaWMgLSA0NikpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5Q YXNzd29yZCAtIDQ2KSkgfA0KPiAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLlN0cmluZyAtIDQ2KSkg fCAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLlN1cHByZXNzSWYgLSA0NikpIHwNCj4gKDEgPDwgKFZm clN5bnRheFBhcnNlci5EaXNhYmxlSWYgLSA0NikpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5I aWRkZW4gLSA0NikpIHwNCj4gKDEgPDwgKFZmclN5bnRheFBhcnNlci5Hb3RvIC0gNDYpKSkpICE9 IDApIG9yICgoKChfbGEgLSAxMTApKSAmIH4weDNmKSA9PSAwIGFuZCAoKDENCj4gPDwgKF9sYSAt IDExMCkpICYgKCgxIDw8IChWZnJTeW50YXhQYXJzZXIuSW5jb25zaXN0ZW50SWYgLSAxMTApKSB8 ICgxIDw8DQo+IChWZnJTeW50YXhQYXJzZXIuUmVzdG9yZSAtIDExMCkpIHwgKDEgPDwgKFZmclN5 bnRheFBhcnNlci5TYXZlIC0gMTEwKSkgfCAoMSA8PA0KPiAoVmZyU3ludGF4UGFyc2VyLlJlc2V0 QnV0dG9uIC0gMTEwKSkgfCAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLkFjdGlvbiAtIDExMCkpIHwN Cj4gKDEgPDwgKFZmclN5bnRheFBhcnNlci5HdWlkT3AgLSAxMTApKSkpICE9IDApOg0KPiANCj4g LSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjI0NQ0KPiANCj4gKyAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjI0OA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnZmclN0YXRl bWVudFN0YXRMaXN0KCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyNTAN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyNTMNCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAg ICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLnN0YXRlID0gMjI1MQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMjU0DQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRW5kSWYpDQo+IA0K PiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyNTINCj4gDQo+ICsgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjI1NQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLlNlbWljb2xvbikNCj4gDQo+ICAgICAgICAgIGV4Y2VwdCBSZWNvZ25pdGlvbkV4Y2VwdGlv biBhcyByZToNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5leGNlcHRpb24gPSByZQ0KPiAN Cj4gQEAgLTE0NjM3LDcgKzE0NjQ5LDcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2Vy ICk6DQo+ICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJzZXIsIHBhcmVudDpQYXJzZXJS dWxlQ29udGV4dD1Ob25lLA0KPiBpbnZva2luZ1N0YXRlOmludD0tMSk6DQo+IA0KPiAgICAgICAg ICAgICAgc3VwZXIoKS5fX2luaXRfXyhwYXJlbnQsIGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJzZXINCj4gDQo+IC0gICAgICAgICAgICBzZWxmLk5v ZGUgPSBWZnJUcmVlTm9kZShFRklfSUZSX0lOQ09OU0lTVEVOVF9JRl9PUCkNCj4gDQo+ICsgICAg ICAgICAgICBzZWxmLk5vZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX0lOQ09OU0lTVEVOVF9JRl9P UCkNCj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVmIEluY29uc2lzdGVudElmKHNlbGYpOg0KPiAN Cj4gICAgICAgICAgICAgIHJldHVybiBzZWxmLmdldFRva2VuKFZmclN5bnRheFBhcnNlci5JbmNv bnNpc3RlbnRJZiwgMCkNCj4gDQo+IEBAIC0xNDcwOCw1MyArMTQ3MjAsNTMgQEAgY2xhc3MgVmZy U3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2Vu IHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVy T3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIy NTQNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjI1Nw0KPiANCj4gICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkluY29uc2lzdGVudElmKQ0KPiANCj4gLSAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMjU1DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDIyNTgNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Q cm9tcHQpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyNTYNCj4gDQo+ICsgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjI1OQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIy NTcNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjI2MA0KPiANCj4gICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlN0cmluZ1Rva2VuKQ0KPiANCj4gLSAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyMjU4DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDIyNjENCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVu UGFyZW4pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyNTkNCj4gDQo+ICsgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjI2Mg0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0g MjI2MA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMjYzDQo+IA0KPiAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ2xvc2VQYXJlbikNCj4gDQo+IC0gICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjI2MQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyMjY0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29t bWEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyNzQNCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMjI3Nw0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRs ZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEp DQo+IA0KPiAgICAgICAgICAgICAgaWYgX2xhPT1WZnJTeW50YXhQYXJzZXIuRkxBR1M6DQo+IA0K PiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMjYyDQo+IA0KPiArICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAyMjY1DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLkZMQUdTKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjI2Mw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjI2Ng0KPiANCj4g ICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4g LSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjI2NA0KPiANCj4gKyAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjI2Nw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmZsYWdzRmll bGQoKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjI2OQ0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjI3Mg0KPiANCj4gICAgICAgICAgICAgICAgICBz ZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICAgICAgX2xhID0g c2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICAgICAgd2hpbGUgX2xhPT1WZnJT eW50YXhQYXJzZXIuQml0V2lzZU9yOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDIyNjUNCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMjY4 DQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5C aXRXaXNlT3IpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjI2Ng0K PiANCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyNjkNCj4gDQo+ICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuZmxhZ3NGaWVsZCgpDQo+IA0KPiAtICAgICAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMjI3MQ0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDIyNzQNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIu c3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQu TEEoMSkNCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjI3Mg0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjI3NQ0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IA0KPiANCj4g DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyNzYNCj4gDQo+IC0gICAgICAgICAg ICBzZWxmLnZmclN0YXRlbWVudEV4cHJlc3Npb24oKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyMjc3DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyNzkNCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudEV4cHJlc3Npb24obG9jYWxjdHguTm9kZSkN Cj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjI4MA0KPiANCj4gICAgICAgICAgICAg IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkVuZElmKQ0KPiANCj4gLSAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAyMjc4DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyODENCj4g DQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TZW1pY29sb24pDQo+ IA0KPiAgICAgICAgICBleGNlcHQgUmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAg ICAgICAgICAgICAgbG9jYWxjdHguZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC0xNDgwMCwyMiAr MTQ4MTIsMjIgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAg IGxvY2FsY3R4ID0gVmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudEludmFsaWRDb250ZXh0KHNl bGYsIHNlbGYuX2N0eCwNCj4gc2VsZi5zdGF0ZSkNCj4gDQo+ICAgICAgICAgIHNlbGYuZW50ZXJS dWxlKGxvY2FsY3R4LCAyNzAsIHNlbGYuUlVMRV92ZnJTdGF0ZW1lbnRJbnZhbGlkKQ0KPiANCj4g ICAgICAgICAgdHJ5Og0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMjgzDQo+IA0K PiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyODYNCj4gDQo+ICAgICAgICAgICAgICBzZWxm Ll9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICB0b2tlbiA9IHNlbGYu X2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBh cnNlci5IaWRkZW5dOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQo bG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMjgwDQo+ IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMjgzDQo+IA0KPiAgICAgICAgICAg ICAgICAgIHNlbGYudmZyU3RhdGVtZW50SW52YWxpZEhpZGRlbigpDQo+IA0KPiAgICAgICAgICAg ICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQ YXJzZXIuSW52ZW50b3J5XToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVy QWx0KGxvY2FsY3R4LCAyKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjI4 MQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjI4NA0KPiANCj4gICAgICAg ICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudEludmFsaWRJbnZlbnRvcnkoKQ0KPiANCj4gICAg ICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZy U3ludGF4UGFyc2VyLlJlc3RvcmUsIFZmclN5bnRheFBhcnNlci5TYXZlXToNCj4gDQo+ICAgICAg ICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAzKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjI4Mg0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjI4NQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudElu dmFsaWRTYXZlUmVzdG9yZURlZmF1bHRzKCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0K PiANCj4gICAgICAgICAgICAgIGVsc2U6DQo+IA0KPiBAQCAtMTQ4NzUsMjMgKzE0ODg3LDIzIEBA IGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLmVudGVy UnVsZShsb2NhbGN0eCwgMjcyLCBzZWxmLlJVTEVfdmZyU3RhdGVtZW50SW52YWxpZEhpZGRlbikN Cj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJB bHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyODUNCj4g DQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjI4OA0KPiANCj4gICAgICAgICAgICAgIHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkhpZGRlbikNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LnN0YXRlID0gMjI4Ng0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMjg5DQo+IA0K PiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVmFsdWUpDQo+IA0KPiAt ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyODcNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMjI5MA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy LlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyODgNCj4gDQo+ICsgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjI5MQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0g MjI4OQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMjkyDQo+IA0KPiAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDIyOTANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjI5 Mw0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLktleSkNCj4g DQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjI5MQ0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAyMjk0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjI5Mg0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMjk1DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAyMjkzDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyOTYNCj4gDQo+ICAg ICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TZW1pY29sb24pDQo+IA0KPiAg ICAgICAgICBleGNlcHQgUmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAgICAgICAg ICAgICAgbG9jYWxjdHguZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC0xNDk3Miw1NSArMTQ5ODQs NTUgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYu X2xhID0gMCAjIFRva2VuIHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDIyOTUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjI5OA0K PiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkludmVudG9yeSkN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjI5Ng0KPiANCj4gKyAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAyMjk5DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuSGVscCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjI5Nw0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzAwDQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0 YXRlID0gMjI5OA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzAxDQo+IA0KPiAg ICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nVG9rZW4pDQo+IA0K PiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIyOTkNCj4gDQo+ICsgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjMwMg0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLk9wZW5QYXJlbikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjMwMA0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzAzDQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyMzAxDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzMDQNCj4gDQo+ ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzAyDQo+IA0KPiArICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDIzMDUNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5Db21tYSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjMwMw0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzA2DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuVGV4dCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjMwNA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzA3DQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAg ICAgICBzZWxmLnN0YXRlID0gMjMwNQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAy MzA4DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5n VG9rZW4pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzMDYNCj4gDQo+ICsgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjMwOQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjMwNw0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzEwDQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyMzA4DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDIzMTENCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5DbG9z ZVBhcmVuKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzA5DQo+IA0KPiArICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzMTINCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNo KFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0g MjMxNg0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzE5DQo+IA0KPiAgICAgICAg ICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgX2xh ID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBpZiBfbGE9PVZmclN5bnRh eFBhcnNlci5UZXh0Og0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjMxMA0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjMxMw0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UZXh0KQ0KPiANCj4gLSAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjMxMQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMjMxNA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5UX181KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjMxMg0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjMxNQ0KPiANCj4gICAgICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdUb2tlbikNCj4gDQo+IC0gICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzMTMNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDIzMTYNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuT3BlblBhcmVuKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjMxNA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjMxNw0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAt ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzE1DQo+IA0KPiArICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAyMzE4DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLkNsb3NlUGFyZW4pDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAyMzE4DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIz MjENCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TZW1pY29s b24pDQo+IA0KPiAgICAgICAgICBleGNlcHQgUmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+ IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHguZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC0xNTEy Niw5MiArMTUxMzgsOTIgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAg ICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4g DQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAt ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzMjANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMjMyMw0KPiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+ IA0KPiAgICAgICAgICAgICAgaWYgbm90KF9sYT09VmZyU3ludGF4UGFyc2VyLlJlc3RvcmUgb3Ig X2xhPT1WZnJTeW50YXhQYXJzZXIuU2F2ZSk6DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYu X2VyckhhbmRsZXIucmVjb3ZlcklubGluZShzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIGVsc2U6 DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIucmVwb3J0TWF0Y2goc2Vs ZikNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5jb25zdW1lKCkNCj4gDQo+IC0gICAgICAg ICAgICBzZWxmLnN0YXRlID0gMjMyMQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAy MzI0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRGVmYXVs dHMpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzMjINCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMjMyNQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzIz DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzMjYNCj4gDQo+ICAgICAgICAgICAg ICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Gb3JtSWQpDQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDIzMjQNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjMyNw0K PiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0K PiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzMjUNCj4gDQo+ICsgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjMyOA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjMyNg0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzI5DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDIzMjcNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjMzMA0KPiANCj4gICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlByb21wdCkNCj4gDQo+IC0gICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjMyOA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyMzMxDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9f NSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjMyOQ0KPiANCj4gKyAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAyMzMyDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuU3RyaW5nVG9rZW4pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDIzMzANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjMzMw0KPiANCj4gICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+IC0gICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjMzMQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyMzM0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVt YmVyKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzMyDQo+IA0KPiArICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDIzMzUNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyMzMzDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzMzYNCj4gDQo+ICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IC0gICAgICAg ICAgICBzZWxmLnN0YXRlID0gMjMzNA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAy MzM3DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuSGVscCkN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjMzNQ0KPiANCj4gKyAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAyMzM4DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjMzNg0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzM5DQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nVG9rZW4pDQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDIzMzcNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM0MA0K PiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjMzOA0KPiANCj4gKyAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAyMzQxDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzM5DQo+ IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzNDINCj4gDQo+ICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0KPiANCj4gLSAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAyMzUxDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzNTQN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+IC0g ICAgICAgICAgICBsYV8gPSBzZWxmLl9pbnRlcnAuYWRhcHRpdmVQcmVkaWN0KHNlbGYuX2lucHV0 LDE4MSxzZWxmLl9jdHgpDQo+IA0KPiArICAgICAgICAgICAgbGFfID0gc2VsZi5faW50ZXJwLmFk YXB0aXZlUHJlZGljdChzZWxmLl9pbnB1dCwxODIsc2VsZi5fY3R4KQ0KPiANCj4gICAgICAgICAg ICAgIGlmIGxhXyA9PSAxOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM0 MA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM0Mw0KPiANCj4gICAgICAg ICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IC0gICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzNDENCj4gDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDIzNDQNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuRkxBR1MpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzQy DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzQ1DQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzQzDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyMzQ2DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZmxhZ3NGaWVsZCgpDQo+ IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzQ4DQo+IA0KPiArICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyMzUxDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuX2Vy ckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9p bnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgICAgICB3aGlsZSBfbGE9PVZmclN5bnRheFBh cnNlci5CaXRXaXNlT3I6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjM0NA0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzNDcNCj4gDQo+ ICAgICAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkJpdFdpc2VP cikNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzQ1DQo+IA0KPiAr ICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM0OA0KPiANCj4gICAgICAgICAgICAg ICAgICAgICAgc2VsZi5mbGFnc0ZpZWxkKCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAyMzUwDQo+IA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjM1Mw0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNl bGYpDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0K PiANCj4gDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAy MzU3DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzNjANCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEg PSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIF9sYT09VmZyU3ludGF4 UGFyc2VyLkNvbW1hOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM1Mw0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM1Ng0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IC0gICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzNTQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDIzNTcNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuS2V5KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM1NQ0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM1OA0KPiANCj4gICAgICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gLSAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMjM1Ng0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjM1OQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5OdW1iZXIpDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyMzU5DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzNjINCj4gDQo+ICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5TZW1pY29sb24pDQo+IA0KPiAgICAg ICAgICBleGNlcHQgUmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAgICAgICAgICAg ICAgbG9jYWxjdHguZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC0xNTIyNyw3ICsxNTIzOSw3IEBA IGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBkZWYgX19pbml0 X18oc2VsZiwgcGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tp bmdTdGF0ZTppbnQ9LTEpOg0KPiANCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFy ZW50LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFy c2VyDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5Ob2RlID0gVmZyVHJlZU5vZGUoRUZJX0lGUl9H VUlEX09QKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuTm9kZSA9IElmclRyZWVOb2RlKEVGSV9J RlJfR1VJRF9PUCkNCj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVmIExhYmVsKHNlbGYpOg0KPiAN Cj4gICAgICAgICAgICAgIHJldHVybiBzZWxmLmdldFRva2VuKFZmclN5bnRheFBhcnNlci5MYWJl bCwgMCkNCj4gDQo+IEBAIC0xNTI1NiwxMSArMTUyNjgsMTEgQEAgY2xhc3MgVmZyU3ludGF4UGFy c2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAyNzgs IHNlbGYuUlVMRV92ZnJTdGF0ZW1lbnRMYWJlbCkNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzNjENCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjM2NA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkxh YmVsKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzYyDQo+IA0KPiArICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDIzNjUNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIz NjMNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM2Ng0KPiANCj4gICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlNlbWljb2xvbikNCj4gDQo+ICAgICAgICAg IGV4Y2VwdCBSZWNvZ25pdGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAgICAgICAgICBs b2NhbGN0eC5leGNlcHRpb24gPSByZQ0KPiANCj4gQEAgLTE1Mjc2LDcgKzE1Mjg4LDcgQEAgY2xh c3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIGRlZiBfX2luaXRfXyhz ZWxmLCBwYXJzZXIsIHBhcmVudDpQYXJzZXJSdWxlQ29udGV4dD1Ob25lLA0KPiBpbnZva2luZ1N0 YXRlOmludD0tMSk6DQo+IA0KPiAgICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhwYXJlbnQs IGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJzZXIN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLk5vZGUgPSBWZnJUcmVlTm9kZShFRklfSUZSX0dVSURf T1ApDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2RlID0gSWZyVHJlZU5vZGUoRUZJX0lGUl9H VUlEX09QKQ0KPiANCj4gDQo+IA0KPiAgICAgICAgICBkZWYgQmFubmVyKHNlbGYpOg0KPiANCj4g ICAgICAgICAgICAgIHJldHVybiBzZWxmLmdldFRva2VuKFZmclN5bnRheFBhcnNlci5CYW5uZXIs IDApDQo+IA0KPiBAQCAtMTUzNDUsNjAgKzE1MzU3LDYwIEBAIGNsYXNzIFZmclN5bnRheFBhcnNl ciAoIFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLl9sYSA9IDAgIyBUb2tlbiB0eXBlDQo+IA0K PiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxv Y2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzY1DQo+IA0KPiAr ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzNjgNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5CYW5uZXIpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDIzNjcNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM3MA0KPiANCj4gICAg ICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAg IF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYgX2xhPT1WZnJT eW50YXhQYXJzZXIuQ29tbWE6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAy MzY2DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzY5DQo+IA0KPiAgICAg ICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gDQo+ IA0KPiANCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM2OQ0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyMzcyDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuVGl0bGUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIz NzANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM3Mw0KPiANCj4gICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDIzNzENCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM3NA0K PiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlN0cmluZ1Rva2Vu KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzcyDQo+IA0KPiArICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDIzNzUNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5PcGVuUGFyZW4pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIz NzMNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM3Ng0KPiANCj4gICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjM3NA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzc3 DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ2xvc2VQYXJl bikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM3NQ0KPiANCj4gKyAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAyMzc4DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzODYN Cj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM4OQ0KPiANCj4gICAgICAgICAgICAg IHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIHRva2VuID0g c2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBpZiB0b2tlbiBpbiBbVmZyU3lu dGF4UGFyc2VyLkxpbmVdOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM3 Ng0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM3OQ0KPiANCj4gICAgICAg ICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5MaW5lKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM3Nw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjM4MA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzc4 DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzgxDQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM3OQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjM4Mg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5BbGlnbikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzODAN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzODMNCj4gDQo+ICAgICAgICAg ICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICAgICAg aWYgbm90KCgoKChfbGEgLSAxMzYpKSAmIH4weDNmKSA9PSAwIGFuZCAoKDEgPDwgKF9sYSAtIDEz NikpICYgKCgxIDw8DQo+IChWZnJTeW50YXhQYXJzZXIuTGVmdCAtIDEzNikpIHwgKDEgPDwgKFZm clN5bnRheFBhcnNlci5SaWdodCAtIDEzNikpIHwgKDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5D ZW50ZXIgLSAxMzYpKSkpICE9IDApKToNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIHNlbGYu X2VyckhhbmRsZXIucmVjb3ZlcklubGluZShzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICBl bHNlOg0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5yZXBvcnRN YXRjaChzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb25zdW1lKCkNCj4g DQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzODENCj4gDQo+ICsgICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDIzODQNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRj aChWZnJTeW50YXhQYXJzZXIuU2VtaWNvbG9uKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNz DQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLlRpbWVv dXRdOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM4Mg0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM4NQ0KPiANCj4gICAgICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UaW1lb3V0KQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjM4Mw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjM4Ng0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5U X181KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM4NA0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM4Nw0KPiANCj4gICAgICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAyMzg1DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAy Mzg4DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlNl bWljb2xvbikNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAg IGVsc2U6DQo+IA0KPiBAQCAtMTU0MTgsOCArMTU0MzAsOCBAQCBjbGFzcyBWZnJTeW50YXhQYXJz ZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcnNlciwgcGFy ZW50OlBhcnNlclJ1bGVDb250ZXh0PU5vbmUsDQo+IGludm9raW5nU3RhdGU6aW50PS0xKToNCj4g DQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwgaW52b2tpbmdTdGF0ZSkN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0KPiANCj4gLSAgICAgICAg ICAgIHNlbGYuTm9kZSA9IFZmclRyZWVOb2RlKEVGSV9JRlJfR1VJRF9PUCkNCj4gDQo+IC0gICAg ICAgICAgICBzZWxmLkRhdGFCdWZmID0gTm9uZQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuTm9k ZSA9IElmclRyZWVOb2RlKEVGSV9JRlJfR1VJRF9PUCkNCj4gDQo+ICsgICAgICAgICAgICBzZWxm LkJ1ZmZlciA9IE5vbmUNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLlNpemUgPSAwDQo+IA0KPiAg ICAgICAgICAgICAgc2VsZi5UeXBlTmFtZSA9ICcnDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5U eXBlU2l6ZSA9IDANCj4gDQo+IEBAIC0xNTUyNCwxODMgKzE1NTM2LDE4MyBAQCBjbGFzcyBWZnJT eW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4g dHlwZQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJP dXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM4 OA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzkxDQo+IA0KPiAgICAgICAgICAg ICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuR3VpZE9wKQ0KPiANCj4gLSAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAyMzg5DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzOTIN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5VdWlkKQ0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzkwDQo+IA0KPiArICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDIzOTMNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5UX181KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzkxDQo+IA0KPiAr ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzOTQNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmd1 aWREZWZpbml0aW9uKCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQ2Mw0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDY2DQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAtICAgICAgICAgICAgbGFfID0gc2VsZi5f aW50ZXJwLmFkYXB0aXZlUHJlZGljdChzZWxmLl9pbnB1dCwxOTcsc2VsZi5fY3R4KQ0KPiANCj4g KyAgICAgICAgICAgIGxhXyA9IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRpY3Qoc2VsZi5faW5w dXQsMTk4LHNlbGYuX2N0eCkNCj4gDQo+ICAgICAgICAgICAgICBpZiBsYV8gPT0gMToNCj4gDQo+ IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzOTINCj4gDQo+ICsgICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDIzOTUNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyMzkzDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzk2DQo+IA0KPiAg ICAgICAgICAgICAgICAgIGxvY2FsY3R4LkQgPSBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5E YXRhVHlwZSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzOTQNCj4gDQo+ ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzOTcNCj4gDQo+ICAgICAgICAgICAgICAg ICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDI0NTUNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDI0NTgNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYp DQo+IA0KPiAgICAgICAgICAgICAgICAgIHRva2VuID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ ICAgICAgICAgICAgICAgICAgaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5VaW50NjRdOg0K PiANCj4gLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDIzOTUNCj4gDQo+ICsgICAg ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyMzk4DQo+IA0KPiAgICAgICAgICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5VaW50NjQpDQo+IA0KPiAtICAgICAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjM5OQ0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDI0MDINCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2Vyckhh bmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgX2xhID0gc2VsZi5f aW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIGlmIF9sYT09VmZyU3ludGF4 UGFyc2VyLk9wZW5CcmFja2V0Og0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyMzk2DQo+IA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDIzOTkNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5PcGVuQnJhY2tldCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjM5Nw0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyNDAwDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAyMzk4DQo+IA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0 MDENCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5DbG9zZUJyYWNrZXQpDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gICAgICAgICAgICAgICAg ICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50 YXhQYXJzZXIuVWludDMyXToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyNDAxDQo+IA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQwNA0KPiAN Cj4gICAgICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVWludDMy KQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0MDUNCj4gDQo+ICsg ICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDA4DQo+IA0KPiAgICAgICAgICAgICAg ICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICAg ICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgICAgICAg ICBpZiBfbGE9PVZmclN5bnRheFBhcnNlci5PcGVuQnJhY2tldDoNCj4gDQo+IC0gICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQwMg0KPiANCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyNDA1DQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3BlbkJyYWNrZXQpDQo+IA0KPiAtICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0MDMNCj4gDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjQwNg0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQwNA0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAyNDA3DQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ2xvc2VCcmFja2V0KQ0KPiANCj4gDQo+IA0KPiANCj4g DQo+ICAgICAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICAgICAgZWxp ZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLlVpbnQxNl06DQo+IA0KPiAtICAgICAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjQwNw0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDI0MTANCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLlVpbnQxNikNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAyNDExDQo+IA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQxNA0K PiANCj4gICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+ IA0KPiAgICAgICAgICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4g ICAgICAgICAgICAgICAgICAgICAgaWYgX2xhPT1WZnJTeW50YXhQYXJzZXIuT3BlbkJyYWNrZXQ6 DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0MDgNCj4gDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQxMQ0KPiANCj4gICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5CcmFja2V0 KQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDA5DQo+IA0K PiArICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0MTINCj4gDQo+ICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+ IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0MTANCj4gDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQxMw0KPiANCj4gICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3NlQnJhY2tldCkN Cj4gDQo+IA0KPiANCj4gDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAg ICAgICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5VaW50OF06DQo+ IA0KPiAtICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQxMw0KPiANCj4gKyAgICAg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0MTYNCj4gDQo+ICAgICAgICAgICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlVpbnQ4KQ0KPiANCj4gLSAgICAgICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0MTcNCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAyNDIwDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5k bGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lu cHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBpZiBfbGE9PVZmclN5bnRheFBh cnNlci5PcGVuQnJhY2tldDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMjQxNA0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAy NDE3DQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuT3BlbkJyYWNrZXQpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDI0MTUNCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjQxOA0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjQxNg0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDE5 DQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJz ZXIuQ2xvc2VCcmFja2V0KQ0KPiANCj4gDQo+IA0KPiANCj4gDQo+ICAgICAgICAgICAgICAgICAg ICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4 UGFyc2VyLkJvb2xlYW5dOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDI0MTkNCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDIyDQo+IA0K PiAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Cb29sZWFu KQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0MjMNCj4gDQo+ICsg ICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDI2DQo+IA0KPiAgICAgICAgICAgICAg ICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICAg ICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgICAgICAg ICBpZiBfbGE9PVZmclN5bnRheFBhcnNlci5PcGVuQnJhY2tldDoNCj4gDQo+IC0gICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQyMA0KPiANCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyNDIzDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3BlbkJyYWNrZXQpDQo+IA0KPiAtICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0MjENCj4gDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjQyNA0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQyMg0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAyNDI1DQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ2xvc2VCcmFja2V0KQ0KPiANCj4gDQo+IA0KPiANCj4g DQo+ICAgICAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICAgICAgZWxp ZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLkVGSV9TVFJJTkdfSURdOg0KPiANCj4gLSAgICAg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0MjUNCj4gDQo+ICsgICAgICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAyNDI4DQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5FRklfU1RSSU5HX0lEKQ0KPiANCj4gLSAgICAgICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDI0MjkNCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyNDMyDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVy LnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0 LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBpZiBfbGE9PVZmclN5bnRheFBhcnNl ci5PcGVuQnJhY2tldDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjQyNg0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDI5 DQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJz ZXIuT3BlbkJyYWNrZXQpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDI0MjcNCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQz MA0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjQyOA0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDMxDQo+ IA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu Q2xvc2VCcmFja2V0KQ0KPiANCj4gDQo+IA0KPiANCj4gDQo+ICAgICAgICAgICAgICAgICAgICAg IHBhc3MNCj4gDQo+ICAgICAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFy c2VyLkVGSV9ISUlfREFURV06DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjQzMQ0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0MzQNCj4g DQo+ICAgICAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkVGSV9I SUlfREFURSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDM1DQo+ IA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQzOA0KPiANCj4gICAgICAg ICAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAg ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAg ICAgICAgICAgaWYgX2xhPT1WZnJTeW50YXhQYXJzZXIuT3BlbkJyYWNrZXQ6DQo+IA0KPiAtICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0MzINCj4gDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQzNQ0KPiANCj4gICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5CcmFja2V0KQ0KPiANCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDMzDQo+IA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0MzYNCj4gDQo+ICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0MzQNCj4gDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQzNw0KPiANCj4gICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3NlQnJhY2tldCkNCj4gDQo+IA0KPiAN Cj4gDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAg ICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5FRklfSElJX1RJTUVdOg0KPiANCj4g LSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0MzcNCj4gDQo+ICsgICAgICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDQwDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5FRklfSElJX1RJTUUpDQo+IA0KPiAtICAgICAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQ0MQ0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDI0NDQNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2Vyckhh bmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgX2xhID0gc2VsZi5f aW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIGlmIF9sYT09VmZyU3ludGF4 UGFyc2VyLk9wZW5CcmFja2V0Og0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyNDM4DQo+IA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDI0NDENCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5PcGVuQnJhY2tldCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjQzOQ0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyNDQyDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAyNDQwDQo+IA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0 NDMNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5DbG9zZUJyYWNrZXQpDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gICAgICAgICAgICAgICAg ICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50 YXhQYXJzZXIuRUZJX0hJSV9SRUZdOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDI0NDMNCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDQ2 DQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5F RklfSElJX1JFRikNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDQ3 DQo+IA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQ1MA0KPiANCj4gICAg ICAgICAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAg ICAgICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAg ICAgICAgICAgICAgaWYgX2xhPT1WZnJTeW50YXhQYXJzZXIuT3BlbkJyYWNrZXQ6DQo+IA0KPiAt ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0NDQNCj4gDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQ0Nw0KPiANCj4gICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5CcmFja2V0KQ0KPiANCj4g LSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDQ1DQo+IA0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0NDgNCj4gDQo+ICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0NDYNCj4gDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQ0OQ0KPiANCj4gICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3NlQnJhY2tldCkNCj4gDQo+IA0K PiANCj4gDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAg ICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5TdHJpbmdJZGVudGlmaWVyXToN Cj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDQ5DQo+IA0KPiArICAg ICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQ1Mg0KPiANCj4gICAgICAgICAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nSWRlbnRpZmllcikNCj4gDQo+ IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDUzDQo+IA0KPiArICAgICAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQ1Ng0KPiANCj4gICAgICAgICAgICAgICAgICAgICAg c2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBf bGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgaWYgX2xh PT1WZnJTeW50YXhQYXJzZXIuT3BlbkJyYWNrZXQ6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDI0NTANCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMjQ1Mw0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5CcmFja2V0KQ0KPiANCj4gLSAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyNDUxDQo+IA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDI0NTQNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDI0NTINCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjQ1NQ0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLkNsb3NlQnJhY2tldCkNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiBAQCAt MTU3MDgsNDAgKzE1NzIwLDQwIEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0K PiAgICAgICAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICByYWlz ZSBOb1ZpYWJsZUFsdEV4Y2VwdGlvbihzZWxmKQ0KPiANCj4gDQo+IA0KPiAtICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAyNDYwDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyNDYzDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxm KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBfYWx0ID0gc2VsZi5faW50ZXJwLmFkYXB0aXZlUHJl ZGljdChzZWxmLl9pbnB1dCwxOTYsc2VsZi5fY3R4KQ0KPiANCj4gKyAgICAgICAgICAgICAgICBf YWx0ID0gc2VsZi5faW50ZXJwLmFkYXB0aXZlUHJlZGljdChzZWxmLl9pbnB1dCwxOTcsc2VsZi5f Y3R4KQ0KPiANCj4gICAgICAgICAgICAgICAgICB3aGlsZSBfYWx0IT0yIGFuZCBfYWx0IT1BVE4u SU5WQUxJRF9BTFRfTlVNQkVSOg0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgaWYgX2FsdD09 MToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQ1Nw0KPiAN Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudmZyRXh0ZW5zaW9uRGF0YShsb2NhbGN0 eC5EYXRhQnVmZikNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDYy DQo+IA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0NjANCj4gDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnZmckV4dGVuc2lvbkRhdGEoKQ0KPiANCj4g KyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0NjUNCj4gDQo+ICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gLSAgICAgICAgICAg ICAgICAgICAgX2FsdCA9IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRpY3Qoc2VsZi5faW5wdXQs MTk2LHNlbGYuX2N0eCkNCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgIF9hbHQgPSBzZWxmLl9p bnRlcnAuYWRhcHRpdmVQcmVkaWN0KHNlbGYuX2lucHV0LDE5NyxzZWxmLl9jdHgpDQo+IA0KPiAN Cj4gDQo+IA0KPiANCj4gDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0NzMNCj4g DQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQ3Ng0KPiANCj4gICAgICAgICAgICAgIHNl bGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYu X2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYgX2xhPT1WZnJTeW50YXhQYXJzZXIu Q29tbWE6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDY1DQo+IA0KPiAr ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDY4DQo+IA0KPiAgICAgICAgICAgICAgICAg IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjQ2OQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjQ3Mg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikN Cj4gDQo+ICAgICAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAg ICAgICAgICAgICAgICAgd2hpbGUgX2xhPT1WZnJTeW50YXhQYXJzZXIuR3VpZE9wOg0KPiANCj4g LSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0NjYNCj4gDQo+ICsgICAgICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDY5DQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnZmclN0YXRlbWVudEV4dGVuc2lvbigpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMjQ3MQ0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDI0NzQNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhz ZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkN Cj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQ3Mg0KPiANCj4g KyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQ3NQ0KPiANCj4gICAgICAgICAgICAgICAg ICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5FbmRHdWlkT3ApDQo+IA0KPiANCj4gDQo+IA0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDc1DQo+IA0KPiArICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDI0NzgNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5TZW1pY29sb24pDQo+IA0KPiAgICAgICAgICBleGNlcHQgUmVjb2duaXRpb25FeGNl cHRpb24gYXMgcmU6DQo+IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHguZXhjZXB0aW9uID0gcmUN Cj4gDQo+IEBAIC0xNTc1NCwxMyArMTU3NjYsMTQgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICgg UGFyc2VyICk6DQo+IA0KPiANCj4gICAgICBjbGFzcyBWZnJFeHRlbnNpb25EYXRhQ29udGV4dChQ YXJzZXJSdWxlQ29udGV4dCk6DQo+IA0KPiANCj4gDQo+IC0gICAgICAgIGRlZiBfX2luaXRfXyhz ZWxmLCBwYXJzZXIsIHBhcmVudDpQYXJzZXJSdWxlQ29udGV4dD1Ob25lLA0KPiBpbnZva2luZ1N0 YXRlOmludD0tMSwgRGF0YUJ1ZmY9Tm9uZSk6DQo+IA0KPiArICAgICAgICBkZWYgX19pbml0X18o c2VsZiwgcGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tpbmdT dGF0ZTppbnQ9LTEpOg0KPiANCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50 LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2Vy DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5EYXRhQnVmZiA9IE5vbmUNCj4gDQo+IC0gICAgICAg ICAgICBzZWxmLklzU3RydWN0ID0gTm9uZQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuVEZOYW1l ID0gJycNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLkZOYW1lID0gJycNCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLlRGVmFsdWUgPSBOb25lDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5JID0gTm9u ZSAjIFRva2VuDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5OID0gTm9uZSAjIFRva2VuDQo+IA0K PiAtICAgICAgICAgICAgc2VsZi5EYXRhQnVmZiA9IERhdGFCdWZmDQo+IA0KPiANCj4gDQo+ICAg ICAgICAgIGRlZiBDb21tYShzZWxmKToNCj4gDQo+ICAgICAgICAgICAgICByZXR1cm4gc2VsZi5n ZXRUb2tlbihWZnJTeW50YXhQYXJzZXIuQ29tbWEsIDApDQo+IA0KPiBAQCAtMTU4MDUsNDQgKzE1 ODE4LDQ0IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiANCj4gDQo+IA0K PiANCj4gDQo+IA0KPiAtICAgIGRlZiB2ZnJFeHRlbnNpb25EYXRhKHNlbGYsIERhdGFCdWZmKToN Cj4gDQo+ICsgICAgZGVmIHZmckV4dGVuc2lvbkRhdGEoc2VsZik6DQo+IA0KPiANCj4gDQo+IC0g ICAgICAgIGxvY2FsY3R4ID0gVmZyU3ludGF4UGFyc2VyLlZmckV4dGVuc2lvbkRhdGFDb250ZXh0 KHNlbGYsIHNlbGYuX2N0eCwNCj4gc2VsZi5zdGF0ZSwgRGF0YUJ1ZmYpDQo+IA0KPiArICAgICAg ICBsb2NhbGN0eCA9IFZmclN5bnRheFBhcnNlci5WZnJFeHRlbnNpb25EYXRhQ29udGV4dChzZWxm LCBzZWxmLl9jdHgsDQo+IHNlbGYuc3RhdGUpDQo+IA0KPiAgICAgICAgICBzZWxmLmVudGVyUnVs ZShsb2NhbGN0eCwgMjg0LCBzZWxmLlJVTEVfdmZyRXh0ZW5zaW9uRGF0YSkNCj4gDQo+ICAgICAg ICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0NzcNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjQ4MA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNv bW1hKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDc4DQo+IA0KPiArICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDI0ODENCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5EYXRhKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDgy DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0ODUNCj4gDQo+ICAgICAgICAgICAg ICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBz ZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIF9sYT09VmZyU3ludGF4UGFy c2VyLk9wZW5CcmFja2V0Og0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQ3 OQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQ4Mg0KPiANCj4gICAgICAg ICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuQnJhY2tldCkNCj4gDQo+ IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0ODANCj4gDQo+IC0gICAgICAgICAgICAg ICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gLSAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMjQ4MQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjQ4Mw0KPiANCj4gKyAgICAgICAgICAgICAgICBsb2NhbGN0eC5JID0gc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjQ4NA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5DbG9zZUJyYWNrZXQpDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyNDg4DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0OTENCj4gDQo+ ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAg ICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIHdoaWxlIF9s YT09VmZyU3ludGF4UGFyc2VyLkRvdDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDI0ODQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0ODcNCj4gDQo+ ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRG90KQ0KPiANCj4g LSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQ4NQ0KPiANCj4gKyAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjQ4OA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmFycmF5TmFt ZSgpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDkwDQo+IA0KPiArICAg ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDkzDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNl bGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICBfbGEgPSBz ZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDI0OTENCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQ5NA0KPiANCj4gICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDI0OTINCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjQ5 NQ0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4Lk4gPSBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5OdW1iZXIpDQo+IA0KPiAgICAgICAgICBleGNlcHQgUmVjb2duaXRpb25FeGNlcHRpb24g YXMgcmU6DQo+IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHguZXhjZXB0aW9uID0gcmUNCj4gDQo+ IEBAIC0xNTg4NSw5ICsxNTg5OCw5IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciAp Og0KPiAgICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMjg2LCBzZWxmLlJVTEVfdmZy U3RhdGVtZW50TW9kYWwpDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAg c2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyNDk0DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0OTcNCj4gDQo+ ICAgICAgICAgICAgICBzZWxmLnZmck1vZGFsVGFnKCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LnN0YXRlID0gMjQ5NQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNDk4DQo+IA0K PiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU2VtaWNvbG9uKQ0KPiAN Cj4gICAgICAgICAgZXhjZXB0IFJlY29nbml0aW9uRXhjZXB0aW9uIGFzIHJlOg0KPiANCj4gICAg ICAgICAgICAgIGxvY2FsY3R4LmV4Y2VwdGlvbiA9IHJlDQo+IA0KPiBAQCAtMTU5MDMsNyArMTU5 MTYsNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgZGVm IF9faW5pdF9fKHNlbGYsIHBhcnNlciwgcGFyZW50OlBhcnNlclJ1bGVDb250ZXh0PU5vbmUsDQo+ IGludm9raW5nU3RhdGU6aW50PS0xKToNCj4gDQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5p dF9fKHBhcmVudCwgaW52b2tpbmdTdGF0ZSkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNl ciA9IHBhcnNlcg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuTm9kZSA9IFZmclRyZWVOb2RlKEVG SV9JRlJfTU9EQUxfVEFHX09QKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuTm9kZSA9IElmclRy ZWVOb2RlKEVGSV9JRlJfTU9EQUxfVEFHX09QKQ0KPiANCj4gDQo+IA0KPiAgICAgICAgICBkZWYg TW9kYWwoc2VsZik6DQo+IA0KPiAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZ2V0VG9rZW4oVmZy U3ludGF4UGFyc2VyLk1vZGFsLCAwKQ0KPiANCj4gQEAgLTE1OTI2LDcgKzE1OTM5LDcgQEAgY2xh c3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuZW50ZXJSdWxl KGxvY2FsY3R4LCAyODgsIHNlbGYuUlVMRV92ZnJNb2RhbFRhZykNCj4gDQo+ICAgICAgICAgIHRy eToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0OTcNCj4gDQo+ICsgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMjUwMA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLk1vZGFsKQ0KPiANCj4gICAgICAgICAgZXhjZXB0IFJlY29nbml0aW9uRXhjZXB0aW9u IGFzIHJlOg0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LmV4Y2VwdGlvbiA9IHJlDQo+IA0K PiBAQCAtMTU5MzksMTAgKzE1OTUyLDE0IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNl ciApOg0KPiANCj4gDQo+ICAgICAgY2xhc3MgVmZyU3RhdGVtZW50RXhwcmVzc2lvbkNvbnRleHQo UGFyc2VyUnVsZUNvbnRleHQpOg0KPiANCj4gDQo+IA0KPiAtICAgICAgICBkZWYgX19pbml0X18o c2VsZiwgcGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tpbmdT dGF0ZTppbnQ9LTEpOg0KPiANCj4gKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcnNlciwg cGFyZW50OlBhcnNlclJ1bGVDb250ZXh0PU5vbmUsDQo+IGludm9raW5nU3RhdGU6aW50PS0xLCBQ YXJlbnROb2RlPU5vbmUpOg0KPiANCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFy ZW50LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFy c2VyDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5QYXJlbnROb2RlID0gTm9uZQ0KPiANCj4gICAg ICAgICAgICAgIHNlbGYuRXhwSW5mbyA9IEV4cHJlc3Npb25JbmZvKCkNCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLk5vZGVzID0gW10NCj4gDQo+ICsgICAgICAgICAgICBzZWxmLkwgPSBOb25lICMg VG9rZW4NCj4gDQo+ICsgICAgICAgICAgICBzZWxmLlBhcmVudE5vZGUgPSBQYXJlbnROb2RlDQo+ IA0KPiANCj4gDQo+ICAgICAgICAgIGRlZiBhbmRUZXJtKHNlbGYsIGk6aW50PU5vbmUpOg0KPiAN Cj4gICAgICAgICAgICAgIGlmIGkgaXMgTm9uZToNCj4gDQo+IEBAIC0xNTk2OSwyNCArMTU5ODYs MjQgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+IA0KPiANCj4gDQo+IA0K PiANCj4gDQo+IC0gICAgZGVmIHZmclN0YXRlbWVudEV4cHJlc3Npb24oc2VsZik6DQo+IA0KPiAr ICAgIGRlZiB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uKHNlbGYsIFBhcmVudE5vZGUpOg0KPiANCj4g DQo+IA0KPiAtICAgICAgICBsb2NhbGN0eCA9IFZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRF eHByZXNzaW9uQ29udGV4dChzZWxmLCBzZWxmLl9jdHgsDQo+IHNlbGYuc3RhdGUpDQo+IA0KPiAr ICAgICAgICBsb2NhbGN0eCA9IFZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRFeHByZXNzaW9u Q29udGV4dChzZWxmLCBzZWxmLl9jdHgsDQo+IHNlbGYuc3RhdGUsIFBhcmVudE5vZGUpDQo+IA0K PiAgICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMjkwLCBzZWxmLlJVTEVfdmZyU3Rh dGVtZW50RXhwcmVzc2lvbikNCj4gDQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5 cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0 ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI0OTkN Cj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjUwMg0KPiANCj4gICAgICAgICAgICAg IHNlbGYuYW5kVGVybShsb2NhbGN0eC5FeHBJbmZvKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyNTA0DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1MDcNCj4gDQo+ ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAg ICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIHdoaWxlIF9s YT09VmZyU3ludGF4UGFyc2VyLk9SOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjUwMA0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5PUikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1MDENCj4gDQo+ICsg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1MDMNCj4gDQo+ICsgICAgICAgICAgICAgICAg bG9jYWxjdHguTCA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9SKQ0KPiANCj4gKyAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjUwNA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm LmFuZFRlcm0obG9jYWxjdHguRXhwSW5mbykNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDI1MDYNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1MDkNCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAg ICAgICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiANCj4gDQo+IEBA IC0xNjAwMSwxMCArMTYwMTgsMTMgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6 DQo+IA0KPiANCj4gICAgICBjbGFzcyBWZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViQ29udGV4dChQ YXJzZXJSdWxlQ29udGV4dCk6DQo+IA0KPiANCj4gDQo+IC0gICAgICAgIGRlZiBfX2luaXRfXyhz ZWxmLCBwYXJzZXIsIHBhcmVudDpQYXJzZXJSdWxlQ29udGV4dD1Ob25lLA0KPiBpbnZva2luZ1N0 YXRlOmludD0tMSk6DQo+IA0KPiArICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyc2VyLCBw YXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tpbmdTdGF0ZTppbnQ9LTEsIFBh cmVudE5vZGVzPU5vbmUpOg0KPiANCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFy ZW50LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFy c2VyDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5QYXJlbnROb2RlcyA9IE5vbmUNCj4gDQo+ICAg ICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBFeHByZXNzaW9uSW5mbygpDQo+IA0KPiArICAgICAg ICAgICAgc2VsZi5Ob2RlcyA9IFtdDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5QYXJlbnROb2Rl cyA9IFBhcmVudE5vZGVzDQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGRlZiBhbmRUZXJtKHNlbGYs IGk6aW50PU5vbmUpOg0KPiANCj4gICAgICAgICAgICAgIGlmIGkgaXMgTm9uZToNCj4gDQo+IEBA IC0xNjAzMSwyNCArMTYwNTEsMjQgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6 DQo+IA0KPiANCj4gDQo+IA0KPiANCj4gDQo+IC0gICAgZGVmIHZmclN0YXRlbWVudEV4cHJlc3Np b25TdWIoc2VsZik6DQo+IA0KPiArICAgIGRlZiB2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViKHNl bGYsIFBhcmVudE5vZGVzKToNCj4gDQo+IA0KPiANCj4gLSAgICAgICAgbG9jYWxjdHggPSBWZnJT eW50YXhQYXJzZXIuVmZyU3RhdGVtZW50RXhwcmVzc2lvblN1YkNvbnRleHQoc2VsZiwNCj4gc2Vs Zi5fY3R4LCBzZWxmLnN0YXRlKQ0KPiANCj4gKyAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50YXhQ YXJzZXIuVmZyU3RhdGVtZW50RXhwcmVzc2lvblN1YkNvbnRleHQoc2VsZiwNCj4gc2VsZi5fY3R4 LCBzZWxmLnN0YXRlLCBQYXJlbnROb2RlcykNCj4gDQo+ICAgICAgICAgIHNlbGYuZW50ZXJSdWxl KGxvY2FsY3R4LCAyOTIsIHNlbGYuUlVMRV92ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViKQ0KPiAN Cj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4gdHlwZQ0KPiANCj4gICAgICAgICAgdHJ5 Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4g DQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjUwNw0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAyNTEwDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5hbmRUZXJtKGxvY2FsY3R4 LkV4cEluZm8pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1MTINCj4gDQo+ICsg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjUxNQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2Vy ckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0 LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgd2hpbGUgX2xhPT1WZnJTeW50YXhQYXJzZXIuT1I6 DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNTA4DQo+IA0KPiArICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNTExDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLk9SKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMjUwOQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjUxMg0KPiAN Cj4gICAgICAgICAgICAgICAgICBzZWxmLmFuZFRlcm0obG9jYWxjdHguRXhwSW5mbykNCj4gDQo+ IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1MTQNCj4gDQo+ICsgICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDI1MTcNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5fZXJySGFu ZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0 LkxBKDEpDQo+IA0KPiANCj4gDQo+IEBAIC0xNjA2Nyw3ICsxNjA4Nyw5IEBAIGNsYXNzIFZmclN5 bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhw YXJlbnQsIGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5wYXJzZXIgPSBw YXJzZXINCj4gDQo+ICAgICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBOb25lDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5DSWZyQW5kTGlzdCA9IFtdDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5O b2RlcyA9IFtdDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5MaW5lID0gTm9uZQ0KPiANCj4gKyAg ICAgICAgICAgIHNlbGYuTCA9IE5vbmUgIyBUb2tlbg0KPiANCj4gICAgICAgICAgICAgIHNlbGYu RXhwSW5mbyA9IEV4cEluZm8NCj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVmIGJpdHdpc2VvclRl cm0oc2VsZiwgaTppbnQ9Tm9uZSk6DQo+IA0KPiBAQCAtMTYxMDIsMTcgKzE2MTI0LDE3IEBAIGNs YXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLl9sYSA9IDAg IyBUb2tlbiB0eXBlDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAyNTE1DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1MTgNCj4gDQo+ICAg ICAgICAgICAgICBzZWxmLmJpdHdpc2VvclRlcm0oRXhwSW5mbykNCj4gDQo+IC0gICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjUyMA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNTIz DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAg ICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICB3 aGlsZSBfbGE9PVZmclN5bnRheFBhcnNlci5BTkQ6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAyNTE2DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3lu dGF4UGFyc2VyLkFORCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1MTcN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1MTkNCj4gDQo+ICsgICAgICAg ICAgICAgICAgbG9jYWxjdHguTCA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkFORCkNCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1MjANCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi5iaXR3aXNlb3JUZXJtKEV4cEluZm8pDQo+IA0KPiAtICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAyNTIyDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAy NTI1DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0K PiANCj4gICAgICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gDQo+ IA0KPiBAQCAtMTYxMzEsNyArMTYxNTMsOSBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJz ZXIgKToNCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZva2luZ1N0 YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi5FeHBJbmZvID0gTm9uZQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuQ0lm ckJpdFdpc2VPckxpc3QgPSBbXQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuTm9kZXMgPSBbXQ0K PiANCj4gKyAgICAgICAgICAgIHNlbGYuTGluZSA9IE5vbmUNCj4gDQo+ICsgICAgICAgICAgICBz ZWxmLkwgPSBOb25lICMgVG9rZW4NCj4gDQo+ICAgICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBF eHBJbmZvDQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGRlZiBiaXR3aXNlYW5kVGVybShzZWxmLCBp OmludD1Ob25lKToNCj4gDQo+IEBAIC0xNjE2NiwxNyArMTYxOTAsMTcgQEAgY2xhc3MgVmZyU3lu dGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5 cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0 ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1MjMN Cj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjUyNg0KPiANCj4gICAgICAgICAgICAg IHNlbGYuYml0d2lzZWFuZFRlcm0oRXhwSW5mbykNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0 YXRlID0gMjUyOA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNTMxDQo+IA0KPiAg ICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAg ICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICB3aGlsZSBfbGE9 PVZmclN5bnRheFBhcnNlci5CaXRXaXNlT3I6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyNTI0DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLkJpdFdpc2VPcikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1 MjUNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1MjcNCj4gDQo+ICsgICAg ICAgICAgICAgICAgbG9jYWxjdHguTCA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkJpdFdp c2VPcikNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1MjgNCj4gDQo+ICAg ICAgICAgICAgICAgICAgc2VsZi5iaXR3aXNlYW5kVGVybShFeHBJbmZvKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjUzMA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjUzMw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5 bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkN Cj4gDQo+IA0KPiANCj4gQEAgLTE2MTk1LDcgKzE2MjE5LDkgQEAgY2xhc3MgVmZyU3ludGF4UGFy c2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwg aW52b2tpbmdTdGF0ZSkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0K PiANCj4gICAgICAgICAgICAgIHNlbGYuRXhwSW5mbyA9IE5vbmUNCj4gDQo+IC0gICAgICAgICAg ICBzZWxmLkNJZnJCaXRXaXNlQW5kTGlzdCA9IFtdDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5O b2RlcyA9IFtdDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5MaW5lID0gTm9uZQ0KPiANCj4gKyAg ICAgICAgICAgIHNlbGYuTCA9IE5vbmUgIyBUb2tlbg0KPiANCj4gICAgICAgICAgICAgIHNlbGYu RXhwSW5mbyA9IEV4cEluZm8NCj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVmIGVxdWFsVGVybShz ZWxmLCBpOmludD1Ob25lKToNCj4gDQo+IEBAIC0xNjIzMCwxNyArMTYyNTYsMTcgQEAgY2xhc3Mg VmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRv a2VuIHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVu dGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDI1MzENCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjUzNA0KPiANCj4gICAgICAg ICAgICAgIHNlbGYuZXF1YWxUZXJtKEV4cEluZm8pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDI1MzYNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjUzOQ0KPiANCj4g ICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAgICAg ICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgd2hpbGUgX2xh PT1WZnJTeW50YXhQYXJzZXIuQml0V2lzZUFuZDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDI1MzINCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuQml0V2lzZUFuZCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDI1MzMNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1MzUNCj4gDQo+ICsg ICAgICAgICAgICAgICAgbG9jYWxjdHguTCA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkJp dFdpc2VBbmQpDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNTM2DQo+IA0K PiAgICAgICAgICAgICAgICAgIHNlbGYuZXF1YWxUZXJtKEV4cEluZm8pDQo+IA0KPiAtICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNTM4DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyNTQxDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3lu YyhzZWxmKQ0KPiANCj4gICAgICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0K PiANCj4gDQo+IA0KPiBAQCAtMTYyNTksOCArMTYyODUsOCBAQCBjbGFzcyBWZnJTeW50YXhQYXJz ZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBp bnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0gTm9uZQ0KPiANCj4gLSAgICAgICAgICAg IHNlbGYuQ0lmckVxdWFsTGlzdCA9IFtdDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5DSWZyTm90 RXF1YWxMaXN0ID0gW10NCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5vZGVzID0gW10NCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLkxpbmUgPSBOb25lDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5F eHBJbmZvID0gRXhwSW5mbw0KPiANCj4gDQo+IA0KPiAgICAgICAgICBkZWYgY29tcGFyZVRlcm0o c2VsZik6DQo+IA0KPiBAQCAtMTYyOTMsMTUgKzE2MzE5LDE1IEBAIGNsYXNzIFZmclN5bnRheFBh cnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLl9sYSA9IDAgIyBUb2tlbiB0eXBlDQo+ IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0 KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNTM5DQo+IA0K PiAtICAgICAgICAgICAgc2VsZi5jb21wYXJlVGVybShsb2NhbGN0eC5FeHBJbmZvKQ0KPiANCj4g LSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNTQzDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDI1NDINCj4gDQo+ICsgICAgICAgICAgICBzZWxmLmNvbXBhcmVUZXJtKEV4cEluZm8p DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1NDYNCj4gDQo+ICAgICAgICAgICAg ICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBz ZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIHdoaWxlIF9sYT09VmZyU3ludGF4 UGFyc2VyLkVxdWFsIG9yIF9sYT09VmZyU3ludGF4UGFyc2VyLk5vdEVxdWFsOg0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjU0MA0KPiANCj4gLSAgICAgICAgICAgICAgICBz ZWxmLmVxdWFsVGVybVN1cHBsZW1lbnRhcnkobG9jYWxjdHguQ0lmckVxdWFsTGlzdCwNCj4gbG9j YWxjdHguQ0lmck5vdEVxdWFsTGlzdCwgRXhwSW5mbykNCj4gDQo+IC0gICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDI1NDUNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1 NDMNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5lcXVhbFRlcm1TdXBwbGVtZW50YXJ5KEV4 cEluZm8pDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNTQ4DQo+IA0KPiAg ICAgICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAgICAg ICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gDQo+IA0KPiBAQCAtMTYz MTYsMTQgKzE2MzQyLDExIEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAN Cj4gDQo+ICAgICAgY2xhc3MgRXF1YWxUZXJtU3VwcGxlbWVudGFyeUNvbnRleHQoUGFyc2VyUnVs ZUNvbnRleHQpOg0KPiANCj4gDQo+IA0KPiAtICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFy c2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tpbmdTdGF0ZTppbnQ9 LTEsIENJZnJFcXVhbExpc3Q9Tm9uZSwgQ0lmck5vdEVxdWFsTGlzdD1Ob25lLA0KPiBFeHBJbmZv PU5vbmUpOg0KPiANCj4gKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcnNlciwgcGFyZW50 OlBhcnNlclJ1bGVDb250ZXh0PU5vbmUsDQo+IGludm9raW5nU3RhdGU6aW50PS0xLCBFeHBJbmZv PU5vbmUpOg0KPiANCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZv a2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0K PiAtICAgICAgICAgICAgc2VsZi5DSWZyRXF1YWxMaXN0ID0gTm9uZQ0KPiANCj4gLSAgICAgICAg ICAgIHNlbGYuQ0lmck5vdEVxdWFsTGlzdCA9IE5vbmUNCj4gDQo+ICAgICAgICAgICAgICBzZWxm LkV4cEluZm8gPSBOb25lDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5DSWZyRXF1YWxMaXN0ID0g Q0lmckVxdWFsTGlzdA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuQ0lmck5vdEVxdWFsTGlzdCA9 IENJZnJOb3RFcXVhbExpc3QNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5vZGVzID0gW10NCj4g DQo+ICAgICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBFeHBJbmZvDQo+IA0KPiANCj4gDQo+IA0K PiANCj4gQEAgLTE2MzMzLDkgKzE2MzU2LDggQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFy c2VyICk6DQo+IA0KPiANCj4gICAgICAgICAgZGVmIGNvcHlGcm9tKHNlbGYsIGN0eDpQYXJzZXJS dWxlQ29udGV4dCk6DQo+IA0KPiAgICAgICAgICAgICAgc3VwZXIoKS5jb3B5RnJvbShjdHgpDQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5DSWZyRXF1YWxMaXN0ID0gY3R4LkNJZnJFcXVhbExpc3QN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLkNJZnJOb3RFcXVhbExpc3QgPSBjdHguQ0lmck5vdEVx dWFsTGlzdA0KPiANCj4gICAgICAgICAgICAgIHNlbGYuRXhwSW5mbyA9IGN0eC5FeHBJbmZvDQo+ IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2RlcyA9IGN0eC5Ob2Rlcw0KPiANCj4gDQo+IA0KPiAN Cj4gDQo+IA0KPiANCj4gQEAgLTE2Mzc4LDI4ICsxNjQwMCwyOCBAQCBjbGFzcyBWZnJTeW50YXhQ YXJzZXIgKCBQYXJzZXIgKToNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICBkZWYgZXF1 YWxUZXJtU3VwcGxlbWVudGFyeShzZWxmLCBDSWZyRXF1YWxMaXN0LCBDSWZyTm90RXF1YWxMaXN0 LCBFeHBJbmZvKToNCj4gDQo+ICsgICAgZGVmIGVxdWFsVGVybVN1cHBsZW1lbnRhcnkoc2VsZiwg RXhwSW5mbyk6DQo+IA0KPiANCj4gDQo+IC0gICAgICAgIGxvY2FsY3R4ID0gVmZyU3ludGF4UGFy c2VyLkVxdWFsVGVybVN1cHBsZW1lbnRhcnlDb250ZXh0KHNlbGYsDQo+IHNlbGYuX2N0eCwgc2Vs Zi5zdGF0ZSwgQ0lmckVxdWFsTGlzdCwgQ0lmck5vdEVxdWFsTGlzdCwgRXhwSW5mbykNCj4gDQo+ ICsgICAgICAgIGxvY2FsY3R4ID0gVmZyU3ludGF4UGFyc2VyLkVxdWFsVGVybVN1cHBsZW1lbnRh cnlDb250ZXh0KHNlbGYsDQo+IHNlbGYuX2N0eCwgc2VsZi5zdGF0ZSwgRXhwSW5mbykNCj4gDQo+ ICAgICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAzMDIsIHNlbGYuUlVMRV9lcXVhbFRl cm1TdXBwbGVtZW50YXJ5KQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gLSAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAyNTUwDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1NTMN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAg ICAgICAgICAgICB0b2tlbiA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAg aWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5FcXVhbF06DQo+IA0KPiAgICAgICAgICAgICAg ICAgIGxvY2FsY3R4ID0gVmZyU3ludGF4UGFyc2VyLkVxdWFsVGVybUVxdWFsUnVsZUNvbnRleHQo c2VsZiwgbG9jYWxjdHgpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFs dChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1NDYN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1NDkNCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRXF1YWwpDQo+IA0KPiAtICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNTQ3DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyNTUwDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuY29tcGFyZVRlcm0oRXhw SW5mbykNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVs aWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5Ob3RFcXVhbF06DQo+IA0KPiAgICAgICAgICAg ICAgICAgIGxvY2FsY3R4ID0gVmZyU3ludGF4UGFyc2VyLkVxdWFsVGVybU5vdEVxdWFsUnVsZUNv bnRleHQoc2VsZiwNCj4gbG9jYWxjdHgpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50 ZXJPdXRlckFsdChsb2NhbGN0eCwgMikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDI1NDgNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1NTENCj4gDQo+ ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTm90RXF1YWwpDQo+ IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNTQ5DQo+IA0KPiArICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyNTUyDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuY29t cGFyZVRlcm0oRXhwSW5mbykNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAg ICAgICAgICAgIGVsc2U6DQo+IA0KPiBAQCAtMTY0MjAsMTAgKzE2NDQyLDcgQEAgY2xhc3MgVmZy U3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9f KHBhcmVudCwgaW52b2tpbmdTdGF0ZSkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNlciA9 IHBhcnNlcg0KPiANCj4gICAgICAgICAgICAgIHNlbGYuRXhwSW5mbyA9IE5vbmUNCj4gDQo+IC0g ICAgICAgICAgICBzZWxmLkNJZnJMZXNzVGhhbkxpc3QgPSBbXQ0KPiANCj4gLSAgICAgICAgICAg IHNlbGYuQ0lmckxlc3NFcXVhbExpc3QgPSBbXQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuQ0lm ckdyZWF0ZXJUaGFuTGlzdCA9IFtdDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5DSWZyR3JlYXRl ckVxdWFsTGlzdCA9IFtdDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2RlcyA9IFtdDQo+IA0K PiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0gRXhwSW5mbw0KPiANCj4gDQo+IA0KPiAgICAg ICAgICBkZWYgc2hpZnRUZXJtKHNlbGYpOg0KPiANCj4gQEAgLTE2NDU2LDE1ICsxNjQ3NSwxNSBA QCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5fbGEg PSAwICMgVG9rZW4gdHlwZQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAg IHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LnN0YXRlID0gMjU1Mg0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNTU1DQo+IA0K PiAgICAgICAgICAgICAgc2VsZi5zaGlmdFRlcm0oRXhwSW5mbykNCj4gDQo+IC0gICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjU1Ng0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNTU5 DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAg ICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICB3 aGlsZSAoKChfbGEpICYgfjB4M2YpID09IDAgYW5kICgoMSA8PCBfbGEpICYgKCgxIDw8DQo+IFZm clN5bnRheFBhcnNlci5MZXNzRXF1YWwpIHwgKDEgPDwgVmZyU3ludGF4UGFyc2VyLkxlc3MpIHwg KDEgPDwNCj4gVmZyU3ludGF4UGFyc2VyLkdyZWF0ZXJFcXVhbCkgfCAoMSA8PCBWZnJTeW50YXhQ YXJzZXIuR3JlYXRlcikpKSAhPSAwKToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDI1NTMNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5jb21wYXJlVGVybVN1cHBsZW1l bnRhcnkobG9jYWxjdHguQ0lmckxlc3NUaGFuTGlzdCwNCj4gbG9jYWxjdHguQ0lmckxlc3NFcXVh bExpc3QsIGxvY2FsY3R4LkNJZnJHcmVhdGVyVGhhbkxpc3QsDQo+IGxvY2FsY3R4LkNJZnJHcmVh dGVyRXF1YWxMaXN0LCBFeHBJbmZvKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjU1OA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjU1Ng0KPiANCj4g KyAgICAgICAgICAgICAgICBzZWxmLmNvbXBhcmVUZXJtU3VwcGxlbWVudGFyeShFeHBJbmZvKQ0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjU2MQ0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICAg ICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+IA0KPiANCj4gQEAgLTE2NDc5LDE4ICsx NjQ5OCwxMSBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gDQo+IA0KPiAg ICAgIGNsYXNzIENvbXBhcmVUZXJtU3VwcGxlbWVudGFyeUNvbnRleHQoUGFyc2VyUnVsZUNvbnRl eHQpOg0KPiANCj4gDQo+IA0KPiAtICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyc2VyLCBw YXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tpbmdTdGF0ZTppbnQ9LTEsIENJ ZnJMZXNzVGhhbkxpc3Q9Tm9uZSwgQ0lmckxlc3NFcXVhbExpc3Q9Tm9uZSwNCj4gQ0lmckdyZWF0 ZXJUaGFuTGlzdD1Ob25lLCBDSWZyR3JlYXRlckVxdWFsTGlzdD1Ob25lLCBFeHBJbmZvPU5vbmUp Og0KPiANCj4gKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcnNlciwgcGFyZW50OlBhcnNl clJ1bGVDb250ZXh0PU5vbmUsDQo+IGludm9raW5nU3RhdGU6aW50PS0xLCBFeHBJbmZvPU5vbmUp Og0KPiANCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZva2luZ1N0 YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5DSWZyTGVzc1RoYW5MaXN0ID0gTm9uZQ0KPiANCj4gLSAgICAgICAgICAg IHNlbGYuQ0lmckxlc3NFcXVhbExpc3QgPSBOb25lDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5D SWZyR3JlYXRlclRoYW5MaXN0ID0gTm9uZQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuQ0lmckdy ZWF0ZXJFcXVhbExpc3QgPSBOb25lDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0g Tm9uZQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuQ0lmckxlc3NUaGFuTGlzdCA9IENJZnJMZXNz VGhhbkxpc3QNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLkNJZnJMZXNzRXF1YWxMaXN0ID0gQ0lm ckxlc3NFcXVhbExpc3QNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLkNJZnJHcmVhdGVyVGhhbkxp c3QgPSBDSWZyR3JlYXRlclRoYW5MaXN0DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5DSWZyR3Jl YXRlckVxdWFsTGlzdCA9IENJZnJHcmVhdGVyRXF1YWxMaXN0DQo+IA0KPiArICAgICAgICAgICAg c2VsZi5Ob2RlcyA9IFtdDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0gRXhwSW5m bw0KPiANCj4gDQo+IA0KPiANCj4gDQo+IEBAIC0xNjUwMCwxMSArMTY1MTIsOCBAQCBjbGFzcyBW ZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gDQo+IA0KPiAgICAgICAgICBkZWYgY29weUZy b20oc2VsZiwgY3R4OlBhcnNlclJ1bGVDb250ZXh0KToNCj4gDQo+ICAgICAgICAgICAgICBzdXBl cigpLmNvcHlGcm9tKGN0eCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLkNJZnJMZXNzVGhhbkxp c3QgPSBjdHguQ0lmckxlc3NUaGFuTGlzdA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuQ0lmckxl c3NFcXVhbExpc3QgPSBjdHguQ0lmckxlc3NFcXVhbExpc3QNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLkNJZnJHcmVhdGVyVGhhbkxpc3QgPSBjdHguQ0lmckdyZWF0ZXJUaGFuTGlzdA0KPiANCj4g LSAgICAgICAgICAgIHNlbGYuQ0lmckdyZWF0ZXJFcXVhbExpc3QgPSBjdHguQ0lmckdyZWF0ZXJF cXVhbExpc3QNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBjdHguRXhwSW5mbw0K PiANCj4gKyAgICAgICAgICAgIHNlbGYuTm9kZXMgPSBjdHguTm9kZXMNCj4gDQo+IA0KPiANCj4g DQo+IA0KPiANCj4gDQo+IEBAIC0xNjU4NSw0NCArMTY1OTQsNDQgQEAgY2xhc3MgVmZyU3ludGF4 UGFyc2VyICggUGFyc2VyICk6DQo+IA0KPiANCj4gDQo+IA0KPiANCj4gDQo+IC0gICAgZGVmIGNv bXBhcmVUZXJtU3VwcGxlbWVudGFyeShzZWxmLCBDSWZyTGVzc1RoYW5MaXN0LCBDSWZyTGVzc0Vx dWFsTGlzdCwNCj4gQ0lmckdyZWF0ZXJUaGFuTGlzdCwgQ0lmckdyZWF0ZXJFcXVhbExpc3QsIEV4 cEluZm8pOg0KPiANCj4gKyAgICBkZWYgY29tcGFyZVRlcm1TdXBwbGVtZW50YXJ5KHNlbGYsIEV4 cEluZm8pOg0KPiANCj4gDQo+IA0KPiAtICAgICAgICBsb2NhbGN0eCA9IFZmclN5bnRheFBhcnNl ci5Db21wYXJlVGVybVN1cHBsZW1lbnRhcnlDb250ZXh0KHNlbGYsDQo+IHNlbGYuX2N0eCwgc2Vs Zi5zdGF0ZSwgQ0lmckxlc3NUaGFuTGlzdCwgQ0lmckxlc3NFcXVhbExpc3QsIENJZnJHcmVhdGVy VGhhbkxpc3QsDQo+IENJZnJHcmVhdGVyRXF1YWxMaXN0LCBFeHBJbmZvKQ0KPiANCj4gKyAgICAg ICAgbG9jYWxjdHggPSBWZnJTeW50YXhQYXJzZXIuQ29tcGFyZVRlcm1TdXBwbGVtZW50YXJ5Q29u dGV4dChzZWxmLA0KPiBzZWxmLl9jdHgsIHNlbGYuc3RhdGUsIEV4cEluZm8pDQo+IA0KPiAgICAg ICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMzA2LCBzZWxmLlJVTEVfY29tcGFyZVRlcm1T dXBwbGVtZW50YXJ5KQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gLSAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAyNTY3DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1NzANCj4g DQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAg ICAgICAgICB0b2tlbiA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYg dG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5MZXNzXToNCj4gDQo+ICAgICAgICAgICAgICAgICAg bG9jYWxjdHggPSBWZnJTeW50YXhQYXJzZXIuQ29tcGFyZVRlcm1MZXNzUnVsZUNvbnRleHQoc2Vs ZiwNCj4gbG9jYWxjdHgpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFs dChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1NTkN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1NjINCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTGVzcykNCj4gDQo+IC0gICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1NjANCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDI1NjMNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zaGlmdFRlcm0oRXhwSW5m bykNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYg dG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5MZXNzRXF1YWxdOg0KPiANCj4gICAgICAgICAgICAg ICAgICBsb2NhbGN0eCA9IFZmclN5bnRheFBhcnNlci5Db21wYXJlVGVybUxlc3NFcXVhbFJ1bGVD b250ZXh0KHNlbGYsDQo+IGxvY2FsY3R4KQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVu dGVyT3V0ZXJBbHQobG9jYWxjdHgsIDIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAyNTYxDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNTY0DQo+IA0K PiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkxlc3NFcXVhbCkN Cj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1NjINCj4gDQo+ICsgICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1NjUNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5z aGlmdFRlcm0oRXhwSW5mbykNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAg ICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5HcmVhdGVyXToNCj4gDQo+ ICAgICAgICAgICAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50YXhQYXJzZXIuQ29tcGFyZVRlcm1H cmVhdGVyUnVsZUNvbnRleHQoc2VsZiwNCj4gbG9jYWxjdHgpDQo+IA0KPiAgICAgICAgICAgICAg ICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMykNCj4gDQo+IC0gICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDI1NjMNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDI1NjYNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu R3JlYXRlcikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1NjQNCj4gDQo+ ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1NjcNCj4gDQo+ICAgICAgICAgICAgICAg ICAgc2VsZi5zaGlmdFRlcm0oRXhwSW5mbykNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0K PiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5HcmVhdGVy RXF1YWxdOg0KPiANCj4gICAgICAgICAgICAgICAgICBsb2NhbGN0eCA9DQo+IFZmclN5bnRheFBh cnNlci5Db21wYXJlVGVybUdyZWF0ZXJFcXVhbFJ1bGVDb250ZXh0KHNlbGYsIGxvY2FsY3R4KQ0K PiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDQpDQo+ IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNTY1DQo+IA0KPiArICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyNTY4DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLkdyZWF0ZXJFcXVhbCkNCj4gDQo+IC0gICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDI1NjYNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1 NjkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zaGlmdFRlcm0oRXhwSW5mbykNCj4gDQo+ ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsc2U6DQo+IA0KPiBA QCAtMTY2NDMsOCArMTY2NTIsNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToN Cj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZva2luZ1N0YXRlKQ0K PiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAgICAgICAgICAg ICAgc2VsZi5FeHBJbmZvID0gTm9uZQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuQ0lmclNoaWZ0 TGVmdExpc3QgPSBbXQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuQ0lmclNoaWZ0UmlnaHRMaXN0 ID0gW10NCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5vZGVzID0gW10NCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLkV4cEluZm8gPSBFeHBJbmZvDQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGRlZiBh ZGRNaW51c1Rlcm0oc2VsZik6DQo+IA0KPiBAQCAtMTY2NzcsMTUgKzE2Njg1LDE1IEBAIGNsYXNz IFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBzZWxmLl9sYSA9IDAgIyBU b2tlbiB0eXBlDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5l bnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyNTY5DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1NzINCj4gDQo+ICAgICAg ICAgICAgICBzZWxmLmFkZE1pbnVzVGVybShFeHBJbmZvKQ0KPiANCj4gLSAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAyNTczDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1NzYNCj4g DQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAg ICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIHdoaWxl IF9sYT09VmZyU3ludGF4UGFyc2VyLlRfXzkgb3IgX2xhPT1WZnJTeW50YXhQYXJzZXIuVF9fMTA6 DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNTcwDQo+IA0KPiAtICAgICAg ICAgICAgICAgIHNlbGYuc2hpZnRUZXJtU3VwcGxlbWVudGFyeShsb2NhbGN0eC5DSWZyU2hpZnRM ZWZ0TGlzdCwNCj4gbG9jYWxjdHguQ0lmclNoaWZ0UmlnaHRMaXN0LCBFeHBJbmZvKQ0KPiANCj4g LSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjU3NQ0KPiANCj4gKyAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjU3Mw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnNoaWZ0VGVy bVN1cHBsZW1lbnRhcnkoRXhwSW5mbykNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDI1NzgNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNl bGYpDQo+IA0KPiAgICAgICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0K PiANCj4gDQo+IEBAIC0xNjcwMCwxNCArMTY3MDgsMTEgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2Vy ICggUGFyc2VyICk6DQo+IA0KPiANCj4gICAgICBjbGFzcyBTaGlmdFRlcm1TdXBwbGVtZW50YXJ5 Q29udGV4dChQYXJzZXJSdWxlQ29udGV4dCk6DQo+IA0KPiANCj4gDQo+IC0gICAgICAgIGRlZiBf X2luaXRfXyhzZWxmLCBwYXJzZXIsIHBhcmVudDpQYXJzZXJSdWxlQ29udGV4dD1Ob25lLA0KPiBp bnZva2luZ1N0YXRlOmludD0tMSwgQ0lmclNoaWZ0TGVmdExpc3Q9Tm9uZSwgQ0lmclNoaWZ0Umln aHRMaXN0PU5vbmUsDQo+IEV4cEluZm89Tm9uZSk6DQo+IA0KPiArICAgICAgICBkZWYgX19pbml0 X18oc2VsZiwgcGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tp bmdTdGF0ZTppbnQ9LTEsIEV4cEluZm89Tm9uZSk6DQo+IA0KPiAgICAgICAgICAgICAgc3VwZXIo KS5fX2luaXRfXyhwYXJlbnQsIGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5wYXJzZXIgPSBwYXJzZXINCj4gDQo+IC0gICAgICAgICAgICBzZWxmLkNJZnJTaGlmdExlZnRM aXN0ID0gTm9uZQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuQ0lmclNoaWZ0UmlnaHRMaXN0ID0g Tm9uZQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuRXhwSW5mbyA9IE5vbmUNCj4gDQo+IC0gICAg ICAgICAgICBzZWxmLkNJZnJTaGlmdExlZnRMaXN0ID0gQ0lmclNoaWZ0TGVmdExpc3QNCj4gDQo+ IC0gICAgICAgICAgICBzZWxmLkNJZnJTaGlmdFJpZ2h0TGlzdCA9IENJZnJTaGlmdFJpZ2h0TGlz dA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuTm9kZXMgPSBbXQ0KPiANCj4gICAgICAgICAgICAg IHNlbGYuRXhwSW5mbyA9IEV4cEluZm8NCj4gDQo+IA0KPiANCj4gDQo+IA0KPiBAQCAtMTY3MTcs OSArMTY3MjIsOCBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gDQo+IA0K PiAgICAgICAgICBkZWYgY29weUZyb20oc2VsZiwgY3R4OlBhcnNlclJ1bGVDb250ZXh0KToNCj4g DQo+ICAgICAgICAgICAgICBzdXBlcigpLmNvcHlGcm9tKGN0eCkNCj4gDQo+IC0gICAgICAgICAg ICBzZWxmLkNJZnJTaGlmdExlZnRMaXN0ID0gY3R4LkNJZnJTaGlmdExlZnRMaXN0DQo+IA0KPiAt ICAgICAgICAgICAgc2VsZi5DSWZyU2hpZnRSaWdodExpc3QgPSBjdHguQ0lmclNoaWZ0UmlnaHRM aXN0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0gY3R4LkV4cEluZm8NCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLk5vZGVzID0gY3R4Lk5vZGVzDQo+IA0KPiANCj4gDQo+IA0KPiAN Cj4gDQo+IA0KPiBAQCAtMTY3NTgsMjggKzE2NzYyLDI4IEBAIGNsYXNzIFZmclN5bnRheFBhcnNl ciAoIFBhcnNlciApOg0KPiANCj4gDQo+IA0KPiANCj4gDQo+IA0KPiAtICAgIGRlZiBzaGlmdFRl cm1TdXBwbGVtZW50YXJ5KHNlbGYsIENJZnJTaGlmdExlZnRMaXN0LCBDSWZyU2hpZnRSaWdodExp c3QsDQo+IEV4cEluZm8pOg0KPiANCj4gKyAgICBkZWYgc2hpZnRUZXJtU3VwcGxlbWVudGFyeShz ZWxmLCBFeHBJbmZvKToNCj4gDQo+IA0KPiANCj4gLSAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50 YXhQYXJzZXIuU2hpZnRUZXJtU3VwcGxlbWVudGFyeUNvbnRleHQoc2VsZiwgc2VsZi5fY3R4LA0K PiBzZWxmLnN0YXRlLCBDSWZyU2hpZnRMZWZ0TGlzdCwgQ0lmclNoaWZ0UmlnaHRMaXN0LCBFeHBJ bmZvKQ0KPiANCj4gKyAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50YXhQYXJzZXIuU2hpZnRUZXJt U3VwcGxlbWVudGFyeUNvbnRleHQoc2VsZiwgc2VsZi5fY3R4LA0KPiBzZWxmLnN0YXRlLCBFeHBJ bmZvKQ0KPiANCj4gICAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgsIDMxMCwgc2VsZi5S VUxFX3NoaWZ0VGVybVN1cHBsZW1lbnRhcnkpDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAt ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1ODANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMjU4Mw0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxm KQ0KPiANCj4gICAgICAgICAgICAgIHRva2VuID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAg ICAgICAgICAgICBpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLlRfXzldOg0KPiANCj4gICAg ICAgICAgICAgICAgICBsb2NhbGN0eCA9IFZmclN5bnRheFBhcnNlci5TaGlmdFRlcm1MZWZ0Q29u dGV4dChzZWxmLCBsb2NhbGN0eCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91 dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjU3Ng0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjU3OQ0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX185KQ0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjU3Nw0KPiANCj4gKyAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMjU4MA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmFkZE1pbnVzVGVy bShFeHBJbmZvKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAg ICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLlRfXzEwXToNCj4gDQo+ICAgICAgICAg ICAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50YXhQYXJzZXIuU2hpZnRUZXJtUmlnaHRDb250ZXh0 KHNlbGYsIGxvY2FsY3R4KQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJB bHQobG9jYWxjdHgsIDIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNTc4 DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNTgxDQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzEwKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjU3OQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjU4Mg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmFkZE1pbnVzVGVybShF eHBJbmZvKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAg ZWxzZToNCj4gDQo+IEBAIC0xNjgwMCw4ICsxNjgwNCw3IEBAIGNsYXNzIFZmclN5bnRheFBhcnNl ciAoIFBhcnNlciApOg0KPiAgICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhwYXJlbnQsIGlu dm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJzZXINCj4g DQo+ICAgICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBOb25lDQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5DSWZyQWRkTGlzdCA9IFtdDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5DSWZyU3VidHJh Y3RMaXN0ID0gW10NCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5vZGVzID0gW10NCj4gDQo+ICAg ICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBFeHBJbmZvDQo+IA0KPiANCj4gDQo+ICAgICAgICAg IGRlZiBtdWx0ZGl2bW9kVGVybShzZWxmKToNCj4gDQo+IEBAIC0xNjgzNCwxNSArMTY4MzcsMTUg QEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgIHNlbGYuX2xh ID0gMCAjIFRva2VuIHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAg ICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDI1ODINCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjU4NQ0KPiAN Cj4gICAgICAgICAgICAgIHNlbGYubXVsdGRpdm1vZFRlcm0oRXhwSW5mbykNCj4gDQo+IC0gICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjU4Ng0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyNTg5DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+ IA0KPiAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAg ICAgICB3aGlsZSBfbGE9PVZmclN5bnRheFBhcnNlci5UX18xMSBvciBfbGE9PVZmclN5bnRheFBh cnNlci5OZWdhdGl2ZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1ODMN Cj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5hZGRNaW51c1Rlcm1TdXBwbGVtZW50YXJ5KGxv Y2FsY3R4LkNJZnJBZGRMaXN0LA0KPiBsb2NhbGN0eC5DSWZyU3VidHJhY3RMaXN0LCBFeHBJbmZv KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjU4OA0KPiANCj4gKyAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjU4Ng0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxm LmFkZE1pbnVzVGVybVN1cHBsZW1lbnRhcnkoRXhwSW5mbykNCj4gDQo+ICsgICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDI1OTENCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5fZXJySGFu ZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0 LkxBKDEpDQo+IA0KPiANCj4gDQo+IEBAIC0xNjg1NywxNCArMTY4NjAsMTEgQEAgY2xhc3MgVmZy U3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+IA0KPiANCj4gICAgICBjbGFzcyBBZGRNaW51c1Rl cm1TdXBwbGVtZW50YXJ5Q29udGV4dChQYXJzZXJSdWxlQ29udGV4dCk6DQo+IA0KPiANCj4gDQo+ IC0gICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJzZXIsIHBhcmVudDpQYXJzZXJSdWxlQ29u dGV4dD1Ob25lLA0KPiBpbnZva2luZ1N0YXRlOmludD0tMSwgQ0lmckFkZExpc3Q9Tm9uZSwgQ0lm clN1YnRyYWN0TGlzdD1Ob25lLCBFeHBJbmZvPU5vbmUpOg0KPiANCj4gKyAgICAgICAgZGVmIF9f aW5pdF9fKHNlbGYsIHBhcnNlciwgcGFyZW50OlBhcnNlclJ1bGVDb250ZXh0PU5vbmUsDQo+IGlu dm9raW5nU3RhdGU6aW50PS0xLCBFeHBJbmZvPU5vbmUpOg0KPiANCj4gICAgICAgICAgICAgIHN1 cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAg IHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5DSWZyQWRkTGlz dCA9IE5vbmUNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLkNJZnJTdWJ0cmFjdExpc3QgPSBOb25l DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0gTm9uZQ0KPiANCj4gLSAgICAgICAg ICAgIHNlbGYuQ0lmckFkZExpc3QgPSBDSWZyQWRkTGlzdA0KPiANCj4gLSAgICAgICAgICAgIHNl bGYuQ0lmclN1YnRyYWN0TGlzdCA9IENJZnJTdWJ0cmFjdExpc3QNCj4gDQo+ICsgICAgICAgICAg ICBzZWxmLk5vZGVzID0gW10NCj4gDQo+ICAgICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBFeHBJ bmZvDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gQEAgLTE2ODc0LDkgKzE2ODc0LDggQEAgY2xhc3Mg VmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+IA0KPiANCj4gICAgICAgICAgZGVmIGNvcHlG cm9tKHNlbGYsIGN0eDpQYXJzZXJSdWxlQ29udGV4dCk6DQo+IA0KPiAgICAgICAgICAgICAgc3Vw ZXIoKS5jb3B5RnJvbShjdHgpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5DSWZyQWRkTGlzdCA9 IGN0eC5DSWZyQWRkTGlzdA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuQ0lmclN1YnRyYWN0TGlz dCA9IGN0eC5DSWZyU3VidHJhY3RMaXN0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZv ID0gY3R4LkV4cEluZm8NCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5vZGVzID0gY3R4Lk5vZGVz DQo+IA0KPiANCj4gDQo+IA0KPiANCj4gDQo+IA0KPiBAQCAtMTY5MTcsMjggKzE2OTE2LDI4IEBA IGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiANCj4gDQo+IA0KPiANCj4gDQo+ IA0KPiAtICAgIGRlZiBhZGRNaW51c1Rlcm1TdXBwbGVtZW50YXJ5KHNlbGYsIENJZnJBZGRMaXN0 LCBDSWZyU3VidHJhY3RMaXN0LA0KPiBFeHBJbmZvKToNCj4gDQo+ICsgICAgZGVmIGFkZE1pbnVz VGVybVN1cHBsZW1lbnRhcnkoc2VsZiwgRXhwSW5mbyk6DQo+IA0KPiANCj4gDQo+IC0gICAgICAg IGxvY2FsY3R4ID0gVmZyU3ludGF4UGFyc2VyLkFkZE1pbnVzVGVybVN1cHBsZW1lbnRhcnlDb250 ZXh0KHNlbGYsDQo+IHNlbGYuX2N0eCwgc2VsZi5zdGF0ZSwgQ0lmckFkZExpc3QsIENJZnJTdWJ0 cmFjdExpc3QsIEV4cEluZm8pDQo+IA0KPiArICAgICAgICBsb2NhbGN0eCA9IFZmclN5bnRheFBh cnNlci5BZGRNaW51c1Rlcm1TdXBwbGVtZW50YXJ5Q29udGV4dChzZWxmLA0KPiBzZWxmLl9jdHgs IHNlbGYuc3RhdGUsIEV4cEluZm8pDQo+IA0KPiAgICAgICAgICBzZWxmLmVudGVyUnVsZShsb2Nh bGN0eCwgMzE0LCBzZWxmLlJVTEVfYWRkTWludXNUZXJtU3VwcGxlbWVudGFyeSkNCj4gDQo+ICAg ICAgICAgIHRyeToNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjU5Mw0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNTk2DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5f ZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgdG9rZW4gPSBzZWxmLl9p bnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJz ZXIuVF9fMTFdOg0KPiANCj4gICAgICAgICAgICAgICAgICBsb2NhbGN0eCA9IFZmclN5bnRheFBh cnNlci5BZGRNaW51c1Rlcm1wQWRkQ29udGV4dChzZWxmLCBsb2NhbGN0eCkNCj4gDQo+ICAgICAg ICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjU4OQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjU5Mg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5UX18xMSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1OTAN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1OTMNCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi5tdWx0ZGl2bW9kVGVybShFeHBJbmZvKQ0KPiANCj4gICAgICAgICAgICAg ICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFy c2VyLk5lZ2F0aXZlXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50 YXhQYXJzZXIuQWRkTWludXNUZXJtU3VidHJhY3RDb250ZXh0KHNlbGYsDQo+IGxvY2FsY3R4KQ0K PiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDIpDQo+ IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNTkxDQo+IA0KPiArICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyNTk0DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLk5lZ2F0aXZlKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjU5Mg0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjU5NQ0K PiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm11bHRkaXZtb2RUZXJtKEV4cEluZm8pDQo+IA0K PiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbHNlOg0KPiANCj4g QEAgLTE2OTU5LDkgKzE2OTU4LDcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6 DQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwgaW52b2tpbmdTdGF0ZSkN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0KPiANCj4gICAgICAgICAg ICAgIHNlbGYuRXhwSW5mbyA9IE5vbmUNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLkNJZnJNdWx0 aXBseUxpc3QgPSBbXQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuQ0lmckRpdmlkZUxpc3QgPSBb XQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuQ0lmck1vZHVsb0xpc3QgPSBbXQ0KPiANCj4gKyAg ICAgICAgICAgIHNlbGYuTm9kZXMgPSBbXQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuRXhwSW5m byA9IEV4cEluZm8NCj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVmIGNhc3RUZXJtKHNlbGYpOg0K PiANCj4gQEAgLTE2OTk0LDE1ICsxNjk5MSwxNSBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQ YXJzZXIgKToNCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4gdHlwZQ0KPiANCj4gICAg ICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0 eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjU5NQ0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyNTk4DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5jYXN0VGVy bShFeHBJbmZvKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNTk5DQo+IA0KPiAr ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2MDINCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9l cnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1 dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIHdoaWxlICgoKF9sYSkgJiB+MHgzZikgPT0gMCBh bmQgKCgxIDw8IF9sYSkgJiAoKDEgPDwNCj4gVmZyU3ludGF4UGFyc2VyLlRfXzEyKSB8ICgxIDw8 IFZmclN5bnRheFBhcnNlci5UX18xMykgfCAoMSA8PA0KPiBWZnJTeW50YXhQYXJzZXIuU2xhc2gp KSkgIT0gMCk6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNTk2DQo+IA0K PiAtICAgICAgICAgICAgICAgIHNlbGYubXVsdGRpdm1vZFRlcm1TdXBwbGVtZW50YXJ5KGxvY2Fs Y3R4LkNJZnJNdWx0aXBseUxpc3QsDQo+IGxvY2FsY3R4LkNJZnJEaXZpZGVMaXN0LCBsb2NhbGN0 eC5DSWZyTW9kdWxvTGlzdCwgRXhwSW5mbykNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDI2MDENCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI1OTkNCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5tdWx0ZGl2bW9kVGVybVN1cHBsZW1lbnRhcnkoRXhw SW5mbykNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2MDQNCj4gDQo+ICAg ICAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAg ICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiANCj4gDQo+IEBAIC0xNzAx NywxNiArMTcwMTQsMTEgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+IA0K PiANCj4gICAgICBjbGFzcyBNdWx0ZGl2bW9kVGVybVN1cHBsZW1lbnRhcnlDb250ZXh0KFBhcnNl clJ1bGVDb250ZXh0KToNCj4gDQo+IA0KPiANCj4gLSAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYs IHBhcnNlciwgcGFyZW50OlBhcnNlclJ1bGVDb250ZXh0PU5vbmUsDQo+IGludm9raW5nU3RhdGU6 aW50PS0xLCBDSWZyTXVsdGlwbHlMaXN0PU5vbmUsIENJZnJEaXZpZGVMaXN0PU5vbmUsDQo+IENJ ZnJNb2R1bG9MaXN0PU5vbmUsIEV4cEluZm89Tm9uZSk6DQo+IA0KPiArICAgICAgICBkZWYgX19p bml0X18oc2VsZiwgcGFyc2VyLCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52 b2tpbmdTdGF0ZTppbnQ9LTEsIEV4cEluZm89Tm9uZSk6DQo+IA0KPiAgICAgICAgICAgICAgc3Vw ZXIoKS5fX2luaXRfXyhwYXJlbnQsIGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAgICAg c2VsZi5wYXJzZXIgPSBwYXJzZXINCj4gDQo+IC0gICAgICAgICAgICBzZWxmLkNJZnJNdWx0aXBs eUxpc3QgPSBOb25lDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5DSWZyRGl2aWRlTGlzdCA9IE5v bmUNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLkNJZnJNb2R1bG9MaXN0ID0gTm9uZQ0KPiANCj4g ICAgICAgICAgICAgIHNlbGYuRXhwSW5mbyA9IE5vbmUNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LkNJZnJNdWx0aXBseUxpc3QgPSBDSWZyTXVsdGlwbHlMaXN0DQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5DSWZyRGl2aWRlTGlzdCA9IENJZnJEaXZpZGVMaXN0DQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5DSWZyTW9kdWxvTGlzdCA9IENJZnJNb2R1bG9MaXN0DQo+IA0KPiArICAgICAgICAgICAg c2VsZi5Ob2RlcyA9IFtdDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0gRXhwSW5m bw0KPiANCj4gDQo+IA0KPiANCj4gDQo+IEBAIC0xNzAzNiwxMCArMTcwMjgsOCBAQCBjbGFzcyBW ZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gDQo+IA0KPiAgICAgICAgICBkZWYgY29weUZy b20oc2VsZiwgY3R4OlBhcnNlclJ1bGVDb250ZXh0KToNCj4gDQo+ICAgICAgICAgICAgICBzdXBl cigpLmNvcHlGcm9tKGN0eCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLkNJZnJNdWx0aXBseUxp c3QgPSBjdHguQ0lmck11bHRpcGx5TGlzdA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuQ0lmckRp dmlkZUxpc3QgPSBjdHguQ0lmckRpdmlkZUxpc3QNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLkNJ ZnJNb2R1bG9MaXN0ID0gY3R4LkNJZnJNb2R1bG9MaXN0DQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5FeHBJbmZvID0gY3R4LkV4cEluZm8NCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5vZGVzID0g Y3R4Lk5vZGVzDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gDQo+IA0KPiBAQCAtMTcwOTcsMzYgKzE3 MDg3LDM2IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiANCj4gDQo+IA0K PiANCj4gDQo+IA0KPiAtICAgIGRlZiBtdWx0ZGl2bW9kVGVybVN1cHBsZW1lbnRhcnkoc2VsZiwg Q0lmck11bHRpcGx5TGlzdCwgQ0lmckRpdmlkZUxpc3QsDQo+IENJZnJNb2R1bG9MaXN0LCBFeHBJ bmZvKToNCj4gDQo+ICsgICAgZGVmIG11bHRkaXZtb2RUZXJtU3VwcGxlbWVudGFyeShzZWxmLCBF eHBJbmZvKToNCj4gDQo+IA0KPiANCj4gLSAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50YXhQYXJz ZXIuTXVsdGRpdm1vZFRlcm1TdXBwbGVtZW50YXJ5Q29udGV4dChzZWxmLA0KPiBzZWxmLl9jdHgs IHNlbGYuc3RhdGUsIENJZnJNdWx0aXBseUxpc3QsIENJZnJEaXZpZGVMaXN0LCBDSWZyTW9kdWxv TGlzdCwgRXhwSW5mbykNCj4gDQo+ICsgICAgICAgIGxvY2FsY3R4ID0gVmZyU3ludGF4UGFyc2Vy Lk11bHRkaXZtb2RUZXJtU3VwcGxlbWVudGFyeUNvbnRleHQoc2VsZiwNCj4gc2VsZi5fY3R4LCBz ZWxmLnN0YXRlLCBFeHBJbmZvKQ0KPiANCj4gICAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxj dHgsIDMxOCwgc2VsZi5SVUxFX211bHRkaXZtb2RUZXJtU3VwcGxlbWVudGFyeSkNCj4gDQo+ICAg ICAgICAgIHRyeToNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjYwOA0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjExDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5f ZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgdG9rZW4gPSBzZWxmLl9p bnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJz ZXIuVF9fMTJdOg0KPiANCj4gICAgICAgICAgICAgICAgICBsb2NhbGN0eCA9IFZmclN5bnRheFBh cnNlci5NdWx0ZGl2bW9kVGVybU11bENvbnRleHQoc2VsZiwgbG9jYWxjdHgpDQo+IA0KPiAgICAg ICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2MDINCj4gDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDI2MDUNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuVF9fMTIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjAz DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjA2DQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYuY2FzdFRlcm0oRXhwSW5mbykNCj4gDQo+ICAgICAgICAgICAgICAgICAg cGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5T bGFzaF06DQo+IA0KPiAgICAgICAgICAgICAgICAgIGxvY2FsY3R4ID0gVmZyU3ludGF4UGFyc2Vy Lk11bHRkaXZtb2RUZXJtRGl2Q29udGV4dChzZWxmLCBsb2NhbGN0eCkNCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAyKQ0KPiANCj4gLSAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjYwNA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMjYwNw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5TbGFzaCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2MDUNCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2MDgNCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi5jYXN0VGVybShFeHBJbmZvKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNz DQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLlRfXzEz XToNCj4gDQo+ICAgICAgICAgICAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50YXhQYXJzZXIuTXVs dGRpdm1vZFRlcm1Nb2R1bG9Db250ZXh0KHNlbGYsDQo+IGxvY2FsY3R4KQ0KPiANCj4gICAgICAg ICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDMpDQo+IA0KPiAtICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjA2DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyNjA5DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLlRfXzEzKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjYwNw0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjYxMA0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLmNhc3RUZXJtKEV4cEluZm8pDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBh c3MNCj4gDQo+ICAgICAgICAgICAgICBlbHNlOg0KPiANCj4gQEAgLTE3MTQ3LDU1ICsxNzEzNywx OSBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgICAgIHN1 cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAg IHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0g Tm9uZQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuVEJPYmogPSBOb25lDQo+IA0KPiAtICAgICAg ICAgICAgc2VsZi5UVU9iaiA9IE5vbmUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5vZGVzID0g W10NCj4gDQo+ICAgICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBFeHBJbmZvDQo+IA0KPiANCj4g DQo+ICAgICAgICAgIGRlZiBhdG9tVGVybShzZWxmKToNCj4gDQo+ICAgICAgICAgICAgICByZXR1 cm4gc2VsZi5nZXRUeXBlZFJ1bGVDb250ZXh0KFZmclN5bnRheFBhcnNlci5BdG9tVGVybUNvbnRl eHQsMCkNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiAtICAgICAgICBkZWYgT3BlblBhcmVuKHNlbGYs IGk6aW50PU5vbmUpOg0KPiANCj4gLSAgICAgICAgICAgIGlmIGkgaXMgTm9uZToNCj4gDQo+IC0g ICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZ2V0VG9rZW5zKFZmclN5bnRheFBhcnNlci5PcGVu UGFyZW4pDQo+IA0KPiAtICAgICAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICAgICAg cmV0dXJuIHNlbGYuZ2V0VG9rZW4oVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbiwgaSkNCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgIGRlZiBDbG9zZVBhcmVuKHNlbGYsIGk6aW50PU5vbmUpOg0KPiAN Cj4gLSAgICAgICAgICAgIGlmIGkgaXMgTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgcmV0 dXJuIHNlbGYuZ2V0VG9rZW5zKFZmclN5bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0KPiANCj4gLSAg ICAgICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmdldFRv a2VuKFZmclN5bnRheFBhcnNlci5DbG9zZVBhcmVuLCBpKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAg ICAgZGVmIEJvb2xlYW4oc2VsZiwgaTppbnQ9Tm9uZSk6DQo+IA0KPiAtICAgICAgICAgICAgaWYg aSBpcyBOb25lOg0KPiANCj4gLSAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5nZXRUb2tlbnMo VmZyU3ludGF4UGFyc2VyLkJvb2xlYW4pDQo+IA0KPiAtICAgICAgICAgICAgZWxzZToNCj4gDQo+ IC0gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZ2V0VG9rZW4oVmZyU3ludGF4UGFyc2VyLkJv b2xlYW4sIGkpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBkZWYgVWludDY0KHNlbGYsIGk6aW50 PU5vbmUpOg0KPiANCj4gLSAgICAgICAgICAgIGlmIGkgaXMgTm9uZToNCj4gDQo+IC0gICAgICAg ICAgICAgICAgcmV0dXJuIHNlbGYuZ2V0VG9rZW5zKFZmclN5bnRheFBhcnNlci5VaW50NjQpDQo+ IA0KPiAtICAgICAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgcmV0dXJuIHNl bGYuZ2V0VG9rZW4oVmZyU3ludGF4UGFyc2VyLlVpbnQ2NCwgaSkNCj4gDQo+IC0NCj4gDQo+IC0g ICAgICAgIGRlZiBVaW50MzIoc2VsZiwgaTppbnQ9Tm9uZSk6DQo+IA0KPiAtICAgICAgICAgICAg aWYgaSBpcyBOb25lOg0KPiANCj4gLSAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5nZXRUb2tl bnMoVmZyU3ludGF4UGFyc2VyLlVpbnQzMikNCj4gDQo+IC0gICAgICAgICAgICBlbHNlOg0KPiAN Cj4gLSAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5nZXRUb2tlbihWZnJTeW50YXhQYXJzZXIu VWludDMyLCBpKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgZGVmIFVpbnQxNihzZWxmLCBpOmlu dD1Ob25lKToNCj4gDQo+ICsgICAgICAgIGRlZiBjYXN0VGVybVN1YihzZWxmLCBpOmludD1Ob25l KToNCj4gDQo+ICAgICAgICAgICAgICBpZiBpIGlzIE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAg ICAgIHJldHVybiBzZWxmLmdldFRva2VucyhWZnJTeW50YXhQYXJzZXIuVWludDE2KQ0KPiANCj4g KyAgICAgICAgICAgICAgICByZXR1cm4NCj4gc2VsZi5nZXRUeXBlZFJ1bGVDb250ZXh0cyhWZnJT eW50YXhQYXJzZXIuQ2FzdFRlcm1TdWJDb250ZXh0KQ0KPiANCj4gICAgICAgICAgICAgIGVsc2U6 DQo+IA0KPiAtICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmdldFRva2VuKFZmclN5bnRheFBh cnNlci5VaW50MTYsIGkpDQo+IA0KPiArICAgICAgICAgICAgICAgIHJldHVybg0KPiBzZWxmLmdl dFR5cGVkUnVsZUNvbnRleHQoVmZyU3ludGF4UGFyc2VyLkNhc3RUZXJtU3ViQ29udGV4dCxpKQ0K PiANCj4gDQo+IA0KPiAtICAgICAgICBkZWYgVWludDgoc2VsZiwgaTppbnQ9Tm9uZSk6DQo+IA0K PiAtICAgICAgICAgICAgaWYgaSBpcyBOb25lOg0KPiANCj4gLSAgICAgICAgICAgICAgICByZXR1 cm4gc2VsZi5nZXRUb2tlbnMoVmZyU3ludGF4UGFyc2VyLlVpbnQ4KQ0KPiANCj4gLSAgICAgICAg ICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmdldFRva2VuKFZm clN5bnRheFBhcnNlci5VaW50OCwgaSkNCj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVmIGdldFJ1 bGVJbmRleChzZWxmKToNCj4gDQo+ICAgICAgICAgICAgICByZXR1cm4gVmZyU3ludGF4UGFyc2Vy LlJVTEVfY2FzdFRlcm0NCj4gDQo+IEBAIC0xNzIxMywzMCArMTcxNjcsMjAgQEAgY2xhc3MgVmZy U3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+IA0KPiANCj4gICAgICAgICAgbG9jYWxjdHggPSBW ZnJTeW50YXhQYXJzZXIuQ2FzdFRlcm1Db250ZXh0KHNlbGYsIHNlbGYuX2N0eCwgc2VsZi5zdGF0 ZSwNCj4gRXhwSW5mbykNCj4gDQo+ICAgICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAz MjAsIHNlbGYuUlVMRV9jYXN0VGVybSkNCj4gDQo+IC0gICAgICAgIHNlbGYuX2xhID0gMCAjIFRv a2VuIHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVu dGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDI2MTUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjYxNg0KPiANCj4gICAgICAg ICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gLSAgICAgICAgICAgIF9h bHQgPSBzZWxmLl9pbnRlcnAuYWRhcHRpdmVQcmVkaWN0KHNlbGYuX2lucHV0LDIxNyxzZWxmLl9j dHgpDQo+IA0KPiArICAgICAgICAgICAgX2FsdCA9IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRp Y3Qoc2VsZi5faW5wdXQsMjE4LHNlbGYuX2N0eCkNCj4gDQo+ICAgICAgICAgICAgICB3aGlsZSBf YWx0IT0yIGFuZCBfYWx0IT1BVE4uSU5WQUxJRF9BTFRfTlVNQkVSOg0KPiANCj4gICAgICAgICAg ICAgICAgICBpZiBfYWx0PT0xOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDI2MTANCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyNjExDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgx KQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgaWYgbm90KCgoKChfbGEgLSA4MCkpICYgfjB4 M2YpID09IDAgYW5kICgoMSA8PCAoX2xhIC0gODApKSAmICgoMSA8PA0KPiAoVmZyU3ludGF4UGFy c2VyLkJvb2xlYW4gLSA4MCkpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5VaW50NjQgLSA4MCkp IHwgKDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5VaW50MzIgLSA4MCkpIHwgKDEgPDwgKFZmclN5 bnRheFBhcnNlci5VaW50MTYgLSA4MCkpIHwgKDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5VaW50 OCAtIDgwKSkpKSAhPSAwKSk6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5f ZXJySGFuZGxlci5yZWNvdmVySW5saW5lKHNlbGYpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAg ICBlbHNlOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIu cmVwb3J0TWF0Y2goc2VsZikNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNv bnN1bWUoKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2MTINCj4g DQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3Nl UGFyZW4pDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjE3DQo+IA0KPiAr ICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjYxMw0KPiANCj4gKyAgICAgICAgICAg ICAgICAgICAgc2VsZi5jYXN0VGVybVN1YigpDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyNjE4DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3lu YyhzZWxmKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBfYWx0ID0gc2VsZi5faW50ZXJwLmFkYXB0 aXZlUHJlZGljdChzZWxmLl9pbnB1dCwyMTcsc2VsZi5fY3R4KQ0KPiANCj4gKyAgICAgICAgICAg ICAgICBfYWx0ID0gc2VsZi5faW50ZXJwLmFkYXB0aXZlUHJlZGljdChzZWxmLl9pbnB1dCwyMTgs c2VsZi5fY3R4KQ0KPiANCj4gDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2MTgN Cj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjYxOQ0KPiANCj4gICAgICAgICAgICAg IHNlbGYuYXRvbVRlcm0oRXhwSW5mbykNCj4gDQo+ICAgICAgICAgIGV4Y2VwdCBSZWNvZ25pdGlv bkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5leGNlcHRpb24g PSByZQ0KPiANCj4gQEAgLTE3MjQ3LDEyICsxNzE5MSw4MCBAQCBjbGFzcyBWZnJTeW50YXhQYXJz ZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgcmV0dXJuIGxvY2FsY3R4DQo+IA0KPiANCj4gDQo+ IA0KPiANCj4gKyAgICBjbGFzcyBDYXN0VGVybVN1YkNvbnRleHQoUGFyc2VyUnVsZUNvbnRleHQp Og0KPiANCj4gKw0KPiANCj4gKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcnNlciwgcGFy ZW50OlBhcnNlclJ1bGVDb250ZXh0PU5vbmUsDQo+IGludm9raW5nU3RhdGU6aW50PS0xKToNCj4g DQo+ICsgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwgaW52b2tpbmdTdGF0ZSkN Cj4gDQo+ICsgICAgICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0KPiANCj4gKyAgICAgICAg ICAgIHNlbGYuQ2FzdFR5cGUgPSAweEZGDQo+IA0KPiArDQo+IA0KPiArICAgICAgICBkZWYgT3Bl blBhcmVuKHNlbGYpOg0KPiANCj4gKyAgICAgICAgICAgIHJldHVybiBzZWxmLmdldFRva2VuKFZm clN5bnRheFBhcnNlci5PcGVuUGFyZW4sIDApDQo+IA0KPiArDQo+IA0KPiArICAgICAgICBkZWYg Q2xvc2VQYXJlbihzZWxmKToNCj4gDQo+ICsgICAgICAgICAgICByZXR1cm4gc2VsZi5nZXRUb2tl bihWZnJTeW50YXhQYXJzZXIuQ2xvc2VQYXJlbiwgMCkNCj4gDQo+ICsNCj4gDQo+ICsgICAgICAg IGRlZiBCb29sZWFuKHNlbGYpOg0KPiANCj4gKyAgICAgICAgICAgIHJldHVybiBzZWxmLmdldFRv a2VuKFZmclN5bnRheFBhcnNlci5Cb29sZWFuLCAwKQ0KPiANCj4gKw0KPiANCj4gKyAgICAgICAg ZGVmIFVpbnQ2NChzZWxmKToNCj4gDQo+ICsgICAgICAgICAgICByZXR1cm4gc2VsZi5nZXRUb2tl bihWZnJTeW50YXhQYXJzZXIuVWludDY0LCAwKQ0KPiANCj4gKw0KPiANCj4gKyAgICAgICAgZGVm IFVpbnQzMihzZWxmKToNCj4gDQo+ICsgICAgICAgICAgICByZXR1cm4gc2VsZi5nZXRUb2tlbihW ZnJTeW50YXhQYXJzZXIuVWludDMyLCAwKQ0KPiANCj4gKw0KPiANCj4gKyAgICAgICAgZGVmIFVp bnQxNihzZWxmKToNCj4gDQo+ICsgICAgICAgICAgICByZXR1cm4gc2VsZi5nZXRUb2tlbihWZnJT eW50YXhQYXJzZXIuVWludDE2LCAwKQ0KPiANCj4gKw0KPiANCj4gKyAgICAgICAgZGVmIFVpbnQ4 KHNlbGYpOg0KPiANCj4gKyAgICAgICAgICAgIHJldHVybiBzZWxmLmdldFRva2VuKFZmclN5bnRh eFBhcnNlci5VaW50OCwgMCkNCj4gDQo+ICsNCj4gDQo+ICsgICAgICAgIGRlZiBnZXRSdWxlSW5k ZXgoc2VsZik6DQo+IA0KPiArICAgICAgICAgICAgcmV0dXJuIFZmclN5bnRheFBhcnNlci5SVUxF X2Nhc3RUZXJtU3ViDQo+IA0KPiArDQo+IA0KPiArICAgICAgICBkZWYgYWNjZXB0KHNlbGYsIHZp c2l0b3I6UGFyc2VUcmVlVmlzaXRvcik6DQo+IA0KPiArICAgICAgICAgICAgaWYgaGFzYXR0cigg dmlzaXRvciwgInZpc2l0Q2FzdFRlcm1TdWIiICk6DQo+IA0KPiArICAgICAgICAgICAgICAgIHJl dHVybiB2aXNpdG9yLnZpc2l0Q2FzdFRlcm1TdWIoc2VsZikNCj4gDQo+ICsgICAgICAgICAgICBl bHNlOg0KPiANCj4gKyAgICAgICAgICAgICAgICByZXR1cm4gdmlzaXRvci52aXNpdENoaWxkcmVu KHNlbGYpDQo+IA0KPiArDQo+IA0KPiArDQo+IA0KPiArDQo+IA0KPiArDQo+IA0KPiArICAgIGRl ZiBjYXN0VGVybVN1YihzZWxmKToNCj4gDQo+ICsNCj4gDQo+ICsgICAgICAgIGxvY2FsY3R4ID0g VmZyU3ludGF4UGFyc2VyLkNhc3RUZXJtU3ViQ29udGV4dChzZWxmLCBzZWxmLl9jdHgsIHNlbGYu c3RhdGUpDQo+IA0KPiArICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMzIyLCBzZWxm LlJVTEVfY2FzdFRlcm1TdWIpDQo+IA0KPiArICAgICAgICBzZWxmLl9sYSA9IDAgIyBUb2tlbiB0 eXBlDQo+IA0KPiArICAgICAgICB0cnk6DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5lbnRlck91 dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjIx DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3BlblBhcmVu KQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjIyDQo+IA0KPiArICAgICAgICAg ICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICsgICAgICAgICAgICBpZiBub3QoKCgo KF9sYSAtIDgwKSkgJiB+MHgzZikgPT0gMCBhbmQgKCgxIDw8IChfbGEgLSA4MCkpICYgKCgxIDw8 DQo+IChWZnJTeW50YXhQYXJzZXIuQm9vbGVhbiAtIDgwKSkgfCAoMSA8PCAoVmZyU3ludGF4UGFy c2VyLlVpbnQ2NCAtIDgwKSkgfCAoMSA8PA0KPiAoVmZyU3ludGF4UGFyc2VyLlVpbnQzMiAtIDgw KSkgfCAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLlVpbnQxNiAtIDgwKSkgfCAoMSA8PA0KPiAoVmZy U3ludGF4UGFyc2VyLlVpbnQ4IC0gODApKSkpICE9IDApKToNCj4gDQo+ICsgICAgICAgICAgICAg ICAgc2VsZi5fZXJySGFuZGxlci5yZWNvdmVySW5saW5lKHNlbGYpDQo+IA0KPiArICAgICAgICAg ICAgZWxzZToNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5yZXBvcnRN YXRjaChzZWxmKQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLmNvbnN1bWUoKQ0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjIzDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuQ2xvc2VQYXJlbikNCj4gDQo+ICsgICAgICAgIGV4Y2VwdCBS ZWNvZ25pdGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICsgICAgICAgICAgICBsb2NhbGN0eC5l eGNlcHRpb24gPSByZQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIucmVwb3J0 RXJyb3Ioc2VsZiwgcmUpDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5yZWNv dmVyKHNlbGYsIHJlKQ0KPiANCj4gKyAgICAgICAgZmluYWxseToNCj4gDQo+ICsgICAgICAgICAg ICBzZWxmLmV4aXRSdWxlKCkNCj4gDQo+ICsgICAgICAgIHJldHVybiBsb2NhbGN0eA0KPiANCj4g Kw0KPiANCj4gKw0KPiANCj4gICAgICBjbGFzcyBBdG9tVGVybUNvbnRleHQoUGFyc2VyUnVsZUNv bnRleHQpOg0KPiANCj4gDQo+IA0KPiAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyc2Vy LCBwYXJlbnQ6UGFyc2VyUnVsZUNvbnRleHQ9Tm9uZSwNCj4gaW52b2tpbmdTdGF0ZTppbnQ9LTEs IEV4cEluZm89Tm9uZSk6DQo+IA0KPiAgICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhwYXJl bnQsIGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJz ZXINCj4gDQo+ICAgICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBOb25lDQo+IA0KPiArICAgICAg ICAgICAgc2VsZi5Ob2RlcyA9IFtdDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0g RXhwSW5mbw0KPiANCj4gDQo+IA0KPiAgICAgICAgICBkZWYgdmZyRXhwcmVzc2lvbkNhdGVuYXRl KHNlbGYpOg0KPiANCj4gQEAgLTE3MzEzLDc5ICsxNzMyNSw2NSBAQCBjbGFzcyBWZnJTeW50YXhQ YXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICBkZWYgYXRvbVRlcm0oc2VsZiwgRXhwSW5mbyk6DQo+ IA0KPiANCj4gDQo+ICAgICAgICAgIGxvY2FsY3R4ID0gVmZyU3ludGF4UGFyc2VyLkF0b21UZXJt Q29udGV4dChzZWxmLCBzZWxmLl9jdHgsIHNlbGYuc3RhdGUsDQo+IEV4cEluZm8pDQo+IA0KPiAt ICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMzIyLCBzZWxmLlJVTEVfYXRvbVRlcm0p DQo+IA0KPiArICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMzI0LCBzZWxmLlJVTEVf YXRvbVRlcm0pDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDI2MzINCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjYzNg0KPiANCj4g ICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gLSAgICAgICAg ICAgIGxhXyA9IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRpY3Qoc2VsZi5faW5wdXQsMjE4LHNl bGYuX2N0eCkNCj4gDQo+IC0gICAgICAgICAgICBpZiBsYV8gPT0gMToNCj4gDQo+ICsgICAgICAg ICAgICB0b2tlbiA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiArICAgICAgICAgICAgaWYgdG9r ZW4gaW4gW1ZmclN5bnRheFBhcnNlci5DYXRlbmF0ZV06DQo+IA0KPiAgICAgICAgICAgICAgICAg IHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDI2MjANCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2 MjUNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi52ZnJFeHByZXNzaW9uQ2F0ZW5hdGUoRXhw SW5mbykNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gLQ0KPiANCj4gLSAgICAg ICAgICAgIGVsaWYgbGFfID09IDI6DQo+IA0KPiArICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBb VmZyU3ludGF4UGFyc2VyLk1hdGNoXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRl ck91dGVyQWx0KGxvY2FsY3R4LCAyKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjYyMQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjYyNg0KPiANCj4g ICAgICAgICAgICAgICAgICBzZWxmLnZmckV4cHJlc3Npb25NYXRjaChFeHBJbmZvKQ0KPiANCj4g ICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgZWxpZiBs YV8gPT0gMzoNCj4gDQo+ICsgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJz ZXIuTWF0Y2gyXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxv Y2FsY3R4LCAzKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjYyMg0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjYyNw0KPiANCj4gICAgICAgICAgICAg ICAgICBzZWxmLnZmckV4cHJlc3Npb25NYXRjaDIoRXhwSW5mbykNCj4gDQo+ICAgICAgICAgICAg ICAgICAgcGFzcw0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgIGVsaWYgbGFfID09IDQ6DQo+ IA0KPiArICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJl bl06DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwg NCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2MjMNCj4gDQo+ICsgICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2MjgNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2Vs Zi52ZnJFeHByZXNzaW9uUGFyZW4oRXhwSW5mbykNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFz cw0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgIGVsaWYgbGFfID09IDU6DQo+IA0KPiArICAg ICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLkR1cCwgVmZyU3ludGF4UGFy c2VyLlZhckVxVmFsLA0KPiBWZnJTeW50YXhQYXJzZXIuSWRFcVZhbCwgVmZyU3ludGF4UGFyc2Vy LklkRXFJZCwgVmZyU3ludGF4UGFyc2VyLklkRXFWYWxMaXN0LA0KPiBWZnJTeW50YXhQYXJzZXIu UXVlc3Rpb25SZWYsIFZmclN5bnRheFBhcnNlci5SdWxlUmVmLA0KPiBWZnJTeW50YXhQYXJzZXIu U3RyaW5nUmVmLCBWZnJTeW50YXhQYXJzZXIuUHVzaFRoaXMsIFZmclN5bnRheFBhcnNlci5TZWN1 cml0eSwNCj4gVmZyU3ludGF4UGFyc2VyLkdldF06DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNl bGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDI2MjQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2MjkN Cj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi52ZnJFeHByZXNzaW9uQnVpbGRJbkZ1bmN0aW9u KEV4cEluZm8pDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+IC0NCj4gDQo+IC0g ICAgICAgICAgICBlbGlmIGxhXyA9PSA2Og0KPiANCj4gKyAgICAgICAgICAgIGVsaWYgdG9rZW4g aW4gW1ZmclN5bnRheFBhcnNlci5UcnVlU3ltYm9sLA0KPiBWZnJTeW50YXhQYXJzZXIuRmFsc2VT eW1ib2wsIFZmclN5bnRheFBhcnNlci5PbmUsIFZmclN5bnRheFBhcnNlci5PbmVzLA0KPiBWZnJT eW50YXhQYXJzZXIuWmVybywgVmZyU3ludGF4UGFyc2VyLlVuZGVmaW5lZCwgVmZyU3ludGF4UGFy c2VyLlZlcnNpb24sDQo+IFZmclN5bnRheFBhcnNlci5OdW1iZXJdOg0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDYpDQo+IA0KPiAtICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyNjI1DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAyNjMwDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYudmZyRXhwcmVzc2lvbkNvbnN0 YW50KEV4cEluZm8pDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+IC0NCj4gDQo+ IC0gICAgICAgICAgICBlbGlmIGxhXyA9PSA3Og0KPiANCj4gKyAgICAgICAgICAgIGVsaWYgdG9r ZW4gaW4gW1ZmclN5bnRheFBhcnNlci5MZW5ndGgsIFZmclN5bnRheFBhcnNlci5TZXQsDQo+IFZm clN5bnRheFBhcnNlci5CaXRXaXNlTm90LCBWZnJTeW50YXhQYXJzZXIuQm9vbFZhbCwNCj4gVmZy U3ludGF4UGFyc2VyLlN0cmluZ1ZhbCwgVmZyU3ludGF4UGFyc2VyLlVuSW50VmFsLCBWZnJTeW50 YXhQYXJzZXIuVG9VcHBlciwNCj4gVmZyU3ludGF4UGFyc2VyLlRvTG93ZXIsIFZmclN5bnRheFBh cnNlci5RdWVzdGlvblJlZlZhbCwNCj4gVmZyU3ludGF4UGFyc2VyLlN0cmluZ1JlZlZhbF06DQo+ IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgNykNCj4g DQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2MjYNCj4gDQo+ICsgICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDI2MzENCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi52ZnJF eHByZXNzaW9uVW5hcnlPcChFeHBJbmZvKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+ IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgZWxpZiBsYV8gPT0gODoNCj4gDQo+ICsgICAgICAg ICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuQ29uZCwgVmZyU3ludGF4UGFyc2Vy LkZpbmQsDQo+IFZmclN5bnRheFBhcnNlci5NaWQsIFZmclN5bnRheFBhcnNlci5Ub2ssIFZmclN5 bnRheFBhcnNlci5TcGFuXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVy QWx0KGxvY2FsY3R4LCA4KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjYy Nw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjYzMg0KPiANCj4gICAgICAg ICAgICAgICAgICBzZWxmLnZmckV4cHJlc3Npb25UZXJuYXJ5T3AoRXhwSW5mbykNCj4gDQo+ICAg ICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgIGVsaWYgbGFf ID09IDk6DQo+IA0KPiArICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2Vy Lk1hcF06DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0 eCwgOSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2MjgNCj4gDQo+ICsg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2MzMNCj4gDQo+ICAgICAgICAgICAgICAgICAg c2VsZi52ZnJFeHByZXNzaW9uTWFwKEV4cEluZm8pDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBh c3MNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICBlbGlmIGxhXyA9PSAxMDoNCj4gDQo+ICsg ICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuTk9UXToNCj4gDQo+ICAg ICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxMCkNCj4gDQo+IC0g ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2MjkNCj4gDQo+ICsgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDI2MzQNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuTk9UKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjYz MA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjYzNQ0KPiANCj4gICAgICAg ICAgICAgICAgICBzZWxmLmF0b21UZXJtKEV4cEluZm8pDQo+IA0KPiAgICAgICAgICAgICAgICAg IHBhc3MNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICBlbGlmIGxhXyA9PSAxMToNCj4gDQo+ IC0gICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxMSkNCj4gDQo+ IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2MzENCj4gDQo+IC0gICAgICAgICAgICAg ICAgc2VsZi52ZnJFeHByZXNzaW9uTWF0Y2gyKEV4cEluZm8pDQo+IA0KPiAtICAgICAgICAgICAg ICAgIHBhc3MNCj4gDQo+IC0NCj4gDQo+ICsgICAgICAgICAgICBlbHNlOg0KPiANCj4gKyAgICAg ICAgICAgICAgICByYWlzZSBOb1ZpYWJsZUFsdEV4Y2VwdGlvbihzZWxmKQ0KPiANCj4gDQo+IA0K PiAgICAgICAgICBleGNlcHQgUmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAgICAg ICAgICAgICAgbG9jYWxjdHguZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC0xNzQwMiw3ICsxNzQw MCw3IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICAgICAg c3VwZXIoKS5fX2luaXRfXyhwYXJlbnQsIGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAg ICAgc2VsZi5wYXJzZXIgPSBwYXJzZXINCj4gDQo+ICAgICAgICAgICAgICBzZWxmLkV4cEluZm8g PSBOb25lDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5DT2JqID0gTm9uZQ0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuTm9kZXMgPSBbXQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuRXhwSW5mbyA9 IEV4cEluZm8NCj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVmIENhdGVuYXRlKHNlbGYpOg0KPiAN Cj4gQEAgLTE3NDM5LDIwICsxNzQzNywyMCBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJz ZXIgKToNCj4gICAgICBkZWYgdmZyRXhwcmVzc2lvbkNhdGVuYXRlKHNlbGYsIEV4cEluZm8pOg0K PiANCj4gDQo+IA0KPiAgICAgICAgICBsb2NhbGN0eCA9IFZmclN5bnRheFBhcnNlci5WZnJFeHBy ZXNzaW9uQ2F0ZW5hdGVDb250ZXh0KHNlbGYsIHNlbGYuX2N0eCwNCj4gc2VsZi5zdGF0ZSwgRXhw SW5mbykNCj4gDQo+IC0gICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAzMjQsIHNlbGYu UlVMRV92ZnJFeHByZXNzaW9uQ2F0ZW5hdGUpDQo+IA0KPiArICAgICAgICBzZWxmLmVudGVyUnVs ZShsb2NhbGN0eCwgMzI2LCBzZWxmLlJVTEVfdmZyRXhwcmVzc2lvbkNhdGVuYXRlKQ0KPiANCj4g ICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2Nh bGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjYzNA0KPiANCj4gKyAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjM4DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRj aChWZnJTeW50YXhQYXJzZXIuQ2F0ZW5hdGUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDI2MzUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjYzOQ0KPiANCj4gICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+IC0g ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjYzNg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYudmZy U3RhdGVtZW50RXhwcmVzc2lvblN1YigpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDI2MzcNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjY0MA0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYudmZyU3RhdGVtZW50RXhwcmVzc2lvblN1Yihsb2NhbGN0eC5Ob2RlcykNCj4g DQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjY0MQ0KPiANCj4gICAgICAgICAgICAgIHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyNjM4DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNz aW9uU3ViKCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjYzOQ0KPiANCj4gKyAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjQyDQo+IA0KPiArICAgICAgICAgICAgc2VsZi52ZnJT dGF0ZW1lbnRFeHByZXNzaW9uU3ViKGxvY2FsY3R4Lk5vZGVzKQ0KPiANCj4gKyAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAyNjQzDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuQ2xvc2VQYXJlbikNCj4gDQo+ICAgICAgICAgIGV4Y2VwdCBSZWNvZ25pdGlvbkV4 Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5leGNlcHRpb24gPSBy ZQ0KPiANCj4gQEAgLTE3NDY5LDcgKzE3NDY3LDcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICgg UGFyc2VyICk6DQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwgaW52b2tp bmdTdGF0ZSkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0KPiANCj4g ICAgICAgICAgICAgIHNlbGYuRXhwSW5mbyA9IE5vbmUNCj4gDQo+IC0gICAgICAgICAgICBzZWxm Lk1PYmogPSBOb25lDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2RlcyA9IFtdDQo+IA0KPiAg ICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0gRXhwSW5mbw0KPiANCj4gDQo+IA0KPiAgICAgICAg ICBkZWYgTWF0Y2goc2VsZik6DQo+IA0KPiBAQCAtMTc1MDYsMjAgKzE3NTA0LDIwIEBAIGNsYXNz IFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgIGRlZiB2ZnJFeHByZXNzaW9uTWF0 Y2goc2VsZiwgRXhwSW5mbyk6DQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGxvY2FsY3R4ID0gVmZy U3ludGF4UGFyc2VyLlZmckV4cHJlc3Npb25NYXRjaENvbnRleHQoc2VsZiwgc2VsZi5fY3R4LA0K PiBzZWxmLnN0YXRlLCBFeHBJbmZvKQ0KPiANCj4gLSAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9j YWxjdHgsIDMyNiwgc2VsZi5SVUxFX3ZmckV4cHJlc3Npb25NYXRjaCkNCj4gDQo+ICsgICAgICAg IHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAzMjgsIHNlbGYuUlVMRV92ZnJFeHByZXNzaW9uTWF0 Y2gpDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91 dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjQx DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2NDUNCj4gDQo+ICAgICAgICAgICAg ICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5NYXRjaCkNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLnN0YXRlID0gMjY0Mg0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjQ2DQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3BlblBhcmVuKQ0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjQzDQo+IA0KPiAtICAgICAgICAgICAg c2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViKCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LnN0YXRlID0gMjY0NA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjQ3DQo+IA0K PiArICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViKGxvY2FsY3R4Lk5v ZGVzKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjQ4DQo+IA0KPiAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDI2NDUNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVu dEV4cHJlc3Npb25TdWIoKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjQ2DQo+ IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2NDkNCj4gDQo+ICsgICAgICAgICAgICBz ZWxmLnZmclN0YXRlbWVudEV4cHJlc3Npb25TdWIobG9jYWxjdHguTm9kZXMpDQo+IA0KPiArICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2NTANCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNo KFZmclN5bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0KPiANCj4gICAgICAgICAgZXhjZXB0IFJlY29n bml0aW9uRXhjZXB0aW9uIGFzIHJlOg0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LmV4Y2Vw dGlvbiA9IHJlDQo+IA0KPiBAQCAtMTc1MzYsNyArMTc1MzQsNyBAQCBjbGFzcyBWZnJTeW50YXhQ YXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50 LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2Vy DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0gTm9uZQ0KPiANCj4gLSAgICAgICAg ICAgIHNlbGYuTTJPYmogPSBOb25lDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2RlcyA9IFtd DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0gRXhwSW5mbw0KPiANCj4gDQo+IA0K PiAgICAgICAgICBkZWYgTWF0Y2gyKHNlbGYpOg0KPiANCj4gQEAgLTE3NTgwLDI0ICsxNzU3OCwy NCBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICBkZWYgdmZyRXhw cmVzc2lvbk1hdGNoMihzZWxmLCBFeHBJbmZvKToNCj4gDQo+IA0KPiANCj4gICAgICAgICAgbG9j YWxjdHggPSBWZnJTeW50YXhQYXJzZXIuVmZyRXhwcmVzc2lvbk1hdGNoMkNvbnRleHQoc2VsZiwg c2VsZi5fY3R4LA0KPiBzZWxmLnN0YXRlLCBFeHBJbmZvKQ0KPiANCj4gLSAgICAgICAgc2VsZi5l bnRlclJ1bGUobG9jYWxjdHgsIDMyOCwgc2VsZi5SVUxFX3ZmckV4cHJlc3Npb25NYXRjaDIpDQo+ IA0KPiArICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMzMwLCBzZWxmLlJVTEVfdmZy RXhwcmVzc2lvbk1hdGNoMikNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAg ICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDI2NDgNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjY1Mg0KPiAN Cj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk1hdGNoMikNCj4gDQo+ IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjY0OQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyNjUzDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJz ZXIuT3BlblBhcmVuKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjUwDQo+IA0K PiAtICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViKCkNCj4gDQo+IC0g ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjY1MQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAyNjU0DQo+IA0KPiArICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9u U3ViKGxvY2FsY3R4Lk5vZGVzKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjU1 DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2NTINCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLnZmclN0YXRlbWVudEV4cHJlc3Npb25TdWIoKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyNjUzDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2NTYNCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudEV4cHJlc3Npb25TdWIobG9jYWxjdHguTm9k ZXMpDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2NTcNCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IC0gICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjY1NA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjU4 DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5ndWlkRGVmaW5pdGlvbigpDQo+IA0KPiAtICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDI2NTUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjY1OQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3Nl UGFyZW4pDQo+IA0KPiAgICAgICAgICBleGNlcHQgUmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6 DQo+IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHguZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC0x NzYxNCw2ICsxNzYxMiw3IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAg ICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhwYXJlbnQsIGludm9raW5nU3RhdGUpDQo+IA0K PiAgICAgICAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJzZXINCj4gDQo+ICAgICAgICAgICAgICBz ZWxmLkV4cEluZm8gPSBOb25lDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2RlcyA9IFtdDQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0gRXhwSW5mbw0KPiANCj4gDQo+IA0KPiAg ICAgICAgICBkZWYgT3BlblBhcmVuKHNlbGYpOg0KPiANCj4gQEAgLTE3NjQxLDE0ICsxNzY0MCwx NCBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICBkZWYgdmZyRXhw cmVzc2lvblBhcmVuKHNlbGYsIEV4cEluZm8pOg0KPiANCj4gDQo+IA0KPiAgICAgICAgICBsb2Nh bGN0eCA9IFZmclN5bnRheFBhcnNlci5WZnJFeHByZXNzaW9uUGFyZW5Db250ZXh0KHNlbGYsIHNl bGYuX2N0eCwNCj4gc2VsZi5zdGF0ZSwgRXhwSW5mbykNCj4gDQo+IC0gICAgICAgIHNlbGYuZW50 ZXJSdWxlKGxvY2FsY3R4LCAzMzAsIHNlbGYuUlVMRV92ZnJFeHByZXNzaW9uUGFyZW4pDQo+IA0K PiArICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMzMyLCBzZWxmLlJVTEVfdmZyRXhw cmVzc2lvblBhcmVuKQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNl bGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0 YXRlID0gMjY1Nw0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjYxDQo+IA0KPiAg ICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3BlblBhcmVuKQ0KPiANCj4g LSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjU4DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi52 ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViKCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjY1OQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjYyDQo+IA0KPiArICAg ICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViKGxvY2FsY3R4Lk5vZGVzKQ0K PiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjYzDQo+IA0KPiAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ2xvc2VQYXJlbikNCj4gDQo+ICAgICAgICAgIGV4 Y2VwdCBSZWNvZ25pdGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAgICAgICAgICBsb2Nh bGN0eC5leGNlcHRpb24gPSByZQ0KPiANCj4gQEAgLTE3NjY1LDYgKzE3NjY0LDcgQEAgY2xhc3Mg VmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5p dF9fKHBhcmVudCwgaW52b2tpbmdTdGF0ZSkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNl ciA9IHBhcnNlcg0KPiANCj4gICAgICAgICAgICAgIHNlbGYuRXhwSW5mbyA9IE5vbmUNCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLk5vZGUgPSBOb25lDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5F eHBJbmZvID0gRXhwSW5mbw0KPiANCj4gDQo+IA0KPiAgICAgICAgICBkZWYgZHVwRXhwKHNlbGYp Og0KPiANCj4gQEAgLTE3NzI2LDY0ICsxNzcyNiw2NCBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIg KCBQYXJzZXIgKToNCj4gICAgICBkZWYgdmZyRXhwcmVzc2lvbkJ1aWxkSW5GdW5jdGlvbihzZWxm LCBFeHBJbmZvKToNCj4gDQo+IA0KPiANCj4gICAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50YXhQ YXJzZXIuVmZyRXhwcmVzc2lvbkJ1aWxkSW5GdW5jdGlvbkNvbnRleHQoc2VsZiwNCj4gc2VsZi5f Y3R4LCBzZWxmLnN0YXRlLCBFeHBJbmZvKQ0KPiANCj4gLSAgICAgICAgc2VsZi5lbnRlclJ1bGUo bG9jYWxjdHgsIDMzMiwgc2VsZi5SVUxFX3ZmckV4cHJlc3Npb25CdWlsZEluRnVuY3Rpb24pDQo+ IA0KPiArICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMzM0LCBzZWxmLlJVTEVfdmZy RXhwcmVzc2lvbkJ1aWxkSW5GdW5jdGlvbikNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+IC0g ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjY3Mg0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAyNjc2DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYp DQo+IA0KPiAgICAgICAgICAgICAgdG9rZW4gPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAg ICAgICAgICAgIGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuRHVwXToNCj4gDQo+ICAgICAg ICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjY2MQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjY2NQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmR1cEV4cChFeHBJbmZv KQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0 b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLlZhckVxVmFsXToNCj4gDQo+ICAgICAgICAgICAgICAg ICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAyKQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjY2Mg0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjY2Ng0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnZhcmVxdmFsRXhwKEV4cEluZm8pDQo+ IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2Vu IGluIFtWZnJTeW50YXhQYXJzZXIuSWRFcVZhbF06DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNl bGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMykNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDI2NjMNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2NjcN Cj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5pZGVxdmFsRXhwKEV4cEluZm8pDQo+IA0KPiAg ICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtW ZnJTeW50YXhQYXJzZXIuSWRFcUlkXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRl ck91dGVyQWx0KGxvY2FsY3R4LCA0KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjY2NA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjY2OA0KPiANCj4g ICAgICAgICAgICAgICAgICBzZWxmLmlkZXFpZEV4cChFeHBJbmZvKQ0KPiANCj4gICAgICAgICAg ICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4 UGFyc2VyLklkRXFWYWxMaXN0XToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91 dGVyQWx0KGxvY2FsY3R4LCA1KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjY2NQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjY2OQ0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLmlkZXF2YWxsaXN0RXhwKEV4cEluZm8pDQo+IA0KPiAgICAgICAg ICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50 YXhQYXJzZXIuUXVlc3Rpb25SZWZdOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVy T3V0ZXJBbHQobG9jYWxjdHgsIDYpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyNjY2DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjcwDQo+IA0KPiAg ICAgICAgICAgICAgICAgIHNlbGYucXVlc3Rpb25yZWYxRXhwKEV4cEluZm8pDQo+IA0KPiAgICAg ICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJT eW50YXhQYXJzZXIuUnVsZVJlZl06DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJP dXRlckFsdChsb2NhbGN0eCwgNykNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDI2NjcNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2NzENCj4gDQo+ICAg ICAgICAgICAgICAgICAgc2VsZi5ydWxlcmVmRXhwKEV4cEluZm8pDQo+IA0KPiAgICAgICAgICAg ICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQ YXJzZXIuU3RyaW5nUmVmXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVy QWx0KGxvY2FsY3R4LCA4KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjY2 OA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjY3Mg0KPiANCj4gICAgICAg ICAgICAgICAgICBzZWxmLnN0cmluZ3JlZjFFeHAoRXhwSW5mbykNCj4gDQo+ICAgICAgICAgICAg ICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBh cnNlci5QdXNoVGhpc106DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFs dChsb2NhbGN0eCwgOSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2NjkN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2NzMNCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi5wdXNodGhpc0V4cChFeHBJbmZvKQ0KPiANCj4gICAgICAgICAgICAgICAg ICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2Vy LlNlY3VyaXR5XToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxv Y2FsY3R4LCAxMCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2NzANCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2NzQNCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi5zZWN1cml0eUV4cChFeHBJbmZvKQ0KPiANCj4gICAgICAgICAgICAgICAgICBw YXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLkdl dF06DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwg MTEpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjcxDQo+IA0KPiArICAg ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjc1DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNl bGYuZ2V0RXhwKEV4cEluZm8pDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAg ICAgICAgICAgICBlbHNlOg0KPiANCj4gQEAgLTE3ODA0LDcgKzE3ODA0LDcgQEAgY2xhc3MgVmZy U3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9f KHBhcmVudCwgaW52b2tpbmdTdGF0ZSkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNlciA9 IHBhcnNlcg0KPiANCj4gICAgICAgICAgICAgIHNlbGYuRXhwSW5mbyA9IE5vbmUNCj4gDQo+IC0g ICAgICAgICAgICBzZWxmLkRPYmogPSBOb25lDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2Rl ID0gSWZyVHJlZU5vZGUoRUZJX0lGUl9EVVBfT1ApDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5F eHBJbmZvID0gRXhwSW5mbw0KPiANCj4gDQo+IA0KPiAgICAgICAgICBkZWYgRHVwKHNlbGYpOg0K PiANCj4gQEAgLTE3ODI1LDEwICsxNzgyNSwxMCBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQ YXJzZXIgKToNCj4gICAgICBkZWYgZHVwRXhwKHNlbGYsIEV4cEluZm8pOg0KPiANCj4gDQo+IA0K PiAgICAgICAgICBsb2NhbGN0eCA9IFZmclN5bnRheFBhcnNlci5EdXBFeHBDb250ZXh0KHNlbGYs IHNlbGYuX2N0eCwgc2VsZi5zdGF0ZSwNCj4gRXhwSW5mbykNCj4gDQo+IC0gICAgICAgIHNlbGYu ZW50ZXJSdWxlKGxvY2FsY3R4LCAzMzQsIHNlbGYuUlVMRV9kdXBFeHApDQo+IA0KPiArICAgICAg ICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMzM2LCBzZWxmLlJVTEVfZHVwRXhwKQ0KPiANCj4g ICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2Nh bGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjY3NA0KPiANCj4gKyAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjc4DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRj aChWZnJTeW50YXhQYXJzZXIuRHVwKQ0KPiANCj4gICAgICAgICAgZXhjZXB0IFJlY29nbml0aW9u RXhjZXB0aW9uIGFzIHJlOg0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LmV4Y2VwdGlvbiA9 IHJlDQo+IA0KPiBAQCAtMTc4NDUsNiArMTc4NDUsOCBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIg KCBQYXJzZXIgKToNCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZv a2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0K PiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0gTm9uZQ0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuTm9kZSA9IE5vbmUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLlZOID0gTm9uZSAjIFRva2Vu DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0gRXhwSW5mbw0KPiANCj4gDQo+IA0K PiAgICAgICAgICBkZWYgVmFyRXFWYWwoc2VsZik6DQo+IA0KPiBAQCAtMTc4NTYsMTUgKzE3ODU4 LDE1IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICBkZWYg T3BlblBhcmVuKHNlbGYpOg0KPiANCj4gICAgICAgICAgICAgIHJldHVybiBzZWxmLmdldFRva2Vu KFZmclN5bnRheFBhcnNlci5PcGVuUGFyZW4sIDApDQo+IA0KPiANCj4gDQo+ICsgICAgICAgIGRl ZiBDbG9zZVBhcmVuKHNlbGYpOg0KPiANCj4gKyAgICAgICAgICAgIHJldHVybiBzZWxmLmdldFRv a2VuKFZmclN5bnRheFBhcnNlci5DbG9zZVBhcmVuLCAwKQ0KPiANCj4gKw0KPiANCj4gICAgICAg ICAgZGVmIE51bWJlcihzZWxmLCBpOmludD1Ob25lKToNCj4gDQo+ICAgICAgICAgICAgICBpZiBp IGlzIE5vbmU6DQo+IA0KPiAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmdldFRva2VucyhW ZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gICAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAg ICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmdldFRva2VuKFZmclN5bnRheFBhcnNlci5OdW1i ZXIsIGkpDQo+IA0KPiANCj4gDQo+IC0gICAgICAgIGRlZiBDbG9zZVBhcmVuKHNlbGYpOg0KPiAN Cj4gLSAgICAgICAgICAgIHJldHVybiBzZWxmLmdldFRva2VuKFZmclN5bnRheFBhcnNlci5DbG9z ZVBhcmVuLCAwKQ0KPiANCj4gLQ0KPiANCj4gICAgICAgICAgZGVmIEVxdWFsKHNlbGYpOg0KPiAN Cj4gICAgICAgICAgICAgIHJldHVybiBzZWxmLmdldFRva2VuKFZmclN5bnRheFBhcnNlci5FcXVh bCwgMCkNCj4gDQo+IA0KPiANCj4gQEAgLTE3ODk1LDUwICsxNzg5Nyw1MCBAQCBjbGFzcyBWZnJT eW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICBkZWYgdmFyZXF2YWxFeHAoc2VsZiwgRXhw SW5mbyk6DQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGxvY2FsY3R4ID0gVmZyU3ludGF4UGFyc2Vy LlZhcmVxdmFsRXhwQ29udGV4dChzZWxmLCBzZWxmLl9jdHgsIHNlbGYuc3RhdGUsDQo+IEV4cElu Zm8pDQo+IA0KPiAtICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMzM2LCBzZWxmLlJV TEVfdmFyZXF2YWxFeHApDQo+IA0KPiArICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwg MzM4LCBzZWxmLlJVTEVfdmFyZXF2YWxFeHApDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAg ICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyNjc2DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDI2ODANCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5WYXJF cVZhbCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjY3Nw0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyNjgxDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuVmFyKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjc4 DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2ODINCj4gDQo+ICAgICAgICAgICAg ICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuUGFyZW4pDQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDI2NzkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2ODAN Cj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjY4Mw0KPiANCj4gKyAgICAgICAgICAg IGxvY2FsY3R4LlZOID0gc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjg0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuQ2xvc2VQYXJlbikNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LnN0YXRlID0gMjY5MQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjk1DQo+IA0K PiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAg ICAgICAgdG9rZW4gPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIHRv a2VuIGluIFtWZnJTeW50YXhQYXJzZXIuRXF1YWxdOg0KPiANCj4gLSAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMjY4MQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjY4 NQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5FcXVh bCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2ODINCj4gDQo+ICsgICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2ODYNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gICAgICAgICAgICAgICAgICBw YXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLkxl c3NFcXVhbF06DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjgzDQo+IA0K PiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjg3DQo+IA0KPiAgICAgICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkxlc3NFcXVhbCkNCj4gDQo+IC0gICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2ODQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDI2ODgNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuTnVtYmVyKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAg ICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLkxlc3NdOg0KPiANCj4gLSAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjY4NQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjY4OQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5MZXNzKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjY4Ng0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjY5MA0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAgICAgICAg ICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50 YXhQYXJzZXIuR3JlYXRlckVxdWFsXToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDI2ODcNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2OTENCj4gDQo+ ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuR3JlYXRlckVxdWFs KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjY4OA0KPiANCj4gKyAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjY5Mg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBh c3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuR3Jl YXRlcl06DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjg5DQo+IA0KPiAr ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjkzDQo+IA0KPiAgICAgICAgICAgICAgICAg IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkdyZWF0ZXIpDQo+IA0KPiAtICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAyNjkwDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyNjk0DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy Lk51bWJlcikNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAg IGVsc2U6DQo+IA0KPiBAQCAtMTc5NTksNiArMTc5NjEsNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJz ZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBp bnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0gTm9uZQ0KPiANCj4gKyAgICAgICAgICAg IHNlbGYuTm9kZSA9IE5vbmUNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLkkgPSBOb25lICMgVG9r ZW4NCj4gDQo+ICAgICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBFeHBJbmZvDQo+IA0KPiANCj4g DQo+IEBAIC0xODAwMiw0NCArMTgwMDUsNDQgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFy c2VyICk6DQo+ICAgICAgZGVmIGlkZXF2YWxFeHAoc2VsZiwgRXhwSW5mbyk6DQo+IA0KPiANCj4g DQo+ICAgICAgICAgIGxvY2FsY3R4ID0gVmZyU3ludGF4UGFyc2VyLklkZXF2YWxFeHBDb250ZXh0 KHNlbGYsIHNlbGYuX2N0eCwgc2VsZi5zdGF0ZSwNCj4gRXhwSW5mbykNCj4gDQo+IC0gICAgICAg IHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAzMzgsIHNlbGYuUlVMRV9pZGVxdmFsRXhwKQ0KPiAN Cj4gKyAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgsIDM0MCwgc2VsZi5SVUxFX2lkZXF2 YWxFeHApDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRl ck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAy NjkzDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2OTcNCj4gDQo+ICAgICAgICAg ICAgICBsb2NhbGN0eC5JID0gc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuSWRFcVZhbCkNCj4g DQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjY5NA0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAyNjk4DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi52ZnJRdWVzdGlvbkRhdGFG aWVsZE5hbWUoKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzA1DQo+IA0KPiAr ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3MDkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9l cnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICB0b2tlbiA9IHNlbGYuX2lu cHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNl ci5FcXVhbF06DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjk1DQo+IA0K PiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNjk5DQo+IA0KPiAgICAgICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkVxdWFsKQ0KPiANCj4gLSAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMjY5Ng0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjcwMA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5OdW1iZXIpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAg ICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuTGVzc0VxdWFsXToNCj4gDQo+IC0gICAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI2OTcNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDI3MDENCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuTGVzc0VxdWFsKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjY5OA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjcwMg0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAg ICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtW ZnJTeW50YXhQYXJzZXIuTGVzc106DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyNjk5DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzAzDQo+IA0KPiAg ICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkxlc3MpDQo+IA0KPiAt ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzAwDQo+IA0KPiArICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAyNzA0DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4g ICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5HcmVhdGVyRXF1YWxd Og0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjcwMQ0KPiANCj4gKyAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjcwNQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5HcmVhdGVyRXF1YWwpDQo+IA0KPiAtICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAyNzAyDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyNzA2DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy Lk51bWJlcikNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAg IGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5HcmVhdGVyXToNCj4gDQo+IC0gICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3MDMNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDI3MDcNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuR3JlYXRlcikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3MDQN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3MDgNCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0KPiANCj4gICAgICAg ICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxzZToNCj4gDQo+IEBAIC0xODA2 MCw2ICsxODA2Myw3IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAg ICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhwYXJlbnQsIGludm9raW5nU3RhdGUpDQo+IA0KPiAg ICAgICAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJzZXINCj4gDQo+ICAgICAgICAgICAgICBzZWxm LkV4cEluZm8gPSBOb25lDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2RlID0gTm9uZQ0KPiAN Cj4gICAgICAgICAgICAgIHNlbGYuSSA9IE5vbmUgIyBUb2tlbg0KPiANCj4gICAgICAgICAgICAg IHNlbGYuRSA9IE5vbmUgIyBUb2tlbg0KPiANCj4gICAgICAgICAgICAgIHNlbGYuTEUgPSBOb25l ICMgVG9rZW4NCj4gDQo+IEBAIC0xODEwOCw0NCArMTgxMTIsNDQgQEAgY2xhc3MgVmZyU3ludGF4 UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgZGVmIGlkZXFpZEV4cChzZWxmLCBFeHBJbmZvKToN Cj4gDQo+IA0KPiANCj4gICAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50YXhQYXJzZXIuSWRlcWlk RXhwQ29udGV4dChzZWxmLCBzZWxmLl9jdHgsIHNlbGYuc3RhdGUsDQo+IEV4cEluZm8pDQo+IA0K PiAtICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMzQwLCBzZWxmLlJVTEVfaWRlcWlk RXhwKQ0KPiANCj4gKyAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgsIDM0Miwgc2VsZi5S VUxFX2lkZXFpZEV4cCkNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBz ZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDI3MDcNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjcxMQ0KPiANCj4g ICAgICAgICAgICAgIGxvY2FsY3R4LkkgPSBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5JZEVx SWQpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3MDgNCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMjcxMg0KPiANCj4gICAgICAgICAgICAgIHNlbGYudmZyUXVlc3Rp b25EYXRhRmllbGROYW1lKCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjcxOQ0K PiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzIzDQo+IA0KPiAgICAgICAgICAgICAg c2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgdG9rZW4gPSBz ZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIHRva2VuIGluIFtWZnJTeW50 YXhQYXJzZXIuRXF1YWxdOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjcw OQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjcxMw0KPiANCj4gICAgICAg ICAgICAgICAgICBsb2NhbGN0eC5FID0gc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRXF1YWwp DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzEwDQo+IA0KPiArICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzE0DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYu dmZyUXVlc3Rpb25EYXRhRmllbGROYW1lKCkNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0K PiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5MZXNzRXF1 YWxdOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjcxMQ0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjcxNQ0KPiANCj4gICAgICAgICAgICAgICAgICBs b2NhbGN0eC5MRSA9IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkxlc3NFcXVhbCkNCj4gDQo+ IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3MTINCj4gDQo+ICsgICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDI3MTYNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi52ZnJRdWVz dGlvbkRhdGFGaWVsZE5hbWUoKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAg ICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLkxlc3NdOg0KPiANCj4g LSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjcxMw0KPiANCj4gKyAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjcxNw0KPiANCj4gICAgICAgICAgICAgICAgICBsb2NhbGN0eC5MID0g c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTGVzcykNCj4gDQo+IC0gICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDI3MTQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3 MTgNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi52ZnJRdWVzdGlvbkRhdGFGaWVsZE5hbWUo KQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0 b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLkdyZWF0ZXJFcXVhbF06DQo+IA0KPiAtICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyNzE1DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAyNzE5DQo+IA0KPiAgICAgICAgICAgICAgICAgIGxvY2FsY3R4LkJFID0gc2VsZi5tYXRj aChWZnJTeW50YXhQYXJzZXIuR3JlYXRlckVxdWFsKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMjcxNg0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjcy MA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnZmclF1ZXN0aW9uRGF0YUZpZWxkTmFtZSgp DQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRv a2VuIGluIFtWZnJTeW50YXhQYXJzZXIuR3JlYXRlcl06DQo+IA0KPiAtICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAyNzE3DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAy NzIxDQo+IA0KPiAgICAgICAgICAgICAgICAgIGxvY2FsY3R4LkIgPSBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5HcmVhdGVyKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjcxOA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjcyMg0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLnZmclF1ZXN0aW9uRGF0YUZpZWxkTmFtZSgpDQo+IA0KPiAgICAg ICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbHNlOg0KPiANCj4gQEAgLTE4 MTY2LDYgKzE4MTcwLDcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAg ICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwgaW52b2tpbmdTdGF0ZSkNCj4gDQo+ ICAgICAgICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0KPiANCj4gICAgICAgICAgICAgIHNl bGYuRXhwSW5mbyA9IE5vbmUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5vZGUgPSBOb25lDQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0gRXhwSW5mbw0KPiANCj4gDQo+IA0KPiAg ICAgICAgICBkZWYgSWRFcVZhbExpc3Qoc2VsZik6DQo+IA0KPiBAQCAtMTgxOTksMjMgKzE4MjA0 LDIzIEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgIGRlZiBpZGVx dmFsbGlzdEV4cChzZWxmLCBFeHBJbmZvKToNCj4gDQo+IA0KPiANCj4gICAgICAgICAgbG9jYWxj dHggPSBWZnJTeW50YXhQYXJzZXIuSWRlcXZhbGxpc3RFeHBDb250ZXh0KHNlbGYsIHNlbGYuX2N0 eCwgc2VsZi5zdGF0ZSwNCj4gRXhwSW5mbykNCj4gDQo+IC0gICAgICAgIHNlbGYuZW50ZXJSdWxl KGxvY2FsY3R4LCAzNDIsIHNlbGYuUlVMRV9pZGVxdmFsbGlzdEV4cCkNCj4gDQo+ICsgICAgICAg IHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAzNDQsIHNlbGYuUlVMRV9pZGVxdmFsbGlzdEV4cCkN Cj4gDQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUNCj4gDQo+ICAgICAgICAg IHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEp DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3MjENCj4gDQo+ICsgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjcyNQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3lu dGF4UGFyc2VyLklkRXFWYWxMaXN0KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAy NzIyDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3MjYNCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLnZmclF1ZXN0aW9uRGF0YUZpZWxkTmFtZSgpDQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDI3MjMNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjcyNw0K PiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkVxdWFsKQ0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzI1DQo+IA0KPiArICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDI3MjkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMo c2VsZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4g ICAgICAgICAgICAgIHdoaWxlIFRydWU6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAyNzI0DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzI4DQo+IA0K PiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4g DQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3MjcNCj4gDQo+ICsgICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDI3MzENCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5fZXJy SGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lu cHV0LkxBKDEpDQo+IA0KPiAgICAgICAgICAgICAgICAgIGlmIG5vdCAoX2xhPT1WZnJTeW50YXhQ YXJzZXIuTnVtYmVyKToNCj4gDQo+IEBAIC0xODMxMCwzOSArMTgzMTUsMzkgQEAgY2xhc3MgVmZy U3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgZGVmIHZmclF1ZXN0aW9uRGF0YUZpZWxk TmFtZShzZWxmKToNCj4gDQo+IA0KPiANCj4gICAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50YXhQ YXJzZXIuVmZyUXVlc3Rpb25EYXRhRmllbGROYW1lQ29udGV4dChzZWxmLA0KPiBzZWxmLl9jdHgs IHNlbGYuc3RhdGUpDQo+IA0KPiAtICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMzQ0 LCBzZWxmLlJVTEVfdmZyUXVlc3Rpb25EYXRhRmllbGROYW1lKQ0KPiANCj4gKyAgICAgICAgc2Vs Zi5lbnRlclJ1bGUobG9jYWxjdHgsIDM0Niwgc2VsZi5SVUxFX3ZmclF1ZXN0aW9uRGF0YUZpZWxk TmFtZSkNCj4gDQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUNCj4gDQo+ICAg ICAgICAgIHRyeToNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjc0MQ0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzQ1DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5f ZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAtICAgICAgICAgICAgbGFfID0gc2VsZi5faW50 ZXJwLmFkYXB0aXZlUHJlZGljdChzZWxmLl9pbnB1dCwyMjUsc2VsZi5fY3R4KQ0KPiANCj4gKyAg ICAgICAgICAgIGxhXyA9IHNlbGYuX2ludGVycC5hZGFwdGl2ZVByZWRpY3Qoc2VsZi5faW5wdXQs MjI2LHNlbGYuX2N0eCkNCj4gDQo+ICAgICAgICAgICAgICBpZiBsYV8gPT0gMToNCj4gDQo+ICAg ICAgICAgICAgICAgICAgbG9jYWxjdHggPQ0KPiBWZnJTeW50YXhQYXJzZXIuVmZyUXVlc3Rpb25E YXRhRmllbGROYW1lUnVsZTFDb250ZXh0KHNlbGYsIGxvY2FsY3R4KQ0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyNzI5DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAyNzMzDQo+IA0KPiAgICAgICAgICAgICAgICAgIGxvY2FsY3R4LlNOMSA9IHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLlN0cmluZ0lkZW50aWZpZXIpDQo+IA0KPiAtICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAyNzMwDQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyNzM0DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2Vy Lk9wZW5CcmFja2V0KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjczMQ0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjczNQ0KPiANCj4gICAgICAgICAg ICAgICAgICBsb2NhbGN0eC5JID0gc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTnVtYmVyKQ0K PiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjczMg0KPiANCj4gKyAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjczNg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5DbG9zZUJyYWNrZXQpDQo+IA0KPiAgICAgICAgICAgICAgICAg IHBhc3MNCj4gDQo+IA0KPiANCj4gICAgICAgICAgICAgIGVsaWYgbGFfID09IDI6DQo+IA0KPiAg ICAgICAgICAgICAgICAgIGxvY2FsY3R4ID0NCj4gVmZyU3ludGF4UGFyc2VyLlZmclF1ZXN0aW9u RGF0YUZpZWxkTmFtZVJ1bGUyQ29udGV4dChzZWxmLCBsb2NhbGN0eCkNCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAyKQ0KPiANCj4gLSAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjczMw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMjczNw0KPiANCj4gICAgICAgICAgICAgICAgICBsb2NhbGN0eC5TTjIgPSBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5TdHJpbmdJZGVudGlmaWVyKQ0KPiANCj4gLSAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMjczOA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjc0Mg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2Vs ZikNCj4gDQo+ICAgICAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ ICAgICAgICAgICAgICAgICAgd2hpbGUgX2xhPT1WZnJTeW50YXhQYXJzZXIuRG90Og0KPiANCj4g LSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3MzQNCj4gDQo+ICsgICAgICAgICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzM4DQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBz ZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Eb3QpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjczNQ0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDI3MzkNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXJyYXlOYW1lKCkNCj4g DQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzQwDQo+IA0KPiArICAgICAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjc0NA0KPiANCj4gICAgICAgICAgICAgICAgICAg ICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgICAgICAg ICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gDQo+IA0KPiBAQCAtMTgzOTQsMjEgKzE4 Mzk5LDIxIEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgIGRlZiBh cnJheU5hbWUoc2VsZik6DQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGxvY2FsY3R4ID0gVmZyU3lu dGF4UGFyc2VyLkFycmF5TmFtZUNvbnRleHQoc2VsZiwgc2VsZi5fY3R4LCBzZWxmLnN0YXRlKQ0K PiANCj4gLSAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgsIDM0Niwgc2VsZi5SVUxFX2Fy cmF5TmFtZSkNCj4gDQo+ICsgICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAzNDgsIHNl bGYuUlVMRV9hcnJheU5hbWUpDQo+IA0KPiAgICAgICAgICBzZWxmLl9sYSA9IDAgIyBUb2tlbiB0 eXBlDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91 dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzQz DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nSWRl bnRpZmllcikNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjc0Nw0KPiANCj4gKyAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlN0cmluZ0lkZW50aWZpZXIpDQo+ IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3NTENCj4gDQo+ICAgICAgICAgICAgICBz ZWxmLl9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxm Ll9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIF9sYT09VmZyU3ludGF4UGFyc2Vy Lk9wZW5CcmFja2V0Og0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjc0NA0K PiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjc0OA0KPiANCj4gICAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuQnJhY2tldCkNCj4gDQo+IC0g ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3NDUNCj4gDQo+ICsgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDI3NDkNCj4gDQo+ICAgICAgICAgICAgICAgICAgbG9jYWxjdHguTiA9IHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDI3NDYNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3 NTANCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ2xv c2VCcmFja2V0KQ0KPiANCj4gDQo+IA0KPiANCj4gDQo+IEBAIC0xODQyNyw2ICsxODQzMiw3IEBA IGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICAgICAgc3VwZXIo KS5fX2luaXRfXyhwYXJlbnQsIGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5wYXJzZXIgPSBwYXJzZXINCj4gDQo+ICAgICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBOb25l DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2RlID0gSWZyVHJlZU5vZGUoRUZJX0lGUl9RVUVT VElPTl9SRUYxX09QKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuRXhwSW5mbyA9IEV4cEluZm8N Cj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVmIFF1ZXN0aW9uUmVmKHNlbGYpOg0KPiANCj4gQEAg LTE4NDU5LDIyICsxODQ2NSwyMiBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToN Cj4gICAgICBkZWYgcXVlc3Rpb25yZWYxRXhwKHNlbGYsIEV4cEluZm8pOg0KPiANCj4gDQo+IA0K PiAgICAgICAgICBsb2NhbGN0eCA9IFZmclN5bnRheFBhcnNlci5RdWVzdGlvbnJlZjFFeHBDb250 ZXh0KHNlbGYsIHNlbGYuX2N0eCwNCj4gc2VsZi5zdGF0ZSwgRXhwSW5mbykNCj4gDQo+IC0gICAg ICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAzNDgsIHNlbGYuUlVMRV9xdWVzdGlvbnJlZjFF eHApDQo+IA0KPiArICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMzUwLCBzZWxmLlJV TEVfcXVlc3Rpb25yZWYxRXhwKQ0KPiANCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4g dHlwZQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJP dXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjc0 OQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzUzDQo+IA0KPiAgICAgICAgICAg ICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuUXVlc3Rpb25SZWYpDQo+IA0KPiAtICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDI3NTANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0g Mjc1NA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5Q YXJlbikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjc1MQ0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyNzU1DQo+IA0KPiAgICAgICAgICAgICAgX2xhID0gc2VsZi5f aW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBpZiBub3QoX2xhPT1WZnJTeW50YXhQYXJz ZXIuTnVtYmVyIG9yDQo+IF9sYT09VmZyU3ludGF4UGFyc2VyLlN0cmluZ0lkZW50aWZpZXIpOg0K PiANCj4gICAgICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnJlY292ZXJJbmxpbmUoc2Vs ZikNCj4gDQo+ICAgICAgICAgICAgICBlbHNlOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm Ll9lcnJIYW5kbGVyLnJlcG9ydE1hdGNoKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNl bGYuY29uc3VtZSgpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3NTINCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjc1Ng0KPiANCj4gICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3NlUGFyZW4pDQo+IA0KPiAgICAgICAgICBleGNlcHQg UmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHgu ZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC0xODQ5MSw2ICsxODQ5Nyw3IEBAIGNsYXNzIFZmclN5 bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhw YXJlbnQsIGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5wYXJzZXIgPSBw YXJzZXINCj4gDQo+ICAgICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBOb25lDQo+IA0KPiArICAg ICAgICAgICAgc2VsZi5Ob2RlID0gSWZyVHJlZU5vZGUoRUZJX0lGUl9SVUxFX1JFRl9PUCkNCj4g DQo+ICAgICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBFeHBJbmZvDQo+IA0KPiANCj4gDQo+ICAg ICAgICAgIGRlZiBSdWxlUmVmKHNlbGYpOg0KPiANCj4gQEAgLTE4NTIwLDE2ICsxODUyNywxNiBA QCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICBkZWYgcnVsZXJlZkV4 cChzZWxmLCBFeHBJbmZvKToNCj4gDQo+IA0KPiANCj4gICAgICAgICAgbG9jYWxjdHggPSBWZnJT eW50YXhQYXJzZXIuUnVsZXJlZkV4cENvbnRleHQoc2VsZiwgc2VsZi5fY3R4LCBzZWxmLnN0YXRl LA0KPiBFeHBJbmZvKQ0KPiANCj4gLSAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgsIDM1 MCwgc2VsZi5SVUxFX3J1bGVyZWZFeHApDQo+IA0KPiArICAgICAgICBzZWxmLmVudGVyUnVsZShs b2NhbGN0eCwgMzUyLCBzZWxmLlJVTEVfcnVsZXJlZkV4cCkNCj4gDQo+ICAgICAgICAgIHRyeToN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0K PiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3NTQNCj4gDQo+ICsgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjc1OA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLlJ1bGVSZWYpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3NTUNCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjc1OQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LnN0YXRlID0gMjc1Ng0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzYwDQo+IA0K PiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU3RyaW5nSWRlbnRpZmll cikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjc1Nw0KPiANCj4gKyAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAyNzYxDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuQ2xvc2VQYXJlbikNCj4gDQo+ICAgICAgICAgIGV4Y2VwdCBSZWNvZ25pdGlv bkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5leGNlcHRpb24g PSByZQ0KPiANCj4gQEAgLTE4NTQ2LDYgKzE4NTUzLDcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2Vy ICggUGFyc2VyICk6DQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwgaW52 b2tpbmdTdGF0ZSkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0KPiAN Cj4gICAgICAgICAgICAgIHNlbGYuRXhwSW5mbyA9IE5vbmUNCj4gDQo+ICsgICAgICAgICAgICBz ZWxmLk5vZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX1NUUklOR19SRUYxX09QKQ0KPiANCj4gICAg ICAgICAgICAgIHNlbGYuRXhwSW5mbyA9IEV4cEluZm8NCj4gDQo+IA0KPiANCj4gICAgICAgICAg ZGVmIFN0cmluZ1JlZihzZWxmKToNCj4gDQo+IEBAIC0xODU4NCwzNCArMTg1OTIsMzQgQEAgY2xh c3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgZGVmIHN0cmluZ3JlZjFFeHAo c2VsZiwgRXhwSW5mbyk6DQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGxvY2FsY3R4ID0gVmZyU3lu dGF4UGFyc2VyLlN0cmluZ3JlZjFFeHBDb250ZXh0KHNlbGYsIHNlbGYuX2N0eCwgc2VsZi5zdGF0 ZSwNCj4gRXhwSW5mbykNCj4gDQo+IC0gICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAz NTIsIHNlbGYuUlVMRV9zdHJpbmdyZWYxRXhwKQ0KPiANCj4gKyAgICAgICAgc2VsZi5lbnRlclJ1 bGUobG9jYWxjdHgsIDM1NCwgc2VsZi5SVUxFX3N0cmluZ3JlZjFFeHApDQo+IA0KPiAgICAgICAg ICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAx KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzU5DQo+IA0KPiArICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDI3NjMNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5TdHJpbmdSZWYpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3 NjANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjc2NA0KPiANCj4gICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+IC0gICAgICAg ICAgICBzZWxmLnN0YXRlID0gMjc2Ng0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAy NzcwDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0K PiAgICAgICAgICAgICAgdG9rZW4gPSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAg ICAgIGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuU3RyaW5nVG9rZW5dOg0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjc2MQ0KPiANCj4gKyAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMjc2NQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5TdHJpbmdUb2tlbikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDI3NjINCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3NjYNCj4gDQo+ ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3BlblBhcmVuKQ0K PiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjc2Mw0KPiANCj4gKyAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjc2Nw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyNzY0DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzY4DQo+ IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3NlUGFy ZW4pDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlm IHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuTnVtYmVyXToNCj4gDQo+IC0gICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDI3NjUNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDI3NjkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu TnVtYmVyKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAg ZWxzZToNCj4gDQo+ICAgICAgICAgICAgICAgICAgcmFpc2UgTm9WaWFibGVBbHRFeGNlcHRpb24o c2VsZikNCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzY4DQo+IA0K PiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3NzINCj4gDQo+ICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0KPiANCj4gICAgICAgICAgZXhjZXB0 IFJlY29nbml0aW9uRXhjZXB0aW9uIGFzIHJlOg0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4 LmV4Y2VwdGlvbiA9IHJlDQo+IA0KPiBAQCAtMTg2MjgsNiArMTg2MzYsNyBAQCBjbGFzcyBWZnJT eW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18o cGFyZW50LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0g cGFyc2VyDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0gTm9uZQ0KPiANCj4gKyAg ICAgICAgICAgIHNlbGYuTm9kZSA9IElmclRyZWVOb2RlKEVGSV9JRlJfVEhJU19PUCkNCj4gDQo+ ICAgICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBFeHBJbmZvDQo+IA0KPiANCj4gDQo+ICAgICAg ICAgIGRlZiBQdXNoVGhpcyhzZWxmKToNCj4gDQo+IEBAIC0xODY0OCwxMCArMTg2NTcsMTAgQEAg Y2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgZGVmIHB1c2h0aGlzRXhw KHNlbGYsIEV4cEluZm8pOg0KPiANCj4gDQo+IA0KPiAgICAgICAgICBsb2NhbGN0eCA9IFZmclN5 bnRheFBhcnNlci5QdXNodGhpc0V4cENvbnRleHQoc2VsZiwgc2VsZi5fY3R4LCBzZWxmLnN0YXRl LA0KPiBFeHBJbmZvKQ0KPiANCj4gLSAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgsIDM1 NCwgc2VsZi5SVUxFX3B1c2h0aGlzRXhwKQ0KPiANCj4gKyAgICAgICAgc2VsZi5lbnRlclJ1bGUo bG9jYWxjdHgsIDM1Niwgc2VsZi5SVUxFX3B1c2h0aGlzRXhwKQ0KPiANCj4gICAgICAgICAgdHJ5 Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4g DQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjc3MA0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAyNzc0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuUHVzaFRoaXMpDQo+IA0KPiAgICAgICAgICBleGNlcHQgUmVjb2duaXRpb25FeGNlcHRp b24gYXMgcmU6DQo+IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHguZXhjZXB0aW9uID0gcmUNCj4g DQo+IEBAIC0xODY2OCw2ICsxODY3Nyw3IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNl ciApOg0KPiAgICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhwYXJlbnQsIGludm9raW5nU3Rh dGUpDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJzZXINCj4gDQo+ICAgICAg ICAgICAgICBzZWxmLkV4cEluZm8gPSBOb25lDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2Rl ID0gSWZyVHJlZU5vZGUoRUZJX0lGUl9TRUNVUklUWV9PUCkNCj4gDQo+ICAgICAgICAgICAgICBz ZWxmLkV4cEluZm8gPSBFeHBJbmZvDQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGRlZiBTZWN1cml0 eShzZWxmKToNCj4gDQo+IEBAIC0xODY5OCwxNiArMTg3MDgsMTYgQEAgY2xhc3MgVmZyU3ludGF4 UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgZGVmIHNlY3VyaXR5RXhwKHNlbGYsIEV4cEluZm8p Og0KPiANCj4gDQo+IA0KPiAgICAgICAgICBsb2NhbGN0eCA9IFZmclN5bnRheFBhcnNlci5TZWN1 cml0eUV4cENvbnRleHQoc2VsZiwgc2VsZi5fY3R4LCBzZWxmLnN0YXRlLA0KPiBFeHBJbmZvKQ0K PiANCj4gLSAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgsIDM1Niwgc2VsZi5SVUxFX3Nl Y3VyaXR5RXhwKQ0KPiANCj4gKyAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgsIDM1OCwg c2VsZi5SVUxFX3NlY3VyaXR5RXhwKQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAg ICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjc3Mg0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzc2 DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuU2VjdXJpdHkp DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3NzMNCj4gDQo+ICsgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjc3Nw0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3lu dGF4UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjc3 NA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzc4DQo+IA0KPiAgICAgICAgICAg ICAgc2VsZi5ndWlkRGVmaW5pdGlvbigpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDI3NzUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjc3OQ0KPiANCj4gICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3NlUGFyZW4pDQo+IA0KPiAgICAg ICAgICBleGNlcHQgUmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAgICAgICAgICAg ICAgbG9jYWxjdHguZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC0xODc1MiwxMSArMTg3NjIsMTEg QEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgZGVmIG51bWVyaWNW YXJTdG9yZVR5cGUoc2VsZik6DQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGxvY2FsY3R4ID0gVmZy U3ludGF4UGFyc2VyLk51bWVyaWNWYXJTdG9yZVR5cGVDb250ZXh0KHNlbGYsIHNlbGYuX2N0eCwN Cj4gc2VsZi5zdGF0ZSkNCj4gDQo+IC0gICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAz NTgsIHNlbGYuUlVMRV9udW1lcmljVmFyU3RvcmVUeXBlKQ0KPiANCj4gKyAgICAgICAgc2VsZi5l bnRlclJ1bGUobG9jYWxjdHgsIDM2MCwgc2VsZi5SVUxFX251bWVyaWNWYXJTdG9yZVR5cGUpDQo+ IA0KPiAgICAgICAgICBzZWxmLl9sYSA9IDAgIyBUb2tlbiB0eXBlDQo+IA0KPiAgICAgICAgICB0 cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzc3DQo+IA0KPiArICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDI3ODENCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5M QSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIG5vdCgoKCgoX2xhIC0gMjM3KSkgJiB+MHgzZikg PT0gMCBhbmQgKCgxIDw8IChfbGEgLSAyMzcpKSAmICgoMSA8PA0KPiAoVmZyU3ludGF4UGFyc2Vy Lk51bWVyaWNTaXplT25lIC0gMjM3KSkgfCAoMSA8PA0KPiAoVmZyU3ludGF4UGFyc2VyLk51bWVy aWNTaXplVHdvIC0gMjM3KSkgfCAoMSA8PA0KPiAoVmZyU3ludGF4UGFyc2VyLk51bWVyaWNTaXpl Rm91ciAtIDIzNykpIHwgKDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5OdW1lcmljU2l6ZUVpZ2h0 IC0gMjM3KSkpKSAhPSAwKSk6DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRs ZXIucmVjb3ZlcklubGluZShzZWxmKQ0KPiANCj4gQEAgLTE4Nzc5LDcgKzE4Nzg5LDcgQEAgY2xh c3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNl ciA9IHBhcnNlcg0KPiANCj4gICAgICAgICAgICAgIHNlbGYuRXhwSW5mbyA9IE5vbmUNCj4gDQo+ ICAgICAgICAgICAgICBzZWxmLkJhc2VJbmZvID0gRUZJX1ZBUlNUT1JFX0lORk8oKQ0KPiANCj4g LSAgICAgICAgICAgIHNlbGYuR09iaiA9IE5vbmUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5v ZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX0dFVF9PUCkNCj4gDQo+ICAgICAgICAgICAgICBzZWxm LkV4cEluZm8gPSBFeHBJbmZvDQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGRlZiBHZXQoc2VsZik6 DQo+IA0KPiBAQCAtMTg4MjAsMzEgKzE4ODMwLDMxIEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAo IFBhcnNlciApOg0KPiAgICAgIGRlZiBnZXRFeHAoc2VsZiwgRXhwSW5mbyk6DQo+IA0KPiANCj4g DQo+ICAgICAgICAgIGxvY2FsY3R4ID0gVmZyU3ludGF4UGFyc2VyLkdldEV4cENvbnRleHQoc2Vs Ziwgc2VsZi5fY3R4LCBzZWxmLnN0YXRlLA0KPiBFeHBJbmZvKQ0KPiANCj4gLSAgICAgICAgc2Vs Zi5lbnRlclJ1bGUobG9jYWxjdHgsIDM2MCwgc2VsZi5SVUxFX2dldEV4cCkNCj4gDQo+ICsgICAg ICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAzNjIsIHNlbGYuUlVMRV9nZXRFeHApDQo+IA0K PiAgICAgICAgICBzZWxmLl9sYSA9IDAgIyBUb2tlbiB0eXBlDQo+IA0KPiAgICAgICAgICB0cnk6 DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzc5DQo+IA0KPiArICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDI3ODMNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBh cnNlci5HZXQpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3ODANCj4gDQo+ICsg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjc4NA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0 YXRlID0gMjc4MQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzg1DQo+IA0KPiAg ICAgICAgICAgICAgc2VsZi52ZnJTdG9yYWdlVmFySWQobG9jYWxjdHguQmFzZUluZm8sIEZhbHNl KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzg2DQo+IA0KPiArICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDI3OTANCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVy LnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0K PiANCj4gICAgICAgICAgICAgIGlmIF9sYT09VmZyU3ludGF4UGFyc2VyLkJpdFdpc2VPcjoNCj4g DQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3ODINCj4gDQo+ICsgICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDI3ODYNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRj aChWZnJTeW50YXhQYXJzZXIuQml0V2lzZU9yKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjc4Mw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjc4Nw0K PiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5GTEFHUykN Cj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3ODQNCj4gDQo+ICsgICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3ODgNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuVF9fNSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDI3ODUNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3ODkNCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi5udW1lcmljVmFyU3RvcmVUeXBlKCkNCj4gDQo+IA0K PiANCj4gDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI3ODgNCj4gDQo+ICsgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjc5Mg0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLkNsb3NlUGFyZW4pDQo+IA0KPiAgICAgICAgICBleGNlcHQgUmVjb2du aXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHguZXhjZXB0 aW9uID0gcmUNCj4gDQo+IEBAIC0xODg2MSw2ICsxODg3MSw3IEBAIGNsYXNzIFZmclN5bnRheFBh cnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhwYXJlbnQs IGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJzZXIN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBOb25lDQo+IA0KPiArICAgICAgICAg ICAgc2VsZi5Ob2RlID0gTm9uZQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuRXhwSW5mbyA9IEV4 cEluZm8NCj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVmIFRydWVTeW1ib2woc2VsZik6DQo+IA0K PiBAQCAtMTg5MDIsMTEgKzE4OTEzLDExIEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNl ciApOg0KPiAgICAgIGRlZiB2ZnJFeHByZXNzaW9uQ29uc3RhbnQoc2VsZiwgRXhwSW5mbyk6DQo+ IA0KPiANCj4gDQo+ICAgICAgICAgIGxvY2FsY3R4ID0gVmZyU3ludGF4UGFyc2VyLlZmckV4cHJl c3Npb25Db25zdGFudENvbnRleHQoc2VsZiwgc2VsZi5fY3R4LA0KPiBzZWxmLnN0YXRlLCBFeHBJ bmZvKQ0KPiANCj4gLSAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgsIDM2Miwgc2VsZi5S VUxFX3ZmckV4cHJlc3Npb25Db25zdGFudCkNCj4gDQo+ICsgICAgICAgIHNlbGYuZW50ZXJSdWxl KGxvY2FsY3R4LCAzNjQsIHNlbGYuUlVMRV92ZnJFeHByZXNzaW9uQ29uc3RhbnQpDQo+IA0KPiAg ICAgICAgICBzZWxmLl9sYSA9IDAgIyBUb2tlbiB0eXBlDQo+IA0KPiAgICAgICAgICB0cnk6DQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4g LSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyNzkwDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDI3OTQNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5MQSgxKQ0K PiANCj4gICAgICAgICAgICAgIGlmIG5vdCgoKCgoX2xhIC0gMjA5KSkgJiB+MHgzZikgPT0gMCBh bmQgKCgxIDw8IChfbGEgLSAyMDkpKSAmICgoMSA8PA0KPiAoVmZyU3ludGF4UGFyc2VyLlRydWVT eW1ib2wgLSAyMDkpKSB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuRmFsc2VTeW1ib2wgLQ0KPiAy MDkpKSB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuT25lIC0gMjA5KSkgfCAoMSA8PCAoVmZyU3lu dGF4UGFyc2VyLk9uZXMgLSAyMDkpKQ0KPiB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuWmVybyAt IDIwOSkpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5VbmRlZmluZWQgLSAyMDkpKQ0KPiB8ICgx IDw8IChWZnJTeW50YXhQYXJzZXIuVmVyc2lvbiAtIDIwOSkpIHwgKDEgPDwgKFZmclN5bnRheFBh cnNlci5OdW1iZXIgLQ0KPiAyMDkpKSkpICE9IDApKToNCj4gDQo+ICAgICAgICAgICAgICAgICAg c2VsZi5fZXJySGFuZGxlci5yZWNvdmVySW5saW5lKHNlbGYpDQo+IA0KPiBAQCAtMTg5MjgsNiAr MTg5MzksNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAg ICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAg ICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5FeHBJ bmZvID0gTm9uZQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuTm9kZXMgPSBOb25lDQo+IA0KPiAg ICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0gRXhwSW5mbw0KPiANCj4gDQo+IA0KPiAgICAgICAg ICBkZWYgbGVuZ3RoRXhwKHNlbGYpOg0KPiANCj4gQEAgLTE4OTg1LDU5ICsxODk5Nyw1OSBAQCBj bGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICBkZWYgdmZyRXhwcmVzc2lv blVuYXJ5T3Aoc2VsZiwgRXhwSW5mbyk6DQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGxvY2FsY3R4 ID0gVmZyU3ludGF4UGFyc2VyLlZmckV4cHJlc3Npb25VbmFyeU9wQ29udGV4dChzZWxmLCBzZWxm Ll9jdHgsDQo+IHNlbGYuc3RhdGUsIEV4cEluZm8pDQo+IA0KPiAtICAgICAgICBzZWxmLmVudGVy UnVsZShsb2NhbGN0eCwgMzY0LCBzZWxmLlJVTEVfdmZyRXhwcmVzc2lvblVuYXJ5T3ApDQo+IA0K PiArICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMzY2LCBzZWxmLlJVTEVfdmZyRXhw cmVzc2lvblVuYXJ5T3ApDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDI4MDINCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjgwNg0K PiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhzZWxmKQ0KPiANCj4gICAg ICAgICAgICAgIHRva2VuID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBp ZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFyc2VyLkxlbmd0aF06DQo+IA0KPiAgICAgICAgICAgICAg ICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDI3OTINCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDI3OTYNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5sZW5ndGhFeHAoRXhwSW5mbykNCj4g DQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4g aW4gW1ZmclN5bnRheFBhcnNlci5CaXRXaXNlTm90XToNCj4gDQo+ICAgICAgICAgICAgICAgICAg c2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAyKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMjc5Mw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjc5 Nw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmJpdHdpc2Vub3RFeHAoRXhwSW5mbykNCj4g DQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4g aW4gW1ZmclN5bnRheFBhcnNlci5RdWVzdGlvblJlZlZhbF06DQo+IA0KPiAgICAgICAgICAgICAg ICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMykNCj4gDQo+IC0gICAgICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDI3OTQNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDI3OTgNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5xdWVzdGlvbjIzcmVmRXhwKEV4cElu Zm8pDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlm IHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuU3RyaW5nUmVmVmFsXToNCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCA0KQ0KPiANCj4gLSAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjc5NQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMjc5OQ0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnN0cmluZ3JlZjJFeHAoRXhw SW5mbykNCj4gDQo+ICAgICAgICAgICAgICAgICAgcGFzcw0KPiANCj4gICAgICAgICAgICAgIGVs aWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5Cb29sVmFsXToNCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCA1KQ0KPiANCj4gLSAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMjc5Ng0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjgwMA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnRvYm9vbEV4cChFeHBJbmZvKQ0K PiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tl biBpbiBbVmZyU3ludGF4UGFyc2VyLlN0cmluZ1ZhbF06DQo+IA0KPiAgICAgICAgICAgICAgICAg IHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgNikNCj4gDQo+IC0gICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDI3OTcNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4 MDENCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi50b3N0cmluZ0V4cChFeHBJbmZvKQ0KPiAN Cj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBp biBbVmZyU3ludGF4UGFyc2VyLlVuSW50VmFsXToNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2Vs Zi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCA3KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjc5OA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjgwMg0K PiANCj4gICAgICAgICAgICAgICAgICBzZWxmLnVuaW50RXhwKEV4cEluZm8pDQo+IA0KPiAgICAg ICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJT eW50YXhQYXJzZXIuVG9VcHBlcl06DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJP dXRlckFsdChsb2NhbGN0eCwgOCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDI3OTkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4MDMNCj4gDQo+ICAg ICAgICAgICAgICAgICAgc2VsZi50b3VwcGVyRXhwKEV4cEluZm8pDQo+IA0KPiAgICAgICAgICAg ICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQ YXJzZXIuVG9Mb3dlcl06DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFs dChsb2NhbGN0eCwgOSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4MDAN Cj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4MDQNCj4gDQo+ICAgICAgICAg ICAgICAgICAgc2VsZi50b2x3ZXJFeHAoRXhwSW5mbykNCj4gDQo+ICAgICAgICAgICAgICAgICAg cGFzcw0KPiANCj4gICAgICAgICAgICAgIGVsaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5T ZXRdOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgs IDEwKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjgwMQ0KPiANCj4gKyAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjgwNQ0KPiANCj4gICAgICAgICAgICAgICAgICBz ZWxmLnNldEV4cChFeHBJbmZvKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAg ICAgICAgICAgICAgZWxzZToNCj4gDQo+IEBAIC0xOTA1OCw3ICsxOTA3MCw3IEBAIGNsYXNzIFZm clN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRf XyhwYXJlbnQsIGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5wYXJzZXIg PSBwYXJzZXINCj4gDQo+ICAgICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBOb25lDQo+IA0KPiAt ICAgICAgICAgICAgc2VsZi5MT2JqID0gTm9uZQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuTm9k ZXMgPSBbXQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuRXhwSW5mbyA9IEV4cEluZm8NCj4gDQo+ IA0KPiANCj4gICAgICAgICAgZGVmIExlbmd0aChzZWxmKToNCj4gDQo+IEBAIC0xOTA4OSwxNiAr MTkxMDEsMTYgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgZGVm IGxlbmd0aEV4cChzZWxmLCBFeHBJbmZvKToNCj4gDQo+IA0KPiANCj4gICAgICAgICAgbG9jYWxj dHggPSBWZnJTeW50YXhQYXJzZXIuTGVuZ3RoRXhwQ29udGV4dChzZWxmLCBzZWxmLl9jdHgsIHNl bGYuc3RhdGUsDQo+IEV4cEluZm8pDQo+IA0KPiAtICAgICAgICBzZWxmLmVudGVyUnVsZShsb2Nh bGN0eCwgMzY2LCBzZWxmLlJVTEVfbGVuZ3RoRXhwKQ0KPiANCj4gKyAgICAgICAgc2VsZi5lbnRl clJ1bGUobG9jYWxjdHgsIDM2OCwgc2VsZi5SVUxFX2xlbmd0aEV4cCkNCj4gDQo+ICAgICAgICAg IHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEp DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4MDQNCj4gDQo+ICsgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjgwOA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3lu dGF4UGFyc2VyLkxlbmd0aCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjgwNQ0K PiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODA5DQo+IA0KPiAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3BlblBhcmVuKQ0KPiANCj4gLSAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAyODA2DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRF eHByZXNzaW9uU3ViKCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjgwNw0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODEwDQo+IA0KPiArICAgICAgICAgICAgc2Vs Zi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViKGxvY2FsY3R4Lk5vZGVzKQ0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyODExDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuQ2xvc2VQYXJlbikNCj4gDQo+ICAgICAgICAgIGV4Y2VwdCBSZWNvZ25p dGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5leGNlcHRp b24gPSByZQ0KPiANCj4gQEAgLTE5MTE1LDcgKzE5MTI3LDcgQEAgY2xhc3MgVmZyU3ludGF4UGFy c2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwg aW52b2tpbmdTdGF0ZSkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0K PiANCj4gICAgICAgICAgICAgIHNlbGYuRXhwSW5mbyA9IE5vbmUNCj4gDQo+IC0gICAgICAgICAg ICBzZWxmLkJXTk9iaiA9IE5vbmUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5vZGVzID0gW10N Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBFeHBJbmZvDQo+IA0KPiANCj4gDQo+ ICAgICAgICAgIGRlZiBCaXRXaXNlTm90KHNlbGYpOg0KPiANCj4gQEAgLTE5MTQ2LDE2ICsxOTE1 OCwxNiBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICBkZWYgYml0 d2lzZW5vdEV4cChzZWxmLCBFeHBJbmZvKToNCj4gDQo+IA0KPiANCj4gICAgICAgICAgbG9jYWxj dHggPSBWZnJTeW50YXhQYXJzZXIuQml0d2lzZW5vdEV4cENvbnRleHQoc2VsZiwgc2VsZi5fY3R4 LCBzZWxmLnN0YXRlLA0KPiBFeHBJbmZvKQ0KPiANCj4gLSAgICAgICAgc2VsZi5lbnRlclJ1bGUo bG9jYWxjdHgsIDM2OCwgc2VsZi5SVUxFX2JpdHdpc2Vub3RFeHApDQo+IA0KPiArICAgICAgICBz ZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMzcwLCBzZWxmLlJVTEVfYml0d2lzZW5vdEV4cCkNCj4g DQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQo bG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4MDkNCj4gDQo+ ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjgxMw0KPiANCj4gICAgICAgICAgICAgIHNlbGYu bWF0Y2goVmZyU3ludGF4UGFyc2VyLkJpdFdpc2VOb3QpDQo+IA0KPiAtICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDI4MTANCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjgxNA0KPiAN Cj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4g DQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjgxMQ0KPiANCj4gLSAgICAgICAgICAgIHNl bGYudmZyU3RhdGVtZW50RXhwcmVzc2lvblN1YigpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDI4MTINCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjgxNQ0KPiANCj4g KyAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50RXhwcmVzc2lvblN1Yihsb2NhbGN0eC5Ob2Rl cykNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjgxNg0KPiANCj4gICAgICAgICAg ICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3NlUGFyZW4pDQo+IA0KPiAgICAgICAg ICBleGNlcHQgUmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAgICAgICAgICAgICAg bG9jYWxjdHguZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC0xOTE3Miw2ICsxOTE4NCw3IEBAIGNs YXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICAgICAgc3VwZXIoKS5f X2luaXRfXyhwYXJlbnQsIGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5w YXJzZXIgPSBwYXJzZXINCj4gDQo+ICAgICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBOb25lDQo+ IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2RlcyA9IFtdDQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5FeHBJbmZvID0gRXhwSW5mbw0KPiANCj4gDQo+IA0KPiAgICAgICAgICBkZWYgUXVlc3Rpb25S ZWZWYWwoc2VsZik6DQo+IA0KPiBAQCAtMTkyMzAsNTEgKzE5MjQzLDUxIEBAIGNsYXNzIFZmclN5 bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgIGRlZiBxdWVzdGlvbjIzcmVmRXhwKHNlbGYs IEV4cEluZm8pOg0KPiANCj4gDQo+IA0KPiAgICAgICAgICBsb2NhbGN0eCA9IFZmclN5bnRheFBh cnNlci5RdWVzdGlvbjIzcmVmRXhwQ29udGV4dChzZWxmLCBzZWxmLl9jdHgsDQo+IHNlbGYuc3Rh dGUsIEV4cEluZm8pDQo+IA0KPiAtICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMzcw LCBzZWxmLlJVTEVfcXVlc3Rpb24yM3JlZkV4cCkNCj4gDQo+ICsgICAgICAgIHNlbGYuZW50ZXJS dWxlKGxvY2FsY3R4LCAzNzIsIHNlbGYuUlVMRV9xdWVzdGlvbjIzcmVmRXhwKQ0KPiANCj4gICAg ICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4gdHlwZQ0KPiANCj4gICAgICAgICAgdHJ5Og0KPiAN Cj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkNCj4gDQo+IC0g ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjgxNA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAyODE4DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIu UXVlc3Rpb25SZWZWYWwpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4MTUNCj4g DQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjgxOQ0KPiANCj4gICAgICAgICAgICAgIHNl bGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLnN0YXRlID0gMjgyMw0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODI3DQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAg ICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBpZiBf bGE9PVZmclN5bnRheFBhcnNlci5EZXZpY2VQYXRoOg0KPiANCj4gLSAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMjgxNg0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjgy MA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5EZXZp Y2VQYXRoKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjgxNw0KPiANCj4g KyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjgyMQ0KPiANCj4gICAgICAgICAgICAgICAg ICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjgxOA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g MjgyMg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5T dHJpbmdUb2tlbikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4MTkNCj4g DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4MjMNCj4gDQo+ICAgICAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3BlblBhcmVuKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjgyMA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjgyNA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5OdW1iZXIpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODIx DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODI1DQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3NlUGFyZW4pDQo+IA0KPiAt ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODIyDQo+IA0KPiArICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAyODI2DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gDQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLnN0YXRlID0gMjgzMA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODM0DQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAg ICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBpZiBf bGE9PVZmclN5bnRheFBhcnNlci5VdWlkOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMjgyNQ0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjgyOQ0KPiAN Cj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5VdWlkKQ0KPiAN Cj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjgyNg0KPiANCj4gKyAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMjgzMA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNo KFZmclN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjgyNw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjgzMQ0KPiANCj4g ICAgICAgICAgICAgICAgICBzZWxmLmd1aWREZWZpbml0aW9uKCkNCj4gDQo+IC0gICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDI4MjgNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDI4MzINCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJz ZXIuQ29tbWEpDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyODMyDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3Vi KCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjgzMw0KPiANCj4gKyAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAyODM2DQo+IA0KPiArICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1l bnRFeHByZXNzaW9uU3ViKGxvY2FsY3R4Lk5vZGVzKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyODM3DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJz ZXIuQ2xvc2VQYXJlbikNCj4gDQo+ICAgICAgICAgIGV4Y2VwdCBSZWNvZ25pdGlvbkV4Y2VwdGlv biBhcyByZToNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5leGNlcHRpb24gPSByZQ0KPiAN Cj4gQEAgLTE5MjkxLDcgKzE5MzA0LDcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2Vy ICk6DQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwgaW52b2tpbmdTdGF0 ZSkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0KPiANCj4gICAgICAg ICAgICAgIHNlbGYuRXhwSW5mbyA9IE5vbmUNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLlNSMk9i aiA9IE5vbmUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5vZGVzID0gW10NCj4gDQo+ICAgICAg ICAgICAgICBzZWxmLkV4cEluZm8gPSBFeHBJbmZvDQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGRl ZiBTdHJpbmdSZWZWYWwoc2VsZik6DQo+IA0KPiBAQCAtMTkzMjIsMTYgKzE5MzM1LDE2IEBAIGNs YXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgIGRlZiBzdHJpbmdyZWYyRXhw KHNlbGYsIEV4cEluZm8pOg0KPiANCj4gDQo+IA0KPiAgICAgICAgICBsb2NhbGN0eCA9IFZmclN5 bnRheFBhcnNlci5TdHJpbmdyZWYyRXhwQ29udGV4dChzZWxmLCBzZWxmLl9jdHgsIHNlbGYuc3Rh dGUsDQo+IEV4cEluZm8pDQo+IA0KPiAtICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwg MzcyLCBzZWxmLlJVTEVfc3RyaW5ncmVmMkV4cCkNCj4gDQo+ICsgICAgICAgIHNlbGYuZW50ZXJS dWxlKGxvY2FsY3R4LCAzNzQsIHNlbGYuUlVMRV9zdHJpbmdyZWYyRXhwKQ0KPiANCj4gICAgICAg ICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwg MSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjgzNQ0KPiANCj4gKyAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAyODM5DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuU3RyaW5nUmVmVmFsKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyODM2DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4NDANCj4gDQo+ICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuUGFyZW4pDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4MzcNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnZmclN0 YXRlbWVudEV4cHJlc3Npb25TdWIoKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAy ODM4DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4NDENCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLnZmclN0YXRlbWVudEV4cHJlc3Npb25TdWIobG9jYWxjdHguTm9kZXMpDQo+IA0K PiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4NDINCj4gDQo+ICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0KPiANCj4gICAgICAgICAgZXhjZXB0 IFJlY29nbml0aW9uRXhjZXB0aW9uIGFzIHJlOg0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4 LmV4Y2VwdGlvbiA9IHJlDQo+IA0KPiBAQCAtMTkzNDgsNyArMTkzNjEsNyBAQCBjbGFzcyBWZnJT eW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18o cGFyZW50LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0g cGFyc2VyDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0gTm9uZQ0KPiANCj4gLSAg ICAgICAgICAgIHNlbGYuVEJPYmogPSBOb25lDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2Rl cyA9IFtdDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0gRXhwSW5mbw0KPiANCj4g DQo+IA0KPiAgICAgICAgICBkZWYgQm9vbFZhbChzZWxmKToNCj4gDQo+IEBAIC0xOTM3OSwxNiAr MTkzOTIsMTYgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgZGVm IHRvYm9vbEV4cChzZWxmLCBFeHBJbmZvKToNCj4gDQo+IA0KPiANCj4gICAgICAgICAgbG9jYWxj dHggPSBWZnJTeW50YXhQYXJzZXIuVG9ib29sRXhwQ29udGV4dChzZWxmLCBzZWxmLl9jdHgsIHNl bGYuc3RhdGUsDQo+IEV4cEluZm8pDQo+IA0KPiAtICAgICAgICBzZWxmLmVudGVyUnVsZShsb2Nh bGN0eCwgMzc0LCBzZWxmLlJVTEVfdG9ib29sRXhwKQ0KPiANCj4gKyAgICAgICAgc2VsZi5lbnRl clJ1bGUobG9jYWxjdHgsIDM3Niwgc2VsZi5SVUxFX3RvYm9vbEV4cCkNCj4gDQo+ICAgICAgICAg IHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEp DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4NDANCj4gDQo+ICsgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjg0NA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3lu dGF4UGFyc2VyLkJvb2xWYWwpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4NDEN Cj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjg0NQ0KPiANCj4gICAgICAgICAgICAg IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+IC0gICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjg0Mg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50 RXhwcmVzc2lvblN1YigpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4NDMNCj4g DQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjg0Ng0KPiANCj4gKyAgICAgICAgICAgIHNl bGYudmZyU3RhdGVtZW50RXhwcmVzc2lvblN1Yihsb2NhbGN0eC5Ob2RlcykNCj4gDQo+ICsgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjg0Nw0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLkNsb3NlUGFyZW4pDQo+IA0KPiAgICAgICAgICBleGNlcHQgUmVjb2du aXRpb25FeGNlcHRpb24gYXMgcmU6DQo+IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHguZXhjZXB0 aW9uID0gcmUNCj4gDQo+IEBAIC0xOTQwNSw3ICsxOTQxOCw3IEBAIGNsYXNzIFZmclN5bnRheFBh cnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhwYXJlbnQs IGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJzZXIN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBOb25lDQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi5UU09iaiA9IE5vbmUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5vZGVzID0gW10N Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBFeHBJbmZvDQo+IA0KPiANCj4gDQo+ ICAgICAgICAgIGRlZiBTdHJpbmdWYWwoc2VsZik6DQo+IA0KPiBAQCAtMTk0NDIsMzEgKzE5NDU1 LDMxIEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgIGRlZiB0b3N0 cmluZ0V4cChzZWxmLCBFeHBJbmZvKToNCj4gDQo+IA0KPiANCj4gICAgICAgICAgbG9jYWxjdHgg PSBWZnJTeW50YXhQYXJzZXIuVG9zdHJpbmdFeHBDb250ZXh0KHNlbGYsIHNlbGYuX2N0eCwgc2Vs Zi5zdGF0ZSwNCj4gRXhwSW5mbykNCj4gDQo+IC0gICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2Fs Y3R4LCAzNzYsIHNlbGYuUlVMRV90b3N0cmluZ0V4cCkNCj4gDQo+ICsgICAgICAgIHNlbGYuZW50 ZXJSdWxlKGxvY2FsY3R4LCAzNzgsIHNlbGYuUlVMRV90b3N0cmluZ0V4cCkNCj4gDQo+ICAgICAg ICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4NDUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjg0OQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlN0 cmluZ1ZhbCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjg1MA0KPiANCj4gKyAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODU0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5fZXJy SGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgX2xhID0gc2VsZi5faW5wdXQu TEEoMSkNCj4gDQo+ICAgICAgICAgICAgICBpZiBfbGE9PVZmclN5bnRheFBhcnNlci5UX18xNDoN Cj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4NDYNCj4gDQo+ICsgICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4NTANCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuVF9fMTQpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYu c3RhdGUgPSAyODQ3DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODUxDQo+ IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzUpDQo+ IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODQ4DQo+IA0KPiArICAgICAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyODUyDQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLk51bWJlcikNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDI4NDkNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4NTMNCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+ IA0KPiANCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODUyDQo+IA0K PiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4NTYNCj4gDQo+ICAgICAgICAgICAgICBzZWxm Lm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuUGFyZW4pDQo+IA0KPiAtICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDI4NTMNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudEV4cHJl c3Npb25TdWIoKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODU0DQo+IA0KPiAr ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4NTcNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnZm clN0YXRlbWVudEV4cHJlc3Npb25TdWIobG9jYWxjdHguTm9kZXMpDQo+IA0KPiArICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDI4NTgNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0KPiANCj4gICAgICAgICAgZXhjZXB0IFJlY29nbml0aW9u RXhjZXB0aW9uIGFzIHJlOg0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LmV4Y2VwdGlvbiA9 IHJlDQo+IA0KPiBAQCAtMTk0ODMsNyArMTk0OTYsNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIg KCBQYXJzZXIgKToNCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZv a2luZ1N0YXRlKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0K PiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0gTm9uZQ0KPiANCj4gLSAgICAgICAgICAgIHNl bGYuVFVPYmogPSBOb25lDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2RlcyA9IFtdDQo+IA0K PiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0gRXhwSW5mbw0KPiANCj4gDQo+IA0KPiAgICAg ICAgICBkZWYgVW5JbnRWYWwoc2VsZik6DQo+IA0KPiBAQCAtMTk1MTQsMTYgKzE5NTI3LDE2IEBA IGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgIGRlZiB1bmludEV4cChz ZWxmLCBFeHBJbmZvKToNCj4gDQo+IA0KPiANCj4gICAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50 YXhQYXJzZXIuVW5pbnRFeHBDb250ZXh0KHNlbGYsIHNlbGYuX2N0eCwgc2VsZi5zdGF0ZSwNCj4g RXhwSW5mbykNCj4gDQo+IC0gICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAzNzgsIHNl bGYuUlVMRV91bmludEV4cCkNCj4gDQo+ICsgICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4 LCAzODAsIHNlbGYuUlVMRV91bmludEV4cCkNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAg ICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDI4NTYNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0g Mjg2MA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlVuSW50 VmFsKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODU3DQo+IA0KPiArICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDI4NjENCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5PcGVuUGFyZW4pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDI4NTgNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudEV4cHJlc3Npb25TdWIo KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODU5DQo+IA0KPiArICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDI4NjINCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVu dEV4cHJlc3Npb25TdWIobG9jYWxjdHguTm9kZXMpDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDI4NjMNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5DbG9zZVBhcmVuKQ0KPiANCj4gICAgICAgICAgZXhjZXB0IFJlY29nbml0aW9uRXhjZXB0aW9u IGFzIHJlOg0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LmV4Y2VwdGlvbiA9IHJlDQo+IA0K PiBAQCAtMTk1NDAsNyArMTk1NTMsNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIg KToNCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZva2luZ1N0YXRl KQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAgICAgICAg ICAgICAgc2VsZi5FeHBJbmZvID0gTm9uZQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuVFVPYmog PSBOb25lDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2RlcyA9IFtdDQo+IA0KPiAgICAgICAg ICAgICAgc2VsZi5FeHBJbmZvID0gRXhwSW5mbw0KPiANCj4gDQo+IA0KPiAgICAgICAgICBkZWYg VG9VcHBlcihzZWxmKToNCj4gDQo+IEBAIC0xOTU3MSwxNiArMTk1ODQsMTYgQEAgY2xhc3MgVmZy U3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgZGVmIHRvdXBwZXJFeHAoc2VsZiwgRXhw SW5mbyk6DQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGxvY2FsY3R4ID0gVmZyU3ludGF4UGFyc2Vy LlRvdXBwZXJFeHBDb250ZXh0KHNlbGYsIHNlbGYuX2N0eCwgc2VsZi5zdGF0ZSwNCj4gRXhwSW5m bykNCj4gDQo+IC0gICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAzODAsIHNlbGYuUlVM RV90b3VwcGVyRXhwKQ0KPiANCj4gKyAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgsIDM4 Miwgc2VsZi5SVUxFX3RvdXBwZXJFeHApDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAyODYxDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4 NjUNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Ub1VwcGVy KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODYyDQo+IA0KPiArICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDI4NjYNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5PcGVuUGFyZW4pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4 NjMNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudEV4cHJlc3Npb25TdWIoKQ0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODY0DQo+IA0KPiArICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDI4NjcNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudEV4 cHJlc3Npb25TdWIobG9jYWxjdHguTm9kZXMpDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0 ZSA9IDI4NjgNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5D bG9zZVBhcmVuKQ0KPiANCj4gICAgICAgICAgZXhjZXB0IFJlY29nbml0aW9uRXhjZXB0aW9uIGFz IHJlOg0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LmV4Y2VwdGlvbiA9IHJlDQo+IA0KPiBA QCAtMTk1OTcsNyArMTk2MTAsNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToN Cj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZva2luZ1N0YXRlKQ0K PiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAgICAgICAgICAg ICAgc2VsZi5FeHBJbmZvID0gTm9uZQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuVExPYmogPSBO b25lDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2RlcyA9IFtdDQo+IA0KPiAgICAgICAgICAg ICAgc2VsZi5FeHBJbmZvID0gRXhwSW5mbw0KPiANCj4gDQo+IA0KPiAgICAgICAgICBkZWYgVG9M b3dlcihzZWxmKToNCj4gDQo+IEBAIC0xOTYyOCwxNiArMTk2NDEsMTYgQEAgY2xhc3MgVmZyU3lu dGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgZGVmIHRvbHdlckV4cChzZWxmLCBFeHBJbmZv KToNCj4gDQo+IA0KPiANCj4gICAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50YXhQYXJzZXIuVG9s d2VyRXhwQ29udGV4dChzZWxmLCBzZWxmLl9jdHgsIHNlbGYuc3RhdGUsDQo+IEV4cEluZm8pDQo+ IA0KPiAtICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMzgyLCBzZWxmLlJVTEVfdG9s d2VyRXhwKQ0KPiANCj4gKyAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgsIDM4NCwgc2Vs Zi5SVUxFX3RvbHdlckV4cCkNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAg ICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2Vs Zi5zdGF0ZSA9IDI4NjYNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjg3MA0KPiAN Cj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRvTG93ZXIpDQo+IA0K PiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4NjcNCj4gDQo+ICsgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjg3MQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLk9wZW5QYXJlbikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjg2OA0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50RXhwcmVzc2lvblN1YigpDQo+IA0KPiAt ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4NjkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0 YXRlID0gMjg3Mg0KPiANCj4gKyAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50RXhwcmVzc2lv blN1Yihsb2NhbGN0eC5Ob2RlcykNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjg3 Mw0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNsb3NlUGFy ZW4pDQo+IA0KPiAgICAgICAgICBleGNlcHQgUmVjb2duaXRpb25FeGNlcHRpb24gYXMgcmU6DQo+ IA0KPiAgICAgICAgICAgICAgbG9jYWxjdHguZXhjZXB0aW9uID0gcmUNCj4gDQo+IEBAIC0xOTY1 NSw3ICsxOTY2OCw3IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAg ICAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJzZXINCj4gDQo+ICAgICAgICAgICAgICBzZWxmLkV4 cEluZm8gPSBOb25lDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5CYXNlSW5mbyA9IEVGSV9WQVJT VE9SRV9JTkZPKCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLlRTT2JqID0gTm9uZQ0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuTm9kZXMgPSBbXQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuRXhw SW5mbyA9IEV4cEluZm8NCj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVmIFNldChzZWxmKToNCj4g DQo+IEBAIC0xOTcwMywzNSArMTk3MTYsMzUgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFy c2VyICk6DQo+ICAgICAgZGVmIHNldEV4cChzZWxmLCBFeHBJbmZvKToNCj4gDQo+IA0KPiANCj4g ICAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50YXhQYXJzZXIuU2V0RXhwQ29udGV4dChzZWxmLCBz ZWxmLl9jdHgsIHNlbGYuc3RhdGUsIEV4cEluZm8pDQo+IA0KPiAtICAgICAgICBzZWxmLmVudGVy UnVsZShsb2NhbGN0eCwgMzg0LCBzZWxmLlJVTEVfc2V0RXhwKQ0KPiANCj4gKyAgICAgICAgc2Vs Zi5lbnRlclJ1bGUobG9jYWxjdHgsIDM4Niwgc2VsZi5SVUxFX3NldEV4cCkNCj4gDQo+ICAgICAg ICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4NzENCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjg3NQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlNl dCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjg3Mg0KPiANCj4gKyAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAyODc2DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJT eW50YXhQYXJzZXIuT3BlblBhcmVuKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAy ODczDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4NzcNCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLnZmclN0b3JhZ2VWYXJJZChsb2NhbGN0eC5CYXNlSW5mbywgRmFsc2UpDQo+IA0K PiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4NzgNCj4gDQo+ICsgICAgICAgICAgICBzZWxm LnN0YXRlID0gMjg4Mg0KPiANCj4gICAgICAgICAgICAgIHNlbGYuX2VyckhhbmRsZXIuc3luYyhz ZWxmKQ0KPiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAg ICAgICAgICAgICAgaWYgX2xhPT1WZnJTeW50YXhQYXJzZXIuQml0V2lzZU9yOg0KPiANCj4gLSAg ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjg3NA0KPiANCj4gKyAgICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMjg3OA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5 bnRheFBhcnNlci5CaXRXaXNlT3IpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyODc1DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODc5DQo+IA0KPiAg ICAgICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkZMQUdTKQ0KPiANCj4g LSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjg3Ng0KPiANCj4gKyAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjg4MA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZm clN5bnRheFBhcnNlci5UX181KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g Mjg3Nw0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjg4MQ0KPiANCj4gICAg ICAgICAgICAgICAgICBzZWxmLm51bWVyaWNWYXJTdG9yZVR5cGUoKQ0KPiANCj4gDQo+IA0KPiAN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjg4MA0KPiANCj4gKyAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAyODg0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4ODENCj4g DQo+IC0gICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudEV4cHJlc3Npb25TdWIoKQ0KPiANCj4g LSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODgyDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDI4ODUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudEV4cHJlc3Np b25TdWIobG9jYWxjdHguTm9kZXMpDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4 ODYNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5DbG9zZVBh cmVuKQ0KPiANCj4gICAgICAgICAgZXhjZXB0IFJlY29nbml0aW9uRXhjZXB0aW9uIGFzIHJlOg0K PiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LmV4Y2VwdGlvbiA9IHJlDQo+IA0KPiBAQCAtMTk3 NDgsNiArMTk3NjEsNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAg ICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZva2luZ1N0YXRlKQ0KPiANCj4g ICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5FeHBJbmZvID0gTm9uZQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuTm9kZXMgPSBOb25lDQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0gRXhwSW5mbw0KPiANCj4gDQo+IA0KPiAg ICAgICAgICBkZWYgY29uZGl0aW9uYWxFeHAoc2VsZik6DQo+IA0KPiBAQCAtMTk3ODUsMzQgKzE5 Nzk5LDM0IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgIGRlZiB2 ZnJFeHByZXNzaW9uVGVybmFyeU9wKHNlbGYsIEV4cEluZm8pOg0KPiANCj4gDQo+IA0KPiAgICAg ICAgICBsb2NhbGN0eCA9IFZmclN5bnRheFBhcnNlci5WZnJFeHByZXNzaW9uVGVybmFyeU9wQ29u dGV4dChzZWxmLCBzZWxmLl9jdHgsDQo+IHNlbGYuc3RhdGUsIEV4cEluZm8pDQo+IA0KPiAtICAg ICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMzg2LCBzZWxmLlJVTEVfdmZyRXhwcmVzc2lv blRlcm5hcnlPcCkNCj4gDQo+ICsgICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAzODgs IHNlbGYuUlVMRV92ZnJFeHByZXNzaW9uVGVybmFyeU9wKQ0KPiANCj4gICAgICAgICAgdHJ5Og0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODg5DQo+IA0KPiArICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDI4OTMNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJIYW5kbGVyLnN5 bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICB0b2tlbiA9IHNlbGYuX2lucHV0LkxBKDEpDQo+ IA0KPiAgICAgICAgICAgICAgaWYgdG9rZW4gaW4gW1ZmclN5bnRheFBhcnNlci5Db25kXToNCj4g DQo+ICAgICAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiAN Cj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjg4NA0KPiANCj4gKyAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMjg4OA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmNvbmRp dGlvbmFsRXhwKEV4cEluZm8pDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAg ICAgICAgICAgICBlbGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuRmluZF06DQo+IA0KPiAg ICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMikNCj4gDQo+IC0g ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4ODUNCj4gDQo+ICsgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDI4ODkNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5maW5kRXhwKEV4 cEluZm8pDQo+IA0KPiAgICAgICAgICAgICAgICAgIHBhc3MNCj4gDQo+ICAgICAgICAgICAgICBl bGlmIHRva2VuIGluIFtWZnJTeW50YXhQYXJzZXIuTWlkXToNCj4gDQo+ICAgICAgICAgICAgICAg ICAgc2VsZi5lbnRlck91dGVyQWx0KGxvY2FsY3R4LCAzKQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjg4Ng0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0g Mjg5MA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLm1pZEV4cChFeHBJbmZvKQ0KPiANCj4g ICAgICAgICAgICAgICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBb VmZyU3ludGF4UGFyc2VyLlRva106DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYuZW50ZXJP dXRlckFsdChsb2NhbGN0eCwgNCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDI4ODcNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4OTENCj4gDQo+ICAg ICAgICAgICAgICAgICAgc2VsZi50b2tlbkV4cChFeHBJbmZvKQ0KPiANCj4gICAgICAgICAgICAg ICAgICBwYXNzDQo+IA0KPiAgICAgICAgICAgICAgZWxpZiB0b2tlbiBpbiBbVmZyU3ludGF4UGFy c2VyLlNwYW5dOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9j YWxjdHgsIDUpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODg4DQo+IA0K PiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODkyDQo+IA0KPiAgICAgICAgICAgICAg ICAgIHNlbGYuc3BhbkV4cChFeHBJbmZvKQ0KPiANCj4gICAgICAgICAgICAgICAgICBwYXNzDQo+ IA0KPiAgICAgICAgICAgICAgZWxzZToNCj4gDQo+IEBAIC0xOTgzMyw3ICsxOTg0Nyw3IEBAIGNs YXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICAgICAgc3VwZXIoKS5f X2luaXRfXyhwYXJlbnQsIGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5w YXJzZXIgPSBwYXJzZXINCj4gDQo+ICAgICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBOb25lDQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5DT2JqID0gTm9uZQ0KPiANCj4gKyAgICAgICAgICAgIHNl bGYuTm9kZXMgPSBbXQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuRXhwSW5mbyA9IEV4cEluZm8N Cj4gDQo+IA0KPiANCj4gICAgICAgICAgZGVmIENvbmQoc2VsZik6DQo+IA0KPiBAQCAtMTk4NzAs MjQgKzE5ODg0LDI0IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAg IGRlZiBjb25kaXRpb25hbEV4cChzZWxmLCBFeHBJbmZvKToNCj4gDQo+IA0KPiANCj4gICAgICAg ICAgbG9jYWxjdHggPSBWZnJTeW50YXhQYXJzZXIuQ29uZGl0aW9uYWxFeHBDb250ZXh0KHNlbGYs IHNlbGYuX2N0eCwgc2VsZi5zdGF0ZSwNCj4gRXhwSW5mbykNCj4gDQo+IC0gICAgICAgIHNlbGYu ZW50ZXJSdWxlKGxvY2FsY3R4LCAzODgsIHNlbGYuUlVMRV9jb25kaXRpb25hbEV4cCkNCj4gDQo+ ICsgICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAzOTAsIHNlbGYuUlVMRV9jb25kaXRp b25hbEV4cCkNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVu dGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDI4OTENCj4gDQo+IC0gICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db25k KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODkyDQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3BlblBhcmVuKQ0KPiANCj4gLSAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAyODkzDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1l bnRFeHByZXNzaW9uU3ViKCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjg5NA0K PiANCj4gLSAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlRfXzE1KQ0KPiAN Cj4gICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODk1DQo+IA0KPiAtICAgICAgICAgICAgc2Vs Zi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViKCkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5Db25kKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyODk2DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29s b24pDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3BlblBh cmVuKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyODk3DQo+IA0KPiAtICAgICAg ICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViKCkNCj4gDQo+ICsgICAgICAgICAg ICBzZWxmLnZmclN0YXRlbWVudEV4cHJlc3Npb25TdWIobG9jYWxjdHguTm9kZXMpDQo+IA0KPiAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI4OTgNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5UX18xNSkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjg5OQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50RXhwcmVzc2lvblN1 Yihsb2NhbGN0eC5Ob2RlcykNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjkwMA0K PiANCj4gKyAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbG9uKQ0KPiAN Cj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTAxDQo+IA0KPiArICAgICAgICAgICAgc2Vs Zi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViKGxvY2FsY3R4Lk5vZGVzKQ0KPiANCj4gKyAgICAg ICAgICAgIHNlbGYuc3RhdGUgPSAyOTAyDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChW ZnJTeW50YXhQYXJzZXIuQ2xvc2VQYXJlbikNCj4gDQo+ICAgICAgICAgIGV4Y2VwdCBSZWNvZ25p dGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5leGNlcHRp b24gPSByZQ0KPiANCj4gQEAgLTE5OTA0LDcgKzE5OTE4LDcgQEAgY2xhc3MgVmZyU3ludGF4UGFy c2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwg aW52b2tpbmdTdGF0ZSkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0K PiANCj4gICAgICAgICAgICAgIHNlbGYuRXhwSW5mbyA9IE5vbmUNCj4gDQo+IC0gICAgICAgICAg ICBzZWxmLkZPYmogPSBOb25lDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5Ob2RlcyA9IFtdDQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0gRXhwSW5mbw0KPiANCj4gDQo+IA0KPiAg ICAgICAgICBkZWYgRmluZChzZWxmKToNCj4gDQo+IEBAIC0xOTk1Nyw0MSArMTk5NzEsNDEgQEAg Y2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgZGVmIGZpbmRFeHAoc2Vs ZiwgRXhwSW5mbyk6DQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGxvY2FsY3R4ID0gVmZyU3ludGF4 UGFyc2VyLkZpbmRFeHBDb250ZXh0KHNlbGYsIHNlbGYuX2N0eCwgc2VsZi5zdGF0ZSwNCj4gRXhw SW5mbykNCj4gDQo+IC0gICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCAzOTAsIHNlbGYu UlVMRV9maW5kRXhwKQ0KPiANCj4gKyAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgsIDM5 Miwgc2VsZi5SVUxFX2ZpbmRFeHApDQo+IA0KPiAgICAgICAgICBzZWxmLl9sYSA9IDAgIyBUb2tl biB0eXBlDQo+IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRl ck91dGVyQWx0KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAy OTAwDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5MDQNCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5GaW5kKQ0KPiANCj4gLSAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAyOTAxDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5MDUN Cj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuUGFyZW4p DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5MDINCj4gDQo+ICsgICAgICAgICAg ICBzZWxmLnN0YXRlID0gMjkwNg0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZmluZEZvcm1hdChF eHBJbmZvKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTA3DQo+IA0KPiArICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5MTENCj4gDQo+ICAgICAgICAgICAgICBzZWxmLl9lcnJI YW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICBfbGEgPSBzZWxmLl9pbnB1dC5M QSgxKQ0KPiANCj4gICAgICAgICAgICAgIHdoaWxlIF9sYT09VmZyU3ludGF4UGFyc2VyLkJpdFdp c2VPcjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5MDMNCj4gDQo+ICsg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5MDcNCj4gDQo+ICAgICAgICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQml0V2lzZU9yKQ0KPiANCj4gLSAgICAgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMjkwNA0KPiANCj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjkwOA0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLmZpbmRGb3JtYXQoRXhwSW5mbykN Cj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5MDkNCj4gDQo+ICsgICAgICAg ICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5MTMNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5f ZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgICAgIF9sYSA9IHNlbGYu X2lucHV0LkxBKDEpDQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjkx MA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTExDQo+IA0KPiAtICAgICAgICAgICAg c2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViKCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LnN0YXRlID0gMjkxMg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLkNvbW1hKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTEzDQo+IA0KPiAt ICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViKCkNCj4gDQo+ICAgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjkxNA0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2go VmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAy OTE1DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViKCkN Cj4gDQo+ICsgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudEV4cHJlc3Npb25TdWIobG9jYWxj dHguTm9kZXMpDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5MTYNCj4gDQo+ICsg ICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ICsgICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjkxNw0KPiANCj4gKyAgICAgICAgICAgIHNlbGYudmZyU3Rh dGVtZW50RXhwcmVzc2lvblN1Yihsb2NhbGN0eC5Ob2RlcykNCj4gDQo+ICsgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMjkxOA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLkNvbW1hKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTE5DQo+IA0K PiArICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViKGxvY2FsY3R4Lk5v ZGVzKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTIwDQo+IA0KPiAgICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ2xvc2VQYXJlbikNCj4gDQo+ICAgICAg ICAgIGV4Y2VwdCBSZWNvZ25pdGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAgICAgICAg ICBsb2NhbGN0eC5leGNlcHRpb24gPSByZQ0KPiANCj4gQEAgLTIwMDMyLDExICsyMDA0NiwxMSBA QCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICBkZWYgZmluZEZvcm1h dChzZWxmLCBFeHBJbmZvKToNCj4gDQo+IA0KPiANCj4gICAgICAgICAgbG9jYWxjdHggPSBWZnJT eW50YXhQYXJzZXIuRmluZEZvcm1hdENvbnRleHQoc2VsZiwgc2VsZi5fY3R4LCBzZWxmLnN0YXRl LA0KPiBFeHBJbmZvKQ0KPiANCj4gLSAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgsIDM5 Miwgc2VsZi5SVUxFX2ZpbmRGb3JtYXQpDQo+IA0KPiArICAgICAgICBzZWxmLmVudGVyUnVsZShs b2NhbGN0eCwgMzk0LCBzZWxmLlJVTEVfZmluZEZvcm1hdCkNCj4gDQo+ICAgICAgICAgIHNlbGYu X2xhID0gMCAjIFRva2VuIHR5cGUNCj4gDQo+ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9jYWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDI5MTgNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjkyMg0K PiANCj4gICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxBKDEpDQo+IA0KPiAgICAgICAg ICAgICAgaWYgbm90KF9sYT09VmZyU3ludGF4UGFyc2VyLkluc2Vuc2l0aXZlIG9yDQo+IF9sYT09 VmZyU3ludGF4UGFyc2VyLlNlbnNpdGl2ZSk6DQo+IA0KPiAgICAgICAgICAgICAgICAgIHNlbGYu X2VyckhhbmRsZXIucmVjb3ZlcklubGluZShzZWxmKQ0KPiANCj4gQEAgLTIwMDU4LDcgKzIwMDcy LDcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAgICAgICBz dXBlcigpLl9faW5pdF9fKHBhcmVudCwgaW52b2tpbmdTdGF0ZSkNCj4gDQo+ICAgICAgICAgICAg ICBzZWxmLnBhcnNlciA9IHBhcnNlcg0KPiANCj4gICAgICAgICAgICAgIHNlbGYuRXhwSW5mbyA9 IE5vbmUNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLk1PYmogPSBOb25lDQo+IA0KPiArICAgICAg ICAgICAgc2VsZi5Ob2RlcyA9IFtdDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5FeHBJbmZvID0g RXhwSW5mbw0KPiANCj4gDQo+IA0KPiAgICAgICAgICBkZWYgTWlkKHNlbGYpOg0KPiANCj4gQEAg LTIwMDk4LDI0ICsyMDExMiwyNCBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIgKToN Cj4gICAgICBkZWYgbWlkRXhwKHNlbGYsIEV4cEluZm8pOg0KPiANCj4gDQo+IA0KPiAgICAgICAg ICBsb2NhbGN0eCA9IFZmclN5bnRheFBhcnNlci5NaWRFeHBDb250ZXh0KHNlbGYsIHNlbGYuX2N0 eCwgc2VsZi5zdGF0ZSwNCj4gRXhwSW5mbykNCj4gDQo+IC0gICAgICAgIHNlbGYuZW50ZXJSdWxl KGxvY2FsY3R4LCAzOTQsIHNlbGYuUlVMRV9taWRFeHApDQo+IA0KPiArICAgICAgICBzZWxmLmVu dGVyUnVsZShsb2NhbGN0eCwgMzk2LCBzZWxmLlJVTEVfbWlkRXhwKQ0KPiANCj4gICAgICAgICAg dHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2NhbGN0eCwgMSkN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjkyMA0KPiANCj4gLSAgICAgICAgICAg IHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk1pZCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxm LnN0YXRlID0gMjkyMQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFy c2VyLk9wZW5QYXJlbikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjkyMg0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50RXhwcmVzc2lvblN1YigpDQo+IA0KPiAt ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5MjMNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjkyNA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50RXhwcmVzc2lvblN1 YigpDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuTWlkKQ0K PiANCj4gICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTI1DQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiArICAgICAgICAgICAgc2Vs Zi5tYXRjaChWZnJTeW50YXhQYXJzZXIuT3BlblBhcmVuKQ0KPiANCj4gICAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAyOTI2DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRFeHBy ZXNzaW9uU3ViKCkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudEV4cHJlc3Np b25TdWIobG9jYWxjdHguTm9kZXMpDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5 MjcNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkN Cj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjkyOA0KPiANCj4gKyAgICAgICAgICAg IHNlbGYudmZyU3RhdGVtZW50RXhwcmVzc2lvblN1Yihsb2NhbGN0eC5Ob2RlcykNCj4gDQo+ICsg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjkyOQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyOTMwDQo+IA0KPiArICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3Vi KGxvY2FsY3R4Lk5vZGVzKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTMxDQo+ IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ2xvc2VQYXJlbikN Cj4gDQo+ICAgICAgICAgIGV4Y2VwdCBSZWNvZ25pdGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ ICAgICAgICAgICAgICBsb2NhbGN0eC5leGNlcHRpb24gPSByZQ0KPiANCj4gQEAgLTIwMTMyLDcg KzIwMTQ2LDcgQEAgY2xhc3MgVmZyU3ludGF4UGFyc2VyICggUGFyc2VyICk6DQo+ICAgICAgICAg ICAgICBzdXBlcigpLl9faW5pdF9fKHBhcmVudCwgaW52b2tpbmdTdGF0ZSkNCj4gDQo+ICAgICAg ICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcg0KPiANCj4gICAgICAgICAgICAgIHNlbGYuRXhw SW5mbyA9IE5vbmUNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLlRPYmogPSBOb25lDQo+IA0KPiAr ICAgICAgICAgICAgc2VsZi5Ob2RlcyA9IFtdDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5FeHBJ bmZvID0gRXhwSW5mbw0KPiANCj4gDQo+IA0KPiAgICAgICAgICBkZWYgVG9rKHNlbGYpOg0KPiAN Cj4gQEAgLTIwMTcyLDI0ICsyMDE4NiwyNCBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJz ZXIgKToNCj4gICAgICBkZWYgdG9rZW5FeHAoc2VsZiwgRXhwSW5mbyk6DQo+IA0KPiANCj4gDQo+ ICAgICAgICAgIGxvY2FsY3R4ID0gVmZyU3ludGF4UGFyc2VyLlRva2VuRXhwQ29udGV4dChzZWxm LCBzZWxmLl9jdHgsIHNlbGYuc3RhdGUsDQo+IEV4cEluZm8pDQo+IA0KPiAtICAgICAgICBzZWxm LmVudGVyUnVsZShsb2NhbGN0eCwgMzk2LCBzZWxmLlJVTEVfdG9rZW5FeHApDQo+IA0KPiArICAg ICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgMzk4LCBzZWxmLlJVTEVfdG9rZW5FeHApDQo+ IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0 KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTI5DQo+IA0K PiAtICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuVG9rKQ0KPiANCj4gLSAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTMwDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5tYXRj aChWZnJTeW50YXhQYXJzZXIuT3BlblBhcmVuKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3Rh dGUgPSAyOTMxDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9u U3ViKCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjkzMg0KPiANCj4gLSAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gICAgICAgICAg ICAgIHNlbGYuc3RhdGUgPSAyOTMzDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1l bnRFeHByZXNzaW9uU3ViKCkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRh eFBhcnNlci5Ub2spDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5MzQNCj4gDQo+ IC0gICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+ICsg ICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuUGFyZW4pDQo+IA0KPiAg ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5MzUNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnZm clN0YXRlbWVudEV4cHJlc3Npb25TdWIoKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYudmZyU3Rh dGVtZW50RXhwcmVzc2lvblN1Yihsb2NhbGN0eC5Ob2RlcykNCj4gDQo+ICAgICAgICAgICAgICBz ZWxmLnN0YXRlID0gMjkzNg0KPiANCj4gKyAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4 UGFyc2VyLkNvbW1hKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTM3DQo+IA0K PiArICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViKGxvY2FsY3R4Lk5v ZGVzKQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTM4DQo+IA0KPiArICAgICAg ICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiArICAgICAgICAg ICAgc2VsZi5zdGF0ZSA9IDI5MzkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVu dEV4cHJlc3Npb25TdWIobG9jYWxjdHguTm9kZXMpDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5z dGF0ZSA9IDI5NDANCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNl ci5DbG9zZVBhcmVuKQ0KPiANCj4gICAgICAgICAgZXhjZXB0IFJlY29nbml0aW9uRXhjZXB0aW9u IGFzIHJlOg0KPiANCj4gICAgICAgICAgICAgIGxvY2FsY3R4LmV4Y2VwdGlvbiA9IHJlDQo+IA0K PiBAQCAtMjAyMDYsNyArMjAyMjAsNyBAQCBjbGFzcyBWZnJTeW50YXhQYXJzZXIgKCBQYXJzZXIg KToNCj4gICAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCBpbnZva2luZ1N0YXRl KQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyDQo+IA0KPiAgICAgICAg ICAgICAgc2VsZi5FeHBJbmZvID0gTm9uZQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuU09iaiA9 IE5vbmUNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLk5vZGVzID0gW10NCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLkV4cEluZm8gPSBFeHBJbmZvDQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGRlZiBT cGFuKHNlbGYpOg0KPiANCj4gQEAgLTIwMjYyLDQ1ICsyMDI3Niw0NSBAQCBjbGFzcyBWZnJTeW50 YXhQYXJzZXIgKCBQYXJzZXIgKToNCj4gICAgICBkZWYgc3BhbkV4cChzZWxmLCBFeHBJbmZvKToN Cj4gDQo+IA0KPiANCj4gICAgICAgICAgbG9jYWxjdHggPSBWZnJTeW50YXhQYXJzZXIuU3BhbkV4 cENvbnRleHQoc2VsZiwgc2VsZi5fY3R4LCBzZWxmLnN0YXRlLA0KPiBFeHBJbmZvKQ0KPiANCj4g LSAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgsIDM5OCwgc2VsZi5SVUxFX3NwYW5FeHAp DQo+IA0KPiArICAgICAgICBzZWxmLmVudGVyUnVsZShsb2NhbGN0eCwgNDAwLCBzZWxmLlJVTEVf c3BhbkV4cCkNCj4gDQo+ICAgICAgICAgIHNlbGYuX2xhID0gMCAjIFRva2VuIHR5cGUNCj4gDQo+ ICAgICAgICAgIHRyeToNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLmVudGVyT3V0ZXJBbHQobG9j YWxjdHgsIDEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5MzgNCj4gDQo+ICsg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjk0Mg0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0 Y2goVmZyU3ludGF4UGFyc2VyLlNwYW4pDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDI5MzkNCj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjk0Mw0KPiANCj4gICAgICAg ICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLk9wZW5QYXJlbikNCj4gDQo+IC0gICAg ICAgICAgICBzZWxmLnN0YXRlID0gMjk0MA0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUg PSAyOTQ0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuRkxB R1MpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5NDENCj4gDQo+ICsgICAgICAg ICAgICBzZWxmLnN0YXRlID0gMjk0NQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYubWF0Y2goVmZy U3ludGF4UGFyc2VyLlRfXzUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5NDIN Cj4gDQo+ICsgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjk0Ng0KPiANCj4gICAgICAgICAgICAg IHNlbGYuc3BhbkZsYWdzKCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjk0Nw0K PiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTUxDQo+IA0KPiAgICAgICAgICAgICAg c2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgX2xhID0gc2Vs Zi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICB3aGlsZSBfbGE9PVZmclN5bnRheFBh cnNlci5CaXRXaXNlT3I6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTQz DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTQ3DQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkJpdFdpc2VPcikNCj4gDQo+IC0g ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5NDQNCj4gDQo+ICsgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDI5NDgNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5zcGFuRmxhZ3Mo KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjk0OQ0KPiANCj4gKyAgICAg ICAgICAgICAgICBzZWxmLnN0YXRlID0gMjk1Mw0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxm Ll9lcnJIYW5kbGVyLnN5bmMoc2VsZikNCj4gDQo+ICAgICAgICAgICAgICAgICAgX2xhID0gc2Vs Zi5faW5wdXQuTEEoMSkNCj4gDQo+IA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAy OTUwDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQYXJzZXIuQ29tbWEp DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5NTENCj4gDQo+IC0gICAgICAgICAg ICBzZWxmLnZmclN0YXRlbWVudEV4cHJlc3Npb25TdWIoKQ0KPiANCj4gLSAgICAgICAgICAgIHNl bGYuc3RhdGUgPSAyOTUyDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50YXhQ YXJzZXIuQ29tbWEpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5NTMNCj4gDQo+ IC0gICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudEV4cHJlc3Npb25TdWIoKQ0KPiANCj4gICAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTU0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRj aChWZnJTeW50YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDI5NTUNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudEV4cHJlc3Npb25TdWIo KQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50RXhwcmVzc2lvblN1Yihsb2Nh bGN0eC5Ob2RlcykNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjk1Ng0KPiANCj4g KyAgICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLkNvbW1hKQ0KPiANCj4gKyAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTU3DQo+IA0KPiArICAgICAgICAgICAgc2VsZi52ZnJT dGF0ZW1lbnRFeHByZXNzaW9uU3ViKGxvY2FsY3R4Lk5vZGVzKQ0KPiANCj4gKyAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAyOTU4DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5tYXRjaChWZnJTeW50 YXhQYXJzZXIuQ29tbWEpDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5NTkNCj4g DQo+ICsgICAgICAgICAgICBzZWxmLnZmclN0YXRlbWVudEV4cHJlc3Npb25TdWIobG9jYWxjdHgu Tm9kZXMpDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5NjANCj4gDQo+ICAgICAg ICAgICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5DbG9zZVBhcmVuKQ0KPiANCj4gICAg ICAgICAgZXhjZXB0IFJlY29nbml0aW9uRXhjZXB0aW9uIGFzIHJlOg0KPiANCj4gICAgICAgICAg ICAgIGxvY2FsY3R4LmV4Y2VwdGlvbiA9IHJlDQo+IA0KPiBAQCAtMjAzNDIsMTEgKzIwMzU2LDEx IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgIGRlZiBzcGFuRmxh Z3Moc2VsZik6DQo+IA0KPiANCj4gDQo+ICAgICAgICAgIGxvY2FsY3R4ID0gVmZyU3ludGF4UGFy c2VyLlNwYW5GbGFnc0NvbnRleHQoc2VsZiwgc2VsZi5fY3R4LCBzZWxmLnN0YXRlKQ0KPiANCj4g LSAgICAgICAgc2VsZi5lbnRlclJ1bGUobG9jYWxjdHgsIDQwMCwgc2VsZi5SVUxFX3NwYW5GbGFn cykNCj4gDQo+ICsgICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCA0MDIsIHNlbGYuUlVM RV9zcGFuRmxhZ3MpDQo+IA0KPiAgICAgICAgICBzZWxmLl9sYSA9IDAgIyBUb2tlbiB0eXBlDQo+ IA0KPiAgICAgICAgICB0cnk6DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5lbnRlck91dGVyQWx0 KGxvY2FsY3R4LCAxKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTU4DQo+IA0K PiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5NjINCj4gDQo+ICAgICAgICAgICAgICBfbGEg PSBzZWxmLl9pbnB1dC5MQSgxKQ0KPiANCj4gICAgICAgICAgICAgIGlmIG5vdCgoKCgoX2xhIC0g MjQ2KSkgJiB+MHgzZikgPT0gMCBhbmQgKCgxIDw8IChfbGEgLSAyNDYpKSAmICgoMSA8PA0KPiAo VmZyU3ludGF4UGFyc2VyLkxhc3ROb25NYXRjaCAtIDI0NikpIHwgKDEgPDwgKFZmclN5bnRheFBh cnNlci5GaXJzdE5vbk1hdGNoDQo+IC0gMjQ2KSkgfCAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLk51 bWJlciAtIDI0NikpKSkgIT0gMCkpOg0KPiANCj4gICAgICAgICAgICAgICAgICBzZWxmLl9lcnJI YW5kbGVyLnJlY292ZXJJbmxpbmUoc2VsZikNCj4gDQo+IEBAIC0yMDM2OCw3ICsyMDM4Miw4IEBA IGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgICAgICAgICAgc3VwZXIo KS5fX2luaXRfXyhwYXJlbnQsIGludm9raW5nU3RhdGUpDQo+IA0KPiAgICAgICAgICAgICAgc2Vs Zi5wYXJzZXIgPSBwYXJzZXINCj4gDQo+ICAgICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBOb25l DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5NT2JqID0gTm9uZQ0KPiANCj4gKyAgICAgICAgICAg IHNlbGYuTm9kZXMgPSBbXQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuTm9kZSA9IElmclRyZWVO b2RlKCkNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLkV4cEluZm8gPSBFeHBJbmZvDQo+IA0KPiAN Cj4gDQo+ICAgICAgICAgIGRlZiBNYXAoc2VsZik6DQo+IA0KPiBAQCAtMjA0MjEsMzUgKzIwNDM2 LDM1IEBAIGNsYXNzIFZmclN5bnRheFBhcnNlciAoIFBhcnNlciApOg0KPiAgICAgIGRlZiB2ZnJF eHByZXNzaW9uTWFwKHNlbGYsIEV4cEluZm8pOg0KPiANCj4gDQo+IA0KPiAgICAgICAgICBsb2Nh bGN0eCA9IFZmclN5bnRheFBhcnNlci5WZnJFeHByZXNzaW9uTWFwQ29udGV4dChzZWxmLCBzZWxm Ll9jdHgsDQo+IHNlbGYuc3RhdGUsIEV4cEluZm8pDQo+IA0KPiAtICAgICAgICBzZWxmLmVudGVy UnVsZShsb2NhbGN0eCwgNDAyLCBzZWxmLlJVTEVfdmZyRXhwcmVzc2lvbk1hcCkNCj4gDQo+ICsg ICAgICAgIHNlbGYuZW50ZXJSdWxlKGxvY2FsY3R4LCA0MDQsIHNlbGYuUlVMRV92ZnJFeHByZXNz aW9uTWFwKQ0KPiANCj4gICAgICAgICAgc2VsZi5fbGEgPSAwICMgVG9rZW4gdHlwZQ0KPiANCj4g ICAgICAgICAgdHJ5Og0KPiANCj4gICAgICAgICAgICAgIHNlbGYuZW50ZXJPdXRlckFsdChsb2Nh bGN0eCwgMSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjk2MA0KPiANCj4gKyAg ICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTY0DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5tYXRj aChWZnJTeW50YXhQYXJzZXIuTWFwKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAy OTYxDQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5NjUNCj4gDQo+ICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5PcGVuUGFyZW4pDQo+IA0KPiAtICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDI5NjINCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnZmclN0YXRl bWVudEV4cHJlc3Npb25TdWIoKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTYz DQo+IA0KPiArICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5NjYNCj4gDQo+ICsgICAgICAgICAg ICBzZWxmLnZmclN0YXRlbWVudEV4cHJlc3Npb25TdWIobG9jYWxjdHguTm9kZXMpDQo+IA0KPiAr ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5NjcNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLm1h dGNoKFZmclN5bnRheFBhcnNlci5Db2xvbikNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRl ID0gMjk3MQ0KPiANCj4gKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTc1DQo+IA0KPiAgICAg ICAgICAgICAgc2VsZi5fZXJySGFuZGxlci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAg X2xhID0gc2VsZi5faW5wdXQuTEEoMSkNCj4gDQo+ICAgICAgICAgICAgICB3aGlsZSBfbGE9PVZm clN5bnRheFBhcnNlci5PcGVuUGFyZW4gb3IgKCgoKF9sYSAtIDE5MikpICYgfjB4M2YpID09IDAN Cj4gYW5kICgoMSA8PCAoX2xhIC0gMTkyKSkgJiAoKDEgPDwgKFZmclN5bnRheFBhcnNlci5Db25k IC0gMTkyKSkgfCAoMSA8PA0KPiAoVmZyU3ludGF4UGFyc2VyLkZpbmQgLSAxOTIpKSB8ICgxIDw8 IChWZnJTeW50YXhQYXJzZXIuTWlkIC0gMTkyKSkgfCAoMSA8PA0KPiAoVmZyU3ludGF4UGFyc2Vy LlRvayAtIDE5MikpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5TcGFuIC0gMTkyKSkgfCAoMSA8 PA0KPiAoVmZyU3ludGF4UGFyc2VyLkR1cCAtIDE5MikpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNl ci5WYXJFcVZhbCAtIDE5MikpIHwgKDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5JZEVxVmFsIC0g MTkyKSkgfCAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLklkRXFJZCAtIDE5MikpIHwgKDEgPDwNCj4g KFZmclN5bnRheFBhcnNlci5JZEVxVmFsTGlzdCAtIDE5MikpIHwgKDEgPDwgKFZmclN5bnRheFBh cnNlci5RdWVzdGlvblJlZiAtDQo+IDE5MikpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5SdWxl UmVmIC0gMTkyKSkgfCAoMSA8PA0KPiAoVmZyU3ludGF4UGFyc2VyLlN0cmluZ1JlZiAtIDE5Mikp IHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5QdXNoVGhpcyAtIDE5MikpIHwgKDENCj4gPDwgKFZm clN5bnRheFBhcnNlci5TZWN1cml0eSAtIDE5MikpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5H ZXQgLSAxOTIpKSB8ICgxIDw8DQo+IChWZnJTeW50YXhQYXJzZXIuVHJ1ZVN5bWJvbCAtIDE5Mikp IHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5GYWxzZVN5bWJvbCAtDQo+IDE5MikpIHwgKDEgPDwg KFZmclN5bnRheFBhcnNlci5PbmUgLSAxOTIpKSB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuT25l cyAtIDE5MikpDQo+IHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5aZXJvIC0gMTkyKSkgfCAoMSA8 PCAoVmZyU3ludGF4UGFyc2VyLlVuZGVmaW5lZCAtIDE5MikpDQo+IHwgKDEgPDwgKFZmclN5bnRh eFBhcnNlci5WZXJzaW9uIC0gMTkyKSkgfCAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLkxlbmd0aCAt IDE5MikpDQo+IHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5OT1QgLSAxOTIpKSB8ICgxIDw8IChW ZnJTeW50YXhQYXJzZXIuU2V0IC0gMTkyKSkgfCAoMSA8PA0KPiAoVmZyU3ludGF4UGFyc2VyLkJp dFdpc2VOb3QgLSAxOTIpKSB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuQm9vbFZhbCAtIDE5Mikp IHwNCj4gKDEgPDwgKFZmclN5bnRheFBhcnNlci5TdHJpbmdWYWwgLSAxOTIpKSB8ICgxIDw8IChW ZnJTeW50YXhQYXJzZXIuVW5JbnRWYWwgLQ0KPiAxOTIpKSB8ICgxIDw8IChWZnJTeW50YXhQYXJz ZXIuVG9VcHBlciAtIDE5MikpIHwgKDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5Ub0xvd2VyIC0g MTkyKSkgfCAoMSA8PCAoVmZyU3ludGF4UGFyc2VyLk1hdGNoIC0gMTkyKSkgfCAoMSA8PA0KPiAo VmZyU3ludGF4UGFyc2VyLk1hdGNoMiAtIDE5MikpIHwgKDEgPDwgKFZmclN5bnRheFBhcnNlci5D YXRlbmF0ZSAtIDE5MikpIHwgKDENCj4gPDwgKFZmclN5bnRheFBhcnNlci5RdWVzdGlvblJlZlZh bCAtIDE5MikpIHwgKDEgPDwNCj4gKFZmclN5bnRheFBhcnNlci5TdHJpbmdSZWZWYWwgLSAxOTIp KSB8ICgxIDw8IChWZnJTeW50YXhQYXJzZXIuTWFwIC0gMTkyKSkgfCAoMQ0KPiA8PCAoVmZyU3lu dGF4UGFyc2VyLk51bWJlciAtIDE5MikpKSkgIT0gMCk6DQo+IA0KPiAtICAgICAgICAgICAgICAg IHNlbGYuc3RhdGUgPSAyOTY0DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYudmZyU3RhdGVt ZW50RXhwcmVzc2lvbigpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTY1 DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTY4DQo+IA0KPiArICAgICAg ICAgICAgICAgIHNlbGYudmZyU3RhdGVtZW50RXhwcmVzc2lvbihsb2NhbGN0eC5Ob2RlKQ0KPiAN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gMjk2OQ0KPiANCj4gICAgICAgICAgICAg ICAgICBzZWxmLm1hdGNoKFZmclN5bnRheFBhcnNlci5Db21tYSkNCj4gDQo+IC0gICAgICAgICAg ICAgICAgc2VsZi5zdGF0ZSA9IDI5NjYNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi52ZnJT dGF0ZW1lbnRFeHByZXNzaW9uKCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9 IDI5NjcNCj4gDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5NzANCj4gDQo+ICsg ICAgICAgICAgICAgICAgc2VsZi52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uKGxvY2FsY3R4Lk5vZGUp DQo+IA0KPiArICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTcxDQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYubWF0Y2goVmZyU3ludGF4UGFyc2VyLlNlbWljb2xvbikNCj4gDQo+IC0g ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IDI5NzMNCj4gDQo+ICsgICAgICAgICAgICAgICAg c2VsZi5zdGF0ZSA9IDI5NzcNCj4gDQo+ICAgICAgICAgICAgICAgICAgc2VsZi5fZXJySGFuZGxl ci5zeW5jKHNlbGYpDQo+IA0KPiAgICAgICAgICAgICAgICAgIF9sYSA9IHNlbGYuX2lucHV0LkxB KDEpDQo+IA0KPiANCj4gDQo+IC0gICAgICAgICAgICBzZWxmLnN0YXRlID0gMjk3NA0KPiANCj4g KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSAyOTc4DQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5t YXRjaChWZnJTeW50YXhQYXJzZXIuQ2xvc2VQYXJlbikNCj4gDQo+ICAgICAgICAgIGV4Y2VwdCBS ZWNvZ25pdGlvbkV4Y2VwdGlvbiBhcyByZToNCj4gDQo+ICAgICAgICAgICAgICBsb2NhbGN0eC5l eGNlcHRpb24gPSByZQ0KPiANCj4gZGlmZiAtLWdpdCBhL0Jhc2VUb29scy9Tb3VyY2UvUHl0aG9u L1ZmckNvbXBpbGVyL1ZmclN5bnRheFZpc2l0b3IucHkNCj4gYi9CYXNlVG9vbHMvU291cmNlL1B5 dGhvbi9WZnJDb21waWxlci9WZnJTeW50YXhWaXNpdG9yLnB5DQo+IGluZGV4IDhkMGU5MDdhNzUu LmZkNTkwNTM0MGMgMTAwNjQ0DQo+IC0tLSBhL0Jhc2VUb29scy9Tb3VyY2UvUHl0aG9uL1ZmckNv bXBpbGVyL1ZmclN5bnRheFZpc2l0b3IucHkNCj4gKysrIGIvQmFzZVRvb2xzL1NvdXJjZS9QeXRo b24vVmZyQ29tcGlsZXIvVmZyU3ludGF4VmlzaXRvci5weQ0KPiBAQCAtMSw1MTA2ICsxLDU1MDQg QEANCj4gLWZyb20gY2dpIGltcG9ydCBwcmludF9lbnZpcm9uX3VzYWdlDQo+IA0KPiAtZnJvbSBl bWFpbC5lcnJvcnMgaW1wb3J0IE5vbkFTQ0lJTG9jYWxQYXJ0RGVmZWN0LCBOb25QcmludGFibGVE ZWZlY3QNCj4gDQo+IC1mcm9tIGVudW0gaW1wb3J0IEZsYWcNCj4gDQo+IC1mcm9tIGZpbGVpbnB1 dCBpbXBvcnQgbGluZW5vDQo+IA0KPiAtZnJvbSBodHRwLmNsaWVudCBpbXBvcnQgUmVzcG9uc2VO b3RSZWFkeQ0KPiANCj4gLWZyb20gaXRlcnRvb2xzIGltcG9ydCBjb3VudA0KPiANCj4gLWZyb20g bW9kdWxlZmluZGVyIGltcG9ydCBTVE9SRV9OQU1FDQo+IA0KPiAtZnJvbSBtc2lsaWIuc2NoZW1h IGltcG9ydCBDcmVhdGVGb2xkZXINCj4gDQo+IC1mcm9tIHJlIGltcG9ydCBUDQo+IA0KPiAtZnJv bSBzcmVfcGFyc2UgaW1wb3J0IEZMQUdTDQo+IA0KPiAtZnJvbSB0b2tlbml6ZSBpbXBvcnQgTnVt YmVyDQo+IA0KPiAtZnJvbSBhbnRscjQgaW1wb3J0ICoNCj4gDQo+IC1mcm9tIFZmckNvbXBpbGVy LkNvbW1vbkN0eXBlcyBpbXBvcnQgKg0KPiANCj4gLWZyb20gVmZyQ29tcGlsZXIuVmZyRm9ybVBr ZyBpbXBvcnQgKg0KPiANCj4gLWZyb20gVmZyQ29tcGlsZXIuVmZyVXRpbGl0eSBpbXBvcnQgKg0K PiANCj4gLWZyb20gVmZyQ29tcGlsZXIuVmZyVHJlZSBpbXBvcnQgKg0KPiANCj4gLWltcG9ydCBj dHlwZXMNCj4gDQo+IC1pbXBvcnQgc3RydWN0DQo+IA0KPiAtDQo+IA0KPiAtaWYgX19uYW1lX18g aXMgbm90IE5vbmUgYW5kICIuIiBpbiBfX25hbWVfXzoNCj4gDQo+IC0gICAgZnJvbSAuVmZyU3lu dGF4UGFyc2VyIGltcG9ydCBWZnJTeW50YXhQYXJzZXINCj4gDQo+IC1lbHNlOg0KPiANCj4gLSAg ICBmcm9tIFZmclN5bnRheFBhcnNlciBpbXBvcnQgVmZyU3ludGF4UGFyc2VyDQo+IA0KPiAtDQo+ IA0KPiAtZ0NWZnJWYXJEYXRhVHlwZURCID0gQ1ZmclZhckRhdGFUeXBlREIoKQ0KPiANCj4gLWdD VmZyRGVmYXVsdFN0b3JlID0gIENWZnJEZWZhdWx0U3RvcmUoKQ0KPiANCj4gLWdDVmZyRGF0YVN0 b3JhZ2UgPSBDVmZyRGF0YVN0b3JhZ2UoKQ0KPiANCj4gLQ0KPiANCj4gLSMgVGhpcyBjbGFzcyBk ZWZpbmVzIGEgY29tcGxldGUgZ2VuZXJpYyB2aXNpdG9yIGZvciBhIHBhcnNlIHRyZWUgcHJvZHVj ZWQgYnkNCj4gVmZyU3ludGF4UGFyc2VyLg0KPiANCj4gLWNsYXNzIFZmclN5bnRheFZpc2l0b3Io UGFyc2VUcmVlVmlzaXRvcik6DQo+IA0KPiAtICAgIGdaZXJvRWZpSWZyVHlwZVZhbHVlID0gRUZJ X0lGUl9UWVBFX1ZBTFVFKCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYp Og0KPiANCj4gLSAgICAgICAgc2VsZi5fX092ZXJyaWRlQ2xhc3NHdWlkID0gTm9uZQ0KPiANCj4g LSAgICAgICAgc2VsZi5fX1BhcnNlclN0YXR1cyA9IDANCj4gDQo+IC0gICAgICAgIHNlbGYuX19D SWZyT3BIZHJJbmRleCA9IC0xDQo+IA0KPiAtICAgICAgICBzZWxmLl9fQ29uc3RhbnRPbmx5SW5F eHByZXNzaW9uID0gRmFsc2UNCj4gDQo+IC0gICAgICAgIHNlbGYuX19Vc2VkRGVmYXVsdEFycmF5 ID0gW10NCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYuX19DVmZyUnVsZXNEQiA9IENWZnJS dWxlc0RCKCkNCj4gDQo+IC0gICAgICAgIHNlbGYuX19DSWZyT3BIZHIgPSBbXSAgIw0KPiANCj4g LSAgICAgICAgc2VsZi5fX0NJZnJPcEhkckxpbmVObyA9IFtdDQo+IA0KPiAtICAgICAgICBzZWxm Ll9fQ3VyclFlc3RWYXJJbmZvID0gRUZJX1ZBUlNUT1JFX0lORk8oKQ0KPiANCj4gLQ0KPiANCj4g LSAgICAgICAgc2VsZi5fX0NWZnJRdWVzdGlvbkRCID0gQ1ZmclF1ZXN0aW9uREIoKQ0KPiANCj4g LSAgICAgICAgc2VsZi5fX0N1cnJlbnRRdWVzdGlvbiA9IE5vbmUNCj4gDQo+IC0gICAgICAgIHNl bGYuX19DdXJyZW50TWluTWF4RGF0YSA9IE5vbmUgIw0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAg c2VsZi5fX0lzU3RyaW5nT3AgPSBGYWxzZQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX0lzT3JkZXJl ZExpc3QgPSBGYWxzZQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX0lzQ2hlY2tCb3hPcCA9IEZhbHNl DQo+IA0KPiAtICAgICAgICBzZWxmLl9fUm9vdCA9IFZmclRyZWVOb2RlKCkNCj4gDQo+IC0NCj4g DQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3lu dGF4UGFyc2VyI3ZmclByb2dyYW0uDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmclByb2dyYW0oc2Vs ZiwgY3R4OlZmclN5bnRheFBhcnNlci5WZnJQcm9ncmFtQ29udGV4dCk6DQo+IA0KPiAtDQo+IA0K PiAtICAgICAgICAjc2VsZi5fX0NWZnJRdWVzdGlvbkRCLlByaW50QWxsUXVlc3Rpb24oJ3Rlc3Rc XFF1ZXN0aW9ucy50eHQnKQ0KPiANCj4gLSAgICAgICAgI2dDVmZyVmFyRGF0YVR5cGVEQi5EdW1w KCJ0ZXN0XFxEYXRhVHlwZUluZm8udHh0IikNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVy biBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEg cGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjcHJhZ21hUGFja1Nob3dEZWYu DQo+IA0KPiAtICAgIGRlZiB2aXNpdFByYWdtYVBhY2tTaG93RGVmKHNlbGYsDQo+IGN0eDpWZnJT eW50YXhQYXJzZXIuUHJhZ21hUGFja1Nob3dEZWZDb250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0g ICAgICAgIExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiANCj4gLSAgICAgICAgZ0NWZnJWYXJEYXRh VHlwZURCLlBhY2soTGluZSwgVkZSX1BBQ0tfU0hPVykNCj4gDQo+IC0gICAgICAgIHJldHVybiBz ZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZp c2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjcHJhZ21hUGFja1N0 YWNrRGVmLg0KPiANCj4gLSAgICBkZWYgdmlzaXRQcmFnbWFQYWNrU3RhY2tEZWYoc2VsZiwNCj4g Y3R4OlZmclN5bnRheFBhcnNlci5QcmFnbWFQYWNrU3RhY2tEZWZDb250ZXh0KToNCj4gDQo+IC0N Cj4gDQo+IC0gICAgICAgIElkZW50aWZpZXIgPSBzZWxmLl9fVHJhbnNJZChjdHguU3RyaW5nSWRl bnRpZmllcigpKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgc3RyKGN0eC5nZXRDaGlsZCgw KSkgPT0gJ3B1c2gnOg0KPiANCj4gLSAgICAgICAgICAgIEFjdGlvbiA9IFZGUl9QQUNLX1BVU0gN Cj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgQWN0aW9uID0gVkZSX1BB Q0tfUE9QDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBjdHguTnVtYmVyKCkgIT0gTm9uZToN Cj4gDQo+IC0gICAgICAgICAgICBBY3Rpb24gfD0gVkZSX1BBQ0tfQVNTSUdODQo+IA0KPiAtDQo+ IA0KPiAtICAgICAgICBQYWNrTnVtYmVyID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoKSwg REVGQVVMVF9QQUNLX0FMSUdOKQ0KPiANCj4gLSAgICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5l DQo+IA0KPiAtICAgICAgICBnQ1ZmclZhckRhdGFUeXBlREIuUGFjayhMaW5lLCBBY3Rpb24sIElk ZW50aWZpZXIsIFBhY2tOdW1iZXIpDQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi52aXNpdENo aWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNl IHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ByYWdtYVBhY2tOdW1iZXIuDQo+IA0K PiAtICAgIGRlZiB2aXNpdFByYWdtYVBhY2tOdW1iZXIoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBh cnNlci5QcmFnbWFQYWNrTnVtYmVyQ29udGV4dCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBM aW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gDQo+IC0gICAgICAgIFBhY2tOdW1iZXIgPSBzZWxmLl9f VHJhbnNOdW0oY3R4Lk51bWJlcigpLCBERUZBVUxUX1BBQ0tfQUxJR04pDQo+IA0KPiAtDQo+IA0K PiAtICAgICAgICBnQ1ZmclZhckRhdGFUeXBlREIuUGFjayhMaW5lLCBWRlJfUEFDS19BU1NJR04s IE5vbmUsIFBhY2tOdW1iZXIpDQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi52aXNpdENoaWxk cmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRy ZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmclByYWdtYVBhY2tEZWZpbml0aW9uLg0K PiANCj4gLSAgICBkZWYgdmlzaXRWZnJQcmFnbWFQYWNrRGVmaW5pdGlvbigNCj4gDQo+IC0gICAg ICAgICAgICBzZWxmLCBjdHg6IFZmclN5bnRheFBhcnNlci5WZnJQcmFnbWFQYWNrRGVmaW5pdGlv bkNvbnRleHQpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYudmlzaXRDaGlsZHJlbihjdHgp DQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1 Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJEYXRhU3RydWN0RGVmaW5pdGlvbi4NCj4gDQo+IC0g ICAgZGVmIHZpc2l0VmZyRGF0YVN0cnVjdERlZmluaXRpb24oc2VsZiwgY3R4Og0KPiBWZnJTeW50 YXhQYXJzZXIuVmZyRGF0YVN0cnVjdERlZmluaXRpb25Db250ZXh0KToNCj4gDQo+IC0NCj4gDQo+ IC0gICAgICAgIGdDVmZyVmFyRGF0YVR5cGVEQi5EZWNsYXJlRGF0YVR5cGVCZWdpbigpDQo+IA0K PiAtDQo+IA0KPiAtICAgICAgICBpZiBjdHguTjEgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAg ICBSZXR1cm5Db2RlID0gZ0NWZnJWYXJEYXRhVHlwZURCLlNldE5ld1R5cGVOYW1lKGN0eC5OMS50 ZXh0KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwg Y3R4Lk4xLmxpbmUsIGN0eC5OMS50ZXh0KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgY3R4 Lk4yICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgUmV0dXJuQ29kZSA9IGdDVmZyVmFyRGF0 YVR5cGVEQi5TZXROZXdUeXBlTmFtZShjdHguTjIudGV4dCkNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLl9fRXJyb3JIYW5kbGVyKFJldHVybkNvZGUsIGN0eC5OMi5saW5lLCBjdHguTjIudGV4dCkN Cj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAt DQo+IA0KPiAtICAgICAgICBnQ1ZmclZhckRhdGFUeXBlREIuRGVjbGFyZURhdGFUeXBlRW5kKCkN Cj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBOb25lDQo+IA0KPiAtDQo+IA0KPiAtDQo+ IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNl ciN2ZnJEYXRhVW5pb25EZWZpbml0aW9uLg0KPiANCj4gLSAgICBkZWYgdmlzaXRWZnJEYXRhVW5p b25EZWZpbml0aW9uKHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJzZXIuVmZyRGF0YVVuaW9uRGVm aW5pdGlvbkNvbnRleHQpOg0KPiANCj4gLSAgICAgICAgZ0NWZnJWYXJEYXRhVHlwZURCLkRlY2xh cmVEYXRhVHlwZUJlZ2luKCkNCj4gDQo+IC0gICAgICAgIGlmIGN0eC5OMSAhPSBOb25lOg0KPiAN Cj4gLSAgICAgICAgICAgIFJldHVybkNvZGUgPSBnQ1ZmclZhckRhdGFUeXBlREIuU2V0TmV3VHlw ZU5hbWUoY3R4Lk4xLnRleHQpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX0Vycm9ySGFuZGxl cihSZXR1cm5Db2RlLCBjdHguTjEubGluZSwgY3R4Lk4xLnRleHQpDQo+IA0KPiAtDQo+IA0KPiAt ICAgICAgICBpZiBjdHguTjIgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBSZXR1cm5Db2Rl ID0gZ0NWZnJWYXJEYXRhVHlwZURCLlNldE5ld1R5cGVOYW1lKGN0eC5OMi50ZXh0KQ0KPiANCj4g LSAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwgY3R4Lk4yLmxpbmUs IGN0eC5OMi50ZXh0KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVu KGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGdDVmZyVmFyRGF0YVR5cGVEQi5EZWNsYXJl RGF0YVR5cGVFbmQoKQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIE5vbmUNCj4gDQo+IC0NCj4gDQo+ IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4 UGFyc2VyI3ZmckRhdGFTdHJ1Y3RGaWVsZHMuDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmckRhdGFT dHJ1Y3RGaWVsZHMoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJEYXRhU3RydWN0Rmll bGRzQ29udGV4dCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi52aXNpdENo aWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNl IHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI2RhdGFTdHJ1Y3RGaWVsZDY0Lg0KPiAN Cj4gLSAgICBkZWYgdmlzaXREYXRhU3RydWN0RmllbGQ2NChzZWxmLA0KPiBjdHg6VmZyU3ludGF4 UGFyc2VyLkRhdGFTdHJ1Y3RGaWVsZDY0Q29udGV4dCk6DQo+IA0KPiAtICAgICAgICBBcnJheU51 bSA9IHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKCkpDQo+IA0KPiAtICAgICAgICBSZXR1cm5D b2RlID0gZ0NWZnJWYXJEYXRhVHlwZURCLkRhdGFUeXBlQWRkRmllbGQoY3R4Lk4udGV4dCwNCj4g J1VJTlQ2NCcsIEFycmF5TnVtLCBjdHguRmllbGRJblVuaW9uKQ0KPiANCj4gLSAgICAgICAgc2Vs Zi5fX0Vycm9ySGFuZGxlcihSZXR1cm5Db2RlLCBjdHguTi5saW5lLCBjdHguTi50ZXh0KQ0KPiAN Cj4gLSAgICAgICAgcmV0dXJuIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtDQo+IA0K PiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRh eFBhcnNlciNkYXRhU3RydWN0RmllbGQzMi4NCj4gDQo+IC0gICAgZGVmIHZpc2l0RGF0YVN0cnVj dEZpZWxkMzIoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5EYXRhU3RydWN0RmllbGQzMkNv bnRleHQpOg0KPiANCj4gLSAgICAgICAgQXJyYXlOdW0gPSBzZWxmLl9fVHJhbnNOdW0oY3R4Lk51 bWJlcigpKQ0KPiANCj4gLSAgICAgICAgUmV0dXJuQ29kZSA9IGdDVmZyVmFyRGF0YVR5cGVEQi5E YXRhVHlwZUFkZEZpZWxkKGN0eC5OLnRleHQsDQo+ICdVSU5UMzInLCBBcnJheU51bSwgY3R4LkZp ZWxkSW5VbmlvbikNCj4gDQo+IC0gICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoUmV0dXJuQ29k ZSwgY3R4Lk4ubGluZSwgY3R4Lk4udGV4dCkNCj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxmLnZp c2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEg cGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjZGF0YVN0cnVjdEZpZWxkMTYu DQo+IA0KPiAtICAgIGRlZiB2aXNpdERhdGFTdHJ1Y3RGaWVsZDE2KHNlbGYsDQo+IGN0eDpWZnJT eW50YXhQYXJzZXIuRGF0YVN0cnVjdEZpZWxkMTZDb250ZXh0KToNCj4gDQo+IC0gICAgICAgIEFy cmF5TnVtID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoKSkNCj4gDQo+IC0gICAgICAgIFJl dHVybkNvZGUgPSBnQ1ZmclZhckRhdGFUeXBlREIuRGF0YVR5cGVBZGRGaWVsZChjdHguTi50ZXh0 LA0KPiAnVUlOVDE2JywgQXJyYXlOdW0sIGN0eC5GaWVsZEluVW5pb24pDQo+IA0KPiAtICAgICAg ICBzZWxmLl9fRXJyb3JIYW5kbGVyKFJldHVybkNvZGUsIGN0eC5OLmxpbmUsIGN0eC5OLnRleHQp DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0N Cj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZy U3ludGF4UGFyc2VyI2RhdGFTdHJ1Y3RGaWVsZDguDQo+IA0KPiAtICAgIGRlZiB2aXNpdERhdGFT dHJ1Y3RGaWVsZDgoc2VsZiwgY3R4OlZmclN5bnRheFBhcnNlci5EYXRhU3RydWN0RmllbGQ4Q29u dGV4dCk6DQo+IA0KPiAtICAgICAgICBBcnJheU51bSA9IHNlbGYuX19UcmFuc051bShjdHguTnVt YmVyKCkpDQo+IA0KPiAtICAgICAgICBSZXR1cm5Db2RlID0gZ0NWZnJWYXJEYXRhVHlwZURCLkRh dGFUeXBlQWRkRmllbGQoY3R4Lk4udGV4dCwNCj4gJ1VJTlQ4JywgQXJyYXlOdW0sIGN0eC5GaWVs ZEluVW5pb24pDQo+IA0KPiAtICAgICAgICBzZWxmLl9fRXJyb3JIYW5kbGVyKFJldHVybkNvZGUs IGN0eC5OLmxpbmUsIGN0eC5OLnRleHQpDQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi52aXNp dENoaWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBh cnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI2RhdGFTdHJ1Y3RGaWVsZEJvb2wu DQo+IA0KPiAtICAgIGRlZiB2aXNpdERhdGFTdHJ1Y3RGaWVsZEJvb2woc2VsZiwNCj4gY3R4OlZm clN5bnRheFBhcnNlci5EYXRhU3RydWN0RmllbGRCb29sQ29udGV4dCk6DQo+IA0KPiAtICAgICAg ICBBcnJheU51bSA9IHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKCkpDQo+IA0KPiAtICAgICAg ICBSZXR1cm5Db2RlID0gZ0NWZnJWYXJEYXRhVHlwZURCLkRhdGFUeXBlQWRkRmllbGQoY3R4Lk4u dGV4dCwNCj4gJ0JPT0xFQU4nLCBBcnJheU51bSwgY3R4LkZpZWxkSW5VbmlvbikNCj4gDQo+IC0g ICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwgY3R4Lk4ubGluZSwgY3R4Lk4u dGV4dCkNCj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiAN Cj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBi eSBWZnJTeW50YXhQYXJzZXIjZGF0YVN0cnVjdEZpZWxkU3RyaW5nLg0KPiANCj4gLSAgICBkZWYg dmlzaXREYXRhU3RydWN0RmllbGRTdHJpbmcoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5E YXRhU3RydWN0RmllbGRTdHJpbmdDb250ZXh0KToNCj4gDQo+IC0gICAgICAgIEFycmF5TnVtID0g c2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoKSkNCj4gDQo+IC0gICAgICAgIFJldHVybkNvZGUg PSBnQ1ZmclZhckRhdGFUeXBlREIuRGF0YVR5cGVBZGRGaWVsZChjdHguTi50ZXh0LA0KPiAnRUZJ X1NUUklOR19JRCcsIEFycmF5TnVtLCBjdHguRmllbGRJblVuaW9uKQ0KPiANCj4gLSAgICAgICAg c2VsZi5fX0Vycm9ySGFuZGxlcihSZXR1cm5Db2RlLCBjdHguTi5saW5lLCBjdHguTi50ZXh0KQ0K PiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtDQo+ IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5 bnRheFBhcnNlciNkYXRhU3RydWN0RmllbGREYXRlLg0KPiANCj4gLSAgICBkZWYgdmlzaXREYXRh U3RydWN0RmllbGREYXRlKHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJzZXIuRGF0YVN0cnVjdEZp ZWxkRGF0ZUNvbnRleHQpOg0KPiANCj4gLSAgICAgICAgQXJyYXlOdW0gPSBzZWxmLl9fVHJhbnNO dW0oY3R4Lk51bWJlcigpKQ0KPiANCj4gLSAgICAgICAgUmV0dXJuQ29kZSA9IGdDVmZyVmFyRGF0 YVR5cGVEQi5EYXRhVHlwZUFkZEZpZWxkKGN0eC5OLnRleHQsDQo+ICdFRklfSElJX0RBVEUnLCBB cnJheU51bSwgY3R4LkZpZWxkSW5VbmlvbikNCj4gDQo+IC0gICAgICAgIHNlbGYuX19FcnJvckhh bmRsZXIoUmV0dXJuQ29kZSwgY3R4Lk4ubGluZSwgY3R4Lk4udGV4dCkNCj4gDQo+IC0gICAgICAg IHJldHVybiBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4g LSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjZGF0 YVN0cnVjdEZpZWxkVGltZS4NCj4gDQo+IC0gICAgZGVmIHZpc2l0RGF0YVN0cnVjdEZpZWxkVGlt ZShzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLkRhdGFTdHJ1Y3RGaWVsZFRpbWVDb250ZXh0 KToNCj4gDQo+IC0gICAgICAgIEFycmF5TnVtID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIo KSkNCj4gDQo+IC0gICAgICAgIFJldHVybkNvZGUgPSBnQ1ZmclZhckRhdGFUeXBlREIuRGF0YVR5 cGVBZGRGaWVsZChjdHguTi50ZXh0LA0KPiAnRUZJX0hJSV9USU1FJywgQXJyYXlOdW0sIGN0eC5G aWVsZEluVW5pb24pDQo+IA0KPiAtICAgICAgICBzZWxmLl9fRXJyb3JIYW5kbGVyKFJldHVybkNv ZGUsIGN0eC5OLmxpbmUsIGN0eC5OLnRleHQpDQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi52 aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBh IHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI2RhdGFTdHJ1Y3RGaWVsZFJl Zi4NCj4gDQo+IC0gICAgZGVmIHZpc2l0RGF0YVN0cnVjdEZpZWxkUmVmKHNlbGYsDQo+IGN0eDpW ZnJTeW50YXhQYXJzZXIuRGF0YVN0cnVjdEZpZWxkUmVmQ29udGV4dCk6DQo+IA0KPiAtICAgICAg ICBBcnJheU51bSA9IHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKCkpDQo+IA0KPiAtICAgICAg ICBSZXR1cm5Db2RlID0gZ0NWZnJWYXJEYXRhVHlwZURCLkRhdGFUeXBlQWRkRmllbGQoY3R4Lk4u dGV4dCwNCj4gJ0VGSV9ISUlfUkVGJywgQXJyYXlOdW0sIGN0eC5GaWVsZEluVW5pb24pDQo+IA0K PiAtICAgICAgICBzZWxmLl9fRXJyb3JIYW5kbGVyKFJldHVybkNvZGUsIGN0eC5OLmxpbmUsIGN0 eC5OLnRleHQpDQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi52aXNpdENoaWxkcmVuKGN0eCkN Cj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVj ZWQgYnkgVmZyU3ludGF4UGFyc2VyI2RhdGFTdHJ1Y3RGaWVsZFVzZXIuDQo+IA0KPiAtICAgIGRl ZiB2aXNpdERhdGFTdHJ1Y3RGaWVsZFVzZXIoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5E YXRhU3RydWN0RmllbGRVc2VyQ29udGV4dCk6DQo+IA0KPiAtICAgICAgICBBcnJheU51bSA9IHNl bGYuX19UcmFuc051bShjdHguTnVtYmVyKCkpDQo+IA0KPiAtICAgICAgICBpZiBjdHguVC50ZXh0 ICE9ICdDSEFSMTYnOg0KPiANCj4gLSAgICAgICAgICAgIFJldHVybkNvZGUgPSBnQ1ZmclZhckRh dGFUeXBlREIuRGF0YVR5cGVBZGRGaWVsZChjdHguTi50ZXh0LA0KPiBjdHguVC50ZXh0LCBBcnJh eU51bSwgY3R4LkZpZWxkSW5VbmlvbikNCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAg ICAgICAgICAgUmV0dXJuQ29kZSA9IGdDVmZyVmFyRGF0YVR5cGVEQi5EYXRhVHlwZUFkZEZpZWxk KGN0eC5OLnRleHQsDQo+ICdVSU5UMTYnLCBBcnJheU51bSwgY3R4LkZpZWxkSW5VbmlvbikNCj4g DQo+IC0gICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwgY3R4Lk4ubGluZSwg Y3R4Lk4udGV4dCkNCj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4 KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBW ZnJTeW50YXhQYXJzZXIjZGF0YVN0cnVjdEJpdEZpZWxkNjQuDQo+IA0KPiAtICAgIGRlZiB2aXNp dERhdGFTdHJ1Y3RCaXRGaWVsZDY0KHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJzZXIuRGF0YVN0 cnVjdEJpdEZpZWxkNjRDb250ZXh0KToNCj4gDQo+IC0gICAgICAgIFdpZHRoID0gc2VsZi5fX1Ry YW5zTnVtKGN0eC5OdW1iZXIoKSkNCj4gDQo+IC0gICAgICAgIGlmIGN0eC5OICE9IE5vbmU6DQo+ IA0KPiAtDQo+IHNlbGYuX19FcnJvckhhbmRsZXIoZ0NWZnJWYXJEYXRhVHlwZURCLkRhdGFUeXBl QWRkQml0RmllbGQoY3R4Lk4udGV4dCwNCj4gJ1VJTlQ2NCcsIFdpZHRoLCBjdHguRmllbGRJblVu aW9uKSwgY3R4Lk4ubGluZSwgY3R4Lk4udGV4dCkNCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0K PiAtICAgICAgICAgICAgc2VsZi5fX0Vycm9ySGFuZGxlcihnQ1ZmclZhckRhdGFUeXBlREIuRGF0 YVR5cGVBZGRCaXRGaWVsZChOb25lLA0KPiAnVUlOVDY0JywgV2lkdGgsIGN0eC5GaWVsZEluVW5p b24pLCBjdHguRC5saW5lLCBjdHguRC50ZXh0KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0 dXJuIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAg ICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNkYXRhU3Ry dWN0Qml0RmllbGQzMi4NCj4gDQo+IC0gICAgZGVmIHZpc2l0RGF0YVN0cnVjdEJpdEZpZWxkMzIo c2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5EYXRhU3RydWN0Qml0RmllbGQzMkNvbnRleHQp Og0KPiANCj4gLSAgICAgICAgV2lkdGggPSBzZWxmLl9fVHJhbnNOdW0oY3R4Lk51bWJlcigpKQ0K PiANCj4gLSAgICAgICAgaWYgY3R4Lk4gIT0gTm9uZToNCj4gDQo+IC0NCj4gc2VsZi5fX0Vycm9y SGFuZGxlcihnQ1ZmclZhckRhdGFUeXBlREIuRGF0YVR5cGVBZGRCaXRGaWVsZChjdHguTi50ZXh0 LA0KPiAnVUlOVDMyJywgV2lkdGgsIGN0eC5GaWVsZEluVW5pb24pLCBjdHguTi5saW5lLCBjdHgu Ti50ZXh0KQ0KPiANCj4gLSAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9f RXJyb3JIYW5kbGVyKGdDVmZyVmFyRGF0YVR5cGVEQi5EYXRhVHlwZUFkZEJpdEZpZWxkKE5vbmUs DQo+ICdVSU5UMzInLCBXaWR0aCwgY3R4LkZpZWxkSW5VbmlvbiksIGN0eC5ELmxpbmUsIGN0eC5E LnRleHQpDQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4g DQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQg YnkgVmZyU3ludGF4UGFyc2VyI2RhdGFTdHJ1Y3RCaXRGaWVsZDE2Lg0KPiANCj4gLSAgICBkZWYg dmlzaXREYXRhU3RydWN0Qml0RmllbGQxNihzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLkRh dGFTdHJ1Y3RCaXRGaWVsZDE2Q29udGV4dCk6DQo+IA0KPiAtICAgICAgICBXaWR0aCA9IHNlbGYu X19UcmFuc051bShjdHguTnVtYmVyKCkpDQo+IA0KPiAtICAgICAgICBpZiBjdHguTiAhPSBOb25l Og0KPiANCj4gLQ0KPiBzZWxmLl9fRXJyb3JIYW5kbGVyKGdDVmZyVmFyRGF0YVR5cGVEQi5EYXRh VHlwZUFkZEJpdEZpZWxkKGN0eC5OLnRleHQsDQo+ICdVSU5UMTYnLCBXaWR0aCwgY3R4LkZpZWxk SW5VbmlvbiksIGN0eC5OLmxpbmUsIGN0eC5OLnRleHQpDQo+IA0KPiAtICAgICAgICBlbHNlOg0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoZ0NWZnJWYXJEYXRhVHlwZURC LkRhdGFUeXBlQWRkQml0RmllbGQoTm9uZSwNCj4gJ1VJTlQxNicsIFdpZHRoLCBjdHguRmllbGRJ blVuaW9uKSwgY3R4LkQubGluZSwgY3R4LkQudGV4dCkNCj4gDQo+IC0gICAgICAgIHJldHVybiBz ZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZp c2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjZGF0YVN0cnVjdEJp dEZpZWxkOC4NCj4gDQo+IC0gICAgZGVmIHZpc2l0RGF0YVN0cnVjdEJpdEZpZWxkOChzZWxmLA0K PiBjdHg6VmZyU3ludGF4UGFyc2VyLkRhdGFTdHJ1Y3RCaXRGaWVsZDhDb250ZXh0KToNCj4gDQo+ IC0gICAgICAgIFdpZHRoID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoKSkNCj4gDQo+IC0g ICAgICAgIGlmIGN0eC5OICE9IE5vbmU6DQo+IA0KPiAtDQo+IHNlbGYuX19FcnJvckhhbmRsZXIo Z0NWZnJWYXJEYXRhVHlwZURCLkRhdGFUeXBlQWRkQml0RmllbGQoY3R4Lk4udGV4dCwNCj4gJ1VJ TlQ4JywgV2lkdGgsIGN0eC5GaWVsZEluVW5pb24pLCBjdHguTi5saW5lLCBjdHguTi50ZXh0KQ0K PiANCj4gLSAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fRXJyb3JIYW5k bGVyKGdDVmZyVmFyRGF0YVR5cGVEQi5EYXRhVHlwZUFkZEJpdEZpZWxkKE5vbmUsDQo+ICdVSU5U OCcsIFdpZHRoLCBjdHguRmllbGRJblVuaW9uKSwgY3R4LkQubGluZSwgY3R4LkQudGV4dCkNCj4g DQo+IC0gICAgICAgIHJldHVybiBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLQ0KPiAN Cj4gLSAgICBkZWYgX19EZWNsYXJlU3RhbmRhcmREZWZhdWx0U3RvcmFnZShzZWxmLCBMaW5lTm8p Og0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgRFNPYmogPSBDSWZyRGVmYXVsdFN0b3JlKCkNCj4g DQo+IC0gICAgICAgIGdDVmZyRGVmYXVsdFN0b3JlLlJlZ2lzdGVyRGVmYXVsdFN0b3JlKERTT2Jq LkdldERlZmF1bHRTdG9yZSgpLA0KPiAiU3RhbmRhcmQgRGVmYXVsdHMiLCBFRklfU1RSSU5HX0lE X0lOVkFMSUQsDQo+IEVGSV9ISUlfREVGQVVMVF9DTEFTU19TVEFOREFSRCkNCj4gDQo+IC0gICAg ICAgIERTT2JqLlNldExpbmVObyAoTGluZU5vKQ0KPiANCj4gLSAgICAgICAgRFNPYmouU2V0RGVm YXVsdE5hbWUgKEVGSV9TVFJJTkdfSURfSU5WQUxJRCkNCj4gDQo+IC0gICAgICAgIERTT2JqLlNl dERlZmF1bHRJZCAoRUZJX0hJSV9ERUZBVUxUX0NMQVNTX1NUQU5EQVJEKQ0KPiANCj4gLQ0KPiAN Cj4gLSAgICAgICAgRFNPYmpNRiA9IENJZnJEZWZhdWx0U3RvcmUoKQ0KPiANCj4gLSAgICAgICAg Z0NWZnJEZWZhdWx0U3RvcmUuUmVnaXN0ZXJEZWZhdWx0U3RvcmUoRFNPYmpNRi5HZXREZWZhdWx0 U3RvcmUoKSwNCj4gIlN0YW5kYXJkIE1hbnVGYWN0dXJpbmciLCBFRklfU1RSSU5HX0lEX0lOVkFM SUQsDQo+IEVGSV9ISUlfREVGQVVMVF9DTEFTU19NQU5VRkFDVFVSSU5HKQ0KPiANCj4gLSAgICAg ICAgRFNPYmpNRi5TZXRMaW5lTm8gKExpbmVObykNCj4gDQo+IC0gICAgICAgIERTT2JqTUYuU2V0 RGVmYXVsdE5hbWUgKEVGSV9TVFJJTkdfSURfSU5WQUxJRCkNCj4gDQo+IC0gICAgICAgIERTT2Jq TUYuU2V0RGVmYXVsdElkIChFRklfSElJX0RFRkFVTFRfQ0xBU1NfTUFOVUZBQ1RVUklORykNCj4g DQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQg YnkgVmZyU3ludGF4UGFyc2VyI3ZmckZvcm1TZXREZWZpbml0aW9uLg0KPiANCj4gLSAgICBkZWYg dmlzaXRWZnJGb3JtU2V0RGVmaW5pdGlvbihzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLlZm ckZvcm1TZXREZWZpbml0aW9uQ29udGV4dCk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fSW5zZXJ0 Q2hpbGQoc2VsZi5fX1Jvb3QsIGN0eCkNCj4gDQo+IC0gICAgICAgIHNlbGYuX19JbnNlcnRDaGls ZChjdHguTm9kZSwgY3R4LmNsYXNzRGVmaW5pdGlvbigpKQ0KPiANCj4gLSAgICAgICAgc2VsZi5f X0luc2VydENoaWxkKGN0eC5Ob2RlLCBjdHguc3ViY2xhc3NEZWZpbml0aW9uKCkpDQo+IA0KPiAt ICAgICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gDQo+IC0gICAgICAgIHNlbGYuX19EZWNs YXJlU3RhbmRhcmREZWZhdWx0U3RvcmFnZShMaW5lKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAg c2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0gICAgICAgIENsYXNzR3VpZE51bSA9IDAN Cj4gDQo+IC0gICAgICAgIEd1aWRMaXN0ID0gW10NCj4gDQo+IC0gICAgICAgIGlmIGN0eC5jbGFz c2d1aWREZWZpbml0aW9uKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBHdWlkTGlzdCA9 IGN0eC5jbGFzc2d1aWREZWZpbml0aW9uKCkuR3VpZExpc3QNCj4gDQo+IC0gICAgICAgICAgICBD bGFzc0d1aWROdW0gPSBsZW4oR3VpZExpc3QpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBEZWZh dWx0Q2xhc3NHdWlkID0gRUZJX0hJSV9QTEFURk9STV9TRVRVUF9GT1JNU0VUX0dVSUQNCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgIGlmIChzZWxmLl9fT3ZlcnJpZGVDbGFzc0d1aWQgIT0gTm9uZSBh bmQgQ2xhc3NHdWlkTnVtID49NCk6DQo+IA0KPiAtDQo+IHNlbGYuX19FcnJvckhhbmRsZXIoVmZy UmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLCBMaW5lLA0KPiBOb25lLCAn QWxyZWFkeSBoYXMgNCBjbGFzcyBndWlkcywgY2FuIG5vdCBhZGQgZXh0cmEgY2xhc3MgZ3VpZCEn KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgQ2xhc3NHdWlkTnVtID09IDA6DQo+IA0KPiAt ICAgICAgICAgICAgaWYgc2VsZi5fX092ZXJyaWRlQ2xhc3NHdWlkICE9IE5vbmU6DQo+IA0KPiAt ICAgICAgICAgICAgICAgIENsYXNzR3VpZE51bSAgPSAyDQo+IA0KPiAtICAgICAgICAgICAgZWxz ZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgQ2xhc3NHdWlkTnVtICA9IDENCj4gDQo+IC0gICAg ICAgICAgICBGU09iaiA9IENJZnJGb3JtU2V0KHNpemVvZihFRklfSUZSX0ZPUk1fU0VUKSArIENs YXNzR3VpZE51bSAqDQo+IHNpemVvZihFRklfR1VJRCkpDQo+IA0KPiAtICAgICAgICAgICAgRlNP YmouU2V0Q2xhc3NHdWlkKERlZmF1bHRDbGFzc0d1aWQpDQo+IA0KPiAtICAgICAgICAgICAgaWYg KHNlbGYuX19PdmVycmlkZUNsYXNzR3VpZCAhPSBOb25lKToNCj4gDQo+IC0gICAgICAgICAgICAg ICAgRlNPYmouU2V0Q2xhc3NHdWlkKHNlbGYuX19PdmVycmlkZUNsYXNzR3VpZCkNCj4gDQo+IC0N Cj4gDQo+IC0gICAgICAgIGVsaWYgQ2xhc3NHdWlkTnVtID09IDE6DQo+IA0KPiAtICAgICAgICAg ICAgaWYgc2VsZi5fX092ZXJyaWRlQ2xhc3NHdWlkICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAg ICAgICAgIENsYXNzR3VpZE51bSAgKz0gMQ0KPiANCj4gLSAgICAgICAgICAgIEZTT2JqID0gQ0lm ckZvcm1TZXQoc2l6ZW9mKEVGSV9JRlJfRk9STV9TRVQpICsgQ2xhc3NHdWlkTnVtICoNCj4gc2l6 ZW9mKEVGSV9HVUlEKSkNCj4gDQo+IC0gICAgICAgICAgICBGU09iai5TZXRDbGFzc0d1aWQoR3Vp ZExpc3RbMF0pDQo+IA0KPiAtICAgICAgICAgICAgaWYgKHNlbGYuX19PdmVycmlkZUNsYXNzR3Vp ZCAhPSBOb25lKToNCj4gDQo+IC0gICAgICAgICAgICAgICAgRlNPYmouU2V0Q2xhc3NHdWlkKHNl bGYuX19PdmVycmlkZUNsYXNzR3VpZCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGVsaWYgQ2xh c3NHdWlkTnVtID09IDI6DQo+IA0KPiAtICAgICAgICAgICAgaWYgc2VsZi5fX092ZXJyaWRlQ2xh c3NHdWlkICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgICAgIENsYXNzR3VpZE51bSArPSAx DQo+IA0KPiAtICAgICAgICAgICAgRlNPYmogPSBDSWZyRm9ybVNldChzaXplb2YoRUZJX0lGUl9G T1JNX1NFVCkgKyBDbGFzc0d1aWROdW0gKg0KPiBzaXplb2YoRUZJX0dVSUQpKQ0KPiANCj4gLSAg ICAgICAgICAgIEZTT2JqLlNldENsYXNzR3VpZChHdWlkTGlzdFswXSkNCj4gDQo+IC0gICAgICAg ICAgICBGU09iai5TZXRDbGFzc0d1aWQoR3VpZExpc3RbMV0pDQo+IA0KPiAtICAgICAgICAgICAg aWYgKHNlbGYuX19PdmVycmlkZUNsYXNzR3VpZCAhPSBOb25lKToNCj4gDQo+IC0gICAgICAgICAg ICAgICAgRlNPYmouU2V0Q2xhc3NHdWlkKHNlbGYuX19PdmVycmlkZUNsYXNzR3VpZCkNCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgIGVsaWYgQ2xhc3NHdWlkTnVtID09IDM6DQo+IA0KPiAtICAgICAg ICAgICAgaWYgc2VsZi5fX092ZXJyaWRlQ2xhc3NHdWlkICE9IE5vbmU6DQo+IA0KPiAtICAgICAg ICAgICAgICAgIENsYXNzR3VpZE51bSAgKz0gMQ0KPiANCj4gLSAgICAgICAgICAgIEZTT2JqID0g Q0lmckZvcm1TZXQoc2l6ZW9mKEVGSV9JRlJfRk9STV9TRVQpICsgQ2xhc3NHdWlkTnVtICoNCj4g c2l6ZW9mKEVGSV9HVUlEKSkNCj4gDQo+IC0gICAgICAgICAgICBGU09iai5TZXRDbGFzc0d1aWQo R3VpZExpc3RbMF0pDQo+IA0KPiAtICAgICAgICAgICAgRlNPYmouU2V0Q2xhc3NHdWlkKEd1aWRM aXN0WzFdKQ0KPiANCj4gLSAgICAgICAgICAgIEZTT2JqLlNldENsYXNzR3VpZChHdWlkTGlzdFsy XSkNCj4gDQo+IC0gICAgICAgICAgICBpZiAoc2VsZi5fX092ZXJyaWRlQ2xhc3NHdWlkICE9IE5v bmUpOg0KPiANCj4gLSAgICAgICAgICAgICAgICBGU09iai5TZXRDbGFzc0d1aWQoc2VsZi5fX092 ZXJyaWRlQ2xhc3NHdWlkKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgZWxpZiBDbGFzc0d1aWRO dW0gPT0gNDoNCj4gDQo+IC0gICAgICAgICAgICBpZiBzZWxmLl9fT3ZlcnJpZGVDbGFzc0d1aWQg IT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgQ2xhc3NHdWlkTnVtICArPSAxDQo+IA0K PiAtICAgICAgICAgICAgRlNPYmogPSBDSWZyRm9ybVNldChzaXplb2YoRUZJX0lGUl9GT1JNX1NF VCkgKyBDbGFzc0d1aWROdW0gKg0KPiBzaXplb2YoRUZJX0dVSUQpKQ0KPiANCj4gLSAgICAgICAg ICAgIEZTT2JqLlNldENsYXNzR3VpZChHdWlkTGlzdFswXSkNCj4gDQo+IC0gICAgICAgICAgICBG U09iai5TZXRDbGFzc0d1aWQoR3VpZExpc3RbMV0pDQo+IA0KPiAtICAgICAgICAgICAgRlNPYmou U2V0Q2xhc3NHdWlkKEd1aWRMaXN0WzJdKQ0KPiANCj4gLSAgICAgICAgICAgIEZTT2JqLlNldENs YXNzR3VpZChHdWlkTGlzdFszXSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIEZTT2JqLlNldExp bmVObyhMaW5lKQ0KPiANCj4gLSAgICAgICAgRlNPYmouU2V0R3VpZChjdHguZ3VpZERlZmluaXRp b24oKS5HdWlkKQ0KPiANCj4gLSAgICAgICAgRlNPYmouU2V0Rm9ybVNldFRpdGxlKHNlbGYuX19U cmFuc051bShjdHguTnVtYmVyKDApKSkNCj4gDQo+IC0gICAgICAgIEZTT2JqLlNldEhlbHAoc2Vs Zi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoMSkpKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgY3R4 Lk5vZGUuRGF0YSA9IEZTT2JqDQo+IA0KPiAtICAgICAgICAjIERlY2xhcmUgdW5kZWZpbmVkIFF1 ZXN0aW9uIHNvIHRoYXQgdGhleSBjYW4gYmUgdXNlZCBpbiBleHByZXNzaW9uLg0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlz aXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNjbGFzc2d1aWREZWZp bml0aW9uLg0KPiANCj4gLSAgICBkZWYgdmlzaXRDbGFzc2d1aWREZWZpbml0aW9uKHNlbGYsDQo+ IGN0eDpWZnJTeW50YXhQYXJzZXIuQ2xhc3NndWlkRGVmaW5pdGlvbkNvbnRleHQpOg0KPiANCj4g LQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+ IC0gICAgICAgIGZvciBHdWlkQ3R4IGluIGN0eC5ndWlkRGVmaW5pdGlvbigpOg0KPiANCj4gLSAg ICAgICAgICAgIGN0eC5HdWlkTGlzdC5hcHBlbmQoR3VpZEN0eC5HdWlkKQ0KPiANCj4gLQ0KPiAN Cj4gLSAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAg ICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNjbGFzc0Rl ZmluaXRpb24uDQo+IA0KPiAtICAgIGRlZiB2aXNpdENsYXNzRGVmaW5pdGlvbihzZWxmLCBjdHg6 VmZyU3ludGF4UGFyc2VyLkNsYXNzRGVmaW5pdGlvbkNvbnRleHQpOg0KPiANCj4gLSAgICAgICAg Q09iaiA9IENJZnJDbGFzcygpDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4 KQ0KPiANCj4gLSAgICAgICAgQ2xhc3MgPSAwDQo+IA0KPiAtICAgICAgICBmb3IgQ2xhc3NOYW1l Q3R4IGluIGN0eC52YWxpZENsYXNzTmFtZXMoKToNCj4gDQo+IC0gICAgICAgICAgICBDbGFzcyB8 PSBDbGFzc05hbWVDdHguQ2xhc3NOYW1lDQo+IA0KPiAtICAgICAgICBMaW5lID0gY3R4LnN0YXJ0 LmxpbmUNCj4gDQo+IC0gICAgICAgIENPYmouU2V0TGluZU5vKExpbmUpDQo+IA0KPiAtICAgICAg ICBDT2JqLlNldENsYXNzKENsYXNzKQ0KPiANCj4gLSAgICAgICAgY3R4Lk5vZGUuRGF0YSA9IENP YmoNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiANCj4gLQ0KPiAN Cj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50 YXhQYXJzZXIjdmFsaWRDbGFzc05hbWVzLg0KPiANCj4gLSAgICBkZWYgdmlzaXRWYWxpZENsYXNz TmFtZXMoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5WYWxpZENsYXNzTmFtZXNDb250ZXh0 KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0K PiAtDQo+IA0KPiAtICAgICAgICBpZiBjdHguQ2xhc3NOb25EZXZpY2UoKSAhPSBOb25lOg0KPiAN Cj4gLSAgICAgICAgICAgIGN0eC5DbGFzc05hbWUgPSBFRklfTk9OX0RFVklDRV9DTEFTUw0KPiAN Cj4gLSAgICAgICAgZWxpZiBjdHguQ2xhc3NEaXNrRGV2aWNlKCkgIT0gTm9uZToNCj4gDQo+IC0g ICAgICAgICAgICBjdHguQ2xhc3NOYW1lID0gRUZJX0RJU0tfREVWSUNFX0NMQVNTDQo+IA0KPiAt ICAgICAgICBlbGlmIGN0eC5DbGFzc1ZpZGVvRGV2aWNlKCkgIT0gTm9uZToNCj4gDQo+IC0gICAg ICAgICAgICBjdHguQ2xhc3NOYW1lID0gRUZJX1ZJREVPX0RFVklDRV9DTEFTUw0KPiANCj4gLSAg ICAgICAgZWxpZiBjdHguQ2xhc3NOZXR3b3JrRGV2aWNlKCkgIT0gTm9uZToNCj4gDQo+IC0gICAg ICAgICAgICBjdHguQ2xhc3NOYW1lID0gRUZJX05FVFdPUktfREVWSUNFX0NMQVNTDQo+IA0KPiAt ICAgICAgICBlbGlmIGN0eC5DbGFzc0lucHV0RGV2aWNlKCkgIT0gTm9uZToNCj4gDQo+IC0gICAg ICAgICAgICBjdHguQ2xhc3NOYW1lID0gRUZJX0lOUFVUX0RFVklDRV9DTEFTUw0KPiANCj4gLSAg ICAgICAgZWxpZiBjdHguQ2xhc3NPbkJvYXJkRGV2aWNlKCkgIT0gTm9uZToNCj4gDQo+IC0gICAg ICAgICAgICBjdHguQ2xhc3NOYW1lID0gRUZJX09OX0JPQVJEX0RFVklDRV9DTEFTUw0KPiANCj4g LSAgICAgICAgZWxpZiBjdHguQ2xhc3NPdGhlckRldmljZSgpICE9IE5vbmU6DQo+IA0KPiAtICAg ICAgICAgICAgY3R4LkNsYXNzTmFtZSA9IEVGSV9PVEhFUl9ERVZJQ0VfQ0xBU1MNCj4gDQo+IC0g ICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgY3R4LkNsYXNzTmFtZSA9IHNlbGYuX19U cmFuc051bShjdHguTnVtYmVyKCkpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4 LkNsYXNzTmFtZQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2Ug dHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjc3ViY2xhc3NEZWZpbml0aW9uLg0KPiAN Cj4gLSAgICBkZWYgdmlzaXRTdWJjbGFzc0RlZmluaXRpb24oc2VsZiwNCj4gY3R4OlZmclN5bnRh eFBhcnNlci5TdWJjbGFzc0RlZmluaXRpb25Db250ZXh0KToNCj4gDQo+IC0gICAgICAgIFN1Yk9i aiA9IENJZnJTdWJDbGFzcygpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hp bGRyZW4oY3R4KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5l DQo+IA0KPiAtICAgICAgICBTdWJPYmouU2V0TGluZU5vKExpbmUpDQo+IA0KPiAtICAgICAgICBT dWJDbGFzcyA9IDANCj4gDQo+IC0gICAgICAgIGlmIGN0eC5TdWJjbGFzc1NldHVwQXBwbGljYXRp b24oKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIFN1YkNsYXNzIHw9IEVGSV9TRVRVUF9B UFBMSUNBVElPTl9TVUJDTEFTUw0KPiANCj4gLSAgICAgICAgZWxpZiBjdHguU3ViY2xhc3NHZW5l cmFsQXBwbGljYXRpb24oKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIFN1YkNsYXNzIHw9 IEVGSV9HRU5FUkFMX0FQUExJQ0FUSU9OX1NVQkNMQVNTDQo+IA0KPiAtICAgICAgICBlbGlmIGN0 eC5TdWJjbGFzc0Zyb250UGFnZSgpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgU3ViQ2xh c3MgfD0gRUZJX0ZST05UX1BBR0VfU1VCQ0xBU1MNCj4gDQo+IC0gICAgICAgIGVsaWYgY3R4LlN1 YmNsYXNzU2luZ2xlVXNlKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBTdWJDbGFzcyB8 PSBFRklfU0lOR0xFX1VTRV9TVUJDTEFTUw0KPiANCj4gLSAgICAgICAgZWxzZToNCj4gDQo+IC0g ICAgICAgICAgICBTdWJDbGFzcyA9IHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKCkpDQo+IA0K PiAtDQo+IA0KPiAtICAgICAgICBTdWJPYmouU2V0U3ViQ2xhc3MoU3ViQ2xhc3MpDQo+IA0KPiAt ICAgICAgICBjdHguTm9kZS5EYXRhID0gU3ViT2JqDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBy ZXR1cm4gY3R4Lk5vZGUNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBh cnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmckZvcm1TZXRMaXN0Lg0KPiAN Cj4gLSAgICBkZWYgdmlzaXRWZnJGb3JtU2V0TGlzdChzZWxmLCBjdHg6VmZyU3ludGF4UGFyc2Vy LlZmckZvcm1TZXRMaXN0Q29udGV4dCk6DQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRy ZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgZm9yIEN0eCBpbiBjdHgudmZyRm9ybVNldCgpOg0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYuX19JbnNlcnRDaGlsZChjdHguTm9kZSwgQ3R4KQ0KPiANCj4g LQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+IA0KPiAtDQo+IA0KPiAtICAgICMg VmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJGb3JtU2V0 Lg0KPiANCj4gLSAgICBkZWYgdmlzaXRWZnJGb3JtU2V0KHNlbGYsIGN0eDpWZnJTeW50YXhQYXJz ZXIuVmZyRm9ybVNldENvbnRleHQpOg0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVu KGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIGN0eC52ZnJGb3JtRGVmaW5pdGlvbigp ICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyRm9ybURlZmlu aXRpb24oKS5Ob2RlDQo+IA0KPiAtICAgICAgICBpZiBjdHgudmZyRm9ybU1hcERlZmluaXRpb24o KSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmckZvcm1NYXBE ZWZpbml0aW9uKCkuTm9kZQ0KPiANCj4gLSAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVudEltYWdl KCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1l bnRJbWFnZSgpLk5vZGUNCj4gDQo+IC0gICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnRWYXJTdG9y ZUxpbmVhcigpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZy U3RhdGVtZW50VmFyU3RvcmVMaW5lYXIoKS5Ob2RlDQo+IA0KPiAtICAgICAgICBpZiBjdHgudmZy U3RhdGVtZW50VmFyU3RvcmVFZmkoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5O b2RlID0gY3R4LnZmclN0YXRlbWVudFZhclN0b3JlRWZpKCkuTm9kZQ0KPiANCj4gLSAgICAgICAg aWYgY3R4LnZmclN0YXRlbWVudFZhclN0b3JlTmFtZVZhbHVlKCkgIT0gTm9uZToNCj4gDQo+IC0g ICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRWYXJTdG9yZU5hbWVWYWx1ZSgp Lk5vZGUNCj4gDQo+IC0gICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnREZWZhdWx0U3RvcmUoKSAh PSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudERl ZmF1bHRTdG9yZSgpLk5vZGUNCj4gDQo+IC0gICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnREaXNh YmxlSWZGb3JtU2V0KCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBjdHguTm9kZSA9IGN0 eC52ZnJTdGF0ZW1lbnREaXNhYmxlSWZGb3JtU2V0KCkuTm9kZQ0KPiANCj4gLSAgICAgICAgaWYg Y3R4LnZmclN0YXRlbWVudFN1cHByZXNzSWZGb3JtU2V0KCkgIT0gTm9uZToNCj4gDQo+IC0gICAg ICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRTdXBwcmVzc0lmRm9ybVNldCgpLk5v ZGUNCj4gDQo+IC0gICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnRFeHRlbnNpb24oKSAhPSBOb25l Og0KPiANCj4gLSAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudEV4dGVuc2lv bigpLk5vZGUNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiANCj4g LQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQ YXJzZXIjdmZyU3RhdGVtZW50RGVmYXVsdFN0b3JlLg0KPiANCj4gLSAgICBkZWYgdmlzaXRWZnJT dGF0ZW1lbnREZWZhdWx0U3RvcmUoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJTdGF0 ZW1lbnREZWZhdWx0U3RvcmVDb250ZXh0KToNCj4gDQo+IC0gICAgICAgIERTT2JqID0gQ0lmckRl ZmF1bHRTdG9yZSgpDQo+IA0KPiAtICAgICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gDQo+ IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAg ICBSZWZOYW1lID0gY3R4Lk4udGV4dA0KPiANCj4gLSAgICAgICAgRGVmYXVsdFN0b3JlTmFtZUlk ID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5TLnRleHQpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBE ZWZhdWx0SWQgPSBFRklfSElJX0RFRkFVTFRfQ0xBU1NfU1RBTkRBUkQgaWYgY3R4LkF0dHJpYnV0 ZSgpPT0gTm9uZQ0KPiBlbHNlIHNlbGYuX19UcmFuc051bShjdHguQS50ZXh0KQ0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgaWYgZ0NWZnJEZWZhdWx0U3RvcmUuRGVmYXVsdElkUmVnaXN0ZXJlZChE ZWZhdWx0SWQpID09IEZhbHNlOg0KPiANCj4gLQ0KPiBzZWxmLl9fRXJyb3JIYW5kbGVyKGdDVmZy RGVmYXVsdFN0b3JlLlJlZ2lzdGVyRGVmYXVsdFN0b3JlKERTT2JqLkdldERlZmF1bHQNCj4gU3Rv cmUoKSwgUmVmTmFtZSwgRGVmYXVsdFN0b3JlTmFtZUlkLCBEZWZhdWx0SWQpICwgTGluZSkNCj4g DQo+IC0gICAgICAgICAgICBEU09iai5TZXREZWZhdWx0TmFtZShEZWZhdWx0U3RvcmVOYW1lSWQp DQo+IA0KPiAtICAgICAgICAgICAgRFNPYmouU2V0RGVmYXVsdElkIChEZWZhdWx0SWQpDQo+IA0K PiAtICAgICAgICAgICAgRFNPYmouU2V0TGluZU5vKExpbmUpDQo+IA0KPiAtICAgICAgICBlbHNl Og0KPiANCj4gLSAgICAgICAgICAgIHBOb2RlLCBSZXR1cm5Db2RlID0NCj4gZ0NWZnJEZWZhdWx0 U3RvcmUuUmVSZWdpc3RlckRlZmF1bHRTdG9yZUJ5SWQoRGVmYXVsdElkLCBSZWZOYW1lLA0KPiBE ZWZhdWx0U3RvcmVOYW1lSWQpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX0Vycm9ySGFuZGxl cihSZXR1cm5Db2RlLCBMaW5lKQ0KPiANCj4gLSAgICAgICAgICAgIERTT2JqLlNldERlZmF1bHRT dG9yZSA9IHBOb2RlLk9iakFkZHINCj4gDQo+IC0gICAgICAgICAgICBEU09iai5TZXRMaW5lTm8o TGluZSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBEU09iag0KPiAN Cj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+IA0KPiAtDQo+IA0KPiAtDQo+ IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5DQo+IFZmclN5bnRheFBh cnNlciN2ZnJTdGF0ZW1lbnRWYXJTdG9yZUxpbmVhci4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VmZy U3RhdGVtZW50VmFyU3RvcmVMaW5lYXIoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJT dGF0ZW1lbnRWYXJTdG9yZUxpbmVhckNvbnRleHQpOg0KPiANCj4gLSAgICAgICAgVlNPYmogPSBD SWZyVmFyU3RvcmUoKQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4g DQo+IC0gICAgICAgIExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiANCj4gLSAgICAgICAgVlNPYmou U2V0TGluZU5vKExpbmUpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBUeXBlTmFtZSA9IHN0cihj dHguZ2V0Q2hpbGQoMSkpDQo+IA0KPiAtICAgICAgICBpZiBUeXBlTmFtZSA9PSAnQ0hBUjE2JzoN Cj4gDQo+IC0gICAgICAgICAgICBUeXBlTmFtZSA9ICdVSU5UMTYnDQo+IA0KPiAtDQo+IA0KPiAt ICAgICAgICBJc0JpdFZhclN0b3JlID0gRmFsc2UNCj4gDQo+IC0gICAgICAgIGlmIGN0eC5UTiAh PSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIElzQml0VmFyU3RvcmUgPSBnQ1ZmclZhckRhdGFU eXBlREIuRGF0YVR5cGVIYXNCaXRGaWVsZChjdHguVE4udGV4dCkNCj4gDQo+IC0NCj4gDQo+IC0g ICAgICAgIFZhclN0b3JlSWQgPSBFRklfVkFSU1RPUkVfSURfSU5WQUxJRA0KPiANCj4gLSAgICAg ICAgaWYgY3R4LlZhcklkKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBWYXJTdG9yZUlk ID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5JRC50ZXh0KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYu X19Db21wYXJlRXJyb3JIYW5kbGVyKFZhclN0b3JlSWQhPTAsIFRydWUsIGN0eC5JRC5saW5lLA0K PiBjdHguSUQudGV4dCwgJ3ZhcmlkIDAgaXMgbm90IGFsbG93ZWQuJykNCj4gDQo+IC0gICAgICAg IFN0b3JlTmFtZSA9IGN0eC5TTi50ZXh0DQo+IA0KPiAtICAgICAgICBHdWlkID0gY3R4Lmd1aWRE ZWZpbml0aW9uKCkuR3VpZA0KPiANCj4gLQ0KPiBzZWxmLl9fRXJyb3JIYW5kbGVyKGdDVmZyRGF0 YVN0b3JhZ2UuRGVjbGFyZUJ1ZmZlclZhclN0b3JlKFN0b3JlTmFtZSwNCj4gR3VpZCwgZ0NWZnJW YXJEYXRhVHlwZURCLCBUeXBlTmFtZSwgVmFyU3RvcmVJZCwgSXNCaXRWYXJTdG9yZSksIExpbmUp DQo+IA0KPiAtICAgICAgICBWU09iai5TZXRHdWlkKEd1aWQpDQo+IA0KPiAtICAgICAgICBWYXJT dG9yZUlkLCBSZXR1cm5Db2RlID0gZ0NWZnJEYXRhU3RvcmFnZS5HZXRWYXJTdG9yZUlkKFN0b3Jl TmFtZSwNCj4gR3VpZCkNCj4gDQo+IC0gICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoUmV0dXJu Q29kZSwgY3R4LlNOLmxpbmUsIGN0eC5TTi50ZXh0KQ0KPiANCj4gLSAgICAgICAgVlNPYmouU2V0 VmFyU3RvcmVJZChWYXJTdG9yZUlkKQ0KPiANCj4gLSAgICAgICAgU2l6ZSwgUmV0dXJuQ29kZSA9 DQo+IGdDVmZyVmFyRGF0YVR5cGVEQi5HZXREYXRhVHlwZVNpemVCeVR5cGVOYW1lKFR5cGVOYW1l KQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX0Vycm9ySGFuZGxlcihSZXR1cm5Db2RlLCBMaW5lKQ0K PiANCj4gLSAgICAgICAgVlNPYmouU2V0U2l6ZShTaXplKQ0KPiANCj4gLSAgICAgICAgVlNPYmou U2V0TmFtZShTdG9yZU5hbWUpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBjdHguTm9kZS5EYXRh ID0gVlNPYmoNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBWU09iag0KPiANCj4gLQ0K PiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJT eW50YXhQYXJzZXIjdmZyU3RhdGVtZW50VmFyU3RvcmVFZmkuDQo+IA0KPiAtICAgIGRlZiB2aXNp dFZmclN0YXRlbWVudFZhclN0b3JlRWZpKHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJzZXIuVmZy U3RhdGVtZW50VmFyU3RvcmVFZmlDb250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIFZT RU9iaiA9IENJZnJWYXJTdG9yZUVmaSgpDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRy ZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5lDQo+IA0KPiAtICAg ICAgICBWU0VPYmouU2V0TGluZU5vKExpbmUpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBHdWlk ID0gY3R4Lmd1aWREZWZpbml0aW9uKCkuR3VpZA0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgQ3Vz dG9taXplZE5hbWUgPSBGYWxzZQ0KPiANCj4gLSAgICAgICAgSXNCaXRWYXJTdG9yZSA9IEZhbHNl DQo+IA0KPiAtICAgICAgICBWYXJTdG9yZUlkID0gRUZJX1ZBUlNUT1JFX0lEX0lOVkFMSUQNCj4g DQo+IC0gICAgICAgIElzVUVGSTIzRWZpVmFyc3RvcmUgPSBUcnVlDQo+IA0KPiAtICAgICAgICBS ZXR1cm5Db2RlID0gTm9uZQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgVHlwZU5hbWUgPSBzdHIo Y3R4LmdldENoaWxkKDEpKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgVHlwZU5hbWUgPT0g J0NIQVIxNic6DQo+IA0KPiAtICAgICAgICAgICAgVHlwZU5hbWUgPSAnVUlOVDE2Jw0KPiANCj4g LQ0KPiANCj4gLSAgICAgICAgZWxpZiBjdHguVE4gIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAg ICBDdXN0b21pemVkTmFtZSA9IFRydWUNCj4gDQo+IC0gICAgICAgICAgICBJc0JpdFZhclN0b3Jl ID0gZ0NWZnJWYXJEYXRhVHlwZURCLkRhdGFUeXBlSGFzQml0RmllbGQoVHlwZU5hbWUpDQo+IA0K PiAtDQo+IA0KPiAtICAgICAgICBpZiBjdHguVmFySWQoKSAhPSBOb25lOg0KPiANCj4gLSAgICAg ICAgICAgIFZhclN0b3JlSWQgPSBzZWxmLl9fVHJhbnNOdW0oY3R4LklELnRleHQpDQo+IA0KPiAt ICAgICAgICAgICAgc2VsZi5fX0NvbXBhcmVFcnJvckhhbmRsZXIoVmFyU3RvcmVJZCE9MCwgVHJ1 ZSwgY3R4LklELmxpbmUsDQo+IGN0eC5JRC50ZXh0LCAndmFyaWQgMCBpcyBub3QgYWxsb3dlZC4n KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgQXR0cmlidXRlcyA9IDANCj4gDQo+IC0gICAgICAg IGZvciBBdHJDdHggaW4gY3R4LnZmclZhclN0b3JlRWZpQXR0cigpOg0KPiANCj4gLSAgICAgICAg ICAgIEF0dHJpYnV0ZXMgfD0gQXRyQ3R4LkF0dHINCj4gDQo+IC0gICAgICAgIFZTRU9iai5TZXRB dHRyaWJ1dGVzKEF0dHJpYnV0ZXMpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBjdHguU04g IT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBTdG9yZU5hbWUgPSBjdHguU04udGV4dA0KPiAN Cj4gLSAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICBJc1VFRkkyM0VmaVZhcnN0b3Jl ID0gRmFsc2UNCj4gDQo+IC0gICAgICAgICAgICBOYW1lU3RyaW5nSWQgPSBzZWxmLl9fVHJhbnNO dW0oY3R4LlZOLnRleHQpDQo+IA0KPiAtICAgICAgICAgICAgU3RvcmVOYW1lID0NCj4gZ0NWZnJT dHJpbmdEQi5HZXRWYXJTdG9yZU5hbWVGcm9tU3RyaW5nSWQoTmFtZVN0cmluZ0lkKSAjDQo+IA0K PiAtICAgICAgICAgICAgaWYgU3RvcmVOYW1lID09IE5vbmU6DQo+IA0KPiAtDQo+IGdDVmZyRXJy b3JIYW5kbGUuSGFuZGxlV2FybmluZyhWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fVU5TVVBQT1JU DQo+IEVELCBjdHguVk4ubGluZSwgJ0NhblwndCBnZXQgdmFyc3RvcmUgbmFtZSBmb3IgdGhpcyBT dHJpbmdJZCEnKQ0KPiANCj4gLSAgICAgICAgICAgIGlmIG5vdChDdXN0b21pemVkTmFtZSk6DQo+ IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5W RlJfUkVUVVJOX1VOU1VQUE9SVEVELA0KPiBMaW5lLCAnT2xkIHN0eWxlIGVmaXZhcnN0b3JlIG11 c3QgaGF2ZSBTdHJpbmcgSWRlbnRpZmllciEnKQ0KPiANCj4gLSAgICAgICAgICAgIFNpemUgPSBz ZWxmLl9fVHJhbnNOdW0oY3R4Lk4udGV4dCkNCj4gDQo+IC0gICAgICAgICAgICBpZiBTaXplID09 IDE6IFR5cGVOYW1lID0gJ1VJTlQ4Jw0KPiANCj4gLSAgICAgICAgICAgIGVsaWYgU2l6ZSA9PSAy OiBUeXBlTmFtZSA9ICdVSU5UMTYnDQo+IA0KPiAtICAgICAgICAgICAgZWxpZiBTaXplID09IDQ6 IFR5cGVOYW1lID0gJ1VJTlQzMicNCj4gDQo+IC0gICAgICAgICAgICBlbGlmIFNpemUgPT0gODog VHlwZU5hbWUgPSAnVUlOVDY0Jw0KPiANCj4gLSAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAtICAg ICAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJO X1VOU1VQUE9SVEVELA0KPiBjdHguTi5saW5lLCBjdHguTi50ZXh0KQ0KPiANCj4gLQ0KPiANCj4g LSAgICAgICAgaWYgSXNVRUZJMjNFZmlWYXJzdG9yZToNCj4gDQo+IC0NCj4gc2VsZi5fX0Vycm9y SGFuZGxlcihnQ1ZmckRhdGFTdG9yYWdlLkRlY2xhcmVCdWZmZXJWYXJTdG9yZShTdG9yZU5hbWUs DQo+IEd1aWQsIGdDVmZyVmFyRGF0YVR5cGVEQiwgVHlwZU5hbWUsIFZhclN0b3JlSWQsIElzQml0 VmFyU3RvcmUsIEF0dHJpYnV0ZXMpLA0KPiBMaW5lKQ0KPiANCj4gLSAgICAgICAgICAgIFZhclN0 b3JlSWQsIFJldHVybkNvZGUgPQ0KPiBnQ1ZmckRhdGFTdG9yYWdlLkdldFZhclN0b3JlSWQoU3Rv cmVOYW1lLCBHdWlkKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoUmV0 dXJuQ29kZSwgY3R4LlNOLmxpbmUsIGN0eC5TTi50ZXh0KQ0KPiANCj4gLSAgICAgICAgICAgIFNp emUsIFJldHVybkNvZGUgPQ0KPiBnQ1ZmclZhckRhdGFUeXBlREIuR2V0RGF0YVR5cGVTaXplQnlU eXBlTmFtZShUeXBlTmFtZSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fRXJyb3JIYW5kbGVy KFJldHVybkNvZGUsIExpbmUpDQo+IA0KPiAtICAgICAgICBlbHNlOg0KPiANCj4gLQ0KPiBzZWxm Ll9fRXJyb3JIYW5kbGVyKGdDVmZyRGF0YVN0b3JhZ2UuRGVjbGFyZUJ1ZmZlclZhclN0b3JlKHNl bGYuX19HZXRUZXh0KGMNCj4gdHguVE4pLCBHdWlkLCBnQ1ZmclZhckRhdGFUeXBlREIsIFR5cGVO YW1lLCBWYXJTdG9yZUlkLCBJc0JpdFZhclN0b3JlLA0KPiBBdHRyaWJ1dGVzKSwgTGluZSkgIw0K PiANCj4gLSAgICAgICAgICAgIFZhclN0b3JlSWQsIFJldHVybkNvZGUgPQ0KPiBnQ1ZmckRhdGFT dG9yYWdlLkdldFZhclN0b3JlSWQoc2VsZi5fX0dldFRleHQoY3R4LlROKSwgR3VpZCkNCj4gDQo+ IC0gICAgICAgICAgICBzZWxmLl9fRXJyb3JIYW5kbGVyKFJldHVybkNvZGUsIGN0eC5WTi5saW5l LCBjdHguVk4udGV4dCkNCj4gDQo+IC0gICAgICAgICAgICBTaXplLCBSZXR1cm5Db2RlID0NCj4g Z0NWZnJWYXJEYXRhVHlwZURCLkdldERhdGFUeXBlU2l6ZUJ5VHlwZU5hbWUoVHlwZU5hbWUpDQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5fX0Vycm9ySGFuZGxlcihSZXR1cm5Db2RlLCBjdHguTi5s aW5lKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgVlNFT2JqLlNldEd1aWQoR3VpZCkNCj4gDQo+ IC0gICAgICAgIFZTRU9iai5TZXRWYXJTdG9yZUlkIChWYXJTdG9yZUlkKQ0KPiANCj4gLSAgICAg ICAgVlNFT2JqLlNldFNpemUoU2l6ZSkNCj4gDQo+IC0gICAgICAgIFZTRU9iai5TZXROYW1lKFN0 b3JlTmFtZSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBWU0VPYmoN Cj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiANCj4gLQ0KPiANCj4g LSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZy VmFyU3RvcmVFZmlBdHRyLg0KPiANCj4gLSAgICBkZWYgdmlzaXRWZnJWYXJTdG9yZUVmaUF0dHIo c2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJWYXJTdG9yZUVmaUF0dHJDb250ZXh0KToN Cj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAt ICAgICAgICBjdHguQXR0ciA9IHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKCkpDQo+IA0KPiAt ICAgICAgICByZXR1cm4gY3R4LkF0dHINCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBh cnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudFZhclN0 b3JlTmFtZVZhbHVlLg0KPiANCj4gLSAgICBkZWYgdmlzaXRWZnJTdGF0ZW1lbnRWYXJTdG9yZU5h bWVWYWx1ZShzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudFZhclN0b3Jl TmFtZVZhbHVlQ29udGV4dCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBWU05WT2JqID0gQ0lm clZhclN0b3JlTmFtZVZhbHVlKCkNCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihj dHgpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBHdWlkID0gY3R4Lmd1aWREZWZpbml0aW9uKCku R3VpZA0KPiANCj4gLSAgICAgICAgSGFzVmFyU3RvcmVJZCA9IEZhbHNlDQo+IA0KPiAtICAgICAg ICBWYXJTdG9yZUlkID0gRUZJX1ZBUlNUT1JFX0lEX0lOVkFMSUQNCj4gDQo+IC0NCj4gDQo+IC0g ICAgICAgIGlmIGN0eC5WYXJJZCgpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgSGFzVmFy U3RvcmVJZCA9IFRydWUNCj4gDQo+IC0gICAgICAgICAgICBWYXJTdG9yZUlkID0gc2VsZi5fX1Ry YW5zTnVtKGN0eC5JRC50ZXh0KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19Db21wYXJlRXJy b3JIYW5kbGVyKFZhclN0b3JlSWQgIT0wLCBUcnVlLCBjdHguSUQubGluZSwNCj4gY3R4LklELnRl eHQsICd2YXJpZCAwIGlzIG5vdCBhbGxvd2VkJykNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIFN0 b3JlTmFtZSA9IGN0eC5TTi50ZXh0DQo+IA0KPiAtICAgICAgICBDcmVhdGVkID0gRmFsc2UNCj4g DQo+IC0NCj4gDQo+IC0gICAgICAgIHNJbmRleCA9IDAgaWYgIEhhc1ZhclN0b3JlSWQgPT0gRmFs c2UgZWxzZSAxDQo+IA0KPiAtICAgICAgICBlSW5kZXggPSBsZW4oY3R4Lk5hbWUoKSkNCj4gDQo+ IC0gICAgICAgIGZvciBpIGluIHJhbmdlKHNJbmRleCwgZUluZGV4KToNCj4gDQo+IC0gICAgICAg ICAgICBpZiBDcmVhdGVkID09IEZhbHNlOg0KPiANCj4gLQ0KPiBzZWxmLl9fRXJyb3JIYW5kbGVy KGdDVmZyRGF0YVN0b3JhZ2UuRGVjbGFyZU5hbWVWYXJTdG9yZUJlZ2luKFN0b3JlTmFtDQo+IGUs IFZhclN0b3JlSWQpLCBjdHguU04ubGluZSwgY3R4LlNOLnRleHQpDQo+IA0KPiAtICAgICAgICAg ICAgICAgIENyZWF0ZWQgPSBUcnVlDQo+IA0KPiAtICAgICAgICAgICAgSXRlbSA9IHNlbGYuX19U cmFuc051bShjdHguTnVtYmVyKGkpKQ0KPiANCj4gLSAgICAgICAgICAgIGdDVmZyRGF0YVN0b3Jh Z2UuTmFtZVRhYmxlQWRkSXRlbShJdGVtKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgZ0NWZnJE YXRhU3RvcmFnZS5EZWNsYXJlTmFtZVZhclN0b3JlRW5kKEd1aWQpDQo+IA0KPiAtDQo+IA0KPiAt ICAgICAgICBWU05WT2JqLlNldExpbmVObyhjdHguc3RhcnQubGluZSkNCj4gDQo+IC0gICAgICAg IFZTTlZPYmouU2V0R3VpZChHdWlkKQ0KPiANCj4gLSAgICAgICAgVmFyc3RvcmVJZCwgUmV0dXJu Q29kZSA9IGdDVmZyRGF0YVN0b3JhZ2UuR2V0VmFyU3RvcmVJZChTdG9yZU5hbWUsDQo+IEd1aWQp DQo+IA0KPiAtICAgICAgICBzZWxmLl9fRXJyb3JIYW5kbGVyKFJldHVybkNvZGUsIGN0eC5TTi5s aW5lLCBjdHguU04udGV4dCkNCj4gDQo+IC0gICAgICAgIFZTTlZPYmouU2V0VmFyU3RvcmVJZChW YXJzdG9yZUlkKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgY3R4Lk5vZGUuRGF0YSA9IFZTTlZP YmoNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiANCj4gLQ0KPiAN Cj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieQ0KPiBWZnJTeW50YXhQYXJz ZXIjdmZyU3RhdGVtZW50RGlzYWJsZUlmRm9ybVNldC4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VmZy U3RhdGVtZW50RGlzYWJsZUlmRm9ybVNldChzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLlZm clN0YXRlbWVudERpc2FibGVJZkZvcm1TZXRDb250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAg ICAgIERJT2JqID0gQ0lmckRpc2FibGVJZigpDQo+IA0KPiAtICAgICAgICBESU9iai5TZXRMaW5l Tm8oY3R4LnN0YXJ0LmxpbmUpDQo+IA0KPiAtICAgICAgICBzZWxmLl9fQ29uc3RhbnRPbmx5SW5F eHByZXNzaW9uID0gVHJ1ZQ0KPiANCj4gLSAgICAgICAgY3R4Lk5vZGUuRGF0YSA9IERJT2JqDQo+ IA0KPiAtICAgICAgICBDb25kaXRpb24gPSAnZGlzYWJsZWlmJyArICcgJyArDQo+IHNlbGYuX19F eHRyYWN0T3JpZ2luYWxUZXh0KGN0eC52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uKCkpDQo+IA0KPiAt ICAgICAgICBjdHguTm9kZS5Db25kaXRpb24gPSBDb25kaXRpb24NCj4gDQo+IC0gICAgICAgIHNl bGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4 Lk5vZGUNCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQg YnkNCj4gVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudFN1cHByZXNzSWZGb3JtU2V0Lg0KPiAN Cj4gLSAgICBkZWYgdmlzaXRWZnJTdGF0ZW1lbnRTdXBwcmVzc0lmRm9ybVNldChzZWxmLA0KPiBj dHg6VmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudFN1cHByZXNzSWZGb3JtU2V0Q29udGV4dCk6 DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBTSU9iaiA9IENJZnJTdXBwcmVzc0lmKCkNCj4gDQo+ IC0gICAgICAgIFNJT2JqLlNldExpbmVObyhjdHguc3RhcnQubGluZSkNCj4gDQo+IC0gICAgICAg IGN0eC5Ob2RlLkRhdGEgPSBTSU9iag0KPiANCj4gLSAgICAgICAgQ29uZGl0aW9uID0gJ3N1cHBy ZXNzaWYnICsgJyAnICsNCj4gc2VsZi5fX0V4dHJhY3RPcmlnaW5hbFRleHQoY3R4LnZmclN0YXRl bWVudEV4cHJlc3Npb24oKSkNCj4gDQo+IC0gICAgICAgIGN0eC5Ob2RlLkNvbmRpdGlvbiA9IENv bmRpdGlvbg0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0g ICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZp c2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjZ3VpZFN1YkRlZmlu aXRpb24uDQo+IA0KPiAtICAgIGRlZiB2aXNpdEd1aWRTdWJEZWZpbml0aW9uKHNlbGYsDQo+IGN0 eDpWZnJTeW50YXhQYXJzZXIuR3VpZFN1YkRlZmluaXRpb25Db250ZXh0KToNCj4gDQo+IC0NCj4g DQo+IC0gICAgICAgIGN0eC5HdWlkLkRhdGE0WzBdID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1i ZXIoMCkpDQo+IA0KPiAtICAgICAgICBjdHguR3VpZC5EYXRhNFsxXSA9IHNlbGYuX19UcmFuc051 bShjdHguTnVtYmVyKDEpKQ0KPiANCj4gLSAgICAgICAgY3R4Lkd1aWQuRGF0YTRbMl0gPSBzZWxm Ll9fVHJhbnNOdW0oY3R4Lk51bWJlcigyKSkNCj4gDQo+IC0gICAgICAgIGN0eC5HdWlkLkRhdGE0 WzNdID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoMykpDQo+IA0KPiAtICAgICAgICBjdHgu R3VpZC5EYXRhNFs0XSA9IHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKDQpKQ0KPiANCj4gLSAg ICAgICAgY3R4Lkd1aWQuRGF0YTRbNV0gPSBzZWxmLl9fVHJhbnNOdW0oY3R4Lk51bWJlcig1KSkN Cj4gDQo+IC0gICAgICAgIGN0eC5HdWlkLkRhdGE0WzZdID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5O dW1iZXIoNikpDQo+IA0KPiAtICAgICAgICBjdHguR3VpZC5EYXRhNFs3XSA9IHNlbGYuX19UcmFu c051bShjdHguTnVtYmVyKDcpKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYu dmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQg YSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNndWlkRGVmaW5pdGlvbi4N Cj4gDQo+IC0gICAgZGVmIHZpc2l0R3VpZERlZmluaXRpb24oc2VsZiwgY3R4OlZmclN5bnRheFBh cnNlci5HdWlkRGVmaW5pdGlvbkNvbnRleHQpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2Vs Zi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGN0eC5HdWlkLkRh dGExID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoMCkpDQo+IA0KPiAtICAgICAgICBjdHgu R3VpZC5EYXRhMiA9IHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKDEpKQ0KPiANCj4gLSAgICAg ICAgY3R4Lkd1aWQuRGF0YTMgPSBzZWxmLl9fVHJhbnNOdW0oY3R4Lk51bWJlcigyKSkNCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBOb25lDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAt ICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNnZXRT dHJpbmdJZC4NCj4gDQo+IC0gICAgZGVmIHZpc2l0R2V0U3RyaW5nSWQoc2VsZiwgY3R4OlZmclN5 bnRheFBhcnNlci5HZXRTdHJpbmdJZENvbnRleHQpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAg Y3R4LlN0cmluZ0lkID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoKSkNCj4gDQo+IC0NCj4g DQo+IC0gICAgICAgIHJldHVybiBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLQ0KPiAN Cj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50 YXhQYXJzZXIjdmZyU3RhdGVtZW50SGVhZGVyLg0KPiANCj4gLSAgICBkZWYgdmlzaXRWZnJTdGF0 ZW1lbnRIZWFkZXIoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRIZWFk ZXJDb250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGN0eC5PcE9iaiA9IGN0eC5wYXJl bnRDdHguT3BPYmoNCj4gDQo+IC0gICAgICAgIGlmIGN0eC5PcE9iaiAhPSBOb25lOg0KPiANCj4g LSAgICAgICAgICAgIFByb21wdCA9IHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKDApKQ0KPiAN Cj4gLSAgICAgICAgICAgIGN0eC5PcE9iai5TZXRQcm9tcHQoUHJvbXB0KQ0KPiANCj4gLSAgICAg ICAgICAgIEhlbHAgPSBzZWxmLl9fVHJhbnNOdW0oY3R4Lk51bWJlcigxKSkNCj4gDQo+IC0gICAg ICAgICAgICBjdHguT3BPYmouU2V0SGVscChIZWxwKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAg cmV0dXJuIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAt ICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJR dWVzdGlvbkhlYWRlci4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VmZyUXVlc3Rpb25IZWFkZXIoc2Vs ZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJRdWVzdGlvbkhlYWRlckNvbnRleHQpOg0KPiAN Cj4gLQ0KPiANCj4gLSAgICAgICAgY3R4Lk9wT2JqID0gY3R4LnBhcmVudEN0eC5PcE9iag0KPiAN Cj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiAN Cj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50 YXhQYXJzZXIjdmZyUXVlc3Rpb25CYXNlSW5mby4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VmZyUXVl c3Rpb25CYXNlSW5mbyhzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLlZmclF1ZXN0aW9uQmFz ZUluZm9Db250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGN0eC5PcE9iaiA9IGN0eC5w YXJlbnRDdHguT3BPYmoNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGN0eC5CYXNlSW5mby5WYXJU eXBlID0gRUZJX0lGUl9UWVBFX09USEVSDQo+IA0KPiAtICAgICAgICBjdHguQmFzZUluZm8uVmFy VG90YWxTaXplID0gMA0KPiANCj4gLSAgICAgICAgY3R4LkJhc2VJbmZvLkluZm8uVmFyT2Zmc2V0 ID0gRUZJX1ZBUk9GRlNFVF9JTlZBTElEDQo+IA0KPiAtICAgICAgICBjdHguQmFzZUluZm8uVmFy U3RvcmVJZCA9IEVGSV9WQVJTVE9SRV9JRF9JTlZBTElEDQo+IA0KPiAtICAgICAgICBjdHguQmFz ZUluZm8uSXNCaXRWYXIgPSBGYWxzZQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgUU5hbWUgPSBO b25lDQo+IA0KPiAtICAgICAgICBRSWQgPSBFRklfUVVFU1RJT05fSURfSU5WQUxJRA0KPiANCj4g LSAgICAgICAgUmV0dXJuQ29kZSA9IE5vbmUNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYu dmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtICAgICAgICBpZiBjdHguTmFtZSgpICE9IE5vbmU6 DQo+IA0KPiAtICAgICAgICAgICAgUU5hbWUgPSBjdHguUU4udGV4dA0KPiANCj4gLSAgICAgICAg ICAgIFJldHVybkNvZGUgPSBzZWxmLl9fQ1ZmclF1ZXN0aW9uREIuRmluZFF1ZXN0aW9uQnlOYW1l KFFOYW1lKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19Db21wYXJlRXJyb3JIYW5kbGVyKFJl dHVybkNvZGUsDQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9VTkRFRklORUQsIGN0eC5RTi5s aW5lLCBjdHguUU4udGV4dCwgJ2hhcw0KPiBhbHJlYWR5IGJlZW4gdXNlZCBwbGVhc2UgdXNlZCBh bnRoZXIgbmFtZScpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBWYXJJZFN0ciA9ICcnIGlmIGN0 eC5WYXJJZCgpID09IE5vbmUgZWxzZSAgY3R4LnZmclN0b3JhZ2VWYXJJZCgpLlZhcklkU3RyDQo+ IA0KPiAtICAgICAgICBpZiBjdHguUXVlc3Rpb25JZCgpICE9IE5vbmU6DQo+IA0KPiAtICAgICAg ICAgICAgUUlkID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5JRC50ZXh0KQ0KPiANCj4gLSAgICAgICAg ICAgIFJldHVybkNvZGUgPSBzZWxmLl9fQ1ZmclF1ZXN0aW9uREIuRmluZFF1ZXN0aW9uQnlJZChR SWQpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX0NvbXBhcmVFcnJvckhhbmRsZXIoUmV0dXJu Q29kZSwNCj4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1VOREVGSU5FRCwgY3R4LklELmxpbmUs IGN0eC5JRC50ZXh0LCAnaGFzIGFscmVhZHkNCj4gYmVlbiB1c2VkIHBsZWFzZSB1c2VkIGFudGhl ciBudW1iZXInKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgY3R4LlFUeXBlID09IEVGSV9R VUVTSU9OX1RZUEUuUVVFU1RJT05fTk9STUFMOg0KPiANCj4gLSAgICAgICAgICAgIGlmIHNlbGYu X19Jc0NoZWNrQm94T3A6DQo+IA0KPiAtICAgICAgICAgICAgICAgIGN0eC5CYXNlSW5mby5WYXJU eXBlID0gRUZJX0lGUl9UWVBFX0JPT0xFQU4NCj4gDQo+IC0gICAgICAgICAgICBRSWQsIFJldHVy bkNvZGUgPSBzZWxmLl9fQ1ZmclF1ZXN0aW9uREIuUmVnaXN0ZXJRdWVzdGlvbihRTmFtZSwNCj4g VmFySWRTdHIsIFFJZCkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fRXJyb3JIYW5kbGVyKFJl dHVybkNvZGUsIGN0eC5zdGFydC5saW5lKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgZWxpZiBj dHguUVR5cGUgPT0gRUZJX1FVRVNJT05fVFlQRS5RVUVTVElPTl9EQVRFOg0KPiANCj4gLSAgICAg ICAgICAgIGN0eC5CYXNlSW5mby5WYXJUeXBlID0gRUZJX0lGUl9UWVBFX0RBVEUNCj4gDQo+IC0g ICAgICAgICAgICBRSWQsIFJldHVybkNvZGUgPQ0KPiBzZWxmLl9fQ1ZmclF1ZXN0aW9uREIuUmVn aXN0ZXJOZXdEYXRlUXVlc3Rpb24oUU5hbWUsIFZhcklkU3RyLCBRSWQpDQo+IA0KPiAtICAgICAg ICAgICAgc2VsZi5fX0Vycm9ySGFuZGxlcihSZXR1cm5Db2RlLCBjdHguc3RhcnQubGluZSkNCj4g DQo+IC0NCj4gDQo+IC0gICAgICAgIGVsaWYgY3R4LlFUeXBlID09IEVGSV9RVUVTSU9OX1RZUEUu UVVFU1RJT05fVElNRToNCj4gDQo+IC0gICAgICAgICAgICBjdHguQmFzZUluZm8uVmFyVHlwZSA9 IEVGSV9JRlJfVFlQRV9USU1FDQo+IA0KPiAtICAgICAgICAgICAgUUlkLCBSZXR1cm5Db2RlID0N Cj4gc2VsZi5fX0NWZnJRdWVzdGlvbkRCLlJlZ2lzdGVyTmV3VGltZVF1ZXN0aW9uKFFOYW1lLCBW YXJJZFN0ciwgUUlkKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoUmV0 dXJuQ29kZSwgY3R4LnN0YXJ0LmxpbmUpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBlbGlmIGN0 eC5RVHlwZSA9PSBFRklfUVVFU0lPTl9UWVBFLlFVRVNUSU9OX1JFRjoNCj4gDQo+IC0gICAgICAg ICAgICBjdHguQmFzZUluZm8uVmFyVHlwZSA9IEVGSV9JRlJfVFlQRV9SRUYNCj4gDQo+IC0gICAg ICAgICAgICBpZiBWYXJJZFN0ciAhPSAnJzogI3N0YW5kIGZvciBxdWVzdGlvbiB3aXRoIHN0b3Jh Z2UuDQo+IA0KPiAtICAgICAgICAgICAgICAgIFFJZCwgUmV0dXJuQ29kZSA9DQo+IHNlbGYuX19D VmZyUXVlc3Rpb25EQi5SZWdpc3RlclJlZlF1ZXN0aW9uKFFOYW1lLCBWYXJJZFN0ciwgUUlkKQ0K PiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLl9fRXJyb3JIYW5kbGVyKFJldHVybkNvZGUsIGN0 eC5zdGFydC5saW5lKQ0KPiANCj4gLSAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAg ICAgICAgIFFJZCwgUmV0dXJuQ29kZSA9DQo+IHNlbGYuX19DVmZyUXVlc3Rpb25EQi5SZWdpc3Rl clF1ZXN0aW9uKFFOYW1lLCBOb25lLCBRSWQpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYu X19FcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwgY3R4LnN0YXJ0LmxpbmUpDQo+IA0KPiAtICAgICAg ICBlbHNlOg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJu Q29kZS5WRlJfUkVUVVJOX0ZBVEFMX0VSUk9SLA0KPiBjdHguc3RhcnQubGluZSkNCj4gDQo+IC0N Cj4gDQo+IC0gICAgICAgIHNlbGYuX19DdXJyUWVzdFZhckluZm8gPSBjdHguQmFzZUluZm8NCj4g DQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIGN0eC5PcE9iaiAhPSBOb25lOg0KPiANCj4gLSAgICAg ICAgICAgIGN0eC5PcE9iai5TZXRRdWVzdGlvbklkKFFJZCkNCj4gDQo+IC0gICAgICAgICAgICBp ZiBjdHguQmFzZUluZm8uVmFyU3RvcmVJZCAhPSBFRklfVkFSU1RPUkVfSURfSU5WQUxJRDoNCj4g DQo+IC0gICAgICAgICAgICAgICAgY3R4Lk9wT2JqLlNldFZhclN0b3JlSW5mbyhjdHguQmFzZUlu Zm8pDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4Lk9wT2JqDQo+IA0KPiAtDQo+ IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5DQo+IFZm clN5bnRheFBhcnNlciNxdWVzdGlvbmhlYWRlckZsYWdzRmllbGQuDQo+IA0KPiAtICAgIGRlZiB2 aXNpdFF1ZXN0aW9uaGVhZGVyRmxhZ3NGaWVsZChzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2Vy LlF1ZXN0aW9uaGVhZGVyRmxhZ3NGaWVsZENvbnRleHQpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAg ICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0gICAgICAgIGlmIGN0eC5SZWFkT25s eUZsYWcoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5RSEZsYWcgPSAweDAxDQo+ IA0KPiAtDQo+IA0KPiAtICAgICAgICBlbGlmIGN0eC5JbnRlcmFjdGl2ZUZsYWcoKSAhPSBOb25l Og0KPiANCj4gLSAgICAgICAgICAgIGN0eC5RSEZsYWcgPSAweDA0DQo+IA0KPiAtDQo+IA0KPiAt ICAgICAgICBlbGlmIGN0eC5SZXNldFJlcXVpcmVkRmxhZygpICE9IE5vbmU6DQo+IA0KPiAtICAg ICAgICAgICAgY3R4LlFIRmxhZyA9IDB4MTANCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGVsaWYg Y3R4LlJlc3RTdHlsZUZsYWcoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5RSEZs YWcgPSAweDIwDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBlbGlmIGN0eC5SZWNvbm5lY3RSZXF1 aXJlZEZsYWcoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5RSEZsYWcgPSAweDQw DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBlbGlmIGN0eC5PcHRpb25Pbmx5RmxhZygpICE9IE5v bmU6DQo+IA0KPiAtDQo+IGdDVmZyRXJyb3JIYW5kbGUuSGFuZGxlV2FybmluZyhFRklfVkZSX1dB Uk5JTkdfQ09ERS5WRlJfV0FSTklOR18NCj4gT0JTT0xFVEVEX0ZSQU1FV09SS19PUENPREUsIGN0 eC5PLmxpbmUsIGN0eC5PLnRleHQpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBlbGlmIGN0eC5O VkFjY2Vzc0ZsYWcoKSAhPSBOb25lOg0KPiANCj4gLQ0KPiBnQ1ZmckVycm9ySGFuZGxlLkhhbmRs ZVdhcm5pbmcoRUZJX1ZGUl9XQVJOSU5HX0NPREUuVkZSX1dBUk5JTkdfDQo+IE9CU09MRVRFRF9G UkFNRVdPUktfT1BDT0RFLCBjdHguTi5saW5lLCBjdHguTi50ZXh0KQ0KPiANCj4gLQ0KPiANCj4g LSAgICAgICAgZWxpZiBjdHguTGF0ZUNoZWNrRmxhZygpICE9IE5vbmU6DQo+IA0KPiAtDQo+IGdD VmZyRXJyb3JIYW5kbGUuSGFuZGxlV2FybmluZyhFRklfVkZSX1dBUk5JTkdfQ09ERS5WRlJfV0FS TklOR18NCj4gT0JTT0xFVEVEX0ZSQU1FV09SS19PUENPREUsIGN0eC5MLmxpbmUsIGN0eC5MLnRl eHQpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4LlFIRmxhZw0KPiANCj4gLQ0K PiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJz ZXIjdmZyU3RvcmFnZVZhcklkUnVsZTEuDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmclN0b3JhZ2VW YXJJZFJ1bGUxKHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJzZXIuVmZyU3RvcmFnZVZhcklkUnVs ZTFDb250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihj dHgpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBTTmFtZSA9IGN0eC5TTjEudGV4dA0KPiANCj4g LSAgICAgICAgY3R4LlZhcklkU3RyICs9IFNOYW1lDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBJ ZHggPSBzZWxmLl9fVHJhbnNOdW0oY3R4LkkudGV4dCkNCj4gDQo+IC0gICAgICAgIGN0eC5WYXJJ ZFN0ciArPSAnWycNCj4gDQo+IC0gICAgICAgIGN0eC5WYXJJZFN0ciArPSBjdHguSS50ZXh0DQo+ IA0KPiAtICAgICAgICBjdHguVmFySWRTdHIgKz0gJ10nDQo+IA0KPiAtDQo+IA0KPiAtICAgICAg ICBjdHguQmFzZUluZm8uVmFyU3RvcmVJZCwgUmV0dXJuQ29kZSA9DQo+IGdDVmZyRGF0YVN0b3Jh Z2UuR2V0VmFyU3RvcmVJZChTTmFtZSkNCj4gDQo+IC0gICAgICAgIGlmIGN0eC5DaGVja0ZsYWcg b3IgUmV0dXJuQ29kZSA9PQ0KPiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUzoNCj4g DQo+IC0gICAgICAgICAgICBzZWxmLl9fRXJyb3JIYW5kbGVyKFJldHVybkNvZGUsIGN0eC5TTjEu bGluZSwgY3R4LlNOMS50ZXh0KQ0KPiANCj4gLQ0KPiBzZWxmLl9fRXJyb3JIYW5kbGVyKGdDVmZy RGF0YVN0b3JhZ2UuR2V0TmFtZVZhclN0b3JlSW5mbyhjdHguQmFzZUluZm8sDQo+IElkeCksIGN0 eC5TTjEubGluZSwgY3R4LlNOMS50ZXh0KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJu IGN0eC5WYXJJZFN0cg0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFy c2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyU3RvcmFnZVZhcklkUnVsZTIu DQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmclN0b3JhZ2VWYXJJZFJ1bGUyKHNlbGYsDQo+IGN0eDpW ZnJTeW50YXhQYXJzZXIuVmZyU3RvcmFnZVZhcklkUnVsZTJDb250ZXh0KToNCj4gDQo+IC0NCj4g DQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtDQo+IA0KPiAtICAg ICAgICBWYXJTdHIgPSAnJyAjIHR5cGUuZmllbGQNCj4gDQo+IC0gICAgICAgIFNOYW1lID0gY3R4 LlNOMi50ZXh0DQo+IA0KPiAtICAgICAgICBjdHguVmFySWRTdHIgKz0gU05hbWUNCj4gDQo+IC0g ICAgICAgIGN0eC5CYXNlSW5mby5WYXJTdG9yZUlkLCBSZXR1cm5Db2RlID0NCj4gZ0NWZnJEYXRh U3RvcmFnZS5HZXRWYXJTdG9yZUlkKFNOYW1lKQ0KPiANCj4gLSAgICAgICAgaWYgY3R4LkNoZWNr RmxhZyBvciBSZXR1cm5Db2RlID09DQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNT Og0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwgY3R4 LlNOMi5saW5lLCBjdHguU04yLnRleHQpDQo+IA0KPiAtICAgICAgICAgICAgVmFyU3RvcmVUeXBl ID0NCj4gZ0NWZnJEYXRhU3RvcmFnZS5HZXRWYXJTdG9yZVR5cGUoY3R4LkJhc2VJbmZvLlZhclN0 b3JlSWQpDQo+IA0KPiAtICAgICAgICAgICAgaWYgVmFyU3RvcmVUeXBlID09DQo+IEVGSV9WRlJf VkFSU1RPUkVfVFlQRS5FRklfVkZSX1ZBUlNUT1JFX0JVRkZFUiBvciBWYXJTdG9yZVR5cGUgPT0N Cj4gRUZJX1ZGUl9WQVJTVE9SRV9UWVBFLkVGSV9WRlJfVkFSU1RPUkVfQlVGRkVSX0JJVFM6DQo+ IA0KPiAtICAgICAgICAgICAgICAgIFROYW1lLCBSZXR1cm5Db2RlMiA9DQo+IGdDVmZyRGF0YVN0 b3JhZ2UuR2V0QnVmZmVyVmFyU3RvcmVEYXRhVHlwZU5hbWUoY3R4LkJhc2VJbmZvLlZhclN0b3Jl SWQpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoUmV0dXJuQ29k ZTIsIGN0eC5TTjIubGluZSwgY3R4LlNOMi50ZXh0KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBW YXJTdHIgKz0gVE5hbWUNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIENvdW50ID0gbGVuKGN0eC5E b3QoKSkNCj4gDQo+IC0gICAgICAgIGZvciBpIGluIHJhbmdlKDAsIENvdW50KToNCj4gDQo+IC0g ICAgICAgICAgICBpZiBjdHguQ2hlY2tGbGFnIG9yIFJldHVybkNvZGUgPT0NCj4gVmZyUmV0dXJu Q29kZS5WRlJfUkVUVVJOX1NVQ0NFU1M6DQo+IA0KPiAtICAgICAgICAgICAgICAgIGNvbmQgPSAo VmFyU3RvcmVUeXBlICE9DQo+IEVGSV9WRlJfVkFSU1RPUkVfVFlQRS5FRklfVkZSX1ZBUlNUT1JF X0JVRkZFUikgYW5kIChWYXJTdG9yZVR5cGUgIT0NCj4gRUZJX1ZGUl9WQVJTVE9SRV9UWVBFLkVG SV9WRlJfVkFSU1RPUkVfQlVGRkVSX0JJVFMpDQo+IA0KPiAtICAgICAgICAgICAgICAgIFJldHVy bkNvZGUgPQ0KPiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fRUZJVkFSU1RPUkVfVVNFX0VSUk9S IGlmIGNvbmQgZWxzZQ0KPiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiANCj4g LSAgICAgICAgICAgICAgICBzZWxmLl9fRXJyb3JIYW5kbGVyKFJldHVybkNvZGUsIGN0eC5TTjIu bGluZSwgY3R4LlNOMi50ZXh0KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgIGN0eC5WYXJJ ZFN0ciArPSAnLicNCj4gDQo+IC0gICAgICAgICAgICBWYXJTdHIgKz0gJy4nDQo+IA0KPiAtICAg ICAgICAgICAgY3R4LlZhcklkU3RyICs9IGN0eC5hcnJheU5hbWUoaSkuU3ViU3RyDQo+IA0KPiAt ICAgICAgICAgICAgVmFyU3RyICs9IGN0eC5hcnJheU5hbWUoaSkuU3ViU3RyWg0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgaWYgVmFyU3RvcmVUeXBlID09IEVGSV9WRlJfVkFSU1RPUkVfVFlQRS5F RklfVkZSX1ZBUlNUT1JFX0VGSToNCj4gDQo+IC0NCj4gc2VsZi5fX0Vycm9ySGFuZGxlcihnQ1Zm ckRhdGFTdG9yYWdlLkdldEVmaVZhclN0b3JlSW5mbyhjdHguQmFzZUluZm8pLA0KPiBjdHguU04y LmxpbmUsIGN0eC5TTjIudGV4dCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGVsaWYgVmFyU3Rv cmVUeXBlID09DQo+IEVGSV9WRlJfVkFSU1RPUkVfVFlQRS5FRklfVkZSX1ZBUlNUT1JFX0JVRkZF UiBvciBWYXJTdG9yZVR5cGUgPT0NCj4gRUZJX1ZGUl9WQVJTVE9SRV9UWVBFLkVGSV9WRlJfVkFS U1RPUkVfQlVGRkVSX0JJVFM6DQo+IA0KPiAtICAgICAgICAgICAgY3R4LkJhc2VJbmZvLkluZm8u VmFyT2Zmc2V0LCBjdHguQmFzZUluZm8uVmFyVHlwZSwNCj4gY3R4LkJhc2VJbmZvLlZhclRvdGFs U2l6ZSwgY3R4LkJhc2VJbmZvLklzQml0VmFyLCBSZXR1cm5Db2RlID0NCj4gZ0NWZnJWYXJEYXRh VHlwZURCLkdldERhdGFGaWVsZEluZm8oVmFyU3RyKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYu X19FcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwgY3R4LlNOMi5saW5lLCBWYXJTdHIpDQo+IA0KPiAt ICAgICAgICAgICAgVmFyR3VpZCA9IGdDVmZyRGF0YVN0b3JhZ2UuR2V0VmFyU3RvcmVHdWlkKGN0 eC5CYXNlSW5mby5WYXJTdG9yZUlkKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19FcnJvckhh bmRsZXIoZ0NWZnJCdWZmZXJDb25maWcuUmVnaXN0ZXIoU05hbWUsIFZhckd1aWQpLA0KPiBjdHgu U04yLmxpbmUpDQo+IA0KPiAtICAgICAgICAgICAgRHVtbXkgPSBzZWxmLmdaZXJvRWZpSWZyVHlw ZVZhbHVlDQo+IA0KPiAtICAgICAgICAgICAgUmV0dXJuQ29kZSA9IFZmclJldHVybkNvZGUoZ0NW ZnJCdWZmZXJDb25maWcuV3JpdGUoDQo+IA0KPiAtICAgICAgICAgICAgICAgICdhJywNCj4gDQo+ IC0gICAgICAgICAgICAgICAgU05hbWUsDQo+IA0KPiAtICAgICAgICAgICAgICAgIFZhckd1aWQs DQo+IA0KPiAtICAgICAgICAgICAgICAgIE5vbmUsDQo+IA0KPiAtICAgICAgICAgICAgICAgIGN0 eC5CYXNlSW5mby5WYXJUeXBlLA0KPiANCj4gLSAgICAgICAgICAgICAgICBjdHguQmFzZUluZm8u SW5mby5WYXJPZmZzZXQsDQo+IA0KPiAtICAgICAgICAgICAgICAgIGN0eC5CYXNlSW5mby5WYXJU b3RhbFNpemUsDQo+IA0KPiAtICAgICAgICAgICAgICAgIER1bW15KSkgIz90aGUgZGVmaW5pdGlv biBvZiBkdW1teSBpcyBuZWVkZWQgdG8gY2hlY2sNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9f RXJyb3JIYW5kbGVyKFJldHVybkNvZGUsIGN0eC5TTjIubGluZSkNCj4gDQo+IC0NCj4gc2VsZi5f X0Vycm9ySGFuZGxlcihnQ1ZmckRhdGFTdG9yYWdlLkFkZEJ1ZmZlclZhclN0b3JlRmllbGRJbmZv KGN0eC5CYXNlSW5mDQo+IG8pLCBjdHguU04yLmxpbmUpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAg ICByZXR1cm4gY3R4LlZhcklkU3RyDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJz ZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJDb25zdGFudFZhbHVlRmllbGQu DQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmckNvbnN0YW50VmFsdWVGaWVsZChzZWxmLA0KPiBjdHg6 VmZyU3ludGF4UGFyc2VyLlZmckNvbnN0YW50VmFsdWVGaWVsZENvbnRleHQpOg0KPiANCj4gLSAg ICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIElu dERlY1N0eWxlID0gRmFsc2UNCj4gDQo+IC0gICAgICAgIGlmIHNlbGYuX19DdXJyZW50TWluTWF4 RGF0YSAhPSBOb25lIGFuZA0KPiBzZWxmLl9fQ3VycmVudE1pbk1heERhdGEuSXNOdW1lcmljT3Bj b2RlKCk6DQo+IA0KPiAtICAgICAgICAgICAgTnVtZXJpY1FzdCA9IENJZnJOdW1lcmljKHNlbGYu X19DdXJyZW50UXVlc3Rpb24pICMNCj4gDQo+IC0gICAgICAgICAgICBJbnREZWNTdHlsZSA9IFRy dWUgaWYgKE51bWVyaWNRc3QuR2V0TnVtZXJpY0ZsYWdzKCkgJg0KPiBFRklfSUZSX0RJU1BMQVkp ID09IDAgZWxzZSBGYWxzZSAjDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBjdHguVHJ1ZVN5 bWJvbCgpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4LlZhbHVlLmIgPSAxDQo+IA0K PiAtDQo+IA0KPiAtICAgICAgICBlbGlmIGN0eC5GYWxzZVN5bWJvbCgpICE9IE5vbmU6DQo+IA0K PiAtICAgICAgICAgICAgY3R4LlZhbHVlLmIgPSAwDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBl bGlmIGN0eC5PbmUoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5WYWx1ZS51OCA9 IGludChjdHguZ2V0VGV4dCgpKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgZWxpZiBjdHguT25l cygpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4LlZhbHVlLnU2NCA9IGludChjdHgu Z2V0VGV4dCgpKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgZWxpZiBjdHguWmVybygpICE9IE5v bmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4LlZhbHVlLnU4ID0gaW50KGN0eC5nZXRUZXh0KCkp DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBlbGlmIGN0eC5Db2xvbigpICE9IFtdOg0KPiANCj4g LSAgICAgICAgICAgIGN0eC5WYWx1ZS50aW1lLkhvdXIgPSBzZWxmLl9fVHJhbnNOdW0oY3R4Lk51 bWJlcigwKSkNCj4gDQo+IC0gICAgICAgICAgICBjdHguVmFsdWUudGltZS5NaW51dGUgPSBzZWxm Ll9fVHJhbnNOdW0oY3R4Lk51bWJlcigxKSkNCj4gDQo+IC0gICAgICAgICAgICBjdHguVmFsdWUu dGltZS5TZWNvbmQgPSBzZWxmLl9fVHJhbnNOdW0oY3R4Lk51bWJlcigyKSkNCj4gDQo+IC0NCj4g DQo+IC0gICAgICAgIGVsaWYgY3R4LlNsYXNoKCkgIT0gW106DQo+IA0KPiAtICAgICAgICAgICAg Y3R4LlZhbHVlLmRhdGUuWWVhciA9IHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKDApKQ0KPiAN Cj4gLSAgICAgICAgICAgIGN0eC5WYWx1ZS5kYXRlLk1vbnRoID0gc2VsZi5fX1RyYW5zTnVtKGN0 eC5OdW1iZXIoMSkpDQo+IA0KPiAtICAgICAgICAgICAgY3R4LlZhbHVlLmRhdGUuRGF5ID0gc2Vs Zi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoMikpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBlbGlm IGN0eC5TZW1pY29sb24oKSAhPSBbXToNCj4gDQo+IC0gICAgICAgICAgICBjdHguVmFsdWUucmVm LlF1ZXN0aW9uSWQgPSBzZWxmLl9fVHJhbnNOdW0oY3R4Lk51bWJlcigwKSkNCj4gDQo+IC0gICAg ICAgICAgICBjdHguVmFsdWUucmVmLkZvcm1JZCA9IHNlbGYuX19UcmFuc051bShjdHguTnVtYmVy KDEpKQ0KPiANCj4gLSAgICAgICAgICAgIGN0eC5WYWx1ZS5yZWYuRGV2aWNlUGF0aCA9IHNlbGYu X19UcmFuc051bShjdHguTnVtYmVyKDIpKQ0KPiANCj4gLSAgICAgICAgICAgIGN0eC5WYWx1ZS5y ZWYuRm9ybVNldEd1aWQgPSBjdHguZ3VpZERlZmluaXRpb24oKS5HdWlkDQo+IA0KPiAtDQo+IA0K PiAtICAgICAgICBlbGlmIGN0eC5TdHJpbmdUb2tlbigpICE9IE5vbmU6DQo+IA0KPiAtICAgICAg ICAgICAgY3R4LlZhbHVlLnN0cmluZyA9IHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKDApKQ0K PiANCj4gLQ0KPiANCj4gLSAgICAgICAgZWxpZiBjdHguT3BlbkJyYWNlKCkgIT0gTm9uZToNCj4g DQo+IC0gICAgICAgICAgICBjdHguTGlzdFR5cGUgPSBUcnVlDQo+IA0KPiAtICAgICAgICAgICAg VHlwZSA9IHNlbGYuX19DdXJyUWVzdFZhckluZm8uVmFyVHlwZQ0KPiANCj4gLSAgICAgICAgICAg IGZvciBpIGluIHJhbmdlKDAsIGxlbihjdHguTnVtYmVyKCkpKToNCj4gDQo+IC0gICAgICAgICAg ICAgICAgVGVtcFZhbHVlID0gRUZJX0lGUl9UWVBFX1ZBTFVFKCkNCj4gDQo+IC0gICAgICAgICAg ICAgICAgaWYgVHlwZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfODoNCj4gDQo+IC0gICAgICAg ICAgICAgICAgICAgIFRlbXBWYWx1ZS51OCA9IHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKGkp KQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgY3R4LlZhbHVlTGlzdC5hcHBlbmQoVGVtcFZh bHVlKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgICAgICBpZiBUeXBlID09IEVGSV9JRlJf VFlQRV9OVU1fU0laRV8xNjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIFRlbXBWYWx1ZS51 MTYgPSBzZWxmLl9fVHJhbnNOdW0oY3R4Lk51bWJlcihpKSkNCj4gDQo+IC0gICAgICAgICAgICAg ICAgICAgIGN0eC5WYWx1ZUxpc3QuYXBwZW5kKFRlbXBWYWx1ZSkNCj4gDQo+IC0NCj4gDQo+IC0g ICAgICAgICAgICAgICAgaWYgVHlwZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMzI6DQo+IA0K PiAtICAgICAgICAgICAgICAgICAgICBUZW1wVmFsdWUudTMyID0gc2VsZi5fX1RyYW5zTnVtKGN0 eC5OdW1iZXIoaSkpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBjdHguVmFsdWVMaXN0LmFw cGVuZChUZW1wVmFsdWUpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIFR5cGUg PT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzY0Og0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAg VGVtcFZhbHVlLnU2NCA9IHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKGkpKQ0KPiANCj4gLSAg ICAgICAgICAgICAgICAgICAgY3R4LlZhbHVlTGlzdC5hcHBlbmQoVGVtcFZhbHVlKQ0KPiANCj4g LSAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICBOZWdhdGl2ZSA9IFRydWUgaWYgY3R4 Lk5lZ2F0aXZlKCkgIT0gTm9uZSBlbHNlIEZhbHNlDQo+IA0KPiAtICAgICAgICAgICAgIyBUaGUg dmFsdWUgc3RvcmVkIGluIGJpdCBmaWVsZHMgaXMgYWx3YXlzIHNldCB0byBVSU5UMzIgdHlwZS4N Cj4gDQo+IC0gICAgICAgICAgICBpZiBzZWxmLl9fQ3VyclFlc3RWYXJJbmZvLklzQml0VmFyOg0K PiANCj4gLSAgICAgICAgICAgICAgICBjdHguVmFsdWUudTMyID0gc2VsZi5fX1RyYW5zTnVtKGN0 eC5OdW1iZXIoMCkpDQo+IA0KPiAtICAgICAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAg ICAgICAgVHlwZSA9IHNlbGYuX19DdXJyUWVzdFZhckluZm8uVmFyVHlwZQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBpZiBUeXBlID09IEVGSV9JRlJfVFlQRV9OVU1fU0laRV84Og0KPiANCj4gLSAg ICAgICAgICAgICAgICAgICAgY3R4LlZhbHVlLnU4ID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1i ZXIoMCkpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBpZiBJbnREZWNTdHlsZToNCj4gDQo+ IC0gICAgICAgICAgICAgICAgICAgICAgICBpZiBOZWdhdGl2ZToNCj4gDQo+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgIGN0eC5WYWx1ZS51OCA+IDB4ODA6DQo+IA0KPiAtDQo+IHNl bGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1F VEVSLA0KPiBjdHguc3RhcnQubGluZSwgIklOVDggdHlwZSBjYW4ndCBiaWcgdGhhbiAweDdGLCBz bWFsbCB0aGFuIC0weDgwIikNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlOg0K PiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBjdHguVmFsdWUudTggPiAweDdG Og0KPiANCj4gLQ0KPiBzZWxmLl9fRXJyb3JIYW5kbGVyKFZmclJldHVybkNvZGUuVkZSX1JFVFVS Tl9JTlZBTElEX1BBUkFNRVRFUiwNCj4gY3R4LnN0YXJ0LmxpbmUsICJJTlQ4IHR5cGUgY2FuJ3Qg YmlnIHRoYW4gMHg3Riwgc21hbGwgdGhhbiAtMHg4MCIpDQo+IA0KPiAtICAgICAgICAgICAgICAg ICAgICBpZiBOZWdhdGl2ZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBjdHguVmFs dWUudTggPSB+Y3R4LlZhbHVlLnU4ICsgMQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBpZiBUeXBlID09IEVGSV9JRlJfVFlQRV9OVU1fU0laRV8xNjoNCj4gDQo+IC0gICAgICAgICAg ICAgICAgICAgIGN0eC5WYWx1ZS51MTYgPSBzZWxmLl9fVHJhbnNOdW0oY3R4Lk51bWJlcigwKSkN Cj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGlmIEludERlY1N0eWxlOg0KPiANCj4gLSAgICAg ICAgICAgICAgICAgICAgICAgIGlmIE5lZ2F0aXZlOg0KPiANCj4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiAgY3R4LlZhbHVlLnUxNiA+IDB4ODAwMDoNCj4gDQo+IC0NCj4gc2VsZi5f X0Vycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIs DQo+IGN0eC5zdGFydC5saW5lLCAiSU5UMTYgdHlwZSBjYW4ndCBiaWcgdGhhbiAweDdGRkYsIHNt YWxsIHRoYW4gLTB4ODAwMCIpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToN Cj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgY3R4LlZhbHVlLnUxNiA+IDB4 N0ZGRjoNCj4gDQo+IC0NCj4gc2VsZi5fX0Vycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9S RVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+IGN0eC5zdGFydC5saW5lLCAiSU5UMTYgdHlwZSBj YW4ndCBiaWcgdGhhbiAweDdGRkYsIHNtYWxsIHRoYW4gLTB4ODAwMCIpDQo+IA0KPiAtICAgICAg ICAgICAgICAgICAgICBpZiBOZWdhdGl2ZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAg ICBjdHguVmFsdWUudTE2ID0gfmN0eC5WYWx1ZS51MTYgKyAxDQo+IA0KPiAtDQo+IA0KPiAtICAg ICAgICAgICAgICAgIGlmIFR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzMyOg0KPiANCj4g LSAgICAgICAgICAgICAgICAgICAgY3R4LlZhbHVlLnUzMiA9IHNlbGYuX19UcmFuc051bShjdHgu TnVtYmVyKDApKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgaWYgSW50RGVjU3R5bGU6DQo+ IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgaWYgTmVnYXRpdmU6DQo+IA0KPiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmICBjdHguVmFsdWUudTMyID4gMHg4MDAwMDAwMDoNCj4g DQo+IC0NCj4gc2VsZi5fX0Vycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5W QUxJRF9QQVJBTUVURVIsDQo+IGN0eC5zdGFydC5saW5lLCAiSU5UMzIgdHlwZSBjYW4ndCBiaWcg dGhhbiAweDdGRkZGRkZGLCBzbWFsbCB0aGFuIC0weDgwMDAwMDAwIikNCj4gDQo+IC0gICAgICAg ICAgICAgICAgICAgICAgICBlbHNlOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiBjdHguVmFsdWUudTMyID4gMFg3RkZGRkZGRjoNCj4gDQo+IC0NCj4gc2VsZi5fX0Vycm9y SGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+IGN0 eC5zdGFydC5saW5lLCAiSU5UMzIgdHlwZSBjYW4ndCBiaWcgdGhhbiAweDdGRkZGRkZGLCBzbWFs bCB0aGFuIC0weDgwMDAwMDAwIikNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGlmIE5lZ2F0 aXZlOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGN0eC5WYWx1ZS51MzIgPSB+Y3R4 LlZhbHVlLnUzMiArIDENCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgVHlwZSA9 PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfNjQ6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBj dHguVmFsdWUudTY0ID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoMCkpDQo+IA0KPiAtICAg ICAgICAgICAgICAgICAgICBpZiBJbnREZWNTdHlsZToNCj4gDQo+IC0gICAgICAgICAgICAgICAg ICAgICAgICBpZiBOZWdhdGl2ZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgIGN0eC5WYWx1ZS51NjQgPiAweDgwMDAwMDAwMDAwMDAwMDA6DQo+IA0KPiAtDQo+IHNlbGYu X19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVS LA0KPiBjdHguc3RhcnQubGluZSwgIklOVDY0IHR5cGUgY2FuJ3QgYmlnIHRoYW4gMHg3RkZGRkZG RkZGRkZGRkZGLCBzbWFsbCB0aGFuIC0NCj4gMHg4MDAwMDAwMDAwMDAwMDAwIikNCj4gDQo+IC0g ICAgICAgICAgICAgICAgICAgICAgICBlbHNlOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiBjdHguVmFsdWUudTY0ID4gMHg3RkZGRkZGRkZGRkZGRkZGOg0KPiANCj4gLQ0K PiBzZWxmLl9fRXJyb3JIYW5kbGVyKFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BB UkFNRVRFUiwNCj4gY3R4LnN0YXJ0LmxpbmUsICJJTlQ2NCB0eXBlIGNhbid0IGJpZyB0aGFuIDB4 N0ZGRkZGRkZGRkZGRkZGRiwgc21hbGwgdGhhbiAtDQo+IDB4ODAwMDAwMDAwMDAwMDAwMCIpDQo+ IA0KPiAtICAgICAgICAgICAgICAgICAgICBpZiBOZWdhdGl2ZToNCj4gDQo+IC0gICAgICAgICAg ICAgICAgICAgICAgICBjdHguVmFsdWUudTY0ID0gfmN0eC5WYWx1ZS51NjQgKyAxDQo+IA0KPiAt DQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIFR5cGUgPT0gRUZJX0lGUl9UWVBFX0JPT0xFQU46 DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBjdHguVmFsdWUuYiA9IHNlbGYuX19UcmFuc051 bShjdHguTnVtYmVyKDApKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgICAgICBpZiBUeXBl ID09IEVGSV9JRlJfVFlQRV9CT09MRUFOOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgY3R4 LlZhbHVlLnN0cmluZyA9IHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKDApKQ0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5WYWx1ZSwgY3R4LlZhbHVlTGlzdA0KPiANCj4gLQ0K PiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJT eW50YXhQYXJzZXIjdmZySW1hZ2VUYWcuDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmckltYWdlVGFn KHNlbGYsIGN0eDpWZnJTeW50YXhQYXJzZXIuVmZySW1hZ2VUYWdDb250ZXh0KToNCj4gDQo+IC0N Cj4gDQo+IC0gICAgICAgIElPYmogPSBDSWZySW1hZ2UoKQ0KPiANCj4gLSAgICAgICAgc2VsZi52 aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0gICAgICAgIElPYmouU2V0TGluZU5vKGN0eC5zdGFy dC5saW5lKQ0KPiANCj4gLSAgICAgICAgSU9iai5TZXRJbWFnZUlkKHNlbGYuX19UcmFuc051bShj dHguTnVtYmVyKCkpKQ0KPiANCj4gLSAgICAgICAgY3R4Lk5vZGUuRGF0YSA9IElPYmoNCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiAN Cj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIj dmZyTG9ja2VkVGFnLg0KPiANCj4gLSAgICBkZWYgdmlzaXRWZnJMb2NrZWRUYWcoc2VsZiwgY3R4 OlZmclN5bnRheFBhcnNlci5WZnJMb2NrZWRUYWdDb250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0g ICAgICAgIExPYmo9Q0lmckxvY2tlZCgpDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRy ZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgTE9iai5TZXRMaW5lTm8oY3R4LnN0YXJ0LmxpbmUpDQo+ IA0KPiAtICAgICAgICBjdHguTm9kZS5EYXRhID0gTE9iag0KPiANCj4gLQ0KPiANCj4gLSAgICAg ICAgcmV0dXJuIGN0eC5Ob2RlDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQg YSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRTdGF0 VGFnLg0KPiANCj4gLSAgICBkZWYgdmlzaXRWZnJTdGF0ZW1lbnRTdGF0VGFnKHNlbGYsDQo+IGN0 eDpWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50U3RhdFRhZ0NvbnRleHQpOg0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0gICAgICAgIGlm IGN0eC52ZnJJbWFnZVRhZygpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4Lk5vZGUg PSBjdHgudmZySW1hZ2VUYWcoKS5Ob2RlDQo+IA0KPiAtICAgICAgICBlbHNlOg0KPiANCj4gLSAg ICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmckxvY2tlZFRhZygpLk5vZGUNCj4gDQo+IC0NCj4g DQo+IC0gICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAg ICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyU3Rh dGVtZW50U3RhdFRhZ0xpc3QuDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudFN0YXRU YWdMaXN0KHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50U3RhdFRhZ0xp c3RDb250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihj dHgpDQo+IA0KPiAtICAgICAgICBmb3IgQ3R4IGluIGN0eC52ZnJTdGF0ZW1lbnRTdGF0VGFnKCk6 DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX0luc2VydENoaWxkKGN0eC5Ob2RlLCBDdHgpDQo+ IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gDQo+IC0NCj4gDQo+IC0N Cj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFy c2VyI3ZmckZvcm1EZWZpbml0aW9uLg0KPiANCj4gLSAgICBkZWYgdmlzaXRWZnJGb3JtRGVmaW5p dGlvbihzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLlZmckZvcm1EZWZpbml0aW9uQ29udGV4 dCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBGT2JqID0gQ0lmckZvcm0oKQ0KPiANCj4gLSAg ICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIEZP YmouU2V0TGluZU5vKGN0eC5zdGFydC5saW5lKQ0KPiANCj4gLSAgICAgICAgRm9ybUlkID0gc2Vs Zi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoMCkpDQo+IA0KPiAtICAgICAgICBGT2JqLlNldEZvcm1J ZChGb3JtSWQpDQo+IA0KPiAtICAgICAgICBGb3JtVGl0bGUgID0gc2VsZi5fX1RyYW5zTnVtKGN0 eC5OdW1iZXIoMSkpDQo+IA0KPiAtICAgICAgICBGT2JqLlNldEZvcm1UaXRsZShGb3JtVGl0bGUp DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBjdHguTm9kZS5EYXRhID0gRk9iag0KPiANCj4gLSAg ICAgICAgZm9yIEN0eCBpbiBjdHgudmZyRm9ybSgpOg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYu X19JbnNlcnRDaGlsZChjdHguTm9kZSwgQ3R4KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0 dXJuIGN0eC5Ob2RlDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHBy b2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJGb3JtLg0KPiANCj4gLSAgICBkZWYgdmlzaXRW ZnJGb3JtKHNlbGYsIGN0eDpWZnJTeW50YXhQYXJzZXIuVmZyRm9ybUNvbnRleHQpOg0KPiANCj4g LQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0gICAgICAg IGlmIGN0eC52ZnJTdGF0ZW1lbnRJbWFnZSgpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAg Y3R4Lk5vZGUgPSBjdHgudmZyU3RhdGVtZW50SW1hZ2UoKS5Ob2RlDQo+IA0KPiAtICAgICAgICBp ZiBjdHgudmZyU3RhdGVtZW50TG9ja2VkKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBj dHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRMb2NrZWQoKS5Ob2RlDQo+IA0KPiAtICAgICAgICBp ZiBjdHgudmZyU3RhdGVtZW50UnVsZXMoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0 eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudFJ1bGVzKCkuTm9kZQ0KPiANCj4gLSAgICAgICAgaWYg Y3R4LnZmclN0YXRlbWVudERlZmF1bHQoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0 eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudERlZmF1bHQoKS5Ob2RlDQo+IA0KPiAtICAgICAgICBp ZiBjdHgudmZyU3RhdGVtZW50U3RhdCgpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4 Lk5vZGUgPSBjdHgudmZyU3RhdGVtZW50U3RhdCgpLk5vZGUNCj4gDQo+IC0gICAgICAgIGlmIGN0 eC52ZnJTdGF0ZW1lbnRRdWVzdGlvbnMoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0 eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudFF1ZXN0aW9ucygpLk5vZGUNCj4gDQo+IC0gICAgICAg IGlmIGN0eC52ZnJTdGF0ZW1lbnRDb25kaXRpb25hbCgpICE9IE5vbmU6DQo+IA0KPiAtICAgICAg ICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyU3RhdGVtZW50Q29uZGl0aW9uYWwoKS5Ob2RlDQo+IA0K PiAtICAgICAgICBpZiBjdHgudmZyU3RhdGVtZW50TGFiZWwoKSAhPSBOb25lOg0KPiANCj4gLSAg ICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudExhYmVsKCkuTm9kZQ0KPiANCj4g LSAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVudEJhbm5lcigpICE9IE5vbmU6DQo+IA0KPiAtICAg ICAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyU3RhdGVtZW50QmFubmVyKCkuTm9kZQ0KPiANCj4g LSAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVudEludmFsaWQoKSAhPSBOb25lOg0KPiANCj4gLSAg ICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudEludmFsaWQoKS5Ob2RlDQo+IA0K PiAtICAgICAgICBpZiBjdHgudmZyU3RhdGVtZW50RXh0ZW5zaW9uKCkgIT0gTm9uZToNCj4gDQo+ IC0gICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRFeHRlbnNpb24oKS5Ob2Rl DQo+IA0KPiAtICAgICAgICBpZiBjdHgudmZyU3RhdGVtZW50TW9kYWwoKSAhPSBOb25lOg0KPiAN Cj4gLSAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudE1vZGFsKCkuTm9kZQ0K PiANCj4gLSAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVudFJlZnJlc2hFdmVudCgpICE9IE5vbmU6 DQo+IA0KPiAtICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyU3RhdGVtZW50UmVmcmVzaEV2 ZW50KCkuTm9kZQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+IA0K PiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5 IFZmclN5bnRheFBhcnNlciN2ZnJGb3JtTWFwRGVmaW5pdGlvbi4NCj4gDQo+IC0gICAgZGVmIHZp c2l0VmZyRm9ybU1hcERlZmluaXRpb24oc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJG b3JtTWFwRGVmaW5pdGlvbkNvbnRleHQpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgRk1hcE9i aiA9IENJZnJGb3JtTWFwKCkNCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgp DQo+IA0KPiAtICAgICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gDQo+IC0gICAgICAgIEZN YXBPYmouU2V0TGluZU5vKExpbmUpDQo+IA0KPiAtICAgICAgICBzZWxmLl9fRXJyb3JIYW5kbGVy KEZNYXBPYmouU2V0Rm9ybUlkKHNlbGYuX19UcmFuc051bShjdHguUzEudGV4dCkpLA0KPiBjdHgu UzEubGluZSwgY3R4LlMxLmxpbmUpDQo+IA0KPiAtICAgICAgICBGb3JtTWFwTWV0aG9kTnVtYmVy ID0gbGVuKGN0eC5NYXBUaXRsZSgpKQ0KPiANCj4gLSAgICAgICAgaWYgRm9ybU1hcE1ldGhvZE51 bWJlciA9PSAwOg0KPiANCj4gLQ0KPiBzZWxmLl9fRXJyb3JIYW5kbGVyKFZmclJldHVybkNvZGUu VkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwgTGluZSwNCj4gJ05vIE1hcE1ldGhvZCBpcyBz ZXQgZm9yIEZvcm1NYXAhJykNCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAg ICAgZm9yIGkgaW4gcmFuZ2UoMCwgRm9ybU1hcE1ldGhvZE51bWJlcik6DQo+IA0KPiAtICAgICAg ICAgICAgICAgIEZNYXBPYmouU2V0Rm9ybU1hcE1ldGhvZChzZWxmLl9fVHJhbnNOdW0oY3R4Lk51 bWJlcihpKzEpKSwNCj4gY3R4Lmd1aWREZWZpbml0aW9uKGkpLkd1aWQpDQo+IA0KPiAtICAgICAg ICBjdHguTm9kZS5EYXRhID0gRk1hcE9iag0KPiANCj4gLSAgICAgICAgZm9yIEN0eCBpbiBjdHgu dmZyRm9ybSgpOg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19JbnNlcnRDaGlsZChjdHguTm9k ZSwgQ3R4KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+IA0KPiAt DQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZm clN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRJbWFnZS4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VmZy U3RhdGVtZW50SW1hZ2Uoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRJ bWFnZUNvbnRleHQpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVu KGN0eCkNCj4gDQo+IC0gICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmckltYWdlVGFnKCkuTm9kZQ0K PiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAt ICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJT dGF0ZW1lbnRMb2NrZWQuDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudExvY2tlZChz ZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudExvY2tlZENvbnRleHQpOg0K PiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0g ICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmckxvY2tlZFRhZygpLk5vZGUNCj4gDQo+IC0gICAgICAg IHJldHVybiBjdHguTm9kZQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJl ZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVtZW50UnVsZXMuDQo+IA0KPiAt ICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudFJ1bGVzKHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJz ZXIuVmZyU3RhdGVtZW50UnVsZXNDb250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIFJP YmogPSBDSWZyUnVsZSgpDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0K PiANCj4gLQ0KPiANCj4gLSAgICAgICAgUk9iai5TZXRMaW5lTm8oY3R4LnN0YXJ0LmxpbmUpDQo+ IA0KPiAtICAgICAgICBSdWxlTmFtZSA9IHNlbGYuX19UcmFuc0lkKGN0eC5TdHJpbmdJZGVudGlm aWVyKCkpDQo+IA0KPiAtICAgICAgICBzZWxmLl9fQ1ZmclJ1bGVzREIuUmVnaXN0ZXJSdWxlKFJ1 bGVOYW1lKQ0KPiANCj4gLSAgICAgICAgUk9iai5TZXRSdWxlSWQoc2VsZi5fX0NWZnJSdWxlc0RC LkdldFJ1bGVJZChSdWxlTmFtZSkpDQo+IA0KPiAtICAgICAgICBjdHguTm9kZS5EYXRhID0gUk9i ag0KPiANCj4gLSAgICAgICAgY3R4Lk5vZGUuRXhwcmVzc2lvbiA9DQo+IHNlbGYuX19FeHRyYWN0 T3JpZ2luYWxUZXh0KGN0eC52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uKCkpDQo+IA0KPiAtDQo+IA0K PiAtICAgICAgICAjIGV4cHJlc3Npb24NCj4gDQo+IC0gICAgICAgICMgZW5kIHJ1bGUNCj4gDQo+ IC0gICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEg cGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVtZW50U3RhdC4N Cj4gDQo+IC0gICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50U3RhdChzZWxmLA0KPiBjdHg6VmZyU3lu dGF4UGFyc2VyLlZmclN0YXRlbWVudFN0YXRDb250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAg ICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtICAgICAgICBpZiBjdHgudmZyU3Rh dGVtZW50U3ViVGl0bGUoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5Ob2RlID0g Y3R4LnZmclN0YXRlbWVudFN1YlRpdGxlKCkuTm9kZQ0KPiANCj4gLSAgICAgICAgaWYgY3R4LnZm clN0YXRlbWVudFN0YXRpY1RleHQoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5O b2RlID0gY3R4LnZmclN0YXRlbWVudFN0YXRpY1RleHQoKS5Ob2RlDQo+IA0KPiAtICAgICAgICBp ZiBjdHgudmZyU3RhdGVtZW50Q3Jvc3NSZWZlcmVuY2UoKSAhPSBOb25lOg0KPiANCj4gLSAgICAg ICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudENyb3NzUmVmZXJlbmNlKCkuTm9kZQ0K PiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAt DQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBh cnNlciN2ZnJTdGF0ZW1lbnRTdWJUaXRsZS4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VmZyU3RhdGVt ZW50U3ViVGl0bGUoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRTdWJU aXRsZUNvbnRleHQpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgU09iaiA9IGN0eC5PcE9iag0K PiANCj4gLQ0KPiANCj4gLSAgICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5lDQo+IA0KPiAtICAg ICAgICBTT2JqLlNldExpbmVObyhMaW5lKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgUHJvbXB0 ID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoKSkNCj4gDQo+IC0gICAgICAgIFNPYmouU2V0 UHJvbXB0KFByb21wdCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJl bihjdHgpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBjdHgudmZyU3VidGl0bGVGbGFncygp ICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgU09iai5TZXRGbGFncyhjdHgudmZyU3VidGl0 bGVGbGFncygpLlN1YkZsYWdzKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgY3R4Lk5vZGUuRGF0 YSA9IFNPYmoNCj4gDQo+IC0gICAgICAgIHNlbGYuX19JbnNlcnRDaGlsZChjdHguTm9kZSwgY3R4 LnZmclN0YXRlbWVudFN0YXRUYWdMaXN0KCkpDQo+IA0KPiAtICAgICAgICAjIHNlcXVlbmNlIHF1 ZXN0aW9uDQo+IA0KPiAtICAgICAgICBmb3IgQ3R4IGluIGN0eC52ZnJTdGF0ZW1lbnRTdWJUaXRs ZUNvbXBvbmVudCgpOg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19JbnNlcnRDaGlsZChjdHgu Tm9kZSwgQ3R4KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+IA0K PiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5DQo+IFZmclN5 bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRTdWJUaXRsZUNvbXBvbmVudC4NCj4gDQo+IC0gICAgZGVm IHZpc2l0VmZyU3RhdGVtZW50U3ViVGl0bGVDb21wb25lbnQoc2VsZiwNCj4gY3R4OlZmclN5bnRh eFBhcnNlci5WZnJTdGF0ZW1lbnRTdWJUaXRsZUNvbXBvbmVudENvbnRleHQpOg0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0gICAgICAgIGlm IGN0eC52ZnJTdGF0ZW1lbnRRdWVzdGlvbnMoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAg IGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudFF1ZXN0aW9ucygpLk5vZGUNCj4gDQo+IC0gICAg ICAgIGVsaWYgY3R4LnZmclN0YXRlbWVudFN0YXQoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAg ICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudFN0YXQoKS5Ob2RlDQo+IA0KPiAtICAgICAg ICByZXR1cm4gY3R4Lk5vZGUNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBh IHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmclN1YnRpdGxlRmxhZ3Mu DQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmclN1YnRpdGxlRmxhZ3Moc2VsZiwgY3R4OlZmclN5bnRh eFBhcnNlci5WZnJTdWJ0aXRsZUZsYWdzQ29udGV4dCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAg ICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgZm9yIEZs YWdzRmllbGRDdHggaW4gY3R4LnN1YnRpdGxlRmxhZ3NGaWVsZCgpOg0KPiANCj4gLSAgICAgICAg ICAgIGN0eC5TdWJGbGFncyB8PSBGbGFnc0ZpZWxkQ3R4LkZsYWcNCj4gDQo+IC0NCj4gDQo+IC0g ICAgICAgIHJldHVybiBOb25lDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQg YSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNzdWJ0aXRsZUZsYWdzRmll bGQuDQo+IA0KPiAtICAgIGRlZiB2aXNpdFN1YnRpdGxlRmxhZ3NGaWVsZChzZWxmLA0KPiBjdHg6 VmZyU3ludGF4UGFyc2VyLlN1YnRpdGxlRmxhZ3NGaWVsZENvbnRleHQpOg0KPiANCj4gLQ0KPiAN Cj4gLSAgICAgICAgaWYgY3R4Lk51bWJlcigpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAg Y3R4LkZsYWcgPSBzZWxmLl9fVHJhbnNOdW0oY3R4Lk51bWJlcigpKQ0KPiANCj4gLSAgICAgICAg ZWxzZToNCj4gDQo+IC0gICAgICAgICAgICBjdHguRmxhZyA9IDB4MDENCj4gDQo+IC0NCj4gDQo+ IC0gICAgICAgIHJldHVybiBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLQ0KPiANCj4g LQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQ YXJzZXIjdmZyU3RhdGVtZW50U3RhdGljVGV4dC4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VmZyU3Rh dGVtZW50U3RhdGljVGV4dChzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVu dFN0YXRpY1RleHRDb250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRD aGlsZHJlbihjdHgpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBRSWQgPSBFRklfUVVFU1RJT05f SURfSU5WQUxJRA0KPiANCj4gLSAgICAgICAgSGVscCA9IHNlbGYuX19UcmFuc051bShjdHguUzEu dGV4dCkNCj4gDQo+IC0gICAgICAgIFByb21wdCA9IHNlbGYuX19UcmFuc051bShjdHguUzIudGV4 dCkNCj4gDQo+IC0gICAgICAgIFR4dFR3byA9IEVGSV9TVFJJTkdfSURfSU5WQUxJRA0KPiANCj4g LSAgICAgICAgaWYgY3R4LlMzICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgVHh0VHdvID0g c2VsZi5fX1RyYW5zTnVtKGN0eC5TMy50ZXh0KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgVGV4 dEZsYWdzID0gMA0KPiANCj4gLSAgICAgICAgZm9yIEZsYWdzRmllbGRDdHggaW4gY3R4LnN0YXRp Y1RleHRGbGFnc0ZpZWxkKCk6DQo+IA0KPiAtICAgICAgICAgICAgVGV4dEZsYWdzIHw9IEZsYWdz RmllbGRDdHguRmxhZw0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgVGV4dEZsYWdzICYgRUZJ X0lGUl9GTEFHX0NBTExCQUNLOg0KPiANCj4gLSAgICAgICAgICAgIGlmIFR4dFR3byAhPSBFRklf U1RSSU5HX0lEX0lOVkFMSUQ6DQo+IA0KPiAtDQo+IGdDVmZyRXJyb3JIYW5kbGUuSGFuZGxlV2Fy bmluZyhFRklfVkZSX1dBUk5JTkdfQ09ERS5WRlJfV0FSTklOR18NCj4gQUNUSU9OX1dJVEhfVEVY VF9UV08sIGN0eC5TMy5saW5lLCBjdHguUzMudGV4dCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAg ICAgICBBT2JqID0gQ0lmckFjdGlvbigpDQo+IA0KPiAtICAgICAgICAgICAgUUlkLCBfID0gc2Vs Zi5fX0NWZnJRdWVzdGlvbkRCLlJlZ2lzdGVyUXVlc3Rpb24oTm9uZSwgTm9uZSwgUUlkKQ0KPiAN Cj4gLSAgICAgICAgICAgIEFPYmouU2V0TGluZU5vKGN0eC5GLmxpbmUpDQo+IA0KPiAtICAgICAg ICAgICAgQU9iai5TZXRRdWVzdGlvbklkKFFJZCkNCj4gDQo+IC0gICAgICAgICAgICBBT2JqLlNl dEhlbHAoSGVscCkNCj4gDQo+IC0gICAgICAgICAgICBBT2JqLlNldFByb21wdChQcm9tcHQpDQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5fX0Vycm9ySGFuZGxlcihBT2JqLlNldEZsYWdzKFRleHRG bGFncyksIGN0eC5GLmxpbmUpDQo+IA0KPiAtICAgICAgICAgICAgaWYgY3R4LktleSgpICE9IE5v bmU6DQo+IA0KPiAtICAgICAgICAgICAgICAgIEtleSA9IHNlbGYuX19UcmFuc051bShjdHguUzQu dGV4dCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5fX0Fzc2lnblF1ZXN0aW9uS2V5KEFP YmosIEtleSkNCj4gDQo+IC0gICAgICAgICAgICBjdHguTm9kZS5EYXRhID0gQU9iag0KPiANCj4g LSAgICAgICAgICAgIGN0eC5Ob2RlLk9wQ29kZSA9IEVGSV9JRlJfQUNUSU9OX09QICMNCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgVE9iaiA9IENJZnJU ZXh0KCkNCj4gDQo+IC0gICAgICAgICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gDQo+IC0g ICAgICAgICAgICBUT2JqLlNldExpbmVObyhMaW5lKQ0KPiANCj4gLSAgICAgICAgICAgIFRPYmou U2V0SGVscChIZWxwKQ0KPiANCj4gLSAgICAgICAgICAgIFRPYmouU2V0UHJvbXB0KFByb21wdCkN Cj4gDQo+IC0gICAgICAgICAgICBUT2JqLlNldFRleHRUd28oVHh0VHdvKQ0KPiANCj4gLSAgICAg ICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBUT2JqDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1 cm4gY3R4Lk5vZGUNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNp dCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3N0YXRpY1RleHRGbGFn c0ZpZWxkLg0KPiANCj4gLSAgICBkZWYgdmlzaXRTdGF0aWNUZXh0RmxhZ3NGaWVsZChzZWxmLA0K PiBjdHg6VmZyU3ludGF4UGFyc2VyLlN0YXRpY1RleHRGbGFnc0ZpZWxkQ29udGV4dCk6DQo+IA0K PiAtDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLQ0KPiAN Cj4gLSAgICAgICAgaWYgY3R4Lk51bWJlcigpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAg Y3R4LkZsYWcgPSBzZWxmLl9fVHJhbnNOdW0oY3R4Lk4udGV4dCkNCj4gDQo+IC0gICAgICAgICAg ICBpZiBjdHguRmxhZyAhPSAwOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLl9fRXJyb3JI YW5kbGVyKFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9VTlNVUFBPUlRFRCwNCj4gY3R4Lk4ubGlu ZSkNCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgY3R4 LkZsYWcgPSBjdHgucXVlc3Rpb25oZWFkZXJGbGFnc0ZpZWxkKCkuUUhGbGFnDQo+IA0KPiAtDQo+ IA0KPiAtICAgICAgICByZXR1cm4gY3R4LkZsYWcNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0g ICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3ludGF4UGFyc2VyI3Zm clN0YXRlbWVudENyb3NzUmVmZXJlbmNlLg0KPiANCj4gLSAgICBkZWYgdmlzaXRWZnJTdGF0ZW1l bnRDcm9zc1JlZmVyZW5jZShzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVu dENyb3NzUmVmZXJlbmNlQ29udGV4dCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBzZWxmLnZp c2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVudEdvdG8o KSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVu dEdvdG8oKS5Ob2RlDQo+IA0KPiAtICAgICAgICBlbGlmIGN0eC52ZnJTdGF0ZW1lbnRSZXNldEJ1 dHRvbigpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyU3Rh dGVtZW50UmVzZXRCdXR0b24oKS5Ob2RlDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4Lk5vZGUN Cj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRy ZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudEdvdG8uDQo+IA0KPiAt ICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudEdvdG8oc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNl ci5WZnJTdGF0ZW1lbnRHb3RvQ29udGV4dCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBSZWZU eXBlID0gNQ0KPiANCj4gLSAgICAgICAgRGV2UGF0aCA9IEVGSV9TVFJJTkdfSURfSU5WQUxJRA0K PiANCj4gLSAgICAgICAgUUlkID0gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQNCj4gDQo+IC0gICAg ICAgIEJpdE1hc2sgPSAwDQo+IA0KPiAtICAgICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4g DQo+IC0gICAgICAgIFI1T2JqID0gQ0lmclJlZjUoKQ0KPiANCj4gLSAgICAgICAgUjVPYmouU2V0 TGluZU5vKExpbmUpDQo+IA0KPiAtICAgICAgICBjdHguT3BPYmogPSBSNU9iag0KPiANCj4gLSAg ICAgICAgI2N0eC5PSE9iaiA9IFI1T2JqDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBjdHgu RGV2aWNlUGF0aCgpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgUmVmVHlwZSA9IDQNCj4g DQo+IC0gICAgICAgICAgICBEZXZQYXRoID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoMCkp DQo+IA0KPiAtICAgICAgICAgICAgRklkID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoMSkp DQo+IA0KPiAtICAgICAgICAgICAgUUlkID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoMikp DQo+IA0KPiAtICAgICAgICAgICAgUjRPYmogPSBDSWZyUmVmNCgpDQo+IA0KPiAtICAgICAgICAg ICAgUjRPYmouU2V0TGluZU5vKExpbmUpDQo+IA0KPiAtICAgICAgICAgICAgUjRPYmouU2V0RGV2 aWNlUGF0aChEZXZQYXRoKQ0KPiANCj4gLSAgICAgICAgICAgIFI0T2JqLlNldEZvcm1JZChGSWQp DQo+IA0KPiAtICAgICAgICAgICAgUjRPYmouU2V0UXVlc3Rpb25JZChRSWQpDQo+IA0KPiAtICAg ICAgICAgICAgY3R4Lk9wT2JqID0gUjRPYmoNCj4gDQo+IC0gICAgICAgICAgICAjY3R4Lk9IT2Jq ID0gUjRPYmoNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGVsaWYgY3R4LkZvcm1TZXRHdWlkKCkg IT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBSZWZUeXBlID0gMw0KPiANCj4gLSAgICAgICAg ICAgIEZJZCA9IHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKDApKQ0KPiANCj4gLSAgICAgICAg ICAgIFFJZCA9IHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKDEpKQ0KPiANCj4gLSAgICAgICAg ICAgIFIzT2JqID0gQ0lmclJlZjMoKQ0KPiANCj4gLSAgICAgICAgICAgIFIzT2JqLlNldExpbmVO byhMaW5lKQ0KPiANCj4gLSAgICAgICAgICAgIFIzT2JqLlNldEZvcm1JZChGSWQpDQo+IA0KPiAt ICAgICAgICAgICAgUjNPYmouU2V0UXVlc3Rpb25JZChRSWQpDQo+IA0KPiAtICAgICAgICAgICAg Y3R4Lk9wT2JqID0gUjNPYmoNCj4gDQo+IC0gICAgICAgICAgICAjY3R4Lk9IT2JqID0gUjNPYmoN Cj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGVsaWYgY3R4LkZvcm1JZCgpICE9IE5vbmU6DQo+IA0K PiAtICAgICAgICAgICAgRklkID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoMCkpDQo+IA0K PiAtICAgICAgICAgICAgUmVmVHlwZSA9IDINCj4gDQo+IC0gICAgICAgICAgICBpZiBjdHguUU4g IT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgTmFtZSA9IGN0eC5RTi50ZXh0DQo+IA0K PiAtICAgICAgICAgICAgICAgIFFJZCwgQml0TWFzaywgXyA9IHNlbGYuX19DVmZyUXVlc3Rpb25E Qi5HZXRRdWVzdGlvbklkKE5hbWUpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIFFJZCA9PSBF RklfUVVFU1RJT05fSURfSU5WQUxJRDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYu X19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1VOREVGSU5FRCwNCj4gY3R4 LlFOLmxpbmUpDQo+IA0KPiAtICAgICAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICAg ICAgUUlkID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoMSkpDQo+IA0KPiAtICAgICAgICAg ICAgUjJPYmogPSBDSWZyUmVmMigpDQo+IA0KPiAtICAgICAgICAgICAgUjJPYmouU2V0TGluZU5v KExpbmUpDQo+IA0KPiAtICAgICAgICAgICAgUjJPYmouU2V0Rm9ybUlkKEZJZCkNCj4gDQo+IC0g ICAgICAgICAgICBSMk9iai5TZXRRdWVzdGlvbklkKFFJZCkNCj4gDQo+IC0gICAgICAgICAgICBj dHguT3BPYmogPSBSMk9iag0KPiANCj4gLSAgICAgICAgIyBjdHguT0hPYmogPSBSMk9iag0KPiAN Cj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgZWxpZiBzdHIoY3R4LmdldENoaWxkKDEpKSA9 PSBzdHIoY3R4Lk51bWJlcigwKSk6DQo+IA0KPiAtICAgICAgICAgICAgUmVmVHlwZSA9IDENCj4g DQo+IC0gICAgICAgICAgICBGSWQgPSBzZWxmLl9fVHJhbnNOdW0oY3R4Lk51bWJlcigwKSkNCj4g DQo+IC0gICAgICAgICAgICBST2JqID0gQ0lmclJlZigpDQo+IA0KPiAtICAgICAgICAgICAgUk9i ai5TZXRMaW5lTm8oTGluZSkNCj4gDQo+IC0gICAgICAgICAgICBST2JqLlNldEZvcm1JZChGSWQp DQo+IA0KPiAtICAgICAgICAgICAgY3R4Lk9wT2JqID0gUk9iag0KPiANCj4gLSAgICAgICAgIyBj dHguT0hPYmogPSBST2JqDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRy ZW4oY3R4KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgc2VsZi5fX0N1cnJRZXN0VmFySW5m by5WYXJUeXBlID09IEVGSV9JRlJfVFlQRV9PVEhFUjoNCj4gDQo+IC0gICAgICAgICAgICBzZWxm Ll9fQ3VyclFlc3RWYXJJbmZvLlZhclR5cGUgPT0gRUZJX0lGUl9UWVBFX1JFRg0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgaWYgUmVmVHlwZSA9PSA0IG9yIFJlZlR5cGUgPT0gMzoNCj4gDQo+IC0g ICAgICAgICAgICBjdHguT3BPYmouU2V0Rm9ybVNldElkKGN0eC5ndWlkRGVmaW5pdGlvbigpLkd1 aWQpDQo+IA0KPiAtICAgICAgICAjIGN0eC5PSE9iai5TZXRGb3JtU2V0SWQoY3R4Lmd1aWREZWZp bml0aW9uKCkuR3VpZCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIGN0eC5GTEFHUygpICE9 IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4Lk9wT2JqLlNldEZsYWdzKGN0eC52ZnJHb3Rv RmxhZ3MoKS5Hb3RvRmxhZ3MpDQo+IA0KPiAtICAgICAgICAjIGN0eC5PSE9iai5TZXRGbGFncyhj dHgudmZyR290b0ZsYWdzKCkuR290b0ZsYWdzKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYg Y3R4LktleSgpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgaW5kZXggPSBpbnQobGVuKGN0 eC5OdW1iZXIoKSkpIC0gMQ0KPiANCj4gLSAgICAgICAgICAgIEtleSA9IHNlbGYuX19UcmFuc051 bShjdHguTnVtYmVyKGluZGV4KSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fQXNzaWduUXVl c3Rpb25LZXkoY3R4Lk9wT2JqLCBLZXkpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAjIGN0eC5P SE9iai5TZXRTY29wZSgxKQ0KPiANCj4gLSAgICAgICAgY3R4Lk9wT2JqLlNldFNjb3BlKDEpDQo+ IA0KPiAtICAgICAgICBjdHguTm9kZS5EYXRhID0gY3R4Lk9wT2JqDQo+IA0KPiAtICAgICAgICBy ZXR1cm4gY3R4Lk5vZGUNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBh cnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmckdvdG9GbGFncy4NCj4gDQo+ IC0gICAgZGVmIHZpc2l0VmZyR290b0ZsYWdzKHNlbGYsIGN0eDpWZnJTeW50YXhQYXJzZXIuVmZy R290b0ZsYWdzQ29udGV4dCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hp bGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgZm9yIEZsYWdzRmllbGRDdHggaW4gY3R4LmdvdG9G bGFnc0ZpZWxkKCk6DQo+IA0KPiAtICAgICAgICAgICAgY3R4LkdvdG9GbGFncyB8PSBGbGFnc0Zp ZWxkQ3R4LkZsYWcNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguR290b0ZsYWdz DQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0 cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNnb3RvRmxhZ3NGaWVsZC4NCj4gDQo+IC0g ICAgZGVmIHZpc2l0R290b0ZsYWdzRmllbGQoc2VsZiwgY3R4OlZmclN5bnRheFBhcnNlci5Hb3Rv RmxhZ3NGaWVsZENvbnRleHQpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENo aWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIGN0eC5OICE9IE5vbmU6DQo+ IA0KPiAtICAgICAgICAgICAgaWYgc2VsZi5fX1RyYW5zTnVtKGN0eC5OLnRleHQpICE9IDA6DQo+ IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5W RlJfUkVUVVJOX1VOU1VQUE9SVEVELA0KPiBjdHguTi5saW5lKQ0KPiANCj4gLSAgICAgICAgZWxz ZToNCj4gDQo+IC0gICAgICAgICAgICBjdHguRmxhZyA9IGN0eC5xdWVzdGlvbmhlYWRlckZsYWdz RmllbGQoKS5RSEZsYWcNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguRmxhZw0K PiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNl ZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVtZW50UmVzZXRCdXR0b24uDQo+IA0KPiAtICAg IGRlZiB2aXNpdFZmclN0YXRlbWVudFJlc2V0QnV0dG9uKHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQ YXJzZXIuVmZyU3RhdGVtZW50UmVzZXRCdXR0b25Db250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0g ICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBS Qk9iaiA9IGN0eC5PcE9iag0KPiANCj4gLSAgICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5lDQo+ IA0KPiAtICAgICAgICBSQk9iai5TZXRMaW5lTm8oTGluZSkNCj4gDQo+IC0gICAgICAgIGRlZmF1 bHRzdG9yZSA9IGN0eC5OLnRleHQNCj4gDQo+IC0gICAgICAgIERlZmF1bHRJZCwgUmV0dXJuQ29k ZSA9IGdDVmZyRGVmYXVsdFN0b3JlLkdldERlZmF1bHRJZChkZWZhdWx0c3RvcmUpDQo+IA0KPiAt ICAgICAgICBzZWxmLl9fRXJyb3JIYW5kbGVyKFJldHVybkNvZGUsIGN0eC5OLmxpbmUpDQo+IA0K PiAtICAgICAgICBSQk9iai5TZXREZWZhdWx0SWQoRGVmYXVsdElkKQ0KPiANCj4gLQ0KPiANCj4g LSAgICAgICAgY3R4Lk5vZGUuRGF0YSA9IFJCT2JqDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBy ZXR1cm4gY3R4Lk5vZGUNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBh cnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudFF1ZXN0aW9u cy4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50UXVlc3Rpb25zKHNlbGYsDQo+IGN0 eDpWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50UXVlc3Rpb25zQ29udGV4dCk6DQo+IA0KPiAt DQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAg aWYgY3R4LnZmclN0YXRlbWVudEJvb2xlYW5UeXBlKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAg ICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRCb29sZWFuVHlwZSgpLk5vZGUNCj4gDQo+ IC0gICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnREYXRlKCkgIT0gTm9uZToNCj4gDQo+IC0gICAg ICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnREYXRlKCkuTm9kZQ0KPiANCj4gLSAg ICAgICAgaWYgY3R4LnZmclN0YXRlbWVudE51bWVyaWNUeXBlKCkgIT0gTm9uZToNCj4gDQo+IC0g ICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnROdW1lcmljVHlwZSgpLk5vZGUN Cj4gDQo+IC0gICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnRTdHJpbmdUeXBlKCkgIT0gTm9uZToN Cj4gDQo+IC0gICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRTdHJpbmdUeXBl KCkuTm9kZQ0KPiANCj4gLSAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVudE9yZGVyZWRMaXN0KCkg IT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRP cmRlcmVkTGlzdCgpLk5vZGUNCj4gDQo+IC0gICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnRUaW1l KCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1l bnRUaW1lKCkuTm9kZQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+ IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2Vk IGJ5IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRRdWVzdGlvblRhZy4NCj4gDQo+IC0gICAg ZGVmIHZpc2l0VmZyU3RhdGVtZW50UXVlc3Rpb25UYWcoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBh cnNlci5WZnJTdGF0ZW1lbnRRdWVzdGlvblRhZ0NvbnRleHQpOg0KPiANCj4gLQ0KPiANCj4gLSAg ICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0gICAgICAgIGlmIGN0eC52ZnJT dGF0ZW1lbnRTdGF0VGFnKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBjdHguTm9kZSA9 IGN0eC52ZnJTdGF0ZW1lbnRTdGF0VGFnKCkuTm9kZQ0KPiANCj4gLSAgICAgICAgaWYgY3R4LnZm clN0YXRlbWVudEluY29uc2lzdGVudElmKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBj dHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRJbmNvbnNpc3RlbnRJZigpLk5vZGUNCj4gDQo+IC0g ICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnROb1N1Ym1pdElmKCkgIT0gTm9uZToNCj4gDQo+IC0g ICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnROb1N1Ym1pdElmKCkuTm9kZQ0K PiANCj4gLSAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVudERpc2FibGVJZlF1ZXN0KCkgIT0gTm9u ZToNCj4gDQo+IC0gICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnREaXNhYmxl SWZRdWVzdCgpLk5vZGUNCj4gDQo+IC0gICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnRSZWZyZXNo KCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1l bnRSZWZyZXNoKCkuTm9kZQ0KPiANCj4gLSAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVudFZhcnN0 b3JlRGV2aWNlKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52 ZnJTdGF0ZW1lbnRWYXJzdG9yZURldmljZSgpLk5vZGUNCj4gDQo+IC0gICAgICAgIGlmIGN0eC52 ZnJTdGF0ZW1lbnRFeHRlbnNpb24oKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5O b2RlID0gY3R4LnZmclN0YXRlbWVudEV4dGVuc2lvbigpLk5vZGUNCj4gDQo+IC0gICAgICAgIGlm IGN0eC52ZnJTdGF0ZW1lbnRSZWZyZXNoRXZlbnQoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAg ICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudFJlZnJlc2hFdmVudCgpLk5vZGUNCj4gDQo+ IC0gICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnRXYXJuaW5nSWYoKSAhPSBOb25lOg0KPiANCj4g LSAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudFdhcm5pbmdJZigpLk5vZGUN Cj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiANCj4gLQ0KPiANCj4g LQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieQ0KPiBWZnJTeW50 YXhQYXJzZXIjdmZyU3RhdGVtZW50SW5jb25zaXN0ZW50SWYuDQo+IA0KPiAtICAgIGRlZiB2aXNp dFZmclN0YXRlbWVudEluY29uc2lzdGVudElmKHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJzZXIu VmZyU3RhdGVtZW50SW5jb25zaXN0ZW50SWZDb250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAg ICAgIElJT2JqID0gQ0lmckluY29uc2lzdGVudElmKCkNCj4gDQo+IC0gICAgICAgIHNlbGYudmlz aXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBJSU9iai5TZXRMaW5lTm8o Y3R4LnN0YXJ0LmxpbmUpDQo+IA0KPiAtICAgICAgICBJSU9iai5TZXRFcnJvcihzZWxmLl9fVHJh bnNOdW0oY3R4Lk51bWJlcigpKSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGN0eC5Ob2RlLkRh dGEgPSBJSU9iag0KPiANCj4gLSAgICAgICAgY3R4Lk5vZGUuRXhwcmVzc2lvbiA9DQo+IHNlbGYu X19FeHRyYWN0T3JpZ2luYWxUZXh0KGN0eC52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uKCkpDQo+IA0K PiAtICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAg IyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRl bWVudE5vU3VibWl0SWYuDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudE5vU3VibWl0 SWYoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnROb1N1Ym1pdElmQ29u dGV4dCk6DQo+IA0KPiAtICAgICAgICBOU0lPYmogPSBDSWZyTm9TdWJtaXRJZigpDQo+IA0KPiAt ICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAg TlNJT2JqLlNldExpbmVObyhjdHguc3RhcnQubGluZSkNCj4gDQo+IC0gICAgICAgIE5TSU9iai5T ZXRFcnJvcihzZWxmLl9fVHJhbnNOdW0oY3R4Lk51bWJlcigpKSkNCj4gDQo+IC0gICAgICAgIGN0 eC5Ob2RlLkRhdGEgPSBOU0lPYmoNCj4gDQo+IC0gICAgICAgIGN0eC5Ob2RlLkV4cHJlc3Npb24g PQ0KPiBzZWxmLl9fRXh0cmFjdE9yaWdpbmFsVGV4dChjdHgudmZyU3RhdGVtZW50RXhwcmVzc2lv bigpKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+IA0KPiAtDQo+ IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5DQo+IFZm clN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnREaXNhYmxlSWZRdWVzdC4NCj4gDQo+IC0gICAgZGVm IHZpc2l0VmZyU3RhdGVtZW50RGlzYWJsZUlmUXVlc3Qoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBh cnNlci5WZnJTdGF0ZW1lbnREaXNhYmxlSWZRdWVzdENvbnRleHQpOg0KPiANCj4gLSAgICAgICAg RElPYmogPSBDSWZyRGlzYWJsZUlmKCkNCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJl bihjdHgpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBESU9iai5TZXRMaW5lTm8oY3R4LnN0YXJ0 LmxpbmUpDQo+IA0KPiAtICAgICAgICBjdHguTm9kZS5EYXRhID0gRElPYmoNCj4gDQo+IC0gICAg ICAgIGN0eC5Ob2RlLkV4cHJlc3Npb24gPQ0KPiBzZWxmLl9fRXh0cmFjdE9yaWdpbmFsVGV4dChj dHgudmZyU3RhdGVtZW50RXhwcmVzc2lvbigpKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0 dXJuIGN0eC5Ob2RlDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJz ZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRSZWZyZXNoLg0K PiANCj4gLSAgICBkZWYgdmlzaXRWZnJTdGF0ZW1lbnRSZWZyZXNoKHNlbGYsDQo+IGN0eDpWZnJT eW50YXhQYXJzZXIuVmZyU3RhdGVtZW50UmVmcmVzaENvbnRleHQpOg0KPiANCj4gLSAgICAgICAg Uk9iaiA9IENJZnJSZWZyZXNoKCkNCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihj dHgpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBST2JqLlNldExpbmVObyhjdHguc3RhcnQubGlu ZSkNCj4gDQo+IC0gICAgICAgIFJPYmouU2V0UmVmcmVzaEludGVydmFsKHNlbGYuX19UcmFuc051 bShjdHguTnVtYmVyKCkpKQ0KPiANCj4gLSAgICAgICAgY3R4Lk5vZGUuRGF0YSA9IFJPYmoNCj4g DQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiANCj4gLQ0KPiANCj4gLSAg ICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieQ0KPiBWZnJTeW50YXhQYXJzZXIjdmZy U3RhdGVtZW50VmFyc3RvcmVEZXZpY2UuDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmclN0YXRlbWVu dFZhcnN0b3JlRGV2aWNlKHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50 VmFyc3RvcmVEZXZpY2VDb250ZXh0KToNCj4gDQo+IC0gICAgICAgIFZET2JqID0gQ0lmclZhclN0 b3JlRGV2aWNlKCkNCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0K PiAtDQo+IA0KPiAtICAgICAgICBWRE9iai5TZXRMaW5lTm8oY3R4LnN0YXJ0LmxpbmUpDQo+IA0K PiAtICAgICAgICBWRE9iai5TZXREZXZpY2VQYXRoKHNlbGYuX19UcmFuc051bShjdHguTnVtYmVy KCkpKQ0KPiANCj4gLSAgICAgICAgY3R4Lk5vZGUuRGF0YSA9IFZET2JqDQo+IA0KPiAtDQo+IA0K PiAtICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBh IHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudFJl ZnJlc2hFdmVudC4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50UmVmcmVzaEV2ZW50 KHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50UmVmcmVzaEV2ZW50Q29u dGV4dCk6DQo+IA0KPiAtICAgICAgICBSaU9iaiA9IENJZnJSZWZyZXNoSWQoKQ0KPiANCj4gLSAg ICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIFJp T2JqLlNldExpbmVObyhjdHguc3RhcnQubGluZSkNCj4gDQo+IC0gICAgICAgIFJpT2JqLlNldFJl ZnJlc2hFdmVudEdyb3V0SWQoY3R4Lmd1aWREZWZpbml0aW9uKCkuR3VpZCkNCj4gDQo+IC0gICAg ICAgIGN0eC5Ob2RlLkRhdGEgPSBSaU9iag0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJu IGN0eC5Ob2RlDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1 Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRXYXJuaW5nSWYuDQo+IA0KPiAtICAg IGRlZiB2aXNpdFZmclN0YXRlbWVudFdhcm5pbmdJZihzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFy c2VyLlZmclN0YXRlbWVudFdhcm5pbmdJZkNvbnRleHQpOg0KPiANCj4gLSAgICAgICAgV0lPYmog PSBDSWZyV2FybmluZ0lmKCkNCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgp DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBXSU9iai5TZXRMaW5lTm8oY3R4LnN0YXJ0LmxpbmUp DQo+IA0KPiAtICAgICAgICBXSU9iai5TZXRXYXJuaW5nKHNlbGYuX19UcmFuc051bShjdHguTnVt YmVyKDApKSkNCj4gDQo+IC0gICAgICAgIFdJT2JqLlNldFRpbWVPdXQoc2VsZi5fX1RyYW5zTnVt KGN0eC5OdW1iZXIoMSkpKQ0KPiANCj4gLSAgICAgICAgY3R4Lk5vZGUuRGF0YSA9IFdJT2JqDQo+ IA0KPiAtICAgICAgICBjdHguTm9kZS5FeHByZXNzaW9uID0NCj4gc2VsZi5fX0V4dHJhY3RPcmln aW5hbFRleHQoY3R4LnZmclN0YXRlbWVudEV4cHJlc3Npb24oKSkNCj4gDQo+IC0NCj4gDQo+IC0g ICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZp c2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieQ0KPiBWZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVt ZW50UXVlc3Rpb25UYWdMaXN0Lg0KPiANCj4gLSAgICBkZWYgdmlzaXRWZnJTdGF0ZW1lbnRRdWVz dGlvblRhZ0xpc3Qoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRRdWVz dGlvblRhZ0xpc3RDb250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRD aGlsZHJlbihjdHgpDQo+IA0KPiAtICAgICAgICBmb3IgQ3R4IGluIGN0eC52ZnJTdGF0ZW1lbnRR dWVzdGlvblRhZygpOg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19JbnNlcnRDaGlsZChjdHgu Tm9kZSwgQ3R4KQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+IA0KPiAtDQo+IA0K PiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5DQo+IFZmclN5bnRheFBhcnNl ciN2ZnJTdGF0ZW1lbnRRdWVzdGlvbk9wdGlvblRhZy4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VmZy U3RhdGVtZW50UXVlc3Rpb25PcHRpb25UYWcoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5W ZnJTdGF0ZW1lbnRRdWVzdGlvbk9wdGlvblRhZ0NvbnRleHQpOg0KPiANCj4gLQ0KPiANCj4gLSAg ICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0gICAgICAgIGlmIGN0eC52ZnJT dGF0ZW1lbnRTdXBwcmVzc0lmUXVlc3QoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0 eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudFN1cHByZXNzSWZRdWVzdCgpLk5vZGUNCj4gDQo+IC0N Cj4gDQo+IC0gICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnRHcmF5T3V0SWZRdWVzdCgpICE9IE5v bmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyU3RhdGVtZW50R3JheU91 dElmUXVlc3QoKS5Ob2RlDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBjdHgudmZyU3RhdGVt ZW50VmFsdWUoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZm clN0YXRlbWVudFZhbHVlKCkuTm9kZQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgY3R4LnZm clN0YXRlbWVudERlZmF1bHQoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5Ob2Rl ID0gY3R4LnZmclN0YXRlbWVudERlZmF1bHQoKS5Ob2RlDQo+IA0KPiAtDQo+IA0KPiAtICAgICAg ICBpZiBjdHgudmZyU3RhdGVtZW50T3B0aW9ucygpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAg ICAgY3R4Lk5vZGUgPSBjdHgudmZyU3RhdGVtZW50T3B0aW9ucygpLk5vZGUNCj4gDQo+IC0NCj4g DQo+IC0gICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnRSZWFkKCkgIT0gTm9uZToNCj4gDQo+IC0g ICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRSZWFkKCkuTm9kZQ0KPiANCj4g LQ0KPiANCj4gLSAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVudFdyaXRlKCkgIT0gTm9uZToNCj4g DQo+IC0gICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRXcml0ZSgpLk5vZGUN Cj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiANCj4gLQ0KPiANCj4g LQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieQ0KPiBWZnJTeW50 YXhQYXJzZXIjdmZyU3RhdGVtZW50U3VwcHJlc3NJZlF1ZXN0Lg0KPiANCj4gLSAgICBkZWYgdmlz aXRWZnJTdGF0ZW1lbnRTdXBwcmVzc0lmUXVlc3Qoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNl ci5WZnJTdGF0ZW1lbnRTdXBwcmVzc0lmUXVlc3RDb250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0g ICAgICAgIFNJT2JqID0gQ0lmclN1cHByZXNzSWYoKQ0KPiANCj4gLSAgICAgICAgU0lPYmouU2V0 TGluZU5vKGN0eC5zdGFydC5saW5lKQ0KPiANCj4gLSAgICAgICAgY3R4Lk5vZGUuRGF0YSA9IFNJ T2JqDQo+IA0KPiAtICAgICAgICBjdHguTm9kZS5Db25kaXRpb24gPSAnc3VwcHJlc3NpZicgKyAn ICcgKw0KPiBzZWxmLl9fRXh0cmFjdE9yaWdpbmFsVGV4dChjdHgudmZyU3RhdGVtZW50RXhwcmVz c2lvbigpKQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0g ICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZp c2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieQ0KPiBWZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVt ZW50R3JheU91dElmUXVlc3QuDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudEdyYXlP dXRJZlF1ZXN0KHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50R3JheU91 dElmUXVlc3RDb250ZXh0KToNCj4gDQo+IC0gICAgICAgIEdPSU9iaiA9IENJZnJHcmF5T3V0SWYo KQ0KPiANCj4gLSAgICAgICAgR09JT2JqLlNldExpbmVObyhjdHguc3RhcnQubGluZSkNCj4gDQo+ IC0gICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBHT0lPYmoNCj4gDQo+IC0gICAgICAgIGN0eC5Ob2Rl LkNvbmRpdGlvbiA9ICdncmF5b3V0aWYnICsgJyAnICsNCj4gc2VsZi5fX0V4dHJhY3RPcmlnaW5h bFRleHQoY3R4LnZmclN0YXRlbWVudEV4cHJlc3Npb24oKSkNCj4gDQo+IC0gICAgICAgIHNlbGYu dmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gDQo+ IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4 UGFyc2VyI2ZsYWdzRmllbGQuDQo+IA0KPiAtICAgIGRlZiB2aXNpdEZsYWdzRmllbGQoc2VsZiwg Y3R4OlZmclN5bnRheFBhcnNlci5GbGFnc0ZpZWxkQ29udGV4dCk6DQo+IA0KPiAtDQo+IA0KPiAt ICAgICAgICBpZiBjdHguTiAhPSBOb25lOg0KPiANCj4gLQ0KPiBDVmZyRXJyb3JIYW5kbGUuSGFu ZGxlV2FybmluZyhFRklfVkZSX1dBUk5JTkdfQ09ERS5WRlJfV0FSTklOR18NCj4gT0JTT0xFVEVE X0ZSQU1FV09SS19PUENPREUsIGN0eC5OLmxpbmUsIGN0eC5OLnRleHQpDQo+IA0KPiAtICAgICAg ICBpZiBjdHguTCAhPSBOb25lOg0KPiANCj4gLQ0KPiBDVmZyRXJyb3JIYW5kbGUuSGFuZGxlV2Fy bmluZyhFRklfVkZSX1dBUk5JTkdfQ09ERS5WRlJfV0FSTklOR18NCj4gT0JTT0xFVEVEX0ZSQU1F V09SS19PUENPREUsIGN0eC5MLmxpbmUsIGN0eC5MLnRleHQpDQo+IA0KPiAtDQo+IA0KPiAtICAg ICAgICByZXR1cm4gc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0gICAg IyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRl bWVudERlZmF1bHQuDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudERlZmF1bHQoc2Vs ZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnREZWZhdWx0Q29udGV4dCk6DQo+ IA0KPiAtDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLSAg ICAgICAgSXNFeHAgPSBGYWxzZQ0KPiANCj4gLSAgICAgICAgRGVmYXVsdElkID0gRUZJX0hJSV9E RUZBVUxUX0NMQVNTX1NUQU5EQVJEDQo+IA0KPiAtICAgICAgICBMaW5lID0gY3R4LnN0YXJ0Lmxp bmUNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIGN0eC52ZnJDb25zdGFudFZhbHVlRmllbGQo KSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIFZhbHVlID0gY3R4LnZmckNvbnN0YW50VmFs dWVGaWVsZCgpLlZhbHVlDQo+IA0KPiAtICAgICAgICAgICAgVmFsdWVMaXN0ID0gY3R4LnZmckNv bnN0YW50VmFsdWVGaWVsZCgpLlZhbHVlTGlzdA0KPiANCj4gLSAgICAgICAgICAgIFR5cGUgPSBz ZWxmLl9fQ3VyclFlc3RWYXJJbmZvLlZhclR5cGUNCj4gDQo+IC0gICAgICAgICAgICBTaXplID0g MA0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgIGlmIHNlbGYuX19DdXJyZW50TWluTWF4RGF0 YSAhPSBOb25lIGFuZA0KPiBzZWxmLl9fQ3VycmVudE1pbk1heERhdGEuSXNOdW1lcmljT3Bjb2Rl KCk6DQo+IA0KPiAtICAgICAgICAgICAgICAgICMgY2hlY2sgZGVmYXVsdCB2YWx1ZSBpcyB2YWxp ZCBmb3IgTnVtZXJpYyBPcGNvZGUNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgVmFsdWVMaXN0 ID09IFtdOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgVmFsdWVMaXN0LmFwcGVuZChWYWx1 ZSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgbGVuKFZhbHVlTGlz dCkpOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgVmFsdWUgPSBWYWx1ZUxpc3RbaV0NCj4g DQo+IC0gICAgICAgICAgICAgICAgICAgIE51bWVyaWNRc3QgPSBDSWZyTnVtZXJpYyAoc2VsZi5f X0N1cnJlbnRRdWVzdGlvbikgIw0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgaWYgKE51bWVy aWNRc3QuR2V0TnVtZXJpY0ZsYWdzKCkgJiBFRklfSUZSX0RJU1BMQVkpID09IDAgYW5kDQo+IHNl bGYuX19DdXJyUWVzdFZhckluZm8uSXNCaXRWYXIgPT0gRmFsc2U6ICMNCj4gDQo+IC0gICAgICAg ICAgICAgICAgICAgICAgICBpZiBUeXBlID09IEVGSV9JRlJfVFlQRV9OVU1fU0laRV84Og0KPiAN Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBWYWx1ZS51OCA8IHNlbGYuX19DdXJy ZW50TWluTWF4RGF0YS5HZXRNaW5EYXRhKFR5cGUsDQo+IEZhbHNlKSBvciBWYWx1ZS51OCA+IHNl bGYuX19DdXJyZW50TWluTWF4RGF0YS5HZXRNYXhEYXRhKFR5cGUsIEZhbHNlKToNCj4gDQo+IC0N Cj4gc2VsZi5fX0Vycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9Q QVJBTUVURVIsIExpbmUsDQo+ICJOdW1lcmljIGRlZmF1bHQgdmFsdWUgbXVzdCBiZSBiZXR3ZWVu IE1pblZhbHVlIGFuZCBNYXhWYWx1ZS4iKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgICAg ICAgICAgICAgIGlmIFR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzE2Og0KPiANCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBWYWx1ZS51MTYgPCBzZWxmLl9fQ3VycmVudE1p bk1heERhdGEuR2V0TWluRGF0YShUeXBlLA0KPiBGYWxzZSkgb3IgVmFsdWUudTE2ID4gc2VsZi5f X0N1cnJlbnRNaW5NYXhEYXRhLkdldE1heERhdGEoVHlwZSwgRmFsc2UpOg0KPiANCj4gLQ0KPiBz ZWxmLl9fRXJyb3JIYW5kbGVyKFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFN RVRFUiwgTGluZSwNCj4gIk51bWVyaWMgZGVmYXVsdCB2YWx1ZSBtdXN0IGJlIGJldHdlZW4gTWlu VmFsdWUgYW5kIE1heFZhbHVlLiIpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgICAgICAg ICAgICAgaWYgVHlwZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMzI6DQo+IA0KPiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIFZhbHVlLnUzMiA8IHNlbGYuX19DdXJyZW50TWluTWF4 RGF0YS5HZXRNaW5EYXRhKFR5cGUsDQo+IEZhbHNlKSBvciBWYWx1ZS51MzIgPiBzZWxmLl9fQ3Vy cmVudE1pbk1heERhdGEuR2V0TWF4RGF0YShUeXBlLCBGYWxzZSk6DQo+IA0KPiAtDQo+IHNlbGYu X19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVS LCBMaW5lLA0KPiAiTnVtZXJpYyBkZWZhdWx0IHZhbHVlIG11c3QgYmUgYmV0d2VlbiBNaW5WYWx1 ZSBhbmQgTWF4VmFsdWUuIikNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAg ICBpZiBUeXBlID09IEVGSV9JRlJfVFlQRV9OVU1fU0laRV82NDoNCj4gDQo+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgVmFsdWUudTY0IDwgc2VsZi5fX0N1cnJlbnRNaW5NYXhEYXRh LkdldE1pbkRhdGEoVHlwZSwNCj4gRmFsc2UpIG9yIFZhbHVlLnU2NCA+IHNlbGYuX19DdXJyZW50 TWluTWF4RGF0YS5HZXRNYXhEYXRhKFR5cGUsIEZhbHNlKToNCj4gDQo+IC0NCj4gc2VsZi5fX0Vy cm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsIExp bmUsDQo+ICJOdW1lcmljIGRlZmF1bHQgdmFsdWUgbXVzdCBiZSBiZXR3ZWVuIE1pblZhbHVlIGFu ZCBNYXhWYWx1ZS4iKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgZWxzZToN Cj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAjIFZhbHVlIGZvciBxdWVzdGlvbiBzdG9y ZWQgaW4gYml0IGZpZWxkcyBpcyBhbHdheXMgc2V0IHRvIFVJTlQzMg0KPiB0eXBlLg0KPiANCj4g LSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX19DdXJyUWVzdFZhckluZm8uSXNCaXRW YXI6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIFZhbHVlLnUzMiA8IHNl bGYuX19DdXJyZW50TWluTWF4RGF0YS5HZXRNaW5EYXRhKFR5cGUsDQo+IFRydWUpIG9yICBWYWx1 ZS51MzIgPiBzZWxmLl9fQ3VycmVudE1pbk1heERhdGEuR2V0TWF4RGF0YShUeXBlLCBUcnVlKToN Cj4gDQo+IC0NCj4gc2VsZi5fX0Vycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5f SU5WQUxJRF9QQVJBTUVURVIsIExpbmUsDQo+ICJOdW1lcmljIGRlZmF1bHQgdmFsdWUgbXVzdCBi ZSBiZXR3ZWVuIE1pblZhbHVlIGFuZCBNYXhWYWx1ZS4iKQ0KPiANCj4gLSAgICAgICAgICAgICAg ICAgICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIFZh bHVlLnU2NCA8IHNlbGYuX19DdXJyZW50TWluTWF4RGF0YS5HZXRNaW5EYXRhKFR5cGUsDQo+IEZh bHNlKSBvciAgVmFsdWUudTY0ID4gc2VsZi5fX0N1cnJlbnRNaW5NYXhEYXRhLkdldE1heERhdGEo VHlwZSwgRmFsc2UpOg0KPiANCj4gLQ0KPiBzZWxmLl9fRXJyb3JIYW5kbGVyKFZmclJldHVybkNv ZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwgTGluZSwNCj4gIk51bWVyaWMgZGVmYXVs dCB2YWx1ZSBtdXN0IGJlIGJldHdlZW4gTWluVmFsdWUgYW5kIE1heFZhbHVlLiIpDQo+IA0KPiAt DQo+IA0KPiAtICAgICAgICAgICAgaWYgVHlwZSA9PSBFRklfSUZSX1RZUEVfT1RIRVI6DQo+IA0K PiAtICAgICAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJf UkVUVVJOX0ZBVEFMX0VSUk9SLA0KPiBMaW5lLCAiRGVmYXVsdCBkYXRhIHR5cGUgZXJyb3IuIikN Cj4gDQo+IC0gICAgICAgICAgICAgICAgU2l6ZSA9IHNpemVvZihFRklfSUZSX1RZUEVfVkFMVUUp DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgZWxpZiBjdHgudmZyQ29uc3RhbnRWYWx1ZUZp ZWxkKCkuTGlzdFR5cGU6DQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIFR5cGUgPT0gRUZJX0lG Ul9UWVBFX05VTV9TSVpFXzg6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBTaXplID0gc2l6 ZW9mKGNfdWJ5dGUpICogbGVuKFZhbHVlTGlzdCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYg VHlwZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMTY6DQo+IA0KPiAtICAgICAgICAgICAgICAg ICAgICBTaXplID0gc2l6ZW9mKGNfdXNob3J0KSAqIGxlbihWYWx1ZUxpc3QpDQo+IA0KPiAtICAg ICAgICAgICAgICAgIGlmIFR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzMyOg0KPiANCj4g LSAgICAgICAgICAgICAgICAgICAgU2l6ZSA9IHNpemVvZihjX3Vsb25nKSAqIGxlbihWYWx1ZUxp c3QpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIFR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9T SVpFXzY0Og0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgU2l6ZSA9IHNpemVvZihjX3Vsb25n bG9uZykgKiBsZW4oVmFsdWVMaXN0KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgIGVsc2U6 DQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIHNlbGYuX19DdXJyUWVzdFZhckluZm8uSXNCaXRW YXI6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBTaXplID0gc2l6ZW9mKGNfdWxvbmcpDQo+ IA0KPiAtICAgICAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBT aXplLCBSZXR1cm5Db2RlID0NCj4gZ0NWZnJWYXJEYXRhVHlwZURCLkdldERhdGFUeXBlU2l6ZUJ5 RGF0YVR5cGUoVHlwZSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuX19FcnJvckhh bmRsZXIoUmV0dXJuQ29kZSwgTGluZSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICBTaXpl ICs9IEVGSV9JRlJfREVGQVVMVC5WYWx1ZS5vZmZzZXQNCj4gDQo+IC0gICAgICAgICAgICBpZiBu b3QgY3R4LnZmckNvbnN0YW50VmFsdWVGaWVsZCgpLkxpc3RUeXBlOg0KPiANCj4gLSAgICAgICAg ICAgICAgICBET2JqID0gQ0lmckRlZmF1bHQoU2l6ZSkNCj4gDQo+IC0gICAgICAgICAgICAgICAg RE9iai5TZXRMaW5lTm8oTGluZSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgRE9iai5TZXRWYWx1 ZShWYWx1ZSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgc2VsZi5fX0lzU3Ry aW5nT3A6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBET2JqLlNldFR5cGUoRUZJX0lGUl9U WVBFX1NUUklORykNCj4gDQo+IC0gICAgICAgICAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAg ICAgICAgICAgICAgIGlmIHNlbGYuX19DdXJyUWVzdFZhckluZm8uSXNCaXRWYXI6DQo+IA0KPiAt ICAgICAgICAgICAgICAgICAgICAgICAgRE9iai5TZXRUeXBlKEVGSV9JRlJfVFlQRV9OVU1fU0la RV8zMikNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAg ICAgICAgICAgICAgICAgRE9iai5TZXRUeXBlKHNlbGYuX19DdXJyUWVzdFZhckluZm8uVmFyVHlw ZSkNCj4gDQo+IC0gICAgICAgICAgICBlbHNlOg0KPiANCj4gLSAgICAgICAgICAgICAgICBET2Jq ID0gQ0lmckRlZmF1bHQzKFNpemUsIGxlbihWYWx1ZUxpc3QpLCBUeXBlKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBET2JqLlNldExpbmVObyhMaW5lKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBE T2JqLlNldFZhbHVlKFZhbHVlTGlzdCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgRE9iai5TZXRU eXBlKEVGSV9JRlJfVFlQRV9CVUZGRVIpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBlbHNlOg0K PiANCj4gLSAgICAgICAgICAgIElzRXhwID0gVHJ1ZQ0KPiANCj4gLSAgICAgICAgICAgIERPYmog PSBDSWZyRGVmYXVsdDIoKQ0KPiANCj4gLSAgICAgICAgICAgIERPYmouU2V0TGluZU5vKExpbmUp DQo+IA0KPiAtICAgICAgICAgICAgRE9iai5TZXRTY29wZSgxKQ0KPiANCj4gLQ0KPiANCj4gLSAg ICAgICAgaWYgY3R4LkRlZmF1bHRTdG9yZSgpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAg RGVmYXVsdElkLCBSZXR1cm5Db2RlID0gZ0NWZnJEZWZhdWx0U3RvcmUuR2V0RGVmYXVsdElkKGN0 eC5TTi50ZXh0KQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoUmV0dXJu Q29kZSwgY3R4LlNOLmxpbmUsIGN0eC5TTi50ZXh0KQ0KPiANCj4gLSAgICAgICAgICAgIERPYmou U2V0RGVmYXVsdElkKERlZmF1bHRJZCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYuX19D aGVja0R1cGxpY2F0ZURlZmF1bHRWYWx1ZShEZWZhdWx0SWQsIGN0eC5ELmxpbmUsIGN0eC5ELnRl eHQpDQo+IA0KPiAtICAgICAgICBpZiBzZWxmLl9fQ3VyclFlc3RWYXJJbmZvLlZhclN0b3JlSWQg IT0gRUZJX1ZBUlNUT1JFX0lEX0lOVkFMSUQ6DQo+IA0KPiAtICAgICAgICAgICAgVmFyU3RvcmVO YW1lLCBSZXR1cm5Db2RlID0NCj4gZ0NWZnJEYXRhU3RvcmFnZS5HZXRWYXJTdG9yZU5hbWUoc2Vs Zi5fX0N1cnJRZXN0VmFySW5mby5WYXJTdG9yZUlkKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYu X19FcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwgTGluZSkNCj4gDQo+IC0gICAgICAgICAgICBWYXJH dWlkID0NCj4gZ0NWZnJEYXRhU3RvcmFnZS5HZXRWYXJTdG9yZUd1aWQoc2VsZi5fX0N1cnJRZXN0 VmFySW5mby5WYXJTdG9yZUlkKQ0KPiANCj4gLSAgICAgICAgICAgIFZhclN0b3JlVHlwZSA9DQo+ IGdDVmZyRGF0YVN0b3JhZ2UuR2V0VmFyU3RvcmVUeXBlKHNlbGYuX19DdXJyUWVzdFZhckluZm8u VmFyU3RvcmVJZCkNCj4gDQo+IC0gICAgICAgICAgICBpZiAoSXNFeHAgPT0gRmFsc2UpIGFuZCAo VmFyU3RvcmVUeXBlID09DQo+IEVGSV9WRlJfVkFSU1RPUkVfVFlQRS5FRklfVkZSX1ZBUlNUT1JF X0JVRkZFUik6DQo+IA0KPiAtDQo+IHNlbGYuX19FcnJvckhhbmRsZXIoZ0NWZnJEZWZhdWx0U3Rv cmUuQnVmZmVyVmFyU3RvcmVBbHRDb25maWdBZGQoRGVmYXVsdElkLA0KPiBzZWxmLl9fQ3VyclFl c3RWYXJJbmZvLCBWYXJTdG9yZU5hbWUsIFZhckd1aWQsDQo+IHNlbGYuX19DdXJyUWVzdFZhcklu Zm8uVmFyVHlwZSwgVmFsdWUpLCBMaW5lKQ0KPiANCj4gLSAgICAgICAgY3R4Lk5vZGUuRGF0YSA9 IERPYmoNCj4gDQo+IC0gICAgICAgIHNlbGYuX19JbnNlcnRDaGlsZChjdHguTm9kZSwgY3R4LnZm clN0YXRlbWVudFZhbHVlKCkpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4Lk5v ZGUNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJv ZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudFZhbHVlLg0KPiANCj4gLSAgICBk ZWYgdmlzaXRWZnJTdGF0ZW1lbnRWYWx1ZShzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLlZm clN0YXRlbWVudFZhbHVlQ29udGV4dCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBWT2JqID0g Q0lmclZhbHVlKCkNCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0K PiAtDQo+IA0KPiAtICAgICAgICBWT2JqLlNldExpbmVObyhjdHguc3RhcnQubGluZSkNCj4gDQo+ IC0gICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBWT2JqDQo+IA0KPiAtICAgICAgICBjdHguTm9kZS5F eHByZXNzaW9uID0NCj4gc2VsZi5fX0V4dHJhY3RPcmlnaW5hbFRleHQoY3R4LnZmclN0YXRlbWVu dEV4cHJlc3Npb24oKSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguTm9kZQ0K PiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJT eW50YXhQYXJzZXIjdmZyU3RhdGVtZW50T3B0aW9ucy4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VmZy U3RhdGVtZW50T3B0aW9ucyhzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVu dE9wdGlvbnNDb250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGls ZHJlbihjdHgpDQo+IA0KPiAtICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRPbmVP Zk9wdGlvbigpLk5vZGUNCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiANCj4gLQ0K PiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieQ0KPiBW ZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVtZW50T25lT2ZPcHRpb24uDQo+IA0KPiAtICAgIGRlZiB2 aXNpdFZmclN0YXRlbWVudE9uZU9mT3B0aW9uKHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJzZXIu VmZyU3RhdGVtZW50T25lT2ZPcHRpb25Db250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAg IExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiANCj4gLSAgICAgICAgaWYgc2VsZi5fX0N1cnJRZXN0 VmFySW5mby5WYXJUeXBlID09IEVGSV9JRlJfVFlQRV9PVEhFUjoNCj4gDQo+IC0gICAgICAgICAg ICBzZWxmLl9fRXJyb3JIYW5kbGVyKFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9GQVRBTF9FUlJP UiwgTGluZSwNCj4gIkdldCBkYXRhIHR5cGUgZXJyb3IuIikNCj4gDQo+IC0NCj4gDQo+IC0gICAg ICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBWYWx1 ZSA9IGN0eC52ZnJDb25zdGFudFZhbHVlRmllbGQoKS5WYWx1ZQ0KPiANCj4gLSAgICAgICAgVmFs dWVMaXN0ID0gY3R4LnZmckNvbnN0YW50VmFsdWVGaWVsZCgpLlZhbHVlTGlzdA0KPiANCj4gLSAg ICAgICAgVHlwZSA9IHNlbGYuX19DdXJyUWVzdFZhckluZm8uVmFyVHlwZQ0KPiANCj4gLSAgICAg ICAgU2l6ZSA9IDANCj4gDQo+IC0gICAgICAgIGlmIHNlbGYuX19DdXJyZW50TWluTWF4RGF0YSAh PSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgICNzZXQgbWluL21heCB2YWx1ZSBmb3Igb25lb2Yg b3Bjb2RlDQo+IA0KPiAtICAgICAgICAgICAgU3RlcCA9DQo+IHNlbGYuX19DdXJyZW50TWluTWF4 RGF0YS5HZXRTdGVwRGF0YShzZWxmLl9fQ3VyclFlc3RWYXJJbmZvLlZhclR5cGUsDQo+IHNlbGYu X19DdXJyUWVzdFZhckluZm8uSXNCaXRWYXIpDQo+IA0KPiAtICAgICAgICAgICAgaWYgc2VsZi5f X0N1cnJRZXN0VmFySW5mby5Jc0JpdFZhcjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5f X0N1cnJlbnRNaW5NYXhEYXRhLlNldE1pbk1heFN0ZXBEYXRhKFZhbHVlLnUzMiwNCj4gVmFsdWUu dTMyLCBTdGVwLCBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMzIpDQo+IA0KPiAtICAgICAgICAgICAg ZWxzZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgVHlwZSA9PSBFRklfSUZSX1RZUEVfTlVN X1NJWkVfNjQ6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBzZWxmLl9fQ3VycmVudE1pbk1h eERhdGEuU2V0TWluTWF4U3RlcERhdGEoVmFsdWUudTY0LA0KPiBWYWx1ZS51NjQsIFN0ZXAsIEVG SV9JRlJfVFlQRV9OVU1fU0laRV82NCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgVHlwZSA9 PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMzI6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBz ZWxmLl9fQ3VycmVudE1pbk1heERhdGEuU2V0TWluTWF4U3RlcERhdGEoVmFsdWUudTMyLA0KPiBW YWx1ZS51MzIsIFN0ZXAsIEVGSV9JRlJfVFlQRV9OVU1fU0laRV8zMikNCj4gDQo+IC0gICAgICAg ICAgICAgICAgaWYgVHlwZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMTY6DQo+IA0KPiAtICAg ICAgICAgICAgICAgICAgICBzZWxmLl9fQ3VycmVudE1pbk1heERhdGEuU2V0TWluTWF4U3RlcERh dGEoVmFsdWUudTE2LA0KPiBWYWx1ZS51MTYsIFN0ZXAsIEVGSV9JRlJfVFlQRV9OVU1fU0laRV8x NikNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgVHlwZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJ WkVfODoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuX19DdXJyZW50TWluTWF4RGF0 YS5TZXRNaW5NYXhTdGVwRGF0YShWYWx1ZS51OCwNCj4gVmFsdWUudTgsIFN0ZXAsIEVGSV9JRlJf VFlQRV9OVU1fU0laRV84KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgc2VsZi5fX0N1cnJR ZXN0VmFySW5mby5WYXJUeXBlID09IEVGSV9JRlJfVFlQRV9PVEhFUjoNCj4gDQo+IC0gICAgICAg ICAgICBTaXplID0gc2l6ZW9mKEVGSV9JRlJfVFlQRV9WQUxVRSkNCj4gDQo+IC0gICAgICAgIGVs aWYgY3R4LnZmckNvbnN0YW50VmFsdWVGaWVsZCgpLkxpc3RUeXBlOg0KPiANCj4gLSAgICAgICAg ICAgIGlmIFR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzg6DQo+IA0KPiAtICAgICAgICAg ICAgICAgIFNpemUgPSBzaXplb2YoY191Ynl0ZSkgKiBsZW4oVmFsdWVMaXN0KQ0KPiANCj4gLSAg ICAgICAgICAgIGlmIFR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzE2Og0KPiANCj4gLSAg ICAgICAgICAgICAgICBTaXplID0gc2l6ZW9mKGNfdXNob3J0KSAqIGxlbihWYWx1ZUxpc3QpDQo+ IA0KPiAtICAgICAgICAgICAgaWYgVHlwZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMzI6DQo+ IA0KPiAtICAgICAgICAgICAgICAgIFNpemUgPSBzaXplb2YoY191bG9uZykgKiBsZW4oVmFsdWVM aXN0KQ0KPiANCj4gLSAgICAgICAgICAgIGlmIFR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpF XzY0Og0KPiANCj4gLSAgICAgICAgICAgICAgICBTaXplID0gc2l6ZW9mKGNfdWxvbmdsb25nKSAq IGxlbihWYWx1ZUxpc3QpDQo+IA0KPiAtICAgICAgICBlbHNlOg0KPiANCj4gLSAgICAgICAgICAg ICMgRm9yIHRoZSBvbmVvZiBzdG9yZWQgaW4gYml0IGZpZWxkcywgc2V0IHRoZSBvcHRpb24gdHlw ZSBhcyBVSU5UMzIuDQo+IA0KPiAtICAgICAgICAgICAgaWYgc2VsZi5fX0N1cnJRZXN0VmFySW5m by5Jc0JpdFZhcjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgU2l6ZSA9IHNpemVvZihjX2xvbmcp DQo+IA0KPiAtICAgICAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgU2l6ZSwg UmV0dXJuQ29kZSA9DQo+IGdDVmZyVmFyRGF0YVR5cGVEQi5HZXREYXRhVHlwZVNpemVCeURhdGFU eXBlKFR5cGUpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoUmV0 dXJuQ29kZSwgTGluZSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIFNpemUgKz0gRUZJX0lGUl9P TkVfT0ZfT1BUSU9OLlZhbHVlLm9mZnNldA0KPiANCj4gLSAgICAgICAgT09PT2JqID0gTm9uZQ0K PiANCj4gLSAgICAgICAgaWYgbm90IGN0eC52ZnJDb25zdGFudFZhbHVlRmllbGQoKS5MaXN0VHlw ZToNCj4gDQo+IC0gICAgICAgICAgICBPT09PYmogPSBDSWZyT25lT2ZPcHRpb24oU2l6ZSkNCj4g DQo+IC0gICAgICAgICAgICBpZiBzZWxmLl9fQ3VyclFlc3RWYXJJbmZvLklzQml0VmFyOg0KPiAN Cj4gLSAgICAgICAgICAgICAgICBPT09PYmouU2V0VHlwZShFRklfSUZSX1RZUEVfTlVNX1NJWkVf MzIpDQo+IA0KPiAtICAgICAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgT09P T2JqLlNldFR5cGUoVHlwZSkNCj4gDQo+IC0gICAgICAgICAgICBPT09PYmouU2V0VmFsdWUoVmFs dWUpDQo+IA0KPiAtICAgICAgICBlbHNlOg0KPiANCj4gLSAgICAgICAgICAgIE9PT09iaiA9IENJ ZnJPbmVPZk9wdGlvbjIoU2l6ZSwgbGVuKFZhbHVlTGlzdCksIFR5cGUpDQo+IA0KPiAtICAgICAg ICAgICAgT09PT2JqLlNldFR5cGUoRUZJX0lGUl9UWVBFX0JVRkZFUikNCj4gDQo+IC0gICAgICAg ICAgICBPT09PYmouU2V0VmFsdWUoVmFsdWVMaXN0KQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4g LSAgICAgICAgT09PT2JqLlNldExpbmVObyhMaW5lKQ0KPiANCj4gLSAgICAgICAgT09PT2JqLlNl dE9wdGlvbihzZWxmLl9fVHJhbnNOdW0oY3R4Lk51bWJlcigwKSkpDQo+IA0KPiAtDQo+IA0KPiAt DQo+IA0KPiAtICAgICAgICBzZWxmLl9fRXJyb3JIYW5kbGVyKE9PT09iai5TZXRGbGFncyhjdHgu dmZyT25lT2ZPcHRpb25GbGFncygpLkxGbGFncyksDQo+IGN0eC5GLmxpbmUpDQo+IA0KPiAtDQo+ IHNlbGYuX19FcnJvckhhbmRsZXIoc2VsZi5fX0N1cnJlbnRRdWVzdGlvbi5TZXRRSGVhZGVyRmxh Z3MoY3R4LnZmck9uZU9mT3ANCj4gdGlvbkZsYWdzKCkuSEZsYWdzKSwgY3R4LkYubGluZSkNCj4g DQo+IC0NCj4gDQo+IC0gICAgICAgICMgQXJyYXkgdHlwZSBvbmx5IGZvciBkZWZhdWx0IHR5cGUg T25lT2ZPcHRpb24uDQo+IA0KPiAtICAgICAgICBpZiAoT09PT2JqLkdldEZsYWdzKCkgJiAoRUZJ X0lGUl9PUFRJT05fREVGQVVMVCB8DQo+IEVGSV9JRlJfT1BUSU9OX0RFRkFVTFRfTUZHKSkgPT0g MCBhbmQNCj4gKGN0eC52ZnJDb25zdGFudFZhbHVlRmllbGQoKS5MaXN0VHlwZSk6DQo+IA0KPiAt ICAgICAgICAgICAgc2VsZi5fX0Vycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5f RkFUQUxfRVJST1IsIExpbmUsDQo+ICJEZWZhdWx0IGtleXdvcmQgc2hvdWxkIHdpdGggYXJyYXkg dmFsdWUgdHlwZSEiKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgIyBDbGVhciB0aGUgZGVmYXVs dCBmbGFnIGlmIHRoZSBvcHRpb24gbm90IHVzZSBhcnJheSB2YWx1ZSBidXQgaGFzIGRlZmF1bHQN Cj4gZmxhZy4NCj4gDQo+IC0gICAgICAgIGlmIChPT09PYmouR2V0RmxhZ3MoKSAmIChFRklfSUZS X09QVElPTl9ERUZBVUxUIHwNCj4gRUZJX0lGUl9PUFRJT05fREVGQVVMVF9NRkcpKSAhPSAwIGFu ZA0KPiAoY3R4LnZmckNvbnN0YW50VmFsdWVGaWVsZCgpLkxpc3RUeXBlID09IEZhbHNlKSBhbmQg KHNlbGYuX19Jc09yZGVyZWRMaXN0KToNCj4gDQo+IC0gICAgICAgICAgICBPT09PYmouU2V0Rmxh Z3MoT09PT2JqLkdldEZsYWdzKCkgJiB+KEVGSV9JRlJfT1BUSU9OX0RFRkFVTFQgfA0KPiBFRklf SUZSX09QVElPTl9ERUZBVUxUX01GRykpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBzZWxm Ll9fQ3VyclFlc3RWYXJJbmZvLlZhclN0b3JlSWQgIT0gRUZJX1ZBUlNUT1JFX0lEX0lOVkFMSUQ6 DQo+IA0KPiAtICAgICAgICAgICAgVmFyU3RvcmVOYW1lLCBSZXR1cm5Db2RlID0NCj4gZ0NWZnJE YXRhU3RvcmFnZS5HZXRWYXJTdG9yZU5hbWUoc2VsZi5fX0N1cnJRZXN0VmFySW5mby5WYXJTdG9y ZUlkKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwg TGluZSkNCj4gDQo+IC0gICAgICAgICAgICBWYXJTdG9yZUd1aWQgPQ0KPiBnQ1ZmckRhdGFTdG9y YWdlLkdldFZhclN0b3JlR3VpZChzZWxmLl9fQ3VyclFlc3RWYXJJbmZvLlZhclN0b3JlSWQpDQo+ IA0KPiAtICAgICAgICAgICAgaWYgT09PT2JqLkdldEZsYWdzKCkgJiBFRklfSUZSX09QVElPTl9E RUZBVUxUOg0KPiANCj4gLQ0KPiBzZWxmLl9fQ2hlY2tEdXBsaWNhdGVEZWZhdWx0VmFsdWUoRUZJ X0hJSV9ERUZBVUxUX0NMQVNTX1NUQU5EQVJELA0KPiBjdHguRi5saW5lLCBjdHguRi50ZXh0KQ0K PiANCj4gLQ0KPiBzZWxmLl9fRXJyb3JIYW5kbGVyKGdDVmZyRGVmYXVsdFN0b3JlLkJ1ZmZlclZh clN0b3JlQWx0Q29uZmlnQWRkKEVGSV9ISUlfRA0KPiBFRkFVTFRfQ0xBU1NfU1RBTkRBUkQsIHNl bGYuX19DdXJyUWVzdFZhckluZm8sIFZhclN0b3JlTmFtZSwNCj4gVmFyU3RvcmVHdWlkLCBzZWxm Ll9fQ3VyclFlc3RWYXJJbmZvLlZhclR5cGUsIFZhbHVlKSwgTGluZSkNCj4gDQo+IC0gICAgICAg ICAgICBpZiBPT09PYmouR2V0RmxhZ3MoKSAmIEVGSV9JRlJfT1BUSU9OX0RFRkFVTFRfTUZHOg0K PiANCj4gLQ0KPiBzZWxmLl9fQ2hlY2tEdXBsaWNhdGVEZWZhdWx0VmFsdWUoRUZJX0hJSV9ERUZB VUxUX0NMQVNTX01BTlVGQUNUVVJJTg0KPiBHLCBjdHguRi5saW5lLCBjdHguRi50ZXh0KQ0KPiAN Cj4gLQ0KPiBzZWxmLl9fRXJyb3JIYW5kbGVyKGdDVmZyRGVmYXVsdFN0b3JlLkJ1ZmZlclZhclN0 b3JlQWx0Q29uZmlnQWRkKEVGSV9ISUlfRA0KPiBFRkFVTFRfQ0xBU1NfTUFOVUZBQ1RVUklORywg c2VsZi5fX0N1cnJRZXN0VmFySW5mbywgVmFyU3RvcmVOYW1lLA0KPiBWYXJTdG9yZUd1aWQsIHNl bGYuX19DdXJyUWVzdFZhckluZm8uVmFyVHlwZSwgVmFsdWUpLCBMaW5lKQ0KPiANCj4gLQ0KPiAN Cj4gLSAgICAgICAgaWYgY3R4LktleSgpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgc2Vs Zi5fX0Vycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fVU5TVVBQT1JURUQsDQo+ IGN0eC5LTi5saW5lLCBjdHguS04udGV4dCkNCj4gDQo+IC0gICAgICAgICAgICAjP0d1aWQgT3B0 aW9uIEtleQ0KPiANCj4gLSAgICAgICAgICAgIElmck9wdGlvbktleSA9IENJZnJPcHRpb25LZXko c2VsZi5fX0N1cnJlbnRRdWVzdGlvbi5HZXRRdWVzdGlvbklkKCksDQo+IFZhbHVlLCBzZWxmLl9f VHJhbnNOdW0oY3R4LktOLnRleHQpKQ0KPiANCj4gLSAgICAgICAgICAgIElmck9wdGlvbktleS5T ZXRMaW5lTm8oKQ0KPiANCj4gLSAgICAgICAgaWYgY3R4LnZmckltYWdlVGFnKCkgIT0gTm9uZToN Cj4gDQo+IC0gICAgICAgICAgICBPT09PYmouU2V0U2NvcGUoMSkgIw0KPiANCj4gLSAgICAgICAg Y3R4Lk5vZGUuRGF0YSA9IE9PT09iag0KPiANCj4gLSAgICAgICAgZm9yIEN0eCBpbiBjdHgudmZy SW1hZ2VUYWcoKToNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fSW5zZXJ0Q2hpbGQoY3R4Lk5v ZGUsIEN0eCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiANCj4g LQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBW ZnJTeW50YXhQYXJzZXIjdmZyT25lT2ZPcHRpb25GbGFncy4NCj4gDQo+IC0gICAgZGVmIHZpc2l0 VmZyT25lT2ZPcHRpb25GbGFncyhzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLlZmck9uZU9m T3B0aW9uRmxhZ3NDb250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRD aGlsZHJlbihjdHgpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBjdHguTEZsYWdzID0gc2VsZi5f X0N1cnJRZXN0VmFySW5mby5WYXJUeXBlDQo+IA0KPiAtICAgICAgICBmb3IgRmxhZ3NGaWVsZEN0 eCBpbiBjdHgub25lb2ZvcHRpb25GbGFnc0ZpZWxkKCk6DQo+IA0KPiAtICAgICAgICAgICAgY3R4 LkhGbGFncyB8PSBGbGFnc0ZpZWxkQ3R4LkhGbGFnDQo+IA0KPiAtICAgICAgICAgICAgY3R4LkxG bGFncyB8PSBGbGFnc0ZpZWxkQ3R4LkxGbGFnDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1 cm4gY3R4LkhGbGFncywgY3R4LkxGbGFncw0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAj IFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjb25lb2ZvcHRp b25GbGFnc0ZpZWxkLg0KPiANCj4gLSAgICBkZWYgdmlzaXRPbmVvZm9wdGlvbkZsYWdzRmllbGQo c2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5PbmVvZm9wdGlvbkZsYWdzRmllbGRDb250ZXh0 KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0K PiAtDQo+IA0KPiAtICAgICAgICBpZiBjdHguTnVtYmVyKCkgIT0gTm9uZToNCj4gDQo+IC0gICAg ICAgICAgICBjdHguTEZsYWcgPSBzZWxmLl9fVHJhbnNOdW0oY3R4Lk51bWJlcigpKQ0KPiANCj4g LSAgICAgICAgaWYgY3R4Lk9wdGlvbkRlZmF1bHQoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAg ICAgIGN0eC5MRmxhZyA9IDB4MTANCj4gDQo+IC0gICAgICAgIGlmIGN0eC5PcHRpb25EZWZhdWx0 TWZnKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBjdHguTEZsYWcgPSAweDIwDQo+IA0K PiAtICAgICAgICBpZiBjdHguSW50ZXJhY3RpdmVGbGFnKCkgIT0gTm9uZToNCj4gDQo+IC0gICAg ICAgICAgICBjdHguSEZsYWcgPSAweDA0DQo+IA0KPiAtICAgICAgICBpZiBjdHguUmVzZXRSZXF1 aXJlZEZsYWcoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5IRmxhZyA9IDB4MTAN Cj4gDQo+IC0gICAgICAgIGlmIGN0eC5SZXN0U3R5bGVGbGFnKCkgIT0gTm9uZToNCj4gDQo+IC0g ICAgICAgICAgICBjdHguSEZsYWcgPSAweDIwDQo+IA0KPiAtICAgICAgICBpZiBjdHguUmVjb25u ZWN0UmVxdWlyZWRGbGFnKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBjdHguSEZsYWcg PSAweDQwDQo+IA0KPiAtICAgICAgICBpZiBjdHguTWFudWZhY3R1cmluZ0ZsYWcoKSAhPSBOb25l Og0KPiANCj4gLSAgICAgICAgICAgIGN0eC5MRmxhZyA9IDB4MjANCj4gDQo+IC0gICAgICAgIGlm IGN0eC5EZWZhdWx0RmxhZygpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4LkxGbGFn ID0gMHgxMA0KPiANCj4gLSAgICAgICAgaWYgY3R4Lk5WQWNjZXNzRmxhZygpICE9IE5vbmU6DQo+ IA0KPiAtICAgICAgICAgICAgZ0NWZnJFcnJvckhhbmRsZS5IYW5kbGVXYXJuaW5nDQo+IChFRklf VkZSX1dBUk5JTkdfQ09ERS5WRlJfV0FSTklOR19PQlNPTEVURURfRlJBTUVXT1JLX09QQ08NCj4g REUsIGN0eC5BLmxpbmUsIGN0eC5BLnRleHQpDQo+IA0KPiAtICAgICAgICBpZiBjdHguTGF0ZUNo ZWNrRmxhZygpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgZ0NWZnJFcnJvckhhbmRsZS5I YW5kbGVXYXJuaW5nDQo+IChFRklfVkZSX1dBUk5JTkdfQ09ERS5WRlJfV0FSTklOR19PQlNPTEVU RURfRlJBTUVXT1JLX09QQ08NCj4gREUsIGN0eC5MLmxpbmUsIGN0eC5MLnRleHQpDQo+IA0KPiAt DQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4LkhGbGFnLCBjdHguTEZsYWcNCj4gDQo+IC0NCj4g DQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3lu dGF4UGFyc2VyI3ZmclN0YXRlbWVudFJlYWQuDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmclN0YXRl bWVudFJlYWQoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRSZWFkQ29u dGV4dCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBST2JqID0gQ0lmclJlYWQoKQ0KPiANCj4g LSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAg IFJPYmouU2V0TGluZU5vKGN0eC5zdGFydC5saW5lKQ0KPiANCj4gLSAgICAgICAgY3R4Lk5vZGUu RGF0YSA9IFJPYmoNCj4gDQo+IC0gICAgICAgIGN0eC5Ob2RlLkV4cHJlc3Npb24gPQ0KPiBzZWxm Ll9fRXh0cmFjdE9yaWdpbmFsVGV4dChjdHgudmZyU3RhdGVtZW50RXhwcmVzc2lvbigpKQ0KPiAN Cj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+IA0KPiAtDQo+IA0KPiAtICAg ICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0 ZW1lbnRXcml0ZS4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50V3JpdGUoc2VsZiwN Cj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRXcml0ZUNvbnRleHQpOg0KPiANCj4g LQ0KPiANCj4gLSAgICAgICAgV09iaiA9IENJZnJXcml0ZSgpDQo+IA0KPiAtICAgICAgICBzZWxm LnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgV09iai5TZXRMaW5l Tm8oY3R4LnN0YXJ0LmxpbmUpDQo+IA0KPiAtICAgICAgICBjdHguTm9kZS5EYXRhID0gV09iag0K PiANCj4gLSAgICAgICAgY3R4Lk5vZGUuRXhwcmVzc2lvbiA9DQo+IHNlbGYuX19FeHRyYWN0T3Jp Z2luYWxUZXh0KGN0eC52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uKCkpDQo+IA0KPiAtDQo+IA0KPiAt ICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBh cnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudFF1ZXN0 aW9uT3B0aW9uTGlzdC4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50UXVlc3Rpb25P cHRpb25MaXN0KHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50UXVlc3Rp b25PcHRpb25MaXN0Q29udGV4dCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0 Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgZm9yIEN0eCBpbiBjdHgudmZyU3RhdGVtZW50 UXVlc3Rpb25PcHRpb24oKToNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fSW5zZXJ0Q2hpbGQo Y3R4Lk5vZGUsIEN0eCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguTm9kZQ0K PiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieQ0KPiBW ZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVtZW50UXVlc3Rpb25PcHRpb24uDQo+IA0KPiAtICAgIGRl ZiB2aXNpdFZmclN0YXRlbWVudFF1ZXN0aW9uT3B0aW9uKHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQ YXJzZXIuVmZyU3RhdGVtZW50UXVlc3Rpb25PcHRpb25Db250ZXh0KToNCj4gDQo+IC0NCj4gDQo+ IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtICAgICAgICBpZiBjdHgu dmZyU3RhdGVtZW50UXVlc3Rpb25UYWcoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0 eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudFF1ZXN0aW9uVGFnKCkuTm9kZQ0KPiANCj4gLQ0KPiAN Cj4gLSAgICAgICAgZWxpZiBjdHgudmZyU3RhdGVtZW50UXVlc3Rpb25PcHRpb25UYWcoKSAhPSBO b25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudFF1ZXN0 aW9uT3B0aW9uVGFnKCkuTm9kZQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+IA0K PiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5 DQo+IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRCb29sZWFuVHlwZS4NCj4gDQo+IC0gICAg ZGVmIHZpc2l0VmZyU3RhdGVtZW50Qm9vbGVhblR5cGUoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBh cnNlci5WZnJTdGF0ZW1lbnRCb29sZWFuVHlwZUNvbnRleHQpOg0KPiANCj4gLQ0KPiANCj4gLSAg ICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0gICAgICAgIGlmIGN0eC52ZnJT dGF0ZW1lbnRDaGVja0JveCgpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4Lk5vZGUg PSBjdHgudmZyU3RhdGVtZW50Q2hlY2tCb3goKS5Ob2RlDQo+IA0KPiAtICAgICAgICBlbHNlOg0K PiANCj4gLSAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudEFjdGlvbigpLk5v ZGUNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiANCj4gLQ0KPiAN Cj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50 YXhQYXJzZXIjdmZyU3RhdGVtZW50Q2hlY2tCb3guDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmclN0 YXRlbWVudENoZWNrQm94KHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50 Q2hlY2tCb3hDb250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIENCT2JqID0gY3R4Lk9w T2JqDQo+IA0KPiAtICAgICAgICBMaW5lID0gIGN0eC5zdGFydC5saW5lDQo+IA0KPiAtICAgICAg ICBDQk9iai5TZXRMaW5lTm8oTGluZSkNCj4gDQo+IC0gICAgICAgIHNlbGYuX19DdXJyZW50UXVl c3Rpb24gPSBDQk9iai5HZXRRdWVzdGlvbigpDQo+IA0KPiAtICAgICAgICBzZWxmLl9fSXNDaGVj a0JveE9wID0gVHJ1ZQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVu KGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICMgQ3JlYXRlIGEgR1VJRCBvcGNvZGUgdG8g d3JhcCB0aGUgY2hlY2tib3ggb3Bjb2RlLCBpZiBpdCByZWZlciB0byBiaXQNCj4gdmFyc3RvcmUu DQo+IA0KPiAtICAgICAgICBpZiBzZWxmLl9fQ3VyclFlc3RWYXJJbmZvLklzQml0VmFyOg0KPiAN Cj4gLSAgICAgICAgICAgIEd1aWRPYmogPSBDSWZyR3VpZCgwKQ0KPiANCj4gLSAgICAgICAgICAg IEd1aWRPYmouU2V0R3VpZChFREtJSV9JRlJfQklUX1ZBUlNUT1JFX0dVSUQpDQo+IA0KPiAtICAg ICAgICAgICAgR3VpZE9iai5TZXRMaW5lTm8oTGluZSkNCj4gDQo+IC0gICAgICAgICAgICBHdWlk T2JqLlNldFNjb3BlKDEpICMNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICMgY2hlY2sgZGF0YVR5 cGUNCj4gDQo+IC0gICAgICAgIGlmIHNlbGYuX19DdXJyUWVzdFZhckluZm8uVmFyVHlwZSA9PSBF RklfSUZSX1RZUEVfT1RIRVI6DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX0N1cnJRZXN0VmFy SW5mby5WYXJUeXBlID0gRUZJX0lGUl9UWVBFX0JPT0xFQU4NCj4gDQo+IC0NCj4gDQo+IC0gICAg ICAgIGlmIHNlbGYuX19DdXJyUWVzdFZhckluZm8uVmFyU3RvcmVJZCAhPSBFRklfVkFSU1RPUkVf SURfSU5WQUxJRDoNCj4gDQo+IC0gICAgICAgICAgICAjIENoZWNrIHdoZXRoZXIgdGhlIHF1ZXN0 aW9uIHJlZmVycyB0byBhIGJpdCBmaWVsZCwgaWYgeWVzLiBjcmVhdGUgYSBHdWlkDQo+IHRvIGlu ZGljYXRlIHRoZSBxdWVzdGlvbiByZWZlcnMgdG8gYSBiaXQgZmllbGQuDQo+IA0KPiAtICAgICAg ICAgICAgaWYgc2VsZi5fX0N1cnJRZXN0VmFySW5mby5Jc0JpdFZhcjoNCj4gDQo+IC0gICAgICAg ICAgICAgICAgXywgUmV0dXJuQ29kZSA9DQo+IGdDVmZyVmFyRGF0YVR5cGVEQi5HZXREYXRhVHlw ZVNpemVCeURhdGFUeXBlKHNlbGYuX19DdXJyUWVzdFZhckluZm8uVmFyDQo+IFR5cGUpDQo+IA0K PiAtICAgICAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwgTGluZSwg IkNoZWNrQm94IHZhcmlkIGlzIG5vdCB0aGUNCj4gdmFsaWQgZGF0YSB0eXBlIikNCj4gDQo+IC0g ICAgICAgICAgICAgICAgaWYNCj4gZ0NWZnJEYXRhU3RvcmFnZS5HZXRWYXJTdG9yZVR5cGUoc2Vs Zi5fX0N1cnJRZXN0VmFySW5mby5WYXJTdG9yZUlkKSA9PQ0KPiBFRklfVkZSX1ZBUlNUT1JFX1RZ UEUuRUZJX1ZGUl9WQVJTVE9SRV9CVUZGRVJfQklUUyBhbmQNCj4gc2VsZi5fX0N1cnJRZXN0VmFy SW5mby5WYXJUb3RhbFNpemUgIT0gMToNCj4gDQo+IC0NCj4gc2VsZi5fX0Vycm9ySGFuZGxlcihW ZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsIExpbmUsDQo+ICJDaGVj a0JveCB2YXJpZCBvbmx5IG9jY3VweSAxIGJpdCBpbiBCaXQgVmFyc3RvcmUiKQ0KPiANCj4gLSAg ICAgICAgICAgICAgICBlbHNlOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgU2l6ZSwgUmV0 dXJuQ29kZSA9DQo+IGdDVmZyVmFyRGF0YVR5cGVEQi5HZXREYXRhVHlwZVNpemVCeURhdGFUeXBl KHNlbGYuX19DdXJyUWVzdFZhckluZm8uVmFyDQo+IFR5cGUpDQo+IA0KPiAtICAgICAgICAgICAg ICAgICAgICBzZWxmLl9fRXJyb3JIYW5kbGVyKFJldHVybkNvZGUsIExpbmUsICJDaGVja0JveCB2 YXJpZCBpcyBub3QgdGhlDQo+IHZhbGlkIGRhdGEgdHlwZSIpDQo+IA0KPiAtICAgICAgICAgICAg ICAgICAgICBpZiBTaXplICE9IDAgYW5kIFNpemUgIT0gc2VsZi5fX0N1cnJRZXN0VmFySW5mby5W YXJUb3RhbFNpemU6DQo+IA0KPiAtDQo+IHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29k ZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLCBMaW5lLA0KPiAiQ2hlY2tCb3ggdmFyaWQg ZG9lc24ndCBzdXBwb3J0IGFycmF5IikNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGVsaWYN Cj4gZ0NWZnJEYXRhU3RvcmFnZS5HZXRWYXJTdG9yZVR5cGUoc2VsZi5fX0N1cnJRZXN0VmFySW5m by5WYXJTdG9yZUlkKSA9PQ0KPiBFRklfVkZSX1ZBUlNUT1JFX1RZUEUuRUZJX1ZGUl9WQVJTVE9S RV9CVUZGRVIgYW5kDQo+IHNlbGYuX19DdXJyUWVzdFZhckluZm8uVmFyVG90YWxTaXplICE9IHNp emVvZihjdHlwZXMuY19ib29sKToNCj4gDQo+IC0NCj4gc2VsZi5fX0Vycm9ySGFuZGxlcihWZnJS ZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsIExpbmUsDQo+ICJDaGVja0Jv eCB2YXJpZCBvbmx5IHN1cHBvcnQgQk9PTEVBTiBkYXRhIHR5cGUiKQ0KPiANCj4gLQ0KPiANCj4g LSAgICAgICAgaWYgY3R4LkZMQUdTKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBDQk9i ai5TZXRGbGFncyhjdHgudmZyQ2hlY2tCb3hGbGFncygpLkhGbGFncywNCj4gY3R4LnZmckNoZWNr Qm94RmxhZ3MoKS5MRmxhZ3MpDQo+IA0KPiAtICAgICAgICAgICAgaWYgc2VsZi5fX0N1cnJRZXN0 VmFySW5mby5WYXJTdG9yZUlkICE9IEVGSV9WQVJTVE9SRV9JRF9JTlZBTElEOg0KPiANCj4gLSAg ICAgICAgICAgICAgICBWYXJTdG9yZU5hbWUsIFJldHVybkNvZGUgPQ0KPiBnQ1ZmckRhdGFTdG9y YWdlLkdldFZhclN0b3JlTmFtZShzZWxmLl9fQ3VyclFlc3RWYXJJbmZvLlZhclN0b3JlSWQpDQo+ IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuX19Db21wYXJlRXJyb3JIYW5kbGVyKFJldHVybkNv ZGUsDQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTLCBMaW5lLCBjdHguTC50ZXh0 LCAiRmFpbGVkIHRvIHJldHJpZXZlDQo+IHZhcnN0b3JlIG5hbWUiKQ0KPiANCj4gLQ0KPiANCj4g LSAgICAgICAgICAgICAgICBWYXJTdG9yZUd1aWQgPQ0KPiBnQ1ZmckRhdGFTdG9yYWdlLkdldFZh clN0b3JlR3VpZChzZWxmLl9fQ3VyclFlc3RWYXJJbmZvLlZhclN0b3JlSWQpDQo+IA0KPiAtICAg ICAgICAgICAgICAgIHNlbGYuZ1plcm9FZmlJZnJUeXBlVmFsdWUuYiA9IFRydWUNCj4gDQo+IC0g ICAgICAgICAgICAgICAgaWYgQ0JPYmouR2V0RmxhZ3MoKSAmIDB4MDE6DQo+IA0KPiAtDQo+IHNl bGYuX19DaGVja0R1cGxpY2F0ZURlZmF1bHRWYWx1ZShFRklfSElJX0RFRkFVTFRfQ0xBU1NfU1RB TkRBUkQsDQo+IGN0eC5GLmxpbmUsIGN0eC5GLnRleHQpDQo+IA0KPiAtICAgICAgICAgICAgICAg ICAgICBSZXR1cm5Db2RlID0NCj4gZ0NWZnJEZWZhdWx0U3RvcmUuQnVmZmVyVmFyU3RvcmVBbHRD b25maWdBZGQoRUZJX0hJSV9ERUZBVUxUX0NMQVNTX1NUQU4NCj4gREFSRCxzZWxmLl9fQ3VyclFl c3RWYXJJbmZvLCBWYXJTdG9yZU5hbWUsIFZhclN0b3JlR3VpZCwNCj4gc2VsZi5fX0N1cnJRZXN0 VmFySW5mby5WYXJUeXBlLCBzZWxmLmdaZXJvRWZpSWZyVHlwZVZhbHVlKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICAgICAgc2VsZi5fX0NvbXBhcmVFcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwNCj4g VmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MsIExpbmUsIGN0eC5MLnRleHQsICJObyBz dGFuZGFyZCBkZWZhdWx0DQo+IHN0b3JhZ2UgZm91bmQiKQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBpZiBDQk9iai5HZXRGbGFncygpICYgMHgwMjoNCj4gDQo+IC0NCj4gc2VsZi5fX0NoZWNrRHVw bGljYXRlRGVmYXVsdFZhbHVlKEVGSV9ISUlfREVGQVVMVF9DTEFTU19NQU5VRkFDVFVSSU4NCj4g RywgY3R4LkYubGluZSwgY3R4LkYudGV4dCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIFJl dHVybkNvZGUgPQ0KPiBnQ1ZmckRlZmF1bHRTdG9yZS5CdWZmZXJWYXJTdG9yZUFsdENvbmZpZ0Fk ZChFRklfSElJX0RFRkFVTFRfQ0xBU1NfTUFODQo+IFVGQUNUVVJJTkcsIHNlbGYuX19DdXJyUWVz dFZhckluZm8sIFZhclN0b3JlTmFtZSwgVmFyU3RvcmVHdWlkLA0KPiBzZWxmLl9fQ3VyclFlc3RW YXJJbmZvLlZhclR5cGUsIHNlbGYuZ1plcm9FZmlJZnJUeXBlVmFsdWUpDQo+IA0KPiAtICAgICAg ICAgICAgICAgICAgICBzZWxmLl9fQ29tcGFyZUVycm9ySGFuZGxlcihSZXR1cm5Db2RlLA0KPiBW ZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUywgTGluZSwgY3R4LkwudGV4dCwgIk5vIG1h bnVmYWN0dXJpbmcNCj4gZGVmYXVsdCBzdG9yYWdlIGZvdW5kIikNCj4gDQo+IC0gICAgICAgIGlm IGN0eC5LZXkoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIEtleSA9IHNlbGYuX19UcmFu c051bShjdHguTnVtYmVyKCkpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX0Fzc2lnblF1ZXN0 aW9uS2V5KENCT2JqLCBLZXkpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBjdHguTm9kZS5EYXRh ID0gQ0JPYmoNCj4gDQo+IC0gICAgICAgIHNlbGYuX19Jc0NoZWNrQm94T3AgPSBGYWxzZQ0KPiAN Cj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+IA0KPiAtDQo+IA0KPiAtDQo+ IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNl ciN2ZnJDaGVja0JveEZsYWdzLg0KPiANCj4gLSAgICBkZWYgdmlzaXRWZnJDaGVja0JveEZsYWdz KHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJzZXIuVmZyQ2hlY2tCb3hGbGFnc0NvbnRleHQpOg0K PiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0g ICAgICAgIGZvciBGbGFnc0ZpZWxkQ3R4IGluIGN0eC5jaGVja2JveEZsYWdzRmllbGQoKToNCj4g DQo+IC0gICAgICAgICAgICBjdHguTEZsYWdzIHw9IEZsYWdzRmllbGRDdHguTEZsYWcNCj4gDQo+ IC0gICAgICAgICAgICBjdHguSEZsYWdzIHw9IEZsYWdzRmllbGRDdHguSEZsYWcNCj4gDQo+IC0N Cj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguSEZsYWdzLCBjdHguTEZsYWdzDQo+IA0KPiAtDQo+ IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5 bnRheFBhcnNlciNjaGVja2JveEZsYWdzRmllbGQuDQo+IA0KPiAtICAgIGRlZiB2aXNpdENoZWNr Ym94RmxhZ3NGaWVsZChzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLkNoZWNrYm94RmxhZ3NG aWVsZENvbnRleHQpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVu KGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIGN0eC5OdW1iZXIoKSAhPSBOb25lOg0K PiANCj4gLSAgICAgICAgICAgIGlmIHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKCkpICE9IDA6 DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29k ZS5WRlJfUkVUVVJOX1VOU1VQUE9SVEVELA0KPiBjdHguc3RhcnQubGluZSkNCj4gDQo+IC0gICAg ICAgIGVsaWYgY3R4LkRlZmF1bHRGbGFnKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLl9fRXJyb3JIYW5kbGVyKFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9VTlNVUFBPUlRFRCwN Cj4gY3R4LkQubGluZSwgY3R4LkQudGV4dCkNCj4gDQo+IC0gICAgICAgIGVsaWYgY3R4Lk1hbnVm YWN0dXJpbmdGbGFnKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fRXJyb3JI YW5kbGVyKFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9VTlNVUFBPUlRFRCwNCj4gY3R4Lk0ubGlu ZSwgY3R4Lk0udGV4dCkNCj4gDQo+IC0gICAgICAgIGVsaWYgY3R4LkNoZWNrQm94RGVmYXVsdEZs YWcoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5MRmxhZyA9IDB4MDENCj4gDQo+ IC0gICAgICAgIGVsaWYgY3R4LkNoZWNrQm94RGVmYXVsdE1mZ0ZsYWcoKSAhPSBOb25lOg0KPiAN Cj4gLSAgICAgICAgICAgIGN0eC5MRmxhZyA9IDB4MDINCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+ IA0KPiAtICAgICAgICAgICAgY3R4LkhGbGFnID0gY3R4LnF1ZXN0aW9uaGVhZGVyRmxhZ3NGaWVs ZCgpLlFIRmxhZw0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5IRmxhZywgY3R4 LkxGbGFnDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2Vk IGJ5IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRBY3Rpb24uDQo+IA0KPiAtICAgIGRlZiB2 aXNpdFZmclN0YXRlbWVudEFjdGlvbihzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLlZmclN0 YXRlbWVudEFjdGlvbkNvbnRleHQpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNp dENoaWxkcmVuKGN0eCkNCj4gDQo+IC0gICAgICAgIEFPYmogPSBjdHguT3BPYmoNCj4gDQo+IC0g ICAgICAgIEFPYmouU2V0TGluZU5vKGN0eC5zdGFydC5saW5lKQ0KPiANCj4gLSAgICAgICAgQU9i ai5TZXRRdWVzdGlvbkNvbmZpZyhzZWxmLl9fVHJhbnNOdW0oY3R4Lk51bWJlcigpKSkNCj4gDQo+ IC0gICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBBT2JqDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBy ZXR1cm4gY3R4Lk5vZGUNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBh cnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmckFjdGlvbkZsYWdzLg0KPiAN Cj4gLSAgICBkZWYgdmlzaXRWZnJBY3Rpb25GbGFncyhzZWxmLCBjdHg6VmZyU3ludGF4UGFyc2Vy LlZmckFjdGlvbkZsYWdzQ29udGV4dCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBzZWxmLnZp c2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgZm9yIEZsYWdzRmllbGRDdHggaW4gY3R4 LmFjdGlvbkZsYWdzRmllbGQoKToNCj4gDQo+IC0gICAgICAgICAgICBjdHguSEZsYWdzIHw9IEZs YWdzRmllbGRDdHguSEZsYWcNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguSEZs YWdzDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHBy b2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNhY3Rpb25GbGFnc0ZpZWxkLg0KPiANCj4gLSAgICBk ZWYgdmlzaXRBY3Rpb25GbGFnc0ZpZWxkKHNlbGYsIGN0eDpWZnJTeW50YXhQYXJzZXIuQWN0aW9u RmxhZ3NGaWVsZENvbnRleHQpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENo aWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIGN0eC5OdW1iZXIoKSAhPSBO b25lOg0KPiANCj4gLSAgICAgICAgICAgIGlmIHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKCkp ICE9IDA6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0 dXJuQ29kZS5WRlJfUkVUVVJOX1VOU1VQUE9SVEVELA0KPiBjdHguTi5saW5lKQ0KPiANCj4gLSAg ICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICBjdHguSEZsYWcgPSBjdHgucXVlc3Rpb25o ZWFkZXJGbGFnc0ZpZWxkKCkuUUhGbGFnDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4LkhGbGFn DQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1 Y2VkIGJ5DQo+IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnROdW1lcmljVHlwZS4NCj4gDQo+ IC0gICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50TnVtZXJpY1R5cGUoc2VsZiwNCj4gY3R4OlZmclN5 bnRheFBhcnNlci5WZnJTdGF0ZW1lbnROdW1lcmljVHlwZUNvbnRleHQpOg0KPiANCj4gLQ0KPiAN Cj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0gICAgICAgIGlmIGN0 eC52ZnJTdGF0ZW1lbnROdW1lcmljKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBjdHgu Tm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnROdW1lcmljKCkuTm9kZQ0KPiANCj4gLSAgICAgICAgZWxp ZiBjdHgudmZyU3RhdGVtZW50T25lT2YoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0 eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudE9uZU9mKCkuTm9kZQ0KPiANCj4gLQ0KPiANCj4gLSAg ICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlz aXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFAtYXJzZXIjdmZyU3RhdGVtZW50 TnVtZXJpYy4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50TnVtZXJpYyhzZWxmLA0K PiBjdHg6VmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudE51bWVyaWNDb250ZXh0KToNCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtICAgICAg ICBOT2JqID0gY3R4Lk9wT2JqDQo+IA0KPiAtICAgICAgICBOT2JqLlNldExpbmVObyhjdHguc3Rh cnQubGluZSkNCj4gDQo+IC0gICAgICAgIHNlbGYuX19DdXJyZW50UXVlc3Rpb24gPSBOT2JqLkdl dFF1ZXN0aW9uKCkNCj4gDQo+IC0gICAgICAgIExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiANCj4g LQ0KPiANCj4gLSAgICAgICAgaWYgc2VsZi5fX0N1cnJRZXN0VmFySW5mby5Jc0JpdFZhcjoNCj4g DQo+IC0gICAgICAgICAgICBHdWlkT2JqID0gQ0lmckd1aWQoMCkNCj4gDQo+IC0gICAgICAgICAg ICBHdWlkT2JqLlNldEd1aWQoRURLSUlfSUZSX0JJVF9WQVJTVE9SRV9HVUlEKQ0KPiANCj4gLSAg ICAgICAgICAgIEd1aWRPYmouU2V0TGluZU5vKExpbmUpDQo+IA0KPiAtICAgICAgICAgICAgR3Vp ZE9iai5TZXRTY29wZSgxKSAjIHBvcw0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgIyBjaGVjayBk YXRhIHR5cGUNCj4gDQo+IC0gICAgICAgIGlmIHNlbGYuX19DdXJyUWVzdFZhckluZm8uVmFyU3Rv cmVJZCAhPSBFRklfVkFSU1RPUkVfSURfSU5WQUxJRDoNCj4gDQo+IC0gICAgICAgICAgICBpZiBz ZWxmLl9fQ3VyclFlc3RWYXJJbmZvLklzQml0VmFyOg0KPiANCj4gLSAgICAgICAgICAgICAgICBM RmxhZ3MgPSBFREtJSV9JRlJfTlVNRVJJQ19TSVpFX0JJVCAmDQo+IHNlbGYuX19DdXJyUWVzdFZh ckluZm8uVmFyVG90YWxTaXplDQo+IA0KPiAtDQo+IHNlbGYuX19FcnJvckhhbmRsZXIoTk9iai5T ZXRGbGFnc0ZvckJpdEZpZWxkKE5PYmouR2V0RmxhZ3MoKSxMRmxhZ3MpLCBMaW5lKQ0KPiANCj4g LSAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgICAgIERhdGFUeXBlU2l6ZSwg UmV0dXJuQ29kZSA9DQo+IGdDVmZyVmFyRGF0YVR5cGVEQi5HZXREYXRhVHlwZVNpemVCeURhdGFU eXBlKHNlbGYuX19DdXJyUWVzdFZhckluZm8uVmFyDQo+IFR5cGUpDQo+IA0KPiAtICAgICAgICAg ICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwgTGluZSwgJ051bWVyaWMgdmFy aWQgaXMgbm90IHRoZQ0KPiB2YWxpZCBkYXRhIHR5cGUnKQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBpZiBEYXRhVHlwZVNpemUgIT0gMCBhbmQgRGF0YVR5cGVTaXplICE9DQo+IHNlbGYuX19DdXJy UWVzdFZhckluZm8uVmFyVG90YWxTaXplOg0KPiANCj4gLQ0KPiBzZWxmLl9fRXJyb3JIYW5kbGVy KFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwgTGluZSwNCj4gJ051 bWVyaWMgdmFyaWQgZG9lc25cJ3Qgc3VwcG9ydCBhcnJheScpDQo+IA0KPiAtICAgICAgICAgICAg ICAgIHNlbGYuX19FcnJvckhhbmRsZXIoTk9iai5TZXRGbGFncyhOT2JqLkdldEZsYWdzKCksDQo+ IHNlbGYuX19DdXJyUWVzdFZhckluZm8uVmFyVHlwZSksIExpbmUpDQo+IA0KPiAtDQo+IA0KPiAt DQo+IA0KPiAtICAgICAgICBpZiBjdHguRkxBR1MoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAg ICAgIGlmIHNlbGYuX19DdXJyUWVzdFZhckluZm8uSXNCaXRWYXI6DQo+IA0KPiAtDQo+IHNlbGYu X19FcnJvckhhbmRsZXIoTk9iai5TZXRGbGFnc0ZvckJpdEZpZWxkKGN0eC52ZnJOdW1lcmljRmxh Z3MoKS5IRmxhZ3MsY3R4DQo+IC52ZnJOdW1lcmljRmxhZ3MoKS5MRmxhZ3MsIGN0eC52ZnJOdW1l cmljRmxhZ3MoKS5Jc0Rpc3BsYXlTcGVjaWZpZWQpLCBjdHguRi5saW5lKQ0KPiANCj4gLSAgICAg ICAgICAgIGVsc2U6DQo+IA0KPiAtDQo+IHNlbGYuX19FcnJvckhhbmRsZXIoTk9iai5TZXRGbGFn cyhjdHgudmZyTnVtZXJpY0ZsYWdzKCkuSEZsYWdzLGN0eC52ZnJOdW1lcmkNCj4gY0ZsYWdzKCku TEZsYWdzLCBjdHgudmZyTnVtZXJpY0ZsYWdzKCkuSXNEaXNwbGF5U3BlY2lmaWVkKSwgY3R4LkYu bGluZSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIGN0eC5LZXkoKSAhPSBOb25lOg0KPiAN Cj4gLSAgICAgICAgICAgIEtleSA9IHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKCkpDQo+IA0K PiAtICAgICAgICAgICAgc2VsZi5fX0Fzc2lnblF1ZXN0aW9uS2V5KE5PYmosS2V5KQ0KPiANCj4g LQ0KPiANCj4gLSAgICAgICAgU2hyaW5rU2l6ZSA9IDANCj4gDQo+IC0gICAgICAgIElzU3VwcG9y dGVkID0gVHJ1ZQ0KPiANCj4gLSAgICAgICAgaWYgc2VsZi5fX0N1cnJRZXN0VmFySW5mby5Jc0Jp dFZhciA9PSBGYWxzZToNCj4gDQo+IC0gICAgICAgICAgICBUeXBlID0gc2VsZi5fX0N1cnJRZXN0 VmFySW5mby5WYXJUeXBlDQo+IA0KPiAtICAgICAgICAgICAgIyBCYXNlIG9uIHRoZSB0eXBlIHRv IGtub3cgdGhlIGFjdHVhbCB1c2VkIHNpemUsIHNocmluayB0aGUgYnVmZmVyIHNpemUNCj4gYWxs b2NhdGUgYmVmb3JlLg0KPiANCj4gLSAgICAgICAgICAgIGlmIFR5cGUgPT0gRUZJX0lGUl9UWVBF X05VTV9TSVpFXzg6DQo+IA0KPiAtICAgICAgICAgICAgICAgIFNocmlua1NpemUgPSAyMQ0KPiAN Cj4gLSAgICAgICAgICAgIGVsaWYgVHlwZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMTY6DQo+ IA0KPiAtICAgICAgICAgICAgICAgIFNocmlua1NpemUgPSAxOA0KPiANCj4gLSAgICAgICAgICAg IGVsaWYgVHlwZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMzI6DQo+IA0KPiAtICAgICAgICAg ICAgICAgIFNocmlua1NpemUgPSAxMg0KPiANCj4gLSAgICAgICAgICAgIGVsaWYgVHlwZSA9PSBF RklfSUZSX1RZUEVfTlVNX1NJWkVfNjQ6DQo+IA0KPiAtICAgICAgICAgICAgICAgIFNocmlua1Np emUgPSAwDQo+IA0KPiAtICAgICAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICAgICAg SXNTdXBwb3J0ZWQgPSBGYWxzZQ0KPiANCj4gLSAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAg ICAgICAjP1F1ZXN0aW9uIHN0b3JlZCBpbiBiaXQgZmllbGRzIHNhdmVkIGFzIFVJTlQzMiB0eXBl LCBzbyB0aGUgU2hyaW5rU2l6ZQ0KPiBzYW1lIGFzIEVGSV9JRlJfVFlQRV9OVU1fU0laRV8zMi4N Cj4gDQo+IC0gICAgICAgICAgICBTaHJpbmtTaXplID0gMTINCj4gDQo+IC0NCj4gDQo+IC0gICAg ICAgICMjIyMjIyM/Tk9iai0+U2hyaW5rQmluU2l6ZSAoU2hyaW5rU2l6ZSk7DQo+IA0KPiAtICAg ICAgICBpZiBJc1N1cHBvcnRlZCA9PSBGYWxzZToNCj4gDQo+IC0NCj4gc2VsZi5fX0Vycm9ySGFu ZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsIExpbmUsDQo+ ICdOdW1lcmljIHF1ZXN0aW9uIG9ubHkgc3VwcG9ydCBVSU5UOCwgVUlOVDE2LCBVSU5UMzIgYW5k IFVJTlQ2NCBkYXRhDQo+IHR5cGUuJykNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGN0eC5Ob2Rl LkRhdGEgPSBOT2JqDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4g DQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQg YnkgVmZyU3ludGF4UGFyc2VyI3ZmclNldE1pbk1heFN0ZXAuDQo+IA0KPiAtICAgIGRlZiB2aXNp dFZmclNldE1pbk1heFN0ZXAoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJTZXRNaW5N YXhTdGVwQ29udGV4dCk6DQo+IA0KPiAtICAgICAgICBJbnREZWNTdHlsZSA9IEZhbHNlDQo+IA0K PiAtICAgICAgICBpZiAoKHNlbGYuX19DdXJyUWVzdFZhckluZm8uSXNCaXRWYXIpIGFuZCAoY3R4 Lk9wT2JqLkdldE9wQ29kZSgpID09DQo+IEVGSV9JRlJfTlVNRVJJQ19PUCkgYW5kICgoY3R4Lk9w T2JqLkdldE51bWVyaWNGbGFncygpICYNCj4gRURLSUlfSUZSX0RJU1BMQVlfQklUKSA9PSAwKSkg b3IgXA0KPiANCj4gLSAgICAgICAgICAgICgoc2VsZi5fX0N1cnJRZXN0VmFySW5mby5Jc0JpdFZh ciA9PSBGYWxzZSkgYW5kDQo+IChjdHguT3BPYmouR2V0T3BDb2RlKCkgPT0gRUZJX0lGUl9OVU1F UklDX09QKSBhbmQNCj4gKChjdHguT3BPYmouR2V0TnVtZXJpY0ZsYWdzKCkgJiBFRklfSUZSX0RJ U1BMQVkpID09IDApKToNCj4gDQo+IC0gICAgICAgICAgICBJbnREZWNTdHlsZSA9IFRydWUNCj4g DQo+IC0gICAgICAgIE1pbk5lZ2F0aXZlID0gRmFsc2UNCj4gDQo+IC0gICAgICAgIE1heE5lZ2F0 aXZlID0gRmFsc2UNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihj dHgpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBNaW4gPSBzZWxmLl9fVHJhbnNOdW0oY3R4Lkku dGV4dCkNCj4gDQo+IC0gICAgICAgIE1heCA9IHNlbGYuX19UcmFuc051bShjdHguQS50ZXh0KQ0K PiANCj4gLSAgICAgICAgU3RlcCA9IHNlbGYuX19UcmFuc051bShjdHguUy50ZXh0KSBpZiBjdHgu U3RlcCgpICE9IE5vbmUgZWxzZSAwDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBjdHguTjEg IT1Ob25lOg0KPiANCj4gLSAgICAgICAgICAgIE1pbk5lZ2F0aXZlID0gVHJ1ZQ0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgaWYgSW50RGVjU3R5bGUgPT0gRmFsc2UgYW5kIE1pbk5lZ2F0aXZlID09 IFRydWU6DQo+IA0KPiAtDQo+IHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJf UkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLA0KPiBjdHguSS5saW5lLCAnXCctXCcgY2FuXCd0IGJl IHVzZWQgd2hlbiBub3QgaW4gaW50IGRlY2ltYWwgdHlwZS4nKQ0KPiANCj4gLSAgICAgICAgaWYg c2VsZi5fX0N1cnJRZXN0VmFySW5mby5Jc0JpdFZhcjoNCj4gDQo+IC0gICAgICAgICAgICBpZiAo SW50RGVjU3R5bGUgPT0gRmFsc2UpIGFuZCAoTWluID4gKDEgPDwNCj4gc2VsZi5fX0N1cnJRZXN0 VmFySW5mby5WYXJUb3RhbFNpemUpIC0gMSk6ICMNCj4gDQo+IC0NCj4gc2VsZi5fX0Vycm9ySGFu ZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+IGN0eC5J LmxpbmUsICdCSVQgdHlwZSBtaW5pbXVtIGNhblwndCBzbWFsbCB0aGFuIDAsIGJpZ2dlciB0aGFu IDJeQml0V2lkdGggLTEnKQ0KPiANCj4gLSAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAg ICAgICAgICAgIFR5cGUgPSBzZWxmLl9fQ3VyclFlc3RWYXJJbmZvLlZhclR5cGUNCj4gDQo+IC0g ICAgICAgICAgICAgICAgaWYgVHlwZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfNjQ6DQo+IA0K PiAtICAgICAgICAgICAgICAgICAgICBpZiBJbnREZWNTdHlsZToNCj4gDQo+IC0gICAgICAgICAg ICAgICAgICAgICAgICBpZiBNaW5OZWdhdGl2ZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgTWluID4gMHg4MDAwMDAwMDAwMDAwMDAwOg0KPiANCj4gLQ0KPiBzZWxmLl9f RXJyb3JIYW5kbGVyKFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwN Cj4gY3R4LkkubGluZSwgJ0lOVDY0IHR5cGUgbWluaW11bSBjYW5cJ3Qgc21hbGwgdGhhbiAtMHg4 MDAwMDAwMDAwMDAwMDAwLCBiaWcNCj4gdGhhbiAweDdGRkZGRkZGRkZGRkZGRkYnKQ0KPiANCj4g LSAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmIE1pbiA+IDB4N0ZGRkZGRkZGRkZGRkZGRjoNCj4gDQo+IC0NCj4gc2VsZi5f X0Vycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIs DQo+IGN0eC5JLmxpbmUsICdJTlQ2NCB0eXBlIG1pbmltdW0gY2FuXCd0IHNtYWxsIHRoYW4gLTB4 ODAwMDAwMDAwMDAwMDAwMCwgYmlnDQo+IHRoYW4gMHg3RkZGRkZGRkZGRkZGRkZGJykNCj4gDQo+ IC0gICAgICAgICAgICAgICAgICAgIGlmIE1pbk5lZ2F0aXZlOg0KPiANCj4gLSAgICAgICAgICAg ICAgICAgICAgICAgIE1pbiA9IH5NaW4gKyAxDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAg ICAgIGlmIFR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzMyOg0KPiANCj4gLSAgICAgICAg ICAgICAgICAgICAgaWYgSW50RGVjU3R5bGU6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAg ICAgaWYgTWluTmVnYXRpdmU6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm IE1pbiA+IDB4ODAwMDAwMDA6DQo+IA0KPiAtDQo+IHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0 dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLA0KPiBjdHguSS5saW5lLCAnSU5U MzIgdHlwZSBtaW5pbXVtIGNhblwndCBzbWFsbCB0aGFuIC0weDgwMDAwMDAwLCBiaWcgdGhhbg0K PiAweDdGRkZGRkZGJykNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlOg0KPiAN Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBNaW4gPiAweDdGRkZGRkZGOg0KPiAN Cj4gLQ0KPiBzZWxmLl9fRXJyb3JIYW5kbGVyKFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZB TElEX1BBUkFNRVRFUiwNCj4gY3R4LkkubGluZSwgJ0lOVDMyIHR5cGUgbWluaW11bSBjYW5cJ3Qg c21hbGwgdGhhbiAtMHg4MDAwMDAwMCwgYmlnIHRoYW4NCj4gMHg3RkZGRkZGRicpDQo+IA0KPiAt ICAgICAgICAgICAgICAgICAgICBpZiBNaW5OZWdhdGl2ZToNCj4gDQo+IC0gICAgICAgICAgICAg ICAgICAgICAgICBNaW4gPSB+TWluICsgMQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBpZiBUeXBlID09IEVGSV9JRlJfVFlQRV9OVU1fU0laRV8xNjoNCj4gDQo+IC0gICAgICAgICAg ICAgICAgICAgIGlmIEludERlY1N0eWxlOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAg IGlmIE1pbk5lZ2F0aXZlOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBN aW4gPiAweDgwMDA6DQo+IA0KPiAtDQo+IHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29k ZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLA0KPiBjdHguSS5saW5lLCAnSU5UMTYgdHlw ZSBtaW5pbXVtIGNhblwndCBzbWFsbCB0aGFuIC0weDgwMDAsIGJpZyB0aGFuIDB4N0ZGRicpDQo+ IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgTWluID4gMHg3RkZGOg0KPiANCj4gLQ0KPiBzZWxmLl9fRXJyb3JI YW5kbGVyKFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwNCj4gY3R4 LkkubGluZSwgJ0lOVDE2IHR5cGUgbWluaW11bSBjYW5cJ3Qgc21hbGwgdGhhbiAtMHg4MDAwLCBi aWcgdGhhbiAweDdGRkYnKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgaWYgTWluTmVnYXRp dmU6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgTWluID0gfk1pbiArIDENCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgVHlwZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJ WkVfODoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGlmIEludERlY1N0eWxlOg0KPiANCj4g LSAgICAgICAgICAgICAgICAgICAgICAgIGlmIE1pbk5lZ2F0aXZlOg0KPiANCj4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiBNaW4gPiAweDgwOg0KPiANCj4gLQ0KPiBzZWxmLl9fRXJy b3JIYW5kbGVyKFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwNCj4g Y3R4LkkubGluZSwgJ0lOVDggdHlwZSBtaW5pbXVtIGNhblwndCBzbWFsbCB0aGFuIC0weDgwLCBi aWcgdGhhbiAweDdGJykNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlOg0KPiAN Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBNaW4gPiAweDdGOg0KPiANCj4gLQ0K PiBzZWxmLl9fRXJyb3JIYW5kbGVyKFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BB UkFNRVRFUiwNCj4gY3R4LkkubGluZSwgJ0lOVDggdHlwZSBtaW5pbXVtIGNhblwndCBzbWFsbCB0 aGFuIC0weDgwLCBiaWcgdGhhbiAweDdGJykNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGlm IE1pbk5lZ2F0aXZlOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIE1pbiA9IH5NaW4g KyAxDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBjdHguTjIgIT0gTm9uZToNCj4gDQo+IC0g ICAgICAgICAgICBNYXhOZWdhdGl2ZSA9IFRydWUNCj4gDQo+IC0gICAgICAgIGlmIEludERlY1N0 eWxlID09IEZhbHNlIGFuZCBNYXhOZWdhdGl2ZSA9PSBUcnVlOg0KPiANCj4gLQ0KPiBzZWxmLl9f RXJyb3JIYW5kbGVyKFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwN Cj4gY3R4LkEubGluZSwgJyBcJy1cJyBjYW5cJ3QgYmUgdXNlZCB3aGVuIG5vdCBpbiBpbnQgZGVj aW1hbCB0eXBlLicpDQo+IA0KPiAtICAgICAgICBpZiBzZWxmLl9fQ3VyclFlc3RWYXJJbmZvLklz Qml0VmFyOg0KPiANCj4gLSAgICAgICAgICAgIGlmIChJbnREZWNTdHlsZSA9PSBGYWxzZSkgYW5k IChNYXggPiAoMSA8PA0KPiBzZWxmLl9fQ3VyclFlc3RWYXJJbmZvLlZhclRvdGFsU2l6ZSkgLSAx KToNCj4gDQo+IC0NCj4gc2VsZi5fX0Vycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRV Uk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+IGN0eC5BLmxpbmUsICdCSVQgdHlwZSBtYXhpbXVtIGNh blwndCBiZSBiaWdnZXIgdGhhbiAyXkJpdFdpZHRoIC0xJykNCj4gDQo+IC0gICAgICAgICAgICBl bHNlOg0KPiANCj4gLSAgICAgICAgICAgICAgICBUeXBlID0gc2VsZi5fX0N1cnJRZXN0VmFySW5m by5WYXJUeXBlDQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIFR5cGUgPT0gRUZJX0lGUl9UWVBF X05VTV9TSVpFXzY0Og0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgaWYgSW50RGVjU3R5bGU6 DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgaWYgTWF4TmVnYXRpdmU6DQo+IA0KPiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIE1heCA+IDB4ODAwMDAwMDAwMDAwMDAwMDoN Cj4gDQo+IC0NCj4gc2VsZi5fX0Vycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5f SU5WQUxJRF9QQVJBTUVURVIsDQo+IGN0eC5BLmxpbmUsICdJTlQ2NCB0eXBlIG1pbmltdW0gY2Fu XCd0IHNtYWxsIHRoYW4gLTB4ODAwMDAwMDAwMDAwMDAwMCwgYmlnDQo+IHRoYW4gMHg3RkZGRkZG RkZGRkZGRkZGJykNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlOg0KPiANCj4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBNYXggPiAweDdGRkZGRkZGRkZGRkZGRkY6 DQo+IA0KPiAtDQo+IHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJO X0lOVkFMSURfUEFSQU1FVEVSLA0KPiBjdHguQS5saW5lLCAnSU5UNjQgdHlwZSBtaW5pbXVtIGNh blwndCBzbWFsbCB0aGFuIC0weDgwMDAwMDAwMDAwMDAwMDAsIGJpZw0KPiB0aGFuIDB4N0ZGRkZG RkZGRkZGRkZGRicpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBpZiBNYXhOZWdhdGl2ZToN Cj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBNYXggPSB+TWF4ICsgMQ0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgICAgICAgICAgICAgaWYgTWF4IDwgTWluOiAjDQo+IA0KPiAtDQo+IHNl bGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1F VEVSLA0KPiBjdHguQS5saW5lLCAnTWF4aW11bSBjYW5cJ3QgYmUgbGVzcyB0aGFuIE1pbmltdW0n KQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgICAgICBpZiBUeXBlID09IEVG SV9JRlJfVFlQRV9OVU1fU0laRV8zMjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGlmIElu dERlY1N0eWxlOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIE1heE5lZ2F0aXZl Og0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBNYXggPiAweDgwMDAwMDAw Og0KPiANCj4gLQ0KPiBzZWxmLl9fRXJyb3JIYW5kbGVyKFZmclJldHVybkNvZGUuVkZSX1JFVFVS Tl9JTlZBTElEX1BBUkFNRVRFUiwNCj4gY3R4LkEubGluZSwgJ0lOVDMyIHR5cGUgbWluaW11bSBj YW5cJ3Qgc21hbGwgdGhhbiAtMHg4MDAwMDAwMCwgYmlnIHRoYW4NCj4gMHg3RkZGRkZGRicpDQo+ IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgTWF4ID4gMHg3RkZGRkZGRjoNCj4gDQo+IC0NCj4gc2VsZi5fX0Vy cm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+ IGN0eC5BLmxpbmUsICdJTlQzMiB0eXBlIG1pbmltdW0gY2FuXCd0IHNtYWxsIHRoYW4gLTB4ODAw MDAwMDAsIGJpZyB0aGFuDQo+IDB4N0ZGRkZGRkYnKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAg ICAgaWYgTWF4TmVnYXRpdmU6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgTWF4ID0g fk1heCArIDENCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGlmIE1heCA8IE1p bjogIw0KPiANCj4gLQ0KPiBzZWxmLl9fRXJyb3JIYW5kbGVyKFZmclJldHVybkNvZGUuVkZSX1JF VFVSTl9JTlZBTElEX1BBUkFNRVRFUiwNCj4gY3R4LkEubGluZSwgJ01heGltdW0gY2FuXCd0IGJl IGxlc3MgdGhhbiBNaW5pbXVtJykNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAg ICAgICAgaWYgVHlwZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMTY6DQo+IA0KPiAtICAgICAg ICAgICAgICAgICAgICBpZiBJbnREZWNTdHlsZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAg ICAgICBpZiBNYXhOZWdhdGl2ZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgTWF4ID4gMHg4MDAwOg0KPiANCj4gLQ0KPiBzZWxmLl9fRXJyb3JIYW5kbGVyKFZmclJldHVy bkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwNCj4gY3R4LkEubGluZSwgJ0lOVDE2 IHR5cGUgbWluaW11bSBjYW5cJ3Qgc21hbGwgdGhhbiAtMHg4MDAwLCBiaWcgdGhhbiAweDdGRkYn KQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIE1heCA+IDB4N0ZGRjoNCj4gDQo+IC0NCj4gc2VsZi5fX0Vy cm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+ IGN0eC5BLmxpbmUsICdJTlQxNiB0eXBlIG1pbmltdW0gY2FuXCd0IHNtYWxsIHRoYW4gLTB4ODAw MCwgYmlnIHRoYW4gMHg3RkZGJykNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGlmIE1heE5l Z2F0aXZlOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIE1heCA9IH5NYXggKyAxDQo+ IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBpZiBNYXggPCBNaW46ICMNCj4gDQo+ IC0NCj4gc2VsZi5fX0Vycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJ RF9QQVJBTUVURVIsDQo+IGN0eC5BLmxpbmUsICdNYXhpbXVtIGNhblwndCBiZSBsZXNzIHRoYW4g TWluaW11bScpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIFR5cGUgPT0gRUZJ X0lGUl9UWVBFX05VTV9TSVpFXzg6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBpZiBJbnRE ZWNTdHlsZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBpZiBNYXhOZWdhdGl2ZToN Cj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgTWF4ID4gMHg4MDoNCj4gDQo+ IC0NCj4gc2VsZi5fX0Vycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJ RF9QQVJBTUVURVIsDQo+IGN0eC5BLmxpbmUsICdJTlQ4IHR5cGUgbWluaW11bSBjYW5cJ3Qgc21h bGwgdGhhbiAtMHg4MCwgYmlnIHRoYW4gMHg3RicpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAg ICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgTWF4ID4g MHg3RjoNCj4gDQo+IC0NCj4gc2VsZi5fX0Vycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9S RVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+IGN0eC5BLmxpbmUsICdJTlQ4IHR5cGUgbWluaW11 bSBjYW5cJ3Qgc21hbGwgdGhhbiAtMHg4MCwgYmlnIHRoYW4gMHg3RicpDQo+IA0KPiAtICAgICAg ICAgICAgICAgICAgICBpZiBNYXhOZWdhdGl2ZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAg ICAgICBNYXggPSB+TWF4ICsgMQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAg aWYgTWF4IDwgTWluOiAjDQo+IA0KPiAtDQo+IHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJu Q29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLA0KPiBjdHguQS5saW5lLCAnTWF4aW11 bSBjYW5cJ3QgYmUgbGVzcyB0aGFuIE1pbmltdW0nKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAg aWYgc2VsZi5fX0N1cnJRZXN0VmFySW5mby5Jc0JpdFZhcjoNCj4gDQo+IC0gICAgICAgICAgICBj dHguT3BPYmouU2V0TWluTWF4U3RlcERhdGEoTWluLCBNYXgsIFN0ZXAsDQo+IEVGSV9JRlJfVFlQ RV9OVU1fU0laRV8zMikNCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAg VHlwZSA9IHNlbGYuX19DdXJyUWVzdFZhckluZm8uVmFyVHlwZQ0KPiANCj4gLSAgICAgICAgICAg IGlmIFR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzY0Og0KPiANCj4gLSAgICAgICAgICAg ICAgICBjdHguT3BPYmouU2V0TWluTWF4U3RlcERhdGEoTWluLCBNYXgsIFN0ZXAsDQo+IEVGSV9J RlJfVFlQRV9OVU1fU0laRV82NCkNCj4gDQo+IC0gICAgICAgICAgICBpZiBUeXBlID09IEVGSV9J RlJfVFlQRV9OVU1fU0laRV8zMjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgY3R4Lk9wT2JqLlNl dE1pbk1heFN0ZXBEYXRhKE1pbiwgTWF4LCBTdGVwLA0KPiBFRklfSUZSX1RZUEVfTlVNX1NJWkVf MzIpDQo+IA0KPiAtICAgICAgICAgICAgaWYgVHlwZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVf MTY6DQo+IA0KPiAtICAgICAgICAgICAgICAgIGN0eC5PcE9iai5TZXRNaW5NYXhTdGVwRGF0YShN aW4sIE1heCwgU3RlcCwNCj4gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzE2KQ0KPiANCj4gLSAgICAg ICAgICAgIGlmIFR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzg6DQo+IA0KPiAtICAgICAg ICAgICAgICAgIGN0eC5PcE9iai5TZXRNaW5NYXhTdGVwRGF0YShNaW4sIE1heCwgU3RlcCwNCj4g RUZJX0lGUl9UWVBFX05VTV9TSVpFXzgpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4g Y3R4Lk9wT2JqDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0 cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJOdW1lcmljRmxhZ3MuDQo+IA0KPiAt ICAgIGRlZiB2aXNpdFZmck51bWVyaWNGbGFncyhzZWxmLCBjdHg6VmZyU3ludGF4UGFyc2VyLlZm ck51bWVyaWNGbGFnc0NvbnRleHQpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgY3R4LkxGbGFn cyA9IHNlbGYuX19DdXJyUWVzdFZhckluZm8uVmFyVHlwZSAmIEVGSV9JRlJfTlVNRVJJQ19TSVpF DQo+IA0KPiAtICAgICAgICBWYXJTdG9yZVR5cGUgPQ0KPiBnQ1ZmckRhdGFTdG9yYWdlLkdldFZh clN0b3JlVHlwZShzZWxmLl9fQ3VyclFlc3RWYXJJbmZvLlZhclN0b3JlSWQpDQo+IA0KPiAtICAg ICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gDQo+IC0gICAgICAgIElzU2V0VHlwZSA9IEZh bHNlDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLQ0KPiAN Cj4gLSAgICAgICAgZm9yIEZsYWdzRmllbGRDdHggaW4gY3R4Lm51bWVyaWNGbGFnc0ZpZWxkKCk6 DQo+IA0KPiAtICAgICAgICAgICAgY3R4LkhGbGFncyB8PSBGbGFnc0ZpZWxkQ3R4LkhGbGFnDQo+ IA0KPiAtICAgICAgICAgICAgY3R4LklzRGlzcGxheVNwZWNpZmllZCA9IEZsYWdzRmllbGRDdHgu SXNEaXNwbGF5U3BlY2lmaWVkDQo+IA0KPiAtICAgICAgICAgICAgSXNTZXRUeXBlIHw9ICBGbGFn c0ZpZWxkQ3R4LklzU2V0VHlwZQ0KPiANCj4gLSAgICAgICAgICAgIGlmIEZsYWdzRmllbGRDdHgu TnVtZXJpY1NpemVPbmUoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgICAgICBpZiBzZWxm Ll9fQ3VyclFlc3RWYXJJbmZvLklzQml0VmFyID09IEZhbHNlOg0KPiANCj4gLSAgICAgICAgICAg ICAgICAgICAgY3R4LkxGbGFncyA9ICAoY3R4LkxGbGFncyAmIH5FRklfSUZSX05VTUVSSUNfU0la RSkgfA0KPiBFRklfSUZSX05VTUVSSUNfU0laRV8xDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAg ICAgaWYgRmxhZ3NGaWVsZEN0eC5OdW1lcmljU2l6ZVR3bygpICE9IE5vbmU6DQo+IA0KPiAtICAg ICAgICAgICAgICAgIGlmIHNlbGYuX19DdXJyUWVzdFZhckluZm8uSXNCaXRWYXIgPT0gRmFsc2U6 DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBjdHguTEZsYWdzID0gIChjdHguTEZsYWdzICYg fkVGSV9JRlJfTlVNRVJJQ19TSVpFKSB8DQo+IEVGSV9JRlJfTlVNRVJJQ19TSVpFXzINCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgICAgICBpZiBGbGFnc0ZpZWxkQ3R4Lk51bWVyaWNTaXplRm91cigp ICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIHNlbGYuX19DdXJyUWVzdFZhcklu Zm8uSXNCaXRWYXIgPT0gRmFsc2U6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBjdHguTEZs YWdzID0gIChjdHguTEZsYWdzICYgfkVGSV9JRlJfTlVNRVJJQ19TSVpFKSB8DQo+IEVGSV9JRlJf TlVNRVJJQ19TSVpFXzQNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICBpZiBGbGFnc0ZpZWxk Q3R4Lk51bWVyaWNTaXplRWlnaHQoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgICAgICBp ZiBzZWxmLl9fQ3VyclFlc3RWYXJJbmZvLklzQml0VmFyID09IEZhbHNlOg0KPiANCj4gLSAgICAg ICAgICAgICAgICAgICAgY3R4LkxGbGFncyA9ICAoY3R4LkxGbGFncyAmIH5FRklfSUZSX05VTUVS SUNfU0laRSkgfA0KPiBFRklfSUZSX05VTUVSSUNfU0laRV84DQo+IA0KPiAtDQo+IA0KPiAtICAg ICAgICAgICAgaWYgRmxhZ3NGaWVsZEN0eC5EaXNQbGF5SW50RGVjKCkgIT0gTm9uZToNCj4gDQo+ IC0gICAgICAgICAgICAgICAgaWYgc2VsZi5fX0N1cnJRZXN0VmFySW5mby5Jc0JpdFZhciA9PSBG YWxzZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGN0eC5MRmxhZ3MgPSAgKGN0eC5MRmxh Z3MgJiB+RUZJX0lGUl9ESVNQTEFZKSB8DQo+IEVGSV9JRlJfRElTUExBWV9JTlRfREVDDQo+IA0K PiAtICAgICAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBjdHgu TEZsYWdzID0gIChjdHguTEZsYWdzICYgfkVES0lJX0lGUl9ESVNQTEFZX0JJVCkgfA0KPiBFREtJ SV9JRlJfRElTUExBWV9JTlRfREVDX0JJVA0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgIGlm IEZsYWdzRmllbGRDdHguRGlzUGxheVVJbnRIZXgoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAg ICAgICAgICBpZiBzZWxmLl9fQ3VyclFlc3RWYXJJbmZvLklzQml0VmFyID09IEZhbHNlOg0KPiAN Cj4gLSAgICAgICAgICAgICAgICAgICAgY3R4LkxGbGFncyA9ICAoY3R4LkxGbGFncyAmIH5FRklf SUZSX0RJU1BMQVkpIHwNCj4gRUZJX0lGUl9ESVNQTEFZX1VJTlRfREVDDQo+IA0KPiAtICAgICAg ICAgICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBjdHguTEZsYWdzID0g IChjdHguTEZsYWdzICYgfkVES0lJX0lGUl9ESVNQTEFZX0JJVCkgfA0KPiBFREtJSV9JRlJfRElT UExBWV9VSU5UX0RFQ19CSVQNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICBpZiBGbGFnc0Zp ZWxkQ3R4LkRpc1BsYXlVSW50SGV4KCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAgICAg aWYgc2VsZi5fX0N1cnJRZXN0VmFySW5mby5Jc0JpdFZhciA9PSBGYWxzZToNCj4gDQo+IC0gICAg ICAgICAgICAgICAgICAgIGN0eC5MRmxhZ3MgPSAgKGN0eC5MRmxhZ3MgJiB+RUZJX0lGUl9ESVNQ TEFZKSB8DQo+IEVGSV9JRlJfRElTUExBWV9VSU5UX0hFWA0KPiANCj4gLSAgICAgICAgICAgICAg ICBlbHNlOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgY3R4LkxGbGFncyA9ICAoY3R4LkxG bGFncyAmIH5FREtJSV9JRlJfRElTUExBWV9CSVQpIHwNCj4gRURLSUlfSUZSX0RJU1BMQVlfVUlO VF9IRVhfQklUDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBzZWxmLl9fQ3VyclFlc3RWYXJJ bmZvLklzQml0VmFyID09IEZhbHNlOg0KPiANCj4gLSAgICAgICAgICAgIGlmIHNlbGYuX19DdXJy UWVzdFZhckluZm8uVmFyU3RvcmVJZCAhPSBFRklfVkFSU1RPUkVfSURfSU5WQUxJRDoNCj4gDQo+ IC0gICAgICAgICAgICAgICAgaWYgVmFyU3RvcmVUeXBlID09DQo+IEVGSV9WRlJfVkFSU1RPUkVf VFlQRS5FRklfVkZSX1ZBUlNUT1JFX0JVRkZFUiBvciBWYXJTdG9yZVR5cGUgPT0NCj4gRUZJX1ZG Ul9WQVJTVE9SRV9UWVBFLkVGSV9WRlJfVkFSU1RPUkVfRUZJOg0KPiANCj4gLSAgICAgICAgICAg ICAgICAgICAgaWYgc2VsZi5fX0N1cnJRZXN0VmFySW5mby5WYXJUeXBlICE9IChjdHguTEZsYWdz ICYNCj4gRUZJX0lGUl9OVU1FUklDX1NJWkUpOg0KPiANCj4gLQ0KPiBzZWxmLl9fRXJyb3JIYW5k bGVyKFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwgTGluZSwNCj4g J051bWVyaWMgRmxhZyBpcyBub3Qgc2FtZSB0byBOdW1lcmljIFZhckRhdGEgdHlwZScpDQo+IA0K PiAtICAgICAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAjIHVw ZGF0ZSBkYXRhIHR5cGUgZm9yIG5hbWUvdmFsdWUgc3RvcmUNCj4gDQo+IC0gICAgICAgICAgICAg ICAgICAgIHNlbGYuX19DdXJyUWVzdFZhckluZm8uVmFyVHlwZSA9IGN0eC5MRmxhZ3MgJg0KPiBF RklfSUZSX05VTUVSSUNfU0laRQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgU2l6ZSwgXyA9 DQo+IGdDVmZyVmFyRGF0YVR5cGVEQi5HZXREYXRhVHlwZVNpemVCeURhdGFUeXBlKHNlbGYuX19D dXJyUWVzdFZhckluZm8uVmFyDQo+IFR5cGUpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBz ZWxmLl9fQ3VyclFlc3RWYXJJbmZvLlZhclRvdGFsU2l6ZSA9IFNpemUNCj4gDQo+IC0gICAgICAg ICAgICBlbGlmIElzU2V0VHlwZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5fX0N1cnJR ZXN0VmFySW5mby5WYXJUeXBlID0gY3R4LkxGbGFncyAmDQo+IEVGSV9JRlJfTlVNRVJJQ19TSVpF DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBlbGlmIHNlbGYuX19DdXJyUWVzdFZhckluZm8uVmFy U3RvcmVJZCAhPSBFRklfVkFSU1RPUkVfSURfSU5WQUxJRCBhbmQNCj4gc2VsZi5fX0N1cnJRZXN0 VmFySW5mby5Jc0JpdFZhcjoNCj4gDQo+IC0gICAgICAgICAgICBjdHguTEZsYWdzICY9IEVES0lJ X0lGUl9ESVNQTEFZX0JJVA0KPiANCj4gLSAgICAgICAgICAgIGN0eC5MRmxhZ3MgfD0gRURLSUlf SUZSX05VTUVSSUNfU0laRV9CSVQgJg0KPiBzZWxmLl9fQ3VyclFlc3RWYXJJbmZvLlZhclRvdGFs U2l6ZQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5IRmxhZ3MsIGN0eC5MRmxh Z3MNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJv ZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI251bWVyaWNGbGFnc0ZpZWxkLg0KPiANCj4gLSAgICBk ZWYgdmlzaXROdW1lcmljRmxhZ3NGaWVsZChzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLk51 bWVyaWNGbGFnc0ZpZWxkQ29udGV4dCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBzZWxmLnZp c2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgTGluZSA9IGN0eC5zdGFy dC5saW5lDQo+IA0KPiAtICAgICAgICBpZiBjdHguTnVtYmVyKCkgIT0gTm9uZToNCj4gDQo+IC0g ICAgICAgICAgICBpZiBzZWxmLl9fVHJhbnNOdW0oY3R4Lk4udGV4dCkgIT0gMDoNCj4gDQo+IC0g ICAgICAgICAgICAgICAgc2VsZi5fX0Vycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRV Uk5fVU5TVVBQT1JURUQsDQo+IExpbmUpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBjdHgu TnVtZXJpY1NpemVPbmUoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGlmIHNlbGYuX19D dXJyUWVzdFZhckluZm8uSXNCaXRWYXIgPT0gRmFsc2U6DQo+IA0KPiAtICAgICAgICAgICAgICAg IGN0eC5Jc1NldFR5cGUgPSBUcnVlDQo+IA0KPiAtICAgICAgICAgICAgZWxzZToNCj4gDQo+IC0N Cj4gc2VsZi5fX0Vycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9Q QVJBTUVURVIsIExpbmUsDQo+ICdDYW4gbm90IHNwZWNpZnkgdGhlIHNpemUgb2YgdGhlIG51bWVy aWMgdmFsdWUgZm9yIEJJVCBmaWVsZCcpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBjdHgu TnVtZXJpY1NpemVUd28oKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGlmIHNlbGYuX19D dXJyUWVzdFZhckluZm8uSXNCaXRWYXIgPT0gRmFsc2U6DQo+IA0KPiAtICAgICAgICAgICAgICAg IGN0eC5Jc1NldFR5cGUgPSBUcnVlDQo+IA0KPiAtICAgICAgICAgICAgZWxzZToNCj4gDQo+IC0N Cj4gc2VsZi5fX0Vycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9Q QVJBTUVURVIsIExpbmUsDQo+ICdDYW4gbm90IHNwZWNpZnkgdGhlIHNpemUgb2YgdGhlIG51bWVy aWMgdmFsdWUgZm9yIEJJVCBmaWVsZCcpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBjdHgu TnVtZXJpY1NpemVGb3VyKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBpZiBzZWxmLl9f Q3VyclFlc3RWYXJJbmZvLklzQml0VmFyID09IEZhbHNlOg0KPiANCj4gLSAgICAgICAgICAgICAg ICBjdHguSXNTZXRUeXBlID0gVHJ1ZQ0KPiANCj4gLSAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAt DQo+IHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURf UEFSQU1FVEVSLCBMaW5lLA0KPiAnQ2FuIG5vdCBzcGVjaWZ5IHRoZSBzaXplIG9mIHRoZSBudW1l cmljIHZhbHVlIGZvciBCSVQgZmllbGQnKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgY3R4 Lk51bWVyaWNTaXplRWlnaHQoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGlmIHNlbGYu X19DdXJyUWVzdFZhckluZm8uSXNCaXRWYXIgPT0gRmFsc2U6DQo+IA0KPiAtICAgICAgICAgICAg ICAgIGN0eC5Jc1NldFR5cGUgPSBUcnVlDQo+IA0KPiAtICAgICAgICAgICAgZWxzZToNCj4gDQo+ IC0NCj4gc2VsZi5fX0Vycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJ RF9QQVJBTUVURVIsIExpbmUsDQo+ICdDYW4gbm90IHNwZWNpZnkgdGhlIHNpemUgb2YgdGhlIG51 bWVyaWMgdmFsdWUgZm9yIEJJVCBmaWVsZCcpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBj dHguRGlzUGxheUludERlYygpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4LklzRGlz cGxheVNwZWNpZmllZCA9IFRydWUNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIGN0eC5EaXNQ bGF5VUludEhleCgpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4LklzRGlzcGxheVNw ZWNpZmllZCA9IFRydWUNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIGN0eC5EaXNQbGF5VUlu dEhleCgpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4LklzRGlzcGxheVNwZWNpZmll ZCA9IFRydWUNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIGN0eC5xdWVzdGlvbmhlYWRlckZs YWdzRmllbGQoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5IRmxhZyA9IGN0eC5x dWVzdGlvbmhlYWRlckZsYWdzRmllbGQoKS5RSEZsYWcNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAg IHJldHVybiBjdHguSEZsYWcNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBh IHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudE9uZU9m Lg0KPiANCj4gLSAgICBkZWYgdmlzaXRWZnJTdGF0ZW1lbnRPbmVPZihzZWxmLA0KPiBjdHg6VmZy U3ludGF4UGFyc2VyLlZmclN0YXRlbWVudE9uZU9mQ29udGV4dCk6DQo+IA0KPiAtDQo+IA0KPiAt ICAgICAgICBPT2JqID0gY3R4Lk9wT2JqDQo+IA0KPiAtICAgICAgICBMaW5lID0gY3R4LnN0YXJ0 LmxpbmUNCj4gDQo+IC0gICAgICAgIE9PYmouU2V0TGluZU5vKExpbmUpDQo+IA0KPiAtICAgICAg ICBzZWxmLl9fQ3VycmVudFF1ZXN0aW9uID0gT09iai5HZXRRdWVzdGlvbigpDQo+IA0KPiAtICAg ICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgaWYgc2VsZi5fX0N1 cnJRZXN0VmFySW5mby5Jc0JpdFZhcjoNCj4gDQo+IC0gICAgICAgICAgICBHdWlkT2JqID0gQ0lm ckd1aWQoMCkNCj4gDQo+IC0gICAgICAgICAgICBHdWlkT2JqLlNldEd1aWQoRURLSUlfSUZSX0JJ VF9WQVJTVE9SRV9HVUlEKQ0KPiANCj4gLSAgICAgICAgICAgIEd1aWRPYmouU2V0TGluZU5vKGN0 eC5zdGFydC5saW5lKQ0KPiANCj4gLSAgICAgICAgICAgIEd1aWRPYmouU2V0U2NvcGUoMSkgIyBw b3MNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICMgY2hlY2sgZGF0YSB0eXBlDQo+IA0KPiAtICAg ICAgICBpZiBzZWxmLl9fQ3VyclFlc3RWYXJJbmZvLlZhclN0b3JlSWQgIT0gRUZJX1ZBUlNUT1JF X0lEX0lOVkFMSUQ6DQo+IA0KPiAtICAgICAgICAgICAgaWYgc2VsZi5fX0N1cnJRZXN0VmFySW5m by5Jc0JpdFZhcjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgTEZsYWdzID0gRURLSUlfSUZSX05V TUVSSUNfU0laRV9CSVQgJg0KPiBzZWxmLl9fQ3VyclFlc3RWYXJJbmZvLlZhclRvdGFsU2l6ZQ0K PiANCj4gLQ0KPiBzZWxmLl9fRXJyb3JIYW5kbGVyKE9PYmouU2V0RmxhZ3NGb3JCaXRGaWVsZChP T2JqLkdldEZsYWdzKCksTEZsYWdzKSwgTGluZSkNCj4gDQo+IC0gICAgICAgICAgICBlbHNlOg0K PiANCj4gLSAgICAgICAgICAgICAgICBEYXRhVHlwZVNpemUsIFJldHVybkNvZGUgPQ0KPiBnQ1Zm clZhckRhdGFUeXBlREIuR2V0RGF0YVR5cGVTaXplQnlEYXRhVHlwZShzZWxmLl9fQ3VyclFlc3RW YXJJbmZvLlZhcg0KPiBUeXBlKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLl9fRXJyb3JI YW5kbGVyKFJldHVybkNvZGUsIExpbmUsICdPbmVPZiB2YXJpZCBpcyBub3QgdGhlIHZhbGlkDQo+ IGRhdGEgdHlwZScpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIERhdGFUeXBlU2l6ZSAhPSAw IGFuZCBEYXRhVHlwZVNpemUgIT0NCj4gc2VsZi5fX0N1cnJRZXN0VmFySW5mby5WYXJUb3RhbFNp emU6DQo+IA0KPiAtDQo+IHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJfUkVU VVJOX0lOVkFMSURfUEFSQU1FVEVSLCBMaW5lLA0KPiAnT25lT2YgdmFyaWQgZG9lc25cJ3Qgc3Vw cG9ydCBhcnJheScpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIo T09iai5TZXRGbGFncyhPT2JqLkdldEZsYWdzKCksDQo+IHNlbGYuX19DdXJyUWVzdFZhckluZm8u VmFyVHlwZSksIExpbmUpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBjdHguRkxBR1MoKSAh PSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGlmIHNlbGYuX19DdXJyUWVzdFZhckluZm8uSXNC aXRWYXI6DQo+IA0KPiAtDQo+IHNlbGYuX19FcnJvckhhbmRsZXIoT09iai5TZXRGbGFnc0ZvckJp dEZpZWxkKGN0eC52ZnJPbmVvZkZsYWdzRmllbGQoKS5IRmxhZ3MsDQo+IGN0eC52ZnJPbmVvZkZs YWdzRmllbGQoKS5MRmxhZ3MpLCBjdHguRi5saW5lKQ0KPiANCj4gLSAgICAgICAgICAgIGVsc2U6 DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoT09iai5TZXRGbGFn cyhjdHgudmZyT25lb2ZGbGFnc0ZpZWxkKCkuSEZsYWdzLA0KPiBjdHgudmZyT25lb2ZGbGFnc0Zp ZWxkKCkuTEZsYWdzKSwgY3R4LkYubGluZSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIFNocmlu a1NpemUgPSAwDQo+IA0KPiAtICAgICAgICBJc1N1cHBvcnRlZCA9IFRydWUNCj4gDQo+IC0gICAg ICAgIGlmIHNlbGYuX19DdXJyUWVzdFZhckluZm8uSXNCaXRWYXIgPT0gRmFsc2U6DQo+IA0KPiAt ICAgICAgICAgICAgVHlwZSA9IHNlbGYuX19DdXJyUWVzdFZhckluZm8uVmFyVHlwZQ0KPiANCj4g LSAgICAgICAgICAgICMgQmFzZSBvbiB0aGUgdHlwZSB0byBrbm93IHRoZSBhY3R1YWwgdXNlZCBz aXplLCBzaHJpbmsgdGhlIGJ1ZmZlciBzaXplDQo+IGFsbG9jYXRlIGJlZm9yZS4NCj4gDQo+IC0g ICAgICAgICAgICBpZiBUeXBlID09IEVGSV9JRlJfVFlQRV9OVU1fU0laRV84Og0KPiANCj4gLSAg ICAgICAgICAgICAgICBTaHJpbmtTaXplID0gMjENCj4gDQo+IC0gICAgICAgICAgICBlbGlmIFR5 cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzE2Og0KPiANCj4gLSAgICAgICAgICAgICAgICBT aHJpbmtTaXplID0gMTgNCj4gDQo+IC0gICAgICAgICAgICBlbGlmIFR5cGUgPT0gRUZJX0lGUl9U WVBFX05VTV9TSVpFXzMyOg0KPiANCj4gLSAgICAgICAgICAgICAgICBTaHJpbmtTaXplID0gMTIN Cj4gDQo+IC0gICAgICAgICAgICBlbGlmIFR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzY0 Og0KPiANCj4gLSAgICAgICAgICAgICAgICBTaHJpbmtTaXplID0gMCAjDQo+IA0KPiAtICAgICAg ICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgSXNTdXBwb3J0ZWQgPSBGYWxzZQ0K PiANCj4gLSAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICAjP1F1ZXN0aW9uIHN0b3Jl ZCBpbiBiaXQgZmllbGRzIHNhdmVkIGFzIFVJTlQzMiB0eXBlLCBzbyB0aGUgU2hyaW5rU2l6ZQ0K PiBzYW1lIGFzIEVGSV9JRlJfVFlQRV9OVU1fU0laRV8zMi4NCj4gDQo+IC0gICAgICAgICAgICBT aHJpbmtTaXplID0gMTINCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICMgT09iai5TaHJpbmtCaW5T aXplKFNocmlua1NpemUpDQo+IA0KPiAtICAgICAgICBpZiBJc1N1cHBvcnRlZCA9PSBGYWxzZToN Cj4gDQo+IC0NCj4gc2VsZi5fX0Vycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5f SU5WQUxJRF9QQVJBTUVURVIsIExpbmUsDQo+ICdPbmVPZiBxdWVzdGlvbiBvbmx5IHN1cHBvcnQg VUlOVDgsIFVJTlQxNiwgVUlOVDMyIGFuZCBVSU5UNjQgZGF0YSB0eXBlLicpDQo+IA0KPiAtDQo+ IA0KPiAtICAgICAgICBjdHguTm9kZS5EYXRhID0gT09iag0KPiANCj4gLQ0KPiANCj4gLSAgICAg ICAgcmV0dXJuIGN0eC5Ob2RlDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQg YSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJPbmVvZkZsYWdzRmll bGQuDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmck9uZW9mRmxhZ3NGaWVsZChzZWxmLA0KPiBjdHg6 VmZyU3ludGF4UGFyc2VyLlZmck9uZW9mRmxhZ3NGaWVsZENvbnRleHQpOg0KPiANCj4gLQ0KPiAN Cj4gLSAgICAgICAgY3R4LkxGbGFncyA9IHNlbGYuX19DdXJyUWVzdFZhckluZm8uVmFyVHlwZSAm IEVGSV9JRlJfTlVNRVJJQ19TSVpFDQo+IA0KPiAtICAgICAgICBWYXJTdG9yZVR5cGUgPQ0KPiBn Q1ZmckRhdGFTdG9yYWdlLkdldFZhclN0b3JlVHlwZShzZWxmLl9fQ3VyclFlc3RWYXJJbmZvLlZh clN0b3JlSWQpDQo+IA0KPiAtICAgICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gDQo+IC0g ICAgICAgIElzU2V0VHlwZSA9IEZhbHNlDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRy ZW4oY3R4KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgZm9yIEZsYWdzRmllbGRDdHggaW4gY3R4 Lm51bWVyaWNGbGFnc0ZpZWxkKCk6DQo+IA0KPiAtICAgICAgICAgICAgY3R4LkhGbGFncyB8PSBG bGFnc0ZpZWxkQ3R4LkhGbGFnDQo+IA0KPiAtICAgICAgICAgICAgY3R4LklzRGlzcGxheVNwZWNp ZmllZCA9IEZsYWdzRmllbGRDdHguSXNEaXNwbGF5U3BlY2lmaWVkDQo+IA0KPiAtICAgICAgICAg ICAgSXNTZXRUeXBlIHw9IEZsYWdzRmllbGRDdHguSXNTZXRUeXBlDQo+IA0KPiAtICAgICAgICAg ICAgaWYgRmxhZ3NGaWVsZEN0eC5OdW1lcmljU2l6ZU9uZSgpICE9IE5vbmU6DQo+IA0KPiAtICAg ICAgICAgICAgICAgIGlmIHNlbGYuX19DdXJyUWVzdFZhckluZm8uSXNCaXRWYXIgPT0gRmFsc2U6 DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBjdHguTEZsYWdzID0gIChjdHguTEZsYWdzICYg fkVGSV9JRlJfTlVNRVJJQ19TSVpFKSB8DQo+IEVGSV9JRlJfTlVNRVJJQ19TSVpFXzENCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgICAgICBpZiBGbGFnc0ZpZWxkQ3R4Lk51bWVyaWNTaXplVHdvKCkg IT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgc2VsZi5fX0N1cnJRZXN0VmFySW5m by5Jc0JpdFZhciA9PSBGYWxzZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGN0eC5MRmxh Z3MgPSAgKGN0eC5MRmxhZ3MgJiB+RUZJX0lGUl9OVU1FUklDX1NJWkUpIHwNCj4gRUZJX0lGUl9O VU1FUklDX1NJWkVfMg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgIGlmIEZsYWdzRmllbGRD dHguTnVtZXJpY1NpemVGb3VyKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYg c2VsZi5fX0N1cnJRZXN0VmFySW5mby5Jc0JpdFZhciA9PSBGYWxzZToNCj4gDQo+IC0gICAgICAg ICAgICAgICAgICAgIGN0eC5MRmxhZ3MgPSAgKGN0eC5MRmxhZ3MgJiB+RUZJX0lGUl9OVU1FUklD X1NJWkUpIHwNCj4gRUZJX0lGUl9OVU1FUklDX1NJWkVfNA0KPiANCj4gLQ0KPiANCj4gLSAgICAg ICAgICAgIGlmIEZsYWdzRmllbGRDdHguTnVtZXJpY1NpemVFaWdodCgpICE9IE5vbmU6DQo+IA0K PiAtICAgICAgICAgICAgICAgIGlmIHNlbGYuX19DdXJyUWVzdFZhckluZm8uSXNCaXRWYXIgPT0g RmFsc2U6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBjdHguTEZsYWdzID0gIChjdHguTEZs YWdzICYgfkVGSV9JRlJfTlVNRVJJQ19TSVpFKSB8DQo+IEVGSV9JRlJfTlVNRVJJQ19TSVpFXzgN Cj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICBpZiBGbGFnc0ZpZWxkQ3R4LkRpc1BsYXlJbnRE ZWMoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9fQ3VyclFlc3RW YXJJbmZvLklzQml0VmFyID09IEZhbHNlOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgY3R4 LkxGbGFncyA9ICAoY3R4LkxGbGFncyAmIH5FRklfSUZSX0RJU1BMQVkpIHwNCj4gRUZJX0lGUl9E SVNQTEFZX0lOVF9ERUMNCj4gDQo+IC0gICAgICAgICAgICAgICAgZWxzZToNCj4gDQo+IC0gICAg ICAgICAgICAgICAgICAgIGN0eC5MRmxhZ3MgPSAgKGN0eC5MRmxhZ3MgJiB+RURLSUlfSUZSX0RJ U1BMQVlfQklUKSB8DQo+IEVES0lJX0lGUl9ESVNQTEFZX0lOVF9ERUNfQklUDQo+IA0KPiAtDQo+ IA0KPiAtICAgICAgICAgICAgaWYgRmxhZ3NGaWVsZEN0eC5EaXNQbGF5VUludEhleCgpICE9IE5v bmU6DQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIHNlbGYuX19DdXJyUWVzdFZhckluZm8uSXNC aXRWYXIgPT0gRmFsc2U6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBjdHguTEZsYWdzID0g IChjdHguTEZsYWdzICYgfkVGSV9JRlJfRElTUExBWSkgfA0KPiBFRklfSUZSX0RJU1BMQVlfVUlO VF9ERUMNCj4gDQo+IC0gICAgICAgICAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICAg ICAgICAgIGN0eC5MRmxhZ3MgPSAgKGN0eC5MRmxhZ3MgJiB+RURLSUlfSUZSX0RJU1BMQVlfQklU KSB8DQo+IEVES0lJX0lGUl9ESVNQTEFZX1VJTlRfREVDX0JJVA0KPiANCj4gLQ0KPiANCj4gLSAg ICAgICAgICAgIGlmIEZsYWdzRmllbGRDdHguRGlzUGxheVVJbnRIZXgoKSAhPSBOb25lOg0KPiAN Cj4gLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9fQ3VyclFlc3RWYXJJbmZvLklzQml0VmFyID09 IEZhbHNlOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgY3R4LkxGbGFncyA9ICAoY3R4LkxG bGFncyAmIH5FRklfSUZSX0RJU1BMQVkpIHwNCj4gRUZJX0lGUl9ESVNQTEFZX1VJTlRfSEVYDQo+ IA0KPiAtICAgICAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBj dHguTEZsYWdzID0gIChjdHguTEZsYWdzICYgfkVES0lJX0lGUl9ESVNQTEFZX0JJVCkgfA0KPiBF REtJSV9JRlJfRElTUExBWV9VSU5UX0hFWF9CSVQNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlm IHNlbGYuX19DdXJyUWVzdFZhckluZm8uSXNCaXRWYXIgPT0gRmFsc2U6DQo+IA0KPiAtICAgICAg ICAgICAgaWYgc2VsZi5fX0N1cnJRZXN0VmFySW5mby5WYXJTdG9yZUlkICE9IEVGSV9WQVJTVE9S RV9JRF9JTlZBTElEOg0KPiANCj4gLSAgICAgICAgICAgICAgICBpZiBWYXJTdG9yZVR5cGUgPT0N Cj4gRUZJX1ZGUl9WQVJTVE9SRV9UWVBFLkVGSV9WRlJfVkFSU1RPUkVfQlVGRkVSIG9yIFZhclN0 b3JlVHlwZSA9PQ0KPiBFRklfVkZSX1ZBUlNUT1JFX1RZUEUuRUZJX1ZGUl9WQVJTVE9SRV9FRkk6 DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLl9fQ3VyclFlc3RWYXJJbmZvLlZh clR5cGUgIT0gKGN0eC5MRmxhZ3MgJg0KPiBFRklfSUZSX05VTUVSSUNfU0laRSk6DQo+IA0KPiAt DQo+IHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURf UEFSQU1FVEVSLCBMaW5lLA0KPiAnTnVtZXJpYyBGbGFnIGlzIG5vdCBzYW1lIHRvIE51bWVyaWMg VmFyRGF0YSB0eXBlJykNCj4gDQo+IC0gICAgICAgICAgICAgICAgZWxzZToNCj4gDQo+IC0gICAg ICAgICAgICAgICAgICAgICMgdXBkYXRlIGRhdGEgdHlwZSBmb3IgbmFtZS92YWx1ZSBzdG9yZQ0K PiANCj4gLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fX0N1cnJRZXN0VmFySW5mby5WYXJUeXBl ID0gY3R4LkxGbGFncyAmDQo+IEVGSV9JRlJfTlVNRVJJQ19TSVpFDQo+IA0KPiAtICAgICAgICAg ICAgICAgICAgICBTaXplLCBfID0NCj4gZ0NWZnJWYXJEYXRhVHlwZURCLkdldERhdGFUeXBlU2l6 ZUJ5RGF0YVR5cGUoc2VsZi5fX0N1cnJRZXN0VmFySW5mby5WYXINCj4gVHlwZSkNCj4gDQo+IC0g ICAgICAgICAgICAgICAgICAgIHNlbGYuX19DdXJyUWVzdFZhckluZm8uVmFyVG90YWxTaXplID0g U2l6ZQ0KPiANCj4gLSAgICAgICAgICAgIGVsaWYgSXNTZXRUeXBlOg0KPiANCj4gLSAgICAgICAg ICAgICAgICBzZWxmLl9fQ3VyclFlc3RWYXJJbmZvLlZhclR5cGUgPSBjdHguTEZsYWdzICYNCj4g RUZJX0lGUl9OVU1FUklDX1NJWkUNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGVsaWYgc2VsZi5f X0N1cnJRZXN0VmFySW5mby5WYXJTdG9yZUlkICE9IEVGSV9WQVJTVE9SRV9JRF9JTlZBTElEOg0K PiANCj4gLSAgICAgICAgICAgIGN0eC5MRmxhZ3MgJj0gRURLSUlfSUZSX0RJU1BMQVlfQklUDQo+ IA0KPiAtICAgICAgICAgICAgY3R4LkxGbGFncyB8PSBFREtJSV9JRlJfTlVNRVJJQ19TSVpFX0JJ VCAmDQo+IHNlbGYuX19DdXJyUWVzdFZhckluZm8uVmFyVG90YWxTaXplDQo+IA0KPiAtDQo+IA0K PiAtICAgICAgICByZXR1cm4gY3R4LkhGbGFncywgY3R4LkxGbGFncw0KPiANCj4gLQ0KPiANCj4g LQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQ YXJzZXIjdmZyU3RhdGVtZW50U3RyaW5nVHlwZS4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VmZyU3Rh dGVtZW50U3RyaW5nVHlwZShzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVu dFN0cmluZ1R5cGVDb250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRD aGlsZHJlbihjdHgpDQo+IA0KPiAtICAgICAgICBpZiBjdHgudmZyU3RhdGVtZW50UGFzc3dvcmQo KSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVu dFBhc3N3b3JkKCkuTm9kZQ0KPiANCj4gLSAgICAgICAgZWxpZiBjdHgudmZyU3RhdGVtZW50U3Ry aW5nKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0 ZW1lbnRTdHJpbmcoKS5Ob2RlDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gDQo+ IC0NCj4gDQo+IC0gICAgZGVmIF9HRVRfQ1VSUlFFU1RfQVJSQVlfU0laRShzZWxmKToNCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgIFNpemUgPSAxDQo+IA0KPiAtICAgICAgICBpZiBzZWxmLl9fQ3Vy clFlc3RWYXJJbmZvLlZhclR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzg6DQo+IA0KPiAt ICAgICAgICAgICAgU2l6ZSA9IDENCj4gDQo+IC0gICAgICAgIGlmIHNlbGYuX19DdXJyUWVzdFZh ckluZm8uVmFyVHlwZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMTY6DQo+IA0KPiAtICAgICAg ICAgICAgU2l6ZSA9IDINCj4gDQo+IC0gICAgICAgIGlmIHNlbGYuX19DdXJyUWVzdFZhckluZm8u VmFyVHlwZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMzI6DQo+IA0KPiAtICAgICAgICAgICAg U2l6ZSA9IDQNCj4gDQo+IC0gICAgICAgIGlmIHNlbGYuX19DdXJyUWVzdFZhckluZm8uVmFyVHlw ZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfNjQ6DQo+IA0KPiAtICAgICAgICAgICAgU2l6ZSA9 IDgNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBpbnQoc2VsZi5fX0N1cnJRZXN0VmFy SW5mby5WYXJUb3RhbFNpemUgLyBTaXplKQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAj IFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVt ZW50U3RyaW5nLg0KPiANCj4gLSAgICBkZWYgdmlzaXRWZnJTdGF0ZW1lbnRTdHJpbmcoc2VsZiwN Cj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRTdHJpbmdDb250ZXh0KToNCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgIHNlbGYuX19Jc1N0cmluZ09wID0gVHJ1ZQ0KPiANCj4gLSAgICAg ICAgU09iaiA9IGN0eC5PcE9iag0KPiANCj4gLSAgICAgICAgU09iai5TZXRMaW5lTm8oY3R4LnN0 YXJ0LmxpbmUpDQo+IA0KPiAtICAgICAgICBzZWxmLl9fQ3VycmVudFF1ZXN0aW9uID0gU09iai5H ZXRRdWVzdGlvbigpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4o Y3R4KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgY3R4LkZMQUdTKCkgIT0gTm9uZToNCj4g DQo+IC0gICAgICAgICAgICBIRmxhZ3MgPSBjdHgudmZyU3RyaW5nRmxhZ3NGaWVsZCgpLkhGbGFn cw0KPiANCj4gLSAgICAgICAgICAgIExGbGFncyA9IGN0eC52ZnJTdHJpbmdGbGFnc0ZpZWxkKCku TEZsYWdzDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX0Vycm9ySGFuZGxlcihTT2JqLlNldEZs YWdzKEhGbGFncywgTEZsYWdzKSwgY3R4LkYubGluZSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAg IGlmIGN0eC5LZXkoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIEtleSA9IHNlbGYuX19U cmFuc051bShjdHguTnVtYmVyKDApKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19Bc3NpZ25R dWVzdGlvbktleShTT2JqLCBLZXkpDQo+IA0KPiAtICAgICAgICAgICAgU3RyaW5nTWluU2l6ZSA9 IHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKDEpKQ0KPiANCj4gLSAgICAgICAgICAgIFN0cmlu Z01heFNpemUgPSBzZWxmLl9fVHJhbnNOdW0oY3R4Lk51bWJlcigyKSkNCj4gDQo+IC0gICAgICAg IGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgU3RyaW5nTWluU2l6ZSA9IHNlbGYuX19UcmFuc051 bShjdHguTnVtYmVyKDApKQ0KPiANCj4gLSAgICAgICAgICAgIFN0cmluZ01heFNpemUgPSBzZWxm Ll9fVHJhbnNOdW0oY3R4Lk51bWJlcigxKSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIFZhckFy cmF5U2l6ZSA9IHNlbGYuX0dFVF9DVVJSUUVTVF9BUlJBWV9TSVpFKCkNCj4gDQo+IC0gICAgICAg IGlmIFN0cmluZ01pblNpemUgPiAweEZGOg0KPiANCj4gLQ0KPiBzZWxmLl9fRXJyb3JIYW5kbGVy KFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwNCj4gY3R4Lk1pbi5s aW5lLCAiU3RyaW5nIE1pblNpemUgdGFrZXMgb25seSBvbmUgYnl0ZSwgd2hpY2ggY2FuJ3QgYmUg bGFyZ2VyIHRoYW4NCj4gMHhGRi4iKQ0KPiANCj4gLSAgICAgICAgaWYgVmFyQXJyYXlTaXplICE9 IDAgYW5kIFN0cmluZ01pblNpemUgPiBWYXJBcnJheVNpemU6DQo+IA0KPiAtDQo+IHNlbGYuX19F cnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLA0K PiBjdHguTWluLmxpbmUsICJTdHJpbmcgTWluU2l6ZSBjYW4ndCBiZSBsYXJnZXIgdGhhbiB0aGUg bWF4IG51bWJlciBvZiBlbGVtZW50cw0KPiBpbiBzdHJpbmcgYXJyYXkuIikNCj4gDQo+IC0gICAg ICAgIFNPYmouU2V0TWluU2l6ZShTdHJpbmdNaW5TaXplKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAg ICAgaWYgU3RyaW5nTWF4U2l6ZSA+IDB4RkY6DQo+IA0KPiAtDQo+IHNlbGYuX19FcnJvckhhbmRs ZXIoVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLA0KPiBjdHguTWF4 LmxpbmUsICJTdHJpbmcgTWF4U2l6ZSB0YWtlcyBvbmx5IG9uZSBieXRlLCB3aGljaCBjYW4ndCBi ZSBsYXJnZXIgdGhhbg0KPiAweEZGLiIpDQo+IA0KPiAtICAgICAgICBlbGlmIFZhckFycmF5U2l6 ZSAhPSAwIGFuZCBTdHJpbmdNYXhTaXplID4gVmFyQXJyYXlTaXplOg0KPiANCj4gLQ0KPiBzZWxm Ll9fRXJyb3JIYW5kbGVyKFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRF UiwNCj4gY3R4Lk1heC5saW5lLCAiU3RyaW5nIE1heFNpemUgY2FuJ3QgYmUgbGFyZ2VyIHRoYW4g dGhlIG1heCBudW1iZXIgb2YNCj4gZWxlbWVudHMgaW4gc3RyaW5nIGFycmF5LiIpDQo+IA0KPiAt ICAgICAgICBlbGlmIFN0cmluZ01heFNpemUgPCBTdHJpbmdNaW5TaXplOg0KPiANCj4gLQ0KPiBz ZWxmLl9fRXJyb3JIYW5kbGVyKFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFN RVRFUiwNCj4gY3R4Lk1heC5saW5lLCAiU3RyaW5nIE1heFNpemUgY2FuJ3QgYmUgbGVzcyB0aGFu IFN0cmluZyBNaW5TaXplLiIpDQo+IA0KPiAtICAgICAgICBTT2JqLlNldE1heFNpemUoU3RyaW5n TWF4U2l6ZSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBTT2JqDQo+ IA0KPiAtDQo+IA0KPiAtICAgICAgICBzZWxmLl9fSXNTdHJpbmdPcCA9IEZhbHNlDQo+IA0KPiAt DQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+ IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3Zm clN0cmluZ0ZsYWdzRmllbGQuDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmclN0cmluZ0ZsYWdzRmll bGQoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJTdHJpbmdGbGFnc0ZpZWxkQ29udGV4 dCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiAN Cj4gLSAgICAgICAgZm9yIEZsYWdzRmllbGRDdHggaW4gY3R4LnN0cmluZ0ZsYWdzRmllbGQoKToN Cj4gDQo+IC0gICAgICAgICAgICBjdHguSEZsYWdzIHw9IEZsYWdzRmllbGRDdHguSEZsYWcNCj4g DQo+IC0gICAgICAgICAgICBjdHguTEZsYWdzIHw9IEZsYWdzRmllbGRDdHguTEZsYWcNCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguSEZsYWdzLCBjdHguTEZsYWdzDQo+IA0KPiAt DQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZm clN5bnRheFBhcnNlciNzdHJpbmdGbGFnc0ZpZWxkLg0KPiANCj4gLSAgICBkZWYgdmlzaXRTdHJp bmdGbGFnc0ZpZWxkKHNlbGYsIGN0eDpWZnJTeW50YXhQYXJzZXIuU3RyaW5nRmxhZ3NGaWVsZENv bnRleHQpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkN Cj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIGN0eC5OdW1iZXIoKSAhPSBOb25lOg0KPiANCj4g LSAgICAgICAgICAgIGlmIHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKCkpICE9IDA6DQo+IA0K PiAtICAgICAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJf UkVUVVJOX1VOU1VQUE9SVEVELA0KPiBjdHguc3RhcnQubGluZSkNCj4gDQo+IC0gICAgICAgIGVs aWYgY3R4LnF1ZXN0aW9uaGVhZGVyRmxhZ3NGaWVsZCgpICE9IE5vbmU6DQo+IA0KPiAtDQo+IA0K PiAtICAgICAgICAgICAgY3R4LkhGbGFnID0gY3R4LnF1ZXN0aW9uaGVhZGVyRmxhZ3NGaWVsZCgp LlFIRmxhZw0KPiANCj4gLSAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICBjdHguTEZs YWcgPSAweDAxDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gIGN0eC5IRmxhZywgY3R4 LkxGbGFnDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVl IHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRQYXNzd29yZC4NCj4gDQo+ IC0gICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50UGFzc3dvcmQoc2VsZiwNCj4gY3R4OlZmclN5bnRh eFBhcnNlci5WZnJTdGF0ZW1lbnRQYXNzd29yZENvbnRleHQpOg0KPiANCj4gLQ0KPiANCj4gLSAg ICAgICAgUE9iaiA9IGN0eC5PcE9iag0KPiANCj4gLSAgICAgICAgUE9iai5TZXRMaW5lTm8oY3R4 LnN0YXJ0LmxpbmUpDQo+IA0KPiAtICAgICAgICBzZWxmLl9fQ3VycmVudFF1ZXN0aW9uID0gUE9i ai5HZXRRdWVzdGlvbigpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRy ZW4oY3R4KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgY3R4LktleSgpICE9IE5vbmU6DQo+ IA0KPiAtICAgICAgICAgICAgS2V5ID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoMCkpDQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5fX0Fzc2lnblF1ZXN0aW9uS2V5KFBPYmosIEtleSkNCj4g DQo+IC0gICAgICAgICAgICBQYXNzV29yZE1pblNpemUgPSBzZWxmLl9fVHJhbnNOdW0oY3R4Lk51 bWJlcigxKSkNCj4gDQo+IC0gICAgICAgICAgICBQYXNzd29yZE1heFNpemUgPSBzZWxmLl9fVHJh bnNOdW0oY3R4Lk51bWJlcigyKSkNCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAg ICAgICAgUGFzc1dvcmRNaW5TaXplID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoMCkpDQo+ IA0KPiAtICAgICAgICAgICAgUGFzc3dvcmRNYXhTaXplID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5O dW1iZXIoMSkpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBjdHguRkxBR1MoKSAhPSBOb25l Og0KPiANCj4gLSAgICAgICAgICAgIEhGbGFncyA9IGN0eC52ZnJQYXNzd29yZEZsYWdzRmllbGQo KS5IRmxhZ3MNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fRXJyb3JIYW5kbGVyKFBPYmouU2V0 RmxhZ3MoSEZsYWdzKSwgY3R4LkYubGluZSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIFZhckFy cmF5U2l6ZSA9IHNlbGYuX0dFVF9DVVJSUUVTVF9BUlJBWV9TSVpFKCkNCj4gDQo+IC0gICAgICAg IGlmIFBhc3NXb3JkTWluU2l6ZSA+IDB4RkY6DQo+IA0KPiAtDQo+IHNlbGYuX19FcnJvckhhbmRs ZXIoVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLA0KPiBjdHguTWlu LmxpbmUsICJTdHJpbmcgTWluU2l6ZSB0YWtlcyBvbmx5IG9uZSBieXRlLCB3aGljaCBjYW4ndCBi ZSBsYXJnZXIgdGhhbg0KPiAweEZGLiIpDQo+IA0KPiAtICAgICAgICBpZiBWYXJBcnJheVNpemUg IT0gMCBhbmQgUGFzc1dvcmRNaW5TaXplID4gVmFyQXJyYXlTaXplOg0KPiANCj4gLQ0KPiBzZWxm Ll9fRXJyb3JIYW5kbGVyKFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRF UiwNCj4gY3R4Lk1pbi5saW5lLCAiU3RyaW5nIE1pblNpemUgY2FuJ3QgYmUgbGFyZ2VyIHRoYW4g dGhlIG1heCBudW1iZXIgb2YgZWxlbWVudHMNCj4gaW4gc3RyaW5nIGFycmF5LiIpDQo+IA0KPiAt ICAgICAgICBQT2JqLlNldE1pblNpemUoUGFzc1dvcmRNaW5TaXplKQ0KPiANCj4gLQ0KPiANCj4g LSAgICAgICAgaWYgUGFzc3dvcmRNYXhTaXplID4gMHhGRjoNCj4gDQo+IC0NCj4gc2VsZi5fX0Vy cm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+ IGN0eC5NYXgubGluZSwgIlN0cmluZyBNYXhTaXplIHRha2VzIG9ubHkgb25lIGJ5dGUsIHdoaWNo IGNhbid0IGJlIGxhcmdlciB0aGFuDQo+IDB4RkYuIikNCj4gDQo+IC0gICAgICAgIGVsaWYgVmFy QXJyYXlTaXplICE9IDAgYW5kIFBhc3N3b3JkTWF4U2l6ZSA+IFZhckFycmF5U2l6ZToNCj4gDQo+ IC0NCj4gc2VsZi5fX0Vycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJ RF9QQVJBTUVURVIsDQo+IGN0eC5NYXgubGluZSwgIlN0cmluZyBNYXhTaXplIGNhbid0IGJlIGxh cmdlciB0aGFuIHRoZSBtYXggbnVtYmVyIG9mDQo+IGVsZW1lbnRzIGluIHN0cmluZyBhcnJheS4i KQ0KPiANCj4gLSAgICAgICAgZWxpZiBQYXNzd29yZE1heFNpemUgPCBQYXNzV29yZE1pblNpemU6 DQo+IA0KPiAtDQo+IHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJO X0lOVkFMSURfUEFSQU1FVEVSLA0KPiBjdHguTWF4LmxpbmUsICJTdHJpbmcgTWF4U2l6ZSBjYW4n dCBiZSBsZXNzIHRoYW4gU3RyaW5nIE1pblNpemUuIikNCj4gDQo+IC0gICAgICAgIFBPYmouU2V0 TWF4U2l6ZShQYXNzd29yZE1heFNpemUpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBjdHguTm9k ZS5EYXRhID0gUE9iag0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+ IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2Vk IGJ5IFZmclN5bnRheFBhcnNlciN2ZnJQYXNzd29yZEZsYWdzRmllbGQuDQo+IA0KPiAtICAgIGRl ZiB2aXNpdFZmclBhc3N3b3JkRmxhZ3NGaWVsZChzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2Vy LlZmclBhc3N3b3JkRmxhZ3NGaWVsZENvbnRleHQpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAg c2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0gICAgICAgIGZvciBGbGFnc0ZpZWxkQ3R4 IGluIGN0eC5wYXNzd29yZEZsYWdzRmllbGQoKToNCj4gDQo+IC0gICAgICAgICAgICBjdHguSEZs YWdzIHw9IEZsYWdzRmllbGRDdHguSEZsYWcNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVy biBjdHguSEZsYWdzDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJz ZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNwYXNzd29yZEZsYWdzRmllbGQuDQo+ IA0KPiAtICAgIGRlZiB2aXNpdFBhc3N3b3JkRmxhZ3NGaWVsZChzZWxmLA0KPiBjdHg6VmZyU3lu dGF4UGFyc2VyLlBhc3N3b3JkRmxhZ3NGaWVsZENvbnRleHQpOg0KPiANCj4gLQ0KPiANCj4gLSAg ICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlm IGN0eC5OdW1iZXIoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGlmIHNlbGYuX19UcmFu c051bShjdHguTnVtYmVyKCkpICE9IDA6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuX19F cnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1VOU1VQUE9SVEVELA0KPiBjdHgu c3RhcnQubGluZSkNCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgY3R4 LkhGbGFnID0gY3R4LnF1ZXN0aW9uaGVhZGVyRmxhZ3NGaWVsZCgpLlFIRmxhZw0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5IRmxhZw0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4g LSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZy U3RhdGVtZW50T3JkZXJlZExpc3QuDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudE9y ZGVyZWRMaXN0KHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50T3JkZXJl ZExpc3RDb250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIE9MT2JqID0gY3R4Lk9wT2Jq DQo+IA0KPiAtICAgICAgICBPTE9iai5TZXRMaW5lTm8oY3R4LnN0YXJ0LmxpbmUpDQo+IA0KPiAt ICAgICAgICBzZWxmLl9fQ3VycmVudFF1ZXN0aW9uID0gT0xPYmouR2V0UXVlc3Rpb24oKQ0KPiAN Cj4gLSAgICAgICAgc2VsZi5fX0lzT3JkZXJlZExpc3QgPSBUcnVlDQo+IA0KPiAtDQo+IA0KPiAt ICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAg VmFyQXJyYXlTaXplID0gc2VsZi5fR0VUX0NVUlJRRVNUX0FSUkFZX1NJWkUoKQ0KPiANCj4gLSAg ICAgICAgaWYgVmFyQXJyYXlTaXplID4gMHhGRjoNCj4gDQo+IC0gICAgICAgICAgICBPTE9iai5T ZXRNYXhDb250YWluZXJzKDB4RkYpDQo+IA0KPiAtICAgICAgICBlbHNlOg0KPiANCj4gLSAgICAg ICAgICAgIE9MT2JqLlNldE1heENvbnRhaW5lcnMoVmFyQXJyYXlTaXplKQ0KPiANCj4gLQ0KPiAN Cj4gLSAgICAgICAgaWYgY3R4Lk1heENvbnRhaW5lcnMoKSAhPSBOb25lOg0KPiANCj4gLSAgICAg ICAgICAgIE1heENvbnRhaW5lcnMgPSBzZWxmLl9fVHJhbnNOdW0oY3R4Lk51bWJlcigpKQ0KPiAN Cj4gLSAgICAgICAgICAgIGlmIE1heENvbnRhaW5lcnMgPiAweEZGOg0KPiANCj4gLQ0KPiBzZWxm Ll9fRXJyb3JIYW5kbGVyKFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRF UiwNCj4gY3R4Lk0ubGluZSwgIk9yZGVyZWRMaXN0IE1heENvbnRhaW5lcnMgdGFrZXMgb25seSBv bmUgYnl0ZSwgd2hpY2ggY2FuJ3QgYmUNCj4gbGFyZ2VyIHRoYW4gMHhGRi4iKQ0KPiANCj4gLSAg ICAgICAgICAgIGVsaWYgVmFyQXJyYXlTaXplICE9IDAgYW5kIE1heENvbnRhaW5lcnMgPiBWYXJB cnJheVNpemU6DQo+IA0KPiAtDQo+IHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5W RlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLA0KPiBjdHguTS5saW5lLCJPcmRlcmVkTGlzdCBN YXhDb250YWluZXJzIGNhbid0IGJlIGxhcmdlciB0aGFuIHRoZSBtYXggbnVtYmVyDQo+IG9mIGVs ZW1lbnRzIGluIGFycmF5LiIpDQo+IA0KPiAtICAgICAgICAgICAgT0xPYmouU2V0TWF4Q29udGFp bmVycyhNYXhDb250YWluZXJzKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgY3R4LkZMQUdT KCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBIRmxhZ3MgPSBjdHgudmZyT3JkZXJlZExp c3RGbGFncygpLkhGbGFncw0KPiANCj4gLSAgICAgICAgICAgIExGbGFncyA9IGN0eC52ZnJPcmRl cmVkTGlzdEZsYWdzKCkuTEZsYWdzDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX0Vycm9ySGFu ZGxlcihPTE9iai5TZXRGbGFncyhIRmxhZ3MsIExGbGFncyksIGN0eC5GLmxpbmUpDQo+IA0KPiAt DQo+IA0KPiAtICAgICAgICBjdHguTm9kZS5EYXRhID0gT0xPYmoNCj4gDQo+IC0NCj4gDQo+IC0g ICAgICAgIHNlbGYuX19Jc09yZGVyZWRMaXN0ID0gRmFsc2UNCj4gDQo+IC0NCj4gDQo+IC0gICAg ICAgIHJldHVybiBjdHguTm9kZQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0 IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyT3JkZXJlZExpc3RG bGFncy4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VmZyT3JkZXJlZExpc3RGbGFncyhzZWxmLA0KPiBj dHg6VmZyU3ludGF4UGFyc2VyLlZmck9yZGVyZWRMaXN0RmxhZ3NDb250ZXh0KToNCj4gDQo+IC0N Cj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtDQo+IA0KPiAt ICAgICAgICBmb3IgRmxhZ3NGaWVsZEN0eCBpbiBjdHgub3JkZXJlZGxpc3RGbGFnc0ZpZWxkKCk6 DQo+IA0KPiAtICAgICAgICAgICAgY3R4LkhGbGFncyB8PSBGbGFnc0ZpZWxkQ3R4LkhGbGFnDQo+ IA0KPiAtICAgICAgICAgICAgY3R4LkxGbGFncyB8PSBGbGFnc0ZpZWxkQ3R4LkxGbGFnDQo+IA0K PiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4LkhGbGFncywgY3R4LkxGbGFncw0KPiANCj4g LQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBW ZnJTeW50YXhQYXJzZXIjb3JkZXJlZGxpc3RGbGFnc0ZpZWxkLg0KPiANCj4gLSAgICBkZWYgdmlz aXRPcmRlcmVkbGlzdEZsYWdzRmllbGQoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5PcmRl cmVkbGlzdEZsYWdzRmllbGRDb250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYu dmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBjdHguTnVtYmVy KCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBpZiBzZWxmLl9fVHJhbnNOdW0oY3R4Lk51 bWJlcigpKSAhPSAwOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLl9fRXJyb3JIYW5kbGVy KFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9VTlNVUFBPUlRFRCwNCj4gY3R4LnN0YXJ0LmxpbmUp DQo+IA0KPiAtICAgICAgICBlbGlmIGN0eC5xdWVzdGlvbmhlYWRlckZsYWdzRmllbGQoKSAhPSBO b25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5IRmxhZyA9IGN0eC5xdWVzdGlvbmhlYWRlckZs YWdzRmllbGQoKS5RSEZsYWcNCj4gDQo+IC0gICAgICAgIGVsaWYgY3R4LlVuaVF1ZUZsYWcoKSAh PSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5MRmxhZyA9IDB4MDENCj4gDQo+IC0gICAg ICAgIGVsaWYgY3R4Lk5vRW1wdHlGbGFnKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBj dHguTEZsYWcgPSAweDAyDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gIGN0eC5IRmxh ZywgY3R4LkxGbGFnDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHBy b2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnREYXRlLg0KPiANCj4gLSAgICBk ZWYgdmlzaXRWZnJTdGF0ZW1lbnREYXRlKHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJzZXIuVmZy U3RhdGVtZW50RGF0ZUNvbnRleHQpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgRE9iaiA9IGN0 eC5PcE9iag0KPiANCj4gLSAgICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5lDQo+IA0KPiAtICAg ICAgICBET2JqLlNldExpbmVObyhMaW5lKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi52 aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIGN0eC52ZnJRdWVz dGlvbkhlYWRlcigpICE9IE5vbmU6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgaWYgc2Vs Zi5fX0N1cnJRZXN0VmFySW5mby5WYXJUeXBlID09IEVGSV9JRlJfVFlQRV9PVEhFUjoNCj4gDQo+ IC0gICAgICAgICAgICAgICAgc2VsZi5fX0N1cnJRZXN0VmFySW5mby5WYXJUeXBlID09IEVGSV9J RlJfVFlQRV9EQVRFDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgaWYgY3R4LkZMQUdTKCkg IT0gTm9uZToNCj4gDQo+IC0NCj4gc2VsZi5fX0Vycm9ySGFuZGxlcihET2JqLlNldEZsYWdzKEVG SV9JRlJfUVVFU1RJT05fRkxBR19ERUZBVUxULA0KPiBjdHgudmZyRGF0ZUZsYWdzKCkuTEZsYWdz KSwgY3R4LkYxLmxpbmUpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBlbHNlOg0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgICAgIFllYXIgPSBzZWxmLl9fVHJhbnNJZChjdHguU3RyaW5nSWRlbnRp ZmllcigwKSkNCj4gDQo+IC0gICAgICAgICAgICBZZWFyICs9ICcuJw0KPiANCj4gLSAgICAgICAg ICAgIFllYXIgKz0gc2VsZi5fX1RyYW5zSWQoY3R4LlN0cmluZ0lkZW50aWZpZXIoMSkpDQo+IA0K PiAtDQo+IA0KPiAtICAgICAgICAgICAgTW9udGggPSBzZWxmLl9fVHJhbnNJZChjdHguU3RyaW5n SWRlbnRpZmllcigyKSkNCj4gDQo+IC0gICAgICAgICAgICBNb250aCArPSAnLicNCj4gDQo+IC0g ICAgICAgICAgICBNb250aCArPSBzZWxmLl9fVHJhbnNJZChjdHguU3RyaW5nSWRlbnRpZmllcigz KSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICBEYXkgPSBzZWxmLl9fVHJhbnNJZChjdHgu U3RyaW5nSWRlbnRpZmllcig0KSkNCj4gDQo+IC0gICAgICAgICAgICBEYXkgKz0gJy4nDQo+IA0K PiAtICAgICAgICAgICAgRGF5ICs9IHNlbGYuX19UcmFuc0lkKGN0eC5TdHJpbmdJZGVudGlmaWVy KDUpKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgIGlmIGN0eC5GTEFHUygpICE9IE5vbmU6 DQo+IA0KPiAtDQo+IHNlbGYuX19FcnJvckhhbmRsZXIoRE9iai5TZXRGbGFncyhFRklfSUZSX1FV RVNUSU9OX0ZMQUdfREVGQVVMVCwNCj4gY3R4LnZmckRhdGVGbGFncygpLkxGbGFncyksIGN0eC5G Mi5saW5lKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgIFFJZCwgXyA9IHNlbGYuX19DVmZy UXVlc3Rpb25EQi5SZWdpc3Rlck9sZERhdGVRdWVzdGlvbihZZWFyLCBNb250aCwNCj4gRGF5LCBF RklfUVVFU1RJT05fSURfSU5WQUxJRCkNCj4gDQo+IC0gICAgICAgICAgICBET2JqLlNldFF1ZXN0 aW9uSWQoUUlkKQ0KPiANCj4gLSAgICAgICAgICAgIERPYmouU2V0RmxhZ3MoRUZJX0lGUl9RVUVT VElPTl9GTEFHX0RFRkFVTFQsDQo+IFFGX0RBVEVfU1RPUkFHRV9USU1FKQ0KPiANCj4gLSAgICAg ICAgICAgIERPYmouU2V0UHJvbXB0KHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKDApKSkNCj4g DQo+IC0gICAgICAgICAgICBET2JqLlNldEhlbHAoc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIo MSkpKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgIFNpemUgPSBFRklfSUZSX0RFRkFVTFQu VmFsdWUub2Zmc2V0ICsgc2l6ZW9mIChFRklfSElJX0RBVEUpDQo+IA0KPiAtICAgICAgICAgICAg RGVmYXVsdE9iaiA9IENJZnJEZWZhdWx0KFNpemUsIEVGSV9ISUlfREVGQVVMVF9DTEFTU19TVEFO REFSRCwNCj4gRUZJX0lGUl9UWVBFX0RBVEUsIGN0eC5WYWwpDQo+IA0KPiAtICAgICAgICAgICAg RGVmYXVsdE9iai5TZXRMaW5lTm8oTGluZSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGN0eC5O b2RlLkRhdGEgPSBET2JqDQo+IA0KPiAtICAgICAgICBmb3IgQ3R4IGluIGN0eC52ZnJTdGF0ZW1l bnRJbmNvbnNpc3RlbnRJZigpOg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19JbnNlcnRDaGls ZChjdHguTm9kZSwgQ3R4KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5Ob2Rl DQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZm clN5bnRheFBhcnNlciNtaW5NYXhEYXRlU3RlcERlZmF1bHQuDQo+IA0KPiAtICAgIGRlZiB2aXNp dE1pbk1heERhdGVTdGVwRGVmYXVsdChzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLk1pbk1h eERhdGVTdGVwRGVmYXVsdENvbnRleHQpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgY3R4 LkRlZmF1bHQoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIE1pbmltdW0gPSBzZWxmLl9f VHJhbnNOdW0oY3R4Lk51bWJlcigwKSkNCj4gDQo+IC0gICAgICAgICAgICBNYXhpbXVtID0gc2Vs Zi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoMSkpDQo+IA0KPiAtICAgICAgICAgICAgaWYgY3R4Lktl eVZhbHVlID09IDA6DQo+IA0KPiAtICAgICAgICAgICAgICAgIGN0eC5EYXRlLlllYXIgPSBzZWxm Ll9fVHJhbnNOdW0oY3R4Lk4udGV4dCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgY3R4LkRh dGUuWWVhciA8IE1pbmltdW0gb3IgY3R4LkRhdGUuWWVhciA+IE1heGltdW06DQo+IA0KPiAtDQo+ IHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFS QU1FVEVSLA0KPiBjdHguTi5saW5lLCAiWWVhciBkZWZhdWx0IHZhbHVlIG11c3QgYmUgYmV0d2Vl biBNaW4geWVhciBhbmQgTWF4IHllYXIuIikNCj4gDQo+IC0gICAgICAgICAgICBpZiBjdHguS2V5 VmFsdWUgPT0gMToNCj4gDQo+IC0gICAgICAgICAgICAgICAgY3R4LkRhdGUuTW9udGggPSBzZWxm Ll9fVHJhbnNOdW0oY3R4Lk4udGV4dCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgY3R4LkRh dGUuTW9udGggPCAxIG9yIGN0eC5EYXRlLk1vbnRoID4gMTI6DQo+IA0KPiAtDQo+IHNlbGYuX19F cnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLA0K PiBjdHguRC5saW5lLCAiTW9udGggZGVmYXVsdCB2YWx1ZSBtdXN0IGJlIGJldHdlZW4gTWluIDEg YW5kIE1heCAxMi4iKQ0KPiANCj4gLSAgICAgICAgICAgIGlmIGN0eC5LZXlWYWx1ZSA9PSAyOg0K PiANCj4gLSAgICAgICAgICAgICAgICBjdHguRGF0ZS5EYXkgPSBzZWxmLl9fVHJhbnNOdW0oY3R4 Lk4udGV4dCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgY3R4LkRhdGUuRGF5IDwgMSBvciBj dHguRGF0ZS5EYXkgPiAzMToNCj4gDQo+IC0NCj4gc2VsZi5fX0Vycm9ySGFuZGxlcihWZnJSZXR1 cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+IGN0eC5ELmxpbmUsICJEYXkg ZGVmYXVsdCB2YWx1ZSBtdXN0IGJlIGJldHdlZW4gTWluIDEgYW5kIE1heCAzMS4iKQ0KPiANCj4g LSAgICAgICAgcmV0dXJuIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtDQo+IA0KPiAt DQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBh cnNlciN2ZnJEYXRlRmxhZ3MuDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmckRhdGVGbGFncyhzZWxm LCBjdHg6VmZyU3ludGF4UGFyc2VyLlZmckRhdGVGbGFnc0NvbnRleHQpOg0KPiANCj4gLQ0KPiAN Cj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0gICAg ICAgIGZvciBGbGFnc0ZpZWxkQ3R4IGluIGN0eC5kYXRlRmxhZ3NGaWVsZCgpOg0KPiANCj4gLSAg ICAgICAgICAgIGN0eC5MRmxhZ3MgfD0gRmxhZ3NGaWVsZEN0eC5MRmxhZw0KPiANCj4gLQ0KPiAN Cj4gLSAgICAgICAgcmV0dXJuIGN0eC5MRmxhZ3MNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0g ICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI2RhdGVG bGFnc0ZpZWxkLg0KPiANCj4gLSAgICBkZWYgdmlzaXREYXRlRmxhZ3NGaWVsZChzZWxmLCBjdHg6 VmZyU3ludGF4UGFyc2VyLkRhdGVGbGFnc0ZpZWxkQ29udGV4dCk6DQo+IA0KPiAtDQo+IA0KPiAt ICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAg aWYgY3R4Lk51bWJlcigpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4LkxGbGFnID0g c2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoKSkNCj4gDQo+IC0gICAgICAgIGlmIGN0eC5ZZWFy U3VwcHByZXNzRmxhZygpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4LkxGbGFnID0g MHgwMQ0KPiANCj4gLSAgICAgICAgaWYgY3R4Lk1vbnRoU3VwcHJlc3NGbGFnKCkgIT0gTm9uZToN Cj4gDQo+IC0gICAgICAgICAgICBjdHguTEZsYWcgPSAweDAyDQo+IA0KPiAtICAgICAgICBpZiBj dHguRGF5U3VwcHJlc3NGbGFnKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBjdHguTEZs YWcgPSAweDA0DQo+IA0KPiAtICAgICAgICBpZiBjdHguU3RvcmFnZU5vcm1hbEZsYWcoKSAhPSBO b25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5MRmxhZyA9IDB4MDANCj4gDQo+IC0gICAgICAg IGlmIGN0eC5TdG9yYWdlVGltZUZsYWcoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0 eC5MRmxhZyA9IDB4MDEwDQo+IA0KPiAtICAgICAgICBpZiBjdHguU3RvcmFnZVdha2VVcEZsYWco KSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5MRmxhZyA9IDB4MjANCj4gDQo+IC0N Cj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguTEZsYWcNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+ IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3Zm clN0YXRlbWVudFRpbWUuDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudFRpbWUoc2Vs ZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRUaW1lQ29udGV4dCk6DQo+IA0K PiAtDQo+IA0KPiAtICAgICAgICBUT2JqID0gY3R4Lk9wT2JqDQo+IA0KPiAtICAgICAgICBMaW5l ID0gY3R4LnN0YXJ0LmxpbmUNCj4gDQo+IC0gICAgICAgIFRPYmouU2V0TGluZU5vKExpbmUpDQo+ IA0KPiAtDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgaWYgY3R4LnZmclF1ZXN0aW9uSGVhZGVyKCkgIT0gTm9uZToNCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgICAgICBpZiBzZWxmLl9fQ3VyclFlc3RWYXJJbmZvLlZhclR5cGUg PT0gRUZJX0lGUl9UWVBFX09USEVSOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLl9fQ3Vy clFlc3RWYXJJbmZvLlZhclR5cGUgPT0gRUZJX0lGUl9UWVBFX1RJTUUNCj4gDQo+IC0NCj4gDQo+ IC0gICAgICAgICAgICBpZiBjdHguRkxBR1MoKSAhPSBOb25lOg0KPiANCj4gLQ0KPiBzZWxmLl9f RXJyb3JIYW5kbGVyKFRPYmouU2V0RmxhZ3MoRUZJX0lGUl9RVUVTVElPTl9GTEFHX0RFRkFVTFQs DQo+IGN0eC52ZnJUaW1lRmxhZ3MoKS5MRmxhZ3MpLCBjdHguRjEubGluZSkNCj4gDQo+IC0gICAg ICAgIGVsc2U6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgSG91ciA9IHNlbGYuX19UcmFu c0lkKGN0eC5TdHJpbmdJZGVudGlmaWVyKDApKQ0KPiANCj4gLSAgICAgICAgICAgIEhvdXIgKz0g Jy4nDQo+IA0KPiAtICAgICAgICAgICAgSG91ciArPSBzZWxmLl9fVHJhbnNJZChjdHguU3RyaW5n SWRlbnRpZmllcigxKSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICBNaW51dGUgPSBzZWxm Ll9fVHJhbnNJZChjdHguU3RyaW5nSWRlbnRpZmllcigyKSkNCj4gDQo+IC0gICAgICAgICAgICBN aW51dGUgKz0gJy4nDQo+IA0KPiAtICAgICAgICAgICAgTWludXRlICs9IHNlbGYuX19UcmFuc0lk KGN0eC5TdHJpbmdJZGVudGlmaWVyKDMpKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgIFNl Y29uZCA9IHNlbGYuX19UcmFuc0lkKGN0eC5TdHJpbmdJZGVudGlmaWVyKDQpKQ0KPiANCj4gLSAg ICAgICAgICAgIFNlY29uZCArPSAnLicNCj4gDQo+IC0gICAgICAgICAgICBTZWNvbmQgKz0gc2Vs Zi5fX1RyYW5zSWQoY3R4LlN0cmluZ0lkZW50aWZpZXIoNSkpDQo+IA0KPiAtDQo+IA0KPiAtICAg ICAgICAgICAgaWYgY3R4LkZMQUdTKCkgIT0gTm9uZToNCj4gDQo+IC0NCj4gc2VsZi5fX0Vycm9y SGFuZGxlcihUT2JqLlNldEZsYWdzKEVGSV9JRlJfUVVFU1RJT05fRkxBR19ERUZBVUxULA0KPiBj dHgudmZyVGltZUZsYWdzKCkuTEZsYWdzKSwgY3R4LkYyLmxpbmUpDQo+IA0KPiAtDQo+IA0KPiAt ICAgICAgICAgICAgUUlkLCBfID0gc2VsZi5fX0NWZnJRdWVzdGlvbkRCLlJlZ2lzdGVyT2xkVGlt ZVF1ZXN0aW9uKEhvdXIsDQo+IE1pbnV0ZSwgU2Vjb25kLCBFRklfUVVFU1RJT05fSURfSU5WQUxJ RCkNCj4gDQo+IC0gICAgICAgICAgICBUT2JqLlNldFF1ZXN0aW9uSWQoUUlkKQ0KPiANCj4gLSAg ICAgICAgICAgIFRPYmouU2V0RmxhZ3MoRUZJX0lGUl9RVUVTVElPTl9GTEFHX0RFRkFVTFQsDQo+ IFFGX1RJTUVfU1RPUkFHRV9USU1FKQ0KPiANCj4gLSAgICAgICAgICAgIFRPYmouU2V0UHJvbXB0 KHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKDApKSkNCj4gDQo+IC0gICAgICAgICAgICBUT2Jq LlNldEhlbHAoc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoMSkpKQ0KPiANCj4gLQ0KPiANCj4g LSAgICAgICAgICAgIFNpemUgPSBFRklfSUZSX0RFRkFVTFQuVmFsdWUub2Zmc2V0ICsgc2l6ZW9m IChFRklfSElJX1RJTUUpDQo+IA0KPiAtICAgICAgICAgICAgRGVmYXVsdE9iaiA9IENJZnJEZWZh dWx0KFNpemUsIEVGSV9ISUlfREVGQVVMVF9DTEFTU19TVEFOREFSRCwNCj4gRUZJX0lGUl9UWVBF X1RJTUUsIGN0eC5WYWwpDQo+IA0KPiAtICAgICAgICAgICAgRGVmYXVsdE9iai5TZXRMaW5lTm8o TGluZSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBUT2JqDQo+IA0K PiAtICAgICAgICBmb3IgQ3R4IGluIGN0eC52ZnJTdGF0ZW1lbnRJbmNvbnNpc3RlbnRJZigpOg0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuX19JbnNlcnRDaGlsZChjdHguTm9kZSwgQ3R4KQ0KPiAN Cj4gLSAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAg ICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNtaW5NYXhU aW1lU3RlcERlZmF1bHQuDQo+IA0KPiAtICAgIGRlZiB2aXNpdE1pbk1heFRpbWVTdGVwRGVmYXVs dChzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLk1pbk1heFRpbWVTdGVwRGVmYXVsdENvbnRl eHQpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgY3R4LkRlZmF1bHQoKSAhPSBOb25lOg0K PiANCj4gLSAgICAgICAgICAgIE1pbmltdW0gPSBzZWxmLl9fVHJhbnNOdW0oY3R4Lk51bWJlcigw KSkNCj4gDQo+IC0gICAgICAgICAgICBNYXhpbXVtID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1i ZXIoMSkpDQo+IA0KPiAtICAgICAgICAgICAgaWYgY3R4LktleVZhbHVlID09IDA6DQo+IA0KPiAt ICAgICAgICAgICAgICAgIGN0eC5UaW1lLkhvdXIgPSBzZWxmLl9fVHJhbnNOdW0oY3R4Lk51bWJl cihsZW4oY3R4Lk51bWJlcigpKS0xKSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgY3R4LlRp bWUuSG91ciA+IDIzOg0KPiANCj4gLQ0KPiBzZWxmLl9fRXJyb3JIYW5kbGVyKFZmclJldHVybkNv ZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwNCj4gY3R4Lk4ubGluZSwgIkhvdXIgZGVm YXVsdCB2YWx1ZSBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjMuIikNCj4gDQo+IC0gICAgICAgICAg ICBpZiBjdHguS2V5VmFsdWUgPT0gMToNCj4gDQo+IC0gICAgICAgICAgICAgICAgY3R4LlRpbWUu TWludXRlID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIobGVuKGN0eC5OdW1iZXIoKSktDQo+ IDEpKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBpZiBjdHguVGltZS5NaW51dGUgPiA1OToNCj4g DQo+IC0NCj4gc2VsZi5fX0Vycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5W QUxJRF9QQVJBTUVURVIsDQo+IGN0eC5OLmxpbmUsICJNaW51dGUgZGVmYXVsdCB2YWx1ZSBtdXN0 IGJlIGJldHdlZW4gMCBhbmQgNTkuIikNCj4gDQo+IC0gICAgICAgICAgICBpZiBjdHguS2V5VmFs dWUgPT0gMjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgY3R4LlRpbWUuU2Vjb25kID0gc2VsZi5f X1RyYW5zTnVtKGN0eC5OdW1iZXIobGVuKGN0eC5OdW1iZXIoKSktDQo+IDEpKQ0KPiANCj4gLSAg ICAgICAgICAgICAgICBpZiBjdHguVGltZS5TZWNvbmQgPiA1OToNCj4gDQo+IC0NCj4gc2VsZi5f X0Vycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIs DQo+IGN0eC5OLmxpbmUsICJTZWNvbmQgZGVmYXVsdCB2YWx1ZSBtdXN0IGJlIGJldHdlZW4gMCBh bmQgNTkuIikNCj4gDQo+IC0gICAgICAgIHJldHVybiBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0K PiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNl ZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyVGltZUZsYWdzLg0KPiANCj4gLSAgICBkZWYgdmlzaXRW ZnJUaW1lRmxhZ3Moc2VsZiwgY3R4OlZmclN5bnRheFBhcnNlci5WZnJUaW1lRmxhZ3NDb250ZXh0 KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0K PiAtDQo+IA0KPiAtICAgICAgICBmb3IgRmxhZ3NGaWVsZEN0eCBpbiBjdHgudGltZUZsYWdzRmll bGQoKToNCj4gDQo+IC0gICAgICAgICAgICBjdHguTEZsYWdzIHw9IEZsYWdzRmllbGRDdHguTEZs YWcNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguTEZsYWdzDQo+IA0KPiAtDQo+ IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNl ciN0aW1lRmxhZ3NGaWVsZC4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VGltZUZsYWdzRmllbGQoc2Vs ZiwgY3R4OlZmclN5bnRheFBhcnNlci5UaW1lRmxhZ3NGaWVsZENvbnRleHQpOg0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0g ICAgICAgIGlmIGN0eC5OdW1iZXIoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5M RmxhZyA9IHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKCkpDQo+IA0KPiAtICAgICAgICBpZiBj dHguSG91clN1cHBwcmVzc0ZsYWcoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5M RmxhZyA9IDB4MDENCj4gDQo+IC0gICAgICAgIGlmIGN0eC5NaW51dGVTdXBwcmVzc0ZsYWcoKSAh PSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5MRmxhZyA9IDB4MDINCj4gDQo+IC0gICAg ICAgIGlmIGN0eC5TZWNvbmRTdXBwcmVzc0ZsYWcoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAg ICAgIGN0eC5MRmxhZyA9IDB4MDQNCj4gDQo+IC0gICAgICAgIGlmIGN0eC5TdG9yYWdlTm9ybWFs RmxhZygpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4LkxGbGFnID0gMHgwMA0KPiAN Cj4gLSAgICAgICAgaWYgY3R4LlN0b3JhZ2VUaW1lRmxhZygpICE9IE5vbmU6DQo+IA0KPiAtICAg ICAgICAgICAgY3R4LkxGbGFnID0gMHgxMA0KPiANCj4gLSAgICAgICAgaWYgY3R4LlN0b3JhZ2VX YWtlVXBGbGFnKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBjdHguTEZsYWcgPSAweDIw DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4LkxGbGFnDQo+IA0KPiAtDQo+IA0K PiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2 ZnJTdGF0ZW1lbnRDb25kaXRpb25hbC4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50 Q29uZGl0aW9uYWwoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRDb25k aXRpb25hbENvbnRleHQpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxk cmVuKGN0eCkNCj4gDQo+IC0gICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnREaXNhYmxlSWZTdGF0 KCkhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVu dERpc2FibGVJZlN0YXQoKS5Ob2RlDQo+IA0KPiAtICAgICAgICBpZiBjdHgudmZyU3RhdGVtZW50 U3VwcHJlc3NJZlN0YXQoKSE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4Lk5vZGUgPSBj dHgudmZyU3RhdGVtZW50U3VwcHJlc3NJZlN0YXQoKS5Ob2RlDQo+IA0KPiAtICAgICAgICBpZiBj dHgudmZyU3RhdGVtZW50R3JheU91dElmU3RhdCgpIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAg ICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRHcmF5T3V0SWZTdGF0KCkuTm9kZQ0KPiANCj4g LSAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVudEluY29uc2lzdGVudElmU3RhdCgpIT0gTm9uZToN Cj4gDQo+IC0gICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRJbmNvbnNpc3Rl bnRJZlN0YXQoKS5Ob2RlDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4Lk5vZGUN Cj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVj ZWQgYnkNCj4gVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudENvbmRpdGlvbmFsTmV3Lg0KPiAN Cj4gLSAgICBkZWYgdmlzaXRWZnJTdGF0ZW1lbnRDb25kaXRpb25hbE5ldyhzZWxmLA0KPiBjdHg6 VmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudENvbmRpdGlvbmFsTmV3Q29udGV4dCk6DQo+IA0K PiAtICAgICAgICByZXR1cm4gc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+ IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3lu dGF4UGFyc2VyI3ZmclN0YXRlbWVudFN1cHByZXNzSWZTdGF0Lg0KPiANCj4gLSAgICBkZWYgdmlz aXRWZnJTdGF0ZW1lbnRTdXBwcmVzc0lmU3RhdChzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2Vy LlZmclN0YXRlbWVudFN1cHByZXNzSWZTdGF0Q29udGV4dCk6DQo+IA0KPiAtDQo+IA0KPiAtICAg ICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgY3R4Lk5vZGUgPSBj dHgudmZyU3RhdGVtZW50U3VwcHJlc3NJZlN0YXROZXcoKS5Ob2RlDQo+IA0KPiAtICAgICAgICBy ZXR1cm4gY3R4Lk5vZGUNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBh cnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudEdyYXlP dXRJZlN0YXQuDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudEdyYXlPdXRJZlN0YXQo c2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRHcmF5T3V0SWZTdGF0Q29u dGV4dCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0K PiANCj4gLSAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyU3RhdGVtZW50R3JheU91dElmU3RhdE5l dygpLk5vZGUNCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiANCj4gLQ0KPiANCj4g LQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQ YXJzZXIjdmZyU3RhdGVtZW50U3RhdExpc3QuDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmclN0YXRl bWVudFN0YXRMaXN0KHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50U3Rh dExpc3RDb250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJl bihjdHgpDQo+IA0KPiAtICAgICAgICBpZiBjdHgudmZyU3RhdGVtZW50U3RhdCgpICE9IE5vbmU6 DQo+IA0KPiAtICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyU3RhdGVtZW50U3RhdCgpLk5v ZGUNCj4gDQo+IC0gICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnRRdWVzdGlvbnMoKSAhPSBOb25l Og0KPiANCj4gLSAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudFF1ZXN0aW9u cygpLk5vZGUNCj4gDQo+IC0gICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnRDb25kaXRpb25hbCgp ICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyU3RhdGVtZW50 Q29uZGl0aW9uYWwoKS5Ob2RlDQo+IA0KPiAtICAgICAgICBpZiBjdHgudmZyU3RhdGVtZW50TGFi ZWwoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRl bWVudExhYmVsKCkuTm9kZQ0KPiANCj4gLSAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVudEV4dGVu c2lvbigpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyU3Rh dGVtZW50RXh0ZW5zaW9uKCkuTm9kZQ0KPiANCj4gLSAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVu dEludmFsaWQoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZm clN0YXRlbWVudEludmFsaWQoKS5Ob2RlDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4Lk5vZGUN Cj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVj ZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudFN0YXRMaXN0T2xkLg0KPiANCj4gLSAg ICBkZWYgdmlzaXRWZnJTdGF0ZW1lbnRTdGF0TGlzdE9sZChzZWxmLA0KPiBjdHg6VmZyU3ludGF4 UGFyc2VyLlZmclN0YXRlbWVudFN0YXRMaXN0T2xkQ29udGV4dCk6DQo+IA0KPiAtICAgICAgICBy ZXR1cm4gc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNp dCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVu dERpc2FibGVJZlN0YXQuDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudERpc2FibGVJ ZlN0YXQoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnREaXNhYmxlSWZT dGF0Q29udGV4dCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBESU9iaiA9IENJZnJEaXNhYmxl SWYoKQ0KPiANCj4gLSAgICAgICAgRElPYmouU2V0TGluZU5vKGN0eC5zdGFydC5saW5lKQ0KPiAN Cj4gLSAgICAgICAgY3R4Lk5vZGUuRGF0YSA9IERJT2JqDQo+IA0KPiAtICAgICAgICBjdHguTm9k ZS5Db25kaXRpb24gPSAnZGlzYWJsZWlmJyArICcgJyArDQo+IHNlbGYuX19FeHRyYWN0T3JpZ2lu YWxUZXh0KGN0eC52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uKCkpDQo+IA0KPiAtICAgICAgICBzZWxm LnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgZm9yIEN0eCBpbiBjdHgudmZyU3Rh dGVtZW50U3RhdExpc3QoKToNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fSW5zZXJ0Q2hpbGQo Y3R4Lk5vZGUsIEN0eCkNCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiANCj4gLQ0K PiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieQ0KPiBW ZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVtZW50U3VwcHJlc3NJZlN0YXROZXcuDQo+IA0KPiAtICAg IGRlZiB2aXNpdFZmclN0YXRlbWVudFN1cHByZXNzSWZTdGF0TmV3KHNlbGYsDQo+IGN0eDpWZnJT eW50YXhQYXJzZXIuVmZyU3RhdGVtZW50U3VwcHJlc3NJZlN0YXROZXdDb250ZXh0KToNCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgIFNJT2JqID0gQ0lmclN1cHByZXNzSWYoKQ0KPiANCj4gLSAgICAg ICAgU0lPYmouU2V0TGluZU5vKGN0eC5zdGFydC5saW5lKQ0KPiANCj4gLSAgICAgICAgY3R4Lk5v ZGUuRGF0YSA9IFNJT2JqDQo+IA0KPiAtICAgICAgICBjdHguTm9kZS5Db25kaXRpb24gPSAnc3Vw cHJlc3NpZicgKyAnICcgKw0KPiBzZWxmLl9fRXh0cmFjdE9yaWdpbmFsVGV4dChjdHgudmZyU3Rh dGVtZW50RXhwcmVzc2lvbigpKQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0 eCkNCj4gDQo+IC0gICAgICAgIGZvciBDdHggaW4gY3R4LnZmclN0YXRlbWVudFN0YXRMaXN0KCk6 DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX0luc2VydENoaWxkKGN0eC5Ob2RlLCBDdHgpDQo+ IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gDQo+IC0NCj4gDQo+IC0N Cj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3ludGF4 UGFyc2VyI3ZmclN0YXRlbWVudEdyYXlPdXRJZlN0YXROZXcuDQo+IA0KPiAtICAgIGRlZiB2aXNp dFZmclN0YXRlbWVudEdyYXlPdXRJZlN0YXROZXcoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNl ci5WZnJTdGF0ZW1lbnRHcmF5T3V0SWZTdGF0TmV3Q29udGV4dCk6DQo+IA0KPiAtDQo+IA0KPiAt ICAgICAgICBHT0lPYmogPSBDSWZyR3JheU91dElmKCkNCj4gDQo+IC0gICAgICAgIEdPSU9iai5T ZXRMaW5lTm8oY3R4LnN0YXJ0LmxpbmUpDQo+IA0KPiAtICAgICAgICBjdHguTm9kZS5EYXRhID0g R09JT2JqDQo+IA0KPiAtICAgICAgICBjdHguTm9kZS5Db25kaXRpb24gPSAnZ3JheW91dGlmJyAr ICcgJyArDQo+IHNlbGYuX19FeHRyYWN0T3JpZ2luYWxUZXh0KGN0eC52ZnJTdGF0ZW1lbnRFeHBy ZXNzaW9uKCkpDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4g LSAgICAgICAgZm9yIEN0eCBpbiBjdHgudmZyU3RhdGVtZW50U3RhdExpc3QoKToNCj4gDQo+IC0g ICAgICAgICAgICBzZWxmLl9fSW5zZXJ0Q2hpbGQoY3R4Lk5vZGUsIEN0eCkNCj4gDQo+IC0NCj4g DQo+IC0gICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLQ0K PiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieQ0KPiBWZnJTeW50YXhQ YXJzZXIjdmZyU3RhdGVtZW50SW5jb25zaXN0ZW50SWZTdGF0Lg0KPiANCj4gLSAgICBkZWYgdmlz aXRWZnJTdGF0ZW1lbnRJbmNvbnNpc3RlbnRJZlN0YXQoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBh cnNlci5WZnJTdGF0ZW1lbnRJbmNvbnNpc3RlbnRJZlN0YXRDb250ZXh0KToNCj4gDQo+IC0NCj4g DQo+IC0gICAgICAgIElJT2JqID0gQ0lmckluY29uc2lzdGVudElmKCkNCj4gDQo+IC0gICAgICAg IHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1VOU1VQUE9SVEVE LA0KPiBjdHguc3RhcnQubGluZSkNCj4gDQo+IC0gICAgICAgIElJT2JqLlNldExpbmVObyhjdHgu c3RhcnQubGluZSkNCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0K PiAtICAgICAgICBJSU9iai5TZXRFcnJvcihzZWxmLl9fVHJhbnNOdW0oY3R4Lk51bWJlcigpKSkN Cj4gDQo+IC0gICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBJSU9iag0KPiANCj4gLSAgICAgICAgY3R4 Lk5vZGUuQ29uZGl0aW9uID0gJ2luY29uc2lzdGVudGlmJyArICcgJyArDQo+IHNlbGYuX19FeHRy YWN0T3JpZ2luYWxUZXh0KGN0eC52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uKCkpDQo+IA0KPiAtDQo+ IA0KPiAtICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0g ICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmclN0 YXRlbWVudEludmFsaWQuDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudEludmFsaWQo c2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRJbnZhbGlkQ29udGV4dCk6 DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0N Cj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4g VmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudEludmFsaWRIaWRkZW4uDQo+IA0KPiAtICAgIGRl ZiB2aXNpdFZmclN0YXRlbWVudEludmFsaWRIaWRkZW4oc2VsZiwNCj4gY3R4OlZmclN5bnRheFBh cnNlci5WZnJTdGF0ZW1lbnRJbnZhbGlkSGlkZGVuQ29udGV4dCk6DQo+IA0KPiAtICAgICAgICBy ZXR1cm4gc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0g ICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3ludGF4UGFyc2VyI3Zm clN0YXRlbWVudEludmFsaWRJbnZlbnRvcnkuDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmclN0YXRl bWVudEludmFsaWRJbnZlbnRvcnkoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJTdGF0 ZW1lbnRJbnZhbGlkSW52ZW50b3J5Q29udGV4dCk6DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2Vs Zi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNp dCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVu dEludmFsaWRTYXZlUmVzdG9yZURlZmF1bHRzLg0KPiANCj4gLSAgICBkZWYgdmlzaXRWZnJTdGF0 ZW1lbnRJbnZhbGlkU2F2ZVJlc3RvcmVEZWZhdWx0cyhzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFy c2VyLlZmclN0YXRlbWVudEludmFsaWRTYXZlUmVzdG9yZURlZmF1bHRzQ29udGV4dCk6DQo+IA0K PiAtICAgICAgICByZXR1cm4gc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+ IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4 UGFyc2VyI3ZmclN0YXRlbWVudExhYmVsLg0KPiANCj4gLSAgICBkZWYgdmlzaXRWZnJTdGF0ZW1l bnRMYWJlbChzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudExhYmVsQ29u dGV4dCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBMT2JqID0gQ0lmckxhYmVsKCkNCj4gDQo+ IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtICAgICAgICBMT2JqLlNl dExpbmVObyhjdHguc3RhcnQubGluZSkNCj4gDQo+IC0gICAgICAgIExPYmouU2V0TnVtYmVyKHNl bGYuX19UcmFuc051bShjdHguTnVtYmVyKCkpKQ0KPiANCj4gLSAgICAgICAgY3R4Lk5vZGUuRGF0 YSA9IExPYmoNCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiANCj4gLQ0KPiANCj4g LQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieQ0KPiBWZnJTeW50 YXhQYXJzZXIjdmZyU3RhdGVtZXguQk9iam50QmFubmVyLg0KPiANCj4gLSAgICBkZWYgdmlzaXRW ZnJTdGF0ZW1lbnRCYW5uZXIoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1l bnRCYW5uZXJDb250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGls ZHJlbihjdHgpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBjdHguTGluZSgpICE9IE5vbmU6 DQo+IA0KPiAtICAgICAgICAgICAgQk9iaiA9IENJZnJCYW5uZXIoKQ0KPiANCj4gLSAgICAgICAg ICAgIEJPYmouU2V0TGluZU5vKGN0eC5zdGFydC5saW5lKQ0KPiANCj4gLSAgICAgICAgICAgIEJP YmouU2V0VGl0bGUoc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoMCkpKQ0KPiANCj4gLSAgICAg ICAgICAgIEJPYmouU2V0TGluZShzZWxmLl9fVHJhbnNOdW0oY3R4Lk51bWJlcigxKSkpDQo+IA0K PiAtICAgICAgICAgICAgaWYgY3R4LkxlZnQoKSAhPSBOb25lOiBCT2JqLlNldEFsaWduKDApDQo+ IA0KPiAtICAgICAgICAgICAgaWYgY3R4LkNlbnRlcigpICE9IE5vbmU6IEJPYmouU2V0QWxpZ24o MSkNCj4gDQo+IC0gICAgICAgICAgICBpZiBjdHguUmlnaHQoKSAhPSBOb25lOiBCT2JqLlNldEFs aWduKDIpDQo+IA0KPiAtICAgICAgICAgICAgY3R4Lk5vZGUuRGF0YSA9IEJPYmoNCj4gDQo+IC0g ICAgICAgIGVsaWYgY3R4LlRpbWVvdXQoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIFRP YmogPSBDSWZyVGltZW91dCgpDQo+IA0KPiAtICAgICAgICAgICAgVE9iai5TZXRMaW5lTm8oY3R4 LnN0YXJ0LmxpbmUpDQo+IA0KPiAtICAgICAgICAgICAgVE9iai5TZXRUaW1lb3V0KHNlbGYuX19U cmFuc051bShjdHguTnVtYmVyKDIpKSkNCj4gDQo+IC0gICAgICAgICAgICBjdHguTm9kZS5EYXRh ID0gVE9iag0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+IA0KPiAt DQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZm clN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRFeHRlbnNpb24uDQo+IA0KPiAtICAgIGRlZiB2aXNp dFZmclN0YXRlbWVudEV4dGVuc2lvbihzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLlZmclN0 YXRlbWVudEV4dGVuc2lvbkNvbnRleHQpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgY3R4Lklz U3RydWN0ID0gRmFsc2UNCj4gDQo+IC0gICAgICAgIGlmIGN0eC5EYXRhVHlwZSgpICE9IE5vbmU6 DQo+IA0KPiAtICAgICAgICAgICAgaWYgY3R4LlVpbnQ2NCgpICE9IE5vbmU6DQo+IA0KPiAtICAg ICAgICAgICAgICAgIGN0eC5UeXBlTmFtZSA9ICdVSU5UNjQnDQo+IA0KPiAtICAgICAgICAgICAg ZWxpZiBjdHguVWludDMyKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgY3R4LlR5 cGVOYW1lID0gJ1VJTlQzMicNCj4gDQo+IC0gICAgICAgICAgICBlbGlmIGN0eC5VaW50MTYoKSAh PSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgICAgICBjdHguVHlwZU5hbWUgPSAnVUlOVDE2Jw0K PiANCj4gLSAgICAgICAgICAgIGVsaWYgY3R4LlVpbnQ4KCkgIT0gTm9uZToNCj4gDQo+IC0gICAg ICAgICAgICAgICAgY3R4LlR5cGVOYW1lID0gJ1VJTlQ4Jw0KPiANCj4gLSAgICAgICAgICAgIGVs aWYgY3R4LkJvb2xlYW4oKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgICAgICBjdHguVHlw ZU5hbWUgPSAnQk9PTEVBTicNCj4gDQo+IC0gICAgICAgICAgICBlbGlmIGN0eC5FRklfU1RSSU5H X0lEKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgY3R4LlR5cGVOYW1lID0gJ0VG SV9TVFJJTkdfSUQnDQo+IA0KPiAtICAgICAgICAgICAgZWxpZiBjdHguRUZJX0hJSV9EQVRFKCkg IT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgY3R4LlR5cGVOYW1lID0gJ0VGSV9ISUlf REFURScNCj4gDQo+IC0gICAgICAgICAgICAgICAgY3R4LklzU3RydWN0ID0gVHJ1ZQ0KPiANCj4g LSAgICAgICAgICAgIGVsaWYgY3R4LkVGSV9ISUlfVElNRSgpICE9IE5vbmU6DQo+IA0KPiAtICAg ICAgICAgICAgICAgIGN0eC5UeXBlTmFtZSA9ICdFRklfSElJX1RJTUUnDQo+IA0KPiAtICAgICAg ICAgICAgICAgIGN0eC5Jc1N0cnVjdCA9IFRydWUNCj4gDQo+IC0gICAgICAgICAgICBlbGlmIGN0 eC5FRklfSElJX1JFRigpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgICAgIGN0eC5UeXBl TmFtZSA9ICdFRklfSElJX1JFRicNCj4gDQo+IC0gICAgICAgICAgICAgICAgY3R4LklzU3RydWN0 ID0gVHJ1ZQ0KPiANCj4gLSAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgICAg IGN0eC5UeXBlTmFtZSA9IHNlbGYuX19UcmFuc0lkKGN0eC5TdHJpbmdJZGVudGlmaWVyKCkpDQo+ IA0KPiAtICAgICAgICAgICAgICAgIGN0eC5Jc1N0cnVjdCA9IFRydWUNCj4gDQo+IC0gICAgICAg ICAgICBjdHguQXJyYXlOdW0gPSBzZWxmLl9fVHJhbnNOdW0oY3R4Lk51bWJlcigpKQ0KPiANCj4g LSAgICAgICAgICAgIGN0eC5UeXBlU2l6ZSwgUmV0dXJuQ29kZSA9DQo+IGdDVmZyVmFyRGF0YVR5 cGVEQi5HZXREYXRhVHlwZVNpemVCeVR5cGVOYW1lKGN0eC5UeXBlTmFtZSkNCj4gDQo+IC0gICAg ICAgICAgICBzZWxmLl9fRXJyb3JIYW5kbGVyKFJldHVybkNvZGUsIGN0eC5ELmxpbmUpDQo+IA0K PiAtICAgICAgICAgICAgY3R4LlNpemUgPSBjdHguVHlwZVNpemUgKiBjdHguQXJyYXlOdW0gaWYg Y3R4LkFycmF5TnVtID4gMCBlbHNlDQo+IGN0eC5UeXBlU2l6ZQ0KPiANCj4gLSAgICAgICAgICAg IEFycmF5VHlwZSA9IGN0eXBlcy5jX3VieXRlICogY3R4LlNpemUNCj4gDQo+IC0gICAgICAgICAg ICBjdHguRGF0YUJ1ZmYgPSBBcnJheVR5cGUoKQ0KPiANCj4gLSAgICAgICAgICAgIGZvciBpIGlu IHJhbmdlKDAsIGN0eC5TaXplKToNCj4gDQo+IC0gICAgICAgICAgICAgICAgY3R4LkRhdGFCdWZm W2ldID0gMA0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0N Cj4gDQo+IC0gICAgICAgIExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiANCj4gLSAgICAgICAgR3Vp ZE9iaiA9IENJZnJHdWlkKGN0eC5TaXplKQ0KPiANCj4gLSAgICAgICAgR3VpZE9iai5TZXRMaW5l Tm8oTGluZSkNCj4gDQo+IC0gICAgICAgIEd1aWRPYmouU2V0R3VpZChjdHguZ3VpZERlZmluaXRp b24oKS5HdWlkKQ0KPiANCj4gLSAgICAgICAgaWYgY3R4LlR5cGVOYW1lICE9IE5vbmU6DQo+IA0K PiAtICAgICAgICAgICAgR3VpZE9iai5TZXREYXRhKGN0eC5EYXRhQnVmZikNCj4gDQo+IC0gICAg ICAgICMgdmZyU3RhdGVtZW50RXh0ZW5zaW9uDQo+IA0KPiAtICAgICAgICBHdWlkT2JqLlNldFNj b3BlKDEpDQo+IA0KPiAtICAgICAgICBjdHguTm9kZS5EYXRhID0gR3VpZE9iag0KPiANCj4gLSAg ICAgICAgZm9yIEN0eCBpbiBjdHgudmZyU3RhdGVtZW50RXh0ZW5zaW9uKCk6DQo+IA0KPiAtICAg ICAgICAgICAgc2VsZi5fX0luc2VydENoaWxkKGN0eC5Ob2RlLCBDdHgpDQo+IA0KPiAtICAgICAg ICByZXR1cm4gY3R4Lk5vZGUNCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRy ZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmckV4dGVuc2lvbkRhdGEuDQo+IA0KPiAt ICAgIGRlZiB2aXNpdFZmckV4dGVuc2lvbkRhdGEoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNl ci5WZnJFeHRlbnNpb25EYXRhQ29udGV4dCk6DQo+IA0KPiAtICAgICAgICAnJycNCj4gDQo+IC0g ICAgICAgIFRGTmFtZSA9ICcnDQo+IA0KPiAtICAgICAgICBJc0FycmF5ID0gRmFsc2UgaWYgY3R4 Lk9wZW5CcmFja2V0KCkgPT0gTm9uZSBlbHNlIFRydWUNCj4gDQo+IC0gICAgICAgIEFycmF5SWR4 ID0gMA0KPiANCj4gLSAgICAgICAgY3R4LklzU3RydWN0ID0gY3R4LnBhcmVudEN0eC5Jc1N0cnVj dA0KPiANCj4gLSAgICAgICAgY3R4LkRhdGFCdWZmID0gY3R4LnBhcmVudEN0eC5EYXRhQnVmZg0K PiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0N Cj4gDQo+IC0gICAgICAgIERhdGEgPSBzZWxmLl9fVHJhbnNOdW0oY3R4Lk4udGV4dCkNCj4gDQo+ IC0gICAgICAgIGlmIElzQXJyYXkgPT0gVHJ1ZToNCj4gDQo+IC0gICAgICAgICAgICBBcnJheUlk eCA9IHNlbGYuX19UcmFuc051bShzZWxmLl9fVHJhbnNOdW0oY3R4Lk51bWJlcigwKSkpDQo+IA0K PiAtICAgICAgICBCeXRlT2Zmc2V0ICA9IEFycmF5SWR4ICogY3R4LnBhcmVudEN0eC5UeXBlU2l6 ZQ0KPiANCj4gLSAgICAgICAgaWYgY3R4LklzU3RydWN0ID09IFRydWU6DQo+IA0KPiAtICAgICAg ICAgICAgVEZOYW1lICs9IGN0eC5wYXJlbnRDdHguVHlwZU5hbWUNCj4gDQo+IC0gICAgICAgICAg ICBmb3IgaSBpbiByYW5nZSgwLCBsZW4oY3R4LmFycmF5TmFtZSgpKSk6DQo+IA0KPiAtICAgICAg ICAgICAgICAgIFRGTmFtZSArPSAnLicNCj4gDQo+IC0gICAgICAgICAgICAgICAgVEZOYW1lICs9 IGN0eC5hcnJheU5hbWUoaSkuU3ViU3RyWg0KPiANCj4gLSAgICAgICAgICAgIEZpZWxkT2Zmc2V0 LCBGaWVsZFR5cGUsIEZpZWxkU2l6ZSwgQml0RmllbGQsIF8gPQ0KPiBnQ1ZmclZhckRhdGFUeXBl REIuR2V0RGF0YUZpZWxkSW5mbyhURk5hbWUpDQo+IA0KPiAtICAgICAgICAgICAgaWYgQml0Rmll bGQ6DQo+IA0KPiAtICAgICAgICAgICAgICAgIE1hc2sgPSAoMSA8PCBGaWVsZFNpemUpIC0gMQ0K PiANCj4gLSAgICAgICAgICAgICAgICBPZmZzZXQgPSBpbnQoRmllbGRPZmZzZXQgLyA4KQ0KPiAN Cj4gLSAgICAgICAgICAgICAgICBQcmVCaXRzID0gRmllbGRPZmZzZXQgJSA4DQo+IA0KPiAtICAg ICAgICAgICAgICAgIE1hc2sgPDw9IFByZUJpdHMNCj4gDQo+IC0gICAgICAgICAgICAgICAgQmVn aW4gPSAwDQo+IA0KPiAtICAgICAgICAgICAgICAgIEVuZCA9IDANCj4gDQo+IC0gICAgICAgICAg ICAgICAgaWYgRmllbGRUeXBlID09IEVGSV9JRlJfVFlQRV9OVU1fU0laRV84Og0KPiANCj4gLSAg ICAgICAgICAgICAgICAgICAgRGF0YSA9IGN0eXBlcy5jX3VieXRlKERhdGEpDQo+IA0KPiAtICAg ICAgICAgICAgICAgICAgICBpZiBCaXRGaWVsZDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAg ICAgICAjIFNldCB0aGUgdmFsdWUgdG8gdGhlIGJpdCBmaWxlZHMuDQo+IA0KPiAtICAgICAgICAg ICAgICAgICAgICAgICAgRGF0YSAgPDw9IFByZUJpdHMNCj4gDQo+IC0gICAgICAgICAgICAgICAg ICAgICAgICBWYWx1ZSA9IChWYWx1ZSAmICh+TWFzaykpIHwgRGF0YQ0KPiANCj4gLSAgICAgICAg ICAgICAgICAgICAgICAgIEJlZ2luID0gQnl0ZU9mZnNldCArIE9mZnNldA0KPiANCj4gLSAgICAg ICAgICAgICAgICAgICAgICAgIEVuZCA9IEJ5dGVPZmZzZXQgKyBPZmZzZXQgKyBzaXplb2YgKGN0 eXBlcy5jX3VieXRlKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGN0eC5EYXRhQnVm ZltCZWdpbjogRW5kXSA9IFZhbHVlDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBlbHNlOg0K PiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIEJlZ2luID0gQnl0ZU9mZnNldCArIEZpZWxk T2Zmc2V0DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgRW5kID0gQnl0ZU9mZnNldCAr IEZpZWxkT2Zmc2V0ICsgRmllbGRTaXplDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg Y3R4LkRhdGFCdWZmW0JlZ2luOiBFbmRdID0gRGF0YQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4g LSAgICAgICAgICAgICAgICBpZiBGaWVsZFR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzE2 Og0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgRGF0YSA9IGN0eXBlcy5jX3VzaG9ydChEYXRh KQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgaWYgQml0RmllbGQ6DQo+IA0KPiAtICAgICAg ICAgICAgICAgICAgICAgICAgIyBTZXQgdGhlIHZhbHVlIHRvIHRoZSBiaXQgZmlsZWRzLg0KPiAN Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgIDw8PSBQcmVCaXRzDQo+IA0KPiAtICAg ICAgICAgICAgICAgICAgICAgICAgVmFsdWUgPSAoVmFsdWUgJiAofk1hc2spKSB8IERhdGENCj4g DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBCZWdpbiA9IEJ5dGVPZmZzZXQgKyBPZmZzZXQN Cj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBFbmQgPSBCeXRlT2Zmc2V0ICsgT2Zmc2V0 ICsgc2l6ZW9mIChjdHlwZXMuY191c2hvcnQpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAg ICAgY3R4LkRhdGFCdWZmW0JlZ2luOiBFbmRdID0gVmFsdWUNCj4gDQo+IC0gICAgICAgICAgICAg ICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgQmVnaW4gPSBCeXRl T2Zmc2V0ICsgRmllbGRPZmZzZXQNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBFbmQg PSBCeXRlT2Zmc2V0ICsgRmllbGRPZmZzZXQgKyBGaWVsZFNpemUNCj4gDQo+IC0gICAgICAgICAg ICAgICAgICAgICAgICBjdHguRGF0YUJ1ZmZbQmVnaW46IEVuZF0gPSBEYXRhDQo+IA0KPiAtDQo+ IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIEZpZWxkVHlwZSA9PSBFRklfSUZSX1RZ UEVfTlVNX1NJWkVfMzI6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBEYXRhID0gY3R5cGVz LmNfdWxvbmcoRGF0YSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGlmIEJpdEZpZWxkOg0K PiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICMgU2V0IHRoZSB2YWx1ZSB0byB0aGUgYml0 IGZpbGVkcy4NCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBEYXRhICA8PD0gUHJlQml0 cw0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlID0gKFZhbHVlICYgKH5NYXNr KSkgfCBEYXRhDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgQmVnaW4gPSBCeXRlT2Zm c2V0ICsgT2Zmc2V0DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgRW5kID0gQnl0ZU9m ZnNldCArIE9mZnNldCArIHNpemVvZiAoY3R5cGVzLmNfdWxvbmcpDQo+IA0KPiAtICAgICAgICAg ICAgICAgICAgICAgICAgY3R4LkRhdGFCdWZmW0JlZ2luOiBFbmRdID0gVmFsdWUNCj4gDQo+IC0g ICAgICAgICAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg QmVnaW4gPSBCeXRlT2Zmc2V0ICsgRmllbGRPZmZzZXQNCj4gDQo+IC0gICAgICAgICAgICAgICAg ICAgICAgICBFbmQgPSBCeXRlT2Zmc2V0ICsgRmllbGRPZmZzZXQgKyBGaWVsZFNpemUNCj4gDQo+ IC0gICAgICAgICAgICAgICAgICAgICAgICBjdHguRGF0YUJ1ZmZbQmVnaW46IEVuZF0gPSBEYXRh DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIEZpZWxkVHlwZSA9PSBFRklfSUZS X1RZUEVfTlVNX1NJWkVfNjQ6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBEYXRhID0gY3R5 cGVzLmNfdWxvbmdsb25nKERhdGEpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBpZiBCaXRG aWVsZDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAjIFNldCB0aGUgdmFsdWUgdG8g dGhlIGJpdCBmaWxlZHMuDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSAgPDw9 IFByZUJpdHMNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9IChWYWx1ZSAm ICh+TWFzaykpIHwgRGF0YQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIEJlZ2luID0g Qnl0ZU9mZnNldCArIE9mZnNldA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIEVuZCA9 IEJ5dGVPZmZzZXQgKyBPZmZzZXQgKyBzaXplb2YgKGN0eXBlcy5jX3Vsb25nbG9uZykNCj4gDQo+ IC0gICAgICAgICAgICAgICAgICAgICAgICBjdHguRGF0YUJ1ZmZbQmVnaW46IEVuZF0gPSBWYWx1 ZQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICAg ICAgICAgICAgICBCZWdpbiA9IEJ5dGVPZmZzZXQgKyBGaWVsZE9mZnNldA0KPiANCj4gLSAgICAg ICAgICAgICAgICAgICAgICAgIEVuZCA9IEJ5dGVPZmZzZXQgKyBGaWVsZE9mZnNldCArIEZpZWxk U2l6ZQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGN0eC5EYXRhQnVmZltCZWdpbjog RW5kXSA9IERhdGENCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAg ICAgICAgY3R4LkRhdGFCdWZmW0J5dGVPZmZzZXQsIEJ5dGVPZmZzZXQgKyBjdHgucGFyZW50Q3R4 LlR5cGVTaXplXSA9IERhdGENCj4gDQo+IC0gICAgICAgICcnJw0KPiANCj4gLSAgICAgICAgcmV0 dXJuIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQg YSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRNb2Rh bC4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50TW9kYWwoc2VsZiwNCj4gY3R4OlZm clN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRNb2RhbENvbnRleHQpOg0KPiANCj4gLQ0KPiANCj4g LSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0gICAgICAgIGN0eC5Ob2Rl ID0gY3R4LnZmck1vZGFsVGFnKCkuTm9kZQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5Ob2Rl DQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZm clN5bnRheFBhcnNlciN2ZnJNb2RhbFRhZy4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VmZyTW9kYWxU YWcoc2VsZiwgY3R4OlZmclN5bnRheFBhcnNlci5WZnJNb2RhbFRhZ0NvbnRleHQpOg0KPiANCj4g LQ0KPiANCj4gLSAgICAgICAgTU9iaiA9IENJZnJNb2RhbCgpDQo+IA0KPiAtICAgICAgICBzZWxm LnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgTU9iai5TZXRMaW5lTm8oY3R4LnN0 YXJ0LmxpbmUpDQo+IA0KPiAtICAgICAgICBjdHguTm9kZS5EYXRhID0gTU9iag0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBf X1NhdmVPcEhkckNvbmQoc2VsZiwgT3BIZHIsIENvbmQsIExpbmVObz0wKToNCj4gDQo+IC0gICAg ICAgIGlmIENvbmQgPT0gVHJ1ZToNCj4gDQo+IC0gICAgICAgICAgICBpZiBzZWxmLl9fQ0lmck9w SGRyW3NlbGYuX19DSWZyT3BIZHJJbmRleF0gIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAg ICAgcmV0dXJuDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX0NJZnJPcEhkcltzZWxmLl9fQ0lm ck9wSGRySW5kZXhdID0gQ0lmck9wSGVhZGVyKE9wSGRyKSAjDQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5fX0NJZnJPcEhkckxpbmVOb1tzZWxmLl9fQ0lmck9wSGRySW5kZXhdID0gTGluZU5vDQo+ IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX0luaXRPcEhkckNvbmQoc2VsZik6DQo+ IA0KPiAtICAgICAgICBzZWxmLl9fQ0lmck9wSGRyLmFwcGVuZChOb25lKQ0KPiANCj4gLSAgICAg ICAgc2VsZi5fX0NJZnJPcEhkckxpbmVOby5hcHBlbmQoMCkNCj4gDQo+IC0NCj4gDQo+IC0gICAg ZGVmIF9fU2V0U2F2ZWRPcEhkclNjb3BlKHNlbGYpOg0KPiANCj4gLSAgICAgICAgaWYgIHNlbGYu X19DSWZyT3BIZHJbc2VsZi5fX0NJZnJPcEhkckluZGV4XSAhPSBOb25lOg0KPiANCj4gLSAgICAg ICAgICAgIHNlbGYuX19DSWZyT3BIZHJbc2VsZi5fX0NJZnJPcEhkckluZGV4XS5TZXRTY29wZSgx KQ0KPiANCj4gLSAgICAgICAgICAgIHJldHVybiBUcnVlDQo+IA0KPiAtICAgICAgICByZXR1cm4g RmFsc2UNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9fQ2xlYXJTYXZlZE9QSGRyKHNlbGYpOg0K PiANCj4gLSAgICAgICAgc2VsZi5fX0NJZnJPcEhkcltzZWxmLl9fQ0lmck9wSGRySW5kZXhdID0g Tm9uZQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBi eSBWZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVtZW50RXhwcmVzc2lvbi4NCj4gDQo+IC0gICAgZGVm IHZpc2l0VmZyU3RhdGVtZW50RXhwcmVzc2lvbihzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2Vy LlZmclN0YXRlbWVudEV4cHJlc3Npb25Db250ZXh0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAg ICMgUm9vdCBleHByZXNzaW9uIGV4dGVuc2lvbiBmdW5jdGlvbiBjYWxsZWQgYnkgb3RoZXIgZnVu Y3Rpb24uICMjDQo+IA0KPiAtICAgICAgICBpZiBjdHguRXhwSW5mby5Sb290TGV2ZWwgPT0gMDoN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fQ0lmck9wSGRySW5kZXggKz0gMQ0KPiANCj4gLSAg ICAgICAgICAgIGlmIHNlbGYuX19DSWZyT3BIZHJJbmRleCA+PSBNQVhfSUZSX0VYUFJFU1NJT05f REVQVEg6DQo+IA0KPiAtDQo+IHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJf UkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLA0KPiBjdHguc3RhcnQubGluZSwgJ1RoZSBkZXB0aCBv ZiBleHByZXNzaW9uIGV4Y2VlZHMgdGhlIG1heCBzdXBwb3J0ZWQgbGV2ZWwgOCEnKQ0KPiANCj4g LSAgICAgICAgICAgIHNlbGYuX19Jbml0T3BIZHJDb25kKCkNCj4gDQo+IC0NCj4gDQo+IC0gICAg ICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtICAgICAgICBMaW5lID0gY3R4LnN0 YXJ0LmxpbmUNCj4gDQo+IC0gICAgICAgIGZvciBpIGluIHJhbmdlKDAsIGxlbihjdHguT1IoKSkp Og0KPiANCj4gLSAgICAgICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0KPiANCj4g LSAgICAgICAgICAgIE9PYmogPSBDSWZyT3IoTGluZSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAg ICMgRXh0ZW5kIE9wQ29kZSBTY29wZSBvbmx5IGZvciB0aGUgcm9vdCBleHByZXNzaW9uLg0KPiAN Cj4gLSAgICAgICAgaWYgY3R4LkV4cEluZm8uRXhwT3BDb3VudCA+IDEgYW5kIGN0eC5FeHBJbmZv LlJvb3RMZXZlbCA9PSAwOg0KPiANCj4gLSAgICAgICAgICAgIGlmIHNlbGYuX19TZXRTYXZlZE9w SGRyU2NvcGUoKToNCj4gDQo+IC0gICAgICAgICAgICAgICAgRU9iaiA9IENJZnJFbmQoKQ0KPiAN Cj4gLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9fQ0lmck9wSGRyTGluZU5vW3NlbGYuX19DSWZy T3BIZHJJbmRleF0gIT0gMDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIEVPYmouU2V0TGlu ZU5vKHNlbGYuX19DSWZyT3BIZHJMaW5lTm9bc2VsZi5fX0NJZnJPcEhkckluZGV4XSkNCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgIGlmIGN0eC5FeHBJbmZvLlJvb3RMZXZlbCA9PSAwOg0KPiANCj4g LSAgICAgICAgICAgIHNlbGYuX19DbGVhclNhdmVkT1BIZHIoKQ0KPiANCj4gLSAgICAgICAgICAg IHNlbGYuX19DSWZyT3BIZHJJbmRleCA9IHNlbGYuX19DSWZyT3BIZHJJbmRleCAtIDENCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgIHNlbGYuX19Db25zdGFudE9ubHlJbkV4cHJlc3Npb24gPSBGYWxz ZQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5FeHBJbmZvDQo+IA0KPiAtDQo+ IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5DQo+IFZm clN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViLg0KPiANCj4gLSAgICBkZWYg dmlzaXRWZnJTdGF0ZW1lbnRFeHByZXNzaW9uU3ViKHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJz ZXIuVmZyU3RhdGVtZW50RXhwcmVzc2lvblN1YkNvbnRleHQpOg0KPiANCj4gLQ0KPiANCj4gLSAg ICAgICAgY3R4LkV4cEluZm8uUm9vdExldmVsID0gY3R4LnBhcmVudEN0eC5FeHBJbmZvLlJvb3RM ZXZlbCArIDENCj4gDQo+IC0gICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgPSBjdHgucGFy ZW50Q3R4LkV4cEluZm8uRXhwT3BDb3VudA0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi52 aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGN0eC5wYXJlbnRDdHgu RXhwSW5mby5FeHBPcENvdW50ID0gY3R4LkV4cEluZm8uRXhwT3BDb3VudA0KPiANCj4gLQ0KPiAN Cj4gLSAgICAgICAgcmV0dXJuIGN0eC5FeHBJbmZvDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlz aXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNhbmRUZXJtLg0KPiAN Cj4gLSAgICBkZWYgdmlzaXRBbmRUZXJtKHNlbGYsIGN0eDpWZnJTeW50YXhQYXJzZXIuQW5kVGVy bUNvbnRleHQpOg0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+ IC0gICAgICAgIExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiANCj4gLSAgICAgICAgZm9yIGkgaW4g cmFuZ2UoMCwgbGVuKGN0eC5BTkQoKSkpOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5FeHBJbmZv LkV4cE9wQ291bnQgKz0gMQ0KPiANCj4gLSAgICAgICAgICAgIEFPYmogPSBDSWZyQW5kKExpbmUp DQo+IA0KPiAtICAgICAgICAgICAgY3R4LkNJZnJBbmRMaXN0LmFwcGVuZChBT2JqKQ0KPiANCj4g LQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5FeHBJbmZvLCBjdHguQ0lmckFuZExpc3QNCj4g DQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQg YnkgVmZyU3ludGF4UGFyc2VyI2JpdHdpc2VvclRlcm0uDQo+IA0KPiAtICAgIGRlZiB2aXNpdEJp dHdpc2VvclRlcm0oc2VsZiwgY3R4OlZmclN5bnRheFBhcnNlci5CaXR3aXNlb3JUZXJtQ29udGV4 dCk6DQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLSAgICAg ICAgTGluZSA9IGN0eC5zdGFydC5saW5lDQo+IA0KPiAtICAgICAgICBmb3IgaSBpbiByYW5nZSgw LCBsZW4oY3R4LkJpdFdpc2VPcigpKSk6DQo+IA0KPiAtICAgICAgICAgICAgY3R4LkV4cEluZm8u RXhwT3BDb3VudCArPSAxDQo+IA0KPiAtICAgICAgICAgICAgQldPT2JqID0gQ0lmckJpdFdpc2VP cihMaW5lKQ0KPiANCj4gLSAgICAgICAgICAgIGN0eC5DSWZyQml0V2lzZU9yTGlzdC5hcHBlbmQo QldPT2JqKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5FeHBJbmZvLCBjdHgu Q0lmckJpdFdpc2VPckxpc3QNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBh IHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI2JpdHdpc2VhbmRUZXJtLg0K PiANCj4gLSAgICBkZWYgdmlzaXRCaXR3aXNlYW5kVGVybShzZWxmLCBjdHg6VmZyU3ludGF4UGFy c2VyLkJpdHdpc2VhbmRUZXJtQ29udGV4dCk6DQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hp bGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5lDQo+IA0KPiAt ICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCBsZW4oY3R4LkJpdFdpc2VBbmQoKSkpOg0KPiANCj4g LSAgICAgICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0KPiANCj4gLSAgICAgICAg ICAgIEJXQU9iaiA9IENJZnJCaXRXaXNlQW5kKExpbmUpDQo+IA0KPiAtICAgICAgICAgICAgY3R4 LkNJZnJCaXRXaXNlQW5kTGlzdC5hcHBlbmQoQldBT2JqKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAg ICAgcmV0dXJuIGN0eC5FeHBJbmZvLCBjdHguQ0lmckJpdFdpc2VBbmRMaXN0DQo+IA0KPiAtDQo+ IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5 bnRheFBhcnNlciNlcXVhbFRlcm0uDQo+IA0KPiAtICAgIGRlZiB2aXNpdEVxdWFsVGVybShzZWxm LCBjdHg6VmZyU3ludGF4UGFyc2VyLkVxdWFsVGVybUNvbnRleHQpOg0KPiANCj4gLSAgICAgICAg c2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0gICAgICAgIGZvciBpIGluIHJhbmdlKDAs IGxlbihjdHguZXF1YWxUZXJtU3VwcGxlbWVudGFyeSgpKSk6DQo+IA0KPiAtICAgICAgICAgICAg Y3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAxDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1 cm4gY3R4LkV4cEluZm8sIGN0eC5DSWZyRXF1YWxMaXN0LCBjdHguQ0lmck5vdEVxdWFsTGlzdA0K PiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNl ZCBieSBWZnJTeW50YXhQYXJzZXIjZXF1YWxUZXJtRXF1YWxSdWxlLg0KPiANCj4gLSAgICBkZWYg dmlzaXRFcXVhbFRlcm1FcXVhbFJ1bGUoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5FcXVh bFRlcm1FcXVhbFJ1bGVDb250ZXh0KToNCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJl bihjdHgpDQo+IA0KPiAtICAgICAgICBFT2JqID0gQ0lmckVxdWFsKGN0eC5zdGFydC5saW5lKQ0K PiANCj4gLSAgICAgICAgY3R4LkNJZnJFcXVhbExpc3QuYXBwZW5kKEVPYmopDQo+IA0KPiAtDQo+ IA0KPiAtICAgICAgICByZXR1cm4gRU9iag0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAj IFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjZXF1YWxUZXJt Tm90RXF1YWxSdWxlLg0KPiANCj4gLSAgICBkZWYgdmlzaXRFcXVhbFRlcm1Ob3RFcXVhbFJ1bGUo c2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5FcXVhbFRlcm1Ob3RFcXVhbFJ1bGVDb250ZXh0 KToNCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtICAgICAg ICBORU9iaiA9IENJZnJOb3RFcXVhbChjdHguc3RhcnQubGluZSkNCj4gDQo+IC0gICAgICAgIGN0 eC5DSWZyTm90RXF1YWxMaXN0LmFwcGVuZChORU9iaikNCj4gDQo+IC0gICAgICAgIHJldHVybiBO RU9iag0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBw cm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjY29tcGFyZVRlcm0uDQo+IA0KPiAtICAgIGRlZiB2 aXNpdENvbXBhcmVUZXJtKHNlbGYsIGN0eDpWZnJTeW50YXhQYXJzZXIuQ29tcGFyZVRlcm1Db250 ZXh0KToNCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtICAg ICAgICBmb3IgaSBpbiByYW5nZSgwLCBsZW4oY3R4LmNvbXBhcmVUZXJtU3VwcGxlbWVudGFyeSgp KSk6DQo+IA0KPiAtICAgICAgICAgICAgY3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAxDQo+IA0K PiAtICAgICAgICByZXR1cm4gY3R4LkV4cEluZm8sIGN0eC5DSWZyTGVzc1RoYW5MaXN0LCBjdHgu Q0lmckxlc3NFcXVhbExpc3QsDQo+IGN0eC5DSWZyR3JlYXRlclRoYW5MaXN0LCBjdHguQ0lmckdy ZWF0ZXJFcXVhbExpc3QNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBh cnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI2NvbXBhcmVUZXJtTGVzc1J1bGUu DQo+IA0KPiAtICAgIGRlZiB2aXNpdENvbXBhcmVUZXJtTGVzc1J1bGUoc2VsZiwNCj4gY3R4OlZm clN5bnRheFBhcnNlci5Db21wYXJlVGVybUxlc3NSdWxlQ29udGV4dCk6DQo+IA0KPiAtICAgICAg ICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgTFRPYmogPSBDSWZyTGVz c1RoYW4oY3R4LnN0YXJ0LmxpbmUpDQo+IA0KPiAtICAgICAgICBjdHguQ0lmckxlc3NUaGFuTGlz dC5hcHBlbmQoTFRPYmopDQo+IA0KPiAtICAgICAgICByZXR1cm4gTFRPYmoNCj4gDQo+IC0NCj4g DQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZy U3ludGF4UGFyc2VyI2NvbXBhcmVUZXJtTGVzc0VxdWFsUnVsZS4NCj4gDQo+IC0gICAgZGVmIHZp c2l0Q29tcGFyZVRlcm1MZXNzRXF1YWxSdWxlKHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJzZXIu Q29tcGFyZVRlcm1MZXNzRXF1YWxSdWxlQ29udGV4dCk6DQo+IA0KPiAtICAgICAgICBzZWxmLnZp c2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgTEVPYmogPSBDSWZyTGVzc0VxdWFsKGN0 eC5zdGFydC5saW5lKQ0KPiANCj4gLSAgICAgICAgY3R4LkNJZnJMZXNzRXF1YWxMaXN0LmFwcGVu ZChMRU9iaikNCj4gDQo+IC0gICAgICAgIHJldHVybiBMRU9iag0KPiANCj4gLQ0KPiANCj4gLQ0K PiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieQ0KPiBWZnJTeW50YXhQ YXJzZXIjY29tcGFyZVRlcm1HcmVhdGVyUnVsZS4NCj4gDQo+IC0gICAgZGVmIHZpc2l0Q29tcGFy ZVRlcm1HcmVhdGVyUnVsZShzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLkNvbXBhcmVUZXJt R3JlYXRlclJ1bGVDb250ZXh0KToNCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihj dHgpDQo+IA0KPiAtICAgICAgICBHVE9iaiA9IENJZnJHcmVhdGVyVGhhbihjdHguc3RhcnQubGlu ZSkNCj4gDQo+IC0gICAgICAgIGN0eC5DSWZyR3JlYXRlclRoYW5MaXN0LmFwcGVuZChHVE9iaikN Cj4gDQo+IC0gICAgICAgIHJldHVybiBHVE9iag0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAg ICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieQ0KPiBWZnJTeW50YXhQYXJzZXIjY29t cGFyZVRlcm1HcmVhdGVyRXF1YWxSdWxlLg0KPiANCj4gLSAgICBkZWYgdmlzaXRDb21wYXJlVGVy bUdyZWF0ZXJFcXVhbFJ1bGUoc2VsZiwNCj4gY3R4OlZmclN5bnRheFBhcnNlci5Db21wYXJlVGVy bUdyZWF0ZXJFcXVhbFJ1bGVDb250ZXh0KToNCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGls ZHJlbihjdHgpDQo+IA0KPiAtICAgICAgICBHRU9iaiA9IENJZnJHcmVhdGVyRXF1YWwoY3R4LnN0 YXJ0LmxpbmUpDQo+IA0KPiAtICAgICAgICBjdHguQ0lmckdyZWF0ZXJFcXVhbExpc3QuYXBwZW5k KEdFT2JqKQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIEdFT2JqDQo+IA0KPiAtDQo+IA0KPiAtICAg ICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNzaGlmdFRl cm0uDQo+IA0KPiAtICAgIGRlZiB2aXNpdFNoaWZ0VGVybShzZWxmLCBjdHg6VmZyU3ludGF4UGFy c2VyLlNoaWZ0VGVybUNvbnRleHQpOg0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVu KGN0eCkNCj4gDQo+IC0gICAgICAgIGZvciBpIGluIHJhbmdlKDAsIGxlbihjdHguc2hpZnRUZXJt U3VwcGxlbWVudGFyeSgpKSk6DQo+IA0KPiAtICAgICAgICAgICAgY3R4LkV4cEluZm8uRXhwT3BD b3VudCArPSAxDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4LkV4cEluZm8sIGN0eC5DSWZyU2hp ZnRMZWZ0TGlzdCwgY3R4LkNJZnJTaGlmdFJpZ2h0TGlzdA0KPiANCj4gLQ0KPiANCj4gLSAgICAj IFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjc2hpZnRUZXJt TGVmdC4NCj4gDQo+IC0gICAgZGVmIHZpc2l0U2hpZnRUZXJtTGVmdChzZWxmLCBjdHg6VmZyU3lu dGF4UGFyc2VyLlNoaWZ0VGVybUxlZnRDb250ZXh0KToNCj4gDQo+IC0gICAgICAgIHNlbGYudmlz aXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtICAgICAgICBTTE9iaiA9IENJZnJTaGlmdExlZnQoY3R4 LnN0YXJ0LmxpbmUpDQo+IA0KPiAtICAgICAgICBjdHguQ0lmclNoaWZ0TGVmdExpc3QuYXBwZW5k KFNMT2JqKQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIFNMT2JqDQo+IA0KPiAtDQo+IA0KPiAtDQo+ IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNl ciNzaGlmdFRlcm1SaWdodC4NCj4gDQo+IC0gICAgZGVmIHZpc2l0U2hpZnRUZXJtUmlnaHQoc2Vs ZiwgY3R4OlZmclN5bnRheFBhcnNlci5TaGlmdFRlcm1SaWdodENvbnRleHQpOg0KPiANCj4gLSAg ICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0gICAgICAgIFNST2JqID0gQ0lm clNoaWZ0UmlnaHQoY3R4LnN0YXJ0LmxpbmUpDQo+IA0KPiAtICAgICAgICBjdHguQ0lmclNoaWZ0 UmlnaHRMaXN0LmFwcGVuZChTUk9iaikNCj4gDQo+IC0gICAgICAgIHJldHVybiBTUk9iag0KPiAN Cj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBi eSBWZnJTeW50YXhQYXJzZXIjYWRkTWludXNUZXJtLg0KPiANCj4gLSAgICBkZWYgdmlzaXRBZGRN aW51c1Rlcm0oc2VsZiwgY3R4OlZmclN5bnRheFBhcnNlci5BZGRNaW51c1Rlcm1Db250ZXh0KToN Cj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtICAgICAgICBm b3IgaSBpbiByYW5nZSgwLCBsZW4oY3R4LmFkZE1pbnVzVGVybVN1cHBsZW1lbnRhcnkoKSkpOg0K PiANCj4gLSAgICAgICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0KPiANCj4gLSAg ICAgICAgcmV0dXJuIGN0eC5FeHBJbmZvLCBjdHguQ0lmckFkZExpc3QsIGN0eC5DSWZyU3VidHJh Y3RMaXN0DQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVl IHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNhZGRNaW51c1Rlcm1wQWRkLg0KPiANCj4gLSAg ICBkZWYgdmlzaXRBZGRNaW51c1Rlcm1wQWRkKHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJzZXIu QWRkTWludXNUZXJtcEFkZENvbnRleHQpOg0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxk cmVuKGN0eCkNCj4gDQo+IC0gICAgICAgIEFPYmogPSBDSWZyQWRkKGN0eC5zdGFydC5saW5lKQ0K PiANCj4gLSAgICAgICAgY3R4LkNJZnJBZGRMaXN0LmFwcGVuZChBT2JqKQ0KPiANCj4gLSAgICAg ICAgcmV0dXJuIEFPYmoNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBh cnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI2FkZE1pbnVzVGVybVN1YnRyYWN0 Lg0KPiANCj4gLSAgICBkZWYgdmlzaXRBZGRNaW51c1Rlcm1TdWJ0cmFjdChzZWxmLA0KPiBjdHg6 VmZyU3ludGF4UGFyc2VyLkFkZE1pbnVzVGVybVN1YnRyYWN0Q29udGV4dCk6DQo+IA0KPiAtICAg ICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgU09iaiA9IENJZnJT dWJ0cmFjdChjdHguc3RhcnQubGluZSkNCj4gDQo+IC0gICAgICAgIGN0eC5DSWZyU3VidHJhY3RM aXN0LmFwcGVuZChTT2JqKQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIFNPYmoNCj4gDQo+IC0NCj4g DQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3lu dGF4UGFyc2VyI211bHRkaXZtb2RUZXJtLg0KPiANCj4gLSAgICBkZWYgdmlzaXRNdWx0ZGl2bW9k VGVybShzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLk11bHRkaXZtb2RUZXJtQ29udGV4dCk6 DQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAg Zm9yIGkgaW4gcmFuZ2UoMCwgbGVuKGN0eC5tdWx0ZGl2bW9kVGVybVN1cHBsZW1lbnRhcnkoKSkp Og0KPiANCj4gLSAgICAgICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0KPiANCj4g LSAgICAgICAgcmV0dXJuIGN0eC5FeHBJbmZvLCBjdHguQ0lmck11bHRpcGx5TGlzdCwgY3R4LkNJ ZnJEaXZpZGVMaXN0LA0KPiBjdHguQ0lmck1vZHVsb0xpc3QNCj4gDQo+IC0NCj4gDQo+IC0NCj4g DQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2Vy I211bHRkaXZtb2RUZXJtTXVsLg0KPiANCj4gLSAgICBkZWYgdmlzaXRNdWx0ZGl2bW9kVGVybU11 bChzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLk11bHRkaXZtb2RUZXJtTXVsQ29udGV4dCk6 DQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAg TU9iaiA9IENJZnJNdWx0aXBseShjdHguc3RhcnQubGluZSkNCj4gDQo+IC0gICAgICAgIGN0eC5D SWZyTXVsdGlwbHlMaXN0LmFwcGVuZChNT2JqKQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIE1PYmoN Cj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVj ZWQgYnkgVmZyU3ludGF4UGFyc2VyI211bHRkaXZtb2RUZXJtRGl2Lg0KPiANCj4gLSAgICBkZWYg dmlzaXRNdWx0ZGl2bW9kVGVybURpdihzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLk11bHRk aXZtb2RUZXJtRGl2Q29udGV4dCk6DQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4o Y3R4KQ0KPiANCj4gLSAgICAgICAgRE9iaiA9IENJZnJEaXZpZGUoY3R4LnN0YXJ0LmxpbmUpDQo+ IA0KPiAtICAgICAgICBjdHguQ0lmckRpdmlkZUxpc3QuYXBwZW5kKERPYmopDQo+IA0KPiAtICAg ICAgICByZXR1cm4gRE9iag0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEg cGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjbXVsdGRpdm1vZFRlcm1Sb3Vu ZC4NCj4gDQo+IC0gICAgZGVmIHZpc2l0TXVsdGRpdm1vZFRlcm1Nb2R1bG8oc2VsZiwNCj4gY3R4 OlZmclN5bnRheFBhcnNlci5NdWx0ZGl2bW9kVGVybU1vZHVsb0NvbnRleHQpOg0KPiANCj4gLSAg ICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0gICAgICAgIGN0eC5MaW5lID0g Y3R4LnN0YXJ0LmxpbmUNCj4gDQo+IC0gICAgICAgIE1PYmogPSBDSWZyTW9kdWxvKGN0eC5MaW5l KQ0KPiANCj4gLSAgICAgICAgY3R4LkNJZnJNb2R1bG9MaXN0LmFwcGVuZChNT2JqKQ0KPiANCj4g LSAgICAgICAgcmV0dXJuIE1PYmoNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNp dCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI2Nhc3RUZXJtLg0KPiAN Cj4gLSAgICBkZWYgdmlzaXRDYXN0VGVybShzZWxmLCBjdHg6VmZyU3ludGF4UGFyc2VyLkNhc3RU ZXJtQ29udGV4dCk6DQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KSAjIw0K PiANCj4gLSAgICAgICAgQ2FzdFR5cGUgPSAweEZGDQo+IA0KPiAtICAgICAgICBpZiBjdHguQm9v bGVhbigpICE9IFtdOg0KPiANCj4gLSAgICAgICAgICAgIENhc3RUeXBlID0gMA0KPiANCj4gLSAg ICAgICAgZWxpZiBjdHguVWludDY0KCkgIT0gW106DQo+IA0KPiAtICAgICAgICAgICAgQ2FzdFR5 cGUgPSAxDQo+IA0KPiAtICAgICAgICBlbGlmIGN0eC5VaW50MzIoKSAhPSBbXToNCj4gDQo+IC0g ICAgICAgICAgICBDYXN0VHlwZSA9IDENCj4gDQo+IC0gICAgICAgIGVsaWYgY3R4LlVpbnQxNigp ICE9IFtdOg0KPiANCj4gLSAgICAgICAgICAgIENhc3RUeXBlID0gMQ0KPiANCj4gLSAgICAgICAg ZWxpZiBjdHguVWludDgoKSAhPSBbXToNCj4gDQo+IC0gICAgICAgICAgICBDYXN0VHlwZSA9IDEN Cj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiANCj4gLSAg ICAgICAgaWYgQ2FzdFR5cGUgPT0gMDoNCj4gDQo+IC0gICAgICAgICAgICBjdHguVEJPYmogPSBD SWZyVG9Cb29sZWFuKExpbmUpDQo+IA0KPiAtICAgICAgICBlbGlmIENhc3RUeXBlID09IDE6DQo+ IA0KPiAtICAgICAgICAgICAgY3R4LlRVT2JqID0gQ0lmclRvVWludChMaW5lKQ0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgY3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAxDQo+IA0KPiAtICAgICAg ICByZXR1cm4gY3R4LlRCT2JqLCBjdHguVFVPYmoNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0g ICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI2F0b21U ZXJtLg0KPiANCj4gLSAgICBkZWYgdmlzaXRBdG9tVGVybShzZWxmLCBjdHg6VmZyU3ludGF4UGFy c2VyLkF0b21UZXJtQ29udGV4dCk6DQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4o Y3R4KQ0KPiANCj4gLSAgICAgICAgaWYgY3R4Lk5PVCgpICE9IE5vbmU6DQo+IA0KPiAtICAgICAg ICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5lDQo+IA0KPiAtICAgICAgICAgICAgTk9iaiA9IENJ ZnJOb3QoTGluZSkNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNl IHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmckV4cHJlc3Npb25DYXRlbmF0ZS4N Cj4gDQo+IC0gICAgZGVmIHZpc2l0VmZyRXhwcmVzc2lvbkNhdGVuYXRlKHNlbGYsDQo+IGN0eDpW ZnJTeW50YXhQYXJzZXIuVmZyRXhwcmVzc2lvbkNhdGVuYXRlQ29udGV4dCk6DQo+IA0KPiAtICAg ICAgICBjdHguRXhwSW5mby5Sb290TGV2ZWwgKz0gMQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNp dENoaWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIExpbmUgPSBjdHguc3RhcnQu bGluZQ0KPiANCj4gLSAgICAgICAgY3R4LkNPYmogPSBDSWZyQ2F0ZW5hdGUoTGluZSkNCj4gDQo+ IC0gICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0KPiANCj4gLQ0KPiANCj4gLSAg ICAgICAgcmV0dXJuIGN0eC5DT2JqDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlz aXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJFeHByZXNzaW9u TWF0Y2guDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmckV4cHJlc3Npb25NYXRjaChzZWxmLA0KPiBj dHg6VmZyU3ludGF4UGFyc2VyLlZmckV4cHJlc3Npb25NYXRjaENvbnRleHQpOg0KPiANCj4gLSAg ICAgICAgY3R4LkV4cEluZm8uUm9vdExldmVsICs9IDENCj4gDQo+IC0gICAgICAgIHNlbGYudmlz aXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBMaW5lID0gY3R4LnN0YXJ0 LmxpbmUNCj4gDQo+IC0gICAgICAgIGN0eC5NT2JqID0gQ0lmck1hdGNoKExpbmUpDQo+IA0KPiAt ICAgICAgICBjdHguRXhwSW5mby5FeHBPcENvdW50ICs9IDENCj4gDQo+IC0NCj4gDQo+IC0gICAg ICAgIHJldHVybiBjdHguTU9iag0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0 IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyRXhwcmVzc2lvbk1h dGNoMi4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VmZyRXhwcmVzc2lvbk1hdGNoMihzZWxmLA0KPiBj dHg6VmZyU3ludGF4UGFyc2VyLlZmckV4cHJlc3Npb25NYXRjaDJDb250ZXh0KToNCj4gDQo+IC0g ICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBM aW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gDQo+IC0gICAgICAgIEd1aWQgPSBjdHguZ3VpZERlZmlu aXRpb24oKS5HdWlkDQo+IA0KPiAtICAgICAgICBjdHguTTJPYmogPSBDSWZyTWF0Y2gyKExpbmUs IEd1aWQpDQo+IA0KPiAtICAgICAgICBjdHguRXhwSW5mby5FeHBPcENvdW50ICs9IDENCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguTTJPYmoNCj4gDQo+IC0NCj4gDQo+IC0NCj4g DQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2Vy I3ZmckV4cHJlc3Npb25QYXJlbi4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VmZyRXhwcmVzc2lvblBh cmVuKHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJzZXIuVmZyRXhwcmVzc2lvblBhcmVuQ29udGV4 dCk6DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+ IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkN Cj4gVmZyU3ludGF4UGFyc2VyI3ZmckV4cHJlc3Npb25CdWlsZEluRnVuY3Rpb24uDQo+IA0KPiAt ICAgIGRlZiB2aXNpdFZmckV4cHJlc3Npb25CdWlsZEluRnVuY3Rpb24oc2VsZiwNCj4gY3R4OlZm clN5bnRheFBhcnNlci5WZnJFeHByZXNzaW9uQnVpbGRJbkZ1bmN0aW9uQ29udGV4dCk6DQo+IA0K PiAtICAgICAgICByZXR1cm4gc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+ IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4 UGFyc2VyI2R1cEV4cC4NCj4gDQo+IC0gICAgZGVmIHZpc2l0RHVwRXhwKHNlbGYsIGN0eDpWZnJT eW50YXhQYXJzZXIuRHVwRXhwQ29udGV4dCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBzZWxm LnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5l DQo+IA0KPiAtICAgICAgICBET2JqID0gQ0lmckR1cChMaW5lKQ0KPiANCj4gLSAgICAgICAgc2Vs Zi5fX1NhdmVPcEhkckNvbmQoRE9iai5HZXRIZWFkZXIoKSwgKGN0eC5FeHBJbmZvLkV4cE9wQ291 bnQgPT0NCj4gMCksIExpbmUpICMNCj4gDQo+IC0gICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291 bnQgKz0gMQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5FeHBJbmZvDQo+IA0K PiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5 IFZmclN5bnRheFBhcnNlciN2YXJlcXZhbEV4cC4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VmFyZXF2 YWxFeHAoc2VsZiwgY3R4OlZmclN5bnRheFBhcnNlci5WYXJlcXZhbEV4cENvbnRleHQpOg0KPiAN Cj4gLQ0KPiANCj4gLSAgICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5lDQo+IA0KPiAtICAgICAg ICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgUmV0dXJu Q29kZSA9IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9VTlNVUFBPUlRFRA0KPiANCj4gLSAgICAg ICAgVmFySWRTdHIgPSAndmFyJw0KPiANCj4gLSAgICAgICAgVmFySWRTdHIgKz0gc3RyKGN0eC5O dW1iZXIoMCkpDQo+IA0KPiAtICAgICAgICBWYXJTdG9yZUlkLCBSZXR1cm5Db2RlID0gZ0NWZnJE YXRhU3RvcmFnZS5HZXRWYXJTdG9yZUlkKFZhcklkU3RyKQ0KPiANCj4gLSAgICAgICAgaWYgUmV0 dXJuQ29kZSA9PSBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fVU5ERUZJTkVEOg0KPiANCj4gLSAg ICAgICAgICAgIHBhc3MNCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAg cGFzcw0KPiANCj4gLSAgICAgICAgUUlkLCBNYXNrLCBfID0gc2VsZi5fX0NWZnJRdWVzdGlvbkRC LkdldFF1ZXN0aW9uSWQoTm9uZSwgVmFySWRTdHIpDQo+IA0KPiAtICAgICAgICBDb25zdFZhbCA9 IHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKDEpKQ0KPiANCj4gLSAgICAgICAgaWYgY3R4LkVx dWFsKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBpZiBNYXNrID09IDA6DQo+IA0KPiAt ICAgICAgICAgICAgICAgIEVJVk9iaiA9IENJZnJFcUlkVmFsKExpbmUpDQo+IA0KPiAtICAgICAg ICAgICAgICAgIHNlbGYuX19TYXZlT3BIZHJDb25kKEVJVk9iai5HZXRIZWFkZXIoKSwNCj4gKGN0 eC5FeHBJbmZvLkV4cE9wQ291bnQgPT0gMCksIExpbmUpDQo+IA0KPiAtICAgICAgICAgICAgICAg IEVJVk9iai5TZXRRdWVzdGlvbklkKFFJZCwgVmFySWRTdHIsIExpbmUpDQo+IA0KPiAtICAgICAg ICAgICAgICAgIEVJVk9iai5TZXRWYWx1ZShDb25zdFZhbCkNCj4gDQo+IC0gICAgICAgICAgICAg ICAgY3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAxDQo+IA0KPiAtICAgICAgICAgICAgZWxzZToN Cj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5JZEVxVmFsRG9TcGVjaWFsKGN0eC5FeHBJbmZv LCBMaW5lLCBRSWQsIFZhcklkU3RyLCBNYXNrLA0KPiBDb25zdFZhbCwgRUZJX0NPTVBBUkVfVFlQ RS5FUVVBTCkNCj4gDQo+IC0gICAgICAgIGVsaWYgY3R4Lkxlc3NFcXVhbCgpICE9IE5vbmU6DQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5JZEVxVmFsRG9TcGVjaWFsKGN0eC5FeHBJbmZvLCBMaW5l LCBRSWQsIFZhcklkU3RyLCBNYXNrLCBDb25zdFZhbCwNCj4gRUZJX0NPTVBBUkVfVFlQRS5MRVNT X0VRVUFMKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgZWxpZiBjdHguTGVzcygpICE9IE5vbmU6 DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5JZEVxVmFsRG9TcGVjaWFsKGN0eC5FeHBJbmZvLCBM aW5lLCBRSWQsIFZhcklkU3RyLCBNYXNrLCBDb25zdFZhbCwNCj4gRUZJX0NPTVBBUkVfVFlQRS5M RVNTX1RIQU4pDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBlbGlmIGN0eC5HcmVhdGVyRXF1YWwo KSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuSWRFcVZhbERvU3BlY2lhbChjdHgu RXhwSW5mbywgTGluZSwgUUlkLCBWYXJJZFN0ciwgTWFzaywgQ29uc3RWYWwsDQo+IEVGSV9DT01Q QVJFX1RZUEUuR1JFQVRFUl9FUVVBTCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGVsaWYgY3R4 LkdyZWF0ZXIoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuSWRFcVZhbERvU3Bl Y2lhbChjdHguRXhwSW5mbywgTGluZSwgUUlkLCBWYXJJZFN0ciwgTWFzaywgQ29uc3RWYWwsDQo+ IEVGSV9DT01QQVJFX1RZUEUuR1JFQVRFUl9USEFOKQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4g LSAgICAgICAgcmV0dXJuIGN0eC5FeHBJbmZvDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAg IGRlZiBDb252ZXJ0SWRFeHByKHNlbGYsIEV4cEluZm8sIExpbmVObywgUUlkLCBWYXJJZFN0ciwg Qml0TWFzayk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBRUjFPYmogPSBDSWZyUXVlc3Rpb25S ZWYxKExpbmVObykNCj4gDQo+IC0gICAgICAgIFFSMU9iai5TZXRRdWVzdGlvbklkKFFJZCwgVmFy SWRTdHIsIExpbmVObykNCj4gDQo+IC0gICAgICAgIHNlbGYuX19TYXZlT3BIZHJDb25kKFFSMU9i ai5HZXRIZWFkZXIoKSwgKEV4cEluZm8uRXhwT3BDb3VudCA9PQ0KPiAwKSkNCj4gDQo+IC0gICAg ICAgIGlmIEJpdE1hc2sgIT0gMDoNCj4gDQo+IC0gICAgICAgICAgICBVMzJPYmogPSBDSWZyVWlu dDMyKExpbmVObykNCj4gDQo+IC0gICAgICAgICAgICBVMzJPYmouU2V0VmFsdWUoQml0TWFzaykN Cj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICBCV0FPYmogPSBDSWZyQml0V2lzZUFuZChMaW5l Tm8pDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgVThPYmogPSBDSWZyVWludDgoTGluZU5v KQ0KPiANCj4gLSAgICAgICAgICAgIGlmIEJpdE1hc2sgPT0gREFURV9ZRUFSX0JJVE1BU0s6DQo+ IA0KPiAtICAgICAgICAgICAgICAgIFU4T2JqLlNldFZhbHVlICgwKQ0KPiANCj4gLSAgICAgICAg ICAgIGVsaWYgQml0TWFzayA9PSBUSU1FX1NFQ09ORF9CSVRNQVNLOg0KPiANCj4gLSAgICAgICAg ICAgICAgICBVOE9iai5TZXRWYWx1ZSAoMHgxMCkNCj4gDQo+IC0gICAgICAgICAgICBlbGlmIEJp dE1hc2sgPT0gREFURV9EQVlfQklUTUFTSzoNCj4gDQo+IC0gICAgICAgICAgICAgICAgVThPYmou U2V0VmFsdWUgKDB4MTgpDQo+IA0KPiAtICAgICAgICAgICAgZWxpZiBCaXRNYXNrID09IFRJTUVf SE9VUl9CSVRNQVNLOg0KPiANCj4gLSAgICAgICAgICAgICAgICBVOE9iai5TZXRWYWx1ZSAoMCkN Cj4gDQo+IC0gICAgICAgICAgICBlbGlmIEJpdE1hc2sgPT0gVElNRV9NSU5VVEVfQklUTUFTSzoN Cj4gDQo+IC0gICAgICAgICAgICAgICAgVThPYmouU2V0VmFsdWUgKDB4OCkNCj4gDQo+IC0NCj4g DQo+IC0gICAgICAgICAgICBTUk9iaiA9IENJZnJTaGlmdFJpZ2h0KExpbmVObykNCj4gDQo+IC0N Cj4gDQo+IC0gICAgICAgIEV4cEluZm8uRXhwT3BDb3VudCArPSA0DQo+IA0KPiAtDQo+IA0KPiAt DQo+IA0KPiAtICAgIGRlZiBJZEVxVmFsRG9TcGVjaWFsKHNlbGYsIEV4cEluZm8sIExpbmVObywg UUlkLCBWYXJJZFN0ciwgQml0TWFzaywgQ29uc3RWYWwsDQo+IENvbXBhcmVUeXBlKToNCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgIHNlbGYuQ29udmVydElkRXhwcihFeHBJbmZvLCBMaW5lTm8sIFFJ ZCwgVmFySWRTdHIsIEJpdE1hc2spDQo+IA0KPiAtICAgICAgICBpZiBDb25zdFZhbCA+IDB4RkY6 DQo+IA0KPiAtICAgICAgICAgICAgVTE2T2JqID0gQ0lmclVpbnQxNihMaW5lTm8pDQo+IA0KPiAt ICAgICAgICAgICAgVTE2T2JqLlNldFZhbHVlKENvbnN0VmFsKQ0KPiANCj4gLSAgICAgICAgZWxz ZToNCj4gDQo+IC0gICAgICAgICAgICBVOE9iaiA9IENJZnJVaW50OChMaW5lTm8pDQo+IA0KPiAt ICAgICAgICAgICAgVThPYmouU2V0VmFsdWUoQ29uc3RWYWwpDQo+IA0KPiAtDQo+IA0KPiAtDQo+ IA0KPiAtICAgICAgICBpZiBDb21wYXJlVHlwZSA9PSBFRklfQ09NUEFSRV9UWVBFLkVRVUFMOg0K PiANCj4gLSAgICAgICAgICAgIEVPYmogPSBDSWZyRXF1YWwoTGluZU5vKQ0KPiANCj4gLQ0KPiAN Cj4gLSAgICAgICAgaWYgQ29tcGFyZVR5cGUgPT0gRUZJX0NPTVBBUkVfVFlQRS5MRVNTX0VRVUFM Og0KPiANCj4gLSAgICAgICAgICAgIExFT2JqID0gQ0lmckxlc3NFcXVhbChMaW5lTm8pDQo+IA0K PiAtDQo+IA0KPiAtICAgICAgICBpZiBDb21wYXJlVHlwZSA9PSBFRklfQ09NUEFSRV9UWVBFLkxF U1NfVEhBTjoNCj4gDQo+IC0gICAgICAgICAgICBMVE9iaiA9IENJZnJMZXNzVGhhbihMaW5lTm8p DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBDb21wYXJlVHlwZSA9PSBFRklfQ09NUEFSRV9U WVBFLkdSRUFURVJfRVFVQUw6DQo+IA0KPiAtICAgICAgICAgICAgR0VPYmogPSBDSWZyR3JlYXRl ckVxdWFsKExpbmVObykNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIENvbXBhcmVUeXBlID09 IEVGSV9DT01QQVJFX1RZUEUuR1JFQVRFUl9USEFOOg0KPiANCj4gLSAgICAgICAgICAgIEdUT2Jq ID0gQ0lmckdyZWF0ZXJUaGFuKExpbmVObykNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIEV4cElu Zm8uRXhwT3BDb3VudCArPSAyDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQg YSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNpZGVxdmFsRXhwLg0KPiAN Cj4gLSAgICBkZWYgdmlzaXRJZGVxdmFsRXhwKHNlbGYsIGN0eDpWZnJTeW50YXhQYXJzZXIuSWRl cXZhbEV4cENvbnRleHQpOg0KPiANCj4gLSAgICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5lDQo+ IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgTWFz ayA9IGN0eC52ZnJRdWVzdGlvbkRhdGFGaWVsZE5hbWUoKS5NYXNrDQo+IA0KPiAtICAgICAgICBR SWQgPSBjdHgudmZyUXVlc3Rpb25EYXRhRmllbGROYW1lKCkuUUlkDQo+IA0KPiAtICAgICAgICBW YXJJZFN0ciA9IGN0eC52ZnJRdWVzdGlvbkRhdGFGaWVsZE5hbWUoKS5WYXJJZFN0cg0KPiANCj4g LSAgICAgICAgTGluZU5vID0gY3R4LnZmclF1ZXN0aW9uRGF0YUZpZWxkTmFtZSgpLkxpbmUNCj4g DQo+IC0gICAgICAgIENvbnN0VmFsID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoKSkNCj4g DQo+IC0gICAgICAgIGlmIGN0eC5FcXVhbCgpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAg aWYgTWFzayA9PSAwOg0KPiANCj4gLSAgICAgICAgICAgICAgICBFSVZPYmogPSBDSWZyRXFJZFZh bChMaW5lKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLl9fU2F2ZU9wSGRyQ29uZChFSVZP YmouR2V0SGVhZGVyKCksDQo+IChjdHguRXhwSW5mby5FeHBPcENvdW50ID09IDApLCBMaW5lKQ0K PiANCj4gLSAgICAgICAgICAgICAgICBFSVZPYmouU2V0UXVlc3Rpb25JZChRSWQsIFZhcklkU3Ry LCBMaW5lTm8pDQo+IA0KPiAtICAgICAgICAgICAgICAgIEVJVk9iai5TZXRWYWx1ZShDb25zdFZh bCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgY3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAxDQo+ IA0KPiAtICAgICAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5JZEVx VmFsRG9TcGVjaWFsKGN0eC5FeHBJbmZvLCBMaW5lLCBRSWQsIFZhcklkU3RyLCBNYXNrLA0KPiBD b25zdFZhbCwgRUZJX0NPTVBBUkVfVFlQRS5FUVVBTCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAg IGVsaWYgY3R4Lkxlc3NFcXVhbCgpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5J ZEVxVmFsRG9TcGVjaWFsKGN0eC5FeHBJbmZvLCBMaW5lLCBRSWQsIFZhcklkU3RyLCBNYXNrLCBD b25zdFZhbCwNCj4gRUZJX0NPTVBBUkVfVFlQRS5MRVNTX0VRVUFMKQ0KPiANCj4gLQ0KPiANCj4g LSAgICAgICAgZWxpZiBjdHguTGVzcygpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgc2Vs Zi5JZEVxVmFsRG9TcGVjaWFsKGN0eC5FeHBJbmZvLCBMaW5lLCBRSWQsIFZhcklkU3RyLCBNYXNr LCBDb25zdFZhbCwNCj4gRUZJX0NPTVBBUkVfVFlQRS5MRVNTX1RIQU4pDQo+IA0KPiAtDQo+IA0K PiAtICAgICAgICBlbGlmIGN0eC5HcmVhdGVyRXF1YWwoKSAhPSBOb25lOg0KPiANCj4gLSAgICAg ICAgICAgIHNlbGYuSWRFcVZhbERvU3BlY2lhbChjdHguRXhwSW5mbywgTGluZSwgUUlkLCBWYXJJ ZFN0ciwgTWFzaywgQ29uc3RWYWwsDQo+IEVGSV9DT01QQVJFX1RZUEUuR1JFQVRFUl9FUVVBTCkN Cj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGVsaWYgY3R4LkdyZWF0ZXIoKSAhPSBOb25lOg0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYuSWRFcVZhbERvU3BlY2lhbChjdHguRXhwSW5mbywgTGluZSwg UUlkLCBWYXJJZFN0ciwgTWFzaywgQ29uc3RWYWwsDQo+IEVGSV9DT01QQVJFX1RZUEUuR1JFQVRF Ul9USEFOKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5FeHBJbmZvDQo+IA0K PiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBJZEVxSWREb1NwZWNpYWwoc2VsZiwgRXhwSW5m bywgTGluZU5vLCBRSWQxLCBWYXJJZFN0cjEsIE1hc2sxLCBRSWQyLA0KPiBWYXJJZFN0cjIsIE1h c2syLCBDb21wYXJlVHlwZSk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBzZWxmLkNvbnZlcnRJ ZEV4cHIoRXhwSW5mbywgTGluZU5vLCBRSWQxLCBWYXJJZFN0cjEsIE1hc2sxKQ0KPiANCj4gLSAg ICAgICAgc2VsZi5Db252ZXJ0SWRFeHByKEV4cEluZm8sIExpbmVObywgUUlkMiwgVmFySWRTdHIy LCBNYXNrMikNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIENvbXBhcmVUeXBlID09IEVGSV9D T01QQVJFX1RZUEUuRVFVQUw6DQo+IA0KPiAtICAgICAgICAgICAgRU9iaiA9IENJZnJFcXVhbChM aW5lTm8pDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBDb21wYXJlVHlwZSA9PSBFRklfQ09N UEFSRV9UWVBFLkxFU1NfRVFVQUw6DQo+IA0KPiAtICAgICAgICAgICAgTEVPYmogPSBDSWZyTGVz c0VxdWFsKExpbmVObykNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIENvbXBhcmVUeXBlID09 IEVGSV9DT01QQVJFX1RZUEUuTEVTU19USEFOOg0KPiANCj4gLSAgICAgICAgICAgIExUT2JqID0g Q0lmckxlc3NUaGFuKExpbmVObykNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIENvbXBhcmVU eXBlID09IEVGSV9DT01QQVJFX1RZUEUuR1JFQVRFUl9FUVVBTDoNCj4gDQo+IC0gICAgICAgICAg ICBHRU9iaiA9IENJZnJHcmVhdGVyRXF1YWwoTGluZU5vKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAg ICAgaWYgQ29tcGFyZVR5cGUgPT0gRUZJX0NPTVBBUkVfVFlQRS5HUkVBVEVSX1RIQU46DQo+IA0K PiAtICAgICAgICAgICAgR1RPYmogPSBDSWZyR3JlYXRlclRoYW4oTGluZU5vKQ0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgRXhwSW5mby5FeHBPcENvdW50ICs9IDENCj4gDQo+IC0NCj4gDQo+IC0N Cj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFy c2VyI2lkZXFpZEV4cC4NCj4gDQo+IC0gICAgZGVmIHZpc2l0SWRlcWlkRXhwKHNlbGYsIGN0eDpW ZnJTeW50YXhQYXJzZXIuSWRlcWlkRXhwQ29udGV4dCk6DQo+IA0KPiAtICAgICAgICBzZWxmLnZp c2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5lDQo+ IA0KPiAtICAgICAgICBNYXNrMSA9IGN0eC52ZnJRdWVzdGlvbkRhdGFGaWVsZE5hbWUoMCkuTWFz aw0KPiANCj4gLSAgICAgICAgUUlkMSA9IGN0eC52ZnJRdWVzdGlvbkRhdGFGaWVsZE5hbWUoMCku UUlkDQo+IA0KPiAtICAgICAgICBWYXJJZFN0cjEgPSBjdHgudmZyUXVlc3Rpb25EYXRhRmllbGRO YW1lKDApLlZhcklkU3RyDQo+IA0KPiAtICAgICAgICBMaW5lTm8xID0gY3R4LnZmclF1ZXN0aW9u RGF0YUZpZWxkTmFtZSgwKS5MaW5lDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBNYXNrMiA9IGN0 eC52ZnJRdWVzdGlvbkRhdGFGaWVsZE5hbWUoMSkuTWFzaw0KPiANCj4gLSAgICAgICAgUUlkMiA9 IGN0eC52ZnJRdWVzdGlvbkRhdGFGaWVsZE5hbWUoMSkuUUlkDQo+IA0KPiAtICAgICAgICBWYXJJ ZFN0cjIgPSBjdHgudmZyUXVlc3Rpb25EYXRhRmllbGROYW1lKDEpLlZhcklkU3RyDQo+IA0KPiAt ICAgICAgICBMaW5lTm8yID0gY3R4LnZmclF1ZXN0aW9uRGF0YUZpZWxkTmFtZSgxKS5MaW5lDQo+ IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBjdHguRXF1YWwoKSAhPSBOb25lOg0KPiANCj4gLSAg ICAgICAgICAgIGlmIE1hc2sxICYgTWFzazI6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYu SWRFcUlkRG9TcGVjaWFsKGN0eC5FeHBJbmZvLCBMaW5lLCBRSWQxLCBWYXJJZFN0cjEsIE1hc2sx LCBRSWQyLA0KPiBWYXJJZFN0cjIsIE1hc2syLCBFRklfQ09NUEFSRV9UWVBFLkVRVUFMKQ0KPiAN Cj4gLSAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgICAgIEVJSU9iaiA9IENJ ZnJFcUlkSWQoTGluZSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5fX1NhdmVPcEhkckNv bmQoRUlJT2JqLkdldEhlYWRlcigpLA0KPiAoY3R4LkV4cEluZm8uRXhwT3BDb3VudCA9PSAwKSwg TGluZSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgRUlJT2JqLlNldFF1ZXN0aW9uSWQxKFFJZDEs IFZhcklkU3RyMSwgTGluZU5vMSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgRUlJT2JqLlNldFF1 ZXN0aW9uSWQxKFFJZDIsIFZhcklkU3RyMiwgTGluZU5vMikNCj4gDQo+IC0gICAgICAgICAgICAg ICAgY3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAxDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBl bGlmIGN0eC5MZXNzRXF1YWwoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuSWRF cUlkRG9TcGVjaWFsKGN0eC5FeHBJbmZvLCBMaW5lLCBRSWQxLCBWYXJJZFN0cjEsIE1hc2sxLCBR SWQyLA0KPiBWYXJJZFN0cjIsIE1hc2syLCBFRklfQ09NUEFSRV9UWVBFLkxFU1NfRVFVQUwpDQo+ IA0KPiAtDQo+IA0KPiAtICAgICAgICBlbGlmIGN0eC5MZXNzKCkgIT0gTm9uZToNCj4gDQo+IC0g ICAgICAgICAgICBzZWxmLklkRXFJZERvU3BlY2lhbChjdHguRXhwSW5mbywgTGluZSwgUUlkMSwg VmFySWRTdHIxLCBNYXNrMSwgUUlkMiwNCj4gVmFySWRTdHIyLCBNYXNrMiwgRUZJX0NPTVBBUkVf VFlQRS5MRVNTX1RIQU4pDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBlbGlmIGN0eC5HcmVhdGVy RXF1YWwoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuSWRFcUlkRG9TcGVjaWFs KGN0eC5FeHBJbmZvLCBMaW5lLCBRSWQxLCBWYXJJZFN0cjEsIE1hc2sxLCBRSWQyLA0KPiBWYXJJ ZFN0cjIsIE1hc2syLCBFRklfQ09NUEFSRV9UWVBFLkdSRUFURVJfRVFVQUwpDQo+IA0KPiAtDQo+ IA0KPiAtICAgICAgICBlbGlmIGN0eC5HcmVhdGVyKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAg ICAgICBzZWxmLklkRXFJZERvU3BlY2lhbChjdHguRXhwSW5mbywgTGluZSwgUUlkMSwgVmFySWRT dHIxLCBNYXNrMSwgUUlkMiwNCj4gVmFySWRTdHIyLCBNYXNrMiwgRUZJX0NPTVBBUkVfVFlQRS5H UkVBVEVSX1RIQU4pDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4LkV4cEluZm8NCj4gDQo+IC0N Cj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIElkRXFMaXN0RG9TcGVjaWFsKHNlbGYsIEV4cEluZm8s IExpbmVObywgUUlkLCBWYXJJZFN0ciwgTWFzaywgTGlzdExlbiwNCj4gVmFsdWVMaXN0KToNCj4g DQo+IC0gICAgICAgIGlmIExpc3RMZW4gPT0gMDoNCj4gDQo+IC0gICAgICAgICAgICByZXR1cm4N Cj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYuSWRFcVZhbERvU3BlY2lhbChFeHBJbmZvLCBM aW5lTm8sIFFJZCwgVmFySWRTdHIsIE1hc2ssIFZhbHVlTGlzdFswXSwNCj4gRUZJX0NPTVBBUkVf VFlQRS5FUVVBTCkNCj4gDQo+IC0gICAgICAgIGZvciBpIGluIHJhbmdlKDEsIExpc3RMZW4pOg0K PiANCj4gLSAgICAgICAgICAgIHNlbGYuSWRFcVZhbERvU3BlY2lhbChFeHBJbmZvLCBMaW5lTm8s IFFJZCwgVmFySWRTdHIsIE1hc2ssIFZhbHVlTGlzdFtpXSwNCj4gRUZJX0NPTVBBUkVfVFlQRS5F UVVBTCkNCj4gDQo+IC0gICAgICAgICAgICBPT2JqID0gQ0lmck9yKExpbmVObykNCj4gDQo+IC0g ICAgICAgICAgICBFeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiAN Cj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIj aWRlcXZhbGxpc3RFeHAuDQo+IA0KPiAtICAgIGRlZiB2aXNpdElkZXF2YWxsaXN0RXhwKHNlbGYs IGN0eDpWZnJTeW50YXhQYXJzZXIuSWRlcXZhbGxpc3RFeHBDb250ZXh0KToNCj4gDQo+IC0gICAg ICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtICAgICAgICBMaW5lID0gY3R4LnN0 YXJ0LmxpbmUNCj4gDQo+IC0gICAgICAgIE1hc2sgPSBjdHgudmZyUXVlc3Rpb25EYXRhRmllbGRO YW1lKCkuTWFzaw0KPiANCj4gLSAgICAgICAgUUlkID0gY3R4LnZmclF1ZXN0aW9uRGF0YUZpZWxk TmFtZSgpLlFJZA0KPiANCj4gLSAgICAgICAgVmFySWRTdHIgPSBjdHgudmZyUXVlc3Rpb25EYXRh RmllbGROYW1lKCkuVmFySWRTdHINCj4gDQo+IC0gICAgICAgIExpbmVObyA9IGN0eC52ZnJRdWVz dGlvbkRhdGFGaWVsZE5hbWUoKS5MaW5lDQo+IA0KPiAtICAgICAgICBWYWx1ZUxpc3QgPSBbXQ0K PiANCj4gLSAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgbGVuKGN0eC5OdW1iZXIoKSkpOg0KPiAN Cj4gLSAgICAgICAgICAgIFZhbHVlTGlzdC5hcHBlbmQoc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1i ZXIoaSkpKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgTGlzdExlbiA9IGxlbihWYWx1ZUxpc3Qp DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBNYXNrICE9IDA6DQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi5JZEVxTGlzdERvU3BlY2lhbChjdHguRXhwSW5mbywgTGluZU5vLCBRSWQsIFZhcklk U3RyLCBNYXNrLCBMaXN0TGVuLA0KPiBWYWx1ZUxpc3QpDQo+IA0KPiAtICAgICAgICBlbHNlOg0K PiANCj4gLSAgICAgICAgICAgIEVJTE9iaiA9IENJZnJFcUlkTGlzdChMaW5lLCBMaXN0TGVuKQ0K PiANCj4gLSAgICAgICAgICAgIGlmIFFJZCAhPSBFRklfUVVFU1RJT05fSURfSU5WQUxJRDoNCj4g DQo+IC0gICAgICAgICAgICAgICAgRUlMT2JqLlNldFF1ZXN0aW9uSWQoUUlkLCBWYXJJZFN0ciwg TGluZU5vKQ0KPiANCj4gLSAgICAgICAgICAgIEVJTE9iai5TZXRMaXN0TGVuZ3RoKExpc3RMZW4p DQo+IA0KPiAtICAgICAgICAgICAgRUlMT2JqLlNldFZhbHVlTGlzdChWYWx1ZUxpc3QpDQo+IA0K PiAtICAgICAgICAgICAgc2VsZi5fX1NhdmVPcEhkckNvbmQoRUlMT2JqLkdldEhlYWRlcigpLCAo Y3R4LkV4cEluZm8uRXhwT3BDb3VudA0KPiA9PSAwKSwgTGluZSkNCj4gDQo+IC0gICAgICAgICAg ICBpZiBRSWQgPT0gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQ6DQo+IA0KPiAtICAgICAgICAgICAg ICAgIEVJTE9iai5TZXRRdWVzdGlvbklkKFFJZCwgVmFySWRTdHIsIExpbmVObykNCj4gDQo+IC0g ICAgICAgICAgICBjdHguRXhwSW5mby5FeHBPcENvdW50ICs9IDENCj4gDQo+IC0gICAgICAgIHJl dHVybiBjdHguRXhwSW5mbw0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJl ZSBwcm9kdWNlZCBieQ0KPiBWZnJTeW50YXhQYXJzZXIjdmZyUXVlc3Rpb25EYXRhRmllbGROYW1l UnVsZTEuDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmclF1ZXN0aW9uRGF0YUZpZWxkTmFtZVJ1bGUx KHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJzZXIuVmZyUXVlc3Rpb25EYXRhRmllbGROYW1lUnVs ZTFDb250ZXh0KToNCj4gDQo+IC0gICAgICAgIGN0eC5MaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4g DQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtICAgICAgICBjdHgu VmFySWRTdHIgKz0gY3R4LlNOMS50ZXh0DQo+IA0KPiAtICAgICAgICBjdHguVmFySWRTdHIgKz0g J1snDQo+IA0KPiAtICAgICAgICBjdHguVmFySWRTdHIgKz0gY3R4LkkudGV4dA0KPiANCj4gLSAg ICAgICAgY3R4LlZhcklkU3RyICs9ICddJw0KPiANCj4gLSAgICAgICAgY3R4LlFJZCwgY3R4Lk1h c2ssIF8gPSBzZWxmLl9fQ1ZmclF1ZXN0aW9uREIuR2V0UXVlc3Rpb25JZChOb25lLA0KPiBjdHgu VmFySWRTdHIpDQo+IA0KPiAtICAgICAgICBpZiBzZWxmLl9fQ29uc3RhbnRPbmx5SW5FeHByZXNz aW9uOg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29k ZS5WRlJfUkVUVVJOX0NPTlNUQU5UX09OTFksDQo+IGN0eC5TTjEubGluZSkNCj4gDQo+IC0gICAg ICAgIHJldHVybiBjdHguUUlkLCBjdHguTWFzaywgY3R4LlZhcklkU3RyDQo+IA0KPiAtDQo+IA0K PiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5DQo+IFZmclN5 bnRheFBhcnNlciN2ZnJRdWVzdGlvbkRhdGFGaWVsZE5hbWVSdWxlMi4NCj4gDQo+IC0gICAgZGVm IHZpc2l0VmZyUXVlc3Rpb25EYXRhRmllbGROYW1lUnVsZTIoc2VsZiwNCj4gY3R4OlZmclN5bnRh eFBhcnNlci5WZnJRdWVzdGlvbkRhdGFGaWVsZE5hbWVSdWxlMkNvbnRleHQpOg0KPiANCj4gLSAg ICAgICAgY3R4LkxpbmUgPSBjdHguc3RhcnQubGluZQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNp dENoaWxkcmVuKGN0eCkNCj4gDQo+IC0gICAgICAgIGN0eC5WYXJJZFN0ciArPSBjdHguU04yLnRl eHQNCj4gDQo+IC0gICAgICAgIGZvciBpIGluIHJhbmdlKDAsIGxlbihjdHguYXJyYXlOYW1lKCkp KToNCj4gDQo+IC0gICAgICAgICAgICBjdHguVmFySWRTdHIgKz0gJy4nDQo+IA0KPiAtICAgICAg ICAgICAgaWYgc2VsZi5fX0NvbnN0YW50T25seUluRXhwcmVzc2lvbjoNCj4gDQo+IC0gICAgICAg ICAgICAgICAgc2VsZi5fX0Vycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fQ09O U1RBTlRfT05MWSwNCj4gY3R4LlNOMi5saW5lKQ0KPiANCj4gLSAgICAgICAgICAgIGN0eC5WYXJJ ZFN0ciArPSBjdHguYXJyYXlOYW1lKGkpLlN1YlN0cloNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAg IGN0eC5RSWQsIGN0eC5NYXNrLCBfID0gc2VsZi5fX0NWZnJRdWVzdGlvbkRCLkdldFF1ZXN0aW9u SWQoTm9uZSwNCj4gY3R4LlZhcklkU3RyKQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5RSWQs IGN0eC5NYXNrLCBjdHguVmFySWRTdHINCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBW aXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI2FycmF5TmFtZS4N Cj4gDQo+IC0gICAgZGVmIHZpc2l0QXJyYXlOYW1lKHNlbGYsIGN0eDpWZnJTeW50YXhQYXJzZXIu QXJyYXlOYW1lQ29udGV4dCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hp bGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgY3R4LlN1YlN0ciArPSBzZWxmLl9fVHJhbnNJZChj dHguU3RyaW5nSWRlbnRpZmllcigpKQ0KPiANCj4gLSAgICAgICAgY3R4LlN1YlN0clogKz0gc2Vs Zi5fX1RyYW5zSWQoY3R4LlN0cmluZ0lkZW50aWZpZXIoKSkNCj4gDQo+IC0gICAgICAgIGlmIGN0 eC5OICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgSWR4ID0gc2VsZi5fX1RyYW5zTnVtKGN0 eC5OLnRleHQpDQo+IA0KPiAtICAgICAgICAgICAgaWYgSWR4ID4gMDoNCj4gDQo+IC0gICAgICAg ICAgICAgICAgY3R4LlN1YlN0ciArPSAnWycNCj4gDQo+IC0gICAgICAgICAgICAgICAgY3R4LlN1 YlN0ciArPSBzdHIoSWR4KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBjdHguU3ViU3RyICs9ICdd Jw0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgIGN0eC5TdWJTdHJaICs9ICdbJw0KPiANCj4g LSAgICAgICAgICAgIGN0eC5TdWJTdHJaICs9IHN0cihJZHgpDQo+IA0KPiAtICAgICAgICAgICAg Y3R4LlN1YlN0clogKz0gJ10nDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4LlN1 YlN0ciwgY3R4LlN1YlN0cloNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBh IHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3F1ZXN0aW9ucmVmMUV4cC4N Cj4gDQo+IC0gICAgZGVmIHZpc2l0UXVlc3Rpb25yZWYxRXhwKHNlbGYsDQo+IGN0eDpWZnJTeW50 YXhQYXJzZXIuUXVlc3Rpb25yZWYxRXhwQ29udGV4dCk6DQo+IA0KPiAtICAgICAgICBMaW5lID0g Y3R4LnN0YXJ0LmxpbmUgIw0KPiANCj4gLSAgICAgICAgUU5hbWUgPSBOb25lICMNCj4gDQo+IC0g ICAgICAgIFFJZCA9IEVGSV9RVUVTVElPTl9JRF9JTlZBTElEDQo+IA0KPiAtICAgICAgICBzZWxm LnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgaWYgY3R4LlN0cmluZ0lkZW50aWZp ZXIoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIFFOYW1lID0gc2VsZi5fX1RyYW5zSWQo Y3R4LlN0cmluZ0lkZW50aWZpZXIoKSkNCj4gDQo+IC0gICAgICAgICAgICBRSWQsIF8gLCBfID0g c2VsZi5fX0NWZnJRdWVzdGlvbkRCLkdldFF1ZXN0aW9uSWQoUU5hbWUpDQo+IA0KPiAtDQo+IA0K PiAtICAgICAgICBlbGlmIGN0eC5OdW1iZXIoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAg IFFJZCA9IHNlbGYuX19UcmFuc051bShjdHguTnVtYmVyKCkpDQo+IA0KPiAtDQo+IA0KPiAtICAg ICAgICBRUjFPYmogPSBDSWZyUXVlc3Rpb25SZWYxKExpbmUpDQo+IA0KPiAtICAgICAgICBzZWxm Ll9fU2F2ZU9wSGRyQ29uZChRUjFPYmouR2V0SGVhZGVyKCksIChjdHguRXhwSW5mby5FeHBPcENv dW50DQo+ID09IDApLCBMaW5lKQ0KPiANCj4gLSAgICAgICAgUVIxT2JqLlNldFF1ZXN0aW9uSWQo UUlkLCBRTmFtZSwgTGluZSkNCj4gDQo+IC0gICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQg Kz0gMQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5FeHBJbmZvDQo+IA0KPiAt DQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZm clN5bnRheFBhcnNlciNydWxlcmVmRXhwLg0KPiANCj4gLSAgICBkZWYgdmlzaXRSdWxlcmVmRXhw KHNlbGYsIGN0eDpWZnJTeW50YXhQYXJzZXIuUnVsZXJlZkV4cENvbnRleHQpOg0KPiANCj4gLSAg ICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5lDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hp bGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgUlJPYmogPSBDSWZyUnVsZVJlZihMaW5lKQ0KPiAN Cj4gLSAgICAgICAgc2VsZi5fX1NhdmVPcEhkckNvbmQoUlJPYmouR2V0SGVhZGVyKCksIChjdHgu RXhwSW5mby5FeHBPcENvdW50ID09DQo+IDApLCBMaW5lKQ0KPiANCj4gLSAgICAgICAgUnVsZUlk ID0NCj4gc2VsZi5fX0NWZnJSdWxlc0RCLkdldFJ1bGVJZChzZWxmLl9fVHJhbnNJZChjdHguU3Ry aW5nSWRlbnRpZmllcigpKSkNCj4gDQo+IC0gICAgICAgIFJST2JqLlNldFJ1bGVJZChSdWxlSWQp DQo+IA0KPiAtICAgICAgICBjdHguRXhwSW5mby5FeHBPcENvdW50ICs9IDENCj4gDQo+IC0NCj4g DQo+IC0gICAgICAgIHJldHVybiBjdHguRXhwSW5mbw0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4g LSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjc3Ry aW5ncmVmMUV4cC4NCj4gDQo+IC0gICAgZGVmIHZpc2l0U3RyaW5ncmVmMUV4cChzZWxmLCBjdHg6 VmZyU3ludGF4UGFyc2VyLlN0cmluZ3JlZjFFeHBDb250ZXh0KToNCj4gDQo+IC0gICAgICAgIExp bmUgPSBjdHguc3RhcnQubGluZQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0 eCkNCj4gDQo+IC0gICAgICAgIFJlZlN0cmluZ0lkID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1i ZXIoKSkNCj4gDQo+IC0gICAgICAgIFNSMU9iaiA9IENJZnJTdHJpbmdSZWYxKExpbmUpDQo+IA0K PiAtICAgICAgICBzZWxmLl9fU2F2ZU9wSGRyQ29uZChTUjFPYmouR2V0SGVhZGVyKCksIChjdHgu RXhwSW5mby5FeHBPcENvdW50DQo+ID09IDApLCBMaW5lKQ0KPiANCj4gLSAgICAgICAgU1IxT2Jq LlNldFN0cmluZ0lkKFJlZlN0cmluZ0lkKQ0KPiANCj4gLSAgICAgICAgY3R4LkV4cEluZm8uRXhw T3BDb3VudCArPSAxDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4LkV4cEluZm8N Cj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVj ZWQgYnkgVmZyU3ludGF4UGFyc2VyI3B1c2h0aGlzRXhwLg0KPiANCj4gLSAgICBkZWYgdmlzaXRQ dXNodGhpc0V4cChzZWxmLCBjdHg6VmZyU3ludGF4UGFyc2VyLlB1c2h0aGlzRXhwQ29udGV4dCk6 DQo+IA0KPiAtICAgICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gDQo+IC0gICAgICAgIHNl bGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtICAgICAgICBUT2JqID0gQ0lmclRoaXMoTGlu ZSkNCj4gDQo+IC0gICAgICAgIHNlbGYuX19TYXZlT3BIZHJDb25kKFRPYmouR2V0SGVhZGVyKCks IChjdHguRXhwSW5mby5FeHBPcENvdW50ID09DQo+IDApLCBMaW5lKQ0KPiANCj4gLSAgICAgICAg Y3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAxDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1 cm4gY3R4LkV4cEluZm8NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUg cHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3NlY3VyaXR5RXhwLg0KPiANCj4gLSAgICBkZWYg dmlzaXRTZWN1cml0eUV4cChzZWxmLCBjdHg6VmZyU3ludGF4UGFyc2VyLlNlY3VyaXR5RXhwQ29u dGV4dCk6DQo+IA0KPiAtICAgICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gDQo+IC0gICAg ICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtICAgICAgICBTT2JqID0gQ0lmclNl Y3VyaXR5KExpbmUpDQo+IA0KPiAtICAgICAgICBzZWxmLl9fU2F2ZU9wSGRyQ29uZChTT2JqLkdl dEhlYWRlcigpLCAoY3R4LkV4cEluZm8uRXhwT3BDb3VudCA9PQ0KPiAwKSwgTGluZSkNCj4gDQo+ IC0gICAgICAgIFNPYmouU2V0UGVybWlzc2lvbnMoY3R4Lmd1aWREZWZpbml0aW9uKCkuR3VpZCkN Cj4gDQo+IC0gICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0KPiANCj4gLQ0KPiAN Cj4gLSAgICAgICAgcmV0dXJuIGN0eC5FeHBJbmZvDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlz aXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNudW1lcmljVmFyU3Rv cmVUeXBlLg0KPiANCj4gLSAgICBkZWYgdmlzaXROdW1lcmljVmFyU3RvcmVUeXBlKHNlbGYsDQo+ IGN0eDpWZnJTeW50YXhQYXJzZXIuTnVtZXJpY1ZhclN0b3JlVHlwZUNvbnRleHQpOg0KPiANCj4g LSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0gICAgICAgIGlmIGN0eC5O dW1lcmljU2l6ZU9uZSgpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4LlZhclR5cGUg PSBFRklfSUZSX05VTUVSSUNfU0laRV8xDQo+IA0KPiAtICAgICAgICBpZiBjdHguTnVtZXJpY1Np emVUd28oKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5WYXJUeXBlID0gRUZJX0lG Ul9OVU1FUklDX1NJWkVfMg0KPiANCj4gLSAgICAgICAgaWYgY3R4Lk51bWVyaWNTaXplRm91cigp ICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4LlZhclR5cGUgPSBFRklfSUZSX05VTUVS SUNfU0laRV80DQo+IA0KPiAtICAgICAgICBpZiBjdHguTnVtZXJpY1NpemVFaWdodCgpICE9IE5v bmU6DQo+IA0KPiAtICAgICAgICAgICAgY3R4LlZhclR5cGUgPSBFRklfSUZSX05VTUVSSUNfU0la RV84DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4LlZhclR5cGUNCj4gDQo+IC0N Cj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZy U3ludGF4UGFyc2VyI2dldEV4cC4NCj4gDQo+IC0gICAgZGVmIHZpc2l0R2V0RXhwKHNlbGYsIGN0 eDpWZnJTeW50YXhQYXJzZXIuR2V0RXhwQ29udGV4dCk6DQo+IA0KPiAtICAgICAgICBMaW5lID0g Y3R4LnN0YXJ0LmxpbmUNCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ IA0KPiAtICAgICAgICBpZiBjdHguQmFzZUluZm8uVmFyU3RvcmVJZCA9PSAwOg0KPiANCj4gLSAg ICAgICAgICAgICMgc3VwcG9ydCBEYXRlL1RpbWUgcXVlc3Rpb24NCj4gDQo+IC0gICAgICAgICAg ICBWYXJJZFN0ciA9IGN0eC52ZnJTdG9yYWdlVmFySWQoKS5WYXJJZFN0cg0KPiANCj4gLSAgICAg ICAgICAgIFFJZCwgTWFzaywgUVR5cGUgPSBzZWxmLl9fQ1ZmclF1ZXN0aW9uREIuR2V0UXVlc3Rp b25JZChOb25lLA0KPiBWYXJJZFN0ciwgRUZJX1FVRVNJT05fVFlQRS5RVUVTVElPTl9OT1JNQUwp DQo+IA0KPiAtICAgICAgICAgICAgaWYgKFFJZCA9PSBFRklfUVVFU1RJT05fSURfSU5WQUxJRCkg b3IgKE1hc2sgPT0gMCkgb3IgKFFUeXBlID09DQo+IEVGSV9RVUVTSU9OX1RZUEUuUVVFU1RJT05f Tk9STUFMKToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5fX0Vycm9ySGFuZGxlcihWZnJS ZXR1cm5Db2RlLlZGUl9SRVRVUk5fVU5TVVBQT1JURUQsDQo+IExpbmUsICJHZXQvU2V0IG9wY29k ZSBjYW4ndCBnZXQgdGhlIGVub3VnaCB2YXJzdG9yZSBpbmZvcm1hdGlvbiIpDQo+IA0KPiAtICAg ICAgICAgICAgaWYgUVR5cGUgPT0gRUZJX1FVRVNJT05fVFlQRS5RVUVTVElPTl9EQVRFOg0KPiAN Cj4gLSAgICAgICAgICAgICAgICBjdHguQmFzZUluZm8uVmFyVHlwZSA9IEVGSV9JRlJfVFlQRV9E QVRFDQo+IA0KPiAtICAgICAgICAgICAgZWxpZiBRVHlwZSA9PSBFRklfUVVFU0lPTl9UWVBFLlFV RVNUSU9OX1RJTUU6DQo+IA0KPiAtICAgICAgICAgICAgICAgIGN0eC5CYXNlSW5mby5WYXJUeXBl ID0gRUZJX0lGUl9UWVBFX1RJTUUNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICBpZiBNYXNr ID09IERBVEVfWUVBUl9CSVRNQVNLOg0KPiANCj4gLSAgICAgICAgICAgICAgICBjdHguQmFzZUlu Zm8uVmFyT2Zmc2V0ID0gMA0KPiANCj4gLSAgICAgICAgICAgIGVsaWYgTWFzayA9PSBEQVRFX0RB WV9CSVRNQVNLOg0KPiANCj4gLSAgICAgICAgICAgICAgICBjdHguQmFzZUluZm8uVmFyT2Zmc2V0 ID0gMw0KPiANCj4gLSAgICAgICAgICAgIGVsaWYgTWFzayA9PSBUSU1FX0hPVVJfQklUTUFTSzoN Cj4gDQo+IC0gICAgICAgICAgICAgICAgY3R4LkJhc2VJbmZvLlZhck9mZnNldCA9IDANCj4gDQo+ IC0gICAgICAgICAgICBlbGlmIE1hc2sgPT0gVElNRV9NSU5VVEVfQklUTUFTSzoNCj4gDQo+IC0g ICAgICAgICAgICAgICAgY3R4LkJhc2VJbmZvLlZhck9mZnNldCA9IDENCj4gDQo+IC0gICAgICAg ICAgICBlbGlmIE1hc2sgPT0gVElNRV9TRUNPTkRfQklUTUFTSzoNCj4gDQo+IC0gICAgICAgICAg ICAgICAgY3R4LkJhc2VJbmZvLlZhck9mZnNldCA9IDINCj4gDQo+IC0gICAgICAgICAgICBlbHNl Og0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLl9fRXJyb3JIYW5kbGVyKFZmclJldHVybkNv ZGUuVkZSX1JFVFVSTl9VTlNVUFBPUlRFRCwNCj4gTGluZSwgIkdldC9TZXQgb3Bjb2RlIGNhbid0 IGdldCB0aGUgZW5vdWdoIHZhcnN0b3JlIGluZm9ybWF0aW9uIikNCj4gDQo+IC0NCj4gDQo+IC0g ICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgVmFyVHlwZSA9IEVGSV9JRlJfVFlQRV9V TkRFRklORUQNCj4gDQo+IC0gICAgICAgICAgICBpZiBjdHguRkxBR1MoKSAhPSBOb25lOg0KPiAN Cj4gLSAgICAgICAgICAgICAgICBWYXJUeXBlID0gY3R4Lm51bWVyaWNWYXJTdG9yZVR5cGUoKS5W YXJUeXBlDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgaWYgKGdDVmZyRGF0YVN0b3JhZ2Uu R2V0VmFyU3RvcmVUeXBlKGN0eC5CYXNlSW5mby5WYXJTdG9yZUlkKSA9PQ0KPiBFRklfVkZSX1ZB UlNUT1JFX1RZUEUuRUZJX1ZGUl9WQVJTVE9SRV9OQU1FKSBhbmQgKFZhclR5cGUgPT0NCj4gRUZJ X0lGUl9UWVBFX1VOREVGSU5FRCk6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuX19FcnJv ckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1VOU1VQUE9SVEVELA0KPiBMaW5lLCAi R2V0L1NldCBvcGNvZGUgZG9uJ3Qgc3VwcG9ydCBuYW1lIHN0cmluZyIpDQo+IA0KPiAtDQo+IA0K PiAtICAgICAgICAgICAgaWYgVmFyVHlwZSAhPSBFRklfSUZSX1RZUEVfVU5ERUZJTkVEOg0KPiAN Cj4gLSAgICAgICAgICAgICAgICBjdHguQmFzZUluZm8uVmFyVHlwZSA9IFZhclR5cGUNCj4gDQo+ IC0gICAgICAgICAgICAgICAgU2l6ZSwgUmV0dXJuQ29kZSA9DQo+IGdDVmZyVmFyRGF0YVR5cGVE Qi5HZXREYXRhVHlwZVNpemVCeURhdGFUeXBlKGN0eC5CYXNlSW5mby5WYXJUeXBlKQ0KPiANCj4g LSAgICAgICAgICAgICAgICBzZWxmLl9fRXJyb3JIYW5kbGVyKFJldHVybkNvZGUsIExpbmUsICJH ZXQvU2V0IG9wY29kZSBjYW4ndCBnZXQgdmFyDQo+IHR5cGUgc2l6ZSIpDQo+IA0KPiAtICAgICAg ICAgICAgICAgIGN0eC5CYXNlSW5mby5WYXJUb3RhbFNpemUgPSBTaXplDQo+IA0KPiAtDQo+IA0K PiAtICAgICAgICAgICAgU2l6ZSwgUmV0dXJuQ29kZSA9DQo+IGdDVmZyVmFyRGF0YVR5cGVEQi5H ZXREYXRhVHlwZVNpemVCeURhdGFUeXBlKGN0eC5CYXNlSW5mby5WYXJUeXBlKQ0KPiANCj4gLSAg ICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwgTGluZSwgIkdldC9TZXQg b3Bjb2RlIGNhbid0IGdldCB2YXINCj4gdHlwZSBzaXplIikNCj4gDQo+IC0NCj4gDQo+IC0gICAg ICAgICAgICBpZiBTaXplICE9IGN0eC5CYXNlSW5mby5WYXJUb3RhbFNpemU6DQo+IA0KPiAtICAg ICAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJO X1VOU1VQUE9SVEVELA0KPiBMaW5lLCAiR2V0L1NldCBvcGNvZGUgZG9uJ3Qgc3VwcG9ydCBkYXRh IGFycmF5IikNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGN0eC5HT2JqID0gQ0lmckdldChMaW5l KQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX1NhdmVPcEhkckNvbmQoY3R4LkdPYmouR2V0SGVhZGVy KCksIChjdHguRXhwSW5mby5FeHBPcENvdW50DQo+ID09IDApLCBMaW5lKQ0KPiANCj4gLSAgICAg ICAgY3R4LkdPYmouU2V0VmFySW5mbyhjdHguQmFzZUluZm8pDQo+IA0KPiAtICAgICAgICBjdHgu RXhwSW5mby5FeHBPcENvdW50ICs9IDENCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBj dHguR09iag0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJl ZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyRXhwcmVzc2lvbkNvbnN0YW50Lg0KPiAN Cj4gLSAgICBkZWYgdmlzaXRWZnJFeHByZXNzaW9uQ29uc3RhbnQoc2VsZiwNCj4gY3R4OlZmclN5 bnRheFBhcnNlci5WZnJFeHByZXNzaW9uQ29uc3RhbnRDb250ZXh0KToNCj4gDQo+IC0gICAgICAg IExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVu KGN0eCkNCj4gDQo+IC0gICAgICAgIGlmIGN0eC5UcnVlU3ltYm9sKCkgIT0gTm9uZToNCj4gDQo+ IC0gICAgICAgICAgICBUT2JqID0gQ0lmclRydWUoTGluZSkNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLl9fU2F2ZU9wSGRyQ29uZChUT2JqLkdldEhlYWRlcigpLCAoY3R4LkV4cEluZm8uRXhwT3BD b3VudA0KPiA9PSAwKSwgTGluZSkNCj4gDQo+IC0gICAgICAgICAgICBjdHguRXhwSW5mby5FeHBP cENvdW50ICs9IDENCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIGN0eC5GYWxzZVN5bWJvbCgp ICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgRk9iaiA9IENJZnJGYWxzZShMaW5lKQ0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYuX19TYXZlT3BIZHJDb25kKEZPYmouR2V0SGVhZGVyKCksIChj dHguRXhwSW5mby5FeHBPcENvdW50DQo+ID09IDApLCBMaW5lKQ0KPiANCj4gLSAgICAgICAgICAg IGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYg Y3R4Lk9uZSgpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgT09iaiA9IENJZnJPbmUoTGlu ZSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fU2F2ZU9wSGRyQ29uZChPT2JqLkdldEhlYWRl cigpLCAoY3R4LkV4cEluZm8uRXhwT3BDb3VudA0KPiA9PSAwKSwgTGluZSkNCj4gDQo+IC0gICAg ICAgICAgICBjdHguRXhwSW5mby5FeHBPcENvdW50ICs9IDENCj4gDQo+IC0NCj4gDQo+IC0gICAg ICAgIGlmIGN0eC5PbmVzKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBPT2JqID0gQ0lm ck9uZXMoTGluZSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fU2F2ZU9wSGRyQ29uZChPT2Jq LkdldEhlYWRlcigpLCAoY3R4LkV4cEluZm8uRXhwT3BDb3VudA0KPiA9PSAwKSwgTGluZSkNCj4g DQo+IC0gICAgICAgICAgICBjdHguRXhwSW5mby5FeHBPcENvdW50ICs9IDENCj4gDQo+IC0NCj4g DQo+IC0gICAgICAgIGlmIGN0eC5aZXJvKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBa T2JqID0gQ0lmclplcm8oTGluZSkNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fU2F2ZU9wSGRy Q29uZChaT2JqLkdldEhlYWRlcigpLCAoY3R4LkV4cEluZm8uRXhwT3BDb3VudA0KPiA9PSAwKSwg TGluZSkNCj4gDQo+IC0gICAgICAgICAgICBjdHguRXhwSW5mby5FeHBPcENvdW50ICs9IDENCj4g DQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIGN0eC5VbmRlZmluZWQoKSAhPSBOb25lOg0KPiANCj4g LSAgICAgICAgICAgIFVPYmogPSBDSWZyVW5kZWZpbmVkKExpbmUpDQo+IA0KPiAtICAgICAgICAg ICAgc2VsZi5fX1NhdmVPcEhkckNvbmQoVU9iai5HZXRIZWFkZXIoKSwgKGN0eC5FeHBJbmZvLkV4 cE9wQ291bnQNCj4gPT0gMCksIExpbmUpDQo+IA0KPiAtICAgICAgICAgICAgY3R4LkV4cEluZm8u RXhwT3BDb3VudCArPSAxDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBjdHguVmVyc2lvbigp ICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgVk9iaiA9IENJZnJWZXJzaW9uKExpbmUpDQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5fX1NhdmVPcEhkckNvbmQoVk9iai5HZXRIZWFkZXIoKSwg KGN0eC5FeHBJbmZvLkV4cE9wQ291bnQNCj4gPT0gMCksIExpbmUpDQo+IA0KPiAtICAgICAgICAg ICAgY3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAxDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBp ZiBjdHguTnVtYmVyKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBVNjRPYmogPSBDSWZy VWludDY0KExpbmUpDQo+IA0KPiAtICAgICAgICAgICAgVTY0T2JqLlNldFZhbHVlKHNlbGYuX19U cmFuc051bShjdHguTnVtYmVyKCkpKQ0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19TYXZlT3BI ZHJDb25kKFU2NE9iai5HZXRIZWFkZXIoKSwgKGN0eC5FeHBJbmZvLkV4cE9wQ291bnQNCj4gPT0g MCksIExpbmUpDQo+IA0KPiAtICAgICAgICAgICAgY3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAx DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4LkV4cEluZm8NCj4gDQo+IC0NCj4g DQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3lu dGF4UGFyc2VyI3ZmckV4cHJlc3Npb25VbmFyeU9wLg0KPiANCj4gLSAgICBkZWYgdmlzaXRWZnJF eHByZXNzaW9uVW5hcnlPcChzZWxmLA0KPiBjdHg6VmZyU3ludGF4UGFyc2VyLlZmckV4cHJlc3Np b25VbmFyeU9wQ29udGV4dCk6DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi52aXNpdENoaWxk cmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRy ZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI2xlbmd0aEV4cC4NCj4gDQo+IC0gICAgZGVm IHZpc2l0TGVuZ3RoRXhwKHNlbGYsIGN0eDpWZnJTeW50YXhQYXJzZXIuTGVuZ3RoRXhwQ29udGV4 dCk6DQo+IA0KPiAtICAgICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gDQo+IC0gICAgICAg IHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtICAgICAgICBjdHguTE9iaiA9IENJZnJM ZW5ndGgoTGluZSkNCj4gDQo+IC0gICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0K PiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5MT2JqDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlz aXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNiaXR3aXNlbm90RXhw Lg0KPiANCj4gLSAgICBkZWYgdmlzaXRCaXR3aXNlbm90RXhwKHNlbGYsIGN0eDpWZnJTeW50YXhQ YXJzZXIuQml0d2lzZW5vdEV4cENvbnRleHQpOg0KPiANCj4gLSAgICAgICAgTGluZSA9IGN0eC5z dGFydC5saW5lDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4g LSAgICAgICAgY3R4LkJXTk9iaiA9IENJZnJCaXRXaXNlTm90KExpbmUpDQo+IA0KPiAtICAgICAg ICBjdHguRXhwSW5mby5FeHBPcENvdW50ICs9IDENCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHgu QldOT2JqDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVl IHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNxdWVzdGlvbjIzcmVmRXhwLg0KPiANCj4gLSAg ICBkZWYgdmlzaXRRdWVzdGlvbjIzcmVmRXhwKHNlbGYsDQo+IGN0eDpWZnJTeW50YXhQYXJzZXIu UXVlc3Rpb24yM3JlZkV4cENvbnRleHQpOg0KPiANCj4gLSAgICAgICAgTGluZSA9IGN0eC5zdGFy dC5saW5lDQo+IA0KPiAtICAgICAgICBUeXBlID0gMHgxDQo+IA0KPiAtICAgICAgICBEZXZpY2VQ YXRoID0gRUZJX1NUUklOR19JRF9JTlZBTElEDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hp bGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgaWYgY3R4LkRldmljZVBhdGgoKSAhPSBOb25lOg0K PiANCj4gLSAgICAgICAgICAgIFR5cGUgPSAweDINCj4gDQo+IC0gICAgICAgICAgICBEZXZpY2VQ YXRoID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoKSkNCj4gDQo+IC0NCj4gDQo+IC0gICAg ICAgIGlmIGN0eC5VdWlkKCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBUeXBlID0gMHgz DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBUeXBlID09IDB4MToNCj4gDQo+IC0gICAgICAg ICAgICBRUjJPYmogPSBDSWZyUXVlc3Rpb25SZWYyKExpbmUpDQo+IA0KPiAtICAgICAgICAgICAg c2VsZi5fX1NhdmVPcEhkckNvbmQoUVIyT2JqLkdldEhlYWRlcigpLA0KPiAoY3R4LkV4cEluZm8u RXhwT3BDb3VudCA9PSAwKSwgTGluZSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIFR5cGUg PT0gMHgyOg0KPiANCj4gLSAgICAgICAgICAgIFFSM18yT2JqID0gQ0lmclF1ZXN0aW9uUmVmM18y KExpbmUpDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX1NhdmVPcEhkckNvbmQoUVIzXzJPYmou R2V0SGVhZGVyKCksDQo+IChjdHguRXhwSW5mby5FeHBPcENvdW50ID09IDApLCBMaW5lKQ0KPiAN Cj4gLSAgICAgICAgICAgIFFSM18yT2JqLlNldERldmljZVBhdGgoRGV2aWNlUGF0aCkNCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgIGlmIFR5cGUgPT0gMHgzOg0KPiANCj4gLSAgICAgICAgICAgIFFS M18zT2JqID0gQ0lmclF1ZXN0aW9uUmVmM18zKExpbmUpDQo+IA0KPiAtICAgICAgICAgICAgc2Vs Zi5fX1NhdmVPcEhkckNvbmQoUVIzXzNPYmouR2V0SGVhZGVyKCksDQo+IChjdHguRXhwSW5mby5F eHBPcENvdW50ID09IDApLCBMaW5lKQ0KPiANCj4gLSAgICAgICAgICAgIFFSM18zT2JqLlNldERl dmljZVBhdGgoRGV2aWNlUGF0aCkNCj4gDQo+IC0gICAgICAgICAgICBRUjNfM09iai5TZXRHdWlk KGN0eC5ndWlkRGVmaW5pdGlvbigpLkd1aWQpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBjdHgu RXhwSW5mby5FeHBPcENvdW50ICs9IDENCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgICAg IHJldHVybiBjdHguRXhwSW5mbw0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0 IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjc3RyaW5ncmVmMkV4cC4N Cj4gDQo+IC0gICAgZGVmIHZpc2l0U3RyaW5ncmVmMkV4cChzZWxmLCBjdHg6VmZyU3ludGF4UGFy c2VyLlN0cmluZ3JlZjJFeHBDb250ZXh0KToNCj4gDQo+IC0gICAgICAgIExpbmUgPSBjdHguc3Rh cnQubGluZQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0g ICAgICAgIGN0eC5TUjJPYmogPSBDSWZyU3RyaW5nUmVmMihMaW5lKQ0KPiANCj4gLSAgICAgICAg Y3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAxDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4LlNS Mk9iag0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBw cm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdG9ib29sRXhwLg0KPiANCj4gLSAgICBkZWYgdmlz aXRUb2Jvb2xFeHAoc2VsZiwgY3R4OlZmclN5bnRheFBhcnNlci5Ub2Jvb2xFeHBDb250ZXh0KToN Cj4gDQo+IC0gICAgICAgIExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiANCj4gLSAgICAgICAgc2Vs Zi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0gICAgICAgIGN0eC5UQk9iaiA9IENJZnJUb0Jv b2xlYW4oTGluZSkNCj4gDQo+IC0gICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0K PiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5UQk9iag0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZp c2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdG9zdHJpbmdFeHAu DQo+IA0KPiAtICAgIGRlZiB2aXNpdFRvc3RyaW5nRXhwKHNlbGYsIGN0eDpWZnJTeW50YXhQYXJz ZXIuVG9zdHJpbmdFeHBDb250ZXh0KToNCj4gDQo+IC0gICAgICAgIExpbmUgPSBjdHguc3RhcnQu bGluZQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0gICAg ICAgIGN0eC5UU09iaiA9IENJZnJUb1N0cmluZyhMaW5lKQ0KPiANCj4gLSAgICAgICAgRm10ID0g c2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoKSkNCj4gDQo+IC0gICAgICAgIGN0eC5UU09iai5T ZXRGb3JtYXQoRm10KQ0KPiANCj4gLSAgICAgICAgY3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAx DQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4LlRTT2JqDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0K PiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN1 bmludEV4cC4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VW5pbnRFeHAoc2VsZiwgY3R4OlZmclN5bnRh eFBhcnNlci5VbmludEV4cENvbnRleHQpOg0KPiANCj4gLSAgICAgICAgTGluZSA9IGN0eC5zdGFy dC5saW5lDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLSAg ICAgICAgY3R4LlRVT2JqID0gQ0lmclRvVWludChMaW5lKQ0KPiANCj4gLSAgICAgICAgY3R4LkV4 cEluZm8uRXhwT3BDb3VudCArPSAxDQo+IA0KPiAtICAgICAgICByZXR1cm4gY3R4LlRVT2JqDQo+ IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2Vk IGJ5IFZmclN5bnRheFBhcnNlciN0b3VwcGVyRXhwLg0KPiANCj4gLSAgICBkZWYgdmlzaXRUb3Vw cGVyRXhwKHNlbGYsIGN0eDpWZnJTeW50YXhQYXJzZXIuVG91cHBlckV4cENvbnRleHQpOg0KPiAN Cj4gLSAgICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5lDQo+IA0KPiAtICAgICAgICBzZWxmLnZp c2l0Q2hpbGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgY3R4LlRVT2JqID0gQ0lmclRvVXBwZXIo TGluZSkNCj4gDQo+IC0gICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0KPiANCj4g LSAgICAgICAgcmV0dXJuIGN0eC5UVU9iag0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAj IFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdG9sd2VyRXhw Lg0KPiANCj4gLSAgICBkZWYgdmlzaXRUb2x3ZXJFeHAoc2VsZiwgY3R4OlZmclN5bnRheFBhcnNl ci5Ub2x3ZXJFeHBDb250ZXh0KToNCj4gDQo+IC0gICAgICAgIExpbmUgPSBjdHguc3RhcnQubGlu ZQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0gICAgICAg IGN0eC5UTE9iaiA9IENJZnJUb0xvd2VyKExpbmUpDQo+IA0KPiAtICAgICAgICBjdHguRXhwSW5m by5FeHBPcENvdW50ICs9IDENCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguVExPYmoNCj4gDQo+ IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkg VmZyU3ludGF4UGFyc2VyI3NldEV4cC4NCj4gDQo+IC0gICAgZGVmIHZpc2l0U2V0RXhwKHNlbGYs IGN0eDpWZnJTeW50YXhQYXJzZXIuU2V0RXhwQ29udGV4dCk6DQo+IA0KPiAtICAgICAgICBMaW5l ID0gY3R4LnN0YXJ0LmxpbmUNCj4gDQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgp DQo+IA0KPiAtICAgICAgICBpZiBjdHguQmFzZUluZm8uVmFyU3RvcmVJZCA9PSAwOg0KPiANCj4g LSAgICAgICAgICAgICMgc3VwcG9ydCBEYXRlL1RpbWUgcXVlc3Rpb24NCj4gDQo+IC0gICAgICAg ICAgICBWYXJJZFN0ciA9IGN0eC52ZnJTdG9yYWdlVmFySWQoKS5WYXJJZFN0cg0KPiANCj4gLSAg ICAgICAgICAgIFFJZCwgTWFzaywgUVR5cGUgPSBzZWxmLl9fQ1ZmclF1ZXN0aW9uREIuR2V0UXVl c3Rpb25JZChOb25lLA0KPiBWYXJJZFN0ciwgRUZJX1FVRVNJT05fVFlQRS5RVUVTVElPTl9OT1JN QUwpDQo+IA0KPiAtICAgICAgICAgICAgaWYgKFFJZCA9PSBFRklfUVVFU1RJT05fSURfSU5WQUxJ RCkgb3IgKE1hc2sgPT0gMCkgb3IgKFFUeXBlID09DQo+IEVGSV9RVUVTSU9OX1RZUEUuUVVFU1RJ T05fTk9STUFMKToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5fX0Vycm9ySGFuZGxlcihW ZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fVU5TVVBQT1JURUQsDQo+IExpbmUsICJHZXQvU2V0IG9w Y29kZSBjYW4ndCBnZXQgdGhlIGVub3VnaCB2YXJzdG9yZSBpbmZvcm1hdGlvbiIpDQo+IA0KPiAt ICAgICAgICAgICAgaWYgUVR5cGUgPT0gRUZJX1FVRVNJT05fVFlQRS5RVUVTVElPTl9EQVRFOg0K PiANCj4gLSAgICAgICAgICAgICAgICBjdHguQmFzZUluZm8uVmFyVHlwZSA9IEVGSV9JRlJfVFlQ RV9EQVRFDQo+IA0KPiAtICAgICAgICAgICAgZWxpZiBRVHlwZSA9PSBFRklfUVVFU0lPTl9UWVBF LlFVRVNUSU9OX1RJTUU6DQo+IA0KPiAtICAgICAgICAgICAgICAgIGN0eC5CYXNlSW5mby5WYXJU eXBlID0gRUZJX0lGUl9UWVBFX1RJTUUNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICBpZiBN YXNrID09IERBVEVfWUVBUl9CSVRNQVNLOg0KPiANCj4gLSAgICAgICAgICAgICAgICBjdHguQmFz ZUluZm8uVmFyT2Zmc2V0ID0gMA0KPiANCj4gLSAgICAgICAgICAgIGVsaWYgTWFzayA9PSBEQVRF X0RBWV9CSVRNQVNLOg0KPiANCj4gLSAgICAgICAgICAgICAgICBjdHguQmFzZUluZm8uVmFyT2Zm c2V0ID0gMw0KPiANCj4gLSAgICAgICAgICAgIGVsaWYgTWFzayA9PSBUSU1FX0hPVVJfQklUTUFT SzoNCj4gDQo+IC0gICAgICAgICAgICAgICAgY3R4LkJhc2VJbmZvLlZhck9mZnNldCA9IDANCj4g DQo+IC0gICAgICAgICAgICBlbGlmIE1hc2sgPT0gVElNRV9NSU5VVEVfQklUTUFTSzoNCj4gDQo+ IC0gICAgICAgICAgICAgICAgY3R4LkJhc2VJbmZvLlZhck9mZnNldCA9IDENCj4gDQo+IC0gICAg ICAgICAgICBlbGlmIE1hc2sgPT0gVElNRV9TRUNPTkRfQklUTUFTSzoNCj4gDQo+IC0gICAgICAg ICAgICAgICAgY3R4LkJhc2VJbmZvLlZhck9mZnNldCA9IDINCj4gDQo+IC0gICAgICAgICAgICBl bHNlOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLl9fRXJyb3JIYW5kbGVyKFZmclJldHVy bkNvZGUuVkZSX1JFVFVSTl9VTlNVUFBPUlRFRCwNCj4gTGluZSwgIkdldC9TZXQgb3Bjb2RlIGNh bid0IGdldCB0aGUgZW5vdWdoIHZhcnN0b3JlIGluZm9ybWF0aW9uIikNCj4gDQo+IC0NCj4gDQo+ IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgVmFyVHlwZSA9IEVGSV9JRlJfVFlQ RV9VTkRFRklORUQNCj4gDQo+IC0gICAgICAgICAgICBpZiBjdHguRkxBR1MoKSAhPSBOb25lOg0K PiANCj4gLSAgICAgICAgICAgICAgICBWYXJUeXBlID0gY3R4Lm51bWVyaWNWYXJTdG9yZVR5cGUo KS5WYXJUeXBlDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgaWYgKGdDVmZyRGF0YVN0b3Jh Z2UuR2V0VmFyU3RvcmVUeXBlKGN0eC5CYXNlSW5mby5WYXJTdG9yZUlkKSA9PQ0KPiBFRklfVkZS X1ZBUlNUT1JFX1RZUEUuRUZJX1ZGUl9WQVJTVE9SRV9OQU1FKSBhbmQgKFZhclR5cGUgPT0NCj4g RUZJX0lGUl9UWVBFX1VOREVGSU5FRCk6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuX19F cnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1VOU1VQUE9SVEVELA0KPiBMaW5l LCAiR2V0L1NldCBvcGNvZGUgZG9uJ3Qgc3VwcG9ydCBuYW1lIHN0cmluZyIpDQo+IA0KPiAtDQo+ IA0KPiAtICAgICAgICAgICAgaWYgVmFyVHlwZSAhPSBFRklfSUZSX1RZUEVfVU5ERUZJTkVEOg0K PiANCj4gLSAgICAgICAgICAgICAgICBjdHguQmFzZUluZm8uVmFyVHlwZSA9IFZhclR5cGUNCj4g DQo+IC0gICAgICAgICAgICAgICAgU2l6ZSwgUmV0dXJuQ29kZSA9DQo+IGdDVmZyVmFyRGF0YVR5 cGVEQi5HZXREYXRhVHlwZVNpemVCeURhdGFUeXBlKGN0eC5CYXNlSW5mby5WYXJUeXBlKQ0KPiAN Cj4gLSAgICAgICAgICAgICAgICBzZWxmLl9fRXJyb3JIYW5kbGVyKFJldHVybkNvZGUsIExpbmUs ICJHZXQvU2V0IG9wY29kZSBjYW4ndCBnZXQgdmFyDQo+IHR5cGUgc2l6ZSIpDQo+IA0KPiAtICAg ICAgICAgICAgICAgIGN0eC5CYXNlSW5mby5WYXJUb3RhbFNpemUgPSBTaXplDQo+IA0KPiAtDQo+ IA0KPiAtICAgICAgICAgICAgU2l6ZSwgUmV0dXJuQ29kZSA9DQo+IGdDVmZyVmFyRGF0YVR5cGVE Qi5HZXREYXRhVHlwZVNpemVCeURhdGFUeXBlKGN0eC5CYXNlSW5mby5WYXJUeXBlKQ0KPiANCj4g LSAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwgTGluZSwgIkdldC9T ZXQgb3Bjb2RlIGNhbid0IGdldCB2YXINCj4gdHlwZSBzaXplIikNCj4gDQo+IC0NCj4gDQo+IC0g ICAgICAgICAgICBpZiBTaXplICE9IGN0eC5CYXNlSW5mby5WYXJUb3RhbFNpemU6DQo+IA0KPiAt ICAgICAgICAgICAgICAgIHNlbGYuX19FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJfUkVU VVJOX1VOU1VQUE9SVEVELA0KPiBMaW5lLCAiR2V0L1NldCBvcGNvZGUgZG9uJ3Qgc3VwcG9ydCBk YXRhIGFycmF5IikNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGN0eC5UU09iaiA9IENJZnJTZXQo TGluZSkNCj4gDQo+IC0gICAgICAgIHNlbGYuX19TYXZlT3BIZHJDb25kKGN0eC5UU09iai5HZXRI ZWFkZXIoKSwgKGN0eC5FeHBJbmZvLkV4cE9wQ291bnQNCj4gPT0gMCksIExpbmUpDQo+IA0KPiAt ICAgICAgICBjdHguVFNPYmouU2V0VmFySW5mbyhjdHguQmFzZUluZm8pDQo+IA0KPiAtICAgICAg ICBjdHguRXhwSW5mby5FeHBPcENvdW50ICs9IDENCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJl dHVybiBjdHguVFNPYmoNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBh cnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmckV4cHJlc3Npb25UZXJuYXJ5 T3AuDQo+IA0KPiAtICAgIGRlZiB2aXNpdFZmckV4cHJlc3Npb25UZXJuYXJ5T3Aoc2VsZiwNCj4g Y3R4OlZmclN5bnRheFBhcnNlci5WZnJFeHByZXNzaW9uVGVybmFyeU9wQ29udGV4dCk6DQo+IA0K PiAtICAgICAgICByZXR1cm4gc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0NCj4gDQo+ IC0NCj4gDQo+IC0gICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4 UGFyc2VyI2NvbmRpdGlvbmFsRXhwLg0KPiANCj4gLSAgICBkZWYgdmlzaXRDb25kaXRpb25hbEV4 cChzZWxmLCBjdHg6VmZyU3ludGF4UGFyc2VyLkNvbmRpdGlvbmFsRXhwQ29udGV4dCk6DQo+IA0K PiAtICAgICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gDQo+IC0gICAgICAgIHNlbGYudmlz aXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtICAgICAgICBjdHguQ09iaiA9IENJZnJDb25kaXRpb25h bChMaW5lKQ0KPiANCj4gLSAgICAgICAgY3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAxDQo+IA0K PiAtICAgICAgICByZXR1cm4gY3R4LkNPYmoNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAg IyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI2ZpbmRFeHAu DQo+IA0KPiAtICAgIGRlZiB2aXNpdEZpbmRFeHAoc2VsZiwgY3R4OlZmclN5bnRheFBhcnNlci5G aW5kRXhwQ29udGV4dCk6DQo+IA0KPiAtICAgICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4g DQo+IC0gICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+IA0KPiAtICAgICAgICBGT2Jq ID0gQ0lmckZpbmQoTGluZSkNCj4gDQo+IC0gICAgICAgIEZvcm1hdCA9IDANCj4gDQo+IC0gICAg ICAgIGZvciBpIGluIHJhbmdlKDAsIGxlbihjdHguZmluZEZvcm1hdCgpKSk6DQo+IA0KPiAtICAg ICAgICAgICAgRm9ybWF0ID0gY3R4LmZpbmRGb3JtYXQoaSkuRm9ybWF0DQo+IA0KPiAtDQo+IA0K PiAtICAgICAgICBGT2JqLlNldEZvcm1hdChGb3JtYXQpDQo+IA0KPiAtICAgICAgICBjdHguRXhw SW5mby5FeHBPcENvdW50ICs9IDENCj4gDQo+IC0gICAgICAgIHJldHVybiBGT2JqDQo+IA0KPiAt DQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZm clN5bnRheFBhcnNlciNmaW5kRm9ybWF0Lg0KPiANCj4gLSAgICBkZWYgdmlzaXRGaW5kRm9ybWF0 KHNlbGYsIGN0eDpWZnJTeW50YXhQYXJzZXIuRmluZEZvcm1hdENvbnRleHQpOg0KPiANCj4gLSAg ICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0gICAgICAgIGlmIGN0eC5TZW5z aXRpdmUoKSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGN0eC5Gb3JtYXQgPSAweDAwDQo+ IA0KPiAtICAgICAgICBlbGlmIGN0eC5JbnNlbnNpdGl2ZSgpICE9IE5vbmU6DQo+IA0KPiAtICAg ICAgICAgICAgY3R4LkZvcm1hdCA9IDB4MDENCj4gDQo+IC0gICAgICAgIHJldHVybiBjdHguRm9y bWF0DQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHBy b2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNtaWRFeHAuDQo+IA0KPiAtICAgIGRlZiB2aXNpdE1p ZEV4cChzZWxmLCBjdHg6VmZyU3ludGF4UGFyc2VyLk1pZEV4cENvbnRleHQpOg0KPiANCj4gLSAg ICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5lDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hp bGRyZW4oY3R4KQ0KPiANCj4gLSAgICAgICAgY3R4Lk1PYmogPSBDSWZyTWlkKExpbmUpDQo+IA0K PiAtICAgICAgICBjdHguRXhwSW5mby5FeHBPcENvdW50ICs9IDENCj4gDQo+IC0gICAgICAgIHJl dHVybiBjdHguTU9iag0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBw cm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdG9rZW5FeHAuDQo+IA0KPiAtICAgIGRlZiB2aXNp dFRva2VuRXhwKHNlbGYsIGN0eDpWZnJTeW50YXhQYXJzZXIuVG9rZW5FeHBDb250ZXh0KToNCj4g DQo+IC0gICAgICAgIExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiANCj4gLSAgICAgICAgc2VsZi52 aXNpdENoaWxkcmVuKGN0eCkNCj4gDQo+IC0gICAgICAgIGN0eC5UT2JqID0gQ0lmclRva2VuKExp bmUpDQo+IA0KPiAtICAgICAgICBjdHguRXhwSW5mby5FeHBPcENvdW50ICs9IDENCj4gDQo+IC0g ICAgICAgIHJldHVybiBjdHguVE9iag0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZp c2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjc3BhbkV4cC4NCj4g DQo+IC0gICAgZGVmIHZpc2l0U3BhbkV4cChzZWxmLCBjdHg6VmZyU3ludGF4UGFyc2VyLlNwYW5F eHBDb250ZXh0KToNCj4gDQo+IC0gICAgICAgIExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiANCj4g LSAgICAgICAgRmxhZ3MgPSAwDQo+IA0KPiAtICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4 KQ0KPiANCj4gLSAgICAgICAgZm9yIEZsYWdzQ3R4IGluIGN0eC5zcGFuRmxhZ3MoKToNCj4gDQo+ IC0gICAgICAgICAgICBGbGFncyB8PSBGbGFnc0N0eC5GbGFnDQo+IA0KPiAtICAgICAgICBjdHgu U09iaiA9IENJZnJTcGFuKExpbmUpDQo+IA0KPiAtICAgICAgICBjdHguU09iai5TZXRGbGFncyhG bGFncykNCj4gDQo+IC0gICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0KPiANCj4g LSAgICAgICAgcmV0dXJuIGN0eC5TT2JqDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMg VmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNzcGFuRmxhZ3Mu DQo+IA0KPiAtICAgIGRlZiB2aXNpdFNwYW5GbGFncyhzZWxmLCBjdHg6VmZyU3ludGF4UGFyc2Vy LlNwYW5GbGFnc0NvbnRleHQpOg0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0 eCkNCj4gDQo+IC0gICAgICAgIGlmIGN0eC5OdW1iZXIoKSAhPSBOb25lOg0KPiANCj4gLSAgICAg ICAgICAgIGN0eC5GbGFnID0gc2VsZi5fX1RyYW5zTnVtKGN0eC5OdW1iZXIoKSkNCj4gDQo+IC0g ICAgICAgIGVsaWYgY3R4Lkxhc3ROb25NYXRjaCgpICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAg ICAgY3R4LkZsYWcgPSAweDAwDQo+IA0KPiAtICAgICAgICBlbGlmIGN0eC5GaXJzdE5vbk1hdGNo KCkgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBjdHguRmxhZyA9IDB4MDENCj4gDQo+IC0g ICAgICAgIHJldHVybiBjdHguRmxhZw0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIFZp c2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyRXhwcmVzc2lv bk1hcC4NCj4gDQo+IC0gICAgZGVmIHZpc2l0VmZyRXhwcmVzc2lvbk1hcChzZWxmLA0KPiBjdHg6 VmZyU3ludGF4UGFyc2VyLlZmckV4cHJlc3Npb25NYXBDb250ZXh0KToNCj4gDQo+IC0gICAgICAg IExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiANCj4gLSAgICAgICAgc2VsZi52aXNpdENoaWxkcmVu KGN0eCkNCj4gDQo+IC0gICAgICAgIGN0eC5NT2JqID0gQ0lmck1hcChMaW5lKQ0KPiANCj4gLSAg ICAgICAgRU9iaiA9IENJZnJFbmQoKQ0KPiANCj4gLSAgICAgICAgTGluZSA9IChOb25lIGlmIGN0 eC5zdG9wIGlzIE5vbmUgZWxzZSBjdHguc3RvcCkubGluZQ0KPiANCj4gLSAgICAgICAgRU9iai5T ZXRMaW5lTm8oTGluZSkNCj4gDQo+IC0gICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0g MQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIGN0eC5NT2JqDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRl ZiBfX0dldFRleHQoc2VsZiwgY3R4KToNCj4gDQo+IC0gICAgICAgIGlmIGN0eCA9PSBOb25lOg0K PiANCj4gLSAgICAgICAgICAgIHJldHVybiBOb25lDQo+IA0KPiAtICAgICAgICBlbHNlOg0KPiAN Cj4gLSAgICAgICAgICAgIHJldHVybiBjdHgudGV4dA0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYg X19UcmFuc0lkKHNlbGYsIFN0cmluZ0lkZW50aWZpZXJUb2tlbiwgRGVmYXVsdFZhbHVlPU5vbmUp Og0KPiANCj4gLSAgICAgICAgaWYgU3RyaW5nSWRlbnRpZmllclRva2VuID09IE5vbmU6DQo+IA0K PiAtICAgICAgICAgICAgcmV0dXJuIERlZmF1bHRWYWx1ZQ0KPiANCj4gLSAgICAgICAgZWxzZToN Cj4gDQo+IC0gICAgICAgICAgICByZXR1cm4gc3RyKFN0cmluZ0lkZW50aWZpZXJUb2tlbikNCj4g DQo+IC0NCj4gDQo+IC0gICAgZGVmIF9fVHJhbnNOdW0oc2VsZiwgTnVtYmVyVG9rZW4sIERlZmF1 bHRWYWx1ZT0wKToNCj4gDQo+IC0gICAgICAgIGlmIE51bWJlclRva2VuID09IE5vbmU6DQo+IA0K PiAtICAgICAgICAgICAgcmV0dXJuIERlZmF1bHRWYWx1ZQ0KPiANCj4gLSAgICAgICAgZWxzZToN Cj4gDQo+IC0gICAgICAgICAgICBTdHJUb2tlbiA9IHN0cihOdW1iZXJUb2tlbikNCj4gDQo+IC0g ICAgICAgICAgICBpZiAnMHgnIGluIFN0clRva2VuOg0KPiANCj4gLSAgICAgICAgICAgICAgICBO dW1iZXJUb2tlbiA9IGludChTdHJUb2tlbiwgMCkNCj4gDQo+IC0gICAgICAgICAgICBlbHNlOg0K PiANCj4gLSAgICAgICAgICAgICAgICBOdW1iZXJUb2tlbiA9IGludChTdHJUb2tlbikNCj4gDQo+ IC0gICAgICAgICMgZXJyb3IgaGFuZGxlICwgdmFsdWUgaXMgdG9vIGxhcmdlIHRvIHN0b3JlDQo+ IA0KPiAtICAgICAgICByZXR1cm4gTnVtYmVyVG9rZW4NCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVm IF9fQXNzaWduUXVlc3Rpb25LZXkoc2VsZiwgT3BPYmosIEtleSk6DQo+IA0KPiAtDQo+IA0KPiAt ICAgICAgICBpZiBLZXkgPT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICByZXR1cm4NCj4gDQo+ IC0gICAgICAgIGlmIE9wT2JqLkdldEZsYWdzKCkgJiBFRklfSUZSX0ZMQUdfQ0FMTEJBQ0s6DQo+ IA0KPiAtICAgICAgICAgICAgIyBpZiB0aGUgcXVlc3Rpb24gaXMgbm90IENBTExCQUNLIGlnbm9y ZSB0aGUga2V5Lg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19DVmZyUXVlc3Rpb25EQi5VcGRh dGVRdWVzdGlvbklkKE9wT2JqLkdldFF1ZXN0aW9uSWQoKSwNCj4gS2V5KQ0KPiANCj4gLSAgICAg ICAgICAgIE9wT2JqLlNldFF1ZXN0aW9uSWQoS2V5KQ0KPiANCj4gLSAgICAgICAgcmV0dXJuDQo+ IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX0V4dHJhY3RPcmlnaW5hbFRleHQoc2VsZiwgY3R4KToN Cj4gDQo+IC0gICAgICAgIFNvdXJjZSA9IGN0eC5zdGFydC5nZXRUb2tlblNvdXJjZSgpDQo+IA0K PiAtICAgICAgICBJbnB1dFN0cmVhbSA9IFNvdXJjZS5pbnB1dFN0cmVhbQ0KPiANCj4gLSAgICAg ICAgc3RhcnQsIHN0b3AgID0gY3R4LnN0YXJ0LnN0YXJ0LCBjdHguc3RvcC5zdG9wDQo+IA0KPiAt ICAgICAgICBUZXh0ID0gSW5wdXRTdHJlYW0uZ2V0VGV4dChzdGFydCwgc3RvcCkNCj4gDQo+IC0g ICAgICAgIHJldHVybiBUZXh0LnJlcGxhY2UoJ1xuJywgJycpDQo+IA0KPiAtDQo+IA0KPiAtICAg IGRlZiBfX0NoZWNrRHVwbGljYXRlRGVmYXVsdFZhbHVlKHNlbGYsIERlZmF1bHRJZCwgTGluZSwg VG9rZW5WYWx1ZSk6DQo+IA0KPiAtICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCBsZW4oc2VsZi5f X1VzZWREZWZhdWx0QXJyYXkpKToNCj4gDQo+IC0gICAgICAgICAgICBpZiBzZWxmLl9fVXNlZERl ZmF1bHRBcnJheVtpXSA9PSBEZWZhdWx0SWQ6DQo+IA0KPiAtDQo+IGdDVmZyRXJyb3JIYW5kbGUu SGFuZGxlV2FybmluZyhFRklfVkZSX1dBUk5JTkdfQ09ERS5WRlJfV0FSTklOR18NCj4gREVGQVVM VF9WQUxVRV9SRURFRklORUQsIExpbmUsIFRva2VuVmFsdWUpDQo+IA0KPiAtDQo+IA0KPiAtICAg ICAgICBpZiBsZW4oc2VsZi5fX1VzZWREZWZhdWx0QXJyYXkpID49IEVGSV9JRlJfTUFYX0RFRkFV TFRfVFlQRSAtIDE6DQo+IA0KPiAtDQo+IGdDVmZyRXJyb3JIYW5kbGUuSGFuZGxlRXJyb3IoVmZy UmV0dXJuQ29kZS5WRlJfUkVUVVJOX0ZBVEFMX0VSUk9SLA0KPiBMaW5lLCBUb2tlblZhbHVlKQ0K PiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX1VzZWREZWZhdWx0QXJyYXkuYXBwZW5kKERl ZmF1bHRJZCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9fRXJyb3JIYW5kbGVyKHNlbGYsIFJl dHVybkNvZGUsIExpbmVOdW0sIFRva2VuVmFsdWU9Tm9uZSk6DQo+IA0KPiAtICAgICAgICBzZWxm Ll9fUGFyc2VyU3RhdHVzICs9IGdDVmZyRXJyb3JIYW5kbGUuSGFuZGxlRXJyb3IoUmV0dXJuQ29k ZSwNCj4gTGluZU51bSwgVG9rZW5WYWx1ZSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9fQ29t cGFyZUVycm9ySGFuZGxlcihzZWxmLCBSZXR1cm5Db2RlLCBFeHBlY3RlZENvZGUsIExpbmVOdW0s DQo+IFRva2VuVmFsdWU9Tm9uZSwgRXJyb3JNc2c9Tm9uZSk6DQo+IA0KPiAtICAgICAgICBpZiBS ZXR1cm5Db2RlICE9IEV4cGVjdGVkQ29kZToNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fUGFy c2VyU3RhdHVzICs9IDENCj4gDQo+IC0gICAgICAgICAgICBnQ1ZmckVycm9ySGFuZGxlLlByaW50 TXNnKExpbmVOdW0sICdFcnJvcicsIEVycm9yTXNnLCBUb2tlblZhbHVlKQ0KPiANCj4gLQ0KPiAN Cj4gLSAgICBkZWYgX19JbnNlcnRDaGlsZChzZWxmLCBQYXJlbnROb2RlOiBWZnJUcmVlTm9kZSwg Q2hpbGRDdHgpOg0KPiANCj4gLSAgICAgICAgaWYgQ2hpbGRDdHggIT0gTm9uZSBhbmQgQ2hpbGRD dHguTm9kZSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIFBhcmVudE5vZGUuaW5zZXJ0Q2hp bGQoQ2hpbGRDdHguTm9kZSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldFJvb3Qoc2VsZik6 DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi5fX1Jvb3QNCj4gDQo+IC0NCj4gDQo+IC0gICAg ZGVmIEdldFF1ZXN0aW9uREIoc2VsZik6DQo+IA0KPiAtICAgICAgICByZXR1cm4gc2VsZi5fX0NW ZnJRdWVzdGlvbkRCDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBEdW1wSnNvbihzZWxmLCBGaWxl TmFtZSk6DQo+IA0KPiAtICAgICAgICB0cnk6DQo+IA0KPiAtICAgICAgICAgICAgd2l0aCBvcGVu KEZpbGVOYW1lLCAndycpIGFzIGY6DQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJ3tc bicpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgXCJEYXRhU3RydWN0XCIgOiB7 XG4nKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBwTm9kZSA9IGdDVmZyVmFyRGF0YVR5cGVEQi5H ZXREYXRhVHlwZUxpc3QoKQ0KPiANCj4gLSAgICAgICAgICAgICAgICB3aGlsZSBwTm9kZSAhPSBO b25lOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAgIFwie31cIiA6IFtc bicuZm9ybWF0KHN0cihwTm9kZS5UeXBlTmFtZSkpKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAg ICAgRk5vZGUgPSBwTm9kZS5NZW1iZXJzDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICB3aGls ZSBGTm9kZSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUo JyAgICAgIHtcbicpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAg ICAgICBcIk5hbWVcIjogXCJ7fVwiLFxuJy5mb3JtYXQoc3RyKEZOb2RlLkZpZWxkTmFtZSkpKQ0K PiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIEZOb2RlLkFycmF5TnVtID4gMDoNCj4g DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICBcIlR5cGVc IjoNCj4gXCJ7fVt7fV1cIixcbicuZm9ybWF0KHN0cihGTm9kZS5GaWVsZFR5cGUuVHlwZU5hbWUp LHN0cihGTm9kZS5BcnJheU51bSkpKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGVs c2U6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAg XCJUeXBlXCI6DQo+IFwie31cIixcbicuZm9ybWF0KHN0cihGTm9kZS5GaWVsZFR5cGUuVHlwZU5h bWUpKSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgIFwi T2Zmc2V0XCI6IHt9XG4nLmZvcm1hdChzdHIoRk5vZGUuT2Zmc2V0KSkpDQo+IA0KPiAtICAgICAg ICAgICAgICAgICAgICAgICAgaWYgRk5vZGUuTmV4dCA9PSBOb25lOg0KPiANCj4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICB9XG4nKQ0KPiANCj4gLSAgICAgICAg ICAgICAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg IGYud3JpdGUoJyAgICAgIH0sIFxuJykNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBG Tm9kZSA9IEZOb2RlLk5leHQNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGlmIHBOb2RlLk5l eHQgPT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAg XVxuJykNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAg ICAgICAgICAgICAgICAgZi53cml0ZSgnICAgIF0sXG4nKQ0KPiANCj4gLSAgICAgICAgICAgICAg ICAgICAgcE5vZGUgPSBwTm9kZS5OZXh0DQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUo JyAgfSxcbicpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgXCJEYXRhU3RydWN0 QXR0cmlidXRlXCI6IHtcbicpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHBOb2RlID0gZ0NWZnJW YXJEYXRhVHlwZURCLkdldERhdGFUeXBlTGlzdCgpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHdo aWxlIHBOb2RlICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCcg ICAgXCJ7fVwiJy5mb3JtYXQoc3RyKHBOb2RlLlR5cGVOYW1lKSkgKyAnOiB7XG4nKQ0KPiANCj4g LSAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICBcIkFsaWdubWVudFwiOiB7fSxc bicuZm9ybWF0KHN0cihwTm9kZS5BbGlnbikpKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAg Zi53cml0ZSgnICAgICAgICBcIlRvdGFsU2l6ZVwiOiB7fVxuJy5mb3JtYXQoc3RyKHBOb2RlLlRv dGFsU2l6ZSkpKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgaWYgcE5vZGUuTmV4dCA9PSBO b25lOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgIH1cbicp DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBlbHNlOg0KPiANCj4gLSAgICAgICAgICAgICAg ICAgICAgICAgIGYud3JpdGUoJyAgICAgIH0sXG4nKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAg ICAgcE5vZGUgPSBwTm9kZS5OZXh0DQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAg fSxcbicpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgXCJWYXJEZWZpbmVcIiA6 IHtcbicpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHBWc05vZGUgPSBnQ1ZmckRhdGFTdG9yYWdl LkdldEJ1ZmZlclZhclN0b3JlTGlzdCgpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHdoaWxlIHBW c05vZGUgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICBc Int9XCInLmZvcm1hdChzdHIocFZzTm9kZS5WYXJTdG9yZU5hbWUpKSArICc6IHtcbicpDQo+IA0K PiAtICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgIFwiVHlwZVwiOg0KPiBcInt9 XCIsXG4nLmZvcm1hdChzdHIocFZzTm9kZS5EYXRhVHlwZS5UeXBlTmFtZSkpKQ0KPiANCj4gLSAg ICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge30sXG4n LmZvcm1hdChzdHIocFZzTm9kZS5BdHRyaWJ1dGVzKSkpDQo+IA0KPiAtICAgICAgICAgICAgICAg ICAgICBmLndyaXRlKCcgICAgICAgIFwiVmFyU3RvcmVJZFwiOiB7fSxcbicuZm9ybWF0KHN0cihw VnNOb2RlLlZhclN0b3JlSWQpKSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGYud3JpdGUo JyAgICAgICAgXCJWZW5kb3JHdWlkXCI6ICcgKyAnXCJ7fSwge30sDQo+IHt9LCcuZm9ybWF0KCcw eCV4JyUocFZzTm9kZS5HdWlkLkRhdGExKSwnMHgleCclKHBWc05vZGUuR3VpZC5EYXRhMiksDQo+ ICcweCV4JyUocFZzTm9kZS5HdWlkLkRhdGEzKSkgXA0KPiANCj4gLSAgICAgICAgICAgICAgICAg ICAgKyAnIHsgJyArICAne30sIHt9LCB7fSwge30sIHt9LCB7fSwge30sDQo+IHt9Jy5mb3JtYXQo JzB4JXgnJShwVnNOb2RlLkd1aWQuRGF0YTRbMF0pLA0KPiAnMHgleCclKHBWc05vZGUuR3VpZC5E YXRhNFsxXSksICcweCV4JyUocFZzTm9kZS5HdWlkLkRhdGE0WzJdKSwNCj4gJzB4JXgnJShwVnNO b2RlLkd1aWQuRGF0YTRbM10pLCBcDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAnMHgleCcl KHBWc05vZGUuR3VpZC5EYXRhNFs0XSksDQo+ICcweCV4JyUocFZzTm9kZS5HdWlkLkRhdGE0WzVd KSwgJzB4JXgnJShwVnNOb2RlLkd1aWQuRGF0YTRbNl0pLA0KPiAnMHgleCclKHBWc05vZGUuR3Vp ZC5EYXRhNFs3XSkpICsgJyB9fVwiXG4nKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgaWYg cFZzTm9kZS5OZXh0ID09IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgZi53 cml0ZSgnICAgICAgfVxuJykNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGVsc2U6DQo+IA0K PiAtICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgfSxcbicpDQo+IA0KPiAt DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBwVnNOb2RlID0gcFZzTm9kZS5OZXh0DQo+IA0K PiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgfSxcbicpDQo+IA0KPiAtICAgICAgICAgICAg ICAgIGYud3JpdGUoJyAgXCJEYXRhXCIgOiBbXG4nKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBw VnNOb2RlID0gZ0NWZnJCdWZmZXJDb25maWcuR2V0VmFySXRlbUxpc3QoKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICB3aGlsZSBwVnNOb2RlICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgICAg ICAgICBpZiBwVnNOb2RlLklkID09IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAg ICAgcFZzTm9kZSA9IHBWc05vZGUuTmV4dA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAg IGNvbnRpbnVlDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBwSW5mb05vZGUgPSBwVnNOb2Rl LkluZm9TdHJMaXN0DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICB3aGlsZSBwSW5mb05vZGUg IT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICB7 XG4nKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgXCJW ZW5kb3JHdWlkXCI6ICcgKyAnXCJ7fSwge30sDQo+IHt9LCcuZm9ybWF0KCcweCV4JyUocFZzTm9k ZS5HdWlkLkRhdGExKSwnMHgleCclKHBWc05vZGUuR3VpZC5EYXRhMiksDQo+ICcweCV4JyUocFZz Tm9kZS5HdWlkLkRhdGEzKSkgXA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICsgJyB7 ICcgKyAgJ3t9LCB7fSwge30sIHt9LCB7fSwge30sIHt9LA0KPiB7fScuZm9ybWF0KCcweCV4JyUo cFZzTm9kZS5HdWlkLkRhdGE0WzBdKSwNCj4gJzB4JXgnJShwVnNOb2RlLkd1aWQuRGF0YTRbMV0p LCAnMHgleCclKHBWc05vZGUuR3VpZC5EYXRhNFsyXSksDQo+ICcweCV4JyUocFZzTm9kZS5HdWlk LkRhdGE0WzNdKSwgXA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICcweCV4JyUocFZz Tm9kZS5HdWlkLkRhdGE0WzRdKSwNCj4gJzB4JXgnJShwVnNOb2RlLkd1aWQuRGF0YTRbNV0pLCAn MHgleCclKHBWc05vZGUuR3VpZC5EYXRhNFs2XSksDQo+ICcweCV4JyUocFZzTm9kZS5HdWlkLkRh dGE0WzddKSkgKyAnIH19XCIsXG4nKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGYu d3JpdGUoJyAgICAgICAgXCJWYXJOYW1lXCI6DQo+IFwie31cIixcbicuZm9ybWF0KHN0cihwVnNO b2RlLk5hbWUpKSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAg ICAgIFwiRGVmYXVsdFN0b3JlXCI6IFwie31cIixcbicuZm9ybWF0KHN0cihwVnNOb2RlLklkKSkp DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICBcIlNpemVc Ijoge30sXG4nLmZvcm1hdChzdHIocEluZm9Ob2RlLldpZHRoKSkpDQo+IA0KPiAtICAgICAgICAg ICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICBcIk9mZnNldFwiOiB7fSxcbicuZm9ybWF0 KHN0cihwSW5mb05vZGUuT2Zmc2V0KSkpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg I2Yud3JpdGUoJyAgICAgICAgXCJWYWx1ZVwiOiBcInt9XCJcbicuZm9ybWF0KHN0cihwSW5mb05v ZGUuVmFsdWUpKSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBpZiBwSW5mb05vZGUu VHlwZSA9PSBFRklfSUZSX1RZUEVfREFURToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgZi53cml0ZSgnICAgICAgICBcIlZhbHVlXCI6DQo+IFwie30ve30ve31cIlxuJy5mb3Jt YXQocEluZm9Ob2RlLlZhbHVlLmRhdGUuWWVhciwgcEluZm9Ob2RlLlZhbHVlLmRhdGUuTW9udGgs DQo+IHBJbmZvTm9kZS5WYWx1ZS5kYXRlLkRheSkpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAg ICAgICAgaWYgcEluZm9Ob2RlLlR5cGUgPT0gRUZJX0lGUl9UWVBFX1RJTUU6DQo+IA0KPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgXCJWYWx1ZVwiOg0KPiBc Int9Ont9Ont9XCJcbicuZm9ybWF0KHBJbmZvTm9kZS5WYWx1ZS50aW1lLkhvdXIsDQo+IHBJbmZv Tm9kZS5WYWx1ZS50aW1lLk1pbnV0ZSwgcEluZm9Ob2RlLlZhbHVlLnRpbWUuU2Vjb25kKSkNCj4g DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBpZiBwSW5mb05vZGUuVHlwZSA9PSBFRklfSUZS X1RZUEVfUkVGOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCcg ICAgICAgIFwiVmFsdWVcIjoNCj4gXCJ7fTt7fTsnLmZvcm1hdChwSW5mb05vZGUuVmFsdWUucmVm LlF1ZXN0aW9uSWQsIHBJbmZvTm9kZS5WYWx1ZS5yZWYuRm9ybUlkKSArDQo+ICd7JyArICd7fSwg e30sDQo+IHt9LCcuZm9ybWF0KCcweCV4JyUocEluZm9Ob2RlLlZhbHVlLnJlZi5Gb3JtU2V0R3Vp ZC5EYXRhMSksJzB4JXgnJShwSW5mb05vDQo+IGRlLlZhbHVlLnJlZi5Gb3JtU2V0R3VpZC5EYXRh MiksDQo+ICcweCV4JyUocEluZm9Ob2RlLlZhbHVlLnJlZi5Gb3JtU2V0R3VpZC5EYXRhMykpIFwN Cj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAnIHsgJyArICAne30sIHt9LCB7 fSwge30sIHt9LCB7fSwge30sDQo+IHt9Jy5mb3JtYXQoJzB4JXgnJShwSW5mb05vZGUuVmFsdWUu cmVmLkZvcm1TZXRHdWlkLkRhdGE0WzBdKSwNCj4gJzB4JXgnJShwSW5mb05vZGUuVmFsdWUucmVm LkZvcm1TZXRHdWlkLkRhdGE0WzFdKSwNCj4gJzB4JXgnJShwSW5mb05vZGUuVmFsdWUucmVmLkZv cm1TZXRHdWlkLkRhdGE0WzJdKSwNCj4gJzB4JXgnJShwSW5mb05vZGUuVmFsdWUucmVmLkZvcm1T ZXRHdWlkLkRhdGE0WzNdKSwgXA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAn MHgleCclKHBJbmZvTm9kZS5WYWx1ZS5yZWYuRm9ybVNldEd1aWQuRGF0YTRbNF0pLA0KPiAnMHgl eCclKHBJbmZvTm9kZS5WYWx1ZS5yZWYuRm9ybVNldEd1aWQuRGF0YTRbNV0pLA0KPiAnMHgleCcl KHBJbmZvTm9kZS5WYWx1ZS5yZWYuRm9ybVNldEd1aWQuRGF0YTRbNl0pLA0KPiAnMHgleCclKHBJ bmZvTm9kZS5WYWx1ZS5yZWYuRm9ybVNldEd1aWQuRGF0YTRbN10pKSArICcgfX0nICsNCj4gJzt7 fVxuJy5mb3JtYXQocEluZm9Ob2RlLlZhbHVlLnJlZi5EZXZpY2VQYXRoKSkNCj4gDQo+IC0gICAg ICAgICAgICAgICAgICAgICAgICBpZiBwSW5mb05vZGUuVHlwZSA9PSBFRklfSUZSX1RZUEVfU1RS SU5HOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAg IFwiVmFsdWVcIjoNCj4gXCJ7fVwiXG4nLmZvcm1hdChwSW5mb05vZGUuVmFsdWUuc3RyaW5nKSkN Cj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBpZiBwSW5mb05vZGUuVHlwZSA9PSBFRklf SUZSX1RZUEVfTlVNX1NJWkVfODoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg Zi53cml0ZSgnICAgICAgICBcIlZhbHVlXCI6DQo+IFwie31cIlxuJy5mb3JtYXQoaGV4KHBJbmZv Tm9kZS5WYWx1ZS51OCkpKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHBJbmZv Tm9kZS5UeXBlID09IEVGSV9JRlJfVFlQRV9OVU1fU0laRV8xNjoNCj4gDQo+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICBcIlZhbHVlXCI6DQo+IFwie31cIlxu Jy5mb3JtYXQoaGV4KHBJbmZvTm9kZS5WYWx1ZS51MTYpKSkNCj4gDQo+IC0gICAgICAgICAgICAg ICAgICAgICAgICBpZiBwSW5mb05vZGUuVHlwZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMzI6 DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgXCJW YWx1ZVwiOg0KPiBcInt9XCJcbicuZm9ybWF0KGhleChwSW5mb05vZGUuVmFsdWUudTMyKSkpDQo+ IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgaWYgcEluZm9Ob2RlLlR5cGUgPT0gRUZJX0lG Ul9UWVBFX05VTV9TSVpFXzY0Og0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBm LndyaXRlKCcgICAgICAgIFwiVmFsdWVcIjoNCj4gXCJ7fVwiXG4nLmZvcm1hdChoZXgocEluZm9O b2RlLlZhbHVlLnU2NCkpKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHBJbmZv Tm9kZS5UeXBlID09IEVGSV9JRlJfVFlQRV9CT09MRUFOOg0KPiANCj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgIFwiVmFsdWVcIjoNCj4gXCJ7fVwiXG4nLmZv cm1hdChoZXgocEluZm9Ob2RlLlZhbHVlLmIpKSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAg ICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICB9LFxuJykNCj4gDQo+IC0gICAgICAgICAgICAg ICAgICAgICAgICBwSW5mb05vZGUgPSBwSW5mb05vZGUuTmV4dA0KPiANCj4gLSAgICAgICAgICAg ICAgICAgICAgcFZzTm9kZSA9IHBWc05vZGUuTmV4dA0KPiANCj4gLSAgICAgICAgICAgICAgICBm LndyaXRlKCcgICAgICB7XG4nKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAg ICAgIFwiVmVuZG9yR3VpZFwiOiBcIk5BXCIsXG4nKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBm LndyaXRlKCcgICAgICAgIFwiVmFyTmFtZVwiOiBcIk5BXCIsXG4nKQ0KPiANCj4gLSAgICAgICAg ICAgICAgICBmLndyaXRlKCcgICAgICAgIFwiRGVmYXVsdFN0b3JlXCI6IFwiTkFcIixcbicpDQo+ IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgXCJTaXplXCI6IDAsXG4nKQ0K PiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgIFwiT2Zmc2V0XCI6IDAsXG4n KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgIFwiVmFsdWVcIjogXCIw eDAwXCJcbicpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgIH1cbicpDQo+ IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgXVxuJykNCj4gDQo+IC0gICAgICAgICAg ICAgICAgZi53cml0ZSgnfVxuJykNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICBmLmNsb3Nl KCkNCj4gDQo+IC0gICAgICAgIGV4Y2VwdDoNCj4gDQo+IC0gICAgICAgICAgICBFZGtMb2dnZXIu ZXJyb3IoIlZmckNvbXBpbGVyIiwgRklMRV9PUEVOX0ZBSUxVUkUsICJGaWxlIG9wZW4gZmFpbGVk DQo+IGZvciAlcyIgJSBGaWxlTmFtZSwgTm9uZSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIER1 bXBZYW1sKHNlbGYsIFJvb3QsIEZpbGVOYW1lKToNCj4gDQo+IC0gICAgICAgIHRyeToNCj4gDQo+ IC0gICAgICAgICAgICB3aXRoIG9wZW4oRmlsZU5hbWUsICd3JykgYXMgZjoNCj4gDQo+IC0gICAg ICAgICAgICAgICAgZi53cml0ZSgnIyMgRE8gTk9UIFJFTU9WRSAtLSBWRlIgTW9kZVxuJykNCj4g DQo+IC0gICAgICAgICAgICAgICAgc2VsZi5EdW1wWWFtbERmcyhSb290LCBmKQ0KPiANCj4gLSAg ICAgICAgICAgIGYuY2xvc2UoKQ0KPiANCj4gLSAgICAgICAgZXhjZXB0Og0KPiANCj4gLSAgICAg ICAgICAgIEVka0xvZ2dlci5lcnJvcigiVmZyQ29tcGlsZXIiLCBGSUxFX09QRU5fRkFJTFVSRSwg IkZpbGUgb3BlbiBmYWlsZWQNCj4gZm9yICVzIiAlIEZpbGVOYW1lLCBOb25lKQ0KPiANCj4gLQ0K PiANCj4gLSAgICBkZWYgRHVtcFlhbWxEZnMoc2VsZiwgUm9vdCwgZik6DQo+IA0KPiAtDQo+IA0K PiAtICAgICAgICBpZiBSb290Lk9wQ29kZSAhPSBOb25lOg0KPiANCj4gLQ0KPiANCj4gLSAgICAg ICAgICAgIGlmIFJvb3QuT3BDb2RlID09IEVGSV9JRlJfRk9STV9TRVRfT1A6DQo+IA0KPiAtICAg ICAgICAgICAgICAgIEluZm8gPSBSb290LkRhdGEuR2V0SW5mbygpDQo+IA0KPiAtICAgICAgICAg ICAgICAgIGYud3JpdGUoJ0Zvcm1zZXQ6XG4nKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndy aXRlKCcgIEd1aWQ6ICB7JyArICd7fSwge30sDQo+IHt9LCcuZm9ybWF0KCcweCV4JyUoSW5mby5H dWlkLkRhdGExKSwnMHgleCclKEluZm8uR3VpZC5EYXRhMiksDQo+ICcweCV4JyUoSW5mby5HdWlk LkRhdGEzKSkgXA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgKyAnIHsgJyArICAne30sIHt9 LCB7fSwge30sIHt9LCB7fSwge30sIHt9Jy5mb3JtYXQoJzB4JXgnJShJbmZvLkd1aWQuRGF0YTRb MF0pLA0KPiAnMHgleCclKEluZm8uR3VpZC5EYXRhNFsxXSksICcweCV4JyUoSW5mby5HdWlkLkRh dGE0WzJdKSwNCj4gJzB4JXgnJShJbmZvLkd1aWQuRGF0YTRbM10pLCBcDQo+IA0KPiAtICAgICAg ICAgICAgICAgICAgICAnMHgleCclKEluZm8uR3VpZC5EYXRhNFs0XSksICcweCV4JyUoSW5mby5H dWlkLkRhdGE0WzVdKSwNCj4gJzB4JXgnJShJbmZvLkd1aWQuRGF0YTRbNl0pLCAnMHgleCclKElu Zm8uR3VpZC5EYXRhNFs3XSkpICsgJyB9fVxuJykNCj4gDQo+IC0gICAgICAgICAgICAgICAgZi53 cml0ZSgnICBUaXRsZTogIHt9ICAjIFRpdGxlIFNUUklOR19JRFxuJy5mb3JtYXQoSW5mby5Gb3Jt U2V0VGl0bGUpKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCcgIEhlbHA6ICB7fSAg IyBIZWxwIFNUUklOR19JRFxuJy5mb3JtYXQoSW5mby5IZWxwKSkNCj4gDQo+IC0gICAgICAgICAg ICAgICAgZm9yIEd1aWQgaW4gUm9vdC5EYXRhLkdldENsYXNzR3VpZCgpOg0KPiANCj4gLSAgICAg ICAgICAgICAgICAgICAgZi53cml0ZSgnICBDbGFzc0d1aWQ6ICB7JyArICd7fSwge30sDQo+IHt9 LCcuZm9ybWF0KCcweCV4JyUoR3VpZC5EYXRhMSksJzB4JXgnJShHdWlkLkRhdGEyKSwgJzB4JXgn JShHdWlkLkRhdGEzKSkgXA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgKyAnIHsgJyArICAn e30sIHt9LCB7fSwge30sIHt9LCB7fSwge30sIHt9Jy5mb3JtYXQoJzB4JXgnJShHdWlkLkRhdGE0 WzBdKSwNCj4gJzB4JXgnJShHdWlkLkRhdGE0WzFdKSwgJzB4JXgnJShHdWlkLkRhdGE0WzJdKSwg JzB4JXgnJShHdWlkLkRhdGE0WzNdKSwgXA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgJzB4 JXgnJShHdWlkLkRhdGE0WzRdKSwgJzB4JXgnJShHdWlkLkRhdGE0WzVdKSwNCj4gJzB4JXgnJShH dWlkLkRhdGE0WzZdKSwgJzB4JXgnJShHdWlkLkRhdGE0WzddKSkgKyAnIH19XG4nKQ0KPiANCj4g LQ0KPiANCj4gLSAgICAgICAgICAgIGlmIFJvb3QuT3BDb2RlID09IEVGSV9JRlJfVkFSU1RPUkVf T1A6DQo+IA0KPiAtICAgICAgICAgICAgICAgIEluZm8gPSBSb290LkRhdGEuR2V0SW5mbygpDQo+ IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgLSB2YXJzdG9yZTpcbicpDQo+IA0KPiAt ICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgIHZhcmlkOiAge31cbicuZm9ybWF0KEluZm8u VmFyU3RvcmVJZCkpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgIG5hbWU6 ICB7fVxuJy5mb3JtYXQoSW5mby5OYW1lKSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgZi53cml0 ZSgnICAgICAgc2l6ZTogIHt9XG4nLmZvcm1hdChJbmZvLlNpemUpKQ0KPiANCj4gLSAgICAgICAg ICAgICAgICBmLndyaXRlKCcgICAgICBndWlkOiAgeycgKyAne30sIHt9LA0KPiB7fSwnLmZvcm1h dCgnMHgleCclKEluZm8uR3VpZC5EYXRhMSksJzB4JXgnJShJbmZvLkd1aWQuRGF0YTIpLA0KPiAn MHgleCclKEluZm8uR3VpZC5EYXRhMykpIFwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICsg JyB7ICcgKyAgJ3t9LCB7fSwge30sIHt9LCB7fSwge30sIHt9LCB7fScuZm9ybWF0KCcweCV4JyUo SW5mby5HdWlkLkRhdGE0WzBdKSwNCj4gJzB4JXgnJShJbmZvLkd1aWQuRGF0YTRbMV0pLCAnMHgl eCclKEluZm8uR3VpZC5EYXRhNFsyXSksDQo+ICcweCV4JyUoSW5mby5HdWlkLkRhdGE0WzNdKSwg XA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgJzB4JXgnJShJbmZvLkd1aWQuRGF0YTRbNF0p LCAnMHgleCclKEluZm8uR3VpZC5EYXRhNFs1XSksDQo+ICcweCV4JyUoSW5mby5HdWlkLkRhdGE0 WzZdKSwgJzB4JXgnJShJbmZvLkd1aWQuRGF0YTRbN10pKSArICcgfX1cbicpDQo+IA0KPiAtDQo+ IA0KPiAtICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9WQVJTVE9SRV9FRklf T1A6DQo+IA0KPiAtICAgICAgICAgICAgICAgIEluZm8gPSBSb290LkRhdGEuR2V0SW5mbygpDQo+ IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgLSBlZml2YXJzdG9yZTpcbicpDQo+IA0K PiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgIHZhcmlkOiAge31cbicuZm9ybWF0KElu Zm8uVmFyU3RvcmVJZCkpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgIG5h bWU6ICB7fVxuJy5mb3JtYXQoSW5mby5OYW1lKSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgZi53 cml0ZSgnICAgICAgc2l6ZTogIHt9XG4nLmZvcm1hdChJbmZvLlNpemUpKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBmLndyaXRlKCcgICAgICBndWlkOiAgeycgKyAne30sIHt9LA0KPiB7fSwnLmZv cm1hdCgnMHgleCclKEluZm8uR3VpZC5EYXRhMSksJzB4JXgnJShJbmZvLkd1aWQuRGF0YTIpLA0K PiAnMHgleCclKEluZm8uR3VpZC5EYXRhMykpIFwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAg ICsgJyB7ICcgKyAgJ3t9LCB7fSwge30sIHt9LCB7fSwge30sIHt9LCB7fScuZm9ybWF0KCcweCV4 JyUoSW5mby5HdWlkLkRhdGE0WzBdKSwNCj4gJzB4JXgnJShJbmZvLkd1aWQuRGF0YTRbMV0pLCAn MHgleCclKEluZm8uR3VpZC5EYXRhNFsyXSksDQo+ICcweCV4JyUoSW5mby5HdWlkLkRhdGE0WzNd KSwgXA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgJzB4JXgnJShJbmZvLkd1aWQuRGF0YTRb NF0pLCAnMHgleCclKEluZm8uR3VpZC5EYXRhNFs1XSksDQo+ICcweCV4JyUoSW5mby5HdWlkLkRh dGE0WzZdKSwgJzB4JXgnJShJbmZvLkd1aWQuRGF0YTRbN10pKSArICcgfX1cbicpDQo+IA0KPiAt ICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgIGF0dHJpYnV0ZTogIHt9XG4nLmZvcm1hdChJ bmZvLkF0dHJpYnV0ZXMpKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgIGlmIFJvb3QuT3BD b2RlID09IEVGSV9JRlJfVkFSU1RPUkVfTkFNRV9WQUxVRV9PUDoNCj4gDQo+IC0gICAgICAgICAg ICAgICAgSW5mbyA9IFJvb3QuRGF0YS5HZXRJbmZvKCkNCj4gDQo+IC0gICAgICAgICAgICAgICAg Zi53cml0ZSgnICAtIG5hbWV2YWx1ZXZhcnN0b3JlOlxuJykNCj4gDQo+IC0gICAgICAgICAgICAg ICAgZi53cml0ZSgnICAgICAgdmFyaWQ6ICB7fVxuJy5mb3JtYXQoSW5mby5WYXJTdG9yZUlkKSkN Cj4gDQo+IC0gICAgICAgICAgICAgICAgIyBmLndyaXRlKCcgICAgICBuYW1lOiAge31cbicuZm9y bWF0KEluZm8uTmFtZSkpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgIGd1 aWQ6ICB7JyArICd7fSwge30sDQo+IHt9LCcuZm9ybWF0KCcweCV4JyUoSW5mby5HdWlkLkRhdGEx KSwnMHgleCclKEluZm8uR3VpZC5EYXRhMiksDQo+ICcweCV4JyUoSW5mby5HdWlkLkRhdGEzKSkg XA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgKyAnIHsgJyArICAne30sIHt9LCB7fSwge30s IHt9LCB7fSwge30sIHt9Jy5mb3JtYXQoJzB4JXgnJShJbmZvLkd1aWQuRGF0YTRbMF0pLA0KPiAn MHgleCclKEluZm8uR3VpZC5EYXRhNFsxXSksICcweCV4JyUoSW5mby5HdWlkLkRhdGE0WzJdKSwN Cj4gJzB4JXgnJShJbmZvLkd1aWQuRGF0YTRbM10pLCBcDQo+IA0KPiAtICAgICAgICAgICAgICAg ICAgICAnMHgleCclKEluZm8uR3VpZC5EYXRhNFs0XSksICcweCV4JyUoSW5mby5HdWlkLkRhdGE0 WzVdKSwNCj4gJzB4JXgnJShJbmZvLkd1aWQuRGF0YTRbNl0pLCAnMHgleCclKEluZm8uR3VpZC5E YXRhNFs3XSkpICsgJyB9fVxuJykNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICBpZiBSb290 Lk9wQ29kZSA9PSBFRklfSUZSX0ZPUk1fT1A6DQo+IA0KPiAtICAgICAgICAgICAgICAgIEluZm8g PSBSb290LkRhdGEuR2V0SW5mbygpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAg LSBmb3JtOlxuJykNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgUm9vdC5Db25kaXRpb24gIT0g Tm9uZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgIGNvbmRpdGlv bjogIHt9XG4nLmZvcm1hdChSb290LkNvbmRpdGlvbikpDQo+IA0KPiAtICAgICAgICAgICAgICAg IGYud3JpdGUoJyAgICAgIEZvcm1JZDogIHt9ICAjIEZvcm1JZCBTVFJJTkdfSURcbicuZm9ybWF0 KEluZm8uRm9ybUlkKSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgRm9y bVRpdGxlOiAge30gICMgRm9ybVRpdGxlDQo+IFNUUklOR19JRFxuJy5mb3JtYXQoSW5mby5Gb3Jt VGl0bGUpKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgIGlmIFJvb3QuT3BDb2RlID09IEVG SV9JRlJfRk9STV9NQVBfT1A6DQo+IA0KPiAtICAgICAgICAgICAgICAgIEluZm8sIE1ldGhvZE1h cExpc3QgPSBSb290LkRhdGEuR2V0SW5mbygpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3Jp dGUoJyAgLSBmb3JtbWFwOlxuJykNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgUm9vdC5Db25k aXRpb24gIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAg IGNvbmRpdGlvbjogIHt9XG4nLmZvcm1hdChSb290LkNvbmRpdGlvbikpDQo+IA0KPiAtICAgICAg ICAgICAgICAgIGYud3JpdGUoJyAgICAgIEZvcm1JZDogIHt9ICAjIEZvcm1JZCBTVFJJTkdfSURc bicuZm9ybWF0KEluZm8uRm9ybUlkKSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgZm9yIE1ldGhv ZE1hcCBpbiAgTWV0aG9kTWFwTGlzdDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGYud3Jp dGUoJyAgICAgIG1hcHRpdGxlOiAge31cbicuZm9ybWF0KE1ldGhvZE1hcC5NZXRob2RUaXRsZSkp DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICBtYXBndWlkOiAgeycg KyAne30sIHt9LA0KPiB7fSwnLmZvcm1hdCgnMHgleCclKE1ldGhvZE1hcC5NZXRob2RJZGVudGlm aWVyLkRhdGExKSwnMHgleCclKE1ldGhvZE1hDQo+IHAuTWV0aG9kSWRlbnRpZmllci5EYXRhMiks ICcweCV4JyUoTWV0aG9kTWFwLk1ldGhvZElkZW50aWZpZXIuRGF0YTMpKSBcDQo+IA0KPiAtICAg ICAgICAgICAgICAgICAgICArICcgeyAnICsgICd7fSwge30sIHt9LCB7fSwge30sIHt9LCB7fSwN Cj4ge30nLmZvcm1hdCgnMHgleCclKE1ldGhvZE1hcC5NZXRob2RJZGVudGlmaWVyLkRhdGE0WzBd KSwNCj4gJzB4JXgnJShNZXRob2RNYXAuTWV0aG9kSWRlbnRpZmllci5EYXRhNFsxXSksDQo+ICcw eCV4JyUoTWV0aG9kTWFwLk1ldGhvZElkZW50aWZpZXIuRGF0YTRbMl0pLA0KPiAnMHgleCclKE1l dGhvZE1hcC5NZXRob2RJZGVudGlmaWVyLkRhdGE0WzNdKSwgXA0KPiANCj4gLSAgICAgICAgICAg ICAgICAgICAgJzB4JXgnJShNZXRob2RNYXAuTWV0aG9kSWRlbnRpZmllci5EYXRhNFs0XSksDQo+ ICcweCV4JyUoTWV0aG9kTWFwLk1ldGhvZElkZW50aWZpZXIuRGF0YTRbNV0pLA0KPiAnMHgleCcl KE1ldGhvZE1hcC5NZXRob2RJZGVudGlmaWVyLkRhdGE0WzZdKSwNCj4gJzB4JXgnJShNZXRob2RN YXAuTWV0aG9kSWRlbnRpZmllci5EYXRhNFs3XSkpICsgJyB9fVxuJykNCj4gDQo+IC0NCj4gDQo+ IC0gICAgICAgICAgICBpZiBSb290Lk9wQ29kZSA9PSBFRklfSUZSX0lNQUdFX09QOg0KPiANCj4g LSAgICAgICAgICAgICAgICBJbmZvID0gUm9vdC5EYXRhLkdldEluZm8oKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBmLndyaXRlKCcgICAgICAtIGltYWdlOlxuJykNCj4gDQo+IC0gICAgICAgICAg ICAgICAgaWYgUm9vdC5Db25kaXRpb24gIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAgICAg ICAgIGYud3JpdGUoJyAgICAgICAgICBjb25kaXRpb246ICB7fVxuJy5mb3JtYXQoUm9vdC5Db25k aXRpb24pKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAgSWQ6ICB7 fSAjIEltYWdlSWRcbicuZm9ybWF0KEluZm8uSWQpKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAg ICAgIGlmIFJvb3QuT3BDb2RlID09IEVGSV9JRlJfUlVMRV9PUDoNCj4gDQo+IC0gICAgICAgICAg ICAgICAgSW5mbyA9IFJvb3QuRGF0YS5HZXRJbmZvKCkNCj4gDQo+IC0gICAgICAgICAgICAgICAg Zi53cml0ZSgnICAgICAgLSBydWxlOlxuJykNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgUm9v dC5Db25kaXRpb24gIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGYud3JpdGUo JyAgICAgICAgICBjb25kaXRpb246ICB7fVxuJy5mb3JtYXQoUm9vdC5Db25kaXRpb24pKQ0KPiAN Cj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAgUnVsZUlkOiAge30gIyBSdWxl SWRcbicuZm9ybWF0KEluZm8uUnVsZUlkKSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICBp ZiBSb290Lk9wQ29kZSA9PSBFRklfSUZSX1NVQlRJVExFX09QOg0KPiANCj4gLSAgICAgICAgICAg ICAgICBJbmZvID0gUm9vdC5EYXRhLkdldEluZm8oKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBm LndyaXRlKCcgICAgICAtIHN1YnRpdGxlOlxuJykNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYg Um9vdC5Db25kaXRpb24gIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGYud3Jp dGUoJyAgICAgICAgICBjb25kaXRpb246ICB7fVxuJy5mb3JtYXQoUm9vdC5Db25kaXRpb24pKQ0K PiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAgcHJvbXB0OiAge30gICMg U3RhdGVtZW50IFByb21wdA0KPiBTVFJJTkdfSURcbicuZm9ybWF0KEluZm8uU3RhdGVtZW50LlBy b21wdCkpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJ X0lGUl9URVhUX09QOg0KPiANCj4gLSAgICAgICAgICAgICAgICBJbmZvID0gUm9vdC5EYXRhLkdl dEluZm8oKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAtIHRleHQ6XG4n KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBpZiBSb290LkNvbmRpdGlvbiAhPSBOb25lOg0KPiAN Cj4gLSAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIGNvbmRpdGlvbjogIHt9 XG4nLmZvcm1hdChSb290LkNvbmRpdGlvbikpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3Jp dGUoJyAgICAgICAgICBwcm9tcHQ6ICB7fSAgIyBTdGF0ZW1lbnQgUHJvbXB0DQo+IFNUUklOR19J RFxuJy5mb3JtYXQoSW5mby5TdGF0ZW1lbnQuUHJvbXB0KSkNCj4gDQo+IC0gICAgICAgICAgICAg ICAgZi53cml0ZSgnICAgICAgICAgIGhlbHA6ICB7fSAgIyBTdGF0ZW1lbnQgSGVscA0KPiBTVFJJ TkdfSURcbicuZm9ybWF0KEluZm8uU3RhdGVtZW50LkhlbHApKQ0KPiANCj4gLSAgICAgICAgICAg ICAgICBmLndyaXRlKCcgICAgICAgICAgdGV4dDogIHt9ICAjIFN0YXRlbWVudCBIZWxwDQo+IFNU UklOR19JRFxuJy5mb3JtYXQoSW5mby5UZXh0VHdvKSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAg ICAgICBpZiBSb290Lk9wQ29kZSA9PSBFRklfSUZSX0FDVElPTl9PUDoNCj4gDQo+IC0gICAgICAg ICAgICAgICAgSW5mbyA9IFJvb3QuRGF0YS5HZXRJbmZvKCkNCj4gDQo+IC0gICAgICAgICAgICAg ICAgZi53cml0ZSgnICAgICAgLSBhY3Rpb246XG4nKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBp ZiBSb290LkNvbmRpdGlvbiAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgZi53 cml0ZSgnICAgICAgICAgIGNvbmRpdGlvbjogIHt9XG4nLmZvcm1hdChSb290LkNvbmRpdGlvbikp DQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICBwcm9tcHQ6ICB7fSAg IyBTdGF0ZW1lbnQgUHJvbXB0DQo+IFNUUklOR19JRFxuJy5mb3JtYXQoSW5mby5RdWVzdGlvbi5I ZWFkZXIuUHJvbXB0KSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAg IGhlbHA6ICB7fSAgIyBTdGF0ZW1lbnQgSGVscA0KPiBTVFJJTkdfSURcbicuZm9ybWF0KEluZm8u UXVlc3Rpb24uSGVhZGVyLkhlbHApKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCcg ICAgICAgICAgcXVlc3Rpb25pZDogIHt9ICAjIFF1ZXN0aW9uDQo+IFF1ZXN0aW9uSWRcbicuZm9y bWF0KEluZm8uUXVlc3Rpb24uUXVlc3Rpb25JZCkpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYu d3JpdGUoJyAgICAgICAgICB2YXJzdG9yZWlkOiAge30gICMgUXVlc3Rpb24NCj4gVmFyU3RvcmVJ ZFxuJy5mb3JtYXQoSW5mby5RdWVzdGlvbi5WYXJTdG9yZUlkKSkNCj4gDQo+IC0gICAgICAgICAg ICAgICAgZi53cml0ZSgnICAgICAgICAgIGZsYWdzOiAge30gICMgUXVlc3Rpb24NCj4gRmxhZ3Nc bicuZm9ybWF0KEluZm8uUXVlc3Rpb24uRmxhZ3MpKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBm LndyaXRlKCcgICAgICAgICAgcXVlc3Rpb25jb25maWc6ICB7fSAgIw0KPiBRdWVzdGlvbkNvbmZp Z1xuJy5mb3JtYXQoSW5mby5RdWVzdGlvbkNvbmZpZykpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAg ICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9PTkVfT0ZfT1A6DQo+IA0KPiAtICAgICAg ICAgICAgICAgIEluZm8gPSBSb290LkRhdGEuR2V0SW5mbygpDQo+IA0KPiAtICAgICAgICAgICAg ICAgIGYud3JpdGUoJyAgICAgIC0gb25lb2Y6XG4nKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBp ZiBSb290LkNvbmRpdGlvbiAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgZi53 cml0ZSgnICAgICAgICAgIGNvbmRpdGlvbjogIHt9XG4nLmZvcm1hdChSb290LkNvbmRpdGlvbikp DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICBwcm9t cHQ6ICB7fSAgIyBTdGF0ZW1lbnQgUHJvbXB0DQo+IFNUUklOR19JRFxuJy5mb3JtYXQoSW5mby5R dWVzdGlvbi5IZWFkZXIuUHJvbXB0KSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgZi53cml0ZSgn ICAgICAgICAgIGhlbHA6ICB7fSAgIyBTdGF0ZW1lbnQgSGVscA0KPiBTVFJJTkdfSURcbicuZm9y bWF0KEluZm8uUXVlc3Rpb24uSGVhZGVyLkhlbHApKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBm LndyaXRlKCcgICAgICAgICAgcXVlc3Rpb25pZDogIHt9ICAjIFF1ZXN0aW9uDQo+IFF1ZXN0aW9u SWRcbicuZm9ybWF0KEluZm8uUXVlc3Rpb24uUXVlc3Rpb25JZCkpDQo+IA0KPiAtICAgICAgICAg ICAgICAgIGYud3JpdGUoJyAgICAgICAgICB2YXJzdG9yZWlkOiAge30gICMgUXVlc3Rpb24NCj4g VmFyU3RvcmVJZFxuJy5mb3JtYXQoSW5mby5RdWVzdGlvbi5WYXJTdG9yZUlkKSkNCj4gDQo+IC0g ICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIHZhcm5hbWU6ICB7fSAgIyBRdWVzdGlv biBWYXJOYW1lDQo+IFNUUklOR19JRFxuJy5mb3JtYXQoSW5mby5RdWVzdGlvbi5WYXJTdG9yZUlu Zm8uVmFyTmFtZSkpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICB2 YXJvZmZzZXQ6ICB7fSAgIyBRdWVzdGlvbg0KPiBWYXJPZmZzZXRcbicuZm9ybWF0KEluZm8uUXVl c3Rpb24uVmFyU3RvcmVJbmZvLlZhck9mZnNldCkpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYu d3JpdGUoJyAgICAgICAgICBmbGFnczogIHt9ICAjIFF1ZXN0aW9uDQo+IEZsYWdzXG4nLmZvcm1h dChJbmZvLlF1ZXN0aW9uLkZsYWdzKSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICBpZiBS b290Lk9wQ29kZSA9PSBFRklfSUZSX09ORV9PRl9PUFRJT05fT1A6DQo+IA0KPiAtICAgICAgICAg ICAgICAgIEluZm8gPSBSb290LkRhdGEuR2V0SW5mbygpDQo+IA0KPiAtICAgICAgICAgICAgICAg IGYud3JpdGUoJyAgICAgICAgICAtIG9wdGlvbjogIHt9XG4nLmZvcm1hdChJbmZvLk9wdGlvbikp DQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIFJvb3QuQ29uZGl0aW9uICE9IE5vbmU6DQo+IA0K PiAtICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAgICAgIGNvbmRpdGlvbjog IHt9XG4nLmZvcm1hdChSb290LkNvbmRpdGlvbikpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAg ICAgICAgIGYud3JpdGUoJyAgICAgICAgICAgICAgb3B0aW9uIGZsYWc6ICB7fVxuJy5mb3JtYXQo SW5mby5GbGFncykpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICAg ICAgb3B0aW9uIHR5cGU6ICB7fVxuJy5mb3JtYXQoSW5mby5UeXBlKSkNCj4gDQo+IC0NCj4gDQo+ IC0gICAgICAgICAgICAgICAgaWYgdHlwZShSb290LkRhdGEpID09IENJZnJPbmVPZk9wdGlvbjoN Cj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGlmIEluZm8uVHlwZSA9PSBFRklfSUZSX1RZUEVf REFURToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAg ICAgIG9wdGlvbiB2YWx1ZToNCj4ge30ve30ve31cbicuZm9ybWF0KEluZm8uVmFsdWUuZGF0ZS5Z ZWFyLCBJbmZvLlZhbHVlLmRhdGUuTW9udGgsDQo+IEluZm8uVmFsdWUuZGF0ZS5EYXkpKQ0KPiAN Cj4gLSAgICAgICAgICAgICAgICAgICAgaWYgSW5mby5UeXBlID09IEVGSV9JRlJfVFlQRV9USU1F Og0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICAgICAg b3B0aW9uIHZhbHVlOg0KPiB7fTp7fTp7fVxuJy5mb3JtYXQoSW5mby5WYWx1ZS50aW1lLkhvdXIs IEluZm8uVmFsdWUudGltZS5NaW51dGUsDQo+IEluZm8uVmFsdWUudGltZS5TZWNvbmQpKQ0KPiAN Cj4gLSAgICAgICAgICAgICAgICAgICAgaWYgSW5mby5UeXBlID09IEVGSV9JRlJfVFlQRV9SRUY6 DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgICAgICBv cHRpb24gdmFsdWU6DQo+IHt9O3t9OycuZm9ybWF0KEluZm8uVmFsdWUucmVmLlF1ZXN0aW9uSWQs IEluZm8uVmFsdWUucmVmLkZvcm1JZCkgKyAgJ3snICsgJ3t9LCB7fSwNCj4ge30sJy5mb3JtYXQo JzB4JXgnJShJbmZvLlZhbHVlLnJlZi5Gb3JtU2V0R3VpZC5EYXRhMSksJzB4JXgnJShJbmZvLlZh bHVlLnJlZi5GDQo+IG9ybVNldEd1aWQuRGF0YTIpLCAnMHgleCclKEluZm8uVmFsdWUucmVmLkZv cm1TZXRHdWlkLkRhdGEzKSkgXA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICsgJyB7 ICcgKyAgJ3t9LCB7fSwge30sIHt9LCB7fSwge30sIHt9LA0KPiB7fScuZm9ybWF0KCcweCV4JyUo SW5mby5WYWx1ZS5yZWYuRm9ybVNldEd1aWQuRGF0YTRbMF0pLA0KPiAnMHgleCclKEluZm8uVmFs dWUucmVmLkZvcm1TZXRHdWlkLkRhdGE0WzFdKSwNCj4gJzB4JXgnJShJbmZvLlZhbHVlLnJlZi5G b3JtU2V0R3VpZC5EYXRhNFsyXSksDQo+ICcweCV4JyUoSW5mby5WYWx1ZS5yZWYuRm9ybVNldEd1 aWQuRGF0YTRbM10pLCBcDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgJzB4JXgnJShJ bmZvLlZhbHVlLnJlZi5Gb3JtU2V0R3VpZC5EYXRhNFs0XSksDQo+ICcweCV4JyUoSW5mby5WYWx1 ZS5yZWYuRm9ybVNldEd1aWQuRGF0YTRbNV0pLA0KPiAnMHgleCclKEluZm8uVmFsdWUucmVmLkZv cm1TZXRHdWlkLkRhdGE0WzZdKSwNCj4gJzB4JXgnJShJbmZvLlZhbHVlLnJlZi5Gb3JtU2V0R3Vp ZC5EYXRhNFs3XSkpICsgJyB9fScgKw0KPiAnO3t9XG4nLmZvcm1hdChJbmZvLlZhbHVlLnJlZi5E ZXZpY2VQYXRoKSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGlmIEluZm8uVHlwZSA9PSBF RklfSUZSX1RZUEVfU1RSSU5HOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGYud3Jp dGUoJyAgICAgICAgICAgICAgb3B0aW9uIHZhbHVlOiAge31cbicuZm9ybWF0KEluZm8uVmFsdWUu c3RyaW5nKSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGlmIEluZm8uVHlwZSA9PSBFRklf SUZSX1RZUEVfTlVNX1NJWkVfODoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBmLndy aXRlKCcgICAgICAgICAgICAgIG9wdGlvbiB2YWx1ZTogIHt9XG4nLmZvcm1hdChJbmZvLlZhbHVl LnU4KSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGlmIEluZm8uVHlwZSA9PSBFRklfSUZS X1RZUEVfTlVNX1NJWkVfMTY6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0 ZSgnICAgICAgICAgICAgICBvcHRpb24gdmFsdWU6ICB7fVxuJy5mb3JtYXQoSW5mby5WYWx1ZS51 MTYpKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgaWYgSW5mby5UeXBlID09IEVGSV9JRlJf VFlQRV9OVU1fU0laRV8zMjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRl KCcgICAgICAgICAgICAgIG9wdGlvbiB2YWx1ZTogIHt9XG4nLmZvcm1hdChJbmZvLlZhbHVlLnUz MikpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBpZiBJbmZvLlR5cGUgPT0gRUZJX0lGUl9U WVBFX05VTV9TSVpFXzY0Og0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUo JyAgICAgICAgICAgICAgb3B0aW9uIHZhbHVlOiAge31cbicuZm9ybWF0KEluZm8uVmFsdWUudTY0 KSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGlmIEluZm8uVHlwZSA9PSBFRklfSUZSX1RZ UEVfQk9PTEVBTjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAg ICAgICAgICAgIG9wdGlvbiB2YWx1ZTogIHt9XG4nLmZvcm1hdChJbmZvLlZhbHVlLmIpKQ0KPiAN Cj4gLQ0KPiANCj4gLSAgICAgICAgICAgICAgICBpZiB0eXBlKFJvb3QuRGF0YSkgPT0gQ0lmck9u ZU9mT3B0aW9uMjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAg ICAgICAgdmFsdWU6ICB7JykNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIFZhbHVlVHlwZSA9 IFJvb3QuRGF0YS5HZXRWYWx1ZVR5cGUoKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgaWYg VmFsdWVUeXBlID09IEVGSV9JRlJfVFlQRV9TVFJJTkc6DQo+IA0KPiAtICAgICAgICAgICAgICAg ICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgbGVuKEluZm8uVmFsdWUpLTEpOg0KPiANCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCd7fSwnLmZvcm1hdChJbmZvLlZhbHVl W2ldLnN0cmluZykpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgne30n LmZvcm1hdChJbmZvLlZhbHVlW2xlbihJbmZvLlZhbHVlKS0xXS5zdHJpbmcpICsgJ31cbicpDQo+ IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBpZiBWYWx1ZVR5cGUgPT0gRUZJX0lG Ul9UWVBFX05VTV9TSVpFXzg6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkg aW4gcmFuZ2UoMCwgbGVuKEluZm8uVmFsdWUpLTEpOg0KPiANCj4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmLndyaXRlKCd7fSwnLmZvcm1hdChJbmZvLlZhbHVlW2ldLnU4KSkNCj4gDQo+ IC0gICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCd7fScuZm9ybWF0KEluZm8uVmFsdWVb bGVuKEluZm8uVmFsdWUpLTFdLnU4KSArICd9XG4nKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAg ICAgICAgICAgICAgaWYgVmFsdWVUeXBlID09IEVGSV9JRlJfVFlQRV9OVU1fU0laRV8xNjoNCj4g DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCBsZW4oSW5mby5W YWx1ZSktMSk6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJ3t9 LCcuZm9ybWF0KEluZm8uVmFsdWVbaV0udTE2KSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAg ICAgICBmLndyaXRlKCd7fScuZm9ybWF0KEluZm8uVmFsdWVbbGVuKEluZm8uVmFsdWUpLTFdLnUx NikgKyAnfVxuJykNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGlmIFZhbHVl VHlwZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMzI6DQo+IA0KPiAtICAgICAgICAgICAgICAg ICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgbGVuKEluZm8uVmFsdWUpLTEpOg0KPiANCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCd7fSwnLmZvcm1hdChJbmZvLlZhbHVl W2ldLnUzMikpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgne30nLmZv cm1hdChJbmZvLlZhbHVlW2xlbihJbmZvLlZhbHVlKS0xXS51MzIpICsgJ31cbicpDQo+IA0KPiAt DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBpZiBWYWx1ZVR5cGUgPT0gRUZJX0lGUl9UWVBF X05VTV9TSVpFXzY0Og0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIHJh bmdlKDAsIGxlbihJbmZvLlZhbHVlKS0xKToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgZi53cml0ZSgne30sJy5mb3JtYXQoSW5mby5WYWx1ZVtpXS51NjQpKQ0KPiANCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJ3t9Jy5mb3JtYXQoSW5mby5WYWx1ZVtsZW4o SW5mby5WYWx1ZSktMV0udTY0KSArICd9XG4nKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAg ICAgICAgICAgaWYgVmFsdWVUeXBlID09IEVGSV9JRlJfVFlQRV9CT09MRUFOOg0KPiANCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKDAsIGxlbihJbmZvLlZhbHVlKS0x KToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgne30sJy5mb3Jt YXQoSW5mby5WYWx1ZVtpXS5iKSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBmLndy aXRlKCd7fScuZm9ybWF0KEluZm8uVmFsdWVbbGVuKEluZm8uVmFsdWUpLTFdLmIpICsgJ31cbicp DQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0g RUZJX0lGUl9ERUZBVUxUX09QOg0KPiANCj4gLSAgICAgICAgICAgICAgICBJbmZvID0gUm9vdC5E YXRhLkdldEluZm8oKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAg LSBkZWZhdWx0OlxuJykNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgUm9vdC5Db25kaXRpb24g IT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICAg ICAgY29uZGl0aW9uOiAge31cbicuZm9ybWF0KFJvb3QuQ29uZGl0aW9uKSkNCj4gDQo+IC0gICAg ICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgICAgICB0eXBlOiAge31cbicuZm9ybWF0KElu Zm8uVHlwZSkpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICAgICAg ZGVmYXVsdElkOiAge31cbicuZm9ybWF0KEluZm8uRGVmYXVsdElkKSkNCj4gDQo+IC0gICAgICAg ICAgICAgICAgaWYgdHlwZShSb290LkRhdGEpID09IENJZnJEZWZhdWx0Og0KPiANCj4gLSAgICAg ICAgICAgICAgICAgICAgaWYgSW5mby5UeXBlID09IEVGSV9JRlJfVFlQRV9EQVRFOg0KPiANCj4g LSAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICAgICAgdmFsdWU6ICB7 fS97fS97fVxuJy5mb3JtYXQoSW5mby5WYWx1ZS5kYXRlLlllYXIsDQo+IEluZm8uVmFsdWUuZGF0 ZS5Nb250aCwgSW5mby5WYWx1ZS5kYXRlLkRheSkpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAg ICBpZiBJbmZvLlR5cGUgPT0gRUZJX0lGUl9UWVBFX1RJTUU6DQo+IA0KPiAtICAgICAgICAgICAg ICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgICAgICB2YWx1ZTogIHt9Ont9Ont9XG4nLmZv cm1hdChJbmZvLlZhbHVlLnRpbWUuSG91ciwNCj4gSW5mby5WYWx1ZS50aW1lLk1pbnV0ZSwgSW5m by5WYWx1ZS50aW1lLlNlY29uZCkpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBpZiBJbmZv LlR5cGUgPT0gRUZJX0lGUl9UWVBFX1JFRjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAg ICBmLndyaXRlKCcgICAgICAgICAgICAgIG9wdGlvbiB2YWx1ZToNCj4ge307e307Jy5mb3JtYXQo SW5mby5WYWx1ZS5yZWYuUXVlc3Rpb25JZCwgSW5mby5WYWx1ZS5yZWYuRm9ybUlkKSArICAneycg KyAne30sIHt9LA0KPiB7fSwnLmZvcm1hdCgnMHgleCclKEluZm8uVmFsdWUucmVmLkZvcm1TZXRH dWlkLkRhdGExKSwnMHgleCclKEluZm8uVmFsdWUucmVmLkYNCj4gb3JtU2V0R3VpZC5EYXRhMiks ICcweCV4JyUoSW5mby5WYWx1ZS5yZWYuRm9ybVNldEd1aWQuRGF0YTMpKSBcDQo+IA0KPiAtICAg ICAgICAgICAgICAgICAgICAgICAgKyAnIHsgJyArICAne30sIHt9LCB7fSwge30sIHt9LCB7fSwg e30sDQo+IHt9Jy5mb3JtYXQoJzB4JXgnJShJbmZvLlZhbHVlLnJlZi5Gb3JtU2V0R3VpZC5EYXRh NFswXSksDQo+ICcweCV4JyUoSW5mby5WYWx1ZS5yZWYuRm9ybVNldEd1aWQuRGF0YTRbMV0pLA0K PiAnMHgleCclKEluZm8uVmFsdWUucmVmLkZvcm1TZXRHdWlkLkRhdGE0WzJdKSwNCj4gJzB4JXgn JShJbmZvLlZhbHVlLnJlZi5Gb3JtU2V0R3VpZC5EYXRhNFszXSksIFwNCj4gDQo+IC0gICAgICAg ICAgICAgICAgICAgICAgICAnMHgleCclKEluZm8uVmFsdWUucmVmLkZvcm1TZXRHdWlkLkRhdGE0 WzRdKSwNCj4gJzB4JXgnJShJbmZvLlZhbHVlLnJlZi5Gb3JtU2V0R3VpZC5EYXRhNFs1XSksDQo+ ICcweCV4JyUoSW5mby5WYWx1ZS5yZWYuRm9ybVNldEd1aWQuRGF0YTRbNl0pLA0KPiAnMHgleCcl KEluZm8uVmFsdWUucmVmLkZvcm1TZXRHdWlkLkRhdGE0WzddKSkgKyAnIH19JyArDQo+ICc7e31c bicuZm9ybWF0KEluZm8uVmFsdWUucmVmLkRldmljZVBhdGgpKQ0KPiANCj4gLSAgICAgICAgICAg ICAgICAgICAgaWYgSW5mby5UeXBlID09IEVGSV9JRlJfVFlQRV9TVFJJTkc6DQo+IA0KPiAtICAg ICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgICAgICB2YWx1ZTogIHt9XG4n LmZvcm1hdChJbmZvLlZhbHVlLnN0cmluZykpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBp ZiBJbmZvLlR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzg6DQo+IA0KPiAtICAgICAgICAg ICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgICAgICB2YWx1ZTogIHt9XG4nLmZvcm1h dChJbmZvLlZhbHVlLnU4KSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGlmIEluZm8uVHlw ZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMTY6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAg ICAgICAgZi53cml0ZSgnICAgICAgICAgICAgICB2YWx1ZTogIHt9XG4nLmZvcm1hdChJbmZvLlZh bHVlLnUxNikpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBpZiBJbmZvLlR5cGUgPT0gRUZJ X0lGUl9UWVBFX05VTV9TSVpFXzMyOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGYu d3JpdGUoJyAgICAgICAgICAgICAgdmFsdWU6ICB7fVxuJy5mb3JtYXQoSW5mby5WYWx1ZS51MzIp KQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgaWYgSW5mby5UeXBlID09IEVGSV9JRlJfVFlQ RV9OVU1fU0laRV82NDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCcg ICAgICAgICAgICAgIHZhbHVlOiAge31cbicuZm9ybWF0KEluZm8uVmFsdWUudTY0KSkNCj4gDQo+ IC0gICAgICAgICAgICAgICAgICAgIGlmIEluZm8uVHlwZSA9PSBFRklfSUZSX1RZUEVfQk9PTEVB TjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAgICAg IHZhbHVlOiAge31cbicuZm9ybWF0KEluZm8uVmFsdWUuYikpDQo+IA0KPiAtDQo+IA0KPiAtICAg ICAgICAgICAgICAgIGlmIHR5cGUoUm9vdC5EYXRhKSA9PSBDSWZyRGVmYXVsdDM6DQo+IA0KPiAt ICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAgICAgIHZhbHVlOiAgeycpDQo+ IA0KPiAtICAgICAgICAgICAgICAgICAgICBWYWx1ZVR5cGUgPSBSb290LkRhdGEuR2V0VmFsdWVU eXBlKCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGlmIFZhbHVlVHlwZSA9PSBFRklfSUZS X1RZUEVfU1RSSU5HOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIHJh bmdlKDAsIGxlbihJbmZvLlZhbHVlKS0xKToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgZi53cml0ZSgne30sJy5mb3JtYXQoSW5mby5WYWx1ZVtpXS5zdHJpbmcpKQ0KPiANCj4g LSAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJ3t9Jy5mb3JtYXQoSW5mby5WYWx1ZVts ZW4oSW5mby5WYWx1ZSktMV0uc3RyaW5nKSArICd9XG4nKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAg ICAgICAgICAgICAgICAgaWYgVmFsdWVUeXBlID09IEVGSV9JRlJfVFlQRV9OVU1fU0laRV84Og0K PiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKDAsIGxlbihJbmZv LlZhbHVlKS0xKToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgn e30sJy5mb3JtYXQoSW5mby5WYWx1ZVtpXS51OCkpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAg ICAgICAgZi53cml0ZSgne30nLmZvcm1hdChJbmZvLlZhbHVlW2xlbihJbmZvLlZhbHVlKS0xXS51 OCkgKyAnfVxuJykNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGlmIFZhbHVl VHlwZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMTY6DQo+IA0KPiAtICAgICAgICAgICAgICAg ICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgbGVuKEluZm8uVmFsdWUpLTEpOg0KPiANCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCd7fSwnLmZvcm1hdChJbmZvLlZhbHVl W2ldLnUxNikpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgne30nLmZv cm1hdChJbmZvLlZhbHVlW2xlbihJbmZvLlZhbHVlKS0xXS51MTYpICsgJ31cbicpDQo+IA0KPiAt DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBpZiBWYWx1ZVR5cGUgPT0gRUZJX0lGUl9UWVBF X05VTV9TSVpFXzMyOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIHJh bmdlKDAsIGxlbihJbmZvLlZhbHVlKS0xKToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgZi53cml0ZSgne30sJy5mb3JtYXQoSW5mby5WYWx1ZVtpXS51MzIpKQ0KPiANCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJ3t9Jy5mb3JtYXQoSW5mby5WYWx1ZVtsZW4o SW5mby5WYWx1ZSktMV0udTMyKSArICd9XG4nKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAg ICAgICAgICAgaWYgVmFsdWVUeXBlID09IEVGSV9JRlJfVFlQRV9OVU1fU0laRV82NDoNCj4gDQo+ IC0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCBsZW4oSW5mby5WYWx1 ZSktMSk6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJ3t9LCcu Zm9ybWF0KEluZm8uVmFsdWVbaV0udTY0KSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAg ICBmLndyaXRlKCd7fScuZm9ybWF0KEluZm8uVmFsdWVbbGVuKEluZm8uVmFsdWUpLTFdLnU2NCkg KyAnfVxuJykNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGlmIFZhbHVlVHlw ZSA9PSBFRklfSUZSX1RZUEVfQk9PTEVBTjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAg ICBmb3IgaSBpbiByYW5nZSgwLCBsZW4oSW5mby5WYWx1ZSktMSk6DQo+IA0KPiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJ3t9LCcuZm9ybWF0KEluZm8uVmFsdWVbaV0uYikp DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgne30nLmZvcm1hdChJbmZv LlZhbHVlW2xlbihJbmZvLlZhbHVlKS0xXS5iKSArICd9XG4nKQ0KPiANCj4gLQ0KPiANCj4gLSAg ICAgICAgICAgIGlmIFJvb3QuT3BDb2RlID09IEVGSV9JRlJfT1JERVJFRF9MSVNUX09QOg0KPiAN Cj4gLSAgICAgICAgICAgICAgICBJbmZvID0gUm9vdC5EYXRhLkdldEluZm8oKQ0KPiANCj4gLSAg ICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAtIG9yZGVyZWRsaXN0OlxuJykNCj4gDQo+IC0g ICAgICAgICAgICAgICAgaWYgUm9vdC5Db25kaXRpb24gIT0gTm9uZToNCj4gDQo+IC0gICAgICAg ICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICBjb25kaXRpb246ICB7fVxuJy5mb3JtYXQo Um9vdC5Db25kaXRpb24pKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRl KCcgICAgICAgICAgcHJvbXB0OiAge30gICMgU3RhdGVtZW50IFByb21wdA0KPiBTVFJJTkdfSURc bicuZm9ybWF0KEluZm8uUXVlc3Rpb24uSGVhZGVyLlByb21wdCkpDQo+IA0KPiAtICAgICAgICAg ICAgICAgIGYud3JpdGUoJyAgICAgICAgICBoZWxwOiAge30gICMgU3RhdGVtZW50IEhlbHANCj4g U1RSSU5HX0lEXG4nLmZvcm1hdChJbmZvLlF1ZXN0aW9uLkhlYWRlci5IZWxwKSkNCj4gDQo+IC0g ICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIHF1ZXN0aW9uaWQ6ICB7fSAgIyBRdWVz dGlvbg0KPiBRdWVzdGlvbklkXG4nLmZvcm1hdChJbmZvLlF1ZXN0aW9uLlF1ZXN0aW9uSWQpKQ0K PiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAgdmFyc3RvcmVpZDogIHt9 ICAjIFF1ZXN0aW9uDQo+IFZhclN0b3JlSWRcbicuZm9ybWF0KEluZm8uUXVlc3Rpb24uVmFyU3Rv cmVJZCkpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICBtYXhDb250 YWluZXJzOiAge31cbicuZm9ybWF0KEluZm8uTWF4Q29udGFpbmVycykpDQo+IA0KPiAtICAgICAg ICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICBmbGFnczogIHt9XG4nLmZvcm1hdChJbmZvLlF1 ZXN0aW9uLkZsYWdzKSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICBpZiBSb290Lk9wQ29k ZSA9PSBFRklfSUZSX05VTUVSSUNfT1A6DQo+IA0KPiAtICAgICAgICAgICAgICAgIEluZm8gPSBS b290LkRhdGEuR2V0SW5mbygpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAg IC0gbnVtZXJpYzpcbicpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIFJvb3QuQ29uZGl0aW9u ICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAg Y29uZGl0aW9uOiAge31cbicuZm9ybWF0KFJvb3QuQ29uZGl0aW9uKSkNCj4gDQo+IC0gICAgICAg ICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIHByb21wdDogIHt9ICAjIFN0YXRlbWVudCBQcm9t cHQNCj4gU1RSSU5HX0lEXG4nLmZvcm1hdChJbmZvLlF1ZXN0aW9uLkhlYWRlci5Qcm9tcHQpKQ0K PiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAgaGVscDogIHt9ICAjIFN0 YXRlbWVudCBIZWxwDQo+IFNUUklOR19JRFxuJy5mb3JtYXQoSW5mby5RdWVzdGlvbi5IZWFkZXIu SGVscCkpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICBxdWVzdGlv bmlkOiAge30gICMgUXVlc3Rpb24NCj4gUXVlc3Rpb25JZFxuJy5mb3JtYXQoSW5mby5RdWVzdGlv bi5RdWVzdGlvbklkKSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAg IHZhcnN0b3JlaWQ6ICB7fSAgIyBRdWVzdGlvbg0KPiBWYXJTdG9yZUlkXG4nLmZvcm1hdChJbmZv LlF1ZXN0aW9uLlZhclN0b3JlSWQpKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCcg ICAgICAgICAgdmFybmFtZTogIHt9ICAjIFF1ZXN0aW9uIFZhck5hbWUNCj4gU1RSSU5HX0lEXG4n LmZvcm1hdChJbmZvLlF1ZXN0aW9uLlZhclN0b3JlSW5mby5WYXJOYW1lKSkNCj4gDQo+IC0gICAg ICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIHZhcm9mZnNldDogIHt9ICAjIFF1ZXN0aW9u DQo+IFZhck9mZnNldFxuJy5mb3JtYXQoSW5mby5RdWVzdGlvbi5WYXJTdG9yZUluZm8uVmFyT2Zm c2V0KSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIGZsYWdzOiAg e30gICMgUXVlc3Rpb24NCj4gRmxhZ3NcbicuZm9ybWF0KEluZm8uUXVlc3Rpb24uRmxhZ3MpKQ0K PiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgICAgICBpZiBSb290LkRhdGEuR2V0VmFyVHlwZSgp ID09IEVGSV9JRlJfVFlQRV9OVU1fU0laRV82NDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAg IGYud3JpdGUoJyAgICAgICAgICBtYXh2YWx1ZTogIHt9XG4nLmZvcm1hdChJbmZvLkRhdGEudTY0 Lk1heFZhbHVlKSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAg ICBtaW52YWx1ZTogIHt9XG4nLmZvcm1hdChJbmZvLkRhdGEudTY0Lk1pblZhbHVlKSkNCj4gDQo+ IC0gICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICBzdGVwOiAge31cbicuZm9y bWF0KEluZm8uRGF0YS51NjQuU3RlcCkpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgICAg IGlmIFJvb3QuRGF0YS5HZXRWYXJUeXBlKCkgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzMyOg0K PiANCj4gLSAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIG1heHZhbHVlOiAg e31cbicuZm9ybWF0KEluZm8uRGF0YS51MzIuTWF4VmFsdWUpKQ0KPiANCj4gLSAgICAgICAgICAg ICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIG1pbnZhbHVlOiAge31cbicuZm9ybWF0KEluZm8u RGF0YS51MzIuTWluVmFsdWUpKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgn ICAgICAgICAgIHN0ZXA6ICB7fVxuJy5mb3JtYXQoSW5mby5EYXRhLnUzMi5TdGVwKSkNCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgUm9vdC5EYXRhLkdldFZhclR5cGUoKSA9PSBF RklfSUZSX1RZUEVfTlVNX1NJWkVfMTY6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBmLndy aXRlKCcgICAgICAgICAgbWF4dmFsdWU6ICB7fVxuJy5mb3JtYXQoSW5mby5EYXRhLnUxNi5NYXhW YWx1ZSkpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAgbWlu dmFsdWU6ICB7fVxuJy5mb3JtYXQoSW5mby5EYXRhLnUxNi5NaW5WYWx1ZSkpDQo+IA0KPiAtICAg ICAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAgc3RlcDogIHt9XG4nLmZvcm1hdChJ bmZvLkRhdGEudTE2LlN0ZXApKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgICAgICBpZiBS b290LkRhdGEuR2V0VmFyVHlwZSgpID09IEVGSV9JRlJfVFlQRV9OVU1fU0laRV84Og0KPiANCj4g LSAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIG1heHZhbHVlOiAge31cbicu Zm9ybWF0KEluZm8uRGF0YS51OC5NYXhWYWx1ZSkpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAg ICBmLndyaXRlKCcgICAgICAgICAgbWludmFsdWU6ICB7fVxuJy5mb3JtYXQoSW5mby5EYXRhLnU4 Lk1pblZhbHVlKSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAg ICBzdGVwOiAge31cbicuZm9ybWF0KEluZm8uRGF0YS51OC5TdGVwKSkNCj4gDQo+IC0NCj4gDQo+ IC0gICAgICAgICAgICBpZiBSb290Lk9wQ29kZSA9PSBFRklfSUZSX0NIRUNLQk9YX09QOg0KPiAN Cj4gLSAgICAgICAgICAgICAgICBJbmZvID0gUm9vdC5EYXRhLkdldEluZm8oKQ0KPiANCj4gLSAg ICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAtIGNoZWNrYm94OlxuJykNCj4gDQo+IC0gICAg ICAgICAgICAgICAgaWYgUm9vdC5Db25kaXRpb24gIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAg ICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICBjb25kaXRpb246ICB7fVxuJy5mb3JtYXQoUm9v dC5Db25kaXRpb24pKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAg cHJvbXB0OiAge30gICMgU3RhdGVtZW50IFByb21wdA0KPiBTVFJJTkdfSURcbicuZm9ybWF0KElu Zm8uUXVlc3Rpb24uSGVhZGVyLlByb21wdCkpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3Jp dGUoJyAgICAgICAgICBoZWxwOiAge30gICMgU3RhdGVtZW50IEhlbHANCj4gU1RSSU5HX0lEXG4n LmZvcm1hdChJbmZvLlF1ZXN0aW9uLkhlYWRlci5IZWxwKSkNCj4gDQo+IC0gICAgICAgICAgICAg ICAgZi53cml0ZSgnICAgICAgICAgIHF1ZXN0aW9uaWQ6ICB7fSAgIyBRdWVzdGlvbg0KPiBRdWVz dGlvbklkXG4nLmZvcm1hdChJbmZvLlF1ZXN0aW9uLlF1ZXN0aW9uSWQpKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAgdmFyc3RvcmVpZDogIHt9ICAjIFF1ZXN0aW9u DQo+IFZhclN0b3JlSWRcbicuZm9ybWF0KEluZm8uUXVlc3Rpb24uVmFyU3RvcmVJZCkpDQo+IA0K PiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICB2YXJuYW1lOiAge30gICMgUXVl c3Rpb24gVmFyTmFtZQ0KPiBTVFJJTkdfSURcbicuZm9ybWF0KEluZm8uUXVlc3Rpb24uVmFyU3Rv cmVJbmZvLlZhck5hbWUpKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAg ICAgdmFyb2Zmc2V0OiAge30gICMgUXVlc3Rpb24NCj4gVmFyT2Zmc2V0XG4nLmZvcm1hdChJbmZv LlF1ZXN0aW9uLlZhclN0b3JlSW5mby5WYXJPZmZzZXQpKQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBmLndyaXRlKCcgICAgICAgICAgZmxhZ3M6ICB7fSAgIyBGbGFnc1xuJy5mb3JtYXQoSW5mby5G bGFncykpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJ X0lGUl9USU1FX09QOg0KPiANCj4gLSAgICAgICAgICAgICAgICBJbmZvID0gUm9vdC5EYXRhLkdl dEluZm8oKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAtIHRpbWU6XG4n KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBpZiBSb290LkNvbmRpdGlvbiAhPSBOb25lOg0KPiAN Cj4gLSAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIGNvbmRpdGlvbjogIHt9 XG4nLmZvcm1hdChSb290LkNvbmRpdGlvbikpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3Jp dGUoJyAgICAgICAgICBxdWVzdGlvbmlkOiAge30gICMgU3RhdGVtZW50IFByb21wdA0KPiBTVFJJ TkdfSURcbicuZm9ybWF0KEluZm8uUXVlc3Rpb24uUXVlc3Rpb25JZCkpDQo+IA0KPiAtICAgICAg ICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICB2YXJzdG9yZWlkOiAge30gICMgUXVlc3Rpb24N Cj4gVmFyU3RvcmVJZFxuJy5mb3JtYXQoSW5mby5RdWVzdGlvbi5WYXJTdG9yZUlkKSkNCj4gDQo+ IC0gICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIHZhcm5hbWU6DQo+IHt9XG4nLmZv cm1hdChJbmZvLlF1ZXN0aW9uLlZhclN0b3JlSW5mby5WYXJOYW1lKSkNCj4gDQo+IC0gICAgICAg ICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIHZhcm9mZnNldDoNCj4ge31cbicuZm9ybWF0KElu Zm8uUXVlc3Rpb24uVmFyU3RvcmVJbmZvLlZhck9mZnNldCkpDQo+IA0KPiAtICAgICAgICAgICAg ICAgIGYud3JpdGUoJyAgICAgICAgICBwcm9tcHQ6ICB7fSAgIyBTdGF0ZW1lbnQgUHJvbXB0DQo+ IFNUUklOR19JRFxuJy5mb3JtYXQoSW5mby5RdWVzdGlvbi5IZWFkZXIuUHJvbXB0KSkNCj4gDQo+ IC0gICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIGhlbHA6ICB7fSAgIyBTdGF0ZW1l bnQgSGVscA0KPiBTVFJJTkdfSURcbicuZm9ybWF0KEluZm8uUXVlc3Rpb24uSGVhZGVyLkhlbHAp KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAgZmxhZ3M6ICB7fVxu Jy5mb3JtYXQoSW5mby5GbGFncykpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgaWYgUm9v dC5PcENvZGUgPT0gRUZJX0lGUl9EQVRFX09QOg0KPiANCj4gLSAgICAgICAgICAgICAgICBJbmZv ID0gUm9vdC5EYXRhLkdldEluZm8oKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCcg ICAgICAtIGRhdGU6XG4nKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBpZiBSb290LkNvbmRpdGlv biAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAg IGNvbmRpdGlvbjogIHt9XG4nLmZvcm1hdChSb290LkNvbmRpdGlvbikpDQo+IA0KPiAtICAgICAg ICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICBxdWVzdGlvbmlkOiAge30gICMgU3RhdGVtZW50 IFByb21wdA0KPiBTVFJJTkdfSURcbicuZm9ybWF0KEluZm8uUXVlc3Rpb24uUXVlc3Rpb25JZCkp DQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICB2YXJzdG9yZWlkOiAg e30gICMgUXVlc3Rpb24NCj4gVmFyU3RvcmVJZFxuJy5mb3JtYXQoSW5mby5RdWVzdGlvbi5WYXJT dG9yZUlkKSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIHZhcm5h bWU6DQo+IHt9XG4nLmZvcm1hdChJbmZvLlF1ZXN0aW9uLlZhclN0b3JlSW5mby5WYXJOYW1lKSkN Cj4gDQo+IC0gICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIHZhcm9mZnNldDoNCj4g e31cbicuZm9ybWF0KEluZm8uUXVlc3Rpb24uVmFyU3RvcmVJbmZvLlZhck9mZnNldCkpDQo+IA0K PiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICBwcm9tcHQ6ICB7fSAgIyBTdGF0 ZW1lbnQgUHJvbXB0DQo+IFNUUklOR19JRFxuJy5mb3JtYXQoSW5mby5RdWVzdGlvbi5IZWFkZXIu UHJvbXB0KSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIGhlbHA6 ICB7fSAgIyBTdGF0ZW1lbnQgSGVscA0KPiBTVFJJTkdfSURcbicuZm9ybWF0KEluZm8uUXVlc3Rp b24uSGVhZGVyLkhlbHApKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAg ICAgZmxhZ3M6ICB7fVxuJy5mb3JtYXQoSW5mby5GbGFncykpDQo+IA0KPiAtDQo+IA0KPiAtDQo+ IA0KPiAtICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9TVFJJTkdfT1A6DQo+ IA0KPiAtICAgICAgICAgICAgICAgIEluZm8gPSBSb290LkRhdGEuR2V0SW5mbygpDQo+IA0KPiAt ICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgIC0gc3RyaW5nOlxuJykNCj4gDQo+IC0gICAg ICAgICAgICAgICAgaWYgUm9vdC5Db25kaXRpb24gIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAg ICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICBjb25kaXRpb246ICB7fVxuJy5mb3JtYXQoUm9v dC5Db25kaXRpb24pKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAg cHJvbXB0OiAge30gICMgU3RhdGVtZW50IFByb21wdA0KPiBTVFJJTkdfSURcbicuZm9ybWF0KElu Zm8uUXVlc3Rpb24uSGVhZGVyLlByb21wdCkpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3Jp dGUoJyAgICAgICAgICBoZWxwOiAge30gICMgU3RhdGVtZW50IEhlbHANCj4gU1RSSU5HX0lEXG4n LmZvcm1hdChJbmZvLlF1ZXN0aW9uLkhlYWRlci5IZWxwKSkNCj4gDQo+IC0gICAgICAgICAgICAg ICAgZi53cml0ZSgnICAgICAgICAgIHF1ZXN0aW9uaWQ6ICB7fSAgIyBRdWVzdGlvbg0KPiBRdWVz dGlvbklkXG4nLmZvcm1hdChJbmZvLlF1ZXN0aW9uLlF1ZXN0aW9uSWQpKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAgdmFyc3RvcmVpZDogIHt9ICAjIFF1ZXN0aW9u DQo+IFZhclN0b3JlSWRcbicuZm9ybWF0KEluZm8uUXVlc3Rpb24uVmFyU3RvcmVJZCkpDQo+IA0K PiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICB2YXJuYW1lOiAge30gICMgUXVl c3Rpb24gVmFyTmFtZQ0KPiBTVFJJTkdfSURcbicuZm9ybWF0KEluZm8uUXVlc3Rpb24uVmFyU3Rv cmVJbmZvLlZhck5hbWUpKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAg ICAgdmFyb2Zmc2V0OiAge30gICMgUXVlc3Rpb24NCj4gVmFyT2Zmc2V0XG4nLmZvcm1hdChJbmZv LlF1ZXN0aW9uLlZhclN0b3JlSW5mby5WYXJPZmZzZXQpKQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBmLndyaXRlKCcgICAgICAgICAgZmxhZ3M6ICB7fSAgIyBRdWVzdGlvbg0KPiBGbGFnc1xuJy5m b3JtYXQoSW5mby5RdWVzdGlvbi5GbGFncykpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3Jp dGUoJyAgICAgICAgICBzdHJpbmdmbGFnczogIHt9XG4nLmZvcm1hdChJbmZvLkZsYWdzKSkNCj4g DQo+IC0gICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIHN0cmluZ21pbnNpemU6ICB7 fVxuJy5mb3JtYXQoSW5mby5NaW5TaXplKSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgZi53cml0 ZSgnICAgICAgICAgIHN0cmluZ21heHNpemU6ICB7fVxuJy5mb3JtYXQoSW5mby5NYXhTaXplKSkN Cj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICBpZiBSb290Lk9wQ29kZSA9PSBFRklfSUZSX1BB U1NXT1JEX09QOg0KPiANCj4gLSAgICAgICAgICAgICAgICBJbmZvID0gUm9vdC5EYXRhLkdldElu Zm8oKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAtIHBhc3N3b3JkOlxu JykNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgUm9vdC5Db25kaXRpb24gIT0gTm9uZToNCj4g DQo+IC0gICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICBjb25kaXRpb246ICB7 fVxuJy5mb3JtYXQoUm9vdC5Db25kaXRpb24pKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndy aXRlKCcgICAgICAgICAgcHJvbXB0OiAge30gICMgU3RhdGVtZW50IFByb21wdA0KPiBTVFJJTkdf SURcbicuZm9ybWF0KEluZm8uUXVlc3Rpb24uSGVhZGVyLlByb21wdCkpDQo+IA0KPiAtICAgICAg ICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICBoZWxwOiAge30gICMgU3RhdGVtZW50IEhlbHAN Cj4gU1RSSU5HX0lEXG4nLmZvcm1hdChJbmZvLlF1ZXN0aW9uLkhlYWRlci5IZWxwKSkNCj4gDQo+ IC0gICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIHF1ZXN0aW9uaWQ6ICB7fSAgIyBR dWVzdGlvbg0KPiBRdWVzdGlvbklkXG4nLmZvcm1hdChJbmZvLlF1ZXN0aW9uLlF1ZXN0aW9uSWQp KQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAgdmFyc3RvcmVpZDog IHt9ICAjIFF1ZXN0aW9uDQo+IFZhclN0b3JlSWRcbicuZm9ybWF0KEluZm8uUXVlc3Rpb24uVmFy U3RvcmVJZCkpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICB2YXJu YW1lOiAge30gICMgUXVlc3Rpb24gVmFyTmFtZQ0KPiBTVFJJTkdfSURcbicuZm9ybWF0KEluZm8u UXVlc3Rpb24uVmFyU3RvcmVJbmZvLlZhck5hbWUpKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBm LndyaXRlKCcgICAgICAgICAgdmFyb2Zmc2V0OiAge30gICMgUXVlc3Rpb24NCj4gVmFyT2Zmc2V0 XG4nLmZvcm1hdChJbmZvLlF1ZXN0aW9uLlZhclN0b3JlSW5mby5WYXJPZmZzZXQpKQ0KPiANCj4g LSAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAgZmxhZ3M6ICB7fSAgIyBRdWVzdGlv bg0KPiBGbGFnc1xuJy5mb3JtYXQoSW5mby5RdWVzdGlvbi5GbGFncykpDQo+IA0KPiAtICAgICAg ICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICBtaW5zaXplOiAge31cbicuZm9ybWF0KEluZm8u TWluU2l6ZSkpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICBtYXhz aXplOiAge31cbicuZm9ybWF0KEluZm8uTWF4U2l6ZSkpDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0K PiAtICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9SRVNFVF9CVVRUT05fT1A6 DQo+IA0KPiAtICAgICAgICAgICAgICAgIEluZm8gPSBSb290LkRhdGEuR2V0SW5mbygpDQo+IA0K PiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgIC0gcmVzZXRidXR0b246XG4nKQ0KPiAN Cj4gLSAgICAgICAgICAgICAgICBpZiBSb290LkNvbmRpdGlvbiAhPSBOb25lOg0KPiANCj4gLSAg ICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIGNvbmRpdGlvbjogIHt9XG4nLmZv cm1hdChSb290LkNvbmRpdGlvbikpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAg ICAgICAgICBwcm9tcHQ6ICB7fSAgIyBTdGF0ZW1lbnQgUHJvbXB0DQo+IFNUUklOR19JRFxuJy5m b3JtYXQoSW5mby5TdGF0ZW1lbnQuUHJvbXB0KSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgZi53 cml0ZSgnICAgICAgICAgIGhlbHA6ICB7fSAgIyBTdGF0ZW1lbnQgSGVscA0KPiBTVFJJTkdfSURc bicuZm9ybWF0KEluZm8uU3RhdGVtZW50LkhlbHApKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBm LndyaXRlKCcgICAgICAgICAgZGVmYXVsdGlkOiAge31cbicuZm9ybWF0KEluZm8uRGVmYXVsdElk KSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICBpZiBSb290Lk9wQ29kZSA9PSBFRklfSUZS X1JFRl9PUDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgSW5mbyA9IFJvb3QuRGF0YS5HZXRJbmZv KCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgLSBnb3RvOlxuJykNCj4g DQo+IC0gICAgICAgICAgICAgICAgaWYgUm9vdC5Db25kaXRpb24gIT0gTm9uZToNCj4gDQo+IC0g ICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICBjb25kaXRpb246ICB7fVxuJy5m b3JtYXQoUm9vdC5Db25kaXRpb24pKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgICAgICBp ZiB0eXBlKFJvb3QuRGF0YSkgPT0gQ0lmclJlZjQ6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAg ICBmLndyaXRlKCcgICAgICAgICAgZm9ybWlkOiAge31cbicuZm9ybWF0KEluZm8uRm9ybUlkKSkN Cj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICBmb3Jtc2V0aWQ6 ICB7JyArICd7fSwge30sDQo+IHt9LCcuZm9ybWF0KCcweCV4JyUoSW5mby5Gb3JtU2V0SWQuRGF0 YTEpLCcweCV4JyUoSW5mby5Gb3JtU2V0SWQuRGF0YTIpLA0KPiAnMHgleCclKEluZm8uRm9ybVNl dElkLkRhdGEzKSkgXA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgKyAnIHsgJyArICAne30s IHt9LCB7fSwge30sIHt9LCB7fSwge30sDQo+IHt9Jy5mb3JtYXQoJzB4JXgnJShJbmZvLkZvcm1T ZXRJZC5EYXRhNFswXSksDQo+ICcweCV4JyUoSW5mby5Gb3JtU2V0SWQuRGF0YTRbMV0pLCAnMHgl eCclKEluZm8uRm9ybVNldElkLkRhdGE0WzJdKSwNCj4gJzB4JXgnJShJbmZvLkZvcm1TZXRJZC5E YXRhNFszXSksIFwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICcweCV4JyUoSW5mby5Gb3Jt U2V0SWQuRGF0YTRbNF0pLA0KPiAnMHgleCclKEluZm8uRm9ybVNldElkLkRhdGE0WzVdKSwgJzB4 JXgnJShJbmZvLkZvcm1TZXRJZC5EYXRhNFs2XSksDQo+ICcweCV4JyUoSW5mby5Gb3JtU2V0SWQu RGF0YTRbN10pKSArICcgfX1cbicpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBmLndyaXRl KCcgICAgICAgICAgcXVlc3Rpb25pZDogIHt9XG4nLmZvcm1hdChJbmZvLlF1ZXN0aW9uSWQpKQ0K PiANCj4gLSAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIGRldmljZXBhdGg6 ICB7fVxuJy5mb3JtYXQoSW5mby5EZXZpY2VQYXRoKSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAg ICAgICAgICAgaWYgdHlwZShSb290LkRhdGEpID09IENJZnJSZWYzOg0KPiANCj4gLSAgICAgICAg ICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIGZvcm1pZDogIHt9XG4nLmZvcm1hdChJbmZv LkZvcm1JZCkpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAg Zm9ybXNldGlkOiAgeycgKyAne30sIHt9LA0KPiB7fSwnLmZvcm1hdCgnMHgleCclKEluZm8uRm9y bVNldElkLkRhdGExKSwnMHgleCclKEluZm8uRm9ybVNldElkLkRhdGEyKSwNCj4gJzB4JXgnJShJ bmZvLkZvcm1TZXRJZC5EYXRhMykpIFwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICsgJyB7 ICcgKyAgJ3t9LCB7fSwge30sIHt9LCB7fSwge30sIHt9LA0KPiB7fScuZm9ybWF0KCcweCV4JyUo SW5mby5Gb3JtU2V0SWQuRGF0YTRbMF0pLA0KPiAnMHgleCclKEluZm8uRm9ybVNldElkLkRhdGE0 WzFdKSwgJzB4JXgnJShJbmZvLkZvcm1TZXRJZC5EYXRhNFsyXSksDQo+ICcweCV4JyUoSW5mby5G b3JtU2V0SWQuRGF0YTRbM10pLCBcDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAnMHgleCcl KEluZm8uRm9ybVNldElkLkRhdGE0WzRdKSwNCj4gJzB4JXgnJShJbmZvLkZvcm1TZXRJZC5EYXRh NFs1XSksICcweCV4JyUoSW5mby5Gb3JtU2V0SWQuRGF0YTRbNl0pLA0KPiAnMHgleCclKEluZm8u Rm9ybVNldElkLkRhdGE0WzddKSkgKyAnIH19XG4nKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAg ICAgZi53cml0ZSgnICAgICAgICAgIHF1ZXN0aW9uaWQ6ICB7fVxuJy5mb3JtYXQoSW5mby5RdWVz dGlvbklkKSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgdHlwZShSb290LkRh dGEpID09IENJZnJSZWYyOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAg ICAgICAgIGZvcm1pZDogIHt9XG4nLmZvcm1hdChJbmZvLkZvcm1JZCkpDQo+IA0KPiAtICAgICAg ICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAgcXVlc3Rpb25pZDogIHt9XG4nLmZvcm1h dChJbmZvLlF1ZXN0aW9uSWQpKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgICAgICBpZiB0 eXBlKFJvb3QuRGF0YSkgPT0gQ0lmclJlZjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGYu d3JpdGUoJyAgICAgICAgICBmb3JtaWQ6ICB7fVxuJy5mb3JtYXQoSW5mby5Gb3JtSWQpKQ0KPiAN Cj4gLSAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIHF1ZXN0aW9uaWQ6ICB7 fVxuJy5mb3JtYXQoSW5mby5RdWVzdGlvbi5RdWVzdGlvbklkKSkNCj4gDQo+IC0NCj4gDQo+IC0g ICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIHByb21wdDogIHt9XG4nLmZvcm1hdChJ bmZvLlF1ZXN0aW9uLkhlYWRlci5Qcm9tcHQpKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndy aXRlKCcgICAgICAgICAgaGVscDogIHt9XG4nLmZvcm1hdChJbmZvLlF1ZXN0aW9uLkhlYWRlci5I ZWxwKSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICBpZiBSb290Lk9wQ29kZSA9PSBFRklf SUZSX1JFRlJFU0hfT1A6DQo+IA0KPiAtICAgICAgICAgICAgICAgIEluZm8gPSBSb290LkRhdGEu R2V0SW5mbygpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICAtIHJl ZnJlc2g6XG4nKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBpZiBSb290LkNvbmRpdGlvbiAhPSBO b25lOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgICAgICBj b25kaXRpb246ICB7fVxuJy5mb3JtYXQoUm9vdC5Db25kaXRpb24pKQ0KPiANCj4gLSAgICAgICAg ICAgICAgICBmLndyaXRlKCcgICAgICAgICAgICAgIGludGVydmFsOiAge30gICMNCj4gUmVmcmVz aEludGVydmFsXG4nLmZvcm1hdChJbmZvLlJlZnJlc2hJbnRlcnZhbCkpDQo+IA0KPiAtDQo+IA0K PiAtICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9WQVJTVE9SRV9ERVZJQ0Vf T1A6DQo+IA0KPiAtICAgICAgICAgICAgICAgIEluZm8gPSBSb290LkRhdGEuR2V0SW5mbygpDQo+ IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICAtIHZhcnN0b3JlZGV2aWNl OlxuJykNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgUm9vdC5Db25kaXRpb24gIT0gTm9uZToN Cj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICAgICAgY29uZGl0 aW9uOiAge31cbicuZm9ybWF0KFJvb3QuQ29uZGl0aW9uKSkNCj4gDQo+IC0gICAgICAgICAgICAg ICAgZi53cml0ZSgnICAgICAgICAgICAgICBkZXZpY2VwYXRoOiAge30gICMNCj4gRGV2aWNlUGF0 aFxuJy5mb3JtYXQoSW5mby5EZXZpY2VQYXRoKSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAg ICBpZiBSb290Lk9wQ29kZSA9PSBFRklfSUZSX1JFRlJFU0hfSURfT1A6DQo+IA0KPiAtICAgICAg ICAgICAgICAgIEluZm8gPSBSb290LkRhdGEuR2V0SW5mbygpDQo+IA0KPiAtICAgICAgICAgICAg ICAgIGYud3JpdGUoJyAgICAgICAgICAtIHJlZnJlc2hndWlkOlxuJykNCj4gDQo+IC0gICAgICAg ICAgICAgICAgaWYgUm9vdC5Db25kaXRpb24gIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAg ICAgICAgIGYud3JpdGUoJyAgICAgICAgICAgICAgY29uZGl0aW9uOiAge31cbicuZm9ybWF0KFJv b3QuQ29uZGl0aW9uKSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAg ICAgICBldmVudGdyb3VwaWQ6ICB7JyArICd7fSwge30sDQo+IHt9LCcuZm9ybWF0KCcweCV4JyUo SW5mby5SZWZyZXNoRXZlbnRHcm91cElkLkRhdGExKSwnMHgleCclKEluZm8uUmVmcmVzaEV2ZQ0K PiBudEdyb3VwSWQuRGF0YTIpLCAnMHgleCclKEluZm8uUmVmcmVzaEV2ZW50R3JvdXBJZC5EYXRh MykpIFwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICsgJyB7ICcgKyAgJ3t9LCB7fSwge30s IHt9LCB7fSwge30sIHt9LA0KPiB7fScuZm9ybWF0KCcweCV4JyUoSW5mby5SZWZyZXNoRXZlbnRH cm91cElkLkRhdGE0WzBdKSwNCj4gJzB4JXgnJShJbmZvLlJlZnJlc2hFdmVudEdyb3VwSWQuRGF0 YTRbMV0pLA0KPiAnMHgleCclKEluZm8uUmVmcmVzaEV2ZW50R3JvdXBJZC5EYXRhNFsyXSksDQo+ ICcweCV4JyUoSW5mby5SZWZyZXNoRXZlbnRHcm91cElkLkRhdGE0WzNdKSwgXA0KPiANCj4gLSAg ICAgICAgICAgICAgICAgICAgJzB4JXgnJShJbmZvLlJlZnJlc2hFdmVudEdyb3VwSWQuRGF0YTRb NF0pLA0KPiAnMHgleCclKEluZm8uUmVmcmVzaEV2ZW50R3JvdXBJZC5EYXRhNFs1XSksDQo+ICcw eCV4JyUoSW5mby5SZWZyZXNoRXZlbnRHcm91cElkLkRhdGE0WzZdKSwNCj4gJzB4JXgnJShJbmZv LlJlZnJlc2hFdmVudEdyb3VwSWQuRGF0YTRbN10pKSArICcgfX1cbicpDQo+IA0KPiAtDQo+IA0K PiAtICAgICAgICAgICAgaWYgUm9vdC5PcENvZGUgPT0gRUZJX0lGUl9XQVJOSU5HX0lGX09QOg0K PiANCj4gLSAgICAgICAgICAgICAgICBJbmZvID0gUm9vdC5EYXRhLkdldEluZm8oKQ0KPiANCj4g LSAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAgLSB3YXJuaW5naWY6XG4nKQ0KPiAN Cj4gLSAgICAgICAgICAgICAgICBpZiBSb290LkNvbmRpdGlvbiAhPSBOb25lOg0KPiANCj4gLSAg ICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgICAgICBjb25kaXRpb246ICB7fVxu Jy5mb3JtYXQoUm9vdC5Db25kaXRpb24pKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRl KCcgICAgICAgICAgICAgIHdhcm5pbmc6ICB7fVxuJy5mb3JtYXQoSW5mby5XYXJuaW5nKSkNCj4g DQo+IC0gICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgICAgICB0aW1lT3V0OiAge31c bicuZm9ybWF0KEluZm8uVGltZU91dCkpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgaWYg Um9vdC5PcENvZGUgPT0gRUZJX0lGUl9HVUlEX09QOg0KPiANCj4gLSAgICAgICAgICAgICAgICBJ bmZvID0gUm9vdC5EYXRhLkdldEluZm8oKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBpZiB0eXBl KFJvb3QuRGF0YSkgPT0gQ0lmckxhYmVsOiAjIHR5cGUoSW5mbykgPT0gRUZJX0lGUl9HVUlEX0xB QkVMDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAtIGxhYmVsOlxu JykNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGlmIFJvb3QuQ29uZGl0aW9uICE9IE5vbmU6 DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIGNvbmRp dGlvbjogIHt9XG4nLmZvcm1hdChSb290LkNvbmRpdGlvbikpDQo+IA0KPiAtDQo+IA0KPiAtICAg ICAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAgbGFiZWxudW1iZXI6ICB7fSAgIw0K PiBMYWJlbE51bWJlclxuJy5mb3JtYXQoSW5mby5OdW1iZXIpKQ0KPiANCj4gLQ0KPiANCj4gLSAg ICAgICAgICAgICAgICBpZiB0eXBlKFJvb3QuRGF0YSkgPT0gQ0lmckJhbm5lcjoNCj4gDQo+IC0g ICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgIC0gYmFubmVyOlxuJykNCj4gDQo+IC0g ICAgICAgICAgICAgICAgICAgIGlmIFJvb3QuQ29uZGl0aW9uICE9IE5vbmU6DQo+IA0KPiAtICAg ICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAgICAgICAgIGNvbmRpdGlvbjogIHt9XG4n LmZvcm1hdChSb290LkNvbmRpdGlvbikpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgICAg ICAgICBmLndyaXRlKCcgICAgICAgICAgdGl0bGU6ICB7fVxuJy5mb3JtYXQoSW5mby5UaXRsZSkp DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAgbGluZW51bWJl cjogIHt9XG4nLmZvcm1hdChJbmZvLkxpbmVOdW1iZXIpKQ0KPiANCj4gLSAgICAgICAgICAgICAg ICAgICAgZi53cml0ZSgnICAgICAgICAgIGFsaWduOiAge31cbicuZm9ybWF0KEluZm8uQWxpZ25t ZW50KSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgdHlwZShSb290LkRhdGEp ID09IENJZnJUaW1lb3V0Og0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICAg ICAgLSBiYW5uZXI6XG4nKQ0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgaWYgUm9vdC5Db25k aXRpb24gIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCcg ICAgICAgICAgY29uZGl0aW9uOiAge31cbicuZm9ybWF0KFJvb3QuQ29uZGl0aW9uKSkNCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJyAgICAgICAgICB0aW1lb3V0 OiAge31cbicuZm9ybWF0KEluZm8uVGltZU91dCkpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAg ICAgICAgIGlmIHR5cGUoUm9vdC5EYXRhKSA9PSBDSWZyQ2xhc3M6DQo+IA0KPiAtICAgICAgICAg ICAgICAgICAgICBmLndyaXRlKCcgIENsYXNzOiAge31cbicuZm9ybWF0KEluZm8uQ2xhc3MpKQ0K PiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgICAgICBpZiB0eXBlKFJvb3QuRGF0YSkgPT0gQ0lm clN1YkNsYXNzOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgZi53cml0ZSgnICBTdWJDbGFz czogIHt9XG4nLmZvcm1hdChJbmZvLlN1YkNsYXNzKSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAg ICAgICAgICAgaWYgdHlwZShSb290LkRhdGEpID09IENJZnJHdWlkOg0KPiANCj4gLSAgICAgICAg ICAgICAgICAgICAgZi53cml0ZSgnICAgICAgLSBndWlkb3A6XG4nKQ0KPiANCj4gLSAgICAgICAg ICAgICAgICAgICAgaWYgUm9vdC5Db25kaXRpb24gIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAg ICAgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICAgY29uZGl0aW9uOiAge31cbicuZm9ybWF0 KFJvb3QuQ29uZGl0aW9uKSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJyAg ICAgICAgICBndWlkOiAgeycgKyAne30sIHt9LA0KPiB7fSwnLmZvcm1hdCgnMHgleCclKEluZm8u R3VpZC5EYXRhMSksJzB4JXgnJShJbmZvLkd1aWQuRGF0YTIpLA0KPiAnMHgleCclKEluZm8uR3Vp ZC5EYXRhMykpIFwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICsgJyB7ICcgKyAgJ3t9LCB7 fSwge30sIHt9LCB7fSwge30sIHt9LCB7fScuZm9ybWF0KCcweCV4JyUoSW5mby5HdWlkLkRhdGE0 WzBdKSwNCj4gJzB4JXgnJShJbmZvLkd1aWQuRGF0YTRbMV0pLCAnMHgleCclKEluZm8uR3VpZC5E YXRhNFsyXSksDQo+ICcweCV4JyUoSW5mby5HdWlkLkRhdGE0WzNdKSwgXA0KPiANCj4gLSAgICAg ICAgICAgICAgICAgICAgJzB4JXgnJShJbmZvLkd1aWQuRGF0YTRbNF0pLCAnMHgleCclKEluZm8u R3VpZC5EYXRhNFs1XSksDQo+ICcweCV4JyUoSW5mby5HdWlkLkRhdGE0WzZdKSwgJzB4JXgnJShJ bmZvLkd1aWQuRGF0YTRbN10pKSArICcgfX1cbicpDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAt ICAgICAgICBpZiBSb290LkNoaWxkICE9IFtdOg0KPiANCj4gLSAgICAgICAgICAgIGZvciBDaGls ZE5vZGUgaW4gUm9vdC5DaGlsZDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgUm9vdC5PcENv ZGUgaW4gQ29uZGl0aW9uT3BzOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgaWYgQ2hpbGRO b2RlLk9wQ29kZSBpbiBDb25kaXRpb25PcHM6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAg ICAgQ2hpbGROb2RlLkNvbmRpdGlvbiA9IFJvb3QuQ29uZGl0aW9uICsgJyB8ICcgKw0KPiBDaGls ZE5vZGUuQ29uZGl0aW9uDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBlbHNlOg0KPiANCj4g LSAgICAgICAgICAgICAgICAgICAgICAgIENoaWxkTm9kZS5Db25kaXRpb24gPSBSb290LkNvbmRp dGlvbg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLkR1bXBZYW1sRGZzKENo aWxkTm9kZSwgZikNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybg0KPiANCj4gLQ0KPiAN Cj4gLWRlbCBWZnJTeW50YXhQYXJzZXINCj4gDQo+IFwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQ0KPiArIyMgQGZpbGUNCj4gKyMgVGhlIGZpbGUgaXMgZGVmaW5lZCB0byBwYXJzZSBWZnIgc3lu dGF4DQo+ICsjDQo+ICsjIENvcHlyaWdodCAoYykgMjAyMi0sIEludGVsIENvcnBvcmF0aW9uLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJT RC0yLUNsYXVzZS1QYXRlbnQNCj4gKyMjDQo+ICsNCj4gK2Zyb20gYW50bHI0IGltcG9ydCAqDQo+ ICtmcm9tIFZmckNvbXBpbGVyLklmckN0eXBlcyBpbXBvcnQgKg0KPiArZnJvbSBWZnJDb21waWxl ci5JZnJGb3JtUGtnIGltcG9ydCAqDQo+ICtmcm9tIFZmckNvbXBpbGVyLklmclV0aWxpdHkgaW1w b3J0ICoNCj4gK2Zyb20gVmZyQ29tcGlsZXIuSWZyVHJlZSBpbXBvcnQgKg0KPiArZnJvbSBWZnJD b21waWxlci5JZnJFcnJvciBpbXBvcnQgKg0KPiArZnJvbSBWZnJDb21waWxlci5JZnJQcmVQcm9j ZXNzIGltcG9ydCAqDQo+ICsNCj4gK2lmIF9fbmFtZV9fIGlzIG5vdCBOb25lIGFuZCAiLiIgaW4g X19uYW1lX186DQo+ICsgICAgZnJvbSAuVmZyU3ludGF4UGFyc2VyIGltcG9ydCBWZnJTeW50YXhQ YXJzZXINCj4gK2Vsc2U6DQo+ICsgICAgZnJvbSBWZnJTeW50YXhQYXJzZXIgaW1wb3J0IFZmclN5 bnRheFBhcnNlcg0KPiArDQo+ICsNCj4gKyMgVGhpcyBjbGFzcyBkZWZpbmVzIGEgY29tcGxldGUg Z2VuZXJpYyB2aXNpdG9yIGZvciBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3ludGF4 UGFyc2VyLg0KPiArY2xhc3MgVmZyU3ludGF4VmlzaXRvcihQYXJzZVRyZWVWaXNpdG9yKToNCj4g KyAgICBkZWYgX19pbml0X18oDQo+ICsgICAgICAgIHNlbGYsDQo+ICsgICAgICAgIFByZVByb2Nl c3NEQjogUHJlUHJvY2Vzc0RCID0gTm9uZSwNCj4gKyAgICAgICAgUm9vdD1Ob25lLA0KPiArICAg ICAgICBPdmVycmlkZUNsYXNzR3VpZD1Ob25lLA0KPiArICAgICAgICBRdWVzdGlvbkRCOiBWZnJR dWVzdGlvbkRCID0gTm9uZSwNCj4gKyAgICApOg0KPiArICAgICAgICBzZWxmLlJvb3QgPSBSb290 IGlmIFJvb3QgIT0gTm9uZSBlbHNlIElmclRyZWVOb2RlKCkNCj4gKyAgICAgICAgc2VsZi5QcmVQ cm9jZXNzREIgPSBQcmVQcm9jZXNzREINCj4gKyAgICAgICAgc2VsZi5PdmVycmlkZUNsYXNzR3Vp ZCA9IE92ZXJyaWRlQ2xhc3NHdWlkDQo+ICsgICAgICAgIHNlbGYuVmZyUXVlc3Rpb25EQiA9IFF1 ZXN0aW9uREIgaWYgUXVlc3Rpb25EQiAhPSBOb25lIGVsc2UNCj4gVmZyUXVlc3Rpb25EQigpDQo+ ICsgICAgICAgIHNlbGYuUGFyc2VyU3RhdHVzID0gMA0KPiArICAgICAgICBzZWxmLlZhbHVlID0g Tm9uZQ0KPiArICAgICAgICBzZWxmLkxhc3RGb3JtTm9kZSA9IE5vbmUNCj4gKyAgICAgICAgc2Vs Zi5JZnJPcEhkckluZGV4ID0gMA0KPiArICAgICAgICBzZWxmLkNvbnN0YW50T25seUluRXhwcmVz c2lvbiA9IEZhbHNlDQo+ICsgICAgICAgIHNlbGYuSWZyT3BIZHIgPSBbTm9uZV0NCj4gKyAgICAg ICAgc2VsZi5JZnJPcEhkckxpbmVObyA9IFswXQ0KPiArICAgICAgICBzZWxmLlVzZWREZWZhdWx0 QXJyYXkgPSBbXQ0KPiArICAgICAgICBzZWxmLlZmclJ1bGVzREIgPSBWZnJSdWxlc0RCKCkNCj4g KyAgICAgICAgc2VsZi5DdXJyUWVzdFZhckluZm8gPSBFRklfVkFSU1RPUkVfSU5GTygpDQo+ICsg ICAgICAgIHNlbGYuQ3VycmVudFF1ZXN0aW9uID0gTm9uZQ0KPiArICAgICAgICBzZWxmLkN1cnJl bnRNaW5NYXhEYXRhID0gTm9uZQ0KPiArICAgICAgICBzZWxmLklzU3RyaW5nT3AgPSBGYWxzZQ0K PiArICAgICAgICBzZWxmLklzT3JkZXJlZExpc3QgPSBGYWxzZQ0KPiArICAgICAgICBzZWxmLklz Q2hlY2tCb3hPcCA9IEZhbHNlDQo+ICsgICAgICAgIHNlbGYuTmVlZEFkanVzdE9wY29kZSA9IEZh bHNlDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50 YXhQYXJzZXIjdmZyUHJvZ3JhbS4NCj4gKyAgICBkZWYgdmlzaXRWZnJQcm9ncmFtKHNlbGYsIGN0 eDogVmZyU3ludGF4UGFyc2VyLlZmclByb2dyYW1Db250ZXh0KToNCj4gKyAgICAgICAgcmV0dXJu IHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJl ZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjcHJhZ21hUGFja1Nob3dEZWYuDQo+ICsgICAg ZGVmIHZpc2l0UHJhZ21hUGFja1Nob3dEZWYoc2VsZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIu UHJhZ21hUGFja1Nob3dEZWZDb250ZXh0KToNCj4gKyAgICAgICAgTGluZSA9IGN0eC5zdGFydC5s aW5lDQo+ICsgICAgICAgIGdWZnJWYXJEYXRhVHlwZURCLlBhY2soTGluZSwgVkZSX1BBQ0tfU0hP VykNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsNCj4gKyAg ICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjcHJhZ21h UGFja1N0YWNrRGVmLg0KPiArICAgIGRlZiB2aXNpdFByYWdtYVBhY2tTdGFja0RlZihzZWxmLCBj dHg6DQo+IFZmclN5bnRheFBhcnNlci5QcmFnbWFQYWNrU3RhY2tEZWZDb250ZXh0KToNCj4gKyAg ICAgICAgSWRlbnRpZmllciA9IHNlbGYuVHJhbnNJZChjdHguU3RyaW5nSWRlbnRpZmllcigpKQ0K PiArDQo+ICsgICAgICAgIGlmIHN0cihjdHguZ2V0Q2hpbGQoMCkpID09ICJwdXNoIjoNCj4gKyAg ICAgICAgICAgIEFjdGlvbiA9IFZGUl9QQUNLX1BVU0gNCj4gKyAgICAgICAgZWxzZToNCj4gKyAg ICAgICAgICAgIEFjdGlvbiA9IFZGUl9QQUNLX1BPUA0KPiArDQo+ICsgICAgICAgIGlmIGN0eC5O dW1iZXIoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgQWN0aW9uIHw9IFZGUl9QQUNLX0FTU0lH Tg0KPiArDQo+ICsgICAgICAgIFBhY2tOdW1iZXIgPSBzZWxmLlRyYW5zTnVtKGN0eC5OdW1iZXIo KSwgREVGQVVMVF9QQUNLX0FMSUdOKQ0KPiArICAgICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUN Cj4gKyAgICAgICAgZ1ZmclZhckRhdGFUeXBlREIuUGFjayhMaW5lLCBBY3Rpb24sIElkZW50aWZp ZXIsIFBhY2tOdW1iZXIpDQo+ICsgICAgICAgIHJldHVybiBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4 KQ0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4 UGFyc2VyI3ByYWdtYVBhY2tOdW1iZXIuDQo+ICsgICAgZGVmIHZpc2l0UHJhZ21hUGFja051bWJl cihzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5QcmFnbWFQYWNrTnVtYmVyQ29udGV4dCk6 DQo+ICsgICAgICAgIExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiArICAgICAgICBQYWNrTnVtYmVy ID0gc2VsZi5UcmFuc051bShjdHguTnVtYmVyKCksIERFRkFVTFRfUEFDS19BTElHTikNCj4gKw0K PiArICAgICAgICBnVmZyVmFyRGF0YVR5cGVEQi5QYWNrKExpbmUsIFZGUl9QQUNLX0FTU0lHTiwg Tm9uZSwgUGFja051bWJlcikNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYudmlzaXRDaGlsZHJlbihj dHgpDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50 YXhQYXJzZXIjdmZyUHJhZ21hUGFja0RlZmluaXRpb24uDQo+ICsgICAgZGVmIHZpc2l0VmZyUHJh Z21hUGFja0RlZmluaXRpb24oc2VsZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIuVmZyUHJhZ21h UGFja0RlZmluaXRpb25Db250ZXh0KToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYudmlzaXRDaGls ZHJlbihjdHgpDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBW ZnJTeW50YXhQYXJzZXIjdmZyRGF0YVN0cnVjdERlZmluaXRpb24uDQo+ICsgICAgZGVmIHZpc2l0 VmZyRGF0YVN0cnVjdERlZmluaXRpb24oc2VsZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIuVmZy RGF0YVN0cnVjdERlZmluaXRpb25Db250ZXh0KToNCj4gKyAgICAgICAgZ1ZmclZhckRhdGFUeXBl REIuRGVjbGFyZURhdGFUeXBlQmVnaW4oKQ0KPiArDQo+ICsgICAgICAgIGlmIGN0eC5OMSAhPSBO b25lOg0KPiArICAgICAgICAgICAgUmV0dXJuQ29kZSA9IGdWZnJWYXJEYXRhVHlwZURCLlNldE5l d1R5cGVOYW1lKGN0eC5OMS50ZXh0KQ0KPiArICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIo UmV0dXJuQ29kZSwgY3R4Lk4xLmxpbmUsIGN0eC5OMS50ZXh0KQ0KPiArDQo+ICsgICAgICAgIGlm IGN0eC5OMiAhPSBOb25lOg0KPiArICAgICAgICAgICAgUmV0dXJuQ29kZSA9IGdWZnJWYXJEYXRh VHlwZURCLlNldE5ld1R5cGVOYW1lKGN0eC5OMi50ZXh0KQ0KPiArICAgICAgICAgICAgc2VsZi5F cnJvckhhbmRsZXIoUmV0dXJuQ29kZSwgY3R4Lk4yLmxpbmUsIGN0eC5OMi50ZXh0KQ0KPiArDQo+ ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsNCj4gKyAgICAgICAgZ1ZmclZh ckRhdGFUeXBlREIuRGVjbGFyZURhdGFUeXBlRW5kKCkNCj4gKyAgICAgICAgcmV0dXJuIE5vbmUN Cj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBh cnNlciN2ZnJEYXRhVW5pb25EZWZpbml0aW9uLg0KPiArICAgIGRlZiB2aXNpdFZmckRhdGFVbmlv bkRlZmluaXRpb24oc2VsZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIuVmZyRGF0YVVuaW9uRGVm aW5pdGlvbkNvbnRleHQpOg0KPiArICAgICAgICBnVmZyVmFyRGF0YVR5cGVEQi5EZWNsYXJlRGF0 YVR5cGVCZWdpbigpDQo+ICsgICAgICAgIGlmIGN0eC5OMSAhPSBOb25lOg0KPiArICAgICAgICAg ICAgUmV0dXJuQ29kZSA9IGdWZnJWYXJEYXRhVHlwZURCLlNldE5ld1R5cGVOYW1lKGN0eC5OMS50 ZXh0KQ0KPiArICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwgY3R4Lk4x LmxpbmUsIGN0eC5OMS50ZXh0KQ0KPiArDQo+ICsgICAgICAgIGlmIGN0eC5OMiAhPSBOb25lOg0K PiArICAgICAgICAgICAgUmV0dXJuQ29kZSA9IGdWZnJWYXJEYXRhVHlwZURCLlNldE5ld1R5cGVO YW1lKGN0eC5OMi50ZXh0KQ0KPiArICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoUmV0dXJu Q29kZSwgY3R4Lk4yLmxpbmUsIGN0eC5OMi50ZXh0KQ0KPiArDQo+ICsgICAgICAgIHNlbGYudmlz aXRDaGlsZHJlbihjdHgpDQo+ICsNCj4gKyAgICAgICAgZ1ZmclZhckRhdGFUeXBlREIuRGVjbGFy ZURhdGFUeXBlRW5kKCkNCj4gKyAgICAgICAgcmV0dXJuIE5vbmUNCj4gKw0KPiArICAgICMgVmlz aXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJEYXRhU3RydWN0 RmllbGRzLg0KPiArICAgIGRlZiB2aXNpdFZmckRhdGFTdHJ1Y3RGaWVsZHMoc2VsZiwgY3R4Og0K PiBWZnJTeW50YXhQYXJzZXIuVmZyRGF0YVN0cnVjdEZpZWxkc0NvbnRleHQpOg0KPiArICAgICAg ICByZXR1cm4gc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKw0KPiArICAgICMgVmlzaXQgYSBw YXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNkYXRhU3RydWN0RmllbGQ2NC4N Cj4gKyAgICBkZWYgdmlzaXREYXRhU3RydWN0RmllbGQ2NChzZWxmLCBjdHg6DQo+IFZmclN5bnRh eFBhcnNlci5EYXRhU3RydWN0RmllbGQ2NENvbnRleHQpOg0KPiArICAgICAgICBBcnJheU51bSA9 IHNlbGYuVHJhbnNOdW0oY3R4Lk51bWJlcigpKQ0KPiArICAgICAgICBSZXR1cm5Db2RlID0gZ1Zm clZhckRhdGFUeXBlREIuRGF0YVR5cGVBZGRGaWVsZCgNCj4gKyAgICAgICAgICAgIGN0eC5OLnRl eHQsICJVSU5UNjQiLCBBcnJheU51bSwgY3R4LkZpZWxkSW5Vbmlvbg0KPiArICAgICAgICApDQo+ ICsgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKFJldHVybkNvZGUsIGN0eC5OLmxpbmUsIGN0eC5O LnRleHQpDQo+ICsgICAgICAgIHJldHVybiBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI2Rh dGFTdHJ1Y3RGaWVsZDMyLg0KPiArICAgIGRlZiB2aXNpdERhdGFTdHJ1Y3RGaWVsZDMyKHNlbGYs IGN0eDoNCj4gVmZyU3ludGF4UGFyc2VyLkRhdGFTdHJ1Y3RGaWVsZDMyQ29udGV4dCk6DQo+ICsg ICAgICAgIEFycmF5TnVtID0gc2VsZi5UcmFuc051bShjdHguTnVtYmVyKCkpDQo+ICsgICAgICAg IFJldHVybkNvZGUgPSBnVmZyVmFyRGF0YVR5cGVEQi5EYXRhVHlwZUFkZEZpZWxkKA0KPiArICAg ICAgICAgICAgY3R4Lk4udGV4dCwgIlVJTlQzMiIsIEFycmF5TnVtLCBjdHguRmllbGRJblVuaW9u DQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwg Y3R4Lk4ubGluZSwgY3R4Lk4udGV4dCkNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYudmlzaXRDaGls ZHJlbihjdHgpDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBW ZnJTeW50YXhQYXJzZXIjZGF0YVN0cnVjdEZpZWxkMTYuDQo+ICsgICAgZGVmIHZpc2l0RGF0YVN0 cnVjdEZpZWxkMTYoc2VsZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIuRGF0YVN0cnVjdEZpZWxk MTZDb250ZXh0KToNCj4gKyAgICAgICAgQXJyYXlOdW0gPSBzZWxmLlRyYW5zTnVtKGN0eC5OdW1i ZXIoKSkNCj4gKyAgICAgICAgUmV0dXJuQ29kZSA9IGdWZnJWYXJEYXRhVHlwZURCLkRhdGFUeXBl QWRkRmllbGQoDQo+ICsgICAgICAgICAgICBjdHguTi50ZXh0LCAiVUlOVDE2IiwgQXJyYXlOdW0s IGN0eC5GaWVsZEluVW5pb24NCj4gKyAgICAgICAgKQ0KPiArICAgICAgICBzZWxmLkVycm9ySGFu ZGxlcihSZXR1cm5Db2RlLCBjdHguTi5saW5lLCBjdHguTi50ZXh0KQ0KPiArICAgICAgICByZXR1 cm4gc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0 cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNkYXRhU3RydWN0RmllbGQ4Lg0KPiArICAg IGRlZiB2aXNpdERhdGFTdHJ1Y3RGaWVsZDgoc2VsZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIu RGF0YVN0cnVjdEZpZWxkOENvbnRleHQpOg0KPiArICAgICAgICBBcnJheU51bSA9IHNlbGYuVHJh bnNOdW0oY3R4Lk51bWJlcigpKQ0KPiArICAgICAgICBSZXR1cm5Db2RlID0gZ1ZmclZhckRhdGFU eXBlREIuRGF0YVR5cGVBZGRGaWVsZCgNCj4gKyAgICAgICAgICAgIGN0eC5OLnRleHQsICJVSU5U OCIsIEFycmF5TnVtLCBjdHguRmllbGRJblVuaW9uDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAg c2VsZi5FcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwgY3R4Lk4ubGluZSwgY3R4Lk4udGV4dCkNCj4g KyAgICAgICAgcmV0dXJuIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsNCj4gKyAgICAjIFZp c2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjZGF0YVN0cnVjdEZp ZWxkQm9vbC4NCj4gKyAgICBkZWYgdmlzaXREYXRhU3RydWN0RmllbGRCb29sKHNlbGYsIGN0eDoN Cj4gVmZyU3ludGF4UGFyc2VyLkRhdGFTdHJ1Y3RGaWVsZEJvb2xDb250ZXh0KToNCj4gKyAgICAg ICAgQXJyYXlOdW0gPSBzZWxmLlRyYW5zTnVtKGN0eC5OdW1iZXIoKSkNCj4gKyAgICAgICAgUmV0 dXJuQ29kZSA9IGdWZnJWYXJEYXRhVHlwZURCLkRhdGFUeXBlQWRkRmllbGQoDQo+ICsgICAgICAg ICAgICBjdHguTi50ZXh0LCAiQk9PTEVBTiIsIEFycmF5TnVtLCBjdHguRmllbGRJblVuaW9uDQo+ ICsgICAgICAgICkNCj4gKyAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwgY3R4 Lk4ubGluZSwgY3R4Lk4udGV4dCkNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYudmlzaXRDaGlsZHJl bihjdHgpDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJT eW50YXhQYXJzZXIjZGF0YVN0cnVjdEZpZWxkU3RyaW5nLg0KPiArICAgIGRlZiB2aXNpdERhdGFT dHJ1Y3RGaWVsZFN0cmluZyhzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5EYXRhU3RydWN0 RmllbGRTdHJpbmdDb250ZXh0KToNCj4gKyAgICAgICAgQXJyYXlOdW0gPSBzZWxmLlRyYW5zTnVt KGN0eC5OdW1iZXIoKSkNCj4gKyAgICAgICAgUmV0dXJuQ29kZSA9IGdWZnJWYXJEYXRhVHlwZURC LkRhdGFUeXBlQWRkRmllbGQoDQo+ICsgICAgICAgICAgICBjdHguTi50ZXh0LCAiRUZJX1NUUklO R19JRCIsIEFycmF5TnVtLCBjdHguRmllbGRJblVuaW9uDQo+ICsgICAgICAgICkNCj4gKyAgICAg ICAgc2VsZi5FcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwgY3R4Lk4ubGluZSwgY3R4Lk4udGV4dCkN Cj4gKyAgICAgICAgcmV0dXJuIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsNCj4gKyAgICAj IFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjZGF0YVN0cnVj dEZpZWxkRGF0ZS4NCj4gKyAgICBkZWYgdmlzaXREYXRhU3RydWN0RmllbGREYXRlKHNlbGYsIGN0 eDoNCj4gVmZyU3ludGF4UGFyc2VyLkRhdGFTdHJ1Y3RGaWVsZERhdGVDb250ZXh0KToNCj4gKyAg ICAgICAgQXJyYXlOdW0gPSBzZWxmLlRyYW5zTnVtKGN0eC5OdW1iZXIoKSkNCj4gKyAgICAgICAg UmV0dXJuQ29kZSA9IGdWZnJWYXJEYXRhVHlwZURCLkRhdGFUeXBlQWRkRmllbGQoDQo+ICsgICAg ICAgICAgICBjdHguTi50ZXh0LCAiRUZJX0hJSV9EQVRFIiwgQXJyYXlOdW0sIGN0eC5GaWVsZElu VW5pb24NCj4gKyAgICAgICAgKQ0KPiArICAgICAgICBzZWxmLkVycm9ySGFuZGxlcihSZXR1cm5D b2RlLCBjdHguTi5saW5lLCBjdHguTi50ZXh0KQ0KPiArICAgICAgICByZXR1cm4gc2VsZi52aXNp dENoaWxkcmVuKGN0eCkNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2Vk IGJ5IFZmclN5bnRheFBhcnNlciNkYXRhU3RydWN0RmllbGRUaW1lLg0KPiArICAgIGRlZiB2aXNp dERhdGFTdHJ1Y3RGaWVsZFRpbWUoc2VsZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIuRGF0YVN0 cnVjdEZpZWxkVGltZUNvbnRleHQpOg0KPiArICAgICAgICBBcnJheU51bSA9IHNlbGYuVHJhbnNO dW0oY3R4Lk51bWJlcigpKQ0KPiArICAgICAgICBSZXR1cm5Db2RlID0gZ1ZmclZhckRhdGFUeXBl REIuRGF0YVR5cGVBZGRGaWVsZCgNCj4gKyAgICAgICAgICAgIGN0eC5OLnRleHQsICJFRklfSElJ X1RJTUUiLCBBcnJheU51bSwgY3R4LkZpZWxkSW5Vbmlvbg0KPiArICAgICAgICApDQo+ICsgICAg ICAgIHNlbGYuRXJyb3JIYW5kbGVyKFJldHVybkNvZGUsIGN0eC5OLmxpbmUsIGN0eC5OLnRleHQp DQo+ICsgICAgICAgIHJldHVybiBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ICsgICAg IyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI2RhdGFTdHJ1 Y3RGaWVsZFJlZi4NCj4gKyAgICBkZWYgdmlzaXREYXRhU3RydWN0RmllbGRSZWYoc2VsZiwgY3R4 Og0KPiBWZnJTeW50YXhQYXJzZXIuRGF0YVN0cnVjdEZpZWxkUmVmQ29udGV4dCk6DQo+ICsgICAg ICAgIEFycmF5TnVtID0gc2VsZi5UcmFuc051bShjdHguTnVtYmVyKCkpDQo+ICsgICAgICAgIFJl dHVybkNvZGUgPSBnVmZyVmFyRGF0YVR5cGVEQi5EYXRhVHlwZUFkZEZpZWxkKA0KPiArICAgICAg ICAgICAgY3R4Lk4udGV4dCwgIkVGSV9ISUlfUkVGIiwgQXJyYXlOdW0sIGN0eC5GaWVsZEluVW5p b24NCj4gKyAgICAgICAgKQ0KPiArICAgICAgICBzZWxmLkVycm9ySGFuZGxlcihSZXR1cm5Db2Rl LCBjdHguTi5saW5lLCBjdHguTi50ZXh0KQ0KPiArICAgICAgICByZXR1cm4gc2VsZi52aXNpdENo aWxkcmVuKGN0eCkNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5 IFZmclN5bnRheFBhcnNlciNkYXRhU3RydWN0RmllbGRVc2VyLg0KPiArICAgIGRlZiB2aXNpdERh dGFTdHJ1Y3RGaWVsZFVzZXIoc2VsZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIuRGF0YVN0cnVj dEZpZWxkVXNlckNvbnRleHQpOg0KPiArICAgICAgICBBcnJheU51bSA9IHNlbGYuVHJhbnNOdW0o Y3R4Lk51bWJlcigpKQ0KPiArICAgICAgICBpZiBjdHguVC50ZXh0ICE9ICJDSEFSMTYiOg0KPiAr ICAgICAgICAgICAgUmV0dXJuQ29kZSA9IGdWZnJWYXJEYXRhVHlwZURCLkRhdGFUeXBlQWRkRmll bGQoDQo+ICsgICAgICAgICAgICAgICAgY3R4Lk4udGV4dCwgY3R4LlQudGV4dCwgQXJyYXlOdW0s IGN0eC5GaWVsZEluVW5pb24NCj4gKyAgICAgICAgICAgICkNCj4gKyAgICAgICAgZWxzZToNCj4g KyAgICAgICAgICAgIFJldHVybkNvZGUgPSBnVmZyVmFyRGF0YVR5cGVEQi5EYXRhVHlwZUFkZEZp ZWxkKA0KPiArICAgICAgICAgICAgICAgIGN0eC5OLnRleHQsICJVSU5UMTYiLCBBcnJheU51bSwg Y3R4LkZpZWxkSW5Vbmlvbg0KPiArICAgICAgICAgICAgKQ0KPiArICAgICAgICBzZWxmLkVycm9y SGFuZGxlcihSZXR1cm5Db2RlLCBjdHguTi5saW5lLCBjdHguTi50ZXh0KQ0KPiArICAgICAgICBy ZXR1cm4gc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJz ZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNkYXRhU3RydWN0Qml0RmllbGQ2NC4N Cj4gKyAgICBkZWYgdmlzaXREYXRhU3RydWN0Qml0RmllbGQ2NChzZWxmLCBjdHg6DQo+IFZmclN5 bnRheFBhcnNlci5EYXRhU3RydWN0Qml0RmllbGQ2NENvbnRleHQpOg0KPiArICAgICAgICBXaWR0 aCA9IHNlbGYuVHJhbnNOdW0oY3R4Lk51bWJlcigpKQ0KPiArICAgICAgICBpZiBjdHguTiAhPSBO b25lOg0KPiArICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAg ICAgZ1ZmclZhckRhdGFUeXBlREIuRGF0YVR5cGVBZGRCaXRGaWVsZCgNCj4gKyAgICAgICAgICAg ICAgICAgICAgY3R4Lk4udGV4dCwgIlVJTlQ2NCIsIFdpZHRoLCBjdHguRmllbGRJblVuaW9uDQo+ ICsgICAgICAgICAgICAgICAgKSwNCj4gKyAgICAgICAgICAgICAgICBjdHguTi5saW5lLA0KPiAr ICAgICAgICAgICAgICAgIGN0eC5OLnRleHQsDQo+ICsgICAgICAgICAgICApDQo+ICsgICAgICAg IGVsc2U6DQo+ICsgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAg ICAgICBnVmZyVmFyRGF0YVR5cGVEQi5EYXRhVHlwZUFkZEJpdEZpZWxkKE5vbmUsICJVSU5UNjQi LCBXaWR0aCwNCj4gY3R4LkZpZWxkSW5VbmlvbiksDQo+ICsgICAgICAgICAgICAgICAgY3R4LkQu bGluZSwNCj4gKyAgICAgICAgICAgICAgICBjdHguRC50ZXh0LA0KPiArICAgICAgICAgICAgKQ0K PiArDQo+ICsgICAgICAgIHJldHVybiBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ICsg ICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI2RhdGFT dHJ1Y3RCaXRGaWVsZDMyLg0KPiArICAgIGRlZiB2aXNpdERhdGFTdHJ1Y3RCaXRGaWVsZDMyKHNl bGYsIGN0eDoNCj4gVmZyU3ludGF4UGFyc2VyLkRhdGFTdHJ1Y3RCaXRGaWVsZDMyQ29udGV4dCk6 DQo+ICsgICAgICAgIFdpZHRoID0gc2VsZi5UcmFuc051bShjdHguTnVtYmVyKCkpDQo+ICsgICAg ICAgIGlmIGN0eC5OICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigN Cj4gKyAgICAgICAgICAgICAgICBnVmZyVmFyRGF0YVR5cGVEQi5EYXRhVHlwZUFkZEJpdEZpZWxk KA0KPiArICAgICAgICAgICAgICAgICAgICBjdHguTi50ZXh0LCAiVUlOVDMyIiwgV2lkdGgsIGN0 eC5GaWVsZEluVW5pb24NCj4gKyAgICAgICAgICAgICAgICApLA0KPiArICAgICAgICAgICAgICAg IGN0eC5OLmxpbmUsDQo+ICsgICAgICAgICAgICAgICAgY3R4Lk4udGV4dCwNCj4gKyAgICAgICAg ICAgICkNCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVy KA0KPiArICAgICAgICAgICAgICAgIGdWZnJWYXJEYXRhVHlwZURCLkRhdGFUeXBlQWRkQml0Rmll bGQoTm9uZSwgIlVJTlQzMiIsIFdpZHRoLA0KPiBjdHguRmllbGRJblVuaW9uKSwNCj4gKyAgICAg ICAgICAgICAgICBjdHguRC5saW5lLA0KPiArICAgICAgICAgICAgICAgIGN0eC5ELnRleHQsDQo+ ICsgICAgICAgICAgICApDQo+ICsgICAgICAgIHJldHVybiBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4 KQ0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4 UGFyc2VyI2RhdGFTdHJ1Y3RCaXRGaWVsZDE2Lg0KPiArICAgIGRlZiB2aXNpdERhdGFTdHJ1Y3RC aXRGaWVsZDE2KHNlbGYsIGN0eDoNCj4gVmZyU3ludGF4UGFyc2VyLkRhdGFTdHJ1Y3RCaXRGaWVs ZDE2Q29udGV4dCk6DQo+ICsgICAgICAgIFdpZHRoID0gc2VsZi5UcmFuc051bShjdHguTnVtYmVy KCkpDQo+ICsgICAgICAgIGlmIGN0eC5OICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBzZWxmLkVy cm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAgICBnVmZyVmFyRGF0YVR5cGVEQi5EYXRhVHlw ZUFkZEJpdEZpZWxkKA0KPiArICAgICAgICAgICAgICAgICAgICBjdHguTi50ZXh0LCAiVUlOVDE2 IiwgV2lkdGgsIGN0eC5GaWVsZEluVW5pb24NCj4gKyAgICAgICAgICAgICAgICApLA0KPiArICAg ICAgICAgICAgICAgIGN0eC5OLmxpbmUsDQo+ICsgICAgICAgICAgICAgICAgY3R4Lk4udGV4dCwN Cj4gKyAgICAgICAgICAgICkNCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIHNlbGYu RXJyb3JIYW5kbGVyKA0KPiArICAgICAgICAgICAgICAgIGdWZnJWYXJEYXRhVHlwZURCLkRhdGFU eXBlQWRkQml0RmllbGQoTm9uZSwgIlVJTlQxNiIsIFdpZHRoLA0KPiBjdHguRmllbGRJblVuaW9u KSwNCj4gKyAgICAgICAgICAgICAgICBjdHguRC5saW5lLA0KPiArICAgICAgICAgICAgICAgIGN0 eC5ELnRleHQsDQo+ICsgICAgICAgICAgICApDQo+ICsgICAgICAgIHJldHVybiBzZWxmLnZpc2l0 Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQg YnkgVmZyU3ludGF4UGFyc2VyI2RhdGFTdHJ1Y3RCaXRGaWVsZDguDQo+ICsgICAgZGVmIHZpc2l0 RGF0YVN0cnVjdEJpdEZpZWxkOChzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5EYXRhU3Ry dWN0Qml0RmllbGQ4Q29udGV4dCk6DQo+ICsgICAgICAgIFdpZHRoID0gc2VsZi5UcmFuc051bShj dHguTnVtYmVyKCkpDQo+ICsgICAgICAgIGlmIGN0eC5OICE9IE5vbmU6DQo+ICsgICAgICAgICAg ICBzZWxmLkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAgICBnVmZyVmFyRGF0YVR5cGVE Qi5EYXRhVHlwZUFkZEJpdEZpZWxkKGN0eC5OLnRleHQsICJVSU5UOCIsDQo+IFdpZHRoLCBjdHgu RmllbGRJblVuaW9uKSwNCj4gKyAgICAgICAgICAgICAgICBjdHguTi5saW5lLA0KPiArICAgICAg ICAgICAgICAgIGN0eC5OLnRleHQsDQo+ICsgICAgICAgICAgICApDQo+ICsgICAgICAgIGVsc2U6 DQo+ICsgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAgICBn VmZyVmFyRGF0YVR5cGVEQi5EYXRhVHlwZUFkZEJpdEZpZWxkKE5vbmUsICJVSU5UOCIsIFdpZHRo LA0KPiBjdHguRmllbGRJblVuaW9uKSwNCj4gKyAgICAgICAgICAgICAgICBjdHguRC5saW5lLA0K PiArICAgICAgICAgICAgICAgIGN0eC5ELnRleHQsDQo+ICsgICAgICAgICAgICApDQo+ICsgICAg ICAgIHJldHVybiBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ICsgICAgZGVmIERlY2xh cmVTdGFuZGFyZERlZmF1bHRTdG9yYWdlKHNlbGYsIExpbmVObyk6DQo+ICsgICAgICAgIERTT2Jq ID0gSWZyRGVmYXVsdFN0b3JlKCJTdGFuZGFyZCBEZWZhdWx0cyIpDQo+ICsgICAgICAgIGdWZnJE ZWZhdWx0U3RvcmUuUmVnaXN0ZXJEZWZhdWx0U3RvcmUoDQo+ICsgICAgICAgICAgICBEU09iai5E ZWZhdWx0U3RvcmUsDQo+ICsgICAgICAgICAgICAiU3RhbmRhcmQgRGVmYXVsdHMiLA0KPiArICAg ICAgICAgICAgRUZJX1NUUklOR19JRF9JTlZBTElELA0KPiArICAgICAgICAgICAgRUZJX0hJSV9E RUZBVUxUX0NMQVNTX1NUQU5EQVJELA0KPiArICAgICAgICApDQo+ICsgICAgICAgIERTT2JqLlNl dExpbmVObyhMaW5lTm8pDQo+ICsgICAgICAgIERTT2JqLlNldERlZmF1bHROYW1lKEVGSV9TVFJJ TkdfSURfSU5WQUxJRCkNCj4gKyAgICAgICAgRFNPYmouU2V0RGVmYXVsdElkKEVGSV9ISUlfREVG QVVMVF9DTEFTU19TVEFOREFSRCkNCj4gKyAgICAgICAgRHNOb2RlID0gSWZyVHJlZU5vZGUoDQo+ ICsgICAgICAgICAgICBFRklfSUZSX0RFRkFVTFRTVE9SRV9PUCwgRFNPYmosDQo+IGdGb3JtUGtn LlN0cnVjdFRvU3RyZWFtKERTT2JqLkdldEluZm8oKSkNCj4gKyAgICAgICAgKQ0KPiArDQo+ICsg ICAgICAgIERTT2JqTUYgPSBJZnJEZWZhdWx0U3RvcmUoIlN0YW5kYXJkIE1hbnVGYWN0dXJpbmci KQ0KPiArICAgICAgICBnVmZyRGVmYXVsdFN0b3JlLlJlZ2lzdGVyRGVmYXVsdFN0b3JlKA0KPiAr ICAgICAgICAgICAgRFNPYmpNRi5EZWZhdWx0U3RvcmUsDQo+ICsgICAgICAgICAgICAiU3RhbmRh cmQgTWFudUZhY3R1cmluZyIsDQo+ICsgICAgICAgICAgICBFRklfU1RSSU5HX0lEX0lOVkFMSUQs DQo+ICsgICAgICAgICAgICBFRklfSElJX0RFRkFVTFRfQ0xBU1NfTUFOVUZBQ1RVUklORywNCj4g KyAgICAgICAgKQ0KPiArICAgICAgICBEU09iak1GLlNldExpbmVObyhMaW5lTm8pDQo+ICsgICAg ICAgIERTT2JqTUYuU2V0RGVmYXVsdE5hbWUoRUZJX1NUUklOR19JRF9JTlZBTElEKQ0KPiArICAg ICAgICBEU09iak1GLlNldERlZmF1bHRJZChFRklfSElJX0RFRkFVTFRfQ0xBU1NfTUFOVUZBQ1RV UklORykNCj4gKyAgICAgICAgRHNOb2RlTUYgPSBJZnJUcmVlTm9kZSgNCj4gKyAgICAgICAgICAg IEVGSV9JRlJfREVGQVVMVFNUT1JFX09QLCBEU09iak1GLA0KPiBnRm9ybVBrZy5TdHJ1Y3RUb1N0 cmVhbShEU09iak1GLkdldEluZm8oKSkNCj4gKyAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgIHJl dHVybiBEc05vZGUsIERzTm9kZU1GDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBw cm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyRm9ybVNldERlZmluaXRpb24uDQo+ICsgICAg ZGVmIHZpc2l0VmZyRm9ybVNldERlZmluaXRpb24oc2VsZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJz ZXIuVmZyRm9ybVNldERlZmluaXRpb25Db250ZXh0KToNCj4gKyAgICAgICAgc2VsZi5JbnNlcnRD aGlsZChzZWxmLlJvb3QsIGN0eCkNCj4gKyAgICAgICAgc2VsZi5JbnNlcnRDaGlsZChjdHguTm9k ZSwgY3R4LmNsYXNzRGVmaW5pdGlvbigpKQ0KPiArICAgICAgICBzZWxmLkluc2VydENoaWxkKGN0 eC5Ob2RlLCBjdHguc3ViY2xhc3NEZWZpbml0aW9uKCkpDQo+ICsNCj4gKyAgICAgICAgRHNOb2Rl LCBEc05vZGVNRiA9IHNlbGYuRGVjbGFyZVN0YW5kYXJkRGVmYXVsdFN0b3JhZ2UoY3R4LnN0YXJ0 LmxpbmUpDQo+ICsgICAgICAgIGN0eC5Ob2RlLmluc2VydENoaWxkKERzTm9kZSkNCj4gKyAgICAg ICAgY3R4Lk5vZGUuaW5zZXJ0Q2hpbGQoRHNOb2RlTUYpDQo+ICsNCj4gKyAgICAgICAgc2VsZi52 aXNpdENoaWxkcmVuKGN0eCkNCj4gKw0KPiArICAgICAgICBDbGFzc0d1aWROdW0gPSAwDQo+ICsg ICAgICAgIEd1aWRMaXN0ID0gW10NCj4gKyAgICAgICAgaWYgY3R4LmNsYXNzZ3VpZERlZmluaXRp b24oKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgR3VpZExpc3QgPSBjdHguY2xhc3NndWlkRGVm aW5pdGlvbigpLkd1aWRMaXN0DQo+ICsgICAgICAgICAgICBDbGFzc0d1aWROdW0gPSBsZW4oR3Vp ZExpc3QpDQo+ICsNCj4gKyAgICAgICAgRGVmYXVsdENsYXNzR3VpZCA9IEVGSV9ISUlfUExBVEZP Uk1fU0VUVVBfRk9STVNFVF9HVUlEDQo+ICsNCj4gKyAgICAgICAgaWYgc2VsZi5PdmVycmlkZUNs YXNzR3VpZCAhPSBOb25lIGFuZCBDbGFzc0d1aWROdW0gPj0gNDoNCj4gKyAgICAgICAgICAgIHNl bGYuRXJyb3JIYW5kbGVyKA0KPiArICAgICAgICAgICAgICAgIFZmclJldHVybkNvZGUuVkZSX1JF VFVSTl9JTlZBTElEX1BBUkFNRVRFUiwNCj4gKyAgICAgICAgICAgICAgICBjdHguc3RhcnQubGlu ZSwNCj4gKyAgICAgICAgICAgICAgICBOb25lLA0KPiArICAgICAgICAgICAgICAgICJBbHJlYWR5 IGhhcyA0IGNsYXNzIGd1aWRzLCBjYW4gbm90IGFkZCBleHRyYSBjbGFzcyBndWlkISIsDQo+ICsg ICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgaWYgQ2xhc3NHdWlkTnVtID09IDA6DQo+ICsg ICAgICAgICAgICBpZiBzZWxmLk92ZXJyaWRlQ2xhc3NHdWlkICE9IE5vbmU6DQo+ICsgICAgICAg ICAgICAgICAgQ2xhc3NHdWlkTnVtID0gMg0KPiArICAgICAgICAgICAgZWxzZToNCj4gKyAgICAg ICAgICAgICAgICBDbGFzc0d1aWROdW0gPSAxDQo+ICsgICAgICAgICAgICBGU09iaiA9IElmckZv cm1TZXQoc2l6ZW9mKEVGSV9JRlJfRk9STV9TRVQpICsgQ2xhc3NHdWlkTnVtICoNCj4gc2l6ZW9m KEVGSV9HVUlEKSkNCj4gKyAgICAgICAgICAgIEZTT2JqLlNldENsYXNzR3VpZChEZWZhdWx0Q2xh c3NHdWlkKQ0KPiArICAgICAgICAgICAgaWYgc2VsZi5PdmVycmlkZUNsYXNzR3VpZCAhPSBOb25l Og0KPiArICAgICAgICAgICAgICAgIEZTT2JqLlNldENsYXNzR3VpZChzZWxmLk92ZXJyaWRlQ2xh c3NHdWlkKQ0KPiArDQo+ICsgICAgICAgIGVsaWYgQ2xhc3NHdWlkTnVtID09IDE6DQo+ICsgICAg ICAgICAgICBpZiBzZWxmLk92ZXJyaWRlQ2xhc3NHdWlkICE9IE5vbmU6DQo+ICsgICAgICAgICAg ICAgICAgQ2xhc3NHdWlkTnVtICs9IDENCj4gKyAgICAgICAgICAgIEZTT2JqID0gSWZyRm9ybVNl dChzaXplb2YoRUZJX0lGUl9GT1JNX1NFVCkgKyBDbGFzc0d1aWROdW0gKg0KPiBzaXplb2YoRUZJ X0dVSUQpKQ0KPiArICAgICAgICAgICAgRlNPYmouU2V0Q2xhc3NHdWlkKEd1aWRMaXN0WzBdKQ0K PiArICAgICAgICAgICAgaWYgc2VsZi5PdmVycmlkZUNsYXNzR3VpZCAhPSBOb25lOg0KPiArICAg ICAgICAgICAgICAgIEZTT2JqLlNldENsYXNzR3VpZChzZWxmLk92ZXJyaWRlQ2xhc3NHdWlkKQ0K PiArDQo+ICsgICAgICAgIGVsaWYgQ2xhc3NHdWlkTnVtID09IDI6DQo+ICsgICAgICAgICAgICBp ZiBzZWxmLk92ZXJyaWRlQ2xhc3NHdWlkICE9IE5vbmU6DQo+ICsgICAgICAgICAgICAgICAgQ2xh c3NHdWlkTnVtICs9IDENCj4gKyAgICAgICAgICAgIEZTT2JqID0gSWZyRm9ybVNldChzaXplb2Yo RUZJX0lGUl9GT1JNX1NFVCkgKyBDbGFzc0d1aWROdW0gKg0KPiBzaXplb2YoRUZJX0dVSUQpKQ0K PiArICAgICAgICAgICAgRlNPYmouU2V0Q2xhc3NHdWlkKEd1aWRMaXN0WzBdKQ0KPiArICAgICAg ICAgICAgRlNPYmouU2V0Q2xhc3NHdWlkKEd1aWRMaXN0WzFdKQ0KPiArICAgICAgICAgICAgaWYg c2VsZi5PdmVycmlkZUNsYXNzR3VpZCAhPSBOb25lOg0KPiArICAgICAgICAgICAgICAgIEZTT2Jq LlNldENsYXNzR3VpZChzZWxmLk92ZXJyaWRlQ2xhc3NHdWlkKQ0KPiArDQo+ICsgICAgICAgIGVs aWYgQ2xhc3NHdWlkTnVtID09IDM6DQo+ICsgICAgICAgICAgICBpZiBzZWxmLk92ZXJyaWRlQ2xh c3NHdWlkICE9IE5vbmU6DQo+ICsgICAgICAgICAgICAgICAgQ2xhc3NHdWlkTnVtICs9IDENCj4g KyAgICAgICAgICAgIEZTT2JqID0gSWZyRm9ybVNldChzaXplb2YoRUZJX0lGUl9GT1JNX1NFVCkg KyBDbGFzc0d1aWROdW0gKg0KPiBzaXplb2YoRUZJX0dVSUQpKQ0KPiArICAgICAgICAgICAgRlNP YmouU2V0Q2xhc3NHdWlkKEd1aWRMaXN0WzBdKQ0KPiArICAgICAgICAgICAgRlNPYmouU2V0Q2xh c3NHdWlkKEd1aWRMaXN0WzFdKQ0KPiArICAgICAgICAgICAgRlNPYmouU2V0Q2xhc3NHdWlkKEd1 aWRMaXN0WzJdKQ0KPiArICAgICAgICAgICAgaWYgc2VsZi5PdmVycmlkZUNsYXNzR3VpZCAhPSBO b25lOg0KPiArICAgICAgICAgICAgICAgIEZTT2JqLlNldENsYXNzR3VpZChzZWxmLk92ZXJyaWRl Q2xhc3NHdWlkKQ0KPiArDQo+ICsgICAgICAgIGVsaWYgQ2xhc3NHdWlkTnVtID09IDQ6DQo+ICsg ICAgICAgICAgICBpZiBzZWxmLk92ZXJyaWRlQ2xhc3NHdWlkICE9IE5vbmU6DQo+ICsgICAgICAg ICAgICAgICAgQ2xhc3NHdWlkTnVtICs9IDENCj4gKyAgICAgICAgICAgIEZTT2JqID0gSWZyRm9y bVNldChzaXplb2YoRUZJX0lGUl9GT1JNX1NFVCkgKyBDbGFzc0d1aWROdW0gKg0KPiBzaXplb2Yo RUZJX0dVSUQpKQ0KPiArICAgICAgICAgICAgRlNPYmouU2V0Q2xhc3NHdWlkKEd1aWRMaXN0WzBd KQ0KPiArICAgICAgICAgICAgRlNPYmouU2V0Q2xhc3NHdWlkKEd1aWRMaXN0WzFdKQ0KPiArICAg ICAgICAgICAgRlNPYmouU2V0Q2xhc3NHdWlkKEd1aWRMaXN0WzJdKQ0KPiArICAgICAgICAgICAg RlNPYmouU2V0Q2xhc3NHdWlkKEd1aWRMaXN0WzNdKQ0KPiArDQo+ICsgICAgICAgIEZTT2JqLlNl dExpbmVObyhjdHguc3RhcnQubGluZSkNCj4gKyAgICAgICAgRlNPYmouU2V0R3VpZChjdHguZ3Vp ZERlZmluaXRpb24oKS5HdWlkKQ0KPiArICAgICAgICBGU09iai5TZXRGb3JtU2V0VGl0bGUoc2Vs Zi5UcmFuc051bShjdHguTnVtYmVyKDApKSkNCj4gKyAgICAgICAgRlNPYmouU2V0SGVscChzZWxm LlRyYW5zTnVtKGN0eC5OdW1iZXIoMSkpKQ0KPiArICAgICAgICBGU09iai5TZXRDbGFzc0d1aWRO dW0obGVuKEd1aWRMaXN0KSkNCj4gKw0KPiArICAgICAgICBjdHguTm9kZS5EYXRhID0gRlNPYmoN Cj4gKyAgICAgICAgY3R4Lk5vZGUuQnVmZmVyID0gZ0Zvcm1Qa2cuU3RydWN0VG9TdHJlYW0oRlNP YmouR2V0SW5mbygpKQ0KPiArICAgICAgICBpZiBsZW4oR3VpZExpc3QpID09IDA6DQo+ICsgICAg ICAgICAgICBjdHguTm9kZS5CdWZmZXIgKz0gZ0Zvcm1Qa2cuU3RydWN0VG9TdHJlYW0oRGVmYXVs dENsYXNzR3VpZCkNCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIGZvciBpIGluIHJh bmdlKDAsIGxlbihHdWlkTGlzdCkpOg0KPiArICAgICAgICAgICAgICAgIGN0eC5Ob2RlLkJ1ZmZl ciArPSBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShHdWlkTGlzdFtpXSkNCj4gKw0KPiArICAgICAg ICAjIERlY2xhcmUgdW5kZWZpbmVkIFF1ZXN0aW9uIHNvIHRoYXQgdGhleSBjYW4gYmUgdXNlZCBp biBleHByZXNzaW9uLg0KPiArICAgICAgICBJbnNlcnRPcENvZGVMaXN0ID0gTm9uZQ0KPiArICAg ICAgICBpZiBnRm9ybVBrZy5IYXZlUGVuZGluZ1VuYXNzaWduZWQoKToNCj4gKyAgICAgICAgICAg IEluc2VydE9wQ29kZUxpc3QsIFJldHVybkNvZGUgPSBnRm9ybVBrZy5EZWNsYXJlUGVuZGluZ1F1 ZXN0aW9uKA0KPiArICAgICAgICAgICAgICAgIGdWZnJWYXJEYXRhVHlwZURCLCBnVmZyRGF0YVN0 b3JhZ2UsIHNlbGYuVmZyUXVlc3Rpb25EQiwNCj4gY3R4LnN0b3AubGluZQ0KPiArICAgICAgICAg ICAgKQ0KPiArICAgICAgICAgICAgU3RhdHVzID0gMCBpZiBSZXR1cm5Db2RlID09IFZmclJldHVy bkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+IGVsc2UgMQ0KPiArICAgICAgICAgICAgc2VsZi5Q YXJzZXJTdGF0dXMgKz0gU3RhdHVzDQo+ICsgICAgICAgICAgICBzZWxmLk5lZWRBZGp1c3RPcGNv ZGUgPSBUcnVlDQo+ICsNCj4gKyAgICAgICAgc2VsZi5JbnNlcnRFbmROb2RlKGN0eC5Ob2RlLCBj dHguc3RvcC5saW5lKQ0KPiArDQo+ICsgICAgICAgIGlmIHNlbGYuTmVlZEFkanVzdE9wY29kZToN Cj4gKyAgICAgICAgICAgIHNlbGYuTGFzdEZvcm1Ob2RlLkNoaWxkLnBvcCgpDQo+ICsgICAgICAg ICAgICBmb3IgSW5zZXJ0T3BDb2RlIGluIEluc2VydE9wQ29kZUxpc3Q6DQo+ICsgICAgICAgICAg ICAgICAgSW5zZXJ0Tm9kZSA9IElmclRyZWVOb2RlKA0KPiArICAgICAgICAgICAgICAgICAgICBJ bnNlcnRPcENvZGUuT3BDb2RlLA0KPiArICAgICAgICAgICAgICAgICAgICBJbnNlcnRPcENvZGUu RGF0YSwNCj4gKyAgICAgICAgICAgICAgICAgICAgZ0Zvcm1Qa2cuU3RydWN0VG9TdHJlYW0oSW5z ZXJ0T3BDb2RlLkRhdGEuR2V0SW5mbygpKSwNCj4gKyAgICAgICAgICAgICAgICApDQo+ICsgICAg ICAgICAgICAgICAgc2VsZi5MYXN0Rm9ybU5vZGUuaW5zZXJ0Q2hpbGQoSW5zZXJ0Tm9kZSkNCj4g Kw0KPiArICAgICAgICBnRm9ybVBrZy5CdWlsZFBrZyhzZWxmLlJvb3QpDQo+ICsgICAgICAgIHJl dHVybiBjdHguTm9kZQ0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQg YnkgVmZyU3ludGF4UGFyc2VyI2NsYXNzZ3VpZERlZmluaXRpb24uDQo+ICsgICAgZGVmIHZpc2l0 Q2xhc3NndWlkRGVmaW5pdGlvbihzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5DbGFzc2d1 aWREZWZpbml0aW9uQ29udGV4dCk6DQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgp DQo+ICsNCj4gKyAgICAgICAgZm9yIEd1aWRDdHggaW4gY3R4Lmd1aWREZWZpbml0aW9uKCk6DQo+ ICsgICAgICAgICAgICBjdHguR3VpZExpc3QuYXBwZW5kKEd1aWRDdHguR3VpZCkNCj4gKw0KPiAr ICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVl IHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNjbGFzc0RlZmluaXRpb24uDQo+ICsgICAgZGVm IHZpc2l0Q2xhc3NEZWZpbml0aW9uKHNlbGYsIGN0eDogVmZyU3ludGF4UGFyc2VyLkNsYXNzRGVm aW5pdGlvbkNvbnRleHQpOg0KPiArICAgICAgICBDT2JqID0gSWZyQ2xhc3MoKQ0KPiArICAgICAg ICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAgICBDbGFzcyA9IDANCj4gKyAgICAg ICAgZm9yIENsYXNzTmFtZUN0eCBpbiBjdHgudmFsaWRDbGFzc05hbWVzKCk6DQo+ICsgICAgICAg ICAgICBDbGFzcyB8PSBDbGFzc05hbWVDdHguQ2xhc3NOYW1lDQo+ICsgICAgICAgIExpbmUgPSBj dHguc3RhcnQubGluZQ0KPiArICAgICAgICBDT2JqLlNldExpbmVObyhMaW5lKQ0KPiArICAgICAg ICBDT2JqLlNldENsYXNzKENsYXNzKQ0KPiArICAgICAgICBDT2JqLlNldENsYXNzU3RyKHNlbGYu RXh0cmFjdE9yaWdpbmFsVGV4dChjdHgpKQ0KPiArICAgICAgICBjdHguTm9kZS5EYXRhID0gQ09i ag0KPiArICAgICAgICBjdHguTm9kZS5CdWZmZXIgPSBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShD T2JqLkdldEluZm8oKSkNCj4gKw0KPiArICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gKw0KPiAr ICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2YWxp ZENsYXNzTmFtZXMuDQo+ICsgICAgZGVmIHZpc2l0VmFsaWRDbGFzc05hbWVzKHNlbGYsIGN0eDoN Cj4gVmZyU3ludGF4UGFyc2VyLlZhbGlkQ2xhc3NOYW1lc0NvbnRleHQpOg0KPiArICAgICAgICBz ZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ICsgICAgICAgIGlmIGN0eC5DbGFzc05vbkRl dmljZSgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguQ2xhc3NOYW1lID0gRUZJX05PTl9E RVZJQ0VfQ0xBU1MNCj4gKyAgICAgICAgZWxpZiBjdHguQ2xhc3NEaXNrRGV2aWNlKCkgIT0gTm9u ZToNCj4gKyAgICAgICAgICAgIGN0eC5DbGFzc05hbWUgPSBFRklfRElTS19ERVZJQ0VfQ0xBU1MN Cj4gKyAgICAgICAgZWxpZiBjdHguQ2xhc3NWaWRlb0RldmljZSgpICE9IE5vbmU6DQo+ICsgICAg ICAgICAgICBjdHguQ2xhc3NOYW1lID0gRUZJX1ZJREVPX0RFVklDRV9DTEFTUw0KPiArICAgICAg ICBlbGlmIGN0eC5DbGFzc05ldHdvcmtEZXZpY2UoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAg Y3R4LkNsYXNzTmFtZSA9IEVGSV9ORVRXT1JLX0RFVklDRV9DTEFTUw0KPiArICAgICAgICBlbGlm IGN0eC5DbGFzc0lucHV0RGV2aWNlKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5DbGFz c05hbWUgPSBFRklfSU5QVVRfREVWSUNFX0NMQVNTDQo+ICsgICAgICAgIGVsaWYgY3R4LkNsYXNz T25Cb2FyZERldmljZSgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguQ2xhc3NOYW1lID0g RUZJX09OX0JPQVJEX0RFVklDRV9DTEFTUw0KPiArICAgICAgICBlbGlmIGN0eC5DbGFzc090aGVy RGV2aWNlKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5DbGFzc05hbWUgPSBFRklfT1RI RVJfREVWSUNFX0NMQVNTDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICBjdHguQ2xh c3NOYW1lID0gc2VsZi5UcmFuc051bShjdHguTnVtYmVyKCkpDQo+ICsNCj4gKyAgICAgICAgcmV0 dXJuIGN0eC5DbGFzc05hbWUNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1 Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNzdWJjbGFzc0RlZmluaXRpb24uDQo+ICsgICAgZGVmIHZp c2l0U3ViY2xhc3NEZWZpbml0aW9uKHNlbGYsIGN0eDoNCj4gVmZyU3ludGF4UGFyc2VyLlN1YmNs YXNzRGVmaW5pdGlvbkNvbnRleHQpOg0KPiArICAgICAgICBTdWJPYmogPSBJZnJTdWJDbGFzcygp DQo+ICsNCj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKw0KPiArICAgICAg ICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gKyAgICAgICAgU3ViT2JqLlNldExpbmVObyhMaW5l KQ0KPiArICAgICAgICBTdWJDbGFzcyA9IDANCj4gKyAgICAgICAgaWYgY3R4LlN1YmNsYXNzU2V0 dXBBcHBsaWNhdGlvbigpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBTdWJDbGFzcyB8PSBFRklf U0VUVVBfQVBQTElDQVRJT05fU1VCQ0xBU1MNCj4gKyAgICAgICAgZWxpZiBjdHguU3ViY2xhc3NH ZW5lcmFsQXBwbGljYXRpb24oKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgU3ViQ2xhc3MgfD0g RUZJX0dFTkVSQUxfQVBQTElDQVRJT05fU1VCQ0xBU1MNCj4gKyAgICAgICAgZWxpZiBjdHguU3Vi Y2xhc3NGcm9udFBhZ2UoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgU3ViQ2xhc3MgfD0gRUZJ X0ZST05UX1BBR0VfU1VCQ0xBU1MNCj4gKyAgICAgICAgZWxpZiBjdHguU3ViY2xhc3NTaW5nbGVV c2UoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgU3ViQ2xhc3MgfD0gRUZJX1NJTkdMRV9VU0Vf U1VCQ0xBU1MNCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIFN1YkNsYXNzID0gc2Vs Zi5UcmFuc051bShjdHguTnVtYmVyKCkpDQo+ICsNCj4gKyAgICAgICAgU3ViT2JqLlNldFN1YkNs YXNzKFN1YkNsYXNzKQ0KPiArICAgICAgICBTdWJPYmouU2V0U3ViQ2xhc3NTdHIoc2VsZi5FeHRy YWN0T3JpZ2luYWxUZXh0KGN0eCkpDQo+ICsNCj4gKyAgICAgICAgY3R4Lk5vZGUuRGF0YSA9IFN1 Yk9iag0KPiArICAgICAgICBjdHguTm9kZS5CdWZmZXIgPSBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVh bShTdWJPYmouR2V0SW5mbygpKQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiAr DQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2Vy I3ZmckZvcm1TZXRMaXN0Lg0KPiArICAgIGRlZiB2aXNpdFZmckZvcm1TZXRMaXN0KHNlbGYsIGN0 eDogVmZyU3ludGF4UGFyc2VyLlZmckZvcm1TZXRMaXN0Q29udGV4dCk6DQo+ICsgICAgICAgIHNl bGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsgICAgICAgIGZvciBDdHggaW4gY3R4LnZmckZvcm1T ZXQoKToNCj4gKyAgICAgICAgICAgIHNlbGYuSW5zZXJ0Q2hpbGQoY3R4Lk5vZGUsIEN0eCkNCj4g Kw0KPiArICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJz ZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJGb3JtU2V0Lg0KPiArICAgIGRl ZiB2aXNpdFZmckZvcm1TZXQoc2VsZiwgY3R4OiBWZnJTeW50YXhQYXJzZXIuVmZyRm9ybVNldENv bnRleHQpOg0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ICsgICAg ICAgIGlmIGN0eC52ZnJGb3JtRGVmaW5pdGlvbigpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBj dHguTm9kZSA9IGN0eC52ZnJGb3JtRGVmaW5pdGlvbigpLk5vZGUNCj4gKyAgICAgICAgaWYgY3R4 LnZmckZvcm1NYXBEZWZpbml0aW9uKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5Ob2Rl ID0gY3R4LnZmckZvcm1NYXBEZWZpbml0aW9uKCkuTm9kZQ0KPiArICAgICAgICBpZiBjdHgudmZy U3RhdGVtZW50SW1hZ2UoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgu dmZyU3RhdGVtZW50SW1hZ2UoKS5Ob2RlDQo+ICsgICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnRW YXJTdG9yZUxpbmVhcigpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52 ZnJTdGF0ZW1lbnRWYXJTdG9yZUxpbmVhcigpLk5vZGUNCj4gKyAgICAgICAgaWYgY3R4LnZmclN0 YXRlbWVudFZhclN0b3JlRWZpKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlID0g Y3R4LnZmclN0YXRlbWVudFZhclN0b3JlRWZpKCkuTm9kZQ0KPiArICAgICAgICBpZiBjdHgudmZy U3RhdGVtZW50VmFyU3RvcmVOYW1lVmFsdWUoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4 Lk5vZGUgPSBjdHgudmZyU3RhdGVtZW50VmFyU3RvcmVOYW1lVmFsdWUoKS5Ob2RlDQo+ICsgICAg ICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnREZWZhdWx0U3RvcmUoKSAhPSBOb25lOg0KPiArICAgICAg ICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyU3RhdGVtZW50RGVmYXVsdFN0b3JlKCkuTm9kZQ0KPiAr ICAgICAgICBpZiBjdHgudmZyU3RhdGVtZW50RGlzYWJsZUlmRm9ybVNldCgpICE9IE5vbmU6DQo+ ICsgICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnREaXNhYmxlSWZGb3JtU2V0 KCkuTm9kZQ0KPiArICAgICAgICBpZiBjdHgudmZyU3RhdGVtZW50U3VwcHJlc3NJZkZvcm1TZXQo KSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyU3RhdGVtZW50U3Vw cHJlc3NJZkZvcm1TZXQoKS5Ob2RlDQo+ICsgICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnRFeHRl bnNpb24oKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyU3RhdGVt ZW50RXh0ZW5zaW9uKCkuTm9kZQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiAr DQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3ludGF4UGFy c2VyI3ZmclN0YXRlbWVudERlZmF1bHRTdG9yZS4NCj4gKyAgICBkZWYgdmlzaXRWZnJTdGF0ZW1l bnREZWZhdWx0U3RvcmUoc2VsZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50 RGVmYXVsdFN0b3JlQ29udGV4dCk6DQo+ICsgICAgICAgIExpbmUgPSBjdHguc3RhcnQubGluZQ0K PiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ICsgICAgICAgIFJlZk5h bWUgPSBjdHguTi50ZXh0DQo+ICsgICAgICAgIERTT2JqID0gSWZyRGVmYXVsdFN0b3JlKFJlZk5h bWUpDQo+ICsgICAgICAgIERlZmF1bHRTdG9yZU5hbWVJZCA9IHNlbGYuVHJhbnNOdW0oY3R4LlMu dGV4dCkNCj4gKyAgICAgICAgRGVmYXVsdElkID0gKA0KPiArICAgICAgICAgICAgRUZJX0hJSV9E RUZBVUxUX0NMQVNTX1NUQU5EQVJEIGlmIGN0eC5BdHRyaWJ1dGUoKSA9PSBOb25lIGVsc2UNCj4g c2VsZi5UcmFuc051bShjdHguQS50ZXh0KQ0KPiArICAgICAgICApDQo+ICsgICAgICAgIGlmIGN0 eC5BdHRyaWJ1dGUoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgRFNPYmouSGFzQXR0ciA9IFRy dWUNCj4gKw0KPiArICAgICAgICBpZiBnVmZyRGVmYXVsdFN0b3JlLkRlZmF1bHRJZFJlZ2lzdGVy ZWQoRGVmYXVsdElkKSA9PSBGYWxzZToNCj4gKyAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVy KA0KPiArICAgICAgICAgICAgICAgIGdWZnJEZWZhdWx0U3RvcmUuUmVnaXN0ZXJEZWZhdWx0U3Rv cmUoDQo+ICsgICAgICAgICAgICAgICAgICAgIERTT2JqLkRlZmF1bHRTdG9yZSwgUmVmTmFtZSwg RGVmYXVsdFN0b3JlTmFtZUlkLCBEZWZhdWx0SWQNCj4gKyAgICAgICAgICAgICAgICApLA0KPiAr ICAgICAgICAgICAgICAgIExpbmUsDQo+ICsgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICBE U09iai5TZXREZWZhdWx0TmFtZShEZWZhdWx0U3RvcmVOYW1lSWQpDQo+ICsgICAgICAgICAgICBE U09iai5TZXREZWZhdWx0SWQoRGVmYXVsdElkKQ0KPiArICAgICAgICAgICAgRFNPYmouU2V0TGlu ZU5vKExpbmUpDQo+ICsgICAgICAgICAgICBjdHguTm9kZS5EYXRhID0gRFNPYmoNCj4gKyAgICAg ICAgICAgIGN0eC5Ob2RlLkJ1ZmZlciA9IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFtKERTT2JqLkdl dEluZm8oKSkNCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIHBOb2RlLCBSZXR1cm5D b2RlID0gZ1ZmckRlZmF1bHRTdG9yZS5SZVJlZ2lzdGVyRGVmYXVsdFN0b3JlQnlJZCgNCj4gKyAg ICAgICAgICAgICAgICBEZWZhdWx0SWQsIFJlZk5hbWUsIERlZmF1bHRTdG9yZU5hbWVJZA0KPiAr ICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoUmV0dXJuQ29k ZSwgTGluZSkNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlLk9wQ29kZSA9IEVGSV9JRlJfU0hPV05f REVGQVVMVFNUT1JFX09QICAjIEZvcg0KPiBkaXNwbGF5IGluIFlBTUwNCj4gKyAgICAgICAgICAg IERTT2JqLlNldERlZmF1bHRJZChEZWZhdWx0SWQpDQo+ICsgICAgICAgICAgICBEU09iai5TZXRE ZWZhdWx0TmFtZShEZWZhdWx0U3RvcmVOYW1lSWQpDQo+ICsgICAgICAgICAgICBjdHguTm9kZS5E YXRhID0gRFNPYmoNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+ICsNCj4gKyAgICAjIFZp c2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieQ0KPiBWZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVt ZW50VmFyU3RvcmVMaW5lYXIuDQo+ICsgICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50VmFyU3RvcmVM aW5lYXIoDQo+ICsgICAgICAgIHNlbGYsIGN0eDogVmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVu dFZhclN0b3JlTGluZWFyQ29udGV4dA0KPiArICAgICk6DQo+ICsgICAgICAgIHNlbGYudmlzaXRD aGlsZHJlbihjdHgpDQo+ICsNCj4gKyAgICAgICAgVHlwZU5hbWUgPSBzdHIoY3R4LmdldENoaWxk KDEpKQ0KPiArICAgICAgICBpZiBUeXBlTmFtZSA9PSAiQ0hBUjE2IjoNCj4gKyAgICAgICAgICAg IFR5cGVOYW1lID0gIlVJTlQxNiINCj4gKw0KPiArICAgICAgICBJc0JpdFZhclN0b3JlID0gRmFs c2UNCj4gKyAgICAgICAgaWYgY3R4LlROICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBJc0JpdFZh clN0b3JlID0gZ1ZmclZhckRhdGFUeXBlREIuRGF0YVR5cGVIYXNCaXRGaWVsZChjdHguVE4udGV4 dCkNCj4gKw0KPiArICAgICAgICBWYXJTdG9yZUlkID0gRUZJX1ZBUlNUT1JFX0lEX0lOVkFMSUQN Cj4gKyAgICAgICAgaWYgY3R4LlZhcklkKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIFZhclN0 b3JlSWQgPSBzZWxmLlRyYW5zTnVtKGN0eC5JRC50ZXh0KQ0KPiArICAgICAgICAgICAgc2VsZi5D b21wYXJlRXJyb3JIYW5kbGVyKA0KPiArICAgICAgICAgICAgICAgIFZhclN0b3JlSWQgIT0gMCwg VHJ1ZSwgY3R4LklELmxpbmUsIGN0eC5JRC50ZXh0LCAidmFyaWQgMCBpcyBub3QgYWxsb3dlZC4i DQo+ICsgICAgICAgICAgICApDQo+ICsgICAgICAgIFN0b3JlTmFtZSA9IGN0eC5TTi50ZXh0DQo+ ICsgICAgICAgIFZTT2JqID0gSWZyVmFyU3RvcmUoVHlwZU5hbWUsIFN0b3JlTmFtZSkNCj4gKyAg ICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5lDQo+ICsgICAgICAgIFZTT2JqLlNldExpbmVObyhM aW5lKQ0KPiArICAgICAgICBWU09iai5TZXRIYXNWYXJTdG9yZUlkKGN0eC5WYXJJZCgpICE9IE5v bmUpDQo+ICsgICAgICAgIEd1aWQgPSBjdHguZ3VpZERlZmluaXRpb24oKS5HdWlkDQo+ICsgICAg ICAgIHNlbGYuRXJyb3JIYW5kbGVyKA0KPiArICAgICAgICAgICAgZ1ZmckRhdGFTdG9yYWdlLkRl Y2xhcmVCdWZmZXJWYXJTdG9yZSgNCj4gKyAgICAgICAgICAgICAgICBTdG9yZU5hbWUsIEd1aWQs IGdWZnJWYXJEYXRhVHlwZURCLCBUeXBlTmFtZSwgVmFyU3RvcmVJZCwNCj4gSXNCaXRWYXJTdG9y ZQ0KPiArICAgICAgICAgICAgKSwNCj4gKyAgICAgICAgICAgIExpbmUsDQo+ICsgICAgICAgICkN Cj4gKyAgICAgICAgVlNPYmouU2V0R3VpZChHdWlkKQ0KPiArICAgICAgICBWYXJTdG9yZUlkLCBS ZXR1cm5Db2RlID0gZ1ZmckRhdGFTdG9yYWdlLkdldFZhclN0b3JlSWQoU3RvcmVOYW1lLA0KPiBH dWlkKQ0KPiArICAgICAgICBzZWxmLkVycm9ySGFuZGxlcihSZXR1cm5Db2RlLCBjdHguU04ubGlu ZSwgY3R4LlNOLnRleHQpDQo+ICsgICAgICAgIFZTT2JqLlNldFZhclN0b3JlSWQoVmFyU3RvcmVJ ZCkNCj4gKyAgICAgICAgU2l6ZSwgUmV0dXJuQ29kZSA9DQo+IGdWZnJWYXJEYXRhVHlwZURCLkdl dERhdGFUeXBlU2l6ZUJ5VHlwZU5hbWUoVHlwZU5hbWUpDQo+ICsgICAgICAgIHNlbGYuRXJyb3JI YW5kbGVyKFJldHVybkNvZGUsIExpbmUpDQo+ICsgICAgICAgIFZTT2JqLlNldFNpemUoU2l6ZSkN Cj4gKyAgICAgICAgY3R4Lk5vZGUuRGF0YSA9IFZTT2JqDQo+ICsgICAgICAgIGN0eC5Ob2RlLkJ1 ZmZlciA9IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFtKFZTT2JqLkdldEluZm8oKSkNCj4gKyAgICAg ICAgY3R4Lk5vZGUuQnVmZmVyICs9IGJ5dGVzKCJcMCIsIGVuY29kaW5nPSJ1dGYtOCIpDQo+ICsN Cj4gKyAgICAgICAgcmV0dXJuIFZTT2JqDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJl ZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVtZW50VmFyU3RvcmVFZmkuDQo+ ICsgICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50VmFyU3RvcmVFZmkoc2VsZiwgY3R4Og0KPiBWZnJT eW50YXhQYXJzZXIuVmZyU3RhdGVtZW50VmFyU3RvcmVFZmlDb250ZXh0KToNCj4gKyAgICAgICAg c2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5l DQo+ICsNCj4gKyAgICAgICAgR3VpZCA9IGN0eC5ndWlkRGVmaW5pdGlvbigpLkd1aWQNCj4gKw0K PiArICAgICAgICBDdXN0b21pemVkTmFtZSA9IEZhbHNlDQo+ICsgICAgICAgIElzQml0VmFyU3Rv cmUgPSBGYWxzZQ0KPiArICAgICAgICBWYXJTdG9yZUlkID0gRUZJX1ZBUlNUT1JFX0lEX0lOVkFM SUQNCj4gKyAgICAgICAgSXNVRUZJMjNFZmlWYXJzdG9yZSA9IFRydWUNCj4gKyAgICAgICAgUmV0 dXJuQ29kZSA9IE5vbmUNCj4gKyAgICAgICAgTmFtZVN0cmluZ0lkID0gTm9uZQ0KPiArICAgICAg ICBWYXJTaXplID0gTm9uZQ0KPiArDQo+ICsgICAgICAgIFR5cGVOYW1lID0gc3RyKGN0eC5nZXRD aGlsZCgxKSkNCj4gKw0KPiArICAgICAgICBpZiBUeXBlTmFtZSA9PSAiQ0hBUjE2IjoNCj4gKyAg ICAgICAgICAgIFR5cGVOYW1lID0gIlVJTlQxNiINCj4gKw0KPiArICAgICAgICBlbGlmIGN0eC5U TiAhPSBOb25lOg0KPiArICAgICAgICAgICAgQ3VzdG9taXplZE5hbWUgPSBUcnVlDQo+ICsgICAg ICAgICAgICBJc0JpdFZhclN0b3JlID0gZ1ZmclZhckRhdGFUeXBlREIuRGF0YVR5cGVIYXNCaXRG aWVsZChUeXBlTmFtZSkNCj4gKw0KPiArICAgICAgICBpZiBjdHguVmFySWQoKSAhPSBOb25lOg0K PiArICAgICAgICAgICAgVmFyU3RvcmVJZCA9IHNlbGYuVHJhbnNOdW0oY3R4LklELnRleHQpDQo+ ICsgICAgICAgICAgICBzZWxmLkNvbXBhcmVFcnJvckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAg ICAgVmFyU3RvcmVJZCAhPSAwLCBUcnVlLCBjdHguSUQubGluZSwgY3R4LklELnRleHQsICJ2YXJp ZCAwIGlzIG5vdCBhbGxvd2VkLiINCj4gKyAgICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICBB dHRyaWJ1dGVzID0gMA0KPiArICAgICAgICBBdHRyaWJ1dGVzVGV4dCA9ICIiDQo+ICsgICAgICAg IGZvciBpIGluIHJhbmdlKDAsIGxlbihjdHgudmZyVmFyU3RvcmVFZmlBdHRyKCkpKToNCj4gKyAg ICAgICAgICAgIEF0dHJpYnV0ZXMgfD0gY3R4LnZmclZhclN0b3JlRWZpQXR0cihpKS5BdHRyDQo+ ICsNCj4gKyAgICAgICAgICAgIGlmIGkgIT0gbGVuKGN0eC52ZnJWYXJTdG9yZUVmaUF0dHIoKSkg LSAxOg0KPiArICAgICAgICAgICAgICAgIEF0dHJpYnV0ZXNUZXh0ICs9IGYie2N0eC52ZnJWYXJT dG9yZUVmaUF0dHIoaSkuQXR0cjojMDEweH0gfCAiDQo+ICsgICAgICAgICAgICBlbHNlOg0KPiAr ICAgICAgICAgICAgICAgIEF0dHJpYnV0ZXNUZXh0ICs9IGYie2N0eC52ZnJWYXJTdG9yZUVmaUF0 dHIoaSkuQXR0cjojMDEweH0iDQo+ICsNCj4gKyAgICAgICAgaWYgY3R4LlNOICE9IE5vbmU6DQo+ ICsgICAgICAgICAgICBTdG9yZU5hbWUgPSBjdHguU04udGV4dA0KPiArICAgICAgICBlbHNlOg0K PiArICAgICAgICAgICAgSXNVRUZJMjNFZmlWYXJzdG9yZSA9IEZhbHNlDQo+ICsgICAgICAgICAg ICBOYW1lU3RyaW5nSWQgPSBzZWxmLlRyYW5zTnVtKGN0eC5WTi50ZXh0KQ0KPiArICAgICAgICAg ICAgU3RvcmVOYW1lID0NCj4gZ1ZmclN0cmluZ0RCLkdldFZhclN0b3JlTmFtZUZyb21TdHJpbmdJ ZChOYW1lU3RyaW5nSWQpICAjDQo+ICsgICAgICAgICAgICBpZiBTdG9yZU5hbWUgPT0gTm9uZToN Cj4gKyAgICAgICAgICAgICAgICBnVmZyRXJyb3JIYW5kbGUuSGFuZGxlV2FybmluZygNCj4gKyAg ICAgICAgICAgICAgICAgICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1VOU1VQUE9SVEVELA0K PiArICAgICAgICAgICAgICAgICAgICBjdHguVk4ubGluZSwNCj4gKyAgICAgICAgICAgICAgICAg ICAgIkNhbid0IGdldCB2YXJzdG9yZSBuYW1lIGZvciB0aGlzIFN0cmluZ0lkISIsDQo+ICsgICAg ICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgaWYgbm90IChDdXN0b21pemVkTmFtZSk6DQo+ ICsgICAgICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAgICAg ICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9VTlNVUFBPUlRFRCwNCj4gKyAgICAgICAgICAg ICAgICAgICAgTGluZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgIk9sZCBzdHlsZSBlZml2YXJz dG9yZSBtdXN0IGhhdmUgU3RyaW5nIElkZW50aWZpZXIhIiwNCj4gKyAgICAgICAgICAgICAgICAp DQo+ICsgICAgICAgICAgICBTaXplID0gc2VsZi5UcmFuc051bShjdHguTi50ZXh0KQ0KPiArICAg ICAgICAgICAgaWYgU2l6ZSA9PSAxOg0KPiArICAgICAgICAgICAgICAgIFR5cGVOYW1lID0gIlVJ TlQ4Ig0KPiArICAgICAgICAgICAgZWxpZiBTaXplID09IDI6DQo+ICsgICAgICAgICAgICAgICAg VHlwZU5hbWUgPSAiVUlOVDE2Ig0KPiArICAgICAgICAgICAgZWxpZiBTaXplID09IDQ6DQo+ICsg ICAgICAgICAgICAgICAgVHlwZU5hbWUgPSAiVUlOVDMyIg0KPiArICAgICAgICAgICAgZWxpZiBT aXplID09IDg6DQo+ICsgICAgICAgICAgICAgICAgVHlwZU5hbWUgPSAiVUlOVDY0Ig0KPiArICAg ICAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcihWZnJS ZXR1cm5Db2RlLlZGUl9SRVRVUk5fVU5TVVBQT1JURUQsDQo+IGN0eC5OLmxpbmUsIGN0eC5OLnRl eHQpDQo+ICsNCj4gKyAgICAgICAgaWYgSXNVRUZJMjNFZmlWYXJzdG9yZToNCj4gKyAgICAgICAg ICAgIHNlbGYuRXJyb3JIYW5kbGVyKA0KPiArICAgICAgICAgICAgICAgIGdWZnJEYXRhU3RvcmFn ZS5EZWNsYXJlQnVmZmVyVmFyU3RvcmUoDQo+ICsgICAgICAgICAgICAgICAgICAgIFN0b3JlTmFt ZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgR3VpZCwNCj4gKyAgICAgICAgICAgICAgICAgICAg Z1ZmclZhckRhdGFUeXBlREIsDQo+ICsgICAgICAgICAgICAgICAgICAgIFR5cGVOYW1lLA0KPiAr ICAgICAgICAgICAgICAgICAgICBWYXJTdG9yZUlkLA0KPiArICAgICAgICAgICAgICAgICAgICBJ c0JpdFZhclN0b3JlLA0KPiArICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVzLA0KPiArICAg ICAgICAgICAgICAgICksDQo+ICsgICAgICAgICAgICAgICAgTGluZSwNCj4gKyAgICAgICAgICAg ICkNCj4gKyAgICAgICAgICAgIFZhclN0b3JlSWQsIFJldHVybkNvZGUgPSBnVmZyRGF0YVN0b3Jh Z2UuR2V0VmFyU3RvcmVJZChTdG9yZU5hbWUsDQo+IEd1aWQpDQo+ICsgICAgICAgICAgICBzZWxm LkVycm9ySGFuZGxlcihSZXR1cm5Db2RlLCBjdHguU04ubGluZSwgY3R4LlNOLnRleHQpDQo+ICsg ICAgICAgICAgICBTaXplLCBSZXR1cm5Db2RlID0NCj4gZ1ZmclZhckRhdGFUeXBlREIuR2V0RGF0 YVR5cGVTaXplQnlUeXBlTmFtZShUeXBlTmFtZSkNCj4gKyAgICAgICAgICAgIHNlbGYuRXJyb3JI YW5kbGVyKFJldHVybkNvZGUsIExpbmUpDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAg ICBzZWxmLkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAgICBnVmZyRGF0YVN0b3JhZ2Uu RGVjbGFyZUJ1ZmZlclZhclN0b3JlKA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLkdldFRl eHQoY3R4LlROKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgR3VpZCwNCj4gKyAgICAgICAgICAg ICAgICAgICAgZ1ZmclZhckRhdGFUeXBlREIsDQo+ICsgICAgICAgICAgICAgICAgICAgIFR5cGVO YW1lLA0KPiArICAgICAgICAgICAgICAgICAgICBWYXJTdG9yZUlkLA0KPiArICAgICAgICAgICAg ICAgICAgICBJc0JpdFZhclN0b3JlLA0KPiArICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVz LA0KPiArICAgICAgICAgICAgICAgICksDQo+ICsgICAgICAgICAgICAgICAgTGluZSwNCj4gKyAg ICAgICAgICAgICkgICMNCj4gKyAgICAgICAgICAgIFZhclN0b3JlSWQsIFJldHVybkNvZGUgPQ0K PiBnVmZyRGF0YVN0b3JhZ2UuR2V0VmFyU3RvcmVJZChzZWxmLkdldFRleHQoY3R4LlROKSwgR3Vp ZCkNCj4gKyAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKFJldHVybkNvZGUsIGN0eC5WTi5s aW5lLCBjdHguVk4udGV4dCkNCj4gKyAgICAgICAgICAgIFNpemUsIFJldHVybkNvZGUgPQ0KPiBn VmZyVmFyRGF0YVR5cGVEQi5HZXREYXRhVHlwZVNpemVCeVR5cGVOYW1lKFR5cGVOYW1lKQ0KPiAr ICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwgY3R4Lk4ubGluZSkNCj4g Kw0KPiArICAgICAgICBWU0VPYmogPSBJZnJWYXJTdG9yZUVmaShUeXBlTmFtZSwgU3RvcmVOYW1l KQ0KPiArICAgICAgICBWU0VPYmouU2V0TGluZU5vKExpbmUpDQo+ICsgICAgICAgIFZTRU9iai5T ZXRIYXNWYXJTdG9yZUlkKGN0eC5WYXJJZCgpICE9IE5vbmUpDQo+ICsgICAgICAgIFZTRU9iai5T ZXRHdWlkKEd1aWQpDQo+ICsgICAgICAgIFZTRU9iai5TZXRWYXJTdG9yZUlkKFZhclN0b3JlSWQp DQo+ICsgICAgICAgIFZTRU9iai5TZXRTaXplKFNpemUpDQo+ICsgICAgICAgIFZTRU9iai5TZXRB dHRyaWJ1dGVzKEF0dHJpYnV0ZXMpDQo+ICsgICAgICAgIFZTRU9iai5TZXRBdHRyaWJ1dGVzVGV4 dChBdHRyaWJ1dGVzVGV4dCkNCj4gKyAgICAgICAgVlNFT2JqLlNldE5hbWVTdHJpbmdJZChOYW1l U3RyaW5nSWQpDQo+ICsgICAgICAgIFZTRU9iai5TZXRWYXJTaXplKFZhclNpemUpDQo+ICsNCj4g KyAgICAgICAgY3R4Lk5vZGUuRGF0YSA9IFZTRU9iag0KPiArICAgICAgICBjdHguTm9kZS5CdWZm ZXIgPSBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShWU0VPYmouR2V0SW5mbygpKQ0KPiArICAgICAg ICBjdHguTm9kZS5CdWZmZXIgKz0gYnl0ZXMoIlwwIiwgZW5jb2Rpbmc9InV0Zi04IikNCj4gKw0K PiArICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0 cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJWYXJTdG9yZUVmaUF0dHIuDQo+ICsg ICAgZGVmIHZpc2l0VmZyVmFyU3RvcmVFZmlBdHRyKHNlbGYsIGN0eDoNCj4gVmZyU3ludGF4UGFy c2VyLlZmclZhclN0b3JlRWZpQXR0ckNvbnRleHQpOg0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hp bGRyZW4oY3R4KQ0KPiArICAgICAgICBjdHguQXR0ciA9IHNlbGYuVHJhbnNOdW0oY3R4Lk51bWJl cigpKQ0KPiArICAgICAgICByZXR1cm4gY3R4LkF0dHINCj4gKw0KPiArICAgICMgVmlzaXQgYSBw YXJzZSB0cmVlIHByb2R1Y2VkIGJ5DQo+IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRWYXJT dG9yZU5hbWVWYWx1ZS4NCj4gKyAgICBkZWYgdmlzaXRWZnJTdGF0ZW1lbnRWYXJTdG9yZU5hbWVW YWx1ZSgNCj4gKyAgICAgICAgc2VsZiwgY3R4OiBWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50 VmFyU3RvcmVOYW1lVmFsdWVDb250ZXh0DQo+ICsgICAgKToNCj4gKyAgICAgICAgU3RvcmVOYW1l ID0gY3R4LlNOLnRleHQNCj4gKyAgICAgICAgVlNOVk9iaiA9IElmclZhclN0b3JlTmFtZVZhbHVl KFN0b3JlTmFtZSkNCj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKw0KPiAr ICAgICAgICBHdWlkID0gY3R4Lmd1aWREZWZpbml0aW9uKCkuR3VpZA0KPiArICAgICAgICBIYXNW YXJTdG9yZUlkID0gRmFsc2UNCj4gKyAgICAgICAgVmFyU3RvcmVJZCA9IEVGSV9WQVJTVE9SRV9J RF9JTlZBTElEDQo+ICsNCj4gKyAgICAgICAgaWYgY3R4LlZhcklkKCkgIT0gTm9uZToNCj4gKyAg ICAgICAgICAgIEhhc1ZhclN0b3JlSWQgPSBUcnVlDQo+ICsgICAgICAgICAgICBWYXJTdG9yZUlk ID0gc2VsZi5UcmFuc051bShjdHguSUQudGV4dCkNCj4gKyAgICAgICAgICAgIHNlbGYuQ29tcGFy ZUVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAgICBWYXJTdG9yZUlkICE9IDAsIFRydWUs IGN0eC5JRC5saW5lLCBjdHguSUQudGV4dCwgInZhcmlkIDAgaXMgbm90IGFsbG93ZWQiDQo+ICsg ICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgQ3JlYXRlZCA9IEZhbHNlDQo+ICsNCj4gKyAg ICAgICAgc0luZGV4ID0gMCBpZiBIYXNWYXJTdG9yZUlkID09IEZhbHNlIGVsc2UgMQ0KPiArICAg ICAgICBlSW5kZXggPSBzSW5kZXggKyBsZW4oY3R4Lk5hbWUoKSkNCj4gKyAgICAgICAgZm9yIGkg aW4gcmFuZ2Uoc0luZGV4LCBlSW5kZXgpOg0KPiArICAgICAgICAgICAgaWYgQ3JlYXRlZCA9PSBG YWxzZToNCj4gKyAgICAgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAg ICAgICAgICAgICAgZ1ZmckRhdGFTdG9yYWdlLkRlY2xhcmVOYW1lVmFyU3RvcmVCZWdpbihTdG9y ZU5hbWUsDQo+IFZhclN0b3JlSWQpLA0KPiArICAgICAgICAgICAgICAgICAgICBjdHguU04ubGlu ZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgY3R4LlNOLnRleHQsDQo+ICsgICAgICAgICAgICAg ICAgKQ0KPiArICAgICAgICAgICAgICAgIENyZWF0ZWQgPSBUcnVlDQo+ICsgICAgICAgICAgICBJ dGVtID0gc2VsZi5UcmFuc051bShjdHguTnVtYmVyKGkpKQ0KPiArICAgICAgICAgICAgVlNOVk9i ai5TZXROYW1lSXRlbUxpc3QoSXRlbSkNCj4gKyAgICAgICAgICAgIGdWZnJEYXRhU3RvcmFnZS5O YW1lVGFibGVBZGRJdGVtKEl0ZW0pDQo+ICsNCj4gKyAgICAgICAgZ1ZmckRhdGFTdG9yYWdlLkRl Y2xhcmVOYW1lVmFyU3RvcmVFbmQoR3VpZCkNCj4gKw0KPiArICAgICAgICBWU05WT2JqLlNldExp bmVObyhjdHguc3RhcnQubGluZSkNCj4gKyAgICAgICAgVlNOVk9iai5TZXRHdWlkKEd1aWQpDQo+ ICsgICAgICAgIFZhcnN0b3JlSWQsIFJldHVybkNvZGUgPSBnVmZyRGF0YVN0b3JhZ2UuR2V0VmFy U3RvcmVJZChTdG9yZU5hbWUsDQo+IEd1aWQpDQo+ICsgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVy KFJldHVybkNvZGUsIGN0eC5TTi5saW5lLCBjdHguU04udGV4dCkNCj4gKyAgICAgICAgVlNOVk9i ai5TZXRWYXJTdG9yZUlkKFZhcnN0b3JlSWQpDQo+ICsgICAgICAgIFZTTlZPYmouU2V0SGFzVmFy U3RvcmVJZChIYXNWYXJTdG9yZUlkKQ0KPiArDQo+ICsgICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBW U05WT2JqDQo+ICsgICAgICAgIGN0eC5Ob2RlLkJ1ZmZlciA9IGdGb3JtUGtnLlN0cnVjdFRvU3Ry ZWFtKFZTTlZPYmouR2V0SW5mbygpKQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0K PiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3ludGF4 UGFyc2VyI3ZmclN0YXRlbWVudERpc2FibGVJZkZvcm1TZXQuDQo+ICsgICAgZGVmIHZpc2l0VmZy U3RhdGVtZW50RGlzYWJsZUlmRm9ybVNldCgNCj4gKyAgICAgICAgc2VsZiwgY3R4OiBWZnJTeW50 YXhQYXJzZXIuVmZyU3RhdGVtZW50RGlzYWJsZUlmRm9ybVNldENvbnRleHQNCj4gKyAgICApOg0K PiArICAgICAgICBESU9iaiA9IElmckRpc2FibGVJZigpDQo+ICsgICAgICAgIERJT2JqLlNldExp bmVObyhjdHguc3RhcnQubGluZSkNCj4gKyAgICAgICAgc2VsZi5Db25zdGFudE9ubHlJbkV4cHJl c3Npb24gPSBUcnVlDQo+ICsgICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBESU9iag0KPiArICAgICAg ICBjdHguTm9kZS5Db25kaXRpb24gPSAoDQo+ICsgICAgICAgICAgICAiZGlzYWJsZWlmIiArICIg IiArDQo+IHNlbGYuRXh0cmFjdE9yaWdpbmFsVGV4dChjdHgudmZyU3RhdGVtZW50RXhwcmVzc2lv bigpKQ0KPiArICAgICAgICApDQo+ICsgICAgICAgIGN0eC5Ob2RlLkV4cHJlc3Npb24gPQ0KPiBz ZWxmLkV4dHJhY3RPcmlnaW5hbFRleHQoY3R4LnZmclN0YXRlbWVudEV4cHJlc3Npb24oKSkNCj4g KyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgc2VsZi5JbnNlcnRF bmROb2RlKGN0eC5Ob2RlLCBjdHguc3RvcC5saW5lKQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBj dHguTm9kZQ0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4g VmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudFN1cHByZXNzSWZGb3JtU2V0Lg0KPiArICAgIGRl ZiB2aXNpdFZmclN0YXRlbWVudFN1cHByZXNzSWZGb3JtU2V0KA0KPiArICAgICAgICBzZWxmLCBj dHg6IFZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRTdXBwcmVzc0lmRm9ybVNldENvbnRleHQN Cj4gKyAgICApOg0KPiArICAgICAgICBTSU9iaiA9IElmclN1cHByZXNzSWYoKQ0KPiArICAgICAg ICBTSU9iai5TZXRMaW5lTm8oY3R4LnN0YXJ0LmxpbmUpDQo+ICsgICAgICAgIGN0eC5Ob2RlLkRh dGEgPSBTSU9iag0KPiArICAgICAgICBjdHguTm9kZS5Db25kaXRpb24gPSAoDQo+ICsgICAgICAg ICAgICAic3VwcHJlc3NpZiIgKyAiICIgKw0KPiBzZWxmLkV4dHJhY3RPcmlnaW5hbFRleHQoY3R4 LnZmclN0YXRlbWVudEV4cHJlc3Npb24oKSkNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICBjdHgu Tm9kZS5FeHByZXNzaW9uID0NCj4gc2VsZi5FeHRyYWN0T3JpZ2luYWxUZXh0KGN0eC52ZnJTdGF0 ZW1lbnRFeHByZXNzaW9uKCkpDQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ ICsgICAgICAgIHNlbGYuSW5zZXJ0RW5kTm9kZShjdHguTm9kZSwgY3R4LnN0b3AubGluZSkNCj4g KyAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJl ZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjZ3VpZFN1YkRlZmluaXRpb24uDQo+ICsgICAg ZGVmIHZpc2l0R3VpZFN1YkRlZmluaXRpb24oc2VsZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIu R3VpZFN1YkRlZmluaXRpb25Db250ZXh0KToNCj4gKyAgICAgICAgY3R4Lkd1aWQuRGF0YTRbMF0g PSBzZWxmLlRyYW5zTnVtKGN0eC5OdW1iZXIoMCkpDQo+ICsgICAgICAgIGN0eC5HdWlkLkRhdGE0 WzFdID0gc2VsZi5UcmFuc051bShjdHguTnVtYmVyKDEpKQ0KPiArICAgICAgICBjdHguR3VpZC5E YXRhNFsyXSA9IHNlbGYuVHJhbnNOdW0oY3R4Lk51bWJlcigyKSkNCj4gKyAgICAgICAgY3R4Lkd1 aWQuRGF0YTRbM10gPSBzZWxmLlRyYW5zTnVtKGN0eC5OdW1iZXIoMykpDQo+ICsgICAgICAgIGN0 eC5HdWlkLkRhdGE0WzRdID0gc2VsZi5UcmFuc051bShjdHguTnVtYmVyKDQpKQ0KPiArICAgICAg ICBjdHguR3VpZC5EYXRhNFs1XSA9IHNlbGYuVHJhbnNOdW0oY3R4Lk51bWJlcig1KSkNCj4gKyAg ICAgICAgY3R4Lkd1aWQuRGF0YTRbNl0gPSBzZWxmLlRyYW5zTnVtKGN0eC5OdW1iZXIoNikpDQo+ ICsgICAgICAgIGN0eC5HdWlkLkRhdGE0WzddID0gc2VsZi5UcmFuc051bShjdHguTnVtYmVyKDcp KQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI2d1 aWREZWZpbml0aW9uLg0KPiArICAgIGRlZiB2aXNpdEd1aWREZWZpbml0aW9uKHNlbGYsIGN0eDog VmZyU3ludGF4UGFyc2VyLkd1aWREZWZpbml0aW9uQ29udGV4dCk6DQo+ICsgICAgICAgIHNlbGYu dmlzaXRDaGlsZHJlbihjdHgpDQo+ICsNCj4gKyAgICAgICAgY3R4Lkd1aWQuRGF0YTEgPSBzZWxm LlRyYW5zTnVtKGN0eC5OdW1iZXIoMCkpDQo+ICsgICAgICAgIGN0eC5HdWlkLkRhdGEyID0gc2Vs Zi5UcmFuc051bShjdHguTnVtYmVyKDEpKQ0KPiArICAgICAgICBjdHguR3VpZC5EYXRhMyA9IHNl bGYuVHJhbnNOdW0oY3R4Lk51bWJlcigyKSkNCj4gKw0KPiArICAgICAgICByZXR1cm4gTm9uZQ0K PiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFy c2VyI2dldFN0cmluZ0lkLg0KPiArICAgIGRlZiB2aXNpdEdldFN0cmluZ0lkKHNlbGYsIGN0eDog VmZyU3ludGF4UGFyc2VyLkdldFN0cmluZ0lkQ29udGV4dCk6DQo+ICsgICAgICAgIGN0eC5TdHJp bmdJZCA9IHNlbGYuVHJhbnNOdW0oY3R4Lk51bWJlcigpKQ0KPiArDQo+ICsgICAgICAgIHJldHVy biBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRy ZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudEhlYWRlci4NCj4gKyAg ICBkZWYgdmlzaXRWZnJTdGF0ZW1lbnRIZWFkZXIoc2VsZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJz ZXIuVmZyU3RhdGVtZW50SGVhZGVyQ29udGV4dCk6DQo+ICsgICAgICAgIGlmIGN0eC5Ob2RlLkRh dGEgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIFByb21wdCA9IHNlbGYuVHJhbnNOdW0oY3R4Lk51 bWJlcigwKSkNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlLkRhdGEuU2V0UHJvbXB0KFByb21wdCkN Cj4gKyAgICAgICAgICAgIEhlbHAgPSBzZWxmLlRyYW5zTnVtKGN0eC5OdW1iZXIoMSkpDQo+ICsg ICAgICAgICAgICBjdHguTm9kZS5EYXRhLlNldEhlbHAoSGVscCkNCj4gKw0KPiArICAgICAgICBy ZXR1cm4gc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJz ZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJRdWVzdGlvbkhlYWRlci4NCj4g KyAgICBkZWYgdmlzaXRWZnJRdWVzdGlvbkhlYWRlcihzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBh cnNlci5WZnJRdWVzdGlvbkhlYWRlckNvbnRleHQpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi52 aXNpdENoaWxkcmVuKGN0eCkNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1 Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJRdWVzdGlvbkJhc2VJbmZvLg0KPiArICAgIGRlZiB2 aXNpdFZmclF1ZXN0aW9uQmFzZUluZm8oc2VsZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIuVmZy UXVlc3Rpb25CYXNlSW5mb0NvbnRleHQpOg0KPiArICAgICAgICBjdHguQmFzZUluZm8uVmFyVHlw ZSA9IEVGSV9JRlJfVFlQRV9PVEhFUg0KPiArICAgICAgICBjdHguQmFzZUluZm8uVmFyVG90YWxT aXplID0gMA0KPiArICAgICAgICBjdHguQmFzZUluZm8uSW5mby5WYXJPZmZzZXQgPSBFRklfVkFS T0ZGU0VUX0lOVkFMSUQNCj4gKyAgICAgICAgY3R4LkJhc2VJbmZvLlZhclN0b3JlSWQgPSBFRklf VkFSU1RPUkVfSURfSU5WQUxJRA0KPiArICAgICAgICBjdHguQmFzZUluZm8uSXNCaXRWYXIgPSBG YWxzZQ0KPiArDQo+ICsgICAgICAgIFFOYW1lID0gTm9uZQ0KPiArICAgICAgICBRSWQgPSBFRklf UVVFU1RJT05fSURfSU5WQUxJRA0KPiArICAgICAgICBSZXR1cm5Db2RlID0gTm9uZQ0KPiArICAg ICAgICBzZWxmLlVzZWREZWZhdWx0QXJyYXkgPSBbXQ0KPiArDQo+ICsgICAgICAgIHNlbGYudmlz aXRDaGlsZHJlbihjdHgpDQo+ICsNCj4gKyAgICAgICAgaWYgY3R4Lk5hbWUoKSAhPSBOb25lOg0K PiArICAgICAgICAgICAgUU5hbWUgPSBjdHguUU4udGV4dA0KPiArICAgICAgICAgICAgUmV0dXJu Q29kZSA9IHNlbGYuVmZyUXVlc3Rpb25EQi5GaW5kUXVlc3Rpb25CeU5hbWUoUU5hbWUpDQo+ICsg ICAgICAgICAgICBzZWxmLkNvbXBhcmVFcnJvckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAgICAg UmV0dXJuQ29kZSwNCj4gKyAgICAgICAgICAgICAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5f VU5ERUZJTkVELA0KPiArICAgICAgICAgICAgICAgIGN0eC5RTi5saW5lLA0KPiArICAgICAgICAg ICAgICAgIGN0eC5RTi50ZXh0LA0KPiArICAgICAgICAgICAgICAgICJoYXMgYWxyZWFkeSBiZWVu IHVzZWQgcGxlYXNlIHVzZWQgYW50aGVyIG5hbWUiLA0KPiArICAgICAgICAgICAgKQ0KPiArDQo+ ICsgICAgICAgIFZhcklkU3RyID0gIiIgaWYgY3R4LlZhcklkKCkgPT0gTm9uZSBlbHNlIGN0eC52 ZnJTdG9yYWdlVmFySWQoKS5WYXJJZFN0cg0KPiArICAgICAgICBpZiBjdHguUXVlc3Rpb25JZCgp ICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBRSWQgPSBzZWxmLlRyYW5zTnVtKGN0eC5JRC50ZXh0 KQ0KPiArICAgICAgICAgICAgUmV0dXJuQ29kZSA9IHNlbGYuVmZyUXVlc3Rpb25EQi5GaW5kUXVl c3Rpb25CeUlkKFFJZCkNCj4gKyAgICAgICAgICAgIHNlbGYuQ29tcGFyZUVycm9ySGFuZGxlcigN Cj4gKyAgICAgICAgICAgICAgICBSZXR1cm5Db2RlLA0KPiArICAgICAgICAgICAgICAgIFZmclJl dHVybkNvZGUuVkZSX1JFVFVSTl9VTkRFRklORUQsDQo+ICsgICAgICAgICAgICAgICAgY3R4LklE LmxpbmUsDQo+ICsgICAgICAgICAgICAgICAgY3R4LklELnRleHQsDQo+ICsgICAgICAgICAgICAg ICAgImhhcyBhbHJlYWR5IGJlZW4gdXNlZCBwbGVhc2UgdXNlZCBhbnRoZXIgbnVtYmVyIiwNCj4g KyAgICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICBpZiBjdHguUVR5cGUgPT0gRUZJX1FVRVNJ T05fVFlQRS5RVUVTVElPTl9OT1JNQUw6DQo+ICsgICAgICAgICAgICBpZiBzZWxmLklzQ2hlY2tC b3hPcDoNCj4gKyAgICAgICAgICAgICAgICBjdHguQmFzZUluZm8uVmFyVHlwZSA9IEVGSV9JRlJf VFlQRV9CT09MRUFODQo+ICsgICAgICAgICAgICBRSWQsIFJldHVybkNvZGUgPSBzZWxmLlZmclF1 ZXN0aW9uREIuUmVnaXN0ZXJRdWVzdGlvbihRTmFtZSwNCj4gVmFySWRTdHIsIFFJZCwgZ0Zvcm1Q a2cpDQo+ICsgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcihSZXR1cm5Db2RlLCBjdHguc3Rh cnQubGluZSkNCj4gKw0KPiArICAgICAgICBlbGlmIGN0eC5RVHlwZSA9PSBFRklfUVVFU0lPTl9U WVBFLlFVRVNUSU9OX0RBVEU6DQo+ICsgICAgICAgICAgICBjdHguQmFzZUluZm8uVmFyVHlwZSA9 IEVGSV9JRlJfVFlQRV9EQVRFDQo+ICsgICAgICAgICAgICBRSWQsIFJldHVybkNvZGUgPSBzZWxm LlZmclF1ZXN0aW9uREIuUmVnaXN0ZXJOZXdEYXRlUXVlc3Rpb24oDQo+ICsgICAgICAgICAgICAg ICAgUU5hbWUsIFZhcklkU3RyLCBRSWQsIGdGb3JtUGtnDQo+ICsgICAgICAgICAgICApDQo+ICsg ICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcihSZXR1cm5Db2RlLCBjdHguc3RhcnQubGluZSkN Cj4gKw0KPiArICAgICAgICBlbGlmIGN0eC5RVHlwZSA9PSBFRklfUVVFU0lPTl9UWVBFLlFVRVNU SU9OX1RJTUU6DQo+ICsgICAgICAgICAgICBjdHguQmFzZUluZm8uVmFyVHlwZSA9IEVGSV9JRlJf VFlQRV9USU1FDQo+ICsgICAgICAgICAgICBRSWQsIFJldHVybkNvZGUgPSBzZWxmLlZmclF1ZXN0 aW9uREIuUmVnaXN0ZXJOZXdUaW1lUXVlc3Rpb24oDQo+ICsgICAgICAgICAgICAgICAgUU5hbWUs IFZhcklkU3RyLCBRSWQsIGdGb3JtUGtnDQo+ICsgICAgICAgICAgICApDQo+ICsgICAgICAgICAg ICBzZWxmLkVycm9ySGFuZGxlcihSZXR1cm5Db2RlLCBjdHguc3RhcnQubGluZSkNCj4gKw0KPiAr ICAgICAgICBlbGlmIGN0eC5RVHlwZSA9PSBFRklfUVVFU0lPTl9UWVBFLlFVRVNUSU9OX1JFRjoN Cj4gKyAgICAgICAgICAgIGN0eC5CYXNlSW5mby5WYXJUeXBlID0gRUZJX0lGUl9UWVBFX1JFRg0K PiArICAgICAgICAgICAgaWYgVmFySWRTdHIgIT0gIiI6ICAjIHN0YW5kIGZvciBxdWVzdGlvbiB3 aXRoIHN0b3JhZ2UuDQo+ICsgICAgICAgICAgICAgICAgUUlkLCBSZXR1cm5Db2RlID0gc2VsZi5W ZnJRdWVzdGlvbkRCLlJlZ2lzdGVyUmVmUXVlc3Rpb24oDQo+ICsgICAgICAgICAgICAgICAgICAg IFFOYW1lLCBWYXJJZFN0ciwgUUlkLCBnRm9ybVBrZw0KPiArICAgICAgICAgICAgICAgICkNCj4g KyAgICAgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcihSZXR1cm5Db2RlLCBjdHguc3RhcnQu bGluZSkNCj4gKyAgICAgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICAgICAgUUlkLCBSZXR1 cm5Db2RlID0gc2VsZi5WZnJRdWVzdGlvbkRCLlJlZ2lzdGVyUXVlc3Rpb24oUU5hbWUsDQo+IE5v bmUsIFFJZCwgZ0Zvcm1Qa2cpDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIo UmV0dXJuQ29kZSwgY3R4LnN0YXJ0LmxpbmUpDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAg ICAgICBzZWxmLkVycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fRkFUQUxfRVJS T1IsDQo+IGN0eC5zdGFydC5saW5lKQ0KPiArDQo+ICsgICAgICAgIHNlbGYuQ3VyclFlc3RWYXJJ bmZvID0gY3R4LkJhc2VJbmZvDQo+ICsNCj4gKyAgICAgICAgaWYgY3R4Lk5vZGUuT3BDb2RlID09 IEVGSV9JRlJfT05FX09GX09QOg0KPiArICAgICAgICAgICAgIyBuZWVkIHRvIGZ1cnRoZXIgdXBk YXRlIHRoZSBWYXJUeXBlDQo+ICsgICAgICAgICAgICBjdHguTm9kZS5EYXRhID0gSWZyT25lT2Yo RUZJX0lGUl9UWVBFX05VTV9TSVpFXzY0LCBRTmFtZSwNCj4gVmFySWRTdHIpDQo+ICsgICAgICAg ICAgICBzZWxmLkN1cnJlbnRRdWVzdGlvbiA9IGN0eC5Ob2RlLkRhdGENCj4gKyAgICAgICAgICAg IHNlbGYuQ3VycmVudE1pbk1heERhdGEgPSBjdHguTm9kZS5EYXRhDQo+ICsNCj4gKyAgICAgICAg ZWxpZiBjdHguTm9kZS5PcENvZGUgPT0gRUZJX0lGUl9OVU1FUklDX09QOg0KPiArICAgICAgICAg ICAgY3R4Lk5vZGUuRGF0YSA9IElmck51bWVyaWMoRUZJX0lGUl9UWVBFX05VTV9TSVpFXzY0LCBR TmFtZSwNCj4gVmFySWRTdHIpDQo+ICsgICAgICAgICAgICBzZWxmLkN1cnJlbnRRdWVzdGlvbiA9 IGN0eC5Ob2RlLkRhdGENCj4gKyAgICAgICAgICAgIHNlbGYuQ3VycmVudE1pbk1heERhdGEgPSBj dHguTm9kZS5EYXRhDQo+ICsNCj4gKyAgICAgICAgaWYgY3R4Lk5vZGUuRGF0YSAhPSBOb25lOg0K PiArICAgICAgICAgICAgY3R4Lk5vZGUuRGF0YS5TZXRRTmFtZShRTmFtZSkNCj4gKyAgICAgICAg ICAgIGN0eC5Ob2RlLkRhdGEuU2V0VmFySWRTdHIoVmFySWRTdHIpDQo+ICsgICAgICAgICAgICBj dHguTm9kZS5EYXRhLlNldFF1ZXN0aW9uSWQoUUlkKQ0KPiArICAgICAgICAgICAgY3R4Lk5vZGUu RGF0YS5TZXRIYXNRdWVzdGlvbklkKGN0eC5RdWVzdGlvbklkKCkgIT0gTm9uZSkNCj4gKyAgICAg ICAgICAgIGlmIGN0eC5CYXNlSW5mby5WYXJTdG9yZUlkICE9IEVGSV9WQVJTVE9SRV9JRF9JTlZB TElEOg0KPiArICAgICAgICAgICAgICAgIGN0eC5Ob2RlLkRhdGEuU2V0VmFyU3RvcmVJbmZvKGN0 eC5CYXNlSW5mbykNCj4gKw0KPiArICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gKw0KPiArICAg ICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5DQo+IFZmclN5bnRheFBhcnNlciNxdWVz dGlvbmhlYWRlckZsYWdzRmllbGQuDQo+ICsgICAgZGVmIHZpc2l0UXVlc3Rpb25oZWFkZXJGbGFn c0ZpZWxkKHNlbGYsIGN0eDoNCj4gVmZyU3ludGF4UGFyc2VyLlF1ZXN0aW9uaGVhZGVyRmxhZ3NG aWVsZENvbnRleHQpOg0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArICAg ICAgICBpZiBjdHguUmVhZE9ubHlGbGFnKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5R SEZsYWcgPSAweDAxDQo+ICsNCj4gKyAgICAgICAgZWxpZiBjdHguSW50ZXJhY3RpdmVGbGFnKCkg IT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5RSEZsYWcgPSAweDA0DQo+ICsNCj4gKyAgICAg ICAgZWxpZiBjdHguUmVzZXRSZXF1aXJlZEZsYWcoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAg Y3R4LlFIRmxhZyA9IDB4MTANCj4gKw0KPiArICAgICAgICBlbGlmIGN0eC5SZXN0U3R5bGVGbGFn KCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5RSEZsYWcgPSAweDIwDQo+ICsNCj4gKyAg ICAgICAgZWxpZiBjdHguUmVjb25uZWN0UmVxdWlyZWRGbGFnKCkgIT0gTm9uZToNCj4gKyAgICAg ICAgICAgIGN0eC5RSEZsYWcgPSAweDQwDQo+ICsNCj4gKyAgICAgICAgZWxpZiBjdHguT3B0aW9u T25seUZsYWcoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgZ1ZmckVycm9ySGFuZGxlLkhhbmRs ZVdhcm5pbmcoDQo+ICsNCj4gRUZJX1ZGUl9XQVJOSU5HX0NPREUuVkZSX1dBUk5JTkdfT0JTT0xF VEVEX0ZSQU1FV09SS19PUENPDQo+IERFLCBjdHguTy5saW5lLCBjdHguTy50ZXh0DQo+ICsgICAg ICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgZWxpZiBjdHguTlZBY2Nlc3NGbGFnKCkgIT0gTm9u ZToNCj4gKyAgICAgICAgICAgIGdWZnJFcnJvckhhbmRsZS5IYW5kbGVXYXJuaW5nKA0KPiArDQo+ IEVGSV9WRlJfV0FSTklOR19DT0RFLlZGUl9XQVJOSU5HX09CU09MRVRFRF9GUkFNRVdPUktfT1BD Tw0KPiBERSwgY3R4Lk4ubGluZSwgY3R4Lk4udGV4dA0KPiArICAgICAgICAgICAgKQ0KPiArDQo+ ICsgICAgICAgIGVsaWYgY3R4LkxhdGVDaGVja0ZsYWcoKSAhPSBOb25lOg0KPiArICAgICAgICAg ICAgZ1ZmckVycm9ySGFuZGxlLkhhbmRsZVdhcm5pbmcoDQo+ICsNCj4gRUZJX1ZGUl9XQVJOSU5H X0NPREUuVkZSX1dBUk5JTkdfT0JTT0xFVEVEX0ZSQU1FV09SS19PUENPDQo+IERFLCBjdHguTC5s aW5lLCBjdHguTC50ZXh0DQo+ICsgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgcmV0dXJu IGN0eC5RSEZsYWcNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5 IFZmclN5bnRheFBhcnNlciN2ZnJTdG9yYWdlVmFySWRSdWxlMS4NCj4gKyAgICBkZWYgdmlzaXRW ZnJTdG9yYWdlVmFySWRSdWxlMShzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5WZnJTdG9y YWdlVmFySWRSdWxlMUNvbnRleHQpOg0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4 KQ0KPiArDQo+ICsgICAgICAgIFNOYW1lID0gY3R4LlNOMS50ZXh0DQo+ICsgICAgICAgIGN0eC5W YXJJZFN0ciArPSBTTmFtZQ0KPiArDQo+ICsgICAgICAgIElkeCA9IHNlbGYuVHJhbnNOdW0oY3R4 LkkudGV4dCkNCj4gKyAgICAgICAgY3R4LlZhcklkU3RyICs9ICJbIg0KPiArICAgICAgICBjdHgu VmFySWRTdHIgKz0gY3R4LkkudGV4dA0KPiArICAgICAgICBjdHguVmFySWRTdHIgKz0gIl0iDQo+ ICsNCj4gKyAgICAgICAgY3R4LkJhc2VJbmZvLlZhclN0b3JlSWQsIFJldHVybkNvZGUgPQ0KPiBn VmZyRGF0YVN0b3JhZ2UuR2V0VmFyU3RvcmVJZChTTmFtZSkNCj4gKyAgICAgICAgaWYgY3R4LkNo ZWNrRmxhZyBvciBSZXR1cm5Db2RlID09DQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUND RVNTOg0KPiArICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwgY3R4LlNO MS5saW5lLCBjdHguU04xLnRleHQpDQo+ICsgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigN Cj4gKyAgICAgICAgICAgICAgICBnVmZyRGF0YVN0b3JhZ2UuR2V0TmFtZVZhclN0b3JlSW5mbyhj dHguQmFzZUluZm8sIElkeCksDQo+IGN0eC5TTjEubGluZSwgY3R4LlNOMS50ZXh0DQo+ICsgICAg ICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5WYXJJZFN0cg0KPiArDQo+ICsg ICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmclN0 b3JhZ2VWYXJJZFJ1bGUyLg0KPiArICAgIGRlZiB2aXNpdFZmclN0b3JhZ2VWYXJJZFJ1bGUyKHNl bGYsIGN0eDoNCj4gVmZyU3ludGF4UGFyc2VyLlZmclN0b3JhZ2VWYXJJZFJ1bGUyQ29udGV4dCk6 DQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsNCj4gKyAgICAgICAgVmFy U3RyID0gIiIgICMgdHlwZS5maWVsZA0KPiArICAgICAgICBTTmFtZSA9IGN0eC5TTjIudGV4dA0K PiArICAgICAgICBjdHguVmFySWRTdHIgKz0gU05hbWUNCj4gKyAgICAgICAgY3R4LkJhc2VJbmZv LlZhclN0b3JlSWQsIFJldHVybkNvZGUgPQ0KPiBnVmZyRGF0YVN0b3JhZ2UuR2V0VmFyU3RvcmVJ ZChTTmFtZSkNCj4gKyAgICAgICAgaWYgY3R4LkNoZWNrRmxhZyBvciBSZXR1cm5Db2RlID09DQo+ IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTOg0KPiArICAgICAgICAgICAgc2VsZi5F cnJvckhhbmRsZXIoUmV0dXJuQ29kZSwgY3R4LlNOMi5saW5lLCBjdHguU04yLnRleHQpDQo+ICsg ICAgICAgICAgICBWYXJTdG9yZVR5cGUgPQ0KPiBnVmZyRGF0YVN0b3JhZ2UuR2V0VmFyU3RvcmVU eXBlKGN0eC5CYXNlSW5mby5WYXJTdG9yZUlkKQ0KPiArICAgICAgICAgICAgaWYgKA0KPiArICAg ICAgICAgICAgICAgIFZhclN0b3JlVHlwZSA9PQ0KPiBFRklfVkZSX1ZBUlNUT1JFX1RZUEUuRUZJ X1ZGUl9WQVJTVE9SRV9CVUZGRVINCj4gKyAgICAgICAgICAgICAgICBvciBWYXJTdG9yZVR5cGUg PT0NCj4gRUZJX1ZGUl9WQVJTVE9SRV9UWVBFLkVGSV9WRlJfVkFSU1RPUkVfQlVGRkVSX0JJVFMN Cj4gKyAgICAgICAgICAgICk6DQo+ICsgICAgICAgICAgICAgICAgVE5hbWUsIFJldHVybkNvZGUy ID0NCj4gZ1ZmckRhdGFTdG9yYWdlLkdldEJ1ZmZlclZhclN0b3JlRGF0YVR5cGVOYW1lKA0KPiAr ICAgICAgICAgICAgICAgICAgICBjdHguQmFzZUluZm8uVmFyU3RvcmVJZA0KPiArICAgICAgICAg ICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcihSZXR1cm5Db2Rl MiwgY3R4LlNOMi5saW5lLCBjdHguU04yLnRleHQpDQo+ICsgICAgICAgICAgICAgICAgVmFyU3Ry ICs9IFROYW1lDQo+ICsNCj4gKyAgICAgICAgQ291bnQgPSBsZW4oY3R4LkRvdCgpKQ0KPiArICAg ICAgICBmb3IgaSBpbiByYW5nZSgwLCBDb3VudCk6DQo+ICsgICAgICAgICAgICBpZiBjdHguQ2hl Y2tGbGFnIG9yIFJldHVybkNvZGUgPT0NCj4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NF U1M6DQo+ICsgICAgICAgICAgICAgICAgY29uZCA9IChWYXJTdG9yZVR5cGUgIT0NCj4gRUZJX1ZG Ul9WQVJTVE9SRV9UWVBFLkVGSV9WRlJfVkFSU1RPUkVfQlVGRkVSKSBhbmQgKA0KPiArICAgICAg ICAgICAgICAgICAgICBWYXJTdG9yZVR5cGUgIT0NCj4gRUZJX1ZGUl9WQVJTVE9SRV9UWVBFLkVG SV9WRlJfVkFSU1RPUkVfQlVGRkVSX0JJVFMNCj4gKyAgICAgICAgICAgICAgICApDQo+ICsgICAg ICAgICAgICAgICAgUmV0dXJuQ29kZSA9ICgNCj4gKyAgICAgICAgICAgICAgICAgICAgVmZyUmV0 dXJuQ29kZS5WRlJfUkVUVVJOX0VGSVZBUlNUT1JFX1VTRV9FUlJPUg0KPiArICAgICAgICAgICAg ICAgICAgICBpZiBjb25kDQo+ICsgICAgICAgICAgICAgICAgICAgIGVsc2UgVmZyUmV0dXJuQ29k ZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gKyAgICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAg ICAgICAgc2VsZi5FcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwgY3R4LlNOMi5saW5lLCBjdHguU04y LnRleHQpDQo+ICsNCj4gKyAgICAgICAgICAgIGN0eC5WYXJJZFN0ciArPSAiLiINCj4gKyAgICAg ICAgICAgIFZhclN0ciArPSAiLiINCj4gKyAgICAgICAgICAgIGN0eC5WYXJJZFN0ciArPSBjdHgu YXJyYXlOYW1lKGkpLlN1YlN0cg0KPiArICAgICAgICAgICAgVmFyU3RyICs9IGN0eC5hcnJheU5h bWUoaSkuU3ViU3RyWg0KPiArDQo+ICsgICAgICAgIGlmIFZhclN0b3JlVHlwZSA9PSBFRklfVkZS X1ZBUlNUT1JFX1RZUEUuRUZJX1ZGUl9WQVJTVE9SRV9FRkk6DQo+ICsgICAgICAgICAgICBzZWxm LkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAgICBnVmZyRGF0YVN0b3JhZ2UuR2V0RWZp VmFyU3RvcmVJbmZvKGN0eC5CYXNlSW5mbyksIGN0eC5TTjIubGluZSwNCj4gY3R4LlNOMi50ZXh0 DQo+ICsgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgZWxpZiAoDQo+ICsgICAgICAgICAg ICBWYXJTdG9yZVR5cGUgPT0NCj4gRUZJX1ZGUl9WQVJTVE9SRV9UWVBFLkVGSV9WRlJfVkFSU1RP UkVfQlVGRkVSDQo+ICsgICAgICAgICAgICBvciBWYXJTdG9yZVR5cGUgPT0NCj4gRUZJX1ZGUl9W QVJTVE9SRV9UWVBFLkVGSV9WRlJfVkFSU1RPUkVfQlVGRkVSX0JJVFMNCj4gKyAgICAgICAgKToN Cj4gKyAgICAgICAgICAgICgNCj4gKyAgICAgICAgICAgICAgICBjdHguQmFzZUluZm8uSW5mby5W YXJPZmZzZXQsDQo+ICsgICAgICAgICAgICAgICAgY3R4LkJhc2VJbmZvLlZhclR5cGUsDQo+ICsg ICAgICAgICAgICAgICAgY3R4LkJhc2VJbmZvLlZhclRvdGFsU2l6ZSwNCj4gKyAgICAgICAgICAg ICAgICBjdHguQmFzZUluZm8uSXNCaXRWYXIsDQo+ICsgICAgICAgICAgICAgICAgUmV0dXJuQ29k ZSwNCj4gKyAgICAgICAgICAgICkgPSBnVmZyVmFyRGF0YVR5cGVEQi5HZXREYXRhRmllbGRJbmZv KFZhclN0cikNCj4gKyAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKFJldHVybkNvZGUsIGN0 eC5TTjIubGluZSwgVmFyU3RyKQ0KPiArICAgICAgICAgICAgVmFyR3VpZCA9IGdWZnJEYXRhU3Rv cmFnZS5HZXRWYXJTdG9yZUd1aWQoY3R4LkJhc2VJbmZvLlZhclN0b3JlSWQpDQo+ICsgICAgICAg ICAgICBzZWxmLkVycm9ySGFuZGxlcihnVmZyQnVmZmVyQ29uZmlnLlJlZ2lzdGVyKFNOYW1lLCBW YXJHdWlkKSwNCj4gY3R4LlNOMi5saW5lKQ0KPiArICAgICAgICAgICAgUmV0dXJuQ29kZSA9IFZm clJldHVybkNvZGUoDQo+ICsgICAgICAgICAgICAgICAgZ1ZmckJ1ZmZlckNvbmZpZy5Xcml0ZSgN Cj4gKyAgICAgICAgICAgICAgICAgICAgImEiLA0KPiArICAgICAgICAgICAgICAgICAgICBTTmFt ZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgVmFyR3VpZCwNCj4gKyAgICAgICAgICAgICAgICAg ICAgTm9uZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgY3R4LkJhc2VJbmZvLlZhclR5cGUsDQo+ ICsgICAgICAgICAgICAgICAgICAgIGN0eC5CYXNlSW5mby5JbmZvLlZhck9mZnNldCwNCj4gKyAg ICAgICAgICAgICAgICAgICAgY3R4LkJhc2VJbmZvLlZhclRvdGFsU2l6ZSwNCj4gKyAgICAgICAg ICAgICAgICAgICAgc2VsZi5WYWx1ZSwNCj4gKyAgICAgICAgICAgICAgICApDQo+ICsgICAgICAg ICAgICApDQo+ICsgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcihSZXR1cm5Db2RlLCBjdHgu U04yLmxpbmUpDQo+ICsgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAg ICAgICAgICBnVmZyRGF0YVN0b3JhZ2UuQWRkQnVmZmVyVmFyU3RvcmVGaWVsZEluZm8oY3R4LkJh c2VJbmZvKSwNCj4gY3R4LlNOMi5saW5lDQo+ICsgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAg ICAgcmV0dXJuIGN0eC5WYXJJZFN0cg0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUg cHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmckNvbnN0YW50VmFsdWVGaWVsZC4NCj4gKyAg ICBkZWYgdmlzaXRWZnJDb25zdGFudFZhbHVlRmllbGQoc2VsZiwgY3R4Og0KPiBWZnJTeW50YXhQ YXJzZXIuVmZyQ29uc3RhbnRWYWx1ZUZpZWxkQ29udGV4dCk6DQo+ICsgICAgICAgIHNlbGYudmlz aXRDaGlsZHJlbihjdHgpDQo+ICsNCj4gKyAgICAgICAgSW50RGVjU3R5bGUgPSBGYWxzZQ0KPiAr ICAgICAgICBpZiBzZWxmLkN1cnJlbnRNaW5NYXhEYXRhICE9IE5vbmUgYW5kDQo+IHNlbGYuQ3Vy cmVudE1pbk1heERhdGEuSXNOdW1lcmljT3Bjb2RlKCk6DQo+ICsgICAgICAgICAgICBOdW1lcmlj UXN0ID0gSWZyTnVtZXJpYyhzZWxmLkN1cnJlbnRRdWVzdGlvbikgICMNCj4gKyAgICAgICAgICAg IEludERlY1N0eWxlID0gKA0KPiArICAgICAgICAgICAgICAgIFRydWUgaWYgKE51bWVyaWNRc3Qu R2V0TnVtZXJpY0ZsYWdzKCkgJiBFRklfSUZSX0RJU1BMQVkpID09IDAgZWxzZQ0KPiBGYWxzZQ0K PiArICAgICAgICAgICAgKSAgIw0KPiArDQo+ICsgICAgICAgIGlmIGN0eC5UcnVlU3ltYm9sKCkg IT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5WYWx1ZUxpc3QuYXBwZW5kKDEpDQo+ICsNCj4g KyAgICAgICAgZWxpZiBjdHguRmFsc2VTeW1ib2woKSAhPSBOb25lOg0KPiArICAgICAgICAgICAg Y3R4LlZhbHVlTGlzdC5hcHBlbmQoMCkNCj4gKw0KPiArICAgICAgICBlbGlmIGN0eC5PbmUoKSAh PSBOb25lOg0KPiArICAgICAgICAgICAgY3R4LlZhbHVlTGlzdC5hcHBlbmQoaW50KGN0eC5nZXRU ZXh0KCkpKQ0KPiArDQo+ICsgICAgICAgIGVsaWYgY3R4Lk9uZXMoKSAhPSBOb25lOg0KPiArICAg ICAgICAgICAgY3R4LlZhbHVlTGlzdC5hcHBlbmQoaW50KGN0eC5nZXRUZXh0KCkpKQ0KPiArDQo+ ICsgICAgICAgIGVsaWYgY3R4Llplcm8oKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4LlZh bHVlTGlzdC5hcHBlbmQoaW50KGN0eC5nZXRUZXh0KCkpKQ0KPiArDQo+ICsgICAgICAgIGVsaWYg Y3R4LkNvbG9uKCkgIT0gW106DQo+ICsgICAgICAgICAgICBUaW1lID0gRUZJX0hJSV9USU1FKCkN Cj4gKyAgICAgICAgICAgIFRpbWUuSG91ciA9IHNlbGYuVHJhbnNOdW0oY3R4Lk51bWJlcigwKSkN Cj4gKyAgICAgICAgICAgIFRpbWUuTWludXRlID0gc2VsZi5UcmFuc051bShjdHguTnVtYmVyKDEp KQ0KPiArICAgICAgICAgICAgVGltZS5TZWNvbmQgPSBzZWxmLlRyYW5zTnVtKGN0eC5OdW1iZXIo MikpDQo+ICsgICAgICAgICAgICBjdHguVmFsdWVMaXN0LmFwcGVuZChUaW1lKQ0KPiArDQo+ICsg ICAgICAgIGVsaWYgY3R4LlNsYXNoKCkgIT0gW106DQo+ICsgICAgICAgICAgICBEYXRlID0gRUZJ X0hJSV9EQVRFKCkNCj4gKyAgICAgICAgICAgIERhdGUuWWVhciA9IHNlbGYuVHJhbnNOdW0oY3R4 Lk51bWJlcigwKSkNCj4gKyAgICAgICAgICAgIERhdGUuTW9udGggPSBzZWxmLlRyYW5zTnVtKGN0 eC5OdW1iZXIoMSkpDQo+ICsgICAgICAgICAgICBEYXRlLkRheSA9IHNlbGYuVHJhbnNOdW0oY3R4 Lk51bWJlcigyKSkNCj4gKyAgICAgICAgICAgIGN0eC5WYWx1ZUxpc3QuYXBwZW5kKERhdGUpDQo+ ICsNCj4gKyAgICAgICAgZWxpZiBjdHguU2VtaWNvbG9uKCkgIT0gW106DQo+ICsgICAgICAgICAg ICBSZWYgPSBFRklfSElJX1JFRigpDQo+ICsgICAgICAgICAgICBSZWYuUXVlc3Rpb25JZCA9IHNl bGYuVHJhbnNOdW0oY3R4Lk51bWJlcigwKSkNCj4gKyAgICAgICAgICAgIFJlZi5Gb3JtSWQgPSBz ZWxmLlRyYW5zTnVtKGN0eC5OdW1iZXIoMSkpDQo+ICsgICAgICAgICAgICBSZWYuRGV2aWNlUGF0 aCA9IHNlbGYuVHJhbnNOdW0oY3R4Lk51bWJlcigyKSkNCj4gKyAgICAgICAgICAgIFJlZi5Gb3Jt U2V0R3VpZCA9IGN0eC5ndWlkRGVmaW5pdGlvbigpLkd1aWQNCj4gKyAgICAgICAgICAgIGN0eC5W YWx1ZUxpc3QuYXBwZW5kKFJlZikNCj4gKw0KPiArICAgICAgICBlbGlmIGN0eC5TdHJpbmdUb2tl bigpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguVmFsdWVMaXN0LmFwcGVuZChzZWxmLlRy YW5zTnVtKGN0eC5OdW1iZXIoMCkpKQ0KPiArDQo+ICsgICAgICAgIGVsaWYgY3R4Lk9wZW5CcmFj ZSgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTGlzdFR5cGUgPSBUcnVlDQo+ICsgICAg ICAgICAgICBUeXBlID0gc2VsZi5DdXJyUWVzdFZhckluZm8uVmFyVHlwZQ0KPiArICAgICAgICAg ICAgZm9yIGkgaW4gcmFuZ2UoMCwgbGVuKGN0eC5OdW1iZXIoKSkpOg0KPiArICAgICAgICAgICAg ICAgIGN0eC5WYWx1ZUxpc3QuYXBwZW5kKHNlbGYuVHJhbnNOdW0oY3R4Lk51bWJlcihpKSkpDQo+ ICsNCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIE5lZ2F0aXZlID0gVHJ1ZSBpZiBj dHguTmVnYXRpdmUoKSAhPSBOb25lIGVsc2UgRmFsc2UNCj4gKyAgICAgICAgICAgICMgVGhlIHZh bHVlIHN0b3JlZCBpbiBiaXQgZmllbGRzIGlzIGFsd2F5cyBzZXQgdG8gVUlOVDMyIHR5cGUuDQo+ ICsgICAgICAgICAgICBpZiBzZWxmLkN1cnJRZXN0VmFySW5mby5Jc0JpdFZhcjoNCj4gKyAgICAg ICAgICAgICAgICBjdHguVmFsdWVMaXN0LmFwcGVuZChzZWxmLlRyYW5zTnVtKGN0eC5OdW1iZXIo MCkpKQ0KPiArICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAgICBUeXBlID0gc2Vs Zi5DdXJyUWVzdFZhckluZm8uVmFyVHlwZQ0KPiArICAgICAgICAgICAgICAgIGlmIFR5cGUgPT0g RUZJX0lGUl9UWVBFX05VTV9TSVpFXzg6DQo+ICsgICAgICAgICAgICAgICAgICAgIFZhbHVlID0g c2VsZi5UcmFuc051bShjdHguTnVtYmVyKDApKQ0KPiArICAgICAgICAgICAgICAgICAgICBpZiBJ bnREZWNTdHlsZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIE5lZ2F0aXZlOg0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIFZhbHVlID4gMHg4MDoNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJ RF9QQVJBTUVURVIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgu c3RhcnQubGluZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJTlQ4 IHR5cGUgY2FuJ3QgYmlnIHRoYW4gMHg3Riwgc21hbGwgdGhhbiAtMHg4MCIsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGVs c2U6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgVmFsdWUgPiAweDdGOg0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVS Tl9JTlZBTElEX1BBUkFNRVRFUiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGN0eC5zdGFydC5saW5lLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIklOVDggdHlwZSBjYW4ndCBiaWcgdGhhbiAweDdGLCBzbWFsbCB0aGFuIC0weDgwIiwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAgICAg ICBpZiBOZWdhdGl2ZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlID0gflZhbHVl ICsgMQ0KPiArICAgICAgICAgICAgICAgICAgICBjdHguVmFsdWVMaXN0LmFwcGVuZChWYWx1ZSkN Cj4gKw0KPiArICAgICAgICAgICAgICAgIGlmIFR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpF XzE2Og0KPiArICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9IHNlbGYuVHJhbnNOdW0oY3R4Lk51 bWJlcigwKSkNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgSW50RGVjU3R5bGU6DQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICBpZiBOZWdhdGl2ZToNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiBWYWx1ZSA+IDB4ODAwMDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHguc3RhcnQubGluZSwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJTlQxNiB0eXBlIGNhbid0IGJpZyB0 aGFuIDB4N0ZGRiwgc21hbGwgdGhhbiAtMHg4MDAwIiwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBWYWx1ZSA+IDB4N0ZGRjoNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9Q QVJBTUVURVIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHguc3Rh cnQubGluZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJTlQxNiB0 eXBlIGNhbid0IGJpZyB0aGFuIDB4N0ZGRiwgc21hbGwgdGhhbiAtMHg4MDAwIiwNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAgICAgICBpZiBO ZWdhdGl2ZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlID0gflZhbHVlICsgMQ0K PiArICAgICAgICAgICAgICAgICAgICBjdHguVmFsdWVMaXN0LmFwcGVuZChWYWx1ZSkNCj4gKw0K PiArICAgICAgICAgICAgICAgIGlmIFR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzMyOg0K PiArICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9IHNlbGYuVHJhbnNOdW0oY3R4Lk51bWJlcigw KSkNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgSW50RGVjU3R5bGU6DQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICBpZiBOZWdhdGl2ZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiBWYWx1ZSA+IDB4ODAwMDAwMDA6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuRXJyb3JIYW5kbGVyKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LnN0YXJ0LmxpbmUsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSU5UMzIgdHlwZSBjYW4ndCBiaWcgdGhh biAweDdGRkZGRkZGLCBzbWFsbCB0aGFuIC0NCj4gMHg4MDAwMDAwMCIsDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6 DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgVmFsdWUgPiAweDdGRkZGRkZGOg0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZmclJldHVybkNvZGUuVkZSX1JF VFVSTl9JTlZBTElEX1BBUkFNRVRFUiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGN0eC5zdGFydC5saW5lLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIklOVDMyIHR5cGUgY2FuJ3QgYmlnIHRoYW4gMHg3RkZGRkZGRiwgc21hbGwgdGhhbiAt DQo+IDB4ODAwMDAwMDAiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQo+ ICsgICAgICAgICAgICAgICAgICAgIGlmIE5lZ2F0aXZlOg0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgVmFsdWUgPSB+VmFsdWUgKyAxDQo+ICsgICAgICAgICAgICAgICAgICAgIGN0eC5WYWx1 ZUxpc3QuYXBwZW5kKFZhbHVlKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgaWYgVHlwZSA9PSBF RklfSUZSX1RZUEVfTlVNX1NJWkVfNjQ6DQo+ICsgICAgICAgICAgICAgICAgICAgIFZhbHVlID0g c2VsZi5UcmFuc051bShjdHguTnVtYmVyKDApKQ0KPiArICAgICAgICAgICAgICAgICAgICBpZiBJ bnREZWNTdHlsZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIE5lZ2F0aXZlOg0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIFZhbHVlID4gMHg4MDAwMDAwMDAwMDAwMDAw Og0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZmclJldHVybkNvZGUuVkZS X1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGN0eC5zdGFydC5saW5lLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIklOVDY0IHR5cGUgY2FuJ3QgYmlnIHRoYW4gMHg3RkZGRkZGRkZGRkZGRkZGLCBz bWFsbA0KPiB0aGFuIC0weDgwMDAwMDAwMDAwMDAwMDAiLA0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOg0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIFZhbHVlID4gMHg3RkZGRkZGRkZGRkZGRkZGOg0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZmclJldHVybkNvZGUuVkZSX1JF VFVSTl9JTlZBTElEX1BBUkFNRVRFUiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGN0eC5zdGFydC5saW5lLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIklOVDY0IHR5cGUgY2FuJ3QgYmlnIHRoYW4gMHg3RkZGRkZGRkZGRkZGRkZGLCBzbWFs bA0KPiB0aGFuIC0weDgwMDAwMDAwMDAwMDAwMDAiLA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIE5lZ2F0aXZlOg0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgVmFsdWUgPSB+VmFsdWUgKyAxDQo+ICsgICAgICAgICAgICAg ICAgICAgIGN0eC5WYWx1ZUxpc3QuYXBwZW5kKFZhbHVlKQ0KPiArDQo+ICsgICAgICAgICAgICAg ICAgZWxzZToNCj4gKyAgICAgICAgICAgICAgICAgICAgY3R4LlZhbHVlTGlzdC5hcHBlbmQoc2Vs Zi5UcmFuc051bShjdHguTnVtYmVyKDApKSkNCj4gKw0KPiArICAgICAgICByZXR1cm4gY3R4LlZh bHVlTGlzdA0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZy U3ludGF4UGFyc2VyI3ZmckltYWdlVGFnLg0KPiArICAgIGRlZiB2aXNpdFZmckltYWdlVGFnKHNl bGYsIGN0eDogVmZyU3ludGF4UGFyc2VyLlZmckltYWdlVGFnQ29udGV4dCk6DQo+ICsgICAgICAg IElPYmogPSBJZnJJbWFnZSgpDQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ ICsgICAgICAgIElPYmouU2V0TGluZU5vKGN0eC5zdGFydC5saW5lKQ0KPiArICAgICAgICBJT2Jq LlNldEltYWdlSWQoc2VsZi5UcmFuc051bShjdHguTnVtYmVyKCkpKQ0KPiArICAgICAgICBjdHgu Tm9kZS5EYXRhID0gSU9iag0KPiArICAgICAgICBjdHguTm9kZS5CdWZmZXIgPSBnRm9ybVBrZy5T dHJ1Y3RUb1N0cmVhbShJT2JqLkdldEluZm8oKSkNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5Ob2Rl DQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQ YXJzZXIjdmZyTG9ja2VkVGFnLg0KPiArICAgIGRlZiB2aXNpdFZmckxvY2tlZFRhZyhzZWxmLCBj dHg6IFZmclN5bnRheFBhcnNlci5WZnJMb2NrZWRUYWdDb250ZXh0KToNCj4gKyAgICAgICAgTE9i aiA9IElmckxvY2tlZCgpDQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsg ICAgICAgIExPYmouU2V0TGluZU5vKGN0eC5zdGFydC5saW5lKQ0KPiArICAgICAgICBjdHguTm9k ZS5EYXRhID0gTE9iag0KPiArICAgICAgICBjdHguTm9kZS5CdWZmZXIgPSBnRm9ybVBrZy5TdHJ1 Y3RUb1N0cmVhbShMT2JqLkdldEluZm8oKSkNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+ ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJz ZXIjdmZyU3RhdGVtZW50U3RhdFRhZy4NCj4gKyAgICBkZWYgdmlzaXRWZnJTdGF0ZW1lbnRTdGF0 VGFnKHNlbGYsIGN0eDoNCj4gVmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudFN0YXRUYWdDb250 ZXh0KToNCj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgaWYg Y3R4LnZmckltYWdlVGFnKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4 LnZmckltYWdlVGFnKCkuTm9kZQ0KPiArICAgICAgICBlbGlmIGN0eC52ZnJMb2NrZWRUYWcoKSAh PSBOb25lOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyTG9ja2VkVGFnKCkuTm9k ZQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiArDQo+ICsgICAgIyBWaXNpdCBh IHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudFN0YXRU YWdMaXN0Lg0KPiArICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudFN0YXRUYWdMaXN0KHNlbGYsIGN0 eDoNCj4gVmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudFN0YXRUYWdMaXN0Q29udGV4dCk6DQo+ ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsgICAgICAgIGZvciBDdHggaW4g Y3R4LnZmclN0YXRlbWVudFN0YXRUYWcoKToNCj4gKyAgICAgICAgICAgIHNlbGYuSW5zZXJ0Q2hp bGQoY3R4Lk5vZGUsIEN0eCkNCj4gKw0KPiArICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gKw0K PiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2 ZnJGb3JtRGVmaW5pdGlvbi4NCj4gKyAgICBkZWYgdmlzaXRWZnJGb3JtRGVmaW5pdGlvbihzZWxm LCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5WZnJGb3JtRGVmaW5pdGlvbkNvbnRleHQpOg0KPiAr ICAgICAgICBGT2JqID0gSWZyRm9ybSgpDQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihj dHgpDQo+ICsNCj4gKyAgICAgICAgRk9iai5TZXRMaW5lTm8oY3R4LnN0YXJ0LmxpbmUpDQo+ICsg ICAgICAgIEZvcm1JZCA9IHNlbGYuVHJhbnNOdW0oY3R4Lk51bWJlcigwKSkNCj4gKyAgICAgICAg Rk9iai5TZXRGb3JtSWQoRm9ybUlkKQ0KPiArICAgICAgICBGb3JtVGl0bGUgPSBzZWxmLlRyYW5z TnVtKGN0eC5OdW1iZXIoMSkpDQo+ICsgICAgICAgIEZPYmouU2V0Rm9ybVRpdGxlKEZvcm1UaXRs ZSkNCj4gKw0KPiArICAgICAgICBjdHguTm9kZS5EYXRhID0gRk9iag0KPiArICAgICAgICBmb3Ig Q3R4IGluIGN0eC52ZnJGb3JtKCk6DQo+ICsgICAgICAgICAgICBzZWxmLkluc2VydENoaWxkKGN0 eC5Ob2RlLCBDdHgpDQo+ICsgICAgICAgIGN0eC5Ob2RlLkJ1ZmZlciA9IGdGb3JtUGtnLlN0cnVj dFRvU3RyZWFtKEZPYmouR2V0SW5mbygpKQ0KPiArDQo+ICsgICAgICAgIHNlbGYuSW5zZXJ0RW5k Tm9kZShjdHguTm9kZSwgY3R4LnN0b3AubGluZSkNCj4gKyAgICAgICAgc2VsZi5MYXN0Rm9ybU5v ZGUgPSBjdHguTm9kZQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiArDQo+ICsg ICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmckZv cm0uDQo+ICsgICAgZGVmIHZpc2l0VmZyRm9ybShzZWxmLCBjdHg6IFZmclN5bnRheFBhcnNlci5W ZnJGb3JtQ29udGV4dCk6DQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsg ICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnRJbWFnZSgpICE9IE5vbmU6DQo+ICsgICAgICAgICAg ICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRJbWFnZSgpLk5vZGUNCj4gKyAgICAgICAgaWYg Y3R4LnZmclN0YXRlbWVudExvY2tlZCgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9k ZSA9IGN0eC52ZnJTdGF0ZW1lbnRMb2NrZWQoKS5Ob2RlDQo+ICsgICAgICAgIGlmIGN0eC52ZnJT dGF0ZW1lbnRSdWxlcygpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52 ZnJTdGF0ZW1lbnRSdWxlcygpLk5vZGUNCj4gKyAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVudERl ZmF1bHQoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyU3RhdGVt ZW50RGVmYXVsdCgpLk5vZGUNCj4gKyAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVudFN0YXQoKSAh PSBOb25lOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyU3RhdGVtZW50U3RhdCgp Lk5vZGUNCj4gKyAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVudFF1ZXN0aW9ucygpICE9IE5vbmU6 DQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRRdWVzdGlvbnMoKS5O b2RlDQo+ICsgICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnRDb25kaXRpb25hbCgpICE9IE5vbmU6 DQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRDb25kaXRpb25hbCgp Lk5vZGUNCj4gKyAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVudExhYmVsKCkgIT0gTm9uZToNCj4g KyAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudExhYmVsKCkuTm9kZQ0KPiAr ICAgICAgICBpZiBjdHgudmZyU3RhdGVtZW50QmFubmVyKCkgIT0gTm9uZToNCj4gKyAgICAgICAg ICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudEJhbm5lcigpLk5vZGUNCj4gKyAgICAgICAg aWYgY3R4LnZmclN0YXRlbWVudEludmFsaWQoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4 Lk5vZGUgPSBjdHgudmZyU3RhdGVtZW50SW52YWxpZCgpLk5vZGUNCj4gKyAgICAgICAgaWYgY3R4 LnZmclN0YXRlbWVudEV4dGVuc2lvbigpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9k ZSA9IGN0eC52ZnJTdGF0ZW1lbnRFeHRlbnNpb24oKS5Ob2RlDQo+ICsgICAgICAgIGlmIGN0eC52 ZnJTdGF0ZW1lbnRNb2RhbCgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IGN0 eC52ZnJTdGF0ZW1lbnRNb2RhbCgpLk5vZGUNCj4gKyAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVu dFJlZnJlc2hFdmVudCgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52 ZnJTdGF0ZW1lbnRSZWZyZXNoRXZlbnQoKS5Ob2RlDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIGN0 eC5Ob2RlDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJT eW50YXhQYXJzZXIjdmZyRm9ybU1hcERlZmluaXRpb24uDQo+ICsgICAgZGVmIHZpc2l0VmZyRm9y bU1hcERlZmluaXRpb24oc2VsZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIuVmZyRm9ybU1hcERl ZmluaXRpb25Db250ZXh0KToNCj4gKyAgICAgICAgRk1hcE9iaiA9IElmckZvcm1NYXAoKQ0KPiAr ICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAgICBGb3JtTWFwTWV0aG9k TnVtYmVyID0gbGVuKGN0eC5NYXBUaXRsZSgpKQ0KPiArICAgICAgICBMaW5lID0gY3R4LnN0YXJ0 LmxpbmUNCj4gKyAgICAgICAgRk1hcE9iai5TZXRMaW5lTm8oTGluZSkNCj4gKyAgICAgICAgc2Vs Zi5FcnJvckhhbmRsZXIoRk1hcE9iai5TZXRGb3JtSWQoc2VsZi5UcmFuc051bShjdHguUzEudGV4 dCkpLA0KPiBjdHguUzEubGluZSwgY3R4LlMxLmxpbmUpDQo+ICsgICAgICAgIGlmIEZvcm1NYXBN ZXRob2ROdW1iZXIgPT0gMDoNCj4gKyAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKA0KPiAr ICAgICAgICAgICAgICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRF UiwgTGluZSwgIk5vDQo+IE1hcE1ldGhvZCBpcyBzZXQgZm9yIEZvcm1NYXAhIg0KPiArICAgICAg ICAgICAgKQ0KPiArICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uo MCwgRm9ybU1hcE1ldGhvZE51bWJlcik6DQo+ICsgICAgICAgICAgICAgICAgRk1hcE9iai5TZXRG b3JtTWFwTWV0aG9kKA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLlRyYW5zTnVtKGN0eC5O dW1iZXIoaSArIDEpKSwgY3R4Lmd1aWREZWZpbml0aW9uKGkpLkd1aWQNCj4gKyAgICAgICAgICAg ICAgICApDQo+ICsgICAgICAgIEZvcm1NYXAgPSBGTWFwT2JqLkdldEluZm8oKQ0KPiArICAgICAg ICBNZXRob2RNYXBMaXN0ID0gRk1hcE9iai5HZXRNZXRob2RNYXBMaXN0KCkNCj4gKyAgICAgICAg Zm9yIE1ldGhvZE1hcCBpbiBNZXRob2RNYXBMaXN0Og0KPiArICAgICAgICAgICAgIyBFeHRlbmQg SGVhZGVyIFNpemUgZm9yIE1ldGhvZE1hcExpc3QNCj4gKyAgICAgICAgICAgIEZvcm1NYXAuSGVh ZGVyLkxlbmd0aCArPSBzaXplb2YoRUZJX0lGUl9GT1JNX01BUF9NRVRIT0QpDQo+ICsNCj4gKyAg ICAgICAgY3R4Lk5vZGUuRGF0YSA9IEZNYXBPYmoNCj4gKyAgICAgICAgY3R4Lk5vZGUuQnVmZmVy ID0gZ0Zvcm1Qa2cuU3RydWN0VG9TdHJlYW0oRm9ybU1hcCkNCj4gKyAgICAgICAgZm9yIE1ldGhv ZE1hcCBpbiBNZXRob2RNYXBMaXN0Og0KPiArICAgICAgICAgICAgY3R4Lk5vZGUuQnVmZmVyICs9 IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFtKE1ldGhvZE1hcCkNCj4gKyAgICAgICAgZm9yIEN0eCBp biBjdHgudmZyRm9ybSgpOg0KPiArICAgICAgICAgICAgc2VsZi5JbnNlcnRDaGlsZChjdHguTm9k ZSwgQ3R4KQ0KPiArICAgICAgICBzZWxmLkluc2VydEVuZE5vZGUoY3R4Lk5vZGUsIGN0eC5zdG9w LmxpbmUpDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+ICsNCj4gKyAgICAjIFZp c2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVtZW50 SW1hZ2UuDQo+ICsgICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50SW1hZ2Uoc2VsZiwgY3R4Og0KPiBW ZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50SW1hZ2VDb250ZXh0KToNCj4gKyAgICAgICAgc2Vs Zi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZySW1hZ2VU YWcoKS5Ob2RlDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiArDQo+ICsgICAgIyBWaXNp dCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudExv Y2tlZC4NCj4gKyAgICBkZWYgdmlzaXRWZnJTdGF0ZW1lbnRMb2NrZWQoc2VsZiwgY3R4Og0KPiBW ZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50TG9ja2VkQ29udGV4dCk6DQo+ICsgICAgICAgIHNl bGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmckxvY2tl ZFRhZygpLk5vZGUNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+ICsNCj4gKyAgICAjIFZp c2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVtZW50 UnVsZXMuDQo+ICsgICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50UnVsZXMoc2VsZiwgY3R4Og0KPiBW ZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50UnVsZXNDb250ZXh0KToNCj4gKyAgICAgICAgUk9i aiA9IElmclJ1bGUoKQ0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ ICsgICAgICAgIFJPYmouU2V0TGluZU5vKGN0eC5zdGFydC5saW5lKQ0KPiArICAgICAgICBSdWxl TmFtZSA9IHNlbGYuVHJhbnNJZChjdHguU3RyaW5nSWRlbnRpZmllcigpKQ0KPiArICAgICAgICBS T2JqLlNldFJ1bGVOYW1lKFJ1bGVOYW1lKQ0KPiArICAgICAgICBzZWxmLlZmclJ1bGVzREIuUmVn aXN0ZXJSdWxlKFJ1bGVOYW1lKQ0KPiArICAgICAgICBST2JqLlNldFJ1bGVJZChzZWxmLlZmclJ1 bGVzREIuR2V0UnVsZUlkKFJ1bGVOYW1lKSkNCj4gKyAgICAgICAgY3R4Lk5vZGUuRGF0YSA9IFJP YmoNCj4gKyAgICAgICAgIyBleHByZXNzaW9uDQo+ICsgICAgICAgIGN0eC5Ob2RlLkV4cHJlc3Np b24gPQ0KPiBzZWxmLkV4dHJhY3RPcmlnaW5hbFRleHQoY3R4LnZmclN0YXRlbWVudEV4cHJlc3Np b24oKSkNCj4gKyAgICAgICAgY3R4Lk5vZGUuQnVmZmVyID0gZ0Zvcm1Qa2cuU3RydWN0VG9TdHJl YW0oUk9iai5HZXRJbmZvKCkpDQo+ICsgICAgICAgIHNlbGYuSW5zZXJ0RW5kTm9kZShjdHguTm9k ZSwgY3R4LnN0b3AubGluZSkNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+ICsNCj4gKyAg ICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyU3Rh dGVtZW50U3RhdC4NCj4gKyAgICBkZWYgdmlzaXRWZnJTdGF0ZW1lbnRTdGF0KHNlbGYsIGN0eDoN Cj4gVmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudFN0YXRDb250ZXh0KToNCj4gKyAgICAgICAg c2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVudFN1 YlRpdGxlKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRl bWVudFN1YlRpdGxlKCkuTm9kZQ0KPiArICAgICAgICBpZiBjdHgudmZyU3RhdGVtZW50U3RhdGlj VGV4dCgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1l bnRTdGF0aWNUZXh0KCkuTm9kZQ0KPiArICAgICAgICBpZiBjdHgudmZyU3RhdGVtZW50Q3Jvc3NS ZWZlcmVuY2UoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyU3Rh dGVtZW50Q3Jvc3NSZWZlcmVuY2UoKS5Ob2RlDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0K PiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFy c2VyI3ZmclN0YXRlbWVudFN1YlRpdGxlLg0KPiArICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudFN1 YlRpdGxlKHNlbGYsIGN0eDoNCj4gVmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudFN1YlRpdGxl Q29udGV4dCk6DQo+ICsgICAgICAgIFNPYmogPSBJZnJTdWJ0aXRsZSgpDQo+ICsNCj4gKyAgICAg ICAgTGluZSA9IGN0eC5zdGFydC5saW5lDQo+ICsgICAgICAgIFNPYmouU2V0TGluZU5vKExpbmUp DQo+ICsNCj4gKyAgICAgICAgUHJvbXB0ID0gc2VsZi5UcmFuc051bShjdHguTnVtYmVyKCkpDQo+ ICsgICAgICAgIFNPYmouU2V0UHJvbXB0KFByb21wdCkNCj4gKw0KPiArICAgICAgICBzZWxmLnZp c2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ICsgICAgICAgIGlmIGN0eC52ZnJTdWJ0aXRsZUZsYWdz KCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIFNPYmouU2V0RmxhZ3MoY3R4LnZmclN1YnRpdGxl RmxhZ3MoKS5TdWJGbGFncykNCj4gKyAgICAgICAgICAgIFNPYmouU2V0RmxhZ3NTdHJlYW0oc2Vs Zi5FeHRyYWN0T3JpZ2luYWxUZXh0KGN0eC52ZnJTdWJ0aXRsZUZsYWdzKCkpKQ0KPiArDQo+ICsg ICAgICAgIGN0eC5Ob2RlLkJ1ZmZlciA9IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFtKFNPYmouR2V0 SW5mbygpKQ0KPiArICAgICAgICAjIHNlcXVlbmNlIHF1ZXN0aW9uDQo+ICsgICAgICAgIGZvciBD dHggaW4gY3R4LnZmclN0YXRlbWVudFN1YlRpdGxlQ29tcG9uZW50KCk6DQo+ICsgICAgICAgICAg ICBzZWxmLkluc2VydENoaWxkKGN0eC5Ob2RlLCBDdHgpDQo+ICsgICAgICAgIGN0eC5Ob2RlLkRh dGEgPSBTT2JqDQo+ICsgICAgICAgIHNlbGYuSW5zZXJ0RW5kTm9kZShjdHguTm9kZSwgY3R4LnN0 b3AubGluZSkNCj4gKw0KPiArICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gKw0KPiArICAgICMg VmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5DQo+IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0 ZW1lbnRTdWJUaXRsZUNvbXBvbmVudC4NCj4gKyAgICBkZWYgdmlzaXRWZnJTdGF0ZW1lbnRTdWJU aXRsZUNvbXBvbmVudCgNCj4gKyAgICAgICAgc2VsZiwgY3R4OiBWZnJTeW50YXhQYXJzZXIuVmZy U3RhdGVtZW50U3ViVGl0bGVDb21wb25lbnRDb250ZXh0DQo+ICsgICAgKToNCj4gKyAgICAgICAg c2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVudFF1 ZXN0aW9ucygpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0 ZW1lbnRRdWVzdGlvbnMoKS5Ob2RlDQo+ICsgICAgICAgIGVsaWYgY3R4LnZmclN0YXRlbWVudFN0 YXQoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyU3RhdGVtZW50 U3RhdCgpLk5vZGUNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+ICsNCj4gKyAgICAjIFZp c2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyU3VidGl0bGVG bGFncy4NCj4gKyAgICBkZWYgdmlzaXRWZnJTdWJ0aXRsZUZsYWdzKHNlbGYsIGN0eDogVmZyU3lu dGF4UGFyc2VyLlZmclN1YnRpdGxlRmxhZ3NDb250ZXh0KToNCj4gKyAgICAgICAgc2VsZi52aXNp dENoaWxkcmVuKGN0eCkNCj4gKw0KPiArICAgICAgICBmb3IgRmxhZ3NGaWVsZEN0eCBpbiBjdHgu c3VidGl0bGVGbGFnc0ZpZWxkKCk6DQo+ICsgICAgICAgICAgICBjdHguU3ViRmxhZ3MgfD0gRmxh Z3NGaWVsZEN0eC5GbGFnDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIE5vbmUNCj4gKw0KPiArICAg ICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNzdWJ0aXRs ZUZsYWdzRmllbGQuDQo+ICsgICAgZGVmIHZpc2l0U3VidGl0bGVGbGFnc0ZpZWxkKHNlbGYsIGN0 eDoNCj4gVmZyU3ludGF4UGFyc2VyLlN1YnRpdGxlRmxhZ3NGaWVsZENvbnRleHQpOg0KPiArICAg ICAgICBpZiBjdHguTnVtYmVyKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5GbGFnID0g c2VsZi5UcmFuc051bShjdHguTnVtYmVyKCkpDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAg ICAgICBjdHguRmxhZyA9IDB4MDENCj4gKw0KPiArICAgICAgICByZXR1cm4gc2VsZi52aXNpdENo aWxkcmVuKGN0eCkNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5 IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRTdGF0aWNUZXh0Lg0KPiArICAgIGRlZiB2aXNp dFZmclN0YXRlbWVudFN0YXRpY1RleHQoc2VsZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIuVmZy U3RhdGVtZW50U3RhdGljVGV4dENvbnRleHQpOg0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRy ZW4oY3R4KQ0KPiArDQo+ICsgICAgICAgIFFJZCA9IEVGSV9RVUVTVElPTl9JRF9JTlZBTElEDQo+ ICsgICAgICAgIEhlbHAgPSBzZWxmLlRyYW5zTnVtKGN0eC5TMS50ZXh0KQ0KPiArICAgICAgICBQ cm9tcHQgPSBzZWxmLlRyYW5zTnVtKGN0eC5TMi50ZXh0KQ0KPiArICAgICAgICBUeHRUd28gPSBF RklfU1RSSU5HX0lEX0lOVkFMSUQNCj4gKyAgICAgICAgaWYgY3R4LlMzICE9IE5vbmU6DQo+ICsg ICAgICAgICAgICBUeHRUd28gPSBzZWxmLlRyYW5zTnVtKGN0eC5TMy50ZXh0KQ0KPiArDQo+ICsg ICAgICAgIFRleHRGbGFncyA9IDANCj4gKyAgICAgICAgRmxhZ3NTdHJlYW0gPSAiIg0KPiArICAg ICAgICBmb3IgaSBpbiByYW5nZSgwLCBsZW4oY3R4LnN0YXRpY1RleHRGbGFnc0ZpZWxkKCkpKToN Cj4gKyAgICAgICAgICAgIFRleHRGbGFncyB8PSBjdHguc3RhdGljVGV4dEZsYWdzRmllbGQoaSku RmxhZw0KPiArICAgICAgICAgICAgRmxhZ3NTdHJlYW0gKz0gc2VsZi5FeHRyYWN0T3JpZ2luYWxU ZXh0KGN0eC5zdGF0aWNUZXh0RmxhZ3NGaWVsZChpKSkNCj4gKyAgICAgICAgICAgIGlmIGkgIT0g bGVuKGN0eC5zdGF0aWNUZXh0RmxhZ3NGaWVsZCgpKSAtIDE6DQo+ICsgICAgICAgICAgICAgICAg RmxhZ3NTdHJlYW0gKz0gIiB8ICINCj4gKw0KPiArICAgICAgICBpZiBUZXh0RmxhZ3MgJiBFRklf SUZSX0ZMQUdfQ0FMTEJBQ0s6DQo+ICsgICAgICAgICAgICBpZiBUeHRUd28gIT0gRUZJX1NUUklO R19JRF9JTlZBTElEOg0KPiArICAgICAgICAgICAgICAgIGdWZnJFcnJvckhhbmRsZS5IYW5kbGVX YXJuaW5nKA0KPiArDQo+IEVGSV9WRlJfV0FSTklOR19DT0RFLlZGUl9XQVJOSU5HX0FDVElPTl9X SVRIX1RFWFRfVFdPLA0KPiBjdHguUzMubGluZSwgY3R4LlMzLnRleHQNCj4gKyAgICAgICAgICAg ICAgICApDQo+ICsNCj4gKyAgICAgICAgICAgIEFPYmogPSBJZnJBY3Rpb24oKQ0KPiArICAgICAg ICAgICAgUUlkLCBfID0gc2VsZi5WZnJRdWVzdGlvbkRCLlJlZ2lzdGVyUXVlc3Rpb24oTm9uZSwg Tm9uZSwgUUlkLA0KPiBnRm9ybVBrZykNCj4gKyAgICAgICAgICAgIEFPYmouU2V0TGluZU5vKGN0 eC5GLmxpbmUpDQo+ICsgICAgICAgICAgICBBT2JqLlNldFF1ZXN0aW9uSWQoUUlkKQ0KPiArICAg ICAgICAgICAgQU9iai5TZXRIZWxwKEhlbHApDQo+ICsgICAgICAgICAgICBBT2JqLlNldFByb21w dChQcm9tcHQpDQo+ICsgICAgICAgICAgICBBT2JqLlNldEZsYWdzU3RyZWFtKEZsYWdzU3RyZWFt KQ0KPiArICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoQU9iai5TZXRGbGFncyhUZXh0Rmxh Z3MpLCBjdHguRi5saW5lKQ0KPiArICAgICAgICAgICAgaWYgY3R4LktleSgpICE9IE5vbmU6DQo+ ICsgICAgICAgICAgICAgICAgQU9iai5TZXRIYXNLZXkoVHJ1ZSkNCj4gKyAgICAgICAgICAgICAg ICBLZXkgPSBzZWxmLlRyYW5zTnVtKGN0eC5TNC50ZXh0KQ0KPiArICAgICAgICAgICAgICAgIHNl bGYuQXNzaWduUXVlc3Rpb25LZXkoQU9iaiwgS2V5KQ0KPiArICAgICAgICAgICAgY3R4Lk5vZGUu RGF0YSA9IEFPYmoNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlLk9wQ29kZSA9IEVGSV9JRlJfVEVY VF9PUCAgIw0KPiArICAgICAgICAgICAgY3R4Lk5vZGUuQnVmZmVyID0gZ0Zvcm1Qa2cuU3RydWN0 VG9TdHJlYW0oQU9iai5HZXRJbmZvKCkpDQo+ICsgICAgICAgICAgICBzZWxmLkluc2VydEVuZE5v ZGUoY3R4Lk5vZGUsIGN0eC5zdG9wLmxpbmUpDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAg ICAgICBUT2JqID0gSWZyVGV4dCgpDQo+ICsgICAgICAgICAgICBMaW5lID0gY3R4LnN0YXJ0Lmxp bmUNCj4gKyAgICAgICAgICAgIFRPYmouU2V0TGluZU5vKExpbmUpDQo+ICsgICAgICAgICAgICBU T2JqLlNldEhlbHAoSGVscCkNCj4gKyAgICAgICAgICAgIFRPYmouU2V0UHJvbXB0KFByb21wdCkN Cj4gKyAgICAgICAgICAgIGlmIFR4dFR3byAhPSBFRklfU1RSSU5HX0lEX0lOVkFMSUQ6DQo+ICsg ICAgICAgICAgICAgICAgVE9iai5TZXRUZXh0VHdvKFR4dFR3bykNCj4gKyAgICAgICAgICAgICAg ICBUT2JqLlNldEhhc1RleHRUd28oVHJ1ZSkNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlLkRhdGEg PSBUT2JqDQo+ICsgICAgICAgICAgICBjdHguTm9kZS5CdWZmZXIgPSBnRm9ybVBrZy5TdHJ1Y3RU b1N0cmVhbShUT2JqLkdldEluZm8oKSkNCj4gKw0KPiArICAgICAgICByZXR1cm4gY3R4Lk5vZGUN Cj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBh cnNlciNzdGF0aWNUZXh0RmxhZ3NGaWVsZC4NCj4gKyAgICBkZWYgdmlzaXRTdGF0aWNUZXh0Rmxh Z3NGaWVsZChzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5TdGF0aWNUZXh0RmxhZ3NGaWVs ZENvbnRleHQpOg0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ICsg ICAgICAgIGlmIGN0eC5OdW1iZXIoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4LkZsYWcg PSBzZWxmLlRyYW5zTnVtKGN0eC5OLnRleHQpDQo+ICsgICAgICAgICAgICBpZiBjdHguRmxhZyAh PSAwOg0KPiArICAgICAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKFZmclJldHVybkNvZGUu VkZSX1JFVFVSTl9VTlNVUFBPUlRFRCwNCj4gY3R4Lk4ubGluZSkNCj4gKyAgICAgICAgZWxzZToN Cj4gKyAgICAgICAgICAgIGN0eC5GbGFnID0gY3R4LnF1ZXN0aW9uaGVhZGVyRmxhZ3NGaWVsZCgp LlFIRmxhZw0KPiArDQo+ICsgICAgICAgIHJldHVybiBjdHguRmxhZw0KPiArDQo+ICsgICAgIyBW aXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRl bWVudENyb3NzUmVmZXJlbmNlLg0KPiArICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudENyb3NzUmVm ZXJlbmNlKA0KPiArICAgICAgICBzZWxmLCBjdHg6IFZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1l bnRDcm9zc1JlZmVyZW5jZUNvbnRleHQNCj4gKyAgICApOg0KPiArICAgICAgICBzZWxmLnZpc2l0 Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAgICBpZiBjdHgudmZyU3RhdGVtZW50R290bygpICE9IE5v bmU6DQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRHb3RvKCkuTm9k ZQ0KPiArICAgICAgICBlbGlmIGN0eC52ZnJTdGF0ZW1lbnRSZXNldEJ1dHRvbigpICE9IE5vbmU6 DQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRSZXNldEJ1dHRvbigp Lk5vZGUNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEg cGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVtZW50R290by4N Cj4gKyAgICBkZWYgdmlzaXRWZnJTdGF0ZW1lbnRHb3RvKHNlbGYsIGN0eDoNCj4gVmZyU3ludGF4 UGFyc2VyLlZmclN0YXRlbWVudEdvdG9Db250ZXh0KToNCj4gKyAgICAgICAgUmVmVHlwZSA9IDUN Cj4gKyAgICAgICAgRGV2UGF0aCA9IEVGSV9TVFJJTkdfSURfSU5WQUxJRA0KPiArICAgICAgICBR SWQgPSBFRklfUVVFU1RJT05fSURfSU5WQUxJRA0KPiArICAgICAgICBCaXRNYXNrID0gMA0KPiAr ICAgICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gKyAgICAgICAgUjVPYmogPSBJZnJSZWY1 KCkNCj4gKyAgICAgICAgUjVPYmouU2V0TGluZU5vKExpbmUpDQo+ICsgICAgICAgIEdPYmogPSBS NU9iag0KPiArDQo+ICsgICAgICAgIGlmIGN0eC5EZXZpY2VQYXRoKCkgIT0gTm9uZToNCj4gKyAg ICAgICAgICAgIFJlZlR5cGUgPSA0DQo+ICsgICAgICAgICAgICBEZXZQYXRoID0gc2VsZi5UcmFu c051bShjdHguTnVtYmVyKDApKQ0KPiArICAgICAgICAgICAgRklkID0gc2VsZi5UcmFuc051bShj dHguTnVtYmVyKDEpKQ0KPiArICAgICAgICAgICAgUUlkID0gc2VsZi5UcmFuc051bShjdHguTnVt YmVyKDIpKQ0KPiArICAgICAgICAgICAgUjRPYmogPSBJZnJSZWY0KCkNCj4gKyAgICAgICAgICAg IFI0T2JqLlNldExpbmVObyhMaW5lKQ0KPiArICAgICAgICAgICAgUjRPYmouU2V0RGV2aWNlUGF0 aChEZXZQYXRoKQ0KPiArICAgICAgICAgICAgUjRPYmouU2V0Rm9ybUlkKEZJZCkNCj4gKyAgICAg ICAgICAgIFI0T2JqLlNldFFJZChRSWQpDQo+ICsgICAgICAgICAgICBHT2JqID0gUjRPYmoNCj4g Kw0KPiArICAgICAgICBlbGlmIGN0eC5Gb3JtU2V0R3VpZCgpICE9IE5vbmU6DQo+ICsgICAgICAg ICAgICBSZWZUeXBlID0gMw0KPiArICAgICAgICAgICAgRklkID0gc2VsZi5UcmFuc051bShjdHgu TnVtYmVyKDApKQ0KPiArICAgICAgICAgICAgUUlkID0gc2VsZi5UcmFuc051bShjdHguTnVtYmVy KDEpKQ0KPiArICAgICAgICAgICAgUjNPYmogPSBJZnJSZWYzKCkNCj4gKyAgICAgICAgICAgIFIz T2JqLlNldExpbmVObyhMaW5lKQ0KPiArICAgICAgICAgICAgUjNPYmouU2V0Rm9ybUlkKEZJZCkN Cj4gKyAgICAgICAgICAgIFIzT2JqLlNldFFJZChRSWQpDQo+ICsgICAgICAgICAgICBHT2JqID0g UjNPYmoNCj4gKw0KPiArICAgICAgICBlbGlmIGN0eC5RdWVzdGlvbigpICE9IE5vbmU6DQo+ICsg ICAgICAgICAgICBGSWQgPSBzZWxmLlRyYW5zTnVtKGN0eC5OdW1iZXIoMCkpDQo+ICsgICAgICAg ICAgICBSZWZUeXBlID0gMg0KPiArICAgICAgICAgICAgaWYgY3R4LlFOICE9IE5vbmU6DQo+ICsg ICAgICAgICAgICAgICAgTmFtZSA9IGN0eC5RTi50ZXh0DQo+ICsgICAgICAgICAgICAgICAgUUlk LCBCaXRNYXNrLCBfID0gc2VsZi5WZnJRdWVzdGlvbkRCLkdldFF1ZXN0aW9uSWQoTmFtZSkNCj4g KyAgICAgICAgICAgICAgICBpZiBRSWQgPT0gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQ6DQo+ICsg ICAgICAgICAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKFZmclJldHVybkNvZGUuVkZSX1JF VFVSTl9VTkRFRklORUQsDQo+IGN0eC5RTi5saW5lKQ0KPiArICAgICAgICAgICAgZWxzZToNCj4g KyAgICAgICAgICAgICAgICBRSWQgPSBzZWxmLlRyYW5zTnVtKGN0eC5OdW1iZXIoMSkpDQo+ICsg ICAgICAgICAgICBSMk9iaiA9IElmclJlZjIoKQ0KPiArICAgICAgICAgICAgUjJPYmouU2V0TGlu ZU5vKExpbmUpDQo+ICsgICAgICAgICAgICBSMk9iai5TZXRGb3JtSWQoRklkKQ0KPiArICAgICAg ICAgICAgUjJPYmouU2V0UUlkKFFJZCkNCj4gKyAgICAgICAgICAgIEdPYmogPSBSMk9iag0KPiAr DQo+ICsgICAgICAgIGVsaWYgY3R4Lk4gIT0gTm9uZToNCj4gKyAgICAgICAgICAgIFJlZlR5cGUg PSAxDQo+ICsgICAgICAgICAgICBGSWQgPSBzZWxmLlRyYW5zTnVtKGN0eC5OdW1iZXIoMCkpDQo+ ICsgICAgICAgICAgICBST2JqID0gSWZyUmVmKCkNCj4gKyAgICAgICAgICAgIFJPYmouU2V0TGlu ZU5vKExpbmUpDQo+ICsgICAgICAgICAgICBST2JqLlNldEZvcm1JZChGSWQpDQo+ICsgICAgICAg ICAgICBHT2JqID0gUk9iag0KPiArDQo+ICsgICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBHT2JqDQo+ ICsNCj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKw0KPiArICAgICAgICBp ZiBzZWxmLkN1cnJRZXN0VmFySW5mby5WYXJUeXBlID09IEVGSV9JRlJfVFlQRV9PVEhFUjoNCj4g KyAgICAgICAgICAgIHNlbGYuQ3VyclFlc3RWYXJJbmZvLlZhclR5cGUgPT0gRUZJX0lGUl9UWVBF X1JFRg0KPiArDQo+ICsgICAgICAgIGlmIFJlZlR5cGUgPT0gNCBvciBSZWZUeXBlID09IDM6DQo+ ICsgICAgICAgICAgICBHT2JqLlNldEZvcm1TZXRJZChjdHguZ3VpZERlZmluaXRpb24oKS5HdWlk KQ0KPiArDQo+ICsgICAgICAgIGlmIGN0eC5GTEFHUygpICE9IE5vbmU6DQo+ICsgICAgICAgICAg ICBHT2JqLlNldEZsYWdzKGN0eC52ZnJHb3RvRmxhZ3MoKS5Hb3RvRmxhZ3MpDQo+ICsNCj4gKyAg ICAgICAgaWYgY3R4LktleSgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBpbmRleCA9IGludChs ZW4oY3R4Lk51bWJlcigpKSkgLSAxDQo+ICsgICAgICAgICAgICBLZXkgPSBzZWxmLlRyYW5zTnVt KGN0eC5OdW1iZXIoaW5kZXgpKQ0KPiArICAgICAgICAgICAgc2VsZi5Bc3NpZ25RdWVzdGlvbktl eShHT2JqLCBLZXkpDQo+ICsgICAgICAgICAgICBHT2JqLlNldEhhc0tleShUcnVlKQ0KPiArDQo+ ICsgICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnRRdWVzdGlvbk9wdGlvbkxpc3QoKSAhPSBOb25l Og0KPiArICAgICAgICAgICAgR09iai5TZXRTY29wZSgxKQ0KPiArICAgICAgICAgICAgc2VsZi5J bnNlcnRFbmROb2RlKGN0eC5Ob2RlLCBjdHguRS5saW5lKQ0KPiArICAgICAgICBjdHguTm9kZS5C dWZmZXIgPSBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShHT2JqLkdldEluZm8oKSkNCj4gKyAgICAg ICAgcmV0dXJuIGN0eC5Ob2RlDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9k dWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyR290b0ZsYWdzLg0KPiArICAgIGRlZiB2aXNpdFZm ckdvdG9GbGFncyhzZWxmLCBjdHg6IFZmclN5bnRheFBhcnNlci5WZnJHb3RvRmxhZ3NDb250ZXh0 KToNCj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgZm9yIEZs YWdzRmllbGRDdHggaW4gY3R4LmdvdG9GbGFnc0ZpZWxkKCk6DQo+ICsgICAgICAgICAgICBjdHgu R290b0ZsYWdzIHw9IEZsYWdzRmllbGRDdHguRmxhZw0KPiArDQo+ICsgICAgICAgIHJldHVybiBj dHguR290b0ZsYWdzDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBi eSBWZnJTeW50YXhQYXJzZXIjZ290b0ZsYWdzRmllbGQuDQo+ICsgICAgZGVmIHZpc2l0R290b0Zs YWdzRmllbGQoc2VsZiwgY3R4OiBWZnJTeW50YXhQYXJzZXIuR290b0ZsYWdzRmllbGRDb250ZXh0 KToNCj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKw0KPiArICAgICAgICBp ZiBjdHguTiAhPSBOb25lOg0KPiArICAgICAgICAgICAgaWYgc2VsZi5UcmFuc051bShjdHguTi50 ZXh0KSAhPSAwOg0KPiArICAgICAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKFZmclJldHVy bkNvZGUuVkZSX1JFVFVSTl9VTlNVUFBPUlRFRCwNCj4gY3R4Lk4ubGluZSkNCj4gKyAgICAgICAg ZWxzZToNCj4gKyAgICAgICAgICAgIGN0eC5GbGFnID0gY3R4LnF1ZXN0aW9uaGVhZGVyRmxhZ3NG aWVsZCgpLlFIRmxhZw0KPiArDQo+ICsgICAgICAgIHJldHVybiBjdHguRmxhZw0KPiArDQo+ICsg ICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3ludGF4UGFyc2VyI3Zm clN0YXRlbWVudFJlc2V0QnV0dG9uLg0KPiArICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudFJlc2V0 QnV0dG9uKHNlbGYsIGN0eDoNCj4gVmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudFJlc2V0QnV0 dG9uQ29udGV4dCk6DQo+ICsgICAgICAgIERlZmF1bHRzdG9yZSA9IGN0eC5OLnRleHQNCj4gKyAg ICAgICAgUkJPYmogPSBJZnJSZXNldEJ1dHRvbihEZWZhdWx0c3RvcmUpDQo+ICsgICAgICAgIGN0 eC5Ob2RlLkRhdGEgPSBSQk9iag0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0K PiArICAgICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gKyAgICAgICAgUkJPYmouU2V0TGlu ZU5vKExpbmUpDQo+ICsgICAgICAgIERlZmF1bHRJZCwgUmV0dXJuQ29kZSA9IGdWZnJEZWZhdWx0 U3RvcmUuR2V0RGVmYXVsdElkKERlZmF1bHRzdG9yZSkNCj4gKyAgICAgICAgc2VsZi5FcnJvckhh bmRsZXIoUmV0dXJuQ29kZSwgY3R4Lk4ubGluZSkNCj4gKyAgICAgICAgUkJPYmouU2V0RGVmYXVs dElkKERlZmF1bHRJZCkNCj4gKw0KPiArICAgICAgICBjdHguTm9kZS5CdWZmZXIgPSBnRm9ybVBr Zy5TdHJ1Y3RUb1N0cmVhbShSQk9iai5HZXRJbmZvKCkpDQo+ICsgICAgICAgIHNlbGYuSW5zZXJ0 RW5kTm9kZShjdHguTm9kZSwgY3R4LnN0b3AubGluZSkNCj4gKw0KPiArICAgICAgICByZXR1cm4g Y3R4Lk5vZGUNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZm clN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRRdWVzdGlvbnMuDQo+ICsgICAgZGVmIHZpc2l0VmZy U3RhdGVtZW50UXVlc3Rpb25zKHNlbGYsIGN0eDoNCj4gVmZyU3ludGF4UGFyc2VyLlZmclN0YXRl bWVudFF1ZXN0aW9uc0NvbnRleHQpOg0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4 KQ0KPiArICAgICAgICBpZiBjdHgudmZyU3RhdGVtZW50Qm9vbGVhblR5cGUoKSAhPSBOb25lOg0K PiArICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyU3RhdGVtZW50Qm9vbGVhblR5cGUoKS5O b2RlDQo+ICsgICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnREYXRlKCkgIT0gTm9uZToNCj4gKyAg ICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudERhdGUoKS5Ob2RlDQo+ICsgICAg ICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnROdW1lcmljVHlwZSgpICE9IE5vbmU6DQo+ICsgICAgICAg ICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnROdW1lcmljVHlwZSgpLk5vZGUNCj4gKyAg ICAgICAgaWYgY3R4LnZmclN0YXRlbWVudFN0cmluZ1R5cGUoKSAhPSBOb25lOg0KPiArICAgICAg ICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyU3RhdGVtZW50U3RyaW5nVHlwZSgpLk5vZGUNCj4gKyAg ICAgICAgaWYgY3R4LnZmclN0YXRlbWVudE9yZGVyZWRMaXN0KCkgIT0gTm9uZToNCj4gKyAgICAg ICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudE9yZGVyZWRMaXN0KCkuTm9kZQ0KPiAr ICAgICAgICBpZiBjdHgudmZyU3RhdGVtZW50VGltZSgpICE9IE5vbmU6DQo+ICsgICAgICAgICAg ICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRUaW1lKCkuTm9kZQ0KPiArDQo+ICsgICAgICAg IHJldHVybiBjdHguTm9kZQ0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVj ZWQgYnkNCj4gVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudFF1ZXN0aW9uVGFnLg0KPiArICAg IGRlZiB2aXNpdFZmclN0YXRlbWVudFF1ZXN0aW9uVGFnKHNlbGYsIGN0eDoNCj4gVmZyU3ludGF4 UGFyc2VyLlZmclN0YXRlbWVudFF1ZXN0aW9uVGFnQ29udGV4dCk6DQo+ICsgICAgICAgIHNlbGYu dmlzaXRDaGlsZHJlbihjdHgpDQo+ICsgICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnRTdGF0VGFn KCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudFN0 YXRUYWcoKS5Ob2RlDQo+ICsgICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnRJbmNvbnNpc3RlbnRJ ZigpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRJ bmNvbnNpc3RlbnRJZigpLk5vZGUNCj4gKyAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVudE5vU3Vi bWl0SWYoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyU3RhdGVt ZW50Tm9TdWJtaXRJZigpLk5vZGUNCj4gKyAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVudERpc2Fi bGVJZlF1ZXN0KCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0 YXRlbWVudERpc2FibGVJZlF1ZXN0KCkuTm9kZQ0KPiArICAgICAgICBpZiBjdHgudmZyU3RhdGVt ZW50UmVmcmVzaCgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJT dGF0ZW1lbnRSZWZyZXNoKCkuTm9kZQ0KPiArICAgICAgICBpZiBjdHgudmZyU3RhdGVtZW50VmFy c3RvcmVEZXZpY2UoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZy U3RhdGVtZW50VmFyc3RvcmVEZXZpY2UoKS5Ob2RlDQo+ICsgICAgICAgIGlmIGN0eC52ZnJTdGF0 ZW1lbnRFeHRlbnNpb24oKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgu dmZyU3RhdGVtZW50RXh0ZW5zaW9uKCkuTm9kZQ0KPiArICAgICAgICBpZiBjdHgudmZyU3RhdGVt ZW50UmVmcmVzaEV2ZW50KCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4 LnZmclN0YXRlbWVudFJlZnJlc2hFdmVudCgpLk5vZGUNCj4gKyAgICAgICAgaWYgY3R4LnZmclN0 YXRlbWVudFdhcm5pbmdJZigpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IGN0 eC52ZnJTdGF0ZW1lbnRXYXJuaW5nSWYoKS5Ob2RlDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIGN0 eC5Ob2RlDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieQ0KPiBW ZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVtZW50SW5jb25zaXN0ZW50SWYuDQo+ICsgICAgZGVmIHZp c2l0VmZyU3RhdGVtZW50SW5jb25zaXN0ZW50SWYoDQo+ICsgICAgICAgIHNlbGYsIGN0eDogVmZy U3ludGF4UGFyc2VyLlZmclN0YXRlbWVudEluY29uc2lzdGVudElmQ29udGV4dA0KPiArICAgICk6 DQo+ICsgICAgICAgIElJT2JqID0gSWZySW5jb25zaXN0ZW50SWYyKCkNCj4gKyAgICAgICAgc2Vs Zi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKw0KPiArICAgICAgICBJSU9iai5TZXRMaW5lTm8oY3R4 LnN0YXJ0LmxpbmUpDQo+ICsgICAgICAgIElJT2JqLlNldEVycm9yKHNlbGYuVHJhbnNOdW0oY3R4 Lk51bWJlcigpKSkNCj4gKw0KPiArICAgICAgICBpZiBjdHguRkxBR1MoKSAhPSBOb25lOg0KPiAr ICAgICAgICAgICAgRmxhZ3MgPSAiIg0KPiArICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwg bGVuKGN0eC5mbGFnc0ZpZWxkKCkpKToNCj4gKyAgICAgICAgICAgICAgICBGbGFncyArPSBzZWxm LkV4dHJhY3RPcmlnaW5hbFRleHQoY3R4LmZsYWdzRmllbGQoaSkpDQo+ICsgICAgICAgICAgICAg ICAgaWYgaSAhPSBsZW4oY3R4LmZsYWdzRmllbGQoKSkgLSAxOg0KPiArICAgICAgICAgICAgICAg ICAgICBGbGFncyArPSAiIHwgIg0KPiArICAgICAgICAgICAgSUlPYmouU2V0RmxhZ3NTdHJlYW0o RmxhZ3MpDQo+ICsNCj4gKyAgICAgICAgY3R4Lk5vZGUuRGF0YSA9IElJT2JqDQo+ICsgICAgICAg IGN0eC5Ob2RlLkJ1ZmZlciA9IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFtKElJT2JqLkdldEluZm8o KSkNCj4gKyAgICAgICAgY3R4Lk5vZGUuQ29uZGl0aW9uID0gKA0KPiArICAgICAgICAgICAgImlu Y29uc2lzdGVudGlmIiArICIgIiArDQo+IHNlbGYuRXh0cmFjdE9yaWdpbmFsVGV4dChjdHgudmZy U3RhdGVtZW50RXhwcmVzc2lvbigpKQ0KPiArICAgICAgICApDQo+ICsgICAgICAgIGN0eC5Ob2Rl LkV4cHJlc3Npb24gPQ0KPiBzZWxmLkV4dHJhY3RPcmlnaW5hbFRleHQoY3R4LnZmclN0YXRlbWVu dEV4cHJlc3Npb24oKSkNCj4gKyAgICAgICAgc2VsZi5JbnNlcnRFbmROb2RlKGN0eC5Ob2RlLCBj dHguc3RvcC5saW5lKQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiArDQo+ICsg ICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmclN0 YXRlbWVudE5vU3VibWl0SWYuDQo+ICsgICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50Tm9TdWJtaXRJ ZihzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnROb1N1Ym1pdElmQ29u dGV4dCk6DQo+ICsgICAgICAgIE5TSU9iaiA9IElmck5vU3VibWl0SWYoKQ0KPiArICAgICAgICBz ZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ICsgICAgICAgIE5TSU9iai5TZXRMaW5lTm8o Y3R4LnN0YXJ0LmxpbmUpDQo+ICsgICAgICAgIE5TSU9iai5TZXRFcnJvcihzZWxmLlRyYW5zTnVt KGN0eC5OdW1iZXIoKSkpDQo+ICsgICAgICAgIGlmIGN0eC5GTEFHUygpICE9IE5vbmU6DQo+ICsg ICAgICAgICAgICBGbGFncyA9ICIiDQo+ICsgICAgICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCBs ZW4oY3R4LmZsYWdzRmllbGQoKSkpOg0KPiArICAgICAgICAgICAgICAgIEZsYWdzICs9IHNlbGYu RXh0cmFjdE9yaWdpbmFsVGV4dChjdHguZmxhZ3NGaWVsZChpKSkNCj4gKyAgICAgICAgICAgICAg ICBpZiBpICE9IGxlbihjdHguZmxhZ3NGaWVsZCgpKSAtIDE6DQo+ICsgICAgICAgICAgICAgICAg ICAgIEZsYWdzICs9ICIgfCAiDQo+ICsgICAgICAgICAgICBOU0lPYmouU2V0RmxhZ3NTdHJlYW0o RmxhZ3MpDQo+ICsNCj4gKyAgICAgICAgY3R4Lk5vZGUuRGF0YSA9IE5TSU9iag0KPiArICAgICAg ICBjdHguTm9kZS5CdWZmZXIgPSBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShOU0lPYmouR2V0SW5m bygpKQ0KPiArICAgICAgICBjdHguTm9kZS5FeHByZXNzaW9uID0NCj4gc2VsZi5FeHRyYWN0T3Jp Z2luYWxUZXh0KGN0eC52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uKCkpDQo+ICsgICAgICAgIHNlbGYu SW5zZXJ0RW5kTm9kZShjdHguTm9kZSwgY3R4LnN0b3AubGluZSkNCj4gKw0KPiArICAgICAgICBy ZXR1cm4gY3R4Lk5vZGUNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2Vk IGJ5DQo+IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnREaXNhYmxlSWZRdWVzdC4NCj4gKyAg ICBkZWYgdmlzaXRWZnJTdGF0ZW1lbnREaXNhYmxlSWZRdWVzdCgNCj4gKyAgICAgICAgc2VsZiwg Y3R4OiBWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50RGlzYWJsZUlmUXVlc3RDb250ZXh0DQo+ ICsgICAgKToNCj4gKyAgICAgICAgRElPYmogPSBJZnJEaXNhYmxlSWYoKQ0KPiArICAgICAgICBz ZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ICsgICAgICAgIERJT2JqLlNldExpbmVObyhj dHguc3RhcnQubGluZSkNCj4gKyAgICAgICAgY3R4Lk5vZGUuRGF0YSA9IERJT2JqDQo+ICsgICAg ICAgIGN0eC5Ob2RlLkJ1ZmZlciA9IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFtKERJT2JqLkdldElu Zm8oKSkNCj4gKyAgICAgICAgY3R4Lk5vZGUuQ29uZGl0aW9uID0gKA0KPiArICAgICAgICAgICAg ImRpc2FibGVpZiIgKyAiICIgKw0KPiBzZWxmLkV4dHJhY3RPcmlnaW5hbFRleHQoY3R4LnZmclN0 YXRlbWVudEV4cHJlc3Npb24oKSkNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICBjdHguTm9kZS5F eHByZXNzaW9uID0NCj4gc2VsZi5FeHRyYWN0T3JpZ2luYWxUZXh0KGN0eC52ZnJTdGF0ZW1lbnRF eHByZXNzaW9uKCkpDQo+ICsgICAgICAgIHNlbGYuSW5zZXJ0RW5kTm9kZShjdHguTm9kZSwgY3R4 LnN0b3AubGluZSkNCj4gKw0KPiArICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gKw0KPiArICAg ICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0 ZW1lbnRSZWZyZXNoLg0KPiArICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudFJlZnJlc2goc2VsZiwg Y3R4Og0KPiBWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50UmVmcmVzaENvbnRleHQpOg0KPiAr ICAgICAgICBST2JqID0gSWZyUmVmcmVzaCgpDQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJl bihjdHgpDQo+ICsNCj4gKyAgICAgICAgUk9iai5TZXRMaW5lTm8oY3R4LnN0YXJ0LmxpbmUpDQo+ ICsgICAgICAgIFJPYmouU2V0UmVmcmVzaEludGVydmFsKHNlbGYuVHJhbnNOdW0oY3R4Lk51bWJl cigpKSkNCj4gKyAgICAgICAgY3R4Lk5vZGUuRGF0YSA9IFJPYmoNCj4gKyAgICAgICAgY3R4Lk5v ZGUuQnVmZmVyID0gZ0Zvcm1Qa2cuU3RydWN0VG9TdHJlYW0oUk9iai5HZXRJbmZvKCkpDQo+ICsN Cj4gKyAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2Ug dHJlZSBwcm9kdWNlZCBieQ0KPiBWZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVtZW50VmFyc3RvcmVE ZXZpY2UuDQo+ICsgICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50VmFyc3RvcmVEZXZpY2UoDQo+ICsg ICAgICAgIHNlbGYsIGN0eDogVmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudFZhcnN0b3JlRGV2 aWNlQ29udGV4dA0KPiArICAgICk6DQo+ICsgICAgICAgIFZET2JqID0gSWZyVmFyU3RvcmVEZXZp Y2UoKQ0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ICsgICAgICAg IFZET2JqLlNldExpbmVObyhjdHguc3RhcnQubGluZSkNCj4gKyAgICAgICAgVkRPYmouU2V0RGV2 aWNlUGF0aChzZWxmLlRyYW5zTnVtKGN0eC5OdW1iZXIoKSkpDQo+ICsgICAgICAgIGN0eC5Ob2Rl LkRhdGEgPSBWRE9iag0KPiArICAgICAgICBjdHguTm9kZS5CdWZmZXIgPSBnRm9ybVBrZy5TdHJ1 Y3RUb1N0cmVhbShWRE9iai5HZXRJbmZvKCkpDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5O b2RlDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieQ0KPiBWZnJT eW50YXhQYXJzZXIjdmZyU3RhdGVtZW50UmVmcmVzaEV2ZW50Lg0KPiArICAgIGRlZiB2aXNpdFZm clN0YXRlbWVudFJlZnJlc2hFdmVudChzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5WZnJT dGF0ZW1lbnRSZWZyZXNoRXZlbnRDb250ZXh0KToNCj4gKyAgICAgICAgUmlPYmogPSBJZnJSZWZy ZXNoSWQoKQ0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ICsgICAg ICAgIFJpT2JqLlNldExpbmVObyhjdHguc3RhcnQubGluZSkNCj4gKyAgICAgICAgUmlPYmouU2V0 UmVmcmVzaEV2ZW50R3JvdXRJZChjdHguZ3VpZERlZmluaXRpb24oKS5HdWlkKQ0KPiArICAgICAg ICBjdHguTm9kZS5EYXRhID0gUmlPYmoNCj4gKyAgICAgICAgY3R4Lk5vZGUuQnVmZmVyID0gZ0Zv cm1Qa2cuU3RydWN0VG9TdHJlYW0oUmlPYmouR2V0SW5mbygpKQ0KPiArDQo+ICsgICAgICAgIHJl dHVybiBjdHguTm9kZQ0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQg YnkgVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudFdhcm5pbmdJZi4NCj4gKyAgICBkZWYgdmlz aXRWZnJTdGF0ZW1lbnRXYXJuaW5nSWYoc2VsZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIuVmZy U3RhdGVtZW50V2FybmluZ0lmQ29udGV4dCk6DQo+ICsgICAgICAgIFdJT2JqID0gSWZyV2Fybmlu Z0lmKCkNCj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKw0KPiArICAgICAg ICBXSU9iai5TZXRMaW5lTm8oY3R4LnN0YXJ0LmxpbmUpDQo+ICsgICAgICAgIFdJT2JqLlNldFdh cm5pbmcoc2VsZi5UcmFuc051bShjdHguTnVtYmVyKDApKSkNCj4gKyAgICAgICAgaWYgY3R4LlRp bWVvdXQoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgV0lPYmouU2V0VGltZU91dChzZWxmLlRy YW5zTnVtKGN0eC5OdW1iZXIoMSkpKQ0KPiArICAgICAgICAgICAgV0lPYmouU2V0SGFzSGFzVGlt ZU91dChUcnVlKQ0KPiArICAgICAgICBjdHguTm9kZS5EYXRhID0gV0lPYmoNCj4gKyAgICAgICAg Y3R4Lk5vZGUuQnVmZmVyID0gZ0Zvcm1Qa2cuU3RydWN0VG9TdHJlYW0oV0lPYmouR2V0SW5mbygp KQ0KPiArICAgICAgICBjdHguTm9kZS5FeHByZXNzaW9uID0NCj4gc2VsZi5FeHRyYWN0T3JpZ2lu YWxUZXh0KGN0eC52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uKCkpDQo+ICsgICAgICAgIHNlbGYuSW5z ZXJ0RW5kTm9kZShjdHguTm9kZSwgY3R4LnN0b3AubGluZSkNCj4gKyAgICAgICAgcmV0dXJuIGN0 eC5Ob2RlDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieQ0KPiBW ZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVtZW50UXVlc3Rpb25UYWdMaXN0Lg0KPiArICAgIGRlZiB2 aXNpdFZmclN0YXRlbWVudFF1ZXN0aW9uVGFnTGlzdCgNCj4gKyAgICAgICAgc2VsZiwgY3R4OiBW ZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50UXVlc3Rpb25UYWdMaXN0Q29udGV4dA0KPiArICAg ICk6DQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsgICAgICAgIGZvciBD dHggaW4gY3R4LnZmclN0YXRlbWVudFF1ZXN0aW9uVGFnKCk6DQo+ICsgICAgICAgICAgICBzZWxm Lkluc2VydENoaWxkKGN0eC5Ob2RlLCBDdHgpDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0K PiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3ludGF4 UGFyc2VyI3ZmclN0YXRlbWVudFF1ZXN0aW9uT3B0aW9uVGFnLg0KPiArICAgIGRlZiB2aXNpdFZm clN0YXRlbWVudFF1ZXN0aW9uT3B0aW9uVGFnKA0KPiArICAgICAgICBzZWxmLCBjdHg6IFZmclN5 bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRRdWVzdGlvbk9wdGlvblRhZ0NvbnRleHQNCj4gKyAgICAp Og0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAgICBpZiBjdHgu dmZyU3RhdGVtZW50U3VwcHJlc3NJZlF1ZXN0KCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0 eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudFN1cHByZXNzSWZRdWVzdCgpLk5vZGUNCj4gKw0KPiAr ICAgICAgICBpZiBjdHgudmZyU3RhdGVtZW50R3JheU91dElmUXVlc3QoKSAhPSBOb25lOg0KPiAr ICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyU3RhdGVtZW50R3JheU91dElmUXVlc3QoKS5O b2RlDQo+ICsNCj4gKyAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVudFZhbHVlKCkgIT0gTm9uZToN Cj4gKyAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudFZhbHVlKCkuTm9kZQ0K PiArDQo+ICsgICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnREZWZhdWx0KCkgIT0gTm9uZToNCj4g KyAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudERlZmF1bHQoKS5Ob2RlDQo+ ICsNCj4gKyAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVudE9wdGlvbnMoKSAhPSBOb25lOg0KPiAr ICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyU3RhdGVtZW50T3B0aW9ucygpLk5vZGUNCj4g Kw0KPiArICAgICAgICBpZiBjdHgudmZyU3RhdGVtZW50UmVhZCgpICE9IE5vbmU6DQo+ICsgICAg ICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRSZWFkKCkuTm9kZQ0KPiArDQo+ICsg ICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnRXcml0ZSgpICE9IE5vbmU6DQo+ICsgICAgICAgICAg ICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRXcml0ZSgpLk5vZGUNCj4gKw0KPiArICAgICAg ICByZXR1cm4gY3R4Lk5vZGUNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1 Y2VkIGJ5DQo+IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRTdXBwcmVzc0lmUXVlc3QuDQo+ ICsgICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50U3VwcHJlc3NJZlF1ZXN0KA0KPiArICAgICAgICBz ZWxmLCBjdHg6IFZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRTdXBwcmVzc0lmUXVlc3RDb250 ZXh0DQo+ICsgICAgKToNCj4gKyAgICAgICAgU0lPYmogPSBJZnJTdXBwcmVzc0lmKCkNCj4gKyAg ICAgICAgU0lPYmouU2V0TGluZU5vKGN0eC5zdGFydC5saW5lKQ0KPiArICAgICAgICBjdHguTm9k ZS5EYXRhID0gU0lPYmoNCj4gKyAgICAgICAgY3R4Lk5vZGUuQ29uZGl0aW9uID0gKA0KPiArICAg ICAgICAgICAgInN1cHByZXNzaWYiICsgIiAiICsNCj4gc2VsZi5FeHRyYWN0T3JpZ2luYWxUZXh0 KGN0eC52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uKCkpDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAg Y3R4Lk5vZGUuRXhwcmVzc2lvbiA9DQo+IHNlbGYuRXh0cmFjdE9yaWdpbmFsVGV4dChjdHgudmZy U3RhdGVtZW50RXhwcmVzc2lvbigpKQ0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4 KQ0KPiArICAgICAgICBjdHguTm9kZS5CdWZmZXIgPSBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShT SU9iai5HZXRJbmZvKCkpDQo+ICsgICAgICAgIHNlbGYuSW5zZXJ0RW5kTm9kZShjdHguTm9kZSwg Y3R4LnN0b3AubGluZSkNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+ICsNCj4gKyAgICAj IFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieQ0KPiBWZnJTeW50YXhQYXJzZXIjdmZyU3Rh dGVtZW50R3JheU91dElmUXVlc3QuDQo+ICsgICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50R3JheU91 dElmUXVlc3QoDQo+ICsgICAgICAgIHNlbGYsIGN0eDogVmZyU3ludGF4UGFyc2VyLlZmclN0YXRl bWVudEdyYXlPdXRJZlF1ZXN0Q29udGV4dA0KPiArICAgICk6DQo+ICsgICAgICAgIEdPSU9iaiA9 IElmckdyYXlPdXRJZigpDQo+ICsgICAgICAgIEdPSU9iai5TZXRMaW5lTm8oY3R4LnN0YXJ0Lmxp bmUpDQo+ICsgICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBHT0lPYmoNCj4gKyAgICAgICAgY3R4Lk5v ZGUuQ29uZGl0aW9uID0gKA0KPiArICAgICAgICAgICAgImdyYXlvdXRpZiIgKyAiICIgKw0KPiBz ZWxmLkV4dHJhY3RPcmlnaW5hbFRleHQoY3R4LnZmclN0YXRlbWVudEV4cHJlc3Npb24oKSkNCj4g KyAgICAgICAgKQ0KPiArICAgICAgICBjdHguTm9kZS5FeHByZXNzaW9uID0NCj4gc2VsZi5FeHRy YWN0T3JpZ2luYWxUZXh0KGN0eC52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uKCkpDQo+ICsgICAgICAg IHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsgICAgICAgIGN0eC5Ob2RlLkJ1ZmZlciA9IGdG b3JtUGtnLlN0cnVjdFRvU3RyZWFtKEdPSU9iai5HZXRJbmZvKCkpDQo+ICsgICAgICAgIHNlbGYu SW5zZXJ0RW5kTm9kZShjdHguTm9kZSwgY3R4LnN0b3AubGluZSkNCj4gKyAgICAgICAgcmV0dXJu IGN0eC5Ob2RlDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBW ZnJTeW50YXhQYXJzZXIjZmxhZ3NGaWVsZC4NCj4gKyAgICBkZWYgdmlzaXRGbGFnc0ZpZWxkKHNl bGYsIGN0eDogVmZyU3ludGF4UGFyc2VyLkZsYWdzRmllbGRDb250ZXh0KToNCj4gKyAgICAgICAg aWYgY3R4Lk4gIT0gTm9uZToNCj4gKyAgICAgICAgICAgIFZmckVycm9ySGFuZGxlLkhhbmRsZVdh cm5pbmcoDQo+ICsNCj4gRUZJX1ZGUl9XQVJOSU5HX0NPREUuVkZSX1dBUk5JTkdfT0JTT0xFVEVE X0ZSQU1FV09SS19PUENPDQo+IERFLCBjdHguTi5saW5lLCBjdHguTi50ZXh0DQo+ICsgICAgICAg ICAgICApDQo+ICsgICAgICAgIGlmIGN0eC5MICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBWZnJF cnJvckhhbmRsZS5IYW5kbGVXYXJuaW5nKA0KPiArDQo+IEVGSV9WRlJfV0FSTklOR19DT0RFLlZG Ul9XQVJOSU5HX09CU09MRVRFRF9GUkFNRVdPUktfT1BDTw0KPiBERSwgY3R4LkwubGluZSwgY3R4 LkwudGV4dA0KPiArICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBzZWxmLnZp c2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVj ZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudERlZmF1bHQuDQo+ICsgICAgZGVmIHZp c2l0VmZyU3RhdGVtZW50RGVmYXVsdChzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5WZnJT dGF0ZW1lbnREZWZhdWx0Q29udGV4dCk6DQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihj dHgpDQo+ICsgICAgICAgIElzRXhwID0gRmFsc2UNCj4gKyAgICAgICAgRGVmYXVsdElkID0gRUZJ X0hJSV9ERUZBVUxUX0NMQVNTX1NUQU5EQVJEDQo+ICsgICAgICAgIExpbmUgPSBjdHguc3RhcnQu bGluZQ0KPiArDQo+ICsgICAgICAgIGlmIGN0eC52ZnJDb25zdGFudFZhbHVlRmllbGQoKSAhPSBO b25lOg0KPiArICAgICAgICAgICAgVmFsdWVMaXN0ID0gY3R4LnZmckNvbnN0YW50VmFsdWVGaWVs ZCgpLlZhbHVlTGlzdA0KPiArICAgICAgICAgICAgVmFsdWUgPSBWYWx1ZUxpc3RbMF0NCj4gKyAg ICAgICAgICAgIFR5cGUgPSBzZWxmLkN1cnJRZXN0VmFySW5mby5WYXJUeXBlDQo+ICsNCj4gKyAg ICAgICAgICAgIGlmIHNlbGYuQ3VycmVudE1pbk1heERhdGEgIT0gTm9uZSBhbmQNCj4gc2VsZi5D dXJyZW50TWluTWF4RGF0YS5Jc051bWVyaWNPcGNvZGUoKToNCj4gKyAgICAgICAgICAgICAgICAj IGNoZWNrIGRlZmF1bHQgdmFsdWUgaXMgdmFsaWQgZm9yIE51bWVyaWMgT3Bjb2RlDQo+ICsgICAg ICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgbGVuKFZhbHVlTGlzdCkpOg0KPiArICAgICAg ICAgICAgICAgICAgICBWYWx1ZSA9IFZhbHVlTGlzdFtpXQ0KPiArICAgICAgICAgICAgICAgICAg ICBpZiB0eXBlKFZhbHVlKSA9PSBpbnQ6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiAo DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUgPCBzZWxmLkN1cnJlbnRNaW5N YXhEYXRhLkdldE1pbkRhdGEoKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIFZh bHVlID4gc2VsZi5DdXJyZW50TWluTWF4RGF0YS5HZXRNYXhEYXRhKCkNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICk6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5FcnJv ckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZmclJldHVybkNv ZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGluZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk51 bWVyaWMgZGVmYXVsdCB2YWx1ZSBtdXN0IGJlIGJldHdlZW4gTWluVmFsdWUgYW5kDQo+IE1heFZh bHVlLiIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgICAg ICAgICBpZiBUeXBlID09IEVGSV9JRlJfVFlQRV9PVEhFUjoNCj4gKyAgICAgICAgICAgICAgICBz ZWxmLkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAgICAgICAgVmZyUmV0dXJuQ29kZS5W RlJfUkVUVVJOX0ZBVEFMX0VSUk9SLCBMaW5lLCAiRGVmYXVsdCBkYXRhDQo+IHR5cGUgZXJyb3Iu Ig0KPiArICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKDAs IGxlbihWYWx1ZUxpc3QpKToNCj4gKyAgICAgICAgICAgICAgICBpZiB0eXBlKFZhbHVlTGlzdFtp XSkgPT0gaW50Og0KPiArICAgICAgICAgICAgICAgICAgICBpZiBUeXBlID09IEVGSV9JRlJfVFlQ RV9USU1FOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVMaXN0W2ldID0gRUZJX0hJ SV9USU1FKCkNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBpZiBUeXBlID09IEVGSV9JRlJf VFlQRV9EQVRFOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVMaXN0W2ldID0gRUZJ X0hJSV9EQVRFKCkNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBpZiBUeXBlID09IEVGSV9J RlJfVFlQRV9SRUY6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZUxpc3RbaV0gPSBF RklfSElJX1JFRigpDQo+ICsgICAgICAgICAgICBET2JqID0gSWZyRGVmYXVsdChUeXBlLCBWYWx1 ZUxpc3QpDQo+ICsgICAgICAgICAgICBET2JqLlNldExpbmVObyhMaW5lKQ0KPiArDQo+IERPYmou U2V0VmFsdWVTdHJlYW0oc2VsZi5FeHRyYWN0T3JpZ2luYWxUZXh0KGN0eC52ZnJDb25zdGFudFZh bHVlRmllbGQoKSkpDQo+ICsgICAgICAgICAgICBpZiBub3QgY3R4LnZmckNvbnN0YW50VmFsdWVG aWVsZCgpLkxpc3RUeXBlOg0KPiArICAgICAgICAgICAgICAgIGlmIHNlbGYuSXNTdHJpbmdPcDoN Cj4gKyAgICAgICAgICAgICAgICAgICAgRE9iai5TZXRUeXBlKEVGSV9JRlJfVFlQRV9TVFJJTkcp DQo+ICsgICAgICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgc2Vs Zi5DdXJyUWVzdFZhckluZm8uSXNCaXRWYXI6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBE T2JqLlNldFR5cGUoRUZJX0lGUl9UWVBFX05VTV9TSVpFXzMyKQ0KPiArICAgICAgICAgICAgICAg ICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgRE9iai5TZXRUeXBlKHNlbGYu Q3VyclFlc3RWYXJJbmZvLlZhclR5cGUpDQo+ICsgICAgICAgICAgICBlbHNlOg0KPiArICAgICAg ICAgICAgICAgIERPYmouU2V0VHlwZShFRklfSUZSX1RZUEVfQlVGRkVSKQ0KPiArDQo+ICsgICAg ICAgIGVsc2U6DQo+ICsgICAgICAgICAgICBJc0V4cCA9IFRydWUNCj4gKyAgICAgICAgICAgIERP YmogPSBJZnJEZWZhdWx0MigpDQo+ICsgICAgICAgICAgICBET2JqLlNldExpbmVObyhMaW5lKQ0K PiArICAgICAgICAgICAgRE9iai5TZXRTY29wZSgxKQ0KPiArICAgICAgICAgICAgc2VsZi5JbnNl cnRDaGlsZChjdHguTm9kZSwgY3R4LnZmclN0YXRlbWVudFZhbHVlKCkpDQo+ICsgICAgICAgICAg ICBzZWxmLkluc2VydEVuZE5vZGUoY3R4Lk5vZGUsIExpbmUpDQo+ICsNCj4gKyAgICAgICAgaWYg Y3R4LkRlZmF1bHRTdG9yZSgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBEZWZhdWx0SWQsIFJl dHVybkNvZGUgPSBnVmZyRGVmYXVsdFN0b3JlLkdldERlZmF1bHRJZChjdHguU04udGV4dCkNCj4g KyAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKFJldHVybkNvZGUsIGN0eC5TTi5saW5lLCBj dHguU04udGV4dCkNCj4gKyAgICAgICAgICAgIERPYmouU2V0RGVmYXVsdElkKERlZmF1bHRJZCkN Cj4gKyAgICAgICAgICAgIERPYmouU2V0RGVmYXVsdFN0b3JlKGN0eC5TTi50ZXh0KQ0KPiArDQo+ ICsgICAgICAgIHNlbGYuQ2hlY2tEdXBsaWNhdGVEZWZhdWx0VmFsdWUoRGVmYXVsdElkLCBjdHgu RC5saW5lLCBjdHguRC50ZXh0KQ0KPiArICAgICAgICBpZiBzZWxmLkN1cnJRZXN0VmFySW5mby5W YXJTdG9yZUlkICE9IEVGSV9WQVJTVE9SRV9JRF9JTlZBTElEOg0KPiArICAgICAgICAgICAgVmFy U3RvcmVOYW1lLCBSZXR1cm5Db2RlID0gZ1ZmckRhdGFTdG9yYWdlLkdldFZhclN0b3JlTmFtZSgN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLkN1cnJRZXN0VmFySW5mby5WYXJTdG9yZUlkDQo+ICsg ICAgICAgICAgICApDQo+ICsgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcihSZXR1cm5Db2Rl LCBMaW5lKQ0KPiArICAgICAgICAgICAgVmFyR3VpZCA9DQo+IGdWZnJEYXRhU3RvcmFnZS5HZXRW YXJTdG9yZUd1aWQoc2VsZi5DdXJyUWVzdFZhckluZm8uVmFyU3RvcmVJZCkNCj4gKyAgICAgICAg ICAgIFZhclN0b3JlVHlwZSA9DQo+IGdWZnJEYXRhU3RvcmFnZS5HZXRWYXJTdG9yZVR5cGUoc2Vs Zi5DdXJyUWVzdFZhckluZm8uVmFyU3RvcmVJZCkNCj4gKyAgICAgICAgICAgIGlmIChJc0V4cCA9 PSBGYWxzZSkgYW5kIChWYXJTdG9yZVR5cGUgPT0NCj4gRUZJX1ZGUl9WQVJTVE9SRV9UWVBFLkVG SV9WRlJfVkFSU1RPUkVfQlVGRkVSKToNCj4gKyAgICAgICAgICAgICAgICBzZWxmLkVycm9ySGFu ZGxlcigNCj4gKyAgICAgICAgICAgICAgICAgICAgZ1ZmckRlZmF1bHRTdG9yZS5CdWZmZXJWYXJT dG9yZUFsdENvbmZpZ0FkZCgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRJZCwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuQ3VyclFlc3RWYXJJbmZvLA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgVmFyU3RvcmVOYW1lLA0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgVmFyR3VpZCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuQ3VyclFlc3RW YXJJbmZvLlZhclR5cGUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSwNCj4gKyAg ICAgICAgICAgICAgICAgICAgKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgTGluZSwNCj4gKyAg ICAgICAgICAgICAgICApDQo+ICsgICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBET2JqDQo+ICsgICAg ICAgIGN0eC5Ob2RlLkJ1ZmZlciA9IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFtKERPYmouR2V0SW5m bygpKQ0KPiArICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gKw0KPiArICAgICMgVmlzaXQgYSBw YXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRWYWx1ZS4N Cj4gKyAgICBkZWYgdmlzaXRWZnJTdGF0ZW1lbnRWYWx1ZShzZWxmLCBjdHg6DQo+IFZmclN5bnRh eFBhcnNlci5WZnJTdGF0ZW1lbnRWYWx1ZUNvbnRleHQpOg0KPiArICAgICAgICBWT2JqID0gSWZy VmFsdWUoKQ0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ICsgICAg ICAgIFZPYmouU2V0TGluZU5vKGN0eC5zdGFydC5saW5lKQ0KPiArICAgICAgICBjdHguTm9kZS5E YXRhID0gVk9iag0KPiArICAgICAgICBjdHguTm9kZS5CdWZmZXIgPSBnRm9ybVBrZy5TdHJ1Y3RU b1N0cmVhbShWT2JqLkdldEluZm8oKSkNCj4gKyAgICAgICAgY3R4Lk5vZGUuRXhwcmVzc2lvbiA9 DQo+IHNlbGYuRXh0cmFjdE9yaWdpbmFsVGV4dChjdHgudmZyU3RhdGVtZW50RXhwcmVzc2lvbigp KQ0KPiArICAgICAgICBzZWxmLkluc2VydEVuZE5vZGUoY3R4Lk5vZGUsIGN0eC5zdG9wLmxpbmUp DQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEg cGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVtZW50T3B0aW9u cy4NCj4gKyAgICBkZWYgdmlzaXRWZnJTdGF0ZW1lbnRPcHRpb25zKHNlbGYsIGN0eDoNCj4gVmZy U3ludGF4UGFyc2VyLlZmclN0YXRlbWVudE9wdGlvbnNDb250ZXh0KToNCj4gKyAgICAgICAgc2Vs Zi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyU3RhdGVt ZW50T25lT2ZPcHRpb24oKS5Ob2RlDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiArDQo+ ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3ludGF4UGFyc2Vy I3ZmclN0YXRlbWVudE9uZU9mT3B0aW9uLg0KPiArICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudE9u ZU9mT3B0aW9uKHNlbGYsIGN0eDoNCj4gVmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudE9uZU9m T3B0aW9uQ29udGV4dCk6DQo+ICsgICAgICAgIExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiArICAg ICAgICBpZiBzZWxmLkN1cnJRZXN0VmFySW5mby5WYXJUeXBlID09IEVGSV9JRlJfVFlQRV9PVEhF UjoNCj4gKyAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKFZmclJldHVybkNvZGUuVkZSX1JF VFVSTl9GQVRBTF9FUlJPUiwgTGluZSwNCj4gIkdldCBkYXRhIHR5cGUgZXJyb3IuIikNCj4gKw0K PiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ICsgICAgICAgIFZhbHVl TGlzdCA9IGN0eC52ZnJDb25zdGFudFZhbHVlRmllbGQoKS5WYWx1ZUxpc3QNCj4gKyAgICAgICAg VmFsdWUgPSBWYWx1ZUxpc3RbMF0NCj4gKyAgICAgICAgVHlwZSA9IHNlbGYuQ3VyclFlc3RWYXJJ bmZvLlZhclR5cGUNCj4gKyAgICAgICAgaWYgc2VsZi5DdXJyZW50TWluTWF4RGF0YSAhPSBOb25l Og0KPiArICAgICAgICAgICAgIyBzZXQgbWluL21heCB2YWx1ZSBmb3Igb25lb2Ygb3Bjb2RlDQo+ ICsgICAgICAgICAgICBTdGVwID0gc2VsZi5DdXJyZW50TWluTWF4RGF0YS5HZXRTdGVwRGF0YSgp DQo+ICsgICAgICAgICAgICBzZWxmLkN1cnJlbnRNaW5NYXhEYXRhLlNldE1pbk1heFN0ZXBEYXRh KFZhbHVlLCBWYWx1ZSwgU3RlcCkNCj4gKw0KPiArICAgICAgICBpZiBzZWxmLkN1cnJRZXN0VmFy SW5mby5Jc0JpdFZhcjoNCj4gKyAgICAgICAgICAgIFR5cGUgPSBFRklfSUZSX1RZUEVfTlVNX1NJ WkVfMzINCj4gKyAgICAgICAgT09PT2JqID0gSWZyT25lT2ZPcHRpb24oVHlwZSwgVmFsdWVMaXN0 KQ0KPiArDQo+ICsgICAgICAgIGlmIG5vdCBjdHgudmZyQ29uc3RhbnRWYWx1ZUZpZWxkKCkuTGlz dFR5cGU6DQo+ICsgICAgICAgICAgICBPT09PYmouU2V0VHlwZShUeXBlKQ0KPiArICAgICAgICBl bHNlOg0KPiArICAgICAgICAgICAgT09PT2JqLlNldFR5cGUoRUZJX0lGUl9UWVBFX0JVRkZFUikN Cj4gKw0KPiArICAgICAgICBPT09PYmouU2V0TGluZU5vKExpbmUpDQo+ICsgICAgICAgIE9PT09i ai5TZXRPcHRpb24oc2VsZi5UcmFuc051bShjdHguTnVtYmVyKDApKSkNCj4gKw0KPiBPT09PYmou U2V0VmFsdWVTdHJlYW0oc2VsZi5FeHRyYWN0T3JpZ2luYWxUZXh0KGN0eC52ZnJDb25zdGFudFZh bHVlRmllbGQoKSkpDQo+ICsNCj4gT09PT2JqLlNldEZsYWdzU3RyZWFtKHNlbGYuRXh0cmFjdE9y aWdpbmFsVGV4dChjdHgudmZyT25lT2ZPcHRpb25GbGFncygpKSkNCj4gKyAgICAgICAgc2VsZi5F cnJvckhhbmRsZXIoT09PT2JqLlNldEZsYWdzKGN0eC52ZnJPbmVPZk9wdGlvbkZsYWdzKCkuTEZs YWdzKSwNCj4gY3R4LkYubGluZSkNCj4gKyAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsN Cj4gc2VsZi5DdXJyZW50UXVlc3Rpb24uU2V0UUhlYWRlckZsYWdzKGN0eC52ZnJPbmVPZk9wdGlv bkZsYWdzKCkuSEZsYWdzKSwNCj4gY3R4LkYubGluZQ0KPiArICAgICAgICApDQo+ICsNCj4gKyAg ICAgICAgIyBBcnJheSB0eXBlIG9ubHkgZm9yIGRlZmF1bHQgdHlwZSBPbmVPZk9wdGlvbi4NCj4g KyAgICAgICAgaWYgKE9PT09iai5HZXRGbGFncygpICYgKEVGSV9JRlJfT1BUSU9OX0RFRkFVTFQg fA0KPiBFRklfSUZSX09QVElPTl9ERUZBVUxUX01GRykpID09IDAgYW5kICgNCj4gKyAgICAgICAg ICAgIGN0eC52ZnJDb25zdGFudFZhbHVlRmllbGQoKS5MaXN0VHlwZQ0KPiArICAgICAgICApOg0K PiArICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAgICAgVmZy UmV0dXJuQ29kZS5WRlJfUkVUVVJOX0ZBVEFMX0VSUk9SLA0KPiArICAgICAgICAgICAgICAgIExp bmUsDQo+ICsgICAgICAgICAgICAgICAgIkRlZmF1bHQga2V5d29yZCBzaG91bGQgd2l0aCBhcnJh eSB2YWx1ZSB0eXBlISIsDQo+ICsgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgIyBDbGVh ciB0aGUgZGVmYXVsdCBmbGFnIGlmIHRoZSBvcHRpb24gbm90IHVzZSBhcnJheSB2YWx1ZSBidXQg aGFzIGRlZmF1bHQNCj4gZmxhZy4NCj4gKyAgICAgICAgaWYgKA0KPiArICAgICAgICAgICAgKE9P T09iai5HZXRGbGFncygpICYgKEVGSV9JRlJfT1BUSU9OX0RFRkFVTFQgfA0KPiBFRklfSUZSX09Q VElPTl9ERUZBVUxUX01GRykpICE9IDANCj4gKyAgICAgICAgICAgIGFuZCAoY3R4LnZmckNvbnN0 YW50VmFsdWVGaWVsZCgpLkxpc3RUeXBlID09IEZhbHNlKQ0KPiArICAgICAgICAgICAgYW5kIChz ZWxmLklzT3JkZXJlZExpc3QpDQo+ICsgICAgICAgICk6DQo+ICsgICAgICAgICAgICBPT09PYmou U2V0RmxhZ3MoDQo+ICsgICAgICAgICAgICAgICAgT09PT2JqLkdldEZsYWdzKCkgJiB+KEVGSV9J RlJfT1BUSU9OX0RFRkFVTFQgfA0KPiBFRklfSUZSX09QVElPTl9ERUZBVUxUX01GRykNCj4gKyAg ICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICBpZiBzZWxmLkN1cnJRZXN0VmFySW5mby5WYXJT dG9yZUlkICE9IEVGSV9WQVJTVE9SRV9JRF9JTlZBTElEOg0KPiArICAgICAgICAgICAgVmFyU3Rv cmVOYW1lLCBSZXR1cm5Db2RlID0gZ1ZmckRhdGFTdG9yYWdlLkdldFZhclN0b3JlTmFtZSgNCj4g KyAgICAgICAgICAgICAgICBzZWxmLkN1cnJRZXN0VmFySW5mby5WYXJTdG9yZUlkDQo+ICsgICAg ICAgICAgICApDQo+ICsgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcihSZXR1cm5Db2RlLCBM aW5lKQ0KPiArICAgICAgICAgICAgVmFyU3RvcmVHdWlkID0NCj4gZ1ZmckRhdGFTdG9yYWdlLkdl dFZhclN0b3JlR3VpZChzZWxmLkN1cnJRZXN0VmFySW5mby5WYXJTdG9yZUlkKQ0KPiArICAgICAg ICAgICAgaWYgT09PT2JqLkdldEZsYWdzKCkgJiBFRklfSUZSX09QVElPTl9ERUZBVUxUOg0KPiAr ICAgICAgICAgICAgICAgIHNlbGYuQ2hlY2tEdXBsaWNhdGVEZWZhdWx0VmFsdWUoDQo+ICsgICAg ICAgICAgICAgICAgICAgIEVGSV9ISUlfREVGQVVMVF9DTEFTU19TVEFOREFSRCwgY3R4LkYubGlu ZSwgY3R4LkYudGV4dA0KPiArICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICBz ZWxmLkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAgICAgICAgZ1ZmckRlZmF1bHRTdG9y ZS5CdWZmZXJWYXJTdG9yZUFsdENvbmZpZ0FkZCgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg IEVGSV9ISUlfREVGQVVMVF9DTEFTU19TVEFOREFSRCwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuQ3VyclFlc3RWYXJJbmZvLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgVmFy U3RvcmVOYW1lLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgVmFyU3RvcmVHdWlkLA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5DdXJyUWVzdFZhckluZm8uVmFyVHlwZSwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlLA0KPiArICAgICAgICAgICAgICAgICAgICAp LA0KPiArICAgICAgICAgICAgICAgICAgICBMaW5lLA0KPiArICAgICAgICAgICAgICAgICkNCj4g KyAgICAgICAgICAgIGlmIE9PT09iai5HZXRGbGFncygpICYgRUZJX0lGUl9PUFRJT05fREVGQVVM VF9NRkc6DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5DaGVja0R1cGxpY2F0ZURlZmF1bHRWYWx1 ZSgNCj4gKyAgICAgICAgICAgICAgICAgICAgRUZJX0hJSV9ERUZBVUxUX0NMQVNTX01BTlVGQUNU VVJJTkcsIGN0eC5GLmxpbmUsIGN0eC5GLnRleHQNCj4gKyAgICAgICAgICAgICAgICApDQo+ICsg ICAgICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAgICAgICAg IGdWZnJEZWZhdWx0U3RvcmUuQnVmZmVyVmFyU3RvcmVBbHRDb25maWdBZGQoDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICBFRklfSElJX0RFRkFVTFRfQ0xBU1NfTUFOVUZBQ1RVUklORywNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuQ3VyclFlc3RWYXJJbmZvLA0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgVmFyU3RvcmVOYW1lLA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgVmFyU3RvcmVHdWlkLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5DdXJyUWVz dFZhckluZm8uVmFyVHlwZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlLA0KPiAr ICAgICAgICAgICAgICAgICAgICApLA0KPiArICAgICAgICAgICAgICAgICAgICBMaW5lLA0KPiAr ICAgICAgICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICBpZiBjdHguS2V5KCkgIT0gTm9uZToN Cj4gKyAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKFZmclJldHVybkNvZGUuVkZSX1JFVFVS Tl9VTlNVUFBPUlRFRCwNCj4gY3R4LktOLmxpbmUsIGN0eC5LTi50ZXh0KQ0KPiArICAgICAgICAg ICAgIyDjgIBHdWlkIE9wdGlvbiBLZXkNCj4gKyAgICAgICAgICAgIE9PT09iai5TZXRJZnJPcHRp b25LZXkoc2VsZi5UcmFuc051bShjdHguS04udGV4dCkpDQo+ICsgICAgICAgICAgICBnSWZyT3B0 aW9uS2V5ID0gSWZyT3B0aW9uS2V5KA0KPiArICAgICAgICAgICAgICAgIHNlbGYuQ3VycmVudFF1 ZXN0aW9uLkdldFF1ZXN0aW9uSWQoKSwgVHlwZSwgVmFsdWUsDQo+IHNlbGYuVHJhbnNOdW0oY3R4 LktOLnRleHQpDQo+ICsgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICBOb2RlID0gSWZyVHJl ZU5vZGUoDQo+ICsgICAgICAgICAgICAgICAgRUZJX0lGUl9HVUlEX09QLCBnSWZyT3B0aW9uS2V5 LA0KPiBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShnSWZyT3B0aW9uS2V5LkdldEluZm8oKSkNCj4g KyAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgIGdJZnJPcHRpb25LZXkuU2V0TGluZU5vKCkN Cj4gKyAgICAgICAgICAgIGN0eC5Ob2RlLmluc2VydENoaWxkKE5vZGUpDQo+ICsNCj4gKyAgICAg ICAgZm9yIEN0eCBpbiBjdHgudmZySW1hZ2VUYWcoKToNCj4gKyAgICAgICAgICAgIE9PT09iai5T ZXRTY29wZSgxKQ0KPiArICAgICAgICAgICAgc2VsZi5JbnNlcnRDaGlsZChjdHguTm9kZSwgQ3R4 KQ0KPiArICAgICAgICAgICAgc2VsZi5JbnNlcnRFbmROb2RlKGN0eC5Ob2RlLCBjdHguVC5saW5l KQ0KPiArDQo+ICsgICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBPT09PYmoNCj4gKyAgICAgICAgY3R4 Lk5vZGUuQnVmZmVyID0gZ0Zvcm1Qa2cuU3RydWN0VG9TdHJlYW0oT09PT2JqLkdldEluZm8oKSkN Cj4gKw0KPiArICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gKw0KPiArICAgICMgVmlzaXQgYSBw YXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJPbmVPZk9wdGlvbkZsYWdz Lg0KPiArICAgIGRlZiB2aXNpdFZmck9uZU9mT3B0aW9uRmxhZ3Moc2VsZiwgY3R4Og0KPiBWZnJT eW50YXhQYXJzZXIuVmZyT25lT2ZPcHRpb25GbGFnc0NvbnRleHQpOg0KPiArICAgICAgICBzZWxm LnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ICsgICAgICAgIGN0eC5MRmxhZ3MgPSBzZWxmLkN1 cnJRZXN0VmFySW5mby5WYXJUeXBlDQo+ICsgICAgICAgIGZvciBGbGFnc0ZpZWxkQ3R4IGluIGN0 eC5vbmVvZm9wdGlvbkZsYWdzRmllbGQoKToNCj4gKyAgICAgICAgICAgIGN0eC5IRmxhZ3MgfD0g RmxhZ3NGaWVsZEN0eC5IRmxhZw0KPiArICAgICAgICAgICAgY3R4LkxGbGFncyB8PSBGbGFnc0Zp ZWxkQ3R4LkxGbGFnDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5IRmxhZ3MsIGN0eC5MRmxh Z3MNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRh eFBhcnNlciNvbmVvZm9wdGlvbkZsYWdzRmllbGQuDQo+ICsgICAgZGVmIHZpc2l0T25lb2ZvcHRp b25GbGFnc0ZpZWxkKHNlbGYsIGN0eDoNCj4gVmZyU3ludGF4UGFyc2VyLk9uZW9mb3B0aW9uRmxh Z3NGaWVsZENvbnRleHQpOg0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiAr DQo+ICsgICAgICAgIGlmIGN0eC5OdW1iZXIoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4 LkxGbGFnID0gc2VsZi5UcmFuc051bShjdHguTnVtYmVyKCkpDQo+ICsgICAgICAgIGlmIGN0eC5P cHRpb25EZWZhdWx0KCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5MRmxhZyA9IDB4MTAN Cj4gKyAgICAgICAgaWYgY3R4Lk9wdGlvbkRlZmF1bHRNZmcoKSAhPSBOb25lOg0KPiArICAgICAg ICAgICAgY3R4LkxGbGFnID0gMHgyMA0KPiArICAgICAgICBpZiBjdHguSW50ZXJhY3RpdmVGbGFn KCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5IRmxhZyA9IDB4MDQNCj4gKyAgICAgICAg aWYgY3R4LlJlc2V0UmVxdWlyZWRGbGFnKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5I RmxhZyA9IDB4MTANCj4gKyAgICAgICAgaWYgY3R4LlJlc3RTdHlsZUZsYWcoKSAhPSBOb25lOg0K PiArICAgICAgICAgICAgY3R4LkhGbGFnID0gMHgyMA0KPiArICAgICAgICBpZiBjdHguUmVjb25u ZWN0UmVxdWlyZWRGbGFnKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5IRmxhZyA9IDB4 NDANCj4gKyAgICAgICAgaWYgY3R4Lk1hbnVmYWN0dXJpbmdGbGFnKCkgIT0gTm9uZToNCj4gKyAg ICAgICAgICAgIGN0eC5MRmxhZyA9IDB4MjANCj4gKyAgICAgICAgaWYgY3R4LkRlZmF1bHRGbGFn KCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5MRmxhZyA9IDB4MTANCj4gKyAgICAgICAg aWYgY3R4Lk5WQWNjZXNzRmxhZygpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBnVmZyRXJyb3JI YW5kbGUuSGFuZGxlV2FybmluZygNCj4gKw0KPiBFRklfVkZSX1dBUk5JTkdfQ09ERS5WRlJfV0FS TklOR19PQlNPTEVURURfRlJBTUVXT1JLX09QQ08NCj4gREUsIGN0eC5BLmxpbmUsIGN0eC5BLnRl eHQNCj4gKyAgICAgICAgICAgICkNCj4gKyAgICAgICAgaWYgY3R4LkxhdGVDaGVja0ZsYWcoKSAh PSBOb25lOg0KPiArICAgICAgICAgICAgZ1ZmckVycm9ySGFuZGxlLkhhbmRsZVdhcm5pbmcoDQo+ ICsNCj4gRUZJX1ZGUl9XQVJOSU5HX0NPREUuVkZSX1dBUk5JTkdfT0JTT0xFVEVEX0ZSQU1FV09S S19PUENPDQo+IERFLCBjdHguTC5saW5lLCBjdHguTC50ZXh0DQo+ICsgICAgICAgICAgICApDQo+ ICsNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5IRmxhZywgY3R4LkxGbGFnDQo+ICsNCj4gKyAgICAj IFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVt ZW50UmVhZC4NCj4gKyAgICBkZWYgdmlzaXRWZnJTdGF0ZW1lbnRSZWFkKHNlbGYsIGN0eDoNCj4g VmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudFJlYWRDb250ZXh0KToNCj4gKyAgICAgICAgUk9i aiA9IElmclJlYWQoKQ0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ ICsgICAgICAgIFJPYmouU2V0TGluZU5vKGN0eC5zdGFydC5saW5lKQ0KPiArICAgICAgICBjdHgu Tm9kZS5EYXRhID0gUk9iag0KPiArICAgICAgICBjdHguTm9kZS5CdWZmZXIgPSBnRm9ybVBrZy5T dHJ1Y3RUb1N0cmVhbShST2JqLkdldEluZm8oKSkNCj4gKyAgICAgICAgY3R4Lk5vZGUuRXhwcmVz c2lvbiA9DQo+IHNlbGYuRXh0cmFjdE9yaWdpbmFsVGV4dChjdHgudmZyU3RhdGVtZW50RXhwcmVz c2lvbigpKQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiArDQo+ICsgICAgIyBW aXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVu dFdyaXRlLg0KPiArICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudFdyaXRlKHNlbGYsIGN0eDoNCj4g VmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudFdyaXRlQ29udGV4dCk6DQo+ICsgICAgICAgIFdP YmogPSBJZnJXcml0ZSgpDQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsN Cj4gKyAgICAgICAgV09iai5TZXRMaW5lTm8oY3R4LnN0YXJ0LmxpbmUpDQo+ICsgICAgICAgIGN0 eC5Ob2RlLkRhdGEgPSBXT2JqDQo+ICsgICAgICAgIGN0eC5Ob2RlLkJ1ZmZlciA9IGdGb3JtUGtn LlN0cnVjdFRvU3RyZWFtKFdPYmouR2V0SW5mbygpKQ0KPiArICAgICAgICBjdHguTm9kZS5FeHBy ZXNzaW9uID0NCj4gc2VsZi5FeHRyYWN0T3JpZ2luYWxUZXh0KGN0eC52ZnJTdGF0ZW1lbnRFeHBy ZXNzaW9uKCkpDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+ICsNCj4gKyAgICAj IFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieQ0KPiBWZnJTeW50YXhQYXJzZXIjdmZyU3Rh dGVtZW50UXVlc3Rpb25PcHRpb25MaXN0Lg0KPiArICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudFF1 ZXN0aW9uT3B0aW9uTGlzdCgNCj4gKyAgICAgICAgc2VsZiwgY3R4OiBWZnJTeW50YXhQYXJzZXIu VmZyU3RhdGVtZW50UXVlc3Rpb25PcHRpb25MaXN0Q29udGV4dA0KPiArICAgICk6DQo+ICsgICAg ICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsgICAgICAgIGZvciBDdHggaW4gY3R4LnZm clN0YXRlbWVudFF1ZXN0aW9uT3B0aW9uKCk6DQo+ICsgICAgICAgICAgICBzZWxmLkluc2VydENo aWxkKGN0eC5Ob2RlLCBDdHgpDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+ICsN Cj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieQ0KPiBWZnJTeW50YXhQYXJz ZXIjdmZyU3RhdGVtZW50UXVlc3Rpb25PcHRpb24uDQo+ICsgICAgZGVmIHZpc2l0VmZyU3RhdGVt ZW50UXVlc3Rpb25PcHRpb24oDQo+ICsgICAgICAgIHNlbGYsIGN0eDogVmZyU3ludGF4UGFyc2Vy LlZmclN0YXRlbWVudFF1ZXN0aW9uT3B0aW9uQ29udGV4dA0KPiArICAgICk6DQo+ICsgICAgICAg IHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsgICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnRR dWVzdGlvblRhZygpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJT dGF0ZW1lbnRRdWVzdGlvblRhZygpLk5vZGUNCj4gKw0KPiArICAgICAgICBlbGlmIGN0eC52ZnJT dGF0ZW1lbnRRdWVzdGlvbk9wdGlvblRhZygpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHgu Tm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRRdWVzdGlvbk9wdGlvblRhZygpLk5vZGUNCj4gKyAgICAg ICAgcmV0dXJuIGN0eC5Ob2RlDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9k dWNlZCBieQ0KPiBWZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVtZW50Qm9vbGVhblR5cGUuDQo+ICsg ICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50Qm9vbGVhblR5cGUoc2VsZiwgY3R4Og0KPiBWZnJTeW50 YXhQYXJzZXIuVmZyU3RhdGVtZW50Qm9vbGVhblR5cGVDb250ZXh0KToNCj4gKyAgICAgICAgc2Vs Zi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVudENoZWNr Qm94KCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGlmIHNlbGYuQ3VyclFlc3RWYXJJbmZvLklz Qml0VmFyOg0KPiArICAgICAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudENo ZWNrQm94KCkuR3VpZE5vZGUNCj4gKyAgICAgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICAg ICAgY3R4Lk5vZGUgPSBjdHgudmZyU3RhdGVtZW50Q2hlY2tCb3goKS5Ob2RlDQo+ICsgICAgICAg IGVsc2U6DQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRBY3Rpb24o KS5Ob2RlDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+ICsNCj4gKyAgICAjIFZp c2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVtZW50 Q2hlY2tCb3guDQo+ICsgICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50Q2hlY2tCb3goc2VsZiwgY3R4 Og0KPiBWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50Q2hlY2tCb3hDb250ZXh0KToNCj4gKyAg ICAgICAgQ0JPYmogPSBJZnJDaGVja0JveCgpDQo+ICsgICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBD Qk9iag0KPiArICAgICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gKyAgICAgICAgQ0JPYmou U2V0TGluZU5vKExpbmUpDQo+ICsgICAgICAgIHNlbGYuQ3VycmVudFF1ZXN0aW9uID0gQ0JPYmoN Cj4gKyAgICAgICAgc2VsZi5Jc0NoZWNrQm94T3AgPSBUcnVlDQo+ICsgICAgICAgIHNlbGYudmlz aXRDaGlsZHJlbihjdHgpDQo+ICsNCj4gKyAgICAgICAgIyBDcmVhdGUgYSBHVUlEIG9wY29kZSB0 byB3cmFwIHRoZSBjaGVja2JveCBvcGNvZGUsIGlmIGl0IHJlZmVyIHRvIGJpdA0KPiB2YXJzdG9y ZS4NCj4gKyAgICAgICAgaWYgc2VsZi5DdXJyUWVzdFZhckluZm8uSXNCaXRWYXI6DQo+ICsgICAg ICAgICAgICBHdWlkT2JqID0gSWZyR3VpZCgwKQ0KPiArICAgICAgICAgICAgR3VpZE9iai5TZXRH dWlkKEVES0lJX0lGUl9CSVRfVkFSU1RPUkVfR1VJRCkNCj4gKyAgICAgICAgICAgIEd1aWRPYmou U2V0TGluZU5vKExpbmUpDQo+ICsgICAgICAgICAgICBHdWlkT2JqLlNldFNjb3BlKDEpDQo+ICsg ICAgICAgICAgICBjdHguR3VpZE5vZGUuRGF0YSA9IEd1aWRPYmoNCj4gKyAgICAgICAgICAgIGN0 eC5HdWlkTm9kZS5CdWZmZXIgPSBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShHdWlkT2JqLkdldElu Zm8oKSkNCj4gKyAgICAgICAgICAgIGN0eC5HdWlkTm9kZS5pbnNlcnRDaGlsZChjdHguTm9kZSkN Cj4gKyAgICAgICAgICAgIHNlbGYuSW5zZXJ0RW5kTm9kZShjdHguR3VpZE5vZGUsIGN0eC5zdG9w LmxpbmUpDQo+ICsNCj4gKyAgICAgICAgIyBjaGVjayBkYXRhVHlwZQ0KPiArICAgICAgICBpZiBz ZWxmLkN1cnJRZXN0VmFySW5mby5WYXJUeXBlID09IEVGSV9JRlJfVFlQRV9PVEhFUjoNCj4gKyAg ICAgICAgICAgIHNlbGYuQ3VyclFlc3RWYXJJbmZvLlZhclR5cGUgPSBFRklfSUZSX1RZUEVfQk9P TEVBTg0KPiArDQo+ICsgICAgICAgIGlmIHNlbGYuQ3VyclFlc3RWYXJJbmZvLlZhclN0b3JlSWQg IT0gRUZJX1ZBUlNUT1JFX0lEX0lOVkFMSUQ6DQo+ICsgICAgICAgICAgICAjIENoZWNrIHdoZXRo ZXIgdGhlIHF1ZXN0aW9uIHJlZmVycyB0byBhIGJpdCBmaWVsZCwgaWYgeWVzLiBjcmVhdGUgYSBH dWlkDQo+IHRvIGluZGljYXRlIHRoZSBxdWVzdGlvbiByZWZlcnMgdG8gYSBiaXQgZmllbGQuDQo+ ICsgICAgICAgICAgICBpZiBzZWxmLkN1cnJRZXN0VmFySW5mby5Jc0JpdFZhcjoNCj4gKyAgICAg ICAgICAgICAgICBfLCBSZXR1cm5Db2RlID0gZ1ZmclZhckRhdGFUeXBlREIuR2V0RGF0YVR5cGVT aXplQnlEYXRhVHlwZSgNCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5DdXJyUWVzdFZhcklu Zm8uVmFyVHlwZQ0KPiArICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICBzZWxm LkVycm9ySGFuZGxlcihSZXR1cm5Db2RlLCBMaW5lLCAiQ2hlY2tCb3ggdmFyaWQgaXMgbm90IHRo ZSB2YWxpZA0KPiBkYXRhIHR5cGUiKQ0KPiArICAgICAgICAgICAgICAgIGlmICgNCj4gKw0KPiBn VmZyRGF0YVN0b3JhZ2UuR2V0VmFyU3RvcmVUeXBlKHNlbGYuQ3VyclFlc3RWYXJJbmZvLlZhclN0 b3JlSWQpDQo+ICsgICAgICAgICAgICAgICAgICAgID09IEVGSV9WRlJfVkFSU1RPUkVfVFlQRS5F RklfVkZSX1ZBUlNUT1JFX0JVRkZFUl9CSVRTDQo+ICsgICAgICAgICAgICAgICAgICAgIGFuZCBz ZWxmLkN1cnJRZXN0VmFySW5mby5WYXJUb3RhbFNpemUgIT0gMQ0KPiArICAgICAgICAgICAgICAg ICk6DQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKA0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1F VEVSLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgTGluZSwNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICJDaGVja0JveCB2YXJpZCBvbmx5IG9jY3VweSAxIGJpdCBpbiBCaXQgVmFyc3Rv cmUiLA0KPiArICAgICAgICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAgICAgZWxzZToN Cj4gKyAgICAgICAgICAgICAgICAgICAgU2l6ZSwgUmV0dXJuQ29kZSA9DQo+IGdWZnJWYXJEYXRh VHlwZURCLkdldERhdGFUeXBlU2l6ZUJ5RGF0YVR5cGUoDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLkN1cnJRZXN0VmFySW5mby5WYXJUeXBlDQo+ICsgICAgICAgICAgICAgICAgICAg ICkNCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwg TGluZSwgIkNoZWNrQm94IHZhcmlkIGlzIG5vdCB0aGUNCj4gdmFsaWQgZGF0YSB0eXBlIikNCj4g KyAgICAgICAgICAgICAgICAgICAgaWYgU2l6ZSAhPSAwIGFuZCBTaXplICE9IHNlbGYuQ3VyclFl c3RWYXJJbmZvLlZhclRvdGFsU2l6ZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu RXJyb3JIYW5kbGVyKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZmclJldHVybkNv ZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaW5lLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDaGVja0JveCB2 YXJpZCBkb2Vzbid0IHN1cHBvcnQgYXJyYXkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg KQ0KPiArICAgICAgICAgICAgICAgICAgICBlbGlmIGdWZnJEYXRhU3RvcmFnZS5HZXRWYXJTdG9y ZVR5cGUoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkN1cnJRZXN0VmFySW5mby5W YXJTdG9yZUlkDQo+ICsgICAgICAgICAgICAgICAgICAgICkgPT0gRUZJX1ZGUl9WQVJTVE9SRV9U WVBFLkVGSV9WRlJfVkFSU1RPUkVfQlVGRkVSIGFuZA0KPiBzZWxmLkN1cnJRZXN0VmFySW5mby5W YXJUb3RhbFNpemUgIT0gc2l6ZW9mKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgY19ib29s DQo+ICsgICAgICAgICAgICAgICAgICAgICk6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZnJSZXR1 cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGluZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2hlY2tC b3ggdmFyaWQgb25seSBzdXBwb3J0IEJPT0xFQU4gZGF0YSB0eXBlIiwNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICBpZiBjdHguRkxBR1MoKSAhPSBOb25lOg0K PiArDQo+IENCT2JqLlNldEZsYWdzU3RyZWFtKHNlbGYuRXh0cmFjdE9yaWdpbmFsVGV4dChjdHgu dmZyQ2hlY2tCb3hGbGFncygpKSkNCj4gKyAgICAgICAgICAgIENCT2JqLlNldEZsYWdzKGN0eC52 ZnJDaGVja0JveEZsYWdzKCkuSEZsYWdzLA0KPiBjdHgudmZyQ2hlY2tCb3hGbGFncygpLkxGbGFn cykNCj4gKyAgICAgICAgICAgIGlmIHNlbGYuQ3VyclFlc3RWYXJJbmZvLlZhclN0b3JlSWQgIT0g RUZJX1ZBUlNUT1JFX0lEX0lOVkFMSUQ6DQo+ICsgICAgICAgICAgICAgICAgVmFyU3RvcmVOYW1l LCBSZXR1cm5Db2RlID0gZ1ZmckRhdGFTdG9yYWdlLkdldFZhclN0b3JlTmFtZSgNCj4gKyAgICAg ICAgICAgICAgICAgICAgc2VsZi5DdXJyUWVzdFZhckluZm8uVmFyU3RvcmVJZA0KPiArICAgICAg ICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICBzZWxmLkNvbXBhcmVFcnJvckhhbmRsZXIo DQo+ICsgICAgICAgICAgICAgICAgICAgIFJldHVybkNvZGUsDQo+ICsgICAgICAgICAgICAgICAg ICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTLA0KPiArICAgICAgICAgICAgICAg ICAgICBMaW5lLA0KPiArICAgICAgICAgICAgICAgICAgICBjdHguTC50ZXh0LA0KPiArICAgICAg ICAgICAgICAgICAgICAiRmFpbGVkIHRvIHJldHJpZXZlIHZhcnN0b3JlIG5hbWUiLA0KPiArICAg ICAgICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICAgICAgICAgIFZhclN0b3JlR3VpZCA9DQo+ IGdWZnJEYXRhU3RvcmFnZS5HZXRWYXJTdG9yZUd1aWQoc2VsZi5DdXJyUWVzdFZhckluZm8uVmFy U3RvcmVJZCkNCj4gKyAgICAgICAgICAgICAgICBzZWxmLlZhbHVlID0gVHJ1ZQ0KPiArICAgICAg ICAgICAgICAgIGlmIENCT2JqLkdldEZsYWdzKCkgJiAweDAxOg0KPiArICAgICAgICAgICAgICAg ICAgICBzZWxmLkNoZWNrRHVwbGljYXRlRGVmYXVsdFZhbHVlKA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgRUZJX0hJSV9ERUZBVUxUX0NMQVNTX1NUQU5EQVJELCBjdHguRi5saW5lLCBjdHgu Ri50ZXh0DQo+ICsgICAgICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICAgICAg UmV0dXJuQ29kZSA9IGdWZnJEZWZhdWx0U3RvcmUuQnVmZmVyVmFyU3RvcmVBbHRDb25maWdBZGQo DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBFRklfSElJX0RFRkFVTFRfQ0xBU1NfU1RBTkRB UkQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkN1cnJRZXN0VmFySW5mbywNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgIFZhclN0b3JlTmFtZSwNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgIFZhclN0b3JlR3VpZCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu Q3VyclFlc3RWYXJJbmZvLlZhclR5cGUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LlZhbHVlLA0KPiArICAgICAgICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAgICAgICAg IHNlbGYuQ29tcGFyZUVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybkNvZGUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBWZnJSZXR1cm5Db2RlLlZGUl9S RVRVUk5fU1VDQ0VTUywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIExpbmUsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICBjdHguTC50ZXh0LA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgIk5vIHN0YW5kYXJkIGRlZmF1bHQgc3RvcmFnZSBmb3VuZCIsDQo+ICsgICAgICAgICAgICAg ICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICBpZiBDQk9iai5HZXRGbGFncygpICYgMHgwMjoN Cj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5DaGVja0R1cGxpY2F0ZURlZmF1bHRWYWx1ZSgN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9ISUlfREVGQVVMVF9DTEFTU19NQU5VRkFD VFVSSU5HLCBjdHguRi5saW5lLCBjdHguRi50ZXh0DQo+ICsgICAgICAgICAgICAgICAgICAgICkN Cj4gKyAgICAgICAgICAgICAgICAgICAgUmV0dXJuQ29kZSA9IGdWZnJEZWZhdWx0U3RvcmUuQnVm ZmVyVmFyU3RvcmVBbHRDb25maWdBZGQoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBFRklf SElJX0RFRkFVTFRfQ0xBU1NfTUFOVUZBQ1RVUklORywNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuQ3VyclFlc3RWYXJJbmZvLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgVmFy U3RvcmVOYW1lLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgVmFyU3RvcmVHdWlkLA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5DdXJyUWVzdFZhckluZm8uVmFyVHlwZSwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuVmFsdWUsDQo+ICsgICAgICAgICAgICAgICAg ICAgICkNCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5Db21wYXJlRXJyb3JIYW5kbGVyKA0K PiArICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuQ29kZSwNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTLA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgTGluZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGN0eC5MLnRl eHQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiTm8gbWFudWZhY3R1cmluZyBkZWZhdWx0 IHN0b3JhZ2UgZm91bmQiLA0KPiArICAgICAgICAgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAg ICAgaWYgY3R4LktleSgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBLZXkgPSBzZWxmLlRyYW5z TnVtKGN0eC5OdW1iZXIoKSkNCj4gKyAgICAgICAgICAgIHNlbGYuQXNzaWduUXVlc3Rpb25LZXko Q0JPYmosIEtleSkNCj4gKyAgICAgICAgY3R4Lk5vZGUuQnVmZmVyID0gZ0Zvcm1Qa2cuU3RydWN0 VG9TdHJlYW0oQ0JPYmouR2V0SW5mbygpKQ0KPiArICAgICAgICBzZWxmLkluc2VydEVuZE5vZGUo Y3R4Lk5vZGUsIGN0eC5zdG9wLmxpbmUpDQo+ICsgICAgICAgIHNlbGYuSXNDaGVja0JveE9wID0g RmFsc2UNCj4gKw0KPiArICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gKw0KPiArICAgICMgVmlz aXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJDaGVja0JveEZs YWdzLg0KPiArICAgIGRlZiB2aXNpdFZmckNoZWNrQm94RmxhZ3Moc2VsZiwgY3R4Og0KPiBWZnJT eW50YXhQYXJzZXIuVmZyQ2hlY2tCb3hGbGFnc0NvbnRleHQpOg0KPiArICAgICAgICBzZWxmLnZp c2l0Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAgICBmb3IgRmxhZ3NGaWVsZEN0eCBpbiBjdHguY2hl Y2tib3hGbGFnc0ZpZWxkKCk6DQo+ICsgICAgICAgICAgICBjdHguTEZsYWdzIHw9IEZsYWdzRmll bGRDdHguTEZsYWcNCj4gKyAgICAgICAgICAgIGN0eC5IRmxhZ3MgfD0gRmxhZ3NGaWVsZEN0eC5I RmxhZw0KPiArDQo+ICsgICAgICAgIHJldHVybiBjdHguSEZsYWdzLCBjdHguTEZsYWdzDQo+ICsN Cj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIj Y2hlY2tib3hGbGFnc0ZpZWxkLg0KPiArICAgIGRlZiB2aXNpdENoZWNrYm94RmxhZ3NGaWVsZChz ZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5DaGVja2JveEZsYWdzRmllbGRDb250ZXh0KToN Cj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKw0KPiArICAgICAgICBpZiBj dHguTnVtYmVyKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGlmIHNlbGYuVHJhbnNOdW0oY3R4 Lk51bWJlcigpKSAhPSAwOg0KPiArICAgICAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKFZm clJldHVybkNvZGUuVkZSX1JFVFVSTl9VTlNVUFBPUlRFRCwNCj4gY3R4LnN0YXJ0LmxpbmUpDQo+ ICsgICAgICAgIGVsaWYgY3R4LkRlZmF1bHRGbGFnKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAg IHNlbGYuRXJyb3JIYW5kbGVyKFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9VTlNVUFBPUlRFRCwN Cj4gY3R4LkQubGluZSwgY3R4LkQudGV4dCkNCj4gKyAgICAgICAgZWxpZiBjdHguTWFudWZhY3R1 cmluZ0ZsYWcoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoVmZy UmV0dXJuQ29kZS5WRlJfUkVUVVJOX1VOU1VQUE9SVEVELA0KPiBjdHguTS5saW5lLCBjdHguTS50 ZXh0KQ0KPiArICAgICAgICBlbGlmIGN0eC5DaGVja0JveERlZmF1bHRGbGFnKCkgIT0gTm9uZToN Cj4gKyAgICAgICAgICAgIGN0eC5MRmxhZyA9IDB4MDENCj4gKyAgICAgICAgZWxpZiBjdHguQ2hl Y2tCb3hEZWZhdWx0TWZnRmxhZygpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTEZsYWcg PSAweDAyDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICBjdHguSEZsYWcgPSBjdHgu cXVlc3Rpb25oZWFkZXJGbGFnc0ZpZWxkKCkuUUhGbGFnDQo+ICsNCj4gKyAgICAgICAgcmV0dXJu IGN0eC5IRmxhZywgY3R4LkxGbGFnDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBw cm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVtZW50QWN0aW9uLg0KPiArICAgIGRl ZiB2aXNpdFZmclN0YXRlbWVudEFjdGlvbihzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5W ZnJTdGF0ZW1lbnRBY3Rpb25Db250ZXh0KToNCj4gKyAgICAgICAgQU9iaiA9IElmckFjdGlvbigp DQo+ICsgICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBBT2JqDQo+ICsgICAgICAgIHNlbGYudmlzaXRD aGlsZHJlbihjdHgpDQo+ICsgICAgICAgIEFPYmouU2V0TGluZU5vKGN0eC5zdGFydC5saW5lKQ0K PiArICAgICAgICBBT2JqLlNldFF1ZXN0aW9uQ29uZmlnKHNlbGYuVHJhbnNOdW0oY3R4Lk51bWJl cigpKSkNCj4gKyAgICAgICAgaWYgY3R4LkZMQUdTKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAg IEFPYmouU2V0RmxhZ3MoY3R4LnZmckFjdGlvbkZsYWdzKCkuSEZsYWdzKQ0KPiArICAgICAgICBj dHguTm9kZS5CdWZmZXIgPSBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShBT2JqLkdldEluZm8oKSkN Cj4gKyAgICAgICAgc2VsZi5JbnNlcnRFbmROb2RlKGN0eC5Ob2RlLCBjdHguc3RvcC5saW5lKQ0K PiArDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBh cnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmckFjdGlvbkZsYWdzLg0KPiAr ICAgIGRlZiB2aXNpdFZmckFjdGlvbkZsYWdzKHNlbGYsIGN0eDogVmZyU3ludGF4UGFyc2VyLlZm ckFjdGlvbkZsYWdzQ29udGV4dCk6DQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgp DQo+ICsgICAgICAgIGZvciBGbGFnc0ZpZWxkQ3R4IGluIGN0eC5hY3Rpb25GbGFnc0ZpZWxkKCk6 DQo+ICsgICAgICAgICAgICBjdHguSEZsYWdzIHw9IEZsYWdzRmllbGRDdHguSEZsYWcNCj4gKw0K PiArICAgICAgICByZXR1cm4gY3R4LkhGbGFncw0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNl IHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI2FjdGlvbkZsYWdzRmllbGQuDQo+ICsg ICAgZGVmIHZpc2l0QWN0aW9uRmxhZ3NGaWVsZChzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNl ci5BY3Rpb25GbGFnc0ZpZWxkQ29udGV4dCk6DQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJl bihjdHgpDQo+ICsNCj4gKyAgICAgICAgaWYgY3R4Lk51bWJlcigpICE9IE5vbmU6DQo+ICsgICAg ICAgICAgICBpZiBzZWxmLlRyYW5zTnVtKGN0eC5OdW1iZXIoKSkgIT0gMDoNCj4gKyAgICAgICAg ICAgICAgICBzZWxmLkVycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fVU5TVVBQ T1JURUQsDQo+IGN0eC5OLmxpbmUpDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICBj dHguSEZsYWcgPSBjdHgucXVlc3Rpb25oZWFkZXJGbGFnc0ZpZWxkKCkuUUhGbGFnDQo+ICsgICAg ICAgIHJldHVybiBjdHguSEZsYWcNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHBy b2R1Y2VkIGJ5DQo+IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnROdW1lcmljVHlwZS4NCj4g KyAgICBkZWYgdmlzaXRWZnJTdGF0ZW1lbnROdW1lcmljVHlwZShzZWxmLCBjdHg6DQo+IFZmclN5 bnRheFBhcnNlci5WZnJTdGF0ZW1lbnROdW1lcmljVHlwZUNvbnRleHQpOg0KPiArICAgICAgICBz ZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAgICBpZiBjdHgudmZyU3RhdGVtZW50TnVt ZXJpYygpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBpZiBzZWxmLkN1cnJRZXN0VmFySW5mby5J c0JpdFZhcjoNCj4gKyAgICAgICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRO dW1lcmljKCkuR3VpZE5vZGUNCj4gKyAgICAgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICAg ICAgY3R4Lk5vZGUgPSBjdHgudmZyU3RhdGVtZW50TnVtZXJpYygpLk5vZGUNCj4gKyAgICAgICAg ZWxpZiBjdHgudmZyU3RhdGVtZW50T25lT2YoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgaWYg c2VsZi5DdXJyUWVzdFZhckluZm8uSXNCaXRWYXI6DQo+ICsgICAgICAgICAgICAgICAgY3R4Lk5v ZGUgPSBjdHgudmZyU3RhdGVtZW50T25lT2YoKS5HdWlkTm9kZQ0KPiArICAgICAgICAgICAgZWxz ZToNCj4gKyAgICAgICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRPbmVPZigp Lk5vZGUNCj4gKw0KPiArICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gKw0KPiArICAgICMgVmlz aXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFAtYXJzZXIjdmZyU3RhdGVtZW50 TnVtZXJpYy4NCj4gKyAgICBkZWYgdmlzaXRWZnJTdGF0ZW1lbnROdW1lcmljKHNlbGYsIGN0eDoN Cj4gVmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudE51bWVyaWNDb250ZXh0KToNCj4gKyAgICAg ICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgTk9iaiA9IGN0eC5Ob2RlLkRh dGENCj4gKw0KPiArICAgICAgICBOT2JqLlNldExpbmVObyhjdHguc3RhcnQubGluZSkNCj4gKyAg ICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5lDQo+ICsgICAgICAgIFVwZGF0ZVZhclR5cGUgPSBG YWxzZQ0KPiArDQo+ICsgICAgICAgICMgQ3JlYXRlIGEgR1VJRCBvcGNvZGUgdG8gd3JhcCB0aGUg bnVtZXJpYyBvcGNvZGUsIGlmIGl0IHJlZmVyIHRvIGJpdA0KPiB2YXJzdG9yZS4NCj4gKyAgICAg ICAgaWYgc2VsZi5DdXJyUWVzdFZhckluZm8uSXNCaXRWYXI6DQo+ICsgICAgICAgICAgICBHdWlk T2JqID0gSWZyR3VpZCgwKQ0KPiArICAgICAgICAgICAgR3VpZE9iai5TZXRHdWlkKEVES0lJX0lG Ul9CSVRfVkFSU1RPUkVfR1VJRCkNCj4gKyAgICAgICAgICAgIEd1aWRPYmouU2V0TGluZU5vKExp bmUpDQo+ICsgICAgICAgICAgICBHdWlkT2JqLlNldFNjb3BlKDEpICAjIHBvcw0KPiArICAgICAg ICAgICAgY3R4Lkd1aWROb2RlLkRhdGEgPSBHdWlkT2JqDQo+ICsgICAgICAgICAgICBjdHguR3Vp ZE5vZGUuQnVmZmVyID0gZ0Zvcm1Qa2cuU3RydWN0VG9TdHJlYW0oR3VpZE9iai5HZXRJbmZvKCkp DQo+ICsgICAgICAgICAgICBjdHguR3VpZE5vZGUuaW5zZXJ0Q2hpbGQoY3R4Lk5vZGUpDQo+ICsg ICAgICAgICAgICBzZWxmLkluc2VydEVuZE5vZGUoY3R4Lkd1aWROb2RlLCBjdHguc3RvcC5saW5l KQ0KPiArDQo+ICsgICAgICAgICMgY2hlY2sgZGF0YSB0eXBlDQo+ICsgICAgICAgIGlmIHNlbGYu Q3VyclFlc3RWYXJJbmZvLlZhclN0b3JlSWQgIT0gRUZJX1ZBUlNUT1JFX0lEX0lOVkFMSUQ6DQo+ ICsgICAgICAgICAgICBpZiBzZWxmLkN1cnJRZXN0VmFySW5mby5Jc0JpdFZhcjoNCj4gKyAgICAg ICAgICAgICAgICBMRmxhZ3MgPSBFREtJSV9JRlJfTlVNRVJJQ19TSVpFX0JJVCAmDQo+IHNlbGYu Q3VyclFlc3RWYXJJbmZvLlZhclRvdGFsU2l6ZQ0KPiArICAgICAgICAgICAgICAgIHNlbGYuRXJy b3JIYW5kbGVyKE5PYmouU2V0RmxhZ3NGb3JCaXRGaWVsZChOT2JqLkdldFFGbGFncygpLA0KPiBM RmxhZ3MpLCBMaW5lKQ0KPiArICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAgICBE YXRhVHlwZVNpemUsIFJldHVybkNvZGUgPQ0KPiBnVmZyVmFyRGF0YVR5cGVEQi5HZXREYXRhVHlw ZVNpemVCeURhdGFUeXBlKA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLkN1cnJRZXN0VmFy SW5mby5WYXJUeXBlDQo+ICsgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAgIHNl bGYuRXJyb3JIYW5kbGVyKFJldHVybkNvZGUsIExpbmUsICJOdW1lcmljIHZhcmlkIGlzIG5vdCB0 aGUgdmFsaWQNCj4gZGF0YSB0eXBlIikNCj4gKyAgICAgICAgICAgICAgICBpZiBEYXRhVHlwZVNp emUgIT0gMCBhbmQgRGF0YVR5cGVTaXplICE9DQo+IHNlbGYuQ3VyclFlc3RWYXJJbmZvLlZhclRv dGFsU2l6ZToNCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9Q QVJBTUVURVIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBMaW5lLA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgIk51bWVyaWMgdmFyaWQgZG9lc24ndCBzdXBwb3J0IGFycmF5IiwNCj4g KyAgICAgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5k bGVyKA0KPiArICAgICAgICAgICAgICAgICAgICBOT2JqLlNldEZsYWdzKE5PYmouR2V0UUZsYWdz KCksIHNlbGYuQ3VyclFlc3RWYXJJbmZvLlZhclR5cGUpLA0KPiBMaW5lDQo+ICsgICAgICAgICAg ICAgICAgKQ0KPiArDQo+ICsgICAgICAgIGlmIGN0eC5GTEFHUygpICE9IE5vbmU6DQo+ICsgICAg ICAgICAgICBVcGRhdGVWYXJUeXBlID0gY3R4LnZmck51bWVyaWNGbGFncygpLlVwZGF0ZVZhclR5 cGUNCj4gKyAgICAgICAgICAgIGlmIHNlbGYuQ3VyclFlc3RWYXJJbmZvLklzQml0VmFyOg0KPiAr ICAgICAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKA0KPiArICAgICAgICAgICAgICAgICAg ICBOT2JqLlNldEZsYWdzRm9yQml0RmllbGQoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBj dHgudmZyTnVtZXJpY0ZsYWdzKCkuSEZsYWdzLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg Y3R4LnZmck51bWVyaWNGbGFncygpLkxGbGFncywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg IGN0eC52ZnJOdW1lcmljRmxhZ3MoKS5Jc0Rpc3BsYXlTcGVjaWZpZWQsDQo+ICsgICAgICAgICAg ICAgICAgICAgICksDQo+ICsgICAgICAgICAgICAgICAgICAgIGN0eC5GLmxpbmUsDQo+ICsgICAg ICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAgICBz ZWxmLkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAgICAgICAgTk9iai5TZXRGbGFncygN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGN0eC52ZnJOdW1lcmljRmxhZ3MoKS5IRmxhZ3Ms DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBjdHgudmZyTnVtZXJpY0ZsYWdzKCkuTEZsYWdz LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgY3R4LnZmck51bWVyaWNGbGFncygpLklzRGlz cGxheVNwZWNpZmllZCwNCj4gKyAgICAgICAgICAgICAgICAgICAgKSwNCj4gKyAgICAgICAgICAg ICAgICAgICAgY3R4LkYubGluZSwNCj4gKyAgICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAg ICBOT2JqLlNldEZsYWdzU3RyZWFtKHNlbGYuRXh0cmFjdE9yaWdpbmFsVGV4dChjdHgudmZyTnVt ZXJpY0ZsYWdzKCkpKQ0KPiArDQo+ICsgICAgICAgIGlmIGN0eC5LZXkoKSAhPSBOb25lOg0KPiAr ICAgICAgICAgICAgS2V5ID0gc2VsZi5UcmFuc051bShjdHguTnVtYmVyKCkpDQo+ICsgICAgICAg ICAgICBzZWxmLkFzc2lnblF1ZXN0aW9uS2V5KE5PYmosIEtleSkNCj4gKyAgICAgICAgICAgIE5P YmouU2V0SGFzS2V5KFRydWUpDQo+ICsNCj4gKyAgICAgICAgTk9iai5TZXRIYXNTdGVwKGN0eC52 ZnJTZXRNaW5NYXhTdGVwKCkuU3RlcCgpICE9IE5vbmUpDQo+ICsNCj4gKyAgICAgICAgaWYgKHNl bGYuQ3VyclFlc3RWYXJJbmZvLklzQml0VmFyID09IEZhbHNlKSBhbmQgKA0KPiArICAgICAgICAg ICAgc2VsZi5DdXJyUWVzdFZhckluZm8uVmFyVHlwZSBub3QgaW4gQmFzaWNUeXBlcw0KPiArICAg ICAgICApOg0KPiArICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsgICAgICAgICAg ICAgICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLA0KPiArICAg ICAgICAgICAgICAgIExpbmUsDQo+ICsgICAgICAgICAgICAgICAgIk51bWVyaWMgcXVlc3Rpb24g b25seSBzdXBwb3J0IFVJTlQ4LCBVSU5UMTYsIFVJTlQzMiBhbmQNCj4gVUlOVDY0IGRhdGEgdHlw ZS4iLA0KPiArICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgICMgbW9kaWZ5IHRoZSBkYXRh IGZvciBuYW1ldmFsdWUNCj4gKyAgICAgICAgaWYgc2VsZi5DdXJyUWVzdFZhckluZm8uVmFyVHlw ZSAhPSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfNjQ6DQo+ICsgICAgICAgICAgICBpZiBzZWxmLkN1 cnJRZXN0VmFySW5mby5Jc0JpdFZhcjoNCj4gKyAgICAgICAgICAgICAgICBVcGRhdGVkTk9iaiA9 IElmck51bWVyaWMoRUZJX0lGUl9UWVBFX05VTV9TSVpFXzMyKQ0KPiArICAgICAgICAgICAgZWxz ZToNCj4gKyAgICAgICAgICAgICAgICBVcGRhdGVkTk9iaiA9IElmck51bWVyaWMoc2VsZi5DdXJy UWVzdFZhckluZm8uVmFyVHlwZSkNCj4gKyAgICAgICAgICAgIFVwZGF0ZWROT2JqLlFOYW1lID0g Tk9iai5RTmFtZQ0KPiArICAgICAgICAgICAgVXBkYXRlZE5PYmouVmFySWRTdHIgPSBOT2JqLlZh cklkU3RyDQo+ICsgICAgICAgICAgICBVcGRhdGVkTk9iai5IYXNRdWVzdGlvbklkID0gTk9iai5I YXNRdWVzdGlvbklkDQo+ICsgICAgICAgICAgICBVcGRhdGVkTk9iai5GbGFnc1N0cmVhbSA9IE5P YmouRmxhZ3NTdHJlYW0NCj4gKyAgICAgICAgICAgIFVwZGF0ZWROT2JqLkhhc0tleSA9IE5PYmou SGFzS2V5DQo+ICsgICAgICAgICAgICBVcGRhdGVkTk9iai5IYXNTdGVwID0gTk9iai5IYXNTdGVw DQo+ICsgICAgICAgICAgICBVcGRhdGVkTk9iai5MaW5lTm8gPSBOT2JqLkxpbmVObw0KPiArICAg ICAgICAgICAgVXBkYXRlZE5PYmouR2V0SW5mbygpLlF1ZXN0aW9uID0gTk9iai5HZXRJbmZvKCku UXVlc3Rpb24NCj4gKyAgICAgICAgICAgIFVwZGF0ZWROT2JqLkdldEluZm8oKS5GbGFncyA9IE5P YmouR2V0SW5mbygpLkZsYWdzDQo+ICsgICAgICAgICAgICBVcGRhdGVkTk9iai5HZXRJbmZvKCku RGF0YS5NaW5WYWx1ZSA9DQo+IE5PYmouR2V0SW5mbygpLkRhdGEuTWluVmFsdWUNCj4gKyAgICAg ICAgICAgIFVwZGF0ZWROT2JqLkdldEluZm8oKS5EYXRhLk1heFZhbHVlID0NCj4gTk9iai5HZXRJ bmZvKCkuRGF0YS5NYXhWYWx1ZQ0KPiArICAgICAgICAgICAgVXBkYXRlZE5PYmouR2V0SW5mbygp LkRhdGEuU3RlcCA9IE5PYmouR2V0SW5mbygpLkRhdGEuU3RlcA0KPiArICAgICAgICAgICAgTk9i aiA9IFVwZGF0ZWROT2JqDQo+ICsNCj4gKyAgICAgICAgY3R4Lk5vZGUuRGF0YSA9IE5PYmoNCj4g KyAgICAgICAgY3R4Lk5vZGUuQnVmZmVyID0gZ0Zvcm1Qa2cuU3RydWN0VG9TdHJlYW0oTk9iai5H ZXRJbmZvKCkpDQo+ICsgICAgICAgIHNlbGYuSW5zZXJ0RW5kTm9kZShjdHguTm9kZSwgY3R4LnN0 b3AubGluZSkNCj4gKyAgICAgICAgc2VsZi5DdXJyZW50TWluTWF4RGF0YSA9IE5vbmUNCj4gKw0K PiArICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0 cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJTZXRNaW5NYXhTdGVwLg0KPiArICAg IGRlZiB2aXNpdFZmclNldE1pbk1heFN0ZXAoc2VsZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIu VmZyU2V0TWluTWF4U3RlcENvbnRleHQpOg0KPiArICAgICAgICBJbnREZWNTdHlsZSA9IEZhbHNl DQo+ICsgICAgICAgIE9wT2JqID0gY3R4Lk5vZGUuRGF0YQ0KPiArICAgICAgICBpZiAoDQo+ICsg ICAgICAgICAgICAoc2VsZi5DdXJyUWVzdFZhckluZm8uSXNCaXRWYXIpDQo+ICsgICAgICAgICAg ICBhbmQgKE9wT2JqLkdldE9wQ29kZSgpID09IEVGSV9JRlJfTlVNRVJJQ19PUCkNCj4gKyAgICAg ICAgICAgIGFuZCAoKE9wT2JqLkdldE51bWVyaWNGbGFncygpICYgRURLSUlfSUZSX0RJU1BMQVlf QklUKSA9PSAwKQ0KPiArICAgICAgICApIG9yICgNCj4gKyAgICAgICAgICAgIChzZWxmLkN1cnJR ZXN0VmFySW5mby5Jc0JpdFZhciA9PSBGYWxzZSkNCj4gKyAgICAgICAgICAgIGFuZCAoT3BPYmou R2V0T3BDb2RlKCkgPT0gRUZJX0lGUl9OVU1FUklDX09QKQ0KPiArICAgICAgICAgICAgYW5kICgo T3BPYmouR2V0TnVtZXJpY0ZsYWdzKCkgJiBFRklfSUZSX0RJU1BMQVkpID09IDApDQo+ICsgICAg ICAgICk6DQo+ICsgICAgICAgICAgICBJbnREZWNTdHlsZSA9IFRydWUNCj4gKyAgICAgICAgTWlu TmVnYXRpdmUgPSBGYWxzZQ0KPiArICAgICAgICBNYXhOZWdhdGl2ZSA9IEZhbHNlDQo+ICsNCj4g KyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKw0KPiArICAgICAgICBNaW4gPSBz ZWxmLlRyYW5zTnVtKGN0eC5JLnRleHQpDQo+ICsgICAgICAgIE1heCA9IHNlbGYuVHJhbnNOdW0o Y3R4LkEudGV4dCkNCj4gKyAgICAgICAgU3RlcCA9IHNlbGYuVHJhbnNOdW0oY3R4LlMudGV4dCkg aWYgY3R4LlN0ZXAoKSAhPSBOb25lIGVsc2UgMA0KPiArDQo+ICsgICAgICAgIGlmIGN0eC5OMSAh PSBOb25lOg0KPiArICAgICAgICAgICAgTWluTmVnYXRpdmUgPSBUcnVlDQo+ICsNCj4gKyAgICAg ICAgaWYgSW50RGVjU3R5bGUgPT0gRmFsc2UgYW5kIE1pbk5lZ2F0aXZlID09IFRydWU6DQo+ICsg ICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAgICBWZnJSZXR1 cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+ICsgICAgICAgICAgICAgICAg Y3R4LkkubGluZSwNCj4gKyAgICAgICAgICAgICAgICAiJy0nIGNhbid0IGJlIHVzZWQgd2hlbiBu b3QgaW4gaW50IGRlY2ltYWwgdHlwZS4iLA0KPiArICAgICAgICAgICAgKQ0KPiArICAgICAgICBp ZiBzZWxmLkN1cnJRZXN0VmFySW5mby5Jc0JpdFZhcjoNCj4gKyAgICAgICAgICAgIGlmIChJbnRE ZWNTdHlsZSA9PSBGYWxzZSkgYW5kIChNaW4gPiAoMSA8PA0KPiBzZWxmLkN1cnJRZXN0VmFySW5m by5WYXJUb3RhbFNpemUpIC0gMSk6ICAjDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5FcnJvckhh bmRsZXIoDQo+ICsgICAgICAgICAgICAgICAgICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9J TlZBTElEX1BBUkFNRVRFUiwNCj4gKyAgICAgICAgICAgICAgICAgICAgY3R4LkkubGluZSwNCj4g KyAgICAgICAgICAgICAgICAgICAgIkJJVCB0eXBlIG1pbmltdW0gY2FuJ3Qgc21hbGwgdGhhbiAw LCBiaWdnZXIgdGhhbiAyXkJpdFdpZHRoIC0NCj4gMSIsDQo+ICsgICAgICAgICAgICAgICAgKQ0K PiArICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAgICBUeXBlID0gc2VsZi5DdXJy UWVzdFZhckluZm8uVmFyVHlwZQ0KPiArICAgICAgICAgICAgICAgIGlmIFR5cGUgPT0gRUZJX0lG Ul9UWVBFX05VTV9TSVpFXzY0Og0KPiArICAgICAgICAgICAgICAgICAgICBpZiBJbnREZWNTdHls ZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIE1pbk5lZ2F0aXZlOg0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIE1pbiA+IDB4ODAwMDAwMDAwMDAwMDAwMDoNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5f SU5WQUxJRF9QQVJBTUVURVIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjdHguSS5saW5lLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIklO VDY0IHR5cGUgbWluaW11bSBjYW4ndCBzbWFsbCB0aGFuIC0NCj4gMHg4MDAwMDAwMDAwMDAwMDAw LCBiaWcgdGhhbiAweDdGRkZGRkZGRkZGRkZGRkYiLA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOg0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIE1pbiA+IDB4N0ZGRkZGRkZGRkZGRkZGRjoNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5f SU5WQUxJRF9QQVJBTUVURVIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjdHguSS5saW5lLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIklO VDY0IHR5cGUgbWluaW11bSBjYW4ndCBzbWFsbCB0aGFuIC0NCj4gMHg4MDAwMDAwMDAwMDAwMDAw LCBiaWcgdGhhbiAweDdGRkZGRkZGRkZGRkZGRkYiLA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIE1pbk5lZ2F0aXZlOg0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgTWluID0gfk1pbiArIDENCj4gKw0KPiArICAgICAgICAg ICAgICAgIGlmIFR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzMyOg0KPiArICAgICAgICAg ICAgICAgICAgICBpZiBJbnREZWNTdHlsZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGlm IE1pbk5lZ2F0aXZlOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIE1pbiA+IDB4 ODAwMDAwMDA6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuRXJyb3JI YW5kbGVyKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmZyUmV0dXJu Q29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLA0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY3R4LkkubGluZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJJTlQzMiB0eXBlIG1pbmltdW0gY2FuJ3Qgc21hbGwgdGhhbiAtMHg4MDAw MDAwMCwgYmlnDQo+IHRoYW4gMHg3RkZGRkZGRiIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6DQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgTWluID4gMHg3RkZGRkZGRjoNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9Q QVJBTUVURVIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHguSS5s aW5lLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIklOVDMyIHR5cGUg bWluaW11bSBjYW4ndCBzbWFsbCB0aGFuIC0weDgwMDAwMDAwLCBiaWcNCj4gdGhhbiAweDdGRkZG RkZGIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAg ICAgICAgICAgICBpZiBNaW5OZWdhdGl2ZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIE1p biA9IH5NaW4gKyAxDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBpZiBUeXBlID09IEVGSV9JRlJf VFlQRV9OVU1fU0laRV8xNjoNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgSW50RGVjU3R5bGU6 DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiBNaW5OZWdhdGl2ZToNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiBNaW4gPiAweDgwMDA6DQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKA0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1F VEVSLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LkkubGluZSwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJTlQxNiB0eXBlIG1pbmlt dW0gY2FuJ3Qgc21hbGwgdGhhbiAtMHg4MDAwLCBiaWcgdGhhbg0KPiAweDdGRkYiLA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICBlbHNlOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIE1pbiA+IDB4N0ZGRjoN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZnJSZXR1cm5Db2RlLlZGUl9S RVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjdHguSS5saW5lLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIklOVDE2IHR5cGUgbWluaW11bSBjYW4ndCBzbWFsbCB0aGFuIC0weDgwMDAsIGJpZyB0aGFu DQo+IDB4N0ZGRiIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCj4gKyAg ICAgICAgICAgICAgICAgICAgaWYgTWluTmVnYXRpdmU6DQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICBNaW4gPSB+TWluICsgMQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgaWYgVHlwZSA9PSBF RklfSUZSX1RZUEVfTlVNX1NJWkVfODoNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgSW50RGVj U3R5bGU6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiBNaW5OZWdhdGl2ZToNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBNaW4gPiAweDgwOg0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BB UkFNRVRFUiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC5JLmxp bmUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSU5UOCB0eXBlIG1p bmltdW0gY2FuJ3Qgc21hbGwgdGhhbiAtMHg4MCwgYmlnIHRoYW4NCj4gMHg3RiIsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg IGVsc2U6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgTWluID4gMHg3RjoNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRV Uk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjdHguSS5saW5lLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IklOVDggdHlwZSBtaW5pbXVtIGNhbid0IHNtYWxsIHRoYW4gLTB4ODAsIGJpZyB0aGFuDQo+IDB4 N0YiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAg ICAgICAgICAgIGlmIE1pbk5lZ2F0aXZlOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgTWlu ID0gfk1pbiArIDENCj4gKw0KPiArICAgICAgICBpZiBjdHguTjIgIT0gTm9uZToNCj4gKyAgICAg ICAgICAgIE1heE5lZ2F0aXZlID0gVHJ1ZQ0KPiArICAgICAgICBpZiBJbnREZWNTdHlsZSA9PSBG YWxzZSBhbmQgTWF4TmVnYXRpdmUgPT0gVHJ1ZToNCj4gKyAgICAgICAgICAgIHNlbGYuRXJyb3JI YW5kbGVyKA0KPiArICAgICAgICAgICAgICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZB TElEX1BBUkFNRVRFUiwNCj4gKyAgICAgICAgICAgICAgICBjdHguQS5saW5lLA0KPiArICAgICAg ICAgICAgICAgICIgJy0nIGNhbid0IGJlIHVzZWQgd2hlbiBub3QgaW4gaW50IGRlY2ltYWwgdHlw ZS4iLA0KPiArICAgICAgICAgICAgKQ0KPiArICAgICAgICBpZiBzZWxmLkN1cnJRZXN0VmFySW5m by5Jc0JpdFZhcjoNCj4gKyAgICAgICAgICAgIGlmIChJbnREZWNTdHlsZSA9PSBGYWxzZSkgYW5k IChNYXggPiAoMSA8PA0KPiBzZWxmLkN1cnJRZXN0VmFySW5mby5WYXJUb3RhbFNpemUpIC0gMSk6 DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAg ICAgICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwNCj4gKyAg ICAgICAgICAgICAgICAgICAgY3R4LkEubGluZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgIkJJ VCB0eXBlIG1heGltdW0gY2FuJ3QgYmUgYmlnZ2VyIHRoYW4gMl5CaXRXaWR0aCAtMSIsDQo+ICsg ICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAg ICBUeXBlID0gc2VsZi5DdXJyUWVzdFZhckluZm8uVmFyVHlwZQ0KPiArICAgICAgICAgICAgICAg IGlmIFR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzY0Og0KPiArICAgICAgICAgICAgICAg ICAgICBpZiBJbnREZWNTdHlsZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIE1heE5l Z2F0aXZlOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIE1heCA+IDB4ODAwMDAw MDAwMDAwMDAwMDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5FcnJv ckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZnJSZXR1 cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjdHguQS5saW5lLA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIklOVDY0IHR5cGUgbWluaW11bSBjYW4ndCBzbWFsbCB0aGFuIC0NCj4g MHg4MDAwMDAwMDAwMDAwMDAwLCBiaWcgdGhhbiAweDdGRkZGRkZGRkZGRkZGRkYiLA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICBlbHNlOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIE1heCA+IDB4N0ZGRkZG RkZGRkZGRkZGRjoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5FcnJv ckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZnJSZXR1 cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjdHguQS5saW5lLA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIklOVDY0IHR5cGUgbWluaW11bSBjYW4ndCBzbWFsbCB0aGFuIC0NCj4g MHg4MDAwMDAwMDAwMDAwMDAwLCBiaWcgdGhhbiAweDdGRkZGRkZGRkZGRkZGRkYiLA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAgICAgICAgIGlm IE1heE5lZ2F0aXZlOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgTWF4ID0gfk1heCArIDEN Cj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBpZiBNYXggPCBNaW46ICAjDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LkEubGluZSwNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiTWF4aW11bSBjYW4ndCBiZSBsZXNzIHRoYW4gTWluaW11bSIsDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBpZiBU eXBlID09IEVGSV9JRlJfVFlQRV9OVU1fU0laRV8zMjoNCj4gKyAgICAgICAgICAgICAgICAgICAg aWYgSW50RGVjU3R5bGU6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiBNYXhOZWdhdGl2 ZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBNYXggPiAweDgwMDAwMDAwOg0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZmclJldHVybkNvZGUuVkZSX1JF VFVSTl9JTlZBTElEX1BBUkFNRVRFUiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGN0eC5BLmxpbmUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiSU5UMzIgdHlwZSBtaW5pbXVtIGNhbid0IHNtYWxsIHRoYW4gLTB4ODAwMDAwMDAsIGJpZw0K PiB0aGFuIDB4N0ZGRkZGRkYiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAp DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmIE1heCA+IDB4N0ZGRkZGRkY6DQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLA0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LkEubGluZSwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJTlQzMiB0eXBlIG1pbmltdW0gY2Fu J3Qgc21hbGwgdGhhbiAtMHg4MDAwMDAwMCwgYmlnDQo+IHRoYW4gMHg3RkZGRkZGRiIsDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICAgICAg aWYgTWF4TmVnYXRpdmU6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBNYXggPSB+TWF4ICsg MQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIE1heCA8IE1pbjogICMNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHguQS5saW5lLA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJNYXhpbXVtIGNhbid0IGJlIGxlc3MgdGhhbiBNaW5pbXVtIiwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICAgICAgICAgIGlm IFR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzE2Og0KPiArICAgICAgICAgICAgICAgICAg ICBpZiBJbnREZWNTdHlsZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIE1heE5lZ2F0 aXZlOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIE1heCA+IDB4ODAwMDoNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRV Uk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjdHguQS5saW5lLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IklOVDE2IHR5cGUgbWluaW11bSBjYW4ndCBzbWFsbCB0aGFuIC0weDgwMDAsIGJpZyB0aGFuDQo+ IDB4N0ZGRiIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgTWF4ID4gMHg3RkZGOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZm clJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC5BLmxpbmUsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiSU5UMTYgdHlwZSBtaW5pbXVtIGNhbid0IHNtYWxsIHRoYW4g LTB4ODAwMCwgYmlnIHRoYW4NCj4gMHg3RkZGIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAgICAgICBpZiBNYXhOZWdhdGl2ZToNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgIE1heCA9IH5NYXggKyAxDQo+ICsNCj4gKyAgICAgICAgICAg ICAgICAgICAgaWYgTWF4IDwgTWluOiAgIw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5FcnJvckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmZyUmV0dXJu Q29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLA0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGN0eC5BLmxpbmUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1h eGltdW0gY2FuJ3QgYmUgbGVzcyB0aGFuIE1pbmltdW0iLA0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgaWYgVHlwZSA9PSBFRklfSUZSX1RZUEVf TlVNX1NJWkVfODoNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgSW50RGVjU3R5bGU6DQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICBpZiBNYXhOZWdhdGl2ZToNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiBNYXggPiAweDgwOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC5BLmxpbmUsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSU5UOCB0eXBlIG1pbmltdW0gY2FuJ3Qg c21hbGwgdGhhbiAtMHg4MCwgYmlnIHRoYW4NCj4gMHg3RiIsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6DQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgTWF4ID4gMHg3RjoNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9Q QVJBTUVURVIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHguQS5s aW5lLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIklOVDggdHlwZSBt aW5pbXVtIGNhbid0IHNtYWxsIHRoYW4gLTB4ODAsIGJpZyB0aGFuDQo+IDB4N0YiLA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAgICAgICAgIGlm IE1heE5lZ2F0aXZlOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgTWF4ID0gfk1heCArIDEN Cj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBpZiBNYXggPCBNaW46ICAjDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LkEubGluZSwNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiTWF4aW11bSBjYW4ndCBiZSBsZXNzIHRoYW4gTWluaW11bSIsDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgT3BPYmouU2V0TWlu TWF4U3RlcERhdGEoTWluLCBNYXgsIFN0ZXApDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0K PiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFy c2VyI3Zmck51bWVyaWNGbGFncy4NCj4gKyAgICBkZWYgdmlzaXRWZnJOdW1lcmljRmxhZ3Moc2Vs ZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIuVmZyTnVtZXJpY0ZsYWdzQ29udGV4dCk6DQo+ICsg ICAgICAgICMgY2hlY2sgZGF0YSB0eXBlIGZsYWcNCj4gKyAgICAgICAgY3R4LkxGbGFncyA9IHNl bGYuQ3VyclFlc3RWYXJJbmZvLlZhclR5cGUgJiBFRklfSUZSX05VTUVSSUNfU0laRQ0KPiArICAg ICAgICBWYXJTdG9yZVR5cGUgPQ0KPiBnVmZyRGF0YVN0b3JhZ2UuR2V0VmFyU3RvcmVUeXBlKHNl bGYuQ3VyclFlc3RWYXJJbmZvLlZhclN0b3JlSWQpDQo+ICsgICAgICAgIExpbmUgPSBjdHguc3Rh cnQubGluZQ0KPiArICAgICAgICBJc1NldFR5cGUgPSBGYWxzZQ0KPiArICAgICAgICBzZWxmLnZp c2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ICsgICAgICAgIGZvciBGbGFnc0ZpZWxkQ3R4IGluIGN0 eC5udW1lcmljRmxhZ3NGaWVsZCgpOg0KPiArICAgICAgICAgICAgY3R4LkhGbGFncyB8PSBGbGFn c0ZpZWxkQ3R4LkhGbGFnDQo+ICsgICAgICAgICAgICBjdHguSXNEaXNwbGF5U3BlY2lmaWVkIHw9 IEZsYWdzRmllbGRDdHguSXNEaXNwbGF5U3BlY2lmaWVkDQo+ICsgICAgICAgICAgICBJc1NldFR5 cGUgfD0gRmxhZ3NGaWVsZEN0eC5Jc1NldFR5cGUNCj4gKyAgICAgICAgICAgIGlmIEZsYWdzRmll bGRDdHguTnVtZXJpY1NpemVPbmUoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgICAgIGlmIHNl bGYuQ3VyclFlc3RWYXJJbmZvLklzQml0VmFyID09IEZhbHNlOg0KPiArICAgICAgICAgICAgICAg ICAgICBjdHguTEZsYWdzID0gKGN0eC5MRmxhZ3MgJiB+RUZJX0lGUl9OVU1FUklDX1NJWkUpIHwN Cj4gRUZJX0lGUl9OVU1FUklDX1NJWkVfMQ0KPiArDQo+ICsgICAgICAgICAgICBpZiBGbGFnc0Zp ZWxkQ3R4Lk51bWVyaWNTaXplVHdvKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgICAgICBpZiBz ZWxmLkN1cnJRZXN0VmFySW5mby5Jc0JpdFZhciA9PSBGYWxzZToNCj4gKyAgICAgICAgICAgICAg ICAgICAgY3R4LkxGbGFncyA9IChjdHguTEZsYWdzICYgfkVGSV9JRlJfTlVNRVJJQ19TSVpFKSB8 DQo+IEVGSV9JRlJfTlVNRVJJQ19TSVpFXzINCj4gKw0KPiArICAgICAgICAgICAgaWYgRmxhZ3NG aWVsZEN0eC5OdW1lcmljU2l6ZUZvdXIoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgICAgIGlm IHNlbGYuQ3VyclFlc3RWYXJJbmZvLklzQml0VmFyID09IEZhbHNlOg0KPiArICAgICAgICAgICAg ICAgICAgICBjdHguTEZsYWdzID0gKGN0eC5MRmxhZ3MgJiB+RUZJX0lGUl9OVU1FUklDX1NJWkUp IHwNCj4gRUZJX0lGUl9OVU1FUklDX1NJWkVfNA0KPiArDQo+ICsgICAgICAgICAgICBpZiBGbGFn c0ZpZWxkQ3R4Lk51bWVyaWNTaXplRWlnaHQoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgICAg IGlmIHNlbGYuQ3VyclFlc3RWYXJJbmZvLklzQml0VmFyID09IEZhbHNlOg0KPiArICAgICAgICAg ICAgICAgICAgICBjdHguTEZsYWdzID0gKGN0eC5MRmxhZ3MgJiB+RUZJX0lGUl9OVU1FUklDX1NJ WkUpIHwNCj4gRUZJX0lGUl9OVU1FUklDX1NJWkVfOA0KPiArDQo+ICsgICAgICAgICAgICBpZiBG bGFnc0ZpZWxkQ3R4LkRpc1BsYXlJbnREZWMoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgICAg IGlmIHNlbGYuQ3VyclFlc3RWYXJJbmZvLklzQml0VmFyID09IEZhbHNlOg0KPiArICAgICAgICAg ICAgICAgICAgICBjdHguTEZsYWdzID0gKGN0eC5MRmxhZ3MgJiB+RUZJX0lGUl9ESVNQTEFZKSB8 DQo+IEVGSV9JRlJfRElTUExBWV9JTlRfREVDDQo+ICsgICAgICAgICAgICAgICAgZWxzZToNCj4g KyAgICAgICAgICAgICAgICAgICAgY3R4LkxGbGFncyA9ICgNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgIGN0eC5MRmxhZ3MgJiB+RURLSUlfSUZSX0RJU1BMQVlfQklUDQo+ICsgICAgICAgICAg ICAgICAgICAgICkgfCBFREtJSV9JRlJfRElTUExBWV9JTlRfREVDX0JJVA0KPiArDQo+ICsgICAg ICAgICAgICBpZiBGbGFnc0ZpZWxkQ3R4LkRpc1BsYXlVSW50RGVjKCkgIT0gTm9uZToNCj4gKyAg ICAgICAgICAgICAgICBpZiBzZWxmLkN1cnJRZXN0VmFySW5mby5Jc0JpdFZhciA9PSBGYWxzZToN Cj4gKyAgICAgICAgICAgICAgICAgICAgY3R4LkxGbGFncyA9IChjdHguTEZsYWdzICYgfkVGSV9J RlJfRElTUExBWSkgfA0KPiBFRklfSUZSX0RJU1BMQVlfVUlOVF9ERUMNCj4gKyAgICAgICAgICAg ICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgICAgICBjdHguTEZsYWdzID0gKA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgY3R4LkxGbGFncyAmIH5FREtJSV9JRlJfRElTUExBWV9CSVQN Cj4gKyAgICAgICAgICAgICAgICAgICAgKSB8IEVES0lJX0lGUl9ESVNQTEFZX1VJTlRfREVDX0JJ VA0KPiArDQo+ICsgICAgICAgICAgICBpZiBGbGFnc0ZpZWxkQ3R4LkRpc1BsYXlVSW50SGV4KCkg IT0gTm9uZToNCj4gKyAgICAgICAgICAgICAgICBpZiBzZWxmLkN1cnJRZXN0VmFySW5mby5Jc0Jp dFZhciA9PSBGYWxzZToNCj4gKyAgICAgICAgICAgICAgICAgICAgY3R4LkxGbGFncyA9IChjdHgu TEZsYWdzICYgfkVGSV9JRlJfRElTUExBWSkgfA0KPiBFRklfSUZSX0RJU1BMQVlfVUlOVF9IRVgN Cj4gKyAgICAgICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgICAgICBjdHguTEZs YWdzID0gKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgY3R4LkxGbGFncyAmIH5FREtJSV9J RlJfRElTUExBWV9CSVQNCj4gKyAgICAgICAgICAgICAgICAgICAgKSB8IEVES0lJX0lGUl9ESVNQ TEFZX1VJTlRfSEVYX0JJVA0KPiArDQo+ICsgICAgICAgIFZhclR5cGUgPSBzZWxmLkN1cnJRZXN0 VmFySW5mby5WYXJUeXBlDQo+ICsgICAgICAgIGlmIHNlbGYuQ3VyclFlc3RWYXJJbmZvLklzQml0 VmFyID09IEZhbHNlOg0KPiArICAgICAgICAgICAgaWYgc2VsZi5DdXJyUWVzdFZhckluZm8uVmFy U3RvcmVJZCAhPSBFRklfVkFSU1RPUkVfSURfSU5WQUxJRDoNCj4gKyAgICAgICAgICAgICAgICBp ZiAoDQo+ICsgICAgICAgICAgICAgICAgICAgIFZhclN0b3JlVHlwZSA9PQ0KPiBFRklfVkZSX1ZB UlNUT1JFX1RZUEUuRUZJX1ZGUl9WQVJTVE9SRV9CVUZGRVINCj4gKyAgICAgICAgICAgICAgICAg ICAgb3IgVmFyU3RvcmVUeXBlID09DQo+IEVGSV9WRlJfVkFSU1RPUkVfVFlQRS5FRklfVkZSX1ZB UlNUT1JFX0VGSQ0KPiArICAgICAgICAgICAgICAgICk6DQo+ICsgICAgICAgICAgICAgICAgICAg IGlmIHNlbGYuQ3VyclFlc3RWYXJJbmZvLlZhclR5cGUgIT0gKGN0eC5MRmxhZ3MgJg0KPiBFRklf SUZSX05VTUVSSUNfU0laRSk6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkVycm9y SGFuZGxlcigNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZnJSZXR1cm5Db2RlLlZG Ul9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGluZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTnVtZXJpYyBGbGFnIGlz IG5vdCBzYW1lIHRvIE51bWVyaWMgVmFyRGF0YSB0eXBlIiwNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgICAg ICAjIHVwZGF0ZSBkYXRhIHR5cGUgZm9yIG5hbWUvdmFsdWUgc3RvcmUNCj4gKyAgICAgICAgICAg ICAgICAgICAgc2VsZi5DdXJyUWVzdFZhckluZm8uVmFyVHlwZSA9IGN0eC5MRmxhZ3MgJg0KPiBF RklfSUZSX05VTUVSSUNfU0laRQ0KPiArICAgICAgICAgICAgICAgICAgICBTaXplLCBfID0gZ1Zm clZhckRhdGFUeXBlREIuR2V0RGF0YVR5cGVTaXplQnlEYXRhVHlwZSgNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuQ3VyclFlc3RWYXJJbmZvLlZhclR5cGUNCj4gKyAgICAgICAgICAg ICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLkN1cnJRZXN0VmFySW5mby5W YXJUb3RhbFNpemUgPSBTaXplDQo+ICsgICAgICAgICAgICBlbGlmIElzU2V0VHlwZToNCj4gKyAg ICAgICAgICAgICAgICBzZWxmLkN1cnJRZXN0VmFySW5mby5WYXJUeXBlID0gY3R4LkxGbGFncyAm IEVGSV9JRlJfTlVNRVJJQ19TSVpFDQo+ICsNCj4gKyAgICAgICAgZWxpZiAoDQo+ICsgICAgICAg ICAgICBzZWxmLkN1cnJRZXN0VmFySW5mby5WYXJTdG9yZUlkICE9IEVGSV9WQVJTVE9SRV9JRF9J TlZBTElEDQo+ICsgICAgICAgICAgICBhbmQgc2VsZi5DdXJyUWVzdFZhckluZm8uSXNCaXRWYXIN Cj4gKyAgICAgICAgKToNCj4gKyAgICAgICAgICAgIGN0eC5MRmxhZ3MgJj0gRURLSUlfSUZSX0RJ U1BMQVlfQklUDQo+ICsgICAgICAgICAgICBjdHguTEZsYWdzIHw9IEVES0lJX0lGUl9OVU1FUklD X1NJWkVfQklUICYNCj4gc2VsZi5DdXJyUWVzdFZhckluZm8uVmFyVG90YWxTaXplDQo+ICsNCj4g KyAgICAgICAgaWYgVmFyVHlwZSAhPSBzZWxmLkN1cnJRZXN0VmFySW5mby5WYXJUeXBlOg0KPiAr ICAgICAgICAgICAgY3R4LlVwZGF0ZVZhclR5cGUgPSBUcnVlDQo+ICsNCj4gKyAgICAgICAgcmV0 dXJuIGN0eC5IRmxhZ3MsIGN0eC5MRmxhZ3MNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0 cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNudW1lcmljRmxhZ3NGaWVsZC4NCj4gKyAg ICBkZWYgdmlzaXROdW1lcmljRmxhZ3NGaWVsZChzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNl ci5OdW1lcmljRmxhZ3NGaWVsZENvbnRleHQpOg0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRy ZW4oY3R4KQ0KPiArDQo+ICsgICAgICAgIExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiArICAgICAg ICBpZiBjdHguTnVtYmVyKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGlmIHNlbGYuVHJhbnNO dW0oY3R4Lk4udGV4dCkgIT0gMDoNCj4gKyAgICAgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxl cihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fVU5TVVBQT1JURUQsDQo+IExpbmUpDQo+ICsNCj4g KyAgICAgICAgaWYgY3R4Lk51bWVyaWNTaXplT25lKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAg IGlmIHNlbGYuQ3VyclFlc3RWYXJJbmZvLklzQml0VmFyID09IEZhbHNlOg0KPiArICAgICAgICAg ICAgICAgIGN0eC5Jc1NldFR5cGUgPSBUcnVlDQo+ICsgICAgICAgICAgICBlbHNlOg0KPiArICAg ICAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKA0KPiArICAgICAgICAgICAgICAgICAgICBW ZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+ICsgICAgICAgICAg ICAgICAgICAgIExpbmUsDQo+ICsgICAgICAgICAgICAgICAgICAgICJDYW4gbm90IHNwZWNpZnkg dGhlIHNpemUgb2YgdGhlIG51bWVyaWMgdmFsdWUgZm9yIEJJVCBmaWVsZCIsDQo+ICsgICAgICAg ICAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgIGlmIGN0eC5OdW1lcmljU2l6ZVR3bygpICE9IE5v bmU6DQo+ICsgICAgICAgICAgICBpZiBzZWxmLkN1cnJRZXN0VmFySW5mby5Jc0JpdFZhciA9PSBG YWxzZToNCj4gKyAgICAgICAgICAgICAgICBjdHguSXNTZXRUeXBlID0gVHJ1ZQ0KPiArICAgICAg ICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigNCj4gKyAg ICAgICAgICAgICAgICAgICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1F VEVSLA0KPiArICAgICAgICAgICAgICAgICAgICBMaW5lLA0KPiArICAgICAgICAgICAgICAgICAg ICAiQ2FuIG5vdCBzcGVjaWZ5IHRoZSBzaXplIG9mIHRoZSBudW1lcmljIHZhbHVlIGZvciBCSVQg ZmllbGQiLA0KPiArICAgICAgICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICBpZiBjdHguTnVt ZXJpY1NpemVGb3VyKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGlmIHNlbGYuQ3VyclFlc3RW YXJJbmZvLklzQml0VmFyID09IEZhbHNlOg0KPiArICAgICAgICAgICAgICAgIGN0eC5Jc1NldFR5 cGUgPSBUcnVlDQo+ICsgICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgIHNlbGYu RXJyb3JIYW5kbGVyKA0KPiArICAgICAgICAgICAgICAgICAgICBWZnJSZXR1cm5Db2RlLlZGUl9S RVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+ICsgICAgICAgICAgICAgICAgICAgIExpbmUsDQo+ ICsgICAgICAgICAgICAgICAgICAgICJDYW4gbm90IHNwZWNpZnkgdGhlIHNpemUgb2YgdGhlIG51 bWVyaWMgdmFsdWUgZm9yIEJJVCBmaWVsZCIsDQo+ICsgICAgICAgICAgICAgICAgKQ0KPiArDQo+ ICsgICAgICAgIGlmIGN0eC5OdW1lcmljU2l6ZUVpZ2h0KCkgIT0gTm9uZToNCj4gKyAgICAgICAg ICAgIGlmIHNlbGYuQ3VyclFlc3RWYXJJbmZvLklzQml0VmFyID09IEZhbHNlOg0KPiArICAgICAg ICAgICAgICAgIGN0eC5Jc1NldFR5cGUgPSBUcnVlDQo+ICsgICAgICAgICAgICBlbHNlOg0KPiAr ICAgICAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKA0KPiArICAgICAgICAgICAgICAgICAg ICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+ICsgICAgICAg ICAgICAgICAgICAgIExpbmUsDQo+ICsgICAgICAgICAgICAgICAgICAgICJDYW4gbm90IHNwZWNp ZnkgdGhlIHNpemUgb2YgdGhlIG51bWVyaWMgdmFsdWUgZm9yIEJJVCBmaWVsZCIsDQo+ICsgICAg ICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgIGlmIGN0eC5EaXNQbGF5SW50RGVjKCkgIT0g Tm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5Jc0Rpc3BsYXlTcGVjaWZpZWQgPSBUcnVlDQo+ICsN Cj4gKyAgICAgICAgaWYgY3R4LkRpc1BsYXlVSW50RGVjKCkgIT0gTm9uZToNCj4gKyAgICAgICAg ICAgIGN0eC5Jc0Rpc3BsYXlTcGVjaWZpZWQgPSBUcnVlDQo+ICsNCj4gKyAgICAgICAgaWYgY3R4 LkRpc1BsYXlVSW50SGV4KCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5Jc0Rpc3BsYXlT cGVjaWZpZWQgPSBUcnVlDQo+ICsNCj4gKyAgICAgICAgaWYgY3R4LnF1ZXN0aW9uaGVhZGVyRmxh Z3NGaWVsZCgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguSEZsYWcgPSBjdHgucXVlc3Rp b25oZWFkZXJGbGFnc0ZpZWxkKCkuUUhGbGFnDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5I RmxhZw0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3lu dGF4UGFyc2VyI3ZmclN0YXRlbWVudE9uZU9mLg0KPiArICAgIGRlZiB2aXNpdFZmclN0YXRlbWVu dE9uZU9mKHNlbGYsIGN0eDoNCj4gVmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudE9uZU9mQ29u dGV4dCk6DQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsgICAgICAgIFVw ZGF0ZVZhclR5cGUgPSBGYWxzZQ0KPiArICAgICAgICBPT2JqID0gY3R4Lk5vZGUuRGF0YQ0KPiAr ICAgICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gKyAgICAgICAgaWYgc2VsZi5DdXJyUWVz dFZhckluZm8uSXNCaXRWYXI6DQo+ICsgICAgICAgICAgICBHdWlkT2JqID0gSWZyR3VpZCgwKQ0K PiArICAgICAgICAgICAgR3VpZE9iai5TZXRHdWlkKEVES0lJX0lGUl9CSVRfVkFSU1RPUkVfR1VJ RCkNCj4gKyAgICAgICAgICAgIEd1aWRPYmouU2V0TGluZU5vKGN0eC5zdGFydC5saW5lKQ0KPiAr ICAgICAgICAgICAgR3VpZE9iai5TZXRTY29wZSgxKSAgIyBwb3MNCj4gKyAgICAgICAgICAgIGN0 eC5HdWlkTm9kZS5EYXRhID0gR3VpZE9iag0KPiArICAgICAgICAgICAgY3R4Lkd1aWROb2RlLkJ1 ZmZlciA9IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFtKEd1aWRPYmouR2V0SW5mbygpKQ0KPiArICAg ICAgICAgICAgY3R4Lkd1aWROb2RlLmluc2VydENoaWxkKGN0eC5Ob2RlKQ0KPiArICAgICAgICAg ICAgc2VsZi5JbnNlcnRFbmROb2RlKGN0eC5HdWlkTm9kZSwgY3R4LnN0b3AubGluZSkNCj4gKw0K PiArICAgICAgICAjIGNoZWNrIGRhdGEgdHlwZQ0KPiArICAgICAgICBpZiBzZWxmLkN1cnJRZXN0 VmFySW5mby5WYXJTdG9yZUlkICE9IEVGSV9WQVJTVE9SRV9JRF9JTlZBTElEOg0KPiArICAgICAg ICAgICAgaWYgc2VsZi5DdXJyUWVzdFZhckluZm8uSXNCaXRWYXI6DQo+ICsgICAgICAgICAgICAg ICAgTEZsYWdzID0gRURLSUlfSUZSX05VTUVSSUNfU0laRV9CSVQgJg0KPiBzZWxmLkN1cnJRZXN0 VmFySW5mby5WYXJUb3RhbFNpemUNCj4gKyAgICAgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxl cihPT2JqLlNldEZsYWdzRm9yQml0RmllbGQoT09iai5HZXRRRmxhZ3MoKSwNCj4gTEZsYWdzKSwg TGluZSkNCj4gKyAgICAgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICAgICAgRGF0YVR5cGVT aXplLCBSZXR1cm5Db2RlID0NCj4gZ1ZmclZhckRhdGFUeXBlREIuR2V0RGF0YVR5cGVTaXplQnlE YXRhVHlwZSgNCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5DdXJyUWVzdFZhckluZm8uVmFy VHlwZQ0KPiArICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICBzZWxmLkVycm9y SGFuZGxlcihSZXR1cm5Db2RlLCBMaW5lLCAiT25lT2YgdmFyaWQgaXMgbm90IHRoZSB2YWxpZA0K PiBkYXRhIHR5cGUiKQ0KPiArICAgICAgICAgICAgICAgIGlmIERhdGFUeXBlU2l6ZSAhPSAwIGFu ZCBEYXRhVHlwZVNpemUgIT0NCj4gc2VsZi5DdXJyUWVzdFZhckluZm8uVmFyVG90YWxTaXplOg0K PiArICAgICAgICAgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIExpbmUsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAiT25lT2YgdmFyaWQgZG9lc24ndCBzdXBwb3J0IGFycmF5IiwNCj4gKyAgICAgICAgICAg ICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKA0KPiArICAg ICAgICAgICAgICAgICAgICBPT2JqLlNldEZsYWdzKE9PYmouR2V0UUZsYWdzKCksIHNlbGYuQ3Vy clFlc3RWYXJJbmZvLlZhclR5cGUpLA0KPiBMaW5lDQo+ICsgICAgICAgICAgICAgICAgKQ0KPiAr ICAgICAgICBpZiBjdHguRkxBR1MoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgVXBkYXRlVmFy VHlwZSA9IGN0eC52ZnJPbmVvZkZsYWdzRmllbGQoKS5VcGRhdGVWYXJUeXBlDQo+ICsgICAgICAg ICAgICBpZiBzZWxmLkN1cnJRZXN0VmFySW5mby5Jc0JpdFZhcjoNCj4gKyAgICAgICAgICAgICAg ICBzZWxmLkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAgICAgICAgT09iai5TZXRGbGFn c0ZvckJpdEZpZWxkKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgY3R4LnZmck9uZW9mRmxh Z3NGaWVsZCgpLkhGbGFncywgY3R4LnZmck9uZW9mRmxhZ3NGaWVsZCgpLkxGbGFncw0KPiArICAg ICAgICAgICAgICAgICAgICApLA0KPiArICAgICAgICAgICAgICAgICAgICBjdHguRi5saW5lLA0K PiArICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAg ICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAgICAgICAgIE9PYmouU2V0 RmxhZ3MoY3R4LnZmck9uZW9mRmxhZ3NGaWVsZCgpLkhGbGFncywNCj4gY3R4LnZmck9uZW9mRmxh Z3NGaWVsZCgpLkxGbGFncyksDQo+ICsgICAgICAgICAgICAgICAgICAgIGN0eC5GLmxpbmUsDQo+ ICsgICAgICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgIGlmIChzZWxmLkN1cnJRZXN0VmFy SW5mby5Jc0JpdFZhciA9PSBGYWxzZSkgYW5kICgNCj4gKyAgICAgICAgICAgIHNlbGYuQ3VyclFl c3RWYXJJbmZvLlZhclR5cGUgbm90IGluIEJhc2ljVHlwZXMNCj4gKyAgICAgICAgKToNCj4gKyAg ICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKA0KPiArICAgICAgICAgICAgICAgIFZmclJldHVy bkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwNCj4gKyAgICAgICAgICAgICAgICBM aW5lLA0KPiArICAgICAgICAgICAgICAgICJPbmVPZiBxdWVzdGlvbiBvbmx5IHN1cHBvcnQgVUlO VDgsIFVJTlQxNiwgVUlOVDMyIGFuZCBVSU5UNjQNCj4gZGF0YSB0eXBlLiIsDQo+ICsgICAgICAg ICAgICApDQo+ICsNCj4gKyAgICAgICAgIyBtb2RpZnkgdGhlIGRhdGEgVmFydHlwZSBmb3IgTmFt ZVZhbHVlDQo+ICsgICAgICAgIGlmIHNlbGYuQ3VyclFlc3RWYXJJbmZvLlZhclR5cGUgIT0gRUZJ X0lGUl9UWVBFX05VTV9TSVpFXzY0Og0KPiArICAgICAgICAgICAgaWYgc2VsZi5DdXJyUWVzdFZh ckluZm8uSXNCaXRWYXI6DQo+ICsgICAgICAgICAgICAgICAgVXBkYXRlZE9PYmogPSBJZnJPbmVP ZihFRklfSUZSX1RZUEVfTlVNX1NJWkVfMzIpDQo+ICsgICAgICAgICAgICBlbHNlOg0KPiArICAg ICAgICAgICAgICAgIFVwZGF0ZWRPT2JqID0gSWZyT25lT2Yoc2VsZi5DdXJyUWVzdFZhckluZm8u VmFyVHlwZSkNCj4gKyAgICAgICAgICAgIFVwZGF0ZWRPT2JqLlFOYW1lID0gT09iai5RTmFtZQ0K PiArICAgICAgICAgICAgVXBkYXRlZE9PYmouVmFySWRTdHIgPSBPT2JqLlZhcklkU3RyDQo+ICsg ICAgICAgICAgICBVcGRhdGVkT09iai5IYXNRdWVzdGlvbklkID0gT09iai5IYXNRdWVzdGlvbklk DQo+ICsgICAgICAgICAgICBVcGRhdGVkT09iai5HZXRJbmZvKCkuUXVlc3Rpb24gPSBPT2JqLkdl dEluZm8oKS5RdWVzdGlvbg0KPiArICAgICAgICAgICAgVXBkYXRlZE9PYmouR2V0SW5mbygpLkZs YWdzID0gT09iai5HZXRJbmZvKCkuRmxhZ3MNCj4gKyAgICAgICAgICAgIFVwZGF0ZWRPT2JqLkdl dEluZm8oKS5EYXRhLk1pblZhbHVlID0NCj4gT09iai5HZXRJbmZvKCkuRGF0YS5NaW5WYWx1ZQ0K PiArICAgICAgICAgICAgVXBkYXRlZE9PYmouR2V0SW5mbygpLkRhdGEuTWF4VmFsdWUgPQ0KPiBP T2JqLkdldEluZm8oKS5EYXRhLk1heFZhbHVlDQo+ICsgICAgICAgICAgICBVcGRhdGVkT09iai5H ZXRJbmZvKCkuRGF0YS5TdGVwID0gT09iai5HZXRJbmZvKCkuRGF0YS5TdGVwDQo+ICsgICAgICAg ICAgICBPT2JqID0gVXBkYXRlZE9PYmoNCj4gKw0KPiArICAgICAgICBPT2JqLlNldExpbmVObyhj dHguc3RhcnQubGluZSkNCj4gKyAgICAgICAgaWYgY3R4LkZMQUdTKCkgIT0gTm9uZToNCj4gKw0K PiBPT2JqLlNldEZsYWdzU3RyZWFtKHNlbGYuRXh0cmFjdE9yaWdpbmFsVGV4dChjdHgudmZyT25l b2ZGbGFnc0ZpZWxkKCkpKQ0KPiArDQo+ICsgICAgICAgIGlmIGN0eC52ZnJTZXRNaW5NYXhTdGVw KCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIE9PYmouU2V0SGFzTWluTWF4KFRydWUpDQo+ICsg ICAgICAgICAgICBpZiBjdHgudmZyU2V0TWluTWF4U3RlcCgpLlN0ZXAoKSAhPSBOb25lOg0KPiAr ICAgICAgICAgICAgICAgIE9PYmouU2V0SGFzU3RlcChUcnVlKQ0KPiArDQo+ICsgICAgICAgIGN0 eC5Ob2RlLkRhdGEgPSBPT2JqDQo+ICsgICAgICAgIGN0eC5Ob2RlLkJ1ZmZlciA9IGdGb3JtUGtn LlN0cnVjdFRvU3RyZWFtKE9PYmouR2V0SW5mbygpKQ0KPiArICAgICAgICBzZWxmLkluc2VydEVu ZE5vZGUoY3R4Lk5vZGUsIGN0eC5zdG9wLmxpbmUpDQo+ICsgICAgICAgIHNlbGYuQ3VycmVudE1p bk1heERhdGEgPSBOb25lDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+ICsNCj4g KyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZy T25lb2ZGbGFnc0ZpZWxkLg0KPiArICAgIGRlZiB2aXNpdFZmck9uZW9mRmxhZ3NGaWVsZChzZWxm LCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5WZnJPbmVvZkZsYWdzRmllbGRDb250ZXh0KToNCj4g KyAgICAgICAgY3R4LkxGbGFncyA9IHNlbGYuQ3VyclFlc3RWYXJJbmZvLlZhclR5cGUgJiBFRklf SUZSX05VTUVSSUNfU0laRQ0KPiArICAgICAgICBWYXJTdG9yZVR5cGUgPQ0KPiBnVmZyRGF0YVN0 b3JhZ2UuR2V0VmFyU3RvcmVUeXBlKHNlbGYuQ3VyclFlc3RWYXJJbmZvLlZhclN0b3JlSWQpDQo+ ICsgICAgICAgIExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiArICAgICAgICBJc1NldFR5cGUgPSBG YWxzZQ0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ICsgICAgICAg IGZvciBGbGFnc0ZpZWxkQ3R4IGluIGN0eC5udW1lcmljRmxhZ3NGaWVsZCgpOg0KPiArICAgICAg ICAgICAgY3R4LkhGbGFncyB8PSBGbGFnc0ZpZWxkQ3R4LkhGbGFnDQo+ICsgICAgICAgICAgICBJ c1NldFR5cGUgfD0gRmxhZ3NGaWVsZEN0eC5Jc1NldFR5cGUNCj4gKyAgICAgICAgICAgIGlmIEZs YWdzRmllbGRDdHguTnVtZXJpY1NpemVPbmUoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgICAg IGlmIHNlbGYuQ3VyclFlc3RWYXJJbmZvLklzQml0VmFyID09IEZhbHNlOg0KPiArICAgICAgICAg ICAgICAgICAgICBjdHguTEZsYWdzID0gKGN0eC5MRmxhZ3MgJiB+RUZJX0lGUl9OVU1FUklDX1NJ WkUpIHwNCj4gRUZJX0lGUl9OVU1FUklDX1NJWkVfMQ0KPiArDQo+ICsgICAgICAgICAgICBpZiBG bGFnc0ZpZWxkQ3R4Lk51bWVyaWNTaXplVHdvKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgICAg ICBpZiBzZWxmLkN1cnJRZXN0VmFySW5mby5Jc0JpdFZhciA9PSBGYWxzZToNCj4gKyAgICAgICAg ICAgICAgICAgICAgY3R4LkxGbGFncyA9IChjdHguTEZsYWdzICYgfkVGSV9JRlJfTlVNRVJJQ19T SVpFKSB8DQo+IEVGSV9JRlJfTlVNRVJJQ19TSVpFXzINCj4gKw0KPiArICAgICAgICAgICAgaWYg RmxhZ3NGaWVsZEN0eC5OdW1lcmljU2l6ZUZvdXIoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAg ICAgIGlmIHNlbGYuQ3VyclFlc3RWYXJJbmZvLklzQml0VmFyID09IEZhbHNlOg0KPiArICAgICAg ICAgICAgICAgICAgICBjdHguTEZsYWdzID0gKGN0eC5MRmxhZ3MgJiB+RUZJX0lGUl9OVU1FUklD X1NJWkUpIHwNCj4gRUZJX0lGUl9OVU1FUklDX1NJWkVfNA0KPiArDQo+ICsgICAgICAgICAgICBp ZiBGbGFnc0ZpZWxkQ3R4Lk51bWVyaWNTaXplRWlnaHQoKSAhPSBOb25lOg0KPiArICAgICAgICAg ICAgICAgIGlmIHNlbGYuQ3VyclFlc3RWYXJJbmZvLklzQml0VmFyID09IEZhbHNlOg0KPiArICAg ICAgICAgICAgICAgICAgICBjdHguTEZsYWdzID0gKGN0eC5MRmxhZ3MgJiB+RUZJX0lGUl9OVU1F UklDX1NJWkUpIHwNCj4gRUZJX0lGUl9OVU1FUklDX1NJWkVfOA0KPiArDQo+ICsgICAgICAgICAg ICBpZiBGbGFnc0ZpZWxkQ3R4LkRpc1BsYXlJbnREZWMoKSAhPSBOb25lOg0KPiArICAgICAgICAg ICAgICAgIGlmIHNlbGYuQ3VyclFlc3RWYXJJbmZvLklzQml0VmFyID09IEZhbHNlOg0KPiArICAg ICAgICAgICAgICAgICAgICBjdHguTEZsYWdzID0gKGN0eC5MRmxhZ3MgJiB+RUZJX0lGUl9ESVNQ TEFZKSB8DQo+IEVGSV9JRlJfRElTUExBWV9JTlRfREVDDQo+ICsgICAgICAgICAgICAgICAgZWxz ZToNCj4gKyAgICAgICAgICAgICAgICAgICAgY3R4LkxGbGFncyA9ICgNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIGN0eC5MRmxhZ3MgJiB+RURLSUlfSUZSX0RJU1BMQVlfQklUDQo+ICsgICAg ICAgICAgICAgICAgICAgICkgfCBFREtJSV9JRlJfRElTUExBWV9JTlRfREVDX0JJVA0KPiArDQo+ ICsgICAgICAgICAgICBpZiBGbGFnc0ZpZWxkQ3R4LkRpc1BsYXlVSW50RGVjKCkgIT0gTm9uZToN Cj4gKyAgICAgICAgICAgICAgICBpZiBzZWxmLkN1cnJRZXN0VmFySW5mby5Jc0JpdFZhciA9PSBG YWxzZToNCj4gKyAgICAgICAgICAgICAgICAgICAgY3R4LkxGbGFncyA9IChjdHguTEZsYWdzICYg fkVGSV9JRlJfRElTUExBWSkgfA0KPiBFRklfSUZSX0RJU1BMQVlfVUlOVF9ERUMNCj4gKyAgICAg ICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgICAgICBjdHguTEZsYWdzID0gKA0K PiArICAgICAgICAgICAgICAgICAgICAgICAgY3R4LkxGbGFncyAmIH5FREtJSV9JRlJfRElTUExB WV9CSVQNCj4gKyAgICAgICAgICAgICAgICAgICAgKSB8IEVES0lJX0lGUl9ESVNQTEFZX1VJTlRf REVDX0JJVA0KPiArDQo+ICsgICAgICAgICAgICBpZiBGbGFnc0ZpZWxkQ3R4LkRpc1BsYXlVSW50 SGV4KCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgICAgICBpZiBzZWxmLkN1cnJRZXN0VmFySW5m by5Jc0JpdFZhciA9PSBGYWxzZToNCj4gKyAgICAgICAgICAgICAgICAgICAgY3R4LkxGbGFncyA9 IChjdHguTEZsYWdzICYgfkVGSV9JRlJfRElTUExBWSkgfA0KPiBFRklfSUZSX0RJU1BMQVlfVUlO VF9IRVgNCj4gKyAgICAgICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgICAgICBj dHguTEZsYWdzID0gKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgY3R4LkxGbGFncyAmIH5F REtJSV9JRlJfRElTUExBWV9CSVQNCj4gKyAgICAgICAgICAgICAgICAgICAgKSB8IEVES0lJX0lG Ul9ESVNQTEFZX1VJTlRfSEVYX0JJVA0KPiArDQo+ICsgICAgICAgIFZhclR5cGUgPSBzZWxmLkN1 cnJRZXN0VmFySW5mby5WYXJUeXBlDQo+ICsgICAgICAgIGlmIHNlbGYuQ3VyclFlc3RWYXJJbmZv LklzQml0VmFyID09IEZhbHNlOg0KPiArICAgICAgICAgICAgaWYgc2VsZi5DdXJyUWVzdFZhcklu Zm8uVmFyU3RvcmVJZCAhPSBFRklfVkFSU1RPUkVfSURfSU5WQUxJRDoNCj4gKyAgICAgICAgICAg ICAgICBpZiAoDQo+ICsgICAgICAgICAgICAgICAgICAgIFZhclN0b3JlVHlwZSA9PQ0KPiBFRklf VkZSX1ZBUlNUT1JFX1RZUEUuRUZJX1ZGUl9WQVJTVE9SRV9CVUZGRVINCj4gKyAgICAgICAgICAg ICAgICAgICAgb3IgVmFyU3RvcmVUeXBlID09DQo+IEVGSV9WRlJfVkFSU1RPUkVfVFlQRS5FRklf VkZSX1ZBUlNUT1JFX0VGSQ0KPiArICAgICAgICAgICAgICAgICk6DQo+ICsgICAgICAgICAgICAg ICAgICAgIGlmIHNlbGYuQ3VyclFlc3RWYXJJbmZvLlZhclR5cGUgIT0gKGN0eC5MRmxhZ3MgJg0K PiBFRklfSUZSX05VTUVSSUNfU0laRSk6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZnJSZXR1cm5D b2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGluZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTnVtZXJpYyBG bGFnIGlzIG5vdCBzYW1lIHRvIE51bWVyaWMgVmFyRGF0YSB0eXBlIiwNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAg ICAgICAgICAjIHVwZGF0ZSBkYXRhIHR5cGUgZm9yIG5hbWUvdmFsdWUgc3RvcmUNCj4gKyAgICAg ICAgICAgICAgICAgICAgc2VsZi5DdXJyUWVzdFZhckluZm8uVmFyVHlwZSA9IGN0eC5MRmxhZ3Mg Jg0KPiBFRklfSUZSX05VTUVSSUNfU0laRQ0KPiArICAgICAgICAgICAgICAgICAgICBTaXplLCBf ID0gZ1ZmclZhckRhdGFUeXBlREIuR2V0RGF0YVR5cGVTaXplQnlEYXRhVHlwZSgNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuQ3VyclFlc3RWYXJJbmZvLlZhclR5cGUNCj4gKyAgICAg ICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLkN1cnJRZXN0VmFy SW5mby5WYXJUb3RhbFNpemUgPSBTaXplDQo+ICsgICAgICAgICAgICBlbGlmIElzU2V0VHlwZToN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLkN1cnJRZXN0VmFySW5mby5WYXJUeXBlID0gY3R4LkxG bGFncyAmIEVGSV9JRlJfTlVNRVJJQ19TSVpFDQo+ICsNCj4gKyAgICAgICAgZWxpZiBzZWxmLkN1 cnJRZXN0VmFySW5mby5WYXJTdG9yZUlkICE9IEVGSV9WQVJTVE9SRV9JRF9JTlZBTElEOg0KPiAr ICAgICAgICAgICAgY3R4LkxGbGFncyAmPSBFREtJSV9JRlJfRElTUExBWV9CSVQNCj4gKyAgICAg ICAgICAgIGN0eC5MRmxhZ3MgfD0gRURLSUlfSUZSX05VTUVSSUNfU0laRV9CSVQgJg0KPiBzZWxm LkN1cnJRZXN0VmFySW5mby5WYXJUb3RhbFNpemUNCj4gKw0KPiArICAgICAgICBpZiBWYXJUeXBl ICE9IHNlbGYuQ3VyclFlc3RWYXJJbmZvLlZhclR5cGU6DQo+ICsgICAgICAgICAgICBjdHguVXBk YXRlVmFyVHlwZSA9IFRydWUNCj4gKw0KPiArICAgICAgICByZXR1cm4gY3R4LkhGbGFncywgY3R4 LkxGbGFncw0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZy U3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudFN0cmluZ1R5cGUuDQo+ICsgICAgZGVmIHZpc2l0VmZy U3RhdGVtZW50U3RyaW5nVHlwZShzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5WZnJTdGF0 ZW1lbnRTdHJpbmdUeXBlQ29udGV4dCk6DQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihj dHgpDQo+ICsgICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnRQYXNzd29yZCgpICE9IE5vbmU6DQo+ ICsgICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRQYXNzd29yZCgpLk5vZGUN Cj4gKyAgICAgICAgZWxpZiBjdHgudmZyU3RhdGVtZW50U3RyaW5nKCkgIT0gTm9uZToNCj4gKyAg ICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVudFN0cmluZygpLk5vZGUNCj4gKyAg ICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBw cm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVtZW50U3RyaW5nLg0KPiArICAgIGRl ZiB2aXNpdFZmclN0YXRlbWVudFN0cmluZyhzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5W ZnJTdGF0ZW1lbnRTdHJpbmdDb250ZXh0KToNCj4gKyAgICAgICAgc2VsZi5Jc1N0cmluZ09wID0g VHJ1ZQ0KPiArICAgICAgICBTT2JqID0gSWZyU3RyaW5nKCkNCj4gKyAgICAgICAgY3R4Lk5vZGUu RGF0YSA9IFNPYmoNCj4gKyAgICAgICAgU09iai5TZXRMaW5lTm8oY3R4LnN0YXJ0LmxpbmUpDQo+ ICsgICAgICAgIHNlbGYuQ3VycmVudFF1ZXN0aW9uID0gU09iag0KPiArDQo+ICsgICAgICAgIHNl bGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsNCj4gKyAgICAgICAgaWYgY3R4LkZMQUdTKCkgIT0g Tm9uZToNCj4gKyAgICAgICAgICAgIEhGbGFncyA9IGN0eC52ZnJTdHJpbmdGbGFnc0ZpZWxkKCku SEZsYWdzDQo+ICsgICAgICAgICAgICBMRmxhZ3MgPSBjdHgudmZyU3RyaW5nRmxhZ3NGaWVsZCgp LkxGbGFncw0KPiArICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoU09iai5TZXRGbGFncyhI RmxhZ3MsIExGbGFncyksIGN0eC5GLmxpbmUpDQo+ICsgICAgICAgICAgICBTT2JqLlNldEZsYWdz U3RyZWFtKHNlbGYuRXh0cmFjdE9yaWdpbmFsVGV4dChjdHgudmZyU3RyaW5nRmxhZ3NGaWVsZCgp KSkNCj4gKw0KPiArICAgICAgICBpZiBjdHguS2V5KCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAg IEtleSA9IHNlbGYuVHJhbnNOdW0oY3R4Lk51bWJlcigwKSkNCj4gKyAgICAgICAgICAgIHNlbGYu QXNzaWduUXVlc3Rpb25LZXkoU09iaiwgS2V5KQ0KPiArICAgICAgICAgICAgU09iai5TZXRIYXNL ZXkoVHJ1ZSkNCj4gKyAgICAgICAgICAgIFN0cmluZ01pblNpemUgPSBzZWxmLlRyYW5zTnVtKGN0 eC5OdW1iZXIoMSkpDQo+ICsgICAgICAgICAgICBTdHJpbmdNYXhTaXplID0gc2VsZi5UcmFuc051 bShjdHguTnVtYmVyKDIpKQ0KPiArICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgU3RyaW5n TWluU2l6ZSA9IHNlbGYuVHJhbnNOdW0oY3R4Lk51bWJlcigwKSkNCj4gKyAgICAgICAgICAgIFN0 cmluZ01heFNpemUgPSBzZWxmLlRyYW5zTnVtKGN0eC5OdW1iZXIoMSkpDQo+ICsNCj4gKyAgICAg ICAgVmFyQXJyYXlTaXplID0gc2VsZi5HZXRDdXJBcnJheVNpemUoKQ0KPiArICAgICAgICBpZiBT dHJpbmdNaW5TaXplID4gMHhGRjoNCj4gKyAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKA0K PiArICAgICAgICAgICAgICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFN RVRFUiwNCj4gKyAgICAgICAgICAgICAgICBjdHguTWluLmxpbmUsDQo+ICsgICAgICAgICAgICAg ICAgIlN0cmluZyBNaW5TaXplIHRha2VzIG9ubHkgb25lIGJ5dGUsIHdoaWNoIGNhbid0IGJlIGxh cmdlciB0aGFuDQo+IDB4RkYuIiwNCj4gKyAgICAgICAgICAgICkNCj4gKyAgICAgICAgaWYgVmFy QXJyYXlTaXplICE9IDAgYW5kIFN0cmluZ01pblNpemUgPiBWYXJBcnJheVNpemU6DQo+ICsgICAg ICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAgICBWZnJSZXR1cm5D b2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+ICsgICAgICAgICAgICAgICAgY3R4 Lk1pbi5saW5lLA0KPiArICAgICAgICAgICAgICAgICJTdHJpbmcgTWluU2l6ZSBjYW4ndCBiZSBs YXJnZXIgdGhhbiB0aGUgbWF4IG51bWJlciBvZiBlbGVtZW50cyBpbg0KPiBzdHJpbmcgYXJyYXku IiwNCj4gKyAgICAgICAgICAgICkNCj4gKyAgICAgICAgU09iai5TZXRNaW5TaXplKFN0cmluZ01p blNpemUpDQo+ICsNCj4gKyAgICAgICAgaWYgU3RyaW5nTWF4U2l6ZSA+IDB4RkY6DQo+ICsgICAg ICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAgICBWZnJSZXR1cm5D b2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIsDQo+ICsgICAgICAgICAgICAgICAgY3R4 Lk1heC5saW5lLA0KPiArICAgICAgICAgICAgICAgICJTdHJpbmcgTWF4U2l6ZSB0YWtlcyBvbmx5 IG9uZSBieXRlLCB3aGljaCBjYW4ndCBiZSBsYXJnZXIgdGhhbg0KPiAweEZGLiIsDQo+ICsgICAg ICAgICAgICApDQo+ICsgICAgICAgIGVsaWYgVmFyQXJyYXlTaXplICE9IDAgYW5kIFN0cmluZ01h eFNpemUgPiBWYXJBcnJheVNpemU6DQo+ICsgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigN Cj4gKyAgICAgICAgICAgICAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fSU5WQUxJRF9QQVJB TUVURVIsDQo+ICsgICAgICAgICAgICAgICAgY3R4Lk1heC5saW5lLA0KPiArICAgICAgICAgICAg ICAgICJTdHJpbmcgTWF4U2l6ZSBjYW4ndCBiZSBsYXJnZXIgdGhhbiB0aGUgbWF4IG51bWJlciBv ZiBlbGVtZW50cyBpbg0KPiBzdHJpbmcgYXJyYXkuIiwNCj4gKyAgICAgICAgICAgICkNCj4gKyAg ICAgICAgZWxpZiBTdHJpbmdNYXhTaXplIDwgU3RyaW5nTWluU2l6ZToNCj4gKyAgICAgICAgICAg IHNlbGYuRXJyb3JIYW5kbGVyKA0KPiArICAgICAgICAgICAgICAgIFZmclJldHVybkNvZGUuVkZS X1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwNCj4gKyAgICAgICAgICAgICAgICBjdHguTWF4Lmxp bmUsDQo+ICsgICAgICAgICAgICAgICAgIlN0cmluZyBNYXhTaXplIGNhbid0IGJlIGxlc3MgdGhh biBTdHJpbmcgTWluU2l6ZS4iLA0KPiArICAgICAgICAgICAgKQ0KPiArICAgICAgICBTT2JqLlNl dE1heFNpemUoU3RyaW5nTWF4U2l6ZSkNCj4gKw0KPiArICAgICAgICBjdHguTm9kZS5CdWZmZXIg PSBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShTT2JqLkdldEluZm8oKSkNCj4gKyAgICAgICAgc2Vs Zi5JbnNlcnRFbmROb2RlKGN0eC5Ob2RlLCBjdHguc3RvcC5saW5lKQ0KPiArDQo+ICsgICAgICAg IHNlbGYuSXNTdHJpbmdPcCA9IEZhbHNlDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5Ob2Rl DQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQ YXJzZXIjdmZyU3RyaW5nRmxhZ3NGaWVsZC4NCj4gKyAgICBkZWYgdmlzaXRWZnJTdHJpbmdGbGFn c0ZpZWxkKHNlbGYsIGN0eDoNCj4gVmZyU3ludGF4UGFyc2VyLlZmclN0cmluZ0ZsYWdzRmllbGRD b250ZXh0KToNCj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAg Zm9yIEZsYWdzRmllbGRDdHggaW4gY3R4LnN0cmluZ0ZsYWdzRmllbGQoKToNCj4gKyAgICAgICAg ICAgIGN0eC5IRmxhZ3MgfD0gRmxhZ3NGaWVsZEN0eC5IRmxhZw0KPiArICAgICAgICAgICAgY3R4 LkxGbGFncyB8PSBGbGFnc0ZpZWxkQ3R4LkxGbGFnDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIGN0 eC5IRmxhZ3MsIGN0eC5MRmxhZ3MNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHBy b2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNzdHJpbmdGbGFnc0ZpZWxkLg0KPiArICAgIGRlZiB2 aXNpdFN0cmluZ0ZsYWdzRmllbGQoc2VsZiwgY3R4OiBWZnJTeW50YXhQYXJzZXIuU3RyaW5nRmxh Z3NGaWVsZENvbnRleHQpOg0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiAr DQo+ICsgICAgICAgIGlmIGN0eC5OdW1iZXIoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgaWYg c2VsZi5UcmFuc051bShjdHguTnVtYmVyKCkpICE9IDA6DQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5FcnJvckhhbmRsZXIoVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1VOU1VQUE9SVEVELA0KPiBj dHguc3RhcnQubGluZSkNCj4gKyAgICAgICAgZWxpZiBjdHgucXVlc3Rpb25oZWFkZXJGbGFnc0Zp ZWxkKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5IRmxhZyA9IGN0eC5xdWVzdGlvbmhl YWRlckZsYWdzRmllbGQoKS5RSEZsYWcNCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAg IGN0eC5MRmxhZyA9IDB4MDENCj4gKw0KPiArICAgICAgICByZXR1cm4gY3R4LkhGbGFnLCBjdHgu TEZsYWcNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5 bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRQYXNzd29yZC4NCj4gKyAgICBkZWYgdmlzaXRWZnJTdGF0 ZW1lbnRQYXNzd29yZChzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRQ YXNzd29yZENvbnRleHQpOg0KPiArICAgICAgICBQT2JqID0gSWZyUGFzc3dvcmQoKQ0KPiArICAg ICAgICBjdHguTm9kZS5EYXRhID0gUE9iag0KPiArICAgICAgICBQT2JqLlNldExpbmVObyhjdHgu c3RhcnQubGluZSkNCj4gKyAgICAgICAgc2VsZi5DdXJyZW50UXVlc3Rpb24gPSBQT2JqDQo+ICsN Cj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKw0KPiArICAgICAgICBpZiBj dHguS2V5KCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIEtleSA9IHNlbGYuVHJhbnNOdW0oY3R4 Lk51bWJlcigwKSkNCj4gKyAgICAgICAgICAgIHNlbGYuQXNzaWduUXVlc3Rpb25LZXkoUE9iaiwg S2V5KQ0KPiArICAgICAgICAgICAgUGFzc1dvcmRNaW5TaXplID0gc2VsZi5UcmFuc051bShjdHgu TnVtYmVyKDEpKQ0KPiArICAgICAgICAgICAgUGFzc3dvcmRNYXhTaXplID0gc2VsZi5UcmFuc051 bShjdHguTnVtYmVyKDIpKQ0KPiArICAgICAgICAgICAgUE9iai5TZXRIYXNLZXkoVHJ1ZSkNCj4g KyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIFBhc3NXb3JkTWluU2l6ZSA9IHNlbGYuVHJh bnNOdW0oY3R4Lk51bWJlcigwKSkNCj4gKyAgICAgICAgICAgIFBhc3N3b3JkTWF4U2l6ZSA9IHNl bGYuVHJhbnNOdW0oY3R4Lk51bWJlcigxKSkNCj4gKw0KPiArICAgICAgICBpZiBjdHguRkxBR1Mo KSAhPSBOb25lOg0KPiArICAgICAgICAgICAgSEZsYWdzID0gY3R4LnZmclBhc3N3b3JkRmxhZ3NG aWVsZCgpLkhGbGFncw0KPiArICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoUE9iai5TZXRG bGFncyhIRmxhZ3MpLCBjdHguRi5saW5lKQ0KPiArDQo+IFBPYmouU2V0RmxhZ3NTdHJlYW0oc2Vs Zi5FeHRyYWN0T3JpZ2luYWxUZXh0KGN0eC52ZnJQYXNzd29yZEZsYWdzRmllbGQoKSkpDQo+ICsN Cj4gKyAgICAgICAgVmFyQXJyYXlTaXplID0gc2VsZi5HZXRDdXJBcnJheVNpemUoKQ0KPiArICAg ICAgICBpZiBQYXNzV29yZE1pblNpemUgPiAweEZGOg0KPiArICAgICAgICAgICAgc2VsZi5FcnJv ckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAgICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lO VkFMSURfUEFSQU1FVEVSLA0KPiArICAgICAgICAgICAgICAgIGN0eC5NaW4ubGluZSwNCj4gKyAg ICAgICAgICAgICAgICAiU3RyaW5nIE1pblNpemUgdGFrZXMgb25seSBvbmUgYnl0ZSwgd2hpY2gg Y2FuJ3QgYmUgbGFyZ2VyIHRoYW4NCj4gMHhGRi4iLA0KPiArICAgICAgICAgICAgKQ0KPiArICAg ICAgICBpZiBWYXJBcnJheVNpemUgIT0gMCBhbmQgUGFzc1dvcmRNaW5TaXplID4gVmFyQXJyYXlT aXplOg0KPiArICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAg ICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLA0KPiArICAgICAg ICAgICAgICAgIGN0eC5NaW4ubGluZSwNCj4gKyAgICAgICAgICAgICAgICAiU3RyaW5nIE1pblNp emUgY2FuJ3QgYmUgbGFyZ2VyIHRoYW4gdGhlIG1heCBudW1iZXIgb2YgZWxlbWVudHMgaW4NCj4g c3RyaW5nIGFycmF5LiIsDQo+ICsgICAgICAgICAgICApDQo+ICsgICAgICAgIFBPYmouU2V0TWlu U2l6ZShQYXNzV29yZE1pblNpemUpDQo+ICsNCj4gKyAgICAgICAgaWYgUGFzc3dvcmRNYXhTaXpl ID4gMHhGRjoNCj4gKyAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKA0KPiArICAgICAgICAg ICAgICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwNCj4gKyAg ICAgICAgICAgICAgICBjdHguTWF4LmxpbmUsDQo+ICsgICAgICAgICAgICAgICAgIlN0cmluZyBN YXhTaXplIHRha2VzIG9ubHkgb25lIGJ5dGUsIHdoaWNoIGNhbid0IGJlIGxhcmdlciB0aGFuDQo+ IDB4RkYuIiwNCj4gKyAgICAgICAgICAgICkNCj4gKyAgICAgICAgZWxpZiBWYXJBcnJheVNpemUg IT0gMCBhbmQgUGFzc3dvcmRNYXhTaXplID4gVmFyQXJyYXlTaXplOg0KPiArICAgICAgICAgICAg c2VsZi5FcnJvckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAgICAgVmZyUmV0dXJuQ29kZS5WRlJf UkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLA0KPiArICAgICAgICAgICAgICAgIGN0eC5NYXgubGlu ZSwNCj4gKyAgICAgICAgICAgICAgICAiU3RyaW5nIE1heFNpemUgY2FuJ3QgYmUgbGFyZ2VyIHRo YW4gdGhlIG1heCBudW1iZXIgb2YgZWxlbWVudHMgaW4NCj4gc3RyaW5nIGFycmF5LiIsDQo+ICsg ICAgICAgICAgICApDQo+ICsgICAgICAgIGVsaWYgUGFzc3dvcmRNYXhTaXplIDwgUGFzc1dvcmRN aW5TaXplOg0KPiArICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsgICAgICAgICAg ICAgICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLA0KPiArICAg ICAgICAgICAgICAgIGN0eC5NYXgubGluZSwNCj4gKyAgICAgICAgICAgICAgICAiU3RyaW5nIE1h eFNpemUgY2FuJ3QgYmUgbGVzcyB0aGFuIFN0cmluZyBNaW5TaXplLiIsDQo+ICsgICAgICAgICAg ICApDQo+ICsgICAgICAgIFBPYmouU2V0TWF4U2l6ZShQYXNzd29yZE1heFNpemUpDQo+ICsNCj4g KyAgICAgICAgY3R4Lk5vZGUuQnVmZmVyID0gZ0Zvcm1Qa2cuU3RydWN0VG9TdHJlYW0oUE9iai5H ZXRJbmZvKCkpDQo+ICsgICAgICAgIHNlbGYuSW5zZXJ0RW5kTm9kZShjdHguTm9kZSwgY3R4LnN0 b3AubGluZSkNCj4gKw0KPiArICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gKw0KPiArICAgICMg VmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJQYXNzd29y ZEZsYWdzRmllbGQuDQo+ICsgICAgZGVmIHZpc2l0VmZyUGFzc3dvcmRGbGFnc0ZpZWxkKHNlbGYs IGN0eDoNCj4gVmZyU3ludGF4UGFyc2VyLlZmclBhc3N3b3JkRmxhZ3NGaWVsZENvbnRleHQpOg0K PiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAgICBmb3IgRmxhZ3NG aWVsZEN0eCBpbiBjdHgucGFzc3dvcmRGbGFnc0ZpZWxkKCk6DQo+ICsgICAgICAgICAgICBjdHgu SEZsYWdzIHw9IEZsYWdzRmllbGRDdHguSEZsYWcNCj4gKw0KPiArICAgICAgICByZXR1cm4gY3R4 LkhGbGFncw0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZy U3ludGF4UGFyc2VyI3Bhc3N3b3JkRmxhZ3NGaWVsZC4NCj4gKyAgICBkZWYgdmlzaXRQYXNzd29y ZEZsYWdzRmllbGQoc2VsZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIuUGFzc3dvcmRGbGFnc0Zp ZWxkQ29udGV4dCk6DQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsNCj4g KyAgICAgICAgaWYgY3R4Lk51bWJlcigpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBpZiBzZWxm LlRyYW5zTnVtKGN0eC5OdW1iZXIoKSkgIT0gMDoNCj4gKyAgICAgICAgICAgICAgICBzZWxmLkVy cm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fVU5TVVBQT1JURUQsDQo+IGN0eC5z dGFydC5saW5lKQ0KPiArICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgY3R4LkhGbGFnID0g Y3R4LnF1ZXN0aW9uaGVhZGVyRmxhZ3NGaWVsZCgpLlFIRmxhZw0KPiArDQo+ICsgICAgICAgIHJl dHVybiBjdHguSEZsYWcNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2Vk IGJ5IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRPcmRlcmVkTGlzdC4NCj4gKyAgICBkZWYg dmlzaXRWZnJTdGF0ZW1lbnRPcmRlcmVkTGlzdChzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNl ci5WZnJTdGF0ZW1lbnRPcmRlcmVkTGlzdENvbnRleHQpOg0KPiArICAgICAgICBPTE9iaiA9IElm ck9yZGVyZWRMaXN0KCkNCj4gKyAgICAgICAgY3R4Lk5vZGUuRGF0YSA9IE9MT2JqDQo+ICsgICAg ICAgIE9MT2JqLlNldExpbmVObyhjdHguc3RhcnQubGluZSkNCj4gKyAgICAgICAgc2VsZi5DdXJy ZW50UXVlc3Rpb24gPSBPTE9iag0KPiArICAgICAgICBzZWxmLklzT3JkZXJlZExpc3QgPSBUcnVl DQo+ICsNCj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKw0KPiArICAgICAg ICBWYXJBcnJheVNpemUgPSBzZWxmLkdldEN1ckFycmF5U2l6ZSgpDQo+ICsgICAgICAgIGlmIFZh ckFycmF5U2l6ZSA+IDB4RkY6DQo+ICsgICAgICAgICAgICBPTE9iai5TZXRNYXhDb250YWluZXJz KDB4RkYpDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICBPTE9iai5TZXRNYXhDb250 YWluZXJzKFZhckFycmF5U2l6ZSkNCj4gKw0KPiArICAgICAgICBpZiBjdHguTWF4Q29udGFpbmVy cygpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBNYXhDb250YWluZXJzID0gc2VsZi5UcmFuc051 bShjdHguTnVtYmVyKCkpDQo+ICsgICAgICAgICAgICBpZiBNYXhDb250YWluZXJzID4gMHhGRjoN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAg ICAgICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLA0KPiArICAg ICAgICAgICAgICAgICAgICBjdHguTS5saW5lLA0KPiArICAgICAgICAgICAgICAgICAgICAiT3Jk ZXJlZExpc3QgTWF4Q29udGFpbmVycyB0YWtlcyBvbmx5IG9uZSBieXRlLCB3aGljaCBjYW4ndCBi ZQ0KPiBsYXJnZXIgdGhhbiAweEZGLiIsDQo+ICsgICAgICAgICAgICAgICAgKQ0KPiArICAgICAg ICAgICAgZWxpZiBWYXJBcnJheVNpemUgIT0gMCBhbmQgTWF4Q29udGFpbmVycyA+IFZhckFycmF5 U2l6ZToNCj4gKyAgICAgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAg ICAgICAgICAgICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLA0K PiArICAgICAgICAgICAgICAgICAgICBjdHguTS5saW5lLA0KPiArICAgICAgICAgICAgICAgICAg ICAiT3JkZXJlZExpc3QgTWF4Q29udGFpbmVycyBjYW4ndCBiZSBsYXJnZXIgdGhhbiB0aGUgbWF4 IG51bWJlcg0KPiBvZiBlbGVtZW50cyBpbiBhcnJheS4iLA0KPiArICAgICAgICAgICAgICAgICkN Cj4gKyAgICAgICAgICAgIE9MT2JqLlNldE1heENvbnRhaW5lcnMoTWF4Q29udGFpbmVycykNCj4g KyAgICAgICAgICAgIE9MT2JqLlNldEhhc01heENvbnRhaW5lcnMoVHJ1ZSkNCj4gKw0KPiArICAg ICAgICBpZiBjdHguRkxBR1MoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgSEZsYWdzID0gY3R4 LnZmck9yZGVyZWRMaXN0RmxhZ3MoKS5IRmxhZ3MNCj4gKyAgICAgICAgICAgIExGbGFncyA9IGN0 eC52ZnJPcmRlcmVkTGlzdEZsYWdzKCkuTEZsYWdzDQo+ICsgICAgICAgICAgICBzZWxmLkVycm9y SGFuZGxlcihPTE9iai5TZXRGbGFncyhIRmxhZ3MsIExGbGFncyksIGN0eC5GLmxpbmUpDQo+ICsN Cj4gT0xPYmouU2V0RmxhZ3NTdHJlYW0oc2VsZi5FeHRyYWN0T3JpZ2luYWxUZXh0KGN0eC52ZnJP cmRlcmVkTGlzdEZsYWdzKCkpKQ0KPiArDQo+ICsgICAgICAgIGN0eC5Ob2RlLkJ1ZmZlciA9IGdG b3JtUGtnLlN0cnVjdFRvU3RyZWFtKE9MT2JqLkdldEluZm8oKSkNCj4gKyAgICAgICAgc2VsZi5J bnNlcnRFbmROb2RlKGN0eC5Ob2RlLCBjdHguc3RvcC5saW5lKQ0KPiArICAgICAgICBzZWxmLklz T3JkZXJlZExpc3QgPSBGYWxzZQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiAr DQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2Vy I3Zmck9yZGVyZWRMaXN0RmxhZ3MuDQo+ICsgICAgZGVmIHZpc2l0VmZyT3JkZXJlZExpc3RGbGFn cyhzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5WZnJPcmRlcmVkTGlzdEZsYWdzQ29udGV4 dCk6DQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsNCj4gKyAgICAgICAg Zm9yIEZsYWdzRmllbGRDdHggaW4gY3R4Lm9yZGVyZWRsaXN0RmxhZ3NGaWVsZCgpOg0KPiArICAg ICAgICAgICAgY3R4LkhGbGFncyB8PSBGbGFnc0ZpZWxkQ3R4LkhGbGFnDQo+ICsgICAgICAgICAg ICBjdHguTEZsYWdzIHw9IEZsYWdzRmllbGRDdHguTEZsYWcNCj4gKw0KPiArICAgICAgICByZXR1 cm4gY3R4LkhGbGFncywgY3R4LkxGbGFncw0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRy ZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI29yZGVyZWRsaXN0RmxhZ3NGaWVsZC4NCj4g KyAgICBkZWYgdmlzaXRPcmRlcmVkbGlzdEZsYWdzRmllbGQoc2VsZiwgY3R4Og0KPiBWZnJTeW50 YXhQYXJzZXIuT3JkZXJlZGxpc3RGbGFnc0ZpZWxkQ29udGV4dCk6DQo+ICsgICAgICAgIHNlbGYu dmlzaXRDaGlsZHJlbihjdHgpDQo+ICsNCj4gKyAgICAgICAgaWYgY3R4Lk51bWJlcigpICE9IE5v bmU6DQo+ICsgICAgICAgICAgICBpZiBzZWxmLlRyYW5zTnVtKGN0eC5OdW1iZXIoKSkgIT0gMDoN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZGUl9S RVRVUk5fVU5TVVBQT1JURUQsDQo+IGN0eC5zdGFydC5saW5lKQ0KPiArICAgICAgICBlbGlmIGN0 eC5xdWVzdGlvbmhlYWRlckZsYWdzRmllbGQoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4 LkhGbGFnID0gY3R4LnF1ZXN0aW9uaGVhZGVyRmxhZ3NGaWVsZCgpLlFIRmxhZw0KPiArICAgICAg ICBlbGlmIGN0eC5VbmlRdWVGbGFnKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5MRmxh ZyA9IDB4MDENCj4gKyAgICAgICAgZWxpZiBjdHguTm9FbXB0eUZsYWcoKSAhPSBOb25lOg0KPiAr ICAgICAgICAgICAgY3R4LkxGbGFnID0gMHgwMg0KPiArDQo+ICsgICAgICAgIHJldHVybiBjdHgu SEZsYWcsIGN0eC5MRmxhZw0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVj ZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudERhdGUuDQo+ICsgICAgZGVmIHZpc2l0 VmZyU3RhdGVtZW50RGF0ZShzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1l bnREYXRlQ29udGV4dCk6DQo+ICsgICAgICAgIERPYmogPSBJZnJEYXRlKCkNCj4gKyAgICAgICAg Y3R4Lk5vZGUuRGF0YSA9IERPYmoNCj4gKyAgICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5lDQo+ ICsgICAgICAgIERPYmouU2V0TGluZU5vKExpbmUpDQo+ICsgICAgICAgIHNlbGYuVmFsdWUgPSBj dHguVmFsDQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsNCj4gKyAgICAg ICAgaWYgY3R4LnZmclF1ZXN0aW9uSGVhZGVyKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGlm IHNlbGYuQ3VyclFlc3RWYXJJbmZvLlZhclR5cGUgPT0gRUZJX0lGUl9UWVBFX09USEVSOg0KPiAr ICAgICAgICAgICAgICAgIHNlbGYuQ3VyclFlc3RWYXJJbmZvLlZhclR5cGUgPT0gRUZJX0lGUl9U WVBFX0RBVEUNCj4gKw0KPiArICAgICAgICAgICAgaWYgY3R4LkZMQUdTKCkgIT0gTm9uZToNCj4g KyAgICAgICAgICAgICAgICBET2JqLlNldEZsYWdzU3RyZWFtKHNlbGYuRXh0cmFjdE9yaWdpbmFs VGV4dChjdHgudmZyRGF0ZUZsYWdzKCkpKQ0KPiArICAgICAgICAgICAgICAgIHNlbGYuRXJyb3JI YW5kbGVyKA0KPiArICAgICAgICAgICAgICAgICAgICBET2JqLlNldEZsYWdzKEVGSV9JRlJfUVVF U1RJT05fRkxBR19ERUZBVUxULA0KPiBjdHgudmZyRGF0ZUZsYWdzKCkuTEZsYWdzKSwNCj4gKyAg ICAgICAgICAgICAgICAgICAgY3R4LkYxLmxpbmUsDQo+ICsgICAgICAgICAgICAgICAgKQ0KPiAr DQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICBZZWFyID0gc2VsZi5UcmFuc0lkKGN0 eC5TdHJpbmdJZGVudGlmaWVyKDApKQ0KPiArICAgICAgICAgICAgWWVhciArPSAiLiINCj4gKyAg ICAgICAgICAgIFllYXIgKz0gc2VsZi5UcmFuc0lkKGN0eC5TdHJpbmdJZGVudGlmaWVyKDEpKQ0K PiArDQo+ICsgICAgICAgICAgICBET2JqLlllYXIgPSBZZWFyDQo+ICsNCj4gKyAgICAgICAgICAg IE1vbnRoID0gc2VsZi5UcmFuc0lkKGN0eC5TdHJpbmdJZGVudGlmaWVyKDIpKQ0KPiArICAgICAg ICAgICAgTW9udGggKz0gIi4iDQo+ICsgICAgICAgICAgICBNb250aCArPSBzZWxmLlRyYW5zSWQo Y3R4LlN0cmluZ0lkZW50aWZpZXIoMykpDQo+ICsNCj4gKyAgICAgICAgICAgIERPYmouTW9udGgg PSBNb250aA0KPiArDQo+ICsgICAgICAgICAgICBEYXkgPSBzZWxmLlRyYW5zSWQoY3R4LlN0cmlu Z0lkZW50aWZpZXIoNCkpDQo+ICsgICAgICAgICAgICBEYXkgKz0gIi4iDQo+ICsgICAgICAgICAg ICBEYXkgKz0gc2VsZi5UcmFuc0lkKGN0eC5TdHJpbmdJZGVudGlmaWVyKDUpKQ0KPiArDQo+ICsg ICAgICAgICAgICBET2JqLkRheSA9IERheQ0KPiArDQo+ICsgICAgICAgICAgICBpZiBjdHguRkxB R1MoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgICAgIERPYmouU2V0RmxhZ3NTdHJlYW0oc2Vs Zi5FeHRyYWN0T3JpZ2luYWxUZXh0KGN0eC52ZnJEYXRlRmxhZ3MoKSkpDQo+ICsgICAgICAgICAg ICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAgICAgICAgIERPYmouU2V0 RmxhZ3MoRUZJX0lGUl9RVUVTVElPTl9GTEFHX0RFRkFVTFQsDQo+IGN0eC52ZnJEYXRlRmxhZ3Mo KS5MRmxhZ3MpLA0KPiArICAgICAgICAgICAgICAgICAgICBjdHguRjIubGluZSwNCj4gKyAgICAg ICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgICAgIFFJZCwgXyA9IHNlbGYuVmZyUXVlc3Rp b25EQi5SZWdpc3Rlck9sZERhdGVRdWVzdGlvbigNCj4gKyAgICAgICAgICAgICAgICBZZWFyLCBN b250aCwgRGF5LCBFRklfUVVFU1RJT05fSURfSU5WQUxJRCwgZ0Zvcm1Qa2cNCj4gKyAgICAgICAg ICAgICkNCj4gKyAgICAgICAgICAgIERPYmouU2V0UXVlc3Rpb25JZChRSWQpDQo+ICsgICAgICAg ICAgICBET2JqLlNldEZsYWdzKEVGSV9JRlJfUVVFU1RJT05fRkxBR19ERUZBVUxULA0KPiBRRl9E QVRFX1NUT1JBR0VfVElNRSkNCj4gKyAgICAgICAgICAgIERPYmouU2V0UHJvbXB0KHNlbGYuVHJh bnNOdW0oY3R4Lk51bWJlcigwKSkpDQo+ICsgICAgICAgICAgICBET2JqLlNldEhlbHAoc2VsZi5U cmFuc051bShjdHguTnVtYmVyKDEpKSkNCj4gKw0KPiArICAgICAgICAgICAgRGVmYXVsdE9iaiA9 IElmckRlZmF1bHQoDQo+ICsgICAgICAgICAgICAgICAgRUZJX0lGUl9UWVBFX0RBVEUsIFtjdHgu VmFsXSwgRUZJX0hJSV9ERUZBVUxUX0NMQVNTX1NUQU5EQVJELA0KPiBFRklfSUZSX1RZUEVfREFU RQ0KPiArICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgRGVmYXVsdE9iai5TZXRMaW5lTm8o TGluZSkNCj4gKyAgICAgICAgICAgIERlZmF1bHROb2RlID0gSWZyVHJlZU5vZGUoDQo+ICsgICAg ICAgICAgICAgICAgRUZJX0lGUl9ERUZBVUxUX09QLCBEZWZhdWx0T2JqLA0KPiBnRm9ybVBrZy5T dHJ1Y3RUb1N0cmVhbShEZWZhdWx0T2JqLkdldEluZm8oKSkNCj4gKyAgICAgICAgICAgICkNCj4g KyAgICAgICAgICAgIGN0eC5Ob2RlLmluc2VydENoaWxkKERlZmF1bHROb2RlKQ0KPiArDQo+ICsg ICAgICAgIGN0eC5Ob2RlLkJ1ZmZlciA9IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFtKERPYmouR2V0 SW5mbygpKQ0KPiArICAgICAgICBmb3IgQ3R4IGluIGN0eC52ZnJTdGF0ZW1lbnRJbmNvbnNpc3Rl bnRJZigpOg0KPiArICAgICAgICAgICAgc2VsZi5JbnNlcnRDaGlsZChjdHguTm9kZSwgQ3R4KQ0K PiArICAgICAgICBzZWxmLkluc2VydEVuZE5vZGUoY3R4Lk5vZGUsIGN0eC5zdG9wLmxpbmUpDQo+ ICsNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFy c2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjbWluTWF4RGF0ZVN0ZXBEZWZhdWx0 Lg0KPiArICAgIGRlZiB2aXNpdE1pbk1heERhdGVTdGVwRGVmYXVsdChzZWxmLCBjdHg6DQo+IFZm clN5bnRheFBhcnNlci5NaW5NYXhEYXRlU3RlcERlZmF1bHRDb250ZXh0KToNCj4gKyAgICAgICAg TWluaW11bSA9IHNlbGYuVHJhbnNOdW0oY3R4Lk51bWJlcigwKSkNCj4gKyAgICAgICAgY3R4Lk5v ZGUuRGF0YS5NaW4gPSBNaW5pbXVtDQo+ICsgICAgICAgIE1heGltdW0gPSBzZWxmLlRyYW5zTnVt KGN0eC5OdW1iZXIoMSkpDQo+ICsgICAgICAgIGN0eC5Ob2RlLkRhdGEuTWF4ID0gTWF4aW11bQ0K PiArICAgICAgICBpZiBjdHguU3RlcCgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9k ZS5EYXRhLlN0ZXAgPSBzZWxmLlRyYW5zTnVtKGN0eC5OdW1iZXIoMikpDQo+ICsgICAgICAgIGlm IGN0eC5EZWZhdWx0KCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGlmIGN0eC5LZXlWYWx1ZSA9 PSAwOg0KPiArICAgICAgICAgICAgICAgIGN0eC5EYXRlLlllYXIgPSBzZWxmLlRyYW5zTnVtKGN0 eC5OLnRleHQpDQo+ICsgICAgICAgICAgICAgICAgY3R4Lk5vZGUuRGF0YS5EX1llYXIgPSBjdHgu RGF0ZS5ZZWFyDQo+ICsgICAgICAgICAgICAgICAgaWYgY3R4LkRhdGUuWWVhciA8IE1pbmltdW0g b3IgY3R4LkRhdGUuWWVhciA+IE1heGltdW06DQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYu RXJyb3JIYW5kbGVyKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgVmZyUmV0dXJuQ29kZS5W RlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg Y3R4Lk4ubGluZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJZZWFyIGRlZmF1bHQgdmFs dWUgbXVzdCBiZSBiZXR3ZWVuIE1pbiB5ZWFyIGFuZCBNYXggeWVhci4iLA0KPiArICAgICAgICAg ICAgICAgICAgICApDQo+ICsgICAgICAgICAgICBpZiBjdHguS2V5VmFsdWUgPT0gMToNCj4gKyAg ICAgICAgICAgICAgICBjdHguRGF0ZS5Nb250aCA9IHNlbGYuVHJhbnNOdW0oY3R4Lk4udGV4dCkN Cj4gKyAgICAgICAgICAgICAgICBjdHguTm9kZS5EYXRhLkRfTW9udGggPSBjdHguRGF0ZS5Nb250 aA0KPiArICAgICAgICAgICAgICAgIGlmIGN0eC5EYXRlLk1vbnRoIDwgMSBvciBjdHguRGF0ZS5N b250aCA+IDEyOg0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElE X1BBUkFNRVRFUiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGN0eC5ELmxpbmUsDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAiTW9udGggZGVmYXVsdCB2YWx1ZSBtdXN0IGJlIGJldHdl ZW4gTWluIDEgYW5kIE1heCAxMi4iLA0KPiArICAgICAgICAgICAgICAgICAgICApDQo+ICsgICAg ICAgICAgICBpZiBjdHguS2V5VmFsdWUgPT0gMjoNCj4gKyAgICAgICAgICAgICAgICBjdHguRGF0 ZS5EYXkgPSBzZWxmLlRyYW5zTnVtKGN0eC5OLnRleHQpDQo+ICsgICAgICAgICAgICAgICAgY3R4 Lk5vZGUuRGF0YS5EX0RheSA9IGN0eC5EYXRlLkRheQ0KPiArICAgICAgICAgICAgICAgIGlmIGN0 eC5EYXRlLkRheSA8IDEgb3IgY3R4LkRhdGUuRGF5ID4gMzE6DQo+ICsgICAgICAgICAgICAgICAg ICAgIHNlbGYuRXJyb3JIYW5kbGVyKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgVmZyUmV0 dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSLA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgY3R4LkQubGluZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJEYXkgZGVm YXVsdCB2YWx1ZSBtdXN0IGJlIGJldHdlZW4gTWluIDEgYW5kIE1heCAzMS4iLA0KPiArICAgICAg ICAgICAgICAgICAgICApDQo+ICsgICAgICAgIHJldHVybiBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4 KQ0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4 UGFyc2VyI3ZmckRhdGVGbGFncy4NCj4gKyAgICBkZWYgdmlzaXRWZnJEYXRlRmxhZ3Moc2VsZiwg Y3R4OiBWZnJTeW50YXhQYXJzZXIuVmZyRGF0ZUZsYWdzQ29udGV4dCk6DQo+ICsgICAgICAgIHNl bGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsNCj4gKyAgICAgICAgZm9yIEZsYWdzRmllbGRDdHgg aW4gY3R4LmRhdGVGbGFnc0ZpZWxkKCk6DQo+ICsgICAgICAgICAgICBjdHguTEZsYWdzIHw9IEZs YWdzRmllbGRDdHguTEZsYWcNCj4gKw0KPiArICAgICAgICByZXR1cm4gY3R4LkxGbGFncw0KPiAr DQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2Vy I2RhdGVGbGFnc0ZpZWxkLg0KPiArICAgIGRlZiB2aXNpdERhdGVGbGFnc0ZpZWxkKHNlbGYsIGN0 eDogVmZyU3ludGF4UGFyc2VyLkRhdGVGbGFnc0ZpZWxkQ29udGV4dCk6DQo+ICsgICAgICAgIHNl bGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsNCj4gKyAgICAgICAgaWYgY3R4Lk51bWJlcigpICE9 IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTEZsYWcgPSBzZWxmLlRyYW5zTnVtKGN0eC5OdW1i ZXIoKSkNCj4gKyAgICAgICAgaWYgY3R4LlllYXJTdXBwcHJlc3NGbGFnKCkgIT0gTm9uZToNCj4g KyAgICAgICAgICAgIGN0eC5MRmxhZyA9IDB4MDENCj4gKyAgICAgICAgaWYgY3R4Lk1vbnRoU3Vw cHJlc3NGbGFnKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5MRmxhZyA9IDB4MDINCj4g KyAgICAgICAgaWYgY3R4LkRheVN1cHByZXNzRmxhZygpICE9IE5vbmU6DQo+ICsgICAgICAgICAg ICBjdHguTEZsYWcgPSAweDA0DQo+ICsgICAgICAgIGlmIGN0eC5TdG9yYWdlTm9ybWFsRmxhZygp ICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTEZsYWcgPSAweDAwDQo+ICsgICAgICAgIGlm IGN0eC5TdG9yYWdlVGltZUZsYWcoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4LkxGbGFn ID0gMHgwMTANCj4gKyAgICAgICAgaWYgY3R4LlN0b3JhZ2VXYWtlVXBGbGFnKCkgIT0gTm9uZToN Cj4gKyAgICAgICAgICAgIGN0eC5MRmxhZyA9IDB4MjANCj4gKw0KPiArICAgICAgICByZXR1cm4g Y3R4LkxGbGFnDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBW ZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVtZW50VGltZS4NCj4gKyAgICBkZWYgdmlzaXRWZnJTdGF0 ZW1lbnRUaW1lKHNlbGYsIGN0eDoNCj4gVmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudFRpbWVD b250ZXh0KToNCj4gKyAgICAgICAgVE9iaiA9IElmclRpbWUoKQ0KPiArICAgICAgICBjdHguTm9k ZS5EYXRhID0gVE9iag0KPiArICAgICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gKyAgICAg ICAgVE9iai5TZXRMaW5lTm8oTGluZSkNCj4gKyAgICAgICAgc2VsZi5WYWx1ZSA9IGN0eC5WYWwN Cj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKw0KPiArICAgICAgICBpZiBj dHgudmZyUXVlc3Rpb25IZWFkZXIoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgaWYgc2VsZi5D dXJyUWVzdFZhckluZm8uVmFyVHlwZSA9PSBFRklfSUZSX1RZUEVfT1RIRVI6DQo+ICsgICAgICAg ICAgICAgICAgc2VsZi5DdXJyUWVzdFZhckluZm8uVmFyVHlwZSA9PSBFRklfSUZSX1RZUEVfVElN RQ0KPiArDQo+ICsgICAgICAgICAgICBpZiBjdHguRkxBR1MoKSAhPSBOb25lOg0KPiArICAgICAg ICAgICAgICAgIFRPYmouU2V0RmxhZ3NTdHJlYW0oc2VsZi5FeHRyYWN0T3JpZ2luYWxUZXh0KGN0 eC52ZnJUaW1lRmxhZ3MoKSkpDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIo DQo+ICsgICAgICAgICAgICAgICAgICAgIFRPYmouU2V0RmxhZ3MoRUZJX0lGUl9RVUVTVElPTl9G TEFHX0RFRkFVTFQsDQo+IGN0eC52ZnJUaW1lRmxhZ3MoKS5MRmxhZ3MpLA0KPiArICAgICAgICAg ICAgICAgICAgICBjdHguRjEubGluZSwNCj4gKyAgICAgICAgICAgICAgICApDQo+ICsgICAgICAg IGVsc2U6DQo+ICsgICAgICAgICAgICBIb3VyID0gc2VsZi5UcmFuc0lkKGN0eC5TdHJpbmdJZGVu dGlmaWVyKDApKQ0KPiArICAgICAgICAgICAgSG91ciArPSAiLiINCj4gKyAgICAgICAgICAgIEhv dXIgKz0gc2VsZi5UcmFuc0lkKGN0eC5TdHJpbmdJZGVudGlmaWVyKDEpKQ0KPiArDQo+ICsgICAg ICAgICAgICBUT2JqLlNldEhvdXIoSG91cikNCj4gKw0KPiArICAgICAgICAgICAgTWludXRlID0g c2VsZi5UcmFuc0lkKGN0eC5TdHJpbmdJZGVudGlmaWVyKDIpKQ0KPiArICAgICAgICAgICAgTWlu dXRlICs9ICIuIg0KPiArICAgICAgICAgICAgTWludXRlICs9IHNlbGYuVHJhbnNJZChjdHguU3Ry aW5nSWRlbnRpZmllcigzKSkNCj4gKw0KPiArICAgICAgICAgICAgVE9iai5TZXRNaW51dGUoTWlu dXRlKQ0KPiArDQo+ICsgICAgICAgICAgICBTZWNvbmQgPSBzZWxmLlRyYW5zSWQoY3R4LlN0cmlu Z0lkZW50aWZpZXIoNCkpDQo+ICsgICAgICAgICAgICBTZWNvbmQgKz0gIi4iDQo+ICsgICAgICAg ICAgICBTZWNvbmQgKz0gc2VsZi5UcmFuc0lkKGN0eC5TdHJpbmdJZGVudGlmaWVyKDUpKQ0KPiAr DQo+ICsgICAgICAgICAgICBUT2JqLlNldFNlY29uZChTZWNvbmQpDQo+ICsNCj4gKyAgICAgICAg ICAgIGlmIGN0eC5GTEFHUygpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICAgICAgVE9iai5TZXRG bGFnc1N0cmVhbShzZWxmLkV4dHJhY3RPcmlnaW5hbFRleHQoY3R4LnZmclRpbWVGbGFncygpKSkN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAg ICAgICAgVE9iai5TZXRGbGFncyhFRklfSUZSX1FVRVNUSU9OX0ZMQUdfREVGQVVMVCwNCj4gY3R4 LnZmclRpbWVGbGFncygpLkxGbGFncyksDQo+ICsgICAgICAgICAgICAgICAgICAgIGN0eC5GMi5s aW5lLA0KPiArICAgICAgICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICAgICAgUUlkLCBfID0g c2VsZi5WZnJRdWVzdGlvbkRCLlJlZ2lzdGVyT2xkVGltZVF1ZXN0aW9uKA0KPiArICAgICAgICAg ICAgICAgIEhvdXIsIE1pbnV0ZSwgU2Vjb25kLCBFRklfUVVFU1RJT05fSURfSU5WQUxJRCwgZ0Zv cm1Qa2cNCj4gKyAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgIFRPYmouU2V0UXVlc3Rpb25J ZChRSWQpDQo+ICsgICAgICAgICAgICBUT2JqLlNldEZsYWdzKEVGSV9JRlJfUVVFU1RJT05fRkxB R19ERUZBVUxULA0KPiBRRl9USU1FX1NUT1JBR0VfVElNRSkNCj4gKyAgICAgICAgICAgIFRPYmou U2V0UHJvbXB0KHNlbGYuVHJhbnNOdW0oY3R4Lk51bWJlcigwKSkpDQo+ICsgICAgICAgICAgICBU T2JqLlNldEhlbHAoc2VsZi5UcmFuc051bShjdHguTnVtYmVyKDEpKSkNCj4gKw0KPiArICAgICAg ICAgICAgRGVmYXVsdE9iaiA9IElmckRlZmF1bHQoDQo+ICsgICAgICAgICAgICAgICAgRUZJX0lG Ul9UWVBFX1RJTUUsIFtjdHguVmFsXSwgRUZJX0hJSV9ERUZBVUxUX0NMQVNTX1NUQU5EQVJELA0K PiBFRklfSUZSX1RZUEVfVElNRQ0KPiArICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgRGVm YXVsdE9iai5TZXRMaW5lTm8oTGluZSkNCj4gKyAgICAgICAgICAgIERlZmF1bHROb2RlID0gSWZy VHJlZU5vZGUoDQo+ICsgICAgICAgICAgICAgICAgRUZJX0lGUl9ERUZBVUxUX09QLCBEZWZhdWx0 T2JqLA0KPiBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShEZWZhdWx0T2JqLkdldEluZm8oKSkNCj4g KyAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlLmluc2VydENoaWxkKERlZmF1 bHROb2RlKQ0KPiArDQo+ICsgICAgICAgIGN0eC5Ob2RlLkJ1ZmZlciA9IGdGb3JtUGtnLlN0cnVj dFRvU3RyZWFtKFRPYmouR2V0SW5mbygpKQ0KPiArICAgICAgICBmb3IgQ3R4IGluIGN0eC52ZnJT dGF0ZW1lbnRJbmNvbnNpc3RlbnRJZigpOg0KPiArICAgICAgICAgICAgc2VsZi5JbnNlcnRDaGls ZChjdHguTm9kZSwgQ3R4KQ0KPiArICAgICAgICBzZWxmLkluc2VydEVuZE5vZGUoY3R4Lk5vZGUs IGN0eC5zdG9wLmxpbmUpDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiArDQo+ICsgICAg IyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI21pbk1heFRp bWVTdGVwRGVmYXVsdC4NCj4gKyAgICBkZWYgdmlzaXRNaW5NYXhUaW1lU3RlcERlZmF1bHQoc2Vs ZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIuTWluTWF4VGltZVN0ZXBEZWZhdWx0Q29udGV4dCk6 DQo+ICsgICAgICAgIGN0eC5Ob2RlLkRhdGEuTWluID0gc2VsZi5UcmFuc051bShjdHguTnVtYmVy KDApKQ0KPiArICAgICAgICBjdHguTm9kZS5EYXRhLk1heCA9IHNlbGYuVHJhbnNOdW0oY3R4Lk51 bWJlcigxKSkNCj4gKyAgICAgICAgaWYgY3R4LlN0ZXAoKSAhPSBOb25lOg0KPiArICAgICAgICAg ICAgY3R4Lk5vZGUuRGF0YS5TdGVwID0gc2VsZi5UcmFuc051bShjdHguTnVtYmVyKDIpKQ0KPiAr ICAgICAgICBpZiBjdHguRGVmYXVsdCgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBpZiBjdHgu S2V5VmFsdWUgPT0gMDoNCj4gKyAgICAgICAgICAgICAgICBjdHguVGltZS5Ib3VyID0gc2VsZi5U cmFuc051bShjdHguTnVtYmVyKGxlbihjdHguTnVtYmVyKCkpIC0gMSkpDQo+ICsgICAgICAgICAg ICAgICAgY3R4Lk5vZGUuRGF0YS5EX0hvdXIgPSBjdHguVGltZS5Ib3VyDQo+ICsgICAgICAgICAg ICAgICAgaWYgY3R4LlRpbWUuSG91ciA+IDIzOg0KPiArICAgICAgICAgICAgICAgICAgICBzZWxm LkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIFZmclJldHVybkNvZGUu VkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg IGN0eC5OLmxpbmUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiSG91ciBkZWZhdWx0IHZh bHVlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMy4iLA0KPiArICAgICAgICAgICAgICAgICAgICAp DQo+ICsgICAgICAgICAgICBpZiBjdHguS2V5VmFsdWUgPT0gMToNCj4gKyAgICAgICAgICAgICAg ICBjdHguVGltZS5NaW51dGUgPSBzZWxmLlRyYW5zTnVtKGN0eC5OdW1iZXIobGVuKGN0eC5OdW1i ZXIoKSkgLQ0KPiAxKSkNCj4gKyAgICAgICAgICAgICAgICBjdHguTm9kZS5EYXRhLkRfTWludXRl ID0gY3R4LlRpbWUuTWludXRlDQo+ICsgICAgICAgICAgICAgICAgaWYgY3R4LlRpbWUuTWludXRl ID4gNTk6DQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFS QU1FVEVSLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgY3R4Lk4ubGluZSwNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICJNaW51dGUgZGVmYXVsdCB2YWx1ZSBtdXN0IGJlIGJldHdlZW4g MCBhbmQgNTkuIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgaWYg Y3R4LktleVZhbHVlID09IDI6DQo+ICsgICAgICAgICAgICAgICAgY3R4LlRpbWUuU2Vjb25kID0g c2VsZi5UcmFuc051bShjdHguTnVtYmVyKGxlbihjdHguTnVtYmVyKCkpIC0NCj4gMSkpDQo+ICsg ICAgICAgICAgICAgICAgY3R4Lk5vZGUuRGF0YS5EX1NlY29uZCA9IGN0eC5UaW1lLlNlY29uZA0K PiArICAgICAgICAgICAgICAgIGlmIGN0eC5UaW1lLlNlY29uZCA+IDU5Og0KPiArICAgICAgICAg ICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcigNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgIGN0eC5OLmxpbmUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAi U2Vjb25kIGRlZmF1bHQgdmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDU5LiIsDQo+ICsgICAg ICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYudmlzaXRDaGlsZHJlbihj dHgpDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50 YXhQYXJzZXIjdmZyVGltZUZsYWdzLg0KPiArICAgIGRlZiB2aXNpdFZmclRpbWVGbGFncyhzZWxm LCBjdHg6IFZmclN5bnRheFBhcnNlci5WZnJUaW1lRmxhZ3NDb250ZXh0KToNCj4gKyAgICAgICAg c2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKw0KPiArICAgICAgICBmb3IgRmxhZ3NGaWVsZEN0 eCBpbiBjdHgudGltZUZsYWdzRmllbGQoKToNCj4gKyAgICAgICAgICAgIGN0eC5MRmxhZ3MgfD0g RmxhZ3NGaWVsZEN0eC5MRmxhZw0KPiArDQo+ICsgICAgICAgIHJldHVybiBjdHguTEZsYWdzDQo+ ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJz ZXIjdGltZUZsYWdzRmllbGQuDQo+ICsgICAgZGVmIHZpc2l0VGltZUZsYWdzRmllbGQoc2VsZiwg Y3R4OiBWZnJTeW50YXhQYXJzZXIuVGltZUZsYWdzRmllbGRDb250ZXh0KToNCj4gKyAgICAgICAg c2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKw0KPiArICAgICAgICBpZiBjdHguTnVtYmVyKCkg IT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5MRmxhZyA9IHNlbGYuVHJhbnNOdW0oY3R4Lk51 bWJlcigpKQ0KPiArICAgICAgICBpZiBjdHguSG91clN1cHBwcmVzc0ZsYWcoKSAhPSBOb25lOg0K PiArICAgICAgICAgICAgY3R4LkxGbGFnID0gMHgwMQ0KPiArICAgICAgICBpZiBjdHguTWludXRl U3VwcHJlc3NGbGFnKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5MRmxhZyA9IDB4MDIN Cj4gKyAgICAgICAgaWYgY3R4LlNlY29uZFN1cHByZXNzRmxhZygpICE9IE5vbmU6DQo+ICsgICAg ICAgICAgICBjdHguTEZsYWcgPSAweDA0DQo+ICsgICAgICAgIGlmIGN0eC5TdG9yYWdlTm9ybWFs RmxhZygpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTEZsYWcgPSAweDAwDQo+ICsgICAg ICAgIGlmIGN0eC5TdG9yYWdlVGltZUZsYWcoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4 LkxGbGFnID0gMHgxMA0KPiArICAgICAgICBpZiBjdHguU3RvcmFnZVdha2VVcEZsYWcoKSAhPSBO b25lOg0KPiArICAgICAgICAgICAgY3R4LkxGbGFnID0gMHgyMA0KPiArDQo+ICsgICAgICAgIHJl dHVybiBjdHguTEZsYWcNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2Vk IGJ5IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRDb25kaXRpb25hbC4NCj4gKyAgICBkZWYg dmlzaXRWZnJTdGF0ZW1lbnRDb25kaXRpb25hbChzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNl ci5WZnJTdGF0ZW1lbnRDb25kaXRpb25hbENvbnRleHQpOg0KPiArICAgICAgICBzZWxmLnZpc2l0 Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAgICBpZiBjdHgudmZyU3RhdGVtZW50RGlzYWJsZUlmU3Rh dCgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0ZW1lbnRE aXNhYmxlSWZTdGF0KCkuTm9kZQ0KPiArICAgICAgICBpZiBjdHgudmZyU3RhdGVtZW50U3VwcHJl c3NJZlN0YXQoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyU3Rh dGVtZW50U3VwcHJlc3NJZlN0YXQoKS5Ob2RlDQo+ICsgICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1l bnRHcmF5T3V0SWZTdGF0KCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4 LnZmclN0YXRlbWVudEdyYXlPdXRJZlN0YXQoKS5Ob2RlDQo+ICsgICAgICAgIGlmIGN0eC52ZnJT dGF0ZW1lbnRJbmNvbnNpc3RlbnRJZlN0YXQoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4 Lk5vZGUgPSBjdHgudmZyU3RhdGVtZW50SW5jb25zaXN0ZW50SWZTdGF0KCkuTm9kZQ0KPiArDQo+ ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRy ZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudENvbmRpdGlvbmFs TmV3Lg0KPiArICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudENvbmRpdGlvbmFsTmV3KA0KPiArICAg ICAgICBzZWxmLCBjdHg6IFZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRDb25kaXRpb25hbE5l d0NvbnRleHQNCj4gKyAgICApOg0KPiArICAgICAgICByZXR1cm4gc2VsZi52aXNpdENoaWxkcmVu KGN0eCkNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5DQo+IFZm clN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRTdXBwcmVzc0lmU3RhdC4NCj4gKyAgICBkZWYgdmlz aXRWZnJTdGF0ZW1lbnRTdXBwcmVzc0lmU3RhdCgNCj4gKyAgICAgICAgc2VsZiwgY3R4OiBWZnJT eW50YXhQYXJzZXIuVmZyU3RhdGVtZW50U3VwcHJlc3NJZlN0YXRDb250ZXh0DQo+ICsgICAgKToN Cj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgY3R4Lk5vZGUg PSBjdHgudmZyU3RhdGVtZW50U3VwcHJlc3NJZlN0YXROZXcoKS5Ob2RlDQo+ICsgICAgICAgIHJl dHVybiBjdHguTm9kZQ0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQg YnkNCj4gVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudEdyYXlPdXRJZlN0YXQuDQo+ICsgICAg ZGVmIHZpc2l0VmZyU3RhdGVtZW50R3JheU91dElmU3RhdChzZWxmLCBjdHg6DQo+IFZmclN5bnRh eFBhcnNlci5WZnJTdGF0ZW1lbnRHcmF5T3V0SWZTdGF0Q29udGV4dCk6DQo+ICsgICAgICAgIHNl bGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRl bWVudEdyYXlPdXRJZlN0YXROZXcoKS5Ob2RlDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0K PiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFy c2VyI3ZmclN0YXRlbWVudFN0YXRMaXN0Lg0KPiArICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudFN0 YXRMaXN0KHNlbGYsIGN0eDoNCj4gVmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudFN0YXRMaXN0 Q29udGV4dCk6DQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsgICAgICAg IGlmIGN0eC52ZnJTdGF0ZW1lbnRTdGF0KCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5O b2RlID0gY3R4LnZmclN0YXRlbWVudFN0YXQoKS5Ob2RlDQo+ICsgICAgICAgIGlmIGN0eC52ZnJT dGF0ZW1lbnRRdWVzdGlvbnMoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGUgPSBj dHgudmZyU3RhdGVtZW50UXVlc3Rpb25zKCkuTm9kZQ0KPiArICAgICAgICBpZiBjdHgudmZyU3Rh dGVtZW50Q29uZGl0aW9uYWwoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGUgPSBj dHgudmZyU3RhdGVtZW50Q29uZGl0aW9uYWwoKS5Ob2RlDQo+ICsgICAgICAgIGlmIGN0eC52ZnJT dGF0ZW1lbnRMYWJlbCgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52 ZnJTdGF0ZW1lbnRMYWJlbCgpLk5vZGUNCj4gKyAgICAgICAgaWYgY3R4LnZmclN0YXRlbWVudEV4 dGVuc2lvbigpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IGN0eC52ZnJTdGF0 ZW1lbnRFeHRlbnNpb24oKS5Ob2RlDQo+ICsgICAgICAgIGlmIGN0eC52ZnJTdGF0ZW1lbnRJbnZh bGlkKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4LnZmclN0YXRlbWVu dEludmFsaWQoKS5Ob2RlDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiArDQo+ICsgICAg IyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRl bWVudFN0YXRMaXN0T2xkLg0KPiArICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudFN0YXRMaXN0T2xk KHNlbGYsIGN0eDoNCj4gVmZyU3ludGF4UGFyc2VyLlZmclN0YXRlbWVudFN0YXRMaXN0T2xkQ29u dGV4dCk6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3ludGF4UGFyc2Vy I3ZmclN0YXRlbWVudERpc2FibGVJZlN0YXQuDQo+ICsgICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50 RGlzYWJsZUlmU3RhdChzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRE aXNhYmxlSWZTdGF0Q29udGV4dCk6DQo+ICsgICAgICAgIERJT2JqID0gSWZyRGlzYWJsZUlmKCkN Cj4gKyAgICAgICAgRElPYmouU2V0TGluZU5vKGN0eC5zdGFydC5saW5lKQ0KPiArICAgICAgICBj dHguTm9kZS5EYXRhID0gRElPYmoNCj4gKyAgICAgICAgY3R4Lk5vZGUuQnVmZmVyID0gZ0Zvcm1Q a2cuU3RydWN0VG9TdHJlYW0oRElPYmouR2V0SW5mbygpKQ0KPiArICAgICAgICBjdHguTm9kZS5D b25kaXRpb24gPSAoDQo+ICsgICAgICAgICAgICAiZGlzYWJsZWlmIiArICIgIiArDQo+IHNlbGYu RXh0cmFjdE9yaWdpbmFsVGV4dChjdHgudmZyU3RhdGVtZW50RXhwcmVzc2lvbigpKQ0KPiArICAg ICAgICApDQo+ICsgICAgICAgIGN0eC5Ob2RlLkV4cHJlc3Npb24gPQ0KPiBzZWxmLkV4dHJhY3RP cmlnaW5hbFRleHQoY3R4LnZmclN0YXRlbWVudEV4cHJlc3Npb24oKSkNCj4gKyAgICAgICAgc2Vs Zi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgZm9yIEN0eCBpbiBjdHgudmZyU3RhdGVt ZW50U3RhdExpc3QoKToNCj4gKyAgICAgICAgICAgIHNlbGYuSW5zZXJ0Q2hpbGQoY3R4Lk5vZGUs IEN0eCkNCj4gKyAgICAgICAgc2VsZi5JbnNlcnRFbmROb2RlKGN0eC5Ob2RlLCBjdHguc3RvcC5s aW5lKQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiArDQo+ICsgICAgIyBWaXNp dCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVu dFN1cHByZXNzSWZTdGF0TmV3Lg0KPiArICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudFN1cHByZXNz SWZTdGF0TmV3KA0KPiArICAgICAgICBzZWxmLCBjdHg6IFZmclN5bnRheFBhcnNlci5WZnJTdGF0 ZW1lbnRTdXBwcmVzc0lmU3RhdE5ld0NvbnRleHQNCj4gKyAgICApOg0KPiArICAgICAgICBTSU9i aiA9IElmclN1cHByZXNzSWYoKQ0KPiArICAgICAgICBTSU9iai5TZXRMaW5lTm8oY3R4LnN0YXJ0 LmxpbmUpDQo+ICsgICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBTSU9iag0KPiArICAgICAgICBjdHgu Tm9kZS5CdWZmZXIgPSBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShTSU9iai5HZXRJbmZvKCkpDQo+ ICsgICAgICAgIGN0eC5Ob2RlLkNvbmRpdGlvbiA9ICgNCj4gKyAgICAgICAgICAgICJzdXBwcmVz c2lmIiArICIgIiArDQo+IHNlbGYuRXh0cmFjdE9yaWdpbmFsVGV4dChjdHgudmZyU3RhdGVtZW50 RXhwcmVzc2lvbigpKQ0KPiArICAgICAgICApDQo+ICsgICAgICAgIGN0eC5Ob2RlLkV4cHJlc3Np b24gPQ0KPiBzZWxmLkV4dHJhY3RPcmlnaW5hbFRleHQoY3R4LnZmclN0YXRlbWVudEV4cHJlc3Np b24oKSkNCj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgZm9y IEN0eCBpbiBjdHgudmZyU3RhdGVtZW50U3RhdExpc3QoKToNCj4gKyAgICAgICAgICAgIHNlbGYu SW5zZXJ0Q2hpbGQoY3R4Lk5vZGUsIEN0eCkNCj4gKyAgICAgICAgc2VsZi5JbnNlcnRFbmROb2Rl KGN0eC5Ob2RlLCBjdHguc3RvcC5saW5lKQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9k ZQ0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3lu dGF4UGFyc2VyI3ZmclN0YXRlbWVudEdyYXlPdXRJZlN0YXROZXcuDQo+ICsgICAgZGVmIHZpc2l0 VmZyU3RhdGVtZW50R3JheU91dElmU3RhdE5ldygNCj4gKyAgICAgICAgc2VsZiwgY3R4OiBWZnJT eW50YXhQYXJzZXIuVmZyU3RhdGVtZW50R3JheU91dElmU3RhdE5ld0NvbnRleHQNCj4gKyAgICAp Og0KPiArICAgICAgICBHT0lPYmogPSBJZnJHcmF5T3V0SWYoKQ0KPiArICAgICAgICBHT0lPYmou U2V0TGluZU5vKGN0eC5zdGFydC5saW5lKQ0KPiArICAgICAgICBjdHguTm9kZS5EYXRhID0gR09J T2JqDQo+ICsgICAgICAgIGN0eC5Ob2RlLkJ1ZmZlciA9IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFt KEdPSU9iai5HZXRJbmZvKCkpDQo+ICsgICAgICAgIGN0eC5Ob2RlLkNvbmRpdGlvbiA9ICgNCj4g KyAgICAgICAgICAgICJncmF5b3V0aWYiICsgIiAiICsNCj4gc2VsZi5FeHRyYWN0T3JpZ2luYWxU ZXh0KGN0eC52ZnJTdGF0ZW1lbnRFeHByZXNzaW9uKCkpDQo+ICsgICAgICAgICkNCj4gKyAgICAg ICAgY3R4Lk5vZGUuRXhwcmVzc2lvbiA9DQo+IHNlbGYuRXh0cmFjdE9yaWdpbmFsVGV4dChjdHgu dmZyU3RhdGVtZW50RXhwcmVzc2lvbigpKQ0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4o Y3R4KQ0KPiArICAgICAgICBmb3IgQ3R4IGluIGN0eC52ZnJTdGF0ZW1lbnRTdGF0TGlzdCgpOg0K PiArICAgICAgICAgICAgc2VsZi5JbnNlcnRDaGlsZChjdHguTm9kZSwgQ3R4KQ0KPiArICAgICAg ICBzZWxmLkluc2VydEVuZE5vZGUoY3R4Lk5vZGUsIGN0eC5zdG9wLmxpbmUpDQo+ICsNCj4gKyAg ICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBw cm9kdWNlZCBieQ0KPiBWZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVtZW50SW5jb25zaXN0ZW50SWZT dGF0Lg0KPiArICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudEluY29uc2lzdGVudElmU3RhdCgNCj4g KyAgICAgICAgc2VsZiwgY3R4OiBWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50SW5jb25zaXN0 ZW50SWZTdGF0Q29udGV4dA0KPiArICAgICk6DQo+ICsgICAgICAgIElJT2JqID0gSWZySW5jb25z aXN0ZW50SWYoKQ0KPiArICAgICAgICBzZWxmLkVycm9ySGFuZGxlcihWZnJSZXR1cm5Db2RlLlZG Ul9SRVRVUk5fVU5TVVBQT1JURUQsDQo+IGN0eC5zdGFydC5saW5lKQ0KPiArICAgICAgICBJSU9i ai5TZXRMaW5lTm8oY3R4LnN0YXJ0LmxpbmUpDQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJl bihjdHgpDQo+ICsgICAgICAgIElJT2JqLlNldEVycm9yKHNlbGYuVHJhbnNOdW0oY3R4Lk51bWJl cigpKSkNCj4gKyAgICAgICAgY3R4Lk5vZGUuRGF0YSA9IElJT2JqDQo+ICsgICAgICAgIGN0eC5O b2RlLkJ1ZmZlciA9IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFtKElJT2JqLkdldEluZm8oKSkNCj4g KyAgICAgICAgY3R4Lk5vZGUuQ29uZGl0aW9uID0gKA0KPiArICAgICAgICAgICAgImluY29uc2lz dGVudGlmIiArICIgIiArDQo+IHNlbGYuRXh0cmFjdE9yaWdpbmFsVGV4dChjdHgudmZyU3RhdGVt ZW50RXhwcmVzc2lvbigpKQ0KPiArICAgICAgICApDQo+ICsgICAgICAgIGN0eC5Ob2RlLkV4cHJl c3Npb24gPQ0KPiBzZWxmLkV4dHJhY3RPcmlnaW5hbFRleHQoY3R4LnZmclN0YXRlbWVudEV4cHJl c3Npb24oKSkNCj4gKyAgICAgICAgc2VsZi5JbnNlcnRFbmROb2RlKGN0eC5Ob2RlLCBjdHguc3Rv cC5saW5lKQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiArDQo+ICsgICAgIyBW aXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVu dEludmFsaWQuDQo+ICsgICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50SW52YWxpZChzZWxmLCBjdHg6 DQo+IFZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRJbnZhbGlkQ29udGV4dCk6DQo+ICsgICAg ICAgIHJldHVybiBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ICsgICAgIyBWaXNpdCBh IHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudElu dmFsaWRIaWRkZW4uDQo+ICsgICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50SW52YWxpZEhpZGRlbihz ZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRJbnZhbGlkSGlkZGVuQ29u dGV4dCk6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3ludGF4UGFyc2Vy I3ZmclN0YXRlbWVudEludmFsaWRJbnZlbnRvcnkuDQo+ICsgICAgZGVmIHZpc2l0VmZyU3RhdGVt ZW50SW52YWxpZEludmVudG9yeSgNCj4gKyAgICAgICAgc2VsZiwgY3R4OiBWZnJTeW50YXhQYXJz ZXIuVmZyU3RhdGVtZW50SW52YWxpZEludmVudG9yeUNvbnRleHQNCj4gKyAgICApOg0KPiArICAg ICAgICByZXR1cm4gc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKw0KPiArICAgICMgVmlzaXQg YSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5DQo+IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRJ bnZhbGlkU2F2ZVJlc3RvcmVEZWZhdWx0cy4NCj4gKyAgICBkZWYgdmlzaXRWZnJTdGF0ZW1lbnRJ bnZhbGlkU2F2ZVJlc3RvcmVEZWZhdWx0cygNCj4gKyAgICAgICAgc2VsZiwgY3R4OiBWZnJTeW50 YXhQYXJzZXIuVmZyU3RhdGVtZW50SW52YWxpZFNhdmVSZXN0b3JlRGVmYXVsdHNDb250ZXh0DQo+ ICsgICAgKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsN Cj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIj dmZyU3RhdGVtZW50TGFiZWwuDQo+ICsgICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50TGFiZWwoc2Vs ZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50TGFiZWxDb250ZXh0KToNCj4g KyAgICAgICAgTE9iaiA9IElmckxhYmVsKCkNCj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVu KGN0eCkNCj4gKyAgICAgICAgTE9iai5TZXRMaW5lTm8oY3R4LnN0YXJ0LmxpbmUpDQo+ICsgICAg ICAgIExPYmouU2V0TnVtYmVyKHNlbGYuVHJhbnNOdW0oY3R4Lk51bWJlcigpKSkNCj4gKyAgICAg ICAgY3R4Lk5vZGUuRGF0YSA9IExPYmoNCj4gKyAgICAgICAgY3R4Lk5vZGUuQnVmZmVyID0gZ0Zv cm1Qa2cuU3RydWN0VG9TdHJlYW0oTE9iai5HZXRJbmZvKCkpDQo+ICsgICAgICAgIHJldHVybiBj dHguTm9kZQ0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4g VmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWV4LkJPYmpudEJhbm5lci4NCj4gKyAgICBkZWYgdmlz aXRWZnJTdGF0ZW1lbnRCYW5uZXIoc2VsZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIuVmZyU3Rh dGVtZW50QmFubmVyQ29udGV4dCk6DQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgp DQo+ICsgICAgICAgIEJPYmogPSBJZnJCYW5uZXIoKQ0KPiArICAgICAgICBCT2JqLlNldExpbmVO byhjdHguc3RhcnQubGluZSkNCj4gKyAgICAgICAgQk9iai5TZXRUaXRsZShzZWxmLlRyYW5zTnVt KGN0eC5OdW1iZXIoMCkpKQ0KPiArDQo+ICsgICAgICAgIGlmIGN0eC5MaW5lKCkgIT0gTm9uZToN Cj4gKyAgICAgICAgICAgIEJPYmouU2V0TGluZShzZWxmLlRyYW5zTnVtKGN0eC5OdW1iZXIoMSkp KQ0KPiArICAgICAgICAgICAgaWYgY3R4LkxlZnQoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAg ICAgIGN0eC5Ob2RlLkRpY3RbImFsaWduIl0gPSBLVigibGVmdCIsIDApDQo+ICsgICAgICAgICAg ICAgICAgQk9iai5TZXRBbGlnbigwKQ0KPiArICAgICAgICAgICAgaWYgY3R4LkNlbnRlcigpICE9 IE5vbmU6DQo+ICsgICAgICAgICAgICAgICAgY3R4Lk5vZGUuRGljdFsiYWxpZ24iXSA9IEtWKCJj ZW50ZXIiLCAxKQ0KPiArICAgICAgICAgICAgICAgIEJPYmouU2V0QWxpZ24oMSkNCj4gKyAgICAg ICAgICAgIGlmIGN0eC5SaWdodCgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICAgICAgY3R4Lk5v ZGUuRGljdFsiYWxpZ24iXSA9IEtWKCJyaWdodCIsIDIpDQo+ICsgICAgICAgICAgICAgICAgQk9i ai5TZXRBbGlnbigyKQ0KPiArDQo+ICsgICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBCT2JqDQo+ICsg ICAgICAgIGN0eC5Ob2RlLkJ1ZmZlciA9IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFtKEJPYmouR2V0 SW5mbygpKQ0KPiArDQo+ICsgICAgICAgIGlmIGN0eC5UaW1lb3V0KCkgIT0gTm9uZToNCj4gKyAg ICAgICAgICAgIFRPYmogPSBJZnJUaW1lb3V0KCkNCj4gKyAgICAgICAgICAgIFRPYmouU2V0TGlu ZU5vKGN0eC5zdGFydC5saW5lKQ0KPiArICAgICAgICAgICAgVE9iai5TZXRUaW1lb3V0KHNlbGYu VHJhbnNOdW0oY3R4Lk51bWJlcigyKSkpDQo+ICsgICAgICAgICAgICBOb2RlID0gSWZyVHJlZU5v ZGUoRUZJX0lGUl9HVUlEX09QLCBUT2JqLA0KPiBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShUT2Jq LkdldEluZm8oKSkpDQo+ICsgICAgICAgICAgICBjdHguTm9kZS5pbnNlcnRDaGlsZChOb2RlKQ0K PiArICAgICAgICAgICAgQk9iai5TZXRIYXNUaW1lT3V0KFRydWUpDQo+ICsgICAgICAgICAgICBC T2JqLlNldFRpbWVPdXQoc2VsZi5UcmFuc051bShjdHguTnVtYmVyKDIpKSkNCj4gKw0KPiArICAg ICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHBy b2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRFeHRlbnNpb24uDQo+ICsgICAg ZGVmIHZpc2l0VmZyU3RhdGVtZW50RXh0ZW5zaW9uKHNlbGYsIGN0eDoNCj4gVmZyU3ludGF4UGFy c2VyLlZmclN0YXRlbWVudEV4dGVuc2lvbkNvbnRleHQpOg0KPiArICAgICAgICBjdHguSXNTdHJ1 Y3QgPSBGYWxzZQ0KPiArICAgICAgICBpZiBjdHguRGF0YVR5cGUoKSAhPSBOb25lOg0KPiArICAg ICAgICAgICAgaWYgY3R4LlVpbnQ2NCgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICAgICAgY3R4 LlR5cGVOYW1lID0gIlVJTlQ2NCINCj4gKyAgICAgICAgICAgIGVsaWYgY3R4LlVpbnQzMigpICE9 IE5vbmU6DQo+ICsgICAgICAgICAgICAgICAgY3R4LlR5cGVOYW1lID0gIlVJTlQzMiINCj4gKyAg ICAgICAgICAgIGVsaWYgY3R4LlVpbnQxNigpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICAgICAg Y3R4LlR5cGVOYW1lID0gIlVJTlQxNiINCj4gKyAgICAgICAgICAgIGVsaWYgY3R4LlVpbnQ4KCkg IT0gTm9uZToNCj4gKyAgICAgICAgICAgICAgICBjdHguVHlwZU5hbWUgPSAiVUlOVDgiDQo+ICsg ICAgICAgICAgICBlbGlmIGN0eC5Cb29sZWFuKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgICAg ICBjdHguVHlwZU5hbWUgPSAiQk9PTEVBTiINCj4gKyAgICAgICAgICAgIGVsaWYgY3R4LkVGSV9T VFJJTkdfSUQoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgICAgIGN0eC5UeXBlTmFtZSA9ICJF RklfU1RSSU5HX0lEIg0KPiArICAgICAgICAgICAgZWxpZiBjdHguRUZJX0hJSV9EQVRFKCkgIT0g Tm9uZToNCj4gKyAgICAgICAgICAgICAgICBjdHguVHlwZU5hbWUgPSAiRUZJX0hJSV9EQVRFIg0K PiArICAgICAgICAgICAgICAgIGN0eC5Jc1N0cnVjdCA9IFRydWUNCj4gKyAgICAgICAgICAgIGVs aWYgY3R4LkVGSV9ISUlfVElNRSgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICAgICAgY3R4LlR5 cGVOYW1lID0gIkVGSV9ISUlfVElNRSINCj4gKyAgICAgICAgICAgICAgICBjdHguSXNTdHJ1Y3Qg PSBUcnVlDQo+ICsgICAgICAgICAgICBlbGlmIGN0eC5FRklfSElJX1JFRigpICE9IE5vbmU6DQo+ ICsgICAgICAgICAgICAgICAgY3R4LlR5cGVOYW1lID0gIkVGSV9ISUlfUkVGIg0KPiArICAgICAg ICAgICAgICAgIGN0eC5Jc1N0cnVjdCA9IFRydWUNCj4gKyAgICAgICAgICAgIGVsc2U6DQo+ICsg ICAgICAgICAgICAgICAgY3R4LlR5cGVOYW1lID0gc2VsZi5UcmFuc0lkKGN0eC5TdHJpbmdJZGVu dGlmaWVyKCkpDQo+ICsgICAgICAgICAgICAgICAgY3R4LklzU3RydWN0ID0gVHJ1ZQ0KPiArICAg ICAgICAgICAgY3R4LkFycmF5TnVtID0gc2VsZi5UcmFuc051bShjdHguTnVtYmVyKCkpDQo+ICsg ICAgICAgICAgICBjdHguVHlwZVNpemUsIFJldHVybkNvZGUgPQ0KPiBnVmZyVmFyRGF0YVR5cGVE Qi5HZXREYXRhVHlwZVNpemVCeVR5cGVOYW1lKGN0eC5UeXBlTmFtZSkNCj4gKyAgICAgICAgICAg IHNlbGYuRXJyb3JIYW5kbGVyKFJldHVybkNvZGUsIGN0eC5ELmxpbmUpDQo+ICsgICAgICAgICAg ICBjdHguU2l6ZSA9IGN0eC5UeXBlU2l6ZSAqIGN0eC5BcnJheU51bSBpZiBjdHguQXJyYXlOdW0g PiAwIGVsc2UNCj4gY3R4LlR5cGVTaXplDQo+ICsgICAgICAgICAgICBjdHguQnVmZmVyID0gYnl0 ZWFycmF5KGN0eC5TaXplKQ0KPiArDQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgp DQo+ICsgICAgICAgIExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiArICAgICAgICBHdWlkT2JqID0g SWZyRXh0ZW5zaW9uR3VpZChjdHguU2l6ZSwgY3R4LlR5cGVOYW1lLCBjdHguQXJyYXlOdW0pDQo+ ICsgICAgICAgIGZvciBDdHggaW4gY3R4LnZmckV4dGVuc2lvbkRhdGEoKToNCj4gKyAgICAgICAg ICAgIEd1aWRPYmouU2V0RmllbGRMaXN0KEN0eC5GTmFtZSwgQ3R4LlRGVmFsdWUpDQo+ICsNCj4g KyAgICAgICAgR3VpZE9iai5TZXRMaW5lTm8oTGluZSkNCj4gKyAgICAgICAgR3VpZE9iai5TZXRH dWlkKGN0eC5ndWlkRGVmaW5pdGlvbigpLkd1aWQpDQo+ICsgICAgICAgIGlmIGN0eC5UeXBlTmFt ZSAhPSAiIjoNCj4gKyAgICAgICAgICAgIEd1aWRPYmouU2V0RGF0YShjdHguQnVmZmVyKQ0KPiAr ICAgICAgICBHdWlkT2JqLlNldFNjb3BlKDEpDQo+ICsgICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBH dWlkT2JqDQo+ICsgICAgICAgIGN0eC5Ob2RlLkJ1ZmZlciA9IGdGb3JtUGtnLlN0cnVjdFRvU3Ry ZWFtKEd1aWRPYmouR2V0SW5mbygpKQ0KPiArICAgICAgICBpZiBjdHguRGF0YVR5cGUoKSAhPSBO b25lOg0KPiArICAgICAgICAgICAgQnVmZmVyID0gYnl0ZWFycmF5KGN0eC5TaXplKQ0KPiArICAg ICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgbGVuKEJ1ZmZlcikpOg0KPiArICAgICAgICAgICAg ICAgIEJ1ZmZlcltpXSA9IGN0eC5CdWZmZXJbaV0NCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlLkJ1 ZmZlciArPSBCdWZmZXINCj4gKw0KPiArICAgICAgICBmb3IgQ3R4IGluIGN0eC52ZnJTdGF0ZW1l bnRFeHRlbnNpb24oKToNCj4gKyAgICAgICAgICAgIHNlbGYuSW5zZXJ0Q2hpbGQoY3R4Lk5vZGUs IEN0eCkNCj4gKw0KPiArICAgICAgICBzZWxmLkluc2VydEVuZE5vZGUoY3R4Lk5vZGUsIGN0eC5z dG9wLmxpbmUpDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiArDQo+ICsgICAgIyBWaXNp dCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmckV4dGVuc2lvbkRh dGEuDQo+ICsgICAgZGVmIHZpc2l0VmZyRXh0ZW5zaW9uRGF0YShzZWxmLCBjdHg6DQo+IFZmclN5 bnRheFBhcnNlci5WZnJFeHRlbnNpb25EYXRhQ29udGV4dCk6DQo+ICsgICAgICAgIElzQXJyYXkg PSBGYWxzZSBpZiBjdHguSSA9PSBOb25lIGVsc2UgVHJ1ZQ0KPiArICAgICAgICBpZiBJc0FycmF5 Og0KPiArICAgICAgICAgICAgSW5kZXggPSBzZWxmLlRyYW5zTnVtKGN0eC5JLnRleHQpDQo+ICsg ICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICBJbmRleCA9IDANCj4gKyAgICAgICAgSXNTdHJ1 Y3QgPSBjdHgucGFyZW50Q3R4LklzU3RydWN0DQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJl bihjdHgpDQo+ICsgICAgICAgIGN0eC5URlZhbHVlID0gc2VsZi5UcmFuc051bShjdHguTi50ZXh0 KQ0KPiArICAgICAgICBEYXRhID0gc2VsZi5UcmFuc051bShjdHguTi50ZXh0KQ0KPiArICAgICAg ICBpZiBJc0FycmF5Og0KPiArICAgICAgICAgICAgY3R4LkZOYW1lICs9ICJkYXRhIiArICJbIiAr IGN0eC5JLnRleHQgKyAiXSINCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIGN0eC5G TmFtZSArPSAiZGF0YSINCj4gKyAgICAgICAgY3R4LlRGTmFtZSA9IGN0eC5wYXJlbnRDdHguVHlw ZU5hbWUNCj4gKyAgICAgICAgaWYgSXNTdHJ1Y3Q6DQo+ICsgICAgICAgICAgICBjdHguVEZOYW1l ICs9IGN0eC5wYXJlbnRDdHguVHlwZU5hbWUNCj4gKyAgICAgICAgICAgIGZvciBpIGluIHJhbmdl KDAsIGxlbihjdHguYXJyYXlOYW1lKCkpKToNCj4gKyAgICAgICAgICAgICAgICBjdHguVEZOYW1l ICs9ICIuIg0KPiArICAgICAgICAgICAgICAgIGN0eC5URk5hbWUgKz0gY3R4LmFycmF5TmFtZShp KS5TdWJTdHJaDQo+ICsgICAgICAgICAgICAgICAgY3R4LkZOYW1lICs9ICIuIg0KPiArICAgICAg ICAgICAgICAgIGN0eC5GTmFtZSArPSBjdHguYXJyYXlOYW1lKGkpLlN1YlN0cloNCj4gKw0KPiAr ICAgICAgICBCdWZmZXIgPSBjdHgucGFyZW50Q3R4LkJ1ZmZlcg0KPiArICAgICAgICBGaWVsZE9m ZnNldCwgRmllbGRUeXBlLCBGaWVsZFNpemUsIEJpdEZpZWxkLCBfID0NCj4gZ1ZmclZhckRhdGFU eXBlREIuR2V0RGF0YUZpZWxkSW5mbygNCj4gKyAgICAgICAgICAgIGN0eC5URk5hbWUNCj4gKyAg ICAgICAgKQ0KPiArICAgICAgICBCeXRlT2Zmc2V0ID0gY3R4LnBhcmVudEN0eC5UeXBlU2l6ZSAq IEluZGV4DQo+ICsgICAgICAgIGlmIG5vdCBCaXRGaWVsZDoNCj4gKyAgICAgICAgICAgIE9mZnNl dCA9IEJ5dGVPZmZzZXQgKyBGaWVsZE9mZnNldA0KPiArICAgICAgICAgICAgQnVmZmVyW09mZnNl dCA6IE9mZnNldCArIEZpZWxkU2l6ZV0gPSBjdHguVEZWYWx1ZS50b19ieXRlcyhGaWVsZFNpemUs DQo+ICJsaXR0bGUiKQ0KPiArICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgTWFzayA9ICgx IDw8IEZpZWxkU2l6ZSkgLSAxDQo+ICsgICAgICAgICAgICBPZmZzZXQgPSBGaWVsZE9mZnNldCAv LyA4DQo+ICsgICAgICAgICAgICBQcmVCaXRzID0gRmllbGRPZmZzZXQgJSA4DQo+ICsgICAgICAg ICAgICBNYXNrIDw8PSBQcmVCaXRzDQo+ICsgICAgICAgICAgICBWYWx1ZSA9IGludC5mcm9tX2J5 dGVzKA0KPiArICAgICAgICAgICAgICAgIEJ1ZmZlcltCeXRlT2Zmc2V0ICsgT2Zmc2V0IDogQnl0 ZU9mZnNldCArIE9mZnNldCArIEZpZWxkU2l6ZV0sICJsaXR0bGUiDQo+ICsgICAgICAgICAgICAp DQo+ICsgICAgICAgICAgICBEYXRhIDw8PSBQcmVCaXRzDQo+ICsgICAgICAgICAgICBWYWx1ZSA9 IChWYWx1ZSAmICh+TWFzaykpIHwgRGF0YQ0KPiArICAgICAgICAgICAgQnVmZmVyW0J5dGVPZmZz ZXQgKyBPZmZzZXQgOiBCeXRlT2Zmc2V0ICsgT2Zmc2V0ICsgRmllbGRTaXplXSA9DQo+IFZhbHVl LnRvX2J5dGVzKA0KPiArICAgICAgICAgICAgICAgIEZpZWxkU2l6ZSwgImxpdHRsZSINCj4gKyAg ICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICByZXR1cm4gQnVmZmVyDQo+ICsNCj4gKyAgICAj IFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdmZyU3RhdGVt ZW50TW9kYWwuDQo+ICsgICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50TW9kYWwoc2VsZiwgY3R4Og0K PiBWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50TW9kYWxDb250ZXh0KToNCj4gKyAgICAgICAg c2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmZyTW9k YWxUYWcoKS5Ob2RlDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiArDQo+ICsgICAgIyBW aXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3Zmck1vZGFsVGFn Lg0KPiArICAgIGRlZiB2aXNpdFZmck1vZGFsVGFnKHNlbGYsIGN0eDogVmZyU3ludGF4UGFyc2Vy LlZmck1vZGFsVGFnQ29udGV4dCk6DQo+ICsgICAgICAgIE1PYmogPSBJZnJNb2RhbCgpDQo+ICsg ICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsgICAgICAgIE1PYmouU2V0TGluZU5v KGN0eC5zdGFydC5saW5lKQ0KPiArICAgICAgICBjdHguTm9kZS5EYXRhID0gTU9iag0KPiArICAg ICAgICBjdHguTm9kZS5CdWZmZXIgPSBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShNT2JqLkdldElu Zm8oKSkNCj4gKw0KPiArICAgICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gKw0KPiArICAgIGRlZiBT YXZlT3BIZHJDb25kKHNlbGYsIE9wSGRyLCBDb25kLCBMaW5lTm89MCk6DQo+ICsgICAgICAgIGlm IENvbmQgPT0gVHJ1ZToNCj4gKyAgICAgICAgICAgIGlmIHNlbGYuSWZyT3BIZHJbc2VsZi5JZnJP cEhkckluZGV4XSAhPSBOb25lOg0KPiArICAgICAgICAgICAgICAgIHJldHVybg0KPiArICAgICAg ICAgICAgc2VsZi5JZnJPcEhkcltzZWxmLklmck9wSGRySW5kZXhdID0gT3BIZHINCj4gKyAgICAg ICAgICAgIHNlbGYuSWZyT3BIZHJMaW5lTm9bc2VsZi5JZnJPcEhkckluZGV4XSA9IExpbmVObw0K PiArDQo+ICsgICAgZGVmIEluaXRPcEhkckNvbmQoc2VsZik6DQo+ICsgICAgICAgIHNlbGYuSWZy T3BIZHIuYXBwZW5kKE5vbmUpDQo+ICsgICAgICAgIHNlbGYuSWZyT3BIZHJMaW5lTm8uYXBwZW5k KDApDQo+ICsNCj4gKyAgICBkZWYgU2V0U2F2ZWRPcEhkclNjb3BlKHNlbGYpOg0KPiArICAgICAg ICBpZiBzZWxmLklmck9wSGRyW3NlbGYuSWZyT3BIZHJJbmRleF0gIT0gTm9uZToNCj4gKyAgICAg ICAgICAgIHNlbGYuSWZyT3BIZHJbc2VsZi5JZnJPcEhkckluZGV4XS5TY29wZSA9IDENCj4gKyAg ICAgICAgICAgIHJldHVybiBUcnVlDQo+ICsgICAgICAgIHJldHVybiBGYWxzZQ0KPiArDQo+ICsg ICAgZGVmIENsZWFyU2F2ZWRPUEhkcihzZWxmKToNCj4gKyAgICAgICAgc2VsZi5JZnJPcEhkcltz ZWxmLklmck9wSGRySW5kZXhdID0gTm9uZQ0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRy ZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmclN0YXRlbWVudEV4cHJlc3Npb24uDQo+ ICsgICAgZGVmIHZpc2l0VmZyU3RhdGVtZW50RXhwcmVzc2lvbihzZWxmLCBjdHg6DQo+IFZmclN5 bnRheFBhcnNlci5WZnJTdGF0ZW1lbnRFeHByZXNzaW9uQ29udGV4dCk6DQo+ICsgICAgICAgICMg Um9vdCBleHByZXNzaW9uIGV4dGVuc2lvbiBmdW5jdGlvbiBjYWxsZWQgYnkgb3RoZXIgZnVuY3Rp b24uICMjDQo+ICsgICAgICAgIGlmIGN0eC5FeHBJbmZvLlJvb3RMZXZlbCA9PSAwOg0KPiArICAg ICAgICAgICAgc2VsZi5JZnJPcEhkckluZGV4ICs9IDENCj4gKyAgICAgICAgICAgIGlmIHNlbGYu SWZyT3BIZHJJbmRleCA+PSBNQVhfSUZSX0VYUFJFU1NJT05fREVQVEg6DQo+ICsgICAgICAgICAg ICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAgICAgICAgIFZmclJldHVy bkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUiwNCj4gKyAgICAgICAgICAgICAgICAg ICAgY3R4LnN0YXJ0LmxpbmUsDQo+ICsgICAgICAgICAgICAgICAgICAgICJUaGUgZGVwdGggb2Yg ZXhwcmVzc2lvbiBleGNlZWRzIHRoZSBtYXggc3VwcG9ydGVkIGxldmVsIDghIiwNCj4gKyAgICAg ICAgICAgICAgICApDQo+ICsgICAgICAgICAgICBzZWxmLkluaXRPcEhkckNvbmQoKQ0KPiArDQo+ ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsNCj4gKyAgICAgICAgZm9yIGkg aW4gcmFuZ2UoMCwgbGVuKGN0eC5hbmRUZXJtKCkpKToNCj4gKyAgICAgICAgICAgIGN0eC5Ob2Rl cy5leHRlbmQoY3R4LmFuZFRlcm0oaSkuTm9kZXMpDQo+ICsgICAgICAgICAgICBpZiBpICE9IDA6 DQo+ICsgICAgICAgICAgICAgICAgY3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAxDQo+ICsgICAg ICAgICAgICAgICAgT09iaiA9IElmck9yKGN0eC5hbmRUZXJtKGkpLkxpbmUpDQo+ICsgICAgICAg ICAgICAgICAgTm9kZSA9IElmclRyZWVOb2RlKEVGSV9JRlJfT1JfT1AsIE9PYmosDQo+IGdGb3Jt UGtnLlN0cnVjdFRvU3RyZWFtKE9PYmouR2V0SW5mbygpKSkNCj4gKyAgICAgICAgICAgICAgICBj dHguTm9kZXMuYXBwZW5kKE5vZGUpDQo+ICsNCj4gKyAgICAgICAgIyBFeHRlbmQgT3BDb2RlIFNj b3BlIG9ubHkgZm9yIHRoZSByb290IGV4cHJlc3Npb24uDQo+ICsgICAgICAgIGlmIGN0eC5FeHBJ bmZvLkV4cE9wQ291bnQgPiAxIGFuZCBjdHguRXhwSW5mby5Sb290TGV2ZWwgPT0gMDoNCj4gKyAg ICAgICAgICAgIGlmIHNlbGYuU2V0U2F2ZWRPcEhkclNjb3BlKCk6DQo+ICsgICAgICAgICAgICAg ICAgRU9iaiA9IElmckVuZCgpDQo+ICsgICAgICAgICAgICAgICAgaWYgc2VsZi5JZnJPcEhkckxp bmVOb1tzZWxmLklmck9wSGRySW5kZXhdICE9IDA6DQo+ICsgICAgICAgICAgICAgICAgICAgIEVP YmouU2V0TGluZU5vKHNlbGYuSWZyT3BIZHJMaW5lTm9bc2VsZi5JZnJPcEhkckluZGV4XSkNCj4g KyAgICAgICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgICAgICBFT2JqLlNldExp bmVObyhjdHguc3RvcC5saW5lKQ0KPiArICAgICAgICAgICAgICAgIE5vZGUgPSBJZnJUcmVlTm9k ZShFRklfSUZSX0VORF9PUCwgRU9iaiwNCj4gZ0Zvcm1Qa2cuU3RydWN0VG9TdHJlYW0oRU9iai5H ZXRJbmZvKCkpKQ0KPiArICAgICAgICAgICAgICAgIGN0eC5Ob2Rlcy5hcHBlbmQoTm9kZSkNCj4g Kw0KPiArICAgICAgICBpZiBjdHguRXhwSW5mby5Sb290TGV2ZWwgPT0gMDoNCj4gKyAgICAgICAg ICAgIHNlbGYuQ2xlYXJTYXZlZE9QSGRyKCkNCj4gKyAgICAgICAgICAgIHNlbGYuSWZyT3BIZHJJ bmRleCA9IHNlbGYuSWZyT3BIZHJJbmRleCAtIDENCj4gKw0KPiArICAgICAgICBmb3IgTm9kZSBp biBjdHguTm9kZXM6DQo+ICsgICAgICAgICAgICBpZiBjdHguUGFyZW50Tm9kZSAhPSBOb25lOg0K PiArICAgICAgICAgICAgICAgIGN0eC5QYXJlbnROb2RlLmluc2VydENoaWxkKE5vZGUpDQo+ICsN Cj4gKyAgICAgICAgc2VsZi5Db25zdGFudE9ubHlJbkV4cHJlc3Npb24gPSBGYWxzZQ0KPiArDQo+ ICsgICAgICAgIHJldHVybiBjdHguTm9kZXMNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0 cmVlIHByb2R1Y2VkIGJ5DQo+IFZmclN5bnRheFBhcnNlciN2ZnJTdGF0ZW1lbnRFeHByZXNzaW9u U3ViLg0KPiArICAgIGRlZiB2aXNpdFZmclN0YXRlbWVudEV4cHJlc3Npb25TdWIoc2VsZiwgY3R4 Og0KPiBWZnJTeW50YXhQYXJzZXIuVmZyU3RhdGVtZW50RXhwcmVzc2lvblN1YkNvbnRleHQpOg0K PiArICAgICAgICBjdHguRXhwSW5mby5Sb290TGV2ZWwgPSBjdHgucGFyZW50Q3R4LkV4cEluZm8u Um9vdExldmVsICsgMQ0KPiArICAgICAgICBjdHguRXhwSW5mby5FeHBPcENvdW50ID0gY3R4LnBh cmVudEN0eC5FeHBJbmZvLkV4cE9wQ291bnQNCj4gKw0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hp bGRyZW4oY3R4KQ0KPiArDQo+ICsgICAgICAgIGZvciBpIGluIHJhbmdlKDAsIGxlbihjdHguYW5k VGVybSgpKSk6DQo+ICsgICAgICAgICAgICBjdHguTm9kZXMuZXh0ZW5kKGN0eC5hbmRUZXJtKGkp Lk5vZGVzKQ0KPiArICAgICAgICAgICAgaWYgaSAhPSAwOg0KPiArICAgICAgICAgICAgICAgIGN0 eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0KPiArICAgICAgICAgICAgICAgIE9PYmogPSBJZnJP cihjdHguYW5kVGVybShpKS5MaW5lKQ0KPiArICAgICAgICAgICAgICAgIE5vZGUgPSBJZnJUcmVl Tm9kZShFRklfSUZSX09SX09QLCBPT2JqLA0KPiBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShPT2Jq LkdldEluZm8oKSkpDQo+ICsgICAgICAgICAgICAgICAgY3R4Lk5vZGVzLmFwcGVuZChOb2RlKQ0K PiArDQo+ICsgICAgICAgIGN0eC5QYXJlbnROb2Rlcy5leHRlbmQoY3R4Lk5vZGVzKSAgIyMjIyMj DQo+ICsNCj4gKyAgICAgICAgY3R4LnBhcmVudEN0eC5FeHBJbmZvLkV4cE9wQ291bnQgPSBjdHgu RXhwSW5mby5FeHBPcENvdW50DQo+ICMjIyMjIyMjIyMNCj4gKw0KPiArICAgICAgICByZXR1cm4g Y3R4Lk5vZGVzDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBW ZnJTeW50YXhQYXJzZXIjYW5kVGVybS4NCj4gKyAgICBkZWYgdmlzaXRBbmRUZXJtKHNlbGYsIGN0 eDogVmZyU3ludGF4UGFyc2VyLkFuZFRlcm1Db250ZXh0KToNCj4gKyAgICAgICAgY3R4LkxpbmUg PSBjdHguc3RhcnQubGluZQ0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiAr ICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCBsZW4oY3R4LmJpdHdpc2VvclRlcm0oKSkpOg0KPiAr ICAgICAgICAgICAgY3R4Lk5vZGVzLmV4dGVuZChjdHguYml0d2lzZW9yVGVybShpKS5Ob2RlcykN Cj4gKyAgICAgICAgICAgIGlmIGkgIT0gMDoNCj4gKyAgICAgICAgICAgICAgICBjdHguRXhwSW5m by5FeHBPcENvdW50ICs9IDENCj4gKyAgICAgICAgICAgICAgICBBT2JqID0gSWZyQW5kKGN0eC5i aXR3aXNlb3JUZXJtKGkpLkxpbmUpDQo+ICsgICAgICAgICAgICAgICAgTm9kZSA9IElmclRyZWVO b2RlKEVGSV9JRlJfQU5EX09QLCBBT2JqLA0KPiBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShBT2Jq LkdldEluZm8oKSkpDQo+ICsgICAgICAgICAgICAgICAgY3R4Lk5vZGVzLmFwcGVuZChOb2RlKQ0K PiArICAgICAgICByZXR1cm4gY3R4Lk5vZGVzDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2Ug dHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjYml0d2lzZW9yVGVybS4NCj4gKyAgICBk ZWYgdmlzaXRCaXR3aXNlb3JUZXJtKHNlbGYsIGN0eDogVmZyU3ludGF4UGFyc2VyLkJpdHdpc2Vv clRlcm1Db250ZXh0KToNCj4gKyAgICAgICAgY3R4LkxpbmUgPSBjdHguc3RhcnQubGluZQ0KPiAr ICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAgICBmb3IgaSBpbiByYW5n ZSgwLCBsZW4oY3R4LmJpdHdpc2VhbmRUZXJtKCkpKToNCj4gKyAgICAgICAgICAgIGN0eC5Ob2Rl cy5leHRlbmQoY3R4LmJpdHdpc2VhbmRUZXJtKGkpLk5vZGVzKQ0KPiArICAgICAgICAgICAgaWYg aSAhPSAwOg0KPiArICAgICAgICAgICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0K PiArICAgICAgICAgICAgICAgIEJXT09iaiA9IElmckJpdFdpc2VPcihjdHguYml0d2lzZWFuZFRl cm0oaSkuTGluZSkNCj4gKyAgICAgICAgICAgICAgICBOb2RlID0gSWZyVHJlZU5vZGUoDQo+ICsg ICAgICAgICAgICAgICAgICAgIEVGSV9JRlJfQklUV0lTRV9PUl9PUCwgQldPT2JqLA0KPiBnRm9y bVBrZy5TdHJ1Y3RUb1N0cmVhbShCV09PYmouR2V0SW5mbygpKQ0KPiArICAgICAgICAgICAgICAg ICkNCj4gKyAgICAgICAgICAgICAgICBjdHguTm9kZXMuYXBwZW5kKE5vZGUpDQo+ICsNCj4gKyAg ICAgICAgcmV0dXJuIGN0eC5Ob2Rlcw0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUg cHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI2JpdHdpc2VhbmRUZXJtLg0KPiArICAgIGRlZiB2 aXNpdEJpdHdpc2VhbmRUZXJtKHNlbGYsIGN0eDoNCj4gVmZyU3ludGF4UGFyc2VyLkJpdHdpc2Vh bmRUZXJtQ29udGV4dCk6DQo+ICsgICAgICAgIGN0eC5MaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4g KyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgZm9yIGkgaW4gcmFu Z2UoMCwgbGVuKGN0eC5lcXVhbFRlcm0oKSkpOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGVzLmV4 dGVuZChjdHguZXF1YWxUZXJtKGkpLk5vZGVzKQ0KPiArICAgICAgICAgICAgaWYgaSAhPSAwOg0K PiArICAgICAgICAgICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0KPiArICAgICAg ICAgICAgICAgIEJXQU9iaiA9IElmckJpdFdpc2VBbmQoY3R4LmVxdWFsVGVybShpKS5MaW5lKQ0K PiArICAgICAgICAgICAgICAgIE5vZGUgPSBJZnJUcmVlTm9kZSgNCj4gKyAgICAgICAgICAgICAg ICAgICAgRUZJX0lGUl9CSVRXSVNFX0FORF9PUCwgQldBT2JqLA0KPiBnRm9ybVBrZy5TdHJ1Y3RU b1N0cmVhbShCV0FPYmouR2V0SW5mbygpKQ0KPiArICAgICAgICAgICAgICAgICkNCj4gKyAgICAg ICAgICAgICAgICBjdHguTm9kZXMuYXBwZW5kKE5vZGUpDQo+ICsNCj4gKyAgICAgICAgcmV0dXJu IGN0eC5Ob2Rlcw0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkg VmZyU3ludGF4UGFyc2VyI2VxdWFsVGVybS4NCj4gKyAgICBkZWYgdmlzaXRFcXVhbFRlcm0oc2Vs ZiwgY3R4OiBWZnJTeW50YXhQYXJzZXIuRXF1YWxUZXJtQ29udGV4dCk6DQo+ICsgICAgICAgIGN0 eC5MaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0 eCkNCj4gKyAgICAgICAgY3R4Lk5vZGVzLmV4dGVuZChjdHguY29tcGFyZVRlcm0oKS5Ob2RlcykN Cj4gKw0KPiArICAgICAgICBmb3IgQ2hpbGRDdHggaW4gY3R4LmVxdWFsVGVybVN1cHBsZW1lbnRh cnkoKToNCj4gKyAgICAgICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0KPiArICAg ICAgICAgICAgY3R4Lk5vZGVzLmV4dGVuZChDaGlsZEN0eC5Ob2RlcykNCj4gKw0KPiArICAgICAg ICByZXR1cm4gY3R4Lk5vZGVzDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9k dWNlZCBieSBWZnJTeW50YXhQYXJzZXIjZXF1YWxUZXJtRXF1YWxSdWxlLg0KPiArICAgIGRlZiB2 aXNpdEVxdWFsVGVybUVxdWFsUnVsZShzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5FcXVh bFRlcm1FcXVhbFJ1bGVDb250ZXh0KToNCj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0 eCkNCj4gKyAgICAgICAgY3R4Lk5vZGVzLmV4dGVuZChjdHguY29tcGFyZVRlcm0oKS5Ob2RlcykN Cj4gKyAgICAgICAgRU9iaiA9IElmckVxdWFsKGN0eC5zdGFydC5saW5lKQ0KPiArICAgICAgICBO b2RlID0gSWZyVHJlZU5vZGUoRUZJX0lGUl9FUVVBTF9PUCwgRU9iaiwNCj4gZ0Zvcm1Qa2cuU3Ry dWN0VG9TdHJlYW0oRU9iai5HZXRJbmZvKCkpKQ0KPiArICAgICAgICBjdHguTm9kZXMuYXBwZW5k KE5vZGUpDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZXMNCj4gKw0KPiArICAgICMgVmlzaXQg YSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNlcXVhbFRlcm1Ob3RFcXVh bFJ1bGUuDQo+ICsgICAgZGVmIHZpc2l0RXF1YWxUZXJtTm90RXF1YWxSdWxlKHNlbGYsIGN0eDoN Cj4gVmZyU3ludGF4UGFyc2VyLkVxdWFsVGVybU5vdEVxdWFsUnVsZUNvbnRleHQpOg0KPiArICAg ICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAgICBjdHguTm9kZXMuZXh0ZW5k KGN0eC5jb21wYXJlVGVybSgpLk5vZGVzKQ0KPiArICAgICAgICBORU9iaiA9IElmck5vdEVxdWFs KGN0eC5zdGFydC5saW5lKQ0KPiArICAgICAgICBOb2RlID0gSWZyVHJlZU5vZGUoRUZJX0lGUl9O T1RfRVFVQUxfT1AsIE5FT2JqLA0KPiBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShORU9iai5HZXRJ bmZvKCkpKQ0KPiArICAgICAgICBjdHguTm9kZXMuYXBwZW5kKE5vZGUpDQo+ICsgICAgICAgIHJl dHVybiBjdHguTm9kZXMNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2Vk IGJ5IFZmclN5bnRheFBhcnNlciNjb21wYXJlVGVybS4NCj4gKyAgICBkZWYgdmlzaXRDb21wYXJl VGVybShzZWxmLCBjdHg6IFZmclN5bnRheFBhcnNlci5Db21wYXJlVGVybUNvbnRleHQpOg0KPiAr ICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAgICBjdHguTm9kZXMuZXh0 ZW5kKGN0eC5zaGlmdFRlcm0oKS5Ob2RlcykNCj4gKw0KPiArICAgICAgICBmb3IgQ2hpbGRDdHgg aW4gY3R4LmNvbXBhcmVUZXJtU3VwcGxlbWVudGFyeSgpOg0KPiArICAgICAgICAgICAgY3R4LkV4 cEluZm8uRXhwT3BDb3VudCArPSAxDQo+ICsgICAgICAgICAgICBjdHguTm9kZXMuZXh0ZW5kKENo aWxkQ3R4Lk5vZGVzKQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZXMNCj4gKw0KPiAr ICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNjb21w YXJlVGVybUxlc3NSdWxlLg0KPiArICAgIGRlZiB2aXNpdENvbXBhcmVUZXJtTGVzc1J1bGUoc2Vs ZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIuQ29tcGFyZVRlcm1MZXNzUnVsZUNvbnRleHQpOg0K PiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAgICBjdHguTm9kZXMu ZXh0ZW5kKGN0eC5zaGlmdFRlcm0oKS5Ob2RlcykNCj4gKyAgICAgICAgTFRPYmogPSBJZnJMZXNz VGhhbihjdHguc3RhcnQubGluZSkNCj4gKyAgICAgICAgTm9kZSA9IElmclRyZWVOb2RlKEVGSV9J RlJfTEVTU19USEFOX09QLCBMVE9iaiwNCj4gZ0Zvcm1Qa2cuU3RydWN0VG9TdHJlYW0oTFRPYmou R2V0SW5mbygpKSkNCj4gKyAgICAgICAgY3R4Lk5vZGVzLmFwcGVuZChOb2RlKQ0KPiArICAgICAg ICByZXR1cm4gY3R4Lk5vZGVzDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9k dWNlZCBieQ0KPiBWZnJTeW50YXhQYXJzZXIjY29tcGFyZVRlcm1MZXNzRXF1YWxSdWxlLg0KPiAr ICAgIGRlZiB2aXNpdENvbXBhcmVUZXJtTGVzc0VxdWFsUnVsZShzZWxmLCBjdHg6DQo+IFZmclN5 bnRheFBhcnNlci5Db21wYXJlVGVybUxlc3NFcXVhbFJ1bGVDb250ZXh0KToNCj4gKyAgICAgICAg c2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgY3R4Lk5vZGVzLmV4dGVuZChjdHgu c2hpZnRUZXJtKCkuTm9kZXMpDQo+ICsgICAgICAgIExFT2JqID0gSWZyTGVzc0VxdWFsKGN0eC5z dGFydC5saW5lKQ0KPiArICAgICAgICBOb2RlID0gSWZyVHJlZU5vZGUoRUZJX0lGUl9MRVNTX0VR VUFMX09QLCBMRU9iaiwNCj4gZ0Zvcm1Qa2cuU3RydWN0VG9TdHJlYW0oTEVPYmouR2V0SW5mbygp KSkNCj4gKyAgICAgICAgY3R4Lk5vZGVzLmFwcGVuZChOb2RlKQ0KPiArICAgICAgICByZXR1cm4g Y3R4Lk5vZGVzDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieQ0K PiBWZnJTeW50YXhQYXJzZXIjY29tcGFyZVRlcm1HcmVhdGVyUnVsZS4NCj4gKyAgICBkZWYgdmlz aXRDb21wYXJlVGVybUdyZWF0ZXJSdWxlKHNlbGYsIGN0eDoNCj4gVmZyU3ludGF4UGFyc2VyLkNv bXBhcmVUZXJtR3JlYXRlclJ1bGVDb250ZXh0KToNCj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxk cmVuKGN0eCkNCj4gKyAgICAgICAgY3R4Lk5vZGVzLmV4dGVuZChjdHguc2hpZnRUZXJtKCkuTm9k ZXMpDQo+ICsgICAgICAgIEdUT2JqID0gSWZyR3JlYXRlclRoYW4oY3R4LnN0YXJ0LmxpbmUpDQo+ ICsgICAgICAgIE5vZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX0dSRUFURVJfVEhBTl9PUCwgR1RP YmosDQo+IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFtKEdUT2JqLkdldEluZm8oKSkpDQo+ICsgICAg ICAgIGN0eC5Ob2Rlcy5hcHBlbmQoTm9kZSkNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5Ob2Rlcw0K PiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3ludGF4 UGFyc2VyI2NvbXBhcmVUZXJtR3JlYXRlckVxdWFsUnVsZS4NCj4gKyAgICBkZWYgdmlzaXRDb21w YXJlVGVybUdyZWF0ZXJFcXVhbFJ1bGUoDQo+ICsgICAgICAgIHNlbGYsIGN0eDogVmZyU3ludGF4 UGFyc2VyLkNvbXBhcmVUZXJtR3JlYXRlckVxdWFsUnVsZUNvbnRleHQNCj4gKyAgICApOg0KPiAr ICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAgICBjdHguTm9kZXMuZXh0 ZW5kKGN0eC5zaGlmdFRlcm0oKS5Ob2RlcykNCj4gKyAgICAgICAgR0VPYmogPSBJZnJHcmVhdGVy RXF1YWwoY3R4LnN0YXJ0LmxpbmUpDQo+ICsgICAgICAgIE5vZGUgPSBJZnJUcmVlTm9kZSgNCj4g KyAgICAgICAgICAgIEVGSV9JRlJfR1JFQVRFUl9FUVVBTF9PUCwgR0VPYmosDQo+IGdGb3JtUGtn LlN0cnVjdFRvU3RyZWFtKEdFT2JqLkdldEluZm8oKSkNCj4gKyAgICAgICAgKQ0KPiArICAgICAg ICBjdHguTm9kZXMuYXBwZW5kKE5vZGUpDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZXMNCj4g Kw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNl ciNzaGlmdFRlcm0uDQo+ICsgICAgZGVmIHZpc2l0U2hpZnRUZXJtKHNlbGYsIGN0eDogVmZyU3lu dGF4UGFyc2VyLlNoaWZ0VGVybUNvbnRleHQpOg0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRy ZW4oY3R4KQ0KPiArICAgICAgICBjdHguTm9kZXMuZXh0ZW5kKGN0eC5hZGRNaW51c1Rlcm0oKS5O b2RlcykNCj4gKw0KPiArICAgICAgICBmb3IgQ2hpbGRDdHggaW4gY3R4LnNoaWZ0VGVybVN1cHBs ZW1lbnRhcnkoKToNCj4gKyAgICAgICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0K PiArICAgICAgICAgICAgY3R4Lk5vZGVzLmV4dGVuZChDaGlsZEN0eC5Ob2RlcykNCj4gKw0KPiAr ICAgICAgICByZXR1cm4gY3R4Lk5vZGVzDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJl ZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjc2hpZnRUZXJtTGVmdC4NCj4gKyAgICBkZWYg dmlzaXRTaGlmdFRlcm1MZWZ0KHNlbGYsIGN0eDogVmZyU3ludGF4UGFyc2VyLlNoaWZ0VGVybUxl ZnRDb250ZXh0KToNCj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAg ICAgY3R4Lk5vZGVzLmV4dGVuZChjdHguYWRkTWludXNUZXJtKCkuTm9kZXMpDQo+ICsgICAgICAg IFNMT2JqID0gSWZyU2hpZnRMZWZ0KGN0eC5zdGFydC5saW5lKQ0KPiArICAgICAgICBOb2RlID0g SWZyVHJlZU5vZGUoRUZJX0lGUl9TSElGVF9MRUZUX09QLCBTTE9iaiwNCj4gZ0Zvcm1Qa2cuU3Ry dWN0VG9TdHJlYW0oU0xPYmouR2V0SW5mbygpKSkNCj4gKyAgICAgICAgY3R4Lk5vZGVzLmFwcGVu ZChOb2RlKQ0KPiArICAgICAgICByZXR1cm4gY3R4Lk5vZGVzDQo+ICsNCj4gKyAgICAjIFZpc2l0 IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjc2hpZnRUZXJtUmlnaHQu DQo+ICsgICAgZGVmIHZpc2l0U2hpZnRUZXJtUmlnaHQoc2VsZiwgY3R4OiBWZnJTeW50YXhQYXJz ZXIuU2hpZnRUZXJtUmlnaHRDb250ZXh0KToNCj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVu KGN0eCkNCj4gKyAgICAgICAgY3R4Lk5vZGVzLmV4dGVuZChjdHguYWRkTWludXNUZXJtKCkuTm9k ZXMpDQo+ICsgICAgICAgIFNST2JqID0gSWZyU2hpZnRSaWdodChjdHguc3RhcnQubGluZSkNCj4g KyAgICAgICAgTm9kZSA9IElmclRyZWVOb2RlKEVGSV9JRlJfU0hJRlRfUklHSFRfT1AsIFNST2Jq LA0KPiBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShTUk9iai5HZXRJbmZvKCkpKQ0KPiArICAgICAg ICBjdHguTm9kZXMuYXBwZW5kKE5vZGUpDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZXMNCj4g Kw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNl ciNhZGRNaW51c1Rlcm0uDQo+ICsgICAgZGVmIHZpc2l0QWRkTWludXNUZXJtKHNlbGYsIGN0eDog VmZyU3ludGF4UGFyc2VyLkFkZE1pbnVzVGVybUNvbnRleHQpOg0KPiArICAgICAgICBzZWxmLnZp c2l0Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAgICBjdHguTm9kZXMuZXh0ZW5kKGN0eC5tdWx0ZGl2 bW9kVGVybSgpLk5vZGVzKQ0KPiArDQo+ICsgICAgICAgIGZvciBDaGlsZEN0eCBpbiBjdHguYWRk TWludXNUZXJtU3VwcGxlbWVudGFyeSgpOg0KPiArICAgICAgICAgICAgY3R4LkV4cEluZm8uRXhw T3BDb3VudCArPSAxDQo+ICsgICAgICAgICAgICBjdHguTm9kZXMuZXh0ZW5kKENoaWxkQ3R4Lk5v ZGVzKQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZXMNCj4gKw0KPiArICAgICMgVmlz aXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNhZGRNaW51c1Rlcm1w QWRkLg0KPiArICAgIGRlZiB2aXNpdEFkZE1pbnVzVGVybXBBZGQoc2VsZiwgY3R4Og0KPiBWZnJT eW50YXhQYXJzZXIuQWRkTWludXNUZXJtcEFkZENvbnRleHQpOg0KPiArICAgICAgICBzZWxmLnZp c2l0Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAgICBjdHguTm9kZXMuZXh0ZW5kKGN0eC5tdWx0ZGl2 bW9kVGVybSgpLk5vZGVzKQ0KPiArICAgICAgICBBT2JqID0gSWZyQWRkKGN0eC5zdGFydC5saW5l KQ0KPiArICAgICAgICBOb2RlID0gSWZyVHJlZU5vZGUoRUZJX0lGUl9BRERfT1AsIEFPYmosDQo+ IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFtKEFPYmouR2V0SW5mbygpKSkNCj4gKyAgICAgICAgY3R4 Lk5vZGVzLmFwcGVuZChOb2RlKQ0KPiArICAgICAgICByZXR1cm4gY3R4Lk5vZGVzDQo+ICsNCj4g KyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjYWRk TWludXNUZXJtU3VidHJhY3QuDQo+ICsgICAgZGVmIHZpc2l0QWRkTWludXNUZXJtU3VidHJhY3Qo c2VsZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIuQWRkTWludXNUZXJtU3VidHJhY3RDb250ZXh0 KToNCj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgY3R4Lk5v ZGVzLmV4dGVuZChjdHgubXVsdGRpdm1vZFRlcm0oKS5Ob2RlcykNCj4gKyAgICAgICAgU09iaiA9 IElmclN1YnRyYWN0KGN0eC5zdGFydC5saW5lKQ0KPiArICAgICAgICBOb2RlID0gSWZyVHJlZU5v ZGUoRUZJX0lGUl9TVUJUUkFDVF9PUCwgU09iaiwNCj4gZ0Zvcm1Qa2cuU3RydWN0VG9TdHJlYW0o U09iai5HZXRJbmZvKCkpKQ0KPiArICAgICAgICBjdHguTm9kZXMuYXBwZW5kKE5vZGUpDQo+ICsg ICAgICAgIHJldHVybiBjdHguTm9kZXMNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVl IHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNtdWx0ZGl2bW9kVGVybS4NCj4gKyAgICBkZWYg dmlzaXRNdWx0ZGl2bW9kVGVybShzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5NdWx0ZGl2 bW9kVGVybUNvbnRleHQpOg0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiAr ICAgICAgICBjdHguTm9kZXMuZXh0ZW5kKGN0eC5jYXN0VGVybSgpLk5vZGVzKQ0KPiArICAgICAg ICBmb3IgQ2hpbGRDdHggaW4gY3R4Lm11bHRkaXZtb2RUZXJtU3VwcGxlbWVudGFyeSgpOg0KPiAr ICAgICAgICAgICAgY3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAxDQo+ICsgICAgICAgICAgICBj dHguTm9kZXMuZXh0ZW5kKENoaWxkQ3R4Lk5vZGVzKQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBj dHguTm9kZXMNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZm clN5bnRheFBhcnNlciNtdWx0ZGl2bW9kVGVybU11bC4NCj4gKyAgICBkZWYgdmlzaXRNdWx0ZGl2 bW9kVGVybU11bChzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5NdWx0ZGl2bW9kVGVybU11 bENvbnRleHQpOg0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAg ICBjdHguTm9kZXMuZXh0ZW5kKGN0eC5jYXN0VGVybSgpLk5vZGVzKQ0KPiArICAgICAgICBNT2Jq ID0gSWZyTXVsdGlwbHkoY3R4LnN0YXJ0LmxpbmUpDQo+ICsgICAgICAgIE5vZGUgPSBJZnJUcmVl Tm9kZShFRklfSUZSX01VTFRJUExZX09QLCBNT2JqLA0KPiBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVh bShNT2JqLkdldEluZm8oKSkpDQo+ICsgICAgICAgIGN0eC5Ob2Rlcy5hcHBlbmQoTm9kZSkNCj4g KyAgICAgICAgcmV0dXJuIGN0eC5Ob2Rlcw0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRy ZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI211bHRkaXZtb2RUZXJtRGl2Lg0KPiArICAg IGRlZiB2aXNpdE11bHRkaXZtb2RUZXJtRGl2KHNlbGYsIGN0eDoNCj4gVmZyU3ludGF4UGFyc2Vy Lk11bHRkaXZtb2RUZXJtRGl2Q29udGV4dCk6DQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJl bihjdHgpDQo+ICsgICAgICAgIGN0eC5Ob2Rlcy5leHRlbmQoY3R4LmNhc3RUZXJtKCkuTm9kZXMp DQo+ICsgICAgICAgIERPYmogPSBJZnJEaXZpZGUoY3R4LnN0YXJ0LmxpbmUpDQo+ICsgICAgICAg IE5vZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX0RJVklERV9PUCwgRE9iaiwNCj4gZ0Zvcm1Qa2cu U3RydWN0VG9TdHJlYW0oRE9iai5HZXRJbmZvKCkpKQ0KPiArICAgICAgICBjdHguTm9kZXMuYXBw ZW5kKE5vZGUpDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZXMNCj4gKw0KPiArICAgICMgVmlz aXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNtdWx0ZGl2bW9kVGVy bVJvdW5kLg0KPiArICAgIGRlZiB2aXNpdE11bHRkaXZtb2RUZXJtTW9kdWxvKHNlbGYsIGN0eDoN Cj4gVmZyU3ludGF4UGFyc2VyLk11bHRkaXZtb2RUZXJtTW9kdWxvQ29udGV4dCk6DQo+ICsgICAg ICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsgICAgICAgIGN0eC5Ob2Rlcy5leHRlbmQo Y3R4LmNhc3RUZXJtKCkuTm9kZXMpDQo+ICsgICAgICAgIE1PYmogPSBJZnJNb2R1bG8oY3R4LnN0 YXJ0LmxpbmUpDQo+ICsgICAgICAgIE5vZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX01PRFVMT19P UCwgTU9iaiwNCj4gZ0Zvcm1Qa2cuU3RydWN0VG9TdHJlYW0oTU9iai5HZXRJbmZvKCkpKQ0KPiAr ICAgICAgICBjdHguTm9kZXMuYXBwZW5kKE5vZGUpDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9k ZXMNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRh eFBhcnNlciNjYXN0VGVybS4NCj4gKyAgICBkZWYgdmlzaXRDYXN0VGVybShzZWxmLCBjdHg6IFZm clN5bnRheFBhcnNlci5DYXN0VGVybUNvbnRleHQpOg0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hp bGRyZW4oY3R4KQ0KPiArICAgICAgICBDYXN0VHlwZSA9IDB4RkYNCj4gKyAgICAgICAgZm9yIENo aWxkQ3R4IGluIGN0eC5jYXN0VGVybVN1YigpOg0KPiArICAgICAgICAgICAgQ2FzdFR5cGUgPSBD aGlsZEN0eC5DYXN0VHlwZQ0KPiArDQo+ICsgICAgICAgIGN0eC5Ob2Rlcy5leHRlbmQoY3R4LmF0 b21UZXJtKCkuTm9kZXMpDQo+ICsgICAgICAgIGlmIENhc3RUeXBlID09IDA6DQo+ICsgICAgICAg ICAgICBUQk9iaiA9IElmclRvQm9vbGVhbihjdHguc3RhcnQubGluZSkNCj4gKyAgICAgICAgICAg IE5vZGUgPSBJZnJUcmVlTm9kZSgNCj4gKyAgICAgICAgICAgICAgICBFRklfSUZSX1RPX0JPT0xF QU5fT1AsIFRCT2JqLA0KPiBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShUQk9iai5HZXRJbmZvKCkp DQo+ICsgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICBjdHguTm9kZXMuYXBwZW5kKE5vZGUp DQo+ICsgICAgICAgICAgICBjdHguRXhwSW5mby5FeHBPcENvdW50ICs9IDENCj4gKw0KPiArICAg ICAgICBlbGlmIENhc3RUeXBlID09IDE6DQo+ICsgICAgICAgICAgICBUVU9iaiA9IElmclRvVWlu dChjdHguc3RhcnQubGluZSkNCj4gKyAgICAgICAgICAgIE5vZGUgPSBJZnJUcmVlTm9kZShFRklf SUZSX1RPX1VJTlRfT1AsIFRVT2JqLA0KPiBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShUVU9iai5H ZXRJbmZvKCkpKQ0KPiArICAgICAgICAgICAgY3R4Lk5vZGVzLmFwcGVuZChOb2RlKQ0KPiArICAg ICAgICAgICAgY3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAxDQo+ICsgICAgICAgIHJldHVybiBj dHguTm9kZXMNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZm clN5bnRheFBhcnNlciNjYXN0VGVybVN1Yi4NCj4gKyAgICBkZWYgdmlzaXRDYXN0VGVybVN1Yihz ZWxmLCBjdHg6IFZmclN5bnRheFBhcnNlci5DYXN0VGVybVN1YkNvbnRleHQpOg0KPiArICAgICAg ICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAgICBpZiBjdHguQm9vbGVhbigpICE9 IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguQ2FzdFR5cGUgPSAwDQo+ICsgICAgICAgIGVsaWYg Y3R4LlVpbnQzMigpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguQ2FzdFR5cGUgPSAxDQo+ ICsgICAgICAgIGVsaWYgY3R4LlVpbnQxNigpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHgu Q2FzdFR5cGUgPSAxDQo+ICsgICAgICAgIGVsaWYgY3R4LlVpbnQ4KCkgIT0gTm9uZToNCj4gKyAg ICAgICAgICAgIGN0eC5DYXN0VHlwZSA9IDENCj4gKyAgICAgICAgcmV0dXJuIGN0eC5DYXN0VHlw ZQ0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4 UGFyc2VyI2F0b21UZXJtLg0KPiArICAgIGRlZiB2aXNpdEF0b21UZXJtKHNlbGYsIGN0eDogVmZy U3ludGF4UGFyc2VyLkF0b21UZXJtQ29udGV4dCk6DQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGls ZHJlbihjdHgpDQo+ICsgICAgICAgIGlmIGN0eC52ZnJFeHByZXNzaW9uQ2F0ZW5hdGUoKSAhPSBO b25lOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGVzID0gY3R4LnZmckV4cHJlc3Npb25DYXRlbmF0 ZSgpLk5vZGVzDQo+ICsgICAgICAgIGlmIGN0eC52ZnJFeHByZXNzaW9uTWF0Y2goKSAhPSBOb25l Og0KPiArICAgICAgICAgICAgY3R4Lk5vZGVzID0gY3R4LnZmckV4cHJlc3Npb25NYXRjaCgpLk5v ZGVzDQo+ICsgICAgICAgIGlmIGN0eC52ZnJFeHByZXNzaW9uTWF0Y2gyKCkgIT0gTm9uZToNCj4g KyAgICAgICAgICAgIGN0eC5Ob2RlcyA9IGN0eC52ZnJFeHByZXNzaW9uTWF0Y2gyKCkuTm9kZXMN Cj4gKyAgICAgICAgaWYgY3R4LnZmckV4cHJlc3Npb25QYXJlbigpICE9IE5vbmU6DQo+ICsgICAg ICAgICAgICBjdHguTm9kZXMgPSBjdHgudmZyRXhwcmVzc2lvblBhcmVuKCkuTm9kZXMNCj4gKyAg ICAgICAgaWYgY3R4LnZmckV4cHJlc3Npb25CdWlsZEluRnVuY3Rpb24oKSAhPSBOb25lOg0KPiAr ICAgICAgICAgICAgY3R4Lk5vZGVzLmFwcGVuZChjdHgudmZyRXhwcmVzc2lvbkJ1aWxkSW5GdW5j dGlvbigpLk5vZGUpDQo+ICsgICAgICAgIGlmIGN0eC52ZnJFeHByZXNzaW9uQ29uc3RhbnQoKSAh PSBOb25lOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGVzLmFwcGVuZChjdHgudmZyRXhwcmVzc2lv bkNvbnN0YW50KCkuTm9kZSkNCj4gKyAgICAgICAgaWYgY3R4LnZmckV4cHJlc3Npb25VbmFyeU9w KCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlcyA9IGN0eC52ZnJFeHByZXNzaW9u VW5hcnlPcCgpLk5vZGVzDQo+ICsgICAgICAgIGlmIGN0eC52ZnJFeHByZXNzaW9uVGVybmFyeU9w KCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlcyA9IGN0eC52ZnJFeHByZXNzaW9u VGVybmFyeU9wKCkuTm9kZXMNCj4gKyAgICAgICAgaWYgY3R4LnZmckV4cHJlc3Npb25NYXAoKSAh PSBOb25lOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGVzID0gY3R4LnZmckV4cHJlc3Npb25NYXAo KS5Ob2Rlcw0KPiArICAgICAgICBpZiBjdHguYXRvbVRlcm0oKSAhPSBOb25lOg0KPiArICAgICAg ICAgICAgY3R4Lk5vZGVzID0gY3R4LmF0b21UZXJtKCkuTm9kZXMNCj4gKyAgICAgICAgICAgIE5P YmogPSBJZnJOb3QoY3R4LnN0YXJ0LmxpbmUpDQo+ICsgICAgICAgICAgICBOb2RlID0gSWZyVHJl ZU5vZGUoRUZJX0lGUl9OT1RfT1AsIE5PYmosDQo+IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFtKE5P YmouR2V0SW5mbygpKSkNCj4gKyAgICAgICAgICAgIGN0eC5Ob2Rlcy5hcHBlbmQoTm9kZSkNCj4g KyAgICAgICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0KPiArICAgICAgICByZXR1 cm4gY3R4Lk5vZGVzDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBi eSBWZnJTeW50YXhQYXJzZXIjdmZyRXhwcmVzc2lvbkNhdGVuYXRlLg0KPiArICAgIGRlZiB2aXNp dFZmckV4cHJlc3Npb25DYXRlbmF0ZShzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5WZnJF eHByZXNzaW9uQ2F0ZW5hdGVDb250ZXh0KToNCj4gKyAgICAgICAgY3R4LkV4cEluZm8uUm9vdExl dmVsICs9IDENCj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKw0KPiArICAg ICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gKyAgICAgICAgQ09iaiA9IElmckNhdGVuYXRl KExpbmUpDQo+ICsgICAgICAgIE5vZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX0NBVEVOQVRFX09Q LCBDT2JqLA0KPiBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShDT2JqLkdldEluZm8oKSkpDQo+ICsg ICAgICAgIGN0eC5Ob2Rlcy5hcHBlbmQoTm9kZSkNCj4gKyAgICAgICAgY3R4LkV4cEluZm8uRXhw T3BDb3VudCArPSAxDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5Ob2Rlcw0KPiArDQo+ICsg ICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmckV4 cHJlc3Npb25NYXRjaC4NCj4gKyAgICBkZWYgdmlzaXRWZnJFeHByZXNzaW9uTWF0Y2goc2VsZiwg Y3R4Og0KPiBWZnJTeW50YXhQYXJzZXIuVmZyRXhwcmVzc2lvbk1hdGNoQ29udGV4dCk6DQo+ICsg ICAgICAgIGN0eC5FeHBJbmZvLlJvb3RMZXZlbCArPSAxDQo+ICsgICAgICAgIHNlbGYudmlzaXRD aGlsZHJlbihjdHgpDQo+ICsNCj4gKyAgICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5lDQo+ICsg ICAgICAgIE1PYmogPSBJZnJNYXRjaChMaW5lKQ0KPiArICAgICAgICBOb2RlID0gSWZyVHJlZU5v ZGUoRUZJX0lGUl9NQVRDSF9PUCwgTU9iaiwNCj4gZ0Zvcm1Qa2cuU3RydWN0VG9TdHJlYW0oTU9i ai5HZXRJbmZvKCkpKQ0KPiArICAgICAgICBjdHguTm9kZXMuYXBwZW5kKE5vZGUpDQo+ICsgICAg ICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBj dHguTm9kZXMNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZm clN5bnRheFBhcnNlciN2ZnJFeHByZXNzaW9uTWF0Y2gyLg0KPiArICAgIGRlZiB2aXNpdFZmckV4 cHJlc3Npb25NYXRjaDIoc2VsZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIuVmZyRXhwcmVzc2lv bk1hdGNoMkNvbnRleHQpOg0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiAr DQo+ICsgICAgICAgIExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiArICAgICAgICBHdWlkID0gY3R4 Lmd1aWREZWZpbml0aW9uKCkuR3VpZA0KPiArICAgICAgICBNMk9iaiA9IElmck1hdGNoMihMaW5l LCBHdWlkKQ0KPiArICAgICAgICBOb2RlID0gSWZyVHJlZU5vZGUoRUZJX0lGUl9NQVRDSDJfT1As IE0yT2JqLA0KPiBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShNMk9iai5HZXRJbmZvKCkpKQ0KPiAr ICAgICAgICBjdHguTm9kZXMuYXBwZW5kKE5vZGUpDQo+ICsgICAgICAgIGN0eC5FeHBJbmZvLkV4 cE9wQ291bnQgKz0gMQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZXMNCj4gKw0KPiAr ICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJF eHByZXNzaW9uUGFyZW4uDQo+ICsgICAgZGVmIHZpc2l0VmZyRXhwcmVzc2lvblBhcmVuKHNlbGYs IGN0eDoNCj4gVmZyU3ludGF4UGFyc2VyLlZmckV4cHJlc3Npb25QYXJlbkNvbnRleHQpOg0KPiAr ICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAgICByZXR1cm4gY3R4Lk5v ZGVzDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieQ0KPiBWZnJT eW50YXhQYXJzZXIjdmZyRXhwcmVzc2lvbkJ1aWxkSW5GdW5jdGlvbi4NCj4gKyAgICBkZWYgdmlz aXRWZnJFeHByZXNzaW9uQnVpbGRJbkZ1bmN0aW9uKA0KPiArICAgICAgICBzZWxmLCBjdHg6IFZm clN5bnRheFBhcnNlci5WZnJFeHByZXNzaW9uQnVpbGRJbkZ1bmN0aW9uQ29udGV4dA0KPiArICAg ICk6DQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsgICAgICAgIGlmIGN0 eC5kdXBFeHAoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHguZHVwRXhw KCkuTm9kZQ0KPiArICAgICAgICBpZiBjdHgudmFyZXF2YWxFeHAoKSAhPSBOb25lOg0KPiArICAg ICAgICAgICAgY3R4Lk5vZGUgPSBjdHgudmFyZXF2YWxFeHAoKS5Ob2RlDQo+ICsgICAgICAgIGlm IGN0eC5pZGVxdmFsRXhwKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlID0gY3R4 LmlkZXF2YWxFeHAoKS5Ob2RlDQo+ICsgICAgICAgIGlmIGN0eC5pZGVxaWRFeHAoKSAhPSBOb25l Og0KPiArICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHguaWRlcWlkRXhwKCkuTm9kZQ0KPiArICAg ICAgICBpZiBjdHguaWRlcXZhbGxpc3RFeHAoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4 Lk5vZGUgPSBjdHguaWRlcXZhbGxpc3RFeHAoKS5Ob2RlDQo+ICsgICAgICAgIGlmIGN0eC5xdWVz dGlvbnJlZjFFeHAoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgucXVl c3Rpb25yZWYxRXhwKCkuTm9kZQ0KPiArICAgICAgICBpZiBjdHgucnVsZXJlZkV4cCgpICE9IE5v bmU6DQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IGN0eC5ydWxlcmVmRXhwKCkuTm9kZQ0KPiAr ICAgICAgICBpZiBjdHguc3RyaW5ncmVmMUV4cCgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBj dHguTm9kZSA9IGN0eC5zdHJpbmdyZWYxRXhwKCkuTm9kZQ0KPiArICAgICAgICBpZiBjdHgucHVz aHRoaXNFeHAoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGUgPSBjdHgucHVzaHRo aXNFeHAoKS5Ob2RlDQo+ICsgICAgICAgIGlmIGN0eC5zZWN1cml0eUV4cCgpICE9IE5vbmU6DQo+ ICsgICAgICAgICAgICBjdHguTm9kZSA9IGN0eC5zZWN1cml0eUV4cCgpLk5vZGUNCj4gKyAgICAg ICAgaWYgY3R4LmdldEV4cCgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IGN0 eC5nZXRFeHAoKS5Ob2RlDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiArDQo+ICsgICAg IyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI2R1cEV4cC4N Cj4gKyAgICBkZWYgdmlzaXREdXBFeHAoc2VsZiwgY3R4OiBWZnJTeW50YXhQYXJzZXIuRHVwRXhw Q29udGV4dCk6DQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsgICAgICAg IExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiArICAgICAgICBET2JqID0gSWZyRHVwKExpbmUpDQo+ ICsgICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBET2JqDQo+ICsgICAgICAgIGN0eC5Ob2RlLkJ1ZmZl ciA9IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFtKERPYmouR2V0SW5mbygpKQ0KPiArICAgICAgICBz ZWxmLlNhdmVPcEhkckNvbmQoRE9iai5HZXRIZWFkZXIoKSwgKGN0eC5FeHBJbmZvLkV4cE9wQ291 bnQgPT0gMCksDQo+IExpbmUpICAjDQo+ICsgICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQg Kz0gMQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiArDQo+ICsgICAgIyBWaXNp dCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZhcmVxdmFsRXhwLg0K PiArICAgIGRlZiB2aXNpdFZhcmVxdmFsRXhwKHNlbGYsIGN0eDogVmZyU3ludGF4UGFyc2VyLlZh cmVxdmFsRXhwQ29udGV4dCk6DQo+ICsgICAgICAgIExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiAr ICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArDQo+ICsgICAgICAgIFJldHVybkNv ZGUgPSBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fVU5TVVBQT1JURUQNCj4gKyAgICAgICAgVmFy SWRTdHIgPSAidmFyIg0KPiArICAgICAgICBWYXJJZFN0ciArPSBjdHguVk4udGV4dA0KPiArICAg ICAgICBWYXJTdG9yZUlkLCBSZXR1cm5Db2RlID0gZ1ZmckRhdGFTdG9yYWdlLkdldFZhclN0b3Jl SWQoVmFySWRTdHIpDQo+ICsgICAgICAgIGlmIFJldHVybkNvZGUgPT0gVmZyUmV0dXJuQ29kZS5W RlJfUkVUVVJOX1VOREVGSU5FRDoNCj4gKyAgICAgICAgICAgIHBhc3MgICMjIyMjIyMjIw0KPiAr ICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoUmV0dXJuQ29k ZSwgY3R4LlZOLmxpbmUpDQo+ICsgICAgICAgIFFJZCwgTWFzaywgXyA9IHNlbGYuVmZyUXVlc3Rp b25EQi5HZXRRdWVzdGlvbklkKE5vbmUsIFZhcklkU3RyKQ0KPiArICAgICAgICBDb25zdFZhbCA9 IHNlbGYuVHJhbnNOdW0oY3R4Lk51bWJlcigxKSkNCj4gKyAgICAgICAgaWYgY3R4LkVxdWFsKCkg IT0gTm9uZToNCj4gKyAgICAgICAgICAgIGlmIE1hc2sgPT0gMDoNCj4gKyAgICAgICAgICAgICAg ICBFSVZPYmogPSBJZnJFcUlkVmFsKExpbmUpDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5TYXZl T3BIZHJDb25kKEVJVk9iai5HZXRIZWFkZXIoKSwgKGN0eC5FeHBJbmZvLkV4cE9wQ291bnQNCj4g PT0gMCksIExpbmUpDQo+ICsgICAgICAgICAgICAgICAgRUlWT2JqLlNldFF1ZXN0aW9uSWQoUUlk LCBWYXJJZFN0ciwgY3R4LlZOLmxpbmUpDQo+ICsgICAgICAgICAgICAgICAgRUlWT2JqLlNldFZh bHVlKENvbnN0VmFsKQ0KPiArICAgICAgICAgICAgICAgIGN0eC5Ob2RlID0gSWZyVHJlZU5vZGUo RUZJX0lGUl9FUV9JRF9WQUxfT1AsIEVJVk9iaikNCj4gKyAgICAgICAgICAgICAgICBjdHguRXhw SW5mby5FeHBPcENvdW50ICs9IDENCj4gKyAgICAgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAg ICAgICAgY3R4Lk5vZGUgPSBzZWxmLklkRXFWYWxEb1NwZWNpYWwoDQo+ICsgICAgICAgICAgICAg ICAgICAgIGN0eC5FeHBJbmZvLCBMaW5lLCBRSWQsIFZhcklkU3RyLCBNYXNrLCBDb25zdFZhbCwN Cj4gRUZJX0NPTVBBUkVfVFlQRS5FUVVBTA0KPiArICAgICAgICAgICAgICAgICkNCj4gKyAgICAg ICAgZWxpZiBjdHguTGVzc0VxdWFsKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5Ob2Rl ID0gc2VsZi5JZEVxVmFsRG9TcGVjaWFsKA0KPiArICAgICAgICAgICAgICAgIGN0eC5FeHBJbmZv LCBMaW5lLCBRSWQsIFZhcklkU3RyLCBNYXNrLCBDb25zdFZhbCwNCj4gRUZJX0NPTVBBUkVfVFlQ RS5MRVNTX0VRVUFMDQo+ICsgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgZWxpZiBjdHgu TGVzcygpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IHNlbGYuSWRFcVZhbERv U3BlY2lhbCgNCj4gKyAgICAgICAgICAgICAgICBjdHguRXhwSW5mbywgTGluZSwgUUlkLCBWYXJJ ZFN0ciwgTWFzaywgQ29uc3RWYWwsDQo+IEVGSV9DT01QQVJFX1RZUEUuTEVTU19USEFODQo+ICsg ICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgZWxpZiBjdHguR3JlYXRlckVxdWFsKCkgIT0g Tm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlID0gc2VsZi5JZEVxVmFsRG9TcGVjaWFsKA0K PiArICAgICAgICAgICAgICAgIGN0eC5FeHBJbmZvLCBMaW5lLCBRSWQsIFZhcklkU3RyLCBNYXNr LCBDb25zdFZhbCwNCj4gRUZJX0NPTVBBUkVfVFlQRS5HUkVBVEVSX0VRVUFMDQo+ICsgICAgICAg ICAgICApDQo+ICsNCj4gKyAgICAgICAgZWxpZiBjdHguR3JlYXRlcigpICE9IE5vbmU6DQo+ICsg ICAgICAgICAgICBjdHguTm9kZSA9IHNlbGYuSWRFcVZhbERvU3BlY2lhbCgNCj4gKyAgICAgICAg ICAgICAgICBjdHguRXhwSW5mbywgTGluZSwgUUlkLCBWYXJJZFN0ciwgTWFzaywgQ29uc3RWYWws DQo+IEVGSV9DT01QQVJFX1RZUEUuR1JFQVRFUl9USEFODQo+ICsgICAgICAgICAgICApDQo+ICsN Cj4gKyAgICAgICAgcmV0dXJuIGN0eC5Ob2RlDQo+ICsNCj4gKyAgICBkZWYgQ29udmVydElkRXhw cihzZWxmLCBFeHBJbmZvLCBMaW5lTm8sIFFJZCwgVmFySWRTdHIsIEJpdE1hc2spOg0KPiArICAg ICAgICBRUjFPYmogPSBJZnJRdWVzdGlvblJlZjEoTGluZU5vKQ0KPiArICAgICAgICBRUjFPYmou U2V0UXVlc3Rpb25JZChRSWQsIFZhcklkU3RyLCBMaW5lTm8pDQo+ICsgICAgICAgIE5vZGUgPSBJ ZnJUcmVlTm9kZShFRklfSUZSX1FVRVNUSU9OX1JFRjFfT1AsIFFSMU9iaikNCj4gKyAgICAgICAg c2VsZi5TYXZlT3BIZHJDb25kKFFSMU9iai5HZXRIZWFkZXIoKSwgKEV4cEluZm8uRXhwT3BDb3Vu dCA9PSAwKSkNCj4gKyAgICAgICAgaWYgQml0TWFzayAhPSAwOg0KPiArICAgICAgICAgICAgVTMy T2JqID0gSWZyVWludDMyKExpbmVObykNCj4gKyAgICAgICAgICAgIFUzMk9iai5TZXRWYWx1ZShC aXRNYXNrKQ0KPiArICAgICAgICAgICAgTm9kZS5pbnNlcnRDaGlsZCgNCj4gKyAgICAgICAgICAg ICAgICBJZnJUcmVlTm9kZShFRklfSUZSX1VJTlQzMl9PUCwgVTMyT2JqLA0KPiBnRm9ybVBrZy5T dHJ1Y3RUb1N0cmVhbShVMzJPYmouR2V0SW5mbygpKSkNCj4gKyAgICAgICAgICAgICkNCj4gKw0K PiArICAgICAgICAgICAgQldBT2JqID0gSWZyQml0V2lzZUFuZChMaW5lTm8pDQo+ICsgICAgICAg ICAgICBOb2RlLmluc2VydENoaWxkKA0KPiArICAgICAgICAgICAgICAgIElmclRyZWVOb2RlKA0K PiArICAgICAgICAgICAgICAgICAgICBFRklfSUZSX0JJVFdJU0VfQU5EX09QLCBCV0FPYmosDQo+ IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFtKEJXQU9iai5HZXRJbmZvKCkpDQo+ICsgICAgICAgICAg ICAgICAgKQ0KPiArICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgICAgICBVOE9iaiA9IElm clVpbnQ4KExpbmVObykNCj4gKyAgICAgICAgICAgIGlmIEJpdE1hc2sgPT0gREFURV9ZRUFSX0JJ VE1BU0s6DQo+ICsgICAgICAgICAgICAgICAgVThPYmouU2V0VmFsdWUoMCkNCj4gKyAgICAgICAg ICAgIGVsaWYgQml0TWFzayA9PSBUSU1FX1NFQ09ORF9CSVRNQVNLOg0KPiArICAgICAgICAgICAg ICAgIFU4T2JqLlNldFZhbHVlKDB4MTApDQo+ICsgICAgICAgICAgICBlbGlmIEJpdE1hc2sgPT0g REFURV9EQVlfQklUTUFTSzoNCj4gKyAgICAgICAgICAgICAgICBVOE9iai5TZXRWYWx1ZSgweDE4 KQ0KPiArICAgICAgICAgICAgZWxpZiBCaXRNYXNrID09IFRJTUVfSE9VUl9CSVRNQVNLOg0KPiAr ICAgICAgICAgICAgICAgIFU4T2JqLlNldFZhbHVlKDApDQo+ICsgICAgICAgICAgICBlbGlmIEJp dE1hc2sgPT0gVElNRV9NSU5VVEVfQklUTUFTSzoNCj4gKyAgICAgICAgICAgICAgICBVOE9iai5T ZXRWYWx1ZSgweDgpDQo+ICsgICAgICAgICAgICBOb2RlLmluc2VydENoaWxkKA0KPiArICAgICAg ICAgICAgICAgIElmclRyZWVOb2RlKEVGSV9JRlJfVUlOVDhfT1AsIFU4T2JqLA0KPiBnRm9ybVBr Zy5TdHJ1Y3RUb1N0cmVhbShVOE9iai5HZXRJbmZvKCkpKQ0KPiArICAgICAgICAgICAgKQ0KPiAr DQo+ICsgICAgICAgICAgICBTUk9iaiA9IElmclNoaWZ0UmlnaHQoTGluZU5vKQ0KPiArICAgICAg ICAgICAgTm9kZS5pbnNlcnRDaGlsZCgNCj4gKyAgICAgICAgICAgICAgICBJZnJUcmVlTm9kZShF RklfSUZSX1NISUZUX1JJR0hUX09QLCBTUk9iaiwNCj4gZ0Zvcm1Qa2cuU3RydWN0VG9TdHJlYW0o U1JPYmouR2V0SW5mbygpKSkNCj4gKyAgICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICBFeHBJ bmZvLkV4cE9wQ291bnQgKz0gNA0KPiArICAgICAgICByZXR1cm4gTm9kZQ0KPiArDQo+ICsgICAg ZGVmIElkRXFWYWxEb1NwZWNpYWwoc2VsZiwgRXhwSW5mbywgTGluZU5vLCBRSWQsIFZhcklkU3Ry LCBCaXRNYXNrLA0KPiBDb25zdFZhbCwgQ29tcGFyZVR5cGUpOg0KPiArICAgICAgICBOb2RlID0g c2VsZi5Db252ZXJ0SWRFeHByKEV4cEluZm8sIExpbmVObywgUUlkLCBWYXJJZFN0ciwgQml0TWFz aykNCj4gKyAgICAgICAgaWYgQ29uc3RWYWwgPiAweEZGOg0KPiArICAgICAgICAgICAgVTE2T2Jq ID0gSWZyVWludDE2KExpbmVObykNCj4gKyAgICAgICAgICAgIFUxNk9iai5TZXRWYWx1ZShDb25z dFZhbCkNCj4gKyAgICAgICAgICAgIE5vZGUuaW5zZXJ0Q2hpbGQoDQo+ICsgICAgICAgICAgICAg ICAgSWZyVHJlZU5vZGUoRUZJX0lGUl9VSU5UMTZfT1AsIFUxNk9iaiwNCj4gZ0Zvcm1Qa2cuU3Ry dWN0VG9TdHJlYW0oVTE2T2JqLkdldEluZm8oKSkpDQo+ICsgICAgICAgICAgICApDQo+ICsgICAg ICAgIGVsc2U6DQo+ICsgICAgICAgICAgICBVOE9iaiA9IElmclVpbnQ4KExpbmVObykNCj4gKyAg ICAgICAgICAgIFU4T2JqLlNldFZhbHVlKENvbnN0VmFsKQ0KPiArICAgICAgICAgICAgTm9kZS5p bnNlcnRDaGlsZCgNCj4gKyAgICAgICAgICAgICAgICBJZnJUcmVlTm9kZShFRklfSUZSX1VJTlQ4 X09QLCBVOE9iaiwNCj4gZ0Zvcm1Qa2cuU3RydWN0VG9TdHJlYW0oVThPYmouR2V0SW5mbygpKSkN Cj4gKyAgICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICBpZiBDb21wYXJlVHlwZSA9PSBFRklf Q09NUEFSRV9UWVBFLkVRVUFMOg0KPiArICAgICAgICAgICAgRU9iaiA9IElmckVxdWFsKExpbmVO bykNCj4gKyAgICAgICAgICAgIE5vZGUuaW5zZXJ0Q2hpbGQoDQo+ICsgICAgICAgICAgICAgICAg SWZyVHJlZU5vZGUoRUZJX0lGUl9FUVVBTF9PUCwgRU9iaiwNCj4gZ0Zvcm1Qa2cuU3RydWN0VG9T dHJlYW0oRU9iai5HZXRJbmZvKCkpKQ0KPiArICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgICAg IGlmIENvbXBhcmVUeXBlID09IEVGSV9DT01QQVJFX1RZUEUuTEVTU19FUVVBTDoNCj4gKyAgICAg ICAgICAgIExFT2JqID0gSWZyTGVzc0VxdWFsKExpbmVObykNCj4gKyAgICAgICAgICAgIE5vZGUu aW5zZXJ0Q2hpbGQoDQo+ICsgICAgICAgICAgICAgICAgSWZyVHJlZU5vZGUoRUZJX0lGUl9MRVNT X0VRVUFMX09QLCBMRU9iaiwNCj4gZ0Zvcm1Qa2cuU3RydWN0VG9TdHJlYW0oTEVPYmouR2V0SW5m bygpKSkNCj4gKyAgICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICBpZiBDb21wYXJlVHlwZSA9 PSBFRklfQ09NUEFSRV9UWVBFLkxFU1NfVEhBTjoNCj4gKyAgICAgICAgICAgIExUT2JqID0gSWZy TGVzc1RoYW4oTGluZU5vKQ0KPiArICAgICAgICAgICAgTm9kZS5pbnNlcnRDaGlsZCgNCj4gKyAg ICAgICAgICAgICAgICBJZnJUcmVlTm9kZShFRklfSUZSX0xFU1NfVEhBTl9PUCwgTFRPYmosDQo+ IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFtKExUT2JqLkdldEluZm8oKSkpDQo+ICsgICAgICAgICAg ICApDQo+ICsNCj4gKyAgICAgICAgaWYgQ29tcGFyZVR5cGUgPT0gRUZJX0NPTVBBUkVfVFlQRS5H UkVBVEVSX0VRVUFMOg0KPiArICAgICAgICAgICAgR0VPYmogPSBJZnJHcmVhdGVyRXF1YWwoTGlu ZU5vKQ0KPiArICAgICAgICAgICAgTm9kZS5pbnNlcnRDaGlsZCgNCj4gKyAgICAgICAgICAgICAg ICBJZnJUcmVlTm9kZSgNCj4gKyAgICAgICAgICAgICAgICAgICAgRUZJX0lGUl9HUkVBVEVSX0VR VUFMX09QLCBHRU9iaiwNCj4gZ0Zvcm1Qa2cuU3RydWN0VG9TdHJlYW0oR0VPYmouR2V0SW5mbygp KQ0KPiArICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICkNCj4gKw0KPiArICAgICAg ICBpZiBDb21wYXJlVHlwZSA9PSBFRklfQ09NUEFSRV9UWVBFLkdSRUFURVJfVEhBTjoNCj4gKyAg ICAgICAgICAgIEdUT2JqID0gSWZyR3JlYXRlclRoYW4oTGluZU5vKQ0KPiArICAgICAgICAgICAg Tm9kZS5pbnNlcnRDaGlsZCgNCj4gKyAgICAgICAgICAgICAgICBJZnJUcmVlTm9kZSgNCj4gKyAg ICAgICAgICAgICAgICAgICAgRUZJX0lGUl9HUkVBVEVSX1RIQU5fT1AsIEdUT2JqLA0KPiBnRm9y bVBrZy5TdHJ1Y3RUb1N0cmVhbShHVE9iai5HZXRJbmZvKCkpDQo+ICsgICAgICAgICAgICAgICAg KQ0KPiArICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgIEV4cEluZm8uRXhwT3BDb3VudCAr PSAyDQo+ICsgICAgICAgIHJldHVybiBOb2RlDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2Ug dHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjaWRlcXZhbEV4cC4NCj4gKyAgICBkZWYg dmlzaXRJZGVxdmFsRXhwKHNlbGYsIGN0eDogVmZyU3ludGF4UGFyc2VyLklkZXF2YWxFeHBDb250 ZXh0KToNCj4gKyAgICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5lDQo+ICsgICAgICAgIHNlbGYu dmlzaXRDaGlsZHJlbihjdHgpDQo+ICsgICAgICAgIE1hc2sgPSBjdHgudmZyUXVlc3Rpb25EYXRh RmllbGROYW1lKCkuTWFzaw0KPiArICAgICAgICBRSWQgPSBjdHgudmZyUXVlc3Rpb25EYXRhRmll bGROYW1lKCkuUUlkDQo+ICsgICAgICAgIFZhcklkU3RyID0gY3R4LnZmclF1ZXN0aW9uRGF0YUZp ZWxkTmFtZSgpLlZhcklkU3RyDQo+ICsgICAgICAgIExpbmVObyA9IGN0eC52ZnJRdWVzdGlvbkRh dGFGaWVsZE5hbWUoKS5MaW5lDQo+ICsgICAgICAgIENvbnN0VmFsID0gc2VsZi5UcmFuc051bShj dHguTnVtYmVyKCkpDQo+ICsgICAgICAgIGlmIGN0eC5FcXVhbCgpICE9IE5vbmU6DQo+ICsgICAg ICAgICAgICBpZiBNYXNrID09IDA6DQo+ICsgICAgICAgICAgICAgICAgRUlWT2JqID0gSWZyRXFJ ZFZhbChMaW5lKQ0KPiArICAgICAgICAgICAgICAgIHNlbGYuU2F2ZU9wSGRyQ29uZChFSVZPYmou R2V0SGVhZGVyKCksIChjdHguRXhwSW5mby5FeHBPcENvdW50DQo+ID09IDApLCBMaW5lKQ0KPiAr ICAgICAgICAgICAgICAgIEVJVk9iai5TZXRRdWVzdGlvbklkKFFJZCwgVmFySWRTdHIsIExpbmVO bykNCj4gKyAgICAgICAgICAgICAgICBFSVZPYmouU2V0VmFsdWUoQ29uc3RWYWwpDQo+ICsgICAg ICAgICAgICAgICAgY3R4Lk5vZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX0VRX0lEX1ZBTF9PUCwg RUlWT2JqKQ0KPiArICAgICAgICAgICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0K PiArICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAgICBjdHguTm9kZSA9IHNlbGYu SWRFcVZhbERvU3BlY2lhbCgNCj4gKyAgICAgICAgICAgICAgICAgICAgY3R4LkV4cEluZm8sIExp bmUsIFFJZCwgVmFySWRTdHIsIE1hc2ssIENvbnN0VmFsLA0KPiBFRklfQ09NUEFSRV9UWVBFLkVR VUFMDQo+ICsgICAgICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgIGVsaWYgY3R4Lkxlc3NF cXVhbCgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IHNlbGYuSWRFcVZhbERv U3BlY2lhbCgNCj4gKyAgICAgICAgICAgICAgICBjdHguRXhwSW5mbywgTGluZSwgUUlkLCBWYXJJ ZFN0ciwgTWFzaywgQ29uc3RWYWwsDQo+IEVGSV9DT01QQVJFX1RZUEUuTEVTU19FUVVBTA0KPiAr ICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgIGVsaWYgY3R4Lkxlc3MoKSAhPSBOb25lOg0K PiArICAgICAgICAgICAgY3R4Lk5vZGUgPSBzZWxmLklkRXFWYWxEb1NwZWNpYWwoDQo+ICsgICAg ICAgICAgICAgICAgY3R4LkV4cEluZm8sIExpbmUsIFFJZCwgVmFySWRTdHIsIE1hc2ssIENvbnN0 VmFsLA0KPiBFRklfQ09NUEFSRV9UWVBFLkxFU1NfVEhBTg0KPiArICAgICAgICAgICAgKQ0KPiAr DQo+ICsgICAgICAgIGVsaWYgY3R4LkdyZWF0ZXJFcXVhbCgpICE9IE5vbmU6DQo+ICsgICAgICAg ICAgICBjdHguTm9kZSA9IHNlbGYuSWRFcVZhbERvU3BlY2lhbCgNCj4gKyAgICAgICAgICAgICAg ICBjdHguRXhwSW5mbywgTGluZSwgUUlkLCBWYXJJZFN0ciwgTWFzaywgQ29uc3RWYWwsDQo+IEVG SV9DT01QQVJFX1RZUEUuR1JFQVRFUl9FUVVBTA0KPiArICAgICAgICAgICAgKQ0KPiArDQo+ICsg ICAgICAgIGVsaWYgY3R4LkdyZWF0ZXIoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4Lk5v ZGUgPSBzZWxmLklkRXFWYWxEb1NwZWNpYWwoDQo+ICsgICAgICAgICAgICAgICAgY3R4LkV4cElu Zm8sIExpbmUsIFFJZCwgVmFySWRTdHIsIE1hc2ssIENvbnN0VmFsLA0KPiBFRklfQ09NUEFSRV9U WVBFLkdSRUFURVJfVEhBTg0KPiArICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgIHJldHVy biBjdHguTm9kZQ0KPiArDQo+ICsgICAgZGVmIElkRXFJZERvU3BlY2lhbCgNCj4gKyAgICAgICAg c2VsZiwgRXhwSW5mbywgTGluZU5vLCBRSWQxLCBWYXJJZFN0cjEsIE1hc2sxLCBRSWQyLCBWYXJJ ZFN0cjIsIE1hc2syLA0KPiBDb21wYXJlVHlwZQ0KPiArICAgICk6DQo+ICsgICAgICAgIE5vZGUx ID0gc2VsZi5Db252ZXJ0SWRFeHByKEV4cEluZm8sIExpbmVObywgUUlkMSwgVmFySWRTdHIxLCBN YXNrMSkNCj4gKyAgICAgICAgTm9kZTIgPSBzZWxmLkNvbnZlcnRJZEV4cHIoRXhwSW5mbywgTGlu ZU5vLCBRSWQyLCBWYXJJZFN0cjIsIE1hc2syKQ0KPiArICAgICAgICBOb2RlMS5pbnNlcnRDaGls ZChOb2RlMikNCj4gKw0KPiArICAgICAgICBpZiBDb21wYXJlVHlwZSA9PSBFRklfQ09NUEFSRV9U WVBFLkVRVUFMOg0KPiArICAgICAgICAgICAgRU9iaiA9IElmckVxdWFsKExpbmVObykNCj4gKyAg ICAgICAgICAgIE5vZGUxLmluc2VydENoaWxkKA0KPiArICAgICAgICAgICAgICAgIElmclRyZWVO b2RlKEVGSV9JRlJfRVFVQUxfT1AsIEVPYmosDQo+IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFtKEVP YmouR2V0SW5mbygpKSkNCj4gKyAgICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICBpZiBDb21w YXJlVHlwZSA9PSBFRklfQ09NUEFSRV9UWVBFLkxFU1NfRVFVQUw6DQo+ICsgICAgICAgICAgICBM RU9iaiA9IElmckxlc3NFcXVhbChMaW5lTm8pDQo+ICsgICAgICAgICAgICBOb2RlMS5pbnNlcnRD aGlsZCgNCj4gKyAgICAgICAgICAgICAgICBJZnJUcmVlTm9kZShFRklfSUZSX0xFU1NfRVFVQUxf T1AsIExFT2JqLA0KPiBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShMRU9iai5HZXRJbmZvKCkpKQ0K PiArICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgIGlmIENvbXBhcmVUeXBlID09IEVGSV9D T01QQVJFX1RZUEUuTEVTU19USEFOOg0KPiArICAgICAgICAgICAgTFRPYmogPSBJZnJMZXNzVGhh bihMaW5lTm8pDQo+ICsgICAgICAgICAgICBOb2RlMS5pbnNlcnRDaGlsZCgNCj4gKyAgICAgICAg ICAgICAgICBJZnJUcmVlTm9kZShFRklfSUZSX0xFU1NfVEhBTl9PUCwgTFRPYmosDQo+IGdGb3Jt UGtnLlN0cnVjdFRvU3RyZWFtKExUT2JqLkdldEluZm8oKSkpDQo+ICsgICAgICAgICAgICApDQo+ ICsNCj4gKyAgICAgICAgaWYgQ29tcGFyZVR5cGUgPT0gRUZJX0NPTVBBUkVfVFlQRS5HUkVBVEVS X0VRVUFMOg0KPiArICAgICAgICAgICAgR0VPYmogPSBJZnJHcmVhdGVyRXF1YWwoTGluZU5vKQ0K PiArICAgICAgICAgICAgTm9kZTEuaW5zZXJ0Q2hpbGQoDQo+ICsgICAgICAgICAgICAgICAgSWZy VHJlZU5vZGUoDQo+ICsgICAgICAgICAgICAgICAgICAgIEVGSV9JRlJfR1JFQVRFUl9FUVVBTF9P UCwgR0VPYmosDQo+IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFtKEdFT2JqLkdldEluZm8oKSkNCj4g KyAgICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgaWYg Q29tcGFyZVR5cGUgPT0gRUZJX0NPTVBBUkVfVFlQRS5HUkVBVEVSX1RIQU46DQo+ICsgICAgICAg ICAgICBHVE9iaiA9IElmckdyZWF0ZXJUaGFuKExpbmVObykNCj4gKyAgICAgICAgICAgIE5vZGUx Lmluc2VydENoaWxkKA0KPiArICAgICAgICAgICAgICAgIElmclRyZWVOb2RlKA0KPiArICAgICAg ICAgICAgICAgICAgICBFRklfSUZSX0dSRUFURVJfVEhBTl9PUCwgR1RPYmosDQo+IGdGb3JtUGtn LlN0cnVjdFRvU3RyZWFtKEdUT2JqLkdldEluZm8oKSkNCj4gKyAgICAgICAgICAgICAgICApDQo+ ICsgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgRXhwSW5mby5FeHBPcENvdW50ICs9IDEN Cj4gKyAgICAgICAgcmV0dXJuIE5vZGUxDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJl ZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjaWRlcWlkRXhwLg0KPiArICAgIGRlZiB2aXNp dElkZXFpZEV4cChzZWxmLCBjdHg6IFZmclN5bnRheFBhcnNlci5JZGVxaWRFeHBDb250ZXh0KToN Cj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgTGluZSA9IGN0 eC5zdGFydC5saW5lDQo+ICsgICAgICAgIE1hc2sxID0gY3R4LnZmclF1ZXN0aW9uRGF0YUZpZWxk TmFtZSgwKS5NYXNrDQo+ICsgICAgICAgIFFJZDEgPSBjdHgudmZyUXVlc3Rpb25EYXRhRmllbGRO YW1lKDApLlFJZA0KPiArICAgICAgICBWYXJJZFN0cjEgPSBjdHgudmZyUXVlc3Rpb25EYXRhRmll bGROYW1lKDApLlZhcklkU3RyDQo+ICsgICAgICAgIExpbmVObzEgPSBjdHgudmZyUXVlc3Rpb25E YXRhRmllbGROYW1lKDApLkxpbmUNCj4gKw0KPiArICAgICAgICBNYXNrMiA9IGN0eC52ZnJRdWVz dGlvbkRhdGFGaWVsZE5hbWUoMSkuTWFzaw0KPiArICAgICAgICBRSWQyID0gY3R4LnZmclF1ZXN0 aW9uRGF0YUZpZWxkTmFtZSgxKS5RSWQNCj4gKyAgICAgICAgVmFySWRTdHIyID0gY3R4LnZmclF1 ZXN0aW9uRGF0YUZpZWxkTmFtZSgxKS5WYXJJZFN0cg0KPiArICAgICAgICBMaW5lTm8yID0gY3R4 LnZmclF1ZXN0aW9uRGF0YUZpZWxkTmFtZSgxKS5MaW5lDQo+ICsNCj4gKyAgICAgICAgaWYgY3R4 LkVxdWFsKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGlmIE1hc2sxICYgTWFzazI6DQo+ICsg ICAgICAgICAgICAgICAgY3R4Lk5vZGUgPSBzZWxmLklkRXFJZERvU3BlY2lhbCgNCj4gKyAgICAg ICAgICAgICAgICAgICAgY3R4LkV4cEluZm8sDQo+ICsgICAgICAgICAgICAgICAgICAgIExpbmUs DQo+ICsgICAgICAgICAgICAgICAgICAgIFFJZDEsDQo+ICsgICAgICAgICAgICAgICAgICAgIFZh cklkU3RyMSwNCj4gKyAgICAgICAgICAgICAgICAgICAgTWFzazEsDQo+ICsgICAgICAgICAgICAg ICAgICAgIFFJZDIsDQo+ICsgICAgICAgICAgICAgICAgICAgIFZhcklkU3RyMiwNCj4gKyAgICAg ICAgICAgICAgICAgICAgTWFzazIsDQo+ICsgICAgICAgICAgICAgICAgICAgIEVGSV9DT01QQVJF X1RZUEUuRVFVQUwsDQo+ICsgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgZWxzZToN Cj4gKyAgICAgICAgICAgICAgICBFSUlPYmogPSBJZnJFcUlkSWQoTGluZSkNCj4gKyAgICAgICAg ICAgICAgICBzZWxmLlNhdmVPcEhkckNvbmQoRUlJT2JqLkdldEhlYWRlcigpLCAoY3R4LkV4cElu Zm8uRXhwT3BDb3VudA0KPiA9PSAwKSwgTGluZSkNCj4gKyAgICAgICAgICAgICAgICBFSUlPYmou U2V0UXVlc3Rpb25JZDEoUUlkMSwgVmFySWRTdHIxLCBMaW5lTm8xKQ0KPiArICAgICAgICAgICAg ICAgIEVJSU9iai5TZXRRdWVzdGlvbklkMihRSWQyLCBWYXJJZFN0cjIsIExpbmVObzIpDQo+ICsg ICAgICAgICAgICAgICAgY3R4Lk5vZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX0VRX0lEX0lEX09Q LCBFSUlPYmopDQo+ICsgICAgICAgICAgICAgICAgY3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAx DQo+ICsNCj4gKyAgICAgICAgZWxpZiBjdHguTGVzc0VxdWFsKCkgIT0gTm9uZToNCj4gKyAgICAg ICAgICAgIGN0eC5Ob2RlID0gc2VsZi5JZEVxSWREb1NwZWNpYWwoDQo+ICsgICAgICAgICAgICAg ICAgY3R4LkV4cEluZm8sDQo+ICsgICAgICAgICAgICAgICAgTGluZSwNCj4gKyAgICAgICAgICAg ICAgICBRSWQxLA0KPiArICAgICAgICAgICAgICAgIFZhcklkU3RyMSwNCj4gKyAgICAgICAgICAg ICAgICBNYXNrMSwNCj4gKyAgICAgICAgICAgICAgICBRSWQyLA0KPiArICAgICAgICAgICAgICAg IFZhcklkU3RyMiwNCj4gKyAgICAgICAgICAgICAgICBNYXNrMiwNCj4gKyAgICAgICAgICAgICAg ICBFRklfQ09NUEFSRV9UWVBFLkxFU1NfRVFVQUwsDQo+ICsgICAgICAgICAgICApDQo+ICsNCj4g KyAgICAgICAgZWxpZiBjdHguTGVzcygpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9k ZSA9IHNlbGYuSWRFcUlkRG9TcGVjaWFsKA0KPiArICAgICAgICAgICAgICAgIGN0eC5FeHBJbmZv LA0KPiArICAgICAgICAgICAgICAgIExpbmUsDQo+ICsgICAgICAgICAgICAgICAgUUlkMSwNCj4g KyAgICAgICAgICAgICAgICBWYXJJZFN0cjEsDQo+ICsgICAgICAgICAgICAgICAgTWFzazEsDQo+ ICsgICAgICAgICAgICAgICAgUUlkMiwNCj4gKyAgICAgICAgICAgICAgICBWYXJJZFN0cjIsDQo+ ICsgICAgICAgICAgICAgICAgTWFzazIsDQo+ICsgICAgICAgICAgICAgICAgRUZJX0NPTVBBUkVf VFlQRS5MRVNTX1RIQU4sDQo+ICsgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgZWxpZiBj dHguR3JlYXRlckVxdWFsKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlID0gc2Vs Zi5JZEVxSWREb1NwZWNpYWwoDQo+ICsgICAgICAgICAgICAgICAgY3R4LkV4cEluZm8sDQo+ICsg ICAgICAgICAgICAgICAgTGluZSwNCj4gKyAgICAgICAgICAgICAgICBRSWQxLA0KPiArICAgICAg ICAgICAgICAgIFZhcklkU3RyMSwNCj4gKyAgICAgICAgICAgICAgICBNYXNrMSwNCj4gKyAgICAg ICAgICAgICAgICBRSWQyLA0KPiArICAgICAgICAgICAgICAgIFZhcklkU3RyMiwNCj4gKyAgICAg ICAgICAgICAgICBNYXNrMiwNCj4gKyAgICAgICAgICAgICAgICBFRklfQ09NUEFSRV9UWVBFLkdS RUFURVJfRVFVQUwsDQo+ICsgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgZWxpZiBjdHgu R3JlYXRlcigpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IHNlbGYuSWRFcUlk RG9TcGVjaWFsKA0KPiArICAgICAgICAgICAgICAgIGN0eC5FeHBJbmZvLA0KPiArICAgICAgICAg ICAgICAgIExpbmUsDQo+ICsgICAgICAgICAgICAgICAgUUlkMSwNCj4gKyAgICAgICAgICAgICAg ICBWYXJJZFN0cjEsDQo+ICsgICAgICAgICAgICAgICAgTWFzazEsDQo+ICsgICAgICAgICAgICAg ICAgUUlkMiwNCj4gKyAgICAgICAgICAgICAgICBWYXJJZFN0cjIsDQo+ICsgICAgICAgICAgICAg ICAgTWFzazIsDQo+ICsgICAgICAgICAgICAgICAgRUZJX0NPTVBBUkVfVFlQRS5HUkVBVEVSX1RI QU4sDQo+ICsgICAgICAgICAgICApDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiArDQo+ ICsgICAgZGVmIElkRXFMaXN0RG9TcGVjaWFsKHNlbGYsIEV4cEluZm8sIExpbmVObywgUUlkLCBW YXJJZFN0ciwgTWFzaywgTGlzdExlbiwNCj4gVmFsdWVMaXN0KToNCj4gKyAgICAgICAgaWYgTGlz dExlbiA9PSAwOg0KPiArICAgICAgICAgICAgcmV0dXJuIE5vbmUNCj4gKw0KPiArICAgICAgICBO b2RlID0gc2VsZi5JZEVxVmFsRG9TcGVjaWFsKA0KPiArICAgICAgICAgICAgRXhwSW5mbywgTGlu ZU5vLCBRSWQsIFZhcklkU3RyLCBNYXNrLCBWYWx1ZUxpc3RbMF0sDQo+IEVGSV9DT01QQVJFX1RZ UEUuRVFVQUwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICBmb3IgaSBpbiByYW5nZSgxLCBMaXN0 TGVuKToNCj4gKyAgICAgICAgICAgIE5vZGUuaW5zZXJ0Q2hpbGQoDQo+ICsgICAgICAgICAgICAg ICAgc2VsZi5JZEVxVmFsRG9TcGVjaWFsKA0KPiArICAgICAgICAgICAgICAgICAgICBFeHBJbmZv LCBMaW5lTm8sIFFJZCwgVmFySWRTdHIsIE1hc2ssIFZhbHVlTGlzdFtpXSwNCj4gRUZJX0NPTVBB UkVfVFlQRS5FUVVBTA0KPiArICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICkNCj4g KyAgICAgICAgICAgIE9PYmogPSBJZnJPcihMaW5lTm8pDQo+ICsgICAgICAgICAgICBOb2RlLmlu c2VydENoaWxkKA0KPiArICAgICAgICAgICAgICAgIElmclRyZWVOb2RlKEVGSV9JRlJfT1JfT1As IE9PYmosDQo+IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFtKE9PYmouR2V0SW5mbygpKSkNCj4gKyAg ICAgICAgICAgICkNCj4gKyAgICAgICAgICAgIEV4cEluZm8uRXhwT3BDb3VudCArPSAxDQo+ICsN Cj4gKyAgICAgICAgcmV0dXJuIE5vZGUNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVl IHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNpZGVxdmFsbGlzdEV4cC4NCj4gKyAgICBkZWYg dmlzaXRJZGVxdmFsbGlzdEV4cChzZWxmLCBjdHg6IFZmclN5bnRheFBhcnNlci5JZGVxdmFsbGlz dEV4cENvbnRleHQpOg0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArICAg ICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gKyAgICAgICAgTWFzayA9IGN0eC52ZnJRdWVz dGlvbkRhdGFGaWVsZE5hbWUoKS5NYXNrDQo+ICsgICAgICAgIFFJZCA9IGN0eC52ZnJRdWVzdGlv bkRhdGFGaWVsZE5hbWUoKS5RSWQNCj4gKyAgICAgICAgVmFySWRTdHIgPSBjdHgudmZyUXVlc3Rp b25EYXRhRmllbGROYW1lKCkuVmFySWRTdHINCj4gKyAgICAgICAgTGluZU5vID0gY3R4LnZmclF1 ZXN0aW9uRGF0YUZpZWxkTmFtZSgpLkxpbmUNCj4gKyAgICAgICAgVmFsdWVMaXN0ID0gW10NCj4g KyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgbGVuKGN0eC5OdW1iZXIoKSkpOg0KPiArICAgICAg ICAgICAgVmFsdWVMaXN0LmFwcGVuZChzZWxmLlRyYW5zTnVtKGN0eC5OdW1iZXIoaSkpKQ0KPiAr DQo+ICsgICAgICAgIExpc3RMZW4gPSBsZW4oVmFsdWVMaXN0KQ0KPiArDQo+ICsgICAgICAgIGlm IE1hc2sgIT0gMDoNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlID0gc2VsZi5JZEVxTGlzdERvU3Bl Y2lhbCgNCj4gKyAgICAgICAgICAgICAgICBjdHguRXhwSW5mbywgTGluZU5vLCBRSWQsIFZhcklk U3RyLCBNYXNrLCBMaXN0TGVuLCBWYWx1ZUxpc3QNCj4gKyAgICAgICAgICAgICkNCj4gKyAgICAg ICAgZWxzZToNCj4gKyAgICAgICAgICAgIEVJTE9iaiA9IElmckVxSWRMaXN0KExpbmUsIExpc3RM ZW4pDQo+ICsgICAgICAgICAgICBpZiBRSWQgIT0gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQ6DQo+ ICsgICAgICAgICAgICAgICAgRUlMT2JqLlNldFF1ZXN0aW9uSWQoUUlkLCBWYXJJZFN0ciwgTGlu ZU5vKQ0KPiArICAgICAgICAgICAgRUlMT2JqLlNldExpc3RMZW5ndGgoTGlzdExlbikNCj4gKyAg ICAgICAgICAgIEVJTE9iai5TZXRWYWx1ZUxpc3QoVmFsdWVMaXN0KQ0KPiArICAgICAgICAgICAg c2VsZi5TYXZlT3BIZHJDb25kKEVJTE9iai5HZXRIZWFkZXIoKSwgKGN0eC5FeHBJbmZvLkV4cE9w Q291bnQgPT0NCj4gMCksIExpbmUpDQo+ICsgICAgICAgICAgICBpZiBRSWQgPT0gRUZJX1FVRVNU SU9OX0lEX0lOVkFMSUQ6DQo+ICsgICAgICAgICAgICAgICAgRUlMT2JqLlNldFF1ZXN0aW9uSWQo UUlkLCBWYXJJZFN0ciwgTGluZU5vKQ0KPiArDQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IElm clRyZWVOb2RlKEVGSV9JRlJfRVFfSURfVkFMX0xJU1RfT1AsIEVJTE9iaikNCj4gKyAgICAgICAg ICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0KPiArICAgICAgICByZXR1cm4gY3R4Lk5v ZGUNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5DQo+IFZmclN5 bnRheFBhcnNlciN2ZnJRdWVzdGlvbkRhdGFGaWVsZE5hbWVSdWxlMS4NCj4gKyAgICBkZWYgdmlz aXRWZnJRdWVzdGlvbkRhdGFGaWVsZE5hbWVSdWxlMSgNCj4gKyAgICAgICAgc2VsZiwgY3R4OiBW ZnJTeW50YXhQYXJzZXIuVmZyUXVlc3Rpb25EYXRhRmllbGROYW1lUnVsZTFDb250ZXh0DQo+ICsg ICAgKToNCj4gKyAgICAgICAgY3R4LkxpbmUgPSBjdHguc3RhcnQubGluZQ0KPiArICAgICAgICBz ZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAgICBjdHguVmFySWRTdHIgKz0gY3R4LlNO MS50ZXh0DQo+ICsgICAgICAgIGN0eC5WYXJJZFN0ciArPSAiWyINCj4gKyAgICAgICAgY3R4LlZh cklkU3RyICs9IGN0eC5JLnRleHQNCj4gKyAgICAgICAgY3R4LlZhcklkU3RyICs9ICJdIg0KPiAr ICAgICAgICBjdHguUUlkLCBjdHguTWFzaywgXyA9IHNlbGYuVmZyUXVlc3Rpb25EQi5HZXRRdWVz dGlvbklkKE5vbmUsDQo+IGN0eC5WYXJJZFN0cikNCj4gKyAgICAgICAgaWYgc2VsZi5Db25zdGFu dE9ubHlJbkV4cHJlc3Npb246DQo+ICsgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcihWZnJS ZXR1cm5Db2RlLlZGUl9SRVRVUk5fQ09OU1RBTlRfT05MWSwNCj4gY3R4LlNOMS5saW5lKQ0KPiAr ICAgICAgICByZXR1cm4gY3R4LlFJZCwgY3R4Lk1hc2ssIGN0eC5WYXJJZFN0cg0KPiArDQo+ICsg ICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkNCj4gVmZyU3ludGF4UGFyc2VyI3Zm clF1ZXN0aW9uRGF0YUZpZWxkTmFtZVJ1bGUyLg0KPiArICAgIGRlZiB2aXNpdFZmclF1ZXN0aW9u RGF0YUZpZWxkTmFtZVJ1bGUyKA0KPiArICAgICAgICBzZWxmLCBjdHg6IFZmclN5bnRheFBhcnNl ci5WZnJRdWVzdGlvbkRhdGFGaWVsZE5hbWVSdWxlMkNvbnRleHQNCj4gKyAgICApOg0KPiArICAg ICAgICBjdHguTGluZSA9IGN0eC5zdGFydC5saW5lDQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGls ZHJlbihjdHgpDQo+ICsgICAgICAgIGN0eC5WYXJJZFN0ciArPSBjdHguU04yLnRleHQNCj4gKyAg ICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgbGVuKGN0eC5hcnJheU5hbWUoKSkpOg0KPiArICAgICAg ICAgICAgY3R4LlZhcklkU3RyICs9ICIuIg0KPiArICAgICAgICAgICAgaWYgc2VsZi5Db25zdGFu dE9ubHlJbkV4cHJlc3Npb246DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIo VmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0NPTlNUQU5UX09OTFksDQo+IGN0eC5TTjIubGluZSkN Cj4gKyAgICAgICAgICAgIGN0eC5WYXJJZFN0ciArPSBjdHguYXJyYXlOYW1lKGkpLlN1YlN0cloN Cj4gKw0KPiArICAgICAgICBjdHguUUlkLCBjdHguTWFzaywgXyA9IHNlbGYuVmZyUXVlc3Rpb25E Qi5HZXRRdWVzdGlvbklkKE5vbmUsDQo+IGN0eC5WYXJJZFN0cikNCj4gKyAgICAgICAgcmV0dXJu IGN0eC5RSWQsIGN0eC5NYXNrLCBjdHguVmFySWRTdHINCj4gKw0KPiArICAgICMgVmlzaXQgYSBw YXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNhcnJheU5hbWUuDQo+ICsgICAg ZGVmIHZpc2l0QXJyYXlOYW1lKHNlbGYsIGN0eDogVmZyU3ludGF4UGFyc2VyLkFycmF5TmFtZUNv bnRleHQpOg0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAgICBj dHguU3ViU3RyICs9IHNlbGYuVHJhbnNJZChjdHguU3RyaW5nSWRlbnRpZmllcigpKQ0KPiArICAg ICAgICBjdHguU3ViU3RyWiArPSBzZWxmLlRyYW5zSWQoY3R4LlN0cmluZ0lkZW50aWZpZXIoKSkN Cj4gKyAgICAgICAgaWYgY3R4Lk4gIT0gTm9uZToNCj4gKyAgICAgICAgICAgIElkeCA9IHNlbGYu VHJhbnNOdW0oY3R4Lk4udGV4dCkNCj4gKyAgICAgICAgICAgIGlmIElkeCA+IDA6DQo+ICsgICAg ICAgICAgICAgICAgY3R4LlN1YlN0ciArPSAiWyINCj4gKyAgICAgICAgICAgICAgICBjdHguU3Vi U3RyICs9IHN0cihJZHgpDQo+ICsgICAgICAgICAgICAgICAgY3R4LlN1YlN0ciArPSAiXSINCj4g Kw0KPiArICAgICAgICAgICAgY3R4LlN1YlN0clogKz0gIlsiDQo+ICsgICAgICAgICAgICBjdHgu U3ViU3RyWiArPSBzdHIoSWR4KQ0KPiArICAgICAgICAgICAgY3R4LlN1YlN0clogKz0gIl0iDQo+ ICsNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5TdWJTdHIsIGN0eC5TdWJTdHJaDQo+ICsNCj4gKyAg ICAjIFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjcXVlc3Rp b25yZWYxRXhwLg0KPiArICAgIGRlZiB2aXNpdFF1ZXN0aW9ucmVmMUV4cChzZWxmLCBjdHg6DQo+ IFZmclN5bnRheFBhcnNlci5RdWVzdGlvbnJlZjFFeHBDb250ZXh0KToNCj4gKyAgICAgICAgTGlu ZSA9IGN0eC5zdGFydC5saW5lICAjDQo+ICsgICAgICAgIFFOYW1lID0gTm9uZSAgIw0KPiArICAg ICAgICBRSWQgPSBFRklfUVVFU1RJT05fSURfSU5WQUxJRA0KPiArICAgICAgICBzZWxmLnZpc2l0 Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAgICBpZiBjdHguU3RyaW5nSWRlbnRpZmllcigpICE9IE5v bmU6DQo+ICsgICAgICAgICAgICBRTmFtZSA9IHNlbGYuVHJhbnNJZChjdHguU3RyaW5nSWRlbnRp ZmllcigpKQ0KPiArICAgICAgICAgICAgUUlkLCBfLCBfID0gc2VsZi5WZnJRdWVzdGlvbkRCLkdl dFF1ZXN0aW9uSWQoUU5hbWUpDQo+ICsNCj4gKyAgICAgICAgZWxpZiBjdHguTnVtYmVyKCkgIT0g Tm9uZToNCj4gKyAgICAgICAgICAgIFFJZCA9IHNlbGYuVHJhbnNOdW0oY3R4Lk51bWJlcigpKQ0K PiArDQo+ICsgICAgICAgIFFSMU9iaiA9IElmclF1ZXN0aW9uUmVmMShMaW5lKQ0KPiArICAgICAg ICBzZWxmLlNhdmVPcEhkckNvbmQoUVIxT2JqLkdldEhlYWRlcigpLCAoY3R4LkV4cEluZm8uRXhw T3BDb3VudCA9PQ0KPiAwKSwgTGluZSkNCj4gKw0KPiArICAgICAgICBRUjFPYmouU2V0UXVlc3Rp b25JZChRSWQsIFFOYW1lLCBMaW5lKQ0KPiArICAgICAgICBjdHguTm9kZS5EYXRhID0gUVIxT2Jq DQo+ICsgICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0KPiArDQo+ICsgICAgICAg IHJldHVybiBjdHguTm9kZQ0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVj ZWQgYnkgVmZyU3ludGF4UGFyc2VyI3J1bGVyZWZFeHAuDQo+ICsgICAgZGVmIHZpc2l0UnVsZXJl ZkV4cChzZWxmLCBjdHg6IFZmclN5bnRheFBhcnNlci5SdWxlcmVmRXhwQ29udGV4dCk6DQo+ICsg ICAgICAgIExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRy ZW4oY3R4KQ0KPiArICAgICAgICBSUk9iaiA9IElmclJ1bGVSZWYoTGluZSkNCj4gKyAgICAgICAg c2VsZi5TYXZlT3BIZHJDb25kKFJST2JqLkdldEhlYWRlcigpLCAoY3R4LkV4cEluZm8uRXhwT3BD b3VudCA9PQ0KPiAwKSwgTGluZSkNCj4gKyAgICAgICAgUnVsZUlkID0gc2VsZi5WZnJSdWxlc0RC LkdldFJ1bGVJZChzZWxmLlRyYW5zSWQoY3R4LlN0cmluZ0lkZW50aWZpZXIoKSkpDQo+ICsgICAg ICAgIFJST2JqLlNldFJ1bGVJZChSdWxlSWQpDQo+ICsgICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBS Uk9iag0KPiArICAgICAgICBjdHguRXhwSW5mby5FeHBPcENvdW50ICs9IDENCj4gKw0KPiArICAg ICAgICByZXR1cm4gY3R4Lk5vZGUNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHBy b2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNzdHJpbmdyZWYxRXhwLg0KPiArICAgIGRlZiB2aXNp dFN0cmluZ3JlZjFFeHAoc2VsZiwgY3R4OiBWZnJTeW50YXhQYXJzZXIuU3RyaW5ncmVmMUV4cENv bnRleHQpOg0KPiArICAgICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gKyAgICAgICAgc2Vs Zi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgUmVmU3RyaW5nSWQgPSBzZWxmLlRyYW5z TnVtKGN0eC5OdW1iZXIoKSkNCj4gKyAgICAgICAgU1IxT2JqID0gSWZyU3RyaW5nUmVmMShMaW5l KQ0KPiArICAgICAgICBzZWxmLlNhdmVPcEhkckNvbmQoU1IxT2JqLkdldEhlYWRlcigpLCAoY3R4 LkV4cEluZm8uRXhwT3BDb3VudCA9PQ0KPiAwKSwgTGluZSkNCj4gKyAgICAgICAgU1IxT2JqLlNl dFN0cmluZ0lkKFJlZlN0cmluZ0lkKQ0KPiArICAgICAgICBjdHguTm9kZS5EYXRhID0gU1IxT2Jq DQo+ICsgICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0KPiArDQo+ICsgICAgICAg IHJldHVybiBjdHguTm9kZQ0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVj ZWQgYnkgVmZyU3ludGF4UGFyc2VyI3B1c2h0aGlzRXhwLg0KPiArICAgIGRlZiB2aXNpdFB1c2h0 aGlzRXhwKHNlbGYsIGN0eDogVmZyU3ludGF4UGFyc2VyLlB1c2h0aGlzRXhwQ29udGV4dCk6DQo+ ICsgICAgICAgIExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hp bGRyZW4oY3R4KQ0KPiArICAgICAgICBUT2JqID0gSWZyVGhpcyhMaW5lKQ0KPiArICAgICAgICBz ZWxmLlNhdmVPcEhkckNvbmQoVE9iai5HZXRIZWFkZXIoKSwgKGN0eC5FeHBJbmZvLkV4cE9wQ291 bnQgPT0gMCksDQo+IExpbmUpDQo+ICsgICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBUT2JqDQo+ICsg ICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0KPiArDQo+ICsgICAgICAgIHJldHVy biBjdHguTm9kZQ0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkg VmZyU3ludGF4UGFyc2VyI3NlY3VyaXR5RXhwLg0KPiArICAgIGRlZiB2aXNpdFNlY3VyaXR5RXhw KHNlbGYsIGN0eDogVmZyU3ludGF4UGFyc2VyLlNlY3VyaXR5RXhwQ29udGV4dCk6DQo+ICsgICAg ICAgIExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4o Y3R4KQ0KPiArICAgICAgICBTT2JqID0gSWZyU2VjdXJpdHkoTGluZSkNCj4gKyAgICAgICAgc2Vs Zi5TYXZlT3BIZHJDb25kKFNPYmouR2V0SGVhZGVyKCksIChjdHguRXhwSW5mby5FeHBPcENvdW50 ID09IDApLA0KPiBMaW5lKQ0KPiArICAgICAgICBTT2JqLlNldFBlcm1pc3Npb25zKGN0eC5ndWlk RGVmaW5pdGlvbigpLkd1aWQpDQo+ICsgICAgICAgIGN0eC5Ob2RlLkRhdGEgPSBTT2JqDQo+ICsg ICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgKz0gMQ0KPiArDQo+ICsgICAgICAgIHJldHVy biBjdHguRXhwSW5mbw0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQg YnkgVmZyU3ludGF4UGFyc2VyI251bWVyaWNWYXJTdG9yZVR5cGUuDQo+ICsgICAgZGVmIHZpc2l0 TnVtZXJpY1ZhclN0b3JlVHlwZShzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5OdW1lcmlj VmFyU3RvcmVUeXBlQ29udGV4dCk6DQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgp DQo+ICsgICAgICAgIGlmIGN0eC5OdW1lcmljU2l6ZU9uZSgpICE9IE5vbmU6DQo+ICsgICAgICAg ICAgICBjdHguVmFyVHlwZSA9IEVGSV9JRlJfTlVNRVJJQ19TSVpFXzENCj4gKyAgICAgICAgaWYg Y3R4Lk51bWVyaWNTaXplVHdvKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5WYXJUeXBl ID0gRUZJX0lGUl9OVU1FUklDX1NJWkVfMg0KPiArICAgICAgICBpZiBjdHguTnVtZXJpY1NpemVG b3VyKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5WYXJUeXBlID0gRUZJX0lGUl9OVU1F UklDX1NJWkVfNA0KPiArICAgICAgICBpZiBjdHguTnVtZXJpY1NpemVFaWdodCgpICE9IE5vbmU6 DQo+ICsgICAgICAgICAgICBjdHguVmFyVHlwZSA9IEVGSV9JRlJfTlVNRVJJQ19TSVpFXzgNCj4g Kw0KPiArICAgICAgICByZXR1cm4gY3R4LlZhclR5cGUNCj4gKw0KPiArICAgICMgVmlzaXQgYSBw YXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNnZXRFeHAuDQo+ICsgICAgZGVm IHZpc2l0R2V0RXhwKHNlbGYsIGN0eDogVmZyU3ludGF4UGFyc2VyLkdldEV4cENvbnRleHQpOg0K PiArICAgICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gKyAgICAgICAgc2VsZi52aXNpdENo aWxkcmVuKGN0eCkNCj4gKyAgICAgICAgaWYgY3R4LkJhc2VJbmZvLlZhclN0b3JlSWQgPT0gMDoN Cj4gKyAgICAgICAgICAgICMgc3VwcG9ydCBEYXRlL1RpbWUgcXVlc3Rpb24NCj4gKyAgICAgICAg ICAgIFZhcklkU3RyID0gY3R4LnZmclN0b3JhZ2VWYXJJZCgpLlZhcklkU3RyDQo+ICsgICAgICAg ICAgICBRSWQsIE1hc2ssIFFUeXBlID0gc2VsZi5WZnJRdWVzdGlvbkRCLkdldFF1ZXN0aW9uSWQo DQo+ICsgICAgICAgICAgICAgICAgTm9uZSwgVmFySWRTdHIsIEVGSV9RVUVTSU9OX1RZUEUuUVVF U1RJT05fTk9STUFMDQo+ICsgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICBpZiAoDQo+ICsg ICAgICAgICAgICAgICAgKFFJZCA9PSBFRklfUVVFU1RJT05fSURfSU5WQUxJRCkNCj4gKyAgICAg ICAgICAgICAgICBvciAoTWFzayA9PSAwKQ0KPiArICAgICAgICAgICAgICAgIG9yIChRVHlwZSA9 PSBFRklfUVVFU0lPTl9UWVBFLlFVRVNUSU9OX05PUk1BTCkNCj4gKyAgICAgICAgICAgICk6DQo+ ICsgICAgICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAgICAg ICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9VTlNVUFBPUlRFRCwNCj4gKyAgICAgICAgICAg ICAgICAgICAgTGluZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgIkdldC9TZXQgb3Bjb2RlIGNh bid0IGdldCB0aGUgZW5vdWdoIHZhcnN0b3JlIGluZm9ybWF0aW9uIiwNCj4gKyAgICAgICAgICAg ICAgICApDQo+ICsgICAgICAgICAgICBpZiBRVHlwZSA9PSBFRklfUVVFU0lPTl9UWVBFLlFVRVNU SU9OX0RBVEU6DQo+ICsgICAgICAgICAgICAgICAgY3R4LkJhc2VJbmZvLlZhclR5cGUgPSBFRklf SUZSX1RZUEVfREFURQ0KPiArICAgICAgICAgICAgZWxpZiBRVHlwZSA9PSBFRklfUVVFU0lPTl9U WVBFLlFVRVNUSU9OX1RJTUU6DQo+ICsgICAgICAgICAgICAgICAgY3R4LkJhc2VJbmZvLlZhclR5 cGUgPSBFRklfSUZSX1RZUEVfVElNRQ0KPiArDQo+ICsgICAgICAgICAgICBpZiBNYXNrID09IERB VEVfWUVBUl9CSVRNQVNLOg0KPiArICAgICAgICAgICAgICAgIGN0eC5CYXNlSW5mby5WYXJPZmZz ZXQgPSAwDQo+ICsgICAgICAgICAgICBlbGlmIE1hc2sgPT0gREFURV9EQVlfQklUTUFTSzoNCj4g KyAgICAgICAgICAgICAgICBjdHguQmFzZUluZm8uVmFyT2Zmc2V0ID0gMw0KPiArICAgICAgICAg ICAgZWxpZiBNYXNrID09IFRJTUVfSE9VUl9CSVRNQVNLOg0KPiArICAgICAgICAgICAgICAgIGN0 eC5CYXNlSW5mby5WYXJPZmZzZXQgPSAwDQo+ICsgICAgICAgICAgICBlbGlmIE1hc2sgPT0gVElN RV9NSU5VVEVfQklUTUFTSzoNCj4gKyAgICAgICAgICAgICAgICBjdHguQmFzZUluZm8uVmFyT2Zm c2V0ID0gMQ0KPiArICAgICAgICAgICAgZWxpZiBNYXNrID09IFRJTUVfU0VDT05EX0JJVE1BU0s6 DQo+ICsgICAgICAgICAgICAgICAgY3R4LkJhc2VJbmZvLlZhck9mZnNldCA9IDINCj4gKyAgICAg ICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5FcnJvckhhbmRsZXIoDQo+ICsg ICAgICAgICAgICAgICAgICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9VTlNVUFBPUlRFRCwN Cj4gKyAgICAgICAgICAgICAgICAgICAgTGluZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgIkdl dC9TZXQgb3Bjb2RlIGNhbid0IGdldCB0aGUgZW5vdWdoIHZhcnN0b3JlIGluZm9ybWF0aW9uIiwN Cj4gKyAgICAgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAg ICAgIFZhclR5cGUgPSBFRklfSUZSX1RZUEVfVU5ERUZJTkVEDQo+ICsgICAgICAgICAgICBpZiBj dHguRkxBR1MoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgICAgIFZhclR5cGUgPSBjdHgubnVt ZXJpY1ZhclN0b3JlVHlwZSgpLlZhclR5cGUNCj4gKw0KPiArICAgICAgICAgICAgaWYgKA0KPiAr ICAgICAgICAgICAgICAgIGdWZnJEYXRhU3RvcmFnZS5HZXRWYXJTdG9yZVR5cGUoY3R4LkJhc2VJ bmZvLlZhclN0b3JlSWQpDQo+ICsgICAgICAgICAgICAgICAgPT0gRUZJX1ZGUl9WQVJTVE9SRV9U WVBFLkVGSV9WRlJfVkFSU1RPUkVfTkFNRQ0KPiArICAgICAgICAgICAgKSBhbmQgKFZhclR5cGUg PT0gRUZJX0lGUl9UWVBFX1VOREVGSU5FRCk6DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5FcnJv ckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAgICAgICAgIFZmclJldHVybkNvZGUuVkZSX1JFVFVS Tl9VTlNVUFBPUlRFRCwNCj4gKyAgICAgICAgICAgICAgICAgICAgTGluZSwNCj4gKyAgICAgICAg ICAgICAgICAgICAgIkdldC9TZXQgb3Bjb2RlIGRvbid0IHN1cHBvcnQgbmFtZSBzdHJpbmciLA0K PiArICAgICAgICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICAgICAgaWYgVmFyVHlwZSAhPSBF RklfSUZSX1RZUEVfVU5ERUZJTkVEOg0KPiArICAgICAgICAgICAgICAgIGN0eC5CYXNlSW5mby5W YXJUeXBlID0gVmFyVHlwZQ0KPiArICAgICAgICAgICAgICAgIFNpemUsIFJldHVybkNvZGUgPQ0K PiBnVmZyVmFyRGF0YVR5cGVEQi5HZXREYXRhVHlwZVNpemVCeURhdGFUeXBlKGN0eC5CYXNlSW5m by5WYXJUeXBlKQ0KPiArICAgICAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKFJldHVybkNv ZGUsIExpbmUsICJHZXQvU2V0IG9wY29kZSBjYW4ndCBnZXQgdmFyDQo+IHR5cGUgc2l6ZSIpDQo+ ICsgICAgICAgICAgICAgICAgY3R4LkJhc2VJbmZvLlZhclRvdGFsU2l6ZSA9IFNpemUNCj4gKw0K PiArICAgICAgICAgICAgU2l6ZSwgUmV0dXJuQ29kZSA9DQo+IGdWZnJWYXJEYXRhVHlwZURCLkdl dERhdGFUeXBlU2l6ZUJ5RGF0YVR5cGUoY3R4LkJhc2VJbmZvLlZhclR5cGUpDQo+ICsgICAgICAg ICAgICBzZWxmLkVycm9ySGFuZGxlcihSZXR1cm5Db2RlLCBMaW5lLCAiR2V0L1NldCBvcGNvZGUg Y2FuJ3QgZ2V0IHZhcg0KPiB0eXBlIHNpemUiKQ0KPiArDQo+ICsgICAgICAgICAgICBpZiBTaXpl ICE9IGN0eC5CYXNlSW5mby5WYXJUb3RhbFNpemU6DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5F cnJvckhhbmRsZXIoDQo+ICsgICAgICAgICAgICAgICAgICAgIFZmclJldHVybkNvZGUuVkZSX1JF VFVSTl9VTlNVUFBPUlRFRCwNCj4gKyAgICAgICAgICAgICAgICAgICAgTGluZSwNCj4gKyAgICAg ICAgICAgICAgICAgICAgIkdldC9TZXQgb3Bjb2RlIGRvbid0IHN1cHBvcnQgZGF0YSBhcnJheSIs DQo+ICsgICAgICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgIEdPYmogPSBJZnJHZXQoTGlu ZSkNCj4gKyAgICAgICAgc2VsZi5TYXZlT3BIZHJDb25kKEdPYmouR2V0SGVhZGVyKCksIChjdHgu RXhwSW5mby5FeHBPcENvdW50ID09IDApLA0KPiBMaW5lKQ0KPiArICAgICAgICBHT2JqLlNldFZh ckluZm8oY3R4LkJhc2VJbmZvKQ0KPiArICAgICAgICBjdHguTm9kZS5EYXRhID0gR09iag0KPiAr ICAgICAgICBjdHguRXhwSW5mby5FeHBPcENvdW50ICs9IDENCj4gKw0KPiArICAgICAgICByZXR1 cm4gY3R4Lk5vZGUNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5 IFZmclN5bnRheFBhcnNlciN2ZnJFeHByZXNzaW9uQ29uc3RhbnQuDQo+ICsgICAgZGVmIHZpc2l0 VmZyRXhwcmVzc2lvbkNvbnN0YW50KHNlbGYsIGN0eDoNCj4gVmZyU3ludGF4UGFyc2VyLlZmckV4 cHJlc3Npb25Db25zdGFudENvbnRleHQpOg0KPiArICAgICAgICBMaW5lID0gY3R4LnN0YXJ0Lmxp bmUNCj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgaWYgY3R4 LlRydWVTeW1ib2woKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgVE9iaiA9IElmclRydWUoTGlu ZSkNCj4gKyAgICAgICAgICAgIHNlbGYuU2F2ZU9wSGRyQ29uZChUT2JqLkdldEhlYWRlcigpLCAo Y3R4LkV4cEluZm8uRXhwT3BDb3VudCA9PQ0KPiAwKSwgTGluZSkNCj4gKyAgICAgICAgICAgIGN0 eC5Ob2RlID0gSWZyVHJlZU5vZGUoRUZJX0lGUl9UUlVFX09QLCBUT2JqKQ0KPiArICAgICAgICAg ICAgY3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAxDQo+ICsNCj4gKyAgICAgICAgaWYgY3R4LkZh bHNlU3ltYm9sKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIEZPYmogPSBJZnJGYWxzZShMaW5l KQ0KPiArICAgICAgICAgICAgc2VsZi5TYXZlT3BIZHJDb25kKEZPYmouR2V0SGVhZGVyKCksIChj dHguRXhwSW5mby5FeHBPcENvdW50ID09DQo+IDApLCBMaW5lKQ0KPiArICAgICAgICAgICAgY3R4 Lk5vZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX0ZBTFNFX09QLCBGT2JqKQ0KPiArICAgICAgICAg ICAgY3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAxDQo+ICsNCj4gKyAgICAgICAgaWYgY3R4Lk9u ZSgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBPT2JqID0gSWZyT25lKExpbmUpDQo+ICsgICAg ICAgICAgICBzZWxmLlNhdmVPcEhkckNvbmQoT09iai5HZXRIZWFkZXIoKSwgKGN0eC5FeHBJbmZv LkV4cE9wQ291bnQgPT0NCj4gMCksIExpbmUpDQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IElm clRyZWVOb2RlKEVGSV9JRlJfT05FX09QLCBPT2JqKQ0KPiArICAgICAgICAgICAgY3R4LkV4cElu Zm8uRXhwT3BDb3VudCArPSAxDQo+ICsNCj4gKyAgICAgICAgaWYgY3R4Lk9uZXMoKSAhPSBOb25l Og0KPiArICAgICAgICAgICAgT09iaiA9IElmck9uZXMoTGluZSkNCj4gKyAgICAgICAgICAgIHNl bGYuU2F2ZU9wSGRyQ29uZChPT2JqLkdldEhlYWRlcigpLCAoY3R4LkV4cEluZm8uRXhwT3BDb3Vu dCA9PQ0KPiAwKSwgTGluZSkNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlID0gSWZyVHJlZU5vZGUo RUZJX0lGUl9PTkVTX09QLCBPT2JqKQ0KPiArICAgICAgICAgICAgY3R4LkV4cEluZm8uRXhwT3BD b3VudCArPSAxDQo+ICsNCj4gKyAgICAgICAgaWYgY3R4Llplcm8oKSAhPSBOb25lOg0KPiArICAg ICAgICAgICAgWk9iaiA9IElmclplcm8oTGluZSkNCj4gKyAgICAgICAgICAgIHNlbGYuU2F2ZU9w SGRyQ29uZChaT2JqLkdldEhlYWRlcigpLCAoY3R4LkV4cEluZm8uRXhwT3BDb3VudCA9PQ0KPiAw KSwgTGluZSkNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlID0gSWZyVHJlZU5vZGUoRUZJX0lGUl9a RVJPX09QLCBaT2JqKQ0KPiArICAgICAgICAgICAgY3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAx DQo+ICsNCj4gKyAgICAgICAgaWYgY3R4LlVuZGVmaW5lZCgpICE9IE5vbmU6DQo+ICsgICAgICAg ICAgICBVT2JqID0gSWZyVW5kZWZpbmVkKExpbmUpDQo+ICsgICAgICAgICAgICBzZWxmLlNhdmVP cEhkckNvbmQoVU9iai5HZXRIZWFkZXIoKSwgKGN0eC5FeHBJbmZvLkV4cE9wQ291bnQgPT0NCj4g MCksIExpbmUpDQo+ICsgICAgICAgICAgICBjdHguTm9kZSA9IElmclRyZWVOb2RlKEVGSV9JRlJf VU5ERUZJTkVEX09QLCBVT2JqKQ0KPiArICAgICAgICAgICAgY3R4LkV4cEluZm8uRXhwT3BDb3Vu dCArPSAxDQo+ICsNCj4gKyAgICAgICAgaWYgY3R4LlZlcnNpb24oKSAhPSBOb25lOg0KPiArICAg ICAgICAgICAgVk9iaiA9IElmclZlcnNpb24oTGluZSkNCj4gKyAgICAgICAgICAgIHNlbGYuU2F2 ZU9wSGRyQ29uZChWT2JqLkdldEhlYWRlcigpLCAoY3R4LkV4cEluZm8uRXhwT3BDb3VudCA9PQ0K PiAwKSwgTGluZSkNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlID0gSWZyVHJlZU5vZGUoRUZJX0lG Ul9WRVJTSU9OX09QLCBWT2JqKQ0KPiArICAgICAgICAgICAgY3R4LkV4cEluZm8uRXhwT3BDb3Vu dCArPSAxDQo+ICsNCj4gKyAgICAgICAgaWYgY3R4Lk51bWJlcigpICE9IE5vbmU6DQo+ICsgICAg ICAgICAgICBVNjRPYmogPSBJZnJVaW50NjQoTGluZSkNCj4gKyAgICAgICAgICAgIFU2NE9iai5T ZXRWYWx1ZShzZWxmLlRyYW5zTnVtKGN0eC5OdW1iZXIoKSkpDQo+ICsgICAgICAgICAgICBzZWxm LlNhdmVPcEhkckNvbmQoVTY0T2JqLkdldEhlYWRlcigpLCAoY3R4LkV4cEluZm8uRXhwT3BDb3Vu dA0KPiA9PSAwKSwgTGluZSkNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlID0gSWZyVHJlZU5vZGUo RUZJX0lGUl9VSU5UNjRfT1AsIFU2NE9iaikNCj4gKyAgICAgICAgICAgIGN0eC5FeHBJbmZvLkV4 cE9wQ291bnQgKz0gMQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZQ0KPiArDQo+ICsg ICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3ZmckV4 cHJlc3Npb25VbmFyeU9wLg0KPiArICAgIGRlZiB2aXNpdFZmckV4cHJlc3Npb25VbmFyeU9wKHNl bGYsIGN0eDoNCj4gVmZyU3ludGF4UGFyc2VyLlZmckV4cHJlc3Npb25VbmFyeU9wQ29udGV4dCk6 DQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsgICAgICAgIGlmIGN0eC5s ZW5ndGhFeHAoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGVzID0gY3R4Lmxlbmd0 aEV4cCgpLk5vZGVzDQo+ICsgICAgICAgIGlmIGN0eC5iaXR3aXNlbm90RXhwKCkgIT0gTm9uZToN Cj4gKyAgICAgICAgICAgIGN0eC5Ob2RlcyA9IGN0eC5iaXR3aXNlbm90RXhwKCkuTm9kZXMNCj4g KyAgICAgICAgaWYgY3R4LnF1ZXN0aW9uMjNyZWZFeHAoKSAhPSBOb25lOg0KPiArICAgICAgICAg ICAgY3R4Lk5vZGVzID0gY3R4LnF1ZXN0aW9uMjNyZWZFeHAoKS5Ob2Rlcw0KPiArICAgICAgICBp ZiBjdHguc3RyaW5ncmVmMkV4cCgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9kZXMg PSBjdHguc3RyaW5ncmVmMkV4cCgpLk5vZGVzDQo+ICsgICAgICAgIGlmIGN0eC50b2Jvb2xFeHAo KSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGVzID0gY3R4LnRvYm9vbEV4cCgpLk5v ZGVzDQo+ICsgICAgICAgIGlmIGN0eC50b3N0cmluZ0V4cCgpICE9IE5vbmU6DQo+ICsgICAgICAg ICAgICBjdHguTm9kZXMgPSBjdHgudG9zdHJpbmdFeHAoKS5Ob2Rlcw0KPiArICAgICAgICBpZiBj dHgudW5pbnRFeHAoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4Lk5vZGVzID0gY3R4LnVu aW50RXhwKCkuTm9kZXMNCj4gKyAgICAgICAgaWYgY3R4LnRvdXBwZXJFeHAoKSAhPSBOb25lOg0K PiArICAgICAgICAgICAgY3R4Lk5vZGVzID0gY3R4LnRvdXBwZXJFeHAoKS5Ob2Rlcw0KPiArICAg ICAgICBpZiBjdHgudG9sd2VyRXhwKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5Ob2Rl cyA9IGN0eC50b2x3ZXJFeHAoKS5Ob2Rlcw0KPiArICAgICAgICBpZiBjdHguc2V0RXhwKCkgIT0g Tm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5Ob2RlcyA9IGN0eC5zZXRFeHAoKS5Ob2Rlcw0KPiAr ICAgICAgICByZXR1cm4gY3R4Lk5vZGVzDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEgcGFyc2UgdHJl ZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjbGVuZ3RoRXhwLg0KPiArICAgIGRlZiB2aXNp dExlbmd0aEV4cChzZWxmLCBjdHg6IFZmclN5bnRheFBhcnNlci5MZW5ndGhFeHBDb250ZXh0KToN Cj4gKyAgICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5lDQo+ICsgICAgICAgIHNlbGYudmlzaXRD aGlsZHJlbihjdHgpDQo+ICsgICAgICAgIExPYmogPSBJZnJMZW5ndGgoTGluZSkNCj4gKyAgICAg ICAgTm9kZSA9IElmclRyZWVOb2RlKEVGSV9JRlJfTEVOR1RIX09QLCBMT2JqLA0KPiBnRm9ybVBr Zy5TdHJ1Y3RUb1N0cmVhbShMT2JqLkdldEluZm8oKSkpDQo+ICsgICAgICAgIGN0eC5Ob2Rlcy5h cHBlbmQoTm9kZSkNCj4gKyAgICAgICAgY3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAxDQo+ICsg ICAgICAgIHJldHVybiBjdHguTm9kZXMNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVl IHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNiaXR3aXNlbm90RXhwLg0KPiArICAgIGRlZiB2 aXNpdEJpdHdpc2Vub3RFeHAoc2VsZiwgY3R4OiBWZnJTeW50YXhQYXJzZXIuQml0d2lzZW5vdEV4 cENvbnRleHQpOg0KPiArICAgICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gKyAgICAgICAg c2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgQldOT2JqID0gSWZyQml0V2lzZU5v dChMaW5lKQ0KPiArICAgICAgICBOb2RlID0gSWZyVHJlZU5vZGUoDQo+ICsgICAgICAgICAgICBF RklfSUZSX0JJVFdJU0VfTk9UX09QLCBCV05PYmosDQo+IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFt KEJXTk9iai5HZXRJbmZvKCkpDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgY3R4Lk5vZGVzLmFw cGVuZChOb2RlKQ0KPiArICAgICAgICBjdHguRXhwSW5mby5FeHBPcENvdW50ICs9IDENCj4gKyAg ICAgICAgcmV0dXJuIGN0eC5Ob2Rlcw0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUg cHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3F1ZXN0aW9uMjNyZWZFeHAuDQo+ICsgICAgZGVm IHZpc2l0UXVlc3Rpb24yM3JlZkV4cChzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5RdWVz dGlvbjIzcmVmRXhwQ29udGV4dCk6DQo+ICsgICAgICAgIExpbmUgPSBjdHguc3RhcnQubGluZQ0K PiArICAgICAgICBUeXBlID0gMHgxDQo+ICsgICAgICAgIERldmljZVBhdGggPSBFRklfU1RSSU5H X0lEX0lOVkFMSUQNCj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAg ICAgaWYgY3R4LkRldmljZVBhdGgoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgVHlwZSA9IDB4 Mg0KPiArICAgICAgICAgICAgRGV2aWNlUGF0aCA9IHNlbGYuVHJhbnNOdW0oY3R4Lk51bWJlcigp KQ0KPiArDQo+ICsgICAgICAgIGlmIGN0eC5VdWlkKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAg IFR5cGUgPSAweDMNCj4gKw0KPiArICAgICAgICBpZiBUeXBlID09IDB4MToNCj4gKyAgICAgICAg ICAgIFFSMk9iaiA9IElmclF1ZXN0aW9uUmVmMihMaW5lKQ0KPiArICAgICAgICAgICAgc2VsZi5T YXZlT3BIZHJDb25kKFFSMk9iai5HZXRIZWFkZXIoKSwgKGN0eC5FeHBJbmZvLkV4cE9wQ291bnQN Cj4gPT0gMCksIExpbmUpDQo+ICsgICAgICAgICAgICBOb2RlID0gSWZyVHJlZU5vZGUoRUZJX0lG Ul9RVUVTVElPTl9SRUYyX09QLCBRUjJPYmopDQo+ICsgICAgICAgICAgICBjdHguTm9kZXMuYXBw ZW5kKE5vZGUpDQo+ICsNCj4gKyAgICAgICAgaWYgVHlwZSA9PSAweDI6DQo+ICsgICAgICAgICAg ICBRUjNfMk9iaiA9IElmclF1ZXN0aW9uUmVmM18yKExpbmUpDQo+ICsgICAgICAgICAgICBzZWxm LlNhdmVPcEhkckNvbmQoUVIzXzJPYmouR2V0SGVhZGVyKCksDQo+IChjdHguRXhwSW5mby5FeHBP cENvdW50ID09IDApLCBMaW5lKQ0KPiArICAgICAgICAgICAgUVIzXzJPYmouU2V0RGV2aWNlUGF0 aChEZXZpY2VQYXRoKQ0KPiArICAgICAgICAgICAgTm9kZSA9IElmclRyZWVOb2RlKEVGSV9JRlJf UVVFU1RJT05fUkVGM19PUCwgUVIzXzJPYmopDQo+ICsgICAgICAgICAgICBjdHguTm9kZXMuYXBw ZW5kKE5vZGUpDQo+ICsNCj4gKyAgICAgICAgaWYgVHlwZSA9PSAweDM6DQo+ICsgICAgICAgICAg ICBRUjNfM09iaiA9IElmclF1ZXN0aW9uUmVmM18zKExpbmUpDQo+ICsgICAgICAgICAgICBzZWxm LlNhdmVPcEhkckNvbmQoUVIzXzNPYmouR2V0SGVhZGVyKCksDQo+IChjdHguRXhwSW5mby5FeHBP cENvdW50ID09IDApLCBMaW5lKQ0KPiArICAgICAgICAgICAgUVIzXzNPYmouU2V0RGV2aWNlUGF0 aChEZXZpY2VQYXRoKQ0KPiArICAgICAgICAgICAgUVIzXzNPYmouU2V0R3VpZChjdHguZ3VpZERl ZmluaXRpb24oKS5HdWlkKQ0KPiArICAgICAgICAgICAgTm9kZSA9IElmclRyZWVOb2RlKEVGSV9J RlJfUVVFU1RJT05fUkVGM19PUCwgUVIzXzNPYmopDQo+ICsgICAgICAgICAgICBjdHguTm9kZXMu YXBwZW5kKE5vZGUpDQo+ICsNCj4gKyAgICAgICAgY3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAx DQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIGN0eC5Ob2Rlcw0KPiArDQo+ICsgICAgIyBWaXNpdCBh IHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3N0cmluZ3JlZjJFeHAuDQo+ ICsgICAgZGVmIHZpc2l0U3RyaW5ncmVmMkV4cChzZWxmLCBjdHg6IFZmclN5bnRheFBhcnNlci5T dHJpbmdyZWYyRXhwQ29udGV4dCk6DQo+ICsgICAgICAgIExpbmUgPSBjdHguc3RhcnQubGluZQ0K PiArICAgICAgICBzZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAgICBTUjJPYmogPSBJ ZnJTdHJpbmdSZWYyKExpbmUpDQo+ICsgICAgICAgIE5vZGUgPSBJZnJUcmVlTm9kZSgNCj4gKyAg ICAgICAgICAgIEVGSV9JRlJfU1RSSU5HX1JFRjJfT1AsIFNSMk9iaiwNCj4gZ0Zvcm1Qa2cuU3Ry dWN0VG9TdHJlYW0oU1IyT2JqLkdldEluZm8oKSkNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICBj dHguTm9kZXMuYXBwZW5kKE5vZGUpDQo+ICsgICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQg Kz0gMQ0KPiArICAgICAgICByZXR1cm4gY3R4Lk5vZGVzDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEg cGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdG9ib29sRXhwLg0KPiArICAg IGRlZiB2aXNpdFRvYm9vbEV4cChzZWxmLCBjdHg6IFZmclN5bnRheFBhcnNlci5Ub2Jvb2xFeHBD b250ZXh0KToNCj4gKyAgICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5lDQo+ICsgICAgICAgIHNl bGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsgICAgICAgIFRCT2JqID0gSWZyVG9Cb29sZWFuKExp bmUpDQo+ICsgICAgICAgIE5vZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX1RPX0JPT0xFQU5fT1As IFRCT2JqLA0KPiBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShUQk9iai5HZXRJbmZvKCkpKQ0KPiAr ICAgICAgICBjdHguTm9kZXMuYXBwZW5kKE5vZGUpDQo+ICsgICAgICAgIGN0eC5FeHBJbmZvLkV4 cE9wQ291bnQgKz0gMQ0KPiArICAgICAgICByZXR1cm4gY3R4Lk5vZGVzDQo+ICsNCj4gKyAgICAj IFZpc2l0IGEgcGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjdG9zdHJpbmdF eHAuDQo+ICsgICAgZGVmIHZpc2l0VG9zdHJpbmdFeHAoc2VsZiwgY3R4OiBWZnJTeW50YXhQYXJz ZXIuVG9zdHJpbmdFeHBDb250ZXh0KToNCj4gKyAgICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5l DQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsgICAgICAgIFRTT2JqID0g SWZyVG9TdHJpbmcoTGluZSkNCj4gKyAgICAgICAgRm10ID0gc2VsZi5UcmFuc051bShjdHguTnVt YmVyKCkpDQo+ICsgICAgICAgIFRTT2JqLlNldEZvcm1hdChGbXQpDQo+ICsgICAgICAgIE5vZGUg PSBJZnJUcmVlTm9kZShFRklfSUZSX1RPX1NUUklOR19PUCwgVFNPYmosDQo+IGdGb3JtUGtnLlN0 cnVjdFRvU3RyZWFtKFRTT2JqLkdldEluZm8oKSkpDQo+ICsgICAgICAgIGN0eC5Ob2Rlcy5hcHBl bmQoTm9kZSkNCj4gKyAgICAgICAgY3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAxDQo+ICsgICAg ICAgIHJldHVybiBjdHguTm9kZXMNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHBy b2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN1bmludEV4cC4NCj4gKyAgICBkZWYgdmlzaXRVbmlu dEV4cChzZWxmLCBjdHg6IFZmclN5bnRheFBhcnNlci5VbmludEV4cENvbnRleHQpOg0KPiArICAg ICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVu KGN0eCkNCj4gKyAgICAgICAgVFVPYmogPSBJZnJUb1VpbnQoTGluZSkNCj4gKyAgICAgICAgTm9k ZSA9IElmclRyZWVOb2RlKEVGSV9JRlJfVE9fVUlOVF9PUCwgVFVPYmosDQo+IGdGb3JtUGtnLlN0 cnVjdFRvU3RyZWFtKFRVT2JqLkdldEluZm8oKSkpDQo+ICsgICAgICAgIGN0eC5Ob2Rlcy5hcHBl bmQoTm9kZSkNCj4gKyAgICAgICAgY3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAxDQo+ICsgICAg ICAgIHJldHVybiBjdHguTm9kZXMNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHBy b2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN0b3VwcGVyRXhwLg0KPiArICAgIGRlZiB2aXNpdFRv dXBwZXJFeHAoc2VsZiwgY3R4OiBWZnJTeW50YXhQYXJzZXIuVG91cHBlckV4cENvbnRleHQpOg0K PiArICAgICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gKyAgICAgICAgc2VsZi52aXNpdENo aWxkcmVuKGN0eCkNCj4gKyAgICAgICAgVFVPYmogPSBJZnJUb1VwcGVyKExpbmUpDQo+ICsgICAg ICAgIE5vZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX1RPX1VQUEVSX09QLCBUVU9iaiwNCj4gZ0Zv cm1Qa2cuU3RydWN0VG9TdHJlYW0oVFVPYmouR2V0SW5mbygpKSkNCj4gKyAgICAgICAgY3R4Lk5v ZGVzLmFwcGVuZChOb2RlKQ0KPiArICAgICAgICBjdHguRXhwSW5mby5FeHBPcENvdW50ICs9IDEN Cj4gKyAgICAgICAgcmV0dXJuIGN0eC5Ob2Rlcw0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNl IHRyZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3RvbHdlckV4cC4NCj4gKyAgICBkZWYg dmlzaXRUb2x3ZXJFeHAoc2VsZiwgY3R4OiBWZnJTeW50YXhQYXJzZXIuVG9sd2VyRXhwQ29udGV4 dCk6DQo+ICsgICAgICAgIExpbmUgPSBjdHguc3RhcnQubGluZQ0KPiArICAgICAgICBzZWxmLnZp c2l0Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAgICBUTE9iaiA9IElmclRvTG93ZXIoTGluZSkNCj4g KyAgICAgICAgTm9kZSA9IElmclRyZWVOb2RlKEVGSV9JRlJfVE9fTE9XRVJfT1AsIFRMT2JqLA0K PiBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShUTE9iai5HZXRJbmZvKCkpKQ0KPiArICAgICAgICBj dHguTm9kZXMuYXBwZW5kKE5vZGUpDQo+ICsgICAgICAgIGN0eC5FeHBJbmZvLkV4cE9wQ291bnQg Kz0gMQ0KPiArICAgICAgICByZXR1cm4gY3R4Lk5vZGVzDQo+ICsNCj4gKyAgICAjIFZpc2l0IGEg cGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjc2V0RXhwLg0KPiArICAgIGRl ZiB2aXNpdFNldEV4cChzZWxmLCBjdHg6IFZmclN5bnRheFBhcnNlci5TZXRFeHBDb250ZXh0KToN Cj4gKyAgICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5lDQo+ICsgICAgICAgIHNlbGYudmlzaXRD aGlsZHJlbihjdHgpDQo+ICsgICAgICAgIGlmIGN0eC5CYXNlSW5mby5WYXJTdG9yZUlkID09IDA6 DQo+ICsgICAgICAgICAgICAjIHN1cHBvcnQgRGF0ZS9UaW1lIHF1ZXN0aW9uDQo+ICsgICAgICAg ICAgICBWYXJJZFN0ciA9IGN0eC52ZnJTdG9yYWdlVmFySWQoKS5WYXJJZFN0cg0KPiArICAgICAg ICAgICAgUUlkLCBNYXNrLCBRVHlwZSA9IHNlbGYuVmZyUXVlc3Rpb25EQi5HZXRRdWVzdGlvbklk KA0KPiArICAgICAgICAgICAgICAgIE5vbmUsIFZhcklkU3RyLCBFRklfUVVFU0lPTl9UWVBFLlFV RVNUSU9OX05PUk1BTA0KPiArICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgaWYgKA0KPiAr ICAgICAgICAgICAgICAgIChRSWQgPT0gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQpDQo+ICsgICAg ICAgICAgICAgICAgb3IgKE1hc2sgPT0gMCkNCj4gKyAgICAgICAgICAgICAgICBvciAoUVR5cGUg PT0gRUZJX1FVRVNJT05fVFlQRS5RVUVTVElPTl9OT1JNQUwpDQo+ICsgICAgICAgICAgICApOg0K PiArICAgICAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKA0KPiArICAgICAgICAgICAgICAg ICAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fVU5TVVBQT1JURUQsDQo+ICsgICAgICAgICAg ICAgICAgICAgIExpbmUsDQo+ICsgICAgICAgICAgICAgICAgICAgICJHZXQvU2V0IG9wY29kZSBj YW4ndCBnZXQgdGhlIGVub3VnaCB2YXJzdG9yZSBpbmZvcm1hdGlvbiIsDQo+ICsgICAgICAgICAg ICAgICAgKQ0KPiArICAgICAgICAgICAgaWYgUVR5cGUgPT0gRUZJX1FVRVNJT05fVFlQRS5RVUVT VElPTl9EQVRFOg0KPiArICAgICAgICAgICAgICAgIGN0eC5CYXNlSW5mby5WYXJUeXBlID0gRUZJ X0lGUl9UWVBFX0RBVEUNCj4gKyAgICAgICAgICAgIGVsaWYgUVR5cGUgPT0gRUZJX1FVRVNJT05f VFlQRS5RVUVTVElPTl9USU1FOg0KPiArICAgICAgICAgICAgICAgIGN0eC5CYXNlSW5mby5WYXJU eXBlID0gRUZJX0lGUl9UWVBFX1RJTUUNCj4gKw0KPiArICAgICAgICAgICAgaWYgTWFzayA9PSBE QVRFX1lFQVJfQklUTUFTSzoNCj4gKyAgICAgICAgICAgICAgICBjdHguQmFzZUluZm8uVmFyT2Zm c2V0ID0gMA0KPiArICAgICAgICAgICAgZWxpZiBNYXNrID09IERBVEVfREFZX0JJVE1BU0s6DQo+ ICsgICAgICAgICAgICAgICAgY3R4LkJhc2VJbmZvLlZhck9mZnNldCA9IDMNCj4gKyAgICAgICAg ICAgIGVsaWYgTWFzayA9PSBUSU1FX0hPVVJfQklUTUFTSzoNCj4gKyAgICAgICAgICAgICAgICBj dHguQmFzZUluZm8uVmFyT2Zmc2V0ID0gMA0KPiArICAgICAgICAgICAgZWxpZiBNYXNrID09IFRJ TUVfTUlOVVRFX0JJVE1BU0s6DQo+ICsgICAgICAgICAgICAgICAgY3R4LkJhc2VJbmZvLlZhck9m ZnNldCA9IDENCj4gKyAgICAgICAgICAgIGVsaWYgTWFzayA9PSBUSU1FX1NFQ09ORF9CSVRNQVNL Og0KPiArICAgICAgICAgICAgICAgIGN0eC5CYXNlSW5mby5WYXJPZmZzZXQgPSAyDQo+ICsgICAg ICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgIHNlbGYuRXJyb3JIYW5kbGVyKA0KPiAr ICAgICAgICAgICAgICAgICAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fVU5TVVBQT1JURUQs DQo+ICsgICAgICAgICAgICAgICAgICAgIExpbmUsDQo+ICsgICAgICAgICAgICAgICAgICAgICJH ZXQvU2V0IG9wY29kZSBjYW4ndCBnZXQgdGhlIGVub3VnaCB2YXJzdG9yZSBpbmZvcm1hdGlvbiIs DQo+ICsgICAgICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAg ICAgICBWYXJUeXBlID0gRUZJX0lGUl9UWVBFX1VOREVGSU5FRA0KPiArICAgICAgICAgICAgaWYg Y3R4LkZMQUdTKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgICAgICBWYXJUeXBlID0gY3R4Lm51 bWVyaWNWYXJTdG9yZVR5cGUoKS5WYXJUeXBlDQo+ICsNCj4gKyAgICAgICAgICAgIGlmICgNCj4g KyAgICAgICAgICAgICAgICBnVmZyRGF0YVN0b3JhZ2UuR2V0VmFyU3RvcmVUeXBlKGN0eC5CYXNl SW5mby5WYXJTdG9yZUlkKQ0KPiArICAgICAgICAgICAgICAgID09IEVGSV9WRlJfVkFSU1RPUkVf VFlQRS5FRklfVkZSX1ZBUlNUT1JFX05BTUUNCj4gKyAgICAgICAgICAgICkgYW5kIChWYXJUeXBl ID09IEVGSV9JRlJfVFlQRV9VTkRFRklORUQpOg0KPiArICAgICAgICAgICAgICAgIHNlbGYuRXJy b3JIYW5kbGVyKA0KPiArICAgICAgICAgICAgICAgICAgICBWZnJSZXR1cm5Db2RlLlZGUl9SRVRV Uk5fVU5TVVBQT1JURUQsDQo+ICsgICAgICAgICAgICAgICAgICAgIExpbmUsDQo+ICsgICAgICAg ICAgICAgICAgICAgICJHZXQvU2V0IG9wY29kZSBkb24ndCBzdXBwb3J0IG5hbWUgc3RyaW5nIiwN Cj4gKyAgICAgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgICAgIGlmIFZhclR5cGUgIT0g RUZJX0lGUl9UWVBFX1VOREVGSU5FRDoNCj4gKyAgICAgICAgICAgICAgICBjdHguQmFzZUluZm8u VmFyVHlwZSA9IFZhclR5cGUNCj4gKyAgICAgICAgICAgICAgICBTaXplLCBSZXR1cm5Db2RlID0N Cj4gZ1ZmclZhckRhdGFUeXBlREIuR2V0RGF0YVR5cGVTaXplQnlEYXRhVHlwZShjdHguQmFzZUlu Zm8uVmFyVHlwZSkNCj4gKyAgICAgICAgICAgICAgICBzZWxmLkVycm9ySGFuZGxlcihSZXR1cm5D b2RlLCBMaW5lLCAiR2V0L1NldCBvcGNvZGUgY2FuJ3QgZ2V0IHZhcg0KPiB0eXBlIHNpemUiKQ0K PiArICAgICAgICAgICAgICAgIGN0eC5CYXNlSW5mby5WYXJUb3RhbFNpemUgPSBTaXplDQo+ICsN Cj4gKyAgICAgICAgICAgIFNpemUsIFJldHVybkNvZGUgPQ0KPiBnVmZyVmFyRGF0YVR5cGVEQi5H ZXREYXRhVHlwZVNpemVCeURhdGFUeXBlKGN0eC5CYXNlSW5mby5WYXJUeXBlKQ0KPiArICAgICAg ICAgICAgc2VsZi5FcnJvckhhbmRsZXIoUmV0dXJuQ29kZSwgTGluZSwgIkdldC9TZXQgb3Bjb2Rl IGNhbid0IGdldCB2YXINCj4gdHlwZSBzaXplIikNCj4gKw0KPiArICAgICAgICAgICAgaWYgU2l6 ZSAhPSBjdHguQmFzZUluZm8uVmFyVG90YWxTaXplOg0KPiArICAgICAgICAgICAgICAgIHNlbGYu RXJyb3JIYW5kbGVyKA0KPiArICAgICAgICAgICAgICAgICAgICBWZnJSZXR1cm5Db2RlLlZGUl9S RVRVUk5fVU5TVVBQT1JURUQsDQo+ICsgICAgICAgICAgICAgICAgICAgIExpbmUsDQo+ICsgICAg ICAgICAgICAgICAgICAgICJHZXQvU2V0IG9wY29kZSBkb24ndCBzdXBwb3J0IGRhdGEgYXJyYXki LA0KPiArICAgICAgICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICBUU09iaiA9IElmclNldChM aW5lKQ0KPiArICAgICAgICBzZWxmLlNhdmVPcEhkckNvbmQoVFNPYmouR2V0SGVhZGVyKCksIChj dHguRXhwSW5mby5FeHBPcENvdW50ID09DQo+IDApLCBMaW5lKQ0KPiArICAgICAgICBUU09iai5T ZXRWYXJJbmZvKGN0eC5CYXNlSW5mbykNCj4gKyAgICAgICAgTm9kZSA9IElmclRyZWVOb2RlKEVG SV9JRlJfU0VUX09QLCBUU09iaikNCj4gKyAgICAgICAgY3R4Lk5vZGVzLmFwcGVuZChOb2RlKQ0K PiArICAgICAgICBjdHguRXhwSW5mby5FeHBPcENvdW50ICs9IDENCj4gKyAgICAgICAgcmV0dXJu IGN0eC5Ob2Rlcw0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRyZWUgcHJvZHVjZWQgYnkg VmZyU3ludGF4UGFyc2VyI3ZmckV4cHJlc3Npb25UZXJuYXJ5T3AuDQo+ICsgICAgZGVmIHZpc2l0 VmZyRXhwcmVzc2lvblRlcm5hcnlPcChzZWxmLCBjdHg6DQo+IFZmclN5bnRheFBhcnNlci5WZnJF eHByZXNzaW9uVGVybmFyeU9wQ29udGV4dCk6DQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJl bihjdHgpDQo+ICsgICAgICAgIGlmIGN0eC5jb25kaXRpb25hbEV4cCgpICE9IE5vbmU6DQo+ICsg ICAgICAgICAgICBjdHguTm9kZXMgPSBjdHguY29uZGl0aW9uYWxFeHAoKS5Ob2Rlcw0KPiArICAg ICAgICBpZiBjdHguZmluZEV4cCgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9kZXMg PSBjdHguZmluZEV4cCgpLk5vZGVzDQo+ICsgICAgICAgIGlmIGN0eC5taWRFeHAoKSAhPSBOb25l Og0KPiArICAgICAgICAgICAgY3R4Lk5vZGVzID0gY3R4Lm1pZEV4cCgpLk5vZGVzDQo+ICsgICAg ICAgIGlmIGN0eC50b2tlbkV4cCgpICE9IE5vbmU6DQo+ICsgICAgICAgICAgICBjdHguTm9kZXMg PSBjdHgudG9rZW5FeHAoKS5Ob2Rlcw0KPiArICAgICAgICBpZiBjdHguc3BhbkV4cCgpICE9IE5v bmU6DQo+ICsgICAgICAgICAgICBjdHguTm9kZXMgPSBjdHguc3BhbkV4cCgpLk5vZGVzDQo+ICsg ICAgICAgIHJldHVybiBjdHguTm9kZXMNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVl IHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNjb25kaXRpb25hbEV4cC4NCj4gKyAgICBkZWYg dmlzaXRDb25kaXRpb25hbEV4cChzZWxmLCBjdHg6IFZmclN5bnRheFBhcnNlci5Db25kaXRpb25h bEV4cENvbnRleHQpOg0KPiArICAgICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gKyAgICAg ICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgQ09iaiA9IElmckNvbmRpdGlv bmFsKExpbmUpDQo+ICsgICAgICAgIE5vZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX0NPTkRJVElP TkFMX09QLCBDT2JqLA0KPiBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVhbShDT2JqLkdldEluZm8oKSkp DQo+ICsgICAgICAgIGN0eC5Ob2Rlcy5hcHBlbmQoTm9kZSkNCj4gKyAgICAgICAgY3R4LkV4cElu Zm8uRXhwT3BDb3VudCArPSAxDQo+ICsgICAgICAgIHJldHVybiBjdHguTm9kZXMNCj4gKw0KPiAr ICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciNmaW5k RXhwLg0KPiArICAgIGRlZiB2aXNpdEZpbmRFeHAoc2VsZiwgY3R4OiBWZnJTeW50YXhQYXJzZXIu RmluZEV4cENvbnRleHQpOg0KPiArICAgICAgICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gKyAg ICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgRk9iaiA9IElmckZpbmQo TGluZSkNCj4gKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgbGVuKGN0eC5maW5kRm9ybWF0KCkp KToNCj4gKyAgICAgICAgICAgIEZvcm1hdCA9IGN0eC5maW5kRm9ybWF0KGkpLkZvcm1hdA0KPiAr ICAgICAgICAgICAgRk9iai5TZXRGb3JtYXQoRm9ybWF0KQ0KPiArICAgICAgICBOb2RlID0gSWZy VHJlZU5vZGUoRUZJX0lGUl9GSU5EX09QLCBGT2JqLA0KPiBnRm9ybVBrZy5TdHJ1Y3RUb1N0cmVh bShGT2JqLkdldEluZm8oKSkpDQo+ICsgICAgICAgIGN0eC5Ob2Rlcy5hcHBlbmQoTm9kZSkNCj4g KyAgICAgICAgY3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAxDQo+ICsgICAgICAgIHJldHVybiBj dHguTm9kZXMNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5IFZm clN5bnRheFBhcnNlciNmaW5kRm9ybWF0Lg0KPiArICAgIGRlZiB2aXNpdEZpbmRGb3JtYXQoc2Vs ZiwgY3R4OiBWZnJTeW50YXhQYXJzZXIuRmluZEZvcm1hdENvbnRleHQpOg0KPiArICAgICAgICBz ZWxmLnZpc2l0Q2hpbGRyZW4oY3R4KQ0KPiArICAgICAgICBpZiBjdHguU2Vuc2l0aXZlKCkgIT0g Tm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5Gb3JtYXQgPSAweDAwDQo+ICsgICAgICAgIGVsaWYg Y3R4Lkluc2Vuc2l0aXZlKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5Gb3JtYXQgPSAw eDAxDQo+ICsgICAgICAgIHJldHVybiBjdHguRm9ybWF0DQo+ICsNCj4gKyAgICAjIFZpc2l0IGEg cGFyc2UgdHJlZSBwcm9kdWNlZCBieSBWZnJTeW50YXhQYXJzZXIjbWlkRXhwLg0KPiArICAgIGRl ZiB2aXNpdE1pZEV4cChzZWxmLCBjdHg6IFZmclN5bnRheFBhcnNlci5NaWRFeHBDb250ZXh0KToN Cj4gKyAgICAgICAgTGluZSA9IGN0eC5zdGFydC5saW5lDQo+ICsgICAgICAgIHNlbGYudmlzaXRD aGlsZHJlbihjdHgpDQo+ICsgICAgICAgIE1PYmogPSBJZnJNaWQoTGluZSkNCj4gKyAgICAgICAg Tm9kZSA9IElmclRyZWVOb2RlKEVGSV9JRlJfTUlEX09QLCBNT2JqLA0KPiBnRm9ybVBrZy5TdHJ1 Y3RUb1N0cmVhbShNT2JqLkdldEluZm8oKSkpDQo+ICsgICAgICAgIGN0eC5Ob2Rlcy5hcHBlbmQo Tm9kZSkNCj4gKyAgICAgICAgY3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAxDQo+ICsgICAgICAg IHJldHVybiBjdHguTm9kZXMNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1 Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN0b2tlbkV4cC4NCj4gKyAgICBkZWYgdmlzaXRUb2tlbkV4 cChzZWxmLCBjdHg6IFZmclN5bnRheFBhcnNlci5Ub2tlbkV4cENvbnRleHQpOg0KPiArICAgICAg ICBMaW5lID0gY3R4LnN0YXJ0LmxpbmUNCj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0 eCkNCj4gKyAgICAgICAgVE9iaiA9IElmclRva2VuKExpbmUpDQo+ICsgICAgICAgIE5vZGUgPSBJ ZnJUcmVlTm9kZShFRklfSUZSX1RPS0VOX09QLCBUT2JqLA0KPiBnRm9ybVBrZy5TdHJ1Y3RUb1N0 cmVhbShUT2JqLkdldEluZm8oKSkpDQo+ICsgICAgICAgIGN0eC5Ob2Rlcy5hcHBlbmQoTm9kZSkN Cj4gKyAgICAgICAgY3R4LkV4cEluZm8uRXhwT3BDb3VudCArPSAxDQo+ICsgICAgICAgIHJldHVy biBjdHguTm9kZXMNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0cmVlIHByb2R1Y2VkIGJ5 IFZmclN5bnRheFBhcnNlciNzcGFuRXhwLg0KPiArICAgIGRlZiB2aXNpdFNwYW5FeHAoc2VsZiwg Y3R4OiBWZnJTeW50YXhQYXJzZXIuU3BhbkV4cENvbnRleHQpOg0KPiArICAgICAgICBMaW5lID0g Y3R4LnN0YXJ0LmxpbmUNCj4gKyAgICAgICAgRmxhZ3MgPSAwDQo+ICsgICAgICAgIHNlbGYudmlz aXRDaGlsZHJlbihjdHgpDQo+ICsgICAgICAgIGZvciBGbGFnc0N0eCBpbiBjdHguc3BhbkZsYWdz KCk6DQo+ICsgICAgICAgICAgICBGbGFncyB8PSBGbGFnc0N0eC5GbGFnDQo+ICsgICAgICAgIFNP YmogPSBJZnJTcGFuKExpbmUpDQo+ICsgICAgICAgIFNPYmouU2V0RmxhZ3MoRmxhZ3MpDQo+ICsg ICAgICAgIE5vZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX1NQQU5fT1AsIFNPYmosDQo+IGdGb3Jt UGtnLlN0cnVjdFRvU3RyZWFtKFNPYmouR2V0SW5mbygpKSkNCj4gKyAgICAgICAgY3R4Lk5vZGVz LmFwcGVuZChOb2RlKQ0KPiArICAgICAgICBjdHguRXhwSW5mby5FeHBPcENvdW50ICs9IDENCj4g KyAgICAgICAgcmV0dXJuIGN0eC5Ob2Rlcw0KPiArDQo+ICsgICAgIyBWaXNpdCBhIHBhcnNlIHRy ZWUgcHJvZHVjZWQgYnkgVmZyU3ludGF4UGFyc2VyI3NwYW5GbGFncy4NCj4gKyAgICBkZWYgdmlz aXRTcGFuRmxhZ3Moc2VsZiwgY3R4OiBWZnJTeW50YXhQYXJzZXIuU3BhbkZsYWdzQ29udGV4dCk6 DQo+ICsgICAgICAgIHNlbGYudmlzaXRDaGlsZHJlbihjdHgpDQo+ICsgICAgICAgIGlmIGN0eC5O dW1iZXIoKSAhPSBOb25lOg0KPiArICAgICAgICAgICAgY3R4LkZsYWcgPSBzZWxmLlRyYW5zTnVt KGN0eC5OdW1iZXIoKSkNCj4gKyAgICAgICAgZWxpZiBjdHguTGFzdE5vbk1hdGNoKCkgIT0gTm9u ZToNCj4gKyAgICAgICAgICAgIGN0eC5GbGFnID0gMHgwMA0KPiArICAgICAgICBlbGlmIGN0eC5G aXJzdE5vbk1hdGNoKCkgIT0gTm9uZToNCj4gKyAgICAgICAgICAgIGN0eC5GbGFnID0gMHgwMQ0K PiArICAgICAgICByZXR1cm4gY3R4LkZsYWcNCj4gKw0KPiArICAgICMgVmlzaXQgYSBwYXJzZSB0 cmVlIHByb2R1Y2VkIGJ5IFZmclN5bnRheFBhcnNlciN2ZnJFeHByZXNzaW9uTWFwLg0KPiArICAg IGRlZiB2aXNpdFZmckV4cHJlc3Npb25NYXAoc2VsZiwgY3R4Og0KPiBWZnJTeW50YXhQYXJzZXIu VmZyRXhwcmVzc2lvbk1hcENvbnRleHQpOg0KPiArICAgICAgICBMaW5lID0gY3R4LnN0YXJ0Lmxp bmUNCj4gKyAgICAgICAgc2VsZi52aXNpdENoaWxkcmVuKGN0eCkNCj4gKyAgICAgICAgTU9iaiA9 IElmck1hcChMaW5lKQ0KPiArICAgICAgICBOb2RlID0gSWZyVHJlZU5vZGUoRUZJX0lGUl9NQVBf T1AsIE1PYmosDQo+IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFtKE1PYmouR2V0SW5mbygpKSkNCj4g KyAgICAgICAgY3R4Lk5vZGVzLmFwcGVuZChOb2RlKQ0KPiArICAgICAgICBmb3IgTm9kZSBpbiBj dHguTm9kZS5DaGlsZDoNCj4gKyAgICAgICAgICAgIGN0eC5Ob2Rlcy5hcHBlbmQoTm9kZSkNCj4g KyAgICAgICAgRU9iaiA9IElmckVuZCgpDQo+ICsgICAgICAgIEVPYmouU2V0TGluZU5vKGN0eC5z dG9wLmxpbmUpDQo+ICsgICAgICAgIE5vZGUgPSBJZnJUcmVlTm9kZShFRklfSUZSX0VORF9PUCwg RU9iaiwNCj4gZ0Zvcm1Qa2cuU3RydWN0VG9TdHJlYW0oRU9iai5HZXRJbmZvKCkpKQ0KPiArICAg ICAgICBjdHguTm9kZXMuYXBwZW5kKE5vZGUpDQo+ICsgICAgICAgIGN0eC5FeHBJbmZvLkV4cE9w Q291bnQgKz0gMQ0KPiArICAgICAgICByZXR1cm4gY3R4Lk5vZGVzDQo+ICsNCj4gKyAgICBkZWYg R2V0VGV4dChzZWxmLCBjdHgpOg0KPiArICAgICAgICBpZiBjdHggPT0gTm9uZToNCj4gKyAgICAg ICAgICAgIHJldHVybiBOb25lDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICByZXR1 cm4gY3R4LnRleHQNCj4gKw0KPiArICAgIGRlZiBUcmFuc0lkKHNlbGYsIFN0cmluZ0lkZW50aWZp ZXJUb2tlbiwgRGVmYXVsdFZhbHVlPU5vbmUpOg0KPiArICAgICAgICBpZiBTdHJpbmdJZGVudGlm aWVyVG9rZW4gPT0gTm9uZToNCj4gKyAgICAgICAgICAgIHJldHVybiBEZWZhdWx0VmFsdWUNCj4g KyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIHJldHVybiBzdHIoU3RyaW5nSWRlbnRpZmll clRva2VuKQ0KPiArDQo+ICsgICAgZGVmIFRyYW5zTnVtKHNlbGYsIE51bWJlclRva2VuLCBEZWZh dWx0VmFsdWU9MCk6DQo+ICsgICAgICAgIGlmIE51bWJlclRva2VuID09IE5vbmU6DQo+ICsgICAg ICAgICAgICByZXR1cm4gRGVmYXVsdFZhbHVlDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAg ICAgICBTdHJUb2tlbiA9IHN0cihOdW1iZXJUb2tlbikNCj4gKyAgICAgICAgICAgIGlmIFN0clRv a2VuLnN0YXJ0c3dpdGgoIjB4Iikgb3IgU3RyVG9rZW4uc3RhcnRzd2l0aCgiMFgiKToNCj4gKyAg ICAgICAgICAgICAgICBOdW1iZXJUb2tlbiA9IGludChTdHJUb2tlbiwgMTYpDQo+ICsgICAgICAg ICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgIE51bWJlclRva2VuID0gaW50KFN0clRva2Vu KQ0KPiArICAgICAgICByZXR1cm4gTnVtYmVyVG9rZW4NCj4gKw0KPiArICAgIGRlZiBBc3NpZ25R dWVzdGlvbktleShzZWxmLCBPcE9iaiwgS2V5KToNCj4gKyAgICAgICAgaWYgS2V5ID09IE5vbmU6 DQo+ICsgICAgICAgICAgICByZXR1cm4NCj4gKw0KPiArICAgICAgICBpZiBPcE9iai5HZXRRRmxh Z3MoKSAmIEVGSV9JRlJfRkxBR19DQUxMQkFDSzoNCj4gKyAgICAgICAgICAgICMgaWYgdGhlIHF1 ZXN0aW9uIGlzIG5vdCBDQUxMQkFDSyBpZ25vcmUgdGhlIGtleS4NCj4gKyAgICAgICAgICAgIHNl bGYuVmZyUXVlc3Rpb25EQi5VcGRhdGVRdWVzdGlvbklkKE9wT2JqLkdldFF1ZXN0aW9uSWQoKSwg S2V5LA0KPiBnRm9ybVBrZykNCj4gKyAgICAgICAgICAgIE9wT2JqLlNldFF1ZXN0aW9uSWQoS2V5 KQ0KPiArICAgICAgICByZXR1cm4NCj4gKw0KPiArICAgIGRlZiBFeHRyYWN0T3JpZ2luYWxUZXh0 KHNlbGYsIGN0eCk6DQo+ICsgICAgICAgIFNvdXJjZSA9IGN0eC5zdGFydC5nZXRUb2tlblNvdXJj ZSgpDQo+ICsgICAgICAgIElucHV0U3RyZWFtID0gU291cmNlLmlucHV0U3RyZWFtDQo+ICsgICAg ICAgIHN0YXJ0LCBzdG9wID0gY3R4LnN0YXJ0LnN0YXJ0LCBjdHguc3RvcC5zdG9wDQo+ICsgICAg ICAgIFRleHQgPSBJbnB1dFN0cmVhbS5nZXRUZXh0KHN0YXJ0LCBzdG9wKQ0KPiArICAgICAgICBy ZXR1cm4gVGV4dC5yZXBsYWNlKCJcciIsICIiKS5yZXBsYWNlKCJcbiIsICIiKS5yZXBsYWNlKCIg ICIsICIgIikNCj4gKw0KPiArICAgIGRlZiBDaGVja0R1cGxpY2F0ZURlZmF1bHRWYWx1ZShzZWxm LCBEZWZhdWx0SWQsIExpbmUsIFRva2VuVmFsdWUpOg0KPiArICAgICAgICBmb3IgaSBpbiByYW5n ZSgwLCBsZW4oc2VsZi5Vc2VkRGVmYXVsdEFycmF5KSk6DQo+ICsgICAgICAgICAgICBpZiBzZWxm LlVzZWREZWZhdWx0QXJyYXlbaV0gPT0gRGVmYXVsdElkOg0KPiArICAgICAgICAgICAgICAgIGdW ZnJFcnJvckhhbmRsZS5IYW5kbGVXYXJuaW5nKA0KPiArDQo+IEVGSV9WRlJfV0FSTklOR19DT0RF LlZGUl9XQVJOSU5HX0RFRkFVTFRfVkFMVUVfUkVERUZJTkVELCBMaW5lLA0KPiBUb2tlblZhbHVl DQo+ICsgICAgICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgIGlmIGxlbihzZWxmLlVzZWRE ZWZhdWx0QXJyYXkpID49IEVGSV9JRlJfTUFYX0RFRkFVTFRfVFlQRSAtIDE6DQo+ICsNCj4gZ1Zm ckVycm9ySGFuZGxlLkhhbmRsZUVycm9yKFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9GQVRBTF9F UlJPUiwNCj4gTGluZSwgVG9rZW5WYWx1ZSkNCj4gKw0KPiArICAgICAgICBzZWxmLlVzZWREZWZh dWx0QXJyYXkuYXBwZW5kKERlZmF1bHRJZCkNCj4gKw0KPiArICAgIGRlZiBFcnJvckhhbmRsZXIo c2VsZiwgUmV0dXJuQ29kZSwgTGluZU51bSwgVG9rZW5WYWx1ZT1Ob25lKToNCj4gKyAgICAgICAg c2VsZi5QYXJzZXJTdGF0dXMgKz0gZ1ZmckVycm9ySGFuZGxlLkhhbmRsZUVycm9yKFJldHVybkNv ZGUsDQo+IExpbmVOdW0sIFRva2VuVmFsdWUpDQo+ICsNCj4gKyAgICBkZWYgQ29tcGFyZUVycm9y SGFuZGxlcigNCj4gKyAgICAgICAgc2VsZiwgUmV0dXJuQ29kZSwgRXhwZWN0ZWRDb2RlLCBMaW5l TnVtLCBUb2tlblZhbHVlPU5vbmUsDQo+IEVycm9yTXNnPU5vbmUNCj4gKyAgICApOg0KPiArICAg ICAgICBpZiBSZXR1cm5Db2RlICE9IEV4cGVjdGVkQ29kZToNCj4gKyAgICAgICAgICAgIHNlbGYu UGFyc2VyU3RhdHVzICs9IDENCj4gKyAgICAgICAgICAgIGdWZnJFcnJvckhhbmRsZS5QcmludE1z ZyhMaW5lTnVtLCAiRXJyb3IiLCBFcnJvck1zZywgVG9rZW5WYWx1ZSkNCj4gKw0KPiArICAgIGRl ZiBJbnNlcnRDaGlsZChzZWxmLCBQYXJlbnROb2RlOiBJZnJUcmVlTm9kZSwgQ2hpbGRDdHgpOg0K PiArICAgICAgICBpZiBDaGlsZEN0eCAhPSBOb25lIGFuZCBDaGlsZEN0eC5Ob2RlICE9IE5vbmU6 DQo+ICsgICAgICAgICAgICBQYXJlbnROb2RlLmluc2VydENoaWxkKENoaWxkQ3R4Lk5vZGUpDQo+ ICsNCj4gKyAgICBkZWYgSW5zZXJ0RW5kTm9kZShzZWxmLCBQYXJlbnROb2RlLCBMaW5lKToNCj4g KyAgICAgICAgRU9iaiA9IElmckVuZCgpDQo+ICsgICAgICAgIEVPYmouU2V0TGluZU5vKExpbmUp DQo+ICsgICAgICAgIEVOb2RlID0gSWZyVHJlZU5vZGUoRUZJX0lGUl9FTkRfT1AsIEVPYmosDQo+ IGdGb3JtUGtnLlN0cnVjdFRvU3RyZWFtKEVPYmouR2V0SW5mbygpKSkNCj4gKyAgICAgICAgUGFy ZW50Tm9kZS5pbnNlcnRDaGlsZChFTm9kZSkNCj4gKw0KPiArICAgIGRlZiBHZXRDdXJBcnJheVNp emUoc2VsZik6DQo+ICsgICAgICAgIFNpemUgPSAxDQo+ICsgICAgICAgIGlmIHNlbGYuQ3VyclFl c3RWYXJJbmZvLlZhclR5cGUgPT0gRUZJX0lGUl9UWVBFX05VTV9TSVpFXzg6DQo+ICsgICAgICAg ICAgICBTaXplID0gMQ0KPiArICAgICAgICBpZiBzZWxmLkN1cnJRZXN0VmFySW5mby5WYXJUeXBl ID09IEVGSV9JRlJfVFlQRV9OVU1fU0laRV8xNjoNCj4gKyAgICAgICAgICAgIFNpemUgPSAyDQo+ ICsgICAgICAgIGlmIHNlbGYuQ3VyclFlc3RWYXJJbmZvLlZhclR5cGUgPT0gRUZJX0lGUl9UWVBF X05VTV9TSVpFXzMyOg0KPiArICAgICAgICAgICAgU2l6ZSA9IDQNCj4gKyAgICAgICAgaWYgc2Vs Zi5DdXJyUWVzdFZhckluZm8uVmFyVHlwZSA9PSBFRklfSUZSX1RZUEVfTlVNX1NJWkVfNjQ6DQo+ ICsgICAgICAgICAgICBTaXplID0gOA0KPiArDQo+ICsgICAgICAgIHJldHVybiBpbnQoc2VsZi5D dXJyUWVzdFZhckluZm8uVmFyVG90YWxTaXplIC8gU2l6ZSkNCj4gKw0KPiArICAgIGRlZiBHZXRR dWVzdGlvbkRCKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5WZnJRdWVzdGlvbkRCDQo+ ICsNCj4gKw0KPiArZGVsIFZmclN5bnRheFBhcnNlcg0KPiBkaWZmIC0tZ2l0IGEvQmFzZVRvb2xz L1NvdXJjZS9QeXRob24vVmZyQ29tcGlsZXIvVmZyVHJlZS5weQ0KPiBiL0Jhc2VUb29scy9Tb3Vy Y2UvUHl0aG9uL1ZmckNvbXBpbGVyL1ZmclRyZWUucHkNCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0DQo+IGluZGV4IGM3OGQyZGQ4NDYuLjAwMDAwMDAwMDANCj4gLS0tIGEvQmFzZVRvb2xzL1Nv dXJjZS9QeXRob24vVmZyQ29tcGlsZXIvVmZyVHJlZS5weQ0KPiArKysgL2Rldi9udWxsDQo+IEBA IC0xLDg4ICswLDAgQEANCj4gLWZyb20gVmZyQ29tcGlsZXIuQ29tbW9uQ3R5cGVzIGltcG9ydCAq DQo+IA0KPiAtZnJvbSBWZnJDb21waWxlci5WZnJGb3JtUGtnIGltcG9ydCAqDQo+IA0KPiAtDQo+ IA0KPiAtIyBJZnIgcmVsYXRlZCBJbmZvIC0+IGN0eXBlcyBvYmoNCj4gDQo+IC0jP2NvbmRpdGlv bmFsIEluZm8NCj4gDQo+IC0jIFN0cnVjdHVyZSBJbmZvDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0K PiAtY2xhc3MgVmZyVHJlZU5vZGUoKToNCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsIE9w Y29kZTogaW50PU5vbmUpIC0+IE5vbmU6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBzZWxmLk9w Q29kZSA9IE9wY29kZQ0KPiANCj4gLSAgICAgICAgc2VsZi5EYXRhID0gTm9uZSAjIHNhdmUgY2xh c3Mgb3IgYnl0ZXMNCj4gDQo+IC0gICAgICAgIHNlbGYuQ29uZGl0aW9uID0gTm9uZQ0KPiANCj4g LSAgICAgICAgc2VsZi5FeHByZXNzaW9uID0gTm9uZQ0KPiANCj4gLSAgICAgICAgc2VsZi5QYXJl bnQgPSBOb25lDQo+IA0KPiAtICAgICAgICBzZWxmLkNoaWxkID0gW10NCj4gDQo+IC0NCj4gDQo+ IC0NCj4gDQo+IC0gICAgZGVmIGhhc0NvbmRpdGlvbihzZWxmKSAtPmJvb2w6DQo+IA0KPiAtICAg ICAgICBpZiBzZWxmLkNvbmRpdGlvbiA9PSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIHJldHVy biBGYWxzZQ0KPiANCj4gLSAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICByZXR1cm4g VHJ1ZQ0KPiANCj4gLQ0KPiANCj4gLSAgICAjIEdldCBkYXRhIGZyb20gY3R5cGVzIHRvIGJ5dGVz Lg0KPiANCj4gLSAgICBkZWYgc3RydWN0MnN0cmVhbShzZWxmLCBzKSAtPiBieXRlczoNCj4gDQo+ IC0gICAgICAgIGxlbmd0aCA9IHNpemVvZihzKQ0KPiANCj4gLSAgICAgICAgcCA9IGNhc3QocG9p bnRlcihzKSwgUE9JTlRFUihjX2NoYXIgKiBsZW5ndGgpKQ0KPiANCj4gLSAgICAgICAgcmV0dXJu IHAuY29udGVudHMucmF3DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBoYXNDaGlsZChzZWxmKSAt PiBib29sOg0KPiANCj4gLSAgICAgICAgaWYgc2VsZi5DaGlsZCA9PSBbXToNCj4gDQo+IC0gICAg ICAgICAgICByZXR1cm4gRmFsc2UNCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAg ICAgICAgcmV0dXJuIFRydWUNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIGlzRmluYWxDaGlsZChz ZWxmKSAtPiBib29sOg0KPiANCj4gLSAgICAgICAgUGFyVHJlZSA9IHNlbGYuUGFyZW50DQo+IA0K PiAtICAgICAgICBpZiBQYXJUcmVlOg0KPiANCj4gLSAgICAgICAgICAgIGlmIFBhclRyZWUuQ2hp bGRbLTFdID09IHNlbGY6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHJldHVybiBUcnVlDQo+IA0K PiAtICAgICAgICByZXR1cm4gRmFsc2UNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVm IGluc2VydENoaWxkKHNlbGYsIE5ld05vZGUsIHBvczogaW50PU5vbmUpIC0+IE5vbmU6DQo+IA0K PiAtICAgICAgICBpZiBsZW4oc2VsZi5DaGlsZCkgPT0gMDoNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLkNoaWxkLmFwcGVuZChOZXdOb2RlKQ0KPiANCj4gLSAgICAgICAgZWxzZToNCj4gDQo+IC0g ICAgICAgICAgICBpZiBub3QgcG9zOg0KPiANCj4gLSAgICAgICAgICAgICAgICBMYXN0VHJlZSA9 IHNlbGYuQ2hpbGRbLTFdDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuQ2hpbGQuYXBwZW5k KE5ld05vZGUpDQo+IA0KPiAtICAgICAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICAg ICAgc2VsZi5DaGlsZC5pbnNlcnQocG9zLCBOZXdOb2RlKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAg ICAgTmV3Tm9kZS5QYXJlbnQgPSBzZWxmDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgICMg bGFzdE5vZGUuaW5zZXJ0UmVsKG5ld05vZGUpDQo+IA0KPiAtICAgIGRlZiBpbnNlcnRSZWwoc2Vs ZiwgbmV3Tm9kZSkgLT4gTm9uZToNCj4gDQo+IC0gICAgICAgIGlmIHNlbGYuUGFyZW50Og0KPiAN Cj4gLSAgICAgICAgICAgIHBhcmVudFRyZWUgPSBzZWxmLlBhcmVudA0KPiANCj4gLSAgICAgICAg ICAgIG5ld19pbmRleCA9IHBhcmVudFRyZWUuQ2hpbGQuaW5kZXgoc2VsZikgKyAxDQo+IA0KPiAt ICAgICAgICAgICAgcGFyZW50VHJlZS5DaGlsZC5pbnNlcnQobmV3X2luZGV4LCBuZXdOb2RlKQ0K PiANCj4gLSAgICAgICAgc2VsZi5OZXh0UmVsID0gbmV3Tm9kZQ0KPiANCj4gLSAgICAgICAgbmV3 Tm9kZS5MYXN0UmVsID0gc2VsZg0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgZGVs ZXRlTm9kZShzZWxmLCBkZWxldGVrZXk6IHN0cikgLT4gTm9uZToNCj4gDQo+IC0gICAgICAgIEZp bmRTdGF0dXMsIERlbGV0ZVRyZWUgPSBzZWxmLkZpbmROb2RlKGRlbGV0ZWtleSkNCj4gDQo+IC0g ICAgICAgIGlmIEZpbmRTdGF0dXM6DQo+IA0KPiAtICAgICAgICAgICAgcGFyZW50VHJlZSA9IERl bGV0ZVRyZWUuUGFyZW50DQo+IA0KPiAtICAgICAgICAgICAgbGFzdFRyZWUgPSBEZWxldGVUcmVl Lkxhc3RSZWwNCj4gDQo+IC0gICAgICAgICAgICBuZXh0VHJlZSA9IERlbGV0ZVRyZWUuTmV4dFJl bA0KPiANCj4gLSAgICAgICAgICAgIGlmIHBhcmVudFRyZWU6DQo+IA0KPiAtICAgICAgICAgICAg ICAgIGluZGV4ID0gcGFyZW50VHJlZS5DaGlsZC5pbmRleChEZWxldGVUcmVlKQ0KPiANCj4gLSAg ICAgICAgICAgICAgICBkZWwgcGFyZW50VHJlZS5DaGlsZFtpbmRleF0NCj4gDQo+IC0gICAgICAg ICAgICBpZiBsYXN0VHJlZSBhbmQgbmV4dFRyZWU6DQo+IA0KPiAtICAgICAgICAgICAgICAgIGxh c3RUcmVlLk5leHRSZWwgPSBuZXh0VHJlZQ0KPiANCj4gLSAgICAgICAgICAgICAgICBuZXh0VHJl ZS5MYXN0UmVsID0gbGFzdFRyZWUNCj4gDQo+IC0gICAgICAgICAgICBlbGlmIGxhc3RUcmVlOg0K PiANCj4gLSAgICAgICAgICAgICAgICBsYXN0VHJlZS5OZXh0UmVsID0gTm9uZQ0KPiANCj4gLSAg ICAgICAgICAgIGVsaWYgbmV4dFRyZWU6DQo+IA0KPiAtICAgICAgICAgICAgICAgIG5leHRUcmVl Lkxhc3RSZWwgPSBOb25lDQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIERlbGV0ZVRyZWUNCj4g DQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgcHJpbnQoJ0NvdWxkIG5vdCBm aW5kIHRoZSB0YXJnZXQgdHJlZScpDQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIE5vbmUNCj4g DQo+IGRpZmYgLS1naXQgYS9CYXNlVG9vbHMvU291cmNlL1B5dGhvbi9WZnJDb21waWxlci9WZnJV dGlsaXR5LnB5DQo+IGIvQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vVmZyQ29tcGlsZXIvVmZyVXRp bGl0eS5weQ0KPiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggYjc1M2RkMWUxZC4u MDAwMDAwMDAwMA0KPiAtLS0gYS9CYXNlVG9vbHMvU291cmNlL1B5dGhvbi9WZnJDb21waWxlci9W ZnJVdGlsaXR5LnB5DQo+ICsrKyAvZGV2L251bGwNCj4gQEAgLTEsMTk5MSArMCwwIEBADQo+IC1m cm9tIGFzdCBpbXBvcnQgUGFzcywgUmV0dXJuDQo+IA0KPiAtZnJvbSBhc3luY2lvLndpbmRvd3Nf ZXZlbnRzIGltcG9ydCBOVUxMDQo+IA0KPiAtZnJvbSBjdHlwZXMud2ludHlwZXMgaW1wb3J0IFNJ WkVMDQo+IA0KPiAtZnJvbSBtc2lsaWIuc2NoZW1hIGltcG9ydCBFcnJvcg0KPiANCj4gLWZyb20g dGtpbnRlciBpbXBvcnQgTg0KPiANCj4gLWZyb20gdHVydGxlIGltcG9ydCBnb3RvDQo+IA0KPiAt ZnJvbSB0eXBpbmcgaW1wb3J0IExpc3QNCj4gDQo+IC1mcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0 IE5vbkNhbGxhYmxlTWFnaWNNb2NrDQo+IA0KPiAtZnJvbSB4bWxycGMuY2xpZW50IGltcG9ydCBi b29sZWFuDQo+IA0KPiAtZnJvbSBWZnJDb21waWxlci5WZnJFcnJvciBpbXBvcnQgKg0KPiANCj4g LWZyb20gVmZyQ29tcGlsZXIuQ29tbW9uQ3R5cGVzIGltcG9ydCAqDQo+IA0KPiAtZnJvbSBhYmMg aW1wb3J0IEFCQ01ldGEsIGFic3RyYWN0bWV0aG9kDQo+IA0KPiAtaW1wb3J0IGN0eXBlcw0KPiAN Cj4gLQ0KPiANCj4gLWltcG9ydCBzeXMNCj4gDQo+IC0NCj4gDQo+IC1WRlJfUEFDS19TSE9XID0g MHgwMg0KPiANCj4gLVZGUl9QQUNLX0FTU0lHTiA9IDB4MDENCj4gDQo+IC1WRlJfUEFDS19QVVNI ID0gMHgwNA0KPiANCj4gLVZGUl9QQUNLX1BPUCA9IDB4MDgNCj4gDQo+IC1ERUZBVUxUX1BBQ0tf QUxJR04gPSAweDgNCj4gDQo+IC1ERUZBVUxUX0FMSUdOID0gMQ0KPiANCj4gLU1BWF9OQU1FX0xF TiA9IDY0DQo+IA0KPiAtTUFYX0JJVF9XSURUSCA9IDMyDQo+IA0KPiAtRUZJX1ZBUlNUT1JFX0lE X01BWCA9IDB4RkZGRg0KPiANCj4gLUVGSV9CSVRTX1NISUZUX1BFUl9VSU5UMzIgPSAweDUNCj4g DQo+IC1FRklfQklUU19QRVJfVUlOVDMyID0gKDEgPDwgRUZJX0JJVFNfU0hJRlRfUEVSX1VJTlQz MikNCj4gDQo+IC1FRklfRlJFRV9WQVJTVE9SRV9JRF9CSVRNQVBfU0laRSA9IGludCgNCj4gDQo+ IC0gICAgKEVGSV9WQVJTVE9SRV9JRF9NQVggKyAxKSAvIEVGSV9CSVRTX1BFUl9VSU5UMzIpDQo+ IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgU1ZmclBhY2tTdGFja05vZGUob2JqZWN0KToN Cj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsIElkZW50aWZpZXIsIE51bWJl cik6DQo+IA0KPiAtICAgICAgICBzZWxmLklkZW50aWZpZXIgPSBJZGVudGlmaWVyDQo+IA0KPiAt ICAgICAgICBzZWxmLk51bWJlciA9IE51bWJlcg0KPiANCj4gLSAgICAgICAgc2VsZi5OZXh0ID0g Tm9uZQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgTWF0Y2goc2VsZiwgSWRlbnRpZmllcik6DQo+ IA0KPiAtICAgICAgICBpZiBJZGVudGlmaWVyID09IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAg cmV0dXJuIFRydWUNCj4gDQo+IC0gICAgICAgIGVsaWYgc2VsZi5JZGVudGlmaWVyID09IE5vbmU6 DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIEZhbHNlDQo+IA0KPiAtICAgICAgICBlbGlmIHNl bGYuSWRlbnRpZmllciA9PSBJZGVudGlmaWVyOg0KPiANCj4gLSAgICAgICAgICAgIHJldHVybiBU cnVlDQo+IA0KPiAtICAgICAgICBlbHNlOg0KPiANCj4gLSAgICAgICAgICAgIHJldHVybiBGYWxz ZQ0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIFNWZnJEYXRhVHlwZShvYmplY3QpOg0K PiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZiwgVHlwZU5hbWU9JycpOg0KPiAN Cj4gLSAgICAgICAgc2VsZi5UeXBlTmFtZSA9IFR5cGVOYW1lDQo+IA0KPiAtICAgICAgICBzZWxm LlR5cGUgPSAwDQo+IA0KPiAtICAgICAgICBzZWxmLkFsaWduID0gMQ0KPiANCj4gLSAgICAgICAg c2VsZi5Ub3RhbFNpemUgPSAwDQo+IA0KPiAtICAgICAgICBzZWxmLkhhc0JpdEZpZWxkID0gRmFs c2UNCj4gDQo+IC0gICAgICAgIHNlbGYuTWVtYmVycyA9IE5vbmUNCj4gDQo+IC0gICAgICAgIHNl bGYuTmV4dCA9IE5vbmUNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBTVmZyRGF0YUZp ZWxkKG9iamVjdCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX2luaXRfXyhzZWxmLCBGaWVs ZE5hbWU9Tm9uZSk6DQo+IA0KPiAtICAgICAgICBzZWxmLkZpZWxkTmFtZSA9IEZpZWxkTmFtZQ0K PiANCj4gLSAgICAgICAgc2VsZi5GaWVsZFR5cGUgPSBOb25lDQo+IA0KPiAtICAgICAgICBzZWxm Lk9mZnNldCA9IDANCj4gDQo+IC0gICAgICAgIHNlbGYuQXJyYXlOdW0gPSAwDQo+IA0KPiAtICAg ICAgICBzZWxmLklzQml0RmllbGQgPSBGYWxzZQ0KPiANCj4gLSAgICAgICAgc2VsZi5CaXRXaWR0 aCA9IDANCj4gDQo+IC0gICAgICAgIHNlbGYuQml0T2Zmc2V0ID0gMA0KPiANCj4gLSAgICAgICAg c2VsZi5OZXh0ID0gTm9uZQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEludGVybmFsVHlwZXMoKToN Cj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsIFR5cGVOYW1lLCBUeXBlLCBTaXplLCBBbGln bik6DQo+IA0KPiAtICAgICAgICBzZWxmLlR5cGVOYW1lID0gVHlwZU5hbWUNCj4gDQo+IC0gICAg ICAgIHNlbGYuVHlwZSA9IFR5cGUNCj4gDQo+IC0gICAgICAgIHNlbGYuU2l6ZSA9IFNpemUNCj4g DQo+IC0gICAgICAgIHNlbGYuQWxpZ24gPSBBbGlnbg0KPiANCj4gLQ0KPiANCj4gLWdJbnRlcm5h bFR5cGVzVGFibGUgPSBbDQo+IA0KPiAtICAgIEludGVybmFsVHlwZXMoIlVJTlQ2NCIsIEVGSV9J RlJfVFlQRV9OVU1fU0laRV82NCwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICBzaXplb2YoY3R5 cGVzLmNfdWxvbmdsb25nKSwgc2l6ZW9mKGN0eXBlcy5jX3Vsb25nbG9uZykpLA0KPiANCj4gLSAg ICBJbnRlcm5hbFR5cGVzKCJVSU5UMzIiLCBFRklfSUZSX1RZUEVfTlVNX1NJWkVfMzIsDQo+IHNp emVvZihjdHlwZXMuY191bG9uZyksDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgc2l6ZW9mKGN0 eXBlcy5jX3Vsb25nKSksDQo+IA0KPiAtICAgIEludGVybmFsVHlwZXMoIlVJTlQxNiIsIEVGSV9J RlJfVFlQRV9OVU1fU0laRV8xNiwNCj4gc2l6ZW9mKGN0eXBlcy5jX3VzaG9ydCksDQo+IA0KPiAt ICAgICAgICAgICAgICAgICAgc2l6ZW9mKGN0eXBlcy5jX3VzaG9ydCkpLA0KPiANCj4gLSAgICBJ bnRlcm5hbFR5cGVzKCJVSU5UOCIsIEVGSV9JRlJfVFlQRV9OVU1fU0laRV84LA0KPiBzaXplb2Yo Y3R5cGVzLmNfdWJ5dGUpLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgIHNpemVvZihjdHlwZXMu Y191Ynl0ZSkpLA0KPiANCj4gLSAgICBJbnRlcm5hbFR5cGVzKCJCT09MRUFOIiwgRUZJX0lGUl9U WVBFX0JPT0xFQU4sDQo+IHNpemVvZihjdHlwZXMuY191Ynl0ZSksDQo+IA0KPiAtICAgICAgICAg ICAgICAgICAgc2l6ZW9mKGN0eXBlcy5jX3VieXRlKSksDQo+IA0KPiAtICAgIEludGVybmFsVHlw ZXMoIkVGSV9HVUlEIiwgRUZJX0lGUl9UWVBFX09USEVSLCBzaXplb2YoRUZJX0dVSUQpLA0KPiAN Cj4gLSAgICAgICAgICAgICAgICAgIHNpemVvZihjX3VieXRlICogOCkpLA0KPiANCj4gLSAgICBJ bnRlcm5hbFR5cGVzKCJFRklfSElJX0RBVEUiLCBFRklfSUZSX1RZUEVfREFURSwgc2l6ZW9mKEVG SV9ISUlfREFURSksDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgc2l6ZW9mKGN0eXBlcy5jX3Vz aG9ydCkpLA0KPiANCj4gLSAgICBJbnRlcm5hbFR5cGVzKCJFRklfU1RSSU5HX0lEIiwgRUZJX0lG Ul9UWVBFX1NUUklORywNCj4gDQo+IC0gICAgICAgICAgICAgICAgICBzaXplb2YoY3R5cGVzLmNf dXNob3J0KSwgc2l6ZW9mKGN0eXBlcy5jX3VzaG9ydCkpLA0KPiANCj4gLSAgICBJbnRlcm5hbFR5 cGVzKCJFRklfSElJX1RJTUUiLCBFRklfSUZSX1RZUEVfVElNRSwgc2l6ZW9mKEVGSV9ISUlfVElN RSksDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgc2l6ZW9mKGN0eXBlcy5jX3VieXRlKSksDQo+ IA0KPiAtICAgIEludGVybmFsVHlwZXMoIkVGSV9ISUlfUkVGIiwgRUZJX0lGUl9UWVBFX1JFRiwg c2l6ZW9mKEVGSV9ISUlfUkVGKSwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICBzaXplb2YoRUZJ X0dVSUQpKSwNCj4gDQo+IC1dDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ1ZmclZhckRhdGFUeXBl REIob2JqZWN0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYpOg0KPiAN Cj4gLSAgICAgICAgc2VsZi5fX1BhY2tBbGlnbiA9IERFRkFVTFRfUEFDS19BTElHTg0KPiANCj4g LSAgICAgICAgc2VsZi5fX1BhY2tTdGFjayA9IE5vbmUNCj4gDQo+IC0gICAgICAgIHNlbGYuX19E YXRhVHlwZUxpc3QgPSBOb25lDQo+IA0KPiAtICAgICAgICBzZWxmLl9fTmV3RGF0YVR5cGUgPSBO b25lDQo+IA0KPiAtICAgICAgICBzZWxmLl9fQ3VyckRhdGFUeXBlID0gTm9uZQ0KPiANCj4gLSAg ICAgICAgc2VsZi5fX0N1cnJEYXRhRmllbGQgPSBOb25lDQo+IA0KPiAtICAgICAgICBzZWxmLl9f Rmlyc3ROZXdEYXRhVHlwZU5hbWUgPSBOb25lDQo+IA0KPiAtICAgICAgICBzZWxmLkludGVybmFs VHlwZXNMaXN0SW5pdCgpDQo+IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBJbnRlcm5h bFR5cGVzTGlzdEluaXQoc2VsZik6DQo+IA0KPiAtICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCBs ZW4oZ0ludGVybmFsVHlwZXNUYWJsZSkpOg0KPiANCj4gLSAgICAgICAgICAgIHBOZXdUeXBlID0g U1ZmckRhdGFUeXBlKCkNCj4gDQo+IC0gICAgICAgICAgICBwTmV3VHlwZS5UeXBlTmFtZSA9IGdJ bnRlcm5hbFR5cGVzVGFibGVbaV0uVHlwZU5hbWUNCj4gDQo+IC0gICAgICAgICAgICBwTmV3VHlw ZS5UeXBlID0gZ0ludGVybmFsVHlwZXNUYWJsZVtpXS5UeXBlDQo+IA0KPiAtICAgICAgICAgICAg cE5ld1R5cGUuQWxpZ24gPSBnSW50ZXJuYWxUeXBlc1RhYmxlW2ldLkFsaWduDQo+IA0KPiAtICAg ICAgICAgICAgcE5ld1R5cGUuVG90YWxTaXplID0gZ0ludGVybmFsVHlwZXNUYWJsZVtpXS5TaXpl DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgaWYgZ0ludGVybmFsVHlwZXNUYWJsZVtpXS5U eXBlTmFtZSA9PSAnRUZJX0hJSV9EQVRFJzoNCj4gDQo+IC0gICAgICAgICAgICAgICAgcFllYXJG aWVsZCAgPSBTVmZyRGF0YUZpZWxkKCkNCj4gDQo+IC0gICAgICAgICAgICAgICAgcE1vbnRoRmll bGQgID0gU1ZmckRhdGFGaWVsZCgpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHBEYXlGaWVsZCAg PSBTVmZyRGF0YUZpZWxkKCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICAgICAgcFllYXJG aWVsZC5GaWVsZE5hbWUgPSAnWWVhcicNCj4gDQo+IC0gICAgICAgICAgICAgICAgcFllYXJGaWVs ZC5GaWVsZFR5cGUsIF8gPSBzZWxmLkdldERhdGFUeXBlKCdVSU5UMTYnKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBwWWVhckZpZWxkLk9mZnNldCA9IDANCj4gDQo+IC0gICAgICAgICAgICAgICAg cFllYXJGaWVsZC5OZXh0ID0gcE1vbnRoRmllbGQNCj4gDQo+IC0gICAgICAgICAgICAgICAgcFll YXJGaWVsZC5BcnJheU51bSA9IDANCj4gDQo+IC0gICAgICAgICAgICAgICAgcFllYXJGaWVsZC5J c0JpdEZpZWxkID0gRmFsc2UNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICAgICAgcE1vbnRo RmllbGQuRmllbGROYW1lID0gJ01vbnRoJw0KPiANCj4gLSAgICAgICAgICAgICAgICBwTW9udGhG aWVsZC5GaWVsZFR5cGUsIF8gPSBzZWxmLkdldERhdGFUeXBlKCdVSU5UOCcpDQo+IA0KPiAtICAg ICAgICAgICAgICAgIHBNb250aEZpZWxkLk9mZnNldCA9IDINCj4gDQo+IC0gICAgICAgICAgICAg ICAgcE1vbnRoRmllbGQuTmV4dCA9IHBEYXlGaWVsZA0KPiANCj4gLSAgICAgICAgICAgICAgICBw TW9udGhGaWVsZC5BcnJheU51bSA9IDANCj4gDQo+IC0gICAgICAgICAgICAgICAgcE1vbnRoRmll bGQuSXNCaXRGaWVsZCA9IEZhbHNlDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgICAgIHBE YXlGaWVsZC5GaWVsZE5hbWUgPSAnRGF5Jw0KPiANCj4gLSAgICAgICAgICAgICAgICBwRGF5Rmll bGQuRmllbGRUeXBlLCBfID0gc2VsZi5HZXREYXRhVHlwZSgnVUlOVDgnKQ0KPiANCj4gLSAgICAg ICAgICAgICAgICBwRGF5RmllbGQuT2Zmc2V0ID0gMw0KPiANCj4gLSAgICAgICAgICAgICAgICBw RGF5RmllbGQuTmV4dCA9IE5vbmUNCj4gDQo+IC0gICAgICAgICAgICAgICAgcERheUZpZWxkLkFy cmF5TnVtID0gMA0KPiANCj4gLSAgICAgICAgICAgICAgICBwRGF5RmllbGQuSXNCaXRGaWVsZCA9 IEZhbHNlDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgICAgIHBOZXdUeXBlLk1lbWJlcnMg PSBwWWVhckZpZWxkDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgZWxpZiBnSW50ZXJuYWxU eXBlc1RhYmxlW2ldLlR5cGVOYW1lID09ICdFRklfSElJX1RJTUUnOg0KPiANCj4gLSAgICAgICAg ICAgICAgICBwSG91cnNGaWVsZCAgPSBTVmZyRGF0YUZpZWxkKCkNCj4gDQo+IC0gICAgICAgICAg ICAgICAgcE1pbnV0ZXNGaWVsZCAgPSBTVmZyRGF0YUZpZWxkKCkNCj4gDQo+IC0gICAgICAgICAg ICAgICAgcFNlY29uZHNGaWVsZCAgPSBTVmZyRGF0YUZpZWxkKCkNCj4gDQo+IC0NCj4gDQo+IC0g ICAgICAgICAgICAgICAgcEhvdXJzRmllbGQuRmllbGROYW1lID0gJ0hvdXJzJw0KPiANCj4gLSAg ICAgICAgICAgICAgICBwSG91cnNGaWVsZC5GaWVsZFR5cGUsIF8gPSBzZWxmLkdldERhdGFUeXBl KCdVSU5UOCcpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHBIb3Vyc0ZpZWxkLk9mZnNldCA9IDAN Cj4gDQo+IC0gICAgICAgICAgICAgICAgcEhvdXJzRmllbGQuTmV4dCA9IHBNaW51dGVzRmllbGQN Cj4gDQo+IC0gICAgICAgICAgICAgICAgcEhvdXJzRmllbGQuQXJyYXlOdW0gPSAwDQo+IA0KPiAt ICAgICAgICAgICAgICAgIHBIb3Vyc0ZpZWxkLklzQml0RmllbGQgPSBGYWxzZQ0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgICAgICAgICBwTWludXRlc0ZpZWxkLkZpZWxkTmFtZSA9ICdNaW51dGVz Jw0KPiANCj4gLSAgICAgICAgICAgICAgICBwTWludXRlc0ZpZWxkLkZpZWxkVHlwZSwgXyA9IHNl bGYuR2V0RGF0YVR5cGUoJ1VJTlQ4JykNCj4gDQo+IC0gICAgICAgICAgICAgICAgcE1pbnV0ZXNG aWVsZC5PZmZzZXQgPSAxDQo+IA0KPiAtICAgICAgICAgICAgICAgIHBNaW51dGVzRmllbGQuTmV4 dCA9IHBTZWNvbmRzRmllbGQNCj4gDQo+IC0gICAgICAgICAgICAgICAgcE1pbnV0ZXNGaWVsZC5B cnJheU51bSA9IDANCj4gDQo+IC0gICAgICAgICAgICAgICAgcE1pbnV0ZXNGaWVsZC5Jc0JpdEZp ZWxkID0gRmFsc2UNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICAgICAgcFNlY29uZHNGaWVs ZC5GaWVsZE5hbWUgPSAnU2Vjb25kcycNCj4gDQo+IC0gICAgICAgICAgICAgICAgcFNlY29uZHNG aWVsZC5GaWVsZFR5cGUsIF8gPSBzZWxmLkdldERhdGFUeXBlKCdVSU5UOCcpDQo+IA0KPiAtICAg ICAgICAgICAgICAgIHBTZWNvbmRzRmllbGQuT2Zmc2V0ID0gMg0KPiANCj4gLSAgICAgICAgICAg ICAgICBwU2Vjb25kc0ZpZWxkLk5leHQgPSBOb25lDQo+IA0KPiAtICAgICAgICAgICAgICAgIHBT ZWNvbmRzRmllbGQuQXJyYXlOdW0gPSAwDQo+IA0KPiAtICAgICAgICAgICAgICAgIHBTZWNvbmRz RmllbGQuSXNCaXRGaWVsZCA9IEZhbHNlDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgICAg IHBOZXdUeXBlLk1lbWJlcnMgPSBwSG91cnNGaWVsZA0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAg ICAgIGVsaWYgZ0ludGVybmFsVHlwZXNUYWJsZVtpXS5UeXBlTmFtZSA9PSAnRUZJX0hJSV9SRUYn Og0KPiANCj4gLSAgICAgICAgICAgICAgICBwUXVlc3Rpb25JZEZpZWxkICA9IFNWZnJEYXRhRmll bGQoKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBwRm9ybUlkRmllbGQgID0gU1ZmckRhdGFGaWVs ZCgpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHBGb3JtU2V0R3VpZEZpZWxkICA9IFNWZnJEYXRh RmllbGQoKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBwRGV2aWNlUGF0aEZpZWxkID0gU1ZmckRh dGFGaWVsZCgpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgICAgIHBRdWVzdGlvbklkRmll bGQuRmllbGROYW1lID0gJ1F1ZXN0aW9uSWQnDQo+IA0KPiAtICAgICAgICAgICAgICAgIHBRdWVz dGlvbklkRmllbGQuRmllbGRUeXBlLCBfID0gc2VsZi5HZXREYXRhVHlwZSgnVUlOVDE2JykNCj4g DQo+IC0gICAgICAgICAgICAgICAgcFF1ZXN0aW9uSWRGaWVsZC5PZmZzZXQgPSAwDQo+IA0KPiAt ICAgICAgICAgICAgICAgIHBRdWVzdGlvbklkRmllbGQuTmV4dCA9IHBGb3JtSWRGaWVsZA0KPiAN Cj4gLSAgICAgICAgICAgICAgICBwUXVlc3Rpb25JZEZpZWxkLkFycmF5TnVtID0gMA0KPiANCj4g LSAgICAgICAgICAgICAgICBwUXVlc3Rpb25JZEZpZWxkLklzQml0RmllbGQgPSBGYWxzZQ0KPiAN Cj4gLQ0KPiANCj4gLSAgICAgICAgICAgICAgICBwRm9ybUlkRmllbGQuRmllbGROYW1lID0gJ0Zv cm1JZCcNCj4gDQo+IC0gICAgICAgICAgICAgICAgcEZvcm1JZEZpZWxkLkZpZWxkVHlwZSwgXyA9 IHNlbGYuR2V0RGF0YVR5cGUoJ1VJTlQxNicpDQo+IA0KPiAtICAgICAgICAgICAgICAgIHBGb3Jt SWRGaWVsZC5PZmZzZXQgPSAyDQo+IA0KPiAtICAgICAgICAgICAgICAgIHBGb3JtSWRGaWVsZC5O ZXh0ID0gcEZvcm1TZXRHdWlkRmllbGQNCj4gDQo+IC0gICAgICAgICAgICAgICAgcEZvcm1JZEZp ZWxkLkFycmF5TnVtID0gMA0KPiANCj4gLSAgICAgICAgICAgICAgICBwRm9ybUlkRmllbGQuSXNC aXRGaWVsZCA9IEZhbHNlDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgICAgIHBGb3JtU2V0 R3VpZEZpZWxkLkZpZWxkTmFtZSA9ICdGb3JtU2V0R3VpZCcNCj4gDQo+IC0gICAgICAgICAgICAg ICAgcEZvcm1TZXRHdWlkRmllbGQuRmllbGRUeXBlLCBfID0gc2VsZi5HZXREYXRhVHlwZSgnRUZJ X0dVSUQnKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBwRm9ybVNldEd1aWRGaWVsZC5PZmZzZXQg PSA0DQo+IA0KPiAtICAgICAgICAgICAgICAgIHBGb3JtU2V0R3VpZEZpZWxkLk5leHQgPSBwRGV2 aWNlUGF0aEZpZWxkDQo+IA0KPiAtICAgICAgICAgICAgICAgIHBGb3JtU2V0R3VpZEZpZWxkLkFy cmF5TnVtID0gMA0KPiANCj4gLSAgICAgICAgICAgICAgICBwRm9ybVNldEd1aWRGaWVsZC5Jc0Jp dEZpZWxkID0gRmFsc2UNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICAgICAgcERldmljZVBh dGhGaWVsZC5GaWVsZE5hbWUgPSAnRGV2aWNlUGF0aCcNCj4gDQo+IC0gICAgICAgICAgICAgICAg cERldmljZVBhdGhGaWVsZC5GaWVsZFR5cGUsIF8gPSBzZWxmLkdldERhdGFUeXBlKCdFRklfU1RS SU5HX0lEJykNCj4gDQo+IC0gICAgICAgICAgICAgICAgcERldmljZVBhdGhGaWVsZC5PZmZzZXQg PSAyMA0KPiANCj4gLSAgICAgICAgICAgICAgICBwRGV2aWNlUGF0aEZpZWxkLk5leHQgPSBOb25l DQo+IA0KPiAtICAgICAgICAgICAgICAgIHBEZXZpY2VQYXRoRmllbGQuQXJyYXlOdW0gPSAwDQo+ IA0KPiAtICAgICAgICAgICAgICAgIHBEZXZpY2VQYXRoRmllbGQuSXNCaXRGaWVsZCA9IEZhbHNl DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgICAgIHBOZXdUeXBlLk1lbWJlcnMgPSBwUXVl c3Rpb25JZEZpZWxkDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgcE5ld1R5cGUuTmV4dCA9 IE5vbmUNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fUmVnaXN0ZXJOZXdUeXBlKHBOZXdUeXBl KQ0KPiANCj4gLSAgICAgICAgICAgIHBOZXdUeXBlID0gTm9uZQ0KPiANCj4gLQ0KPiANCj4gLSAg ICBkZWYgR2V0RGF0YVR5cGVMaXN0KHNlbGYpOg0KPiANCj4gLSAgICAgICAgcmV0dXJuIHNlbGYu X19EYXRhVHlwZUxpc3QNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFBhY2soc2VsZiwNCj4gDQo+ IC0gICAgICAgICAgICAgTGluZU51bSwNCj4gDQo+IC0gICAgICAgICAgICAgQWN0aW9uLA0KPiAN Cj4gLSAgICAgICAgICAgICBJZGVudGlmaWVyPU5vbmUsDQo+IA0KPiAtICAgICAgICAgICAgIE51 bWJlcj1ERUZBVUxUX1BBQ0tfQUxJR04pOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgQWN0 aW9uICYgVkZSX1BBQ0tfU0hPVzoNCj4gDQo+IC0gICAgICAgICAgICBNc2cgPSBzdHIuZm9ybWF0 KCd2YWx1ZSBvZiBwcmFnbWEgcGFjayhzaG93KSA9PSAlZCcgJQ0KPiANCj4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHNlbGYuX19QYWNrQWxpZ24pKQ0KPiANCj4gLSAgICAgICAgICAg IGdDVmZyRXJyb3JIYW5kbGUuUHJpbnRNc2coTGluZU51bSwgJ1dhcm5pbmcnLCBNc2cpDQo+IA0K PiAtDQo+IA0KPiAtICAgICAgICBpZiBBY3Rpb24gJiBWRlJfUEFDS19QVVNIOg0KPiANCj4gLSAg ICAgICAgICAgIHBOZXcgPSBTVmZyUGFja1N0YWNrTm9kZShJZGVudGlmaWVyLCBzZWxmLl9fUGFj a0FsaWduKQ0KPiANCj4gLSAgICAgICAgICAgIGlmIHBOZXcgPT0gTm9uZToNCj4gDQo+IC0gICAg ICAgICAgICAgICAgcmV0dXJuIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9GQVRBTF9FUlJPUg0K PiANCj4gLSAgICAgICAgICAgIHBOZXcuTmV4dCA9IHNlbGYuX19QYWNrU3RhY2sNCj4gDQo+IC0g ICAgICAgICAgICBzZWxmLl9fUGFja1N0YWNrID0gcE5ldw0KPiANCj4gLQ0KPiANCj4gLSAgICAg ICAgaWYgQWN0aW9uICYgVkZSX1BBQ0tfUE9QOg0KPiANCj4gLSAgICAgICAgICAgIHBOb2RlID0g Tm9uZQ0KPiANCj4gLSAgICAgICAgICAgIGlmIHNlbGYuX19QYWNrU3RhY2sgPT0gTm9uZToNCj4g DQo+IC0gICAgICAgICAgICAgICAgZ0NWZnJFcnJvckhhbmRsZS5QcmludE1zZyhMaW5lTnVtLCAn RXJyb3InLCAnI3ByYWdtYQ0KPiBwYWNrKHBvcC4uLikgOiBtb3JlIHBvcHMgdGhhbiBwdXNoZXMn KQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgIHBOb2RlID0gc2VsZi5fX1BhY2tTdGFjaw0K PiANCj4gLSAgICAgICAgICAgIHdoaWxlIHBOb2RlICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAg ICAgICAgIGlmIHBOb2RlLk1hdGNoKElkZW50aWZpZXIpID09IFRydWU6DQo+IA0KPiAtICAgICAg ICAgICAgICAgICAgICBzZWxmLl9fUGFja0FsaWduID0gcE5vZGUuTnVtYmVyDQo+IA0KPiAtICAg ICAgICAgICAgICAgICAgICBzZWxmLl9fUGFja1N0YWNrID0gcE5vZGUuTmV4dA0KPiANCj4gLSAg ICAgICAgICAgICAgICBwTm9kZSA9IHBOb2RlLk5leHQNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAg IGlmIEFjdGlvbiAmIFZGUl9QQUNLX0FTU0lHTjoNCj4gDQo+IC0gICAgICAgICAgICBQYWNrQWxp Z24gPSAoTnVtYmVyICsgTnVtYmVyICUgMikgaWYgKE51bWJlciA+IDEpIGVsc2UgTnVtYmVyDQo+ IA0KPiAtICAgICAgICAgICAgaWYgUGFja0FsaWduID09IDAgb3IgUGFja0FsaWduID4gMTY6DQo+ IA0KPiAtICAgICAgICAgICAgICAgIGdDVmZyRXJyb3JIYW5kbGUuUHJpbnRNc2coTGluZU51bSwg J0Vycm9yJywgImV4cGVjdGVkIHByYWdtYQ0KPiBwYXJhbWV0ZXIgdG8gYmUgJzEnLCAnMicsICc0 JywgJzgnLCBvciAnMTYnIikNCj4gDQo+IC0gICAgICAgICAgICBlbHNlOg0KPiANCj4gLSAgICAg ICAgICAgICAgICBzZWxmLl9fUGFja0FsaWduID0gUGFja0FsaWduDQo+IA0KPiAtDQo+IA0KPiAt ICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gDQo+IC0N Cj4gDQo+IC0gICAgZGVmIERlY2xhcmVEYXRhVHlwZUJlZ2luKHNlbGYpOg0KPiANCj4gLSAgICAg ICAgcE5ld1R5cGUgPSBTVmZyRGF0YVR5cGUoKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcE5l d1R5cGUuVHlwZU5hbWUgPSAnJw0KPiANCj4gLSAgICAgICAgcE5ld1R5cGUuVHlwZSA9IEVGSV9J RlJfVFlQRV9PVEhFUg0KPiANCj4gLSAgICAgICAgcE5ld1R5cGUuQWxpZ24gPSBERUZBVUxUX0FM SUdODQo+IA0KPiAtICAgICAgICBwTmV3VHlwZS5Ub3RhbFNpemUgPSAwDQo+IA0KPiAtICAgICAg ICBwTmV3VHlwZS5IYXNCaXRGaWVsZCA9IEZhbHNlDQo+IA0KPiAtICAgICAgICBwTmV3VHlwZS5N ZW1iZXJzID0gTm9uZQ0KPiANCj4gLSAgICAgICAgcE5ld1R5cGUuTmV4dCA9IE5vbmUNCj4gDQo+ IC0gICAgICAgIHNlbGYuX19OZXdEYXRhVHlwZSA9IHBOZXdUeXBlDQo+IA0KPiAtDQo+IA0KPiAt ICAgIGRlZiBTZXROZXdUeXBlVHlwZShzZWxmLCBUeXBlKToNCj4gDQo+IC0gICAgICAgIGlmIHNl bGYuX19OZXdEYXRhVHlwZSA9PSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIHJldHVybiBWZnJS ZXR1cm5Db2RlLlZGUl9SRVRVUk5fRVJST1JfU0tJUEVEDQo+IA0KPiAtDQo+IA0KPiAtICAgICAg ICBpZiBUeXBlID09IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIFZmclJldHVybkNv ZGUuVkZSX1JFVFVSTl9GQVRBTF9FUlJPUg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi5f X05ld0RhdGFUeXBlLlR5cGUgPSBUeXBlICAjIG5lZWQgdG8gbGltaXQgdGhlIHZhbHVlIG9mIHRo ZSB0eXBlDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJf UkVUVVJOX1NVQ0NFU1MNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFNldE5ld1R5cGVUb3RhbFNp emUoc2VsZiwgU2l6ZSk6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fTmV3RGF0YVR5cGUuVG90YWxT aXplID0gU2l6ZQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgU2V0TmV3VHlwZUFsaWduKHNlbGYs IEFsaWduKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19OZXdEYXRhVHlwZS5BbGlnbiA9IEFsaWdu DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBTZXROZXdUeXBlTmFtZShzZWxmLCBUeXBlTmFtZSk6 DQo+IA0KPiAtICAgICAgICBpZiBzZWxmLl9fTmV3RGF0YVR5cGUgPT0gTm9uZToNCj4gDQo+IC0g ICAgICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0VSUk9SX1NLSVBFRA0K PiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgVHlwZU5hbWUgPT0gTm9uZToNCj4gDQo+IC0gICAg ICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0ZBVEFMX0VSUk9SDQo+IA0K PiAtDQo+IA0KPiAtICAgICAgICBpZiBsZW4oVHlwZU5hbWUpID49IE1BWF9OQU1FX0xFTjoNCj4g DQo+IC0gICAgICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURf UEFSQU1FVEVSDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBwVHlwZSA9IHNlbGYuX19EYXRhVHlw ZUxpc3QNCj4gDQo+IC0gICAgICAgIHdoaWxlIHBUeXBlICE9IE5vbmU6DQo+IA0KPiAtICAgICAg ICAgICAgaWYgcFR5cGUuVHlwZU5hbWUgPT0gVHlwZU5hbWU6DQo+IA0KPiAtICAgICAgICAgICAg ICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fUkVERUZJTkVEDQo+IA0KPiAtICAg ICAgICAgICAgcFR5cGUgPSBwVHlwZS5OZXh0DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBzZWxm Ll9fTmV3RGF0YVR5cGUuVHlwZU5hbWUgPSBUeXBlTmFtZQ0KPiANCj4gLSAgICAgICAgcmV0dXJu IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRl ZiBfX0FsaWduU3R1ZmYoc2VsZiwgU2l6ZSwgQWxpZ24pOg0KPiANCj4gLSAgICAgICAgcmV0dXJu IEFsaWduIC0gKFNpemUpICUgKEFsaWduKQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgRGVjbGFy ZURhdGFUeXBlRW5kKHNlbGYpOg0KPiANCj4gLSAgICAgICAgaWYgc2VsZi5fX05ld0RhdGFUeXBl LlR5cGVOYW1lID09ICcnOg0KPiANCj4gLSAgICAgICAgICAgIHJldHVybg0KPiANCj4gLQ0KPiAN Cj4gLSAgICAgICAgaWYgc2VsZi5fX05ld0RhdGFUeXBlLlRvdGFsU2l6ZSAlIHNlbGYuX19OZXdE YXRhVHlwZS5BbGlnbiAhPSAwOg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19OZXdEYXRhVHlw ZS5Ub3RhbFNpemUgKz0gc2VsZi5fX0FsaWduU3R1ZmYoDQo+IA0KPiAtICAgICAgICAgICAgICAg IHNlbGYuX19OZXdEYXRhVHlwZS5Ub3RhbFNpemUsIHNlbGYuX19OZXdEYXRhVHlwZS5BbGlnbikN Cj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYuX19SZWdpc3Rlck5ld1R5cGUoc2VsZi5fX05l d0RhdGFUeXBlKQ0KPiANCj4gLSAgICAgICAgaWYgc2VsZi5fX0ZpcnN0TmV3RGF0YVR5cGVOYW1l ID09IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX0ZpcnN0TmV3RGF0YVR5cGVOYW1l ID0gc2VsZi5fX05ld0RhdGFUeXBlLlR5cGVOYW1lDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBz ZWxmLl9fTmV3RGF0YVR5cGUgPSBOb25lDQo+IA0KPiAtDQo+IA0KPiAtICAgICMgdHdvIGRlZmlu aXRpb25zDQo+IA0KPiAtICAgIGRlZiBHZXREYXRhVHlwZVNpemVCeVR5cGVOYW1lKHNlbGYsIFR5 cGVOYW1lKToNCj4gDQo+IC0gICAgICAgIFNpemUgPSAwDQo+IA0KPiAtICAgICAgICBwRGF0YVR5 cGUgPSBzZWxmLl9fRGF0YVR5cGVMaXN0DQo+IA0KPiAtICAgICAgICB3aGlsZSBwRGF0YVR5cGUg IT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBpZiBwRGF0YVR5cGUuVHlwZU5hbWUgPT0gVHlw ZU5hbWU6DQo+IA0KPiAtICAgICAgICAgICAgICAgIFNpemUgPSBwRGF0YVR5cGUuVG90YWxTaXpl DQo+IA0KPiAtICAgICAgICAgICAgICAgIHJldHVybiBTaXplLCBWZnJSZXR1cm5Db2RlLlZGUl9S RVRVUk5fU1VDQ0VTUw0KPiANCj4gLSAgICAgICAgICAgIHBEYXRhVHlwZSA9IHBEYXRhVHlwZS5O ZXh0DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gU2l6ZSwgVmZyUmV0dXJuQ29kZS5W RlJfUkVUVVJOX1VOREVGSU5FRA0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0RGF0YVR5cGVT aXplQnlEYXRhVHlwZShzZWxmLCBEYXRhVHlwZSk6DQo+IA0KPiAtICAgICAgICBTaXplID0gMA0K PiANCj4gLSAgICAgICAgRGF0YVR5cGUgPSBEYXRhVHlwZSAmIDB4MEYNCj4gDQo+IC0gICAgICAg ICMgRm9yIHVzZXIgZGVmaW5lZCBkYXRhIHR5cGUsIHRoZSBzaXplIGNhbid0IGJlIGdvdCBieSB0 aGlzIGZ1bmN0aW9uLg0KPiANCj4gLSAgICAgICAgaWYgRGF0YVR5cGUgPT0gRUZJX0lGUl9UWVBF X09USEVSOg0KPiANCj4gLSAgICAgICAgICAgIHJldHVybiBTaXplLCBWZnJSZXR1cm5Db2RlLlZG Ul9SRVRVUk5fU1VDQ0VTUw0KPiANCj4gLSAgICAgICAgcERhdGFUeXBlID0gc2VsZi5fX0RhdGFU eXBlTGlzdA0KPiANCj4gLSAgICAgICAgd2hpbGUgcERhdGFUeXBlICE9IE5vbmU6DQo+IA0KPiAt ICAgICAgICAgICAgaWYgRGF0YVR5cGUgPT0gcERhdGFUeXBlLlR5cGU6DQo+IA0KPiAtICAgICAg ICAgICAgICAgIFNpemUgPSBwRGF0YVR5cGUuVG90YWxTaXplDQo+IA0KPiAtICAgICAgICAgICAg ICAgIHJldHVybiBTaXplLCBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiANCj4g LSAgICAgICAgICAgIHBEYXRhVHlwZSA9IHBEYXRhVHlwZS5OZXh0DQo+IA0KPiAtDQo+IA0KPiAt ICAgICAgICByZXR1cm4gU2l6ZSwgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1VOREVGSU5FRA0K PiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19FeHRyYWN0U3RydWN0VHlwZU5hbWUoc2VsZiwgVmFy U3RyKToNCj4gDQo+IC0gICAgICAgIHRyeToNCj4gDQo+IC0gICAgICAgICAgICBpbmRleCA9IFZh clN0ci5pbmRleCgnLicpDQo+IA0KPiAtICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoNCj4gDQo+ IC0gICAgICAgICAgICByZXR1cm4gVmFyU3RyLCBsZW4oVmFyU3RyKQ0KPiANCj4gLSAgICAgICAg ZWxzZToNCj4gDQo+IC0gICAgICAgICAgICByZXR1cm4gVmFyU3RyWzA6aW5kZXhdLCBpbmRleCAr IDENCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9fRXh0cmFjdEZpZWxkTmFtZUFuZEFycmFyeShz ZWxmLCBWYXJTdHIsIHMpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgQXJyYXlJZHggPSBJTlZB TElEX0FSUkFZX0lOREVYDQo+IA0KPiAtICAgICAgICBzX2NvcHkgPSBzDQo+IA0KPiAtICAgICAg ICB3aGlsZSAocyA8IGxlbihWYXJTdHIpIGFuZCBWYXJTdHJbc10gIT0gJy4nIGFuZCBWYXJTdHJb c10gIT0gJ1snDQo+IA0KPiAtICAgICAgICAgICAgICAgYW5kIFZhclN0cltzXSAhPSAnXScpOg0K PiANCj4gLSAgICAgICAgICAgIHMgKz0gMQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgRk5hbWUg PSBWYXJTdHJbc19jb3B5OnNdDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBzID09IGxlbihW YXJTdHIpOg0KPiANCj4gLSAgICAgICAgICAgIHJldHVybiBBcnJheUlkeCwgcywgRk5hbWUsIFZm clJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBl bGlmIFZhclN0cltzXSA9PSAnLic6DQo+IA0KPiAtICAgICAgICAgICAgcyArPSAxDQo+IA0KPiAt ICAgICAgICAgICAgcmV0dXJuIEFycmF5SWR4LCBzLCBGTmFtZSwgVmZyUmV0dXJuQ29kZS5WRlJf UkVUVVJOX1NVQ0NFU1MNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGVsaWYgVmFyU3RyW3NdID09 ICdbJzoNCj4gDQo+IC0gICAgICAgICAgICBzICs9IDENCj4gDQo+IC0gICAgICAgICAgICB0cnk6 DQo+IA0KPiAtICAgICAgICAgICAgICAgIGUgPSBzICsgVmFyU3RyW3M6XS5pbmRleCgnXScpDQo+ IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6DQo+IA0KPiAtICAg ICAgICAgICAgICAgIHJldHVybiBOb25lLCBOb25lLCBOb25lLA0KPiBWZnJSZXR1cm5Db2RlLlZG Ul9SRVRVUk5fREFUQV9TVFJJTkdfRVJST1INCj4gDQo+IC0gICAgICAgICAgICBlbHNlOg0KPiAN Cj4gLSAgICAgICAgICAgICAgICBBcnJheVN0ciA9IFZhclN0cltzOmVdDQo+IA0KPiAtICAgICAg ICAgICAgICAgIEFycmF5SWR4ID0gaW50KEFycmF5U3RyKQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBpZiBWYXJTdHJbZV0gPT0gJ10nOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgZSArPSAx DQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIGUgPCBsZW4oVmFyU3RyKSBhbmQgKFZhclN0cltl XSA9PSAnLicpOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgZSArPSAxDQo+IA0KPiAtICAg ICAgICAgICAgICAgIHJldHVybiBBcnJheUlkeCwgZSwgRk5hbWUsIFZmclJldHVybkNvZGUuVkZS X1JFVFVSTl9TVUNDRVNTDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBlbGlmIFZhclN0cltzXSA9 PSAnXSc6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUsIE5vbmUsDQo+IFZm clJldHVybkNvZGUuVkZSX1JFVFVSTl9EQVRBX1NUUklOR19FUlJPUg0KPiANCj4gLQ0KPiANCj4g LSAgICAgICAgcmV0dXJuIEFycmF5SWR4LCBzLCBGTmFtZSwgVmZyUmV0dXJuQ29kZS5WRlJfUkVU VVJOX1NVQ0NFU1MNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldFR5cGVGaWVsZChzZWxmLCBG TmFtZSwgVHlwZSk6DQo+IA0KPiAtICAgICAgICBpZiBGTmFtZSA9PSBOb25lIG9yIFR5cGUgPT0g Tm9uZToNCj4gDQo+IC0gICAgICAgICAgICByZXR1cm4gTm9uZSwgVmZyUmV0dXJuQ29kZS5WRlJf UkVUVVJOX0ZBVEFMX0VSUk9SDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBwRmllbGQgPSBUeXBl Lk1lbWJlcnMNCj4gDQo+IC0gICAgICAgIHdoaWxlIChwRmllbGQgIT0gTm9uZSk6DQo+IA0KPiAt DQo+IA0KPiAtICAgICAgICAgICAgaWYgVHlwZS5UeXBlID09IEVGSV9JRlJfVFlQRV9USU1FOg0K PiANCj4gLSAgICAgICAgICAgICAgICBpZiBGTmFtZSA9PSAnSG91cic6DQo+IA0KPiAtICAgICAg ICAgICAgICAgICAgICBGTmFtZSA9ICdIb3VycycNCj4gDQo+IC0gICAgICAgICAgICAgICAgZWxp ZiBGTmFtZSA9PSAnTWludXRlJzoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIEZOYW1lID09 ICdNaW51dGVzJw0KPiANCj4gLSAgICAgICAgICAgICAgICBlbGlmIEZOYW1lID09ICdTZWNvbmQn Og0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgRk5hbWUgPSAnU2Vjb25kcycNCj4gDQo+IC0g ICAgICAgICAgICBpZiBwRmllbGQuRmllbGROYW1lID09IEZOYW1lOg0KPiANCj4gLSAgICAgICAg ICAgICAgICBGaWVsZCA9IHBGaWVsZA0KPiANCj4gLSAgICAgICAgICAgICAgICByZXR1cm4gRmll bGQsIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+IA0KPiAtDQo+IA0KPiAtICAg ICAgICAgICAgcEZpZWxkID0gcEZpZWxkLk5leHQNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJl dHVybiBOb25lLCBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fVU5ERUZJTkVEDQo+IA0KPiAtDQo+ IA0KPiAtICAgIGRlZiBJc1RoaXNCaXRGaWVsZChzZWxmLCBWYXJTdHJOYW1lKToNCj4gDQo+IC0N Cj4gDQo+IC0gICAgICAgIFROYW1lLCBpID0gc2VsZi5fX0V4dHJhY3RTdHJ1Y3RUeXBlTmFtZShW YXJTdHJOYW1lKQ0KPiANCj4gLSAgICAgICAgcFR5cGUsIFJldHVybkNvZGUgPSBzZWxmLkdldERh dGFUeXBlKFROYW1lKQ0KPiANCj4gLSAgICAgICAgaWYgUmV0dXJuQ29kZSAhPSBWZnJSZXR1cm5D b2RlLlZGUl9SRVRVUk5fU1VDQ0VTUzoNCj4gDQo+IC0gICAgICAgICAgICByZXR1cm4gTm9uZSwg UmV0dXJuQ29kZQ0KPiANCj4gLSAgICAgICAgcEZpZWxkID0gTm9uZQ0KPiANCj4gLSAgICAgICAg d2hpbGUgKGkgPCBsZW4oVmFyU3RyTmFtZSkpOg0KPiANCj4gLSAgICAgICAgICAgICMgaSBzdGFy dCBmcm9tIGZpZWxkDQo+IA0KPiAtICAgICAgICAgICAgXywgaSwgRk5hbWUsIFJldHVybkNvZGUg PSBzZWxmLl9fRXh0cmFjdEZpZWxkTmFtZUFuZEFycmFyeSgNCj4gDQo+IC0gICAgICAgICAgICAg ICAgVmFyU3RyTmFtZSwgaSkNCj4gDQo+IC0gICAgICAgICAgICBpZiBSZXR1cm5Db2RlICE9IFZm clJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTOg0KPiANCj4gLSAgICAgICAgICAgICAgICBy ZXR1cm4gTm9uZSwgUmV0dXJuQ29kZQ0KPiANCj4gLSAgICAgICAgICAgIHBGaWVsZCwgUmV0dXJu Q29kZSA9IHNlbGYuR2V0VHlwZUZpZWxkKEZOYW1lLCBwVHlwZSkNCj4gDQo+IC0gICAgICAgICAg ICBpZiBSZXR1cm5Db2RlICE9IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTOg0KPiAN Cj4gLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZSwgUmV0dXJuQ29kZQ0KPiANCj4gLSAgICAg ICAgICAgIHBUeXBlID0gcEZpZWxkLkZpZWxkVHlwZQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAg aWYgcEZpZWxkICE9IE5vbmUgYW5kIHBGaWVsZC5Jc0JpdEZpZWxkOg0KPiANCj4gLSAgICAgICAg ICAgIHJldHVybiBUcnVlLCBSZXR1cm5Db2RlDQo+IA0KPiAtICAgICAgICBlbHNlOg0KPiANCj4g LSAgICAgICAgICAgIHJldHVybiBGYWxzZSwgUmV0dXJuQ29kZQ0KPiANCj4gLQ0KPiANCj4gLSAg ICBkZWYgR2V0RmllbGRPZmZzZXQoc2VsZiwgRmllbGQsIEFycmF5SWR4LCBJc0JpdEZpZWxkKToN Cj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIEZpZWxkID09IE5vbmU6DQo+IA0KPiAtICAgICAg ICAgICAgcmV0dXJuIE5vbmUsIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9GQVRBTF9FUlJPUg0K PiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgKEFycmF5SWR4ICE9IElOVkFMSURfQVJSQVlfSU5E RVgpIGFuZCAoRmllbGQuQXJyYXlOdW0gPT0gMCBvcg0KPiANCj4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGQuQXJyYXlOdW0gPD0gQXJyYXlJ ZHgpOg0KPiANCj4gLSAgICAgICAgICAgIHJldHVybiBOb25lLCBWZnJSZXR1cm5Db2RlLlZGUl9S RVRVUk5fRVJST1JfQVJSQVJZX05VTQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgSWR4ID0gMCBp ZiBBcnJheUlkeCA9PSBJTlZBTElEX0FSUkFZX0lOREVYIGVsc2UgQXJyYXlJZHgNCj4gDQo+IC0g ICAgICAgIGlmIElzQml0RmllbGQ6DQo+IA0KPiAtICAgICAgICAgICAgT2Zmc2V0ID0gRmllbGQu Qml0T2Zmc2V0ICsgRmllbGQuRmllbGRUeXBlLlRvdGFsU2l6ZSAqIElkeCAqIDgNCj4gDQo+IC0g ICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgT2Zmc2V0ID0gRmllbGQuT2Zmc2V0ICsg RmllbGQuRmllbGRUeXBlLlRvdGFsU2l6ZSAqIElkeA0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAg cmV0dXJuIE9mZnNldCwgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gDQo+IC0N Cj4gDQo+IC0gICAgZGVmIF9fR2V0RmllbGRXaWR0aChzZWxmLCBGaWVsZCk6DQo+IA0KPiAtICAg ICAgICBpZiBGaWVsZCA9PSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIHJldHVybiAwDQo+IA0K PiAtICAgICAgICByZXR1cm4gRmllbGQuRmllbGRUeXBlLlR5cGUNCj4gDQo+IC0NCj4gDQo+IC0g ICAgZGVmIF9fR2V0RmllbGRTaXplKHNlbGYsIEZpZWxkLCBBcnJheUlkeCwgQml0RmllbGQpOg0K PiANCj4gLSAgICAgICAgaWYgRmllbGQgPT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICByZXR1 cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0ZBVEFMX0VSUk9SDQo+IA0KPiAtDQo+IA0KPiAt ICAgICAgICBpZiAoQXJyYXlJZHggPT0gSU5WQUxJRF9BUlJBWV9JTkRFWCkgYW5kIChGaWVsZC5B cnJheU51bSAhPSAwKToNCj4gDQo+IC0gICAgICAgICAgICByZXR1cm4gRmllbGQuRmllbGRUeXBl LlRvdGFsU2l6ZSAqIEZpZWxkLkFycmF5TnVtDQo+IA0KPiAtICAgICAgICBlbHNlOg0KPiANCj4g LQ0KPiANCj4gLSAgICAgICAgICAgIGlmIEJpdEZpZWxkOg0KPiANCj4gLSAgICAgICAgICAgICAg ICByZXR1cm4gRmllbGQuQml0V2lkdGgNCj4gDQo+IC0gICAgICAgICAgICBlbHNlOg0KPiANCj4g LSAgICAgICAgICAgICAgICByZXR1cm4gRmllbGQuRmllbGRUeXBlLlRvdGFsU2l6ZQ0KPiANCj4g LQ0KPiANCj4gLSAgICBkZWYgR2V0RGF0YUZpZWxkSW5mbyhzZWxmLCBWYXJTdHIpOg0KPiANCj4g LQ0KPiANCj4gLSAgICAgICAgIyBWYXJTdHIgLT4gVHlwZS5GaWVsZA0KPiANCj4gLSAgICAgICAg T2Zmc2V0ID0gMA0KPiANCj4gLSAgICAgICAgVHlwZSA9IEVGSV9JRlJfVFlQRV9PVEhFUg0KPiAN Cj4gLSAgICAgICAgU2l6ZSA9IDANCj4gDQo+IC0gICAgICAgIEJpdEZpZWxkID0gRmFsc2UNCj4g DQo+IC0NCj4gDQo+IC0gICAgICAgIFROYW1lLCBpID0gc2VsZi5fX0V4dHJhY3RTdHJ1Y3RUeXBl TmFtZShWYXJTdHIpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBwVHlwZSwgUmV0dXJuQ29kZSA9 IHNlbGYuR2V0RGF0YVR5cGUoVE5hbWUpDQo+IA0KPiAtICAgICAgICBpZiBSZXR1cm5Db2RlICE9 IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTOg0KPiANCj4gLSAgICAgICAgICAgIHJl dHVybiBPZmZzZXQsIFR5cGUsIFNpemUsIEJpdEZpZWxkLCBSZXR1cm5Db2RlDQo+IA0KPiAtDQo+ IA0KPiAtICAgICAgICBCaXRGaWVsZCwgUmV0dXJuQ29kZSA9IHNlbGYuSXNUaGlzQml0RmllbGQo VmFyU3RyKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgUmV0dXJuQ29kZSAhPSBWZnJSZXR1 cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUzoNCj4gDQo+IC0gICAgICAgICAgICByZXR1cm4gT2Zm c2V0LCBUeXBlLCBTaXplLCBCaXRGaWVsZCwgUmV0dXJuQ29kZQ0KPiANCj4gLQ0KPiANCj4gLSAg ICAgICAgIz9pZiBpdCBpcyBub3Qgc3RydWN0IGRhdGEgdHlwZQ0KPiANCj4gLSAgICAgICAgVHlw ZSA9IHBUeXBlLlR5cGUNCj4gDQo+IC0gICAgICAgIFNpemUgPSBwVHlwZS5Ub3RhbFNpemUNCj4g DQo+IC0NCj4gDQo+IC0gICAgICAgIHdoaWxlIChpIDwgbGVuKFZhclN0cikpOg0KPiANCj4gLSAg ICAgICAgICAgIEFycmF5SWR4LCBpLCBGTmFtZSwgUmV0dXJuQ29kZSA9IHNlbGYuX19FeHRyYWN0 RmllbGROYW1lQW5kQXJyYXJ5KA0KPiANCj4gLSAgICAgICAgICAgICAgICBWYXJTdHIsIGkpDQo+ IA0KPiAtICAgICAgICAgICAgaWYgUmV0dXJuQ29kZSAhPSBWZnJSZXR1cm5Db2RlLlZGUl9SRVRV Uk5fU1VDQ0VTUzoNCj4gDQo+IC0gICAgICAgICAgICAgICAgcmV0dXJuIE9mZnNldCwgVHlwZSwg U2l6ZSwgQml0RmllbGQsIFJldHVybkNvZGUNCj4gDQo+IC0gICAgICAgICAgICBwRmllbGQsIFJl dHVybkNvZGUgPSBzZWxmLkdldFR5cGVGaWVsZChGTmFtZSwgcFR5cGUpDQo+IA0KPiAtICAgICAg ICAgICAgaWYgUmV0dXJuQ29kZSAhPSBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUzoN Cj4gDQo+IC0gICAgICAgICAgICAgICAgcmV0dXJuIE9mZnNldCwgVHlwZSwgU2l6ZSwgQml0Rmll bGQsIFJldHVybkNvZGUNCj4gDQo+IC0gICAgICAgICAgICBwVHlwZSA9IHBGaWVsZC5GaWVsZFR5 cGUNCj4gDQo+IC0gICAgICAgICAgICBUbXAsIFJldHVybkNvZGUgPSBzZWxmLkdldEZpZWxkT2Zm c2V0KHBGaWVsZCwgQXJyYXlJZHgsDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwRmllbGQuSXNCaXRGaWVsZCkNCj4gDQo+IC0gICAgICAg ICAgICBpZiBSZXR1cm5Db2RlICE9IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTOg0K PiANCj4gLSAgICAgICAgICAgICAgICByZXR1cm4gT2Zmc2V0LCBUeXBlLCBTaXplLCBCaXRGaWVs ZCwgUmV0dXJuQ29kZQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgIGlmIEJpdEZpZWxkIGFu ZCBwRmllbGQuSXNCaXRGaWVsZCA9PSBGYWxzZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgT2Zm c2V0ID0gaW50KE9mZnNldCArIFRtcCAqIDgpDQo+IA0KPiAtICAgICAgICAgICAgZWxzZToNCj4g DQo+IC0gICAgICAgICAgICAgICAgT2Zmc2V0ID0gaW50KE9mZnNldCArIFRtcCkNCj4gDQo+IC0N Cj4gDQo+IC0gICAgICAgICAgICBUeXBlID0gc2VsZi5fX0dldEZpZWxkV2lkdGgocEZpZWxkKQ0K PiANCj4gLSAgICAgICAgICAgIFNpemUgPSBzZWxmLl9fR2V0RmllbGRTaXplKHBGaWVsZCwgQXJy YXlJZHgsIEJpdEZpZWxkKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIE9mZnNldCwg VHlwZSwgU2l6ZSwgQml0RmllbGQsIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+ IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX1JlZ2lzdGVyTmV3VHlwZShzZWxmLCBOZXcpOg0KPiAN Cj4gLSAgICAgICAgTmV3Lk5leHQgPSBzZWxmLl9fRGF0YVR5cGVMaXN0DQo+IA0KPiAtICAgICAg ICBzZWxmLl9fRGF0YVR5cGVMaXN0ID0gTmV3DQo+IA0KPiAtICAgICAgICByZXR1cm4NCj4gDQo+ IC0NCj4gDQo+IC0gICAgZGVmIERhdGFUeXBlQWRkRmllbGQoc2VsZiwgRmllbGROYW1lLCBUeXBl TmFtZSwgQXJyYXlOdW0sDQo+IEZpZWxkSW5Vbmlvbik6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAg ICBwRmllbGRUeXBlLCBSZXR1cm5Db2RlID0gc2VsZi5HZXREYXRhVHlwZShUeXBlTmFtZSkNCj4g DQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIFJldHVybkNvZGUgIT0gVmZyUmV0dXJuQ29kZS5WRlJf UkVUVVJOX1NVQ0NFU1M6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIFJldHVybkNvZGUNCj4g DQo+IC0NCj4gDQo+IC0gICAgICAgIE1heERhdGFUeXBlU2l6ZSA9IHNlbGYuX19OZXdEYXRhVHlw ZS5Ub3RhbFNpemUNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIGxlbihGaWVs ZE5hbWUpID49IE1BWF9OQU1FX0xFTjoNCj4gDQo+IC0gICAgICAgICAgICByZXR1cm4gVmZyUmV0 dXJuQ29kZS5WRlJfUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSDQo+IA0KPiAtDQo+IA0KPiAtICAg ICAgICBwVG1wID0gc2VsZi5fX05ld0RhdGFUeXBlLk1lbWJlcnMNCj4gDQo+IC0gICAgICAgIHdo aWxlIHBUbXAgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBpZiBwVG1wLkZpZWxkTmFtZSA9 PSBGaWVsZE5hbWU6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2Rl LlZGUl9SRVRVUk5fUkVERUZJTkVEDQo+IA0KPiAtICAgICAgICAgICAgcFRtcCA9IHBUbXAuTmV4 dA0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgQWxpZ24gPSBtaW4oc2VsZi5fX1BhY2tBbGlnbiwg cEZpZWxkVHlwZS5BbGlnbikNCj4gDQo+IC0gICAgICAgIHBOZXdGaWVsZCA9IFNWZnJEYXRhRmll bGQoKQ0KPiANCj4gLSAgICAgICAgaWYgcE5ld0ZpZWxkID09IE5vbmU6DQo+IA0KPiAtICAgICAg ICAgICAgcmV0dXJuIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9PVVRfRk9SX1JFU09VUkNFUw0K PiANCj4gLSAgICAgICAgcE5ld0ZpZWxkLkZpZWxkTmFtZSA9IEZpZWxkTmFtZQ0KPiANCj4gLSAg ICAgICAgcE5ld0ZpZWxkLkZpZWxkVHlwZSA9IHBGaWVsZFR5cGUNCj4gDQo+IC0gICAgICAgIHBO ZXdGaWVsZC5BcnJheU51bSA9IEFycmF5TnVtDQo+IA0KPiAtICAgICAgICBwTmV3RmllbGQuSXNC aXRGaWVsZCA9IEZhbHNlDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBzZWxmLl9fTmV3RGF0 YVR5cGUuVG90YWxTaXplICUgQWxpZ24gPT0gMDoNCj4gDQo+IC0gICAgICAgICAgICBwTmV3Rmll bGQuT2Zmc2V0ID0gc2VsZi5fX05ld0RhdGFUeXBlLlRvdGFsU2l6ZQ0KPiANCj4gLSAgICAgICAg ZWxzZToNCj4gDQo+IC0gICAgICAgICAgICBwTmV3RmllbGQuT2Zmc2V0ID0gc2VsZi5fX05ld0Rh dGFUeXBlLlRvdGFsU2l6ZSArIHNlbGYuX19BbGlnblN0dWZmKA0KPiANCj4gLSAgICAgICAgICAg ICAgICBzZWxmLl9fTmV3RGF0YVR5cGUuVG90YWxTaXplLCBBbGlnbikNCj4gDQo+IC0NCj4gDQo+ IC0gICAgICAgIGlmIHNlbGYuX19OZXdEYXRhVHlwZS5NZW1iZXJzID09IE5vbmU6DQo+IA0KPiAt ICAgICAgICAgICAgc2VsZi5fX05ld0RhdGFUeXBlLk1lbWJlcnMgPSBwTmV3RmllbGQNCj4gDQo+ IC0gICAgICAgICAgICBwTmV3RmllbGQuTmV4dCA9IE5vbmUNCj4gDQo+IC0gICAgICAgIGVsc2U6 DQo+IA0KPiAtICAgICAgICAgICAgcFRtcCA9IHNlbGYuX19OZXdEYXRhVHlwZS5NZW1iZXJzDQo+ IA0KPiAtICAgICAgICAgICAgd2hpbGUgcFRtcC5OZXh0ICE9IE5vbmU6DQo+IA0KPiAtICAgICAg ICAgICAgICAgIHBUbXAgPSBwVG1wLk5leHQNCj4gDQo+IC0gICAgICAgICAgICBwVG1wLk5leHQg PSBwTmV3RmllbGQNCj4gDQo+IC0gICAgICAgICAgICBwTmV3RmllbGQuTmV4dCA9IE5vbmUNCj4g DQo+IC0NCj4gDQo+IC0gICAgICAgIHNlbGYuX19OZXdEYXRhVHlwZS5BbGlnbiA9IG1pbigNCj4g DQo+IC0gICAgICAgICAgICBzZWxmLl9fUGFja0FsaWduLCBtYXgocEZpZWxkVHlwZS5BbGlnbiwg c2VsZi5fX05ld0RhdGFUeXBlLkFsaWduKSkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIEZp ZWxkSW5VbmlvbjoNCj4gDQo+IC0gICAgICAgICAgICBpZiBNYXhEYXRhVHlwZVNpemUgPCBwTmV3 RmllbGQuRmllbGRUeXBlLlRvdGFsU2l6ZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5f X05ld0RhdGFUeXBlLlRvdGFsU2l6ZSA9IHBOZXdGaWVsZC5GaWVsZFR5cGUuVG90YWxTaXplDQo+ IA0KPiAtICAgICAgICAgICAgcE5ld0ZpZWxkLk9mZnNldCA9IDANCj4gDQo+IC0gICAgICAgIGVs c2U6DQo+IA0KPiAtICAgICAgICAgICAgTnVtID0gQXJyYXlOdW0gaWYgQXJyYXlOdW0gIT0gMCBl bHNlIDENCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fTmV3RGF0YVR5cGUuVG90YWxTaXplID0g cE5ld0ZpZWxkLk9mZnNldCArICgNCj4gDQo+IC0gICAgICAgICAgICAgICAgcE5ld0ZpZWxkLkZp ZWxkVHlwZS5Ub3RhbFNpemUpICogTnVtDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4g VmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVm IERhdGFUeXBlQWRkQml0RmllbGQoc2VsZiwgRmllbGROYW1lLCBUeXBlTmFtZSwgV2lkdGgsDQo+ IEZpZWxkSW5Vbmlvbik6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBwRmllbGRUeXBlLCBSZXR1 cm5Db2RlID0gc2VsZi5HZXREYXRhVHlwZShUeXBlTmFtZSkNCj4gDQo+IC0gICAgICAgIGlmIFJl dHVybkNvZGUgIT0gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1M6DQo+IA0KPiAtICAg ICAgICAgICAgcmV0dXJuIFJldHVybkNvZGUNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIFdp ZHRoID4gTUFYX0JJVF9XSURUSDoNCj4gDQo+IC0gICAgICAgICAgICByZXR1cm4gVmZyUmV0dXJu Q29kZS5WRlJfUkVUVVJOX0JJVF9XSURUSF9FUlJPUg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAg aWYgV2lkdGggPiAocEZpZWxkVHlwZS5Ub3RhbFNpemUpICogODoNCj4gDQo+IC0gICAgICAgICAg ICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0JJVF9XSURUSF9FUlJPUg0KPiANCj4g LQ0KPiANCj4gLSAgICAgICAgaWYgKEZpZWxkTmFtZSAhPSBOb25lKSBhbmQgKGxlbihGaWVsZE5h bWUpID49IE1BWF9OQU1FX0xFTik6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIFZmclJldHVy bkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUg0KPiANCj4gLQ0KPiANCj4gLSAgICAg ICAgaWYgV2lkdGggPT0gMCBhbmQgRmllbGROYW1lICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAg ICAgcmV0dXJuIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUg0KPiAN Cj4gLQ0KPiANCj4gLSAgICAgICAgcFRtcCA9IHNlbGYuX19OZXdEYXRhVHlwZS5NZW1iZXJzDQo+ IA0KPiAtICAgICAgICB3aGlsZSBwVG1wICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgaWYg RmllbGROYW1lICE9IE5vbmUgYW5kIHBUbXAuRmllbGROYW1lID09IEZpZWxkTmFtZToNCj4gDQo+ IC0gICAgICAgICAgICAgICAgcmV0dXJuIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9SRURFRklO RUQNCj4gDQo+IC0gICAgICAgICAgICBwVG1wID0gcFRtcC5OZXh0DQo+IA0KPiAtDQo+IA0KPiAt ICAgICAgICBBbGlnbiA9IG1pbihzZWxmLl9fUGFja0FsaWduLCBwRmllbGRUeXBlLkFsaWduKQ0K PiANCj4gLSAgICAgICAgVXBkYXRlVG90YWxTaXplID0gRmFsc2UNCj4gDQo+IC0NCj4gDQo+IC0g ICAgICAgIHBOZXdGaWVsZCA9IFNWZnJEYXRhRmllbGQoKQ0KPiANCj4gLSAgICAgICAgaWYgcE5l d0ZpZWxkID09IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIFZmclJldHVybkNvZGUu VkZSX1JFVFVSTl9PVVRfRk9SX1JFU09VUkNFUw0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgTWF4 RGF0YVR5cGVTaXplID0gc2VsZi5fX05ld0RhdGFUeXBlLlRvdGFsU2l6ZQ0KPiANCj4gLQ0KPiAN Cj4gLSAgICAgICAgcE5ld0ZpZWxkLkZpZWxkTmFtZSA9IEZpZWxkTmFtZQ0KPiANCj4gLSAgICAg ICAgcE5ld0ZpZWxkLkZpZWxkVHlwZSA9IHBGaWVsZFR5cGUNCj4gDQo+IC0gICAgICAgIHBOZXdG aWVsZC5Jc0JpdEZpZWxkID0gVHJ1ZQ0KPiANCj4gLSAgICAgICAgcE5ld0ZpZWxkLkJpdFdpZHRo ID0gV2lkdGgNCj4gDQo+IC0gICAgICAgIHBOZXdGaWVsZC5BcnJheU51bSA9IDANCj4gDQo+IC0g ICAgICAgIHBOZXdGaWVsZC5CaXRPZmZzZXQgPSAwDQo+IA0KPiAtICAgICAgICBwTmV3RmllbGQu T2Zmc2V0ID0gMA0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgc2VsZi5fX05ld0RhdGFUeXBl Lk1lbWJlcnMgPT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fTmV3RGF0YVR5cGUu TWVtYmVycyA9IHBOZXdGaWVsZA0KPiANCj4gLSAgICAgICAgICAgIHBOZXdGaWVsZC5OZXh0ID0g Tm9uZQ0KPiANCj4gLSAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICBwVG1wID0gc2Vs Zi5fX05ld0RhdGFUeXBlLk1lbWJlcnMNCj4gDQo+IC0gICAgICAgICAgICB3aGlsZSBwVG1wLk5l eHQgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgcFRtcCA9IHBUbXAuTmV4dA0KPiAN Cj4gLSAgICAgICAgICAgIHBUbXAuTmV4dCA9IHBOZXdGaWVsZA0KPiANCj4gLSAgICAgICAgICAg IHBOZXdGaWVsZC5OZXh0ID0gTm9uZQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgRmllbGRJ blVuaW9uOg0KPiANCj4gLSAgICAgICAgICAgIHBOZXdGaWVsZC5PZmZzZXQgPSAwDQo+IA0KPiAt ICAgICAgICAgICAgaWYgTWF4RGF0YVR5cGVTaXplIDwgcE5ld0ZpZWxkLkZpZWxkVHlwZS5Ub3Rh bFNpemU6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuX19OZXdEYXRhVHlwZS5Ub3RhbFNp emUgPSBwTmV3RmllbGQuRmllbGRUeXBlLlRvdGFsU2l6ZQ0KPiANCj4gLSAgICAgICAgZWxzZToN Cj4gDQo+IC0gICAgICAgICAgICAjIENoZWNrIHdoZXRoZXIgdGhlIGJpdCBmaWVsZHMgY2FuIGJl IGNvbnRhaW5lZCB3aXRoaW4gb25lIEZpZWxkVHlwZS4NCj4gDQo+IC0gICAgICAgICAgICBjb25k MSA9IChwVG1wICE9IE5vbmUpIGFuZCAocFRtcC5Jc0JpdEZpZWxkKSBhbmQgKA0KPiANCj4gLSAg ICAgICAgICAgICAgICBwVG1wLkZpZWxkVHlwZS5UeXBlTmFtZSA9PSBwTmV3RmllbGQuRmllbGRU eXBlLlR5cGVOYW1lKQ0KPiANCj4gLSAgICAgICAgICAgIGNvbmQyID0gKHBUbXAgIT0gTm9uZSkg YW5kIChwVG1wLkJpdE9mZnNldCAtIHBUbXAuT2Zmc2V0ICogOCArDQo+IA0KPiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBUbXAuQml0V2lkdGggKyBwTmV3RmllbGQu Qml0V2lkdGggPD0NCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcE5ld0ZpZWxkLkZpZWxkVHlwZS5Ub3RhbFNpemUgKiA4KQ0KPiANCj4gLSAgICAgICAgICAg IGlmIGNvbmQxIGFuZCBjb25kMjoNCj4gDQo+IC0gICAgICAgICAgICAgICAgcE5ld0ZpZWxkLkJp dE9mZnNldCA9IHBUbXAuQml0T2Zmc2V0ICsgcFRtcC5CaXRXaWR0aA0KPiANCj4gLSAgICAgICAg ICAgICAgICBwTmV3RmllbGQuT2Zmc2V0ID0gcFRtcC5PZmZzZXQNCj4gDQo+IC0NCj4gDQo+IC0g ICAgICAgICAgICAgICAgaWYgcE5ld0ZpZWxkLkJpdFdpZHRoID09IDA6DQo+IA0KPiAtICAgICAg ICAgICAgICAgICAgICBwTmV3RmllbGQuQml0V2lkdGggPSBwTmV3RmllbGQuRmllbGRUeXBlLlRv dGFsU2l6ZSAqIDggLSAoDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgcE5ld0ZpZWxk LkJpdE9mZnNldCAtIHBUbXAuT2Zmc2V0ICogOCkNCj4gDQo+IC0gICAgICAgICAgICBlbHNlOg0K PiANCj4gLSAgICAgICAgICAgICAgICBwTmV3RmllbGQuQml0T2Zmc2V0ID0gc2VsZi5fX05ld0Rh dGFUeXBlLlRvdGFsU2l6ZSAqIDgNCj4gDQo+IC0gICAgICAgICAgICAgICAgVXBkYXRlVG90YWxT aXplID0gVHJ1ZQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgVXBkYXRlVG90YWxTaXplOg0K PiANCj4gLSAgICAgICAgICAgIGlmIHNlbGYuX19OZXdEYXRhVHlwZS5Ub3RhbFNpemUgJSBBbGln biA9PSAwOg0KPiANCj4gLSAgICAgICAgICAgICAgICBwTmV3RmllbGQuT2Zmc2V0ID0gc2VsZi5f X05ld0RhdGFUeXBlLlRvdGFsU2l6ZQ0KPiANCj4gLSAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAt ICAgICAgICAgICAgICAgIHBOZXdGaWVsZC5PZmZzZXQgPSBzZWxmLl9fTmV3RGF0YVR5cGUuVG90 YWxTaXplICsgc2VsZi5fX0FsaWduU3R1ZmYoDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBz ZWxmLl9fTmV3RGF0YVR5cGUuVG90YWxTaXplLCBBbGlnbikNCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLl9fTmV3RGF0YVR5cGUuVG90YWxTaXplID0gcE5ld0ZpZWxkLk9mZnNldCArDQo+IHBOZXdG aWVsZC5GaWVsZFR5cGUuVG90YWxTaXplDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBzZWxmLl9f TmV3RGF0YVR5cGUuQWxpZ24gPSBtaW4oDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX1BhY2tB bGlnbiwgbWF4KHBGaWVsZFR5cGUuQWxpZ24sIHNlbGYuX19OZXdEYXRhVHlwZS5BbGlnbikpDQo+ IA0KPiAtICAgICAgICBzZWxmLl9fTmV3RGF0YVR5cGUuSGFzQml0RmllbGQgPSBUcnVlDQo+IA0K PiAtICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gDQo+ IC0NCj4gDQo+IC0gICAgZGVmIEdldERhdGFUeXBlKHNlbGYsIFR5cGVOYW1lKToNCj4gDQo+IC0g ICAgICAgIGlmIFR5cGVOYW1lID09IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIE5v bmUsIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9FUlJPUl9TS0lQRUQNCj4gDQo+IC0NCj4gDQo+ IC0gICAgICAgIERhdGFUeXBlID0gc2VsZi5fX0RhdGFUeXBlTGlzdA0KPiANCj4gLSAgICAgICAg d2hpbGUgRGF0YVR5cGUgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBpZiBEYXRhVHlwZS5U eXBlTmFtZSA9PSBUeXBlTmFtZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgcmV0dXJuIERhdGFU eXBlLCBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiANCj4gLSAgICAgICAgICAg IERhdGFUeXBlID0gRGF0YVR5cGUuTmV4dA0KPiANCj4gLSAgICAgICAgcmV0dXJuIE5vbmUsIFZm clJldHVybkNvZGUuVkZSX1JFVFVSTl9VTkRFRklORUQNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVm IERhdGFUeXBlSGFzQml0RmllbGQoc2VsZiwgVHlwZU5hbWUpOg0KPiANCj4gLSAgICAgICAgaWYg VHlwZU5hbWUgPT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICByZXR1cm4gRmFsc2UNCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgIHBUeXBlID0gc2VsZi5fX0RhdGFUeXBlTGlzdA0KPiANCj4gLSAg ICAgICAgd2hpbGUgcFR5cGUgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBpZiBwVHlwZS5U eXBlTmFtZSA9PSBUeXBlTmFtZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgYnJlYWsNCj4gDQo+ IC0gICAgICAgICAgICBwVHlwZSA9IHBUeXBlLk5leHQNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAg IGlmIHBUeXBlID09IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIEZhbHNlDQo+IA0K PiAtDQo+IA0KPiAtICAgICAgICBwVG1wID0gcFR5cGUuTWVtYmVycw0KPiANCj4gLSAgICAgICAg d2hpbGUgcFRtcCAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGlmIHBUbXAuSXNCaXRGaWVs ZDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUNCj4gDQo+IC0gICAgICAgICAg ICBwVG1wID0gcFRtcC5OZXh0DQo+IA0KPiAtICAgICAgICByZXR1cm4gRmFsc2UNCj4gDQo+IC0N Cj4gDQo+IC0gICAgZGVmIER1bXAoc2VsZiwgRmlsZU5hbWUpOg0KPiANCj4gLSAgICAgICAgdHJ5 Og0KPiANCj4gLSAgICAgICAgICAgIHdpdGggb3BlbihGaWxlTmFtZSwgJ3cnKSBhcyBmOg0KPiAN Cj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCJQYWNrQWxpZ24gPSAiICsgc3RyKHNlbGYuX19Q YWNrQWxpZ24pICsgJ1xuJykNCj4gDQo+IC0gICAgICAgICAgICAgICAgcE5vZGUgPSBzZWxmLl9f RGF0YVR5cGVMaXN0DQo+IA0KPiAtICAgICAgICAgICAgICAgIHdoaWxlIHBOb2RlICE9IE5vbmU6 DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCdzdHJ1Y3Qge30gOiBBbGlnbiA6 IHt9ICBUb3RhbFNpemUgOg0KPiAnLmZvcm1hdChzdHIocE5vZGUuVHlwZU5hbWUpLCBzdHIocE5v ZGUuQWxpZ24pKSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIGYud3JpdGUoJyUjeFxuJyUo cE5vZGUuVG90YWxTaXplKSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICMgZi53cml0ZSgi IHN0cnVjdCAiICsgc3RyKHBOb2RlLlR5cGVOYW1lKSArICIgOiAiICsgIiBBbGlnbiAiICsNCj4g c3RyKHBOb2RlLkFsaWduKSkgKyAiIFRvdGFsU2l6ZSAiICsgc3RyKCclI3gnJXBOb2RlLlRvdGFs U2l6ZSkpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBmLndyaXRlKCdzdHJ1Y3Qge30gXG4n LmZvcm1hdChzdHIocE5vZGUuVHlwZU5hbWUpKSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAg IEZOb2RlID0gcE5vZGUuTWVtYmVycw0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgd2hpbGUo Rk5vZGUgIT0gTm9uZSk6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgaWYgRk5vZGUu QXJyYXlOdW0gPiAwOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRl KCdGaWVsZE5hbWUgOiB7fSAsIE9mZnNldCA6IHt9LCBBcnJheU51bSA6IHt9ICwNCj4gRmllbGRU eXBlTmFtZSA6IHt9ICwgSXNCaXRGaWVsZCA6IHt9IFxuICcuZm9ybWF0KHN0cihGTm9kZS5GaWVs ZE5hbWUpLA0KPiBzdHIoRk5vZGUuT2Zmc2V0KSwgc3RyKEZOb2RlLkFycmF5TnVtKSwgc3RyKEZO b2RlLkZpZWxkVHlwZS5UeXBlTmFtZSksDQo+IHN0cihGTm9kZS5Jc0JpdEZpZWxkKSkpDQo+IA0K PiAtICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgZi53cml0ZSgnRmllbGROYW1lIDoge30gLCBPZmZzZXQgOiB7fSwgRmllbGRU eXBlTmFtZSA6IHt9ICwNCj4gSXNCaXRGaWVsZCA6IHt9IFxuICcuZm9ybWF0KHN0cihGTm9kZS5G aWVsZE5hbWUpLCBzdHIoRk5vZGUuT2Zmc2V0KSwNCj4gc3RyKEZOb2RlLkZpZWxkVHlwZS5UeXBl TmFtZSksIHN0cihGTm9kZS5Jc0JpdEZpZWxkKSkpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAg ICAgICAgRk5vZGUgPSBGTm9kZS5OZXh0DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBmLndy aXRlKCdcbicpDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBwTm9kZSA9IHBOb2RlLk5leHQN Cj4gDQo+IC0gICAgICAgICAgICBmLmNsb3NlKCkNCj4gDQo+IC0gICAgICAgIGV4Y2VwdCBJT0Vy cm9yIGFzIGU6DQo+IA0KPiAtICAgICAgICAgICAgcHJpbnQoImVycm9yIikNCj4gDQo+IC0gICAg ICAgICAgICBwYXNzDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgU1ZmckRlZmF1bHRTdG9yZU5vZGUo b2JqZWN0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsDQo+IA0KPiAt ICAgICAgICAgICAgICAgICBPYmpBZGRyPU5vbmUsDQo+IA0KPiAtICAgICAgICAgICAgICAgICBS ZWZOYW1lPScnLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgRGVmYXVsdFN0b3JlTmFtZUlkPTAs DQo+IA0KPiAtICAgICAgICAgICAgICAgICBEZWZhdWx0SWQ9MCk6DQo+IA0KPiAtICAgICAgICBz ZWxmLk9iakFkZHIgPSBPYmpBZGRyDQo+IA0KPiAtICAgICAgICBzZWxmLlJlZk5hbWUgPSBSZWZO YW1lDQo+IA0KPiAtICAgICAgICBzZWxmLkRlZmF1bHRTdG9yZU5hbWVJZCA9IERlZmF1bHRTdG9y ZU5hbWVJZA0KPiANCj4gLSAgICAgICAgc2VsZi5EZWZhdWx0SWQgPSBEZWZhdWx0SWQNCj4gDQo+ IC0gICAgICAgIHNlbGYuTmV4dCA9IE5vbmUNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFz cyBDVmZyRGVmYXVsdFN0b3JlKG9iamVjdCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX2lu aXRfXyhzZWxmKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19EZWZhdWx0U3RvcmVMaXN0ID0gTm9u ZQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgUmVnaXN0ZXJEZWZhdWx0U3RvcmUoc2VsZiwgT2Jq QWRkcjogRUZJX0lGUl9ERUZBVUxUU1RPUkUsIFJlZk5hbWUsDQo+IERlZmF1bHRTdG9yZU5hbWVJ ZCwgRGVmYXVsdElkKToNCj4gDQo+IC0gICAgICAgIGlmIFJlZk5hbWUgPT0gJycgb3IgUmVmTmFt ZSA9PSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9S RVRVUk5fRkFUQUxfRVJST1INCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHBOb2RlID0gc2VsZi5f X0RlZmF1bHRTdG9yZUxpc3QNCj4gDQo+IC0gICAgICAgIHdoaWxlIHBOb2RlICE9IE5vbmU6DQo+ IA0KPiAtICAgICAgICAgICAgaWYgcE5vZGUuUmVmTmFtZSA9PSBSZWZOYW1lOg0KPiANCj4gLSAg ICAgICAgICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1JFREVGSU5FRA0K PiANCj4gLSAgICAgICAgICAgIHBOb2RlID0gcE5vZGUuTmV4dA0KPiANCj4gLQ0KPiANCj4gLSAg ICAgICAgcE5vZGUgPSBTVmZyRGVmYXVsdFN0b3JlTm9kZShPYmpBZGRyLCBSZWZOYW1lLCBEZWZh dWx0U3RvcmVOYW1lSWQsDQo+IERlZmF1bHRJZCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlm IHBOb2RlID09IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIFZmclJldHVybkNvZGUu VkZSX1JFVFVSTl9PVVRfRk9SX1JFU09VUkNFUw0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcE5v ZGUuTmV4dCA9IHNlbGYuX19EZWZhdWx0U3RvcmVMaXN0DQo+IA0KPiAtICAgICAgICBzZWxmLl9f RGVmYXVsdFN0b3JlTGlzdCA9IHBOb2RlDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4g VmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVm IERlZmF1bHRJZFJlZ2lzdGVyZWQoc2VsZiwgRGVmYXVsdElkKToNCj4gDQo+IC0gICAgICAgIHBO b2RlID0gc2VsZi5fX0RlZmF1bHRTdG9yZUxpc3QNCj4gDQo+IC0gICAgICAgIHdoaWxlIHBOb2Rl ICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgaWYgcE5vZGUuRGVmYXVsdElkID09IERlZmF1 bHRJZDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUNCj4gDQo+IC0gICAgICAg ICAgICBwTm9kZSA9IHBOb2RlLk5leHQNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBG YWxzZQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgUmVSZWdpc3RlckRlZmF1bHRTdG9yZUJ5SWQo c2VsZiwgRGVmYXVsdElkLCBSZWZOYW1lLA0KPiBEZWZhdWx0U3RvcmVOYW1lSWQpOg0KPiANCj4g LQ0KPiANCj4gLSAgICAgICAgcE5vZGUgPSBzZWxmLl9fRGVmYXVsdFN0b3JlTGlzdA0KPiANCj4g LSAgICAgICAgd2hpbGUgcE5vZGUgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBpZiBwTm9k ZS5EZWZhdWx0SWQgPT0gRGVmYXVsdElkOg0KPiANCj4gLSAgICAgICAgICAgICAgICBicmVhaw0K PiANCj4gLSAgICAgICAgICAgIHBOb2RlID0gcE5vZGUuTmV4dA0KPiANCj4gLQ0KPiANCj4gLSAg ICAgICAgaWYgcE5vZGUgPT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICByZXR1cm4gTm9uZSwg VmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1VOREVGSU5FRA0KPiANCj4gLSAgICAgICAgZWxzZToN Cj4gDQo+IC0gICAgICAgICAgICBpZiBwTm9kZS5EZWZhdWx0U3RvcmVOYW1lSWQgPT0gRUZJX1NU UklOR19JRF9JTlZBTElEOg0KPiANCj4gLSAgICAgICAgICAgICAgICBwTm9kZS5EZWZhdWx0U3Rv cmVOYW1lSWQgPT0gRGVmYXVsdFN0b3JlTmFtZUlkDQo+IA0KPiAtICAgICAgICAgICAgICAgIHBO b2RlLlJlZk5hbWUgPSBSZWZOYW1lDQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIHBOb2RlLk9i akFkZHIgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHBOb2RlLk9iakFkZHIu RGVmYXVsdE5hbWUgPSBEZWZhdWx0U3RvcmVOYW1lSWQNCj4gDQo+IC0gICAgICAgICAgICBlbHNl Og0KPiANCj4gLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZSwgVmZyUmV0dXJuQ29kZS5WRlJf UkVUVVJOX1JFREVGSU5FRA0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIHBOb2RlLCBW ZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYg R2V0RGVmYXVsdElkKHNlbGYsIFJlZk5hbWUpOg0KPiANCj4gLSAgICAgICAgcFRtcCA9IHNlbGYu X19EZWZhdWx0U3RvcmVMaXN0DQo+IA0KPiAtICAgICAgICB3aGlsZShwVG1wICE9IE5vbmUpOg0K PiANCj4gLSAgICAgICAgICAgIGlmIHBUbXAuUmVmTmFtZSA9PSBSZWZOYW1lOg0KPiANCj4gLSAg ICAgICAgICAgICAgICBEZWZhdWx0SWQgPSBwVG1wLkRlZmF1bHRJZA0KPiANCj4gLSAgICAgICAg ICAgICAgICByZXR1cm4gRGVmYXVsdElkLCBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VT Uw0KPiANCj4gLSAgICAgICAgICAgIHBUbXAgPSBwVG1wLk5leHQNCj4gDQo+IC0gICAgICAgIHJl dHVybiBOb25lLCBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fVU5ERUZJTkVEDQo+IA0KPiAtDQo+ IA0KPiAtICAgIGRlZiBCdWZmZXJWYXJTdG9yZUFsdENvbmZpZ0FkZChzZWxmLCBEZWZhdWx0SWQs IEJhc2VJbmZvLCBWYXJTdG9yZU5hbWUsDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBWYXJTdG9yZUd1aWQsIFR5cGUsIFZhbHVlKToNCj4gDQo+IC0gICAgICAgIGlm IFZhclN0b3JlTmFtZSA9PSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIHJldHVybiBWZnJSZXR1 cm5Db2RlLlZGUl9SRVRVUk5fRkFUQUxfRVJST1INCj4gDQo+IC0gICAgICAgIHBOb2RlID0gc2Vs Zi5fX0RlZmF1bHRTdG9yZUxpc3QNCj4gDQo+IC0gICAgICAgIHdoaWxlIHBOb2RlICE9IE5vbmU6 DQo+IA0KPiAtICAgICAgICAgICAgaWYgcE5vZGUuRGVmYXVsdElkID09IERlZmF1bHRJZDoNCj4g DQo+IC0gICAgICAgICAgICAgICAgYnJlYWsNCj4gDQo+IC0gICAgICAgICAgICBwTm9kZSA9IHBO b2RlLk5leHQNCj4gDQo+IC0gICAgICAgIGlmIHBOb2RlID09IE5vbmU6DQo+IA0KPiAtICAgICAg ICAgICAgcmV0dXJuIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9VTkRFRklORUQNCj4gDQo+IC0g ICAgICAgICMgcE5vZGUuRGVmYXVsdElkIHNwcmludGYgKE5ld0FsdENmZywgIiUwNHgiLCBwTm9k ZS0+bURlZmF1bHRJZCkNCj4gDQo+IC0gICAgICAgIGdDVmZyQnVmZmVyQ29uZmlnLk9wZW4oKQ0K PiANCj4gLSAgICAgICAgaWYgZ0NWZnJCdWZmZXJDb25maWcuU2VsZWN0KFZhclN0b3JlTmFtZSwg VmFyU3RvcmVHdWlkKSA9PSAwOg0KPiANCj4gLSAgICAgICAgICAgIFJldHVybnZhbHVlID0gZ0NW ZnJCdWZmZXJDb25maWcuV3JpdGUoJ2EnLCBWYXJTdG9yZU5hbWUsDQo+IA0KPiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJTdG9yZUd1aWQsDQo+ IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw Tm9kZS5EZWZhdWx0SWQsIFR5cGUsDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBCYXNlSW5mby5JbmZvLlZhck9mZnNldCwNCj4gDQo+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhc2VJbmZv LlZhclRvdGFsU2l6ZSwgVmFsdWUpDQo+IA0KPiAtICAgICAgICAgICAgaWYgUmV0dXJudmFsdWUg IT0gMDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgZ0NWZnJCdWZmZXJDb25maWcuQ2xvc2UoKQ0K PiANCj4gLSAgICAgICAgICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZShSZXR1cm52YWx1ZSkN Cj4gDQo+IC0gICAgICAgIGdDVmZyQnVmZmVyQ29uZmlnLkNsb3NlKCkNCj4gDQo+IC0gICAgICAg IHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiANCj4gLQ0KPiANCj4g LQ0KPiANCj4gLQ0KPiANCj4gLWNsYXNzIEVGSV9WRlJfVkFSU1RPUkVfVFlQRShFbnVtKToNCj4g DQo+IC0gICAgRUZJX1ZGUl9WQVJTVE9SRV9JTlZBTElEID0gMA0KPiANCj4gLSAgICBFRklfVkZS X1ZBUlNUT1JFX0JVRkZFUiA9IDENCj4gDQo+IC0gICAgRUZJX1ZGUl9WQVJTVE9SRV9FRkkgPSAy DQo+IA0KPiAtICAgIEVGSV9WRlJfVkFSU1RPUkVfTkFNRSA9IDMNCj4gDQo+IC0gICAgRUZJX1ZG Ul9WQVJTVE9SRV9CVUZGRVJfQklUUyA9IDQNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFz cyBFZmlWYXIoKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsIFZhck5h bWU9MCwgVmFyU2l6ZT0wKToNCj4gDQo+IC0gICAgICAgIHNlbGYuRWZpVmFyTmFtZSA9IFZhck5h bWUNCj4gDQo+IC0gICAgICAgIHNlbGYuRWZpVmFyU2l6ZSA9IFZhclNpemUNCj4gDQo+IC0NCj4g DQo+IC0NCj4gDQo+IC1ERUZBVUxUX05BTUVfVEFCTEVfSVRFTVMgPSAxMDI0DQo+IA0KPiAtDQo+ IA0KPiAtDQo+IA0KPiAtY2xhc3MgU1ZmclZhclN0b3JhZ2VOb2RlKCk6DQo+IA0KPiAtDQo+IA0K PiAtICAgIGRlZiBfX2luaXRfXyhzZWxmLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgVmFyU3Rv cmVOYW1lPScnLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgVmFyU3RvcmVJZD0wLA0KPiANCj4g LSAgICAgICAgICAgICAgICAgR3VpZD1Ob25lLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgQXR0 cmlidXRlcz0wLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgRmxhZz1UcnVlLA0KPiANCj4gLSAg ICAgICAgICAgICAgICAgRWZpVmFsdWU9Tm9uZSwNCj4gDQo+IC0gICAgICAgICAgICAgICAgIERh dGFUeXBlPU5vbmUsDQo+IA0KPiAtICAgICAgICAgICAgICAgICBCaXRzVmFyc3RvcmU9RmFsc2Up Og0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi5HdWlkID0gR3VpZA0KPiANCj4gLSAgICAg ICAgc2VsZi5WYXJTdG9yZU5hbWUgPSBWYXJTdG9yZU5hbWUNCj4gDQo+IC0gICAgICAgIHNlbGYu VmFyU3RvcmVJZCA9IFZhclN0b3JlSWQNCj4gDQo+IC0gICAgICAgIHNlbGYuQXNzaWduZWRGbGFn ID0gRmxhZw0KPiANCj4gLSAgICAgICAgc2VsZi5BdHRyaWJ1dGVzID0gQXR0cmlidXRlcw0KPiAN Cj4gLSAgICAgICAgc2VsZi5OZXh0ID0gTm9uZQ0KPiANCj4gLSAgICAgICAgc2VsZi5FZmlWYXIg PSBFZmlWYWx1ZQ0KPiANCj4gLSAgICAgICAgc2VsZi5EYXRhVHlwZSA9IERhdGFUeXBlDQo+IA0K PiAtICAgICAgICBzZWxmLk5hbWVTcGFjZSA9IFtdDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBp ZiBFZmlWYWx1ZSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuVmFyc3RvcmVUeXBl ID0gRUZJX1ZGUl9WQVJTVE9SRV9UWVBFLkVGSV9WRlJfVkFSU1RPUkVfRUZJDQo+IA0KPiAtICAg ICAgICBlbGlmIERhdGFUeXBlICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgaWYgQml0c1Zh cnN0b3JlOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLlZhcnN0b3JlVHlwZSA9DQo+IEVG SV9WRlJfVkFSU1RPUkVfVFlQRS5FRklfVkZSX1ZBUlNUT1JFX0JVRkZFUl9CSVRTDQo+IA0KPiAt ICAgICAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5WYXJzdG9yZVR5 cGUgPQ0KPiBFRklfVkZSX1ZBUlNUT1JFX1RZUEUuRUZJX1ZGUl9WQVJTVE9SRV9CVUZGRVINCj4g DQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5WYXJzdG9yZVR5cGUg PQ0KPiBFRklfVkZSX1ZBUlNUT1JFX1RZUEUuRUZJX1ZGUl9WQVJTVE9SRV9OQU1FDQo+IA0KPiAt DQo+IA0KPiAtY2xhc3MgU0NvbmZpZ0l0ZW0oKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9f aW5pdF9fKHNlbGYsDQo+IA0KPiAtICAgICAgICAgICAgICAgICBOYW1lPU5vbmUsDQo+IA0KPiAt ICAgICAgICAgICAgICAgICBHdWlkPU5vbmUsDQo+IA0KPiAtICAgICAgICAgICAgICAgICBJZD1O b25lLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgVHlwZT1Ob25lLA0KPiANCj4gLSAgICAgICAg ICAgICAgICAgT2Zmc2V0PU5vbmUsDQo+IA0KPiAtICAgICAgICAgICAgICAgICBXaWR0aD1Ob25l LA0KPiANCj4gLSAgICAgICAgICAgICAgICAgVmFsdWU9Tm9uZSk6DQo+IA0KPiAtICAgICAgICBz ZWxmLk5hbWUgPSBOYW1lICAjIHZhcnN0b3JlIG5hbWUNCj4gDQo+IC0gICAgICAgIHNlbGYuR3Vp ZCA9IEd1aWQgICMgdmFyc3RvcmUgZ3VpZCwgdmFyc3RvcmUgbmFtZSArIGd1aWQgZGVzaWRlIG9u ZQ0KPiB2YXJzdG9yZQ0KPiANCj4gLSAgICAgICAgc2VsZi5JZCA9IElkICAjIGRlZmF1bHQgSUQN Cj4gDQo+IC0gICAgICAgIGlmIFR5cGUgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAjIGxp c3Qgb2YgT2Zmc2V0L1ZhbHVlIGluIHRoZSB2YXJzdG9yZQ0KPiANCj4gLSAgICAgICAgICAgIHNl bGYuSW5mb1N0ckxpc3QgPSBTQ29uZmlnSW5mbyhUeXBlLCBPZmZzZXQsIFdpZHRoLCBWYWx1ZSkN Cj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5JbmZvU3RyTGlz dCA9IE5vbmUNCj4gDQo+IC0gICAgICAgIHNlbGYuTmV4dCA9IE5vbmUNCj4gDQo+IC0NCj4gDQo+ IC0NCj4gDQo+IC1jbGFzcyBTQ29uZmlnSW5mbygpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYg X19pbml0X18oc2VsZiwgVHlwZSwgT2Zmc2V0LCBXaWR0aCwgVmFsdWU6IEVGSV9JRlJfVFlQRV9W QUxVRSk6DQo+IA0KPiAtICAgICAgICBzZWxmLlR5cGUgPSBUeXBlDQo+IA0KPiAtICAgICAgICBz ZWxmLk9mZnNldCA9IE9mZnNldA0KPiANCj4gLSAgICAgICAgc2VsZi5XaWR0aCA9IFdpZHRoDQo+ IA0KPiAtICAgICAgICBzZWxmLk5leHQgPSBOb25lDQo+IA0KPiAtICAgICAgICBzZWxmLlZhbHVl ID0gVmFsdWUNCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBDVmZyQnVmZmVyQ29uZmlnKG9iamVjdCk6 DQo+IA0KPiAtICAgIF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhDQo+IA0KPiAtDQo+IA0KPiAtICAg IGRlZiBfX2luaXRfXyhzZWxmKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19JdGVtTGlzdEhlYWQg PSBOb25lICAjIFNDb25maWdJdGVtDQo+IA0KPiAtICAgICAgICBzZWxmLl9fSXRlbUxpc3RUYWls ID0gTm9uZQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX0l0ZW1MaXN0UG9zID0gTm9uZQ0KPiANCj4g LQ0KPiANCj4gLSAgICBkZWYgR2V0VmFySXRlbUxpc3Qoc2VsZik6DQo+IA0KPiAtICAgICAgICBy ZXR1cm4gc2VsZi5fX0l0ZW1MaXN0SGVhZA0KPiANCj4gLQ0KPiANCj4gLSAgICBAYWJzdHJhY3Rt ZXRob2QNCj4gDQo+IC0gICAgZGVmIE9wZW4oc2VsZik6DQo+IA0KPiAtICAgICAgICBzZWxmLl9f SXRlbUxpc3RQb3MgPSBzZWxmLl9fSXRlbUxpc3RIZWFkDQo+IA0KPiAtDQo+IA0KPiAtICAgIEBh YnN0cmFjdG1ldGhvZA0KPiANCj4gLSAgICBkZWYgQ2xvc2Uoc2VsZik6DQo+IA0KPiAtICAgICAg ICBzZWxmLl9fSXRlbUxpc3RQb3MgPSBOb25lDQo+IA0KPiAtDQo+IA0KPiAtICAgIEBhYnN0cmFj dG1ldGhvZA0KPiANCj4gLSAgICBkZWYgU2VsZWN0KHNlbGYsIE5hbWUsIEd1aWQsIElkPU5vbmUp Og0KPiANCj4gLSAgICAgICAgaWYgTmFtZSA9PSBOb25lIG9yIEd1aWQgPT0gTm9uZToNCj4gDQo+ IC0gICAgICAgICAgICBzZWxmLl9fSXRlbUxpc3RQb3MgPSBzZWxmLl9fSXRlbUxpc3RIZWFkDQo+ IA0KPiAtICAgICAgICAgICAgcmV0dXJuIDANCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAt ICAgICAgICAgICAgcCA9IHNlbGYuX19JdGVtTGlzdEhlYWQNCj4gDQo+IC0gICAgICAgICAgICB3 aGlsZSBwICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIHAuTmFtZSAhPSBOYW1l IG9yIHAuR3VpZC5fX2NtcF9fKEd1aWQpID09IEZhbHNlOg0KPiANCj4gLSAgICAgICAgICAgICAg ICAgICAgcCA9IHAuTmV4dA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgY29udGludWUNCj4g DQo+IC0gICAgICAgICAgICAgICAgaWYgSWQgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICAg ICAgICAgIGlmIHAuSWQgPT0gTm9uZSBvciBwLklkICE9IElkOg0KPiANCj4gLSAgICAgICAgICAg ICAgICAgICAgICAgIHAgPSBwLk5leHQNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBj b250aW51ZQ0KPiANCj4gLSAgICAgICAgICAgICAgICBlbGlmIHAuSWQgIT0gTm9uZToNCj4gDQo+ IC0gICAgICAgICAgICAgICAgICAgIHAgPSBwLk5leHQNCj4gDQo+IC0gICAgICAgICAgICAgICAg ICAgIGNvbnRpbnVlDQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuX19JdGVtTGlzdFBvcyA9 IHANCj4gDQo+IC0gICAgICAgICAgICAgICAgcmV0dXJuIDANCj4gDQo+IC0gICAgICAgIHJldHVy biAxDQo+IA0KPiAtDQo+IA0KPiAtICAgIEBhYnN0cmFjdG1ldGhvZA0KPiANCj4gLSAgICBkZWYg UmVnaXN0ZXIoc2VsZiwgTmFtZSwgR3VpZCwgSWQ9Tm9uZSk6DQo+IA0KPiAtICAgICAgICBpZiBz ZWxmLlNlbGVjdChOYW1lLCBHdWlkKSA9PSAwOg0KPiANCj4gLSAgICAgICAgICAgIHJldHVybiAx DQo+IA0KPiAtICAgICAgICBwTmV3ID0gU0NvbmZpZ0l0ZW0oTmFtZSwgR3VpZCwgSWQpDQo+IA0K PiAtICAgICAgICBpZiBwTmV3ID09IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIDIN Cj4gDQo+IC0gICAgICAgIGlmIHNlbGYuX19JdGVtTGlzdEhlYWQgPT0gTm9uZToNCj4gDQo+IC0g ICAgICAgICAgICBzZWxmLl9fSXRlbUxpc3RIZWFkID0gcE5ldw0KPiANCj4gLSAgICAgICAgICAg IHNlbGYuX19JdGVtTGlzdFRhaWwgPSBwTmV3DQo+IA0KPiAtICAgICAgICBlbHNlOg0KPiANCj4g LSAgICAgICAgICAgIHNlbGYuX19JdGVtTGlzdFRhaWwuTmV4dCA9IHBOZXcNCj4gDQo+IC0gICAg ICAgICAgICBzZWxmLl9fSXRlbUxpc3RUYWlsID0gcE5ldw0KPiANCj4gLSAgICAgICAgc2VsZi5f X0l0ZW1MaXN0UG9zID0gcE5ldw0KPiANCj4gLSAgICAgICAgcmV0dXJuIDANCj4gDQo+IC0NCj4g DQo+IC0gICAgQGFic3RyYWN0bWV0aG9kDQo+IA0KPiAtICAgIGRlZiBXcml0ZShzZWxmLCBNb2Rl LCBOYW1lLCBHdWlkLCBJZCwgVHlwZSwgT2Zmc2V0LCBXaWR0aCwNCj4gDQo+IC0gICAgICAgICAg ICAgIFZhbHVlOiBFRklfSUZSX1RZUEVfVkFMVUUpOg0KPiANCj4gLSAgICAgICAgUmV0ID0gc2Vs Zi5TZWxlY3QoTmFtZSwgR3VpZCkNCj4gDQo+IC0gICAgICAgIGlmIFJldCAhPSAwOg0KPiANCj4g LSAgICAgICAgICAgIHJldHVybiBSZXQNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIE1vZGUg PT0gJ2EnOiAgIyBhZGQNCj4gDQo+IC0gICAgICAgICAgICBpZiBzZWxmLlNlbGVjdChOYW1lLCBH dWlkLCBJZCkgIT0gMDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgcEl0ZW0gPSBTQ29uZmlnSXRl bShOYW1lLCBHdWlkLCBJZCwgVHlwZSwgT2Zmc2V0LCBXaWR0aCwgVmFsdWUpDQo+IA0KPiAtICAg ICAgICAgICAgICAgIGlmIHBJdGVtID09IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAg ICByZXR1cm4gMg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9fSXRl bUxpc3RIZWFkID09IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBzZWxmLl9fSXRl bUxpc3RIZWFkID0gcEl0ZW0NCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuX19JdGVt TGlzdFRhaWwgPSBwSXRlbQ0KPiANCj4gLSAgICAgICAgICAgICAgICBlbHNlOg0KPiANCj4gLSAg ICAgICAgICAgICAgICAgICAgc2VsZi5fX0l0ZW1MaXN0VGFpbC5OZXh0ID0gcEl0ZW0NCj4gDQo+ IC0gICAgICAgICAgICAgICAgICAgIHNlbGYuX19JdGVtTGlzdFRhaWwgPSBwSXRlbQ0KPiANCj4g LQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLl9fSXRlbUxpc3RQb3MgPSBwSXRlbQ0KPiAN Cj4gLQ0KPiANCj4gLSAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgICAgICMg dHJhbnZlcnNlIHRoZSBsaXN0IHRvIGZpbmQgb3V0IGlmIHRoZXJlJ3MgYWxyZWFkeSB0aGUgdmFs dWUgZm9yIHRoZQ0KPiBzYW1lIG9mZnNldA0KPiANCj4gLSAgICAgICAgICAgICAgICBwSW5mbyA9 IHNlbGYuX19JdGVtTGlzdFBvcy5JbmZvU3RyTGlzdA0KPiANCj4gLSAgICAgICAgICAgICAgICB3 aGlsZSBwSW5mbyAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgaWYgcEluZm8u T2Zmc2V0ID09IE9mZnNldDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g MA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgcEluZm8gPSBwSW5mby5OZXh0DQo+IA0KPiAt DQo+IA0KPiAtICAgICAgICAgICAgICAgIHBJbmZvID0gU0NvbmZpZ0luZm8oVHlwZSwgT2Zmc2V0 LCBXaWR0aCwgVmFsdWUpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIHBJbmZvID09IE5vbmU6 DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICByZXR1cm4gMg0KPiANCj4gLQ0KPiANCj4gLSAg ICAgICAgICAgICAgICBwSW5mby5OZXh0ID0gc2VsZi5fX0l0ZW1MaXN0UG9zLkluZm9TdHJMaXN0 DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuX19JdGVtTGlzdFBvcy5JbmZvU3RyTGlzdCA9 IHBJbmZvDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBlbGlmIE1vZGUgPT0gJ2QnOiAgIyBkZWxl dGUNCj4gDQo+IC0gICAgICAgICAgICBpZiBzZWxmLl9fSXRlbUxpc3RIZWFkID09IHNlbGYuX19J dGVtTGlzdFBvczoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5fX0l0ZW1MaXN0SGVhZCA9 IHNlbGYuX19JdGVtTGlzdFBvcy5OZXh0DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgcEl0 ZW0gPSBzZWxmLl9fSXRlbUxpc3RIZWFkDQo+IA0KPiAtICAgICAgICAgICAgd2hpbGUgcEl0ZW0u TmV4dCAhPSBzZWxmLl9fSXRlbUxpc3RQb3M6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHBJdGVt ID0gcEl0ZW0uTmV4dA0KPiANCj4gLSAgICAgICAgICAgIHBJdGVtLk5leHQgPSBzZWxmLl9fSXRl bUxpc3RQb3MuTmV4dA0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgIGlmIHNlbGYuX19JdGVt TGlzdFRhaWwgPT0gc2VsZi5fX0l0ZW1MaXN0UG9zOg0KPiANCj4gLSAgICAgICAgICAgICAgICBz ZWxmLl9fSXRlbUxpc3RUYWlsID0gcEl0ZW0NCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICAgICBz ZWxmLl9fSXRlbUxpc3RQb3MgPSBwSXRlbS5OZXh0DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBl bGlmIE1vZGUgPT0gJ2knOiAgIyBzZXQgaW5mbw0KPiANCj4gLSAgICAgICAgICAgIGlmIElkICE9 IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYuX19JdGVtTGlzdFBvcy5JZCA9IElk DQo+IA0KPiAtICAgICAgICBlbHNlOg0KPiANCj4gLSAgICAgICAgICAgIHJldHVybiAxDQo+IA0K PiAtICAgICAgICByZXR1cm4gMA0KPiANCj4gLQ0KPiANCj4gLWdDVmZyQnVmZmVyQ29uZmlnID0g Q1ZmckJ1ZmZlckNvbmZpZygpDQo+IA0KPiAtDQo+IA0KPiAtY2xhc3MgRUZJX1ZBUlNUT1JFX0lO Rk8oU3RydWN0dXJlKToNCj4gDQo+IC0gICAgX3BhY2tfID0gMQ0KPiANCj4gLSAgICBfZmllbGRz XyA9IFsNCj4gDQo+IC0gICAgICAgICgnVmFyU3RvcmVJZCcsIGNfdWludDE2KSwNCj4gDQo+IC0g ICAgICAgICgnSW5mbycsIFZhclN0b3JlSW5mb05vZGUpLA0KPiANCj4gLSAgICAgICAgKCdWYXJU eXBlJywgY191aW50OCksDQo+IA0KPiAtICAgICAgICAoJ1ZhclRvdGFsU2l6ZScsIGNfdWludDMy KSwNCj4gDQo+IC0gICAgICAgICgnSXNCaXRWYXInLCBjX2Jvb2wpLA0KPiANCj4gLSAgICBdDQo+ IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBfX2luaXRfXyhzZWxmLA0KPiANCj4gLSAgICAgICAgICAg ICAgICAgVmFyU3RvcmVJZD1FRklfVkFSU1RPUkVfSURfSU5WQUxJRCwNCj4gDQo+IC0gICAgICAg ICAgICAgICAgIFZhck5hbWU9RUZJX1NUUklOR19JRF9JTlZBTElELA0KPiANCj4gLSAgICAgICAg ICAgICAgICAgVmFyT2Zmc2V0PUVGSV9WQVJPRkZTRVRfSU5WQUxJRCwNCj4gDQo+IC0gICAgICAg ICAgICAgICAgIFZhclR5cGU9RUZJX0lGUl9UWVBFX09USEVSLA0KPiANCj4gLSAgICAgICAgICAg ICAgICAgVmFyVG90YWxTaXplPTAsDQo+IA0KPiAtICAgICAgICAgICAgICAgICBJc0JpdFZhcj1G YWxzZSk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBzZWxmLlZhclN0b3JlSWQgPSBWYXJTdG9y ZUlkDQo+IA0KPiAtICAgICAgICBzZWxmLkluZm8uVmFyTmFtZSA9IFZhck5hbWUNCj4gDQo+IC0g ICAgICAgIHNlbGYuSW5mby5WYXJPZmZzZXQgPSBWYXJPZmZzZXQNCj4gDQo+IC0gICAgICAgIHNl bGYuVmFyVG90YWxTaXplID0gVmFyVG90YWxTaXplDQo+IA0KPiAtICAgICAgICBzZWxmLklzQml0 VmFyID0gSXNCaXRWYXINCj4gDQo+IC0gICAgICAgIHNlbGYuVmFyVHlwZSA9IFZhclR5cGUNCj4g DQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBCdWZmZXJWYXJTdG9yZUZpZWxkSW5mb05vZGUo KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5pdF9fKHNlbGYsIEJhc2VJbmZvOiBFRklf VkFSU1RPUkVfSU5GTyk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBzZWxmLlZhclN0b3JlSW5m byA9IEVGSV9WQVJTVE9SRV9JTkZPKCkNCj4gDQo+IC0gICAgICAgIHNlbGYuVmFyU3RvcmVJbmZv LlZhclR5cGUgPSBCYXNlSW5mby5WYXJUeXBlDQo+IA0KPiAtICAgICAgICBzZWxmLlZhclN0b3Jl SW5mby5WYXJUb3RhbFNpemUgPSBCYXNlSW5mby5WYXJUb3RhbFNpemUNCj4gDQo+IC0gICAgICAg IHNlbGYuVmFyU3RvcmVJbmZvLkluZm8uVmFyT2Zmc2V0ID0gQmFzZUluZm8uSW5mby5WYXJPZmZz ZXQNCj4gDQo+IC0gICAgICAgIHNlbGYuVmFyU3RvcmVJbmZvLlZhclN0b3JlSWQgPSBCYXNlSW5m by5WYXJTdG9yZUlkDQo+IA0KPiAtICAgICAgICBzZWxmLk5leHQgPSBOb25lDQo+IA0KPiAtDQo+ IA0KPiAtDQo+IA0KPiAtY2xhc3MgQ1ZmckRhdGFTdG9yYWdlKG9iamVjdCk6DQo+IA0KPiAtDQo+ IA0KPiAtICAgIGRlZiBfX2luaXRfXyhzZWxmKToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19CdWZm ZXJWYXJTdG9yZUxpc3QgPSBOb25lICAjIFNWZnJWYXJTdG9yYWdlTm9kZQ0KPiANCj4gLSAgICAg ICAgc2VsZi5fX0VmaVZhclN0b3JlTGlzdCA9IE5vbmUNCj4gDQo+IC0gICAgICAgIHNlbGYuX19O YW1lVmFyU3RvcmVMaXN0ID0gTm9uZQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX0N1cnJWYXJTdG9y YWdlTm9kZSA9IE5vbmUNCj4gDQo+IC0gICAgICAgIHNlbGYuX19OZXdWYXJTdG9yYWdlTm9kZSA9 IE5vbmUNCj4gDQo+IC0gICAgICAgIHNlbGYuX19CdWZmZXJGaWVsZEluZm9MaXN0SGVhZCA9IE5v bmUNCj4gDQo+IC0gICAgICAgIHNlbGYuX19tQnVmZmVyRmllbGRJbmZvTGlzdFRhaWwgPSBOb25l DQo+IA0KPiAtICAgICAgICBzZWxmLl9fRnJlZVZhclN0b3JlSWRCaXRNYXAgPSBbXQ0KPiANCj4g LSAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgRUZJX0ZSRUVfVkFSU1RPUkVfSURfQklUTUFQX1NJ WkUpOg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19GcmVlVmFyU3RvcmVJZEJpdE1hcC5hcHBl bmQoMCkNCj4gDQo+IC0gICAgICAgICNRdWVzdGlvbiBJRDAgaXMgcmVzZXJ2ZWQNCj4gDQo+IC0g ICAgICAgIHNlbGYuX19GcmVlVmFyU3RvcmVJZEJpdE1hcFswXSA9IDB4ODAwMDAwMDANCj4gDQo+ IC0NCj4gDQo+IC0gICAgZGVmIEdldEJ1ZmZlclZhclN0b3JlTGlzdChzZWxmKToNCj4gDQo+IC0g ICAgICAgIHJldHVybiBzZWxmLl9fQnVmZmVyVmFyU3RvcmVMaXN0DQo+IA0KPiAtDQo+IA0KPiAt ICAgIGRlZiBfX0NoZWNrR3VpZEZpZWxkKHNlbGYsIHBOb2RlLCBTdG9yZUd1aWQsIEhhc0ZvdW5k T25lLCBSZXR1cm5Db2RlKToNCj4gDQo+IC0gICAgICAgIGlmIFN0b3JlR3VpZCAhPSBOb25lOg0K PiANCj4gLSAgICAgICAgICAgICM/SWYgaGFzIGd1aWQgaW5mbywgY29tcGFyZSB0aGUgZ3VpZCBm aWxlZC4NCj4gDQo+IC0gICAgICAgICAgICBpZiBwTm9kZS5HdWlkLl9fY21wX18oU3RvcmVHdWlk KToNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5fX0N1cnJWYXJTdG9yYWdlTm9kZSA9IHBO b2RlDQo+IA0KPiAtICAgICAgICAgICAgICAgIFJldHVybkNvZGUgPSBWZnJSZXR1cm5Db2RlLlZG Ul9SRVRVUk5fU1VDQ0VTUw0KPiANCj4gLSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZSwgUmV0 dXJuQ29kZSwgSGFzRm91bmRPbmUNCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAg ICAgICAgIz9ub3QgaGFzIEd1aWQgZmllbGQsIGNoZWNrIHdoZXRoZXIgdGhpcyBuYW1lIGlzIHRo ZSBvbmx5IG9uZS4NCj4gDQo+IC0gICAgICAgICAgICBpZiBIYXNGb3VuZE9uZToNCj4gDQo+IC0g ICAgICAgICAgICAgICAgIyAgVGhlIG5hbWUgaGFzIGNvbmZsaWN0LCByZXR1cm4gbmFtZSByZWRl ZmluZWQuDQo+IA0KPiAtICAgICAgICAgICAgICAgIFJldHVybkNvZGUgPQ0KPiBWZnJSZXR1cm5D b2RlLlZGUl9SRVRVUk5fVkFSU1RPUkVfTkFNRV9SRURFRklORURfRVJST1INCj4gDQo+IC0gICAg ICAgICAgICAgICAgcmV0dXJuIFRydWUsIFJldHVybkNvZGUsIEhhc0ZvdW5kT25lDQo+IA0KPiAt DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX0N1cnJWYXJTdG9yYWdlTm9kZSA9IHBOb2RlDQo+ IA0KPiAtICAgICAgICAgICAgSGFzRm91bmRPbmUgPSBUcnVlDQo+IA0KPiAtICAgICAgICByZXR1 cm4gRmFsc2UsIFJldHVybkNvZGUsIEhhc0ZvdW5kT25lDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRl ZiBfX0dldFZhclN0b3JlQnlEYXRhVHlwZShzZWxmLCBEYXRhVHlwZU5hbWUsIFZhckd1aWQpOg0K PiANCj4gLSAgICAgICAgTWF0Y2hOb2RlID0gTm9uZQ0KPiANCj4gLSAgICAgICAgcE5vZGUgPSBz ZWxmLl9fQnVmZmVyVmFyU3RvcmVMaXN0DQo+IA0KPiAtICAgICAgICB3aGlsZSBwTm9kZSAhPSBO b25lOg0KPiANCj4gLSAgICAgICAgICAgIGlmIHBOb2RlLkRhdGFUeXBlLlR5cGVOYW1lICE9IERh dGFUeXBlTmFtZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgcE5vZGUgPSBwTm9kZS5OZXh0DQo+ IA0KPiAtICAgICAgICAgICAgICAgIGNvbnRpbnVlDQo+IA0KPiAtICAgICAgICAgICAgaWYgVmFy R3VpZCAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgICAgICBpZiBwTm9kZS5HdWlkLl9fY21w X18oVmFyR3VpZCk6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICByZXR1cm4gcE5vZGUsIFZm clJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+IA0KPiAtICAgICAgICAgICAgZWxzZToN Cj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgTWF0Y2hOb2RlID09IE5vbmU6DQo+IA0KPiAtICAg ICAgICAgICAgICAgICAgICBNYXRjaE5vZGUgPSBwTm9kZQ0KPiANCj4gLSAgICAgICAgICAgICAg ICBlbHNlOg0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgIyBNb3JlIHRoYW4gb25lIHZhcnN0 b3JlcyByZWZlcnJlZCB0aGUgc2FtZSBkYXRhIHN0cnVjdHVyZXMNCj4gDQo+IC0gICAgICAgICAg ICAgICAgICAgIHJldHVybiBOb25lLA0KPiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fVkFSU1RP UkVfREFUQVRZUEVfUkVERUZJTkVEX0VSUk9SDQo+IA0KPiAtICAgICAgICAgICAgcE5vZGUgPSBw Tm9kZS5OZXh0DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBNYXRjaE5vZGUgPT0gTm9uZToN Cj4gDQo+IC0gICAgICAgICAgICByZXR1cm4gTWF0Y2hOb2RlLCBWZnJSZXR1cm5Db2RlLlZGUl9S RVRVUk5fVU5ERUZJTkVEDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gTWF0Y2hOb2Rl LCBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiANCj4gLQ0KPiANCj4gLSAgICAi IiINCj4gDQo+IC0gICAgICAgQmFzZSBvbiB0aGUgaW5wdXQgc3RvcmUgbmFtZSBhbmQgZ3VpZCB0 byBmaW5kIHRoZSB2YXJzdG9yZSBpZC4NCj4gDQo+IC0gICAgICAgSWYgYm90aCBuYW1lIGFuZCBn dWlkIGFyZSBpbnB1dGVkLCBiYXNlIG9uIHRoZSBuYW1lIGFuZCBndWlkIHRvDQo+IA0KPiAtICAg ICAgIGZvdW5kIHRoZSB2YXJzdG9yZS4gSWYgb25seSBuYW1lIGlucHV0ZWQsIGJhc2Ugb24gdGhl IG5hbWUgdG8NCj4gDQo+IC0gICAgICAgZm91bmQgdGhlIHZhcnN0b3JlIGFuZCBnbyBvbiB0byBj aGVjayB3aGV0aGVyIG1vcmUgdGhhbiBvbmUgdmFyc3RvcmUNCj4gDQo+IC0gICAgICAgaGFzIHRo ZSBzYW1lIG5hbWUuIElmIG9ubHkgaGFzIGZvdW5kIG9uZSB2YXJzdG9yZSwgcmV0dXJuIHRoaXMN Cj4gDQo+IC0gICAgICAgdmFyc3RvcmU7IGlmIG1vcmUgdGhhbiBvbmUgdmFyc3RvcmUgaGFzIHNh bWUgbmFtZSwgcmV0dXJuIHZhcnN0b3JlDQo+IA0KPiAtICAgICAgIG5hbWUgcmVkZWZpbmVkIGVy cm9yLiBJZiBubyB2YXJzdG9yZSBmb3VuZCBieSB2YXJzdG9yZSBuYW1lLCBjYWxsDQo+IA0KPiAt ICAgICAgIGZ1bmN0aW9uIEdldFZhclN0b3JlQnlEYXRhVHlwZSBhbmQgdXNlIGlucHV0ZWQgdmFy c3RvcmUgbmFtZSBhcw0KPiANCj4gLSAgICAgICBkYXRhIHR5cGUgbmFtZSB0byBzZWFyY2guDQo+ IA0KPiAtICAgICAgICIiIg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgR2V0VmFyU3RvcmVJZChz ZWxmLCBTdG9yZU5hbWUsIFN0b3JlR3VpZD1Ob25lKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAg IFJldHVybkNvZGUgPSBOb25lDQo+IA0KPiAtICAgICAgICBIYXNGb3VuZE9uZSA9IEZhbHNlDQo+ IA0KPiAtICAgICAgICBzZWxmLl9fQ3VyclZhclN0b3JhZ2VOb2RlID0gTm9uZQ0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgcE5vZGUgPSBzZWxmLl9fQnVmZmVyVmFyU3RvcmVMaXN0DQo+IA0KPiAt ICAgICAgICB3aGlsZSBwTm9kZSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGlmIHBOb2Rl LlZhclN0b3JlTmFtZSA9PSBTdG9yZU5hbWU6DQo+IA0KPiAtICAgICAgICAgICAgICAgIFJlc3Vs dCwgUmV0dXJuQ29kZSwgSGFzRm91bmRPbmUgPSBzZWxmLl9fQ2hlY2tHdWlkRmllbGQoDQo+IA0K PiAtICAgICAgICAgICAgICAgICAgICBwTm9kZSwgU3RvcmVHdWlkLCBIYXNGb3VuZE9uZSwgUmV0 dXJuQ29kZSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgUmVzdWx0Og0KPiANCj4gLSAgICAg ICAgICAgICAgICAgICAgVmFyU3RvcmVJZCA9IHNlbGYuX19DdXJyVmFyU3RvcmFnZU5vZGUuVmFy U3RvcmVJZA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZhclN0b3JlSWQsIFJl dHVybkNvZGUNCj4gDQo+IC0gICAgICAgICAgICBwTm9kZSA9IHBOb2RlLk5leHQNCj4gDQo+IC0N Cj4gDQo+IC0gICAgICAgIHBOb2RlID0gc2VsZi5fX0VmaVZhclN0b3JlTGlzdA0KPiANCj4gLSAg ICAgICAgd2hpbGUgcE5vZGUgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBpZiBwTm9kZS5W YXJTdG9yZU5hbWUgPT0gU3RvcmVOYW1lOg0KPiANCj4gLSAgICAgICAgICAgICAgICBSZXN1bHQs IFJldHVybkNvZGUsIEhhc0ZvdW5kT25lID0gc2VsZi5fX0NoZWNrR3VpZEZpZWxkKA0KPiANCj4g LSAgICAgICAgICAgICAgICAgICAgcE5vZGUsIFN0b3JlR3VpZCwgSGFzRm91bmRPbmUsIFJldHVy bkNvZGUpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIFJlc3VsdDoNCj4gDQo+IC0gICAgICAg ICAgICAgICAgICAgIFZhclN0b3JlSWQgPSBzZWxmLl9fQ3VyclZhclN0b3JhZ2VOb2RlLlZhclN0 b3JlSWQNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgIHJldHVybiBWYXJTdG9yZUlkLCBSZXR1 cm5Db2RlDQo+IA0KPiAtICAgICAgICAgICAgcE5vZGUgPSBwTm9kZS5OZXh0DQo+IA0KPiAtDQo+ IA0KPiAtICAgICAgICBwTm9kZSA9IHNlbGYuX19OYW1lVmFyU3RvcmVMaXN0DQo+IA0KPiAtICAg ICAgICB3aGlsZSBwTm9kZSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGlmIHBOb2RlLlZh clN0b3JlTmFtZSA9PSBTdG9yZU5hbWU6DQo+IA0KPiAtICAgICAgICAgICAgICAgIFJlc3VsdCwg UmV0dXJuQ29kZSwgSGFzRm91bmRPbmUgPSBzZWxmLl9fQ2hlY2tHdWlkRmllbGQoDQo+IA0KPiAt ICAgICAgICAgICAgICAgICAgICBwTm9kZSwgU3RvcmVHdWlkLCBIYXNGb3VuZE9uZSwgUmV0dXJu Q29kZSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgUmVzdWx0Og0KPiANCj4gLSAgICAgICAg ICAgICAgICAgICAgVmFyU3RvcmVJZCA9IHNlbGYuX19DdXJyVmFyU3RvcmFnZU5vZGUuVmFyU3Rv cmVJZA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZhclN0b3JlSWQsIFJldHVy bkNvZGUNCj4gDQo+IC0gICAgICAgICAgICBwTm9kZSA9IHBOb2RlLk5leHQNCj4gDQo+IC0NCj4g DQo+IC0gICAgICAgIGlmIEhhc0ZvdW5kT25lOg0KPiANCj4gLSAgICAgICAgICAgIFZhclN0b3Jl SWQgPSBzZWxmLl9fQ3VyclZhclN0b3JhZ2VOb2RlLlZhclN0b3JlSWQNCj4gDQo+IC0gICAgICAg ICAgICByZXR1cm4gVmFyU3RvcmVJZCwgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MN Cj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIFZhclN0b3JlSWQgPSBFRklfVkFSU1RPUkVfSURfSU5W QUxJRA0KPiANCj4gLSAgICAgICAgcE5vZGUsIFJldHVybkNvZGUgPSBzZWxmLl9fR2V0VmFyU3Rv cmVCeURhdGFUeXBlKFN0b3JlTmFtZSwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZUd1aWQpICAjDQo+IA0KPiAtICAg ICAgICBpZiBwTm9kZSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19DdXJyVmFy U3RvcmFnZU5vZGUgPSBwTm9kZQ0KPiANCj4gLSAgICAgICAgICAgIFZhclN0b3JlSWQgPSBwTm9k ZS5WYXJTdG9yZUlkDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gVmFyU3RvcmVJZCwg UmV0dXJuQ29kZQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19HZXRGcmVlVmFyU3RvcmVJZChz ZWxmLCBWYXJUeXBlKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIEluZGV4ID0gMA0KPiANCj4g LSAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgRUZJX0ZSRUVfVkFSU1RPUkVfSURfQklUTUFQX1NJ WkUpOg0KPiANCj4gLSAgICAgICAgICAgIGlmIHNlbGYuX19GcmVlVmFyU3RvcmVJZEJpdE1hcFtp XSAhPSAweEZGRkZGRkZGOg0KPiANCj4gLSAgICAgICAgICAgICAgICBJbmRleCA9IGkNCj4gDQo+ IC0gICAgICAgICAgICAgICAgYnJlYWsNCj4gDQo+IC0gICAgICAgIGlmIEluZGV4ID09IEVGSV9G UkVFX1ZBUlNUT1JFX0lEX0JJVE1BUF9TSVpFOg0KPiANCj4gLSAgICAgICAgICAgIHJldHVybiBF RklfVkFSU1RPUkVfSURfSU5WQUxJRA0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgT2Zmc2V0ID0g MA0KPiANCj4gLSAgICAgICAgTWFzayA9IDB4ODAwMDAwMDANCj4gDQo+IC0gICAgICAgIHdoaWxl IE1hc2sgIT0gMDoNCj4gDQo+IC0gICAgICAgICAgICBpZiAoc2VsZi5fX0ZyZWVWYXJTdG9yZUlk Qml0TWFwW0luZGV4XSAmIE1hc2spID09IDA6DQo+IA0KPiAtICAgICAgICAgICAgICAgIHNlbGYu X19GcmVlVmFyU3RvcmVJZEJpdE1hcFtJbmRleF0gfD0gTWFzaw0KPiANCj4gLSAgICAgICAgICAg ICAgICByZXR1cm4gKEluZGV4IDw8IEVGSV9CSVRTX1NISUZUX1BFUl9VSU5UMzIpICsgT2Zmc2V0 DQo+IA0KPiAtICAgICAgICAgICAgTWFzayA+Pj0gMQ0KPiANCj4gLSAgICAgICAgICAgIE9mZnNl dCArPSAxDQo+IA0KPiAtICAgICAgICByZXR1cm4gRUZJX1ZBUlNUT1JFX0lEX0lOVkFMSUQNCj4g DQo+IC0NCj4gDQo+IC0gICAgZGVmIF9fQ2hlY2tWYXJTdG9yZUlkRnJlZShzZWxmLCBWYXJTdG9y ZUlkKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIEluZGV4ID0gaW50KFZhclN0b3JlSWQgLyBF RklfQklUU19QRVJfVUlOVDMyKQ0KPiANCj4gLSAgICAgICAgT2Zmc2V0ID0gVmFyU3RvcmVJZCAl IEVGSV9CSVRTX1BFUl9VSU5UMzINCj4gDQo+IC0gICAgICAgIHJldHVybiAoc2VsZi5fX0ZyZWVW YXJTdG9yZUlkQml0TWFwW0luZGV4XSAmDQo+IA0KPiAtICAgICAgICAgICAgICAgICgweDgwMDAw MDAwID4+IE9mZnNldCkpID09IDANCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9fTWFya1ZhclN0 b3JlSWRVc2VkKHNlbGYsIFZhclN0b3JlSWQpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgSW5k ZXggPSBpbnQoVmFyU3RvcmVJZCAvIEVGSV9CSVRTX1BFUl9VSU5UMzIpDQo+IA0KPiAtICAgICAg ICBPZmZzZXQgPSBWYXJTdG9yZUlkICUgRUZJX0JJVFNfUEVSX1VJTlQzMg0KPiANCj4gLSAgICAg ICAgc2VsZi5fX0ZyZWVWYXJTdG9yZUlkQml0TWFwW0luZGV4XSB8PSAoMHg4MDAwMDAwMCA+PiBP ZmZzZXQpDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBEZWNsYXJlQnVmZmVyVmFyU3RvcmUoc2Vs ZiwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZU5hbWUsDQo+IA0K PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3VpZCwNCj4gDQo+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBEYXRhVHlwZURCLA0KPiANCj4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFR5cGVOYW1lLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFZhclN0b3JlSWQsDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSXNC aXRWYXJTdG9yZSwNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyPTAs DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxhZz1UcnVlKToNCj4gDQo+ IC0NCj4gDQo+IC0gICAgICAgIGlmIFN0b3JlTmFtZSA9PSBOb25lIG9yIEd1aWQgPT0gTm9uZSBv ciBEYXRhVHlwZURCID09IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIFZmclJldHVy bkNvZGUuVkZSX1JFVFVSTl9GQVRBTF9FUlJPUg0KPiANCj4gLSAgICAgICAgXywgUmV0dXJuQ29k ZSA9IHNlbGYuR2V0VmFyU3RvcmVJZChTdG9yZU5hbWUsIEd1aWQpDQo+IA0KPiAtDQo+IA0KPiAt ICAgICAgICBpZiBSZXR1cm5Db2RlID09IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNT Og0KPiANCj4gLSAgICAgICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fUkVE RUZJTkVEDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBEYXRhVHlwZSwgUmV0dXJuQ29kZSA9IERh dGFUeXBlREIuR2V0RGF0YVR5cGUoVHlwZU5hbWUpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBp ZiBSZXR1cm5Db2RlICE9IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTOg0KPiANCj4g LSAgICAgICAgICAgIHJldHVybiBSZXR1cm5Db2RlDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBp ZiBWYXJTdG9yZUlkID09IEVGSV9WQVJTVE9SRV9JRF9JTlZBTElEOg0KPiANCj4gLSAgICAgICAg ICAgIFZhclN0b3JlSWQgPSBzZWxmLl9fR2V0RnJlZVZhclN0b3JlSWQoDQo+IA0KPiAtICAgICAg ICAgICAgICAgIEVGSV9WRlJfVkFSU1RPUkVfVFlQRS5FRklfVkZSX1ZBUlNUT1JFX0JVRkZFUikN Cj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgaWYgc2VsZi5fX0NoZWNr VmFyU3RvcmVJZEZyZWUoVmFyU3RvcmVJZCkgPT0gRmFsc2U6DQo+IA0KPiAtICAgICAgICAgICAg ICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fVkFSU1RPUkVJRF9SRURFRklORUQN Cj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fTWFya1ZhclN0b3JlSWRVc2VkKFZhclN0b3JlSWQp DQo+IA0KPiAtICAgICAgICBwTmV3ID0gU1ZmclZhclN0b3JhZ2VOb2RlKFN0b3JlTmFtZSwgVmFy U3RvcmVJZCwgR3VpZCwgQXR0ciwgRmxhZywNCj4gTm9uZSwNCj4gDQo+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRGF0YVR5cGUsIElzQml0VmFyU3RvcmUpDQo+IA0KPiAtDQo+ IA0KPiAtICAgICAgICBpZiBwTmV3ID09IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJu IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9PVVRfRk9SX1JFU09VUkNFUw0KPiANCj4gLQ0KPiAN Cj4gLSAgICAgICAgcE5ldy5OZXh0ID0gc2VsZi5fX0J1ZmZlclZhclN0b3JlTGlzdA0KPiANCj4g LSAgICAgICAgc2VsZi5fX0J1ZmZlclZhclN0b3JlTGlzdCA9IHBOZXcNCj4gDQo+IC0NCj4gDQo+ IC0gICAgICAgIGlmIGdDVmZyQnVmZmVyQ29uZmlnLlJlZ2lzdGVyKFN0b3JlTmFtZSwgR3VpZCkg IT0gMDoNCj4gDQo+IC0gICAgICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJO X0ZBVEFMX0VSUk9SDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29k ZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIERlY2xhcmVOYW1l VmFyU3RvcmVCZWdpbihzZWxmLCBTdG9yZU5hbWUsIFZhclN0b3JlSWQpOg0KPiANCj4gLSAgICAg ICAgaWYgU3RvcmVOYW1lID09IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIFZmclJl dHVybkNvZGUuVkZSX1JFVFVSTl9GQVRBTF9FUlJPUg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAg XywgUmV0dXJuQ29kZSA9IHNlbGYuR2V0VmFyU3RvcmVJZChTdG9yZU5hbWUpDQo+IA0KPiAtICAg ICAgICBpZiBSZXR1cm5Db2RlID09IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTOg0K PiANCj4gLSAgICAgICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fUkVERUZJ TkVEDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBWYXJTdG9yZUlkID09IEVGSV9WQVJTVE9S RV9JRF9JTlZBTElEOg0KPiANCj4gLSAgICAgICAgICAgIFZhclN0b3JlSWQgPSBzZWxmLl9fR2V0 RnJlZVZhclN0b3JlSWQoDQo+IA0KPiAtICAgICAgICAgICAgICAgIEVGSV9WRlJfVkFSU1RPUkVf VFlQRS5FRklfVkZSX1ZBUlNUT1JFX05BTUUpDQo+IA0KPiAtICAgICAgICBlbHNlOg0KPiANCj4g LSAgICAgICAgICAgIGlmIHNlbGYuX19DaGVja1ZhclN0b3JlSWRGcmVlKFZhclN0b3JlSWQpID09 IEZhbHNlOg0KPiANCj4gLSAgICAgICAgICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJf UkVUVVJOX1ZBUlNUT1JFSURfUkVERUZJTkVEDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX01h cmtWYXJTdG9yZUlkVXNlZChWYXJTdG9yZUlkKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcE5v ZGUgPSBTVmZyVmFyU3RvcmFnZU5vZGUoU3RvcmVOYW1lLCBWYXJTdG9yZUlkKQ0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgaWYgcE5vZGUgPT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICByZXR1 cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX09VVF9GT1JfUkVTT1VSQ0VTDQo+IA0KPiAtDQo+ IA0KPiAtICAgICAgICBzZWxmLl9fTmV3VmFyU3RvcmFnZU5vZGUgPSBwTm9kZQ0KPiANCj4gLSAg ICAgICAgcmV0dXJuIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+IA0KPiAtDQo+ IA0KPiAtICAgIGRlZiBEZWNsYXJlTmFtZVZhclN0b3JlRW5kKHNlbGYsIEd1aWQpOg0KPiANCj4g LSAgICAgICAgc2VsZi5fX05ld1ZhclN0b3JhZ2VOb2RlLkd1aWQgPSBHdWlkDQo+IA0KPiAtICAg ICAgICBzZWxmLl9fTmV3VmFyU3RvcmFnZU5vZGUuTmV4dCA9IHNlbGYuX19OYW1lVmFyU3RvcmVM aXN0DQo+IA0KPiAtICAgICAgICBzZWxmLl9fTmFtZVZhclN0b3JlTGlzdCA9IHNlbGYuX19OZXdW YXJTdG9yYWdlTm9kZQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX05ld1ZhclN0b3JhZ2VOb2RlID0g Tm9uZQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgTmFtZVRhYmxlQWRkSXRlbShzZWxmLCBJdGVt KToNCj4gDQo+IC0gICAgICAgIHNlbGYuX19OZXdWYXJTdG9yYWdlTm9kZS5OYW1lU3BhY2UuYXBw ZW5kKEl0ZW0pDQo+IA0KPiAtICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJO X1NVQ0NFU1MNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldE5hbWVWYXJTdG9yZUluZm8oc2Vs ZiwgQmFzZUluZm8sIEluZGV4KToNCj4gDQo+IC0gICAgICAgIGlmIEJhc2VJbmZvID09IE5vbmU6 DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9GQVRB TF9FUlJPUg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgc2VsZi5fX0N1cnJWYXJTdG9yYWdl Tm9kZSA9PSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZG Ul9SRVRVUk5fR0VUX05WVkFSU1RPUkVfRVJST1INCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIEJh c2VJbmZvLkluZm8uVmFyTmFtZSA9IHNlbGYuX19DdXJyVmFyU3RvcmFnZU5vZGUuTmFtZVNwYWNl W0luZGV4XQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIFZmclJldHVybkNvZGUuVkZS X1JFVFVSTl9TVUNDRVNTDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBHZXRWYXJTdG9yZVR5cGUo c2VsZiwgVmFyU3RvcmVJZCk6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBWYXJTdG9yZVR5cGUg PSBFRklfVkZSX1ZBUlNUT1JFX1RZUEUuRUZJX1ZGUl9WQVJTVE9SRV9JTlZBTElEDQo+IA0KPiAt DQo+IA0KPiAtICAgICAgICBpZiBWYXJTdG9yZUlkID09IEVGSV9WQVJTVE9SRV9JRF9JTlZBTElE Og0KPiANCj4gLSAgICAgICAgICAgIHJldHVybiBWYXJTdG9yZVR5cGUNCj4gDQo+IC0NCj4gDQo+ IC0gICAgICAgIHBOb2RlID0gc2VsZi5fX0J1ZmZlclZhclN0b3JlTGlzdA0KPiANCj4gLSAgICAg ICAgd2hpbGUgcE5vZGUgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBpZiBwTm9kZS5WYXJT dG9yZUlkID09IFZhclN0b3JlSWQ6DQo+IA0KPiAtICAgICAgICAgICAgICAgIFZhclN0b3JlVHlw ZSA9IHBOb2RlLlZhcnN0b3JlVHlwZQ0KPiANCj4gLSAgICAgICAgICAgICAgICByZXR1cm4gVmFy U3RvcmVUeXBlDQo+IA0KPiAtICAgICAgICAgICAgcE5vZGUgPSBwTm9kZS5OZXh0DQo+IA0KPiAt DQo+IA0KPiAtICAgICAgICBwTm9kZSA9IHNlbGYuX19FZmlWYXJTdG9yZUxpc3QNCj4gDQo+IC0g ICAgICAgIHdoaWxlIHBOb2RlICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgaWYgcE5vZGUu VmFyU3RvcmVJZCA9PSBWYXJTdG9yZUlkOg0KPiANCj4gLSAgICAgICAgICAgICAgICBWYXJTdG9y ZVR5cGUgPSBwTm9kZS5WYXJzdG9yZVR5cGUNCj4gDQo+IC0gICAgICAgICAgICAgICAgcmV0dXJu IFZhclN0b3JlVHlwZQ0KPiANCj4gLSAgICAgICAgICAgIHBOb2RlID0gcE5vZGUuTmV4dA0KPiAN Cj4gLQ0KPiANCj4gLSAgICAgICAgcE5vZGUgPSBzZWxmLl9fTmFtZVZhclN0b3JlTGlzdA0KPiAN Cj4gLSAgICAgICAgd2hpbGUgcE5vZGUgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBpZiBw Tm9kZS5WYXJTdG9yZUlkID09IFZhclN0b3JlSWQ6DQo+IA0KPiAtICAgICAgICAgICAgICAgIFZh clN0b3JlVHlwZSA9IHBOb2RlLlZhcnN0b3JlVHlwZQ0KPiANCj4gLSAgICAgICAgICAgICAgICBy ZXR1cm4gVmFyU3RvcmVUeXBlDQo+IA0KPiAtICAgICAgICAgICAgcE5vZGUgPSBwTm9kZS5OZXh0 DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gVmFyU3RvcmVUeXBlDQo+IA0KPiAtDQo+ IA0KPiAtICAgIGRlZiBHZXRWYXJTdG9yZU5hbWUoc2VsZiwgVmFyU3RvcmVJZCk6DQo+IA0KPiAt DQo+IA0KPiAtICAgICAgICBwTm9kZSA9IHNlbGYuX19CdWZmZXJWYXJTdG9yZUxpc3QNCj4gDQo+ IC0gICAgICAgIHdoaWxlIHBOb2RlICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgaWYgcE5v ZGUuVmFyU3RvcmVJZCA9PSBWYXJTdG9yZUlkOg0KPiANCj4gLSAgICAgICAgICAgICAgICByZXR1 cm4gcE5vZGUuVmFyU3RvcmVOYW1lLCBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0K PiANCj4gLSAgICAgICAgICAgIHBOb2RlID0gcE5vZGUuTmV4dA0KPiANCj4gLQ0KPiANCj4gLSAg ICAgICAgcE5vZGUgPSBzZWxmLl9fRWZpVmFyU3RvcmVMaXN0DQo+IA0KPiAtICAgICAgICB3aGls ZSBwTm9kZSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGlmIHBOb2RlLlZhclN0b3JlSWQg PT0gVmFyU3RvcmVJZDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgcmV0dXJuIHBOb2RlLlZhclN0 b3JlTmFtZSwgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gDQo+IC0gICAgICAg ICAgICBwTm9kZSA9IHBOb2RlLk5leHQNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHBOb2RlID0g c2VsZi5fX05hbWVWYXJTdG9yZUxpc3QNCj4gDQo+IC0gICAgICAgIHdoaWxlIHBOb2RlICE9IE5v bmU6DQo+IA0KPiAtICAgICAgICAgICAgaWYgcE5vZGUuVmFyU3RvcmVJZCA9PSBWYXJTdG9yZUlk Og0KPiANCj4gLSAgICAgICAgICAgICAgICByZXR1cm4gcE5vZGUuVmFyU3RvcmVOYW1lLCBWZnJS ZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiANCj4gLSAgICAgICAgICAgIHBOb2RlID0g cE5vZGUuTmV4dA0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIE5vbmUsIFZmclJldHVy bkNvZGUuVkZSX1JFVFVSTl9VTkRFRklORUQNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC0gICAg ZGVmIEdldEJ1ZmZlclZhclN0b3JlRGF0YVR5cGVOYW1lKHNlbGYsIFZhclN0b3JlSWQpOg0KPiAN Cj4gLQ0KPiANCj4gLSAgICAgICAgRGF0YVR5cGVOYW1lID0gTm9uZQ0KPiANCj4gLSAgICAgICAg aWYgVmFyU3RvcmVJZCA9PSBFRklfVkFSU1RPUkVfSURfSU5WQUxJRDoNCj4gDQo+IC0gICAgICAg ICAgICByZXR1cm4gRGF0YVR5cGVOYW1lLCBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fRkFUQUxf RVJST1INCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHBOb2RlID0gc2VsZi5fX0J1ZmZlclZhclN0 b3JlTGlzdA0KPiANCj4gLSAgICAgICAgd2hpbGUgcE5vZGUgIT0gTm9uZToNCj4gDQo+IC0gICAg ICAgICAgICBpZiBwTm9kZS5WYXJTdG9yZUlkID09IFZhclN0b3JlSWQ6DQo+IA0KPiAtICAgICAg ICAgICAgICAgIERhdGFUeXBlTmFtZSA9IHBOb2RlLkRhdGFUeXBlLlR5cGVOYW1lDQo+IA0KPiAt ICAgICAgICAgICAgICAgIHJldHVybiBEYXRhVHlwZU5hbWUsIFZmclJldHVybkNvZGUuVkZSX1JF VFVSTl9TVUNDRVNTDQo+IA0KPiAtICAgICAgICAgICAgcE5vZGUgPSBwTm9kZS5OZXh0DQo+IA0K PiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gRGF0YVR5cGVOYW1lLCBWZnJSZXR1cm5Db2RlLlZG Ul9SRVRVUk5fVU5ERUZJTkVEDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBHZXRFZmlWYXJTdG9y ZUluZm8oc2VsZiwgQmFzZUluZm86IEVGSV9WQVJTVE9SRV9JTkZPKToNCj4gDQo+IC0NCj4gDQo+ IC0gICAgICAgIGlmIEJhc2VJbmZvID09IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJu IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9GQVRBTF9FUlJPUg0KPiANCj4gLQ0KPiANCj4gLSAg ICAgICAgaWYgc2VsZi5fX0N1cnJWYXJTdG9yYWdlTm9kZSA9PSBOb25lOg0KPiANCj4gLSAgICAg ICAgICAgIHJldHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fR0VUX0VGSVZBUlNUT1JFX0VS Uk9SDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBCYXNlSW5mby5JbmZvLlZhck5hbWUgPSBzZWxm Ll9fQ3VyclZhclN0b3JhZ2VOb2RlLkVmaVZhci5FZmlWYXJOYW1lDQo+IA0KPiAtICAgICAgICBC YXNlSW5mby5WYXJUb3RhbFNpemUgPSBzZWxmLl9fQ3VyclZhclN0b3JhZ2VOb2RlLkVmaVZhci5F ZmlWYXJTaXplDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBCYXNlSW5mby5WYXJUb3RhbFNp emUgPT0gMToNCj4gDQo+IC0gICAgICAgICAgICBCYXNlSW5mby5WYXJUeXBlID0gRUZJX0lGUl9U WVBFX05VTV9TSVpFXzgNCj4gDQo+IC0gICAgICAgIGVsaWYgQmFzZUluZm8uVmFyVG90YWxTaXpl ID09IDI6DQo+IA0KPiAtICAgICAgICAgICAgQmFzZUluZm8uVmFyVHlwZSA9IEVGSV9JRlJfVFlQ RV9OVU1fU0laRV8xNg0KPiANCj4gLSAgICAgICAgZWxpZiBCYXNlSW5mby5WYXJUb3RhbFNpemUg PT0gNDoNCj4gDQo+IC0gICAgICAgICAgICBCYXNlSW5mby5WYXJUeXBlID0gRUZJX0lGUl9UWVBF X05VTV9TSVpFXzMyDQo+IA0KPiAtICAgICAgICBlbGlmIEJhc2VJbmZvLlZhclRvdGFsU2l6ZSA9 PSA4Og0KPiANCj4gLSAgICAgICAgICAgIEJhc2VJbmZvLlZhclR5cGUgPSBFRklfSUZSX1RZUEVf TlVNX1NJWkVfNjQNCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgcmV0 dXJuIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9GQVRBTF9FUlJPUg0KPiANCj4gLQ0KPiANCj4g LSAgICAgICAgcmV0dXJuIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+IA0KPiAt DQo+IA0KPiAtICAgIGRlZiBHZXRWYXJTdG9yZUd1aWQoc2VsZiwgVmFyU3RvcmVJZCk6DQo+IA0K PiAtDQo+IA0KPiAtICAgICAgICBWYXJHdWlkID0gTm9uZQ0KPiANCj4gLSAgICAgICAgaWYgVmFy U3RvcmVJZCA9PSBFRklfVkFSU1RPUkVfSURfSU5WQUxJRDoNCj4gDQo+IC0gICAgICAgICAgICBy ZXR1cm4gVmFyR3VpZA0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcE5vZGUgPSBzZWxmLl9fQnVm ZmVyVmFyU3RvcmVMaXN0DQo+IA0KPiAtICAgICAgICB3aGlsZSBwTm9kZSAhPSBOb25lOg0KPiAN Cj4gLSAgICAgICAgICAgIGlmIHBOb2RlLlZhclN0b3JlSWQgPT0gVmFyU3RvcmVJZDoNCj4gDQo+ IC0gICAgICAgICAgICAgICAgVmFyR3VpZCA9IHBOb2RlLkd1aWQNCj4gDQo+IC0gICAgICAgICAg ICAgICAgcmV0dXJuIFZhckd1aWQNCj4gDQo+IC0gICAgICAgICAgICBwTm9kZSA9IHBOb2RlLk5l eHQNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHBOb2RlID0gc2VsZi5fX0VmaVZhclN0b3JlTGlz dA0KPiANCj4gLSAgICAgICAgd2hpbGUgcE5vZGUgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAg ICBpZiBwTm9kZS5WYXJTdG9yZUlkID09IFZhclN0b3JlSWQ6DQo+IA0KPiAtICAgICAgICAgICAg ICAgIFZhckd1aWQgPSBwTm9kZS5HdWlkDQo+IA0KPiAtICAgICAgICAgICAgICAgIHJldHVybiBW YXJHdWlkDQo+IA0KPiAtICAgICAgICAgICAgcE5vZGUgPSBwTm9kZS5OZXh0DQo+IA0KPiAtDQo+ IA0KPiAtICAgICAgICBwTm9kZSA9IHNlbGYuX19OYW1lVmFyU3RvcmVMaXN0DQo+IA0KPiAtICAg ICAgICB3aGlsZSBwTm9kZSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGlmIHBOb2RlLlZh clN0b3JlSWQgPT0gVmFyU3RvcmVJZDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgVmFyR3VpZCA9 IHBOb2RlLkd1aWQNCj4gDQo+IC0gICAgICAgICAgICAgICAgcmV0dXJuIFZhckd1aWQNCj4gDQo+ IC0gICAgICAgICAgICBwTm9kZSA9IHBOb2RlLk5leHQNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAg IHJldHVybiBWYXJHdWlkDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBBZGRCdWZmZXJWYXJTdG9y ZUZpZWxkSW5mbyhzZWxmLCBCYXNlSW5mbzogRUZJX1ZBUlNUT1JFX0lORk8pOg0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgcE5ldyA9IEJ1ZmZlclZhclN0b3JlRmllbGRJbmZvTm9kZShCYXNlSW5m bykNCj4gDQo+IC0gICAgICAgIGlmIHBOZXcgPT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBy ZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX0ZBVEFMX0VSUk9SDQo+IA0KPiAtDQo+IA0K PiAtICAgICAgICBpZiBzZWxmLl9fQnVmZmVyRmllbGRJbmZvTGlzdEhlYWQgPT0gTm9uZToNCj4g DQo+IC0gICAgICAgICAgICBzZWxmLl9fQnVmZmVyRmllbGRJbmZvTGlzdEhlYWQgPSBwTmV3DQo+ IA0KPiAtICAgICAgICAgICAgc2VsZi5fX21CdWZmZXJGaWVsZEluZm9MaXN0VGFpbCA9IHBOZXcN Cj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX21CdWZmZXJG aWVsZEluZm9MaXN0VGFpbC5OZXh0ID0gcE5ldw0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19t QnVmZmVyRmllbGRJbmZvTGlzdFRhaWwgPSBwTmV3DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBy ZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gDQo+IC0NCj4gDQo+IC0N Cj4gDQo+IC1jbGFzcyBDVmZyU3RyaW5nREIob2JqZWN0KToNCj4gDQo+IC0NCj4gDQo+IC0gICAg ZGVmIF9faW5pdF9fKHNlbGYpOg0KPiANCj4gLSAgICAgICAgc2VsZi5fX1N0cmluZ0ZpbGVOYW1l ID0gJycNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldFZhclN0b3JlTmFtZUZyb21TdHJpbmdJ ZChzZWxmLCBTdHJpbmdJZCk6DQo+IA0KPiAtICAgICAgICBpZiBzZWxmLl9fU3RyaW5nRmlsZU5h bWUgPT0gJyc6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIE5vbmUNCj4gDQo+IC0gICAgICAg IHRyeToNCj4gDQo+IC0gICAgICAgICAgICBmID0gb3BlbihzZWxmLl9fU3RyaW5nRmlsZU5hbWUp DQo+IA0KPiAtICAgICAgICAgICAgU3RyaW5nUHRyID0gZi5yZWFkKCkNCj4gDQo+IC0gICAgICAg ICAgICBmLmNsb3NlKCkNCj4gDQo+IC0gICAgICAgIGV4Y2VwdCBJT0Vycm9yOg0KPiANCj4gLSAg ICAgICAgICAgIHByaW50KCdFcnJvcicpDQo+IA0KPiAtDQo+IA0KPiAtZ0NWZnJTdHJpbmdEQiA9 IENWZnJTdHJpbmdEQigpDQo+IA0KPiAtDQo+IA0KPiAtRUZJX1JVTEVfSURfU1RBUlQgPSAweDAx DQo+IA0KPiAtRUZJX1JVTEVfSURfSU5WQUxJRCA9IDB4MDANCj4gDQo+IC0NCj4gDQo+IC0NCj4g DQo+IC1jbGFzcyBTVmZyUnVsZU5vZGUoKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9faW5p dF9fKHNlbGYsIFJ1bGVOYW1lPU5vbmUsIFJ1bGVJZD0wKToNCj4gDQo+IC0gICAgICAgIHNlbGYu UnVsZUlkID0gUnVsZUlkDQo+IA0KPiAtICAgICAgICBzZWxmLlJ1bGVOYW1lID0gUnVsZU5hbWUN Cj4gDQo+IC0gICAgICAgIHNlbGYuTmV4dCA9IE5vbmUNCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+ IC1jbGFzcyBDVmZyUnVsZXNEQihvYmplY3QpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19p bml0X18oc2VsZik6DQo+IA0KPiAtICAgICAgICBzZWxmLl9fUnVsZUxpc3QgPSBOb25lDQo+IA0K PiAtICAgICAgICBzZWxmLl9fRnJlZVJ1bGVJZCA9IEVGSV9WQVJTVE9SRV9JRF9TVEFSVA0KPiAN Cj4gLQ0KPiANCj4gLSAgICBkZWYgUmVnaXN0ZXJSdWxlKHNlbGYsIFJ1bGVOYW1lKToNCj4gDQo+ IC0gICAgICAgIGlmIFJ1bGVOYW1lID09IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJu DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBwTmV3ID0gU1ZmclJ1bGVOb2RlKFJ1bGVOYW1lLCBz ZWxmLl9fRnJlZVJ1bGVJZCkNCj4gDQo+IC0gICAgICAgIGlmIHBOZXcgPT0gTm9uZTogcmV0dXJu DQo+IA0KPiAtICAgICAgICBzZWxmLl9fRnJlZVJ1bGVJZCArPSAxDQo+IA0KPiAtICAgICAgICBw TmV3Lk5leHQgPSBzZWxmLl9fUnVsZUxpc3QNCj4gDQo+IC0gICAgICAgIHNlbGYuX19SdWxlTGlz dCA9IHBOZXcNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIEdldFJ1bGVJZChzZWxmLCBSdWxlTmFt ZSk6DQo+IA0KPiAtICAgICAgICBpZiBSdWxlTmFtZSA9PSBOb25lOg0KPiANCj4gLSAgICAgICAg ICAgIHJldHVybg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcE5vZGUgPSBzZWxmLl9fUnVsZUxp c3QNCj4gDQo+IC0gICAgICAgIHdoaWxlIHBOb2RlICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAg ICAgaWYgcE5vZGUuUnVsZU5hbWUgPT0gUnVsZU5hbWU6DQo+IA0KPiAtICAgICAgICAgICAgICAg IHJldHVybiBwTm9kZS5SdWxlSWQNCj4gDQo+IC0gICAgICAgICAgICBwTm9kZSA9IHBOb2RlLk5l eHQNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBFRklfUlVMRV9JRF9JTlZBTElEDQo+ IA0KPiAtDQo+IA0KPiAtDQo+IA0KPiAtRUZJX1FVRVNUSU9OX0lEX01BWCA9IDB4RkZGRg0KPiAN Cj4gLUVGSV9GUkVFX1FVRVNUSU9OX0lEX0JJVE1BUF9TSVpFID0gaW50KA0KPiANCj4gLSAgICAo RUZJX1FVRVNUSU9OX0lEX01BWCArIDEpIC8gRUZJX0JJVFNfUEVSX1VJTlQzMikNCj4gDQo+IC1F RklfUVVFU1RJT05fSURfSU5WQUxJRCA9IDB4MA0KPiANCj4gLQ0KPiANCj4gLQ0KPiANCj4gLWNs YXNzIEVGSV9RVUVTSU9OX1RZUEUoRW51bSk6DQo+IA0KPiAtICAgIFFVRVNUSU9OX05PUk1BTCA9 IDANCj4gDQo+IC0gICAgUVVFU1RJT05fREFURSA9IDENCj4gDQo+IC0gICAgUVVFU1RJT05fVElN RSA9IDINCj4gDQo+IC0gICAgUVVFU1RJT05fUkVGID0gMw0KPiANCj4gLQ0KPiANCj4gLQ0KPiAN Cj4gLWNsYXNzIFNWZnJRdWVzdGlvbk5vZGUoKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIF9f aW5pdF9fKHNlbGYsIE5hbWU9Tm9uZSwgVmFySWRTdHI9Tm9uZSwgQml0TWFzaz0wKTogICMNCj4g DQo+IC0gICAgICAgIHNlbGYuTmFtZSA9IE5hbWUNCj4gDQo+IC0gICAgICAgIHNlbGYuVmFySWRT dHIgPSBWYXJJZFN0cg0KPiANCj4gLSAgICAgICAgc2VsZi5RdWVzdGlvbklkID0gRUZJX1FVRVNU SU9OX0lEX0lOVkFMSUQNCj4gDQo+IC0gICAgICAgIHNlbGYuQml0TWFzayA9IEJpdE1hc2sNCj4g DQo+IC0gICAgICAgIHNlbGYuTmV4dCA9IE5vbmUNCj4gDQo+IC0gICAgICAgIHNlbGYuUVR5cGUg PSBFRklfUVVFU0lPTl9UWVBFLlFVRVNUSU9OX05PUk1BTA0KPiANCj4gLQ0KPiANCj4gLQ0KPiAN Cj4gLURBVEVfWUVBUl9CSVRNQVNLID0gMHgwMDAwRkZGRg0KPiANCj4gLURBVEVfTU9OVEhfQklU TUFTSyA9IDB4MDBGRjAwMDANCj4gDQo+IC1EQVRFX0RBWV9CSVRNQVNLID0gMHhGRjAwMDAwMA0K PiANCj4gLVRJTUVfSE9VUl9CSVRNQVNLID0gMHgwMDAwMDBGRg0KPiANCj4gLVRJTUVfTUlOVVRF X0JJVE1BU0sgPSAweDAwMDBGRjAwDQo+IA0KPiAtVElNRV9TRUNPTkRfQklUTUFTSyA9IDB4MDBG RjAwMDANCj4gDQo+IC0NCj4gDQo+IC0NCj4gDQo+IC1jbGFzcyBDVmZyUXVlc3Rpb25EQihvYmpl Y3QpOg0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19pbml0X18oc2VsZik6DQo+IA0KPiAtICAg ICAgICBzZWxmLl9fRnJlZVFJZEJpdE1hcCA9IFtdDQo+IA0KPiAtICAgICAgICBmb3IgaSBpbiBy YW5nZSgwLCBFRklfRlJFRV9RVUVTVElPTl9JRF9CSVRNQVBfU0laRSk6DQo+IA0KPiAtICAgICAg ICAgICAgc2VsZi5fX0ZyZWVRSWRCaXRNYXAuYXBwZW5kKDApDQo+IA0KPiAtDQo+IA0KPiAtICAg ICAgICAjIFF1ZXN0aW9uIElEIDAgaXMgcmVzZXJ2ZWQuDQo+IA0KPiAtICAgICAgICBzZWxmLl9f RnJlZVFJZEJpdE1hcFswXSA9IDB4ODAwMDAwMDANCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHNl bGYuX19RdWVzdGlvbkxpc3QgPSBOb25lDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBGaW5kUXVl c3Rpb25CeU5hbWUoc2VsZiwgTmFtZSk6DQo+IA0KPiAtICAgICAgICBpZiBOYW1lID09IE5vbmU6 DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9GQVRB TF9FUlJPUg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcE5vZGUgPSBzZWxmLl9fUXVlc3Rpb25M aXN0DQo+IA0KPiAtICAgICAgICB3aGlsZSBwTm9kZSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAg ICAgIGlmIHBOb2RlLk5hbWUgPT0gTmFtZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgcmV0dXJu IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+IA0KPiAtICAgICAgICAgICAgcE5v ZGUgPSBwTm9kZS5OZXh0DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gVmZyUmV0dXJu Q29kZS5WRlJfUkVUVVJOX1VOREVGSU5FRA0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgRmluZFF1 ZXN0aW9uQnlJZChzZWxmLCBRdWVzdGlvbklkKToNCj4gDQo+IC0gICAgICAgIGlmIFF1ZXN0aW9u SWQgPT0gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQ6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJu IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9JTlZBTElEX1BBUkFNRVRFUg0KPiANCj4gLQ0KPiAN Cj4gLSAgICAgICAgcE5vZGUgPSBzZWxmLl9fUXVlc3Rpb25MaXN0DQo+IA0KPiAtICAgICAgICB3 aGlsZSBwTm9kZSAhPSBOb25lOg0KPiANCj4gLSAgICAgICAgICAgIGlmIHBOb2RlLlF1ZXN0aW9u SWQgPT0gUXVlc3Rpb25JZDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgcmV0dXJuIFZmclJldHVy bkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+IA0KPiAtICAgICAgICAgICAgcE5vZGUgPSBwTm9k ZS5OZXh0DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJf UkVUVVJOX1VOREVGSU5FRA0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19HZXRGcmVlUXVlc3Rp b25JZChzZWxmKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIEluZGV4ID0gMA0KPiANCj4gLSAg ICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgRUZJX0ZSRUVfUVVFU1RJT05fSURfQklUTUFQX1NJWkUp Og0KPiANCj4gLSAgICAgICAgICAgIGlmIHNlbGYuX19GcmVlUUlkQml0TWFwW2ldICE9IDB4RkZG RkZGRkY6DQo+IA0KPiAtICAgICAgICAgICAgICAgIEluZGV4ID0gaQ0KPiANCj4gLSAgICAgICAg ICAgICAgICBicmVhaw0KPiANCj4gLSAgICAgICAgaWYgSW5kZXggPT0gRUZJX0ZSRUVfUVVFU1RJ T05fSURfQklUTUFQX1NJWkU6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIEVGSV9RVUVTVElP Tl9JRF9JTlZBTElEDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBPZmZzZXQgPSAwDQo+IA0KPiAt ICAgICAgICBNYXNrID0gMHg4MDAwMDAwMA0KPiANCj4gLSAgICAgICAgd2hpbGUgTWFzayAhPSAw Og0KPiANCj4gLSAgICAgICAgICAgIGlmIChzZWxmLl9fRnJlZVFJZEJpdE1hcFtJbmRleF0gJiBN YXNrKSA9PSAwOg0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLl9fRnJlZVFJZEJpdE1hcFtJ bmRleF0gfD0gTWFzaw0KPiANCj4gLSAgICAgICAgICAgICAgICByZXR1cm4gKEluZGV4IDw8IEVG SV9CSVRTX1NISUZUX1BFUl9VSU5UMzIpICsgT2Zmc2V0DQo+IA0KPiAtICAgICAgICAgICAgTWFz ayA+Pj0gMQ0KPiANCj4gLSAgICAgICAgICAgIE9mZnNldCArPSAxDQo+IA0KPiAtDQo+IA0KPiAt ICAgICAgICByZXR1cm4gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQNCj4gDQo+IC0NCj4gDQo+IC0g ICAgZGVmIF9fQ2hlY2tRdWVzdGlvbklkRnJlZShzZWxmLCBRSWQpOg0KPiANCj4gLSAgICAgICAg SW5kZXggPSBpbnQoUUlkIC8gRUZJX0JJVFNfUEVSX1VJTlQzMikNCj4gDQo+IC0gICAgICAgIE9m ZnNldCA9IFFJZCAlIEVGSV9CSVRTX1BFUl9VSU5UMzINCj4gDQo+IC0gICAgICAgIHJldHVybiAo c2VsZi5fX0ZyZWVRSWRCaXRNYXBbSW5kZXhdICYgKDB4ODAwMDAwMDAgPj4gT2Zmc2V0KSkgPT0g MA0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19NYXJrUXVlc3Rpb25JZFVzZWQoc2VsZiwgUUlk KToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIEluZGV4ID0gaW50KFFJZCAvIEVGSV9CSVRTX1BF Ul9VSU5UMzIpDQo+IA0KPiAtICAgICAgICBPZmZzZXQgPSBRSWQgJSBFRklfQklUU19QRVJfVUlO VDMyDQo+IA0KPiAtICAgICAgICBzZWxmLl9fRnJlZVFJZEJpdE1hcFtJbmRleF0gfD0gKDB4ODAw MDAwMDAgPj4gT2Zmc2V0KQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgX19NYXJrUXVlc3Rpb25J ZFVudXNlZChzZWxmLCBRSWQpOg0KPiANCj4gLSAgICAgICAgSW5kZXggPSBpbnQoUUlkIC8gRUZJ X0JJVFNfUEVSX1VJTlQzMikNCj4gDQo+IC0gICAgICAgIE9mZnNldCA9IFFJZCAlIEVGSV9CSVRT X1BFUl9VSU5UMzINCj4gDQo+IC0gICAgICAgIHNlbGYuX19GcmVlUUlkQml0TWFwW0luZGV4XSAm PSB+KDB4ODAwMDAwMDAgPj4gT2Zmc2V0KQ0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgUmVnaXN0 ZXJRdWVzdGlvbihzZWxmLCBOYW1lLCBWYXJJZFN0ciwgUXVlc3Rpb25JZCk6DQo+IA0KPiAtDQo+ IA0KPiAtICAgICAgICBpZiAoTmFtZSAhPSBOb25lKSBhbmQgKHNlbGYuRmluZFF1ZXN0aW9uQnlO YW1lKE5hbWUpID09DQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTKToNCj4gDQo+ IC0gICAgICAgICAgICByZXR1cm4gUXVlc3Rpb25JZCwgVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJO X1JFREVGSU5FRA0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcE5vZGUgPSBTVmZyUXVlc3Rpb25O b2RlKE5hbWUsIFZhcklkU3RyKQ0KPiANCj4gLSAgICAgICAgaWYgcE5vZGUgPT0gTm9uZToNCj4g DQo+IC0gICAgICAgICAgICByZXR1cm4gUXVlc3Rpb25JZCwNCj4gVmZyUmV0dXJuQ29kZS5WRlJf UkVUVVJOX09VVF9GT1JfUkVTT1VSQ0VTDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBRdWVz dGlvbklkID09IEVGSV9RVUVTVElPTl9JRF9JTlZBTElEOg0KPiANCj4gLSAgICAgICAgICAgIFF1 ZXN0aW9uSWQgPSBzZWxmLl9fR2V0RnJlZVF1ZXN0aW9uSWQoKQ0KPiANCj4gLSAgICAgICAgZWxz ZToNCj4gDQo+IC0gICAgICAgICAgICBpZiBzZWxmLl9fQ2hlY2tRdWVzdGlvbklkRnJlZShRdWVz dGlvbklkKSA9PSBGYWxzZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgcmV0dXJuIFF1ZXN0aW9u SWQsDQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9RVUVTVElPTklEX1JFREVGSU5FRA0KPiAN Cj4gLSAgICAgICAgICAgIHNlbGYuX19NYXJrUXVlc3Rpb25JZFVzZWQoUXVlc3Rpb25JZCkNCj4g DQo+IC0NCj4gDQo+IC0gICAgICAgIHBOb2RlLlF1ZXN0aW9uSWQgPSBRdWVzdGlvbklkDQo+IA0K PiAtICAgICAgICBwTm9kZS5OZXh0ID0gc2VsZi5fX1F1ZXN0aW9uTGlzdA0KPiANCj4gLSAgICAg ICAgc2VsZi5fX1F1ZXN0aW9uTGlzdCA9IHBOb2RlDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAj IGdDRm9ybVBrZy5Eb1BlbmRpbmdBc3NpZ24NCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVy biBRdWVzdGlvbklkLCBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiANCj4gLQ0K PiANCj4gLSAgICBkZWYgVXBkYXRlUXVlc3Rpb25JZChzZWxmLCBRSWQsIE5ld1FJZCk6DQo+IA0K PiAtDQo+IA0KPiAtICAgICAgICBpZiBRSWQgPT0gTmV3UUlkOg0KPiANCj4gLSAgICAgICAgICAg ICMgZG9uJ3QgdXBkYXRlDQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIFZmclJldHVybkNvZGUu VkZSX1JFVFVSTl9TVUNDRVNTDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBzZWxmLl9fQ2hl Y2tRdWVzdGlvbklkRnJlZShOZXdRSWQpID09IEZhbHNlOg0KPiANCj4gLSAgICAgICAgICAgIHJl dHVybiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fUkVERUZJTkVEDQo+IA0KPiAtDQo+IA0KPiAt ICAgICAgICBwTm9kZSA9IHNlbGYuX19RdWVzdGlvbkxpc3QNCj4gDQo+IC0gICAgICAgIFRlbXBM aXN0ID0gW10NCj4gDQo+IC0gICAgICAgIHdoaWxlIHBOb2RlICE9IE5vbmU6DQo+IA0KPiAtICAg ICAgICAgICAgaWYgcE5vZGUuUXVlc3Rpb25JZCA9PSBRSWQ6DQo+IA0KPiAtICAgICAgICAgICAg ICAgIFRlbXBMaXN0LmFwcGVuZChwTm9kZSkNCj4gDQo+IC0gICAgICAgICAgICBwTm9kZSA9IHBO b2RlLk5leHQNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGlmIGxlbihUZW1wTGlzdCkgPT0gMDoN Cj4gDQo+IC0gICAgICAgICAgICByZXR1cm4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX1VOREVG SU5FRA0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgc2VsZi5fX01hcmtRdWVzdGlvbklkVW51c2Vk KFFJZCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIGZvciBwTm9kZSBpbiBUZW1wTGlzdDoNCj4g DQo+IC0gICAgICAgICAgICBwTm9kZS5RdWVzdGlvbklkID0gTmV3UUlkDQo+IA0KPiAtDQo+IA0K PiAtICAgICAgICBzZWxmLl9fTWFya1F1ZXN0aW9uSWRVc2VkKE5ld1FJZCkNCj4gDQo+IC0NCj4g DQo+IC0gICAgICAgICMgZ0NGb3JtUGtnLkRvUGVuZGluZ0Fzc2lnbg0KPiANCj4gLSAgICAgICAg cmV0dXJuIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+IA0KPiAtDQo+IA0KPiAt ICAgIGRlZiBHZXRRdWVzdGlvbklkKHNlbGYsIE5hbWUsIFZhcklkU3RyPU5vbmUsIFFUeXBlPU5v bmUpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgUXVlc3Rpb25JZCA9IEVGSV9RVUVTVElPTl9J RF9JTlZBTElEDQo+IA0KPiAtICAgICAgICBCaXRNYXNrID0gMHgwMDAwMDAwMA0KPiANCj4gLSAg ICAgICAgaWYgUVR5cGUgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBRVHlwZSA9IEVGSV9R VUVTSU9OX1RZUEUuUVVFU1RJT05fTk9STUFMDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBO YW1lID09IE5vbmUgYW5kIFZhcklkU3RyID09IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgcmV0 dXJuIFF1ZXN0aW9uSWQsIEJpdE1hc2ssIFFUeXBlDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBw Tm9kZSA9IHNlbGYuX19RdWVzdGlvbkxpc3QNCj4gDQo+IC0gICAgICAgIHdoaWxlIHBOb2RlICE9 IE5vbmU6DQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgaWYgTmFtZSAhPSBOb25lOg0KPiAN Cj4gLSAgICAgICAgICAgICAgICBpZiBwTm9kZS5OYW1lICE9IE5hbWU6DQo+IA0KPiAtICAgICAg ICAgICAgICAgICAgICBwTm9kZSA9IHBOb2RlLk5leHQNCj4gDQo+IC0gICAgICAgICAgICAgICAg ICAgIGNvbnRpbnVlDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAgICAgaWYgVmFySWRTdHIgIT0g Tm9uZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYgcE5vZGUuVmFySWRTdHIgIT0gVmFySWRT dHI6DQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICBwTm9kZSA9IHBOb2RlLk5leHQNCj4gDQo+ IC0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICAg ICAgUXVlc3Rpb25JZCA9IHBOb2RlLlF1ZXN0aW9uSWQNCj4gDQo+IC0gICAgICAgICAgICBCaXRN YXNrID0gcE5vZGUuQml0TWFzaw0KPiANCj4gLSAgICAgICAgICAgIGlmIFFUeXBlICE9IE5vbmU6 DQo+IA0KPiAtICAgICAgICAgICAgICAgIFFUeXBlID0gcE5vZGUuUVR5cGUNCj4gDQo+IC0gICAg ICAgICAgICBicmVhaw0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcmV0dXJuIFF1ZXN0aW9uSWQs IEJpdE1hc2ssIFFUeXBlDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBSZWdpc3Rlck5ld0RhdGVR dWVzdGlvbihzZWxmLCBOYW1lLCBCYXNlVmFySWQsIFF1ZXN0aW9uSWQpOg0KPiANCj4gLQ0KPiAN Cj4gLSAgICAgICAgaWYgQmFzZVZhcklkID09ICcnIGFuZCBOYW1lID09IE5vbmU6DQo+IA0KPiAt ICAgICAgICAgICAgaWYgUXVlc3Rpb25JZCA9PSBFRklfUVVFU1RJT05fSURfSU5WQUxJRDoNCj4g DQo+IC0gICAgICAgICAgICAgICAgUXVlc3Rpb25JZCA9IHNlbGYuX19HZXRGcmVlUXVlc3Rpb25J ZCgpDQo+IA0KPiAtICAgICAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICAgICAgaWYg c2VsZi5fX0NoZWNrUXVlc3Rpb25JZEZyZWUoUXVlc3Rpb25JZCkgPT0gRmFsc2U6DQo+IA0KPiAt ICAgICAgICAgICAgICAgICAgICByZXR1cm4gUXVlc3Rpb25JZCwgVmZyUmV0dXJuQ29kZS5WRlJf UkVUVVJOX1JFREVGSU5FRA0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLl9fTWFya1F1ZXN0 aW9uSWRVc2VkKFF1ZXN0aW9uSWQpDQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIFF1ZXN0aW9u SWQsIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+IA0KPiAtDQo+IA0KPiAtICAg ICAgICBWYXJJZFN0ckxpc3QgPSBbXQ0KPiANCj4gLSAgICAgICAgaWYgQmFzZVZhcklkICE9ICcn Og0KPiANCj4gLSAgICAgICAgICAgIFZhcklkU3RyTGlzdC5hcHBlbmQoQmFzZVZhcklkICsgJy5Z ZWFyJykNCj4gDQo+IC0gICAgICAgICAgICBWYXJJZFN0ckxpc3QuYXBwZW5kKEJhc2VWYXJJZCAr ICcuTW9udGgnKQ0KPiANCj4gLSAgICAgICAgICAgIFZhcklkU3RyTGlzdC5hcHBlbmQoQmFzZVZh cklkICsgJy5EYXknKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgZWxzZToNCj4gDQo+IC0gICAg ICAgICAgICBWYXJJZFN0ckxpc3QuYXBwZW5kKE5hbWUgKyAnLlllYXInKQ0KPiANCj4gLSAgICAg ICAgICAgIFZhcklkU3RyTGlzdC5hcHBlbmQoTmFtZSArICcuTW9udGgnKQ0KPiANCj4gLSAgICAg ICAgICAgIFZhcklkU3RyTGlzdC5hcHBlbmQoTmFtZSArICcuRGF5JykNCj4gDQo+IC0NCj4gDQo+ IC0gICAgICAgIHBOb2RlTGlzdCA9IFtdDQo+IA0KPiAtICAgICAgICBwTm9kZSA9IFNWZnJRdWVz dGlvbk5vZGUoTmFtZSwgVmFySWRTdHJMaXN0WzBdLA0KPiBEQVRFX1lFQVJfQklUTUFTSykNCj4g DQo+IC0gICAgICAgIGlmIHBOb2RlICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgcE5vZGVM aXN0LmFwcGVuZChwTm9kZSkNCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAg ICAgcmV0dXJuIFF1ZXN0aW9uSWQsDQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9PVVRfRk9S X1JFU09VUkNFUw0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcE5vZGUgPSBTVmZyUXVlc3Rpb25O b2RlKE5hbWUsIFZhcklkU3RyTGlzdFsxXSwNCj4gREFURV9NT05USF9CSVRNQVNLKQ0KPiANCj4g LSAgICAgICAgaWYgcE5vZGUgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBwTm9kZUxpc3Qu YXBwZW5kKHBOb2RlKQ0KPiANCj4gLSAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICBy ZXR1cm4gUXVlc3Rpb25JZCwNCj4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX09VVF9GT1JfUkVT T1VSQ0VTDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBwTm9kZSA9IFNWZnJRdWVzdGlvbk5vZGUo TmFtZSwgVmFySWRTdHJMaXN0WzJdLCBEQVRFX0RBWV9CSVRNQVNLKQ0KPiANCj4gLSAgICAgICAg aWYgcE5vZGUgIT0gTm9uZToNCj4gDQo+IC0gICAgICAgICAgICBwTm9kZUxpc3QuYXBwZW5kKHBO b2RlKQ0KPiANCj4gLSAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICByZXR1cm4gUXVl c3Rpb25JZCwNCj4gVmZyUmV0dXJuQ29kZS5WRlJfUkVUVVJOX09VVF9GT1JfUkVTT1VSQ0VTDQo+ IA0KPiAtDQo+IA0KPiAtICAgICAgICBpZiBRdWVzdGlvbklkID09IEVGSV9RVUVTVElPTl9JRF9J TlZBTElEOg0KPiANCj4gLSAgICAgICAgICAgIFF1ZXN0aW9uSWQgPSBzZWxmLl9fR2V0RnJlZVF1 ZXN0aW9uSWQoKQ0KPiANCj4gLSAgICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICBpZiBz ZWxmLl9fQ2hlY2tRdWVzdGlvbklkRnJlZShRdWVzdGlvbklkKSA9PSBGYWxzZToNCj4gDQo+IC0g ICAgICAgICAgICAgICAgcmV0dXJuIFF1ZXN0aW9uSWQsIFZmclJldHVybkNvZGUuVkZSX1JFVFVS Tl9SRURFRklORUQNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fTWFya1F1ZXN0aW9uSWRVc2Vk KFF1ZXN0aW9uSWQpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBwTm9kZUxpc3RbMF0uUXVlc3Rp b25JZCA9IFF1ZXN0aW9uSWQNCj4gDQo+IC0gICAgICAgIHBOb2RlTGlzdFsxXS5RdWVzdGlvbklk ID0gUXVlc3Rpb25JZA0KPiANCj4gLSAgICAgICAgcE5vZGVMaXN0WzJdLlF1ZXN0aW9uSWQgPSBR dWVzdGlvbklkDQo+IA0KPiAtICAgICAgICBwTm9kZUxpc3RbMF0uUVR5cGUgPSBFRklfUVVFU0lP Tl9UWVBFLlFVRVNUSU9OX0RBVEUNCj4gDQo+IC0gICAgICAgIHBOb2RlTGlzdFsxXS5RVHlwZSA9 IEVGSV9RVUVTSU9OX1RZUEUuUVVFU1RJT05fREFURQ0KPiANCj4gLSAgICAgICAgcE5vZGVMaXN0 WzJdLlFUeXBlID0gRUZJX1FVRVNJT05fVFlQRS5RVUVTVElPTl9EQVRFDQo+IA0KPiAtICAgICAg ICBwTm9kZUxpc3RbMF0uTmV4dCA9IHBOb2RlTGlzdFsxXQ0KPiANCj4gLSAgICAgICAgcE5vZGVM aXN0WzFdLk5leHQgPSBwTm9kZUxpc3RbMl0NCj4gDQo+IC0gICAgICAgIHBOb2RlTGlzdFsyXS5O ZXh0ID0gc2VsZi5fX1F1ZXN0aW9uTGlzdA0KPiANCj4gLSAgICAgICAgc2VsZi5fX1F1ZXN0aW9u TGlzdCA9IHBOb2RlTGlzdFswXQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgIyBEb1BlbmRpbmdB c3NpZ24NCj4gDQo+IC0gICAgICAgIHJldHVybiBRdWVzdGlvbklkLCBWZnJSZXR1cm5Db2RlLlZG Ul9SRVRVUk5fU1VDQ0VTUw0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgUmVnaXN0ZXJOZXdUaW1l UXVlc3Rpb24oc2VsZiwgTmFtZSwgQmFzZVZhcklkLCBRdWVzdGlvbklkKToNCj4gDQo+IC0gICAg ICAgIGlmIEJhc2VWYXJJZCA9PSAnJyBhbmQgTmFtZSA9PSBOb25lOg0KPiANCj4gLSAgICAgICAg ICAgIGlmIFF1ZXN0aW9uSWQgPT0gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQ6DQo+IA0KPiAtICAg ICAgICAgICAgICAgIFF1ZXN0aW9uSWQgPSBzZWxmLl9fR2V0RnJlZVF1ZXN0aW9uSWQoKQ0KPiAN Cj4gLSAgICAgICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgICAgIGlmIHNlbGYuX19D aGVja1F1ZXN0aW9uSWRGcmVlKFF1ZXN0aW9uSWQpID09IEZhbHNlOg0KPiANCj4gLSAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIFF1ZXN0aW9uSWQsIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9S RURFRklORUQNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5fX01hcmtRdWVzdGlvbklkVXNl ZChRdWVzdGlvbklkKQ0KPiANCj4gLSAgICAgICAgICAgIHJldHVybiBRdWVzdGlvbklkLCBWZnJS ZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgVmFy SWRTdHJMaXN0ID0gW10NCj4gDQo+IC0gICAgICAgIGlmIEJhc2VWYXJJZCAhPSAnJzoNCj4gDQo+ IC0gICAgICAgICAgICBWYXJJZFN0ckxpc3QuYXBwZW5kKEJhc2VWYXJJZCArICcuSG91cicpDQo+ IA0KPiAtICAgICAgICAgICAgVmFySWRTdHJMaXN0LmFwcGVuZChCYXNlVmFySWQgKyAnLk1pbnV0 ZScpDQo+IA0KPiAtICAgICAgICAgICAgVmFySWRTdHJMaXN0LmFwcGVuZChCYXNlVmFySWQgKyAn LlNlY29uZCcpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBlbHNlOg0KPiANCj4gLSAgICAgICAg ICAgIFZhcklkU3RyTGlzdC5hcHBlbmQoTmFtZSArICcuSG91cicpDQo+IA0KPiAtICAgICAgICAg ICAgVmFySWRTdHJMaXN0LmFwcGVuZChOYW1lICsgJy5NaW51dGUnKQ0KPiANCj4gLSAgICAgICAg ICAgIFZhcklkU3RyTGlzdC5hcHBlbmQoTmFtZSArICcuU2Vjb25kJykNCj4gDQo+IC0NCj4gDQo+ IC0gICAgICAgIHBOb2RlTGlzdCA9IFtdDQo+IA0KPiAtICAgICAgICBwTm9kZSA9IFNWZnJRdWVz dGlvbk5vZGUoTmFtZSwgVmFySWRTdHJMaXN0WzBdLA0KPiBUSU1FX0hPVVJfQklUTUFTSykNCj4g DQo+IC0gICAgICAgIGlmIHBOb2RlICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgcE5vZGVM aXN0LmFwcGVuZChwTm9kZSkNCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAg ICAgcmV0dXJuIFF1ZXN0aW9uSWQsDQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9PVVRfRk9S X1JFU09VUkNFUw0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcE5vZGUgPSBTVmZyUXVlc3Rpb25O b2RlKE5hbWUsIFZhcklkU3RyTGlzdFsxXSwNCj4gVElNRV9NSU5VVEVfQklUTUFTSykNCj4gDQo+ IC0gICAgICAgIGlmIHBOb2RlICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgcE5vZGVMaXN0 LmFwcGVuZChwTm9kZSkNCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAg cmV0dXJuIFF1ZXN0aW9uSWQsDQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9PVVRfRk9SX1JF U09VUkNFUw0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcE5vZGUgPSBTVmZyUXVlc3Rpb25Ob2Rl KE5hbWUsIFZhcklkU3RyTGlzdFsyXSwNCj4gVElNRV9TRUNPTkRfQklUTUFTSykNCj4gDQo+IC0g ICAgICAgIGlmIHBOb2RlICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgcE5vZGVMaXN0LmFw cGVuZChwTm9kZSkNCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgcmV0 dXJuIFF1ZXN0aW9uSWQsDQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9PVVRfRk9SX1JFU09V UkNFUw0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgUXVlc3Rpb25JZCA9PSBFRklfUVVFU1RJ T05fSURfSU5WQUxJRDoNCj4gDQo+IC0gICAgICAgICAgICBRdWVzdGlvbklkID0gc2VsZi5fX0dl dEZyZWVRdWVzdGlvbklkKCkNCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAg ICAgaWYgc2VsZi5fX0NoZWNrUXVlc3Rpb25JZEZyZWUoUXVlc3Rpb25JZCkgPT0gRmFsc2U6DQo+ IA0KPiAtICAgICAgICAgICAgICAgIHJldHVybiBRdWVzdGlvbklkLCBWZnJSZXR1cm5Db2RlLlZG Ul9SRVRVUk5fUkVERUZJTkVEDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX01hcmtRdWVzdGlv bklkVXNlZChRdWVzdGlvbklkKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcE5vZGVMaXN0WzBd LlF1ZXN0aW9uSWQgPSBRdWVzdGlvbklkDQo+IA0KPiAtICAgICAgICBwTm9kZUxpc3RbMV0uUXVl c3Rpb25JZCA9IFF1ZXN0aW9uSWQNCj4gDQo+IC0gICAgICAgIHBOb2RlTGlzdFsyXS5RdWVzdGlv bklkID0gUXVlc3Rpb25JZA0KPiANCj4gLSAgICAgICAgcE5vZGVMaXN0WzBdLlFUeXBlID0gRUZJ X1FVRVNJT05fVFlQRS5RVUVTVElPTl9USU1FDQo+IA0KPiAtICAgICAgICBwTm9kZUxpc3RbMV0u UVR5cGUgPSBFRklfUVVFU0lPTl9UWVBFLlFVRVNUSU9OX1RJTUUNCj4gDQo+IC0gICAgICAgIHBO b2RlTGlzdFsyXS5RVHlwZSA9IEVGSV9RVUVTSU9OX1RZUEUuUVVFU1RJT05fVElNRQ0KPiANCj4g LSAgICAgICAgcE5vZGVMaXN0WzBdLk5leHQgPSBwTm9kZUxpc3RbMV0NCj4gDQo+IC0gICAgICAg IHBOb2RlTGlzdFsxXS5OZXh0ID0gcE5vZGVMaXN0WzJdDQo+IA0KPiAtICAgICAgICBwTm9kZUxp c3RbMl0uTmV4dCA9IHNlbGYuX19RdWVzdGlvbkxpc3QNCj4gDQo+IC0gICAgICAgIHNlbGYuX19R dWVzdGlvbkxpc3QgPSBwTm9kZUxpc3RbMF0NCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgICMgRG9Q ZW5kaW5nQXNzaWduDQo+IA0KPiAtICAgICAgICByZXR1cm4gUXVlc3Rpb25JZCwgVmZyUmV0dXJu Q29kZS5WRlJfUkVUVVJOX1NVQ0NFU1MNCj4gDQo+IC0NCj4gDQo+IC0gICAgZGVmIFJlZ2lzdGVy UmVmUXVlc3Rpb24oc2VsZiwgTmFtZSwgQmFzZVZhcklkLCBRdWVzdGlvbklkKToNCj4gDQo+IC0N Cj4gDQo+IC0gICAgICAgIGlmIEJhc2VWYXJJZCA9PSAnJyBhbmQgTmFtZSA9PSBOb25lOg0KPiAN Cj4gLSAgICAgICAgICAgIHJldHVybiBRdWVzdGlvbklkLCBWZnJSZXR1cm5Db2RlLlZGUl9SRVRV Uk5fRkFUQUxfRVJST1INCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIFZhcklkU3RyTGlzdCA9IFtd DQo+IA0KPiAtICAgICAgICBpZiBCYXNlVmFySWQgIT0gJyc6DQo+IA0KPiAtICAgICAgICAgICAg VmFySWRTdHJMaXN0LmFwcGVuZChCYXNlVmFySWQgKyAnLlF1ZXN0aW9uSWQnKQ0KPiANCj4gLSAg ICAgICAgICAgIFZhcklkU3RyTGlzdC5hcHBlbmQoQmFzZVZhcklkICsgJy5Gb3JtSWQnKQ0KPiAN Cj4gLSAgICAgICAgICAgIFZhcklkU3RyTGlzdC5hcHBlbmQoQmFzZVZhcklkICsgJy5Gb3JtU2V0 R3VpZCcpDQo+IA0KPiAtICAgICAgICAgICAgVmFySWRTdHJMaXN0LmFwcGVuZChCYXNlVmFySWQg KyAnLkRldmljZVBhdGgnKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgZWxzZToNCj4gDQo+IC0g ICAgICAgICAgICBWYXJJZFN0ckxpc3QuYXBwZW5kKEJhc2VWYXJJZCArICcuUXVlc3Rpb25JZCcp DQo+IA0KPiAtICAgICAgICAgICAgVmFySWRTdHJMaXN0LmFwcGVuZChCYXNlVmFySWQgKyAnLkZv cm1JZCcpDQo+IA0KPiAtICAgICAgICAgICAgVmFySWRTdHJMaXN0LmFwcGVuZChCYXNlVmFySWQg KyAnLkZvcm1TZXRHdWlkJykNCj4gDQo+IC0gICAgICAgICAgICBWYXJJZFN0ckxpc3QuYXBwZW5k KEJhc2VWYXJJZCArICcuRGV2aWNlUGF0aCcpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBwTm9k ZUxpc3QgPSBbXQ0KPiANCj4gLSAgICAgICAgcE5vZGUgPSBTVmZyUXVlc3Rpb25Ob2RlKE5hbWUs IFZhcklkU3RyTGlzdFswXSkNCj4gDQo+IC0gICAgICAgIGlmIHBOb2RlICE9IE5vbmU6DQo+IA0K PiAtICAgICAgICAgICAgcE5vZGVMaXN0LmFwcGVuZChwTm9kZSkNCj4gDQo+IC0gICAgICAgIGVs c2U6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIFF1ZXN0aW9uSWQsDQo+IFZmclJldHVybkNv ZGUuVkZSX1JFVFVSTl9PVVRfRk9SX1JFU09VUkNFUw0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAg cE5vZGUgPSBTVmZyUXVlc3Rpb25Ob2RlKE5hbWUsIFZhcklkU3RyTGlzdFsxXSkNCj4gDQo+IC0g ICAgICAgIGlmIHBOb2RlICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgcE5vZGVMaXN0LmFw cGVuZChwTm9kZSkNCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgcmV0 dXJuIFF1ZXN0aW9uSWQsDQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9PVVRfRk9SX1JFU09V UkNFUw0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcE5vZGUgPSBTVmZyUXVlc3Rpb25Ob2RlKE5h bWUsIFZhcklkU3RyTGlzdFsyXSkNCj4gDQo+IC0gICAgICAgIGlmIHBOb2RlICE9IE5vbmU6DQo+ IA0KPiAtICAgICAgICAgICAgcE5vZGVMaXN0LmFwcGVuZChwTm9kZSkNCj4gDQo+IC0gICAgICAg IGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIFF1ZXN0aW9uSWQsDQo+IFZmclJldHVy bkNvZGUuVkZSX1JFVFVSTl9PVVRfRk9SX1JFU09VUkNFUw0KPiANCj4gLQ0KPiANCj4gLSAgICAg ICAgcE5vZGUgPSBTVmZyUXVlc3Rpb25Ob2RlKE5hbWUsIFZhcklkU3RyTGlzdFszXSkNCj4gDQo+ IC0gICAgICAgIGlmIHBOb2RlICE9IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgcE5vZGVMaXN0 LmFwcGVuZChwTm9kZSkNCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAg cmV0dXJuIFF1ZXN0aW9uSWQsDQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9PVVRfRk9SX1JF U09VUkNFUw0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgaWYgUXVlc3Rpb25JZCA9PSBFRklfUVVF U1RJT05fSURfSU5WQUxJRDoNCj4gDQo+IC0gICAgICAgICAgICBRdWVzdGlvbklkID0gc2VsZi5f X0dldEZyZWVRdWVzdGlvbklkKCkNCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAg ICAgICAgaWYgc2VsZi5fX0NoZWNrUXVlc3Rpb25JZEZyZWUoUXVlc3Rpb25JZCkgPT0gRmFsc2U6 DQo+IA0KPiAtICAgICAgICAgICAgICAgIHJldHVybiBRdWVzdGlvbklkLCBWZnJSZXR1cm5Db2Rl LlZGUl9SRVRVUk5fUkVERUZJTkVEDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5fX01hcmtRdWVz dGlvbklkVXNlZChRdWVzdGlvbklkKQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcE5vZGVMaXN0 WzBdLlF1ZXN0aW9uSWQgPSBRdWVzdGlvbklkDQo+IA0KPiAtICAgICAgICBwTm9kZUxpc3RbMV0u UXVlc3Rpb25JZCA9IFF1ZXN0aW9uSWQNCj4gDQo+IC0gICAgICAgIHBOb2RlTGlzdFsyXS5RdWVz dGlvbklkID0gUXVlc3Rpb25JZA0KPiANCj4gLSAgICAgICAgcE5vZGVMaXN0WzNdLlF1ZXN0aW9u SWQgPSBRdWVzdGlvbklkDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBwTm9kZUxpc3RbMF0uUVR5 cGUgPSBFRklfUVVFU0lPTl9UWVBFLlFVRVNUSU9OX1JFRg0KPiANCj4gLSAgICAgICAgcE5vZGVM aXN0WzFdLlFUeXBlID0gRUZJX1FVRVNJT05fVFlQRS5RVUVTVElPTl9SRUYNCj4gDQo+IC0gICAg ICAgIHBOb2RlTGlzdFsyXS5RVHlwZSA9IEVGSV9RVUVTSU9OX1RZUEUuUVVFU1RJT05fUkVGDQo+ IA0KPiAtICAgICAgICBwTm9kZUxpc3RbM10uUVR5cGUgPSBFRklfUVVFU0lPTl9UWVBFLlFVRVNU SU9OX1JFRg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgcE5vZGVMaXN0WzBdLk5leHQgPSBwTm9k ZUxpc3RbMV0NCj4gDQo+IC0gICAgICAgIHBOb2RlTGlzdFsxXS5OZXh0ID0gcE5vZGVMaXN0WzJd DQo+IA0KPiAtICAgICAgICBwTm9kZUxpc3RbMl0uTmV4dCA9IHBOb2RlTGlzdFszXQ0KPiANCj4g LSAgICAgICAgcE5vZGVMaXN0WzNdLk5leHQgPSBzZWxmLl9fUXVlc3Rpb25MaXN0DQo+IA0KPiAt ICAgICAgICBzZWxmLl9fUXVlc3Rpb25MaXN0ID0gcE5vZGVMaXN0WzBdDQo+IA0KPiAtICAgICAg ICB4ID0gc2VsZi5fX1F1ZXN0aW9uTGlzdA0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgIyBEb1Bl bmRpbmdBc3NpZ24NCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHJldHVybiBRdWVzdGlvbklkLCBW ZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYg UmVnaXN0ZXJPbGREYXRlUXVlc3Rpb24oc2VsZiwgWWVhclZhcklkLCBNb250aFZhcklkLCBEYXlW YXJJZCwNCj4gUXVlc3Rpb25JZCk6DQo+IA0KPiAtICAgICAgICBwTm9kZUxpc3QgPSBbXQ0KPiAN Cj4gLSAgICAgICAgaWYgWWVhclZhcklkID09ICcnIG9yIE1vbnRoVmFySWQgPT0gJycgb3IgRGF5 VmFySWQgPT0gJycgb3IgWWVhclZhcklkID09DQo+IE5vbmUgb3IgTW9udGhWYXJJZCA9PSBOb25l IG9yIERheVZhcklkID09IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIFF1ZXN0aW9u SWQsIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9FUlJPUl9TS0lQRUQNCj4gDQo+IC0NCj4gDQo+ IC0gICAgICAgIHBOb2RlID0gU1ZmclF1ZXN0aW9uTm9kZShOb25lLCBZZWFyVmFySWQsIERBVEVf WUVBUl9CSVRNQVNLKQ0KPiANCj4gLSAgICAgICAgaWYgcE5vZGUgIT0gTm9uZToNCj4gDQo+IC0g ICAgICAgICAgICBwTm9kZUxpc3QuYXBwZW5kKHBOb2RlKQ0KPiANCj4gLSAgICAgICAgZWxzZToN Cj4gDQo+IC0gICAgICAgICAgICByZXR1cm4gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQsDQo+IFZm clJldHVybkNvZGUuVkZSX1JFVFVSTl9PVVRfRk9SX1JFU09VUkNFUw0KPiANCj4gLQ0KPiANCj4g LSAgICAgICAgcE5vZGUgPSBTVmZyUXVlc3Rpb25Ob2RlKE5vbmUsIE1vbnRoVmFySWQsDQo+IERB VEVfTU9OVEhfQklUTUFTSykNCj4gDQo+IC0gICAgICAgIGlmIHBOb2RlICE9IE5vbmU6DQo+IA0K PiAtICAgICAgICAgICAgcE5vZGVMaXN0LmFwcGVuZChwTm9kZSkNCj4gDQo+IC0gICAgICAgIGVs c2U6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIEVGSV9RVUVTVElPTl9JRF9JTlZBTElELA0K PiBWZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fT1VUX0ZPUl9SRVNPVVJDRVMNCj4gDQo+IC0NCj4g DQo+IC0gICAgICAgIHBOb2RlID0gU1ZmclF1ZXN0aW9uTm9kZShOb25lLCBEYXlWYXJJZCwgREFU RV9EQVlfQklUTUFTSykNCj4gDQo+IC0gICAgICAgIGlmIHBOb2RlICE9IE5vbmU6DQo+IA0KPiAt ICAgICAgICAgICAgcE5vZGVMaXN0LmFwcGVuZChwTm9kZSkNCj4gDQo+IC0gICAgICAgIGVsc2U6 DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIEVGSV9RVUVTVElPTl9JRF9JTlZBTElELA0KPiBW ZnJSZXR1cm5Db2RlLlZGUl9SRVRVUk5fT1VUX0ZPUl9SRVNPVVJDRVMNCj4gDQo+IC0NCj4gDQo+ IC0gICAgICAgIGlmIFF1ZXN0aW9uSWQgPT0gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQ6DQo+IA0K PiAtICAgICAgICAgICAgUXVlc3Rpb25JZCA9IHNlbGYuX19HZXRGcmVlUXVlc3Rpb25JZCgpDQo+ IA0KPiAtICAgICAgICBlbHNlOg0KPiANCj4gLSAgICAgICAgICAgIGlmIHNlbGYuX19DaGVja1F1 ZXN0aW9uSWRGcmVlKFF1ZXN0aW9uSWQpID09IEZhbHNlOg0KPiANCj4gLSAgICAgICAgICAgICAg ICByZXR1cm4gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQsDQo+IFZmclJldHVybkNvZGUuVkZSX1JF VFVSTl9SRURFRklORUQNCj4gDQo+IC0gICAgICAgICAgICBzZWxmLl9fTWFya1F1ZXN0aW9uSWRV c2VkKFF1ZXN0aW9uSWQpDQo+IA0KPiAtDQo+IA0KPiAtICAgICAgICBwTm9kZUxpc3RbMF0uUXVl c3Rpb25JZCA9IFF1ZXN0aW9uSWQNCj4gDQo+IC0gICAgICAgIHBOb2RlTGlzdFsxXS5RdWVzdGlv bklkID0gUXVlc3Rpb25JZA0KPiANCj4gLSAgICAgICAgcE5vZGVMaXN0WzJdLlF1ZXN0aW9uSWQg PSBRdWVzdGlvbklkDQo+IA0KPiAtICAgICAgICBwTm9kZUxpc3RbMF0uUVR5cGUgPSBFRklfUVVF U0lPTl9UWVBFLlFVRVNUSU9OX0RBVEUNCj4gDQo+IC0gICAgICAgIHBOb2RlTGlzdFsxXS5RVHlw ZSA9IEVGSV9RVUVTSU9OX1RZUEUuUVVFU1RJT05fREFURQ0KPiANCj4gLSAgICAgICAgcE5vZGVM aXN0WzJdLlFUeXBlID0gRUZJX1FVRVNJT05fVFlQRS5RVUVTVElPTl9EQVRFDQo+IA0KPiAtICAg ICAgICBwTm9kZUxpc3RbMF0uTmV4dCA9IHBOb2RlTGlzdFsxXQ0KPiANCj4gLSAgICAgICAgcE5v ZGVMaXN0WzFdLk5leHQgPSBwTm9kZUxpc3RbMl0NCj4gDQo+IC0gICAgICAgIHBOb2RlTGlzdFsy XS5OZXh0ID0gc2VsZi5fX1F1ZXN0aW9uTGlzdA0KPiANCj4gLSAgICAgICAgc2VsZi5fX1F1ZXN0 aW9uTGlzdCA9IHBOb2RlTGlzdFswXQ0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgIyBEb1BlbmRp bmdBc3NpZ24NCj4gDQo+IC0gICAgICAgIHJldHVybiBRdWVzdGlvbklkLCBWZnJSZXR1cm5Db2Rl LlZGUl9SRVRVUk5fU1VDQ0VTUw0KPiANCj4gLQ0KPiANCj4gLSAgICBkZWYgUmVnaXN0ZXJPbGRU aW1lUXVlc3Rpb24oc2VsZiwgSG91clZhcklkLCBNaW51dGVWYXJJZCwgU2Vjb25kVmFySWQsDQo+ IFF1ZXN0aW9uSWQpOg0KPiANCj4gLSAgICAgICAgcE5vZGVMaXN0ID0gW10NCj4gDQo+IC0gICAg ICAgIGlmIEhvdXJWYXJJZCA9PSAnJyBvciBNaW51dGVWYXJJZCA9PSAnJyBvciBTZWNvbmRWYXJJ ZCA9PSAnJyBvciBIb3VyVmFySWQNCj4gPT0gTm9uZSBvciBNaW51dGVWYXJJZCA9PSBOb25lIG9y IFNlY29uZFZhcklkID09IE5vbmU6DQo+IA0KPiAtICAgICAgICAgICAgcmV0dXJuIFF1ZXN0aW9u SWQsIFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9FUlJPUl9TS0lQRUQNCj4gDQo+IC0NCj4gDQo+ IC0gICAgICAgIHBOb2RlID0gU1ZmclF1ZXN0aW9uTm9kZShOb25lLCBIb3VyVmFySWQsIFRJTUVf SE9VUl9CSVRNQVNLKQ0KPiANCj4gLSAgICAgICAgaWYgcE5vZGUgIT0gTm9uZToNCj4gDQo+IC0g ICAgICAgICAgICBwTm9kZUxpc3QuYXBwZW5kKHBOb2RlKQ0KPiANCj4gLSAgICAgICAgZWxzZToN Cj4gDQo+IC0gICAgICAgICAgICByZXR1cm4gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQsDQo+IFZm clJldHVybkNvZGUuVkZSX1JFVFVSTl9PVVRfRk9SX1JFU09VUkNFUw0KPiANCj4gLQ0KPiANCj4g LSAgICAgICAgcE5vZGUgPSBTVmZyUXVlc3Rpb25Ob2RlKE5vbmUsIE1pbnV0ZVZhcklkLA0KPiBU SU1FX01JTlVURV9CSVRNQVNLKQ0KPiANCj4gLSAgICAgICAgaWYgcE5vZGUgIT0gTm9uZToNCj4g DQo+IC0gICAgICAgICAgICBwTm9kZUxpc3QuYXBwZW5kKHBOb2RlKQ0KPiANCj4gLSAgICAgICAg ZWxzZToNCj4gDQo+IC0gICAgICAgICAgICByZXR1cm4gRUZJX1FVRVNUSU9OX0lEX0lOVkFMSUQs DQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9PVVRfRk9SX1JFU09VUkNFUw0KPiANCj4gLQ0K PiANCj4gLSAgICAgICAgcE5vZGUgPSBTVmZyUXVlc3Rpb25Ob2RlKE5vbmUsIFNlY29uZFZhcklk LA0KPiBUSU1FX1NFQ09ORF9CSVRNQVNLKQ0KPiANCj4gLSAgICAgICAgaWYgcE5vZGUgIT0gTm9u ZToNCj4gDQo+IC0gICAgICAgICAgICBwTm9kZUxpc3QuYXBwZW5kKHBOb2RlKQ0KPiANCj4gLSAg ICAgICAgZWxzZToNCj4gDQo+IC0gICAgICAgICAgICByZXR1cm4gRUZJX1FVRVNUSU9OX0lEX0lO VkFMSUQsDQo+IFZmclJldHVybkNvZGUuVkZSX1JFVFVSTl9PVVRfRk9SX1JFU09VUkNFUw0KPiAN Cj4gLQ0KPiANCj4gLSAgICAgICAgaWYgUXVlc3Rpb25JZCA9PSBFRklfUVVFU1RJT05fSURfSU5W QUxJRDoNCj4gDQo+IC0gICAgICAgICAgICBRdWVzdGlvbklkID0gc2VsZi5fX0dldEZyZWVRdWVz dGlvbklkKCkNCj4gDQo+IC0gICAgICAgIGVsc2U6DQo+IA0KPiAtICAgICAgICAgICAgaWYgc2Vs Zi5fX0NoZWNrUXVlc3Rpb25JZEZyZWUoUXVlc3Rpb25JZCkgPT0gRmFsc2U6DQo+IA0KPiAtICAg ICAgICAgICAgICAgIHJldHVybiBFRklfUVVFU1RJT05fSURfSU5WQUxJRCwNCj4gVmZyUmV0dXJu Q29kZS5WRlJfUkVUVVJOX1JFREVGSU5FRA0KPiANCj4gLSAgICAgICAgICAgIHNlbGYuX19NYXJr UXVlc3Rpb25JZFVzZWQoUXVlc3Rpb25JZCkNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAgIHBOb2Rl TGlzdFswXS5RdWVzdGlvbklkID0gUXVlc3Rpb25JZA0KPiANCj4gLSAgICAgICAgcE5vZGVMaXN0 WzFdLlF1ZXN0aW9uSWQgPSBRdWVzdGlvbklkDQo+IA0KPiAtICAgICAgICBwTm9kZUxpc3RbMl0u UXVlc3Rpb25JZCA9IFF1ZXN0aW9uSWQNCj4gDQo+IC0gICAgICAgIHBOb2RlTGlzdFswXS5RVHlw ZSA9IEVGSV9RVUVTSU9OX1RZUEUuUVVFU1RJT05fVElNRQ0KPiANCj4gLSAgICAgICAgcE5vZGVM aXN0WzFdLlFUeXBlID0gRUZJX1FVRVNJT05fVFlQRS5RVUVTVElPTl9USU1FDQo+IA0KPiAtICAg ICAgICBwTm9kZUxpc3RbMl0uUVR5cGUgPSBFRklfUVVFU0lPTl9UWVBFLlFVRVNUSU9OX1RJTUUN Cj4gDQo+IC0gICAgICAgIHBOb2RlTGlzdFswXS5OZXh0ID0gcE5vZGVMaXN0WzFdDQo+IA0KPiAt ICAgICAgICBwTm9kZUxpc3RbMV0uTmV4dCA9IHBOb2RlTGlzdFsyXQ0KPiANCj4gLSAgICAgICAg cE5vZGVMaXN0WzJdLk5leHQgPSBzZWxmLl9fUXVlc3Rpb25MaXN0DQo+IA0KPiAtICAgICAgICBz ZWxmLl9fUXVlc3Rpb25MaXN0ID0gcE5vZGVMaXN0WzBdDQo+IA0KPiAtDQo+IA0KPiAtICAgICAg ICAjIERvUGVuZGluZ0Fzc2lnbg0KPiANCj4gLSAgICAgICAgcmV0dXJuIFF1ZXN0aW9uSWQsIFZm clJldHVybkNvZGUuVkZSX1JFVFVSTl9TVUNDRVNTDQo+IA0KPiAtDQo+IA0KPiAtICAgIGRlZiBQ cmludEFsbFF1ZXN0aW9uKHNlbGYsIEZpbGVOYW1lKToNCj4gDQo+IC0NCj4gDQo+IC0gICAgICAg IHdpdGggb3BlbihGaWxlTmFtZSwgJ3cnKSBhcyBmOg0KPiANCj4gLSAgICAgICAgICAgIHBOb2Rl ID0gc2VsZi5fX1F1ZXN0aW9uTGlzdA0KPiANCj4gLSAgICAgICAgICAgIHdoaWxlKHBOb2RlICE9 IE5vbmUpOg0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgICAgICAgICBmLndyaXRlKCdRdWVzdGlv biBWYXJJZCBpcyB7fSBhbmQgUXVlc3Rpb25JZCBpcw0KPiAnLmZvcm1hdChwTm9kZS5WYXJJZFN0 cikpDQo+IA0KPiAtICAgICAgICAgICAgICAgIGYud3JpdGUoJyVkXG4nJShwTm9kZS5RdWVzdGlv bklkKSkNCj4gDQo+IC0gICAgICAgICAgICAgICAgIyBmLndyaXRlKCclI3hcbiclKHBOb2RlLlF1 ZXN0aW9uSWQpKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBwTm9kZSA9IHBOb2RlLk5leHQNCj4g DQo+IC0NCj4gDQo+IC0gICAgICAgIGYuY2xvc2UoKQ0KPiANCj4gXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlDQo+IGRpZmYgLS1naXQgYS9CYXNlVG9vbHMvU291cmNlL1B5dGhvbi9WZnJDb21w aWxlci9fX2luaXRfXy5weQ0KPiBiL0Jhc2VUb29scy9Tb3VyY2UvUHl0aG9uL1ZmckNvbXBpbGVy L19faW5pdF9fLnB5DQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAu LjM2YjJkZmI5YjINCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9CYXNlVG9vbHMvU291cmNlL1B5 dGhvbi9WZnJDb21waWxlci9fX2luaXRfXy5weQ0KPiBAQCAtMCwwICsxIEBADQo+ICtfX2FsbF9f ID0gWyJWZnJDb21waWxlciJdDQo+IGRpZmYgLS1naXQgYS9CYXNlVG9vbHMvU291cmNlL1B5dGhv bi9WZnJDb21waWxlci9tYWluLnB5DQo+IGIvQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vVmZyQ29t cGlsZXIvbWFpbi5weQ0KPiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggNjI0Y2Zl M2FhOC4uMDAwMDAwMDAwMA0KPiAtLS0gYS9CYXNlVG9vbHMvU291cmNlL1B5dGhvbi9WZnJDb21w aWxlci9tYWluLnB5DQo+ICsrKyAvZGV2L251bGwNCj4gQEAgLTEsMjcgKzAsMCBAQA0KPiAtZnJv bSBkaXN0dXRpbHMuZmlsZWxpc3QgaW1wb3J0IEZpbGVMaXN0DQo+IA0KPiAtZnJvbSBwaWNrbGV0 b29scyBpbXBvcnQgdWludDgNCj4gDQo+IC1pbXBvcnQgc3lzDQo+IA0KPiAtZnJvbSB0a2ludGVy LnR0ayBpbXBvcnQgVHJlZXZpZXcNCj4gDQo+IC1mcm9tIGFudGxyNCBpbXBvcnQqDQo+IA0KPiAt ZnJvbSBWZnJDb21waWxlci5WZnJTeW50YXhMZXhlciBpbXBvcnQgVmZyU3ludGF4TGV4ZXINCj4g DQo+IC1mcm9tIFZmckNvbXBpbGVyLlZmclN5bnRheFBhcnNlciBpbXBvcnQgVmZyU3ludGF4UGFy c2VyDQo+IA0KPiAtZnJvbSBWZnJDb21waWxlci5WZnJTeW50YXhWaXNpdG9yIGltcG9ydCBWZnJT eW50YXhWaXNpdG9yDQo+IA0KPiAtZnJvbSBWZnJDb21waWxlci5WZnJFcnJvciBpbXBvcnQgKg0K PiANCj4gLQ0KPiANCj4gLWRlZiBWZnJQYXJzZShJbmZpbGUsIFlhbWxPdXRGaWxlLCBKc29uT3V0 RmlsZSk6DQo+IA0KPiAtICAgIGdDVmZyRXJyb3JIYW5kbGUuU2V0SW5wdXRGaWxlIChJbmZpbGUp DQo+IA0KPiAtICAgIElucHV0U3RyZWFtID0gRmlsZVN0cmVhbShJbmZpbGUpDQo+IA0KPiAtICAg IExleGVyID0gVmZyU3ludGF4TGV4ZXIoSW5wdXRTdHJlYW0pDQo+IA0KPiAtICAgIFN0cmVhbSA9 IENvbW1vblRva2VuU3RyZWFtKExleGVyKQ0KPiANCj4gLSAgICBQYXJzZXIgPSBWZnJTeW50YXhQ YXJzZXIoU3RyZWFtKQ0KPiANCj4gLSAgICBUcmVlID0gUGFyc2VyLnZmclByb2dyYW0oKQ0KPiAN Cj4gLSAgICBWaXNpdG9yID0gVmZyU3ludGF4VmlzaXRvcigpDQo+IA0KPiAtICAgIFZpc2l0b3Iu dmlzaXQoVHJlZSkNCj4gDQo+IC0gICAgVmlzaXRvci5EdW1wWWFtbChWaXNpdG9yLkdldFJvb3Qo KSwgWWFtbE91dEZpbGUpDQo+IA0KPiAtICAgIFZpc2l0b3IuRHVtcEpzb24oSnNvbk91dEZpbGUp DQo+IA0KPiAtDQo+IA0KPiAtaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoNCj4gDQo+IC0gICAg SW5maWxlID0gJ1ZmckNvbXBpbGVyL3Rlc3QuaScNCj4gDQo+IC0gICAgWWFtbE91dEZpbGUgPSAn VmZyQ29tcGlsZXIvdGVzdC55YW1sJw0KPiANCj4gLSAgICBKc29uT3V0RmlsZSA9ICdWZnJDb21w aWxlci90ZXN0Lmpzb24nDQo+IA0KPiAtICAgIFZmclBhcnNlKEluZmlsZSwgWWFtbE91dEZpbGUs IEpzb25PdXRGaWxlKQ0KPiANCj4gLS0NCj4gMi4yNi4yLndpbmRvd3MuMQ0KPiANCj4gDQo+IA0K PiANCj4gDQoNCg0KCi09LT0tPS09LT0tPS09LT0tPS09LT0tCkdyb3Vwcy5pbyBMaW5rczogWW91 IHJlY2VpdmUgYWxsIG1lc3NhZ2VzIHNlbnQgdG8gdGhpcyBncm91cC4KVmlldy9SZXBseSBPbmxp bmUgKCMxMTY4MjUpOiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS8xMTY4 MjUKTXV0ZSBUaGlzIFRvcGljOiBodHRwczovL2dyb3Vwcy5pby9tdC8xMDQ5NDQwMzIvNzY4NjE3 NgpHcm91cCBPd25lcjogZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMuaW8KVW5zdWJzY3JpYmU6IGh0 dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC91bnN1YiBbcmViZWNjYUBvcGVuZncuaW9dCi09 LT0tPS09LT0tPS09LT0tPS09LT0tCgoNCg==