From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1B871D5C0C8 for ; Fri, 8 Nov 2024 13:33:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9A92C6B0089; Fri, 8 Nov 2024 08:33:38 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 958536B0092; Fri, 8 Nov 2024 08:33:38 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 820A06B0096; Fri, 8 Nov 2024 08:33:38 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 601DA6B0089 for ; Fri, 8 Nov 2024 08:33:38 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 227F580CA4 for ; Fri, 8 Nov 2024 13:33:38 +0000 (UTC) X-FDA: 82763019360.16.61425D3 Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by imf08.hostedemail.com (Postfix) with ESMTP id 0053E160026 for ; Fri, 8 Nov 2024 13:33:09 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf08.hostedemail.com: domain of shiju.jose@huawei.com designates 185.176.79.56 as permitted sender) smtp.mailfrom=shiju.jose@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731072690; a=rsa-sha256; cv=none; b=2iZ6JwnqKZarotmt4KfQBrQJPaRyTmpYqye+IeYWADk8Y/Hd6kNIBz8crk5T7MW5GCXvA7 YcU2OiSNNdliihtYHiTpBXBQzxG67DZ8QlyTiy2ofOMLSs/YpyFfAoFwHpRLuVU/tJVDxO bPNDokLjT3chHHnE9B2zyCh+XKk+8Ms= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf08.hostedemail.com: domain of shiju.jose@huawei.com designates 185.176.79.56 as permitted sender) smtp.mailfrom=shiju.jose@huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1731072690; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=pXCOfm/W6euS+3r/R/Q3tTxLBLQ6YqPtuYZBA1S4dnU=; b=0t346Kc/txbUew1LYgf7FXq2zIISwoqQ35RPYLcMYjM1+qooAjYcWETrMs7YMCwJ0JmsbJ gHuYETuO/HZRFa+5ykD/ew241Yo59l+i6OIYfe0yezbBjcgHwatEkZ3yvsi3HsdEad9xzh aZ5Zp2P7O99Zbo90e2LZua55Q0BeF1k= Received: from mail.maildlp.com (unknown [172.18.186.231]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4XlKZK6qCDz6J70x; Fri, 8 Nov 2024 21:30:33 +0800 (CST) Received: from frapeml100007.china.huawei.com (unknown [7.182.85.133]) by mail.maildlp.com (Postfix) with ESMTPS id A999D1400CA; Fri, 8 Nov 2024 21:33:27 +0800 (CST) Received: from frapeml500007.china.huawei.com (7.182.85.172) by frapeml100007.china.huawei.com (7.182.85.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Fri, 8 Nov 2024 14:33:27 +0100 Received: from frapeml500007.china.huawei.com ([7.182.85.172]) by frapeml500007.china.huawei.com ([7.182.85.172]) with mapi id 15.01.2507.039; Fri, 8 Nov 2024 14:33:27 +0100 From: Shiju Jose To: Dave Jiang , "linux-edac@vger.kernel.org" , "linux-cxl@vger.kernel.org" , "linux-acpi@vger.kernel.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" CC: "bp@alien8.de" , "tony.luck@intel.com" , "rafael@kernel.org" , "lenb@kernel.org" , "mchehab@kernel.org" , "dan.j.williams@intel.com" , "dave@stgolabs.net" , Jonathan Cameron , "gregkh@linuxfoundation.org" , "sudeep.holla@arm.com" , "jassisinghbrar@gmail.com" , "alison.schofield@intel.com" , "vishal.l.verma@intel.com" , "ira.weiny@intel.com" , "david@redhat.com" , "Vilas.Sridharan@amd.com" , "leo.duran@amd.com" , "Yazen.Ghannam@amd.com" , "rientjes@google.com" , "jiaqiyan@google.com" , "Jon.Grimm@amd.com" , "dave.hansen@linux.intel.com" , "naoya.horiguchi@nec.com" , "james.morse@arm.com" , "jthoughton@google.com" , "somasundaram.a@hpe.com" , "erdemaktas@google.com" , "pgonda@google.com" , "duenwen@google.com" , "gthelen@google.com" , "wschwartz@amperecomputing.com" , "dferguson@amperecomputing.com" , "wbs@os.amperecomputing.com" , "nifan.cxl@gmail.com" , tanxiaofei , "Zengtao (B)" , Roberto Sassu , "kangkang.shen@futurewei.com" , wanghuiqiang , Linuxarm Subject: RE: [PATCH v15 04/15] cxl: Add Get Supported Features command for kernel usage Thread-Topic: [PATCH v15 04/15] cxl: Add Get Supported Features command for kernel usage Thread-Index: AQHbLD7y4BENPpsuq0isuuk0W32KJbKq36+AgAKMrTA= Date: Fri, 8 Nov 2024 13:33:26 +0000 Message-ID: References: <20241101091735.1465-1-shiju.jose@huawei.com> <20241101091735.1465-5-shiju.jose@huawei.com> <49228a3c-23b0-4aac-9c7f-e605045e3c8f@intel.com> In-Reply-To: <49228a3c-23b0-4aac-9c7f-e605045e3c8f@intel.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.48.151.69] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Rspamd-Queue-Id: 0053E160026 X-Stat-Signature: oad5af5xs8fd9n3wn71j188sk3uziksx X-Rspam-User: X-Rspamd-Server: rspam05 X-HE-Tag: 1731072789-225393 X-HE-Meta: U2FsdGVkX19N6igsZCYmWNwH7IX/tbH0es9yP43A+W7MPehyTCgWeGmcw4C77fRsatZrvdny+FnrS04Dvnb2WF9QqCVv7dsdlUd1mu4kNb3Z16XodrrEG+4twePr/LGjPPOxMI8FiiwCSmddm/O2gA/P25p00JT+LEZrr7ObUFtKoJ0f+XX7rTN9N87zDF9GrPW2ku4MOHC2iixOAZmI/CfB94NoTJ3NPLAVEQx+aZPKnSXV6lzEQwlQZVZ8JXOqdPLVmyxY8W+zV44hFyHI+VR7u8l84GXMrjk9xFNQB4dzUFCuSl6IpTG3W39omHhCrkQ/w8e9sxrBCfjX+0vl/fO/KkwOpT8uJQzFRfwMsFB7e/CIuB9jEYbYcC+wrT8SiLNs1FND5K65HpvNtIsbCYKJ54zL1EPa6Pm9zWvlEaF+9kmORhAXqKBZGkRttxGKrBKI209KtqYVdl7MFdqVBL5BwTjmm9S65l98sfHmwow+MNcE6wUNhLSN5VNzOZqVyysA5wuN5/Y07CuD/oug/u5l61dQL4sxqWBRW9IMJ+tYc5oJVdwKR68+1FYF/MmwlMO8+nE++trujBk7xvkQqdYxsT9kZ9EmQ7jIrxdJqUUZ5C6BKwQ1gzboT5B4KfeMmFRvbvE5RAUF4q33ZR9AAVBSnS3A5fBpCVrYFhH/tJxgvvCk02AzucoFuRUwKqgLYLOgEs9hP6zwWywQ5v/TTjhYrjqo9yKJyLu2AjEDR/j1TqDNe4NBYGaoQxWgkV7z2pYoOWXm912rSJkDRxbCzPGJmfL/l6J+vKAlzf8ltsp4hpwI0HNswB5S9ZC3qNnEinQnk+poHq8SJF8AKkFOskvL4GOPqV0onCzxXOBmfaKRw8braME5PbNrJMv8Ed9Hq2wWRF+wNpwSHKEz8DkYK5Fa5JN0OIDyoIlz4ceTinnIFBm32IfxyD2eVD1jylUrzfmYbR4zt6mY/mf6ZFq Xqr/cqOK byU01j7k0yIjpdpdn7macwJisl3dtLRtTVDufY9dMkySpl0zIBx79w8GjUF9dxrxHuQ6oo2u/pi7/sYs4TjK8Fvx7RfckAULawkg8NW81WD9cW93MFRIfCAorJ4rcRCXoU8teQk/MECJUjh6d+wGgbgKrHfDG5I/OEfBtCl1kyboOunIHWfnQSIUlKp/PaEBtFKVvjfFq+8BtI1dfzYhnj1D2yj1nSRKcvB65LytCgBFmECU47Of2138jwAQVa0R2hp7smiYb5w3qPHm4ohNnVvgSwDlwj0Sy1xIrmGaqWEipdBZRGxAZMZldEeSLTGLSgCW2GnBDOoEcNBx70hOYx4E4HVyeRyn2PXQcw19/s9ptgmpwhJ605kffhZbgfvCBGEpaLkiBR6UnY+iZMn2yUGD21Fi8kOy7G6sVWloovsRhltE+nJ8Vgvx1y29yqL3b8G0IiC7WCj9udU4Hm0iLGCfZFieJq2MT4DNqpR27N4gsuEoCP++nPOsp/0izCD8tJq1HMwBlm/wm99NC7ekBFNuHKUutI51PySEmMQXSeUYgoE8+Gi7TdGnK61zkC2PyiSE7whlFb85PwjgC6eEWS5nYNKhmfvrF+T1qemSlMqpmA9/8R59leYDSmu48TQ2x1hzxUzWeqEQETi/oh5VPuZMoTMfSIUF0BjrIzDdtI5aRiP6gfzSnj2z9TBIMJryJ3Zr90kxzzipriPAi8ooezWqFz8zmbfsdtieJO0LmPaJ5fs6fNUiSjm/Yf7zSVeAuultg501scL1Dg631ZCra8MUDWPhA5cXoDScDkwk0Zm0OGD1LZZfp8jDH8r2eYrxJyVgoVV+3YmwM64ke/ygdw4a8rR/2vLxP20nUt0/5kz0ikG1nGEyigtWQD3QfUILg+D4fIvGq6WMi66VsjMQ1qlF3ANnCDiNLzD281fU+dzLwJyn7kSQEDSIOlsCDaYWyjGlFtbeQdmT0GKCkLke0qoniKLoi mT4PFhcQ X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: DQo+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj5Gcm9tOiBEYXZlIEppYW5nIDxkYXZlLmpp YW5nQGludGVsLmNvbT4NCj5TZW50OiAwNiBOb3ZlbWJlciAyMDI0IDIzOjM1DQo+VG86IFNoaWp1 IEpvc2UgPHNoaWp1Lmpvc2VAaHVhd2VpLmNvbT47IGxpbnV4LWVkYWNAdmdlci5rZXJuZWwub3Jn OyBsaW51eC0NCj5jeGxAdmdlci5rZXJuZWwub3JnOyBsaW51eC1hY3BpQHZnZXIua2VybmVsLm9y ZzsgbGludXgtbW1Aa3ZhY2sub3JnOyBsaW51eC0NCj5rZXJuZWxAdmdlci5rZXJuZWwub3JnDQo+ Q2M6IGJwQGFsaWVuOC5kZTsgdG9ueS5sdWNrQGludGVsLmNvbTsgcmFmYWVsQGtlcm5lbC5vcmc7 IGxlbmJAa2VybmVsLm9yZzsNCj5tY2hlaGFiQGtlcm5lbC5vcmc7IGRhbi5qLndpbGxpYW1zQGlu dGVsLmNvbTsgZGF2ZUBzdGdvbGFicy5uZXQ7IEpvbmF0aGFuDQo+Q2FtZXJvbiA8am9uYXRoYW4u Y2FtZXJvbkBodWF3ZWkuY29tPjsgZ3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc7DQo+c3VkZWVw LmhvbGxhQGFybS5jb207IGphc3Npc2luZ2hicmFyQGdtYWlsLmNvbTsgYWxpc29uLnNjaG9maWVs ZEBpbnRlbC5jb207DQo+dmlzaGFsLmwudmVybWFAaW50ZWwuY29tOyBpcmEud2VpbnlAaW50ZWwu Y29tOyBkYXZpZEByZWRoYXQuY29tOw0KPlZpbGFzLlNyaWRoYXJhbkBhbWQuY29tOyBsZW8uZHVy YW5AYW1kLmNvbTsgWWF6ZW4uR2hhbm5hbUBhbWQuY29tOw0KPnJpZW50amVzQGdvb2dsZS5jb207 IGppYXFpeWFuQGdvb2dsZS5jb207IEpvbi5HcmltbUBhbWQuY29tOw0KPmRhdmUuaGFuc2VuQGxp bnV4LmludGVsLmNvbTsgbmFveWEuaG9yaWd1Y2hpQG5lYy5jb207DQo+amFtZXMubW9yc2VAYXJt LmNvbTsganRob3VnaHRvbkBnb29nbGUuY29tOyBzb21hc3VuZGFyYW0uYUBocGUuY29tOw0KPmVy ZGVtYWt0YXNAZ29vZ2xlLmNvbTsgcGdvbmRhQGdvb2dsZS5jb207IGR1ZW53ZW5AZ29vZ2xlLmNv bTsNCj5ndGhlbGVuQGdvb2dsZS5jb207IHdzY2h3YXJ0ekBhbXBlcmVjb21wdXRpbmcuY29tOw0K PmRmZXJndXNvbkBhbXBlcmVjb21wdXRpbmcuY29tOyB3YnNAb3MuYW1wZXJlY29tcHV0aW5nLmNv bTsNCj5uaWZhbi5jeGxAZ21haWwuY29tOyB0YW54aWFvZmVpIDx0YW54aWFvZmVpQGh1YXdlaS5j b20+OyBaZW5ndGFvIChCKQ0KPjxwcmltZS56ZW5nQGhpc2lsaWNvbi5jb20+OyBSb2JlcnRvIFNh c3N1IDxyb2JlcnRvLnNhc3N1QGh1YXdlaS5jb20+Ow0KPmthbmdrYW5nLnNoZW5AZnV0dXJld2Vp LmNvbTsgd2FuZ2h1aXFpYW5nIDx3YW5naHVpcWlhbmdAaHVhd2VpLmNvbT47DQo+TGludXhhcm0g PGxpbnV4YXJtQGh1YXdlaS5jb20+DQo+U3ViamVjdDogUmU6IFtQQVRDSCB2MTUgMDQvMTVdIGN4 bDogQWRkIEdldCBTdXBwb3J0ZWQgRmVhdHVyZXMgY29tbWFuZCBmb3INCj5rZXJuZWwgdXNhZ2UN Cj4NCj4NCj4NCj5PbiAxMS8xLzI0IDI6MTcgQU0sIHNoaWp1Lmpvc2VAaHVhd2VpLmNvbSB3cm90 ZToNCj4+IEZyb206IERhdmUgSmlhbmcgPGRhdmUuamlhbmdAaW50ZWwuY29tPg0KPj4NCj4+IENY TCBzcGVjIHIzLjEgOC4yLjkuNi4xIEdldCBTdXBwb3J0ZWQgRmVhdHVyZXMgKE9wY29kZSAwNTAw aCkgVGhlDQo+PiBjb21tYW5kIHJldHJpZXZlIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBkZXZpY2Ut c3BlY2lmaWMgZmVhdHVyZXMNCj4+IChpZGVudGlmaWVkIGJ5IFVVSUQpIGFuZCBnZW5lcmFsIGlu Zm9ybWF0aW9uIGFib3V0IGVhY2ggRmVhdHVyZS4NCj4+DQo+PiBUaGUgZHJpdmVyIHdpbGwgcmV0 cmlldmUgdGhlIGZlYXR1cmUgZW50cmllcyBpbiBvcmRlciB0byBtYWtlIGNoZWNrcw0KPj4gYW5k IHByb3ZpZGUgaW5mb3JtYXRpb24gZm9yIHRoZSBHZXQgRmVhdHVyZSBhbmQgU2V0IEZlYXR1cmUg Y29tbWFuZC4NCj4+IE9uZSBvZiB0aGUgbWFpbiBwaWVjZSBvZiBpbmZvcm1hdGlvbiByZXRyaWV2 ZWQgYXJlIHRoZSBlZmZlY3RzIGEgU2V0DQo+PiBGZWF0dXJlIGNvbW1hbmQgd291bGQgaGF2ZSBm b3IgYSBwYXJ0aWN1bGFyIGZlYXR1cmUuDQo+Pg0KPj4gUmV2aWV3ZWQtYnk6IEpvbmF0aGFuIENh bWVyb24gPEpvbmF0aGFuLkNhbWVyb25AaHVhd2VpLmNvbT4NCj4+IFNpZ25lZC1vZmYtYnk6IERh dmUgSmlhbmcgPGRhdmUuamlhbmdAaW50ZWwuY29tPg0KPj4gQ28tZGV2ZWxvcGVkLWJ5OiBTaGlq dSBKb3NlIDxzaGlqdS5qb3NlQGh1YXdlaS5jb20+DQo+PiBTaWduZWQtb2ZmLWJ5OiBTaGlqdSBK b3NlIDxzaGlqdS5qb3NlQGh1YXdlaS5jb20+DQo+DQo+Rm91bmQgY291cGxlIGVuZGllbiBjb252 ZXJzaW9uIGNoYW5nZXMgYmVsb3c6DQpIaSBEYXZlLA0KDQpUaGFua3MgZm9yIHBvaW50aW5nIHRo ZXNlIGVycm9ycy4gRml4ZWQgbm93Lg0KDQpUaGFua3MsDQpTaGlqdQ0KPg0KPj4gLS0tDQo+PiAg ZHJpdmVycy9jeGwvY29yZS9tYm94LmMgICAgICB8IDE3NSArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKw0KPj4gIGRyaXZlcnMvY3hsL2N4bG1lbS5oICAgICAgICAgfCAgNDcgKysr KysrKysrKw0KPj4gIGRyaXZlcnMvY3hsL3BjaS5jICAgICAgICAgICAgfCAgIDQgKw0KPj4gIGlu Y2x1ZGUvY3hsL21haWxib3guaCAgICAgICAgfCAgIDQgKw0KPj4gIGluY2x1ZGUvdWFwaS9saW51 eC9jeGxfbWVtLmggfCAgIDEgKw0KPj4gIDUgZmlsZXMgY2hhbmdlZCwgMjMxIGluc2VydGlvbnMo KykNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jeGwvY29yZS9tYm94LmMgYi9kcml2ZXJz L2N4bC9jb3JlL21ib3guYyBpbmRleA0KPj4gNTE3NTEzOGM0ZmI3Li41MDQ1OTYwZTNiZmUgMTAw NjQ0DQo+PiAtLS0gYS9kcml2ZXJzL2N4bC9jb3JlL21ib3guYw0KPj4gKysrIGIvZHJpdmVycy9j eGwvY29yZS9tYm94LmMNCj4+IEBAIC02Nyw2ICs2Nyw3IEBAIHN0YXRpYyBzdHJ1Y3QgY3hsX21l bV9jb21tYW5kDQo+Y3hsX21lbV9jb21tYW5kc1tDWExfTUVNX0NPTU1BTkRfSURfTUFYXSA9IHsN Cj4+ICAJQ1hMX0NNRChTRVRfU0hVVERPV05fU1RBVEUsIDB4MSwgMCwgMCksDQo+PiAgCUNYTF9D TUQoR0VUX1NDQU5fTUVESUFfQ0FQUywgMHgxMCwgMHg0LCAwKSwNCj4+ICAJQ1hMX0NNRChHRVRf VElNRVNUQU1QLCAwLCAweDgsIDApLA0KPj4gKwlDWExfQ01EKEdFVF9TVVBQT1JURURfRkVBVFVS RVMsIDB4OCwgQ1hMX1ZBUklBQkxFX1BBWUxPQUQsDQo+MCksDQo+PiAgfTsNCj4+DQo+PiAgLyoN Cj4+IEBAIC03OTUsNiArNzk2LDE4MCBAQCBzdGF0aWMgY29uc3QgdXVpZF90IGxvZ191dWlkW10g PSB7DQo+PiAgCVtWRU5ET1JfREVCVUdfVVVJRF0gPSBERUZJTkVfQ1hMX1ZFTkRPUl9ERUJVR19V VUlELCAgfTsNCj4+DQo+PiArc3RhdGljIHZvaWQgY3hsX2ZyZWVfZmVhdHVyZXModm9pZCAqZmVh dHVyZXMpIHsNCj4+ICsJa3ZmcmVlKGZlYXR1cmVzKTsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGlj IGludCBjeGxfZ2V0X3N1cHBvcnRlZF9mZWF0dXJlc19jb3VudChzdHJ1Y3QgY3hsX2Rldl9zdGF0 ZQ0KPj4gKypjeGxkcykgew0KPj4gKwlzdHJ1Y3QgY3hsX21haWxib3ggKmN4bF9tYm94ID0gJmN4 bGRzLT5jeGxfbWJveDsNCj4+ICsJc3RydWN0IGN4bF9tYm94X2dldF9zdXBfZmVhdHNfb3V0IG1i b3hfb3V0Ow0KPj4gKwlzdHJ1Y3QgY3hsX21ib3hfZ2V0X3N1cF9mZWF0c19pbiBtYm94X2luOw0K Pj4gKwlzdHJ1Y3QgY3hsX21ib3hfY21kIG1ib3hfY21kOw0KPj4gKwlpbnQgcmM7DQo+PiArDQo+ PiArCW1lbXNldCgmbWJveF9pbiwgMCwgc2l6ZW9mKG1ib3hfaW4pKTsNCj4+ICsJbWJveF9pbi5j b3VudCA9IHNpemVvZihtYm94X291dCk7DQo+DQo+bWJveF9pbi5jb3VudCA9IGNwdV90b19sZTMy KHNpemVvZihtYm94X291dCkpOw0KPg0KPj4gKwltZW1zZXQoJm1ib3hfb3V0LCAwLCBzaXplb2Yo bWJveF9vdXQpKTsNCj4+ICsJbWJveF9jbWQgPSAoc3RydWN0IGN4bF9tYm94X2NtZCkgew0KPj4g KwkJLm9wY29kZSA9IENYTF9NQk9YX09QX0dFVF9TVVBQT1JURURfRkVBVFVSRVMsDQo+PiArCQku c2l6ZV9pbiA9IHNpemVvZihtYm94X2luKSwNCj4+ICsJCS5wYXlsb2FkX2luID0gJm1ib3hfaW4s DQo+PiArCQkuc2l6ZV9vdXQgPSBzaXplb2YobWJveF9vdXQpLA0KPj4gKwkJLnBheWxvYWRfb3V0 ID0gJm1ib3hfb3V0LA0KPj4gKwkJLm1pbl9vdXQgPSBzaXplb2YobWJveF9vdXQpLA0KPj4gKwl9 Ow0KPj4gKwlyYyA9IGN4bF9pbnRlcm5hbF9zZW5kX2NtZChjeGxfbWJveCwgJm1ib3hfY21kKTsN Cj4+ICsJaWYgKHJjIDwgMCkNCj4+ICsJCXJldHVybiByYzsNCj4+ICsNCj4+ICsJY3hsX21ib3gt Pm51bV9mZWF0dXJlcyA9IGxlMTZfdG9fY3B1KG1ib3hfb3V0LnN1cHBvcnRlZF9mZWF0cyk7DQo+ PiArCWlmICghY3hsX21ib3gtPm51bV9mZWF0dXJlcykNCj4+ICsJCXJldHVybiAtRU5PRU5UOw0K Pj4gKw0KPj4gKwlyZXR1cm4gMDsNCj4+ICt9DQo+PiArDQo+PiAraW50IGN4bF9nZXRfc3VwcG9y dGVkX2ZlYXR1cmVzKHN0cnVjdCBjeGxfbWVtZGV2X3N0YXRlICptZHMpIHsNCj4+ICsJaW50IHJl bWFpbl9mZWF0cywgbWF4X3NpemUsIG1heF9mZWF0cywgc3RhcnQsIHJjOw0KPj4gKwlzdHJ1Y3Qg Y3hsX2Rldl9zdGF0ZSAqY3hsZHMgPSAmbWRzLT5jeGxkczsNCj4+ICsJc3RydWN0IGN4bF9tYWls Ym94ICpjeGxfbWJveCA9ICZjeGxkcy0+Y3hsX21ib3g7DQo+PiArCWludCBmZWF0X3NpemUgPSBz aXplb2Yoc3RydWN0IGN4bF9mZWF0X2VudHJ5KTsNCj4+ICsJc3RydWN0IGN4bF9tYm94X2dldF9z dXBfZmVhdHNfb3V0ICptYm94X291dDsNCj4+ICsJc3RydWN0IGN4bF9tYm94X2dldF9zdXBfZmVh dHNfaW4gbWJveF9pbjsNCj4+ICsJaW50IGhkcl9zaXplID0gc2l6ZW9mKCptYm94X291dCk7DQo+ PiArCXN0cnVjdCBjeGxfbWJveF9jbWQgbWJveF9jbWQ7DQo+PiArCXN0cnVjdCBjeGxfbWVtX2Nv bW1hbmQgKmNtZDsNCj4+ICsJdm9pZCAqcHRyOw0KPj4gKw0KPj4gKwkvKiBHZXQgc3VwcG9ydGVk IGZlYXR1cmVzIGlzIG9wdGlvbmFsLCBuZWVkIHRvIGNoZWNrICovDQo+PiArCWNtZCA9DQo+Y3hs X21lbV9maW5kX2NvbW1hbmQoQ1hMX01CT1hfT1BfR0VUX1NVUFBPUlRFRF9GRUFUVVJFUyk7DQo+ PiArCWlmICghY21kKQ0KPj4gKwkJcmV0dXJuIC1FT1BOT1RTVVBQOw0KPj4gKwlpZiAoIXRlc3Rf Yml0KGNtZC0+aW5mby5pZCwgbWRzLT5lbmFibGVkX2NtZHMpKQ0KPj4gKwkJcmV0dXJuIC1FT1BO T1RTVVBQOw0KPj4gKw0KPj4gKwlyYyA9IGN4bF9nZXRfc3VwcG9ydGVkX2ZlYXR1cmVzX2NvdW50 KGN4bGRzKTsNCj4+ICsJaWYgKHJjKQ0KPj4gKwkJcmV0dXJuIHJjOw0KPj4gKw0KPj4gKwlzdHJ1 Y3QgY3hsX2ZlYXRfZW50cnkgKmVudHJpZXMgX19mcmVlKGt2ZnJlZSkgPQ0KPj4gKwkJa3ZtYWxs b2MoY3hsX21ib3gtPm51bV9mZWF0dXJlcyAqIGZlYXRfc2l6ZSwgR0ZQX0tFUk5FTCk7DQo+PiAr DQo+PiArCWlmICghZW50cmllcykNCj4+ICsJCXJldHVybiAtRU5PTUVNOw0KPj4gKw0KPj4gKwlj eGxfbWJveC0+ZW50cmllcyA9IG5vX2ZyZWVfcHRyKGVudHJpZXMpOw0KPj4gKwlyYyA9IGRldm1f YWRkX2FjdGlvbl9vcl9yZXNldChjeGxfbWJveC0+aG9zdCwgY3hsX2ZyZWVfZmVhdHVyZXMsDQo+ PiArCQkJCSAgICAgIGN4bF9tYm94LT5lbnRyaWVzKTsNCj4+ICsJaWYgKHJjKQ0KPj4gKwkJcmV0 dXJuIHJjOw0KPj4gKw0KPj4gKwltYXhfc2l6ZSA9IGN4bF9tYm94LT5wYXlsb2FkX3NpemUgLSBo ZHJfc2l6ZTsNCj4+ICsJLyogbWF4IGZlYXQgZW50cmllcyB0aGF0IGNhbiBmaXQgaW4gbWFpbGJv eCBtYXggcGF5bG9hZCBzaXplICovDQo+PiArCW1heF9mZWF0cyA9IG1heF9zaXplIC8gZmVhdF9z aXplOw0KPj4gKwlwdHIgPSAmY3hsX21ib3gtPmVudHJpZXNbMF07DQo+PiArDQo+PiArCW1ib3hf b3V0ID0ga3ZtYWxsb2MoY3hsX21ib3gtPnBheWxvYWRfc2l6ZSwgR0ZQX0tFUk5FTCk7DQo+PiAr CWlmICghbWJveF9vdXQpDQo+PiArCQlyZXR1cm4gLUVOT01FTTsNCj4+ICsNCj4+ICsJc3RhcnQg PSAwOw0KPj4gKwlyZW1haW5fZmVhdHMgPSBjeGxfbWJveC0+bnVtX2ZlYXR1cmVzOw0KPj4gKwlk byB7DQo+PiArCQlpbnQgcmV0cmlldmVkLCBhbGxvY19zaXplLCBjb3B5X2ZlYXRzOw0KPiAgKwkJ aW50IG51bV9lbnRyaWVzOw0KPj4gKw0KPj4gKwkJaWYgKHJlbWFpbl9mZWF0cyA+IG1heF9mZWF0 cykgew0KPj4gKwkJCWFsbG9jX3NpemUgPSBzaXplb2YoKm1ib3hfb3V0KSArIG1heF9mZWF0cyAq IGZlYXRfc2l6ZTsNCj4+ICsJCQlyZW1haW5fZmVhdHMgPSByZW1haW5fZmVhdHMgLSBtYXhfZmVh dHM7DQo+PiArCQkJY29weV9mZWF0cyA9IG1heF9mZWF0czsNCj4+ICsJCX0gZWxzZSB7DQo+PiAr CQkJYWxsb2Nfc2l6ZSA9IHNpemVvZigqbWJveF9vdXQpICsgcmVtYWluX2ZlYXRzICoNCj5mZWF0 X3NpemU7DQo+PiArCQkJY29weV9mZWF0cyA9IHJlbWFpbl9mZWF0czsNCj4+ICsJCQlyZW1haW5f ZmVhdHMgPSAwOw0KPj4gKwkJfQ0KPj4gKw0KPj4gKwkJbWVtc2V0KCZtYm94X2luLCAwLCBzaXpl b2YobWJveF9pbikpOw0KPj4gKwkJbWJveF9pbi5jb3VudCA9IGFsbG9jX3NpemU7DQo+PiArCQlt Ym94X2luLnN0YXJ0X2lkeCA9IHN0YXJ0Ow0KPm1ib3hfaW4uY291bnQgPSBjcHVfdG9fbGUzMihh bGxvY19zaXplKTsgbWJveF9pbi5zdGFydF9pZHggPQ0KPmNwdV90b19sZTE2KHN0YXJ0KTsNCj4N Cj4NCj4+ICsJCW1lbXNldChtYm94X291dCwgMCwgYWxsb2Nfc2l6ZSk7DQo+PiArCQltYm94X2Nt ZCA9IChzdHJ1Y3QgY3hsX21ib3hfY21kKSB7DQo+PiArCQkJLm9wY29kZSA9IENYTF9NQk9YX09Q X0dFVF9TVVBQT1JURURfRkVBVFVSRVMsDQo+PiArCQkJLnNpemVfaW4gPSBzaXplb2YobWJveF9p biksDQo+PiArCQkJLnBheWxvYWRfaW4gPSAmbWJveF9pbiwNCj4+ICsJCQkuc2l6ZV9vdXQgPSBh bGxvY19zaXplLA0KPj4gKwkJCS5wYXlsb2FkX291dCA9IG1ib3hfb3V0LA0KPj4gKwkJCS5taW5f b3V0ID0gaGRyX3NpemUsDQo+PiArCQl9Ow0KPj4gKwkJcmMgPSBjeGxfaW50ZXJuYWxfc2VuZF9j bWQoY3hsX21ib3gsICZtYm94X2NtZCk7DQo+PiArCQlpZiAocmMgPCAwKQ0KPj4gKwkJCWdvdG8g ZXJyOw0KPj4gKwkJaWYgKG1ib3hfY21kLnNpemVfb3V0IDw9IGhkcl9zaXplKSB7DQo+PiArCQkJ cmMgPSAtRU5YSU87DQo+PiArCQkJZ290byBlcnI7DQo+PiArCQl9DQo+PiArDQo+PiArCQkvKg0K Pj4gKwkJICogTWFrZSBzdXJlIHJldHJpZXZlZCBvdXQgYnVmZmVyIGlzIG11bHRpcGxlIG9mIGZl YXR1cmUNCj4+ICsJCSAqIGVudHJpZXMuDQo+PiArCQkgKi8NCj4+ICsJCXJldHJpZXZlZCA9IG1i b3hfY21kLnNpemVfb3V0IC0gaGRyX3NpemU7DQo+PiArCQlpZiAocmV0cmlldmVkICUgZmVhdF9z aXplKSB7DQo+PiArCQkJcmMgPSAtRU5YSU87DQo+PiArCQkJZ290byBlcnI7DQo+PiArCQl9DQo+ PiArDQo+DQo+ICArCQludW1fZW50cmllcyA9IGxlMTZfdG9fY3B1KG1ib3hfb3V0LT5udW1fZW50 cmllcyk7DQo+PiArCQkvKg0KPj4gKwkJICogSWYgdGhlIHJlcG9ydGVkIG91dHB1dCBlbnRyaWVz ICogZGVmaW5lZCBlbnRyeSBzaXplICE9DQo+PiArCQkgKiByZXRyaWV2ZWQgb3V0cHV0IGJ5dGVz LCB0aGVuIHRoZSBvdXRwdXQgcGFja2FnZSBpcyBpbmNvcnJlY3QuDQo+PiArCQkgKi8NCj4+ICsJ CWlmIChtYm94X291dC0+bnVtX2VudHJpZXMgKiBmZWF0X3NpemUgIT0gcmV0cmlldmVkKSB7DQo+ aWYgKG51bV9lbnRyaWVzICogZmVhdF9zaXplICE9IHJldHJpZXZlZCkgew0KPj4gKwkJCXJjID0g LUVOWElPOw0KPj4gKwkJCWdvdG8gZXJyOw0KPj4gKwkJfQ0KPj4gKw0KPj4gKwkJbWVtY3B5KHB0 ciwgbWJveF9vdXQtPmVudHMsIHJldHJpZXZlZCk7DQo+PiArCQlwdHIgKz0gcmV0cmlldmVkOw0K Pj4gKwkJLyoNCj4+ICsJCSAqIElmIHRoZSBudW1iZXIgb2Ygb3V0cHV0IGVudHJpZXMgaXMgbGVz cyB0aGFuIGV4cGVjdGVkLCBhZGQgdGhlDQo+PiArCQkgKiByZW1haW5pbmcgZW50cmllcyB0byB0 aGUgbmV4dCBiYXRjaC4NCj4+ICsJCSAqLw0KPj4gKwkJcmVtYWluX2ZlYXRzICs9IGNvcHlfZmVh dHMgLSBtYm94X291dC0+bnVtX2VudHJpZXM7DQo+PiArCQlzdGFydCArPSBtYm94X291dC0+bnVt X2VudHJpZXM7DQo+cmVtYWluX2ZlYXQgKz0gY29weV9mZWF0cyAtIG51bV9lbnRyaWVzOyBzdGFy dCArPSBudW1fZW50cmllczsNCj4NCj4+ICsJfSB3aGlsZSAocmVtYWluX2ZlYXRzKTsNCj4+ICsN Cj4+ICsJa2ZyZWUobWJveF9vdXQpOw0KPj4gKwlyZXR1cm4gMDsNCj4+ICsNCj4+ICtlcnI6DQo+ PiArCWtmcmVlKG1ib3hfb3V0KTsNCj4+ICsJY3hsX21ib3gtPm51bV9mZWF0dXJlcyA9IDA7DQo+ PiArCXJldHVybiByYzsNCj4+ICt9DQo+PiArRVhQT1JUX1NZTUJPTF9OU19HUEwoY3hsX2dldF9z dXBwb3J0ZWRfZmVhdHVyZXMsIENYTCk7DQo+PiArDQo+PiAraW50IGN4bF9nZXRfc3VwcG9ydGVk X2ZlYXR1cmVfZW50cnkoc3RydWN0IGN4bF9tZW1kZXZfc3RhdGUgKm1kcywgY29uc3QNCj51dWlk X3QgKmZlYXRfdXVpZCwNCj4+ICsJCQkJICAgIHN0cnVjdCBjeGxfZmVhdF9lbnRyeSAqZmVhdF9l bnRyeV9vdXQpIHsNCj4+ICsJc3RydWN0IGN4bF9kZXZfc3RhdGUgKmN4bGRzID0gJm1kcy0+Y3hs ZHM7DQo+PiArCXN0cnVjdCBjeGxfZmVhdF9lbnRyeSAqZmVhdF9lbnRyeTsNCj4+ICsJaW50IGNv dW50Ow0KPj4gKw0KPj4gKwkvKiBDaGVjayBDWEwgZGV2IHN1cHBvcnRzIHRoZSBmZWF0dXJlICov DQo+PiArCWZlYXRfZW50cnkgPSAmY3hsZHMtPmN4bF9tYm94LmVudHJpZXNbMF07DQo+PiArCWZv ciAoY291bnQgPSAwOyBjb3VudCA8IGN4bGRzLT5jeGxfbWJveC5udW1fZmVhdHVyZXM7IGNvdW50 KyssDQo+ZmVhdF9lbnRyeSsrKSB7DQo+PiArCQlpZiAodXVpZF9lcXVhbCgmZmVhdF9lbnRyeS0+ dXVpZCwgZmVhdF91dWlkKSkgew0KPj4gKwkJCW1lbWNweShmZWF0X2VudHJ5X291dCwgZmVhdF9l bnRyeSwNCj5zaXplb2YoKmZlYXRfZW50cnlfb3V0KSk7DQo+PiArCQkJcmV0dXJuIDA7DQo+PiAr CQl9DQo+PiArCX0NCj4+ICsNCj4+ICsJcmV0dXJuIC1FT1BOT1RTVVBQOw0KPj4gK30NCj4+ICtF WFBPUlRfU1lNQk9MX05TX0dQTChjeGxfZ2V0X3N1cHBvcnRlZF9mZWF0dXJlX2VudHJ5LCBDWEwp Ow0KPj4gKw0KPj4gIC8qKg0KPj4gICAqIGN4bF9lbnVtZXJhdGVfY21kcygpIC0gRW51bWVyYXRl IGNvbW1hbmRzIGZvciBhIGRldmljZS4NCj4+ICAgKiBAbWRzOiBUaGUgZHJpdmVyIGRhdGEgZm9y IHRoZSBvcGVyYXRpb24gZGlmZiAtLWdpdA0KPj4gYS9kcml2ZXJzL2N4bC9jeGxtZW0uaCBiL2Ry aXZlcnMvY3hsL2N4bG1lbS5oIGluZGV4DQo+PiAyYTI1ZDE5NTdkZGIuLmY4OGIxMDE4ODYzMiAx MDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvY3hsL2N4bG1lbS5oDQo+PiArKysgYi9kcml2ZXJzL2N4 bC9jeGxtZW0uaA0KPj4gQEAgLTUzMCw2ICs1MzAsNyBAQCBlbnVtIGN4bF9vcGNvZGUgew0KPj4g IAlDWExfTUJPWF9PUF9HRVRfTE9HX0NBUFMJPSAweDA0MDIsDQo+PiAgCUNYTF9NQk9YX09QX0NM RUFSX0xPRyAgICAgICAgICAgPSAweDA0MDMsDQo+PiAgCUNYTF9NQk9YX09QX0dFVF9TVVBfTE9H X1NVQkxJU1QgPSAweDA0MDUsDQo+PiArCUNYTF9NQk9YX09QX0dFVF9TVVBQT1JURURfRkVBVFVS RVMJPSAweDA1MDAsDQo+PiAgCUNYTF9NQk9YX09QX0lERU5USUZZCQk9IDB4NDAwMCwNCj4+ICAJ Q1hMX01CT1hfT1BfR0VUX1BBUlRJVElPTl9JTkZPCT0gMHg0MTAwLA0KPj4gIAlDWExfTUJPWF9P UF9TRVRfUEFSVElUSU9OX0lORk8JPSAweDQxMDEsDQo+PiBAQCAtODEzLDYgKzgxNCw0OCBAQCBl bnVtIHsNCj4+ICAJQ1hMX1BNRU1fU0VDX1BBU1NfVVNFUiwNCj4+ICB9Ow0KPj4NCj4+ICsvKiBH ZXQgU3VwcG9ydGVkIEZlYXR1cmVzICgweDUwMGgpIENYTCByMy4xIDguMi45LjYuMSAqLyBzdHJ1 Y3QNCj4+ICtjeGxfbWJveF9nZXRfc3VwX2ZlYXRzX2luIHsNCj4+ICsJX19sZTMyIGNvdW50Ow0K Pj4gKwlfX2xlMTYgc3RhcnRfaWR4Ow0KPj4gKwl1OCByZXNlcnZlZFsyXTsNCj4+ICt9IF9fcGFj a2VkOw0KPj4gKw0KPj4gKy8qIFN1cHBvcnRlZCBGZWF0dXJlIEVudHJ5IDogUGF5bG9hZCBvdXQg YXR0cmlidXRlIGZsYWdzICovDQo+PiArI2RlZmluZSBDWExfRkVBVF9FTlRSWV9GTEFHX0NIQU5H QUJMRQlCSVQoMCkNCj4+ICsjZGVmaW5lIENYTF9GRUFUX0VOVFJZX0ZMQUdfREVFUEVTVF9SRVNF VF9QRVJTSVNURU5DRV9NQVNLDQo+CUdFTk1BU0soMywgMSkNCj4+ICsjZGVmaW5lIENYTF9GRUFU X0VOVFJZX0ZMQUdfUEVSU0lTVF9BQ1JPU1NfRklSTVdBUkVfVVBEQVRFDQo+CUJJVCg0KQ0KPj4g KyNkZWZpbmUgQ1hMX0ZFQVRfRU5UUllfRkxBR19TVVBQT1JUX0RFRkFVTFRfU0VMRUNUSU9OCUJJ VCg1KQ0KPj4gKyNkZWZpbmUgQ1hMX0ZFQVRfRU5UUllfRkxBR19TVVBQT1JUX1NBVkVEX1NFTEVD VElPTglCSVQoNikNCj4+ICsNCj4+ICtlbnVtIGN4bF9mZWF0X2F0dHJfdmFsdWVfcGVyc2lzdGVu Y2Ugew0KPj4gKwlDWExfRkVBVF9BVFRSX1ZBTFVFX1BFUlNJU1RFTkNFX05PTkUsDQo+PiArCUNY TF9GRUFUX0FUVFJfVkFMVUVfUEVSU0lTVEVOQ0VfQ1hMX1JFU0VULA0KPj4gKwlDWExfRkVBVF9B VFRSX1ZBTFVFX1BFUlNJU1RFTkNFX0hPVF9SRVNFVCwNCj4+ICsJQ1hMX0ZFQVRfQVRUUl9WQUxV RV9QRVJTSVNURU5DRV9XQVJNX1JFU0VULA0KPj4gKwlDWExfRkVBVF9BVFRSX1ZBTFVFX1BFUlNJ U1RFTkNFX0NPTERfUkVTRVQsDQo+PiArCUNYTF9GRUFUX0FUVFJfVkFMVUVfUEVSU0lTVEVOQ0Vf TUFYDQo+PiArfTsNCj4+ICsNCj4+ICtzdHJ1Y3QgY3hsX2ZlYXRfZW50cnkgew0KPj4gKwl1dWlk X3QgdXVpZDsNCj4+ICsJX19sZTE2IGlkOw0KPj4gKwlfX2xlMTYgZ2V0X2ZlYXRfc2l6ZTsNCj4+ ICsJX19sZTE2IHNldF9mZWF0X3NpemU7DQo+PiArCV9fbGUzMiBhdHRyX2ZsYWdzOw0KPj4gKwl1 OCBnZXRfZmVhdF92ZXI7DQo+PiArCXU4IHNldF9mZWF0X3ZlcjsNCj4+ICsJX19sZTE2IHNldF9l ZmZlY3RzOw0KPj4gKwl1OCByZXNlcnZlZFsxOF07DQo+PiArfSBfX3BhY2tlZDsNCj4+ICsNCj4+ ICtzdHJ1Y3QgY3hsX21ib3hfZ2V0X3N1cF9mZWF0c19vdXQgew0KPj4gKwlfX2xlMTYgbnVtX2Vu dHJpZXM7DQo+PiArCV9fbGUxNiBzdXBwb3J0ZWRfZmVhdHM7DQo+PiArCXU4IHJlc2VydmVkWzRd Ow0KPj4gKwlzdHJ1Y3QgY3hsX2ZlYXRfZW50cnkgZW50c1tdIF9fY291bnRlZF9ieV9sZShzdXBw b3J0ZWRfZmVhdHMpOyB9DQo+PiArX19wYWNrZWQ7DQo+PiArDQo+PiAgaW50IGN4bF9pbnRlcm5h bF9zZW5kX2NtZChzdHJ1Y3QgY3hsX21haWxib3ggKmN4bF9tYm94LA0KPj4gIAkJCSAgc3RydWN0 IGN4bF9tYm94X2NtZCAqY21kKTsNCj4+ICBpbnQgY3hsX2Rldl9zdGF0ZV9pZGVudGlmeShzdHJ1 Y3QgY3hsX21lbWRldl9zdGF0ZSAqbWRzKTsgQEAgLTg3Miw0DQo+PiArOTE1LDggQEAgc3RydWN0 IGN4bF9oZG0geyAgc3RydWN0IHNlcV9maWxlOyAgc3RydWN0IGRlbnRyeQ0KPj4gKmN4bF9kZWJ1 Z2ZzX2NyZWF0ZV9kaXIoY29uc3QgY2hhciAqZGlyKTsgIHZvaWQgY3hsX2RwYV9kZWJ1ZyhzdHJ1 Y3QNCj4+IHNlcV9maWxlICpmaWxlLCBzdHJ1Y3QgY3hsX2Rldl9zdGF0ZSAqY3hsZHMpOw0KPj4g Kw0KPj4gK2ludCBjeGxfZ2V0X3N1cHBvcnRlZF9mZWF0dXJlcyhzdHJ1Y3QgY3hsX21lbWRldl9z dGF0ZSAqbWRzKTsgaW50DQo+PiArY3hsX2dldF9zdXBwb3J0ZWRfZmVhdHVyZV9lbnRyeShzdHJ1 Y3QgY3hsX21lbWRldl9zdGF0ZSAqbWRzLCBjb25zdA0KPnV1aWRfdCAqZmVhdF91dWlkLA0KPj4g KwkJCQkgICAgc3RydWN0IGN4bF9mZWF0X2VudHJ5ICpmZWF0X2VudHJ5X291dCk7DQo+PiAgI2Vu ZGlmIC8qIF9fQ1hMX01FTV9IX18gKi8NCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2N4bC9wY2ku YyBiL2RyaXZlcnMvY3hsL3BjaS5jIGluZGV4DQo+PiAxODg0MTJkNDVlMGQuLjVjMjkyNmVlYzNj MyAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvY3hsL3BjaS5jDQo+PiArKysgYi9kcml2ZXJzL2N4 bC9wY2kuYw0KPj4gQEAgLTg4Nyw2ICs4ODcsMTAgQEAgc3RhdGljIGludCBjeGxfcGNpX3Byb2Jl KHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdA0KPnN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkN Cj4+ICAJaWYgKHJjKQ0KPj4gIAkJcmV0dXJuIHJjOw0KPj4NCj4+ICsJcmMgPSBjeGxfZ2V0X3N1 cHBvcnRlZF9mZWF0dXJlcyhtZHMpOw0KPj4gKwlpZiAocmMpDQo+PiArCQlkZXZfZGJnKCZwZGV2 LT5kZXYsICJObyBmZWF0dXJlcyBlbnVtZXJhdGVkLlxuIik7DQo+PiArDQo+PiAgCXJjID0gY3hs X3NldF90aW1lc3RhbXAobWRzKTsNCj4+ICAJaWYgKHJjKQ0KPj4gIAkJcmV0dXJuIHJjOw0KPj4g ZGlmZiAtLWdpdCBhL2luY2x1ZGUvY3hsL21haWxib3guaCBiL2luY2x1ZGUvY3hsL21haWxib3gu aCBpbmRleA0KPj4gYmFjZDExMWU3NWYxLi5jYzY2YWZlYzM0NzMgMTAwNjQ0DQo+PiAtLS0gYS9p bmNsdWRlL2N4bC9tYWlsYm94LmgNCj4+ICsrKyBiL2luY2x1ZGUvY3hsL21haWxib3guaA0KPj4g QEAgLTE0LDYgKzE0LDggQEAgc3RydWN0IGN4bF9tYm94X2NtZDsNCj4+ICAgKiBAbWJveF9tdXRl eDogbXV0ZXggcHJvdGVjdHMgZGV2aWNlIG1haWxib3ggYW5kIGZpcm13YXJlDQo+PiAgICogQG1i b3hfd2FpdDogcmN1d2FpdCBmb3IgbWFpbGJveA0KPj4gICAqIEBtYm94X3NlbmQ6IEBkZXYgc3Bl Y2lmaWMgdHJhbnNwb3J0IGZvciB0cmFuc21pdHRpbmcgbWFpbGJveA0KPj4gY29tbWFuZHMNCj4+ ICsgKiBAbnVtX2ZlYXR1cmVzOiBudW1iZXIgb2Ygc3VwcG9ydGVkIGZlYXR1cmVzDQo+PiArICog QGVudHJpZXM6IGxpc3Qgb2Ygc3VwcG9ydGVkIGZlYXR1cmUgZW50cmllcy4NCj4+ICAgKi8NCj4+ ICBzdHJ1Y3QgY3hsX21haWxib3ggew0KPj4gIAlzdHJ1Y3QgZGV2aWNlICpob3N0Ow0KPj4gQEAg LTIxLDYgKzIzLDggQEAgc3RydWN0IGN4bF9tYWlsYm94IHsNCj4+ICAJc3RydWN0IG11dGV4IG1i b3hfbXV0ZXg7IC8qIGxvY2sgdG8gcHJvdGVjdCBtYWlsYm94IGNvbnRleHQgKi8NCj4+ICAJc3Ry dWN0IHJjdXdhaXQgbWJveF93YWl0Ow0KPj4gIAlpbnQgKCptYm94X3NlbmQpKHN0cnVjdCBjeGxf bWFpbGJveCAqY3hsX21ib3gsIHN0cnVjdCBjeGxfbWJveF9jbWQNCj4+ICpjbWQpOw0KPj4gKwlp bnQgbnVtX2ZlYXR1cmVzOw0KPj4gKwlzdHJ1Y3QgY3hsX2ZlYXRfZW50cnkgKmVudHJpZXM7DQo+ PiAgfTsNCj4+DQo+PiAgaW50IGN4bF9tYWlsYm94X2luaXQoc3RydWN0IGN4bF9tYWlsYm94ICpj eGxfbWJveCwgc3RydWN0IGRldmljZQ0KPj4gKmhvc3QpOyBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91 YXBpL2xpbnV4L2N4bF9tZW0uaA0KPj4gYi9pbmNsdWRlL3VhcGkvbGludXgvY3hsX21lbS5oIGlu ZGV4IGM2YzBmZTI3NDk1ZC4uYmQyNTM1OTYyZjcwIDEwMDY0NA0KPj4gLS0tIGEvaW5jbHVkZS91 YXBpL2xpbnV4L2N4bF9tZW0uaA0KPj4gKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2N4bF9tZW0u aA0KPj4gQEAgLTUwLDYgKzUwLDcgQEANCj4+ICAJX19fQyhHRVRfTE9HX0NBUFMsICJHZXQgTG9n IENhcGFiaWxpdGllcyIpLAkJCSAgXA0KPj4gIAlfX19DKENMRUFSX0xPRywgIkNsZWFyIExvZyIp LAkJCQkJICBcDQo+PiAgCV9fX0MoR0VUX1NVUF9MT0dfU1VCTElTVCwgIkdldCBTdXBwb3J0ZWQg TG9ncyBTdWItTGlzdCIpLAkgIFwNCj4+ICsJX19fQyhHRVRfU1VQUE9SVEVEX0ZFQVRVUkVTLCAi R2V0IFN1cHBvcnRlZCBGZWF0dXJlcyIpLA0KPgkgIFwNCj4+ICAJX19fQyhNQVgsICJpbnZhbGlk IC8gbGFzdCBjb21tYW5kIikNCj4+DQo+PiAgI2RlZmluZSBfX19DKGEsIGIpIENYTF9NRU1fQ09N TUFORF9JRF8jI2ENCj4NCg0K