Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp865408pxf; Wed, 7 Apr 2021 13:38:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwz/1BM8beiF69qNeG3wvoE4BN3xAMKWbrA+1mviwZIm/hylztICK9v6k5HNH+PNak3Bj4I X-Received: by 2002:a6b:8fc5:: with SMTP id r188mr3875477iod.207.1617827909231; Wed, 07 Apr 2021 13:38:29 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1617827909; cv=pass; d=google.com; s=arc-20160816; b=Rh1JRJ+Rd2szIVRQWutNQO/CKD1hgSB6q54zyBOTURfSF9gDPGnYf6jXKyEF+lwfyp pa30krpIOySN1t+h3XlpS2uCodmThGSFvgH1tzpHCxiV5C0a8d+uhMFbOnzmkbaa70no lbf9CUJeeFy2qqYGoNcQd5VUPesLLw551nwox7bWhgaQKN0toWiBYdpAKgNbgHIGyhdx 3kEGGWfDbqGWM3bs14qZA/AjgMNeW7UvdeTQDPoTDdgf+lGuSfKlCpun7Ru2cX3dldId fZBjis+TXVWriHnRxbjPG8YMie7wCFekJHi5TYTvQYrrSLTgrg2NHvFEuzyXhEZirYih WF5w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=mwCUr7/bKs2/gj1H48furte2hjKVyGXI7jSL4qTXkrk=; b=BaonAYeXMtN9z4Q9JVwyNaHs9IJlyYrugtVDIgFDKOAgdo+ODqumNCEK8CgQnvWvjD BEmSqTplvdVMs8espJWWg0H8BQN7sFf8NcqWe7CXnqunVZ/ydnQgDnmTvxRZQSJSNy9e b0wRBz0t8IQNtWXctDvRgna6E89NBPMJk2Aqbc7iOql5qgt9nusLhyPmZwykxnHDa84y mqCgupfHTBsQjdObmrNfv3IUWugpwn53jALcZKWfr/a9U3iewpbHBlBd68wW7Kn5DsZm 8Un27WGOhtl1zqWCwYNwtllw2SfcK/ru3yQpJSg7AByszICvh8ZAdeMsaFO310+Z+f+8 0qgA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=VbRMkVpS; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id n13si707172ioo.99.2021.04.07.13.38.15; Wed, 07 Apr 2021 13:38:29 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=VbRMkVpS; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349899AbhDGJE6 (ORCPT + 99 others); Wed, 7 Apr 2021 05:04:58 -0400 Received: from mail-eopbgr140051.outbound.protection.outlook.com ([40.107.14.51]:9699 "EHLO EUR01-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S231787AbhDGJE4 (ORCPT ); Wed, 7 Apr 2021 05:04:56 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=G0rI2y9SZncxoubx9AQzcLYVKICt2uRnfaR3D+H7y4x2OsVvtkP59IA8aEt/VbQR4VBRqYDRb6T3ack0/6G2QTBZJIG0RenpK98xxSkpN7F9sDKQV6zJkcoFguU1AUNtAHPhK15htiLbLRuTg1VnBEgRsHUGsg/lS+GowYyoaL3fcL3zZ1lLvC3aDX2m5/D35+hYkcUz24ZTzhWa+kQCSKce6wRgU1Dv9pjOmbj8OLeVPosVvf29vO06iIT7m9ny7QWdWaelUxcLK8kkoIwAGY8XAnvKrs/mCvkT/JyOHI1rnoWVPoq4Wml9FU1jcoNcQrPVU63r2QP8THEACtPptQ== 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-SenderADCheck; bh=mwCUr7/bKs2/gj1H48furte2hjKVyGXI7jSL4qTXkrk=; b=Wdb6gf0KE5+RFVB87i3Hs07RITCxn7J0vocuoXTnWivdg0ExmbtpN5ZjwVkxewB+qF17kwyxMojBeDzESg8OQalViHDjfybWX7vyhE4qPOE368dBXqzFTV2mzsxuShVHt6nQKUR/VszIFSNpFCQkE12mnVC6kJaevcKlQAscV3uozoavcZrSd0GIXLbSeLPr8m+JoTKzzAP2MwxqsoGCugms/2+V92aBYo17AoMWkMUuEthnnCnBQ9afLLBNudjgp3sXgavFsVu+IDvImQcJR1nym3FrAOb/qIGrPeCaY+a5/NK3xNQzT/hH26CcK5l7OtVlhntm2NIQvtBcOo0h6Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mwCUr7/bKs2/gj1H48furte2hjKVyGXI7jSL4qTXkrk=; b=VbRMkVpSId31AXsme5uYXnvCgiJUMNJCRk5ZbE17vW7BsCBBnncG4vQUyuz/Kgb/2marHJJU4DalEble3d1MU0HN0z0B4ds+fjIKoXp5Fg/amVcMYh1i7HI24ttiFDe1hIx+2uuWhwPjipxd5lVpGFa24FQJhxL3EZbQJYbQGx4= Received: from HE1PR0402MB3371.eurprd04.prod.outlook.com (2603:10a6:7:85::27) by HE1PR0401MB2460.eurprd04.prod.outlook.com (2603:10a6:3:83::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3999.27; Wed, 7 Apr 2021 09:04:42 +0000 Received: from HE1PR0402MB3371.eurprd04.prod.outlook.com ([fe80::5df8:1a69:47c3:44fc]) by HE1PR0402MB3371.eurprd04.prod.outlook.com ([fe80::5df8:1a69:47c3:44fc%3]) with mapi id 15.20.3999.032; Wed, 7 Apr 2021 09:04:42 +0000 From: "Z.q. Hou" To: Rob Herring CC: PCI , "linux-kernel@vger.kernel.org" , Lorenzo Pieralisi , Bjorn Helgaas , Kishon Vijay Abraham I , Jingoo Han , Richard Zhu , Lucas Stach , Murali Karicheri , "M.h. Lian" , Mingkai Hu , Roy Zang , Yue Wang , Jonathan Chocron , Thomas Petazzoni , Jesper Nilsson , Gustavo Pimentel , Xiaowei Song , Binghui Wang , Stanimir Varbanov , Pratyush Anand , Kunihiko Hayashi , Jason Yan , Thierry Reding Subject: RE: [PATCH] PCI: dwc: Change the inheritance between the abstracted structures Thread-Topic: [PATCH] PCI: dwc: Change the inheritance between the abstracted structures Thread-Index: AQHW9iGVq/tDrPz9oUWaAcv7P5JmOKqodCIAgACt0aA= Date: Wed, 7 Apr 2021 09:04:42 +0000 Message-ID: References: <20210129094003.18102-1-Zhiqiang.Hou@nxp.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=nxp.com; x-originating-ip: [119.31.174.73] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 50bf55c3-60dd-4b20-d603-08d8f9a42e99 x-ms-traffictypediagnostic: HE1PR0401MB2460: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: h89mU2LzF6pnWirLsb/zBpr6PionmhpuCdVs/DageGzPjW+xY8AWBXrjHcWcb+fUIDB1czW4XR8Gzj+4WuEeYon/22QOh0UCKjS8zGcGGA+6LwXdHLOX6w828fs+PHVnyemftBktB8ChopzY3DDy42IldOAgFQ4OZLJodkqmRhSuISJe7+5x3LPOnpHriXRRkzYIXgN+M8DgE8ofTUPl/GAFrJGHJM3WciIFvNSbEk1hhgK/vtqIKceUK/4FeTW400DEHiISdtKWZmFBa1sonKvvP6tvGXDdURmcYTfhpN8JMU2m6KPle5OB3tKG6+ZtPavFaTpLnNg3ewMg37gV66d+lMO8UigvTPifrLvq6zQpoYzMmS6CpeYgaVeZ2m3GFtewOgCexZFpJTACHgHm3BE5Abni3WVNX++w2BrloSsRCISj/8M+p9rPnS7OfgzNG9l5V/XWbgncrq0Nymji0LOuOLxMEzjtWm2YdxtQt804CUr3DRcfFnk5GWOhBGYaUInJaVeafpDxWvibv58zye5qUHG/3S9tQEAIiwSfBytN1da024JnJOrVNZhc44IZh1CM8FaxNPLXEoVzrlXzfvBUOgIj1eZCpfFK0OXrBEZm5+tg2QLu9RA5AmhtMmSdQiTYnPfPhUzYTRebvc3NzYFoWbneYs8c59vYV+nY17PvQENZ/yARdGICuaBRChLCdDhebbAvjsdXIbIiTM6uRg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3371.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(376002)(346002)(39860400002)(396003)(136003)(366004)(26005)(86362001)(478600001)(55016002)(66556008)(64756008)(66476007)(2906002)(7416002)(6916009)(76116006)(7696005)(53546011)(6506007)(9686003)(186003)(66446008)(66946007)(38100700001)(4326008)(71200400001)(316002)(83380400001)(33656002)(52536014)(8936002)(8676002)(54906003)(5660300002)(30864003)(218113003)(559001)(569008);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?cjF0ZHBvY1llV2hSSzFseDdJdkZvMHhGZ0RFTkVpTjV6eGlrRlNFSjdvMCtx?= =?utf-8?B?Z2pmWUpTRTZSUEVKbGkwQXpFUzcrZ3htN2JlVFNiYjkvdENZSUErcWFNaWhV?= =?utf-8?B?L3JPNnFhc3M4R0tyN3kwemUwZmlnaC9OeVpkVTZibTREOE9UVWlHR1d1UzJu?= =?utf-8?B?ejBoVXczOFRWbG1GK2gzWVNFMUZRTytDQkxNK3UvdHNEN0RCbHRXVlRkcTIx?= =?utf-8?B?YXFMYXFCSkltU0FQWEJJdHpKeFpPb1ErWmxBWnNwOXppMDEzVk1XZ3FjWjdS?= =?utf-8?B?SzM0dkpBOFJxRTkybUwzZUFUSjg2bnFsUFN5eGhRYmkvRDZpZ2VBMk5McEs2?= =?utf-8?B?bkxDT1Brckc2SUg4a2dubWhSbzY4K0NVR2xkK0NIaE9JaElHQkpuSGx0R0RO?= =?utf-8?B?QTJSUnFmVHpuQUFXYVk2N2FxYWcvVkVTNGl1TkY0a3FYakFaL2VSWTBiRW12?= =?utf-8?B?cW1LdURJNjVWaENaZnJ0amlyYjNTSHFtU1Z5NHVKcDBJd3hIQUhFSVpZdWR2?= =?utf-8?B?bHU0YzN0RWdLQXMwRFVRMnA2ZFNZWFZQbUlESlNydURmZjFNTzhSNm9YZXh4?= =?utf-8?B?NmRkZTFlSTJwd0JyR3hHakpENUlQMEt0M0RjVFFCRDVTTTJmMWMwMkVrdW00?= =?utf-8?B?RFlhTm9hVDR5UCtqVlNrTzA3VkpvTEFJT2U3VlI5OFhvSkp1eForeFhCSlNu?= =?utf-8?B?MUdSdzFqNkNzN1A4aWNRTUFKUzUzZXNXWFlyM0wwWTRmUkRGcExBL2ovMlF0?= =?utf-8?B?VTR5am5KRUZvdXJCbjBKK3Y1TkRRbXN6L200WkRpTjNzZ2tFUytRTklYTXJr?= =?utf-8?B?c1ltWWptZWlqNUxlR2czZkdXVWdwV1F2M1BkVlpWWmZ1UjZERlVwNFhrU0Y4?= =?utf-8?B?Nnk2aTh1OUhHc1QyZlIwWkVQQVBFS05zUXNxZjdaUldtOS9iZDlabXh4enhK?= =?utf-8?B?RFFYeFV2UC9xYjFyK2JMQ3B0M0dDSDJjN280WGhSdDlRQVc3ankxVDRWdFNO?= =?utf-8?B?VDZpYUpjcWN4R2RUM2NLK1h2QXlRQmtUckFiNm11aDNUKzdLTUNPZHRzUmpT?= =?utf-8?B?ZGdTUnBRT0I1WG1xTjExVDdrd0N0eUgzZnU0clFkN0dvamhqeUhicVJEeFcz?= =?utf-8?B?V0hZQ0piVUdvakhxYisrRjdKNHAwZHo4eW9XRHJVbFhTM3J2b01XQ2xmd2pn?= =?utf-8?B?L2RnVXliWE1UMzd2enlmeVdxUW8vcVJ0bXBtMEZTUDVWY2JITGd2alhEZWc1?= =?utf-8?B?LzdPVVFtZTR2WjAxUjRnbEN1MGVNdWdWUEJ4Ly9OanROWEFvMGlqRzhhOEZJ?= =?utf-8?B?TDl3c2ZtWGsxUzJxQlAxbm00MFIrdjErL2VlSGc4UkY5Q2hXeEQwRUFiUG9u?= =?utf-8?B?akc4Q0JwalZML2tNa2RHaHJHSWdNM2UwZ29hQVQ3ZVgwcHR0OUJIY2d4STVR?= =?utf-8?B?RmVtWnQ2NU5oZkpTcWdyQ2VQRTQyU0lLS2NLQ2JPNmtSY0F2cnF3MzJHckJW?= =?utf-8?B?Sy9oNGxFcTNiL1gzWGd2bWRmTjZaVVROK3dxbGxScTgyaDhFcmJERzJ0NUFV?= =?utf-8?B?Tml2N1hOVlh3UlFiT1RPRG5jR05nR0hVQitvQlVHZU9CTUF6MU9MSU9WWko5?= =?utf-8?B?eEtDNUhnbWU2b3hTMlhKYUlzRjdJUDI5ajBFY2lKZFdEUmE0ajFDeW9jWFBi?= =?utf-8?B?WWs1aUptaGJBY1pROVVlTmlKYzM0ODJrWWxzSnhXZUNUNUxUNjBvbXFYVkU3?= =?utf-8?Q?fn7C8FNVTTaRiagQzw=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3371.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 50bf55c3-60dd-4b20-d603-08d8f9a42e99 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Apr 2021 09:04:42.2422 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 0CskSyWmf6OxIo9Mqsq9Nycuww0tQp3M6frWwVKzh3EmiVTq01FaW3HHN7Z/5yI7NvFoFYkV6jMqu+Jg2RpXZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0401MB2460 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgUm9iLA0KDQpUaGFua3MgYSBsb3QgZm9yIHRoZSBjb21tZW50cyENCg0KPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBSb2IgSGVycmluZyA8cm9iaEBrZXJuZWwub3JnPg0K PiBTZW50OiAyMDIx5bm0NOaciDfml6UgNjowMA0KPiBUbzogWi5xLiBIb3UgPHpoaXFpYW5nLmhv dUBueHAuY29tPg0KPiBDYzogUENJIDxsaW51eC1wY2lAdmdlci5rZXJuZWwub3JnPjsgbGludXgt a2VybmVsQHZnZXIua2VybmVsLm9yZzsgTG9yZW56bw0KPiBQaWVyYWxpc2kgPGxvcmVuem8ucGll cmFsaXNpQGFybS5jb20+OyBCam9ybiBIZWxnYWFzDQo+IDxiaGVsZ2Fhc0Bnb29nbGUuY29tPjsg S2lzaG9uIFZpamF5IEFicmFoYW0gSSA8a2lzaG9uQHRpLmNvbT47IEppbmdvbw0KPiBIYW4gPGpp bmdvb2hhbjFAZ21haWwuY29tPjsgUmljaGFyZCBaaHUgPGhvbmd4aW5nLnpodUBueHAuY29tPjsN Cj4gTHVjYXMgU3RhY2ggPGwuc3RhY2hAcGVuZ3V0cm9uaXguZGU+OyBNdXJhbGkgS2FyaWNoZXJp DQo+IDxtLWthcmljaGVyaTJAdGkuY29tPjsgTS5oLiBMaWFuIDxtaW5naHVhbi5saWFuQG54cC5j b20+OyBNaW5na2FpIEh1DQo+IDxtaW5na2FpLmh1QG54cC5jb20+OyBSb3kgWmFuZyA8cm95Lnph bmdAbnhwLmNvbT47IFl1ZSBXYW5nDQo+IDx5dWUud2FuZ0BhbWxvZ2ljLmNvbT47IEpvbmF0aGFu IENob2Nyb24gPGpvbm55Y0BhbWF6b24uY29tPjsNCj4gVGhvbWFzIFBldGF6em9uaSA8dGhvbWFz LnBldGF6em9uaUBib290bGluLmNvbT47IEplc3BlciBOaWxzc29uDQo+IDxqZXNwZXIubmlsc3Nv bkBheGlzLmNvbT47IEd1c3Rhdm8gUGltZW50ZWwNCj4gPGd1c3Rhdm8ucGltZW50ZWxAc3lub3Bz eXMuY29tPjsgWGlhb3dlaSBTb25nDQo+IDxzb25neGlhb3dlaUBoaXNpbGljb24uY29tPjsgQmlu Z2h1aSBXYW5nIDx3YW5nYmluZ2h1aUBoaXNpbGljb24uY29tPjsNCj4gU3RhbmltaXIgVmFyYmFu b3YgPHN2YXJiYW5vdkBtbS1zb2wuY29tPjsgUHJhdHl1c2ggQW5hbmQNCj4gPHByYXR5dXNoLmFu YW5kQGdtYWlsLmNvbT47IEt1bmloaWtvIEhheWFzaGkNCj4gPGhheWFzaGkua3VuaWhpa29Ac29j aW9uZXh0LmNvbT47IEphc29uIFlhbiA8eWFuYWlqaWVAaHVhd2VpLmNvbT47DQo+IFRoaWVycnkg UmVkaW5nIDx0aGllcnJ5LnJlZGluZ0BnbWFpbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0hd IFBDSTogZHdjOiBDaGFuZ2UgdGhlIGluaGVyaXRhbmNlIGJldHdlZW4gdGhlDQo+IGFic3RyYWN0 ZWQgc3RydWN0dXJlcw0KPiANCj4gT24gRnJpLCBKYW4gMjksIDIwMjEgYXQgMzozMiBBTSBaaGlx aWFuZyBIb3UgPFpoaXFpYW5nLkhvdUBueHAuY29tPg0KPiB3cm90ZToNCj4gPg0KPiA+IEZyb206 IEhvdSBaaGlxaWFuZyA8WmhpcWlhbmcuSG91QG54cC5jb20+DQo+ID4NCj4gPiBDdXJyZW50bHkg dGhlIGNvcmUgc3RydWN0IGR3X3BjaWUgaW5jbHVkZXMgYm90aCBzdHJ1Y3QgcGNpZV9wb3J0DQo+ ID4gYW5kIGR3X3BjaWVfZXAgYW5kIHRoZSBSQyBhbmQgRVAgcGxhdGZvcm0gZHJpdmVycyBkaXJl Y3RseQ0KPiA+IGluY2x1ZGVzIHRoZSBkd19wY2llLiBTbyBpdCByZXN1bHRzIGluIGEgUkMgb3Ig RVAgcGxhdGZvcm0gZHJpdmVyDQo+ID4gaGFzIDIgaW5kaXJlY3QgcGFyZW50cyBwY2llX3BvcnQg YW5kIGR3X3BjaWVfZXAsIGJ1dCBpdCBkb2Vzbid0DQo+ID4gbWFrZSBzZW5zZSBsZXQgUkMgcGxh dGZvcm0gZHJpdmVyIGluY2x1ZGVzIHRoZSBkd19wY2llX2VwIGFuZA0KPiA+IHNvIGRvZXMgdGhl IEVQIHBsYXRmb3JtIGRyaXZlci4NCj4gDQo+IEEgbGVzcyBpbnZhc2l2ZSBjaGFuZ2Ugd291bGQg YmUganVzdCBkb2luZyBhIHVuaW9uOg0KPiANCj4gICAgdW5pb24gew0KPiAgICAgICAgc3RydWN0 IHBjaWVfcG9ydCAgICAgICAgcHA7DQo+ICAgICAgICBzdHJ1Y3QgZHdfcGNpZV9lcCAgICAgICBl cDsNCj4gICAgfTsNCj4gDQo+IFRob3VnaCBJIGFncmVlIHJldmVyc2luZyBob3cgdGhlIHN0cnVj dHMgYXJlIGVtYmVkZGVkIGlzIG1vcmUgbG9naWNhbC4NCltaLnEuIEhvdV0gDQpZZXMsIHRoaXMg Y2hhbmdlIGludm9sdmVkIGFsbCB0aGUgcGxhdGZvcm0gZHJpdmVycywgYnV0IEkgdGhpbmsgaXQn cyB3b3J0aCwNCnRoaXMgY2hhbmdlIG1ha2VzIHRoZSBkcml2ZXJzIG1vcmUgZWFzeSB0byB1bmRl cnN0YW5kIGFuZCBtYWludGFpbi4NCg0KPiANCj4gSWRlYWxseSwgSSdkIGxpa2UgdG8gc2VlIGFs bCBkcml2ZXJzIG1vdmUgdG8gYSBzaW5nbGUgYWxsb2MgdXNpbmcNCj4gZGV2bV9wY2lfYWxsb2Nf aG9zdF9icmlkZ2UoKSB3aGljaCB0YWtlcyBleHRyYSBzaXplIGZvciBhIHByaXZhdGUNCj4gc3Ry dWN0LiBDdXJyZW50bHksIGV2ZXJ5IGRyaXZlciBoYXMgZWl0aGVyIDIgb3IgMyBhbGxvY3MuIFRo ZSBmaXJzdA0KPiBzdGVwIEkgdGhpbmsgaXMgZ2V0dGluZyByaWQgb2YgdGhlIDNyZCBhbGxvYyBi eSBlbWJlZGRpbmcgdGhlIERXQw0KPiBzdHJ1Y3QgaW50byB0aGUgcGxhdGZvcm0gc3BlY2lmaWMg c3RydWN0IHJhdGhlciB0aGFuIGhhdmluZyBhIHBvaW50ZXINCj4gdG8gdGhlIERXQyBzdHJ1Y3Qu DQoNClllcywgYWdyZWUgaXQncyB0aGUgZGlyZWN0aW9uIHdlIGFyZSBzdGVwcGluZyB0byBhbmQg aXQgZG9lc24ndCBjb25mbGljdA0Kd2l0aCB0aGlzIGNoYW5nZS4NCg0KPiANCj4gPiBUaGlzIHBh dGNoIG1ha2VzIHRoZSBzdHJ1Y3QgcGNpZV9wb3J0IGFuZCBkd19wY2llX2VwIGluY2x1ZGVzDQo+ ID4gdGhlIGNvcmUgc3RydWN0IGR3X3BjaWUgYW5kIHRoZSBSQyBhbmQgRVAgcGxhdGZvcm0gZHJp dmVycw0KPiA+IGluY2x1ZGUgc3RydWN0IHBjaWVfcG9ydCBhbmQgZHdfcGNpZV9lcCByZXNwZWN0 aXZlbHkuDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBIb3UgWmhpcWlhbmcgPFpoaXFpYW5nLkhv dUBueHAuY29tPg0KPiA+IENjOiBLaXNob24gVmlqYXkgQWJyYWhhbSBJIDxraXNob25AdGkuY29t Pg0KPiA+IENjOiBMb3JlbnpvIFBpZXJhbGlzaSA8bG9yZW56by5waWVyYWxpc2lAYXJtLmNvbT4N Cj4gPiBDYzogUm9iIEhlcnJpbmcgPHJvYmhAa2VybmVsLm9yZz4NCj4gPiBDYzogQmpvcm4gSGVs Z2FhcyA8YmhlbGdhYXNAZ29vZ2xlLmNvbT4NCj4gPiBDYzogSmluZ29vIEhhbiA8amluZ29vaGFu MUBnbWFpbC5jb20+DQo+ID4gQ2M6IFJpY2hhcmQgWmh1IDxob25neGluZy56aHVAbnhwLmNvbT4N Cj4gPiBDYzogTHVjYXMgU3RhY2ggPGwuc3RhY2hAcGVuZ3V0cm9uaXguZGU+DQo+ID4gQ2M6IE11 cmFsaSBLYXJpY2hlcmkgPG0ta2FyaWNoZXJpMkB0aS5jb20+DQo+ID4gQ2M6IE1pbmdodWFuIExp YW4gPG1pbmdodWFuLkxpYW5AbnhwLmNvbT4NCj4gPiBDYzogTWluZ2thaSBIdSA8bWluZ2thaS5o dUBueHAuY29tPg0KPiA+IENjOiBSb3kgWmFuZyA8cm95LnphbmdAbnhwLmNvbT4NCj4gPiBDYzog WXVlIFdhbmcgPHl1ZS53YW5nQEFtbG9naWMuY29tPg0KPiA+IENjOiBKb25hdGhhbiBDaG9jcm9u IDxqb25ueWNAYW1hem9uLmNvbT4NCj4gPiBDYzogVGhvbWFzIFBldGF6em9uaSA8dGhvbWFzLnBl dGF6em9uaUBib290bGluLmNvbT4NCj4gPiBDYzogSmVzcGVyIE5pbHNzb24gPGplc3Blci5uaWxz c29uQGF4aXMuY29tPg0KPiA+IENjOiBHdXN0YXZvIFBpbWVudGVsIDxndXN0YXZvLnBpbWVudGVs QHN5bm9wc3lzLmNvbT4NCj4gPiBDYzogWGlhb3dlaSBTb25nIDxzb25neGlhb3dlaUBoaXNpbGlj b24uY29tPg0KPiA+IENjOiBCaW5naHVpIFdhbmcgPHdhbmdiaW5naHVpQGhpc2lsaWNvbi5jb20+ DQo+ID4gQ2M6IFN0YW5pbWlyIFZhcmJhbm92IDxzdmFyYmFub3ZAbW0tc29sLmNvbT4NCj4gPiBD YzogUHJhdHl1c2ggQW5hbmQgPHByYXR5dXNoLmFuYW5kQGdtYWlsLmNvbT4NCj4gPiBDYzogS3Vu aWhpa28gSGF5YXNoaSA8aGF5YXNoaS5rdW5paGlrb0Bzb2Npb25leHQuY29tPg0KPiA+IENjOiBK YXNvbiBZYW4gPHlhbmFpamllQGh1YXdlaS5jb20+DQo+ID4gQ2M6IFRoaWVycnkgUmVkaW5nIDx0 aGllcnJ5LnJlZGluZ0BnbWFpbC5jb20+DQo+ID4gLS0tDQo+ID4gIGRyaXZlcnMvcGNpL2NvbnRy b2xsZXIvZHdjL3BjaS1kcmE3eHguYyAgICAgICB8ICA3NCArKysrKy0tLQ0KPiA+ICBkcml2ZXJz L3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktZXh5bm9zLmMgICAgICAgfCAgMjYgKy0tDQo+ID4gIGRy aXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2LmMgICAgICAgICB8ICA0NiArKystLQ0K PiA+ICBkcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2kta2V5c3RvbmUuYyAgICAgfCAgNzkg KysrKystLS0NCj4gPiAgLi4uL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktbGF5ZXJzY2FwZS1lcC5j ICAgIHwgIDE4ICstDQo+ID4gIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1sYXllcnNj YXBlLmMgICB8ICA1MSArKystLS0NCj4gPiAgZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNp LW1lc29uLmMgICAgICAgIHwgIDI1ICstLQ0KPiA+ICBkcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3 Yy9wY2llLWFsLmMgICAgICAgICAgfCAgMjEgKystDQo+ID4gIGRyaXZlcnMvcGNpL2NvbnRyb2xs ZXIvZHdjL3BjaWUtYXJtYWRhOGsuYyAgICB8ICAxNyArLQ0KPiA+ICBkcml2ZXJzL3BjaS9jb250 cm9sbGVyL2R3Yy9wY2llLWFydHBlYzYuYyAgICAgfCAgNzQgKysrKystLS0NCj4gPiAgLi4uL3Bj aS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUtaG9zdC5jIHwgICAyICstDQo+ID4gIC4u Li9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLXBsYXQuYyB8ICAzOCArKy0tDQo+ ID4gIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2FyZS5oICB8ICA3MiAr KysrLS0tLQ0KPiA+ICBkcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWhpc3RiLmMgICAg ICAgfCAgMjcgKy0tDQo+ID4gIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtaW50ZWwt Z3cuYyAgICB8ICA0MiArKystLQ0KPiA+ICBkcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ll LWtpcmluLmMgICAgICAgfCAgNDIgKysrLS0NCj4gPiAgZHJpdmVycy9wY2kvY29udHJvbGxlci9k d2MvcGNpZS1xY29tLmMgICAgICAgIHwgIDQwICsrLS0tDQo+ID4gIGRyaXZlcnMvcGNpL2NvbnRy b2xsZXIvZHdjL3BjaWUtc3BlYXIxM3h4LmMgICB8ICAxNiArLQ0KPiA+ICBkcml2ZXJzL3BjaS9j b250cm9sbGVyL2R3Yy9wY2llLXRlZ3JhMTk0LmMgICAgfCAxNjkNCj4gKysrKysrKysrKystLS0t LS0tDQo+ID4gIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtdW5pcGhpZXItZXAuYyB8 ICAxNCArLQ0KPiA+ICBkcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXVuaXBoaWVyLmMg ICAgfCAgMTcgKy0NCj4gPiAgMjEgZmlsZXMgY2hhbmdlZCwgNTU3IGluc2VydGlvbnMoKyksIDM1 MyBkZWxldGlvbnMoLSkNCj4gDQo+IFdoYXQgZXhhY3RseSBoYXZlIHdlIGltcHJvdmVkIHdpdGgg MjAwIG1vcmUgbGluZXM/DQoNCk5vIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50LCBidXQgY29ycmVj dGVkIHRoZSBjbHV0dGVyZWQgaW5oZXJpdGFuY2UgbG9naWMuDQoNCj4gDQo+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1kcmE3eHguYw0KPiBiL2RyaXZlcnMv cGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1kcmE3eHguYw0KPiA+IGluZGV4IDEyNzI2YzYzMzY2Zi4u MGU5MTRkZjZlYWJhIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdj L3BjaS1kcmE3eHguYw0KPiA+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1k cmE3eHguYw0KPiA+IEBAIC04NSw3ICs4NSw4IEBADQo+ID4gICNkZWZpbmUgUENJRV9CMF9CMV9U U1lOQ0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCSVQoMCkNCj4gPg0KPiA+ICBzdHJ1 Y3QgZHJhN3h4X3BjaWUgew0KPiA+IC0gICAgICAgc3RydWN0IGR3X3BjaWUgICAgICAgICAgKnBj aTsNCj4gPiArICAgICAgIHN0cnVjdCBwY2llX3BvcnQgICAgICAgICpwcDsNCj4gPiArICAgICAg IHN0cnVjdCBkd19wY2llX2VwICAgICAgICplcDsNCj4gDQo+IEl0J3MgYmV0dGVyIHRvIGtlZXAg c3RydWN0IGR3X3BjaWUgcHRyIGhlcmUgYmVjYXVzZSB3ZSBjYW4gZWFzaWx5IGdldA0KPiBwcCBv ciBlcCBmcm9tIGl0Lg0KDQpXaXRoIHRoaXMgcGF0Y2gsIEkgd2FudCB0byBjaGFuZ2UgYWxsIHRo ZSBSQyBhbmQgRVAgcGxhdGZvcm0gZHJpdmVycyB1c2UgdGhlICdzdHJ1Y3QgcGNpZV9wb3J0Jw0K YW5kICdzdHJ1Y3QgZHdfcGNpZV9lcCcgcmVzcGVjdGl2ZWx5IGluc3RlYWQgb2YgZW1iZWRkZWQg dGhlIGNvcmUgJ3N0cnVjdCBkd19wY2llJy4NCkFzIHRoaXMgZHJpdmVyIGlzIGZvciBib3RoIFJD IGFuZCBFUCBtb2RlLCBhbmQgdGhleSBhcmUgdXNpbmcgdGhlIHNhbWUgcHJpdmF0ZQ0KJ3N0cnVj dCBkcmE3eHhfcGNpZScsIHNvIHRoZSAnc3RydWN0IHBjaWVfcG9ydCAqcHAnIGFuZCAnc3RydWN0 IGR3X3BjaWVfZXAgKmVwJyBhcmUgYm90aA0KcHV0IGludG8gdGhlIHByaXZhdGUgc3RydWN0IGFu ZCB0aGV5IGFyZSB1c2VkIGJ5IHRoZSBjb3JyZXNwb25kaW5nIGRyaXZlci4NCg0KDQo+IA0KPiA+ ICAgICAgICAgdm9pZCBfX2lvbWVtICAgICAgICAgICAgKmJhc2U7ICAgICAgICAgIC8qIERUIHRp X2NvbmYgKi8NCj4gPiAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgIHBoeV9jb3VudDsg ICAgICAvKiBEVCBwaHktbmFtZXMNCj4gY291bnQgKi8NCj4gPiAgICAgICAgIHN0cnVjdCBwaHkg ICAgICAgICAgICAgICoqcGh5Ow0KPiA+IEBAIC0yOTAsMTEgKzI5MSwxOSBAQCBzdGF0aWMgdm9p ZCBkcmE3eHhfcGNpZV9tc2lfaXJxX2hhbmRsZXIoc3RydWN0DQo+IGlycV9kZXNjICpkZXNjKQ0K PiA+ICBzdGF0aWMgaXJxcmV0dXJuX3QgZHJhN3h4X3BjaWVfaXJxX2hhbmRsZXIoaW50IGlycSwg dm9pZCAqYXJnKQ0KPiA+ICB7DQo+ID4gICAgICAgICBzdHJ1Y3QgZHJhN3h4X3BjaWUgKmRyYTd4 eCA9IGFyZzsNCj4gPiAtICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSBkcmE3eHgtPnBjaTsN Cj4gPiAtICAgICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9IHBjaS0+ZGV2Ow0KPiA+IC0gICAgICAg c3RydWN0IGR3X3BjaWVfZXAgKmVwID0gJnBjaS0+ZXA7DQo+ID4gKyAgICAgICBzdHJ1Y3QgZHdf cGNpZV9lcCAqZXA7DQo+ID4gKyAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpOw0KPiA+ICsgICAg ICAgc3RydWN0IGRldmljZSAqZGV2Ow0KPiA+ICAgICAgICAgdTMyIHJlZzsNCj4gPg0KPiA+ICsg ICAgICAgaWYgKGRyYTd4eC0+bW9kZSA9PSBEV19QQ0lFX1JDX1RZUEUpIHsNCj4gPiArICAgICAg ICAgICAgICAgcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKGRyYTd4eC0+cHApOw0KPiA+ICsgICAg ICAgfSBlbHNlIHsNCj4gPiArICAgICAgICAgICAgICAgZXAgPSBkcmE3eHgtPmVwOw0KPiA+ICsg ICAgICAgICAgICAgICBwY2kgPSB0b19kd19wY2llX2Zyb21fZXAoZXApOw0KPiA+ICsgICAgICAg fQ0KPiANCj4gVGhpcyBpcyBub3QgYSBnb29kIHBhdHRlcm4uLi4NCg0KV2lsbCBjaGFuZ2UgdG8g dGhlICdzd2l0Y2ggKG1vZGUpIHsuLi59JyBpbiBuZXh0IHZlcnNpb24uDQoNCj4gDQo+ID4gKw0K PiA+ICsgICAgICAgZGV2ID0gcGNpLT5kZXY7DQo+ID4gICAgICAgICByZWcgPSBkcmE3eHhfcGNp ZV9yZWFkbChkcmE3eHgsDQo+IFBDSUVDVFJMX0RSQTdYWF9DT05GX0lSUVNUQVRVU19NQUlOKTsN Cj4gPg0KPiA+ICAgICAgICAgaWYgKHJlZyAmIEVSUl9TWVMpDQo+ID4gQEAgLTQ0NywxMSArNDU2 LDEwIEBAIHN0YXRpYyBpbnQgX19pbml0IGRyYTd4eF9hZGRfcGNpZV9lcChzdHJ1Y3QNCj4gZHJh N3h4X3BjaWUgKmRyYTd4eCwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IHBsYXRmb3JtX2RldmljZQ0KPiAqcGRldikNCj4gPiAgew0KPiA+ICAgICAgICAg aW50IHJldDsNCj4gPiAtICAgICAgIHN0cnVjdCBkd19wY2llX2VwICplcDsNCj4gPiArICAgICAg IHN0cnVjdCBkd19wY2llX2VwICplcCA9IGRyYTd4eC0+ZXA7DQo+ID4gKyAgICAgICBzdHJ1Y3Qg ZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX2VwKGVwKTsNCj4gPiAgICAgICAgIHN0cnVj dCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7DQo+ID4gLSAgICAgICBzdHJ1Y3QgZHdfcGNpZSAq cGNpID0gZHJhN3h4LT5wY2k7DQo+ID4NCj4gPiAtICAgICAgIGVwID0gJnBjaS0+ZXA7DQo+ID4g ICAgICAgICBlcC0+b3BzID0gJnBjaWVfZXBfb3BzOw0KPiA+DQo+ID4gICAgICAgICBwY2ktPmRi aV9iYXNlID0NCj4gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlX2J5bmFtZShwZGV2LCAi ZXBfZGJpY3MiKTsNCj4gPiBAQCAtNDc2LDggKzQ4NCw4IEBAIHN0YXRpYyBpbnQgX19pbml0IGRy YTd4eF9hZGRfcGNpZV9wb3J0KHN0cnVjdA0KPiBkcmE3eHhfcGNpZSAqZHJhN3h4LA0KPiA+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UNCj4gKnBkZXYpDQo+ID4gIHsNCj4gPiAgICAgICAgIGludCByZXQ7DQo+ID4gLSAgICAgICBz dHJ1Y3QgZHdfcGNpZSAqcGNpID0gZHJhN3h4LT5wY2k7DQo+ID4gLSAgICAgICBzdHJ1Y3QgcGNp ZV9wb3J0ICpwcCA9ICZwY2ktPnBwOw0KPiA+ICsgICAgICAgc3RydWN0IHBjaWVfcG9ydCAqcHAg PSBkcmE3eHgtPnBwOw0KPiA+ICsgICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3Bj aWVfZnJvbV9wcChwcCk7DQo+ID4gICAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwY2ktPmRl djsNCj4gPg0KPiA+ICAgICAgICAgcHAtPmlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMSk7 DQo+ID4gQEAgLTY5Myw2ICs3MDEsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBkcmE3eHhfcGNpZV9w cm9iZShzdHJ1Y3QNCj4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ICAgICAgICAgc3RydWN0 IGRldmljZV9saW5rICoqbGluazsNCj4gPiAgICAgICAgIHZvaWQgX19pb21lbSAqYmFzZTsNCj4g PiAgICAgICAgIHN0cnVjdCBkd19wY2llICpwY2k7DQo+ID4gKyAgICAgICBzdHJ1Y3QgcGNpZV9w b3J0ICpwcDsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llX2VwICplcDsNCj4gPiAgICAgICAg IHN0cnVjdCBkcmE3eHhfcGNpZSAqZHJhN3h4Ow0KPiA+ICAgICAgICAgc3RydWN0IGRldmljZSAq ZGV2ID0gJnBkZXYtPmRldjsNCj4gPiAgICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSBk ZXYtPm9mX25vZGU7DQo+ID4gQEAgLTcxNSwxMyArNzI1LDYgQEAgc3RhdGljIGludCBfX2luaXQg ZHJhN3h4X3BjaWVfcHJvYmUoc3RydWN0DQo+IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gPiAg ICAgICAgIGlmICghZHJhN3h4KQ0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsN Cj4gPg0KPiA+IC0gICAgICAgcGNpID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpwY2kpLCBH RlBfS0VSTkVMKTsNCj4gPiAtICAgICAgIGlmICghcGNpKQ0KPiA+IC0gICAgICAgICAgICAgICBy ZXR1cm4gLUVOT01FTTsNCj4gPiAtDQo+ID4gLSAgICAgICBwY2ktPmRldiA9IGRldjsNCj4gPiAt ICAgICAgIHBjaS0+b3BzID0gJmR3X3BjaWVfb3BzOw0KPiA+IC0NCj4gPiAgICAgICAgIGlycSA9 IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7DQo+ID4gICAgICAgICBpZiAoaXJxIDwgMCkNCj4g PiAgICAgICAgICAgICAgICAgcmV0dXJuIGlycTsNCj4gPiBAQCAtNzU5LDcgKzc2Miw2IEBAIHN0 YXRpYyBpbnQgX19pbml0IGRyYTd4eF9wY2llX3Byb2JlKHN0cnVjdA0KPiBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpDQo+ID4NCj4gPiAgICAgICAgIGRyYTd4eC0+YmFzZSA9IGJhc2U7DQo+ID4gICAg ICAgICBkcmE3eHgtPnBoeSA9IHBoeTsNCj4gPiAtICAgICAgIGRyYTd4eC0+cGNpID0gcGNpOw0K PiA+ICAgICAgICAgZHJhN3h4LT5waHlfY291bnQgPSBwaHlfY291bnQ7DQo+ID4NCj4gPiAgICAg ICAgIGlmIChwaHlfY291bnQgPT0gMikgew0KPiA+IEBAIC03OTYsNiArNzk4LDE3IEBAIHN0YXRp YyBpbnQgX19pbml0IGRyYTd4eF9wY2llX3Byb2JlKHN0cnVjdA0KPiBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpDQo+ID4NCj4gPiAgICAgICAgIHN3aXRjaCAobW9kZSkgew0KPiA+ICAgICAgICAgY2Fz ZSBEV19QQ0lFX1JDX1RZUEU6DQo+ID4gKyAgICAgICAgICAgICAgIHBwID0gZGV2bV9remFsbG9j KGRldiwgc2l6ZW9mKCpwcCksIEdGUF9LRVJORUwpOw0KPiA+ICsgICAgICAgICAgICAgICBpZiAo IXBwKSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVOT01FTTsNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycl9ncGlvOw0KPiA+ICsgICAgICAgICAgICAg ICB9DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICBwY2kgPSAmcHAtPnBjaWU7DQo+ID4gKyAg ICAgICAgICAgICAgIHBjaS0+ZGV2ID0gZGV2Ow0KPiA+ICsgICAgICAgICAgICAgICBwY2ktPm9w cyA9ICZkd19wY2llX29wczsNCj4gPiArICAgICAgICAgICAgICAgZHJhN3h4LT5wcCA9IHBwOw0K PiA+ICsNCj4gPiAgICAgICAgICAgICAgICAgaWYgKCFJU19FTkFCTEVEKENPTkZJR19QQ0lfRFJB N1hYX0hPU1QpKSB7DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVOT0RFVjsN Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycl9ncGlvOw0KPiA+IEBAIC04MTMs NiArODI2LDE3IEBAIHN0YXRpYyBpbnQgX19pbml0IGRyYTd4eF9wY2llX3Byb2JlKHN0cnVjdA0K PiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgZ290 byBlcnJfZ3BpbzsNCj4gPiAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gICAgICAgICBjYXNl IERXX1BDSUVfRVBfVFlQRToNCj4gPiArICAgICAgICAgICAgICAgZXAgPSBkZXZtX2t6YWxsb2Mo ZGV2LCBzaXplb2YoKmVwKSwgR0ZQX0tFUk5FTCk7DQo+ID4gKyAgICAgICAgICAgICAgIGlmICgh ZXApIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICByZXQgPSAtRU5PTUVNOw0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyX2dwaW87DQo+ID4gKyAgICAgICAgICAgICAg IH0NCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIHBjaSA9ICZlcC0+cGNpZTsNCj4gPiArICAg ICAgICAgICAgICAgcGNpLT5kZXYgPSBkZXY7DQo+ID4gKyAgICAgICAgICAgICAgIHBjaS0+b3Bz ID0gJmR3X3BjaWVfb3BzOw0KPiA+ICsgICAgICAgICAgICAgICBkcmE3eHgtPmVwID0gZXA7DQo+ ID4gKw0KPiA+ICAgICAgICAgICAgICAgICBpZiAoIUlTX0VOQUJMRUQoQ09ORklHX1BDSV9EUkE3 WFhfRVApKSB7DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVOT0RFVjsNCj4g PiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycl9ncGlvOw0KPiA+IEBAIC04NjAsMTIg Kzg4NCwxNCBAQCBzdGF0aWMgaW50IF9faW5pdCBkcmE3eHhfcGNpZV9wcm9iZShzdHJ1Y3QNCj4g cGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ICBzdGF0aWMgaW50IGRyYTd4eF9wY2llX3N1c3Bl bmQoc3RydWN0IGRldmljZSAqZGV2KQ0KPiA+ICB7DQo+ID4gICAgICAgICBzdHJ1Y3QgZHJhN3h4 X3BjaWUgKmRyYTd4eCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiA+IC0gICAgICAgc3RydWN0 IGR3X3BjaWUgKnBjaSA9IGRyYTd4eC0+cGNpOw0KPiA+ICsgICAgICAgc3RydWN0IGR3X3BjaWUg KnBjaTsNCj4gPiAgICAgICAgIHUzMiB2YWw7DQo+ID4NCj4gPiAgICAgICAgIGlmIChkcmE3eHgt Pm1vZGUgIT0gRFdfUENJRV9SQ19UWVBFKQ0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gMDsN Cj4gPg0KPiA+ICsgICAgICAgcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKGRyYTd4eC0+cHApOw0K PiA+ICsNCj4gPiAgICAgICAgIC8qIGNsZWFyIE1TRSAqLw0KPiA+ICAgICAgICAgdmFsID0gZHdf cGNpZV9yZWFkbF9kYmkocGNpLCBQQ0lfQ09NTUFORCk7DQo+ID4gICAgICAgICB2YWwgJj0gflBD SV9DT01NQU5EX01FTU9SWTsNCj4gPiBAQCAtODc3LDEyICs5MDMsMTQgQEAgc3RhdGljIGludCBk cmE3eHhfcGNpZV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UNCj4gKmRldikNCj4gPiAgc3RhdGljIGlu dCBkcmE3eHhfcGNpZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQ0KPiA+ICB7DQo+ID4gICAg ICAgICBzdHJ1Y3QgZHJhN3h4X3BjaWUgKmRyYTd4eCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0K PiA+IC0gICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IGRyYTd4eC0+cGNpOw0KPiA+ICsgICAg ICAgc3RydWN0IGR3X3BjaWUgKnBjaTsNCj4gPiAgICAgICAgIHUzMiB2YWw7DQo+ID4NCj4gPiAg ICAgICAgIGlmIChkcmE3eHgtPm1vZGUgIT0gRFdfUENJRV9SQ19UWVBFKQ0KPiA+ICAgICAgICAg ICAgICAgICByZXR1cm4gMDsNCj4gPg0KPiA+ICsgICAgICAgcGNpID0gdG9fZHdfcGNpZV9mcm9t X3BwKGRyYTd4eC0+cHApOw0KPiA+ICsNCj4gPiAgICAgICAgIC8qIHNldCBNU0UgKi8NCj4gPiAg ICAgICAgIHZhbCA9IGR3X3BjaWVfcmVhZGxfZGJpKHBjaSwgUENJX0NPTU1BTkQpOw0KPiA+ICAg ICAgICAgdmFsIHw9IFBDSV9DT01NQU5EX01FTU9SWTsNCj4gPiBAQCAtOTE5LDkgKzk0NywxNSBA QCBzdGF0aWMgdm9pZCBkcmE3eHhfcGNpZV9zaHV0ZG93bihzdHJ1Y3QNCj4gcGxhdGZvcm1fZGV2 aWNlICpwZGV2KQ0KPiA+ICB7DQo+ID4gICAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRl di0+ZGV2Ow0KPiA+ICAgICAgICAgc3RydWN0IGRyYTd4eF9wY2llICpkcmE3eHggPSBkZXZfZ2V0 X2RydmRhdGEoZGV2KTsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19w Y2llX2Zyb21fcHAoZHJhN3h4LT5wcCk7DQo+ID4gICAgICAgICBpbnQgcmV0Ow0KPiA+DQo+ID4g LSAgICAgICBkcmE3eHhfcGNpZV9zdG9wX2xpbmsoZHJhN3h4LT5wY2kpOw0KPiA+ICsgICAgICAg aWYgKGRyYTd4eC0+bW9kZSA9PSBEV19QQ0lFX1JDX1RZUEUpDQo+ID4gKyAgICAgICAgICAgICAg IHBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChkcmE3eHgtPnBwKTsNCj4gPiArICAgICAgIGVsc2UN Cj4gPiArICAgICAgICAgICAgICAgcGNpID0gdG9fZHdfcGNpZV9mcm9tX2VwKGRyYTd4eC0+ZXAp Ow0KPiA+ICsNCj4gPiArICAgICAgIGRyYTd4eF9wY2llX3N0b3BfbGluayhwY2kpOw0KPiA+DQo+ ID4gICAgICAgICByZXQgPSBwbV9ydW50aW1lX3B1dF9zeW5jKGRldik7DQo+ID4gICAgICAgICBp ZiAocmV0IDwgMCkNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2Mv cGNpLWV4eW5vcy5jDQo+IGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWV4eW5vcy5j DQo+ID4gaW5kZXggYzI0ZGFiMzgzNjU0Li5hYjVhY2ZhNzlmYWEgMTAwNjQ0DQo+ID4gLS0tIGEv ZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWV4eW5vcy5jDQo+ID4gKysrIGIvZHJpdmVy cy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWV4eW5vcy5jDQo+ID4gQEAgLTUxLDcgKzUxLDcgQEAN Cj4gPiAgI2RlZmluZSBQQ0lFX0VMQklfU0xWX0RCSV9FTkFCTEUgICAgICAgQklUKDIxKQ0KPiA+ DQo+ID4gIHN0cnVjdCBleHlub3NfcGNpZSB7DQo+ID4gLSAgICAgICBzdHJ1Y3QgZHdfcGNpZSAg ICAgICAgICAgICAgICAgIHBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBwY2llX3BvcnQgICAgICAg ICAgICAgICAgcHA7DQo+ID4gICAgICAgICB2b2lkIF9faW9tZW0gICAgICAgICAgICAgICAgICAg ICplbGJpX2Jhc2U7DQo+ID4gICAgICAgICBzdHJ1Y3QgY2xrICAgICAgICAgICAgICAgICAgICAg ICpjbGs7DQo+ID4gICAgICAgICBzdHJ1Y3QgY2xrICAgICAgICAgICAgICAgICAgICAgICpidXNf Y2xrOw0KPiA+IEBAIC02MSw3ICs2MSw4IEBAIHN0cnVjdCBleHlub3NfcGNpZSB7DQo+ID4NCj4g PiAgc3RhdGljIGludCBleHlub3NfcGNpZV9pbml0X2Nsa19yZXNvdXJjZXMoc3RydWN0IGV4eW5v c19wY2llICplcCkNCj4gPiAgew0KPiA+IC0gICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gZXAt PnBjaS5kZXY7DQo+ID4gKyAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9m cm9tX3BwKCZlcC0+cHApOw0KPiA+ICsgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gcGNpLT5k ZXY7DQo+ID4gICAgICAgICBpbnQgcmV0Ow0KPiA+DQo+ID4gICAgICAgICByZXQgPSBjbGtfcHJl cGFyZV9lbmFibGUoZXAtPmNsayk7DQo+ID4gQEAgLTIxNCw3ICsyMTUsOCBAQCBzdGF0aWMgdm9p ZCBleHlub3NfcGNpZV93cml0ZV9kYmkoc3RydWN0IGR3X3BjaWUNCj4gKnBjaSwgdm9pZCBfX2lv bWVtICpiYXNlLA0KPiA+ICBzdGF0aWMgaW50IGV4eW5vc19wY2llX3JkX293bl9jb25mKHN0cnVj dCBwY2lfYnVzICpidXMsIHVuc2lnbmVkIGludA0KPiBkZXZmbiwNCj4gPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludCB3aGVyZSwgaW50IHNpemUsIHUzMiAqdmFsKQ0KPiA+ ICB7DQo+ID4gLSAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3Bw KGJ1cy0+c3lzZGF0YSk7DQo+ID4gKyAgICAgICBzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9IGJ1cy0+ c3lzZGF0YTsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zy b21fcHAocHApOw0KPiA+DQo+ID4gICAgICAgICBpZiAoUENJX1NMT1QoZGV2Zm4pKSB7DQo+ID4g ICAgICAgICAgICAgICAgICp2YWwgPSB+MDsNCj4gPiBAQCAtMjI4LDcgKzIzMCw4IEBAIHN0YXRp YyBpbnQgZXh5bm9zX3BjaWVfcmRfb3duX2NvbmYoc3RydWN0IHBjaV9idXMNCj4gKmJ1cywgdW5z aWduZWQgaW50IGRldmZuLA0KPiA+ICBzdGF0aWMgaW50IGV4eW5vc19wY2llX3dyX293bl9jb25m KHN0cnVjdCBwY2lfYnVzICpidXMsIHVuc2lnbmVkIGludA0KPiBkZXZmbiwNCj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB3aGVyZSwgaW50IHNpemUsIHUzMiB2YWwp DQo+ID4gIHsNCj4gPiAtICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zy b21fcHAoYnVzLT5zeXNkYXRhKTsNCj4gPiArICAgICAgIHN0cnVjdCBwY2llX3BvcnQgKnBwID0g YnVzLT5zeXNkYXRhOw0KPiA+ICsgICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3Bj aWVfZnJvbV9wcChwcCk7DQo+ID4NCj4gPiAgICAgICAgIGlmIChQQ0lfU0xPVChkZXZmbikpDQo+ ID4gICAgICAgICAgICAgICAgIHJldHVybiBQQ0lCSU9TX0RFVklDRV9OT1RfRk9VTkQ7DQo+ID4g QEAgLTI3Niw4ICsyNzksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGR3X3BjaWVfaG9zdF9vcHMN Cj4gZXh5bm9zX3BjaWVfaG9zdF9vcHMgPSB7DQo+ID4gIHN0YXRpYyBpbnQgZXh5bm9zX2FkZF9w Y2llX3BvcnQoc3RydWN0IGV4eW5vc19wY2llICplcCwNCj4gPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlDQo+ICpwZGV2KQ0KPiA+ ICB7DQo+ID4gLSAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gJmVwLT5wY2k7DQo+ID4gLSAg ICAgICBzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9ICZwY2ktPnBwOw0KPiA+ICsgICAgICAgc3RydWN0 IHBjaWVfcG9ydCAqcHAgPSAmZXAtPnBwOw0KPiA+ICAgICAgICAgc3RydWN0IGRldmljZSAqZGV2 ID0gJnBkZXYtPmRldjsNCj4gPiAgICAgICAgIGludCByZXQ7DQo+ID4NCj4gPiBAQCAtMzE1LDYg KzMxNyw3IEBAIHN0YXRpYyBpbnQgZXh5bm9zX3BjaWVfcHJvYmUoc3RydWN0DQo+IHBsYXRmb3Jt X2RldmljZSAqcGRldikNCj4gPiAgew0KPiA+ICAgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0g JnBkZXYtPmRldjsNCj4gPiAgICAgICAgIHN0cnVjdCBleHlub3NfcGNpZSAqZXA7DQo+ID4gKyAg ICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpOw0KPiA+ICAgICAgICAgc3RydWN0IGRldmljZV9ub2Rl ICpucCA9IGRldi0+b2Zfbm9kZTsNCj4gPiAgICAgICAgIGludCByZXQ7DQo+ID4NCj4gPiBAQCAt MzIyLDggKzMyNSw5IEBAIHN0YXRpYyBpbnQgZXh5bm9zX3BjaWVfcHJvYmUoc3RydWN0DQo+IHBs YXRmb3JtX2RldmljZSAqcGRldikNCj4gPiAgICAgICAgIGlmICghZXApDQo+ID4gICAgICAgICAg ICAgICAgIHJldHVybiAtRU5PTUVNOw0KPiA+DQo+ID4gLSAgICAgICBlcC0+cGNpLmRldiA9IGRl djsNCj4gPiAtICAgICAgIGVwLT5wY2kub3BzID0gJmR3X3BjaWVfb3BzOw0KPiA+ICsgICAgICAg cGNpID0gJmVwLT5wcC5wY2llOw0KPiA+ICsgICAgICAgcGNpLT5kZXYgPSBkZXY7DQo+ID4gKyAg ICAgICBwY2ktPm9wcyA9ICZkd19wY2llX29wczsNCj4gPg0KPiA+ICAgICAgICAgZXAtPnBoeSA9 IGRldm1fb2ZfcGh5X2dldChkZXYsIG5wLCBOVUxMKTsNCj4gPiAgICAgICAgIGlmIChJU19FUlIo ZXAtPnBoeSkpDQo+ID4gQEAgLTM4MSw3ICszODUsNyBAQCBzdGF0aWMgaW50IF9fZXhpdCBleHlu b3NfcGNpZV9yZW1vdmUoc3RydWN0DQo+IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gPiAgew0K PiA+ICAgICAgICAgc3RydWN0IGV4eW5vc19wY2llICplcCA9IHBsYXRmb3JtX2dldF9kcnZkYXRh KHBkZXYpOw0KPiA+DQo+ID4gLSAgICAgICBkd19wY2llX2hvc3RfZGVpbml0KCZlcC0+cGNpLnBw KTsNCj4gPiArICAgICAgIGR3X3BjaWVfaG9zdF9kZWluaXQoJmVwLT5wcCk7DQo+ID4gICAgICAg ICBleHlub3NfcGNpZV9hc3NlcnRfY29yZV9yZXNldChlcCk7DQo+ID4gICAgICAgICBwaHlfcG93 ZXJfb2ZmKGVwLT5waHkpOw0KPiA+ICAgICAgICAgcGh5X2V4aXQoZXAtPnBoeSk7DQo+ID4gQEAg LTQwNiw4ICs0MTAsOCBAQCBzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkDQo+IGV4eW5vc19wY2ll X3N1c3BlbmRfbm9pcnEoc3RydWN0IGRldmljZSAqZGV2KQ0KPiA+ICBzdGF0aWMgaW50IF9fbWF5 YmVfdW51c2VkIGV4eW5vc19wY2llX3Jlc3VtZV9ub2lycShzdHJ1Y3QgZGV2aWNlDQo+ICpkZXYp DQo+ID4gIHsNCj4gPiAgICAgICAgIHN0cnVjdCBleHlub3NfcGNpZSAqZXAgPSBkZXZfZ2V0X2Ry dmRhdGEoZGV2KTsNCj4gPiAtICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSAmZXAtPnBjaTsN Cj4gPiAtICAgICAgIHN0cnVjdCBwY2llX3BvcnQgKnBwID0gJnBjaS0+cHA7DQo+ID4gKyAgICAg ICBzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9ICZlcC0+cHA7DQo+ID4gKyAgICAgICBzdHJ1Y3QgZHdf cGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsNCj4gPiAgICAgICAgIGludCByZXQ7 DQo+ID4NCj4gPiAgICAgICAgIHJldCA9IHJlZ3VsYXRvcl9idWxrX2VuYWJsZShBUlJBWV9TSVpF KGVwLT5zdXBwbGllcyksDQo+IGVwLT5zdXBwbGllcyk7DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2LmMNCj4gYi9kcml2ZXJzL3BjaS9jb250cm9s bGVyL2R3Yy9wY2ktaW14Ni5jDQo+ID4gaW5kZXggMGNmMTMzM2MwNDQwLi41N2E3NWEwYTBkOWYg MTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWlteDYuYw0K PiA+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2LmMNCj4gPiBAQCAt NjEsNyArNjEsNyBAQCBzdHJ1Y3QgaW14Nl9wY2llX2RydmRhdGEgew0KPiA+ICB9Ow0KPiA+DQo+ ID4gIHN0cnVjdCBpbXg2X3BjaWUgew0KPiA+IC0gICAgICAgc3RydWN0IGR3X3BjaWUgICAgICAg ICAgKnBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBwY2llX3BvcnQgICAgICAgICpwcDsNCj4gPiAg ICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgIHJlc2V0X2dwaW87DQo+ID4gICAgICAgICBi b29sICAgICAgICAgICAgICAgICAgICBncGlvX2FjdGl2ZV9oaWdoOw0KPiA+ICAgICAgICAgc3Ry dWN0IGNsayAgICAgICAgICAgICAgKnBjaWVfYnVzOw0KPiA+IEBAIC0xNDMsNyArMTQzLDcgQEAg c3RydWN0IGlteDZfcGNpZSB7DQo+ID4NCj4gPiAgc3RhdGljIGludCBwY2llX3BoeV9wb2xsX2Fj ayhzdHJ1Y3QgaW14Nl9wY2llICppbXg2X3BjaWUsIGJvb2wgZXhwX3ZhbCkNCj4gPiAgew0KPiA+ IC0gICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IGlteDZfcGNpZS0+cGNpOw0KPiA+ICsgICAg ICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChpbXg2X3BjaWUtPnBw KTsNCj4gPiAgICAgICAgIGJvb2wgdmFsOw0KPiA+ICAgICAgICAgdTMyIG1heF9pdGVyYXRpb25z ID0gMTA7DQo+ID4gICAgICAgICB1MzIgd2FpdF9jb3VudGVyID0gMDsNCj4gPiBAQCAtMTY0LDcg KzE2NCw3IEBAIHN0YXRpYyBpbnQgcGNpZV9waHlfcG9sbF9hY2soc3RydWN0IGlteDZfcGNpZQ0K PiAqaW14Nl9wY2llLCBib29sIGV4cF92YWwpDQo+ID4NCj4gPiAgc3RhdGljIGludCBwY2llX3Bo eV93YWl0X2FjayhzdHJ1Y3QgaW14Nl9wY2llICppbXg2X3BjaWUsIGludCBhZGRyKQ0KPiA+ICB7 DQo+ID4gLSAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gaW14Nl9wY2llLT5wY2k7DQo+ID4g KyAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKGlteDZfcGNp ZS0+cHApOw0KPiA+ICAgICAgICAgdTMyIHZhbDsNCj4gPiAgICAgICAgIGludCByZXQ7DQo+ID4N Cj4gPiBAQCAtMTg3LDcgKzE4Nyw3IEBAIHN0YXRpYyBpbnQgcGNpZV9waHlfd2FpdF9hY2soc3Ry dWN0IGlteDZfcGNpZQ0KPiAqaW14Nl9wY2llLCBpbnQgYWRkcikNCj4gPiAgLyogUmVhZCBmcm9t IHRoZSAxNi1iaXQgUENJZSBQSFkgY29udHJvbCByZWdpc3RlcnMgKG5vdCBtZW1vcnktbWFwcGVk KQ0KPiAqLw0KPiA+ICBzdGF0aWMgaW50IHBjaWVfcGh5X3JlYWQoc3RydWN0IGlteDZfcGNpZSAq aW14Nl9wY2llLCBpbnQgYWRkciwgdTE2DQo+ICpkYXRhKQ0KPiA+ICB7DQo+ID4gLSAgICAgICBz dHJ1Y3QgZHdfcGNpZSAqcGNpID0gaW14Nl9wY2llLT5wY2k7DQo+ID4gKyAgICAgICBzdHJ1Y3Qg ZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKGlteDZfcGNpZS0+cHApOw0KPiA+ICAg ICAgICAgdTMyIHBoeV9jdGw7DQo+ID4gICAgICAgICBpbnQgcmV0Ow0KPiA+DQo+ID4gQEAgLTIx Myw3ICsyMTMsNyBAQCBzdGF0aWMgaW50IHBjaWVfcGh5X3JlYWQoc3RydWN0IGlteDZfcGNpZQ0K PiAqaW14Nl9wY2llLCBpbnQgYWRkciwgdTE2ICpkYXRhKQ0KPiA+DQo+ID4gIHN0YXRpYyBpbnQg cGNpZV9waHlfd3JpdGUoc3RydWN0IGlteDZfcGNpZSAqaW14Nl9wY2llLCBpbnQgYWRkciwgdTE2 IGRhdGEpDQo+ID4gIHsNCj4gPiAtICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSBpbXg2X3Bj aWUtPnBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zy b21fcHAoaW14Nl9wY2llLT5wcCk7DQo+ID4gICAgICAgICB1MzIgdmFyOw0KPiA+ICAgICAgICAg aW50IHJldDsNCj4gPg0KPiA+IEBAIC0zNjQsNyArMzY0LDggQEAgc3RhdGljIGludCBpbXg2X3Bj aWVfYXR0YWNoX3BkKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gPg0KPiA+ICBzdGF0aWMgdm9pZCBp bXg2X3BjaWVfYXNzZXJ0X2NvcmVfcmVzZXQoc3RydWN0IGlteDZfcGNpZSAqaW14Nl9wY2llKQ0K PiA+ICB7DQo+ID4gLSAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSBpbXg2X3BjaWUtPnBjaS0+ ZGV2Ow0KPiA+ICsgICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9w cChpbXg2X3BjaWUtPnBwKTsNCj4gPiArICAgICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9IHBjaS0+ ZGV2Ow0KPiA+DQo+ID4gICAgICAgICBzd2l0Y2ggKGlteDZfcGNpZS0+ZHJ2ZGF0YS0+dmFyaWFu dCkgew0KPiA+ICAgICAgICAgY2FzZSBJTVg3RDoNCj4gPiBAQCAtNDExLDcgKzQxMiw3IEBAIHN0 YXRpYyB1bnNpZ25lZCBpbnQgaW14Nl9wY2llX2dycF9vZmZzZXQoY29uc3QNCj4gc3RydWN0IGlt eDZfcGNpZSAqaW14Nl9wY2llKQ0KPiA+DQo+ID4gIHN0YXRpYyBpbnQgaW14Nl9wY2llX2VuYWJs ZV9yZWZfY2xrKHN0cnVjdCBpbXg2X3BjaWUgKmlteDZfcGNpZSkNCj4gPiAgew0KPiA+IC0gICAg ICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IGlteDZfcGNpZS0+cGNpOw0KPiA+ICsgICAgICAgc3Ry dWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChpbXg2X3BjaWUtPnBwKTsNCj4g PiAgICAgICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9IHBjaS0+ZGV2Ow0KPiA+ICAgICAgICAgdW5z aWduZWQgaW50IG9mZnNldDsNCj4gPiAgICAgICAgIGludCByZXQgPSAwOw0KPiA+IEBAIC00NzEs NyArNDcyLDggQEAgc3RhdGljIGludCBpbXg2X3BjaWVfZW5hYmxlX3JlZl9jbGsoc3RydWN0DQo+ IGlteDZfcGNpZSAqaW14Nl9wY2llKQ0KPiA+ICBzdGF0aWMgdm9pZCBpbXg3ZF9wY2llX3dhaXRf Zm9yX3BoeV9wbGxfbG9jayhzdHJ1Y3QgaW14Nl9wY2llDQo+ICppbXg2X3BjaWUpDQo+ID4gIHsN Cj4gPiAgICAgICAgIHUzMiB2YWw7DQo+ID4gLSAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSBp bXg2X3BjaWUtPnBjaS0+ZGV2Ow0KPiA+ICsgICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRv X2R3X3BjaWVfZnJvbV9wcChpbXg2X3BjaWUtPnBwKTsNCj4gPiArICAgICAgIHN0cnVjdCBkZXZp Y2UgKmRldiA9IHBjaS0+ZGV2Ow0KPiA+DQo+ID4gICAgICAgICBpZiAocmVnbWFwX3JlYWRfcG9s bF90aW1lb3V0KGlteDZfcGNpZS0+aW9tdXhjX2dwciwNCj4gPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSU9NVVhDX0dQUjIyLCB2YWwsDQo+ID4gQEAgLTQ4Myw3ICs0ODUs NyBAQCBzdGF0aWMgdm9pZA0KPiBpbXg3ZF9wY2llX3dhaXRfZm9yX3BoeV9wbGxfbG9jayhzdHJ1 Y3QgaW14Nl9wY2llICppbXg2X3BjaWUpDQo+ID4NCj4gPiAgc3RhdGljIHZvaWQgaW14Nl9wY2ll X2RlYXNzZXJ0X2NvcmVfcmVzZXQoc3RydWN0IGlteDZfcGNpZSAqaW14Nl9wY2llKQ0KPiA+ICB7 DQo+ID4gLSAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gaW14Nl9wY2llLT5wY2k7DQo+ID4g KyAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKGlteDZfcGNp ZS0+cHApOw0KPiA+ICAgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gcGNpLT5kZXY7DQo+ID4g ICAgICAgICBpbnQgcmV0Ow0KPiA+DQo+ID4gQEAgLTY2Myw2ICs2NjUsNyBAQCBzdGF0aWMgdm9p ZCBpbXg2X3BjaWVfaW5pdF9waHkoc3RydWN0IGlteDZfcGNpZQ0KPiAqaW14Nl9wY2llKQ0KPiA+ ICBzdGF0aWMgaW50IGlteDZfc2V0dXBfcGh5X21wbGwoc3RydWN0IGlteDZfcGNpZSAqaW14Nl9w Y2llKQ0KPiA+ICB7DQo+ID4gICAgICAgICB1bnNpZ25lZCBsb25nIHBoeV9yYXRlID0gY2xrX2dl dF9yYXRlKGlteDZfcGNpZS0+cGNpZV9waHkpOw0KPiA+ICsgICAgICAgc3RydWN0IGR3X3BjaWUg KnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChpbXg2X3BjaWUtPnBwKTsNCj4gPiAgICAgICAgIGlu dCBtdWx0LCBkaXY7DQo+ID4gICAgICAgICB1MTYgdmFsOw0KPiA+DQo+ID4gQEAgLTY4NSw3ICs2 ODgsNyBAQCBzdGF0aWMgaW50IGlteDZfc2V0dXBfcGh5X21wbGwoc3RydWN0IGlteDZfcGNpZQ0K PiAqaW14Nl9wY2llKQ0KPiA+ICAgICAgICAgICAgICAgICBkaXYgPSAxOw0KPiA+ICAgICAgICAg ICAgICAgICBicmVhazsNCj4gPiAgICAgICAgIGRlZmF1bHQ6DQo+ID4gLSAgICAgICAgICAgICAg IGRldl9lcnIoaW14Nl9wY2llLT5wY2ktPmRldiwNCj4gPiArICAgICAgICAgICAgICAgZGV2X2Vy cihwY2ktPmRldiwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAiVW5zdXBwb3J0ZWQgUEhZ IHJlZmVyZW5jZSBjbG9jaw0KPiByYXRlICVsdVxuIiwgcGh5X3JhdGUpOw0KPiA+ICAgICAgICAg ICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gPiAgICAgICAgIH0NCj4gPiBAQCAtNzA5LDcgKzcx Miw3IEBAIHN0YXRpYyBpbnQgaW14Nl9zZXR1cF9waHlfbXBsbChzdHJ1Y3QgaW14Nl9wY2llDQo+ ICppbXg2X3BjaWUpDQo+ID4NCj4gPiAgc3RhdGljIGludCBpbXg2X3BjaWVfd2FpdF9mb3Jfc3Bl ZWRfY2hhbmdlKHN0cnVjdCBpbXg2X3BjaWUNCj4gKmlteDZfcGNpZSkNCj4gPiAgew0KPiA+IC0g ICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IGlteDZfcGNpZS0+cGNpOw0KPiA+ICsgICAgICAg c3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChpbXg2X3BjaWUtPnBwKTsN Cj4gPiAgICAgICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9IHBjaS0+ZGV2Ow0KPiA+ICAgICAgICAg dTMyIHRtcDsNCj4gPiAgICAgICAgIHVuc2lnbmVkIGludCByZXRyaWVzOw0KPiA+IEBAIC04Njcs NyArODcwLDggQEAgc3RhdGljIHZvaWQgaW14Nl9wY2llX2x0c3NtX2Rpc2FibGUoc3RydWN0IGRl dmljZQ0KPiAqZGV2KQ0KPiA+DQo+ID4gIHN0YXRpYyB2b2lkIGlteDZfcGNpZV9wbV90dXJub2Zm KHN0cnVjdCBpbXg2X3BjaWUgKmlteDZfcGNpZSkNCj4gPiAgew0KPiA+IC0gICAgICAgc3RydWN0 IGRldmljZSAqZGV2ID0gaW14Nl9wY2llLT5wY2ktPmRldjsNCj4gPiArICAgICAgIHN0cnVjdCBk d19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAoaW14Nl9wY2llLT5wcCk7DQo+ID4gKyAg ICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwY2ktPmRldjsNCj4gPg0KPiA+ICAgICAgICAgLyog U29tZSB2YXJpYW50cyBoYXZlIGEgdHVybm9mZiByZXNldCBpbiBEVCAqLw0KPiA+ICAgICAgICAg aWYgKGlteDZfcGNpZS0+dHVybm9mZl9yZXNldCkgew0KPiA+IEBAIC05NDIsNyArOTQ2LDggQEAg c3RhdGljIGludCBpbXg2X3BjaWVfcmVzdW1lX25vaXJxKHN0cnVjdCBkZXZpY2UNCj4gKmRldikN Cj4gPiAgew0KPiA+ICAgICAgICAgaW50IHJldDsNCj4gPiAgICAgICAgIHN0cnVjdCBpbXg2X3Bj aWUgKmlteDZfcGNpZSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiA+IC0gICAgICAgc3RydWN0 IHBjaWVfcG9ydCAqcHAgPSAmaW14Nl9wY2llLT5wY2ktPnBwOw0KPiA+ICsgICAgICAgc3RydWN0 IHBjaWVfcG9ydCAqcHAgPSBpbXg2X3BjaWUtPnBwOw0KPiA+ICsgICAgICAgc3RydWN0IGR3X3Bj aWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7DQo+ID4NCj4gPiAgICAgICAgIGlmICgh KGlteDZfcGNpZS0+ZHJ2ZGF0YS0+ZmxhZ3MgJg0KPiBJTVg2X1BDSUVfRkxBR19TVVBQT1JUU19T VVNQRU5EKSkNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ID4gQEAgLTk1Miw3ICs5 NTcsNyBAQCBzdGF0aWMgaW50IGlteDZfcGNpZV9yZXN1bWVfbm9pcnEoc3RydWN0IGRldmljZQ0K PiAqZGV2KQ0KPiA+ICAgICAgICAgaW14Nl9wY2llX2RlYXNzZXJ0X2NvcmVfcmVzZXQoaW14Nl9w Y2llKTsNCj4gPiAgICAgICAgIGR3X3BjaWVfc2V0dXBfcmMocHApOw0KPiA+DQo+ID4gLSAgICAg ICByZXQgPSBpbXg2X3BjaWVfc3RhcnRfbGluayhpbXg2X3BjaWUtPnBjaSk7DQo+ID4gKyAgICAg ICByZXQgPSBpbXg2X3BjaWVfc3RhcnRfbGluayhwY2kpOw0KPiA+ICAgICAgICAgaWYgKHJldCA8 IDApDQo+ID4gICAgICAgICAgICAgICAgIGRldl9pbmZvKGRldiwgInBjaWUgbGluayBpcyBkb3du IGFmdGVyIHJlc3VtZS5cbiIpOw0KPiA+DQo+ID4gQEAgLTk2OCw2ICs5NzMsNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGRldl9wbV9vcHMNCj4gaW14Nl9wY2llX3BtX29wcyA9IHsNCj4gPiAgc3Rh dGljIGludCBpbXg2X3BjaWVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4g PiAgew0KPiA+ICAgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsNCj4gPiAr ICAgICAgIHN0cnVjdCBwY2llX3BvcnQgKnBwOw0KPiA+ICAgICAgICAgc3RydWN0IGR3X3BjaWUg KnBjaTsNCj4gPiAgICAgICAgIHN0cnVjdCBpbXg2X3BjaWUgKmlteDZfcGNpZTsNCj4gPiAgICAg ICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnA7DQo+ID4gQEAgLTk4MCwxNSArOTg2LDE3IEBAIHN0 YXRpYyBpbnQgaW14Nl9wY2llX3Byb2JlKHN0cnVjdA0KPiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp DQo+ID4gICAgICAgICBpZiAoIWlteDZfcGNpZSkNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJu IC1FTk9NRU07DQo+ID4NCj4gPiAtICAgICAgIHBjaSA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVv ZigqcGNpKSwgR0ZQX0tFUk5FTCk7DQo+ID4gLSAgICAgICBpZiAoIXBjaSkNCj4gPiArICAgICAg IHBwID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpwcCksIEdGUF9LRVJORUwpOw0KPiA+ICsg ICAgICAgaWYgKCFwcCkNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ID4N Cj4gPiArICAgICAgIHBjaSA9ICZwcC0+cGNpZTsNCj4gPiAgICAgICAgIHBjaS0+ZGV2ID0gZGV2 Ow0KPiA+ICAgICAgICAgcGNpLT5vcHMgPSAmZHdfcGNpZV9vcHM7DQo+ID4gLSAgICAgICBwY2kt PnBwLm9wcyA9ICZpbXg2X3BjaWVfaG9zdF9vcHM7DQo+ID4gKyAgICAgICBwcC0+b3BzID0gJmlt eDZfcGNpZV9ob3N0X29wczsNCj4gPiArDQo+ID4gKyAgICAgICBpbXg2X3BjaWUtPnBwID0gcHA7 DQo+ID4NCj4gPiAtICAgICAgIGlteDZfcGNpZS0+cGNpID0gcGNpOw0KPiA+ICAgICAgICAgaW14 Nl9wY2llLT5kcnZkYXRhID0gb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKGRldik7DQo+ID4NCj4g PiAgICAgICAgIC8qIEZpbmQgdGhlIFBIWSBpZiBvbmUgaXMgZGVmaW5lZCwgb25seSBpbXg3ZCB1 c2VzIGl0ICovDQo+ID4gQEAgLTExMzYsNyArMTE0NCw3IEBAIHN0YXRpYyBpbnQgaW14Nl9wY2ll X3Byb2JlKHN0cnVjdA0KPiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gICAgICAgICBpZiAo cmV0KQ0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiA+DQo+ID4gLSAgICAgICBy ZXQgPSBkd19wY2llX2hvc3RfaW5pdCgmcGNpLT5wcCk7DQo+ID4gKyAgICAgICByZXQgPSBkd19w Y2llX2hvc3RfaW5pdChwcCk7DQo+ID4gICAgICAgICBpZiAocmV0IDwgMCkNCj4gPiAgICAgICAg ICAgICAgICAgcmV0dXJuIHJldDsNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9j b250cm9sbGVyL2R3Yy9wY2kta2V5c3RvbmUuYw0KPiBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIv ZHdjL3BjaS1rZXlzdG9uZS5jDQo+ID4gaW5kZXggNTNhYTM1Y2IzYTQ5Li5lMTFjYjdlZmFkNWMg MTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWtleXN0b25l LmMNCj4gPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2kta2V5c3RvbmUuYw0K PiA+IEBAIC0xMTMsNyArMTEzLDggQEAgc3RydWN0IGtzX3BjaWVfb2ZfZGF0YSB7DQo+ID4gIH07 DQo+ID4NCj4gPiAgc3RydWN0IGtleXN0b25lX3BjaWUgew0KPiA+IC0gICAgICAgc3RydWN0IGR3 X3BjaWUgICAgICAgICAgKnBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBwY2llX3BvcnQgICAgICAg ICpwcDsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llX2VwICAgICAgICplcDsNCj4gPiAgICAg ICAgIC8qIFBDSSBEZXZpY2UgSUQgKi8NCj4gPiAgICAgICAgIHUzMiAgICAgICAgICAgICAgICAg ICAgIGRldmljZV9pZDsNCj4gPiAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgIGxlZ2Fj eV9ob3N0X2lycXNbUENJX05VTV9JTlRYXTsNCj4gPiBAQCAtMjU2LDcgKzI1Nyw3IEBAIHN0YXRp YyBpbnQga3NfcGNpZV9tc2lfaG9zdF9pbml0KHN0cnVjdCBwY2llX3BvcnQNCj4gKnBwKQ0KPiA+ ICBzdGF0aWMgdm9pZCBrc19wY2llX2hhbmRsZV9sZWdhY3lfaXJxKHN0cnVjdCBrZXlzdG9uZV9w Y2llICprc19wY2llLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50IG9mZnNldCkNCj4gPiAgew0KPiA+IC0gICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IGtz X3BjaWUtPnBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2ll X2Zyb21fcHAoa3NfcGNpZS0+cHApOw0KPiA+ICAgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0g cGNpLT5kZXY7DQo+ID4gICAgICAgICB1MzIgcGVuZGluZzsNCj4gPiAgICAgICAgIGludCB2aXJx Ow0KPiA+IEBAIC0yODEsNyArMjgyLDggQEAgc3RhdGljIHZvaWQga3NfcGNpZV9lbmFibGVfZXJy b3JfaXJxKHN0cnVjdA0KPiBrZXlzdG9uZV9wY2llICprc19wY2llKQ0KPiA+ICBzdGF0aWMgaXJx cmV0dXJuX3Qga3NfcGNpZV9oYW5kbGVfZXJyb3JfaXJxKHN0cnVjdCBrZXlzdG9uZV9wY2llDQo+ ICprc19wY2llKQ0KPiA+ICB7DQo+ID4gICAgICAgICB1MzIgcmVnOw0KPiA+IC0gICAgICAgc3Ry dWN0IGRldmljZSAqZGV2ID0ga3NfcGNpZS0+cGNpLT5kZXY7DQo+ID4gKyAgICAgICBzdHJ1Y3Qg ZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKGtzX3BjaWUtPnBwKTsNCj4gPiArICAg ICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9IHBjaS0+ZGV2Ow0KPiA+DQo+ID4gICAgICAgICByZWcg PSBrc19wY2llX2FwcF9yZWFkbChrc19wY2llLCBFUlJfSVJRX1NUQVRVUyk7DQo+ID4gICAgICAg ICBpZiAoIXJlZykNCj4gPiBAQCAtMzg4LDggKzM5MCw4IEBAIHN0YXRpYyB2b2lkIGtzX3BjaWVf c2V0dXBfcmNfYXBwX3JlZ3Moc3RydWN0DQo+IGtleXN0b25lX3BjaWUgKmtzX3BjaWUpDQo+ID4g IHsNCj4gPiAgICAgICAgIHUzMiB2YWw7DQo+ID4gICAgICAgICB1MzIgbnVtX3ZpZXdwb3J0ID0g a3NfcGNpZS0+bnVtX3ZpZXdwb3J0Ow0KPiA+IC0gICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9 IGtzX3BjaWUtPnBjaTsNCj4gPiAtICAgICAgIHN0cnVjdCBwY2llX3BvcnQgKnBwID0gJnBjaS0+ cHA7DQo+ID4gKyAgICAgICBzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9IGtzX3BjaWUtPnBwOw0KPiA+ ICsgICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7DQo+ ID4gICAgICAgICB1NjQgc3RhcnQsIGVuZDsNCj4gPiAgICAgICAgIHN0cnVjdCByZXNvdXJjZSAq bWVtOw0KPiA+ICAgICAgICAgaW50IGk7DQo+ID4gQEAgLTU2OSw4ICs1NzEsOCBAQCBzdGF0aWMg dm9pZCBrc19wY2llX21zaV9pcnFfaGFuZGxlcihzdHJ1Y3QgaXJxX2Rlc2MNCj4gKmRlc2MpDQo+ ID4gICAgICAgICB1bnNpZ25lZCBpbnQgaXJxID0gZGVzYy0+aXJxX2RhdGEuaHdpcnE7DQo+ID4g ICAgICAgICBzdHJ1Y3Qga2V5c3RvbmVfcGNpZSAqa3NfcGNpZSA9DQo+IGlycV9kZXNjX2dldF9o YW5kbGVyX2RhdGEoZGVzYyk7DQo+ID4gICAgICAgICB1MzIgb2Zmc2V0ID0gaXJxIC0ga3NfcGNp ZS0+bXNpX2hvc3RfaXJxOw0KPiA+IC0gICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IGtzX3Bj aWUtPnBjaTsNCj4gPiAtICAgICAgIHN0cnVjdCBwY2llX3BvcnQgKnBwID0gJnBjaS0+cHA7DQo+ ID4gKyAgICAgICBzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9IGtzX3BjaWUtPnBwOw0KPiA+ICsgICAg ICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7DQo+ID4gICAg ICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwY2ktPmRldjsNCj4gPiAgICAgICAgIHN0cnVjdCBp cnFfY2hpcCAqY2hpcCA9IGlycV9kZXNjX2dldF9jaGlwKGRlc2MpOw0KPiA+ICAgICAgICAgdTMy IHZlY3RvciwgdmlycSwgcmVnLCBwb3M7DQo+ID4gQEAgLTYxNSw3ICs2MTcsNyBAQCBzdGF0aWMg dm9pZCBrc19wY2llX2xlZ2FjeV9pcnFfaGFuZGxlcihzdHJ1Y3QNCj4gaXJxX2Rlc2MgKmRlc2Mp DQo+ID4gIHsNCj4gPiAgICAgICAgIHVuc2lnbmVkIGludCBpcnEgPSBpcnFfZGVzY19nZXRfaXJx KGRlc2MpOw0KPiA+ICAgICAgICAgc3RydWN0IGtleXN0b25lX3BjaWUgKmtzX3BjaWUgPQ0KPiBp cnFfZGVzY19nZXRfaGFuZGxlcl9kYXRhKGRlc2MpOw0KPiA+IC0gICAgICAgc3RydWN0IGR3X3Bj aWUgKnBjaSA9IGtzX3BjaWUtPnBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kg PSB0b19kd19wY2llX2Zyb21fcHAoa3NfcGNpZS0+cHApOw0KPiA+ICAgICAgICAgc3RydWN0IGRl dmljZSAqZGV2ID0gcGNpLT5kZXY7DQo+ID4gICAgICAgICB1MzIgaXJxX29mZnNldCA9IGlycSAt IGtzX3BjaWUtPmxlZ2FjeV9ob3N0X2lycXNbMF07DQo+ID4gICAgICAgICBzdHJ1Y3QgaXJxX2No aXAgKmNoaXAgPSBpcnFfZGVzY19nZXRfY2hpcChkZXNjKTsNCj4gPiBAQCAtNjM0LDcgKzYzNiw4 IEBAIHN0YXRpYyB2b2lkIGtzX3BjaWVfbGVnYWN5X2lycV9oYW5kbGVyKHN0cnVjdA0KPiBpcnFf ZGVzYyAqZGVzYykNCj4gPg0KPiA+ICBzdGF0aWMgaW50IGtzX3BjaWVfY29uZmlnX21zaV9pcnEo c3RydWN0IGtleXN0b25lX3BjaWUgKmtzX3BjaWUpDQo+ID4gIHsNCj4gPiAtICAgICAgIHN0cnVj dCBkZXZpY2UgKmRldiA9IGtzX3BjaWUtPnBjaS0+ZGV2Ow0KPiA+ICsgICAgICAgc3RydWN0IGR3 X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChrc19wY2llLT5wcCk7DQo+ID4gKyAgICAg ICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwY2ktPmRldjsNCj4gPiAgICAgICAgIHN0cnVjdCBkZXZp Y2Vfbm9kZSAqbnAgPSBrc19wY2llLT5ucDsNCj4gPiAgICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9k ZSAqaW50Y19ucDsNCj4gPiAgICAgICAgIHN0cnVjdCBpcnFfZGF0YSAqaXJxX2RhdGE7DQo+ID4g QEAgLTY4OCw3ICs2OTEsOCBAQCBzdGF0aWMgaW50IGtzX3BjaWVfY29uZmlnX21zaV9pcnEoc3Ry dWN0DQo+IGtleXN0b25lX3BjaWUgKmtzX3BjaWUpDQo+ID4NCj4gPiAgc3RhdGljIGludCBrc19w Y2llX2NvbmZpZ19sZWdhY3lfaXJxKHN0cnVjdCBrZXlzdG9uZV9wY2llICprc19wY2llKQ0KPiA+ ICB7DQo+ID4gLSAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSBrc19wY2llLT5wY2ktPmRldjsN Cj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAoa3Nf cGNpZS0+cHApOw0KPiA+ICsgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gcGNpLT5kZXY7DQo+ ID4gICAgICAgICBzdHJ1Y3QgaXJxX2RvbWFpbiAqbGVnYWN5X2lycV9kb21haW47DQo+ID4gICAg ICAgICBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0ga3NfcGNpZS0+bnA7DQo+ID4gICAgICAgICBz dHJ1Y3QgZGV2aWNlX25vZGUgKmludGNfbnA7DQo+ID4gQEAgLTc3MSw3ICs3NzUsNyBAQCBzdGF0 aWMgaW50IF9faW5pdCBrc19wY2llX2luaXRfaWQoc3RydWN0DQo+IGtleXN0b25lX3BjaWUgKmtz X3BjaWUpDQo+ID4gICAgICAgICBpbnQgcmV0Ow0KPiA+ICAgICAgICAgdW5zaWduZWQgaW50IGlk Ow0KPiA+ICAgICAgICAgc3RydWN0IHJlZ21hcCAqZGV2Y3RybF9yZWdzOw0KPiA+IC0gICAgICAg c3RydWN0IGR3X3BjaWUgKnBjaSA9IGtzX3BjaWUtPnBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBk d19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAoa3NfcGNpZS0+cHApOw0KPiA+ICAgICAg ICAgc3RydWN0IGRldmljZSAqZGV2ID0gcGNpLT5kZXY7DQo+ID4gICAgICAgICBzdHJ1Y3QgZGV2 aWNlX25vZGUgKm5wID0gZGV2LT5vZl9ub2RlOw0KPiA+DQo+ID4gQEAgLTg3NSw3ICs4NzksNyBA QCBzdGF0aWMgdm9pZCBrc19wY2llX2FtNjU0X2VwX2luaXQoc3RydWN0DQo+IGR3X3BjaWVfZXAg KmVwKQ0KPiA+DQo+ID4gIHN0YXRpYyB2b2lkIGtzX3BjaWVfYW02NTRfcmFpc2VfbGVnYWN5X2ly cShzdHJ1Y3Qga2V5c3RvbmVfcGNpZQ0KPiAqa3NfcGNpZSkNCj4gPiAgew0KPiA+IC0gICAgICAg c3RydWN0IGR3X3BjaWUgKnBjaSA9IGtzX3BjaWUtPnBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBk d19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fZXAoa3NfcGNpZS0+ZXApOw0KPiA+ICAgICAg ICAgdTggaW50X3BpbjsNCj4gPg0KPiA+ICAgICAgICAgaW50X3BpbiA9IGR3X3BjaWVfcmVhZGJf ZGJpKHBjaSwgUENJX0lOVEVSUlVQVF9QSU4pOw0KPiA+IEBAIC0xMDg3LDYgKzEwOTEsOCBAQCBz dGF0aWMgaW50IF9faW5pdCBrc19wY2llX3Byb2JlKHN0cnVjdA0KPiBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpDQo+ID4gICAgICAgICBjb25zdCBzdHJ1Y3Qga3NfcGNpZV9vZl9kYXRhICpkYXRhOw0K PiA+ICAgICAgICAgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCAqbWF0Y2g7DQo+ID4gICAgICAg ICBlbnVtIGR3X3BjaWVfZGV2aWNlX21vZGUgbW9kZTsNCj4gPiArICAgICAgIHN0cnVjdCBkd19w Y2llX2VwICplcDsNCj4gPiArICAgICAgIHN0cnVjdCBwY2llX3BvcnQgKnBwOw0KPiA+ICAgICAg ICAgc3RydWN0IGR3X3BjaWUgKnBjaTsNCj4gPiAgICAgICAgIHN0cnVjdCBrZXlzdG9uZV9wY2ll ICprc19wY2llOw0KPiA+ICAgICAgICAgc3RydWN0IGRldmljZV9saW5rICoqbGluazsNCj4gPiBA QCAtMTExNiwxMCArMTEyMiw2IEBAIHN0YXRpYyBpbnQgX19pbml0IGtzX3BjaWVfcHJvYmUoc3Ry dWN0DQo+IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gPiAgICAgICAgIGlmICgha3NfcGNpZSkN Cj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ID4NCj4gPiAtICAgICAgIHBj aSA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcGNpKSwgR0ZQX0tFUk5FTCk7DQo+ID4gLSAg ICAgICBpZiAoIXBjaSkNCj4gPiAtICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ID4g LQ0KPiA+ICAgICAgICAgcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlX2J5bmFtZShwZGV2LCBJ T1JFU09VUkNFX01FTSwNCj4gImFwcCIpOw0KPiA+ICAgICAgICAga3NfcGNpZS0+dmFfYXBwX2Jh c2UgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoZGV2LCByZXMpOw0KPiA+ICAgICAgICAgaWYgKElT X0VSUihrc19wY2llLT52YV9hcHBfYmFzZSkpDQo+ID4gQEAgLTExMzUsMTIgKzExMzcsNiBAQCBz dGF0aWMgaW50IF9faW5pdCBrc19wY2llX3Byb2JlKHN0cnVjdA0KPiBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpDQo+ID4gICAgICAgICBpZiAob2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUobnAsICJ0aSxh bTY1NC1wY2llLXJjIikpDQo+ID4gICAgICAgICAgICAgICAgIGtzX3BjaWUtPmlzX2FtNiA9IHRy dWU7DQo+ID4NCj4gPiAtICAgICAgIHBjaS0+ZGJpX2Jhc2UgPSBiYXNlOw0KPiA+IC0gICAgICAg cGNpLT5kYmlfYmFzZTIgPSBiYXNlOw0KPiA+IC0gICAgICAgcGNpLT5kZXYgPSBkZXY7DQo+ID4g LSAgICAgICBwY2ktPm9wcyA9ICZrc19wY2llX2R3X3BjaWVfb3BzOw0KPiA+IC0gICAgICAgcGNp LT52ZXJzaW9uID0gdmVyc2lvbjsNCj4gPiAtDQo+ID4gICAgICAgICBpcnEgPSBwbGF0Zm9ybV9n ZXRfaXJxKHBkZXYsIDApOw0KPiA+ICAgICAgICAgaWYgKGlycSA8IDApDQo+ID4gICAgICAgICAg ICAgICAgIHJldHVybiBpcnE7DQo+ID4gQEAgLTExODQsNyArMTE4MCw2IEBAIHN0YXRpYyBpbnQg X19pbml0IGtzX3BjaWVfcHJvYmUoc3RydWN0DQo+IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4g PiAgICAgICAgIH0NCj4gPg0KPiA+ICAgICAgICAga3NfcGNpZS0+bnAgPSBucDsNCj4gPiAtICAg ICAgIGtzX3BjaWUtPnBjaSA9IHBjaTsNCj4gPiAgICAgICAgIGtzX3BjaWUtPmxpbmsgPSBsaW5r Ow0KPiA+ICAgICAgICAga3NfcGNpZS0+bnVtX2xhbmVzID0gbnVtX2xhbmVzOw0KPiA+ICAgICAg ICAga3NfcGNpZS0+cGh5ID0gcGh5Ow0KPiA+IEBAIC0xMjEyLDcgKzEyMDcsNyBAQCBzdGF0aWMg aW50IF9faW5pdCBrc19wY2llX3Byb2JlKHN0cnVjdA0KPiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp DQo+ID4gICAgICAgICAgICAgICAgIGdvdG8gZXJyX2dldF9zeW5jOw0KPiA+ICAgICAgICAgfQ0K PiA+DQo+ID4gLSAgICAgICBpZiAocGNpLT52ZXJzaW9uID49IDB4NDgwQSkNCj4gPiArICAgICAg IGlmICh2ZXJzaW9uID49IDB4NDgwQSkNCj4gPiAgICAgICAgICAgICAgICAgcmV0ID0ga3NfcGNp ZV9hbTY1NF9zZXRfbW9kZShkZXYsIG1vZGUpOw0KPiA+ICAgICAgICAgZWxzZQ0KPiA+ICAgICAg ICAgICAgICAgICByZXQgPSBrc19wY2llX3NldF9tb2RlKGRldik7DQo+ID4gQEAgLTEyMjEsNiAr MTIxNiwyMCBAQCBzdGF0aWMgaW50IF9faW5pdCBrc19wY2llX3Byb2JlKHN0cnVjdA0KPiBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4NCj4gPiAgICAgICAgIHN3aXRjaCAobW9kZSkgew0KPiA+ ICAgICAgICAgY2FzZSBEV19QQ0lFX1JDX1RZUEU6DQo+ID4gKyAgICAgICAgICAgICAgIHBwID0g ZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpwcCksIEdGUF9LRVJORUwpOw0KPiA+ICsgICAgICAg ICAgICAgICBpZiAoIXBwKSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVO T01FTTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycl9nZXRfc3luYzsNCj4g PiArICAgICAgICAgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAga3NfcGNpZS0+ cHAgPSBwcDsNCj4gPiArICAgICAgICAgICAgICAgcGNpID0gJnBwLT5wY2llOw0KPiA+ICsgICAg ICAgICAgICAgICBwY2ktPmRiaV9iYXNlID0gYmFzZTsNCj4gPiArICAgICAgICAgICAgICAgcGNp LT5kYmlfYmFzZTIgPSBiYXNlOw0KPiA+ICsgICAgICAgICAgICAgICBwY2ktPmRldiA9IGRldjsN Cj4gPiArICAgICAgICAgICAgICAgcGNpLT5vcHMgPSAma3NfcGNpZV9kd19wY2llX29wczsNCj4g PiArICAgICAgICAgICAgICAgcGNpLT52ZXJzaW9uID0gdmVyc2lvbjsNCj4gPiArDQo+ID4gICAg ICAgICAgICAgICAgIGlmICghSVNfRU5BQkxFRChDT05GSUdfUENJX0tFWVNUT05FX0hPU1QpKSB7 DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVOT0RFVjsNCj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICBnb3RvIGVycl9nZXRfc3luYzsNCj4gPiBAQCAtMTI0NiwxOSArMTI1 NSwzMyBAQCBzdGF0aWMgaW50IF9faW5pdCBrc19wY2llX3Byb2JlKHN0cnVjdA0KPiBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYpDQo+ID4gICAgICAgICAgICAgICAgIH0NCj4gPg0KPiA+ICAgICAgICAg ICAgICAgICBrc19wY2llLT5udW1fdmlld3BvcnQgPSBudW1fdmlld3BvcnQ7DQo+ID4gLSAgICAg ICAgICAgICAgIHBjaS0+cHAub3BzID0gaG9zdF9vcHM7DQo+ID4gLSAgICAgICAgICAgICAgIHJl dCA9IGR3X3BjaWVfaG9zdF9pbml0KCZwY2ktPnBwKTsNCj4gPiArICAgICAgICAgICAgICAgcHAt Pm9wcyA9IGhvc3Rfb3BzOw0KPiA+ICsgICAgICAgICAgICAgICByZXQgPSBkd19wY2llX2hvc3Rf aW5pdChwcCk7DQo+ID4gICAgICAgICAgICAgICAgIGlmIChyZXQgPCAwKQ0KPiA+ICAgICAgICAg ICAgICAgICAgICAgICAgIGdvdG8gZXJyX2dldF9zeW5jOw0KPiA+ICAgICAgICAgICAgICAgICBi cmVhazsNCj4gPiAgICAgICAgIGNhc2UgRFdfUENJRV9FUF9UWVBFOg0KPiA+ICsgICAgICAgICAg ICAgICBlcCA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqZXApLCBHRlBfS0VSTkVMKTsNCj4g PiArICAgICAgICAgICAgICAgaWYgKCFlcCkgew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg IHJldCA9IC1FTk9NRU07DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZ290byBlcnJfZ2V0 X3N5bmM7DQo+ID4gKyAgICAgICAgICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAg IGtzX3BjaWUtPmVwID0gZXA7DQo+ID4gKyAgICAgICAgICAgICAgIHBjaSA9ICZlcC0+cGNpZTsN Cj4gPiArICAgICAgICAgICAgICAgcGNpLT5kYmlfYmFzZSA9IGJhc2U7DQo+ID4gKyAgICAgICAg ICAgICAgIHBjaS0+ZGJpX2Jhc2UyID0gYmFzZTsNCj4gPiArICAgICAgICAgICAgICAgcGNpLT5k ZXYgPSBkZXY7DQo+ID4gKyAgICAgICAgICAgICAgIHBjaS0+b3BzID0gJmtzX3BjaWVfZHdfcGNp ZV9vcHM7DQo+ID4gKyAgICAgICAgICAgICAgIHBjaS0+dmVyc2lvbiA9IHZlcnNpb247DQo+ID4g Kw0KPiA+ICAgICAgICAgICAgICAgICBpZiAoIUlTX0VOQUJMRUQoQ09ORklHX1BDSV9LRVlTVE9O RV9FUCkpIHsNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICByZXQgPSAtRU5PREVWOw0KPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyX2dldF9zeW5jOw0KPiA+ICAgICAgICAg ICAgICAgICB9DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgcGNpLT5lcC5vcHMgPSBlcF9vcHM7 DQo+ID4gLSAgICAgICAgICAgICAgIHJldCA9IGR3X3BjaWVfZXBfaW5pdCgmcGNpLT5lcCk7DQo+ ID4gKyAgICAgICAgICAgICAgIGVwLT5vcHMgPSBlcF9vcHM7DQo+ID4gKyAgICAgICAgICAgICAg IHJldCA9IGR3X3BjaWVfZXBfaW5pdChlcCk7DQo+ID4gICAgICAgICAgICAgICAgIGlmIChyZXQg PCAwKQ0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyX2dldF9zeW5jOw0KPiA+ ICAgICAgICAgICAgICAgICBicmVhazsNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29u dHJvbGxlci9kd2MvcGNpLWxheWVyc2NhcGUtZXAuYw0KPiBiL2RyaXZlcnMvcGNpL2NvbnRyb2xs ZXIvZHdjL3BjaS1sYXllcnNjYXBlLWVwLmMNCj4gPiBpbmRleCBkY2VlOTVlMTYxMzkuLmFiNThk ZWRhYzQwMSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2kt bGF5ZXJzY2FwZS1lcC5jDQo+ID4gKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNp LWxheWVyc2NhcGUtZXAuYw0KPiA+IEBAIC0yNyw3ICsyNyw3IEBAIHN0cnVjdCBsc19wY2llX2Vw X2RydmRhdGEgew0KPiA+ICB9Ow0KPiA+DQo+ID4gIHN0cnVjdCBsc19wY2llX2VwIHsNCj4gPiAt ICAgICAgIHN0cnVjdCBkd19wY2llICAgICAgICAgICAgICAgICAgKnBjaTsNCj4gPiArICAgICAg IHN0cnVjdCBkd19wY2llX2VwICAgICAgICAgICAgICAgKmVwOw0KPiA+ICAgICAgICAgc3RydWN0 IHBjaV9lcGNfZmVhdHVyZXMgICAgICAgICAqbHNfZXBjOw0KPiA+ICAgICAgICAgY29uc3Qgc3Ry dWN0IGxzX3BjaWVfZXBfZHJ2ZGF0YSAqZHJ2ZGF0YTsNCj4gPiAgfTsNCj4gPiBAQCAtMTI2LDYg KzEyNiw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGxzX3BjaWVfZXBfcHJvYmUoc3RydWN0DQo+IHBs YXRmb3JtX2RldmljZSAqcGRldikNCj4gPiAgew0KPiA+ICAgICAgICAgc3RydWN0IGRldmljZSAq ZGV2ID0gJnBkZXYtPmRldjsNCj4gPiAgICAgICAgIHN0cnVjdCBkd19wY2llICpwY2k7DQo+ID4g KyAgICAgICBzdHJ1Y3QgZHdfcGNpZV9lcCAqZXA7DQo+ID4gICAgICAgICBzdHJ1Y3QgbHNfcGNp ZV9lcCAqcGNpZTsNCj4gPiAgICAgICAgIHN0cnVjdCBwY2lfZXBjX2ZlYXR1cmVzICpsc19lcGM7 DQo+ID4gICAgICAgICBzdHJ1Y3QgcmVzb3VyY2UgKmRiaV9iYXNlOw0KPiA+IEBAIC0xMzQsMjIg KzEzNSwyMyBAQCBzdGF0aWMgaW50IF9faW5pdCBsc19wY2llX2VwX3Byb2JlKHN0cnVjdA0KPiBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gICAgICAgICBpZiAoIXBjaWUpDQo+ID4gICAgICAg ICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPiA+DQo+ID4gLSAgICAgICBwY2kgPSBkZXZtX2t6 YWxsb2MoZGV2LCBzaXplb2YoKnBjaSksIEdGUF9LRVJORUwpOw0KPiA+IC0gICAgICAgaWYgKCFw Y2kpDQo+ID4gKyAgICAgICBlcCA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqZXApLCBHRlBf S0VSTkVMKTsNCj4gPiArICAgICAgIGlmICghZXApDQo+ID4gICAgICAgICAgICAgICAgIHJldHVy biAtRU5PTUVNOw0KPiA+DQo+ID4gICAgICAgICBsc19lcGMgPSBkZXZtX2t6YWxsb2MoZGV2LCBz aXplb2YoKmxzX2VwYyksIEdGUF9LRVJORUwpOw0KPiA+ICAgICAgICAgaWYgKCFsc19lcGMpDQo+ ID4gICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPiA+DQo+ID4gKyAgICAgICBsc19l cGMtPmJhcl9maXhlZF82NGJpdCA9ICgxIDw8IEJBUl8yKSB8ICgxIDw8IEJBUl80KSwNCj4gPiAr DQo+ID4gICAgICAgICBwY2llLT5kcnZkYXRhID0gb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKGRl dik7DQo+ID4NCj4gPiArICAgICAgIHBjaSA9ICZlcC0+cGNpZTsNCj4gPiAgICAgICAgIHBjaS0+ ZGV2ID0gZGV2Ow0KPiA+ICAgICAgICAgcGNpLT5vcHMgPSBwY2llLT5kcnZkYXRhLT5kd19wY2ll X29wczsNCj4gPg0KPiA+IC0gICAgICAgbHNfZXBjLT5iYXJfZml4ZWRfNjRiaXQgPSAoMSA8PCBC QVJfMikgfCAoMSA8PCBCQVJfNCksDQo+ID4gLQ0KPiA+IC0gICAgICAgcGNpZS0+cGNpID0gcGNp Ow0KPiA+ICsgICAgICAgcGNpZS0+ZXAgPSBlcDsNCj4gPiAgICAgICAgIHBjaWUtPmxzX2VwYyA9 IGxzX2VwYzsNCj4gPg0KPiA+ICAgICAgICAgZGJpX2Jhc2UgPSBwbGF0Zm9ybV9nZXRfcmVzb3Vy Y2VfYnluYW1lKHBkZXYsDQo+IElPUkVTT1VSQ0VfTUVNLCAicmVncyIpOw0KPiA+IEBAIC0xNTcs MTEgKzE1OSwxMSBAQCBzdGF0aWMgaW50IF9faW5pdCBsc19wY2llX2VwX3Byb2JlKHN0cnVjdA0K PiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gICAgICAgICBpZiAoSVNfRVJSKHBjaS0+ZGJp X2Jhc2UpKQ0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gUFRSX0VSUihwY2ktPmRiaV9iYXNl KTsNCj4gPg0KPiA+IC0gICAgICAgcGNpLT5lcC5vcHMgPSAmbHNfcGNpZV9lcF9vcHM7DQo+ID4g KyAgICAgICBlcC0+b3BzID0gJmxzX3BjaWVfZXBfb3BzOw0KPiA+DQo+ID4gICAgICAgICBwbGF0 Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBwY2llKTsNCj4gPg0KPiA+IC0gICAgICAgcmV0dXJuIGR3 X3BjaWVfZXBfaW5pdCgmcGNpLT5lcCk7DQo+ID4gKyAgICAgICByZXR1cm4gZHdfcGNpZV9lcF9p bml0KGVwKTsNCj4gPiAgfQ0KPiA+DQo+ID4gIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVy IGxzX3BjaWVfZXBfZHJpdmVyID0gew0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250 cm9sbGVyL2R3Yy9wY2ktbGF5ZXJzY2FwZS5jDQo+IGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9k d2MvcGNpLWxheWVyc2NhcGUuYw0KPiA+IGluZGV4IGE1OTAxOTRjMGY5NS4uNmFjNGZiOGE5MjEx IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1sYXllcnNj YXBlLmMNCj4gPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktbGF5ZXJzY2Fw ZS5jDQo+ID4gQEAgLTcxLDcgKzcxLDcgQEAgc3RydWN0IGxzX3BjaWVfZHJ2ZGF0YSB7DQo+ID4g IH07DQo+ID4NCj4gPiAgc3RydWN0IGxzX3BjaWUgew0KPiA+IC0gICAgICAgc3RydWN0IGR3X3Bj aWUgKnBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBwY2llX3BvcnQgKnBwOw0KPiA+ICAgICAgICAg Y29uc3Qgc3RydWN0IGxzX3BjaWVfZHJ2ZGF0YSAqZHJ2ZGF0YTsNCj4gPiAgICAgICAgIHZvaWQg X19pb21lbSAqcGZfYmFzZTsNCj4gPiAgICAgICAgIHZvaWQgX19pb21lbSAqbHV0X2Jhc2U7DQo+ ID4gQEAgLTg4LDcgKzg4LDcgQEAgc3RydWN0IGxzX3BjaWUgew0KPiA+DQo+ID4gIHN0YXRpYyBi b29sIGxzX3BjaWVfaXNfYnJpZGdlKHN0cnVjdCBsc19wY2llICpwY2llKQ0KPiA+ICB7DQo+ID4g LSAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gcGNpZS0+cGNpOw0KPiA+ICsgICAgICAgc3Ry dWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwY2llLT5wcCk7DQo+ID4gICAg ICAgICB1MzIgaGVhZGVyX3R5cGU7DQo+ID4NCj4gPiAgICAgICAgIGhlYWRlcl90eXBlID0gaW9y ZWFkOChwY2ktPmRiaV9iYXNlICsgUENJX0hFQURFUl9UWVBFKTsNCj4gPiBAQCAtMTAwLDcgKzEw MCw3IEBAIHN0YXRpYyBib29sIGxzX3BjaWVfaXNfYnJpZGdlKHN0cnVjdCBsc19wY2llICpwY2ll KQ0KPiA+ICAvKiBDbGVhciBtdWx0aS1mdW5jdGlvbiBiaXQgKi8NCj4gPiAgc3RhdGljIHZvaWQg bHNfcGNpZV9jbGVhcl9tdWx0aWZ1bmN0aW9uKHN0cnVjdCBsc19wY2llICpwY2llKQ0KPiA+ICB7 DQo+ID4gLSAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gcGNpZS0+cGNpOw0KPiA+ICsgICAg ICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwY2llLT5wcCk7DQo+ ID4NCj4gPiAgICAgICAgIGlvd3JpdGU4KFBDSV9IRUFERVJfVFlQRV9CUklER0UsIHBjaS0+ZGJp X2Jhc2UgKw0KPiBQQ0lfSEVBREVSX1RZUEUpOw0KPiA+ICB9DQo+ID4gQEAgLTEwOSw3ICsxMDks NyBAQCBzdGF0aWMgdm9pZCBsc19wY2llX2NsZWFyX211bHRpZnVuY3Rpb24oc3RydWN0DQo+IGxz X3BjaWUgKnBjaWUpDQo+ID4gIHN0YXRpYyB2b2lkIGxzX3BjaWVfZHJvcF9tc2dfdGxwKHN0cnVj dCBsc19wY2llICpwY2llKQ0KPiA+ICB7DQo+ID4gICAgICAgICB1MzIgdmFsOw0KPiA+IC0gICAg ICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHBjaWUtPnBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBk d19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocGNpZS0+cHApOw0KPiA+DQo+ID4gICAg ICAgICB2YWwgPSBpb3JlYWQzMihwY2ktPmRiaV9iYXNlICsgUENJRV9TVFJGTVIxKTsNCj4gPiAg ICAgICAgIHZhbCAmPSAweERGRkZGRkZGOw0KPiA+IEBAIC0xMTksNyArMTE5LDcgQEAgc3RhdGlj IHZvaWQgbHNfcGNpZV9kcm9wX21zZ190bHAoc3RydWN0IGxzX3BjaWUNCj4gKnBjaWUpDQo+ID4g IC8qIEZvcndhcmQgZXJyb3IgcmVzcG9uc2Ugb2Ygb3V0Ym91bmQgbm9uLXBvc3RlZCByZXF1ZXN0 cyAqLw0KPiA+ICBzdGF0aWMgdm9pZCBsc19wY2llX2ZpeF9lcnJvcl9yZXNwb25zZShzdHJ1Y3Qg bHNfcGNpZSAqcGNpZSkNCj4gPiAgew0KPiA+IC0gICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9 IHBjaWUtPnBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2ll X2Zyb21fcHAocGNpZS0+cHApOw0KPiA+DQo+ID4gICAgICAgICBpb3dyaXRlMzIoUENJRV9BQlNF UlJfU0VUVElORywgcGNpLT5kYmlfYmFzZSArDQo+IFBDSUVfQUJTRVJSKTsNCj4gPiAgfQ0KPiA+ IEBAIC0xNjIsNiArMTYyLDcgQEAgc3RhdGljIHZvaWQgbHNfcGNpZV9zZW5kX3R1cm5vZmZfbXNn KHN0cnVjdA0KPiBsc19wY2llICpwY2llKQ0KPiA+ICB7DQo+ID4gICAgICAgICB1MzIgdmFsOw0K PiA+ICAgICAgICAgaW50IHJldDsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSB0 b19kd19wY2llX2Zyb21fcHAocGNpZS0+cHApOw0KPiA+DQo+ID4gICAgICAgICB2YWwgPSBsc19w Y2llX3BmX3JlYWRsKHBjaWUsIExTX1BDSUVfUEZfTUNSKTsNCj4gPiAgICAgICAgIHZhbCB8PSBQ Rl9NQ1JfUFRPTVI7DQo+ID4gQEAgLTE3MCwxNSArMTcxLDE2IEBAIHN0YXRpYyB2b2lkIGxzX3Bj aWVfc2VuZF90dXJub2ZmX21zZyhzdHJ1Y3QNCj4gbHNfcGNpZSAqcGNpZSkNCj4gPiAgICAgICAg IHJldCA9IHJlYWR4X3BvbGxfdGltZW91dChsc19wY2llX3BmX3JlYWRsX2FkZHIsDQo+IExTX1BD SUVfUEZfTUNSLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCwgISh2 YWwgJiBQRl9NQ1JfUFRPTVIpLA0KPiAxMDAsIDEwMDAwKTsNCj4gPiAgICAgICAgIGlmIChyZXQp DQo+ID4gLSAgICAgICAgICAgICAgIGRldl9pbmZvKHBjaWUtPnBjaS0+ZGV2LCAicG9sbCB0dXJu IG9mZiBtZXNzYWdlDQo+IHRpbWVvdXRcbiIpOw0KPiA+ICsgICAgICAgICAgICAgICBkZXZfaW5m byhwY2ktPmRldiwgInBvbGwgdHVybiBvZmYgbWVzc2FnZSB0aW1lb3V0XG4iKTsNCj4gPiAgfQ0K PiA+DQo+ID4gIHN0YXRpYyB2b2lkIGxzMTAyMWFfcGNpZV9zZW5kX3R1cm5vZmZfbXNnKHN0cnVj dCBsc19wY2llICpwY2llKQ0KPiA+ICB7DQo+ID4gICAgICAgICB1MzIgdmFsOw0KPiA+ICsgICAg ICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwY2llLT5wcCk7DQo+ ID4NCj4gPiAgICAgICAgIGlmICghcGNpZS0+c2NmZykgew0KPiA+IC0gICAgICAgICAgICAgICBk ZXZfZGJnKHBjaWUtPnBjaS0+ZGV2LCAiU1lTQ0ZHIGlzIE5VTExcbiIpOw0KPiA+ICsgICAgICAg ICAgICAgICBkZXZfZGJnKHBjaS0+ZGV2LCAiU1lTQ0ZHIGlzIE5VTExcbiIpOw0KPiA+ICAgICAg ICAgICAgICAgICByZXR1cm47DQo+ID4gICAgICAgICB9DQo+ID4NCj4gPiBAQCAtMTk4LDkgKzIw MCwxMCBAQCBzdGF0aWMgdm9pZA0KPiBsczEwMjFhX3BjaWVfc2VuZF90dXJub2ZmX21zZyhzdHJ1 Y3QgbHNfcGNpZSAqcGNpZSkNCj4gPiAgc3RhdGljIHZvaWQgbHMxMDQzYV9wY2llX3NlbmRfdHVy bm9mZl9tc2coc3RydWN0IGxzX3BjaWUgKnBjaWUpDQo+ID4gIHsNCj4gPiAgICAgICAgIHUzMiB2 YWw7DQo+ID4gKyAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3Bw KHBjaWUtPnBwKTsNCj4gPg0KPiA+ICAgICAgICAgaWYgKCFwY2llLT5zY2ZnKSB7DQo+ID4gLSAg ICAgICAgICAgICAgIGRldl9kYmcocGNpZS0+cGNpLT5kZXYsICJTWVNDRkcgaXMgTlVMTFxuIik7 DQo+ID4gKyAgICAgICAgICAgICAgIGRldl9kYmcocGNpLT5kZXYsICJTWVNDRkcgaXMgTlVMTFxu Iik7DQo+ID4gICAgICAgICAgICAgICAgIHJldHVybjsNCj4gPiAgICAgICAgIH0NCj4gPg0KPiA+ IEBAIC0yMjEsNiArMjI0LDcgQEAgc3RhdGljIHZvaWQgbHNfcGNpZV9leGl0X2Zyb21fbDIoc3Ry dWN0IGxzX3BjaWUNCj4gKnBjaWUpDQo+ID4gIHsNCj4gPiAgICAgICAgIHUzMiB2YWw7DQo+ID4g ICAgICAgICBpbnQgcmV0Ow0KPiA+ICsgICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3 X3BjaWVfZnJvbV9wcChwY2llLT5wcCk7DQo+ID4NCj4gPiAgICAgICAgIHZhbCA9IGxzX3BjaWVf cGZfcmVhZGwocGNpZSwgTFNfUENJRV9QRl9NQ1IpOw0KPiA+ICAgICAgICAgdmFsIHw9IFBGX01D Ul9FWEwyUzsNCj4gPiBAQCAtMjI5LDEyICsyMzMsMTIgQEAgc3RhdGljIHZvaWQgbHNfcGNpZV9l eGl0X2Zyb21fbDIoc3RydWN0IGxzX3BjaWUNCj4gKnBjaWUpDQo+ID4gICAgICAgICByZXQgPSBy ZWFkeF9wb2xsX3RpbWVvdXQobHNfcGNpZV9wZl9yZWFkbF9hZGRyLA0KPiBMU19QQ0lFX1BGX01D UiwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwsICEodmFsICYgUEZf TUNSX0VYTDJTKSwgMTAwLA0KPiAxMDAwMCk7DQo+ID4gICAgICAgICBpZiAocmV0KQ0KPiA+IC0g ICAgICAgICAgICAgICBkZXZfaW5mbyhwY2llLT5wY2ktPmRldiwgInBvbGwgZXhpdCBMMiBzdGF0 ZSB0aW1lb3V0XG4iKTsNCj4gPiArICAgICAgICAgICAgICAgZGV2X2luZm8ocGNpLT5kZXYsICJw b2xsIGV4aXQgTDIgc3RhdGUgdGltZW91dFxuIik7DQo+ID4gIH0NCj4gPg0KPiA+ICBzdGF0aWMg dm9pZCBsc19wY2llX3JldHJhaW5fbGluayhzdHJ1Y3QgbHNfcGNpZSAqcGNpZSkNCj4gPiAgew0K PiA+IC0gICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHBjaWUtPnBjaTsNCj4gPiArICAgICAg IHN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocGNpZS0+cHApOw0KPiA+ ICAgICAgICAgdTggb2Zmc2V0ID0gZHdfcGNpZV9maW5kX2NhcGFiaWxpdHkocGNpLCBQQ0lfQ0FQ X0lEX0VYUCk7DQo+ID4gICAgICAgICB1MzIgdmFsOw0KPiA+DQo+ID4gQEAgLTI4Niw3ICsyOTAs OCBAQCBzdGF0aWMgdm9pZCBsczEwNDNhX3BjaWVfZXhpdF9mcm9tX2wyKHN0cnVjdA0KPiBsc19w Y2llICpwY2llKQ0KPiA+DQo+ID4gIHN0YXRpYyBpbnQgbHMxMDIxYV9wY2llX3BtX2luaXQoc3Ry dWN0IGxzX3BjaWUgKnBjaWUpDQo+ID4gIHsNCj4gPiAtICAgICAgIHN0cnVjdCBkZXZpY2UgKmRl diA9IHBjaWUtPnBjaS0+ZGV2Ow0KPiA+ICsgICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRv X2R3X3BjaWVfZnJvbV9wcChwY2llLT5wcCk7DQo+ID4gKyAgICAgICBzdHJ1Y3QgZGV2aWNlICpk ZXYgPSBwY2ktPmRldjsNCj4gPiAgICAgICAgIHUzMiBpbmRleFsyXTsNCj4gPiAgICAgICAgIGlu dCByZXQ7DQo+ID4NCj4gPiBAQCAtMzE4LDcgKzMyMyw3IEBAIHN0YXRpYyBpbnQgbHNfcGNpZV9w bV9pbml0KHN0cnVjdCBsc19wY2llICpwY2llKQ0KPiA+DQo+ID4gIHN0YXRpYyB2b2lkIGxzX3Bj aWVfc2V0X2RzdGF0ZShzdHJ1Y3QgbHNfcGNpZSAqcGNpZSwgdTMyIGRzdGF0ZSkNCj4gPiAgew0K PiA+IC0gICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHBjaWUtPnBjaTsNCj4gPiArICAgICAg IHN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocGNpZS0+cHApOw0KPiA+ ICAgICAgICAgdTggb2Zmc2V0ID0gZHdfcGNpZV9maW5kX2NhcGFiaWxpdHkocGNpLCBQQ0lfQ0FQ X0lEX1BNKTsNCj4gPiAgICAgICAgIHUzMiB2YWw7DQo+ID4NCj4gPiBAQCAtNDEwLDYgKzQxNSw3 IEBAIHN0YXRpYyBpbnQgX19pbml0IGxzX3BjaWVfcHJvYmUoc3RydWN0DQo+IHBsYXRmb3JtX2Rl dmljZSAqcGRldikNCj4gPiAgew0KPiA+ICAgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gJnBk ZXYtPmRldjsNCj4gPiAgICAgICAgIHN0cnVjdCBkd19wY2llICpwY2k7DQo+ID4gKyAgICAgICBz dHJ1Y3QgcGNpZV9wb3J0ICpwcDsNCj4gPiAgICAgICAgIHN0cnVjdCBsc19wY2llICpwY2llOw0K PiA+ICAgICAgICAgc3RydWN0IHJlc291cmNlICpkYmlfYmFzZTsNCj4gPg0KPiA+IEBAIC00MTcs MTYgKzQyMywxNyBAQCBzdGF0aWMgaW50IF9faW5pdCBsc19wY2llX3Byb2JlKHN0cnVjdA0KPiBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gICAgICAgICBpZiAoIXBjaWUpDQo+ID4gICAgICAg ICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPiA+DQo+ID4gLSAgICAgICBwY2kgPSBkZXZtX2t6 YWxsb2MoZGV2LCBzaXplb2YoKnBjaSksIEdGUF9LRVJORUwpOw0KPiA+IC0gICAgICAgaWYgKCFw Y2kpDQo+ID4gKyAgICAgICBwcCA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcHApLCBHRlBf S0VSTkVMKTsNCj4gPiArICAgICAgIGlmICghcHApDQo+ID4gICAgICAgICAgICAgICAgIHJldHVy biAtRU5PTUVNOw0KPiA+DQo+ID4gICAgICAgICBwY2llLT5kcnZkYXRhID0gb2ZfZGV2aWNlX2dl dF9tYXRjaF9kYXRhKGRldik7DQo+ID4NCj4gPiArICAgICAgIHBjaSA9ICZwcC0+cGNpZTsNCj4g PiAgICAgICAgIHBjaS0+ZGV2ID0gZGV2Ow0KPiA+IC0gICAgICAgcGNpLT5wcC5vcHMgPSBwY2ll LT5kcnZkYXRhLT5vcHM7DQo+ID4gKyAgICAgICBwcC0+b3BzID0gcGNpZS0+ZHJ2ZGF0YS0+b3Bz Ow0KPiA+DQo+ID4gLSAgICAgICBwY2llLT5wY2kgPSBwY2k7DQo+ID4gKyAgICAgICBwY2llLT5w cCA9IHBwOw0KPiA+DQo+ID4gICAgICAgICBkYmlfYmFzZSA9IHBsYXRmb3JtX2dldF9yZXNvdXJj ZV9ieW5hbWUocGRldiwNCj4gSU9SRVNPVVJDRV9NRU0sICJyZWdzIik7DQo+ID4gICAgICAgICBw Y2ktPmRiaV9iYXNlID0gZGV2bV9wY2lfcmVtYXBfY2ZnX3Jlc291cmNlKGRldiwgZGJpX2Jhc2Up Ow0KPiA+IEBAIC00NDYsMTMgKzQ1MywxNSBAQCBzdGF0aWMgaW50IF9faW5pdCBsc19wY2llX3By b2JlKHN0cnVjdA0KPiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4NCj4gPiAgICAgICAgIHBs YXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHBjaWUpOw0KPiA+DQo+ID4gLSAgICAgICByZXR1cm4g ZHdfcGNpZV9ob3N0X2luaXQoJnBjaS0+cHApOw0KPiA+ICsgICAgICAgcmV0dXJuIGR3X3BjaWVf aG9zdF9pbml0KHBwKTsNCj4gPiAgfQ0KPiA+DQo+ID4gIHN0YXRpYyBib29sIGxzX3BjaWVfcG1f Y2hlY2soc3RydWN0IGxzX3BjaWUgKnBjaWUpDQo+ID4gIHsNCj4gPiArICAgICAgIHN0cnVjdCBk d19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocGNpZS0+cHApOw0KPiA+ICsNCj4gPiAg ICAgICAgIGlmICghcGNpZS0+ZXBfcHJlc2VuY2UpIHsNCj4gPiAtICAgICAgICAgICAgICAgZGV2 X2RiZyhwY2llLT5wY2ktPmRldiwgIkVuZHBvaW50IGlzbid0IHByZXNlbnRcbiIpOw0KPiA+ICsg ICAgICAgICAgICAgICBkZXZfZGJnKHBjaS0+ZGV2LCAiRW5kcG9pbnQgaXNuJ3QgcHJlc2VudFxu Iik7DQo+ID4gICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCj4gPiAgICAgICAgIH0NCj4g Pg0KPiA+IEBAIC00NjYsNyArNDc1LDcgQEAgc3RhdGljIGJvb2wgbHNfcGNpZV9wbV9jaGVjayhz dHJ1Y3QgbHNfcGNpZSAqcGNpZSkNCj4gPiAgc3RhdGljIGludCBsc19wY2llX3N1c3BlbmRfbm9p cnEoc3RydWN0IGRldmljZSAqZGV2KQ0KPiA+ICB7DQo+ID4gICAgICAgICBzdHJ1Y3QgbHNfcGNp ZSAqcGNpZSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiA+IC0gICAgICAgc3RydWN0IGR3X3Bj aWUgKnBjaSA9IHBjaWUtPnBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSB0 b19kd19wY2llX2Zyb21fcHAocGNpZS0+cHApOw0KPiA+ICAgICAgICAgdTMyIHZhbDsNCj4gPiAg ICAgICAgIGludCByZXQ7DQo+ID4NCj4gPiBAQCAtNDkxLDcgKzUwMCw3IEBAIHN0YXRpYyBpbnQg bHNfcGNpZV9zdXNwZW5kX25vaXJxKHN0cnVjdCBkZXZpY2UNCj4gKmRldikNCj4gPiAgc3RhdGlj IGludCBsc19wY2llX3Jlc3VtZV9ub2lycShzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ID4gIHsNCj4g PiAgICAgICAgIHN0cnVjdCBsc19wY2llICpwY2llID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ ID4gLSAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gcGNpZS0+cGNpOw0KPiA+ICsgICAgICAg c3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwY2llLT5wcCk7DQo+ID4g ICAgICAgICBpbnQgcmV0Ow0KPiA+DQo+ID4gICAgICAgICBpZiAoIWxzX3BjaWVfcG1fY2hlY2so cGNpZSkpDQo+ID4gQEAgLTUwNCw3ICs1MTMsNyBAQCBzdGF0aWMgaW50IGxzX3BjaWVfcmVzdW1l X25vaXJxKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gPiAgICAgICAgIC8qIGRlbGF5IDEwbXMgdG8g YWNjZXNzIEVQICovDQo+ID4gICAgICAgICBtZGVsYXkoMTApOw0KPiA+DQo+ID4gLSAgICAgICBy ZXQgPSBsc19wY2llX2hvc3RfaW5pdCgmcGNpLT5wcCk7DQo+ID4gKyAgICAgICByZXQgPSBsc19w Y2llX2hvc3RfaW5pdChwY2llLT5wcCk7DQo+ID4gICAgICAgICBpZiAocmV0KSB7DQo+ID4gICAg ICAgICAgICAgICAgIGRldl9lcnIoZGV2LCAibHNfcGNpZV9ob3N0X2luaXQgZmFpbGVkISByZXQg PSAweCV4XG4iLA0KPiByZXQpOw0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktbWVzb24uYw0KPiBi L2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1tZXNvbi5jDQo+ID4gaW5kZXggNjg2ZGVk MDM0ZjIyLi44OTVkZjMwY2I0OTcgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJv bGxlci9kd2MvcGNpLW1lc29uLmMNCj4gPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3 Yy9wY2ktbWVzb24uYw0KPiA+IEBAIC02NSw3ICs2NSw3IEBAIHN0cnVjdCBtZXNvbl9wY2llX3Jj X3Jlc2V0IHsNCj4gPiAgfTsNCj4gPg0KPiA+ICBzdHJ1Y3QgbWVzb25fcGNpZSB7DQo+ID4gLSAg ICAgICBzdHJ1Y3QgZHdfcGNpZSBwY2k7DQo+ID4gKyAgICAgICBzdHJ1Y3QgcGNpZV9wb3J0IHBw Ow0KPiA+ICAgICAgICAgdm9pZCBfX2lvbWVtICpjZmdfYmFzZTsNCj4gPiAgICAgICAgIHN0cnVj dCBtZXNvbl9wY2llX2Nsa19yZXMgY2xrX3JlczsNCj4gPiAgICAgICAgIHN0cnVjdCBtZXNvbl9w Y2llX3JjX3Jlc2V0IG1yc3Q7DQo+ID4gQEAgLTc3LDcgKzc3LDggQEAgc3RhdGljIHN0cnVjdCBy ZXNldF9jb250cm9sDQo+ICptZXNvbl9wY2llX2dldF9yZXNldChzdHJ1Y3QgbWVzb25fcGNpZSAq bXAsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBjaGFyDQo+ICppZCwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHUzMg0KPiByZXNldF90eXBlKQ0KPiA+ICB7DQo+ID4gLSAgICAg ICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSBtcC0+cGNpLmRldjsNCj4gPiArICAgICAgIHN0cnVjdCBk d19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAoJm1wLT5wcCk7DQo+ID4gKyAgICAgICBz dHJ1Y3QgZGV2aWNlICpkZXYgPSBwY2ktPmRldjsNCj4gPiAgICAgICAgIHN0cnVjdCByZXNldF9j b250cm9sICpyZXNldDsNCj4gPg0KPiA+ICAgICAgICAgaWYgKHJlc2V0X3R5cGUgPT0gUENJRV9T SEFSRURfUkVTRVQpDQo+ID4gQEAgLTEwOCw3ICsxMDksNyBAQCBzdGF0aWMgaW50IG1lc29uX3Bj aWVfZ2V0X3Jlc2V0cyhzdHJ1Y3QNCj4gbWVzb25fcGNpZSAqbXApDQo+ID4gIHN0YXRpYyBpbnQg bWVzb25fcGNpZV9nZXRfbWVtcyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KPiA+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbWVzb25fcGNpZSAqbXApDQo+ID4g IHsNCj4gPiAtICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSAmbXAtPnBjaTsNCj4gPiArICAg ICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAoJm1wLT5wcCk7DQo+ ID4NCj4gPiAgICAgICAgIHBjaS0+ZGJpX2Jhc2UgPQ0KPiBkZXZtX3BsYXRmb3JtX2lvcmVtYXBf cmVzb3VyY2VfYnluYW1lKHBkZXYsICJlbGJpIik7DQo+ID4gICAgICAgICBpZiAoSVNfRVJSKHBj aS0+ZGJpX2Jhc2UpKQ0KPiA+IEBAIC0xOTYsNyArMTk3LDggQEAgc3RhdGljIGlubGluZSBzdHJ1 Y3QgY2xrDQo+ICptZXNvbl9wY2llX3Byb2JlX2Nsb2NrKHN0cnVjdCBkZXZpY2UgKmRldiwNCj4g Pg0KPiA+ICBzdGF0aWMgaW50IG1lc29uX3BjaWVfcHJvYmVfY2xvY2tzKHN0cnVjdCBtZXNvbl9w Y2llICptcCkNCj4gPiAgew0KPiA+IC0gICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gbXAtPnBj aS5kZXY7DQo+ID4gKyAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9t X3BwKCZtcC0+cHApOw0KPiA+ICsgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gcGNpLT5kZXY7 DQo+ID4gICAgICAgICBzdHJ1Y3QgbWVzb25fcGNpZV9jbGtfcmVzICpyZXMgPSAmbXAtPmNsa19y ZXM7DQo+ID4NCj4gPiAgICAgICAgIHJlcy0+cG9ydF9jbGsgPSBtZXNvbl9wY2llX3Byb2JlX2Ns b2NrKGRldiwgInBvcnQiLA0KPiBQT1JUX0NMS19SQVRFKTsNCj4gPiBAQCAtMjQyLDcgKzI0NCw4 IEBAIHN0YXRpYyB2b2lkIG1lc29uX3BjaWVfbHRzc21fZW5hYmxlKHN0cnVjdA0KPiBtZXNvbl9w Y2llICptcCkNCj4gPg0KPiA+ICBzdGF0aWMgaW50IG1lc29uX3NpemVfdG9fcGF5bG9hZChzdHJ1 Y3QgbWVzb25fcGNpZSAqbXAsIGludCBzaXplKQ0KPiA+ICB7DQo+ID4gLSAgICAgICBzdHJ1Y3Qg ZGV2aWNlICpkZXYgPSBtcC0+cGNpLmRldjsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpw Y2kgPSB0b19kd19wY2llX2Zyb21fcHAoJm1wLT5wcCk7DQo+ID4gKyAgICAgICBzdHJ1Y3QgZGV2 aWNlICpkZXYgPSBwY2ktPmRldjsNCj4gPg0KPiA+ICAgICAgICAgLyoNCj4gPiAgICAgICAgICAq IGR3YyBzdXBwb3J0cyAyXih2YWwrNykgcGF5bG9hZCBzaXplLCB3aGljaCB2YWwgaXMgMH41IGRl ZmF1bHQNCj4gdG8gMS4NCj4gPiBAQCAtMjU5LDcgKzI2Miw3IEBAIHN0YXRpYyBpbnQgbWVzb25f c2l6ZV90b19wYXlsb2FkKHN0cnVjdA0KPiBtZXNvbl9wY2llICptcCwgaW50IHNpemUpDQo+ID4N Cj4gPiAgc3RhdGljIHZvaWQgbWVzb25fc2V0X21heF9wYXlsb2FkKHN0cnVjdCBtZXNvbl9wY2ll ICptcCwgaW50IHNpemUpDQo+ID4gIHsNCj4gPiAtICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kg PSAmbXAtPnBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2ll X2Zyb21fcHAoJm1wLT5wcCk7DQo+ID4gICAgICAgICB1MzIgdmFsOw0KPiA+ICAgICAgICAgdTE2 IG9mZnNldCA9IGR3X3BjaWVfZmluZF9jYXBhYmlsaXR5KHBjaSwgUENJX0NBUF9JRF9FWFApOw0K PiA+ICAgICAgICAgaW50IG1heF9wYXlsb2FkX3NpemUgPSBtZXNvbl9zaXplX3RvX3BheWxvYWQo bXAsIHNpemUpOw0KPiA+IEBAIC0yNzUsNyArMjc4LDcgQEAgc3RhdGljIHZvaWQgbWVzb25fc2V0 X21heF9wYXlsb2FkKHN0cnVjdA0KPiBtZXNvbl9wY2llICptcCwgaW50IHNpemUpDQo+ID4NCj4g PiAgc3RhdGljIHZvaWQgbWVzb25fc2V0X21heF9yZF9yZXFfc2l6ZShzdHJ1Y3QgbWVzb25fcGNp ZSAqbXAsIGludCBzaXplKQ0KPiA+ICB7DQo+ID4gLSAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNp ID0gJm1wLT5wY2k7DQo+ID4gKyAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNp ZV9mcm9tX3BwKCZtcC0+cHApOw0KPiA+ICAgICAgICAgdTMyIHZhbDsNCj4gPiAgICAgICAgIHUx NiBvZmZzZXQgPSBkd19wY2llX2ZpbmRfY2FwYWJpbGl0eShwY2ksIFBDSV9DQVBfSURfRVhQKTsN Cj4gPiAgICAgICAgIGludCBtYXhfcmRfcmVxX3NpemUgPSBtZXNvbl9zaXplX3RvX3BheWxvYWQo bXAsIHNpemUpOw0KPiA+IEBAIC0zOTUsNiArMzk4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBk d19wY2llX29wcyBkd19wY2llX29wcyA9IHsNCj4gPiAgc3RhdGljIGludCBtZXNvbl9wY2llX3By b2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gIHsNCj4gPiAgICAgICAgIHN0 cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7DQo+ID4gKyAgICAgICBzdHJ1Y3QgcGNpZV9w b3J0ICpwcDsNCj4gPiAgICAgICAgIHN0cnVjdCBkd19wY2llICpwY2k7DQo+ID4gICAgICAgICBz dHJ1Y3QgbWVzb25fcGNpZSAqbXA7DQo+ID4gICAgICAgICBpbnQgcmV0Ow0KPiA+IEBAIC00MDMs MTAgKzQwNywxMSBAQCBzdGF0aWMgaW50IG1lc29uX3BjaWVfcHJvYmUoc3RydWN0DQo+IHBsYXRm b3JtX2RldmljZSAqcGRldikNCj4gPiAgICAgICAgIGlmICghbXApDQo+ID4gICAgICAgICAgICAg ICAgIHJldHVybiAtRU5PTUVNOw0KPiA+DQo+ID4gLSAgICAgICBwY2kgPSAmbXAtPnBjaTsNCj4g PiArICAgICAgIHBwID0gJm1wLT5wcDsNCj4gPiArICAgICAgIHBjaSA9ICZwcC0+cGNpZTsNCj4g PiAgICAgICAgIHBjaS0+ZGV2ID0gZGV2Ow0KPiA+ICAgICAgICAgcGNpLT5vcHMgPSAmZHdfcGNp ZV9vcHM7DQo+ID4gLSAgICAgICBwY2ktPnBwLm9wcyA9ICZtZXNvbl9wY2llX2hvc3Rfb3BzOw0K PiA+ICsgICAgICAgcHAtPm9wcyA9ICZtZXNvbl9wY2llX2hvc3Rfb3BzOw0KPiA+ICAgICAgICAg cGNpLT5udW1fbGFuZXMgPSAxOw0KPiA+DQo+ID4gICAgICAgICBtcC0+cGh5ID0gZGV2bV9waHlf Z2V0KGRldiwgInBjaWUiKTsNCj4gPiBAQCAtNDUzLDcgKzQ1OCw3IEBAIHN0YXRpYyBpbnQgbWVz b25fcGNpZV9wcm9iZShzdHJ1Y3QNCj4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+DQo+ID4g ICAgICAgICBwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBtcCk7DQo+ID4NCj4gPiAtICAgICAg IHJldCA9IGR3X3BjaWVfaG9zdF9pbml0KCZwY2ktPnBwKTsNCj4gPiArICAgICAgIHJldCA9IGR3 X3BjaWVfaG9zdF9pbml0KHBwKTsNCj4gPiAgICAgICAgIGlmIChyZXQgPCAwKSB7DQo+ID4gICAg ICAgICAgICAgICAgIGRldl9lcnIoZGV2LCAiQWRkIFBDSWUgcG9ydCBmYWlsZWQsICVkXG4iLCBy ZXQpOw0KPiA+ICAgICAgICAgICAgICAgICBnb3RvIGVycl9waHk7DQo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYWwuYw0KPiBiL2RyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvZHdjL3BjaWUtYWwuYw0KPiA+IGluZGV4IGFiZjM3YWE2OGU1MS4uZTlkNDM4MzU0 Mjc1IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYWwu Yw0KPiA+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYWwuYw0KPiA+IEBA IC0xMjgsNyArMTI4LDcgQEAgc3RydWN0IGFsX3BjaWVfdGFyZ2V0X2J1c19jZmcgew0KPiA+ICB9 Ow0KPiA+DQo+ID4gIHN0cnVjdCBhbF9wY2llIHsNCj4gPiAtICAgICAgIHN0cnVjdCBkd19wY2ll ICpwY2k7DQo+ID4gKyAgICAgICBzdHJ1Y3QgcGNpZV9wb3J0ICpwcDsNCj4gPiAgICAgICAgIHZv aWQgX19pb21lbSAqY29udHJvbGxlcl9iYXNlOyAvKiBiYXNlIG9mIFBDSWUgdW5pdCAobm90IERX DQo+IGNvcmUpICovDQo+ID4gICAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXY7DQo+ID4gICAgICAg ICByZXNvdXJjZV9zaXplX3QgZWNhbV9zaXplOw0KPiA+IEBAIC0yMTgsMTQgKzIxOCwxNSBAQCBz dGF0aWMgdm9pZCBfX2lvbWVtDQo+ICphbF9wY2llX2NvbmZfYWRkcl9tYXBfYnVzKHN0cnVjdCBw Y2lfYnVzICpidXMsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBpbnQNCj4gZGV2Zm4sIGludCB3aGVyZSkNCj4gPiAgew0KPiA+ICAg ICAgICAgc3RydWN0IHBjaWVfcG9ydCAqcHAgPSBidXMtPnN5c2RhdGE7DQo+ID4gLSAgICAgICBz dHJ1Y3QgYWxfcGNpZSAqcGNpZSA9IHRvX2FsX3BjaWUodG9fZHdfcGNpZV9mcm9tX3BwKHBwKSk7 DQo+ID4gKyAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBw KTsNCj4gPiArICAgICAgIHN0cnVjdCBhbF9wY2llICpwY2llID0gdG9fYWxfcGNpZShwY2kpOw0K PiA+ICAgICAgICAgdW5zaWduZWQgaW50IGJ1c25yID0gYnVzLT5udW1iZXI7DQo+ID4gICAgICAg ICBzdHJ1Y3QgYWxfcGNpZV90YXJnZXRfYnVzX2NmZyAqdGFyZ2V0X2J1c19jZmcgPQ0KPiAmcGNp ZS0+dGFyZ2V0X2J1c19jZmc7DQo+ID4gICAgICAgICB1bnNpZ25lZCBpbnQgYnVzbnJfZWNhbSA9 IGJ1c25yICYNCj4gdGFyZ2V0X2J1c19jZmctPmVjYW1fbWFzazsNCj4gPiAgICAgICAgIHVuc2ln bmVkIGludCBidXNucl9yZWcgPSBidXNuciAmIHRhcmdldF9idXNfY2ZnLT5yZWdfbWFzazsNCj4g Pg0KPiA+ICAgICAgICAgaWYgKGJ1c25yX3JlZyAhPSB0YXJnZXRfYnVzX2NmZy0+cmVnX3ZhbCkg ew0KPiA+IC0gICAgICAgICAgICAgICBkZXZfZGJnKHBjaWUtPnBjaS0+ZGV2LCAiQ2hhbmdpbmcg dGFyZ2V0IGJ1cyBidXNudW0NCj4gdmFsIGZyb20gMHgleCB0byAweCV4XG4iLA0KPiA+ICsgICAg ICAgICAgICAgICBkZXZfZGJnKHBjaS0+ZGV2LCAiQ2hhbmdpbmcgdGFyZ2V0IGJ1cyBidXNudW0g dmFsDQo+IGZyb20gMHgleCB0byAweCV4XG4iLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAg IHRhcmdldF9idXNfY2ZnLT5yZWdfdmFsLCBidXNucl9yZWcpOw0KPiA+ICAgICAgICAgICAgICAg ICB0YXJnZXRfYnVzX2NmZy0+cmVnX3ZhbCA9IGJ1c25yX3JlZzsNCj4gPiAgICAgICAgICAgICAg ICAgYWxfcGNpZV90YXJnZXRfYnVzX3NldChwY2llLA0KPiA+IEBAIC0yNDUsNyArMjQ2LDcgQEAg c3RhdGljIHN0cnVjdCBwY2lfb3BzIGFsX2NoaWxkX3BjaV9vcHMgPSB7DQo+ID4gIHN0YXRpYyB2 b2lkIGFsX3BjaWVfY29uZmlnX3ByZXBhcmUoc3RydWN0IGFsX3BjaWUgKnBjaWUpDQo+ID4gIHsN Cj4gPiAgICAgICAgIHN0cnVjdCBhbF9wY2llX3RhcmdldF9idXNfY2ZnICp0YXJnZXRfYnVzX2Nm ZzsNCj4gPiAtICAgICAgIHN0cnVjdCBwY2llX3BvcnQgKnBwID0gJnBjaWUtPnBjaS0+cHA7DQo+ ID4gKyAgICAgICBzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9IHBjaWUtPnBwOw0KPiA+ICAgICAgICAg dW5zaWduZWQgaW50IGVjYW1fYnVzX21hc2s7DQo+ID4gICAgICAgICB1MzIgY2ZnX2NvbnRyb2xf b2Zmc2V0Ow0KPiA+ICAgICAgICAgdTggc3Vib3JkaW5hdGVfYnVzOw0KPiA+IEBAIC0zMjMsMjEg KzMyNCwyMyBAQCBzdGF0aWMgaW50IGFsX3BjaWVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZQ0KPiAqcGRldikNCj4gPiAgICAgICAgIHN0cnVjdCByZXNvdXJjZSAqY29udHJvbGxlcl9yZXM7 DQo+ID4gICAgICAgICBzdHJ1Y3QgcmVzb3VyY2UgKmVjYW1fcmVzOw0KPiA+ICAgICAgICAgc3Ry dWN0IGFsX3BjaWUgKmFsX3BjaWU7DQo+ID4gKyAgICAgICBzdHJ1Y3QgcGNpZV9wb3J0ICpwcDsN Cj4gPiAgICAgICAgIHN0cnVjdCBkd19wY2llICpwY2k7DQo+ID4NCj4gPiAgICAgICAgIGFsX3Bj aWUgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKmFsX3BjaWUpLCBHRlBfS0VSTkVMKTsNCj4g PiAgICAgICAgIGlmICghYWxfcGNpZSkNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9N RU07DQo+ID4NCj4gPiAtICAgICAgIHBjaSA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcGNp KSwgR0ZQX0tFUk5FTCk7DQo+ID4gLSAgICAgICBpZiAoIXBjaSkNCj4gPiArICAgICAgIHBwID0g ZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpwcCksIEdGUF9LRVJORUwpOw0KPiA+ICsgICAgICAg aWYgKCFwcCkNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ID4NCj4gPiAr ICAgICAgIHBjaSA9ICZwcC0+cGNpZTsNCj4gPiAgICAgICAgIHBjaS0+ZGV2ID0gZGV2Ow0KPiA+ ICAgICAgICAgcGNpLT5vcHMgPSAmZHdfcGNpZV9vcHM7DQo+ID4gLSAgICAgICBwY2ktPnBwLm9w cyA9ICZhbF9wY2llX2hvc3Rfb3BzOw0KPiA+ICsgICAgICAgcHAtPm9wcyA9ICZhbF9wY2llX2hv c3Rfb3BzOw0KPiA+DQo+ID4gLSAgICAgICBhbF9wY2llLT5wY2kgPSBwY2k7DQo+ID4gKyAgICAg ICBhbF9wY2llLT5wcCA9IHBwOw0KPiA+ICAgICAgICAgYWxfcGNpZS0+ZGV2ID0gZGV2Ow0KPiA+ DQo+ID4gICAgICAgICBlY2FtX3JlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZV9ieW5hbWUocGRl diwNCj4gSU9SRVNPVVJDRV9NRU0sICJjb25maWciKTsNCj4gPiBAQCAtMzYwLDcgKzM2Myw3IEBA IHN0YXRpYyBpbnQgYWxfcGNpZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlDQo+ICpwZGV2 KQ0KPiA+DQo+ID4gICAgICAgICBwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBhbF9wY2llKTsN Cj4gPg0KPiA+IC0gICAgICAgcmV0dXJuIGR3X3BjaWVfaG9zdF9pbml0KCZwY2ktPnBwKTsNCj4g PiArICAgICAgIHJldHVybiBkd19wY2llX2hvc3RfaW5pdChwcCk7DQo+ID4gIH0NCj4gPg0KPiA+ ICBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBhbF9wY2llX29mX21hdGNoW10gPSB7 DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYXJtYWRh OGsuYw0KPiBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYXJtYWRhOGsuYw0KPiA+ IGluZGV4IDRlMjU1MmRjZjk4Mi4uNDg0Y2IxZGVkZGFhIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZl cnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYXJtYWRhOGsuYw0KPiA+ICsrKyBiL2RyaXZlcnMv cGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYXJtYWRhOGsuYw0KPiA+IEBAIC0yOCw3ICsyOCw3IEBA DQo+ID4gICNkZWZpbmUgQVJNQURBOEtfUENJRV9NQVhfTEFORVMgUENJRV9MTktfWDQNCj4gPg0K PiA+ICBzdHJ1Y3QgYXJtYWRhOGtfcGNpZSB7DQo+ID4gLSAgICAgICBzdHJ1Y3QgZHdfcGNpZSAq cGNpOw0KPiA+ICsgICAgICAgc3RydWN0IHBjaWVfcG9ydCAqcHA7DQo+ID4gICAgICAgICBzdHJ1 Y3QgY2xrICpjbGs7DQo+ID4gICAgICAgICBzdHJ1Y3QgY2xrICpjbGtfcmVnOw0KPiA+ICAgICAg ICAgc3RydWN0IHBoeSAqcGh5W0FSTUFEQThLX1BDSUVfTUFYX0xBTkVTXTsNCj4gPiBAQCAtMTEw LDcgKzExMCw3IEBAIHN0YXRpYyBpbnQgYXJtYWRhOGtfcGNpZV9lbmFibGVfcGh5cyhzdHJ1Y3QN Cj4gYXJtYWRhOGtfcGNpZSAqcGNpZSkNCj4gPg0KPiA+ICBzdGF0aWMgaW50IGFybWFkYThrX3Bj aWVfc2V0dXBfcGh5cyhzdHJ1Y3QgYXJtYWRhOGtfcGNpZSAqcGNpZSkNCj4gPiAgew0KPiA+IC0g ICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHBjaWUtPnBjaTsNCj4gPiArICAgICAgIHN0cnVj dCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocGNpZS0+cHApOw0KPiA+ICAgICAg ICAgc3RydWN0IGRldmljZSAqZGV2ID0gcGNpLT5kZXY7DQo+ID4gICAgICAgICBzdHJ1Y3QgZGV2 aWNlX25vZGUgKm5vZGUgPSBkZXYtPm9mX25vZGU7DQo+ID4gICAgICAgICBpbnQgcmV0ID0gMDsN Cj4gPiBAQCAtMjExLDcgKzIxMSw3IEBAIHN0YXRpYyBpbnQgYXJtYWRhOGtfcGNpZV9ob3N0X2lu aXQoc3RydWN0DQo+IHBjaWVfcG9ydCAqcHApDQo+ID4gIHN0YXRpYyBpcnFyZXR1cm5fdCBhcm1h ZGE4a19wY2llX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykNCj4gPiAgew0KPiA+ICAg ICAgICAgc3RydWN0IGFybWFkYThrX3BjaWUgKnBjaWUgPSBhcmc7DQo+ID4gLSAgICAgICBzdHJ1 Y3QgZHdfcGNpZSAqcGNpID0gcGNpZS0+cGNpOw0KPiA+ICsgICAgICAgc3RydWN0IGR3X3BjaWUg KnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwY2llLT5wcCk7DQo+ID4gICAgICAgICB1MzIgdmFs Ow0KPiA+DQo+ID4gICAgICAgICAvKg0KPiA+IEBAIC0yMzIsOCArMjMyLDcgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBkd19wY2llX2hvc3Rfb3BzDQo+IGFybWFkYThrX3BjaWVfaG9zdF9vcHMgPSB7 DQo+ID4gIHN0YXRpYyBpbnQgYXJtYWRhOGtfYWRkX3BjaWVfcG9ydChzdHJ1Y3QgYXJtYWRhOGtf cGNpZSAqcGNpZSwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gPiAgew0KPiA+IC0gICAgICAgc3RydWN0IGR3X3Bj aWUgKnBjaSA9IHBjaWUtPnBjaTsNCj4gPiAtICAgICAgIHN0cnVjdCBwY2llX3BvcnQgKnBwID0g JnBjaS0+cHA7DQo+ID4gKyAgICAgICBzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9IHBjaWUtPnBwOw0K PiA+ICAgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsNCj4gPiAgICAgICAg IGludCByZXQ7DQo+ID4NCj4gPiBAQCAtMjY3LDYgKzI2Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZHdfcGNpZV9vcHMgZHdfcGNpZV9vcHMgPSB7DQo+ID4gIHN0YXRpYyBpbnQgYXJtYWRhOGtf cGNpZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ICB7DQo+ID4gICAg ICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpOw0KPiA+ICsgICAgICAgc3RydWN0IHBjaWVfcG9ydCAq cHA7DQo+ID4gICAgICAgICBzdHJ1Y3QgYXJtYWRhOGtfcGNpZSAqcGNpZTsNCj4gPiAgICAgICAg IHN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7DQo+ID4gICAgICAgICBzdHJ1Y3QgcmVz b3VyY2UgKmJhc2U7DQo+ID4gQEAgLTI3NiwxNCArMjc2LDE1IEBAIHN0YXRpYyBpbnQgYXJtYWRh OGtfcGNpZV9wcm9iZShzdHJ1Y3QNCj4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ICAgICAg ICAgaWYgKCFwY2llKQ0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsNCj4gPg0K PiA+IC0gICAgICAgcGNpID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpwY2kpLCBHRlBfS0VS TkVMKTsNCj4gPiAtICAgICAgIGlmICghcGNpKQ0KPiA+ICsgICAgICAgcHAgPSBkZXZtX2t6YWxs b2MoZGV2LCBzaXplb2YoKnBwKSwgR0ZQX0tFUk5FTCk7DQo+ID4gKyAgICAgICBpZiAoIXBwKQ0K PiA+ICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsNCj4gPg0KPiA+ICsgICAgICAgcGNp ID0gJnBwLT5wY2llOw0KPiA+ICAgICAgICAgcGNpLT5kZXYgPSBkZXY7DQo+ID4gICAgICAgICBw Y2ktPm9wcyA9ICZkd19wY2llX29wczsNCj4gPg0KPiA+IC0gICAgICAgcGNpZS0+cGNpID0gcGNp Ow0KPiA+ICsgICAgICAgcGNpZS0+cHAgPSBwcDsNCj4gPg0KPiA+ICAgICAgICAgcGNpZS0+Y2xr ID0gZGV2bV9jbGtfZ2V0KGRldiwgTlVMTCk7DQo+ID4gICAgICAgICBpZiAoSVNfRVJSKHBjaWUt PmNsaykpDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUt YXJ0cGVjNi5jDQo+IGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1hcnRwZWM2LmMN Cj4gPiBpbmRleCBmODMzZGFmNmQ0MjIuLmYxY2NkNzRlZmY5ZCAxMDA2NDQNCj4gPiAtLS0gYS9k cml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWFydHBlYzYuYw0KPiA+ICsrKyBiL2RyaXZl cnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYXJ0cGVjNi5jDQo+ID4gQEAgLTMwLDcgKzMwLDgg QEAgZW51bSBhcnRwZWNfcGNpZV92YXJpYW50cyB7DQo+ID4gIH07DQo+ID4NCj4gPiAgc3RydWN0 IGFydHBlYzZfcGNpZSB7DQo+ID4gLSAgICAgICBzdHJ1Y3QgZHdfcGNpZSAgICAgICAgICAqcGNp Ow0KPiA+ICsgICAgICAgc3RydWN0IHBjaWVfcG9ydCAgICAgICAgKnBwOw0KPiA+ICsgICAgICAg c3RydWN0IGR3X3BjaWVfZXAgICAgICAgKmVwOw0KPiA+ICAgICAgICAgc3RydWN0IHJlZ21hcCAg ICAgICAgICAgKnJlZ21hcDsgICAgICAgIC8qIERUDQo+IGF4aXMsc3lzY29uLXBjaWUgKi8NCj4g PiAgICAgICAgIHZvaWQgX19pb21lbSAgICAgICAgICAgICpwaHlfYmFzZTsgICAgICAvKiBEVCBw aHkgKi8NCj4gPiAgICAgICAgIGVudW0gYXJ0cGVjX3BjaWVfdmFyaWFudHMgdmFyaWFudDsNCj4g PiBAQCAtOTcsOCArOTgsOCBAQCBzdGF0aWMgdm9pZCBhcnRwZWM2X3BjaWVfd3JpdGVsKHN0cnVj dCBhcnRwZWM2X3BjaWUNCj4gKmFydHBlYzZfcGNpZSwgdTMyIG9mZnNldCwgdQ0KPiA+ICBzdGF0 aWMgdTY0IGFydHBlYzZfcGNpZV9jcHVfYWRkcl9maXh1cChzdHJ1Y3QgZHdfcGNpZSAqcGNpLCB1 NjQNCj4gcGNpX2FkZHIpDQo+ID4gIHsNCj4gPiAgICAgICAgIHN0cnVjdCBhcnRwZWM2X3BjaWUg KmFydHBlYzZfcGNpZSA9IHRvX2FydHBlYzZfcGNpZShwY2kpOw0KPiA+IC0gICAgICAgc3RydWN0 IHBjaWVfcG9ydCAqcHAgPSAmcGNpLT5wcDsNCj4gPiAtICAgICAgIHN0cnVjdCBkd19wY2llX2Vw ICplcCA9ICZwY2ktPmVwOw0KPiA+ICsgICAgICAgc3RydWN0IHBjaWVfcG9ydCAqcHAgPSBhcnRw ZWM2X3BjaWUtPnBwOw0KPiA+ICsgICAgICAgc3RydWN0IGR3X3BjaWVfZXAgKmVwID0gYXJ0cGVj Nl9wY2llLT5lcDsNCj4gPg0KPiA+ICAgICAgICAgc3dpdGNoIChhcnRwZWM2X3BjaWUtPm1vZGUp IHsNCj4gPiAgICAgICAgIGNhc2UgRFdfUENJRV9SQ19UWVBFOg0KPiA+IEBAIC0xNDEsMTEgKzE0 MiwxOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGR3X3BjaWVfb3BzIGR3X3BjaWVfb3BzID0gew0K PiA+DQo+ID4gIHN0YXRpYyB2b2lkIGFydHBlYzZfcGNpZV93YWl0X2Zvcl9waHlfYTYoc3RydWN0 IGFydHBlYzZfcGNpZQ0KPiAqYXJ0cGVjNl9wY2llKQ0KPiA+ICB7DQo+ID4gLSAgICAgICBzdHJ1 Y3QgZHdfcGNpZSAqcGNpID0gYXJ0cGVjNl9wY2llLT5wY2k7DQo+ID4gLSAgICAgICBzdHJ1Y3Qg ZGV2aWNlICpkZXYgPSBwY2ktPmRldjsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2k7 DQo+ID4gKyAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXY7DQo+ID4gICAgICAgICB1MzIgdmFsOw0K PiA+ICAgICAgICAgdW5zaWduZWQgaW50IHJldHJpZXM7DQo+ID4NCj4gPiArICAgICAgIGlmIChh cnRwZWM2X3BjaWUtPm1vZGUgPT0gRFdfUENJRV9SQ19UWVBFKQ0KPiA+ICsgICAgICAgICAgICAg ICBwY2kgPSB0b19kd19wY2llX2Zyb21fcHAoYXJ0cGVjNl9wY2llLT5wcCk7DQo+ID4gKyAgICAg ICBlbHNlDQo+ID4gKyAgICAgICAgICAgICAgIHBjaSA9IHRvX2R3X3BjaWVfZnJvbV9lcChhcnRw ZWM2X3BjaWUtPmVwKTsNCj4gPiArDQo+ID4gKyAgICAgICBkZXYgPSBwY2ktPmRldjsNCj4gPiAr DQo+ID4gICAgICAgICByZXRyaWVzID0gNTA7DQo+ID4gICAgICAgICBkbyB7DQo+ID4gICAgICAg ICAgICAgICAgIHVzbGVlcF9yYW5nZSgxMDAwLCAyMDAwKTsNCj4gPiBAQCAtMTY4LDEyICsxNzYs MTkgQEAgc3RhdGljIHZvaWQNCj4gYXJ0cGVjNl9wY2llX3dhaXRfZm9yX3BoeV9hNihzdHJ1Y3Qg YXJ0cGVjNl9wY2llICphcnRwZWM2X3BjaWUpDQo+ID4NCj4gPiAgc3RhdGljIHZvaWQgYXJ0cGVj Nl9wY2llX3dhaXRfZm9yX3BoeV9hNyhzdHJ1Y3QgYXJ0cGVjNl9wY2llDQo+ICphcnRwZWM2X3Bj aWUpDQo+ID4gIHsNCj4gPiAtICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSBhcnRwZWM2X3Bj aWUtPnBjaTsNCj4gPiAtICAgICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9IHBjaS0+ZGV2Ow0KPiA+ ICsgICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBkZXZpY2Ug KmRldjsNCj4gPiAgICAgICAgIHUzMiB2YWw7DQo+ID4gICAgICAgICB1MTYgcGh5X3N0YXR1c190 eCwgcGh5X3N0YXR1c19yeDsNCj4gPiAgICAgICAgIHVuc2lnbmVkIGludCByZXRyaWVzOw0KPiA+ DQo+ID4gKyAgICAgICBpZiAoYXJ0cGVjNl9wY2llLT5tb2RlID09IERXX1BDSUVfUkNfVFlQRSkN Cj4gPiArICAgICAgICAgICAgICAgcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKGFydHBlYzZfcGNp ZS0+cHApOw0KPiA+ICsgICAgICAgZWxzZQ0KPiA+ICsgICAgICAgICAgICAgICBwY2kgPSB0b19k d19wY2llX2Zyb21fZXAoYXJ0cGVjNl9wY2llLT5lcCk7DQo+ID4gKw0KPiA+ICsgICAgICAgZGV2 ID0gcGNpLT5kZXY7DQo+ID4gKw0KPiA+ICAgICAgICAgcmV0cmllcyA9IDUwOw0KPiA+ICAgICAg ICAgZG8gew0KPiA+ICAgICAgICAgICAgICAgICB1c2xlZXBfcmFuZ2UoMTAwMCwgMjAwMCk7DQo+ ID4gQEAgLTI0MCwxMCArMjU1LDE1IEBAIHN0YXRpYyB2b2lkIGFydHBlYzZfcGNpZV9pbml0X3Bo eV9hNihzdHJ1Y3QNCj4gYXJ0cGVjNl9wY2llICphcnRwZWM2X3BjaWUpDQo+ID4NCj4gPiAgc3Rh dGljIHZvaWQgYXJ0cGVjNl9wY2llX2luaXRfcGh5X2E3KHN0cnVjdCBhcnRwZWM2X3BjaWUgKmFy dHBlYzZfcGNpZSkNCj4gPiAgew0KPiA+IC0gICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IGFy dHBlYzZfcGNpZS0+cGNpOw0KPiA+ICsgICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaTsNCj4gPiAg ICAgICAgIHUzMiB2YWw7DQo+ID4gICAgICAgICBib29sIGV4dHJlZmNsazsNCj4gPg0KPiA+ICsg ICAgICAgaWYgKGFydHBlYzZfcGNpZS0+bW9kZSA9PSBEV19QQ0lFX1JDX1RZUEUpDQo+ID4gKyAg ICAgICAgICAgICAgIHBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChhcnRwZWM2X3BjaWUtPnBwKTsN Cj4gPiArICAgICAgIGVsc2UNCj4gPiArICAgICAgICAgICAgICAgcGNpID0gdG9fZHdfcGNpZV9m cm9tX2VwKGFydHBlYzZfcGNpZS0+ZXApOw0KPiA+ICsNCj4gPiAgICAgICAgIC8qIENoZWNrIGlm IGV4dGVybmFsIHJlZmVyZW5jZSBjbG9jayBpcyBjb25uZWN0ZWQgKi8NCj4gPiAgICAgICAgIHZh bCA9IGFydHBlYzZfcGNpZV9yZWFkbChhcnRwZWM2X3BjaWUsIFBDSUVTVEFUKTsNCj4gPiAgICAg ICAgIGV4dHJlZmNsayA9ICEhKHZhbCAmIFBDSUVTVEFUX0VYVFJFRkNMSyk7DQo+ID4gQEAgLTM3 Nyw2ICszOTcsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGR3X3BjaWVfZXBfb3BzIHBjaWVfZXBf b3BzID0NCj4gew0KPiA+ICBzdGF0aWMgaW50IGFydHBlYzZfcGNpZV9wcm9iZShzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ICB7DQo+ID4gICAgICAgICBzdHJ1Y3QgZGV2aWNlICpk ZXYgPSAmcGRldi0+ZGV2Ow0KPiA+ICsgICAgICAgc3RydWN0IGR3X3BjaWVfZXAgKmVwOw0KPiA+ ICsgICAgICAgc3RydWN0IHBjaWVfcG9ydCAqcHA7DQo+ID4gICAgICAgICBzdHJ1Y3QgZHdfcGNp ZSAqcGNpOw0KPiA+ICAgICAgICAgc3RydWN0IGFydHBlYzZfcGNpZSAqYXJ0cGVjNl9wY2llOw0K PiA+ICAgICAgICAgaW50IHJldDsNCj4gPiBAQCAtMzk3LDE0ICs0MTksNiBAQCBzdGF0aWMgaW50 IGFydHBlYzZfcGNpZV9wcm9iZShzdHJ1Y3QNCj4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ ICAgICAgICAgaWYgKCFhcnRwZWM2X3BjaWUpDQo+ID4gICAgICAgICAgICAgICAgIHJldHVybiAt RU5PTUVNOw0KPiA+DQo+ID4gLSAgICAgICBwY2kgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2Yo KnBjaSksIEdGUF9LRVJORUwpOw0KPiA+IC0gICAgICAgaWYgKCFwY2kpDQo+ID4gLSAgICAgICAg ICAgICAgIHJldHVybiAtRU5PTUVNOw0KPiA+IC0NCj4gPiAtICAgICAgIHBjaS0+ZGV2ID0gZGV2 Ow0KPiA+IC0gICAgICAgcGNpLT5vcHMgPSAmZHdfcGNpZV9vcHM7DQo+ID4gLQ0KPiA+IC0gICAg ICAgYXJ0cGVjNl9wY2llLT5wY2kgPSBwY2k7DQo+ID4gICAgICAgICBhcnRwZWM2X3BjaWUtPnZh cmlhbnQgPSB2YXJpYW50Ow0KPiA+ICAgICAgICAgYXJ0cGVjNl9wY2llLT5tb2RlID0gbW9kZTsN Cj4gPg0KPiA+IEBAIC00MjMsMTggKzQzNywzOCBAQCBzdGF0aWMgaW50IGFydHBlYzZfcGNpZV9w cm9iZShzdHJ1Y3QNCj4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+DQo+ID4gICAgICAgICBz d2l0Y2ggKGFydHBlYzZfcGNpZS0+bW9kZSkgew0KPiA+ICAgICAgICAgY2FzZSBEV19QQ0lFX1JD X1RZUEU6DQo+ID4gKyAgICAgICAgICAgICAgIHBwID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9m KCpwcCksIEdGUF9LRVJORUwpOw0KPiA+ICsgICAgICAgICAgICAgICBpZiAoIXBwKQ0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPiA+ICsNCj4gPiArICAgICAg ICAgICAgICAgcGNpID0gJnBwLT5wY2llOw0KPiA+ICsgICAgICAgICAgICAgICBwY2ktPmRldiA9 IGRldjsNCj4gPiArICAgICAgICAgICAgICAgcGNpLT5vcHMgPSAmZHdfcGNpZV9vcHM7DQo+ID4g Kw0KPiA+ICsgICAgICAgICAgICAgICBhcnRwZWM2X3BjaWUtPnBwID0gcHA7DQo+ID4gKw0KPiA+ ICAgICAgICAgICAgICAgICBpZiAoIUlTX0VOQUJMRUQoQ09ORklHX1BDSUVfQVJUUEVDNl9IT1NU KSkNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT0RFVjsNCj4gPg0KPiA+ IC0gICAgICAgICAgICAgICBwY2ktPnBwLm9wcyA9ICZhcnRwZWM2X3BjaWVfaG9zdF9vcHM7DQo+ ID4gKyAgICAgICAgICAgICAgIHBwLT5vcHMgPSAmYXJ0cGVjNl9wY2llX2hvc3Rfb3BzOw0KPiA+ DQo+ID4gLSAgICAgICAgICAgICAgIHJldCA9IGR3X3BjaWVfaG9zdF9pbml0KCZwY2ktPnBwKTsN Cj4gPiArICAgICAgICAgICAgICAgcmV0ID0gZHdfcGNpZV9ob3N0X2luaXQocHApOw0KPiA+ICAg ICAgICAgICAgICAgICBpZiAocmV0IDwgMCkNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gcmV0Ow0KPiA+ICAgICAgICAgICAgICAgICBicmVhazsNCj4gPiAgICAgICAgIGNhc2Ug RFdfUENJRV9FUF9UWVBFOiB7DQo+ID4gICAgICAgICAgICAgICAgIHUzMiB2YWw7DQo+ID4NCj4g PiArICAgICAgICAgICAgICAgZXAgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKmVwKSwgR0ZQ X0tFUk5FTCk7DQo+ID4gKyAgICAgICAgICAgICAgIGlmICghZXApDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICBw Y2kgPSAmZXAtPnBjaWU7DQo+ID4gKyAgICAgICAgICAgICAgIHBjaS0+ZGV2ID0gZGV2Ow0KPiA+ ICsgICAgICAgICAgICAgICBwY2ktPm9wcyA9ICZkd19wY2llX29wczsNCj4gPiArDQo+ID4gKyAg ICAgICAgICAgICAgIGFydHBlYzZfcGNpZS0+ZXAgPSBlcDsNCj4gPiArDQo+ID4gICAgICAgICAg ICAgICAgIGlmICghSVNfRU5BQkxFRChDT05GSUdfUENJRV9BUlRQRUM2X0VQKSkNCj4gPiAgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT0RFVjsNCj4gPg0KPiA+IEBAIC00NDIsOSAr NDc2LDkgQEAgc3RhdGljIGludCBhcnRwZWM2X3BjaWVfcHJvYmUoc3RydWN0DQo+IHBsYXRmb3Jt X2RldmljZSAqcGRldikNCj4gPiAgICAgICAgICAgICAgICAgdmFsICY9IH5QQ0lFQ0ZHX0RFVklD RV9UWVBFX01BU0s7DQo+ID4gICAgICAgICAgICAgICAgIGFydHBlYzZfcGNpZV93cml0ZWwoYXJ0 cGVjNl9wY2llLCBQQ0lFQ0ZHLCB2YWwpOw0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgIHBjaS0+ ZXAub3BzID0gJnBjaWVfZXBfb3BzOw0KPiA+ICsgICAgICAgICAgICAgICBlcC0+b3BzID0gJnBj aWVfZXBfb3BzOw0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgIHJldHVybiBkd19wY2llX2VwX2lu aXQoJnBjaS0+ZXApOw0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gZHdfcGNpZV9lcF9pbml0 KGVwKTsNCj4gPiAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gICAgICAgICB9DQo+ID4gICAg ICAgICBkZWZhdWx0Og0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3 Yy9wY2llLWRlc2lnbndhcmUtaG9zdC5jDQo+IGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2Mv cGNpZS1kZXNpZ253YXJlLWhvc3QuYw0KPiA+IGluZGV4IDA0MTMyODRmZGQ5My4uMjcyOTJlMmYz Mzg5IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVz aWdud2FyZS1ob3N0LmMNCj4gPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ll LWRlc2lnbndhcmUtaG9zdC5jDQo+ID4gQEAgLTI5OSw3ICsyOTksNyBAQCBpbnQgZHdfcGNpZV9o b3N0X2luaXQoc3RydWN0IHBjaWVfcG9ydCAqcHApDQo+ID4gICAgICAgICBzdHJ1Y3QgcmVzb3Vy Y2UgKmNmZ19yZXM7DQo+ID4gICAgICAgICBpbnQgcmV0Ow0KPiA+DQo+ID4gLSAgICAgICByYXdf c3Bpbl9sb2NrX2luaXQoJnBjaS0+cHAubG9jayk7DQo+ID4gKyAgICAgICByYXdfc3Bpbl9sb2Nr X2luaXQoJnBwLT5sb2NrKTsNCj4gPg0KPiA+ICAgICAgICAgY2ZnX3JlcyA9IHBsYXRmb3JtX2dl dF9yZXNvdXJjZV9ieW5hbWUocGRldiwNCj4gSU9SRVNPVVJDRV9NRU0sICJjb25maWciKTsNCj4g PiAgICAgICAgIGlmIChjZmdfcmVzKSB7DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2FyZS1wbGF0LmMNCj4gYi9kcml2ZXJzL3BjaS9jb250 cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUtcGxhdC5jDQo+ID4gaW5kZXggNDlkNTE1ODRhNTQ3 Li44YWFjN2Y2Y2VmMDggMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9k d2MvcGNpZS1kZXNpZ253YXJlLXBsYXQuYw0KPiA+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xs ZXIvZHdjL3BjaWUtZGVzaWdud2FyZS1wbGF0LmMNCj4gPiBAQCAtMjIsNyArMjIsOCBAQA0KPiA+ ICAjaW5jbHVkZSAicGNpZS1kZXNpZ253YXJlLmgiDQo+ID4NCj4gPiAgc3RydWN0IGR3X3BsYXRf cGNpZSB7DQo+ID4gLSAgICAgICBzdHJ1Y3QgZHdfcGNpZSAgICAgICAgICAgICAgICAgICpwY2k7 DQo+ID4gKyAgICAgICBzdHJ1Y3QgcGNpZV9wb3J0ICAgICAgICAgICAgICAgICpwcDsNCj4gPiAr ICAgICAgIHN0cnVjdCBkd19wY2llX2VwICAgICAgICAgICAgICAgKmVwOw0KPiA+ICAgICAgICAg c3RydWN0IHJlZ21hcCAgICAgICAgICAgICAgICAgICAqcmVnbWFwOw0KPiA+ICAgICAgICAgZW51 bSBkd19wY2llX2RldmljZV9tb2RlICAgICAgICBtb2RlOw0KPiA+ICB9Ow0KPiA+IEBAIC05NCw4 ICs5NSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdfcGNpZV9lcF9vcHMgcGNpZV9lcF9vcHMg PSB7DQo+ID4gIHN0YXRpYyBpbnQgZHdfcGxhdF9hZGRfcGNpZV9wb3J0KHN0cnVjdCBkd19wbGF0 X3BjaWUgKmR3X3BsYXRfcGNpZSwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ICB7DQo+ID4gLSAgICAgICBzdHJ1 Y3QgZHdfcGNpZSAqcGNpID0gZHdfcGxhdF9wY2llLT5wY2k7DQo+ID4gLSAgICAgICBzdHJ1Y3Qg cGNpZV9wb3J0ICpwcCA9ICZwY2ktPnBwOw0KPiA+ICsgICAgICAgc3RydWN0IHBjaWVfcG9ydCAq cHAgPSBkd19wbGF0X3BjaWUtPnBwOw0KPiA+ICAgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0g JnBkZXYtPmRldjsNCj4gPiAgICAgICAgIGludCByZXQ7DQo+ID4NCj4gPiBAQCAtMTE5LDYgKzEx OSw4IEBAIHN0YXRpYyBpbnQgZHdfcGxhdF9wY2llX3Byb2JlKHN0cnVjdA0KPiBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpDQo+ID4gIHsNCj4gPiAgICAgICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9ICZw ZGV2LT5kZXY7DQo+ID4gICAgICAgICBzdHJ1Y3QgZHdfcGxhdF9wY2llICpkd19wbGF0X3BjaWU7 DQo+ID4gKyAgICAgICBzdHJ1Y3QgZHdfcGNpZV9lcCAqZXA7DQo+ID4gKyAgICAgICBzdHJ1Y3Qg cGNpZV9wb3J0ICpwcDsNCj4gPiAgICAgICAgIHN0cnVjdCBkd19wY2llICpwY2k7DQo+ID4gICAg ICAgICBpbnQgcmV0Ow0KPiA+ICAgICAgICAgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCAqbWF0 Y2g7DQo+ID4gQEAgLTEzNiwyMCArMTM4LDIxIEBAIHN0YXRpYyBpbnQgZHdfcGxhdF9wY2llX3By b2JlKHN0cnVjdA0KPiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gICAgICAgICBpZiAoIWR3 X3BsYXRfcGNpZSkNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ID4NCj4g PiAtICAgICAgIHBjaSA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcGNpKSwgR0ZQX0tFUk5F TCk7DQo+ID4gLSAgICAgICBpZiAoIXBjaSkNCj4gPiAtICAgICAgICAgICAgICAgcmV0dXJuIC1F Tk9NRU07DQo+ID4gLQ0KPiA+IC0gICAgICAgcGNpLT5kZXYgPSBkZXY7DQo+ID4gLSAgICAgICBw Y2ktPm9wcyA9ICZkd19wY2llX29wczsNCj4gPiAtDQo+ID4gLSAgICAgICBkd19wbGF0X3BjaWUt PnBjaSA9IHBjaTsNCj4gPiAgICAgICAgIGR3X3BsYXRfcGNpZS0+bW9kZSA9IG1vZGU7DQo+ID4N Cj4gPiAgICAgICAgIHBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGR3X3BsYXRfcGNpZSk7DQo+ ID4NCj4gPiAgICAgICAgIHN3aXRjaCAoZHdfcGxhdF9wY2llLT5tb2RlKSB7DQo+ID4gICAgICAg ICBjYXNlIERXX1BDSUVfUkNfVFlQRToNCj4gPiArICAgICAgICAgICAgICAgcHAgPSBkZXZtX2t6 YWxsb2MoZGV2LCBzaXplb2YoKnBwKSwgR0ZQX0tFUk5FTCk7DQo+ID4gKyAgICAgICAgICAgICAg IGlmICghcHApDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ ID4gKw0KPiA+ICsgICAgICAgICAgICAgICBwY2kgPSAmcHAtPnBjaWU7DQo+ID4gKyAgICAgICAg ICAgICAgIHBjaS0+ZGV2ID0gZGV2Ow0KPiA+ICsgICAgICAgICAgICAgICBwY2ktPm9wcyA9ICZk d19wY2llX29wczsNCj4gPiArICAgICAgICAgICAgICAgZHdfcGxhdF9wY2llLT5wcCA9IHBwOw0K PiA+ICsNCj4gPiAgICAgICAgICAgICAgICAgaWYgKCFJU19FTkFCTEVEKENPTkZJR19QQ0lFX0RX X1BMQVRfSE9TVCkpDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9ERVY7 DQo+ID4NCj4gPiBAQCAtMTU4LDExICsxNjEsMjAgQEAgc3RhdGljIGludCBkd19wbGF0X3BjaWVf cHJvYmUoc3RydWN0DQo+IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gPiAgICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiA+ICAgICAgICAgICAgICAgICBicmVhazsNCj4gPiAg ICAgICAgIGNhc2UgRFdfUENJRV9FUF9UWVBFOg0KPiA+ICsgICAgICAgICAgICAgICBlcCA9IGRl dm1fa3phbGxvYyhkZXYsIHNpemVvZigqZXApLCBHRlBfS0VSTkVMKTsNCj4gPiArICAgICAgICAg ICAgICAgaWYgKCFlcCkNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT01F TTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIHBjaSA9ICZlcC0+cGNpZTsNCj4gPiArICAg ICAgICAgICAgICAgcGNpLT5kZXYgPSBkZXY7DQo+ID4gKyAgICAgICAgICAgICAgIHBjaS0+b3Bz ID0gJmR3X3BjaWVfb3BzOw0KPiA+ICsgICAgICAgICAgICAgICBkd19wbGF0X3BjaWUtPmVwID0g ZXA7DQo+ID4gKw0KPiA+ICAgICAgICAgICAgICAgICBpZiAoIUlTX0VOQUJMRUQoQ09ORklHX1BD SUVfRFdfUExBVF9FUCkpDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9E RVY7DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgcGNpLT5lcC5vcHMgPSAmcGNpZV9lcF9vcHM7 DQo+ID4gLSAgICAgICAgICAgICAgIHJldHVybiBkd19wY2llX2VwX2luaXQoJnBjaS0+ZXApOw0K PiA+ICsgICAgICAgICAgICAgICBlcC0+b3BzID0gJnBjaWVfZXBfb3BzOw0KPiA+ICsgICAgICAg ICAgICAgICByZXR1cm4gZHdfcGNpZV9lcF9pbml0KGVwKTsNCj4gPiAgICAgICAgICAgICAgICAg YnJlYWs7DQo+ID4gICAgICAgICBkZWZhdWx0Og0KPiA+ICAgICAgICAgICAgICAgICBkZXZfZXJy KGRldiwgIklOVkFMSUQgZGV2aWNlIHR5cGUgJWRcbiIsDQo+IGR3X3BsYXRfcGNpZS0+bW9kZSk7 DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdu d2FyZS5oDQo+IGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLmgN Cj4gPiBpbmRleCAxMGJhMDkyMzdkZWYuLjY4OWM0Yzg5ZTFmNiAxMDA2NDQNCj4gPiAtLS0gYS9k cml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUuaA0KPiA+ICsrKyBiL2Ry aXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2FyZS5oDQo+ID4gQEAgLTE3MSwx MiArMTcxLDQ0IEBAIGVudW0gZHdfcGNpZV9kZXZpY2VfbW9kZSB7DQo+ID4gICAgICAgICBEV19Q Q0lFX1JDX1RZUEUsDQo+ID4gIH07DQo+ID4NCj4gPiArc3RydWN0IGR3X3BjaWVfb3BzIHsNCj4g PiArICAgICAgIHU2NCAgICAgKCpjcHVfYWRkcl9maXh1cCkoc3RydWN0IGR3X3BjaWUgKnBjaWUs IHU2NA0KPiBjcHVfYWRkcik7DQo+ID4gKyAgICAgICB1MzIgICAgICgqcmVhZF9kYmkpKHN0cnVj dCBkd19wY2llICpwY2llLCB2b2lkIF9faW9tZW0gKmJhc2UsDQo+IHUzMiByZWcsDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKTsNCj4gPiArICAgICAgIHZvaWQg ICAgKCp3cml0ZV9kYmkpKHN0cnVjdCBkd19wY2llICpwY2llLCB2b2lkIF9faW9tZW0gKmJhc2Us DQo+IHUzMiByZWcsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6 ZSwgdTMyIHZhbCk7DQo+ID4gKyAgICAgICB2b2lkICAgICgqd3JpdGVfZGJpMikoc3RydWN0IGR3 X3BjaWUgKnBjaWUsIHZvaWQgX19pb21lbQ0KPiAqYmFzZSwgdTMyIHJlZywNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwgdTMyIHZhbCk7DQo+ID4gKyAgICAg ICBpbnQgICAgICgqbGlua191cCkoc3RydWN0IGR3X3BjaWUgKnBjaWUpOw0KPiA+ICsgICAgICAg aW50ICAgICAoKnN0YXJ0X2xpbmspKHN0cnVjdCBkd19wY2llICpwY2llKTsNCj4gPiArICAgICAg IHZvaWQgICAgKCpzdG9wX2xpbmspKHN0cnVjdCBkd19wY2llICpwY2llKTsNCj4gPiArfTsNCj4g PiArDQo+ID4gK3N0cnVjdCBkd19wY2llIHsNCj4gPiArICAgICAgIHN0cnVjdCBkZXZpY2UgICAg ICAgICAgICpkZXY7DQo+ID4gKyAgICAgICB2b2lkIF9faW9tZW0gICAgICAgICAgICAqZGJpX2Jh c2U7DQo+ID4gKyAgICAgICB2b2lkIF9faW9tZW0gICAgICAgICAgICAqZGJpX2Jhc2UyOw0KPiA+ ICsgICAgICAgLyogVXNlZCB3aGVuIGlhdHVfdW5yb2xsX2VuYWJsZWQgaXMgdHJ1ZSAqLw0KPiA+ ICsgICAgICAgdm9pZCBfX2lvbWVtICAgICAgICAgICAgKmF0dV9iYXNlOw0KPiA+ICsgICAgICAg c2l6ZV90ICAgICAgICAgICAgICAgICAgYXR1X3NpemU7DQo+ID4gKyAgICAgICB1MzIgICAgICAg ICAgICAgICAgICAgICBudW1faWJfd2luZG93czsNCj4gPiArICAgICAgIHUzMiAgICAgICAgICAg ICAgICAgICAgIG51bV9vYl93aW5kb3dzOw0KPiA+ICsgICAgICAgY29uc3Qgc3RydWN0IGR3X3Bj aWVfb3BzICpvcHM7DQo+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQgICAgICAgICAgICB2ZXJzaW9u Ow0KPiA+ICsgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgbnVtX2xhbmVzOw0KPiA+ICsg ICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgbGlua19nZW47DQo+ID4gKyAgICAgICB1OCAg ICAgICAgICAgICAgICAgICAgICBuX2Z0c1syXTsNCj4gPiArICAgICAgIGJvb2wgICAgICAgICAg ICAgICAgICAgIGlhdHVfdW5yb2xsX2VuYWJsZWQ6IDE7DQo+ID4gKyAgICAgICBib29sICAgICAg ICAgICAgICAgICAgICBpb19jZmdfYXR1X3NoYXJlZDogMTsNCj4gPiArfTsNCj4gPiArDQo+ID4g IHN0cnVjdCBkd19wY2llX2hvc3Rfb3BzIHsNCj4gPiAgICAgICAgIGludCAoKmhvc3RfaW5pdCko c3RydWN0IHBjaWVfcG9ydCAqcHApOw0KPiA+ICAgICAgICAgaW50ICgqbXNpX2hvc3RfaW5pdCko c3RydWN0IHBjaWVfcG9ydCAqcHApOw0KPiA+ICB9Ow0KPiA+DQo+ID4gIHN0cnVjdCBwY2llX3Bv cnQgew0KPiA+ICsgICAgICAgc3RydWN0IGR3X3BjaWUgICAgICAgICAgcGNpZTsNCj4gPiAgICAg ICAgIGJvb2wgICAgICAgICAgICAgICAgICAgIGhhc19tc2lfY3RybDoxOw0KPiA+ICAgICAgICAg dTY0ICAgICAgICAgICAgICAgICAgICAgY2ZnMF9iYXNlOw0KPiA+ICAgICAgICAgdm9pZCBfX2lv bWVtICAgICAgICAgICAgKnZhX2NmZzBfYmFzZTsNCj4gPiBAQCAtMjI4LDYgKzI2MCw3IEBAIHN0 cnVjdCBkd19wY2llX2VwX2Z1bmMgew0KPiA+ICB9Ow0KPiA+DQo+ID4gIHN0cnVjdCBkd19wY2ll X2VwIHsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICAgICAgICAgIHBjaWU7DQo+ID4gICAg ICAgICBzdHJ1Y3QgcGNpX2VwYyAgICAgICAgICAqZXBjOw0KPiA+ICAgICAgICAgc3RydWN0IGR3 X3BjaWVfZXBfZnVuYyAgKmZ1bmNzOw0KPiA+ICAgICAgICAgY29uc3Qgc3RydWN0IGR3X3BjaWVf ZXBfb3BzICpvcHM7DQo+ID4gQEAgLTI0Myw0MyArMjc2LDggQEAgc3RydWN0IGR3X3BjaWVfZXAg ew0KPiA+ICAgICAgICAgc3RydWN0IHBjaV9lcGZfYmFyICAgICAgKmVwZl9iYXJbUENJX1NURF9O VU1fQkFSU107DQo+ID4gIH07DQo+ID4NCj4gPiAtc3RydWN0IGR3X3BjaWVfb3BzIHsNCj4gPiAt ICAgICAgIHU2NCAgICAgKCpjcHVfYWRkcl9maXh1cCkoc3RydWN0IGR3X3BjaWUgKnBjaWUsIHU2 NCBjcHVfYWRkcik7DQo+ID4gLSAgICAgICB1MzIgICAgICgqcmVhZF9kYmkpKHN0cnVjdCBkd19w Y2llICpwY2llLCB2b2lkIF9faW9tZW0gKmJhc2UsDQo+IHUzMiByZWcsDQo+ID4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKTsNCj4gPiAtICAgICAgIHZvaWQgICAgKCp3 cml0ZV9kYmkpKHN0cnVjdCBkd19wY2llICpwY2llLCB2b2lkIF9faW9tZW0gKmJhc2UsDQo+IHUz MiByZWcsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwgdTMy IHZhbCk7DQo+ID4gLSAgICAgICB2b2lkICAgICgqd3JpdGVfZGJpMikoc3RydWN0IGR3X3BjaWUg KnBjaWUsIHZvaWQgX19pb21lbSAqYmFzZSwNCj4gdTMyIHJlZywNCj4gPiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwgdTMyIHZhbCk7DQo+ID4gLSAgICAgICBpbnQg ICAgICgqbGlua191cCkoc3RydWN0IGR3X3BjaWUgKnBjaWUpOw0KPiA+IC0gICAgICAgaW50ICAg ICAoKnN0YXJ0X2xpbmspKHN0cnVjdCBkd19wY2llICpwY2llKTsNCj4gPiAtICAgICAgIHZvaWQg ICAgKCpzdG9wX2xpbmspKHN0cnVjdCBkd19wY2llICpwY2llKTsNCj4gPiAtfTsNCj4gPiAtDQo+ ID4gLXN0cnVjdCBkd19wY2llIHsNCj4gPiAtICAgICAgIHN0cnVjdCBkZXZpY2UgICAgICAgICAg ICpkZXY7DQo+ID4gLSAgICAgICB2b2lkIF9faW9tZW0gICAgICAgICAgICAqZGJpX2Jhc2U7DQo+ ID4gLSAgICAgICB2b2lkIF9faW9tZW0gICAgICAgICAgICAqZGJpX2Jhc2UyOw0KPiA+IC0gICAg ICAgLyogVXNlZCB3aGVuIGlhdHVfdW5yb2xsX2VuYWJsZWQgaXMgdHJ1ZSAqLw0KPiA+IC0gICAg ICAgdm9pZCBfX2lvbWVtICAgICAgICAgICAgKmF0dV9iYXNlOw0KPiA+IC0gICAgICAgc2l6ZV90 ICAgICAgICAgICAgICAgICAgYXR1X3NpemU7DQo+ID4gLSAgICAgICB1MzIgICAgICAgICAgICAg ICAgICAgICBudW1faWJfd2luZG93czsNCj4gPiAtICAgICAgIHUzMiAgICAgICAgICAgICAgICAg ICAgIG51bV9vYl93aW5kb3dzOw0KPiA+IC0gICAgICAgc3RydWN0IHBjaWVfcG9ydCAgICAgICAg cHA7DQo+ID4gLSAgICAgICBzdHJ1Y3QgZHdfcGNpZV9lcCAgICAgICBlcDsNCj4gPiAtICAgICAg IGNvbnN0IHN0cnVjdCBkd19wY2llX29wcyAqb3BzOw0KPiA+IC0gICAgICAgdW5zaWduZWQgaW50 ICAgICAgICAgICAgdmVyc2lvbjsNCj4gPiAtICAgICAgIGludCAgICAgICAgICAgICAgICAgICAg IG51bV9sYW5lczsNCj4gPiAtICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgIGxpbmtfZ2Vu Ow0KPiA+IC0gICAgICAgdTggICAgICAgICAgICAgICAgICAgICAgbl9mdHNbMl07DQo+ID4gLSAg ICAgICBib29sICAgICAgICAgICAgICAgICAgICBpYXR1X3Vucm9sbF9lbmFibGVkOiAxOw0KPiA+ IC0gICAgICAgYm9vbCAgICAgICAgICAgICAgICAgICAgaW9fY2ZnX2F0dV9zaGFyZWQ6IDE7DQo+ ID4gLX07DQo+ID4gLQ0KPiA+IC0jZGVmaW5lIHRvX2R3X3BjaWVfZnJvbV9wcChwb3J0KSBjb250 YWluZXJfb2YoKHBvcnQpLCBzdHJ1Y3QgZHdfcGNpZSwNCj4gcHApDQo+ID4gLQ0KPiA+IC0jZGVm aW5lIHRvX2R3X3BjaWVfZnJvbV9lcChlbmRwb2ludCkgICBcDQo+ID4gLSAgICAgICAgICAgICAg IGNvbnRhaW5lcl9vZigoZW5kcG9pbnQpLCBzdHJ1Y3QgZHdfcGNpZSwgZXApDQo+ID4gKyNkZWZp bmUgdG9fZHdfcGNpZV9mcm9tX3BwKHBvcnQpICAgICAgICgmKHBvcnQpLT5wY2llKQ0KPiA+ICsj ZGVmaW5lIHRvX2R3X3BjaWVfZnJvbV9lcChlbmRwb2ludCkgICAoJihlbmRwb2ludCktPnBjaWUp DQo+ID4NCj4gPiAgdTggZHdfcGNpZV9maW5kX2NhcGFiaWxpdHkoc3RydWN0IGR3X3BjaWUgKnBj aSwgdTggY2FwKTsNCj4gPiAgdTE2IGR3X3BjaWVfZmluZF9leHRfY2FwYWJpbGl0eShzdHJ1Y3Qg ZHdfcGNpZSAqcGNpLCB1OCBjYXApOw0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250 cm9sbGVyL2R3Yy9wY2llLWhpc3RiLmMNCj4gYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9w Y2llLWhpc3RiLmMNCj4gPiBpbmRleCA4NmY5ZDE2YzUwZDcuLjYyZDdhZTRmYjE0YiAxMDA2NDQN Cj4gPiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWhpc3RiLmMNCj4gPiAr KysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWhpc3RiLmMNCj4gPiBAQCAtNTAs NyArNTAsNyBAQA0KPiA+ICAjZGVmaW5lIFBDSUVfTFRTU01fU1RBVEVfQUNUSVZFICAgICAgICAg ICAgICAgIDB4MTENCj4gPg0KPiA+ICBzdHJ1Y3QgaGlzdGJfcGNpZSB7DQo+ID4gLSAgICAgICBz dHJ1Y3QgZHdfcGNpZSAqcGNpOw0KPiA+ICsgICAgICAgc3RydWN0IHBjaWVfcG9ydCAqcHA7DQo+ ID4gICAgICAgICBzdHJ1Y3QgY2xrICphdXhfY2xrOw0KPiA+ICAgICAgICAgc3RydWN0IGNsayAq cGlwZV9jbGs7DQo+ID4gICAgICAgICBzdHJ1Y3QgY2xrICpzeXNfY2xrOw0KPiA+IEBAIC0xMDUs MTEgKzEwNSwxMiBAQCBzdGF0aWMgdm9pZCBoaXN0Yl9wY2llX2RiaV9yX21vZGUoc3RydWN0DQo+ IHBjaWVfcG9ydCAqcHAsIGJvb2wgZW5hYmxlKQ0KPiA+ICBzdGF0aWMgdTMyIGhpc3RiX3BjaWVf cmVhZF9kYmkoc3RydWN0IGR3X3BjaWUgKnBjaSwgdm9pZCBfX2lvbWVtICpiYXNlLA0KPiA+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MzIgcmVnLCBzaXplX3Qgc2l6ZSkNCj4gPiAg ew0KPiA+ICsgICAgICAgc3RydWN0IGhpc3RiX3BjaWUgKmhpcGNpZSA9IHRvX2hpc3RiX3BjaWUo cGNpKTsNCj4gPiAgICAgICAgIHUzMiB2YWw7DQo+ID4NCj4gPiAtICAgICAgIGhpc3RiX3BjaWVf ZGJpX3JfbW9kZSgmcGNpLT5wcCwgdHJ1ZSk7DQo+ID4gKyAgICAgICBoaXN0Yl9wY2llX2RiaV9y X21vZGUoaGlwY2llLT5wcCwgdHJ1ZSk7DQo+IA0KPiBEQkkgYWNjZXNzIHJlYWxseSBoYXMgbm90 aGluZyB0byBkbyB3aXRoIFJDIG9yIEVQIG1vZGUsIHNvIHRoaXMNCj4gZnVuY3Rpb24gc2hvdWxk IHByb2JhYmx5IHRha2UgYSBzdHJ1Y3QgZHdfcGNpZSAqLg0KDQpBZ3JlZSwgaXQgY2FuIGJlIGlt cHJvdmVkIGJ1dCB0aGlzIHBhdGNoIGlzIG5vdCBpbnRlbmQgdG8gY2hhbmdlIHRoZSBwbGF0Zm9y bSBkcml2ZXINCmludGVybmFsIG9wZXJhdGlvbnMuDQoNCj4gDQo+ID4gICAgICAgICBkd19wY2ll X3JlYWQoYmFzZSArIHJlZywgc2l6ZSwgJnZhbCk7DQo+ID4gLSAgICAgICBoaXN0Yl9wY2llX2Ri aV9yX21vZGUoJnBjaS0+cHAsIGZhbHNlKTsNCj4gPiArICAgICAgIGhpc3RiX3BjaWVfZGJpX3Jf bW9kZShoaXBjaWUtPnBwLCBmYWxzZSk7DQo+ID4NCj4gPiAgICAgICAgIHJldHVybiB2YWw7DQo+ ID4gIH0NCj4gPiBAQCAtMTE3LDE1ICsxMTgsMTggQEAgc3RhdGljIHUzMiBoaXN0Yl9wY2llX3Jl YWRfZGJpKHN0cnVjdCBkd19wY2llDQo+ICpwY2ksIHZvaWQgX19pb21lbSAqYmFzZSwNCj4gPiAg c3RhdGljIHZvaWQgaGlzdGJfcGNpZV93cml0ZV9kYmkoc3RydWN0IGR3X3BjaWUgKnBjaSwgdm9p ZCBfX2lvbWVtDQo+ICpiYXNlLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHUzMiByZWcsIHNpemVfdCBzaXplLCB1MzIgdmFsKQ0KPiA+ICB7DQo+ID4gLSAgICAgICBoaXN0 Yl9wY2llX2RiaV93X21vZGUoJnBjaS0+cHAsIHRydWUpOw0KPiA+ICsgICAgICAgc3RydWN0IGhp c3RiX3BjaWUgKmhpcGNpZSA9IHRvX2hpc3RiX3BjaWUocGNpKTsNCj4gPiArDQo+ID4gKyAgICAg ICBoaXN0Yl9wY2llX2RiaV93X21vZGUoaGlwY2llLT5wcCwgdHJ1ZSk7DQo+ID4gICAgICAgICBk d19wY2llX3dyaXRlKGJhc2UgKyByZWcsIHNpemUsIHZhbCk7DQo+ID4gLSAgICAgICBoaXN0Yl9w Y2llX2RiaV93X21vZGUoJnBjaS0+cHAsIGZhbHNlKTsNCj4gPiArICAgICAgIGhpc3RiX3BjaWVf ZGJpX3dfbW9kZShoaXBjaWUtPnBwLCBmYWxzZSk7DQo+ID4gIH0NCj4gPg0KPiA+ICBzdGF0aWMg aW50IGhpc3RiX3BjaWVfcmRfb3duX2NvbmYoc3RydWN0IHBjaV9idXMgKmJ1cywgdW5zaWduZWQg aW50DQo+IGRldmZuLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg d2hlcmUsIGludCBzaXplLCB1MzIgKnZhbCkNCj4gPiAgew0KPiA+IC0gICAgICAgc3RydWN0IGR3 X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChidXMtPnN5c2RhdGEpOw0KPiA+ICsgICAg ICAgc3RydWN0IHBjaWVfcG9ydCAqcHAgPSBidXMtPnN5c2RhdGE7DQo+ID4gKyAgICAgICBzdHJ1 Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsNCj4gPg0KPiA+ICAgICAg ICAgaWYgKFBDSV9TTE9UKGRldmZuKSkgew0KPiA+ICAgICAgICAgICAgICAgICAqdmFsID0gfjA7 DQo+ID4gQEAgLTEzOSw3ICsxNDMsOCBAQCBzdGF0aWMgaW50IGhpc3RiX3BjaWVfcmRfb3duX2Nv bmYoc3RydWN0IHBjaV9idXMNCj4gKmJ1cywgdW5zaWduZWQgaW50IGRldmZuLA0KPiA+ICBzdGF0 aWMgaW50IGhpc3RiX3BjaWVfd3Jfb3duX2NvbmYoc3RydWN0IHBjaV9idXMgKmJ1cywgdW5zaWdu ZWQgaW50DQo+IGRldmZuLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQgd2hlcmUsIGludCBzaXplLCB1MzIgdmFsKQ0KPiA+ICB7DQo+ID4gLSAgICAgICBzdHJ1Y3Qg ZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKGJ1cy0+c3lzZGF0YSk7DQo+ID4gKyAg ICAgICBzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9IGJ1cy0+c3lzZGF0YTsNCj4gPiArICAgICAgIHN0 cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOw0KPiA+DQo+ID4gICAg ICAgICBpZiAoUENJX1NMT1QoZGV2Zm4pKQ0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gUENJ QklPU19ERVZJQ0VfTk9UX0ZPVU5EOw0KPiA+IEBAIC0zMTAsMTIgKzMxNSwxMiBAQCBzdGF0aWMg aW50IGhpc3RiX3BjaWVfcHJvYmUoc3RydWN0DQo+IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4g PiAgICAgICAgIGlmICghaGlwY2llKQ0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT01F TTsNCj4gPg0KPiA+IC0gICAgICAgcGNpID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpwY2kp LCBHRlBfS0VSTkVMKTsNCj4gPiAtICAgICAgIGlmICghcGNpKQ0KPiA+ICsgICAgICAgcHAgPSBk ZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnBwKSwgR0ZQX0tFUk5FTCk7DQo+ID4gKyAgICAgICBp ZiAoIXBwKQ0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsNCj4gPg0KPiA+IC0g ICAgICAgaGlwY2llLT5wY2kgPSBwY2k7DQo+ID4gLSAgICAgICBwcCA9ICZwY2ktPnBwOw0KPiA+ ICsgICAgICAgaGlwY2llLT5wcCA9IHBwOw0KPiA+ICsgICAgICAgcGNpID0gJnBwLT5wY2llOw0K PiA+ICAgICAgICAgcGNpLT5kZXYgPSBkZXY7DQo+ID4gICAgICAgICBwY2ktPm9wcyA9ICZkd19w Y2llX29wczsNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3 Yy9wY2llLWludGVsLWd3LmMNCj4gYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWlu dGVsLWd3LmMNCj4gPiBpbmRleCAwY2VkZDFmOTVmMzcuLjI5ZDU2YmRhMjU1MCAxMDA2NDQNCj4g PiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWludGVsLWd3LmMNCj4gPiAr KysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWludGVsLWd3LmMNCj4gPiBAQCAt NjEsNyArNjEsNyBAQCBzdHJ1Y3QgaW50ZWxfcGNpZV9zb2Mgew0KPiA+ICB9Ow0KPiA+DQo+ID4g IHN0cnVjdCBpbnRlbF9wY2llX3BvcnQgew0KPiA+IC0gICAgICAgc3RydWN0IGR3X3BjaWUgICAg ICAgICAgcGNpOw0KPiA+ICsgICAgICAgc3RydWN0IHBjaWVfcG9ydCAgICAgICAgcHA7DQo+ID4g ICAgICAgICB2b2lkIF9faW9tZW0gICAgICAgICAgICAqYXBwX2Jhc2U7DQo+ID4gICAgICAgICBz dHJ1Y3QgZ3Bpb19kZXNjICAgICAgICAqcmVzZXRfZ3BpbzsNCj4gPiAgICAgICAgIHUzMiAgICAg ICAgICAgICAgICAgICAgIHJzdF9pbnRydmw7DQo+ID4gQEAgLTk5LDE4ICs5OSwyNCBAQCBzdGF0 aWMgdm9pZCBwY2llX2FwcF93cl9tYXNrKHN0cnVjdA0KPiBpbnRlbF9wY2llX3BvcnQgKmxwcCwg dTMyIG9mcywNCj4gPg0KPiA+ICBzdGF0aWMgaW5saW5lIHUzMiBwY2llX3JjX2NmZ19yZChzdHJ1 Y3QgaW50ZWxfcGNpZV9wb3J0ICpscHAsIHUzMiBvZnMpDQo+ID4gIHsNCj4gPiAtICAgICAgIHJl dHVybiBkd19wY2llX3JlYWRsX2RiaSgmbHBwLT5wY2ksIG9mcyk7DQo+ID4gKyAgICAgICBzdHJ1 Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKGxwcC0+cHApOw0KPiA+ICsNCj4g PiArICAgICAgIHJldHVybiBkd19wY2llX3JlYWRsX2RiaShwY2ksIG9mcyk7DQo+ID4gIH0NCj4g Pg0KPiA+ICBzdGF0aWMgaW5saW5lIHZvaWQgcGNpZV9yY19jZmdfd3Ioc3RydWN0IGludGVsX3Bj aWVfcG9ydCAqbHBwLCB1MzIgb2ZzLCB1MzINCj4gdmFsKQ0KPiA+ICB7DQo+ID4gLSAgICAgICBk d19wY2llX3dyaXRlbF9kYmkoJmxwcC0+cGNpLCBvZnMsIHZhbCk7DQo+ID4gKyAgICAgICBzdHJ1 Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKGxwcC0+cHApOw0KPiA+ICsNCj4g PiArICAgICAgIGR3X3BjaWVfd3JpdGVsX2RiaShwY2ksIG9mcywgdmFsKTsNCj4gPiAgfQ0KPiA+ DQo+ID4gIHN0YXRpYyB2b2lkIHBjaWVfcmNfY2ZnX3dyX21hc2soc3RydWN0IGludGVsX3BjaWVf cG9ydCAqbHBwLCB1MzIgb2ZzLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dTMyIG1hc2ssIHUzMiB2YWwpDQo+ID4gIHsNCj4gPiAtICAgICAgIHBjaWVfdXBkYXRlX2JpdHMo bHBwLT5wY2kuZGJpX2Jhc2UsIG9mcywgbWFzaywgdmFsKTsNCj4gPiArICAgICAgIHN0cnVjdCBk d19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAobHBwLT5wcCk7DQo+ID4gKw0KPiA+ICsg ICAgICAgcGNpZV91cGRhdGVfYml0cyhwY2ktPmRiaV9iYXNlLCBvZnMsIG1hc2ssIHZhbCk7DQo+ ID4gIH0NCj4gPg0KPiA+ICBzdGF0aWMgdm9pZCBpbnRlbF9wY2llX2x0c3NtX2VuYWJsZShzdHJ1 Y3QgaW50ZWxfcGNpZV9wb3J0ICpscHApDQo+ID4gQEAgLTEyNyw3ICsxMzMsOCBAQCBzdGF0aWMg dm9pZCBpbnRlbF9wY2llX2x0c3NtX2Rpc2FibGUoc3RydWN0DQo+IGludGVsX3BjaWVfcG9ydCAq bHBwKQ0KPiA+ICBzdGF0aWMgdm9pZCBpbnRlbF9wY2llX2xpbmtfc2V0dXAoc3RydWN0IGludGVs X3BjaWVfcG9ydCAqbHBwKQ0KPiA+ICB7DQo+ID4gICAgICAgICB1MzIgdmFsOw0KPiA+IC0gICAg ICAgdTggb2Zmc2V0ID0gZHdfcGNpZV9maW5kX2NhcGFiaWxpdHkoJmxwcC0+cGNpLCBQQ0lfQ0FQ X0lEX0VYUCk7DQo+ID4gKyAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9m cm9tX3BwKGxwcC0+cHApOw0KPiA+ICsgICAgICAgdTggb2Zmc2V0ID0gZHdfcGNpZV9maW5kX2Nh cGFiaWxpdHkocGNpLCBQQ0lfQ0FQX0lEX0VYUCk7DQo+ID4NCj4gPiAgICAgICAgIHZhbCA9IHBj aWVfcmNfY2ZnX3JkKGxwcCwgb2Zmc2V0ICsgUENJX0VYUF9MTktDVEwpOw0KPiA+DQo+ID4gQEAg LTE1Myw3ICsxNjAsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wY2llX2luaXRfbl9mdHMoc3RydWN0 IGR3X3BjaWUNCj4gKnBjaSkNCj4gPg0KPiA+ICBzdGF0aWMgaW50IGludGVsX3BjaWVfZXBfcnN0 X2luaXQoc3RydWN0IGludGVsX3BjaWVfcG9ydCAqbHBwKQ0KPiA+ICB7DQo+ID4gLSAgICAgICBz dHJ1Y3QgZGV2aWNlICpkZXYgPSBscHAtPnBjaS5kZXY7DQo+ID4gKyAgICAgICBzdHJ1Y3QgZHdf cGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKGxwcC0+cHApOw0KPiA+ICsgICAgICAgc3Ry dWN0IGRldmljZSAqZGV2ID0gcGNpLT5kZXY7DQo+ID4gICAgICAgICBpbnQgcmV0Ow0KPiA+DQo+ ID4gICAgICAgICBscHAtPnJlc2V0X2dwaW8gPSBkZXZtX2dwaW9kX2dldChkZXYsICJyZXNldCIs DQo+IEdQSU9EX09VVF9MT1cpOw0KPiA+IEBAIC0yMTEsNyArMjE5LDcgQEAgc3RhdGljIHZvaWQg aW50ZWxfcGNpZV9jb3JlX2lycV9kaXNhYmxlKHN0cnVjdA0KPiBpbnRlbF9wY2llX3BvcnQgKmxw cCkNCj4gPiAgc3RhdGljIGludCBpbnRlbF9wY2llX2dldF9yZXNvdXJjZXMoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikNCj4gPiAgew0KPiA+ICAgICAgICAgc3RydWN0IGludGVsX3BjaWVf cG9ydCAqbHBwID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7DQo+ID4gLSAgICAgICBzdHJ1 Y3QgZHdfcGNpZSAqcGNpID0gJmxwcC0+cGNpOw0KPiA+ICsgICAgICAgc3RydWN0IGR3X3BjaWUg KnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChscHAtPnBwKTsNCj4gPiAgICAgICAgIHN0cnVjdCBk ZXZpY2UgKmRldiA9IHBjaS0+ZGV2Ow0KPiA+ICAgICAgICAgaW50IHJldDsNCj4gPg0KPiA+IEBA IC0yNTUsNyArMjYzLDcgQEAgc3RhdGljIGludCBpbnRlbF9wY2llX3dhaXRfbDIoc3RydWN0IGlu dGVsX3BjaWVfcG9ydA0KPiAqbHBwKQ0KPiA+ICB7DQo+ID4gICAgICAgICB1MzIgdmFsdWU7DQo+ ID4gICAgICAgICBpbnQgcmV0Ow0KPiA+IC0gICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9ICZs cHAtPnBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zy b21fcHAobHBwLT5wcCk7DQo+ID4NCj4gPiAgICAgICAgIGlmIChwY2ktPmxpbmtfZ2VuIDwgMykN Cj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ID4gQEAgLTI2OSwxNCArMjc3LDE2IEBA IHN0YXRpYyBpbnQgaW50ZWxfcGNpZV93YWl0X2wyKHN0cnVjdA0KPiBpbnRlbF9wY2llX3BvcnQg KmxwcCkNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSAmIFBDSUVf QVBQX1BNQ19JTl9MMiwNCj4gMjAsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgamlmZmllc190b191c2Vjcyg1ICogSFopKTsNCj4gPiAgICAgICAgIGlmIChyZXQpDQo+ID4g LSAgICAgICAgICAgICAgIGRldl9lcnIobHBwLT5wY2kuZGV2LCAiUENJZSBsaW5rIGVudGVyIEwy IHRpbWVvdXQhXG4iKTsNCj4gPiArICAgICAgICAgICAgICAgZGV2X2VycihwY2ktPmRldiwgIlBD SWUgbGluayBlbnRlciBMMiB0aW1lb3V0IVxuIik7DQo+ID4NCj4gPiAgICAgICAgIHJldHVybiBy ZXQ7DQo+ID4gIH0NCj4gPg0KPiA+ICBzdGF0aWMgdm9pZCBpbnRlbF9wY2llX3R1cm5fb2ZmKHN0 cnVjdCBpbnRlbF9wY2llX3BvcnQgKmxwcCkNCj4gPiAgew0KPiA+IC0gICAgICAgaWYgKGR3X3Bj aWVfbGlua191cCgmbHBwLT5wY2kpKQ0KPiA+ICsgICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9 IHRvX2R3X3BjaWVfZnJvbV9wcChscHAtPnBwKTsNCj4gPiArDQo+ID4gKyAgICAgICBpZiAoZHdf cGNpZV9saW5rX3VwKHBjaSkpDQo+ID4gICAgICAgICAgICAgICAgIGludGVsX3BjaWVfd2FpdF9s MihscHApOw0KPiA+DQo+ID4gICAgICAgICAvKiBQdXQgZW5kcG9pbnQgZGV2aWNlIGluIHJlc2V0 IHN0YXRlICovDQo+ID4gQEAgLTI4Nyw3ICsyOTcsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wY2ll X3R1cm5fb2ZmKHN0cnVjdA0KPiBpbnRlbF9wY2llX3BvcnQgKmxwcCkNCj4gPiAgc3RhdGljIGlu dCBpbnRlbF9wY2llX2hvc3Rfc2V0dXAoc3RydWN0IGludGVsX3BjaWVfcG9ydCAqbHBwKQ0KPiA+ ICB7DQo+ID4gICAgICAgICBpbnQgcmV0Ow0KPiA+IC0gICAgICAgc3RydWN0IGR3X3BjaWUgKnBj aSA9ICZscHAtPnBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19w Y2llX2Zyb21fcHAobHBwLT5wcCk7DQo+ID4NCj4gPiAgICAgICAgIGludGVsX3BjaWVfY29yZV9y c3RfYXNzZXJ0KGxwcCk7DQo+ID4gICAgICAgICBpbnRlbF9wY2llX2RldmljZV9yc3RfYXNzZXJ0 KGxwcCk7DQo+ID4gQEAgLTMwMCw3ICszMTAsNyBAQCBzdGF0aWMgaW50IGludGVsX3BjaWVfaG9z dF9zZXR1cChzdHJ1Y3QNCj4gaW50ZWxfcGNpZV9wb3J0ICpscHApDQo+ID4NCj4gPiAgICAgICAg IHJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShscHAtPmNvcmVfY2xrKTsNCj4gPiAgICAgICAgIGlm IChyZXQpIHsNCj4gPiAtICAgICAgICAgICAgICAgZGV2X2VycihscHAtPnBjaS5kZXYsICJDb3Jl IGNsb2NrIGVuYWJsZSBmYWlsZWQ6ICVkXG4iLA0KPiByZXQpOw0KPiA+ICsgICAgICAgICAgICAg ICBkZXZfZXJyKHBjaS0+ZGV2LCAiQ29yZSBjbG9jayBlbmFibGUgZmFpbGVkOiAlZFxuIiwNCj4g cmV0KTsNCj4gPiAgICAgICAgICAgICAgICAgZ290byBjbGtfZXJyOw0KPiA+ICAgICAgICAgfQ0K PiA+DQo+ID4gQEAgLTMwOSw3ICszMTksNyBAQCBzdGF0aWMgaW50IGludGVsX3BjaWVfaG9zdF9z ZXR1cChzdHJ1Y3QNCj4gaW50ZWxfcGNpZV9wb3J0ICpscHApDQo+ID4gICAgICAgICBpbnRlbF9w Y2llX2x0c3NtX2Rpc2FibGUobHBwKTsNCj4gPiAgICAgICAgIGludGVsX3BjaWVfbGlua19zZXR1 cChscHApOw0KPiA+ICAgICAgICAgaW50ZWxfcGNpZV9pbml0X25fZnRzKHBjaSk7DQo+ID4gLSAg ICAgICBkd19wY2llX3NldHVwX3JjKCZwY2ktPnBwKTsNCj4gPiArICAgICAgIGR3X3BjaWVfc2V0 dXBfcmMobHBwLT5wcCk7DQo+ID4gICAgICAgICBkd19wY2llX3VwY29uZmlnX3NldHVwKHBjaSk7 DQo+ID4NCj4gPiAgICAgICAgIGludGVsX3BjaWVfZGV2aWNlX3JzdF9kZWFzc2VydChscHApOw0K PiA+IEBAIC0zNDYsNyArMzU2LDcgQEAgc3RhdGljIHZvaWQgX19pbnRlbF9wY2llX3JlbW92ZShz dHJ1Y3QNCj4gaW50ZWxfcGNpZV9wb3J0ICpscHApDQo+ID4gIHN0YXRpYyBpbnQgaW50ZWxfcGNp ZV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gPiAgew0KPiA+ICAgICAg ICAgc3RydWN0IGludGVsX3BjaWVfcG9ydCAqbHBwID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRl dik7DQo+ID4gLSAgICAgICBzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9ICZscHAtPnBjaS5wcDsNCj4g PiArICAgICAgIHN0cnVjdCBwY2llX3BvcnQgKnBwID0gbHBwLT5wcDsNCj4gPg0KPiA+ICAgICAg ICAgZHdfcGNpZV9ob3N0X2RlaW5pdChwcCk7DQo+ID4gICAgICAgICBfX2ludGVsX3BjaWVfcmVt b3ZlKGxwcCk7DQo+ID4gQEAgLTQxNSw5ICs0MjUsOSBAQCBzdGF0aWMgaW50IGludGVsX3BjaWVf cHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZQ0KPiAqcGRldikNCj4gPiAgICAgICAgICAgICAg ICAgcmV0dXJuIC1FTk9NRU07DQo+ID4NCj4gPiAgICAgICAgIHBsYXRmb3JtX3NldF9kcnZkYXRh KHBkZXYsIGxwcCk7DQo+ID4gLSAgICAgICBwY2kgPSAmbHBwLT5wY2k7DQo+ID4gKyAgICAgICBw cCA9ICZscHAtPnBwOw0KPiA+ICsgICAgICAgcGNpID0gJnBwLT5wY2llOw0KPiA+ICAgICAgICAg cGNpLT5kZXYgPSBkZXY7DQo+ID4gLSAgICAgICBwcCA9ICZwY2ktPnBwOw0KPiA+DQo+ID4gICAg ICAgICByZXQgPSBpbnRlbF9wY2llX2dldF9yZXNvdXJjZXMocGRldik7DQo+ID4gICAgICAgICBp ZiAocmV0KQ0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ll LWtpcmluLmMNCj4gYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWtpcmluLmMNCj4g PiBpbmRleCAwMjZmZDFlNDJhNTUuLjZjYzM1YTRkNzM4ZiAxMDA2NDQNCj4gPiAtLS0gYS9kcml2 ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWtpcmluLmMNCj4gPiArKysgYi9kcml2ZXJzL3Bj aS9jb250cm9sbGVyL2R3Yy9wY2llLWtpcmluLmMNCj4gPiBAQCAtNzksMTcgKzc5LDE3IEBADQo+ ID4gICNkZWZpbmUgVElNRV9QSFlfUERfTUFYICAgICAgICAgICAgICAgIDExDQo+ID4NCj4gPiAg c3RydWN0IGtpcmluX3BjaWUgew0KPiA+IC0gICAgICAgc3RydWN0IGR3X3BjaWUgICpwY2k7DQo+ ID4gLSAgICAgICB2b2lkIF9faW9tZW0gICAgKmFwYl9iYXNlOw0KPiA+IC0gICAgICAgdm9pZCBf X2lvbWVtICAgICpwaHlfYmFzZTsNCj4gPiAtICAgICAgIHN0cnVjdCByZWdtYXAgICAqY3JnY3Ry bDsNCj4gPiAtICAgICAgIHN0cnVjdCByZWdtYXAgICAqc3lzY3RybDsNCj4gPiAtICAgICAgIHN0 cnVjdCBjbGsgICAgICAqYXBiX3N5c19jbGs7DQo+ID4gLSAgICAgICBzdHJ1Y3QgY2xrICAgICAg KmFwYl9waHlfY2xrOw0KPiA+IC0gICAgICAgc3RydWN0IGNsayAgICAgICpwaHlfcmVmX2NsazsN Cj4gPiAtICAgICAgIHN0cnVjdCBjbGsgICAgICAqcGNpZV9hY2xrOw0KPiA+IC0gICAgICAgc3Ry dWN0IGNsayAgICAgICpwY2llX2F1eF9jbGs7DQo+ID4gLSAgICAgICBpbnQgICAgICAgICAgICAg Z3Bpb19pZF9yZXNldDsNCj4gPiArICAgICAgIHN0cnVjdCBwY2llX3BvcnQgICAgICAgICpwcDsN Cj4gPiArICAgICAgIHZvaWQgX19pb21lbSAgICAgICAgICAgICphcGJfYmFzZTsNCj4gPiArICAg ICAgIHZvaWQgX19pb21lbSAgICAgICAgICAgICpwaHlfYmFzZTsNCj4gPiArICAgICAgIHN0cnVj dCByZWdtYXAgICAgICAgICAgICpjcmdjdHJsOw0KPiA+ICsgICAgICAgc3RydWN0IHJlZ21hcCAg ICAgICAgICAgKnN5c2N0cmw7DQo+ID4gKyAgICAgICBzdHJ1Y3QgY2xrICAgICAgICAgICAgICAq YXBiX3N5c19jbGs7DQo+ID4gKyAgICAgICBzdHJ1Y3QgY2xrICAgICAgICAgICAgICAqYXBiX3Bo eV9jbGs7DQo+ID4gKyAgICAgICBzdHJ1Y3QgY2xrICAgICAgICAgICAgICAqcGh5X3JlZl9jbGs7 DQo+ID4gKyAgICAgICBzdHJ1Y3QgY2xrICAgICAgICAgICAgICAqcGNpZV9hY2xrOw0KPiA+ICsg ICAgICAgc3RydWN0IGNsayAgICAgICAgICAgICAgKnBjaWVfYXV4X2NsazsNCj4gPiArICAgICAg IGludCAgICAgICAgICAgICAgICAgICAgIGdwaW9faWRfcmVzZXQ7DQo+ID4gIH07DQo+ID4NCj4g PiAgLyogUmVnaXN0ZXJzIGluIFBDSWVDVFJMICovDQo+ID4gQEAgLTE3Miw3ICsxNzIsOCBAQCBz dGF0aWMgbG9uZyBraXJpbl9wY2llX2dldF9yZXNvdXJjZShzdHJ1Y3QNCj4ga2lyaW5fcGNpZSAq a2lyaW5fcGNpZSwNCj4gPg0KPiA+ICBzdGF0aWMgaW50IGtpcmluX3BjaWVfcGh5X2luaXQoc3Ry dWN0IGtpcmluX3BjaWUgKmtpcmluX3BjaWUpDQo+ID4gIHsNCj4gPiAtICAgICAgIHN0cnVjdCBk ZXZpY2UgKmRldiA9IGtpcmluX3BjaWUtPnBjaS0+ZGV2Ow0KPiA+ICsgICAgICAgc3RydWN0IGR3 X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChraXJpbl9wY2llLT5wcCk7DQo+ID4gKyAg ICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwY2ktPmRldjsNCj4gPiAgICAgICAgIHUzMiByZWdf dmFsOw0KPiA+DQo+ID4gICAgICAgICByZWdfdmFsID0ga2lyaW5fYXBiX3BoeV9yZWFkbChraXJp bl9wY2llLA0KPiBQQ0lFX0FQQl9QSFlfQ1RSTDEpOw0KPiA+IEBAIC0zMjgsNyArMzI5LDggQEAg c3RhdGljIHZvaWQga2lyaW5fcGNpZV9zaWRlYmFuZF9kYmlfcl9tb2RlKHN0cnVjdA0KPiBraXJp bl9wY2llICpraXJpbl9wY2llLA0KPiA+ICBzdGF0aWMgaW50IGtpcmluX3BjaWVfcmRfb3duX2Nv bmYoc3RydWN0IHBjaV9idXMgKmJ1cywgdW5zaWduZWQgaW50DQo+IGRldmZuLA0KPiA+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgd2hlcmUsIGludCBzaXplLCB1MzIgKnZh bCkNCj4gPiAgew0KPiA+IC0gICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVf ZnJvbV9wcChidXMtPnN5c2RhdGEpOw0KPiA+ICsgICAgICAgc3RydWN0IHBjaWVfcG9ydCAqcHAg PSBidXMtPnN5c2RhdGE7DQo+ID4gKyAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdf cGNpZV9mcm9tX3BwKHBwKTsNCj4gPg0KPiA+ICAgICAgICAgaWYgKFBDSV9TTE9UKGRldmZuKSkg ew0KPiA+ICAgICAgICAgICAgICAgICAqdmFsID0gfjA7DQo+ID4gQEAgLTM0Miw3ICszNDQsOCBA QCBzdGF0aWMgaW50IGtpcmluX3BjaWVfcmRfb3duX2NvbmYoc3RydWN0IHBjaV9idXMNCj4gKmJ1 cywgdW5zaWduZWQgaW50IGRldmZuLA0KPiA+ICBzdGF0aWMgaW50IGtpcmluX3BjaWVfd3Jfb3du X2NvbmYoc3RydWN0IHBjaV9idXMgKmJ1cywgdW5zaWduZWQgaW50DQo+IGRldmZuLA0KPiA+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgd2hlcmUsIGludCBzaXplLCB1MzIg dmFsKQ0KPiA+ICB7DQo+ID4gLSAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNp ZV9mcm9tX3BwKGJ1cy0+c3lzZGF0YSk7DQo+ID4gKyAgICAgICBzdHJ1Y3QgcGNpZV9wb3J0ICpw cCA9IGJ1cy0+c3lzZGF0YTsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSB0b19k d19wY2llX2Zyb21fcHAocHApOw0KPiA+DQo+ID4gICAgICAgICBpZiAoUENJX1NMT1QoZGV2Zm4p KQ0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gUENJQklPU19ERVZJQ0VfTk9UX0ZPVU5EOw0K PiA+IEBAIC00MjMsNiArNDI2LDcgQEAgc3RhdGljIGludCBraXJpbl9wY2llX3Byb2JlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UNCj4gKnBkZXYpDQo+ID4gIHsNCj4gPiAgICAgICAgIHN0cnVjdCBk ZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7DQo+ID4gICAgICAgICBzdHJ1Y3Qga2lyaW5fcGNpZSAq a2lyaW5fcGNpZTsNCj4gPiArICAgICAgIHN0cnVjdCBwY2llX3BvcnQgKnBwOw0KPiA+ICAgICAg ICAgc3RydWN0IGR3X3BjaWUgKnBjaTsNCj4gPiAgICAgICAgIGludCByZXQ7DQo+ID4NCj4gPiBA QCAtNDM1LDE0ICs0MzksMTQgQEAgc3RhdGljIGludCBraXJpbl9wY2llX3Byb2JlKHN0cnVjdA0K PiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gICAgICAgICBpZiAoIWtpcmluX3BjaWUpDQo+ ID4gICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPiA+DQo+ID4gLSAgICAgICBwY2kg PSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnBjaSksIEdGUF9LRVJORUwpOw0KPiA+IC0gICAg ICAgaWYgKCFwY2kpDQo+ID4gKyAgICAgICBwcCA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigq cHApLCBHRlBfS0VSTkVMKTsNCj4gPiArICAgICAgIGlmICghcHApDQo+ID4gICAgICAgICAgICAg ICAgIHJldHVybiAtRU5PTUVNOw0KPiA+DQo+ID4gICAgICAgICBwY2ktPmRldiA9IGRldjsNCj4g PiAgICAgICAgIHBjaS0+b3BzID0gJmtpcmluX2R3X3BjaWVfb3BzOw0KPiA+IC0gICAgICAgcGNp LT5wcC5vcHMgPSAma2lyaW5fcGNpZV9ob3N0X29wczsNCj4gPiAtICAgICAgIGtpcmluX3BjaWUt PnBjaSA9IHBjaTsNCj4gPiArICAgICAgIHBwLT5vcHMgPSAma2lyaW5fcGNpZV9ob3N0X29wczsN Cj4gPiArICAgICAgIGtpcmluX3BjaWUtPnBwID0gcHA7DQo+ID4NCj4gPiAgICAgICAgIHJldCA9 IGtpcmluX3BjaWVfZ2V0X2NsayhraXJpbl9wY2llLCBwZGV2KTsNCj4gPiAgICAgICAgIGlmIChy ZXQpDQo+ID4gQEAgLTQ2Nyw3ICs0NzEsNyBAQCBzdGF0aWMgaW50IGtpcmluX3BjaWVfcHJvYmUo c3RydWN0IHBsYXRmb3JtX2RldmljZQ0KPiAqcGRldikNCj4gPg0KPiA+ICAgICAgICAgcGxhdGZv cm1fc2V0X2RydmRhdGEocGRldiwga2lyaW5fcGNpZSk7DQo+ID4NCj4gPiAtICAgICAgIHJldHVy biBkd19wY2llX2hvc3RfaW5pdCgmcGNpLT5wcCk7DQo+ID4gKyAgICAgICByZXR1cm4gZHdfcGNp ZV9ob3N0X2luaXQocHApOw0KPiA+ICB9DQo+ID4NCj4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBv Zl9kZXZpY2VfaWQga2lyaW5fcGNpZV9tYXRjaFtdID0gew0KPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXFjb20uYw0KPiBiL2RyaXZlcnMvcGNpL2NvbnRy b2xsZXIvZHdjL3BjaWUtcWNvbS5jDQo+ID4gaW5kZXggYWZmYTI3MTNiZjgwLi4wZDM3NWM3ZDlm NTAgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1xY29t LmMNCj4gPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXFjb20uYw0KPiA+ IEBAIC0xODgsNyArMTg4LDcgQEAgc3RydWN0IHFjb21fcGNpZV9vcHMgew0KPiA+ICB9Ow0KPiA+ DQo+ID4gIHN0cnVjdCBxY29tX3BjaWUgew0KPiA+IC0gICAgICAgc3RydWN0IGR3X3BjaWUgKnBj aTsNCj4gPiArICAgICAgIHN0cnVjdCBwY2llX3BvcnQgKnBwOw0KPiA+ICAgICAgICAgdm9pZCBf X2lvbWVtICpwYXJmOyAgICAgICAgICAgICAgICAgICAgIC8qIERUIHBhcmYgKi8NCj4gPiAgICAg ICAgIHZvaWQgX19pb21lbSAqZWxiaTsgICAgICAgICAgICAgICAgICAgICAvKiBEVCBlbGJpICov DQo+ID4gICAgICAgICB1bmlvbiBxY29tX3BjaWVfcmVzb3VyY2VzIHJlczsNCj4gPiBAQCAtMjM3 LDcgKzIzNyw3IEBAIHN0YXRpYyB2b2lkIHFjb21fcGNpZV8yXzFfMF9sdHNzbV9lbmFibGUoc3Ry dWN0DQo+IHFjb21fcGNpZSAqcGNpZSkNCj4gPiAgc3RhdGljIGludCBxY29tX3BjaWVfZ2V0X3Jl c291cmNlc18yXzFfMChzdHJ1Y3QgcWNvbV9wY2llICpwY2llKQ0KPiA+ICB7DQo+ID4gICAgICAg ICBzdHJ1Y3QgcWNvbV9wY2llX3Jlc291cmNlc18yXzFfMCAqcmVzID0gJnBjaWUtPnJlcy52Ml8x XzA7DQo+ID4gLSAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gcGNpZS0+cGNpOw0KPiA+ICsg ICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwY2llLT5wcCk7 DQo+ID4gICAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwY2ktPmRldjsNCj4gPiAgICAgICAg IGludCByZXQ7DQo+ID4NCj4gPiBAQCAtMzA5LDcgKzMwOSw3IEBAIHN0YXRpYyB2b2lkIHFjb21f cGNpZV9kZWluaXRfMl8xXzAoc3RydWN0DQo+IHFjb21fcGNpZSAqcGNpZSkNCj4gPiAgc3RhdGlj IGludCBxY29tX3BjaWVfaW5pdF8yXzFfMChzdHJ1Y3QgcWNvbV9wY2llICpwY2llKQ0KPiA+ICB7 DQo+ID4gICAgICAgICBzdHJ1Y3QgcWNvbV9wY2llX3Jlc291cmNlc18yXzFfMCAqcmVzID0gJnBj aWUtPnJlcy52Ml8xXzA7DQo+ID4gLSAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gcGNpZS0+ cGNpOw0KPiA+ICsgICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9w cChwY2llLT5wcCk7DQo+ID4gICAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwY2ktPmRldjsN Cj4gPiAgICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9IGRldi0+b2Zfbm9kZTsNCj4g PiAgICAgICAgIHUzMiB2YWw7DQo+ID4gQEAgLTQzNCw3ICs0MzQsNyBAQCBzdGF0aWMgaW50IHFj b21fcGNpZV9pbml0XzJfMV8wKHN0cnVjdCBxY29tX3BjaWUNCj4gKnBjaWUpDQo+ID4gIHN0YXRp YyBpbnQgcWNvbV9wY2llX2dldF9yZXNvdXJjZXNfMV8wXzAoc3RydWN0IHFjb21fcGNpZSAqcGNp ZSkNCj4gPiAgew0KPiA+ICAgICAgICAgc3RydWN0IHFjb21fcGNpZV9yZXNvdXJjZXNfMV8wXzAg KnJlcyA9ICZwY2llLT5yZXMudjFfMF8wOw0KPiA+IC0gICAgICAgc3RydWN0IGR3X3BjaWUgKnBj aSA9IHBjaWUtPnBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19w Y2llX2Zyb21fcHAocGNpZS0+cHApOw0KPiA+ICAgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0g cGNpLT5kZXY7DQo+ID4NCj4gPiAgICAgICAgIHJlcy0+dmRkYSA9IGRldm1fcmVndWxhdG9yX2dl dChkZXYsICJ2ZGRhIik7DQo+ID4gQEAgLTQ3Niw3ICs0NzYsNyBAQCBzdGF0aWMgdm9pZCBxY29t X3BjaWVfZGVpbml0XzFfMF8wKHN0cnVjdA0KPiBxY29tX3BjaWUgKnBjaWUpDQo+ID4gIHN0YXRp YyBpbnQgcWNvbV9wY2llX2luaXRfMV8wXzAoc3RydWN0IHFjb21fcGNpZSAqcGNpZSkNCj4gPiAg ew0KPiA+ICAgICAgICAgc3RydWN0IHFjb21fcGNpZV9yZXNvdXJjZXNfMV8wXzAgKnJlcyA9ICZw Y2llLT5yZXMudjFfMF8wOw0KPiA+IC0gICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHBjaWUt PnBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21f cHAocGNpZS0+cHApOw0KPiA+ICAgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gcGNpLT5kZXY7 DQo+ID4gICAgICAgICBpbnQgcmV0Ow0KPiA+DQo+ID4gQEAgLTU1NCw3ICs1NTQsNyBAQCBzdGF0 aWMgdm9pZCBxY29tX3BjaWVfMl8zXzJfbHRzc21fZW5hYmxlKHN0cnVjdA0KPiBxY29tX3BjaWUg KnBjaWUpDQo+ID4gIHN0YXRpYyBpbnQgcWNvbV9wY2llX2dldF9yZXNvdXJjZXNfMl8zXzIoc3Ry dWN0IHFjb21fcGNpZSAqcGNpZSkNCj4gPiAgew0KPiA+ICAgICAgICAgc3RydWN0IHFjb21fcGNp ZV9yZXNvdXJjZXNfMl8zXzIgKnJlcyA9ICZwY2llLT5yZXMudjJfM18yOw0KPiA+IC0gICAgICAg c3RydWN0IGR3X3BjaWUgKnBjaSA9IHBjaWUtPnBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBkd19w Y2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocGNpZS0+cHApOw0KPiA+ICAgICAgICAgc3Ry dWN0IGRldmljZSAqZGV2ID0gcGNpLT5kZXY7DQo+ID4gICAgICAgICBpbnQgcmV0Ow0KPiA+DQo+ ID4gQEAgLTYwNyw3ICs2MDcsNyBAQCBzdGF0aWMgdm9pZCBxY29tX3BjaWVfcG9zdF9kZWluaXRf Ml8zXzIoc3RydWN0DQo+IHFjb21fcGNpZSAqcGNpZSkNCj4gPiAgc3RhdGljIGludCBxY29tX3Bj aWVfaW5pdF8yXzNfMihzdHJ1Y3QgcWNvbV9wY2llICpwY2llKQ0KPiA+ICB7DQo+ID4gICAgICAg ICBzdHJ1Y3QgcWNvbV9wY2llX3Jlc291cmNlc18yXzNfMiAqcmVzID0gJnBjaWUtPnJlcy52Ml8z XzI7DQo+ID4gLSAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gcGNpZS0+cGNpOw0KPiA+ICsg ICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwY2llLT5wcCk7 DQo+ID4gICAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwY2ktPmRldjsNCj4gPiAgICAgICAg IHUzMiB2YWw7DQo+ID4gICAgICAgICBpbnQgcmV0Ow0KPiA+IEBAIC02ODEsNyArNjgxLDcgQEAg c3RhdGljIGludCBxY29tX3BjaWVfaW5pdF8yXzNfMihzdHJ1Y3QgcWNvbV9wY2llDQo+ICpwY2ll KQ0KPiA+ICBzdGF0aWMgaW50IHFjb21fcGNpZV9wb3N0X2luaXRfMl8zXzIoc3RydWN0IHFjb21f cGNpZSAqcGNpZSkNCj4gPiAgew0KPiA+ICAgICAgICAgc3RydWN0IHFjb21fcGNpZV9yZXNvdXJj ZXNfMl8zXzIgKnJlcyA9ICZwY2llLT5yZXMudjJfM18yOw0KPiA+IC0gICAgICAgc3RydWN0IGR3 X3BjaWUgKnBjaSA9IHBjaWUtPnBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kg PSB0b19kd19wY2llX2Zyb21fcHAocGNpZS0+cHApOw0KPiA+ICAgICAgICAgc3RydWN0IGRldmlj ZSAqZGV2ID0gcGNpLT5kZXY7DQo+ID4gICAgICAgICBpbnQgcmV0Ow0KPiA+DQo+ID4gQEAgLTY5 Nyw3ICs2OTcsNyBAQCBzdGF0aWMgaW50IHFjb21fcGNpZV9wb3N0X2luaXRfMl8zXzIoc3RydWN0 DQo+IHFjb21fcGNpZSAqcGNpZSkNCj4gPiAgc3RhdGljIGludCBxY29tX3BjaWVfZ2V0X3Jlc291 cmNlc18yXzRfMChzdHJ1Y3QgcWNvbV9wY2llICpwY2llKQ0KPiA+ICB7DQo+ID4gICAgICAgICBz dHJ1Y3QgcWNvbV9wY2llX3Jlc291cmNlc18yXzRfMCAqcmVzID0gJnBjaWUtPnJlcy52Ml80XzA7 DQo+ID4gLSAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gcGNpZS0+cGNpOw0KPiA+ICsgICAg ICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwY2llLT5wcCk7DQo+ ID4gICAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwY2ktPmRldjsNCj4gPiAgICAgICAgIGJv b2wgaXNfaXBxID0gb2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUoZGV2LT5vZl9ub2RlLA0KPiAicWNv bSxwY2llLWlwcTQwMTkiKTsNCj4gPiAgICAgICAgIGludCByZXQ7DQo+ID4gQEAgLTc5Niw3ICs3 OTYsNyBAQCBzdGF0aWMgdm9pZCBxY29tX3BjaWVfZGVpbml0XzJfNF8wKHN0cnVjdA0KPiBxY29t X3BjaWUgKnBjaWUpDQo+ID4gIHN0YXRpYyBpbnQgcWNvbV9wY2llX2luaXRfMl80XzAoc3RydWN0 IHFjb21fcGNpZSAqcGNpZSkNCj4gPiAgew0KPiA+ICAgICAgICAgc3RydWN0IHFjb21fcGNpZV9y ZXNvdXJjZXNfMl80XzAgKnJlcyA9ICZwY2llLT5yZXMudjJfNF8wOw0KPiA+IC0gICAgICAgc3Ry dWN0IGR3X3BjaWUgKnBjaSA9IHBjaWUtPnBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2ll ICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocGNpZS0+cHApOw0KPiA+ICAgICAgICAgc3RydWN0 IGRldmljZSAqZGV2ID0gcGNpLT5kZXY7DQo+ID4gICAgICAgICB1MzIgdmFsOw0KPiA+ICAgICAg ICAgaW50IHJldDsNCj4gPiBAQCAtOTcwLDcgKzk3MCw3IEBAIHN0YXRpYyBpbnQgcWNvbV9wY2ll X2luaXRfMl80XzAoc3RydWN0IHFjb21fcGNpZQ0KPiAqcGNpZSkNCj4gPiAgc3RhdGljIGludCBx Y29tX3BjaWVfZ2V0X3Jlc291cmNlc18yXzNfMyhzdHJ1Y3QgcWNvbV9wY2llICpwY2llKQ0KPiA+ ICB7DQo+ID4gICAgICAgICBzdHJ1Y3QgcWNvbV9wY2llX3Jlc291cmNlc18yXzNfMyAqcmVzID0g JnBjaWUtPnJlcy52Ml8zXzM7DQo+ID4gLSAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gcGNp ZS0+cGNpOw0KPiA+ICsgICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJv bV9wcChwY2llLT5wcCk7DQo+ID4gICAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwY2ktPmRl djsNCj4gPiAgICAgICAgIGludCBpOw0KPiA+ICAgICAgICAgY29uc3QgY2hhciAqcnN0X25hbWVz W10gPSB7ICJheGlfbSIsICJheGlfcyIsICJwaXBlIiwNCj4gPiBAQCAtMTAyMCw3ICsxMDIwLDcg QEAgc3RhdGljIHZvaWQgcWNvbV9wY2llX2RlaW5pdF8yXzNfMyhzdHJ1Y3QNCj4gcWNvbV9wY2ll ICpwY2llKQ0KPiA+ICBzdGF0aWMgaW50IHFjb21fcGNpZV9pbml0XzJfM18zKHN0cnVjdCBxY29t X3BjaWUgKnBjaWUpDQo+ID4gIHsNCj4gPiAgICAgICAgIHN0cnVjdCBxY29tX3BjaWVfcmVzb3Vy Y2VzXzJfM18zICpyZXMgPSAmcGNpZS0+cmVzLnYyXzNfMzsNCj4gPiAtICAgICAgIHN0cnVjdCBk d19wY2llICpwY2kgPSBwY2llLT5wY2k7DQo+ID4gKyAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNp ID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBjaWUtPnBwKTsNCj4gPiAgICAgICAgIHN0cnVjdCBkZXZp Y2UgKmRldiA9IHBjaS0+ZGV2Ow0KPiA+ICAgICAgICAgdTE2IG9mZnNldCA9IGR3X3BjaWVfZmlu ZF9jYXBhYmlsaXR5KHBjaSwgUENJX0NBUF9JRF9FWFApOw0KPiA+ICAgICAgICAgaW50IGksIHJl dDsNCj4gPiBAQCAtMTEzMSw3ICsxMTMxLDcgQEAgc3RhdGljIGludCBxY29tX3BjaWVfaW5pdF8y XzNfMyhzdHJ1Y3QNCj4gcWNvbV9wY2llICpwY2llKQ0KPiA+ICBzdGF0aWMgaW50IHFjb21fcGNp ZV9nZXRfcmVzb3VyY2VzXzJfN18wKHN0cnVjdCBxY29tX3BjaWUgKnBjaWUpDQo+ID4gIHsNCj4g PiAgICAgICAgIHN0cnVjdCBxY29tX3BjaWVfcmVzb3VyY2VzXzJfN18wICpyZXMgPSAmcGNpZS0+ cmVzLnYyXzdfMDsNCj4gPiAtICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSBwY2llLT5wY2k7 DQo+ID4gKyAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBj aWUtPnBwKTsNCj4gPiAgICAgICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9IHBjaS0+ZGV2Ow0KPiA+ ICAgICAgICAgaW50IHJldDsNCj4gPg0KPiA+IEBAIC0xMTY0LDcgKzExNjQsNyBAQCBzdGF0aWMg aW50DQo+IHFjb21fcGNpZV9nZXRfcmVzb3VyY2VzXzJfN18wKHN0cnVjdCBxY29tX3BjaWUgKnBj aWUpDQo+ID4gIHN0YXRpYyBpbnQgcWNvbV9wY2llX2luaXRfMl83XzAoc3RydWN0IHFjb21fcGNp ZSAqcGNpZSkNCj4gPiAgew0KPiA+ICAgICAgICAgc3RydWN0IHFjb21fcGNpZV9yZXNvdXJjZXNf Ml83XzAgKnJlcyA9ICZwY2llLT5yZXMudjJfN18wOw0KPiA+IC0gICAgICAgc3RydWN0IGR3X3Bj aWUgKnBjaSA9IHBjaWUtPnBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSB0 b19kd19wY2llX2Zyb21fcHAocGNpZS0+cHApOw0KPiA+ICAgICAgICAgc3RydWN0IGRldmljZSAq ZGV2ID0gcGNpLT5kZXY7DQo+ID4gICAgICAgICB1MzIgdmFsOw0KPiA+ICAgICAgICAgaW50IHJl dDsNCj4gPiBAQCAtMTI3NCw3ICsxMjc0LDggQEAgc3RhdGljIGludCBxY29tX3BjaWVfY29uZmln X3NpZF9zbTgyNTAoc3RydWN0DQo+IHFjb21fcGNpZSAqcGNpZSkNCj4gPiAgICAgICAgICAgICAg ICAgdTMyIHNtbXVfc2lkX2xlbjsNCj4gPiAgICAgICAgIH0gKm1hcDsNCj4gPiAgICAgICAgIHZv aWQgX19pb21lbSAqYmRmX3RvX3NpZF9iYXNlID0gcGNpZS0+cGFyZiArDQo+IFBDSUUyMF9QQVJG X0JERl9UT19TSURfVEFCTEVfTjsNCj4gPiAtICAgICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9IHBj aWUtPnBjaS0+ZGV2Ow0KPiA+ICsgICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3Bj aWVfZnJvbV9wcChwY2llLT5wcCk7DQo+ID4gKyAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSBw Y2ktPmRldjsNCj4gPiAgICAgICAgIHU4IHFjb21fcGNpZV9jcmM4X3RhYmxlW0NSQzhfVEFCTEVf U0laRV07DQo+ID4gICAgICAgICBpbnQgaSwgbnJfbWFwLCBzaXplID0gMDsNCj4gPiAgICAgICAg IHUzMiBzbW11X3NpZF9iYXNlOw0KPiA+IEBAIC0xNDYzLDggKzE0NjQsOCBAQCBzdGF0aWMgaW50 IHFjb21fcGNpZV9wcm9iZShzdHJ1Y3QNCj4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ICAg ICAgICAgaWYgKCFwY2llKQ0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsNCj4g Pg0KPiA+IC0gICAgICAgcGNpID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpwY2kpLCBHRlBf S0VSTkVMKTsNCj4gPiAtICAgICAgIGlmICghcGNpKQ0KPiA+ICsgICAgICAgcHAgPSBkZXZtX2t6 YWxsb2MoZGV2LCBzaXplb2YoKnBwKSwgR0ZQX0tFUk5FTCk7DQo+ID4gKyAgICAgICBpZiAoIXBw KQ0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsNCj4gPg0KPiA+ICAgICAgICAg cG1fcnVudGltZV9lbmFibGUoZGV2KTsNCj4gPiBAQCAtMTQ3MiwxMSArMTQ3MywxMCBAQCBzdGF0 aWMgaW50IHFjb21fcGNpZV9wcm9iZShzdHJ1Y3QNCj4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0K PiA+ICAgICAgICAgaWYgKHJldCA8IDApDQo+ID4gICAgICAgICAgICAgICAgIGdvdG8gZXJyX3Bt X3J1bnRpbWVfcHV0Ow0KPiA+DQo+ID4gKyAgICAgICBwY2kgPSAmcHAtPnBjaWU7DQo+ID4gICAg ICAgICBwY2ktPmRldiA9IGRldjsNCj4gPiAgICAgICAgIHBjaS0+b3BzID0gJmR3X3BjaWVfb3Bz Ow0KPiA+IC0gICAgICAgcHAgPSAmcGNpLT5wcDsNCj4gPiAtDQo+ID4gLSAgICAgICBwY2llLT5w Y2kgPSBwY2k7DQo+ID4gKyAgICAgICBwY2llLT5wcCA9IHBwOw0KPiA+DQo+ID4gICAgICAgICBw Y2llLT5vcHMgPSBvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoZGV2KTsNCj4gPg0KPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXNwZWFyMTN4eC5jDQo+IGIv ZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1zcGVhcjEzeHguYw0KPiA+IGluZGV4IDFh OWUzNTNiZWY1NS4uZDcyMTExOGU5ZWQ5IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvZHdjL3BjaWUtc3BlYXIxM3h4LmMNCj4gPiArKysgYi9kcml2ZXJzL3BjaS9jb250 cm9sbGVyL2R3Yy9wY2llLXNwZWFyMTN4eC5jDQo+ID4gQEAgLTIyLDcgKzIyLDcgQEANCj4gPiAg I2luY2x1ZGUgInBjaWUtZGVzaWdud2FyZS5oIg0KPiA+DQo+ID4gIHN0cnVjdCBzcGVhcjEzeHhf cGNpZSB7DQo+ID4gLSAgICAgICBzdHJ1Y3QgZHdfcGNpZSAgICAgICAgICAqcGNpOw0KPiA+ICsg ICAgICAgc3RydWN0IHBjaWVfcG9ydCAgICAgICAgKnBwOw0KPiA+ICAgICAgICAgdm9pZCBfX2lv bWVtICAgICAgICAgICAgKmFwcF9iYXNlOw0KPiA+ICAgICAgICAgc3RydWN0IHBoeSAgICAgICAg ICAgICAgKnBoeTsNCj4gPiAgICAgICAgIHN0cnVjdCBjbGsgICAgICAgICAgICAgICpjbGs7DQo+ ID4gQEAgLTg0LDggKzg0LDcgQEAgc3RhdGljIGlycXJldHVybl90IHNwZWFyMTN4eF9wY2llX2ly cV9oYW5kbGVyKGludCBpcnEsDQo+IHZvaWQgKmFyZykNCj4gPiAgew0KPiA+ICAgICAgICAgc3Ry dWN0IHNwZWFyMTN4eF9wY2llICpzcGVhcjEzeHhfcGNpZSA9IGFyZzsNCj4gPiAgICAgICAgIHN0 cnVjdCBwY2llX2FwcF9yZWcgKmFwcF9yZWcgPSBzcGVhcjEzeHhfcGNpZS0+YXBwX2Jhc2U7DQo+ ID4gLSAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gc3BlYXIxM3h4X3BjaWUtPnBjaTsNCj4g PiAtICAgICAgIHN0cnVjdCBwY2llX3BvcnQgKnBwID0gJnBjaS0+cHA7DQo+ID4gKyAgICAgICBz dHJ1Y3QgcGNpZV9wb3J0ICpwcCA9IHNwZWFyMTN4eF9wY2llLT5wcDsNCj4gPiAgICAgICAgIHVu c2lnbmVkIGludCBzdGF0dXM7DQo+ID4NCj4gPiAgICAgICAgIHN0YXR1cyA9IHJlYWRsKCZhcHBf cmVnLT5pbnRfc3RzKTsNCj4gPiBAQCAtMTU0LDggKzE1Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZHdfcGNpZV9ob3N0X29wcw0KPiBzcGVhcjEzeHhfcGNpZV9ob3N0X29wcyA9IHsNCj4gPiAg c3RhdGljIGludCBzcGVhcjEzeHhfYWRkX3BjaWVfcG9ydChzdHJ1Y3Qgc3BlYXIxM3h4X3BjaWUN Cj4gKnNwZWFyMTN4eF9wY2llLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gPiAgew0KPiA+IC0gICAgICAgc3Ry dWN0IGR3X3BjaWUgKnBjaSA9IHNwZWFyMTN4eF9wY2llLT5wY2k7DQo+ID4gLSAgICAgICBzdHJ1 Y3QgcGNpZV9wb3J0ICpwcCA9ICZwY2ktPnBwOw0KPiA+ICsgICAgICAgc3RydWN0IHBjaWVfcG9y dCAqcHAgPSBzcGVhcjEzeHhfcGNpZS0+cHA7DQo+ID4gICAgICAgICBzdHJ1Y3QgZGV2aWNlICpk ZXYgPSAmcGRldi0+ZGV2Ow0KPiA+ICAgICAgICAgaW50IHJldDsNCj4gPg0KPiA+IEBAIC0xOTEs NiArMTg5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkd19wY2llX29wcyBkd19wY2llX29wcyA9 IHsNCj4gPiAgc3RhdGljIGludCBzcGVhcjEzeHhfcGNpZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQ0KPiA+ICB7DQo+ID4gICAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSAm cGRldi0+ZGV2Ow0KPiA+ICsgICAgICAgc3RydWN0IHBjaWVfcG9ydCAqcHA7DQo+ID4gICAgICAg ICBzdHJ1Y3QgZHdfcGNpZSAqcGNpOw0KPiA+ICAgICAgICAgc3RydWN0IHNwZWFyMTN4eF9wY2ll ICpzcGVhcjEzeHhfcGNpZTsNCj4gPiAgICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSBk ZXYtPm9mX25vZGU7DQo+ID4gQEAgLTIwMCwxNCArMTk5LDE1IEBAIHN0YXRpYyBpbnQgc3BlYXIx M3h4X3BjaWVfcHJvYmUoc3RydWN0DQo+IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gPiAgICAg ICAgIGlmICghc3BlYXIxM3h4X3BjaWUpDQo+ID4gICAgICAgICAgICAgICAgIHJldHVybiAtRU5P TUVNOw0KPiA+DQo+ID4gLSAgICAgICBwY2kgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnBj aSksIEdGUF9LRVJORUwpOw0KPiA+IC0gICAgICAgaWYgKCFwY2kpDQo+ID4gKyAgICAgICBwcCA9 IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcHApLCBHRlBfS0VSTkVMKTsNCj4gPiArICAgICAg IGlmICghcHApDQo+ID4gICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPiA+DQo+ID4g KyAgICAgICBwY2kgPSAmcHAtPnBjaWU7DQo+ID4gICAgICAgICBwY2ktPmRldiA9IGRldjsNCj4g PiAgICAgICAgIHBjaS0+b3BzID0gJmR3X3BjaWVfb3BzOw0KPiA+DQo+ID4gLSAgICAgICBzcGVh cjEzeHhfcGNpZS0+cGNpID0gcGNpOw0KPiA+ICsgICAgICAgc3BlYXIxM3h4X3BjaWUtPnBwID0g cHA7DQo+ID4NCj4gPiAgICAgICAgIHNwZWFyMTN4eF9wY2llLT5waHkgPSBkZXZtX3BoeV9nZXQo ZGV2LCAicGNpZS1waHkiKTsNCj4gPiAgICAgICAgIGlmIChJU19FUlIoc3BlYXIxM3h4X3BjaWUt PnBoeSkpIHsNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNp ZS10ZWdyYTE5NC5jDQo+IGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS10ZWdyYTE5 NC5jDQo+ID4gaW5kZXggNTU5N2IyYTQ5NTk4Li5lZjIwNTJiYjUwZmQgMTAwNjQ0DQo+ID4gLS0t IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS10ZWdyYTE5NC5jDQo+ID4gKysrIGIv ZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS10ZWdyYTE5NC5jDQo+ID4gQEAgLTI3Miw3 ICsyNzIsOCBAQCBzdHJ1Y3QgdGVncmFfcGNpZV9kdyB7DQo+ID4gICAgICAgICBzdHJ1Y3QgY2xr ICpjb3JlX2NsazsNCj4gPiAgICAgICAgIHN0cnVjdCByZXNldF9jb250cm9sICpjb3JlX2FwYl9y c3Q7DQo+ID4gICAgICAgICBzdHJ1Y3QgcmVzZXRfY29udHJvbCAqY29yZV9yc3Q7DQo+ID4gLSAg ICAgICBzdHJ1Y3QgZHdfcGNpZSBwY2k7DQo+ID4gKyAgICAgICBzdHJ1Y3QgcGNpZV9wb3J0IHBw Ow0KPiA+ICsgICAgICAgc3RydWN0IGR3X3BjaWVfZXAgZXA7DQo+ID4gICAgICAgICBzdHJ1Y3Qg dGVncmFfYnBtcCAqYnBtcDsNCj4gPg0KPiA+ICAgICAgICAgZW51bSBkd19wY2llX2RldmljZV9t b2RlIG1vZGU7DQo+ID4gQEAgLTMxMSwxMCArMzEyLDcgQEAgc3RydWN0IHRlZ3JhX3BjaWVfZHdf b2ZfZGF0YSB7DQo+ID4gICAgICAgICBlbnVtIGR3X3BjaWVfZGV2aWNlX21vZGUgbW9kZTsNCj4g PiAgfTsNCj4gPg0KPiA+IC1zdGF0aWMgaW5saW5lIHN0cnVjdCB0ZWdyYV9wY2llX2R3ICp0b190 ZWdyYV9wY2llKHN0cnVjdCBkd19wY2llICpwY2kpDQo+ID4gLXsNCj4gPiAtICAgICAgIHJldHVy biBjb250YWluZXJfb2YocGNpLCBzdHJ1Y3QgdGVncmFfcGNpZV9kdywgcGNpKTsNCj4gPiAtfQ0K PiA+ICsjZGVmaW5lIHRvX3RlZ3JhX3BjaWUoeCkgICAgICAgZGV2X2dldF9kcnZkYXRhKCh4KS0+ ZGV2KQ0KPiA+DQo+ID4gIHN0YXRpYyBpbmxpbmUgdm9pZCBhcHBsX3dyaXRlbChzdHJ1Y3QgdGVn cmFfcGNpZV9kdyAqcGNpZSwgY29uc3QgdTMyDQo+IHZhbHVlLA0KPiA+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCB1MzIgcmVnKQ0KPiA+IEBAIC0zNjgsOCArMzY2LDggQEAg c3RhdGljIHZvaWQgYXBwbHlfYmFkX2xpbmtfd29ya2Fyb3VuZChzdHJ1Y3QNCj4gcGNpZV9wb3J0 ICpwcCkNCj4gPiAgc3RhdGljIGlycXJldHVybl90IHRlZ3JhX3BjaWVfcnBfaXJxX2hhbmRsZXIo aW50IGlycSwgdm9pZCAqYXJnKQ0KPiA+ICB7DQo+ID4gICAgICAgICBzdHJ1Y3QgdGVncmFfcGNp ZV9kdyAqcGNpZSA9IGFyZzsNCj4gPiAtICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSAmcGNp ZS0+cGNpOw0KPiA+IC0gICAgICAgc3RydWN0IHBjaWVfcG9ydCAqcHAgPSAmcGNpLT5wcDsNCj4g PiArICAgICAgIHN0cnVjdCBwY2llX3BvcnQgKnBwID0gJnBjaWUtPnBwOw0KPiA+ICsgICAgICAg c3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7DQo+ID4gICAgICAg ICB1MzIgdmFsLCB0bXA7DQo+ID4gICAgICAgICB1MTYgdmFsX3c7DQo+ID4NCj4gPiBAQCAtNDY3 LDcgKzQ2NSw3IEBAIHN0YXRpYyB2b2lkIHBleF9lcF9ldmVudF9ob3RfcnN0X2RvbmUoc3RydWN0 DQo+IHRlZ3JhX3BjaWVfZHcgKnBjaWUpDQo+ID4gIHN0YXRpYyBpcnFyZXR1cm5fdCB0ZWdyYV9w Y2llX2VwX2lycV90aHJlYWQoaW50IGlycSwgdm9pZCAqYXJnKQ0KPiA+ICB7DQo+ID4gICAgICAg ICBzdHJ1Y3QgdGVncmFfcGNpZV9kdyAqcGNpZSA9IGFyZzsNCj4gPiAtICAgICAgIHN0cnVjdCBk d19wY2llICpwY2kgPSAmcGNpZS0+cGNpOw0KPiA+ICsgICAgICAgc3RydWN0IGR3X3BjaWUgKnBj aSA9IHRvX2R3X3BjaWVfZnJvbV9lcCgmcGNpZS0+ZXApOw0KPiA+ICAgICAgICAgdTMyIHZhbCwg c3BlZWQ7DQo+ID4NCj4gPiAgICAgICAgIHNwZWVkID0gZHdfcGNpZV9yZWFkd19kYmkocGNpLCBw Y2llLT5wY2llX2NhcF9iYXNlICsNCj4gUENJX0VYUF9MTktTVEEpICYNCj4gPiBAQCAtNTEzLDcg KzUxMSw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCB0ZWdyYV9wY2llX2VwX2lycV90aHJlYWQoaW50 IGlycSwNCj4gdm9pZCAqYXJnKQ0KPiA+ICBzdGF0aWMgaXJxcmV0dXJuX3QgdGVncmFfcGNpZV9l cF9oYXJkX2lycShpbnQgaXJxLCB2b2lkICphcmcpDQo+ID4gIHsNCj4gPiAgICAgICAgIHN0cnVj dCB0ZWdyYV9wY2llX2R3ICpwY2llID0gYXJnOw0KPiA+IC0gICAgICAgc3RydWN0IGR3X3BjaWVf ZXAgKmVwID0gJnBjaWUtPnBjaS5lcDsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llX2VwICpl cCA9ICZwY2llLT5lcDsNCj4gPiAgICAgICAgIGludCBzcHVyaW91cyA9IDE7DQo+ID4gICAgICAg ICB1MzIgdmFsLCB0bXA7DQo+ID4NCj4gPiBAQCAtNTk2LDMzICs1OTQsNDYgQEAgc3RhdGljIHN0 cnVjdCBwY2lfb3BzIHRlZ3JhX3BjaV9vcHMgPSB7DQo+ID4gICNpZiBkZWZpbmVkKENPTkZJR19Q Q0lFQVNQTSkNCj4gPiAgc3RhdGljIHZvaWQgZGlzYWJsZV9hc3BtX2wxMShzdHJ1Y3QgdGVncmFf cGNpZV9kdyAqcGNpZSkNCj4gPiAgew0KPiA+ICsgICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaTsN Cj4gPiAgICAgICAgIHUzMiB2YWw7DQo+ID4NCj4gPiAtICAgICAgIHZhbCA9IGR3X3BjaWVfcmVh ZGxfZGJpKCZwY2llLT5wY2ksIHBjaWUtPmNmZ19saW5rX2NhcF9sMXN1Yik7DQo+ID4gKyAgICAg ICBpZiAocGNpZS0+bW9kZSA9PSBEV19QQ0lFX1JDX1RZUEUpDQo+ID4gKyAgICAgICAgICAgICAg IHBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcCgmcGNpZS0+cHApOw0KPiA+ICsgICAgICAgZWxzZQ0K PiA+ICsgICAgICAgICAgICAgICBwY2kgPSB0b19kd19wY2llX2Zyb21fZXAoJnBjaWUtPmVwKTsN Cj4gPiArDQo+ID4gKyAgICAgICB2YWwgPSBkd19wY2llX3JlYWRsX2RiaShwY2ksIHBjaWUtPmNm Z19saW5rX2NhcF9sMXN1Yik7DQo+ID4gICAgICAgICB2YWwgJj0gflBDSV9MMVNTX0NBUF9BU1BN X0wxXzE7DQo+ID4gLSAgICAgICBkd19wY2llX3dyaXRlbF9kYmkoJnBjaWUtPnBjaSwgcGNpZS0+ Y2ZnX2xpbmtfY2FwX2wxc3ViLCB2YWwpOw0KPiA+ICsgICAgICAgZHdfcGNpZV93cml0ZWxfZGJp KHBjaSwgcGNpZS0+Y2ZnX2xpbmtfY2FwX2wxc3ViLCB2YWwpOw0KPiA+ICB9DQo+ID4NCj4gPiAg c3RhdGljIHZvaWQgZGlzYWJsZV9hc3BtX2wxMihzdHJ1Y3QgdGVncmFfcGNpZV9kdyAqcGNpZSkN Cj4gPiAgew0KPiA+ICsgICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaTsNCj4gPiAgICAgICAgIHUz MiB2YWw7DQo+ID4NCj4gPiAtICAgICAgIHZhbCA9IGR3X3BjaWVfcmVhZGxfZGJpKCZwY2llLT5w Y2ksIHBjaWUtPmNmZ19saW5rX2NhcF9sMXN1Yik7DQo+ID4gKyAgICAgICBpZiAocGNpZS0+bW9k ZSA9PSBEV19QQ0lFX1JDX1RZUEUpDQo+ID4gKyAgICAgICAgICAgICAgIHBjaSA9IHRvX2R3X3Bj aWVfZnJvbV9wcCgmcGNpZS0+cHApOw0KPiA+ICsgICAgICAgZWxzZQ0KPiA+ICsgICAgICAgICAg ICAgICBwY2kgPSB0b19kd19wY2llX2Zyb21fZXAoJnBjaWUtPmVwKTsNCj4gPiArDQo+ID4gKyAg ICAgICB2YWwgPSBkd19wY2llX3JlYWRsX2RiaShwY2ksIHBjaWUtPmNmZ19saW5rX2NhcF9sMXN1 Yik7DQo+ID4gICAgICAgICB2YWwgJj0gflBDSV9MMVNTX0NBUF9BU1BNX0wxXzI7DQo+ID4gLSAg ICAgICBkd19wY2llX3dyaXRlbF9kYmkoJnBjaWUtPnBjaSwgcGNpZS0+Y2ZnX2xpbmtfY2FwX2wx c3ViLCB2YWwpOw0KPiA+ICsgICAgICAgZHdfcGNpZV93cml0ZWxfZGJpKHBjaSwgcGNpZS0+Y2Zn X2xpbmtfY2FwX2wxc3ViLCB2YWwpOw0KPiA+ICB9DQo+ID4NCj4gPiAgc3RhdGljIGlubGluZSB1 MzIgZXZlbnRfY291bnRlcl9wcm9nKHN0cnVjdCB0ZWdyYV9wY2llX2R3ICpwY2llLCB1MzINCj4g ZXZlbnQpDQo+ID4gIHsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19w Y2llX2Zyb21fcHAoJnBjaWUtPnBwKTsNCj4gPiAgICAgICAgIHUzMiB2YWw7DQo+ID4NCj4gPiAt ICAgICAgIHZhbCA9IGR3X3BjaWVfcmVhZGxfZGJpKCZwY2llLT5wY2ksDQo+IGV2ZW50X2NudHJf Y3RybF9vZmZzZXRbcGNpZS0+Y2lkXSk7DQo+ID4gKyAgICAgICB2YWwgPSBkd19wY2llX3JlYWRs X2RiaShwY2ksIGV2ZW50X2NudHJfY3RybF9vZmZzZXRbcGNpZS0+Y2lkXSk7DQo+ID4gICAgICAg ICB2YWwgJj0gfihFVkVOVF9DT1VOVEVSX0VWRU5UX1NFTF9NQVNLIDw8DQo+IEVWRU5UX0NPVU5U RVJfRVZFTlRfU0VMX1NISUZUKTsNCj4gPiAgICAgICAgIHZhbCB8PSBFVkVOVF9DT1VOVEVSX0dS T1VQXzUgPDwNCj4gRVZFTlRfQ09VTlRFUl9HUk9VUF9TRUxfU0hJRlQ7DQo+ID4gICAgICAgICB2 YWwgfD0gZXZlbnQgPDwgRVZFTlRfQ09VTlRFUl9FVkVOVF9TRUxfU0hJRlQ7DQo+ID4gICAgICAg ICB2YWwgfD0gRVZFTlRfQ09VTlRFUl9FTkFCTEVfQUxMIDw8DQo+IEVWRU5UX0NPVU5URVJfRU5B QkxFX1NISUZUOw0KPiA+IC0gICAgICAgZHdfcGNpZV93cml0ZWxfZGJpKCZwY2llLT5wY2ksIGV2 ZW50X2NudHJfY3RybF9vZmZzZXRbcGNpZS0+Y2lkXSwNCj4gdmFsKTsNCj4gPiAtICAgICAgIHZh bCA9IGR3X3BjaWVfcmVhZGxfZGJpKCZwY2llLT5wY2ksDQo+IGV2ZW50X2NudHJfZGF0YV9vZmZz ZXRbcGNpZS0+Y2lkXSk7DQo+ID4gKyAgICAgICBkd19wY2llX3dyaXRlbF9kYmkocGNpLCBldmVu dF9jbnRyX2N0cmxfb2Zmc2V0W3BjaWUtPmNpZF0sIHZhbCk7DQo+ID4gKyAgICAgICB2YWwgPSBk d19wY2llX3JlYWRsX2RiaShwY2ksIGV2ZW50X2NudHJfZGF0YV9vZmZzZXRbcGNpZS0+Y2lkXSk7 DQo+ID4NCj4gPiAgICAgICAgIHJldHVybiB2YWw7DQo+ID4gIH0NCj4gPiBAQCAtNjMxLDYgKzY0 Miw3IEBAIHN0YXRpYyBpbnQgYXNwbV9zdGF0ZV9jbnQoc3RydWN0IHNlcV9maWxlICpzLCB2b2lk DQo+ICpkYXRhKQ0KPiA+ICB7DQo+ID4gICAgICAgICBzdHJ1Y3QgdGVncmFfcGNpZV9kdyAqcGNp ZSA9IChzdHJ1Y3QgdGVncmFfcGNpZV9kdyAqKQ0KPiA+DQo+IGRldl9nZXRfZHJ2ZGF0YShzLT5w cml2YXRlKTsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zy b21fcHAoJnBjaWUtPnBwKTsNCj4gPiAgICAgICAgIHUzMiB2YWw7DQo+ID4NCj4gPiAgICAgICAg IHNlcV9wcmludGYocywgIlR4IEwwcyBlbnRyeSBjb3VudCA6ICV1XG4iLA0KPiA+IEBAIC02NDks MjIgKzY2MSwyNyBAQCBzdGF0aWMgaW50IGFzcG1fc3RhdGVfY250KHN0cnVjdCBzZXFfZmlsZSAq cywgdm9pZA0KPiAqZGF0YSkNCj4gPiAgICAgICAgICAgICAgICAgICAgZXZlbnRfY291bnRlcl9w cm9nKHBjaWUsDQo+IEVWRU5UX0NPVU5URVJfRVZFTlRfTDFfMikpOw0KPiA+DQo+ID4gICAgICAg ICAvKiBDbGVhciBhbGwgY291bnRlcnMgKi8NCj4gPiAtICAgICAgIGR3X3BjaWVfd3JpdGVsX2Ri aSgmcGNpZS0+cGNpLA0KPiBldmVudF9jbnRyX2N0cmxfb2Zmc2V0W3BjaWUtPmNpZF0sDQo+ID4g KyAgICAgICBkd19wY2llX3dyaXRlbF9kYmkocGNpLCBldmVudF9jbnRyX2N0cmxfb2Zmc2V0W3Bj aWUtPmNpZF0sDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZFTlRfQ09VTlRFUl9B TExfQ0xFQVIpOw0KPiA+DQo+ID4gICAgICAgICAvKiBSZS1lbmFibGUgY291bnRpbmcgKi8NCj4g PiAgICAgICAgIHZhbCA9IEVWRU5UX0NPVU5URVJfRU5BQkxFX0FMTCA8PA0KPiBFVkVOVF9DT1VO VEVSX0VOQUJMRV9TSElGVDsNCj4gPiAgICAgICAgIHZhbCB8PSBFVkVOVF9DT1VOVEVSX0dST1VQ XzUgPDwNCj4gRVZFTlRfQ09VTlRFUl9HUk9VUF9TRUxfU0hJRlQ7DQo+ID4gLSAgICAgICBkd19w Y2llX3dyaXRlbF9kYmkoJnBjaWUtPnBjaSwgZXZlbnRfY250cl9jdHJsX29mZnNldFtwY2llLT5j aWRdLA0KPiB2YWwpOw0KPiA+ICsgICAgICAgZHdfcGNpZV93cml0ZWxfZGJpKHBjaSwgZXZlbnRf Y250cl9jdHJsX29mZnNldFtwY2llLT5jaWRdLCB2YWwpOw0KPiA+DQo+ID4gICAgICAgICByZXR1 cm4gMDsNCj4gPiAgfQ0KPiA+DQo+ID4gIHN0YXRpYyB2b2lkIGluaXRfaG9zdF9hc3BtKHN0cnVj dCB0ZWdyYV9wY2llX2R3ICpwY2llKQ0KPiA+ICB7DQo+ID4gLSAgICAgICBzdHJ1Y3QgZHdfcGNp ZSAqcGNpID0gJnBjaWUtPnBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2k7DQo+ ID4gICAgICAgICB1MzIgdmFsOw0KPiA+DQo+ID4gKyAgICAgICBpZiAocGNpZS0+bW9kZSA9PSBE V19QQ0lFX1JDX1RZUEUpDQo+ID4gKyAgICAgICAgICAgICAgIHBjaSA9IHRvX2R3X3BjaWVfZnJv bV9wcCgmcGNpZS0+cHApOw0KPiA+ICsgICAgICAgZWxzZQ0KPiA+ICsgICAgICAgICAgICAgICBw Y2kgPSB0b19kd19wY2llX2Zyb21fZXAoJnBjaWUtPmVwKTsNCj4gPiArDQo+ID4gICAgICAgICB2 YWwgPSBkd19wY2llX2ZpbmRfZXh0X2NhcGFiaWxpdHkocGNpLCBQQ0lfRVhUX0NBUF9JRF9MMVNT KTsNCj4gPiAgICAgICAgIHBjaWUtPmNmZ19saW5rX2NhcF9sMXN1YiA9IHZhbCArIFBDSV9MMVNT X0NBUDsNCj4gPg0KPiA+IEBAIC03MjYsMTUgKzc0MywxNSBAQCBzdGF0aWMgdm9pZA0KPiB0ZWdy YV9wY2llX2VuYWJsZV9zeXN0ZW1faW50ZXJydXB0cyhzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkNCj4g PiAgICAgICAgICAgICAgICAgYXBwbF93cml0ZWwocGNpZSwgdmFsLCBBUFBMX0lOVFJfRU5fTDFf MTgpOw0KPiA+ICAgICAgICAgfQ0KPiA+DQo+ID4gLSAgICAgICB2YWxfdyA9IGR3X3BjaWVfcmVh ZHdfZGJpKCZwY2llLT5wY2ksIHBjaWUtPnBjaWVfY2FwX2Jhc2UgKw0KPiA+ICsgICAgICAgdmFs X3cgPSBkd19wY2llX3JlYWR3X2RiaShwY2ksIHBjaWUtPnBjaWVfY2FwX2Jhc2UgKw0KPiA+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfRVhQX0xOS1NUQSk7DQo+ID4gICAg ICAgICBwY2llLT5pbml0X2xpbmtfd2lkdGggPSAodmFsX3cgJiBQQ0lfRVhQX0xOS1NUQV9OTFcp ID4+DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfRVhQX0xOS1NUQV9O TFdfU0hJRlQ7DQo+ID4NCj4gPiAtICAgICAgIHZhbF93ID0gZHdfcGNpZV9yZWFkd19kYmkoJnBj aWUtPnBjaSwgcGNpZS0+cGNpZV9jYXBfYmFzZSArDQo+ID4gKyAgICAgICB2YWxfdyA9IGR3X3Bj aWVfcmVhZHdfZGJpKHBjaSwgcGNpZS0+cGNpZV9jYXBfYmFzZSArDQo+ID4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBDSV9FWFBfTE5LQ1RMKTsNCj4gPiAgICAgICAgIHZhbF93 IHw9IFBDSV9FWFBfTE5LQ1RMX0xCTUlFOw0KPiA+IC0gICAgICAgZHdfcGNpZV93cml0ZXdfZGJp KCZwY2llLT5wY2ksIHBjaWUtPnBjaWVfY2FwX2Jhc2UgKw0KPiBQQ0lfRVhQX0xOS0NUTCwNCj4g PiArICAgICAgIGR3X3BjaWVfd3JpdGV3X2RiaShwY2ksIHBjaWUtPnBjaWVfY2FwX2Jhc2UgKw0K PiBQQ0lfRVhQX0xOS0NUTCwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxfdyk7 DQo+ID4gIH0NCj4gPg0KPiA+IEBAIC04MDIsOSArODE5LDE0IEBAIHN0YXRpYyB2b2lkIHRlZ3Jh X3BjaWVfZW5hYmxlX2ludGVycnVwdHMoc3RydWN0DQo+IHBjaWVfcG9ydCAqcHApDQo+ID4NCj4g PiAgc3RhdGljIHZvaWQgY29uZmlnX2dlbjNfZ2VuNF9lcV9wcmVzZXRzKHN0cnVjdCB0ZWdyYV9w Y2llX2R3ICpwY2llKQ0KPiA+ICB7DQo+ID4gLSAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0g JnBjaWUtPnBjaTsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2k7DQo+ID4gICAgICAg ICB1MzIgdmFsLCBvZmZzZXQsIGk7DQo+ID4NCj4gPiArICAgICAgIGlmIChwY2llLT5tb2RlID09 IERXX1BDSUVfUkNfVFlQRSkNCj4gPiArICAgICAgICAgICAgICAgcGNpID0gdG9fZHdfcGNpZV9m cm9tX3BwKCZwY2llLT5wcCk7DQo+ID4gKyAgICAgICBlbHNlDQo+ID4gKyAgICAgICAgICAgICAg IHBjaSA9IHRvX2R3X3BjaWVfZnJvbV9lcCgmcGNpZS0+ZXApOw0KPiA+ICsNCj4gPiAgICAgICAg IC8qIFByb2dyYW0gaW5pdCBwcmVzZXQgKi8NCj4gPiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBw Y2llLT5udW1fbGFuZXM7IGkrKykgew0KPiA+ICAgICAgICAgICAgICAgICB2YWwgPSBkd19wY2ll X3JlYWR3X2RiaShwY2ksIENBUF9TUENJRV9DQVBfT0ZGICsNCj4gKGkgKiAyKSk7DQo+ID4gQEAg LTg2MCw3ICs4ODIsNyBAQCBzdGF0aWMgdm9pZCB0ZWdyYV9wY2llX3ByZXBhcmVfaG9zdChzdHJ1 Y3QNCj4gcGNpZV9wb3J0ICpwcCkNCj4gPiAgICAgICAgIHUzMiB2YWw7DQo+ID4NCj4gPiAgICAg ICAgIGlmICghcGNpZS0+cGNpZV9jYXBfYmFzZSkNCj4gPiAtICAgICAgICAgICAgICAgcGNpZS0+ cGNpZV9jYXBfYmFzZSA9DQo+IGR3X3BjaWVfZmluZF9jYXBhYmlsaXR5KCZwY2llLT5wY2ksDQo+ ID4gKyAgICAgICAgICAgICAgIHBjaWUtPnBjaWVfY2FwX2Jhc2UgPSBkd19wY2llX2ZpbmRfY2Fw YWJpbGl0eShwY2ksDQo+ID4NCj4gUENJX0NBUF9JRF9FWFApOw0KPiA+DQo+ID4gICAgICAgICB2 YWwgPSBkd19wY2llX3JlYWRsX2RiaShwY2ksIFBDSV9JT19CQVNFKTsNCj4gPiBAQCAtMTIxNSw3 ICsxMjM3LDcgQEAgc3RhdGljIGludCB0ZWdyYV9wY2llX2JwbXBfc2V0X3BsbF9zdGF0ZShzdHJ1 Y3QNCj4gdGVncmFfcGNpZV9kdyAqcGNpZSwNCj4gPg0KPiA+ICBzdGF0aWMgdm9pZCB0ZWdyYV9w Y2llX2Rvd25zdHJlYW1fZGV2X3RvX0QwKHN0cnVjdCB0ZWdyYV9wY2llX2R3DQo+ICpwY2llKQ0K PiA+ICB7DQo+ID4gLSAgICAgICBzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9ICZwY2llLT5wY2kucHA7 DQo+ID4gKyAgICAgICBzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9ICZwY2llLT5wcDsNCj4gPiAgICAg ICAgIHN0cnVjdCBwY2lfYnVzICpjaGlsZCwgKnJvb3RfYnVzID0gTlVMTDsNCj4gPiAgICAgICAg IHN0cnVjdCBwY2lfZGV2ICpwZGV2Ow0KPiA+DQo+ID4gQEAgLTE0NDUsOCArMTQ2Nyw3IEBAIHN0 YXRpYyB2b2lkDQo+IHRlZ3JhX3BjaWVfdW5jb25maWdfY29udHJvbGxlcihzdHJ1Y3QgdGVncmFf cGNpZV9kdyAqcGNpZSkNCj4gPg0KPiA+ICBzdGF0aWMgaW50IHRlZ3JhX3BjaWVfaW5pdF9jb250 cm9sbGVyKHN0cnVjdCB0ZWdyYV9wY2llX2R3ICpwY2llKQ0KPiA+ICB7DQo+ID4gLSAgICAgICBz dHJ1Y3QgZHdfcGNpZSAqcGNpID0gJnBjaWUtPnBjaTsNCj4gPiAtICAgICAgIHN0cnVjdCBwY2ll X3BvcnQgKnBwID0gJnBjaS0+cHA7DQo+ID4gKyAgICAgICBzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9 ICZwY2llLT5wcDsNCj4gPiAgICAgICAgIGludCByZXQ7DQo+ID4NCj4gPiAgICAgICAgIHJldCA9 IHRlZ3JhX3BjaWVfY29uZmlnX2NvbnRyb2xsZXIocGNpZSwgZmFsc2UpOw0KPiA+IEBAIC0xNDcw LDkgKzE0OTEsMTAgQEAgc3RhdGljIGludCB0ZWdyYV9wY2llX2luaXRfY29udHJvbGxlcihzdHJ1 Y3QNCj4gdGVncmFfcGNpZV9kdyAqcGNpZSkNCj4gPg0KPiA+ICBzdGF0aWMgaW50IHRlZ3JhX3Bj aWVfdHJ5X2xpbmtfbDIoc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnBjaWUpDQo+ID4gIHsNCj4gPiAr ICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAoJnBjaWUtPnBw KTsNCj4gPiAgICAgICAgIHUzMiB2YWw7DQo+ID4NCj4gPiAtICAgICAgIGlmICghdGVncmFfcGNp ZV9kd19saW5rX3VwKCZwY2llLT5wY2kpKQ0KPiA+ICsgICAgICAgaWYgKCF0ZWdyYV9wY2llX2R3 X2xpbmtfdXAocGNpKSkNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ID4NCj4gPiAg ICAgICAgIHZhbCA9IGFwcGxfcmVhZGwocGNpZSwgQVBQTF9SQURNX1NUQVRVUyk7DQo+ID4gQEAg LTE0ODYsMTAgKzE1MDgsMTEgQEAgc3RhdGljIGludCB0ZWdyYV9wY2llX3RyeV9saW5rX2wyKHN0 cnVjdA0KPiB0ZWdyYV9wY2llX2R3ICpwY2llKQ0KPiA+DQo+ID4gIHN0YXRpYyB2b2lkIHRlZ3Jh X3BjaWVfZHdfcG1lX3R1cm5vZmYoc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnBjaWUpDQo+ID4gIHsN Cj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAoJnBj aWUtPnBwKTsNCj4gPiAgICAgICAgIHUzMiBkYXRhOw0KPiA+ICAgICAgICAgaW50IGVycjsNCj4g Pg0KPiA+IC0gICAgICAgaWYgKCF0ZWdyYV9wY2llX2R3X2xpbmtfdXAoJnBjaWUtPnBjaSkpIHsN Cj4gPiArICAgICAgIGlmICghdGVncmFfcGNpZV9kd19saW5rX3VwKHBjaSkpIHsNCj4gPiAgICAg ICAgICAgICAgICAgZGV2X2RiZyhwY2llLT5kZXYsICJQQ0llIGxpbmsgaXMgbm90IHVwLi4uIVxu Iik7DQo+ID4gICAgICAgICAgICAgICAgIHJldHVybjsNCj4gPiAgICAgICAgIH0NCj4gPiBAQCAt MTUzOSwxMyArMTU2MiwxNCBAQCBzdGF0aWMgdm9pZA0KPiB0ZWdyYV9wY2llX2R3X3BtZV90dXJu b2ZmKHN0cnVjdCB0ZWdyYV9wY2llX2R3ICpwY2llKQ0KPiA+ICBzdGF0aWMgdm9pZCB0ZWdyYV9w Y2llX2RlaW5pdF9jb250cm9sbGVyKHN0cnVjdCB0ZWdyYV9wY2llX2R3ICpwY2llKQ0KPiA+ICB7 DQo+ID4gICAgICAgICB0ZWdyYV9wY2llX2Rvd25zdHJlYW1fZGV2X3RvX0QwKHBjaWUpOw0KPiA+ IC0gICAgICAgZHdfcGNpZV9ob3N0X2RlaW5pdCgmcGNpZS0+cGNpLnBwKTsNCj4gPiArICAgICAg IGR3X3BjaWVfaG9zdF9kZWluaXQoJnBjaWUtPnBwKTsNCj4gPiAgICAgICAgIHRlZ3JhX3BjaWVf ZHdfcG1lX3R1cm5vZmYocGNpZSk7DQo+ID4gICAgICAgICB0ZWdyYV9wY2llX3VuY29uZmlnX2Nv bnRyb2xsZXIocGNpZSk7DQo+ID4gIH0NCj4gPg0KPiA+ICBzdGF0aWMgaW50IHRlZ3JhX3BjaWVf Y29uZmlnX3JwKHN0cnVjdCB0ZWdyYV9wY2llX2R3ICpwY2llKQ0KPiA+ICB7DQo+ID4gKyAgICAg ICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKCZwY2llLT5wcCk7DQo+ ID4gICAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwY2llLT5kZXY7DQo+ID4gICAgICAgICBj aGFyICpuYW1lOw0KPiA+ICAgICAgICAgaW50IHJldDsNCj4gPiBAQCAtMTU3MSw3ICsxNTk1LDcg QEAgc3RhdGljIGludCB0ZWdyYV9wY2llX2NvbmZpZ19ycChzdHJ1Y3QNCj4gdGVncmFfcGNpZV9k dyAqcGNpZSkNCj4gPiAgICAgICAgICAgICAgICAgZ290byBmYWlsX3BtX2dldF9zeW5jOw0KPiA+ ICAgICAgICAgfQ0KPiA+DQo+ID4gLSAgICAgICBwY2llLT5saW5rX3N0YXRlID0gdGVncmFfcGNp ZV9kd19saW5rX3VwKCZwY2llLT5wY2kpOw0KPiA+ICsgICAgICAgcGNpZS0+bGlua19zdGF0ZSA9 IHRlZ3JhX3BjaWVfZHdfbGlua191cChwY2kpOw0KPiA+ICAgICAgICAgaWYgKCFwY2llLT5saW5r X3N0YXRlKSB7DQo+ID4gICAgICAgICAgICAgICAgIHJldCA9IC1FTk9NRURJVU07DQo+ID4gICAg ICAgICAgICAgICAgIGdvdG8gZmFpbF9ob3N0X2luaXQ7DQo+ID4gQEAgLTE2MzcsOCArMTY2MSw4 IEBAIHN0YXRpYyB2b2lkIHBleF9lcF9ldmVudF9wZXhfcnN0X2Fzc2VydChzdHJ1Y3QNCj4gdGVn cmFfcGNpZV9kdyAqcGNpZSkNCj4gPg0KPiA+ICBzdGF0aWMgdm9pZCBwZXhfZXBfZXZlbnRfcGV4 X3JzdF9kZWFzc2VydChzdHJ1Y3QgdGVncmFfcGNpZV9kdyAqcGNpZSkNCj4gPiAgew0KPiA+IC0g ICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9ICZwY2llLT5wY2k7DQo+ID4gLSAgICAgICBzdHJ1 Y3QgZHdfcGNpZV9lcCAqZXAgPSAmcGNpLT5lcDsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2ll X2VwICplcCA9ICZwY2llLT5lcDsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSB0 b19kd19wY2llX2Zyb21fZXAoZXApOw0KPiA+ICAgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0g cGNpZS0+ZGV2Ow0KPiA+ICAgICAgICAgdTMyIHZhbDsNCj4gPiAgICAgICAgIGludCByZXQ7DQo+ ID4gQEAgLTE3NTcsNyArMTc4MSw3IEBAIHN0YXRpYyB2b2lkDQo+IHBleF9lcF9ldmVudF9wZXhf cnN0X2RlYXNzZXJ0KHN0cnVjdCB0ZWdyYV9wY2llX2R3ICpwY2llKQ0KPiA+ICAgICAgICAgdmFs ICY9IH5HRU4zX1JFTEFURURfT0ZGX0dFTjNfWlJYRENfTk9OQ09NUEw7DQo+ID4gICAgICAgICBk d19wY2llX3dyaXRlbF9kYmkocGNpLCBHRU4zX1JFTEFURURfT0ZGLCB2YWwpOw0KPiA+DQo+ID4g LSAgICAgICBwY2llLT5wY2llX2NhcF9iYXNlID0gZHdfcGNpZV9maW5kX2NhcGFiaWxpdHkoJnBj aWUtPnBjaSwNCj4gPiArICAgICAgIHBjaWUtPnBjaWVfY2FwX2Jhc2UgPSBkd19wY2llX2ZpbmRf Y2FwYWJpbGl0eShwY2ksDQo+ID4NCj4gUENJX0NBUF9JRF9FWFApOw0KPiA+ICAgICAgICAgY2xr X3NldF9yYXRlKHBjaWUtPmNvcmVfY2xrLCBHRU40X0NPUkVfQ0xLX0ZSRVEpOw0KPiA+DQo+ID4g QEAgLTE4MzQsNyArMTg1OCw3IEBAIHN0YXRpYyBpbnQgdGVncmFfcGNpZV9lcF9yYWlzZV9tc2lf aXJxKHN0cnVjdA0KPiB0ZWdyYV9wY2llX2R3ICpwY2llLCB1MTYgaXJxKQ0KPiA+DQo+ID4gIHN0 YXRpYyBpbnQgdGVncmFfcGNpZV9lcF9yYWlzZV9tc2l4X2lycShzdHJ1Y3QgdGVncmFfcGNpZV9k dyAqcGNpZSwgdTE2DQo+IGlycSkNCj4gPiAgew0KPiA+IC0gICAgICAgc3RydWN0IGR3X3BjaWVf ZXAgKmVwID0gJnBjaWUtPnBjaS5lcDsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llX2VwICpl cCA9ICZwY2llLT5lcDsNCj4gPg0KPiA+ICAgICAgICAgd3JpdGVsKGlycSwgZXAtPm1zaV9tZW0p Ow0KPiA+DQo+ID4gQEAgLTE4OTAsMTMgKzE5MTQsMTIgQEAgc3RhdGljIHN0cnVjdCBkd19wY2ll X2VwX29wcyBwY2llX2VwX29wcyA9IHsNCj4gPiAgc3RhdGljIGludCB0ZWdyYV9wY2llX2NvbmZp Z19lcChzdHJ1Y3QgdGVncmFfcGNpZV9kdyAqcGNpZSwNCj4gPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gIHsNCj4gPiAt ICAgICAgIHN0cnVjdCBkd19wY2llICpwY2kgPSAmcGNpZS0+cGNpOw0KPiA+ICAgICAgICAgc3Ry dWN0IGRldmljZSAqZGV2ID0gcGNpZS0+ZGV2Ow0KPiA+ICAgICAgICAgc3RydWN0IGR3X3BjaWVf ZXAgKmVwOw0KPiA+ICAgICAgICAgY2hhciAqbmFtZTsNCj4gPiAgICAgICAgIGludCByZXQ7DQo+ ID4NCj4gPiAtICAgICAgIGVwID0gJnBjaS0+ZXA7DQo+ID4gKyAgICAgICBlcCA9ICZwY2llLT5l cDsNCj4gPiAgICAgICAgIGVwLT5vcHMgPSAmcGNpZV9lcF9vcHM7DQo+ID4NCj4gPiAgICAgICAg IGVwLT5wYWdlX3NpemUgPSBTWl82NEs7DQo+ID4gQEAgLTE5NjEsMTEgKzE5ODQsMTQgQEAgc3Rh dGljIGludCB0ZWdyYV9wY2llX2R3X3Byb2JlKHN0cnVjdA0KPiBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpDQo+ID4gICAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2Ow0KPiA+ICAg ICAgICAgc3RydWN0IHJlc291cmNlICphdHVfZG1hX3JlczsNCj4gPiAgICAgICAgIHN0cnVjdCB0 ZWdyYV9wY2llX2R3ICpwY2llOw0KPiA+ICsgICAgICAgdm9pZCBfX2lvbWVtICphdHVfYmFzZTsN Cj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llX2VwICplcDsNCj4gPiAgICAgICAgIHN0cnVjdCBw Y2llX3BvcnQgKnBwOw0KPiA+ICAgICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaTsNCj4gPiAgICAg ICAgIHN0cnVjdCBwaHkgKipwaHlzOw0KPiA+ICsgICAgICAgc2l6ZV90IGF0dV9zaXplOw0KPiA+ ICAgICAgICAgY2hhciAqbmFtZTsNCj4gPiAtICAgICAgIGludCByZXQ7DQo+ID4gKyAgICAgICBp bnQgcmV0LCBpcnE7DQo+ID4gICAgICAgICB1MzIgaTsNCj4gPg0KPiA+ICAgICAgICAgZGF0YSA9 IG9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YShkZXYpOw0KPiA+IEBAIC0xOTc0LDE1ICsyMDAwLDYg QEAgc3RhdGljIGludCB0ZWdyYV9wY2llX2R3X3Byb2JlKHN0cnVjdA0KPiBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpDQo+ID4gICAgICAgICBpZiAoIXBjaWUpDQo+ID4gICAgICAgICAgICAgICAgIHJl dHVybiAtRU5PTUVNOw0KPiA+DQo+ID4gLSAgICAgICBwY2kgPSAmcGNpZS0+cGNpOw0KPiA+IC0g ICAgICAgcGNpLT5kZXYgPSAmcGRldi0+ZGV2Ow0KPiA+IC0gICAgICAgcGNpLT5vcHMgPSAmdGVn cmFfZHdfcGNpZV9vcHM7DQo+ID4gLSAgICAgICBwY2ktPm5fZnRzWzBdID0gTl9GVFNfVkFMOw0K PiA+IC0gICAgICAgcGNpLT5uX2Z0c1sxXSA9IEZUU19WQUw7DQo+ID4gLSAgICAgICBwY2ktPnZl cnNpb24gPSAweDQ5MEE7DQo+ID4gLQ0KPiA+IC0gICAgICAgcHAgPSAmcGNpLT5wcDsNCj4gPiAt ICAgICAgIHBwLT5udW1fdmVjdG9ycyA9IE1BWF9NU0lfSVJRUzsNCj4gPiAgICAgICAgIHBjaWUt PmRldiA9ICZwZGV2LT5kZXY7DQo+ID4gICAgICAgICBwY2llLT5tb2RlID0gKGVudW0gZHdfcGNp ZV9kZXZpY2VfbW9kZSlkYXRhLT5tb2RlOw0KPiA+DQo+ID4gQEAgLTIwNzksMTAgKzIwOTYsMTAg QEAgc3RhdGljIGludCB0ZWdyYV9wY2llX2R3X3Byb2JlKHN0cnVjdA0KPiBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpDQo+ID4gICAgICAgICB9DQo+ID4gICAgICAgICBwY2llLT5hdHVfZG1hX3JlcyA9 IGF0dV9kbWFfcmVzOw0KPiA+DQo+ID4gLSAgICAgICBwY2ktPmF0dV9zaXplID0gcmVzb3VyY2Vf c2l6ZShhdHVfZG1hX3Jlcyk7DQo+ID4gLSAgICAgICBwY2ktPmF0dV9iYXNlID0gZGV2bV9pb3Jl bWFwX3Jlc291cmNlKGRldiwgYXR1X2RtYV9yZXMpOw0KPiA+IC0gICAgICAgaWYgKElTX0VSUihw Y2ktPmF0dV9iYXNlKSkNCj4gPiAtICAgICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIocGNpLT5h dHVfYmFzZSk7DQo+ID4gKyAgICAgICBhdHVfc2l6ZSA9IHJlc291cmNlX3NpemUoYXR1X2RtYV9y ZXMpOw0KPiA+ICsgICAgICAgYXR1X2Jhc2UgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoZGV2LCBh dHVfZG1hX3Jlcyk7DQo+ID4gKyAgICAgICBpZiAoSVNfRVJSKGF0dV9iYXNlKSkNCj4gPiArICAg ICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIoYXR1X2Jhc2UpOw0KPiA+DQo+ID4gICAgICAgICBw Y2llLT5jb3JlX3JzdCA9IGRldm1fcmVzZXRfY29udHJvbF9nZXQoZGV2LCAiY29yZSIpOw0KPiA+ ICAgICAgICAgaWYgKElTX0VSUihwY2llLT5jb3JlX3JzdCkpIHsNCj4gPiBAQCAtMjA5MSw5ICsy MTA4LDkgQEAgc3RhdGljIGludCB0ZWdyYV9wY2llX2R3X3Byb2JlKHN0cnVjdA0KPiBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYpDQo+ID4gICAgICAgICAgICAgICAgIHJldHVybiBQVFJfRVJSKHBjaWUt PmNvcmVfcnN0KTsNCj4gPiAgICAgICAgIH0NCj4gPg0KPiA+IC0gICAgICAgcHAtPmlycSA9IHBs YXRmb3JtX2dldF9pcnFfYnluYW1lKHBkZXYsICJpbnRyIik7DQo+ID4gLSAgICAgICBpZiAocHAt PmlycSA8IDApDQo+ID4gLSAgICAgICAgICAgICAgIHJldHVybiBwcC0+aXJxOw0KPiA+ICsgICAg ICAgaXJxID0gcGxhdGZvcm1fZ2V0X2lycV9ieW5hbWUocGRldiwgImludHIiKTsNCj4gPiArICAg ICAgIGlmIChpcnEgPCAwKQ0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gaXJxOw0KPiA+DQo+ ID4gICAgICAgICBwY2llLT5icG1wID0gdGVncmFfYnBtcF9nZXQoZGV2KTsNCj4gPiAgICAgICAg IGlmIChJU19FUlIocGNpZS0+YnBtcCkpDQo+ID4gQEAgLTIxMDMsMTAgKzIxMjAsMjIgQEAgc3Rh dGljIGludCB0ZWdyYV9wY2llX2R3X3Byb2JlKHN0cnVjdA0KPiBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpDQo+ID4NCj4gPiAgICAgICAgIHN3aXRjaCAocGNpZS0+bW9kZSkgew0KPiA+ICAgICAgICAg Y2FzZSBEV19QQ0lFX1JDX1RZUEU6DQo+ID4gLSAgICAgICAgICAgICAgIHJldCA9IGRldm1fcmVx dWVzdF9pcnEoZGV2LCBwcC0+aXJxLA0KPiB0ZWdyYV9wY2llX3JwX2lycV9oYW5kbGVyLA0KPiA+ ICsgICAgICAgICAgICAgICBwcCA9ICZwY2llLT5wcDsNCj4gPiArICAgICAgICAgICAgICAgcGNp ID0gJnBwLT5wY2llOw0KPiA+ICsgICAgICAgICAgICAgICBwY2ktPmRldiA9ICZwZGV2LT5kZXY7 DQo+ID4gKyAgICAgICAgICAgICAgIHBjaS0+b3BzID0gJnRlZ3JhX2R3X3BjaWVfb3BzOw0KPiA+ ICsgICAgICAgICAgICAgICBwY2ktPm5fZnRzWzBdID0gTl9GVFNfVkFMOw0KPiA+ICsgICAgICAg ICAgICAgICBwY2ktPm5fZnRzWzFdID0gRlRTX1ZBTDsNCj4gPiArICAgICAgICAgICAgICAgcGNp LT52ZXJzaW9uID0gMHg0OTBBOw0KPiA+ICsgICAgICAgICAgICAgICBwY2ktPmF0dV9zaXplID0g YXR1X3NpemU7DQo+ID4gKyAgICAgICAgICAgICAgIHBjaS0+YXR1X2Jhc2UgPSBhdHVfYmFzZTsN Cj4gPiArICAgICAgICAgICAgICAgcHAtPm51bV92ZWN0b3JzID0gTUFYX01TSV9JUlFTOw0KPiA+ ICsgICAgICAgICAgICAgICBwcC0+aXJxID0gaXJxOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAg ICAgcmV0ID0gZGV2bV9yZXF1ZXN0X2lycShkZXYsIGlycSwNCj4gdGVncmFfcGNpZV9ycF9pcnFf aGFuZGxlciwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUlFG X1NIQVJFRCwNCj4gInRlZ3JhLXBjaWUtaW50ciIsIHBjaWUpOw0KPiA+ICAgICAgICAgICAgICAg ICBpZiAocmV0KSB7DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgZGV2X2VycihkZXYsICJG YWlsZWQgdG8gcmVxdWVzdA0KPiBJUlEgJWQ6ICVkXG4iLCBwcC0+aXJxLA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIGRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIHJlcXVlc3QNCj4gSVJRICVk OiAlZFxuIiwgaXJxLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0KTsN Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7DQo+ID4gICAgICAgICAgICAg ICAgIH0NCj4gPiBAQCAtMjExOSwxMyArMjE0OCwyMyBAQCBzdGF0aWMgaW50IHRlZ3JhX3BjaWVf ZHdfcHJvYmUoc3RydWN0DQo+IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gPiAgICAgICAgICAg ICAgICAgYnJlYWs7DQo+ID4NCj4gPiAgICAgICAgIGNhc2UgRFdfUENJRV9FUF9UWVBFOg0KPiA+ IC0gICAgICAgICAgICAgICByZXQgPSBkZXZtX3JlcXVlc3RfdGhyZWFkZWRfaXJxKGRldiwgcHAt PmlycSwNCj4gPiArICAgICAgICAgICAgICAgZXAgPSAmcGNpZS0+ZXA7DQo+ID4gKyAgICAgICAg ICAgICAgIHBjaSA9ICZlcC0+cGNpZTsNCj4gPiArICAgICAgICAgICAgICAgcGNpLT5kZXYgPSAm cGRldi0+ZGV2Ow0KPiA+ICsgICAgICAgICAgICAgICBwY2ktPm9wcyA9ICZ0ZWdyYV9kd19wY2ll X29wczsNCj4gPiArICAgICAgICAgICAgICAgcGNpLT5uX2Z0c1swXSA9IE5fRlRTX1ZBTDsNCj4g PiArICAgICAgICAgICAgICAgcGNpLT5uX2Z0c1sxXSA9IEZUU19WQUw7DQo+ID4gKyAgICAgICAg ICAgICAgIHBjaS0+dmVyc2lvbiA9IDB4NDkwQTsNCj4gPiArICAgICAgICAgICAgICAgcGNpLT5h dHVfc2l6ZSA9IGF0dV9zaXplOw0KPiA+ICsgICAgICAgICAgICAgICBwY2ktPmF0dV9iYXNlID0g YXR1X2Jhc2U7DQo+IA0KPiBEdXBsaWNhdGluZyBhIGZldyB0aGluZ3MgaXMgb2theSwgYnV0IHRo aXMgaXMgdG9vIG11Y2ggSU1PLg0KDQpUaGlzIHdpbGwgYmUgcmVmaW5lZCBpbiBuZXh0IHZlcnNp b24uDQoNClRoYW5rcywNClpoaXFpYW5nDQoNCj4gDQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAg ICByZXQgPSBkZXZtX3JlcXVlc3RfdGhyZWFkZWRfaXJxKGRldiwgaXJxLA0KPiA+DQo+IHRlZ3Jh X3BjaWVfZXBfaGFyZF9pcnEsDQo+ID4NCj4gdGVncmFfcGNpZV9lcF9pcnFfdGhyZWFkLA0KPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSUUZfU0hB UkVEDQo+IHwgSVJRRl9PTkVTSE9ULA0KPiA+DQo+ICJ0ZWdyYS1wY2llLWVwLWludHIiLCBwY2ll KTsNCj4gPiAgICAgICAgICAgICAgICAgaWYgKHJldCkgew0KPiA+IC0gICAgICAgICAgICAgICAg ICAgICAgIGRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIHJlcXVlc3QNCj4gSVJRICVkOiAlZFxuIiwg cHAtPmlycSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBkZXZfZXJyKGRldiwgIkZhaWxl ZCB0byByZXF1ZXN0DQo+IElSUSAlZDogJWRcbiIsIGlycSwNCj4gPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJldCk7DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgZ290byBm YWlsOw0KPiA+ICAgICAgICAgICAgICAgICB9DQo+ID4gQEAgLTIxODMsMTIgKzIyMjIsMTQgQEAg c3RhdGljIGludCB0ZWdyYV9wY2llX2R3X3N1c3BlbmRfbGF0ZShzdHJ1Y3QNCj4gZGV2aWNlICpk ZXYpDQo+ID4gIHN0YXRpYyBpbnQgdGVncmFfcGNpZV9kd19zdXNwZW5kX25vaXJxKHN0cnVjdCBk ZXZpY2UgKmRldikNCj4gPiAgew0KPiA+ICAgICAgICAgc3RydWN0IHRlZ3JhX3BjaWVfZHcgKnBj aWUgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpw Y2k7DQo+ID4NCj4gPiAgICAgICAgIGlmICghcGNpZS0+bGlua19zdGF0ZSkNCj4gPiAgICAgICAg ICAgICAgICAgcmV0dXJuIDA7DQo+ID4NCj4gPiArICAgICAgIHBjaSA9IHRvX2R3X3BjaWVfZnJv bV9wcCgmcGNpZS0+cHApOw0KPiA+ICAgICAgICAgLyogU2F2ZSBNU0kgaW50ZXJydXB0IHZlY3Rv ciAqLw0KPiA+IC0gICAgICAgcGNpZS0+bXNpX2N0cmxfaW50ID0gZHdfcGNpZV9yZWFkbF9kYmko JnBjaWUtPnBjaSwNCj4gPiArICAgICAgIHBjaWUtPm1zaV9jdHJsX2ludCA9IGR3X3BjaWVfcmVh ZGxfZGJpKHBjaSwNCj4gPg0KPiBQT1JUX0xPR0lDX01TSV9DVFJMX0lOVF8wX0VOKTsNCj4gPiAg ICAgICAgIHRlZ3JhX3BjaWVfZG93bnN0cmVhbV9kZXZfdG9fRDAocGNpZSk7DQo+ID4gICAgICAg ICB0ZWdyYV9wY2llX2R3X3BtZV90dXJub2ZmKHBjaWUpOw0KPiA+IEBAIC0yMjAwLDIzICsyMjQx LDI1IEBAIHN0YXRpYyBpbnQNCj4gdGVncmFfcGNpZV9kd19zdXNwZW5kX25vaXJxKHN0cnVjdCBk ZXZpY2UgKmRldikNCj4gPiAgc3RhdGljIGludCB0ZWdyYV9wY2llX2R3X3Jlc3VtZV9ub2lycShz dHJ1Y3QgZGV2aWNlICpkZXYpDQo+ID4gIHsNCj4gPiAgICAgICAgIHN0cnVjdCB0ZWdyYV9wY2ll X2R3ICpwY2llID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ID4gKyAgICAgICBzdHJ1Y3QgZHdf cGNpZSAqcGNpOw0KPiA+ICAgICAgICAgaW50IHJldDsNCj4gPg0KPiA+ICAgICAgICAgaWYgKCFw Y2llLT5saW5rX3N0YXRlKQ0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gPg0KPiA+ ICsgICAgICAgcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKCZwY2llLT5wcCk7DQo+ID4gICAgICAg ICByZXQgPSB0ZWdyYV9wY2llX2NvbmZpZ19jb250cm9sbGVyKHBjaWUsIHRydWUpOw0KPiA+ICAg ICAgICAgaWYgKHJldCA8IDApDQo+ID4gICAgICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+ID4N Cj4gPiAtICAgICAgIHJldCA9IHRlZ3JhX3BjaWVfZHdfaG9zdF9pbml0KCZwY2llLT5wY2kucHAp Ow0KPiA+ICsgICAgICAgcmV0ID0gdGVncmFfcGNpZV9kd19ob3N0X2luaXQoJnBjaWUtPnBwKTsN Cj4gPiAgICAgICAgIGlmIChyZXQgPCAwKSB7DQo+ID4gICAgICAgICAgICAgICAgIGRldl9lcnIo ZGV2LCAiRmFpbGVkIHRvIGluaXQgaG9zdDogJWRcbiIsIHJldCk7DQo+ID4gICAgICAgICAgICAg ICAgIGdvdG8gZmFpbF9ob3N0X2luaXQ7DQo+ID4gICAgICAgICB9DQo+ID4NCj4gPiAgICAgICAg IC8qIFJlc3RvcmUgTVNJIGludGVycnVwdCB2ZWN0b3IgKi8NCj4gPiAtICAgICAgIGR3X3BjaWVf d3JpdGVsX2RiaSgmcGNpZS0+cGNpLA0KPiBQT1JUX0xPR0lDX01TSV9DVFJMX0lOVF8wX0VOLA0K PiA+ICsgICAgICAgZHdfcGNpZV93cml0ZWxfZGJpKHBjaSwgUE9SVF9MT0dJQ19NU0lfQ1RSTF9J TlRfMF9FTiwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2llLT5tc2lfY3RybF9p bnQpOw0KPiA+DQo+ID4gICAgICAgICByZXR1cm4gMDsNCj4gPiBAQCAtMjI1Niw5ICsyMjk5LDkg QEAgc3RhdGljIHZvaWQgdGVncmFfcGNpZV9kd19zaHV0ZG93bihzdHJ1Y3QNCj4gcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQ0KPiA+ICAgICAgICAgZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKHBjaWUt PmRlYnVnZnMpOw0KPiA+ICAgICAgICAgdGVncmFfcGNpZV9kb3duc3RyZWFtX2Rldl90b19EMChw Y2llKTsNCj4gPg0KPiA+IC0gICAgICAgZGlzYWJsZV9pcnEocGNpZS0+cGNpLnBwLmlycSk7DQo+ ID4gKyAgICAgICBkaXNhYmxlX2lycShwY2llLT5wcC5pcnEpOw0KPiA+ICAgICAgICAgaWYgKElT X0VOQUJMRUQoQ09ORklHX1BDSV9NU0kpKQ0KPiA+IC0gICAgICAgICAgICAgICBkaXNhYmxlX2ly cShwY2llLT5wY2kucHAubXNpX2lycSk7DQo+ID4gKyAgICAgICAgICAgICAgIGRpc2FibGVfaXJx KHBjaWUtPnBwLm1zaV9pcnEpOw0KPiA+DQo+ID4gICAgICAgICB0ZWdyYV9wY2llX2R3X3BtZV90 dXJub2ZmKHBjaWUpOw0KPiA+ICAgICAgICAgdGVncmFfcGNpZV91bmNvbmZpZ19jb250cm9sbGVy KHBjaWUpOw0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ll LXVuaXBoaWVyLWVwLmMNCj4gYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXVuaXBo aWVyLWVwLmMNCj4gPiBpbmRleCAyMWUxODViZjkwZDYuLjdhM2Q2ZTM4NmU2YyAxMDA2NDQNCj4g PiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXVuaXBoaWVyLWVwLmMNCj4g PiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXVuaXBoaWVyLWVwLmMNCj4g PiBAQCAtNTYsNyArNTYsNyBAQA0KPiA+DQo+ID4gIHN0cnVjdCB1bmlwaGllcl9wY2llX2VwX3By aXYgew0KPiA+ICAgICAgICAgdm9pZCBfX2lvbWVtICpiYXNlOw0KPiA+IC0gICAgICAgc3RydWN0 IGR3X3BjaWUgcGNpOw0KPiA+ICsgICAgICAgc3RydWN0IGR3X3BjaWVfZXAgZXA7DQo+ID4gICAg ICAgICBzdHJ1Y3QgY2xrICpjbGssICpjbGtfZ2lvOw0KPiA+ICAgICAgICAgc3RydWN0IHJlc2V0 X2NvbnRyb2wgKnJzdCwgKnJzdF9naW87DQo+ID4gICAgICAgICBzdHJ1Y3QgcGh5ICpwaHk7DQo+ ID4gQEAgLTI3MCw2ICsyNzAsOCBAQCBzdGF0aWMgaW50IHVuaXBoaWVyX3BjaWVfZXBfcHJvYmUo c3RydWN0DQo+IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gPiAgew0KPiA+ICAgICAgICAgc3Ry dWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsNCj4gPiAgICAgICAgIHN0cnVjdCB1bmlwaGll cl9wY2llX2VwX3ByaXYgKnByaXY7DQo+ID4gKyAgICAgICBzdHJ1Y3QgZHdfcGNpZV9lcCAqZXA7 DQo+ID4gKyAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpOw0KPiA+ICAgICAgICAgaW50IHJldDsN Cj4gPg0KPiA+ICAgICAgICAgcHJpdiA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcHJpdiks IEdGUF9LRVJORUwpOw0KPiA+IEBAIC0yODAsOCArMjgyLDEwIEBAIHN0YXRpYyBpbnQgdW5pcGhp ZXJfcGNpZV9lcF9wcm9iZShzdHJ1Y3QNCj4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ICAg ICAgICAgaWYgKFdBUk5fT04oIXByaXYtPmZlYXR1cmVzKSkNCj4gPiAgICAgICAgICAgICAgICAg cmV0dXJuIC1FSU5WQUw7DQo+ID4NCj4gPiAtICAgICAgIHByaXYtPnBjaS5kZXYgPSBkZXY7DQo+ ID4gLSAgICAgICBwcml2LT5wY2kub3BzID0gJmR3X3BjaWVfb3BzOw0KPiA+ICsgICAgICAgZXAg PSAmcHJpdi0+ZXA7DQo+ID4gKyAgICAgICBwY2kgPSAmZXAtPnBjaWU7DQo+ID4gKyAgICAgICBw Y2ktPmRldiA9IGRldjsNCj4gPiArICAgICAgIHBjaS0+b3BzID0gJmR3X3BjaWVfb3BzOw0KPiA+ DQo+ID4gICAgICAgICBwcml2LT5iYXNlID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNl X2J5bmFtZShwZGV2LA0KPiAibGluayIpOw0KPiA+ICAgICAgICAgaWYgKElTX0VSUihwcml2LT5i YXNlKSkNCj4gPiBAQCAtMzE2LDggKzMyMCw4IEBAIHN0YXRpYyBpbnQgdW5pcGhpZXJfcGNpZV9l cF9wcm9iZShzdHJ1Y3QNCj4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ICAgICAgICAgaWYg KHJldCkNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gPg0KPiA+IC0gICAgICAg cHJpdi0+cGNpLmVwLm9wcyA9ICZ1bmlwaGllcl9wY2llX2VwX29wczsNCj4gPiAtICAgICAgIHJl dHVybiBkd19wY2llX2VwX2luaXQoJnByaXYtPnBjaS5lcCk7DQo+ID4gKyAgICAgICBlcC0+b3Bz ID0gJnVuaXBoaWVyX3BjaWVfZXBfb3BzOw0KPiA+ICsgICAgICAgcmV0dXJuIGR3X3BjaWVfZXBf aW5pdChlcCk7DQo+ID4gIH0NCj4gPg0KPiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9lcGNf ZmVhdHVyZXMgdW5pcGhpZXJfcHJvNV9kYXRhID0gew0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXVuaXBoaWVyLmMNCj4gYi9kcml2ZXJzL3BjaS9jb250 cm9sbGVyL2R3Yy9wY2llLXVuaXBoaWVyLmMNCj4gPiBpbmRleCA3ZThiYWQzMjY3NzAuLjI0OTQz MGQ0MTczYSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ll LXVuaXBoaWVyLmMNCj4gPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXVu aXBoaWVyLmMNCj4gPiBAQCAtNjMsNyArNjMsNyBAQA0KPiA+DQo+ID4gIHN0cnVjdCB1bmlwaGll cl9wY2llX3ByaXYgew0KPiA+ICAgICAgICAgdm9pZCBfX2lvbWVtICpiYXNlOw0KPiA+IC0gICAg ICAgc3RydWN0IGR3X3BjaWUgcGNpOw0KPiA+ICsgICAgICAgc3RydWN0IHBjaWVfcG9ydCBwcDsN Cj4gPiAgICAgICAgIHN0cnVjdCBjbGsgKmNsazsNCj4gPiAgICAgICAgIHN0cnVjdCByZXNldF9j b250cm9sICpyc3Q7DQo+ID4gICAgICAgICBzdHJ1Y3QgcGh5ICpwaHk7DQo+ID4gQEAgLTEyMCw2 ICsxMjAsNyBAQCBzdGF0aWMgdm9pZCB1bmlwaGllcl9wY2llX2luaXRfcmMoc3RydWN0DQo+IHVu aXBoaWVyX3BjaWVfcHJpdiAqcHJpdikNCj4gPg0KPiA+ICBzdGF0aWMgaW50IHVuaXBoaWVyX3Bj aWVfd2FpdF9yYyhzdHJ1Y3QgdW5pcGhpZXJfcGNpZV9wcml2ICpwcml2KQ0KPiA+ICB7DQo+ID4g KyAgICAgICBzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKCZwcml2LT5w cCk7DQo+ID4gICAgICAgICB1MzIgc3RhdHVzOw0KPiA+ICAgICAgICAgaW50IHJldDsNCj4gPg0K PiA+IEBAIC0xMjcsNyArMTI4LDcgQEAgc3RhdGljIGludCB1bmlwaGllcl9wY2llX3dhaXRfcmMo c3RydWN0DQo+IHVuaXBoaWVyX3BjaWVfcHJpdiAqcHJpdikNCj4gPiAgICAgICAgIHJldCA9IHJl YWRsX3BvbGxfdGltZW91dChwcml2LT5iYXNlICsgUENMX1BJUEVNT04sIHN0YXR1cywNCj4gPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgJiBQQ0xfUENMS19BTElWRSwN Cj4gMTAwMDAwLCAxMDAwMDAwKTsNCj4gPiAgICAgICAgIGlmIChyZXQpIHsNCj4gPiAtICAgICAg ICAgICAgICAgZGV2X2Vycihwcml2LT5wY2kuZGV2LA0KPiA+ICsgICAgICAgICAgICAgICBkZXZf ZXJyKHBjaS0+ZGV2LA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gaW5p dGlhbGl6ZSBjb250cm9sbGVyIGluIFJDDQo+IG1vZGVcbiIpOw0KPiA+ICAgICAgICAgICAgICAg ICByZXR1cm4gcmV0Ow0KPiA+ICAgICAgICAgfQ0KPiA+IEBAIC0zNjUsMTQgKzM2NiwxOCBAQCBz dGF0aWMgaW50IHVuaXBoaWVyX3BjaWVfcHJvYmUoc3RydWN0DQo+IHBsYXRmb3JtX2RldmljZSAq cGRldikNCj4gPiAgew0KPiA+ICAgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRl djsNCj4gPiAgICAgICAgIHN0cnVjdCB1bmlwaGllcl9wY2llX3ByaXYgKnByaXY7DQo+ID4gKyAg ICAgICBzdHJ1Y3QgcGNpZV9wb3J0ICpwcDsNCj4gPiArICAgICAgIHN0cnVjdCBkd19wY2llICpw Y2k7DQo+ID4gICAgICAgICBpbnQgcmV0Ow0KPiA+DQo+ID4gICAgICAgICBwcml2ID0gZGV2bV9r emFsbG9jKGRldiwgc2l6ZW9mKCpwcml2KSwgR0ZQX0tFUk5FTCk7DQo+ID4gICAgICAgICBpZiAo IXByaXYpDQo+ID4gICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPiA+DQo+ID4gLSAg ICAgICBwcml2LT5wY2kuZGV2ID0gZGV2Ow0KPiA+IC0gICAgICAgcHJpdi0+cGNpLm9wcyA9ICZk d19wY2llX29wczsNCj4gPiArICAgICAgIHBwID0gJnByaXYtPnBwOw0KPiA+ICsgICAgICAgcGNp ID0gJnBwLT5wY2llOw0KPiA+ICsgICAgICAgcGNpLT5kZXYgPSBkZXY7DQo+ID4gKyAgICAgICBw Y2ktPm9wcyA9ICZkd19wY2llX29wczsNCj4gPg0KPiA+ICAgICAgICAgcHJpdi0+YmFzZSA9IGRl dm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZV9ieW5hbWUocGRldiwNCj4gImxpbmsiKTsNCj4g PiAgICAgICAgIGlmIChJU19FUlIocHJpdi0+YmFzZSkpDQo+ID4gQEAgLTM5Niw5ICs0MDEsOSBA QCBzdGF0aWMgaW50IHVuaXBoaWVyX3BjaWVfcHJvYmUoc3RydWN0DQo+IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikNCj4gPiAgICAgICAgIGlmIChyZXQpDQo+ID4gICAgICAgICAgICAgICAgIHJldHVy biByZXQ7DQo+ID4NCj4gPiAtICAgICAgIHByaXYtPnBjaS5wcC5vcHMgPSAmdW5pcGhpZXJfcGNp ZV9ob3N0X29wczsNCj4gPiArICAgICAgIHBwLT5vcHMgPSAmdW5pcGhpZXJfcGNpZV9ob3N0X29w czsNCj4gPg0KPiA+IC0gICAgICAgcmV0dXJuIGR3X3BjaWVfaG9zdF9pbml0KCZwcml2LT5wY2ku cHApOw0KPiA+ICsgICAgICAgcmV0dXJuIGR3X3BjaWVfaG9zdF9pbml0KHBwKTsNCj4gPiAgfQ0K PiA+DQo+ID4gIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHVuaXBoaWVyX3BjaWVf bWF0Y2hbXSA9IHsNCj4gPiAtLQ0KPiA+IDIuMTcuMQ0KPiA+DQo=