From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web09.2852.1612410357136317234 for ; Wed, 03 Feb 2021 19:45:57 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=NV6/WIY6; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: tung.lun.loo@intel.com) IronPort-SDR: cEnBN/rfxqmGlMdQ7P20I/EcjxKjDGlScZjt30GNXecmzSPpCznRwiV1+FXTksxvN7rb+Voroo sknM7h1vbhoQ== X-IronPort-AV: E=McAfee;i="6000,8403,9884"; a="178604708" X-IronPort-AV: E=Sophos;i="5.79,400,1602572400"; d="scan'208";a="178604708" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Feb 2021 19:45:54 -0800 IronPort-SDR: jsZr5hAu43tV8aPxKF9pa5ibNXZMRgBH+am0ZAtDfhmq7eNIipC/BxgeJ4PjfpHX7V06etayf+ BWe+w1Rmg5bA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,400,1602572400"; d="scan'208";a="372770517" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by orsmga002.jf.intel.com with ESMTP; 03 Feb 2021 19:45:53 -0800 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Wed, 3 Feb 2021 19:45:52 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Wed, 3 Feb 2021 19:45:52 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.170) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Wed, 3 Feb 2021 19:45:52 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mJUqX/8yVnTULFES8Xivm+dllXxc82Lw56d/JzxdapFUxpnkJiYcfZBsL2FWYz3a6hg9wQgtNchjy1YjD5weCE9IPGH1JWTWh8KA9CB7L/loCCwSSBbcKZc6KeC6HperAwEGaVnyS82ki7fdhRdfBwVQTHpfIbCy4mUNJsFr9KH95KT5iObYcYxqbktvUTvzxMbdLwn/I2i+LIRXoQjUwnpjdChab4zOP2G3ZxHrn01qgKUJ1r40pzVuxeCYlFo4Ns3Wi+wDC3j0AmUt1QG+1r+e8zvZyYrBGvPdFROtMhPxLLJ03tLrvjISWgaQ3TlENAG8rzvPhGXTv801YvACUQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KnOPnzXQowi9XrfYFAxNkmTZPWBNQNS05aOf5mGlov4=; b=MBeAgRG9h4+HLUXy7L/dzPxmlJqaGByt3QEt93mmW4gAoET8/xToKgSTh5t8FR97kEOuHQ7U4YYUqKHv4O8Gpx+KKCBukjBenOJOQaUqXzlEyJJ5rGDSa2T0D/f/xAarSKVlEwEubewpmcMVosMchuS0yFy8mHC5wM4qUBRwd7S4paQj01YHvXJLFPkFHzv685MG+f2/xXkLuiAMnCaMuyJShcZ7dOfzJzl8teLcKiPma8GvJmmRk3cOxqezkOIdvibqbynobF2LK1hK2jysGDGhifIXEOsHnhCxwSWxwrj4oiUv7snvVWR5MUQxtB2J8oRXxBWuS+ZGHAuMmoRbJA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KnOPnzXQowi9XrfYFAxNkmTZPWBNQNS05aOf5mGlov4=; b=NV6/WIY6N+Re0i0YwcXKIGzX7sz2oNZEWWPp5h9THHP2rfzJU5zOK8MODMkSKHLFX8M4vRnytA65ZpeiQ+nA2QRdz3RhGNaPAt+NhNmFcFjvmqrzd/5x7h5r74idhgHmYFBrDSPXoQVAUQXuuwuQ7oeagkxaQ50FpCwCz3UfOnI= Received: from PH0PR11MB4824.namprd11.prod.outlook.com (2603:10b6:510:38::13) by PH0PR11MB4870.namprd11.prod.outlook.com (2603:10b6:510:34::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3805.16; Thu, 4 Feb 2021 03:45:50 +0000 Received: from PH0PR11MB4824.namprd11.prod.outlook.com ([fe80::c5cf:185f:ac4d:6e5e]) by PH0PR11MB4824.namprd11.prod.outlook.com ([fe80::c5cf:185f:ac4d:6e5e%7]) with mapi id 15.20.3805.026; Thu, 4 Feb 2021 03:45:50 +0000 From: "Tung Lun" To: "Zeng, Star" , "Chiu, Chasel" , "devel@edk2.groups.io" CC: "Ma, Maurice" , "Desimone, Nathaniel L" Subject: Re: [PATCH] IntelFsp2Pkg: Add YAML file generation support Thread-Topic: [PATCH] IntelFsp2Pkg: Add YAML file generation support Thread-Index: AQHW+cSOwGb5/MSTm0Sn07t9nFnBwqpHJ/uAgAAzpICAAAEUcA== Date: Thu, 4 Feb 2021 03:45:50 +0000 Message-ID: References: <20210203003547.551-1-tung.lun.loo@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [210.186.217.190] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8b4d1feb-bce9-44ca-1bbd-08d8c8bf5d7b x-ms-traffictypediagnostic: PH0PR11MB4870: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:854; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: blyKRUkkOvmLWYZY9G1Vd9ldxCeqr4svaA2UaqDZ7fazUuhohdPxGJ7SHS05UAFnXb/lbr3iKCImHonkId+su+ZF/N8jqYkRSINBjCQl5kPXdwQ/x2FvBkIFligLMzOq/863JuduTAcV7eoeXQJytnIzGOJbgjX3FNPd+nZUXKbp3BNLUWd70lluWH9UeAzduWxwFv0ChFek6VTo+2LPM88lGeLe6a6udcYs/x/jdZ4Usb8hn/JDlUL+pXtNqD7hNyIDNZGN89bUpUtY4j0jOnExIY1++KFdSk0CV+UvX8ycxtpu2t9mBMp8iWfAEJzFuemkVRbGlgDhRxqmIVRg0fqPFglSXRDge4XDy34Gn8WAcTWhymgiMlNOrWZjBulfnHVhT44xldzLQqubbd+gl73QhIqG+q8G6u0mFjbsdIMT1Vpc4cxYlSrdpaEnceqIPNRsma5Sw8HX1avrOVjrmxMx5XeynyA1YTIHfH4+hkI71oJpm6l1XOk+XNbplUWSzyBxYlW2tjFGAZ+7Uu3D85i17nzieUDUXuXfL9gt82nW3zvtvVOAv5bQ2ena+MfpeaWJWhcqCG3PVzgnd/w80JjzKxbCep3KAxwCCwAfLHhQ6zhTX/uwrWa7qmY4KEYEPNFECle6VXbNYL2aWiSAXeMdVhf5QxtkYd+ged8mZJI= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB4824.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(39860400002)(376002)(136003)(396003)(346002)(8676002)(26005)(316002)(15188155005)(76116006)(66946007)(66556008)(66446008)(2906002)(110136005)(71200400001)(7696005)(478600001)(66476007)(86362001)(6506007)(30864003)(52536014)(5660300002)(64756008)(19627235002)(186003)(54906003)(8936002)(9686003)(83380400001)(55016002)(53546011)(16799955002)(4326008)(966005)(107886003)(33656002)(21314003)(579004)(559001)(569008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?bFVLcDlYUFhyMzJUSDQwc2pCZGpkRVFvak9vbUNhSXJtd0ZKQjJ2TjVVM0x1?= =?utf-8?B?WGF4UmpoVjZ5M0paS0hPamJrM1N5OFc4YkdiS2ZTUEFncWJYUTdzSUZJcUFE?= =?utf-8?B?aEJtdy81MVh4WEVZdURzNDRxOE4xSlBKbFV6eURkdEZab3dvdDkyYS8xbFJn?= =?utf-8?B?KzVSaWtQQ2k1dnNUZjhxWEhHNGRNRUhrOHVta25TeEFINHpVWkJvOHBEeWNr?= =?utf-8?B?RDZ5T1BOdGl3bU4rVXZJMHErSFVOeWdNQnFCdmQ1eFR5aXNPMWZHaTNXMXZk?= =?utf-8?B?Q2U5R0VaWWFjdUxYRERUSGlORzNqUmx0Y2o5ZXlMT0c3UDRVTmh1K1UxZmhQ?= =?utf-8?B?T2tiK1U0QlMrb2owdkwvNGUzT3ZkUFhONHNkVmhOWVV1MzFwMW1RaEVWOHVI?= =?utf-8?B?dzdIY3JkWGpydnZ1aWVpUGIrSFRrcDNjNXd0bHVsa2lZMmErWFQ4R0lRTmw4?= =?utf-8?B?Qjc2cmduWnlJM0hmTE40UndJVDlpVzJGM3lYYmhHNHdCMTdpbXVOSXJOQkVO?= =?utf-8?B?TXVLS3JTNm40YzYvMTJGM2wwc1VDUm1LSStOR1pNNVh0NHdkbWg1Y0hyekh4?= =?utf-8?B?dURmZnhnU3Zzd2hnNytreGN2cFZtblBJNGRhQUdQVDNGeXU5MnFTMDZlNWVK?= =?utf-8?B?cGhFQXI1YWZtK0JtdndDdVQxY0lPRWFNT1g2N2g0SDR4TlhGUmVnUXRuRmtJ?= =?utf-8?B?cm5GS2NXS0tuZjFCeU9XeVVBdGN6OHd6ZnZ4MXc1WUpDYmNuN2lEK3RPRnBY?= =?utf-8?B?bmVUQmNVQWpSZ2lMTGNyRHA5UlBLUkpuaTlWajJ2Y2QyZFc1OHlSaUpoTFcv?= =?utf-8?B?ci80MDY5K1JuSHd2aityd0JTc3l6ZE9IZGNsRFNlTUtZcXJSYTB4ZEpiaVpp?= =?utf-8?B?Tk0wSWZkSXV1Vm5nQld4WnBNamh4VXdxSXZWWUVWMmhFNEIwdG1aNjNOdDc0?= =?utf-8?B?MjluSENWQW1jK0cxeHpDSVNhdFdkcDM4RmVZVmphb2J1dXFRamlMVXBKa2hz?= =?utf-8?B?UEoyVXNDbVJqa3VJMmEweG1Zd2hQYkdzMlBqTmxiNWtXTGc3YU1kR1JWOEgz?= =?utf-8?B?eSt4S2E4QlJGUi8vTE90YTB5aHIvM0ZONnNzU0tpSDhDMzRkQUNrZUVqS2lY?= =?utf-8?B?VCtDWGdCeTVyU2drcnpnL3ZxU0xUMHcvaXc4bWtFemRnRE9zSkVQbTBkVkY0?= =?utf-8?B?aFdPZHFFeWJuWUJCTENINHg1N3Rhb2xtUW8zRmdhOEJYV2lJams2YllSK3J5?= =?utf-8?B?N3llYmk4Z1dIRWh6WjBGdkQ1dkU4LzAxeDZqZmRRZC8vZVUzeGRIM01odHpn?= =?utf-8?B?S09oaXJNWU1lVk14MGZOcFZIdGhvQWRyWU1rU3VBV01NemVYdTZDc09OazFw?= =?utf-8?B?N1dmdHIvQ3VTMzJncjIwWGQzUGFxM1RudDZhZXFoSUVlN2RPcy9pd2tZTkI1?= =?utf-8?B?TkxIaFpicTRoNTMvMVlYSkdPVTE5OStyMzRLektBZmhwb1ZHaENCT3pvbE8y?= =?utf-8?B?aDY5aGo5WUh0L3dZdDEycnRkbzh3Z0pUNFpuZXExYmlyZkFGVXN4cDFuNkI2?= =?utf-8?B?WndPZS95NThjRHhTSVpaMlR4MVJmcEU5UG9HWW9obVFUTWxITEVsNVR5TENn?= =?utf-8?B?bldMZTFPQjRjT0J1R1pGY0NGaGUrWFJzM2xJUml2RkhpQlJSek50ZWR6VlR2?= =?utf-8?B?SkNpeW5adFJnZ2REelhrREY0UWNxSmdRVlIzWElBbStkTnc3cG5nVHp1VnAy?= =?utf-8?Q?HRbqEstoglcepvoQgWC5C/RMPIUvzoHVz0aWID0?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB4824.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8b4d1feb-bce9-44ca-1bbd-08d8c8bf5d7b X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Feb 2021 03:45:50.2904 (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: ouXuwoWJaXaJ3AJ26eNB5GhKtkZjXybXk9efsExKAugmJcyZSU8fqTpuMsyJBtLBpKz9fVi3E69xsf8XdK/82Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB4870 Return-Path: tung.lun.loo@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWgsIHlvdSBhcmUgcmlnaHQsIHRoaXMgaXMgb3V0ZGF0ZWQuIExldCBtZSBmaXggdGhpcy4g8J+Y ig0KDQpUaGFua3MsDQpUdW5nIEx1bg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJv bTogWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT4gDQpTZW50OiBUaHVyc2RheSwgRmVi cnVhcnkgNCwgMjAyMSAxMTo0MSBBTQ0KVG86IENoaXUsIENoYXNlbCA8Y2hhc2VsLmNoaXVAaW50 ZWwuY29tPjsgTG9vLCBUdW5nIEx1biA8dHVuZy5sdW4ubG9vQGludGVsLmNvbT47IGRldmVsQGVk azIuZ3JvdXBzLmlvDQpDYzogTG9vLCBUdW5nIEx1biA8dHVuZy5sdW4ubG9vQGludGVsLmNvbT47 IE1hLCBNYXVyaWNlIDxtYXVyaWNlLm1hQGludGVsLmNvbT47IERlc2ltb25lLCBOYXRoYW5pZWwg TCA8bmF0aGFuaWVsLmwuZGVzaW1vbmVAaW50ZWwuY29tPjsgWmVuZywgU3RhciA8c3Rhci56ZW5n QGludGVsLmNvbT4NClN1YmplY3Q6IFJFOiBbUEFUQ0hdIEludGVsRnNwMlBrZzogQWRkIFlBTUwg ZmlsZSBnZW5lcmF0aW9uIHN1cHBvcnQNCg0KSXMgdGhlIGZpbGUgZGVzY3JpcHRpb24gY29ycmVj dD8g8J+Yig0KDQo+ICsjIyBAIEZzcERzY0JzZjJZYW1sLnB5DQo+IA0KPiArIyBUaGlzIHNjcmlw dCBjb252ZXJ0IEZTUCBCU0YgZm9ybWF0IGludG8gRFNDIGZvcm1hdA0KDQpUaGFua3MsDQpTdGFy DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQ2hpdSwgQ2hhc2VsIDxj aGFzZWwuY2hpdUBpbnRlbC5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBGZWJydWFyeSA0LCAyMDIx IDg6MzYgQU0NCj4gVG86IExvbywgVHVuZyBMdW4gPHR1bmcubHVuLmxvb0BpbnRlbC5jb20+OyBk ZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogTG9vLCBUdW5nIEx1biA8dHVuZy5sdW4ubG9vQGlu dGVsLmNvbT47IE1hLCBNYXVyaWNlDQo+IDxtYXVyaWNlLm1hQGludGVsLmNvbT47IERlc2ltb25l LCBOYXRoYW5pZWwgTA0KPiA8bmF0aGFuaWVsLmwuZGVzaW1vbmVAaW50ZWwuY29tPjsgWmVuZywg U3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtQQVRDSF0gSW50ZWxG c3AyUGtnOiBBZGQgWUFNTCBmaWxlIGdlbmVyYXRpb24gc3VwcG9ydA0KPiANCj4gDQo+IFJldmll d2VkLWJ5OiBDaGFzZWwgQ2hpdSA8Y2hhc2VsLmNoaXVAaW50ZWwuY29tPg0KPiANCj4gDQo+ID4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBMb28gVHVuZyBMdW4gPHR1bmcu bHVuLmxvb0BpbnRlbC5jb20+DQo+ID4gU2VudDogV2VkbmVzZGF5LCBGZWJydWFyeSAzLCAyMDIx IDg6MzYgQU0NCj4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiBDYzogTG9vLCBUdW5n IEx1biA8dHVuZy5sdW4ubG9vQGludGVsLmNvbT47IE1hLCBNYXVyaWNlDQo+ID4gPG1hdXJpY2Uu bWFAaW50ZWwuY29tPjsgRGVzaW1vbmUsIE5hdGhhbmllbCBMDQo+ID4gPG5hdGhhbmllbC5sLmRl c2ltb25lQGludGVsLmNvbT47IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+Ow0KPiBD aGl1LA0KPiA+IENoYXNlbCA8Y2hhc2VsLmNoaXVAaW50ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFtQ QVRDSF0gSW50ZWxGc3AyUGtnOiBBZGQgWUFNTCBmaWxlIGdlbmVyYXRpb24gc3VwcG9ydA0KPiA+ DQo+ID4gQWRkIHN1cHBvcnQgZm9yIFlBTUwgZm9ybWF0IGZpbGUgZ2VuZXJhdGlvbiBpbiBhZGRp dGlvbg0KPiA+IHRvIGN1cnJlbnQgQlNGIHN0cnVjdHVyZS4gQ29uZmlndXJhdGlvbiBvZiBZQU1M IGZvcm1hdA0KPiA+IG91dHB1dCB3aWxsIGJlIHN1cHBvcnRlZCBieSBhbiBvcGVuIHNvdXJjZSBD b25maWdFZGl0b3IuDQo+ID4NCj4gPiBSZWZlcmVuY2UgdG8gWUFNTCBjb2RlLCB0ZXN0IGFuZCBD b25maWdFZGl0b3IgaXMgYXQNCj4gPiBodHRwczovL2dpdGh1Yi5jb20vam9zaGxvby9mc3BfeWFt bF9jZmcvdHJlZS9tYXN0ZXIvVG9vbHMNCj4gPg0KPiA+IEEgdW5pdCB0ZXN0IGlzIGFsc28gYWRk ZWQgaW4gVGVzdHMgZm9sZGVyLiBUaGlzIHRlc3QgY29tcGFyZXMNCj4gPiB0aGUgZ2VuZXJhdGVk IHlhbWwgZmlsZSBhZ2FpbnN0IHRoZSBleHBlY3RlZCBvdXRwdXQgdG8ga25vdw0KPiA+IGlmIGl0 IGlzIGNvbnN0cnVjdGluZyB0aGUgeWFtbCBkYXRhIHN0cnVjdHVyZSBhcyBleHBlY3RlZC4NCj4g Pg0KPiA+IENjOiBNYXVyaWNlIE1hIDxtYXVyaWNlLm1hQGludGVsLmNvbT4NCj4gPiBDYzogTmF0 ZSBEZVNpbW9uZSA8bmF0aGFuaWVsLmwuZGVzaW1vbmVAaW50ZWwuY29tPg0KPiA+IENjOiBTdGFy IFplbmcgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+ID4gQ2M6IENoYXNlbCBDaGl1IDxjaGFzZWwu Y2hpdUBpbnRlbC5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTogTG9vIFR1bmcgTHVuIDx0dW5nLmx1 bi5sb29AaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ICBJbnRlbEZzcDJQa2cvVG9vbHMvRnNwRHNj QnNmMllhbWwucHkgICAgICAgICAgfCA4NzUgKysrKysrKysrKysrKysrKysrDQo+ID4gIEludGVs RnNwMlBrZy9Ub29scy9HZW5DZmdPcHQucHkgICAgICAgICAgICAgICB8IDQ3MCArKysrKysrLS0t DQo+ID4gIEludGVsRnNwMlBrZy9Ub29scy9UZXN0cy9FeHBlY3RlZEZzcFVwZC5oICAgICB8ICAx NiArDQo+ID4gIEludGVsRnNwMlBrZy9Ub29scy9UZXN0cy9FeHBlY3RlZEZzcG1VcGQuaCAgICB8 ICA3NSArKw0KPiA+ICBJbnRlbEZzcDJQa2cvVG9vbHMvVGVzdHMvRXhwZWN0ZWRGc3BzVXBkLmgg ICAgfCAgNjkgKysNCj4gPiAgSW50ZWxGc3AyUGtnL1Rvb2xzL1Rlc3RzL0V4cGVjdGVkRnNwdFVw ZC5oICAgIHwgIDg3ICsrDQo+ID4gIEludGVsRnNwMlBrZy9Ub29scy9UZXN0cy9FeHBlY3RlZE91 dHB1dC5ic2YgICB8ICA4OCArKw0KPiA+ICBJbnRlbEZzcDJQa2cvVG9vbHMvVGVzdHMvRXhwZWN0 ZWRPdXRwdXQueWFtbCAgfCAyNzAgKysrKysrDQo+ID4gIEludGVsRnNwMlBrZy9Ub29scy9UZXN0 cy9RZW11RnNwUGtnLmRzYyAgICAgICB8IDQ2OSArKysrKysrKysrDQo+ID4gIEludGVsRnNwMlBr Zy9Ub29scy9UZXN0cy90ZXN0X3lhbWwucHkgICAgICAgICB8ICA5NiArKw0KPiA+ICAuLi4vVXNl ck1hbnVhbHMvRnNwRHNjQnNmMllhbWxVc2VyTWFudWFsLm1kICAgfCAgMzkgKw0KPiA+ICAxMSBm aWxlcyBjaGFuZ2VkLCAyNDIyIGluc2VydGlvbnMoKyksIDEzMiBkZWxldGlvbnMoLSkNCj4gPiAg Y3JlYXRlIG1vZGUgMTAwNjQ0IEludGVsRnNwMlBrZy9Ub29scy9Gc3BEc2NCc2YyWWFtbC5weQ0K PiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgSW50ZWxGc3AyUGtnL1Rvb2xzL1Rlc3RzL0V4cGVjdGVk RnNwVXBkLmgNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IEludGVsRnNwMlBrZy9Ub29scy9UZXN0 cy9FeHBlY3RlZEZzcG1VcGQuaA0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgSW50ZWxGc3AyUGtn L1Rvb2xzL1Rlc3RzL0V4cGVjdGVkRnNwc1VwZC5oDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBJ bnRlbEZzcDJQa2cvVG9vbHMvVGVzdHMvRXhwZWN0ZWRGc3B0VXBkLmgNCj4gPiAgY3JlYXRlIG1v ZGUgMTAwNjQ0IEludGVsRnNwMlBrZy9Ub29scy9UZXN0cy9FeHBlY3RlZE91dHB1dC5ic2YNCj4g PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IEludGVsRnNwMlBrZy9Ub29scy9UZXN0cy9FeHBlY3RlZE91 dHB1dC55YW1sDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBJbnRlbEZzcDJQa2cvVG9vbHMvVGVz dHMvUWVtdUZzcFBrZy5kc2MNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IEludGVsRnNwMlBrZy9U b29scy9UZXN0cy90ZXN0X3lhbWwucHkNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gSW50 ZWxGc3AyUGtnL1Rvb2xzL1VzZXJNYW51YWxzL0ZzcERzY0JzZjJZYW1sVXNlck1hbnVhbC5tZA0K PiA+DQo+ID4gZGlmZiAtLWdpdCBhL0ludGVsRnNwMlBrZy9Ub29scy9Gc3BEc2NCc2YyWWFtbC5w eQ0KPiA+IGIvSW50ZWxGc3AyUGtnL1Rvb2xzL0ZzcERzY0JzZjJZYW1sLnB5DQo+ID4gbmV3IGZp bGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwLi4zOTVmYzJjNTI2DQo+ID4gLS0t IC9kZXYvbnVsbA0KPiA+ICsrKyBiL0ludGVsRnNwMlBrZy9Ub29scy9Gc3BEc2NCc2YyWWFtbC5w eQ0KPiA+IEBAIC0wLDAgKzEsODc1IEBADQo+ID4gKyMhL3Vzci9iaW4vZW52IHB5dGhvbg0KPiA+ DQo+ID4gKyMjIEAgRnNwRHNjQnNmMllhbWwucHkNCj4gPg0KPiA+ICsjIFRoaXMgc2NyaXB0IGNv bnZlcnQgRlNQIEJTRiBmb3JtYXQgaW50byBEU0MgZm9ybWF0DQo+ID4NCj4gPiArIw0KPiA+DQo+ ID4gKyMgQ29weXJpZ2h0KGMpIDIwMjEsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJl c2VydmVkLjxCUj4NCj4gPg0KPiA+ICsjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1D bGF1c2UtUGF0ZW50DQo+ID4NCj4gPiArIw0KPiA+DQo+ID4gKyMjDQo+ID4NCj4gPiArDQo+ID4N Cj4gPiAraW1wb3J0IG9zDQo+ID4NCj4gPiAraW1wb3J0IHJlDQo+ID4NCj4gPiAraW1wb3J0IHN5 cw0KPiA+DQo+ID4gK2Zyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGUNCj4gPg0KPiA+ICtmcm9tIGNv bGxlY3Rpb25zIGltcG9ydCBPcmRlcmVkRGljdA0KPiA+DQo+ID4gK2Zyb20gZnVuY3Rvb2xzIGlt cG9ydCByZWR1Y2UNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICtmcm9tIEdlbkNmZ09wdCBpbXBvcnQg Q0dlbkNmZ09wdA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK19fY29weXJpZ2h0X3RtcF9fID0gIiIi IyMgQGZpbGUNCj4gPg0KPiA+ICsjDQo+ID4NCj4gPiArIyAgWUFNTCBDRkdEQVRBICVzIEZpbGUu DQo+ID4NCj4gPiArIw0KPiA+DQo+ID4gKyMgIENvcHlyaWdodChjKSAlNGQsIEludGVsIENvcnBv cmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPg0KPiA+ICsjICBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+DQo+ID4gKyMNCj4gPg0KPiA+ ICsjIw0KPiA+DQo+ID4gKyIiIg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK19fY29weXJpZ2h0X2Rz Y19fID0gIiIiIyMgQGZpbGUNCj4gPg0KPiA+ICsjDQo+ID4NCj4gPiArIyAgQ29weXJpZ2h0IChj KSAlMDRkLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4N Cj4gPiArIyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4g Pg0KPiA+ICsjDQo+ID4NCj4gPiArIyMNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICtbUGNkc0R5bmFt aWNWcGQuVXBkXQ0KPiA+DQo+ID4gKyAgIw0KPiA+DQo+ID4gKyAgIyBHbG9iYWwgZGVmaW5pdGlv bnMgaW4gQlNGDQo+ID4NCj4gPiArICAjICFCU0YgQkxPQ0s6e05BTUU6IkZTUCBVUEQgQ29uZmln dXJhdGlvbiIsIFZFUjoiMC4xIn0NCj4gPg0KPiA+ICsgICMNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ ICsiIiINCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICtkZWYgQnl0ZXMyVmFsKEJ5 dGVzKToNCj4gPg0KPiA+ICsgICAgcmV0dXJuIHJlZHVjZShsYW1iZGEgeCwgeTogKHggPDwgOCkg fCB5LCBCeXRlc1s6Oi0xXSkNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICtjbGFz cyBDRnNwQnNmMkRzYzoNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgZGVmIF9faW5pdF9fKHNl bGYsIGJzZl9maWxlKToNCj4gPg0KPiA+ICsgICAgICAgIHNlbGYuY2ZnX2xpc3QgPSBDRnNwQnNm MkRzYy5wYXJzZV9ic2YoYnNmX2ZpbGUpDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgIGRlZiBn ZXRfZHNjX2xpbmVzKHNlbGYpOg0KPiA+DQo+ID4gKyAgICAgICAgcmV0dXJuIENGc3BCc2YyRHNj LmdlbmVyYXRlX2RzYyhzZWxmLmNmZ19saXN0KQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICBk ZWYgc2F2ZV9kc2Moc2VsZiwgZHNjX2ZpbGUpOg0KPiA+DQo+ID4gKyAgICAgICAgcmV0dXJuIENG c3BCc2YyRHNjLmdlbmVyYXRlX2RzYyhzZWxmLmNmZ19saXN0LCBkc2NfZmlsZSkNCj4gPg0KPiA+ ICsNCj4gPg0KPiA+ICsgICAgQHN0YXRpY21ldGhvZA0KPiA+DQo+ID4gKyAgICBkZWYgcGFyc2Vf YnNmKGJzZl9maWxlKToNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAgIGZkID0gb3Blbihi c2ZfZmlsZSwgJ3InKQ0KPiA+DQo+ID4gKyAgICAgICAgYnNmX3R4dCA9IGZkLnJlYWQoKQ0KPiA+ DQo+ID4gKyAgICAgICAgZmQuY2xvc2UoKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAg ZmluZF9saXN0ID0gW10NCj4gPg0KPiA+ICsgICAgICAgIHJlZ2V4ID0gcmUuY29tcGlsZShyJ1xz K0ZpbmRccysiKC4qPykiKC4qPyleXHMrXCQoLio/KVxzKycsIHJlLlMgfA0KPiA+IHJlLk1VTFRJ TElORSkNCj4gPg0KPiA+ICsgICAgICAgIGZvciBtYXRjaCBpbiByZWdleC5maW5kaXRlcihic2Zf dHh0KToNCj4gPg0KPiA+ICsgICAgICAgICAgICBmaW5kID0gbWF0Y2guZ3JvdXAoMSkNCj4gPg0K PiA+ICsgICAgICAgICAgICBuYW1lID0gbWF0Y2guZ3JvdXAoMykNCj4gPg0KPiA+ICsgICAgICAg ICAgICBpZiBub3QgbmFtZS5lbmRzd2l0aCgnX1JldmlzaW9uJyk6DQo+ID4NCj4gPiArICAgICAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiVW5leHBlY3RlZCBDRkcgaXRlbSBmb2xsb3dpbmcg J0ZpbmQnICEiKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIGZpbmRfbGlzdC5hcHBlbmQoKG5hbWUs IGZpbmQpKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgaWR4ID0gMA0KPiA+DQo+ID4g KyAgICAgICAgY291bnQgPSAwDQo+ID4NCj4gPiArICAgICAgICBwcmVmaXggPSAnJw0KPiA+DQo+ ID4gKyAgICAgICAgY2hrX2RpY3QgPSB7fQ0KPiA+DQo+ID4gKyAgICAgICAgY2ZnX2xpc3QgPSBb XQ0KPiA+DQo+ID4gKyAgICAgICAgY2ZnX3RlbXAgPSB7J2ZpbmQnOiAnJywgJ2NuYW1lJzogJycs ICdsZW5ndGgnOiAwLCAndmFsdWUnOiAnMCcsICd0eXBlJzoNCj4gJ1Jlc2VydmVkJywNCj4gPg0K PiA+ICsgICAgICAgICAgICAgICAgICAgICdlbWJlZCc6ICcnLCAncGFnZSc6ICcnLCAnb3B0aW9u JzogJycsICdpbnN0YW5jZSc6IDB9DQo+ID4NCj4gPiArICAgICAgICByZWdleCA9DQo+ID4NCj4g cmUuY29tcGlsZShyJ15ccysoXCQoLio/KXxTa2lwKVxzKyhcZCspXHMrYnl0ZXMoXHMrXCRfREVG QVVMVF9ccys9XHMrKC4rDQo+ID8pKT8kJywNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICByZS5TIHwgcmUuTVVMVElMSU5FKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAg ICAgZm9yIG1hdGNoIGluIHJlZ2V4LmZpbmRpdGVyKGJzZl90eHQpOg0KPiA+DQo+ID4gKyAgICAg ICAgICAgIGRsZW4gPSBpbnQobWF0Y2guZ3JvdXAoMykpDQo+ID4NCj4gPiArICAgICAgICAgICAg aWYgbWF0Y2guZ3JvdXAoMSkgPT0gJ1NraXAnOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBr ZXkgPSAnZ1BsYXRmb3JtRnNwUGtnVG9rZW5TcGFjZUd1aWRfQnNmU2tpcCVkJyAlIGlkeA0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICB2YWwgPSAnLCAnLmpvaW4oWyclMDJYJyAlIG9yZChpKSBm b3IgaSBpbiAnXHgwMCcgKiBkbGVuXSkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgaWR4ICs9 IDENCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgb3B0aW9uID0gJyRTS0lQJw0KPiA+DQo+ID4g KyAgICAgICAgICAgIGVsc2U6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGtleSA9IG1hdGNo Lmdyb3VwKDIpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIHZhbCA9IG1hdGNoLmdyb3VwKDUp DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIG9wdGlvbiA9ICcnDQo+ID4NCj4gPiArDQo+ID4N Cj4gPiArICAgICAgICAgICAgY2ZnX2l0ZW0gPSBkaWN0KGNmZ190ZW1wKQ0KPiA+DQo+ID4gKyAg ICAgICAgICAgIGZpbmRzID0gW2kgZm9yIGkgaW4gZmluZF9saXN0IGlmIGlbMF0gPT0ga2V5XQ0K PiA+DQo+ID4gKyAgICAgICAgICAgIGlmIGxlbihmaW5kcykgPiAwOg0KPiA+DQo+ID4gKyAgICAg ICAgICAgICAgICBpZiBjb3VudCA+PSAxOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAg IyBBcHBlbmQgYSBkdW1teSBvbmUNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGNmZ19p dGVtWydjbmFtZSddID0gJ0R1bW15Jw0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgY2Zn X2xpc3QuYXBwZW5kKGRpY3QoY2ZnX2l0ZW0pKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgY2ZnX2xpc3RbLTFdWydlbWJlZCddID0gJyVzOlRBR18lMDNYOkVORCcgJSAocHJlZml4LA0K PiBvcmQocHJlZml4Wy0xXSkpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIHByZWZpeCA9IGZp bmRzWzBdWzFdDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGNmZ19pdGVtWydlbWJlZCddID0g JyVzOlRBR18lMDNYOlNUQVJUJyAlIChwcmVmaXgsIG9yZChwcmVmaXhbLQ0KPiAxXSkpDQo+ID4N Cj4gPiArICAgICAgICAgICAgICAgIGNmZ19pdGVtWydmaW5kJ10gPSBwcmVmaXgNCj4gPg0KPiA+ ICsgICAgICAgICAgICAgICAgY2ZnX2l0ZW1bJ2NuYW1lJ10gPSAnU2lnbmF0dXJlJw0KPiA+DQo+ ID4gKyAgICAgICAgICAgICAgICBjZmdfaXRlbVsnbGVuZ3RoJ10gPSBsZW4oZmluZHNbMF1bMV0p DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGNmZ19pdGVtWyd2YWx1ZSddID0gJzB4JVgnICUg Qnl0ZXMyVmFsKGZpbmRzWzBdWzFdLmVuY29kZSgnVVRGLQ0KPiA4JykpDQo+ID4NCj4gPiArICAg ICAgICAgICAgICAgIGNmZ19saXN0LmFwcGVuZChkaWN0KGNmZ19pdGVtKSkNCj4gPg0KPiA+ICsg ICAgICAgICAgICAgICAgY2ZnX2l0ZW0gPSBkaWN0KGNmZ190ZW1wKQ0KPiA+DQo+ID4gKyAgICAg ICAgICAgICAgICBmaW5kX2xpc3QucG9wKDApDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGNv dW50ID0gMA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgICAgIGNmZ19pdGVtWydjbmFt ZSddID0ga2V5DQo+ID4NCj4gPiArICAgICAgICAgICAgY2ZnX2l0ZW1bJ2xlbmd0aCddID0gZGxl bg0KPiA+DQo+ID4gKyAgICAgICAgICAgIGNmZ19pdGVtWyd2YWx1ZSddID0gdmFsDQo+ID4NCj4g PiArICAgICAgICAgICAgY2ZnX2l0ZW1bJ29wdGlvbiddID0gb3B0aW9uDQo+ID4NCj4gPiArDQo+ ID4NCj4gPiArICAgICAgICAgICAgaWYga2V5IG5vdCBpbiBjaGtfZGljdC5rZXlzKCk6DQo+ID4N Cj4gPiArICAgICAgICAgICAgICAgIGNoa19kaWN0W2tleV0gPSAwDQo+ID4NCj4gPiArICAgICAg ICAgICAgZWxzZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgY2hrX2RpY3Rba2V5XSArPSAx DQo+ID4NCj4gPiArICAgICAgICAgICAgY2ZnX2l0ZW1bJ2luc3RhbmNlJ10gPSBjaGtfZGljdFtr ZXldDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICAgICAgY2ZnX2xpc3QuYXBwZW5kKGNm Z19pdGVtKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIGNvdW50ICs9IDENCj4gPg0KPiA+ICsNCj4g Pg0KPiA+ICsgICAgICAgIGlmIHByZWZpeDoNCj4gPg0KPiA+ICsgICAgICAgICAgICBjZmdfaXRl bSA9IGRpY3QoY2ZnX3RlbXApDQo+ID4NCj4gPiArICAgICAgICAgICAgY2ZnX2l0ZW1bJ2NuYW1l J10gPSAnRHVtbXknDQo+ID4NCj4gPiArICAgICAgICAgICAgY2ZnX2l0ZW1bJ2VtYmVkJ10gPSAn JXM6JTAzWDpFTkQnICUgKHByZWZpeCwgb3JkKHByZWZpeFstMV0pKQ0KPiA+DQo+ID4gKyAgICAg ICAgICAgIGNmZ19saXN0LmFwcGVuZChjZmdfaXRlbSkNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsg ICAgICAgIG9wdGlvbl9kaWN0ID0ge30NCj4gPg0KPiA+ICsgICAgICAgIHNlbHJlZyA9IHJlLmNv bXBpbGUocidccytTZWxlY3Rpb25ccyooLis/KVxzKixccyoiKC4qPykiJCcsIHJlLlMgfA0KPiA+ IHJlLk1VTFRJTElORSkNCj4gPg0KPiA+ICsgICAgICAgIHJlZ2V4ID0gcmUuY29tcGlsZShyJ15M aXN0XHMmKC4rPykkKC4rPyleRW5kTGlzdCQnLCByZS5TIHwNCj4gcmUuTVVMVElMSU5FKQ0KPiA+ DQo+ID4gKyAgICAgICAgZm9yIG1hdGNoIGluIHJlZ2V4LmZpbmRpdGVyKGJzZl90eHQpOg0KPiA+ DQo+ID4gKyAgICAgICAgICAgIGtleSA9IG1hdGNoLmdyb3VwKDEpDQo+ID4NCj4gPiArICAgICAg ICAgICAgb3B0aW9uX2RpY3Rba2V5XSA9IFtdDQo+ID4NCj4gPiArICAgICAgICAgICAgZm9yIHNl bGVjdCBpbiBzZWxyZWcuZmluZGl0ZXIobWF0Y2guZ3JvdXAoMikpOg0KPiA+DQo+ID4gKyAgICAg ICAgICAgICAgICBvcHRpb25fZGljdFtrZXldLmFwcGVuZCgoaW50KHNlbGVjdC5ncm91cCgxKSwg MCksIHNlbGVjdC5ncm91cCgyKSkpDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICBjaGtf ZGljdCA9IHt9DQo+ID4NCj4gPiArICAgICAgICBwYWdlcmVnID0gcmUuY29tcGlsZShyJ15QYWdl XHMiKC4qPykiJCguKz8pXkVuZFBhZ2UkJywgcmUuUyB8DQo+ID4gcmUuTVVMVElMSU5FKQ0KPiA+ DQo+ID4gKyAgICAgICAgZm9yIG1hdGNoIGluIHBhZ2VyZWcuZmluZGl0ZXIoYnNmX3R4dCk6DQo+ ID4NCj4gPiArICAgICAgICAgICAgcGFnZSA9IG1hdGNoLmdyb3VwKDEpDQo+ID4NCj4gPiArICAg ICAgICAgICAgZm9yIGxpbmUgaW4gbWF0Y2guZ3JvdXAoMikuc3BsaXRsaW5lcygpOg0KPiA+DQo+ ID4gKyAgICAgICAgICAgICAgICBtYXRjaCA9DQo+IHJlLm1hdGNoKHInXHMrKENvbWJvfEVkaXRO dW0pXHNcJCguKz8pLFxzIiguKj8pIixccyguKz8pLCQnLA0KPiA+IGxpbmUpDQo+ID4NCj4gPiAr ICAgICAgICAgICAgICAgIGlmIG1hdGNoOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAg Y25hbWUgPSBtYXRjaC5ncm91cCgyKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgaWYg Y25hbWUgbm90IGluIGNoa19kaWN0LmtleXMoKToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICBjaGtfZGljdFtjbmFtZV0gPSAwDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAg ICBlbHNlOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIGNoa19kaWN0W2NuYW1l XSArPSAxDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSA9IGNoa19kaWN0 W2NuYW1lXQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgY2ZnX2lkeHMgPSBbaSBmb3Ig aSwgaiBpbiBlbnVtZXJhdGUoY2ZnX2xpc3QpIGlmIGpbJ2NuYW1lJ10gPT0gY25hbWUNCj4gYW5k DQo+ID4galsnaW5zdGFuY2UnXSA9PSBpbnN0YW5jZV0NCj4gPg0KPiA+ICsgICAgICAgICAgICAg ICAgICAgIGlmIGxlbihjZmdfaWR4cykgIT0gMToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIk11bHRpcGxlIENGRyBpdGVtICclcycgZm91bmQgISIg JSBjbmFtZSkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGNmZ19pdGVtID0gY2ZnX2xp c3RbY2ZnX2lkeHNbMF1dDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBjZmdfaXRlbVsn cGFnZSddID0gcGFnZQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgY2ZnX2l0ZW1bJ3R5 cGUnXSA9IG1hdGNoLmdyb3VwKDEpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBjZmdf aXRlbVsncHJvbXB0J10gPSBtYXRjaC5ncm91cCgzKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgY2ZnX2l0ZW1bJ3JhbmdlJ10gPSBOb25lDQo+ID4NCj4gPiArICAgICAgICAgICAgICAg ICAgICBpZiBjZmdfaXRlbVsndHlwZSddID09ICdDb21ibyc6DQo+ID4NCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgY2ZnX2l0ZW1bJ29wdGlvbiddID0gb3B0aW9uX2RpY3RbbWF0Y2guZ3Jv dXAoNClbMTpdXQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgZWxpZiBjZmdfaXRlbVsn dHlwZSddID09ICdFZGl0TnVtJzoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBj ZmdfaXRlbVsnb3B0aW9uJ10gPSBtYXRjaC5ncm91cCg0KQ0KPiA+DQo+ID4gKyAgICAgICAgICAg ICAgICBtYXRjaCA9IHJlLm1hdGNoKHInXHMrIEhlbHBccyIoLio/KSIkJywgbGluZSkNCj4gPg0K PiA+ICsgICAgICAgICAgICAgICAgaWYgbWF0Y2g6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAg ICAgICBjZmdfaXRlbVsnaGVscCddID0gbWF0Y2guZ3JvdXAoMSkNCj4gPg0KPiA+ICsNCj4gPg0K PiA+ICsgICAgICAgICAgICAgICAgbWF0Y2ggPSByZS5tYXRjaChyJ1xzKyJWYWxpZFxzcmFuZ2U6 XHMoLiopIiQnLCBsaW5lKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBpZiBtYXRjaDoNCj4g Pg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHBhcnRzID0gbWF0Y2guZ3JvdXAoMSkuc3BsaXQo KQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgY2ZnX2l0ZW1bJ29wdGlvbiddID0gKA0K PiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIChpbnQocGFydHNbMF0sIDApLCBpbnQo cGFydHNbMl0sIDApLCBjZmdfaXRlbVsnb3B0aW9uJ10pKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4g KyAgICAgICAgcmV0dXJuIGNmZ19saXN0DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgIEBzdGF0 aWNtZXRob2QNCj4gPg0KPiA+ICsgICAgZGVmIGdlbmVyYXRlX2RzYyhvcHRpb25fbGlzdCwgZHNj X2ZpbGU9Tm9uZSk6DQo+ID4NCj4gPiArICAgICAgICBkc2NfbGluZXMgPSBbXQ0KPiA+DQo+ID4g KyAgICAgICAgaGVhZGVyID0gJyVzJyAlIChfX2NvcHlyaWdodF9kc2NfXyAlIGRhdGUudG9kYXko KS55ZWFyKQ0KPiA+DQo+ID4gKyAgICAgICAgZHNjX2xpbmVzLmV4dGVuZChoZWFkZXIuc3BsaXRs aW5lcygpKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgcGFnZXMgPSBbXQ0KPiA+DQo+ ID4gKyAgICAgICAgZm9yIGNmZ19pdGVtIGluIG9wdGlvbl9saXN0Og0KPiA+DQo+ID4gKyAgICAg ICAgICAgIGlmIGNmZ19pdGVtWydwYWdlJ10gYW5kIChjZmdfaXRlbVsncGFnZSddIG5vdCBpbiBw YWdlcyk6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIHBhZ2VzLmFwcGVuZChjZmdfaXRlbVsn cGFnZSddKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgcGFnZV9pZCA9IDANCj4gPg0K PiA+ICsgICAgICAgIGZvciBwYWdlIGluIHBhZ2VzOg0KPiA+DQo+ID4gKyAgICAgICAgICAgIGRz Y19saW5lcy5hcHBlbmQoJyAgIyAhQlNGIFBBR0VTOntQRyUwMlg6OiIlcyJ9JyAlIChwYWdlX2lk LA0KPiBwYWdlKSkNCj4gPg0KPiA+ICsgICAgICAgICAgICBwYWdlX2lkICs9IDENCj4gPg0KPiA+ ICsgICAgICAgIGRzY19saW5lcy5hcHBlbmQoJycpDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAg ICAgICBsYXN0X3BhZ2UgPSAnJw0KPiA+DQo+ID4gKyAgICAgICAgZm9yIG9wdGlvbiBpbiBvcHRp b25fbGlzdDoNCj4gPg0KPiA+ICsgICAgICAgICAgICBkc2NfbGluZXMuYXBwZW5kKCcnKQ0KPiA+ DQo+ID4gKyAgICAgICAgICAgIGRlZmF1bHQgPSBvcHRpb25bJ3ZhbHVlJ10NCj4gPg0KPiA+ICsg ICAgICAgICAgICBwb3MgPSBvcHRpb25bJ2NuYW1lJ10uZmluZCgnXycpDQo+ID4NCj4gPiArICAg ICAgICAgICAgbmFtZSA9IG9wdGlvblsnY25hbWUnXVtwb3MgKyAxOl0NCj4gPg0KPiA+ICsNCj4g Pg0KPiA+ICsgICAgICAgICAgICBpZiBvcHRpb25bJ2ZpbmQnXToNCj4gPg0KPiA+ICsgICAgICAg ICAgICAgICAgZHNjX2xpbmVzLmFwcGVuZCgnICAjICFCU0YgRklORDp7JXN9JyAlIG9wdGlvblsn ZmluZCddKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBkc2NfbGluZXMuYXBwZW5kKCcnKQ0K PiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgICAgIGlmIG9wdGlvblsnaW5zdGFuY2UnXSA+ IDA6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lICsgJ18lcycgJSBvcHRp b25bJ2luc3RhbmNlJ10NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAgICAgICBpZiBvcHRp b25bJ2VtYmVkJ106DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGRzY19saW5lcy5hcHBlbmQo JyAgIyAhSERSIEVNQkVEOnslc30nICUgb3B0aW9uWydlbWJlZCddKQ0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gKyAgICAgICAgICAgIGlmIG9wdGlvblsndHlwZSddID09ICdSZXNlcnZlZCc6DQo+ID4N Cj4gPiArICAgICAgICAgICAgICAgIGRzY19saW5lcy5hcHBlbmQoJyAgIyAhQlNGIE5BTUU6e1Jl c2VydmVkfSBUWVBFOntSZXNlcnZlZH0nKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBpZiBv cHRpb25bJ29wdGlvbiddID09ICckU0tJUCc6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAg ICBkc2NfbGluZXMuYXBwZW5kKCcgICMgIUJTRiBPUFRJT046eyRTS0lQfScpDQo+ID4NCj4gPiAr ICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgcHJvbXB0ID0gb3B0 aW9uWydwcm9tcHQnXQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBpZiBs YXN0X3BhZ2UgIT0gb3B0aW9uWydwYWdlJ106DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAg ICBsYXN0X3BhZ2UgPSBvcHRpb25bJ3BhZ2UnXQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgZHNjX2xpbmVzLmFwcGVuZCgnICAjICFCU0YgUEFHRTp7UEclMDJYfScgJQ0KPiA+IChwYWdl cy5pbmRleChvcHRpb25bJ3BhZ2UnXSkpKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAg ICAgICAgICBpZiBvcHRpb25bJ3R5cGUnXSA9PSAnQ29tYm8nOg0KPiA+DQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgZHNjX2xpbmVzLmFwcGVuZCgnICAjICFCU0YgTkFNRTp7JXN9IFRZUEU6eyVz fScgJQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJv bXB0LCBvcHRpb25bJ3R5cGUnXSkpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBvcHMg PSBbXQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgZm9yIHZhbCwgdGV4dCBpbiBvcHRp b25bJ29wdGlvbiddOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIG9wcy5hcHBl bmQoJzB4JXg6JXMnICUgKHZhbCwgdGV4dCkpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAg ICBkc2NfbGluZXMuYXBwZW5kKCcgICMgIUJTRiBPUFRJT046eyVzfScgJSAoJywgJy5qb2luKG9w cykpKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBlbGlmIG9wdGlvblsndHlwZSddID09ICdF ZGl0TnVtJzoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGNmZ19sZW4gPSBvcHRpb25b J2xlbmd0aCddDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBpZiAnLCcgaW4gZGVmYXVs dCBhbmQgY2ZnX2xlbiA+IDg6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgZHNj X2xpbmVzLmFwcGVuZCgnICAjICFCU0YgTkFNRTp7JXN9IFRZUEU6e1RhYmxlfScgJQ0KPiAocHJv bXB0KSkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiBjZmdfbGVuID4gMTY6 DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNmZ19sZW4gPSAxNg0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIG9wcyA9IFtdDQo+ID4NCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoY2ZnX2xlbik6DQo+ID4NCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9wcy5hcHBlbmQoJyVYOjE6SEVYJyAlIGkpDQo+ID4N Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgZHNjX2xpbmVzLmFwcGVuZCgnICAjICFCU0Yg T1BUSU9OOnslc30nICUgKCcsICcuam9pbihvcHMpKSkNCj4gPg0KPiA+ICsgICAgICAgICAgICAg ICAgICAgIGVsc2U6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgZHNjX2xpbmVz LmFwcGVuZCgNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgIyAhQlNG IE5BTUU6eyVzfSBUWVBFOnslcywgJXMsKDB4JVgsIDB4JVgpfScgJQ0KPiA+DQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAocHJvbXB0LCBvcHRpb25bJ3R5cGUnXSwgb3B0aW9uWydv cHRpb24nXVsyXSwNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlv blsnb3B0aW9uJ11bMF0sIG9wdGlvblsnb3B0aW9uJ11bMV0pKQ0KPiA+DQo+ID4gKyAgICAgICAg ICAgICAgICBkc2NfbGluZXMuYXBwZW5kKCcgICMgIUJTRiBIRUxQOnslc30nICUgb3B0aW9uWydo ZWxwJ10pDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICAgICAgaWYgJywnIGluIGRlZmF1 bHQ6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGRlZmF1bHQgPSAneyVzfScgJSBkZWZhdWx0 DQo+ID4NCj4gPiArICAgICAgICAgICAgZHNjX2xpbmVzLmFwcGVuZCgnICBnQ2ZnRGF0YS4lLTMw cyB8ICogfCAweCUwNFggfCAlcycgJQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKG5hbWUsIG9wdGlvblsnbGVuZ3RoJ10sIGRlZmF1bHQpKQ0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gKyAgICAgICAgaWYgZHNjX2ZpbGU6DQo+ID4NCj4gPiArICAgICAgICAgICAgZmQgPSBv cGVuKGRzY19maWxlLCAndycpDQo+ID4NCj4gPiArICAgICAgICAgICAgZmQud3JpdGUoJ1xuJy5q b2luKGRzY19saW5lcykpDQo+ID4NCj4gPiArICAgICAgICAgICAgZmQuY2xvc2UoKQ0KPiA+DQo+ ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgcmV0dXJuIGRzY19saW5lcw0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gKw0KPiA+DQo+ID4gK2NsYXNzIENGc3BEc2MyWWFtbCgpOg0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gKyAgICBkZWYgX19pbml0X18oc2VsZik6DQo+ID4NCj4gPiArICAgICAgICBzZWxmLl9I ZHJfa2V5X2xpc3QgPSBbJ0VNQkVEJywgJ1NUUlVDVCddDQo+ID4NCj4gPiArICAgICAgICBzZWxm Ll9Cc2Zfa2V5X2xpc3QgPSBbJ05BTUUnLCAnSEVMUCcsICdUWVBFJywgJ1BBR0UnLCAnUEFHRVMn LCAnT1BUSU9OJywNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ09O RElUSU9OJywgJ09SREVSJywgJ01BUktFUicsICdTVUJUJywgJ0ZJRUxEJywgJ0ZJTkQnXQ0KPiA+ DQo+ID4gKyAgICAgICAgc2VsZi5nZW5fY2ZnX2RhdGEgPSBOb25lDQo+ID4NCj4gPiArICAgICAg ICBzZWxmLmNmZ19yZWdfZXhwID0gcmUuY29tcGlsZShyIl4oW19hLXpBLVowLTkkXChcKV0rKVxz Klx8XHMqKDB4WzAtDQo+IDlBLQ0KPiA+IEZdK3xcKilccypcfCINCj4gPg0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgciJccyooXGQrfDB4WzAtOWEtZkEtRl0r KVxzKlx8XHMqKC4rKSIpDQo+ID4NCj4gPiArICAgICAgICBzZWxmLmJzZl9yZWdfZXhwID0gcmUu Y29tcGlsZShyIiglcyk6eyguKz8pfSg/OiR8XHMrKSIgJQ0KPiA+ICd8Jy5qb2luKHNlbGYuX0Jz Zl9rZXlfbGlzdCkpDQo+ID4NCj4gPiArICAgICAgICBzZWxmLmhkcl9yZWdfZXhwID0gcmUuY29t cGlsZShyIiglcyk6eyguKz8pfSIgJQ0KPiAnfCcuam9pbihzZWxmLl9IZHJfa2V5X2xpc3QpKQ0K PiA+DQo+ID4gKyAgICAgICAgc2VsZi5wcmVmaXggPSAnJw0KPiA+DQo+ID4gKyAgICAgICAgc2Vs Zi51bnVzZWRfaWR4ID0gMA0KPiA+DQo+ID4gKyAgICAgICAgc2VsZi5vZmZzZXQgPSAwDQo+ID4N Cj4gPiArICAgICAgICBzZWxmLmJhc2Vfb2Zmc2V0ID0gMA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4g KyAgICBkZWYgbG9hZF9jb25maWdfZGF0YV9mcm9tX2RzYyhzZWxmLCBmaWxlX25hbWUpOg0KPiA+ DQo+ID4gKyAgICAgICAgIiIiDQo+ID4NCj4gPiArICAgICAgICBMb2FkIGFuZCBwYXJzZSBhIERT QyBDRkdEQVRBIGZpbGUuDQo+ID4NCj4gPiArICAgICAgICAiIiINCj4gPg0KPiA+ICsgICAgICAg IGdlbl9jZmdfZGF0YSA9IENHZW5DZmdPcHQoJ0ZTUCcpDQo+ID4NCj4gPiArICAgICAgICBpZiBm aWxlX25hbWUuZW5kc3dpdGgoJy5kc2MnKToNCj4gPg0KPiA+ICsgICAgICAgICAgICAjIGlmIGdl bl9jZmdfZGF0YS5QYXJzZURzY0ZpbGVZYW1sKGZpbGVfbmFtZSwgJycpICE9IDA6DQo+ID4NCj4g PiArICAgICAgICAgICAgaWYgZ2VuX2NmZ19kYXRhLlBhcnNlRHNjRmlsZShmaWxlX25hbWUsICcn KSAhPSAwOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0RTQyBm aWxlIHBhcnNpbmcgZXJyb3IgIScpDQo+ID4NCj4gPiArICAgICAgICAgICAgaWYgZ2VuX2NmZ19k YXRhLkNyZWF0ZVZhckRpY3QoKSAhPSAwOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oJ0RTQyB2YXJpYWJsZSBjcmVhdGlvbiBlcnJvciAhJykNCj4gPg0KPiA+ICsg ICAgICAgIGVsc2U6DQo+ID4NCj4gPiArICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbnN1 cHBvcnRlZCBmaWxlICIlcyIgIScgJSBmaWxlX25hbWUpDQo+ID4NCj4gPiArICAgICAgICBnZW5f Y2ZnX2RhdGEuVXBkYXRlRGVmYXVsdFZhbHVlKCkNCj4gPg0KPiA+ICsgICAgICAgIHNlbGYuZ2Vu X2NmZ19kYXRhID0gZ2VuX2NmZ19kYXRhDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgIGRlZiBw cmludF9kc2NfbGluZShzZWxmKToNCj4gPg0KPiA+ICsgICAgICAgICIiIg0KPiA+DQo+ID4gKyAg ICAgICAgRGVidWcgZnVuY3Rpb24gdG8gcHJpbnQgYWxsIERTQyBsaW5lcy4NCj4gPg0KPiA+ICsg ICAgICAgICIiIg0KPiA+DQo+ID4gKyAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5nZW5fY2ZnX2Rh dGEuX0RzY0xpbmVzOg0KPiA+DQo+ID4gKyAgICAgICAgICAgIHByaW50KGxpbmUpDQo+ID4NCj4g PiArDQo+ID4NCj4gPiArICAgIGRlZiBmb3JtYXRfdmFsdWUoc2VsZiwgZmllbGQsIHRleHQsIGlu ZGVudD0nJyk6DQo+ID4NCj4gPiArICAgICAgICAiIiINCj4gPg0KPiA+ICsgICAgICAgIEZvcm1h dCBhIENGR0RBVEEgaXRlbSBpbnRvIFlBTUwgZm9ybWF0Lg0KPiA+DQo+ID4gKyAgICAgICAgIiIi DQo+ID4NCj4gPiArICAgICAgICBpZihub3QgdGV4dC5zdGFydHN3aXRoKCchZXhwYW5kJykpIGFu ZCAoJzogJyBpbiB0ZXh0KToNCj4gPg0KPiA+ICsgICAgICAgICAgICB0Z3QgPSAnOicgaWYgZmll bGQgPT0gJ29wdGlvbicgZWxzZSAnLSAnDQo+ID4NCj4gPiArICAgICAgICAgICAgdGV4dCA9IHRl eHQucmVwbGFjZSgnOiAnLCB0Z3QpDQo+ID4NCj4gPiArICAgICAgICBsaW5lcyA9IHRleHQuc3Bs aXRsaW5lcygpDQo+ID4NCj4gPiArICAgICAgICBpZiBsZW4obGluZXMpID09IDEgYW5kIGZpZWxk ICE9ICdoZWxwJzoNCj4gPg0KPiA+ICsgICAgICAgICAgICByZXR1cm4gdGV4dA0KPiA+DQo+ID4g KyAgICAgICAgZWxzZToNCj4gPg0KPiA+ICsgICAgICAgICAgICByZXR1cm4gJz5cbiAgICcgKyAn XG4gICAnLmpvaW4oW2luZGVudCArIGkubHN0cmlwKCkgZm9yIGkgaW4gbGluZXNdKQ0KPiA+DQo+ ID4gKw0KPiA+DQo+ID4gKyAgICBkZWYgcmVmb3JtYXRfcGFnZXMoc2VsZiwgdmFsKToNCj4gPg0K PiA+ICsgICAgICAgICMgQ29udmVydCBYWFg6WVlZIGludG8gWFhYOjpZWVkgZm9ybWF0IGZvciBw YWdlIGRlZmluaXRpb24NCj4gPg0KPiA+ICsgICAgICAgIHBhcnRzID0gdmFsLnNwbGl0KCcsJykN Cj4gPg0KPiA+ICsgICAgICAgIGlmIGxlbihwYXJ0cykgPD0gMToNCj4gPg0KPiA+ICsgICAgICAg ICAgICByZXR1cm4gdmFsDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICBuZXdfdmFsID0g W10NCj4gPg0KPiA+ICsgICAgICAgIGZvciBlYWNoIGluIHBhcnRzOg0KPiA+DQo+ID4gKyAgICAg ICAgICAgIG5vZGVzID0gZWFjaC5zcGxpdCgnOicpDQo+ID4NCj4gPiArICAgICAgICAgICAgaWYg bGVuKG5vZGVzKSA9PSAyOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBlYWNoID0gJyVzOjol cycgJSAobm9kZXNbMF0sIG5vZGVzWzFdKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIG5ld192YWwu YXBwZW5kKGVhY2gpDQo+ID4NCj4gPiArICAgICAgICByZXQgPSAnLCcuam9pbihuZXdfdmFsKQ0K PiA+DQo+ID4gKyAgICAgICAgcmV0dXJuIHJldA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICBk ZWYgcmVmb3JtYXRfc3RydWN0X3ZhbHVlKHNlbGYsIHV0eXBlLCB2YWwpOg0KPiA+DQo+ID4gKyAg ICAgICAgIyBDb252ZXJ0IERTQyBVSU5UMTYvMzIvNjQgYXJyYXkgaW50byBuZXcgZm9ybWF0IGJ5 DQo+ID4NCj4gPiArICAgICAgICAjIGFkZGluZyBwcmVmaXggMDowW1dEUV0gdG8gcHJvdmlkZSBo aW50IHRvIHRoZSBhcnJheSBmb3JtYXQNCj4gPg0KPiA+ICsgICAgICAgIGlmIHV0eXBlIGluIFsn VUlOVDE2JywgJ1VJTlQzMicsICdVSU5UNjQnXToNCj4gPg0KPiA+ICsgICAgICAgICAgICBpZiB2 YWwgYW5kIHZhbFswXSA9PSAneycgYW5kIHZhbFstMV0gPT0gJ30nOg0KPiA+DQo+ID4gKyAgICAg ICAgICAgICAgICBpZiB1dHlwZSA9PSAnVUlOVDE2JzoNCj4gPg0KPiA+ICsgICAgICAgICAgICAg ICAgICAgIHVuaXQgPSAnVycNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgZWxpZiB1dHlwZSA9 PSAnVUlOVDMyJzoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHVuaXQgPSAnRCcNCj4g Pg0KPiA+ICsgICAgICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAg ICAgIHVuaXQgPSAnUScNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgdmFsID0gJ3sgMDowJXMs ICVzIH0nICUgKHVuaXQsIHZhbFsxOi0xXSkNCj4gPg0KPiA+ICsgICAgICAgIHJldHVybiB2YWwN Cj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgZGVmIHByb2Nlc3NfY29uZmlnKHNlbGYsIGNmZyk6 DQo+ID4NCj4gPiArICAgICAgICBpZiAncGFnZScgaW4gY2ZnOg0KPiA+DQo+ID4gKyAgICAgICAg ICAgIGNmZ1sncGFnZSddID0gc2VsZi5yZWZvcm1hdF9wYWdlcyhjZmdbJ3BhZ2UnXSkNCj4gPg0K PiA+ICsNCj4gPg0KPiA+ICsgICAgICAgIGlmICdzdHJ1Y3QnIGluIGNmZzoNCj4gPg0KPiA+ICsg ICAgICAgICAgICBjZmdbJ3ZhbHVlJ10gPSBzZWxmLnJlZm9ybWF0X3N0cnVjdF92YWx1ZShjZmdb J3N0cnVjdCddLCBjZmdbJ3ZhbHVlJ10pDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgIGRlZiBw YXJzZV9kc2NfbGluZShzZWxmLCBkc2NfbGluZSwgY29uZmlnX2RpY3QsIGluaXRfZGljdCwgaW5j bHVkZSk6DQo+ID4NCj4gPiArICAgICAgICAiIiINCj4gPg0KPiA+ICsgICAgICAgIFBhcnNlIGEg bGluZSBpbiBEU0MgYW5kIHVwZGF0ZSB0aGUgY29uZmlnIGRpY3Rpb25hcnkgYWNjb3JkaW5nbHku DQo+ID4NCj4gPiArICAgICAgICAiIiINCj4gPg0KPiA+ICsgICAgICAgIGluaXRfZGljdC5jbGVh cigpDQo+ID4NCj4gPiArICAgICAgICBtYXRjaCA9IHJlLm1hdGNoKHInZyhDZmdEYXRhfFx3K0Zz cFBrZ1Rva2VuU3BhY2VHdWlkKVwuKC4rKScsDQo+IGRzY19saW5lKQ0KPiA+DQo+ID4gKyAgICAg ICAgaWYgbWF0Y2g6DQo+ID4NCj4gPiArICAgICAgICAgICAgbWF0Y2ggPSBzZWxmLmNmZ19yZWdf ZXhwLm1hdGNoKG1hdGNoLmdyb3VwKDIpKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIGlmIG5vdCBt YXRjaDoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlDQo+ID4NCj4gPiAr ICAgICAgICAgICAgY29uZmlnX2RpY3RbJ2NuYW1lJ10gPSBzZWxmLnByZWZpeCArIG1hdGNoLmdy b3VwKDEpDQo+ID4NCj4gPiArICAgICAgICAgICAgdmFsdWUgPSBtYXRjaC5ncm91cCg0KS5zdHJp cCgpDQo+ID4NCj4gPiArICAgICAgICAgICAgbGVuZ3RoID0gbWF0Y2guZ3JvdXAoMykuc3RyaXAo KQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIGNvbmZpZ19kaWN0WydsZW5ndGgnXSA9IGxlbmd0aA0K PiA+DQo+ID4gKyAgICAgICAgICAgIGNvbmZpZ19kaWN0Wyd2YWx1ZSddID0gdmFsdWUNCj4gPg0K PiA+ICsgICAgICAgICAgICBpZiBtYXRjaC5ncm91cCgyKSA9PSAnKic6DQo+ID4NCj4gPiArICAg ICAgICAgICAgICAgIHNlbGYub2Zmc2V0ICs9IGludChsZW5ndGgsIDApDQo+ID4NCj4gPiArICAg ICAgICAgICAgZWxzZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgb3JnX29mZnNldCA9IGlu dChtYXRjaC5ncm91cCgyKSwgMCkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgaWYgb3JnX29m ZnNldCA9PSAwOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5iYXNlX29mZnNl dCA9IHNlbGYub2Zmc2V0DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIG9mZnNldCA9IG9yZ19v ZmZzZXQgKyBzZWxmLmJhc2Vfb2Zmc2V0DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGlmIHNl bGYub2Zmc2V0ICE9IG9mZnNldDoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGlmIG9m ZnNldCA+IHNlbGYub2Zmc2V0Og0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIGlu aXRfZGljdFsncGFkZGluZyddID0gb2Zmc2V0IC0gc2VsZi5vZmZzZXQNCj4gPg0KPiA+ICsgICAg ICAgICAgICAgICAgc2VsZi5vZmZzZXQgPSBvZmZzZXQgKyBpbnQobGVuZ3RoLCAwKQ0KPiA+DQo+ ID4gKyAgICAgICAgICAgIHJldHVybiBUcnVlDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAg ICBtYXRjaCA9IHJlLm1hdGNoKHIiXlxzKiNccyshKFs8Pl0pXHMraW5jbHVkZVxzKyguKykiLCBk c2NfbGluZSkNCj4gPg0KPiA+ICsgICAgICAgIGlmIG1hdGNoIGFuZCBsZW4oY29uZmlnX2RpY3Qp ID09IDA6DQo+ID4NCj4gPiArICAgICAgICAgICAgIyAhaW5jbHVkZSBzaG91bGQgbm90IGJlIGlu c2lkZSBhIGNvbmZpZyBmaWVsZA0KPiA+DQo+ID4gKyAgICAgICAgICAgICMgaWYgc28sIGRvIG5v dCBjb252ZXJ0IGluY2x1ZGUgaW50byBZQU1MDQo+ID4NCj4gPiArICAgICAgICAgICAgaW5pdF9k aWN0ID0gZGljdChjb25maWdfZGljdCkNCj4gPg0KPiA+ICsgICAgICAgICAgICBjb25maWdfZGlj dC5jbGVhcigpDQo+ID4NCj4gPiArICAgICAgICAgICAgY29uZmlnX2RpY3RbJ2NuYW1lJ10gPSAn JEFDVElPTicNCj4gPg0KPiA+ICsgICAgICAgICAgICBpZiBtYXRjaC5ncm91cCgxKSA9PSAnPCc6 DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGNvbmZpZ19kaWN0WydpbmNsdWRlJ10gPSBtYXRj aC5ncm91cCgyKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIGVsc2U6DQo+ID4NCj4gPiArICAgICAg ICAgICAgICAgIGNvbmZpZ19kaWN0WydpbmNsdWRlJ10gPSAnJw0KPiA+DQo+ID4gKyAgICAgICAg ICAgIHJldHVybiBUcnVlDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICBtYXRjaCA9IHJl Lm1hdGNoKHIiXlxzKiNccysoIUJTRnwhSERSKVxzKyguKykiLCBkc2NfbGluZSkNCj4gPg0KPiA+ ICsgICAgICAgIGlmIG5vdCBtYXRjaDoNCj4gPg0KPiA+ICsgICAgICAgICAgICByZXR1cm4gRmFs c2UNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAgIHJlbWFpbmluZyA9IG1hdGNoLmdyb3Vw KDIpDQo+ID4NCj4gPiArICAgICAgICBpZiBtYXRjaC5ncm91cCgxKSA9PSAnIUJTRic6DQo+ID4N Cj4gPiArICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5ic2ZfcmVnX2V4cC5maW5kYWxsKHJlbWFp bmluZykNCj4gPg0KPiA+ICsgICAgICAgICAgICBpZiBub3QgcmVzdWx0Og0KPiA+DQo+ID4gKyAg ICAgICAgICAgICAgICByZXR1cm4gRmFsc2UNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAg ICAgICBmb3IgZWFjaCBpbiByZXN1bHQ6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGtleSA9 IGVhY2hbMF0ubG93ZXIoKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICB2YWwgPSBlYWNoWzFd DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGlmIGtleSA9PSAnZmllbGQnOg0KPiA+DQo+ID4g KyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGVhY2hbMV0NCj4gPg0KPiA+ICsgICAgICAgICAg ICAgICAgICAgIGlmICc6JyBub3QgaW4gbmFtZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0luY29ycmVjdCBiaXQgZmllbGQgZm9ybWF0ICEnKQ0K PiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgcGFydHMgPSBuYW1lLnNwbGl0KCc6JykNCj4g Pg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19kaWN0WydsZW5ndGgnXSA9IHBhcnRz WzFdDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBjb25maWdfZGljdFsnY25hbWUnXSA9 ICdAJyArIHBhcnRzWzBdDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1 ZQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBlbGlmIGtleSBpbiBbJ3BhZ2VzJywgJ3BhZ2Un LCAnZmluZCddOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgaW5pdF9kaWN0ID0gZGlj dChjb25maWdfZGljdCkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19kaWN0 LmNsZWFyKCkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19kaWN0WydjbmFt ZSddID0gJyRBQ1RJT04nDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBpZiBrZXkgPT0g J2ZpbmQnOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19kaWN0Wydm aW5kJ10gPSB2YWwNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGVsc2U6DQo+ID4NCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnX2RpY3RbJ3BhZ2UnXSA9IHZhbA0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUNCj4gPg0KPiA+ICsgICAgICAg ICAgICAgICAgZWxpZiBrZXkgPT0gJ3N1YnQnOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgY29uZmlnX2RpY3QuY2xlYXIoKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgcGFy dHMgPSBlYWNoWzFdLnNwbGl0KCc6JykNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHRt cF9uYW1lID0gcGFydHNbMF1bOi01XQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgaWYg dG1wX25hbWUgPT0gJ0NGR0hEUic6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg Y2ZnX3RhZyA9ICdfJEZGRl8nDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgc3Zh bCA9ICchZXhwYW5kIHsgJXNfVE1QTCA6IFsgJyAlIHRtcF9uYW1lICsgJyVzLCAlcywgJyAlDQo+ ID4gKHBhcnRzWzFdLCBjZmdfdGFnKSBcDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsgJywgJy5qb2luKHBhcnRzWzI6XSkgKyAnIF0gfScNCj4gPg0KPiA+ICsgICAg ICAgICAgICAgICAgICAgIGVsc2U6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg c3ZhbCA9ICchZXhwYW5kIHsgJXNfVE1QTCA6IFsgJyAlIHRtcF9uYW1lICsgJywgJy5qb2luKHBh cnRzWzE6XSkNCj4gKw0KPiA+ICcgXSB9Jw0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAg Y29uZmlnX2RpY3QuY2xlYXIoKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgY29uZmln X2RpY3RbJ2NuYW1lJ10gPSB0bXBfbmFtZQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAg Y29uZmlnX2RpY3RbJ2V4cGFuZCddID0gc3ZhbA0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIFRydWUNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+ ICsgICAgICAgICAgICAgICAgICAgIGlmIGtleSBpbiBbJ25hbWUnLCAnaGVscCcsICdvcHRpb24n XSBhbmQgdmFsLnN0YXJ0c3dpdGgoJysnKToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICB2YWwgPSBjb25maWdfZGljdFtrZXldICsgJ1xuJyArIHZhbFsxOl0NCj4gPg0KPiA+ICsg ICAgICAgICAgICAgICAgICAgIGlmIHZhbC5zdHJpcCgpID09ICcnOg0KPiA+DQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgIHZhbCA9ICInJyINCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAg ICAgIGNvbmZpZ19kaWN0W2tleV0gPSB2YWwNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAg IGVsc2U6DQo+ID4NCj4gPiArICAgICAgICAgICAgbWF0Y2ggPSBzZWxmLmhkcl9yZWdfZXhwLm1h dGNoKHJlbWFpbmluZykNCj4gPg0KPiA+ICsgICAgICAgICAgICBpZiBub3QgbWF0Y2g6DQo+ID4N Cj4gPiArICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQ0KPiA+DQo+ID4gKyAgICAgICAgICAg IGtleSA9IG1hdGNoLmdyb3VwKDEpDQo+ID4NCj4gPiArICAgICAgICAgICAgcmVtYWluaW5nID0g bWF0Y2guZ3JvdXAoMikNCj4gPg0KPiA+ICsgICAgICAgICAgICBpZiBrZXkgPT0gJ0VNQkVEJzoN Cj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgcGFydHMgPSByZW1haW5pbmcuc3BsaXQoJzonKQ0K PiA+DQo+ID4gKyAgICAgICAgICAgICAgICBuYW1lcyA9IHBhcnRzWzBdLnNwbGl0KCcsJykNCj4g Pg0KPiA+ICsgICAgICAgICAgICAgICAgaWYgcGFydHNbLTFdID09ICdFTkQnOg0KPiA+DQo+ID4g KyAgICAgICAgICAgICAgICAgICAgcHJlZml4ID0gJz4nDQo+ID4NCj4gPiArICAgICAgICAgICAg ICAgIGVsc2U6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBwcmVmaXggPSAnPCcNCj4g Pg0KPiA+ICsgICAgICAgICAgICAgICAgc2tpcCA9IEZhbHNlDQo+ID4NCj4gPiArICAgICAgICAg ICAgICAgIGlmIHBhcnRzWzFdLnN0YXJ0c3dpdGgoJ1RBR18nKToNCj4gPg0KPiA+ICsgICAgICAg ICAgICAgICAgICAgIHRhZ190eHQgPSAnJXM6JXMnICUgKG5hbWVzWzBdLCBwYXJ0c1sxXSkNCj4g Pg0KPiA+ICsgICAgICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAg ICAgIHRhZ190eHQgPSBuYW1lc1swXQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgaWYg cGFydHNbMl0gaW4gWydTVEFSVCcsICdFTkQnXToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICBpZiBuYW1lc1swXSA9PSAnUENJRV9SUF9QSU5fQ1RSTFtdJzoNCj4gPg0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcCA9IFRydWUNCj4gPg0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICBlbHNlOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0YWdfdHh0ID0gJyVzOiVzJyAlIChuYW1lc1swXSwgcGFydHNbMV0pDQo+ID4NCj4gPiAr ICAgICAgICAgICAgICAgIGlmIG5vdCBza2lwOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgY29uZmlnX2RpY3QuY2xlYXIoKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgY29u ZmlnX2RpY3RbJ2NuYW1lJ10gPSBwcmVmaXggKyB0YWdfdHh0DQo+ID4NCj4gPiArICAgICAgICAg ICAgICAgICAgICByZXR1cm4gVHJ1ZQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgICAg IGlmIGtleSA9PSAnU1RSVUNUJzoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgdGV4dCA9IHJl bWFpbmluZy5zdHJpcCgpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGNvbmZpZ19kaWN0W2tl eS5sb3dlcigpXSA9IHRleHQNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAgIHJldHVybiBG YWxzZQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICBkZWYgcHJvY2Vzc190ZW1wbGF0ZV9saW5l cyhzZWxmLCBsaW5lcyk6DQo+ID4NCj4gPiArICAgICAgICAiIiINCj4gPg0KPiA+ICsgICAgICAg IFByb2Nlc3MgYSBsaW5lIGluIERTQyB0ZW1wbGF0ZSBzZWN0aW9uLg0KPiA+DQo+ID4gKyAgICAg ICAgIiIiDQo+ID4NCj4gPiArICAgICAgICB0ZW1wbGF0ZV9uYW1lID0gJycNCj4gPg0KPiA+ICsg ICAgICAgIGJzZl90ZW1wX2RpY3QgPSBPcmRlcmVkRGljdCgpDQo+ID4NCj4gPiArICAgICAgICB0 ZW1wX2ZpbGVfZGljdCA9IE9yZGVyZWREaWN0KCkNCj4gPg0KPiA+ICsgICAgICAgIGluY2x1ZGVf ZmlsZSA9IFsnLiddDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICBmb3IgbGluZSBpbiBs aW5lczoNCj4gPg0KPiA+ICsgICAgICAgICAgICBtYXRjaCA9IHJlLm1hdGNoKHIiXlxzKiNccysh KFs8Pl0pXHMraW5jbHVkZVxzKyguKykiLCBsaW5lKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIGlm IG1hdGNoOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBpZiBtYXRjaC5ncm91cCgxKSA9PSAn PCc6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBpbmNsdWRlX2ZpbGUuYXBwZW5kKG1h dGNoLmdyb3VwKDIpKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBlbHNlOg0KPiA+DQo+ID4g KyAgICAgICAgICAgICAgICAgICAgaW5jbHVkZV9maWxlLnBvcCgpDQo+ID4NCj4gPiArDQo+ID4N Cj4gPiArICAgICAgICAgICAgbWF0Y2ggPSByZS5tYXRjaChyIl5ccyojXHMrKCFCU0YpXHMrREVG VDp7KC4rPyk6KFNUQVJUfEVORCl9IiwNCj4gbGluZSkNCj4gPg0KPiA+ICsgICAgICAgICAgICBp ZiBtYXRjaDoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgaWYgbWF0Y2guZ3JvdXAoMykgPT0g J1NUQVJUJyBhbmQgbm90IHRlbXBsYXRlX25hbWU6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAg ICAgICB0ZW1wbGF0ZV9uYW1lID0gbWF0Y2guZ3JvdXAoMikuc3RyaXAoKQ0KPiA+DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgdGVtcF9maWxlX2RpY3RbdGVtcGxhdGVfbmFtZV0gPSBsaXN0KGlu Y2x1ZGVfZmlsZSkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGJzZl90ZW1wX2RpY3Rb dGVtcGxhdGVfbmFtZV0gPSBbXQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBpZiBtYXRjaC5n cm91cCgzKSA9PSAnRU5EJyBhbmQgKHRlbXBsYXRlX25hbWUgPT0NCj4gPiBtYXRjaC5ncm91cCgy KS5zdHJpcCgpKSBcDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgIGFuZCB0ZW1wbGF0ZV9u YW1lOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGVfbmFtZSA9ICcnDQo+ ID4NCj4gPiArICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgaWYg dGVtcGxhdGVfbmFtZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGJzZl90ZW1wX2Rp Y3RbdGVtcGxhdGVfbmFtZV0uYXBwZW5kKGxpbmUpDQo+ID4NCj4gPiArICAgICAgICByZXR1cm4g YnNmX3RlbXBfZGljdCwgdGVtcF9maWxlX2RpY3QNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAg ZGVmIHByb2Nlc3Nfb3B0aW9uX2xpbmVzKHNlbGYsIGxpbmVzKToNCj4gPg0KPiA+ICsgICAgICAg ICIiIg0KPiA+DQo+ID4gKyAgICAgICAgUHJvY2VzcyBhIGxpbmUgaW4gRFNDIGNvbmZpZyBzZWN0 aW9uLg0KPiA+DQo+ID4gKyAgICAgICAgIiIiDQo+ID4NCj4gPiArICAgICAgICBjZmdzID0gW10N Cj4gPg0KPiA+ICsgICAgICAgIHN0cnVjdF9lbmQgPSBGYWxzZQ0KPiA+DQo+ID4gKyAgICAgICAg Y29uZmlnX2RpY3QgPSBkaWN0KCkNCj4gPg0KPiA+ICsgICAgICAgIGluaXRfZGljdCA9IGRpY3Qo KQ0KPiA+DQo+ID4gKyAgICAgICAgaW5jbHVkZSA9IFsnJ10NCj4gPg0KPiA+ICsgICAgICAgIGZv ciBsaW5lIGluIGxpbmVzOg0KPiA+DQo+ID4gKyAgICAgICAgICAgIHJldCA9IHNlbGYucGFyc2Vf ZHNjX2xpbmUobGluZSwgY29uZmlnX2RpY3QsIGluaXRfZGljdCwgaW5jbHVkZSkNCj4gPg0KPiA+ ICsgICAgICAgICAgICBpZiByZXQ6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGlmICdwYWRk aW5nJyBpbiBpbml0X2RpY3Q6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBudW0gPSBp bml0X2RpY3RbJ3BhZGRpbmcnXQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgaW5pdF9k aWN0LmNsZWFyKCkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdfZGljdCA9 IHt9DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBjZmdzLmFwcGVuZChwYWRkaW5nX2Rp Y3QpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBwYWRkaW5nX2RpY3RbJ2NuYW1lJ10g PSAnVW51c2VkVXBkU3BhY2UlZCcgJQ0KPiBzZWxmLnVudXNlZF9pZHgNCj4gPg0KPiA+ICsgICAg ICAgICAgICAgICAgICAgIHBhZGRpbmdfZGljdFsnbGVuZ3RoJ10gPSAnMHgleCcgJSBudW0NCj4g Pg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdfZGljdFsndmFsdWUnXSA9ICd7IDAg fScNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYudW51c2VkX2lkeCArPSAxDQo+ ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGlmIGNmZ3MgYW5kIGNmZ3NbLTFd WydjbmFtZSddWzBdICE9ICdAJyBhbmQgY29uZmlnX2RpY3RbJ2NuYW1lJ11bMF0NCj4gPT0NCj4g PiAnQCc6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAjIGl0IGlzIGEgYml0IGZpZWxk LCBtYXJrIHRoZSBwcmV2aW91cyBvbmUgYXMgdmlydHVhbA0KPiA+DQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgY25hbWUgPSBjZmdzWy0xXVsnY25hbWUnXQ0KPiA+DQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgbmV3X2NmZyA9IGRpY3QoY2Znc1stMV0pDQo+ID4NCj4gPiArICAgICAgICAgICAg ICAgICAgICBuZXdfY2ZnWydjbmFtZSddID0gJ0AkU1RSVUNUJw0KPiA+DQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgY2Znc1stMV0uY2xlYXIoKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgY2Znc1stMV1bJ2NuYW1lJ10gPSBjbmFtZQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgY2Zncy5hcHBlbmQobmV3X2NmZykNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAgICAg ICAgICAgaWYgY2ZncyBhbmQgY2Znc1stMV1bJ2NuYW1lJ10gPT0gJ0NGR0hEUicgYW5kDQo+IGNv bmZpZ19kaWN0WydjbmFtZSddWzBdDQo+ID4gPT0gJzwnOg0KPiA+DQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgIyBzd2FwIENmZ0hlYWRlciBhbmQgdGhlIENGR19EQVRBIG9yZGVyDQo+ID4NCj4g PiArICAgICAgICAgICAgICAgICAgICBpZiAnOicgaW4gY29uZmlnX2RpY3RbJ2NuYW1lJ106DQo+ ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgIyByZXBsYWNlIHRoZSByZWFsIFRBRyBm b3IgQ0ZHX0RBVEENCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBjZmdzWy0xXVsn ZXhwYW5kJ10gPSBjZmdzWy0xXVsnZXhwYW5kJ10ucmVwbGFjZSgNCj4gPg0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ18kRkZGXycsICcweCVzJyAlDQo+ID4NCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19kaWN0WydjbmFtZSddLnNwbGl0KCc6JylbMV1b NDpdKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgY2Zncy5pbnNlcnQoLTEsIGNvbmZp Z19kaWN0KQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBlbHNlOg0KPiA+DQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgc2VsZi5wcm9jZXNzX2NvbmZpZyhjb25maWdfZGljdCkNCj4gPg0KPiA+ ICsgICAgICAgICAgICAgICAgICAgIGlmIHN0cnVjdF9lbmQ6DQo+ID4NCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0X2VuZCA9IEZhbHNlDQo+ID4NCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgY2Zncy5pbnNlcnQoLTEsIGNvbmZpZ19kaWN0KQ0KPiA+DQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBj ZmdzLmFwcGVuZChjb25maWdfZGljdCkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICBpZiBjb25maWdfZGljdFsnY25hbWUnXVswXSA9PSAnPic6DQo+ID4NCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdF9lbmQgPSBUcnVlDQo+ID4NCj4gPiArDQo+ID4NCj4g PiArICAgICAgICAgICAgICAgIGNvbmZpZ19kaWN0ID0gZGljdChpbml0X2RpY3QpDQo+ID4NCj4g PiArICAgICAgICByZXR1cm4gY2Zncw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICBkZWYgdmFy aWFibGVfZml4dXAoc2VsZiwgZWFjaCk6DQo+ID4NCj4gPiArICAgICAgICAiIiINCj4gPg0KPiA+ ICsgICAgICAgIEZpeCB1cCBzb21lIHZhcmlhYmxlIGRlZmluaXRpb25zIGZvciBTQkwuDQo+ID4N Cj4gPiArICAgICAgICAiIiINCj4gPg0KPiA+ICsgICAgICAgIGtleSA9IGVhY2gNCj4gPg0KPiA+ ICsgICAgICAgIHZhbCA9IHNlbGYuZ2VuX2NmZ19kYXRhLl9NYWNyb0RpY3RbZWFjaF0NCj4gPg0K PiA+ICsgICAgICAgIHJldHVybiBrZXksIHZhbA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICBk ZWYgdGVtcGxhdGVfZml4dXAoc2VsZiwgdG1wX25hbWUsIHRtcF9saXN0KToNCj4gPg0KPiA+ICsg ICAgICAgICIiIg0KPiA+DQo+ID4gKyAgICAgICAgRml4IHVwIHNvbWUgc3BlY2lhbCBjb25maWcg dGVtcGxhdGVzIGZvciBTQkwNCj4gPg0KPiA+ICsgICAgICAgICIiIg0KPiA+DQo+ID4gKyAgICAg ICAgcmV0dXJuDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgIGRlZiBjb25maWdfZml4dXAoc2Vs ZiwgY2ZnX2xpc3QpOg0KPiA+DQo+ID4gKyAgICAgICAgIiIiDQo+ID4NCj4gPiArICAgICAgICBG aXggdXAgc29tZSBzcGVjaWFsIGNvbmZpZyBpdGVtcyBmb3IgU0JMLg0KPiA+DQo+ID4gKyAgICAg ICAgIiIiDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICAjIEluc2VydCBGU1BUX1VQRC9G U1BNX1VQRC9GU1BTX1VQRCB0YWcgc28gYXMgdG8gY3JlYXRlIEMNCj4gc3RyY3R1cmUNCj4gPg0K PiA+ICsgICAgICAgIGlkeHMgPSBbXQ0KPiA+DQo+ID4gKyAgICAgICAgZm9yIGlkeCwgY2ZnIGlu IGVudW1lcmF0ZShjZmdfbGlzdCk6DQo+ID4NCj4gPiArICAgICAgICAgICAgaWYgY2ZnWydjbmFt ZSddLnN0YXJ0c3dpdGgoJzxGU1BfVVBEX0hFQURFUicpOg0KPiA+DQo+ID4gKyAgICAgICAgICAg ICAgICBpZHhzLmFwcGVuZChpZHgpDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICBpZiBs ZW4oaWR4cykgIT0gMzoNCj4gPg0KPiA+ICsgICAgICAgICAgICByZXR1cm4NCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICsgICAgICAgICMgSGFuZGxlIGluc2VydCBiYWNrd2FyZHMgc28gdGhhdCB0aGUg aW5kZXggZG9lcyBub3QgY2hhbmdlIGluIHRoZQ0KPiBsb29wDQo+ID4NCj4gPiArICAgICAgICBm c3BfY29tcCA9ICdTTVQnDQo+ID4NCj4gPiArICAgICAgICBpZHhfY29tcCA9IDANCj4gPg0KPiA+ ICsgICAgICAgIGZvciBpZHggaW4gaWR4c1s6Oi0xXToNCj4gPg0KPiA+ICsgICAgICAgICAgICAj IEFkZCBjdXJyZW50IEZTUD9fVVBEIHN0YXJ0IHRhZw0KPiA+DQo+ID4gKyAgICAgICAgICAgIGNm Z2ZpZ19kaWN0ID0ge30NCj4gPg0KPiA+ICsgICAgICAgICAgICBjZmdmaWdfZGljdFsnY25hbWUn XSA9ICc8RlNQJXNfVVBEJyAlIGZzcF9jb21wW2lkeF9jb21wXQ0KPiA+DQo+ID4gKyAgICAgICAg ICAgIGNmZ19saXN0Lmluc2VydChpZHgsIGNmZ2ZpZ19kaWN0KQ0KPiA+DQo+ID4gKyAgICAgICAg ICAgIGlmIGlkeF9jb21wIDwgMjoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgIyBBZGQgcHJl dmlvdXMgRlNQP19VUEQgZW5kIHRhZw0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBjZmdmaWdf ZGljdCA9IHt9DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGNmZ2ZpZ19kaWN0WydjbmFtZSdd ID0gJz5GU1Alc19VUEQnICUgZnNwX2NvbXBbaWR4X2NvbXAgKyAxXQ0KPiA+DQo+ID4gKyAgICAg ICAgICAgICAgICBjZmdfbGlzdC5pbnNlcnQoaWR4LCBjZmdmaWdfZGljdCkNCj4gPg0KPiA+ICsg ICAgICAgICAgICBpZHhfY29tcCArPSAxDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICAj IEFkZCBmaW5hbCBGU1BTX1VQRCBlbmQgdGFnDQo+ID4NCj4gPiArICAgICAgICBjZmdmaWdfZGlj dCA9IHt9DQo+ID4NCj4gPiArICAgICAgICBjZmdmaWdfZGljdFsnY25hbWUnXSA9ICc+RlNQJXNf VVBEJyAlIGZzcF9jb21wWzBdDQo+ID4NCj4gPiArICAgICAgICBjZmdfbGlzdC5hcHBlbmQoY2Zn ZmlnX2RpY3QpDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICByZXR1cm4NCj4gPg0KPiA+ ICsNCj4gPg0KPiA+ICsgICAgZGVmIGdldF9zZWN0aW9uX3JhbmdlKHNlbGYsIHNlY3Rpb25fbmFt ZSk6DQo+ID4NCj4gPiArICAgICAgICAiIiINCj4gPg0KPiA+ICsgICAgICAgIEV4dHJhY3QgbGlu ZSBudW1iZXIgcmFuZ2UgZnJvbSBjb25maWcgZmlsZSBmb3IgYSBnaXZlbiBzZWN0aW9uIG5hbWUu DQo+ID4NCj4gPiArICAgICAgICAiIiINCj4gPg0KPiA+ICsgICAgICAgIHN0YXJ0ID0gLTENCj4g Pg0KPiA+ICsgICAgICAgIGVuZCA9IC0xDQo+ID4NCj4gPiArICAgICAgICBmb3IgaWR4LCBsaW5l IGluIGVudW1lcmF0ZShzZWxmLmdlbl9jZmdfZGF0YS5fRHNjTGluZXMpOg0KPiA+DQo+ID4gKyAg ICAgICAgICAgIGlmIHN0YXJ0IDwgMCBhbmQgbGluZS5zdGFydHN3aXRoKCdbJXNdJyAlIHNlY3Rp b25fbmFtZSk6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIHN0YXJ0ID0gaWR4DQo+ID4NCj4g PiArICAgICAgICAgICAgZWxpZiBzdGFydCA+PSAwIGFuZCBsaW5lLnN0YXJ0c3dpdGgoJ1snKToN Cj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgZW5kID0gaWR4DQo+ID4NCj4gPiArICAgICAgICAg ICAgICAgIGJyZWFrDQo+ID4NCj4gPiArICAgICAgICBpZiBzdGFydCA9PSAtMToNCj4gPg0KPiA+ ICsgICAgICAgICAgICBzdGFydCA9IDANCj4gPg0KPiA+ICsgICAgICAgIGlmIGVuZCA9PSAtMToN Cj4gPg0KPiA+ICsgICAgICAgICAgICBlbmQgPSBsZW4oc2VsZi5nZW5fY2ZnX2RhdGEuX0RzY0xp bmVzKQ0KPiA+DQo+ID4gKyAgICAgICAgcmV0dXJuIHN0YXJ0LCBlbmQNCj4gPg0KPiA+ICsNCj4g Pg0KPiA+ICsgICAgZGVmIG5vcm1hbGl6ZV9maWxlX25hbWUoc2VsZiwgZmlsZSwgaXNfdGVtcD1G YWxzZSk6DQo+ID4NCj4gPiArICAgICAgICAiIiINCj4gPg0KPiA+ICsgICAgICAgIE5vcm1hbGl6 ZSBmaWxlIG5hbWUgY29udmVudGlvbiBzbyB0aGF0IGl0IGlzIGNvbnNpc3RlbnQuDQo+ID4NCj4g PiArICAgICAgICAiIiINCj4gPg0KPiA+ICsgICAgICAgIGlmIGZpbGUuZW5kc3dpdGgoJy5kc2Mn KToNCj4gPg0KPiA+ICsgICAgICAgICAgICBmaWxlID0gZmlsZVs6LTRdICsgJy55YW1sJw0KPiA+ DQo+ID4gKyAgICAgICAgZGlyX25hbWUgPSBvcy5wYXRoLmRpcm5hbWUoZmlsZSkNCj4gPg0KPiA+ ICsgICAgICAgIGJhc2VfbmFtZSA9IG9zLnBhdGguYmFzZW5hbWUoZmlsZSkNCj4gPg0KPiA+ICsg ICAgICAgIGlmIGlzX3RlbXA6DQo+ID4NCj4gPiArICAgICAgICAgICAgaWYgJ1RlbXBsYXRlXycg bm90IGluIGZpbGU6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGJhc2VfbmFtZSA9IGJhc2Vf bmFtZS5yZXBsYWNlKCdUZW1wbGF0ZScsICdUZW1wbGF0ZV8nKQ0KPiA+DQo+ID4gKyAgICAgICAg ZWxzZToNCj4gPg0KPiA+ICsgICAgICAgICAgICBpZiAnQ2ZnRGF0YV8nIG5vdCBpbiBmaWxlOg0K PiA+DQo+ID4gKyAgICAgICAgICAgICAgICBiYXNlX25hbWUgPSBiYXNlX25hbWUucmVwbGFjZSgn Q2ZnRGF0YScsICdDZmdEYXRhXycpDQo+ID4NCj4gPiArICAgICAgICBpZiBkaXJfbmFtZToNCj4g Pg0KPiA+ICsgICAgICAgICAgICBwYXRoID0gZGlyX25hbWUgKyAnLycgKyBiYXNlX25hbWUNCj4g Pg0KPiA+ICsgICAgICAgIGVsc2U6DQo+ID4NCj4gPiArICAgICAgICAgICAgcGF0aCA9IGJhc2Vf bmFtZQ0KPiA+DQo+ID4gKyAgICAgICAgcmV0dXJuIHBhdGgNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ ICsgICAgZGVmIG91dHB1dF92YXJpYWJsZShzZWxmKToNCj4gPg0KPiA+ICsgICAgICAgICIiIg0K PiA+DQo+ID4gKyAgICAgICAgT3V0cHV0IHZhcmlhYmxlIGJsb2NrIGludG8gYSBsaW5lIGxpc3Qu DQo+ID4NCj4gPiArICAgICAgICAiIiINCj4gPg0KPiA+ICsgICAgICAgIGxpbmVzID0gW10NCj4g Pg0KPiA+ICsgICAgICAgIGZvciBlYWNoIGluIHNlbGYuZ2VuX2NmZ19kYXRhLl9NYWNyb0RpY3Q6 DQo+ID4NCj4gPiArICAgICAgICAgICAga2V5LCB2YWx1ZSA9IHNlbGYudmFyaWFibGVfZml4dXAo ZWFjaCkNCj4gPg0KPiA+ICsgICAgICAgICAgICBsaW5lcy5hcHBlbmQoJyUtMzBzIDogJXMnICUg KGtleSwgdmFsdWUpKQ0KPiA+DQo+ID4gKyAgICAgICAgcmV0dXJuIGxpbmVzDQo+ID4NCj4gPiAr DQo+ID4NCj4gPiArICAgIGRlZiBvdXRwdXRfdGVtcGxhdGUoc2VsZik6DQo+ID4NCj4gPiArICAg ICAgICAiIiINCj4gPg0KPiA+ICsgICAgICAgIE91dHB1dCB0ZW1wbGF0ZSBibG9jayBpbnRvIGEg bGluZSBsaXN0Lg0KPiA+DQo+ID4gKyAgICAgICAgIiIiDQo+ID4NCj4gPiArICAgICAgICBzZWxm Lm9mZnNldCA9IDANCj4gPg0KPiA+ICsgICAgICAgIHNlbGYuYmFzZV9vZmZzZXQgPSAwDQo+ID4N Cj4gPiArICAgICAgICBzdGFydCwgZW5kID0gc2VsZi5nZXRfc2VjdGlvbl9yYW5nZSgnUGNkc0R5 bmFtaWNWcGQuVG1wJykNCj4gPg0KPiA+ICsgICAgICAgIGJzZl90ZW1wX2RpY3QsIHRlbXBfZmls ZV9kaWN0ID0NCj4gPiBzZWxmLnByb2Nlc3NfdGVtcGxhdGVfbGluZXMoc2VsZi5nZW5fY2ZnX2Rh dGEuX0RzY0xpbmVzW3N0YXJ0OmVuZF0pDQo+ID4NCj4gPiArICAgICAgICB0ZW1wbGF0ZV9kaWN0 ID0gZGljdCgpDQo+ID4NCj4gPiArICAgICAgICBsaW5lcyA9IFtdDQo+ID4NCj4gPiArICAgICAg ICBmaWxlX2xpbmVzID0ge30NCj4gPg0KPiA+ICsgICAgICAgIGxhc3RfZmlsZSA9ICcuJw0KPiA+ DQo+ID4gKyAgICAgICAgZmlsZV9saW5lc1tsYXN0X2ZpbGVdID0gW10NCj4gPg0KPiA+ICsNCj4g Pg0KPiA+ICsgICAgICAgIGZvciB0bXBfbmFtZSBpbiB0ZW1wX2ZpbGVfZGljdDoNCj4gPg0KPiA+ ICsgICAgICAgICAgICB0ZW1wX2ZpbGVfZGljdFt0bXBfbmFtZV1bLTFdID0NCj4gPiBzZWxmLm5v cm1hbGl6ZV9maWxlX25hbWUodGVtcF9maWxlX2RpY3RbdG1wX25hbWVdWy0xXSwgVHJ1ZSkNCj4g Pg0KPiA+ICsgICAgICAgICAgICBpZiBsZW4odGVtcF9maWxlX2RpY3RbdG1wX25hbWVdKSA+IDE6 DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIHRlbXBfZmlsZV9kaWN0W3RtcF9uYW1lXVstMl0g PQ0KPiA+IHNlbGYubm9ybWFsaXplX2ZpbGVfbmFtZSh0ZW1wX2ZpbGVfZGljdFt0bXBfbmFtZV1b LTJdLCBUcnVlKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgZm9yIHRtcF9uYW1lIGlu IGJzZl90ZW1wX2RpY3Q6DQo+ID4NCj4gPiArICAgICAgICAgICAgZmlsZSA9IHRlbXBfZmlsZV9k aWN0W3RtcF9uYW1lXVstMV0NCj4gPg0KPiA+ICsgICAgICAgICAgICBpZiBsYXN0X2ZpbGUgIT0g ZmlsZSBhbmQgbGVuKHRlbXBfZmlsZV9kaWN0W3RtcF9uYW1lXSkgPiAxOg0KPiA+DQo+ID4gKyAg ICAgICAgICAgICAgICBpbmNfZmlsZSA9IHRlbXBfZmlsZV9kaWN0W3RtcF9uYW1lXVstMl0NCj4g Pg0KPiA+ICsgICAgICAgICAgICAgICAgZmlsZV9saW5lc1tpbmNfZmlsZV0uZXh0ZW5kKFsnJywg Jy0gIWluY2x1ZGUgJXMnICUNCj4gPiB0ZW1wX2ZpbGVfZGljdFt0bXBfbmFtZV1bLTFdLCAnJ10p DQo+ID4NCj4gPiArICAgICAgICAgICAgbGFzdF9maWxlID0gZmlsZQ0KPiA+DQo+ID4gKyAgICAg ICAgICAgIGlmIGZpbGUgbm90IGluIGZpbGVfbGluZXM6DQo+ID4NCj4gPiArICAgICAgICAgICAg ICAgIGZpbGVfbGluZXNbZmlsZV0gPSBbXQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIGxpbmVzID0g ZmlsZV9saW5lc1tmaWxlXQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIHRleHQgPSBic2ZfdGVtcF9k aWN0W3RtcF9uYW1lXQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIHRtcF9saXN0ID0gc2VsZi5wcm9j ZXNzX29wdGlvbl9saW5lcyh0ZXh0KQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIHNlbGYudGVtcGxh dGVfZml4dXAodG1wX25hbWUsIHRtcF9saXN0KQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIHRlbXBs YXRlX2RpY3RbdG1wX25hbWVdID0gdG1wX2xpc3QNCj4gPg0KPiA+ICsgICAgICAgICAgICBsaW5l cy5hcHBlbmQoJyVzOiA+JyAlIHRtcF9uYW1lKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIGxpbmVz LmV4dGVuZChzZWxmLm91dHB1dF9kaWN0KHRtcF9saXN0LCBGYWxzZSlbJy4nXSkNCj4gPg0KPiA+ ICsgICAgICAgICAgICBsaW5lcy5hcHBlbmQoJ1xuJykNCj4gPg0KPiA+ICsgICAgICAgIHJldHVy biBmaWxlX2xpbmVzDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgIGRlZiBvdXRwdXRfY29uZmln KHNlbGYpOg0KPiA+DQo+ID4gKyAgICAgICAgIiIiDQo+ID4NCj4gPiArICAgICAgICBPdXRwdXQg Y29uZmlnIGJsb2NrIGludG8gYSBsaW5lIGxpc3QuDQo+ID4NCj4gPiArICAgICAgICAiIiINCj4g Pg0KPiA+ICsgICAgICAgIHNlbGYub2Zmc2V0ID0gMA0KPiA+DQo+ID4gKyAgICAgICAgc2VsZi5i YXNlX29mZnNldCA9IDANCj4gPg0KPiA+ICsgICAgICAgIHN0YXJ0LCBlbmQgPSBzZWxmLmdldF9z ZWN0aW9uX3JhbmdlKCdQY2RzRHluYW1pY1ZwZC5VcGQnKQ0KPiA+DQo+ID4gKyAgICAgICAgY2Zn cyA9DQo+IHNlbGYucHJvY2Vzc19vcHRpb25fbGluZXMoc2VsZi5nZW5fY2ZnX2RhdGEuX0RzY0xp bmVzW3N0YXJ0OmVuZF0pDQo+ID4NCj4gPiArICAgICAgICBzZWxmLmNvbmZpZ19maXh1cChjZmdz KQ0KPiA+DQo+ID4gKyAgICAgICAgZmlsZV9saW5lcyA9IHNlbGYub3V0cHV0X2RpY3QoY2Zncywg VHJ1ZSkNCj4gPg0KPiA+ICsgICAgICAgIHJldHVybiBmaWxlX2xpbmVzDQo+ID4NCj4gPiArDQo+ ID4NCj4gPiArICAgIGRlZiBvdXRwdXRfZGljdChzZWxmLCBjZmdzLCBpc19jb25maWdzKToNCj4g Pg0KPiA+ICsgICAgICAgICIiIg0KPiA+DQo+ID4gKyAgICAgICAgT3V0cHV0IG9uZSBjb25maWcg aXRlbSBpbnRvIGEgbGluZSBsaXN0Lg0KPiA+DQo+ID4gKyAgICAgICAgIiIiDQo+ID4NCj4gPiAr ICAgICAgICBmaWxlX2xpbmVzID0ge30NCj4gPg0KPiA+ICsgICAgICAgIGxldmVsID0gMA0KPiA+ DQo+ID4gKyAgICAgICAgZmlsZSA9ICcuJw0KPiA+DQo+ID4gKyAgICAgICAgZm9yIGVhY2ggaW4g Y2ZnczoNCj4gPg0KPiA+ICsgICAgICAgICAgICBpZiAnbGVuZ3RoJyBpbiBlYWNoIGFuZCBpbnQo ZWFjaFsnbGVuZ3RoJ10sIDApID09IDA6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGNvbnRp bnVlDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICAgICAgaWYgJ2luY2x1ZGUnIGluIGVh Y2g6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGlmIGVhY2hbJ2luY2x1ZGUnXToNCj4gPg0K PiA+ICsgICAgICAgICAgICAgICAgICAgIGVhY2hbJ2luY2x1ZGUnXSA9IHNlbGYubm9ybWFsaXpl X2ZpbGVfbmFtZShlYWNoWydpbmNsdWRlJ10pDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAg ICBmaWxlX2xpbmVzW2ZpbGVdLmV4dGVuZChbJycsICctICFpbmNsdWRlICVzJyAlIGVhY2hbJ2lu Y2x1ZGUnXSwgJyddKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgZmlsZSA9IGVhY2hb J2luY2x1ZGUnXQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBlbHNlOg0KPiA+DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgZmlsZSA9ICcuJw0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBj b250aW51ZQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgICAgIGlmIGZpbGUgbm90IGlu IGZpbGVfbGluZXM6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGZpbGVfbGluZXNbZmlsZV0g PSBbXQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgICAgIGxpbmVzID0gZmlsZV9saW5l c1tmaWxlXQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIG5hbWUgPSBlYWNoWydjbmFtZSddDQo+ID4N Cj4gPiArDQo+ID4NCj4gPiArICAgICAgICAgICAgcHJlZml4ID0gbmFtZVswXQ0KPiA+DQo+ID4g KyAgICAgICAgICAgIGlmIHByZWZpeCA9PSAnPCc6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAg IGxldmVsICs9IDENCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAgICAgICBwYWRkaW5nID0g JyAgJyAqIGxldmVsDQo+ID4NCj4gPiArICAgICAgICAgICAgaWYgcHJlZml4IG5vdCBpbiAnPD5A JzoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgcGFkZGluZyArPSAnICAnDQo+ID4NCj4gPiAr ICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgbmFtZSA9IG5hbWVb MTpdDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGlmIHByZWZpeCA9PSAnQCc6DQo+ID4NCj4g PiArICAgICAgICAgICAgICAgICAgICBwYWRkaW5nICs9ICcgICAgJw0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gKyAgICAgICAgICAgIGlmICc6JyBpbiBuYW1lOg0KPiA+DQo+ID4gKyAgICAgICAgICAg ICAgICBwYXJ0cyA9IG5hbWUuc3BsaXQoJzonKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBu YW1lID0gcGFydHNbMF0NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAgICAgICBwYWRkaW5n ID0gcGFkZGluZ1syOl0gaWYgaXNfY29uZmlncyBlbHNlIHBhZGRpbmcNCj4gPg0KPiA+ICsNCj4g Pg0KPiA+ICsgICAgICAgICAgICBpZiBwcmVmaXggIT0gJz4nOg0KPiA+DQo+ID4gKyAgICAgICAg ICAgICAgICBpZiAnZXhwYW5kJyBpbiBlYWNoOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgbGluZXMuYXBwZW5kKCclcy0gJXMnICUgKHBhZGRpbmcsIGVhY2hbJ2V4cGFuZCddKSkNCj4g Pg0KPiA+ICsgICAgICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAg ICAgIGxpbmVzLmFwcGVuZCgnJXMtICUtMTJzIDonICUgKHBhZGRpbmcsIG5hbWUpKQ0KPiA+DQo+ ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgICAgIGZvciBmaWVsZCBpbiBlYWNoOg0KPiA+DQo+ID4g KyAgICAgICAgICAgICAgICBpZiBmaWVsZCBpbiBbJ2NuYW1lJywgJ2V4cGFuZCcsICdpbmNsdWRl J106DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBjb250aW51ZQ0KPiA+DQo+ID4gKyAg ICAgICAgICAgICAgICB2YWx1ZV9zdHIgPSBzZWxmLmZvcm1hdF92YWx1ZShmaWVsZCwgZWFjaFtm aWVsZF0sIHBhZGRpbmcgKyAnICcgKiAxNikNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgZnVs bF9saW5lID0gJyAgJXMgICUtMTJzIDogJXMnICUgKHBhZGRpbmcsIGZpZWxkLCB2YWx1ZV9zdHIp DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGxpbmVzLmV4dGVuZChmdWxsX2xpbmUuc3BsaXRs aW5lcygpKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgICAgIGlmIHByZWZpeCA9PSAn Pic6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGxldmVsIC09IDENCj4gPg0KPiA+ICsgICAg ICAgICAgICAgICAgaWYgbGV2ZWwgPT0gMDoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAg IGxpbmVzLmFwcGVuZCgnJykNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAgIHJldHVybiBm aWxlX2xpbmVzDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArZGVmIGJzZl90b19k c2MoYnNmX2ZpbGUsIGRzY19maWxlKToNCj4gPg0KPiA+ICsgICAgZnNwX2RzYyA9IENGc3BCc2Yy RHNjKGJzZl9maWxlKQ0KPiA+DQo+ID4gKyAgICBkc2NfbGluZXMgPSBmc3BfZHNjLmdldF9kc2Nf bGluZXMoKQ0KPiA+DQo+ID4gKyAgICBmZCA9IG9wZW4oZHNjX2ZpbGUsICd3JykNCj4gPg0KPiA+ ICsgICAgZmQud3JpdGUoJ1xuJy5qb2luKGRzY19saW5lcykpDQo+ID4NCj4gPiArICAgIGZkLmNs b3NlKCkNCj4gPg0KPiA+ICsgICAgcmV0dXJuDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArDQo+ID4N Cj4gPiArZGVmIGRzY190b195YW1sKGRzY19maWxlLCB5YW1sX2ZpbGUpOg0KPiA+DQo+ID4gKyAg ICBkc2MyeWFtbCA9IENGc3BEc2MyWWFtbCgpDQo+ID4NCj4gPiArICAgIGRzYzJ5YW1sLmxvYWRf Y29uZmlnX2RhdGFfZnJvbV9kc2MoZHNjX2ZpbGUpDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAg IGNmZ3MgPSB7fQ0KPiA+DQo+ID4gKyAgICBmb3IgY2ZnIGluIFsnVGVtcGxhdGUnLCAnT3B0aW9u J106DQo+ID4NCj4gPiArICAgICAgICBpZiBjZmcgPT0gJ1RlbXBsYXRlJzoNCj4gPg0KPiA+ICsg ICAgICAgICAgICBmaWxlX2xpbmVzID0gZHNjMnlhbWwub3V0cHV0X3RlbXBsYXRlKCkNCj4gPg0K PiA+ICsgICAgICAgIGVsc2U6DQo+ID4NCj4gPiArICAgICAgICAgICAgZmlsZV9saW5lcyA9IGRz YzJ5YW1sLm91dHB1dF9jb25maWcoKQ0KPiA+DQo+ID4gKyAgICAgICAgZm9yIGZpbGUgaW4gZmls ZV9saW5lczoNCj4gPg0KPiA+ICsgICAgICAgICAgICBsaW5lcyA9IGZpbGVfbGluZXNbZmlsZV0N Cj4gPg0KPiA+ICsgICAgICAgICAgICBpZiBmaWxlID09ICcuJzoNCj4gPg0KPiA+ICsgICAgICAg ICAgICAgICAgY2Znc1tjZmddID0gbGluZXMNCj4gPg0KPiA+ICsgICAgICAgICAgICBlbHNlOg0K PiA+DQo+ID4gKyAgICAgICAgICAgICAgICBpZignLycgaW4gZmlsZSBvciAnXFwnIGluIGZpbGUp Og0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgY29udGludWUNCj4gPg0KPiA+ICsgICAg ICAgICAgICAgICAgZmlsZSA9IG9zLnBhdGguYmFzZW5hbWUoZmlsZSkNCj4gPg0KPiA+ICsgICAg ICAgICAgICAgICAgZm8gPSBvcGVuKG9zLnBhdGguam9pbihmaWxlKSwgJ3cnKQ0KPiA+DQo+ID4g KyAgICAgICAgICAgICAgICBmby53cml0ZShfX2NvcHlyaWdodF90bXBfXyAlIChjZmcsIGRhdGUu dG9kYXkoKS55ZWFyKSArICdcblxuJykNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgZm9yIGxp bmUgaW4gbGluZXM6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBmby53cml0ZShsaW5l ICsgJ1xuJykNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgZm8uY2xvc2UoKQ0KPiA+DQo+ID4g Kw0KPiA+DQo+ID4gKyAgICB2YXJpYWJsZXMgPSBkc2MyeWFtbC5vdXRwdXRfdmFyaWFibGUoKQ0K PiA+DQo+ID4gKyAgICBmbyA9IG9wZW4oeWFtbF9maWxlLCAndycpDQo+ID4NCj4gPiArICAgIGZv LndyaXRlKF9fY29weXJpZ2h0X3RtcF9fICUgKCdEZWZhdWx0JywgZGF0ZS50b2RheSgpLnllYXIp KQ0KPiA+DQo+ID4gKyAgICBpZiBsZW4odmFyaWFibGVzKSA+IDA6DQo+ID4NCj4gPiArICAgICAg ICBmby53cml0ZSgnXG5cbnZhcmlhYmxlOlxuJykNCj4gPg0KPiA+ICsgICAgICAgIGZvciBsaW5l IGluIHZhcmlhYmxlczoNCj4gPg0KPiA+ICsgICAgICAgICAgICBmby53cml0ZSgnICAnICsgbGlu ZSArICdcbicpDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgIGZvLndyaXRlKCdcblxudGVtcGxh dGU6XG4nKQ0KPiA+DQo+ID4gKyAgICBmb3IgbGluZSBpbiBjZmdzWydUZW1wbGF0ZSddOg0KPiA+ DQo+ID4gKyAgICAgICAgZm8ud3JpdGUoJyAgJyArIGxpbmUgKyAnXG4nKQ0KPiA+DQo+ID4gKw0K PiA+DQo+ID4gKyAgICBmby53cml0ZSgnXG5cbmNvbmZpZ3M6XG4nKQ0KPiA+DQo+ID4gKyAgICBm b3IgbGluZSBpbiBjZmdzWydPcHRpb24nXToNCj4gPg0KPiA+ICsgICAgICAgIGZvLndyaXRlKCcg ICcgKyBsaW5lICsgJ1xuJykNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgZm8uY2xvc2UoKQ0K PiA+DQo+ID4gKw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK2RlZiBnZXRfZnNwX25hbWVfZnJvbV9w YXRoKGJzZl9maWxlKToNCj4gPg0KPiA+ICsgICAgbmFtZSA9ICcnDQo+ID4NCj4gPiArICAgIHBh cnRzID0gYnNmX2ZpbGUuc3BsaXQob3Muc2VwKQ0KPiA+DQo+ID4gKyAgICBmb3IgcGFydCBpbiBw YXJ0czoNCj4gPg0KPiA+ICsgICAgICAgIGlmIHBhcnQuZW5kc3dpdGgoJ0ZzcEJpblBrZycpOg0K PiA+DQo+ID4gKyAgICAgICAgICAgIG5hbWUgPSBwYXJ0WzotOV0NCj4gPg0KPiA+ICsgICAgICAg ICAgICBicmVhaw0KPiA+DQo+ID4gKyAgICBpZiBub3QgbmFtZToNCj4gPg0KPiA+ICsgICAgICAg IHJhaXNlIEV4Y2VwdGlvbignQ291bGQgbm90IGdldCBGU1AgbmFtZSBmcm9tIGZpbGUgcGF0aCEn KQ0KPiA+DQo+ID4gKyAgICByZXR1cm4gbmFtZQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gK2RlZiB1c2FnZSgpOg0KPiA+DQo+ID4gKyAgICBwcmludCgnXG4nLmpvaW4oWw0KPiA+ DQo+ID4gKyAgICAgICAgICAiRnNwRHNjQnNmMllhbWwgVmVyc2lvbiAwLjEwIiwNCj4gPg0KPiA+ ICsgICAgICAgICAgIlVzYWdlOiIsDQo+ID4NCj4gPiArICAgICAgICAgICIgICAgRnNwRHNjQnNm MllhbWwgIEJzZkZpbGV8RHNjRmlsZSAgWWFtbEZpbGUiDQo+ID4NCj4gPiArICAgICAgICAgIF0p KQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK2RlZiBtYWluKCk6DQo+ID4NCj4g PiArICAgICMNCj4gPg0KPiA+ICsgICAgIyBQYXJzZSB0aGUgb3B0aW9ucyBhbmQgYXJncw0KPiA+ DQo+ID4gKyAgICAjDQo+ID4NCj4gPiArICAgIGFyZ2MgPSBsZW4oc3lzLmFyZ3YpDQo+ID4NCj4g PiArICAgIGlmIGFyZ2MgPCAzOg0KPiA+DQo+ID4gKyAgICAgICAgdXNhZ2UoKQ0KPiA+DQo+ID4g KyAgICAgICAgcmV0dXJuIDENCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgYnNmX2ZpbGUgPSBz eXMuYXJndlsxXQ0KPiA+DQo+ID4gKyAgICB5YW1sX2ZpbGUgPSBzeXMuYXJndlsyXQ0KPiA+DQo+ ID4gKyAgICBpZiBvcy5wYXRoLmlzZGlyKHlhbWxfZmlsZSk6DQo+ID4NCj4gPiArICAgICAgICB5 YW1sX2ZpbGUgPSBvcy5wYXRoLmpvaW4oeWFtbF9maWxlLCBnZXRfZnNwX25hbWVfZnJvbV9wYXRo KGJzZl9maWxlKQ0KPiArDQo+ID4gJy55YW1sJykNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAg aWYgYnNmX2ZpbGUuZW5kc3dpdGgoJy5kc2MnKToNCj4gPg0KPiA+ICsgICAgICAgIGRzY19maWxl ID0gYnNmX2ZpbGUNCj4gPg0KPiA+ICsgICAgICAgIGJzZl9maWxlID0gJycNCj4gPg0KPiA+ICsg ICAgZWxzZToNCj4gPg0KPiA+ICsgICAgICAgIGRzY19maWxlID0gb3MucGF0aC5zcGxpdGV4dCh5 YW1sX2ZpbGUpWzBdICsgJy5kc2MnDQo+ID4NCj4gPiArICAgICAgICBic2ZfdG9fZHNjKGJzZl9m aWxlLCBkc2NfZmlsZSkNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgZHNjX3RvX3lhbWwoZHNj X2ZpbGUsIHlhbWxfZmlsZSkNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgcHJpbnQoIiclcycg d2FzIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5ISIgJSB5YW1sX2ZpbGUpDQo+ID4NCj4gPiArDQo+ID4N Cj4gPiArICAgIHJldHVybiAwDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArDQo+ID4NCj4gPiAraWYg X19uYW1lX18gPT0gJ19fbWFpbl9fJzoNCj4gPg0KPiA+ICsgICAgc3lzLmV4aXQobWFpbigpKQ0K PiA+DQo+ID4gZGlmZiAtLWdpdCBhL0ludGVsRnNwMlBrZy9Ub29scy9HZW5DZmdPcHQucHkNCj4g PiBiL0ludGVsRnNwMlBrZy9Ub29scy9HZW5DZmdPcHQucHkNCj4gPiBpbmRleCBhMGI4YmJhODFl Li42NjA4MjRiNzQwIDEwMDY0NA0KPiA+IC0tLSBhL0ludGVsRnNwMlBrZy9Ub29scy9HZW5DZmdP cHQucHkNCj4gPiArKysgYi9JbnRlbEZzcDJQa2cvVG9vbHMvR2VuQ2ZnT3B0LnB5DQo+ID4gQEAg LTEsNiArMSw2IEBADQo+ID4gICMjIEAgR2VuQ2ZnT3B0LnB5DQo+ID4NCj4gPiAgIw0KPiA+DQo+ ID4gLSMgQ29weXJpZ2h0IChjKSAyMDE0IC0gMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+DQo+ID4gKyMgQ29weXJpZ2h0IChjKSAyMDE0IC0gMjAy MSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+DQo+ID4g ICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPg0KPiA+ ICAjDQo+ID4NCj4gPiAgIyMNCj4gPg0KPiA+IEBAIC0yODMsMTAgKzI4MywxMCBAQCBjbGFzcyBD TG9naWNhbEV4cHJlc3Npb246DQo+ID4gICAgICAgICAgcmV0dXJuIFJlc3VsdA0KPiA+DQo+ID4N Cj4gPg0KPiA+ICBjbGFzcyBDR2VuQ2ZnT3B0Og0KPiA+DQo+ID4gLSAgICBkZWYgX19pbml0X18o c2VsZik6DQo+ID4NCj4gPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBNb2RlID0gJycpOg0KPiA+ DQo+ID4gICAgICAgICAgc2VsZi5EZWJ1ZyAgICAgICAgICA9IEZhbHNlDQo+ID4NCj4gPiAgICAg ICAgICBzZWxmLkVycm9yICAgICAgICAgID0gJycNCj4gPg0KPiA+IC0NCj4gPg0KPiA+ICsgICAg ICAgIHNlbGYuTW9kZSAgICAgICAgICAgPSBNb2RlDQo+ID4NCj4gPiAgICAgICAgICBzZWxmLl9H bG9iYWxEYXRhRGVmID0gIiIiDQo+ID4NCj4gPiAgR2xvYmFsRGF0YURlZg0KPiA+DQo+ID4gICAg ICBTS1VJRCA9IDAsICJERUZBVUxUIg0KPiA+DQo+ID4gQEAgLTMwMCwxOCArMzAwLDIwIEBAIExp c3QgJkVOX0RJUw0KPiA+ICBFbmRMaXN0DQo+ID4NCj4gPg0KPiA+DQo+ID4gICIiIg0KPiA+DQo+ ID4gLQ0KPiA+DQo+ID4gLSAgICAgICAgc2VsZi5fQnNmS2V5TGlzdCAgICA9DQo+IFsnRklORCcs J05BTUUnLCdIRUxQJywnVFlQRScsJ1BBR0UnLCdPUFRJT04nLCdPUkRFUiddDQo+ID4NCj4gPiAr ICAgICAgICBzZWxmLl9Cc2ZLZXlMaXN0ICAgID0gWydGSU5EJywnTkFNRScsJ0hFTFAnLCdUWVBF JywnUEFHRScsICdQQUdFUycsDQo+ICdCTE9DSycsDQo+ID4gJ09QVElPTicsJ0NPTkRJVElPTics J09SREVSJywgJ01BUktFUicsICdTVUJUJ10NCj4gPg0KPiA+ICAgICAgICAgIHNlbGYuX0hkcktl eUxpc3QgICAgPSBbJ0hFQURFUicsJ1NUUlVDVCcsICdFTUJFRCcsICdDT01NRU5UJ10NCj4gPg0K PiA+ICAgICAgICAgIHNlbGYuX0J1aWRpbk9wdGlvbiAgPSB7JyRFTl9ESVMnIDogJ0VOX0RJUyd9 DQo+ID4NCj4gPg0KPiA+DQo+ID4gICAgICAgICAgc2VsZi5fTWFjcm9EaWN0ICAgPSB7fQ0KPiA+ DQo+ID4gKyAgICAgICAgc2VsZi5fVmFyRGljdCAgICAgPSB7fQ0KPiA+DQo+ID4gICAgICAgICAg c2VsZi5fUGNkc0RpY3QgICAgPSB7fQ0KPiA+DQo+ID4gICAgICAgICAgc2VsZi5fQ2ZnQmxrRGlj dCAgPSB7fQ0KPiA+DQo+ID4gICAgICAgICAgc2VsZi5fQ2ZnUGFnZURpY3QgPSB7fQ0KPiA+DQo+ ID4gKyAgICAgICAgc2VsZi5fQnNmVGVtcERpY3QgPSB7fQ0KPiA+DQo+ID4gICAgICAgICAgc2Vs Zi5fQ2ZnSXRlbUxpc3QgPSBbXQ0KPiA+DQo+ID4gKyAgICAgICAgc2VsZi5fRHNjTGluZXMgICAg PSBbXQ0KPiA+DQo+ID4gICAgICAgICAgc2VsZi5fRHNjRmlsZSAgICAgPSAnJw0KPiA+DQo+ID4g LSAgICAgICAgc2VsZi5fRnZEaXIgICAgICAgPSAnJw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gICAg ICAgICAgc2VsZi5fTWFwVmVyICAgICAgPSAwDQo+ID4NCj4gPiAgICAgICAgICBzZWxmLl9Ec2NU aW1lICAgICA9IDANCj4gPg0KPiA+DQo+ID4NCj4gPiBAQCAtMzUxLDcgKzM1Myw3IEBAIEVuZExp c3QNCj4gPiAgICAgICAgICAgICAgcHJpbnQgKCJJTkZPIDogRXZhbCBJZmRlZiBbJXNdIDogJXMi ICUgKE1hY3JvLCBSZXN1bHQpKQ0KPiA+DQo+ID4gICAgICAgICAgcmV0dXJuICBSZXN1bHQNCj4g Pg0KPiA+DQo+ID4NCj4gPiAtICAgIGRlZiBFeHBhbmRNYWNyb3MgKHNlbGYsIElucHV0KToNCj4g Pg0KPiA+ICsgICAgZGVmIEV4cGFuZE1hY3JvcyAoc2VsZiwgSW5wdXQsIFByZXNlcnZlID0gRmFs c2UpOg0KPiA+DQo+ID4gICAgICAgICAgTGluZSA9IElucHV0DQo+ID4NCj4gPiAgICAgICAgICBN YXRjaCA9IHJlLmZpbmRhbGwoIlwkXChcdytcKSIsIElucHV0KQ0KPiA+DQo+ID4gICAgICAgICAg aWYgTWF0Y2g6DQo+ID4NCj4gPiBAQCAtMzYyLDcgKzM2NCw4IEBAIEVuZExpc3QNCj4gPiAgICAg ICAgICAgICAgICBlbHNlOg0KPiA+DQo+ID4gICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuRGVi dWc6DQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICgiV0FSTiA6ICVzIGlz IG5vdCBkZWZpbmVkIiAlIEVhY2gpDQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgTGluZSA9 IExpbmUucmVwbGFjZShFYWNoLCBFYWNoWzI6LTFdKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAg ICAgIGlmIG5vdCBQcmVzZXJ2ZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgTGlu ZSA9IExpbmUucmVwbGFjZShFYWNoLCBFYWNoWzI6LTFdKQ0KPiA+DQo+ID4gICAgICAgICAgcmV0 dXJuIExpbmUNCj4gPg0KPiA+DQo+ID4NCj4gPiAgICAgIGRlZiBFeHBhbmRQY2RzIChzZWxmLCBJ bnB1dCk6DQo+ID4NCj4gPiBAQCAtMzg2LDYgKzM4OSw3MCBAQCBFbmRMaXN0DQo+ID4gICAgICAg ICAgICAgIHByaW50ICgiSU5GTyA6IEV2YWwgRXhwcmVzcyBbJXNdIDogJXMiICUgKEV4cHIsIFJl c3VsdCkpDQo+ID4NCj4gPiAgICAgICAgICByZXR1cm4gUmVzdWx0DQo+ID4NCj4gPg0KPiA+DQo+ ID4gKyAgICBkZWYgVmFsdWVUb0J5dGVBcnJheSAoc2VsZiwgVmFsdWVTdHIsIExlbmd0aCk6DQo+ ID4NCj4gPiArICAgICAgICBNYXRjaCA9IHJlLm1hdGNoKCJce1xzKkZJTEU6KC4rKVx9IiwgVmFs dWVTdHIpDQo+ID4NCj4gPiArICAgICAgICBpZiBNYXRjaDoNCj4gPg0KPiA+ICsgICAgICAgICAg RmlsZUxpc3QgPSBNYXRjaC5ncm91cCgxKS5zcGxpdCgnLCcpDQo+ID4NCj4gPiArICAgICAgICAg IFJlc3VsdCAgPSBieXRlYXJyYXkoKQ0KPiA+DQo+ID4gKyAgICAgICAgICBmb3IgRmlsZSBpbiBG aWxlTGlzdDoNCj4gPg0KPiA+ICsgICAgICAgICAgICBGaWxlID0gRmlsZS5zdHJpcCgpDQo+ID4N Cj4gPiArICAgICAgICAgICAgQmluUGF0aCA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUo c2VsZi5fRHNjRmlsZSksIEZpbGUpDQo+ID4NCj4gPiArICAgICAgICAgICAgUmVzdWx0LmV4dGVu ZChieXRlYXJyYXkob3BlbihCaW5QYXRoLCAncmInKS5yZWFkKCkpKQ0KPiA+DQo+ID4gKyAgICAg ICAgZWxzZToNCj4gPg0KPiA+ICsgICAgICAgICAgICB0cnk6DQo+ID4NCj4gPiArICAgICAgICAg ICAgICAgIFJlc3VsdCAgPSBieXRlYXJyYXkoc2VsZi5WYWx1ZVRvTGlzdChWYWx1ZVN0ciwgTGVu Z3RoKSkNCj4gPg0KPiA+ICsgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBlOg0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24gKCJCeXRlcyBpbiAnJXMnIG11 c3QgYmUgaW4gcmFuZ2UgMH4yNTUgISIgJQ0KPiBWYWx1ZVN0cikNCj4gPg0KPiA+ICsgICAgICAg IGlmIGxlbihSZXN1bHQpIDwgTGVuZ3RoOg0KPiA+DQo+ID4gKyAgICAgICAgICAgIFJlc3VsdC5l eHRlbmQoYidceDAwJyAqIChMZW5ndGggLSBsZW4oUmVzdWx0KSkpDQo+ID4NCj4gPiArICAgICAg ICBlbGlmIGxlbihSZXN1bHQpID4gTGVuZ3RoOg0KPiA+DQo+ID4gKyAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbiAoIlZhbHVlICclcycgaXMgdG9vIGJpZyB0byBmaXQgaW50byAlZCBieXRlcyAh IiAlDQo+IChWYWx1ZVN0ciwNCj4gPiBMZW5ndGgpKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAg ICAgICAgcmV0dXJuIFJlc3VsdFs6TGVuZ3RoXQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICBk ZWYgVmFsdWVUb0xpc3QgKHNlbGYsIFZhbHVlU3RyLCBMZW5ndGgpOg0KPiA+DQo+ID4gKyAgICAg ICAgaWYgVmFsdWVTdHJbMF0gPT0gJ3snOg0KPiA+DQo+ID4gKyAgICAgICAgICAgIFJlc3VsdCA9 IFtdDQo+ID4NCj4gPiArICAgICAgICAgICAgQmluTGlzdCA9IFZhbHVlU3RyWzE6LTFdLnNwbGl0 KCcsJykNCj4gPg0KPiA+ICsgICAgICAgICAgICBJbkJpdEZpZWxkICAgICA9IEZhbHNlDQo+ID4N Cj4gPiArICAgICAgICAgICAgTGFzdEluQml0RmllbGQgPSBGYWxzZQ0KPiA+DQo+ID4gKyAgICAg ICAgICAgIFZhbHVlICAgICAgICAgID0gMA0KPiA+DQo+ID4gKyAgICAgICAgICAgIEJpdExlbiAg ICAgICAgID0gMA0KPiA+DQo+ID4gKyAgICAgICAgICAgIGZvciBFbGVtZW50IGluIEJpbkxpc3Q6 DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIEluQml0RmllbGQgPSBGYWxzZQ0KPiA+DQo+ID4g KyAgICAgICAgICAgICAgICBFYWNoID0gRWxlbWVudC5zdHJpcCgpDQo+ID4NCj4gPiArICAgICAg ICAgICAgICAgIGlmIGxlbihFYWNoKSA9PSAwOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgcGFzcw0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBlbHNlOg0KPiA+DQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgaWYgRWFjaFswXSBpbiBbJyInLCAiJyJdOg0KPiA+DQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgIFJlc3VsdC5leHRlbmQobGlzdChieXRlYXJyYXkoRWFjaFsxOi0x XSwgJ3V0Zi04JykpKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgZWxpZiAnOicgaW4g RWFjaDoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBNYXRjaCAgICA9IHJlLm1h dGNoKCIoLispOihcZCspYiIsIEVhY2gpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgaWYgTWF0Y2ggaXMgTm9uZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKCJJbnZhbGQgdmFsdWUgbGlzdCBmb3JtYXQgJyVzJyAhIiAlIEVh Y2gpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgSW5CaXRGaWVsZCA9IFRydWUN Cj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBDdXJyZW50Qml0TGVuID0gaW50KE1h dGNoLmdyb3VwKDIpKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIEN1cnJlbnRW YWx1ZSAgPSAoKHNlbGYuRXZhbHVhdGVFeHByZXNzKE1hdGNoLmdyb3VwKDEpKSAmDQo+ID4gKDE8 PEN1cnJlbnRCaXRMZW4pIC0gMSkpIDw8IEJpdExlbg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgZWxzZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBSZXN1bHQuYXBw ZW5kKHNlbGYuRXZhbHVhdGVFeHByZXNzKEVhY2guc3RyaXAoKSkpDQo+ID4NCj4gPiArICAgICAg ICAgICAgICAgIGlmIEluQml0RmllbGQ6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBW YWx1ZSAgKz0gQ3VycmVudFZhbHVlDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBCaXRM ZW4gKz0gQ3VycmVudEJpdExlbg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBpZiBMYXN0SW5C aXRGaWVsZCBhbmQgKChub3QgSW5CaXRGaWVsZCkgb3IgKEVsZW1lbnQgPT0gQmluTGlzdFstMV0p KToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGlmIEJpdExlbiAlIDggIT0gMDoNCj4g Pg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkludmFsZCBi aXQgZmllbGQgbGVuZ3RoISIpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBSZXN1bHQu ZXh0ZW5kKFZhbDJCeXRlcyhWYWx1ZSwgQml0TGVuIC8vIDgpKQ0KPiA+DQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgVmFsdWUgID0gMA0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgQml0 TGVuID0gMA0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBMYXN0SW5CaXRGaWVsZCA9IEluQml0 RmllbGQNCj4gPg0KPiA+ICsgICAgICAgIGVsaWYgVmFsdWVTdHIuc3RhcnRzd2l0aCgiJyIpIGFu ZCBWYWx1ZVN0ci5lbmRzd2l0aCgiJyIpOg0KPiA+DQo+ID4gKyAgICAgICAgICAgIFJlc3VsdCA9 IFN0cjJCeXRlcyAoVmFsdWVTdHIsIExlbmd0aCkNCj4gPg0KPiA+ICsgICAgICAgIGVsaWYgVmFs dWVTdHIuc3RhcnRzd2l0aCgnIicpIGFuZCBWYWx1ZVN0ci5lbmRzd2l0aCgnIicpOg0KPiA+DQo+ ID4gKyAgICAgICAgICAgIFJlc3VsdCA9IFN0cjJCeXRlcyAoVmFsdWVTdHIsIExlbmd0aCkNCj4g Pg0KPiA+ICsgICAgICAgIGVsc2U6DQo+ID4NCj4gPiArICAgICAgICAgICAgUmVzdWx0ID0gVmFs MkJ5dGVzIChzZWxmLkV2YWx1YXRlRXhwcmVzcyhWYWx1ZVN0ciksIExlbmd0aCkNCj4gPg0KPiA+ ICsgICAgICAgIHJldHVybiBSZXN1bHQNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICAgICAgZGVmIEZv cm1hdExpc3RWYWx1ZShzZWxmLCBDb25maWdEaWN0KToNCj4gPg0KPiA+ICAgICAgICAgIFN0cnVj dCA9IENvbmZpZ0RpY3RbJ3N0cnVjdCddDQo+ID4NCj4gPiAgICAgICAgICBpZiBTdHJ1Y3Qgbm90 IGluIFsnVUlOVDgnLCdVSU5UMTYnLCdVSU5UMzInLCdVSU5UNjQnXToNCj4gPg0KPiA+IEBAIC00 MjQsMjggKzQ5MSw1MyBAQCBFbmRMaXN0DQo+ID4gICAgICAgICAgc2VsZi5fRHNjRmlsZSAgICAg PSBEc2NGaWxlDQo+ID4NCj4gPiAgICAgICAgICBzZWxmLl9GdkRpciAgICAgICA9IEZ2RGlyDQo+ ID4NCj4gPg0KPiA+DQo+ID4gKyAgICAgICAgc2VsZi5fRHNjTGluZXMgICAgPSBbXQ0KPiA+DQo+ ID4gKyAgICAgICAgc2VsZi5fQnNmVGVtcERpY3QgPSB7fQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4g ICAgICAgICAgIyBJbml0aWFsIERTQyB0aW1lIGlzIHBhcmVudCBEU0MgdGltZS4NCj4gPg0KPiA+ ICAgICAgICAgIHNlbGYuX0RzY1RpbWUgICAgID0gb3MucGF0aC5nZXRtdGltZShEc2NGaWxlKQ0K PiA+DQo+ID4NCj4gPg0KPiA+ICsgICAgICAgIENmZ0RpY3QgPSB7fQ0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gICAgICAgICAgSXNEZWZTZWN0ICAgICAgID0gRmFsc2UNCj4gPg0KPiA+ICAgICAgICAg IElzUGNkU2VjdCAgICAgICA9IEZhbHNlDQo+ID4NCj4gPiAgICAgICAgICBJc1VwZFNlY3QgICAg ICAgPSBGYWxzZQ0KPiA+DQo+ID4gICAgICAgICAgSXNWcGRTZWN0ICAgICAgID0gRmFsc2UNCj4g Pg0KPiA+ICsgICAgICAgIElzVG1wU2VjdCAgICAgICA9IEZhbHNlDQo+ID4NCj4gPiArDQo+ID4N Cj4gPiArICAgICAgICBUZW1wbGF0ZU5hbWUgICAgPSAnJw0KPiA+DQo+ID4NCj4gPg0KPiA+ICAg ICAgICAgIElmU3RhY2sgICAgICAgICA9IFtdDQo+ID4NCj4gPiAgICAgICAgICBFbGlmU3RhY2sg ICAgICAgPSBbXQ0KPiA+DQo+ID4gICAgICAgICAgRXJyb3IgICAgICAgICAgID0gMA0KPiA+DQo+ ID4gICAgICAgICAgQ29uZmlnRGljdCAgICAgID0ge30NCj4gPg0KPiA+DQo+ID4NCj4gPiAtICAg ICAgICBEc2NGZCAgICAgICAgPSBvcGVuKERzY0ZpbGUsICJyIikNCj4gPg0KPiA+IC0gICAgICAg IERzY0xpbmVzICAgICA9IERzY0ZkLnJlYWRsaW5lcygpDQo+ID4NCj4gPiAtICAgICAgICBEc2NG ZC5jbG9zZSgpDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICBpZiB0eXBlKERzY0ZpbGUp IGlzIGxpc3Q6DQo+ID4NCj4gPiArICAgICAgICAgICAgIyBpdCBpcyBEU0MgbGluZXMgYWxyZWFk eQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIERzY0xpbmVzICAgICAgID0gRHNjRmlsZQ0KPiA+DQo+ ID4gKyAgICAgICAgICAgIHNlbGYuX0RzY0ZpbGUgID0gJy4nDQo+ID4NCj4gPiArICAgICAgICBl bHNlOg0KPiA+DQo+ID4gKyAgICAgICAgICAgIERzY0ZkICAgICAgICA9IG9wZW4oRHNjRmlsZSwg InIiKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIERzY0xpbmVzICAgICA9IERzY0ZkLnJlYWRsaW5l cygpDQo+ID4NCj4gPiArICAgICAgICAgICAgRHNjRmQuY2xvc2UoKQ0KPiA+DQo+ID4gKyAgICAg ICAgICAgIHNlbGYuX0RzY0ZpbGUgPSBEc2NGaWxlDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAg ICAgICBTa2lwTGluZXMgPSAwDQo+ID4NCj4gPg0KPiA+DQo+ID4gICAgICAgICAgTWF4QWxpZ24g PSAzMiAgICNEZWZhdWx0IGFsaWduIHRvIDMyLCBidXQgaWYgdGhlcmUgYXJlIDY0IGJpdCB1bml0 LCBhbGlnbiB0bw0KPiA2NA0KPiA+DQo+ID4gICAgICAgICAgU2l6ZUFsaWduID0gMCAgICNyZWNv cmQgdGhlIHN0cnVjdCBtYXggYWxpZ24NCj4gPg0KPiA+ICAgICAgICAgIEJhc2UgPSAwICAgICAg ICAjU3RhcnRpbmcgb2Zmc2V0IG9mIHN1Yi1zdHJ1Y3R1cmUuDQo+ID4NCj4gPiArDQo+ID4NCj4g PiAgICAgICAgICB3aGlsZSBsZW4oRHNjTGluZXMpOg0KPiA+DQo+ID4gICAgICAgICAgICAgIERz Y0xpbmUgID0gRHNjTGluZXMucG9wKDApLnN0cmlwKCkNCj4gPg0KPiA+ICsgICAgICAgICAgICBp ZiBTa2lwTGluZXMgPT0gMDoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgIHNlbGYuX0RzY0xpbmVz LmFwcGVuZCAoRHNjTGluZSkNCj4gPg0KPiA+ICsgICAgICAgICAgICBlbHNlOg0KPiA+DQo+ID4g KyAgICAgICAgICAgICAgU2tpcExpbmVzID0gU2tpcExpbmVzIC0gMQ0KPiA+DQo+ID4gKyAgICAg ICAgICAgIGlmIGxlbihEc2NMaW5lKSA9PSAwOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgY29u dGludWUNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICAgICAgICAgICAgICBIYW5kbGUgICA9IEZhbHNl DQo+ID4NCj4gPiAgICAgICAgICAgICAgTWF0Y2ggICAgPSByZS5tYXRjaCgiXlxbKC4rKVxdIiwg RHNjTGluZSkNCj4gPg0KPiA+ICAgICAgICAgICAgICBpZiBNYXRjaCBpcyBub3QgTm9uZToNCj4g Pg0KPiA+IEBAIC00NTMsMTEgKzU0NSwxNSBAQCBFbmRMaXN0DQo+ID4gICAgICAgICAgICAgICAg ICBJc1BjZFNlY3QgPSBGYWxzZQ0KPiA+DQo+ID4gICAgICAgICAgICAgICAgICBJc1ZwZFNlY3Qg PSBGYWxzZQ0KPiA+DQo+ID4gICAgICAgICAgICAgICAgICBJc1VwZFNlY3QgPSBGYWxzZQ0KPiA+ DQo+ID4gLSAgICAgICAgICAgICAgICBpZiAgTWF0Y2guZ3JvdXAoMSkubG93ZXIoKSA9PSAiRGVm aW5lcyIubG93ZXIoKToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgSXNUbXBTZWN0ID0gRmFs c2UNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgU2VjdGlvbk5hbWUgPSBNYXRjaC5ncm91cCgx KS5sb3dlcigpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGlmICBTZWN0aW9uTmFtZSA9PSAi RGVmaW5lcyIubG93ZXIoKToNCj4gPg0KPiA+ICAgICAgICAgICAgICAgICAgICAgIElzRGVmU2Vj dCA9IFRydWUNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgaWYgIChNYXRjaC5ncm91cCgxKS5s b3dlcigpID09ICJQY2RzRmVhdHVyZUZsYWciLmxvd2VyKCkgb3INCj4gPiBNYXRjaC5ncm91cCgx KS5sb3dlcigpID09ICJQY2RzRml4ZWRBdEJ1aWxkIi5sb3dlcigpKToNCj4gPg0KPiA+ICsgICAg ICAgICAgICAgICAgaWYgIChTZWN0aW9uTmFtZSA9PSAiUGNkc0ZlYXR1cmVGbGFnIi5sb3dlcigp IG9yIFNlY3Rpb25OYW1lDQo+ID09DQo+ID4gIlBjZHNGaXhlZEF0QnVpbGQiLmxvd2VyKCkpOg0K PiA+DQo+ID4gICAgICAgICAgICAgICAgICAgICAgSXNQY2RTZWN0ID0gVHJ1ZQ0KPiA+DQo+ID4g LSAgICAgICAgICAgICAgICBlbGlmIE1hdGNoLmdyb3VwKDEpLmxvd2VyKCkgPT0gIlBjZHNEeW5h bWljVnBkLlVwZCIubG93ZXIoKToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgZWxpZiBTZWN0 aW9uTmFtZSA9PSAiUGNkc0R5bmFtaWNWcGQuVG1wIi5sb3dlcigpOg0KPiA+DQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgSXNUbXBTZWN0ID0gVHJ1ZQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAg ICBlbGlmIFNlY3Rpb25OYW1lID09ICJQY2RzRHluYW1pY1ZwZC5VcGQiLmxvd2VyKCk6DQo+ID4N Cj4gPiAgICAgICAgICAgICAgICAgICAgICBDb25maWdEaWN0ID0ge30NCj4gPg0KPiA+ICAgICAg ICAgICAgICAgICAgICAgIENvbmZpZ0RpY3RbJ2hlYWRlciddICA9ICdPTicNCj4gPg0KPiA+ICAg ICAgICAgICAgICAgICAgICAgIENvbmZpZ0RpY3RbJ3JlZ2lvbiddICA9ICdVUEQnDQo+ID4NCj4g PiBAQCAtNDY1LDkwICs1NjEsOTggQEAgRW5kTGlzdA0KPiA+ICAgICAgICAgICAgICAgICAgICAg IENvbmZpZ0RpY3RbJ3BhZ2UnXSAgICA9ICcnDQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgICAg ICBDb25maWdEaWN0WyduYW1lJ10gICAgPSAnJw0KPiA+DQo+ID4gICAgICAgICAgICAgICAgICAg ICAgQ29uZmlnRGljdFsnZmluZCddICAgID0gJycNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAg ICAgIENvbmZpZ0RpY3RbJ21hcmtlciddICA9ICcnDQo+ID4NCj4gPiAgICAgICAgICAgICAgICAg ICAgICBDb25maWdEaWN0WydzdHJ1Y3QnXSAgPSAnJw0KPiA+DQo+ID4gICAgICAgICAgICAgICAg ICAgICAgQ29uZmlnRGljdFsnZW1iZWQnXSAgID0gJycNCj4gPg0KPiA+ICAgICAgICAgICAgICAg ICAgICAgIENvbmZpZ0RpY3RbJ2NvbW1lbnQnXSA9ICcnDQo+ID4NCj4gPiAgICAgICAgICAgICAg ICAgICAgICBDb25maWdEaWN0WydzdWJyZWcnXSAgPSBbXQ0KPiA+DQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgQ29uZmlnRGljdFsnY29uZGl0aW9uJ10gID0gJycNCj4gPg0KPiA+ICsgICAgICAg ICAgICAgICAgICAgIENvbmZpZ0RpY3RbJ29wdGlvbiddICA9ICcnDQo+ID4NCj4gPiAgICAgICAg ICAgICAgICAgICAgICBJc1VwZFNlY3QgPSBUcnVlDQo+ID4NCj4gPiAgICAgICAgICAgICAgICAg ICAgICBPZmZzZXQgICAgPSAwDQo+ID4NCj4gPiAgICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+ IC0gICAgICAgICAgICAgICAgaWYgSXNEZWZTZWN0IG9yIElzUGNkU2VjdCBvciBJc1VwZFNlY3Qg b3IgSXNWcGRTZWN0Og0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgaWYgcmUubWF0Y2go Il4hZWxzZSgkfFxzKyMuKykiLCBEc2NMaW5lKToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAg aWYgSXNEZWZTZWN0IG9yIElzUGNkU2VjdCBvciBJc1VwZFNlY3Qgb3IgSXNWcGRTZWN0IG9yIElz VG1wU2VjdDoNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIE1hdGNo ID0gRmFsc2UgaWYgRHNjTGluZVswXSAhPSAnIScgZWxzZSBUcnVlDQo+ID4NCj4gPiArICAgICAg ICAgICAgICAgICAgICBpZiBNYXRjaDoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICBNYXRjaCA9DQo+ID4gcmUubWF0Y2goIl4hKGVsc2V8ZW5kaWZ8aWZkZWZ8aWZuZGVmfGlmfGVs c2VpZnxpbmNsdWRlKVxzKiguKyk/JCIsDQo+ID4gRHNjTGluZS5zcGxpdCgiIyIpWzBdKQ0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgS2V5d29yZCAgID0gTWF0Y2guZ3JvdXAoMSkgaWYg TWF0Y2ggZWxzZSAnJw0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgUmVtYWluaW5nID0g TWF0Y2guZ3JvdXAoMikgaWYgTWF0Y2ggZWxzZSAnJw0KPiA+DQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgUmVtYWluaW5nID0gJycgaWYgUmVtYWluaW5nIGlzIE5vbmUgZWxzZSBSZW1haW5pbmcu c3RyaXAoKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgaWYgS2V5 d29yZCBpbiBbJ2lmJywgJ2Vsc2VpZicsICdpZmRlZicsICdpZm5kZWYnLCAnaW5jbHVkZSddIGFu ZCBub3QNCj4gPiBSZW1haW5pbmc6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg cmFpc2UgRXhjZXB0aW9uICgiRVJST1I6IEV4cHJlc3Npb24gaXMgZXhwZWN0ZWQgYWZ0ZXIgJyFp ZicNCj4gPiBvciAhZWxzZWlmJyBmb3IgbGluZSAnJXMnIiAlIERzY0xpbmUpDQo+ID4NCj4gPiAr DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBpZiBLZXl3b3JkID09ICdlbHNlJzoNCj4g Pg0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBJZlN0YWNrOg0KPiA+DQo+ID4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZlN0YWNrWy0xXSA9IG5vdCBJZlN0YWNrWy0xXQ0K PiA+DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6DQo+ID4NCj4gPiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHByaW50KCJFUlJPUjogTm8gcGFpcmVkICchaWYnIGZvdW5k IGZvciAnIWVsc2UnIGZvciBsaW5lICclcyciICUNCj4gPiBEc2NMaW5lKQ0KPiA+DQo+ID4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBTeXN0ZW1FeGl0DQo+ID4NCj4gPiAtICAg ICAgICAgICAgICAgICAgICBlbGlmIHJlLm1hdGNoKCJeIWVuZGlmKCR8XHMrIy4rKSIsIERzY0xp bmUpOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRp b24gKCJFUlJPUjogTm8gcGFpcmVkICchaWYnIGZvdW5kIGZvciAnIWVsc2UnIGZvcg0KPiBsaW5l DQo+ID4gJyVzJyIgJSBEc2NMaW5lKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgZWxp ZiBLZXl3b3JkID09ICdlbmRpZic6DQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgSWZTdGFjazoNCj4gPg0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWZTdGFj ay5wb3AoKQ0KPiA+DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZXZlbCA9IEVs aWZTdGFjay5wb3AoKQ0KPiA+DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBM ZXZlbCA+IDA6DQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWwg SWZTdGFja1stTGV2ZWw6XQ0KPiA+DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6 DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCJFUlJPUjogTm8g cGFpcmVkICchaWYnIGZvdW5kIGZvciAnIWVuZGlmJyBmb3IgbGluZSAnJXMnIiAlDQo+ID4gRHNj TGluZSkNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgU3lzdGVt RXhpdA0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+IC0gICAg ICAgICAgICAgICAgICAgICAgICBSZXN1bHQgPSBGYWxzZQ0KPiA+DQo+ID4gLSAgICAgICAgICAg ICAgICAgICAgICAgIE1hdGNoID0gcmUubWF0Y2goIiEoaWZkZWZ8aWZuZGVmKVxzKyguKykiLCBE c2NMaW5lKQ0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIE1hdGNoOg0KPiA+ DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXN1bHQgPSBzZWxmLkV2YXVsYXRl SWZkZWYgKE1hdGNoLmdyb3VwKDIpKQ0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBNYXRjaC5ncm91cCgxKSA9PSAnaWZuZGVmJzoNCj4gPg0KPiA+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdCA9IG5vdCBSZXN1bHQNCj4gPg0KPiA+IC0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWZTdGFjay5hcHBlbmQoUmVzdWx0KQ0KPiA+DQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24gKCJFUlJPUjogTm8g cGFpcmVkICchaWYnIGZvdW5kIGZvciAnIWVuZGlmJyBmb3INCj4gPiBsaW5lICclcyciICUgRHNj TGluZSkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGVsaWYgS2V5d29yZCA9PSAnaWZk ZWYnIG9yIEtleXdvcmQgPT0gJ2lmbmRlZic6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgUmVzdWx0ID0gc2VsZi5FdmF1bGF0ZUlmZGVmIChSZW1haW5pbmcpDQo+ID4NCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgaWYgS2V5d29yZCA9PSAnaWZuZGVmJzoNCj4gPg0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0ID0gbm90IFJlc3VsdA0KPiA+DQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIElmU3RhY2suYXBwZW5kKFJlc3VsdCkNCj4gPg0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBFbGlmU3RhY2suYXBwZW5kKDApDQo+ID4NCj4g PiArICAgICAgICAgICAgICAgICAgICBlbGlmIEtleXdvcmQgPT0gJ2lmJyBvciBLZXl3b3JkID09 ICdlbHNlaWYnOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdCA9IHNl bGYuRXZhbHVhdGVFeHByZXNzKFJlbWFpbmluZykNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICBpZiBLZXl3b3JkID09ICJpZiI6DQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVsaWZTdGFjay5hcHBlbmQoMCkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWZTdGFjay5hcHBlbmQoUmVzdWx0KQ0KPiA+DQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgIGVsc2U6ICAgI2Vsc2VpZg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiBJZlN0YWNrOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWZTdGFja1stMV0gPSBub3QgSWZTdGFja1stMV0NCj4gPg0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmU3RhY2suYXBwZW5kKFJlc3VsdCkNCj4gPg0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsaWZTdGFja1stMV0gPSBFbGlmU3Rh Y2tbLTFdICsgMQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOg0K PiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u ICgiRVJST1I6IE5vIHBhaXJlZCAnIWlmJyBmb3VuZCBmb3IgJyFlbGlmJyBmb3INCj4gPiBsaW5l ICclcyciICUgRHNjTGluZSkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGVsc2U6DQo+ ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgaWYgSWZTdGFjazoNCj4gPg0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSGFuZGxlID0gcmVkdWNlKGxhbWJkYSB4LHk6IHgg YW5kIHksIElmU3RhY2spDQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToN Cj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0Y2ggID0gcmUubWF0Y2go IiEoaWZ8ZWxzZWlmKVxzKyguKykiLCBEc2NMaW5lLnNwbGl0KCIjIilbMF0pDQo+ID4NCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhhbmRsZSA9IFRydWUNCj4gPg0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICBpZiBIYW5kbGU6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE1hdGNoID0gcmUubWF0Y2goIiFpbmNsdWRlXHMrKC4rKSIsIERzY0xpbmUp DQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIE1hdGNoOg0KPiA+DQo+ ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0ID0gc2VsZi5FdmFsdWF0 ZUV4cHJlc3MoTWF0Y2guZ3JvdXAoMikpDQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiBNYXRjaC5ncm91cCgxKSA9PSAiaWYiOg0KPiA+DQo+ID4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsaWZTdGFjay5hcHBlbmQoMCkNCj4gPg0KPiA+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZlN0YWNrLmFwcGVuZChSZXN1 bHQpDQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOiAgICNl bHNlaWYNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBJ ZlN0YWNrOg0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZlN0YWNrWy0xXSA9IG5vdCBJZlN0YWNrWy0xXQ0KPiA+DQo+ID4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZlN0YWNrLmFwcGVuZChSZXN1bHQpDQo+ID4NCj4g PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsaWZTdGFja1stMV0g PSBFbGlmU3RhY2tbLTFdICsgMQ0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGVsc2U6DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHByaW50KCJFUlJPUjogTm8gcGFpcmVkICchaWYnIGZvdW5kIGZvciAnIWVsaWYn IGZvciBsaW5lDQo+ICclcyciDQo+ID4gJSBEc2NMaW5lKQ0KPiA+DQo+ID4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBTeXN0ZW1FeGl0DQo+ID4NCj4gPiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6DQo+ID4NCj4gPiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiBJZlN0YWNrOg0KPiA+DQo+ID4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEhhbmRsZSA9IHJlZHVjZShsYW1iZGEgeCx5OiB4IGFuZCB5 LCBJZlN0YWNrKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5j bHVkZUZpbGVQYXRoID0gTWF0Y2guZ3JvdXAoMSkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEluY2x1ZGVGaWxlUGF0aCA9IHNlbGYuRXhwYW5kTWFjcm9zKEluY2x1 ZGVGaWxlUGF0aCkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBh Y2thZ2VzUGF0aCA9IG9zLmdldGVudigiUEFDS0FHRVNfUEFUSCIpDQo+ID4NCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBQYWNrYWdlc1BhdGg6DQo+ID4NCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBQYWNrYWdlUGF0aCBpbiBQYWNrYWdl c1BhdGguc3BsaXQob3MucGF0aHNlcCk6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJbmNsdWRlRmlsZVBhdGhBYnMgPQ0KPiA+IG9zLnBhdGguam9pbihv cy5wYXRoLm5vcm1wYXRoKFBhY2thZ2VQYXRoKSwNCj4gPiBvcy5wYXRoLm5vcm1wYXRoKEluY2x1 ZGVGaWxlUGF0aCkpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBvcy5wYXRoLmV4aXN0cyhJbmNsdWRlRmlsZVBhdGhBYnMpOg0KPiA+DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluY2x1ZGVEc2MgID0gb3Bl bihJbmNsdWRlRmlsZVBhdGhBYnMsICJyIikNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBicmVhaw0KPiA+DQo+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBIYW5kbGUgPSBUcnVlDQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiBIYW5kbGU6DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTWF0Y2ggPSByZS5tYXRjaCgiIWluY2x1ZGVccysoLispIiwgRHNjTGluZSkN Cj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBNYXRjaDoN Cj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5jbHVk ZUZpbGVQYXRoID0gTWF0Y2guZ3JvdXAoMSkNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSW5jbHVkZUZpbGVQYXRoID0gc2VsZi5FeHBhbmRNYWNyb3Mo SW5jbHVkZUZpbGVQYXRoKQ0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlc1BhdGggPSBvcy5nZXRlbnYoIlBBQ0tBR0VTX1BBVEgiKQ0KPiA+ DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBQYWNrYWdl c1BhdGg6DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZm9yIFBhY2thZ2VQYXRoIGluIFBhY2thZ2VzUGF0aC5zcGxpdChvcy5wYXRoc2VwKToNCj4g Pg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5j bHVkZUZpbGVQYXRoQWJzID0NCj4gPiBvcy5wYXRoLmpvaW4ob3MucGF0aC5ub3JtcGF0aChQYWNr YWdlUGF0aCksDQo+ID4gb3MucGF0aC5ub3JtcGF0aChJbmNsdWRlRmlsZVBhdGgpKQ0KPiA+DQo+ ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvcy5w YXRoLmV4aXN0cyhJbmNsdWRlRmlsZVBhdGhBYnMpOg0KPiA+DQo+ID4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5jbHVkZURzYyAgPSBvcGVuKElu Y2x1ZGVGaWxlUGF0aEFicywgInIiKQ0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsNCj4gPg0KPiA+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmNsdWRlRHNjICA9IG9wZW4oSW5jbHVkZUZp bGVQYXRoLCAiciIpDQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIEluY2x1ZGVEc2MgPT0gTm9uZToNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCJFUlJPUjogQ2Fubm90IG9wZW4gZmls ZSAnJXMnIiAlDQo+IEluY2x1ZGVGaWxlUGF0aCkNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFN5c3RlbUV4aXQNCj4gPg0KPiA+IC0N Cj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBVcGRh dGUgRHNjVGltZSB3aGVuIG5ld2VyIERTQyB0aW1lIGZvdW5kLg0KPiA+DQo+ID4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdXJyZW50RHNjVGltZSA9DQo+ID4gb3Mu cGF0aC5nZXRtdGltZShvcy5wYXRoLnJlYWxwYXRoKEluY2x1ZGVEc2MubmFtZSkpDQo+ID4NCj4g PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIEN1cnJlbnREc2NU aW1lID4gc2VsZi5fRHNjVGltZToNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuX0RzY1RpbWUgPSBDdXJyZW50RHNjVGltZQ0KPiA+DQo+ ID4gLQ0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO ZXdEc2NMaW5lcyA9IEluY2x1ZGVEc2MucmVhZGxpbmVzKCkNCj4gPg0KPiA+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5jbHVkZURzYy5jbG9zZSgpDQo+ID4NCj4g PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERzY0xpbmVzID0gTmV3 RHNjTGluZXMgKyBEc2NMaW5lcw0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBPZmZzZXQgPSAwDQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgRHNjTGluZS5zdGFydHN3aXRoKCchJyk6DQo+ID4NCj4gPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgiRVJST1I6IFVu cmVjb2duaXplZCBkaXJlY3RpdmUgZm9yIGxpbmUgJyVzJyIgJQ0KPiA+IERzY0xpbmUpDQo+ID4N Cj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBT eXN0ZW1FeGl0DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElu Y2x1ZGVEc2MgID0gb3BlbihJbmNsdWRlRmlsZVBhdGgsICJyIikNCj4gPg0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIEluY2x1ZGVEc2MgPT0gTm9uZToNCj4gPg0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgiRVJST1I6IENhbm5v dCBvcGVuIGZpbGUgJyVzJyIgJSBJbmNsdWRlRmlsZVBhdGgpDQo+ID4NCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgU3lzdGVtRXhpdA0KPiA+DQo+ID4gKw0K PiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBVcGRhdGUgRHNjVGlt ZSB3aGVuIG5ld2VyIERTQyB0aW1lIGZvdW5kLg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ3VycmVudERzY1RpbWUgPQ0KPiA+IG9zLnBhdGguZ2V0bXRpbWUob3Mu cGF0aC5yZWFscGF0aChJbmNsdWRlRHNjLm5hbWUpKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgQ3VycmVudERzY1RpbWUgPiBzZWxmLl9Ec2NUaW1lOg0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX0RzY1RpbWUg PSBDdXJyZW50RHNjVGltZQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTmV3RHNjTGluZXMgPSBJbmNsdWRlRHNjLnJlYWRsaW5lcygpDQo+ID4N Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmNsdWRlRHNjLmNsb3NlKCkN Cj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERzY0xpbmVzID0gTmV3 RHNjTGluZXMgKyBEc2NMaW5lcw0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGVsIHNlbGYuX0RzY0xpbmVzWy0xXQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ID0gMA0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBlbHNlOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgRHNjTGluZS5zdGFydHN3aXRoKCchJyk6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcHJpbnQoIkVSUk9SOiBVbnJlY29nbml6ZWQgZGlyZWN0aXZlIGZv ciBsaW5lICclcyciICUNCj4gPiBEc2NMaW5lKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJhaXNlIFN5c3RlbUV4aXQNCj4gPg0KPiA+ICAgICAgICAgICAg ICBpZiBub3QgSGFuZGxlOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBkZWwgc2VsZi5fRHNj TGluZXNbLTFdDQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlDQo+ID4NCj4gPg0K PiA+DQo+ID4gICAgICAgICAgICAgIGlmIElzRGVmU2VjdDoNCj4gPg0KPiA+IEBAIC01NTYsNyAr NjYwLDcgQEAgRW5kTGlzdA0KPiA+ICAgICAgICAgICAgICAgICAgI0RFRklORSBGU1BfVF9VUERf VE9PTF9HVUlEID0gMzQ2ODZDQTMtMzRGOS00OTAxLUI4MkEtDQo+ID4gQkE2MzBGMDcxNEM2DQo+ ID4NCj4gPiAgICAgICAgICAgICAgICAgICNERUZJTkUgRlNQX01fVVBEX1RPT0xfR1VJRCA9IDM5 QTI1MERCLUU0NjUtNEREMS1BMkFDLQ0KPiA+IEUyQkQzQzBFMjM4NQ0KPiA+DQo+ID4gICAgICAg ICAgICAgICAgICAjREVGSU5FIEZTUF9TX1VQRF9UT09MX0dVSUQgPSBDQUUzNjA1Qi01QjM0LTRD ODUtQjNENy0NCj4gPiAyN0Q1NDI3M0M0MEYNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgTWF0 Y2ggPSByZS5tYXRjaCgiXlxzKig/OkRFRklORVxzKykqKFx3Kylccyo9XHMqKFsvJCgpLS5cd10r KSIsDQo+ID4gRHNjTGluZSkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgTWF0Y2ggPSByZS5t YXRjaCgiXlxzKig/OkRFRklORVxzKykqKFx3Kylccyo9XHMqKC4rKSIsDQo+IERzY0xpbmUpDQo+ ID4NCj4gPiAgICAgICAgICAgICAgICAgIGlmIE1hdGNoOg0KPiA+DQo+ID4gICAgICAgICAgICAg ICAgICAgICAgc2VsZi5fTWFjcm9EaWN0W01hdGNoLmdyb3VwKDEpXSA9DQo+ID4gc2VsZi5FeHBh bmRNYWNyb3MoTWF0Y2guZ3JvdXAoMikpDQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgICAgICBp ZiBzZWxmLkRlYnVnOg0KPiA+DQo+ID4gQEAgLTU3NSw2ICs2NzksMjMgQEAgRW5kTGlzdA0KPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBNYXRjaDoNCj4gPg0KPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5fUGNkc0RpY3RbTWF0Y2guZ3JvdXAoMSldID0gTWF0Y2gu Z3JvdXAoMikNCj4gPg0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICBpICs9IDENCj4gPg0K PiA+ICsNCj4gPg0KPiA+ICsgICAgICAgICAgICBlbGlmIElzVG1wU2VjdDoNCj4gPg0KPiA+ICsg ICAgICAgICAgICAgICAgIyAhQlNGIERFRlQ6e0dQSU9fVE1QTDpTVEFSVH0NCj4gPg0KPiA+ICsg ICAgICAgICAgICAgICAgTWF0Y2ggPSByZS5tYXRjaCgiXlxzKiNccysoIUJTRilccytERUZUOnso Lis/KTooU1RBUlR8RU5EKX0iLA0KPiA+IERzY0xpbmUpDQo+ID4NCj4gPiArICAgICAgICAgICAg ICAgIGlmIE1hdGNoOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgaWYgTWF0Y2guZ3Jv dXAoMykgPT0gJ1NUQVJUJyBhbmQgbm90IFRlbXBsYXRlTmFtZToNCj4gPg0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICBUZW1wbGF0ZU5hbWUgPSBNYXRjaC5ncm91cCgyKS5zdHJpcCgpDQo+ ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fQnNmVGVtcERpY3RbVGVtcGxh dGVOYW1lXSA9IFtdDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBpZiBNYXRjaC5ncm91 cCgzKSA9PSAnRU5EJyBhbmQgKFRlbXBsYXRlTmFtZSA9PQ0KPiA+IE1hdGNoLmdyb3VwKDIpLnN0 cmlwKCkpIGFuZCBUZW1wbGF0ZU5hbWU6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgVGVtcGxhdGVOYW1lID0gJycNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgZWxzZToNCj4g Pg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGlmIFRlbXBsYXRlTmFtZToNCj4gPg0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICBNYXRjaCA9IHJlLm1hdGNoKCJeIWluY2x1ZGVccyooLisp PyQiLCBEc2NMaW5lKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIE1hdGNo Og0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQ0KPiA+DQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX0JzZlRlbXBEaWN0W1RlbXBsYXRlTmFt ZV0uYXBwZW5kKERzY0xpbmUpDQo+ID4NCj4gPiArDQo+ID4NCj4gPiAgICAgICAgICAgICAgZWxz ZToNCj4gPg0KPiA+ICAgICAgICAgICAgICAgICAgTWF0Y2ggPSByZS5tYXRjaCgiXlxzKiNccyso IUJTRnxAQnNmfCFIRFIpXHMrKC4rKSIsIERzY0xpbmUpDQo+ID4NCj4gPiAgICAgICAgICAgICAg ICAgIGlmIE1hdGNoOg0KPiA+DQo+ID4gQEAgLTYzMCw5ICs3NTEsOSBAQCBFbmRMaXN0DQo+ID4g ICAgICAgICAgICAgICAgICBNYXRjaCA9IHJlLm1hdGNoKCJeXHMqI1xzKkBWYWxpZFJhbmdlXHMq KC4rKVxzKlx8XHMqKC4rKVxzKi0NCj4gPiBccyooLispXHMqIiwgRHNjTGluZSkNCj4gPg0KPiA+ ICAgICAgICAgICAgICAgICAgaWYgTWF0Y2g6DQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgICAg ICBpZiAiMHgiIGluIE1hdGNoLmdyb3VwKDIpIG9yICIweCIgaW4gTWF0Y2guZ3JvdXAoMyk6DQo+ ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICBDb25maWdEaWN0Wyd0eXBlJ10gPSAiRWRp dE51bSwgSEVYLCAoJXMsJXMpIiAlDQo+IChNYXRjaC5ncm91cCgyKSwNCj4gPiBNYXRjaC5ncm91 cCgzKSkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBDb25maWdEaWN0Wyd0eXBl J10gPSAiRWRpdE51bSwgSEVYLCAoJXMsJXMpIiAlDQo+IChNYXRjaC5ncm91cCgyKSwNCj4gPiBN YXRjaC5ncm91cCgzKSkNCj4gPg0KPiA+ICAgICAgICAgICAgICAgICAgICAgIGVsc2U6DQo+ID4N Cj4gPiAtICAgICAgICAgICAgICAgICAgICAgICBDb25maWdEaWN0Wyd0eXBlJ10gPSAiRWRpdE51 bSwgREVDLCAoJXMsJXMpIiAlDQo+IChNYXRjaC5ncm91cCgyKSwNCj4gPiBNYXRjaC5ncm91cCgz KSkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBDb25maWdEaWN0Wyd0eXBlJ10g PSAiRWRpdE51bSwgREVDLCAoJXMsJXMpIiAlDQo+IChNYXRjaC5ncm91cCgyKSwNCj4gPiBNYXRj aC5ncm91cCgzKSkNCj4gPg0KPiA+DQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgIE1hdGNoID0g cmUubWF0Y2goIl5ccyojI1xzKyguKykiLCBEc2NMaW5lKQ0KPiA+DQo+ID4gICAgICAgICAgICAg ICAgICBpZiBNYXRjaDoNCj4gPg0KPiA+IEBAIC03NDgsNiArODY5LDcgQEAgRW5kTGlzdA0KPiA+ ICAgICAgICAgICAgICAgICAgICAgIENvbmZpZ0RpY3RbJ3N0cnVjdCddID0gJycNCj4gPg0KPiA+ ICAgICAgICAgICAgICAgICAgICAgIENvbmZpZ0RpY3RbJ2VtYmVkJ10gID0gJycNCj4gPg0KPiA+ ICAgICAgICAgICAgICAgICAgICAgIENvbmZpZ0RpY3RbJ2NvbW1lbnQnXSA9ICcnDQo+ID4NCj4g PiArICAgICAgICAgICAgICAgICAgICBDb25maWdEaWN0WydtYXJrZXInXSA9ICcnDQo+ID4NCj4g PiAgICAgICAgICAgICAgICAgICAgICBDb25maWdEaWN0WydvcmRlciddICA9IC0xDQo+ID4NCj4g PiAgICAgICAgICAgICAgICAgICAgICBDb25maWdEaWN0WydzdWJyZWcnXSA9IFtdDQo+ID4NCj4g PiAgICAgICAgICAgICAgICAgICAgICBDb25maWdEaWN0WydvcHRpb24nXSA9ICcnDQo+ID4NCj4g PiBAQCAtNzg2LDkgKzkwOCw4IEBAIEVuZExpc3QNCj4gPiAgICAgICAgICBiaXRzdmFsdWUgPSBi aXRzdmFsdWVbOjotMV0NCj4gPg0KPiA+ICAgICAgICAgIGJpdHNsZW4gICA9IGxlbihiaXRzdmFs dWUpDQo+ID4NCj4gPiAgICAgICAgICBpZiBzdGFydCA+IGJpdHNsZW4gb3IgZW5kID4gYml0c2xl bjoNCj4gPg0KPiA+IC0gICAgICAgICAgICBwcmludCAoIkludmFsaWQgYml0cyBvZmZzZXQgWyVk LCVkXSBmb3IgJXMiICUgKHN0YXJ0LCBlbmQsDQo+IHN1Yml0ZW1bJ25hbWUnXSkpDQo+ID4NCj4g PiAtICAgICAgICAgICAgcmFpc2UgU3lzdGVtRXhpdA0KPiA+DQo+ID4gLSAgICAgICAgcmV0dXJu IGhleChpbnQoYml0c3ZhbHVlW3N0YXJ0OmVuZF1bOjotMV0sIDIpKQ0KPiA+DQo+ID4gKyAgICAg ICAgICAgIHJhaXNlIEV4Y2VwdGlvbiAoIkludmFsaWQgYml0cyBvZmZzZXQgWyVkLCVkXSAlZCBm b3IgJXMiICUgKHN0YXJ0LA0KPiBlbmQsDQo+ID4gYml0c2xlbiwgc3ViaXRlbVsnbmFtZSddKSkN Cj4gPg0KPiA+ICsgICAgICAgIHJldHVybiAnMHglWCcgJSAoaW50KGJpdHN2YWx1ZVtzdGFydDpl bmRdWzo6LTFdLCAyKSkNCj4gPg0KPiA+DQo+ID4NCj4gPiAgICAgIGRlZiBVcGRhdGVTdWJSZWdp b25EZWZhdWx0VmFsdWUgKHNlbGYpOg0KPiA+DQo+ID4gICAgICAgICAgRXJyb3IgPSAwDQo+ID4N Cj4gPiBAQCAtODg4LDYzICsxMDA5LDE0MiBAQCBFbmRMaXN0DQo+ID4gICAgICAgICAgICAgIFR4 dEZkLmNsb3NlKCkNCj4gPg0KPiA+ICAgICAgICAgIHJldHVybiAwDQo+ID4NCj4gPg0KPiA+DQo+ ID4gLSAgICBkZWYgUHJvY2Vzc011bHRpbGluZXMgKHNlbGYsIFN0cmluZywgTWF4Q2hhckxlbmd0 aCk6DQo+ID4NCj4gPiAtICAgICAgICAgICAgTXVsdGlsaW5lcyA9ICcnDQo+ID4NCj4gPiAtICAg ICAgICAgICAgU3RyaW5nTGVuZ3RoID0gbGVuKFN0cmluZykNCj4gPg0KPiA+IC0gICAgICAgICAg ICBDdXJyZW50U3RyaW5nU3RhcnQgPSAwDQo+ID4NCj4gPiAtICAgICAgICAgICAgU3RyaW5nT2Zm c2V0ID0gMA0KPiA+DQo+ID4gLSAgICAgICAgICAgIEJyZWFrTGluZURpY3QgPSBbXQ0KPiA+DQo+ ID4gLSAgICAgICAgICAgIGlmIGxlbihTdHJpbmcpIDw9IE1heENoYXJMZW5ndGg6DQo+ID4NCj4g PiAtICAgICAgICAgICAgICAgIHdoaWxlIChTdHJpbmdPZmZzZXQgPCBTdHJpbmdMZW5ndGgpOg0K PiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgaWYgU3RyaW5nT2Zmc2V0ID49IDE6DQo+ID4N Cj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgaWYgU3RyaW5nW1N0cmluZ09mZnNldCAtIDFd ID09ICdcXCcgYW5kIFN0cmluZ1tTdHJpbmdPZmZzZXRdID09ICduJzoNCj4gPg0KPiA+IC0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWtMaW5lRGljdC5hcHBlbmQgKFN0cmluZ09mZnNl dCArIDEpDQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICBTdHJpbmdPZmZzZXQgKz0gMQ0K PiA+DQo+ID4gLSAgICAgICAgICAgICAgICBpZiBCcmVha0xpbmVEaWN0ICE9IFtdOg0KPiA+DQo+ ID4gLSAgICAgICAgICAgICAgICAgICAgZm9yIEVhY2ggaW4gQnJlYWtMaW5lRGljdDoNCj4gPg0K PiA+IC0gICAgICAgICAgICAgICAgICAgICAgICBNdWx0aWxpbmVzICs9ICIgICVzXG4iICUgU3Ry aW5nW0N1cnJlbnRTdHJpbmdTdGFydDpFYWNoXS5sc3RyaXAoKQ0KPiA+DQo+ID4gLSAgICAgICAg ICAgICAgICAgICAgICAgIEN1cnJlbnRTdHJpbmdTdGFydCA9IEVhY2gNCj4gPg0KPiA+IC0gICAg ICAgICAgICAgICAgICAgIGlmIFN0cmluZ0xlbmd0aCAtIEN1cnJlbnRTdHJpbmdTdGFydCA+IDA6 DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgTXVsdGlsaW5lcyArPSAiICAlc1xu IiAlIFN0cmluZ1tDdXJyZW50U3RyaW5nU3RhcnQ6XS5sc3RyaXAoKQ0KPiA+DQo+ID4gKyAgICBk ZWYgQ3JlYXRlVmFyRGljdCAoc2VsZik6DQo+ID4NCj4gPiArICAgICAgICBFcnJvciA9IDANCj4g Pg0KPiA+ICsgICAgICAgIHNlbGYuX1ZhckRpY3QgPSB7fQ0KPiA+DQo+ID4gKyAgICAgICAgaWYg bGVuKHNlbGYuX0NmZ0l0ZW1MaXN0KSA+IDA6DQo+ID4NCj4gPiArICAgICAgICAgICAgSXRlbSA9 IHNlbGYuX0NmZ0l0ZW1MaXN0Wy0xXQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIHNlbGYuX1ZhckRp Y3RbJ19MRU5HVEhfJ10gPSAnJWQnICUgKEl0ZW1bJ29mZnNldCddICsgSXRlbVsnbGVuZ3RoJ10p DQo+ID4NCj4gPiArICAgICAgICBmb3IgSXRlbSBpbiBzZWxmLl9DZmdJdGVtTGlzdDoNCj4gPg0K PiA+ICsgICAgICAgICAgICBFbWJlZCA9IEl0ZW1bJ2VtYmVkJ10NCj4gPg0KPiA+ICsgICAgICAg ICAgICBNYXRjaCA9IHJlLm1hdGNoKCJeKFx3Kyk6KFx3Kyk6KFNUQVJUfEVORCkiLCBFbWJlZCkN Cj4gPg0KPiA+ICsgICAgICAgICAgICBpZiBNYXRjaDoNCj4gPg0KPiA+ICsgICAgICAgICAgICAg ICAgU3RydWN0TmFtZSA9IE1hdGNoLmdyb3VwKDEpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAg IFZhck5hbWUgPSAnXyVzXyVzXycgJSAoTWF0Y2guZ3JvdXAoMyksIFN0cnVjdE5hbWUpDQo+ID4N Cj4gPiArICAgICAgICAgICAgICAgIGlmIE1hdGNoLmdyb3VwKDMpID09ICdFTkQnOg0KPiA+DQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fVmFyRGljdFtWYXJOYW1lXSA9IEl0ZW1bJ29m ZnNldCddICsgSXRlbVsnbGVuZ3RoJ10NCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHNl bGYuX1ZhckRpY3RbJ19MRU5HVEhfJXNfJyAlIFN0cnVjdE5hbWVdID0gXA0KPiA+DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX1ZhckRpY3RbJ19FTkRfJXNfJyAlIFN0cnVjdE5h bWVdIC0NCj4gPiBzZWxmLl9WYXJEaWN0WydfU1RBUlRfJXNfJyAlIFN0cnVjdE5hbWVdDQo+ID4N Cj4gPiArICAgICAgICAgICAgICAgICAgICBpZiBNYXRjaC5ncm91cCgyKS5zdGFydHN3aXRoKCdU QUdfJyk6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuTW9kZSAh PSAnRlNQJykgYW5kIChzZWxmLl9WYXJEaWN0WydfTEVOR1RIXyVzXycgJQ0KPiA+IFN0cnVjdE5h bWVdICUgNCk6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiU2l6ZSBvZiBzdHJ1Y3R1cmUgJyVzJyBpcyAlZCwgbm90IERXT1JEDQo+ID4gYWxp Z25lZCAhIiAlIChTdHJ1Y3ROYW1lLCBzZWxmLl9WYXJEaWN0WydfTEVOR1RIXyVzXycgJSBTdHJ1 Y3ROYW1lXSkpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fVmFyRGlj dFsnX1RBR18lc18nICUgU3RydWN0TmFtZV0gPSBpbnQNCj4gPiAoTWF0Y2guZ3JvdXAoMilbNDpd LCAxNikgJiAweEZGRg0KPiA+DQo+ID4gICAgICAgICAgICAgICAgICBlbHNlOg0KPiA+DQo+ID4g LSAgICAgICAgICAgICAgICAgICAgTXVsdGlsaW5lcyA9ICIgICVzXG4iICUgU3RyaW5nDQo+ID4N Cj4gPiArICAgICAgICAgICAgICAgICAgICBzZWxmLl9WYXJEaWN0W1Zhck5hbWVdID0gSXRlbVsn b2Zmc2V0J10NCj4gPg0KPiA+ICsgICAgICAgICAgICBpZiBJdGVtWydtYXJrZXInXToNCj4gPg0K PiA+ICsgICAgICAgICAgICAgICAgc2VsZi5fVmFyRGljdFsnX09GRlNFVF8lc18nICUgSXRlbVsn bWFya2VyJ10uc3RyaXAoKV0gPQ0KPiBJdGVtWydvZmZzZXQnXQ0KPiA+DQo+ID4gKyAgICAgICAg cmV0dXJuIEVycm9yDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgIGRlZiBVcGRhdGVCc2ZCaXRV bml0IChzZWxmLCBJdGVtKToNCj4gPg0KPiA+ICsgICAgICAgIEJpdFRvdGFsICA9IDANCj4gPg0K PiA+ICsgICAgICAgIEJpdE9mZnNldCA9IDANCj4gPg0KPiA+ICsgICAgICAgIFN0YXJ0SWR4ICA9 IDANCj4gPg0KPiA+ICsgICAgICAgIFVuaXQgICAgICA9IE5vbmUNCj4gPg0KPiA+ICsgICAgICAg IFVuaXREZWMgICA9IHsxOidCWVRFJywgMjonV09SRCcsIDQ6J0RXT1JEJywgODonUVdPUkQnfQ0K PiA+DQo+ID4gKyAgICAgICAgZm9yIElkeCwgU3ViSXRlbSBpbiBlbnVtZXJhdGUoSXRlbVsnc3Vi cmVnJ10pOg0KPiA+DQo+ID4gKyAgICAgICAgICAgIGlmIFVuaXQgaXMgTm9uZToNCj4gPg0KPiA+ ICsgICAgICAgICAgICAgICAgVW5pdCAgPSBTdWJJdGVtWydiaXR1bml0J10NCj4gPg0KPiA+ICsg ICAgICAgICAgICBCaXRMZW5ndGggPSBTdWJJdGVtWydiaXRsZW5ndGgnXQ0KPiA+DQo+ID4gKyAg ICAgICAgICAgIEJpdFRvdGFsICArPSBCaXRMZW5ndGgNCj4gPg0KPiA+ICsgICAgICAgICAgICBC aXRPZmZzZXQgKz0gQml0TGVuZ3RoDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICAgICAg aWYgQml0T2Zmc2V0ID4gNjQgb3IgQml0T2Zmc2V0ID4gVW5pdCAqIDg6DQo+ID4NCj4gPiArICAg ICAgICAgICAgICAgIGJyZWFrDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICAgICAgaWYg Qml0T2Zmc2V0ID09IFVuaXQgKiA4Og0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBmb3IgU3Vi SWR4IGluIHJhbmdlIChTdGFydElkeCwgSWR4ICsgMSk6DQo+ID4NCj4gPiArICAgICAgICAgICAg ICAgICAgICBJdGVtWydzdWJyZWcnXVtTdWJJZHhdWydiaXR1bml0J10gPSBVbml0DQo+ID4NCj4g PiArICAgICAgICAgICAgICAgIEJpdE9mZnNldCA9IDANCj4gPg0KPiA+ICsgICAgICAgICAgICAg ICAgU3RhcnRJZHggID0gSWR4ICsgMQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBVbml0ICAg ICAgPSBOb25lDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICBpZiBCaXRPZmZzZXQgPiAw Og0KPiA+DQo+ID4gKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbiAoIkJpdCBmaWVsZHMgY2Fu bm90IGZpdCBpbnRvICVzIGZvciAnJXMuJXMnICEiICUNCj4gPiAoVW5pdERlY1tVbml0XSwgSXRl bVsnY25hbWUnXSwgU3ViSXRlbVsnY25hbWUnXSkpDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAg ICAgICBFeHBlY3RlZFRvdGFsID0gSXRlbVsnbGVuZ3RoJ10gKiA4DQo+ID4NCj4gPiArICAgICAg ICBpZiBJdGVtWydsZW5ndGgnXSAqIDggIT0gQml0VG90YWw6DQo+ID4NCj4gPiArICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uICgiQml0IGZpZWxkcyB0b3RhbCBsZW5ndGggKCVkKSBkb2VzIG5v dCBtYXRjaCBsZW5ndGgNCj4gKCVkKQ0KPiA+IG9mICclcycgISIgJSAoQml0VG90YWwsIEV4cGVj dGVkVG90YWwsIEl0ZW1bJ2NuYW1lJ10pKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICBkZWYg VXBkYXRlRGVmYXVsdFZhbHVlIChzZWxmKToNCj4gPg0KPiA+ICsgICAgICAgIEVycm9yID0gMA0K PiA+DQo+ID4gKyAgICAgICAgZm9yIElkeCwgSXRlbSBpbiBlbnVtZXJhdGUoc2VsZi5fQ2ZnSXRl bUxpc3QpOg0KPiA+DQo+ID4gKyAgICAgICAgICAgIGlmIGxlbihJdGVtWydzdWJyZWcnXSkgPT0g MDoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgVmFsdWUgPSBJdGVtWyd2YWx1ZSddDQo+ID4N Cj4gPiArICAgICAgICAgICAgICAgIGlmIChsZW4oVmFsdWUpID4gMCkgYW5kIChWYWx1ZVswXSA9 PSAneycgb3IgVmFsdWVbMF0gPT0gIiciIG9yIFZhbHVlWzBdDQo+ID09DQo+ID4gJyInKToNCj4g Pg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICMge1hYWH0gb3IgJ1hYWCcgc3RyaW5ncw0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5Gb3JtYXRMaXN0VmFsdWUoc2VsZi5fQ2Zn SXRlbUxpc3RbSWR4XSkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+ ICsgICAgICAgICAgICAgICAgICBNYXRjaCA9IHJlLm1hdGNoKCIoMHhbMC05YS1mQS1GXSt8WzAt OV0rKSIsIFZhbHVlKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgIGlmIG5vdCBNYXRjaDoN Cj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIE51bVZhbHVlID0gc2VsZi5FdmFsdWF0ZUV4 cHJlc3MgKFZhbHVlKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgSXRlbVsndmFsdWUn XSA9ICcweCVYJyAlIE51bVZhbHVlDQo+ID4NCj4gPiAgICAgICAgICAgICAgZWxzZToNCj4gPg0K PiA+IC0gICAgICAgICAgICAgICAgTmV3TGluZVN0YXJ0ID0gMA0KPiA+DQo+ID4gLSAgICAgICAg ICAgICAgICBOZXdMaW5lQ291bnQgPSAwDQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgIEZvdW5k U3BhY2VDaGFyID0gRmFsc2UNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgd2hpbGUgKFN0cmlu Z09mZnNldCA8IFN0cmluZ0xlbmd0aCk6DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICBp ZiBTdHJpbmdPZmZzZXQgPj0gMToNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICBp ZiBOZXdMaW5lQ291bnQgPj0gTWF4Q2hhckxlbmd0aCAtIDE6DQo+ID4NCj4gPiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIFN0cmluZ1tTdHJpbmdPZmZzZXRdID09ICcgJyBhbmQgU3Ry aW5nTGVuZ3RoIC0gU3RyaW5nT2Zmc2V0ID4NCj4gMTA6DQo+ID4NCj4gPiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBCcmVha0xpbmVEaWN0LmFwcGVuZCAoTmV3TGluZVN0YXJ0ICsg TmV3TGluZUNvdW50KQ0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TmV3TGluZVN0YXJ0ID0gTmV3TGluZVN0YXJ0ICsgTmV3TGluZUNvdW50DQo+ID4NCj4gPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOZXdMaW5lQ291bnQgPSAwDQo+ID4NCj4gPiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3VuZFNwYWNlQ2hhciA9IFRydWUNCj4g Pg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxpZiBTdHJpbmdPZmZzZXQgPT0g U3RyaW5nTGVuZ3RoIC0gMSBhbmQgRm91bmRTcGFjZUNoYXIgPT0NCj4gPiBGYWxzZToNCj4gPg0K PiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrTGluZURpY3QuYXBwZW5k ICgwKQ0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIFN0cmluZ1tTdHJpbmdP ZmZzZXQgLSAxXSA9PSAnXFwnIGFuZCBTdHJpbmdbU3RyaW5nT2Zmc2V0XSA9PSAnbic6DQo+ID4N Cj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrTGluZURpY3QuYXBwZW5kIChT dHJpbmdPZmZzZXQgKyAxKQ0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBO ZXdMaW5lU3RhcnQgPSBTdHJpbmdPZmZzZXQgKyAxDQo+ID4NCj4gPiArICAgICAgICAgICAgICAg IFZhbEFycmF5ID0gc2VsZi5WYWx1ZVRvQnl0ZUFycmF5IChJdGVtWyd2YWx1ZSddLCBJdGVtWyds ZW5ndGgnXSkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgZm9yIFN1Ykl0ZW0gaW4gSXRlbVsn c3VicmVnJ106DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBTdWJJdGVtWyd2YWx1ZSdd ICAgPSBzZWxmLkdldEJzZkJpdEZpZWxkcyhTdWJJdGVtLCBWYWxBcnJheSkNCj4gPg0KPiA+ICsg ICAgICAgICAgICAgICAgc2VsZi5VcGRhdGVCc2ZCaXRVbml0IChJdGVtKQ0KPiA+DQo+ID4gKyAg ICAgICAgcmV0dXJuIEVycm9yDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgIGRlZiBQcm9jZXNz TXVsdGlsaW5lcyAoc2VsZiwgU3RyaW5nLCBNYXhDaGFyTGVuZ3RoKToNCj4gPg0KPiA+ICsgICAg ICAgIE11bHRpbGluZXMgPSAnJw0KPiA+DQo+ID4gKyAgICAgICAgU3RyaW5nTGVuZ3RoID0gbGVu KFN0cmluZykNCj4gPg0KPiA+ICsgICAgICAgIEN1cnJlbnRTdHJpbmdTdGFydCA9IDANCj4gPg0K PiA+ICsgICAgICAgIFN0cmluZ09mZnNldCA9IDANCj4gPg0KPiA+ICsgICAgICAgIEJyZWFrTGlu ZURpY3QgPSBbXQ0KPiA+DQo+ID4gKyAgICAgICAgaWYgbGVuKFN0cmluZykgPD0gTWF4Q2hhckxl bmd0aDoNCj4gPg0KPiA+ICsgICAgICAgICAgICB3aGlsZSAoU3RyaW5nT2Zmc2V0IDwgU3RyaW5n TGVuZ3RoKToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgaWYgU3RyaW5nT2Zmc2V0ID49IDE6 DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBpZiBTdHJpbmdbU3RyaW5nT2Zmc2V0IC0g MV0gPT0gJ1xcJyBhbmQgU3RyaW5nW1N0cmluZ09mZnNldF0gPT0gJ24nOg0KPiA+DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgIEJyZWFrTGluZURpY3QuYXBwZW5kIChTdHJpbmdPZmZzZXQg KyAxKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBTdHJpbmdPZmZzZXQgKz0gMQ0KPiA+DQo+ ID4gKyAgICAgICAgICAgIGlmIEJyZWFrTGluZURpY3QgIT0gW106DQo+ID4NCj4gPiArICAgICAg ICAgICAgICAgIGZvciBFYWNoIGluIEJyZWFrTGluZURpY3Q6DQo+ID4NCj4gPiArICAgICAgICAg ICAgICAgICAgICBNdWx0aWxpbmVzICs9ICIgICVzXG4iICUgU3RyaW5nW0N1cnJlbnRTdHJpbmdT dGFydDpFYWNoXS5sc3RyaXAoKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgQ3VycmVu dFN0cmluZ1N0YXJ0ID0gRWFjaA0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBpZiBTdHJpbmdM ZW5ndGggLSBDdXJyZW50U3RyaW5nU3RhcnQgPiAwOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgTXVsdGlsaW5lcyArPSAiICAlc1xuIiAlIFN0cmluZ1tDdXJyZW50U3RyaW5nU3RhcnQ6 XS5sc3RyaXAoKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIGVsc2U6DQo+ID4NCj4gPiArICAgICAg ICAgICAgICAgIE11bHRpbGluZXMgPSAiICAlc1xuIiAlIFN0cmluZw0KPiA+DQo+ID4gKyAgICAg ICAgZWxzZToNCj4gPg0KPiA+ICsgICAgICAgICAgICBOZXdMaW5lU3RhcnQgPSAwDQo+ID4NCj4g PiArICAgICAgICAgICAgTmV3TGluZUNvdW50ID0gMA0KPiA+DQo+ID4gKyAgICAgICAgICAgIEZv dW5kU3BhY2VDaGFyID0gRmFsc2UNCj4gPg0KPiA+ICsgICAgICAgICAgICB3aGlsZSAoU3RyaW5n T2Zmc2V0IDwgU3RyaW5nTGVuZ3RoKToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgaWYgU3Ry aW5nT2Zmc2V0ID49IDE6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBpZiBOZXdMaW5l Q291bnQgPj0gTWF4Q2hhckxlbmd0aCAtIDE6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgaWYgU3RyaW5nW1N0cmluZ09mZnNldF0gPT0gJyAnIGFuZCBTdHJpbmdMZW5ndGggLSBT dHJpbmdPZmZzZXQgPg0KPiAxMDoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQnJlYWtMaW5lRGljdC5hcHBlbmQgKE5ld0xpbmVTdGFydCArIE5ld0xpbmVDb3VudCkNCj4g Pg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV3TGluZVN0YXJ0ID0gTmV3TGlu ZVN0YXJ0ICsgTmV3TGluZUNvdW50DQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5ld0xpbmVDb3VudCA9IDANCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgIFN0cmlu Z09mZnNldCArPSAxDQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICBOZXdMaW5lQ291bnQg Kz0gMQ0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICBpZiBCcmVha0xpbmVEaWN0ICE9IFtdOg0K PiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgQnJlYWtMaW5lRGljdC5zb3J0ICgpDQo+ID4N Cj4gPiAtICAgICAgICAgICAgICAgICAgICBmb3IgRWFjaCBpbiBCcmVha0xpbmVEaWN0Og0KPiA+ DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIEVhY2ggPiAwOg0KPiA+DQo+ID4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBNdWx0aWxpbmVzICs9ICIgICVzXG4iICUNCj4gU3Ry aW5nW0N1cnJlbnRTdHJpbmdTdGFydDpFYWNoXS5sc3RyaXAoKQ0KPiA+DQo+ID4gLSAgICAgICAg ICAgICAgICAgICAgICAgIEN1cnJlbnRTdHJpbmdTdGFydCA9IEVhY2gNCj4gPg0KPiA+IC0gICAg ICAgICAgICAgICAgICAgIGlmIFN0cmluZ0xlbmd0aCAtIEN1cnJlbnRTdHJpbmdTdGFydCA+IDA6 DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgTXVsdGlsaW5lcyArPSAiICAlc1xu IiAlIFN0cmluZ1tDdXJyZW50U3RyaW5nU3RhcnQ6XS5sc3RyaXAoKQ0KPiA+DQo+ID4gLSAgICAg ICAgICAgIHJldHVybiBNdWx0aWxpbmVzDQo+ID4NCj4gPiAtDQo+ID4NCj4gPiAtICAgIGRlZiBD cmVhdGVGaWVsZCAoc2VsZiwgSXRlbSwgTmFtZSwgTGVuZ3RoLCBPZmZzZXQsIFN0cnVjdCwgQnNm TmFtZSwgSGVscCwNCj4gPiBPcHRpb24pOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBGb3VuZFNwYWNlQ2hhciA9IFRydWUNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICBlbGlmIFN0cmluZ09mZnNldCA9PSBTdHJpbmdMZW5ndGggLSAxIGFuZCBGb3VuZFNw YWNlQ2hhciA9PQ0KPiBGYWxzZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQnJlYWtMaW5lRGljdC5hcHBlbmQgKDApDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAg ICBpZiBTdHJpbmdbU3RyaW5nT2Zmc2V0IC0gMV0gPT0gJ1xcJyBhbmQgU3RyaW5nW1N0cmluZ09m ZnNldF0gPT0gJ24nOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrTGlu ZURpY3QuYXBwZW5kIChTdHJpbmdPZmZzZXQgKyAxKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgIE5ld0xpbmVTdGFydCA9IFN0cmluZ09mZnNldCArIDENCj4gPg0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICBOZXdMaW5lQ291bnQgPSAwDQo+ID4NCj4gPiArICAgICAgICAg ICAgICAgIFN0cmluZ09mZnNldCArPSAxDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIE5ld0xp bmVDb3VudCArPSAxDQo+ID4NCj4gPiArICAgICAgICAgICAgaWYgQnJlYWtMaW5lRGljdCAhPSBb XToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgQnJlYWtMaW5lRGljdC5zb3J0ICgpDQo+ID4N Cj4gPiArICAgICAgICAgICAgICAgIGZvciBFYWNoIGluIEJyZWFrTGluZURpY3Q6DQo+ID4NCj4g PiArICAgICAgICAgICAgICAgICAgICBpZiBFYWNoID4gMDoNCj4gPg0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICBNdWx0aWxpbmVzICs9ICIgICVzXG4iICUgU3RyaW5nW0N1cnJlbnRTdHJp bmdTdGFydDpFYWNoXS5sc3RyaXAoKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgQ3Vy cmVudFN0cmluZ1N0YXJ0ID0gRWFjaA0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBpZiBTdHJp bmdMZW5ndGggLSBDdXJyZW50U3RyaW5nU3RhcnQgPiAwOg0KPiA+DQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgTXVsdGlsaW5lcyArPSAiICAlc1xuIiAlIFN0cmluZ1tDdXJyZW50U3RyaW5nU3Rh cnQ6XS5sc3RyaXAoKQ0KPiA+DQo+ID4gKyAgICAgICAgcmV0dXJuIE11bHRpbGluZXMNCj4gPg0K PiA+ICsNCj4gPg0KPiA+ICsgICAgZGVmIENyZWF0ZUZpZWxkIChzZWxmLCBJdGVtLCBOYW1lLCBM ZW5ndGgsIE9mZnNldCwgU3RydWN0LCBCc2ZOYW1lLA0KPiBIZWxwLA0KPiA+IE9wdGlvbiwgQml0 c0xlbmd0aCA9IE5vbmUpOg0KPiA+DQo+ID4gICAgICAgICAgUG9zTmFtZSAgICA9IDI4DQo+ID4N Cj4gPiAgICAgICAgICBQb3NDb21tZW50ID0gMzANCj4gPg0KPiA+ICAgICAgICAgIE5hbWVMaW5l PScnDQo+ID4NCj4gPiAgICAgICAgICBIZWxwTGluZT0nJw0KPiA+DQo+ID4gICAgICAgICAgT3B0 aW9uTGluZT0nJw0KPiA+DQo+ID4NCj4gPg0KPiA+ICsgICAgICAgIGlmIExlbmd0aCA9PSAwIGFu ZCBOYW1lID09ICdEdW1teSc6DQo+ID4NCj4gPiArICAgICAgICAgICAgcmV0dXJuICdcbicNCj4g Pg0KPiA+ICsNCj4gPg0KPiA+ICAgICAgICAgIElzQXJyYXkgPSBGYWxzZQ0KPiA+DQo+ID4gICAg ICAgICAgaWYgTGVuZ3RoIGluIFsxLDIsNCw4XToNCj4gPg0KPiA+ICAgICAgICAgICAgICBUeXBl ID0gIlVJTlQlZCIgJSAoTGVuZ3RoICogOCkNCj4gPg0KPiA+IEBAIC05OTIsNyArMTE5MiwxMiBA QCBFbmRMaXN0DQo+ID4gICAgICAgICAgZWxzZToNCj4gPg0KPiA+ICAgICAgICAgICAgICBPZmZz ZXRTdHIgPSAnMHglMDRYJyAlIE9mZnNldA0KPiA+DQo+ID4NCj4gPg0KPiA+IC0gICAgICAgIHJl dHVybiAiXG4vKiogT2Zmc2V0ICVzJXMlcyVzKiovXG4gICVzJXMlcztcbiIgJSAoT2Zmc2V0U3Ry LA0KPiBOYW1lTGluZSwNCj4gPiBIZWxwTGluZSwgT3B0aW9uTGluZSwgVHlwZSwgJyAnICogU3Bh Y2UxLCBOYW1lLCkNCj4gPg0KPiA+ICsgICAgICAgIGlmIEJpdHNMZW5ndGggaXMgTm9uZToNCj4g Pg0KPiA+ICsgICAgICAgICAgICBCaXRzTGVuZ3RoID0gJycNCj4gPg0KPiA+ICsgICAgICAgIGVs c2U6DQo+ID4NCj4gPiArICAgICAgICAgICAgQml0c0xlbmd0aCA9ICcgOiAlZCcgJSBCaXRzTGVu Z3RoDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICByZXR1cm4gIlxuLyoqIE9mZnNldCAl cyVzJXMlcyoqL1xuICAlcyVzJXMlcztcbiIgJSAoT2Zmc2V0U3RyLA0KPiA+IE5hbWVMaW5lLCBI ZWxwTGluZSwgT3B0aW9uTGluZSwgVHlwZSwgJyAnICogU3BhY2UxLCBOYW1lLCBCaXRzTGVuZ3Ro KQ0KPiA+DQo+ID4NCj4gPg0KPiA+ICAgICAgZGVmIFBvc3RQcm9jZXNzQm9keSAoc2VsZiwgVGV4 dEJvZHkpOg0KPiA+DQo+ID4gICAgICAgICAgTmV3VGV4dEJvZHkgPSBbXQ0KPiA+DQo+ID4gQEAg LTEwOTcsNiArMTMwMiw3IEBAIEVuZExpc3QNCj4gPiAgICAgICAgICAgICAgVXBkU3RydWN0dXJl ID0gWydGU1BUX1VQRCcsICdGU1BNX1VQRCcsICdGU1BTX1VQRCddDQo+ID4NCj4gPiAgICAgICAg ICAgICAgZm9yIEl0ZW0gaW4gc2VsZi5fQ2ZnSXRlbUxpc3Q6DQo+ID4NCj4gPiAgICAgICAgICAg ICAgICAgIGlmIEl0ZW1bImNuYW1lIl0gPT0gJ1NpZ25hdHVyZScgYW5kIEl0ZW1bInZhbHVlIl1b MDo2XSBpbg0KPiBVcGRTaWduYXR1cmU6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBJ dGVtWyJvZmZzZXQiXSA9IDAgIyByZS1pbml0aWFsaXplIG9mZnNldCB0byAwIHdoZW4gbmV3IFVQ RA0KPiBzdHJ1Y3R1cmUNCj4gPiBzdGFydGluZw0KPiA+DQo+ID4gICAgICAgICAgICAgICAgICAg ICAgVXBkT2Zmc2V0VGFibGUuYXBwZW5kIChJdGVtWyJvZmZzZXQiXSkNCj4gPg0KPiA+DQo+ID4N Cj4gPiAgICAgICAgICAgICAgZm9yIFVwZElkeCBpbiByYW5nZShsZW4oVXBkT2Zmc2V0VGFibGUp KToNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9JbnRlbEZzcDJQa2cvVG9vbHMvVGVzdHMvRXhwZWN0 ZWRGc3BVcGQuaA0KPiA+IGIvSW50ZWxGc3AyUGtnL1Rvb2xzL1Rlc3RzL0V4cGVjdGVkRnNwVXBk LmgNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAuLmJlMmVk OGFhOTkNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvSW50ZWxGc3AyUGtnL1Rvb2xzL1Rl c3RzL0V4cGVjdGVkRnNwVXBkLmgNCj4gPiBAQCAtMCwwICsxLDE2IEBADQo+ID4gKyNpZm5kZWYg X19GU1BVUERfSF9fDQo+ID4NCj4gPiArI2RlZmluZSBfX0ZTUFVQRF9IX18NCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICsjaW5jbHVkZSA8RnNwRWFzLmg+DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArI3By YWdtYSBwYWNrKDEpDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArI2RlZmluZSBGU1BUX1VQRF9TSUdO QVRVUkUgICAgICAgICAgICAgICAweDU0NUY0NDUwNTU0RDQ1NTEgICAgICAgIC8qDQo+ID4gJ1FF TVVQRF9UJyAqLw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyNkZWZpbmUgRlNQTV9VUERfU0lHTkFU VVJFICAgICAgICAgICAgICAgMHg0RDVGNDQ1MDU1NEQ0NTUxICAgICAgICAvKg0KPiA+ICdRRU1V UERfTScgKi8NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsjZGVmaW5lIEZTUFNfVVBEX1NJR05BVFVS RSAgICAgICAgICAgICAgIDB4NTM1RjQ0NTA1NTRENDU1MSAgICAgICAgLyoNCj4gPiAnUUVNVVBE X1MnICovDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArI3ByYWdtYSBwYWNrKCkNCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICsjZW5kaWYNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9JbnRlbEZzcDJQa2cvVG9v bHMvVGVzdHMvRXhwZWN0ZWRGc3BtVXBkLmgNCj4gPiBiL0ludGVsRnNwMlBrZy9Ub29scy9UZXN0 cy9FeHBlY3RlZEZzcG1VcGQuaA0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXgg MDAwMDAwMDAwMC4uODNmZDA2ZWNiNA0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9JbnRl bEZzcDJQa2cvVG9vbHMvVGVzdHMvRXhwZWN0ZWRGc3BtVXBkLmgNCj4gPiBAQCAtMCwwICsxLDc1 IEBADQo+ID4gKyNpZm5kZWYgX19GU1BNVVBEX0hfXw0KPiA+DQo+ID4gKyNkZWZpbmUgX19GU1BN VVBEX0hfXw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyNpbmNsdWRlIDxGc3BVcGQuaD4NCj4gPg0K PiA+ICsNCj4gPg0KPiA+ICsjcHJhZ21hIHBhY2soMSkNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICsvKiogRnNwIE0gQ29uZmlndXJhdGlvbg0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0IDB4 MDBDOCAtIERlYnVnIFNlcmlhbCBQb3J0IEJhc2UgYWRkcmVzcw0KPiA+DQo+ID4gKyAgRGVidWcg c2VyaWFsIHBvcnQgYmFzZSBhZGRyZXNzLiBUaGlzIG9wdGlvbiB3aWxsIGJlIHVzZWQgb25seSB3 aGVuIHRoZQ0KPiAnU2VyaWFsDQo+ID4gUG9ydA0KPiA+DQo+ID4gKyAgRGVidWcgRGV2aWNlJyBv cHRpb24gaXMgc2V0IHRvICdFeHRlcm5hbCBEZXZpY2UnLiAweDAwMDAwMDAwKERlZmF1bHQpLg0K PiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gKyAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIFNl cmlhbERlYnVnUG9ydEFkZHJlc3M7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArLyoqIE9mZnNldCAw eDAwQ0MgLSBEZWJ1ZyBTZXJpYWwgUG9ydCBUeXBlDQo+ID4NCj4gPiArICAxNjU1MCBjb21wYXRp YmxlIGRlYnVnIHNlcmlhbCBwb3J0IHJlc291cmNlIHR5cGUuIE5PTkUgbWVhbnMgbm8gc2VyaWFs DQo+IHBvcnQNCj4gPiBzdXBwb3J0Lg0KPiA+DQo+ID4gKyAgMHgwMjpNTUlPKERlZmF1bHQpLg0K PiA+DQo+ID4gKyAgMDpOT05FLCAxOkkvTywgMjpNTUlPDQo+ID4NCj4gPiArKiovDQo+ID4NCj4g PiArICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAgU2VyaWFsRGVidWdQb3J0VHlwZTsNCj4g Pg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0IDB4MDBDRCAtIFNlcmlhbCBQb3J0IERlYnVn IERldmljZQ0KPiA+DQo+ID4gKyAgU2VsZWN0IGFjdGl2ZSBzZXJpYWwgcG9ydCBkZXZpY2UgZm9y IGRlYnVnLiBGb3IgU09DIFVBUlQgZGV2aWNlcywnRGVidWcNCj4gU2VyaWFsDQo+ID4gUG9ydA0K PiA+DQo+ID4gKyAgQmFzZScgb3B0aW9ucyB3aWxsIGJlIGlnbm9yZWQuIDB4MDI6U09DIFVBUlQy KERlZmF1bHQpLg0KPiA+DQo+ID4gKyAgMDpTT0MgVUFSVDAsIDE6U09DIFVBUlQxLCAyOlNPQyBV QVJUMiwgMzpFeHRlcm5hbCBEZXZpY2UNCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsgIFVJTlQ4 ICAgICAgICAgICAgICAgICAgICAgICBTZXJpYWxEZWJ1Z1BvcnREZXZpY2U7DQo+ID4NCj4gPiAr DQo+ID4NCj4gPiArLyoqIE9mZnNldCAweDAwQ0UgLSBEZWJ1ZyBTZXJpYWwgUG9ydCBTdHJpZGUg U2l6ZQ0KPiA+DQo+ID4gKyAgRGVidWcgc2VyaWFsIHBvcnQgcmVnaXN0ZXIgbWFwIHN0cmlkZSBz aXplIGluIGJ5dGVzLiAweDAwOjEsDQo+IDB4MDI6NChEZWZhdWx0KS4NCj4gPg0KPiA+ICsgIDA6 MSwgMjo0DQo+ID4NCj4gPiArKiovDQo+ID4NCj4gPiArICBVSU5UOCAgICAgICAgICAgICAgICAg ICAgICAgU2VyaWFsRGVidWdQb3J0U3RyaWRlU2l6ZTsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsv KiogT2Zmc2V0IDB4MDBDRg0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gKyAgVUlOVDggICAgICAg ICAgICAgICAgICAgICAgIFVudXNlZFVwZFNwYWNlMlsxXTsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ ICsvKiogT2Zmc2V0IDB4MDBEMA0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gKyAgVUlOVDggICAg ICAgICAgICAgICAgICAgICAgIFJlc2VydmVkRnNwbVVwZFs0XTsNCj4gPg0KPiA+ICt9IEZTUF9N X0NPTkZJRzsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogRnNwIE0gVVBEIENvbmZpZ3VyYXRp b24NCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ID4NCj4gPiAr DQo+ID4NCj4gPiArLyoqIE9mZnNldCAweDAwMDANCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsg IEZTUF9VUERfSEVBREVSICAgICAgICAgICAgICBGc3BVcGRIZWFkZXI7DQo+ID4NCj4gPiArDQo+ ID4NCj4gPiArLyoqIE9mZnNldCAweDAwQTgNCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsgIEZT UE1fQVJDSF9VUEQgICAgICAgICAgICAgICBGc3BtQXJjaFVwZDsNCj4gPg0KPiA+ICsNCj4gPg0K PiA+ICsvKiogT2Zmc2V0IDB4MDBDOA0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gKyAgRlNQX01f Q09ORklHICAgICAgICAgICAgICAgIEZzcG1Db25maWc7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiAr LyoqIE9mZnNldCAweDAwRDQNCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsgIFVJTlQ4ICAgICAg ICAgICAgICAgICAgICAgICBVbnVzZWRVcGRTcGFjZTNbMl07DQo+ID4NCj4gPiArDQo+ID4NCj4g PiArLyoqIE9mZnNldCAweDAwRDYNCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsgIFVJTlQxNiAg ICAgICAgICAgICAgICAgICAgICBVcGRUZXJtaW5hdG9yOw0KPiA+DQo+ID4gK30gRlNQTV9VUEQ7 DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArI3ByYWdtYSBwYWNrKCkNCj4gPg0KPiA+ICsNCj4gPg0K PiA+ICsjZW5kaWYNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9JbnRlbEZzcDJQa2cvVG9vbHMvVGVz dHMvRXhwZWN0ZWRGc3BzVXBkLmgNCj4gPiBiL0ludGVsRnNwMlBrZy9Ub29scy9UZXN0cy9FeHBl Y3RlZEZzcHNVcGQuaA0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAw MDAwMC4uZTJiYzU0YTYxZA0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9JbnRlbEZzcDJQ a2cvVG9vbHMvVGVzdHMvRXhwZWN0ZWRGc3BzVXBkLmgNCj4gPiBAQCAtMCwwICsxLDY5IEBADQo+ ID4gKyNpZm5kZWYgX19GU1BTVVBEX0hfXw0KPiA+DQo+ID4gKyNkZWZpbmUgX19GU1BTVVBEX0hf Xw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyNpbmNsdWRlIDxGc3BVcGQuaD4NCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICsjcHJhZ21hIHBhY2soMSkNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsNCj4gPg0K PiA+ICsvKiogRnNwIFMgQ29uZmlndXJhdGlvbg0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gK3R5 cGVkZWYgc3RydWN0IHsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0IDB4MDExOCAt IEJNUCBMb2dvIERhdGEgU2l6ZQ0KPiA+DQo+ID4gKyAgQk1QIGxvZ28gZGF0YSBidWZmZXIgc2l6 ZS4gMHgwMDAwMDAwMChEZWZhdWx0KS4NCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsgIFVJTlQz MiAgICAgICAgICAgICAgICAgICAgICBMb2dvU2l6ZTsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsv KiogT2Zmc2V0IDB4MDExQyAtIEJNUCBMb2dvIERhdGEgUG9pbnRlcg0KPiA+DQo+ID4gKyAgQk1Q IGxvZ28gZGF0YSBwb2ludGVyIHRvIGEgQk1QIGZvcm1hdCBidWZmZXIuIDB4MDAwMDAwMDAoRGVm YXVsdCkuDQo+ID4NCj4gPiArKiovDQo+ID4NCj4gPiArICBVSU5UMzIgICAgICAgICAgICAgICAg ICAgICAgTG9nb1B0cjsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0IDB4MDEyMCAt IEdyYXBoaWNzIENvbmZpZ3VyYXRpb24gRGF0YSBQb2ludGVyDQo+ID4NCj4gPiArICBHcmFwaGlj cyBjb25maWd1cmF0aW9uIGRhdGEgdXNlZCBmb3IgaW5pdGlhbGl6YXRpb24uIDB4MDAwMDAwMDAo RGVmYXVsdCkuDQo+ID4NCj4gPiArKiovDQo+ID4NCj4gPiArICBVSU5UMzIgICAgICAgICAgICAg ICAgICAgICAgR3JhcGhpY3NDb25maWdQdHI7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArLyoqIE9m ZnNldCAweDAxMjQgLSBQQ0kgR0ZYIFRlbXBvcmFyeSBNTUlPIEJhc2UNCj4gPg0KPiA+ICsgIFBD SSBUZW1wb3JhcnkgUENJIEdGWCBCYXNlIHVzZWQgYmVmb3JlIGZ1bGwgUENJIGVudW1lcmF0aW9u Lg0KPiA+IDB4ODAwMDAwMDAoRGVmYXVsdCkuDQo+ID4NCj4gPiArKiovDQo+ID4NCj4gPiArICBV SU5UMzIgICAgICAgICAgICAgICAgICAgICAgUGNpVGVtcFJlc291cmNlQmFzZTsNCj4gPg0KPiA+ ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0IDB4MDEyOA0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4g KyAgVUlOVDggICAgICAgICAgICAgICAgICAgICAgIFVudXNlZFVwZFNwYWNlMVszXTsNCj4gPg0K PiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0IDB4MDEyQg0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ ID4gKyAgVUlOVDggICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkRnNwc1VwZDsNCj4gPg0K PiA+ICt9IEZTUF9TX0NPTkZJRzsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogRnNwIFMgVVBE IENvbmZpZ3VyYXRpb24NCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICt0eXBlZGVmIHN0cnVjdCB7 DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArLyoqIE9mZnNldCAweDAwMDANCj4gPg0KPiA+ICsqKi8N Cj4gPg0KPiA+ICsgIEZTUF9VUERfSEVBREVSICAgICAgICAgICAgICBGc3BVcGRIZWFkZXI7DQo+ ID4NCj4gPiArDQo+ID4NCj4gPiArLyoqIE9mZnNldCAweDAwRjgNCj4gPg0KPiA+ICsqKi8NCj4g Pg0KPiA+ICsgIEZTUFNfQVJDSF9VUEQgICAgICAgICAgICAgICBGc3BzQXJjaFVwZDsNCj4gPg0K PiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0IDB4MDExOA0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ ID4gKyAgRlNQX1NfQ09ORklHICAgICAgICAgICAgICAgIEZzcHNDb25maWc7DQo+ID4NCj4gPiAr DQo+ID4NCj4gPiArLyoqIE9mZnNldCAweDAxMkMNCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsg IFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICBVbnVzZWRVcGRTcGFjZTJbMl07DQo+ID4NCj4g PiArDQo+ID4NCj4gPiArLyoqIE9mZnNldCAweDAxMkUNCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ ICsgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgICBVcGRUZXJtaW5hdG9yOw0KPiA+DQo+ID4g K30gRlNQU19VUEQ7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArI3ByYWdtYSBwYWNrKCkNCj4gPg0K PiA+ICsNCj4gPg0KPiA+ICsjZW5kaWYNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9JbnRlbEZzcDJQ a2cvVG9vbHMvVGVzdHMvRXhwZWN0ZWRGc3B0VXBkLmgNCj4gPiBiL0ludGVsRnNwMlBrZy9Ub29s cy9UZXN0cy9FeHBlY3RlZEZzcHRVcGQuaA0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4g aW5kZXggMDAwMDAwMDAwMC4uMjViOGE3ZDYzYQ0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysg Yi9JbnRlbEZzcDJQa2cvVG9vbHMvVGVzdHMvRXhwZWN0ZWRGc3B0VXBkLmgNCj4gPiBAQCAtMCww ICsxLDg3IEBADQo+ID4gKyNpZm5kZWYgX19GU1BUVVBEX0hfXw0KPiA+DQo+ID4gKyNkZWZpbmUg X19GU1BUVVBEX0hfXw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyNpbmNsdWRlIDxGc3BVcGQuaD4N Cj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsjcHJhZ21hIHBhY2soMSkNCj4gPg0KPiA+ICsNCj4gPg0K PiA+ICsNCj4gPg0KPiA+ICsvKiogRnNwIFQgQ29tbW9uIFVQRA0KPiA+DQo+ID4gKyoqLw0KPiA+ DQo+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0 IDB4MDA0MA0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gKyAgVUlOVDggICAgICAgICAgICAgICAg ICAgICAgIFJldmlzaW9uOw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKy8qKiBPZmZzZXQgMHgwMDQx DQo+ID4NCj4gPiArKiovDQo+ID4NCj4gPiArICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAg UmVzZXJ2ZWRbM107DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArLyoqIE9mZnNldCAweDAwNDQNCj4g Pg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBNaWNy b2NvZGVSZWdpb25CYXNlOw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKy8qKiBPZmZzZXQgMHgwMDQ4 DQo+ID4NCj4gPiArKiovDQo+ID4NCj4gPiArICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAg TWljcm9jb2RlUmVnaW9uTGVuZ3RoOw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKy8qKiBPZmZzZXQg MHgwMDRDDQo+ID4NCj4gPiArKiovDQo+ID4NCj4gPiArICBVSU5UMzIgICAgICAgICAgICAgICAg ICAgICAgQ29kZVJlZ2lvbkJhc2U7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArLyoqIE9mZnNldCAw eDAwNTANCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsgIFVJTlQzMiAgICAgICAgICAgICAgICAg ICAgICBDb2RlUmVnaW9uTGVuZ3RoOw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKy8qKiBPZmZzZXQg MHgwMDU0DQo+ID4NCj4gPiArKiovDQo+ID4NCj4gPiArICBVSU5UOCAgICAgICAgICAgICAgICAg ICAgICAgUmVzZXJ2ZWQxWzEyXTsNCj4gPg0KPiA+ICt9IEZTUFRfQ09NTU9OX1VQRDsNCj4gPg0K PiA+ICsNCj4gPg0KPiA+ICsvKiogRnNwIFQgQ29uZmlndXJhdGlvbg0KPiA+DQo+ID4gKyoqLw0K PiA+DQo+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zm c2V0IDB4MDA2MCAtIENoaWNrZW4gYnl0ZXMgdG8gdGVzdCBIZXggY29uZmlnDQo+ID4NCj4gPiAr ICBUaGlzIG9wdGlvbiBzaG93cyBob3cgdG8gcHJlc2VudCBvcHRpb24gZm9yIDQgYnl0ZXMgZGF0 YQ0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gKyAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAg IENoaWNrZW5CeXRlczsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0IDB4MDA2NA0K PiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gKyAgVUlOVDggICAgICAgICAgICAgICAgICAgICAgIFJl c2VydmVkRnNwdFVwZDFbMjhdOw0KPiA+DQo+ID4gK30gRlNQX1RfQ09ORklHOw0KPiA+DQo+ID4g Kw0KPiA+DQo+ID4gKy8qKiBGc3AgVCBVUEQgQ29uZmlndXJhdGlvbg0KPiA+DQo+ID4gKyoqLw0K PiA+DQo+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zm c2V0IDB4MDAwMA0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gKyAgRlNQX1VQRF9IRUFERVIgICAg ICAgICAgICAgIEZzcFVwZEhlYWRlcjsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0 IDB4MDAyMA0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gKyAgRlNQVF9BUkNIX1VQRCAgICAgICAg ICAgICAgIEZzcHRBcmNoVXBkOw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKy8qKiBPZmZzZXQgMHgw MDQwDQo+ID4NCj4gPiArKiovDQo+ID4NCj4gPiArICBGU1BUX0NPTU1PTl9VUEQgICAgICAgICAg ICAgRnNwdENvbW1vblVwZDsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0IDB4MDA2 MA0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gKyAgRlNQX1RfQ09ORklHICAgICAgICAgICAgICAg IEZzcHRDb25maWc7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArLyoqIE9mZnNldCAweDAwODANCj4g Pg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsgIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICBVbnVz ZWRVcGRTcGFjZTBbNl07DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArLyoqIE9mZnNldCAweDAwODYN Cj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgICBV cGRUZXJtaW5hdG9yOw0KPiA+DQo+ID4gK30gRlNQVF9VUEQ7DQo+ID4NCj4gPiArDQo+ID4NCj4g PiArI3ByYWdtYSBwYWNrKCkNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsjZW5kaWYNCj4gPg0KPiA+ IGRpZmYgLS1naXQgYS9JbnRlbEZzcDJQa2cvVG9vbHMvVGVzdHMvRXhwZWN0ZWRPdXRwdXQuYnNm DQo+ID4gYi9JbnRlbEZzcDJQa2cvVG9vbHMvVGVzdHMvRXhwZWN0ZWRPdXRwdXQuYnNmDQo+ID4g bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwLi43NTBlMWI0ZmFmDQo+ ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL0ludGVsRnNwMlBrZy9Ub29scy9UZXN0cy9FeHBl Y3RlZE91dHB1dC5ic2YNCj4gPiBAQCAtMCwwICsxLDg4IEBADQo+ID4gK0dsb2JhbERhdGFEZWYN Cj4gPg0KPiA+ICsgICAgU0tVSUQgPSAwLCAiREVGQVVMVCINCj4gPg0KPiA+ICtFbmRHbG9iYWxE YXRhDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArU3RydWN0RGVmDQo+ID4NCj4g PiArDQo+ID4NCj4gPiArICAgIEZpbmQgIlFFTVVQRF9UIg0KPiA+DQo+ID4gKyAgICAgICAgJGdR ZW11RnNwUGtnVG9rZW5TcGFjZUd1aWRfUmV2aXNpb24gICAgICAgICAgICAgICAgICAgICAgICAg ICAgMSBieXRlcw0KPiA+ICRfREVGQVVMVF8gPSAweDAxDQo+ID4NCj4gPiArICAgICAgICBTa2lw IDg3IGJ5dGVzDQo+ID4NCj4gPiArICAgICAgICAkZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZF9D aGlja2VuQnl0ZXMgICAgICAgICAgICAgICAgICAgICAgICA0IGJ5dGVzDQo+ID4gJF9ERUZBVUxU XyA9IDB4MDAwMDAwMDANCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgRmluZCAiUUVNVVBEX00i DQo+ID4NCj4gPiArICAgICAgICAkZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZF9SZXZpc2lvbiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAxIGJ5dGVzDQo+ID4gJF9ERUZBVUxUXyA9IDB4MDEN Cj4gPg0KPiA+ICsgICAgICAgIFNraXAgMzUgYnl0ZXMNCj4gPg0KPiA+ICsgICAgICAgICRnUWVt dUZzcFBrZ1Rva2VuU3BhY2VHdWlkX1N0YWNrQmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAg IDQgYnl0ZXMNCj4gPiAkX0RFRkFVTFRfID0gMHgwMDA3MDAwMA0KPiA+DQo+ID4gKyAgICAgICAg JGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWRfU3RhY2tTaXplICAgICAgICAgICAgICAgICAgICAg ICAgICAgNCBieXRlcw0KPiA+ICRfREVGQVVMVF8gPSAweDAwMDEwMDAwDQo+ID4NCj4gPiArICAg ICAgICAkZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZF9Cb290TG9hZGVyVG9sdW1TaXplICAgICAg ICAgICAgICAgICA0DQo+IGJ5dGVzDQo+ID4gJF9ERUZBVUxUXyA9IDB4MDAwMDAwMDANCj4gPg0K PiA+ICsgICAgICAgICRnUGxhdGZvcm1Gc3BQa2dUb2tlblNwYWNlR3VpZF9Cb290bW9kZSAgICAg ICAgICAgICAgICAgICAgICAgIDQgYnl0ZXMNCj4gPiAkX0RFRkFVTFRfID0gMHgwMDAwMDAwMA0K PiA+DQo+ID4gKyAgICAgICAgU2tpcCA4IGJ5dGVzDQo+ID4NCj4gPiArICAgICAgICAkZ1FlbXVG c3BQa2dUb2tlblNwYWNlR3VpZF9TZXJpYWxEZWJ1Z1BvcnRBZGRyZXNzICAgICAgICAgICAgICA0 DQo+IGJ5dGVzDQo+ID4gJF9ERUZBVUxUXyA9IDB4MDAwMDAwMDANCj4gPg0KPiA+ICsgICAgICAg ICRnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkX1NlcmlhbERlYnVnUG9ydFR5cGUgICAgICAgICAg ICAgICAgIDENCj4gYnl0ZXMNCj4gPiAkX0RFRkFVTFRfID0gMHgwMg0KPiA+DQo+ID4gKyAgICAg ICAgJGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWRfU2VyaWFsRGVidWdQb3J0RGV2aWNlICAgICAg ICAgICAgICAgMQ0KPiBieXRlcw0KPiA+ICRfREVGQVVMVF8gPSAweDAyDQo+ID4NCj4gPiArICAg ICAgICAkZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZF9TZXJpYWxEZWJ1Z1BvcnRTdHJpZGVTaXpl ICAgICAgICAgICAxDQo+IGJ5dGVzDQo+ID4gJF9ERUZBVUxUXyA9IDB4MDINCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICsgICAgRmluZCAiUUVNVVBEX1MiDQo+ID4NCj4gPiArICAgICAgICAkZ1FlbXVG c3BQa2dUb2tlblNwYWNlR3VpZF9SZXZpc2lvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAx IGJ5dGVzDQo+ID4gJF9ERUZBVUxUXyA9IDB4MDENCj4gPg0KPiA+ICsgICAgICAgIFNraXAgNTUg Ynl0ZXMNCj4gPg0KPiA+ICsgICAgICAgICRnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkX0xvZ29T aXplICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQgYnl0ZXMNCj4gPiAkX0RFRkFVTFRfID0g MHgwMDAwMDAwMA0KPiA+DQo+ID4gKyAgICAgICAgJGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWRf TG9nb1B0ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCBieXRlcw0KPiA+ICRfREVGQVVM VF8gPSAweDAwMDAwMDAwDQo+ID4NCj4gPiArICAgICAgICAkZ1FlbXVGc3BQa2dUb2tlblNwYWNl R3VpZF9HcmFwaGljc0NvbmZpZ1B0ciAgICAgICAgICAgICAgICAgICA0IGJ5dGVzDQo+ID4gJF9E RUZBVUxUXyA9IDB4MDAwMDAwMDANCj4gPg0KPiA+ICsgICAgICAgICRnUWVtdUZzcFBrZ1Rva2Vu U3BhY2VHdWlkX1BjaVRlbXBSZXNvdXJjZUJhc2UgICAgICAgICAgICAgICAgIDQNCj4gYnl0ZXMN Cj4gPiAkX0RFRkFVTFRfID0gMHg4MDAwMDAwMA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK0VuZFN0 cnVjdA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK0xpc3QgJkVOX0RJUw0KPiA+ DQo+ID4gKyAgICBTZWxlY3Rpb24gMHgxICwgIkVuYWJsZWQiDQo+ID4NCj4gPiArICAgIFNlbGVj dGlvbiAweDAgLCAiRGlzYWJsZWQiDQo+ID4NCj4gPiArRW5kTGlzdA0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gK0xpc3QgJmdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWRfU2VyaWFsRGVidWdQb3J0VHlw ZQ0KPiA+DQo+ID4gKyAgICBTZWxlY3Rpb24gMCAsICJOT05FIg0KPiA+DQo+ID4gKyAgICBTZWxl Y3Rpb24gMSAsICJJL08iDQo+ID4NCj4gPiArICAgIFNlbGVjdGlvbiAyICwgIk1NSU8iDQo+ID4N Cj4gPiArRW5kTGlzdA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK0xpc3QgJmdRZW11RnNwUGtnVG9r ZW5TcGFjZUd1aWRfU2VyaWFsRGVidWdQb3J0RGV2aWNlDQo+ID4NCj4gPiArICAgIFNlbGVjdGlv biAwICwgIlNPQyBVQVJUMCINCj4gPg0KPiA+ICsgICAgU2VsZWN0aW9uIDEgLCAiU09DIFVBUlQx Ig0KPiA+DQo+ID4gKyAgICBTZWxlY3Rpb24gMiAsICJTT0MgVUFSVDIiDQo+ID4NCj4gPiArICAg IFNlbGVjdGlvbiAzICwgIkV4dGVybmFsIERldmljZSINCj4gPg0KPiA+ICtFbmRMaXN0DQo+ID4N Cj4gPiArDQo+ID4NCj4gPiArTGlzdCAmZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZF9TZXJpYWxE ZWJ1Z1BvcnRTdHJpZGVTaXplDQo+ID4NCj4gPiArICAgIFNlbGVjdGlvbiAwICwgIjEiDQo+ID4N Cj4gPiArICAgIFNlbGVjdGlvbiAyICwgIjQiDQo+ID4NCj4gPiArRW5kTGlzdA0KPiA+DQo+ID4g Kw0KPiA+DQo+ID4gK0JlZ2luSW5mb0Jsb2NrDQo+ID4NCj4gPiArICAgIFBQVmVyICAgICAgICIw LjEiDQo+ID4NCj4gPiArICAgIERlc2NyaXB0aW9uICJRRU1VIFBsYXRmb3JtIg0KPiA+DQo+ID4g K0VuZEluZm9CbG9jaw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK1BhZ2UgIkZTUCBUIg0KPiA+DQo+ ID4gKyAgICBFZGl0TnVtICRnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkX0NoaWNrZW5CeXRlcywg IkNoaWNrZW4NCj4gYnl0ZXMgdG8NCj4gPiB0ZXN0IEhleCBjb25maWciLCBIRVgsDQo+ID4NCj4g PiArICAgICAgICBIZWxwICJUaGlzIG9wdGlvbiBzaG93cyBob3cgdG8gcHJlc2VudCBvcHRpb24g Zm9yIDQgYnl0ZXMgZGF0YSINCj4gPg0KPiA+ICsgICAgICAgICAgICAgIlZhbGlkIHJhbmdlOiAw eDAwMDAwMDAwIH4gMHhGRkZGRkZGRiINCj4gPg0KPiA+ICtFbmRQYWdlDQo+ID4NCj4gPiArDQo+ ID4NCj4gPiArUGFnZSAiRlNQIE1lbW9yeUluaXQgU2V0dGluZ3MiDQo+ID4NCj4gPiArICAgIEVk aXROdW0gJGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWRfU2VyaWFsRGVidWdQb3J0QWRkcmVzcywN Cj4gIkRlYnVnDQo+ID4gU2VyaWFsIFBvcnQgQmFzZSBhZGRyZXNzIiwgSEVYLA0KPiA+DQo+ID4g KyAgICAgICAgSGVscCAiRGVidWcgc2VyaWFsIHBvcnQgYmFzZSBhZGRyZXNzLiBUaGlzIG9wdGlv biB3aWxsIGJlIHVzZWQgb25seQ0KPiB3aGVuDQo+ID4gdGhlICdTZXJpYWwgUG9ydCBEZWJ1ZyBE ZXZpY2UnIG9wdGlvbiBpcyBzZXQgdG8gJ0V4dGVybmFsIERldmljZScuDQo+ID4gMHgwMDAwMDAw MChEZWZhdWx0KS4iDQo+ID4NCj4gPiArICAgICAgICAgICAgICJWYWxpZCByYW5nZTogMHgwMDAw MDAwMCB+IDB4RkZGRkZGRkYiDQo+ID4NCj4gPiArICAgIENvbWJvICRnUWVtdUZzcFBrZ1Rva2Vu U3BhY2VHdWlkX1NlcmlhbERlYnVnUG9ydFR5cGUsICJEZWJ1Zw0KPiBTZXJpYWwNCj4gPiBQb3J0 IFR5cGUiLCAmZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZF9TZXJpYWxEZWJ1Z1BvcnRUeXBlLA0K PiA+DQo+ID4gKyAgICAgICAgSGVscCAiMTY1NTAgY29tcGF0aWJsZSBkZWJ1ZyBzZXJpYWwgcG9y dCByZXNvdXJjZSB0eXBlLiBOT05FIG1lYW5zDQo+IG5vDQo+ID4gc2VyaWFsIHBvcnQgc3VwcG9y dC4gMHgwMjpNTUlPKERlZmF1bHQpLiINCj4gPg0KPiA+ICsgICAgQ29tYm8gJGdRZW11RnNwUGtn VG9rZW5TcGFjZUd1aWRfU2VyaWFsRGVidWdQb3J0RGV2aWNlLCAiU2VyaWFsDQo+IFBvcnQNCj4g PiBEZWJ1ZyBEZXZpY2UiLCAmZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZF9TZXJpYWxEZWJ1Z1Bv cnREZXZpY2UsDQo+ID4NCj4gPiArICAgICAgICBIZWxwICJTZWxlY3QgYWN0aXZlIHNlcmlhbCBw b3J0IGRldmljZSBmb3IgZGVidWcuIEZvciBTT0MgVUFSVA0KPiA+IGRldmljZXMsJ0RlYnVnIFNl cmlhbCBQb3J0IEJhc2UnIG9wdGlvbnMgd2lsbCBiZSBpZ25vcmVkLiAweDAyOlNPQw0KPiA+IFVB UlQyKERlZmF1bHQpLiINCj4gPg0KPiA+ICsgICAgQ29tYm8gJGdRZW11RnNwUGtnVG9rZW5TcGFj ZUd1aWRfU2VyaWFsRGVidWdQb3J0U3RyaWRlU2l6ZSwNCj4gIkRlYnVnDQo+ID4gU2VyaWFsIFBv cnQgU3RyaWRlIFNpemUiLA0KPiA+ICZnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkX1NlcmlhbERl YnVnUG9ydFN0cmlkZVNpemUsDQo+ID4NCj4gPiArICAgICAgICBIZWxwICJEZWJ1ZyBzZXJpYWwg cG9ydCByZWdpc3RlciBtYXAgc3RyaWRlIHNpemUgaW4gYnl0ZXMuIDB4MDA6MSwNCj4gPiAweDAy OjQoRGVmYXVsdCkuIg0KPiA+DQo+ID4gK0VuZFBhZ2UNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICtQ YWdlICJGU1AgU2lsaWNvbkluaXQgU2V0dGluZ3MiDQo+ID4NCj4gPiArICAgIEVkaXROdW0gJGdR ZW11RnNwUGtnVG9rZW5TcGFjZUd1aWRfUGNpVGVtcFJlc291cmNlQmFzZSwgIlBDSQ0KPiBHRlgN Cj4gPiBUZW1wb3JhcnkgTU1JTyBCYXNlIiwgSEVYLA0KPiA+DQo+ID4gKyAgICAgICAgSGVscCAi UENJIFRlbXBvcmFyeSBQQ0kgR0ZYIEJhc2UgdXNlZCBiZWZvcmUgZnVsbCBQQ0kgZW51bWVyYXRp b24uDQo+ID4gMHg4MDAwMDAwMChEZWZhdWx0KS4iDQo+ID4NCj4gPiArICAgICAgICAgICAgICJW YWxpZCByYW5nZTogMHg4MDAwMDAwMCB+IDB4REZGRkZGRkYiDQo+ID4NCj4gPiArRW5kUGFnZQ0K PiA+DQo+ID4gKw0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL0ludGVsRnNwMlBrZy9Ub29scy9UZXN0 cy9FeHBlY3RlZE91dHB1dC55YW1sDQo+ID4gYi9JbnRlbEZzcDJQa2cvVG9vbHMvVGVzdHMvRXhw ZWN0ZWRPdXRwdXQueWFtbA0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAw MDAwMDAwMC4uMzU5NGI5ODk1ZQ0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9JbnRlbEZz cDJQa2cvVG9vbHMvVGVzdHMvRXhwZWN0ZWRPdXRwdXQueWFtbA0KPiA+IEBAIC0wLDAgKzEsMjcw IEBADQo+ID4gK3ZhcmlhYmxlOg0KPiA+DQo+ID4gKyAgUExBVEZPUk1fTkFNRSAgICAgICAgICAg ICAgICAgIDogUWVtdUZzcFBrZw0KPiA+DQo+ID4gKyAgUExBVEZPUk1fR1VJRCAgICAgICAgICAg ICAgICAgIDogMUJFREI1N0EtNzkwNC00MDZlLTg0ODYtQzg5RkM3RkIzOUVFDQo+ID4NCj4gPiAr ICBQTEFURk9STV9WRVJTSU9OICAgICAgICAgICAgICAgOiAwLjENCj4gPg0KPiA+ICsgIERTQ19T UEVDSUZJQ0FUSU9OICAgICAgICAgICAgICA6IDB4MDAwMTAwMDUNCj4gPg0KPiA+ICsgIE9VVFBV VF9ESVJFQ1RPUlkgICAgICAgICAgICAgICA6IEJ1aWxkL1FlbXVGc3BQa2cNCj4gPg0KPiA+ICsg IFNVUFBPUlRFRF9BUkNISVRFQ1RVUkVTICAgICAgICA6IElBMzJ8WDY0DQo+ID4NCj4gPiArICBC VUlMRF9UQVJHRVRTICAgICAgICAgICAgICAgICAgOiBERUJVR3xSRUxFQVNFDQo+ID4NCj4gPiAr ICBTS1VJRF9JREVOVElGSUVSICAgICAgICAgICAgICAgOiBERUZBVUxUDQo+ID4NCj4gPiArICBG TEFTSF9ERUZJTklUSU9OICAgICAgICAgICAgICAgOiBRZW11RnNwUGtnL1FlbXVGc3BQa2cuZmRm DQo+ID4NCj4gPiArICBGU1BfVF9VUERfVE9PTF9HVUlEICAgICAgICAgICAgOiAzNDY4NkNBMy0z NEY5LTQ5MDEtQjgyQS0NCj4gQkE2MzBGMDcxNEM2DQo+ID4NCj4gPiArICBGU1BfVl9VUERfVE9P TF9HVUlEICAgICAgICAgICAgOiA0RTJGNDcyNS03MzRBLTQzOTktQkFGNS0NCj4gQjRFMTYzNDhF QjJGDQo+ID4NCj4gPiArICBGU1BfTV9VUERfVE9PTF9HVUlEICAgICAgICAgICAgOiAzOUEyNTBE Qi1FNDY1LTRERDEtQTJBQy0NCj4gPiBFMkJEM0MwRTIzODUNCj4gPg0KPiA+ICsgIEZTUF9TX1VQ RF9UT09MX0dVSUQgICAgICAgICAgICA6IENBRTM2MDVCLTVCMzQtNEM4NS1CM0Q3LQ0KPiAyN0Q1 NDI3M0M0MEYNCj4gPg0KPiA+ICsgIEZTUF9UX1VQRF9GRlNfR1VJRCAgICAgICAgICAgICA6IDcw QkNGNkE1LUZGQjEtNDdEOC1CMUFFLUVGRTU1MDhFMjNFQQ0KPiA+DQo+ID4gKyAgRlNQX1ZfVVBE X0ZGU19HVUlEICAgICAgICAgICAgIDogMDE5N0VGNUUtMkZGQy00MDg5LThFNTUtRjcwNDAwQjE4 MTQ2DQo+ID4NCj4gPiArICBGU1BfTV9VUERfRkZTX0dVSUQgICAgICAgICAgICAgOiBENUI4NkFF QS02QUY3LTQwRDQtODAxNC0NCj4gOTgyMzAxQkMzRDg5DQo+ID4NCj4gPiArICBGU1BfU19VUERf RkZTX0dVSUQgICAgICAgICAgICAgOiBFM0NEOUIxOC05OThDLTRGNzYtQjY1RS05OEIxNTRFNTQ0 NkYNCj4gPg0KPiA+ICsgIEZTUF9QQUNLQUdFICAgICAgICAgICAgICAgICAgICA6IFFlbXVGc3BQ a2cNCj4gPg0KPiA+ICsgIEZTUF9JTUFHRV9JRCAgICAgICAgICAgICAgICAgICA6IDB4MjQ1MDUz NDY0RDQ1NTEyNCAgIyAkUUVNRlNQJA0KPiA+DQo+ID4gKyAgRlNQX0lNQUdFX1JFViAgICAgICAg ICAgICAgICAgIDogMHgwMDAwMTAxMA0KPiA+DQo+ID4gKyAgQ0FSX0JBU0VfQUREUkVTUyAgICAg ICAgICAgICAgIDogMHgwMDAwMDAwMA0KPiA+DQo+ID4gKyAgQ0FSX1JFR0lPTl9TSVpFICAgICAg ICAgICAgICAgIDogMHgwMDA4MDAwMA0KPiA+DQo+ID4gKyAgQ0FSX0JMRF9SRUdJT05fU0laRSAg ICAgICAgICAgIDogMHgwMDA3MDAwMA0KPiA+DQo+ID4gKyAgQ0FSX0ZTUF9SRUdJT05fU0laRSAg ICAgICAgICAgIDogMHgwMDAxMDAwMA0KPiA+DQo+ID4gKyAgRlNQX0FSQ0ggICAgICAgICAgICAg ICAgICAgICAgIDogWDY0DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArdGVtcGxh dGU6DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArY29uZmlnczoNCj4gPg0KPiA+ ICsgIC0gJEFDVElPTiAgICAgIDoNCj4gPg0KPiA+ICsgICAgICBwYWdlICAgICAgICAgOiBUTVA6 OiJGU1AgVCIsIE1FTTo6IkZTUCBNZW1vcnlJbml0IFNldHRpbmdzIiwgU0lMOjoiRlNQDQo+ID4g U2lsaWNvbkluaXQgU2V0dGluZ3MiDQo+ID4NCj4gPiArICAtICRBQ1RJT04gICAgICA6DQo+ID4N Cj4gPiArICAgICAgZmluZCAgICAgICAgIDogUUVNVVBEX1QNCj4gPg0KPiA+ICsgIC0gRlNQVF9V UEQgICAgIDoNCj4gPg0KPiA+ICsgICAgLSBGU1BfVVBEX0hFQURFUiA6DQo+ID4NCj4gPiArICAg ICAgLSBTaWduYXR1cmUgICAgOg0KPiA+DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAw eDA4DQo+ID4NCj4gPiArICAgICAgICAgIHZhbHVlICAgICAgICA6IDB4NTQ1RjQ0NTA1NTRENDU1 MQ0KPiA+DQo+ID4gKyAgICAgIC0gUmV2aXNpb24gICAgIDoNCj4gPg0KPiA+ICsgICAgICAgICAg bmFtZSAgICAgICAgIDogRnNwdFVwZFJldmlzaW9uDQo+ID4NCj4gPiArICAgICAgICAgIGxlbmd0 aCAgICAgICA6IDB4MDENCj4gPg0KPiA+ICsgICAgICAgICAgdmFsdWUgICAgICAgIDogMHgwMQ0K PiA+DQo+ID4gKyAgICAgIC0gUmVzZXJ2ZWQgICAgIDoNCj4gPg0KPiA+ICsgICAgICAgICAgbGVu Z3RoICAgICAgIDogMHgxNw0KPiA+DQo+ID4gKyAgICAgICAgICB2YWx1ZSAgICAgICAgOiB7MHgw MH0NCj4gPg0KPiA+ICsgICAgLSBGU1BUX0FSQ0hfVVBEIDoNCj4gPg0KPiA+ICsgICAgICAtIFJl dmlzaW9uICAgICA6DQo+ID4NCj4gPiArICAgICAgICAgIGxlbmd0aCAgICAgICA6IDB4MDENCj4g Pg0KPiA+ICsgICAgICAgICAgdmFsdWUgICAgICAgIDogMHgwMQ0KPiA+DQo+ID4gKyAgICAgIC0g UmVzZXJ2ZWQgICAgIDoNCj4gPg0KPiA+ICsgICAgICAgICAgbGVuZ3RoICAgICAgIDogMHgwMw0K PiA+DQo+ID4gKyAgICAgICAgICB2YWx1ZSAgICAgICAgOiB7MHgwMH0NCj4gPg0KPiA+ICsgICAg ICAtIExlbmd0aCAgICAgICA6DQo+ID4NCj4gPiArICAgICAgICAgIGxlbmd0aCAgICAgICA6IDB4 MDQNCj4gPg0KPiA+ICsgICAgICAgICAgdmFsdWUgICAgICAgIDogMHgwMDAwMDAyMA0KPiA+DQo+ ID4gKyAgICAgIC0gRnNwRGVidWdIYW5kbGVyIDoNCj4gPg0KPiA+ICsgICAgICAgICAgbGVuZ3Ro ICAgICAgIDogMHgwNA0KPiA+DQo+ID4gKyAgICAgICAgICB2YWx1ZSAgICAgICAgOiAweDAwMDAw MDAwDQo+ID4NCj4gPiArICAgICAgLSBSZXNlcnZlZDEgICAgOg0KPiA+DQo+ID4gKyAgICAgICAg ICBsZW5ndGggICAgICAgOiAweDE0DQo+ID4NCj4gPiArICAgICAgICAgIHZhbHVlICAgICAgICA6 IHsweDAwfQ0KPiA+DQo+ID4gKyAgICAtIEZTUFRfQ09NTU9OX1VQRCA6DQo+ID4NCj4gPiArICAg ICAgLSBSZXZpc2lvbiAgICAgOg0KPiA+DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAw eDAxDQo+ID4NCj4gPiArICAgICAgICAgIHZhbHVlICAgICAgICA6IDB4MDENCj4gPg0KPiA+ICsg ICAgICAtIFJlc2VydmVkICAgICA6DQo+ID4NCj4gPiArICAgICAgICAgIGxlbmd0aCAgICAgICA6 IDB4MDMNCj4gPg0KPiA+ICsgICAgICAgICAgdmFsdWUgICAgICAgIDogezB4MDB9DQo+ID4NCj4g PiArICAgICAgLSBNaWNyb2NvZGVSZWdpb25CYXNlIDoNCj4gPg0KPiA+ICsgICAgICAgICAgbGVu Z3RoICAgICAgIDogMHgwNA0KPiA+DQo+ID4gKyAgICAgICAgICB2YWx1ZSAgICAgICAgOiAweDAw MDAwMDAwDQo+ID4NCj4gPiArICAgICAgLSBNaWNyb2NvZGVSZWdpb25MZW5ndGggOg0KPiA+DQo+ ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAweDA0DQo+ID4NCj4gPiArICAgICAgICAgIHZh bHVlICAgICAgICA6IDB4MDAwMDAwMDANCj4gPg0KPiA+ICsgICAgICAtIENvZGVSZWdpb25CYXNl IDoNCj4gPg0KPiA+ICsgICAgICAgICAgbGVuZ3RoICAgICAgIDogMHgwNA0KPiA+DQo+ID4gKyAg ICAgICAgICB2YWx1ZSAgICAgICAgOiAweDAwMDAwMDAwDQo+ID4NCj4gPiArICAgICAgLSBDb2Rl UmVnaW9uTGVuZ3RoIDoNCj4gPg0KPiA+ICsgICAgICAgICAgbGVuZ3RoICAgICAgIDogMHgwNA0K PiA+DQo+ID4gKyAgICAgICAgICB2YWx1ZSAgICAgICAgOiAweDAwMDAwMDAwDQo+ID4NCj4gPiAr ICAgICAgLSBSZXNlcnZlZDEgICAgOg0KPiA+DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAgICAg OiAweDBDDQo+ID4NCj4gPiArICAgICAgICAgIHZhbHVlICAgICAgICA6IHsweDAwfQ0KPiA+DQo+ ID4gKyAgICAtIEZTUF9UX0NPTkZJRyA6DQo+ID4NCj4gPiArICAgICAgLSAkQUNUSU9OICAgICAg Og0KPiA+DQo+ID4gKyAgICAgICAgICBwYWdlICAgICAgICAgOiBUTVANCj4gPg0KPiA+ICsgICAg ICAtIENoaWNrZW5CeXRlcyA6DQo+ID4NCj4gPiArICAgICAgICAgIG5hbWUgICAgICAgICA6IENo aWNrZW4gYnl0ZXMgdG8gdGVzdCBIZXggY29uZmlnDQo+ID4NCj4gPiArICAgICAgICAgIHR5cGUg ICAgICAgICA6IEVkaXROdW0sIEhFWCwgKDB4MDAwMDAwMDAsMHhGRkZGRkZGRikNCj4gPg0KPiA+ ICsgICAgICAgICAgaGVscCAgICAgICAgIDogPg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICBUaGlzIG9wdGlvbiBzaG93cyBob3cgdG8gcHJlc2VudCBvcHRpb24gZm9yIDQgYnl0 ZXMgZGF0YQ0KPiA+DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAweDA0DQo+ID4NCj4g PiArICAgICAgICAgIHZhbHVlICAgICAgICA6IDB4MDAwMDAwMDANCj4gPg0KPiA+ICsgICAgICAt IFJlc2VydmVkRnNwdFVwZDEgOg0KPiA+DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAw eDFDDQo+ID4NCj4gPiArICAgICAgICAgIHZhbHVlICAgICAgICA6IHsweDAwfQ0KPiA+DQo+ID4g KyAgICAtIFVwZFRlcm1pbmF0b3IgOg0KPiA+DQo+ID4gKyAgICAgICAgbGVuZ3RoICAgICAgIDog MHgwMg0KPiA+DQo+ID4gKyAgICAgICAgdmFsdWUgICAgICAgIDogMHg1NUFBDQo+ID4NCj4gPiAr ICAgIC0gJEFDVElPTiAgICAgIDoNCj4gPg0KPiA+ICsgICAgICAgIGZpbmQgICAgICAgICA6IFFF TVVQRF9NDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAtIEZTUE1fVVBEICAgICA6DQo+ID4NCj4g PiArICAgIC0gRlNQX1VQRF9IRUFERVIgOg0KPiA+DQo+ID4gKyAgICAgIC0gU2lnbmF0dXJlICAg IDoNCj4gPg0KPiA+ICsgICAgICAgICAgbGVuZ3RoICAgICAgIDogMHgwOA0KPiA+DQo+ID4gKyAg ICAgICAgICB2YWx1ZSAgICAgICAgOiAweDRENUY0NDUwNTU0RDQ1NTENCj4gPg0KPiA+ICsgICAg ICAtIFJldmlzaW9uICAgICA6DQo+ID4NCj4gPiArICAgICAgICAgIG5hbWUgICAgICAgICA6IEZz cG1VcGRSZXZpc2lvbg0KPiA+DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAweDAxDQo+ ID4NCj4gPiArICAgICAgICAgIHZhbHVlICAgICAgICA6IDB4MDENCj4gPg0KPiA+ICsgICAgICAt IFJlc2VydmVkICAgICA6DQo+ID4NCj4gPiArICAgICAgICAgIGxlbmd0aCAgICAgICA6IDB4MTcN Cj4gPg0KPiA+ICsgICAgICAgICAgdmFsdWUgICAgICAgIDogezB4MDB9DQo+ID4NCj4gPiArICAg IC0gRlNQTV9BUkNIX1VQRCA6DQo+ID4NCj4gPiArICAgICAgLSBSZXZpc2lvbiAgICAgOg0KPiA+ DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAweDAxDQo+ID4NCj4gPiArICAgICAgICAg IHZhbHVlICAgICAgICA6IDB4MDENCj4gPg0KPiA+ICsgICAgICAtIFJlc2VydmVkICAgICA6DQo+ ID4NCj4gPiArICAgICAgICAgIGxlbmd0aCAgICAgICA6IDB4MDMNCj4gPg0KPiA+ICsgICAgICAg ICAgdmFsdWUgICAgICAgIDogezB4MDB9DQo+ID4NCj4gPiArICAgICAgLSBOdnNCdWZmZXJQdHIg Og0KPiA+DQo+ID4gKyAgICAgICAgICBzdHJ1Y3QgICAgICAgOiBWT0lEKg0KPiA+DQo+ID4gKyAg ICAgICAgICBsZW5ndGggICAgICAgOiAweDA0DQo+ID4NCj4gPiArICAgICAgICAgIHZhbHVlICAg ICAgICA6IDB4MDAwMDAwMDANCj4gPg0KPiA+ICsgICAgICAtIFN0YWNrQmFzZSAgICA6DQo+ID4N Cj4gPiArICAgICAgICAgIHN0cnVjdCAgICAgICA6IFZPSUQqDQo+ID4NCj4gPiArICAgICAgICAg IG5hbWUgICAgICAgICA6IFN0YWNrQmFzZQ0KPiA+DQo+ID4gKyAgICAgICAgICBoZWxwICAgICAg ICAgOiA+DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgIFN0YWNrIGJhc2UgZm9y IEZTUCB1c2UuIERlZmF1bHQtIDB4RkVGMTYwMDANCj4gPg0KPiA+ICsgICAgICAgICAgbGVuZ3Ro ICAgICAgIDogMHgwNA0KPiA+DQo+ID4gKyAgICAgICAgICB2YWx1ZSAgICAgICAgOiAkKENBUl9C TERfUkVHSU9OX1NJWkUpDQo+ID4NCj4gPiArICAgICAgLSBTdGFja1NpemUgICAgOg0KPiA+DQo+ ID4gKyAgICAgICAgICBuYW1lICAgICAgICAgOiBTdGFja1NpemUNCj4gPg0KPiA+ICsgICAgICAg ICAgaGVscCAgICAgICAgIDogPg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICBU byBwYXNzIHRoZSBzdGFjayBzaXplIGZvciBGU1AgdXNlLiBCb290bG9hZGVyIGNhbg0KPiA+IHBy b2dyYW1tYXRpY2FsbHkgZ2V0IHRoZSBGU1AgcmVxdWVzdGVkIFN0YWNrU2l6ZSBieSB1c2luZyB0 aGUgZGVmYXVsdHMgaW4NCj4gdGhlDQo+ID4gRlNQLU0gY29tcG9uZW50LiBUaGlzIGlzIHRoZSBt aW5pbXVtIHN0YWNrIHNpemUgZXhwZWN0ZWQgYnkgdGhpcyByZXZpc2lvbg0KPiBvZg0KPiA+IEZT UC4gRGVmYXVsdC0gMHgyQTAwMA0KPiA+DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAw eDA0DQo+ID4NCj4gPiArICAgICAgICAgIHZhbHVlICAgICAgICA6ICQoQ0FSX0ZTUF9SRUdJT05f U0laRSkNCj4gPg0KPiA+ICsgICAgICAtIEJvb3RMb2FkZXJUb2x1bVNpemUgOg0KPiA+DQo+ID4g KyAgICAgICAgICBuYW1lICAgICAgICAgOiBCb290TG9hZGVyVG9sdW1TaXplDQo+ID4NCj4gPiAr ICAgICAgICAgIGhlbHAgICAgICAgICA6ID4NCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgVG8gcGFzcyBCb290bG9hZGVyIFRvbHVtIHNpemUuDQo+ID4NCj4gPiArICAgICAgICAg IGxlbmd0aCAgICAgICA6IDB4MDQNCj4gPg0KPiA+ICsgICAgICAgICAgdmFsdWUgICAgICAgIDog MHgwMDAwMDAwMA0KPiA+DQo+ID4gKyAgICAgIC0gQm9vdG1vZGUgICAgIDoNCj4gPg0KPiA+ICsg ICAgICAgICAgbmFtZSAgICAgICAgIDogQm9vdG1vZGUNCj4gPg0KPiA+ICsgICAgICAgICAgaGVs cCAgICAgICAgIDogPg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICBUbyBtYWlu dGFpbiBCb290bW9kZSBkZXRhaWxzLg0KPiA+DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAgICAg OiAweDA0DQo+ID4NCj4gPiArICAgICAgICAgIHZhbHVlICAgICAgICA6IDB4MDAwMDAwMDANCj4g Pg0KPiA+ICsgICAgICAtIFJlc2VydmVkMSAgICA6DQo+ID4NCj4gPiArICAgICAgICAgIGxlbmd0 aCAgICAgICA6IDB4MDgNCj4gPg0KPiA+ICsgICAgICAgICAgdmFsdWUgICAgICAgIDogezB4MDB9 DQo+ID4NCj4gPiArICAgIC0gRlNQX01fQ09ORklHIDoNCj4gPg0KPiA+ICsgICAgICAtICRBQ1RJ T04gICAgICA6DQo+ID4NCj4gPiArICAgICAgICAgIHBhZ2UgICAgICAgICA6IE1FTQ0KPiA+DQo+ ID4gKyAgICAgIC0gU2VyaWFsRGVidWdQb3J0QWRkcmVzcyA6DQo+ID4NCj4gPiArICAgICAgICAg IG5hbWUgICAgICAgICA6IERlYnVnIFNlcmlhbCBQb3J0IEJhc2UgYWRkcmVzcw0KPiA+DQo+ID4g KyAgICAgICAgICB0eXBlICAgICAgICAgOiBFZGl0TnVtLCBIRVgsICgweDAwMDAwMDAwLDB4RkZG RkZGRkYpDQo+ID4NCj4gPiArICAgICAgICAgIGhlbHAgICAgICAgICA6ID4NCj4gPg0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgRGVidWcgc2VyaWFsIHBvcnQgYmFzZSBhZGRyZXNzLiBU aGlzIG9wdGlvbiB3aWxsIGJlIHVzZWQgb25seQ0KPiA+IHdoZW4gdGhlICdTZXJpYWwgUG9ydCBE ZWJ1ZyBEZXZpY2UnDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbiBp cyBzZXQgdG8gJ0V4dGVybmFsIERldmljZScuIDB4MDAwMDAwMDAoRGVmYXVsdCkuDQo+ID4NCj4g PiArICAgICAgICAgIGxlbmd0aCAgICAgICA6IDB4MDQNCj4gPg0KPiA+ICsgICAgICAgICAgdmFs dWUgICAgICAgIDogMHgwMDAwMDAwMA0KPiA+DQo+ID4gKyAgICAgIC0gU2VyaWFsRGVidWdQb3J0 VHlwZSA6DQo+ID4NCj4gPiArICAgICAgICAgIG5hbWUgICAgICAgICA6IERlYnVnIFNlcmlhbCBQ b3J0IFR5cGUNCj4gPg0KPiA+ICsgICAgICAgICAgdHlwZSAgICAgICAgIDogQ29tYm8NCj4gPg0K PiA+ICsgICAgICAgICAgb3B0aW9uICAgICAgIDogMDpOT05FLCAxOkkvTywgMjpNTUlPDQo+ID4N Cj4gPiArICAgICAgICAgIGhlbHAgICAgICAgICA6ID4NCj4gPg0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgMTY1NTAgY29tcGF0aWJsZSBkZWJ1ZyBzZXJpYWwgcG9ydCByZXNvdXJjZSB0 eXBlLiBOT05FDQo+IG1lYW5zDQo+ID4gbm8gc2VyaWFsIHBvcnQgc3VwcG9ydC4gMHgwMjpNTUlP KERlZmF1bHQpLg0KPiA+DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAweDAxDQo+ID4N Cj4gPiArICAgICAgICAgIHZhbHVlICAgICAgICA6IDB4MDINCj4gPg0KPiA+ICsgICAgICAtIFNl cmlhbERlYnVnUG9ydERldmljZSA6DQo+ID4NCj4gPiArICAgICAgICAgIG5hbWUgICAgICAgICA6 IFNlcmlhbCBQb3J0IERlYnVnIERldmljZQ0KPiA+DQo+ID4gKyAgICAgICAgICB0eXBlICAgICAg ICAgOiBDb21ibw0KPiA+DQo+ID4gKyAgICAgICAgICBvcHRpb24gICAgICAgOiAwOlNPQyBVQVJU MCwgMTpTT0MgVUFSVDEsIDI6U09DIFVBUlQyLCAzOkV4dGVybmFsDQo+IERldmljZQ0KPiA+DQo+ ID4gKyAgICAgICAgICBoZWxwICAgICAgICAgOiA+DQo+ID4NCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgIFNlbGVjdCBhY3RpdmUgc2VyaWFsIHBvcnQgZGV2aWNlIGZvciBkZWJ1Zy4NCj4g Pg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgRm9yIFNPQyBVQVJUIGRldmljZXMsJ0Rl YnVnIFNlcmlhbCBQb3J0IEJhc2UnIG9wdGlvbnMgd2lsbCBiZQ0KPiA+IGlnbm9yZWQuIDB4MDI6 U09DIFVBUlQyKERlZmF1bHQpLg0KPiA+DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAw eDAxDQo+ID4NCj4gPiArICAgICAgICAgIHZhbHVlICAgICAgICA6IDB4MDINCj4gPg0KPiA+ICsg ICAgICAtIFNlcmlhbERlYnVnUG9ydFN0cmlkZVNpemUgOg0KPiA+DQo+ID4gKyAgICAgICAgICBu YW1lICAgICAgICAgOiBEZWJ1ZyBTZXJpYWwgUG9ydCBTdHJpZGUgU2l6ZQ0KPiA+DQo+ID4gKyAg ICAgICAgICB0eXBlICAgICAgICAgOiBDb21ibw0KPiA+DQo+ID4gKyAgICAgICAgICBvcHRpb24g ICAgICAgOiAwOjEsIDI6NA0KPiA+DQo+ID4gKyAgICAgICAgICBoZWxwICAgICAgICAgOiA+DQo+ ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgIERlYnVnIHNlcmlhbCBwb3J0IHJlZ2lz dGVyIG1hcCBzdHJpZGUgc2l6ZSBpbiBieXRlcy4gMHgwMDoxLA0KPiA+IDB4MDI6NChEZWZhdWx0 KS4NCj4gPg0KPiA+ICsgICAgICAgICAgbGVuZ3RoICAgICAgIDogMHgwMQ0KPiA+DQo+ID4gKyAg ICAgICAgICB2YWx1ZSAgICAgICAgOiAweDAyDQo+ID4NCj4gPiArICAgICAgLSBSZXNlcnZlZEZz cG1VcGQgOg0KPiA+DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAweDA0DQo+ID4NCj4g PiArICAgICAgICAgIHZhbHVlICAgICAgICA6IHsweDAwfQ0KPiA+DQo+ID4gKyAgICAtIFVwZFRl cm1pbmF0b3IgOg0KPiA+DQo+ID4gKyAgICAgICAgbGVuZ3RoICAgICAgIDogMHgwMg0KPiA+DQo+ ID4gKyAgICAgICAgdmFsdWUgICAgICAgIDogMHg1NUFBDQo+ID4NCj4gPiArICAgIC0gJEFDVElP TiAgICAgIDoNCj4gPg0KPiA+ICsgICAgICAgIGZpbmQgICAgICAgICA6IFFFTVVQRF9TDQo+ID4N Cj4gPiArDQo+ID4NCj4gPiArICAtIEZTUFNfVVBEICAgICA6DQo+ID4NCj4gPiArICAgIC0gRlNQ X1VQRF9IRUFERVIgOg0KPiA+DQo+ID4gKyAgICAgIC0gU2lnbmF0dXJlICAgIDoNCj4gPg0KPiA+ ICsgICAgICAgICAgbGVuZ3RoICAgICAgIDogMHgwOA0KPiA+DQo+ID4gKyAgICAgICAgICB2YWx1 ZSAgICAgICAgOiAweDUzNUY0NDUwNTU0RDQ1NTENCj4gPg0KPiA+ICsgICAgICAtIFJldmlzaW9u ICAgICA6DQo+ID4NCj4gPiArICAgICAgICAgIG5hbWUgICAgICAgICA6IEZzcHNVcGRSZXZpc2lv bg0KPiA+DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAweDAxDQo+ID4NCj4gPiArICAg ICAgICAgIHZhbHVlICAgICAgICA6IDB4MDENCj4gPg0KPiA+ICsgICAgICAtIFJlc2VydmVkICAg ICA6DQo+ID4NCj4gPiArICAgICAgICAgIGxlbmd0aCAgICAgICA6IDB4MTcNCj4gPg0KPiA+ICsg ICAgICAgICAgdmFsdWUgICAgICAgIDogezB4MDB9DQo+ID4NCj4gPiArICAgIC0gRlNQU19BUkNI X1VQRCA6DQo+ID4NCj4gPiArICAgICAgLSBSZXZpc2lvbiAgICAgOg0KPiA+DQo+ID4gKyAgICAg ICAgICBsZW5ndGggICAgICAgOiAweDAxDQo+ID4NCj4gPiArICAgICAgICAgIHZhbHVlICAgICAg ICA6IDB4MDENCj4gPg0KPiA+ICsgICAgICAtIFJlc2VydmVkICAgICA6DQo+ID4NCj4gPiArICAg ICAgICAgIGxlbmd0aCAgICAgICA6IDB4MDMNCj4gPg0KPiA+ICsgICAgICAgICAgdmFsdWUgICAg ICAgIDogezB4MDB9DQo+ID4NCj4gPiArICAgICAgLSBMZW5ndGggICAgICAgOg0KPiA+DQo+ID4g KyAgICAgICAgICBsZW5ndGggICAgICAgOiAweDA0DQo+ID4NCj4gPiArICAgICAgICAgIHZhbHVl ICAgICAgICA6IDB4MDAwMDAwMjANCj4gPg0KPiA+ICsgICAgICAtIEZzcEV2ZW50SGFuZGxlciA6 DQo+ID4NCj4gPiArICAgICAgICAgIGxlbmd0aCAgICAgICA6IDB4MDQNCj4gPg0KPiA+ICsgICAg ICAgICAgdmFsdWUgICAgICAgIDogMHgwMDAwMDAwMA0KPiA+DQo+ID4gKyAgICAgIC0gRW5hYmxl TXVsdGlQaGFzZVNpbGljb25Jbml0IDoNCj4gPg0KPiA+ICsgICAgICAgICAgbGVuZ3RoICAgICAg IDogMHgwMQ0KPiA+DQo+ID4gKyAgICAgICAgICB2YWx1ZSAgICAgICAgOiAweDAwDQo+ID4NCj4g PiArICAgICAgLSBSZXNlcnZlZDEgICAgOg0KPiA+DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAg ICAgOiAweDEzDQo+ID4NCj4gPiArICAgICAgICAgIHZhbHVlICAgICAgICA6IHsweDAwfQ0KPiA+ DQo+ID4gKyAgICAtIEZTUF9TX0NPTkZJRyA6DQo+ID4NCj4gPiArICAgICAgLSAkQUNUSU9OICAg ICAgOg0KPiA+DQo+ID4gKyAgICAgICAgICBwYWdlICAgICAgICAgOiBTSUwNCj4gPg0KPiA+ICsg ICAgICAtIExvZ29TaXplICAgICA6DQo+ID4NCj4gPiArICAgICAgICAgIG5hbWUgICAgICAgICA6 IEJNUCBMb2dvIERhdGEgU2l6ZQ0KPiA+DQo+ID4gKyAgICAgICAgICB0eXBlICAgICAgICAgOiBS ZXNlcnZlZA0KPiA+DQo+ID4gKyAgICAgICAgICBoZWxwICAgICAgICAgOiA+DQo+ID4NCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgIEJNUCBsb2dvIGRhdGEgYnVmZmVyIHNpemUuIDB4MDAw MDAwMDAoRGVmYXVsdCkuDQo+ID4NCj4gPiArICAgICAgICAgIGxlbmd0aCAgICAgICA6IDB4MDQN Cj4gPg0KPiA+ICsgICAgICAgICAgdmFsdWUgICAgICAgIDogMHgwMDAwMDAwMA0KPiA+DQo+ID4g KyAgICAgIC0gTG9nb1B0ciAgICAgIDoNCj4gPg0KPiA+ICsgICAgICAgICAgbmFtZSAgICAgICAg IDogQk1QIExvZ28gRGF0YSBQb2ludGVyDQo+ID4NCj4gPiArICAgICAgICAgIHR5cGUgICAgICAg ICA6IFJlc2VydmVkDQo+ID4NCj4gPiArICAgICAgICAgIGhlbHAgICAgICAgICA6ID4NCj4gPg0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgQk1QIGxvZ28gZGF0YSBwb2ludGVyIHRvIGEg Qk1QIGZvcm1hdCBidWZmZXIuDQo+ID4gMHgwMDAwMDAwMChEZWZhdWx0KS4NCj4gPg0KPiA+ICsg ICAgICAgICAgbGVuZ3RoICAgICAgIDogMHgwNA0KPiA+DQo+ID4gKyAgICAgICAgICB2YWx1ZSAg ICAgICAgOiAweDAwMDAwMDAwDQo+ID4NCj4gPiArICAgICAgLSBHcmFwaGljc0NvbmZpZ1B0ciA6 DQo+ID4NCj4gPiArICAgICAgICAgIG5hbWUgICAgICAgICA6IEdyYXBoaWNzIENvbmZpZ3VyYXRp b24gRGF0YSBQb2ludGVyDQo+ID4NCj4gPiArICAgICAgICAgIHR5cGUgICAgICAgICA6IFJlc2Vy dmVkDQo+ID4NCj4gPiArICAgICAgICAgIGhlbHAgICAgICAgICA6ID4NCj4gPg0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgR3JhcGhpY3MgY29uZmlndXJhdGlvbiBkYXRhIHVzZWQgZm9y IGluaXRpYWxpemF0aW9uLg0KPiA+IDB4MDAwMDAwMDAoRGVmYXVsdCkuDQo+ID4NCj4gPiArICAg ICAgICAgIGxlbmd0aCAgICAgICA6IDB4MDQNCj4gPg0KPiA+ICsgICAgICAgICAgdmFsdWUgICAg ICAgIDogMHgwMDAwMDAwMA0KPiA+DQo+ID4gKyAgICAgIC0gUGNpVGVtcFJlc291cmNlQmFzZSA6 DQo+ID4NCj4gPiArICAgICAgICAgIG5hbWUgICAgICAgICA6IFBDSSBHRlggVGVtcG9yYXJ5IE1N SU8gQmFzZQ0KPiA+DQo+ID4gKyAgICAgICAgICB0eXBlICAgICAgICAgOiBFZGl0TnVtLCBIRVgs ICgweDgwMDAwMDAwLDB4REZGRkZGRkYpDQo+ID4NCj4gPiArICAgICAgICAgIGhlbHAgICAgICAg ICA6ID4NCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgUENJIFRlbXBvcmFyeSBQ Q0kgR0ZYIEJhc2UgdXNlZCBiZWZvcmUgZnVsbCBQQ0kNCj4gZW51bWVyYXRpb24uDQo+ID4gMHg4 MDAwMDAwMChEZWZhdWx0KS4NCj4gPg0KPiA+ICsgICAgICAgICAgbGVuZ3RoICAgICAgIDogMHgw NA0KPiA+DQo+ID4gKyAgICAgICAgICB2YWx1ZSAgICAgICAgOiAweDgwMDAwMDAwDQo+ID4NCj4g PiArICAgICAgLSBSZXNlcnZlZEZzcHNVcGQgOg0KPiA+DQo+ID4gKyAgICAgICAgICBsZW5ndGgg ICAgICAgOiAweDAxDQo+ID4NCj4gPiArICAgICAgICAgIHZhbHVlICAgICAgICA6IDB4MDANCj4g Pg0KPiA+ICsgICAgLSBVcGRUZXJtaW5hdG9yIDoNCj4gPg0KPiA+ICsgICAgICAgIGxlbmd0aCAg ICAgICA6IDB4MDINCj4gPg0KPiA+ICsgICAgICAgIHZhbHVlICAgICAgICA6IDB4NTVBQQ0KPiA+ DQo+ID4gKw0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL0ludGVsRnNwMlBrZy9Ub29scy9UZXN0cy9R ZW11RnNwUGtnLmRzYw0KPiA+IGIvSW50ZWxGc3AyUGtnL1Rvb2xzL1Rlc3RzL1FlbXVGc3BQa2cu ZHNjDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwLi5hZjBi ZDRlNzE3DQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL0ludGVsRnNwMlBrZy9Ub29scy9U ZXN0cy9RZW11RnNwUGtnLmRzYw0KPiA+IEBAIC0wLDAgKzEsNDY5IEBADQo+ID4gKyMjIEBmaWxl DQo+ID4NCj4gPiArIyBGU1AgRFNDIGJ1aWxkIGZpbGUgZm9yIFFFTVUgcGxhdGZvcm0NCj4gPg0K PiA+ICsjDQo+ID4NCj4gPiArIyBDb3B5cmlnaHQgKGMpIDIwMTcgLSAyMDIxLCBJbnRlbCBDb3Jw b3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4NCj4gPiArIw0KPiA+DQo+ID4g KyMgICAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KPiA+DQo+ ID4gKyMgICAgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMg YW5kIGNvbmRpdGlvbnMgb2YgdGhlDQo+IEJTRA0KPiA+IExpY2Vuc2UNCj4gPg0KPiA+ICsjICAg IHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiBUaGUgZnVsbCB0ZXh0IG9mIHRo ZSBsaWNlbnNlIG1heSBiZQ0KPiA+IGZvdW5kIGF0DQo+ID4NCj4gPiArIyAgICBodHRwOi8vb3Bl bnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhwDQo+ID4NCj4gPiArIw0KPiA+DQo+ ID4gKyMgICAgVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNF IE9OIEFOICJBUyBJUyINCj4gPiBCQVNJUywNCj4gPg0KPiA+ICsjICAgIFdJVEhPVVQgV0FSUkFO VElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUg0KPiA+IEVYUFJFU1Mg T1IgSU1QTElFRC4NCj4gPg0KPiA+ICsjDQo+ID4NCj4gPiArIyMNCj4gPg0KPiA+ICsNCj4gPg0K PiA+DQo+ICsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMNCj4gIyMjIyMjIw0KPiA+ICMjIyMjIyMjIyMjIyMjIyMNCj4gPg0KPiA+ICsjDQo+ ID4NCj4gPiArIyBEZWZpbmVzIFNlY3Rpb24gLSBzdGF0ZW1lbnRzIHRoYXQgd2lsbCBiZSBwcm9j ZXNzZWQgdG8gY3JlYXRlIGEgTWFrZWZpbGUuDQo+ID4NCj4gPiArIw0KPiA+DQo+ID4NCj4gKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0K PiAjIyMjIyMjDQo+ID4gIyMjIyMjIyMjIyMjIyMjIw0KPiA+DQo+ID4gK1tEZWZpbmVzXQ0KPiA+ DQo+ID4gKyAgUExBVEZPUk1fTkFNRSAgICAgICAgICAgICAgICAgID0gUWVtdUZzcFBrZw0KPiA+ DQo+ID4gKyAgUExBVEZPUk1fR1VJRCAgICAgICAgICAgICAgICAgID0gMUJFREI1N0EtNzkwNC00 MDZlLTg0ODYtQzg5RkM3RkIzOUVFDQo+ID4NCj4gPiArICBQTEFURk9STV9WRVJTSU9OICAgICAg ICAgICAgICAgPSAwLjENCj4gPg0KPiA+ICsgIERTQ19TUEVDSUZJQ0FUSU9OICAgICAgICAgICAg ICA9IDB4MDAwMTAwMDUNCj4gPg0KPiA+ICsgIE9VVFBVVF9ESVJFQ1RPUlkgICAgICAgICAgICAg ICA9IEJ1aWxkL1FlbXVGc3BQa2cNCj4gPg0KPiA+ICsgIFNVUFBPUlRFRF9BUkNISVRFQ1RVUkVT ICAgICAgICA9IElBMzJ8WDY0DQo+ID4NCj4gPiArICBCVUlMRF9UQVJHRVRTICAgICAgICAgICAg ICAgICAgPSBERUJVR3xSRUxFQVNFDQo+ID4NCj4gPiArICBTS1VJRF9JREVOVElGSUVSICAgICAg ICAgICAgICAgPSBERUZBVUxUDQo+ID4NCj4gPiArICBGTEFTSF9ERUZJTklUSU9OICAgICAgICAg ICAgICAgPSBRZW11RnNwUGtnL1FlbXVGc3BQa2cuZmRmDQo+ID4NCj4gPiArDQo+ID4NCj4gPiAr ICAjDQo+ID4NCj4gPiArICAjIFVQRCB0b29sIGRlZmluaXRpb24NCj4gPg0KPiA+ICsgICMNCj4g Pg0KPiA+ICsgIEZTUF9UX1VQRF9UT09MX0dVSUQgICAgICAgICAgICA9IDM0Njg2Q0EzLTM0Rjkt NDkwMS1CODJBLQ0KPiBCQTYzMEYwNzE0QzYNCj4gPg0KPiA+ICsgIEZTUF9WX1VQRF9UT09MX0dV SUQgICAgICAgICAgICA9IDRFMkY0NzI1LTczNEEtNDM5OS1CQUY1LQ0KPiBCNEUxNjM0OEVCMkYN Cj4gPg0KPiA+ICsgIEZTUF9NX1VQRF9UT09MX0dVSUQgICAgICAgICAgICA9IDM5QTI1MERCLUU0 NjUtNEREMS1BMkFDLQ0KPiA+IEUyQkQzQzBFMjM4NQ0KPiA+DQo+ID4gKyAgRlNQX1NfVVBEX1RP T0xfR1VJRCAgICAgICAgICAgID0gQ0FFMzYwNUItNUIzNC00Qzg1LUIzRDctDQo+IDI3RDU0Mjcz QzQwRg0KPiA+DQo+ID4gKyAgRlNQX1RfVVBEX0ZGU19HVUlEICAgICAgICAgICAgID0gNzBCQ0Y2 QTUtRkZCMS00N0Q4LUIxQUUtDQo+IEVGRTU1MDhFMjNFQQ0KPiA+DQo+ID4gKyAgRlNQX1ZfVVBE X0ZGU19HVUlEICAgICAgICAgICAgID0gMDE5N0VGNUUtMkZGQy00MDg5LThFNTUtRjcwNDAwQjE4 MTQ2DQo+ID4NCj4gPiArICBGU1BfTV9VUERfRkZTX0dVSUQgICAgICAgICAgICAgPSBENUI4NkFF QS02QUY3LTQwRDQtODAxNC0NCj4gOTgyMzAxQkMzRDg5DQo+ID4NCj4gPiArICBGU1BfU19VUERf RkZTX0dVSUQgICAgICAgICAgICAgPSBFM0NEOUIxOC05OThDLTRGNzYtQjY1RS05OEIxNTRFNTQ0 NkYNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICMNCj4gPg0KPiA+ICsgICMgU2V0IHBsYXRmb3Jt IHNwZWNpZmljIHBhY2thZ2UvZm9sZGVyIG5hbWUsIHNhbWUgYXMgcGFzc2VkIGZyb20NCj4gUFJF QlVJTEQNCj4gPiBzY3JpcHQuDQo+ID4NCj4gPiArICAjIFBMQVRGT1JNX1BBQ0tBR0Ugd291bGQg YmUgdGhlIHNhbWUgYXMgUExBVEZPUk1fTkFNRSBhcyB3ZWxsDQo+IGFzDQo+ID4gcGFja2FnZSBi dWlsZCBmb2xkZXINCj4gPg0KPiA+ICsgICMgREVGSU5FIG9ubHkgdGFrZXMgZWZmZWN0IGF0IFI5 IERTQyBhbmQgRkRGLg0KPiA+DQo+ID4gKyAgIw0KPiA+DQo+ID4gKyAgREVGSU5FIEZTUF9QQUNL QUdFICAgICAgICAgICAgICAgICAgICAgPSBRZW11RnNwUGtnDQo+ID4NCj4gPiArICBERUZJTkUg RlNQX0lNQUdFX0lEICAgICAgICAgICAgICAgICAgICA9IDB4MjQ1MDUzNDY0RDQ1NTEyNCAgIyAk UUVNRlNQJA0KPiA+DQo+ID4gKyAgREVGSU5FIEZTUF9JTUFHRV9SRVYgICAgICAgICAgICAgICAg ICAgPSAweDAwMDAxMDEwDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICBERUZJTkUgQ0FSX0JBU0Vf QUREUkVTUyAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDANCj4gPg0KPiA+ICsgIERFRklORSBD QVJfUkVHSU9OX1NJWkUgICAgICAgICAgICAgICAgID0gMHgwMDA4MDAwMA0KPiA+DQo+ID4gKyAg REVGSU5FIENBUl9CTERfUkVHSU9OX1NJWkUgICAgICAgICAgICAgPSAweDAwMDcwMDAwDQo+ID4N Cj4gPiArICBERUZJTkUgQ0FSX0ZTUF9SRUdJT05fU0laRSAgICAgICAgICAgICA9IDB4MDAwMTAw MDANCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgIERFRklORSBGU1BfQVJDSCAgICAgICAgICAgICAg ICAgICAgICAgID0gWDY0DQo+ID4NCj4gPiArDQo+ID4NCj4gPg0KPiArIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQo+ICMjIyMjIyMNCj4g PiAjIyMjIyMjIyMjIyMjIyMjDQo+ID4NCj4gPiArIw0KPiA+DQo+ID4gKyMgU0tVIElkZW50aWZp Y2F0aW9uIHNlY3Rpb24gLSBsaXN0IG9mIGFsbCBTS1UgSURzIHN1cHBvcnRlZCBieSB0aGlzDQo+ ID4NCj4gPiArIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBsYXRmb3JtLg0KPiA+DQo+ ID4gKyMNCj4gPg0KPiA+DQo+ICsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMNCj4gIyMjIyMjIw0KPiA+ICMjIyMjIyMjIyMjIyMjIyMNCj4g Pg0KPiA+ICtbU2t1SWRzXQ0KPiA+DQo+ID4gKyAgMHxERUZBVUxUICAgICAgICAgICAgICAjIFRo ZSBlbnRyeTogMHxERUZBVUxUIGlzIHJlc2VydmVkIGFuZCBhbHdheXMNCj4gcmVxdWlyZWQuDQo+ ID4NCj4gPiArDQo+ID4NCj4gPg0KPiArIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQo+ICMjIyMjIyMNCj4gPiAjIyMjIyMjIyMjIyMjIyMj DQo+ID4NCj4gPiArIw0KPiA+DQo+ID4gKyMgTGlicmFyeSBDbGFzcyBzZWN0aW9uIC0gbGlzdCBv ZiBhbGwgTGlicmFyeSBDbGFzc2VzIG5lZWRlZCBieSB0aGlzIFBsYXRmb3JtLg0KPiA+DQo+ID4g KyMNCj4gPg0KPiA+DQo+ICsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMNCj4gIyMjIyMjIw0KPiA+ICMjIyMjIyMjIyMjIyMjIyMNCj4gPg0K PiA+ICsNCj4gPg0KPiA+ICtbTGlicmFyeUNsYXNzZXNdDQo+ID4NCj4gPiArDQo+IFBlaUNvcmVF bnRyeVBvaW50fE1kZVBrZy9MaWJyYXJ5L1BlaUNvcmVFbnRyeVBvaW50L1BlaUNvcmVFbnRyeVBv aW50LmluDQo+IGYNCj4gPg0KPiA+ICsgIFBlaW1FbnRyeVBvaW50fE1kZVBrZy9MaWJyYXJ5L1Bl aW1FbnRyeVBvaW50L1BlaW1FbnRyeVBvaW50LmluZg0KPiA+DQo+ID4gKw0KPiA+DQo+IERlYnVn UHJpbnRFcnJvckxldmVsTGlifE1kZVBrZy9MaWJyYXJ5L0Jhc2VEZWJ1Z1ByaW50RXJyb3JMZXZl bExpYi9CYXMNCj4gZURlDQo+ID4gYnVnUHJpbnRFcnJvckxldmVsTGliLmluZg0KPiA+DQo+ID4g KyAgQmFzZUxpYnxNZGVQa2cvTGlicmFyeS9CYXNlTGliL0Jhc2VMaWIuaW5mDQo+ID4NCj4gPiAr ICBJb0xpYnxNZGVQa2cvTGlicmFyeS9CYXNlSW9MaWJJbnRyaW5zaWMvQmFzZUlvTGliSW50cmlu c2ljLmluZg0KPiA+DQo+ID4gKyAgUGNpTGlifE1kZVBrZy9MaWJyYXJ5L0Jhc2VQY2lMaWJQY2lF eHByZXNzL0Jhc2VQY2lMaWJQY2lFeHByZXNzLmluZg0KPiA+DQo+ID4gKyAgUGNpQ2Y4TGlifE1k ZVBrZy9MaWJyYXJ5L0Jhc2VQY2lDZjhMaWIvQmFzZVBjaUNmOExpYi5pbmYNCj4gPg0KPiA+ICsg IFBjaUV4cHJlc3NMaWJ8TWRlUGtnL0xpYnJhcnkvQmFzZVBjaUV4cHJlc3NMaWIvQmFzZVBjaUV4 cHJlc3NMaWIuaW5mDQo+ID4NCj4gPiArDQo+ID4NCj4gQmFzZU1lbW9yeUxpYnxNZGVQa2cvTGli cmFyeS9CYXNlTWVtb3J5TGliUmVwU3RyL0Jhc2VNZW1vcnlMaWJSDQo+IGVwU3RyDQo+ID4gLmlu Zg0KPiA+DQo+ID4gKyAgUHJpbnRMaWJ8TWRlUGtnL0xpYnJhcnkvQmFzZVByaW50TGliL0Jhc2VQ cmludExpYi5pbmYNCj4gPg0KPiA+ICsgIFBjZExpYnxNZGVQa2cvTGlicmFyeS9QZWlQY2RMaWIv UGVpUGNkTGliLmluZg0KPiA+DQo+ID4gKyAgSG9iTGlifE1kZVBrZy9MaWJyYXJ5L1BlaUhvYkxp Yi9QZWlIb2JMaWIuaW5mDQo+ID4NCj4gPiArDQo+ID4NCj4gUGVpU2VydmljZXNUYWJsZVBvaW50 ZXJMaWJ8TWRlUGtnL0xpYnJhcnkvUGVpU2VydmljZXNUYWJsZVBvaW50ZXJMaWJJZHQvUA0KPiBl aVNlDQo+ID4gcnZpY2VzVGFibGVQb2ludGVyTGliSWR0LmluZg0KPiA+DQo+ID4gKyAgUGVpU2Vy dmljZXNMaWJ8TWRlUGtnL0xpYnJhcnkvUGVpU2VydmljZXNMaWIvUGVpU2VydmljZXNMaWIuaW5m DQo+ID4NCj4gPiArDQo+ID4NCj4gTWVtb3J5QWxsb2NhdGlvbkxpYnxNZGVQa2cvTGlicmFyeS9Q ZWlNZW1vcnlBbGxvY2F0aW9uTGliL1BlaU1lbW9yeQ0KPiBBbGxvDQo+ID4gY2F0aW9uTGliLmlu Zg0KPiA+DQo+ID4gKw0KPiA+DQo+IFBlQ29mZkdldEVudHJ5UG9pbnRMaWJ8TWRlUGtnL0xpYnJh cnkvQmFzZVBlQ29mZkdldEVudHJ5UG9pbnRMaWIvQmFzZQ0KPiBQZUMNCj4gPiBvZmZHZXRFbnRy eVBvaW50TGliLmluZg0KPiA+DQo+ID4gKw0KPiA+DQo+IFJlcG9ydFN0YXR1c0NvZGVMaWJ8TWRl TW9kdWxlUGtnL0xpYnJhcnkvUGVpUmVwb3J0U3RhdHVzQ29kZUxpYi9QZWlSDQo+IGVwbw0KPiA+ IHJ0U3RhdHVzQ29kZUxpYi5pbmYNCj4gPg0KPiA+ICsNCj4gPg0KPiBDYWNoZU1haW50ZW5hbmNl TGlifE1kZVBrZy9MaWJyYXJ5L0Jhc2VDYWNoZU1haW50ZW5hbmNlTGliL0Jhc2VDYWMNCj4gaGUN Cj4gPiBNYWludGVuYW5jZUxpYi5pbmYNCj4gPg0KPiA+ICsgIFBlQ29mZkxpYnxNZGVQa2cvTGli cmFyeS9CYXNlUGVDb2ZmTGliL0Jhc2VQZUNvZmZMaWIuaW5mDQo+ID4NCj4gPiArDQo+ID4NCj4g UGVDb2ZmRXh0cmFBY3Rpb25MaWJ8TWRlUGtnL0xpYnJhcnkvQmFzZVBlQ29mZkV4dHJhQWN0aW9u TGliTnVsbC9CYXNlUA0KPiBlQ28NCj4gPiBmZkV4dHJhQWN0aW9uTGliTnVsbC5pbmYNCj4gPg0K PiA+ICsNCj4gPg0KPiBVZWZpRGVjb21wcmVzc0xpYnxNZGVQa2cvTGlicmFyeS9CYXNlVWVmaURl Y29tcHJlc3NMaWIvQmFzZVVlZmlEZWNvDQo+IG1wDQo+ID4gcmVzc0xpYi5pbmYNCj4gPg0KPiA+ ICsNCj4gPg0KPiBTeW5jaHJvbml6YXRpb25MaWJ8TWRlUGtnL0xpYnJhcnkvQmFzZVN5bmNocm9u aXphdGlvbkxpYi9CYXNlU3luY2hyb25peg0KPiBhdGkNCj4gPiBvbkxpYi5pbmYNCj4gPg0KPiA+ ICsgIENwdUxpYnxNZGVQa2cvTGlicmFyeS9CYXNlQ3B1TGliL0Jhc2VDcHVMaWIuaW5mDQo+ID4N Cj4gPiArDQo+ID4NCj4gRXh0cmFjdEd1aWRlZFNlY3Rpb25MaWJ8TWRlUGtnL0xpYnJhcnkvUGVp RXh0cmFjdEd1aWRlZFNlY3Rpb25MaWIvUGVpRXgNCj4gdHJhYw0KPiA+IHRHdWlkZWRTZWN0aW9u TGliLmluZg0KPiA+DQo+ID4gKyAgQ2FjaGVMaWJ8SW50ZWxGc3AyUGtnL0xpYnJhcnkvQmFzZUNh Y2hlTGliL0Jhc2VDYWNoZUxpYi5pbmYNCj4gPg0KPiA+ICsNCj4gPg0KPiBDYWNoZUFzUmFtTGli fEludGVsRnNwMlBrZy9MaWJyYXJ5L0Jhc2VDYWNoZUFzUmFtTGliTnVsbC9CYXNlQ2FjaGVBcw0K PiBSYQ0KPiA+IG1MaWJOdWxsLmluZg0KPiA+DQo+ID4gKw0KPiA+DQo+IEZzcFN3aXRjaFN0YWNr TGlifEludGVsRnNwMlBrZy9MaWJyYXJ5L0Jhc2VGc3BTd2l0Y2hTdGFja0xpYi9CYXNlRnNwU3dp dA0KPiBjaFMNCj4gPiB0YWNrTGliLmluZg0KPiA+DQo+ID4gKw0KPiA+DQo+IEZzcENvbW1vbkxp YnxJbnRlbEZzcDJQa2cvTGlicmFyeS9CYXNlRnNwQ29tbW9uTGliL0Jhc2VGc3BDb21tb24NCj4g TGliLmkNCj4gPiBuZg0KPiA+DQo+ID4gKw0KPiA+DQo+IEZzcFBsYXRmb3JtTGlifEludGVsRnNw MlBrZy9MaWJyYXJ5L0Jhc2VGc3BQbGF0Zm9ybUxpYi9CYXNlRnNwUGxhdGZvcm1MaQ0KPiBiLmlu DQo+ID4gZg0KPiA+DQo+ID4gKw0KPiA+DQo+IFBsYXRmb3JtSG9va0xpYnxNZGVNb2R1bGVQa2cv TGlicmFyeS9CYXNlUGxhdGZvcm1Ib29rTGliTnVsbC9CYXNlUGxhDQo+IHRmbw0KPiA+IHJtSG9v a0xpYk51bGwuaW5mDQo+ID4NCj4gPiArDQo+ID4NCj4gUGVyZm9ybWFuY2VMaWJ8TWRlUGtnL0xp YnJhcnkvQmFzZVBlcmZvcm1hbmNlTGliTnVsbC9CYXNlUGVyZm9ybWFuYw0KPiBlTGliDQo+ID4g TnVsbC5pbmYNCj4gPg0KPiA+ICsNCj4gPg0KPiBPZW1Ib29rU3RhdHVzQ29kZUxpYnxNZGVNb2R1 bGVQa2cvTGlicmFyeS9PZW1Ib29rU3RhdHVzQ29kZUxpYk4NCj4gdWxsLw0KPiA+IE9lbUhvb2tT dGF0dXNDb2RlTGliTnVsbC5pbmYNCj4gPg0KPiA+ICsgIFVlZmlDcHVMaWJ8VWVmaUNwdVBrZy9M aWJyYXJ5L0Jhc2VVZWZpQ3B1TGliL0Jhc2VVZWZpQ3B1TGliLmluZg0KPiA+DQo+ID4gKyFpZiAk KFRBUkdFVCkgPT0gREVCVUcNCj4gPg0KPiA+ICsNCj4gPg0KPiBEZWJ1Z0xpYnxNZGVQa2cvTGli cmFyeS9CYXNlRGVidWdMaWJTZXJpYWxQb3J0L0Jhc2VEZWJ1Z0xpYlNlcmlhbFBvcnQuDQo+IGlu Zg0KPiA+DQo+ID4gKw0KPiA+DQo+IFNlcmlhbFBvcnRMaWJ8TWRlTW9kdWxlUGtnL0xpYnJhcnkv QmFzZVNlcmlhbFBvcnRMaWIxNjU1MC9CYXNlU2VyaWFsUG9ydA0KPiBMaWINCj4gPiAxNjU1MC5p bmYNCj4gPg0KPiA+ICshZWxzZQ0KPiA+DQo+ID4gKyAgRGVidWdMaWJ8TWRlUGtnL0xpYnJhcnkv QmFzZURlYnVnTGliTnVsbC9CYXNlRGVidWdMaWJOdWxsLmluZg0KPiA+DQo+ID4gKw0KPiBTZXJp YWxQb3J0TGlifE1kZVBrZy9MaWJyYXJ5L0Jhc2VTZXJpYWxQb3J0TGliTnVsbC9CYXNlU2VyaWFs UG9ydExpYk51bGwuaW4NCj4gZg0KPiA+DQo+ID4gKyFlbmRpZg0KPiA+DQo+ID4gKw0KPiA+DQo+ ID4gKw0KPiA+DQo+ID4NCj4gKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIw0KPiAjIyMjIyMjDQo+ID4gIyMjIyMjIyMjIyMjIyMjIw0KPiA+ DQo+ID4gKyMNCj4gPg0KPiA+ICsjIFBjZCBTZWN0aW9uIC0gbGlzdCBvZiBhbGwgRURLIElJIFBD RCBFbnRyaWVzIGRlZmluZWQgYnkgdGhpcyBQbGF0Zm9ybQ0KPiA+DQo+ID4gKyMNCj4gPg0KPiA+ DQo+ICsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMNCj4gIyMjIyMjIw0KPiA+ICMjIyMjIyMjIyMjIyMjIyMNCj4gPg0KPiA+ICtbUGNkc0Zp eGVkQXRCdWlsZF0NCj4gPg0KPiA+ICsgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5Q Y2RTaGFkb3dQZWltT25TM0Jvb3QgICAgfCBUUlVFDQo+ID4NCj4gPiArICBnUWVtdUZzcFBrZ1Rv a2VuU3BhY2VHdWlkLlBjZEZzcEhlYWRlclJldmlzaW9uICAgICAgICAgIHwgMHgwMw0KPiA+DQo+ ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZC5QY2RGc3BJbWFnZUlkU3RyaW5nICAgICAg ICAgICB8DQo+ICQoRlNQX0lNQUdFX0lEKQ0KPiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNw YWNlR3VpZC5QY2RGc3BJbWFnZVJldmlzaW9uICAgICAgICAgICB8DQo+ID4gJChGU1BfSU1BR0Vf UkVWKQ0KPiA+DQo+ID4gKyAgIw0KPiA+DQo+ID4gKyAgIyBGU1AgQ0FSIFVzYWdlcyAgKEJMIFJB TSB8IEZTUCBSQU0gfCBGU1AgQ09ERSkNCj4gPg0KPiA+ICsgICMNCj4gPg0KPiA+ICsgIGdJbnRl bEZzcDJQa2dUb2tlblNwYWNlR3VpZC5QY2RUZW1wb3JhcnlSYW1CYXNlICAgICAgICAgfA0KPiA+ ICQoQ0FSX0JBU0VfQUREUkVTUykNCj4gPg0KPiA+ICsgIGdJbnRlbEZzcDJQa2dUb2tlblNwYWNl R3VpZC5QY2RUZW1wb3JhcnlSYW1TaXplICAgICAgICAgfA0KPiA+ICQoQ0FSX1JFR0lPTl9TSVpF KQ0KPiA+DQo+ID4gKyAgZ0ludGVsRnNwMlBrZ1Rva2VuU3BhY2VHdWlkLlBjZEZzcFRlbXBvcmFy eVJhbVNpemUgICAgICB8DQo+ID4gJChDQVJfRlNQX1JFR0lPTl9TSVpFKQ0KPiA+DQo+ID4gKyAg Z0ludGVsRnNwMlBrZ1Rva2VuU3BhY2VHdWlkLlBjZEZzcFJlc2VydmVkQnVmZmVyU2l6ZSAgICB8 IDB4MDEwMA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgIyBUaGlzIGRlZmluZXMgaG93IG11Y2gg c3BhY2Ugd2lsbCBiZSB1c2VkIGZvciBoZWFwIGluIEZTUCB0ZW1wb3JhcnkNCj4gPiBtZW1vcnkN Cj4gPg0KPiA+ICsgICMgeCAlIG9mIEZTUCB0ZW1wb3JhcnkgbWVtb3J5IHdpbGwgYmUgdXNlZCBm b3IgaGVhcA0KPiA+DQo+ID4gKyAgIyAoMTAwIC0geCkgJSBvZiBGU1AgdGVtcG9yYXJ5IG1lbW9y eSB3aWxsIGJlIHVzZWQgZm9yIHN0YWNrDQo+ID4NCj4gPiArICBnSW50ZWxGc3AyUGtnVG9rZW5T cGFjZUd1aWQuUGNkRnNwSGVhcFNpemVQZXJjZW50YWdlICAgIHwgNjUNCj4gPg0KPiA+ICsNCj4g Pg0KPiA+ICsgICMgVGhpcyBpcyBhIHBsYXRmb3JtIHNwZWNpZmljIGdsb2JhbCBwb2ludGVyIHVz ZWQgYnkgRlNQDQo+ID4NCj4gPiArICBnSW50ZWxGc3AyUGtnVG9rZW5TcGFjZUd1aWQuUGNkR2xv YmFsRGF0YVBvaW50ZXJBZGRyZXNzIHwNCj4gMHhGRUQwMDE0OA0KPiA+DQo+ID4gKyAgZ0ludGVs RnNwMlBrZ1Rva2VuU3BhY2VHdWlkLlBjZEZzcFJlc2VydmVkTWVtb3J5TGVuZ3RoICB8DQo+IDB4 MDAxMDAwMDANCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICshaWYgJChUQVJHRVQpID09IFJFTEVBU0UN Cj4gPg0KPiA+ICsgIGdFZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5QY2RGaXhlZERlYnVnUHJpbnRF cnJvckxldmVsICAgfA0KPiAweDAwMDAwMDAwDQo+ID4NCj4gPiArICBnRWZpTWRlUGtnVG9rZW5T cGFjZUd1aWQuUGNkRGVidWdQcm9wZXJ0eU1hc2sgICAgICAgICAgIHwgMA0KPiA+DQo+ID4gKyFl bHNlDQo+ID4NCj4gPiArICBnRWZpTWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRml4ZWREZWJ1Z1By aW50RXJyb3JMZXZlbCAgIHwNCj4gMHg4MDAwMDA0Nw0KPiA+DQo+ID4gKyAgZ0VmaU1kZVBrZ1Rv a2VuU3BhY2VHdWlkLlBjZERlYnVnUHJvcGVydHlNYXNrICAgICAgICAgICB8IDB4MjcNCj4gPg0K PiA+ICshZW5kaWYNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICtbUGNkc1BhdGNoYWJsZUluTW9kdWxl XQ0KPiA+DQo+ID4gKyAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFBjaUV4cHJlc3NCYXNl QWRkcmVzcyAgICAgICB8DQo+IDB4RTAwMDAwMDANCj4gPg0KPiA+ICsgICMNCj4gPg0KPiA+ICsg ICMgVGhpcyBlbnRyeSB3aWxsIGJlIHBhdGNoZWQgZHVyaW5nIHRoZSBidWlsZCBwcm9jZXNzDQo+ ID4NCj4gPiArICAjDQo+ID4NCj4gPiArICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQu UGNkVnBkQmFzZUFkZHJlc3MgICAgICAgIHwNCj4gMHgxMjM0NTY3OA0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gKyFpZiAkKFRBUkdFVCkgPT0gUkVMRUFTRQ0KPiA+DQo+ID4gKyAgZ0VmaU1kZVBrZ1Rv a2VuU3BhY2VHdWlkLlBjZERlYnVnUHJpbnRFcnJvckxldmVsICAgICAgICB8IDANCj4gPg0KPiA+ ICshZWxzZQ0KPiA+DQo+ID4gKyAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZERlYnVnUHJp bnRFcnJvckxldmVsICAgICAgICB8IDB4ODAwMDAwNDcNCj4gPg0KPiA+ICshZW5kaWYNCj4gPg0K PiA+ICsNCj4gPg0KPiA+ICtbUGNkc0R5bmFtaWNWcGQuVXBkXQ0KPiA+DQo+ID4gKyAgIw0KPiA+ DQo+ID4gKyAgIyBUaGlzIHNlY3Rpb24gaXMgbm90IHVzZWQgYnkgdGhlIG5vcm1hbCBidWlsZCBw cm9jZXNzDQo+ID4NCj4gPiArICAjIEhvd2V2ZXIsIEZTUCB3aWxsIHVzZSBkZWRpY2F0ZWQgdG9v bCB0byBoYW5kbGUgaXQgYW5kIGdlbmVyYXRlIGENCj4gPg0KPiA+ICsgICMgVlBEIHNpbWlsYXIg YmluYXJ5IGJsb2NrIChVc2VyIENvbmZpZ3VyYXRpb24gRGF0YSkuIFRoaXMgYmxvY2sgd2lsbA0K PiA+DQo+ID4gKyAgIyBiZSBhY2Nlc3NlZCB0aHJvdWdoIGEgZ2VuZXJhdGVkIGRhdGEgc3RydWN0 dXJlIGRpcmVjdGx5IHJhdGhlciB0aGFuDQo+ID4NCj4gPiArICAjIFBDRCBzZXJ2aWNlcy4gVGhp cyBpcyBmb3Igc2l6ZSBjb25zaWRlcmF0aW9uLg0KPiA+DQo+ID4gKyAgIyBGb3JtYXQ6DQo+ID4N Cj4gPiArICAjICAgZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZC5VcGR4eHh4eHh4eHh4eHhuICAg ICAgfCBPRkZTRVQgfA0KPiBMRU5HVEggfA0KPiA+IFZBTFVFDQo+ID4NCj4gPiArICAjIE9ubHkg c2ltcGxlIGRhdGEgdHlwZSBpcyBzdXBwb3J0ZWQNCj4gPg0KPiA+ICsgICMNCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICsgICMNCj4gPg0KPiA+ICsgICMgQ29tbWVudHMgd2l0aCAhQlNGIHdpbGwgYmUg dXNlZCB0byBnZW5lcmF0ZSBCU0YgZmlsZQ0KPiA+DQo+ID4gKyAgIyBDb21tZW50cyB3aXRoICFI RFIgd2lsbCBiZSB1c2VkIHRvIGdlbmVyYXRlIEggaGVhZGVyIGZpbGUNCj4gPg0KPiA+ICsgICMN Cj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICMgR2xvYmFsIGRlZmluaXRpb25zIGluIEJTRg0KPiA+ DQo+ID4gKyAgIyAhQlNGIFBBR0VTOntUTVA6IkZTUCBUIiwgTUVNOiJGU1AgTWVtb3J5SW5pdCBT ZXR0aW5ncyIsIFNJTDoiRlNQDQo+ID4gU2lsaWNvbkluaXQgU2V0dGluZ3MifQ0KPiA+DQo+ID4g KyAgIyAhQlNGIEJMT0NLOntOQU1FOiJRRU1VIFBsYXRmb3JtIiwgVkVSOiIwLjEifQ0KPiA+DQo+ ID4gKw0KPiA+DQo+ID4gKyAgIyAhQlNGIEZJTkQ6e1FFTVVQRF9UfQ0KPiA+DQo+ID4gKyAgIyAh SERSIENPTU1FTlQ6e0ZTUF9VUERfSEVBREVSOkZTUCBVUEQgSGVhZGVyfQ0KPiA+DQo+ID4gKyAg IyAhSERSIEVNQkVEOntGU1BfVVBEX0hFQURFUjpGc3BVcGRIZWFkZXI6U1RBUlR9DQo+ID4NCj4g PiArICAjIEZzcHRVcGRTaWduYXR1cmU6IHtRRU1VUERfVH0NCj4gPg0KPiA+ICsgIGdRZW11RnNw UGtnVG9rZW5TcGFjZUd1aWQuU2lnbmF0dXJlICAgICAgICAgICAgICAgICAgIHwgKiB8IDB4MDgg fA0KPiA+IDB4NTQ1RjQ0NTA1NTRENDU1MQ0KPiA+DQo+ID4gKyAgIyAhQlNGIE5BTUU6e0ZzcHRV cGRSZXZpc2lvbn0NCj4gPg0KPiA+ICsgIGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWQuUmV2aXNp b24gICAgICAgICAgICAgICAgICAgIHwgKiB8IDB4MDEgfCAweDAxDQo+ID4NCj4gPiArICAjICFI RFIgRU1CRUQ6e0ZTUF9VUERfSEVBREVSOkZzcFVwZEhlYWRlcjpFTkR9DQo+ID4NCj4gPiArICBn UWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkLlJlc2VydmVkICAgICAgICAgICAgICAgICAgICB8ICog fCAweDE3IHwgezB4MDB9DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAjICFIRFIgQ09NTUVOVDp7 RlNQVF9BUkNIX1VQRDpGU1BUX0FSQ0hfVVBEfQ0KPiA+DQo+ID4gKyAgIyAhSERSIEVNQkVEOntG U1BUX0FSQ0hfVVBEOkZzcHRBcmNoVXBkOlNUQVJUfQ0KPiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dU b2tlblNwYWNlR3VpZC5SZXZpc2lvbiAgICAgICAgICAgICAgICAgICAgfCAqIHwgMHgwMSB8IDB4 MDENCj4gPg0KPiA+ICsgIGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWQuUmVzZXJ2ZWQgICAgICAg ICAgICAgICAgICAgIHwgKiB8IDB4MDMgfCB7MHgwMH0NCj4gPg0KPiA+ICsgIGdRZW11RnNwUGtn VG9rZW5TcGFjZUd1aWQuTGVuZ3RoICAgICAgICAgICAgICAgICAgICAgIHwgKiB8IDB4MDQgfCAw eDAwMDAwMDIwDQo+ID4NCj4gPiArICBnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkLkZzcERlYnVn SGFuZGxlciAgICAgICAgICAgICB8ICogfCAweDA0IHwNCj4gPiAweDAwMDAwMDAwDQo+ID4NCj4g PiArICAjICFIRFIgRU1CRUQ6e0ZTUFRfQVJDSF9VUEQ6RnNwdEFyY2hVcGQ6RU5EfQ0KPiA+DQo+ ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZC5SZXNlcnZlZDEgICAgICAgICAgICAgICAg ICAgfCAqIHwgMHgxNCB8IHsweDAwfQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgIyAhSERSIENP TU1FTlQ6e0ZTUFRfQ09NTU9OX1VQRDpGc3AgVCBDb21tb24gVVBEfQ0KPiA+DQo+ID4gKyAgIyAh SERSIEVNQkVEOntGU1BUX0NPTU1PTl9VUEQ6RnNwdENvbW1vblVwZDpTVEFSVH0NCj4gPg0KPiA+ ICsgIGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWQuUmV2aXNpb24gICAgICAgICAgICAgICAgICAg IHwgKiB8IDB4MDEgfCAweDAxDQo+ID4NCj4gPiArICBnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlk LlJlc2VydmVkICAgICAgICAgICAgICAgICAgICB8ICogfCAweDAzIHwgezB4MDB9DQo+ID4NCj4g PiArDQo+ID4NCj4gPiArICAjIEJhc2UgYWRkcmVzcyBvZiB0aGUgbWljcm9jb2RlIHJlZ2lvbi4N Cj4gPg0KPiA+ICsgIGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWQuTWljcm9jb2RlUmVnaW9uQmFz ZSAgICAgICAgIHwgKiB8IDB4MDQgfA0KPiA+IDB4MDAwMDAwMDANCj4gPg0KPiA+ICsNCj4gPg0K PiA+ICsgICMgTGVuZ3RoIG9mIHRoZSBtaWNyb2NvZGUgcmVnaW9uLg0KPiA+DQo+ID4gKyAgZ1Fl bXVGc3BQa2dUb2tlblNwYWNlR3VpZC5NaWNyb2NvZGVSZWdpb25MZW5ndGggICAgICAgfCAqIHwg MHgwNCB8DQo+ID4gMHgwMDAwMDAwMA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgIyBCYXNlIGFk ZHJlc3Mgb2YgdGhlIGNhY2hlYWJsZSBmbGFzaCByZWdpb24uDQo+ID4NCj4gPiArICBnUWVtdUZz cFBrZ1Rva2VuU3BhY2VHdWlkLkNvZGVSZWdpb25CYXNlICAgICAgICAgICAgICB8ICogfCAweDA0 IHwNCj4gPiAweDAwMDAwMDAwDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAjIExlbmd0aCBvZiB0 aGUgY2FjaGVhYmxlIGZsYXNoIHJlZ2lvbi4NCj4gPg0KPiA+ICsgIGdRZW11RnNwUGtnVG9rZW5T cGFjZUd1aWQuQ29kZVJlZ2lvbkxlbmd0aCAgICAgICAgICAgIHwgKiB8IDB4MDQgfA0KPiA+IDB4 MDAwMDAwMDANCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICMgIUhEUiBFTUJFRDp7RlNQVF9DT01N T05fVVBEOkZzcHRDb21tb25VcGQ6RU5EfQ0KPiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNw YWNlR3VpZC5SZXNlcnZlZDEgICAgICAgICAgICAgICAgICAgfCAqIHwgMHgwQyB8IHsweDAwfQ0K PiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgIyAhSERSIENPTU1FTlQ6e0ZTUF9UX0NPTkZJRzpGc3Ag VCBDb25maWd1cmF0aW9ufQ0KPiA+DQo+ID4gKyAgIyAhSERSIEVNQkVEOntGU1BfVF9DT05GSUc6 RnNwdENvbmZpZzpTVEFSVH0NCj4gPg0KPiA+ICsgICMgIUJTRiBQQUdFOntUTVB9DQo+ID4NCj4g PiArICAjICFCU0YgTkFNRTp7Q2hpY2tlbiBieXRlcyB0byB0ZXN0IEhleCBjb25maWd9DQo+ID4N Cj4gPiArICAjICFCU0YgVFlQRTp7RWRpdE51bSwgSEVYLCAoMHgwMDAwMDAwMCwweEZGRkZGRkZG KX0NCj4gPg0KPiA+ICsgICMgIUJTRiBIRUxQOntUaGlzIG9wdGlvbiBzaG93cyBob3cgdG8gcHJl c2VudCBvcHRpb24gZm9yIDQgYnl0ZXMgZGF0YX0NCj4gPg0KPiA+ICsgIGdRZW11RnNwUGtnVG9r ZW5TcGFjZUd1aWQuQ2hpY2tlbkJ5dGVzICAgICAgICAgICAgICAgIHwgKiB8IDB4MDQgfA0KPiAw eDAwMDAwMDAwDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAjICFIRFIgRU1CRUQ6e0ZTUF9UX0NP TkZJRzpGc3B0Q29uZmlnOkVORH0NCj4gPg0KPiA+ICsgIGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1 aWQuUmVzZXJ2ZWRGc3B0VXBkMSAgICAgICAgICAgIHwgKiB8IDB4MUMgfA0KPiB7MHgwMH0NCj4g Pg0KPiA+ICsNCj4gPg0KPiA+ICsgICMgTm90ZSBwbGVhc2Uga2VlcCAiVXBkVGVybWluYXRvciIg YXQgdGhlIGVuZCBvZiBlYWNoIFVQRCByZWdpb24uDQo+ID4NCj4gPiArICAjIFRoZSB0b29sIHdp bGwgdXNlIHRoaXMgZmllbGQgdG8gZGV0ZXJtaW5lIHRoZSBhY3R1YWwgZW5kIG9mIHRoZSBVUEQg ZGF0YQ0KPiA+DQo+ID4gKyAgIyBzdHJ1Y3R1cmUuDQo+ID4NCj4gPiArICBnUWVtdUZzcFBrZ1Rv a2VuU3BhY2VHdWlkLlVwZFRlcm1pbmF0b3IgICAgICAgICAgICAgICB8ICogfCAweDAyIHwNCj4g MHg1NUFBDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArDQo+ID4NCj4gIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPiAjIyMjIyMjDQo+ID4g IyMjIyMjIyMjIyMjIyMjDQo+ID4NCj4gPiArICAjDQo+ID4NCj4gPiArICAjIFVQRHMgY29uc3Vt ZWQgaW4gRnNwTWVtb3J5SW5pdCBBcGkNCj4gPg0KPiA+ICsgICMNCj4gPg0KPiA+ICsNCj4gPg0K PiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjDQo+ICMjIyMjIyMNCj4gPiAjIyMjIyMjIyMjIyMjIyMNCj4gPg0KPiA+ICsgICMgIUJTRiBG SU5EOntRRU1VUERfTX0NCj4gPg0KPiA+ICsgICMgIUhEUiBDT01NRU5UOntGU1BfVVBEX0hFQURF UjpGU1AgVVBEIEhlYWRlcn0NCj4gPg0KPiA+ICsgICMgIUhEUiBFTUJFRDp7RlNQX1VQRF9IRUFE RVI6RnNwVXBkSGVhZGVyOlNUQVJUfQ0KPiA+DQo+ID4gKyAgIyBGc3BtVXBkU2lnbmF0dXJlOiB7 UUVNVVBEX019DQo+ID4NCj4gPiArICBnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkLlNpZ25hdHVy ZSAgICAgICAgICAgICAgICAgICB8ICogfCAweDA4IHwNCj4gPiAweDRENUY0NDUwNTU0RDQ1NTEN Cj4gPg0KPiA+ICsgICMgIUJTRiBOQU1FOntGc3BtVXBkUmV2aXNpb259DQo+ID4NCj4gPiArICBn UWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkLlJldmlzaW9uICAgICAgICAgICAgICAgICAgICB8ICog fCAweDAxIHwgMHgwMQ0KPiA+DQo+ID4gKyAgIyAhSERSIEVNQkVEOntGU1BfVVBEX0hFQURFUjpG c3BVcGRIZWFkZXI6RU5EfQ0KPiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZC5S ZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgfCAqIHwgMHgxNyB8IHsweDAwfQ0KPiA+DQo+ID4g Kw0KPiA+DQo+ID4gKyAgIyAhSERSIENPTU1FTlQ6e0ZTUE1fQVJDSF9VUEQ6RnNwIE0gQXJjaGl0 ZWN0dXJhbCBVUER9DQo+ID4NCj4gPiArICAjICFIRFIgRU1CRUQ6e0ZTUE1fQVJDSF9VUEQ6RnNw bUFyY2hVcGQ6U1RBUlR9DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICBnUWVtdUZzcFBrZ1Rva2Vu U3BhY2VHdWlkLlJldmlzaW9uICAgICAgICAgICAgICAgICAgICB8ICogfCAweDAxIHwgMHgwMQ0K PiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZC5SZXNlcnZl ZCAgICAgICAgICAgICAgICAgICAgfCAqIHwgMHgwMyB8IHsweDAwfQ0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gKyAgIyAhSERSIFNUUlVDVDp7Vk9JRCp9DQo+ID4NCj4gPiArICBnUWVtdUZzcFBrZ1Rv a2VuU3BhY2VHdWlkLk52c0J1ZmZlclB0ciAgICAgICAgICAgICAgICB8ICogfCAweDA0IHwNCj4g MHgwMDAwMDAwMA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgIyAhSERSIFNUUlVDVDp7Vk9JRCp9 DQo+ID4NCj4gPiArICAjICFCU0YgTkFNRTp7U3RhY2tCYXNlfQ0KPiA+DQo+ID4gKyAgIyAhQlNG IEhFTFA6e1N0YWNrIGJhc2UgZm9yIEZTUCB1c2UuIERlZmF1bHQ6IDB4RkVGMTYwMDB9DQo+ID4N Cj4gPiArICBnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkLlN0YWNrQmFzZSAgICAgICAgICAgICAg ICAgICB8ICogfCAweDA0IHwNCj4gPiAkKENBUl9CTERfUkVHSU9OX1NJWkUpDQo+ID4NCj4gPiAr DQo+ID4NCj4gPiArICAjICFCU0YgTkFNRTp7U3RhY2tTaXplfQ0KPiA+DQo+ID4gKyAgIyAhQlNG IEhFTFA6e1RvIHBhc3MgdGhlIHN0YWNrIHNpemUgZm9yIEZTUCB1c2UuIEJvb3Rsb2FkZXIgY2Fu DQo+ID4gcHJvZ3JhbW1hdGljYWxseSBnZXQgdGhlIEZTUCByZXF1ZXN0ZWQgU3RhY2tTaXplIGJ5 IHVzaW5nIHRoZSBkZWZhdWx0cyBpbg0KPiB0aGUNCj4gPiBGU1AtTSBjb21wb25lbnQuIFRoaXMg aXMgdGhlIG1pbmltdW0gc3RhY2sgc2l6ZSBleHBlY3RlZCBieSB0aGlzIHJldmlzaW9uDQo+IG9m DQo+ID4gRlNQLiBEZWZhdWx0OiAweDJBMDAwfQ0KPiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dUb2tl blNwYWNlR3VpZC5TdGFja1NpemUgICAgICAgICAgICAgICAgICAgfCAqIHwgMHgwNCB8DQo+ID4g JChDQVJfRlNQX1JFR0lPTl9TSVpFKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgIyAhQlNGIE5B TUU6e0Jvb3RMb2FkZXJUb2x1bVNpemV9DQo+ID4NCj4gPiArICAjICFCU0YgSEVMUDp7VG8gcGFz cyBCb290bG9hZGVyIFRvbHVtIHNpemUufQ0KPiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNw YWNlR3VpZC5Cb290TG9hZGVyVG9sdW1TaXplICAgICAgICAgfCAqIHwgMHgwNCB8DQo+ID4gMHgw MDAwMDAwMA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgIyAhQlNGIE5BTUU6e0Jvb3Rtb2RlfQ0K PiA+DQo+ID4gKyAgIyAhQlNGIEhFTFA6e1RvIG1haW50YWluIEJvb3Rtb2RlIGRldGFpbHMufQ0K PiA+DQo+ID4gKyAgZ1BsYXRmb3JtRnNwUGtnVG9rZW5TcGFjZUd1aWQuQm9vdG1vZGUgICAgICAg ICAgICAgICAgICAgfCAqIHwgMHgwNCB8DQo+ID4gMHgwMDAwMDAwMA0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gKyAgIyAhSERSIEVNQkVEOntGU1BNX0FSQ0hfVVBEOkZzcG1BcmNoVXBkOkVORH0NCj4g Pg0KPiA+ICsgIGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWQuUmVzZXJ2ZWQxICAgICAgICAgICAg ICAgICAgIHwgKiB8IDB4MDggfCB7MHgwMH0NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICMgIUhE UiBDT01NRU5UOntGU1BfTV9DT05GSUc6RnNwIE0gQ29uZmlndXJhdGlvbn0NCj4gPg0KPiA+ICsg ICMgIUhEUiBFTUJFRDp7RlNQX01fQ09ORklHOkZzcG1Db25maWc6U1RBUlR9DQo+ID4NCj4gPiAr ICAjICFCU0YgUEFHRTp7TUVNfQ0KPiA+DQo+ID4gKyAgIyAhQlNGIE5BTUU6e0RlYnVnIFNlcmlh bCBQb3J0IEJhc2UgYWRkcmVzc30NCj4gPg0KPiA+ICsgICMgIUJTRiBUWVBFOntFZGl0TnVtLCBI RVgsICgweDAwMDAwMDAwLDB4RkZGRkZGRkYpfQ0KPiA+DQo+ID4gKyAgIyAhQlNGIEhFTFA6e0Rl YnVnIHNlcmlhbCBwb3J0IGJhc2UgYWRkcmVzcy4gVGhpcyBvcHRpb24gd2lsbCBiZSB1c2VkIG9u bHkNCj4gPiB3aGVuIHRoZSAnU2VyaWFsIFBvcnQgRGVidWcgRGV2aWNlJ30NCj4gPg0KPiA+ICsg ICMgIUJTRiBIRUxQOnsrIG9wdGlvbiBpcyBzZXQgdG8gJ0V4dGVybmFsIERldmljZScuIDB4MDAw MDAwMDAoRGVmYXVsdCkufQ0KPiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZC5T ZXJpYWxEZWJ1Z1BvcnRBZGRyZXNzICAgICAgfCAqIHwgMHgwNCB8DQo+ID4gMHgwMDAwMDAwMA0K PiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgIyAhQlNGIE5BTUU6e0RlYnVnIFNlcmlhbCBQb3J0IFR5 cGV9IFRZUEU6e0NvbWJvfQ0KPiA+DQo+ID4gKyAgIyAhQlNGIE9QVElPTjp7MDpOT05FLCAxOkkv TywgMjpNTUlPfQ0KPiA+DQo+ID4gKyAgIyAhQlNGIEhFTFA6ezE2NTUwIGNvbXBhdGlibGUgZGVi dWcgc2VyaWFsIHBvcnQgcmVzb3VyY2UgdHlwZS4gTk9ORQ0KPiBtZWFucw0KPiA+IG5vIHNlcmlh bCBwb3J0IHN1cHBvcnQuIDB4MDI6TU1JTyhEZWZhdWx0KS59DQo+ID4NCj4gPiArICBnUWVtdUZz cFBrZ1Rva2VuU3BhY2VHdWlkLlNlcmlhbERlYnVnUG9ydFR5cGUgICAgICAgICB8ICogfCAweDAx IHwNCj4gMHgwMg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgIyAhQlNGIE5BTUU6e1NlcmlhbCBQ b3J0IERlYnVnIERldmljZX0gVFlQRTp7Q29tYm99DQo+ID4NCj4gPiArICAjICFCU0YgT1BUSU9O OnswOlNPQyBVQVJUMCwgMTpTT0MgVUFSVDEsIDI6U09DIFVBUlQyLCAzOkV4dGVybmFsDQo+IERl dmljZX0NCj4gPg0KPiA+ICsgICMgIUJTRiBIRUxQOntTZWxlY3QgYWN0aXZlIHNlcmlhbCBwb3J0 IGRldmljZSBmb3IgZGVidWcuIH0NCj4gPg0KPiA+ICsgICMgIUJTRiBIRUxQOnsrRm9yIFNPQyBV QVJUIGRldmljZXMsJ0RlYnVnIFNlcmlhbCBQb3J0IEJhc2UnIG9wdGlvbnMgd2lsbA0KPiBiZQ0K PiA+IGlnbm9yZWQuIDB4MDI6U09DIFVBUlQyKERlZmF1bHQpLn0NCj4gPg0KPiA+ICsgIGdRZW11 RnNwUGtnVG9rZW5TcGFjZUd1aWQuU2VyaWFsRGVidWdQb3J0RGV2aWNlICAgICAgIHwgKiB8IDB4 MDEgfA0KPiAweDAyDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAjICFCU0YgTkFNRTp7RGVidWcg U2VyaWFsIFBvcnQgU3RyaWRlIFNpemV9IFRZUEU6e0NvbWJvfQ0KPiA+DQo+ID4gKyAgIyAhQlNG IE9QVElPTjp7MDoxLCAyOjR9DQo+ID4NCj4gPiArICAjICFCU0YgSEVMUDp7RGVidWcgc2VyaWFs IHBvcnQgcmVnaXN0ZXIgbWFwIHN0cmlkZSBzaXplIGluIGJ5dGVzLiAweDAwOjEsDQo+ID4gMHgw Mjo0KERlZmF1bHQpLn0NCj4gPg0KPiA+ICsgIGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWQuU2Vy aWFsRGVidWdQb3J0U3RyaWRlU2l6ZSAgIHwgKiB8IDB4MDEgfA0KPiAweDAyDQo+ID4NCj4gPiAr DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAjICFIRFIgRU1CRUQ6e0ZTUF9NX0NPTkZJRzpGc3Bt Q29uZmlnOkVORH0NCj4gPg0KPiA+ICsgIGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWQuUmVzZXJ2 ZWRGc3BtVXBkICAgICAgICAgICAgIHwgKiB8IDB4MDQgfA0KPiB7MHgwMH0NCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICMgTm90ZSBwbGVhc2Uga2VlcCAiVXBkVGVybWluYXRv ciIgYXQgdGhlIGVuZCBvZiBlYWNoIFVQRCByZWdpb24uDQo+ID4NCj4gPiArICAjIFRoZSB0b29s IHdpbGwgdXNlIHRoaXMgZmllbGQgdG8gZGV0ZXJtaW5lIHRoZSBhY3R1YWwgZW5kIG9mIHRoZSBV UEQgZGF0YQ0KPiA+DQo+ID4gKyAgIyBzdHJ1Y3R1cmUuDQo+ID4NCj4gPiArICBnUWVtdUZzcFBr Z1Rva2VuU3BhY2VHdWlkLlVwZFRlcm1pbmF0b3IgICAgICAgICAgICAgICB8ICogfCAweDAyIHwN Cj4gMHg1NUFBDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArDQo+ID4NCj4gIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPiAjIyMjIyMjDQo+ ID4gIyMjIyMjIyMjIyMjIyMjDQo+ID4NCj4gPiArICAjDQo+ID4NCj4gPiArICAjIFVQRHMgY29u c3VtZWQgaW4gRnNwU2lsaWNvbkluaXQgQXBpDQo+ID4NCj4gPiArICAjDQo+ID4NCj4gPiArDQo+ ID4NCj4gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIw0KPiAjIyMjIyMjDQo+ID4gIyMjIyMjIyMjIyMjIyMjDQo+ID4NCj4gPiArICAjICFC U0YgRklORDp7UUVNVVBEX1N9DQo+ID4NCj4gPiArICAjICFIRFIgQ09NTUVOVDp7RlNQX1VQRF9I RUFERVI6RlNQIFVQRCBIZWFkZXJ9DQo+ID4NCj4gPiArICAjICFIRFIgRU1CRUQ6e0ZTUF9VUERf SEVBREVSOkZzcFVwZEhlYWRlcjpTVEFSVH0NCj4gPg0KPiA+ICsgICMgRnNwc1VwZFNpZ25hdHVy ZToge1FFTVVQRF9TfQ0KPiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZC5TaWdu YXR1cmUgICAgICAgICAgICAgICAgICAgfCAqIHwgMHgwOCB8DQo+ID4gMHg1MzVGNDQ1MDU1NEQ0 NTUxDQo+ID4NCj4gPiArICAjICFCU0YgTkFNRTp7RnNwc1VwZFJldmlzaW9ufQ0KPiA+DQo+ID4g KyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZC5SZXZpc2lvbiAgICAgICAgICAgICAgICAgICAg fCAqIHwgMHgwMSB8IDB4MDENCj4gPg0KPiA+ICsgICMgIUhEUiBFTUJFRDp7RlNQX1VQRF9IRUFE RVI6RnNwVXBkSGVhZGVyOkVORH0NCj4gPg0KPiA+ICsgIGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1 aWQuUmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgIHwgKiB8IDB4MTcgfCB7MHgwMH0NCj4gPg0K PiA+ICsNCj4gPg0KPiA+ICsgICMgIUhEUiBDT01NRU5UOntGU1BTX0FSQ0hfVVBEOkZTUFNfQVJD SF9VUER9DQo+ID4NCj4gPiArICAjICFIRFIgRU1CRUQ6e0ZTUFNfQVJDSF9VUEQ6RnNwc0FyY2hV cGQ6U1RBUlR9DQo+ID4NCj4gPiArICBnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkLlJldmlzaW9u ICAgICAgICAgICAgICAgICAgICB8ICogfCAweDAxIHwgMHgwMQ0KPiA+DQo+ID4gKyAgZ1FlbXVG c3BQa2dUb2tlblNwYWNlR3VpZC5SZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgfCAqIHwgMHgw MyB8IHsweDAwfQ0KPiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZC5MZW5ndGgg ICAgICAgICAgICAgICAgICAgICAgfCAqIHwgMHgwNCB8IDB4MDAwMDAwMjANCj4gPg0KPiA+ICsg IGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWQuRnNwRXZlbnRIYW5kbGVyICAgICAgICAgICAgIHwg KiB8IDB4MDQgfA0KPiA+IDB4MDAwMDAwMDANCj4gPg0KPiA+ICsgIGdRZW11RnNwUGtnVG9rZW5T cGFjZUd1aWQuRW5hYmxlTXVsdGlQaGFzZVNpbGljb25Jbml0IHwgKiB8IDB4MDEgfA0KPiAweDAw DQo+ID4NCj4gPiArICAjICFIRFIgRU1CRUQ6e0ZTUFNfQVJDSF9VUEQ6RnNwc0FyY2hVcGQ6RU5E fQ0KPiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZC5SZXNlcnZlZDEgICAgICAg ICAgICAgICAgICAgfCAqIHwgMHgxMyB8IHsweDAwfQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAg IyAhSERSIENPTU1FTlQ6e0ZTUF9TX0NPTkZJRzpGc3AgUyBDb25maWd1cmF0aW9ufQ0KPiA+DQo+ ID4gKyAgIyAhSERSIEVNQkVEOntGU1BfU19DT05GSUc6RnNwc0NvbmZpZzpTVEFSVH0NCj4gPg0K PiA+ICsgICMgIUJTRiBQQUdFOntTSUx9DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAjICFCU0Yg TkFNRTp7Qk1QIExvZ28gRGF0YSBTaXplfQ0KPiA+DQo+ID4gKyAgIyAhQlNGIFRZUEU6e1Jlc2Vy dmVkfQ0KPiA+DQo+ID4gKyAgIyAhQlNGIEhFTFA6e0JNUCBsb2dvIGRhdGEgYnVmZmVyIHNpemUu IDB4MDAwMDAwMDAoRGVmYXVsdCkufQ0KPiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNl R3VpZC5Mb2dvU2l6ZSAgICAgICAgICAgICAgICAgICAgfCAqIHwgMHgwNCB8DQo+IDB4MDAwMDAw MDANCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICMgIUJTRiBOQU1FOntCTVAgTG9nbyBEYXRhIFBv aW50ZXJ9DQo+ID4NCj4gPiArICAjICFCU0YgVFlQRTp7UmVzZXJ2ZWR9DQo+ID4NCj4gPiArICAj ICFCU0YgSEVMUDp7Qk1QIGxvZ28gZGF0YSBwb2ludGVyIHRvIGEgQk1QIGZvcm1hdCBidWZmZXIu DQo+ID4gMHgwMDAwMDAwMChEZWZhdWx0KS59DQo+ID4NCj4gPiArICBnUWVtdUZzcFBrZ1Rva2Vu U3BhY2VHdWlkLkxvZ29QdHIgICAgICAgICAgICAgICAgICAgICB8ICogfCAweDA0IHwNCj4gMHgw MDAwMDAwMA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgIyAhQlNGIE5BTUU6e0dyYXBoaWNzIENv bmZpZ3VyYXRpb24gRGF0YSBQb2ludGVyfQ0KPiA+DQo+ID4gKyAgIyAhQlNGIFRZUEU6e1Jlc2Vy dmVkfQ0KPiA+DQo+ID4gKyAgIyAhQlNGIEhFTFA6e0dyYXBoaWNzIGNvbmZpZ3VyYXRpb24gZGF0 YSB1c2VkIGZvciBpbml0aWFsaXphdGlvbi4NCj4gPiAweDAwMDAwMDAwKERlZmF1bHQpLn0NCj4g Pg0KPiA+ICsgIGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWQuR3JhcGhpY3NDb25maWdQdHIgICAg ICAgICAgIHwgKiB8IDB4MDQgfA0KPiA+IDB4MDAwMDAwMDANCj4gPg0KPiA+ICsNCj4gPg0KPiA+ ICsgICMgIUJTRiBOQU1FOntQQ0kgR0ZYIFRlbXBvcmFyeSBNTUlPIEJhc2V9DQo+ID4NCj4gPiAr ICAjICFCU0YgVFlQRTp7RWRpdE51bSwgSEVYLCAoMHg4MDAwMDAwMCwweERGRkZGRkZGKX0NCj4g Pg0KPiA+ICsgICMgIUJTRiBIRUxQOntQQ0kgVGVtcG9yYXJ5IFBDSSBHRlggQmFzZSB1c2VkIGJl Zm9yZSBmdWxsIFBDSQ0KPiBlbnVtZXJhdGlvbi4NCj4gPiAweDgwMDAwMDAwKERlZmF1bHQpLn0N Cj4gPg0KPiA+ICsgIGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWQuUGNpVGVtcFJlc291cmNlQmFz ZSAgICAgICAgIHwgKiB8IDB4MDQgfA0KPiA+IDB4ODAwMDAwMDANCj4gPg0KPiA+ICsNCj4gPg0K PiA+ICsgICMgIUhEUiBFTUJFRDp7RlNQX1NfQ09ORklHOkZzcHNDb25maWc6RU5EfQ0KPiA+DQo+ ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZC5SZXNlcnZlZEZzcHNVcGQgICAgICAgICAg ICAgfCAqIHwgMHgwMSB8IDB4MDANCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICMgTm90ZSBwbGVh c2Uga2VlcCAiVXBkVGVybWluYXRvciIgYXQgdGhlIGVuZCBvZiBlYWNoIFVQRCByZWdpb24uDQo+ ID4NCj4gPiArICAjIFRoZSB0b29sIHdpbGwgdXNlIHRoaXMgZmllbGQgdG8gZGV0ZXJtaW5lIHRo ZSBhY3R1YWwgZW5kIG9mIHRoZSBVUEQgZGF0YQ0KPiA+DQo+ID4gKyAgIyBzdHJ1Y3R1cmUuDQo+ ID4NCj4gPiArICBnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkLlVwZFRlcm1pbmF0b3IgICAgICAg ICAgICAgICB8ICogfCAweDAyIHwNCj4gMHg1NUFBDQo+ID4NCj4gPiArDQo+ID4NCj4gPg0KPiAr IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj DQo+ICMjIyMjIyMNCj4gPiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPiA+ DQo+ID4gKyMNCj4gPg0KPiA+ICsjIENvbXBvbmVudHMgU2VjdGlvbiAtIGxpc3Qgb2YgdGhlIG1v ZHVsZXMgYW5kIGNvbXBvbmVudHMgdGhhdCB3aWxsIGJlDQo+ID4gcHJvY2Vzc2VkIGJ5IGNvbXBp bGF0aW9uDQo+ID4NCj4gPiArIyAgICAgICAgICAgICAgICAgICAgICB0b29scyBhbmQgdGhlIEVE SyBJSSB0b29scyB0byBnZW5lcmF0ZSBQRTMyL1BFMzIrL0NvZmYgaW1hZ2UNCj4gPiBmaWxlcy4N Cj4gPg0KPiA+ICsjDQo+ID4NCj4gPiArIyBOb3RlOiBUaGUgRURLIElJIERTQyBmaWxlIGlzIG5v dCB1c2VkIHRvIHNwZWNpZnkgaG93IGNvbXBpbGVkIGJpbmFyeQ0KPiBpbWFnZXMNCj4gPiBnZXQg cGxhY2VkDQo+ID4NCj4gPiArIyAgICAgICBpbnRvIGZpcm13YXJlIHZvbHVtZSBpbWFnZXMuIFRo aXMgc2VjdGlvbiBpcyBqdXN0IGEgbGlzdCBvZiBtb2R1bGVzIHRvDQo+ID4gY29tcGlsZSBmcm9t DQo+ID4NCj4gPiArIyAgICAgICBzb3VyY2UgaW50byBVRUZJLWNvbXBsaWFudCBiaW5hcmllcy4N Cj4gPg0KPiA+ICsjICAgICAgIEl0IGlzIHRoZSBGREYgZmlsZSB0aGF0IGNvbnRhaW5zIGluZm9y bWF0aW9uIG9uIGNvbWJpbmluZyBiaW5hcnkgZmlsZXMNCj4gaW50bw0KPiA+IGZpcm13YXJlDQo+ ID4NCj4gPiArIyAgICAgICB2b2x1bWUgaW1hZ2VzLCB3aG9zZSBjb25jZXB0IGlzIGJleW9uZCBV RUZJIGFuZCBpcyBkZXNjcmliZWQgaW4gUEkNCj4gPiBzcGVjaWZpY2F0aW9uLg0KPiA+DQo+ID4g KyMgICAgICAgQmluYXJ5IG1vZHVsZXMgZG8gbm90IG5lZWQgdG8gYmUgbGlzdGVkIGluIHRoaXMg c2VjdGlvbiwgYXMgdGhleQ0KPiBzaG91bGQgYmUNCj4gPg0KPiA+ICsjICAgICAgIHNwZWNpZmll ZCBpbiB0aGUgRkRGIGZpbGUuIEZvciBleGFtcGxlOiBTaGVsbCBiaW5hcnkgKFNoZWxsX0Z1bGwu ZWZpKSwgRkFUDQo+ID4gYmluYXJ5IChGYXQuZWZpKSwNCj4gPg0KPiA+ICsjICAgICAgIExvZ28g KExvZ28uYm1wKSwgYW5kIGV0Yy4NCj4gPg0KPiA+ICsjICAgICAgIFRoZXJlIG1heSBhbHNvIGJl IG1vZHVsZXMgbGlzdGVkIGluIHRoaXMgc2VjdGlvbiB0aGF0IGFyZSBub3QgcmVxdWlyZWQNCj4g aW4NCj4gPiB0aGUgRkRGIGZpbGUsDQo+ID4NCj4gPiArIyAgICAgICBXaGVuIGEgbW9kdWxlIGxp c3RlZCBoZXJlIGlzIGV4Y2x1ZGVkIGZyb20gRkRGIGZpbGUsIHRoZW4gVUVGSS0NCj4gY29tcGxp YW50DQo+ID4gYmluYXJ5IHdpbGwgYmUNCj4gPg0KPiA+ICsjICAgICAgIGdlbmVyYXRlZCBmb3Ig aXQsIGJ1dCB0aGUgYmluYXJ5IHdpbGwgbm90IGJlIHB1dCBpbnRvIGFueSBmaXJtd2FyZQ0KPiB2 b2x1bWUuDQo+ID4NCj4gPiArIw0KPiA+DQo+ID4NCj4gKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPiAjIyMjIyMjDQo+ID4gIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCj4gPg0KPiA+ICtbQ29tcG9uZW50cy5JQTMy XQ0KPiA+DQo+ID4gKyAgIw0KPiA+DQo+ID4gKyAgIyBGU1AgQmluYXJ5IENvbXBvbmVudHMNCj4g Pg0KPiA+ICsgICMNCj4gPg0KPiA+ICsgICQoRlNQX1BBQ0tBR0UpL0ZzcEhlYWRlci9Gc3BIZWFk ZXIuaW5mDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAjDQo+ID4NCj4gPiArICAjIFNFQw0KPiA+ DQo+ID4gKyAgIw0KPiA+DQo+ID4gKyAgSW50ZWxGc3AyUGtnL0ZzcFNlY0NvcmUvRnNwU2VjQ29y ZVQuaW5mIHsNCj4gPg0KPiA+ICsgICAgPExpYnJhcnlDbGFzc2VzPg0KPiA+DQo+ID4gKw0KPiA+ DQo+IEZzcFNlY1BsYXRmb3JtTGlifCQoRlNQX1BBQ0tBR0UpL0xpYnJhcnkvUGxhdGZvcm1TZWNM aWIvVnRmMFBsYXRmb3JtU2UNCj4gY1RMaQ0KPiA+IGIuaW5mDQo+ID4NCj4gPiArICB9DQo+ID4N Cj4gPiArDQo+ID4NCj4gPiArW0NvbXBvbmVudHMuJChGU1BfQVJDSCldDQo+ID4NCj4gPiArICBJ bnRlbEZzcDJQa2cvRnNwU2VjQ29yZS9Gc3BTZWNDb3JlVi5pbmYgew0KPiA+DQo+ID4gKyAgICA8 TGlicmFyeUNsYXNzZXM+DQo+ID4NCj4gPiArDQo+ID4NCj4gRnNwU2VjUGxhdGZvcm1MaWJ8JChG U1BfUEFDS0FHRSkvTGlicmFyeS9QbGF0Zm9ybVNlY0xpYi9WdGYwUGxhdGZvcm1TZQ0KPiBjVkxp DQo+ID4gYi5pbmYNCj4gPg0KPiA+ICsgIH0NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgIEludGVs RnNwMlBrZy9Gc3BTZWNDb3JlL0ZzcFNlY0NvcmVNLmluZiB7DQo+ID4NCj4gPiArICAgIDxMaWJy YXJ5Q2xhc3Nlcz4NCj4gPg0KPiA+ICsNCj4gPg0KPiBGc3BTZWNQbGF0Zm9ybUxpYnwkKEZTUF9Q QUNLQUdFKS9MaWJyYXJ5L1BsYXRmb3JtU2VjTGliL1Z0ZjBQbGF0Zm9ybVNlDQo+IGNNTA0KPiA+ IGliLmluZg0KPiA+DQo+ID4gKyAgfQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgSW50ZWxGc3Ay UGtnL0ZzcFNlY0NvcmUvRnNwU2VjQ29yZVMuaW5mIHsNCj4gPg0KPiA+ICsgICAgPExpYnJhcnlD bGFzc2VzPg0KPiA+DQo+ID4gKw0KPiA+DQo+IEZzcFNlY1BsYXRmb3JtTGlifCQoRlNQX1BBQ0tB R0UpL0xpYnJhcnkvUGxhdGZvcm1TZWNMaWIvVnRmMFBsYXRmb3JtU2UNCj4gY1NMaQ0KPiA+IGIu aW5mDQo+ID4NCj4gPiArICB9DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAjDQo+ID4NCj4gPiAr ICAjIFBFSSBDb3JlDQo+ID4NCj4gPiArICAjDQo+ID4NCj4gPiArICBNZGVNb2R1bGVQa2cvQ29y ZS9QZWkvUGVpTWFpbi5pbmYNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICMNCj4gPg0KPiA+ICsg ICMgUENEDQo+ID4NCj4gPiArICAjDQo+ID4NCj4gPiArICBNZGVNb2R1bGVQa2cvVW5pdmVyc2Fs L1BDRC9QZWkvUGNkLmluZiB7DQo+ID4NCj4gPiArICAgIDxMaWJyYXJ5Q2xhc3Nlcz4NCj4gPg0K PiA+ICsgICAgICBEZWJ1Z0xpYnxNZGVQa2cvTGlicmFyeS9CYXNlRGVidWdMaWJOdWxsL0Jhc2VE ZWJ1Z0xpYk51bGwuaW5mDQo+ID4NCj4gPiArICAgICAgUGNkTGlifE1kZVBrZy9MaWJyYXJ5L0Jh c2VQY2RMaWJOdWxsL0Jhc2VQY2RMaWJOdWxsLmluZg0KPiA+DQo+ID4gKyAgfQ0KPiA+DQo+ID4g Kw0KPiA+DQo+ID4gKyAgJChGU1BfUEFDS0FHRSkvRnNwdkluaXQvRnNwdkluaXQuaW5mDQo+ID4N Cj4gPiArICAkKEZTUF9QQUNLQUdFKS9Gc3BtSW5pdC9Gc3BtSW5pdC5pbmYNCj4gPg0KPiA+ICsg ICQoRlNQX1BBQ0tBR0UpL0ZzcHNJbml0L0ZzcHNJbml0LmluZg0KPiA+DQo+ID4gKyAgJChGU1Bf UEFDS0FHRSkvUWVtdVZpZGVvL1FlbXVWaWRlby5pbmYNCj4gPg0KPiA+ICsgIE1kZU1vZHVsZVBr Zy9Db3JlL0R4ZUlwbFBlaW0vRHhlSXBsLmluZiB7DQo+ID4NCj4gPiArICAgIDxMaWJyYXJ5Q2xh c3Nlcz4NCj4gPg0KPiA+ICsNCj4gPg0KPiBEZWJ1Z0FnZW50TGlifE1kZU1vZHVsZVBrZy9MaWJy YXJ5L0RlYnVnQWdlbnRMaWJOdWxsL0RlYnVnQWdlbnRMaQ0KPiBiTnVsbA0KPiA+IC5pbmYNCj4g Pg0KPiA+ICsNCj4gPg0KPiBSZXNldFN5c3RlbUxpYnxNZGVNb2R1bGVQa2cvTGlicmFyeS9CYXNl UmVzZXRTeXN0ZW1MaWJOdWxsL0Jhc2VSZXMNCj4gZXRTeXMNCj4gPiB0ZW1MaWJOdWxsLmluZg0K PiA+DQo+ID4gKyAgfQ0KPiA+DQo+ID4gKyAgSW50ZWxGc3AyUGtnL0ZzcE5vdGlmeVBoYXNlL0Zz cE5vdGlmeVBoYXNlUGVpbS5pbmYNCj4gPg0KPiA+ICsNCj4gPg0KPiA+DQo+ICsjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCj4gIyMjIyMj Iw0KPiA+ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQo+ID4NCj4gPiArIw0K PiA+DQo+ID4gKyMgQnVpbGRPcHRpb25zIFNlY3Rpb24gLSBEZWZpbmUgdGhlIG1vZHVsZSBzcGVj aWZpYyB0b29sIGNoYWluIGZsYWdzIHRoYXQNCj4gc2hvdWxkDQo+ID4gYmUgdXNlZCBhcw0KPiA+ DQo+ID4gKyMgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZGVmYXVsdCBmbGFncyBmb3IgYSBt b2R1bGUuIFRoZXNlIGZsYWdzIGFyZSBhcHBlbmRlZCB0bw0KPiBhbnkNCj4gPg0KPiA+ICsjICAg ICAgICAgICAgICAgICAgICAgICAgc3RhbmRhcmQgZmxhZ3MgdGhhdCBhcmUgZGVmaW5lZCBieSB0 aGUgYnVpbGQgcHJvY2Vzcy4gVGhleQ0KPiBjYW4gYmUNCj4gPg0KPiA+ICsjICAgICAgICAgICAg ICAgICAgICAgICAgYXBwbGllZCBmb3IgYW55IG1vZHVsZXMgb3Igb25seSB0aG9zZSBtb2R1bGVz IHdpdGggdGhlDQo+IHNwZWNpZmljDQo+ID4NCj4gPiArIyAgICAgICAgICAgICAgICAgICAgICAg IG1vZHVsZSBzdHlsZSAoRURLIG9yIEVES0lJKSBzcGVjaWZpZWQgaW4gW0NvbXBvbmVudHNdDQo+ IHNlY3Rpb24uDQo+ID4NCj4gPiArIw0KPiA+DQo+ID4NCj4gKyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPiAjIyMjIyMjDQo+ID4gIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCj4gPg0KPiA+ICtbQnVpbGRPcHRpb25z XQ0KPiA+DQo+ID4gKyMgQXBwZW5kIGJ1aWxkIG9wdGlvbnMgZm9yIEVESyBhbmQgRURLSUkgZHJp dmVycyAoPSBpcyBBcHBlbmQsID09IGlzDQo+IFJlcGxhY2UpDQo+ID4NCj4gPiArICAjIEVuYWJs ZSBsaW5rLXRpbWUgb3B0aW1pemF0aW9uIHdoZW4gYnVpbGRpbmcgd2l0aCBHQ0M0OQ0KPiA+DQo+ ID4gKyAgKl9HQ0M0OV9JQTMyX0NDX0ZMQUdTID0gLWZsdG8NCj4gPg0KPiA+ICsgICpfR0NDNDlf SUEzMl9ETElOS19GTEFHUyA9IC1mbHRvDQo+ID4NCj4gPiArICAqX0dDQzVfSUEzMl9DQ19GTEFH UyA9IC1mbm8tcGljDQo+ID4NCj4gPiArICAqX0dDQzVfSUEzMl9ETElOS19GTEFHUyA9IC1uby1w aWUNCj4gPg0KPiA+ICsgICpfR0NDNV9JQTMyX0FTTENDX0ZMQUdTID0gLWZuby1waWMNCj4gPg0K PiA+ICsgICpfR0NDNV9JQTMyX0FTTERMSU5LX0ZMQUdTID0gLW5vLXBpZQ0KPiA+DQo+ID4gZGlm ZiAtLWdpdCBhL0ludGVsRnNwMlBrZy9Ub29scy9UZXN0cy90ZXN0X3lhbWwucHkNCj4gPiBiL0lu dGVsRnNwMlBrZy9Ub29scy9UZXN0cy90ZXN0X3lhbWwucHkNCj4gPiBuZXcgZmlsZSBtb2RlIDEw MDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAuLmQ4MWQ3ZjdjNGUNCj4gPiAtLS0gL2Rldi9udWxs DQo+ID4gKysrIGIvSW50ZWxGc3AyUGtnL1Rvb2xzL1Rlc3RzL3Rlc3RfeWFtbC5weQ0KPiA+IEBA IC0wLDAgKzEsOTYgQEANCj4gPiArIyBAZmlsZQ0KPiA+DQo+ID4gKyMgIFNwbGl0IGEgZmlsZSBp bnRvIHR3byBwaWVjZXMgYXQgdGhlIHJlcXVlc3Qgb2Zmc2V0Lg0KPiA+DQo+ID4gKyMNCj4gPg0K PiA+ICsjICBDb3B5cmlnaHQgKGMpIDIwMjEsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCj4gPg0KPiA+ICsjDQo+ID4NCj4gPiArIyAgU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPg0KPiA+ICsjDQo+ID4NCj4gPiArIyMN Cj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsjIEltcG9ydCBNb2R1bGVzDQo+ID4NCj4gPiAraW1wb3J0 IHVuaXR0ZXN0DQo+ID4NCj4gPiAraW1wb3J0IHRlbXBmaWxlDQo+ID4NCj4gPiAraW1wb3J0IG9z DQo+ID4NCj4gPiAraW1wb3J0IHNodXRpbA0KPiA+DQo+ID4gK2ltcG9ydCBzdHJ1Y3QgYXMgc3QN Cj4gPg0KPiA+ICtpbXBvcnQgZmlsZWNtcA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK2ltcG9ydCBv cywgc3lzDQo+ID4NCj4gPiArY3VycmVudGRpciA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLnJl YWxwYXRoKF9fZmlsZV9fKSkNCj4gPg0KPiA+ICtwYXJlbnRkaXIgPSBvcy5wYXRoLmRpcm5hbWUo Y3VycmVudGRpcikNCj4gPg0KPiA+ICtzeXMucGF0aC5hcHBlbmQocGFyZW50ZGlyKQ0KPiA+DQo+ ID4gK2ltcG9ydCBGc3BEc2NCc2YyWWFtbA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK1lhbWxIZWFk ZXJMaW5lTGVuZ3RoID0gMTANCj4gPg0KPiA+ICtIZHJGaWxlSGVhZGVyTGluZUxlbmd0aCA9IDMy DQo+ID4NCj4gPiArQnNmRmlsZUhlYWRlckxpbmVMZW5ndGggPSAxOQ0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gK2RlZiBHZW5GaWxlV2l0aG91dEhkcihpbnB1dGZpbGUsIG51bUxpbmVUb1N0cmlwKToN Cj4gPg0KPiA+ICsgICAgeWFtbF9maWxlID0gb3BlbihpbnB1dGZpbGUsICJyIikNCj4gPg0KPiA+ ICsgICAgbGluZXMgPSB5YW1sX2ZpbGUucmVhZGxpbmVzKCkNCj4gPg0KPiA+ICsgICAgeWFtbF9m aWxlLmNsb3NlKCkNCj4gPg0KPiA+ICsgICAgZGVsIGxpbmVzWzpudW1MaW5lVG9TdHJpcF0NCj4g Pg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgbm9IZHJPdXRwdXRGaWxlTmFtZSA9ICJuby1oZWFkZXIt IiArIGlucHV0ZmlsZQ0KPiA+DQo+ID4gKyAgICBzdHJpcHBlZF9maWxlID0gb3Blbihub0hkck91 dHB1dEZpbGVOYW1lLCAidyIpDQo+ID4NCj4gPiArICAgIGZvciBsaW5lIGluIGxpbmVzOg0KPiA+ DQo+ID4gKyAgICAgICAgc3RyaXBwZWRfZmlsZS53cml0ZShsaW5lKQ0KPiA+DQo+ID4gKyAgICBz dHJpcHBlZF9maWxlLmNsb3NlKCkNCj4gPg0KPiA+ICsgICAgcmV0dXJuIG5vSGRyT3V0cHV0Rmls ZU5hbWUNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICtjbGFzcyBUZXN0RnNwU2NyaXB0cyh1bml0dGVz dC5UZXN0Q2FzZSk6DQo+ID4NCj4gPiArICAgIGRlZiB0ZXN0X2dlbmVyYXRlRnNwSGVhZGVyX2Zy b21Ec2Moc2VsZik6DQo+ID4NCj4gPiArICAgICAgICAjIEdlbmVyYXRlIEhFQURFUg0KPiA+DQo+ ID4gKyAgICAgICAgY21kID0gJ3t9IHt9IEhFQURFUiB7fSB7fSB7fScuZm9ybWF0KA0KPiA+DQo+ ID4gKyAgICAgICAgICAgICdweXRob24nLA0KPiA+DQo+ID4gKyAgICAgICAgICAgICcuLlxHZW5D ZmdPcHQucHknLA0KPiA+DQo+ID4gKyAgICAgICAgICAgICdRZW11RnNwUGtnLmRzYycsDQo+ID4N Cj4gPiArICAgICAgICAgICAgJy4nLA0KPiA+DQo+ID4gKyAgICAgICAgICAgICIiKQ0KPiA+DQo+ ID4gKyAgICAgICAgb3Muc3lzdGVtKGNtZCkNCj4gPg0KPiA+ICsgICAgICAgIG5vSGRyT3V0cHV0 RmlsZU5hbWUgPSBHZW5GaWxlV2l0aG91dEhkcigiRnNwVXBkLmgiLA0KPiA+IEhkckZpbGVIZWFk ZXJMaW5lTGVuZ3RoKQ0KPiA+DQo+ID4gKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZpbGVjbXAu Y21wKG5vSGRyT3V0cHV0RmlsZU5hbWUsDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgJ0V4 cGVjdGVkRnNwVXBkLmgnKSkNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgZGVmIHRlc3RfZ2Vu ZXJhdGVGc3BzSGVhZGVyX2Zyb21Ec2Moc2VsZik6DQo+ID4NCj4gPiArICAgICAgICBub0hkck91 dHB1dEZpbGVOYW1lID0gR2VuRmlsZVdpdGhvdXRIZHIoIkZzcHNVcGQuaCIsDQo+ID4gSGRyRmls ZUhlYWRlckxpbmVMZW5ndGgpDQo+ID4NCj4gPiArICAgICAgICBzZWxmLmFzc2VydFRydWUoZmls ZWNtcC5jbXAobm9IZHJPdXRwdXRGaWxlTmFtZSwNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAg ICAnRXhwZWN0ZWRGc3BzVXBkLmgnKSkNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgZGVmIHRl c3RfZ2VuZXJhdGVGc3B0SGVhZGVyX2Zyb21Ec2Moc2VsZik6DQo+ID4NCj4gPiArICAgICAgICBu b0hkck91dHB1dEZpbGVOYW1lID0gR2VuRmlsZVdpdGhvdXRIZHIoIkZzcHRVcGQuaCIsDQo+ID4g SGRyRmlsZUhlYWRlckxpbmVMZW5ndGgpDQo+ID4NCj4gPiArICAgICAgICBzZWxmLmFzc2VydFRy dWUoZmlsZWNtcC5jbXAobm9IZHJPdXRwdXRGaWxlTmFtZSwNCj4gPg0KPiA+ICsgICAgICAgICAg ICAgICAgICAnRXhwZWN0ZWRGc3B0VXBkLmgnKSkNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAg ZGVmIHRlc3RfZ2VuZXJhdGVGc3BtSGVhZGVyX2Zyb21Ec2Moc2VsZik6DQo+ID4NCj4gPiArICAg ICAgICBub0hkck91dHB1dEZpbGVOYW1lID0gR2VuRmlsZVdpdGhvdXRIZHIoIkZzcG1VcGQuaCIs DQo+ID4gSGRyRmlsZUhlYWRlckxpbmVMZW5ndGgpDQo+ID4NCj4gPiArICAgICAgICBzZWxmLmFz c2VydFRydWUoZmlsZWNtcC5jbXAobm9IZHJPdXRwdXRGaWxlTmFtZSwNCj4gPg0KPiA+ICsgICAg ICAgICAgICAgICAgICAnRXhwZWN0ZWRGc3BtVXBkLmgnKSkNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ ICsgICAgZGVmIHRlc3RfZ2VuZXJhdGVCc2ZfZnJvbURzYyhzZWxmKToNCj4gPg0KPiA+ICsgICAg ICAgICMgR2VuZXJhdGUgQlNGDQo+ID4NCj4gPiArICAgICAgICBjbWQgPSAne30ge30gR0VOQlNG IHt9IHt9IHt9Jy5mb3JtYXQoDQo+ID4NCj4gPiArICAgICAgICAgICAgJ3B5dGhvbicsDQo+ID4N Cj4gPiArICAgICAgICAgICAgJy4uXEdlbkNmZ09wdC5weScsDQo+ID4NCj4gPiArICAgICAgICAg ICAgJ1FlbXVGc3BQa2cuZHNjJywNCj4gPg0KPiA+ICsgICAgICAgICAgICAnLicsDQo+ID4NCj4g PiArICAgICAgICAgICAgIk91dHB1dC5ic2YiKQ0KPiA+DQo+ID4gKyAgICAgICAgb3Muc3lzdGVt KGNtZCkNCj4gPg0KPiA+ICsgICAgICAgIG5vSGRyT3V0cHV0RmlsZU5hbWUgPSBHZW5GaWxlV2l0 aG91dEhkcigiT3V0cHV0LmJzZiIsDQo+ID4gQnNmRmlsZUhlYWRlckxpbmVMZW5ndGgpDQo+ID4N Cj4gPiArICAgICAgICBzZWxmLmFzc2VydFRydWUoZmlsZWNtcC5jbXAobm9IZHJPdXRwdXRGaWxl TmFtZSwNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAnRXhwZWN0ZWRPdXRwdXQuYnNmJykp DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgIGRlZiB0ZXN0X2dlbmVyYXRlWWFtbF9mcm9tRHNj KHNlbGYpOg0KPiA+DQo+ID4gKyAgICAgICAgIyBHZW5lcmF0ZSBZQU1MDQo+ID4NCj4gPiArICAg ICAgICBjbWQgPSAne30ge30ge30ge30nLmZvcm1hdCgNCj4gPg0KPiA+ICsgICAgICAgICAgICAn cHl0aG9uJywNCj4gPg0KPiA+ICsgICAgICAgICAgICAnLi5cRnNwRHNjQnNmMllhbWwucHknLA0K PiA+DQo+ID4gKyAgICAgICAgICAgICdRZW11RnNwUGtnLmRzYycsDQo+ID4NCj4gPiArICAgICAg ICAgICAgIk91dHB1dC55YW1sIikNCj4gPg0KPiA+ICsgICAgICAgIG9zLnN5c3RlbShjbWQpDQo+ ID4NCj4gPiArICAgICAgICBub0hkck91dHB1dEZpbGVOYW1lID0gR2VuRmlsZVdpdGhvdXRIZHIo Ik91dHB1dC55YW1sIiwNCj4gPiBZYW1sSGVhZGVyTGluZUxlbmd0aCkNCj4gPg0KPiA+ICsgICAg ICAgIHNlbGYuYXNzZXJ0VHJ1ZShmaWxlY21wLmNtcChub0hkck91dHB1dEZpbGVOYW1lLA0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICAgICdFeHBlY3RlZE91dHB1dC55YW1sJykpDQo+ID4NCj4g PiArDQo+ID4NCj4gPiAraWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoNCj4gPg0KPiA+ICsgICAg dW5pdHRlc3QubWFpbigpDQo+ID4NCj4gPiBkaWZmIC0tZ2l0DQo+IGEvSW50ZWxGc3AyUGtnL1Rv b2xzL1VzZXJNYW51YWxzL0ZzcERzY0JzZjJZYW1sVXNlck1hbnVhbC5tZA0KPiA+IGIvSW50ZWxG c3AyUGtnL1Rvb2xzL1VzZXJNYW51YWxzL0ZzcERzY0JzZjJZYW1sVXNlck1hbnVhbC5tZA0KPiA+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMC4uYmEyMzExNDQ1Yw0K PiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9JbnRlbEZzcDJQa2cvVG9vbHMvVXNlck1hbnVh bHMvRnNwRHNjQnNmMllhbWxVc2VyTWFudWFsLm1kDQo+ID4gQEAgLTAsMCArMSwzOSBAQA0KPiA+ ICsjTmFtZQ0KPiA+DQo+ID4gKyoqRnNwRHNjQnNmMllhbWwucHkqKiBUaGUgcHl0aG9uIHNjcmlw dCB0aGF0IGdlbmVyYXRlcyBZQU1MIGZpbGUgZm9yDQo+ID4NCj4gPiArdGhlIEJvb3QgU2V0dGlu Z3MgZnJvbSBhbiBFREsgSUkgUGxhdGZvcm0gRGVzY3JpcHRpb24gKCoqRFNDKiopIGZpbGUNCj4g Pg0KPiA+ICtvciBmcm9tIGEgQm9vdCBTZXR0aW5ncyBGaWxlICgqKkJTRioqKS4gSXQgaXMgY3Jl YXRlZCB0byBoZWxwDQo+ID4NCj4gPiArdHJhbnNpdGlvbmluZyBGU1AgVXBkYXRlYWJsZSBQcm9k dWN0IERhdGEgKCoqVVBEKiopIGZpbGUgZm9ybWF0IHRvDQo+ID4NCj4gPiArbmV3IHN0YW5kYXJk aXplZCBZQU1MIGZvcm1hdCBzbyB0aGF0IGl0IGNhbiBiZSBjb25maWd1cmVkIHRocm91Z2gNCj4g Pg0KPiA+ICtvcGVuIHNvdXJjZSB0b29scy4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsjU3lub3Bz aXMNCj4gPg0KPiA+ICtgYGANCj4gPg0KPiA+ICtGc3BEc2NCc2YyWWFtbCBEc2NGaWxlfEJzZkZp bGUgIFlhbWxGaWxlDQo+ID4NCj4gPiArYGBgDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArI0Rlc2Ny aXB0aW9uDQo+ID4NCj4gPiArKipGc3BEc2NCc2YyWWFtbC5weSoqIGlzIGEgc2NyaXB0IHRoYXQg Z2VuZXJhdGVzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucw0KPiBmcm9tDQo+ID4gYW4NCj4gPg0KPiA+ ICsqKkVESyBJSSBQbGF0Zm9ybSBEZXNjcmlwdGlvbiAoRFNDKSoqIGZpbGUgb3IgKiphIEJvb3Qg U2V0dGluZ3MgRmlsZQ0KPiAoQlNGKSoqIGZpbGUuDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArSXQg Z2VuZXJhdGVzIGEgKipZQU1MIGZpbGUqKiB0aGF0IGNhbiBiZSB1c2VkIGJ5IHRoZSAqKkNvbmZp ZyBFZGl0b3IqKiB0bw0KPiA+IHByb3ZpZGUNCj4gPg0KPiA+ICthIGdyYXBoaWNhbCB1c2VyIGlu dGVyZmFjZSBmb3IgbWFuaXB1bGF0aW5nIHNldHRpbmdzIGluIHRoZSBVUEQgcmVnaW9ucy4NCj4g Pg0KPiA+ICsNCj4gPg0KPiA+ICtUaGUgZm9sbG93aW5nIHNlY3Rpb25zIGV4cGxhaW4gdGhlIHVz YWdlIG9mIHRoaXMgc2NyaXB0Lg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyMjIDEuIEZzcERzY0Jz ZjJZYW1sLnB5IERzY0ZpbGUgWWFtbEZpbGUNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICtUaGUgKipE c2NGaWxlKiogb3B0aW9uIGlzIGFuIGlucHV0IERTQyBmaWxlLg0KPiA+DQo+ID4gKw0KPiA+DQo+ ID4gK1RoZSAqKllhbWxGaWxlKiogb3B0aW9uIGlzIGFuIG91dHB1dCBZQU1MIGZpbGUuDQo+ID4N Cj4gPiArDQo+ID4NCj4gPiArVGhlIHNjcmlwdCB0YWtlcyB0aGUgRlNQIERTQyBmaWxlIGNvbnNp c3RpbmcgQlNGIHN5bnRheCBhbmQgZ2VuZXJhdGVzIGENCj4gWUFNTA0KPiA+DQo+ID4gK291dHB1 dCBmaWxlIGRlc2NyaWJpbmcgdGhlIGJvb3Qgc2V0dGluZ3MuDQo+ID4NCj4gPiArDQo+ID4NCj4g PiArIyMgMi4gRnNwRHNjQnNmMllhbWwucHkgQnNmRmlsZSBZYW1sRmlsZQ0KPiA+DQo+ID4gKw0K PiA+DQo+ID4gK1RoZSAqKkJzZkZpbGUqKiBvcHRpb24gaXMgYW4gaW5wdXQgQlNGIGZpbGUuDQo+ ID4NCj4gPiArDQo+ID4NCj4gPiArVGhlICoqWWFtbEZpbGUqKiBvcHRpb24gaXMgYW4gb3V0cHV0 IFlBTUwgZmlsZS4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICtUaGUgc2NyaXB0IGdlbmVyYXRlcyBh IFlBTUwgb3V0cHV0IGZpbGUgZnJvbSBhIEJTRiBmaWxlLiBUaGUgQlNGIGZpbGUNCj4gPg0KPiA+ ICtjYW4gYmUgZ2VuZXJhdGVkIHVzaW5nIEdlbkNmZ09wdCB0b29sLg0KPiA+DQo+ID4gLS0NCj4g PiAyLjI4LjAud2luZG93cy4xDQoNCg==