From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.2 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_2 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AC1A7C433EF for ; Fri, 10 Sep 2021 10:01:32 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id AE456611C2 for ; Fri, 10 Sep 2021 10:01:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org AE456611C2 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 9B70C83635; Fri, 10 Sep 2021 12:01:29 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="EkElmFJ2"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 3E2A883637; Fri, 10 Sep 2021 12:01:26 +0200 (CEST) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2061a.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1a::61a]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 94D1C83634 for ; Fri, 10 Sep 2021 12:01:19 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=ye.li@nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DoEyizkBgi47sLd5FpX5FUKiUxeVnN+nEoTlaGbiHsxJBg3JC2ayxTi2AHGfDbnkO6zH8hO1/aK5Qr/glDTypidJBjcoDpjah+AtW9dIM7KqUFqJXNdxP8h4sKR1NG6doSzjEE0MDIlR7eFPypgnXtHerZEw1bqNUXEkI8APIKxY5xH/NWPKOV9L201HGb+JfKN99yKPgRjBiHYku/ivSkCVAS9FAJY20pFbk1QmwziwvHNEazOyFsAFdygGEEPOBsOTbnqvyp43vKqzcAYjU3fIFAlYh09glLr/O3So9FBfZk1+tiWudf77QlrIfnLx4wrbsFTapLkPfuHW98M3EQ== 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; bh=xGREOfDDD05eMAgUdzRDhXllUaJ9B39rtMPmI3ibcZM=; b=cnHmJWSeGnyKFn7VtO6dIQ7k7XbUKgWNTFS6tDch/81uEHKFYZdrlJYHewaPS1yLlltn7N4ufMT5+lw5rVADrGWUAH4eP7ISJxu8XWgE8UrARviX9AnGnA1BZpHgkAVaqxcMoSe69X3epGKfOeT2eG9Uzg8+63GiZuDvQXfr4VN4e6ugU5zAUzUKVoLAmZckIYd31wTdTDqfkS2pE+OSTRzndsasqEKB4kosBPdp2M4XnDd3VAw5sP1w9VwUkuj2VKFPbDePdaLvTzudoFUEnerh46c24B2ViotQvF2Gb0NDPRNYke5mg8Wo/PpjKmOHw+22n/HKR9vAQq+f3RzEZQ== 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=xGREOfDDD05eMAgUdzRDhXllUaJ9B39rtMPmI3ibcZM=; b=EkElmFJ2x2sNfUWe26RIt9gyYPwAvi3SQx18qEFb3pvo0/Ge84BXF8yCYqzPkou8p0tYaGbBrMBOusnHgM6DqaK3gQWVQYnhleiPZNfk7uFvl4POFRh9cl+F4DXhkySspSXwyRtFWblDaYB5ZhxdxCVzclUjY2DTQcdPD/OF3WA= Received: from VI1PR04MB7069.eurprd04.prod.outlook.com (2603:10a6:800:127::19) by VI1PR04MB7053.eurprd04.prod.outlook.com (2603:10a6:800:12f::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4500.17; Fri, 10 Sep 2021 10:01:18 +0000 Received: from VI1PR04MB7069.eurprd04.prod.outlook.com ([fe80::4c5c:821b:b2a3:ceec]) by VI1PR04MB7069.eurprd04.prod.outlook.com ([fe80::4c5c:821b:b2a3:ceec%5]) with mapi id 15.20.4500.017; Fri, 10 Sep 2021 10:01:18 +0000 From: Ye Li To: Gaurav Jain , "u-boot@lists.denx.de" CC: "olteanv@gmail.com" , Priyanka Jain , Pankaj Gupta , Mingkai Hu , Meenakshi Aggarwal , Silvano Di Ninno , "sjg@chromium.org" , Ji Luo , "festevam@gmail.com" , dl-uboot-imx , Shengzhou Liu , Rajesh Bhagat , Franck Lenormand , Varun Sethi , Alison Wang , Peng Fan , Wasim Khan , Pramod Kumar , "sbabic@denx.de" , Horia Geanta , Andy Tang , Sahil Malhotra , Adrian Alonso Subject: Re: [PATCH v2 01/15] crypto/fsl: Add support for CAAM Job ring driver model Thread-Topic: [PATCH v2 01/15] crypto/fsl: Add support for CAAM Job ring driver model Thread-Index: AQHXoJHognluidBGTEOFKQRmNjbpBqudFHOA Date: Fri, 10 Sep 2021 10:01:17 +0000 Message-ID: <1631268077.43076.60.camel@nxp.com> References: <20210903070319.13484-1-gaurav.jain@nxp.com> <20210903070319.13484-2-gaurav.jain@nxp.com> In-Reply-To: <20210903070319.13484-2-gaurav.jain@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Evolution 3.18.5.2-0ubuntu3.2 authentication-results: nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=none action=none header.from=nxp.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6000535c-bcb9-4230-1b98-08d97441ef02 x-ms-traffictypediagnostic: VI1PR04MB7053: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:179; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: vdp4oMjSTl3LfjKBnwJlbgGBnBerygp29viYAAXuMnCQhoQCaeSkoj5PNZF//U4BSh6z/zWx9Vwa07moNB+ArGR6r1Wbw9HawuAJRbqOpCxcElP9mVCm4SXRQf3pCzKnVYR4l1O4vYlT1eEZHLOkDOVGml1lTYTXxfrvrA9u81HR7ppWFAQMY+SNSPrWactWY7WCbDuy84XRX23OcQQqV3Jo4mZQkNThgIJ6ZZGk++tKbBOanBpbpxONOJuY8+SbzvPWxFh44PkuC5xApHhrSX8+ZVGLMfk+5m/oAo3YO79jFoIjhqe4BAd10pq4058ZiYhXo9lOS8BZsWPW9aXWQ/tKGIihTpNZ+Y8ANr0YhddhMkaKw/7KT3mqMMbVomm5fkNZd5YqnYbuE9krJ0TiLuUh8Uk2yb1Q3vUz0wz/j6cyhjAkUpMZwdutgAYVRM39O+pqSzY//4VsPlAYSH5t3FX4ycqk3g0mW6lXIr9vPhT1qQEvHK31U1GQ/gqvNI4gI1GShR0mnHerqmDf9VU7b5Wfky4KC6+TuCDpcFKLemf4sVJrRbA8lpRXkrwLeqIbZw3REQkBFOIeiDZeR3Ih2ODBb2BEzqrmlvMHlCNTee/N+Ta0JlBk7x3R9coakjrppG7p9fwNTl1AayL9tJ/kzfm+efSlSLrZ3M+/v8AO3kt1VUp2iSJUupdNeF7Zu/gjUF5KBTUzWqY+F1FobV6NB2x24YsAvkWE100gzOESoO4= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR04MB7069.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(346002)(136003)(366004)(39860400002)(396003)(38070700005)(316002)(5660300002)(6506007)(86362001)(71200400001)(36756003)(54906003)(478600001)(110136005)(66946007)(103116003)(4326008)(186003)(26005)(30864003)(66556008)(66476007)(122000001)(38100700002)(6486002)(83380400001)(8676002)(6512007)(2906002)(2616005)(66446008)(64756008)(8936002)(91956017)(44832011)(76116006)(99106002)(579004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?elFZUzViOG1pVXZMdXdLdDBUT0tUK1BsWFBFK3I5WncvaW1jZTR1dEhCR3Y4?= =?utf-8?B?anBnc0paSy9Cc1Q2TWtrakM1dnREd1pqWkplYVBjMmlHTHZINmdIRm94Q2c3?= =?utf-8?B?UnUydGxubDJzSXlVcGlVbGRTWC9tZE1pUHc2T2picC9jaTNxeTNMTVJqWTJ0?= =?utf-8?B?S0lORk1QODJ0dUhJT014VDRmWE5iSUVhL3AxbDVoUUt4cFNobDFYOFFXUWY0?= =?utf-8?B?MWVLeEVEZ1NyMFhmTzAvZlZndEJsQ3N3eFQ2cnZVWGlQcWZtVUszblE0MHVF?= =?utf-8?B?RUlXcmF5OFpFMnAvMXBJYXNkVTRCZ2J2QVQraEtYTlJkdTJQd2ZFQnBVUFcx?= =?utf-8?B?aDhqN1BDSUttV1JGNU9xOEIwNThucS8vNmlwaE9wazUwTWRRaHRzQVF5azg0?= =?utf-8?B?VlZDbTVYSjVIQzJVd2lKUmhDQ3VqazBHMnBIbEZGZWlSSmtSVUoxUGc4by9k?= =?utf-8?B?cWRObTdSTlhOUWRBRm9XV2p6NHYrSUhXb3FJVy91a2NHOUdXenNNVk94VHd3?= =?utf-8?B?VmUwWWt2Sm01cUsxZmxXZlFQMkp6NXhNUEhJa3dHbHlZNjRxTVVQTWgwQi9S?= =?utf-8?B?N24rdWFCaEY2bWVZeXM2M1pNZldWMms5cDBxRWVGNlMxVnJGcEFoRDU2UDJh?= =?utf-8?B?ZjI4Z0JYRFpQb2tMT21qbFRBQXRoTGtaMUNFVnhKOUsvbDRSTzhOVmhMcm0w?= =?utf-8?B?blA4dHh5SExOQ1pqS2RyRlk1ajdvSk4wekg4ZmU3aTR6MjhRRWhhd1dxKy9W?= =?utf-8?B?Rk1nSGE4aXpWYXY3NHJQaVhqZXUrZFpQNEtrL21FWW5aQllDUzZBMWY2SVB1?= =?utf-8?B?VjcyNGZ1bWt0VE1JODFUTElNelVLZTJpQm4vY0N1T0tLYlVuT1Njc1dwQm1w?= =?utf-8?B?d0x1bXdKaldZeHJQU3d4M0QwbUlsNGdxTzNQMGlyQjhaSjVObFdJUHRZR0tl?= =?utf-8?B?NDRtMnVGVlBRUkFCalZPZHBwV2lZUkg4S0JlUzFQL29OVW4vdWlWcG9OMEU5?= =?utf-8?B?anJNMUN1SG8xNjhKUUUvRHNhN09ZR09OaUtFd0srcjdEcUhPQkRkNFhRbUpP?= =?utf-8?B?UWNTTEZZWmpHaTFhb3d4UHNRMWxVRUw5TUR5bWVtTE9EOGJRTFl5YU5UTmJ3?= =?utf-8?B?VHdjMHYySmdKbGhKY1BKTGE3aTVJYi9NQ3l3UjgxdzFsUG8wcVBXMmFvSGJi?= =?utf-8?B?a1JaT0srZ3dwNjdaTFdWc1hWN1NhcHZ4YlcrMHR4SE9SZCtPajlsc25GeGJE?= =?utf-8?B?TlE0WUJYKzBVTmE5bHhYdHNTcmJzSHR2bCtUNWJ2aDFMbmcwaTdkNHhMblhq?= =?utf-8?B?T0dmK01xdTFGQ0Rla3ZwbFU1MHdaS01oT3RQMnoxOU05UGVZZUd2SitsWDlM?= =?utf-8?B?Um5uZ1ZnNFlCQnU3SXVkbnZQMVhVY3Rtd0tVblhrRnlwT2wvUjN6SWI0Qkxu?= =?utf-8?B?S3RSQ0RVd0JYa1NUTmc4ajJDVTB6b2tGNUdvREFsMjF5cnVMMEFrbTkrcHZz?= =?utf-8?B?Ym9ZaUlTUXhYUTJ2cGNPc1J0emFzSXJ4eWJ2ZmphRHY2YkUrOXgwVnpoVEVN?= =?utf-8?B?YUY2bE5OSTlJWVcrL09DY2YvdTc3L0x6WklCRU9PZGV6K1NoblhyR3QwQVpi?= =?utf-8?B?L2RhVkRuUFlRUWF5Tkl2K0xTWEtFOHpnN096SHh4Wloza0FSOERNRW95aEZB?= =?utf-8?B?Ky80YXMxcWdPY1p0K0xETHprdzZ3NWIrKzNkZjlTS1NOdUxENk1UTit3RkpM?= =?utf-8?Q?IUS3WG7xC56/RBPbpeJVy6EXZg2KEp2c3ffmtpC?= Content-Type: text/plain; charset="utf-8" Content-ID: <7498FE0400390C46A0CAB8F5AF98D338@eurprd04.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB7069.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6000535c-bcb9-4230-1b98-08d97441ef02 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Sep 2021 10:01:17.9537 (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: BIZNdq3uY3RSm727g4Mimkic+r6Zci+fMdeFdCDI4gUhu47mD1Z1C+E+l3z+55Vt X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7053 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean T24gRnJpLCAyMDIxLTA5LTAzIGF0IDEyOjMzICswNTMwLCBHYXVyYXYgSmFpbiB3cm90ZToNCj4g YWRkZWQgZGV2aWNlIHRyZWUgc3VwcG9ydCBmb3Igam9iIHJpbmcgZHJpdmVyLg0KPiBzZWMgaXMg aW5pdGlhbGl6ZWQgYmFzZWQgb24gam9iIHJpbmcgaW5mb3JtYXRpb24gcHJvY2Vzc2VkDQo+IGZy b20gZGV2aWNlIHRyZWUuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBHYXVyYXYgSmFpbiA8Z2F1cmF2 LmphaW5AbnhwLmNvbT4NCj4gLS0tDQo+IMKgY21kL0tjb25maWfCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgfMKgwqDCoDEgKw0KPiDCoGRyaXZlcnMvY3J5cHRvL2ZzbC9LY29uZmln wqDCoHzCoMKgwqA3ICsNCj4gwqBkcml2ZXJzL2NyeXB0by9mc2wvTWFrZWZpbGUgfMKgwqDCoDIg Kw0KPiDCoGRyaXZlcnMvY3J5cHRvL2ZzbC9qci5jwqDCoMKgwqDCoHwgMzE0ICsrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0NCj4gLS0NCj4gwqBkcml2ZXJzL2NyeXB0by9mc2wvanIu aMKgwqDCoMKgwqB8wqDCoDE0ICsrDQo+IMKgNSBmaWxlcyBjaGFuZ2VkLCAyMjkgaW5zZXJ0aW9u cygrKSwgMTA5IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2NtZC9LY29uZmlnIGIv Y21kL0tjb25maWcNCj4gaW5kZXggZmZlZjNjYzc2Yy4uN2U5MmU5ZGY3ZCAxMDA2NDQNCj4gLS0t IGEvY21kL0tjb25maWcNCj4gKysrIGIvY21kL0tjb25maWcNCj4gQEAgLTE5ODUsNiArMTk4NSw3 IEBAIGNvbmZpZyBDTURfQUVTDQo+IMKgDQo+IMKgY29uZmlnIENNRF9CTE9CDQo+IMKgCWJvb2wg IkVuYWJsZSB0aGUgJ2Jsb2InIGNvbW1hbmQiDQo+ICsJc2VsZWN0IEZTTF9CTE9CDQo+IMKgCWRl cGVuZHMgb24gIU1YNlVMTCAmJiAhTVg2U0xMICYmICFNWDZTTA0KPiDCoAlzZWxlY3QgSU1YX0hB QiBpZiBBUkNIX01YNiB8fCBBUkNIX01YNyB8fCBBUkNIX01YN1VMUCB8fA0KPiBBUkNIX0lNWDhN DQo+IMKgCWhlbHANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL2ZzbC9LY29uZmlnIGIv ZHJpdmVycy9jcnlwdG8vZnNsL0tjb25maWcNCj4gaW5kZXggMWY1ZGZiOTRiYi4uNmQ2YzNmOGQz OSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9jcnlwdG8vZnNsL0tjb25maWcNCj4gKysrIGIvZHJp dmVycy9jcnlwdG8vZnNsL0tjb25maWcNCj4gQEAgLTY0LDQgKzY0LDExIEBAIGNvbmZpZyBGU0xf Q0FBTV9STkcNCj4gwqAJwqDCoHVzaW5nIHRoZSBwcmVkaWN0aW9uIHJlc2lzdGFuY2UgZmxhZyB3 aGljaCBtZWFucyB0aGUgRFJHQg0KPiBpcw0KPiDCoAnCoMKgcmVzZWVkZWQgZnJvbSB0aGUgVFJO RyBldmVyeSB0aW1lIHJhbmRvbSBkYXRhIGlzDQo+IGdlbmVyYXRlZC4NCj4gwqANCj4gK2NvbmZp ZyBGU0xfQkxPQg0KPiArwqDCoMKgwqDCoMKgwqDCoGJvb2wgIkVuYWJsZSBCbG9iIEVuY2FwL0Rl Y2FwLCBCbG9iIEtFSyBzdXBwb3J0Ig0KPiArCWhlbHANCj4gKwnCoMKgRW5hYmxlIHN1cHBvcnQg Zm9yIHRoZSBoYXJkd2FyZSBiYXNlZCBjcnl0b2dyYXBoaWMgYmxvYg0KPiBlbmNhcC9kZWNhcA0K PiArCcKgwqBtb2R1bGUgb2YgdGhlIENBQU0uIGJsb2JzIGNhbiBiZSBzYWZlbHkgcGxhY2VkIGlu dG8gbm9uLQ0KPiB2b2xhdGlsZQ0KPiArCcKgwqBzdG9yYWdlLiBibG9icyBjYW4gb25seSBiZSBk ZWNhcHN1bGF0ZWQgYnkgdGhlIFNvQyB0aGF0DQo+IGNyZWF0ZWQgaXQuDQo+ICsJwqDCoEVuYWJs ZSBzdXBwb3J0IGZvciBibG9iIGtleSBlbmNyeXB0aW9uIGtleSBnZW5lcmF0aW9uLg0KPiDCoGVu ZGlmDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9mc2wvTWFrZWZpbGUNCj4gYi9kcml2 ZXJzL2NyeXB0by9mc2wvTWFrZWZpbGUNCj4gaW5kZXggZjljM2NjZWNmYy4uNTY3YWI2YTgyMSAx MDA2NDQNCj4gLS0tIGEvZHJpdmVycy9jcnlwdG8vZnNsL01ha2VmaWxlDQo+ICsrKyBiL2RyaXZl cnMvY3J5cHRvL2ZzbC9NYWtlZmlsZQ0KPiBAQCAtMSwxMCArMSwxMiBAQA0KPiDCoCMgU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArDQo+IMKgIw0KPiDCoCMgQ29weXJpZ2h0IDIwMTQg RnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4NCj4gKyMgQ29weXJpZ2h0IDIwMjEgTlhQDQo+ IMKgDQo+IMKgb2JqLXkgKz0gc2VjLm8NCj4gwqBvYmotJChDT05GSUdfRlNMX0NBQU0pICs9IGpy Lm8gZnNsX2hhc2gubyBqb2JkZXNjLm8gZXJyb3Iubw0KPiDCoG9iai0kKENPTkZJR19DTURfQkxP QikkKENPTkZJR19JTVhfQ0FBTV9ERUtfRU5DQVApICs9IGZzbF9ibG9iLm8NCj4gK29iai0kKENP TkZJR19GU0xfQkxPQikgKz0gZnNsX2Jsb2Iubw0KDQpTaW5jZSBDTURfQkxPQiB3aWxsIHNlbGVj dCBGU0xfQkxPQiwgc28ganVzdCByZXBsYWNlIENNRF9CTE9CIHdpdGgNCkZTTF9CTE9CDQoNCj4g wqBvYmotJChDT05GSUdfUlNBX0ZSRUVTQ0FMRV9FWFApICs9IGZzbF9yc2Eubw0KPiDCoG9iai0k KENPTkZJR19GU0xfQ0FBTV9STkcpICs9IHJuZy5vDQo+IMKgb2JqLSQoQ09ORklHX0ZTTF9NRkdQ Uk9UKSArPSBmc2xfbWZncHJvdC5vDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9mc2wv anIuYyBiL2RyaXZlcnMvY3J5cHRvL2ZzbC9qci5jDQo+IGluZGV4IDIyYjY0OTIxOWUuLmM1YThi MDQ1OWUgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvY3J5cHRvL2ZzbC9qci5jDQo+ICsrKyBiL2Ry aXZlcnMvY3J5cHRvL2ZzbC9qci5jDQo+IEBAIC0xLDcgKzEsNyBAQA0KPiDCoC8vIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKw0KPiDCoC8qDQo+IMKgICogQ29weXJpZ2h0IDIwMDgt MjAxNCBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLg0KPiAtICogQ29weXJpZ2h0IDIwMTgg TlhQDQo+ICsgKiBDb3B5cmlnaHQgMjAxOCwgMjAyMSBOWFANCj4gwqAgKg0KPiDCoCAqIEJhc2Vk IG9uIENBQU0gZHJpdmVyIGluIGRyaXZlcnMvY3J5cHRvL2NhYW0gaW4gTGludXgNCj4gwqAgKi8N Cj4gQEAgLTExLDcgKzExLDYgQEANCj4gwqAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+DQo+IMKg I2luY2x1ZGUgPGxvZy5oPg0KPiDCoCNpbmNsdWRlIDxtYWxsb2MuaD4NCj4gLSNpbmNsdWRlICJm c2xfc2VjLmgiDQo+IMKgI2luY2x1ZGUgImpyLmgiDQo+IMKgI2luY2x1ZGUgImpvYmRlc2MuaCIN Cj4gwqAjaW5jbHVkZSAiZGVzY19jb25zdHIuaCINCj4gQEAgLTIxLDggKzIwLDExIEBADQo+IMKg I2luY2x1ZGUgPGFzbS9jYWNoZS5oPg0KPiDCoCNpbmNsdWRlIDxhc20vZnNsX3BhbXUuaD4NCj4g wqAjZW5kaWYNCj4gKyNpbmNsdWRlIDxkbS5oPg0KPiDCoCNpbmNsdWRlIDxkbS9saXN0cy5oPg0K PiDCoCNpbmNsdWRlIDxsaW51eC9kZWxheS5oPg0KPiArI2luY2x1ZGUgPGRtL3Jvb3QuaD4NCj4g KyNpbmNsdWRlIDxkbS9kZXZpY2UtaW50ZXJuYWwuaD4NCj4gwqANCj4gwqAjZGVmaW5lIENJUkNf Q05UKGhlYWQsIHRhaWwsIHNpemUpCSgoKGhlYWQpIC0gKHRhaWwpKSAmIChzaXplDQo+IC0gMSkp DQo+IMKgI2RlZmluZSBDSVJDX1NQQUNFKGhlYWQsIHRhaWwsIHNpemUpCUNJUkNfQ05UKCh0YWls KSwgKGhlYWQpDQo+ICsgMSwgKHNpemUpKQ0KPiBAQCAtMzUsMjAgKzM3LDMwIEBAIHVpbnQzMl90 DQo+IHNlY19vZmZzZXRbQ09ORklHX1NZU19GU0xfTUFYX05VTV9PRl9TRUNdID0gew0KPiDCoCNl bmRpZg0KPiDCoH07DQo+IMKgDQo+ICsjaWYgQ09ORklHX0lTX0VOQUJMRUQoRE0pDQo+ICtzdHJ1 Y3QgdWRldmljZSAqY2FhbV9kZXY7DQo+ICsjZWxzZQ0KPiDCoCNkZWZpbmUgU0VDX0FERFIoaWR4 KQlcDQo+IMKgCSh1bG9uZykoKENPTkZJR19TWVNfRlNMX1NFQ19BRERSICsgc2VjX29mZnNldFtp ZHhdKSkNCj4gwqANCj4gwqAjZGVmaW5lIFNFQ19KUjBfQUREUihpZHgpCVwNCj4gwqAJKHVsb25n KShTRUNfQUREUihpZHgpICsJXA0KPiDCoAnCoChDT05GSUdfU1lTX0ZTTF9KUjBfT0ZGU0VUIC0g Q09ORklHX1NZU19GU0xfU0VDX09GRlNFVCkpDQo+ICtzdHJ1Y3QgY2FhbV9yZWdzIGNhYW1fc3Q7 DQo+ICsjZW5kaWYNCj4gwqANCj4gLXN0cnVjdCBqb2JyaW5nIGpyMFtDT05GSUdfU1lTX0ZTTF9N QVhfTlVNX09GX1NFQ107DQo+ICtzdGF0aWMgaW5saW5lIHUzMiBqcl9zdGFydF9yZWcodTgganJp ZCkNCj4gK3sNCj4gKwlyZXR1cm4gKDEgPDwganJpZCk7DQo+ICt9DQo+IMKgDQo+IC1zdGF0aWMg aW5saW5lIHZvaWQgc3RhcnRfanIwKHVpbnQ4X3Qgc2VjX2lkeCkNCj4gKyNpZm5kZWYgQ09ORklH X0FSQ0hfSU1YOA0KPiArc3RhdGljIGlubGluZSB2b2lkIHN0YXJ0X2pyKHN0cnVjdCBjYWFtX3Jl Z3MgKmNhYW0pDQo+IMKgew0KPiAtCWNjc3Jfc2VjX3QgKnNlYyA9ICh2b2lkICopU0VDX0FERFIo c2VjX2lkeCk7DQo+ICsJY2Nzcl9zZWNfdCAqc2VjID0gY2FhbS0+c2VjOw0KPiDCoAl1MzIgY3Rw cl9tcyA9IHNlY19pbjMyKCZzZWMtPmN0cHJfbXMpOw0KPiDCoAl1MzIgc2NmZ3IgPSBzZWNfaW4z Migmc2VjLT5zY2Zncik7DQo+ICsJdTMyIGpyc3RhcnQgPSBqcl9zdGFydF9yZWcoY2FhbS0+anJp ZCk7DQo+IMKgDQo+IMKgCWlmIChjdHByX21zICYgU0VDX0NUUFJfTVNfVklSVF9FTl9JTkNMKSB7 DQo+IMKgCQkvKiBWSVJUX0VOX0lOQ0wgPSAxICYgVklSVF9FTl9QT1IgPSAxIG9yDQo+IEBAIC01 NiwyMyArNjgsMTcgQEAgc3RhdGljIGlubGluZSB2b2lkIHN0YXJ0X2pyMCh1aW50OF90IHNlY19p ZHgpDQo+IMKgCQnCoCovDQo+IMKgCQlpZiAoKGN0cHJfbXMgJiBTRUNfQ1RQUl9NU19WSVJUX0VO X1BPUikgfHwNCj4gwqAJCcKgwqDCoMKgKHNjZmdyICYgU0VDX1NDRkdSX1ZJUlRfRU4pKQ0KPiAt CQkJc2VjX291dDMyKCZzZWMtPmpyc3RhcnRyLA0KPiBDT05GSUdfSlJTVEFSVFJfSlIwKTsNCj4g KwkJCXNlY19vdXQzMigmc2VjLT5qcnN0YXJ0ciwganJzdGFydCk7DQo+IMKgCX0gZWxzZSB7DQo+ IMKgCQkvKiBWSVJUX0VOX0lOQ0wgPSAwICYmIFZJUlRfRU5fUE9SX1ZBTFVFID0gMSAqLw0KPiDC oAkJaWYgKGN0cHJfbXMgJiBTRUNfQ1RQUl9NU19WSVJUX0VOX1BPUikNCj4gLQkJCXNlY19vdXQz Migmc2VjLT5qcnN0YXJ0ciwNCj4gQ09ORklHX0pSU1RBUlRSX0pSMCk7DQo+ICsJCQlzZWNfb3V0 MzIoJnNlYy0+anJzdGFydHIsIGpyc3RhcnQpOw0KPiDCoAl9DQo+IMKgfQ0KPiArI2VuZGlmDQo+ IMKgDQo+IC1zdGF0aWMgaW5saW5lIHZvaWQganJfcmVzZXRfbGlvZG4odWludDhfdCBzZWNfaWR4 KQ0KPiAtew0KPiAtCWNjc3Jfc2VjX3QgKnNlYyA9ICh2b2lkICopU0VDX0FERFIoc2VjX2lkeCk7 DQo+IC0Jc2VjX291dDMyKCZzZWMtPmpybGlvZG5yWzBdLmxzLCAwKTsNCj4gLX0NCj4gLQ0KPiAt c3RhdGljIGlubGluZSB2b2lkIGpyX2Rpc2FibGVfaXJxKHVpbnQ4X3Qgc2VjX2lkeCkNCj4gK3N0 YXRpYyBpbmxpbmUgdm9pZCBqcl9kaXNhYmxlX2lycShzdHJ1Y3QganJfcmVncyAqcmVncykNCj4g wqB7DQo+IC0Jc3RydWN0IGpyX3JlZ3MgKnJlZ3MgPSAoc3RydWN0IGpyX3JlZ3MNCj4gKilTRUNf SlIwX0FERFIoc2VjX2lkeCk7DQo+IMKgCXVpbnQzMl90IGpyY2ZnID0gc2VjX2luMzIoJnJlZ3Mt PmpyY2ZnMSk7DQo+IMKgDQo+IMKgCWpyY2ZnID0ganJjZmcgfCBKUl9JTlRNQVNLOw0KPiBAQCAt ODAsMTAgKzg2LDEwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBqcl9kaXNhYmxlX2lycSh1aW50OF90 DQo+IHNlY19pZHgpDQo+IMKgCXNlY19vdXQzMigmcmVncy0+anJjZmcxLCBqcmNmZyk7DQo+IMKg fQ0KPiDCoA0KPiAtc3RhdGljIHZvaWQganJfaW5pdHJlZ3ModWludDhfdCBzZWNfaWR4KQ0KPiAr c3RhdGljIHZvaWQganJfaW5pdHJlZ3ModWludDhfdCBzZWNfaWR4LCBzdHJ1Y3QgY2FhbV9yZWdz ICpjYWFtKQ0KPiDCoHsNCj4gLQlzdHJ1Y3QganJfcmVncyAqcmVncyA9IChzdHJ1Y3QganJfcmVn cw0KPiAqKVNFQ19KUjBfQUREUihzZWNfaWR4KTsNCj4gLQlzdHJ1Y3Qgam9icmluZyAqanIgPSAm anIwW3NlY19pZHhdOw0KPiArCXN0cnVjdCBqcl9yZWdzICpyZWdzID0gY2FhbS0+cmVnczsNCj4g KwlzdHJ1Y3Qgam9icmluZyAqanIgPSAmY2FhbS0+anJbc2VjX2lkeF07DQo+IMKgCWNhYW1fZG1h X2FkZHJfdCBpcF9iYXNlID0gdmlydF90b19waHlzKCh2b2lkICopanItDQo+ID5pbnB1dF9yaW5n KTsNCj4gwqAJY2FhbV9kbWFfYWRkcl90IG9wX2Jhc2UgPSB2aXJ0X3RvX3BoeXMoKHZvaWQgKilq ci0NCj4gPm91dHB1dF9yaW5nKTsNCj4gwqANCj4gQEAgLTEwMywxNiArMTA5LDE2IEBAIHN0YXRp YyB2b2lkIGpyX2luaXRyZWdzKHVpbnQ4X3Qgc2VjX2lkeCkNCj4gwqAJc2VjX291dDMyKCZyZWdz LT5pcnMsIEpSX1NJWkUpOw0KPiDCoA0KPiDCoAlpZiAoIWpyLT5pcnEpDQo+IC0JCWpyX2Rpc2Fi bGVfaXJxKHNlY19pZHgpOw0KPiArCQlqcl9kaXNhYmxlX2lycShyZWdzKTsNCj4gwqB9DQo+IMKg DQo+IC1zdGF0aWMgaW50IGpyX2luaXQodWludDhfdCBzZWNfaWR4KQ0KPiArc3RhdGljIGludCBq cl9pbml0KHVpbnQ4X3Qgc2VjX2lkeCwgc3RydWN0IGNhYW1fcmVncyAqY2FhbSkNCj4gwqB7DQo+ IC0Jc3RydWN0IGpvYnJpbmcgKmpyID0gJmpyMFtzZWNfaWR4XTsNCj4gKwlzdHJ1Y3Qgam9icmlu ZyAqanIgPSAmY2FhbS0+anJbc2VjX2lkeF07DQo+IMKgDQo+IMKgCW1lbXNldChqciwgMCwgc2l6 ZW9mKHN0cnVjdCBqb2JyaW5nKSk7DQo+IMKgDQo+IC0JanItPmpxX2lkID0gREVGQVVMVF9KUl9J RDsNCj4gKwlqci0+anFfaWQgPSBjYWFtLT5qcmlkOw0KPiDCoAlqci0+aXJxID0gREVGQVVMVF9J UlE7DQo+IMKgDQo+IMKgI2lmZGVmIENPTkZJR19GU0xfQ09SRU5FVA0KPiBAQCAtMTM0LDUzICsx NDAsMTAgQEAgc3RhdGljIGludCBqcl9pbml0KHVpbnQ4X3Qgc2VjX2lkeCkNCj4gwqAJbWVtc2V0 KGpyLT5pbnB1dF9yaW5nLCAwLCBKUl9TSVpFICoNCj4gc2l6ZW9mKGNhYW1fZG1hX2FkZHJfdCkp Ow0KPiDCoAltZW1zZXQoanItPm91dHB1dF9yaW5nLCAwLCBqci0+b3Bfc2l6ZSk7DQo+IMKgDQo+ IC0Jc3RhcnRfanIwKHNlY19pZHgpOw0KPiAtDQo+IC0JanJfaW5pdHJlZ3Moc2VjX2lkeCk7DQo+ IC0NCj4gLQlyZXR1cm4gMDsNCj4gLX0NCj4gLQ0KPiAtc3RhdGljIGludCBqcl9zd19jbGVhbnVw KHVpbnQ4X3Qgc2VjX2lkeCkNCj4gLXsNCj4gLQlzdHJ1Y3Qgam9icmluZyAqanIgPSAmanIwW3Nl Y19pZHhdOw0KPiAtDQo+IC0JanItPmhlYWQgPSAwOw0KPiAtCWpyLT50YWlsID0gMDsNCj4gLQlq ci0+cmVhZF9pZHggPSAwOw0KPiAtCWpyLT53cml0ZV9pZHggPSAwOw0KPiAtCW1lbXNldChqci0+ aW5mbywgMCwgc2l6ZW9mKGpyLT5pbmZvKSk7DQo+IC0JbWVtc2V0KGpyLT5pbnB1dF9yaW5nLCAw LCBqci0+c2l6ZSAqDQo+IHNpemVvZihjYWFtX2RtYV9hZGRyX3QpKTsNCj4gLQltZW1zZXQoanIt Pm91dHB1dF9yaW5nLCAwLCBqci0+c2l6ZSAqIHNpemVvZihzdHJ1Y3QNCj4gb3BfcmluZykpOw0K PiAtDQo+IC0JcmV0dXJuIDA7DQo+IC19DQo+IC0NCj4gLXN0YXRpYyBpbnQganJfaHdfcmVzZXQo dWludDhfdCBzZWNfaWR4KQ0KPiAtew0KPiAtCXN0cnVjdCBqcl9yZWdzICpyZWdzID0gKHN0cnVj dCBqcl9yZWdzDQo+ICopU0VDX0pSMF9BRERSKHNlY19pZHgpOw0KPiAtCXVpbnQzMl90IHRpbWVv dXQgPSAxMDAwMDA7DQo+IC0JdWludDMyX3QganJpbnQsIGpyY3I7DQo+IC0NCj4gLQlzZWNfb3V0 MzIoJnJlZ3MtPmpyY3IsIEpSQ1JfUkVTRVQpOw0KPiAtCWRvIHsNCj4gLQkJanJpbnQgPSBzZWNf aW4zMigmcmVncy0+anJpbnQpOw0KPiAtCX0gd2hpbGUgKCgoanJpbnQgJiBKUklOVF9FUlJfSEFM VF9NQVNLKSA9PQ0KPiAtCQnCoMKgSlJJTlRfRVJSX0hBTFRfSU5QUk9HUkVTUykgJiYgLS10aW1l b3V0KTsNCj4gLQ0KPiAtCWpyaW50ID0gc2VjX2luMzIoJnJlZ3MtPmpyaW50KTsNCj4gLQlpZiAo KChqcmludCAmIEpSSU5UX0VSUl9IQUxUX01BU0spICE9DQo+IC0JwqDCoMKgwqDCoEpSSU5UX0VS Ul9IQUxUX0lOUFJPR1JFU1MpICYmIHRpbWVvdXQgPT0gMCkNCj4gLQkJcmV0dXJuIC0xOw0KPiAt DQo+IC0JdGltZW91dCA9IDEwMDAwMDsNCj4gLQlzZWNfb3V0MzIoJnJlZ3MtPmpyY3IsIEpSQ1Jf UkVTRVQpOw0KPiAtCWRvIHsNCj4gLQkJanJjciA9IHNlY19pbjMyKCZyZWdzLT5qcmNyKTsNCj4g LQl9IHdoaWxlICgoanJjciAmIEpSQ1JfUkVTRVQpICYmIC0tdGltZW91dCk7DQo+IC0NCj4gLQlp ZiAodGltZW91dCA9PSAwKQ0KPiAtCQlyZXR1cm4gLTE7DQo+ICsjaWZuZGVmIENPTkZJR19BUkNI X0lNWDgNCj4gKwlzdGFydF9qcihjYWFtKTsNCj4gKyNlbmRpZg0KPiArCWpyX2luaXRyZWdzKHNl Y19pZHgsIGNhYW0pOw0KPiDCoA0KPiDCoAlyZXR1cm4gMDsNCj4gwqB9DQo+IEBAIC0xODgsMTAg KzE1MSwxMCBAQCBzdGF0aWMgaW50IGpyX2h3X3Jlc2V0KHVpbnQ4X3Qgc2VjX2lkeCkNCj4gwqAv KiAtMSAtLS0gZXJyb3IsIGNhbid0IGVucXVldWUgLS0gbm8gc3BhY2UgYXZhaWxhYmxlICovDQo+ IMKgc3RhdGljIGludCBqcl9lbnF1ZXVlKHVpbnQzMl90ICpkZXNjX2FkZHIsDQo+IMKgCcKgwqDC oMKgwqDCoMKgdm9pZCAoKmNhbGxiYWNrKSh1aW50MzJfdCBzdGF0dXMsIHZvaWQgKmFyZyksDQo+ IC0JwqDCoMKgwqDCoMKgwqB2b2lkICphcmcsIHVpbnQ4X3Qgc2VjX2lkeCkNCj4gKwnCoMKgwqDC oMKgwqDCoHZvaWQgKmFyZywgdWludDhfdCBzZWNfaWR4LCBzdHJ1Y3QgY2FhbV9yZWdzICpjYWFt KQ0KPiDCoHsNCj4gLQlzdHJ1Y3QganJfcmVncyAqcmVncyA9IChzdHJ1Y3QganJfcmVncw0KPiAq KVNFQ19KUjBfQUREUihzZWNfaWR4KTsNCj4gLQlzdHJ1Y3Qgam9icmluZyAqanIgPSAmanIwW3Nl Y19pZHhdOw0KPiArCXN0cnVjdCBqcl9yZWdzICpyZWdzID0gY2FhbS0+cmVnczsNCj4gKwlzdHJ1 Y3Qgam9icmluZyAqanIgPSAmY2FhbS0+anJbc2VjX2lkeF07DQo+IMKgCWludCBoZWFkID0ganIt PmhlYWQ7DQo+IMKgCXVpbnQzMl90IGRlc2Nfd29yZDsNCj4gwqAJaW50IGxlbmd0aCA9IGRlc2Nf bGVuKGRlc2NfYWRkcik7DQo+IEBAIC0yNjMsMTAgKzIyNiwxMCBAQCBzdGF0aWMgaW50IGpyX2Vu cXVldWUodWludDMyX3QgKmRlc2NfYWRkciwNCj4gwqAJcmV0dXJuIDA7DQo+IMKgfQ0KPiDCoA0K PiAtc3RhdGljIGludCBqcl9kZXF1ZXVlKGludCBzZWNfaWR4KQ0KPiArc3RhdGljIGludCBqcl9k ZXF1ZXVlKGludCBzZWNfaWR4LCBzdHJ1Y3QgY2FhbV9yZWdzICpjYWFtKQ0KPiDCoHsNCj4gLQlz dHJ1Y3QganJfcmVncyAqcmVncyA9IChzdHJ1Y3QganJfcmVncw0KPiAqKVNFQ19KUjBfQUREUihz ZWNfaWR4KTsNCj4gLQlzdHJ1Y3Qgam9icmluZyAqanIgPSAmanIwW3NlY19pZHhdOw0KPiArCXN0 cnVjdCBqcl9yZWdzICpyZWdzID0gY2FhbS0+cmVnczsNCj4gKwlzdHJ1Y3Qgam9icmluZyAqanIg PSAmY2FhbS0+anJbc2VjX2lkeF07DQo+IMKgCWludCBoZWFkID0ganItPmhlYWQ7DQo+IMKgCWlu dCB0YWlsID0ganItPnRhaWw7DQo+IMKgCWludCBpZHgsIGksIGZvdW5kOw0KPiBAQCAtMzQ5LDE0 ICszMTIsMTggQEAgc3RhdGljIHZvaWQgZGVzY19kb25lKHVpbnQzMl90IHN0YXR1cywgdm9pZA0K PiAqYXJnKQ0KPiDCoHsNCj4gwqAJc3RydWN0IHJlc3VsdCAqeCA9IGFyZzsNCj4gwqAJeC0+c3Rh dHVzID0gc3RhdHVzOw0KPiAtI2lmbmRlZiBDT05GSUdfU1BMX0JVSUxEDQo+IMKgCWNhYW1fanJf c3Ryc3RhdHVzKHN0YXR1cyk7DQo+IC0jZW5kaWYNCj4gwqAJeC0+ZG9uZSA9IDE7DQo+IMKgfQ0K PiDCoA0KPiDCoHN0YXRpYyBpbmxpbmUgaW50IHJ1bl9kZXNjcmlwdG9yX2pyX2lkeCh1aW50MzJf dCAqZGVzYywgdWludDhfdA0KPiBzZWNfaWR4KQ0KPiDCoHsNCj4gKwlzdHJ1Y3QgY2FhbV9yZWdz ICpjYWFtOw0KPiArI2lmIENPTkZJR19JU19FTkFCTEVEKERNKQ0KPiArCWNhYW0gPSBkZXZfZ2V0 X3ByaXYoY2FhbV9kZXYpOw0KPiArI2Vsc2UNCj4gKwljYWFtID0gJmNhYW1fc3Q7DQo+ICsjZW5k aWYNCj4gwqAJdW5zaWduZWQgbG9uZyBsb25nIHRpbWV2YWwgPSAwOw0KPiDCoAl1bnNpZ25lZCBs b25nIGxvbmcgdGltZW91dCA9IENPTkZJR19VU0VDX0RFUV9USU1FT1VUOw0KPiDCoAlzdHJ1Y3Qg cmVzdWx0IG9wOw0KPiBAQCAtMzY0LDcgKzMzMSw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHJ1bl9k ZXNjcmlwdG9yX2pyX2lkeCh1aW50MzJfdA0KPiAqZGVzYywgdWludDhfdCBzZWNfaWR4KQ0KPiDC oA0KPiDCoAltZW1zZXQoJm9wLCAwLCBzaXplb2Yob3ApKTsNCj4gwqANCj4gLQlyZXQgPSBqcl9l bnF1ZXVlKGRlc2MsIGRlc2NfZG9uZSwgJm9wLCBzZWNfaWR4KTsNCj4gKwlyZXQgPSBqcl9lbnF1 ZXVlKGRlc2MsIGRlc2NfZG9uZSwgJm9wLCBzZWNfaWR4LCBjYWFtKTsNCj4gwqAJaWYgKHJldCkg ew0KPiDCoAkJZGVidWcoIkVycm9yIGluIFNFQyBlbnFcbiIpOw0KPiDCoAkJcmV0ID0gSlFfRU5R X0VSUjsNCj4gQEAgLTM3NSw3ICszNDIsNyBAQCBzdGF0aWMgaW5saW5lIGludCBydW5fZGVzY3Jp cHRvcl9qcl9pZHgodWludDMyX3QNCj4gKmRlc2MsIHVpbnQ4X3Qgc2VjX2lkeCkNCj4gwqAJCXVk ZWxheSgxKTsNCj4gwqAJCXRpbWV2YWwgKz0gMTsNCj4gwqANCj4gLQkJcmV0ID0ganJfZGVxdWV1 ZShzZWNfaWR4KTsNCj4gKwkJcmV0ID0ganJfZGVxdWV1ZShzZWNfaWR4LCBjYWFtKTsNCj4gwqAJ CWlmIChyZXQpIHsNCj4gwqAJCQlkZWJ1ZygiRXJyb3IgaW4gU0VDIGRlcVxuIik7DQo+IMKgCQkJ cmV0ID0gSlFfREVRX0VSUjsNCj4gQEAgLTQwMiwxMyArMzY5LDYzIEBAIGludCBydW5fZGVzY3Jp cHRvcl9qcih1aW50MzJfdCAqZGVzYykNCj4gwqAJcmV0dXJuIHJ1bl9kZXNjcmlwdG9yX2pyX2lk eChkZXNjLCAwKTsNCj4gwqB9DQo+IMKgDQo+ICsjaWZuZGVmIENPTkZJR19BUkNIX0lNWDgNCj4g K3N0YXRpYyBpbnQganJfc3dfY2xlYW51cCh1aW50OF90IHNlY19pZHgsIHN0cnVjdCBjYWFtX3Jl Z3MgKmNhYW0pDQo+ICt7DQo+ICsJc3RydWN0IGpvYnJpbmcgKmpyID0gJmNhYW0tPmpyW3NlY19p ZHhdOw0KPiArDQo+ICsJanItPmhlYWQgPSAwOw0KPiArCWpyLT50YWlsID0gMDsNCj4gKwlqci0+ cmVhZF9pZHggPSAwOw0KPiArCWpyLT53cml0ZV9pZHggPSAwOw0KPiArCW1lbXNldChqci0+aW5m bywgMCwgc2l6ZW9mKGpyLT5pbmZvKSk7DQo+ICsJbWVtc2V0KGpyLT5pbnB1dF9yaW5nLCAwLCBq ci0+c2l6ZSAqDQo+IHNpemVvZihjYWFtX2RtYV9hZGRyX3QpKTsNCj4gKwltZW1zZXQoanItPm91 dHB1dF9yaW5nLCAwLCBqci0+c2l6ZSAqIHNpemVvZihzdHJ1Y3QNCj4gb3BfcmluZykpOw0KPiAr DQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQganJfaHdfcmVzZXQoc3Ry dWN0IGpyX3JlZ3MgKnJlZ3MpDQo+ICt7DQo+ICsJdWludDMyX3QgdGltZW91dCA9IDEwMDAwMDsN Cj4gKwl1aW50MzJfdCBqcmludCwganJjcjsNCj4gKw0KPiArCXNlY19vdXQzMigmcmVncy0+anJj ciwgSlJDUl9SRVNFVCk7DQo+ICsJZG8gew0KPiArCQlqcmludCA9IHNlY19pbjMyKCZyZWdzLT5q cmludCk7DQo+ICsJfSB3aGlsZSAoKChqcmludCAmIEpSSU5UX0VSUl9IQUxUX01BU0spID09DQo+ ICsJCcKgwqBKUklOVF9FUlJfSEFMVF9JTlBST0dSRVNTKSAmJiAtLXRpbWVvdXQpOw0KPiArDQo+ ICsJanJpbnQgPSBzZWNfaW4zMigmcmVncy0+anJpbnQpOw0KPiArCWlmICgoKGpyaW50ICYgSlJJ TlRfRVJSX0hBTFRfTUFTSykgIT0NCj4gKwnCoMKgwqDCoMKgSlJJTlRfRVJSX0hBTFRfSU5QUk9H UkVTUykgJiYgdGltZW91dCA9PSAwKQ0KPiArCQlyZXR1cm4gLTE7DQo+ICsNCj4gKwl0aW1lb3V0 ID0gMTAwMDAwOw0KPiArCXNlY19vdXQzMigmcmVncy0+anJjciwgSlJDUl9SRVNFVCk7DQo+ICsJ ZG8gew0KPiArCQlqcmNyID0gc2VjX2luMzIoJnJlZ3MtPmpyY3IpOw0KPiArCX0gd2hpbGUgKChq cmNyICYgSlJDUl9SRVNFVCkgJiYgLS10aW1lb3V0KTsNCj4gKw0KPiArCWlmICh0aW1lb3V0ID09 IDApDQo+ICsJCXJldHVybiAtMTsNCj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+IMKg c3RhdGljIGlubGluZSBpbnQganJfcmVzZXRfc2VjKHVpbnQ4X3Qgc2VjX2lkeCkNCj4gwqB7DQo+ IC0JaWYgKGpyX2h3X3Jlc2V0KHNlY19pZHgpIDwgMCkNCj4gKwlzdHJ1Y3QgY2FhbV9yZWdzICpj YWFtOw0KPiArI2lmIENPTkZJR19JU19FTkFCTEVEKERNKQ0KPiArCWNhYW0gPSBkZXZfZ2V0X3By aXYoY2FhbV9kZXYpOw0KPiArI2Vsc2UNCj4gKwljYWFtID0gJmNhYW1fc3Q7DQo+ICsjZW5kaWYN Cj4gKwlpZiAoanJfaHdfcmVzZXQoY2FhbS0+cmVncykgPCAwKQ0KPiDCoAkJcmV0dXJuIC0xOw0K PiDCoA0KPiDCoAkvKiBDbGVhbiB1cCB0aGUgam9icmluZyBzdHJ1Y3R1cmUgbWFpbnRhaW5lZCBi eSBzb2Z0d2FyZSAqLw0KPiAtCWpyX3N3X2NsZWFudXAoc2VjX2lkeCk7DQo+ICsJanJfc3dfY2xl YW51cChzZWNfaWR4LCBjYWFtKTsNCj4gwqANCj4gwqAJcmV0dXJuIDA7DQo+IMKgfQ0KPiBAQCAt NDE4LDkgKzQzNSwxNSBAQCBpbnQganJfcmVzZXQodm9pZCkNCj4gwqAJcmV0dXJuIGpyX3Jlc2V0 X3NlYygwKTsNCj4gwqB9DQo+IMKgDQo+IC1zdGF0aWMgaW5saW5lIGludCBzZWNfcmVzZXRfaWR4 KHVpbnQ4X3Qgc2VjX2lkeCkNCj4gK2ludCBzZWNfcmVzZXQodm9pZCkNCj4gwqB7DQo+IC0JY2Nz cl9zZWNfdCAqc2VjID0gKHZvaWQgKilTRUNfQUREUihzZWNfaWR4KTsNCj4gKwlzdHJ1Y3QgY2Fh bV9yZWdzICpjYWFtOw0KPiArI2lmIENPTkZJR19JU19FTkFCTEVEKERNKQ0KPiArCWNhYW0gPSBk ZXZfZ2V0X3ByaXYoY2FhbV9kZXYpOw0KPiArI2Vsc2UNCj4gKwljYWFtID0gJmNhYW1fc3Q7DQo+ ICsjZW5kaWYNCj4gKwljY3NyX3NlY190ICpzZWMgPSBjYWFtLT5zZWM7DQo+IMKgCXVpbnQzMl90 IG1jZmdyID0gc2VjX2luMzIoJnNlYy0+bWNmZ3IpOw0KPiDCoAl1aW50MzJfdCB0aW1lb3V0ID0g MTAwMDAwOw0KPiDCoA0KPiBAQCAtNDQ2LDExICs0NjksNyBAQCBzdGF0aWMgaW5saW5lIGludCBz ZWNfcmVzZXRfaWR4KHVpbnQ4X3Qgc2VjX2lkeCkNCj4gwqANCj4gwqAJcmV0dXJuIDA7DQo+IMKg fQ0KPiAtaW50IHNlY19yZXNldCh2b2lkKQ0KPiAtew0KPiAtCXJldHVybiBzZWNfcmVzZXRfaWR4 KDApOw0KPiAtfQ0KPiAtI2lmbmRlZiBDT05GSUdfU1BMX0JVSUxEDQo+ICsNCj4gwqBzdGF0aWMg aW50IGRlaW5zdGFudGlhdGVfcm5nKHU4IHNlY19pZHgsIGludCBzdGF0ZV9oYW5kbGVfbWFzaykN Cj4gwqB7DQo+IMKgCXUzMiAqZGVzYzsNCj4gQEAgLTQ5NiwxMiArNTE1LDExIEBAIHN0YXRpYyBp bnQgZGVpbnN0YW50aWF0ZV9ybmcodTggc2VjX2lkeCwgaW50DQo+IHN0YXRlX2hhbmRsZV9tYXNr KQ0KPiDCoAlyZXR1cm4gcmV0Ow0KPiDCoH0NCj4gwqANCj4gLXN0YXRpYyBpbnQgaW5zdGFudGlh dGVfcm5nKHU4IHNlY19pZHgsIGludCBnZW5fc2spDQo+ICtzdGF0aWMgaW50IGluc3RhbnRpYXRl X3JuZyh1aW50OF90IHNlY19pZHgsIGNjc3Jfc2VjX3QgKnNlYywgaW50DQo+IGdlbl9zaykNCj4g wqB7DQo+IMKgCXUzMiAqZGVzYzsNCj4gwqAJdTMyIHJkc3RhX3ZhbDsNCj4gwqAJaW50IHJldCA9 IDAsIHNoX2lkeCwgc2l6ZTsNCj4gLQljY3NyX3NlY190IF9faW9tZW0gKnNlYyA9IChjY3NyX3Nl Y190IF9faW9tZW0NCj4gKilTRUNfQUREUihzZWNfaWR4KTsNCj4gwqAJc3RydWN0IHJuZzR0c3Qg X19pb21lbSAqcm5nID0NCj4gwqAJCQkoc3RydWN0IHJuZzR0c3QgX19pb21lbSAqKSZzZWMtPnJu ZzsNCj4gwqANCj4gQEAgLTU1NCw5ICs1NzIsOCBAQCBzdGF0aWMgaW50IGluc3RhbnRpYXRlX3Ju Zyh1OCBzZWNfaWR4LCBpbnQNCj4gZ2VuX3NrKQ0KPiDCoAlyZXR1cm4gcmV0Ow0KPiDCoH0NCj4g wqANCj4gLXN0YXRpYyB1OCBnZXRfcm5nX3ZpZCh1aW50OF90IHNlY19pZHgpDQo+ICtzdGF0aWMg dTggZ2V0X3JuZ192aWQoY2Nzcl9zZWNfdCAqc2VjKQ0KPiDCoHsNCj4gLQljY3NyX3NlY190ICpz ZWMgPSAodm9pZCAqKVNFQ19BRERSKHNlY19pZHgpOw0KPiDCoAl1OCB2aWQ7DQo+IMKgDQo+IMKg CWlmIChjYWFtX2dldF9lcmEoKSA8IDEwKSB7DQo+IEBAIC01NzQsOSArNTkxLDggQEAgc3RhdGlj IHU4IGdldF9ybmdfdmlkKHVpbnQ4X3Qgc2VjX2lkeCkNCj4gwqAgKiBCeSBkZWZhdWx0LCB0aGUg VFJORyBydW5zIGZvciAyMDAgY2xvY2tzIHBlciBzYW1wbGU7DQo+IMKgICogMTIwMCBjbG9ja3Mg cGVyIHNhbXBsZSBnZW5lcmF0ZXMgYmV0dGVyIGVudHJvcHkuDQo+IMKgICovDQo+IC1zdGF0aWMg dm9pZCBraWNrX3RybmcoaW50IGVudF9kZWxheSwgdWludDhfdCBzZWNfaWR4KQ0KPiArc3RhdGlj IHZvaWQga2lja190cm5nKGludCBlbnRfZGVsYXksIGNjc3Jfc2VjX3QgKnNlYykNCj4gwqB7DQo+ IC0JY2Nzcl9zZWNfdCBfX2lvbWVtICpzZWMgPSAoY2Nzcl9zZWNfdCBfX2lvbWVtDQo+ICopU0VD X0FERFIoc2VjX2lkeCk7DQo+IMKgCXN0cnVjdCBybmc0dHN0IF9faW9tZW0gKnJuZyA9DQo+IMKg CQkJKHN0cnVjdCBybmc0dHN0IF9faW9tZW0gKikmc2VjLT5ybmc7DQo+IMKgCXUzMiB2YWw7DQo+ IEBAIC02MDMsMTAgKzYxOSw5IEBAIHN0YXRpYyB2b2lkIGtpY2tfdHJuZyhpbnQgZW50X2RlbGF5 LCB1aW50OF90DQo+IHNlY19pZHgpDQo+IMKgCXNlY19jbHJiaXRzMzIoJnJuZy0+cnRtY3RsLCBS VE1DVExfUFJHTSk7DQo+IMKgfQ0KPiDCoA0KPiAtc3RhdGljIGludCBybmdfaW5pdCh1aW50OF90 IHNlY19pZHgpDQo+ICtzdGF0aWMgaW50IHJuZ19pbml0KHVpbnQ4X3Qgc2VjX2lkeCwgY2Nzcl9z ZWNfdCAqc2VjKQ0KPiDCoHsNCj4gwqAJaW50IHJldCwgZ2VuX3NrLCBlbnRfZGVsYXkgPSBSVFNE Q1RMX0VOVF9ETFlfTUlOOw0KPiAtCWNjc3Jfc2VjX3QgX19pb21lbSAqc2VjID0gKGNjc3Jfc2Vj X3QgX19pb21lbQ0KPiAqKVNFQ19BRERSKHNlY19pZHgpOw0KPiDCoAlzdHJ1Y3Qgcm5nNHRzdCBf X2lvbWVtICpybmcgPQ0KPiDCoAkJCShzdHJ1Y3Qgcm5nNHRzdCBfX2lvbWVtICopJnNlYy0+cm5n Ow0KPiDCoAl1MzIgaW5zdF9oYW5kbGVzOw0KPiBAQCAtNjI0LDcgKzYzOSw3IEBAIHN0YXRpYyBp bnQgcm5nX2luaXQodWludDhfdCBzZWNfaWR4KQ0KPiDCoAkJwqAqIHRoZSBUUk5HIHBhcmFtZXRl cnMuDQo+IMKgCQnCoCovDQo+IMKgCQlpZiAoIWluc3RfaGFuZGxlcykgew0KPiAtCQkJa2lja190 cm5nKGVudF9kZWxheSwgc2VjX2lkeCk7DQo+ICsJCQlraWNrX3RybmcoZW50X2RlbGF5LCBzZWMp Ow0KPiDCoAkJCWVudF9kZWxheSArPSA0MDA7DQo+IMKgCQl9DQo+IMKgCQkvKg0KPiBAQCAtNjM0 LDcgKzY0OSw3IEBAIHN0YXRpYyBpbnQgcm5nX2luaXQodWludDhfdCBzZWNfaWR4KQ0KPiDCoAkJ wqAqIGludGVydmFsLCBsZWFkaW5nIHRvIGEgc3VjZXNzZnVsIGluaXRpYWxpemF0aW9uDQo+IG9m DQo+IMKgCQnCoCogdGhlIFJORy4NCj4gwqAJCcKgKi8NCj4gLQkJcmV0ID0gaW5zdGFudGlhdGVf cm5nKHNlY19pZHgsIGdlbl9zayk7DQo+ICsJCXJldCA9IGluc3RhbnRpYXRlX3JuZyhzZWNfaWR4 LCBzZWMsIGdlbl9zayk7DQo+IMKgCX0gd2hpbGUgKChyZXQgPT0gLTEpICYmIChlbnRfZGVsYXkg PCBSVFNEQ1RMX0VOVF9ETFlfTUFYKSk7DQo+IMKgCWlmIChyZXQpIHsNCj4gwqAJCXByaW50Zigi U0VDJXU6wqDCoEZhaWxlZCB0byBpbnN0YW50aWF0ZSBSTkdcbiIsDQo+IHNlY19pZHgpOw0KPiBA QCAtNjQ3LDEyICs2NjIsMjUgQEAgc3RhdGljIGludCBybmdfaW5pdCh1aW50OF90IHNlY19pZHgp DQo+IMKgCXJldHVybiByZXQ7DQo+IMKgfQ0KPiDCoCNlbmRpZg0KPiArDQo+IMKgaW50IHNlY19p bml0X2lkeCh1aW50OF90IHNlY19pZHgpDQo+IMKgew0KPiAtCWNjc3Jfc2VjX3QgKnNlYyA9ICh2 b2lkICopU0VDX0FERFIoc2VjX2lkeCk7DQo+IC0JdWludDMyX3QgbWNyID0gc2VjX2luMzIoJnNl Yy0+bWNmZ3IpOw0KPiDCoAlpbnQgcmV0ID0gMDsNCj4gLQ0KPiArCXN0cnVjdCBjYWFtX3JlZ3Mg KmNhYW07DQo+ICsjaWYgQ09ORklHX0lTX0VOQUJMRUQoRE0pDQo+ICsJY2FhbSA9IGRldl9nZXRf cHJpdihjYWFtX2Rldik7DQoNCk5lZWQgdG8gY2hlY2sgdGhlIGNhYW1fZGV2IHZhbGlkIGJlZm9y ZSB1c2luZyBpdA0KDQpCZXN0IHJlZ2FyZHMsDQpZZSBMaQ0KDQo+ICsjZWxzZQ0KPiArCWNhYW1f c3Quc2VjID0gKHZvaWQgKilTRUNfQUREUihzZWNfaWR4KTsNCj4gKwljYWFtX3N0LnJlZ3MgPSAo c3RydWN0IGpyX3JlZ3MgKilTRUNfSlIwX0FERFIoc2VjX2lkeCk7DQo+ICsJY2FhbV9zdC5qcmlk ID0gMDsNCj4gKwljYWFtID0gJmNhYW1fc3Q7DQo+ICsjZW5kaWYNCj4gKyNpZm5kZWYgQ09ORklH X0FSQ0hfSU1YOA0KPiArCWNjc3Jfc2VjX3QgKnNlYyA9IGNhYW0tPnNlYzsNCj4gKwl1aW50MzJf dCBtY3IgPSBzZWNfaW4zMigmc2VjLT5tY2Zncik7DQo+ICsjaWYgZGVmaW5lZChDT05GSUdfU1BM X0JVSUxEKSAmJiBkZWZpbmVkKENPTkZJR19JTVg4TSkNCj4gKwl1aW50MzJfdCBqcmRpZF9tcyA9 IDA7DQo+ICsjZW5kaWYNCj4gwqAjaWZkZWYgQ09ORklHX0ZTTF9DT1JFTkVUDQo+IMKgCXVpbnQz Ml90IGxpb2RucjsNCj4gwqAJdWludDMyX3QgbGlvZG5fbnM7DQo+IEBAIC02ODIsNiArNzEwLDEx IEBAIGludCBzZWNfaW5pdF9pZHgodWludDhfdCBzZWNfaWR4KQ0KPiDCoAltY3IgfD0gKDEgPDwg TUNGR1JfUFNfU0hJRlQpOw0KPiDCoCNlbmRpZg0KPiDCoAlzZWNfb3V0MzIoJnNlYy0+bWNmZ3Is IG1jcik7DQo+ICsjaWYgZGVmaW5lZChDT05GSUdfU1BMX0JVSUxEKSAmJiBkZWZpbmVkKENPTkZJ R19JTVg4TSkNCj4gKwlqcmRpZF9tcyA9IEpSRElEX01TX1RaX09XTiB8IEpSRElEX01TX1BSSU1f VFogfA0KPiBKUkRJRF9NU19QUklNX0RJRDsNCj4gKwlzZWNfb3V0MzIoJnNlYy0+anJsaW9kbnJb Y2FhbS0+anJpZF0ubXMsIGpyZGlkX21zKTsNCj4gKyNlbmRpZg0KPiArCWpyX3Jlc2V0KCk7DQo+ IMKgDQo+IMKgI2lmZGVmIENPTkZJR19GU0xfQ09SRU5FVA0KPiDCoCNpZmRlZiBDT05GSUdfU1BM X0JVSUxEDQo+IEBAIC02OTMsMjUgKzcyNiwyNiBAQCBpbnQgc2VjX2luaXRfaWR4KHVpbnQ4X3Qg c2VjX2lkeCkNCj4gwqAJbGlvZG5fbnMgPSBDT05GSUdfU1BMX0pSMF9MSU9ETl9OUyAmIEpSTlNM SU9ETl9NQVNLOw0KPiDCoAlsaW9kbl9zID0gQ09ORklHX1NQTF9KUjBfTElPRE5fUyAmIEpSU0xJ T0ROX01BU0s7DQo+IMKgDQo+IC0JbGlvZG5yID0gc2VjX2luMzIoJnNlYy0+anJsaW9kbnJbMF0u bHMpICYNCj4gKwlsaW9kbnIgPSBzZWNfaW4zMigmc2VjLT5qcmxpb2RucltjYWFtLT5qcmlkXS5s cykgJg0KPiDCoAkJwqB+KEpSTlNMSU9ETl9NQVNLIHwgSlJTTElPRE5fTUFTSyk7DQo+IMKgCWxp b2RuciA9IGxpb2RuciB8DQo+IMKgCQnCoChsaW9kbl9ucyA8PCBKUk5TTElPRE5fU0hJRlQpIHwN Cj4gwqAJCcKgKGxpb2RuX3MgPDwgSlJTTElPRE5fU0hJRlQpOw0KPiAtCXNlY19vdXQzMigmc2Vj LT5qcmxpb2RuclswXS5scywgbGlvZG5yKTsNCj4gKwlzZWNfb3V0MzIoJnNlYy0+anJsaW9kbnJb Y2FhbS0+anJpZF0ubHMsIGxpb2Rucik7DQo+IMKgI2Vsc2UNCj4gLQlsaW9kbnIgPSBzZWNfaW4z Migmc2VjLT5qcmxpb2RuclswXS5scyk7DQo+ICsJbGlvZG5yID0gc2VjX2luMzIoJnNlYy0+anJs aW9kbnJbY2FhbS0+anJpZF0ubHMpOw0KPiDCoAlsaW9kbl9ucyA9IChsaW9kbnIgJiBKUk5TTElP RE5fTUFTSykgPj4gSlJOU0xJT0ROX1NISUZUOw0KPiDCoAlsaW9kbl9zID0gKGxpb2RuciAmIEpS U0xJT0ROX01BU0spID4+IEpSU0xJT0ROX1NISUZUOw0KPiDCoCNlbmRpZg0KPiDCoCNlbmRpZg0K PiAtDQo+IC0JcmV0ID0ganJfaW5pdChzZWNfaWR4KTsNCj4gKyNlbmRpZg0KPiArCXJldCA9IGpy X2luaXQoc2VjX2lkeCwgY2FhbSk7DQo+IMKgCWlmIChyZXQgPCAwKSB7DQo+IMKgCQlwcmludGYo IlNFQyV1OsKgwqBpbml0aWFsaXphdGlvbiBmYWlsZWRcbiIsIHNlY19pZHgpOw0KPiDCoAkJcmV0 dXJuIC0xOw0KPiDCoAl9DQo+IMKgDQo+ICsjaWZuZGVmIENPTkZJR19BUkNIX0lNWDgNCj4gwqAj aWZkZWYgQ09ORklHX0ZTTF9DT1JFTkVUDQo+IMKgCXJldCA9IHNlY19jb25maWdfcGFtdV90YWJs ZShsaW9kbl9ucywgbGlvZG5fcyk7DQo+IMKgCWlmIChyZXQgPCAwKQ0KPiBAQCAtNzE5LDkgKzc1 Myw5IEBAIGludCBzZWNfaW5pdF9pZHgodWludDhfdCBzZWNfaWR4KQ0KPiDCoA0KPiDCoAlwYW11 X2VuYWJsZSgpOw0KPiDCoCNlbmRpZg0KPiAtI2lmbmRlZiBDT05GSUdfU1BMX0JVSUxEDQo+IC0J aWYgKGdldF9ybmdfdmlkKHNlY19pZHgpID49IDQpIHsNCj4gLQkJaWYgKHJuZ19pbml0KHNlY19p ZHgpIDwgMCkgew0KPiArDQo+ICsJaWYgKGdldF9ybmdfdmlkKGNhYW0tPnNlYykgPj0gNCkgew0K PiArCQlpZiAocm5nX2luaXQoc2VjX2lkeCwgY2FhbS0+c2VjKSA8IDApIHsNCj4gwqAJCQlwcmlu dGYoIlNFQyV1OsKgwqBSTkcgaW5zdGFudGlhdGlvbiBmYWlsZWRcbiIsDQo+IHNlY19pZHgpOw0K PiDCoAkJCXJldHVybiAtMTsNCj4gwqAJCX0NCj4gQEAgLTc0MywzICs3NzcsNjUgQEAgaW50IHNl Y19pbml0KHZvaWQpDQo+IMKgew0KPiDCoAlyZXR1cm4gc2VjX2luaXRfaWR4KDApOw0KPiDCoH0N Cj4gKw0KPiArI2lmIENPTkZJR19JU19FTkFCTEVEKERNKQ0KPiArc3RhdGljIGludCBjYWFtX2py X3Byb2JlKHN0cnVjdCB1ZGV2aWNlICpkZXYpDQo+ICt7DQo+ICsJc3RydWN0IGNhYW1fcmVncyAq Y2FhbSA9IGRldl9nZXRfcHJpdihkZXYpOw0KPiArCWNvbnN0IHZvaWQgKmZkdCA9IGdkLT5mZHRf YmxvYjsNCj4gKwlpbnQgbm9kZSA9IGRldl9vZl9vZmZzZXQoZGV2KTsNCj4gKwlmZHRfYWRkcl90 IGFkZHI7DQo+ICsJaW50IHN1Ym5vZGU7DQo+ICsJdW5zaWduZWQgaW50IGpyX25vZGUgPSAwOw0K PiArDQo+ICsJY2FhbV9kZXYgPSBkZXY7DQo+ICsNCj4gKwlhZGRyID0gZGV2X3JlYWRfYWRkcihk ZXYpOw0KPiArCWlmIChhZGRyID09IEZEVF9BRERSX1RfTk9ORSkgew0KPiArCQlwcmludGYoImNh YW1fanI6IGNyeXB0byBub3QgZm91bmRcbiIpOw0KPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gKwl9 DQo+ICsJY2FhbS0+c2VjID0gKGNjc3Jfc2VjX3QgKikodWludHB0cl90KWFkZHI7DQo+ICsJY2Fh bS0+cmVncyA9IChzdHJ1Y3QganJfcmVncyAqKWNhYW0tPnNlYzsNCj4gKw0KPiArCS8qIENoZWNr IGZvciBlbmFibGVkIGpvYiByaW5nIHN1Ym5vZGUgKi8NCj4gKwlmZHRfZm9yX2VhY2hfc3Vibm9k ZShzdWJub2RlLCBmZHQsIG5vZGUpIHsNCj4gKwkJaWYgKCFmZHRkZWNfZ2V0X2lzX2VuYWJsZWQo ZmR0LCBzdWJub2RlKSkgew0KPiArCQkJY29udGludWU7DQo+ICsJCX0NCj4gKwkJanJfbm9kZSA9 IGZkdGRlY19nZXRfdWludChmZHQsIHN1Ym5vZGUsICJyZWciLCAtMSk7DQo+ICsJCWlmIChqcl9u b2RlID4gMCkgew0KPiArCQkJY2FhbS0+cmVncyA9IChzdHJ1Y3QganJfcmVncyAqKSgodWxvbmcp Y2FhbS0NCj4gPnNlYyArIGpyX25vZGUpOw0KPiArCQkJd2hpbGUgKCEoanJfbm9kZSAmIDB4MEYp KSB7DQo+ICsJCQkJanJfbm9kZSA9IGpyX25vZGUgPj4gNDsNCj4gKwkJCX0NCj4gKwkJCWNhYW0t PmpyaWQgPSBqcl9ub2RlIC0gMTsNCj4gKwkJCWJyZWFrOw0KPiArCQl9DQo+ICsJfQ0KPiArDQo+ ICsJaWYgKHNlY19pbml0KCkpDQo+ICsJCXByaW50ZigiXG5zZWNfaW5pdCBmYWlsZWQhXG4iKTsN Cj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IGNhYW1fanJfYmlu ZChzdHJ1Y3QgdWRldmljZSAqZGV2KQ0KPiArew0KPiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+ ICtzdGF0aWMgY29uc3Qgc3RydWN0IHVkZXZpY2VfaWQgY2FhbV9qcl9tYXRjaFtdID0gew0KPiAr CXsgLmNvbXBhdGlibGUgPSAiZnNsLHNlYy12NC4wIiB9LA0KPiArCXsgfQ0KPiArfTsNCj4gKw0K PiArVV9CT09UX0RSSVZFUihjYWFtX2pyKSA9IHsNCj4gKwkubmFtZQkJPSAiY2FhbV9qciIsDQo+ ICsJLmlkCQk9IFVDTEFTU19NSVNDLA0KPiArCS5vZl9tYXRjaAk9IGNhYW1fanJfbWF0Y2gsDQo+ ICsJLmJpbmQJCT0gY2FhbV9qcl9iaW5kLA0KPiArCS5wcm9iZQkJPSBjYWFtX2pyX3Byb2JlLA0K PiArCS5wcml2X2F1dG8JPSBzaXplb2Yoc3RydWN0IGNhYW1fcmVncyksDQo+ICt9Ow0KPiArI2Vu ZGlmDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9mc2wvanIuaCBiL2RyaXZlcnMvY3J5 cHRvL2ZzbC9qci5oDQo+IGluZGV4IDEwNDdhYTc3MmMuLjQzY2I1ZTA3NTMgMTAwNjQ0DQo+IC0t LSBhL2RyaXZlcnMvY3J5cHRvL2ZzbC9qci5oDQo+ICsrKyBiL2RyaXZlcnMvY3J5cHRvL2ZzbC9q ci5oDQo+IEBAIC0xLDYgKzEsNyBAQA0KPiDCoC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBH UEwtMi4wKyAqLw0KPiDCoC8qDQo+IMKgICogQ29weXJpZ2h0IDIwMDgtMjAxNCBGcmVlc2NhbGUg U2VtaWNvbmR1Y3RvciwgSW5jLg0KPiArICogQ29weXJpZ2h0IDIwMjEgTlhQDQo+IMKgICoNCj4g wqAgKi8NCj4gwqANCj4gQEAgLTgsNyArOSw5IEBADQo+IMKgI2RlZmluZSBfX0pSX0gNCj4gwqAN Cj4gwqAjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4NCj4gKyNpbmNsdWRlICJmc2xfc2VjLmgi DQo+IMKgI2luY2x1ZGUgInR5cGUuaCINCj4gKyNpbmNsdWRlIDxtaXNjLmg+DQo+IMKgDQo+IMKg I2RlZmluZSBKUl9TSVpFIDQNCj4gwqAvKiBUaW1lb3V0IGN1cnJlbnRseSBkZWZpbmVkIGFzIDEw IHNlYyAqLw0KPiBAQCAtMzUsNiArMzgsMTAgQEANCj4gwqAjZGVmaW5lIEpSU0xJT0ROX1NISUZU CQkwDQo+IMKgI2RlZmluZSBKUlNMSU9ETl9NQVNLCQkweDAwMDAwZmZmDQo+IMKgDQo+ICsjZGVm aW5lIEpSRElEX01TX1BSSU1fRElECTENCj4gKyNkZWZpbmUgSlJESURfTVNfUFJJTV9UWgkoMSA8 PCA0KQ0KPiArI2RlZmluZSBKUkRJRF9NU19UWl9PV04JCSgxIDw8IDE1KQ0KPiArDQo+IMKgI2Rl ZmluZSBKUV9ERVFfRVJSCQktMQ0KPiDCoCNkZWZpbmUgSlFfREVRX1RPX0VSUgkJLTINCj4gwqAj ZGVmaW5lIEpRX0VOUV9FUlIJCS0zDQo+IEBAIC0xMDIsNiArMTA5LDEzIEBAIHN0cnVjdCByZXN1 bHQgew0KPiDCoAl1aW50MzJfdCBzdGF0dXM7DQo+IMKgfTsNCj4gwqANCj4gK3N0cnVjdCBjYWFt X3JlZ3Mgew0KPiArCWNjc3Jfc2VjX3QgKnNlYzsNCj4gKwlzdHJ1Y3QganJfcmVncyAqcmVnczsN Cj4gKwl1OCBqcmlkOw0KPiArCXN0cnVjdCBqb2JyaW5nIGpyW0NPTkZJR19TWVNfRlNMX01BWF9O VU1fT0ZfU0VDXTsNCj4gK307DQo+ICsNCj4gwqB2b2lkIGNhYW1fanJfc3Ryc3RhdHVzKHUzMiBz dGF0dXMpOw0KPiDCoGludCBydW5fZGVzY3JpcHRvcl9qcih1aW50MzJfdCAqZGVzYyk7DQo+IMKg