From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web11.58409.1682358084662606746 for ; Mon, 24 Apr 2023 10:41:24 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=novYjWtt; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1682358084; x=1713894084; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=mpvSlyky7Y7kYGnatrLimQpdDuIwy4kDeLb3BoDoIKA=; b=novYjWttSVwdnWfRS2Kyqes4xYmOYAW2w+BO2fUfOS3+iLmFFog2Xm8V gmc3RUsg/jHMzQgRhonLXp8XiQ2G0Wm+WpDT8e4dFSq/xMXvluNZ2fBOF LGCI/P1xGAeOt4wN8Qbf+AHK1OBYop4kW4FkvU+G9Q6T1JjXOFB00r3g2 EacGDP5LvgitQ5iB11Sgq2LOYJ/YwiZsKVx+/5YxnMW6TzbvSbvgJ6+uR dFLrdnD9NxNlAMKFJSKJQFU+GdAmHV+FuK0Ir3qb7s8bW1i67IQbKrDJZ pK56x9SDfcM+HhbKP56aTzKnP+lIlrTJdnOC0/FGEqmvaQCfDUWisFKdo A==; X-IronPort-AV: E=McAfee;i="6600,9927,10690"; a="409447846" X-IronPort-AV: E=Sophos;i="5.99,223,1677571200"; d="scan'208";a="409447846" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Apr 2023 10:41:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10690"; a="723675765" X-IronPort-AV: E=Sophos;i="5.99,223,1677571200"; d="scan'208";a="723675765" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga008.jf.intel.com with ESMTP; 24 Apr 2023 10:41:23 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Mon, 24 Apr 2023 10:41:23 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Mon, 24 Apr 2023 10:41:23 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.170) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Mon, 24 Apr 2023 10:41:22 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FNOIg3zjurY4ZQPwQAo9d+knAoFEjB/hnnIZIEuzALWomwLDiHLXVPpbwXxOImhAb37RmLY94fmYxxhykyVtl4Xb68ToUeHpT/GnVaBWbQOc1uREpOf8rgFlz7yEuL8LWqEZDEoBhb9TIF44DnXhxN/wQoRTWqRw7bFOdETaPuhkLqtLFlDDcU6EHC6XFm+WUkbYHEGJxpBPdoEwOs7MALoWqCBp8liVYSEeyuOholC9HVw+lJJv8iC8hC6YDfR1Ry+Dx8q4UsluyCzmWmJj1YRlsCJPsHt/8j3D8Y9RqCFAKJPI1409sCStTrCB6ojz/5Aaogxy2uyjyAZhB/qdDw== 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=mpvSlyky7Y7kYGnatrLimQpdDuIwy4kDeLb3BoDoIKA=; b=j9vTRLiICAUTi4NHMxkRgvkx7fcrSOzJpPmnUn/SEnxFzVUJkrgCyU5WLzFgfZ/xBh0WY8hI6KswDsCBGIHcH2o/CSAHWlMGB/OqSts50FKg9vAcHjjnaXBKf0s5SsGraALm7JbESeD1auA6tShGVjCYMXxIOSbGH2bCmIn+JM/NbW1Xy9lv91eCmCu6D6QlcWaJ9dc/CKuji11oZ812Eo+G+LdjNo1DYQ/NUJvSAabIdsYIxkEFnP5zRrtJKTaQHZAMBKW5zRGP2P52zgvkOnNfvPJ3n57XqVtn2JM1502chURlBEwZZemiw5nGkOP/aYJV6aqXzYJNSMzoI3cPBw== 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 Received: from SA2PR11MB4938.namprd11.prod.outlook.com (2603:10b6:806:fb::14) by DS7PR11MB6222.namprd11.prod.outlook.com (2603:10b6:8:99::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.33; Mon, 24 Apr 2023 17:41:18 +0000 Received: from SA2PR11MB4938.namprd11.prod.outlook.com ([fe80::9ad:892d:ae85:59bc]) by SA2PR11MB4938.namprd11.prod.outlook.com ([fe80::9ad:892d:ae85:59bc%5]) with mapi id 15.20.6319.033; Mon, 24 Apr 2023 17:41:18 +0000 From: "Michael D Kinney" To: Leif Lindholm , "devel@edk2.groups.io" CC: "Lin, Benny" , Leif Lindholm , "Gao, Liming" , "Liu, Zhiguang" , Pedro Falcato , "Kinney, Michael D" Subject: Re: [edk2-devel] [PATCH v3 2/3] MdePkg: Support FDT library. Thread-Topic: [edk2-devel] [PATCH v3 2/3] MdePkg: Support FDT library. Thread-Index: AQHZcO5q7fKvBNcZ+0+q116Ir7z5eq8yx5NggAAap4CAAEA2IIAAe/mAgADNp2CABlaTAIAAAyfw Date: Mon, 24 Apr 2023 17:41:18 +0000 Message-ID: References: <20230417053505.670-1-benny.lin@intel.com> <20230417053505.670-3-benny.lin@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SA2PR11MB4938:EE_|DS7PR11MB6222:EE_ x-ms-office365-filtering-correlation-id: f8ff42d9-4069-4557-10dc-08db44eb1c25 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Z5GRefJiwYG8Np7zTITpwZl0JvzLpUTRyhcVAWLcCPI+RBkAn92xLrAGqBkK8aYEljgzrIFr1G5aNNtMoGRhjLePoxKCVd5bJb2vsVXlZNdjOQr27k+o5pA8A35DzP6JI3qbOw8TXskqhw4ugKIU54p0Dq+Qwyb4Mx7Rzbyq1BW8uUeVB636ZeQM7giFUGCZjRCgBwAG9SaXmicSOS29IF+0sf/aPjSIoSF4262+7vDL0d0XMk3AwvEK/tqWH4D7pbbQ3ge5qYeZkyDJV+3yOeIwPRyBukkGK8ltcAIYKPPY6mD27ceToerm8R90PZVn75igYdcGUB0IhSJHwFZwrbRDRfrbO6qGBK9iVA6bbYtKHd3AX3/A16xy17q7e9Qsut0VzYqIsTUaRGOGVGA4IH2eNNvoibjVhveIH2NwxaBRWTInBayLCkh80vZfUorhEb8K7O5GNG1Zo9DpmFZKX0oW1ex6JeDbkb2N3gDHwqLrFq86J9T0YMRa7xWYt21bUjLOq/D7WagD1cibE0nrOTxYSlK5+Ot+WpjtUqKf5CYEj+YN6/ykswI7EF+FKcdTboBB+J5UPEdmca8r5MtKG+1kF/1hSLu33xO503pwu87R9o96zVcWE6cBx/dAjGBMO6R1F6HS0NKGWufdCubSrA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR11MB4938.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(376002)(346002)(136003)(396003)(39860400002)(451199021)(478600001)(19627235002)(66899021)(110136005)(54906003)(86362001)(966005)(107886003)(45080400002)(186003)(53546011)(26005)(9686003)(6506007)(55016003)(33656002)(71200400001)(4326008)(64756008)(66446008)(66476007)(66556008)(316002)(82960400001)(83380400001)(66946007)(76116006)(2906002)(30864003)(38100700002)(122000001)(41300700001)(8676002)(38070700005)(7696005)(5660300002)(8936002)(52536014)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?T1Frc0ZYOEZVcDVnK2crdVlUaGRqRW1kcWpNZ2VCNjloei91bno4TEEzRVZv?= =?utf-8?B?WkxzWGpVOHh6elpvMUJMV1djaldKUVU3d09nR28wS3BKRUtFamx4dGovTnNE?= =?utf-8?B?RE05RWgxbEhMa3RsZXd3d3B6cElIcUxJSGhqM0NuaXVrcThGT1lxb0tIckhn?= =?utf-8?B?OG00QzRkeHo0aVkvUTM4QXJCaUlNYTRPRm1FZkpnQlRoVk1ZWEtHNzBjSjFW?= =?utf-8?B?VzU2b0krYzlZa0hpbmdZSGR2ODZoSGRhUlRkOWY5VjY1ZVdKcTUzRFhCb0Zr?= =?utf-8?B?eTNsL0RoSzk0UUV5MFFqR1MybFhrSEd4OW03am45MCtJTE1WdnJ1YW9mMFFz?= =?utf-8?B?eWFJTXlBQkNMdkp5K3ZpblF2ditpMEtyM2Z1NEJlYjVRdUtKVGowSFlRV1hR?= =?utf-8?B?OXF2OE1POVQzblQrWC9FSW9FSVBqNGdxazhleTBkMEcvWTJqZ1JPT09oSzR2?= =?utf-8?B?b2g1UVhtVWE2aEFFa0FRdkhSUEppNDlzUUpFYWM3RzhHeTFRMGdROUhHcitR?= =?utf-8?B?TkxaQ1FWN3U0L2FobVFFQWV4c2pKWFNoOXNnV3p1UUpiNmxrdWg5L3h3MEFy?= =?utf-8?B?TU5qemxvN0s1S0dYcVRLWlR1cTc2cFFMdEJlNDE5cWJIQlRlOW1TQ2FwSDla?= =?utf-8?B?YitCWmk3eHQrS1JGalpFbnMvRFc2OGRhM21KTWFIcVUyVHJEcXpBcmFJdkY1?= =?utf-8?B?cVJKOGVHU0xHb3phTE40SFpiU3hXcklROUFxNVZaMkoxWDFtYWd5ZW9pRldk?= =?utf-8?B?MWc4dGdISTBPOCtCTE5ZYi9MS28wSVVxeS9xQ1c3UTNVYThSMk81V3VGdnVG?= =?utf-8?B?SE55REFqTWZ3a0FwaUVkd3lZcXFUczVBdEpEWGpEOEh5d214UEl6d2VUSkJK?= =?utf-8?B?ZkZyZHR1TnQ0UlprNlFiY0NRbWZHSUp2UmllTit3TVB0Vm8zMldnRmM1RnNo?= =?utf-8?B?bUZmc2lON0RKR0R2Mlg2TEk5SnJKN2VaeFZEb0hOclJrc2REdkgxN3RHcEdB?= =?utf-8?B?c3liQ0dIKzdrRVhJbHhwNzBuTDVIL21VNGtYa1ZOMHVodXUyZEFVMnp6VkdY?= =?utf-8?B?OGpyRFJ3Z0FuR3U5VldEV1Q0NDNkRkdCZWUwaTljaXdoUTI5NnpYMzRQdFN1?= =?utf-8?B?OXhkRnVweTBPNmNWa1Nsa0FmVUtUUFl6dk9XZmphdGtrNVhqTzg0S3A1Qlkr?= =?utf-8?B?L1dkRkFpeDVabFE5MzVxeUFtRnZaYUd3Y1QyUlJqWWczMDV5S2xsODhDaHRj?= =?utf-8?B?MGRTbUFLdWVaWUYvbU5kVEl3YXFXdXpFWFV5dVVkY0gwSmtsZ0VMWitPQVpu?= =?utf-8?B?VWNuM3loRUd3dFVHTmVrdHVGeGJySkpZK2RNZFZRK2thWlZ4bjg3ek05Z3FJ?= =?utf-8?B?eEh3aXk4V1lLQWFCNTc3SnNKTTM3MjRUVW9ZMHZBSkltV3NJWVpZY1NCQ0Iw?= =?utf-8?B?ekFhVDMvUzZxanFEbEF1RUI5WDNWVnllclQ5a3JnRUdMak9scy9majZPek1F?= =?utf-8?B?RzlKdkg1UmcrMys4QStwYlBYRzN4cElPaHFONFZHR1p6U01MNzVrbDdQUmZW?= =?utf-8?B?TDhkSjNRSWpRZWRoRHFFYTJrRWQvY3MvbGVtUmNMM3FoSW5WVFhsaGRuY096?= =?utf-8?B?TWMzVlFLdDVQdkRBL1N4ODNLWmltZlZSZ0NCOWl3Q3ZGem1Pa214L01lTHhE?= =?utf-8?B?N1FHa0tBY0hPSUthbmhSaTlQZDA0amlvQ0VmNDlMMFpCdllCUTZKZFRkR1Na?= =?utf-8?B?VUVxVDg4R3R6ZEVaQ2hYNC8xRHh1Nzc4eVA2Q2dPa0VsdzRSWU9Balp5RXRI?= =?utf-8?B?RkxQTWFNMEpKOC9ERld6N1ZjWGpSV2xkcHVJQ2VHT3RtNFU2OGh2MDZibWl3?= =?utf-8?B?bG4yM2w2UGdsdkdnQUlLZk5wS2dCcElLdjFnUHo0UlU1blhydWZET0JlWHRu?= =?utf-8?B?NlhLd1FHeUI5QUJ3b2VOMzkrRkE1L1Vza2tEdE9aODQyanRwR0FMdVp1SnVj?= =?utf-8?B?Qzcxc0NqaitIYWJ1NXcvaHI3NmMvRWxoSWs0T3VCdWM1RVdHR252NVZ6Uko1?= =?utf-8?B?OUYzWnRTeFZodXlQeGVEZkZudnZmdUR0RkJVNjMvaVZWeEgzNWxpT1lZVTBt?= =?utf-8?B?cmk5WmJVTzJ6dmlRZENYOHFrdE9aQ1IvWVVXUXphczBSY3hsNUFleDZHNmw4?= =?utf-8?B?dGc9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA2PR11MB4938.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f8ff42d9-4069-4557-10dc-08db44eb1c25 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Apr 2023 17:41:18.2982 (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: RZc28AM8Wdaz15A8Z/6f5ET3u30PITUpId29uWzpay45F1E+lR4QBQIS9DdHoREwz2P/Qj96R56oyCiJyKRRHsYuCGeK5r0rHnBhfs6Ycxg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR11MB6222 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 SGkgTGVpZiwNCg0KRG8geW91IGhhdmUgYSBwcm9wb3NhbCBvciBzbWFsbCBleGFtcGxlIG9uIHdo YXQgeW91IHdhbnQgdG8gc2VlDQppbiB0aGUgbGlicmFyeT8NCg0KTWlrZQ0KDQo+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IExlaWYgTGluZGhvbG0gPHF1aWNfbGxpbmRob2xA cXVpY2luYy5jb20+DQo+IFNlbnQ6IE1vbmRheSwgQXByaWwgMjQsIDIwMjMgMTA6MjkgQU0NCj4g VG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtp bm5leUBpbnRlbC5jb20+DQo+IENjOiBMaW4sIEJlbm55IDxiZW5ueS5saW5AaW50ZWwuY29tPjsg TGVpZiBMaW5kaG9sbSA8bGxpbmRob2xAcXRpLnF1YWxjb21tLmNvbT47IEdhbywgTGltaW5nIDxn YW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBMaXUsDQo+IFpoaWd1YW5nIDx6aGlndWFuZy5saXVA aW50ZWwuY29tPjsgUGVkcm8gRmFsY2F0byA8cGVkcm8uZmFsY2F0b0BnbWFpbC5jb20+DQo+IFN1 YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYzIDIvM10gTWRlUGtnOiBTdXBwb3J0IEZE VCBsaWJyYXJ5Lg0KPiANCj4gQXBvbG9naWVzLCBJIHdhcyByZWZhY3RvcmluZyBhIGdpdCB0cmVl IGFuZCBzd2l0Y2hlZCBvZmYgdGhlIHdvcmxkIDopDQo+IA0KPiBXZWxsLCBiZWluZyBhIGJpdCBs YXRlIHRvIHRoZSBwYXJ0eSAuLi4gbXkgdmlldyBpcyBpdCB3b3VsZCBiZQ0KPiBwcmVmZXJhYmxl IGlmIHdlIHB1dCB0aGUgYnl0ZXN3YXBwaW5nIGluIHRoZSBsaWJyYXJ5Lg0KPiANCj4gVGhlIERU IGZvcm1hdCBpcyAqZGVmaW5lZCogdG8gYmUgYmlnLWVuZGlhbiwgMzItYml0IGNlbGxzLiBTbyBm cmFua2x5LA0KPiBJIGhhdmUgbm8gcHJvYmxlbXMgd2l0aCBwdXNoaW5nIHJlc3BvbnNpYmlsaXR5 IG9udG8gaW5kaXZpZHVhbA0KPiBwbGF0Zm9ybXMgaWYgdGhleSBoYXZlIGRlY2lkZWQgdG8gYmUg ImNsZXZlciIgYnkgaWdub3JpbmcgdGhhdCAtDQo+IGlmIHRoYXQgZ2V0cyByaWQgb2YgYSBidW5j aCBvZiBib2lsZXJwbGF0ZSBmb3Igc2Vuc2libHkgYmVoYXZpbmcgcGxhdGZvcm1zLg0KPiANCj4g TWF5YmUgYW5vdGhlciBleGN1c2UgZm9yIGdldHRpbmcNCj4gaHR0cHM6Ly9naXRodWIuY29tL3Rp YW5vY29yZS9lZGsyLXBsYXRmb3Jtcy9ibG9iL21hc3Rlci9TaWxpY29uL05YUC9MaWJyYXJ5L0lv QWNjZXNzTGliL0lvQWNjZXNzTGliLmMNCj4gaW50byBNZGVQa2c/DQo+IA0KPiAvDQo+ICAgICBM ZWlmDQo+IA0KPiBPbiBUaHUsIEFwciAyMCwgMjAyMyBhdCAxNjo0NDowMyArMDAwMCwgTWljaGFl bCBEIEtpbm5leSB3cm90ZToNCj4gPiBIaSBMZWlmLA0KPiA+DQo+ID4gV2hhdCBpcyB5b3VyIG9w aW5pb24gb24gRkRUIGJlaW5nIGJpZyBlbmRpYW4uDQo+ID4NCj4gPiBEbyB3ZSB3YW50IHRoZSBs aWIgdG8gaGVscCB3aXRoIHRoYXQgYXNwZWN0LCBvciBsZWF2ZSBpdCB1cCB0byB0aGUgY29uc3Vt ZXIgb2YgdGhlIGxpYiB0bw0KPiA+IGNvbnZlcnQgYXMgbmVlZGVkPyAgU2VlbXMgbGlrZSBhbiBh cmVhIHRoYXQgY291bGQgYmUgdmVyeSBlcnJvciBwcm9uZSBpZiB3ZSBhcmUgbm90DQo+ID4gY2Fy ZWZ1bC4NCj4gPg0KPiA+IE1pa2UNCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gPiA+IEZyb206IExpbiwgQmVubnkgPGJlbm55LmxpbkBpbnRlbC5jb20+DQo+ID4gPiBT ZW50OiBXZWRuZXNkYXksIEFwcmlsIDE5LCAyMDIzIDk6MjUgUE0NCj4gPiA+IFRvOiBLaW5uZXks IE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vw cy5pbw0KPiA+ID4gQ2M6IEdhbywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBM aXUsIFpoaWd1YW5nIDx6aGlndWFuZy5saXVAaW50ZWwuY29tPjsgUGVkcm8gRmFsY2F0byA8cGVk cm8uZmFsY2F0b0BnbWFpbC5jb20+DQo+ID4gPiBTdWJqZWN0OiBSRTogW1BBVENIIHYzIDIvM10g TWRlUGtnOiBTdXBwb3J0IEZEVCBsaWJyYXJ5Lg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4g Pi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+RnJvbTogS2lubmV5LCBNaWNoYWVs IEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gPlNlbnQ6IFRodXJzZGF5LCBB cHJpbCAyMCwgMjAyMyA1OjA0IEFNDQo+ID4gPiA+VG86IExpbiwgQmVubnkgPGJlbm55LmxpbkBp bnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gPkNjOiBHYW8sIExpbWluZyA8 Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgTGl1LCBaaGlndWFuZyA8emhpZ3VhbmcubGl1QGlu dGVsLmNvbT47IFBlZHJvIEZhbGNhdG8NCj4gPHBlZHJvLmZhbGNhdG9AZ21haWwuY29tPjsgS2lu bmV5LA0KPiA+ID4gTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiA+ ID5TdWJqZWN0OiBSRTogW1BBVENIIHYzIDIvM10gTWRlUGtnOiBTdXBwb3J0IEZEVCBsaWJyYXJ5 Lg0KPiA+ID4gPg0KPiA+ID4gPlJlc3BvbnNlcyBiZWxvdw0KPiA+ID4gPg0KPiA+ID4gPk1pa2UN Cj4gPiA+ID4NCj4gPiA+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+PiBG cm9tOiBMaW4sIEJlbm55IDxiZW5ueS5saW5AaW50ZWwuY29tPg0KPiA+ID4gPj4gU2VudDogV2Vk bmVzZGF5LCBBcHJpbCAxOSwgMjAyMyAxMDoxMiBBTQ0KPiA+ID4gPj4gVG86IEtpbm5leSwgTWlj aGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47DQo+ID4gPiA+PiBkZXZlbEBlZGsy Lmdyb3Vwcy5pbw0KPiA+ID4gPj4gQ2M6IEdhbywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5j b20uY24+OyBMaXUsIFpoaWd1YW5nDQo+ID4gPiA+PiA8emhpZ3VhbmcubGl1QGludGVsLmNvbT47 IFBlZHJvIEZhbGNhdG8gPHBlZHJvLmZhbGNhdG9AZ21haWwuY29tPg0KPiA+ID4gPj4gU3ViamVj dDogUkU6IFtQQVRDSCB2MyAyLzNdIE1kZVBrZzogU3VwcG9ydCBGRFQgbGlicmFyeS4NCj4gPiA+ ID4+DQo+ID4gPiA+PiBQbGVhc2UgZmluZCBteSBmZWVkYmFjayBiZWxvdy4NCj4gPiA+ID4+IFdl IGNhbiByZW1vdmUgRkRUX1JFU0VSVkVfRU5UUlkgYnV0IGtlZXAgRkRUX05PREVfSEVBREVSLCB3 aGF0IGRvIHlvdSB0aGluaz8NCj4gPiA+ID4+DQo+ID4gPiA+PiBRUVENCj4gPiA+ID4+IEJlbm55 DQo+ID4gPiA+Pg0KPiA+ID4gPj4gPi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ PiA+RnJvbTogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0K PiA+ID4gPj4gPlNlbnQ6IFdlZG5lc2RheSwgQXByaWwgMTksIDIwMjMgMTE6NTQgUE0NCj4gPiA+ ID4+ID5UbzogTGluLCBCZW5ueSA8YmVubnkubGluQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3Jv dXBzLmlvDQo+ID4gPiA+PiA+Q2M6IEdhbywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20u Y24+OyBMaXUsIFpoaWd1YW5nDQo+ID4gPiA+PiA+PHpoaWd1YW5nLmxpdUBpbnRlbC5jb20+OyBQ ZWRybyBGYWxjYXRvIDxwZWRyby5mYWxjYXRvQGdtYWlsLmNvbT47DQo+ID4gPiA+PiA+S2lubmV5 LA0KPiA+ID4gPj4gTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiA+ ID4+ID5TdWJqZWN0OiBSRTogW1BBVENIIHYzIDIvM10gTWRlUGtnOiBTdXBwb3J0IEZEVCBsaWJy YXJ5Lg0KPiA+ID4gPj4gPg0KPiA+ID4gPj4gPkEgZmV3IGNvbW1lbnRzIGJlbG93Lg0KPiA+ID4g Pj4gPg0KPiA+ID4gPj4gPk1pa2UNCj4gPiA+ID4+ID4NCj4gPiA+ID4+ID4+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+PiA+PiBGcm9tOiBMaW4sIEJlbm55IDxiZW5ueS5saW5A aW50ZWwuY29tPg0KPiA+ID4gPj4gPj4gU2VudDogU3VuZGF5LCBBcHJpbCAxNiwgMjAyMyAxMDoz NSBQTQ0KPiA+ID4gPj4gPj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiA+PiA+PiBD YzogTGluLCBCZW5ueSA8YmVubnkubGluQGludGVsLmNvbT47IEtpbm5leSwgTWljaGFlbCBEDQo+ ID4gPiA+PiA+PiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBHYW8sIExpbWluZw0KPiA+ ID4gPj4gPj4gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IExpdSwgWmhpZ3VhbmcgPHpoaWd1 YW5nLmxpdUBpbnRlbC5jb20+Ow0KPiA+ID4gPj4gPj4gUGVkcm8gRmFsY2F0byA8cGVkcm8uZmFs Y2F0b0BnbWFpbC5jb20+DQo+ID4gPiA+PiA+PiBTdWJqZWN0OiBbUEFUQ0ggdjMgMi8zXSBNZGVQ a2c6IFN1cHBvcnQgRkRUIGxpYnJhcnkuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gRnJvbTog QmVubnkgTGluIDxiZW5ueS5saW5AaW50ZWwuY29tPg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ IFJFRjogaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD00Mzky DQo+ID4gPiA+PiA+PiBBZGQgRkRUIHN1cHBvcnQgaW4gRURLMiBieSBzdWJtb2R1bGUgM3JkIHBh cnR5IGxpYmZkdA0KPiA+ID4gPj4gPj4gKGh0dHBzOi8vZ2l0aHViLmNvbS9kZXZpY2V0cmVlLW9y Zy9weWxpYmZkdC90cmVlL21haW4vbGliZmR0KQ0KPiA+ID4gPj4gPj4gYW5kIHJlZmVyIHRvIExp YmNMaWIgaW1wbGVtZW50YXRpb24gYnkgUGVkcm8uDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4g Q2M6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4g Pj4gPj4gQ2M6IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4gPiA+ID4+ ID4+IENjOiBaaGlndWFuZyBMaXUgPHpoaWd1YW5nLmxpdUBpbnRlbC5jb20+DQo+ID4gPiA+PiA+ PiBBY2tlZC1ieTogUGVkcm8gRmFsY2F0byA8cGVkcm8uZmFsY2F0b0BnbWFpbC5jb20+DQo+ID4g PiA+PiA+PiBTaWduZWQtb2ZmLWJ5OiBCZW5ueSBMaW4gPGJlbm55LmxpbkBpbnRlbC5jb20+DQo+ ID4gPiA+PiA+PiAtLS0NCj4gPiA+ID4+ID4+ICBNZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L0ZkdExp Yi5oICAgICAgICAgICB8IDMxNCArKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gPj4gPj4gIE1k ZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvQmFzZUZkdExpYi5pbmYgIHwgIDYyICsrKysNCj4gPiA+ ID4+ID4+IE1kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvQmFzZUZkdExpYi51bmkgIHwgIDE0ICsN Cj4gPiA+ID4+ID4+ICBNZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0ZkdExpYi5jICAgICAgICB8 IDMwMSArKysrKysrKysrKysrKysrKysrDQo+ID4gPiA+PiA+PiAgTWRlUGtnL0xpYnJhcnkvQmFz ZUZkdExpYi9MaWJGZHRTdXBwb3J0LmggfCAgOTkgKysrKysrDQo+ID4gPiA+PiA+PiBNZGVQa2cv TGlicmFyeS9CYXNlRmR0TGliL0xpYkZkdFdyYXBwZXIuYyB8IDE3MyArKysrKysrKysrKw0KPiA+ ID4gPj4gPj4gIE1kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvbGltaXRzLmggICAgICAgIHwgIDEw ICsNCj4gPiA+ID4+ID4+ICBNZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0ZGJvb2wuaCAgICAg ICB8ICAxMCArDQo+ID4gPiA+PiA+PiAgTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdGRkZWYu aCAgICAgICAgfCAgMTAgKw0KPiA+ID4gPj4gPj4gIE1kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIv c3RkaW50LmggICAgICAgIHwgIDEwICsNCj4gPiA+ID4+ID4+ICBNZGVQa2cvTGlicmFyeS9CYXNl RmR0TGliL3N0ZGxpYi5oICAgICAgICB8ICAxMCArDQo+ID4gPiA+PiA+PiAgTWRlUGtnL0xpYnJh cnkvQmFzZUZkdExpYi9zdHJpbmcuaCAgICAgICAgfCAgMTAgKw0KPiA+ID4gPj4gPj4gIE1kZVBr Zy9NZGVQa2cuY2kueWFtbCAgICAgICAgICAgICAgICAgICAgIHwgIDE3ICstDQo+ID4gPiA+PiA+ PiAgTWRlUGtnL01kZVBrZy5kZWMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKw0KPiA+ ID4gPj4gPj4gIE1kZVBrZy9NZGVQa2cuZHNjICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx ICsNCj4gPiA+ID4+ID4+ICAxNSBmaWxlcyBjaGFuZ2VkLCAxMDQzIGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gZGlmZiAtLWdpdCBhL01kZVBr Zy9JbmNsdWRlL0xpYnJhcnkvRmR0TGliLmgNCj4gPiA+ID4+ID4+IGIvTWRlUGtnL0luY2x1ZGUv TGlicmFyeS9GZHRMaWIuaCBuZXcgZmlsZSBtb2RlIDEwMDY0NCBpbmRleA0KPiA+ID4gPj4gPj4g MDAwMDAwMDAwMC4uZDU5Yjc0OWMyNQ0KPiA+ID4gPj4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+ID4g Pj4gPj4gKysrIGIvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9GZHRMaWIuaA0KPiA+ID4gPj4gPj4g QEAgLTAsMCArMSwzMTQgQEANCj4gPiA+ID4+ID4+ICsvKiogQGZpbGUNCj4gPiA+ID4+ID4+DQo+ ID4gPiA+PiA+PiArICBGbGF0dGVuZWQgRGV2aWNlIFRyZWUgTGlicmFyeS4NCj4gPiA+ID4+ID4+ DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQ29weXJpZ2h0IChj KSAyMDIzLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4g PiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNs YXVzZS1QYXRlbnQNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ ID4gPj4gPj4gKyoqLw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ ID4gPiA+PiA+PiArI2lmbmRlZiBGRFRfTElCX0hfDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4g KyNkZWZpbmUgRkRUX0xJQl9IXw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ ID4+DQo+ID4gPiA+PiA+PiArLy8vDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKy8vLyBGbGF0 dGVuZWQgRGV2aWNlIFRyZWUgZGVmaW5pdGlvbg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsv Ly8NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ID4gPj4g Pj4NCj4gPiA+ID4+ID4+ICsgIFVJTlQzMiAgICBNYWdpYzsgICAgICAgICAgICAgICAvKiBtYWdp YyB3b3JkIEZEVF9NQUdJQyAqLw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIFVJTlQzMiAg ICBUb3RhbFNpemU7ICAgICAgICAgICAvKiB0b3RhbCBzaXplIG9mIERUIGJsb2NrICovDQo+ID4g PiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgVUlOVDMyICAgIE9mZnNldER0U3RydWN0OyAgICAgIC8q IG9mZnNldCB0byBzdHJ1Y3R1cmUgKi8NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBVSU5U MzIgICAgT2Zmc2V0RHRTdHJpbmdzOyAgICAgLyogb2Zmc2V0IHRvIHN0cmluZ3MgKi8NCj4gPiA+ ID4+ID4+DQo+ID4gPiA+PiA+PiArICBVSU5UMzIgICAgT2Zmc2V0TWVtUnN2bWFwOyAgICAgLyog b2Zmc2V0IHRvIG1lbW9yeSByZXNlcnZlIG1hcCAqLw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ ICsgIFVJTlQzMiAgICBWZXJzaW9uOyAgICAgICAgICAgICAvKiBmb3JtYXQgdmVyc2lvbiAqLw0K PiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIFVJTlQzMiAgICBMYXN0Q29tcFZlcnNpb247ICAg ICAvKiBsYXN0IGNvbXBhdGlibGUgdmVyc2lvbiAqLw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICAvKiB2ZXJzaW9uIDIgZmllbGRzIGJlbG93 ICovDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgVUlOVDMyICAgIEJvb3RDcHVpZFBoeXM7 ICAgICAgIC8qIFdoaWNoIHBoeXNpY2FsIENQVSBpZCB3ZSdyZQ0KPiA+ID4gPj4gPj4NCj4gPiA+ ID4+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib290aW5nIG9uICov DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgLyogdmVyc2lvbiAzIGZpZWxkcyBiZWxvdyAq Lw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIFVJTlQzMiAgICBTaXplRHRTdHJpbmdzOyAg ICAgICAvKiBzaXplIG9mIHRoZSBzdHJpbmdzIGJsb2NrICovDQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIC8qIHZlcnNpb24gMTcgZmllbGRz IGJlbG93ICovDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgVUlOVDMyICAgIFNpemVEdFN0 cnVjdDsgICAgICAgIC8qIHNpemUgb2YgdGhlIHN0cnVjdHVyZSBibG9jayAqLw0KPiA+ID4gPj4g Pj4NCj4gPiA+ID4+ID4+ICt9IEZEVF9IRUFERVI7DQo+ID4gPiA+PiA+DQo+ID4gPiA+PiA+SSBz ZWUgdGhlIG1hY3JvcyBiZWxvdyB1c2UgU3dhcEJ5dGVzMzIoKSBvbiBhbGwgdGhlIGZpZWxkcyBm cm9tIHRoaXMNCj4gPiA+ID4+ID5zdHJ1Y3R1cmUuICBEb2VzIHRoaXMgbWVhbiB0aGlzIHN0cnVj dHVyZSBpcyBiaWcgPmVuZGlhbj8gIElmDQo+ID4gPiA+PiB0aGF0IGlzIHRoZSBjYXNlLCB0aGVu IHRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIHN0cnVjdHVyZSBhbmQgYWxsDQo+ID4gPiA+PiBpbmRp dmlkdWFsIGZpZWxkcyBtdXN0IG1ha2UgdGhhdCB2ZXJ5IGNsZWFyID5zbyBhbnkgY29uc3VtZXIg b2YgdGhlDQo+ID4gPiA+PiBzdHJ1Y3R1cmUga25vd3MgaXQgZG9lcyBub3QgZm9sbG93IHRoZSBk ZWZhdWx0IGVuZGlhbm5lc3Mgb2YgVUVGSS9QSSBhbmQgdGhhdCBjb25zdW1lcnMgPm11c3QgZWl0 aGVyIHVzZSB0aGUgbWFjcm9zIG9yDQo+IGNvbnN1bWVycw0KPiA+ID4gbXVzdCB1c2UgU3dhcEJ5 dGVzMzIoKSBvbiB0aGVpciBvd24gd2hlbiB1c2luZyB0aGlzIHN0cnVjdHVyZSBkaXJlY3RseS4N Cj4gPiA+ID4+DQo+ID4gPiA+PiBZZXMsIGl0J3MgYmlnIGVuZGlhbi4gSSB3aWxsIGNvbXBsZXRl IG1vcmUgZGVzY3JpcHRpb25zIGluIHBhdGNoIHY0Lg0KPiA+ID4gPg0KPiA+ID4gPldvdWxkIGl0 IGJlIHNpbXBsZXIgaWYgd2UgaGF2ZSBhIGxpYiBzZXJ2aWNlIHRoYXQgY29udmVydHMgdGhlIGVu dGlyZSBoZWFkZXIgZnJvbSBiaWcgZW5kaWFuIHRvIGxpdHRsZSBlbmRpYW4uDQo+ID4gPiA+VGhh dCB3YXksIHRoZSBjb25zdW1lciBjYW4gdXNlIHRoZSBGRFRfSEVBREVSIGRpcmVjdGx5IHdpdGhv dXQgYW55IG9mIHRoZSBtYWNyb3M/DQo+ID4gPiA+DQo+ID4gPiA+QWxzbywgaXMgdGhlIHJlc3Qg b2YgdGhlIEZEVCBibG9iIGFsc28gYmlnIGVuZGlhbj8NCj4gPiA+DQo+ID4gPiBGRFQgYmxvYiBm b3JtYXQgaXMgYmluYXJ5IGVuY29kaW5nIG9mIEZEVCBkYXRhIHdpdGggYmlnIGVuZGlhbi4gSW4g YWRkaXRpb24sIHRoZSBjb25zdW1lciB3aWxsIHNldCBvciBnZXQgRkRUIGRhdGEgd2l0aCBGRFQN Cj4gYmxvYi4gV2UNCj4gPiA+IGNhbiBjb21wbGV0ZSBtb3JlIGRlc2NyaXB0aW9ucyB0byB3YXJu IGNvbnN1bWVycyB0byBiZSBjYXJlZnVsIGlmIGp1c3QgdXNlIGhlYWRlciBzdHJ1Y3QgZm9yIG1h cHBpbmcgYW5kIGdldC9zZXQgRkRUIGRhdGENCj4gd2l0aCBGRFQNCj4gPiA+IGJsb2IuDQo+ID4g Pg0KPiA+ID4gRm9yIHByb3ZpZGUgbGliIHNlcnZpY2VzIHRoYXQgY29udmVydHMgYmV0d2VlbiBi aWcgZW5kaWFuIGFuZCBsaXR0bGUgZW5kaWFuLCB3ZSBjYW4gcHJvdmlkZSBhIGdldCBoZWFkZXIg ZnVuY3Rpb24gdG8gY29udmVydA0KPiBiZXR3ZWVuDQo+ID4gPiBiaWcgZW5kaWFuIGFuZCBsaXR0 bGUgZW5kaWFuLiBIb3dldmVyLCB3ZSBhbHNvIG5lZWQgdG8gY29uc2lkZXIgdGhlIHByb3BlcnR5 IHZhbHVlIGZvciBzZXR0aW5nIGFuZCBnZXR0aW5nIHRoZW4gd2UgY2FuDQo+IGNvbnZlcnQgaW4N Cj4gPiA+IHdyYXBwZXIgZnVuY3Rpb25zLg0KPiA+ID4NCj4gPiA+IEZvciBleGFtcGxlLA0KPiA+ ID4NCj4gPiA+IElOVDMyDQo+ID4gPiBFRklBUEkNCj4gPiA+IEZkdFNldFByb3AgKA0KPiA+ID4g ICBJTiBWT0lEICAgICAgICAgKkZkdCwNCj4gPiA+ICAgSU4gSU5UMzIgICAgICAgIE5vZGVPZmZz ZXQsDQo+ID4gPiAgIElOIENPTlNUIENIQVI4ICAqTmFtZSwNCj4gPiA+ICAgSU4gQ09OU1QgVk9J RCAgICpWYWx1ZSwNCj4gPiA+ICAgSU4gVUlOVDMyICAgICAgIExlbmd0aA0KPiA+ID4gICApDQo+ ID4gPiB7DQo+ID4gPiAgIHJldHVybiBmZHRfc2V0cHJvcCAoRmR0LCBOb2RlT2Zmc2V0LCBOYW1l LCBWYWx1ZSwgKGludClMZW5ndGgpOw0KPiA+ID4gfQ0KPiA+ID4NCj4gPiA+IE1vcmUgZnVuY3Rp b25zIGZvciB2YXJpb3VzIGJ5dGUgd2lkdGguDQo+ID4gPiBJTlQzMg0KPiA+ID4gRUZJQVBJDQo+ ID4gPiBGZHRTZXRQcm9wMTYgKA0KPiA+ID4gICBJTiBWT0lEICAgICAgICAgKkZkdCwNCj4gPiA+ ICAgSU4gSU5UMzIgICAgICAgIE5vZGVPZmZzZXQsDQo+ID4gPiAgIElOIENPTlNUIENIQVI4ICAq TmFtZSwNCj4gPiA+ICAgSU4gQ09OU1QgVUlOVDE2ICAgKlZhbHVlLA0KPiA+ID4gICBJTiBVSU5U MzIgICAgICAgTGVuZ3RoDQo+ID4gPiAgICkNCj4gPiA+IHsNCj4gPiA+ICAgcmV0dXJuIGZkdF9z ZXRwcm9wIChGZHQsIE5vZGVPZmZzZXQsIE5hbWUsIFN3YXBCeXRlczE2KFZhbHVlKSwgKGludClM ZW5ndGgpOw0KPiA+ID4gfQ0KPiA+ID4NCj4gPiA+IElOVDMyDQo+ID4gPiBFRklBUEkNCj4gPiA+ IEZkdFNldFByb3AzMiAoDQo+ID4gPiAgIElOIFZPSUQgICAgICAgICAqRmR0LA0KPiA+ID4gICBJ TiBJTlQzMiAgICAgICAgTm9kZU9mZnNldCwNCj4gPiA+ICAgSU4gQ09OU1QgQ0hBUjggICpOYW1l LA0KPiA+ID4gICBJTiBDT05TVCBVSU5UMzIgICAqVmFsdWUsDQo+ID4gPiAgIElOIFVJTlQzMiAg ICAgICBMZW5ndGgNCj4gPiA+ICAgKQ0KPiA+ID4gew0KPiA+ID4gICByZXR1cm4gZmR0X3NldHBy b3AgKEZkdCwgTm9kZU9mZnNldCwgTmFtZSwgU3dhcEJ5dGVzMzIoVmFsdWUpLCAoaW50KUxlbmd0 aCk7DQo+ID4gPiB9DQo+ID4gPg0KPiA+ID4gPj4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiAr DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPiA+ID4+ID4+ DQo+ID4gPiA+PiA+PiArICBVSU5UNjQgICAgQWRkcmVzczsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+ PiA+PiArICBVSU5UNjQgICAgU2l6ZTsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArfSBGRFRf UkVTRVJWRV9FTlRSWTsNCj4gPiA+ID4+ID4NCj4gPiA+ID4+ID4NCj4gPiA+ID4+ID5JIGRvIG5v dCBzZWUgdGhpcyB0eXBlIHVzZWQgYW55d2hlcmUgaW4gdGhlIGxpYiBjbGFzcyBvciB0aGUgbGli IGluc3RhbmNlLg0KPiA+ID4gPj4gPkNhbiBpdCBiZSByZW1vdmVkPw0KPiA+ID4gPj4NCj4gPiA+ ID4+IEkgdGhpbmsgd2UgY2FuIHJlbW92ZSBpdCBiZWNhdXNlIGl0IG1pZ2h0IGJlIG5vdCB1c2Vk IGZvciBmdXJ0aGVyIHVzYWdlIG9mIEZEVCBzdXBwb3J0Lg0KPiA+ID4gPj4NCj4gPiA+ID4+ID4N Cj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK3R5 cGVkZWYgc3RydWN0IHsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBVSU5UMzIgICAgVGFn Ow0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIENIQVI4ICAgICBOYW1lW107DQo+ID4gPiA+ PiA+Pg0KPiA+ID4gPj4gPj4gK30gRkRUX05PREVfSEVBREVSOw0KPiA+ID4gPj4gPg0KPiA+ID4g Pj4gPg0KPiA+ID4gPj4gPkkgZG8gbm90IHNlZSB0aGlzIHR5cGUgdXNlZCBhbnl3aGVyZSBpbiB0 aGUgbGliIGNsYXNzIG9yIHRoZSBsaWIgaW5zdGFuY2UuDQo+ID4gPiA+PiA+Q2FuIGl0IGJlIHJl bW92ZWQ/DQo+ID4gPiA+Pg0KPiA+ID4gPj4gV2hlbiB3ZSBuZWVkIHJldHJpZXZlIGEgbm9kZSBm cm9tIGEgRkRUIGJsb2IsIHdlIHdpbGwgZ2V0IGEgbm9kZQ0KPiA+ID4gPj4gb2Zmc2V0IHRoZW4g d2UgY291bGQgdXNlIHRoZSBzdHJ1Y3QgdG8gbWFwIHRoZSBub2RlIGNvbnRlbnQuIEl0J3MgdmVy eSB1c2VmdWwuDQo+ID4gPiA+DQo+ID4gPiA+UGxlYXNlIGFkZCBhIGNvbW1lbnQgaGVhZGVyIGZv ciB0aGlzIHN0cnVjdHVyZSBhbmQgZGVzY3JpYmUgdGhlIHVzYWdlIGFzIGl0IHJlbGF0ZWQgdG8g dGhlIHJlc3Qgb2YgdGhlIEZkdExpYiA+c2VydmljZXMuDQo+ID4gPg0KPiA+ID4gSSB3aWxsIGFk ZCBkZXNjcmlwdGlvbnMgZm9yIHRoZSB1c2FnZSBhbmQgcmVtb3ZlIEZEVF9SRVNFUlZFX0VOVFJZ IGluIHBhdGNoIHY0Lg0KPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4+DQo+ID4gPiA+PiA+DQo+ID4g PiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICt0eXBlZGVm IHN0cnVjdCB7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgVUlOVDMyICAgIFRhZzsNCj4g PiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBVSU5UMzIgICAgTGVuZ3RoOw0KPiA+ID4gPj4gPj4N Cj4gPiA+ID4+ID4+ICsgIFVJTlQzMiAgICBOYW1lT2Zmc2V0Ow0KPiA+ID4gPj4gPj4NCj4gPiA+ ID4+ID4+ICsgIENIQVI4ICAgICBEYXRhW107DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK30g RkRUX1BST1BFUlRZOw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ ID4gPiA+PiA+PiArI2RlZmluZSBGRFRfR0VUX0hFQURFUihGZHQsIEZpZWxkKSAgU3dhcEJ5dGVz MzIoKChDT05TVCBGRFRfSEVBREVSDQo+ID4gPiA+PiA+PiArKikoRmR0KSktPkZpZWxkKQ0KPiA+ ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArI2RlZmlu ZSBGRFRfTUFHSUMoRmR0KSAgICAgICAgICAgICAgKEZEVF9HRVRfSEVBREVSKEZkdCwgTWFnaWMp KQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsjZGVmaW5lIEZEVF9UT1RBTF9TSVpFKEZkdCkg ICAgICAgICAoRkRUX0dFVF9IRUFERVIoRmR0LCBUb3RhbFNpemUpKQ0KPiA+ID4gPj4gPj4NCj4g PiA+ID4+ID4+ICsjZGVmaW5lIEZEVF9PRkZTRVRfRFRfU1RSVUNUKEZkdCkgICAoRkRUX0dFVF9I RUFERVIoRmR0LCBPZmZzZXREdFN0cnVjdCkpDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyNk ZWZpbmUgRkRUX09GRlNFVF9EVF9TVFJJTkdTKEZkdCkgIChGRFRfR0VUX0hFQURFUihGZHQsDQo+ ID4gPiA+PiA+PiArT2Zmc2V0RHRTdHJpbmdzKSkNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiAr I2RlZmluZSBGRFRfT0ZGU0VUX01FTV9SU1ZNQVAoRmR0KSAgKEZEVF9HRVRfSEVBREVSKEZkdCwN Cj4gPiA+ID4+ID4+ICtPZmZzZXRNZW1Sc3ZtYXApKQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ ICsjZGVmaW5lIEZEVF9WRVJTSU9OKEZkdCkgICAgICAgICAgICAoRkRUX0dFVF9IRUFERVIoRmR0 LCBWZXJzaW9uKSkNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArI2RlZmluZSBGRFRfTEFTVF9D T01QX1ZFUlNJT04oRmR0KSAgKEZEVF9HRVRfSEVBREVSKEZkdCwNCj4gPiA+ID4+ID4+ICtMYXN0 Q29tcFZlcnNpb24pKQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsjZGVmaW5lIEZEVF9CT09U X0NQVUlEX1BIWVMoRmR0KSAgICAoRkRUX0dFVF9IRUFERVIoRmR0LCBCb290Q3B1aWRQaHlzKSkN Cj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArI2RlZmluZSBGRFRfU0laRV9EVF9TVFJJTkdTKEZk dCkgICAgKEZEVF9HRVRfSEVBREVSKEZkdCwgU2l6ZUR0U3RyaW5ncykpDQo+ID4gPiA+PiA+Pg0K PiA+ID4gPj4gPj4gKyNkZWZpbmUgRkRUX1NJWkVfRFRfU1RSVUNUKEZkdCkgICAgIChGRFRfR0VU X0hFQURFUihGZHQsIFNpemVEdFN0cnVjdCkpDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0K PiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsvKioNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiAr ICBWZXJpZnkgdGhlIGhlYWRlciBvZiB0aGUgRmxhdHRlbmVkIERldmljZSBUcmVlDQo+ID4gPiA+ PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEBwYXJhbVtp bl0gRmR0ICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+ID4gPiA+PiA+Pg0K PiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEByZXR1cm4gWmVybyBm b3Igc3VjY2Vzc2Z1bGx5LCBvdGhlcndpc2UgZmFpbGVkLg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArKiovDQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gK0lOVDMyDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK0VGSUFQSQ0KPiA+ID4gPj4g Pj4NCj4gPiA+ID4+ID4+ICtGZHRDaGVja0hlYWRlciAoDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4g Pj4gKyAgSU4gQ09OU1QgVk9JRCAgKkZkdA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICk7 DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsv KioNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBDcmVhdGUgYSBlbXB0eSBGbGF0dGVuZWQg RGV2aWNlIFRyZWUuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4g PiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gQnVmZmVyICAgICAgICAgVGhlIHBvaW50ZXIgdG8gYWxs b2NhdGUgYSBwb29sIGZvciBGRFQgYmxvYi4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBA cGFyYW1baW5dIEJ1ZmZlclNpemUgICAgIFRoZSBCdWZmZXJTaXplIHRvIHRoZSBwb29sIHNpemUu DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsg IEByZXR1cm4gWmVybyBmb3Igc3VjY2Vzc2Z1bGx5LCBvdGhlcndpc2UgZmFpbGVkLg0KPiA+ID4g Pj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArKiovDQo+ID4g PiA+PiA+Pg0KPiA+ID4gPj4gPj4gK1JFVFVSTl9TVEFUVVMNCj4gPiA+ID4+ID4+DQo+ID4gPiA+ PiA+PiArRUZJQVBJDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK0ZkdENyZWF0ZUVtcHR5VHJl ZSAoDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgSU4gVk9JRCAgICpCdWZmZXIsDQo+ID4g PiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgSU4gVUlOVE4gIEJ1ZmZlclNpemUNCj4gPiA+ID4+ID4+ DQo+ID4gPiA+PiA+PiArICApOw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ ID4+DQo+ID4gPiA+PiA+PiArLyoqDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgUmV0dXJu cyBhIG9mZnNldCBvZiBuZXh0IG5vZGUgZnJvbSB0aGUgZ2l2ZW4gbm9kZS4NCj4gPiA+ID4+ID4+ DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBG ZHQgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4gPiA+ID4+ID4+DQo+ID4g PiA+PiA+PiArICBAcGFyYW1baW5dIE9mZnNldCAgICAgICAgIFRoZSBvZmZzZXQgdG8gcHJldmlv dXMgbm9kZS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBAcGFyYW1baW5dIERlcHRoICAg ICAgICAgIFRoZSBkZXB0aCB0byB0aGUgbGV2ZWwgb2YgdHJlZSBoaWVyYXJjaHkuDQo+ID4gPiA+ PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEByZXR1cm4g VGhlIG9mZnNldCB0byBuZXh0IG5vZGUgb2Zmc2V0Lg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArKiovDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4g Pj4gK0lOVDMyDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK0VGSUFQSQ0KPiA+ID4gPj4gPj4N Cj4gPiA+ID4+ID4+ICtGZHROZXh0Tm9kZSAoDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAg SU4gQ09OU1QgVk9JRCAgKkZkdCwNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBJTiBJTlQz MiAgICAgICBPZmZzZXQsDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgSU4gSU5UMzIgICAg ICAgKkRlcHRoDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgKTsNCj4gPiA+ID4+ID4+DQo+ ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKy8qKg0KPiA+ID4gPj4gPj4N Cj4gPiA+ID4+ID4+ICsgIFJldHVybnMgYSBvZmZzZXQgb2YgZmlyc3Qgbm9kZSB1bmRlciB0aGUg Z2l2ZW4gbm9kZS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQg YmxvYi4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBAcGFyYW1baW5dIE9mZnNldCAgICAg ICAgIFRoZSBvZmZzZXQgdG8gcHJldmlvdXMgbm9kZS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHJldHVybiBUaGUgb2Zmc2V0IHRvIG5l eHQgbm9kZSBvZmZzZXQuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4N Cj4gPiA+ID4+ID4+ICsqKi8NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArSU5UMzINCj4gPiA+ ID4+ID4+DQo+ID4gPiA+PiA+PiArRUZJQVBJDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK0Zk dEZpcnN0U3Vibm9kZSAoDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgSU4gQ09OU1QgVk9J RCAgKkZkdCwNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBJTiBJTlQzMiAgICAgICBPZmZz ZXQNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICApOw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArLyoqDQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gKyAgUmV0dXJucyBhIG9mZnNldCBvZiBuZXh0IG5vZGUgZnJvbSB0aGUgZ2l2ZW4gbm9k ZS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4g KyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4g PiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBAcGFyYW1baW5dIE9mZnNldCAgICAgICAgIFRoZSBv ZmZzZXQgdG8gcHJldmlvdXMgbm9kZS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4g PiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHJldHVybiBUaGUgb2Zmc2V0IHRvIG5leHQgbm9kZSBv ZmZzZXQuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ ID4+ICsqKi8NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArSU5UMzINCj4gPiA+ID4+ID4+DQo+ ID4gPiA+PiA+PiArRUZJQVBJDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK0ZkdE5leHRTdWJu b2RlICgNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBJTiBDT05TVCBWT0lEICAqRmR0LA0K PiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIElOIElOVDMyICAgICAgIE9mZnNldA0KPiA+ID4g Pj4gPj4NCj4gPiA+ID4+ID4+ICsgICk7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsvKioNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBS ZXR1cm5zIGEgb2Zmc2V0IG9mIGZpcnN0IG5vZGUgd2hpY2ggaW5jbHVkZXMgdGhlIGdpdmVuIG5h bWUuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0K PiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gUGFyZW50T2Zmc2V0ICAgIFRo ZSBvZmZzZXQgdG8gdGhlIG5vZGUgd2hpY2ggc3RhcnQgZmluZCB1bmRlci4NCj4gPiA+ID4+ID4+ DQo+ID4gPiA+PiA+PiArICBAcGFyYW1baW5dIE5hbWUgICAgICAgICAgICBUaGUgbmFtZSB0byBz ZWFyY2ggdGhlIG5vZGUgd2l0aCB0aGUgbmFtZS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiAr ICBAcGFyYW1baW5dIE5hbWVMZW5ndGggICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBuYW1lIHRvIGNo ZWNrIG9ubHkuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ ID4+ID4+ICsgIEByZXR1cm4gVGhlIG9mZnNldCB0byBub2RlIG9mZnNldCB3aXRoIGdpdmVuIG5v ZGUgbmFtZS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gKyoqLw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICtJTlQzMg0KPiA+ID4gPj4gPj4N Cj4gPiA+ID4+ID4+ICtFRklBUEkNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArRmR0U3Vibm9k ZU9mZnNldE5hbWVMZW4gKA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIElOIENPTlNUIFZP SUQgICAqRmR0LA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIElOIElOVDMyICAgICAgICBQ YXJlbnRPZmZzZXQsDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgSU4gQ09OU1QgQ0hBUjgg ICpOYW1lLA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIElOIElOVDMyICAgICAgICBOYW1l TGVuZ3RoDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgKTsNCj4gPiA+ID4+ID4+DQo+ID4g PiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKy8qKg0KPiA+ID4gPj4gPj4NCj4g PiA+ID4+ID4+ICsgIFJldHVybnMgYSBvZmZzZXQgb2YgZmlyc3Qgbm9kZSB3aGljaCBpbmNsdWRl cyB0aGUgZ2l2ZW4gcHJvcGVydHkgbmFtZSBhbmQgdmFsdWUuDQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAg ICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ ICsgIEBwYXJhbVtpbl0gU3RhcnRPZmZzZXQgICAgIFRoZSBvZmZzZXQgdG8gdGhlIHN0YXJ0aW5n IG5vZGUgdG8gZmluZC4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBAcGFyYW1baW5dIFBy b3BlcnR5TmFtZSAgICBUaGUgcHJvcGVydHkgbmFtZSB0byBzZWFyY2ggdGhlIG5vZGUgaW5jbHVk aW5nIHRoZSBuYW1lZCBwcm9wZXJ0eS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBAcGFy YW1baW5dIFByb3BlcnR5VmFsdWUgICBUaGUgcHJvcGVydHkgdmFsdWUgdG8gY2hlY2sgdGhlIHNh bWUgcHJvcGVydHkgdmFsdWUuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHBhcmFtW2lu XSBQcm9wZXJ0eUxlbmd0aCAgVGhlIGxlbmd0aCBvZiB0aGUgdmFsdWUgaW4gUHJvcGVydFZhbHVl Lg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiAr ICBAcmV0dXJuIFRoZSBvZmZzZXQgdG8gbm9kZSBvZmZzZXQgd2l0aCBnaXZlbiBwcm9wZXJ0eS4N Cj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyoq Lw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICtJTlQzMg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ ID4+ICtFRklBUEkNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArRmR0Tm9kZU9mZnNldEJ5UHJv cFZhbHVlICgNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBJTiBDT05TVCBWT0lEICAgKkZk dCwNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBJTiBJTlQzMiAgICAgICAgU3RhcnRPZmZz ZXQsDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgSU4gQ09OU1QgQ0hBUjggICpQcm9wZXJ0 eU5hbWUsDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgSU4gQ09OU1QgVk9JRCAgICpQcm9w ZXJ0eVZhbHVlLA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIElOIElOVDMyICAgICAgICBQ cm9wZXJ0eUxlbmd0aA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICk7DQo+ID4gPiA+PiA+ Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsvKioNCj4gPiA+ID4+ ID4+DQo+ID4gPiA+PiA+PiArICBSZXR1cm5zIGEgcHJvcGVydHkgd2l0aCB0aGUgZ2l2ZW4gbmFt ZSBmcm9tIHRoZSBnaXZlbiBub2RlLg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ ID4+ID4+DQo+ID4gPiA+PiA+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2lu dGVyIHRvIEZEVCBibG9iLg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0g Tm9kZU9mZnNldCAgICAgVGhlIG9mZnNldCB0byB0aGUgZ2l2ZW4gbm9kZS4NCj4gPiA+ID4+ID4+ DQo+ID4gPiA+PiA+PiArICBAcGFyYW1baW5dIE5hbWUgICAgICAgICAgIFRoZSBuYW1lIHRvIHRo ZSBwcm9wZXJ0eSB3aGljaCBuZWVkIGJlIHNlYXJjaGVkDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4g Pj4gKyAgQHBhcmFtW2luXSBMZW5ndGggICAgICAgICBUaGUgbGVuZ3RoIHRvIHRoZSBzaXplIG9m IHRoZSBwcm9wZXJ0eSBmb3VuZC4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+ PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHJldHVybiBUaGUgcHJvcGVydHkgdG8gdGhlIHN0cnVjdHVy ZSBvZiB0aGUgZm91bmQgcHJvcGVydHkuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsqKi8NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArQ09O U1QgRkRUX1BST1BFUlRZICoNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArRUZJQVBJDQo+ID4g PiA+PiA+Pg0KPiA+ID4gPj4gPj4gK0ZkdEdldFByb3BlcnR5ICgNCj4gPiA+ID4+ID4+DQo+ID4g PiA+PiA+PiArICBJTiBDT05TVCBWT0lEICAgKkZkdCwNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ PiArICBJTiBJTlQzMiAgICAgICAgTm9kZU9mZnNldCwNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ PiArICBJTiBDT05TVCBDSEFSOCAgKk5hbWUsDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAg SU4gSU5UMzIgICAgICAgICpMZW5ndGgNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICApOw0K PiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArLyoq DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgUmV0dXJucyBhIG9mZnNldCBvZiBmaXJzdCBw cm9wZXJ0eSBpbiB0aGUgZ2l2ZW4gbm9kZS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICBUaGUg cG9pbnRlciB0byBGRFQgYmxvYi4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBAcGFyYW1b aW5dIE9mZnNldCAgICAgICAgIFRoZSBvZmZzZXQgdG8gdGhlIG5vZGUgd2hpY2ggbmVlZCBiZSBz ZWFyY2hlZC4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gKyAgQHJldHVybiBUaGUgb2Zmc2V0IHRvIGZpcnN0IHByb3BlcnR5IG9mZnNldCBpbiB0 aGUgZ2l2ZW4gbm9kZS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0K PiA+ID4gPj4gPj4gKyoqLw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICtJTlQzMg0KPiA+ID4g Pj4gPj4NCj4gPiA+ID4+ID4+ICtFRklBUEkNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArRmR0 Rmlyc3RQcm9wZXJ0eU9mZnNldCAoDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgSU4gQ09O U1QgVk9JRCAgKkZkdCwNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBJTiBJTlQzMiAgICAg ICBOb2RlT2Zmc2V0DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgKTsNCj4gPiA+ID4+ID4+ DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKy8qKg0KPiA+ID4gPj4g Pj4NCj4gPiA+ID4+ID4+ICsgIFJldHVybnMgYSBvZmZzZXQgb2YgbmV4dCBwcm9wZXJ0eSBmcm9t IHRoZSBnaXZlbiBwcm9wZXJ0eS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+ PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICBUaGUgcG9pbnRl ciB0byBGRFQgYmxvYi4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBAcGFyYW1baW5dIE9m ZnNldCAgICAgICAgIFRoZSBvZmZzZXQgdG8gcHJldmlvdXMgcHJvcGVydHkuDQo+ID4gPiA+PiA+ Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEByZXR1cm4gVGhl IG9mZnNldCB0byBuZXh0IHByb3BlcnR5IG9mZnNldC4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyoqLw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ ID4+ICtJTlQzMg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICtFRklBUEkNCj4gPiA+ID4+ID4+ DQo+ID4gPiA+PiA+PiArRmR0TmV4dFByb3BlcnR5T2Zmc2V0ICgNCj4gPiA+ID4+ID4+DQo+ID4g PiA+PiA+PiArICBJTiBDT05TVCBWT0lEICAqRmR0LA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ ICsgIElOIElOVDMyICAgICAgIE9mZnNldA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICk7 DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsv KioNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBSZXR1cm5zIGEgcHJvcGVydHkgZnJvbSB0 aGUgZ2l2ZW4gb2Zmc2V0IG9mIHRoZSBwcm9wZXJ0eS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAg ICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBA cGFyYW1baW5dIE9mZnNldCAgICAgICAgIFRoZSBvZmZzZXQgdG8gdGhlIGdpdmVuIG9mZnNldCBv ZiB0aGUgcHJvcGVydHkuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBM ZW5ndGggICAgICAgICBUaGUgbGVuZ3RoIHRvIHRoZSBzaXplIG9mIHRoZSBwcm9wZXJ0eSBmb3Vu ZC4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4g KyAgQHJldHVybiBUaGUgcHJvcGVydHkgdG8gdGhlIHN0cnVjdHVyZSBvZiB0aGUgZ2l2ZW4gcHJv cGVydHkgb2Zmc2V0Lg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ ID4gPiA+PiA+PiArKiovDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK0NPTlNUIEZEVF9QUk9Q RVJUWSAqDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK0VGSUFQSQ0KPiA+ID4gPj4gPj4NCj4g PiA+ID4+ID4+ICtGZHRHZXRQcm9wZXJ0eUJ5T2Zmc2V0ICgNCj4gPiA+ID4+ID4+DQo+ID4gPiA+ PiA+PiArICBJTiBDT05TVCBWT0lEICAqRmR0LA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsg IElOIElOVDMyICAgICAgIE9mZnNldCwNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBJTiBJ TlQzMiAgICAgICAqTGVuZ3RoDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgKTsNCj4gPiA+ ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKy8qKg0KPiA+ ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIFJldHVybnMgYSBzdHJpbmcgYnkgdGhlIGdpdmVuIHN0 cmluZyBvZmZzZXQuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4g PiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRkRU IGJsb2IuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBTdHJPZmZzZXQg ICAgICBUaGUgb2Zmc2V0IHRvIHRoZSBsb2NhdGlvbiBpbiB0aGUgc3RyaW5ncyBibG9jayBvZiBG RFQuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBMZW5ndGggICAgICAg ICBUaGUgbGVuZ3RoIHRvIHRoZSBzaXplIG9mIHN0cmluZyB3aGljaCBuZWVkIGJlIHJldHJpZXZl ZC4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4g KyAgQHJldHVybiBUaGUgc3RyaW5nIHRvIHRoZSBnaXZlbiBzdHJpbmcgb2Zmc2V0Lg0KPiA+ID4g Pj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArKiovDQo+ID4g PiA+PiA+Pg0KPiA+ID4gPj4gPj4gK0NPTlNUIENIQVI4ICoNCj4gPiA+ID4+ID4+DQo+ID4gPiA+ PiA+PiArRUZJQVBJDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK0ZkdEdldFN0cmluZyAoDQo+ ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgSU4gQ09OU1QgVk9JRCAgKkZkdCwNCj4gPiA+ID4+ ID4+DQo+ID4gPiA+PiA+PiArICBJTiBJTlQzMiAgICAgICBTdHJPZmZzZXQsDQo+ID4gPiA+PiA+ Pg0KPiA+ID4gPj4gPj4gKyAgSU4gSU5UMzIgICAgICAgKkxlbmd0aCAgICAgICAgT1BUSU9OQUwN Cj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICApOw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArLyoqDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4g Pj4gKyAgQWRkIGEgbmV3IG5vZGUgdG8gdGhlIEZEVC4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAg ICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBA cGFyYW1baW5dIFBhcmVudE9mZnNldCAgIFRoZSBvZmZzZXQgdG8gdGhlIG5vZGUgb2Zmc2V0IHdo aWNoIHdhbnQgdG8gYWRkIGluLg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEBwYXJhbVtp bl0gTmFtZSAgICAgICAgICAgVGhlIG5hbWUgdG8gbmFtZSB0aGUgbm9kZS4NCj4gPiA+ID4+ID4+ DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHJldHVybiAgVGhl IG9mZnNldCB0byB0aGUgbmV3IG5vZGUuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsqKi8NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArSU5U MzINCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArRUZJQVBJDQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gK0ZkdEFkZFN1Ym5vZGUgKA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIElOIFZP SUQgICAgICAgICAqRmR0LA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIElOIElOVDMyICAg ICAgICBQYXJlbnRPZmZzZXQsDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgSU4gQ09OU1Qg Q0hBUjggICpOYW1lDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgKTsNCj4gPiA+ID4+ID4+ DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKy8qKg0KPiA+ID4gPj4g Pj4NCj4gPiA+ID4+ID4+ICsgIEFkZCBvciBtb2RpZnkgYSBwcm9wZXJ0eSBpbiB0aGUgZ2l2ZW4g bm9kZS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4g Pj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4N Cj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBAcGFyYW1baW5dIE5vZGVPZmZzZXQgICAgIFRo ZSBvZmZzZXQgdG8gdGhlIG5vZGUgb2Zmc2V0IHdoaWNoIHdhbnQgdG8gYWRkIGluLg0KPiA+ID4g Pj4gPj4NCj4gPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gTmFtZSAgICAgICAgICAgVGhlIG5hbWUg dG8gbmFtZSB0aGUgcHJvcGVydHkuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHBhcmFt W2luXSBWYWx1ZSAgICAgICAgICBUaGUgdmFsdWUgdG8gdGhlIHByb3BlcnR5IHZhbHVlLg0KPiA+ ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gTGVuZ3RoICAgICAgICAgVGhlIGxl bmd0aCB0byB0aGUgc2l6ZSBvZiB0aGUgcHJvcGVydHkuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4g Pj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEByZXR1cm4gIFplcm8gZm9yIHN1Y2Nl c3NmdWxseSwgb3RoZXJ3aXNlIGZhaWxlZC4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyoqLw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICtJ TlQzMg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICtFRklBUEkNCj4gPiA+ID4+ID4+DQo+ID4g PiA+PiA+PiArRmR0U2V0UHJvcCAoDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgSU4gVk9J RCAgICAgICAgICpGZHQsDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgSU4gSU5UMzIgICAg ICAgIE5vZGVPZmZzZXQsDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgSU4gQ09OU1QgQ0hB UjggICpOYW1lLA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIElOIENPTlNUIFZPSUQgICAq VmFsdWUsDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgSU4gVUlOVDMyICAgICAgIExlbmd0 aA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICk7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4g Pj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsjZW5kaWYgLyogRkRUX0xJQl9IXyAqLw0K PiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNl RmR0TGliL0Jhc2VGZHRMaWIuaW5mDQo+ID4gPiA+PiA+PiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VG ZHRMaWIvQmFzZUZkdExpYi5pbmYNCj4gPiA+ID4+ID4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ ID4gPiA+PiA+PiBpbmRleCAwMDAwMDAwMDAwLi43MzBlNTY4ZmY2DQo+ID4gPiA+PiA+PiAtLS0g L2Rldi9udWxsDQo+ID4gPiA+PiA+PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0Jh c2VGZHRMaWIuaW5mDQo+ID4gPiA+PiA+PiBAQCAtMCwwICsxLDYyIEBADQo+ID4gPiA+PiA+PiAr IyMgQGZpbGUNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArIyBGbGF0dGVuZWQgRGV2aWNlIFRy ZWUgTGlicmFyeS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArIw0KPiA+ID4gPj4gPj4NCj4g PiA+ID4+ID4+ICsjIENvcHlyaWdodCAoYykgMjAyMywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsjDQo+ID4gPiA+ PiA+Pg0KPiA+ID4gPj4gPj4gKyMgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1 c2UtUGF0ZW50DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyMNCj4gPiA+ID4+ID4+DQo+ID4g PiA+PiA+PiArIw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsjIw0KPiA+ID4gPj4gPj4NCj4g PiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArW0RlZmluZXNdDQo+ID4gPiA+ PiA+Pg0KPiA+ID4gPj4gPj4gKyAgSU5GX1ZFUlNJT04gICAgICAgICAgICAgICAgICAgID0gMHgw MDAxMDAxQg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEJBU0VfTkFNRSAgICAgICAgICAg ICAgICAgICAgICA9IEJhc2VGZHRMaWINCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBNT0RV TEVfVU5JX0ZJTEUgICAgICAgICAgICAgICAgPSBCYXNlRmR0TGliLnVuaQ0KPiA+ID4gPj4gPj4N Cj4gPiA+ID4+ID4+ICsgIEZJTEVfR1VJRCAgICAgICAgICAgICAgICAgICAgICA9IEM2NERDQjAx LUIwMzctNEZGNi05Q0YzLUU4Q0VDMjA2REUwNA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsg IE1PRFVMRV9UWVBFICAgICAgICAgICAgICAgICAgICA9IEJBU0UNCj4gPiA+ID4+ID4+DQo+ID4g PiA+PiA+PiArICBWRVJTSU9OX1NUUklORyAgICAgICAgICAgICAgICAgPSAxLjANCj4gPiA+ID4+ ID4+DQo+ID4gPiA+PiA+PiArICBMSUJSQVJZX0NMQVNTICAgICAgICAgICAgICAgICAgPSBGZHRM aWINCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4g KyAgREVGSU5FIEZEVF9MSUJfUEFUSCAgICAgICAgICAgID0gbGliZmR0L2xpYmZkdA0KPiA+ID4g Pj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArIw0KPiA+ID4g Pj4gPj4NCj4gPiA+ID4+ID4+ICsjICBWQUxJRF9BUkNISVRFQ1RVUkVTICAgICAgICAgICA9IElB MzIgWDY0DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyMNCj4gPiA+ID4+ID4+DQo+ID4gPiA+ PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK1tTb3VyY2VzXQ0KPiA+ID4gPj4gPj4N Cj4gPiA+ID4+ID4+ICsgIEZkdExpYi5jDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgTGli RmR0V3JhcHBlci5jDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgIyBoZWFkZXIgV3JhcHBl ciBmaWxlcw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIGxpbWl0cy5oDQo+ID4gPiA+PiA+ Pg0KPiA+ID4gPj4gPj4gKyAgc3RkYm9vbC5oDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAg c3RkZGVmLmgNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBzdGRpbnQuaA0KPiA+ID4gPj4g Pj4NCj4gPiA+ID4+ID4+ICsgIHN0ZGxpYi5oDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAg c3RyaW5nLmgNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gKyAgJChGRFRfTElCX1BBVEgpL2ZkdC5jDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4g KyAgJChGRFRfTElCX1BBVEgpL2ZkdC5oDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgJChG RFRfTElCX1BBVEgpL2ZkdF9hZGRyZXNzZXMuYw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsg ICQoRkRUX0xJQl9QQVRIKS9mZHRfY2hlY2suYw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsg ICQoRkRUX0xJQl9QQVRIKS9mZHRfZW1wdHlfdHJlZS5jDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4g Pj4gKyAgJChGRFRfTElCX1BBVEgpL2ZkdF9vdmVybGF5LmMNCj4gPiA+ID4+ID4+DQo+ID4gPiA+ PiA+PiArICAkKEZEVF9MSUJfUEFUSCkvZmR0X3JvLmMNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ PiArICAkKEZEVF9MSUJfUEFUSCkvZmR0X3J3LmMNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiAr ICAkKEZEVF9MSUJfUEFUSCkvZmR0X3N0cmVycm9yLmMNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ PiArICAkKEZEVF9MSUJfUEFUSCkvZmR0X3N3LmMNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiAr ICAkKEZEVF9MSUJfUEFUSCkvZmR0X3dpcC5jDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAg JChGRFRfTElCX1BBVEgpL2xpYmZkdC5oDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgJChG RFRfTElCX1BBVEgpL2xpYmZkdF9lbnYuaA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICQo RkRUX0xJQl9QQVRIKS9saWJmZHRfaW50ZXJuYWwuaA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArW1BhY2thZ2VzXQ0KPiA+ID4gPj4gPj4NCj4g PiA+ID4+ID4+ICsgIE1kZVBrZy9NZGVQa2cuZGVjDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4g Kw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICtbTGlicmFyeUNsYXNzZXNdDQo+ID4gPiA+PiA+ Pg0KPiA+ID4gPj4gPj4gKyAgQmFzZUxpYg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEJh c2VNZW1vcnlMaWINCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ ID4gPj4gPj4gK1tCdWlsZE9wdGlvbnNdDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgTVNG VDoqXypfSUEzMl9DQ19GTEFHUyA9IC93ZDQxNDYgL3dkNDI0NQ0KPiA+ID4gPj4gPj4NCj4gPiA+ ID4+ID4+ICsgIE1TRlQ6Kl8qX1g2NF9DQ19GTEFHUyAgPSAvd2Q0MTQ2IC93ZDQyNDQgL3dkNDI0 NSAvd2Q0MjY3DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ ID4+ID4+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0Jhc2VGZHRMaWIu dW5pDQo+ID4gPiA+PiA+PiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvQmFzZUZkdExpYi51 bmkNCj4gPiA+ID4+ID4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gPiA+PiA+PiBpbmRleCAw MDAwMDAwMDAwLi4zZjdlNDVlYTZmDQo+ID4gPiA+PiA+PiAtLS0gL2Rldi9udWxsDQo+ID4gPiA+ PiA+PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0Jhc2VGZHRMaWIudW5pDQo+ID4g PiA+PiA+PiBAQCAtMCwwICsxLDE0IEBADQo+ID4gPiA+PiA+PiArLy8gLyoqIEBmaWxlDQo+ID4g PiA+PiA+Pg0KPiA+ID4gPj4gPj4gKy8vIEZsYXR0ZW5lZCBEZXZpY2UgVHJlZSBMaWJyYXJ5Lg0K PiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsvLw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsv LyBDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2Vy dmVkLjxCUj4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArLy8NCj4gPiA+ID4+ID4+DQo+ID4g PiA+PiA+PiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQN Cj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArLy8NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiAr Ly8gKiovDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArI3N0cmluZyBTVFJfTU9EVUxFX0FCU1RS QUNUICAgICAgICAgICAgICNsYW5ndWFnZSBlbi1VUyAiSW5zdGFuY2Ugb2YgRkRUIExpYnJhcnki DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsj c3RyaW5nIFNUUl9NT0RVTEVfREVTQ1JJUFRJT04gICAgICAgICAgI2xhbmd1YWdlIGVuLVVTICJU aGlzIG1vZHVsZSBwcm92aWRlcyBGRFQgTGlicmFyeSBpbXBsZW1lbnRhdGlvbi4iDQo+ID4gPiA+ PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+IGRpZmYgLS1naXQg YS9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0ZkdExpYi5jDQo+ID4gPiA+PiA+PiBiL01kZVBr Zy9MaWJyYXJ5L0Jhc2VGZHRMaWIvRmR0TGliLmMNCj4gPiA+ID4+ID4+IG5ldyBmaWxlIG1vZGUg MTAwNjQ0DQo+ID4gPiA+PiA+PiBpbmRleCAwMDAwMDAwMDAwLi4yMDBhNDk2YzdlDQo+ID4gPiA+ PiA+PiAtLS0gL2Rldi9udWxsDQo+ID4gPiA+PiA+PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNl RmR0TGliL0ZkdExpYi5jDQo+ID4gPiA+PiA+PiBAQCAtMCwwICsxLDMwMSBAQA0KPiA+ID4gPj4g Pj4gKy8qKiBAZmlsZQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEZsYXR0ZW5lZCBEZXZp Y2UgVHJlZSBMaWJyYXJ5Lg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+ DQo+ID4gPiA+PiA+PiArICBDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4gPj4gPj4NCj4g PiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArKiovDQo+ID4gPiA+PiA+Pg0K PiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsjaW5jbHVkZSA8bGliZmR0 L2xpYmZkdC9saWJmZHQuaD4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+ Pg0KPiA+ID4gPj4gPj4gKy8qKg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIFZlcmlmeSB0 aGUgaGVhZGVyIG9mIHRoZSBGbGF0dGVuZWQgRGV2aWNlIFRyZWUNCj4gPiA+ID4+ID4+DQo+ID4g PiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBGZHQgICAg ICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHJldHVybiBaZXJvIGZvciBzdWNjZXNz ZnVsbHksIG90aGVyd2lzZSBmYWlsZWQuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsqKi8NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArSU5U MzINCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArRUZJQVBJDQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gK0ZkdENoZWNrSGVhZGVyICgNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBJTiBD T05TVCBWT0lEICAqRmR0DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgKQ0KPiA+ID4gPj4g Pj4NCj4gPiA+ID4+ID4+ICt7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgcmV0dXJuIGZk dF9jaGVja19oZWFkZXIoRmR0KTsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArfQ0KPiA+ID4g Pj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArLyoqDQo+ID4g PiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQ3JlYXRlIGEgZW1wdHkgRmxhdHRlbmVkIERldmljZSBU cmVlLg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ PiArICBAcGFyYW1baW5dIEJ1ZmZlciAgICAgICAgIFRoZSBwb2ludGVyIHRvIGFsbG9jYXRlIGEg cG9vbCBmb3IgRkRUIGJsb2IuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHBhcmFtW2lu XSBCdWZmZXJTaXplICAgICBUaGUgQnVmZmVyU2l6ZSB0byB0aGUgcG9vbCBzaXplLg0KPiA+ID4g Pj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBAcmV0dXJu IFplcm8gZm9yIHN1Y2Nlc3NmdWxseSwgb3RoZXJ3aXNlIGZhaWxlZC4NCj4gPiA+ID4+ID4+DQo+ ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyoqLw0KPiA+ID4gPj4gPj4N Cj4gPiA+ID4+ID4+ICtJTlQzMg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICtFRklBUEkNCj4g PiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArRmR0Q3JlYXRlRW1wdHlUcmVlICgNCj4gPiA+ID4+ID4+ DQo+ID4gPiA+PiA+PiArICBJTiBWT0lEICAgICpCdWZmZXIsDQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gKyAgSU4gVUlOVDMyICBCdWZmZXJTaXplDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4g KyAgKQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICt7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4g Pj4gKyAgcmV0dXJuIGZkdF9jcmVhdGVfZW1wdHlfdHJlZSAoQnVmZmVyLCAoaW50KUJ1ZmZlclNp emUpOw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICt9DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4g Pj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsvKioNCj4gPiA+ID4+ID4+DQo+ID4gPiA+ PiA+PiArICBSZXR1cm5zIGEgb2Zmc2V0IG9mIG5leHQgbm9kZSBmcm9tIHRoZSBnaXZlbiBub2Rl Lg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiAr ICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+ ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gT2Zmc2V0ICAgICAgICAgVGhlIG9m ZnNldCB0byBwcmV2aW91cyBub2RlLg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEBwYXJh bVtpbl0gRGVwdGggICAgICAgICAgVGhlIGRlcHRoIHRvIHRoZSBsZXZlbCBvZiB0cmVlIGhpZXJh cmNoeS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4g Pj4gKyAgQHJldHVybiBUaGUgb2Zmc2V0IHRvIG5leHQgbm9kZSBvZmZzZXQuDQo+ID4gPiA+PiA+ Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsqKi8NCj4gPiA+ID4+ ID4+DQo+ID4gPiA+PiA+PiArSU5UMzINCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArRUZJQVBJ DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK0ZkdE5leHROb2RlICgNCj4gPiA+ID4+ID4+DQo+ ID4gPiA+PiA+PiArICBJTiBDT05TVCBWT0lEICAqRmR0LA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ ID4+ICsgIElOIElOVDMyICAgICAgIE9mZnNldCwNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiAr ICBJTiBJTlQzMiAgICAgICAqRGVwdGgNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICApDQo+ ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK3sNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBy ZXR1cm4gZmR0X25leHRfbm9kZSAoRmR0LCBPZmZzZXQsIERlcHRoKTsNCj4gPiA+ID4+ID4+DQo+ ID4gPiA+PiA+PiArfQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ ID4gPiA+PiA+PiArLyoqDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgUmV0dXJucyBhIG9m ZnNldCBvZiBmaXJzdCBub2RlIHVuZGVyIHRoZSBnaXZlbiBub2RlLg0KPiA+ID4gPj4gPj4NCj4g PiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBAcGFyYW1baW5dIEZkdCAg ICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ ID4+ICsgIEBwYXJhbVtpbl0gT2Zmc2V0ICAgICAgICAgVGhlIG9mZnNldCB0byBwcmV2aW91cyBu b2RlLg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ PiArICBAcmV0dXJuIFRoZSBvZmZzZXQgdG8gbmV4dCBub2RlIG9mZnNldC4NCj4gPiA+ID4+ID4+ DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyoqLw0KPiA+ID4gPj4g Pj4NCj4gPiA+ID4+ID4+ICtJTlQzMg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICtFRklBUEkN Cj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArRmR0Rmlyc3RTdWJub2RlICgNCj4gPiA+ID4+ID4+ DQo+ID4gPiA+PiA+PiArICBJTiBDT05TVCBWT0lEICAqRmR0LA0KPiA+ID4gPj4gPj4NCj4gPiA+ ID4+ID4+ICsgIElOIElOVDMyICAgICAgIE9mZnNldA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ ICsgICkNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArew0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ ID4+ICsgIHJldHVybiBmZHRfZmlyc3Rfc3Vibm9kZSAoRmR0LCBPZmZzZXQpOw0KPiA+ID4gPj4g Pj4NCj4gPiA+ID4+ID4+ICt9DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4g Pj4NCj4gPiA+ID4+ID4+ICsvKioNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBSZXR1cm5z IGEgb2Zmc2V0IG9mIG5leHQgbm9kZSBmcm9tIHRoZSBnaXZlbiBub2RlLg0KPiA+ID4gPj4gPj4N Cj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBAcGFyYW1baW5dIEZk dCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+ID4gPj4gPj4NCj4gPiA+ ID4+ID4+ICsgIEBwYXJhbVtpbl0gT2Zmc2V0ICAgICAgICAgVGhlIG9mZnNldCB0byBwcmV2aW91 cyBub2RlLg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+ PiA+PiArICBAcmV0dXJuIFRoZSBvZmZzZXQgdG8gbmV4dCBub2RlIG9mZnNldC4NCj4gPiA+ID4+ ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyoqLw0KPiA+ID4g Pj4gPj4NCj4gPiA+ID4+ID4+ICtJTlQzMg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICtFRklB UEkNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArRmR0TmV4dFN1Ym5vZGUgKA0KPiA+ID4gPj4g Pj4NCj4gPiA+ID4+ID4+ICsgIElOIENPTlNUIFZPSUQgICpGZHQsDQo+ID4gPiA+PiA+Pg0KPiA+ ID4gPj4gPj4gKyAgSU4gSU5UMzIgICAgICAgT2Zmc2V0DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4g Pj4gKyAgKQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICt7DQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gKyAgcmV0dXJuIGZkdF9uZXh0X3N1Ym5vZGUgKEZkdCwgT2Zmc2V0KTsNCj4gPiA+ID4+ ID4+DQo+ID4gPiA+PiA+PiArfQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ ID4+DQo+ID4gPiA+PiA+PiArLyoqDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgUmV0dXJu cyBhIG9mZnNldCBvZiBmaXJzdCBub2RlIHdoaWNoIGluY2x1ZGVzIHRoZSBnaXZlbiBuYW1lLg0K PiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBA cGFyYW1baW5dIEZkdCAgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4gPiA+ ID4+ID4+DQo+ID4gPiA+PiA+PiArICBAcGFyYW1baW5dIFBhcmVudE9mZnNldCAgICBUaGUgb2Zm c2V0IHRvIHRoZSBub2RlIHdoaWNoIHN0YXJ0IGZpbmQgdW5kZXIuDQo+ID4gPiA+PiA+Pg0KPiA+ ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBOYW1lICAgICAgICAgICAgVGhlIG5hbWUgdG8gc2VhcmNo IHRoZSBub2RlIHdpdGggdGhlIG5hbWUuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHBh cmFtW2luXSBOYW1lTGVuZ3RoICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgbmFtZSB0byBjaGVjayBv bmx5Lg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ PiArICBAcmV0dXJuIFRoZSBvZmZzZXQgdG8gbm9kZSBvZmZzZXQgd2l0aCBnaXZlbiBub2RlIG5h bWUuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ ICsqKi8NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArSU5UMzINCj4gPiA+ID4+ID4+DQo+ID4g PiA+PiA+PiArRUZJQVBJDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK0ZkdFN1Ym5vZGVPZmZz ZXROYW1lTGVuICgNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBJTiBDT05TVCBWT0lEICAg KkZkdCwNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBJTiBJTlQzMiAgICAgICAgUGFyZW50 T2Zmc2V0LA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIElOIENPTlNUIENIQVI4ICAqTmFt ZSwNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBJTiBJTlQzMiAgICAgICAgTmFtZUxlbmd0 aA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICkNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ PiArew0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIHJldHVybiBmZHRfc3Vibm9kZV9vZmZz ZXRfbmFtZWxlbiAoRmR0LCBQYXJlbnRPZmZzZXQsIE5hbWUsDQo+ID4gPiA+PiA+PiArIE5hbWVM ZW5ndGgpOw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICt9DQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsvKioNCj4gPiA+ID4+ID4+DQo+ID4g PiA+PiA+PiArICBSZXR1cm5zIGEgb2Zmc2V0IG9mIGZpcnN0IG5vZGUgd2hpY2ggaW5jbHVkZXMg dGhlIGdpdmVuIHByb3BlcnR5IG5hbWUgYW5kIHZhbHVlLg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAg ICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiAr ICBAcGFyYW1baW5dIFN0YXJ0T2Zmc2V0ICAgICBUaGUgb2Zmc2V0IHRvIHRoZSBzdGFydGluZyBu b2RlIHRvIGZpbmQuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBQcm9w ZXJ0eU5hbWUgICAgVGhlIHByb3BlcnR5IG5hbWUgdG8gc2VhcmNoIHRoZSBub2RlIGluY2x1ZGlu ZyB0aGUgbmFtZWQgcHJvcGVydHkuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHBhcmFt W2luXSBQcm9wZXJ0eVZhbHVlICAgVGhlIHByb3BlcnR5IHZhbHVlIHRvIGNoZWNrIHRoZSBzYW1l IHByb3BlcnR5IHZhbHVlLg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0g UHJvcGVydHlMZW5ndGggIFRoZSBsZW5ndGggb2YgdGhlIHZhbHVlIGluIFByb3BlcnRWYWx1ZS4N Cj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAg QHJldHVybiBUaGUgb2Zmc2V0IHRvIG5vZGUgb2Zmc2V0IHdpdGggZ2l2ZW4gcHJvcGVydHkuDQo+ ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsqKi8N Cj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArSU5UMzINCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ PiArRUZJQVBJDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK0ZkdE5vZGVPZmZzZXRCeVByb3BW YWx1ZSAoDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgSU4gQ09OU1QgVk9JRCAgICpGZHQs DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgSU4gSU5UMzIgICAgICAgIFN0YXJ0T2Zmc2V0 LA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIElOIENPTlNUIENIQVI4ICAqUHJvcGVydHlO YW1lLA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIElOIENPTlNUIFZPSUQgICAqUHJvcGVy dHlWYWx1ZSwNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBJTiBJTlQzMiAgICAgICAgUHJv cGVydHlMZW5ndGgNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICApDQo+ID4gPiA+PiA+Pg0K PiA+ID4gPj4gPj4gK3sNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICByZXR1cm4gZmR0X25v ZGVfb2Zmc2V0X2J5X3Byb3BfdmFsdWUgKEZkdCwgU3RhcnRPZmZzZXQsDQo+ID4gPiA+PiA+PiAr IFByb3BlcnR5TmFtZSwgUHJvcGVydHlWYWx1ZSwgUHJvcGVydHlMZW5ndGgpOw0KPiA+ID4gPj4g Pj4NCj4gPiA+ID4+ID4+ICt9DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4g Pj4NCj4gPiA+ID4+ID4+ICsvKioNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBSZXR1cm5z IGEgcHJvcGVydHkgd2l0aCB0aGUgZ2l2ZW4gbmFtZSBmcm9tIHRoZSBnaXZlbiBub2RlLg0KPiA+ ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBAcGFy YW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+ID4gPj4g Pj4NCj4gPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gTm9kZU9mZnNldCAgICAgVGhlIG9mZnNldCB0 byB0aGUgZ2l2ZW4gbm9kZS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBAcGFyYW1baW5d IE5hbWUgICAgICAgICAgIFRoZSBuYW1lIHRvIHRoZSBwcm9wZXJ0eSB3aGljaCBuZWVkIGJlIHNl YXJjaGVkDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBMZW5ndGggICAg ICAgICBUaGUgbGVuZ3RoIHRvIHRoZSBzaXplIG9mIHRoZSBwcm9wZXJ0eSBmb3VuZC4NCj4gPiA+ ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHJldHVy biBUaGUgcHJvcGVydHkgdG8gdGhlIHN0cnVjdHVyZSBvZiB0aGUgZm91bmQgcHJvcGVydHkuDQo+ ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsqKi8N Cj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArQ09OU1Qgc3RydWN0IGZkdF9wcm9wZXJ0eSAqDQo+ ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK0VGSUFQSQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ ICtGZHRHZXRQcm9wZXJ0eSAoDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgSU4gQ09OU1Qg Vk9JRCAgICpGZHQsDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgSU4gSU5UMzIgICAgICAg IE5vZGVPZmZzZXQsDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgSU4gQ09OU1QgQ0hBUjgg ICpOYW1lLA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIElOIElOVDMyICAgICAgICAqTGVu Z3RoDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgKQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ ID4+ICt7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgcmV0dXJuIGZkdF9nZXRfcHJvcGVy dHkgKEZkdCwgTm9kZU9mZnNldCwgTmFtZSwgTGVuZ3RoKTsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+ PiA+PiArfQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+ PiA+PiArLyoqDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgUmV0dXJucyBhIG9mZnNldCBv ZiBmaXJzdCBwcm9wZXJ0eSBpbiB0aGUgZ2l2ZW4gbm9kZS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+ PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAg ICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiAr ICBAcGFyYW1baW5dIE5vZGVPZmZzZXQgICAgIFRoZSBvZmZzZXQgdG8gdGhlIG5vZGUgd2hpY2gg bmVlZCBiZSBzZWFyY2hlZC4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+ Pg0KPiA+ID4gPj4gPj4gKyAgQHJldHVybiBUaGUgb2Zmc2V0IHRvIGZpcnN0IHByb3BlcnR5IG9m ZnNldCBpbiB0aGUgZ2l2ZW4gbm9kZS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4g PiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyoqLw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICtJTlQz Mg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICtFRklBUEkNCj4gPiA+ID4+ID4+DQo+ID4gPiA+ PiA+PiArRmR0Rmlyc3RQcm9wZXJ0eU9mZnNldCAoDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4g KyAgSU4gQ09OU1QgVk9JRCAgKkZkdCwNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBJTiBJ TlQzMiAgICAgICBOb2RlT2Zmc2V0DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgKQ0KPiA+ ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICt7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgcmV0 dXJuIGZkdF9maXJzdF9wcm9wZXJ0eV9vZmZzZXQgKEZkdCwgTm9kZU9mZnNldCk7DQo+ID4gPiA+ PiA+Pg0KPiA+ID4gPj4gPj4gK30NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+ PiA+Pg0KPiA+ID4gPj4gPj4gKy8qKg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIFJldHVy bnMgYSBvZmZzZXQgb2YgbmV4dCBwcm9wZXJ0eSBmcm9tIHRoZSBnaXZlbiBwcm9wZXJ0eS4NCj4g PiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHBh cmFtW2luXSBGZHQgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4gPiA+ID4+ ID4+DQo+ID4gPiA+PiA+PiArICBAcGFyYW1baW5dIE9mZnNldCAgICAgICAgIFRoZSBvZmZzZXQg dG8gcHJldmlvdXMgcHJvcGVydHkuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4g Pj4gPj4NCj4gPiA+ID4+ID4+ICsgIEByZXR1cm4gVGhlIG9mZnNldCB0byBuZXh0IHByb3BlcnR5 IG9mZnNldC4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gKyoqLw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICtJTlQzMg0KPiA+ID4gPj4gPj4N Cj4gPiA+ID4+ID4+ICtFRklBUEkNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArRmR0TmV4dFBy b3BlcnR5T2Zmc2V0ICgNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBJTiBDT05TVCBWT0lE ICAqRmR0LA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIElOIElOVDMyICAgICAgIE9mZnNl dA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICkNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ PiArew0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIHJldHVybiBmZHRfbmV4dF9wcm9wZXJ0 eV9vZmZzZXQgKEZkdCwgT2Zmc2V0KTsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArfQ0KPiA+ ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArLyoqDQo+ ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgUmV0dXJucyBhIHByb3BlcnR5IGZyb20gdGhlIGdp dmVuIG9mZnNldCBvZiB0aGUgcHJvcGVydHkuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0K PiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAgICAgVGhl IHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHBhcmFt W2luXSBPZmZzZXQgICAgICAgICBUaGUgb2Zmc2V0IHRvIHRoZSBnaXZlbiBvZmZzZXQgb2YgdGhl IHByb3BlcnR5Lg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gTGVuZ3Ro ICAgICAgICAgVGhlIGxlbmd0aCB0byB0aGUgc2l6ZSBvZiB0aGUgcHJvcGVydHkgZm91bmQuDQo+ ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEBy ZXR1cm4gVGhlIHByb3BlcnR5IHRvIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGdpdmVuIHByb3BlcnR5 IG9mZnNldC4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gKyoqLw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICtDT05TVCBzdHJ1Y3QgZmR0X3By b3BlcnR5ICoNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArRUZJQVBJDQo+ID4gPiA+PiA+Pg0K PiA+ID4gPj4gPj4gK0ZkdEdldFByb3BlcnR5QnlPZmZzZXQgKA0KPiA+ID4gPj4gPj4NCj4gPiA+ ID4+ID4+ICsgIElOIENPTlNUIFZPSUQgICpGZHQsDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4g KyAgSU4gSU5UMzIgICAgICAgT2Zmc2V0LA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIElO IElOVDMyICAgICAgICpMZW5ndGgNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICApDQo+ID4g PiA+PiA+Pg0KPiA+ID4gPj4gPj4gK3sNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICByZXR1 cm4gZmR0X2dldF9wcm9wZXJ0eV9ieV9vZmZzZXQgKEZkdCwgT2Zmc2V0LCBMZW5ndGgpOw0KPiA+ ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICt9DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsvKioNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBS ZXR1cm5zIGEgc3RyaW5nIGJ5IHRoZSBnaXZlbiBzdHJpbmcgb2Zmc2V0Lg0KPiA+ID4gPj4gPj4N Cj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBAcGFyYW1baW5dIEZk dCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+ID4gPj4gPj4NCj4gPiA+ ID4+ID4+ICsgIEBwYXJhbVtpbl0gU3RyT2Zmc2V0ICAgICAgVGhlIG9mZnNldCB0byB0aGUgbG9j YXRpb24gaW4gdGhlIHN0cmluZ3MgYmxvY2sgb2YgRkRULg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ ID4+ICsgIEBwYXJhbVtpbl0gTGVuZ3RoICAgICAgICAgVGhlIGxlbmd0aCB0byB0aGUgc2l6ZSBv ZiBzdHJpbmcgd2hpY2ggbmVlZCBiZSByZXRyaWV2ZWQuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4g Pj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEByZXR1cm4gVGhlIHN0cmluZyB0byB0 aGUgZ2l2ZW4gc3RyaW5nIG9mZnNldC4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4g PiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyoqLw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICtDT05T VCBDSEFSOCAqDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK0VGSUFQSQ0KPiA+ID4gPj4gPj4N Cj4gPiA+ID4+ID4+ICtGZHRHZXRTdHJpbmcgKA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsg IElOIENPTlNUIFZPSUQgICpGZHQsDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgSU4gSU5U MzIgICAgICAgU3RyT2Zmc2V0LA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIElOIElOVDMy ICAgICAgICpMZW5ndGggICAgICAgIE9QVElPTkFMDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4g KyAgKQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICt7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4g Pj4gKyAgcmV0dXJuIGZkdF9nZXRfc3RyaW5nIChGZHQsIFN0ck9mZnNldCwgTGVuZ3RoKTsNCj4g PiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArfQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4g PiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArLyoqDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAg QWRkIGEgbmV3IG5vZGUgdG8gdGhlIEZEVC4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICBUaGUg cG9pbnRlciB0byBGRFQgYmxvYi4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBAcGFyYW1b aW5dIFBhcmVudE9mZnNldCAgIFRoZSBvZmZzZXQgdG8gdGhlIG5vZGUgb2Zmc2V0IHdoaWNoIHdh bnQgdG8gYWRkIGluLg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gTmFt ZSAgICAgICAgICAgVGhlIG5hbWUgdG8gbmFtZSB0aGUgbm9kZS4NCj4gPiA+ID4+ID4+DQo+ID4g PiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHJldHVybiAgVGhlIG9mZnNl dCB0byB0aGUgbmV3IG5vZGUuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4g Pj4NCj4gPiA+ID4+ID4+ICsqKi8NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArSU5UMzINCj4g PiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArRUZJQVBJDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4g K0ZkdEFkZFN1Ym5vZGUgKA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIElOIFZPSUQgICAg ICAgICAqRmR0LA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIElOIElOVDMyICAgICAgICBQ YXJlbnRPZmZzZXQsDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgSU4gQ09OU1QgQ0hBUjgg ICpOYW1lDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgKQ0KPiA+ID4gPj4gPj4NCj4gPiA+ ID4+ID4+ICt7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgcmV0dXJuIGZkdF9hZGRfc3Vi bm9kZSAoRmR0LCBQYXJlbnRPZmZzZXQsIE5hbWUpOw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ ICt9DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ ICsvKioNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBBZGQgb3IgbW9kaWZ5IGEgcHJvcGVy dHkgaW4gdGhlIGdpdmVuIG5vZGUuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4g Pj4gPj4NCj4gPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAgICAgVGhlIHBvaW50 ZXIgdG8gRkRUIGJsb2IuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBO b2RlT2Zmc2V0ICAgICBUaGUgb2Zmc2V0IHRvIHRoZSBub2RlIG9mZnNldCB3aGljaCB3YW50IHRv IGFkZCBpbi4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBAcGFyYW1baW5dIE5hbWUgICAg ICAgICAgIFRoZSBuYW1lIHRvIG5hbWUgdGhlIHByb3BlcnR5Lg0KPiA+ID4gPj4gPj4NCj4gPiA+ ID4+ID4+ICsgIEBwYXJhbVtpbl0gVmFsdWUgICAgICAgICAgVGhlIHZhbHVlIHRvIHRoZSBwcm9w ZXJ0eSB2YWx1ZS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBAcGFyYW1baW5dIExlbmd0 aCAgICAgICAgIFRoZSBsZW5ndGggdG8gdGhlIHNpemUgb2YgdGhlIHByb3BlcnR5Lg0KPiA+ID4g Pj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBAcmV0dXJu ICBaZXJvIGZvciBzdWNjZXNzZnVsbHksIG90aGVyd2lzZSBmYWlsZWQuDQo+ID4gPiA+PiA+Pg0K PiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsqKi8NCj4gPiA+ID4+ID4+ DQo+ID4gPiA+PiA+PiArSU5UMzINCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArRUZJQVBJDQo+ ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK0ZkdFNldFByb3AgKA0KPiA+ID4gPj4gPj4NCj4gPiA+ ID4+ID4+ICsgIElOIFZPSUQgICAgICAgICAqRmR0LA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ ICsgIElOIElOVDMyICAgICAgICBOb2RlT2Zmc2V0LA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ ICsgIElOIENPTlNUIENIQVI4ICAqTmFtZSwNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBJ TiBDT05TVCBWT0lEICAgKlZhbHVlLA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIElOIFVJ TlQzMiAgICAgICBMZW5ndGgNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICApDQo+ID4gPiA+ PiA+Pg0KPiA+ID4gPj4gPj4gK3sNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICByZXR1cm4g ZmR0X3NldHByb3AgKEZkdCwgTm9kZU9mZnNldCwgTmFtZSwgVmFsdWUsIChpbnQpTGVuZ3RoKTsN Cj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArfQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+IGRp ZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0xpYkZkdFN1cHBvcnQuaA0KPiA+ ID4gPj4gPj4gYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0xpYkZkdFN1cHBvcnQuaA0KPiA+ ID4gPj4gPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+ID4+ID4+IGluZGV4IDAwMDAwMDAw MDAuLmU3MzhmNGRlZDQNCj4gPiA+ID4+ID4+IC0tLSAvZGV2L251bGwNCj4gPiA+ID4+ID4+ICsr KyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvTGliRmR0U3VwcG9ydC5oDQo+ID4gPiA+PiA+ PiBAQCAtMCwwICsxLDk5IEBADQo+ID4gPiA+PiA+PiArLyoqIEBmaWxlDQo+ID4gPiA+PiA+Pg0K PiA+ID4gPj4gPj4gKyAgUm9vdCBpbmNsdWRlIGZpbGUgb2YgQyBydW50aW1lIGxpYnJhcnkgdG8g c3VwcG9ydCBidWlsZGluZyB0aGUNCj4gPiA+ID4+ID4+ICsgdGhpcmQtcGFydHkNCj4gPiA+ID4+ ID4+DQo+ID4gPiA+PiA+PiArICBsaWJmZHQgbGlicmFyeS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+ PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQ29weXJpZ2h0IChjKSAyMDIzLCBJ bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gPiA+PiA+Pg0K PiA+ID4gPj4gPj4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRl bnQNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4g KyoqLw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ PiArI2lmbmRlZiBGRFRfTElCX1NVUFBPUlRfSF8NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiAr I2RlZmluZSBGRFRfTElCX1NVUFBPUlRfSF8NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyNpbmNsdWRlIDxCYXNlLmg+DQo+ID4gPiA+PiA+Pg0K PiA+ID4gPj4gPj4gKyNpbmNsdWRlIDxMaWJyYXJ5L0Jhc2VMaWIuaD4NCj4gPiA+ID4+ID4+DQo+ ID4gPiA+PiA+PiArI2luY2x1ZGUgPExpYnJhcnkvQmFzZU1lbW9yeUxpYi5oPg0KPiA+ID4gPj4g Pj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArdHlwZWRlZiBVSU5U OCAgICB1aW50OF90Ow0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICt0eXBlZGVmIFVJTlQxNiAg IHVpbnQxNl90Ow0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICt0eXBlZGVmIElOVDMyICAgIGlu dDMyX3Q7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK3R5cGVkZWYgVUlOVDMyICAgdWludDMy X3Q7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK3R5cGVkZWYgVUlOVDY0ICAgdWludDY0X3Q7 DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK3R5cGVkZWYgVUlOVE4gICAgdWludHB0cl90Ow0K PiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICt0eXBlZGVmIFVJTlROICAgIHNpemVfdDsNCj4gPiA+ ID4+ID4+DQo+ID4gPiA+PiA+PiArdHlwZWRlZiBCT09MRUFOICBib29sOw0KPiA+ID4gPj4gPj4N Cj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArI2RlZmluZSB0cnVlICAg KDEgPT0gMSkNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArI2RlZmluZSBmYWxzZSAgKDEgPT0g MCkNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4g Ky8vDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKy8vIERlZmluaXRpb25zIGZvciBnbG9iYWwg Y29uc3RhbnRzIHVzZWQgYnkgbGliZmR0IGxpYnJhcnkNCj4gPiA+ID4+ID4+ICtyb3V0aW5lcw0K PiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsvLw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsj ZGVmaW5lIElOVF9NQVggICAgICAgICAgMHg3RkZGRkZGRiAgICAgIC8qIE1heGltdW0gKHNpZ25l ZCkgaW50IHZhbHVlICovDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyNkZWZpbmUgSU5UMzJf TUFYICAgICAgICAweDdGRkZGRkZGICAgICAgLyogTWF4aW11bSAoc2lnbmVkKSBpbnQzMiB2YWx1 ZSAqLw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsjZGVmaW5lIFVJTlQzMl9NQVggICAgICAg MHhGRkZGRkZGRiAgICAgIC8qIE1heGltdW0gdW5zaWduZWQgaW50MzIgdmFsdWUgKi8NCj4gPiA+ ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKy8vDQo+ID4g PiA+PiA+Pg0KPiA+ID4gPj4gPj4gKy8vIEZ1bmN0aW9uIHByb3RvdHlwZXMgb2YgbGliZmR0IExp YnJhcnkgcm91dGluZXMNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArLy8NCj4gPiA+ID4+ID4+ DQo+ID4gPiA+PiA+PiArdm9pZCAqDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK21lbXNldCAg ICAgKA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIHZvaWQgKiwNCj4gPiA+ID4+ID4+DQo+ ID4gPiA+PiA+PiArICBpbnQsDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgc2l6ZV90DQo+ ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgKTsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiAr DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK2ludA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ ICttZW1jbXAgICAgICAoDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgY29uc3Qgdm9pZCAq LA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIGNvbnN0IHZvaWQgKiwNCj4gPiA+ID4+ID4+ DQo+ID4gPiA+PiA+PiArICBzaXplX3QNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICApOw0K PiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiAraW50 DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK3N0cmNtcCAgICAgICgNCj4gPiA+ID4+ID4+DQo+ ID4gPiA+PiA+PiArICBjb25zdCBjaGFyICosDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAg Y29uc3QgY2hhciAqDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgKTsNCj4gPiA+ID4+ID4+ DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK2NoYXIgKg0KPiA+ID4g Pj4gPj4NCj4gPiA+ID4+ID4+ICtzdHJjaHIgICAgICgNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ PiArICBjb25zdCBjaGFyICosDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgaW50DQo+ID4g PiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgKTsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK2NoYXIgKg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ ICtzdHJyY2hyICAgICgNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBjb25zdCBjaGFyICos DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgaW50DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4g Pj4gKyAgKTsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gK3Vuc2lnbmVkIGxvbmcNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArc3RydG91bCAg ICAgKA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIGNvbnN0IGNoYXIgKiwNCj4gPiA+ID4+ ID4+DQo+ID4gPiA+PiA+PiArICBjaGFyICoqLA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsg IGludA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICk7DQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICtjaGFyICoNCj4gPiA+ID4+ID4+DQo+ ID4gPiA+PiA+PiArc3RyY3B5ICgNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBjaGFyICAg ICAgICAqc3RyRGVzdCwNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBjb25zdCBjaGFyICAq c3RyU291cmNlDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgKTsNCj4gPiA+ID4+ID4+DQo+ ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKy8vDQo+ID4gPiA+PiA+Pg0K PiA+ID4gPj4gPj4gKy8vIE1hY3JvcyB0aGF0IGRpcmVjdGx5IG1hcCBmdW5jdGlvbnMgdG8gQmFz ZUxpYiwgQmFzZU1lbW9yeUxpYiwNCj4gPiA+ID4+ID4+ICthbmQgRGVidWdMaWIgZnVuY3Rpb25z DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKy8vDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4g KyNkZWZpbmUgbWVtY3B5KGRlc3QsIHNvdXJjZSwgY291bnQpICAgICAgICAgQ29weU1lbShkZXN0 LHNvdXJjZSwgKFVJTlROKShjb3VudCkpDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyNkZWZp bmUgbWVtc2V0KGRlc3QsIGNoLCBjb3VudCkgICAgICAgICAgICAgU2V0TWVtKGRlc3QsIChVSU5U TikoY291bnQpLChVSU5UOCkoY2gpKQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsjZGVmaW5l IG1lbWNocihidWYsIGNoLCBjb3VudCkgICAgICAgICAgICAgIFNjYW5NZW04KGJ1ZiwgKFVJTlRO KShjb3VudCksKFVJTlQ4KWNoKQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsjZGVmaW5lIG1l bWNtcChidWYxLCBidWYyLCBjb3VudCkgICAgICAgICAgIChpbnQpKENvbXBhcmVNZW0oYnVmMSwg YnVmMiwgKFVJTlROKShjb3VudCkpKQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsjZGVmaW5l IG1lbW1vdmUoZGVzdCwgc291cmNlLCBjb3VudCkgICAgICAgIENvcHlNZW0oZGVzdCwgc291cmNl LCAoVUlOVE4pKGNvdW50KSkNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArI2RlZmluZSBzdHJs ZW4oc3RyKSAgICAgICAgICAgICAgICAgICAgICAgICAoc2l6ZV90KShBc2NpaVN0ckxlbihzdHIp KQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsjZGVmaW5lIHN0cm5sZW4oc3RyLCBjb3VudCkg ICAgICAgICAgICAgICAgIChzaXplX3QpKEFzY2lpU3RybkxlblMoc3RyLCBjb3VudCkpDQo+ID4g PiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyNkZWZpbmUgc3RybmNweShzdHJEZXN0LCBzdHJTb3VyY2Us IGNvdW50KSAgQXNjaWlTdHJuQ3B5UyhzdHJEZXN0LA0KPiA+ID4gPj4gPj4gK01BWF9TVFJJTkdf U0laRSwgc3RyU291cmNlLCAoVUlOVE4pY291bnQpDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4g KyNkZWZpbmUgc3RyY2F0KHN0ckRlc3QsIHN0clNvdXJjZSkgICAgICAgICAgQXNjaWlTdHJDYXRT KHN0ckRlc3QsIE1BWF9TVFJJTkdfU0laRSwgc3RyU291cmNlKQ0KPiA+ID4gPj4gPj4NCj4gPiA+ ID4+ID4+ICsjZGVmaW5lIHN0cmNtcChzdHJpbmcxLCBzdHJpbmcyLCBjb3VudCkgICAgIChpbnQp KEFzY2lpU3RyQ21wKHN0cmluZzEsIHN0cmluZzIpKQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ ICsjZGVmaW5lIHN0cm5jbXAoc3RyaW5nMSwgc3RyaW5nMiwgY291bnQpICAgIChpbnQpKEFzY2lp U3RybkNtcChzdHJpbmcxLCBzdHJpbmcyLCAoVUlOVE4pKGNvdW50KSkpDQo+ID4gPiA+PiA+Pg0K PiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsjZW5kaWYgLyogRkRUX0xJ Ql9TVVBQT1JUX0hfICovDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gZGlmZiAtLWdpdCBhL01k ZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvTGliRmR0V3JhcHBlci5jDQo+ID4gPiA+PiA+PiBiL01k ZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvTGliRmR0V3JhcHBlci5jDQo+ID4gPiA+PiA+PiBuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KPiA+ID4gPj4gPj4gaW5kZXggMDAwMDAwMDAwMC4uNzcyYmJhNDgz OQ0KPiA+ID4gPj4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+ID4gPj4gPj4gKysrIGIvTWRlUGtnL0xp YnJhcnkvQmFzZUZkdExpYi9MaWJGZHRXcmFwcGVyLmMNCj4gPiA+ID4+ID4+IEBAIC0wLDAgKzEs MTczIEBADQo+ID4gPiA+PiA+PiArLyoqIEBmaWxlDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4g KyAgSVNPIEMgaW1wbGVtZW50YXRpb25zIG9mIHN0cmNociwgc3RycmNociBhbmQgc3RydG91bC4N Cj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAg Q29weXJpZ2h0IChjKSAyMDIzLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgQ29weXJpZ2h0IChjKSAyMDIzIFBl ZHJvIEZhbGNhdG8gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ PiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4g Pj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArKiovDQo+ID4g PiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsjaW5jbHVk ZSA8QmFzZS5oPg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4g PiA+PiA+PiArI2RlZmluZSBVTE9OR19NQVggICAgICAgIDB4RkZGRkZGRkYgICAgICAvKiBNYXhp bXVtIHVuc2lnbmVkIGxvbmcgdmFsdWUgKi8NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKy8vIFZlcnkgcXVpY2sgbm90ZXM6DQo+ID4gPiA+PiA+ Pg0KPiA+ID4gPj4gPj4gKy8vIFdlIG9ubHkgZ28gdGhyb3VnaCB0aGUgc3RyaW5nIG9uY2UgZm9y IGJvdGggZnVuY3Rpb25zDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKy8vIFRoZXkgYXJlIG1p bmltYWwgaW1wbGVtZW50YXRpb25zIChub3Qgc3BlZWQgb3B0aW1pemVkKSBvZiBJU08gQw0KPiA+ ID4gPj4gPj4gK3NlbWFudGljcw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsvLyBzdHJjaHIg YW5kIHN0cnJjaHIgYWxzbyBpbmNsdWRlIHRoZSBudWxsIHRlcm1pbmF0b3IgYXMgcGFydCBvZg0K PiA+ID4gPj4gPj4gK3RoZSBzdHJpbmcNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArLy8gc28g dGhlIGNvZGUgZ2V0cyBhIGJpdCBjbHVua3kgdG8gaGFuZGxlIHRoYXQgY2FzZSBzcGVjaWZpY2Fs bHkuDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ ICtjaGFyICoNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArc3RyY2hyICgNCj4gPiA+ID4+ID4+ DQo+ID4gPiA+PiA+PiArICBjb25zdCBjaGFyICAqU3RyLA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ ID4+ICsgIGludCAgICAgICAgIENoYXINCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICApDQo+ ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK3sNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBj aGFyICAqUzsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gKyAgUyA9IChjaGFyICopU3RyOw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4g PiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBmb3IgKCA7IDsgUysrKSB7DQo+ID4gPiA+PiA+Pg0K PiA+ID4gPj4gPj4gKyAgICBpZiAoKlMgPT0gQ2hhcikgew0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ ID4+ICsgICAgICByZXR1cm4gUzsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICAgIH0NCj4g PiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgICBp ZiAoKlMgPT0gJ1wwJykgew0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICAgICByZXR1cm4g TlVMTDsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICAgIH0NCj4gPiA+ID4+ID4+DQo+ID4g PiA+PiA+PiArICB9DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK30NCj4gPiA+ID4+ID4+DQo+ ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK2NoYXIgKg0KPiA+ID4gPj4g Pj4NCj4gPiA+ID4+ID4+ICtzdHJyY2hyICgNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBj b25zdCBjaGFyICAqU3RyLA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIGludCAgICAgICAg IENoYXINCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICApDQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gK3sNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBjaGFyICAqUywgKmxhc3Q7DQo+ ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIFMg ICAgPSAoY2hhciAqKVN0cjsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBsYXN0ID0gTlVM TDsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4g KyAgZm9yICggOyA7IFMrKykgew0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICAgaWYgKCpT ID09IENoYXIpIHsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICAgICAgbGFzdCA9IFM7DQo+ ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgICB9DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4g Kw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICAgaWYgKCpTID09ICdcMCcpIHsNCj4gPiA+ ID4+ID4+DQo+ID4gPiA+PiA+PiArICAgICAgcmV0dXJuIGxhc3Q7DQo+ID4gPiA+PiA+Pg0KPiA+ ID4gPj4gPj4gKyAgICB9DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgfQ0KPiA+ID4gPj4g Pj4NCj4gPiA+ID4+ID4+ICt9DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4g Pj4NCj4gPiA+ID4+ID4+ICtTVEFUSUMNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiAraW50DQo+ ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK19faXNzcGFjZSAoDQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gKyAgaW50ICBjaA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICkNCj4gPiA+ID4+ ID4+DQo+ID4gPiA+PiA+PiArew0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIC8vIGJhc2lj IEFTQ0lJIGN0eXBlLmg6aXNzcGFjZSgpLiBOb3QgZWZmaWNpZW50DQo+ID4gPiA+PiA+Pg0KPiA+ ID4gPj4gPj4gKyAgcmV0dXJuIGNoID09ICdccicgfHwgY2ggPT0gJ1xuJyB8fCBjaCA9PSAnICcg fHwgY2ggPT0gJ1x0JyB8fCBjaA0KPiA+ID4gPj4gPj4gKyA9PSAnXHYnIHx8IGNoID09ICdcZic7 DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK30NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiAr DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK3Vuc2lnbmVkIGxvbmcNCj4gPiA+ID4+ID4+DQo+ ID4gPiA+PiA+PiArc3RydG91bCAoDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgY29uc3Qg Y2hhciAgKk5wdHIsDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgY2hhciAgICAgICAgKipF bmRQdHIsDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgaW50ICAgICAgICAgQmFzZQ0KPiA+ ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICkNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArew0K PiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEJPT0xFQU4gICAgICAgIE5lZ2F0ZTsNCj4gPiA+ ID4+ID4+DQo+ID4gPiA+PiA+PiArICBCT09MRUFOICAgICAgICBPdmVyZmxvdzsNCj4gPiA+ID4+ ID4+DQo+ID4gPiA+PiA+PiArICB1bnNpZ25lZCBsb25nICBWYWw7DQo+ID4gPiA+PiA+Pg0KPiA+ ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIE5lZ2F0ZSAgID0gRkFMU0U7 DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgT3ZlcmZsb3cgPSBGQUxTRTsNCj4gPiA+ID4+ ID4+DQo+ID4gPiA+PiA+PiArICBWYWwgICAgICA9IDA7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4g Pj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIC8vIFJlamVjdCBiYWQgbnVtZXJpYyBi YXNlcw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIGlmICgoQmFzZSA8IDApIHx8IChCYXNl ID09IDEpIHx8IChCYXNlID4gMzYpKSB7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgICBy ZXR1cm4gMDsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICB9DQo+ID4gPiA+PiA+Pg0KPiA+ ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIC8vIFNraXAgd2hpdGVzcGFj ZQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIHdoaWxlIChfX2lzc3BhY2UgKCpOcHRyKSkg ew0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICAgTnB0cisrOw0KPiA+ID4gPj4gPj4NCj4g PiA+ID4+ID4+ICsgIH0NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0K PiA+ID4gPj4gPj4gKyAgLy8gQ2hlY2sgZm9yICsgb3IgLSBwcmVmaXhlcw0KPiA+ID4gPj4gPj4N Cj4gPiA+ID4+ID4+ICsgIGlmICgqTnB0ciA9PSAnLScpIHsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+ PiA+PiArICAgIE5lZ2F0ZSA9IFRSVUU7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgICBO cHRyKys7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgfSBlbHNlIGlmICgqTnB0ciA9PSAn KycpIHsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICAgIE5wdHIrKzsNCj4gPiA+ID4+ID4+ DQo+ID4gPiA+PiA+PiArICB9DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4g Pj4NCj4gPiA+ID4+ID4+ICsgIC8vIENvbnN1bWUgdGhlIHN0YXJ0LCBhdXRvZGV0ZWN0aW5nIGJh c2UgaWYgbmVlZGVkDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgaWYgKChOcHRyWzBdID09 ICcwJykgJiYgKChOcHRyWzFdID09ICd4JykgfHwgKE5wdHJbMV0gPT0gJ1gnKSkNCj4gPiA+ID4+ ID4+ICsgJiYgKChCYXNlID09IDApIHx8IChCYXNlID09IDE2KSkpIHsNCj4gPiA+ID4+ID4+DQo+ ID4gPiA+PiA+PiArICAgIC8vIEhleA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICAgTnB0 ciArPSAyOw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICAgQmFzZSAgPSAxNjsNCj4gPiA+ ID4+ID4+DQo+ID4gPiA+PiA+PiArICB9IGVsc2UgaWYgKChOcHRyWzBdID09ICcwJykgJiYgKChO cHRyWzFdID09ICdiJykgfHwgKE5wdHJbMV0gPT0NCj4gPiA+ID4+ID4+ICsgJ0InKSkgJiYgKChC YXNlID09IDApIHx8IChCYXNlID09IDIpKSkgew0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsg ICAgLy8gQmluYXJ5IChzdGFuZGFyZCBwZW5kaW5nIEMyMykNCj4gPiA+ID4+ID4+DQo+ID4gPiA+ PiA+PiArICAgIE5wdHIgKz0gMjsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICAgIEJhc2Ug ID0gMjsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICB9IGVsc2UgaWYgKChOcHRyWzBdID09 ICcwJykgJiYgKChCYXNlID09IDApIHx8IChCYXNlID09IDgpKSkgew0KPiA+ID4gPj4gPj4NCj4g PiA+ID4+ID4+ICsgICAgLy8gT2N0YWwNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICAgIE5w dHIrKzsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICAgIEJhc2UgPSA4Ow0KPiA+ID4gPj4g Pj4NCj4gPiA+ID4+ID4+ICsgIH0gZWxzZSB7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAg ICBpZiAoQmFzZSA9PSAwKSB7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgICAgIC8vIEFz c3VtZSBkZWNpbWFsDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgICAgIEJhc2UgPSAxMDsN Cj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICAgIH0NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ PiArICB9DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ ID4+ICsgIHdoaWxlIChUUlVFKSB7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgICBpbnQg ICAgICAgICAgICBEaWdpdDsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICAgIGNoYXIgICAg ICAgICAgIEM7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgICB1bnNpZ25lZCBsb25nICBO ZXdWYWw7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ ID4+ICsgICAgQyAgICAgPSAqTnB0cjsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICAgIERp Z2l0ID0gLTE7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ ID4+ID4+ICsgICAgaWYgKChDID49ICcwJykgJiYgKEMgPD0gJzknKSkgew0KPiA+ID4gPj4gPj4N Cj4gPiA+ID4+ID4+ICsgICAgICBEaWdpdCA9IEMgLSAnMCc7DQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gKyAgICB9IGVsc2UgaWYgKChDID49ICdhJykgJiYgKEMgPD0gJ3onKSkgew0KPiA+ID4g Pj4gPj4NCj4gPiA+ID4+ID4+ICsgICAgICBEaWdpdCA9IEMgLSAnYScgKyAxMDsNCj4gPiA+ID4+ ID4+DQo+ID4gPiA+PiA+PiArICAgIH0gZWxzZSBpZiAoKEMgPj0gJ0EnKSAmJiAoQyA8PSAnWicp KSB7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgICAgIERpZ2l0ID0gQyAtICdBJyArIDEw Ow0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICAgfQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICAgIGlmICgoRGlnaXQgPT0gLTEpIHx8 IChEaWdpdCA+PSBCYXNlKSkgew0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICAgICAvLyBO b3RlIHRoYXQgdGhpcyBjYXNlIGFsc28gaGFuZGxlcyB0aGUgXDANCj4gPiA+ID4+ID4+DQo+ID4g PiA+PiA+PiArICAgICAgaWYgKEVuZFB0cikgew0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsg ICAgICAgICpFbmRQdHIgPSAoY2hhciAqKU5wdHI7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4g KyAgICAgIH0NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gKyAgICAgIGJyZWFrOw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICAgfQ0KPiA+ ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICAgIE5l d1ZhbCA9IFZhbCAqIEJhc2UgKyBEaWdpdDsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgICBpZiAoTmV3VmFsIDwgVmFsKSB7DQo+ID4gPiA+ PiA+Pg0KPiA+ID4gPj4gPj4gKyAgICAgIC8vIE92ZXJmbG93DQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gKyAgICAgIE92ZXJmbG93ID0gVFJVRTsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiAr ICAgIH0NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4g Pj4gKyAgICBWYWwgPSBOZXdWYWw7DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4g Pj4gPj4NCj4gPiA+ID4+ID4+ICsgICAgTnB0cisrOw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ ICsgIH0NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4g Pj4gKyAgaWYgKE5lZ2F0ZSkgew0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICAgVmFsID0g LVZhbDsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICB9DQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIGlmIChPdmVyZmxvdykgew0KPiA+ ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICAgVmFsID0gVUxPTkdfTUFYOw0KPiA+ID4gPj4gPj4N Cj4gPiA+ID4+ID4+ICsgIH0NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+ Pg0KPiA+ID4gPj4gPj4gKyAgLy8gVE9ETzogV2UncmUgbGFja2luZyBlcnJubyBoZXJlLg0KPiA+ ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIHJldHVybiBWYWw7DQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gK30NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xp YnJhcnkvQmFzZUZkdExpYi9saW1pdHMuaA0KPiA+ID4gPj4gPj4gYi9NZGVQa2cvTGlicmFyeS9C YXNlRmR0TGliL2xpbWl0cy5oDQo+ID4gPiA+PiA+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+ ID4gPj4gPj4gaW5kZXggMDAwMDAwMDAwMC4uZjZjZjhkNTcwMg0KPiA+ID4gPj4gPj4gLS0tIC9k ZXYvbnVsbA0KPiA+ID4gPj4gPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9saW1p dHMuaA0KPiA+ID4gPj4gPj4gQEAgLTAsMCArMSwxMCBAQA0KPiA+ID4gPj4gPj4gKy8qKiBAZmls ZQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEluY2x1ZGUgZmlsZSB0byBzdXBwb3J0IGJ1 aWxkaW5nIHRoZSB0aGlyZC1wYXJ0eSBsaWJmZHQgbGlicmFyeS4NCj4gPiA+ID4+ID4+DQo+ID4g PiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK0NvcHlyaWdodCAoYykgMjAyMywg SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ID4gPj4gPj4N Cj4gPiA+ID4+ID4+ICtTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVu dA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiAr KiovDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ ICsjaW5jbHVkZSA8TGliRmR0U3VwcG9ydC5oPg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsN Cj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFz ZUZkdExpYi9zdGRib29sLmgNCj4gPiA+ID4+ID4+IGIvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExp Yi9zdGRib29sLmgNCj4gPiA+ID4+ID4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gPiA+PiA+ PiBpbmRleCAwMDAwMDAwMDAwLi5mNmNmOGQ1NzAyDQo+ID4gPiA+PiA+PiAtLS0gL2Rldi9udWxs DQo+ID4gPiA+PiA+PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0ZGJvb2wuaA0K PiA+ID4gPj4gPj4gQEAgLTAsMCArMSwxMCBAQA0KPiA+ID4gPj4gPj4gKy8qKiBAZmlsZQ0KPiA+ ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEluY2x1ZGUgZmlsZSB0byBzdXBwb3J0IGJ1aWxkaW5n IHRoZSB0aGlyZC1wYXJ0eSBsaWJmZHQgbGlicmFyeS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK0NvcHlyaWdodCAoYykgMjAyMywgSW50ZWwg Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ID4gPj4gPj4NCj4gPiA+ ID4+ID4+ICtTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArKiovDQo+ ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsjaW5j bHVkZSA8TGliRmR0U3VwcG9ydC5oPg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ ID4+ID4+DQo+ID4gPiA+PiA+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExp Yi9zdGRkZWYuaA0KPiA+ID4gPj4gPj4gYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0ZGRl Zi5oDQo+ID4gPiA+PiA+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+ID4gPj4gPj4gaW5kZXgg MDAwMDAwMDAwMC4uZjZjZjhkNTcwMg0KPiA+ID4gPj4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+ID4g Pj4gPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdGRkZWYuaA0KPiA+ID4gPj4g Pj4gQEAgLTAsMCArMSwxMCBAQA0KPiA+ID4gPj4gPj4gKy8qKiBAZmlsZQ0KPiA+ID4gPj4gPj4N Cj4gPiA+ID4+ID4+ICsgIEluY2x1ZGUgZmlsZSB0byBzdXBwb3J0IGJ1aWxkaW5nIHRoZSB0aGly ZC1wYXJ0eSBsaWJmZHQgbGlicmFyeS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4g PiA+PiA+Pg0KPiA+ID4gPj4gPj4gK0NvcHlyaWdodCAoYykgMjAyMywgSW50ZWwgQ29ycG9yYXRp b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICtT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4gPj4gPj4N Cj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArKiovDQo+ID4gPiA+PiA+ Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsjaW5jbHVkZSA8TGli RmR0U3VwcG9ydC5oPg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ ID4gPiA+PiA+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdGRpbnQu aA0KPiA+ID4gPj4gPj4gYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0ZGludC5oDQo+ID4g PiA+PiA+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+ID4gPj4gPj4gaW5kZXggMDAwMDAwMDAw MC4uZjZjZjhkNTcwMg0KPiA+ID4gPj4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+ID4gPj4gPj4gKysr IGIvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdGRpbnQuaA0KPiA+ID4gPj4gPj4gQEAgLTAs MCArMSwxMCBAQA0KPiA+ID4gPj4gPj4gKy8qKiBAZmlsZQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ ID4+ICsgIEluY2x1ZGUgZmlsZSB0byBzdXBwb3J0IGJ1aWxkaW5nIHRoZSB0aGlyZC1wYXJ0eSBs aWJmZHQgbGlicmFyeS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0K PiA+ID4gPj4gPj4gK0NvcHlyaWdodCAoYykgMjAyMywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICtTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArKiovDQo+ID4gPiA+PiA+Pg0KPiA+ID4g Pj4gPj4gKw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsjaW5jbHVkZSA8TGliRmR0U3VwcG9y dC5oPg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdGRsaWIuaA0KPiA+ID4g Pj4gPj4gYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0ZGxpYi5oDQo+ID4gPiA+PiA+PiBu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+ID4gPj4gPj4gaW5kZXggMDAwMDAwMDAwMC4uZjZjZjhk NTcwMg0KPiA+ID4gPj4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+ID4gPj4gPj4gKysrIGIvTWRlUGtn L0xpYnJhcnkvQmFzZUZkdExpYi9zdGRsaWIuaA0KPiA+ID4gPj4gPj4gQEAgLTAsMCArMSwxMCBA QA0KPiA+ID4gPj4gPj4gKy8qKiBAZmlsZQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIElu Y2x1ZGUgZmlsZSB0byBzdXBwb3J0IGJ1aWxkaW5nIHRoZSB0aGlyZC1wYXJ0eSBsaWJmZHQgbGli cmFyeS4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4g Pj4gK0NvcHlyaWdodCAoYykgMjAyMywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVz ZXJ2ZWQuPEJSPg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICtTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4g PiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArKiovDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0K PiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsjaW5jbHVkZSA8TGliRmR0U3VwcG9ydC5oPg0KPiA+ ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiBkaWZmIC0t Z2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdHJpbmcuaA0KPiA+ID4gPj4gPj4gYi9N ZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0cmluZy5oDQo+ID4gPiA+PiA+PiBuZXcgZmlsZSBt b2RlIDEwMDY0NA0KPiA+ID4gPj4gPj4gaW5kZXggMDAwMDAwMDAwMC4uZjZjZjhkNTcwMg0KPiA+ ID4gPj4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+ID4gPj4gPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkv QmFzZUZkdExpYi9zdHJpbmcuaA0KPiA+ID4gPj4gPj4gQEAgLTAsMCArMSwxMCBAQA0KPiA+ID4g Pj4gPj4gKy8qKiBAZmlsZQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgIEluY2x1ZGUgZmls ZSB0byBzdXBwb3J0IGJ1aWxkaW5nIHRoZSB0aGlyZC1wYXJ0eSBsaWJmZHQgbGlicmFyeS4NCj4g PiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gK0NvcHly aWdodCAoYykgMjAyMywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS Pg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICtTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNE LTItQ2xhdXNlLVBhdGVudA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+ DQo+ID4gPiA+PiA+PiArKiovDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4g Pj4NCj4gPiA+ID4+ID4+ICsjaW5jbHVkZSA8TGliRmR0U3VwcG9ydC5oPg0KPiA+ID4gPj4gPj4N Cj4gPiA+ID4+ID4+ICsNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiBkaWZmIC0tZ2l0IGEvTWRl UGtnL01kZVBrZy5jaS55YW1sIGIvTWRlUGtnL01kZVBrZy5jaS55YW1sIGluZGV4DQo+ID4gPiA+ PiA+PiA2YmE4NWViZTYxLi5mMDM5ZGFjY2RiIDEwMDY0NA0KPiA+ID4gPj4gPj4gLS0tIGEvTWRl UGtnL01kZVBrZy5jaS55YW1sDQo+ID4gPiA+PiA+PiArKysgYi9NZGVQa2cvTWRlUGtnLmNpLnlh bWwNCj4gPiA+ID4+ID4+IEBAIC0yLDcgKzIsNyBAQA0KPiA+ID4gPj4gPj4gICMgQ0kgY29uZmln dXJhdGlvbiBmb3IgTWRlUGtnDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gICMNCj4gPiA+ID4+ ID4+DQo+ID4gPiA+PiA+PiAgIyBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbg0K PiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+IC0jIENvcHlyaWdodCAoYykgMjAyMCwgSW50ZWwgQ29y cG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ ID4+ICsjIENvcHlyaWdodCAoYykgMjAyMywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMg cmVzZXJ2ZWQuPEJSPg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICAjIENvcHlyaWdodCAoYykg MjAyMSwgQXJtIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ID4gPj4gPj4N Cj4gPiA+ID4+ID4+ICAjIENvcHlyaWdodCAoYykgMjAyMywgTG9vbmdzb24gVGVjaG5vbG9neSBD b3Jwb3JhdGlvbiBMaW1pdGVkLiBBbGwNCj4gPiA+ID4+ID4+IHJpZ2h0cyByZXNlcnZlZC48QlI+ DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJT RC0yLUNsYXVzZS1QYXRlbnQNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiBAQCAtNjcsNyArNjcs OCBAQA0KPiA+ID4gPj4gPj4gICAgICAgICAgICAgICJJbmNsdWRlL0xpYnJhcnkvUGNkTGliLmgi LA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICAgICAgICAgICAgICAiSW5jbHVkZS9MaWJyYXJ5 L1NhZmVJbnRMaWIuaCIsDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gICAgICAgICAgICAgICJJ bmNsdWRlL1Byb3RvY29sL0RlYnVnU3VwcG9ydC5oIiwNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ PiAtICAgICAgICAgICAgIlRlc3QvVW5pdFRlc3QvTGlicmFyeS9CYXNlU2FmZUludExpYi9UZXN0 QmFzZVNhZmVJbnRMaWIuYyINCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArDQo+ID4gPiA+PiA+ PiArICJUZXN0L1VuaXRUZXN0L0xpYnJhcnkvQmFzZVNhZmVJbnRMaWIvVGVzdEJhc2VTYWZlSW50 TGliLmMiLA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICAgICAgICAgICAiTGlicmFyeS9C YXNlRmR0TGliIg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICAgICAgICAgIF0NCj4gPiA+ID4+ ID4+DQo+ID4gPiA+PiA+PiAgICAgIH0sDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gICAgICAj IyBvcHRpb25zIGRlZmluZWQgY2kvUGx1Z2luL0NvbXBpbGVyUGx1Z2luDQo+ID4gPiA+PiA+Pg0K PiA+ID4gPj4gPj4gQEAgLTE2NCw1ICsxNjUsMTcgQEANCj4gPiA+ID4+ID4+ICAgICAgICAgICJF eHRlbmRXb3JkcyI6IFtdLCAgICAgICAgICAgIyB3b3JkcyB0byBleHRlbmQgdG8gdGhlIGRpY3Rp b25hcnkgZm9yIHRoaXMgcGFja2FnZQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICAgICAgICAg ICJJZ25vcmVTdGFuZGFyZFBhdGhzIjogW10sICAgIyBTdGFuZGFyZCBQbHVnaW4gZGVmaW5lZCBw YXRocyB0aGF0IHNob3VsZCBiZSBpZ25vcmUNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiAgICAg ICAgICAiQWRkaXRpb25hbEluY2x1ZGVQYXRocyI6IFtdICMgQWRkaXRpb25hbCBwYXRocyB0byBz cGVsbA0KPiA+ID4gPj4gPj4gY2hlY2sgKHdpbGRjYXJkcyBzdXBwb3J0ZWQpDQo+ID4gPiA+PiA+ Pg0KPiA+ID4gPj4gPj4gKyAgICB9LA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICAgIyBv cHRpb25zIGRlZmluZWQgaW4gLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeUNoZWNrDQo+ID4gPiA+ PiA+Pg0KPiA+ID4gPj4gPj4gKyAgICAiVW5jcnVzdGlmeUNoZWNrIjogew0KPiA+ID4gPj4gPj4N Cj4gPiA+ID4+ID4+ICsgICAgICAgICJJZ25vcmVGaWxlcyI6IFsNCj4gPiA+ID4+ID4+DQo+ID4g PiA+PiA+PiArICAgICAgICAgICAgIkxpYnJhcnkvQmFzZUZkdExpYi9saWJmZHQiLA0KPiA+ID4g Pj4gPj4NCj4gPiA+ID4+ID4+ICsgICAgICAgICAgICAiTGlicmFyeS9CYXNlRmR0TGliL2xpbWl0 cy5oIiwNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICAgICAgICAgICAgIkxpYnJhcnkvQmFz ZUZkdExpYi9zdGRib29sLmgiLA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICAgICAgICAg ICAiTGlicmFyeS9CYXNlRmR0TGliL3N0ZGRlZi5oIiwNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ PiArICAgICAgICAgICAgIkxpYnJhcnkvQmFzZUZkdExpYi9zdGRpbnQuaCIsDQo+ID4gPiA+PiA+ Pg0KPiA+ID4gPj4gPj4gKyAgICAgICAgICAgICJMaWJyYXJ5L0Jhc2VGZHRMaWIvc3RkbGliLmgi LA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICAgICAgICAgICAiTGlicmFyeS9CYXNlRmR0 TGliL3N0cmluZy5oIg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICsgICAgICAgIF0NCj4gPiA+ ID4+ID4+DQo+ID4gPiA+PiA+PiAgICAgIH0NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiAgfQ0K PiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+IGRpZmYgLS1naXQgYS9NZGVQa2cvTWRlUGtnLmRlYyBi L01kZVBrZy9NZGVQa2cuZGVjIGluZGV4DQo+ID4gPiA+PiA+PiBlNzAxODJiZjdmLi45ODA0YTdh NmJkIDEwMDY0NA0KPiA+ID4gPj4gPj4gLS0tIGEvTWRlUGtnL01kZVBrZy5kZWMNCj4gPiA+ID4+ ID4+ICsrKyBiL01kZVBrZy9NZGVQa2cuZGVjDQo+ID4gPiA+PiA+PiBAQCAtMjg5LDYgKzI4OSwx MCBAQA0KPiA+ID4gPj4gPj4gICAgIw0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICAgIEFybVRy bmdMaWJ8SW5jbHVkZS9MaWJyYXJ5L0FybVRybmdMaWIuaA0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ ID4+DQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgIyMgIEBsaWJyYXJ5Y2xhc3MgIFByb3Zp ZGVzIEFQSXMgZm9yIHRoaXJkLXBhcnR5IGxpYnJhcnkgbGliZmR0Lg0KPiA+ID4gPj4gPj4NCj4g PiA+ID4+ID4+ICsgICMNCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+PiArICBGZHRMaWJ8SW5jbHVk ZS9MaWJyYXJ5L0ZkdExpYi5oDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKw0KPiA+ID4gPj4g Pj4NCj4gPiA+ID4+ID4+ICBbTGlicmFyeUNsYXNzZXMuSUEzMiwgTGlicmFyeUNsYXNzZXMuWDY0 LCBMaWJyYXJ5Q2xhc3Nlcy5BQVJDSDY0XQ0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICAgICMj ICBAbGlicmFyeWNsYXNzICBQcm92aWRlcyBzZXJ2aWNlcyB0byBnZW5lcmF0ZSByYW5kb20gbnVt YmVyLg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+ICAgICMNCj4gPiA+ID4+ID4+DQo+ID4gPiA+ PiA+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL01kZVBrZy5kc2MgYi9NZGVQa2cvTWRlUGtnLmRzYyBp bmRleA0KPiA+ID4gPj4gPj4gMTUyYzAyOTkxYS4uYjM4Yzg2MzgxMiAxMDA2NDQNCj4gPiA+ID4+ ID4+IC0tLSBhL01kZVBrZy9NZGVQa2cuZHNjDQo+ID4gPiA+PiA+PiArKysgYi9NZGVQa2cvTWRl UGtnLmRzYw0KPiA+ID4gPj4gPj4gQEAgLTEzNyw2ICsxMzcsNyBAQA0KPiA+ID4gPj4gPj4NCj4g PiA+ID4+ID4+IE1kZVBrZy9MaWJyYXJ5L1NtbUNwdVJlbmRlenZvdXNMaWJOdWxsL1NtbUNwdVJl bmRlenZvdXNMaWJOdWxsLmluZg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+PiA+ Pg0KPiA+ID4gPj4gPj4gICAgTWRlUGtnL0xpYnJhcnkvSmVkZWNKZXAxMDZMaWIvSmVkZWNKZXAx MDZMaWIuaW5mDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gKyAgTWRlUGtnL0xpYnJhcnkvQmFz ZUZkdExpYi9CYXNlRmR0TGliLmluZg0KPiA+ID4gPj4gPj4NCj4gPiA+ID4+ID4+DQo+ID4gPiA+ PiA+Pg0KPiA+ID4gPj4gPj4gIFtDb21wb25lbnRzLklBMzIsIENvbXBvbmVudHMuWDY0LCBDb21w b25lbnRzLkFSTSwNCj4gPiA+ID4+ID4+IENvbXBvbmVudHMuQUFSQ0g2NF0NCj4gPiA+ID4+ID4+ DQo+ID4gPiA+PiA+PiAgICAjDQo+ID4gPiA+PiA+Pg0KPiA+ID4gPj4gPj4gLS0NCj4gPiA+ID4+ ID4+IDIuMzkuMS53aW5kb3dzLjENCj4gPiA+ID4NCj4gPiA+ID4NCj4gPg0KPiA+DQo+ID4gDQo+ ID4NCj4gPg0K