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.27623.1679434772652920097 for ; Tue, 21 Mar 2023 14:39:32 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=jPsJt3OI; 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=1679434772; x=1710970772; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=DsTLum/nN5K53/QzdGtvMb8YtWtARqe1hXdjaf0uof8=; b=jPsJt3OIKAbirgLFT9tbuXwO6kbLF74iL5TInKujhmZcwiQ+mOFIgvT9 vdtochUfeMV6PrzGx5WIvcdzmb5zUdJhdAbwMB/8G45p/iB0wgwwo0QAz QcG1PF1eMjWtW8G0bmq1QU0CQakuN16mgDmOC+4p9BjTytym7kyXzB1n2 7rxmYCatz5oSFFnnO9thmbdM9zwkTxMuxeFr3OoqQQmKVnmnJukw1v2K+ gLFTaiV29Y1iQJgQ5dgdMovTziJgLimwEK+VFtDjloQK2LP2KHfTyx/QD oe62IbQ1xmpgS+zcJrN8RScFk1Q6JUzr20JNevWqAnnjOUQ/c+sXcsqyt A==; X-IronPort-AV: E=McAfee;i="6600,9927,10656"; a="318710686" X-IronPort-AV: E=Sophos;i="5.98,279,1673942400"; d="scan'208";a="318710686" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Mar 2023 14:39:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10656"; a="746044061" X-IronPort-AV: E=Sophos;i="5.98,279,1673942400"; d="scan'208";a="746044061" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmsmga008.fm.intel.com with ESMTP; 21 Mar 2023 14:39:23 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX601.amr.corp.intel.com (10.22.229.14) 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:39:22 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Tue, 21 Mar 2023 14:39:22 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) 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:39:22 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.49) by edgegateway.intel.com (134.134.137.100) 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:39:21 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DMic2yDwO4mdxHhQNCvmRlc1DWelcDECbMFrkkQZY/7pNmNoU2YjSZRndXg/C+u/R33/FYXEUvsmRaJ05eQHkRfcd0u2nm4YiWQxatZzQAzphshaoai41y+btYidmXoUODJ83a07Fk3jkT8rGqQgM+jEinOe0Y313v1dUyndkrOChCVJ33Z89UzQ0+3BoWCMds79hxfn6AOi3fECwWWfvhaVplA9wxj6y4oPUn+kxxgp4A5nRguvwLhZqB6jt5pKAQCPudCdnKCUUF8njeGyyq7i2YKXWVk3zrMUTiYGBVpAV6wzaeVs63k9h5gHAdRyx73igjtQ5anEFPdwqzE6Ag== 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=DsTLum/nN5K53/QzdGtvMb8YtWtARqe1hXdjaf0uof8=; b=ISm9jMx9SaPCnVGV8w0TgvlKcUcUax7DLrwCz/y7nN+Z1NTCQhDG+WWZMc8HX2dgOPed19rgFcteXwOQCDdpK7/Fy2FbYfOaCtemsSZMd1keUZYskgCIheoT0kIJrpEXkEdZiZbqNU9zeSsqGKoBwe9IGU2MU6ucrVECJPWrKwaNvwsOhNe/+zazNr6CBiMYJjSn0LQS8bPisTGpBlWh6NlN4NfdZwc8P6awNkB/N6KzxlU5So2S17A5KHDGjiGSZUakGwzN3lA8hi8HoBzzvKJ9w9s0w0H391JKViCGltKVOUXMvL1GYUqgRAXCtbNj3ZiqUaL2NX73f8Nn5/zZ8g== 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 PH8PR11MB7143.namprd11.prod.outlook.com (2603:10b6:510:22d::11) 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:39:14 +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:39:14 +0000 From: "Michael D Kinney" To: Gerd Hoffmann , "devel@edk2.groups.io" 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" , Vitaly Cheptsov , "Kinney, Michael D" Subject: Re: [PATCH 4/5] MdeModulePkg: Consume new alignment-related macros Thread-Topic: [PATCH 4/5] MdeModulePkg: Consume new alignment-related macros Thread-Index: AQHZTZyecLx/+e6SlUSI4r1mYMlFsq8F39qQ Date: Tue, 21 Mar 2023 21:39:14 +0000 Message-ID: References: <20230303065115.406020-1-kraxel@redhat.com> <20230303065115.406020-5-kraxel@redhat.com> In-Reply-To: <20230303065115.406020-5-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_|PH8PR11MB7143:EE_ x-ms-office365-filtering-correlation-id: 15fed799-be4f-4f52-4b4c-08db2a54b759 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: IKl/59UQC0W6PxCEs3U6Pv3BRgt/o1XdEQwVLzlzXDjz9nU9HreWHGLA3PizctFlrAzyNS3X8ZG8K6hy12UgNErf1iAr8GF88KdMki2Pb4n+0iiZBQgvYjr0BYJ8C0PMAHKt+tK3q0UDTI0mMRtWr1MpMHcI0rlxuP1aIWmwOnlslCTcNxZ4o7QcbYMWRVAdIHarlyi4HJ6tyMa3IRYdWRd6ROgpjxGgKkkASfxdD3f0TeLyFdUY00XSt1sT6WFAYTkcBRmidKGyoi5IYZTDDVcLlkkc3FMaHgEbVvZ/9uMzq2S/klOdMZ3hvoFDA6ItLepypvw18Hd+ipy1Ug+ewDSzsSHubFrXCYye5VPwy4h5NhFUzkrGSIyYZX9dLkj9nyLporNXUfeX30hZZuGmd9QqygRq085TMigi8LUKFW2kgzPRuzWh2zmt5cBCLxEk+9Ft9jz/zLjoQOgIgwdKVgom8L/2St2yZtpfDZrQDEZhLra9BIz+ofeo+wyO6VDnmwWiDWyJ3qmjEjlVRdDSiR4xXKWjSFonC0RkKIhv7zaataX9qs1MokWgItl7XSmMRqyh4Q1A8EvOTTObnzYlBxHGJHKrr7qXb3h7qPHvhI0KfiI3OPOzeicfb+CepTMPx+/9kcq5aZNBN1ipk9zXr+GKGyvy3F5NPaNA9Nx1ofb8v7UBi8H3WoQtBwjrCYD76A3ZjrINUesf6c7Euxi/Mw== 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)(39860400002)(136003)(396003)(376002)(451199018)(7696005)(71200400001)(186003)(83380400001)(478600001)(107886003)(316002)(110136005)(64756008)(66446008)(76116006)(8676002)(66476007)(66556008)(66946007)(54906003)(6506007)(26005)(9686003)(53546011)(4326008)(52536014)(30864003)(8936002)(41300700001)(5660300002)(7416002)(82960400001)(38100700002)(122000001)(2906002)(55016003)(38070700005)(86362001)(33656002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VXU5Y212S1BTWSs1REMxZXRWeU9KYmFlbGlqQ3RZWVdWSi9yUUNGejVsQ1hx?= =?utf-8?B?Vi9MY21jamkvaG1GbTlhaEduYmJwN2w0Y3BzRWl6OTlRQkMvZm5FWmtPcENB?= =?utf-8?B?UlhRWGNPMlhtc2JLMGtoNnpHVDNmZHd0R2ZWcmVZbU9lck92ZjJYaDNzQmcz?= =?utf-8?B?L0w5Q3FxcjJBeUVmbUJqNUtRWUU4SjUrUzJPMnlDUjhKL0VOYWZpcEd6VHdZ?= =?utf-8?B?YjgrdWlFT01hSk11eExNRVdrQ3QxNndERnF2NlUxYUY4Y1lkczdvbHUvUUV2?= =?utf-8?B?R0ZadlpHeEIxWWNMYklpTUVrTHo0Q0RnV0VaYmZZU3lBWDNLM01iR1o4cVhH?= =?utf-8?B?UGxaMlA2dVNxa05rNVU1SDZZKzdENnNzdUxya1JvSU1DVDhEWDhKYnBnK1h2?= =?utf-8?B?RnNtRS9BTCt0NzBJV0VyQ2I3T3hyZnNxQ1VHNFNKUmhHc3dsbDExRTVhcVRx?= =?utf-8?B?MlBESTFhODhRd0RMQXFYMmJUN0FQa080dEVMNEdSeG5EcFFiY2owQWlFM05r?= =?utf-8?B?NTlCYjBBeUYzRWpJK2pQTEdDbUdqQTIxeHNUUlVnaVJnNkpoTWRsOFhEd1g4?= =?utf-8?B?M3EreEg5QlRhZnArQzBuM0o4S1k1Zi9JbVRTcEd0QnZzVEJwWm1OTURSNkpr?= =?utf-8?B?NEV4VmNjdUlBRnNwNk1XM2FJa3Z3S2s5ZkUyYmtKbk50WlR5alQ2T2R3WWli?= =?utf-8?B?QjR5eURDajFrWWoxZ0NVQVBERG9yUTh1eDVGS0kwT3dNZXZDUExoT09qcUVw?= =?utf-8?B?R2xSd0dtYXIwd0VWbk1oaTJ3T2hxeFM3bkVId0JnYmQ1bFNRNEtGZndaUnh6?= =?utf-8?B?MGh6NkRTVFkwRUhUL01rMWgwSjdEVzBSTXBYUW5HZGZDTG9Rb2oxNjlvVHRs?= =?utf-8?B?TXh0OTZjM0RkTzN2bmdaY1F4YmZSNS8ybWdTYkNFZUoxRS8ySnFxUnoyVHR6?= =?utf-8?B?M2ljSVRhREd3RUd3ZFFVSWJDRVlNbTVHalJKNE04K09hM20xOFZaa2t3T3pu?= =?utf-8?B?QzhJMVdkdDdxdzNJME1WMmlBWkxMWXZWVmMxUWNjYXpYaUVacVJqbFQvVzhu?= =?utf-8?B?T2VFcmRZYUYxN20wWU5Lc3lST2V3MXA5N1orOURxVWFrZUdiSHlQSndmdStq?= =?utf-8?B?dWlIRGVJUW5LVDNhenk5eXozK1MwLzBsMjR4bnkxdUZXMW0zeHBURDhINUI0?= =?utf-8?B?Nms1YzNQekZjUTRiTjZPRE9obzIvN0Q3QXFNT2lvTEovdGdnSW9FdmR5N1c5?= =?utf-8?B?YXBKNXlvTXVOSWVNUlNKRUluRk9RZnpoQ2tvbTZoV1FEMVR3OHVyZ3EzMVZE?= =?utf-8?B?VVp6WGxEYUw1Ny82TGdmaWN1Wi9aQkxMZVJ4UDRSNFJrMkZvQXR5SWVRL3hJ?= =?utf-8?B?NVByRmdrTEEvcXFTZG5BengreHZDamZ5alVyN0s2cVFyaHFTdFh4b0NTSXJ3?= =?utf-8?B?RWIxT01RREw2NksrRVZVRjFqVGJzUmttVGNWYmNVeXZ0OGk1Umd3VXB1Uzk2?= =?utf-8?B?Y2x1Sm5CUkNLMXhVVWx3Z2hLN1hUaVdwVElza0ZlMjFZNnlzeW92WHRUQnhR?= =?utf-8?B?YUE5a01JRWl6L0xyY0t6dUZuRjBKeWdpaFZ2bFpycHBRam5iaDIwQ29VQ3lE?= =?utf-8?B?dTZyUlVLTjduS3JvR3FHNzlhWFcxRXhZSzFDRncrQk85MnFFaTFicGdLMnIw?= =?utf-8?B?N2tQdk5xVGNqN2hPTHRzc1FscjhqVHkxa0Q3bWpQSG0vZjY5MnBzNVFkN1Ar?= =?utf-8?B?byt3RHdxeEpDK1VQK21BOXBrVWltQXQybU9peXlmWFhpSGU2OUVHMjRYWHZl?= =?utf-8?B?ZXk1MUxaK200MVR5dXE5VzgxWUgzeTFxdGxrWDVzL0pzNkR0d1p5R2xiZlB6?= =?utf-8?B?RUNjZWx5K3JhWUZBMVhxOHBMQ1JORjZoeUNvV2lyMnFhMFRDNkZLWk11cURC?= =?utf-8?B?blRzU2FmK05yV20xdVIveDVtV3RYd1daOW5CMll1bHRLdWVnTXR0ZExicDhX?= =?utf-8?B?YlQzVVpjODRkR1hnYzhHS3pneWxYRTZHcElTMVI4dGtsZXNlKzI4cG9LTURC?= =?utf-8?B?OTljckp6YXIyajBYTEFHRW1FQVNPQmQvVlE5OXRYWHZrajJaRytMOEIrWWlx?= =?utf-8?B?WVlIS3pDNHR1bEZlcmF1MGYveVdHcjJSd2dZMFhtL0RQTUwwUS83UVJiRmpj?= =?utf-8?B?YkE9PQ==?= 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: 15fed799-be4f-4f52-4b4c-08db2a54b759 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Mar 2023 21:39:14.4290 (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: UCpqcMIkFxHMuVNBHR+PdnBf+hahxWH8tglFNguHf2lfsIOuGKQ1kj27l7Gacgil66935VF/9HEhVgr8IOS5Aq6K98uWnd6LjX1zbfqeXDM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR11MB7143 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 UmV2aWV3ZWQtYnk6IE1pY2hhZWwgRCBLaW5uZXkgPm1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t Pg0KDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogR2VyZCBIb2ZmbWFu biA8a3JheGVsQHJlZGhhdC5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBNYXJjaCAyLCAyMDIzIDEw OjUxIFBNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogQXJkIEJpZXNoZXV2ZWwg PGFyZGIrdGlhbm9jb3JlQGtlcm5lbC5vcmc+OyBHZXJkIEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0 LmNvbT47IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgWWFvLA0KPiBKaWV3 ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgTWFydmluIEjDpHVzZXIgPG1oYWV1c2VyQHBvc3Rl by5kZT47IEphbWVzIEJvdHRvbWxleSA8amVqYkBsaW51eC5pYm0uY29tPjsgTWljaGFlbCBSb3Ro DQo+IDxtaWNoYWVsLnJvdGhAYW1kLmNvbT47IFd1LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29t PjsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgT2xpdmVy IFN0ZWZmZW4NCj4gPG9zdGVmZmVuQHJlZGhhdC5jb20+OyBYdSwgTWluIE0gPG1pbi5tLnh1QGlu dGVsLmNvbT47IEdhbywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBOaSwgUmF5 IDxyYXkubmlAaW50ZWwuY29tPjsgVG9tDQo+IExlbmRhY2t5IDx0aG9tYXMubGVuZGFja3lAYW1k LmNvbT47IEFrdGFzLCBFcmRlbSA8ZXJkZW1ha3Rhc0Bnb29nbGUuY29tPjsgTGl1LCBaaGlndWFu ZyA8emhpZ3VhbmcubGl1QGludGVsLmNvbT47IFBhd2VsIFBvbGF3c2tpDQo+IDxwcG9sYXdza0By ZWRoYXQuY29tPjsgSnVzdGVuLCBKb3JkYW4gTCA8am9yZGFuLmwuanVzdGVuQGludGVsLmNvbT47 IFZpdGFseSBDaGVwdHNvdiA8dml0OTY5NkBwcm90b25tYWlsLmNvbT4NCj4gU3ViamVjdDogW1BB VENIIDQvNV0gTWRlTW9kdWxlUGtnOiBDb25zdW1lIG5ldyBhbGlnbm1lbnQtcmVsYXRlZCBtYWNy b3MNCj4gDQo+IEZyb206IE1hcnZpbiBIw6R1c2VyIDxtaGFldXNlckBwb3N0ZW8uZGU+DQo+IA0K PiBUaGlzIHBhdGNoIHN1YnN0aXR1dGVzIHRoZSBtYWNyb3MgdGhhdCB3ZXJlIHJlbmFtZWQgaW4g dGhlIGZpcnN0DQo+IHBhdGNoIHdpdGggdGhlIG5ldywgc2hhcmVkIGFsaWdubWVudCBtYWNyb3Mu DQo+IA0KPiBDYzogSmlhbiBKIFdhbmcgPGppYW4uai53YW5nQGludGVsLmNvbT4NCj4gQ2M6IEhh byBBIFd1IDxoYW8uYS53dUBpbnRlbC5jb20+DQo+IENjOiBSYXkgTmkgPHJheS5uaUBpbnRlbC5j b20+DQo+IENjOiBWaXRhbHkgQ2hlcHRzb3YgPHZpdDk2OTZAcHJvdG9ubWFpbC5jb20+DQo+IFNp Z25lZC1vZmYtYnk6IE1hcnZpbiBIw6R1c2VyIDxtaGFldXNlckBwb3N0ZW8uZGU+DQo+IC0tLQ0K PiAgTWRlTW9kdWxlUGtnL0J1cy9BdGEvQWhjaVBlaS9BaGNpUGVpLmggICAgICAgIHwgIDMgKy0N Cj4gIC4uLi9BdGEvQXRhQXRhcGlQYXNzVGhydS9BdGFBdGFwaVBhc3NUaHJ1LmggICB8ICAyIC0t DQo+ICBNZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFCdXNEeGUvQXRhQnVzLmggICAgICAgfCAgMSAt DQo+ICBNZGVNb2R1bGVQa2cvQnVzL1Njc2kvU2NzaURpc2tEeGUvU2NzaURpc2suaCAgfCAgMiAt LQ0KPiAgLi4uL0J1cy9VZnMvVWZzQmxvY2tJb1BlaS9VZnNCbG9ja0lvUGVpLmggICAgIHwgIDIg LS0NCj4gIC4uLi9CdXMvVWZzL1Vmc1Bhc3NUaHJ1RHhlL1Vmc1Bhc3NUaHJ1LmggICAgICB8ICAy IC0tDQo+ICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0ViY0R4ZS9FYmNFeGVjdXRlLmggICAgfCAg MyArLQ0KPiAgTWRlTW9kdWxlUGtnL0J1cy9BdGEvQWhjaVBlaS9BaGNpTW9kZS5jICAgICAgIHwg IDIgKy0NCj4gIC4uLi9CdXMvQXRhL0FoY2lQZWkvQWhjaVBlaVBhc3NUaHJ1LmMgICAgICAgICB8 ICA2ICsrLS0NCj4gIC4uLi9BdGEvQXRhQXRhcGlQYXNzVGhydS9BdGFBdGFwaVBhc3NUaHJ1LmMg ICB8IDEyICsrKy0tLS0NCj4gIC4uLi9CdXMvQXRhL0F0YUJ1c0R4ZS9BdGFQYXNzVGhydUV4ZWN1 dGUuYyAgICB8ICAyICstDQo+ICBNZGVNb2R1bGVQa2cvQnVzL1Njc2kvU2NzaURpc2tEeGUvU2Nz aURpc2suYyAgfCAgNCArLS0NCj4gIC4uLi9CdXMvVWZzL1Vmc1Bhc3NUaHJ1RHhlL1Vmc1Bhc3NU aHJ1LmMgICAgICB8ICA2ICsrLS0NCj4gIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvRWJjRHhlL0Vi Y0V4ZWN1dGUuYyAgICB8IDM2ICsrKysrKysrKy0tLS0tLS0tLS0NCj4gIDE0IGZpbGVzIGNoYW5n ZWQsIDM2IGluc2VydGlvbnMoKyksIDQ3IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBh L01kZU1vZHVsZVBrZy9CdXMvQXRhL0FoY2lQZWkvQWhjaVBlaS5oIGIvTWRlTW9kdWxlUGtnL0J1 cy9BdGEvQWhjaVBlaS9BaGNpUGVpLmgNCj4gaW5kZXggNzFkMzRjOTYyYWQxLi5lMmU0YmE0M2U3 YzQgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9CdXMvQXRhL0FoY2lQZWkvQWhjaVBlaS5o DQo+ICsrKyBiL01kZU1vZHVsZVBrZy9CdXMvQXRhL0FoY2lQZWkvQWhjaVBlaS5oDQo+IEBAIC0x NDYsOCArMTQ2LDcgQEAgdHlwZWRlZiB1bmlvbiB7DQo+ICAjZGVmaW5lIEFIQ0lfUE9SVF9TRVJS ICAweDAwMzANCj4gICNkZWZpbmUgQUhDSV9QT1JUX0NJICAgIDB4MDAzOA0KPiANCj4gLSNkZWZp bmUgQUREUkVTU19JU19BTElHTkVEXyhhZGRyLCBzaXplKSAgKCgoVUlOVE4pIChhZGRyKSAmIChz aXplIC0gMSkpID09IDApDQo+IC0jZGVmaW5lIFRJTUVSX1BFUklPRF9TRUNPTkRTKFNlY29uZHMp ICAgIE11bHRVNjR4MzIoKFVJTlQ2NCkoU2Vjb25kcyksIDEwMDAwMDAwKQ0KPiArI2RlZmluZSBU SU1FUl9QRVJJT0RfU0VDT05EUyhTZWNvbmRzKSAgTXVsdFU2NHgzMigoVUlOVDY0KShTZWNvbmRz KSwgMTAwMDAwMDApDQo+IA0KPiAgI3ByYWdtYSBwYWNrKDEpDQo+IA0KPiBkaWZmIC0tZ2l0IGEv TWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQXRhcGlQYXNzVGhydS9BdGFBdGFwaVBhc3NUaHJ1Lmgg Yi9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFBdGFwaVBhc3NUaHJ1L0F0YUF0YXBpUGFzc1RocnUu aA0KPiBpbmRleCA3OTM3ODg2NjE0ZTEuLjAxNmZjNjg5MGFlOSAxMDA2NDQNCj4gLS0tIGEvTWRl TW9kdWxlUGtnL0J1cy9BdGEvQXRhQXRhcGlQYXNzVGhydS9BdGFBdGFwaVBhc3NUaHJ1LmgNCj4g KysrIGIvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQXRhcGlQYXNzVGhydS9BdGFBdGFwaVBhc3NU aHJ1LmgNCj4gQEAgLTE0OCw4ICsxNDgsNiBAQCBzdHJ1Y3QgX0FUQV9OT05CTE9DS19UQVNLIHsN Cj4gICNkZWZpbmUgQVRBX0FUQVBJX1RJTUVPVVQgICBFRklfVElNRVJfUEVSSU9EX1NFQ09ORFMo MykNCj4gICNkZWZpbmUgQVRBX1NQSU5VUF9USU1FT1VUICBFRklfVElNRVJfUEVSSU9EX1NFQ09O RFMoMTApDQo+IA0KPiAtI2RlZmluZSBBRERSRVNTX0lTX0FMSUdORURfKGFkZHIsIHNpemUpICAo KChVSU5UTikgKGFkZHIpICYgKHNpemUgLSAxKSkgPT0gMCkNCj4gLQ0KPiAgI2RlZmluZSBBVEFf UEFTU19USFJVX1BSSVZBVEVfREFUQV9GUk9NX1RISVMoYSkgXA0KPiAgICBDUiAoYSwgXA0KPiAg ICAgICAgQVRBX0FUQVBJX1BBU1NfVEhSVV9JTlNUQU5DRSwgXA0KPiBkaWZmIC0tZ2l0IGEvTWRl TW9kdWxlUGtnL0J1cy9BdGEvQXRhQnVzRHhlL0F0YUJ1cy5oIGIvTWRlTW9kdWxlUGtnL0J1cy9B dGEvQXRhQnVzRHhlL0F0YUJ1cy5oDQo+IGluZGV4IDQ3MzQ2ZTkxMWQ0Ny4uNmJjMzQ1ZjdlNzc3 IDEwMDY0NA0KPiAtLS0gYS9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFCdXNEeGUvQXRhQnVzLmgN Cj4gKysrIGIvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQnVzRHhlL0F0YUJ1cy5oDQo+IEBAIC03 Niw3ICs3Niw2IEBADQo+ICAjZGVmaW5lIEFUQV9UQVNLX1NJR05BVFVSRSAgICAgIFNJR05BVFVS RV8zMiAoJ0EnLCAnVCcsICdTJywgJ0snKQ0KPiAgI2RlZmluZSBBVEFfREVWSUNFX1NJR05BVFVS RSAgICBTSUdOQVRVUkVfMzIgKCdBJywgJ0InLCAnSScsICdEJykNCj4gICNkZWZpbmUgQVRBX1NV Ql9UQVNLX1NJR05BVFVSRSAgU0lHTkFUVVJFXzMyICgnQScsICdTJywgJ1QnLCAnUycpDQo+IC0j ZGVmaW5lIEFERFJFU1NfSVNfQUxJR05FRF8oYWRkciwgc2l6ZSkgICgoKFVJTlROKSAoYWRkcikg JiAoc2l6ZSAtIDEpKSA9PSAwKQ0KPiANCj4gIC8vDQo+ICAvLyBBVEEgYnVzIGRhdGEgc3RydWN0 dXJlIGZvciBBVEEgY29udHJvbGxlcg0KPiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9T Y3NpL1Njc2lEaXNrRHhlL1Njc2lEaXNrLmggYi9NZGVNb2R1bGVQa2cvQnVzL1Njc2kvU2NzaURp c2tEeGUvU2NzaURpc2suaA0KPiBpbmRleCBlZDM4NGFkNTIxODIuLjVhMjViNTVjNDk1MiAxMDA2 NDQNCj4gLS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9TY3NpL1Njc2lEaXNrRHhlL1Njc2lEaXNrLmgN Cj4gKysrIGIvTWRlTW9kdWxlUGtnL0J1cy9TY3NpL1Njc2lEaXNrRHhlL1Njc2lEaXNrLmgNCj4g QEAgLTM4LDggKzM4LDYgQEAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1Q YXRlbnQNCj4gDQo+ICAjZGVmaW5lIElTX0RFVklDRV9GSVhFRChhKSAgKGEpLT5GaXhlZERldmlj ZSA/IDEgOiAwDQo+IA0KPiAtI2RlZmluZSBBRERSRVNTX0lTX0FMSUdORURfKGFkZHIsIHNpemUp ICAoKChVSU5UTikgKGFkZHIpICYgKHNpemUgLSAxKSkgPT0gMCkNCj4gLQ0KPiAgI2RlZmluZSBV RlNfV0xVTl9SUE1CICAweEM0DQo+IA0KPiAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiBkaWZmIC0tZ2l0 IGEvTWRlTW9kdWxlUGtnL0J1cy9VZnMvVWZzQmxvY2tJb1BlaS9VZnNCbG9ja0lvUGVpLmggYi9N ZGVNb2R1bGVQa2cvQnVzL1Vmcy9VZnNCbG9ja0lvUGVpL1Vmc0Jsb2NrSW9QZWkuaA0KPiBpbmRl eCAxYWRiMzgyYWE4YzMuLmVkNDc3NmY1NDhlMCAxMDA2NDQNCj4gLS0tIGEvTWRlTW9kdWxlUGtn L0J1cy9VZnMvVWZzQmxvY2tJb1BlaS9VZnNCbG9ja0lvUGVpLmgNCj4gKysrIGIvTWRlTW9kdWxl UGtnL0J1cy9VZnMvVWZzQmxvY2tJb1BlaS9VZnNCbG9ja0lvUGVpLmgNCj4gQEAgLTEzMyw4ICsx MzMsNiBAQCB0eXBlZGVmIHN0cnVjdCBfVUZTX1BFSU1fSENfUFJJVkFURV9EQVRBIHsNCj4gDQo+ ICAjZGVmaW5lIFJPVU5EVVA4KHgpICAoKCh4KSAlIDggPT0gMCkgPyAoeCkgOiAoKHgpIC8gOCAr IDEpICogOCkNCj4gDQo+IC0jZGVmaW5lIEFERFJFU1NfSVNfQUxJR05FRF8oYWRkciwgc2l6ZSkg ICgoKFVJTlROKSAoYWRkcikgJiAoc2l6ZSAtIDEpKSA9PSAwKQ0KPiAtDQo+ICAjZGVmaW5lIEdF VF9VRlNfUEVJTV9IQ19QUklWQVRFX0RBVEFfRlJPTV9USElTKGEpICAgICAgICAgQ1IgKGEsIFVG U19QRUlNX0hDX1BSSVZBVEVfREFUQSwgQmxrSW9QcGksIFVGU19QRUlNX0hDX1NJRykNCj4gICNk ZWZpbmUgR0VUX1VGU19QRUlNX0hDX1BSSVZBVEVfREFUQV9GUk9NX1RISVMyKGEpICAgICAgICBD UiAoYSwgVUZTX1BFSU1fSENfUFJJVkFURV9EQVRBLCBCbGtJbzJQcGksIFVGU19QRUlNX0hDX1NJ RykNCj4gICNkZWZpbmUgR0VUX1VGU19QRUlNX0hDX1BSSVZBVEVfREFUQV9GUk9NX1RISVNfTk9U SUZZKGEpICBDUiAoYSwgVUZTX1BFSU1fSENfUFJJVkFURV9EQVRBLCBFbmRPZlBlaU5vdGlmeUxp c3QsIFVGU19QRUlNX0hDX1NJRykNCj4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9CdXMvVWZz L1Vmc1Bhc3NUaHJ1RHhlL1Vmc1Bhc3NUaHJ1LmggYi9NZGVNb2R1bGVQa2cvQnVzL1Vmcy9VZnNQ YXNzVGhydUR4ZS9VZnNQYXNzVGhydS5oDQo+IGluZGV4IDBlYzM3ZTU2NjUyYi4uYmMxMTM5ZGE2 ZTNiIDEwMDY0NA0KPiAtLS0gYS9NZGVNb2R1bGVQa2cvQnVzL1Vmcy9VZnNQYXNzVGhydUR4ZS9V ZnNQYXNzVGhydS5oDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9CdXMvVWZzL1Vmc1Bhc3NUaHJ1RHhl L1Vmc1Bhc3NUaHJ1LmgNCj4gQEAgLTEwNSw4ICsxMDUsNiBAQCB0eXBlZGVmIHN0cnVjdCB7DQo+ IA0KPiAgI2RlZmluZSBST1VORFVQOCh4KSAgKCgoeCkgJSA4ID09IDApID8gKHgpIDogKCh4KSAv IDggKyAxKSAqIDgpDQo+IA0KPiAtI2RlZmluZSBBRERSRVNTX0lTX0FMSUdORURfKGFkZHIsIHNp emUpICAoKChVSU5UTikgKGFkZHIpICYgKHNpemUgLSAxKSkgPT0gMCkNCj4gLQ0KPiAgI2RlZmlu ZSBVRlNfUEFTU19USFJVX1BSSVZBVEVfREFUQV9GUk9NX1RISVMoYSkgXA0KPiAgICBDUiAoYSwg XA0KPiAgICAgICAgVUZTX1BBU1NfVEhSVV9QUklWQVRFX0RBVEEsIFwNCj4gZGlmZiAtLWdpdCBh L01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvRWJjRHhlL0ViY0V4ZWN1dGUuaCBiL01kZU1vZHVsZVBr Zy9Vbml2ZXJzYWwvRWJjRHhlL0ViY0V4ZWN1dGUuaA0KPiBpbmRleCA2ZGM2NzMwYWIwOTUuLmYz NzY4ZTc5NTI4ZSAxMDA2NDQNCj4gLS0tIGEvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9FYmNEeGUv RWJjRXhlY3V0ZS5oDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvRWJjRHhlL0ViY0V4 ZWN1dGUuaA0KPiBAQCAtMTQsOCArMTQsNyBAQCBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNE LTItQ2xhdXNlLVBhdGVudA0KPiAgLy8NCj4gIC8vIE1hY3JvcyB0byBjaGVjayBhbmQgc2V0IGFs aWdubWVudA0KPiAgLy8NCj4gLSNkZWZpbmUgQVNTRVJUX0FMSUdORUQoYWRkciwgc2l6ZSkgICAg ICAgQVNTRVJUICghKChVSU5UMzIpIChhZGRyKSAmIChzaXplIC0gMSkpKQ0KPiAtI2RlZmluZSBB RERSRVNTX0lTX0FMSUdORURfKGFkZHIsIHNpemUpICAhKChVSU5UMzIpIChhZGRyKSAmIChzaXpl IC0gMSkpDQo+ICsjZGVmaW5lIEFTU0VSVF9BTElHTkVEKGFkZHIsIHNpemUpICBBU1NFUlQgKEFE RFJFU1NfSVNfQUxJR05FRCAoYWRkciwgc2l6ZSkpDQo+IA0KPiAgLy8NCj4gIC8vIERlYnVnIG1h Y3JvDQo+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BaGNpUGVpL0FoY2lNb2Rl LmMgYi9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BaGNpUGVpL0FoY2lNb2RlLmMNCj4gaW5kZXggZDkz ZmE3OGM4MWYzLi4wZjAxOThkMzA4NWIgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9CdXMv QXRhL0FoY2lQZWkvQWhjaU1vZGUuYw0KPiArKysgYi9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BaGNp UGVpL0FoY2lNb2RlLmMNCj4gQEAgLTIxMjYsNyArMjEyNiw3IEBAIFRydXN0VHJhbnNmZXJBdGFE ZXZpY2UgKA0KPiAgICAgIC8vIEFUQSBQYXNzVGhydSBQUEkuDQo+ICAgICAgLy8NCj4gICAgICBp ZiAoKEF0YVBhc3NUaHJ1LT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYNCj4gLSAgICAgICAgIUFERFJF U1NfSVNfQUxJR05FRF8gKEJ1ZmZlciwgQXRhUGFzc1RocnUtPk1vZGUtPklvQWxpZ24pKQ0KPiAr ICAgICAgICAhQUREUkVTU19JU19BTElHTkVEIChCdWZmZXIsIEF0YVBhc3NUaHJ1LT5Nb2RlLT5J b0FsaWduKSkNCj4gICAgICB7DQo+ICAgICAgICBOZXdCdWZmZXIgPSBBbGxvY2F0ZUFsaWduZWRQ YWdlcyAoDQo+ICAgICAgICAgICAgICAgICAgICAgIEVGSV9TSVpFX1RPX1BBR0VTIChUcmFuc2Zl ckxlbmd0aCksDQo+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BaGNpUGVpL0Fo Y2lQZWlQYXNzVGhydS5jIGIvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQWhjaVBlaS9BaGNpUGVpUGFz c1RocnUuYw0KPiBpbmRleCAwYzQ5MDU5YTAwZDUuLmNkNTUyNzJjOTZjZCAxMDA2NDQNCj4gLS0t IGEvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQWhjaVBlaS9BaGNpUGVpUGFzc1RocnUuYw0KPiArKysg Yi9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BaGNpUGVpL0FoY2lQZWlQYXNzVGhydS5jDQo+IEBAIC0x OTQsMTUgKzE5NCwxNSBAQCBBaGNpQXRhUGFzc1RocnVQYXNzVGhydSAoDQo+ICAgIH0NCj4gDQo+ ICAgIElvQWxpZ24gPSBUaGlzLT5Nb2RlLT5Jb0FsaWduOw0KPiAtICBpZiAoKElvQWxpZ24gPiAx KSAmJiAhQUREUkVTU19JU19BTElHTkVEXyAoUGFja2V0LT5JbkRhdGFCdWZmZXIsIElvQWxpZ24p KSB7DQo+ICsgIGlmICgoSW9BbGlnbiA+IDEpICYmICFBRERSRVNTX0lTX0FMSUdORUQgKFBhY2tl dC0+SW5EYXRhQnVmZmVyLCBJb0FsaWduKSkgew0KPiAgICAgIHJldHVybiBFRklfSU5WQUxJRF9Q QVJBTUVURVI7DQo+ICAgIH0NCj4gDQo+IC0gIGlmICgoSW9BbGlnbiA+IDEpICYmICFBRERSRVNT X0lTX0FMSUdORURfIChQYWNrZXQtPk91dERhdGFCdWZmZXIsIElvQWxpZ24pKSB7DQo+ICsgIGlm ICgoSW9BbGlnbiA+IDEpICYmICFBRERSRVNTX0lTX0FMSUdORUQgKFBhY2tldC0+T3V0RGF0YUJ1 ZmZlciwgSW9BbGlnbikpIHsNCj4gICAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0K PiAgICB9DQo+IA0KPiAtICBpZiAoKElvQWxpZ24gPiAxKSAmJiAhQUREUkVTU19JU19BTElHTkVE XyAoUGFja2V0LT5Bc2IsIElvQWxpZ24pKSB7DQo+ICsgIGlmICgoSW9BbGlnbiA+IDEpICYmICFB RERSRVNTX0lTX0FMSUdORUQgKFBhY2tldC0+QXNiLCBJb0FsaWduKSkgew0KPiAgICAgIHJldHVy biBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+ICAgIH0NCj4gDQo+IGRpZmYgLS1naXQgYS9NZGVN b2R1bGVQa2cvQnVzL0F0YS9BdGFBdGFwaVBhc3NUaHJ1L0F0YUF0YXBpUGFzc1RocnUuYyBiL01k ZU1vZHVsZVBrZy9CdXMvQXRhL0F0YUF0YXBpUGFzc1RocnUvQXRhQXRhcGlQYXNzVGhydS5jDQo+ IGluZGV4IDMyNGFiYWRkMDJkZC4uNTA0MDZmZTAyNzBkIDEwMDY0NA0KPiAtLS0gYS9NZGVNb2R1 bGVQa2cvQnVzL0F0YS9BdGFBdGFwaVBhc3NUaHJ1L0F0YUF0YXBpUGFzc1RocnUuYw0KPiArKysg Yi9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFBdGFwaVBhc3NUaHJ1L0F0YUF0YXBpUGFzc1RocnUu Yw0KPiBAQCAtMTI5OSwxNSArMTI5OSwxNSBAQCBBdGFQYXNzVGhydVBhc3NUaHJ1ICgNCj4gDQo+ ICAgIEluc3RhbmNlID0gQVRBX1BBU1NfVEhSVV9QUklWQVRFX0RBVEFfRlJPTV9USElTIChUaGlz KTsNCj4gDQo+IC0gIGlmICgoVGhpcy0+TW9kZS0+SW9BbGlnbiA+IDEpICYmICFBRERSRVNTX0lT X0FMSUdORURfIChQYWNrZXQtPkluRGF0YUJ1ZmZlciwgVGhpcy0+TW9kZS0+SW9BbGlnbikpIHsN Cj4gKyAgaWYgKChUaGlzLT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJR05F RCAoUGFja2V0LT5JbkRhdGFCdWZmZXIsIFRoaXMtPk1vZGUtPklvQWxpZ24pKSB7DQo+ICAgICAg cmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gICAgfQ0KPiANCj4gLSAgaWYgKChUaGlz LT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJR05FRF8gKFBhY2tldC0+T3V0 RGF0YUJ1ZmZlciwgVGhpcy0+TW9kZS0+SW9BbGlnbikpIHsNCj4gKyAgaWYgKChUaGlzLT5Nb2Rl LT5Jb0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJR05FRCAoUGFja2V0LT5PdXREYXRhQnVm ZmVyLCBUaGlzLT5Nb2RlLT5Jb0FsaWduKSkgew0KPiAgICAgIHJldHVybiBFRklfSU5WQUxJRF9Q QVJBTUVURVI7DQo+ICAgIH0NCj4gDQo+IC0gIGlmICgoVGhpcy0+TW9kZS0+SW9BbGlnbiA+IDEp ICYmICFBRERSRVNTX0lTX0FMSUdORURfIChQYWNrZXQtPkFzYiwgVGhpcy0+TW9kZS0+SW9BbGln bikpIHsNCj4gKyAgaWYgKChUaGlzLT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNf QUxJR05FRCAoUGFja2V0LT5Bc2IsIFRoaXMtPk1vZGUtPklvQWxpZ24pKSB7DQo+ICAgICAgcmV0 dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gICAgfQ0KPiANCj4gQEAgLTIwMzksMTUgKzIw MzksMTUgQEAgRXh0U2NzaVBhc3NUaHJ1UGFzc1RocnUgKA0KPiAgICAgIHJldHVybiBFRklfSU5W QUxJRF9QQVJBTUVURVI7DQo+ICAgIH0NCj4gDQo+IC0gIGlmICgoVGhpcy0+TW9kZS0+SW9BbGln biA+IDEpICYmICFBRERSRVNTX0lTX0FMSUdORURfIChQYWNrZXQtPkluRGF0YUJ1ZmZlciwgVGhp cy0+TW9kZS0+SW9BbGlnbikpIHsNCj4gKyAgaWYgKChUaGlzLT5Nb2RlLT5Jb0FsaWduID4gMSkg JiYgIUFERFJFU1NfSVNfQUxJR05FRCAoUGFja2V0LT5JbkRhdGFCdWZmZXIsIFRoaXMtPk1vZGUt PklvQWxpZ24pKSB7DQo+ICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gICAg fQ0KPiANCj4gLSAgaWYgKChUaGlzLT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNf QUxJR05FRF8gKFBhY2tldC0+T3V0RGF0YUJ1ZmZlciwgVGhpcy0+TW9kZS0+SW9BbGlnbikpIHsN Cj4gKyAgaWYgKChUaGlzLT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJR05F RCAoUGFja2V0LT5PdXREYXRhQnVmZmVyLCBUaGlzLT5Nb2RlLT5Jb0FsaWduKSkgew0KPiAgICAg IHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+ICAgIH0NCj4gDQo+IC0gIGlmICgoVGhp cy0+TW9kZS0+SW9BbGlnbiA+IDEpICYmICFBRERSRVNTX0lTX0FMSUdORURfIChQYWNrZXQtPlNl bnNlRGF0YSwgVGhpcy0+TW9kZS0+SW9BbGlnbikpIHsNCj4gKyAgaWYgKChUaGlzLT5Nb2RlLT5J b0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJR05FRCAoUGFja2V0LT5TZW5zZURhdGEsIFRo aXMtPk1vZGUtPklvQWxpZ24pKSB7DQo+ICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRF UjsNCj4gICAgfQ0KPiANCj4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9CdXMvQXRhL0F0YUJ1 c0R4ZS9BdGFQYXNzVGhydUV4ZWN1dGUuYyBiL01kZU1vZHVsZVBrZy9CdXMvQXRhL0F0YUJ1c0R4 ZS9BdGFQYXNzVGhydUV4ZWN1dGUuYw0KPiBpbmRleCAxOGFhNGY5YmI2NjYuLmE3Nzg1MmJhZTA1 NCAxMDA2NDQNCj4gLS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQnVzRHhlL0F0YVBhc3NU aHJ1RXhlY3V0ZS5jDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9CdXMvQXRhL0F0YUJ1c0R4ZS9BdGFQ YXNzVGhydUV4ZWN1dGUuYw0KPiBAQCAtMTA0MCw3ICsxMDQwLDcgQEAgVHJ1c3RUcmFuc2ZlckF0 YURldmljZSAoDQo+ICAgICAgLy8gQ2hlY2sgdGhlIGFsaWdubWVudCBvZiB0aGUgaW5jb21pbmcg YnVmZmVyIHByaW9yIHRvIGludm9raW5nIHVuZGVybHlpbmcgQVRBIFBhc3NUaHJ1DQo+ICAgICAg Ly8NCj4gICAgICBBdGFQYXNzVGhydSA9IEF0YURldmljZS0+QXRhQnVzRHJpdmVyRGF0YS0+QXRh UGFzc1RocnU7DQo+IC0gICAgaWYgKChBdGFQYXNzVGhydS0+TW9kZS0+SW9BbGlnbiA+IDEpICYm ICFBRERSRVNTX0lTX0FMSUdORURfIChCdWZmZXIsIEF0YVBhc3NUaHJ1LT5Nb2RlLT5Jb0FsaWdu KSkgew0KPiArICAgIGlmICgoQXRhUGFzc1RocnUtPk1vZGUtPklvQWxpZ24gPiAxKSAmJiAhQURE UkVTU19JU19BTElHTkVEIChCdWZmZXIsIEF0YVBhc3NUaHJ1LT5Nb2RlLT5Jb0FsaWduKSkgew0K PiAgICAgICAgTmV3QnVmZmVyID0gQWxsb2NhdGVBbGlnbmVkQnVmZmVyIChBdGFEZXZpY2UsIFRy YW5zZmVyTGVuZ3RoKTsNCj4gICAgICAgIGlmIChOZXdCdWZmZXIgPT0gTlVMTCkgew0KPiAgICAg ICAgICByZXR1cm4gRUZJX09VVF9PRl9SRVNPVVJDRVM7DQo+IGRpZmYgLS1naXQgYS9NZGVNb2R1 bGVQa2cvQnVzL1Njc2kvU2NzaURpc2tEeGUvU2NzaURpc2suYyBiL01kZU1vZHVsZVBrZy9CdXMv U2NzaS9TY3NpRGlza0R4ZS9TY3NpRGlzay5jDQo+IGluZGV4IGZhZjRhZTMzMmU0Ni4uODczNTgx ZDgxN2NlIDEwMDY0NA0KPiAtLS0gYS9NZGVNb2R1bGVQa2cvQnVzL1Njc2kvU2NzaURpc2tEeGUv U2NzaURpc2suYw0KPiArKysgYi9NZGVNb2R1bGVQa2cvQnVzL1Njc2kvU2NzaURpc2tEeGUvU2Nz aURpc2suYw0KPiBAQCAtMjAyOSw3ICsyMDI5LDcgQEAgU2NzaURpc2tSZWNlaXZlRGF0YSAoDQo+ ICAgICAgICBnb3RvIERvbmU7DQo+ICAgICAgfQ0KPiANCj4gLSAgICBpZiAoKFNjc2lEaXNrRGV2 aWNlLT5TY3NpSW8tPklvQWxpZ24gPiAxKSAmJiAhQUREUkVTU19JU19BTElHTkVEXyAoUGF5bG9h ZEJ1ZmZlciwgU2NzaURpc2tEZXZpY2UtPlNjc2lJby0+SW9BbGlnbikpIHsNCj4gKyAgICBpZiAo KFNjc2lEaXNrRGV2aWNlLT5TY3NpSW8tPklvQWxpZ24gPiAxKSAmJiAhQUREUkVTU19JU19BTElH TkVEIChQYXlsb2FkQnVmZmVyLCBTY3NpRGlza0RldmljZS0+U2NzaUlvLT5Jb0FsaWduKSkgew0K PiAgICAgICAgQWxpZ25lZEJ1ZmZlciA9IEFsbG9jYXRlQWxpZ25lZEJ1ZmZlciAoU2NzaURpc2tE ZXZpY2UsIFBheWxvYWRCdWZmZXJTaXplKTsNCj4gICAgICAgIGlmIChBbGlnbmVkQnVmZmVyID09 IE5VTEwpIHsNCj4gICAgICAgICAgU3RhdHVzID0gRUZJX09VVF9PRl9SRVNPVVJDRVM7DQo+IEBA IC0yMjQ5LDcgKzIyNDksNyBAQCBTY3NpRGlza1NlbmREYXRhICgNCj4gICAgICAgIGdvdG8gRG9u ZTsNCj4gICAgICB9DQo+IA0KPiAtICAgIGlmICgoU2NzaURpc2tEZXZpY2UtPlNjc2lJby0+SW9B bGlnbiA+IDEpICYmICFBRERSRVNTX0lTX0FMSUdORURfIChQYXlsb2FkQnVmZmVyLCBTY3NpRGlz a0RldmljZS0+U2NzaUlvLT5Jb0FsaWduKSkgew0KPiArICAgIGlmICgoU2NzaURpc2tEZXZpY2Ut PlNjc2lJby0+SW9BbGlnbiA+IDEpICYmICFBRERSRVNTX0lTX0FMSUdORUQgKFBheWxvYWRCdWZm ZXIsIFNjc2lEaXNrRGV2aWNlLT5TY3NpSW8tPklvQWxpZ24pKSB7DQo+ICAgICAgICBBbGlnbmVk QnVmZmVyID0gQWxsb2NhdGVBbGlnbmVkQnVmZmVyIChTY3NpRGlza0RldmljZSwgUGF5bG9hZEJ1 ZmZlclNpemUpOw0KPiAgICAgICAgaWYgKEFsaWduZWRCdWZmZXIgPT0gTlVMTCkgew0KPiAgICAg ICAgICBTdGF0dXMgPSBFRklfT1VUX09GX1JFU09VUkNFUzsNCj4gZGlmZiAtLWdpdCBhL01kZU1v ZHVsZVBrZy9CdXMvVWZzL1Vmc1Bhc3NUaHJ1RHhlL1Vmc1Bhc3NUaHJ1LmMgYi9NZGVNb2R1bGVQ a2cvQnVzL1Vmcy9VZnNQYXNzVGhydUR4ZS9VZnNQYXNzVGhydS5jDQo+IGluZGV4IDM5MmEyOTVj YWYwNC4uODgwZTdkODUxMTRlIDEwMDY0NA0KPiAtLS0gYS9NZGVNb2R1bGVQa2cvQnVzL1Vmcy9V ZnNQYXNzVGhydUR4ZS9VZnNQYXNzVGhydS5jDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9CdXMvVWZz L1Vmc1Bhc3NUaHJ1RHhlL1Vmc1Bhc3NUaHJ1LmMNCj4gQEAgLTE3MSwxNSArMTcxLDE1IEBAIFVm c1Bhc3NUaHJ1UGFzc1RocnUgKA0KPiAgICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7 DQo+ICAgIH0NCj4gDQo+IC0gIGlmICgoVGhpcy0+TW9kZS0+SW9BbGlnbiA+IDEpICYmICFBRERS RVNTX0lTX0FMSUdORURfIChQYWNrZXQtPkluRGF0YUJ1ZmZlciwgVGhpcy0+TW9kZS0+SW9BbGln bikpIHsNCj4gKyAgaWYgKChUaGlzLT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNf QUxJR05FRCAoUGFja2V0LT5JbkRhdGFCdWZmZXIsIFRoaXMtPk1vZGUtPklvQWxpZ24pKSB7DQo+ ICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gICAgfQ0KPiANCj4gLSAgaWYg KChUaGlzLT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJR05FRF8gKFBhY2tl dC0+T3V0RGF0YUJ1ZmZlciwgVGhpcy0+TW9kZS0+SW9BbGlnbikpIHsNCj4gKyAgaWYgKChUaGlz LT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJR05FRCAoUGFja2V0LT5PdXRE YXRhQnVmZmVyLCBUaGlzLT5Nb2RlLT5Jb0FsaWduKSkgew0KPiAgICAgIHJldHVybiBFRklfSU5W QUxJRF9QQVJBTUVURVI7DQo+ICAgIH0NCj4gDQo+IC0gIGlmICgoVGhpcy0+TW9kZS0+SW9BbGln biA+IDEpICYmICFBRERSRVNTX0lTX0FMSUdORURfIChQYWNrZXQtPlNlbnNlRGF0YSwgVGhpcy0+ TW9kZS0+SW9BbGlnbikpIHsNCj4gKyAgaWYgKChUaGlzLT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYg IUFERFJFU1NfSVNfQUxJR05FRCAoUGFja2V0LT5TZW5zZURhdGEsIFRoaXMtPk1vZGUtPklvQWxp Z24pKSB7DQo+ICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gICAgfQ0KPiAN Cj4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvRWJjRHhlL0ViY0V4ZWN1dGUu YyBiL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvRWJjRHhlL0ViY0V4ZWN1dGUuYw0KPiBpbmRleCAy OGYxMDhjNDQ4NzMuLjMyMjFmOTVhNzM5ZiAxMDA2NDQNCj4gLS0tIGEvTWRlTW9kdWxlUGtnL1Vu aXZlcnNhbC9FYmNEeGUvRWJjRXhlY3V0ZS5jDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9Vbml2ZXJz YWwvRWJjRHhlL0ViY0V4ZWN1dGUuYw0KPiBAQCAtMjAxNSw3ICsyMDE1LDcgQEAgRXhlY3V0ZUpN UCAoDQo+ICAgICAgLy8gY2hlY2sgZm9yIGFsaWdubWVudCwgYW5kIGp1bXAgYWJzb2x1dGUuDQo+ ICAgICAgLy8NCj4gICAgICBEYXRhNjQgPSAoVUlOVDY0KVZtUmVhZEltbWVkNjQgKFZtUHRyLCAy KTsNCj4gLSAgICBpZiAoIUFERFJFU1NfSVNfQUxJR05FRF8gKChVSU5UTilEYXRhNjQsIHNpemVv ZiAoVUlOVDE2KSkpIHsNCj4gKyAgICBpZiAoIUFERFJFU1NfSVNfQUxJR05FRCAoKFVJTlROKURh dGE2NCwgc2l6ZW9mIChVSU5UMTYpKSkgew0KPiAgICAgICAgRWJjRGVidWdTaWduYWxFeGNlcHRp b24gKA0KPiAgICAgICAgICBFWENFUFRfRUJDX0FMSUdOTUVOVF9DSEVDSywNCj4gICAgICAgICAg RVhDRVBUSU9OX0ZMQUdfRkFUQUwsDQo+IEBAIC0yMDc0LDcgKzIwNzQsNyBAQCBFeGVjdXRlSk1Q ICgNCj4gICAgICAvLyBGb3JtOiBKTVAzMiBAUngge0luZGV4MzJ9DQo+ICAgICAgLy8NCj4gICAg ICBBZGRyID0gVm1SZWFkTWVtTiAoVm1QdHIsIChVSU5UTilEYXRhNjQgKyBJbmRleDMyKTsNCj4g LSAgICBpZiAoIUFERFJFU1NfSVNfQUxJR05FRF8gKChVSU5UTilBZGRyLCBzaXplb2YgKFVJTlQx NikpKSB7DQo+ICsgICAgaWYgKCFBRERSRVNTX0lTX0FMSUdORUQgKChVSU5UTilBZGRyLCBzaXpl b2YgKFVJTlQxNikpKSB7DQo+ICAgICAgICBFYmNEZWJ1Z1NpZ25hbEV4Y2VwdGlvbiAoDQo+ICAg ICAgICAgIEVYQ0VQVF9FQkNfQUxJR05NRU5UX0NIRUNLLA0KPiAgICAgICAgICBFWENFUFRJT05f RkxBR19GQVRBTCwNCj4gQEAgLTIwOTcsNyArMjA5Nyw3IEBAIEV4ZWN1dGVKTVAgKA0KPiAgICAg IC8vIEZvcm06IEpNUDMyIFJ4IHtJbW1lZDMyfQ0KPiAgICAgIC8vDQo+ICAgICAgQWRkciA9IChV SU5UTikoRGF0YTY0ICsgSW5kZXgzMik7DQo+IC0gICAgaWYgKCFBRERSRVNTX0lTX0FMSUdORURf ICgoVUlOVE4pQWRkciwgc2l6ZW9mIChVSU5UMTYpKSkgew0KPiArICAgIGlmICghQUREUkVTU19J U19BTElHTkVEICgoVUlOVE4pQWRkciwgc2l6ZW9mIChVSU5UMTYpKSkgew0KPiAgICAgICAgRWJj RGVidWdTaWduYWxFeGNlcHRpb24gKA0KPiAgICAgICAgICBFWENFUFRfRUJDX0FMSUdOTUVOVF9D SEVDSywNCj4gICAgICAgICAgRVhDRVBUSU9OX0ZMQUdfRkFUQUwsDQo+IEBAIC0zMTU4LDcgKzMx NTgsNyBAQCBFeGVjdXRlUkVUICgNCj4gICAgICAvLyBQdWxsIHRoZSByZXR1cm4gYWRkcmVzcyBv ZmYgdGhlIFZNIGFwcCdzIHN0YWNrIGFuZCBzZXQgdGhlIElQDQo+ICAgICAgLy8gdG8gaXQNCj4g ICAgICAvLw0KPiAtICAgIGlmICghQUREUkVTU19JU19BTElHTkVEXyAoKFVJTlROKVZtUHRyLT5H cHJbMF0sIHNpemVvZiAoVUlOVDE2KSkpIHsNCj4gKyAgICBpZiAoIUFERFJFU1NfSVNfQUxJR05F RCAoKFVJTlROKVZtUHRyLT5HcHJbMF0sIHNpemVvZiAoVUlOVDE2KSkpIHsNCj4gICAgICAgIEVi Y0RlYnVnU2lnbmFsRXhjZXB0aW9uICgNCj4gICAgICAgICAgRVhDRVBUX0VCQ19BTElHTk1FTlRf Q0hFQ0ssDQo+ICAgICAgICAgIEVYQ0VQVElPTl9GTEFHX0ZBVEFMLA0KPiBAQCAtNDczMyw3ICs0 NzMzLDcgQEAgVm1Xcml0ZU1lbTE2ICgNCj4gICAgLy8NCj4gICAgLy8gRG8gYSBzaW1wbGUgd3Jp dGUgaWYgYWxpZ25lZA0KPiAgICAvLw0KPiAtICBpZiAoQUREUkVTU19JU19BTElHTkVEXyAoQWRk ciwgc2l6ZW9mIChVSU5UMTYpKSkgew0KPiArICBpZiAoQUREUkVTU19JU19BTElHTkVEIChBZGRy LCBzaXplb2YgKFVJTlQxNikpKSB7DQo+ICAgICAgKihVSU5UMTYgKilBZGRyID0gRGF0YTsNCj4g ICAgfSBlbHNlIHsNCj4gICAgICAvLw0KPiBAQCAtNDc5NSw3ICs0Nzk1LDcgQEAgVm1Xcml0ZU1l bTMyICgNCj4gICAgLy8NCj4gICAgLy8gRG8gYSBzaW1wbGUgd3JpdGUgaWYgYWxpZ25lZA0KPiAg ICAvLw0KPiAtICBpZiAoQUREUkVTU19JU19BTElHTkVEXyAoQWRkciwgc2l6ZW9mIChVSU5UMzIp KSkgew0KPiArICBpZiAoQUREUkVTU19JU19BTElHTkVEIChBZGRyLCBzaXplb2YgKFVJTlQzMikp KSB7DQo+ICAgICAgKihVSU5UMzIgKilBZGRyID0gRGF0YTsNCj4gICAgfSBlbHNlIHsNCj4gICAg ICAvLw0KPiBAQCAtNDg1Nyw3ICs0ODU3LDcgQEAgVm1Xcml0ZU1lbTY0ICgNCj4gICAgLy8NCj4g ICAgLy8gRG8gYSBzaW1wbGUgd3JpdGUgaWYgYWxpZ25lZA0KPiAgICAvLw0KPiAtICBpZiAoQURE UkVTU19JU19BTElHTkVEXyAoQWRkciwgc2l6ZW9mIChVSU5UNjQpKSkgew0KPiArICBpZiAoQURE UkVTU19JU19BTElHTkVEIChBZGRyLCBzaXplb2YgKFVJTlQ2NCkpKSB7DQo+ICAgICAgKihVSU5U NjQgKilBZGRyID0gRGF0YTsNCj4gICAgfSBlbHNlIHsNCj4gICAgICAvLw0KPiBAQCAtNDkyMiw3 ICs0OTIyLDcgQEAgVm1Xcml0ZU1lbU4gKA0KPiAgICAvLw0KPiAgICAvLyBEbyBhIHNpbXBsZSB3 cml0ZSBpZiBhbGlnbmVkDQo+ICAgIC8vDQo+IC0gIGlmIChBRERSRVNTX0lTX0FMSUdORURfIChB ZGRyLCBzaXplb2YgKFVJTlROKSkpIHsNCj4gKyAgaWYgKEFERFJFU1NfSVNfQUxJR05FRCAoQWRk ciwgc2l6ZW9mIChVSU5UTikpKSB7DQo+ICAgICAgKihVSU5UTiAqKUFkZHIgPSBEYXRhOw0KPiAg ICB9IGVsc2Ugew0KPiAgICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IHNpemVvZiAoVUlOVE4p IC8gc2l6ZW9mIChVSU5UMzIpOyBJbmRleCsrKSB7DQo+IEBAIC00OTg1LDcgKzQ5ODUsNyBAQCBW bVJlYWRJbW1lZDE2ICgNCj4gICAgLy8NCj4gICAgLy8gUmVhZCBkaXJlY3QgaWYgYWxpZ25lZA0K PiAgICAvLw0KPiAtICBpZiAoQUREUkVTU19JU19BTElHTkVEXyAoKFVJTlROKVZtUHRyLT5JcCAr IE9mZnNldCwgc2l6ZW9mIChJTlQxNikpKSB7DQo+ICsgIGlmIChBRERSRVNTX0lTX0FMSUdORUQg KChVSU5UTilWbVB0ci0+SXAgKyBPZmZzZXQsIHNpemVvZiAoSU5UMTYpKSkgew0KPiAgICAgIHJl dHVybiAqKElOVDE2ICopKFZtUHRyLT5JcCArIE9mZnNldCk7DQo+ICAgIH0gZWxzZSB7DQo+ICAg ICAgLy8NCj4gQEAgLTUwMjksNyArNTAyOSw3IEBAIFZtUmVhZEltbWVkMzIgKA0KPiAgICAvLw0K PiAgICAvLyBSZWFkIGRpcmVjdCBpZiBhbGlnbmVkDQo+ICAgIC8vDQo+IC0gIGlmIChBRERSRVNT X0lTX0FMSUdORURfICgoVUlOVE4pVm1QdHItPklwICsgT2Zmc2V0LCBzaXplb2YgKFVJTlQzMikp KSB7DQo+ICsgIGlmIChBRERSRVNTX0lTX0FMSUdORUQgKChVSU5UTilWbVB0ci0+SXAgKyBPZmZz ZXQsIHNpemVvZiAoVUlOVDMyKSkpIHsNCj4gICAgICByZXR1cm4gKihJTlQzMiAqKShWbVB0ci0+ SXAgKyBPZmZzZXQpOw0KPiAgICB9DQo+IA0KPiBAQCAtNTA2OCw3ICs1MDY4LDcgQEAgVm1SZWFk SW1tZWQ2NCAoDQo+ICAgIC8vDQo+ICAgIC8vIFJlYWQgZGlyZWN0IGlmIGFsaWduZWQNCj4gICAg Ly8NCj4gLSAgaWYgKEFERFJFU1NfSVNfQUxJR05FRF8gKChVSU5UTilWbVB0ci0+SXAgKyBPZmZz ZXQsIHNpemVvZiAoVUlOVDY0KSkpIHsNCj4gKyAgaWYgKEFERFJFU1NfSVNfQUxJR05FRCAoKFVJ TlROKVZtUHRyLT5JcCArIE9mZnNldCwgc2l6ZW9mIChVSU5UNjQpKSkgew0KPiAgICAgIHJldHVy biAqKFVJTlQ2NCAqKShWbVB0ci0+SXAgKyBPZmZzZXQpOw0KPiAgICB9DQo+IA0KPiBAQCAtNTEw NSw3ICs1MTA1LDcgQEAgVm1SZWFkQ29kZTE2ICgNCj4gICAgLy8NCj4gICAgLy8gUmVhZCBkaXJl Y3QgaWYgYWxpZ25lZA0KPiAgICAvLw0KPiAtICBpZiAoQUREUkVTU19JU19BTElHTkVEXyAoKFVJ TlROKVZtUHRyLT5JcCArIE9mZnNldCwgc2l6ZW9mIChVSU5UMTYpKSkgew0KPiArICBpZiAoQURE UkVTU19JU19BTElHTkVEICgoVUlOVE4pVm1QdHItPklwICsgT2Zmc2V0LCBzaXplb2YgKFVJTlQx NikpKSB7DQo+ICAgICAgcmV0dXJuICooVUlOVDE2ICopKFZtUHRyLT5JcCArIE9mZnNldCk7DQo+ ICAgIH0gZWxzZSB7DQo+ICAgICAgLy8NCj4gQEAgLTUxNDcsNyArNTE0Nyw3IEBAIFZtUmVhZENv ZGUzMiAoDQo+ICAgIC8vDQo+ICAgIC8vIFJlYWQgZGlyZWN0IGlmIGFsaWduZWQNCj4gICAgLy8N Cj4gLSAgaWYgKEFERFJFU1NfSVNfQUxJR05FRF8gKChVSU5UTilWbVB0ci0+SXAgKyBPZmZzZXQs IHNpemVvZiAoVUlOVDMyKSkpIHsNCj4gKyAgaWYgKEFERFJFU1NfSVNfQUxJR05FRCAoKFVJTlRO KVZtUHRyLT5JcCArIE9mZnNldCwgc2l6ZW9mIChVSU5UMzIpKSkgew0KPiAgICAgIHJldHVybiAq KFVJTlQzMiAqKShWbVB0ci0+SXAgKyBPZmZzZXQpOw0KPiAgICB9DQo+IA0KPiBAQCAtNTE4NCw3 ICs1MTg0LDcgQEAgVm1SZWFkQ29kZTY0ICgNCj4gICAgLy8NCj4gICAgLy8gUmVhZCBkaXJlY3Qg aWYgYWxpZ25lZA0KPiAgICAvLw0KPiAtICBpZiAoQUREUkVTU19JU19BTElHTkVEXyAoKFVJTlRO KVZtUHRyLT5JcCArIE9mZnNldCwgc2l6ZW9mIChVSU5UNjQpKSkgew0KPiArICBpZiAoQUREUkVT U19JU19BTElHTkVEICgoVUlOVE4pVm1QdHItPklwICsgT2Zmc2V0LCBzaXplb2YgKFVJTlQ2NCkp KSB7DQo+ICAgICAgcmV0dXJuICooVUlOVDY0ICopKFZtUHRyLT5JcCArIE9mZnNldCk7DQo+ICAg IH0NCj4gDQo+IEBAIC01MjQ3LDcgKzUyNDcsNyBAQCBWbVJlYWRNZW0xNiAoDQo+ICAgIC8vDQo+ ICAgIC8vIFJlYWQgZGlyZWN0IGlmIGFsaWduZWQNCj4gICAgLy8NCj4gLSAgaWYgKEFERFJFU1Nf SVNfQUxJR05FRF8gKEFkZHIsIHNpemVvZiAoVUlOVDE2KSkpIHsNCj4gKyAgaWYgKEFERFJFU1Nf SVNfQUxJR05FRCAoQWRkciwgc2l6ZW9mIChVSU5UMTYpKSkgew0KPiAgICAgIHJldHVybiAqKFVJ TlQxNiAqKUFkZHI7DQo+ICAgIH0NCj4gDQo+IEBAIC01MjgxLDcgKzUyODEsNyBAQCBWbVJlYWRN ZW0zMiAoDQo+ICAgIC8vDQo+ICAgIC8vIFJlYWQgZGlyZWN0IGlmIGFsaWduZWQNCj4gICAgLy8N Cj4gLSAgaWYgKEFERFJFU1NfSVNfQUxJR05FRF8gKEFkZHIsIHNpemVvZiAoVUlOVDMyKSkpIHsN Cj4gKyAgaWYgKEFERFJFU1NfSVNfQUxJR05FRCAoQWRkciwgc2l6ZW9mIChVSU5UMzIpKSkgew0K PiAgICAgIHJldHVybiAqKFVJTlQzMiAqKUFkZHI7DQo+ICAgIH0NCj4gDQo+IEBAIC01MzE5LDcg KzUzMTksNyBAQCBWbVJlYWRNZW02NCAoDQo+ICAgIC8vDQo+ICAgIC8vIFJlYWQgZGlyZWN0IGlm IGFsaWduZWQNCj4gICAgLy8NCj4gLSAgaWYgKEFERFJFU1NfSVNfQUxJR05FRF8gKEFkZHIsIHNp emVvZiAoVUlOVDY0KSkpIHsNCj4gKyAgaWYgKEFERFJFU1NfSVNfQUxJR05FRCAoQWRkciwgc2l6 ZW9mIChVSU5UNjQpKSkgew0KPiAgICAgIHJldHVybiAqKFVJTlQ2NCAqKUFkZHI7DQo+ICAgIH0N Cj4gDQo+IEBAIC01Mzg4LDcgKzUzODgsNyBAQCBWbVJlYWRNZW1OICgNCj4gICAgLy8NCj4gICAg Ly8gUmVhZCBkaXJlY3QgaWYgYWxpZ25lZA0KPiAgICAvLw0KPiAtICBpZiAoQUREUkVTU19JU19B TElHTkVEXyAoQWRkciwgc2l6ZW9mIChVSU5UTikpKSB7DQo+ICsgIGlmIChBRERSRVNTX0lTX0FM SUdORUQgKEFkZHIsIHNpemVvZiAoVUlOVE4pKSkgew0KPiAgICAgIHJldHVybiAqKFVJTlROICop QWRkcjsNCj4gICAgfQ0KPiANCj4gLS0NCj4gMi4zOS4yDQoNCg==