From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web10.6176.1637799418862234738 for ; Wed, 24 Nov 2021 16:16:59 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=Ce8c8qrR; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: michael.d.kinney@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10178"; a="215431594" X-IronPort-AV: E=Sophos;i="5.87,261,1631602800"; d="scan'208";a="215431594" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Nov 2021 16:16:53 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,261,1631602800"; d="scan'208";a="741001569" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by fmsmga005.fm.intel.com with ESMTP; 24 Nov 2021 16:16:53 -0800 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Wed, 24 Nov 2021 16:16:53 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Wed, 24 Nov 2021 16:16:53 -0800 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.108) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Wed, 24 Nov 2021 16:16:52 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZNgVquHaycs9EymvEyCRs7YRPehC9HVS5CqSq7hyk6IJ7WiG1upRncWtJ2Z3723DPez7VnpaMRLRghaCRU+ijnKtsQWD07GOCiFghH4a02xx/pYoG19kojCfiDyB02u49bOlrpuG+FXEhqtnjg0fcskMN3EJdXN7CIN52OdYU5+VFmVaR3FAWFtRMgDKgDjjfBP7FCwTQ+pgbv7uv/HQQUMoqHltwi3i+bDon82QNha6lNudMcMSyxCpcAPyYA89UeZvZX3/yeoBt/eKqr9u1tOkSgYfYoghqsfizzPHpyNqz57cUFVjCiXvAHVx0pgjBnwS1/+B8O+EN1YIbQ+k0w== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Ix1uJxDGrzHRjCqmXz3kjQfvgUhBSfX/0mVBXEafT0o=; b=OnkwovZPa+JAVXTdbRVtAhHbi8mBMxSlvu7oX0TJeKaZnkxvsCQuGOsW20V9NaIIRy5aQryjx+bYitcTx+EJEq2vl6co/0SqOdZIsLyw4sR9Hlx/Zf6Wp2eDmXms0AG2fCThVDsmuy4rdImasbiZ3nrP5nD/yLhwMzZImLxauIvDQD86te9nQJdfJLLbWuDSN6fHZPHvTezrK+5TCkGoSj5Mcb27jbrMtTTw2jASLtzL63nUFPTa9BQQfmrbfsDaSbdXH7roIjtolXdkEnPlxSJLP2wBWTD1gIn9JhOd9KfGakteTK4B7/6z7xSb5+PsVO2Z8QWWlGm8qgRNdsXEnA== 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=Ix1uJxDGrzHRjCqmXz3kjQfvgUhBSfX/0mVBXEafT0o=; b=Ce8c8qrRPUWcSVU9XkPhkkhuAod/zNMI4wUJI/aYaI8RbCc4UW11wQYQXMHrNZa6LghN5sSNj4QyUOoX8gM+sNSZiC7Km79XyIgSlZbfrxv/OgGTNvWPbCpKO+TTNm480WK1d4z7WAAlU56/xE5OoruqTjS9HoS70TeGHMKS8LA= Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by MWHPR11MB1454.namprd11.prod.outlook.com (2603:10b6:301:d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Thu, 25 Nov 2021 00:16:49 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::68cc:6227:db69:d81a]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::68cc:6227:db69:d81a%6]) with mapi id 15.20.4713.025; Thu, 25 Nov 2021 00:16:49 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "mikuback@linux.microsoft.com" , "Kinney, Michael D" CC: Liming Gao , Sean Brogan , Bret Barkelew Subject: Re: [edk2-devel] [PATCH v4 1/1] .pytool/Plugin/UncrustifyCheck: Add Uncrustify CI plugin Thread-Topic: [edk2-devel] [PATCH v4 1/1] .pytool/Plugin/UncrustifyCheck: Add Uncrustify CI plugin Thread-Index: AQHX4XwmMYDqp0mP/kqm0Cd+X+x24qwTRrIggAAC8oCAAALaYIAAD06QgAAECxA= Date: Thu, 25 Nov 2021 00:16:49 +0000 Message-ID: References: <20211124214131.2705-1-mikuback@linux.microsoft.com> <87b4f4bb-8d19-abdc-85f9-6b7bffa1b12e@linux.microsoft.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 3e2e4f83-5ec5-466d-d32a-08d9afa8dfde x-ms-traffictypediagnostic: MWHPR11MB1454: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: JztQ5Gk/ux+BCZ+G4i3MQ1/Cdd4RxxYAHpHGdNOoNkyY1CHlbyJeJBffkX7A5KTyPGBWFn2vICnnIIeRSXtux0if+WtJlKwL+xNbEru5iyTncFjupN/7499KXdkgDogGgCl7KUYsheHo93n9Nzfz2a2yA32lH6DM8T2sL19xOCwZXJXBBGpKUh9RDCvxdl54HqS/3EQw53cCRjB/oaa4H69usuLPrN2D75RKYaRE76GQSC1ttsGHDSKeoyzAwAwUO1ExWbdh9s3FmshknYL7XPZ4oWrYUpYJPC1fWqRL5+uItVx2OP4VsWaHW7TRaXWxTGXxyP0f1IP+9LlJv3/jnpma/dFT0bcdZgmb8oLVodKjQ5E0mLiDzCRbgwBrZ3VHu53vT83XgiCl0lMTnpKKVcFha19x1Ij6AYJi6NXaVtSPYvryZXMoNXKAaJZwz5OnuieT0ysoygrAy6wB5RR/CkYaKrvqe9MCnmuRnvZqyuHniV+8nBEeE2YHcJ0P5PT4Bk/f0h73sZbYwRmUBzSYiYOrgA4zsqlXuyHprA7342KMAy1+lbUF26wJUmgd0pIlYoBjSmrkYb/GV621e8ecpT3yRZcRYvKK+LyeAWzw/Gm/K53Ow1D3S2LPuUFCfSgZs/ey0N6qQEvIgfWG7iPD+oAp7Ye0Vt6u/1ul/IzzTeluoJ6ttgU2jQMXIhzUup5yU+12T+F6cNFRkvarFV9sLQUuHz9idQk/pX0H8/1OvWPyIdnCN62OnApaJSdu6ri5+JU8yztYVdUNSNOMikNVUcslDO3jb5ElAQflWJ4Vgzpic6I1g/KCLR3k3ppDCsPKoJ5oL+0+lUjFMqDr5XKFfg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(186003)(8676002)(2940100002)(6506007)(86362001)(110136005)(55016003)(66556008)(66476007)(7696005)(53546011)(19627235002)(54906003)(26005)(52536014)(38070700005)(8936002)(122000001)(38100700002)(4326008)(33656002)(45080400002)(71200400001)(508600001)(9686003)(64756008)(2906002)(5660300002)(66446008)(316002)(66946007)(966005)(83380400001)(76116006)(82960400001)(30864003)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SCtkWGp3R2lGNWgrYWpwVTdUUGJOWWpEZ0NLQ1Jwa3hqTWJVdzhJOWk1Z2gy?= =?utf-8?B?SlZNVVhLQ0MvTWlEKzFCbkVTUEpZUC9PWEVyMldDRU1XWjViSUlTZnhwV0pw?= =?utf-8?B?OGZYV3ptdkhQVVQvMFFPR2NJM3hJKytCdjRJM2ZjdjRnd2l1THRRL3dLaHFz?= =?utf-8?B?cDgwd1Ywam5qVEJoNVR3UTlYTkFYeXlPb0ZydmE3TExhbEVLYnliTTdKVWVI?= =?utf-8?B?Qmc2MHNkaVU2cWxaQTBwYkdmeEs2eEhKNGR5YkhxSW1zSFc0L1duWkNZNUVG?= =?utf-8?B?K0NIRVcyMTV2bTdBMFpYZUtPekdLSGZFVU94RjZMcEc2WHh3M2kzN0pPQ2tB?= =?utf-8?B?UTBwMWdIbjNxcUFFQmdrRkJIcUgxYk9BNTMvck9QdWh3bExZOEU1TE9vYjVr?= =?utf-8?B?SkVrT0liMjBxdGlYMFRMOU1HaEw2ajFlOHVpTVNHbXpRZU5rSG5kL3FyNEpT?= =?utf-8?B?ZXdka3p2RXB2VzVqREQreElpVk1kdjF6YUc4T1E4Zmhaci8xUU1qUXhHaWhM?= =?utf-8?B?bUF0UUJvYTBicmVRWUFjM21GUWpGRldTa1pxRzZqZnYvVnMvWVFZMW5HK3RI?= =?utf-8?B?alhaL2VNd3hMb1J2QTF5cnMwSThsN2Nnc2ZIRk9LUnpBV0hDRTI2UTBiWGZo?= =?utf-8?B?azMvdWRJQWl2dDd0UEZBRXhOUzR4VlNBOThZaFFDRlhnVG9NM0w0Wmd6dDFL?= =?utf-8?B?UVdpYkJZZFc0RzlJbGJWeHNjOFVsYmc5T1FmODg3NWJVaUJGWGh6S0hYZ3Uy?= =?utf-8?B?OTZUK05jV3pMbWtucy83dnE5OHNMR0o1b2JFR0E4Z3JLdWhtWlpoY1lOSThq?= =?utf-8?B?SDdZcXVpRGsvd3FCSy9jYzdJN0VYT0hyZ3g4MVV5U2VFMG1jZnRtWU9KVmsy?= =?utf-8?B?bUNsaS9pWUR6QXRHZHpiVVJkNXJRcTFtWlhHTmlaSkV1M09ieXpzSXBZbnNo?= =?utf-8?B?UHZTQjJlbGNmbGNOZDlvdjdPVEJyTVpFQm9NVUpLVXlOcFQ1a2NKaHU3SXY0?= =?utf-8?B?Ymd2OGgwTXNjMWphSHBKQUlFd2VLUm9ERXVnRDVYaEc3SUg3dGZHQ1pzVXV2?= =?utf-8?B?czl3NDgvam92TzA5ZUJ3L29hdnhReGRib2ZaTFZLU0FNZWoyQ0ZQUkFkanVP?= =?utf-8?B?am1MYnFnWkxicmkza1NQQ05MdW9PSWcveXMrc1V6eXVZL1Y1VnhYRENSZ0VZ?= =?utf-8?B?b25iU0ZkN3d6YnZTZ2FwbTUrN0FMV0VNRVhPeXlCbDNGK1hrOHMwakdBbFgy?= =?utf-8?B?ZFphVm5lU3BLaHlNVnpDd1BsT0ZiWmdpQWxFT1hteHBxdTZwa3JCcGJEYTFr?= =?utf-8?B?aVVTbXE5WjB2WDZRY3NnNzUrNnpUTDlDWEZEMG1RNHlmalV6RVhJQlRsSllO?= =?utf-8?B?ZW1jZS94elB2VXoyNktFK0NhcUp3SmdMTXNtbGVJbWNwYUJzNnVBTVd0TC9a?= =?utf-8?B?UWxUSHpCcVIxR3RIMldpUjROcXVBRmtoaFB5Y0lRMStuekNMTUZVM3hBNlVY?= =?utf-8?B?ZDhGYXE4UXc4SFpJVWJSOGgwQkJlWExhNGt3U1psTExCaER3SGlqWlRrckw4?= =?utf-8?B?QlYzb1F3K3JSUVZJRnBMMmtZNGh5clAvdUYyU3R2NE9WY0hNcUw2V0M4NUgy?= =?utf-8?B?TTdUOVBuNDRFcjhseDdJOXFXZXY2VDlqb1JDaVdDdUZiWkNxbm1CS1lKaity?= =?utf-8?B?NzVSbnMxUWpWNm41NVZXRGV4V3pZTzJ4WU5rZGJseE40U1VrbmI2YnpXcWI0?= =?utf-8?B?MXhVR2dyUDQ3S2xZcjFLTjUyWjBaWjBHV1pkS0xiK2J0NW1veDFCcjYrYW5L?= =?utf-8?B?Y1ZwVno1L1RINTN1TVRycW1HYnU1UjZQRTREdTJxcVZtcTVnMGttVUkvZ0Zr?= =?utf-8?B?K0tWc1RmZzU4Rmd4Qi9IblU5VVpUSDRGRUFhL005emxLbmRDYk1FOHpxVU5I?= =?utf-8?B?TWdrUlBNZVhCaG91azhrM2dmWUpJY09VK2s1ODByZi9tSEhJdjFTTXpaZFlU?= =?utf-8?B?THphN2RDYWUvZE1tNWZtU3ZaMHpIZ3VNOG9xV1lNQ0ZQejBxY0hWbXhWM1ZN?= =?utf-8?B?TElCOEJwVlNEemxXT2tsQWFTbzQyMUJVZTJ1R3M3Zkw5M3N2YWFreE91YUpz?= =?utf-8?B?RW1lTUR0N2dyUTVGUXA3cEpHdCtTeFFVVzV1czJIRndCUFZPalRpR1FBajNi?= =?utf-8?B?YWpyRHFjbWRlT2pFVTRRTEV0b29KMFNTRjhpZjFLSHFmcTFwbld2aFZiNzhy?= =?utf-8?B?NTVkUkRUZFltSElReGZwV1pVLy9nPT0=?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3e2e4f83-5ec5-466d-d32a-08d9afa8dfde X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Nov 2021 00:16:49.3092 (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: OkXZC1yZiKSwxkMKaGPqPWTbo/O1qVWyp7U6Y9fzx9An7FWFuYm0vigCa6V59o1E/sghWftPKgCuloIuyg7U7Ru6Ope/RvkjWxAyJPCvs/A= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1454 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlIDJuZCBvcHRpb24gSSBsaXN0ZWQgd29uJ3Qgd29yay4gIFRoYXQgd2lsbCBmYWlsIFVuY3J1 c3RpZnlDaGVjayBhcyB3ZWxsIGJlY2F1c2UgRURLIElJIENJDQp3aWxsIGluc2VydCBtaXNzaW5n IGZpbGUvZnVuY3Rpb24gaGVhZGVycyBhbmQgdGhlIGZpbGVzIHdpbGwgbm90IG1hdGNoLg0KDQpX ZSB3aWxsIG5lZWQgdG8gY29tbWVudCBvdXQgdGhlc2UgMiBsaW5lcyBhbmQgc3VibWl0IGFuIGV4 dHJhIGNvbW1pdCB0byByZS1lbmFibGUuDQoNCk1pa2UNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiBGcm9tOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRl bC5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgTm92ZW1iZXIgMjQsIDIwMjEgNDowOCBQTQ0KPiBU bzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IG1pa3ViYWNrQGxpbnV4Lm1pY3Jvc29mdC5jb207IEtp bm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gQ2M6IExpbWlu ZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IFNlYW4gQnJvZ2FuIDxzZWFuLmJyb2dh bkBtaWNyb3NvZnQuY29tPjsgQnJldCBCYXJrZWxldw0KPiA8QnJldC5CYXJrZWxld0BtaWNyb3Nv ZnQuY29tPg0KPiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSCB2NCAxLzFdIC5weXRv b2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVjazogQWRkIFVuY3J1c3RpZnkgQ0kgcGx1Z2luDQo+IA0K PiBIaSBNaWNoYWVsLA0KPiANCj4gVW5mb3J0dW5hdGVseSwgZW5hYmxpbmcgdGhlIHRlbXBsYXRl cyBpbiB0aGUgdW5jcnVzdGlmeS5jZmcgZmlsZXMgbW9kaWZpZXMgMzQwIGZpbGVzIHdpdGggbWlz c2luZw0KPiBmaWxlL2Z1bmN0aW9uIGhlYWRlcnMgdGhhdCB3aWxsIG5vdyBmYWlsIFVuY3J1c3Rp ZnlDaGVjay4NCj4gDQo+ICAgICBjbXRfaW5zZXJ0X2ZpbGVfaGVhZGVyICAgICAgICAgID0gZGVm YXVsdF9maWxlX2hlYWRlci50eHQNCj4gICAgIGNtdF9pbnNlcnRfZnVuY19oZWFkZXIgICAgICAg ICAgPSBkZWZhdWx0X2Z1bmN0aW9uX2hlYWRlci50eHQNCj4gDQo+IFBlcmhhcHMgd2Ugc2hvdWxk IGxlYXZlIHRoaXMgZmVhdHVyZSBvZmYgdG8gZ2V0IHRoZSB1bmNydXN0aWZ5IGZvcm1hdCBjaGFu Z2VzIGNvbW1pdHRlZCBhbmQNCj4gZW5hYmxlIHRoaXMgZmVhdHVyZSBpbW1lZGlhdGVseSBhZnRl ciBzbyBwYXRjaCByZXZpZXdzIGFmdGVyIHRoYXQgd2lsbCBzbG93bHkgZml4IHRoZXNlIG1pc3Np bmcNCj4gZmlsZS9mdW5jdGlvbiBoZWFkZXJzLg0KPiANCj4gT3IgSSBjYW4gY29tbWVudCB0aGVz ZSB0d28gbGluZXMgb3V0IHdoZW4gSSBnZW5lcmF0ZSB0aGUgZmluYWwgdmVyc2lvbiBvZiB0aGUg cGF0Y2ggc2VyaWVzIHNvDQo+IHdlIGRvbuKAmXQgaGF2ZSB0byBkbyBhbiBleHRyYSBjb21taXQg dG8gcmUtZW5hYmxlLg0KPiANCj4gTWlrZQ0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiA+IEZyb206IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVs LmNvbT4NCj4gPiBTZW50OiBXZWRuZXNkYXksIE5vdmVtYmVyIDI0LCAyMDIxIDM6MDYgUE0NCj4g PiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IG1pa3ViYWNrQGxpbnV4Lm1pY3Jvc29mdC5jb207 IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiBDYzog TGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgU2VhbiBCcm9nYW4gPHNlYW4u YnJvZ2FuQG1pY3Jvc29mdC5jb20+OyBCcmV0IEJhcmtlbGV3DQo+ID4gPEJyZXQuQmFya2VsZXdA bWljcm9zb2Z0LmNvbT4NCj4gPiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSCB2NCAx LzFdIC5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVjazogQWRkIFVuY3J1c3RpZnkgQ0kgcGx1 Z2luDQo+ID4NCj4gPiBUaGFua3MuICBUaGF0IG1ha2VzIHNlbnNlLg0KPiA+DQo+ID4gTWlrZQ0K PiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogZGV2ZWxA ZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgTWljaGFl bCBLdWJhY2tpDQo+ID4gPiBTZW50OiBXZWRuZXNkYXksIE5vdmVtYmVyIDI0LCAyMDIxIDI6NTUg UE0NCj4gPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgS2lubmV5LCBNaWNoYWVsIEQgPG1p Y2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gQ2M6IExpbWluZyBHYW8gPGdhb2xpbWlu Z0BieW9zb2Z0LmNvbS5jbj47IFNlYW4gQnJvZ2FuIDxzZWFuLmJyb2dhbkBtaWNyb3NvZnQuY29t PjsgQnJldCBCYXJrZWxldw0KPiA+ID4gPEJyZXQuQmFya2VsZXdAbWljcm9zb2Z0LmNvbT4NCj4g PiA+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIHY0IDEvMV0gLnB5dG9vbC9QbHVn aW4vVW5jcnVzdGlmeUNoZWNrOiBBZGQgVW5jcnVzdGlmeSBDSSBwbHVnaW4NCj4gPiA+DQo+ID4g PiBZZXMuIFRob3NlIHdlcmUgcmVkdW5kYW50IGFuZCBkZXRlY3RlZCBieSB0aGUgUHl0aG9uIGNv bmZpZ3BhcnNlciBtb2R1bGUNCj4gPiA+IHdoZW4gSSB1c2VkIGl0IHRvIHBhcnNlIHRoZSBjb25m aWcgZmlsZS4NCj4gPiA+DQo+ID4gPiBUaGFua3MsDQo+ID4gPiBNaWNoYWVsDQo+ID4gPg0KPiA+ ID4gT24gMTEvMjQvMjAyMSA1OjQ1IFBNLCBNaWNoYWVsIEQgS2lubmV5IHdyb3RlOg0KPiA+ID4g PiBIaSBNaWNoYWVsLA0KPiA+ID4gPg0KPiA+ID4gPiBJIHNlZSBhIGNvdXBsZSBzZXR0aW5ncyBk ZWxldGVkIGZyb20gdGhlIHVuY3J1c3RpZnkuY2ZnLiAgV2FzIHRoYXQgaW4gcHVycG9zZT8gIERv ZXMgaXQgY2hhbmdlIHRoZSBmb3JtYXQ/DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IC1ubF9m dW5jX2NhbGxfc3RhcnRfbXVsdGlfbGluZSAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBhZGQg YSBuZXdsaW5lIGFmdGVyICcoJyBpbiBhIGZ1bmN0aW9uIGNhbGwgaWYgJygnIGFuZCAnKScNCj4g PiBhcmUNCj4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIyBpbiBkaWZmZXJlbnQgbGluZXMuDQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IC1ubF9m dW5jX2NhbGxfYXJnc19tdWx0aV9saW5lICAgICAgICAgICAgICAgICA9IHRydWUNCj4gPiA+ID4g LW5sX2Z1bmNfY2FsbF9hcmdzX211bHRpX2xpbmVfaWdub3JlX2Nsb3N1cmVzID0gZmFsc2UNCj4g PiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gVGhhbmtzLA0KPiA+ID4gPg0KPiA+ID4gPiBNaWtlDQo+ ID4gPiA+DQo+ID4gPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPj4gRnJv bTogbWlrdWJhY2tAbGludXgubWljcm9zb2Z0LmNvbSA8bWlrdWJhY2tAbGludXgubWljcm9zb2Z0 LmNvbT4NCj4gPiA+ID4+IFNlbnQ6IFdlZG5lc2RheSwgTm92ZW1iZXIgMjQsIDIwMjEgMTo0MiBQ TQ0KPiA+ID4gPj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiA+PiBDYzogS2lubmV5 LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgTGltaW5nIEdhbyA8Z2Fv bGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgU2VhbiBCcm9nYW4NCj4gPiA+ID4+IDxzZWFuLmJyb2dh bkBtaWNyb3NvZnQuY29tPjsgQnJldCBCYXJrZWxldyA8QnJldC5CYXJrZWxld0BtaWNyb3NvZnQu Y29tPg0KPiA+ID4gPj4gU3ViamVjdDogW1BBVENIIHY0IDEvMV0gLnB5dG9vbC9QbHVnaW4vVW5j cnVzdGlmeUNoZWNrOiBBZGQgVW5jcnVzdGlmeSBDSSBwbHVnaW4NCj4gPiA+ID4+DQo+ID4gPiA+ PiBGcm9tOiBNaWNoYWVsIEt1YmFja2kgPG1pY2hhZWwua3ViYWNraUBtaWNyb3NvZnQuY29tPg0K PiA+ID4gPj4NCj4gPiA+ID4+IFJFRjpodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hv d19idWcuY2dpP2lkPTM3NDgNCj4gPiA+ID4+DQo+ID4gPiA+PiBBZGRzIGEgbmV3IENJIHBsdWdp biBmb3IgVW5jcnVzdGlmeS4gVGhpcyBpcyB1c2VkIHRvIGNoZWNrDQo+ID4gPiA+PiBjb2Rpbmcg c3RhbmRhcmQgY29tcGxpYW5jZSBvZiBzb3VyY2UgY29kZSB0byB0aGUgRURLIElJIEMgQ29kaW5n DQo+ID4gPiA+PiBTdGFuZGFyZHMgU3BlY2lmaWNhdGlvbi4NCj4gPiA+ID4+DQo+ID4gPiA+PiBB biBleHRlcm5hbCBkZXBlbmRlbmN5IGlzIGFkZGVkIGluIHRoZSBwbHVnaW4gZGlyZWN0b3J5IHRv IHJldHJpZXZlDQo+ID4gPiA+PiB0aGUgVW5jcnVzdGlmeSBleGVjdXRhYmxlLiBDdXJyZW50bHks IHRoZSBleGVjdXRhYmxlIGlzIGZyb20gYW4gZWRrMg0KPiA+ID4gPj4gZm9yayBvZiB0aGUgYXBw bGljYXRpb24gaG9zdCBpbiB0aGlzIHJlcG9zaXRvcnk6DQo+ID4gPiA+Pg0KPiA+ID4gPj4gaHR0 cHM6Ly9kZXYuYXp1cmUuY29tL3Byb2plY3RtdS9VbmNydXN0aWZ5Lw0KPiA+ID4gPj4NCj4gPiA+ ID4+IE5vdGUgdGhhdCB0aGUgVW5jcnVzdGlmeSBhcHBsaWNhdGlvbiBvdXRwdXRzIHRoZSBjb21t aXQgSUQgdGhhdCB0aGUNCj4gPiA+ID4+IGFwcGxpY2F0aW9uIHdhcyBidWlsdCBmcm9tIHdoZW4g Z2l2ZW4gdGhlIC0tdmVyc2lvbiBwYXJhbWV0ZXIuDQo+ID4gPiA+Pg0KPiA+ID4gPj4gVGhpcyBJ RCBjYW4gYmUgbWFwcGVkIHRvIHRoZSB2ZXJzaW9uIHNwZWNpZmllZCBpbiB0aGUgVW5jcnVzdGlm eSBDSQ0KPiA+ID4gPj4gcGx1Z2luIGV4dGVybmFsIGRlcGVuZGVuY3kgZmlsZSAodW5jcnVzdGlm eV9leHRfZGVwLnlhbWwpIHN1Y2ggYXMNCj4gPiA+ID4+IDczLjAuMyBieSB2aXNpdGluZyB0aGUg VW5jcnVzdGlmeSBlZGsyIGZvcmsgcmVsZWFzZSBwaXBlbGluZSBwYWdlDQo+ID4gPiA+PiB3aGlj aCBhc3NvY2lhdGVzIHRoZSBOdUdldCBwYWNrYWdlIHZlcnNpb24gd2l0aCB0aGUgY29tbWl0IElE IGl0IHdhcw0KPiA+ID4gPj4gYnVpbHQgZnJvbToNCj4gPiA+ID4+DQo+ID4gPiA+PiBodHRwczov L2Rldi5henVyZS5jb20vcHJvamVjdG11L1VuY3J1c3RpZnkvX2J1aWxkDQo+ID4gPiA+Pg0KPiA+ ID4gPj4gVGhlIGRlZmF1bHQgVW5jcnVzdGlmeSBjb25maWd1cmF0aW9uIGZpbGVzIGFyZSBhZGRl ZCBpbiB0aGUgcGx1Z2luDQo+ID4gPiA+PiBkaXJlY3RvcnkuIEFkZGl0aW9uYWwgZGV0YWlscyBh cmUgaW4gdGhlIFJlYWRtZS5tZCBmaWxlIGFkZGVkIGluDQo+ID4gPiA+PiB0aGUgVW5jcnVzdGlm eSBwbHVnaW4gZGlyZWN0b3J5Lg0KPiA+ID4gPj4NCj4gPiA+ID4+IENjOiBNaWNoYWVsIEQgS2lu bmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiA+ID4+IENjOiBMaW1pbmcgR2Fv IDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+DQo+ID4gPiA+PiBDYzogU2VhbiBCcm9nYW4gPHNl YW4uYnJvZ2FuQG1pY3Jvc29mdC5jb20+DQo+ID4gPiA+PiBDYzogQnJldCBCYXJrZWxldyA8QnJl dC5CYXJrZWxld0BtaWNyb3NvZnQuY29tPg0KPiA+ID4gPj4gU2lnbmVkLW9mZi1ieTogTWljaGFl bCBLdWJhY2tpIDxtaWNoYWVsLmt1YmFja2lAbWljcm9zb2Z0LmNvbT4NCj4gPiA+ID4+IC0tLQ0K PiA+ID4gPj4NCj4gPiA+ID4+IE5vdGVzOg0KPiA+ID4gPj4gICAgICBWNCBjaGFuZ2VzOg0KPiA+ ID4gPj4NCj4gPiA+ID4+ICAgICAgMS4gVXBkYXRlZCBjb21taXQgc3ViamVjdCB0byB1c2UgdGhl IG5ldyBwbHVnaW4gbmFtZS4NCj4gPiA+ID4+ICAgICAgMi4gRW5hYmxlZCBmaWxlIGFuZCBmdW5j dGlvbiBoZWFkZXIgdGVtcGxhdGVzIHRvIGJlIHBsYWNlZCBpbg0KPiA+ID4gPj4gICAgICAgICBm aWxlcyBtaXNzaW5nIGEgZmlsZSBvciBmdW5jdGlvbiBoZWFkZXIgKGNvbW1lbnQgYmxvY2spLg0K PiA+ID4gPj4gICAgICAzLiBBZGRlZCBzdXBwb3J0IHRvIGRldGVjdCB3aGV0aGVyIGEgZmlsZSBo ZWFkZXIgb3IgZnVuY3Rpb24NCj4gPiA+ID4+ICAgICAgICAgaGVhZGVyIGlzIG1pc3NpbmcgaW4g YSBmaWxlIGJ5IHNlYXJjaGluZyBmaWxlcyBtb2RpZmllZCBieQ0KPiA+ID4gPj4gICAgICAgICBV bmNydXN0aWZ5IGZvciB0aGUgdGVtcGxhdGUgZmlsZSB0ZXh0Lg0KPiA+ID4gPj4gICAgICA0LiBV cGRhdGVkIHRoZSBwbHVnaW4gbmFtZSBkaXNwbGF5ZWQgaW4gc29tZSBsb2cgb3V0cHV0IG1lc3Nh Z2VzLg0KPiA+ID4gPj4NCj4gPiA+ID4+ICAgICAgVjMgY2hhbmdlczoNCj4gPiA+ID4+DQo+ID4g PiA+PiAgICAgIDEuIFJlbmFtZWQgdGhlIENJIHBsdWdpbiB0byAiVW5jcnVzdGlmeUNoZWNrIiBm cm9tICJVbmNydXN0aWZ5Ig0KPiA+ID4gPj4gICAgICAgICB0byBmb2xsb3cgc2ltaWxhciBuYW1p bmcgY29udmVudGlvbnMgdXNlZCBpbiBvdGhlciBwbHVnaW5zDQo+ID4gPiA+PiAgICAgICAgIHRo YXQgY2hlY2sgZmlsZXMNCj4gPiA+ID4+ICAgICAgMi4gQWRkZWQgYSBjbGFyaWZ5aW5nIHBhcmFn cmFwaCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBVbmNydXN0aWZ5DQo+ID4gPiA+PiAgICAgICAg IENJIHBsdWdpbiBSZWFkbWUubWQgZmlsZSB0aGF0IHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBk ZWZhdWx0DQo+ID4gPiA+PiAgICAgICAgIGFuZCB0ZXN0IHJlc3VsdHMgY2FuIGJlIGlnbm9yZWQg YnkgZW5hYmxpbmcgIkF1ZGl0T25seSIgbW9kZS4NCj4gPiA+ID4+ICAgICAgMy4gQWRkZWQgaW5z dHJ1Y3Rpb25zIGluIHRoZSBjb21taXQgbWVzc2FnZSBvbiBob3cgdG8gbWFwIHRoZQ0KPiA+ID4g Pj4gICAgICAgICB2ZXJzaW9uIHJlcG9ydGVkIGJ5IHRoZSBVbmNydXN0aWZ5IGFwcGxpY2F0aW9u ICgtLXZlcnNpb24pIHRvDQo+ID4gPiA+PiAgICAgICAgIHRoZSB2ZXJzaW9uIHNwZWNpZmllZCBp biB0aGUgQ0kgcGx1Z2luIGV4dGVybmFsIGRlcGVuZGVuY3kNCj4gPiA+ID4+ICAgICAgICAgWUFN TCBmaWxlLg0KPiA+ID4gPj4NCj4gPiA+ID4+ICAgICAgVjIgY2hhbmdlczoNCj4gPiA+ID4+DQo+ ID4gPiA+PiAgICAgIDEuIENoYW5nZWQgcGx1Z2luIHRlbXAgZGlyZWN0b3J5IHRvIEJ1aWxkLy5w eXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkNCj4gPiA+ID4+ICAgICAgMi4gQWRkZWQgVENCWiBSRUYg aW4gcGF0Y2ggY29tbWl0IG1lc3NhZ2UNCj4gPiA+ID4+DQo+ID4gPiA+PiAgIC5weXRvb2wvUGx1 Z2luL1VuY3J1c3RpZnlDaGVjay9SZWFkbWUubWQgICAgICAgICAgICAgICAgICAgfCAxMjAgKysr Kw0KPiA+ID4gPj4gICAucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5Q2hlY2svVW5jcnVzdGlmeUNo ZWNrLnB5ICAgICAgICAgIHwgNjE3ICsrKysrKysrKysrKysrKysrKysrDQo+ID4gPiA+PiAgIC5w eXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVjay9kZWZhdWx0X2ZpbGVfaGVhZGVyLnR4dCAgICAg fCAgIDkgKw0KPiA+ID4gPj4gICAucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5Q2hlY2svZGVmYXVs dF9mdW5jdGlvbl9oZWFkZXIudHh0IHwgIDE1ICsNCj4gPiA+ID4+ICAgLnB5dG9vbC9QbHVnaW4v VW5jcnVzdGlmeUNoZWNrL3VuY3J1c3RpZnkuY2ZnICAgICAgICAgICAgICB8IDQ2MiArKysrKysr KysrKysrKysNCj4gPiA+ID4+ICAgLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeUNoZWNrL3VuY3J1 c3RpZnlfZXh0X2RlcC55YW1sICAgICB8ICAxNiArDQo+ID4gPiA+PiAgIC5weXRvb2wvUGx1Z2lu L1VuY3J1c3RpZnlDaGVjay91bmNydXN0aWZ5X3BsdWdfaW4ueWFtbCAgICAgfCAgMTEgKw0KPiA+ ID4gPj4gICAucHl0b29sL1JlYWRtZS5tZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICA0ICsNCj4gPiA+ID4+ICAgOCBmaWxlcyBjaGFuZ2VkLCAxMjU0IGluc2Vy dGlvbnMoKykNCj4gPiA+ID4+DQo+ID4gPiA+PiBkaWZmIC0tZ2l0IGEvLnB5dG9vbC9QbHVnaW4v VW5jcnVzdGlmeUNoZWNrL1JlYWRtZS5tZCBiLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVj ay9SZWFkbWUubWQNCj4gPiA+ID4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gPiA+PiBpbmRl eCAwMDAwMDAwMDAwMDAuLmJiMjYzYmNjODdkNw0KPiA+ID4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+ ID4gPj4gKysrIGIvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeUNoZWNrL1JlYWRtZS5tZA0KPiA+ ID4gPj4gQEAgLTAsMCArMSwxMjAgQEANCj4gPiA+ID4+ICsjIFVuY3J1c3RpZnlDaGVjayBQbHVn aW4NCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICtUaGlzIENpQnVpbGRQbHVnaW4gc2NhbnMgYWxsIHRo ZSBmaWxlcyBpbiBhIGdpdmVuIHBhY2thZ2UgYW5kIGNoZWNrcyBmb3IgY29kaW5nIHN0YW5kYXJk IGNvbXBsaWFuY2UgaXNzdWVzLg0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gK1RoaXMgcGx1Z2luIGlz IGVuYWJsZWQgYnkgZGVmYXVsdC4gSWYgYSBwYWNrYWdlIHdvdWxkIGxpa2UgdG8gcHJldmVudCB0 aGUgcGx1Z2luIGZyb20gcmVwb3J0aW5nIGVycm9ycywgaXQgY2FuIGRvDQo+ID4gPiA+PiArc28g YnkgZW5hYmxpbmcgW2BBdWRpdE9ubHlgXSgjYXVkaXRvbmx5KSBtb2RlLg0KPiA+ID4gPj4gKw0K PiA+ID4gPj4gK1RoaXMgcGx1Z2luIHJlcXVpcmVzIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0 aGUgVW5jcnVzdGlmeSBleGVjdXRhYmxlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoaXMgcGx1 Z2luIHRvDQo+ID4gPiA+PiArYmUgc3BlY2lmaWVkIGluIGFuIGVudmlyb25tZW50IHZhcmlhYmxl IG5hbWVkIGBVTkNSVVNUSUZZX0NJX1BBVEhgLiBUaGlzIHVuaXF1ZSB2YXJpYWJsZSBuYW1lIGlz IHVzZWQgdG8gYXZvaWQNCj4gPiA+IGNvbmZ1c2lvbg0KPiA+ID4gPj4gK3dpdGggb3RoZXIgcGF0 aHMgdG8gVW5jcnVzdGlmeSB3aGljaCBtaWdodCBub3QgYmUgdGhlIGV4cGVjdGVkIGJ1aWxkIGZv ciB1c2UgYnkgdGhpcyBwbHVnaW4uDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArQnkgZGVmYXVsdCwg YW4gVW5jcnVzdGlmeSBjb25maWd1cmF0aW9uIGZpbGUgbmFtZWQgInVuY3J1c3RpZnkuY2ZnIiBs b2NhdGVkIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyB0aGUgcGx1Z2luIGlzDQo+ID4gPiA+PiAr dXNlZC4gVGhlIHZhbHVlIGNhbiBiZSBvdmVycmlkZGVuIHRvIGEgcGFja2FnZS1zcGVjaWZpYyBw YXRoIHdpdGggdGhlIGBDb25maWdGaWxlUGF0aGAgY29uZmlndXJhdGlvbiBmaWxlIG9wdGlvbi4N Cj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsqIFVuY3J1c3RpZnkgc291cmNlIGNvZGUgYW5kIGRvY3Vt ZW50YXRpb246IGh0dHBzOi8vZ2l0aHViLmNvbS91bmNydXN0aWZ5L3VuY3J1c3RpZnkNCj4gPiA+ ID4+ICsqIFByb2plY3QgTXUgVW5jcnVzdGlmeSBmb3JrIHNvdXJjZSBjb2RlIGFuZCBkb2N1bWVu dGF0aW9uOiBodHRwczovL2Rldi5henVyZS5jb20vcHJvamVjdG11L1VuY3J1c3RpZnkNCj4gPiA+ ID4+ICsNCj4gPiA+ID4+ICsjIyBGaWxlcyBDaGVja2VkIGluIGEgUGFja2FnZQ0KPiA+ID4gPj4g Kw0KPiA+ID4gPj4gK0J5IGRlZmF1bHQsIHRoaXMgcGx1Z2luIHdpbGwgZGlzY292ZXIgYWxsIGZp bGVzIGluIHRoZSBwYWNrYWdlIHdpdGggdGhlIGZvbGxvd2luZyBkZWZhdWx0IHBhdGhzOg0KPiA+ ID4gPj4gKw0KPiA+ID4gPj4gK2BgYHB5dGhvbg0KPiA+ID4gPj4gK1sNCj4gPiA+ID4+ICsjIEMg c291cmNlDQo+ID4gPiA+PiArIiouYyIsDQo+ID4gPiA+PiArIiouaCINCj4gPiA+ID4+ICtdDQo+ ID4gPiA+PiArYGBgDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArRnJvbSB0aGlzIGxpc3Qgb2YgZmls ZXMsIGFueSBmaWxlcyBpZ25vcmVkIGJ5IEdpdCBvciByZXNpZGluZyBpbiBhIEdpdCBzdWJtb2R1 bGUgd2lsbCBiZSByZW1vdmVkLiBJZiBHaXQgaXMgbm90DQo+ID4gPiA+PiArZm91bmQsIHN1Ym1v ZHVsZXMgYXJlIG5vdCBmb3VuZCwgb3IgaWdub3JlZCBmaWxlcyBhcmUgbm90IGZvdW5kIG5vIGNo YW5nZXMgYXJlIG1hZGUgdG8gdGhlIGxpc3Qgb2YgZGlzY292ZXJlZA0KPiBmaWxlcy4NCj4gPiA+ ID4+ICsNCj4gPiA+ID4+ICtUbyBjb250cm9sIHRoZSBwYXRocyBjaGVja2VkIGluIGEgZ2l2ZW4g cGFja2FnZSwgcmV2aWV3IHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZGVzY3JpYmVkIGluIHRo aXMgZmlsZS4NCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsjIyBDb25maWd1cmF0aW9uDQo+ID4gPiA+ PiArDQo+ID4gPiA+PiArVGhlIHBsdWdpbiBjYW4gYmUgY29uZmlndXJlZCB3aXRoIGEgZmV3IG9w dGlvbmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4NCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICtgYGAg eWFtbA0KPiA+ID4gPj4gKyAgIlVuY3J1c3RpZnlDaGVjayI6IHsNCj4gPiA+ID4+ICsgICAgICAi QWRkaXRpb25hbEluY2x1ZGVQYXRocyI6IFtdLCAjIEFkZGl0aW9uYWwgcGF0aHMgdG8gY2hlY2sg Zm9ybWF0dGluZyAod2lsZGNhcmRzIHN1cHBvcnRlZCkuDQo+ID4gPiA+PiArICAgICAgIkF1ZGl0 T25seSI6IEZhbHNlLCAgICAgICAgICAgIyBEb24ndCBmYWlsIHRoZSBidWlsZCBpZiB0aGVyZSBh cmUgZXJyb3JzLiAgSnVzdCBsb2cgdGhlbS4NCj4gPiA+ID4+ICsgICAgICAiQ29uZmlnRmlsZVBh dGgiOiAiIiwgICAgICAgICAjIEN1c3RvbSBwYXRoIHRvIGFuIFVuY3J1c3RpZnkgY29uZmlnIGZp bGUuDQo+ID4gPiA+PiArICAgICAgIklnbm9yZVN0YW5kYXJkUGF0aHMiOiBbXSwgICAgIyBTdGFu ZGFyZCBQbHVnaW4gZGVmaW5lZCBwYXRocyB0aGF0IHNob3VsZCBiZSBpZ25vcmVkLg0KPiA+ID4g Pj4gKyAgICAgICJPdXRwdXRGaWxlRGlmZnMiOiBGYWxzZSwgICAgICMgT3V0cHV0IGNodW5rcyBv ZiBmb3JtYXR0aW5nIGRpZmZzIGluIHRoZSB0ZXN0IGNhc2UgbG9nLg0KPiA+ID4gPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVGhpcyBjYW4gc2lnbmlmaWNhbnRseSBz bG93IGRvd24gdGhlIHBsdWdpbiBvbiB2ZXJ5IGxhcmdlIHBhY2thZ2VzLg0KPiA+ID4gPj4gKyAg ICAgICJTa2lwR2l0RXhjbHVzaW9ucyI6IEZhbHNlICAgICMgRG9uJ3QgZXhjbHVkZSBnaXQgaWdu b3JlZCBmaWxlcyBhbmQgZmlsZXMgaW4gZ2l0IHN1Ym1vZHVsZXMuDQo+ID4gPiA+PiArICB9DQo+ ID4gPiA+PiArYGBgDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArIyMjIGBBZGRpdGlvbmFsSW5jbHVk ZVBhdGhzYA0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gK0EgcGFja2FnZSBjb25maWd1cmF0aW9uIGZp bGUgY2FuIHNwZWNpZnkgYW55IGFkZGl0aW9uYWwgcGF0aHMgdG8gYmUgaW5jbHVkZWQgd2l0aCB0 aGlzIG9wdGlvbi4NCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICtBdCB0aGlzIHRpbWUsIGl0IGlzIHJl Y29tbWVuZGVkIGFsbCBmaWxlcyBydW4gYWdhaW5zdCB0aGUgcGx1Z2luIGJlIHdyaXR0ZW4gaW4g dGhlIEMgb3IgQysrIGxhbmd1YWdlLg0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKyMjIyBgQXVkaXRP bmx5YA0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gK2BCb29sZWFuYCAtIERlZmF1bHQgaXMgYEZhbHNl YC4NCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICtJZiBgVHJ1ZWAsIHJ1biB0aGUgdGVzdCBpbiBhbiAi YXVkaXQgb25seSBtb2RlIiB3aGljaCB3aWxsIGxvZyBhbGwgZXJyb3JzIGJ1dCBpbnN0ZWFkIG9m IGZhaWxpbmcgdGhlIGJ1aWxkLCBpdA0KPiB3aWxsDQo+ID4gPiBzZXQNCj4gPiA+ID4+ICt0aGUg dGVzdCBhcyBza2lwcGVkLiBUaGlzIGFsbG93cyB2aXNpYmlsaXR5IGludG8gdGhlIGZhaWx1cmVz IHdpdGhvdXQgYnJlYWtpbmcgdGhlIGJ1aWxkLg0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKyMjIyBg Q29uZmlnRmlsZVBhdGhgDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArYFN0cmluZ2AgLSBEZWZhdWx0 IGlzIGAidW5jcnVzdGlmeS5jZmciYA0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gK1doZW4gc3BlY2lm aWVkIGluIHRoZSBjb25maWcgZmlsZSwgdGhpcyBpcyBhIHBhY2thZ2UgcmVsYXRpdmUgcGF0aCB0 byB0aGUgVW5jcnVzdGlmeSBjb25maWd1cmF0aW9uIGZpbGUuDQo+ID4gPiA+PiArDQo+ID4gPiA+ PiArIyMjIGBJZ25vcmVTdGFuZGFyZFBhdGhzYA0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gK1RoaXMg cGx1Z2luIGJ5IGRlZmF1bHQgd2lsbCBjaGVjayB0aGUgYmVsb3cgc3RhbmRhcmQgcGF0aHMuIEEg cGFja2FnZSBjb25maWd1cmF0aW9uIGZpbGUgY2FuIHNwZWNpZnkgYW55IG9mIHRoZXNlDQo+ID4g PiBwYXRocw0KPiA+ID4gPj4gK3RvIGJlIGlnbm9yZWQuDQo+ID4gPiA+PiArDQo+ID4gPiA+PiAr YGBgcHl0aG9uDQo+ID4gPiA+PiArWw0KPiA+ID4gPj4gKyMgQyBzb3VyY2UNCj4gPiA+ID4+ICsi Ki5jIiwNCj4gPiA+ID4+ICsiKi5oIg0KPiA+ID4gPj4gK10NCj4gPiA+ID4+ICtgYGANCj4gPiA+ ID4+ICsNCj4gPiA+ID4+ICsjIyMgYE91dHB1dEZpbGVEaWZmc2ANCj4gPiA+ID4+ICsNCj4gPiA+ ID4+ICtgQm9vbGVhbmAgLSBEZWZhdWx0IGlzIGBGYWxzZWAuDQo+ID4gPiA+PiArDQo+ID4gPiA+ PiArSWYgYFRydWVgLCBvdXRwdXQgZGlmZnMgb2YgZm9ybWF0dGluZyBjaGFuZ2VzIGludG8gdGhl IHRlc3QgY2FzZSBsb2cuIFRoaXMgaXMgaGVscGZ1bCB0byBleGFjdGx5IHVuZGVyc3RhbmQgd2hh dA0KPiA+ID4gY2hhbmdlcw0KPiA+ID4gPj4gK25lZWQgdG8gYmUgbWFkZSB0byB0aGUgc291cmNl IGNvZGUgaW4gb3JkZXIgdG8gZml4IGEgY29kaW5nIHN0YW5kYXJkIGNvbXBsaWFuY2UgaXNzdWUu DQo+ID4gPiA+PiArDQo+ID4gPiA+PiArTm90ZSB0aGF0IGNhbGN1bGF0aW5nIHRoZSBmaWxlIGRp ZmZzIG9uIGEgdmVyeSBsYXJnZSBzZXQgb2Ygb2YgcmVzdWx0cyAoZS5nLiA+MTAwIGZpbGVzKSBj YW4gc2lnbmlmaWNhbnRseSBzbG93DQo+IGRvd24NCj4gPiA+ID4+ICtwbHVnaW4gZXhlY3V0aW9u Lg0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKyMjIyBgU2tpcEdpdEV4Y2x1c2lvbnNgDQo+ID4gPiA+ PiArDQo+ID4gPiA+PiArYEJvb2xlYW5gIC0gRGVmYXVsdCBpcyBgRmFsc2VgLg0KPiA+ID4gPj4g Kw0KPiA+ID4gPj4gK0J5IGRlZmF1bHQsIGZpbGVzIGluIHBhdGhzIG1hdGNoZWQgaW4gYSAuZ2l0 aWdub3JlIGZpbGUgb3IgYSByZWNvZ25pemVkIGdpdCBzdWJtb2R1bGUgYXJlIGV4Y2x1ZGVkLiBJ ZiB0aGlzIG9wdGlvbg0KPiA+ID4gPj4gK2lzIGBUcnVlYCwgdGhlIHBsdWdpbiB3aWxsIG5vdCBh dHRlbXB0IHRvIHJlY29nbml6ZSB0aGVzZSBmaWxlcyBhbmQgZXhjbHVkZSB0aGVtLg0KPiA+ID4g Pj4gKw0KPiA+ID4gPj4gKyMjIEhpZ2gtTGV2ZWwgUGx1Z2luIE9wZXJhdGlvbg0KPiA+ID4gPj4g Kw0KPiA+ID4gPj4gK1RoaXMgcGx1Z2luIGdlbmVyYXRlcyB0d28gbWFpbiBzZXRzIG9mIHRlbXBv cmFyeSBmaWxlczoNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgIDEuIEEgd29ya2luZyBkaXJlY3Rv cnkgaW4gdGhlIGRpcmVjdG9yeSBgQnVpbGQvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeWANCj4g PiA+ID4+ICsgIDIuIEZvciBlYWNoIHNvdXJjZSBmaWxlIHdpdGggZm9ybWF0dGluZyBlcnJvcnMs IGEgc2libGluZyBmaWxlIHdpdGggdGhlIGAudW5jcnVzdGlmeV9wbHVnaW5gIGV4dGVuc2lvbg0K PiA+ID4gPj4gKw0KPiA+ID4gPj4gK1RoZSB3b3JraW5nIGRpcmVjdG9yeSBjb250YWlucyB0ZW1w b3JhcnkgZmlsZXMgdW5pcXVlIHRvIG9wZXJhdGlvbiBvZiB0aGUgcGx1Z2luLiBBbGwgb2YgdGhl c2UgZmlsZXMgYXJlIHJlbW92ZWQNCj4gb24NCj4gPiA+ID4+ICtleGl0IG9mIHRoZSBwbHVnaW4g aW5jbHVkaW5nIHN1Y2Nlc3NmdWwgb3IgdW5zdWNjZXNzZnVsIGV4ZWN1dGlvbiAoc3VjaCBhcyBh IFB5dGhvbiBleGNlcHRpb24gb2NjdXJyaW5nKS4gSWYgZm9yDQo+IGFueQ0KPiA+ID4gPj4gK3Jl YXNvbiwgYW55IGZpbGVzIGluIHRoZSBwYWNrYWdlIGV4aXN0IHByaW9yIHRvIHJ1bm5pbmcgdGhl IHBsdWdpbiB3aXRoIHRoZSBgLnVuY3J1c3RpZnlfcGx1Z2luYCBleHRlbnNpb24sIHRoZQ0KPiA+ IHBsdWdpbg0KPiA+ID4gPj4gK3dpbGwgaW5mb3JtIHRoZSB1c2VyIHRvIHJlbW92ZSB0aGVzZSBm aWxlcyBhbmQgZXhpdCBiZWZvcmUgcnVubmluZyBVbmNydXN0aWZ5LiBUaGlzIGlzIHRvIGVuc3Vy ZSB0aGUgYWNjdXJhY3kgb2YNCj4gdGhlDQo+ID4gPiA+PiArcmVzdWx0cyByZXBvcnRlZCBmcm9t IGVhY2ggZXhlY3V0aW9uIGluc3RhbmNlIG9mIHRoZSBwbHVnaW4uDQo+ID4gPiA+PiArDQo+ID4g PiA+PiArVGhlIHBsdWdpbiBkZXRlcm1pbmVzIHRoZSBsaXN0IG9mIHJlbGV2YW50IGZpbGVzIHRv IGNoZWNrIHdpdGggVW5jcnVzdGlmeSBhbmQgdGhlbiBpbnZva2VzIFVuY3J1c3RpZnkgd2l0aCB0 aGF0DQo+IGZpbGUNCj4gPiA+ID4+ICtsaXN0LiBGb3IgYW55IGZpbGVzIG5vdCBjb21wbGlhbnQg dG8gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBwcm92aWRlZCwgVW5jcnVzdGlmeSB3aWxsIGdlbmVy YXRlIGEgY29ycmVzcG9uZGluZw0KPiBmaWxlDQo+ID4gPiA+PiArd2l0aCB0aGUgYC51bmNydXN0 aWZ5X3BsdWdpbmAgZXh0ZW5zaW9uLiBUaGUgcGx1Z2luIGRpc2NvdmVycyBhbGwgb2YgdGhlc2Ug ZmlsZXMuIElmIGFueSBzdWNoIGZpbGVzIGFyZSBwcmVzZW50LA0KPiA+IHRoaXMNCj4gPiA+ID4+ ICtpbmRpY2F0ZXMgYSBmb3JtYXR0aW5nIGlzc3VlIHdhcyBmb3VuZCBhbmQgdGhlIHRlc3QgaXMg bWFya2VkIGZhaWxlZCAodW5sZXNzIGBBdWRpdE9ubHlgIG1vZGUgaXMgZW5hYmxlZCkuDQo+ID4g PiA+PiArDQo+ID4gPiA+PiArVGhlIHRlc3QgY2FzZSBsb2cgd2lsbCBjb250YWluIGEgcmVwb3J0 IG9mIHdoaWNoIGZpbGVzIGZhaWxlZCB0byBmb3JtYXQgcHJvcGVybHksIGFsbG93aW5nIHRoZSB1 c2VyIHRvIHJ1bg0KPiA+IFVuY3J1c3RpZnkNCj4gPiA+ID4+ICthZ2FpbnN0IHRoZSBmaWxlIGxv Y2FsbHkgdG8gZml4IHRoZSBpc3N1ZS4gSWYgdGhlIGBPdXRwdXRGaWxlRGlmZnNgIGNvbmZpZ3Vy YXRpb24gb3B0aW9uIGlzIHNldCB0byBgVHJ1ZWAsIHRoZQ0KPiA+IHBsdWdpbg0KPiA+ID4gPj4g K3dpbGwgb3V0cHV0IGRpZmYgY2h1bmtzIGZvciBhbGwgY29kZSBmb3JtYXR0aW5nIGlzc3VlcyBp biB0aGUgdGVzdCBjYXNlIGxvZy4NCj4gPiA+ID4+IGRpZmYgLS1naXQgYS8ucHl0b29sL1BsdWdp bi9VbmNydXN0aWZ5Q2hlY2svVW5jcnVzdGlmeUNoZWNrLnB5IGIvLnB5dG9vbC9QbHVnaW4vVW5j cnVzdGlmeUNoZWNrL1VuY3J1c3RpZnlDaGVjay5weQ0KPiA+ID4gPj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4gPiA+ID4+IGluZGV4IDAwMDAwMDAwMDAwMC4uNTk1MzQ0NjlhMmQzDQo+ID4gPiA+ PiAtLS0gL2Rldi9udWxsDQo+ID4gPiA+PiArKysgYi8ucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5 Q2hlY2svVW5jcnVzdGlmeUNoZWNrLnB5DQo+ID4gPiA+PiBAQCAtMCwwICsxLDYxNyBAQA0KPiA+ ID4gPj4gKyMgQGZpbGUgVW5jcnVzdGlmeUNoZWNrLnB5DQo+ID4gPiA+PiArIw0KPiA+ID4gPj4g KyMgQW4gZWRrMi1weXRvb2wgYmFzZWQgcGx1Z2luIHdyYXBwZXIgZm9yIFVuY3J1c3RpZnkNCj4g PiA+ID4+ICsjDQo+ID4gPiA+PiArIyBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlv bi4NCj4gPiA+ID4+ICsjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50DQo+ID4gPiA+PiArIyMNCj4gPiA+ID4+ICtpbXBvcnQgY29uZmlncGFyc2VyDQo+ID4gPiA+ PiAraW1wb3J0IGRpZmZsaWINCj4gPiA+ID4+ICtpbXBvcnQgZXJybm8NCj4gPiA+ID4+ICtpbXBv cnQgbG9nZ2luZw0KPiA+ID4gPj4gK2ltcG9ydCBvcw0KPiA+ID4gPj4gK2ltcG9ydCBwYXRobGli DQo+ID4gPiA+PiAraW1wb3J0IHNodXRpbA0KPiA+ID4gPj4gK2ltcG9ydCB0aW1laXQNCj4gPiA+ ID4+ICtmcm9tIGVkazJ0b29sZXh0LmVudmlyb25tZW50IGltcG9ydCB2ZXJzaW9uX2FnZ3JlZ2F0 b3INCj4gPiA+ID4+ICtmcm9tIGVkazJ0b29sZXh0LmVudmlyb25tZW50LnBsdWdpbl9tYW5hZ2Vy IGltcG9ydCBQbHVnaW5NYW5hZ2VyDQo+ID4gPiA+PiArZnJvbSBlZGsydG9vbGV4dC5lbnZpcm9u bWVudC5wbHVnaW50eXBlcy5jaV9idWlsZF9wbHVnaW4gaW1wb3J0IElDaUJ1aWxkUGx1Z2luDQo+ ID4gPiA+PiArZnJvbSBlZGsydG9vbGV4dC5lbnZpcm9ubWVudC5wbHVnaW50eXBlcy51ZWZpX2hl bHBlcl9wbHVnaW4gaW1wb3J0IEhlbHBlckZ1bmN0aW9ucw0KPiA+ID4gPj4gK2Zyb20gZWRrMnRv b2xleHQuZW52aXJvbm1lbnQudmFyX2RpY3QgaW1wb3J0IFZhckRpY3QNCj4gPiA+ID4+ICtmcm9t IGVkazJ0b29sbGliLmxvZy5qdW5pdF9yZXBvcnRfZm9ybWF0IGltcG9ydCBKdW5pdFJlcG9ydFRl c3RDYXNlDQo+ID4gPiA+PiArZnJvbSBlZGsydG9vbGxpYi51ZWZpLmVkazIucGF0aF91dGlsaXRp ZXMgaW1wb3J0IEVkazJQYXRoDQo+ID4gPiA+PiArZnJvbSBlZGsydG9vbGxpYi51dGlsaXR5X2Z1 bmN0aW9ucyBpbXBvcnQgIFJ1bkNtZA0KPiA+ID4gPj4gK2Zyb20gaW8gaW1wb3J0IFN0cmluZ0lP DQo+ID4gPiA+PiArZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgRGljdCwgTGlzdCwgVHVwbGUNCj4g PiA+ID4+ICsNCj4gPiA+ID4+ICsjDQo+ID4gPiA+PiArIyBQcm92aWRlIG1vcmUgdXNlciBmcmll bmRseSBtZXNzYWdlcyBmb3IgY2VydGFpbiBzY2VuYXJpb3MNCj4gPiA+ID4+ICsjDQo+ID4gPiA+ PiArY2xhc3MgVW5jcnVzdGlmeUV4Y2VwdGlvbihFeGNlcHRpb24pOg0KPiA+ID4gPj4gKyAgICBk ZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSwgZXhpdF9jb2RlKToNCj4gPiA+ID4+ICsgICAgICAg IHN1cGVyKCkuX19pbml0X18obWVzc2FnZSkNCj4gPiA+ID4+ICsgICAgICAgIHNlbGYuZXhpdF9j b2RlID0gZXhpdF9jb2RlDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArY2xhc3Mg VW5jcnVzdGlmeUFwcEVudlZhck5vdEZvdW5kRXhjZXB0aW9uKFVuY3J1c3RpZnlFeGNlcHRpb24p Og0KPiA+ID4gPj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSk6DQo+ID4gPiA+PiAr ICAgICAgICBzdXBlcigpLl9faW5pdF9fKG1lc3NhZ2UsIC0xMDEpDQo+ID4gPiA+PiArDQo+ID4g PiA+PiArDQo+ID4gPiA+PiArY2xhc3MgVW5jcnVzdGlmeUFwcFZlcnNpb25FcnJvckV4Y2VwdGlv bihVbmNydXN0aWZ5RXhjZXB0aW9uKToNCj4gPiA+ID4+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYs IG1lc3NhZ2UpOg0KPiA+ID4gPj4gKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhtZXNzYWdlLCAt MTAyKQ0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gK2NsYXNzIFVuY3J1c3RpZnlB cHBFeGVjdXRpb25FeGNlcHRpb24oVW5jcnVzdGlmeUV4Y2VwdGlvbik6DQo+ID4gPiA+PiArICAg IGRlZiBfX2luaXRfXyhzZWxmLCBtZXNzYWdlKToNCj4gPiA+ID4+ICsgICAgICAgIHN1cGVyKCku X19pbml0X18obWVzc2FnZSwgLTEwMykNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ ICtjbGFzcyBVbmNydXN0aWZ5U3RhbGVQbHVnaW5Gb3JtYXR0ZWRGaWxlc0V4Y2VwdGlvbihVbmNy dXN0aWZ5RXhjZXB0aW9uKToNCj4gPiA+ID4+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1lc3Nh Z2UpOg0KPiA+ID4gPj4gKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhtZXNzYWdlLCAtMTIwKQ0K PiA+ID4gPj4gKw0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gK2NsYXNzIFVuY3J1c3RpZnlJbnB1dEZp bGVDcmVhdGlvbkVycm9yRXhjZXB0aW9uKFVuY3J1c3RpZnlFeGNlcHRpb24pOg0KPiA+ID4gPj4g KyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSk6DQo+ID4gPiA+PiArICAgICAgICBzdXBl cigpLl9faW5pdF9fKG1lc3NhZ2UsIC0xMjEpDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArY2xhc3Mg VW5jcnVzdGlmeUludmFsaWRJZ25vcmVTdGFuZGFyZFBhdGhzRXhjZXB0aW9uKFVuY3J1c3RpZnlF eGNlcHRpb24pOg0KPiA+ID4gPj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSk6DQo+ ID4gPiA+PiArICAgICAgICBzdXBlcigpLl9faW5pdF9fKG1lc3NhZ2UsIC0xMjIpDQo+ID4gPiA+ PiArDQo+ID4gPiA+PiArY2xhc3MgVW5jcnVzdGlmeUdpdElnbm9yZUZpbGVFeGNlcHRpb24oVW5j cnVzdGlmeUV4Y2VwdGlvbik6DQo+ID4gPiA+PiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXNz YWdlKToNCj4gPiA+ID4+ICsgICAgICAgIHN1cGVyKCkuX19pbml0X18obWVzc2FnZSwgLTE0MCkN Cj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICtjbGFzcyBVbmNydXN0aWZ5R2l0U3Vi bW9kdWxlRXhjZXB0aW9uKFVuY3J1c3RpZnlFeGNlcHRpb24pOg0KPiA+ID4gPj4gKyAgICBkZWYg X19pbml0X18oc2VsZiwgbWVzc2FnZSk6DQo+ID4gPiA+PiArICAgICAgICBzdXBlcigpLl9faW5p dF9fKG1lc3NhZ2UsIC0xNDEpDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArY2xh c3MgVW5jcnVzdGlmeUNoZWNrKElDaUJ1aWxkUGx1Z2luKToNCj4gPiA+ID4+ICsgICAgIiIiDQo+ ID4gPiA+PiArICAgIEEgQ2lCdWlsZFBsdWdpbiB0aGF0IHVzZXMgVW5jcnVzdGlmeSB0byBjaGVj ayB0aGUgc291cmNlIGZpbGVzIGluIHRoZQ0KPiA+ID4gPj4gKyAgICBwYWNrYWdlIGJlaW5nIHRl c3RlZCBmb3IgY29kaW5nIHN0YW5kYXJkIGlzc3Vlcy4NCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsg ICAgQnkgZGVmYXVsdCwgdGhlIHBsdWdpbiBydW5zIGFnYWluc3Qgc3RhbmRhcmQgQyBzb3VyY2Ug ZmlsZSBleHRlbnNpb25zIGJ1dA0KPiA+ID4gPj4gKyAgICBpdHMgY29uZmlndXJhdGlvbiBjYW4g YmUgbW9kaWZpZWQgdGhyb3VnaCBpdHMgY29uZmlndXJhdGlvbiBmaWxlLg0KPiA+ID4gPj4gKw0K PiA+ID4gPj4gKyAgICBDb25maWd1cmF0aW9uIG9wdGlvbnM6DQo+ID4gPiA+PiArICAgICJVbmNy dXN0aWZ5Q2hlY2siOiB7DQo+ID4gPiA+PiArICAgICAgICAiQWRkaXRpb25hbEluY2x1ZGVQYXRo cyI6IFtdLCAjIEFkZGl0aW9uYWwgcGF0aHMgdG8gY2hlY2sgZm9ybWF0dGluZyAod2lsZGNhcmRz IHN1cHBvcnRlZCkuDQo+ID4gPiA+PiArICAgICAgICAiQXVkaXRPbmx5IjogRmFsc2UsICAgICAg ICAgICAjIERvbid0IGZhaWwgdGhlIGJ1aWxkIGlmIHRoZXJlIGFyZSBlcnJvcnMuICBKdXN0IGxv ZyB0aGVtLg0KPiA+ID4gPj4gKyAgICAgICAgIkNvbmZpZ0ZpbGVQYXRoIjogIiIsICAgICAgICAg IyBDdXN0b20gcGF0aCB0byBhbiBVbmNydXN0aWZ5IGNvbmZpZyBmaWxlLg0KPiA+ID4gPj4gKyAg ICAgICAgIklnbm9yZVN0YW5kYXJkUGF0aHMiOiBbXSwgICAgIyBTdGFuZGFyZCBQbHVnaW4gZGVm aW5lZCBwYXRocyB0aGF0IHNob3VsZCBiZSBpZ25vcmVkLg0KPiA+ID4gPj4gKyAgICAgICAgIk91 dHB1dEZpbGVEaWZmcyI6IEZhbHNlLCAgICAgIyBPdXRwdXQgY2h1bmtzIG9mIGZvcm1hdHRpbmcg ZGlmZnMgaW4gdGhlIHRlc3QgY2FzZSBsb2cuDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAjIFRoaXMgY2FuIHNpZ25pZmljYW50bHkgc2xvdyBkb3duIHRo ZSBwbHVnaW4gb24gdmVyeSBsYXJnZSBwYWNrYWdlcy4NCj4gPiA+ID4+ICsgICAgICAgICJTa2lw R2l0RXhjbHVzaW9ucyI6IEZhbHNlICAgICMgRG9uJ3QgZXhjbHVkZSBnaXQgaWdub3JlZCBmaWxl cyBhbmQgZmlsZXMgaW4gZ2l0IHN1Ym1vZHVsZXMuDQo+ID4gPiA+PiArICAgIH0NCj4gPiA+ID4+ ICsgICAgIiIiDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArICAgICMNCj4gPiA+ID4+ICsgICAgIyBC eSBkZWZhdWx0LCB1c2UgYW4gInVuY3J1c3RpZnkuY2ZnIiBjb25maWcgZmlsZSBpbiB0aGUgcGx1 Z2luIGRpcmVjdG9yeQ0KPiA+ID4gPj4gKyAgICAjIEEgcGFja2FnZSBjYW4gb3ZlcnJpZGUgdGhp cyBwYXRoIHZpYSAiQ29uZmlnRmlsZVBhdGgiDQo+ID4gPiA+PiArICAgICMNCj4gPiA+ID4+ICsg ICAgIyBOb3RlOiBWYWx1ZXMgc3BlY2lmaWVkIHZpYSAiQ29uZmlnRmlsZVBhdGgiIGFyZSByZWxh dGl2ZSB0byB0aGUgcGFja2FnZQ0KPiA+ID4gPj4gKyAgICAjDQo+ID4gPiA+PiArICAgIERFRkFV TFRfQ09ORklHX0ZJTEVfUEFUSCA9IG9zLnBhdGguam9pbigNCj4gPiA+ID4+ICsgICAgICAgIHBh dGhsaWIuUGF0aChfX2ZpbGVfXykucGFyZW50LnJlc29sdmUoKSwgInVuY3J1c3RpZnkuY2ZnIikN Cj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgIw0KPiA+ID4gPj4gKyAgICAjIFRoZSBleHRlbnNp b24gdXNlZCBmb3IgZm9ybWF0dGVkIGZpbGVzIHByb2R1Y2VkIGJ5IHRoaXMgcGx1Z2luDQo+ID4g PiA+PiArICAgICMNCj4gPiA+ID4+ICsgICAgRk9STUFUVEVEX0ZJTEVfRVhURU5TSU9OID0gIi51 bmNydXN0aWZ5X3BsdWdpbiINCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgIw0KPiA+ID4gPj4g KyAgICAjIEEgcGFja2FnZSBjYW4gYWRkIGFueSBhZGRpdGlvbmFsIHBhdGhzIHdpdGggIkFkZGl0 aW9uYWxJbmNsdWRlUGF0aHMiDQo+ID4gPiA+PiArICAgICMgQSBwYWNrYWdlIGNhbiByZW1vdmUg YW55IG9mIHRoZXNlIHBhdGhzIHdpdGggIklnbm9yZVN0YW5kYXJkUGF0aHMiDQo+ID4gPiA+PiAr ICAgICMNCj4gPiA+ID4+ICsgICAgU1RBTkRBUkRfUExVR0lOX0RFRklORURfUEFUSFMgPSAoIiou YyIsICIqLmgiKQ0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKyAgICAjDQo+ID4gPiA+PiArICAgICMg VGhlIFVuY3J1c3RpZnkgYXBwbGljYXRpb24gcGF0aCBzaG91bGQgc2V0IGluIHRoaXMgZW52aXJv bm1lbnQgdmFyaWFibGUNCj4gPiA+ID4+ICsgICAgIw0KPiA+ID4gPj4gKyAgICBVTkNSVVNUSUZZ X1BBVEhfRU5WX0tFWSA9ICJVTkNSVVNUSUZZX0NJX1BBVEgiDQo+ID4gPiA+PiArDQo+ID4gPiA+ PiArICAgIGRlZiBHZXRUZXN0TmFtZShzZWxmLCBwYWNrYWdlbmFtZTogc3RyLCBlbnZpcm9ubWVu dDogVmFyRGljdCkgLT4gVHVwbGU6DQo+ID4gPiA+PiArICAgICAgICAiIiIgUHJvdmlkZSB0aGUg dGVzdGNhc2UgbmFtZSBhbmQgY2xhc3NuYW1lIGZvciB1c2UgaW4gcmVwb3J0aW5nDQo+ID4gPiA+ PiArDQo+ID4gPiA+PiArICAgICAgICAgICAgQXJnczoNCj4gPiA+ID4+ICsgICAgICAgICAgICAg IHBhY2thZ2VuYW1lOiBzdHJpbmcgY29udGFpbmluZyBuYW1lIG9mIHBhY2thZ2UgdG8gYnVpbGQN Cj4gPiA+ID4+ICsgICAgICAgICAgICAgIGVudmlyb25tZW50OiBUaGUgVmFyRGljdCBmb3IgdGhl IHRlc3QgdG8gcnVuIGluDQo+ID4gPiA+PiArICAgICAgICAgICAgUmV0dXJuczoNCj4gPiA+ID4+ ICsgICAgICAgICAgICAgICAgQSB0dXBsZSBjb250YWluaW5nIHRoZSB0ZXN0Y2FzZSBuYW1lIGFu ZCB0aGUgY2xhc3NuYW1lDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgICh0ZXN0Y2FzZW5hbWUs IGNsYXNzbmFtZSkNCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgdGVzdGNsYXNzbmFtZTogYSBk ZXNjcmlwdGl2ZSBzdHJpbmcgZm9yIHRoZSB0ZXN0Y2FzZSBjYW4gaW5jbHVkZSB3aGl0ZXNwYWNl DQo+ID4gPiA+PiArICAgICAgICAgICAgICAgIGNsYXNzbmFtZTogc2hvdWxkIGJlIHBhdHRlcm5l ZCA8cGFja2FnZW5hbWU+LjxwbHVnaW4+LjxvcHRpb25hbGx5IGFueSB1bmlxdWUgY29uZGl0aW9u Pg0KPiA+ID4gPj4gKyAgICAgICAgIiIiDQo+ID4gPiA+PiArICAgICAgICByZXR1cm4gKCJDaGVj ayBmaWxlIGNvZGluZyBzdGFuZGFyZCBjb21wbGlhbmNlIGluICIgKyBwYWNrYWdlbmFtZSwgcGFj a2FnZW5hbWUgKyAiLlVuY3J1c3RpZnlDaGVjayIpDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArICAg IGRlZiBSdW5CdWlsZFBsdWdpbihzZWxmLCBwYWNrYWdlX3JlbF9wYXRoOiBzdHIsIGVkazJfcGF0 aDogRWRrMlBhdGgsIHBhY2thZ2VfY29uZmlnOiBEaWN0W3N0ciwgTGlzdFtzdHJdXSwNCj4gPiA+ ID4+IGVudmlyb25tZW50X2NvbmZpZzogQW55LCBwbHVnaW5fbWFuYWdlcjogUGx1Z2luTWFuYWdl ciwgcGx1Z2luX21hbmFnZXJfaGVscGVyOiBIZWxwZXJGdW5jdGlvbnMsIHRjOg0KPiA+ID4gSnVu aXRSZXBvcnRUZXN0Q2FzZSwNCj4gPiA+ID4+IG91dHB1dF9zdHJlYW09Tm9uZSkgLT4gaW50Og0K PiA+ID4gPj4gKyAgICAgICAgIiIiDQo+ID4gPiA+PiArICAgICAgICBFeHRlcm5hbCBmdW5jdGlv biBvZiBwbHVnaW4uIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBwZXJmb3JtIHRoZSB0YXNrIG9m IHRoZSBDaUJ1aWxkIFBsdWdpbi4NCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgICAgIEFyZ3M6 DQo+ID4gPiA+PiArICAgICAgICAgIC0gcGFja2FnZV9yZWxfcGF0aDogZWRrMiB3b3Jrc3BhY2Ug cmVsYXRpdmUgcGF0aCB0byB0aGUgcGFja2FnZQ0KPiA+ID4gPj4gKyAgICAgICAgICAtIGVkazJf cGF0aDogRWRrMlBhdGggb2JqZWN0IHdpdGggd29ya3NwYWNlIGFuZCBwYWNrYWdlcyBwYXRocw0K PiA+ID4gPj4gKyAgICAgICAgICAtIHBhY2thZ2VfY29uZmlnOiBEaWN0aW9uYXJ5IHdpdGggdGhl IHBhY2thZ2UgY29uZmlndXJhdGlvbg0KPiA+ID4gPj4gKyAgICAgICAgICAtIGVudmlyb25tZW50 X2NvbmZpZzogRW52aXJvbm1lbnQgY29uZmlndXJhdGlvbg0KPiA+ID4gPj4gKyAgICAgICAgICAt IHBsdWdpbl9tYW5hZ2VyOiBQbHVnaW4gTWFuYWdlciBJbnN0YW5jZQ0KPiA+ID4gPj4gKyAgICAg ICAgICAtIHBsdWdpbl9tYW5hZ2VyX2hlbHBlcjogUGx1Z2luIE1hbmFnZXIgSGVscGVyIEluc3Rh bmNlDQo+ID4gPiA+PiArICAgICAgICAgIC0gdGM6IEpVbml0IHRlc3QgY2FzZQ0KPiA+ID4gPj4g KyAgICAgICAgICAtIG91dHB1dF9zdHJlYW06IFRoZSBTdHJpbmdJTyBvdXRwdXQgc3RyZWFtIGZy b20gdGhpcyBwbHVnaW4gKGxvZ2dpbmcpDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArICAgICAgICBS ZXR1cm5zDQo+ID4gPiA+PiArICAgICAgICAgID4wIDogTnVtYmVyIG9mIGVycm9ycyBmb3VuZA0K PiA+ID4gPj4gKyAgICAgICAgICAwICA6IFBhc3NlZCBzdWNjZXNzZnVsbHkNCj4gPiA+ID4+ICsg ICAgICAgICAgLTEgOiBTa2lwcGVkIGZvciBtaXNzaW5nIHByZXJlcQ0KPiA+ID4gPj4gKyAgICAg ICAgIiIiDQo+ID4gPiA+PiArICAgICAgICB0cnk6DQo+ID4gPiA+PiArICAgICAgICAgICAgIyBJ bml0aWFsaXplIHBsdWdpbiBhbmQgY2hlY2sgcHJlLXJlcXVpc2l0ZXMuDQo+ID4gPiA+PiArICAg ICAgICAgICAgc2VsZi5faW5pdGlhbGl6ZV9lbnZpcm9ubWVudF9pbmZvKA0KPiA+ID4gPj4gKyAg ICAgICAgICAgICAgICBwYWNrYWdlX3JlbF9wYXRoLCBlZGsyX3BhdGgsIHBhY2thZ2VfY29uZmln LCB0YykNCj4gPiA+ID4+ICsgICAgICAgICAgICBzZWxmLl9pbml0aWFsaXplX2NvbmZpZ3VyYXRp b24oKQ0KPiA+ID4gPj4gKyAgICAgICAgICAgIHNlbGYuX2NoZWNrX2Zvcl9wcmVleGlzdGluZ19m b3JtYXR0ZWRfZmlsZXMoKQ0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKyAgICAgICAgICAgICMgTG9n IGltcG9ydGFudCBjb250ZXh0IGluZm9ybWF0aW9uLg0KPiA+ID4gPj4gKyAgICAgICAgICAgIHNl bGYuX2xvZ191bmNydXN0aWZ5X2FwcF9pbmZvKCkNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAg ICAgICAgICAjIEdldCB0ZW1wbGF0ZSBmaWxlIGNvbnRlbnRzIGlmIHNwZWNpZmllZA0KPiA+ID4g Pj4gKyAgICAgICAgICAgIHNlbGYuX2dldF90ZW1wbGF0ZV9maWxlX2NvbnRlbnRzKCkNCj4gPiA+ ID4+ICsNCj4gPiA+ID4+ICsgICAgICAgICAgICAjIENyZWF0ZSBtZXRhIGlucHV0IGZpbGVzICYg ZGlyZWN0b3JpZXMNCj4gPiA+ID4+ICsgICAgICAgICAgICBzZWxmLl9jcmVhdGVfdGVtcF93b3Jr aW5nX2RpcmVjdG9yeSgpDQo+ID4gPiA+PiArICAgICAgICAgICAgc2VsZi5fY3JlYXRlX3VuY3J1 c3RpZnlfZmlsZV9saXN0X2ZpbGUoKQ0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKyAgICAgICAgICAg IHNlbGYuX3J1bl91bmNydXN0aWZ5KCkNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgICAgICAg ICAjIFBvc3QtZXhlY3V0aW9uIGFjdGlvbnMuDQo+ID4gPiA+PiArICAgICAgICAgICAgc2VsZi5f cHJvY2Vzc191bmNydXN0aWZ5X3Jlc3VsdHMoKQ0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKyAgICAg ICAgZXhjZXB0IFVuY3J1c3RpZnlFeGNlcHRpb24gYXMgZToNCj4gPiA+ID4+ICsgICAgICAgICAg ICBzZWxmLl90Yy5Mb2dTdGRFcnJvcigNCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgZiJVbmNy dXN0aWZ5IGVycm9yIHtlLmV4aXRfY29kZX0uIERldGFpbHM6XG5cbntzdHIoZSl9IikNCj4gPiA+ ID4+ICsgICAgICAgICAgICBsb2dnaW5nLndhcm5pbmcoDQo+ID4gPiA+PiArICAgICAgICAgICAg ICAgIGYiVW5jcnVzdGlmeSBlcnJvciB7ZS5leGl0X2NvZGV9LiBEZXRhaWxzOlxuXG57c3RyKGUp fSIpDQo+ID4gPiA+PiArICAgICAgICAgICAgcmV0dXJuIC0xDQo+ID4gPiA+PiArICAgICAgICBl bHNlOg0KPiA+ID4gPj4gKyAgICAgICAgICAgIGlmIHNlbGYuX2Zvcm1hdHRlZF9maWxlX2Vycm9y X2NvdW50ID4gMDoNCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgaWYgc2VsZi5fYXVkaXRfb25s eV9tb2RlOg0KPiA+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgbG9nZ2luZy5pbmZvKA0KPiA+ ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJTZXR0aW5nIHRlc3QgYXMgc2tpcHBlZCBz aW5jZSBBdWRpdE9ubHkgaXMgZW5hYmxlZCIpDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgICAg ICBzZWxmLl90Yy5TZXRTa2lwcGVkKCkNCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgIHJl dHVybiAtMQ0KPiA+ID4gPj4gKyAgICAgICAgICAgICAgICBlbHNlOg0KPiA+ID4gPj4gKyAgICAg ICAgICAgICAgICAgICAgc2VsZi5fdGMuU2V0RmFpbGVkKA0KPiA+ID4gPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIGYie3NlbGYuX3BsdWdpbl9uYW1lfSBmYWlsZWQgZHVlIHRvIHtzZWxmLl9m b3JtYXR0ZWRfZmlsZV9lcnJvcl9jb3VudH0gaW5jb3JyZWN0bHkNCj4gZm9ybWF0dGVkDQo+ID4g PiA+PiBmaWxlcy4iLCAiQ0hFQ0tfRkFJTEVEIikNCj4gPiA+ID4+ICsgICAgICAgICAgICBlbHNl Og0KPiA+ID4gPj4gKyAgICAgICAgICAgICAgICBzZWxmLl90Yy5TZXRTdWNjZXNzKCkNCj4gPiA+ ID4+ICsgICAgICAgICAgICByZXR1cm4gc2VsZi5fZm9ybWF0dGVkX2ZpbGVfZXJyb3JfY291bnQN Cj4gPiA+ID4+ICsgICAgICAgIGZpbmFsbHk6DQo+ID4gPiA+PiArICAgICAgICAgICAgc2VsZi5f Y2xlYW51cF90ZW1wb3JhcnlfZm9ybWF0dGVkX2ZpbGVzKCkNCj4gPiA+ID4+ICsgICAgICAgICAg ICBzZWxmLl9jbGVhbnVwX3RlbXBvcmFyeV9kaXJlY3RvcnkoKQ0KPiA+ID4gPj4gKw0KPiA+ID4g Pj4gKyAgICBkZWYgX2luaXRpYWxpemVfY29uZmlndXJhdGlvbihzZWxmKSAtPiBOb25lOg0KPiA+ ID4gPj4gKyAgICAgICAgIiIiDQo+ID4gPiA+PiArICAgICAgICBJbml0aWFsaXplcyBwbHVnaW4g Y29uZmlndXJhdGlvbi4NCj4gPiA+ID4+ICsgICAgICAgICIiIg0KPiA+ID4gPj4gKyAgICAgICAg c2VsZi5faW5pdGlhbGl6ZV9hcHBfaW5mbygpDQo+ID4gPiA+PiArICAgICAgICBzZWxmLl9pbml0 aWFsaXplX2NvbmZpZ19maWxlX2luZm8oKQ0KPiA+ID4gPj4gKyAgICAgICAgc2VsZi5faW5pdGlh bGl6ZV9maWxlX3RvX2Zvcm1hdF9pbmZvKCkNCj4gPiA+ID4+ICsgICAgICAgIHNlbGYuX2luaXRp YWxpemVfdGVzdF9jYXNlX291dHB1dF9vcHRpb25zKCkNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsg ICAgZGVmIF9jaGVja19mb3JfcHJlZXhpc3RpbmdfZm9ybWF0dGVkX2ZpbGVzKHNlbGYpIC0+IE5v bmU6DQo+ID4gPiA+PiArICAgICAgICAiIiINCj4gPiA+ID4+ICsgICAgICAgIENoZWNrcyBpZiBh bnkgZm9ybWF0dGVkIGZpbGVzIGZyb20gcHJpb3IgZXhlY3V0aW9uIGFyZSBwcmVzZW50Lg0KPiA+ ID4gPj4gKw0KPiA+ID4gPj4gKyAgICAgICAgRXhpc3RlbmNlIG9mIHN1Y2ggZmlsZXMgaXMgYW4g dW5leHBlY3RlZCBjb25kaXRpb24uIFRoaXMgbWlnaHQgcmVzdWx0DQo+ID4gPiA+PiArICAgICAg ICBmcm9tIGFuIGVycm9yIHRoYXQgb2NjdXJyZWQgZHVyaW5nIGEgcHJldmlvdXMgcnVuIG9yIGEg cHJlbWF0dXJlIGV4aXQgZnJvbSBhIGRlYnVnIHNjZW5hcmlvLiBJbiBhbnkgY2FzZSwNCj4gPiB0 aGUNCj4gPiA+ID4+IHBhY2thZ2Ugc2hvdWxkIGJlIGNsZWFuIGJlZm9yZSBzdGFydGluZyBhIG5l dyBydW4uDQo+ID4gPiA+PiArICAgICAgICAiIiINCj4gPiA+ID4+ICsgICAgICAgIHByZV9leGlz dGluZ19mb3JtYXR0ZWRfZmlsZV9jb3VudCA9IGxlbigNCj4gPiA+ID4+ICsgICAgICAgICAgICBb c3RyKHBhdGgucmVzb2x2ZSgpKSBmb3IgcGF0aCBpbg0KPiA+ID4gPj4gcGF0aGxpYi5QYXRoKHNl bGYuX2Fic19wYWNrYWdlX3BhdGgpLnJnbG9iKGYnKntVbmNydXN0aWZ5Q2hlY2suRk9STUFUVEVE X0ZJTEVfRVhURU5TSU9OfScpXSkNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgICAgIGlmIHBy ZV9leGlzdGluZ19mb3JtYXR0ZWRfZmlsZV9jb3VudCA+IDA6DQo+ID4gPiA+PiArICAgICAgICAg ICAgcmFpc2UgVW5jcnVzdGlmeVN0YWxlUGx1Z2luRm9ybWF0dGVkRmlsZXNFeGNlcHRpb24oDQo+ ID4gPiA+PiArICAgICAgICAgICAgICAgIGYie3ByZV9leGlzdGluZ19mb3JtYXR0ZWRfZmlsZV9j b3VudH0gZm9ybWF0dGVkIGZpbGVzIGFscmVhZHkgZXhpc3QuIFRvIHByZXZlbnQgb3ZlcndyaXRp bmcgdGhlc2UNCj4gPiA+IGZpbGVzLA0KPiA+ID4gPj4gcGxlYXNlIHJlbW92ZSB0aGVtIGJlZm9y ZSBydW5uaW5nIHRoaXMgcGx1Z2luLiIpDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArICAgIGRlZiBf Y2xlYW51cF90ZW1wb3JhcnlfZGlyZWN0b3J5KHNlbGYpIC0+IE5vbmU6DQo+ID4gPiA+PiArICAg ICAgICAiIiINCj4gPiA+ID4+ICsgICAgICAgIENsZWFucyB1cCB0aGUgdGVtcG9yYXJ5IGRpcmVj dG9yeSB1c2VkIGZvciB0aGlzIGV4ZWN1dGlvbiBpbnN0YW5jZS4NCj4gPiA+ID4+ICsNCj4gPiA+ ID4+ICsgICAgICAgIFRoaXMgcmVtb3ZlcyB0aGUgZGlyZWN0b3J5IGFuZCBhbGwgZmlsZXMgY3Jl YXRlZCBkdXJpbmcgdGhpcyBpbnN0YW5jZS4NCj4gPiA+ID4+ICsgICAgICAgICIiIg0KPiA+ID4g Pj4gKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnX3dvcmtpbmdfZGlyJyk6DQo+ID4gPiA+PiAr ICAgICAgICAgICAgc2VsZi5fcmVtb3ZlX3RyZWUoc2VsZi5fd29ya2luZ19kaXIpDQo+ID4gPiA+ PiArDQo+ID4gPiA+PiArICAgIGRlZiBfY2xlYW51cF90ZW1wb3JhcnlfZm9ybWF0dGVkX2ZpbGVz KHNlbGYpIC0+IE5vbmU6DQo+ID4gPiA+PiArICAgICAgICAiIiINCj4gPiA+ID4+ICsgICAgICAg IENsZWFucyB1cCB0aGUgdGVtcG9yYXJ5IGZvcm1tYXR0ZWQgZmlsZXMgcHJvZHVjZWQgYnkgVW5j cnVzdGlmeS4NCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgICAgIFRoaXMgd2lsbCByZWN1cnNp dmVseSByZW1vdmUgYWxsIGZvcm1hdHRlZCBmaWxlcyBnZW5lcmF0ZWQgYnkgVW5jcnVzdGlmeQ0K PiA+ID4gPj4gKyAgICAgICAgZHVyaW5nIHRoaXMgZXhlY3V0aW9uIGluc3RhbmNlLg0KPiA+ID4g Pj4gKyAgICAgICAgIiIiDQo+ID4gPiA+PiArICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdfYWJz X3BhY2thZ2VfcGF0aCcpOg0KPiA+ID4gPj4gKyAgICAgICAgICAgIGZvcm1hdHRlZF9maWxlcyA9 IFtzdHIocGF0aC5yZXNvbHZlKCkpIGZvciBwYXRoIGluIHBhdGhsaWIuUGF0aCgNCj4gPiA+ID4+ ICsgICAgICAgICAgICAgICAgc2VsZi5fYWJzX3BhY2thZ2VfcGF0aCkucmdsb2IoZicqe1VuY3J1 c3RpZnlDaGVjay5GT1JNQVRURURfRklMRV9FWFRFTlNJT059JyldDQo+ID4gPiA+PiArDQo+ID4g PiA+PiArICAgICAgICAgICAgZm9yIGZvcm1hdHRlZF9maWxlIGluIGZvcm1hdHRlZF9maWxlczoN Cj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgb3MucmVtb3ZlKGZvcm1hdHRlZF9maWxlKQ0KPiA+ ID4gPj4gKw0KPiA+ID4gPj4gKyAgICBkZWYgX2NyZWF0ZV90ZW1wX3dvcmtpbmdfZGlyZWN0b3J5 KHNlbGYpIC0+IE5vbmU6DQo+ID4gPiA+PiArICAgICAgICAiIiINCj4gPiA+ID4+ICsgICAgICAg IENyZWF0ZXMgdGhlIHRlbXBvcmFyeSBkaXJlY3RvcnkgdXNlZCBmb3IgdGhpcyBleGVjdXRpb24g aW5zdGFuY2UuDQo+ID4gPiA+PiArICAgICAgICAiIiINCj4gPiA+ID4+ICsgICAgICAgIHNlbGYu X3dvcmtpbmdfZGlyID0gb3MucGF0aC5qb2luKA0KPiA+ID4gPj4gKyAgICAgICAgICAgIHNlbGYu X2Fic193b3Jrc3BhY2VfcGF0aCwgIkJ1aWxkIiwgIi5weXRvb2wiLCAiUGx1Z2luIiwgZiJ7c2Vs Zi5fcGx1Z2luX25hbWV9IikNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgICAgIHRyeToNCj4g PiA+ID4+ICsgICAgICAgICAgICBwYXRobGliLlBhdGgoc2VsZi5fd29ya2luZ19kaXIpLm1rZGly KHBhcmVudHM9VHJ1ZSwgZXhpc3Rfb2s9VHJ1ZSkNCj4gPiA+ID4+ICsgICAgICAgIGV4Y2VwdCBP U0Vycm9yIGFzIGU6DQo+ID4gPiA+PiArICAgICAgICAgICAgcmFpc2UgVW5jcnVzdGlmeUlucHV0 RmlsZUNyZWF0aW9uRXJyb3JFeGNlcHRpb24oDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgIGYi RXJyb3IgY3JlYXRpbmcgcGx1Z2luIGRpcmVjdG9yeSB7c2VsZi5fd29ya2luZ19kaXJ9LlxuXG57 cmVwcihlKX0uIikNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgZGVmIF9jcmVhdGVfdW5jcnVz dGlmeV9maWxlX2xpc3RfZmlsZShzZWxmKSAtPiBOb25lOg0KPiA+ID4gPj4gKyAgICAgICAgIiIi DQo+ID4gPiA+PiArICAgICAgICBDcmVhdGVzIHRoZSBmaWxlIHdpdGggdGhlIGxpc3Qgb2Ygc291 cmNlIGZpbGVzIGZvciBVbmNydXN0aWZ5IHRvIHByb2Nlc3MuDQo+ID4gPiA+PiArICAgICAgICAi IiINCj4gPiA+ID4+ICsgICAgICAgIHNlbGYuX2FwcF9pbnB1dF9maWxlX3BhdGggPSBvcy5wYXRo LmpvaW4oDQo+ID4gPiA+PiArICAgICAgICAgICAgc2VsZi5fd29ya2luZ19kaXIsICJ1bmNydXN0 aWZ5X2ZpbGVfbGlzdC50eHQiKQ0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKyAgICAgICAgd2l0aCBv cGVuKHNlbGYuX2FwcF9pbnB1dF9maWxlX3BhdGgsICd3JywgZW5jb2Rpbmc9J3V0ZjgnKSBhcyBm Og0KPiA+ID4gPj4gKyAgICAgICAgICAgIGYud3JpdGVsaW5lcyhmIlxuIi5qb2luKHNlbGYuX2Fi c19maWxlX3BhdGhzX3RvX2Zvcm1hdCkpDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArICAgIGRlZiBf ZXhlY3V0ZV91bmNydXN0aWZ5KHNlbGYpIC0+IE5vbmU6DQo+ID4gPiA+PiArICAgICAgICAiIiIN Cj4gPiA+ID4+ICsgICAgICAgIEV4ZWN1dGVzIFVuY3J1c3RpZnkgd2l0aCB0aGUgaW5pdGlhbGl6 ZWQgY29uZmlndXJhdGlvbi4NCj4gPiA+ID4+ICsgICAgICAgICIiIg0KPiA+ID4gPj4gKyAgICAg ICAgb3V0cHV0ID0gU3RyaW5nSU8oKQ0KPiA+ID4gPj4gKyAgICAgICAgc2VsZi5fYXBwX2V4aXRf Y29kZSA9IFJ1bkNtZCgNCj4gPiA+ID4+ICsgICAgICAgICAgICBzZWxmLl9hcHBfcGF0aCwNCj4g PiA+ID4+ICsgICAgICAgICAgICBmIi1jIHtzZWxmLl9hcHBfY29uZmlnX2ZpbGV9IC1GIHtzZWxm Ll9hcHBfaW5wdXRfZmlsZV9wYXRofSAtLWlmLWNoYW5nZWQgLS1zdWZmaXgNCj4gPiA+ID4+IHtV bmNydXN0aWZ5Q2hlY2suRk9STUFUVEVEX0ZJTEVfRVhURU5TSU9OfSIsIG91dHN0cmVhbT1vdXRw dXQpDQo+ID4gPiA+PiArICAgICAgICBzZWxmLl9hcHBfb3V0cHV0ID0gb3V0cHV0LmdldHZhbHVl KCkuc3RyaXAoKS5zcGxpdGxpbmVzKCkNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgZGVmIF9n ZXRfZ2l0X2lnbm9yZWRfcGF0aHMoc2VsZikgLT4gTGlzdFtzdHJdOg0KPiA+ID4gPj4gKyAgICAg ICAgIiIiIg0KPiA+ID4gPj4gKyAgICAgICAgUmV0dXJucyBhIGxpc3Qgb2YgZmlsZSBhYnNvbHV0 ZSBwYXRoIHN0cmluZ3MgdG8gYWxsIGZpbGVzIGlnbm9yZWQgaW4gdGhpcyBnaXQgcmVwb3NpdG9y eS4NCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgICAgIElmIGdpdCBpcyBub3QgZm91bmQsIGFu IGVtcHR5IGxpc3Qgd2lsbCBiZSByZXR1cm5lZC4NCj4gPiA+ID4+ICsgICAgICAgICIiIg0KPiA+ ID4gPj4gKyAgICAgICAgaWYgbm90IHNodXRpbC53aGljaCgiZ2l0Iik6DQo+ID4gPiA+PiArICAg ICAgICAgICAgbG9nZ2luZy53YXJuKA0KPiA+ID4gPj4gKyAgICAgICAgICAgICAgICAiR2l0IGlz IG5vdCBmb3VuZCBvbiB0aGlzIHN5c3RlbS4gR2l0IHN1Ym1vZHVsZSBwYXRocyB3aWxsIG5vdCBi ZSBjb25zaWRlcmVkLiIpDQo+ID4gPiA+PiArICAgICAgICAgICAgcmV0dXJuIFtdDQo+ID4gPiA+ PiArDQo+ID4gPiA+PiArICAgICAgICBvdXRzdHJlYW1fYnVmZmVyID0gU3RyaW5nSU8oKQ0KPiA+ ID4gPj4gKyAgICAgICAgZXhpdF9jb2RlID0gUnVuQ21kKCJnaXQiLCAibHMtZmlsZXMgLS1vdGhl ciIsDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya2luZ2Rpcj1zZWxm Ll9hYnNfd29ya3NwYWNlX3BhdGgsIG91dHN0cmVhbT1vdXRzdHJlYW1fYnVmZmVyLA0KPiA+ID4g bG9nZ2luZ19sZXZlbD1sb2dnaW5nLk5PVFNFVCkNCj4gPiA+ID4+ICsgICAgICAgIGlmIChleGl0 X2NvZGUgIT0gMCk6DQo+ID4gPiA+PiArICAgICAgICAgICAgcmFpc2UgVW5jcnVzdGlmeUdpdEln bm9yZUZpbGVFeGNlcHRpb24oDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgIGYiQW4gZXJyb3Ig b2NjdXJyZWQgcmVhZGluZyBnaXQgaWdub3JlIHNldHRpbmdzLiBUaGlzIHdpbGwgcHJldmVudCBV bmNydXN0aWZ5IGZyb20gcnVubmluZyBhZ2FpbnN0DQo+ID4gdGhlDQo+ID4gPiA+PiBleHBlY3Rl ZCBzZXQgb2YgZmlsZXMuIikNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgICAgICMgTm90ZTog VGhpcyB3aWxsIHBvdGVudGlhbGx5IGJlIGEgbGFyZ2UgbGlzdCwgYnV0IGF0IGxlYXN0IHNvcnRl ZA0KPiA+ID4gPj4gKyAgICAgICAgcmV0dXJuIG91dHN0cmVhbV9idWZmZXIuZ2V0dmFsdWUoKS5z dHJpcCgpLnNwbGl0bGluZXMoKQ0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKyAgICBkZWYgX2dldF9n aXRfc3VibW9kdWxlX3BhdGhzKHNlbGYpIC0+IExpc3Rbc3RyXToNCj4gPiA+ID4+ICsgICAgICAg ICIiIg0KPiA+ID4gPj4gKyAgICAgICAgUmV0dXJucyBhIGxpc3Qgb2YgZGlyZWN0b3J5IGFic29s dXRlIHBhdGggc3RyaW5ncyB0byB0aGUgcm9vdCBvZiBlYWNoIHN1Ym1vZHVsZSBpbiB0aGUgd29y a3NwYWNlDQo+IHJlcG9zaXRvcnkuDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArICAgICAgICBJZiBn aXQgaXMgbm90IGZvdW5kLCBhbiBlbXB0eSBsaXN0IHdpbGwgYmUgcmV0dXJuZWQuDQo+ID4gPiA+ PiArICAgICAgICAiIiINCj4gPiA+ID4+ICsgICAgICAgIGlmIG5vdCBzaHV0aWwud2hpY2goImdp dCIpOg0KPiA+ID4gPj4gKyAgICAgICAgICAgIGxvZ2dpbmcud2FybigNCj4gPiA+ID4+ICsgICAg ICAgICAgICAgICAgIkdpdCBpcyBub3QgZm91bmQgb24gdGhpcyBzeXN0ZW0uIEdpdCBzdWJtb2R1 bGUgcGF0aHMgd2lsbCBub3QgYmUgY29uc2lkZXJlZC4iKQ0KPiA+ID4gPj4gKyAgICAgICAgICAg IHJldHVybiBbXQ0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKyAgICAgICAgaWYgb3MucGF0aC5pc2Zp bGUob3MucGF0aC5qb2luKHNlbGYuX2Fic193b3Jrc3BhY2VfcGF0aCwgIi5naXRtb2R1bGVzIikp Og0KPiA+ID4gPj4gKyAgICAgICAgICAgIGxvZ2dpbmcuaW5mbygNCj4gPiA+ID4+ICsgICAgICAg ICAgICAgICAgZiIuZ2l0bW9kdWxlcyBmaWxlIGZvdW5kLiBFeGNsdWRpbmcgc3VibW9kdWxlcyBp biB7c2VsZi5fcGFja2FnZV9uYW1lfS4iKQ0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKyAgICAgICAg ICAgIG91dHN0cmVhbV9idWZmZXIgPSBTdHJpbmdJTygpDQo+ID4gPiA+PiArICAgICAgICAgICAg ZXhpdF9jb2RlID0gUnVuQ21kKCJnaXQiLCAiY29uZmlnIC0tZmlsZSAuZ2l0bW9kdWxlcyAtLWdl dC1yZWdleHAgcGF0aCIsDQo+ID4gPiB3b3JraW5nZGlyPXNlbGYuX2Fic193b3Jrc3BhY2VfcGF0 aCwNCj4gPiA+ID4+IG91dHN0cmVhbT1vdXRzdHJlYW1fYnVmZmVyLCBsb2dnaW5nX2xldmVsPWxv Z2dpbmcuTk9UU0VUKQ0KPiA+ID4gPj4gKyAgICAgICAgICAgIGlmIChleGl0X2NvZGUgIT0gMCk6 DQo+ID4gPiA+PiArICAgICAgICAgICAgICAgIHJhaXNlIFVuY3J1c3RpZnlHaXRTdWJtb2R1bGVF eGNlcHRpb24oDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgICAgICBmIi5naXRtb2R1bGUgZmls ZSBkZXRlY3RlZCBidXQgYW4gZXJyb3Igb2NjdXJyZWQgcmVhZGluZyB0aGUgZmlsZS4gQ2Fubm90 IHByb2NlZWQgd2l0aCB1bmtub3duDQo+ID4gPiA+PiBzdWJtb2R1bGUgcGF0aHMuIikNCj4gPiA+ ID4+ICsNCj4gPiA+ID4+ICsgICAgICAgICAgICBzdWJtb2R1bGVfcGF0aHMgPSBbXQ0KPiA+ID4g Pj4gKyAgICAgICAgICAgIGZvciBsaW5lIGluIG91dHN0cmVhbV9idWZmZXIuZ2V0dmFsdWUoKS5z dHJpcCgpLnNwbGl0bGluZXMoKToNCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgc3VibW9kdWxl X3BhdGhzLmFwcGVuZCgNCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgIG9zLnBhdGgubm9y bXBhdGgob3MucGF0aC5qb2luKHNlbGYuX2Fic193b3Jrc3BhY2VfcGF0aCwgbGluZS5zcGxpdCgp WzFdKSkpDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArICAgICAgICAgICAgcmV0dXJuIHN1Ym1vZHVs ZV9wYXRocw0KPiA+ID4gPj4gKyAgICAgICAgZWxzZToNCj4gPiA+ID4+ICsgICAgICAgICAgICBy ZXR1cm4gW10NCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgZGVmIF9nZXRfdGVtcGxhdGVfZmls ZV9jb250ZW50cyhzZWxmKSAtPiBOb25lOg0KPiA+ID4gPj4gKyAgICAgICAgIiIiDQo+ID4gPiA+ PiArICAgICAgICBHZXRzIHRoZSBjb250ZW50cyBvZiBVbmNydXN0aWZ5IHRlbXBsYXRlIGZpbGVz IGlmIHRoZXkgYXJlIHNwZWNpZmllZA0KPiA+ID4gPj4gKyAgICAgICAgaW4gdGhlIFVuY3J1c3Rp ZnkgY29uZmlndXJhdGlvbiBmaWxlLg0KPiA+ID4gPj4gKyAgICAgICAgIiIiDQo+ID4gPiA+PiAr DQo+ID4gPiA+PiArICAgICAgICBzZWxmLl9maWxlX3RlbXBsYXRlX2NvbnRlbnRzID0gTm9uZQ0K PiA+ID4gPj4gKyAgICAgICAgc2VsZi5fZnVuY190ZW1wbGF0ZV9jb250ZW50cyA9IE5vbmUNCj4g PiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgICAgICMgQWxsb3cgbm8gdmFsdWUgdG8gYWxsb3cgInNl dCIgc3RhdGVtZW50cyBpbiB0aGUgY29uZmlnIGZpbGUgd2hpY2ggZG8NCj4gPiA+ID4+ICsgICAg ICAgICMgbm90IHNwZWNpZnkgdmFsdWUgYXNzaWdubWVudA0KPiA+ID4gPj4gKyAgICAgICAgcGFy c2VyID0gY29uZmlncGFyc2VyLkNvbmZpZ1BhcnNlcihhbGxvd19ub192YWx1ZT1UcnVlKQ0KPiA+ ID4gPj4gKyAgICAgICAgd2l0aCBvcGVuKHNlbGYuX2FwcF9jb25maWdfZmlsZSwgJ3InKSBhcyBj ZjoNCj4gPiA+ID4+ICsgICAgICAgICAgICBwYXJzZXIucmVhZF9zdHJpbmcoIltkdW1teV9zZWN0 aW9uXVxuIiArIGNmLnJlYWQoKSkNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgICAgIHRyeToN Cj4gPiA+ID4+ICsgICAgICAgICAgICBmaWxlX3RlbXBsYXRlX25hbWUgPSBwYXJzZXJbImR1bW15 X3NlY3Rpb24iXVsiY210X2luc2VydF9maWxlX2hlYWRlciJdDQo+ID4gPiA+PiArDQo+ID4gPiA+ PiArICAgICAgICAgICAgZmlsZV90ZW1wbGF0ZV9wYXRoID0gcGF0aGxpYi5QYXRoKGZpbGVfdGVt cGxhdGVfbmFtZSkNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgICAgICAgICBpZiBub3QgZmls ZV90ZW1wbGF0ZV9wYXRoLmlzX2ZpbGUoKToNCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgZmls ZV90ZW1wbGF0ZV9wYXRoID0gcGF0aGxpYi5QYXRoKG9zLnBhdGguam9pbihzZWxmLl9wbHVnaW5f cGF0aCwgZmlsZV90ZW1wbGF0ZV9uYW1lKSkNCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgc2Vs Zi5fZmlsZV90ZW1wbGF0ZV9jb250ZW50cyA9IGZpbGVfdGVtcGxhdGVfcGF0aC5yZWFkX3RleHQo KQ0KPiA+ID4gPj4gKyAgICAgICAgZXhjZXB0IEtleUVycm9yOg0KPiA+ID4gPj4gKyAgICAgICAg ICAgIGxvZ2dpbmcud2FybigiQSBmaWxlIGhlYWRlciB0ZW1wbGF0ZSBpcyBub3Qgc3BlY2lmaWVk IGluIHRoZSBjb25maWcgZmlsZS4iKQ0KPiA+ID4gPj4gKyAgICAgICAgZXhjZXB0IEZpbGVOb3RG b3VuZEVycm9yOg0KPiA+ID4gPj4gKyAgICAgICAgICAgIGxvZ2dpbmcud2FybigiVGhlIHNwZWNp ZmllZCBmaWxlIGhlYWRlciB0ZW1wbGF0ZSBmaWxlIHdhcyBub3QgZm91bmQuIikNCj4gPiA+ID4+ ICsgICAgICAgIHRyeToNCj4gPiA+ID4+ICsgICAgICAgICAgICBmdW5jX3RlbXBsYXRlX25hbWUg PSBwYXJzZXJbImR1bW15X3NlY3Rpb24iXVsiY210X2luc2VydF9mdW5jX2hlYWRlciJdDQo+ID4g PiA+PiArDQo+ID4gPiA+PiArICAgICAgICAgICAgZnVuY190ZW1wbGF0ZV9wYXRoID0gcGF0aGxp Yi5QYXRoKGZ1bmNfdGVtcGxhdGVfbmFtZSkNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgICAg ICAgICBpZiBub3QgZnVuY190ZW1wbGF0ZV9wYXRoLmlzX2ZpbGUoKToNCj4gPiA+ID4+ICsgICAg ICAgICAgICAgICAgZnVuY190ZW1wbGF0ZV9wYXRoID0gcGF0aGxpYi5QYXRoKG9zLnBhdGguam9p bihzZWxmLl9wbHVnaW5fcGF0aCwgZnVuY190ZW1wbGF0ZV9uYW1lKSkNCj4gPiA+ID4+ICsgICAg ICAgICAgICAgICAgc2VsZi5fZnVuY190ZW1wbGF0ZV9jb250ZW50cyA9IGZ1bmNfdGVtcGxhdGVf cGF0aC5yZWFkX3RleHQoKQ0KPiA+ID4gPj4gKyAgICAgICAgZXhjZXB0IEtleUVycm9yOg0KPiA+ ID4gPj4gKyAgICAgICAgICAgIGxvZ2dpbmcud2FybigiQSBmdW5jdGlvbiBoZWFkZXIgdGVtcGxh dGUgaXMgbm90IHNwZWNpZmllZCBpbiB0aGUgY29uZmlnIGZpbGUuIikNCj4gPiA+ID4+ICsgICAg ICAgIGV4Y2VwdCBGaWxlTm90Rm91bmRFcnJvcjoNCj4gPiA+ID4+ICsgICAgICAgICAgICBsb2dn aW5nLndhcm4oIlRoZSBzcGVjaWZpZWQgZnVuY3Rpb24gaGVhZGVyIHRlbXBsYXRlIGZpbGUgd2Fz IG5vdCBmb3VuZC4iKQ0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKyAgICBkZWYgX2luaXRpYWxpemVf YXBwX2luZm8oc2VsZikgLT4gTm9uZToNCj4gPiA+ID4+ICsgICAgICAgICIiIg0KPiA+ID4gPj4g KyAgICAgICAgSW5pdGlhbGl6ZSBVbmNydXN0aWZ5IGFwcGxpY2F0aW9uIGluZm9ybWF0aW9uLg0K PiA+ID4gPj4gKw0KPiA+ID4gPj4gKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGRldGVybWlu ZSB0aGUgYXBwbGljYXRpb24gcGF0aCBhbmQgdmVyc2lvbi4NCj4gPiA+ID4+ICsgICAgICAgICIi Ig0KPiA+ID4gPj4gKyAgICAgICAgIyBWZXJpZnkgVW5jcnVzdGlmeSBpcyBzcGVjaWZpZWQgaW4g dGhlIGVudmlyb25tZW50Lg0KPiA+ID4gPj4gKyAgICAgICAgaWYgVW5jcnVzdGlmeUNoZWNrLlVO Q1JVU1RJRllfUEFUSF9FTlZfS0VZIG5vdCBpbiBvcy5lbnZpcm9uOg0KPiA+ID4gPj4gKyAgICAg ICAgICAgIHJhaXNlIFVuY3J1c3RpZnlBcHBFbnZWYXJOb3RGb3VuZEV4Y2VwdGlvbigNCj4gPiA+ ID4+ICsgICAgICAgICAgICAgICAgZiJVbmNydXN0aWZ5IGVudmlyb25tZW50IHZhcmlhYmxlIHtV bmNydXN0aWZ5Q2hlY2suVU5DUlVTVElGWV9QQVRIX0VOVl9LRVl9IGlzIG5vdCBwcmVzZW50LiIp DQo+ID4gPiA+PiArDQo+ID4gPiA+PiArICAgICAgICBzZWxmLl9hcHBfcGF0aCA9IHNodXRpbC53 aGljaCgndW5jcnVzdGlmeScsIHBhdGg9b3MuZW52aXJvbltVbmNydXN0aWZ5Q2hlY2suVU5DUlVT VElGWV9QQVRIX0VOVl9LRVldKQ0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKyAgICAgICAgaWYgc2Vs Zi5fYXBwX3BhdGggaXMgTm9uZToNCj4gPiA+ID4+ICsgICAgICAgICAgICByYWlzZSBGaWxlTm90 Rm91bmRFcnJvcigNCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgZXJybm8uRU5PRU5ULCBvcy5z dHJlcnJvcihlcnJuby5FTk9FTlQpLCBzZWxmLl9hcHBfcGF0aCkNCj4gPiA+ID4+ICsNCj4gPiA+ ID4+ICsgICAgICAgIHNlbGYuX2FwcF9wYXRoID0gb3MucGF0aC5ub3JtY2FzZShvcy5wYXRoLm5v cm1wYXRoKHNlbGYuX2FwcF9wYXRoKSkNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgICAgIGlm IG5vdCBvcy5wYXRoLmlzZmlsZShzZWxmLl9hcHBfcGF0aCk6DQo+ID4gPiA+PiArICAgICAgICAg ICAgcmFpc2UgRmlsZU5vdEZvdW5kRXJyb3IoDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgIGVy cm5vLkVOT0VOVCwgb3Muc3RyZXJyb3IoZXJybm8uRU5PRU5UKSwgc2VsZi5fYXBwX3BhdGgpDQo+ ID4gPiA+PiArDQo+ID4gPiA+PiArICAgICAgICAjIFZlcmlmeSBVbmNydXN0aWZ5IGlzIHByZXNl bnQgYXQgdGhlIGV4cGVjdGVkIHBhdGguDQo+ID4gPiA+PiArICAgICAgICByZXR1cm5fYnVmZmVy ID0gU3RyaW5nSU8oKQ0KPiA+ID4gPj4gKyAgICAgICAgcmV0ID0gUnVuQ21kKHNlbGYuX2FwcF9w YXRoLCAiLS12ZXJzaW9uIiwgb3V0c3RyZWFtPXJldHVybl9idWZmZXIpDQo+ID4gPiA+PiArICAg ICAgICBpZiAocmV0ICE9IDApOg0KPiA+ID4gPj4gKyAgICAgICAgICAgIHJhaXNlIFVuY3J1c3Rp ZnlBcHBWZXJzaW9uRXJyb3JFeGNlcHRpb24oDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgIGYi RXJyb3Igb2NjdXJyZWQgZXhlY3V0aW5nIC0tdmVyc2lvbjoge3JldH0uIikNCj4gPiA+ID4+ICsN Cj4gPiA+ID4+ICsgICAgICAgICMgTG9nIFVuY3J1c3RpZnkgdmVyc2lvbiBpbmZvcm1hdGlvbi4N Cj4gPiA+ID4+ICsgICAgICAgIHNlbGYuX2FwcF92ZXJzaW9uID0gcmV0dXJuX2J1ZmZlci5nZXR2 YWx1ZSgpLnN0cmlwKCkNCj4gPiA+ID4+ICsgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZE91dChmIlVu Y3J1c3RpZnkgdmVyc2lvbjoge3NlbGYuX2FwcF92ZXJzaW9ufSIpDQo+ID4gPiA+PiArICAgICAg ICB2ZXJzaW9uX2FnZ3JlZ2F0b3IuR2V0VmVyc2lvbkFnZ3JlZ2F0b3IoKS5SZXBvcnRWZXJzaW9u KA0KPiA+ID4gPj4gKyAgICAgICAgICAgICJVbmNydXN0aWZ5Iiwgc2VsZi5fYXBwX3ZlcnNpb24s IHZlcnNpb25fYWdncmVnYXRvci5WZXJzaW9uVHlwZXMuSU5GTykNCj4gPiA+ID4+ICsNCj4gPiA+ ID4+ICsgICAgZGVmIF9pbml0aWFsaXplX2NvbmZpZ19maWxlX2luZm8oc2VsZikgLT4gTm9uZToN Cj4gPiA+ID4+ICsgICAgICAgICIiIg0KPiA+ID4gPj4gKyAgICAgICAgSW5pdGlhbGl6ZSBVbmNy dXN0aWZ5IGNvbmZpZ3VyYXRpb24gZmlsZSBpbmZvLg0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKyAg ICAgICAgVGhlIGNvbmZpZyBmaWxlIHBhdGggaXMgcmVsYXRpdmUgdG8gdGhlIHBhY2thZ2Ugcm9v dC4NCj4gPiA+ID4+ICsgICAgICAgICIiIg0KPiA+ID4gPj4gKyAgICAgICAgc2VsZi5fYXBwX2Nv bmZpZ19maWxlID0gVW5jcnVzdGlmeUNoZWNrLkRFRkFVTFRfQ09ORklHX0ZJTEVfUEFUSA0KPiA+ ID4gPj4gKyAgICAgICAgaWYgIkNvbmZpZ0ZpbGVQYXRoIiBpbiBzZWxmLl9wYWNrYWdlX2NvbmZp ZzoNCj4gPiA+ID4+ICsgICAgICAgICAgICBzZWxmLl9hcHBfY29uZmlnX2ZpbGUgPSBzZWxmLl9w YWNrYWdlX2NvbmZpZ1siQ29uZmlnRmlsZVBhdGgiXS5zdHJpcCgpDQo+ID4gPiA+PiArDQo+ID4g PiA+PiArICAgICAgICAgICAgc2VsZi5fYXBwX2NvbmZpZ19maWxlID0gb3MucGF0aC5ub3JtcGF0 aCgNCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKHNlbGYuX2Fic19wYWNr YWdlX3BhdGgsIHNlbGYuX2FwcF9jb25maWdfZmlsZSkpDQo+ID4gPiA+PiArDQo+ID4gPiA+PiAr ICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoc2VsZi5fYXBwX2NvbmZpZ19maWxlKToNCj4g PiA+ID4+ICsgICAgICAgICAgICByYWlzZSBGaWxlTm90Rm91bmRFcnJvcigNCj4gPiA+ID4+ICsg ICAgICAgICAgICAgICAgZXJybm8uRU5PRU5ULCBvcy5zdHJlcnJvcihlcnJuby5FTk9FTlQpLCBz ZWxmLl9hcHBfY29uZmlnX2ZpbGUpDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArICAgIGRlZiBfaW5p dGlhbGl6ZV9lbnZpcm9ubWVudF9pbmZvKHNlbGYsIHBhY2thZ2VfcmVsX3BhdGg6IHN0ciwgZWRr Ml9wYXRoOiBFZGsyUGF0aCwgcGFja2FnZV9jb25maWc6IERpY3Rbc3RyLA0KPiA+ID4gPj4gTGlz dFtzdHJdXSwgdGM6IEp1bml0UmVwb3J0VGVzdENhc2UpIC0+IE5vbmU6DQo+ID4gPiA+PiArICAg ICAgICAiIiINCj4gPiA+ID4+ICsgICAgICAgIEluaXRpYWxpemVzIHBsdWdpbiBlbnZpcm9ubWVu dCBpbmZvcm1hdGlvbi4NCj4gPiA+ID4+ICsgICAgICAgICIiIg0KPiA+ID4gPj4gKyAgICAgICAg c2VsZi5fYWJzX3BhY2thZ2VfcGF0aCA9IGVkazJfcGF0aC5HZXRBYnNvbHV0ZVBhdGhPblRoaXNT eXRlbUZyb21FZGsyUmVsYXRpdmVQYXRoKA0KPiA+ID4gPj4gKyAgICAgICAgICAgIHBhY2thZ2Vf cmVsX3BhdGgpDQo+ID4gPiA+PiArICAgICAgICBzZWxmLl9hYnNfd29ya3NwYWNlX3BhdGggPSBl ZGsyX3BhdGguV29ya3NwYWNlUGF0aA0KPiA+ID4gPj4gKyAgICAgICAgc2VsZi5fcGFja2FnZV9j b25maWcgPSBwYWNrYWdlX2NvbmZpZw0KPiA+ID4gPj4gKyAgICAgICAgc2VsZi5fcGFja2FnZV9u YW1lID0gb3MucGF0aC5iYXNlbmFtZSgNCj4gPiA+ID4+ICsgICAgICAgICAgICBvcy5wYXRoLm5v cm1wYXRoKHBhY2thZ2VfcmVsX3BhdGgpKQ0KPiA+ID4gPj4gKyAgICAgICAgc2VsZi5fcGx1Z2lu X25hbWUgPSBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXw0KPiA+ID4gPj4gKyAgICAgICAgc2VsZi5f cGx1Z2luX3BhdGggPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5yZWFscGF0aChfX2ZpbGVfXykp DQo+ID4gPiA+PiArICAgICAgICBzZWxmLl9yZWxfcGFja2FnZV9wYXRoID0gcGFja2FnZV9yZWxf cGF0aA0KPiA+ID4gPj4gKyAgICAgICAgc2VsZi5fdGMgPSB0Yw0KPiA+ID4gPj4gKw0KPiA+ID4g Pj4gKyAgICBkZWYgX2luaXRpYWxpemVfZmlsZV90b19mb3JtYXRfaW5mbyhzZWxmKSAtPiBOb25l Og0KPiA+ID4gPj4gKyAgICAgICAgIiIiDQo+ID4gPiA+PiArICAgICAgICBGb3JtcyB0aGUgbGlz dCBvZiBzb3VyY2UgZmlsZXMgZm9yIFVuY3J1c3RpZnkgdG8gcHJvY2Vzcy4NCj4gPiA+ID4+ICsg ICAgICAgICIiIg0KPiA+ID4gPj4gKyAgICAgICAgIyBDcmVhdGUgYSBsaXN0IG9mIGFsbCB0aGUg cGFja2FnZSByZWxhdGl2ZSBmaWxlIHBhdGhzIGluIHRoZSBwYWNrYWdlIHRvIHJ1biBhZ2FpbnN0 IFVuY3J1c3RpZnkuDQo+ID4gPiA+PiArICAgICAgICByZWxfZmlsZV9wYXRoc190b19mb3JtYXQg PSBsaXN0KA0KPiA+ID4gPj4gKyAgICAgICAgICAgIFVuY3J1c3RpZnlDaGVjay5TVEFOREFSRF9Q TFVHSU5fREVGSU5FRF9QQVRIUykNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgICAgICMgQWxs b3cgdGhlIGNpLnlhbWwgdG8gcmVtb3ZlIGFueSBvZiB0aGUgcHJlLWRlZmluZWQgc3RhbmRhcmQg cGF0aHMNCj4gPiA+ID4+ICsgICAgICAgIGlmICJJZ25vcmVTdGFuZGFyZFBhdGhzIiBpbiBzZWxm Ll9wYWNrYWdlX2NvbmZpZzoNCj4gPiA+ID4+ICsgICAgICAgICAgICBmb3IgYSBpbiBzZWxmLl9w YWNrYWdlX2NvbmZpZ1siSWdub3JlU3RhbmRhcmRQYXRocyJdOg0KPiA+ID4gPj4gKyAgICAgICAg ICAgICAgICBpZiBhLnN0cmlwKCkgaW4gcmVsX2ZpbGVfcGF0aHNfdG9fZm9ybWF0Og0KPiA+ID4g Pj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fdGMuTG9nU3RkT3V0KA0KPiA+ID4gPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgIGYiSWdub3Jpbmcgc3RhbmRhcmQgcGF0aCBkdWUgdG8gY2ku eWFtbCBpZ25vcmU6IHthfSIpDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgICAgICByZWxfZmls ZV9wYXRoc190b19mb3JtYXQucmVtb3ZlKGEuc3RyaXAoKSkNCj4gPiA+ID4+ICsgICAgICAgICAg ICAgICAgZWxzZToNCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgIHJhaXNlIFVuY3J1c3Rp ZnlJbnZhbGlkSWdub3JlU3RhbmRhcmRQYXRoc0V4Y2VwdGlvbihmIkludmFsaWQgSWdub3JlU3Rh bmRhcmRQYXRocyB2YWx1ZToge2F9IikNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgICAgICMg QWxsb3cgdGhlIGNpLnlhbWwgdG8gc3BlY2lmeSBhZGRpdGlvbmFsIGluY2x1ZGUgcGF0aHMgZm9y IHRoaXMgcGFja2FnZQ0KPiA+ID4gPj4gKyAgICAgICAgaWYgIkFkZGl0aW9uYWxJbmNsdWRlUGF0 aHMiIGluIHNlbGYuX3BhY2thZ2VfY29uZmlnOg0KPiA+ID4gPj4gKyAgICAgICAgICAgIHJlbF9m aWxlX3BhdGhzX3RvX2Zvcm1hdC5leHRlbmQoDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgIHNl bGYuX3BhY2thZ2VfY29uZmlnWyJBZGRpdGlvbmFsSW5jbHVkZVBhdGhzIl0pDQo+ID4gPiA+PiAr DQo+ID4gPiA+PiArICAgICAgICBzZWxmLl9hYnNfZmlsZV9wYXRoc190b19mb3JtYXQgPSBbXQ0K PiA+ID4gPj4gKyAgICAgICAgZm9yIHBhdGggaW4gcmVsX2ZpbGVfcGF0aHNfdG9fZm9ybWF0Og0K PiA+ID4gPj4gKyAgICAgICAgICAgIHNlbGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1hdC5leHRl bmQoDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgIFtzdHIocGF0aC5yZXNvbHZlKCkpIGZvciBw YXRoIGluIHBhdGhsaWIuUGF0aChzZWxmLl9hYnNfcGFja2FnZV9wYXRoKS5yZ2xvYihwYXRoKV0p DQo+ID4gPiA+PiArDQo+ID4gPiA+PiArICAgICAgICBpZiBub3QgIlNraXBHaXRFeGNsdXNpb25z IiBpbiBzZWxmLl9wYWNrYWdlX2NvbmZpZyBvciBub3Qgc2VsZi5fcGFja2FnZV9jb25maWdbIlNr aXBHaXRFeGNsdXNpb25zIl06DQo+ID4gPiA+PiArICAgICAgICAgICAgIyBSZW1vdmUgZmlsZXMg aWdub3JlZCBieSBnaXQNCj4gPiA+ID4+ICsgICAgICAgICAgICBsb2dnaW5nLmluZm8oDQo+ID4g PiA+PiArICAgICAgICAgICAgICAgIGYie3NlbGYuX3BhY2thZ2VfbmFtZX0gZmlsZSBjb3VudCBi ZWZvcmUgZ2l0IGlnbm9yZSBmaWxlIGV4Y2x1c2lvbjoNCj4gPiA+ID4+IHtsZW4oc2VsZi5fYWJz X2ZpbGVfcGF0aHNfdG9fZm9ybWF0KX0iKQ0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKyAgICAgICAg ICAgIGlnbm9yZWRfcGF0aHMgPSBzZWxmLl9nZXRfZ2l0X2lnbm9yZWRfcGF0aHMoKQ0KPiA+ID4g Pj4gKyAgICAgICAgICAgIHNlbGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1hdCA9IGxpc3QoDQo+ ID4gPiA+PiArICAgICAgICAgICAgICAgIHNldChzZWxmLl9hYnNfZmlsZV9wYXRoc190b19mb3Jt YXQpLmRpZmZlcmVuY2UoaWdub3JlZF9wYXRocykpDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArICAg ICAgICAgICAgbG9nZ2luZy5pbmZvKA0KPiA+ID4gPj4gKyAgICAgICAgICAgICAgICBmIntzZWxm Ll9wYWNrYWdlX25hbWV9IGZpbGUgY291bnQgYWZ0ZXIgZ2l0IGlnbm9yZSBmaWxlIGV4Y2x1c2lv bjoNCj4gPiA+ID4+IHtsZW4oc2VsZi5fYWJzX2ZpbGVfcGF0aHNfdG9fZm9ybWF0KX0iKQ0KPiA+ ID4gPj4gKw0KPiA+ID4gPj4gKyAgICAgICAgICAgICMgUmVtb3ZlIGZpbGVzIGluIHN1Ym1vZHVs ZXMNCj4gPiA+ID4+ICsgICAgICAgICAgICBsb2dnaW5nLmluZm8oDQo+ID4gPiA+PiArICAgICAg ICAgICAgICAgIGYie3NlbGYuX3BhY2thZ2VfbmFtZX0gZmlsZSBjb3VudCBiZWZvcmUgc3VibW9k dWxlIGV4Y2x1c2lvbjoNCj4gPiB7bGVuKHNlbGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1hdCl9 IikNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgICAgICAgICBzdWJtb2R1bGVfcGF0aHMgPSB0 dXBsZShzZWxmLl9nZXRfZ2l0X3N1Ym1vZHVsZV9wYXRocygpKQ0KPiA+ID4gPj4gKyAgICAgICAg ICAgIGZvciBwYXRoIGluIHN1Ym1vZHVsZV9wYXRoczoNCj4gPiA+ID4+ICsgICAgICAgICAgICAg ICAgbG9nZ2luZy5pbmZvKGYiICBzdWJtb2R1bGUgcGF0aDoge3BhdGh9IikNCj4gPiA+ID4+ICsN Cj4gPiA+ID4+ICsgICAgICAgICAgICBzZWxmLl9hYnNfZmlsZV9wYXRoc190b19mb3JtYXQgPSBb DQo+ID4gPiA+PiArICAgICAgICAgICAgICAgIGYgZm9yIGYgaW4gc2VsZi5fYWJzX2ZpbGVfcGF0 aHNfdG9fZm9ybWF0IGlmIG5vdCBmLnN0YXJ0c3dpdGgoc3VibW9kdWxlX3BhdGhzKV0NCj4gPiA+ ID4+ICsNCj4gPiA+ID4+ICsgICAgICAgICAgICBsb2dnaW5nLmluZm8oDQo+ID4gPiA+PiArICAg ICAgICAgICAgICAgIGYie3NlbGYuX3BhY2thZ2VfbmFtZX0gZmlsZSBjb3VudCBhZnRlciBzdWJt b2R1bGUgZXhjbHVzaW9uOg0KPiB7bGVuKHNlbGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1hdCl9 IikNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgICAgICMgU29ydCB0aGUgZmlsZXMgZm9yIG1v cmUgY29uc2lzdGVudCByZXN1bHRzDQo+ID4gPiA+PiArICAgICAgICBzZWxmLl9hYnNfZmlsZV9w YXRoc190b19mb3JtYXQuc29ydCgpDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArICAgIGRlZiBfaW5p dGlhbGl6ZV90ZXN0X2Nhc2Vfb3V0cHV0X29wdGlvbnMoc2VsZikgLT4gTm9uZToNCj4gPiA+ID4+ ICsgICAgICAgICIiIg0KPiA+ID4gPj4gKyAgICAgICAgSW5pdGlhbGl6ZXMgb3B0aW9ucyB0aGF0 IGluZmx1ZW5jZSB0ZXN0IGNhc2Ugb3V0cHV0Lg0KPiA+ID4gPj4gKyAgICAgICAgIiIiDQo+ID4g PiA+PiArICAgICAgICBzZWxmLl9hdWRpdF9vbmx5X21vZGUgPSBGYWxzZQ0KPiA+ID4gPj4gKyAg ICAgICAgc2VsZi5fb3V0cHV0X2ZpbGVfZGlmZnMgPSBGYWxzZQ0KPiA+ID4gPj4gKw0KPiA+ID4g Pj4gKyAgICAgICAgaWYgIkF1ZGl0T25seSIgaW4gc2VsZi5fcGFja2FnZV9jb25maWcgYW5kIHNl bGYuX3BhY2thZ2VfY29uZmlnWyJBdWRpdE9ubHkiXToNCj4gPiA+ID4+ICsgICAgICAgICAgICBz ZWxmLl9hdWRpdF9vbmx5X21vZGUgPSBUcnVlDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArICAgICAg ICBpZiAiT3V0cHV0RmlsZURpZmZzIiBpbiBzZWxmLl9wYWNrYWdlX2NvbmZpZyBhbmQgc2VsZi5f cGFja2FnZV9jb25maWdbIk91dHB1dEZpbGVEaWZmcyJdOg0KPiA+ID4gPj4gKyAgICAgICAgICAg IHNlbGYuX291dHB1dF9maWxlX2RpZmZzID0gVHJ1ZQ0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKyAg ICBkZWYgX2xvZ191bmNydXN0aWZ5X2FwcF9pbmZvKHNlbGYpIC0+IE5vbmU6DQo+ID4gPiA+PiAr ICAgICAgICAiIiINCj4gPiA+ID4+ICsgICAgICAgIExvZ3MgVW5jcnVzdGlmeSBhcHBsaWNhdGlv biBpbmZvcm1hdGlvbi4NCj4gPiA+ID4+ICsgICAgICAgICIiIg0KPiA+ID4gPj4gKyAgICAgICAg c2VsZi5fdGMuTG9nU3RkT3V0KGYiRm91bmQgVW5jcnVzdGlmeSBhdCB7c2VsZi5fYXBwX3BhdGh9 IikNCj4gPiA+ID4+ICsgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZE91dChmIlVuY3J1c3RpZnkgdmVy c2lvbjoge3NlbGYuX2FwcF92ZXJzaW9ufSIpDQo+ID4gPiA+PiArICAgICAgICBzZWxmLl90Yy5M b2dTdGRPdXQoJ1xuJykNCj4gPiA+ID4+ICsgICAgICAgIGxvZ2dpbmcuaW5mbyhmIkZvdW5kIFVu Y3J1c3RpZnkgYXQge3NlbGYuX2FwcF9wYXRofSIpDQo+ID4gPiA+PiArICAgICAgICBsb2dnaW5n LmluZm8oZiJVbmNydXN0aWZ5IHZlcnNpb246IHtzZWxmLl9hcHBfdmVyc2lvbn0iKQ0KPiA+ID4g Pj4gKyAgICAgICAgbG9nZ2luZy5pbmZvKCdcbicpDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArICAg IGRlZiBfcHJvY2Vzc191bmNydXN0aWZ5X3Jlc3VsdHMoc2VsZikgLT4gTm9uZToNCj4gPiA+ID4+ ICsgICAgICAgICIiIg0KPiA+ID4gPj4gKyAgICAgICAgUHJvY2VzcyB0aGUgcmVzdWx0cyBmcm9t IFVuY3J1c3RpZnkuDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArICAgICAgICBEZXRlcm1pbmVzIHdo ZXRoZXIgZm9ybWF0dGluZyBlcnJvcnMgYXJlIHByZXNlbnQgYW5kIGxvZ3MgZmFpbHVyZXMuDQo+ ID4gPiA+PiArICAgICAgICAiIiINCj4gPiA+ID4+ICsgICAgICAgIGZvcm1hdHRlZF9maWxlcyA9 IFtzdHIocGF0aC5yZXNvbHZlKCkpIGZvciBwYXRoIGluIHBhdGhsaWIuUGF0aCgNCj4gPiA+ID4+ ICsgICAgICAgICAgICBzZWxmLl9hYnNfcGFja2FnZV9wYXRoKS5yZ2xvYihmJyp7VW5jcnVzdGlm eUNoZWNrLkZPUk1BVFRFRF9GSUxFX0VYVEVOU0lPTn0nKV0NCj4gPiA+ID4+ICsNCj4gPiA+ID4+ ICsgICAgICAgIHNlbGYuX2Zvcm1hdHRlZF9maWxlX2Vycm9yX2NvdW50ID0gbGVuKGZvcm1hdHRl ZF9maWxlcykNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgICAgIGlmIHNlbGYuX2Zvcm1hdHRl ZF9maWxlX2Vycm9yX2NvdW50ID4gMDoNCj4gPiA+ID4+ICsgICAgICAgICAgICBzZWxmLl90Yy5M b2dTdGRFcnJvcigiRmlsZXMgd2l0aCBmb3JtYXR0aW5nIGVycm9yczpcbiIpDQo+ID4gPiA+PiAr DQo+ID4gPiA+PiArICAgICAgICAgICAgaWYgc2VsZi5fb3V0cHV0X2ZpbGVfZGlmZnM6DQo+ID4g PiA+PiArICAgICAgICAgICAgICAgIGxvZ2dpbmcuaW5mbygiQ2FsY3VsYXRpbmcgZmlsZSBkaWZm cy4gVGhpcyBtaWdodCB0YWtlIGEgd2hpbGUuLi4iKQ0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKyAg ICAgICAgZm9yIGZvcm1hdHRlZF9maWxlIGluIGZvcm1hdHRlZF9maWxlczoNCj4gPiA+ID4+ICsg ICAgICAgICAgICBwcmVfZm9ybWF0dGVkX2ZpbGUgPSBmb3JtYXR0ZWRfZmlsZVs6LQ0KPiA+ID4g Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihV bmNydXN0aWZ5Q2hlY2suRk9STUFUVEVEX0ZJTEVfRVhURU5TSU9OKV0NCj4gPiA+ID4+ICsNCj4g PiA+ID4+ICsgICAgICAgICAgICBpZiAoc2VsZi5fb3V0cHV0X2ZpbGVfZGlmZnMgb3INCj4gPiA+ ID4+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuX2ZpbGVfdGVtcGxhdGVfY29udGVudHMgaXMg bm90IE5vbmUgb3INCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuX2Z1bmNfdGVt cGxhdGVfY29udGVudHMgaXMgbm90IE5vbmUpOg0KPiA+ID4gPj4gKyAgICAgICAgICAgICAgICBz ZWxmLl90Yy5Mb2dTdGRFcnJvcigNCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgIGYiRm9y bWF0dGluZyBlcnJvcnMgaW4ge29zLnBhdGgucmVscGF0aChwcmVfZm9ybWF0dGVkX2ZpbGUsIHNl bGYuX2Fic19wYWNrYWdlX3BhdGgpfVxuIikNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgICAg ICAgICAgICAgd2l0aCBvcGVuKGZvcm1hdHRlZF9maWxlKSBhcyBmZjoNCj4gPiA+ID4+ICsgICAg ICAgICAgICAgICAgICAgIGZvcm1hdHRlZF9maWxlX3RleHQgPSBmZi5yZWFkKCkNCj4gPiA+ID4+ ICsNCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgIGlmIChzZWxmLl9maWxlX3RlbXBsYXRl X2NvbnRlbnRzIGlzIG5vdCBOb25lIGFuZA0KPiA+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLl9maWxlX3RlbXBsYXRlX2NvbnRlbnRzIGluIGZvcm1hdHRlZF9maWxlX3Rl eHQpOg0KPiA+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZEVy cm9yKGYiRmlsZSBoZWFkZXIgaXMgbWlzc2luZyBpbiB7b3MucGF0aC5yZWxwYXRoKHByZV9mb3Jt YXR0ZWRfZmlsZSwNCj4gPiA+ID4+IHNlbGYuX2Fic19wYWNrYWdlX3BhdGgpfVxuIikNCj4gPiA+ ID4+ICsNCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgIGlmIChzZWxmLl9mdW5jX3RlbXBs YXRlX2NvbnRlbnRzIGlzIG5vdCBOb25lIGFuZA0KPiA+ID4gPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLl9mdW5jX3RlbXBsYXRlX2NvbnRlbnRzIGluIGZvcm1hdHRlZF9maWxl X3RleHQpOg0KPiA+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3RjLkxvZ1N0 ZEVycm9yKGYiQSBmdW5jdGlvbiBoZWFkZXIgaXMgbWlzc2luZyBpbg0KPiB7b3MucGF0aC5yZWxw YXRoKHByZV9mb3JtYXR0ZWRfZmlsZSwNCj4gPiA+ID4+IHNlbGYuX2Fic19wYWNrYWdlX3BhdGgp fVxuIikNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYu X291dHB1dF9maWxlX2RpZmZzOg0KPiA+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHdp dGggb3BlbihwcmVfZm9ybWF0dGVkX2ZpbGUpIGFzIHBmOg0KPiA+ID4gPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwcmVfZm9ybWF0dGVkX2ZpbGVfdGV4dCA9IHBmLnJlYWQoKQ0KPiA+ ID4gPj4gKw0KPiA+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIGRp ZmZsaWIudW5pZmllZF9kaWZmKHByZV9mb3JtYXR0ZWRfZmlsZV90ZXh0LnNwbGl0KCdcbicpLA0K PiA+ID4gPj4gZm9ybWF0dGVkX2ZpbGVfdGV4dC5zcGxpdCgnXG4nKSwgZnJvbWZpbGU9cHJlX2Zv cm1hdHRlZF9maWxlLCB0b2ZpbGU9Zm9ybWF0dGVkX2ZpbGUsIG49Myk6DQo+ID4gPiA+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZEVycm9yKGxpbmUpDQo+ID4g PiA+PiArDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fdGMuTG9nU3Rk RXJyb3IoJ1xuJykNCj4gPiA+ID4+ICsgICAgICAgICAgICBlbHNlOg0KPiA+ID4gPj4gKyAgICAg ICAgICAgICAgICBzZWxmLl90Yy5Mb2dTdGRFcnJvcihwcmVfZm9ybWF0dGVkX2ZpbGUpDQo+ID4g PiA+PiArDQo+ID4gPiA+PiArICAgIGRlZiBfcmVtb3ZlX3RyZWUoc2VsZiwgZGlyX3BhdGg6IHN0 ciwgaWdub3JlX2Vycm9yczogYm9vbCA9IEZhbHNlKSAtPiBOb25lOg0KPiA+ID4gPj4gKyAgICAg ICAgIiIiDQo+ID4gPiA+PiArICAgICAgICBIZWxwZXIgZm9yIHJlbW92aW5nIGEgZGlyZWN0b3J5 LiBPdmVyIHRpbWUgdGhlcmUgaGF2ZSBiZWVuDQo+ID4gPiA+PiArICAgICAgICBtYW55IHByaXZh dGUgaW1wbGVtZW50YXRpb25zIG9mIHRoaXMgZHVlIHRvIHJlbGlhYmlsaXR5IGlzc3VlcyBpbiB0 aGUNCj4gPiA+ID4+ICsgICAgICAgIHNodXRpbCBpbXBsZW1lbnRhdGlvbnMuIFRvIGNvbnNvbGlk YXRlIG9uIGEgc2luZ2xlIGZ1bmN0aW9uIHRoaXMgaGVscGVyIGlzIGFkZGVkLg0KPiA+ID4gPj4g Kw0KPiA+ID4gPj4gKyAgICAgICAgT24gZXJyb3IgdHJ5IHRvIGNoYW5nZSBmaWxlIGF0dHJpYnV0 ZXMuIEFsc28gYWRkIHJldHJ5IGxvZ2ljLg0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKyAgICAgICAg VGhpcyBmdW5jdGlvbiBpcyB0ZW1wb3JhcmlseSBib3Jyb3dlZCBmcm9tIGVkazJ0b29sbGliLnV0 aWxpdHlfZnVuY3Rpb25zDQo+ID4gPiA+PiArICAgICAgICBzaW5jZSB0aGUgdmVyc2lvbiB1c2Vk IGluIGVkazIgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gaW5jbHVkZSB0aGUNCj4gPiA+ID4+ICsg ICAgICAgIGZ1bmN0aW9uLg0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKyAgICAgICAgVGhpcyBmdW5j dGlvbiBzaG91bGQgYmUgcmVwbGFjZWQgYnkgIlJlbW92ZVRyZWUiIHdoZW4gaXQgaXMgYXZhaWxh YmxlLg0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKyAgICAgICAgQXJnczoNCj4gPiA+ID4+ICsgICAg ICAgICAgLSBkaXJfcGF0aDogUGF0aCB0byBkaXJlY3RvcnkgdG8gcmVtb3ZlLg0KPiA+ID4gPj4g KyAgICAgICAgICAtIGlnbm9yZV9lcnJvcnM6IFdoZXRoZXIgdG8gaWdub3JlIGVycm9ycyBkdXJp bmcgcmVtb3ZhbA0KPiA+ID4gPj4gKyAgICAgICAgIiIiDQo+ID4gPiA+PiArDQo+ID4gPiA+PiAr ICAgICAgICBkZWYgX3JlbW92ZV9yZWFkb25seShmdW5jLCBwYXRoLCBfKToNCj4gPiA+ID4+ICsg ICAgICAgICAgICAiIiINCj4gPiA+ID4+ICsgICAgICAgICAgICBQcml2YXRlIGZ1bmN0aW9uIHRv IGF0dGVtcHQgdG8gY2hhbmdlIHBlcm1pc3Npb25zIG9uIGZpbGUvZm9sZGVyIGJlaW5nIGRlbGV0 ZWQuDQo+ID4gPiA+PiArICAgICAgICAgICAgIiIiDQo+ID4gPiA+PiArICAgICAgICAgICAgb3Mu Y2htb2QocGF0aCwgb3Muc3RhdC5TX0lXUklURSkNCj4gPiA+ID4+ICsgICAgICAgICAgICBmdW5j KHBhdGgpDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArICAgICAgICBmb3IgXyBpbiByYW5nZSgzKTog ICMgcmV0cnkgdXAgdG8gMyB0aW1lcw0KPiA+ID4gPj4gKyAgICAgICAgICAgIHRyeToNCj4gPiA+ ID4+ICsgICAgICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShkaXJfcGF0aCwgaWdub3JlX2Vycm9y cz1pZ25vcmVfZXJyb3JzLCBvbmVycm9yPV9yZW1vdmVfcmVhZG9ubHkpDQo+ID4gPiA+PiArICAg ICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZXJyOg0KPiA+ID4gPj4gKyAgICAgICAgICAgICAg ICBsb2dnaW5nLndhcm5pbmcoZiJGYWlsZWQgdG8gZnVsbHkgcmVtb3ZlIHtkaXJfcGF0aH06IHtl cnJ9IikNCj4gPiA+ID4+ICsgICAgICAgICAgICBlbHNlOg0KPiA+ID4gPj4gKyAgICAgICAgICAg ICAgICBicmVhaw0KPiA+ID4gPj4gKyAgICAgICAgZWxzZToNCj4gPiA+ID4+ICsgICAgICAgICAg ICByYWlzZSBSdW50aW1lRXJyb3IoZiJGYWlsZWQgdG8gcmVtb3ZlIHtkaXJfcGF0aH0iKQ0KPiA+ ID4gPj4gKw0KPiA+ID4gPj4gKyAgICBkZWYgX3J1bl91bmNydXN0aWZ5KHNlbGYpIC0+IE5vbmU6 DQo+ID4gPiA+PiArICAgICAgICAiIiINCj4gPiA+ID4+ICsgICAgICAgIFJ1bnMgVW5jcnVzdGlm eSBmb3IgdGhpcyBpbnN0YW5jZSBvZiBwbHVnaW4gZXhlY3V0aW9uLg0KPiA+ID4gPj4gKyAgICAg ICAgIiIiDQo+ID4gPiA+PiArICAgICAgICBsb2dnaW5nLmluZm8oIkV4ZWN1dGluZyBVbmNydXN0 aWZ5LiBUaGlzIG1pZ2h0IHRha2UgYSB3aGlsZS4uLiIpDQo+ID4gPiA+PiArICAgICAgICBzdGFy dF90aW1lID0gdGltZWl0LmRlZmF1bHRfdGltZXIoKQ0KPiA+ID4gPj4gKyAgICAgICAgc2VsZi5f ZXhlY3V0ZV91bmNydXN0aWZ5KCkNCj4gPiA+ID4+ICsgICAgICAgIGVuZF90aW1lID0gdGltZWl0 LmRlZmF1bHRfdGltZXIoKSAtIHN0YXJ0X3RpbWUNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgICAg ICAgIGV4ZWN1dGlvbl9zdW1tYXJ5ID0gZiJVbmNydXN0aWZ5IGV4ZWN1dGVkIGFnYWluc3Qge2xl bihzZWxmLl9hYnNfZmlsZV9wYXRoc190b19mb3JtYXQpfSBmaWxlcyBpbg0KPiA+ID4gPj4ge3Nl bGYuX3BhY2thZ2VfbmFtZX0gaW4ge2VuZF90aW1lOi4yZn0gc2Vjb25kcy5cbiINCj4gPiA+ID4+ ICsNCj4gPiA+ID4+ICsgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZE91dChleGVjdXRpb25fc3VtbWFy eSkNCj4gPiA+ID4+ICsgICAgICAgIGxvZ2dpbmcuaW5mbyhleGVjdXRpb25fc3VtbWFyeSkNCj4g PiA+ID4+ICsNCj4gPiA+ID4+ICsgICAgICAgIGlmIHNlbGYuX2FwcF9leGl0X2NvZGUgIT0gMCBh bmQgc2VsZi5fYXBwX2V4aXRfY29kZSAhPSAxOg0KPiA+ID4gPj4gKyAgICAgICAgICAgIHJhaXNl IFVuY3J1c3RpZnlBcHBFeGVjdXRpb25FeGNlcHRpb24oDQo+ID4gPiA+PiArICAgICAgICAgICAg ICAgIGYiRXJyb3Ige3N0cihzZWxmLl9hcHBfZXhpdF9jb2RlKX0gcmV0dXJuZWQgZnJvbSBVbmNy dXN0aWZ5OlxuXG57c3RyKHNlbGYuX2FwcF9vdXRwdXQpfSIpDQo+ID4gPiA+PiBkaWZmIC0tZ2l0 IGEvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeUNoZWNrL2RlZmF1bHRfZmlsZV9oZWFkZXIudHh0 DQo+ID4gPiA+PiBiLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVjay9kZWZhdWx0X2ZpbGVf aGVhZGVyLnR4dA0KPiA+ID4gPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+ID4+IGluZGV4 IDAwMDAwMDAwMDAwMC4uMjk1NWE3MzRkZmUxDQo+ID4gPiA+PiAtLS0gL2Rldi9udWxsDQo+ID4g PiA+PiArKysgYi8ucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5Q2hlY2svZGVmYXVsdF9maWxlX2hl YWRlci50eHQNCj4gPiA+ID4+IEBAIC0wLDAgKzEsOSBAQA0KPiA+ID4gPj4gKy8qKiBAZmlsZQ0K PiA+ID4gPj4gKyAgQnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIGZpbGUncyBwdXJwb3NlLg0KPiA+ ID4gPj4gKw0KPiA+ID4gPj4gKyAgRGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgdGhlIGZpbGUncyBj b250ZW50cyBhbmQgb3RoZXIgdXNlZnVsDQo+ID4gPiA+PiArICBpbmZvcm1hdGlvbiBmb3IgYSBw ZXJzb24gdmlld2luZyB0aGUgZmlsZSBmb3IgdGhlIGZpcnN0IHRpbWUuDQo+ID4gPiA+PiArDQo+ ID4gPiA+PiArICA8PENvcHlyaWdodD4+DQo+ID4gPiA+PiArICBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4gPj4gKyoqLw0KPiA+ID4gPj4gZGlmZiAt LWdpdCBhLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVjay9kZWZhdWx0X2Z1bmN0aW9uX2hl YWRlci50eHQNCj4gPiA+ID4+IGIvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeUNoZWNrL2RlZmF1 bHRfZnVuY3Rpb25faGVhZGVyLnR4dA0KPiA+ID4gPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4g PiA+ID4+IGluZGV4IDAwMDAwMDAwMDAwMC4uNjZlZGM3MmU2NzMxDQo+ID4gPiA+PiAtLS0gL2Rl di9udWxsDQo+ID4gPiA+PiArKysgYi8ucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5Q2hlY2svZGVm YXVsdF9mdW5jdGlvbl9oZWFkZXIudHh0DQo+ID4gPiA+PiBAQCAtMCwwICsxLDE1IEBADQo+ID4g PiA+PiArLyoqDQo+ID4gPiA+PiArICBCcmllZiBkZXNjcmlwdGlvbiBvZiB0aGlzIGZ1bmN0aW9u J3MgcHVycG9zZS4NCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsgIEZvbGxvdyBpdCBpbW1lZGlhdGVs eSB3aXRoIHRoZSBkZXRhaWxlZCBkZXNjcmlwdGlvbi4NCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsg IEBwYXJhbVtpbl0gICAgICBBcmcxICBEZXNjcmlwdGlvbiBvZiBBcmcxLg0KPiA+ID4gPj4gKyAg QHBhcmFtW2luXSAgICAgIEFyZzIgIERlc2NyaXB0aW9uIG9mIEFyZzIgVGhpcyBpcyBjb21wbGlj YXRlZCBhbmQgcmVxdWlyZXMNCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICBtdWx0 aXBsZSBsaW5lcyB0byBkZXNjcmliZS4NCj4gPiA+ID4+ICsgIEBwYXJhbVtvdXRdICAgICBBcmcz ICBEZXNjcmlwdGlvbiBvZiBBcmczLg0KPiA+ID4gPj4gKyAgQHBhcmFtW2luLCBvdXRdIEFyZzQg IERlc2NyaXB0aW9uIG9mIEFyZzQuDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArICBAcmV0dmFsIFZB TF9PTkUgIERlc2NyaXB0aW9uIG9mIHdoYXQgVkFMX09ORSBzaWduaWZpZXMuDQo+ID4gPiA+PiAr ICBAcmV0dmFsIE9USEVSICAgIFRoaXMgaXMgdGhlIG9ubHkgb3RoZXIgcmV0dXJuIHZhbHVlLiBJ ZiB0aGVyZSB3ZXJlIG90aGVyDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgICAgIHJldHVybiB2 YWx1ZXMsIHRoZXkgd291bGQgYmUgbGlzdGVkLg0KPiA+ID4gPj4gKyoqLw0KPiA+ID4gPj4gZGlm ZiAtLWdpdCBhLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVjay91bmNydXN0aWZ5LmNmZyBi Ly5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVjay91bmNydXN0aWZ5LmNmZw0KPiA+ID4gPj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+ID4+IGluZGV4IDAwMDAwMDAwMDAwMC4uMWE4NzI5 NWVjOWY5DQo+ID4gPiA+PiAtLS0gL2Rldi9udWxsDQo+ID4gPiA+PiArKysgYi8ucHl0b29sL1Bs dWdpbi9VbmNydXN0aWZ5Q2hlY2svdW5jcnVzdGlmeS5jZmcNCj4gPiA+ID4+IEBAIC0wLDAgKzEs NDYyIEBADQo+ID4gPiA+PiArIyMgQGZpbGUNCj4gPiA+ID4+ICsjIFVuY3J1c3RpZnkgQ29uZmln dXJhdGlvbiBGaWxlIGZvciBFREsgSUkgQyBDb2RlDQo+ID4gPiA+PiArIw0KPiA+ID4gPj4gKyMg Q29kaW5nIFN0YW5kYXJkOiBodHRwczovL2VkazItZG9jcy5naXRib29rLmlvL2Vkay1paS1jLWNv ZGluZy1zdGFuZGFyZHMtc3BlY2lmaWNhdGlvbi8NCj4gPiA+ID4+ICsjDQo+ID4gPiA+PiArIyBU aGlzIGNvbmZpZ3VyYXRpb24gZmlsZSBpcyBtZWFudCB0byBiZSBhICJiZXN0IGF0dGVtcHQiIHRv IGFsaWduIHdpdGggdGhlDQo+ID4gPiA+PiArIyBkZWZpbml0aW9ucyBpbiB0aGUgRURLIElJIEMg Q29kaW5nIFN0YW5kYXJkcyBTcGVjaWZpY2F0aW9uLg0KPiA+ID4gPj4gKyMNCj4gPiA+ID4+ICsj IENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLg0KPiA+ID4gPj4gKyMgU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiA+ID4+ICsjIw0KPiA+ ID4gPj4gKw0KPiA+ID4gPj4gKyMgRm9yY2UgVVRGLTggZW5jb2RpbmcgKG5vIFVURi0xNikNCj4g PiA+ID4+ICtlbmFibGVfZGlncmFwaHMgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+ID4+ ICt1dGY4X2J5dGUgICAgICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+ID4+ICt1dGY4 X2ZvcmNlICAgICAgICAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiA+ID4gPj4gKw0KPiA+ID4gPj4g KyMgQ29kZSB3aWR0aCAvIGxpbmUgc3BsaXR0aW5nDQo+ID4gPiA+PiArI2NvZGVfd2lkdGggICAg ICAgICAgICAgICAgICAgICAgPTEyMCAgICAgIyBUT0RPOiBUaGlzIGNhdXNlcyBub24tZGV0ZXJt aW5pc3RpYyBiZWhhdmlvdXIgaW4gc29tZSBjYXNlcyB3aGVuIGNvZGUNCj4gPiA+IHdyYXBzDQo+ ID4gPiA+PiArbHNfY29kZV93aWR0aCAgICAgICAgICAgICAgICAgICA9ZmFsc2UNCj4gPiA+ID4+ ICtsc19mb3Jfc3BsaXRfZnVsbCAgICAgICAgICAgICAgID10cnVlDQo+ID4gPiA+PiArbHNfZnVu Y19zcGxpdF9mdWxsICAgICAgICAgICAgICA9dHJ1ZQ0KPiA+ID4gPj4gK3Bvc19jb21tYSAgICAg ICAgICAgICAgICAgICAgICAgPXRyYWlsDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArIyA1LjEuNyAg QWxsIGZpbGVzIG11c3QgZW5kIHdpdGggQ1JMRg0KPiA+ID4gPj4gK25ld2xpbmVzICAgICAgICAg ICAgICAgICAgICAgICAgPSBjcmxmDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArIyA1LjEuMiBEbyBu b3QgdXNlIHRhYiBjaGFyYWN0ZXJzDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArY210X2NvbnZlcnRf dGFiX3RvX3NwYWNlcyAgICAgICA9IHRydWUgICAgICAjIFdoZXRoZXIgdG8gY29udmVydCBhbGwg dGFicyB0byBzcGFjZXMgaW4gY29tbWVudHMuIElmIGZhbHNlLCB0YWJzIGluDQo+ID4gPiA+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGNvbW1lbnRzIGFy ZSBsZWZ0IGFsb25lLCB1bmxlc3MgdXNlZCBmb3IgaW5kZW50aW5nLg0KPiA+ID4gPj4gK2luZGVu dF9jb2x1bW5zICAgICAgICAgICAgICAgICAgPSAyICAgICAgICAgIyBOdW1iZXIgb2Ygc3BhY2Vz IGZvciBpbmRlbnRhdGlvbg0KPiA+ID4gPj4gK2luZGVudF93aXRoX3RhYnMgICAgICAgICAgICAg ICAgPSAwICAgICAgICAgIyBEbyBub3QgdXNlIFRBQiBjaGFyYWN0ZXJzDQo+ID4gPiA+PiArc3Ry aW5nX3JlcGxhY2VfdGFiX2NoYXJzICAgICAgICA9IHRydWUgICAgICAjIFJlcGxhY2UgVEFCIHdp dGggU1BBQ0UNCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICMgTm90ZTogVGhpcyB3aWxsIGJyZWFrIC5yb2JvdCBmaWxlcyBidXQgaXMgbmVlZGVk IGZvciBlZGsyIHN0eWxlDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArIyA1LjIuMS4xIFRoZXJlIHNo YWxsIGJlIG9ubHkgb25lIHN0YXRlbWVudCBvbiBhIGxpbmUgKHN0YXRlbWVudCBlbmRzIHdpdGgg OykNCj4gPiA+ID4+ICtubF9tdWx0aV9saW5lX2NvbmQgICAgICAgICAgICAgID0gdHJ1ZSAgICAg ICMgQWRkIGEgbmV3bGluZSBiZXR3ZWVuICcpJyBhbmQgJ3snIGlmIHRoZSAnKScgaXMgb24gYSBk aWZmZXJlbnQgbGluZQ0KPiA+IHRoYW4NCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICMgdGhlIGlmL2Zvci9ldGMuDQo+ID4gPiA+PiArbmxfYWZ0 ZXJfc2VtaWNvbG9uICAgICAgICAgICAgICA9IHRydWUgICAgICAjIFdoZXRoZXIgdG8gYWRkIGEg bmV3bGluZSBhZnRlciBzZW1pY29sb25zLCBleGNlcHQgaW4gJ2ZvcicNCj4gc3RhdGVtZW50cy4N Cj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsjIDUuMi4xLjMgQW4gb3BlbiBicmFjZSAneycgZ29lcyBv biB0aGUgc2FtZSBsaW5lIGFzIHRoZSBjbG9zaW5nIHBhcmVudGhlc2lzICcpJyBvZiBzaW1wbGUg cHJlZGljYXRlIGV4cHJlc3Npb25zDQo+ID4gPiA+PiArbW9kX2Z1bGxfYnJhY2VfZG8gICAgICAg ICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgYnJhY2VzIG9uIGEgc2luZ2xlLWxp bmUgJ2RvJyBzdGF0ZW1lbnQuDQo+ID4gPiA+PiArbW9kX2Z1bGxfYnJhY2VfZm9yICAgICAgICAg ICAgICA9IGFkZA0KPiA+ID4gPj4gK21vZF9mdWxsX2JyYWNlX2Z1bmN0aW9uICAgICAgICAgPSBh ZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIGJyYWNlcyBvbiBhIHNpbmdsZS1saW5lIGZ1bmN0aW9u IGRlZmluaXRpb24uDQo+ID4gPiA+PiArbW9kX2Z1bGxfYnJhY2VfaWYgICAgICAgICAgICAgICA9 IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgYnJhY2VzIG9uIGEgc2luZ2xlLWxpbmUgJ2lmJyBz dGF0ZW1lbnQuIEJyYWNlcyB3aWxsDQo+IG5vdA0KPiA+IGJlDQo+ID4gPiA+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHJlbW92ZWQgaWYgdGhlIGJyYWNl ZCBzdGF0ZW1lbnQgY29udGFpbnMgYW4gJ2Vsc2UnLg0KPiA+ID4gPj4gK21vZF9mdWxsX2JyYWNl X2lmX2NoYWluICAgICAgICAgPSBmYWxzZQ0KPiA+ID4gPj4gK21vZF9mdWxsX2JyYWNlX3doaWxl ICAgICAgICAgICAgPSBhZGQNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsjIDUuMi4xLjQgQSBjbG9z ZSBicmFjZSAnfScgYWx3YXlzIGdvZXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGFzdCBsaW5l IG9mIHRoZSBib2R5DQo+ID4gPiA+PiArZWF0X2JsYW5rc19hZnRlcl9vcGVuX2JyYWNlICAgICA9 IHRydWUNCj4gPiA+ID4+ICtlYXRfYmxhbmtzX2JlZm9yZV9jbG9zZV9icmFjZSAgID0gdHJ1ZSAg ICAgICMgV2hldGhlciB0byByZW1vdmUgYmxhbmsgbGluZXMgYmVmb3JlICd9Jy4NCj4gPiA+ID4+ ICsNCj4gPiA+ID4+ICsjIDUuMi4yLjIgQWx3YXlzIHB1dCBzcGFjZSBiZWZvcmUgYW5kIGFmdGVy IGJpbmFyeSBvcGVyYXRvcnMuDQo+ID4gPiA+PiArc3BfYXNzaWduICAgICAgICAgICAgICAgICAg ICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYXJvdW5kIGFzc2lnbm1lbnQg b3BlcmF0b3IgJz0nLCAnKz0nLCBldGMuDQo+ID4gPiA+PiArc3BfYXNzaWduX2RlZmF1bHQgICAg ICAgICAgICAgICA9IGFkZA0KPiA+ID4gPj4gK3NwX2Jvb2wgICAgICAgICAgICAgICAgICAgICAg ICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFyb3VuZCBib29sZWFuIG9wZXJh dG9ycyAnJiYnIGFuZCAnfHwnLg0KPiA+ID4gPj4gK3NwX2NvbXBhcmUgICAgICAgICAgICAgICAg ICAgICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFyb3VuZCBjb21wYXJlIG9w ZXJhdG9yICc8JywgJz4nLCAnPT0nLCBldGMuDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArIyA1LjIu Mi4zIERvIG5vdCBwdXQgc3BhY2UgYmV0d2VlbiB1bmFyeSBvcGVyYXRvcnMgYW5kIHRoZWlyIG9i amVjdA0KPiA+ID4gPj4gK3NwX2FkZHIgICAgICAgICAgICAgICAgICAgICAgICAgPSByZW1vdmUg ICAgIyBBIG9yIHJlbW92ZSBzcGFjZSBhZnRlciB0aGUgJyYnIChhZGRyZXNzLW9mKSB1bmFyeSBv cGVyYXRvci4NCj4gPiA+ID4+ICtzcF9pbmNkZWMgICAgICAgICAgICAgICAgICAgICAgID0gcmVt b3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuICcrKycgYW5kICctLScgdGhlIHdv cmQgdG8gd2hpY2ggaXQgaXMNCj4gPiBiZWluZw0KPiA+ID4gPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhcHBsaWVkLCBhcyBpbiAnKC0teCknIG9yICd5 Kys7Jy4NCj4gPiA+ID4+ICtzcF9pbnYgICAgICAgICAgICAgICAgICAgICAgICAgID0gcmVtb3Zl ICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBhZnRlciB0aGUgJ34nIChpbnZlcnQpIHVuYXJ5IG9w ZXJhdG9yLg0KPiA+ID4gPj4gK3NwX25vdCAgICAgICAgICAgICAgICAgICAgICAgICAgPSByZW1v dmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyIHRoZSAnIScgKG5vdCkgdW5hcnkgb3Bl cmF0b3IuDQo+ID4gPiA+PiArc3Bfc2lnbiAgICAgICAgICAgICAgICAgICAgICAgICA9IHJlbW92 ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYWZ0ZXIgJysnIG9yICctJywgYXMgaW4gJ3ggPSAt NScgb3IgJ3kgPSArNycuDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArIyA1LjIuMi40IFN1YnNlcXVl bnQgbGluZXMgb2YgbXVsdGktbGluZSBmdW5jdGlvbiBjYWxscyBzaG91bGQgbGluZSB1cCB0d28g c3BhY2VzIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUNCj4gZnVuY3Rpb24NCj4gPiA+ID4+ICsj ICAgICAgICAgbmFtZQ0KPiA+ID4gPj4gK25sX2Z1bmNfY2FsbF9hcmdzX211bHRpX2xpbmUgICAg PSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIGFkZCBhIG5ld2xpbmUgYWZ0ZXIgZWFjaCAnLCcgaW4g YSBmdW5jdGlvbiBjYWxsIGlmICcoJw0KPiBhbmQNCj4gPiA+ICcpJw0KPiA+ID4gPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhcmUgaW4gZGlmZmVyZW50 IGxpbmVzLg0KPiA+ID4gPj4gK25sX2Z1bmNfY2FsbF9hcmdzX211bHRpX2xpbmVfaWdub3JlX2Ns b3N1cmVzID0gZmFsc2UNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsjIC0gSW5kZW50IGVhY2ggYXJn dW1lbnQgMiBzcGFjZXMgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIGZ1bmN0aW9uIG5hbWUuIElmIGEN Cj4gPiA+ID4+ICsjICAgZnVuY3Rpb24gaXMgY2FsbGVkIHRocm91Z2ggYSBzdHJ1Y3R1cmUgb3Ig dW5pb24gbWVtYmVyLCBvZiB0eXBlDQo+ID4gPiA+PiArIyAgIHBvaW50ZXItdG8tZnVuY3Rpb24s IHRoZW4gaW5kZW50IGVhY2ggYXJndW1lbnQgMiBzcGFjZXMgZnJvbSB0aGUgc3RhcnQgb2YgdGhl DQo+ID4gPiA+PiArIyAgIG1lbWJlciBuYW1lLg0KPiA+ID4gPj4gK2luZGVudF9mdW5jX2NhbGxf ZWRrMl9zdHlsZSAgICAgPSB0cnVlICAgICAgIyBVc2UgRURLMiBpbmRlbnRhdGlvbiBzdHlsZSBm b3IgZnVuY3Rpb24gY2FsbHMgICgqKkNVU1RPTSBTRVRUSU5HKiopDQo+ID4gPiA+PiAraW5kZW50 X3BhcmVuX2FmdGVyX2Z1bmNfY2FsbCAgICA9IHRydWUgICAgICAjIFdoZXRoZXIgdG8gaW5kZW50 IHRoZSBvcGVuIHBhcmVudGhlc2lzIG9mIGEgZnVuY3Rpb24gY2FsbCwgaWYgdGhlDQo+ID4gPiA+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHBhcmVudGhl c2lzIGlzIG9uIGl0cyBvd24gbGluZS4NCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsjIC0gQWxpZ24g dGhlIGNsb3NlIHBhcmVudGhlc2lzIHdpdGggdGhlIHN0YXJ0IG9mIHRoZSBsYXN0IGFyZ3VtZW50 DQo+ID4gPiA+PiAraW5kZW50X3BhcmVuX2Nsb3NlICAgICAgICAgICAgICA9IDAgICAgICAgICAj IEhvdyB0byBpbmRlbnQgYSBjbG9zZSBwYXJlbnRoZXNpcyBhZnRlciBhIG5ld2xpbmUuDQo+ID4g PiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICgwOiBC b2R5LCAxOiBPcGVucGFyZW50aGVzaXMsIDI6IEJyYWNlIGxldmVsKQ0KPiA+ID4gPj4gKw0KPiA+ ID4gPj4gKw0KPiA+ID4gPj4gKyMgNS4yLjIuNSBBbHdheXMgcHV0IHNwYWNlIGFmdGVyIGNvbW1h cyBvciBzZW1pY29sb25zIHRoYXQgc2VwYXJhdGUgaXRlbXMNCj4gPiA+ID4+ICtzcF9hZnRlcl9j b21tYSAgICAgICAgICAgICAgICAgID0gZm9yY2UgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBh ZnRlciAnLCcsIGkuZS4gJ2EsYicgdnMuICdhLCBiJy4NCj4gPiA+ID4+ICtzcF9iZWZvcmVfY29t bWEgICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZWZv cmUgJywnLg0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKyMgNS4yLjIuNiBBbHdheXMgcHV0IHNwYWNl IGJlZm9yZSBhbiBvcGVuIHBhcmVudGhlc2lzDQo+ID4gPiA+PiArc3BfYWZ0ZXJfc3BhcmVuICAg ICAgICAgICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYWZ0ZXIgJykn IG9mIGNvbnRyb2wgc3RhdGVtZW50cy4NCj4gPiA+ID4+ICtzcF9hdHRyaWJ1dGVfcGFyZW4gICAg ICAgICAgICAgID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuICdfX2F0 dHJpYnV0ZV9fJyBhbmQgJygnLg0KPiA+ID4gPj4gK3NwX2JlZm9yZV9zcGFyZW4gICAgICAgICAg ICAgICAgPSBmb3JjZSAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJlZm9yZSAnKCcgb2YgY29u dHJvbCBzdGF0ZW1lbnRzDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAjICgnaWYnLCAnZm9yJywgJ3N3aXRjaCcsICd3aGlsZScsIGV0Yy4pLg0K PiA+ID4gPj4gK3NwX2RlZmluZWRfcGFyZW4gICAgICAgICAgICAgICAgPSBmb3JjZSAgICAgIyBB ZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gJ2RlZmluZWQnIGFuZCAnKCcgaW4gJyNpZiBkZWZp bmVkDQo+IChGT08pJy4NCj4gPiA+ID4+ICtzcF9mdW5jX2NhbGxfcGFyZW4gICAgICAgICAgICAg ID0gZm9yY2UgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuIGZ1bmN0aW9uIG5hbWUg YW5kICcoJyBvbiBmdW5jdGlvbiBjYWxscy4NCj4gPiA+ID4+ICtzcF9mdW5jX2NhbGxfcGFyZW5f ZW1wdHkgICAgICAgID0gZm9yY2UgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuIGZ1 bmN0aW9uIG5hbWUgYW5kICcoKScgb24gZnVuY3Rpb24gY2FsbHMNCj4gPiA+ID4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgd2l0aG91dCBwYXJhbWV0ZXJz LiBJZiBzZXQgdG8gaWdub3JlICh0aGUgZGVmYXVsdCksDQo+IHNwX2Z1bmNfY2FsbF9wYXJlbg0K PiA+ID4gaXMNCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICMgdXNlZC4NCj4gPiA+ID4+ICtzcF9mdW5jX2RlZl9wYXJlbiAgICAgICAgICAgICAg ID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuIGFsaWFzIG5hbWUgYW5k ICcoJyBvZiBhIG5vbi1wb2ludGVyDQo+ID4gZnVuY3Rpb24NCj4gPiA+ID4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdHlwZSB0eXBlZGVmLg0KPiA+ID4g Pj4gK3NwX2Z1bmNfcHJvdG9fcGFyZW4gICAgICAgICAgICAgPSBhZGQgICAgICAgIyBBZGQgb3Ig cmVtb3ZlIHNwYWNlIGJldHdlZW4gZnVuY3Rpb24gbmFtZSBhbmQgJygpJyBvbiBmdW5jdGlvbg0K PiA+ID4gZGVjbGFyYXRpb24NCj4gPiA+ID4+ICtzcF9zaXplb2ZfcGFyZW4gICAgICAgICAgICAg ICAgID0gZm9yY2UgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuICdzaXplb2YnIGFu ZCAnKCcuDQo+ID4gPiA+PiArc3BfdHlwZV9mdW5jICAgICAgICAgICAgICAgICAgICA9IGFkZCAg ICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiByZXR1cm4gdHlwZSBhbmQgZnVuY3Rp b24gbmFtZS4gQSBtaW5pbXVtDQo+ID4gb2YNCj4gPiA+IDENCj4gPiA+ID4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaXMgZm9yY2VkIGV4Y2VwdCBmb3Ig cG9pbnRlciByZXR1cm4gdHlwZXMuDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArIyBOb3Qgc3BlY2lm aWVkLCBidXQgYWxzbyBnb29kIHN0eWxlIHRvIHJlbW92ZSBzcGFjZXMgaW5zaWRlIHBhcmVudGhl c2VzIChPcHRpb25hbCkNCj4gPiA+ID4+ICtzcF9jcGFyZW5fb3BhcmVuICAgICAgICAgICAgICAg ID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuIGJhY2stdG8tYmFjayBw YXJlbnRoZXNlcywgaS5lLiAnKSgnIHZzLg0KPiAnKQ0KPiA+ID4gKCcuDQo+ID4gPiA+PiArc3Bf aW5zaWRlX2ZwYXJlbiAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUg c3BhY2UgaW5zaWRlIGZ1bmN0aW9uICcoJyBhbmQgJyknLg0KPiA+ID4gPj4gK3NwX2luc2lkZV9m cGFyZW5zICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGlu c2lkZSBlbXB0eSBmdW5jdGlvbiAnKCknLg0KPiA+ID4gPj4gK3NwX2luc2lkZV9wYXJlbiAgICAg ICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGluc2lkZSAnKCcg YW5kICcpJy4NCj4gPiA+ID4+ICtzcF9pbnNpZGVfcGFyZW5fY2FzdCAgICAgICAgICAgID0gcmVt b3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZXMgaW5zaWRlIGNhc3QgcGFyZW50aGVzZXMuICco aW50KXgnDQo+ID4gPiA+PiArc3BfaW5zaWRlX3NxdWFyZSAgICAgICAgICAgICAgICA9IHJlbW92 ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgaW5zaWRlIGEgbm9uLWVtcHR5ICdbJyBhbmQgJ10n Lg0KPiA+ID4gPj4gK3NwX3BhcmVuX3BhcmVuICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAg IyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gbmVzdGVkIHBhcmVudGhlc2VzLCBpLmUuICco KCcgdnMuICcpICknLg0KPiA+ID4gPj4gK3NwX3NxdWFyZV9mcGFyZW4gICAgICAgICAgICAgICAg PSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gJ10nIGFuZCAnKCcgd2hl biBwYXJ0IG9mIGEgZnVuY3Rpb24NCj4gY2FsbC4NCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsjIDUu Mi4yLjcgUHV0IGEgc3BhY2UgYmVmb3JlIGFuIG9wZW4gYnJhY2UgaWYgaXQgaXMgbm90IG9uIGl0 cyBvd24gbGluZQ0KPiA+ID4gPj4gK3NwX2RvX2JyYWNlX29wZW4gICAgICAgICAgICAgICAgPSBm b3JjZSAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gJ2RvJyBhbmQgJ3snLg0KPiA+ ID4gPj4gK3NwX3BhcmVuX2JyYWNlICAgICAgICAgICAgICAgICAgPSBmb3JjZSAgICAgIyBBZGQg b3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gJyknIGFuZCAneycuDQo+ID4gPiA+PiArc3Bfc3BhcmVu X2JyYWNlICAgICAgICAgICAgICAgICA9IGZvcmNlICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2Ug YmV0d2VlbiAnKScgYW5kICd7JyBvZiBvZiBjb250cm9sIHN0YXRlbWVudHMuDQo+ID4gPiA+PiAr DQo+ID4gPiA+PiArIyA1LjIuMi44IERvIG5vdCBwdXQgc3BhY2VzIGFyb3VuZCBzdHJ1Y3R1cmUg bWVtYmVyIGFuZCBwb2ludGVyIG9wZXJhdG9ycw0KPiA+ID4gPj4gK3NwX2FmdGVyX2J5cmVmICAg ICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyIHJl ZmVyZW5jZSBzaWduICcmJywgaWYgZm9sbG93ZWQgYnkgYSB3b3JkLg0KPiA+ID4gPj4gK3NwX2Jl Zm9yZV9ieXJlZiAgICAgICAgICAgICAgICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIHNw YWNlIGJlZm9yZSBhIHJlZmVyZW5jZSBzaWduICcmJy4NCj4gPiA+ID4+ICtzcF9kZXJlZiAgICAg ICAgICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBhZnRl ciB0aGUgJyonIChkZXJlZmVyZW5jZSkgdW5hcnkgb3BlcmF0b3IuIFRoaXMNCj4gPiA+IGRvZXMN Cj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg bm90IGFmZmVjdCB0aGUgc3BhY2luZyBhZnRlciBhICcqJyB0aGF0IGlzIHBhcnQgb2YgYSB0eXBl Lg0KPiA+ID4gPj4gK3NwX21lbWJlciAgICAgICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAg IyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFyb3VuZCB0aGUgJy4nIG9yICctPicgb3BlcmF0b3JzLg0K PiA+ID4gPj4gKw0KPiA+ID4gPj4gKyMgNS4yLjIuOSBEbyBub3QgcHV0IHNwYWNlcyBiZWZvcmUg b3BlbiBicmFja2V0cyBvZiBhcnJheSBzdWJzY3JpcHRzDQo+ID4gPiA+PiArc3BfYmVmb3JlX3Nx dWFyZSAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmVm b3JlICdbJyAoZXhjZXB0ICdbXScpLg0KPiA+ID4gPj4gK3NwX2JlZm9yZV9zcXVhcmVzICAgICAg ICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJlZm9yZSAnW10nLg0K PiA+ID4gPj4gK3NwX2JlZm9yZV92YXJkZWZfc3F1YXJlICAgICAgICAgPSByZW1vdmUgICAgIyBB ZGQgb3IgcmVtb3ZlIHNwYWNlIGJlZm9yZSAnWycgZm9yIGEgdmFyaWFibGUgZGVmaW5pdGlvbi4N Cj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsjIDUuMi4yLjEwIFVzZSBleHRyYSBwYXJlbnRoZXNlcyBy YXRoZXIgdGhhbiBkZXBlbmRpbmcgb24gaW4tZGVwdGgga25vd2xlZGdlIG9mIHRoZSBvcmRlciBv ZiBwcmVjZWRlbmNlIG9mIEMNCj4gPiA+ID4+ICttb2RfZnVsbF9wYXJlbl9pZl9ib29sICAgICAg ICAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBmdWxseSBwYXJlbnRoZXNpemUgQm9vbGVhbiBl eHByZXNzaW9ucyBpbiAnd2hpbGUnIGFuZA0KPiAnaWYnDQo+ID4gPiA+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHN0YXRlbWVudCwgYXMgaW4gJ2lmIChh ICYmIGIgPiBjKScgPT4gJ2lmIChhICYmIChiID4gYykpJy4NCj4gPiA+ID4+ICsNCj4gPiA+ID4+ ICsjIDUuMi4yLjExIEFsaWduIGEgY29udGludWF0aW9uIGxpbmUgd2l0aCB0aGUgcGFydCBvZiB0 aGUgbGluZSB0aGF0IGl0IGNvbnRpbnVlcy4NCj4gPiA+ID4+ICt1c2VfaW5kZW50X2NvbnRpbnVl X29ubHlfb25jZSAgID0gdHJ1ZQ0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKyMgQWRkaXRpb25hbCAn e30nIGJyYWNpbmcgcnVsZXMgKE9wdGlvbmFsKQ0KPiA+ID4gPj4gKyMgTk9URSAtIFRoZSBzdHls ZSBndWlkZSBzcGVjaWZpZXMgdHdvIGRpZmZlcmVudCBzdHlsZXMgZm9yIGJyYWNlcywNCj4gPiA+ ID4+ICsjIHNvIHRoZXNlIGFyZSBpZ25vcmVkIGZvciBub3cgdG8gYWxsb3cgZGV2ZWxvcGVycyBz b21lIGZsZXhpYmlsaXR5Lg0KPiA+ID4gPj4gK25sX2FmdGVyX2JyYWNlX2Nsb3NlICAgICAgICAg ICAgPSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIGFkZCBhIG5ld2xpbmUgYWZ0ZXIgJ30nLiBEb2Vz IG5vdCBhcHBseSBpZiBmb2xsb3dlZCBieSBhDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIG5lY2Vzc2FyeSAnOycuDQo+ID4gPiA+PiArbmxf YnJhY2VfZWxzZSAgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUg bmV3bGluZSBiZXR3ZWVuICd9JyBhbmQgJ2Vsc2UnLg0KPiA+ID4gPj4gK25sX2JyYWNlX3doaWxl ICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0 d2VlbiAnfScgYW5kICd3aGlsZScgb2YgJ2RvJyBzdGF0ZW1lbnQuDQo+ID4gPiA+PiArbmxfZG9f YnJhY2UgICAgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3 bGluZSBiZXR3ZWVuICdkbycgYW5kICd7Jy4NCj4gPiA+ID4+ICtubF9lbHNlX2JyYWNlICAgICAg ICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4g J2Vsc2UnIGFuZCAneycuDQo+ID4gPiA+PiArbmxfZWxzZV9pZiAgICAgICAgICAgICAgICAgICAg ICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuICdlbHNlJyBhbmQg J2lmJy4NCj4gPiA+ID4+ICtubF9lbHNlaWZfYnJhY2UgICAgICAgICAgICAgICAgID0gcmVtb3Zl ICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gJ2Vsc2UgaWYnIGFuZCAneycuDQo+ ID4gPiA+PiArbmxfZW51bV9icmFjZSAgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFk ZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuICdlbnVtJyBhbmQgJ3snLg0KPiA+ID4gPj4gK25s X2ZjYWxsX2JyYWNlICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3Zl IG5ld2xpbmUgYmV0d2VlbiBhIGZ1bmN0aW9uIGNhbGwncyAnKScgYW5kICd7JywNCj4gPiA+ID4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYXMgaW4gJ2xp c3RfZm9yX2VhY2goaXRlbSwgJmxpc3QpIHsgfScuDQo+ID4gPiA+PiArbmxfZm9yX2JyYWNlICAg ICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3 ZWVuICdmb3InIGFuZCAneycuDQo+ID4gPiA+PiArbmxfaWZfYnJhY2UgICAgICAgICAgICAgICAg ICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuICdpZicgYW5k ICd7Jy4NCj4gPiA+ID4+ICtubF9zdHJ1Y3RfYnJhY2UgICAgICAgICAgICAgICAgID0gcmVtb3Zl ICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gJ3N0cnVjdCBhbmQgJ3snLg0KPiA+ ID4gPj4gK25sX3N3aXRjaF9icmFjZSAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQg b3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiAnc3dpdGNoJyBhbmQgJ3snLg0KPiA+ID4gPj4gK25s X3VuaW9uX2JyYWNlICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3Zl IG5ld2xpbmUgYmV0d2VlbiAndW5pb24nIGFuZCAneycuDQo+ID4gPiA+PiArbmxfd2hpbGVfYnJh Y2UgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBi ZXR3ZWVuICd3aGlsZScgYW5kICd7Jy4NCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsjIEFkZGl0aW9u YWwgd2hpdGVzcGFjZSBydWxlcyAoT3B0aW9uYWwpDQo+ID4gPiA+PiArc3BfYWZ0ZXJfcHRyX3N0 YXIgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYWZ0ZXIg cG9pbnRlciBzdGFyICcqJywgaWYgZm9sbG93ZWQgYnkgYSB3b3JkLg0KPiA+ID4gPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBVc2VmdWwgd2hlbiBwYWly ZWQgd2l0aCBhbGlnbl92YXJfZGVmX3N0YXJfc3R5bGU9PTINCj4gPiA+ID4+ICtzcF9hZnRlcl9w dHJfc3Rhcl9mdW5jICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBh ZnRlciBhIHBvaW50ZXIgc3RhciAnKicsIGlmIGZvbGxvd2VkIGJ5IGENCj4gPiBmdW5jdGlvbg0K PiA+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBw cm90b3R5cGUgb3IgZnVuY3Rpb24gZGVmaW5pdGlvbi4NCj4gPiA+ID4+ICtzcF9hZnRlcl9zZW1p ICAgICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBhZnRl ciAnOycsIGV4Y2VwdCB3aGVuIGZvbGxvd2VkIGJ5IGEgY29tbWVudC4NCj4gPiA+ID4+ICtzcF9i ZWZvcmVfY2FzZV9jb2xvbiAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBz cGFjZSBiZWZvcmUgY2FzZSAnOicuDQo+ID4gPiA+PiArc3BfYmVmb3JlX3B0cl9zdGFyICAgICAg ICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmVmb3JlIHBvaW50ZXIg c3RhciAnKicuDQo+ID4gPiA+PiArc3BfYmVmb3JlX3B0cl9zdGFyX2Z1bmMgICAgICAgICA9IGFk ZCAgICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmVmb3JlIGEgcG9pbnRlciBzdGFyICcqJywg aWYgZm9sbG93ZWQgYnkgYQ0KPiA+IGZ1bmN0aW9uDQo+ID4gPiA+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHByb3RvdHlwZSBvciBmdW5jdGlvbiBkZWZp bml0aW9uLg0KPiA+ID4gPj4gK3NwX2JlZm9yZV9zZW1pICAgICAgICAgICAgICAgICAgPSByZW1v dmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJlZm9yZSAnOycNCj4gPiA+ID4+ICtzcF9iZWZv cmVfc2VtaV9mb3IgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFj ZSBiZWZvcmUgJzsnIGluIG5vbi1lbXB0eSAnZm9yJyBzdGF0ZW1lbnRzLg0KPiA+ID4gPj4gK3Nw X2JlZm9yZV9zZW1pX2Zvcl9lbXB0eSAgICAgICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3Zl IHNwYWNlIGJlZm9yZSBhIHNlbWljb2xvbiBvZiBhbiBlbXB0eSBwYXJ0IG9mIGEgZm9yDQo+ID4g PiBzdGF0ZW1lbnQNCj4gPiA+ID4+ICtzcF9iZXR3ZWVuX3B0cl9zdGFyICAgICAgICAgICAgID0g cmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuIHBvaW50ZXIgc3RhcnMgJyon LiAoaWUsICdWT0lEICoqJykNCj4gPiA+ID4+ICtzcF9icmFjZV9jbG9zZV93aGlsZSAgICAgICAg ICAgID0gZm9yY2UgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuICd9JyBhbmQgJ3do aWxlJy4NCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICtzcF9hZnRlcl9jYXN0ICAgICAgICAgICAgICAg ICAgID0gcmVtb3ZlDQo+ID4gPiA+PiArc3BfYWZ0ZXJfdHlwZSAgICAgICAgICAgICAgICAgICA9 IGFkZA0KPiA+ID4gPj4gK3NwX2JhbGFuY2VfbmVzdGVkX3BhcmVucyAgICAgICAgPSBmYWxzZQ0K PiA+ID4gPj4gK3NwX2JlZm9yZV9ubF9jb250ICAgICAgICAgICAgICAgPSBhZGQNCj4gPiA+ID4+ ICtzcF9iZWZvcmVfc3F1YXJlX2FzbV9ibG9jayAgICAgID0gaWdub3JlDQo+ID4gPiA+PiArc3Bf YmVmb3JlX3VubmFtZWRfYnlyZWYgICAgICAgICA9IGFkZA0KPiA+ID4gPj4gK3NwX2JyYWNlX2Jy YWNlICAgICAgICAgICAgICAgICAgPSBpZ25vcmUNCj4gPiA+ID4+ICtzcF9icmFjZV9lbHNlICAg ICAgICAgICAgICAgICAgID0gZm9yY2UNCj4gPiA+ID4+ICtzcF9icmFjZV90eXBlZGVmICAgICAg ICAgICAgICAgID0gYWRkDQo+ID4gPiA+PiArc3BfY2FzZV9sYWJlbCAgICAgICAgICAgICAgICAg ICA9IGZvcmNlDQo+ID4gPiA+PiArc3BfY210X2NwcF9kb3h5Z2VuICAgICAgICAgICAgICA9IHRy dWUNCj4gPiA+ID4+ICtzcF9jb25kX2NvbG9uICAgICAgICAgICAgICAgICAgID0gYWRkDQo+ID4g PiA+PiArc3BfY29uZF9xdWVzdGlvbiAgICAgICAgICAgICAgICA9IGFkZA0KPiA+ID4gPj4gK3Nw X2NwcF9jYXN0X3BhcmVuICAgICAgICAgICAgICAgPSBmb3JjZQ0KPiA+ID4gPj4gK3NwX2Vsc2Vf YnJhY2UgICAgICAgICAgICAgICAgICAgPSBmb3JjZQ0KPiA+ID4gPj4gK3NwX2VuZGlmX2NtdCAg ICAgICAgICAgICAgICAgICAgPSBmb3JjZQ0KPiA+ID4gPj4gK3NwX2VudW1fYXNzaWduICAgICAg ICAgICAgICAgICAgPSBhZGQNCj4gPiA+ID4+ICtzcF9pbnNpZGVfYnJhY2VzICAgICAgICAgICAg ICAgID0gZm9yY2UNCj4gPiA+ID4+ICtzcF9pbnNpZGVfYnJhY2VzX2VtcHR5ICAgICAgICAgID0g Zm9yY2UNCj4gPiA+ID4+ICtzcF9pbnNpZGVfYnJhY2VzX2VudW0gICAgICAgICAgID0gZm9yY2UN Cj4gPiA+ID4+ICtzcF9pbnNpZGVfYnJhY2VzX3N0cnVjdCAgICAgICAgID0gZm9yY2UNCj4gPiA+ ID4+ICtzcF9wcF9jb25jYXQgICAgICAgICAgICAgICAgICAgID0gYWRkDQo+ID4gPiA+PiArc3Bf cHBfc3RyaW5naWZ5ICAgICAgICAgICAgICAgICA9IGFkZA0KPiA+ID4gPj4gK3NwX3JldHVybl9w YXJlbiAgICAgICAgICAgICAgICAgPSBhZGQNCj4gPiA+ID4+ICtzcF9zcGVjaWFsX3NlbWkgICAg ICAgICAgICAgICAgID0gZm9yY2UNCj4gPiA+ID4+ICtzcF93aGlsZV9wYXJlbl9vcGVuICAgICAg ICAgICAgID0gZm9yY2UNCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICsjIEFkZGl0aW9uYWwgSW5kZW50 YXRpb24gUnVsZXMNCj4gPiA+ID4+ICtpbmRlbnRfYWNjZXNzX3NwZWMgICAgICAgICAgICAgID0g MQ0KPiA+ID4gPj4gK2luZGVudF9hY2Nlc3Nfc3BlY19ib2R5ICAgICAgICAgPSBmYWxzZQ0KPiA+ ID4gPj4gK2luZGVudF9hbGlnbl9hc3NpZ24gICAgICAgICAgICAgPSB0cnVlDQo+ID4gPiA+PiAr aW5kZW50X2FsaWduX3N0cmluZyAgICAgICAgICAgICA9IHRydWUNCj4gPiA+ID4+ICtpbmRlbnRf Ym9vbF9wYXJlbiAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiA+ID4gPj4gK2luZGVudF9icmFjZV9w YXJlbnQgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+ID4gPj4gK2luZGVudF9icmFjZXMgICAgICAg ICAgICAgICAgICAgPSBmYWxzZQ0KPiA+ID4gPj4gK2luZGVudF9icmFjZXNfbm9fY2xhc3MgICAg ICAgICAgPSBmYWxzZQ0KPiA+ID4gPj4gK2luZGVudF9icmFjZXNfbm9fZnVuYyAgICAgICAgICAg PSB0cnVlDQo+ID4gPiA+PiAraW5kZW50X2JyYWNlc19ub19zdHJ1Y3QgICAgICAgICA9IGZhbHNl DQo+ID4gPiA+PiAraW5kZW50X2NsYXNzICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4g PiA+PiAraW5kZW50X2NsYXNzX2NvbG9uICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPiA+PiAr aW5kZW50X2NtdF93aXRoX3RhYnMgICAgICAgICAgICA9IGZhbHNlICAgICAgICAgIyBXaGV0aGVy IHRvIGluZGVudCBjb21tZW50cyB0aGF0IGFyZSBub3QgYXQgYSBicmFjZSBsZXZlbCB3aXRoDQo+ IHRhYnMNCj4gPiA+IG9uDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIyBhIHRhYnN0b3AuIFJlcXVpcmVzIGluZGVudF93aXRoX3RhYnM9 Mi4gSWYgZmFsc2UsIHdpbGwgdXNlDQo+IHNwYWNlcy4NCj4gPiA+ID4+ICtpbmRlbnRfY29sMV9j b21tZW50ICAgICAgICAgICAgID0gdHJ1ZQ0KPiA+ID4gPj4gK2luZGVudF9jb2wxX211bHRpX3N0 cmluZ19saXRlcmFsPSB0cnVlDQo+ID4gPiA+PiAraW5kZW50X2NvbW1hX3BhcmVuICAgICAgICAg ICAgICA9IHRydWUNCj4gPiA+ID4+ICtpbmRlbnRfZWxzZV9pZiAgICAgICAgICAgICAgICAgID0g dHJ1ZQ0KPiA+ID4gPj4gK2luZGVudF9leHRlcm4gICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0K PiA+ID4gPj4gK2luZGVudF9maXJzdF9ib29sX2V4cHIgICAgICAgICAgPSB0cnVlDQo+ID4gPiA+ PiArDQo+ID4gPiA+PiAraW5kZW50X2Z1bmNfZGVmX3BhcmFtX3BhcmVuX3Bvc190aHJlc2hvbGQg PSAwDQo+ID4gPiA+PiAraW5kZW50X2Z1bmNfcGFyYW1fZG91YmxlICAgICAgICAgICAgICAgICAg PSBmYWxzZQ0KPiA+ID4gPj4gK2luZGVudF9mdW5jX3Byb3RvX3BhcmFtICAgICAgICAgICAgICAg ICAgID0gdHJ1ZQ0KPiA+ID4gPj4gK2luZGVudF9pZ25vcmVfYXNtX2Jsb2NrICAgICAgICAgICAg ICAgICAgID0gdHJ1ZQ0KPiA+ID4gPj4gK2luZGVudF9sYWJlbCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgID0gMQ0KPiA+ID4gPj4gK2luZGVudF9tZW1iZXIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgID0gMg0KPiA+ID4gPj4gK2luZGVudF9uYW1lc3BhY2UgICAgICAgICAgICAgICAg ICAgICAgICAgID0gZmFsc2UNCj4gPiA+ID4+ICtpbmRlbnRfcGFyYW0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA9IDINCj4gPiA+ID4+ICtpbmRlbnRfcGFyZW5fbmwgICAgICAgICAgICAg ICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPiA+PiAraW5kZW50X3BhcmVuX29wZW5fYnJhY2Ug ICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+ID4gPj4gK2luZGVudF9wcmVzZXJ2ZV9zcWwg ICAgICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+ID4+ICtpbmRlbnRfcmVsYXRpdmVf c2luZ2xlX2xpbmVfY29tbWVudHMgICAgICA9IGZhbHNlDQo+ID4gPiA+PiAraW5kZW50X3Npbmdf bGluZV9jb21tZW50cyAgICAgICAgICAgICAgICAgPSAwDQo+ID4gPiA+PiAraW5kZW50X3Npbmds ZV9uZXdsaW5lcyAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+ID4gPj4gK2luZGVudF9z cXVhcmVfbmwgICAgICAgICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+ID4+ICtpbmRl bnRfc3dpdGNoX2Nhc2UgICAgICAgICAgICAgICAgICAgICAgICA9IDINCj4gPiA+ID4+ICtpbmRl bnRfdGVtcGxhdGVfcGFyYW0gICAgICAgICAgICAgICAgICAgICA9IHRydWUNCj4gPiA+ID4+ICtp bmRlbnRfdmFyX2RlZl9ibGsgICAgICAgICAgICAgICAgICAgICAgICA9IDANCj4gPiA+ID4+ICtp bmRlbnRfdmFyX2RlZl9jb250ICAgICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPiA+ PiArDQo+ID4gPiA+PiArIyBUaWR5LXVwIHJ1bGVzIChPcHRpb25hbCkNCj4gPiA+ID4+ICttb2Rf bW92ZV9jYXNlX2JyZWFrICAgICAgICAgICAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBtb3Zl IGEgJ2JyZWFrJyB0aGF0IGFwcGVhcnMgYWZ0ZXIgYSBmdWxseSBicmFjZWQgJ2Nhc2UnDQo+ID4g PiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGJlZm9y ZSB0aGUgY2xvc2UgYnJhY2UsIGFzIGluICdjYXNlIFg6IHsgLi4uIH0gYnJlYWs7JyA9Pg0KPiA+ ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAnY2Fz ZSBYOiB7IC4uLiBicmVhazsgfScuDQo+ID4gPiA+PiArbW9kX3Bhd25fc2VtaWNvbG9uICAgICAg ICAgICAgICA9IGZhbHNlDQo+ID4gPiA+PiArbW9kX3JlbW92ZV9lbXB0eV9yZXR1cm4gICAgICAg ICA9IGZhbHNlICAgICAjIFdoZXRoZXIgdG8gcmVtb3ZlIGEgdm9pZCAncmV0dXJuOycgdGhhdCBh cHBlYXJzIGFzIHRoZSBsYXN0DQo+IHN0YXRlbWVudA0KPiA+ID4gPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpbiBhIGZ1bmN0aW9uLg0KPiA+ID4gPj4g K21vZF9yZW1vdmVfZXh0cmFfc2VtaWNvbG9uICAgICAgPSB0cnVlDQo+ID4gPiA+PiArbW9kX3Nv cnRfaW1wb3J0ICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPiA+PiArbW9kX3NvcnRfaW5j bHVkZSAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPiA+PiArbW9kX3NvcnRfdXNpbmcgICAg ICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPiA+PiArbmxfYWZ0ZXJfY2FzZSAgICAgICAgICAg ICAgICAgICA9IGZhbHNlICAgICAjIFdoZXRoZXIgdG8gYWRkIGEgbmV3bGluZSBhZnRlciBhICdj YXNlJyBzdGF0ZW1lbnQuDQo+ID4gPiA+PiArbmxfZW5kX29mX2ZpbGUgICAgICAgICAgICAgICAg ICA9IGZvcmNlICAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBhdCB0aGUgZW5kIG9mIHRoZSBm aWxlLg0KPiA+ID4gPj4gK25sX2VuZF9vZl9maWxlX21pbiAgICAgICAgICAgICAgPSAxICAgICAg ICAgIyBUaGUgbWluaW11bSBudW1iZXIgb2YgbmV3bGluZXMgYXQgdGhlIGVuZCBvZiB0aGUgZmls ZQ0KPiA+ID4gPj4gK25sX21heCAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyICAgICAgICAg IyBUaGUgbWF4aW11bSBudW1iZXIgb2YgY29uc2VjdXRpdmUgbmV3bGluZXMgKDMgPSAyIGJsYW5r IGxpbmVzKS4NCj4gPiA+ID4+ICtubF9zdGFydF9vZl9maWxlICAgICAgICAgICAgICAgID0gcmVt b3ZlICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lcyBhdCB0aGUgc3RhcnQgb2YgdGhlIGZpbGUu DQo+ID4gPiA+PiArDQo+ID4gPiA+PiArIyBDb2RlIGFsaWdubWVudCBydWxlcyAoT3B0aW9uYWwp DQo+ID4gPiA+PiArYWxpZ25fYXNtX2NvbG9uICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4g PiA+PiArYWxpZ25fYXNzaWduX3NwYW4gICAgICAgICAgICAgICA9IDEgICAgICAgICAjIFRoZSBz cGFuIGZvciBhbGlnbmluZyBvbiAnPScgaW4gYXNzaWdubWVudHMuDQo+ID4gPiA+PiArYWxpZ25f YXNzaWduX3RocmVzaCAgICAgICAgICAgICA9IDQNCj4gPiA+ID4+ICthbGlnbl9lZGsyX3N0eWxl ICAgICAgICAgICAgICAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBhcHBseSBlZGsyLXNwZWNp ZmljIGFsaWdubWVudCBmb3JtYXR0aW5nDQo+ID4gPiA+PiArYWxpZ25fZW51bV9lcXVfc3BhbiAg ICAgICAgICAgICA9IDEgICAgICAgICAjIFRoZSBzcGFuIGZvciBhbGlnbmluZyBvbiAnPScgaW4g ZW51bXMuDQo+ID4gPiA+PiArYWxpZ25fZnVuY19wYXJhbXMgICAgICAgICAgICAgICA9IHRydWUg ICAgICAjIFdoZXRoZXIgdG8gYWxpZ24gdmFyaWFibGUgZGVmaW5pdGlvbnMgaW4gcHJvdG90eXBl cyBhbmQgZnVuY3Rpb25zLg0KPiA+ID4gPj4gK2FsaWduX2Z1bmNfcGFyYW1zX2dhcCAgICAgICAg ICAgPSAyDQo+ID4gPiA+PiArYWxpZ25fZnVuY19wYXJhbXNfc3BhbiAgICAgICAgICA9IDIgICAg ICAgICAjIFRoZSBzcGFuIGZvciBhbGlnbmluZyBwYXJhbWV0ZXIgZGVmaW5pdGlvbnMgaW4gZnVu Y3Rpb24gb24gcGFyYW1ldGVyDQo+ID4gPiBuYW1lLg0KPiA+ID4gPj4gK2FsaWduX2Z1bmNfcGFy YW1zX3RocmVzaCAgICAgICAgPSAwDQo+ID4gPiA+PiArYWxpZ25fZnVuY19wcm90b19zcGFuICAg ICAgICAgICA9IDANCj4gPiA+ID4+ICthbGlnbl9rZWVwX3RhYnMgICAgICAgICAgICAgICAgID0g ZmFsc2UNCj4gPiA+ID4+ICthbGlnbl9sZWZ0X3NoaWZ0ICAgICAgICAgICAgICAgID0gZmFsc2UN Cj4gPiA+ID4+ICthbGlnbl9taXhfdmFyX3Byb3RvICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+ ID4+ICthbGlnbl9ubF9jb250ICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+ID4+ICth bGlnbl9vY19kZWNsX2NvbG9uICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+ID4+ICthbGlnbl9v bl9vcGVyYXRvciAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+ID4+ICthbGlnbl9vbl90YWJz dG9wICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+ID4+ICthbGlnbl9wcF9kZWZpbmVfZ2Fw ICAgICAgICAgICAgID0gMg0KPiA+ID4gPj4gK2FsaWduX3BwX2RlZmluZV9zcGFuICAgICAgICAg ICAgPSAxDQo+ID4gPiA+PiArYWxpZ25fcmlnaHRfY210X2F0X2NvbCAgICAgICAgICA9IDAgICAg ICAgICAjIEFsaWduIHRyYWlsaW5nIGNvbW1lbnQgYXQgb3IgYmV5b25kIGNvbHVtbiBOOyAncHVs bHMgaW4nIGNvbW1lbnRzIGFzDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAjIGEgYm9udXMgc2lkZSBlZmZlY3QgKDA9aWdub3JlKQ0KPiA+ID4g Pj4gK2FsaWduX3JpZ2h0X2NtdF9nYXAgICAgICAgICAgICAgPSAwICAgICAgICAgIyBJZiBhIHRy YWlsaW5nIGNvbW1lbnQgaXMgbW9yZSB0aGFuIHRoaXMgbnVtYmVyIG9mIGNvbHVtbnMgYXdheSBm cm9tDQo+ID4gdGhlDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjIHRleHQgaXQgZm9sbG93cywNCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaXQgd2lsbCBxdWFsaWZ5IGZvciBiZWluZyBh bGlnbmVkLiBUaGlzIGhhcyB0byBiZSA+IDAgdG8gZG8NCj4gYW55dGhpbmcuDQo+ID4gPiA+PiAr YWxpZ25fcmlnaHRfY210X21peCAgICAgICAgICAgICA9IGZhbHNlICAgICAjIElmIGFsaWduaW5n IGNvbW1lbnRzLCBtaXggd2l0aCBjb21tZW50cyBhZnRlciAnfScgYW5kICNlbmRpZiB3aXRoDQo+ IGxlc3MNCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICMgdGhhbiAzIHNwYWNlcyBiZWZvcmUgdGhlIGNvbW1lbnQNCj4gPiA+ID4+ICthbGlnbl9y aWdodF9jbXRfc2FtZV9sZXZlbCAgICAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBvbmx5IGFs aWduIHRyYWlsaW5nIGNvbW1lbnRzIHRoYXQgYXJlIGF0IHRoZSBzYW1lIGJyYWNlDQo+ID4gPiBs ZXZlbC4NCj4gPiA+ID4+ICthbGlnbl9yaWdodF9jbXRfc3BhbiAgICAgICAgICAgID0gMiAgICAg ICAgICMgVGhlIHNwYW4gZm9yIGFsaWduaW5nIGNvbW1lbnRzIHRoYXQgZW5kIGxpbmVzLg0KPiA+ ID4gPj4gK2FsaWduX3NhbWVfZnVuY19jYWxsX3BhcmFtcyAgICAgPSBmYWxzZQ0KPiA+ID4gPj4g K2FsaWduX3NpbmdsZV9saW5lX2JyYWNlICAgICAgICAgPSB0cnVlDQo+ID4gPiA+PiArYWxpZ25f c2luZ2xlX2xpbmVfZnVuYyAgICAgICAgICA9IHRydWUNCj4gPiA+ID4+ICthbGlnbl9zdHJ1Y3Rf aW5pdF9zcGFuICAgICAgICAgID0gMSAgICAgICAgICMgVGhlIHNwYW4gZm9yIGFsaWduaW5nIHN0 cnVjdCBpbml0aWFsaXplciB2YWx1ZXMuDQo+ID4gPiA+PiArYWxpZ25fdHlwZWRlZl9hbXBfc3R5 bGUgICAgICAgICA9IDENCj4gPiA+ID4+ICthbGlnbl90eXBlZGVmX2Z1bmMgICAgICAgICAgICAg ID0gMSAgICAgICAgICMgSG93IHRvIGFsaWduIHR5cGVkZWYnZCBmdW5jdGlvbnMgd2l0aCBvdGhl ciB0eXBlZGVmcy4NCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICMgKDA6IE5vIGFsaWduLCAxOiBBbGlnbiBvcGVuIHBhcmFudGhlc2lzLCAyOiBB bGlnbiBmdW5jdGlvbiB0eXBlDQo+IG5hbWUpDQo+ID4gPiA+PiArYWxpZ25fdHlwZWRlZl9nYXAg ICAgICAgICAgICAgICA9IDINCj4gPiA+ID4+ICthbGlnbl90eXBlZGVmX3NwYW4gICAgICAgICAg ICAgID0gMSAgICAgICAgICMgVGhlIHNwYW4gZm9yIGFsaWduaW5nIHNpbmdsZS1saW5lIHR5cGVk ZWZzLg0KPiA+ID4gPj4gK2FsaWduX3R5cGVkZWZfc3Rhcl9zdHlsZSAgICAgICAgPSAxDQo+ID4g PiA+PiArYWxpZ25fdmFyX2RlZl9hbXBfc3R5bGUgICAgICAgICA9IDENCj4gPiA+ID4+ICthbGln bl92YXJfZGVmX2F0dHJpYnV0ZSAgICAgICAgID0gdHJ1ZQ0KPiA+ID4gPj4gK2FsaWduX3Zhcl9k ZWZfY29sb24gICAgICAgICAgICAgPSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIGFsaWduIHRoZSBj b2xvbiBpbiBzdHJ1Y3QgYml0IGZpZWxkcy4NCj4gPiA+ID4+ICthbGlnbl92YXJfZGVmX2dhcCAg ICAgICAgICAgICAgID0gMiAgICAgICAgICMgVGhlIGdhcCAobWluaW11bSBzcGFjaW5nIGZvciBh bGlnbmVkIGl0ZW1zKSBmb3IgdmFyaWFibGUNCj4gZGVmaW5pdGlvbnMuDQo+ID4gPiA+PiArYWxp Z25fdmFyX2RlZl9pbmxpbmUgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPiA+PiArYWxpZ25fdmFy X2RlZl9zcGFuICAgICAgICAgICAgICA9IDEgICAgICAgICAjIFRoZSBzcGFuIChsaW5lcyBuZWVk ZWQgdG8gYWxpZ24pIGZvciBhbGlnbmluZyB2YXJpYWJsZSBkZWZpbml0aW9ucy4NCj4gPiA+ID4+ ICthbGlnbl92YXJfZGVmX3N0YXJfc3R5bGUgICAgICAgID0gMSAgICAgICAgICMgSG93IHRvIGNv bnNpZGVyIChvciB0cmVhdCkgdGhlICcqJyBpbiB0aGUgYWxpZ25tZW50IG9mIHZhcmlhYmxlDQo+ ID4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGRl ZmluaXRpb25zLg0KPiA+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIyAwOiBQYXJ0IG9mIHRoZSB0eXBlICAgICAndm9pZCAqICAgZm9vOycgKGRlZmF1 bHQpDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjIDE6IFBhcnQgb2YgdGhlIHZhcmlhYmxlICd2b2lkICAgICAqZm9vOycNCj4gPiA+ID4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgMjogRGFuZ2xpbmcg ICAgICAgICAgICAgJ3ZvaWQgICAgKmZvbzsnDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIChOb3RlIC0gc2hvdWxkIGFsc28gc2V0IHNwX2Fm dGVyX3B0cl9zdGFyPXJlbW92ZSkNCj4gPiA+ID4+ICthbGlnbl92YXJfc3RydWN0X2dhcCAgICAg ICAgICAgID0gNA0KPiA+ID4gPj4gK2FsaWduX3Zhcl9zdHJ1Y3Rfc3BhbiAgICAgICAgICAgPSA4 ICAgICAgICAgIyBUaGUgc3BhbiBmb3IgYWxpZ25pbmcgc3RydWN0L3VuaW9uIG1lbWJlciBkZWZp bml0aW9ucy4NCj4gPiA+ID4+ICthbGlnbl92YXJfc3RydWN0X3RocmVzaCAgICAgICAgID0gMA0K PiA+ID4gPj4gK2FsaWduX3dpdGhfdGFicyAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+ID4g Pj4gKw0KPiA+ID4gPj4gKyMgQ29tbWVudCBmb3JtYXR0aW5nDQo+ID4gPiA+PiArY210X2FsaWdu X2RveHlnZW5famF2YWRvY190YWdzICA9IHRydWUgICAgICAjIFdoZXRoZXIgdG8gYWxpZ24gZG94 eWdlbiBqYXZhZG9jLXN0eWxlIHRhZ3MgKCdAcGFyYW0nLCAnQHJldHVybicsDQo+ID4gZXRjLikN Cj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg VE9ETzogRWF0cyAnWycgaW4gJ1tpbl0nDQo+ID4gPiA+PiArY210X2NfZ3JvdXAgICAgICAgICAg ICAgICAgICAgICA9IGZhbHNlDQo+ID4gPiA+PiArY210X2NfbmxfZW5kICAgICAgICAgICAgICAg ICAgICA9IHRydWUgICAgICAjIFdoZXRoZXIgdG8gYWRkIGEgbmV3bGluZSBiZWZvcmUgdGhlIGNs b3NpbmcgJyovJyBvZiB0aGUgY29tYmluZWQgYy0NCj4gPiA+IGNvbW1lbnQuDQo+ID4gPiA+PiAr Y210X2Nfbmxfc3RhcnQgICAgICAgICAgICAgICAgICA9IHRydWUNCj4gPiA+ID4+ICtjbXRfY3Bw X2dyb3VwICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+ID4+ICtjbXRfY3BwX25sX2Vu ZCAgICAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiA+ID4gPj4gK2NtdF9jcHBfbmxfc3RhcnQgICAg ICAgICAgICAgICAgPSB0cnVlDQo+ID4gPiA+PiArY210X2NwcF90b19jICAgICAgICAgICAgICAg ICAgICA9IGZhbHNlDQo+ID4gPiA+PiArY210X2luZGVudF9tdWx0aSAgICAgICAgICAgICAgICA9 IGZhbHNlICAgICAjIFdoZXRoZXIgdG8gYXBwbHkgY2hhbmdlcyB0byBtdWx0aS1saW5lIGNvbW1l bnRzLCBpbmNsdWRpbmcNCj4gY210X3dpZHRoLA0KPiA+ID4gPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBrZXl3b3JkIHN1YnN0aXR1dGlvbiBhbmQgbGVh ZGluZyBjaGFycy4NCj4gPiA+ID4+ICtjbXRfaW5zZXJ0X2JlZm9yZV9wcmVwcm9jICAgICAgID0g ZmFsc2UNCj4gPiA+ID4+ICtjbXRfaW5zZXJ0X2ZpbGVfaGVhZGVyICAgICAgICAgID0gZGVmYXVs dF9maWxlX2hlYWRlci50eHQNCj4gPiA+ID4+ICtjbXRfaW5zZXJ0X2Z1bmNfaGVhZGVyICAgICAg ICAgID0gZGVmYXVsdF9mdW5jdGlvbl9oZWFkZXIudHh0DQo+ID4gPiA+PiArY210X211bHRpX2No ZWNrX2xhc3QgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPiA+PiArY210X211bHRpX2ZpcnN0X2xl bl9taW5pbXVtICAgICA9IDINCj4gPiA+ID4+ICtjbXRfcmVmbG93X21vZGUgICAgICAgICAgICAg ICAgID0gMSAgICAgICAgICMgSG93IHRvIHJlZmxvdyBjb21tZW50cy4NCj4gPiA+ID4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKDA6Tm8gcmVmbG93LCAx Ok5vIHRvdWNoaW5nIGF0IGFsbCwgMjogRnVsbCByZWZsb3cpDQo+ID4gPiA+PiArY210X3NwX2Fm dGVyX3N0YXJfY29udCAgICAgICAgICA9IDAgICAgICAgICAjIFRoZSBudW1iZXIgb2Ygc3BhY2Vz IHRvIGluc2VydCBhZnRlciB0aGUgc3RhciBvbiBzdWJzZXF1ZW50IGNvbW1lbnQNCj4gPiA+IGxp bmVzLg0KPiA+ID4gPj4gK2NtdF9zcF9iZWZvcmVfc3Rhcl9jb250ICAgICAgICAgPSAwICAgICAg ICAgIyBUaGUgbnVtYmVyIG9mIHNwYWNlcyB0byBpbnNlcnQgYXQgdGhlIHN0YXJ0IG9mIHN1YnNl cXVlbnQgY29tbWVudA0KPiA+IGxpbmVzLg0KPiA+ID4gPj4gK2NtdF9zdGFyX2NvbnQgICAgICAg ICAgICAgICAgICAgPSBmYWxzZSAgICAgIyBXaGV0aGVyIHRvIHB1dCBhIHN0YXIgb24gc3Vic2Vx dWVudCBjb21tZW50IGxpbmVzLg0KPiA+ID4gPj4gK2NtdF93aWR0aCAgICAgICAgICAgICAgICAg ICAgICAgPSAxMjAgICAgICAgIyBUcnkgdG8gd3JhcCBjb21tZW50cyBhdCBOIGNvbHVtbnMuDQo+ ID4gPiA+PiArc3BfY210X2NwcF9zdGFydCAgICAgICAgICAgICAgICA9IGFkZCAgICAgICAjIEFk ZCBvciByZW1vdmUgc3BhY2UgYWZ0ZXIgdGhlIG9wZW5pbmcgb2YgYSBDKysgY29tbWVudCwgYXMg aW4NCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICMgJy8vIDxoZXJlPiBBJy4gIE5PVEU6IEJyZWFrcyBpbmRlbnRhdGlvbiB3aXRoaW4gY29tbWVu dHMuDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArIyBGdW5jdGlvbiBkZWZpbml0aW9ucyAvIGRlY2xh cmF0aW9ucw0KPiA+ID4gPj4gK2luZGVudF9mdW5jX2NhbGxfcGFyYW0gICAgICAgICAgPSBmYWxz ZSAgICAgIyBXaGV0aGVyIHRvIGluZGVudCBjb250aW51ZWQgZnVuY3Rpb24gY2FsbCBwYXJhbWV0 ZXJzIG9uZSBpbmRlbnQNCj4gbGV2ZWwsDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjIHJhdGhlciB0aGFuIGFsaWduaW5nIHBhcmFtZXRlcnMg dW5kZXIgdGhlIG9wZW4gcGFyZW50aGVzaXMuDQo+ID4gPiA+PiAraW5kZW50X2Z1bmNfY2xhc3Nf cGFyYW0gICAgICAgICA9IGZhbHNlICAgICAjIFdoZXRoZXIgdG8gaW5kZW50IGNvbnRpbnVlZCBm dW5jdGlvbiBjYWxsIGRlY2xhcmF0aW9uIG9uZSBpbmRlbnQNCj4gPiBsZXZlbCwNCj4gPiA+ID4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcmF0aGVyIHRo YW4gYWxpZ25pbmcgcGFyYW1ldGVycyB1bmRlciB0aGUgb3BlbiBwYXJlbnRoZXNpcy4NCj4gPiA+ ID4+ICtpbmRlbnRfZnVuY19jdG9yX3Zhcl9wYXJhbSAgICAgID0gZmFsc2UgICAgICMgV2hldGhl ciB0byBpbmRlbnQgY29udGludWVkIGNsYXNzIHZhcmlhYmxlIGNvbnN0cnVjdG9ycyBvbmUgaW5k ZW50DQo+ID4gPiBsZXZlbCwNCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICMgcmF0aGVyIHRoYW4gYWxpZ25pbmcgcGFyYW1ldGVycyB1bmRlciB0 aGUgb3BlbiBwYXJlbnRoZXNpcy4NCj4gPiA+ID4+ICtpbmRlbnRfZnVuY19kZWZfcGFyYW0gICAg ICAgICAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBpbmRlbnQgY29udGludWVkIGZ1bmN0aW9u IGRlZmluaXRpb24gcGFyYW1ldGVycyBvbmUNCj4gaW5kZW50DQo+ID4gPiA+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGxldmVsLCByYXRoZXIgdGhhbiBh bGlnbmluZyBwYXJhbWV0ZXJzIHVuZGVyIHRoZSBvcGVuIHBhcmVudGhlc2lzLg0KPiA+ID4gPj4g K25sX2ZkZWZfYnJhY2UgICAgICAgICAgICAgICAgICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVt b3ZlIG5ld2xpbmUgYmV0d2VlbiBmdW5jdGlvbiBzaWduYXR1cmUgYW5kICd7Jy4NCj4gPiA+ID4+ ICtubF9mdW5jX2NhbGxfZW5kX211bHRpX2xpbmUgICAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0 byBhZGQgYSBuZXdsaW5lIGJlZm9yZSAnKScgaW4gYSBmdW5jdGlvbiBjYWxsIGlmICcoJyBhbmQN Cj4gJyknDQo+ID4gPiBhcmUNCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICMgaW4gZGlmZmVyZW50IGxpbmVzLg0KPiA+ID4gPj4gK25sX2Z1bmNf Y2FsbF9wYXJlbiAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xp bmUgYmV0d2VlbiBhIGZ1bmN0aW9uIG5hbWUgYW5kIHRoZSBvcGVuaW5nICcoJyBpbg0KPiA+IHRo ZQ0KPiA+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IyBjYWxsLg0KPiA+ID4gPj4gK25sX2Z1bmNfY2FsbF9zdGFydF9tdWx0aV9saW5lICAgPSB0cnVl ICAgICAgIyBXaGV0aGVyIHRvIGFkZCBhIG5ld2xpbmUgYWZ0ZXIgJygnIGluIGEgZnVuY3Rpb24g Y2FsbCBpZiAnKCcgYW5kICcpJw0KPiA+IGFyZQ0KPiA+ID4gPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpbiBkaWZmZXJlbnQgbGluZXMuDQo+ID4gPiA+ PiArbmxfZnVuY19kZWNsX2FyZ3MgICAgICAgICAgICAgICA9IGZvcmNlICAgICAjIEFkZCBvciBy ZW1vdmUgbmV3bGluZSBhZnRlciBlYWNoICcsJyBpbiBhIGZ1bmN0aW9uIGRlY2xhcmF0aW9uLg0K PiA+ID4gPj4gK25sX2Z1bmNfZGVjbF9lbXB0eSAgICAgICAgICAgICAgPSBhZGQgICAgICAgIyBB ZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiAnKCknIGluIGEgZnVuY3Rpb24gZGVjbGFyYXRp b24uDQo+ID4gPiA+PiArbmxfZnVuY19kZWZfYXJncyAgICAgICAgICAgICAgICA9IGZvcmNlICAg ICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBhZnRlciBlYWNoICcsJyBpbiBhIGZ1bmN0aW9uIGRl ZmluaXRpb24uDQo+ID4gPiA+PiArbmxfZnVuY19kZWZfZW1wdHkgICAgICAgICAgICAgICA9IGFk ZCAgICAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuICcoKScgaW4gYSBmdW5jdGlv biBkZWZpbml0aW9uLg0KPiA+ID4gPj4gK25sX2Z1bmNfZGVmX3BhcmVuICAgICAgICAgICAgICAg PSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiBhIGZ1bmN0aW9uIG5h bWUgYW5kIHRoZSBvcGVuaW5nICcoJw0KPiA+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIyBpbiB0aGUgZGVmaW5pdGlvbi4NCj4gPiA+ID4+ICtubF9m dW5jX3BhcmVuICAgICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBu ZXdsaW5lIGJldHdlZW4gYSBmdW5jdGlvbiBuYW1lIGFuZCB0aGUgb3BlbmluZyAnKCcgaW4NCj4g PiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdGhl IGRlY2xhcmF0aW9uLg0KPiA+ID4gPj4gK25sX2Z1bmNfdHlwZV9uYW1lICAgICAgICAgICAgICAg PSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiByZXR1cm4gdHlwZSBh bmQgZnVuY3Rpb24gbmFtZSBpbiBhDQo+ID4gPiBmdW5jdGlvbg0KPiA+ID4gPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBkZWZpbml0aW9uLg0KPiA+ID4g Pj4gK3NwX2ZwYXJlbl9icmFjZSAgICAgICAgICAgICAgICAgPSBmb3JjZSAgICAgIyBBZGQgb3Ig cmVtb3ZlIHNwYWNlIGJldHdlZW4gJyknIGFuZCAneycgb2YgZnVuY3Rpb24uDQo+ID4gPiA+PiAr dXNlX2luZGVudF9mdW5jX2NhbGxfcGFyYW0gICAgICA9IHRydWUgICAgICAjIGluZGVudF9mdW5j X2NhbGxfcGFyYW0gd2lsbCBiZSB1c2VkDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArIyBBZGRpdGlv bmFsIE5ld2xpbmUgUnVsZXMNCj4gPiA+ID4+ICtubF9hZnRlcl9icmFjZV9vcGVuICAgICAgICAg ICAgICAgICAgICAgICAgICA9IHRydWUgICAgICMgV2hldGhlciB0byBhZGQgYSBuZXdsaW5lIGFm dGVyICd7Jy4gVGhpcyBhbHNvIGFkZHMgYQ0KPiA+IG5ld2xpbmUNCj4gPiA+ID4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYmVmb3Jl IHRoZSBtYXRjaGluZyAnfScuDQo+ID4gPiA+PiArbmxfYWZ0ZXJfYnJhY2Vfb3Blbl9jbXQgICAg ICAgICAgICAgICAgICAgICAgPSB0cnVlICAgICAjIFdoZXRoZXIgdG8gYWRkIGEgbmV3bGluZSBi ZXR3ZWVuIHRoZSBvcGVuIGJyYWNlIGFuZCBhDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHRyYWlsaW5nIHNpbmdsZS1s aW5lIGNvbW1lbnQuDQo+ID4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjIFJlcXVpcmVzIG5sX2FmdGVyX2JyYWNlX29wZW4gPSB0 cnVlLg0KPiA+ID4gPj4gK25sX2FmdGVyX2RvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgID0gYWRkICAgICAgIyBBZGQgb3IgcmVtb3ZlIGJsYW5rIGxpbmUgYWZ0ZXIgJ2RvL3doaWxl JyBzdGF0ZW1lbnQuDQo+ID4gPiA+PiArbmxfYWZ0ZXJfZm9yICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPSBhZGQgICAgICAjIEFkZCBvciByZW1vdmUgYmxhbmsgbGluZSBhZnRlciAn Zm9yJyBzdGF0ZW1lbnQuDQo+ID4gPiA+PiArbmxfYWZ0ZXJfZnVuY19ib2R5ICAgICAgICAgICAg ICAgICAgICAgICAgICAgPSAyICAgICAgICAjIFRoZSBudW1iZXIgb2YgbmV3bGluZXMgYWZ0ZXIg J30nIG9mIGEgbXVsdGktbGluZQ0KPiBmdW5jdGlvbg0KPiA+ID4gYm9keQ0KPiA+ID4gPj4gK25s X2FmdGVyX2Z1bmNfYm9keV9vbmVfbGluZXIgICAgICAgICAgICAgICAgID0gMg0KPiA+ID4gPj4g K25sX2FmdGVyX2Z1bmNfcHJvdG8gICAgICAgICAgICAgICAgICAgICAgICAgID0gMg0KPiA+ID4g Pj4gK25sX2FmdGVyX2Z1bmNfcHJvdG9fZ3JvdXAgICAgICAgICAgICAgICAgICAgID0gMg0KPiA+ ID4gPj4gK25sX2FmdGVyX2lmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gYWRk DQo+ID4gPiA+PiArbmxfYWZ0ZXJfbXVsdGlsaW5lX2NvbW1lbnQgICAgICAgICAgICAgICAgICAg PSBmYWxzZQ0KPiA+ID4gPj4gK25sX2FmdGVyX3JldHVybiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgID0gZmFsc2UNCj4gPiA+ID4+ICtubF9hZnRlcl9zdHJ1Y3QgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA9IDINCj4gPiA+ID4+ICtubF9hZnRlcl9zd2l0Y2ggICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA9IGFkZA0KPiA+ID4gPj4gK25sX2FmdGVyX3ZicmFjZV9jbG9zZSAg ICAgICAgICAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiA+ID4gPj4gK25sX2FmdGVyX3ZicmFjZV9v cGVuICAgICAgICAgICAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiA+ID4gPj4gK25sX2FmdGVyX3Zi cmFjZV9vcGVuX2VtcHR5ICAgICAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiA+ID4gPj4gK25sX2Fm dGVyX3doaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gYWRkDQo+ID4gPiA+PiAr bmxfYXNzaWduX2xlYXZlX29uZV9saW5lcnMgICAgICAgICAgICAgICAgICAgPSB0cnVlDQo+ID4g PiA+PiArbmxfYmVmb3JlX2Jsb2NrX2NvbW1lbnQgICAgICAgICAgICAgICAgICAgICAgPSAyDQo+ ID4gPiA+PiArbmxfYmVmb3JlX2Nhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBm YWxzZQ0KPiA+ID4gPj4gK25sX2JlZm9yZV9kbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgID0gaWdub3JlDQo+ID4gPiA+PiArbmxfYmVmb3JlX2ZvciAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPSBpZ25vcmUNCj4gPiA+ID4+ICtubF9iZWZvcmVfaWYgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA9IGlnbm9yZQ0KPiA+ID4gPj4gK25sX2JlZm9yZV9zd2l0Y2gg ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gaWdub3JlDQo+ID4gPiA+PiArbmxfYmVmb3Jl X3doaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBpZ25vcmUNCj4gPiA+ID4+ICtu bF9iZWZvcmVfd2hvbGVfZmlsZV9pZmRlZiAgICAgICAgICAgICAgICAgICA9IDINCj4gPiA+ID4+ ICtubF9icmFjZV9icmFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGZvcmNlDQo+ ID4gPiA+PiArbmxfYnJhY2Vfc3RydWN0X3ZhciAgICAgICAgICAgICAgICAgICAgICAgICAgPSBy ZW1vdmUNCj4gPiA+ID4+ICtubF9jYXNlX2NvbG9uX2JyYWNlICAgICAgICAgICAgICAgICAgICAg ICAgICA9IGFkZA0KPiA+ID4gPj4gK25sX2NsYXNzX2xlYXZlX29uZV9saW5lcnMgICAgICAgICAg ICAgICAgICAgID0gZmFsc2UNCj4gPiA+ID4+ICtubF9jb2xsYXBzZV9lbXB0eV9ib2R5ICAgICAg ICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPiA+PiArbmxfY29tbWVudF9mdW5jX2RlZiAg ICAgICAgICAgICAgICAgICAgICAgICAgPSAxDQo+ID4gPiA+PiArbmxfY3JlYXRlX2Zvcl9vbmVf bGluZXIgICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+ID4gPj4gK25sX2NyZWF0ZV9p Zl9vbmVfbGluZXIgICAgICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPiA+ID4+ICtubF9j cmVhdGVfd2hpbGVfb25lX2xpbmVyICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPiA+ PiArbmxfZGVmaW5lX21hY3JvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0K PiA+ID4gPj4gK25sX2RzX3N0cnVjdF9lbnVtX2Nsb3NlX2JyYWNlICAgICAgICAgICAgICAgID0g dHJ1ZQ0KPiA+ID4gPj4gK25sX2RzX3N0cnVjdF9lbnVtX2NtdCAgICAgICAgICAgICAgICAgICAg ICAgID0gZmFsc2UNCj4gPiA+ID4+ICtubF9lbnVtX2xlYXZlX29uZV9saW5lcnMgICAgICAgICAg ICAgICAgICAgICA9IGZhbHNlDQo+ID4gPiA+PiArbmxfZnVuY19kZWNsX2VuZCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPSBhZGQNCj4gPiA+ID4+ICtubF9mdW5jX2RlY2xfc3RhcnQgICAg ICAgICAgICAgICAgICAgICAgICAgICA9IGFkZA0KPiA+ID4gPj4gK25sX2Z1bmNfZGVmX2VuZCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gYWRkDQo+ID4gPiA+PiArbmxfZnVuY19kZWZf c3RhcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBhZGQNCj4gPiA+ID4+ICtubF9mdW5j X2xlYXZlX29uZV9saW5lcnMgICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPiA+PiAr bmxfZnVuY19wcm90b190eXBlX25hbWUgICAgICAgICAgICAgICAgICAgICAgPSBhZGQNCj4gPiA+ ID4+ICtubF9mdW5jX3Zhcl9kZWZfYmxrICAgICAgICAgICAgICAgICAgICAgICAgICA9IDENCj4g PiA+ID4+ICtubF9nZXRzZXRfbGVhdmVfb25lX2xpbmVycyAgICAgICAgICAgICAgICAgICA9IGZh bHNlDQo+ID4gPiA+PiArbmxfaWZfbGVhdmVfb25lX2xpbmVycyAgICAgICAgICAgICAgICAgICAg ICAgPSBmYWxzZQ0KPiA+ID4gPj4gK25sX211bHRpX2xpbmVfZGVmaW5lICAgICAgICAgICAgICAg ICAgICAgICAgID0gZmFsc2UNCj4gPiA+ID4+ICtubF9zcXVlZXplX2lmZGVmICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4gPiA+PiArbmxfdmFyX2RlZl9ibGtfZW5kICAg ICAgICAgICAgICAgICAgICAgICAgICAgPSAwDQo+ID4gPiA+PiArbmxfdmFyX2RlZl9ibGtfc3Rh cnQgICAgICAgICAgICAgICAgICAgICAgICAgPSAwDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArIyBQ cmVwcm9jZXNzb3IgUnVsZXMNCj4gPiA+ID4+ICtwcF9kZWZpbmVfYXRfbGV2ZWwgICAgICA9IHRy dWUNCj4gPiA+ID4+ICtwcF9pZl9pbmRlbnRfY29kZSAgICAgICA9IGZhbHNlDQo+ID4gPiA+PiAr cHBfaW5kZW50X2Z1bmNfZGVmICAgICAgPSBmYWxzZQ0KPiA+ID4gPj4gK3BwX2luZGVudF9leHRl cm4gICAgICAgID0gZmFsc2UNCj4gPiA+ID4+ICtwcF9pZ25vcmVfZGVmaW5lX2JvZHkgICA9IHRy dWUgICAgICAgICAgICAgICAgIyBXb3JrYXJvdW5kOiBUdXJuIG9mZiBwcm9jZXNzaW5nIGZvciAj ZGVmaW5lIGJvZHkNCj4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIyAoY3VycmVudCBydWxlcyBkbyBub3Qgd29yayBmb3Igc29tZSBkZWZpbmVz KQ0KPiA+ID4gPj4gK3BwX2luZGVudCAgICAgICAgICAgICAgID0gYWRkDQo+ID4gPiA+PiArcHBf aW5kZW50X2F0X2xldmVsICAgICAgPSB0cnVlDQo+ID4gPiA+PiArcHBfaW5kZW50X2NvdW50ICAg ICAgICAgPSAyDQo+ID4gPiA+PiArcHBfaW5kZW50X2lmICAgICAgICAgICAgPSAyDQo+ID4gPiA+ PiArcHBfaW5kZW50X3JlZ2lvbiAgICAgICAgPSAyDQo+ID4gPiA+PiArcHBfcmVnaW9uX2luZGVu dF9jb2RlICAgPSBmYWxzZQ0KPiA+ID4gPj4gK3BwX3NwYWNlICAgICAgICAgICAgICAgID0gcmVt b3ZlDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArIw0KPiA+ID4gPj4gKyMgVGhlIHRva2VucyBiZWxv dyBhcmUgYXNzaWduZWQgc3BlY2lmaWMgdHlwZXMgc28gdGhleSBhcmUgYWx3YXlzIHJlY29nbml6 ZWQgcHJvcGVybHkuDQo+ID4gPiA+PiArIw0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gKyMgRXhwbGlj aXRseSBkZWZpbmUgRURLIElJIHF1YWxpZmllcnMNCj4gPiA+ID4+ICtzZXQgUVVBTElGSUVSIENP TlNUDQo+ID4gPiA+PiArc2V0IFFVQUxJRklFUiBFRklBUEkNCj4gPiA+ID4+ICtzZXQgUVVBTElG SUVSIElODQo+ID4gPiA+PiArc2V0IFFVQUxJRklFUiBPUFRJT05BTA0KPiA+ID4gPj4gK3NldCBR VUFMSUZJRVIgT1VUDQo+ID4gPiA+PiArDQo+ID4gPiA+PiArIyBFeHBsaWNpdGx5IGRlZmluZSBF REsgSUkgdHlwZXMNCj4gPiA+ID4+ICtzZXQgVFlQRSBFRklfU1RBVFVTDQo+ID4gPiA+PiArc2V0 IFRZUEUgVk9JRA0KPiA+ID4gPj4gZGlmZiAtLWdpdCBhLy5weXRvb2wvUGx1Z2luL1VuY3J1c3Rp ZnlDaGVjay91bmNydXN0aWZ5X2V4dF9kZXAueWFtbA0KPiA+ID4gPj4gYi8ucHl0b29sL1BsdWdp bi9VbmNydXN0aWZ5Q2hlY2svdW5jcnVzdGlmeV9leHRfZGVwLnlhbWwNCj4gPiA+ID4+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0DQo+ID4gPiA+PiBpbmRleCAwMDAwMDAwMDAwMDAuLmQ4YzIyNDAzYjRi MQ0KPiA+ID4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+ID4gPj4gKysrIGIvLnB5dG9vbC9QbHVnaW4v VW5jcnVzdGlmeUNoZWNrL3VuY3J1c3RpZnlfZXh0X2RlcC55YW1sDQo+ID4gPiA+PiBAQCAtMCww ICsxLDE2IEBADQo+ID4gPiA+PiArIyMgQGZpbGUNCj4gPiA+ID4+ICsjIERvd25sb2FkcyB0aGUg VW5jcnVzdGlmeSBhcHBsaWNhdGlvbiBmcm9tIGEgUHJvamVjdCBNdSBOdUdldCBwYWNrYWdlLg0K PiA+ID4gPj4gKyMNCj4gPiA+ID4+ICsjIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0 aW9uLg0KPiA+ID4gPj4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1Q YXRlbnQNCj4gPiA+ID4+ICsjIw0KPiA+ID4gPj4gK3sNCj4gPiA+ID4+ICsgICJpZCI6ICJ1bmNy dXN0aWZ5LWNpLTEiLA0KPiA+ID4gPj4gKyAgInNjb3BlIjogImNpYnVpbGQiLA0KPiA+ID4gPj4g KyAgInR5cGUiOiAibnVnZXQiLA0KPiA+ID4gPj4gKyAgIm5hbWUiOiAibXUtdW5jcnVzdGlmeS1y ZWxlYXNlIiwNCj4gPiA+ID4+ICsgICJzb3VyY2UiOiAiaHR0cHM6Ly9wa2dzLmRldi5henVyZS5j b20vcHJvamVjdG11L1VuY3J1c3RpZnkvX3BhY2thZ2luZy9tdV91bmNydXN0aWZ5L251Z2V0L3Yz L2luZGV4Lmpzb24iLA0KPiA+ID4gPj4gKyAgInZlcnNpb24iOiAiNzMuMC4zIiwNCj4gPiA+ID4+ ICsgICJmbGFncyI6IFsic2V0X3NoZWxsX3ZhciIsICJob3N0X3NwZWNpZmljIl0sDQo+ID4gPiA+ PiArICAidmFyX25hbWUiOiAiVU5DUlVTVElGWV9DSV9QQVRIIg0KPiA+ID4gPj4gK30NCj4gPiA+ ID4+IGRpZmYgLS1naXQgYS8ucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5Q2hlY2svdW5jcnVzdGlm eV9wbHVnX2luLnlhbWwNCj4gPiA+ID4+IGIvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeUNoZWNr L3VuY3J1c3RpZnlfcGx1Z19pbi55YW1sDQo+ID4gPiA+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0K PiA+ID4gPj4gaW5kZXggMDAwMDAwMDAwMDAwLi4wNmM3NmFmMDI3NTkNCj4gPiA+ID4+IC0tLSAv ZGV2L251bGwNCj4gPiA+ID4+ICsrKyBiLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVjay91 bmNydXN0aWZ5X3BsdWdfaW4ueWFtbA0KPiA+ID4gPj4gQEAgLTAsMCArMSwxMSBAQA0KPiA+ID4g Pj4gKyMjIEBmaWxlDQo+ID4gPiA+PiArIyBDaUJ1aWxkUGx1Z2luIHVzZWQgdG8gY2hlY2sgY29k aW5nIHN0YW5kYXJkIGNvbXBsaWFuY2Ugb2YgRURLIElJIHN0eWxlIEMgc291cmNlIGNvZGUNCj4g PiA+ID4+ICsjDQo+ID4gPiA+PiArIyBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlv bi4NCj4gPiA+ID4+ICsjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50DQo+ID4gPiA+PiArIyMNCj4gPiA+ID4+ICt7DQo+ID4gPiA+PiArICAic2NvcGUiOiAiY2li dWlsZCIsDQo+ID4gPiA+PiArICAibmFtZSI6ICJVbmNydXN0aWZ5IENvZGluZyBTdGFuZGFyZCBU ZXN0IiwNCj4gPiA+ID4+ICsgICJtb2R1bGUiOiAiVW5jcnVzdGlmeUNoZWNrIg0KPiA+ID4gPj4g K30NCj4gPiA+ID4+IGRpZmYgLS1naXQgYS8ucHl0b29sL1JlYWRtZS5tZCBiLy5weXRvb2wvUmVh ZG1lLm1kDQo+ID4gPiA+PiBpbmRleCBmNjUwNTUwNzk2NmEuLmUwZDA3ZjMxNzA0OSAxMDA2NDQN Cj4gPiA+ID4+IC0tLSBhLy5weXRvb2wvUmVhZG1lLm1kDQo+ID4gPiA+PiArKysgYi8ucHl0b29s L1JlYWRtZS5tZA0KPiA+ID4gPj4gQEAgLTI2NCw2ICsyNjQsMTAgQEAgQlNELTItQ2xhdXNlLVBh dGVudC4NCj4gPiA+ID4+ICAgUnVuIHRoZSBFY2MgdG9vbCBvbiB0aGUgcGFja2FnZS4gVGhlIEVj YyB0b29sIGlzIGF2YWlsYWJsZSBpbiB0aGUgQmFzZVRvb2xzDQo+ID4gPiA+PiAgIHBhY2thZ2Uu IEl0IGNoZWNrcyB0aGF0IHRoZSBjb2RlIGNvbXBsaWVzIHRvIHRoZSBFREtJSSBjb2Rpbmcgc3Rh bmRhcmQuDQo+ID4gPiA+Pg0KPiA+ID4gPj4gKyMjIyBDb2RpbmcgU3RhbmRhcmQgQ29tcGxpYW5j ZSAtIFVuY3J1c3RpZnlDaGVjaw0KPiA+ID4gPj4gKw0KPiA+ID4gPj4gK1J1bnMgdGhlIFVuY3J1 c3RpZnkgYXBwbGljYXRpb24gdG8gY2hlY2sgZm9yIGNvZGluZyBzdGFuZGFyZCBjb21wbGlhbmNl IGlzc3Vlcy4NCj4gPiA+ID4+ICsNCj4gPiA+ID4+ICAgIyMgUHlUb29sIFNjb3Blcw0KPiA+ID4g Pj4NCj4gPiA+ID4+ICAgU2NvcGVzIGFyZSBob3cgdGhlIFB5VG9vbCBleHRfZGVwLCBwYXRoX2Vu diwgYW5kIHBsdWdpbnMgYXJlIGFjdGl2YXRlZC4gIE1lYW5pbmcNCj4gPiA+ID4+IC0tDQo+ID4g PiA+PiAyLjI4LjAud2luZG93cy4xDQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+IA0KPiA+ID4NCg0K