From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (NAM10-DM6-obe.outbound.protection.outlook.com [40.107.93.51]) by mx.groups.io with SMTP id smtpd.web11.279.1636066392624443907 for ; Thu, 04 Nov 2021 15:53:12 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@nvidia.com header.s=selector2 header.b=EWyqGFEo; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: nvidia.com, ip: 40.107.93.51, mailfrom: bobm@nvidia.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jptwIIYMJSgVb8DfbPLp8ExQwaEOu621+m8tP5j48TblTBsllViziq7KjT/BmqxN9yysBOX3yORK7BAsKdPq4Cpjlulisv74AgGfaLZOp/AGVtBDZSjb8yCL0XcqIwdxzMS4hpWsYQPNsTyvcG+zrUh5PgLLWBDgCAGL9dydUVjG+Lkaha4SrCIe/l58Ko7c2izMdNBEfad7I7fBnAgxBa45oEwMdPgtjwaZNN1w69kwndeZIFdCsRKK9uSSwjm6zkMhRMr4RyUqr24hi1YKK9WaCNWcjXb6LG3xcrJ5BIjvqMedGbG9rhy8Je/LWGTSi93n762HZACXODChXGw6YA== 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=wgLfQA23ucn0+/TJZoLUmvuBeJzMG+EXuINadA9/FUU=; b=baTTegHU0XDEYzEUKGS3GZCk05M2NTSu5ajR6383UIxGoDKGAQ9mlX1lWaRyjN5/DwkyKK+WbCrOi7Dh3xRoQ6ExJiwWI35CzivsvgHjRErP7nEyeV/m0m0sM8jCbY1GHT9PW5HZ2BM//Js9pX+rBq7D14xNLTzIYj4fdgu1aQJJjpfToq0bIsheC+HPGVNsR5pFkQjDXQ5aCn1Y2wYnff3KQM2rwuVwO00r9yKujtueo3LTMFAPmkRGGJyMDIaD4K5PCQ0/qLnYY2aZ7TA181hgq4FVeWm+B4mjLNJOELjEIbo2azte84i0ggqeJCajfoLwMZJVf+8ult7iU/TrqA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wgLfQA23ucn0+/TJZoLUmvuBeJzMG+EXuINadA9/FUU=; b=EWyqGFEoo1q8cf6RBI7TLcufTKOpcjPIi6FvGzUHpe7lS5i83Phh6LsvptXlydz3CU2DqrXHPEYoLpF62MZ5lvPsn1+3tNnWM0rWw3fY2sRHsG80JvkFyqe1dUXoTDRD+d1spB/KsbIwnUkWuS+G2TWIlFXzZcLA0LPkqdNqJik6144SLzGrIvOnLfdfhLqy1gbQVBNtj+TcnvtXHuWLQL+qErPUWsm+UoxyIlAe+q0X4Sl0TPHZ7O5m0yWfnr//6z/10kqvCxus7eeAvC0p5hb15Pp6mSNdjao/IjhPqBQpxJ5dSmotty/MoieYNT9tOgxl2iF5hU2OfL9FLrfowg== Received: from DM6PR12MB4779.namprd12.prod.outlook.com (2603:10b6:5:172::23) by DM6PR12MB4925.namprd12.prod.outlook.com (2603:10b6:5:1b7::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Thu, 4 Nov 2021 22:53:11 +0000 Received: from DM6PR12MB4779.namprd12.prod.outlook.com ([fe80::f80c:8b3a:b5c2:4959]) by DM6PR12MB4779.namprd12.prod.outlook.com ([fe80::f80c:8b3a:b5c2:4959%7]) with mapi id 15.20.4649.019; Thu, 4 Nov 2021 22:53:10 +0000 From: "Bob Morgan" To: "devel@edk2.groups.io" , "gaoliming@byosoft.com.cn" CC: 'Jian J Wang' , 'Guomin Jiang' Subject: Re: [edk2-devel] [PATCH] MdeModulePkg/DxeCapsuleLibFmp: Add runtime SetImage support Thread-Topic: [edk2-devel] [PATCH] MdeModulePkg/DxeCapsuleLibFmp: Add runtime SetImage support Thread-Index: AQHXxSV6LuetJ3n94Ei2goGBL70eUavpRlaAgAEI8cCABTUIgIAEio9w Date: Thu, 4 Nov 2021 22:53:10 +0000 Message-ID: References: <00a801d7cc68$50cebc70$f26c3550$@byosoft.com.cn> <002c01d7cf87$4db94100$e92bc300$@byosoft.com.cn> In-Reply-To: <002c01d7cf87$4db94100$e92bc300$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 836f0374-e75f-490b-34b6-08d99fe5e03c x-ms-traffictypediagnostic: DM6PR12MB4925: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2YPwxDux8Ilh7sLLmvV4mFNAsq6YlTL+E9SNHpPODf+GWD4TAiPFdoBV+gd5ioQH2RklxRR4yqidGFIe94tLMLARDJpRa1n9wgG4suTbx9bjMptZG4zMqGr52rZmGOdLCvOaYkxrG8/IXXNejF7feU0HVCCd7fpUoZJbJoXe1ks6PAsXzVf4xGpXKVDPCbOCR9CpImTXc1HfmC1iqXddHTYLhN2Ko/Y45QNKLO+7e4ZyC946SAOlRI55Rss8wn6ldRC+WUKtEFG/cUz6RiHTQ/bmKwLMNQUiSCz05EecS7fAh4VHCT2brGIujYyO2hoETP5LPhz9huxZ9/fyBlLppjPlbcO69rhXZLEfyaSTbUC+gwYIaita4wx08Yy6xSiqfSevrUBPCrGuBldWXXgwKFmL47vtqwO7rnkzi8ezwv9HNcbvbMKKpKi3gvhcNZpovB75hIWO7N5mJ0v8AUJR3Eh7hmmiuJ/h5OEnUZYfSFDj6gZfIAvPyUOKYx236FpY5sFd1T6N6jmI3QrwM4hgyCA6jmpM9jlVu0dF+6OlmraPcYe1FExzRoCXsPk/P6JFSHV1+n//F0XlbJObcjLYXJ+gLDJ1pr5vUUQvG9Mi0vR6pQcvLBHOyisc59kF/yG652ra30uwqxtA0VITW9i+wItLq2bjy44Pf+IYlXnT9UezdgznfGlCX4SY5XKR42yeJVoSqtmCUR/YwGHXRg5ZmRv/OwqRPMwWpI/s6eJsTeCexCO4jmw0IKo4tN2OteUynBItDx6b62NDVy7FPdtQ+25DK9iZlfhOfuqIZ2W6dTI= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR12MB4779.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(71200400001)(122000001)(53546011)(26005)(8936002)(54906003)(52536014)(33656002)(5660300002)(6506007)(38070700005)(9686003)(38100700002)(4326008)(2906002)(110136005)(86362001)(966005)(316002)(8676002)(186003)(55016002)(76116006)(7696005)(66476007)(30864003)(66556008)(64756008)(83380400001)(508600001)(66446008)(66946007)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WUhxVFZ4dmxTSS8wVGUrcWNXVStVQTh0RSt6Z2JiRlorMmgvS1JFV0ovWmdW?= =?utf-8?B?ZWZqWG1RL1F1eXJSN0V1SlRNd3BRNmRWTDlKYUJYQ3M5a0EwTEhpS3g2N0pB?= =?utf-8?B?U09kL1JuRWZvN1g0a1NEcEtzU2JWZE1ZZVM1c2ljMWk2dGhuRXFyZFVCcWxL?= =?utf-8?B?RDh1dE54dlhTYmI0QVRCVkV6d2RCYndVckdDRlAvbmg0emxvM3lJS3ZnblNp?= =?utf-8?B?eWh1TitLbTJFcUprSU94VXlsM3lFRGRldndMdUVJMEx6bGZQNWpoV2lyUUFo?= =?utf-8?B?UzFFakRNWTIwTTBkNmttNTdxZ1FZMFQ0eGN6UmxnUzU4c2xoVUhRUzdlNkJu?= =?utf-8?B?SDBSNUxyZmpKYVN2MFpSNlNoYVJOcUptRTNLOG0xdDQ5ZkUrWWdnOTFvZGVt?= =?utf-8?B?ZDdEMWZYSTh1ZmpVSUVLZTZ3K3Y4M3dGSHEwOEIxNXl1N1NsMXAwVUlXWURr?= =?utf-8?B?dDBQMTVFbjVvamZ2UGVUbWdmc2dkcWhOcVBhTXdHQWFrZHVLUVlkc1o1ZFE4?= =?utf-8?B?ZnlsUFcwenJuUGt3NlRqRldVaDNnTExuSGQ1QTF3N3pjVEpOeXdlQ2tJaFVL?= =?utf-8?B?Q3Y0U3hta1d0MFBnYlZ0SUtud2ozOXlZQUt5MDAwbkZ0OUJ3cDhXS2dWY0dH?= =?utf-8?B?ZFhUYk1ZQms2cm1rWEVKTy81ZUloNGVzYlYyWjcxMDA2eUMxOWNybmFUK3d1?= =?utf-8?B?TWpURTI1L0lBWmhRYjJnT0FPTWNpbFdIdU45dWJReFV6VGpGVnJFWlFzRS9u?= =?utf-8?B?dnVDblBJUUZLSkR5NjZNaFVHMzRGUGg3NnNYbGltOFAwTFROMXhMOVZRWTN2?= =?utf-8?B?WjRsa0N6VUkzZlFBM2VtYk9zdGtGNGRpd1djNlRrT0hQcVNpT3YrMTVIZ0NS?= =?utf-8?B?ekMyVVA4SWhDNmV1eWJKMFhiZG1sM1ZwTjlZNjJIa05GQm9SR2lwUUhKT1k0?= =?utf-8?B?RVFBYWpPdEczbHNEUnlkRUQyVlBpV0llY01Uek9jQkF4UHViTSswSVFOYXZ0?= =?utf-8?B?MzY2QW5zVzQrc0xuUUNnOU1XemU3eGZENmRBU3BlL0ZUQU1IWVVDYkVoYy9Q?= =?utf-8?B?UXhSK0QwbVBic2VpWThjL042c2RXOU95bG80MTFNektYeTFHcmV6Q3EvQmNV?= =?utf-8?B?aVhMVHQ4WEF4SlJGbXAvWFdHb3VacnRjbGpUb1JoY2tqNTFWMFNZSnhjSWV2?= =?utf-8?B?NTlrVndqQW5KVHJaTjNqZGdCUjFZZ0ptcldqVWpwUTYvN0lYWFVsQmdKTldD?= =?utf-8?B?REl6Q1pqeXhRWmpueE83WmdDZkUwTklaWUlKNThkN2lHUElNM0ZOZ0Z5Wlcz?= =?utf-8?B?UzdlYnBzV1pKZVZOM0E3VUUxVU9jUFpZazBUNWVyU2V2UFlScUZGQ0QrMDJh?= =?utf-8?B?Q3V2RlM3Q2xwRHU3d2svWUY5dWQ4eHBuaFhRVGo2RDVPZ3dXaDBuallSVEg0?= =?utf-8?B?ZXhkaFRzUmE1SnJLSjkvcUVFMnpxVjVBaVBEVUM1QzNOb2tDK3N4UW9oUm0v?= =?utf-8?B?T0kyVFUvL1kyS0sxdzJPcjJPTWZzZndXVUZqTUtHOUxxZXFiY3dUOTZialZh?= =?utf-8?B?UHQ2ODF3ZStmdVVwZ0dESG1PaktIdCtUanZ6Y1JQZVZtWnJXR2V3L3MzUWM4?= =?utf-8?B?L2Jyc3d4NFJwQy9kcEdVNHVIMjdvcG1zQW1pb2pybFVGTzl3TWlLaXhMQyto?= =?utf-8?B?L3NoY0Vubm5Ic25KVFd5UEFQVjROcU96enZCSUd2UGU4U1JVTDJUVnlrdnh5?= =?utf-8?B?Wm1VaElHeEF1THdaOUxuVlpwTW1xbkthS2tqVHY1ZDc4ejlBbUp2K3V5SmlN?= =?utf-8?B?b2Z1VDQ4c0JWdFlPOFNQSkgrV2s3Qk1ZWHdyclowT0JySHFjWXdLMDVYY1Nt?= =?utf-8?B?cG4weGxPOUkxRXVha0UrcHg0Si8wbXVYNldRN00xejZmVzZDQnNscWt1bjdC?= =?utf-8?B?Z1QrYko2ZzZmVk96RC9aRlM1enVubGlIWUFTV1NmWVJpQUhGNStrK1BYV2o3?= =?utf-8?B?c3M5UVhIR0ZScXVwWWpNT3B1TExYc1dJejZKSnVMME5waEZwZnk5bkorZGVw?= =?utf-8?B?Z3JKSmsxMDQ2Y2pITVh0ZnFmZWdtUXBZTVU2ai9FV3ZPVmhBSUd5aWZlaDBZ?= =?utf-8?Q?HFTQ=3D?= MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB4779.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 836f0374-e75f-490b-34b6-08d99fe5e03c X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Nov 2021 22:53:10.7065 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: UZWrlJFpa8SMQQskCin4IPfZJ/e/MgVhCytxPztzYRs+Sn2ujAj2gp+0TLcyerTk X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4925 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGltaW5nLA0KDQpUaGUgVWVmaSBzcGVjIFZlcnNpb24gMi45IGFwcGVhcnMgdG8gaGF2ZSBz b21lIGluY29uc2lzdGVuY2llcyByZWdhcmRpbmcgdGhlIHBvc3NpYmlsaXR5IG9mIHJ1bnRpbWUg cHJvY2Vzc2luZyBvZiBGTVAgY2Fwc3VsZXMuICAgVGhlIFVwZGF0ZUNhcHN1bGUoKSBydW50aW1l IHNlcnZpY2UgaW4gU2VjdGlvbiA4LjUuMyBzdGF0ZXMgdGhhdCAidGhlIGZpcm13YXJlIG1heSBw cm9jZXNzIHRoZSBjYXBzdWxlIGltbWVkaWF0ZWx5IiwgYnV0IGluIFNlY3Rpb24gMjMuMy4xLCB3 aGVyZSB0aGUgRk1QIGNhcHN1bGUgaXMgZGVzY3JpYmVkLCB0aGUgbGFzdCBwYXJhZ3JhcGggc3Rh dGVzICJCeSBkZWZpbml0aW9uIEZpcm13YXJlIE1hbmFnZW1lbnQgcHJvdG9jb2wgc2VydmljZXMg YXJlIG5vdCBhdmFpbGFibGUgaW4gRUZJIHJ1bnRpbWUiLg0KDQpJIHRoaW5rIHRoZSBmb2xsb3dp bmcgc3BlYyBjaGFuZ2VzIHdvdWxkIGRvY3VtZW50IHRoZSBvcHRpb25hbCBydW50aW1lIEZNUCBj YXBzdWxlIHByb2Nlc3NpbmcgYXMgaW1wbGVtZW50ZWQgaW4gdGhpcyBwYXRjaDoNCg0KMS4gIFJl d29yZCBTZWN0aW9uIDIzLjMuMSBEZXNjcmlwdGlvbiBsYXN0IHBhcmFncmFwaCwgZmlyc3Qgc2Vu dGVuY2UuDQpGcm9tOiAgIkJ5IGRlZmluaXRpb24gRmlybXdhcmUgTWFuYWdlbWVudCBwcm90b2Nv bCBzZXJ2aWNlcyBhcmUgbm90IGF2YWlsYWJsZSBpbiBFRkkgcnVudGltZSBhbmQgZGVwZW5kaW5n IHVwb24gcGxhdGZvcm0gY2FwYWJpbGl0aWVzLCBFRkkgcnVudGltZSBkZWxpdmVyeSBvZiB0aGlz IGNhcHN1bGUgbWF5IG5vdCBiZSBzdXBwb3J0ZWQgYW5kIG1heSByZXR1cm4gYW4gZXJyb3Igd2hl biBkZWxpdmVyZWQgaW4gRUZJIHJ1bnRpbWUgd2l0aCBDQVBTVUxFX0ZMQUdTX1BFUlNJU1RfQUNS T1NTX1JFU0VUIGJpdCBkZWZpbmVkLiINCg0KVG8gc29tZXRoaW5nIGxpa2UgdGhpczogIkRlcGVu ZGluZyB1cG9uIHBsYXRmb3JtIGNhcGFiaWxpdGllcywgRUZJIHJ1bnRpbWUgZGVsaXZlcnkgb3Ig cHJvY2Vzc2luZyBvZiB0aGlzIGNhcHN1bGUgbWF5IG5vdCBiZSBzdXBwb3J0ZWQgYW5kIG1heSBy ZXR1cm4gYW4gZXJyb3Igd2hlbiBkZWxpdmVyZWQgaW4gRUZJIHJ1bnRpbWUuICANCg0KMi4gUmV3 b3JkIFNlY3Rpb24gMjMuMy4zIFN0ZXAgMy4NCkZyb206ICJJZiBzeXN0ZW0gaXMgbm90IGluIGJv b3Qgc2VydmljZXMgYW5kIHBsYXRmb3JtIGRvZXMgbm90IHN1cHBvcnQgcGVyc2lzdGVuY2Ugb2Yg Y2Fwc3VsZSBhY3Jvc3MgcmVzZXQgd2hlbiBpbml0aWF0ZWQgd2l0aGluIEVGSSBSdW50aW1lLCBF RklfT1VUX09GX1JFU09VUkNFUyBlcnJvciBpcyByZXR1cm5lZC4iDQoNClRvIHNvbWV0aGluZyBs aWtlIHRoaXM6ICJJZiBzeXN0ZW0gaXMgbm90IGluIGJvb3Qgc2VydmljZXMgYW5kIHRoZSBDQVBT VUxFX0ZMQUdTX1BFUlNJU1RfQUNST1NTX1JFU0VUIGZsYWcgaXMgc2V0LCBidXQgdGhlIHBsYXRm b3JtIGRvZXMgbm90IHN1cHBvcnQgcGVyc2lzdGVuY2Ugb2YgY2Fwc3VsZSBhY3Jvc3MgcmVzZXQg d2hlbiBpbml0aWF0ZWQgd2l0aGluIEVGSSBSdW50aW1lLCBFRklfT1VUX09GX1JFU09VUkNFUyBl cnJvciBpcyByZXR1cm5lZC4iICAgPDw8QnkgdGhlIHdheSwgVXBkYXRlQ2Fwc3VsZSgpIGN1cnJl bnRseSBhcHBlYXJzIHRvIHJldHVybiBFRklfVU5TVVBQT1JURUQgaW4gdGhpcyBjYXNlLCBzZWUg dGhlIElzUGVyc2lzdEFjcm9zc1Jlc2V0Q2Fwc3VsZVN1cHBvcnRlZCAoKSBjaGVjayBuZWFyIHRo ZSBlbmQ+Pj4NCg0KMy4gIEFkZCBydW50aW1lIEZNUCBzdXBwb3J0IGluZm8gdG8gU2VjdGlvbiAy My4zLjMgU3RlcCAzLg0KSWYgc3lzdGVtIGlzIG5vdCBpbiBib290IHNlcnZpY2VzIGFuZCB0aGUg Q0FQU1VMRV9GTEFHU19QRVJTSVNUX0FDUk9TU19SRVNFVCBmbGFnIGlzIG5vdCBzZXQsIGJ1dCB0 aGUgcGxhdGZvcm0gZG9lcyBub3Qgc3VwcG9ydCBwcm9jZXNzaW5nIG9mIGNhcHN1bGVzIHdpdGhp biBFRkkgUnVudGltZSwgRUZJX09VVF9PRl9SRVNPVVJDRVMgZXJyb3IgaXMgcmV0dXJuZWQuICBJ ZiB0aGUgcGxhdGZvcm0gc3VwcG9ydHMgcHJvY2Vzc2luZyBvZiBjYXBzdWxlcyB3aXRoaW4gRUZJ IFJ1bnRpbWUsIHN0ZXBzIDQtMTAgYXJlIG5vdCBhcHBsaWNhYmxlIGFuZCB0aGUgY2Fwc3VsZXMg YXJlIHByb2Nlc3NlZCBhY2NvcmRpbmcgdG8gc3RlcHMgMTEtMTQuDQoNCkxldCBtZSBrbm93IHdo YXQgeW91IHRoaW5rIGFuZCB3ZSBjYW4gZ2V0IGFuIEVDUiBwcm9jZXNzIHN0YXJ0ZWQgdG8gdXBk YXRlIHRoZSBzcGVjLg0KDQpUaGFua3MsDQoNCi1ib2INCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCkZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4g T24gQmVoYWxmIE9mIGdhb2xpbWluZyB2aWEgZ3JvdXBzLmlvDQpTZW50OiBNb25kYXksIE5vdmVt YmVyIDEsIDIwMjEgNzoxNyBQTQ0KVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBCb2IgTW9yZ2Fu IDxib2JtQG52aWRpYS5jb20+DQpDYzogJ0ppYW4gSiBXYW5nJyA8amlhbi5qLndhbmdAaW50ZWwu Y29tPjsgJ0d1b21pbiBKaWFuZycgPGd1b21pbi5qaWFuZ0BpbnRlbC5jb20+DQpTdWJqZWN0OiDl m57lpI06IFtlZGsyLWRldmVsXSBbUEFUQ0hdIE1kZU1vZHVsZVBrZy9EeGVDYXBzdWxlTGliRm1w OiBBZGQgcnVudGltZSBTZXRJbWFnZSBzdXBwb3J0DQoNCkV4dGVybmFsIGVtYWlsOiBVc2UgY2F1 dGlvbiBvcGVuaW5nIGxpbmtzIG9yIGF0dGFjaG1lbnRzDQoNCg0KQm9iOg0KICBUaGFua3MgZm9y IHlvdXIgZGV0YWlsLiBQY2RSdW50aW1lRm1wQ2Fwc3VsZUltYWdlVHlwZUlkR3VpZCBpcyBlZGsy IGltcGxlbWVudGF0aW9uIHNvbHV0aW9uLiBIYXZlIHlvdSB0aGUgcHJvcG9zYWwgb24gaG93IHRv IHVwZGF0ZSBVRUZJIHNwZWMgdG8gc3VwcG9ydCBydW50aW1lIEZNUCBwcm90b2NvbD8NCg0KVGhh bmtzDQpMaW1pbmcNCj4gLS0tLS3pgq7ku7bljp/ku7YtLS0tLQ0KPiDlj5Hku7bkuro6IGRldmVs QGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4g5Luj6KGoIEJvYiBNb3JnYW4g dmlhIA0KPiBncm91cHMuaW8NCj4g5Y+R6YCB5pe26Ze0OiAyMDIx5bm0MTDmnIgzMOaXpSAxOjU5 DQo+IOaUtuS7tuS6ujogZ2FvbGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBkZXZl bEBlZGsyLmdyb3Vwcy5pbw0KPiDmioTpgIE6ICdKaWFuIEogV2FuZycgPGppYW4uai53YW5nQGlu dGVsLmNvbT47ICdHdW9taW4gSmlhbmcnDQo+IDxndW9taW4uamlhbmdAaW50ZWwuY29tPg0KPiDk uLvpopg6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBNZGVNb2R1bGVQa2cvRHhlQ2Fwc3VsZUxp YkZtcDogQWRkIA0KPiBydW50aW1lIFNldEltYWdlIHN1cHBvcnQNCj4NCj4gSGkgTGltaW5nLCAg U2VlIGlubGluZSBiZWxvdy4NCj4NCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ IEZyb206IGdhb2xpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0KPiA+IFNlbnQ6IFRo dXJzZGF5LCBPY3RvYmVyIDI4LCAyMDIxIDc6NTcgUE0NCj4gPiBUbzogZGV2ZWxAZWRrMi5ncm91 cHMuaW87IEJvYiBNb3JnYW4gPGJvYm1AbnZpZGlhLmNvbT4NCj4gPiBDYzogJ0ppYW4gSiBXYW5n JyA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgJ0d1b21pbiBKaWFuZycNCj4gPiA8Z3VvbWluLmpp YW5nQGludGVsLmNvbT4NCj4gPiBTdWJqZWN0OiDlm57lpI06IFtlZGsyLWRldmVsXSBbUEFUQ0hd IE1kZU1vZHVsZVBrZy9EeGVDYXBzdWxlTGliRm1wOg0KPiA+IEFkZCBydW50aW1lIFNldEltYWdl IHN1cHBvcnQNCj4gPg0KPiA+IEV4dGVybmFsIGVtYWlsOiBVc2UgY2F1dGlvbiBvcGVuaW5nIGxp bmtzIG9yIGF0dGFjaG1lbnRzDQo+ID4NCj4gPg0KPiA+IEJvYjoNCj4gPiAgIEkgdGhpbmsgdGhp cyBwYXRjaCBuZWVkcyB0byB3b3JrIHRvZ2V0aGVyIHdpdGggdGhlIGNoYW5nZXMgb2YNCj4gPiBG bXBEZXZpY2VQa2c6IEFkZCBzdXBwb3J0IGZvciBydW50aW1lIEZtcER4ZSBkcml2ZXIuDQo+DQo+ IFllcywgdGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgdG8gcHJvY2VzcyBGTVAgY2Fwc3VsZXMgYXQg cnVudGltZSBpZiB0aGUgDQo+IGNhcHN1bGXigJlzIFVwZGF0ZUltYWdlVHlwZUlkIGlzIHN1cHBv cnRlZCBieSBhIHJ1bnRpbWUtY2FwYWJsZSBGbXBEeGUgDQo+IGRyaXZlciAoZS5nLiB1c2luZyB0 aGUgRm1wRGV2aWNlUGtnICBwYXRjaCB5b3UgbWVudGlvbmVkKS4gIFRoZSANCj4gUGNkU3VwcG9y dFByb2Nlc3NDYXBzdWxlQXRSdW50aW1lIFBDRCBtdXN0IGJlIFRSVUUgYW5kIHRoZSBjYXBzdWxl 4oCZcyANCj4gQ0FQU1VMRV9GTEFHU19QRVJTSVNUX0FDUk9TU19SRVNFVCBmbGFnIG11c3QgYmUg RkFMU0UuDQo+ID4NCj4gPiAgIENhcHN1bGUgaXMgcnVudGltZSBzZXJ2aWNlLiBJZiBpdCBjb25z dW1lcyBGTVAgdG8gZG8gdXBkYXRlLCBGTVAgDQo+ID4gc2VydmljZSBjYW4gc3VwcG9ydCBydW50 aW1lLiBCdXQsIGhvdyBkb2VzIENhcHN1bGUga25vdyB3aGV0aGVyIEZNUCANCj4gPiBwcm90b2Nv bCBzdXBwb3J0cyBydW50aW1lIG9yIG5vdD8NCj4NCj4gUmlnaHQsIHRoaXMgcGF0Y2ggcmVxdWly ZXMgYW4gaW1wbGVtZW50YXRpb24gdG8gbGlzdCB0aGUgRk1QIA0KPiBJbWFnZVR5cGVJZCBHVUlE cyBzdXBwb3J0ZWQgYnkgYW55IHJ1bnRpbWUtY2FwYWJsZSBGbXBEeGUgZHJpdmVycyBpbiANCj4g dGhlIG5ldyBQY2RSdW50aW1lRm1wQ2Fwc3VsZUltYWdlVHlwZUlkR3VpZCBhcnJheSBQQ0QuICBU aGlzIFBDRCBpcyANCj4gdXNlZCBieSB0aGUgbmV3ICBJbml0aWFsaXplUnVudGltZUZtcEFycmF5 cygpIGZ1bmN0aW9uIGR1cmluZyANCj4gRHhlUnVudGltZUNhcHN1bGVMaWIgaW5pdGlhbGl6YXRp b24gdG8gZmluZCB0aGUgRk1QIGluc3RhbmNlcyB0aGF0IA0KPiBzdXBwb3J0IHRob3NlIEltYWdl VHlwZUlkcyBhbmQgc2F2ZSB0aGVpciANCj4gRUZJX0ZJUk1XQVJFX01BTkFHRU1FTlRfUFJPVE9D T0wgcHJvdG9jb2wgc3RydWN0dXJlIHBvaW50ZXJzIGZvciANCj4gcnVudGltZSB1c2UgZHVyaW5n IGNhcHN1bGUgcHJvY2Vzc2luZy4NCj4NCj4gV2hlbiBQcm9jZXNzRm1wQ2Fwc3VsZUltYWdlKCkg ZXhlY3V0ZXMgaXRzIHN0ZXAg4oCYMi4gUm91dGUgcGF5bG9hZCB0byANCj4gcmlnaHQgRk1QIGlu c3RhbmNl4oCZLCBpdCBkZXRlY3RzIHJ1bnRpbWUgZXhlY3V0aW9uIGFuZCB1c2VzIHRoZSBzYXZl ZCANCj4gcnVudGltZS1jYXBhYmxlIEZNUCBwcm90b2NvbCBzdHJ1Y3R1cmUgcG9pbnRlciBpZiBp dHMgSW1hZ2VUeXBlSWQgDQo+IG1hdGNoZXMgdGhhdCBvZiB0aGUgY2Fwc3VsZSBiZWluZyBwcm9j ZXNzZWQuDQo+DQo+IEkgaG9wZSB0aGF0IGhlbHBzLiAgUGxlYXNlIGxldCBtZSBrbm93IGlmIGFk ZGl0aW9uYWwgY2xhcmlmaWNhdGlvbiBpcyBuZWVkZWQuDQo+DQo+IFRoYW5rcywNCj4gLWJvYg0K PiA+DQo+ID4gVGhhbmtzDQo+ID4gTGltaW5nDQo+ID4gPiAtLS0tLemCruS7tuWOn+S7ti0tLS0t DQo+ID4gPiDlj5Hku7bkuro6IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vw cy5pbz4g5Luj6KGoIEJvYg0KPiBNb3JnYW4NCj4gPiB2aWENCj4gPiA+IGdyb3Vwcy5pbw0KPiA+ ID4g5Y+R6YCB5pe26Ze0OiAyMDIx5bm0MTDmnIgyMOaXpSA0OjExDQo+ID4gPiDmlLbku7bkuro6 IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiDmioTpgIE6IEJvYiBNb3JnYW4gPGJvYm1AbnZp ZGlhLmNvbT47IEppYW4gSiBXYW5nDQo+ID4gPGppYW4uai53YW5nQGludGVsLmNvbT47DQo+ID4g PiBMaW1pbmcgR2FvIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBHdW9taW4gSmlhbmcgDQo+ ID4gPiA8Z3VvbWluLmppYW5nQGludGVsLmNvbT4NCj4gPiA+IOS4u+mimDogW2VkazItZGV2ZWxd IFtQQVRDSF0gTWRlTW9kdWxlUGtnL0R4ZUNhcHN1bGVMaWJGbXA6IEFkZA0KPiA+IHJ1bnRpbWUN Cj4gPiA+IFNldEltYWdlIHN1cHBvcnQNCj4gPiA+DQo+ID4gPiBBZGRzIG9wdGlvbmFsIHN1cHBv cnQgZm9yIHByb2Nlc3NpbmcgRk1QIGNhcHVzbGUgaW1hZ2VzIGFmdGVyDQo+ID4gPiBFeGl0Qm9v dFNlcnZpY2VzKCkgaWYgdGhlIEltYWdlVHlwZUlkR3VpZCBpcyBtZW50aW9uZWQgaW4gdGhlIG5l dyANCj4gPiA+IFBjZFJ1bnRpbWVGbXBDYXBzdWxlSW1hZ2VUeXBlSWRHdWlkIGxpc3QuDQo+ID4g Pg0KPiA+ID4gQ2M6IEppYW4gSiBXYW5nIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+ID4gPiBD YzogTGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0KPiA+ID4gQ2M6IEd1b21p biBKaWFuZyA8Z3VvbWluLmppYW5nQGludGVsLmNvbT4NCj4gPiA+IFNpZ25lZC1vZmYtYnk6IEJv YiBNb3JnYW4gPGJvYm1AbnZpZGlhLmNvbT4NCj4gPiA+IC0tLQ0KPiA+ID4gIC4uLi9MaWJyYXJ5 L0R4ZUNhcHN1bGVMaWJGbXAvRHhlQ2Fwc3VsZUxpYi5jICB8ICA4MSArKysrKysrKystLS0NCj4g PiA+ICAuLi4vRHhlQ2Fwc3VsZUxpYkZtcC9EeGVDYXBzdWxlUnVudGltZS5jICAgICAgfCAxMTkN Cj4gPiA+ICsrKysrKysrKysrKysrKysrKw0KPiA+ID4gIC4uLi9EeGVDYXBzdWxlTGliRm1wL0R4 ZVJ1bnRpbWVDYXBzdWxlTGliLmluZiB8ICAgNCArDQo+ID4gPiAgTWRlTW9kdWxlUGtnL01kZU1v ZHVsZVBrZy5kZWMgICAgICAgICAgICAgICAgIHwgICA3ICstDQo+ID4gPiAgNCBmaWxlcyBjaGFu Z2VkLCAxOTIgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pDQo+ID4gPg0KPiA+ID4gZGlm ZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9MaWJyYXJ5L0R4ZUNhcHN1bGVMaWJGbXAvRHhlQ2Fwc3Vs ZUxpYi5jDQo+ID4gPiBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L0R4ZUNhcHN1bGVMaWJGbXAvRHhl Q2Fwc3VsZUxpYi5jDQo+ID4gPiBpbmRleCA5MDk0MjEzNWQ3Li4wMDAwZjkxYzZhIDEwMDY0NA0K PiA+ID4gLS0tIGEvTWRlTW9kdWxlUGtnL0xpYnJhcnkvRHhlQ2Fwc3VsZUxpYkZtcC9EeGVDYXBz dWxlTGliLmMNCj4gPiA+ICsrKyBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L0R4ZUNhcHN1bGVMaWJG bXAvRHhlQ2Fwc3VsZUxpYi5jDQo+ID4gPiBAQCAtMTAsNiArMTAsNyBAQA0KPiA+ID4gICAgVmFs aWRhdGVGbXBDYXBzdWxlKCksIGFuZCBEaXNwbGF5Q2Fwc3VsZUltYWdlKCkgcmVjZWl2ZXMgDQo+ ID4gPiB1bnRydXN0ZWQgaW5wdXQgYW5kDQo+ID4gPiAgICBwZXJmb3JtcyBiYXNpYyB2YWxpZGF0 aW9uLg0KPiA+ID4NCj4gPiA+ICsgIENvcHlyaWdodCAoYykgMjAyMSwgTlZJRElBIENPUlBPUkFU SU9OLiBBbGwgcmlnaHRzIA0KPiA+ID4gKyByZXNlcnZlZC48QlI+DQo+ID4gPiAgICBDb3B5cmln aHQgKGMpIDIwMTYgLSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQo+ID4gPiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBh dGVudA0KPiA+ID4NCj4gPiA+IEBAIC00MSw2ICs0MiwxMSBAQA0KPiA+ID4gICNpbmNsdWRlIDxQ cm90b2NvbC9GaXJtd2FyZU1hbmFnZW1lbnRQcm9ncmVzcy5oPg0KPiA+ID4gICNpbmNsdWRlIDxQ cm90b2NvbC9EZXZpY2VQYXRoLmg+DQo+ID4gPg0KPiA+ID4gK0JPT0xFQU4gKEVGSUFQSSAqbUxp YkF0UnVudGltZUZ1bmN0aW9uKSAoVk9JRCkNCj4gPQ0KPiA+ID4gTlVMTDsNCj4gPiA+ICtFRklf RklSTVdBUkVfTUFOQUdFTUVOVF9QUk9UT0NPTCAgICAqbVJ1bnRpbWVGbXANCj4gPiA+ID0gTlVM TDsNCj4gPiA+ICtWT0lEDQo+ICoqbVJ1bnRpbWVGbXBQcm90b2NvbEFycmF5DQo+ID4gPiA9IE5V TEw7DQo+ID4gPiArRUZJX0dVSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm1SdW50aW1l Rm1wR3VpZEFycmF5DQo+ID4gPiA9IE5VTEw7DQo+ID4gPiArDQo+ID4gPiAgRUZJX1NZU1RFTV9S RVNPVVJDRV9UQUJMRSAqbUVzcnRUYWJsZSAgICAgICAgICAgICAgICAgID0NCj4gTlVMTDsNCj4g PiA+ICBCT09MRUFOICAgICAgICAgICAgICAgICAgIG1Jc1ZpcnR1YWxBZGRyQ29udmVydGVkICAg ICAgPQ0KPiBGQUxTRTsNCj4gPiA+DQo+ID4gPiBAQCAtNTUxLDYgKzU1NywxMSBAQCBEdW1wQWxs Rm1wSW5mbyAoDQo+ID4gPiAgICBVSU5UMzINCj4gUGFja2FnZVZlcnNpb247DQo+ID4gPiAgICBD SEFSMTYNCj4gPiA+ICpQYWNrYWdlVmVyc2lvbk5hbWU7DQo+ID4gPg0KPiA+ID4gKyAgLy8gRHVt cCBub3Qgc3VwcG9ydGVkIGF0IHJ1bnRpbWUuDQo+ID4gPiArICBpZiAoKG1MaWJBdFJ1bnRpbWVG dW5jdGlvbiAhPSBOVUxMKSAmJiBtTGliQXRSdW50aW1lRnVuY3Rpb24gKCkpIHsNCj4gPiA+ICsg ICAgcmV0dXJuOw0KPiA+ID4gKyAgfQ0KPiA+ID4gKw0KPiA+ID4gICAgU3RhdHVzID0gZ0JTLT5M b2NhdGVIYW5kbGVCdWZmZXIgKA0KPiA+ID4gICAgICAgICAgICAgICAgICAgIEJ5UHJvdG9jb2ws DQo+ID4gPiAgICAgICAgICAgICAgICAgICAgJmdFZmlGaXJtd2FyZU1hbmFnZW1lbnRQcm90b2Nv bEd1aWQsDQo+ID4gPiBAQCAtOTA2LDI1ICs5MTcsMzUgQEAgU2V0Rm1wSW1hZ2VEYXRhICgNCj4g PiA+ICAgIENIQVIxNg0KPiAqQWJvcnRSZWFzb247DQo+ID4gPiAgICBFRklfRklSTVdBUkVfTUFO QUdFTUVOVF9VUERBVEVfSU1BR0VfUFJPR1JFU1MNCj4gPiA+IFByb2dyZXNzQ2FsbGJhY2s7DQo+ ID4gPg0KPiA+ID4gLSAgU3RhdHVzID0gZ0JTLT5IYW5kbGVQcm90b2NvbCgNCj4gPiA+IC0gICAg ICAgICAgICAgICAgICBIYW5kbGUsDQo+ID4gPiAtICAgICAgICAgICAgICAgICAgJmdFZmlGaXJt d2FyZU1hbmFnZW1lbnRQcm90b2NvbEd1aWQsDQo+ID4gPiAtICAgICAgICAgICAgICAgICAgKFZP SUQgKiopJkZtcA0KPiA+ID4gLSAgICAgICAgICAgICAgICAgICk7DQo+ID4gPiAtICBpZiAoRUZJ X0VSUk9SKFN0YXR1cykpIHsNCj4gPiA+IC0gICAgcmV0dXJuIFN0YXR1czsNCj4gPiA+IC0gIH0N Cj4gPiA+ICsgIC8vIElmIG5vdCB1c2luZyBvcHRpb25hbCBydW50aW1lIHN1cHBvcnQsIGdldCBG TVAgcHJvdG9jb2wgZm9yIA0KPiA+ID4gKyBnaXZlbg0KPiA+ID4gSGFuZGxlLg0KPiA+ID4gKyAg Ly8gT3RoZXJ3aXNlLCB1c2UgdGhlIG9uZSBzYXZlZCBieSBQcm9jZXNzRm1wQ2Fwc3VsZUltYWdl KCkuDQo+ID4gPiArICBpZiAoKG1MaWJBdFJ1bnRpbWVGdW5jdGlvbiA9PSBOVUxMKSB8fCAhbUxp YkF0UnVudGltZUZ1bmN0aW9uICgpKSB7DQo+ID4gPiArICAgIFN0YXR1cyA9IGdCUy0+SGFuZGxl UHJvdG9jb2woDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICBIYW5kbGUsDQo+ID4gPiArICAg ICAgICAgICAgICAgICAgICAmZ0VmaUZpcm13YXJlTWFuYWdlbWVudFByb3RvY29sR3VpZCwNCj4g PiA+ICsgICAgICAgICAgICAgICAgICAgIChWT0lEICoqKSZGbXANCj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICk7DQo+ID4gPiArICAgIGlmIChFRklfRVJST1IoU3RhdHVzKSkgew0KPiA+ID4g KyAgICAgIHJldHVybiBTdGF0dXM7DQo+ID4gPiArICAgIH0NCj4gPiA+DQo+ID4gPiAtICAvLw0K PiA+ID4gLSAgLy8gTG9va3VwIEZpcm13YXJlIE1hbmFnZW1lbnQgUHJvZ3Jlc3MgUHJvdG9jb2wg YmVmb3JlIA0KPiA+ID4gU2V0SW1hZ2UoKSBpcyBjYWxsZWQNCj4gPiA+IC0gIC8vIFRoaXMgaXMg YW4gb3B0aW9uYWwgcHJvdG9jb2wgdGhhdCBtYXkgbm90IGJlIHByZXNlbnQgb24gSGFuZGxlLg0K PiA+ID4gLSAgLy8NCj4gPiA+IC0gIFN0YXR1cyA9IGdCUy0+SGFuZGxlUHJvdG9jb2wgKA0KPiA+ ID4gLSAgICAgICAgICAgICAgICAgIEhhbmRsZSwNCj4gPiA+IC0NCj4gJmdFZGtpaUZpcm13YXJl TWFuYWdlbWVudFByb2dyZXNzUHJvdG9jb2xHdWlkLA0KPiA+ID4gLSAgICAgICAgICAgICAgICAg IChWT0lEICoqKSZtRm1wUHJvZ3Jlc3MNCj4gPiA+IC0gICAgICAgICAgICAgICAgICApOw0KPiA+ ID4gLSAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ID4gKyAgICAvLw0KPiA+ID4gKyAg ICAvLyBMb29rdXAgRmlybXdhcmUgTWFuYWdlbWVudCBQcm9ncmVzcyBQcm90b2NvbCBiZWZvcmUN Cj4gU2V0SW1hZ2UoKQ0KPiA+ID4gaXMgY2FsbGVkDQo+ID4gPiArICAgIC8vIFRoaXMgaXMgYW4g b3B0aW9uYWwgcHJvdG9jb2wgdGhhdCBtYXkgbm90IGJlIHByZXNlbnQgb24gSGFuZGxlLg0KPiA+ ID4gKyAgICAvLw0KPiA+ID4gKyAgICBTdGF0dXMgPSBnQlMtPkhhbmRsZVByb3RvY29sICgNCj4g PiA+ICsgICAgICAgICAgICAgICAgICAgIEhhbmRsZSwNCj4gPiA+ICsNCj4gPiA+ICZnRWRraWlG aXJtd2FyZU1hbmFnZW1lbnRQcm9ncmVzc1Byb3RvY29sR3VpZCwNCj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgIChWT0lEICoqKSZtRm1wUHJvZ3Jlc3MNCj4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICk7DQo+ID4gPiArICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPiA+ICsgICAg ICBtRm1wUHJvZ3Jlc3MgPSBOVUxMOw0KPiA+ID4gKyAgICB9DQo+ID4gPiArICB9IGVsc2Ugew0K PiA+ID4gKyAgICBpZiAobVJ1bnRpbWVGbXAgPT0gTlVMTCkgew0KPiA+ID4gKyAgICAgIHJldHVy biBFRklfVU5TVVBQT1JURUQ7DQo+ID4gPiArICAgIH0NCj4gPiA+ICsgICAgRm1wID0gbVJ1bnRp bWVGbXA7DQo+ID4gPiAgICAgIG1GbXBQcm9ncmVzcyA9IE5VTEw7DQo+ID4gPiAgICB9DQo+ID4g Pg0KPiA+ID4gQEAgLTEyNTksNiArMTI4MCwzMCBAQCBQcm9jZXNzRm1wQ2Fwc3VsZUltYWdlICgN Cj4gPiA+ICAgICAgICBVcGRhdGVIYXJkd2FyZUluc3RhbmNlID0NCj4gPiA+IEltYWdlSGVhZGVy LT5VcGRhdGVIYXJkd2FyZUluc3RhbmNlOw0KPiA+ID4gICAgICB9DQo+ID4gPg0KPiA+ID4gKyAg ICAvLyBPcHRpb25hbCBydW50aW1lIEZNUCBTZXRJbWFnZSBwcm9jZXNzaW5nIHNlcXVlbmNlDQo+ ID4gPiArICAgIGlmICgobUxpYkF0UnVudGltZUZ1bmN0aW9uICE9IE5VTEwpICYmIG1MaWJBdFJ1 bnRpbWVGdW5jdGlvbiANCj4gPiA+ICsgKCkNCj4gJiYNCj4gPiA+ICsgICAgICAgIChtUnVudGlt ZUZtcFByb3RvY29sQXJyYXkgIT0gTlVMTCkpIHsNCj4gPiA+ICsgICAgICBtUnVudGltZUZtcCA9 IE5VTEw7DQo+ID4gPiArICAgICAgSW5kZXgyID0gMDsNCj4gPiA+ICsgICAgICB3aGlsZSAobVJ1 bnRpbWVGbXBQcm90b2NvbEFycmF5W0luZGV4Ml0gIT0gTlVMTCkgew0KPiA+ID4gKyAgICAgICAg aWYgKENvbXBhcmVHdWlkICgmSW1hZ2VIZWFkZXItPlVwZGF0ZUltYWdlVHlwZUlkLA0KPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAmbVJ1bnRpbWVGbXBHdWlkQXJyYXlbSW5kZXgyXSkp IHsNCj4gPiA+ICsgICAgICAgICAgbVJ1bnRpbWVGbXAgPQ0KPiAoRUZJX0ZJUk1XQVJFX01BTkFH RU1FTlRfUFJPVE9DT0wNCj4gPiA+ICopDQo+ID4gPiArICAgICAgICAgICAgbVJ1bnRpbWVGbXBQ cm90b2NvbEFycmF5W0luZGV4Ml07DQo+ID4gPiArICAgICAgICAgIGJyZWFrOw0KPiA+ID4gKyAg ICAgICAgfQ0KPiA+ID4gKyAgICAgICAgSW5kZXgyKys7DQo+ID4gPiArICAgICAgfQ0KPiA+ID4g Kw0KPiA+ID4gKyAgICAgIFN0YXR1cyA9IFNldEZtcEltYWdlRGF0YSAoTlVMTCwNCj4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEltYWdlSGVhZGVyLA0KPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggLQ0KPiA+ID4gRm1wQ2Fwc3VsZUhlYWRl ci0+RW1iZWRkZWREcml2ZXJDb3VudCk7DQo+ID4gPiArICAgICAgaWYgKEVGSV9FUlJPUiAoU3Rh dHVzKSkgew0KPiA+ID4gKyAgICAgICAgcmV0dXJuIFN0YXR1czsNCj4gPiA+ICsgICAgICB9DQo+ ID4gPiArICAgICAgY29udGludWU7DQo+ID4gPiArICAgIH0NCj4gPiA+ICsNCj4gPiA+ICAgICAg U3RhdHVzID0gR2V0Rm1wSGFuZGxlQnVmZmVyQnlUeXBlICgNCj4gPiA+ICAgICAgICAgICAgICAg ICAmSW1hZ2VIZWFkZXItPlVwZGF0ZUltYWdlVHlwZUlkLA0KPiA+ID4gICAgICAgICAgICAgICAg IFVwZGF0ZUhhcmR3YXJlSW5zdGFuY2UsIGRpZmYgLS1naXQgDQo+ID4gPiBhL01kZU1vZHVsZVBr Zy9MaWJyYXJ5L0R4ZUNhcHN1bGVMaWJGbXAvRHhlQ2Fwc3VsZVJ1bnRpbWUuYw0KPiA+ID4gYi9N ZGVNb2R1bGVQa2cvTGlicmFyeS9EeGVDYXBzdWxlTGliRm1wL0R4ZUNhcHN1bGVSdW50aW1lLmMN Cj4gPiA+IGluZGV4IGY5NDA0NGE0MDkuLjZmZWI2ZGFiNzkgMTAwNjQ0DQo+ID4gPiAtLS0gYS9N ZGVNb2R1bGVQa2cvTGlicmFyeS9EeGVDYXBzdWxlTGliRm1wL0R4ZUNhcHN1bGVSdW50aW1lLmMN Cj4gPiA+ICsrKyBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L0R4ZUNhcHN1bGVMaWJGbXAvRHhlQ2Fw c3VsZVJ1bnRpbWUuYw0KPiA+ID4gQEAgLTEsNiArMSw3IEBADQo+ID4gPiAgLyoqIEBmaWxlDQo+ ID4gPiAgICBDYXBzdWxlIGxpYnJhcnkgcnVudGltZSBzdXBwb3J0Lg0KPiA+ID4NCj4gPiA+ICsg IENvcHlyaWdodCAoYykgMjAyMSwgTlZJRElBIENPUlBPUkFUSU9OLiBBbGwgcmlnaHRzIA0KPiA+ ID4gKyByZXNlcnZlZC48QlI+DQo+ID4gPiAgICBDb3B5cmlnaHQgKGMpIDIwMTYgLSAyMDE3LCBJ bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gPiAgICBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4NCj4gPiA+IEBA IC0xOSw3ICsyMCwxMSBAQA0KPiA+ID4gICNpbmNsdWRlIDxMaWJyYXJ5L1VlZmlCb290U2Vydmlj ZXNUYWJsZUxpYi5oPg0KPiA+ID4gICNpbmNsdWRlIDxMaWJyYXJ5L1VlZmlSdW50aW1lU2Vydmlj ZXNUYWJsZUxpYi5oPg0KPiA+ID4gICNpbmNsdWRlIDxMaWJyYXJ5L01lbW9yeUFsbG9jYXRpb25M aWIuaD4NCj4gPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9VZWZpUnVudGltZUxpYi5oPg0KPiA+ID4N Cj4gPiA+ICtleHRlcm4gQk9PTEVBTiAgICAgICAgICAgICAgICAgICAoRUZJQVBJDQo+ICptTGli QXRSdW50aW1lRnVuY3Rpb24pDQo+ID4gPiAoVk9JRCk7DQo+ID4gPiArZXh0ZXJuIFZPSUQgICAg ICAgICAgICAgICAgICAgICAgKiptUnVudGltZUZtcFByb3RvY29sQXJyYXk7DQo+ID4gPiArZXh0 ZXJuIEVGSV9HVUlEICAgICAgICAgICAgICAgICAgKm1SdW50aW1lRm1wR3VpZEFycmF5Ow0KPiA+ ID4gIGV4dGVybiBFRklfU1lTVEVNX1JFU09VUkNFX1RBQkxFICptRXNydFRhYmxlOw0KPiA+ID4g IGV4dGVybiBCT09MRUFOICAgICAgICAgICAgICAgICAgIG1Jc1ZpcnR1YWxBZGRyQ29udmVydGVk Ow0KPiA+ID4gIEVGSV9FVkVOVA0KPiA+ID4gbUR4ZVJ1bnRpbWVDYXBzdWxlTGliVmlydHVhbEFk ZHJlc3NDaGFuZ2VFdmVudCAgPSBOVUxMOyBAQCAtNDAsOQ0KPiA+ID4gKzQ1LDEyMSBAQCBEeGVD YXBzdWxlTGliVmlydHVhbEFkZHJlc3NDaGFuZ2VFdmVudCAoDQo+ID4gPiAgICApDQo+ID4gPiAg ew0KPiA+ID4gICAgZ1JULT5Db252ZXJ0UG9pbnRlciAoRUZJX09QVElPTkFMX1BUUiwgKFZPSUQg KiopJm1Fc3J0VGFibGUpOw0KPiA+ID4gKw0KPiA+ID4gKyAgaWYgKG1SdW50aW1lRm1wUHJvdG9j b2xBcnJheSAhPSBOVUxMKSB7DQo+ID4gPiArICAgIFZPSUQgKipGbXBBcnJheUVudHJ5Ow0KPiA+ ID4gKw0KPiA+ID4gKyAgICBGbXBBcnJheUVudHJ5ID0gbVJ1bnRpbWVGbXBQcm90b2NvbEFycmF5 Ow0KPiA+ID4gKyAgICB3aGlsZSAoKkZtcEFycmF5RW50cnkgIT0gTlVMTCkgew0KPiA+ID4gKyAg ICAgIEVmaUNvbnZlcnRQb2ludGVyICgweDAsIChWT0lEICoqKSBGbXBBcnJheUVudHJ5KTsNCj4g PiA+ICsgICAgICBGbXBBcnJheUVudHJ5Kys7DQo+ID4gPiArICAgIH0NCj4gPiA+ICsgICAgRWZp Q29udmVydFBvaW50ZXIgKDB4MCwgKFZPSUQgKiopDQo+ICZtUnVudGltZUZtcFByb3RvY29sQXJy YXkpOyAgfQ0KPiA+ID4gKyBpZiAobVJ1bnRpbWVGbXBHdWlkQXJyYXkgIT0gTlVMTCkgew0KPiA+ ID4gKyAgICBFZmlDb252ZXJ0UG9pbnRlciAoMHgwLCAoVk9JRCAqKikgJm1SdW50aW1lRm1wR3Vp ZEFycmF5KTsgIH0NCj4gaWYNCj4gPiA+ICsgKG1MaWJBdFJ1bnRpbWVGdW5jdGlvbiAhPSBOVUxM ICkgew0KPiA+ID4gKyAgICBFZmlDb252ZXJ0UG9pbnRlciAoMHgwLCAoVk9JRCAqKikgJm1MaWJB dFJ1bnRpbWVGdW5jdGlvbik7ICB9DQo+ID4gPiArDQo+ID4gPiAgICBtSXNWaXJ0dWFsQWRkckNv bnZlcnRlZCA9IFRSVUU7ICB9DQo+ID4gPg0KPiA+ID4gKy8qKg0KPiA+ID4gKyAgSW5pdGlhbGl6 ZSBvcHRpb25hbCBydW50aW1lIEZNUCBhcnJheXMgdG8gc3VwcG9ydCBGTVAgU2V0SW1hZ2UNCj4g PiA+IHByb2Nlc3NpbmcNCj4gPiA+ICsgIGFmdGVyIEV4aXRCb290U2VydmljZXMoKSBpcyBjYWxs ZWQuDQo+ID4gPiArDQo+ID4gPiArICBUaGUgSW1hZ2VUeXBlSWRHdWlkcyBvZiBydW50aW1lLWNh cGFibGUgRk1QIHByb3RvY29sIGRyaXZlcnMgDQo+ID4gPiArIGFyZQ0KPiA+ID4gZXh0cmFjdGVk DQo+ID4gPiArICBmcm9tIHRoZSBQY2RSdW50aW1lRm1wQ2Fwc3VsZUltYWdlVHlwZUlkR3VpZCBs aXN0IGFuZCB0aGVpciANCj4gPiA+ICsgcHJvdG9jb2wgIHN0cnVjdHVyZSBwb2ludGVycyBhcmUg c2F2ZWQgaW4gdGhlIA0KPiA+ID4gKyBtUnVudGltZUZtcFByb3RvY29sQXJyYXkgZm9yIHVzZQ0K PiA+ID4gZHVyaW5nDQo+ID4gPiArICBVcGRhdGVDYXBzdWxlKCkgcHJvY2Vzc2luZy4gVXBkYXRl SGFyZHdhcmVJbnN0YW5jZSBpcyBub3QNCj4gc3VwcG9ydGVkLg0KPiA+ID4gKw0KPiA+ID4gKyoq Lw0KPiA+ID4gK1NUQVRJQw0KPiA+ID4gK1ZPSUQNCj4gPiA+ICtFRklBUEkNCj4gPiA+ICtJbml0 aWFsaXplUnVudGltZUZtcEFycmF5cyAoDQo+ID4gPiArICBWT0lEDQo+ID4gPiArICApDQo+ID4g PiArew0KPiA+ID4gKyAgRUZJX0dVSUQgICAgICAqR3VpZDsNCj4gPiA+ICsgIFVJTlROICAgICAg ICAgTnVtSGFuZGxlczsNCj4gPiA+ICsgIEVGSV9IQU5ETEUgICAgKkhhbmRsZUJ1ZmZlcjsNCj4g PiA+ICsgIEVGSV9TVEFUVVMgICAgU3RhdHVzOw0KPiA+ID4gKyAgVUlOVE4gICAgICAgICBDb3Vu dDsNCj4gPiA+ICsgIFVJTlROICAgICAgICAgSW5kZXg7DQo+ID4gPiArICBVSU5UTiAgICAgICAg IEZtcEFycmF5SW5kZXg7DQo+ID4gPiArDQo+ID4gPiArICBFRklfU1RBVFVTDQo+ID4gPiArICAg IEdldEZtcEhhbmRsZUJ1ZmZlckJ5VHlwZSAoDQo+ID4gPiArICAgICAgSU4gICAgIEVGSV9HVUlE DQo+ICpVcGRhdGVJbWFnZVR5cGVJZCwNCj4gPiA+ICsgICAgICBJTiAgICAgVUlOVDY0DQo+ID4g PiBVcGRhdGVIYXJkd2FyZUluc3RhbmNlLA0KPiA+ID4gKyAgICAgIE9VVCAgICBVSU5UTiAgICAg ICAgICAgICAgICAgICAgICAgICpOb0hhbmRsZXMsDQo+ID4gPiBPUFRJT05BTA0KPiA+ID4gKyAg ICAgIE9VVCAgICBFRklfSEFORExFICAgICAgICAgICAgICAgICAgICoqSGFuZGxlQnVmLA0KPiA+ ID4gT1BUSU9OQUwNCj4gPiA+ICsgICAgICBPVVQgICAgQk9PTEVBTg0KPiAqKlJlc2V0UmVxdWly ZWRCdWYNCj4gPiA+IE9QVElPTkFMDQo+ID4gPiArICAgICAgKTsNCj4gPiA+ICsNCj4gPiA+ICsg IENvdW50ID0gUGNkR2V0U2l6ZSAoUGNkUnVudGltZUZtcENhcHN1bGVJbWFnZVR5cGVJZEd1aWQp IC8NCj4gc2l6ZW9mDQo+ID4gPiAoR1VJRCk7DQo+ID4gPiArICBpZiAoQ291bnQgPT0gMCkgew0K PiA+ID4gKyAgICByZXR1cm47DQo+ID4gPiArICB9DQo+ID4gPiArDQo+ID4gPiArICAvLyBtUnVu dGltZUZtcFByb3RvY29sQXJyYXkgaXMgYSBOVUxMLXRlcm1pbmF0ZWQgbGlzdCBvZiBGTVAgDQo+ ID4gPiArIHByb3RvY29sDQo+ID4gPiBwb2ludGVycw0KPiA+ID4gKyAgbVJ1bnRpbWVGbXBQcm90 b2NvbEFycmF5ID0gKFZPSUQgKiopDQo+ID4gPiArICAgIEFsbG9jYXRlUnVudGltZVplcm9Qb29s ICgoQ291bnQgKyAxKSAqIHNpemVvZiAoVk9JRCAqKSk7ICBpZiANCj4gPiA+ICsgKG1SdW50aW1l Rm1wUHJvdG9jb2xBcnJheSA9PSBOVUxMKSB7DQo+ID4gPiArICAgIERFQlVHICgoREVCVUdfRVJS T1IsICJFcnJvciBhbGxvY2F0aW5nDQo+ID4gPiBtUnVudGltZUZtcFByb3RvY29sQXJyYXlcbiIp KTsNCj4gPiA+ICsgICAgcmV0dXJuOw0KPiA+ID4gKyAgfQ0KPiA+ID4gKyAgbVJ1bnRpbWVGbXBH dWlkQXJyYXkgPSAoRUZJX0dVSUQgKikNCj4gPiA+ICsgICAgQWxsb2NhdGVSdW50aW1lWmVyb1Bv b2wgKENvdW50ICogc2l6ZW9mIChFRklfR1VJRCkpOyAgaWYgDQo+ID4gPiArIChtUnVudGltZUZt cEd1aWRBcnJheSA9PSBOVUxMKSB7DQo+ID4gPiArICAgIERFQlVHICgoREVCVUdfRVJST1IsICJF cnJvciBhbGxvY2F0aW5nDQo+IG1SdW50aW1lRm1wR3VpZEFycmF5IikpOw0KPiA+ID4gKyAgICBG cmVlUG9vbCAobVJ1bnRpbWVGbXBQcm90b2NvbEFycmF5KTsNCj4gPiA+ICsgICAgcmV0dXJuOw0K PiA+ID4gKyAgfQ0KPiA+ID4gKw0KPiA+ID4gKyAgLy8gRm9yIGVhY2ggcnVudGltZSBJbWFnZVR5 cGVJZEd1aWQgaW4gdGhlIFBDRCwgc2F2ZSBpdHMgR1VJRCANCj4gPiA+ICsgYW5kIEZNUA0KPiA+ ID4gcHJvdG9jb2wNCj4gPiA+ICsgIEZtcEFycmF5SW5kZXggPSAwOw0KPiA+ID4gKyAgR3VpZCAg PSBQY2RHZXRQdHIgKFBjZFJ1bnRpbWVGbXBDYXBzdWxlSW1hZ2VUeXBlSWRHdWlkKTsNCj4gPiA+ ICsgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IENvdW50OyBJbmRleCsrLCBHdWlkKyspIHsNCj4g PiA+ICsgICAgbVJ1bnRpbWVGbXBHdWlkQXJyYXlbRm1wQXJyYXlJbmRleF0gPSAqR3VpZDsNCj4g PiA+ICsgICAgSGFuZGxlQnVmZmVyID0gTlVMTDsNCj4gPiA+ICsgICAgU3RhdHVzID0gR2V0Rm1w SGFuZGxlQnVmZmVyQnlUeXBlIChHdWlkLA0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDAsDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJk51bUhhbmRsZXMsDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJkhhbmRsZUJ1ZmZlciwNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOVUxMKTsNCj4gPiA+ICsgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVz KSkgew0KPiA+ID4gKyAgICAgIERFQlVHICgoREVCVUdfRVJST1IsDQo+ID4gPiArICAgICAgICAg ICAgICAiRXJyb3IgZmluZGluZyBGTVAgaGFuZGxlIGZvciBydW50aW1lDQo+ID4gPiBJbWFnZVR5 cGVJZEd1aWQ9JWc6ICVyXG4iLA0KPiA+ID4gKyAgICAgICAgICAgICAgR3VpZCwgU3RhdHVzKSk7 DQo+ID4gPiArICAgICAgY29udGludWU7DQo+ID4gPiArICAgIH0NCj4gPiA+ICsNCj4gPiA+ICsg ICAgaWYgKE51bUhhbmRsZXMgPiAxKSB7DQo+ID4gPiArICAgICAgREVCVUcgKChERUJVR19FUlJP UiwNCj4gPiA+ICsgICAgICAgICAgICAgICJGTVAgcnVudGltZSBJbWFnZVR5cGVJZEd1aWQ9JWcg cmV0dXJuZWQgJXUNCj4gaGFuZGxlcywNCj4gPiA+IG9ubHkgMSBzdXBwb3J0ZWRcbiIsDQo+ID4g PiArICAgICAgICAgICAgICBHdWlkLCBOdW1IYW5kbGVzKSk7DQo+ID4gPiArICAgIH0NCj4gPiA+ ICsgICAgU3RhdHVzID0gZ0JTLT5IYW5kbGVQcm90b2NvbCAoSGFuZGxlQnVmZmVyWzBdLA0KPiA+ ID4gKw0KPiA+ID4gJmdFZmlGaXJtd2FyZU1hbmFnZW1lbnRQcm90b2NvbEd1aWQsDQo+ID4gPiAr DQo+ID4gPiAmbVJ1bnRpbWVGbXBQcm90b2NvbEFycmF5W0ZtcEFycmF5SW5kZXhdKTsNCj4gPiA+ ICsgICAgRnJlZVBvb2wgKEhhbmRsZUJ1ZmZlcik7DQo+ID4gPiArICAgIGlmIChFRklfRVJST1Io U3RhdHVzKSkgew0KPiA+ID4gKyAgICAgIERFQlVHICgoREVCVUdfRVJST1IsDQo+ID4gPiArICAg ICAgICAgICAgICAiRXJyb3IgZ2V0dGluZyBGTVAgcHJvdG9jb2wgZm9yIHJ1bnRpbWUNCj4gPiA+ IEltYWdlVHlwZUlkR3VpZD0lZzogJXJcbiIsDQo+ID4gPiArICAgICAgICAgICAgICBHdWlkLCBT dGF0dXMpKTsNCj4gPiA+ICsgICAgICBjb250aW51ZTsNCj4gPiA+ICsgICAgfQ0KPiA+ID4gKw0K PiA+ID4gKyAgICBGbXBBcnJheUluZGV4Kys7DQo+ID4gPiArICB9DQo+ID4gPiArDQo+ID4gPiAr ICBtTGliQXRSdW50aW1lRnVuY3Rpb24gPSBFZmlBdFJ1bnRpbWU7IH0NCj4gPiA+ICsNCj4gPiA+ ICAvKioNCj4gPiA+ICAgIE5vdGlmeSBmdW5jdGlvbiBmb3IgZXZlbnQgZ3JvdXANCj4gRUZJX0VW RU5UX0dST1VQX1JFQURZX1RPX0JPT1QuDQo+ID4gPg0KPiA+ID4gQEAgLTkzLDYgKzIxMCw4IEBA IER4ZUNhcHN1bGVMaWJSZWFkeVRvQm9vdEV2ZW50Tm90aWZ5ICgNCj4gPiA+ICAgICAgLy8NCj4g PiA+ICAgICAgbUVzcnRUYWJsZS0+RndSZXNvdXJjZUNvdW50TWF4ID0NCj4gbUVzcnRUYWJsZS0+ RndSZXNvdXJjZUNvdW50Ow0KPiA+ID4gICAgfQ0KPiA+ID4gKw0KPiA+ID4gKyAgSW5pdGlhbGl6 ZVJ1bnRpbWVGbXBBcnJheXMgKCk7DQo+ID4gPiAgfQ0KPiA+ID4NCj4gPiA+ICAvKioNCj4gPiA+ IGRpZmYgLS1naXQNCj4gPiA+IGEvTWRlTW9kdWxlUGtnL0xpYnJhcnkvRHhlQ2Fwc3VsZUxpYkZt cC9EeGVSdW50aW1lQ2Fwc3VsZUxpYi5pbmYNCj4gPiA+IGIvTWRlTW9kdWxlUGtnL0xpYnJhcnkv RHhlQ2Fwc3VsZUxpYkZtcC9EeGVSdW50aW1lQ2Fwc3VsZUxpYi5pbmYNCj4gPiA+IGluZGV4IGJm NTZmNDYyM2YuLjdiM2Y1ZTA0ZjggMTAwNjQ0DQo+ID4gPiAtLS0NCj4gPiBhL01kZU1vZHVsZVBr Zy9MaWJyYXJ5L0R4ZUNhcHN1bGVMaWJGbXAvRHhlUnVudGltZUNhcHN1bGVMaWIuaW5mDQo+ID4g PiArKysNCj4gPiBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L0R4ZUNhcHN1bGVMaWJGbXAvRHhlUnVu dGltZUNhcHN1bGVMaWIuaW5mDQo+ID4gPiBAQCAtNDksNiArNDksNyBAQA0KPiA+ID4gICAgUHJp bnRMaWINCj4gPiA+ICAgIEhvYkxpYg0KPiA+ID4gICAgQm1wU3VwcG9ydExpYg0KPiA+ID4gKyAg UGNkTGliDQo+ID4gPg0KPiA+ID4NCj4gPiA+ICBbUHJvdG9jb2xzXQ0KPiA+ID4gQEAgLTcwLDUg KzcxLDggQEANCj4gPiA+ICAgIGdFZmlFdmVudFZpcnR1YWxBZGRyZXNzQ2hhbmdlR3VpZCAgICAg ICAjIyBDT05TVU1FUyAjIyBFdmVudA0KPiA+ID4gICAgZ0Vka2lpQ2Fwc3VsZU9uRGlza05hbWVH dWlkICAgICAgICAgICAgICMjDQo+ID4gPiBTT01FVElNRVNfQ09OU1VNRVMgIyMgR1VJRA0KPiA+ ID4NCj4gPiA+ICtbUGNkXQ0KPiA+ID4gKw0KPiA+ID4NCj4gPiBnRWZpTWRlTW9kdWxlUGtnVG9r ZW5TcGFjZUd1aWQuUGNkUnVudGltZUZtcENhcHN1bGVJbWFnZVR5cGVJZEcNCj4gPiB1aQ0KPiA+ ID4gZA0KPiA+ID4gKw0KPiA+ID4gIFtEZXBleF0NCj4gPiA+ICAgIGdFZmlWYXJpYWJsZVdyaXRl QXJjaFByb3RvY29sR3VpZCBkaWZmIC0tZ2l0IA0KPiA+ID4gYS9NZGVNb2R1bGVQa2cvTWRlTW9k dWxlUGtnLmRlYyBiL01kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjIA0KPiA+ID4gaW5kZXgg MTMzZTA0ZWU4Ni4uODY5YWE4OTJmNw0KPiA+IDEwMDY0NA0KPiA+ID4gLS0tIGEvTWRlTW9kdWxl UGtnL01kZU1vZHVsZVBrZy5kZWMNCj4gPiA+ICsrKyBiL01kZU1vZHVsZVBrZy9NZGVNb2R1bGVQ a2cuZGVjDQo+ID4gPiBAQCAtMyw3ICszLDcgQEANCj4gPiA+ICAjIEl0IGFsc28gcHJvdmlkZXMg dGhlIGRlZmluaXRpb25zKGluY2x1ZGluZyBQUElzL1BST1RPQ09Mcy9HVUlEcyANCj4gPiA+IGFu ZCBsaWJyYXJ5IGNsYXNzZXMpICAjIGFuZCBsaWJyYXJpZXMgaW5zdGFuY2VzLCB3aGljaCBhcmUg dXNlZCANCj4gPiA+IGZvciB0aG9zZSBtb2R1bGVzLg0KPiA+ID4gICMNCj4gPiA+IC0jIENvcHly aWdodCAoYykgMjAxOSwgTlZJRElBIENPUlBPUkFUSU9OLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0K PiA+ID4gKyMgQ29weXJpZ2h0IChjKSAyMDE5LTIwMjEsIE5WSURJQSBDT1JQT1JBVElPTi4gQWxs IHJpZ2h0cyANCj4gPiA+ICtyZXNlcnZlZC48QlI+DQo+ID4gPiAgIyBDb3B5cmlnaHQgKGMpIDIw MDcgLSAyMDIxLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyANCj4gPiA+IHJlc2VydmVk LjxCUj4gICMgQ29weXJpZ2h0IChjKSAyMDE2LCBMaW5hcm8gTHRkLiBBbGwgcmlnaHRzIA0KPiA+ ID4gcmVzZXJ2ZWQuPEJSPiAgIyAoQykgQ29weXJpZ2h0IDIwMTYgLSAyMDE5IEhld2xldHQgUGFj a2FyZCANCj4gPiA+IEVudGVycHJpc2UgRGV2ZWxvcG1lbnQgTFA8QlI+IEBAIC0yMDIwLDYgKzIw MjAsMTEgQEANCj4gPiA+ICAgICMgQFByb21wdCBDYXBzdWxlIE9uIERpc2sgVGVtcCBSZWxvY2F0 aW9uIGZpbGUgbmFtZSBpbiBQRUkgDQo+ID4gPiBwaGFzZQ0KPiA+ID4NCj4gPiA+DQo+ID4gZ0Vm aU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZENvRFJlbG9jYXRpb25GaWxlTmFtZXxMIkNv ZC50bXANCj4gPiAifA0KPiA+ID4gVk9JRCp8MHgzMDAwMTA0OA0KPiA+ID4NCj4gPiA+ICsgICMj IFRoaXMgUENEIGhvbGRzIGEgbGlzdCBvZiBHVUlEcyBmb3IgdGhlIEltYWdlVHlwZUlkIHRvIA0K PiA+ID4gKyBpbmRpY2F0ZSB0aGUgICMgIEZNUCBpcyBydW50aW1lIGNhcGFibGUuDQo+ID4gPiAr ICAjIEBQcm9tcHQgQSBsaXN0IG9mIHJ1bnRpbWUtY2FwYWJsZSBGTVAgSW1hZ2VUeXBlSWQgR1VJ RHMNCj4gPiA+ICsNCj4gPiA+DQo+ID4gZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBj ZFJ1bnRpbWVGbXBDYXBzdWxlSW1hZ2VUeXBlSWRHDQo+ID4gdWkNCj4gPiA+IGR8ezB4MH18Vk9J RCp8MHgzMDAwMTA0OQ0KPiA+ID4gKw0KPiA+ID4gICAgIyMgVGhpcyBQQ0QgaG9sZCBhIGxpc3Qg R1VJRHMgZm9yIHRoZSBJbWFnZVR5cGVJZCB0byBpbmRpY2F0ZSB0aGUNCj4gPiA+ICAgICMgIEZN UCBjYXBzdWxlIGlzIGEgc3lzdGVtIEZNUC4NCj4gPiA+ICAgICMgQFByb21wdCBBIGxpc3Qgb2Yg c3lzdGVtIEZNUCBJbWFnZVR5cGVJZCBHVUlEcw0KPiA+ID4gLS0NCj4gPiA+IDIuMTcuMQ0KPiA+ ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4NCj4gPg0KPg0KPg0KPg0KPg0KPg0K DQoNCg0KDQoNCg0KDQoNCg==