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 C6F8BAC0AFB for ; Mon, 30 Oct 2023 07:25:00 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=RKNk+5EniXTqpw3kp10Y2hZiEQTGz92Xzt008v9W8fI=; 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=1698650699; v=1; b=U2gHKc+pyyec0PZRJJWc5uCAN2xxIqgmU1anScz3JjUadTR3Hv2RuMPVmfeBnQnTmEULIH1H Pvey93wOjGbgMdV8DvQx9QixX3VB+v8s+ete4W6gn+7QzcCVqOc9XxPbpDYEjepjP8RI4AtrbBX 6pJFKPit6fU/z3uzbbyuMmQQ= X-Received: by 127.0.0.2 with SMTP id ZHMrYY7687511x5kZ4fBea6z; Mon, 30 Oct 2023 00:24:59 -0700 X-Received: from NAM04-DM6-obe.outbound.protection.outlook.com (NAM04-DM6-obe.outbound.protection.outlook.com [40.107.102.44]) by mx.groups.io with SMTP id smtpd.web10.143582.1698650698834539263 for ; Mon, 30 Oct 2023 00:24:59 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PujA6mXl/wpUhdxcT1KRT3x2c+LbwDGDSS6glRGXMVt1A5dukAqDrKQpFg8yHCuetMdkppXY/bwhL9Dpw1U+DysJEE9VZpQBtsEab4WrDX0CMSOk6d9PKZ0d4AuTMTHDeL5tzcPAPTz0UGXSPSyAHl/JxVe3QFXgclkg8L2tcOlvFTzAuxIZSpE0uHuhsSEocbzyMu8deyCjfElIsMqvqYlPsEXuiGxK8NDV52+cFKe0mh3ffLoLf1OX3pdmMGqoghqRj6PjtsMrGaH60LnRtB8yYYMBkRwlviiSYlFDAoBLZH2rHxWm7xP76ezskDGNYX5lsV8hHQr50Gk7s0bImg== 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=unVrFMLtzkQobJEPckz95OvnqF0StG+FA4n2svTF/Ow=; b=b/UILQCctk5HPFGqI9lz3JYh6z4bK9E0EaQiy1XlrayqCyQM3ageCD6Wrw/CV3FwBAy2mgrRM6n37eP2GR/DFU4fHW9IjkPhosZAvLSvm89h5qVNoQi5/TDDtGmUrgGt0QfxaNkkei1AIl+tmcEIYGxJOmttxA/kQ/9f9l2//0XFMRszN8yb4BoeyPEAS5AXcji9bFxYCItmIo/SNVU9++OkveQ6txs0ALNF4LH3/NlMWDDphrVnjyoV6Fo44j8aJiB7V0+khnWPGdXgFJf/tV7yQqZdg1zbMX2GUa7Y0lpMqroVS+j5bnWR1cTOytdUBjU8xIJcFnaDqTGvQ9fvmg== 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 X-Received: from MW4PR12MB7031.namprd12.prod.outlook.com (2603:10b6:303:1ef::6) by SJ0PR12MB8614.namprd12.prod.outlook.com (2603:10b6:a03:47d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.25; Mon, 30 Oct 2023 07:24:55 +0000 X-Received: from MW4PR12MB7031.namprd12.prod.outlook.com ([fe80::d9e7:5f16:2a5a:7be]) by MW4PR12MB7031.namprd12.prod.outlook.com ([fe80::d9e7:5f16:2a5a:7be%4]) with mapi id 15.20.6933.026; Mon, 30 Oct 2023 07:24:55 +0000 From: "Nickle Wang via groups.io" To: Laszlo Ersek , "devel@edk2.groups.io" , "Chang, Abner" CC: "Attar, AbdulLateef (Abdul Lateef)" , Konstantin Aladyshev Subject: Re: [edk2-devel] [edk2-platforms][PATCH] ManageabilityPkg: Uncrustify on C source files Thread-Topic: [edk2-devel] [edk2-platforms][PATCH] ManageabilityPkg: Uncrustify on C source files Thread-Index: AQHaB+NUyhRSqklG4kuGWZXu58NCObBb0+oAgAYgrHA= Date: Mon, 30 Oct 2023 07:24:55 +0000 Message-ID: References: <20231026080607.1904-1-abner.chang@amd.com> <0fe32c67-6103-5254-05b7-d42a1c7df2b4@redhat.com> In-Reply-To: <0fe32c67-6103-5254-05b7-d42a1c7df2b4@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW4PR12MB7031:EE_|SJ0PR12MB8614:EE_ x-ms-office365-filtering-correlation-id: 378154d7-5a36-41a1-1bad-08dbd91950f8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: +ZvyC+oHkwx7BDOZe5kTDb4NCDBOaWe1kPiOWFXfJStqziu29VT92BRXsRG54BiUvA8TXaf92IHxODL4m736XqiVMSyzp1ivBHLM9XgYRUVQtbT+S/WpoevHrI4jLyDg10CgbSPX+xxgtFIEj4/3PCYylyRi2rOkccn44F59CBV5+Uqy5Rufh9dksRlY+Ve9NQkZmlRHmVtNkyVuvPoumbX72zxqrFxeCXRpiWDFlV2kHr9ys4ojz/R+j2Y4M0TseD67/3mOyUioGLcwce2LPnrdte4rlgen0ZRcDdUZ+b4tr08kpyQRfNWUmBI323+teI3h9BdmBjKenJQ5C2RX2VGoCAjC+/whnCF8N1YAo3EUwCmWK4WR0X4YfS3Q+KGws3HzWYQR10IC+HAewgP9szChteJrTMYS7aBjmEIXfJTEo9wTZfXTOw8g1BZ6Ip/wx6lCzN/EaJ3AnXsYgWC7YdW/HgM9PeqeulD+A4yoc+jJhB6/6UOlhFEhIQ6y8WUl7191a6qPZ6f/X8HHyqtMY85wt7BiYDly3x+WkEEfMVromY0LmWabULl1LIp0b61b+wKWHsDAbwdZcQ+TFYfwFrZlD48s+KvZuWf/QLtjuuK36SsJQm1fffJdAdTWeT6nCBYPbwouvBVeoErqV8nueQ== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?emp1SFI1SkxVWC9KUDRidWdrZWw4aWJDR0RhN2dQd0xsWFYrL3p6bkxvMzVR?= =?utf-8?B?a01ubFQ1N1ByRmdiZ25lbGVtVVRuSEZaTERERTdOclBBSVgvZTdJS1VOSkVT?= =?utf-8?B?Y2VVVWsweVBHdE13dGtsK2NDZG9QYUlqNHdMUkM1WVR2Y2dHWFJVaENXUE1p?= =?utf-8?B?V1N2SFhBRTBkTDFkOHBIempvRjJtNVJ3S05vR3JGYml0TFZBblI3TjhmNjh5?= =?utf-8?B?WkN2Z1p6U2N3dTJOZWRSTGZCSTlMdjRKd0NmV0JKVVl5cTV2cVpUeVlPVjhJ?= =?utf-8?B?SFBxcE5YcDhNMTdnMXJEVUhPcXNJMUhmZTA3VGc4WEdrMCtmbzBOVjVpdldR?= =?utf-8?B?TFJMU1dzOEFRaStaN3JWWWtROERBU1h2bW1rU0pPVzFNZFI4THV5YzZlUWNj?= =?utf-8?B?ZUMzNmJTWWNNTzJpbVdnUE4vR2tla1V2MDY4OVEvaG14MytHaTE1ZVhmUUhS?= =?utf-8?B?dnlET2tFeGpGbDFDT08rQm03UUdYb2haUDFOQ2JMeStjTTJKUFlmZlpRQ2lI?= =?utf-8?B?bjJXa1VuTzdhT0s2MVlRT2NEYXN0dkYycXRrbDFod1JOQlI1RmxFU1dIWWJ4?= =?utf-8?B?VWowUS9ZaFlJK3czTmJaQ3lzVU4vQTU1TlpBaENaR2c1eHhhNE5USjBLR0RR?= =?utf-8?B?RDBEZEVlcnlUYk4xVUhNZVVDZWJNZG43Yks2cFh2TkxsOE9FRjNiTFIvM0F6?= =?utf-8?B?M3BFT3kzMXh2cThueHg1M0toVnZOZlUrQjRNSVhFWndRVTB4YVFwNk9GOGRC?= =?utf-8?B?aEc4Z3ZDREpzd2JpbEdQbEt1REJlSkpWNTNKcDZPZEpWVVdyQmpCMEhhZ2Fl?= =?utf-8?B?VUFpb1pyS1ZqTnJYdHVTNkVJOE95aTZqN0lHV05wWDNIWWRpazVKSEpQZ1F1?= =?utf-8?B?QkZyMlNEYTc3ZFgrVkVXeDlNUkNSVmVHdU1zUGxkT3JwT2JJT29YQ1huOUtK?= =?utf-8?B?TURYZ2J3cjFXVDJUeFhkRnc0VExGb251L3JpMjZSRHkwMk5UYUlRbVcwejc4?= =?utf-8?B?MjlaeFhDLy9LWEgwb3FXSEsyYy9WdGZ0RGx0OHp3NmR1cDAzTjFzQVJlUk1T?= =?utf-8?B?VDg4R25UZ1pFa1puemE0bWxhQWRJVzk5Tks4cVpMR2JnKzFOTnBzcEh0MkVG?= =?utf-8?B?YnVwWjFLOTZvUWRNQ0lsT0pPWmc4emQvYWxjQi9lVG1EUXdyUDlsWTkwOStt?= =?utf-8?B?YjkyZEl4SlkyZk0rSWRIVzQwUHpZMFhVRWdOeWVmUnFMVitCU0RHWHJDQ2pT?= =?utf-8?B?N3NUc0l2Wjd6QWZ5M0pyaEZIdTZMbTNtK1JrdUkrM3VwZ0VpSkNrckhEZC9C?= =?utf-8?B?WVVYSkRXc3dJVWl4OHM1WE1BL2JQYVhEd0o2Q0tjaWRwRHExbXZCMTM5TWlP?= =?utf-8?B?UWtxWmxRWTczWTZFVTdiU256ZTBxcVM0bVBsODg1Qk9EakxxMU9ZNFVxUXYx?= =?utf-8?B?eWlWVnI2TmkrUkFtYUZ5aEJRR1E4UER4bkJDd09JYzRYTmdKeXJTUVF2cTVm?= =?utf-8?B?NGxnV3VCM296cXROemdNNVY1elE1MC9zLzFiSTNRbllFMkxybDVtRmdhc1U5?= =?utf-8?B?Zmh4UDlRaEdGVGNSL3pmdWsxWnE1ZVV2WERRaFhFRWQ4ZStJNEhDYTJ5NnlK?= =?utf-8?B?YzNJY3owN21wWXlPQWxVMGZFWHNveGU2SGhvT1kyZEZEUUtSU2ErQ1l5c2Qr?= =?utf-8?B?SmhvSk5vZHNUYmYyclZVbm40SGhJdTF5YVpUTTB2VmhGV1ZUdWgzT0J1d0hW?= =?utf-8?B?aVJqV1JFYm80bGd1OElFWTFTYzIveFJMUVNMT2Nlek9mejB3dE9IRmEyLzEz?= =?utf-8?B?ZmxoTVRob0RYS0xGWmJSekJiNEtQSzZ2dzFoU1JyZHhkS2xuRjJrRWU2bUdo?= =?utf-8?B?cFIxKyt3L1pTRlJFcGZiR0RsRmZmTllvamQwQkF2MGQxS1U4Ujloa1NIZEd4?= =?utf-8?B?ajJsM1QvbWlVRVVQcmhnR1htQm9hMVhYRHhLK3BnZWttTUFVUGlrdHFObHJh?= =?utf-8?B?M1FObWtudGlIYkRvK2dIL29pTGZVeExia2dXRXEzTlNFNVVxdkhaVVBoNmxh?= =?utf-8?B?cXFlaG9GandNRkJFeldOQjdHNXBpc2hveHhsR1Y5US9nRmtETlJFWlNkaDhE?= =?utf-8?B?RFlqRUkwT2d3bDN5MytkSU5zaHA0bTc4dXV4WVk4SjFJanhBNFVGOGpiNTJv?= =?utf-8?Q?YGuzCrqqF/Wd8ZHAHi388UFPAbzMJI9Ir/z2aw8lEICr?= MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR12MB7031.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 378154d7-5a36-41a1-1bad-08dbd91950f8 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Oct 2023 07:24:55.8612 (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: RbljqtPs02CjijvpLNVb3I1CIRxEBFIbcGHb6pCTd+HHYDDly5AkesnY+opMRKtuSTSxnbzAA5AAXTcxfuTKKQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB8614 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,nicklew@nvidia.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: a1hRrXVixeW9EN1P16bGCceyx7686176AA= 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=U2gHKc+p; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=none; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io DQpSZXZpZXdlZC1ieTogTmlja2xlIFdhbmcgPG5pY2tsZXdAbnZpZGlhLmNvbT4NCg0KUmVnYXJk cywNCk5pY2tsZQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IExhc3ps byBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDI2 LCAyMDIzIDU6NTAgUE0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBDaGFuZywgQWJuZXIg PEFibmVyLkNoYW5nQGFtZC5jb20+DQo+IENjOiBBdHRhciwgQWJkdWxMYXRlZWYgKEFiZHVsIExh dGVlZikgPEFiZHVsTGF0ZWVmLkF0dGFyQGFtZC5jb20+OyBOaWNrbGUNCj4gV2FuZyA8bmlja2xl d0BudmlkaWEuY29tPjsgS29uc3RhbnRpbiBBbGFkeXNoZXYgPGFsYWR5c2hldjIyQGdtYWlsLmNv bT4NCj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbZWRrMi1wbGF0Zm9ybXNdW1BBVENIXSBN YW5hZ2VhYmlsaXR5UGtnOiBVbmNydXN0aWZ5DQo+IG9uIEMgc291cmNlIGZpbGVzDQo+IA0KPiBD YXV0aW9uOiBUaGlzIG1lc3NhZ2Ugb3JpZ2luYXRlZCBmcm9tIGFuIEV4dGVybmFsIFNvdXJjZS4g VXNlIHByb3BlciBjYXV0aW9uDQo+IHdoZW4gb3BlbmluZyBhdHRhY2htZW50cywgY2xpY2tpbmcg bGlua3MsIG9yIHJlc3BvbmRpbmcuDQo+IA0KPiANCj4gT24gMTAvMjYvMjMgMTA6MDYsIENoYW5n LCBBYm5lciB2aWEgZ3JvdXBzLmlvIHdyb3RlOg0KPiA+IEZyb206IEFibmVyIENoYW5nIDxhYm5l ci5jaGFuZ0BhbWQuY29tPg0KPiA+DQo+ID4gUnVuIFVuY3J1c3RpZnkgb24gdGhlIEMgc291cmNl IGZpbGVzIHRob3NlIHdlcmUNCj4gPiBtb2RpZmllZCBpbiBjb21taXQgSUQgZnJvbSAzZjRjNDM4 NCB0byAyOGZmOGYyOS4NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IEFibmVyIENoYW5nIDxhYm5l ci5jaGFuZ0BhbWQuY29tPg0KPiA+IENjOiBBYmR1bCBMYXRlZWYgQXR0YXIgPEFiZHVsTGF0ZWVm LkF0dGFyQGFtZC5jb20+DQo+ID4gQ2M6IE5pY2tsZSBXYW5nIDxuaWNrbGV3QG52aWRpYS5jb20+ DQo+ID4gQ2M6IEtvbnN0YW50aW4gQWxhZHlzaGV2IDxhbGFkeXNoZXYyMkBnbWFpbC5jb20+DQo+ ID4gLS0tDQo+ID4gIC4uLi9JbmNsdWRlL0xpYnJhcnkvQmFzZVBsZG1Qcm90b2NvbExpYi5oICAg ICB8ICA2ICsrLS0tDQo+ID4gIC4uLi9QbGRtUHJvdG9jb2wvQ29tbW9uL1BsZG1Qcm90b2NvbENv bW1vbi5oICB8ICA0ICsrLS0NCj4gPiAgLi4uL0NvbW1vbi9LY3NDb21tb24uYyAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDIgKy0NCj4gPiAgLi4uL1BsZG1Qcm90b2NvbExpYnJhcnkvRHhlL1Bs ZG1Qcm90b2NvbExpYi5jIHwgMTAgKysrKy0tLS0tDQo+ID4gIC4uLi9NY3RwUHJvdG9jb2wvQ29t bW9uL01jdHBQcm90b2NvbENvbW1vbi5jICB8IDIyICsrKysrKysrKysrKy0tLS0tLS0NCj4gPiAg Li4uL1VuaXZlcnNhbC9NY3RwUHJvdG9jb2wvRHhlL01jdHBQcm90b2NvbC5jIHwgIDYgKysrLS0N Cj4gPiAgLi4uL1BsZG1Qcm90b2NvbC9Db21tb24vUGxkbVByb3RvY29sQ29tbW9uLmMgIHwgMTIg KysrKystLS0tLQ0KPiA+ICAuLi4vVW5pdmVyc2FsL1BsZG1Qcm90b2NvbC9EeGUvUGxkbVByb3Rv Y29sLmMgfCAgOCArKystLS0tDQo+ID4gIC4uLi9QbGRtU21iaW9zVHJhbnNmZXJEeGUuYyAgICAg ICAgICAgICAgICAgICB8ICAyICstDQo+ID4gIDkgZmlsZXMgY2hhbmdlZCwgNDAgaW5zZXJ0aW9u cygrKSwgMzIgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvTWFu YWdlYWJpbGl0eVBrZy9JbmNsdWRlL0xpYnJhcnkvQmFzZVBsZG1Qcm90b2NvbExpYi5oDQo+IGIv RmVhdHVyZXMvTWFuYWdlYWJpbGl0eVBrZy9JbmNsdWRlL0xpYnJhcnkvQmFzZVBsZG1Qcm90b2Nv bExpYi5oDQo+ID4gaW5kZXggYTY5ODE5NzI2My4uNDA0NDc0YTAyMyAxMDA2NDQNCj4gPiAtLS0g YS9GZWF0dXJlcy9NYW5hZ2VhYmlsaXR5UGtnL0luY2x1ZGUvTGlicmFyeS9CYXNlUGxkbVByb3Rv Y29sTGliLmgNCj4gPiArKysgYi9GZWF0dXJlcy9NYW5hZ2VhYmlsaXR5UGtnL0luY2x1ZGUvTGli cmFyeS9CYXNlUGxkbVByb3RvY29sTGliLmgNCj4gPiBAQCAtMjEsOSArMjEsOSBAQA0KPiA+ICAq Ki8NCj4gPiAgRUZJX1NUQVRVUw0KPiA+ICBQbGRtU2V0VGVybWludXMgKA0KPiA+IC0gIElOICBV SU5UOCAgIFNvdXJjZUlkLA0KPiA+IC0gIElOICBVSU5UOCAgIERlc3RpbmF0aW9uSWQNCj4gPiAt KTsNCj4gPiArICBJTiAgVUlOVDggIFNvdXJjZUlkLA0KPiA+ICsgIElOICBVSU5UOCAgRGVzdGlu YXRpb25JZA0KPiA+ICsgICk7DQo+ID4NCj4gPiAgLyoqDQo+ID4gICAgVGhpcyBzZXJ2aWNlIGVu YWJsZXMgc3VibWl0dGluZyBjb21tYW5kcyB2aWEgRURLSUkgUExETSBwcm90b2NvbC4NCj4gPiBk aWZmIC0tZ2l0DQo+IGEvRmVhdHVyZXMvTWFuYWdlYWJpbGl0eVBrZy9Vbml2ZXJzYWwvUGxkbVBy b3RvY29sL0NvbW1vbi9QbGRtUHJvdG9jb2xDbw0KPiBtbW9uLmgNCj4gYi9GZWF0dXJlcy9NYW5h Z2VhYmlsaXR5UGtnL1VuaXZlcnNhbC9QbGRtUHJvdG9jb2wvQ29tbW9uL1BsZG1Qcm90b2NvbENv DQo+IG1tb24uaA0KPiA+IGluZGV4IGViMjczYzRmNDYuLjMwZjRkOTU4NDcgMTAwNjQ0DQo+ID4g LS0tDQo+IGEvRmVhdHVyZXMvTWFuYWdlYWJpbGl0eVBrZy9Vbml2ZXJzYWwvUGxkbVByb3RvY29s L0NvbW1vbi9QbGRtUHJvdG9jb2xDbw0KPiBtbW9uLmgNCj4gPiArKysNCj4gYi9GZWF0dXJlcy9N YW5hZ2VhYmlsaXR5UGtnL1VuaXZlcnNhbC9QbGRtUHJvdG9jb2wvQ29tbW9uL1BsZG1Qcm90b2Nv bENvDQo+IG1tb24uaA0KPiA+IEBAIC0xMiw4ICsxMiw4IEBADQo+ID4gICNpbmNsdWRlIDxJbmR1 c3RyeVN0YW5kYXJkL1BsZG0uaD4NCj4gPiAgI2luY2x1ZGUgPExpYnJhcnkvTWFuYWdlYWJpbGl0 eVRyYW5zcG9ydExpYi5oPg0KPiA+DQo+ID4gLSNkZWZpbmUgR0VUX1BMRE1fTUVTU0FHRV9QQVlM T0FEX1NJWkUoUGF5bG9hZFNpemUpIChQYXlsb2FkU2l6ZSAtDQo+IHNpemVvZiAoUExETV9SRVNQ T05TRV9IRUFERVIpKQ0KPiA+IC0jZGVmaW5lIEdFVF9QTERNX01FU1NBR0VfUEFZTE9BRF9QVFIo UGF5bG9hZFB0cikgKChVSU5UOA0KPiAqKVBheWxvYWRQdHIgKyBzaXplb2YgKFBMRE1fUkVTUE9O U0VfSEVBREVSKSkNCj4gPiArI2RlZmluZSBHRVRfUExETV9NRVNTQUdFX1BBWUxPQURfU0laRShQ YXlsb2FkU2l6ZSkgIChQYXlsb2FkU2l6ZSAtDQo+IHNpemVvZiAoUExETV9SRVNQT05TRV9IRUFE RVIpKQ0KPiA+ICsjZGVmaW5lIEdFVF9QTERNX01FU1NBR0VfUEFZTE9BRF9QVFIoUGF5bG9hZFB0 cikgICAgKChVSU5UOA0KPiAqKVBheWxvYWRQdHIgKyBzaXplb2YgKFBMRE1fUkVTUE9OU0VfSEVB REVSKSkNCj4gPg0KPiA+ICB0eXBlZGVmIHN0cnVjdCB7DQo+ID4gICAgVUlOVDggICAgIFBsZG1U eXBlOw0KPiA+IGRpZmYgLS1naXQNCj4gYS9GZWF0dXJlcy9NYW5hZ2VhYmlsaXR5UGtnL0xpYnJh cnkvTWFuYWdlYWJpbGl0eVRyYW5zcG9ydEtjc0xpYi9Db21tb24vSw0KPiBjc0NvbW1vbi5jDQo+ IGIvRmVhdHVyZXMvTWFuYWdlYWJpbGl0eVBrZy9MaWJyYXJ5L01hbmFnZWFiaWxpdHlUcmFuc3Bv cnRLY3NMaWIvQ29tbW9uL0sNCj4gY3NDb21tb24uYw0KPiA+IGluZGV4IDRmN2U3ZDQ1MGYuLmQ4 MDI2N2NiNTcgMTAwNjQ0DQo+ID4gLS0tDQo+IGEvRmVhdHVyZXMvTWFuYWdlYWJpbGl0eVBrZy9M aWJyYXJ5L01hbmFnZWFiaWxpdHlUcmFuc3BvcnRLY3NMaWIvQ29tbW9uL0sNCj4gY3NDb21tb24u Yw0KPiA+ICsrKw0KPiBiL0ZlYXR1cmVzL01hbmFnZWFiaWxpdHlQa2cvTGlicmFyeS9NYW5hZ2Vh YmlsaXR5VHJhbnNwb3J0S2NzTGliL0NvbW1vbi9LDQo+IGNzQ29tbW9uLmMNCj4gPiBAQCAtNDk2 LDcgKzQ5Niw2IEBAIEtjc1JlYWRSZXNwb25zZUhlYWRlciAoDQo+ID4NCj4gPiAgICAqUmVzcG9u c2VIZWFkZXIgPSBOVUxMOw0KPiA+ICAgIGlmIChDb21wYXJlR3VpZCAoJmdNYW5hZ2VhYmlsaXR5 UHJvdG9jb2xNY3RwR3VpZCwgbVNpbmdsZVNlc3Npb25Ub2tlbi0NCj4gPlRva2VuLk1hbmFnZWFi aWxpdHlQcm90b2NvbFNwZWNpZmljYXRpb24pKSB7DQo+ID4gLQ0KPiA+ICAgICAgLy8gRm9yIE1D VFAgb3ZlciBLQ1MNCj4gPiAgICAgIEV4cGVjdGVkSGVhZGVyU2l6ZSA9IHNpemVvZiAoTUFOQUdF QUJJTElUWV9NQ1RQX0tDU19IRUFERVIpOw0KPiA+ICAgICAgREVCVUcgKCgNCj4gPiBAQCAtNzEx LDYgKzcxMCw3IEBAIEtjc1RyYW5zcG9ydFNlbmRDb21tYW5kICgNCj4gPg0KPiA+ICAgICAgICAq UmVzcG9uc2VEYXRhU2l6ZSA9ICgoTUFOQUdFQUJJTElUWV9NQ1RQX0tDU19IRUFERVINCj4gKilS c3BIZWFkZXIpLT5CeXRlQ291bnQ7DQo+ID4gICAgICB9DQo+ID4gKw0KPiA+ICAgICAgRnJlZVBv b2wgKFJzcEhlYWRlcik7DQo+ID4NCj4gPiAgICAgIEV4cGVjdGVkUmVzcG9uc2VEYXRhU2l6ZSA9 ICpSZXNwb25zZURhdGFTaXplOw0KPiA+IGRpZmYgLS1naXQNCj4gYS9GZWF0dXJlcy9NYW5hZ2Vh YmlsaXR5UGtnL0xpYnJhcnkvUGxkbVByb3RvY29sTGlicmFyeS9EeGUvUGxkbVByb3RvY29sTGli Lg0KPiBjDQo+IGIvRmVhdHVyZXMvTWFuYWdlYWJpbGl0eVBrZy9MaWJyYXJ5L1BsZG1Qcm90b2Nv bExpYnJhcnkvRHhlL1BsZG1Qcm90b2NvbExpYi4NCj4gYw0KPiA+IGluZGV4IDM3MjMxYjA3NTYu LjllMWU2NjRkNmIgMTAwNjQ0DQo+ID4gLS0tDQo+IGEvRmVhdHVyZXMvTWFuYWdlYWJpbGl0eVBr Zy9MaWJyYXJ5L1BsZG1Qcm90b2NvbExpYnJhcnkvRHhlL1BsZG1Qcm90b2NvbExpYi4NCj4gYw0K PiA+ICsrKw0KPiBiL0ZlYXR1cmVzL01hbmFnZWFiaWxpdHlQa2cvTGlicmFyeS9QbGRtUHJvdG9j b2xMaWJyYXJ5L0R4ZS9QbGRtUHJvdG9jb2xMaWIuDQo+IGMNCj4gPiBAQCAtMjksOSArMjksOSBA QCBVSU5UOCAgICAgICAgICAgICAgICBtRGVzdGluYXRpb25QbGRtVGVybWludXNJZCA9IDA7DQo+ ID4gICoqLw0KPiA+ICBFRklfU1RBVFVTDQo+ID4gIFBsZG1TZXRUZXJtaW51cyAoDQo+ID4gLSAg SU4gIFVJTlQ4ICAgU291cmNlSWQsDQo+ID4gLSAgSU4gIFVJTlQ4ICAgRGVzdGluYXRpb25JZA0K PiA+IC0pDQo+ID4gKyAgSU4gIFVJTlQ4ICBTb3VyY2VJZCwNCj4gPiArICBJTiAgVUlOVDggIERl c3RpbmF0aW9uSWQNCj4gPiArICApDQo+ID4gIHsNCj4gPiAgICBtU291cmNlUGxkbVRlcm1pbnVz SWQgICAgICA9IFNvdXJjZUlkOw0KPiA+ICAgIG1EZXN0aW5hdGlvblBsZG1UZXJtaW51c0lkID0g RGVzdGluYXRpb25JZDsNCj4gPiBAQCAtMTExLDYgKzExMSw3IEBAIFBsZG1TdWJtaXRDb21tYW5k ICgNCj4gPg0KPiA+ICAgIHJldHVybiBTdGF0dXM7DQo+ID4gIH0NCj4gPiArDQo+ID4gIC8qKg0K PiA+DQo+ID4gICAgSW5pdGlhbGl6ZSBtU291cmNlUGxkbVRlcm1pbnVzSWQgYW5kIG1EZXN0aW5h dGlvblBsZG1UZXJtaW51c0lkLg0KPiA+IEBAIC0xMjgsNyArMTI5LDYgQEAgUGxkbVByb3RvY29s TGliQ29uc3RydWN0b3IgKA0KPiA+ICAgIElOIEVGSV9TWVNURU1fVEFCTEUgICpTeXN0ZW1UYWJs ZQ0KPiA+ICAgICkNCj4gPiAgew0KPiA+IC0NCj4gPiAtICBQbGRtU2V0VGVybWludXMgKFBjZEdl dDgoUGNkUGxkbVNvdXJjZVRlcm1pbnVzSWQpLA0KPiBQY2RHZXQ4KFBjZFBsZG1EZXN0aW5hdGlv bkVuZHBvaW50SWQpKTsNCj4gPiArICBQbGRtU2V0VGVybWludXMgKFBjZEdldDggKFBjZFBsZG1T b3VyY2VUZXJtaW51c0lkKSwgUGNkR2V0OA0KPiAoUGNkUGxkbURlc3RpbmF0aW9uRW5kcG9pbnRJ ZCkpOw0KPiA+ICAgIHJldHVybiBFRklfU1VDQ0VTUzsNCj4gPiAgfQ0KPiA+IGRpZmYgLS1naXQN Cj4gYS9GZWF0dXJlcy9NYW5hZ2VhYmlsaXR5UGtnL1VuaXZlcnNhbC9NY3RwUHJvdG9jb2wvQ29t bW9uL01jdHBQcm90b2NvbENvDQo+IG1tb24uYw0KPiBiL0ZlYXR1cmVzL01hbmFnZWFiaWxpdHlQ a2cvVW5pdmVyc2FsL01jdHBQcm90b2NvbC9Db21tb24vTWN0cFByb3RvY29sQ28NCj4gbW1vbi5j DQo+ID4gaW5kZXggMzcwOWFiMTZlYi4uNTUwOWVkNWFkYSAxMDA2NDQNCj4gPiAtLS0NCj4gYS9G ZWF0dXJlcy9NYW5hZ2VhYmlsaXR5UGtnL1VuaXZlcnNhbC9NY3RwUHJvdG9jb2wvQ29tbW9uL01j dHBQcm90b2NvbENvDQo+IG1tb24uYw0KPiA+ICsrKw0KPiBiL0ZlYXR1cmVzL01hbmFnZWFiaWxp dHlQa2cvVW5pdmVyc2FsL01jdHBQcm90b2NvbC9Db21tb24vTWN0cFByb3RvY29sQ28NCj4gbW1v bi5jDQo+ID4gQEAgLTEyOSwxMSArMTI5LDExIEBAIFNldHVwTWN0cFJlcXVlc3RUcmFuc3BvcnRQ YWNrZXQgKA0KPiA+ICAgIE9VVCAgVUlOVDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgKlBh Y2tldFRyYWlsZXJTaXplDQo+ID4gICAgKQ0KPiA+ICB7DQo+ID4gLSAgTUFOQUdFQUJJTElUWV9N Q1RQX0tDU19IRUFERVIgICpNY3RwS2NzSGVhZGVyOw0KPiA+IC0gIE1DVFBfVFJBTlNQT1JUX0hF QURFUiAgICAgICAgICAqTWN0cFRyYW5zcG9ydEhlYWRlcjsNCj4gPiAtICBNQ1RQX01FU1NBR0Vf SEVBREVSICAgICAgICAgICAgKk1jdHBNZXNzYWdlSGVhZGVyOw0KPiA+IC0gIE1BTkFHRUFCSUxJ VFlfTUNUUF9LQ1NfVFJBSUxFUiAqTWN0cEtjc1RyYWlsZXI7DQo+ID4gLSAgVUlOVDggICAgICAg ICAgICAgICAgICAgICAgICAgICpUaGlzUGFja2FnZTsNCj4gPiArICBNQU5BR0VBQklMSVRZX01D VFBfS0NTX0hFQURFUiAgICpNY3RwS2NzSGVhZGVyOw0KPiA+ICsgIE1DVFBfVFJBTlNQT1JUX0hF QURFUiAgICAgICAgICAgKk1jdHBUcmFuc3BvcnRIZWFkZXI7DQo+ID4gKyAgTUNUUF9NRVNTQUdF X0hFQURFUiAgICAgICAgICAgICAqTWN0cE1lc3NhZ2VIZWFkZXI7DQo+ID4gKyAgTUFOQUdFQUJJ TElUWV9NQ1RQX0tDU19UUkFJTEVSICAqTWN0cEtjc1RyYWlsZXI7DQo+ID4gKyAgVUlOVDggICAg ICAgICAgICAgICAgICAgICAgICAgICAqVGhpc1BhY2thZ2U7DQo+ID4NCj4gPiAgICBpZiAoKFBh Y2tldEhlYWRlciA9PSBOVUxMKSB8fCAoUGFja2V0SGVhZGVyU2l6ZSA9PSBOVUxMKSB8fA0KPiA+ ICAgICAgICAoUGFja2V0Qm9keSA9PSBOVUxMKSB8fCAoUGFja2V0Qm9keVNpemUgPT0gTlVMTCkg fHwNCj4gPiBAQCAtNDYyLDcgKzQ2Miw3IEBAIENvbW1vbk1jdHBTdWJtaXRNZXNzYWdlICgNCj4g PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7 DQo+ID4NCj4gPiAgICAqQWRkaXRpb25hbFRyYW5zZmVyRXJyb3IgPSBUcmFuc2ZlclRva2VuLlRy YW5zcG9ydEFkZGl0aW9uYWxTdGF0dXM7DQo+ID4gLSAgU3RhdHVzID0gVHJhbnNmZXJUb2tlbi5U cmFuc2ZlclN0YXR1czsNCj4gPiArICBTdGF0dXMgICAgICAgICAgICAgICAgICAgPSBUcmFuc2Zl clRva2VuLlRyYW5zZmVyU3RhdHVzOw0KPiA+ICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsN Cj4gPiAgICAgIERFQlVHICgoREVCVUdfRVJST1IsICIlYTogRmFpbGVkIHRvIHNlbmQgTUNUUCBj b21tYW5kIG92ZXIgJXM6DQo+ICVyXG4iLCBfX2Z1bmNfXywgbVRyYW5zcG9ydE5hbWUsIFN0YXR1 cykpOw0KPiA+ICAgICAgcmV0dXJuIFN0YXR1czsNCj4gPiBAQCAtNDgwLDYgKzQ4MCw3IEBAIENv bW1vbk1jdHBTdWJtaXRNZXNzYWdlICgNCj4gPiAgICAgIEZyZWVQb29sIChSZXNwb25zZUJ1ZmZl cik7DQo+ID4gICAgICByZXR1cm4gRUZJX0RFVklDRV9FUlJPUjsNCj4gPiAgICB9DQo+ID4gKw0K PiA+ICAgIGlmIChNY3RwVHJhbnNwb3J0UmVzcG9uc2VIZWFkZXItPkJpdHMuTWVzc2FnZVRhZyAh PQ0KPiBNQ1RQX01FU1NBR0VfVEFHKSB7DQo+ID4gICAgICBERUJVRyAoKA0KPiA+ICAgICAgICBE RUJVR19FUlJPUiwNCj4gPiBAQCAtNDkxLDYgKzQ5Miw3IEBAIENvbW1vbk1jdHBTdWJtaXRNZXNz YWdlICgNCj4gPiAgICAgIEZyZWVQb29sIChSZXNwb25zZUJ1ZmZlcik7DQo+ID4gICAgICByZXR1 cm4gRUZJX0RFVklDRV9FUlJPUjsNCj4gPiAgICB9DQo+ID4gKw0KPiA+ICAgIGlmIChNY3RwVHJh bnNwb3J0UmVzcG9uc2VIZWFkZXItPkJpdHMuVGFnT3duZXIgIT0NCj4gTUNUUF9NRVNTQUdFX1RB R19PV05FUl9SRVNQT05TRSkgew0KPiA+ICAgICAgREVCVUcgKCgNCj4gPiAgICAgICAgREVCVUdf RVJST1IsDQo+ID4gQEAgLTUwMiw2ICs1MDQsNyBAQCBDb21tb25NY3RwU3VibWl0TWVzc2FnZSAo DQo+ID4gICAgICBGcmVlUG9vbCAoUmVzcG9uc2VCdWZmZXIpOw0KPiA+ICAgICAgcmV0dXJuIEVG SV9ERVZJQ0VfRVJST1I7DQo+ID4gICAgfQ0KPiA+ICsNCj4gPiAgICBpZiAoTWN0cFRyYW5zcG9y dFJlc3BvbnNlSGVhZGVyLT5CaXRzLlNvdXJjZUVuZHBvaW50SWQgIT0NCj4gTWN0cERlc3RpbmF0 aW9uRW5kcG9pbnRJZCkgew0KPiA+ICAgICAgREVCVUcgKCgNCj4gPiAgICAgICAgREVCVUdfRVJS T1IsDQo+ID4gQEAgLTUxMyw2ICs1MTYsNyBAQCBDb21tb25NY3RwU3VibWl0TWVzc2FnZSAoDQo+ ID4gICAgICBGcmVlUG9vbCAoUmVzcG9uc2VCdWZmZXIpOw0KPiA+ICAgICAgcmV0dXJuIEVGSV9E RVZJQ0VfRVJST1I7DQo+ID4gICAgfQ0KPiA+ICsNCj4gPiAgICBpZiAoTWN0cFRyYW5zcG9ydFJl c3BvbnNlSGVhZGVyLT5CaXRzLkRlc3RpbmF0aW9uRW5kcG9pbnRJZCAhPQ0KPiBNY3RwU291cmNl RW5kcG9pbnRJZCkgew0KPiA+ICAgICAgREVCVUcgKCgNCj4gPiAgICAgICAgREVCVUdfRVJST1Is DQo+ID4gQEAgLTUyNCw5ICs1MjgsMTEgQEAgQ29tbW9uTWN0cFN1Ym1pdE1lc3NhZ2UgKA0KPiA+ ICAgICAgRnJlZVBvb2wgKFJlc3BvbnNlQnVmZmVyKTsNCj4gPiAgICAgIHJldHVybiBFRklfREVW SUNFX0VSUk9SOw0KPiA+ICAgIH0NCj4gPiArDQo+ID4gICAgaWYgKChNY3RwVHJhbnNwb3J0UmVz cG9uc2VIZWFkZXItPkJpdHMuU3RhcnRPZk1lc3NhZ2UgIT0gMSkgfHwNCj4gPiAgICAgICAgKE1j dHBUcmFuc3BvcnRSZXNwb25zZUhlYWRlci0+Qml0cy5FbmRPZk1lc3NhZ2UgIT0gMSkgfHwNCj4g PiAtICAgICAgKE1jdHBUcmFuc3BvcnRSZXNwb25zZUhlYWRlci0+Qml0cy5QYWNrZXRTZXF1ZW5j ZSAhPSAwKSkgew0KPiA+ICsgICAgICAoTWN0cFRyYW5zcG9ydFJlc3BvbnNlSGVhZGVyLT5CaXRz LlBhY2tldFNlcXVlbmNlICE9IDApKQ0KPiA+ICsgIHsNCj4gPiAgICAgIERFQlVHICgoDQo+ID4g ICAgICAgIERFQlVHX0VSUk9SLA0KPiA+ICAgICAgICAiJWE6IEVycm9yISBNdWx0aXBsZS1wYWNr ZXQgTUNUUCByZXNwb25zZXMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgdGhlDQo+IGN1cnJlbnQgZHJp dmVyXG4iLA0KPiA+IEBAIC01NjEsNyArNTY3LDcgQEAgQ29tbW9uTWN0cFN1Ym1pdE1lc3NhZ2Ug KA0KPiA+ICAgICAgcmV0dXJuIEVGSV9ERVZJQ0VfRVJST1I7DQo+ID4gICAgfQ0KPiA+DQo+ID4g LSAgKlJlc3BvbnNlRGF0YVNpemUgICAgICAgID0gVHJhbnNmZXJUb2tlbi5SZWNlaXZlUGFja2Fn ZS5SZWNlaXZlU2l6ZUluQnl0ZSAtDQo+IHNpemVvZiAoTUNUUF9UUkFOU1BPUlRfSEVBREVSKSAt IHNpemVvZiAoTUNUUF9NRVNTQUdFX0hFQURFUik7DQo+ID4gKyAgKlJlc3BvbnNlRGF0YVNpemUg PSBUcmFuc2ZlclRva2VuLlJlY2VpdmVQYWNrYWdlLlJlY2VpdmVTaXplSW5CeXRlIC0NCj4gc2l6 ZW9mIChNQ1RQX1RSQU5TUE9SVF9IRUFERVIpIC0gc2l6ZW9mIChNQ1RQX01FU1NBR0VfSEVBREVS KTsNCj4gPiAgICBDb3B5TWVtIChSZXNwb25zZURhdGEsIFJlc3BvbnNlQnVmZmVyICsgc2l6ZW9m DQo+IChNQ1RQX1RSQU5TUE9SVF9IRUFERVIpICsgc2l6ZW9mIChNQ1RQX01FU1NBR0VfSEVBREVS KSwNCj4gKlJlc3BvbnNlRGF0YVNpemUpOw0KPiA+ICAgIEZyZWVQb29sIChSZXNwb25zZUJ1ZmZl cik7DQo+ID4NCj4gPiBkaWZmIC0tZ2l0DQo+IGEvRmVhdHVyZXMvTWFuYWdlYWJpbGl0eVBrZy9V bml2ZXJzYWwvTWN0cFByb3RvY29sL0R4ZS9NY3RwUHJvdG9jb2wuYw0KPiBiL0ZlYXR1cmVzL01h bmFnZWFiaWxpdHlQa2cvVW5pdmVyc2FsL01jdHBQcm90b2NvbC9EeGUvTWN0cFByb3RvY29sLmMN Cj4gPiBpbmRleCA3MzQ0NWJmODE2Li5hMTMzMzQxOTA2IDEwMDY0NA0KPiA+IC0tLSBhL0ZlYXR1 cmVzL01hbmFnZWFiaWxpdHlQa2cvVW5pdmVyc2FsL01jdHBQcm90b2NvbC9EeGUvTWN0cFByb3Rv Y29sLmMNCj4gPiArKysgYi9GZWF0dXJlcy9NYW5hZ2VhYmlsaXR5UGtnL1VuaXZlcnNhbC9NY3Rw UHJvdG9jb2wvRHhlL01jdHBQcm90b2NvbC5jDQo+ID4gQEAgLTEwNSwxNCArMTA1LDE2IEBAIE1j dHBTdWJtaXRNZXNzYWdlICgNCj4gPiAgICAvLw0KPiA+ICAgIGlmICgoU291cmNlRWlkID49IE1D VFBfUkVTRVJWRURfRU5EUE9JTlRfU1RBUlRfSUQpICYmDQo+ID4gICAgICAgIChTb3VyY2VFaWQg PD0gTUNUUF9SRVNFUlZFRF9FTkRQT0lOVF9FTkRfSUQpDQo+ID4gLSAgICAgICkgew0KPiA+ICsg ICAgICApDQo+ID4gKyAgew0KPiA+ICAgICAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOiBUaGUg dmFsdWUgb2YgTUNUUCBzb3VyY2UgRUlEICgleCkgaXMNCj4gcmVzZXJ2ZWQuXG4iLCBfX2Z1bmNf XywgTWN0cFNvdXJjZUVuZHBvaW50SWQpKTsNCj4gPiAgICAgIHJldHVybiBFRklfSU5WQUxJRF9Q QVJBTUVURVI7DQo+ID4gICAgfQ0KPiA+DQo+ID4gICAgaWYgKChEZXN0aW5hdGlvbkVpZCA+PSBN Q1RQX1JFU0VSVkVEX0VORFBPSU5UX1NUQVJUX0lEKSAmJg0KPiA+ICAgICAgICAoRGVzdGluYXRp b25FaWQgPD0gTUNUUF9SRVNFUlZFRF9FTkRQT0lOVF9FTkRfSUQpDQo+ID4gLSAgICAgICkgew0K PiA+ICsgICAgICApDQo+ID4gKyAgew0KPiA+ICAgICAgREVCVUcgKChERUJVR19FUlJPUiwgIiVh OiBUaGUgdmFsdWUgb2YgTUNUUCBkZXN0aW5hdGlvbiBFSUQgKCV4KSBpcw0KPiByZXNlcnZlZC5c biIsIF9fZnVuY19fLCBNY3RwRGVzdGluYXRpb25FbmRwb2ludElkKSk7DQo+ID4gICAgICByZXR1 cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KPiA+ICAgIH0NCj4gPiBkaWZmIC0tZ2l0DQo+IGEv RmVhdHVyZXMvTWFuYWdlYWJpbGl0eVBrZy9Vbml2ZXJzYWwvUGxkbVByb3RvY29sL0NvbW1vbi9Q bGRtUHJvdG9jb2xDbw0KPiBtbW9uLmMNCj4gYi9GZWF0dXJlcy9NYW5hZ2VhYmlsaXR5UGtnL1Vu aXZlcnNhbC9QbGRtUHJvdG9jb2wvQ29tbW9uL1BsZG1Qcm90b2NvbENvDQo+IG1tb24uYw0KPiA+ IGluZGV4IDJmMmY3NjYwM2UuLmJiMzg1MjBlYzAgMTAwNjQ0DQo+ID4gLS0tDQo+IGEvRmVhdHVy ZXMvTWFuYWdlYWJpbGl0eVBrZy9Vbml2ZXJzYWwvUGxkbVByb3RvY29sL0NvbW1vbi9QbGRtUHJv dG9jb2xDbw0KPiBtbW9uLmMNCj4gPiArKysNCj4gYi9GZWF0dXJlcy9NYW5hZ2VhYmlsaXR5UGtn L1VuaXZlcnNhbC9QbGRtUHJvdG9jb2wvQ29tbW9uL1BsZG1Qcm90b2NvbENvDQo+IG1tb24uYw0K PiA+IEBAIC0yMzEsNyArMjMxLDcgQEAgQ29tbW9uUGxkbVN1Ym1pdENvbW1hbmQgKA0KPiA+ICAg IFRyYW5zZmVyVG9rZW4uVHJhbnNtaXRQYWNrYWdlLlRyYW5zbWl0VGltZW91dEluTWlsbGlzZWNv bmQgPQ0KPiBNQU5BR0VBQklMSVRZX1RSQU5TUE9SVF9OT19USU1FT1VUOw0KPiA+DQo+ID4gICAg Ly8gU2V0IHJlY2VpdmUgcGFja2V0Lg0KPiA+IC0gIGlmIChSZXNwb25zZURhdGEgPT0gTlVMTCAm JiAqUmVzcG9uc2VEYXRhU2l6ZSA9PSAwKSB7DQo+ID4gKyAgaWYgKChSZXNwb25zZURhdGEgPT0g TlVMTCkgJiYgKCpSZXNwb25zZURhdGFTaXplID09IDApKSB7DQo+ID4gICAgICBGdWxsUGFja2V0 UmVzcG9uc2VEYXRhU2l6ZSA9IHNpemVvZiAoUExETV9SRVNQT05TRV9IRUFERVIpOw0KPiA+ICAg IH0gZWxzZSB7DQo+ID4gICAgICBGdWxsUGFja2V0UmVzcG9uc2VEYXRhU2l6ZSA9ICpSZXNwb25z ZURhdGFTaXplICsgc2l6ZW9mDQo+IChQTERNX1JFU1BPTlNFX0hFQURFUik7DQo+ID4gQEAgLTMy NiwxNiArMzI2LDE2IEBAIENvbW1vblBsZG1TdWJtaXRDb21tYW5kICgNCj4gPiAgICAgIGdvdG8g RXJyb3JFeGl0Ow0KPiA+ICAgIH0NCj4gPg0KPiA+IC0gIGlmICgqUmVzcG9uc2VEYXRhU2l6ZSA8 DQo+IEdFVF9QTERNX01FU1NBR0VfUEFZTE9BRF9TSVpFKFRyYW5zZmVyVG9rZW4uUmVjZWl2ZVBh Y2thZ2UuUmVjZWl2ZVNpeg0KPiBlSW5CeXRlKSkgew0KPiA+ICsgIGlmICgqUmVzcG9uc2VEYXRh U2l6ZSA8IEdFVF9QTERNX01FU1NBR0VfUEFZTE9BRF9TSVpFDQo+IChUcmFuc2ZlclRva2VuLlJl Y2VpdmVQYWNrYWdlLlJlY2VpdmVTaXplSW5CeXRlKSkgew0KPiA+ICAgICAgREVCVUcgKChERUJV R19FUlJPUiwgIiAgVGhlIHNpemUgb2YgcmVzcG9uc2UgaXMgbm90IG1hdGNoZWQgdG8NCj4gUmVx dWVzdERhdGFTaXplIGFzc2lnbmVkIGJ5IGNhbGxlci5cbiIpKTsNCj4gPiAgICAgIERFQlVHICgo DQo+ID4gICAgICAgIERFQlVHX0VSUk9SLA0KPiA+ICAgICAgICAiQ2FsbGVyIGV4cGVjdHMgJWQs IHRoZSByZXNwb25zZSBzaXplIG1pbnVzIFBMRE1fUkVTUE9OU0VfSEVBREVSIHNpemUNCj4gaXMg JWQsIENvbXBsZXRpb24gQ29kZSAlZC5cbiIsDQo+ID4gICAgICAgICpSZXNwb25zZURhdGFTaXpl LA0KPiA+IC0NCj4gR0VUX1BMRE1fTUVTU0FHRV9QQVlMT0FEX1NJWkUoVHJhbnNmZXJUb2tlbi5S ZWNlaXZlUGFja2FnZS5SZWNlaXZlU2l6DQo+IGVJbkJ5dGUpLA0KPiA+ICsgICAgICBHRVRfUExE TV9NRVNTQUdFX1BBWUxPQURfU0laRQ0KPiAoVHJhbnNmZXJUb2tlbi5SZWNlaXZlUGFja2FnZS5S ZWNlaXZlU2l6ZUluQnl0ZSksDQo+ID4gICAgICAgIFJlc3BvbnNlSGVhZGVyLT5QbGRtQ29tcGxl dGlvbkNvZGUNCj4gPiAgICAgICAgKSk7DQo+ID4gLSAgICBIZWxwZXJNYW5hZ2VhYmlsaXR5RGVi dWdQcmludCAoKFZPSUQgKilGdWxsUGFja2V0UmVzcG9uc2VEYXRhLA0KPiBHRVRfUExETV9NRVNT QUdFX1BBWUxPQURfU0laRShUcmFuc2ZlclRva2VuLlJlY2VpdmVQYWNrYWdlLlJlY2VpdmVTaXoN Cj4gZUluQnl0ZSksICJGYWlsZWQgcmVzcG9uc2UgcGF5bG9hZFxuIik7DQo+ID4gKyAgICBIZWxw ZXJNYW5hZ2VhYmlsaXR5RGVidWdQcmludCAoKFZPSUQgKilGdWxsUGFja2V0UmVzcG9uc2VEYXRh LA0KPiBHRVRfUExETV9NRVNTQUdFX1BBWUxPQURfU0laRQ0KPiAoVHJhbnNmZXJUb2tlbi5SZWNl aXZlUGFja2FnZS5SZWNlaXZlU2l6ZUluQnl0ZSksICJGYWlsZWQgcmVzcG9uc2UgcGF5bG9hZFxu Iik7DQo+ID4gICAgICBTdGF0dXMgPSBFRklfREVWSUNFX0VSUk9SOw0KPiA+ICAgICAgZ290byBF cnJvckV4aXQ7DQo+ID4gICAgfQ0KPiA+IEBAIC0zNDUsMTAgKzM0NSwxMCBAQCBDb21tb25QbGRt U3VibWl0Q29tbWFuZCAoDQo+ID4NCj4gPiAgICAvLyBDb3B5IHJlc3BvbnNlIGRhdGEgKHdpdGhv dXQgaGVhZGVyKSB0byBjYWxsZXIncyBidWZmZXIuDQo+ID4gICAgaWYgKChSZXNwb25zZURhdGEg IT0gTlVMTCkgJiYgKCpSZXNwb25zZURhdGFTaXplICE9IDApKSB7DQo+ID4gLSAgICAqUmVzcG9u c2VEYXRhU2l6ZSA9DQo+IEdFVF9QTERNX01FU1NBR0VfUEFZTE9BRF9TSVpFKFRyYW5zZmVyVG9r ZW4uUmVjZWl2ZVBhY2thZ2UuUmVjZWl2ZVNpeg0KPiBlSW5CeXRlKTsNCj4gPiArICAgICpSZXNw b25zZURhdGFTaXplID0gR0VUX1BMRE1fTUVTU0FHRV9QQVlMT0FEX1NJWkUNCj4gKFRyYW5zZmVy VG9rZW4uUmVjZWl2ZVBhY2thZ2UuUmVjZWl2ZVNpemVJbkJ5dGUpOw0KPiA+ICAgICAgQ29weU1l bSAoDQo+ID4gICAgICAgIChWT0lEICopUmVzcG9uc2VEYXRhLA0KPiA+IC0gICAgICBHRVRfUExE TV9NRVNTQUdFX1BBWUxPQURfUFRSKEZ1bGxQYWNrZXRSZXNwb25zZURhdGEpLA0KPiA+ICsgICAg ICBHRVRfUExETV9NRVNTQUdFX1BBWUxPQURfUFRSIChGdWxsUGFja2V0UmVzcG9uc2VEYXRhKSwN Cj4gPiAgICAgICAgKlJlc3BvbnNlRGF0YVNpemUNCj4gPiAgICAgICAgKTsNCj4gPiAgICB9DQo+ ID4gZGlmZiAtLWdpdA0KPiBhL0ZlYXR1cmVzL01hbmFnZWFiaWxpdHlQa2cvVW5pdmVyc2FsL1Bs ZG1Qcm90b2NvbC9EeGUvUGxkbVByb3RvY29sLmMNCj4gYi9GZWF0dXJlcy9NYW5hZ2VhYmlsaXR5 UGtnL1VuaXZlcnNhbC9QbGRtUHJvdG9jb2wvRHhlL1BsZG1Qcm90b2NvbC5jDQo+ID4gaW5kZXgg MDU4Zjk4ZTY3Ny4uZmNlODAyOWI5YyAxMDA2NDQNCj4gPiAtLS0gYS9GZWF0dXJlcy9NYW5hZ2Vh YmlsaXR5UGtnL1VuaXZlcnNhbC9QbGRtUHJvdG9jb2wvRHhlL1BsZG1Qcm90b2NvbC5jDQo+ID4g KysrIGIvRmVhdHVyZXMvTWFuYWdlYWJpbGl0eVBrZy9Vbml2ZXJzYWwvUGxkbVByb3RvY29sL0R4 ZS9QbGRtUHJvdG9jb2wuYw0KPiA+IEBAIC02Myw3ICs2Myw3IEBAIFBsZG1TdWJtaXRDb21tYW5k ICgNCj4gPiAgICAvLw0KPiA+ICAgIC8vIENoZWNrIHRoZSBnaXZlbiBpbnB1dCBwYXJhbWV0ZXJz Lg0KPiA+ICAgIC8vDQo+ID4gLSAgaWYgKFJlcXVlc3REYXRhID09IE5VTEwgJiYgUmVxdWVzdERh dGFTaXplICE9IDApIHsNCj4gPiArICBpZiAoKFJlcXVlc3REYXRhID09IE5VTEwpICYmIChSZXF1 ZXN0RGF0YVNpemUgIT0gMCkpIHsNCj4gPiAgICAgIERFQlVHICgoDQo+ID4gICAgICAgIERFQlVH X0VSUk9SLA0KPiA+ICAgICAgICAiJWE6IFJlcXVlc3REYXRhU2l6ZSAhPSAwLCBob3dldmVyIFJl cXVlc3REYXRhIGlzIE5VTEwgZm9yIFBMRE0gdHlwZToNCj4gMHgleCwgQ29tbWFuZDogMHgleC5c biIsDQo+ID4gQEAgLTc0LDcgKzc0LDcgQEAgUGxkbVN1Ym1pdENvbW1hbmQgKA0KPiA+ICAgICAg cmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gPiAgICB9DQo+ID4NCj4gPiAtICBpZiAo UmVxdWVzdERhdGEgIT0gTlVMTCAmJiBSZXF1ZXN0RGF0YVNpemUgPT0gMCkgew0KPiA+ICsgIGlm ICgoUmVxdWVzdERhdGEgIT0gTlVMTCkgJiYgKFJlcXVlc3REYXRhU2l6ZSA9PSAwKSkgew0KPiA+ ICAgICAgREVCVUcgKCgNCj4gPiAgICAgICAgREVCVUdfRVJST1IsDQo+ID4gICAgICAgICIlYTog UmVxdWVzdERhdGFTaXplID09IDAsIGhvd2V2ZXIgUmVxdWVzdERhdGEgaXMgbm90IE5VTEwgZm9y IFBMRE0NCj4gdHlwZTogMHgleCwgQ29tbWFuZDogMHgleC5cbiIsDQo+ID4gQEAgLTg1LDcgKzg1 LDcgQEAgUGxkbVN1Ym1pdENvbW1hbmQgKA0KPiA+ICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BB UkFNRVRFUjsNCj4gPiAgICB9DQo+ID4NCj4gPiAtICBpZiAoUmVzcG9uc2VEYXRhID09IE5VTEwg JiYgKlJlc3BvbnNlRGF0YVNpemUgIT0gMCkgew0KPiA+ICsgIGlmICgoUmVzcG9uc2VEYXRhID09 IE5VTEwpICYmICgqUmVzcG9uc2VEYXRhU2l6ZSAhPSAwKSkgew0KPiA+ICAgICAgREVCVUcgKCgN Cj4gPiAgICAgICAgREVCVUdfRVJST1IsDQo+ID4gICAgICAgICIlYTogKlJlc3BvbnNlRGF0YVNp emUgIT0gMCwgaG93ZXZlciBSZXNwb25zZURhdGEgaXMgTlVMTCBmb3IgUExETQ0KPiB0eXBlOiAw eCV4LCBDb21tYW5kOiAweCV4LlxuIiwNCj4gPiBAQCAtOTYsNyArOTYsNyBAQCBQbGRtU3VibWl0 Q29tbWFuZCAoDQo+ID4gICAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KPiA+ICAg IH0NCj4gPg0KPiA+IC0gIGlmIChSZXNwb25zZURhdGEgIT0gTlVMTCAmJiAqUmVzcG9uc2VEYXRh U2l6ZSA9PSAwKSB7DQo+ID4gKyAgaWYgKChSZXNwb25zZURhdGEgIT0gTlVMTCkgJiYgKCpSZXNw b25zZURhdGFTaXplID09IDApKSB7DQo+ID4gICAgICBERUJVRyAoKA0KPiA+ICAgICAgICBERUJV R19FUlJPUiwNCj4gPiAgICAgICAgIiVhOiAqUmVzcG9uc2VEYXRhU2l6ZSA9PSAwLCBob3dldmVy IFJlc3BvbnNlRGF0YSBpcyBub3QgTlVMTCBmb3IgUExETQ0KPiB0eXBlOiAweCV4LCBDb21tYW5k OiAweCV4LlxuIiwNCj4gPiBkaWZmIC0tZ2l0DQo+IGEvRmVhdHVyZXMvTWFuYWdlYWJpbGl0eVBr Zy9Vbml2ZXJzYWwvUGxkbVNtYmlvc1RyYW5zZmVyRHhlL1BsZG1TbWJpb3NUcmENCj4gbnNmZXJE eGUuYw0KPiBiL0ZlYXR1cmVzL01hbmFnZWFiaWxpdHlQa2cvVW5pdmVyc2FsL1BsZG1TbWJpb3NU cmFuc2ZlckR4ZS9QbGRtU21iaW9zVHJhDQo+IG5zZmVyRHhlLmMNCj4gPiBpbmRleCAzNTdhN2Q0 OWU0Li44MWU5YWRmNTcxIDEwMDY0NA0KPiA+IC0tLQ0KPiBhL0ZlYXR1cmVzL01hbmFnZWFiaWxp dHlQa2cvVW5pdmVyc2FsL1BsZG1TbWJpb3NUcmFuc2ZlckR4ZS9QbGRtU21iaW9zVHJhDQo+IG5z ZmVyRHhlLmMNCj4gPiArKysNCj4gYi9GZWF0dXJlcy9NYW5hZ2VhYmlsaXR5UGtnL1VuaXZlcnNh bC9QbGRtU21iaW9zVHJhbnNmZXJEeGUvUGxkbVNtYmlvc1RyYQ0KPiBuc2ZlckR4ZS5jDQo+ID4g QEAgLTQ5LDcgKzQ5LDcgQEAgU2V0UGxkbVNtYmlvc1RyYW5zZmVyVGVybWludXNJZCAoDQo+ID4g ICAgSU4gIFVJTlQ4ICBEZXN0aW5hdGlvbklkDQo+ID4gICAgKQ0KPiA+ICB7DQo+ID4gLSAgcmV0 dXJuIFBsZG1TZXRUZXJtaW51cyhTb3VyY2VJZCwgRGVzdGluYXRpb25JZCk7DQo+ID4gKyAgcmV0 dXJuIFBsZG1TZXRUZXJtaW51cyAoU291cmNlSWQsIERlc3RpbmF0aW9uSWQpOw0KPiA+ICB9DQo+ ID4NCj4gPiAgLyoqDQo+IA0KPiBsb29rcyBPSyBmcm9tIGEgcXVpY2sgc2tpbQ0KPiANCj4gQWNr ZWQtYnk6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQoNCg0KCi09LT0tPS09LT0t PS09LT0tPS09LT0tCkdyb3Vwcy5pbyBMaW5rczogWW91IHJlY2VpdmUgYWxsIG1lc3NhZ2VzIHNl bnQgdG8gdGhpcyBncm91cC4KVmlldy9SZXBseSBPbmxpbmUgKCMxMTAyOTQpOiBodHRwczovL2Vk azIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS8xMTAyOTQKTXV0ZSBUaGlzIFRvcGljOiBodHRw czovL2dyb3Vwcy5pby9tdC8xMDIxOTU4NjcvNzY4NjE3NgpHcm91cCBPd25lcjogZGV2ZWwrb3du ZXJAZWRrMi5ncm91cHMuaW8KVW5zdWJzY3JpYmU6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9k ZXZlbC91bnN1YiBbcmViZWNjYUBvcGVuZncuaW9dCi09LT0tPS09LT0tPS09LT0tPS09LT0tCgoN Cg==