From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 7CB45D8095A for ; Fri, 1 Dec 2023 03:06:09 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=kYskbYQyBW24AQQpIGIrY4ABtPgA8hZVXss3Jdl09as=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1701399968; v=1; b=cWMUdrQQ4wvEQvmr6dpkQyiKQHOjhW9Mb2aR3bQKWOc0X/Nk0jX0wuI9FprbdN+I0VkyKfuD isoYmo7WuDGcX3z7MwzCIK94iExk3c+5ibOMdS/KvO4O+anbzzfKWFPxaFztgWmLNhckK257kp4 LI4n1owO70756YIcxJwj+1TA= X-Received: by 127.0.0.2 with SMTP id UdMrYY7687511xIz3kid3qCN; Thu, 30 Nov 2023 19:06:08 -0800 X-Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web10.14554.1701399967130049198 for ; Thu, 30 Nov 2023 19:06:07 -0800 X-IronPort-AV: E=McAfee;i="6600,9927,10910"; a="479623950" X-IronPort-AV: E=Sophos;i="6.04,240,1695711600"; d="scan'208";a="479623950" X-Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Nov 2023 19:06:01 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10910"; a="887465198" X-IronPort-AV: E=Sophos;i="6.04,240,1695711600"; d="scan'208";a="887465198" X-Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga002.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 30 Nov 2023 19:06:01 -0800 X-Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Thu, 30 Nov 2023 19:06:00 -0800 X-Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Thu, 30 Nov 2023 19:06:00 -0800 X-Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34 via Frontend Transport; Thu, 30 Nov 2023 19:06:00 -0800 X-Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.41) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.34; Thu, 30 Nov 2023 19:06:00 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aPyckHjcPUEjr1T2oH+aNVLwv0vVgu/xZyjuR7pZqFhzryx2v4FfufPNkQ8mQsnUwj1CZgxvm6mtpqzdzMbj++YMtZkL5UYB1mN5O8cZ/UeUbAXIQq/i7clKIGQlVvedvYlNX9WIwumdsfQ0W8cOZ3r4wknzsJJZv+UD/+l/fpxCkAOeW3qqXbHbmbw6NjpItduOtfghrqJLQPg3sUW559k9IaOE/VDcQ930XL0HgS9ambQCC17jEP6pws8RBMTvR/2GiVYYQmgRB2QLQiBm2meY8D+aCUJnYgG2ZEOCM0yVit+oAv035UKW/0E7VkfliCowkpCrx2M50yv1ySiwrQ== 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=VMfDu/UW0h6328Bto9eUnpN3GcVmju7gY3DACBwu+Gc=; b=OOl7Sr0xDQGZv4ZyYG1RGEAiIgIa1vaOsrJBgpnhUrE1KmRBbMVs9TNN5ZumDH1+G4lLdSNe5huU4aT37HyTOpBMOyc3OpNuDdfDJgIZFdIQLkYO07NOOFaGYbcHWSuZ23ETlcyrM6oeKB1m2R+D91yf4kyRa54FzKp/jFGkxBu0FLE3Gi6WO03qB9A9lh8kWdXA2ri9MwYo6BULdOLjDf4O/xwJBb9rdPAqRaTrTf6XItXocQCA5UXadZGE61C/Nd+k8OPcllrjiN/DY9nOa2sYibiR+keDTaLVmafXoOUpQHx+ChGS5Q3ILSZRLlP9ZeWXLEOYJ8nCyGdCAxQ3mg== 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 X-Received: from MN6PR11MB8244.namprd11.prod.outlook.com (2603:10b6:208:470::14) by CY8PR11MB6817.namprd11.prod.outlook.com (2603:10b6:930:63::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.24; Fri, 1 Dec 2023 03:05:56 +0000 X-Received: from MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::b614:1f5e:8b0c:9858]) by MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::b614:1f5e:8b0c:9858%4]) with mapi id 15.20.7046.027; Fri, 1 Dec 2023 03:05:56 +0000 From: "Ni, Ray" To: "devel@edk2.groups.io" , "Gao, Liming" , "Wang, Fan" , "Kinney, Michael D" CC: "Jiang, Guomin" , "Bi, Dandan" Subject: Re: [edk2-devel] [PATCH V2 1/1] MdeModulePkg: Support customized FV Migration Information Thread-Topic: [edk2-devel] [PATCH V2 1/1] MdeModulePkg: Support customized FV Migration Information Thread-Index: AQHZ5LcrunWw7ws+n0qWZhxAaXff0LBNHfqAgBB2YICANoX5gIAAF5xQ Date: Fri, 1 Dec 2023 03:05:56 +0000 Message-ID: References: <76cde14616a559c6939f8814d0e79afa7f1a7fcf.1694425833.git.fan.wang@intel.com> <061c01da23f1$e1b27370$a5175a50$@byosoft.com.cn> In-Reply-To: <061c01da23f1$e1b27370$a5175a50$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN6PR11MB8244:EE_|CY8PR11MB6817:EE_ x-ms-office365-filtering-correlation-id: 71eeef62-feed-4b18-4eba-08dbf21a6fc1 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: iHdqEUAIoR+tdCVfMln+eDMb0bVLPVMrdztVhEEHxZLLFhvHharQkcBhQMyMfVLk6MT0U7O/U3Z9hjr7+4F8d/SL1jvk9HoImIetC3/ACFkvGiFDQmEfpWacn8rTPS6Vd04UIwdKp83Mo9l2Ub4CuIKKKrnJwSR5hGJrYpc11qRCZ9fxB/G1Kn3XaxxpR6h6y6uVst1hViREVjkpyH7zY8UjOHVH3Mz4/gakYxlMjLU2lvpQpMrJHkAbDLOryLmOsh4FRrMIL4JTS57hIZlCyxaVIfTdYqQlq3iufEfIzXrzuURShwyFiiCiKoABAtYQM2+l9E8o0FmIc/7i1iNq0hkCUmcz8YTcd23Y4By+tsdodr89h2TG/LpfSQi9N4Jy70ccfnwYwGnH+ir7Ld7IFF8NCwQFADtAIyiNiqvJATdB3bDu/g7saP6+lxiElr/D9OCuxZeVEJgP9ZJTnaDqsVQGo7GU1CM9TBVfcz+iU1FSRzTm05UZWBzPL8SqeQzdnN2OGnUhu24gEPr0w+dsnXnIMmGB9ySUz10rAonHJ9O6D/EBc5dwZxiyUWLqFxDY3YnD9bl7Nej6c0ncPFT/dB2wVXapxfeNfwhvwDL1glhNuGyRcpqWPhurAw3dmmGNugYs+QQwRwsj8GlNGbOCzA== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Qk9qbTZyc2Q0R0VJeEVNd2tLSTlHb2wyVElWTUl3Mm5iQTlmdFNZSEJPb3Bz?= =?utf-8?B?YlRobUpMRzBEM25uT2VyUjN2N05PQVJpc25DZ1UvVGVZK0k2aE1BL0NjWTNx?= =?utf-8?B?b1FvaFByeGtFMVFFODBETmxvZG1JSWllQ3g4aUJKS2ppUTBiY1JiTmpTMENy?= =?utf-8?B?RHlKQzdiOEZ3T2lKRFloLzB0ZG9pSWV6QUZaOGV3NEFxUldNb0lSZmg4TTlr?= =?utf-8?B?ZVN6YVhrZkpCdGdsWndTR2ZXVDZtb2s1cHM3TlNwRSsyRjNRS1JaNm9WZVc1?= =?utf-8?B?cG93RGhKZ01XT0hUU0RoRkovQ0grUDljM1BLK1lGS0dET2lCSDBEWTNUM1pn?= =?utf-8?B?VEovbTJpV29NSWU4dUVBRlJac3k2YnBiSlpMYzRBQkpZUVJ3SVBQdmR1UEw0?= =?utf-8?B?ejQyZTV1bEp1K01CNTBzVjZ5c3Y4cTYvZ0dUNVdJZ0h6V0pERmNSSiswMmJH?= =?utf-8?B?eWFDQXRFMElyN2lSL1Ayc1BlSit4QTVuYVJ0Y1dpc0IrQ2xWYXZXeGRYZWZL?= =?utf-8?B?Mll5YnJCYzR3NzRZMzZyVGhWdGlJa2pxQUx2RnoycncyUys5UE9ZTzBsR3Yz?= =?utf-8?B?czRxTW5ySlJhUS84SHBVREp3cGlHREdYZE9uNWo5N1NtZVdNOHl3QXFWYVM5?= =?utf-8?B?LzVOTkZzZ3dJWjNnS3lKeGw5TmIxOTM0UDU0b3JaY0pHN3hDdVd1VEZRLytG?= =?utf-8?B?RTNJZk9EZDRuRGxjSm9SRXZiVkF4UUhlRjhVN2ZZc0lUS2NIcElWMSt0em9w?= =?utf-8?B?aEdZMVR5QXRrVU4yZ0RGeHQ5a2JMUm9IeFJEbEdyMUF5a2ExbGtOZUwxUjhU?= =?utf-8?B?R3NIK3owbDF2enFldm03c1daSDRDRnZmSkp0VklQY2c0N1VrQ25rejRORzlG?= =?utf-8?B?dkx1VTBJcTlxc0kwM3A0MERFV21ZYUtmZU15K3RTNmowVjY5OVVpRGY2VFBa?= =?utf-8?B?Mi9OdTJ6YVBaM0VXTktYMkU3SzlyWGNuSC9IWWR5clMvNEtCWldQTkwwb3pV?= =?utf-8?B?S2NrN3ppWVFwemN1MFZVVmc4M3NVUEVMVUJrbHp5MDhqWUQyeVlBMWpVNEVD?= =?utf-8?B?eDhXTTdXL05kdG9yOWNjN3RtOHEyaFk1MkpnMlFsMWtxVHlTYkloY3NJd25y?= =?utf-8?B?UXRVem1GOVp3cXgzQ2ZFSDlEZllFa3M3aDJKbW5INnFFeFRON3ZNeTU4N0Z2?= =?utf-8?B?TllpRGZGSFFGOUZrZ3o2TFA3My9pVFp2a2lUQzF2ZUFUeWQrSDBRU3NrWEx1?= =?utf-8?B?TUFLZElvNkFJaUx3bUVyL0wxeU96QTNmQkdSc2hWR3ZaVkwzUERseWp1QXor?= =?utf-8?B?NXM4eE9qdDJ2eWdIUjVsYTJVZW10MmVlSEkycTE1blY2L3pJazZqOExnWG1G?= =?utf-8?B?ekNSa3ZSM3ErcHRxTGoxWS9oTUdTbW1JNEdCMXc4U3o3TWg4Z204eVRBMEti?= =?utf-8?B?K05uVzBGS1pHcXhYbDE4cjhlSU5aZFFYamR0OHVKKy8zUXg0S0dmbS83NDRk?= =?utf-8?B?YUhheTRGWEJOK1dZUFV0QU5SU3F4RENKRHFPVnlWOGs0V0g5UWVpdS9rNjBN?= =?utf-8?B?TDZoV0FDZWJWSE1rbmIwMW1TaE9Qc1hGM1hxYTRzMVdJWW5zN1FhTko4TXZo?= =?utf-8?B?QUtHRk1KK3dRUWJtMmZKaWk5Z1hwSngwaGxDQjN5Zm1DTDNCMGt2KzBmWjVV?= =?utf-8?B?M2F2TUp4a1BkZUxYbXlQY1FWbzRsb29nMGxBRUw5YzVkMzg4bmVXc0Exb3Vn?= =?utf-8?B?N3U1L3dmS01RRFR0NFpXSzMxVFFGODVLdVBHeFhVSTAwbzdXOEEvTjFabW5E?= =?utf-8?B?TlhQVm8zWUxGUXZFelc1TEhDRVFnVlYxRzB1QkRuREpSWmV1cGQ3V1hsUHpF?= =?utf-8?B?bTRTZzZEM21RZWowaHp4K1Urem9JbVBFZUZuU3hyMUVCMEU4clhMNUllZ0tu?= =?utf-8?B?S1pkK3BLcjNBMzUvSjZpelQrVTdic1NEYVcrVWMvMml3ZE9OZ01hZFYvWG1T?= =?utf-8?B?ODZXTm9RRkplVUMydkYyRUhocS9ySnU2b2ZBWUlrenViS2oxaWxtSG9PS2F1?= =?utf-8?B?UUxIUEdFYVhoUlkyMEg2TEJxM1NCejlYOE9KVmtmR0ZSWVZqdEtKMW1OK1BK?= =?utf-8?Q?ibls=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN6PR11MB8244.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 71eeef62-feed-4b18-4eba-08dbf21a6fc1 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Dec 2023 03:05:56.0595 (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: DE2iSOzQArGHqZsErGNnN4LK8/sqy1PJN+HPZAQv+5pPmfbcVtTHb/Joakd+xS3n4xnQph0y0XILTiBBXU4cgg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR11MB6817 X-OriginatorOrg: intel.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,ray.ni@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: SnXNap8Ab9Mtl5so2rj20o6zx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=cWMUdrQQ; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") V2hlbiBQY2RNaWdyYXRlVGVtcG9yYXJ5UmFtRmlybXdhcmVWb2x1bWVzIGlzIFRSVUUsIEZWIGlu IGZsYXNoIChjYWNoZWQgaW4gY29kZSBjYWNoZSkgaXMgY29waWVkIHRvIHBoeXNpY2FsIG1lbW9y eSBhbmQgYWxsIEMgZ2xvYmFsIHBvaW50ZXJzIChQUElzLCBHVUlEcykgYXJlIGZpeGVkIHVwLg0K QnV0IFRDRyBuZWVkcyB0byBtZWFzdXJlIHRoZSBvcmlnaW5hbCBGViBjb250ZW50cywgc28gdGhl IG9yaWdpbmFsIEZWIGlzIHNhdmVkIGludG8gTWlncmF0ZWRGdkluZm8gSE9CIHdoZW4gdGhlIEZW IG1pZ3JhdGlvbiBpcyBkb25lLg0KDQpOb3cgd2UgYXJlIGdvaW5nIHRvIGFkZCBhIG5ldyBUb01p Z3JhdGUgSE9CIHRvIHRlbGwgc29tZXRoaW5nLg0KDQpJbml0aWFsbHkgd2l0aG91dCByZWFkaW5n IHRoZSBwYXRjaCwgSSB0aG91Z2h0IHRoZSBIT0IgaXMgdG8gdGVsbCB3aGljaCBGViBuZWVkcyB0 byBiZSBtaWdyYXRlZC4NCkJ1dCB3aGF0IHRoZSBwYXRjaCBkb2VzIGlzOiBtaWdyYXRpb24gaXMg YWx3YXlzIGRvbmUgd2hlbiBQQ0QgaXMgdHJ1ZS4gVGhlIG9ubHkgdGhpbmcgdGhhdCdzIHNraXBw ZWQgaXMgbm90IHRvIHNhdmUgdGhlIG9yaWdpbmFsIEZWIGNvbnRlbnRzLCB0aGVuIHRoZSBNaWdy YXRlZEZ2SW5mbyBIT0IgaXMgbm90IHByb2R1Y2VkIGFzIHdlbGwuDQpNb3JlIHN0cmFuZ2VseSwg aWYgYSBGViBpcyBsaXN0ZWQgaW4gIlRvTWlncmF0ZSIgSE9CIHdpdGggZmxhZyAwLCBpdCdzIHRo ZSBzYW1lIGFzIHRoZSAiVG9NaWdyYXRlIiBIT0IgZG9lcyBub3QgZXhpc3QuDQoNCkl0J3MgYSBi aXQgY29uZnVzaW5nLCBpbiBteSBvcGluaW9uLg0KDQpUaGVyZSBhcmUgc2V2ZXJhbCBhcHByb2Fj aGVzOg0KMS4gRG8gbm90IGFkZCAiVG9NaWdyYXRlIiBIT0IuIEluc3RlYWQsIGF2b2lkIHNhdmlu ZyB0aGUgd2hvbGUgb3JpZ2luYWwgRlYgY29udGVudCwgb25seSBzYXZlIHRoZSBkZWx0YSB0aGF0 IFRDRyBkcml2ZXIgdXNlcyB0aGUgbmV3IEZWIGNvbnRlbnQgYW5kIHRoZSBkZWx0YSB0byBjYWxj dWxhdGUgdGhlIEhBU0guIFRoZSBzYXZlIG9mIGRlbHRhIHNob3VsZCBub3QgaW1wYWN0IHRoZSBw ZXJmb3JtYW5jZSB2ZXJ5IG11Y2guDQoNCjIuIEFiYW5kb24gdGhlIFBDRCwgYW5kIHVwZGF0ZSB0 b2RheSdzIGxvZ2ljIHRvIGZvbGxvdyB0aGUgbmV3ICJUb01pZ3JhdGUiIEhPQiB0byBwZXJmb3Jt IG1pZ3JhdGlvbi4gQSBuZXcgZmxhZyB0ZWxscyB3aGV0aGVyIHRoZSBvcmlnaW5hbCBGViBjb250 ZW50IG5lZWRzIHRvIGJlIHNhdmVkLg0KDQozLiBLZWVwIHRoZSBQQ0QuIElmICJUb01pZ3JhdGUi IEhPQiBkb2VzIG5vdCBleGlzdCwgZm9sbG93IFBDRC4gSWYgIlRvTWlncmF0ZSIgSE9CIGV4aXN0 cywgZm9sbG93IHRoZSBIT0IgYW5kIGlnbm9yZXMgdGhlIFBDRC4gSE9CIHRha2VzIGhpZ2hlciBw cmlvcml0eS4gSXQncyBzdGlsbCBiYWNrd2FyZCBjb21wYXRpYmxlIGFuZCBhbGxvd3MgZWRrMiB0 byBncmFkdWFsbHkgcmV0aXJlIHRoYXQgUENELiAoSGF2aW5nIG11bHRpcGxlIGludGVyZmFjZXMg Y29udHJvbGxpbmcgb25lIGJlaGF2aW9yIGlzIGFsd2F5cyBjb25mdXNpbmcuKQ0KMy4xIFRoZSBm bGFnIG5hbWUgaW4gdGhlIHBhdGNoIGlzICIqU0tJUCoiLiBJIHByZWZlciB3ZSByZXZlcnNlIHRo ZSBtZWFuaW5nIG9mIHRoZSBmbGFnLCBtZWFuaW5nIHdoZW4gdGhlIGZsYWcgaXMgc2V0LCBGViBv cmlnaW5hbCBjb250ZW50IGlzIHNhdmVkLiBUaGUgZmxhZyBuYW1lIGNhbiBiZSAiRkxBR1NfQlVJ TERfTUlHUkFURURfRlZfSU5GTyIgd2hpY2ggZGlyZWN0bHkgbWFwcyB0byB0aGUgYmVoYXZpb3Ig dGhlIGZsYWcgY29udHJvbHMuIEkgYWdyZWUgIk1pZ3JhdGVkRnZJbmZvIiBuYW1lIGlzIGNvbmZ1 c2luZyBidXQgYXQgbGVhc3Qgd2UgYXZvaWQgYWRkaW5nIGFub3RoZXIgY29uZnVzaW5nICJTS0lQ X0ZWX1JBV19EQVRBX0NPUFkiIGZsYWcuDQoNCg0KDQpUaGFua3MsDQpSYXkNCj4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVk azIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgZ2FvbGltaW5nDQo+IHZpYSBncm91cHMuaW8NCj4g U2VudDogRnJpZGF5LCBEZWNlbWJlciAxLCAyMDIzIDk6MDEgQU0NCj4gVG86IGRldmVsQGVkazIu Z3JvdXBzLmlvOyBXYW5nLCBGYW4gPGZhbi53YW5nQGludGVsLmNvbT47IEtpbm5leSwgTWljaGFl bA0KPiBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gQ2M6IEppYW5nLCBHdW9taW4g PGd1b21pbi5qaWFuZ0BpbnRlbC5jb20+OyBCaSwgRGFuZGFuDQo+IDxkYW5kYW4uYmlAaW50ZWwu Y29tPg0KPiBTdWJqZWN0OiDlm57lpI06IFtlZGsyLWRldmVsXSBbUEFUQ0ggVjIgMS8xXSBNZGVN b2R1bGVQa2c6IFN1cHBvcnQNCj4gY3VzdG9taXplZCBGViBNaWdyYXRpb24gSW5mb3JtYXRpb24N Cj4gDQo+IEZhbjoNCj4gICBJIGFkZCBteSBjb21tZW50IGJlbG93Lg0KPiANCj4gPiAtLS0tLemC ruS7tuWOn+S7ti0tLS0tDQo+ID4g5Y+R5Lu25Lq6OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2 ZWxAZWRrMi5ncm91cHMuaW8+IOS7o+ihqCBXYW5nIEZhbg0KPiA+IOWPkemAgeaXtumXtDogMjAy M+W5tDEw5pyIMjfml6UgMTY6MjQNCj4gPiDmlLbku7bkuro6IEtpbm5leSwgTWljaGFlbCBEIDxt aWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47DQo+ID4gZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4g PiDmioTpgIE6IEdhbywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBKaWFuZywg R3VvbWluDQo+ID4gPGd1b21pbi5qaWFuZ0BpbnRlbC5jb20+OyBCaSwgRGFuZGFuIDxkYW5kYW4u YmlAaW50ZWwuY29tPg0KPiA+IOS4u+mimDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggVjIgMS8x XSBNZGVNb2R1bGVQa2c6IFN1cHBvcnQNCj4gY3VzdG9taXplZA0KPiA+IEZWIE1pZ3JhdGlvbiBJ bmZvcm1hdGlvbg0KPiA+DQo+ID4gSGkgTWlrZQ0KPiA+DQo+ID4gVGhhbmsgeW91IGZvciB5b3Vy IGZlZWRiYWNrLg0KPiA+DQo+ID4gSSBoYXZlIHVwZGF0ZWQgdGhlIHBhdGNoIHRvIHYzOg0KPiA+ IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9tZXNzYWdlLzExMDE5Nw0KPiA+DQo+ID4g UHVsbCBSZXF1ZXN0OiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIvcHVsbC80OTcw DQo+ID4NCj4gPiBCYXNlZCBvbiBWMiwgdGhpcyB1cGRhdGUgaW5jbHVkZXMgY2hhbmdlczoNCj4g PiAtIEFkZCBtb3JlIGRlc2NyaXB0aW9ucyBmb3IgImdFZGtpaVRvTWlncmF0ZUZ2SW5mb0d1aWQi IFBQSSB1c2FnZXMgYW5kDQo+ID4gYmFja2dyb3VuZCwgYnV0IHN0aWxsIGtlZXAgdGhlIG5hbWUu DQo+ID4gLSBVcGRhdGUgIkZ2T3JnQmFzZSIgdG8gIkZ2VGVtcG9yYXJ5UmFtQmFzZSIgaW4NCj4g PiBFREtJSV9UT19NSUdSQVRFX0ZWX0lORk8uDQo+ID4gLSBSZW1vdmUgZmxhZyAiRkxBR1NfU0tJ UF9GVl9NSUdSQVRJT04iLCBzaW5jZSBpdCdzIG5vdCBuZWVkZWQuDQo+ID4gLSBBZGQgbW9yZSBk ZXNjcmlwdGlvbnMgdG8gZmxhZyAiRkxBR1NfU0tJUF9GVl9SQVdfREFUQV9DT1BZIi4NCj4gW0xp bWluZ10gUkFXX0RBVEFfQ09QWSBpcyBmb3IgbWVhc3VyZSBib290IHRvIG1ha2Ugc3VyZSBQQ1Iw IGhhdmUgdGhlDQo+IHNhbWUNCj4gdmFsdWUgb24gdGhlIGRpZmZlcmVudCBib290Lg0KPiBJZiBS QVdfREFUQV9DT1BZIGlzIG5vdCBzZXQsIGl0IHdpbGwgaW1wYWN0IHRoZSBtZWFzdXJlIGJvb3Qu IFNvLCBJIGRvbid0DQo+IHRoaW5rIHdlIGNhbiBza2lwIHJhdyBkYXRhIGNvcHkuDQo+IA0KPiA+ IC0gUmVtb3ZlIHRoZSB2YXJpYWJsZSBNaWdyYXRlQWxsRnZzIHRvIHNpbXBsaWZ5IGxvZ2ljLg0K PiA+IC0gQ29ycmVjdCAiYWxsb2NhdGUgcG9vbCIgdG8gImFsbG9jYXRlIHBhZ2VzIiB0byBhbGln biB3aXRoIGRlc2NyaXB0aW9ucy4NCj4gPg0KPiA+IEZvciBvdGhlciB0d28gcXVlc3Rpb25zIHlv dSBhcmUgbWVudGlvbmluZzoNCj4gPg0KPiA+IDEuIEZvciAiU2hvdWxkIEZ2T3JnQmFzZSBiZSBh IFVJTlQ2NCBvciBzdXBwb3J0IHRlbXAgUkFNIGFib3ZlIDRHQj8iOg0KPiA+IEkgdGhpbmsgVUlO VDMyIHNob3VsZCBiZSBlbm91Z2gsIGFsbCBwcmUtbWVtIEZWcyBhcmUgYmVsb3cgNEcgYXMgZmFy IGFzIEkNCj4gPiBrbm93LCBldmVuIHdlIGVuYWJsZWQgWDY0IGluIHByZS1tZW0gcGhhc2UuIFRo aXMgc2V0dGluZyBpcyBhbHNvIGFsaWduaW5nDQo+ID4gd2l0aCAiRnZPcmdCYXNlIiBkZWZpbmVk IGluICJFREtJSV9NSUdSQVRFRF9GVl9JTkZPIi4NCj4gPiAyLiBGb3IgIlRoZSBjYWxsIHRvIFJl bW92ZUZ2SG9ic0luVGVtcG9yYXJ5TWVtb3J5IChQcml2YXRlKSB3YXMNCj4gPiByZW1vdmVkIjoN Cj4gPiBTaW5jZSB0aGlzIGZ1bmN0aW9uIHdpbGwgcmVtb3ZlIGFsbCBGViBob2JzIGZvciBwaHlz aWNhbCBhZGRyZXNzZXMsIGl0DQo+IHNob3VsZCBiZQ0KPiA+IGNhbGxlZCBvbmx5IHdoZW4gYWxs IHByZS1tZW0gRlZzIGFyZSBtaWdyYXRlZC4gSW4gRXZhY3VhdGVUZW1wUmFtKCksDQo+IHdoZW4N Cj4gPiBvbmUgRlYgaXMgbWlncmF0ZWQsIENvbnZlcnRGdkhvYigpIHdpbGwgYmUgY2FsbGVkIGZv ciB0aGlzIEZWIGFuZCBhbGwgaXRzJw0KPiBjaGlsZA0KPiA+IEZWcywgdGhpcyBpcyBlbm91Z2gg dG8gZW5zdXJlIGFscmVhZHkgbWlncmF0ZWQgRlYgaG9icyBhcmUgYWxsIHBvaW50aW5nIHRvDQo+ ID4gYWRkcmVzc2VzIG9uIHBlcm1hbmVudCBhZGRyZXNzLg0KPiA+DQo+IFtMaW1pbmddIFNvLCBS ZW1vdmVGdkhvYnNJblRlbXBvcmFyeU1lbW9yeSAoKSBkb2VzIG5vdGhpbmcgbm93LiBSaWdodD8N Cj4gSWYgeWVzLCBpdCBpcyBzYWZlIHRvIHJlbW92ZSBpdC4NCj4gDQo+IFRoYW5rcw0KPiBMaW1p bmcNCj4gPiBXaGF0IGRvIHlvdSB0aGluaz8NCj4gPg0KPiA+IEJlc3QgUmVnYXJkcw0KPiA+IEZh bg0KPiA+DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBLaW5uZXks IE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gU2VudDogVHVlc2Rh eSwgT2N0b2JlciAxNywgMjAyMyA1OjAwIEFNDQo+ID4gVG86IFdhbmcsIEZhbiA8ZmFuLndhbmdA aW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiBDYzogR2FvLCBMaW1pbmcgPGdh b2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IEppYW5nLCBHdW9taW4NCj4gPiA8Z3VvbWluLmppYW5n QGludGVsLmNvbT47IEJpLCBEYW5kYW4gPGRhbmRhbi5iaUBpbnRlbC5jb20+OyBLaW5uZXksDQo+ ID4gTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiBTdWJqZWN0OiBS RTogW1BBVENIIFYyIDEvMV0gTWRlTW9kdWxlUGtnOiBTdXBwb3J0IGN1c3RvbWl6ZWQgRlYNCj4g PiBNaWdyYXRpb24gSW5mb3JtYXRpb24NCj4gPg0KPiA+IEhpIEZhbiwNCj4gPg0KPiA+IFRoZSBs b2dpYyBsb29rcyBmdW5jdGlvbmFsLCBidXQgdGhlcmUgYXJlIHNvbWUgbmFtZXMgYW5kIGRlc2Ny aXB0aW9ucyB0aGF0DQo+ID4gY291bGQgYmUgYWRkZWQgdG8gaGVscCBkZXNjcmliZSB0aGlzIGZl YXR1cmUgYW5kIHNvbWUgY29kZSBjaGFuZ2VzIHRvIG1ha2UNCj4gPiB0aGUgY29kZSBlYXNpZXIg dG8gdW5kZXJzdGFuZC4NCj4gPg0KPiA+IDEpIFRoZSBHVUlEIGdFZGtpaVRvTWlncmF0ZUZ2SW5m b0d1aWQgaXMgaGFyZCB0byB1bmRlcnN0YW5kIHdoYXQNCj4gPiAgICBpbmZvcm1hdGlvbiBpdCBj b252ZXlzIGZyb20gdGhlIG5hbWUgb2YgdGhlIEdVSUQgdmFyaWFibGUuDQo+ID4gICAgSSBrbm93 IHRoYXQgdGhlIGludGVudCBpcyB0aGF0IGl0IGlzIGEgR1VJRCB3aXRoIGRhdGEgdGhhdA0KPiA+ ICAgIHRlbGxzIHRoZSBQRUkgY29yZSB3aGljaCBGVnMgaW4gdGVtcG9yYXJ5IFJBTSBzaG91bGQg YmUNCj4gPiAgICBtaWdyYXRlZCB0byBwZXJtYW5lbnQgUkFNLiAgQW5kIHRoYXQgdGhlIHVzZSBv ZiB0aGlzIGluZm9ybWF0aW9uDQo+ID4gICAgaXMgb25seSBhIHBlcmZvcm1hbmNlIG9wdGltaXph dGlvbiB0byBub3QgbWlncmF0ZSBGVnMgdGhhdA0KPiA+ICAgIGFyZSBub3QgbmVlZGVkIGFmdGVy IHRoZSBQRUkgQ29yZSBtaWdyYXRlcyB0ZW1wIFJBTSB0bw0KPiA+ICAgIHBlcm1hbmVudCBSQU0u ICBUaGUgbmFtZSBhbmQgZGVzY3JpcHRpb24gaW4gY29tbWVudHMgZG8gbm90DQo+ID4gICAgZXhw cmVzcyBhbGwgdGhlc2UgZGV0YWlscy4NCj4gPg0KPiA+IDIpIFRoZSBzdHJ1Y3R1cmUgbmFtZSBF REtJSV9UT19NSUdSQVRFX0ZWX0lORk8gaGFzIHRoZSBzYW1lDQo+ID4gICAgaXNzdWUgYXMgKDEp Lg0KPiA+ICAgIGEpIFNob3VsZCBGdk9yZ0Jhc2UgYmUgYSBVSU5UNjQgb3Igc3VwcG9ydCB0ZW1w IFJBTSBhYm92ZSA0R0I/DQo+ID4gICAgYikgU2luY2Ugb25seSB0ZW1wIFJBTSB0byBwZXJtIFJB TSBtaWdyYXRpb25zIGFyZSBzdXBwb3J0ZWQNCj4gPiAgICAgICB0aGUgZmllbGQgbmFtZSAiRnZP cmdCYXNlIiBzaG91bGQgYmUgIkZ2VGVtcG9yYXJ5UmFtQmFzZSIuDQo+ID4NCj4gPg0KPiA+IDMp IFRoZSAjZGVmaW5lIGZvciBGTEFHU19TS0lQX0ZWX01JR1JBVElPTiBzaG91bGQgaGF2ZSBhIGNv bW1lbnQNCj4gPiAgICBibG9jayB0aGF0IGRlc2NyaWJlcyB0aGUgbWVhbmluZyBvZiB0aGlzIGJp dC4gIFdoYXQgaXMgdGhlDQo+ID4gICAgbWVhbmluZyB3aGVuIHRoZSBiaXQgaXMgc2V0IGFuZCB3 aGF0IGlzIHRoZSBtZWFuaW5nIHdoZW4gdGhlDQo+ID4gICAgYml0IGlzIGNsZWFyLg0KPiA+DQo+ ID4gNCkgVGhlICNkZWZpbmUgZm9yIEZMQUdTX1NLSVBfRlZfUkFXX0RBVEFfQ09QWSBzaG91bGQg aGF2ZSBhDQo+IGNvbW1lbnQNCj4gPiAgICBibG9jayB0aGF0IGRlc2NyaWJlcyB0aGUgbWVhbmlu ZyBvZiB0aGlzIGJpdC4gIFdoYXQgaXMgdGhlDQo+ID4gICAgbWVhbmluZyB3aGVuIHRoZSBiaXQg aXMgc2V0IGFuZCB3aGF0IGlzIHRoZSBtZWFuaW5nIHdoZW4gdGhlDQo+ID4gICAgYml0IGlzIGNs ZWFyLg0KPiA+DQo+ID4gNSkgV2h5IGFyZSB0aGVyZSAyIGJpdHM/ICBJZiBhbiBGViBpcyBza2lw cGVkLCB0aGVuIHRoYXQgbWVhbnMNCj4gPiAgICBkbyBub3QgY29weS4gIElmIGFuIEZWIGlzIG5v dCBza2lwcGVkLCB0aGVuIHRoYXQgbWVhbnMgZG8NCj4gPiAgICBjb3B5Lg0KPiA+DQo+ID4gNikg SSB0aGluayB0aGUgdmFyaWFibGUgTWlncmF0ZUFsbEZ2cyBjYW4gYmUgcmVtb3ZlZCwgYW5kIHRo ZSBIT0INCj4gPiAgICBsaXN0IGNoZWNrIGNhbiBiZSBtYWRlIGZvciBnRWRraWlUb01pZ3JhdGVG dkluZm9HdWlkIGNhbiBiZSBtYWRlDQo+ID4gICAgb24gZWFjaCBGViBmb3VuZCBpbiB0ZW1wb3Jh cnkgUkFNLiAgVGhpcyBsb29rcyBsaWtlIGEgcGVyZm9ybWFuY2UNCj4gPiAgICBvcHRpbWl6YXRp b24gdGhhdCBtYWtlcyB0aGUgbG9naWMgaGFyZGVyIHRvIHVuZGVyc3RhbmQgYW5kIGl0DQo+ID4g ICAgaXMgbm90IGNsZWFyIHRoYXQgdGhlIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiBoYXMgYW55 IGJlbmVmaXQuDQo+ID4NCj4gPiA3KSBUaGUgY2FsbCB0byBSZW1vdmVGdkhvYnNJblRlbXBvcmFy eU1lbW9yeSAoUHJpdmF0ZSkgd2FzIHJlbW92ZWQuDQo+ID4gV2h5Pw0KPiA+DQo+ID4gOCkgVGhl IGNvbW1lbnQgd2hlcmUgbWVtb3J5IGlzIGFsbG9jYXRlZCBmb3IgdGhlIG1pZ3JhdGVkIEZWIHNh eXMNCj4gPiAgICAiYWxsb2NhdGUgcG9vbCIgd2hlbiBQZWlTZXJ2aWNlc0FsbG9jYXRlUGFnZXMo KSBpcyB1c2VkLiAgUGxlYXNlDQo+ID4gICAgdXBkYXRlIHRoZSBjb21tZW50Lg0KPiA+DQo+ID4g TWlrZQ0KPiA+DQo+ID4NCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g PiA+IEZyb206IFdhbmcsIEZhbiA8ZmFuLndhbmdAaW50ZWwuY29tPg0KPiA+ID4gU2VudDogTW9u ZGF5LCBTZXB0ZW1iZXIgMTEsIDIwMjMgMjo1MiBBTQ0KPiA+ID4gVG86IGRldmVsQGVkazIuZ3Jv dXBzLmlvDQo+ID4gPiBDYzogV2FuZywgRmFuIDxmYW4ud2FuZ0BpbnRlbC5jb20+OyBLaW5uZXks IE1pY2hhZWwgRA0KPiA+ID4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgR2FvLCBMaW1p bmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47DQo+ID4gPiBKaWFuZywgR3VvbWluIDxndW9t aW4uamlhbmdAaW50ZWwuY29tPjsgQmksIERhbmRhbg0KPiA+ID4gPGRhbmRhbi5iaUBpbnRlbC5j b20+DQo+ID4gPiBTdWJqZWN0OiBbUEFUQ0ggVjIgMS8xXSBNZGVNb2R1bGVQa2c6IFN1cHBvcnQg Y3VzdG9taXplZCBGVg0KPiBNaWdyYXRpb24NCj4gPiA+IEluZm9ybWF0aW9uDQo+ID4gPg0KPiA+ ID4gUkVGOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTQ1 MzMNCj4gPiA+DQo+ID4gPiBUaGVyZSBhcmUgdXNlIGNhc2VzIHdoaWNoIG5vdCBhbGwgRlZzIG5l ZWQgYmUgbWlncmF0ZWQgZnJvbSBUZW1wUmFtIHRvDQo+ID4gPiBwZXJtYW5lbnQgbWVtb3J5IGJl Zm9yZSBUZW1wUmFtIHRlYXJzIGRvd24uIFRoaXMgbmV3IGd1aWQgaXMNCj4gPiA+IGludHJvZHVj ZWQgdG8gYXZvaWQgdW5uZWNlc3NhcnkgRlYgbWlncmF0aW9uIHRvIGltcHJvdmUgYm9vdA0KPiA+ ID4gcGVyZm9ybWFuY2UuDQo+ID4gPiBQbGF0Zm9ybQ0KPiA+ID4gY2FuIHB1Ymxpc2ggVG9NaWdy YXRlRnZJbmZvIGhvYiB3aXRoIHRoaXMgZ3VpZCB0byBjdXN0b21pemUgRlYNCj4gPiA+IG1pZ3Jh dGlvbiBpbmZvLCBhbmQgUGVpQ29yZSB3aWxsIG9ubHkgbWlncmF0ZSBGVnMgaW5kaWNhdGVkIGJ5 IHRoaXMNCj4gPiA+IEhvYiBpbmZvLg0KPiA+ID4NCj4gPiA+IFRoaXMgaXMgYSBiYWNrd2FyZHMg Y29tcGF0aWJsZSBjaGFuZ2UsIFBlaUNvcmUgd2lsbCBjaGVjaw0KPiA+ID4gVG9NaWdyYXRlRnZJ bmZvIGhvYiBiZWZvcmUgbWlncmF0aW9uLiBJZiBUb01pZ3JhdGVGdkluZm8gaG9icyBleGlzdHMs DQo+ID4gPiBvbmx5IG1pZ3JhdGUgRlZzIHJlY29yZGVkIGJ5IGhvYnMuIElmIFRvTWlncmF0ZUZ2 SW5mbyBob2JzIG5vdCBleGlzdHMsDQo+ID4gPiBtaWdyYXRlIGFsbCBGVnMgdG8gcGVybWFuZW50 IG1lbW9yeS4NCj4gPiA+DQo+ID4gPiBDYzogTWljaGFlbCBEIEtpbm5leSA8bWljaGFlbC5kLmtp bm5leUBpbnRlbC5jb20+DQo+ID4gPiBDYzogTGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQu Y29tLmNuPg0KPiA+ID4gQ2M6IEd1b21pbiBKaWFuZyA8Z3VvbWluLmppYW5nQGludGVsLmNvbT4N Cj4gPiA+IENjOiBEYW5kYW4gQmkgPGRhbmRhbi5iaUBpbnRlbC5jb20+DQo+ID4gPiBTaWduZWQt b2ZmLWJ5OiBXYW5nIEZhbiA8ZmFuLndhbmdAaW50ZWwuY29tPg0KPiA+ID4gLS0tDQo+ID4gPiAg TWRlTW9kdWxlUGtnL0NvcmUvUGVpL0Rpc3BhdGNoZXIvRGlzcGF0Y2hlci5jIHwgODINCj4gPiAr KysrKysrKysrKysrLS0tLS0NCj4gPiA+IC0NCj4gPiA+ICBNZGVNb2R1bGVQa2cvQ29yZS9QZWkv UGVpTWFpbi5pbmYgICAgICAgICAgICAgfCAgMSArDQo+ID4gPiAgTWRlTW9kdWxlUGtnL0luY2x1 ZGUvR3VpZC9NaWdyYXRlZEZ2SW5mby5oICAgIHwgMTkgKysrKysNCj4gPiA+ICBNZGVNb2R1bGVQ a2cvTWRlTW9kdWxlUGtnLmRlYyAgICAgICAgICAgICAgICAgfCAgMyArLQ0KPiA+ID4gIDQgZmls ZXMgY2hhbmdlZCwgNzkgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pDQo+ID4gPg0KPiA+ ID4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9Db3JlL1BlaS9EaXNwYXRjaGVyL0Rpc3BhdGNo ZXIuYw0KPiA+ID4gYi9NZGVNb2R1bGVQa2cvQ29yZS9QZWkvRGlzcGF0Y2hlci9EaXNwYXRjaGVy LmMNCj4gPiA+IGluZGV4IDVmMzJlYmI1NjBhZS4uZTg0ODQ5ZWM2ZGIxIDEwMDY0NA0KPiA+ID4g LS0tIGEvTWRlTW9kdWxlUGtnL0NvcmUvUGVpL0Rpc3BhdGNoZXIvRGlzcGF0Y2hlci5jDQo+ID4g PiArKysgYi9NZGVNb2R1bGVQa2cvQ29yZS9QZWkvRGlzcGF0Y2hlci9EaXNwYXRjaGVyLmMNCj4g PiA+IEBAIC0xMTg0LDcgKzExODQsMTEgQEAgRXZhY3VhdGVUZW1wUmFtICgNCj4gPiA+DQo+ID4g PiAgICBQRUlfQ09SRV9GVl9IQU5ETEUgICAgICAgICAgICBQZWlDb3JlRnZIYW5kbGU7DQo+ID4g PiAgICBFRklfUEVJX0NPUkVfRlZfTE9DQVRJT05fUFBJICAqUGVpQ29yZUZ2TG9jYXRpb25QcGk7 DQo+ID4gPiArICBFREtJSV9UT19NSUdSQVRFX0ZWX0lORk8gICAgICAqVG9NaWdyYXRlRnZJbmZv Ow0KPiA+ID4gICAgRURLSUlfTUlHUkFURURfRlZfSU5GTyAgICAgICAgTWlncmF0ZWRGdkluZm87 DQo+ID4gPiArICBFRklfUEVJX0hPQl9QT0lOVEVSUyAgICAgICAgICBIb2I7DQo+ID4gPiArICBC T09MRUFOICAgICAgICAgICAgICAgICAgICAgICBNaWdyYXRlQWxsRnZzOw0KPiA+ID4gKyAgVUlO VDMyICAgICAgICAgICAgICAgICAgICAgICAgTWlncmF0aW9uRmxhZ3M7DQo+ID4gPg0KPiA+ID4g ICAgQVNTRVJUIChQcml2YXRlLT5QZWlNZW1vcnlJbnN0YWxsZWQpOw0KPiA+ID4NCj4gPiA+IEBA IC0xMjExLDYgKzEyMTUsMTcgQEAgRXZhY3VhdGVUZW1wUmFtICgNCj4gPiA+DQo+ID4gPiAgICBD b252ZXJ0UGVpQ29yZVBwaVBvaW50ZXJzIChQcml2YXRlLCAmUGVpQ29yZUZ2SGFuZGxlKTsNCj4g PiA+DQo+ID4gPiArICAvLw0KPiA+ID4gKyAgLy8gQ2hlY2sgaWYgcGxhdGZvcm0gZGVmaW5lZCBo b2JzIHRvIGluZGljYXRlIHdoaWNoIEZWcyBhcmUNCj4gPiA+IGV4cGVjdGVkIHRvIG1pZ3JhdGUg b3Iga2VlcCByYXcgZGF0YS4NCj4gPiA+ICsgIC8vIElmIFRvTWlncmF0ZUZ2SW5mbyBob2JzIGV4 aXN0cywgb25seSBtaWdyYXRlIEZWcyByZWNvcmRlZCBieQ0KPiA+ID4gaG9icy4NCj4gPiA+ICsg IC8vIElmIFRvTWlncmF0ZUZ2SW5mbyBob2JzIG5vdCBleGlzdHMsIG1pZ3JhdGUgYWxsIEZWcyB0 byBwZXJtYW5lbnQNCj4gPiA+IG1lbW9yeS4NCj4gPiA+ICsgIC8vDQo+ID4gPiArICBNaWdyYXRl QWxsRnZzID0gVFJVRTsNCj4gPiA+ICsgIEhvYi5SYXcgICAgICAgPSBHZXRGaXJzdEd1aWRIb2Ig KCZnRWRraWlUb01pZ3JhdGVGdkluZm9HdWlkKTsNCj4gPiA+ICsgIGlmIChIb2IuUmF3ICE9IE5V TEwpIHsNCj4gPiA+ICsgICAgTWlncmF0ZUFsbEZ2cyA9IEZBTFNFOw0KPiA+ID4gKyAgfQ0KPiA+ ID4gKw0KPiA+ID4gICAgZm9yIChGdkluZGV4ID0gMDsgRnZJbmRleCA8IFByaXZhdGUtPkZ2Q291 bnQ7IEZ2SW5kZXgrKykgew0KPiA+ID4gICAgICBGdkhlYWRlciA9IFByaXZhdGUtPkZ2W0Z2SW5k ZXhdLkZ2SGVhZGVyOw0KPiA+ID4gICAgICBBU1NFUlQgKEZ2SGVhZGVyICE9IE5VTEwpOw0KPiA+ ID4gQEAgLTEyMjQsNiArMTIzOSwyNSBAQCBFdmFjdWF0ZVRlbXBSYW0gKA0KPiA+ID4gICAgICAg ICAgICApDQo+ID4gPiAgICAgICAgICApDQo+ID4gPiAgICAgIHsNCj4gPiA+ICsgICAgICBpZiAo TWlncmF0ZUFsbEZ2cykgew0KPiA+ID4gKyAgICAgICAgTWlncmF0aW9uRmxhZ3MgPSAwOw0KPiA+ ID4gKyAgICAgIH0gZWxzZSB7DQo+ID4gPiArICAgICAgICBNaWdyYXRpb25GbGFncyA9IEZMQUdT X1NLSVBfRlZfTUlHUkFUSU9OIHwNCj4gPiA+IEZMQUdTX1NLSVBfRlZfUkFXX0RBVEFfQ09QWTsN Cj4gPiA+ICsgICAgICAgIEhvYi5SYXcgPSBHZXRGaXJzdEd1aWRIb2IgKCZnRWRraWlUb01pZ3Jh dGVGdkluZm9HdWlkKTsNCj4gPiA+ICsgICAgICAgIHdoaWxlIChIb2IuUmF3ICE9IE5VTEwpIHsN Cj4gPiA+ICsgICAgICAgICAgVG9NaWdyYXRlRnZJbmZvID0gR0VUX0dVSURfSE9CX0RBVEEgKEhv Yik7DQo+ID4gPiArICAgICAgICAgIGlmIChUb01pZ3JhdGVGdkluZm8tPkZ2T3JnQmFzZSA9PQ0K PiA+IChVSU5UMzIpKFVJTlROKUZ2SGVhZGVyKQ0KPiA+ID4gew0KPiA+ID4gKyAgICAgICAgICAg IE1pZ3JhdGlvbkZsYWdzID0gVG9NaWdyYXRlRnZJbmZvLT5NaWdyYXRpb25GbGFnczsNCj4gPiA+ ICsgICAgICAgICAgICBicmVhazsNCj4gPiA+ICsgICAgICAgICAgfQ0KPiA+ID4gKyAgICAgICAg ICBIb2IuUmF3ID0gR0VUX05FWFRfSE9CIChIb2IpOw0KPiA+ID4gKyAgICAgICAgICBIb2IuUmF3 ID0gR2V0TmV4dEd1aWRIb2IgKCZnRWRraWlUb01pZ3JhdGVGdkluZm9HdWlkLA0KPiA+ID4gSG9i LlJhdyk7DQo+ID4gPiArICAgICAgICB9DQo+ID4gPiArICAgICAgfQ0KPiA+ID4gKyAgICAgIGlm IChNaWdyYXRpb25GbGFncyAmIEZMQUdTX1NLSVBfRlZfTUlHUkFUSU9OKSB7DQo+ID4gPiArICAg ICAgICBjb250aW51ZTsNCj4gPiA+ICsgICAgICB9DQo+ID4gPiArDQo+ID4gPiAgICAgICAgLy8N Cj4gPiA+ICAgICAgICAvLyBBbGxvY2F0ZSBwYWdlIHRvIHNhdmUgdGhlIHJlYmFzZWQgUEVJTXMs IHRoZSBQRUlNcyB3aWxsIGdldA0KPiA+ID4gZGlzcGF0Y2hlZCBsYXRlci4NCj4gPiA+ICAgICAg ICAvLw0KPiA+ID4gQEAgLTEyMzQsMTggKzEyNjgsNyBAQCBFdmFjdWF0ZVRlbXBSYW0gKA0KPiA+ ID4gICAgICAgICAgICAgICAgICAgICk7DQo+ID4gPiAgICAgICAgQVNTRVJUX0VGSV9FUlJPUiAo U3RhdHVzKTsNCj4gPiA+ICAgICAgICBNaWdyYXRlZEZ2SGVhZGVyID0gKEVGSV9GSVJNV0FSRV9W T0xVTUVfSEVBREVSDQo+ID4gPiAqKShVSU5UTilGdkhlYWRlckFkZHJlc3M7DQo+ID4gPiAtDQo+ ID4gPiAtICAgICAgLy8NCj4gPiA+IC0gICAgICAvLyBBbGxvY2F0ZSBwb29sIHRvIHNhdmUgdGhl IHJhdyBQRUlNcywgd2hpY2ggaXMgdXNlZCB0byBrZWVwDQo+ID4gPiBjb25zaXN0ZW50IGNvbnRl eHQgYWNyb3NzDQo+ID4gPiAtICAgICAgLy8gbXVsdGlwbGUgYm9vdCBhbmQgUENSMCB3aWxsIGtl ZXAgdGhlIHNhbWUgbm8gbWF0dGVyIGlmIHRoZQ0KPiA+ID4gYWRkcmVzcyBvZiBhbGxvY2F0ZWQg cGFnZSBpcyBjaGFuZ2VkLg0KPiA+ID4gLSAgICAgIC8vDQo+ID4gPiAtICAgICAgU3RhdHVzID0g IFBlaVNlcnZpY2VzQWxsb2NhdGVQYWdlcyAoDQo+ID4gPiAtICAgICAgICAgICAgICAgICAgRWZp Qm9vdFNlcnZpY2VzQ29kZSwNCj4gPiA+IC0gICAgICAgICAgICAgICAgICBFRklfU0laRV9UT19Q QUdFUyAoKFVJTlROKUZ2SGVhZGVyLT5Gdkxlbmd0aCksDQo+ID4gPiAtICAgICAgICAgICAgICAg ICAgJkZ2SGVhZGVyQWRkcmVzcw0KPiA+ID4gLSAgICAgICAgICAgICAgICAgICk7DQo+ID4gPiAt ICAgICAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gPiA+IC0gICAgICBSYXdEYXRhRnZI ZWFkZXIgPSAoRUZJX0ZJUk1XQVJFX1ZPTFVNRV9IRUFERVINCj4gPiA+ICopKFVJTlROKUZ2SGVh ZGVyQWRkcmVzczsNCj4gPiA+ICsgICAgICBDb3B5TWVtIChNaWdyYXRlZEZ2SGVhZGVyLCBGdkhl YWRlciwgKFVJTlROKUZ2SGVhZGVyLQ0KPiA+ID4gPkZ2TGVuZ3RoKTsNCj4gPiA+DQo+ID4gPiAg ICAgICAgREVCVUcgKCgNCj4gPiA+ICAgICAgICAgIERFQlVHX1ZFUkJPU0UsDQo+ID4gPiBAQCAt MTI1NiwxOCArMTI3OSwyOSBAQCBFdmFjdWF0ZVRlbXBSYW0gKA0KPiA+ID4gICAgICAgICAgKSk7 DQo+ID4gPg0KPiA+ID4gICAgICAgIC8vDQo+ID4gPiAtICAgICAgLy8gQ29weSB0aGUgY29udGV4 dCB0byB0aGUgcmViYXNlZCBwYWdlcyBhbmQgcmF3IHBhZ2VzLCBhbmQNCj4gPiA+IGNyZWF0ZSBo b2IgdG8gc2F2ZSB0aGUNCj4gPiA+IC0gICAgICAvLyBpbmZvcm1hdGlvbi4gVGhlIE1pZ3JhdGVk RnZJbmZvIEhPQiB3aWxsIG5ldmVyIGJlIHByb2R1Y2VkDQo+ID4gPiB3aGVuDQo+ID4gPiAtICAg ICAgLy8gUGNkTWlncmF0ZVRlbXBvcmFyeVJhbUZpcm13YXJlVm9sdW1lcyBpcyBGQUxTRSwgYmVj YXVzZQ0KPiA+IHRoZQ0KPiA+ID4gUENEIGNvbnRyb2wgdGhlDQo+ID4gPiAtICAgICAgLy8gZmVh dHVyZS4NCj4gPiA+ICsgICAgICAvLyBDb3B5IHRoZSBjb250ZXh0IHRvIHRoZSByYXcgcGFnZXMs IGFuZCBjcmVhdGUgaG9iIHRvIHNhdmUNCj4gPiA+IHRoZSBpbmZvcm1hdGlvbi4gVGhlIE1pZ3Jh dGVkRnZJbmZvDQo+ID4gPiArICAgICAgLy8gSE9CIHdpbGwgbmV2ZXIgYmUgcHJvZHVjZWQgd2hl bg0KPiA+ID4gUGNkTWlncmF0ZVRlbXBvcmFyeVJhbUZpcm13YXJlVm9sdW1lcyBpcyBGQUxTRSwg YmVjYXVzZSB0aGUgUENEDQo+ID4gPiArICAgICAgLy8gY29udHJvbHMgdGhlIGZlYXR1cmUuDQo+ ID4gPiAgICAgICAgLy8NCj4gPiA+IC0gICAgICBDb3B5TWVtIChNaWdyYXRlZEZ2SGVhZGVyLCBG dkhlYWRlciwgKFVJTlROKUZ2SGVhZGVyLQ0KPiA+ID4gPkZ2TGVuZ3RoKTsNCj4gPiA+IC0gICAg ICBDb3B5TWVtIChSYXdEYXRhRnZIZWFkZXIsIE1pZ3JhdGVkRnZIZWFkZXIsDQo+ID4gKFVJTlRO KUZ2SGVhZGVyLQ0KPiA+ID4gPkZ2TGVuZ3RoKTsNCj4gPiA+IC0gICAgICBNaWdyYXRlZEZ2SW5m by5Gdk9yZ0Jhc2UgID0gKFVJTlQzMikoVUlOVE4pRnZIZWFkZXI7DQo+ID4gPiAtICAgICAgTWln cmF0ZWRGdkluZm8uRnZOZXdCYXNlICA9DQo+ID4gKFVJTlQzMikoVUlOVE4pTWlncmF0ZWRGdkhl YWRlcjsNCj4gPiA+IC0gICAgICBNaWdyYXRlZEZ2SW5mby5GdkRhdGFCYXNlID0gKFVJTlQzMiko VUlOVE4pUmF3RGF0YUZ2SGVhZGVyOw0KPiA+ID4gLSAgICAgIE1pZ3JhdGVkRnZJbmZvLkZ2TGVu Z3RoICAgPQ0KPiA+IChVSU5UMzIpKFVJTlROKUZ2SGVhZGVyLT5Gdkxlbmd0aDsNCj4gPiA+IC0g ICAgICBCdWlsZEd1aWREYXRhSG9iICgmZ0Vka2lpTWlncmF0ZWRGdkluZm9HdWlkLCAmTWlncmF0 ZWRGdkluZm8sDQo+ID4gPiBzaXplb2YgKE1pZ3JhdGVkRnZJbmZvKSk7DQo+ID4gPiArICAgICAg aWYgKChNaWdyYXRpb25GbGFncyAmIEZMQUdTX1NLSVBfRlZfUkFXX0RBVEFfQ09QWSkgIT0NCj4g PiA+IEZMQUdTX1NLSVBfRlZfUkFXX0RBVEFfQ09QWSkgew0KPiA+ID4gKyAgICAgICAgLy8NCj4g PiA+ICsgICAgICAgIC8vIEFsbG9jYXRlIHBvb2wgdG8gc2F2ZSB0aGUgcmF3IFBFSU1zLCB3aGlj aCBpcyB1c2VkIHRvIGtlZXANCj4gPiA+IGNvbnNpc3RlbnQgY29udGV4dCBhY3Jvc3MNCj4gPiA+ ICsgICAgICAgIC8vIG11bHRpcGxlIGJvb3QgYW5kIFBDUjAgd2lsbCBrZWVwIHRoZSBzYW1lIG5v IG1hdHRlciBpZiB0aGUNCj4gPiA+IGFkZHJlc3Mgb2YgYWxsb2NhdGVkIHBhZ2UgaXMgY2hhbmdl ZC4NCj4gPiA+ICsgICAgICAgIC8vDQo+ID4gPiArICAgICAgICBTdGF0dXMgPSAgUGVpU2Vydmlj ZXNBbGxvY2F0ZVBhZ2VzICgNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgIEVmaUJvb3RTZXJ2 aWNlc0NvZGUsDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICBFRklfU0laRV9UT19QQUdFUw0K PiA+ICgoVUlOVE4pRnZIZWFkZXItPkZ2TGVuZ3RoKSwNCj4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICZGdkhlYWRlckFkZHJlc3MNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICk7DQo+ID4g PiArICAgICAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiA+ID4gKyAgICAgICAgUmF3 RGF0YUZ2SGVhZGVyID0gKEVGSV9GSVJNV0FSRV9WT0xVTUVfSEVBREVSDQo+ID4gPiAqKShVSU5U TilGdkhlYWRlckFkZHJlc3M7DQo+ID4gPiArICAgICAgICBDb3B5TWVtIChSYXdEYXRhRnZIZWFk ZXIsIE1pZ3JhdGVkRnZIZWFkZXIsDQo+ID4gKFVJTlROKUZ2SGVhZGVyLQ0KPiA+ID4gPkZ2TGVu Z3RoKTsNCj4gPiA+ICsgICAgICAgIE1pZ3JhdGVkRnZJbmZvLkZ2T3JnQmFzZSAgPSAoVUlOVDMy KShVSU5UTilGdkhlYWRlcjsNCj4gPiA+ICsgICAgICAgIE1pZ3JhdGVkRnZJbmZvLkZ2TmV3QmFz ZSAgPQ0KPiA+IChVSU5UMzIpKFVJTlROKU1pZ3JhdGVkRnZIZWFkZXI7DQo+ID4gPiArICAgICAg ICBNaWdyYXRlZEZ2SW5mby5GdkRhdGFCYXNlID0NCj4gPiAoVUlOVDMyKShVSU5UTilSYXdEYXRh RnZIZWFkZXI7DQo+ID4gPiArICAgICAgICBNaWdyYXRlZEZ2SW5mby5Gdkxlbmd0aCAgID0gKFVJ TlQzMikoVUlOVE4pRnZIZWFkZXItDQo+ID4gPiA+RnZMZW5ndGg7DQo+ID4gPiArICAgICAgICBC dWlsZEd1aWREYXRhSG9iICgmZ0Vka2lpTWlncmF0ZWRGdkluZm9HdWlkLA0KPiA+ICZNaWdyYXRl ZEZ2SW5mbywNCj4gPiA+IHNpemVvZiAoTWlncmF0ZWRGdkluZm8pKTsNCj4gPiA+ICsgICAgICB9 DQo+ID4gPg0KPiA+ID4gICAgICAgIC8vDQo+ID4gPiAgICAgICAgLy8gTWlncmF0ZSBhbnkgY2hp bGRyZW4gZm9yIHRoaXMgRlYgbm93IEBAIC0xMzMwLDggKzEzNjQsNiBAQA0KPiA+ID4gRXZhY3Vh dGVUZW1wUmFtICgNCj4gPiA+ICAgICAgfQ0KPiA+ID4gICAgfQ0KPiA+ID4NCj4gPiA+IC0gIFJl bW92ZUZ2SG9ic0luVGVtcG9yYXJ5TWVtb3J5IChQcml2YXRlKTsNCj4gPiA+IC0NCj4gPiA+ICAg IHJldHVybiBTdGF0dXM7DQo+ID4gPiAgfQ0KPiA+ID4NCj4gPiA+IGRpZmYgLS1naXQgYS9NZGVN b2R1bGVQa2cvQ29yZS9QZWkvUGVpTWFpbi5pbmYNCj4gPiA+IGIvTWRlTW9kdWxlUGtnL0NvcmUv UGVpL1BlaU1haW4uaW5mDQo+ID4gPiBpbmRleCAwY2YzNTczNzFhMTYuLjk0NGIyMzBiMGUxOSAx MDA2NDQNCj4gPiA+IC0tLSBhL01kZU1vZHVsZVBrZy9Db3JlL1BlaS9QZWlNYWluLmluZg0KPiA+ ID4gKysrIGIvTWRlTW9kdWxlUGtnL0NvcmUvUGVpL1BlaU1haW4uaW5mDQo+ID4gPiBAQCAtNzgs NiArNzgsNyBAQA0KPiA+ID4gICAgZ0VmaUZpcm13YXJlRmlsZVN5c3RlbTNHdWlkDQo+ID4gPiAg ICBnU3RhdHVzQ29kZUNhbGxiYWNrR3VpZA0KPiA+ID4gICAgZ0Vka2lpTWlncmF0ZWRGdkluZm9H dWlkICAgICAgICAgICAgICAgICAgICAgICMjDQo+ID4gU09NRVRJTUVTX1BST0RVQ0VTDQo+ID4g PiAjIyBIT0INCj4gPiA+ICsgIGdFZGtpaVRvTWlncmF0ZUZ2SW5mb0d1aWQgICAgICAgICAgICAg ICAgICAgICAjIw0KPiA+IFNPTUVUSU1FU19DT05TVU1FUw0KPiA+ID4gIyMgSE9CDQo+ID4gPg0K PiA+ID4gIFtQcGlzXQ0KPiA+ID4gICAgZ0VmaVBlaVN0YXR1c0NvZGVQcGlHdWlkICAgICAgICAg ICAgICAgICAgICAgICMjDQo+ID4gU09NRVRJTUVTX0NPTlNVTUVTDQo+ID4gPiAjIFBlaVJlcG9y dFN0YXR1c1NlcnZpY2UgaXMgbm90IHJlYWR5IGlmIHRoaXMgUFBJIGRvZXNuJ3QgZXhpc3QgZGlm Zg0KPiA+ID4gLS1naXQgYS9NZGVNb2R1bGVQa2cvSW5jbHVkZS9HdWlkL01pZ3JhdGVkRnZJbmZv LmgNCj4gPiA+IGIvTWRlTW9kdWxlUGtnL0luY2x1ZGUvR3VpZC9NaWdyYXRlZEZ2SW5mby5oDQo+ ID4gPiBpbmRleCBhY2EyMzMyYTBlYzYuLjU0M2NkOWJhN2RkZCAxMDA2NDQNCj4gPiA+IC0tLSBh L01kZU1vZHVsZVBrZy9JbmNsdWRlL0d1aWQvTWlncmF0ZWRGdkluZm8uaA0KPiA+ID4gKysrIGIv TWRlTW9kdWxlUGtnL0luY2x1ZGUvR3VpZC9NaWdyYXRlZEZ2SW5mby5oDQo+ID4gPiBAQCAtOSw2 ICs5LDI0IEBAIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50ICAj aWZuZGVmDQo+ID4gPiBfX0VES0lJX01JR1JBVEVEX0ZWX0lORk9fR1VJRF9IX18gICNkZWZpbmUN Cj4gPiA+IF9fRURLSUlfTUlHUkFURURfRlZfSU5GT19HVUlEX0hfXw0KPiA+ID4NCj4gPiA+ICsj ZGVmaW5lIEZMQUdTX1NLSVBfRlZfTUlHUkFUSU9OICAgICAgICBCSVQwDQo+ID4gPiArI2RlZmlu ZSBGTEFHU19TS0lQX0ZWX1JBV19EQVRBX0NPUFkgICAgQklUMQ0KPiA+ID4gKw0KPiA+ID4gKy8v Lw0KPiA+ID4gKy8vLyBFREtJSV9UT19NSUdSQVRFX0ZWX0lORk8gSG9iIGluZm9ybWF0aW9uIHNo b3VsZCBiZSBwdWJsaXNoZWQNCj4gYnkNCj4gPiA+IHBsYXRmb3JtIHRvIGluZGljYXRlDQo+ID4g PiArLy8vIG9uZSBGViBpcyBleHBlY3RlZCB0byBtaWdyYXRlIHRvIHBlcm1hcm5hbnQgbWVtb3J5 IG9yIG5vdCBiZWZvcmUNCj4gPiA+IFRlbXBSYW0gdGVhcnMgZG93bi4NCj4gPiA+ICsvLy8NCj4g PiA+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ID4gPiArICBVSU5UMzIgICAgIEZ2T3JnQmFzZTsgICAg ICAgIC8vIG9yaWdpbmFsIEZWIGFkZHJlc3MNCj4gPiA+ICsgIC8vDQo+ID4gPiArICAvLyBNaWdy YXRpb24gRmxhZ3M6DQo+ID4gPiArICAvLyBCaXQwOiBJbmRpY2F0ZSB0byBza2lwIEZWIG1pZ3Jh dGlvbiBvciBub3QNCj4gPiA+ICsgIC8vIEJpdDE6IEluZGljYXRlIHRvIHNraXAgRlYgcmF3IGRh dGEgY29weSBvciBub3QNCj4gPiA+ICsgIC8vIE90aGVyczogUmVzZXJ2ZWQgYml0cw0KPiA+ID4g KyAgLy8NCj4gPiA+ICsgIFVJTlQzMiAgICAgTWlncmF0aW9uRmxhZ3M7DQo+ID4gPiArfSBFREtJ SV9UT19NSUdSQVRFX0ZWX0lORk87DQo+ID4gPiArDQo+ID4gPiAgdHlwZWRlZiBzdHJ1Y3Qgew0K PiA+ID4gICAgVUlOVDMyICAgIEZ2T3JnQmFzZTsgICAgICAgICAvLyBvcmlnaW5hbCBGViBhZGRy ZXNzDQo+ID4gPiAgICBVSU5UMzIgICAgRnZOZXdCYXNlOyAgICAgICAgIC8vIG5ldyBGViBhZGRy ZXNzDQo+ID4gPiBAQCAtMTYsNiArMzQsNyBAQCB0eXBlZGVmIHN0cnVjdCB7DQo+ID4gPiAgICBV SU5UMzIgICAgRnZMZW5ndGg7ICAgICAgICAgIC8vIEZ2IExlbmd0aA0KPiA+ID4gIH0gRURLSUlf TUlHUkFURURfRlZfSU5GTzsNCj4gPiA+DQo+ID4gPiArZXh0ZXJuIEVGSV9HVUlEICBnRWRraWlU b01pZ3JhdGVGdkluZm9HdWlkOw0KPiA+ID4gIGV4dGVybiBFRklfR1VJRCAgZ0Vka2lpTWlncmF0 ZWRGdkluZm9HdWlkOw0KPiA+ID4NCj4gPiA+ICAjZW5kaWYgLy8gI2lmbmRlZiBfX0VES0lJX01J R1JBVEVEX0ZWX0lORk9fR1VJRF9IX18gZGlmZiAtLWdpdA0KPiA+ID4gYS9NZGVNb2R1bGVQa2cv TWRlTW9kdWxlUGtnLmRlYw0KPiA+IGIvTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kZWMgaW5k ZXgNCj4gPiA+IGRkMTgyYzAyZmRmNi4uZDZjYmNjNzIxYTVlIDEwMDY0NA0KPiA+ID4gLS0tIGEv TWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kZWMNCj4gPiA+ICsrKyBiL01kZU1vZHVsZVBrZy9N ZGVNb2R1bGVQa2cuZGVjDQo+ID4gPiBAQCAtNDE2LDcgKzQxNiw4IEBADQo+ID4gPiAgICBnRWRr aWlDYXBzdWxlT25EaXNrTmFtZUd1aWQgPSB7IDB4OThjODBhNGYsIDB4ZTE2YiwgMHg0ZDExLCB7 IDB4OTMsDQo+ID4gPiAweDlhLCAweGFiLCAweGU1LCAweDYxLCAweDI2LCAweDMsIDB4MzAgfSB9 DQo+ID4gPg0KPiA+ID4gICAgIyMgSW5jbHVkZS9HdWlkL01pZ3JhdGVkRnZJbmZvLmgNCj4gPiA+ IC0gIGdFZGtpaU1pZ3JhdGVkRnZJbmZvR3VpZCA9IHsgMHhjMWFiMTJmNywgMHg3NGFhLCAweDQw OGQsIHsgMHhhMiwNCj4gPiA+IDB4ZjQsIDB4YzYsIDB4Y2UsIDB4ZmQsIDB4MTcsIDB4OTgsIDB4 NzEgfSB9DQo+ID4gPiArICBnRWRraWlUb01pZ3JhdGVGdkluZm9HdWlkID0geyAweGI0YjE0MGE1 LCAweDcyZjYsIDB4NGMyMSwgeyAweDkzLA0KPiA+ID4gMHhlNCwgMHhhYywgMHhjNCwgMHhlYywg MHhjYiwgMHgyMywgMHgyMyB9IH0NCj4gPiA+ICsgIGdFZGtpaU1pZ3JhdGVkRnZJbmZvR3VpZCAg PSB7IDB4YzFhYjEyZjcsIDB4NzRhYSwgMHg0MDhkLCB7IDB4YTIsDQo+ID4gPiAweGY0LCAweGM2 LCAweGNlLCAweGZkLCAweDE3LCAweDk4LCAweDcxIH0gfQ0KPiA+ID4NCj4gPiA+ICAgICMjIElu Y2x1ZGUvR3VpZC9SbmdBbGdvcml0aG0uaA0KPiA+ID4gICAgZ0Vka2lpUm5nQWxnb3JpdGhtVW5T YWZlID0geyAweDg2OWY3MjhjLCAweDQwOWQsIDB4NGFiNCwgezB4YWMsDQo+ID4gPiAweDAzLCAw eDcxLCAweGQzLCAweDA5LCAweGMxLCAweGIzLCAweGY0IH19DQo+ID4gPiAtLQ0KPiA+ID4gMi4y OS4yLndpbmRvd3MuMg0KPiA+DQo+ID4NCj4gPg0KPiA+DQo+ID4NCj4gDQo+IA0KPiANCj4gDQo+ IA0KPiANCj4gDQoNCg0KCi09LT0tPS09LT0tPS09LT0tPS09LT0tCkdyb3Vwcy5pbyBMaW5rczog WW91IHJlY2VpdmUgYWxsIG1lc3NhZ2VzIHNlbnQgdG8gdGhpcyBncm91cC4KVmlldy9SZXBseSBP bmxpbmUgKCMxMTE5NjQpOiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS8x MTE5NjQKTXV0ZSBUaGlzIFRvcGljOiBodHRwczovL2dyb3Vwcy5pby9tdC8xMDI5MDg1NzIvNzY4 NjE3NgpHcm91cCBPd25lcjogZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMuaW8KVW5zdWJzY3JpYmU6 IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9sZWF2ZS8xMjM2NzExMS83Njg2MTc2LzE5 MTM0NTYyMTIveHl6enkgW3JlYmVjY2FAb3BlbmZ3LmlvXQotPS09LT0tPS09LT0tPS09LT0tPS09 LQoKDQo=