From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web10.755.1637704296606744845 for ; Tue, 23 Nov 2021 13:51:36 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=Zj743RXK; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: michael.d.kinney@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10177"; a="233860651" X-IronPort-AV: E=Sophos;i="5.87,258,1631602800"; d="scan'208";a="233860651" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Nov 2021 13:51:35 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,258,1631602800"; d="scan'208";a="740174955" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by fmsmga005.fm.intel.com with ESMTP; 23 Nov 2021 13:51:35 -0800 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Tue, 23 Nov 2021 13:51:34 -0800 Received: from orsmsx606.amr.corp.intel.com (10.22.229.19) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Tue, 23 Nov 2021 13:51:34 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Tue, 23 Nov 2021 13:51:34 -0800 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.172) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Tue, 23 Nov 2021 13:51:33 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LG5qUkLWior299c7ZUbkRd98qYlmryAvXtks3dDAFQQt5MDOrO2CbHeo+1rtJVPIM+JXEKh0R0XNFiBrYlfoCzU6wBGaVPT9cp5LA3WVZj+Wb7kisskxr9pU8CvxzzNr8Y/wPuxCfwhye8Snydz9fhgAgNkNbT1Fbdte7JbFytN9quJT2aWpC8OR4zr7mbuW/iIoFNCvylD3qGBS2URyR3OlU5whe+VdWyEisBf39RZaZ09f0mvilSyotLaVwppXJthHJrnSgF8NTeLeFE/CwHgfjhpkfqTQ0FDOx5PD118dMz1vFbZVGLjdlKVHiCkljAWtyp3l9qBLdxXmGzQF3g== 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=H1ee9xK0gXllAMtMwct0euGYpUFaCn7XevrsclatHpI=; b=HMrVmjKHnEs8ty2vUayzxnzaZQg2UR54QP/y2HLJ4zXEJuRlbS/i4wAGWoMEeEmVHowlebWieNEdkEZiBermi9MLmHXifCBQK+7h7tYIM14Q5OkRgsLglPW5wNQspv2/U7E3uSottSK9AAJrp7DqXf8ZRQrNMgcgqVL6Kr5PeV55DKMSkfLsnn+QtvQxU63PCblXdQYikHMVkpULWGtZvSt4W2xFlzXr2us20Jz6OSV7pFowqcBTXriwSq9eL2PBuXDSfqe6AlHskz0TbXylUU19oVMfzZPaOpyMWi6ph0bji1EQ2iSMgu/PJ0CR/XUWz/OYqi38BfHQjY6xerDEEQ== 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=H1ee9xK0gXllAMtMwct0euGYpUFaCn7XevrsclatHpI=; b=Zj743RXK8awhpgiM38vUx+skM8QWhhyKqH6MBRNt1HRdQWC0PC/jKJfyQ47z+90bdcljAQFFxtQdylpQYv1QfqgjtXGLd/PJ7P3ykIPyeYgOs8othRshXi47qO9JjBeM8I/lQoA8VCaFUtZ0cTMUIQOuXKdJrjlTKqnd0Nj1zJc= Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by CO1PR11MB4948.namprd11.prod.outlook.com (2603:10b6:303:9b::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.17; Tue, 23 Nov 2021 21:51:31 +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; Tue, 23 Nov 2021 21:51:31 +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 v2 1/1] .pytool/Plugin/Uncrustify: Add Uncrustify plugin Thread-Topic: [edk2-devel] [PATCH v2 1/1] .pytool/Plugin/Uncrustify: Add Uncrustify plugin Thread-Index: AQHX4K4XgAWLUrqD3U6AQeMuuxznTqwRpetw Date: Tue, 23 Nov 2021 21:51:31 +0000 Message-ID: References: <20211123210623.2168-1-mikuback@linux.microsoft.com> In-Reply-To: <20211123210623.2168-1-mikuback@linux.microsoft.com> 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: e0baf26b-230f-4a53-7cf4-08d9aecb6908 x-ms-traffictypediagnostic: CO1PR11MB4948: 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: FGdFCtkIOIvUKYvqiiHma4WNC46RlpM/5S7eSrGVFQdvLCu2n+xCiAHYafi9aDLDvdYdPgoSql7uEB6VfrWjmdVWQ3Mme0YnX0sP7VURJdj46+KQS2g1uv9zYWuRDlx1jeibv5dNj072jlf7/J1EZGfc7JD1N0QTZqn72DiNm9e65theNGsCiFhWfKUXUC4h/K8e6BT0WqUt9X97fwCLRARiEHIuo5yvZyYgPKzFywji7M3YTKX2yuGaNU9Vhv6ze3bhTWBb2bZLxuLsPs4SK5v5WhkCHa9cZzR9sy1pDSmT7GxwR43aFskuiWc6tz5FsZUYFvwLyaOfpcVqcmNwZ/IEZyV55KIECW1wiu7DmolqtDjuLcCJvQ9Tqo1NSd+UYelXPFoT7lCZumILYijH4e3bAVKyjw+/wrgnrlqMujlWf37qQ6ajyaF7TvftwXwmvsESy5o7fXP/wFQ7neK0YdVWAT5hCBVK8psxqUuhnNxHO+FBU8DyiG1mA4O8lxu2kZMll0NVjNDO/Wd45UM/byv0HwkBvClOqxJ+upsK+0E7OZbRVPCsuRS4NAnaxWvr1LwkjnP+GCxKLJrTVpcPHt/oJTVxzeL0mYRX568MKADRH0Ym7ysIp3qj+fYk17Db1dzM/qURQHE0BPT5Y/v+6BiQUwO0MGkLosStzXu6PG1q2y6zrMhBinqWEQCTpr/dCB2eLpRZI1rGk/YCqnWvW4u5LtCn5PAO5tNQ77BnZGBpKJpyjr9fgnblTZazFgFAWc+5ULvi0+qTCb3Xbo0f9vCw7lpC4RUs3P8+Y7OCZmNrOrioKP9BgQYa4w2neCg+ScgR+5HUupHwYSK9S3o3ag== 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)(45080400002)(19627235002)(7696005)(316002)(86362001)(9686003)(71200400001)(8676002)(30864003)(110136005)(2906002)(83380400001)(54906003)(76116006)(64756008)(5660300002)(966005)(82960400001)(66476007)(66446008)(508600001)(4326008)(53546011)(6506007)(33656002)(55016003)(122000001)(38070700005)(66946007)(26005)(8936002)(52536014)(66556008)(186003)(38100700002)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aWtuOFhqTFJqWmxRazJ5NEZCYi9FTzFDRG9kNUljTDZFd2Jmcm1xRk9OT1ZU?= =?utf-8?B?ZEcxYlVxUGRXQlU3Nk83c1B5aWgxaFpFRlpQck9uS0phUnZFTjZpTHBGdkJ5?= =?utf-8?B?b1BOSFEweTNXNHYybmxKOG1qOGdRSWhQRi9lMGIwWUJWSmRlMy9HZVM5TnlN?= =?utf-8?B?VThocXhrcEhRU3A3MUJoWUdzd1g1M0FqdXN5dG53ZlFmRGZHZmdFVTZCYUVx?= =?utf-8?B?SzNNSlB6OWhzb2RsTFRjUTRuS3ZBaFVvQjNYaExvZ2tHdFJVQUxmSzljMmxp?= =?utf-8?B?bnFoaGFxL1V5OFlHK0NqRjRFQ29IQjE4ZGVYNDluOTBzU1VpbXVONFdrRFp0?= =?utf-8?B?ZXFGOSsvZmM5QXFNSTd3REJUSXFkZEJNMzN3cFNxODY1bEQ0N2RON09VUlNK?= =?utf-8?B?MzlEelBlZ09JbDRIVUMvRWJ4T00yays4S01pMTdtL1pSSVBWbVhicUkweElt?= =?utf-8?B?S0F3bWJ1OFhFZHJsUGFtR3lYTWI5UWlDcHNUMkdPM0YyY2tPbEJVWGFyQmsy?= =?utf-8?B?cENUeFBIdDlnN2J1c2g1S2p1aVc4M0N3Z0VLaDhNNXI4dS8yUjRHUEIwV1Vv?= =?utf-8?B?RXZnaXg3TVdrNTM2NGcvZFBDRy9uWUF2UzVNeFRQbmZzdGhvaEZDaE82d0h0?= =?utf-8?B?QWJsRXc2VHA0di9VTmJBMFNvQUNva0NPZ2pKSitPeWRQYTIyOE9kb3dqbkhT?= =?utf-8?B?TExMQk5oVzZMci9zU2pQOW5IMUp1YnY1Tld0NUhSd0xReklEU09XbWNYcUQ3?= =?utf-8?B?TFdrV0hETUlsTGFJRUpOODB6Yk10QlhxUDlwYm1vYmYvajE3T1JTQStvb3Jn?= =?utf-8?B?TUVrTkZEdVpLeCtBTTJIZXlxanZPWkJKSkUxeGlRYVE5MitFRWVDczh0TXJp?= =?utf-8?B?ZTB5Y2tNc2hCK0wzMVlxaUU2TStHcVpFdEVwL1pFeXhnY3pzanM0N3JXK1Bl?= =?utf-8?B?N0pZOTE4N0Z4NVE3cy9rQSs3SU10RS9MTWFjaFB5cmFFV0ZpRWx0LzJudTZx?= =?utf-8?B?bWNyclkvWVE0Ui9MaTJhaUxvQlc0S3psK2dhb3NOMmp4aTVaMUNSU2Z4bjFi?= =?utf-8?B?OWwvTnN3S0ozSW5MU0NmRG5vRHVQVCt4aHdHaHBCWmY1N0hQamlVV05SV20v?= =?utf-8?B?ZjRpdXdZckNLNTZrN3BtWmRTRGNYaGhaaWVXRzJhR3U5d3NyenNSQkpESHRj?= =?utf-8?B?UDZxbzJ4LzlqT3piakRqdFNHTkl0WDN5TzVhR3JMUFYyc2JoM0dwMlR2ZGMx?= =?utf-8?B?OC9VRGlLNExRUE8xSGsyMHZhWW42ZXpJRE9GcFZWRXpodTZLZ3NaVVJncWx1?= =?utf-8?B?WE9VWU9KcjhwTFFxQTlmWi9ycmZheW9HdzNuZXd2T1dkQUhFVUUybTRIY0tY?= =?utf-8?B?UUJZV2M5THZIVXVNN0EraFhTU1JSN3Bid3dxc3gzQlNVZ1g0RFY2d25uanV2?= =?utf-8?B?RWdtbTAvUHY1TXpKWXBSVkVPblFoRnBoOFFJemNsU2JBMnJ0dlN2aXhzNnRI?= =?utf-8?B?OU9JRkxVMlFwNi9ubHJNdVFSQURNY1hxT1ZxUHAraVZtalJyR0hBcHNmNDJn?= =?utf-8?B?b2JDNnpyRWJXZklCMXhhZlNWekdiTVlOZGdJM0NDNWNicVJKd0RxV05nQi9S?= =?utf-8?B?WEZ6TFA1c3J3dEZZUi9hZzlaUW1jcG5CVXV6UTVXMHNmRGlSM3NSZW9zaWVY?= =?utf-8?B?Nmgvb0QrVWJXMXQ1RDVYRjZJejNRVWh0Y1ZaRWtTNXIwYXdPWTFCUnNQNHpi?= =?utf-8?B?bFNLWjFCVk1NUy90NnhieEMvaUJQUmRVbGdPTDdHMHg4bnM1UVBPbitzNnh1?= =?utf-8?B?N3dpditIeHFoYUdFeHd1RmdFTlVLZkpXNUVsbU1tR1Fza29LU2VSMXA3QUlt?= =?utf-8?B?VHordmcvREhsUWpPVmhRWWRKRVJ6QVBMSlNkOHFxbm1lV0NkK0NoMUVCY0tj?= =?utf-8?B?SFZNVm5kRlJUQk5hZnh4OUxHdzZ5WlI0cHpKSjJqSjV0blViZEpuZnVlNUhV?= =?utf-8?B?ZFBiUW04M3FmQWJUMVRPUWVZUzBYdXFUWUFicjBacE9oTUhzS1BzRGVTcDlu?= =?utf-8?B?eHE1L3ZNVHYxUDQ4L0F4S2t1bjhpNUExZUc2U25saGVubnd5a013dXRzK3Fw?= =?utf-8?B?R2VWS0hWZUVsQSs3REc5emtPdTJpOFVZNG9IL3dZOVFvaXI2dStFUWovZlpw?= =?utf-8?B?RGVBcXVteCs4NHNEOUFDSHFDS0s1cEVXcTNvTVpBWHRHK0dmeUUwQTM5N2Ru?= =?utf-8?B?N3JobjZ4Y09UQkhVUE5rbFRzb0tnPT0=?= 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: e0baf26b-230f-4a53-7cf4-08d9aecb6908 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Nov 2021 21:51:31.2029 (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: Q+zCaMRmxgozHHFGMi60KvobIWZ5uWYWe4aHE1OrOoqFLe0X6zxk0Fk3abqC6yomhr8s/WjL9uMSgrE6vbZJr3EkI6FgNaTcqoOAVtF7FRQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB4948 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 SGkgTWljaGFlbCwNCg0KSW4gb3JkZXIgdG8gbWF0Y2ggc29tZSBvZiB0aGUgb3RoZXIgbmFtaW5n IGNvbnZlbnRpb25zIG9mIHBsdWdpbnMsIHNob3VsZA0KdGhpcyBwbHVnaW4gYmUgY2FsbGVkICJV bmNydXN0aWZ5Q2hlY2siLiAgSXQgb25seSBjaGVja3MgaWYgdGhlIHNvdXJjZXMNCm1hdGNoIHRo ZSBleHBlY3RlZCBmb3JtYXQuICBJdCBkb2VzIG5vdCBhY3R1YWxseSBjaGFuZ2UgdGhlIGZvcm1h dCBvZiANCmFueSBzb3VyY2UgZmlsZXMgd2hlbiBlaXRoZXIgcnVuIGxvY2FsbHkgb3IgYnkgRURL IElJIENJLiAgUmlnaHQ/DQoNCkFsc28sIGRvZXMgdGhlIGZvbGxvd2luZyBzZWN0aW9uIG5lZWQg dG8gYmUgYWRkZWQgdG8gZXZlcnkgcGFja2FnZSBZQU1MDQpmaWxlIGluIHRoZSBlZGsyIHJlcG9z aXRvcnkgaW4gb3JkZXIgZm9yIHRoZSBVbmNydXNpdGZ5IHBsdWdpbiB0bw0KYmUgcnVuIGJ5IEVE SyBJSSBDST8gIElmIHNvLCBzaG91bGQgdGhvc2UgWUFNTCBmaWxlIHVwZGF0ZXMgYmUgcGFydA0K b2YgdGhpcyBwYXRjaCBzZXJpZXMgb3IgYSBkaWZmZXJlbnQgcGF0Y2ggc2VyaWVzPw0KDQo+ICtg YGAgeWFtbA0KPiArICAiVW5jcnVzdGlmeSI6IHsNCj4gKyAgICAgICJBdWRpdE9ubHkiOiBGYWxz ZSwgICAgICAgICAgICMgRG9uJ3QgZmFpbCB0aGUgYnVpbGQgaWYgdGhlcmUgYXJlIGVycm9ycy4g SnVzdCBsb2cgdGhlbS4NCj4gKyAgICAgICJPdXRwdXRGaWxlRGlmZnMiOiBGYWxzZSAgICAgICMg T3V0cHV0IGNodW5rcyBvZiBmb3JtYXR0aW5nIGRpZmZzIGluIHRoZSB0ZXN0IGNhc2UgbG9nLg0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUaGlzIGNhbiBzaWduaWZp Y2FudGx5IHNsb3cgZG93biB0aGUgcGx1Z2luIG9uIHZlcnkgbGFyZ2UgcGFja2FnZXMuDQo+ICsg ICAgICAiQ29uZmlnRmlsZVBhdGgiOiAiIiwgICAgICAgICAjIEN1c3RvbSBwYXRoIHRvIGFuIFVu Y3J1c3RpZnkgY29uZmlnIGZpbGUuIFBhdGggaXMgcmVsYXRpdmUgdG8gdGhlIHBhY2thZ2UuDQo+ ICsgICAgICAiSWdub3JlU3RhbmRhcmRQYXRocyI6IFtdLCAgICAjIFN0YW5kYXJkIFBsdWdpbiBk ZWZpbmVkIHBhdGhzIHRoYXQgc2hvdWxkIGJlIGlnbm9yZWQuDQo+ICsgICAgICAiQWRkaXRpb25h bEluY2x1ZGVQYXRocyI6IFtdICAjIEFkZGl0aW9uYWwgcGF0aHMgdG8gY2hlY2sgZm9ybWF0dGlu ZyAod2lsZGNhcmRzIHN1cHBvcnRlZCkuDQo+ICsgIH0NCj4gK2BgYA0KDQpUaGFua3MsDQoNCk1p a2UNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXZlbEBlZGsyLmdy b3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBNaWNoYWVsIEt1YmFj a2kNCj4gU2VudDogVHVlc2RheSwgTm92ZW1iZXIgMjMsIDIwMjEgMTowNiBQTQ0KPiBUbzogZGV2 ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lu bmV5QGludGVsLmNvbT47IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IFNl YW4gQnJvZ2FuDQo+IDxzZWFuLmJyb2dhbkBtaWNyb3NvZnQuY29tPjsgQnJldCBCYXJrZWxldyA8 QnJldC5CYXJrZWxld0BtaWNyb3NvZnQuY29tPg0KPiBTdWJqZWN0OiBbZWRrMi1kZXZlbF0gW1BB VENIIHYyIDEvMV0gLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeTogQWRkIFVuY3J1c3RpZnkgcGx1 Z2luDQo+IA0KPiBGcm9tOiBNaWNoYWVsIEt1YmFja2kgPG1pY2hhZWwua3ViYWNraUBtaWNyb3Nv ZnQuY29tPg0KPiANCj4gUkVGOmh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1 Zy5jZ2k/aWQ9Mzc0OA0KPiANCj4gQWRkcyBhIG5ldyBDSSBwbHVnaW4gZm9yIFVuY3J1c3RpZnku IFRoaXMgaXMgdXNlZCB0byBjaGVjaw0KPiBjb2Rpbmcgc3RhbmRhcmQgY29tcGxpYW5jZSBvZiBz b3VyY2UgY29kZSB0byB0aGUgRURLIElJIEMgQ29kaW5nDQo+IFN0YW5kYXJkcyBTcGVjaWZpY2F0 aW9uLg0KPiANCj4gQW4gZXh0ZXJuYWwgZGVwZW5kZW5jeSBpcyBhZGRlZCBpbiB0aGUgcGx1Z2lu IGRpcmVjdG9yeSB0byByZXRyaWV2ZQ0KPiB0aGUgVW5jcnVzdGlmeSBleGVjdXRhYmxlLiBDdXJy ZW50bHksIHRoZSBleGVjdXRhYmxlIGlzIGZyb20gYW4gZWRrMg0KPiBmb3JrIG9mIHRoZSBhcHBs aWNhdGlvbi4NCj4gDQo+IFRoZSBkZWZhdWx0IFVuY3J1c3RpZnkgY29uZmlndXJhdGlvbiBmaWxl cyBhcmUgYWRkZWQgaW4gdGhlIHBsdWdpbg0KPiBkaXJlY3RvcnkuIEFkZGl0aW9uYWwgZGV0YWls cyBhcmUgaW4gdGhlIFJlYWRtZS5tZCBmaWxlIGFkZGVkIGluDQo+IHRoZSBVbmNydXN0aWZ5IHBs dWdpbiBkaXJlY3RvcnkuDQo+IA0KPiBOb3RlOiBBIFYzIGlzIHBsYW5uZWQgdGhhdCB3aWxsIGZh aWwgdGhlIFVuY3J1c3RpZnkgcGx1Z2luIHJlc3VsdHMNCj4gaWYgYSBmaWxlIG9yIGZ1bmN0aW9u IHRlbXBsYXRlIGhlYWRlciBpcyBmb3VuZCBpbiBhIGZvcm1hdHRlZCBmaWxlLg0KPiBUaGlzIHdp bGwgYmUgYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5IGFkZGVkIGluIHRoZSBwbHVnaW4gYW5kIHdp bGwNCj4gbm90IGNoYW5nZSB0aGUgd2F5IFVuY3J1c3RpZnkgaXMgaW52b2tlZC4NCj4gDQo+IENj OiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gQ2M6IExp bWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4gQ2M6IFNlYW4gQnJvZ2FuIDxz ZWFuLmJyb2dhbkBtaWNyb3NvZnQuY29tPg0KPiBDYzogQnJldCBCYXJrZWxldyA8QnJldC5CYXJr ZWxld0BtaWNyb3NvZnQuY29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEt1YmFja2kgPG1p Y2hhZWwua3ViYWNraUBtaWNyb3NvZnQuY29tPg0KPiAtLS0NCj4gDQo+IE5vdGVzOg0KPiAgICAg VjIgY2hhbmdlczoNCj4gDQo+ICAgICAxLiBDaGFuZ2VkIHBsdWdpbiB0ZW1wIGRpcmVjdG9yeSB0 bw0KPiAgICAgICAgQnVpbGQvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeQ0KPiAgICAgMi4gQWRk ZWQgVENCWiBSRUYgaW4gcGF0Y2ggY29tbWl0IG1lc3NhZ2UNCj4gDQo+ICAucHl0b29sL1BsdWdp bi9VbmNydXN0aWZ5L1JlYWRtZS5tZCAgICAgICAgICAgICAgICAgICB8IDExNiArKysrDQo+ICAu cHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5L1VuY3J1c3RpZnkucHkgICAgICAgICAgICAgICB8IDU1 NSArKysrKysrKysrKysrKysrKysrKw0KPiAgLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeS9kZWZh dWx0X2ZpbGVfaGVhZGVyLnR4dCAgICAgfCAgIDkgKw0KPiAgLnB5dG9vbC9QbHVnaW4vVW5jcnVz dGlmeS9kZWZhdWx0X2Z1bmN0aW9uX2hlYWRlci50eHQgfCAgMTUgKw0KPiAgLnB5dG9vbC9QbHVn aW4vVW5jcnVzdGlmeS91bmNydXN0aWZ5LmNmZyAgICAgICAgICAgICAgfCA0NjYgKysrKysrKysr KysrKysrKw0KPiAgLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeS91bmNydXN0aWZ5X2V4dF9kZXAu eWFtbCAgICAgfCAgMTYgKw0KPiAgLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeS91bmNydXN0aWZ5 X3BsdWdfaW4ueWFtbCAgICAgfCAgMTIgKw0KPiAgLnB5dG9vbC9SZWFkbWUubWQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKw0KPiAgOCBmaWxlcyBjaGFuZ2VkLCAx MTkzIGluc2VydGlvbnMoKykNCj4gDQo+IGRpZmYgLS1naXQgYS8ucHl0b29sL1BsdWdpbi9VbmNy dXN0aWZ5L1JlYWRtZS5tZCBiLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvUmVhZG1lLm1kDQo+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwMC4uNmZjYjZlNTA0NzJk DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeS9SZWFk bWUubWQNCj4gQEAgLTAsMCArMSwxMTYgQEANCj4gKyMgVW5jcnVzdGlmeSBQbHVnaW4NCj4gKw0K PiArVGhpcyBDaUJ1aWxkUGx1Z2luIHNjYW5zIGFsbCB0aGUgZmlsZXMgaW4gYSBnaXZlbiBwYWNr YWdlIGFuZCBjaGVja3MgZm9yIGNvZGluZyBzdGFuZGFyZCBjb21wbGlhbmNlIGlzc3Vlcy4NCj4g Kw0KPiArVGhpcyBwbHVnaW4gcmVxdWlyZXMgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBV bmNydXN0aWZ5IGV4ZWN1dGFibGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhpcyBwbHVnaW4g dG8NCj4gK2JlIHNwZWNpZmllZCBpbiBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lZCBgVU5D UlVTVElGWV9DSV9QQVRIYC4gVGhpcyB1bmlxdWUgdmFyaWFibGUgbmFtZSBpcyB1c2VkIHRvIGF2 b2lkIGNvbmZ1c2lvbg0KPiArd2l0aCBvdGhlciBwYXRocyB0byBVbmNydXN0aWZ5IHdoaWNoIG1p Z2h0IG5vdCBiZSB0aGUgZXhwZWN0ZWQgYnVpbGQgZm9yIHVzZSBieSB0aGlzIHBsdWdpbi4NCj4g Kw0KPiArQnkgZGVmYXVsdCwgYW4gVW5jcnVzdGlmeSBjb25maWd1cmF0aW9uIGZpbGUgbmFtZWQg InVuY3J1c3RpZnkuY2ZnIiBsb2NhdGVkIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyB0aGUgcGx1 Z2luIGlzDQo+ICt1c2VkLiBUaGUgdmFsdWUgY2FuIGJlIG92ZXJyaWRkZW4gdG8gYSBwYWNrYWdl LXNwZWNpZmljIHBhdGggd2l0aCB0aGUgYENvbmZpZ0ZpbGVQYXRoYCBjb25maWd1cmF0aW9uIGZp bGUgb3B0aW9uLg0KPiArDQo+ICsqIFVuY3J1c3RpZnkgc291cmNlIGNvZGUgYW5kIGRvY3VtZW50 YXRpb246IGh0dHBzOi8vZ2l0aHViLmNvbS91bmNydXN0aWZ5L3VuY3J1c3RpZnkNCj4gKyogUHJv amVjdCBNdSBVbmNydXN0aWZ5IGZvcmsgc291cmNlIGNvZGUgYW5kIGRvY3VtZW50YXRpb246IGh0 dHBzOi8vZGV2LmF6dXJlLmNvbS9wcm9qZWN0bXUvVW5jcnVzdGlmeQ0KPiArDQo+ICsjIyBGaWxl cyBDaGVja2VkIGluIGEgUGFja2FnZQ0KPiArDQo+ICtCeSBkZWZhdWx0LCB0aGlzIHBsdWdpbiB3 aWxsIGRpc2NvdmVyIGFsbCBmaWxlcyBpbiB0aGUgcGFja2FnZSB3aXRoIHRoZSBmb2xsb3dpbmcg ZGVmYXVsdCBwYXRoczoNCj4gKw0KPiArYGBgcHl0aG9uDQo+ICtbDQo+ICsjIEMgc291cmNlDQo+ ICsiKi5jIiwNCj4gKyIqLmgiDQo+ICtdDQo+ICtgYGANCj4gKw0KPiArRnJvbSB0aGlzIGxpc3Qg b2YgZmlsZXMsIGFueSBmaWxlcyBpZ25vcmVkIGJ5IEdpdCBvciByZXNpZGluZyBpbiBhIEdpdCBz dWJtb2R1bGUgd2lsbCBiZSByZW1vdmVkLiBJZiBHaXQgaXMgbm90DQo+ICtmb3VuZCwgc3VibW9k dWxlcyBhcmUgbm90IGZvdW5kLCBvciBpZ25vcmVkIGZpbGVzIGFyZSBub3QgZm91bmQgbm8gY2hh bmdlcyBhcmUgbWFkZSB0byB0aGUgbGlzdCBvZiBkaXNjb3ZlcmVkIGZpbGVzLg0KPiArDQo+ICtU byBjb250cm9sIHRoZSBwYXRocyBjaGVja2VkIGluIGEgZ2l2ZW4gcGFja2FnZSwgcmV2aWV3IHRo ZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZGVzY3JpYmVkIGluIHRoaXMgZmlsZS4NCj4gKw0KPiAr IyMgQ29uZmlndXJhdGlvbg0KPiArDQo+ICtUaGUgcGx1Z2luIGNhbiBiZSBjb25maWd1cmVkIHdp dGggYSBmZXcgb3B0aW9uYWwgY29uZmlndXJhdGlvbiBvcHRpb25zLg0KPiArDQo+ICtgYGAgeWFt bA0KPiArICAiVW5jcnVzdGlmeSI6IHsNCj4gKyAgICAgICJBdWRpdE9ubHkiOiBGYWxzZSwgICAg ICAgICAgICMgRG9uJ3QgZmFpbCB0aGUgYnVpbGQgaWYgdGhlcmUgYXJlIGVycm9ycy4gSnVzdCBs b2cgdGhlbS4NCj4gKyAgICAgICJPdXRwdXRGaWxlRGlmZnMiOiBGYWxzZSAgICAgICMgT3V0cHV0 IGNodW5rcyBvZiBmb3JtYXR0aW5nIGRpZmZzIGluIHRoZSB0ZXN0IGNhc2UgbG9nLg0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUaGlzIGNhbiBzaWduaWZpY2FudGx5 IHNsb3cgZG93biB0aGUgcGx1Z2luIG9uIHZlcnkgbGFyZ2UgcGFja2FnZXMuDQo+ICsgICAgICAi Q29uZmlnRmlsZVBhdGgiOiAiIiwgICAgICAgICAjIEN1c3RvbSBwYXRoIHRvIGFuIFVuY3J1c3Rp ZnkgY29uZmlnIGZpbGUuIFBhdGggaXMgcmVsYXRpdmUgdG8gdGhlIHBhY2thZ2UuDQo+ICsgICAg ICAiSWdub3JlU3RhbmRhcmRQYXRocyI6IFtdLCAgICAjIFN0YW5kYXJkIFBsdWdpbiBkZWZpbmVk IHBhdGhzIHRoYXQgc2hvdWxkIGJlIGlnbm9yZWQuDQo+ICsgICAgICAiQWRkaXRpb25hbEluY2x1 ZGVQYXRocyI6IFtdICAjIEFkZGl0aW9uYWwgcGF0aHMgdG8gY2hlY2sgZm9ybWF0dGluZyAod2ls ZGNhcmRzIHN1cHBvcnRlZCkuDQo+ICsgIH0NCj4gK2BgYA0KPiArDQo+ICsjIyMgYEFkZGl0aW9u YWxJbmNsdWRlUGF0aHNgDQo+ICsNCj4gK0EgcGFja2FnZSBjb25maWd1cmF0aW9uIGZpbGUgY2Fu IHNwZWNpZnkgYW55IGFkZGl0aW9uYWwgcGF0aHMgdG8gYmUgaW5jbHVkZWQgd2l0aCB0aGlzIG9w dGlvbi4NCj4gKw0KPiArQXQgdGhpcyB0aW1lLCBpdCBpcyByZWNvbW1lbmRlZCBhbGwgZmlsZXMg cnVuIGFnYWluc3QgdGhlIHBsdWdpbiBiZSB3cml0dGVuIGluIHRoZSBDIG9yIEMrKyBsYW5ndWFn ZS4NCj4gKw0KPiArIyMjIGBBdWRpdE9ubHlgDQo+ICsNCj4gK2BCb29sZWFuYCAtIERlZmF1bHQg aXMgYEZhbHNlYC4NCj4gKw0KPiArSWYgYFRydWVgLCBydW4gdGhlIHRlc3QgaW4gYW4gImF1ZGl0 IG9ubHkgbW9kZSIgd2hpY2ggd2lsbCBsb2cgYWxsIGVycm9ycyBidXQgaW5zdGVhZCBvZiBmYWls aW5nIHRoZSBidWlsZCwgaXQgd2lsbCBzZXQNCj4gK3RoZSB0ZXN0IGFzIHNraXBwZWQuIFRoaXMg YWxsb3dzIHZpc2liaWxpdHkgaW50byB0aGUgZmFpbHVyZXMgd2l0aG91dCBicmVha2luZyB0aGUg YnVpbGQuDQo+ICsNCj4gKyMjIyBgQ29uZmlnRmlsZVBhdGhgDQo+ICsNCj4gK2BTdHJpbmdgIC0g RGVmYXVsdCBpcyBgInVuY3J1c3RpZnkuY2ZnImANCj4gKw0KPiArV2hlbiBzcGVjaWZpZWQgaW4g dGhlIGNvbmZpZyBmaWxlLCB0aGlzIGlzIGEgcGFja2FnZSByZWxhdGl2ZSBwYXRoIHRvIHRoZSBV bmNydXN0aWZ5IGNvbmZpZ3VyYXRpb24gZmlsZS4NCj4gKw0KPiArIyMjIGBJZ25vcmVTdGFuZGFy ZFBhdGhzYA0KPiArDQo+ICtUaGlzIHBsdWdpbiBieSBkZWZhdWx0IHdpbGwgY2hlY2sgdGhlIGJl bG93IHN0YW5kYXJkIHBhdGhzLiBBIHBhY2thZ2UgY29uZmlndXJhdGlvbiBmaWxlIGNhbiBzcGVj aWZ5IGFueSBvZiB0aGVzZSBwYXRocw0KPiArdG8gYmUgaWdub3JlZC4NCj4gKw0KPiArYGBgcHl0 aG9uDQo+ICtbDQo+ICsjIEMgc291cmNlDQo+ICsiKi5jIiwNCj4gKyIqLmgiDQo+ICtdDQo+ICtg YGANCj4gKw0KPiArIyMjIGBPdXRwdXRGaWxlRGlmZnNgDQo+ICsNCj4gK2BCb29sZWFuYCAtIERl ZmF1bHQgaXMgYEZhbHNlYC4NCj4gKw0KPiArSWYgYFRydWVgLCBvdXRwdXQgZGlmZnMgb2YgZm9y bWF0dGluZyBjaGFuZ2VzIGludG8gdGhlIHRlc3QgY2FzZSBsb2cuIFRoaXMgaXMgaGVscGZ1bCB0 byBleGFjdGx5IHVuZGVyc3RhbmQgd2hhdCBjaGFuZ2VzDQo+ICtuZWVkIHRvIGJlIG1hZGUgdG8g dGhlIHNvdXJjZSBjb2RlIGluIG9yZGVyIHRvIGZpeCBhIGNvZGluZyBzdGFuZGFyZCBjb21wbGlh bmNlIGlzc3VlLg0KPiArDQo+ICtOb3RlIHRoYXQgY2FsY3VsYXRpbmcgdGhlIGZpbGUgZGlmZnMg b24gYSB2ZXJ5IGxhcmdlIHNldCBvZiBvZiByZXN1bHRzIChlLmcuID4xMDAgZmlsZXMpIGNhbiBz aWduaWZpY2FudGx5IHNsb3cgZG93bg0KPiArcGx1Z2luIGV4ZWN1dGlvbi4NCj4gKw0KPiArIyMj IGBTa2lwR2l0RXhjbHVzaW9uc2ANCj4gKw0KPiArYEJvb2xlYW5gIC0gRGVmYXVsdCBpcyBgRmFs c2VgLg0KPiArDQo+ICtCeSBkZWZhdWx0LCBmaWxlcyBpbiBwYXRocyBtYXRjaGVkIGluIGEgLmdp dGlnbm9yZSBmaWxlIG9yIGEgcmVjb2duaXplZCBnaXQgc3VibW9kdWxlIGFyZSBleGNsdWRlZC4g SWYgdGhpcyBvcHRpb24NCj4gK2lzIGBUcnVlYCwgdGhlIHBsdWdpbiB3aWxsIG5vdCBhdHRlbXB0 IHRvIHJlY29nbml6ZSB0aGVzZSBmaWxlcyBhbmQgZXhjbHVkZSB0aGVtLg0KPiArDQo+ICsjIyBI aWdoLUxldmVsIFBsdWdpbiBPcGVyYXRpb24NCj4gKw0KPiArVGhpcyBwbHVnaW4gZ2VuZXJhdGVz IHR3byBtYWluIHNldHMgb2YgdGVtcG9yYXJ5IGZpbGVzOg0KPiArDQo+ICsgIDEuIEEgd29ya2lu ZyBkaXJlY3RvcnkgaW4gdGhlIGRpcmVjdG9yeSBgQnVpbGQvLnB5dG9vbC9QbHVnaW4vVW5jcnVz dGlmeWANCj4gKyAgMi4gRm9yIGVhY2ggc291cmNlIGZpbGUgd2l0aCBmb3JtYXR0aW5nIGVycm9y cywgYSBzaWJsaW5nIGZpbGUgd2l0aCB0aGUgYC51bmNydXN0aWZ5X3BsdWdpbmAgZXh0ZW5zaW9u DQo+ICsNCj4gK1RoZSB3b3JraW5nIGRpcmVjdG9yeSBjb250YWlucyB0ZW1wb3JhcnkgZmlsZXMg dW5pcXVlIHRvIG9wZXJhdGlvbiBvZiB0aGUgcGx1Z2luLiBBbGwgb2YgdGhlc2UgZmlsZXMgYXJl IHJlbW92ZWQgb24NCj4gK2V4aXQgb2YgdGhlIHBsdWdpbiBpbmNsdWRpbmcgc3VjY2Vzc2Z1bCBv ciB1bnN1Y2Nlc3NmdWwgZXhlY3V0aW9uIChzdWNoIGFzIGEgUHl0aG9uIGV4Y2VwdGlvbiBvY2N1 cnJpbmcpLiBJZiBmb3IgYW55DQo+ICtyZWFzb24sIGFueSBmaWxlcyBpbiB0aGUgcGFja2FnZSBl eGlzdCBwcmlvciB0byBydW5uaW5nIHRoZSBwbHVnaW4gd2l0aCB0aGUgYC51bmNydXN0aWZ5X3Bs dWdpbmAgZXh0ZW5zaW9uLCB0aGUgcGx1Z2luDQo+ICt3aWxsIGluZm9ybSB0aGUgdXNlciB0byBy ZW1vdmUgdGhlc2UgZmlsZXMgYW5kIGV4aXQgYmVmb3JlIHJ1bm5pbmcgVW5jcnVzdGlmeS4gVGhp cyBpcyB0byBlbnN1cmUgdGhlIGFjY3VyYWN5IG9mIHRoZQ0KPiArcmVzdWx0cyByZXBvcnRlZCBm cm9tIGVhY2ggZXhlY3V0aW9uIGluc3RhbmNlIG9mIHRoZSBwbHVnaW4uDQo+ICsNCj4gK1RoZSBw bHVnaW4gZGV0ZXJtaW5lcyB0aGUgbGlzdCBvZiByZWxldmFudCBmaWxlcyB0byBjaGVjayB3aXRo IFVuY3J1c3RpZnkgYW5kIHRoZW4gaW52b2tlcyBVbmNydXN0aWZ5IHdpdGggdGhhdCBmaWxlDQo+ ICtsaXN0LiBGb3IgYW55IGZpbGVzIG5vdCBjb21wbGlhbnQgdG8gdGhlIGNvbmZpZ3VyYXRpb24g ZmlsZSBwcm92aWRlZCwgVW5jcnVzdGlmeSB3aWxsIGdlbmVyYXRlIGEgY29ycmVzcG9uZGluZyBm aWxlDQo+ICt3aXRoIHRoZSBgLnVuY3J1c3RpZnlfcGx1Z2luYCBleHRlbnNpb24uIFRoZSBwbHVn aW4gZGlzY292ZXJzIGFsbCBvZiB0aGVzZSBmaWxlcy4gSWYgYW55IHN1Y2ggZmlsZXMgYXJlIHBy ZXNlbnQsIHRoaXMNCj4gK2luZGljYXRlcyBhIGZvcm1hdHRpbmcgaXNzdWUgd2FzIGZvdW5kIGFu ZCB0aGUgdGVzdCBpcyBtYXJrZWQgZmFpbGVkICh1bmxlc3MgYEF1ZGl0T25seWAgbW9kZSBpcyBl bmFibGVkKS4NCj4gKw0KPiArVGhlIHRlc3QgY2FzZSBsb2cgd2lsbCBjb250YWluIGEgcmVwb3J0 IG9mIHdoaWNoIGZpbGVzIGZhaWxlZCB0byBmb3JtYXQgcHJvcGVybHksIGFsbG93aW5nIHRoZSB1 c2VyIHRvIHJ1biBVbmNydXN0aWZ5DQo+ICthZ2FpbnN0IHRoZSBmaWxlIGxvY2FsbHkgdG8gZml4 IHRoZSBpc3N1ZS4gSWYgdGhlIGBPdXRwdXRGaWxlRGlmZnNgIGNvbmZpZ3VyYXRpb24gb3B0aW9u IGlzIHNldCB0byBgVHJ1ZWAsIHRoZSBwbHVnaW4NCj4gK3dpbGwgb3V0cHV0IGRpZmYgY2h1bmtz IGZvciBhbGwgY29kZSBmb3JtYXR0aW5nIGlzc3VlcyBpbiB0aGUgdGVzdCBjYXNlIGxvZy4NCj4g ZGlmZiAtLWdpdCBhLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvVW5jcnVzdGlmeS5weSBiLy5w eXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvVW5jcnVzdGlmeS5weQ0KPiBuZXcgZmlsZSBtb2RlIDEw MDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMDAuLjhiZDY3M2U4NTIzZQ0KPiAtLS0gL2Rldi9udWxs DQo+ICsrKyBiLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvVW5jcnVzdGlmeS5weQ0KPiBAQCAt MCwwICsxLDU1NSBAQA0KPiArIyBAZmlsZSBVbmNydXN0aWZ5LnB5DQo+ICsjDQo+ICsjIEFuIGVk azItcHl0b29sIGJhc2VkIHBsdWdpbiB3cmFwcGVyIGZvciBVbmNydXN0aWZ5DQo+ICsjDQo+ICsj IENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLg0KPiArIyBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiArIyMNCj4gK2ltcG9ydCBkaWZmbGli DQo+ICtpbXBvcnQgZXJybm8NCj4gK2ltcG9ydCBsb2dnaW5nDQo+ICtpbXBvcnQgb3MNCj4gK2lt cG9ydCBwYXRobGliDQo+ICtpbXBvcnQgc2h1dGlsDQo+ICtpbXBvcnQgdGltZWl0DQo+ICtmcm9t IGVkazJ0b29sZXh0LmVudmlyb25tZW50IGltcG9ydCB2ZXJzaW9uX2FnZ3JlZ2F0b3INCj4gK2Zy b20gZWRrMnRvb2xleHQuZW52aXJvbm1lbnQucGx1Z2luX21hbmFnZXIgaW1wb3J0IFBsdWdpbk1h bmFnZXINCj4gK2Zyb20gZWRrMnRvb2xleHQuZW52aXJvbm1lbnQucGx1Z2ludHlwZXMuY2lfYnVp bGRfcGx1Z2luIGltcG9ydCBJQ2lCdWlsZFBsdWdpbg0KPiArZnJvbSBlZGsydG9vbGV4dC5lbnZp cm9ubWVudC5wbHVnaW50eXBlcy51ZWZpX2hlbHBlcl9wbHVnaW4gaW1wb3J0IEhlbHBlckZ1bmN0 aW9ucw0KPiArZnJvbSBlZGsydG9vbGV4dC5lbnZpcm9ubWVudC52YXJfZGljdCBpbXBvcnQgVmFy RGljdA0KPiArZnJvbSBlZGsydG9vbGxpYi5sb2cuanVuaXRfcmVwb3J0X2Zvcm1hdCBpbXBvcnQg SnVuaXRSZXBvcnRUZXN0Q2FzZQ0KPiArZnJvbSBlZGsydG9vbGxpYi51ZWZpLmVkazIucGF0aF91 dGlsaXRpZXMgaW1wb3J0IEVkazJQYXRoDQo+ICtmcm9tIGVkazJ0b29sbGliLnV0aWxpdHlfZnVu Y3Rpb25zIGltcG9ydCAgUnVuQ21kDQo+ICtmcm9tIGlvIGltcG9ydCBTdHJpbmdJTw0KPiArZnJv bSB0eXBpbmcgaW1wb3J0IEFueSwgRGljdCwgTGlzdCwgVHVwbGUNCj4gKw0KPiArIw0KPiArIyBQ cm92aWRlIG1vcmUgdXNlciBmcmllbmRseSBtZXNzYWdlcyBmb3IgY2VydGFpbiBzY2VuYXJpb3MN Cj4gKyMNCj4gK2NsYXNzIFVuY3J1c3RpZnlFeGNlcHRpb24oRXhjZXB0aW9uKToNCj4gKyAgICBk ZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSwgZXhpdF9jb2RlKToNCj4gKyAgICAgICAgc3VwZXIo KS5fX2luaXRfXyhtZXNzYWdlKQ0KPiArICAgICAgICBzZWxmLmV4aXRfY29kZSA9IGV4aXRfY29k ZQ0KPiArDQo+ICsNCj4gK2NsYXNzIFVuY3J1c3RpZnlBcHBFbnZWYXJOb3RGb3VuZEV4Y2VwdGlv bihVbmNydXN0aWZ5RXhjZXB0aW9uKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2Fn ZSk6DQo+ICsgICAgICAgIHN1cGVyKCkuX19pbml0X18obWVzc2FnZSwgLTEwMSkNCj4gKw0KPiAr DQo+ICtjbGFzcyBVbmNydXN0aWZ5QXBwVmVyc2lvbkVycm9yRXhjZXB0aW9uKFVuY3J1c3RpZnlF eGNlcHRpb24pOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXNzYWdlKToNCj4gKyAgICAg ICAgc3VwZXIoKS5fX2luaXRfXyhtZXNzYWdlLCAtMTAyKQ0KPiArDQo+ICsNCj4gK2NsYXNzIFVu Y3J1c3RpZnlBcHBFeGVjdXRpb25FeGNlcHRpb24oVW5jcnVzdGlmeUV4Y2VwdGlvbik6DQo+ICsg ICAgZGVmIF9faW5pdF9fKHNlbGYsIG1lc3NhZ2UpOg0KPiArICAgICAgICBzdXBlcigpLl9faW5p dF9fKG1lc3NhZ2UsIC0xMDMpDQo+ICsNCj4gKw0KPiArY2xhc3MgVW5jcnVzdGlmeVN0YWxlUGx1 Z2luRm9ybWF0dGVkRmlsZXNFeGNlcHRpb24oVW5jcnVzdGlmeUV4Y2VwdGlvbik6DQo+ICsgICAg ZGVmIF9faW5pdF9fKHNlbGYsIG1lc3NhZ2UpOg0KPiArICAgICAgICBzdXBlcigpLl9faW5pdF9f KG1lc3NhZ2UsIC0xMjApDQo+ICsNCj4gKw0KPiArY2xhc3MgVW5jcnVzdGlmeUlucHV0RmlsZUNy ZWF0aW9uRXJyb3JFeGNlcHRpb24oVW5jcnVzdGlmeUV4Y2VwdGlvbik6DQo+ICsgICAgZGVmIF9f aW5pdF9fKHNlbGYsIG1lc3NhZ2UpOg0KPiArICAgICAgICBzdXBlcigpLl9faW5pdF9fKG1lc3Nh Z2UsIC0xMjEpDQo+ICsNCj4gK2NsYXNzIFVuY3J1c3RpZnlJbnZhbGlkSWdub3JlU3RhbmRhcmRQ YXRoc0V4Y2VwdGlvbihVbmNydXN0aWZ5RXhjZXB0aW9uKToNCj4gKyAgICBkZWYgX19pbml0X18o c2VsZiwgbWVzc2FnZSk6DQo+ICsgICAgICAgIHN1cGVyKCkuX19pbml0X18obWVzc2FnZSwgLTEy MikNCj4gKw0KPiArY2xhc3MgVW5jcnVzdGlmeUdpdElnbm9yZUZpbGVFeGNlcHRpb24oVW5jcnVz dGlmeUV4Y2VwdGlvbik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1lc3NhZ2UpOg0KPiAr ICAgICAgICBzdXBlcigpLl9faW5pdF9fKG1lc3NhZ2UsIC0xNDApDQo+ICsNCj4gKw0KPiArY2xh c3MgVW5jcnVzdGlmeUdpdFN1Ym1vZHVsZUV4Y2VwdGlvbihVbmNydXN0aWZ5RXhjZXB0aW9uKToN Cj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSk6DQo+ICsgICAgICAgIHN1cGVyKCku X19pbml0X18obWVzc2FnZSwgLTE0MSkNCj4gKw0KPiArDQo+ICtjbGFzcyBVbmNydXN0aWZ5KElD aUJ1aWxkUGx1Z2luKToNCj4gKyAgICAiIiINCj4gKyAgICBBIENpQnVpbGRQbHVnaW4gdGhhdCB1 c2VzIFVuY3J1c3RpZnkgdG8gZm9ybWF0IHRoZSBzb3VyY2UgZmlsZXMgaW4gdGhlDQo+ICsgICAg cGFja2FnZSBiZWluZyB0ZXN0ZWQgZm9yIGNvZGluZyBzdGFuZGFyZCBpc3N1ZXMuDQo+ICsNCj4g KyAgICBCeSBkZWZhdWx0LCB0aGUgcGx1Z2luIHJ1bnMgYWdhaW5zdCBzdGFuZGFyZCBDIHNvdXJj ZSBmaWxlIGV4dGVuc2lvbnMgYnV0DQo+ICsgICAgaXRzIGNvbmZpZ3VyYXRpb24gY2FuIGJlIG1v ZGlmaWVkIHRocm91Z2ggaXRzIGNvbmZpZ3VyYXRpb24gZmlsZS4NCj4gKw0KPiArICAgIENvbmZp Z3VyYXRpb24gb3B0aW9uczoNCj4gKyAgICAiVW5jcnVzdGlmeSI6IHsNCj4gKyAgICAgICAgIkFk ZGl0aW9uYWxJbmNsdWRlUGF0aHMiOiBbXSwgIyBBZGRpdGlvbmFsIHBhdGhzIHRvIGNoZWNrIGZv cm1hdHRpbmcgKHdpbGRjYXJkcyBzdXBwb3J0ZWQpLg0KPiArICAgICAgICAiQXVkaXRPbmx5Ijog RmFsc2UsICAgICAgICAgICAjIERvbid0IGZhaWwgdGhlIGJ1aWxkIGlmIHRoZXJlIGFyZSBlcnJv cnMuICBKdXN0IGxvZyB0aGVtLg0KPiArICAgICAgICAiQ29uZmlnRmlsZVBhdGgiOiAiIiwgICAg ICAgICAjIEN1c3RvbSBwYXRoIHRvIGFuIFVuY3J1c3RpZnkgY29uZmlnIGZpbGUuDQo+ICsgICAg ICAgICJJZ25vcmVTdGFuZGFyZFBhdGhzIjogW10sICAgICMgU3RhbmRhcmQgUGx1Z2luIGRlZmlu ZWQgcGF0aHMgdGhhdCBzaG91bGQgYmUgaWdub3JlZC4NCj4gKyAgICAgICAgIk91dHB1dEZpbGVE aWZmcyI6IEZhbHNlLCAgICAgIyBPdXRwdXQgY2h1bmtzIG9mIGZvcm1hdHRpbmcgZGlmZnMgaW4g dGhlIHRlc3QgY2FzZSBsb2cuDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICMgVGhpcyBjYW4gc2lnbmlmaWNhbnRseSBzbG93IGRvd24gdGhlIHBsdWdpbiBvbiB2ZXJ5 IGxhcmdlIHBhY2thZ2VzLg0KPiArICAgICAgICAiU2tpcEdpdEV4Y2x1c2lvbnMiOiBGYWxzZSAg ICAjIERvbid0IGV4Y2x1ZGUgZ2l0IGlnbm9yZWQgZmlsZXMgYW5kIGZpbGVzIGluIGdpdCBzdWJt b2R1bGVzLg0KPiArICAgIH0NCj4gKyAgICAiIiINCj4gKw0KPiArICAgICMNCj4gKyAgICAjIEJ5 IGRlZmF1bHQsIHVzZSBhbiAidW5jcnVzdGlmeS5jZmciIGNvbmZpZyBmaWxlIGluIHRoZSBwbHVn aW4gZGlyZWN0b3J5DQo+ICsgICAgIyBBIHBhY2thZ2UgY2FuIG92ZXJyaWRlIHRoaXMgcGF0aCB2 aWEgIkNvbmZpZ0ZpbGVQYXRoIg0KPiArICAgICMNCj4gKyAgICAjIE5vdGU6IFZhbHVlcyBzcGVj aWZpZWQgdmlhICJDb25maWdGaWxlUGF0aCIgYXJlIHJlbGF0aXZlIHRvIHRoZSBwYWNrYWdlDQo+ ICsgICAgIw0KPiArICAgIERFRkFVTFRfQ09ORklHX0ZJTEVfUEFUSCA9IG9zLnBhdGguam9pbigN Cj4gKyAgICAgICAgcGF0aGxpYi5QYXRoKF9fZmlsZV9fKS5wYXJlbnQucmVzb2x2ZSgpLCAidW5j cnVzdGlmeS5jZmciKQ0KPiArDQo+ICsgICAgIw0KPiArICAgICMgVGhlIGV4dGVuc2lvbiB1c2Vk IGZvciBmb3JtYXR0ZWQgZmlsZXMgcHJvZHVjZWQgYnkgdGhpcyBwbHVnaW4NCj4gKyAgICAjDQo+ ICsgICAgRk9STUFUVEVEX0ZJTEVfRVhURU5TSU9OID0gIi51bmNydXN0aWZ5X3BsdWdpbiINCj4g Kw0KPiArICAgICMNCj4gKyAgICAjIEEgcGFja2FnZSBjYW4gYWRkIGFueSBhZGRpdGlvbmFsIHBh dGhzIHdpdGggIkFkZGl0aW9uYWxJbmNsdWRlUGF0aHMiDQo+ICsgICAgIyBBIHBhY2thZ2UgY2Fu IHJlbW92ZSBhbnkgb2YgdGhlc2UgcGF0aHMgd2l0aCAiSWdub3JlU3RhbmRhcmRQYXRocyINCj4g KyAgICAjDQo+ICsgICAgU1RBTkRBUkRfUExVR0lOX0RFRklORURfUEFUSFMgPSAoIiouYyIsICIq LmgiKQ0KPiArDQo+ICsgICAgIw0KPiArICAgICMgVGhlIFVuY3J1c3RpZnkgYXBwbGljYXRpb24g cGF0aCBzaG91bGQgc2V0IGluIHRoaXMgZW52aXJvbm1lbnQgdmFyaWFibGUNCj4gKyAgICAjDQo+ ICsgICAgVU5DUlVTVElGWV9QQVRIX0VOVl9LRVkgPSAiVU5DUlVTVElGWV9DSV9QQVRIIg0KPiAr DQo+ICsgICAgZGVmIEdldFRlc3ROYW1lKHNlbGYsIHBhY2thZ2VuYW1lOiBzdHIsIGVudmlyb25t ZW50OiBWYXJEaWN0KSAtPiBUdXBsZToNCj4gKyAgICAgICAgIiIiIFByb3ZpZGUgdGhlIHRlc3Rj YXNlIG5hbWUgYW5kIGNsYXNzbmFtZSBmb3IgdXNlIGluIHJlcG9ydGluZw0KPiArDQo+ICsgICAg ICAgICAgICBBcmdzOg0KPiArICAgICAgICAgICAgICBwYWNrYWdlbmFtZTogc3RyaW5nIGNvbnRh aW5pbmcgbmFtZSBvZiBwYWNrYWdlIHRvIGJ1aWxkDQo+ICsgICAgICAgICAgICAgIGVudmlyb25t ZW50OiBUaGUgVmFyRGljdCBmb3IgdGhlIHRlc3QgdG8gcnVuIGluDQo+ICsgICAgICAgICAgICBS ZXR1cm5zOg0KPiArICAgICAgICAgICAgICAgIEEgdHVwbGUgY29udGFpbmluZyB0aGUgdGVzdGNh c2UgbmFtZSBhbmQgdGhlIGNsYXNzbmFtZQ0KPiArICAgICAgICAgICAgICAgICh0ZXN0Y2FzZW5h bWUsIGNsYXNzbmFtZSkNCj4gKyAgICAgICAgICAgICAgICB0ZXN0Y2xhc3NuYW1lOiBhIGRlc2Ny aXB0aXZlIHN0cmluZyBmb3IgdGhlIHRlc3RjYXNlIGNhbiBpbmNsdWRlIHdoaXRlc3BhY2UNCj4g KyAgICAgICAgICAgICAgICBjbGFzc25hbWU6IHNob3VsZCBiZSBwYXR0ZXJuZWQgPHBhY2thZ2Vu YW1lPi48cGx1Z2luPi48b3B0aW9uYWxseSBhbnkgdW5pcXVlIGNvbmRpdGlvbj4NCj4gKyAgICAg ICAgIiIiDQo+ICsgICAgICAgIHJldHVybiAoIkNoZWNrIGZpbGUgY29kaW5nIHN0YW5kYXJkIGNv bXBsaWFuY2UgaW4gIiArIHBhY2thZ2VuYW1lLCBwYWNrYWdlbmFtZSArICIuVW5jcnVzdGlmeSIp DQo+ICsNCj4gKyAgICBkZWYgUnVuQnVpbGRQbHVnaW4oc2VsZiwgcGFja2FnZV9yZWxfcGF0aDog c3RyLCBlZGsyX3BhdGg6IEVkazJQYXRoLCBwYWNrYWdlX2NvbmZpZzogRGljdFtzdHIsIExpc3Rb c3RyXV0sDQo+IGVudmlyb25tZW50X2NvbmZpZzogQW55LCBwbHVnaW5fbWFuYWdlcjogUGx1Z2lu TWFuYWdlciwgcGx1Z2luX21hbmFnZXJfaGVscGVyOiBIZWxwZXJGdW5jdGlvbnMsIHRjOiBKdW5p dFJlcG9ydFRlc3RDYXNlLA0KPiBvdXRwdXRfc3RyZWFtPU5vbmUpIC0+IGludDoNCj4gKyAgICAg ICAgIiIiDQo+ICsgICAgICAgIEV4dGVybmFsIGZ1bmN0aW9uIG9mIHBsdWdpbi4gVGhpcyBmdW5j dGlvbiBpcyB1c2VkIHRvIHBlcmZvcm0gdGhlIHRhc2sgb2YgdGhlIENpQnVpbGQgUGx1Z2luLg0K PiArDQo+ICsgICAgICAgIEFyZ3M6DQo+ICsgICAgICAgICAgLSBwYWNrYWdlX3JlbF9wYXRoOiBl ZGsyIHdvcmtzcGFjZSByZWxhdGl2ZSBwYXRoIHRvIHRoZSBwYWNrYWdlDQo+ICsgICAgICAgICAg LSBlZGsyX3BhdGg6IEVkazJQYXRoIG9iamVjdCB3aXRoIHdvcmtzcGFjZSBhbmQgcGFja2FnZXMg cGF0aHMNCj4gKyAgICAgICAgICAtIHBhY2thZ2VfY29uZmlnOiBEaWN0aW9uYXJ5IHdpdGggdGhl IHBhY2thZ2UgY29uZmlndXJhdGlvbg0KPiArICAgICAgICAgIC0gZW52aXJvbm1lbnRfY29uZmln OiBFbnZpcm9ubWVudCBjb25maWd1cmF0aW9uDQo+ICsgICAgICAgICAgLSBwbHVnaW5fbWFuYWdl cjogUGx1Z2luIE1hbmFnZXIgSW5zdGFuY2UNCj4gKyAgICAgICAgICAtIHBsdWdpbl9tYW5hZ2Vy X2hlbHBlcjogUGx1Z2luIE1hbmFnZXIgSGVscGVyIEluc3RhbmNlDQo+ICsgICAgICAgICAgLSB0 YzogSlVuaXQgdGVzdCBjYXNlDQo+ICsgICAgICAgICAgLSBvdXRwdXRfc3RyZWFtOiBUaGUgU3Ry aW5nSU8gb3V0cHV0IHN0cmVhbSBmcm9tIHRoaXMgcGx1Z2luIChsb2dnaW5nKQ0KPiArDQo+ICsg ICAgICAgIFJldHVybnMNCj4gKyAgICAgICAgICA+MCA6IE51bWJlciBvZiBlcnJvcnMgZm91bmQN Cj4gKyAgICAgICAgICAwICA6IFBhc3NlZCBzdWNjZXNzZnVsbHkNCj4gKyAgICAgICAgICAtMSA6 IFNraXBwZWQgZm9yIG1pc3NpbmcgcHJlcmVxDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICB0 cnk6DQo+ICsgICAgICAgICAgICAjIEluaXRpYWxpemUgcGx1Z2luIGFuZCBjaGVjayBwcmUtcmVx dWlzaXRlcy4NCj4gKyAgICAgICAgICAgIHNlbGYuX2luaXRpYWxpemVfZW52aXJvbm1lbnRfaW5m bygNCj4gKyAgICAgICAgICAgICAgICBwYWNrYWdlX3JlbF9wYXRoLCBlZGsyX3BhdGgsIHBhY2th Z2VfY29uZmlnLCB0YykNCj4gKyAgICAgICAgICAgIHNlbGYuX2luaXRpYWxpemVfY29uZmlndXJh dGlvbigpDQo+ICsgICAgICAgICAgICBzZWxmLl9jaGVja19mb3JfcHJlZXhpc3RpbmdfZm9ybWF0 dGVkX2ZpbGVzKCkNCj4gKw0KPiArICAgICAgICAgICAgIyBMb2cgaW1wb3J0YW50IGNvbnRleHQg aW5mb3JtYXRpb24uDQo+ICsgICAgICAgICAgICBzZWxmLl9sb2dfdW5jcnVzdGlmeV9hcHBfaW5m bygpDQo+ICsNCj4gKyAgICAgICAgICAgICMgQ3JlYXRlIG1ldGEgaW5wdXQgZmlsZXMgJiBkaXJl Y3Rvcmllcw0KPiArICAgICAgICAgICAgc2VsZi5fY3JlYXRlX3RlbXBfd29ya2luZ19kaXJlY3Rv cnkoKQ0KPiArICAgICAgICAgICAgc2VsZi5fY3JlYXRlX3VuY3J1c3RpZnlfZmlsZV9saXN0X2Zp bGUoKQ0KPiArDQo+ICsgICAgICAgICAgICBzZWxmLl9ydW5fdW5jcnVzdGlmeSgpDQo+ICsNCj4g KyAgICAgICAgICAgICMgUG9zdC1leGVjdXRpb24gYWN0aW9ucy4NCj4gKyAgICAgICAgICAgIHNl bGYuX3Byb2Nlc3NfdW5jcnVzdGlmeV9yZXN1bHRzKCkNCj4gKw0KPiArICAgICAgICBleGNlcHQg VW5jcnVzdGlmeUV4Y2VwdGlvbiBhcyBlOg0KPiArICAgICAgICAgICAgc2VsZi5fdGMuTG9nU3Rk RXJyb3IoDQo+ICsgICAgICAgICAgICAgICAgZiJVbmNydXN0aWZ5IGVycm9yIHtlLmV4aXRfY29k ZX0uIERldGFpbHM6XG5cbntzdHIoZSl9IikNCj4gKyAgICAgICAgICAgIGxvZ2dpbmcud2Fybmlu ZygNCj4gKyAgICAgICAgICAgICAgICBmIlVuY3J1c3RpZnkgZXJyb3Ige2UuZXhpdF9jb2RlfS4g RGV0YWlsczpcblxue3N0cihlKX0iKQ0KPiArICAgICAgICAgICAgcmV0dXJuIC0xDQo+ICsgICAg ICAgIGVsc2U6DQo+ICsgICAgICAgICAgICBpZiBzZWxmLl9mb3JtYXR0ZWRfZmlsZV9lcnJvcl9j b3VudCA+IDA6DQo+ICsgICAgICAgICAgICAgICAgaWYgc2VsZi5fYXVkaXRfb25seV9tb2RlOg0K PiArICAgICAgICAgICAgICAgICAgICBsb2dnaW5nLmluZm8oDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAiU2V0dGluZyB0ZXN0IGFzIHNraXBwZWQgc2luY2UgQXVkaXRPbmx5IGlzIGVuYWJs ZWQiKQ0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLl90Yy5TZXRTa2lwcGVkKCkNCj4gKyAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xDQo+ICsgICAgICAgICAgICAgICAgZWxzZToNCj4g KyAgICAgICAgICAgICAgICAgICAgc2VsZi5fdGMuU2V0RmFpbGVkKA0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgZiJVbmNydXN0aWZ5IGNoZWNrcyBmYWlsZWQgZHVlIHRvIHtzZWxmLl9mb3Jt YXR0ZWRfZmlsZV9lcnJvcl9jb3VudH0gaW5jb3JyZWN0bHkgZm9ybWF0dGVkDQo+IGZpbGVzLiIs ICJDSEVDS19GQUlMRUQiKQ0KPiArICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAg ICBzZWxmLl90Yy5TZXRTdWNjZXNzKCkNCj4gKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9mb3Jt YXR0ZWRfZmlsZV9lcnJvcl9jb3VudA0KPiArICAgICAgICBmaW5hbGx5Og0KPiArICAgICAgICAg ICAgc2VsZi5fY2xlYW51cF90ZW1wb3JhcnlfZm9ybWF0dGVkX2ZpbGVzKCkNCj4gKyAgICAgICAg ICAgIHNlbGYuX2NsZWFudXBfdGVtcG9yYXJ5X2RpcmVjdG9yeSgpDQo+ICsNCj4gKyAgICBkZWYg X2luaXRpYWxpemVfY29uZmlndXJhdGlvbihzZWxmKSAtPiBOb25lOg0KPiArICAgICAgICAiIiIN Cj4gKyAgICAgICAgSW5pdGlhbGl6ZXMgcGx1Z2luIGNvbmZpZ3VyYXRpb24uDQo+ICsgICAgICAg ICIiIg0KPiArICAgICAgICBzZWxmLl9pbml0aWFsaXplX2FwcF9pbmZvKCkNCj4gKyAgICAgICAg c2VsZi5faW5pdGlhbGl6ZV9jb25maWdfZmlsZV9pbmZvKCkNCj4gKyAgICAgICAgc2VsZi5faW5p dGlhbGl6ZV9maWxlX3RvX2Zvcm1hdF9pbmZvKCkNCj4gKyAgICAgICAgc2VsZi5faW5pdGlhbGl6 ZV90ZXN0X2Nhc2Vfb3V0cHV0X29wdGlvbnMoKQ0KPiArDQo+ICsgICAgZGVmIF9jaGVja19mb3Jf cHJlZXhpc3RpbmdfZm9ybWF0dGVkX2ZpbGVzKHNlbGYpIC0+IE5vbmU6DQo+ICsgICAgICAgICIi Ig0KPiArICAgICAgICBDaGVja3MgaWYgYW55IGZvcm1hdHRlZCBmaWxlcyBmcm9tIHByaW9yIGV4 ZWN1dGlvbiBhcmUgcHJlc2VudC4NCj4gKw0KPiArICAgICAgICBFeGlzdGVuY2Ugb2Ygc3VjaCBm aWxlcyBpcyBhbiB1bmV4cGVjdGVkIGNvbmRpdGlvbi4gVGhpcyBtaWdodCByZXN1bHQNCj4gKyAg ICAgICAgZnJvbSBhbiBlcnJvciB0aGF0IG9jY3VycmVkIGR1cmluZyBhIHByZXZpb3VzIHJ1biBv ciBhIHByZW1hdHVyZSBleGl0IGZyb20gYSBkZWJ1ZyBzY2VuYXJpby4gSW4gYW55IGNhc2UsIHRo ZQ0KPiBwYWNrYWdlIHNob3VsZCBiZSBjbGVhbiBiZWZvcmUgc3RhcnRpbmcgYSBuZXcgcnVuLg0K PiArICAgICAgICAiIiINCj4gKyAgICAgICAgcHJlX2V4aXN0aW5nX2Zvcm1hdHRlZF9maWxlX2Nv dW50ID0gbGVuKA0KPiArICAgICAgICAgICAgW3N0cihwYXRoLnJlc29sdmUoKSkgZm9yIHBhdGgg aW4NCj4gcGF0aGxpYi5QYXRoKHNlbGYuX2Fic19wYWNrYWdlX3BhdGgpLnJnbG9iKGYnKntVbmNy dXN0aWZ5LkZPUk1BVFRFRF9GSUxFX0VYVEVOU0lPTn0nKV0pDQo+ICsNCj4gKyAgICAgICAgaWYg cHJlX2V4aXN0aW5nX2Zvcm1hdHRlZF9maWxlX2NvdW50ID4gMDoNCj4gKyAgICAgICAgICAgIHJh aXNlIFVuY3J1c3RpZnlTdGFsZVBsdWdpbkZvcm1hdHRlZEZpbGVzRXhjZXB0aW9uKA0KPiArICAg ICAgICAgICAgICAgIGYie3ByZV9leGlzdGluZ19mb3JtYXR0ZWRfZmlsZV9jb3VudH0gZm9ybWF0 dGVkIGZpbGVzIGFscmVhZHkgZXhpc3QuIFRvIHByZXZlbnQgb3ZlcndyaXRpbmcgdGhlc2UgZmls ZXMsDQo+IHBsZWFzZSByZW1vdmUgdGhlbSBiZWZvcmUgcnVubmluZyB0aGlzIHBsdWdpbi4iKQ0K PiArDQo+ICsgICAgZGVmIF9jbGVhbnVwX3RlbXBvcmFyeV9kaXJlY3Rvcnkoc2VsZikgLT4gTm9u ZToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIENsZWFucyB1cCB0aGUgdGVtcG9yYXJ5IGRp cmVjdG9yeSB1c2VkIGZvciB0aGlzIGV4ZWN1dGlvbiBpbnN0YW5jZS4NCj4gKw0KPiArICAgICAg ICBUaGlzIHJlbW92ZXMgdGhlIGRpcmVjdG9yeSBhbmQgYWxsIGZpbGVzIGNyZWF0ZWQgZHVyaW5n IHRoaXMgaW5zdGFuY2UuDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBpZiBoYXNhdHRyKHNl bGYsICdfd29ya2luZ19kaXInKToNCj4gKyAgICAgICAgICAgIHNlbGYuX3JlbW92ZV90cmVlKHNl bGYuX3dvcmtpbmdfZGlyKQ0KPiArDQo+ICsgICAgZGVmIF9jbGVhbnVwX3RlbXBvcmFyeV9mb3Jt YXR0ZWRfZmlsZXMoc2VsZikgLT4gTm9uZToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIENs ZWFucyB1cCB0aGUgdGVtcG9yYXJ5IGZvcm1tYXR0ZWQgZmlsZXMgcHJvZHVjZWQgYnkgVW5jcnVz dGlmeS4NCj4gKw0KPiArICAgICAgICBUaGlzIHdpbGwgcmVjdXJzaXZlbHkgcmVtb3ZlIGFsbCBm b3JtYXR0ZWQgZmlsZXMgZ2VuZXJhdGVkIGJ5IFVuY3J1c3RpZnkNCj4gKyAgICAgICAgZHVyaW5n IHRoaXMgZXhlY3V0aW9uIGluc3RhbmNlLg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgaWYg aGFzYXR0cihzZWxmLCAnX2Fic19wYWNrYWdlX3BhdGgnKToNCj4gKyAgICAgICAgICAgIGZvcm1h dHRlZF9maWxlcyA9IFtzdHIocGF0aC5yZXNvbHZlKCkpIGZvciBwYXRoIGluIHBhdGhsaWIuUGF0 aCgNCj4gKyAgICAgICAgICAgICAgICBzZWxmLl9hYnNfcGFja2FnZV9wYXRoKS5yZ2xvYihmJyp7 VW5jcnVzdGlmeS5GT1JNQVRURURfRklMRV9FWFRFTlNJT059JyldDQo+ICsNCj4gKyAgICAgICAg ICAgIGZvciBmb3JtYXR0ZWRfZmlsZSBpbiBmb3JtYXR0ZWRfZmlsZXM6DQo+ICsgICAgICAgICAg ICAgICAgb3MucmVtb3ZlKGZvcm1hdHRlZF9maWxlKQ0KPiArDQo+ICsgICAgZGVmIF9jcmVhdGVf dGVtcF93b3JraW5nX2RpcmVjdG9yeShzZWxmKSAtPiBOb25lOg0KPiArICAgICAgICAiIiINCj4g KyAgICAgICAgQ3JlYXRlcyB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSB1c2VkIGZvciB0aGlzIGV4 ZWN1dGlvbiBpbnN0YW5jZS4NCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIHNlbGYuX3dvcmtp bmdfZGlyID0gb3MucGF0aC5qb2luKA0KPiArICAgICAgICAgICAgc2VsZi5fYWJzX3dvcmtzcGFj ZV9wYXRoLCAiQnVpbGQiLCAiLnB5dG9vbCIsICJQbHVnaW4iLCAiVW5jcnVzdGlmeSIpDQo+ICsN Cj4gKyAgICAgICAgdHJ5Og0KPiArICAgICAgICAgICAgcGF0aGxpYi5QYXRoKHNlbGYuX3dvcmtp bmdfZGlyKS5ta2RpcihwYXJlbnRzPVRydWUsIGV4aXN0X29rPVRydWUpDQo+ICsgICAgICAgIGV4 Y2VwdCBPU0Vycm9yIGFzIGU6DQo+ICsgICAgICAgICAgICByYWlzZSBVbmNydXN0aWZ5SW5wdXRG aWxlQ3JlYXRpb25FcnJvckV4Y2VwdGlvbigNCj4gKyAgICAgICAgICAgICAgICBmIkVycm9yIGNy ZWF0aW5nIHBsdWdpbiBkaXJlY3Rvcnkge3NlbGYuX3dvcmtpbmdfZGlyfS5cblxue3JlcHIoZSl9 LiIpDQo+ICsNCj4gKyAgICBkZWYgX2NyZWF0ZV91bmNydXN0aWZ5X2ZpbGVfbGlzdF9maWxlKHNl bGYpIC0+IE5vbmU6DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBDcmVhdGVzIHRoZSBmaWxl IHdpdGggdGhlIGxpc3Qgb2Ygc291cmNlIGZpbGVzIGZvciBVbmNydXN0aWZ5IHRvIHByb2Nlc3Mu DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBzZWxmLl9hcHBfaW5wdXRfZmlsZV9wYXRoID0g b3MucGF0aC5qb2luKA0KPiArICAgICAgICAgICAgc2VsZi5fd29ya2luZ19kaXIsICJ1bmNydXN0 aWZ5X2ZpbGVfbGlzdC50eHQiKQ0KPiArDQo+ICsgICAgICAgIHdpdGggb3BlbihzZWxmLl9hcHBf aW5wdXRfZmlsZV9wYXRoLCAndycsIGVuY29kaW5nPSd1dGY4JykgYXMgZjoNCj4gKyAgICAgICAg ICAgIGYud3JpdGVsaW5lcyhmIlxuIi5qb2luKHNlbGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1h dCkpDQo+ICsNCj4gKyAgICBkZWYgX2V4ZWN1dGVfdW5jcnVzdGlmeShzZWxmKSAtPiBOb25lOg0K PiArICAgICAgICAiIiINCj4gKyAgICAgICAgRXhlY3V0ZXMgVW5jcnVzdGlmeSB3aXRoIHRoZSBp bml0aWFsaXplZCBjb25maWd1cmF0aW9uLg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgb3V0 cHV0ID0gU3RyaW5nSU8oKQ0KPiArICAgICAgICBzZWxmLl9hcHBfZXhpdF9jb2RlID0gUnVuQ21k KA0KPiArICAgICAgICAgICAgc2VsZi5fYXBwX3BhdGgsDQo+ICsgICAgICAgICAgICBmIi1jIHtz ZWxmLl9hcHBfY29uZmlnX2ZpbGV9IC1GIHtzZWxmLl9hcHBfaW5wdXRfZmlsZV9wYXRofSAtLWlm LWNoYW5nZWQgLS1zdWZmaXgNCj4ge1VuY3J1c3RpZnkuRk9STUFUVEVEX0ZJTEVfRVhURU5TSU9O fSIsIG91dHN0cmVhbT1vdXRwdXQpDQo+ICsgICAgICAgIHNlbGYuX2FwcF9vdXRwdXQgPSBvdXRw dXQuZ2V0dmFsdWUoKS5zdHJpcCgpLnNwbGl0bGluZXMoKQ0KPiArDQo+ICsgICAgZGVmIF9nZXRf Z2l0X2lnbm9yZWRfcGF0aHMoc2VsZikgLT4gTGlzdFtzdHJdOg0KPiArICAgICAgICAiIiIiDQo+ ICsgICAgICAgIFJldHVybnMgYSBsaXN0IG9mIGZpbGUgYWJzb2x1dGUgcGF0aCBzdHJpbmdzIHRv IGFsbCBmaWxlcyBpZ25vcmVkIGluIHRoaXMgZ2l0IHJlcG9zaXRvcnkuDQo+ICsNCj4gKyAgICAg ICAgSWYgZ2l0IGlzIG5vdCBmb3VuZCwgYW4gZW1wdHkgbGlzdCB3aWxsIGJlIHJldHVybmVkLg0K PiArICAgICAgICAiIiINCj4gKyAgICAgICAgaWYgbm90IHNodXRpbC53aGljaCgiZ2l0Iik6DQo+ ICsgICAgICAgICAgICBsb2dnaW5nLndhcm4oDQo+ICsgICAgICAgICAgICAgICAgIkdpdCBpcyBu b3QgZm91bmQgb24gdGhpcyBzeXN0ZW0uIEdpdCBzdWJtb2R1bGUgcGF0aHMgd2lsbCBub3QgYmUg Y29uc2lkZXJlZC4iKQ0KPiArICAgICAgICAgICAgcmV0dXJuIFtdDQo+ICsNCj4gKyAgICAgICAg b3V0c3RyZWFtX2J1ZmZlciA9IFN0cmluZ0lPKCkNCj4gKyAgICAgICAgZXhpdF9jb2RlID0gUnVu Q21kKCJnaXQiLCAibHMtZmlsZXMgLS1vdGhlciIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICB3b3JraW5nZGlyPXNlbGYuX2Fic193b3Jrc3BhY2VfcGF0aCwgb3V0c3RyZWFtPW91dHN0 cmVhbV9idWZmZXIsIGxvZ2dpbmdfbGV2ZWw9bG9nZ2luZy5OT1RTRVQpDQo+ICsgICAgICAgIGlm IChleGl0X2NvZGUgIT0gMCk6DQo+ICsgICAgICAgICAgICByYWlzZSBVbmNydXN0aWZ5R2l0SWdu b3JlRmlsZUV4Y2VwdGlvbigNCj4gKyAgICAgICAgICAgICAgICBmIkFuIGVycm9yIG9jY3VycmVk IHJlYWRpbmcgZ2l0IGlnbm9yZSBzZXR0aW5ncy4gVGhpcyB3aWxsIHByZXZlbnQgVW5jcnVzdGlm eSBmcm9tIHJ1bm5pbmcgYWdhaW5zdCB0aGUNCj4gZXhwZWN0ZWQgc2V0IG9mIGZpbGVzLiIpDQo+ ICsNCj4gKyAgICAgICAgIyBOb3RlOiBUaGlzIHdpbGwgcG90ZW50aWFsbHkgYmUgYSBsYXJnZSBs aXN0LCBidXQgYXQgbGVhc3Qgc29ydGVkDQo+ICsgICAgICAgIHJldHVybiBvdXRzdHJlYW1fYnVm ZmVyLmdldHZhbHVlKCkuc3RyaXAoKS5zcGxpdGxpbmVzKCkNCj4gKw0KPiArICAgIGRlZiBfZ2V0 X2dpdF9zdWJtb2R1bGVfcGF0aHMoc2VsZikgLT4gTGlzdFtzdHJdOg0KPiArICAgICAgICAiIiIN Cj4gKyAgICAgICAgUmV0dXJucyBhIGxpc3Qgb2YgZGlyZWN0b3J5IGFic29sdXRlIHBhdGggc3Ry aW5ncyB0byB0aGUgcm9vdCBvZiBlYWNoIHN1Ym1vZHVsZSBpbiB0aGUgd29ya3NwYWNlIHJlcG9z aXRvcnkuDQo+ICsNCj4gKyAgICAgICAgSWYgZ2l0IGlzIG5vdCBmb3VuZCwgYW4gZW1wdHkgbGlz dCB3aWxsIGJlIHJldHVybmVkLg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgaWYgbm90IHNo dXRpbC53aGljaCgiZ2l0Iik6DQo+ICsgICAgICAgICAgICBsb2dnaW5nLndhcm4oDQo+ICsgICAg ICAgICAgICAgICAgIkdpdCBpcyBub3QgZm91bmQgb24gdGhpcyBzeXN0ZW0uIEdpdCBzdWJtb2R1 bGUgcGF0aHMgd2lsbCBub3QgYmUgY29uc2lkZXJlZC4iKQ0KPiArICAgICAgICAgICAgcmV0dXJu IFtdDQo+ICsNCj4gKyAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUob3MucGF0aC5qb2luKHNlbGYu X2Fic193b3Jrc3BhY2VfcGF0aCwgIi5naXRtb2R1bGVzIikpOg0KPiArICAgICAgICAgICAgbG9n Z2luZy5pbmZvKA0KPiArICAgICAgICAgICAgICAgIGYiLmdpdG1vZHVsZXMgZmlsZSBmb3VuZC4g RXhjbHVkaW5nIHN1Ym1vZHVsZXMgaW4ge3NlbGYuX3BhY2thZ2VfbmFtZX0uIikNCj4gKw0KPiAr ICAgICAgICAgICAgb3V0c3RyZWFtX2J1ZmZlciA9IFN0cmluZ0lPKCkNCj4gKyAgICAgICAgICAg IGV4aXRfY29kZSA9IFJ1bkNtZCgiZ2l0IiwgImNvbmZpZyAtLWZpbGUgLmdpdG1vZHVsZXMgLS1n ZXQtcmVnZXhwIHBhdGgiLCB3b3JraW5nZGlyPXNlbGYuX2Fic193b3Jrc3BhY2VfcGF0aCwNCj4g b3V0c3RyZWFtPW91dHN0cmVhbV9idWZmZXIsIGxvZ2dpbmdfbGV2ZWw9bG9nZ2luZy5OT1RTRVQp DQo+ICsgICAgICAgICAgICBpZiAoZXhpdF9jb2RlICE9IDApOg0KPiArICAgICAgICAgICAgICAg IHJhaXNlIFVuY3J1c3RpZnlHaXRTdWJtb2R1bGVFeGNlcHRpb24oDQo+ICsgICAgICAgICAgICAg ICAgICAgIGYiLmdpdG1vZHVsZSBmaWxlIGRldGVjdGVkIGJ1dCBhbiBlcnJvciBvY2N1cnJlZCBy ZWFkaW5nIHRoZSBmaWxlLiBDYW5ub3QgcHJvY2VlZCB3aXRoIHVua25vd24NCj4gc3VibW9kdWxl IHBhdGhzLiIpDQo+ICsNCj4gKyAgICAgICAgICAgIHN1Ym1vZHVsZV9wYXRocyA9IFtdDQo+ICsg ICAgICAgICAgICBmb3IgbGluZSBpbiBvdXRzdHJlYW1fYnVmZmVyLmdldHZhbHVlKCkuc3RyaXAo KS5zcGxpdGxpbmVzKCk6DQo+ICsgICAgICAgICAgICAgICAgc3VibW9kdWxlX3BhdGhzLmFwcGVu ZCgNCj4gKyAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5ub3JtcGF0aChvcy5wYXRoLmpvaW4o c2VsZi5fYWJzX3dvcmtzcGFjZV9wYXRoLCBsaW5lLnNwbGl0KClbMV0pKSkNCj4gKw0KPiArICAg ICAgICAgICAgcmV0dXJuIHN1Ym1vZHVsZV9wYXRocw0KPiArICAgICAgICBlbHNlOg0KPiArICAg ICAgICAgICAgcmV0dXJuIFtdDQo+ICsNCj4gKyAgICBkZWYgX2luaXRpYWxpemVfYXBwX2luZm8o c2VsZikgLT4gTm9uZToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIEluaXRpYWxpemUgVW5j cnVzdGlmeSBhcHBsaWNhdGlvbiBpbmZvcm1hdGlvbi4NCj4gKw0KPiArICAgICAgICBUaGlzIGZ1 bmN0aW9uIHdpbGwgZGV0ZXJtaW5lIHRoZSBhcHBsaWNhdGlvbiBwYXRoIGFuZCB2ZXJzaW9uLg0K PiArICAgICAgICAiIiINCj4gKyAgICAgICAgIyBWZXJpZnkgVW5jcnVzdGlmeSBpcyBzcGVjaWZp ZWQgaW4gdGhlIGVudmlyb25tZW50Lg0KPiArICAgICAgICBpZiBVbmNydXN0aWZ5LlVOQ1JVU1RJ RllfUEFUSF9FTlZfS0VZIG5vdCBpbiBvcy5lbnZpcm9uOg0KPiArICAgICAgICAgICAgcmFpc2Ug VW5jcnVzdGlmeUFwcEVudlZhck5vdEZvdW5kRXhjZXB0aW9uKA0KPiArICAgICAgICAgICAgICAg IGYiVW5jcnVzdGlmeSBlbnZpcm9ubWVudCB2YXJpYWJsZSB7VW5jcnVzdGlmeS5VTkNSVVNUSUZZ X1BBVEhfRU5WX0tFWX0gaXMgbm90IHByZXNlbnQuIikNCj4gKw0KPiArICAgICAgICBzZWxmLl9h cHBfcGF0aCA9IHNodXRpbC53aGljaCgndW5jcnVzdGlmeScsIHBhdGg9b3MuZW52aXJvbltVbmNy dXN0aWZ5LlVOQ1JVU1RJRllfUEFUSF9FTlZfS0VZXSkNCj4gKw0KPiArICAgICAgICBpZiBzZWxm Ll9hcHBfcGF0aCBpcyBOb25lOg0KPiArICAgICAgICAgICAgcmFpc2UgRmlsZU5vdEZvdW5kRXJy b3IoDQo+ICsgICAgICAgICAgICAgICAgZXJybm8uRU5PRU5ULCBvcy5zdHJlcnJvcihlcnJuby5F Tk9FTlQpLCBzZWxmLl9hcHBfcGF0aCkNCj4gKw0KPiArICAgICAgICBzZWxmLl9hcHBfcGF0aCA9 IG9zLnBhdGgubm9ybWNhc2Uob3MucGF0aC5ub3JtcGF0aChzZWxmLl9hcHBfcGF0aCkpDQo+ICsN Cj4gKyAgICAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKHNlbGYuX2FwcF9wYXRoKToNCj4gKyAg ICAgICAgICAgIHJhaXNlIEZpbGVOb3RGb3VuZEVycm9yKA0KPiArICAgICAgICAgICAgICAgIGVy cm5vLkVOT0VOVCwgb3Muc3RyZXJyb3IoZXJybm8uRU5PRU5UKSwgc2VsZi5fYXBwX3BhdGgpDQo+ ICsNCj4gKyAgICAgICAgIyBWZXJpZnkgVW5jcnVzdGlmeSBpcyBwcmVzZW50IGF0IHRoZSBleHBl Y3RlZCBwYXRoLg0KPiArICAgICAgICByZXR1cm5fYnVmZmVyID0gU3RyaW5nSU8oKQ0KPiArICAg ICAgICByZXQgPSBSdW5DbWQoc2VsZi5fYXBwX3BhdGgsICItLXZlcnNpb24iLCBvdXRzdHJlYW09 cmV0dXJuX2J1ZmZlcikNCj4gKyAgICAgICAgaWYgKHJldCAhPSAwKToNCj4gKyAgICAgICAgICAg IHJhaXNlIFVuY3J1c3RpZnlBcHBWZXJzaW9uRXJyb3JFeGNlcHRpb24oDQo+ICsgICAgICAgICAg ICAgICAgZiJFcnJvciBvY2N1cnJlZCBleGVjdXRpbmcgLS12ZXJzaW9uOiB7cmV0fS4iKQ0KPiAr DQo+ICsgICAgICAgICMgTG9nIFVuY3J1c3RpZnkgdmVyc2lvbiBpbmZvcm1hdGlvbi4NCj4gKyAg ICAgICAgc2VsZi5fYXBwX3ZlcnNpb24gPSByZXR1cm5fYnVmZmVyLmdldHZhbHVlKCkuc3RyaXAo KQ0KPiArICAgICAgICBzZWxmLl90Yy5Mb2dTdGRPdXQoZiJVbmNydXN0aWZ5IHZlcnNpb246IHtz ZWxmLl9hcHBfdmVyc2lvbn0iKQ0KPiArICAgICAgICB2ZXJzaW9uX2FnZ3JlZ2F0b3IuR2V0VmVy c2lvbkFnZ3JlZ2F0b3IoKS5SZXBvcnRWZXJzaW9uKA0KPiArICAgICAgICAgICAgIlVuY3J1c3Rp ZnkiLCBzZWxmLl9hcHBfdmVyc2lvbiwgdmVyc2lvbl9hZ2dyZWdhdG9yLlZlcnNpb25UeXBlcy5J TkZPKQ0KPiArDQo+ICsgICAgZGVmIF9pbml0aWFsaXplX2NvbmZpZ19maWxlX2luZm8oc2VsZikg LT4gTm9uZToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIEluaXRpYWxpemUgVW5jcnVzdGlm eSBjb25maWd1cmF0aW9uIGZpbGUgaW5mby4NCj4gKw0KPiArICAgICAgICBUaGUgY29uZmlnIGZp bGUgcGF0aCBpcyByZWxhdGl2ZSB0byB0aGUgcGFja2FnZSByb290Lg0KPiArICAgICAgICAiIiIN Cj4gKyAgICAgICAgc2VsZi5fYXBwX2NvbmZpZ19maWxlID0gVW5jcnVzdGlmeS5ERUZBVUxUX0NP TkZJR19GSUxFX1BBVEgNCj4gKyAgICAgICAgaWYgIkNvbmZpZ0ZpbGVQYXRoIiBpbiBzZWxmLl9w YWNrYWdlX2NvbmZpZzoNCj4gKyAgICAgICAgICAgIHNlbGYuX2FwcF9jb25maWdfZmlsZSA9IHNl bGYuX3BhY2thZ2VfY29uZmlnWyJDb25maWdGaWxlUGF0aCJdLnN0cmlwKCkNCj4gKw0KPiArICAg ICAgICAgICAgc2VsZi5fYXBwX2NvbmZpZ19maWxlID0gb3MucGF0aC5ub3JtcGF0aCgNCj4gKyAg ICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oc2VsZi5fYWJzX3BhY2thZ2VfcGF0aCwgc2VsZi5f YXBwX2NvbmZpZ19maWxlKSkNCj4gKw0KPiArICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUo c2VsZi5fYXBwX2NvbmZpZ19maWxlKToNCj4gKyAgICAgICAgICAgIHJhaXNlIEZpbGVOb3RGb3Vu ZEVycm9yKA0KPiArICAgICAgICAgICAgICAgIGVycm5vLkVOT0VOVCwgb3Muc3RyZXJyb3IoZXJy bm8uRU5PRU5UKSwgc2VsZi5fYXBwX2NvbmZpZ19maWxlKQ0KPiArDQo+ICsgICAgZGVmIF9pbml0 aWFsaXplX2Vudmlyb25tZW50X2luZm8oc2VsZiwgcGFja2FnZV9yZWxfcGF0aDogc3RyLCBlZGsy X3BhdGg6IEVkazJQYXRoLCBwYWNrYWdlX2NvbmZpZzogRGljdFtzdHIsDQo+IExpc3Rbc3RyXV0s IHRjOiBKdW5pdFJlcG9ydFRlc3RDYXNlKSAtPiBOb25lOg0KPiArICAgICAgICAiIiINCj4gKyAg ICAgICAgSW5pdGlhbGl6ZXMgcGx1Z2luIGVudmlyb25tZW50IGluZm9ybWF0aW9uLg0KPiArICAg ICAgICAiIiINCj4gKyAgICAgICAgc2VsZi5fYWJzX3BhY2thZ2VfcGF0aCA9IGVkazJfcGF0aC5H ZXRBYnNvbHV0ZVBhdGhPblRoaXNTeXRlbUZyb21FZGsyUmVsYXRpdmVQYXRoKA0KPiArICAgICAg ICAgICAgcGFja2FnZV9yZWxfcGF0aCkNCj4gKyAgICAgICAgc2VsZi5fYWJzX3dvcmtzcGFjZV9w YXRoID0gZWRrMl9wYXRoLldvcmtzcGFjZVBhdGgNCj4gKyAgICAgICAgc2VsZi5fcGFja2FnZV9j b25maWcgPSBwYWNrYWdlX2NvbmZpZw0KPiArICAgICAgICBzZWxmLl9wYWNrYWdlX25hbWUgPSBv cy5wYXRoLmJhc2VuYW1lKA0KPiArICAgICAgICAgICAgb3MucGF0aC5ub3JtcGF0aChwYWNrYWdl X3JlbF9wYXRoKSkNCj4gKyAgICAgICAgc2VsZi5fcmVsX3BhY2thZ2VfcGF0aCA9IHBhY2thZ2Vf cmVsX3BhdGgNCj4gKyAgICAgICAgc2VsZi5fdGMgPSB0Yw0KPiArDQo+ICsgICAgZGVmIF9pbml0 aWFsaXplX2ZpbGVfdG9fZm9ybWF0X2luZm8oc2VsZikgLT4gTm9uZToNCj4gKyAgICAgICAgIiIi DQo+ICsgICAgICAgIEZvcm1zIHRoZSBsaXN0IG9mIHNvdXJjZSBmaWxlcyBmb3IgVW5jcnVzdGlm eSB0byBwcm9jZXNzLg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgIyBDcmVhdGUgYSBsaXN0 IG9mIGFsbCB0aGUgcGFja2FnZSByZWxhdGl2ZSBmaWxlIHBhdGhzIGluIHRoZSBwYWNrYWdlIHRv IHJ1biBhZ2FpbnN0IFVuY3J1c3RpZnkuDQo+ICsgICAgICAgIHJlbF9maWxlX3BhdGhzX3RvX2Zv cm1hdCA9IGxpc3QoDQo+ICsgICAgICAgICAgICBVbmNydXN0aWZ5LlNUQU5EQVJEX1BMVUdJTl9E RUZJTkVEX1BBVEhTKQ0KPiArDQo+ICsgICAgICAgICMgQWxsb3cgdGhlIGNpLnlhbWwgdG8gcmVt b3ZlIGFueSBvZiB0aGUgcHJlLWRlZmluZWQgc3RhbmRhcmQgcGF0aHMNCj4gKyAgICAgICAgaWYg Iklnbm9yZVN0YW5kYXJkUGF0aHMiIGluIHNlbGYuX3BhY2thZ2VfY29uZmlnOg0KPiArICAgICAg ICAgICAgZm9yIGEgaW4gc2VsZi5fcGFja2FnZV9jb25maWdbIklnbm9yZVN0YW5kYXJkUGF0aHMi XToNCj4gKyAgICAgICAgICAgICAgICBpZiBhLnN0cmlwKCkgaW4gcmVsX2ZpbGVfcGF0aHNfdG9f Zm9ybWF0Og0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLl90Yy5Mb2dTdGRPdXQoDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICBmIklnbm9yaW5nIHN0YW5kYXJkIHBhdGggZHVlIHRvIGNp LnlhbWwgaWdub3JlOiB7YX0iKQ0KPiArICAgICAgICAgICAgICAgICAgICByZWxfZmlsZV9wYXRo c190b19mb3JtYXQucmVtb3ZlKGEuc3RyaXAoKSkNCj4gKyAgICAgICAgICAgICAgICBlbHNlOg0K PiArICAgICAgICAgICAgICAgICAgICByYWlzZSBVbmNydXN0aWZ5SW52YWxpZElnbm9yZVN0YW5k YXJkUGF0aHNFeGNlcHRpb24oZiJJbnZhbGlkIElnbm9yZVN0YW5kYXJkUGF0aHMgdmFsdWU6IHth fSIpDQo+ICsNCj4gKyAgICAgICAgIyBBbGxvdyB0aGUgY2kueWFtbCB0byBzcGVjaWZ5IGFkZGl0 aW9uYWwgaW5jbHVkZSBwYXRocyBmb3IgdGhpcyBwYWNrYWdlDQo+ICsgICAgICAgIGlmICJBZGRp dGlvbmFsSW5jbHVkZVBhdGhzIiBpbiBzZWxmLl9wYWNrYWdlX2NvbmZpZzoNCj4gKyAgICAgICAg ICAgIHJlbF9maWxlX3BhdGhzX3RvX2Zvcm1hdC5leHRlbmQoDQo+ICsgICAgICAgICAgICAgICAg c2VsZi5fcGFja2FnZV9jb25maWdbIkFkZGl0aW9uYWxJbmNsdWRlUGF0aHMiXSkNCj4gKw0KPiAr ICAgICAgICBzZWxmLl9hYnNfZmlsZV9wYXRoc190b19mb3JtYXQgPSBbXQ0KPiArICAgICAgICBm b3IgcGF0aCBpbiByZWxfZmlsZV9wYXRoc190b19mb3JtYXQ6DQo+ICsgICAgICAgICAgICBzZWxm Ll9hYnNfZmlsZV9wYXRoc190b19mb3JtYXQuZXh0ZW5kKA0KPiArICAgICAgICAgICAgICAgIFtz dHIocGF0aC5yZXNvbHZlKCkpIGZvciBwYXRoIGluIHBhdGhsaWIuUGF0aChzZWxmLl9hYnNfcGFj a2FnZV9wYXRoKS5yZ2xvYihwYXRoKV0pDQo+ICsNCj4gKyAgICAgICAgaWYgbm90ICJTa2lwR2l0 RXhjbHVzaW9ucyIgaW4gc2VsZi5fcGFja2FnZV9jb25maWcgb3Igbm90IHNlbGYuX3BhY2thZ2Vf Y29uZmlnWyJTa2lwR2l0RXhjbHVzaW9ucyJdOg0KPiArICAgICAgICAgICAgIyBSZW1vdmUgZmls ZXMgaWdub3JlZCBieSBnaXQNCj4gKyAgICAgICAgICAgIGxvZ2dpbmcuaW5mbygNCj4gKyAgICAg ICAgICAgICAgICBmIntzZWxmLl9wYWNrYWdlX25hbWV9IGZpbGUgY291bnQgYmVmb3JlIGdpdCBp Z25vcmUgZmlsZSBleGNsdXNpb246DQo+IHtsZW4oc2VsZi5fYWJzX2ZpbGVfcGF0aHNfdG9fZm9y bWF0KX0iKQ0KPiArDQo+ICsgICAgICAgICAgICBpZ25vcmVkX3BhdGhzID0gc2VsZi5fZ2V0X2dp dF9pZ25vcmVkX3BhdGhzKCkNCj4gKyAgICAgICAgICAgIHNlbGYuX2Fic19maWxlX3BhdGhzX3Rv X2Zvcm1hdCA9IGxpc3QoDQo+ICsgICAgICAgICAgICAgICAgc2V0KHNlbGYuX2Fic19maWxlX3Bh dGhzX3RvX2Zvcm1hdCkuZGlmZmVyZW5jZShpZ25vcmVkX3BhdGhzKSkNCj4gKw0KPiArICAgICAg ICAgICAgbG9nZ2luZy5pbmZvKA0KPiArICAgICAgICAgICAgICAgIGYie3NlbGYuX3BhY2thZ2Vf bmFtZX0gZmlsZSBjb3VudCBhZnRlciBnaXQgaWdub3JlIGZpbGUgZXhjbHVzaW9uOg0KPiB7bGVu KHNlbGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1hdCl9IikNCj4gKw0KPiArICAgICAgICAgICAg IyBSZW1vdmUgZmlsZXMgaW4gc3VibW9kdWxlcw0KPiArICAgICAgICAgICAgbG9nZ2luZy5pbmZv KA0KPiArICAgICAgICAgICAgICAgIGYie3NlbGYuX3BhY2thZ2VfbmFtZX0gZmlsZSBjb3VudCBi ZWZvcmUgc3VibW9kdWxlIGV4Y2x1c2lvbjoge2xlbihzZWxmLl9hYnNfZmlsZV9wYXRoc190b19m b3JtYXQpfSIpDQo+ICsNCj4gKyAgICAgICAgICAgIHN1Ym1vZHVsZV9wYXRocyA9IHR1cGxlKHNl bGYuX2dldF9naXRfc3VibW9kdWxlX3BhdGhzKCkpDQo+ICsgICAgICAgICAgICBmb3IgcGF0aCBp biBzdWJtb2R1bGVfcGF0aHM6DQo+ICsgICAgICAgICAgICAgICAgbG9nZ2luZy5pbmZvKGYiICBz dWJtb2R1bGUgcGF0aDoge3BhdGh9IikNCj4gKw0KPiArICAgICAgICAgICAgc2VsZi5fYWJzX2Zp bGVfcGF0aHNfdG9fZm9ybWF0ID0gWw0KPiArICAgICAgICAgICAgICAgIGYgZm9yIGYgaW4gc2Vs Zi5fYWJzX2ZpbGVfcGF0aHNfdG9fZm9ybWF0IGlmIG5vdCBmLnN0YXJ0c3dpdGgoc3VibW9kdWxl X3BhdGhzKV0NCj4gKw0KPiArICAgICAgICAgICAgbG9nZ2luZy5pbmZvKA0KPiArICAgICAgICAg ICAgICAgIGYie3NlbGYuX3BhY2thZ2VfbmFtZX0gZmlsZSBjb3VudCBhZnRlciBzdWJtb2R1bGUg ZXhjbHVzaW9uOiB7bGVuKHNlbGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1hdCl9IikNCj4gKw0K PiArICAgICAgICAjIFNvcnQgdGhlIGZpbGVzIGZvciBtb3JlIGNvbnNpc3RlbnQgcmVzdWx0cw0K PiArICAgICAgICBzZWxmLl9hYnNfZmlsZV9wYXRoc190b19mb3JtYXQuc29ydCgpDQo+ICsNCj4g KyAgICBkZWYgX2luaXRpYWxpemVfdGVzdF9jYXNlX291dHB1dF9vcHRpb25zKHNlbGYpIC0+IE5v bmU6DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBJbml0aWFsaXplcyBvcHRpb25zIHRoYXQg aW5mbHVlbmNlIHRlc3QgY2FzZSBvdXRwdXQuDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBz ZWxmLl9hdWRpdF9vbmx5X21vZGUgPSBGYWxzZQ0KPiArICAgICAgICBzZWxmLl9vdXRwdXRfZmls ZV9kaWZmcyA9IEZhbHNlDQo+ICsNCj4gKyAgICAgICAgaWYgIkF1ZGl0T25seSIgaW4gc2VsZi5f cGFja2FnZV9jb25maWcgYW5kIHNlbGYuX3BhY2thZ2VfY29uZmlnWyJBdWRpdE9ubHkiXToNCj4g KyAgICAgICAgICAgIHNlbGYuX2F1ZGl0X29ubHlfbW9kZSA9IFRydWUNCj4gKw0KPiArICAgICAg ICBpZiAiT3V0cHV0RmlsZURpZmZzIiBpbiBzZWxmLl9wYWNrYWdlX2NvbmZpZyBhbmQgc2VsZi5f cGFja2FnZV9jb25maWdbIk91dHB1dEZpbGVEaWZmcyJdOg0KPiArICAgICAgICAgICAgc2VsZi5f b3V0cHV0X2ZpbGVfZGlmZnMgPSBUcnVlDQo+ICsNCj4gKyAgICBkZWYgX2xvZ191bmNydXN0aWZ5 X2FwcF9pbmZvKHNlbGYpIC0+IE5vbmU6DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBMb2dz IFVuY3J1c3RpZnkgYXBwbGljYXRpb24gaW5mb3JtYXRpb24uDQo+ICsgICAgICAgICIiIg0KPiAr ICAgICAgICBzZWxmLl90Yy5Mb2dTdGRPdXQoZiJGb3VuZCBVbmNydXN0aWZ5IGF0IHtzZWxmLl9h cHBfcGF0aH0iKQ0KPiArICAgICAgICBzZWxmLl90Yy5Mb2dTdGRPdXQoZiJVbmNydXN0aWZ5IHZl cnNpb246IHtzZWxmLl9hcHBfdmVyc2lvbn0iKQ0KPiArICAgICAgICBzZWxmLl90Yy5Mb2dTdGRP dXQoJ1xuJykNCj4gKyAgICAgICAgbG9nZ2luZy5pbmZvKGYiRm91bmQgVW5jcnVzdGlmeSBhdCB7 c2VsZi5fYXBwX3BhdGh9IikNCj4gKyAgICAgICAgbG9nZ2luZy5pbmZvKGYiVW5jcnVzdGlmeSB2 ZXJzaW9uOiB7c2VsZi5fYXBwX3ZlcnNpb259IikNCj4gKyAgICAgICAgbG9nZ2luZy5pbmZvKCdc bicpDQo+ICsNCj4gKyAgICBkZWYgX3Byb2Nlc3NfdW5jcnVzdGlmeV9yZXN1bHRzKHNlbGYpIC0+ IE5vbmU6DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBQcm9jZXNzIHRoZSByZXN1bHRzIGZy b20gVW5jcnVzdGlmeS4NCj4gKw0KPiArICAgICAgICBEZXRlcm1pbmVzIHdoZXRoZXIgZm9ybWF0 dGluZyBlcnJvcnMgYXJlIHByZXNlbnQgYW5kIGxvZ3MgZmFpbHVyZXMuDQo+ICsgICAgICAgICIi Ig0KPiArICAgICAgICBmb3JtYXR0ZWRfZmlsZXMgPSBbc3RyKHBhdGgucmVzb2x2ZSgpKSBmb3Ig cGF0aCBpbiBwYXRobGliLlBhdGgoDQo+ICsgICAgICAgICAgICBzZWxmLl9hYnNfcGFja2FnZV9w YXRoKS5yZ2xvYihmJyp7VW5jcnVzdGlmeS5GT1JNQVRURURfRklMRV9FWFRFTlNJT059JyldDQo+ ICsNCj4gKyAgICAgICAgc2VsZi5fZm9ybWF0dGVkX2ZpbGVfZXJyb3JfY291bnQgPSBsZW4oZm9y bWF0dGVkX2ZpbGVzKQ0KPiArDQo+ICsgICAgICAgIGlmIHNlbGYuX2Zvcm1hdHRlZF9maWxlX2Vy cm9yX2NvdW50ID4gMDoNCj4gKyAgICAgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZEVycm9yKCJGaWxl cyB3aXRoIGZvcm1hdHRpbmcgZXJyb3JzOlxuIikNCj4gKw0KPiArICAgICAgICAgICAgaWYgc2Vs Zi5fb3V0cHV0X2ZpbGVfZGlmZnM6DQo+ICsgICAgICAgICAgICAgICAgbG9nZ2luZy5pbmZvKCJD YWxjdWxhdGluZyBmaWxlIGRpZmZzLiBUaGlzIG1pZ2h0IHRha2UgYSB3aGlsZS4uLiIpDQo+ICsN Cj4gKyAgICAgICAgZm9yIGZvcm1hdHRlZF9maWxlIGluIGZvcm1hdHRlZF9maWxlczoNCj4gKyAg ICAgICAgICAgIHByZV9mb3JtYXR0ZWRfZmlsZSA9IGZvcm1hdHRlZF9maWxlWzotDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4oVW5jcnVzdGlm eS5GT1JNQVRURURfRklMRV9FWFRFTlNJT04pXQ0KPiArDQo+ICsgICAgICAgICAgICBpZiBzZWxm Ll9vdXRwdXRfZmlsZV9kaWZmczoNCj4gKyAgICAgICAgICAgICAgICB3aXRoIG9wZW4ocHJlX2Zv cm1hdHRlZF9maWxlKSBhcyBwZiwgb3Blbihmb3JtYXR0ZWRfZmlsZSkgYXMgZmY6DQo+ICsgICAg ICAgICAgICAgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZEVycm9yKA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgZiJGb3JtYXR0aW5nIGVycm9ycyBpbiB7b3MucGF0aC5yZWxwYXRoKHByZV9mb3Jt YXR0ZWRfZmlsZSwgc2VsZi5fYWJzX3BhY2thZ2VfcGF0aCl9OlxuIikNCj4gKw0KPiArICAgICAg ICAgICAgICAgICAgICBmb3IgbGluZSBpbiBkaWZmbGliLnVuaWZpZWRfZGlmZihwZi5yZWFkbGlu ZXMoKSwgZmYucmVhZGxpbmVzKCksIGZyb21maWxlPXByZV9mb3JtYXR0ZWRfZmlsZSwNCj4gdG9m aWxlPWZvcm1hdHRlZF9maWxlLCBuPTMpOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5fdGMuTG9nU3RkRXJyb3IobGluZSkNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBzZWxm Ll90Yy5Mb2dTdGRFcnJvcignXG4nKQ0KPiArICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAg ICAgICAgICBzZWxmLl90Yy5Mb2dTdGRFcnJvcihwcmVfZm9ybWF0dGVkX2ZpbGUpDQo+ICsNCj4g KyAgICBkZWYgX3JlbW92ZV90cmVlKHNlbGYsIGRpcl9wYXRoOiBzdHIsIGlnbm9yZV9lcnJvcnM6 IGJvb2wgPSBGYWxzZSkgLT4gTm9uZToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIEhlbHBl ciBmb3IgcmVtb3ZpbmcgYSBkaXJlY3RvcnkuIE92ZXIgdGltZSB0aGVyZSBoYXZlIGJlZW4NCj4g KyAgICAgICAgbWFueSBwcml2YXRlIGltcGxlbWVudGF0aW9ucyBvZiB0aGlzIGR1ZSB0byByZWxp YWJpbGl0eSBpc3N1ZXMgaW4gdGhlDQo+ICsgICAgICAgIHNodXRpbCBpbXBsZW1lbnRhdGlvbnMu IFRvIGNvbnNvbGlkYXRlIG9uIGEgc2luZ2xlIGZ1bmN0aW9uIHRoaXMgaGVscGVyIGlzIGFkZGVk Lg0KPiArDQo+ICsgICAgICAgIE9uIGVycm9yIHRyeSB0byBjaGFuZ2UgZmlsZSBhdHRyaWJ1dGVz LiBBbHNvIGFkZCByZXRyeSBsb2dpYy4NCj4gKw0KPiArICAgICAgICBUaGlzIGZ1bmN0aW9uIGlz IHRlbXBvcmFyaWx5IGJvcnJvd2VkIGZyb20gZWRrMnRvb2xsaWIudXRpbGl0eV9mdW5jdGlvbnMN Cj4gKyAgICAgICAgc2luY2UgdGhlIHZlcnNpb24gdXNlZCBpbiBlZGsyIGlzIG5vdCByZWNlbnQg ZW5vdWdoIHRvIGluY2x1ZGUgdGhlDQo+ICsgICAgICAgIGZ1bmN0aW9uLg0KPiArDQo+ICsgICAg ICAgIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIHJlcGxhY2VkIGJ5ICJSZW1vdmVUcmVlIiB3aGVu IGl0IGlzIGF2YWlsYWJsZS4NCj4gKw0KPiArICAgICAgICBBcmdzOg0KPiArICAgICAgICAgIC0g ZGlyX3BhdGg6IFBhdGggdG8gZGlyZWN0b3J5IHRvIHJlbW92ZS4NCj4gKyAgICAgICAgICAtIGln bm9yZV9lcnJvcnM6IFdoZXRoZXIgdG8gaWdub3JlIGVycm9ycyBkdXJpbmcgcmVtb3ZhbA0KPiAr ICAgICAgICAiIiINCj4gKw0KPiArICAgICAgICBkZWYgX3JlbW92ZV9yZWFkb25seShmdW5jLCBw YXRoLCBfKToNCj4gKyAgICAgICAgICAgICIiIg0KPiArICAgICAgICAgICAgUHJpdmF0ZSBmdW5j dGlvbiB0byBhdHRlbXB0IHRvIGNoYW5nZSBwZXJtaXNzaW9ucyBvbiBmaWxlL2ZvbGRlciBiZWlu ZyBkZWxldGVkLg0KPiArICAgICAgICAgICAgIiIiDQo+ICsgICAgICAgICAgICBvcy5jaG1vZChw YXRoLCBvcy5zdGF0LlNfSVdSSVRFKQ0KPiArICAgICAgICAgICAgZnVuYyhwYXRoKQ0KPiArDQo+ ICsgICAgICAgIGZvciBfIGluIHJhbmdlKDMpOiAgIyByZXRyeSB1cCB0byAzIHRpbWVzDQo+ICsg ICAgICAgICAgICB0cnk6DQo+ICsgICAgICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShkaXJfcGF0 aCwgaWdub3JlX2Vycm9ycz1pZ25vcmVfZXJyb3JzLCBvbmVycm9yPV9yZW1vdmVfcmVhZG9ubHkp DQo+ICsgICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlcnI6DQo+ICsgICAgICAgICAgICAg ICAgbG9nZ2luZy53YXJuaW5nKGYiRmFpbGVkIHRvIGZ1bGx5IHJlbW92ZSB7ZGlyX3BhdGh9OiB7 ZXJyfSIpDQo+ICsgICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgIGJyZWFrDQo+ ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoZiJGYWls ZWQgdG8gcmVtb3ZlIHtkaXJfcGF0aH0iKQ0KPiArDQo+ICsgICAgZGVmIF9ydW5fdW5jcnVzdGlm eShzZWxmKSAtPiBOb25lOg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgUnVucyBVbmNydXN0 aWZ5IGZvciB0aGlzIGluc3RhbmNlIG9mIHBsdWdpbiBleGVjdXRpb24uDQo+ICsgICAgICAgICIi Ig0KPiArICAgICAgICBsb2dnaW5nLmluZm8oIkV4ZWN1dGluZyBVbmNydXN0aWZ5LiBUaGlzIG1p Z2h0IHRha2UgYSB3aGlsZS4uLiIpDQo+ICsgICAgICAgIHN0YXJ0X3RpbWUgPSB0aW1laXQuZGVm YXVsdF90aW1lcigpDQo+ICsgICAgICAgIHNlbGYuX2V4ZWN1dGVfdW5jcnVzdGlmeSgpDQo+ICsg ICAgICAgIGVuZF90aW1lID0gdGltZWl0LmRlZmF1bHRfdGltZXIoKSAtIHN0YXJ0X3RpbWUNCj4g Kw0KPiArICAgICAgICBleGVjdXRpb25fc3VtbWFyeSA9IGYiVW5jcnVzdGlmeSBleGVjdXRlZCBh Z2FpbnN0IHtsZW4oc2VsZi5fYWJzX2ZpbGVfcGF0aHNfdG9fZm9ybWF0KX0gZmlsZXMgaW4NCj4g e3NlbGYuX3BhY2thZ2VfbmFtZX0gaW4ge2VuZF90aW1lOi4yZn0gc2Vjb25kcy5cbiINCj4gKw0K PiArICAgICAgICBzZWxmLl90Yy5Mb2dTdGRPdXQoZXhlY3V0aW9uX3N1bW1hcnkpDQo+ICsgICAg ICAgIGxvZ2dpbmcuaW5mbyhleGVjdXRpb25fc3VtbWFyeSkNCj4gKw0KPiArICAgICAgICBpZiBz ZWxmLl9hcHBfZXhpdF9jb2RlICE9IDAgYW5kIHNlbGYuX2FwcF9leGl0X2NvZGUgIT0gMToNCj4g KyAgICAgICAgICAgIHJhaXNlIFVuY3J1c3RpZnlBcHBFeGVjdXRpb25FeGNlcHRpb24oDQo+ICsg ICAgICAgICAgICAgICAgZiJFcnJvciB7c3RyKHNlbGYuX2FwcF9leGl0X2NvZGUpfSByZXR1cm5l ZCBmcm9tIFVuY3J1c3RpZnk6XG5cbntzdHIoc2VsZi5fYXBwX291dHB1dCl9IikNCj4gZGlmZiAt LWdpdCBhLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvZGVmYXVsdF9maWxlX2hlYWRlci50eHQg Yi8ucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5L2RlZmF1bHRfZmlsZV9oZWFkZXIudHh0DQo+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwMC4uMjk1NWE3MzRkZmUxDQo+ IC0tLSAvZGV2L251bGwNCj4gKysrIGIvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeS9kZWZhdWx0 X2ZpbGVfaGVhZGVyLnR4dA0KPiBAQCAtMCwwICsxLDkgQEANCj4gKy8qKiBAZmlsZQ0KPiArICBC cmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgZmlsZSdzIHB1cnBvc2UuDQo+ICsNCj4gKyAgRGV0YWls ZWQgZGVzY3JpcHRpb24gb2YgdGhlIGZpbGUncyBjb250ZW50cyBhbmQgb3RoZXIgdXNlZnVsDQo+ ICsgIGluZm9ybWF0aW9uIGZvciBhIHBlcnNvbiB2aWV3aW5nIHRoZSBmaWxlIGZvciB0aGUgZmly c3QgdGltZS4NCj4gKw0KPiArICA8PENvcHlyaWdodD4+DQo+ICsgIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICsqKi8NCj4gZGlmZiAtLWdpdCBhLy5weXRv b2wvUGx1Z2luL1VuY3J1c3RpZnkvZGVmYXVsdF9mdW5jdGlvbl9oZWFkZXIudHh0IGIvLnB5dG9v bC9QbHVnaW4vVW5jcnVzdGlmeS9kZWZhdWx0X2Z1bmN0aW9uX2hlYWRlci50eHQNCj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi42NmVkYzcyZTY3MzENCj4gLS0t IC9kZXYvbnVsbA0KPiArKysgYi8ucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5L2RlZmF1bHRfZnVu Y3Rpb25faGVhZGVyLnR4dA0KPiBAQCAtMCwwICsxLDE1IEBADQo+ICsvKioNCj4gKyAgQnJpZWYg ZGVzY3JpcHRpb24gb2YgdGhpcyBmdW5jdGlvbidzIHB1cnBvc2UuDQo+ICsNCj4gKyAgRm9sbG93 IGl0IGltbWVkaWF0ZWx5IHdpdGggdGhlIGRldGFpbGVkIGRlc2NyaXB0aW9uLg0KPiArDQo+ICsg IEBwYXJhbVtpbl0gICAgICBBcmcxICBEZXNjcmlwdGlvbiBvZiBBcmcxLg0KPiArICBAcGFyYW1b aW5dICAgICAgQXJnMiAgRGVzY3JpcHRpb24gb2YgQXJnMiBUaGlzIGlzIGNvbXBsaWNhdGVkIGFu ZCByZXF1aXJlcw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUgbGluZXMgdG8g ZGVzY3JpYmUuDQo+ICsgIEBwYXJhbVtvdXRdICAgICBBcmczICBEZXNjcmlwdGlvbiBvZiBBcmcz Lg0KPiArICBAcGFyYW1baW4sIG91dF0gQXJnNCAgRGVzY3JpcHRpb24gb2YgQXJnNC4NCj4gKw0K PiArICBAcmV0dmFsIFZBTF9PTkUgIERlc2NyaXB0aW9uIG9mIHdoYXQgVkFMX09ORSBzaWduaWZp ZXMuDQo+ICsgIEByZXR2YWwgT1RIRVIgICAgVGhpcyBpcyB0aGUgb25seSBvdGhlciByZXR1cm4g dmFsdWUuIElmIHRoZXJlIHdlcmUgb3RoZXINCj4gKyAgICAgICAgICAgICAgICAgICByZXR1cm4g dmFsdWVzLCB0aGV5IHdvdWxkIGJlIGxpc3RlZC4NCj4gKyoqLw0KPiBkaWZmIC0tZ2l0IGEvLnB5 dG9vbC9QbHVnaW4vVW5jcnVzdGlmeS91bmNydXN0aWZ5LmNmZyBiLy5weXRvb2wvUGx1Z2luL1Vu Y3J1c3RpZnkvdW5jcnVzdGlmeS5jZmcNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXgg MDAwMDAwMDAwMDAwLi5kNmU5OGRmYTljMDENCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi8ucHl0 b29sL1BsdWdpbi9VbmNydXN0aWZ5L3VuY3J1c3RpZnkuY2ZnDQo+IEBAIC0wLDAgKzEsNDY2IEBA DQo+ICsjIyBAZmlsZQ0KPiArIyBVbmNydXN0aWZ5IENvbmZpZ3VyYXRpb24gRmlsZSBmb3IgRURL IElJIEMgQ29kZQ0KPiArIw0KPiArIyBDb2RpbmcgU3RhbmRhcmQ6IGh0dHBzOi8vZWRrMi1kb2Nz LmdpdGJvb2suaW8vZWRrLWlpLWMtY29kaW5nLXN0YW5kYXJkcy1zcGVjaWZpY2F0aW9uLw0KPiAr Iw0KPiArIyBUaGlzIGNvbmZpZ3VyYXRpb24gZmlsZSBpcyBtZWFudCB0byBiZSBhICJiZXN0IGF0 dGVtcHQiIHRvIGFsaWduIHdpdGggdGhlDQo+ICsjIGRlZmluaXRpb25zIGluIHRoZSBFREsgSUkg QyBDb2RpbmcgU3RhbmRhcmRzIFNwZWNpZmljYXRpb24uDQo+ICsjDQo+ICsjIENvcHlyaWdodCAo YykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLg0KPiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog QlNELTItQ2xhdXNlLVBhdGVudA0KPiArIyMNCj4gKw0KPiArIyBGb3JjZSBVVEYtOCBlbmNvZGlu ZyAobm8gVVRGLTE2KQ0KPiArZW5hYmxlX2RpZ3JhcGhzICAgICAgICAgICAgICAgICA9IGZhbHNl DQo+ICt1dGY4X2J5dGUgICAgICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK3V0ZjhfZm9y Y2UgICAgICAgICAgICAgICAgICAgICAgPSB0cnVlDQo+ICsNCj4gKyMgQ29kZSB3aWR0aCAvIGxp bmUgc3BsaXR0aW5nDQo+ICsjY29kZV93aWR0aCAgICAgICAgICAgICAgICAgICAgICA9MTIwICAg ICAjIFRPRE86IFRoaXMgY2F1c2VzIG5vbi1kZXRlcm1pbmlzdGljIGJlaGF2aW91ciBpbiBzb21l IGNhc2VzIHdoZW4gY29kZSB3cmFwcw0KPiArbHNfY29kZV93aWR0aCAgICAgICAgICAgICAgICAg ICA9ZmFsc2UNCj4gK2xzX2Zvcl9zcGxpdF9mdWxsICAgICAgICAgICAgICAgPXRydWUNCj4gK2xz X2Z1bmNfc3BsaXRfZnVsbCAgICAgICAgICAgICAgPXRydWUNCj4gK3Bvc19jb21tYSAgICAgICAg ICAgICAgICAgICAgICAgPXRyYWlsDQo+ICsNCj4gKyMgNS4xLjcgIEFsbCBmaWxlcyBtdXN0IGVu ZCB3aXRoIENSTEYNCj4gK25ld2xpbmVzICAgICAgICAgICAgICAgICAgICAgICAgPSBjcmxmDQo+ ICsNCj4gKyMgNS4xLjIgRG8gbm90IHVzZSB0YWIgY2hhcmFjdGVycw0KPiArDQo+ICtjbXRfY29u dmVydF90YWJfdG9fc3BhY2VzICAgICAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBjb252ZXJ0 IGFsbCB0YWJzIHRvIHNwYWNlcyBpbiBjb21tZW50cy4gSWYgZmFsc2UsIHRhYnMgaW4NCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBjb21tZW50cyBhcmUg bGVmdCBhbG9uZSwgdW5sZXNzIHVzZWQgZm9yIGluZGVudGluZy4NCj4gK2luZGVudF9jb2x1bW5z ICAgICAgICAgICAgICAgICAgPSAyICAgICAgICAgIyBOdW1iZXIgb2Ygc3BhY2VzIGZvciBpbmRl bnRhdGlvbg0KPiAraW5kZW50X3dpdGhfdGFicyAgICAgICAgICAgICAgICA9IDAgICAgICAgICAj IERvIG5vdCB1c2UgVEFCIGNoYXJhY3RlcnMNCj4gK3N0cmluZ19yZXBsYWNlX3RhYl9jaGFycyAg ICAgICAgPSB0cnVlICAgICAgIyBSZXBsYWNlIFRBQiB3aXRoIFNQQUNFDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgTm90ZTogVGhpcyB3aWxsIGJyZWFr IC5yb2JvdCBmaWxlcyBidXQgaXMgbmVlZGVkIGZvciBlZGsyIHN0eWxlDQo+ICsNCj4gKyMgNS4y LjEuMSBUaGVyZSBzaGFsbCBiZSBvbmx5IG9uZSBzdGF0ZW1lbnQgb24gYSBsaW5lIChzdGF0ZW1l bnQgZW5kcyB3aXRoIDspDQo+ICtubF9tdWx0aV9saW5lX2NvbmQgICAgICAgICAgICAgID0gdHJ1 ZSAgICAgICMgQWRkIGEgbmV3bGluZSBiZXR3ZWVuICcpJyBhbmQgJ3snIGlmIHRoZSAnKScgaXMg b24gYSBkaWZmZXJlbnQgbGluZSB0aGFuDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICMgdGhlIGlmL2Zvci9ldGMuDQo+ICtubF9hZnRlcl9zZW1pY29sb24g ICAgICAgICAgICAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBhZGQgYSBuZXdsaW5lIGFmdGVy IHNlbWljb2xvbnMsIGV4Y2VwdCBpbiAnZm9yJyBzdGF0ZW1lbnRzLg0KPiArDQo+ICsjIDUuMi4x LjMgQW4gb3BlbiBicmFjZSAneycgZ29lcyBvbiB0aGUgc2FtZSBsaW5lIGFzIHRoZSBjbG9zaW5n IHBhcmVudGhlc2lzICcpJyBvZiBzaW1wbGUgcHJlZGljYXRlIGV4cHJlc3Npb25zDQo+ICttb2Rf ZnVsbF9icmFjZV9kbyAgICAgICAgICAgICAgID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBi cmFjZXMgb24gYSBzaW5nbGUtbGluZSAnZG8nIHN0YXRlbWVudC4NCj4gK21vZF9mdWxsX2JyYWNl X2ZvciAgICAgICAgICAgICAgPSBhZGQNCj4gK21vZF9mdWxsX2JyYWNlX2Z1bmN0aW9uICAgICAg ICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIGJyYWNlcyBvbiBhIHNpbmdsZS1saW5lIGZ1 bmN0aW9uIGRlZmluaXRpb24uDQo+ICttb2RfZnVsbF9icmFjZV9pZiAgICAgICAgICAgICAgID0g YWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBicmFjZXMgb24gYSBzaW5nbGUtbGluZSAnaWYnIHN0 YXRlbWVudC4gQnJhY2VzIHdpbGwgbm90IGJlDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICMgcmVtb3ZlZCBpZiB0aGUgYnJhY2VkIHN0YXRlbWVudCBjb250 YWlucyBhbiAnZWxzZScuDQo+ICttb2RfZnVsbF9icmFjZV9pZl9jaGFpbiAgICAgICAgID0gZmFs c2UNCj4gK21vZF9mdWxsX2JyYWNlX3doaWxlICAgICAgICAgICAgPSBhZGQNCj4gKw0KPiArIyA1 LjIuMS40IEEgY2xvc2UgYnJhY2UgJ30nIGFsd2F5cyBnb2VzIGF0IHRoZSBiZWdpbm5pbmcgb2Yg dGhlIGxhc3QgbGluZSBvZiB0aGUgYm9keQ0KPiArZWF0X2JsYW5rc19hZnRlcl9vcGVuX2JyYWNl ICAgICA9IHRydWUNCj4gK2VhdF9ibGFua3NfYmVmb3JlX2Nsb3NlX2JyYWNlICAgPSB0cnVlICAg ICAgIyBXaGV0aGVyIHRvIHJlbW92ZSBibGFuayBsaW5lcyBiZWZvcmUgJ30nLg0KPiArDQo+ICsj IDUuMi4yLjIgQWx3YXlzIHB1dCBzcGFjZSBiZWZvcmUgYW5kIGFmdGVyIGJpbmFyeSBvcGVyYXRv cnMuDQo+ICtzcF9hc3NpZ24gICAgICAgICAgICAgICAgICAgICAgID0gYWRkICAgICAgICMgQWRk IG9yIHJlbW92ZSBzcGFjZSBhcm91bmQgYXNzaWdubWVudCBvcGVyYXRvciAnPScsICcrPScsIGV0 Yy4NCj4gK3NwX2Fzc2lnbl9kZWZhdWx0ICAgICAgICAgICAgICAgPSBhZGQNCj4gK3NwX2Jvb2wg ICAgICAgICAgICAgICAgICAgICAgICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNl IGFyb3VuZCBib29sZWFuIG9wZXJhdG9ycyAnJiYnIGFuZCAnfHwnLg0KPiArc3BfY29tcGFyZSAg ICAgICAgICAgICAgICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYXJv dW5kIGNvbXBhcmUgb3BlcmF0b3IgJzwnLCAnPicsICc9PScsIGV0Yy4NCj4gKw0KPiArIyA1LjIu Mi4zIERvIG5vdCBwdXQgc3BhY2UgYmV0d2VlbiB1bmFyeSBvcGVyYXRvcnMgYW5kIHRoZWlyIG9i amVjdA0KPiArc3BfYWRkciAgICAgICAgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEEg b3IgcmVtb3ZlIHNwYWNlIGFmdGVyIHRoZSAnJicgKGFkZHJlc3Mtb2YpIHVuYXJ5IG9wZXJhdG9y Lg0KPiArc3BfaW5jZGVjICAgICAgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBv ciByZW1vdmUgc3BhY2UgYmV0d2VlbiAnKysnIGFuZCAnLS0nIHRoZSB3b3JkIHRvIHdoaWNoIGl0 IGlzIGJlaW5nDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICMgYXBwbGllZCwgYXMgaW4gJygtLXgpJyBvciAneSsrOycuDQo+ICtzcF9pbnYgICAgICAgICAg ICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBhZnRlciB0 aGUgJ34nIChpbnZlcnQpIHVuYXJ5IG9wZXJhdG9yLg0KPiArc3Bfbm90ICAgICAgICAgICAgICAg ICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYWZ0ZXIgdGhlICch JyAobm90KSB1bmFyeSBvcGVyYXRvci4NCj4gK3NwX3NpZ24gICAgICAgICAgICAgICAgICAgICAg ICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyICcrJyBvciAnLScsIGFz IGluICd4ID0gLTUnIG9yICd5ID0gKzcnLg0KPiArDQo+ICsjIDUuMi4yLjQgU3Vic2VxdWVudCBs aW5lcyBvZiBtdWx0aS1saW5lIGZ1bmN0aW9uIGNhbGxzIHNob3VsZCBsaW5lIHVwIHR3byBzcGFj ZXMgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmdW5jdGlvbg0KPiArIyAgICAgICAgIG5hbWUN Cj4gK25sX2Z1bmNfY2FsbF9hcmdzX211bHRpX2xpbmUgICAgPSB0cnVlICAgICAgIyBXaGV0aGVy IHRvIGFkZCBhIG5ld2xpbmUgYWZ0ZXIgZWFjaCAnLCcgaW4gYSBmdW5jdGlvbiBjYWxsIGlmICco JyBhbmQgJyknDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICMgYXJlIGluIGRpZmZlcmVudCBsaW5lcy4NCj4gK25sX2Z1bmNfY2FsbF9hcmdzX211bHRpX2xp bmVfaWdub3JlX2Nsb3N1cmVzID0gZmFsc2UNCj4gK25sX2Z1bmNfY2FsbF9zdGFydF9tdWx0aV9s aW5lICAgPSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIGFkZCBhIG5ld2xpbmUgYWZ0ZXIgJygnIGlu IGEgZnVuY3Rpb24gY2FsbCBpZiAnKCcgYW5kICcpJyBhcmUNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpbiBkaWZmZXJlbnQgbGluZXMuDQo+ICsNCj4g KyMgLSBJbmRlbnQgZWFjaCBhcmd1bWVudCAyIHNwYWNlcyBmcm9tIHRoZSBzdGFydCBvZiB0aGUg ZnVuY3Rpb24gbmFtZS4gSWYgYQ0KPiArIyAgIGZ1bmN0aW9uIGlzIGNhbGxlZCB0aHJvdWdoIGEg c3RydWN0dXJlIG9yIHVuaW9uIG1lbWJlciwgb2YgdHlwZQ0KPiArIyAgIHBvaW50ZXItdG8tZnVu Y3Rpb24sIHRoZW4gaW5kZW50IGVhY2ggYXJndW1lbnQgMiBzcGFjZXMgZnJvbSB0aGUgc3RhcnQg b2YgdGhlDQo+ICsjICAgbWVtYmVyIG5hbWUuDQo+ICtpbmRlbnRfZnVuY19jYWxsX2VkazJfc3R5 bGUgICAgID0gdHJ1ZSAgICAgICMgVXNlIEVESzIgaW5kZW50YXRpb24gc3R5bGUgZm9yIGZ1bmN0 aW9uIGNhbGxzICAoKipDVVNUT00gU0VUVElORyoqKQ0KPiAraW5kZW50X3BhcmVuX2FmdGVyX2Z1 bmNfY2FsbCAgICA9IHRydWUgICAgICAjIFdoZXRoZXIgdG8gaW5kZW50IHRoZSBvcGVuIHBhcmVu dGhlc2lzIG9mIGEgZnVuY3Rpb24gY2FsbCwgaWYgdGhlDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMgcGFyZW50aGVzaXMgaXMgb24gaXRzIG93biBsaW5l Lg0KPiArDQo+ICsjIC0gQWxpZ24gdGhlIGNsb3NlIHBhcmVudGhlc2lzIHdpdGggdGhlIHN0YXJ0 IG9mIHRoZSBsYXN0IGFyZ3VtZW50DQo+ICtpbmRlbnRfcGFyZW5fY2xvc2UgICAgICAgICAgICAg ID0gMCAgICAgICAgICMgSG93IHRvIGluZGVudCBhIGNsb3NlIHBhcmVudGhlc2lzIGFmdGVyIGEg bmV3bGluZS4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IyAoMDogQm9keSwgMTogT3BlbnBhcmVudGhlc2lzLCAyOiBCcmFjZSBsZXZlbCkNCj4gKw0KPiAr DQo+ICsjIDUuMi4yLjUgQWx3YXlzIHB1dCBzcGFjZSBhZnRlciBjb21tYXMgb3Igc2VtaWNvbG9u cyB0aGF0IHNlcGFyYXRlIGl0ZW1zDQo+ICtzcF9hZnRlcl9jb21tYSAgICAgICAgICAgICAgICAg ID0gZm9yY2UgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBhZnRlciAnLCcsIGkuZS4gJ2EsYicg dnMuICdhLCBiJy4NCj4gK3NwX2JlZm9yZV9jb21tYSAgICAgICAgICAgICAgICAgPSByZW1vdmUg ICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJlZm9yZSAnLCcuDQo+ICsNCj4gKyMgNS4yLjIuNiBB bHdheXMgcHV0IHNwYWNlIGJlZm9yZSBhbiBvcGVuIHBhcmVudGhlc2lzDQo+ICtzcF9hZnRlcl9z cGFyZW4gICAgICAgICAgICAgICAgID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBh ZnRlciAnKScgb2YgY29udHJvbCBzdGF0ZW1lbnRzLg0KPiArc3BfYXR0cmlidXRlX3BhcmVuICAg ICAgICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiAnX19h dHRyaWJ1dGVfXycgYW5kICcoJy4NCj4gK3NwX2JlZm9yZV9zcGFyZW4gICAgICAgICAgICAgICAg PSBmb3JjZSAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJlZm9yZSAnKCcgb2YgY29udHJvbCBz dGF0ZW1lbnRzDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICMgKCdpZicsICdmb3InLCAnc3dpdGNoJywgJ3doaWxlJywgZXRjLikuDQo+ICtzcF9kZWZpbmVk X3BhcmVuICAgICAgICAgICAgICAgID0gZm9yY2UgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBi ZXR3ZWVuICdkZWZpbmVkJyBhbmQgJygnIGluICcjaWYgZGVmaW5lZCAoRk9PKScuDQo+ICtzcF9m dW5jX2NhbGxfcGFyZW4gICAgICAgICAgICAgID0gZm9yY2UgICAgICMgQWRkIG9yIHJlbW92ZSBz cGFjZSBiZXR3ZWVuIGZ1bmN0aW9uIG5hbWUgYW5kICcoJyBvbiBmdW5jdGlvbiBjYWxscy4NCj4g K3NwX2Z1bmNfY2FsbF9wYXJlbl9lbXB0eSAgICAgICAgPSBmb3JjZSAgICAgIyBBZGQgb3IgcmVt b3ZlIHNwYWNlIGJldHdlZW4gZnVuY3Rpb24gbmFtZSBhbmQgJygpJyBvbiBmdW5jdGlvbiBjYWxs cw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHdpdGhv dXQgcGFyYW1ldGVycy4gSWYgc2V0IHRvIGlnbm9yZSAodGhlIGRlZmF1bHQpLCBzcF9mdW5jX2Nh bGxfcGFyZW4gaXMNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIyB1c2VkLg0KPiArc3BfZnVuY19kZWZfcGFyZW4gICAgICAgICAgICAgICA9IGFkZCAgICAg ICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiBhbGlhcyBuYW1lIGFuZCAnKCcgb2YgYSBu b24tcG9pbnRlciBmdW5jdGlvbg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjIHR5cGUgdHlwZWRlZi4NCj4gK3NwX2Z1bmNfcHJvdG9fcGFyZW4gICAgICAg ICAgICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gZnVuY3Rpb24g bmFtZSBhbmQgJygpJyBvbiBmdW5jdGlvbiBkZWNsYXJhdGlvbg0KPiArc3Bfc2l6ZW9mX3BhcmVu ICAgICAgICAgICAgICAgICA9IGZvcmNlICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2Vl biAnc2l6ZW9mJyBhbmQgJygnLg0KPiArc3BfdHlwZV9mdW5jICAgICAgICAgICAgICAgICAgICA9 IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiByZXR1cm4gdHlwZSBhbmQg ZnVuY3Rpb24gbmFtZS4gQSBtaW5pbXVtIG9mIDENCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIyBpcyBmb3JjZWQgZXhjZXB0IGZvciBwb2ludGVyIHJldHVy biB0eXBlcy4NCj4gKw0KPiArIyBOb3Qgc3BlY2lmaWVkLCBidXQgYWxzbyBnb29kIHN0eWxlIHRv IHJlbW92ZSBzcGFjZXMgaW5zaWRlIHBhcmVudGhlc2VzIChPcHRpb25hbCkNCj4gK3NwX2NwYXJl bl9vcGFyZW4gICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNl IGJldHdlZW4gYmFjay10by1iYWNrIHBhcmVudGhlc2VzLCBpLmUuICcpKCcgdnMuICcpICgnLg0K PiArc3BfaW5zaWRlX2ZwYXJlbiAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciBy ZW1vdmUgc3BhY2UgaW5zaWRlIGZ1bmN0aW9uICcoJyBhbmQgJyknLg0KPiArc3BfaW5zaWRlX2Zw YXJlbnMgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgaW5z aWRlIGVtcHR5IGZ1bmN0aW9uICcoKScuDQo+ICtzcF9pbnNpZGVfcGFyZW4gICAgICAgICAgICAg ICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBpbnNpZGUgJygnIGFuZCAnKScu DQo+ICtzcF9pbnNpZGVfcGFyZW5fY2FzdCAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9y IHJlbW92ZSBzcGFjZXMgaW5zaWRlIGNhc3QgcGFyZW50aGVzZXMuICcoaW50KXgnDQo+ICtzcF9p bnNpZGVfc3F1YXJlICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBz cGFjZSBpbnNpZGUgYSBub24tZW1wdHkgJ1snIGFuZCAnXScuDQo+ICtzcF9wYXJlbl9wYXJlbiAg ICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVu IG5lc3RlZCBwYXJlbnRoZXNlcywgaS5lLiAnKCgnIHZzLiAnKSApJy4NCj4gK3NwX3NxdWFyZV9m cGFyZW4gICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJl dHdlZW4gJ10nIGFuZCAnKCcgd2hlbiBwYXJ0IG9mIGEgZnVuY3Rpb24gY2FsbC4NCj4gKw0KPiAr IyA1LjIuMi43IFB1dCBhIHNwYWNlIGJlZm9yZSBhbiBvcGVuIGJyYWNlIGlmIGl0IGlzIG5vdCBv biBpdHMgb3duIGxpbmUNCj4gK3NwX2RvX2JyYWNlX29wZW4gICAgICAgICAgICAgICAgPSBmb3Jj ZSAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gJ2RvJyBhbmQgJ3snLg0KPiArc3Bf cGFyZW5fYnJhY2UgICAgICAgICAgICAgICAgICA9IGZvcmNlICAgICAjIEFkZCBvciByZW1vdmUg c3BhY2UgYmV0d2VlbiAnKScgYW5kICd7Jy4NCj4gK3NwX3NwYXJlbl9icmFjZSAgICAgICAgICAg ICAgICAgPSBmb3JjZSAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gJyknIGFuZCAn eycgb2Ygb2YgY29udHJvbCBzdGF0ZW1lbnRzLg0KPiArDQo+ICsjIDUuMi4yLjggRG8gbm90IHB1 dCBzcGFjZXMgYXJvdW5kIHN0cnVjdHVyZSBtZW1iZXIgYW5kIHBvaW50ZXIgb3BlcmF0b3JzDQo+ ICtzcF9hZnRlcl9ieXJlZiAgICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJl bW92ZSBzcGFjZSBhZnRlciByZWZlcmVuY2Ugc2lnbiAnJicsIGlmIGZvbGxvd2VkIGJ5IGEgd29y ZC4NCj4gK3NwX2JlZm9yZV9ieXJlZiAgICAgICAgICAgICAgICAgPSBhZGQgICAgICAgIyBBZGQg b3IgcmVtb3ZlIHNwYWNlIGJlZm9yZSBhIHJlZmVyZW5jZSBzaWduICcmJy4NCj4gK3NwX2RlcmVm ICAgICAgICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNl IGFmdGVyIHRoZSAnKicgKGRlcmVmZXJlbmNlKSB1bmFyeSBvcGVyYXRvci4gVGhpcyBkb2VzDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgbm90IGFmZmVj dCB0aGUgc3BhY2luZyBhZnRlciBhICcqJyB0aGF0IGlzIHBhcnQgb2YgYSB0eXBlLg0KPiArc3Bf bWVtYmVyICAgICAgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUg c3BhY2UgYXJvdW5kIHRoZSAnLicgb3IgJy0+JyBvcGVyYXRvcnMuDQo+ICsNCj4gKyMgNS4yLjIu OSBEbyBub3QgcHV0IHNwYWNlcyBiZWZvcmUgb3BlbiBicmFja2V0cyBvZiBhcnJheSBzdWJzY3Jp cHRzDQo+ICtzcF9iZWZvcmVfc3F1YXJlICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRk IG9yIHJlbW92ZSBzcGFjZSBiZWZvcmUgJ1snIChleGNlcHQgJ1tdJykuDQo+ICtzcF9iZWZvcmVf c3F1YXJlcyAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBi ZWZvcmUgJ1tdJy4NCj4gK3NwX2JlZm9yZV92YXJkZWZfc3F1YXJlICAgICAgICAgPSByZW1vdmUg ICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJlZm9yZSAnWycgZm9yIGEgdmFyaWFibGUgZGVmaW5p dGlvbi4NCj4gKw0KPiArIyA1LjIuMi4xMCBVc2UgZXh0cmEgcGFyZW50aGVzZXMgcmF0aGVyIHRo YW4gZGVwZW5kaW5nIG9uIGluLWRlcHRoIGtub3dsZWRnZSBvZiB0aGUgb3JkZXIgb2YgcHJlY2Vk ZW5jZSBvZiBDDQo+ICttb2RfZnVsbF9wYXJlbl9pZl9ib29sICAgICAgICAgID0gdHJ1ZSAgICAg ICMgV2hldGhlciB0byBmdWxseSBwYXJlbnRoZXNpemUgQm9vbGVhbiBleHByZXNzaW9ucyBpbiAn d2hpbGUnIGFuZCAnaWYnDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICMgc3RhdGVtZW50LCBhcyBpbiAnaWYgKGEgJiYgYiA+IGMpJyA9PiAnaWYgKGEgJiYg KGIgPiBjKSknLg0KPiArDQo+ICsjIDUuMi4yLjExIEFsaWduIGEgY29udGludWF0aW9uIGxpbmUg d2l0aCB0aGUgcGFydCBvZiB0aGUgbGluZSB0aGF0IGl0IGNvbnRpbnVlcy4NCj4gK3VzZV9pbmRl bnRfY29udGludWVfb25seV9vbmNlICAgPSB0cnVlDQo+ICsNCj4gKyMgQWRkaXRpb25hbCAne30n IGJyYWNpbmcgcnVsZXMgKE9wdGlvbmFsKQ0KPiArIyBOT1RFIC0gVGhlIHN0eWxlIGd1aWRlIHNw ZWNpZmllcyB0d28gZGlmZmVyZW50IHN0eWxlcyBmb3IgYnJhY2VzLA0KPiArIyBzbyB0aGVzZSBh cmUgaWdub3JlZCBmb3Igbm93IHRvIGFsbG93IGRldmVsb3BlcnMgc29tZSBmbGV4aWJpbGl0eS4N Cj4gK25sX2FmdGVyX2JyYWNlX2Nsb3NlICAgICAgICAgICAgPSB0cnVlICAgICAgIyBXaGV0aGVy IHRvIGFkZCBhIG5ld2xpbmUgYWZ0ZXIgJ30nLiBEb2VzIG5vdCBhcHBseSBpZiBmb2xsb3dlZCBi eSBhDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgbmVj ZXNzYXJ5ICc7Jy4NCj4gK25sX2JyYWNlX2Vsc2UgICAgICAgICAgICAgICAgICAgPSByZW1vdmUg ICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiAnfScgYW5kICdlbHNlJy4NCj4gK25s X2JyYWNlX3doaWxlICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3Zl IG5ld2xpbmUgYmV0d2VlbiAnfScgYW5kICd3aGlsZScgb2YgJ2RvJyBzdGF0ZW1lbnQuDQo+ICtu bF9kb19icmFjZSAgICAgICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92 ZSBuZXdsaW5lIGJldHdlZW4gJ2RvJyBhbmQgJ3snLg0KPiArbmxfZWxzZV9icmFjZSAgICAgICAg ICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuICdl bHNlJyBhbmQgJ3snLg0KPiArbmxfZWxzZV9pZiAgICAgICAgICAgICAgICAgICAgICA9IHJlbW92 ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuICdlbHNlJyBhbmQgJ2lmJy4NCj4g K25sX2Vsc2VpZl9icmFjZSAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVt b3ZlIG5ld2xpbmUgYmV0d2VlbiAnZWxzZSBpZicgYW5kICd7Jy4NCj4gK25sX2VudW1fYnJhY2Ug ICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0 d2VlbiAnZW51bScgYW5kICd7Jy4NCj4gK25sX2ZjYWxsX2JyYWNlICAgICAgICAgICAgICAgICAg PSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiBhIGZ1bmN0aW9uIGNh bGwncyAnKScgYW5kICd7JywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIyBhcyBpbiAnbGlzdF9mb3JfZWFjaChpdGVtLCAmbGlzdCkgeyB9Jy4NCj4gK25s X2Zvcl9icmFjZSAgICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3Zl IG5ld2xpbmUgYmV0d2VlbiAnZm9yJyBhbmQgJ3snLg0KPiArbmxfaWZfYnJhY2UgICAgICAgICAg ICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuICdp ZicgYW5kICd7Jy4NCj4gK25sX3N0cnVjdF9icmFjZSAgICAgICAgICAgICAgICAgPSByZW1vdmUg ICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiAnc3RydWN0IGFuZCAneycuDQo+ICtu bF9zd2l0Y2hfYnJhY2UgICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92 ZSBuZXdsaW5lIGJldHdlZW4gJ3N3aXRjaCcgYW5kICd7Jy4NCj4gK25sX3VuaW9uX2JyYWNlICAg ICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2Vl biAndW5pb24nIGFuZCAneycuDQo+ICtubF93aGlsZV9icmFjZSAgICAgICAgICAgICAgICAgID0g cmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gJ3doaWxlJyBhbmQgJ3sn Lg0KPiArDQo+ICsjIEFkZGl0aW9uYWwgd2hpdGVzcGFjZSBydWxlcyAoT3B0aW9uYWwpDQo+ICtz cF9hZnRlcl9wdHJfc3RhciAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92 ZSBzcGFjZSBhZnRlciBwb2ludGVyIHN0YXIgJyonLCBpZiBmb2xsb3dlZCBieSBhIHdvcmQuDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVXNlZnVsIHdo ZW4gcGFpcmVkIHdpdGggYWxpZ25fdmFyX2RlZl9zdGFyX3N0eWxlPT0yDQo+ICtzcF9hZnRlcl9w dHJfc3Rhcl9mdW5jICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBh ZnRlciBhIHBvaW50ZXIgc3RhciAnKicsIGlmIGZvbGxvd2VkIGJ5IGEgZnVuY3Rpb24NCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBwcm90b3R5cGUgb3Ig ZnVuY3Rpb24gZGVmaW5pdGlvbi4NCj4gK3NwX2FmdGVyX3NlbWkgICAgICAgICAgICAgICAgICAg PSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyICc7JywgZXhjZXB0IHdoZW4g Zm9sbG93ZWQgYnkgYSBjb21tZW50Lg0KPiArc3BfYmVmb3JlX2Nhc2VfY29sb24gICAgICAgICAg ICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmVmb3JlIGNhc2UgJzonLg0KPiAr c3BfYmVmb3JlX3B0cl9zdGFyICAgICAgICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1v dmUgc3BhY2UgYmVmb3JlIHBvaW50ZXIgc3RhciAnKicuDQo+ICtzcF9iZWZvcmVfcHRyX3N0YXJf ZnVuYyAgICAgICAgID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZWZvcmUgYSBw b2ludGVyIHN0YXIgJyonLCBpZiBmb2xsb3dlZCBieSBhIGZ1bmN0aW9uDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcHJvdG90eXBlIG9yIGZ1bmN0aW9u IGRlZmluaXRpb24uDQo+ICtzcF9iZWZvcmVfc2VtaSAgICAgICAgICAgICAgICAgID0gcmVtb3Zl ICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZWZvcmUgJzsnDQo+ICtzcF9iZWZvcmVfc2VtaV9m b3IgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZWZvcmUg JzsnIGluIG5vbi1lbXB0eSAnZm9yJyBzdGF0ZW1lbnRzLg0KPiArc3BfYmVmb3JlX3NlbWlfZm9y X2VtcHR5ICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmVmb3JlIGEg c2VtaWNvbG9uIG9mIGFuIGVtcHR5IHBhcnQgb2YgYSBmb3Igc3RhdGVtZW50DQo+ICtzcF9iZXR3 ZWVuX3B0cl9zdGFyICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFj ZSBiZXR3ZWVuIHBvaW50ZXIgc3RhcnMgJyonLiAoaWUsICdWT0lEICoqJykNCj4gK3NwX2JyYWNl X2Nsb3NlX3doaWxlICAgICAgICAgICAgPSBmb3JjZSAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNl IGJldHdlZW4gJ30nIGFuZCAnd2hpbGUnLg0KPiArDQo+ICtzcF9hZnRlcl9jYXN0ICAgICAgICAg ICAgICAgICAgID0gcmVtb3ZlDQo+ICtzcF9hZnRlcl90eXBlICAgICAgICAgICAgICAgICAgID0g YWRkDQo+ICtzcF9iYWxhbmNlX25lc3RlZF9wYXJlbnMgICAgICAgID0gZmFsc2UNCj4gK3NwX2Jl Zm9yZV9ubF9jb250ICAgICAgICAgICAgICAgPSBhZGQNCj4gK3NwX2JlZm9yZV9zcXVhcmVfYXNt X2Jsb2NrICAgICAgPSBpZ25vcmUNCj4gK3NwX2JlZm9yZV91bm5hbWVkX2J5cmVmICAgICAgICAg PSBhZGQNCj4gK3NwX2JyYWNlX2JyYWNlICAgICAgICAgICAgICAgICAgPSBpZ25vcmUNCj4gK3Nw X2JyYWNlX2Vsc2UgICAgICAgICAgICAgICAgICAgPSBmb3JjZQ0KPiArc3BfYnJhY2VfdHlwZWRl ZiAgICAgICAgICAgICAgICA9IGFkZA0KPiArc3BfY2FzZV9sYWJlbCAgICAgICAgICAgICAgICAg ICA9IGZvcmNlDQo+ICtzcF9jbXRfY3BwX2RveHlnZW4gICAgICAgICAgICAgID0gdHJ1ZQ0KPiAr c3BfY29uZF9jb2xvbiAgICAgICAgICAgICAgICAgICA9IGFkZA0KPiArc3BfY29uZF9xdWVzdGlv biAgICAgICAgICAgICAgICA9IGFkZA0KPiArc3BfY3BwX2Nhc3RfcGFyZW4gICAgICAgICAgICAg ICA9IGZvcmNlDQo+ICtzcF9lbHNlX2JyYWNlICAgICAgICAgICAgICAgICAgID0gZm9yY2UNCj4g K3NwX2VuZGlmX2NtdCAgICAgICAgICAgICAgICAgICAgPSBmb3JjZQ0KPiArc3BfZW51bV9hc3Np Z24gICAgICAgICAgICAgICAgICA9IGFkZA0KPiArc3BfaW5zaWRlX2JyYWNlcyAgICAgICAgICAg ICAgICA9IGZvcmNlDQo+ICtzcF9pbnNpZGVfYnJhY2VzX2VtcHR5ICAgICAgICAgID0gZm9yY2UN Cj4gK3NwX2luc2lkZV9icmFjZXNfZW51bSAgICAgICAgICAgPSBmb3JjZQ0KPiArc3BfaW5zaWRl X2JyYWNlc19zdHJ1Y3QgICAgICAgICA9IGZvcmNlDQo+ICtzcF9wcF9jb25jYXQgICAgICAgICAg ICAgICAgICAgID0gYWRkDQo+ICtzcF9wcF9zdHJpbmdpZnkgICAgICAgICAgICAgICAgID0gYWRk DQo+ICtzcF9yZXR1cm5fcGFyZW4gICAgICAgICAgICAgICAgID0gYWRkDQo+ICtzcF9zcGVjaWFs X3NlbWkgICAgICAgICAgICAgICAgID0gZm9yY2UNCj4gK3NwX3doaWxlX3BhcmVuX29wZW4gICAg ICAgICAgICAgPSBmb3JjZQ0KPiArDQo+ICsjIEFkZGl0aW9uYWwgSW5kZW50YXRpb24gUnVsZXMN Cj4gK2luZGVudF9hY2Nlc3Nfc3BlYyAgICAgICAgICAgICAgPSAxDQo+ICtpbmRlbnRfYWNjZXNz X3NwZWNfYm9keSAgICAgICAgID0gZmFsc2UNCj4gK2luZGVudF9hbGlnbl9hc3NpZ24gICAgICAg ICAgICAgPSB0cnVlDQo+ICtpbmRlbnRfYWxpZ25fc3RyaW5nICAgICAgICAgICAgID0gdHJ1ZQ0K PiAraW5kZW50X2Jvb2xfcGFyZW4gICAgICAgICAgICAgICA9IHRydWUNCj4gK2luZGVudF9icmFj ZV9wYXJlbnQgICAgICAgICAgICAgPSBmYWxzZQ0KPiAraW5kZW50X2JyYWNlcyAgICAgICAgICAg ICAgICAgICA9IGZhbHNlDQo+ICtpbmRlbnRfYnJhY2VzX25vX2NsYXNzICAgICAgICAgID0gZmFs c2UNCj4gK2luZGVudF9icmFjZXNfbm9fZnVuYyAgICAgICAgICAgPSB0cnVlDQo+ICtpbmRlbnRf YnJhY2VzX25vX3N0cnVjdCAgICAgICAgID0gZmFsc2UNCj4gK2luZGVudF9jbGFzcyAgICAgICAg ICAgICAgICAgICAgPSBmYWxzZQ0KPiAraW5kZW50X2NsYXNzX2NvbG9uICAgICAgICAgICAgICA9 IGZhbHNlDQo+ICtpbmRlbnRfY210X3dpdGhfdGFicyAgICAgICAgICAgID0gZmFsc2UgICAgICAg ICAjIFdoZXRoZXIgdG8gaW5kZW50IGNvbW1lbnRzIHRoYXQgYXJlIG5vdCBhdCBhIGJyYWNlIGxl dmVsIHdpdGggdGFicyBvbg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIyBhIHRhYnN0b3AuIFJlcXVpcmVzIGluZGVudF93aXRoX3RhYnM9Mi4gSWYg ZmFsc2UsIHdpbGwgdXNlIHNwYWNlcy4NCj4gK2luZGVudF9jb2wxX2NvbW1lbnQgICAgICAgICAg ICAgPSB0cnVlDQo+ICtpbmRlbnRfY29sMV9tdWx0aV9zdHJpbmdfbGl0ZXJhbD0gdHJ1ZQ0KPiAr aW5kZW50X2NvbW1hX3BhcmVuICAgICAgICAgICAgICA9IHRydWUNCj4gK2luZGVudF9lbHNlX2lm ICAgICAgICAgICAgICAgICAgPSB0cnVlDQo+ICtpbmRlbnRfZXh0ZXJuICAgICAgICAgICAgICAg ICAgID0gZmFsc2UNCj4gK2luZGVudF9maXJzdF9ib29sX2V4cHIgICAgICAgICAgPSB0cnVlDQo+ ICsNCj4gK2luZGVudF9mdW5jX2RlZl9wYXJhbV9wYXJlbl9wb3NfdGhyZXNob2xkID0gMA0KPiAr aW5kZW50X2Z1bmNfcGFyYW1fZG91YmxlICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiAraW5k ZW50X2Z1bmNfcHJvdG9fcGFyYW0gICAgICAgICAgICAgICAgICAgPSB0cnVlDQo+ICtpbmRlbnRf aWdub3JlX2FzbV9ibG9jayAgICAgICAgICAgICAgICAgICA9IHRydWUNCj4gK2luZGVudF9sYWJl bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMQ0KPiAraW5kZW50X21lbWJlciAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPSAyDQo+ICtpbmRlbnRfbmFtZXNwYWNlICAgICAgICAg ICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtpbmRlbnRfcGFyYW0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA9IDINCj4gK2luZGVudF9wYXJlbl9ubCAgICAgICAgICAgICAgICAgICAg ICAgICAgID0gZmFsc2UNCj4gK2luZGVudF9wYXJlbl9vcGVuX2JyYWNlICAgICAgICAgICAgICAg ICAgID0gZmFsc2UNCj4gK2luZGVudF9wcmVzZXJ2ZV9zcWwgICAgICAgICAgICAgICAgICAgICAg ID0gZmFsc2UNCj4gK2luZGVudF9yZWxhdGl2ZV9zaW5nbGVfbGluZV9jb21tZW50cyAgICAgID0g ZmFsc2UNCj4gK2luZGVudF9zaW5nX2xpbmVfY29tbWVudHMgICAgICAgICAgICAgICAgID0gMA0K PiAraW5kZW50X3NpbmdsZV9uZXdsaW5lcyAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiAr aW5kZW50X3NxdWFyZV9ubCAgICAgICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiAraW5k ZW50X3N3aXRjaF9jYXNlICAgICAgICAgICAgICAgICAgICAgICAgPSAyDQo+ICtpbmRlbnRfdGVt cGxhdGVfcGFyYW0gICAgICAgICAgICAgICAgICAgICA9IHRydWUNCj4gK2luZGVudF92YXJfZGVm X2JsayAgICAgICAgICAgICAgICAgICAgICAgID0gMA0KPiAraW5kZW50X3Zhcl9kZWZfY29udCAg ICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArDQo+ICsjIFRpZHktdXAgcnVsZXMgKE9w dGlvbmFsKQ0KPiArbW9kX21vdmVfY2FzZV9icmVhayAgICAgICAgICAgICA9IHRydWUgICAgICAj IFdoZXRoZXIgdG8gbW92ZSBhICdicmVhaycgdGhhdCBhcHBlYXJzIGFmdGVyIGEgZnVsbHkgYnJh Y2VkICdjYXNlJw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjIGJlZm9yZSB0aGUgY2xvc2UgYnJhY2UsIGFzIGluICdjYXNlIFg6IHsgLi4uIH0gYnJlYWs7 JyA9Pg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICdj YXNlIFg6IHsgLi4uIGJyZWFrOyB9Jy4NCj4gK21vZF9wYXduX3NlbWljb2xvbiAgICAgICAgICAg ICAgPSBmYWxzZQ0KPiArbW9kX3JlbW92ZV9lbXB0eV9yZXR1cm4gICAgICAgICA9IGZhbHNlICAg ICAjIFdoZXRoZXIgdG8gcmVtb3ZlIGEgdm9pZCAncmV0dXJuOycgdGhhdCBhcHBlYXJzIGFzIHRo ZSBsYXN0IHN0YXRlbWVudA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjIGluIGEgZnVuY3Rpb24uDQo+ICttb2RfcmVtb3ZlX2V4dHJhX3NlbWljb2xvbiAg ICAgID0gdHJ1ZQ0KPiArbW9kX3NvcnRfaW1wb3J0ICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ ICttb2Rfc29ydF9pbmNsdWRlICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK21vZF9zb3J0X3Vz aW5nICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArbmxfYWZ0ZXJfY2FzZSAgICAgICAgICAg ICAgICAgICA9IGZhbHNlICAgICAjIFdoZXRoZXIgdG8gYWRkIGEgbmV3bGluZSBhZnRlciBhICdj YXNlJyBzdGF0ZW1lbnQuDQo+ICtubF9lbmRfb2ZfZmlsZSAgICAgICAgICAgICAgICAgID0gZm9y Y2UgICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUuDQo+ ICtubF9lbmRfb2ZfZmlsZV9taW4gICAgICAgICAgICAgID0gMSAgICAgICAgICMgVGhlIG1pbmlt dW0gbnVtYmVyIG9mIG5ld2xpbmVzIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUNCj4gK25sX21heCAg ICAgICAgICAgICAgICAgICAgICAgICAgPSAyICAgICAgICAgIyBUaGUgbWF4aW11bSBudW1iZXIg b2YgY29uc2VjdXRpdmUgbmV3bGluZXMgKDMgPSAyIGJsYW5rIGxpbmVzKS4NCj4gK25sX3N0YXJ0 X29mX2ZpbGUgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xp bmVzIGF0IHRoZSBzdGFydCBvZiB0aGUgZmlsZS4NCj4gKw0KPiArIyBDb2RlIGFsaWdubWVudCBy dWxlcyAoT3B0aW9uYWwpDQo+ICthbGlnbl9hc21fY29sb24gICAgICAgICAgICAgICAgID0gZmFs c2UNCj4gK2FsaWduX2Fzc2lnbl9zcGFuICAgICAgICAgICAgICAgPSAxICAgICAgICAgIyBUaGUg c3BhbiBmb3IgYWxpZ25pbmcgb24gJz0nIGluIGFzc2lnbm1lbnRzLg0KPiArYWxpZ25fYXNzaWdu X3RocmVzaCAgICAgICAgICAgICA9IDQNCj4gK2FsaWduX2VkazJfc3R5bGUgICAgICAgICAgICAg ICAgPSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIGFwcGx5IGVkazItc3BlY2lmaWMgYWxpZ25tZW50 IGZvcm1hdHRpbmcNCj4gK2FsaWduX2VudW1fZXF1X3NwYW4gICAgICAgICAgICAgPSAxICAgICAg ICAgIyBUaGUgc3BhbiBmb3IgYWxpZ25pbmcgb24gJz0nIGluIGVudW1zLg0KPiArYWxpZ25fZnVu Y19wYXJhbXMgICAgICAgICAgICAgICA9IHRydWUgICAgICAjIFdoZXRoZXIgdG8gYWxpZ24gdmFy aWFibGUgZGVmaW5pdGlvbnMgaW4gcHJvdG90eXBlcyBhbmQgZnVuY3Rpb25zLg0KPiArYWxpZ25f ZnVuY19wYXJhbXNfZ2FwICAgICAgICAgICA9IDINCj4gK2FsaWduX2Z1bmNfcGFyYW1zX3NwYW4g ICAgICAgICAgPSAyICAgICAgICAgIyBUaGUgc3BhbiBmb3IgYWxpZ25pbmcgcGFyYW1ldGVyIGRl ZmluaXRpb25zIGluIGZ1bmN0aW9uIG9uIHBhcmFtZXRlciBuYW1lLg0KPiArYWxpZ25fZnVuY19w YXJhbXNfdGhyZXNoICAgICAgICA9IDANCj4gK2FsaWduX2Z1bmNfcHJvdG9fc3BhbiAgICAgICAg ICAgPSAwDQo+ICthbGlnbl9rZWVwX3RhYnMgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK2Fs aWduX2xlZnRfc2hpZnQgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArYWxpZ25fbWl4X3Zhcl9w cm90byAgICAgICAgICAgICA9IGZhbHNlDQo+ICthbGlnbl9ubF9jb250ICAgICAgICAgICAgICAg ICAgID0gZmFsc2UNCj4gK2FsaWduX29jX2RlY2xfY29sb24gICAgICAgICAgICAgPSBmYWxzZQ0K PiArYWxpZ25fb25fb3BlcmF0b3IgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICthbGlnbl9vbl90 YWJzdG9wICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK2FsaWduX3BwX2RlZmluZV9nYXAgICAg ICAgICAgICAgPSAyDQo+ICthbGlnbl9wcF9kZWZpbmVfc3BhbiAgICAgICAgICAgID0gMQ0KPiAr YWxpZ25fcmlnaHRfY210X2F0X2NvbCAgICAgICAgICA9IDAgICAgICAgICAjIEFsaWduIHRyYWls aW5nIGNvbW1lbnQgYXQgb3IgYmV5b25kIGNvbHVtbiBOOyAncHVsbHMgaW4nIGNvbW1lbnRzIGFz DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYSBib251 cyBzaWRlIGVmZmVjdCAoMD1pZ25vcmUpDQo+ICthbGlnbl9yaWdodF9jbXRfZ2FwICAgICAgICAg ICAgID0gMCAgICAgICAgICMgSWYgYSB0cmFpbGluZyBjb21tZW50IGlzIG1vcmUgdGhhbiB0aGlz IG51bWJlciBvZiBjb2x1bW5zIGF3YXkgZnJvbSB0aGUNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIyB0ZXh0IGl0IGZvbGxvd3MsDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaXQgd2lsbCBxdWFsaWZ5IGZvciBi ZWluZyBhbGlnbmVkLiBUaGlzIGhhcyB0byBiZSA+IDAgdG8gZG8gYW55dGhpbmcuDQo+ICthbGln bl9yaWdodF9jbXRfbWl4ICAgICAgICAgICAgID0gZmFsc2UgICAgICMgSWYgYWxpZ25pbmcgY29t bWVudHMsIG1peCB3aXRoIGNvbW1lbnRzIGFmdGVyICd9JyBhbmQgI2VuZGlmIHdpdGggbGVzcw0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHRoYW4gMyBz cGFjZXMgYmVmb3JlIHRoZSBjb21tZW50DQo+ICthbGlnbl9yaWdodF9jbXRfc2FtZV9sZXZlbCAg ICAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBvbmx5IGFsaWduIHRyYWlsaW5nIGNvbW1lbnRz IHRoYXQgYXJlIGF0IHRoZSBzYW1lIGJyYWNlIGxldmVsLg0KPiArYWxpZ25fcmlnaHRfY210X3Nw YW4gICAgICAgICAgICA9IDIgICAgICAgICAjIFRoZSBzcGFuIGZvciBhbGlnbmluZyBjb21tZW50 cyB0aGF0IGVuZCBsaW5lcy4NCj4gK2FsaWduX3NhbWVfZnVuY19jYWxsX3BhcmFtcyAgICAgPSBm YWxzZQ0KPiArYWxpZ25fc2luZ2xlX2xpbmVfYnJhY2UgICAgICAgICA9IHRydWUNCj4gK2FsaWdu X3NpbmdsZV9saW5lX2Z1bmMgICAgICAgICAgPSB0cnVlDQo+ICthbGlnbl9zdHJ1Y3RfaW5pdF9z cGFuICAgICAgICAgID0gMSAgICAgICAgICMgVGhlIHNwYW4gZm9yIGFsaWduaW5nIHN0cnVjdCBp bml0aWFsaXplciB2YWx1ZXMuDQo+ICthbGlnbl90eXBlZGVmX2FtcF9zdHlsZSAgICAgICAgID0g MQ0KPiArYWxpZ25fdHlwZWRlZl9mdW5jICAgICAgICAgICAgICA9IDEgICAgICAgICAjIEhvdyB0 byBhbGlnbiB0eXBlZGVmJ2QgZnVuY3Rpb25zIHdpdGggb3RoZXIgdHlwZWRlZnMuDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKDA6IE5vIGFsaWduLCAx OiBBbGlnbiBvcGVuIHBhcmFudGhlc2lzLCAyOiBBbGlnbiBmdW5jdGlvbiB0eXBlIG5hbWUpDQo+ ICthbGlnbl90eXBlZGVmX2dhcCAgICAgICAgICAgICAgID0gMg0KPiArYWxpZ25fdHlwZWRlZl9z cGFuICAgICAgICAgICAgICA9IDEgICAgICAgICAjIFRoZSBzcGFuIGZvciBhbGlnbmluZyBzaW5n bGUtbGluZSB0eXBlZGVmcy4NCj4gK2FsaWduX3R5cGVkZWZfc3Rhcl9zdHlsZSAgICAgICAgPSAx DQo+ICthbGlnbl92YXJfZGVmX2FtcF9zdHlsZSAgICAgICAgID0gMQ0KPiArYWxpZ25fdmFyX2Rl Zl9hdHRyaWJ1dGUgICAgICAgICA9IHRydWUNCj4gK2FsaWduX3Zhcl9kZWZfY29sb24gICAgICAg ICAgICAgPSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIGFsaWduIHRoZSBjb2xvbiBpbiBzdHJ1Y3Qg Yml0IGZpZWxkcy4NCj4gK2FsaWduX3Zhcl9kZWZfZ2FwICAgICAgICAgICAgICAgPSAyICAgICAg ICAgIyBUaGUgZ2FwIChtaW5pbXVtIHNwYWNpbmcgZm9yIGFsaWduZWQgaXRlbXMpIGZvciB2YXJp YWJsZSBkZWZpbml0aW9ucy4NCj4gK2FsaWduX3Zhcl9kZWZfaW5saW5lICAgICAgICAgICAgPSBm YWxzZQ0KPiArYWxpZ25fdmFyX2RlZl9zcGFuICAgICAgICAgICAgICA9IDEgICAgICAgICAjIFRo ZSBzcGFuIChsaW5lcyBuZWVkZWQgdG8gYWxpZ24pIGZvciBhbGlnbmluZyB2YXJpYWJsZSBkZWZp bml0aW9ucy4NCj4gK2FsaWduX3Zhcl9kZWZfc3Rhcl9zdHlsZSAgICAgICAgPSAxICAgICAgICAg IyBIb3cgdG8gY29uc2lkZXIgKG9yIHRyZWF0KSB0aGUgJyonIGluIHRoZSBhbGlnbm1lbnQgb2Yg dmFyaWFibGUNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IyBkZWZpbml0aW9ucy4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIyAwOiBQYXJ0IG9mIHRoZSB0eXBlICAgICAndm9pZCAqICAgZm9vOycgKGRlZmF1bHQp DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgMTogUGFy dCBvZiB0aGUgdmFyaWFibGUgJ3ZvaWQgICAgICpmb287Jw0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIDI6IERhbmdsaW5nICAgICAgICAgICAgICd2b2lk ICAgICpmb287Jw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjIChOb3RlIC0gc2hvdWxkIGFsc28gc2V0IHNwX2FmdGVyX3B0cl9zdGFyPXJlbW92ZSkNCj4g K2FsaWduX3Zhcl9zdHJ1Y3RfZ2FwICAgICAgICAgICAgPSA0DQo+ICthbGlnbl92YXJfc3RydWN0 X3NwYW4gICAgICAgICAgID0gOCAgICAgICAgICMgVGhlIHNwYW4gZm9yIGFsaWduaW5nIHN0cnVj dC91bmlvbiBtZW1iZXIgZGVmaW5pdGlvbnMuDQo+ICthbGlnbl92YXJfc3RydWN0X3RocmVzaCAg ICAgICAgID0gMA0KPiArYWxpZ25fd2l0aF90YWJzICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ ICsNCj4gKyMgQ29tbWVudCBmb3JtYXR0aW5nDQo+ICtjbXRfYWxpZ25fZG94eWdlbl9qYXZhZG9j X3RhZ3MgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBhbGlnbiBkb3h5Z2VuIGphdmFkb2Mtc3R5 bGUgdGFncyAoJ0BwYXJhbScsICdAcmV0dXJuJywgZXRjLikNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUT0RPOiBFYXRzICdbJyBpbiAnW2luXScNCj4g K2NtdF9jX2dyb3VwICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArY210X2NfbmxfZW5k ICAgICAgICAgICAgICAgICAgICA9IHRydWUgICAgICAjIFdoZXRoZXIgdG8gYWRkIGEgbmV3bGlu ZSBiZWZvcmUgdGhlIGNsb3NpbmcgJyovJyBvZiB0aGUgY29tYmluZWQgYy1jb21tZW50Lg0KPiAr Y210X2Nfbmxfc3RhcnQgICAgICAgICAgICAgICAgICA9IHRydWUNCj4gK2NtdF9jcHBfZ3JvdXAg ICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArY210X2NwcF9ubF9lbmQgICAgICAgICAgICAg ICAgICA9IHRydWUNCj4gK2NtdF9jcHBfbmxfc3RhcnQgICAgICAgICAgICAgICAgPSB0cnVlDQo+ ICtjbXRfY3BwX3RvX2MgICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK2NtdF9pbmRlbnRf bXVsdGkgICAgICAgICAgICAgICAgPSBmYWxzZSAgICAgIyBXaGV0aGVyIHRvIGFwcGx5IGNoYW5n ZXMgdG8gbXVsdGktbGluZSBjb21tZW50cywgaW5jbHVkaW5nIGNtdF93aWR0aCwNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBrZXl3b3JkIHN1YnN0aXR1 dGlvbiBhbmQgbGVhZGluZyBjaGFycy4NCj4gK2NtdF9pbnNlcnRfYmVmb3JlX3ByZXByb2MgICAg ICAgPSBmYWxzZQ0KPiArI2NtdF9pbnNlcnRfZmlsZV9oZWFkZXIgICAgICAgICAgPSBkZWZhdWx0 X2ZpbGVfaGVhZGVyLnR4dA0KPiArI2NtdF9pbnNlcnRfZnVuY19oZWFkZXIgICAgICAgICAgPSBk ZWZhdWx0X2Z1bmN0aW9uX2hlYWRlci50eHQNCj4gK2NtdF9tdWx0aV9jaGVja19sYXN0ICAgICAg ICAgICAgPSBmYWxzZQ0KPiArY210X211bHRpX2ZpcnN0X2xlbl9taW5pbXVtICAgICA9IDINCj4g K2NtdF9yZWZsb3dfbW9kZSAgICAgICAgICAgICAgICAgPSAxICAgICAgICAgIyBIb3cgdG8gcmVm bG93IGNvbW1lbnRzLg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAjICgwOk5vIHJlZmxvdywgMTpObyB0b3VjaGluZyBhdCBhbGwsIDI6IEZ1bGwgcmVmbG93 KQ0KPiArY210X3NwX2FmdGVyX3N0YXJfY29udCAgICAgICAgICA9IDAgICAgICAgICAjIFRoZSBu dW1iZXIgb2Ygc3BhY2VzIHRvIGluc2VydCBhZnRlciB0aGUgc3RhciBvbiBzdWJzZXF1ZW50IGNv bW1lbnQgbGluZXMuDQo+ICtjbXRfc3BfYmVmb3JlX3N0YXJfY29udCAgICAgICAgID0gMCAgICAg ICAgICMgVGhlIG51bWJlciBvZiBzcGFjZXMgdG8gaW5zZXJ0IGF0IHRoZSBzdGFydCBvZiBzdWJz ZXF1ZW50IGNvbW1lbnQgbGluZXMuDQo+ICtjbXRfc3Rhcl9jb250ICAgICAgICAgICAgICAgICAg ID0gZmFsc2UgICAgICMgV2hldGhlciB0byBwdXQgYSBzdGFyIG9uIHN1YnNlcXVlbnQgY29tbWVu dCBsaW5lcy4NCj4gK2NtdF93aWR0aCAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAgICAgICAg IyBUcnkgdG8gd3JhcCBjb21tZW50cyBhdCBOIGNvbHVtbnMuDQo+ICtzcF9jbXRfY3BwX3N0YXJ0 ICAgICAgICAgICAgICAgID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBhZnRlciB0 aGUgb3BlbmluZyBvZiBhIEMrKyBjb21tZW50LCBhcyBpbg0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjICcvLyA8aGVyZT4gQScuICBOT1RFOiBCcmVha3Mg aW5kZW50YXRpb24gd2l0aGluIGNvbW1lbnRzLg0KPiArDQo+ICsjIEZ1bmN0aW9uIGRlZmluaXRp b25zIC8gZGVjbGFyYXRpb25zDQo+ICtpbmRlbnRfZnVuY19jYWxsX3BhcmFtICAgICAgICAgID0g ZmFsc2UgICAgICMgV2hldGhlciB0byBpbmRlbnQgY29udGludWVkIGZ1bmN0aW9uIGNhbGwgcGFy YW1ldGVycyBvbmUgaW5kZW50IGxldmVsLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAjIHJhdGhlciB0aGFuIGFsaWduaW5nIHBhcmFtZXRlcnMgdW5kZXIg dGhlIG9wZW4gcGFyZW50aGVzaXMuDQo+ICtpbmRlbnRfZnVuY19jbGFzc19wYXJhbSAgICAgICAg ID0gZmFsc2UgICAgICMgV2hldGhlciB0byBpbmRlbnQgY29udGludWVkIGZ1bmN0aW9uIGNhbGwg ZGVjbGFyYXRpb24gb25lIGluZGVudCBsZXZlbCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIyByYXRoZXIgdGhhbiBhbGlnbmluZyBwYXJhbWV0ZXJzIHVu ZGVyIHRoZSBvcGVuIHBhcmVudGhlc2lzLg0KPiAraW5kZW50X2Z1bmNfY3Rvcl92YXJfcGFyYW0g ICAgICA9IGZhbHNlICAgICAjIFdoZXRoZXIgdG8gaW5kZW50IGNvbnRpbnVlZCBjbGFzcyB2YXJp YWJsZSBjb25zdHJ1Y3RvcnMgb25lIGluZGVudCBsZXZlbCwNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyByYXRoZXIgdGhhbiBhbGlnbmluZyBwYXJhbWV0 ZXJzIHVuZGVyIHRoZSBvcGVuIHBhcmVudGhlc2lzLg0KPiAraW5kZW50X2Z1bmNfZGVmX3BhcmFt ICAgICAgICAgICA9IHRydWUgICAgICAjIFdoZXRoZXIgdG8gaW5kZW50IGNvbnRpbnVlZCBmdW5j dGlvbiBkZWZpbml0aW9uIHBhcmFtZXRlcnMgb25lIGluZGVudA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGxldmVsLCByYXRoZXIgdGhhbiBhbGlnbmlu ZyBwYXJhbWV0ZXJzIHVuZGVyIHRoZSBvcGVuIHBhcmVudGhlc2lzLg0KPiArbmxfZmRlZl9icmFj ZSAgICAgICAgICAgICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBi ZXR3ZWVuIGZ1bmN0aW9uIHNpZ25hdHVyZSBhbmQgJ3snLg0KPiArbmxfZnVuY19jYWxsX2VuZF9t dWx0aV9saW5lICAgICA9IHRydWUgICAgICAjIFdoZXRoZXIgdG8gYWRkIGEgbmV3bGluZSBiZWZv cmUgJyknIGluIGEgZnVuY3Rpb24gY2FsbCBpZiAnKCcgYW5kICcpJyBhcmUNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpbiBkaWZmZXJlbnQgbGluZXMu DQo+ICtubF9mdW5jX2NhbGxfcGFyZW4gICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9y IHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gYSBmdW5jdGlvbiBuYW1lIGFuZCB0aGUgb3BlbmluZyAn KCcgaW4gdGhlDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICMgY2FsbC4NCj4gK25sX2Z1bmNfY2FsbF9zdGFydF9tdWx0aV9saW5lICAgPSB0cnVlICAgICAg IyBXaGV0aGVyIHRvIGFkZCBhIG5ld2xpbmUgYWZ0ZXIgJygnIGluIGEgZnVuY3Rpb24gY2FsbCBp ZiAnKCcgYW5kICcpJyBhcmUNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIyBpbiBkaWZmZXJlbnQgbGluZXMuDQo+ICtubF9mdW5jX2RlY2xfYXJncyAgICAg ICAgICAgICAgID0gZm9yY2UgICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGFmdGVyIGVhY2gg JywnIGluIGEgZnVuY3Rpb24gZGVjbGFyYXRpb24uDQo+ICtubF9mdW5jX2RlY2xfZW1wdHkgICAg ICAgICAgICAgID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gJygp JyBpbiBhIGZ1bmN0aW9uIGRlY2xhcmF0aW9uLg0KPiArbmxfZnVuY19kZWZfYXJncyAgICAgICAg ICAgICAgICA9IGZvcmNlICAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBhZnRlciBlYWNoICcs JyBpbiBhIGZ1bmN0aW9uIGRlZmluaXRpb24uDQo+ICtubF9mdW5jX2RlZl9lbXB0eSAgICAgICAg ICAgICAgID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gJygpJyBp biBhIGZ1bmN0aW9uIGRlZmluaXRpb24uDQo+ICtubF9mdW5jX2RlZl9wYXJlbiAgICAgICAgICAg ICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gYSBmdW5jdGlv biBuYW1lIGFuZCB0aGUgb3BlbmluZyAnKCcNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIyBpbiB0aGUgZGVmaW5pdGlvbi4NCj4gK25sX2Z1bmNfcGFyZW4g ICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0 d2VlbiBhIGZ1bmN0aW9uIG5hbWUgYW5kIHRoZSBvcGVuaW5nICcoJyBpbg0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHRoZSBkZWNsYXJhdGlvbi4NCj4g K25sX2Z1bmNfdHlwZV9uYW1lICAgICAgICAgICAgICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVt b3ZlIG5ld2xpbmUgYmV0d2VlbiByZXR1cm4gdHlwZSBhbmQgZnVuY3Rpb24gbmFtZSBpbiBhIGZ1 bmN0aW9uDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg ZGVmaW5pdGlvbi4NCj4gK3NwX2ZwYXJlbl9icmFjZSAgICAgICAgICAgICAgICAgPSBmb3JjZSAg ICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gJyknIGFuZCAneycgb2YgZnVuY3Rpb24u DQo+ICt1c2VfaW5kZW50X2Z1bmNfY2FsbF9wYXJhbSAgICAgID0gdHJ1ZSAgICAgICMgaW5kZW50 X2Z1bmNfY2FsbF9wYXJhbSB3aWxsIGJlIHVzZWQNCj4gKw0KPiArIyBBZGRpdGlvbmFsIE5ld2xp bmUgUnVsZXMNCj4gK25sX2FmdGVyX2JyYWNlX29wZW4gICAgICAgICAgICAgICAgICAgICAgICAg ID0gdHJ1ZSAgICAgIyBXaGV0aGVyIHRvIGFkZCBhIG5ld2xpbmUgYWZ0ZXIgJ3snLiBUaGlzIGFs c28gYWRkcyBhIG5ld2xpbmUNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIyBiZWZvcmUgdGhlIG1hdGNoaW5nICd9Jy4NCj4gK25sX2Fm dGVyX2JyYWNlX29wZW5fY210ICAgICAgICAgICAgICAgICAgICAgID0gdHJ1ZSAgICAgIyBXaGV0 aGVyIHRvIGFkZCBhIG5ld2xpbmUgYmV0d2VlbiB0aGUgb3BlbiBicmFjZSBhbmQgYQ0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHRy YWlsaW5nIHNpbmdsZS1saW5lIGNvbW1lbnQuDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgUmVxdWlyZXMgbmxfYWZ0ZXJfYnJhY2Vf b3BlbiA9IHRydWUuDQo+ICtubF9hZnRlcl9kbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA9IGFkZCAgICAgICMgQWRkIG9yIHJlbW92ZSBibGFuayBsaW5lIGFmdGVyICdkby93aGls ZScgc3RhdGVtZW50Lg0KPiArbmxfYWZ0ZXJfZm9yICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgPSBhZGQgICAgICAjIEFkZCBvciByZW1vdmUgYmxhbmsgbGluZSBhZnRlciAnZm9yJyBz dGF0ZW1lbnQuDQo+ICtubF9hZnRlcl9mdW5jX2JvZHkgICAgICAgICAgICAgICAgICAgICAgICAg ICA9IDIgICAgICAgICMgVGhlIG51bWJlciBvZiBuZXdsaW5lcyBhZnRlciAnfScgb2YgYSBtdWx0 aS1saW5lIGZ1bmN0aW9uIGJvZHkNCj4gK25sX2FmdGVyX2Z1bmNfYm9keV9vbmVfbGluZXIgICAg ICAgICAgICAgICAgID0gMg0KPiArbmxfYWZ0ZXJfZnVuY19wcm90byAgICAgICAgICAgICAgICAg ICAgICAgICAgPSAyDQo+ICtubF9hZnRlcl9mdW5jX3Byb3RvX2dyb3VwICAgICAgICAgICAgICAg ICAgICA9IDINCj4gK25sX2FmdGVyX2lmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ID0gYWRkDQo+ICtubF9hZnRlcl9tdWx0aWxpbmVfY29tbWVudCAgICAgICAgICAgICAgICAgICA9 IGZhbHNlDQo+ICtubF9hZnRlcl9yZXR1cm4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9 IGZhbHNlDQo+ICtubF9hZnRlcl9zdHJ1Y3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9 IDINCj4gK25sX2FmdGVyX3N3aXRjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gYWRk DQo+ICtubF9hZnRlcl92YnJhY2VfY2xvc2UgICAgICAgICAgICAgICAgICAgICAgICA9IHRydWUN Cj4gK25sX2FmdGVyX3ZicmFjZV9vcGVuICAgICAgICAgICAgICAgICAgICAgICAgID0gdHJ1ZQ0K PiArbmxfYWZ0ZXJfdmJyYWNlX29wZW5fZW1wdHkgICAgICAgICAgICAgICAgICAgPSB0cnVlDQo+ ICtubF9hZnRlcl93aGlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGFkZA0KPiAr bmxfYXNzaWduX2xlYXZlX29uZV9saW5lcnMgICAgICAgICAgICAgICAgICAgPSB0cnVlDQo+ICtu bF9iZWZvcmVfYmxvY2tfY29tbWVudCAgICAgICAgICAgICAgICAgICAgICA9IDINCj4gK25sX2Jl Zm9yZV9jYXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK25sX2Jl Zm9yZV9kbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gaWdub3JlDQo+ICtubF9i ZWZvcmVfZm9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGlnbm9yZQ0KPiArbmxf YmVmb3JlX2lmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBpZ25vcmUNCj4gK25s X2JlZm9yZV9zd2l0Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gaWdub3JlDQo+ICtu bF9iZWZvcmVfd2hpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGlnbm9yZQ0KPiAr bmxfYmVmb3JlX3dob2xlX2ZpbGVfaWZkZWYgICAgICAgICAgICAgICAgICAgPSAyDQo+ICtubF9i cmFjZV9icmFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGZvcmNlDQo+ICtubF9i cmFjZV9zdHJ1Y3RfdmFyICAgICAgICAgICAgICAgICAgICAgICAgICA9IHJlbW92ZQ0KPiArbmxf Y2FzZV9jb2xvbl9icmFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgPSBhZGQNCj4gK25sX2Ns YXNzX2xlYXZlX29uZV9saW5lcnMgICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK25sX2Nv bGxhcHNlX2VtcHR5X2JvZHkgICAgICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK25sX2Nv bW1lbnRfZnVuY19kZWYgICAgICAgICAgICAgICAgICAgICAgICAgID0gMQ0KPiArbmxfY3JlYXRl X2Zvcl9vbmVfbGluZXIgICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArbmxfY3JlYXRl X2lmX29uZV9saW5lciAgICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArbmxfY3JlYXRl X3doaWxlX29uZV9saW5lciAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArbmxfZGVmaW5l X21hY3JvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArbmxfZHNfc3Ry dWN0X2VudW1fY2xvc2VfYnJhY2UgICAgICAgICAgICAgICAgPSB0cnVlDQo+ICtubF9kc19zdHJ1 Y3RfZW51bV9jbXQgICAgICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtubF9lbnVtX2xl YXZlX29uZV9saW5lcnMgICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtubF9mdW5jX2Nh bGxfYXJnc19tdWx0aV9saW5lICAgICAgICAgICAgICAgICA9IHRydWUNCj4gK25sX2Z1bmNfY2Fs bF9hcmdzX211bHRpX2xpbmVfaWdub3JlX2Nsb3N1cmVzID0gZmFsc2UNCj4gK25sX2Z1bmNfZGVj bF9lbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gYWRkDQo+ICtubF9mdW5jX2RlY2xf c3RhcnQgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGFkZA0KPiArbmxfZnVuY19kZWZfZW5k ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBhZGQNCj4gK25sX2Z1bmNfZGVmX3N0YXJ0 ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gYWRkDQo+ICtubF9mdW5jX2xlYXZlX29uZV9s aW5lcnMgICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtubF9mdW5jX3Byb3RvX3R5cGVf bmFtZSAgICAgICAgICAgICAgICAgICAgICA9IGFkZA0KPiArbmxfZnVuY192YXJfZGVmX2JsayAg ICAgICAgICAgICAgICAgICAgICAgICAgPSAxDQo+ICtubF9nZXRzZXRfbGVhdmVfb25lX2xpbmVy cyAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtubF9pZl9sZWF2ZV9vbmVfbGluZXJzICAg ICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtubF9tdWx0aV9saW5lX2RlZmluZSAgICAg ICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtubF9zcXVlZXplX2lmZGVmICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtubF92YXJfZGVmX2Jsa19lbmQgICAgICAg ICAgICAgICAgICAgICAgICAgICA9IDANCj4gK25sX3Zhcl9kZWZfYmxrX3N0YXJ0ICAgICAgICAg ICAgICAgICAgICAgICAgID0gMA0KPiArDQo+ICsjIFByZXByb2Nlc3NvciBSdWxlcw0KPiArcHBf ZGVmaW5lX2F0X2xldmVsICAgICAgPSB0cnVlDQo+ICtwcF9pZl9pbmRlbnRfY29kZSAgICAgICA9 IGZhbHNlDQo+ICtwcF9pbmRlbnRfZnVuY19kZWYgICAgICA9IGZhbHNlDQo+ICtwcF9pbmRlbnRf ZXh0ZXJuICAgICAgICA9IGZhbHNlDQo+ICtwcF9pZ25vcmVfZGVmaW5lX2JvZHkgICA9IHRydWUg ICAgICAgICAgICAgICAgIyBXb3JrYXJvdW5kOiBUdXJuIG9mZiBwcm9jZXNzaW5nIGZvciAjZGVm aW5lIGJvZHkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjIChjdXJyZW50IHJ1bGVzIGRvIG5vdCB3b3JrIGZvciBzb21lIGRlZmluZXMpDQo+ICtwcF9p bmRlbnQgICAgICAgICAgICAgICA9IGFkZA0KPiArcHBfaW5kZW50X2F0X2xldmVsICAgICAgPSB0 cnVlDQo+ICtwcF9pbmRlbnRfY291bnQgICAgICAgICA9IDINCj4gK3BwX2luZGVudF9pZiAgICAg ICAgICAgID0gMg0KPiArcHBfaW5kZW50X3JlZ2lvbiAgICAgICAgPSAyDQo+ICtwcF9yZWdpb25f aW5kZW50X2NvZGUgICA9IGZhbHNlDQo+ICtwcF9zcGFjZSAgICAgICAgICAgICAgICA9IHJlbW92 ZQ0KPiArDQo+ICsjDQo+ICsjIFRoZSB0b2tlbnMgYmVsb3cgYXJlIGFzc2lnbmVkIHNwZWNpZmlj IHR5cGVzIHNvIHRoZXkgYXJlIGFsd2F5cyByZWNvZ25pemVkIHByb3Blcmx5Lg0KPiArIw0KPiAr DQo+ICsjIEV4cGxpY2l0bHkgZGVmaW5lIEVESyBJSSBxdWFsaWZpZXJzDQo+ICtzZXQgUVVBTElG SUVSIENPTlNUDQo+ICtzZXQgUVVBTElGSUVSIEVGSUFQSQ0KPiArc2V0IFFVQUxJRklFUiBJTg0K PiArc2V0IFFVQUxJRklFUiBPUFRJT05BTA0KPiArc2V0IFFVQUxJRklFUiBPVVQNCj4gKw0KPiAr IyBFeHBsaWNpdGx5IGRlZmluZSBFREsgSUkgdHlwZXMNCj4gK3NldCBUWVBFIEVGSV9TVEFUVVMN Cj4gK3NldCBUWVBFIFZPSUQNCj4gZGlmZiAtLWdpdCBhLy5weXRvb2wvUGx1Z2luL1VuY3J1c3Rp ZnkvdW5jcnVzdGlmeV9leHRfZGVwLnlhbWwgYi8ucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5L3Vu Y3J1c3RpZnlfZXh0X2RlcC55YW1sDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAw MDAwMDAwMDAwMC4uZDhjMjI0MDNiNGIxDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvLnB5dG9v bC9QbHVnaW4vVW5jcnVzdGlmeS91bmNydXN0aWZ5X2V4dF9kZXAueWFtbA0KPiBAQCAtMCwwICsx LDE2IEBADQo+ICsjIyBAZmlsZQ0KPiArIyBEb3dubG9hZHMgdGhlIFVuY3J1c3RpZnkgYXBwbGlj YXRpb24gZnJvbSBhIFByb2plY3QgTXUgTnVHZXQgcGFja2FnZS4NCj4gKyMNCj4gKyMgQ29weXJp Z2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uDQo+ICsjIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICsjIw0KPiArew0KPiArICAiaWQiOiAidW5jcnVz dGlmeS1jaS0xIiwNCj4gKyAgInNjb3BlIjogImNpYnVpbGQiLA0KPiArICAidHlwZSI6ICJudWdl dCIsDQo+ICsgICJuYW1lIjogIm11LXVuY3J1c3RpZnktcmVsZWFzZSIsDQo+ICsgICJzb3VyY2Ui OiAiaHR0cHM6Ly9wa2dzLmRldi5henVyZS5jb20vcHJvamVjdG11L1VuY3J1c3RpZnkvX3BhY2th Z2luZy9tdV91bmNydXN0aWZ5L251Z2V0L3YzL2luZGV4Lmpzb24iLA0KPiArICAidmVyc2lvbiI6 ICI3My4wLjMiLA0KPiArICAiZmxhZ3MiOiBbInNldF9zaGVsbF92YXIiLCAiaG9zdF9zcGVjaWZp YyJdLA0KPiArICAidmFyX25hbWUiOiAiVU5DUlVTVElGWV9DSV9QQVRIIg0KPiArfQ0KPiBkaWZm IC0tZ2l0IGEvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeS91bmNydXN0aWZ5X3BsdWdfaW4ueWFt bCBiLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvdW5jcnVzdGlmeV9wbHVnX2luLnlhbWwNCj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi4yNWQ5YThkMzdhMzAN Cj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi8ucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5L3VuY3J1 c3RpZnlfcGx1Z19pbi55YW1sDQo+IEBAIC0wLDAgKzEsMTIgQEANCj4gKyMjIEBmaWxlDQo+ICsj IENpQnVpbGRQbHVnaW4gdXNlZCB0byBjaGVjayBjb2Rpbmcgc3RhbmRhcmQgY29tcGxpYW5jZSBv ZiBFREsgSUkgc3R5bGUgQyBzb3VyY2UgY29kZQ0KPiArIw0KPiArIyBDb3B5cmlnaHQgKGMpIE1p Y3Jvc29mdCBDb3Jwb3JhdGlvbi4NCj4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0y LUNsYXVzZS1QYXRlbnQNCj4gKyMjDQo+ICt7DQo+ICsgICJzY29wZSI6ICJjaWJ1aWxkIiwNCj4g KyAgIm5hbWUiOiAiVW5jcnVzdGlmeSBDb2RpbmcgU3RhbmRhcmQgVGVzdCIsDQo+ICsgICJtb2R1 bGUiOiAiVW5jcnVzdGlmeSINCj4gK30NCj4gKw0KPiBkaWZmIC0tZ2l0IGEvLnB5dG9vbC9SZWFk bWUubWQgYi8ucHl0b29sL1JlYWRtZS5tZA0KPiBpbmRleCBmNjUwNTUwNzk2NmEuLjQ2ZDcyNDhm N2RhMyAxMDA2NDQNCj4gLS0tIGEvLnB5dG9vbC9SZWFkbWUubWQNCj4gKysrIGIvLnB5dG9vbC9S ZWFkbWUubWQNCj4gQEAgLTI2NCw2ICsyNjQsMTAgQEAgQlNELTItQ2xhdXNlLVBhdGVudC4NCj4g IFJ1biB0aGUgRWNjIHRvb2wgb24gdGhlIHBhY2thZ2UuIFRoZSBFY2MgdG9vbCBpcyBhdmFpbGFi bGUgaW4gdGhlIEJhc2VUb29scw0KPiAgcGFja2FnZS4gSXQgY2hlY2tzIHRoYXQgdGhlIGNvZGUg Y29tcGxpZXMgdG8gdGhlIEVES0lJIGNvZGluZyBzdGFuZGFyZC4NCj4gDQo+ICsjIyMgQ29kaW5n IFN0YW5kYXJkIENvbXBsaWFuY2UgLSBVbmNydXN0aWZ5DQo+ICsNCj4gK1J1bnMgdGhlIFVuY3J1 c3RpZnkgYXBwbGljYXRpb24gdG8gY2hlY2sgZm9yIGNvZGluZyBzdGFuZGFyZCBjb21wbGlhbmNl IGlzc3Vlcy4NCj4gKw0KPiAgIyMgUHlUb29sIFNjb3Blcw0KPiANCj4gIFNjb3BlcyBhcmUgaG93 IHRoZSBQeVRvb2wgZXh0X2RlcCwgcGF0aF9lbnYsIGFuZCBwbHVnaW5zIGFyZSBhY3RpdmF0ZWQu ICBNZWFuaW5nDQo+IC0tDQo+IDIuMjguMC53aW5kb3dzLjENCj4gDQo+IA0KPiANCj4gLT0tPS09 LT0tPS09DQo+IEdyb3Vwcy5pbyBMaW5rczogWW91IHJlY2VpdmUgYWxsIG1lc3NhZ2VzIHNlbnQg dG8gdGhpcyBncm91cC4NCj4gVmlldy9SZXBseSBPbmxpbmUgKCM4Mzk4Mik6IGh0dHBzOi8vZWRr Mi5ncm91cHMuaW8vZy9kZXZlbC9tZXNzYWdlLzgzOTgyDQo+IE11dGUgVGhpcyBUb3BpYzogaHR0 cHM6Ly9ncm91cHMuaW8vbXQvODcyNjg0MDkvMTY0MzQ5Ng0KPiBHcm91cCBPd25lcjogZGV2ZWwr b3duZXJAZWRrMi5ncm91cHMuaW8NCj4gVW5zdWJzY3JpYmU6IGh0dHBzOi8vZWRrMi5ncm91cHMu aW8vZy9kZXZlbC91bnN1YiBbbWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb21dDQo+IC09LT0tPS09 LT0tPQ0KPiANCg0K