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=-15.7 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,URIBL_BLOCKED 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 0C3BEC433F5 for ; Thu, 9 Sep 2021 13:29:56 +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 04A1D61059 for ; Thu, 9 Sep 2021 13:29:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 04A1D61059 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=toradex.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 09F8C83407; Thu, 9 Sep 2021 15:29:53 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=toradex.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=toradex.com header.i=@toradex.com header.b="qwWQmxKi"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 3CE52833FA; Thu, 9 Sep 2021 15:29:51 +0200 (CEST) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on20706.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1b::706]) (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 65931833FA for ; Thu, 9 Sep 2021 15:29:44 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=toradex.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=marcel.ziswiler@toradex.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=k+4AXYP6T/arM0wj8wqRvBp9CoXierXrpbTQiLLYro80RFvZiFSnFvHq3JgJfRADY4RzGRjQuyUATfpkNgWOyai9RRO0CPXWzL0jZGfq3RcOzH+SXorj+kpBpDawZdc/cIDM5Dem2Snn9j34lFRBWxjdQlkH9xs7FXTYDomtLueLSIf8LaqQQpeD7MIkS3pgDD2WsjHaoSgiY6nv1pLJBjfX267WXn+F5y9aurAlmb6U9OUpUp8lmGC0rQHXXnvY9GFTy9zYr8ZRobl6zHsJ43db3gLs1EN6u/z6t5b93iqrv3JzLLFrCVRjFgFHQ7bw5g351VoSFIQf1FPsKM65UQ== 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=8bO9vRyYHnU61kLXHES9XApLaHSJdy/30dfJ9mg4TcI=; b=jXpCkYl62pBXPynSRINcnnd7a20Jd+UCEdLEzwfY/bPIeUAgjodREKZemiHLA8m8MKSWyC0AbN/4pUIp3Hg3Ut/rXGzn9QiOruG35QLZj5Jpp+JeW+J0kWqFIn5BYO1Su8xQkOu/TZGAwPUxs///JDz24AwHeMDvO30Zg/4GXvKXLKb8Oxj9Lsu2TglLMDe9ll1SFgUQUCAG6FR4T81ZjOXeRompu5BpfJOPkLZousLFy40HYfmwME+CwVSN34YhnZK/ddjPj2D4a2E1AHtwl3BStyTaafPVIuCqU4Hn6iYL6b3GJ/o55G9YpuH0w76KppaaIgFL6jCkahi/Vu5JrA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=toradex.com; dmarc=pass action=none header.from=toradex.com; dkim=pass header.d=toradex.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=toradex.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8bO9vRyYHnU61kLXHES9XApLaHSJdy/30dfJ9mg4TcI=; b=qwWQmxKiKwv884K9gMKTEV1i+2u+oq+nAK5bnKCBzyop08/7gs05LM4JWVCItsAMoFkavqGRU5mn/Lv+9eYM5zRiGM0FHMqPpAWIqpsjGftX+/0GITbq2CWkjdF2CLqzrm6nLQurblCmfQLdRQtbmVBJuKia/QV0yXnkyL7IaCs= Received: from DB7PR05MB5431.eurprd05.prod.outlook.com (2603:10a6:10:55::32) by DB9PR05MB8251.eurprd05.prod.outlook.com (2603:10a6:10:259::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.22; Thu, 9 Sep 2021 13:29:41 +0000 Received: from DB7PR05MB5431.eurprd05.prod.outlook.com ([fe80::8f4:9f42:ea10:e8e7]) by DB7PR05MB5431.eurprd05.prod.outlook.com ([fe80::8f4:9f42:ea10:e8e7%3]) with mapi id 15.20.4478.025; Thu, 9 Sep 2021 13:29:40 +0000 From: Marcel Ziswiler To: "u-boot@lists.denx.de" , "oleksandr.suvorov@foundries.io" CC: Max Krummenacher , "harm.berntsen@nedap.com" , Philippe Schenker , "linus.walleij@linaro.org" , "sebastian.reichel@collabora.com" , "stephan@gerhold.net" , Oleksandr Suvorov , "sjg@chromium.org" , "michal.simek@xilinx.com" , "sr@denx.de" , "weijie.gao@mediatek.com" Subject: Re: [PATCH v2 1/2] GPIO: fxl6408: Add support for FXL6408 GPIO expander Thread-Topic: [PATCH v2 1/2] GPIO: fxl6408: Add support for FXL6408 GPIO expander Thread-Index: AQHXm/bIsrLVt2c6qkyzqT9ZZTgU56ubxYyA Date: Thu, 9 Sep 2021 13:29:40 +0000 Message-ID: <44f200c6833531ec7df2e4722147d8433fb17a36.camel@toradex.com> References: <20210828102325.66668-1-oleksandr.suvorov@foundries.io> <20210828132316.v2.1.ce74fbdbdc@changeid> In-Reply-To: <20210828132316.v2.1.ce74fbdbdc@changeid> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: lists.denx.de; dkim=none (message not signed) header.d=none;lists.denx.de; dmarc=none action=none header.from=toradex.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 038724db-d211-4c2b-03ba-08d97395e0de x-ms-traffictypediagnostic: DB9PR05MB8251: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6430; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8IAfDc2wf5oGo6HIUFRUY++8TUCoL8HoX0rajpsTw1WwMWOfqrbfUPDR20xQW5dPBemuxwsdH/ct9okiZJR2b6eeK2HtdXnGozTFISrdncuKS9efpJujIHmgp1ry9Oj2pz6EisvvbmudRHZZYyxF7vVva45SNjykEdGkumB8folQL7z27ibwDpUOA6lU85ddG28gjRDCeqG7Hov6ZoPwBuDHkxTqlE+CIoj1On3FHx406AIB6fP/1wR0UcUQINlibLLuvZwTNZEGJmX1Dqsf3iH6gNMiWYzfbSlUo6ngvc6VVj6B+pEZd5Sl9AcVdz5GFcl4fNS/k/M1MJmHFZI4YaFGYNdepnwOIAJgcOSr4db0FbNQ3GW+FSdnHJm78r6iVd89F9ctb8sl3Ux15ZC5BjdgBPggCOzPERHXzbtgfWVoGQaLHiTWC3u5N6Vvs5xr11HMiZDmBttKxHzoXWRoGwpERxmtZag0TPYbMvHPtZmeH67v/wKc1VW8so7zbqXAHUoA6/8xTDMP4ygLRogMPY8uhTi1k+OuxAXB5+ozXHc8lJ0u0UbLrtM06cAczKHbhfwx5amHIJfCp/MGWbFAHSiHHpTLC4sOyOYluOLONKNCZsobbX6xC2fPGT23tIH8XTcxFQyKbN5e4W1Px3bjhGXlzaVsarm8PBWb/67aGyPS4xdEAMv8k55j5UydHFKl3mBBCskMOu4ukfff25kDRfqRtDCta54OieUL2iM9lunfpSdDqNb+JyIaQEgcAwPSkuphof82rXHhmOGhVsE1+6KBn2gs7FfSW+yVvqpEBHQ= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR05MB5431.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(39850400004)(396003)(136003)(366004)(376002)(36756003)(5660300002)(6506007)(8676002)(86362001)(66446008)(91956017)(8936002)(54906003)(2906002)(38070700005)(44832011)(186003)(26005)(478600001)(966005)(7416002)(6486002)(110136005)(6512007)(30864003)(38100700002)(66946007)(66476007)(83380400001)(4326008)(76116006)(316002)(2616005)(122000001)(71200400001)(66556008)(64756008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eEowN3p6R2FPKzgyUFFJaWJ1QkNKMHl0K1AxS3dhS0g0L2dkRTJiUm1pdUlx?= =?utf-8?B?aytkTWQzUkh2WlpTaTN2TjRkc0ZydDByUmFwekphZWhPTXRLREhNRGcrODlB?= =?utf-8?B?Mmdkd2VianRkeXhHMDZnRXJwb0d6VHFxbUVkc1ZURVF5VDNOSmJtN0JmbVFW?= =?utf-8?B?RHZnOWhQVkd3ajI0NHpMbFU0ZzZBUkpyV29peWVUMTlPTTN2NUNwRVFaVVF1?= =?utf-8?B?Mk5wMTN1VDUvSlU3K0NmZDhmQ1VhT3p6OU1jVmU0Vi9od1Q2bjlkNlkzWng0?= =?utf-8?B?NXU3RDJ3WGRsQ0djZFd3V01aWkZqNnhzdzQyWTJtekgwTDljZHVmL3NWTElR?= =?utf-8?B?SXduVzRCOEdwdkJsWlVnZk5hMnhjWko4Z2dXZ0xBcUlsZi9xMWUzYTlaMkhD?= =?utf-8?B?dklmRHkzQWxaV3g3WDV6bll2a2gwWmdHNTc5b215eCt2ZjM4akU1SlowdnA2?= =?utf-8?B?ZXM0a3V0bXNpOVlQV1piSXMzd2RtbkRJcG9QQ3VMVURXczhNSm9qZkhBSFNk?= =?utf-8?B?L1VEd001eEQ5am5aZE9oUmVpdG05TkNlM0lvWEdhTkdYZDZlbENDUnRnQXRD?= =?utf-8?B?dFMzR25jb3RvRGtCK25hdSs4cU0wM0VDYysySTZsditoT3FkL0x5RXBsODhZ?= =?utf-8?B?ZjZsZ3JlTlBTSWtRSFg1ZWVORGVFWWNabzh5emlRTFMwYUZUT3NyL2NnemlD?= =?utf-8?B?dnFzYTFRK1YrYU5OUndKb25KMkF1Y0VxOTRHTmI4alZWbENGb1FwZTROdDEz?= =?utf-8?B?WUpFYnN1WTQ4djlTUm5LUVNvU1BMbWVJRmRabjBLOGowUS84bDZmQkJXNmpo?= =?utf-8?B?eVdCb0syc3liRXZoRDkwYWtRMGgrcUl5Qm9ySXhvUXNyc0laNVJrOFgzcmF5?= =?utf-8?B?NlgrVFNDY3VMQkswSEhhRkpJcVd1VmR0TndGT1Z4Tk9Qc0NFMzJrU3FvZEJz?= =?utf-8?B?NGlXQVIwSXl4V0ZwcU9rOGt5aE9TK0FVRzFWZCtWY05FaTBGNGg0Um5pcy9N?= =?utf-8?B?MnRMWlJvVHZTbjE4ZVo2ZXNoaUhUZW9DWDFpWUNGcjV1WVp6SlpRanl5Zjl0?= =?utf-8?B?b1JIbms1UmN6ZE9GeHpnd0F5ZDhyMnFWNUpVdWQzRmoxQlFBVnE5UTlVWi8z?= =?utf-8?B?cWpUN1hVN3o0MDI1YVMwVzVlMTNjeDl1dmE3VlFXRGpzbjJpRFlmZS84MFN4?= =?utf-8?B?REd0UXBpZDM1bG42RWFXZVZPSXBoRitKZGdBZC96YnpvK0pnSW0vZWFvZTVI?= =?utf-8?B?OHFSV0hCZFJIUHBQSXgyd0VKeXdJR2F5UVRKZ3NWQVlSNjUwbm50d0J2SFVz?= =?utf-8?B?NmRCUGRDODA5dGlJdllCcjAwOWF0MmF6Yyt6MjdjQ29UVVFwUHFJWFB6dlNM?= =?utf-8?B?M0h3SHZxNVd3T1J2cHhvRi9yYWl1VzVzUzBocjU4cXIvNmFURWVzOHBFTUtW?= =?utf-8?B?RWlWb1daVXpqYm1RQm5SQ21hWk9PdnBFUThnWmhrSzc2ZkpML1RvbHR3U3Rz?= =?utf-8?B?ckZVaG1GT2dDUmhnS0w1OHQvZk92MGNRNmlhTEFiazh0VHFGYmFJaGxQTGpV?= =?utf-8?B?Rlh5R0RtQjVUMDMvdlZOYjVNQmJYRURXdTB3Ymw2REFwOEViMDZ5ZmZkL0hm?= =?utf-8?B?eE5sQnNtOUZXellKTWt3Q0N2T2RCOUtDd3JqUHJJN203Z3VHQ1BrUVZSNkYr?= =?utf-8?B?eko5aEJXcXo0djZMREtDTUdlUkFOVFVuNTQ0Q2xnQ2ZWbDVhUSt1a2U1OXc1?= =?utf-8?Q?D7PPEQ97i2ctIEVG2a6/S3gaEc5zkh60B0gTRu9?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: toradex.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DB7PR05MB5431.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 038724db-d211-4c2b-03ba-08d97395e0de X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Sep 2021 13:29:40.9013 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: d9995866-0d9b-4251-8315-093f062abab4 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: QgP3qyA1gKCYtZ714eFEv33gdcFD3VmC1sRIuGWoLkjQ3dzoRWgah/AnlilFk+VbhA97xKAwDnA1TJYrChAZATFwZKn+D/ZY4hoQ5AMPU+g= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR05MB8251 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 SGkgT2xla3NhbmRyCgpKdXN0IG9uZSB0aW55IG5pdC1waWNrLiBPdGhlcndpc2UgbG9va3MgZ29v ZCBhbmQgd29ya3MgZ3JlYXQuIFRoYW5rcyEKCk9uIFNhdCwgMjAyMS0wOC0yOCBhdCAxMzoyMyAr MDMwMCwgT2xla3NhbmRyIFN1dm9yb3Ygd3JvdGU6Cj4gRnJvbTogT2xla3NhbmRyIFN1dm9yb3Yg PG9sZWtzYW5kci5zdXZvcm92QHRvcmFkZXguY29tPgo+IAo+IEluaXRpYWwgc3VwcG9ydCBmb3Ig RmFpcmNoaWxkJ3MgOCBiaXQgSTJDIGdwaW8gZXhwYW5kZXIgRlhMNjQwOC4KPiBUaGUgQ09ORklH X0ZYTDY0MDhfR1BJTyBkZWZpbmUgZW5hYmxlcyBzdXBwb3J0IGZvciBzdWNoIGRldmljZXMuCj4g Cj4gQmFzZWQgb246IGh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5lbC5vcmcvcGF0Y2gvOTE0ODQxOS8K PiAKPiBTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgU3V2b3JvdiA8b2xla3NhbmRyLnN1dm9yb3ZA dG9yYWRleC5jb20+CgpIZWhlLgoKPiBSZXZpZXdlZC1ieTogU2ltb24gR2xhc3MgPHNqZ0BjaHJv bWl1bS5vcmc+Cj4gU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIFN1dm9yb3YgPG9sZWtzYW5kci5z dXZvcm92QGZvdW5kcmllcy5pbz4KClRlc3RlZC1ieTogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWwu emlzd2lsZXJAdG9yYWRleC5jb20+Cgo+IC0tLQo+IAo+IENoYW5nZXMgaW4gdjI6IE5vbmUKPiAK PiDCoGRyaXZlcnMvZ3Bpby9LY29uZmlnwqDCoMKgwqDCoMKgwqAgfMKgwqAgNyArCj4gwqBkcml2 ZXJzL2dwaW8vTWFrZWZpbGXCoMKgwqDCoMKgwqAgfMKgwqAgMSArCj4gwqBkcml2ZXJzL2dwaW8v Z3Bpby1meGw2NDA4LmMgfCAzNjYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Cj4gwqAzIGZpbGVzIGNoYW5nZWQsIDM3NCBpbnNlcnRpb25zKCspCj4gwqBjcmVhdGUgbW9kZSAx MDA2NDQgZHJpdmVycy9ncGlvL2dwaW8tZnhsNjQwOC5jCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3Bpby9LY29uZmlnIGIvZHJpdmVycy9ncGlvL0tjb25maWcKPiBpbmRleCA0YTg5YzFhNjJi Li5mNTZlNGNjMjYxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3Bpby9LY29uZmlnCj4gKysrIGIv ZHJpdmVycy9ncGlvL0tjb25maWcKPiBAQCAtMTIzLDYgKzEyMywxMyBAQCBjb25maWcgREE4WFhf R1BJTwo+IMKgwqDCoMKgwqDCoMKgwqBoZWxwCj4gwqDCoMKgwqDCoMKgwqDCoMKgIFRoaXMgZHJp dmVyIHN1cHBvcnRzIHRoZSBEQTh4eCBHUElPIGNvbnRyb2xsZXIKPiDCoAo+ICtjb25maWcgRlhM NjQwOF9HUElPCj4gK8KgwqDCoMKgwqDCoMKgYm9vbCAiRlhMNjQwOCBJMkMgR1BJTyBleHBhbmRl ciBkcml2ZXIiCj4gK8KgwqDCoMKgwqDCoMKgZGVwZW5kcyBvbiBETV9HUElPICYmIERNX0kyQwo+ ICvCoMKgwqDCoMKgwqDCoGhlbHAKPiArwqDCoMKgwqDCoMKgwqDCoCBUaGlzIGRyaXZlciBzdXBw b3J0cyB0aGUgRmFpcmNoaWxkIEZYTDY0MDggZGV2aWNlLiBGWEw2NDA4IGlzIGEKPiArwqDCoMKg wqDCoMKgwqDCoCBmdWxseSBjb25maWd1cmFibGUgOC1iaXQgSTJDLWNvbnRyb2xsZWQgR1BJTyBl eHBhbmRlci4KPiArCj4gwqBjb25maWcgSU5URUxfQlJPQURXRUxMX0dQSU8KPiDCoMKgwqDCoMKg wqDCoMKgYm9vbCAiSW50ZWwgQnJvYWR3ZWxsIEdQSU8gZHJpdmVyIgo+IMKgwqDCoMKgwqDCoMKg wqBkZXBlbmRzIG9uIERNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3Bpby9NYWtlZmlsZSBiL2Ry aXZlcnMvZ3Bpby9NYWtlZmlsZQo+IGluZGV4IDU4ZjQ3MDRmNmIuLjgzZDhiNWM5ZDggMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncGlvL01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9ncGlvL01ha2Vm aWxlCj4gQEAgLTE2LDYgKzE2LDcgQEAgb2JqLSQoQ09ORklHX0FUOTFfR1BJTynCoMKgwqDCoMKg wqDCoCs9IGF0OTFfZ3Bpby5vCj4gwqBvYmotJChDT05GSUdfQVRNRUxfUElPNCnCoMKgwqDCoMKg wqDCoCs9IGF0bWVsX3BpbzQubwo+IMKgb2JqLSQoQ09ORklHX0JDTTYzNDVfR1BJTynCoMKgwqDC oMKgKz0gYmNtNjM0NV9ncGlvLm8KPiDCoG9iai0kKENPTkZJR19DT1JUSU5BX0dQSU8pwqDCoMKg wqDCoCArPSBjb3J0aW5hX2dwaW8ubwo+ICtvYmotJChDT05GSUdfRlhMNjQwOF9HUElPKcKgwqDC oMKgwqArPSBncGlvLWZ4bDY0MDgubwo+IMKgb2JqLSQoQ09ORklHX0lOVEVMX0dQSU8pwqDCoMKg wqDCoMKgwqArPSBpbnRlbF9ncGlvLm8KPiDCoG9iai0kKENPTkZJR19JTlRFTF9JQ0g2X0dQSU8p wqDCoCs9IGludGVsX2ljaDZfZ3Bpby5vCj4gwqBvYmotJChDT05GSUdfSU5URUxfQlJPQURXRUxM X0dQSU8pwqDCoMKgwqDCoCs9IGludGVsX2Jyb2Fkd2VsbF9ncGlvLm8KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncGlvL2dwaW8tZnhsNjQwOC5jIGIvZHJpdmVycy9ncGlvL2dwaW8tZnhsNjQwOC5j Cj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwLi44YTg2ZjMyMzY1Cj4g LS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3Bpby9ncGlvLWZ4bDY0MDguYwo+IEBAIC0w LDAgKzEsMzY2IEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCj4gKy8q Cj4gKyAqwqAgQ29weXJpZ2h0IChDKSAyMDIxIFRvcmFkZXgKPiArICrCoCBDb3B5cmlnaHQgKEMp IDIwMTYgQnJvYWRjb20KPiArICovCj4gKwo+ICsvKioKPiArICogRE9DOiBGWEw2NDA4IEkyQyB0 byBHUElPIGV4cGFuZGVyLgo+ICsgKgo+ICsgKiBUaGlzIGNoaXAgaGFzIDggR1BJTyBsaW5lcyBv dXQgb2YgaXQsIGFuZCBpcyBjb250cm9sbGVkIGJ5IGFuIEkyQwo+ICsgKiBidXMgKGEgcGFpciBv ZiBsaW5lcyksIHByb3ZpZGluZyA0eCBleHBhbnNpb24gb2YgR1BJTyBsaW5lcy4gSXQKPiArICog YWxzbyBwcm92aWRlcyBhbiBpbnRlcnJ1cHQgbGluZSBvdXQgZm9yIG5vdGlmeWluZyBvZiBzdGF0 ZSBjaGFuZ2VzLgo+ICsgKgo+ICsgKiBBbnkgcHJlY29uZmlndXJlZCBzdGF0ZSB3aWxsIGJlIGxl ZnQgaW4gcGxhY2UgdW50aWwgdGhlIEdQSU8gbGluZXMKPiArICogZ2V0IGFjdGl2YXRlZC4gQXQg cG93ZXIgb24sIGV2ZXJ5dGhpbmcgaXMgdHJlYXRlZCBhcyBhbiBpbnB1dCwKPiArICogZGVmYXVs dCBpbnB1dCBpcyBISUdIIGFuZCBwdWxsZWQtdXAsIGFsbCBpbnRlcnJ1cHRzIGFyZSBtYXNrZWQu Cj4gKyAqCj4gKyAqIERvY3VtZW50YXRpb24gY2FuIGJlIGZvdW5kIGF0Ogo+ICsgKiBodHRwczov L3d3dy5mYWlyY2hpbGRzZW1pLmNvbS9kYXRhc2hlZXRzL0ZYL0ZYTDY0MDgucGRmCj4gKyAqCj4g KyAqIFRoaXMgZHJpdmVyIGJhc2VzIG9uOgo+ICsgKiAtIHRoZSBvcmlnaW5hbCBkcml2ZXIgYnkg RXJpYyBBbmhvbHQgPGVyaWNAYW5ob2x0Lm5ldD46Cj4gKyAqwqDCoCBodHRwczovL3BhdGNod29y ay5rZXJuZWwub3JnL3BhdGNoLzkxNDg0MTkvCj4gKyAqIC0gdGhlIFRvcmFkZXggdmVyc2lvbiBi eSBNYXggS3J1bW1lbmFjaGVyIDxtYXgua3J1bW1lbmFjaGVyQHRvcmFkZXguY29tPjoKPiArICrC oMKgIGh0dHA6Ly9naXQudG9yYWRleC5jb20vY2dpdC9saW51eC10b3JhZGV4LmdpdC90cmVlL2Ry aXZlcnMvZ3Bpby9ncGlvLWZ4bDY0MDguYz9oPXRvcmFkZXhfNS40LTIuMy54LWlteAo+ICsgKiAt IHRoZSBVLWJvb3QgUENBOTUzeCBkcml2ZXIgYnkgUGVuZyBGYW4gPHZhbi5mcmVlbml4QGdtYWls LmNvbT46Cj4gKyAqwqDCoCBkcml2ZXJzL2dwaW8vcGNhOTUzeF9ncGlvLmMKPiArICoKPiArICog VE9ETzoKPiArICrCoMKgIC0gQWRkIGludGVycnVwdHMgc3VwcG9ydAo+ICsgKsKgwqAgLSBSZXBs YWNlIGRlcHJlY2F0ZWQgY2FsbGJhY2tzIGRpcmVjdGlvbl9pbnB1dC9vdXRwdXQoKSB3aXRoIHNl dF9mbGFncygpCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgPGNvbW1vbi5oPgo+ICsjaW5jbHVkZSA8 ZG0uaD4KPiArI2luY2x1ZGUgPGRtL2RldmljZV9jb21wYXQuaD4KPiArI2luY2x1ZGUgPGkyYy5o Pgo+ICsjaW5jbHVkZSA8bG9nLmg+Cj4gKyNpbmNsdWRlIDxhc20tZ2VuZXJpYy9ncGlvLmg+Cj4g KyNpbmNsdWRlIDxhc20vZ2xvYmFsX2RhdGEuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5o Pgo+ICsjaW5jbHVkZSA8ZHQtYmluZGluZ3MvZ3Bpby9ncGlvLmg+Cj4gKwo+ICsjZGVmaW5lIFJF R19ERVZJRF9DVFJMwqDCoMKgwqDCoMKgwqDCoMKgMHgwMQo+ICsjIGRlZmluZSBTV19SU1TCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBCSVQoMCkKPiArIyBk ZWZpbmUgUlNUX0lOVMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoEJJVCgxKQo+ICsvKiAw YjEwMSBpcyB0aGUgTWFudWZhY3R1cmVyJ3MgSUQgYXNzaWduZWQgdG8gRmFpcmNoaWxkIGJ5IE5v a2lhICovCj4gKyMgZGVmaW5lIE1GX0lEX0ZBSVJDSElMRMKgwqDCoMKgwqDCoMKgNQo+ICsKPiAr LyogQml0cyBzZXQgaGVyZSBpbmRpY2F0ZSB0aGF0IHRoZSBHUElPIGlzIGFuIG91dHB1dCAqLwo+ ICsjZGVmaW5lIFJFR19JT19ESVLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDB4MDMKPiArCj4g Ky8qCj4gKyAqIEJpdHMgc2V0IGhlcmUsIHdoZW4gdGhlIGNvcnJlc3BvbmRpbmcgYml0IG9mIFJF R19JT19ESVIgaXMgc2V0LCBkcml2ZQo+ICsgKiB0aGUgb3V0cHV0IGhpZ2ggaW5zdGVhZCBvZiBs b3cuCj4gKyAqLwo+ICsjZGVmaW5lIFJFR19PVVRfU1RBVEXCoMKgwqDCoMKgwqDCoMKgwqDCoDB4 MDUKPiArCj4gKy8qIEJpdHMgaGVyZSBtYWtlIHRoZSBvdXRwdXQgSGlnaC1aLCBpbnN0ZWFkIG9m IHRoZSBPVVRQVVQgdmFsdWUgKi8KPiArI2RlZmluZSBSRUdfT1VUX0hJR0hfWsKgwqDCoMKgwqDC oMKgwqDCoDB4MDcKPiArCj4gKy8qCj4gKyAqIEJpdHMgaGVyZSBkZWZpbmUgdGhlIGV4cGVjdGVk IGlucHV0IHN0YXRlIG9mIHRoZSBHUElPLgo+ICsgKiBJTlRFUlJVUFRfU1RBVFVTIGJpdHMgd2ls bCBiZSBzZXQgd2hlbiB0aGUgSU5QVVQgdHJhbnNpdGlvbnMgYXdheQo+ICsgKiBmcm9tIHRoaXMg dmFsdWUuCj4gKyAqLwo+ICsjZGVmaW5lIFJFR19JTl9ERUZBVUxUX1NUQVRFwqDCoMKgMHgwOQo+ ICsKPiArLyoKPiArICogQml0cyBoZXJlIGVuYWJsZSBlaXRoZXIgcHVsbCB1cCBvciBwdWxsIGRv d24gYWNjb3JkaW5nIHRvCj4gKyAqIFJFR19QVUxMX01PREUuCj4gKyAqLwo+ICsjZGVmaW5lIFJF R19QVUxMX0VOQUJMRcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgMHgwYgo+ICsKPiAr LyoKPiArICogQml0cyBzZXQgaGVyZSBzZWxlY3RzIGEgcHVsbC11cC9wdWxsLWRvd24gc3RhdGUg b2YgcGluLCB3aGljaAo+ICsgKiBpcyBjb25maWd1cmVkIGFzIElucHV0IGFuZCB0aGUgY29ycmVz cG9uZGluZyBSRUdfUFVMTF9FTkFCTEUgYml0IGlzCj4gKyAqIHNldC4KPiArICovCj4gKyNkZWZp bmUgUkVHX1BVTExfTU9ERcKgwqDCoMKgwqDCoMKgwqDCoMKgMHgwZAo+ICsKPiArLyogUmV0dXJu cyB0aGUgY3VycmVudCBzdGF0dXMgKDEgPSBISUdIKSBvZiB0aGUgaW5wdXQgcGlucyAqLwo+ICsj ZGVmaW5lIFJFR19JTl9TVEFUVVPCoMKgwqDCoMKgwqDCoMKgwqDCoDB4MGYKPiArCj4gKy8qIE1h c2sgb2YgcGlucyB3aGljaCBjYW4gZ2VuZXJhdGUgaW50ZXJydXB0cyAqLwo+ICsjZGVmaW5lIFJF R19JTlRfTUFTS8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAweDExCj4gKwo+ICsvKiBNYXNrIG9mIHBp bnMgd2hpY2ggaGF2ZSBnZW5lcmF0ZWQgYW4gaW50ZXJydXB0LiBDbGVhcmVkIG9uIHJlYWQgKi8K PiArI2RlZmluZSBSRUdfSU5UX1NUQVRVU8KgwqDCoMKgwqDCoMKgwqDCoDB4MTMKPiArCj4gKy8q IE1hbnVmYWN0dXJlcidzIElEIGdldHRpbmcgZnJvbSBEZXZpY2UgSUQgJiBDdHJsIHJlZ2lzdGVy ICovCj4gK2VudW0gewo+ICvCoMKgwqDCoMKgwqDCoE1GX0lEX01BU0sgPSBHRU5NQVNLKDcsIDUp LAo+ICvCoMKgwqDCoMKgwqDCoE1GX0lEX1NISUZUID0gNSwKPiArfTsKPiArCj4gKy8qIEZpcm13 YXJlIHJldmlzaW9uIGdldHRpbmcgZnJvbSBEZXZpY2UgSUQgJiBDdHJsIHJlZ2lzdGVyICovCj4g K2VudW0gewo+ICvCoMKgwqDCoMKgwqDCoEZXX1JFVl9NQVNLID0gR0VOTUFTSyg0LCAyKSwKPiAr wqDCoMKgwqDCoMKgwqBGV19SRVZfU0hJRlQgPSAyLAo+ICt9Owo+ICsKPiArZW51bSBpb19kaXJl Y3Rpb24gewo+ICvCoMKgwqDCoMKgwqDCoERJUl9JTiwKPiArwqDCoMKgwqDCoMKgwqBESVJfT1VU LAo+ICt9Owo+ICsKPiArLyoKPiArICogc3RydWN0IGZ4bDY0MDhfaW5mbyAtIERhdGEgZm9yIGZ4 bDY0MDgKPiArICoKPiArICogQGRldjogdWRldmljZSBzdHJ1Y3R1cmUgZm9yIHRoZSBkZXZpY2UK PiArICogQGFkZHI6IGkyYyBzbGF2ZSBhZGRyZXNzCj4gKyAqIEByZWdfaW9fZGlyOiBob2xkIHRo ZSB2YWx1ZSBvZiBkaXJlY3Rpb24gcmVnaXN0ZXIKPiArICogQHJlZ19vdXRwdXQ6IGhvbGQgdGhl IHZhbHVlIG9mIG91dHB1dCByZWdpc3Rlcgo+ICsgKi8KPiArc3RydWN0IGZ4bDY0MDhfaW5mbyB7 Cj4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IHVkZXZpY2UgKmRldjsKPiArwqDCoMKgwqDCoMKgwqBp bnQgYWRkcjsKPiArwqDCoMKgwqDCoMKgwqB1OCBkZXZpY2VfaWQ7Cj4gK8KgwqDCoMKgwqDCoMKg dTggcmVnX2lvX2RpcjsKPiArwqDCoMKgwqDCoMKgwqB1OCByZWdfb3V0cHV0Owo+ICt9Owo+ICsK PiArc3RhdGljIGlubGluZSBpbnQgZnhsNjQwOF93cml0ZShzdHJ1Y3QgdWRldmljZSAqZGV2LCBp bnQgcmVnLCB1OCB2YWwpCj4gK3sKPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gZG1faTJjX3dyaXRl KGRldiwgcmVnLCAmdmFsLCAxKTsKPiArfQo+ICsKPiArc3RhdGljIGludCBmeGw2NDA4X3JlYWQo c3RydWN0IHVkZXZpY2UgKmRldiwgaW50IHJlZykKPiArewo+ICvCoMKgwqDCoMKgwqDCoGludCBy ZXQ7Cj4gK8KgwqDCoMKgwqDCoMKgdTggdG1wOwo+ICsKPiArwqDCoMKgwqDCoMKgwqByZXQgPSBk bV9pMmNfcmVhZChkZXYsIHJlZywgJnRtcCwgMSk7Cj4gK8KgwqDCoMKgwqDCoMKgaWYgKCFyZXQp Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldCA9IHRtcDsKPiArCj4gK8KgwqDC oMKgwqDCoMKgcmV0dXJuIHJldDsKPiArfQo+ICsKPiArLyoKPiArICogZnhsNjQwOF9pc19vdXRw dXQoKSAtIGNoZWNrIHdoZXRoZXIgdGhlIGdwaW8gY29uZmlndXJlcyBhcyBlaXRoZXIKPiArICrC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgb3V0cHV0IG9yIGlucHV0 Lgo+ICsgKiBSZXR1cm46IGZhbHNlIC0gaW5wdXQsIHRydWUgLSBvdXRwdXQuCj4gKyAqLwo+ICtz dGF0aWMgYm9vbCBmeGw2NDA4X2lzX291dHB1dChzdHJ1Y3QgdWRldmljZSAqZGV2LCBpbnQgb2Zm c2V0KQo+ICt7Cj4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IGZ4bDY0MDhfaW5mbyAqaW5mbyA9IGRl dl9nZXRfcGxhdChkZXYpOwo+ICsKPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gaW5mby0+cmVnX2lv X2RpciAmIEJJVChvZmZzZXQpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGZ4bDY0MDhfZ2V0X3Zh bHVlKHN0cnVjdCB1ZGV2aWNlICpkZXYsIHVpbnQgb2Zmc2V0KQo+ICt7Cj4gK8KgwqDCoMKgwqDC oMKgaW50IHJldCwgcmVnID0gZnhsNjQwOF9pc19vdXRwdXQoZGV2LCBvZmZzZXQpID8gUkVHX09V VF9TVEFURSA6IFJFR19JTl9TVEFUVVM7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoHJldCA9IGZ4bDY0 MDhfcmVhZChkZXYsIHJlZyk7Cj4gK8KgwqDCoMKgwqDCoMKgaWYgKHJldCA8IDApCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiByZXQ7Cj4gKwo+ICvCoMKgwqDCoMKgwqDC oHJldHVybiAhIShyZXQgJiBCSVQob2Zmc2V0KSk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgZnhs NjQwOF9zZXRfdmFsdWUoc3RydWN0IHVkZXZpY2UgKmRldiwgdWludCBvZmZzZXQsIGludCB2YWx1 ZSkKPiArewo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBmeGw2NDA4X2luZm8gKmluZm8gPSBkZXZf Z2V0X3BsYXQoZGV2KTsKPiArwqDCoMKgwqDCoMKgwqB1OCB2YWw7Cj4gK8KgwqDCoMKgwqDCoMKg aW50IHJldDsKPiArCj4gK8KgwqDCoMKgwqDCoMKgaWYgKHZhbHVlKQo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqB2YWwgPSBpbmZvLT5yZWdfb3V0cHV0IHwgQklUKG9mZnNldCk7Cj4g K8KgwqDCoMKgwqDCoMKgZWxzZQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB2YWwg PSBpbmZvLT5yZWdfb3V0cHV0ICYgfkJJVChvZmZzZXQpOwo+ICsKPiArwqDCoMKgwqDCoMKgwqBy ZXQgPSBmeGw2NDA4X3dyaXRlKGRldiwgUkVHX09VVF9TVEFURSwgdmFsKTsKPiArwqDCoMKgwqDC oMKgwqBpZiAocmV0IDwgMCkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJu IHJldDsKPiArCj4gK8KgwqDCoMKgwqDCoMKgaW5mby0+cmVnX291dHB1dCA9IHZhbDsKPiArCj4g K8KgwqDCoMKgwqDCoMKgcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgZnhsNjQwOF9z ZXRfZGlyZWN0aW9uKHN0cnVjdCB1ZGV2aWNlICpkZXYsIHVpbnQgb2Zmc2V0LAo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBl bnVtIGlvX2RpcmVjdGlvbiBkaXIpCj4gK3sKPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZnhsNjQw OF9pbmZvICppbmZvID0gZGV2X2dldF9wbGF0KGRldik7Cj4gK8KgwqDCoMKgwqDCoMKgdTggdmFs Owo+ICvCoMKgwqDCoMKgwqDCoGludCByZXQ7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoGlmIChkaXIg PT0gRElSX0lOKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB2YWwgPSBpbmZvLT5y ZWdfaW9fZGlyICYgfkJJVChvZmZzZXQpOwo+ICvCoMKgwqDCoMKgwqDCoGVsc2UKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdmFsID0gaW5mby0+cmVnX2lvX2RpciB8IEJJVChvZmZz ZXQpOwo+ICsKPiArwqDCoMKgwqDCoMKgwqByZXQgPSBmeGw2NDA4X3dyaXRlKGRldiwgUkVHX0lP X0RJUiwgdmFsKTsKPiArwqDCoMKgwqDCoMKgwqBpZiAocmV0IDwgMCkKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIHJldDsKPiArCj4gK8KgwqDCoMKgwqDCoMKgaW5mby0+ cmVnX2lvX2RpciA9IHZhbDsKPiArCj4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuIDA7Cj4gK30KPiAr Cj4gK3N0YXRpYyBpbnQgZnhsNjQwOF9kaXJlY3Rpb25faW5wdXQoc3RydWN0IHVkZXZpY2UgKmRl diwgdWludCBvZmZzZXQpCj4gK3sKPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gZnhsNjQwOF9zZXRf ZGlyZWN0aW9uKGRldiwgb2Zmc2V0LCBESVJfSU4pOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGZ4 bDY0MDhfZGlyZWN0aW9uX291dHB1dChzdHJ1Y3QgdWRldmljZSAqZGV2LCB1aW50IG9mZnNldCwg aW50IHZhbHVlKQo+ICt7Cj4gK8KgwqDCoMKgwqDCoMKgaW50IHJldDsKPiArCj4gK8KgwqDCoMKg wqDCoMKgLyogQ29uZmlndXJlIG91dHB1dCB2YWx1ZSAqLwo+ICvCoMKgwqDCoMKgwqDCoHJldCA9 IGZ4bDY0MDhfc2V0X3ZhbHVlKGRldiwgb2Zmc2V0LCB2YWx1ZSk7Cj4gK8KgwqDCoMKgwqDCoMKg aWYgKHJldCA8IDApCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiByZXQ7 Cj4gK8KgwqDCoMKgwqDCoMKgLyogQ29uZmlndXJlIGRpcmVjdGlvbiBhcyBvdXRwdXQgKi8KPiAr wqDCoMKgwqDCoMKgwqBmeGw2NDA4X3NldF9kaXJlY3Rpb24oZGV2LCBvZmZzZXQsIERJUl9PVVQp Owo+ICsKPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBm eGw2NDA4X2dldF9mdW5jdGlvbihzdHJ1Y3QgdWRldmljZSAqZGV2LCB1aW50IG9mZnNldCkKPiAr ewo+ICvCoMKgwqDCoMKgwqDCoGlmIChmeGw2NDA4X2lzX291dHB1dChkZXYsIG9mZnNldCkpCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBHUElPRl9PVVRQVVQ7Cj4gK8Kg wqDCoMKgwqDCoMKgZWxzZQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4g R1BJT0ZfSU5QVVQ7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgZnhsNjQwOF94bGF0ZShzdHJ1Y3Qg dWRldmljZSAqZGV2LCBzdHJ1Y3QgZ3Bpb19kZXNjICpkZXNjLAo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBvZm5vZGVfcGhhbmRsZV9hcmdz ICphcmdzKQo+ICt7Cj4gK8KgwqDCoMKgwqDCoMKgZGVzYy0+b2Zmc2V0ID0gYXJncy0+YXJnc1sw XTsKPiArwqDCoMKgwqDCoMKgwqBkZXNjLT5mbGFncyA9IGFyZ3MtPmFyZ3NbMV0gJiBHUElPX0FD VElWRV9MT1cgPyBHUElPRF9BQ1RJVkVfTE9XIDogMDsKPiArCj4gK8KgwqDCoMKgwqDCoMKgcmV0 dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZG1fZ3Bpb19vcHMgZnhsNjQw OF9vcHMgPSB7Cj4gK8KgwqDCoMKgwqDCoMKgLmRpcmVjdGlvbl9pbnB1dMKgwqDCoMKgwqDCoMKg ID0gZnhsNjQwOF9kaXJlY3Rpb25faW5wdXQsCj4gK8KgwqDCoMKgwqDCoMKgLmRpcmVjdGlvbl9v dXRwdXTCoMKgwqDCoMKgwqAgPSBmeGw2NDA4X2RpcmVjdGlvbl9vdXRwdXQsCj4gK8KgwqDCoMKg wqDCoMKgLmdldF92YWx1ZcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgID0gZnhsNjQwOF9nZXRf dmFsdWUsCj4gK8KgwqDCoMKgwqDCoMKgLnNldF92YWx1ZcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgID0gZnhsNjQwOF9zZXRfdmFsdWUsCj4gK8KgwqDCoMKgwqDCoMKgLmdldF9mdW5jdGlvbsKg wqDCoMKgwqDCoMKgwqDCoMKgID0gZnhsNjQwOF9nZXRfZnVuY3Rpb24sCj4gK8KgwqDCoMKgwqDC oMKgLnhsYXRlwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA9IGZ4bDY0MDhfeGxh dGUsCj4gK307Cj4gKwo+ICtzdGF0aWMgaW50IGZ4bDY0MDhfcHJvYmUoc3RydWN0IHVkZXZpY2Ug KmRldikKPiArewo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBmeGw2NDA4X2luZm8gKmluZm8gPSBk ZXZfZ2V0X3BsYXQoZGV2KTsKPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZ3Bpb19kZXZfcHJpdiAq dWNfcHJpdiA9IGRldl9nZXRfdWNsYXNzX3ByaXYoZGV2KTsKPiArwqDCoMKgwqDCoMKgwqBjaGFy IG5hbWVbMzJdLCBsYWJlbFszMl0sICpzdHI7Cj4gK8KgwqDCoMKgwqDCoMKgaW50IGFkZHI7Cj4g K8KgwqDCoMKgwqDCoMKgaW50IHJldDsKPiArwqDCoMKgwqDCoMKgwqBpbnQgc2l6ZTsKPiArwqDC oMKgwqDCoMKgwqBjb25zdCB1OCAqdG1wOwo+ICvCoMKgwqDCoMKgwqDCoHUzMiB2YWwzMjsKPiAr Cj4gK8KgwqDCoMKgwqDCoMKgYWRkciA9IGRldl9yZWFkX2FkZHIoZGV2KTsKPiArwqDCoMKgwqDC oMKgwqBpZiAoYWRkciA9PSAwKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1 cm4gLUVJTlZBTDsKPiArwqDCoMKgwqDCoMKgwqBpbmZvLT5hZGRyID0gYWRkcjsKPiArCj4gK8Kg wqDCoMKgwqDCoMKgLyoKPiArwqDCoMKgwqDCoMKgwqAgKiBDaGVjayB0aGUgZGV2aWNlIElEIHJl Z2lzdGVyIHRvIHNlZSBpZiBpdCdzIHJlc3BvbmRpbmcuCj4gK8KgwqDCoMKgwqDCoMKgICogVGhp cyBhbHNvIGNsZWFycyBSU1RfSU5UIGFzIGEgc2lkZSBlZmZlY3QsIHNvIHdlIHdvbid0IGdldAo+ ICvCoMKgwqDCoMKgwqDCoCAqIHRoZSAid2UndmUgYmVlbiBwb3dlciBjeWNsZWQiIGludGVycnVw dCBvbmNlIGludGVycnVwdHMKPiArwqDCoMKgwqDCoMKgwqAgKiBiZWluZyBlbmFibGVkLgo+ICvC oMKgwqDCoMKgwqDCoCAqLwo+ICvCoMKgwqDCoMKgwqDCoHJldCA9IGZ4bDY0MDhfcmVhZChkZXYs IFJFR19ERVZJRF9DVFJMKTsKPiArwqDCoMKgwqDCoMKgwqBpZiAocmV0IDwgMCkgewo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkZXZfZXJyKGRldiwgIkZYTDY0MDggcHJvYmUgcmV0 dXJuZWQgJWRcbiIsIHJldCk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVy biByZXQ7Cj4gK8KgwqDCoMKgwqDCoMKgfQo+ICsKPiArwqDCoMKgwqDCoMKgwqBpZiAoKHJldCAm IE1GX0lEX01BU0spID4+IE1GX0lEX1NISUZUICE9IE1GX0lEX0ZBSVJDSElMRCkgewo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkZXZfZXJyKGRldiwgIkZYTDY0MDggcHJvYmU6IHdy b25nIE1hbnVmYWN0dXJlcidzIElEOiAweCUwMnhcbiIsIHJldCk7Cj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoHJldHVybiAtRU5YSU87Cj4gK8KgwqDCoMKgwqDCoMKgfQo+ICvCoMKg wqDCoMKgwqDCoGluZm8tPmRldmljZV9pZCA9IHJldDsKPiArCj4gK8KgwqDCoMKgwqDCoMKgLyoK PiArwqDCoMKgwqDCoMKgwqAgKiBEaXNhYmxlIEhpZ2gtWiBvZiBvdXRwdXRzLCBzbyB0aGF0IHRo ZSBPVVRQVVQgdXBkYXRlcwo+ICvCoMKgwqDCoMKgwqDCoCAqIGFjdHVhbGx5IHRha2UgZWZmZWN0 Lgo+ICvCoMKgwqDCoMKgwqDCoCAqLwo+ICvCoMKgwqDCoMKgwqDCoHJldCA9IGZ4bDY0MDhfd3Jp dGUoZGV2LCBSRUdfT1VUX0hJR0hfWiwgKHU4KTApOwo+ICvCoMKgwqDCoMKgwqDCoGlmIChyZXQg PCAwKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRldl9lcnIoZGV2LCAiRXJy b3Igd3JpdGluZyBIaWdoLVogcmVnaXN0ZXJcbiIpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqByZXR1cm4gcmV0Owo+ICvCoMKgwqDCoMKgwqDCoH0KPiArCj4gK8KgwqDCoMKgwqDC oMKgLyoKPiArwqDCoMKgwqDCoMKgwqAgKiBJZiBjb25maWd1cmVkLCBzZXQgaW5pdGlhbCBvdXRw dXQgc3RhdGUgYW5kIGRpcmVjdGlvbiwKPiArwqDCoMKgwqDCoMKgwqAgKiBvdGhlcndpc2UgcmVh ZCB0aGVtIGZyb20gdGhlIGNoaXAuCj4gK8KgwqDCoMKgwqDCoMKgICovCj4gK8KgwqDCoMKgwqDC oMKgaWYgKGRldl9yZWFkX3UzMihkZXYsICJpbml0aWFsX2lvX2RpciIsICZ2YWwzMikpIHsKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0ID0gZnhsNjQwOF9yZWFkKGRldiwgUkVH X0lPX0RJUik7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmIChyZXQgPCAwKSB7 Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkZXZfZXJy KGRldiwgIkVycm9yIHJlYWRpbmcgZGlyZWN0aW9uIHJlZ2lzdGVyXG4iKTsKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiByZXQ7Cj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgaW5mby0+cmVnX2lvX2RpciA9IHJldDsKPiArwqDCoMKgwqDCoMKgwqB9IGVsc2Ugewo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpbmZvLT5yZWdfaW9fZGlyID0gdmFsMzIgJiAw eEZGOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXQgPSBmeGw2NDA4X3dyaXRl KGRldiwgUkVHX0lPX0RJUiwgaW5mby0+cmVnX2lvX2Rpcik7Cj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGlmIChyZXQgPCAwKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBkZXZfZXJyKGRldiwgIkVycm9yIHNldHRpbmcgZGlyZWN0aW9u IHJlZ2lzdGVyXG4iKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoHJldHVybiByZXQ7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0KPiAr wqDCoMKgwqDCoMKgwqB9Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoGlmIChkZXZfcmVhZF91MzIoZGV2 LCAiaW5pdGlhbF9vdXRwdXQiLCAmdmFsMzIpKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoHJldCA9IGZ4bDY0MDhfcmVhZChkZXYsIFJFR19PVVRfU1RBVEUpOwo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAocmV0IDwgMCkgewo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGV2X2VycihkZXYsICJFcnJvciByZWFkaW5n IG91dHB1dCByZWdpc3RlclxuIik7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqByZXR1cm4gcmV0Owo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqB9Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGluZm8tPnJlZ19vdXRwdXQgPSBy ZXQ7Cj4gK8KgwqDCoMKgwqDCoMKgfSBlbHNlIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgaW5mby0+cmVnX291dHB1dCA9IHZhbDMyICYgMHhGRjsKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgcmV0ID0gZnhsNjQwOF93cml0ZShkZXYsIFJFR19PVVRfU1RBVEUsIGlu Zm8tPnJlZ19vdXRwdXQpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAocmV0 IDwgMCkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ZGV2X2VycihkZXYsICJFcnJvciBzZXR0aW5nIG91dHB1dCByZWdpc3RlclxuIik7Cj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gcmV0Owo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9Cj4gK8KgwqDCoMKgwqDCoMKgfQo+ICsKPiAr wqDCoMKgwqDCoMKgwqB0bXAgPSBkZXZfcmVhZF9wcm9wKGRldiwgImxhYmVsIiwgJnNpemUpOwo+ ICvCoMKgwqDCoMKgwqDCoGlmICh0bXApIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgc2l6ZSA9IG1pbihzaXplLCAoaW50KXNpemVvZihsYWJlbCkgLSAxKTsKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgbWVtY3B5KGxhYmVsLCB0bXAsIHNpemUpOwo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBsYWJlbFtzaXplXSA9ICdcMCc7Cj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoHNucHJpbnRmKG5hbWUsIHNpemVvZihuYW1lKSwgIiVzQCV4XyIs IGxhYmVsLCBpbmZvLT5hZGRyKTsKPiArwqDCoMKgwqDCoMKgwqB9IGVsc2Ugewo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzbnByaW50ZihuYW1lLCBzaXplb2YobmFtZSksICJncGlv QCV4XyIsIGluZm8tPmFkZHIpOwo+ICvCoMKgwqDCoMKgwqDCoH0KPiArCj4gK8KgwqDCoMKgwqDC oMKgc3RyID0gc3RyZHVwKG5hbWUpOwo+ICvCoMKgwqDCoMKgwqDCoGlmICghc3RyKQo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gLUVOT01FTTsKPiArCj4gK8KgwqDCoMKg wqDCoMKgdWNfcHJpdi0+YmFua19uYW1lID0gc3RyOwo+ICvCoMKgwqDCoMKgwqDCoHVjX3ByaXYt PmdwaW9fY291bnQgPSBkZXZfZ2V0X2RyaXZlcl9kYXRhKGRldik7Cj4gK8KgwqDCoMKgwqDCoMKg dWNfcHJpdi0+Z3Bpb19iYXNlID0gLTE7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoGRldl9kYmcoZGV2 LCAiJXMgKEZXIHJldi4gJWxkKSBpcyByZWFkeVxuIiwgc3RyLAoKVGhhdCdzIG9uZSBsIHRvbyBt dWNoIGluIHRoZSAlbGQgd2hpY2ggbXkgZ2NjIDkuMi0yMDE5LjEyIChhcm0tOS4xMCkpIDkuMi4x IDIwMTkxMDI1IGNvbXBsYWlucyBhcyBmb2xsb3dzOgoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGRy aXZlcnMvZ3Bpby9ncGlvLWZ4bDY0MDguYzozNjoKZHJpdmVycy9ncGlvL2dwaW8tZnhsNjQwOC5j OiBJbiBmdW5jdGlvbiDigJhmeGw2NDA4X3Byb2Jl4oCZOgpkcml2ZXJzL2dwaW8vZ3Bpby1meGw2 NDA4LmM6MzQ4OjE1OiB3YXJuaW5nOiBmb3JtYXQg4oCYJWxk4oCZIGV4cGVjdHMgYXJndW1lbnQg b2YgdHlwZSDigJhsb25nIGludOKAmSwgYnV0IGFyZ3VtZW50IDMKaGFzIHR5cGUg4oCYaW504oCZ IFstV2Zvcm1hdD1dCiAgMzQ4IHwgIGRldl9kYmcoZGV2LCAiJXMgKEZXIHJldi4gJWxkKSBpcyBy ZWFkeVxuIiwgc3RyLAogICAgICB8ICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4KICAzNDkgfCAgIChpbmZvLT5kZXZpY2VfaWQgJiBNRl9JRF9NQVNLKSA+PiBNRl9J RF9TSElGVCk7CiAgICAgIHwgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4KICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50CmluY2x1ZGUvZG0vZGV2aWNl X2NvbXBhdC5oOjUwOjEwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmGRldl9wcmlu dGtfZW1pdOKAmQogICA1MCB8ICAgcHJpbnRmKGZtdCwgIyNfX1ZBX0FSR1NfXyk7IFwKICAgICAg fCAgICAgICAgICBefn4KaW5jbHVkZS9kbS9kZXZpY2VfY29tcGF0Lmg6MTE3OjI6IG5vdGU6IGlu IGV4cGFuc2lvbiBvZiBtYWNybyDigJhfX2Rldl9wcmludGvigJkKICAxMTcgfCAgX19kZXZfcHJp bnRrKExPR0xfREVCVUcsIGRldiwgZm10LCAjI19fVkFfQVJHU19fKQogICAgICB8ICBefn5+fn5+ fn5+fn4KZHJpdmVycy9ncGlvL2dwaW8tZnhsNjQwOC5jOjM0ODoyOiBub3RlOiBpbiBleHBhbnNp b24gb2YgbWFjcm8g4oCYZGV2X2RiZ+KAmQogIDM0OCB8ICBkZXZfZGJnKGRldiwgIiVzIChGVyBy ZXYuICVsZCkgaXMgcmVhZHlcbiIsIHN0ciwKICAgICAgfCAgXn5+fn5+fgpkcml2ZXJzL2dwaW8v Z3Bpby1meGw2NDA4LmM6MzQ4OjMwOiBub3RlOiBmb3JtYXQgc3RyaW5nIGlzIGRlZmluZWQgaGVy ZQogIDM0OCB8ICBkZXZfZGJnKGRldiwgIiVzIChGVyByZXYuICVsZCkgaXMgcmVhZHlcbiIsIHN0 ciwKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fl4KICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxvbmcgaW50CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgJWQKCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoChpbmZvLT5kZXZpY2VfaWQgJiBNRl9JRF9NQVNL KSA+PiBNRl9JRF9TSElGVCk7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoHJldHVybiAwOwo+ICt9Cj4g Kwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHVkZXZpY2VfaWQgZnhsNjQwOF9pZHNbXSA9IHsKPiAr wqDCoMKgwqDCoMKgwqB7IC5jb21wYXRpYmxlID0gImZjcyxmeGw2NDA4IiwgLmRhdGEgPSA4IH0s Cj4gK8KgwqDCoMKgwqDCoMKgeyB9Cj4gK307Cj4gKwo+ICtVX0JPT1RfRFJJVkVSKGZ4bDY0MDhf Z3BpbykgPSB7Cj4gK8KgwqDCoMKgwqDCoMKgLm5hbWUgPSAiZnhsNjQwOF9ncGlvIiwKPiArwqDC oMKgwqDCoMKgwqAuaWQgPSBVQ0xBU1NfR1BJTywKPiArwqDCoMKgwqDCoMKgwqAub3BzID0gJmZ4 bDY0MDhfb3BzLAo+ICvCoMKgwqDCoMKgwqDCoC5wcm9iZSA9IGZ4bDY0MDhfcHJvYmUsCj4gK8Kg wqDCoMKgwqDCoMKgLm9mX21hdGNoID0gZnhsNjQwOF9pZHMsCj4gK8KgwqDCoMKgwqDCoMKgLnBs YXRfYXV0byA9IHNpemVvZihzdHJ1Y3QgZnhsNjQwOF9pbmZvKSwKPiArfTsKCkNoZWVycwoKTWFy Y2VsCg==