From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web10.27640.1679434813679612525 for ; Tue, 21 Mar 2023 14:40:13 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=PwvTB5+b; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1679434813; x=1710970813; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=rMFtDMUYedVbVQqfkjddcBLDrNAuNqgBDlVPFTbZGoE=; b=PwvTB5+bBts6YqX3UX8JjpuirapsLq8JE3YXutmPhZzoS8NYERouUyR0 6xAnziMUJ4cvfxWpOpAXpK+v/Gnf6dvbRe/DrkpRge3YBqghl/wGK/xNM IfATXRjTQXzuuU10XkBxQOYI2LX1TA3jDis5ZrH20kFGlDQYxoRPUjvar psowhOAMj33AKwlUTWiJJn5ghdpWDtbeJTNDSMsrkr7LRSVg0No7OI1Q/ 2TEjkQl2mHYN57g9ICWw+e5R1h2zojYwUg5aR6B03TExwy+rqv69hbEWn YTAHk0Cd95xFS4VGDu4z8sHu9ZItqpAqnIJrTQMznIumZRbJms1laEs+g g==; X-IronPort-AV: E=McAfee;i="6600,9927,10656"; a="318710842" X-IronPort-AV: E=Sophos;i="5.98,279,1673942400"; d="scan'208";a="318710842" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Mar 2023 14:40:13 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10656"; a="825127880" X-IronPort-AV: E=Sophos;i="5.98,279,1673942400"; d="scan'208";a="825127880" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga001.fm.intel.com with ESMTP; 21 Mar 2023 14:40:12 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) 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.21; Tue, 21 Mar 2023 14:40:10 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21 via Frontend Transport; Tue, 21 Mar 2023 14:40:10 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.48) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.21; Tue, 21 Mar 2023 14:40:10 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CDK8lK1Re+fOG0mN14qTz/KZexNFB87lXXnCxg8UFJ6+suvRAqZ0lqe7iZyh6da8ld06Jbg9jBxk7SBBSmYl1aZ7t8F/jCAX6D6jCIXZN7DFNJbIF1AUnDMVT2tYXMI7SV7qJ1qIsn+iyzbypmMqyC/d2XDB/m+7lzMQS7L5txCpJXRzIrqk1JEe1OgUw6NiIEJ7/CJSmfiSOx1sArIhHPGbnjGi/GKWuMFYjhkAAOZanWXa+mZdC/L4LWJ7+sXC2DcrhigfFHrz7aDKzLWDubV1d7+7jf4gVZNlnMRvqM3iudPbJQGGULrt5vAWmhacR/+b8TdqVuaG/O9wh+AY7A== 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=rMFtDMUYedVbVQqfkjddcBLDrNAuNqgBDlVPFTbZGoE=; b=K+MmtU4DJq7Fs/KvPxkva5VLWGuT9SvmfgImlgiZVzzt3Oo0COB9WodUMPrlq6tOnqb9J808NEslIOg8d3f1t4elGqInw1CAZLTH+L/1QBttAaaxvrrr2wzkVV5O3OtFScgpT1c0mf3ThWTIuv/ErYLVfeXZNRpnYfCIyKxF5gmI2MbwmVXHrvLbDmK5xCzF6dIS4pUYiq/UYIoWVyK6JuH/PkDS0qzOXK8ZiR+Zw9dmH1xNb+56rN2bhoCdfSD3vETsKOgfJ2IAb+j9mXlT8DrG6C9vVen1mPpyr8Eu6ZMuAFtOgryt+GDF6ekiS6h/6slSwfYbZ7/z/NqgssM58g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by SJ0PR11MB4781.namprd11.prod.outlook.com (2603:10b6:a03:2d8::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.37; Tue, 21 Mar 2023 21:40:06 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::76be:1164:2c1f:90a5]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::76be:1164:2c1f:90a5%8]) with mapi id 15.20.6178.037; Tue, 21 Mar 2023 21:40:06 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "kraxel@redhat.com" CC: Ard Biesheuvel , "Wang, Jian J" , "Yao, Jiewen" , =?utf-8?B?TWFydmluIEjDpHVzZXI=?= , James Bottomley , Michael Roth , "Wu, Hao A" , Oliver Steffen , "Xu, Min M" , "Gao, Liming" , "Ni, Ray" , Tom Lendacky , "Aktas, Erdem" , "Liu, Zhiguang" , "Pawel Polawski" , "Justen, Jordan L" , "Kinney, Michael D" Subject: Re: [edk2-devel] [PATCH 1/5] MdeModulePkg: Rename IS_ALIGNED macros to avoid name collisions Thread-Topic: [edk2-devel] [PATCH 1/5] MdeModulePkg: Rename IS_ALIGNED macros to avoid name collisions Thread-Index: AQHZTZyaoE6P5O2EL0OWKR+tWZQ/vq8F4BlA Date: Tue, 21 Mar 2023 21:40:06 +0000 Message-ID: References: <20230303065115.406020-1-kraxel@redhat.com> <20230303065115.406020-2-kraxel@redhat.com> In-Reply-To: <20230303065115.406020-2-kraxel@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO1PR11MB4929:EE_|SJ0PR11MB4781:EE_ x-ms-office365-filtering-correlation-id: 3448d68b-d520-4c5f-02b5-08db2a54d680 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: BwRlbBoaiEcoU3LzmlTAQqiQ0NJ2Kj9TSZSAhCozhAJ3bcDDz51ogJk8HsndAz7pOXXZkOOACrMhnTk0i7Du8Q5LX7db7Bc9EZ5HndaP9LmkVUScUsXwea69anvYhXLB9TGN+9HKK8IA1NZrRItJGLgkdmQ5U8gcr402IPjtnJFY0kX06Fth2MIg7hCkROtFwCmuG++B1INFXcEUaw7wwbw5vWZAiYDKDB09PGHA0OxP/1hVr2NaQ1c2+7XAvS8AhAC5m//xFqhYP+MplL7qoFB0osL1dS9FngCmuMZKHMEm7lmE6GWLtuuNW4/Yd5UjcCMUqkceUhOpwWadUbg/8NoqAOvgWmeFgyi54XiqX2kwJdLCxcZMSnlXgSdCXAgCIZ5RX8BqVk+hUr+LDMPh3Z8g8Axjg2N51xuCSrH3apol4Zr0Rg05vjgXFq9wdCuHRjLjL/MF8Pe/khxTeOknE/ObbcKB1oelyQw6XjIDaBTs3etxqz9jJemrvwI9k+9CZrTRgRRiWHYg0eBoBxeJwbJoXA7HIVsDrlQQXaIQOu6Ul8OKh5G9q93ZXU/ZkaJHujVLGjgbWR2bIPObW94pJ44lCkPNJsEmVOXA9VYmCtQxdTUJ44YOZJmlu/uy41Yp3aHkk64qu+xv0CapfbZ2+0pttxW69WZqnAUNv2nMoBMIzkN49InthDvRv9CtBOfqFuW+2KO20qObzkQ1i2qwBhzE3BD12cX1mdM7HCAYKnk= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(366004)(346002)(376002)(39860400002)(396003)(136003)(451199018)(53546011)(186003)(107886003)(38070700005)(82960400001)(966005)(6506007)(26005)(9686003)(66899018)(71200400001)(38100700002)(110136005)(7696005)(316002)(66574015)(478600001)(2906002)(86362001)(122000001)(83380400001)(55016003)(76116006)(33656002)(30864003)(54906003)(7416002)(4326008)(5660300002)(66556008)(41300700001)(8936002)(64756008)(8676002)(66446008)(52536014)(66476007)(66946007)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Y2VrSjEvblc5UzVtaDVzMlY2OTVMWFJKdXlTcGZhWnlVbVllWGR5NFEwd1Fr?= =?utf-8?B?YWIxdVdZTFpCMW5IaHhMampUKzVMNldqNmpFWWkxYlFlc1c0MkRIVGc5WlV3?= =?utf-8?B?Rm40a083RmYvenNiemQ4TnVJa1ZXS2RkejlncG11N0NneFdQa3k5c1laa1BR?= =?utf-8?B?c1Jmb0M0M0hDS0I0bWdDSlVqd05XUUQ2c0lsOE4xV3JuUEZ1WGY4VXJCRG5l?= =?utf-8?B?VWJ3Sm1tcldSamFHTDdoTnU2V0tuUHg3SWJqNW12SzZNQTFMck5aREtpUklh?= =?utf-8?B?NXJyaG9ZQzJkenpIWmhzWWFxZ2l3Q1NnMFZKY1QzdHB2cXRvY2RZVXRGaE9T?= =?utf-8?B?QktzL1NmczdaTkU3Q3NuQnphYW5ZU2tFcjBXWjJmMVZQSVpRYkhBT3FuL3JC?= =?utf-8?B?bFowdnJMbmtheTh0bVZwU2VaMkhRVGVDaFhuNGtFUmZHZnJFSGpiRm1pdDkv?= =?utf-8?B?WkoxT0NwMkxYMVpCRDJkcEM1TVNNbis4NmQ3QTdOYmZRZ1FvYlVxbGw2Sno0?= =?utf-8?B?WXdRUlZjdUgzU3ozWVdadmZhN2NrZC9md1lITlJBK09iSW02VHU3MkI2VDBi?= =?utf-8?B?cEpmU1JJbzVyQ0JjYytZbWFpbGE1VEdzN0xQREJPa2wrYTUvTGFQcjZjVU9h?= =?utf-8?B?RXJ2TnVNYVIwanVxS0s3TERrRFVQbXJTV0pSMTM4SG5kR3V2UU1UTEZSenBr?= =?utf-8?B?enlSSng2ckxoQVRnVy85ZXBCTmZ1cjBoODUwQzFjSjRZUE54RHJEUU5hckU4?= =?utf-8?B?cFdXS05CUmx3QXQyQ090aE9tMW9NSG1Kdit3RmRvT1hLaFJCVDMrRS9rN3ZN?= =?utf-8?B?OFZHVzltL3hPdDhPcElJY2tlU1FkY0FzbUllaWk4ODg2M2t1TFA4ZGkxdzRo?= =?utf-8?B?eDk3S3JoTWlWOXlZYmErbVFPcVgxQlBKaTNpYVNwZDNHOTd4bVNlS2paYWti?= =?utf-8?B?RG9samp4Z2VkQVVlV3Mra0tqOW5ia3FQYzNZQVh2MWNMNWpWdEV0cCs3T3g3?= =?utf-8?B?WHhuSzN1bzl1NlFWMmdMbUpKNHlmVTRIczZoZkdkU0k3N3h2aTNqVDR6TU9F?= =?utf-8?B?YmV4UG41QTh6NFhEU3o4eTNYeHhnWFZmbDNDUTY3ZGVxdWZxaDlpRUhpYU9a?= =?utf-8?B?S05GdU9aeE1iNmROdTVLcmZ5UGV3cml6Qk5uOUVqZEU1SVp3Vm1Mc2tLVDJa?= =?utf-8?B?R09lT0g1YzFoME1qQlZRNE1XUzdKSi9sazVSVHNzN1MzMUViMHdHT0trR2F6?= =?utf-8?B?aWdsakhHdWc4NUxXRTcyVVBLSDQrSEVnUjd5VDkwK0ZlZ2FCblBWdC9NcnlN?= =?utf-8?B?emhtVHF6K1lTcmRNdGxVenlDczZhbTFKVEJ3Vy9vQTNwVitlZ20zOWVoVjJq?= =?utf-8?B?K29wQ1BXNnFwSXVmSCtPUWgxRGdJa0EwZVA1TGVDTkQwc3A0bXBzQ2pYYmtn?= =?utf-8?B?OFN5ZUkvUjNEVGpTd1QxZTJTTkRuSUJ3Tzd3ZFF5Mm9wY1QyZWpYeEE0cnNU?= =?utf-8?B?TUF0Q29YVGpsbkFZbFN4NldhWUZ4ZWNBYnpmL3lQT29JRkFma2JweU4yQk9n?= =?utf-8?B?dC92eTJPNG5WbExWN2Jabm9CTDM3ZWZFVzJjRjhERU5Iejd1TWhGTWtzdmtY?= =?utf-8?B?WjdQaDhzaWlHcFc3MjRmaEdCY01ZeXFTcVJBTXNRVUZuZzY0ak5zcVJoa2xl?= =?utf-8?B?d20veFJsS01wb0VudDBlWmROWDBiMDF2RnluZW1qMGVWVC9oM2VKVEtFQkZ0?= =?utf-8?B?REFHSmUxU0N6OTlRWDFIaGlYRDJXVWk5ZHA2dTdQK1ExU2x5N0lKUXBJb0xr?= =?utf-8?B?VU9NWVpaNzJ2RC9XZFpSMHpMa1ZLblBEK1BUNUphbmdrdEp2QnlFMHpFbTNP?= =?utf-8?B?MWJBQ0IraXpYNXI2RTFOUGY2dVYxT3JISHNnSXpLalBtUW5Yb3lXY25abmk4?= =?utf-8?B?VE1ZUjBodWZvbk12Q0RyaTJZRkcrNDljTCtOMWFPL1EyKzNuVDB1a0x4Qmhy?= =?utf-8?B?ZkwrOG1mbzlFblRXZjZnSlZjYjRpQkxOYXlsWDE5WllRMkxnb3ZxWTZrZno4?= =?utf-8?B?a2E4cm9PMVV0Skk3czVQeng4Znp0aFBPMEFBYXpPTVVZS1RBU0QwcFNXL1Nx?= =?utf-8?B?QVB3dWtlQ0VVa1hERERKb1BBTk5RMGRzeVd1MmFKUDRJK3hxS1V0WW5RYTRX?= =?utf-8?B?cUE9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3448d68b-d520-4c5f-02b5-08db2a54d680 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Mar 2023 21:40:06.6748 (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: jNowL/PuoZDIT9gGlQxrx8hIUqeONibdpDHi/8HqttASDPVTiXNSnJvZvkfsyMf5eyy7jDtdEDs5g2R/xRn6pS9yh+00064v0sEhnYAyixg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB4781 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UmV2aWV3ZWQtYnk6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t Pg0KDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5n cm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgR2VyZCBIb2ZmbWFu bg0KPiBTZW50OiBUaHVyc2RheSwgTWFyY2ggMiwgMjAyMyAxMDo1MSBQTQ0KPiBUbzogZGV2ZWxA ZWRrMi5ncm91cHMuaW8NCj4gQ2M6IEFyZCBCaWVzaGV1dmVsIDxhcmRiK3RpYW5vY29yZUBrZXJu ZWwub3JnPjsgR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+OyBXYW5nLCBKaWFuIEog PGppYW4uai53YW5nQGludGVsLmNvbT47IFlhbywNCj4gSmlld2VuIDxqaWV3ZW4ueWFvQGludGVs LmNvbT47IE1hcnZpbiBIw6R1c2VyIDxtaGFldXNlckBwb3N0ZW8uZGU+OyBKYW1lcyBCb3R0b21s ZXkgPGplamJAbGludXguaWJtLmNvbT47IE1pY2hhZWwgUm90aA0KPiA8bWljaGFlbC5yb3RoQGFt ZC5jb20+OyBXdSwgSGFvIEEgPGhhby5hLnd1QGludGVsLmNvbT47IEtpbm5leSwgTWljaGFlbCBE IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IE9saXZlciBTdGVmZmVuDQo+IDxvc3RlZmZl bkByZWRoYXQuY29tPjsgWHUsIE1pbiBNIDxtaW4ubS54dUBpbnRlbC5jb20+OyBHYW8sIExpbWlu ZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47 IFRvbQ0KPiBMZW5kYWNreSA8dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+OyBBa3RhcywgRXJkZW0g PGVyZGVtYWt0YXNAZ29vZ2xlLmNvbT47IExpdSwgWmhpZ3VhbmcgPHpoaWd1YW5nLmxpdUBpbnRl bC5jb20+OyBQYXdlbCBQb2xhd3NraQ0KPiA8cHBvbGF3c2tAcmVkaGF0LmNvbT47IEp1c3Rlbiwg Sm9yZGFuIEwgPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFtlZGsyLWRl dmVsXSBbUEFUQ0ggMS81XSBNZGVNb2R1bGVQa2c6IFJlbmFtZSBJU19BTElHTkVEIG1hY3JvcyB0 byBhdm9pZCBuYW1lIGNvbGxpc2lvbnMNCj4gDQo+IEZyb206IE1hcnZpbiBIw6R1c2VyIDxtaGFl dXNlckBwb3N0ZW8uZGU+DQo+IA0KPiBUaGlzIHBhdGNoIGlzIGEgcHJlcGFyYXRpb24gZm9yIHRo ZSBwYXRjaGVzIHRoYXQgZm9sbG93LiBUaGUNCj4gc3Vic2VxdWVudCBwYXRjaGVzIHdpbGwgaW50 cm9kdWNlIGFuZCBpbnRlZ3JhdGUgbmV3IGFsaWdubWVudC1yZWxhdGVkDQo+IG1hY3Jvcywgd2hp Y2ggY29sbGlkZSB3aXRoIGV4aXN0aW5nIGRlZmluaXRpb25zIGluIE1kZU1vZHVsZVBrZy4NCj4g VGVtcG9yYXJpbHkgcmVuYW1lIHRoZW0gdG8gYXZvaWQgYnVpbGQgZmFpbHVyZSwgdGlsbCB0aGV5 IGNhbiBiZQ0KPiBzdWJzdGl0dXRlZCB3aXRoIHRoZSBuZXcsIHNoYXJlZCBkZWZpbml0aW9ucy4N Cj4gDQo+IENjOiBKaWFuIEogV2FuZyA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiBDYzogSGFv IEEgV3UgPGhhby5hLnd1QGludGVsLmNvbT4NCj4gQ2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNv bT4NCj4gU2lnbmVkLW9mZi1ieTogTWFydmluIEjDpHVzZXIgPG1oYWV1c2VyQHBvc3Rlby5kZT4N Cj4gLS0tDQo+ICBNZGVNb2R1bGVQa2cvQnVzL0F0YS9BaGNpUGVpL0FoY2lQZWkuaCAgICAgICAg fCAgNCArLS0NCj4gIC4uLi9BdGEvQXRhQXRhcGlQYXNzVGhydS9BdGFBdGFwaVBhc3NUaHJ1Lmgg ICB8ICAyICstDQo+ICBNZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFCdXNEeGUvQXRhQnVzLmggICAg ICAgfCAgMiArLQ0KPiAgTWRlTW9kdWxlUGtnL0J1cy9TY3NpL1Njc2lEaXNrRHhlL1Njc2lEaXNr LmggIHwgIDIgKy0NCj4gIC4uLi9CdXMvVWZzL1Vmc0Jsb2NrSW9QZWkvVWZzQmxvY2tJb1BlaS5o ICAgICB8ICAyICstDQo+ICAuLi4vQnVzL1Vmcy9VZnNQYXNzVGhydUR4ZS9VZnNQYXNzVGhydS5o ICAgICAgfCAgMiArLQ0KPiAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9FYmNEeGUvRWJjRXhlY3V0 ZS5oICAgIHwgIDQgKy0tDQo+ICBNZGVNb2R1bGVQa2cvQnVzL0F0YS9BaGNpUGVpL0FoY2lNb2Rl LmMgICAgICAgfCAgMiArLQ0KPiAgLi4uL0J1cy9BdGEvQWhjaVBlaS9BaGNpUGVpUGFzc1RocnUu YyAgICAgICAgIHwgIDYgKystLQ0KPiAgLi4uL0F0YS9BdGFBdGFwaVBhc3NUaHJ1L0F0YUF0YXBp UGFzc1RocnUuYyAgIHwgMTIgKysrLS0tLQ0KPiAgLi4uL0J1cy9BdGEvQXRhQnVzRHhlL0F0YVBh c3NUaHJ1RXhlY3V0ZS5jICAgIHwgIDIgKy0NCj4gIE1kZU1vZHVsZVBrZy9CdXMvU2NzaS9TY3Np RGlza0R4ZS9TY3NpRGlzay5jICB8ICA0ICstLQ0KPiAgLi4uL0J1cy9VZnMvVWZzUGFzc1RocnVE eGUvVWZzUGFzc1RocnUuYyAgICAgIHwgIDYgKystLQ0KPiAgTWRlTW9kdWxlUGtnL1VuaXZlcnNh bC9FYmNEeGUvRWJjRXhlY3V0ZS5jICAgIHwgMzYgKysrKysrKysrLS0tLS0tLS0tLQ0KPiAgMTQg ZmlsZXMgY2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKSwgNDMgZGVsZXRpb25zKC0pDQo+IA0KPiBk aWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQWhjaVBlaS9BaGNpUGVpLmggYi9NZGVN b2R1bGVQa2cvQnVzL0F0YS9BaGNpUGVpL0FoY2lQZWkuaA0KPiBpbmRleCA0YWVkMWNiN2FkOGEu LjcxZDM0Yzk2MmFkMSAxMDA2NDQNCj4gLS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQWhjaVBl aS9BaGNpUGVpLmgNCj4gKysrIGIvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQWhjaVBlaS9BaGNpUGVp LmgNCj4gQEAgLTE0Niw4ICsxNDYsOCBAQCB0eXBlZGVmIHVuaW9uIHsNCj4gICNkZWZpbmUgQUhD SV9QT1JUX1NFUlIgIDB4MDAzMA0KPiAgI2RlZmluZSBBSENJX1BPUlRfQ0kgICAgMHgwMDM4DQo+ IA0KPiAtI2RlZmluZSBJU19BTElHTkVEKGFkZHIsIHNpemUpICAgICAgICAgKCgoVUlOVE4pIChh ZGRyKSAmIChzaXplIC0gMSkpID09IDApDQo+IC0jZGVmaW5lIFRJTUVSX1BFUklPRF9TRUNPTkRT KFNlY29uZHMpICBNdWx0VTY0eDMyKChVSU5UNjQpKFNlY29uZHMpLCAxMDAwMDAwMCkNCj4gKyNk ZWZpbmUgQUREUkVTU19JU19BTElHTkVEXyhhZGRyLCBzaXplKSAgKCgoVUlOVE4pIChhZGRyKSAm IChzaXplIC0gMSkpID09IDApDQo+ICsjZGVmaW5lIFRJTUVSX1BFUklPRF9TRUNPTkRTKFNlY29u ZHMpICAgIE11bHRVNjR4MzIoKFVJTlQ2NCkoU2Vjb25kcyksIDEwMDAwMDAwKQ0KPiANCj4gICNw cmFnbWEgcGFjaygxKQ0KPiANCj4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9CdXMvQXRhL0F0 YUF0YXBpUGFzc1RocnUvQXRhQXRhcGlQYXNzVGhydS5oIGIvTWRlTW9kdWxlUGtnL0J1cy9BdGEv QXRhQXRhcGlQYXNzVGhydS9BdGFBdGFwaVBhc3NUaHJ1LmgNCj4gaW5kZXggNjJiYTZkNjY4MGRk Li43OTM3ODg2NjE0ZTEgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9CdXMvQXRhL0F0YUF0 YXBpUGFzc1RocnUvQXRhQXRhcGlQYXNzVGhydS5oDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9CdXMv QXRhL0F0YUF0YXBpUGFzc1RocnUvQXRhQXRhcGlQYXNzVGhydS5oDQo+IEBAIC0xNDgsNyArMTQ4 LDcgQEAgc3RydWN0IF9BVEFfTk9OQkxPQ0tfVEFTSyB7DQo+ICAjZGVmaW5lIEFUQV9BVEFQSV9U SU1FT1VUICAgRUZJX1RJTUVSX1BFUklPRF9TRUNPTkRTKDMpDQo+ICAjZGVmaW5lIEFUQV9TUElO VVBfVElNRU9VVCAgRUZJX1RJTUVSX1BFUklPRF9TRUNPTkRTKDEwKQ0KPiANCj4gLSNkZWZpbmUg SVNfQUxJR05FRChhZGRyLCBzaXplKSAgKCgoVUlOVE4pIChhZGRyKSAmIChzaXplIC0gMSkpID09 IDApDQo+ICsjZGVmaW5lIEFERFJFU1NfSVNfQUxJR05FRF8oYWRkciwgc2l6ZSkgICgoKFVJTlRO KSAoYWRkcikgJiAoc2l6ZSAtIDEpKSA9PSAwKQ0KPiANCj4gICNkZWZpbmUgQVRBX1BBU1NfVEhS VV9QUklWQVRFX0RBVEFfRlJPTV9USElTKGEpIFwNCj4gICAgQ1IgKGEsIFwNCj4gZGlmZiAtLWdp dCBhL01kZU1vZHVsZVBrZy9CdXMvQXRhL0F0YUJ1c0R4ZS9BdGFCdXMuaCBiL01kZU1vZHVsZVBr Zy9CdXMvQXRhL0F0YUJ1c0R4ZS9BdGFCdXMuaA0KPiBpbmRleCA0NDI4YzQ4NGZkNmMuLjQ3MzQ2 ZTkxMWQ0NyAxMDA2NDQNCj4gLS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQnVzRHhlL0F0 YUJ1cy5oDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9CdXMvQXRhL0F0YUJ1c0R4ZS9BdGFCdXMuaA0K PiBAQCAtNzYsNyArNzYsNyBAQA0KPiAgI2RlZmluZSBBVEFfVEFTS19TSUdOQVRVUkUgICAgICBT SUdOQVRVUkVfMzIgKCdBJywgJ1QnLCAnUycsICdLJykNCj4gICNkZWZpbmUgQVRBX0RFVklDRV9T SUdOQVRVUkUgICAgU0lHTkFUVVJFXzMyICgnQScsICdCJywgJ0knLCAnRCcpDQo+ICAjZGVmaW5l IEFUQV9TVUJfVEFTS19TSUdOQVRVUkUgIFNJR05BVFVSRV8zMiAoJ0EnLCAnUycsICdUJywgJ1Mn KQ0KPiAtI2RlZmluZSBJU19BTElHTkVEKGFkZHIsIHNpemUpICAoKChVSU5UTikgKGFkZHIpICYg KHNpemUgLSAxKSkgPT0gMCkNCj4gKyNkZWZpbmUgQUREUkVTU19JU19BTElHTkVEXyhhZGRyLCBz aXplKSAgKCgoVUlOVE4pIChhZGRyKSAmIChzaXplIC0gMSkpID09IDApDQo+IA0KPiAgLy8NCj4g IC8vIEFUQSBidXMgZGF0YSBzdHJ1Y3R1cmUgZm9yIEFUQSBjb250cm9sbGVyDQo+IGRpZmYgLS1n aXQgYS9NZGVNb2R1bGVQa2cvQnVzL1Njc2kvU2NzaURpc2tEeGUvU2NzaURpc2suaCBiL01kZU1v ZHVsZVBrZy9CdXMvU2NzaS9TY3NpRGlza0R4ZS9TY3NpRGlzay5oDQo+IGluZGV4IDViNDA0N2Ux ZGJkZC4uZWQzODRhZDUyMTgyIDEwMDY0NA0KPiAtLS0gYS9NZGVNb2R1bGVQa2cvQnVzL1Njc2kv U2NzaURpc2tEeGUvU2NzaURpc2suaA0KPiArKysgYi9NZGVNb2R1bGVQa2cvQnVzL1Njc2kvU2Nz aURpc2tEeGUvU2NzaURpc2suaA0KPiBAQCAtMzgsNyArMzgsNyBAQCBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiANCj4gICNkZWZpbmUgSVNfREVWSUNFX0ZJ WEVEKGEpICAoYSktPkZpeGVkRGV2aWNlID8gMSA6IDANCj4gDQo+IC0jZGVmaW5lIElTX0FMSUdO RUQoYWRkciwgc2l6ZSkgICgoKFVJTlROKSAoYWRkcikgJiAoc2l6ZSAtIDEpKSA9PSAwKQ0KPiAr I2RlZmluZSBBRERSRVNTX0lTX0FMSUdORURfKGFkZHIsIHNpemUpICAoKChVSU5UTikgKGFkZHIp ICYgKHNpemUgLSAxKSkgPT0gMCkNCj4gDQo+ICAjZGVmaW5lIFVGU19XTFVOX1JQTUIgIDB4QzQN Cj4gDQo+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVzL1Vmcy9VZnNCbG9ja0lvUGVpL1Vm c0Jsb2NrSW9QZWkuaCBiL01kZU1vZHVsZVBrZy9CdXMvVWZzL1Vmc0Jsb2NrSW9QZWkvVWZzQmxv Y2tJb1BlaS5oDQo+IGluZGV4IGEwYjYxNWI3ZWFiMy4uMWFkYjM4MmFhOGMzIDEwMDY0NA0KPiAt LS0gYS9NZGVNb2R1bGVQa2cvQnVzL1Vmcy9VZnNCbG9ja0lvUGVpL1Vmc0Jsb2NrSW9QZWkuaA0K PiArKysgYi9NZGVNb2R1bGVQa2cvQnVzL1Vmcy9VZnNCbG9ja0lvUGVpL1Vmc0Jsb2NrSW9QZWku aA0KPiBAQCAtMTMzLDcgKzEzMyw3IEBAIHR5cGVkZWYgc3RydWN0IF9VRlNfUEVJTV9IQ19QUklW QVRFX0RBVEEgew0KPiANCj4gICNkZWZpbmUgUk9VTkRVUDgoeCkgICgoKHgpICUgOCA9PSAwKSA/ ICh4KSA6ICgoeCkgLyA4ICsgMSkgKiA4KQ0KPiANCj4gLSNkZWZpbmUgSVNfQUxJR05FRChhZGRy LCBzaXplKSAgKCgoVUlOVE4pIChhZGRyKSAmIChzaXplIC0gMSkpID09IDApDQo+ICsjZGVmaW5l IEFERFJFU1NfSVNfQUxJR05FRF8oYWRkciwgc2l6ZSkgICgoKFVJTlROKSAoYWRkcikgJiAoc2l6 ZSAtIDEpKSA9PSAwKQ0KPiANCj4gICNkZWZpbmUgR0VUX1VGU19QRUlNX0hDX1BSSVZBVEVfREFU QV9GUk9NX1RISVMoYSkgICAgICAgICBDUiAoYSwgVUZTX1BFSU1fSENfUFJJVkFURV9EQVRBLCBC bGtJb1BwaSwgVUZTX1BFSU1fSENfU0lHKQ0KPiAgI2RlZmluZSBHRVRfVUZTX1BFSU1fSENfUFJJ VkFURV9EQVRBX0ZST01fVEhJUzIoYSkgICAgICAgIENSIChhLCBVRlNfUEVJTV9IQ19QUklWQVRF X0RBVEEsIEJsa0lvMlBwaSwgVUZTX1BFSU1fSENfU0lHKQ0KPiBkaWZmIC0tZ2l0IGEvTWRlTW9k dWxlUGtnL0J1cy9VZnMvVWZzUGFzc1RocnVEeGUvVWZzUGFzc1RocnUuaCBiL01kZU1vZHVsZVBr Zy9CdXMvVWZzL1Vmc1Bhc3NUaHJ1RHhlL1Vmc1Bhc3NUaHJ1LmgNCj4gaW5kZXggMmI0ZjVkMzJk OTAxLi4wZWMzN2U1NjY1MmIgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9CdXMvVWZzL1Vm c1Bhc3NUaHJ1RHhlL1Vmc1Bhc3NUaHJ1LmgNCj4gKysrIGIvTWRlTW9kdWxlUGtnL0J1cy9VZnMv VWZzUGFzc1RocnVEeGUvVWZzUGFzc1RocnUuaA0KPiBAQCAtMTA1LDcgKzEwNSw3IEBAIHR5cGVk ZWYgc3RydWN0IHsNCj4gDQo+ICAjZGVmaW5lIFJPVU5EVVA4KHgpICAoKCh4KSAlIDggPT0gMCkg PyAoeCkgOiAoKHgpIC8gOCArIDEpICogOCkNCj4gDQo+IC0jZGVmaW5lIElTX0FMSUdORUQoYWRk ciwgc2l6ZSkgICgoKFVJTlROKSAoYWRkcikgJiAoc2l6ZSAtIDEpKSA9PSAwKQ0KPiArI2RlZmlu ZSBBRERSRVNTX0lTX0FMSUdORURfKGFkZHIsIHNpemUpICAoKChVSU5UTikgKGFkZHIpICYgKHNp emUgLSAxKSkgPT0gMCkNCj4gDQo+ICAjZGVmaW5lIFVGU19QQVNTX1RIUlVfUFJJVkFURV9EQVRB X0ZST01fVEhJUyhhKSBcDQo+ICAgIENSIChhLCBcDQo+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQ a2cvVW5pdmVyc2FsL0ViY0R4ZS9FYmNFeGVjdXRlLmggYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2Fs L0ViY0R4ZS9FYmNFeGVjdXRlLmgNCj4gaW5kZXggMzJiODY3MGM1YjJhLi42ZGM2NzMwYWIwOTUg MTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvRWJjRHhlL0ViY0V4ZWN1dGUu aA0KPiArKysgYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0ViY0R4ZS9FYmNFeGVjdXRlLmgNCj4g QEAgLTE0LDggKzE0LDggQEAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1Q YXRlbnQNCj4gIC8vDQo+ICAvLyBNYWNyb3MgdG8gY2hlY2sgYW5kIHNldCBhbGlnbm1lbnQNCj4g IC8vDQo+IC0jZGVmaW5lIEFTU0VSVF9BTElHTkVEKGFkZHIsIHNpemUpICBBU1NFUlQgKCEoKFVJ TlQzMikgKGFkZHIpICYgKHNpemUgLSAxKSkpDQo+IC0jZGVmaW5lIElTX0FMSUdORUQoYWRkciwg c2l6ZSkgICAgICAhKChVSU5UMzIpIChhZGRyKSAmIChzaXplIC0gMSkpDQo+ICsjZGVmaW5lIEFT U0VSVF9BTElHTkVEKGFkZHIsIHNpemUpICAgICAgIEFTU0VSVCAoISgoVUlOVDMyKSAoYWRkcikg JiAoc2l6ZSAtIDEpKSkNCj4gKyNkZWZpbmUgQUREUkVTU19JU19BTElHTkVEXyhhZGRyLCBzaXpl KSAgISgoVUlOVDMyKSAoYWRkcikgJiAoc2l6ZSAtIDEpKQ0KPiANCj4gIC8vDQo+ICAvLyBEZWJ1 ZyBtYWNybw0KPiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQWhjaVBlaS9BaGNp TW9kZS5jIGIvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQWhjaVBlaS9BaGNpTW9kZS5jDQo+IGluZGV4 IDdiOTc4ODdjNWRiZC4uZDkzZmE3OGM4MWYzIDEwMDY0NA0KPiAtLS0gYS9NZGVNb2R1bGVQa2cv QnVzL0F0YS9BaGNpUGVpL0FoY2lNb2RlLmMNCj4gKysrIGIvTWRlTW9kdWxlUGtnL0J1cy9BdGEv QWhjaVBlaS9BaGNpTW9kZS5jDQo+IEBAIC0yMTI2LDcgKzIxMjYsNyBAQCBUcnVzdFRyYW5zZmVy QXRhRGV2aWNlICgNCj4gICAgICAvLyBBVEEgUGFzc1RocnUgUFBJLg0KPiAgICAgIC8vDQo+ICAg ICAgaWYgKChBdGFQYXNzVGhydS0+TW9kZS0+SW9BbGlnbiA+IDEpICYmDQo+IC0gICAgICAgICFJ U19BTElHTkVEIChCdWZmZXIsIEF0YVBhc3NUaHJ1LT5Nb2RlLT5Jb0FsaWduKSkNCj4gKyAgICAg ICAgIUFERFJFU1NfSVNfQUxJR05FRF8gKEJ1ZmZlciwgQXRhUGFzc1RocnUtPk1vZGUtPklvQWxp Z24pKQ0KPiAgICAgIHsNCj4gICAgICAgIE5ld0J1ZmZlciA9IEFsbG9jYXRlQWxpZ25lZFBhZ2Vz ICgNCj4gICAgICAgICAgICAgICAgICAgICAgRUZJX1NJWkVfVE9fUEFHRVMgKFRyYW5zZmVyTGVu Z3RoKSwNCj4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9CdXMvQXRhL0FoY2lQZWkvQWhjaVBl aVBhc3NUaHJ1LmMgYi9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BaGNpUGVpL0FoY2lQZWlQYXNzVGhy dS5jDQo+IGluZGV4IGQ1ZWQ5M2RjNGY2Ny4uMGM0OTA1OWEwMGQ1IDEwMDY0NA0KPiAtLS0gYS9N ZGVNb2R1bGVQa2cvQnVzL0F0YS9BaGNpUGVpL0FoY2lQZWlQYXNzVGhydS5jDQo+ICsrKyBiL01k ZU1vZHVsZVBrZy9CdXMvQXRhL0FoY2lQZWkvQWhjaVBlaVBhc3NUaHJ1LmMNCj4gQEAgLTE5NCwx NSArMTk0LDE1IEBAIEFoY2lBdGFQYXNzVGhydVBhc3NUaHJ1ICgNCj4gICAgfQ0KPiANCj4gICAg SW9BbGlnbiA9IFRoaXMtPk1vZGUtPklvQWxpZ247DQo+IC0gIGlmICgoSW9BbGlnbiA+IDEpICYm ICFJU19BTElHTkVEIChQYWNrZXQtPkluRGF0YUJ1ZmZlciwgSW9BbGlnbikpIHsNCj4gKyAgaWYg KChJb0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJR05FRF8gKFBhY2tldC0+SW5EYXRhQnVm ZmVyLCBJb0FsaWduKSkgew0KPiAgICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+ ICAgIH0NCj4gDQo+IC0gIGlmICgoSW9BbGlnbiA+IDEpICYmICFJU19BTElHTkVEIChQYWNrZXQt Pk91dERhdGFCdWZmZXIsIElvQWxpZ24pKSB7DQo+ICsgIGlmICgoSW9BbGlnbiA+IDEpICYmICFB RERSRVNTX0lTX0FMSUdORURfIChQYWNrZXQtPk91dERhdGFCdWZmZXIsIElvQWxpZ24pKSB7DQo+ ICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gICAgfQ0KPiANCj4gLSAgaWYg KChJb0FsaWduID4gMSkgJiYgIUlTX0FMSUdORUQgKFBhY2tldC0+QXNiLCBJb0FsaWduKSkgew0K PiArICBpZiAoKElvQWxpZ24gPiAxKSAmJiAhQUREUkVTU19JU19BTElHTkVEXyAoUGFja2V0LT5B c2IsIElvQWxpZ24pKSB7DQo+ICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4g ICAgfQ0KPiANCj4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9CdXMvQXRhL0F0YUF0YXBpUGFz c1RocnUvQXRhQXRhcGlQYXNzVGhydS5jIGIvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQXRhcGlQ YXNzVGhydS9BdGFBdGFwaVBhc3NUaHJ1LmMNCj4gaW5kZXggMTA3MDUxNmIzNThhLi4zMjRhYmFk ZDAyZGQgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9CdXMvQXRhL0F0YUF0YXBpUGFzc1Ro cnUvQXRhQXRhcGlQYXNzVGhydS5jDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9CdXMvQXRhL0F0YUF0 YXBpUGFzc1RocnUvQXRhQXRhcGlQYXNzVGhydS5jDQo+IEBAIC0xMjk5LDE1ICsxMjk5LDE1IEBA IEF0YVBhc3NUaHJ1UGFzc1RocnUgKA0KPiANCj4gICAgSW5zdGFuY2UgPSBBVEFfUEFTU19USFJV X1BSSVZBVEVfREFUQV9GUk9NX1RISVMgKFRoaXMpOw0KPiANCj4gLSAgaWYgKChUaGlzLT5Nb2Rl LT5Jb0FsaWduID4gMSkgJiYgIUlTX0FMSUdORUQgKFBhY2tldC0+SW5EYXRhQnVmZmVyLCBUaGlz LT5Nb2RlLT5Jb0FsaWduKSkgew0KPiArICBpZiAoKFRoaXMtPk1vZGUtPklvQWxpZ24gPiAxKSAm JiAhQUREUkVTU19JU19BTElHTkVEXyAoUGFja2V0LT5JbkRhdGFCdWZmZXIsIFRoaXMtPk1vZGUt PklvQWxpZ24pKSB7DQo+ICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gICAg fQ0KPiANCj4gLSAgaWYgKChUaGlzLT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYgIUlTX0FMSUdORUQg KFBhY2tldC0+T3V0RGF0YUJ1ZmZlciwgVGhpcy0+TW9kZS0+SW9BbGlnbikpIHsNCj4gKyAgaWYg KChUaGlzLT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJR05FRF8gKFBhY2tl dC0+T3V0RGF0YUJ1ZmZlciwgVGhpcy0+TW9kZS0+SW9BbGlnbikpIHsNCj4gICAgICByZXR1cm4g RUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KPiAgICB9DQo+IA0KPiAtICBpZiAoKFRoaXMtPk1vZGUt PklvQWxpZ24gPiAxKSAmJiAhSVNfQUxJR05FRCAoUGFja2V0LT5Bc2IsIFRoaXMtPk1vZGUtPklv QWxpZ24pKSB7DQo+ICsgIGlmICgoVGhpcy0+TW9kZS0+SW9BbGlnbiA+IDEpICYmICFBRERSRVNT X0lTX0FMSUdORURfIChQYWNrZXQtPkFzYiwgVGhpcy0+TW9kZS0+SW9BbGlnbikpIHsNCj4gICAg ICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KPiAgICB9DQo+IA0KPiBAQCAtMjAzOSwx NSArMjAzOSwxNSBAQCBFeHRTY3NpUGFzc1RocnVQYXNzVGhydSAoDQo+ICAgICAgcmV0dXJuIEVG SV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gICAgfQ0KPiANCj4gLSAgaWYgKChUaGlzLT5Nb2RlLT5J b0FsaWduID4gMSkgJiYgIUlTX0FMSUdORUQgKFBhY2tldC0+SW5EYXRhQnVmZmVyLCBUaGlzLT5N b2RlLT5Jb0FsaWduKSkgew0KPiArICBpZiAoKFRoaXMtPk1vZGUtPklvQWxpZ24gPiAxKSAmJiAh QUREUkVTU19JU19BTElHTkVEXyAoUGFja2V0LT5JbkRhdGFCdWZmZXIsIFRoaXMtPk1vZGUtPklv QWxpZ24pKSB7DQo+ICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gICAgfQ0K PiANCj4gLSAgaWYgKChUaGlzLT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYgIUlTX0FMSUdORUQgKFBh Y2tldC0+T3V0RGF0YUJ1ZmZlciwgVGhpcy0+TW9kZS0+SW9BbGlnbikpIHsNCj4gKyAgaWYgKChU aGlzLT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJR05FRF8gKFBhY2tldC0+ T3V0RGF0YUJ1ZmZlciwgVGhpcy0+TW9kZS0+SW9BbGlnbikpIHsNCj4gICAgICByZXR1cm4gRUZJ X0lOVkFMSURfUEFSQU1FVEVSOw0KPiAgICB9DQo+IA0KPiAtICBpZiAoKFRoaXMtPk1vZGUtPklv QWxpZ24gPiAxKSAmJiAhSVNfQUxJR05FRCAoUGFja2V0LT5TZW5zZURhdGEsIFRoaXMtPk1vZGUt PklvQWxpZ24pKSB7DQo+ICsgIGlmICgoVGhpcy0+TW9kZS0+SW9BbGlnbiA+IDEpICYmICFBRERS RVNTX0lTX0FMSUdORURfIChQYWNrZXQtPlNlbnNlRGF0YSwgVGhpcy0+TW9kZS0+SW9BbGlnbikp IHsNCj4gICAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KPiAgICB9DQo+IA0KPiBk aWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQnVzRHhlL0F0YVBhc3NUaHJ1RXhl Y3V0ZS5jIGIvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQnVzRHhlL0F0YVBhc3NUaHJ1RXhlY3V0 ZS5jDQo+IGluZGV4IDQzMzQxNjlkMjU2YS4uMThhYTRmOWJiNjY2IDEwMDY0NA0KPiAtLS0gYS9N ZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFCdXNEeGUvQXRhUGFzc1RocnVFeGVjdXRlLmMNCj4gKysr IGIvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQnVzRHhlL0F0YVBhc3NUaHJ1RXhlY3V0ZS5jDQo+ IEBAIC0xMDQwLDcgKzEwNDAsNyBAQCBUcnVzdFRyYW5zZmVyQXRhRGV2aWNlICgNCj4gICAgICAv LyBDaGVjayB0aGUgYWxpZ25tZW50IG9mIHRoZSBpbmNvbWluZyBidWZmZXIgcHJpb3IgdG8gaW52 b2tpbmcgdW5kZXJseWluZyBBVEEgUGFzc1RocnUNCj4gICAgICAvLw0KPiAgICAgIEF0YVBhc3NU aHJ1ID0gQXRhRGV2aWNlLT5BdGFCdXNEcml2ZXJEYXRhLT5BdGFQYXNzVGhydTsNCj4gLSAgICBp ZiAoKEF0YVBhc3NUaHJ1LT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYgIUlTX0FMSUdORUQgKEJ1ZmZl ciwgQXRhUGFzc1RocnUtPk1vZGUtPklvQWxpZ24pKSB7DQo+ICsgICAgaWYgKChBdGFQYXNzVGhy dS0+TW9kZS0+SW9BbGlnbiA+IDEpICYmICFBRERSRVNTX0lTX0FMSUdORURfIChCdWZmZXIsIEF0 YVBhc3NUaHJ1LT5Nb2RlLT5Jb0FsaWduKSkgew0KPiAgICAgICAgTmV3QnVmZmVyID0gQWxsb2Nh dGVBbGlnbmVkQnVmZmVyIChBdGFEZXZpY2UsIFRyYW5zZmVyTGVuZ3RoKTsNCj4gICAgICAgIGlm IChOZXdCdWZmZXIgPT0gTlVMTCkgew0KPiAgICAgICAgICByZXR1cm4gRUZJX09VVF9PRl9SRVNP VVJDRVM7DQo+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVzL1Njc2kvU2NzaURpc2tEeGUv U2NzaURpc2suYyBiL01kZU1vZHVsZVBrZy9CdXMvU2NzaS9TY3NpRGlza0R4ZS9TY3NpRGlzay5j DQo+IGluZGV4IGZiYzIzNmNiNDY1ZS4uZmFmNGFlMzMyZTQ2IDEwMDY0NA0KPiAtLS0gYS9NZGVN b2R1bGVQa2cvQnVzL1Njc2kvU2NzaURpc2tEeGUvU2NzaURpc2suYw0KPiArKysgYi9NZGVNb2R1 bGVQa2cvQnVzL1Njc2kvU2NzaURpc2tEeGUvU2NzaURpc2suYw0KPiBAQCAtMjAyOSw3ICsyMDI5 LDcgQEAgU2NzaURpc2tSZWNlaXZlRGF0YSAoDQo+ICAgICAgICBnb3RvIERvbmU7DQo+ICAgICAg fQ0KPiANCj4gLSAgICBpZiAoKFNjc2lEaXNrRGV2aWNlLT5TY3NpSW8tPklvQWxpZ24gPiAxKSAm JiAhSVNfQUxJR05FRCAoUGF5bG9hZEJ1ZmZlciwgU2NzaURpc2tEZXZpY2UtPlNjc2lJby0+SW9B bGlnbikpIHsNCj4gKyAgICBpZiAoKFNjc2lEaXNrRGV2aWNlLT5TY3NpSW8tPklvQWxpZ24gPiAx KSAmJiAhQUREUkVTU19JU19BTElHTkVEXyAoUGF5bG9hZEJ1ZmZlciwgU2NzaURpc2tEZXZpY2Ut PlNjc2lJby0+SW9BbGlnbikpIHsNCj4gICAgICAgIEFsaWduZWRCdWZmZXIgPSBBbGxvY2F0ZUFs aWduZWRCdWZmZXIgKFNjc2lEaXNrRGV2aWNlLCBQYXlsb2FkQnVmZmVyU2l6ZSk7DQo+ICAgICAg ICBpZiAoQWxpZ25lZEJ1ZmZlciA9PSBOVUxMKSB7DQo+ICAgICAgICAgIFN0YXR1cyA9IEVGSV9P VVRfT0ZfUkVTT1VSQ0VTOw0KPiBAQCAtMjI0OSw3ICsyMjQ5LDcgQEAgU2NzaURpc2tTZW5kRGF0 YSAoDQo+ICAgICAgICBnb3RvIERvbmU7DQo+ICAgICAgfQ0KPiANCj4gLSAgICBpZiAoKFNjc2lE aXNrRGV2aWNlLT5TY3NpSW8tPklvQWxpZ24gPiAxKSAmJiAhSVNfQUxJR05FRCAoUGF5bG9hZEJ1 ZmZlciwgU2NzaURpc2tEZXZpY2UtPlNjc2lJby0+SW9BbGlnbikpIHsNCj4gKyAgICBpZiAoKFNj c2lEaXNrRGV2aWNlLT5TY3NpSW8tPklvQWxpZ24gPiAxKSAmJiAhQUREUkVTU19JU19BTElHTkVE XyAoUGF5bG9hZEJ1ZmZlciwgU2NzaURpc2tEZXZpY2UtPlNjc2lJby0+SW9BbGlnbikpIHsNCj4g ICAgICAgIEFsaWduZWRCdWZmZXIgPSBBbGxvY2F0ZUFsaWduZWRCdWZmZXIgKFNjc2lEaXNrRGV2 aWNlLCBQYXlsb2FkQnVmZmVyU2l6ZSk7DQo+ICAgICAgICBpZiAoQWxpZ25lZEJ1ZmZlciA9PSBO VUxMKSB7DQo+ICAgICAgICAgIFN0YXR1cyA9IEVGSV9PVVRfT0ZfUkVTT1VSQ0VTOw0KPiBkaWZm IC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9VZnMvVWZzUGFzc1RocnVEeGUvVWZzUGFzc1RocnUu YyBiL01kZU1vZHVsZVBrZy9CdXMvVWZzL1Vmc1Bhc3NUaHJ1RHhlL1Vmc1Bhc3NUaHJ1LmMNCj4g aW5kZXggYWU1OTNmZjAzYTBkLi4zOTJhMjk1Y2FmMDQgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVs ZVBrZy9CdXMvVWZzL1Vmc1Bhc3NUaHJ1RHhlL1Vmc1Bhc3NUaHJ1LmMNCj4gKysrIGIvTWRlTW9k dWxlUGtnL0J1cy9VZnMvVWZzUGFzc1RocnVEeGUvVWZzUGFzc1RocnUuYw0KPiBAQCAtMTcxLDE1 ICsxNzEsMTUgQEAgVWZzUGFzc1RocnVQYXNzVGhydSAoDQo+ICAgICAgcmV0dXJuIEVGSV9JTlZB TElEX1BBUkFNRVRFUjsNCj4gICAgfQ0KPiANCj4gLSAgaWYgKChUaGlzLT5Nb2RlLT5Jb0FsaWdu ID4gMSkgJiYgIUlTX0FMSUdORUQgKFBhY2tldC0+SW5EYXRhQnVmZmVyLCBUaGlzLT5Nb2RlLT5J b0FsaWduKSkgew0KPiArICBpZiAoKFRoaXMtPk1vZGUtPklvQWxpZ24gPiAxKSAmJiAhQUREUkVT U19JU19BTElHTkVEXyAoUGFja2V0LT5JbkRhdGFCdWZmZXIsIFRoaXMtPk1vZGUtPklvQWxpZ24p KSB7DQo+ICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gICAgfQ0KPiANCj4g LSAgaWYgKChUaGlzLT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYgIUlTX0FMSUdORUQgKFBhY2tldC0+ T3V0RGF0YUJ1ZmZlciwgVGhpcy0+TW9kZS0+SW9BbGlnbikpIHsNCj4gKyAgaWYgKChUaGlzLT5N b2RlLT5Jb0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJR05FRF8gKFBhY2tldC0+T3V0RGF0 YUJ1ZmZlciwgVGhpcy0+TW9kZS0+SW9BbGlnbikpIHsNCj4gICAgICByZXR1cm4gRUZJX0lOVkFM SURfUEFSQU1FVEVSOw0KPiAgICB9DQo+IA0KPiAtICBpZiAoKFRoaXMtPk1vZGUtPklvQWxpZ24g PiAxKSAmJiAhSVNfQUxJR05FRCAoUGFja2V0LT5TZW5zZURhdGEsIFRoaXMtPk1vZGUtPklvQWxp Z24pKSB7DQo+ICsgIGlmICgoVGhpcy0+TW9kZS0+SW9BbGlnbiA+IDEpICYmICFBRERSRVNTX0lT X0FMSUdORURfIChQYWNrZXQtPlNlbnNlRGF0YSwgVGhpcy0+TW9kZS0+SW9BbGlnbikpIHsNCj4g ICAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KPiAgICB9DQo+IA0KPiBkaWZmIC0t Z2l0IGEvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9FYmNEeGUvRWJjRXhlY3V0ZS5jIGIvTWRlTW9k dWxlUGtnL1VuaXZlcnNhbC9FYmNEeGUvRWJjRXhlY3V0ZS5jDQo+IGluZGV4IDgyYTc3ODJmYjk5 YS4uMjhmMTA4YzQ0ODczIDEwMDY0NA0KPiAtLS0gYS9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Vi Y0R4ZS9FYmNFeGVjdXRlLmMNCj4gKysrIGIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9FYmNEeGUv RWJjRXhlY3V0ZS5jDQo+IEBAIC0yMDE1LDcgKzIwMTUsNyBAQCBFeGVjdXRlSk1QICgNCj4gICAg ICAvLyBjaGVjayBmb3IgYWxpZ25tZW50LCBhbmQganVtcCBhYnNvbHV0ZS4NCj4gICAgICAvLw0K PiAgICAgIERhdGE2NCA9IChVSU5UNjQpVm1SZWFkSW1tZWQ2NCAoVm1QdHIsIDIpOw0KPiAtICAg IGlmICghSVNfQUxJR05FRCAoKFVJTlROKURhdGE2NCwgc2l6ZW9mIChVSU5UMTYpKSkgew0KPiAr ICAgIGlmICghQUREUkVTU19JU19BTElHTkVEXyAoKFVJTlROKURhdGE2NCwgc2l6ZW9mIChVSU5U MTYpKSkgew0KPiAgICAgICAgRWJjRGVidWdTaWduYWxFeGNlcHRpb24gKA0KPiAgICAgICAgICBF WENFUFRfRUJDX0FMSUdOTUVOVF9DSEVDSywNCj4gICAgICAgICAgRVhDRVBUSU9OX0ZMQUdfRkFU QUwsDQo+IEBAIC0yMDc0LDcgKzIwNzQsNyBAQCBFeGVjdXRlSk1QICgNCj4gICAgICAvLyBGb3Jt OiBKTVAzMiBAUngge0luZGV4MzJ9DQo+ICAgICAgLy8NCj4gICAgICBBZGRyID0gVm1SZWFkTWVt TiAoVm1QdHIsIChVSU5UTilEYXRhNjQgKyBJbmRleDMyKTsNCj4gLSAgICBpZiAoIUlTX0FMSUdO RUQgKChVSU5UTilBZGRyLCBzaXplb2YgKFVJTlQxNikpKSB7DQo+ICsgICAgaWYgKCFBRERSRVNT X0lTX0FMSUdORURfICgoVUlOVE4pQWRkciwgc2l6ZW9mIChVSU5UMTYpKSkgew0KPiAgICAgICAg RWJjRGVidWdTaWduYWxFeGNlcHRpb24gKA0KPiAgICAgICAgICBFWENFUFRfRUJDX0FMSUdOTUVO VF9DSEVDSywNCj4gICAgICAgICAgRVhDRVBUSU9OX0ZMQUdfRkFUQUwsDQo+IEBAIC0yMDk3LDcg KzIwOTcsNyBAQCBFeGVjdXRlSk1QICgNCj4gICAgICAvLyBGb3JtOiBKTVAzMiBSeCB7SW1tZWQz Mn0NCj4gICAgICAvLw0KPiAgICAgIEFkZHIgPSAoVUlOVE4pKERhdGE2NCArIEluZGV4MzIpOw0K PiAtICAgIGlmICghSVNfQUxJR05FRCAoKFVJTlROKUFkZHIsIHNpemVvZiAoVUlOVDE2KSkpIHsN Cj4gKyAgICBpZiAoIUFERFJFU1NfSVNfQUxJR05FRF8gKChVSU5UTilBZGRyLCBzaXplb2YgKFVJ TlQxNikpKSB7DQo+ICAgICAgICBFYmNEZWJ1Z1NpZ25hbEV4Y2VwdGlvbiAoDQo+ICAgICAgICAg IEVYQ0VQVF9FQkNfQUxJR05NRU5UX0NIRUNLLA0KPiAgICAgICAgICBFWENFUFRJT05fRkxBR19G QVRBTCwNCj4gQEAgLTMxNTgsNyArMzE1OCw3IEBAIEV4ZWN1dGVSRVQgKA0KPiAgICAgIC8vIFB1 bGwgdGhlIHJldHVybiBhZGRyZXNzIG9mZiB0aGUgVk0gYXBwJ3Mgc3RhY2sgYW5kIHNldCB0aGUg SVANCj4gICAgICAvLyB0byBpdA0KPiAgICAgIC8vDQo+IC0gICAgaWYgKCFJU19BTElHTkVEICgo VUlOVE4pVm1QdHItPkdwclswXSwgc2l6ZW9mIChVSU5UMTYpKSkgew0KPiArICAgIGlmICghQURE UkVTU19JU19BTElHTkVEXyAoKFVJTlROKVZtUHRyLT5HcHJbMF0sIHNpemVvZiAoVUlOVDE2KSkp IHsNCj4gICAgICAgIEViY0RlYnVnU2lnbmFsRXhjZXB0aW9uICgNCj4gICAgICAgICAgRVhDRVBU X0VCQ19BTElHTk1FTlRfQ0hFQ0ssDQo+ICAgICAgICAgIEVYQ0VQVElPTl9GTEFHX0ZBVEFMLA0K PiBAQCAtNDczMyw3ICs0NzMzLDcgQEAgVm1Xcml0ZU1lbTE2ICgNCj4gICAgLy8NCj4gICAgLy8g RG8gYSBzaW1wbGUgd3JpdGUgaWYgYWxpZ25lZA0KPiAgICAvLw0KPiAtICBpZiAoSVNfQUxJR05F RCAoQWRkciwgc2l6ZW9mIChVSU5UMTYpKSkgew0KPiArICBpZiAoQUREUkVTU19JU19BTElHTkVE XyAoQWRkciwgc2l6ZW9mIChVSU5UMTYpKSkgew0KPiAgICAgICooVUlOVDE2ICopQWRkciA9IERh dGE7DQo+ICAgIH0gZWxzZSB7DQo+ICAgICAgLy8NCj4gQEAgLTQ3OTUsNyArNDc5NSw3IEBAIFZt V3JpdGVNZW0zMiAoDQo+ICAgIC8vDQo+ICAgIC8vIERvIGEgc2ltcGxlIHdyaXRlIGlmIGFsaWdu ZWQNCj4gICAgLy8NCj4gLSAgaWYgKElTX0FMSUdORUQgKEFkZHIsIHNpemVvZiAoVUlOVDMyKSkp IHsNCj4gKyAgaWYgKEFERFJFU1NfSVNfQUxJR05FRF8gKEFkZHIsIHNpemVvZiAoVUlOVDMyKSkp IHsNCj4gICAgICAqKFVJTlQzMiAqKUFkZHIgPSBEYXRhOw0KPiAgICB9IGVsc2Ugew0KPiAgICAg IC8vDQo+IEBAIC00ODU3LDcgKzQ4NTcsNyBAQCBWbVdyaXRlTWVtNjQgKA0KPiAgICAvLw0KPiAg ICAvLyBEbyBhIHNpbXBsZSB3cml0ZSBpZiBhbGlnbmVkDQo+ICAgIC8vDQo+IC0gIGlmIChJU19B TElHTkVEIChBZGRyLCBzaXplb2YgKFVJTlQ2NCkpKSB7DQo+ICsgIGlmIChBRERSRVNTX0lTX0FM SUdORURfIChBZGRyLCBzaXplb2YgKFVJTlQ2NCkpKSB7DQo+ICAgICAgKihVSU5UNjQgKilBZGRy ID0gRGF0YTsNCj4gICAgfSBlbHNlIHsNCj4gICAgICAvLw0KPiBAQCAtNDkyMiw3ICs0OTIyLDcg QEAgVm1Xcml0ZU1lbU4gKA0KPiAgICAvLw0KPiAgICAvLyBEbyBhIHNpbXBsZSB3cml0ZSBpZiBh bGlnbmVkDQo+ICAgIC8vDQo+IC0gIGlmIChJU19BTElHTkVEIChBZGRyLCBzaXplb2YgKFVJTlRO KSkpIHsNCj4gKyAgaWYgKEFERFJFU1NfSVNfQUxJR05FRF8gKEFkZHIsIHNpemVvZiAoVUlOVE4p KSkgew0KPiAgICAgICooVUlOVE4gKilBZGRyID0gRGF0YTsNCj4gICAgfSBlbHNlIHsNCj4gICAg ICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBzaXplb2YgKFVJTlROKSAvIHNpemVvZiAoVUlOVDMy KTsgSW5kZXgrKykgew0KPiBAQCAtNDk4NSw3ICs0OTg1LDcgQEAgVm1SZWFkSW1tZWQxNiAoDQo+ ICAgIC8vDQo+ICAgIC8vIFJlYWQgZGlyZWN0IGlmIGFsaWduZWQNCj4gICAgLy8NCj4gLSAgaWYg KElTX0FMSUdORUQgKChVSU5UTilWbVB0ci0+SXAgKyBPZmZzZXQsIHNpemVvZiAoSU5UMTYpKSkg ew0KPiArICBpZiAoQUREUkVTU19JU19BTElHTkVEXyAoKFVJTlROKVZtUHRyLT5JcCArIE9mZnNl dCwgc2l6ZW9mIChJTlQxNikpKSB7DQo+ICAgICAgcmV0dXJuICooSU5UMTYgKikoVm1QdHItPklw ICsgT2Zmc2V0KTsNCj4gICAgfSBlbHNlIHsNCj4gICAgICAvLw0KPiBAQCAtNTAyOSw3ICs1MDI5 LDcgQEAgVm1SZWFkSW1tZWQzMiAoDQo+ICAgIC8vDQo+ICAgIC8vIFJlYWQgZGlyZWN0IGlmIGFs aWduZWQNCj4gICAgLy8NCj4gLSAgaWYgKElTX0FMSUdORUQgKChVSU5UTilWbVB0ci0+SXAgKyBP ZmZzZXQsIHNpemVvZiAoVUlOVDMyKSkpIHsNCj4gKyAgaWYgKEFERFJFU1NfSVNfQUxJR05FRF8g KChVSU5UTilWbVB0ci0+SXAgKyBPZmZzZXQsIHNpemVvZiAoVUlOVDMyKSkpIHsNCj4gICAgICBy ZXR1cm4gKihJTlQzMiAqKShWbVB0ci0+SXAgKyBPZmZzZXQpOw0KPiAgICB9DQo+IA0KPiBAQCAt NTA2OCw3ICs1MDY4LDcgQEAgVm1SZWFkSW1tZWQ2NCAoDQo+ICAgIC8vDQo+ICAgIC8vIFJlYWQg ZGlyZWN0IGlmIGFsaWduZWQNCj4gICAgLy8NCj4gLSAgaWYgKElTX0FMSUdORUQgKChVSU5UTilW bVB0ci0+SXAgKyBPZmZzZXQsIHNpemVvZiAoVUlOVDY0KSkpIHsNCj4gKyAgaWYgKEFERFJFU1Nf SVNfQUxJR05FRF8gKChVSU5UTilWbVB0ci0+SXAgKyBPZmZzZXQsIHNpemVvZiAoVUlOVDY0KSkp IHsNCj4gICAgICByZXR1cm4gKihVSU5UNjQgKikoVm1QdHItPklwICsgT2Zmc2V0KTsNCj4gICAg fQ0KPiANCj4gQEAgLTUxMDUsNyArNTEwNSw3IEBAIFZtUmVhZENvZGUxNiAoDQo+ICAgIC8vDQo+ ICAgIC8vIFJlYWQgZGlyZWN0IGlmIGFsaWduZWQNCj4gICAgLy8NCj4gLSAgaWYgKElTX0FMSUdO RUQgKChVSU5UTilWbVB0ci0+SXAgKyBPZmZzZXQsIHNpemVvZiAoVUlOVDE2KSkpIHsNCj4gKyAg aWYgKEFERFJFU1NfSVNfQUxJR05FRF8gKChVSU5UTilWbVB0ci0+SXAgKyBPZmZzZXQsIHNpemVv ZiAoVUlOVDE2KSkpIHsNCj4gICAgICByZXR1cm4gKihVSU5UMTYgKikoVm1QdHItPklwICsgT2Zm c2V0KTsNCj4gICAgfSBlbHNlIHsNCj4gICAgICAvLw0KPiBAQCAtNTE0Nyw3ICs1MTQ3LDcgQEAg Vm1SZWFkQ29kZTMyICgNCj4gICAgLy8NCj4gICAgLy8gUmVhZCBkaXJlY3QgaWYgYWxpZ25lZA0K PiAgICAvLw0KPiAtICBpZiAoSVNfQUxJR05FRCAoKFVJTlROKVZtUHRyLT5JcCArIE9mZnNldCwg c2l6ZW9mIChVSU5UMzIpKSkgew0KPiArICBpZiAoQUREUkVTU19JU19BTElHTkVEXyAoKFVJTlRO KVZtUHRyLT5JcCArIE9mZnNldCwgc2l6ZW9mIChVSU5UMzIpKSkgew0KPiAgICAgIHJldHVybiAq KFVJTlQzMiAqKShWbVB0ci0+SXAgKyBPZmZzZXQpOw0KPiAgICB9DQo+IA0KPiBAQCAtNTE4NCw3 ICs1MTg0LDcgQEAgVm1SZWFkQ29kZTY0ICgNCj4gICAgLy8NCj4gICAgLy8gUmVhZCBkaXJlY3Qg aWYgYWxpZ25lZA0KPiAgICAvLw0KPiAtICBpZiAoSVNfQUxJR05FRCAoKFVJTlROKVZtUHRyLT5J cCArIE9mZnNldCwgc2l6ZW9mIChVSU5UNjQpKSkgew0KPiArICBpZiAoQUREUkVTU19JU19BTElH TkVEXyAoKFVJTlROKVZtUHRyLT5JcCArIE9mZnNldCwgc2l6ZW9mIChVSU5UNjQpKSkgew0KPiAg ICAgIHJldHVybiAqKFVJTlQ2NCAqKShWbVB0ci0+SXAgKyBPZmZzZXQpOw0KPiAgICB9DQo+IA0K PiBAQCAtNTI0Nyw3ICs1MjQ3LDcgQEAgVm1SZWFkTWVtMTYgKA0KPiAgICAvLw0KPiAgICAvLyBS ZWFkIGRpcmVjdCBpZiBhbGlnbmVkDQo+ICAgIC8vDQo+IC0gIGlmIChJU19BTElHTkVEIChBZGRy LCBzaXplb2YgKFVJTlQxNikpKSB7DQo+ICsgIGlmIChBRERSRVNTX0lTX0FMSUdORURfIChBZGRy LCBzaXplb2YgKFVJTlQxNikpKSB7DQo+ICAgICAgcmV0dXJuICooVUlOVDE2ICopQWRkcjsNCj4g ICAgfQ0KPiANCj4gQEAgLTUyODEsNyArNTI4MSw3IEBAIFZtUmVhZE1lbTMyICgNCj4gICAgLy8N Cj4gICAgLy8gUmVhZCBkaXJlY3QgaWYgYWxpZ25lZA0KPiAgICAvLw0KPiAtICBpZiAoSVNfQUxJ R05FRCAoQWRkciwgc2l6ZW9mIChVSU5UMzIpKSkgew0KPiArICBpZiAoQUREUkVTU19JU19BTElH TkVEXyAoQWRkciwgc2l6ZW9mIChVSU5UMzIpKSkgew0KPiAgICAgIHJldHVybiAqKFVJTlQzMiAq KUFkZHI7DQo+ICAgIH0NCj4gDQo+IEBAIC01MzE5LDcgKzUzMTksNyBAQCBWbVJlYWRNZW02NCAo DQo+ICAgIC8vDQo+ICAgIC8vIFJlYWQgZGlyZWN0IGlmIGFsaWduZWQNCj4gICAgLy8NCj4gLSAg aWYgKElTX0FMSUdORUQgKEFkZHIsIHNpemVvZiAoVUlOVDY0KSkpIHsNCj4gKyAgaWYgKEFERFJF U1NfSVNfQUxJR05FRF8gKEFkZHIsIHNpemVvZiAoVUlOVDY0KSkpIHsNCj4gICAgICByZXR1cm4g KihVSU5UNjQgKilBZGRyOw0KPiAgICB9DQo+IA0KPiBAQCAtNTM4OCw3ICs1Mzg4LDcgQEAgVm1S ZWFkTWVtTiAoDQo+ICAgIC8vDQo+ICAgIC8vIFJlYWQgZGlyZWN0IGlmIGFsaWduZWQNCj4gICAg Ly8NCj4gLSAgaWYgKElTX0FMSUdORUQgKEFkZHIsIHNpemVvZiAoVUlOVE4pKSkgew0KPiArICBp ZiAoQUREUkVTU19JU19BTElHTkVEXyAoQWRkciwgc2l6ZW9mIChVSU5UTikpKSB7DQo+ICAgICAg cmV0dXJuICooVUlOVE4gKilBZGRyOw0KPiAgICB9DQo+IA0KPiAtLQ0KPiAyLjM5LjINCj4gDQo+ IA0KPiANCj4gDQo+IA0KDQo=