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=-18.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 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 83243C433EF for ; Fri, 10 Sep 2021 15:59:23 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 39F40611EF for ; Fri, 10 Sep 2021 15:59:23 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 39F40611EF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=foss.st.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From:CC: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=UCmixqN93afmteiSqmHR+RUN+ZfUUXdF+Q/e7hT4Tx8=; b=tgewGrSpuzmoqM+PottLmJcjBJ k3En9gI1mVb1mSSq6Mmg3oQ9Ps685JWUclZ+PeLGcWrY9WDbAq/NWgKHa+02HaFDbvMvF1/SydOBr Q+tff+piTWnh38aZ+fpfRyVWmyKMylXTjPSOWvpwaS3OcI1ut1Ql49rXu7G5RZTcsLB043Yvxf5o/ AgESP8oomI/HA1Vskeh9Ra5d6yjHS9Yxarisdd1Mk+rRg7WBojfDycBFFE5+1RWbPoh/uYxBMcGCr 7/psowgClbA2w0OwmmyXOaIa1CHmL63N/vyEcsMXD2xv50rLkE+7zqmLnhoUrRJPt5Sl2qWR++kUF +DTK+QqQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mOitl-00D4M9-RD; Fri, 10 Sep 2021 15:57:06 +0000 Received: from mx07-00178001.pphosted.com ([185.132.182.106]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mOitf-00D4Kv-UA for linux-arm-kernel@lists.infradead.org; Fri, 10 Sep 2021 15:57:03 +0000 Received: from pps.filterd (m0241204.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.16.1.2/8.16.0.43) with SMTP id 18AF0HsG024013; Fri, 10 Sep 2021 17:56:48 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; h=subject : to : references : cc : from : message-id : date : mime-version : in-reply-to : content-type : content-transfer-encoding; s=selector1; bh=YHy5/s5iKfTYpUoh5deACaw49hjgKNKHhYQQsSz7L8k=; b=NQk5J5LEFsXPhCJEawoO0Doh+BEXubJt3HHBmiEE8hFK7IxUuVnsYNOS+KvSmPARIvD1 WixNL1+ZQCHIktK0k7wsKDx1v/2SFWKCyrSzXW+y1bRen3RRbhB7BRrE+0hJ2YSa6xnO 7LNS2WwYKA6jGph7K/H04TJVEKC+kK5lTI45Abd3HFMiO7YkD/IqRr11kayvXJ5OnanD VlJ41Kxt8TaRe4yl8dyCuzBq4Z4cCEQ2uxZPGAI96oRl+K9hAErYMpv2oFYq88W2XWT7 7uie14b/+WeZ5kEkDJKJK6M1HsJQZV6Bg4py2QURFZz1vZUGaODfralqVz99/hpXcYA/ Rg== Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com with ESMTP id 3b09mdr6yn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 10 Sep 2021 17:56:48 +0200 Received: from euls16034.sgp.st.com (euls16034.sgp.st.com [10.75.44.20]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id F123410002A; Fri, 10 Sep 2021 17:56:46 +0200 (CEST) Received: from Webmail-eu.st.com (sfhdag1node3.st.com [10.75.127.3]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id BB16B22179B; Fri, 10 Sep 2021 17:56:46 +0200 (CEST) Received: from lmecxl0577.lme.st.com (10.75.127.45) by SFHDAG1NODE3.st.com (10.75.127.3) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Fri, 10 Sep 2021 17:56:45 +0200 Subject: Re: [PATCH 4/4] iio: adc: stm32-dfsdm: add scale and offset support To: Jonathan Cameron References: <20200204101008.11411-1-olivier.moysan@st.com> <20200204101008.11411-5-olivier.moysan@st.com> <20200208161847.76c7d6e8@archlinux> <8400827e-5f3d-ad3f-99c8-986934b1a7b8@st.com> <20200214131113.70aa36b8@archlinux> <5b2e74a0-71bd-46d0-0096-b33ff17f780b@st.com> <20200214151011.20111e8c@archlinux> CC: , , , , , , , , , , Arnaud POULIQUEN , Fabrice GASNIER From: Olivier MOYSAN Message-ID: <78f4e4b9-ef4c-982f-7cd3-8d3052d99150@foss.st.com> Date: Fri, 10 Sep 2021 17:56:45 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-Originating-IP: [10.75.127.45] X-ClientProxiedBy: SFHDAG2NODE2.st.com (10.75.127.5) To SFHDAG1NODE3.st.com (10.75.127.3) X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.391,FMLib:17.0.607.475 definitions=2021-09-10_06,2021-09-09_01,2020-04-07_01 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210910_085700_530885_D3DF542E X-CRM114-Status: GOOD ( 42.99 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgSm9uYXRoYW4sCgpPbiA5LzEwLzIxIDQ6MDUgUE0sIE9saXZpZXIgTU9ZU0FOIHdyb3RlOgo+ IAo+IAo+IAo+IFNUIFJlc3RyaWN0ZWQKPiAKPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ IEZyb206IEpvbmF0aGFuIENhbWVyb24gPGppYzIzQGtlcm5lbC5vcmc+Cj4gU2VudDogdmVuZHJl ZGkgMTQgZsOpdnJpZXIgMjAyMCAxNjoxMAo+IFRvOiBPbGl2aWVyIE1PWVNBTiA8b2xpdmllci5t b3lzYW5Ac3QuY29tPgo+IENjOiByb2JoK2R0QGtlcm5lbC5vcmc7IG1hcmsucnV0bGFuZEBhcm0u Y29tOyBrbmFhY2suaEBnbXguZGU7IGxhcnNAbWV0YWZvby5kZTsgZGV2aWNldHJlZUB2Z2VyLmtl cm5lbC5vcmc7IGxpbnV4LWlpb0B2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtl cm5lbC5vcmc7IHBtZWVyd0BwbWVlcncubmV0OyBsaW51eC1zdG0zMkBzdC1tZC1tYWlsbWFuLnN0 b3JtcmVwbHkuY29tOyBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKPiBTdWJq ZWN0OiBSZTogW1BBVENIIDQvNF0gaWlvOiBhZGM6IHN0bTMyLWRmc2RtOiBhZGQgc2NhbGUgYW5k IG9mZnNldCBzdXBwb3J0Cj4gCj4gT24gRnJpLCAxNCBGZWIgMjAyMCAxNDo0OToxOCArMDAwMAo+ IE9saXZpZXIgTU9ZU0FOIDxvbGl2aWVyLm1veXNhbkBzdC5jb20+IHdyb3RlOgo+IAo+PiBIaSBK b25hdGhhbiwKPj4KPj4gT24gMi8xNC8yMCAyOjExIFBNLCBKb25hdGhhbiBDYW1lcm9uIHdyb3Rl Ogo+Pj4gT24gVHVlLCAxMSBGZWIgMjAyMCAxNToxOTowMSArMDAwMAo+Pj4gT2xpdmllciBNT1lT QU4gPG9saXZpZXIubW95c2FuQHN0LmNvbT4gd3JvdGU6Cj4+PiAgIAo+Pj4+IEhpIEpvbmF0aGFu LAo+Pj4+Cj4+Pj4gT24gMi84LzIwIDU6MTggUE0sIEpvbmF0aGFuIENhbWVyb24gd3JvdGU6Cj4+ Pj4+IE9uIFR1ZSwgNCBGZWIgMjAyMCAxMToxMDowOCArMDEwMAo+Pj4+PiBPbGl2aWVyIE1veXNh biA8b2xpdmllci5tb3lzYW5Ac3QuY29tPiB3cm90ZToKPj4+Pj4gICAgICAKPj4+Pj4+IEFkZCBz Y2FsZSBhbmQgb2Zmc2V0IGF0dHJpYnV0ZXMgc3VwcG9ydCB0byBTVE0zMiBERlNETS4KPj4+Pj4+ Cj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBPbGl2aWVyIE1veXNhbiA8b2xpdmllci5tb3lzYW5Ac3Qu Y29tPgo+Pj4+PiBIbW0uIEkgY2FuJ3QgcmVtZW1iZXIgdGhpcyBoaXN0b3J5IG9mIHRoaXMgYnV0 IHdlJ3ZlIGtpbmQgb2YgZW5kZWQKPj4+Pj4gdXAgYmFja3dhcmRzIHdydCB0byBvdGhlciBjb25z dW1lciBkcml2ZXJzLgo+Pj4+Pgo+Pj4+PiBJbiBzb21lIHNlbnNlIHRoaXMgaXMgc2ltaWxhciB0 byB0aGUgYW5hbG9nIGd5cm9zY29wZXMuICBJbiB0aG9zZQo+Pj4+PiB0aGUgY29uc3VtZXIgZHJp dmVyIGlzIHRoZSBneXJvc2NvcGUgd2hpY2ggaXMgY29uc3VtaW5nIHRoZSByYXcKPj4+Pj4gcmVh ZGluZ3MgZnJvbSBhbiBBREMgY29ubmVjdGVkIHRvIHRoZSBjaGFubmVsLiAgVGhpcyByZXN1bHRz IGluIHVzCj4+Pj4+IGdldHRpbmcgcmVhZGluZ3MgcmVwb3J0ZWQgYnkgdGhlIGd5cm9zY29wZSBk cml2ZXIuCj4+Pj4+Cj4+Pj4+IEhlcmUgd2UgaGF2ZSBhIHNpZ21hIGRlbHRhIGNvbnZlcnRvciBj b25zdW1pbmcgdGhlIHB1bHNlIHRyYWluCj4+Pj4+IGZyb20gYSBzaWdtYSBkZWx0YSBkZXZpY2Uu ICBTbyB0aGUgY2hhbm5lbHMgYXJlIHJlcG9ydGVkIGJ5IHRoZQo+Pj4+PiBzaWdtYSBkZWx0YSBy ZWNlaXZlciwgd2hlcmVhcyBpIHRoaW5rIHRoZSBuZWFyZXN0IGVxdWl2YWxlbnQgdG8KPj4+Pj4g dGhlIGFuYWxvZyB2b2x0YWdlIG91dHB1dGluZyBneXJvc2NvcGVzIHdvdWxkIGhhdmUgYmVlbiBp ZiB3ZSBoYWQKPj4+Pj4gcmVwb3J0ZWQgdGhlIGNoYW5uZWwgdmFsdWVzIGF0IHRoZSBzaWdtYSBk ZWx0YSBjb252ZXJ0ZXIuCj4+Pj4gVGhlIERGU0RNIGRyaXZlciBpcyBjdXJyZW50bHkgdXNlZCBh cyBhIGNvbnN1bWVyIG9mIHRoZSBzZCBtb2R1bGF0b3IuCj4+Pj4gVGhlIHNjYWxlIGFuZCBvZmZz ZXQgdmFsdWVzIG9mIHRoZSBjaGFubmVscyBhcmUgYWxyZWFkeSBjb21wdXRlZCBieQo+Pj4+IHRo ZSBERlNETSBkcml2ZXIsIGFuZCBwcm92aWRlZCBieSB0aGlzIGRyaXZlciB0byB0aGUgSUlPIEFC SS4KPj4+PiBIb3dldmVyLCB0aGUgREZTRE0gaGFzIG5vIHZvbHRhZ2UgcmVmZXJlbmNlLCBzbyBp dCBoYXMgdG8gcmV0cmlldmUKPj4+PiBpdCBmcm9tIHNkLW1vZHVsYXRvciBjaGFubmVscywgZm9y IHRoZSBzY2FsZSBmYWN0b3IgY29tcHV0YXRpb24uCj4+Pj4KPj4+PiAgICDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHNjYWxlwqAgb2Zmc2V0Cj4+Pj4gICAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXsKgwqDCoMKgwqAgXgo+ Pj4+ICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgwqDCoMKgIHzCoMKgwqDCoMKgwqAgSUlPIEFC SQo+Pj4+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKwo+Pj4+ICAgIMKgwqDCoMKgwqDCoMKgwqAgKy0tLS0tLS0tLS0tLS0tLSvC oMKgwqDCoMKgwqDCoMKgwqAgKy0tLS0tLS0tLS0tLS0rCj4+Pj4gICAgwqDCoMKgwqDCoMKgwqDC oCB8c2QgZHJpdmVywqDCoMKgwqDCoCB8wqDCoMKgwqDCoMKgwqDCoMKgIHxERlNETSBkcml2ZXIg fAo+Pj4+ICAgIMKgwqDCoMKgwqDCoMKgwqAgKy0tLS0tLS0tLS0tLS0tLSvCoMKgwqDCoMKgwqDC oMKgwqAgKy0tLS0tLS0tLS0tLS0rCj4+Pj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4+Pj4gICAgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBIVwo+Pj4+ICAgIMKgwqDC oMKgwqDCoMKgwqAgKy0tLS0tLS0tLS0tLS0tLSvCoMKgwqDCoMKgwqDCoMKgwqAgKy0tLS0tLS0t LS0tLS0rCj4+Pj4gKy0tLS0tLS0+KyBzZC1tb2R1bGF0b3LCoCArLS0tLS0tLS0tPisgREZTRE0g Ky0tLS0tLS0tPgo+Pj4+IGFuYWxvZ8KgwqAgKy0tLS0tLSstLS0tLS0tLSvCoMKgwqDCoMKgwqDC oMKgwqAgKy0tLS0tLS0tLS0tLS0rIG91dHB1dCBpbnB1dAo+Pj4+IF4KPj4+PiAgICDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCB2cmVmCj4+Pj4gICAgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICsKPj4+Pgo+Pj4+Cj4+Pj4gSXMgaXQgdGhlIHRvcG9sb2d5IHlvdXIgYXJl IGV4cGVjdGluZyA/Cj4+PiBJdCdzIG5vdCB0aGUgb25lIHdlJ2QgZXhwZWN0IGlmIHdlIGFyZSBh bGlnbmluZyB3aXRoIHNpbWlsYXIgY2FzZXMKPj4+IGVsc2V3aGVyZSBpbiBJSU8uICBGb3IgZXhh bXBsZSwgaWYgd2UgYXR0YWNoIGFuIGFuYWxvZyBhY2NlbGVyb21ldGVyCj4+PiB0byBhbiBBREMs IHdlIHJlcG9ydCB0aGUgYWNjZWwgY2hhbm5lbHMgb24gdGhlIGFjY2VsZXJvbWV0ZXIgbm90IHRo ZQo+Pj4gQURDLiAgVGhlIGVxdWl2YWxlbnQgd291bGQgYmUgdG8gc2VlIHRoZSBERlNETSBhcyBw cm92aWRpbmcgYQo+Pj4gY29udmVyc2lvbiBzZXJ2aWNlIHRvIHRoZSBTRCBkZXZpY2Ugd2hpY2gg aXMgYWN0dWFsbHkgZXhlY3V0aW5nIHRoZQo+Pj4gbWVhc3VyZW1lbnQgYW5kIGhhcyB0aGUgaW5w dXQgY2hhbm5lbHMuCj4+Pgo+Pj4KPj4+ICAgwqDCoMKgwqDCoMKgwqDCoCBzY2FsZcKgIG9mZnNl dCAgcmF3Cj4+PiAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgIF7CoMKgwqDCoMKgIF4gICAgICBeCj4+ PiAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgwqDCoMKgIHzCoMKgwqDCoCAgfCAgwqDCoCAg ICAgICAgICAgICAgICAgICAgICAgICAgSUlPIEFCSQo+Pj4gICAgKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4+PiAgICAgwqDC oMKgwqDCoMKgwqDCoCArLS0tLS0tLS0tLS0tLS0tK8KgwqDCoMKgwqDCoMKgwqDCoCArLS0tLS0t LS0tLS0tLSsKPj4+ICAgICDCoMKgwqDCoMKgwqDCoMKgIHxzZCBkcml2ZXLCoMKgwqDCoMKgIHzC oMKgwqDCoMKgwqDCoMKgwqAgfERGU0RNIGRyaXZlciB8Cj4+PiAgICAgwqDCoMKgwqDCoMKgwqDC oCArLS0tLS0tLS0tLS0tLS0tK8KgwqDCoMKgwqDCoMKgwqDCoCArLS0tLS0tLS0tLS0tLSsKPj4+ ICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKwo+Pj4gICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgSFcKPj4+ICAgICDCoMKgwqDCoMKgwqDCoMKgICstLS0tLS0tLS0t LS0tLS0rwqDCoMKgwqDCoMKgwqDCoMKgICstLS0tLS0tLS0tLS0tKwo+Pj4gICAgKy0tLS0tLS0+ KyBzZC1tb2R1bGF0b3LCoCArLS0tLS0tLS0tPisgREZTRE0gKy0tLS0tLS0tPgo+Pj4gICAgYW5h bG9nwqDCoCArLS0tLS0tKy0tLS0tLS0tK8KgwqDCoMKgwqDCoMKgwqDCoCArLS0tLS0tLS0tLS0t LSsgb3V0cHV0Cj4+PiAgICBpbnB1dMKgwqDCoMKgwqDCoMKgwqDCoMKgIF4KPj4+ICAgICDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCB2cmVmCj4+Pj4gICAgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgICsKPj4+PiAgIAo+PiBUaGFua3MgZm9yIHlvdXIgY2xhcmlmaWNhdGlv bi4KPj4gb2ssIG1vdmluZyB0byB0aGlzIGxvZ2ljIGlzIGEgc2lnbmlmaWNhbnQgY2hhbmdlLgo+ PiBJIG5lZWQgdG8gZXZhbHVhdGUgZnVydGhlciB0aGUgaW1wYWN0IG9uIHRoZSBkZnNkbSBkcml2 ZXIuCj4gCj4gVW5kZXJzdG9vZCEgIElmIHdlIGNhbid0IGRvIGl0IHdpdGhvdXQgcG90ZW50aWFs bHkgYnJlYWtpbmcgdXNlcnMgdGhlbiBzdWNoIGlzIGxpZmUuCj4gCj4gSm9uYXRoYW4KPiAKCkkg Y29tZSBiYWNrIHRvIHRoaXMgb2xkLCBidXQgc3RpbGwgdmFsaWQgdG9waWMuCllvdSBtZW50aW9u ZWQgdGhlIGV4YW1wbGUgb2YgYW5hbG9nIGd5cm9zY29wZXMgaW4gYSBwcmV2aW91cyBtZXNzYWdl LgpMb29raW5nIGF0IGd5cm9zY29wZSBkcml2ZXJzLCBJIGZvdW5kIHJjYXItZ3lyb2FkYyBkcml2 ZXIgd2hpY2ggc2hvd3MgCnJlcXVpcmVtZW50cyBzaW1pbGFyIHRvIGRmc2RtIG5lZWRzOgpodHRw czovL3d3dy5rZXJuZWwub3JnL2RvYy9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mv aWlvL2FkYy9yZW5lc2FzJTJDcmNhci1neXJvYWRjLnlhbWwKCnJjYXItZ3lyb2FkYyBkcml2ZXIg bWFpbiBjaGFyYWN0ZXJpc2l0aWNzOgotIHRoZSBwYXJlbnQgZGV2aWNlIChneXJvYWRjKSBpcyBh IGNvbnN1bWVyIG9mIHN1YiBkZXZpY2VzIChTUEkgQURDcykKLSB0aGUgY2hhbm5lbHMgYXJlIHBv cHVsYXRlZCBmcm9tIHRoZSBzdWIgZGV2aWNlcwotIHRoZSBpaW8gZGV2aWNlIGlzIGFzc29jaWF0 ZWQgdG8gdGhlIHBhcmVudCBkZXZpY2UKCgpJIHRvb2sgdGhlIGV4YW1wbGUgb2YgZ3lyb2FkYyB0 byByZWNvbnNpZGVyIGRmc2RtIHRvcG9sb2d5IGFuZCBleHBsb3JlIApzb21lIHZhcmlhbnRzIGFj Y29yZGluZyB0byBJSU8gZGV2aWNlcyB1c2UuCgoxKSBjdXJyZW50IHRvcG9sb2d5OiBvbmUgSUlP IGRldmljZSBwZXIgU0QgbW9kdWxhdG9yIGFuZCBvbmUgaWlvIGRldmljZSAKcGVyIERGU0RNIGZp bHRlcgogICAgIFRoZSBERlNETSBpcyB1c2VkIGFzIGEgY29uc3VtZXIgb2YgU0QgbW9kdWxhdG9y IHRocm91Z2ggdGhlIGh3CiAgICAgY29uc3VtZXIgQVBJLgogICAgICogY29ucwogICAgICAgICAt IFNEIG1vZHVsYXRvciBhbmQgREZTRE0gZmlsdGVyIGhhdmUgdGhlaXIgb3duIGNoYW5uZWwKICAg ICAgICAgc3BlY2lmaWNhdGlvbi4KICAgICAgICAgLSBERlNETSByZXRyaWV2ZXMgY2hhbm5lbHMg c2NhbGUgaW5mb3JtYXRpb24gZnJvbSBTRAogICAgICAgICBtb2R1bGF0b3IgdG8gaW5pdGlhbGl6 ZWQgaXRzIGNoYW5uZWxzCiAgICAgICAgIC0gU0QgbW9kdWxhdG9yIElJTyBzeXNmcyBpbnRlcmZh Y2UgaXMgdXNlbGVzcwoKKy0tLS0tLS0tLS0tLSsgICAgICstLS0tLS0tKyAgICAgKy0tLS0tLS0t LSsgIHN5c2ZzCnwgc2QwIGlpb2RldiB8IC0tPiB8IGNoYW4wIHwgLS0+IHwgZmlsdGVyMCB8IC0t LS0tLS0+CistLS0tLS0tLS0tLS0rICAgICArLS0tLS0tLSsgICAgICstLS0tLS0tLS0rCiAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KICAgfCBzeXNmcyAgICAgICAgICAgICAg ICAgICAgICAgICAgfAogICB2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CistLS0t LS0tLS0tLS0rICAgICArLS0tLS0tLSsgICAgICAgfAp8IHNkMSBpaW9kZXYgfCAtLT4gfCBjaGFu MSB8IC0tLS0tLSsKKy0tLS0tLS0tLS0tLSsgICAgICstLS0tLS0tKwogICB8CiAgIHwgc3lzZnMK ICAgdgoKCjIpICJjb252ZXJzaW9uIHNlcnZpY2UiIHRvcG9sb2d5OiBvbmUgSUlPIGRldmljZSBw ZXIgU0QgbW9kdWxhdG9yCiAgICAgKiBjb25zCiAgICAgICAgIC0gRGF0YSB0cmFuc2ZlcnM6IGlu IHRoaXMgY2FzZSB0aGUgY29udmVydGVkIGRhdGEgZnJvbQogICAgICAgICBERlNETSBmaWx0ZXIg aGF2ZSB0byBiZSBzZW50IGJhY2sgdG8gU0QgbW9kdWxhdG9yIHRvIGJlIAkKCWF2YWlsYWJsZSBv biBzeXNmcyBpbnRlcmZhY2UuCiAgICAgICAgIC0gU2NhbiBtb2RlOiB0aGlzIHRvcG9sb2d5IHNl ZW1zIG5vdCBjb21wYXRpYmxlIHdpdGggc2NhbgogICAgICAgICBtb2RlLCB3aGVyZSBtdWx0aXBs ZXhlZCBjaGFubmVscyBhcmUgZXhwZWN0ZWQgYXJlIG9uCglJSU8gZGV2aWNlIGludGVyZmFjZS4K Cgk9PiBJIGRvbid0IGZpbmQgYSBwcm9wZXIgd2F5IHRvIGFkZHJlc3Mgc2NhbiBtb2RlIHdpdGgg bXVsdGkgU0QKCW1vZHVsYXRvciBjb25uZWN0ZWQgdG8gb25lIERGU00gZmlsdGVyCgorLS0tLS0t LS0tLS0tKyAgICAgICstLS0tLS0tKyAgICAgKy0tLS0tLS0tLSsKfCBzZDAgaWlvZGV2IHwgPC0t PiB8IGNoYW4wIHwgPC0+IHwgZmlsdGVyMCB8CistLS0tLS0tLS0tLS0rICAgICAgKy0tLS0tLS0r ICAgICArLS0tLS0tLS0tKwogICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgog ICB8IHN5c2ZzICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICB2ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfAorLS0tLS0tLS0tLS0tKyAgICAgICstLS0tLS0tKyAgICAg ICB8Cnwgc2QxIGlpb2RldiB8IDwtLT4gfCBjaGFuMSB8IDwtLS0tLSsKKy0tLS0tLS0tLS0tLSsg ICAgICArLS0tLS0tLSsKICAgfAogICB8IHN5c2ZzCiAgIHYKCgozKSBneXJvYWRjIGxpa2UgdG9w b2xvZ3k6IG9uZSBpaW8gZGV2aWNlIHBlciBERlNETSBmaWx0ZXIKKG5vIFNEIG1vZHVsYXRvciBp aW8gZGV2aWNlIHJlZ2lzdGVyZWQpCiAgICAgRm9yIERGU0RNIHNjYWxlIGFuZCBvZmZzZXQsIHRo ZSByZXF1aXJlZCBpbmZvcm1hdGlvbiBhcmUgU0QKICAgICBtb2R1bGF0b3IgcmVmZXJlbmNlIHZv bHRhZ2UgYW5kIGNoYW5uZWwgdHlwZXMuCgogICAgIHZvbHRhZ2UgcmVmZXJlbmNlOiB0aGUgcmVn dWxhdG9yIHZvbHRhZ2UgY2FuIGJlIHJldHJpZXZlZCBhcyBpdAogICAgIGlzIGRvbmUgaW4gIGd5 cm9hZGMgZHJpdmVyLgogICAgIE1heWJlIHdlIGNhbiBkcm9wcGVkIG1lcmVseSBTRCBtb2R1bGF0 b3IsIGFuZCBkZXNjcmliZSB2b2x0YWdlCiAgICAgYXMgYSBwcm9wZXJ0eSBvZiB0aGUgY2hhbm5l bCAodGhyb3VnaCBnZW5lcmljIGNoYW5uZWwgYmluZGluZykKICAgICBUaGlzIG1heSBiZSB0b28g cmVzdHJpY3RpdmUgaWYgbW9yZSBoYXJkd2FyZSBoYXMgdG8gYmUKICAgICBjb25maWd1cmVkIGlu IHRoZSBTRCBtb2R1bGF0b3IsIHlldC4KCiAgICAgY2hhbm5lbCB0eXBlOiBJSU8gZ2VuZXJpYyBj aGFubmVsIGJpbmRpbmcgY291bGQgYmUgdXNlZCBoZXJlCiAgICAgaW5zdGVhZCBvZiBwcm9wcmll dGFyeSBwcm9wZXJ0aWVzCiAgICAgdG8gZGVzY3JpYmUgdGhlIGNoYW5uZWxzCgogICAgIGJpbmRp bmcgc2FtcGxlOgogICAgIGRmc2RtX3BkbTE6IGZpbHRlckAxIHsKICAgICAgICAgY29tcGF0aWJs ZSA9ICJzdCxzdG0zMi1kZnNkbS1hZGMiOwogICAgICAgICByZWcgPSA8MT47CiAgICAgICAgIGlu dGVycnVwdHMgPSA8R0lDX1NQSSAxMTEgSVJRX1RZUEVfTEVWRUxfSElHSD47CiAgICAgICAgIGRt YXMgPSA8JmRtYW11eDEgMTAyIDB4NDAwIDB4MDE+OwogICAgICAgICBkbWEtbmFtZXMgPSAicngi OwogICAgICAgICBzdCxmaWx0ZXItb3JkZXIgPSA8MT47CgogICAgICAgICBjaGFubmVsQDIgewog ICAgICAgICAgICAgcmVnID0gPDI+OwogICAgICAgICAgICAgbGFiZWwgPSAiaW4yIjsKICAgICAg ICAgICAgIHN0LGFkYy1jaGFubmVsLXR5cGVzID0gIlNQSV9SIjsKICAgICAgICAgICAgIHN0LGFk Yy1jaGFubmVsLWNsay1zcmMgPSAiQ0xLT1VUX0YiOwoKICAgICAgICAgICAgIHNkQDAgeyAgICA/ CiAgICAgICAgICAgICAgICAgcmVnID0gPDA+OwogICAgICAgICAgICAgICAgIGNvbXBhdGlibGUg PSAic2QtbW9kIjsKICAgICAgICAgICAgICAgICB2cmVmLXN1cHBseSA9IDwmdnJlZj47CiAgICAg ICAgICAgICB9OwogICAgICAgICB9OwogICAgIH07CgogICAgICogY29ucwogICAgICAgICAtIFRo ZSBzdWIgZGV2aWNlcyBhcmUgZW1iZWRkZWQgaW4gdGhlIGRyaXZlciBhbmQgYXJlIG5vdAogICAg ICAgICBiYXNlZCBvbiBnZW5lcmFsIGRldmljZSBBUEkuCiAgICAgICAgIEFsdGVybmF0aXZlbHks IGlmIHdlIHdhbnQgdG8gdXNlIHN0YW5kYXJkIGRldmljZSBtb2RlbAogICAgICAgICBhbmQgYXZv aWQgdGhlIGNyZWF0aW9uIG9mIGFuIHVucmVsZXZhbnQgSUlPIGRldmljZSBmb3IKICAgICAgICAg U0QgbW9kdWxhdG9yLCBhIHNwZWNpZmljIHR5cGUgb2YgZGV2aWNlIG1heSBiZQogICAgICAgICBw cm92aWRlZCBieSBJSU8gZnJhbWV3b3JrLiBUaGlzIGNvdWxkIGJlIGEga2luZCBvZgogICAgICAg ICAiYmFja2VuZCIgZGV2aWNlIHdpdGhvdXQgSUlPIHN5c2ZzIGludGVyZmFjZSBhdHRhY2hlZC4K CiAgICAgPT4gVGhpcyBzb2x1dGlvbiBjb3VsZCBiZSBhcHBsaWNhYmxlIGJ1dCBzb21lIGRldGFp bHMgaW4gdGhlCiAgICAgaW1wbGVtZW50YXRpb24gd2lsbCBoYXZlIHRvIGJlIGNsYXJpZmllZCBm dXJ0aGVyLgogICAgIE1heSB3ZSBjb25zaWRlciBhZGRpbmcgYSAiYmFja2VuZCIgZGV2aWNlIHdp dGhvdXQgSUlPIGludGVyZmFjZQogICAgIGluIHRoZSBJSU8gZnJhbWV3b3JrID8KICAgICBNYXkg dGhlIFNEIG1vZHVsYXRvciBiZSBkcm9wcGVkID8KCistLS0tLSsgICAgICstLS0tLS0tKyAgICAg Ky0tLS0tLS0tLS0tLS0tLS0rICBzeXNmcwp8IHNkMCB8IC0tPiB8IGNoYW4wIHwgLS0+IHwgZmls dGVyMCBpaW9kZXYgfCAtLS0tLS0tPgorLS0tLS0rICAgICArLS0tLS0tLSsgICAgICstLS0tLS0t LS0tLS0tLS0tKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorLS0tLS0rICAg ICArLS0tLS0tLSsgICAgICAgfAp8IHNkMSB8IC0tPiB8IGNoYW4xIHwgLS0tLS0tKworLS0tLS0r ICAgICArLS0tLS0tLSsKCgpIZXJlIHRoZXJlIGlzIGEgcG9pbnQgdGhhdCBuZWVkcyB0byBiZSBj bGFyaWZpZWQgaW4gcmVsYXRpb24gdG8gdGhlIApwcmV2aW91cyBkaXNjdXNzaW9ucyBJIHRoaW5r LgpJZiBJIHJlZmVyIHRvIHRoZSBsYXN0IGNvbW1lbnQgb2YgdGhlIGN1cnJlbnQgdGhyZWFkLCBJ IHVuZGVyc3RhbmQgdGhhdCAKeW91IHdlcmUgZXhwZWN0aW5nIHRoZSBJSU8gc3lzZnMgaW50ZXJm YWNlIHRvIGJlIGF0dGFjaGVkIHRvIHRoZSBTRCAKbW9kdWxhdG9yLiAoc29sdXRpb24gMikKRm9y IHRoZSBneXJvYWRjLCB0aGUgY2hhbm5lbHMgYXJlIGluZGVlZCBwb3B1bGF0ZWQgYnkgdGhlIHN1 YiBkZXZpY2VzLiAKSG93ZXZlciB0aGUgSUlPIGRldmljZSBjb3JyZXNwb25kcyB0byB0aGUgQURD IGNvbnN1bWVyIGFuZCBub3QgdGhlIEFEQ3MgCnRoZW1zZWx2ZXMuIChzb2x1dGlvbiAzKQoKV2hh dCBpcyB0aGUgdGhlIHByZWZlcnJlZCBhcHByb2FjaCBmb3IgeW91ID8KClRoYW5rcyBmb3IgeW91 ciBmZWVkYmFjawpCZXN0IHJlZ2FyZHMKT2xpdmllcgoKCj4+Cj4+IFJlZ2FyZHMKPj4gT2xpdmll cgo+Pj4+IElmIG5vdCwgSSBwcm9iYWJseSBtaXNzZWRzb21ldGhpbmcuIENvdWxkIHlvdSBwbGVh c2UgY2xhcmlmeSB0aGlzIHBvaW50ID8KPj4+Pgo+Pj4+IFJlZ2FyZHMKPj4+PiBPbGl2aWVyCj4+ Pj4+IFRoaXMgd2Fzbid0IHJlYWxseSBhbiBpc3N1ZSB3aGVuIHRoZSBvbmx5IHZhbHVlcyBhdmFp bGFibGUgd2VyZQo+Pj4+PiByYXcsIGJ1dCBpZiB3ZSBhcmUgYWRkaW5nIHNjYWxlIGFuZCBvZmZz ZXQsIHRoZXkgYXJlIHRoaW5ncyB0aGF0Cj4+Pj4+IGJlbG9uZyB0byB0aGUgYWQxMjAxIGZvciBl eGFtcGxlLCBub3QgdGhlIHVwc3RyZWFtIHN0bTMyLWRmc2RtIHVuaXQuCj4+Pj4+Cj4+Pj4+IFRo aW5raW5nIG9mIGl0IGFub3RoZXIgd2F5LCB3ZSBkb24ndCByZXBvcnQgYW4gU1BJIEFEQyBvdXRw dXQgaW4KPj4+Pj4gdGhlIGRyaXZlciBmb3IgdGhlIFNQSSBtYXN0ZXIuCj4+Pj4+Cj4+Pj4+IENv dWxkIHdlIGZsaXAgaXQgYXJvdW5kIHdpdGhvdXQgYnJlYWtpbmcgYW55dGhpbmc/Cj4+Pj4+Cj4+ Pj4+IEpvbmF0aGFuCj4+Pj4+ICAgICAgCj4+Pj4+PiAtLS0KPj4+Pj4+ICAgICBkcml2ZXJzL2lp by9hZGMvc3RtMzItZGZzZG0tYWRjLmMgfCAxMDUgKysrKysrKysrKysrKysrKysrKysrKysrKysr KystCj4+Pj4+PiAgICAgMSBmaWxlIGNoYW5nZWQsIDEwMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0 aW9ucygtKQo+Pj4+Pj4KPj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9hZGMvc3RtMzIt ZGZzZG0tYWRjLmMKPj4+Pj4+IGIvZHJpdmVycy9paW8vYWRjL3N0bTMyLWRmc2RtLWFkYy5jCj4+ Pj4+PiBpbmRleCAwN2I5ZGZkZjhlNzYuLmI4NWZkM2U5MDQ5NiAxMDA2NDQKPj4+Pj4+IC0tLSBh L2RyaXZlcnMvaWlvL2FkYy9zdG0zMi1kZnNkbS1hZGMuYwo+Pj4+Pj4gKysrIGIvZHJpdmVycy9p aW8vYWRjL3N0bTMyLWRmc2RtLWFkYy5jCj4+Pj4+PiBAQCAtMTAsNiArMTAsNyBAQAo+Pj4+Pj4g ICAgICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgo+Pj4+Pj4gICAgICNpbmNsdWRlIDxs aW51eC9paW8vYWRjL3N0bTMyLWRmc2RtLWFkYy5oPgo+Pj4+Pj4gICAgICNpbmNsdWRlIDxsaW51 eC9paW8vYnVmZmVyLmg+Cj4+Pj4+PiArI2luY2x1ZGUgPGxpbnV4L2lpby9jb25zdW1lci5oPgo+ Pj4+Pj4gICAgICNpbmNsdWRlIDxsaW51eC9paW8vaHctY29uc3VtZXIuaD4KPj4+Pj4+ICAgICAj aW5jbHVkZSA8bGludXgvaWlvL3N5c2ZzLmg+Cj4+Pj4+PiAgICAgI2luY2x1ZGUgPGxpbnV4L2lp by90aW1lci9zdG0zMi1scHRpbS10cmlnZ2VyLmg+Cj4+Pj4+PiBAQCAtNjcsNiArNjgsMTMgQEAg c3RydWN0IHN0bTMyX2Rmc2RtX2Rldl9kYXRhIHsKPj4+Pj4+ICAgICAJY29uc3Qgc3RydWN0IHJl Z21hcF9jb25maWcgKnJlZ21hcF9jZmc7Cj4+Pj4+PiAgICAgfTsKPj4+Pj4+ICAgICAKPj4+Pj4+ ICtzdHJ1Y3Qgc3RtMzJfZGZzZG1fc2RfY2hhbl9pbmZvIHsKPj4+Pj4+ICsJaW50IHNjYWxlX3Zh bDsKPj4+Pj4+ICsJaW50IHNjYWxlX3ZhbDI7Cj4+Pj4+PiArCWludCBvZmZzZXQ7Cj4+Pj4+PiAr CXVuc2lnbmVkIGludCBkaWZmZXJlbnRpYWw7Cj4+Pj4+PiArfTsKPj4+Pj4+ICsKPj4+Pj4+ICAg ICBzdHJ1Y3Qgc3RtMzJfZGZzZG1fYWRjIHsKPj4+Pj4+ICAgICAJc3RydWN0IHN0bTMyX2Rmc2Rt ICpkZnNkbTsKPj4+Pj4+ICAgICAJY29uc3Qgc3RydWN0IHN0bTMyX2Rmc2RtX2Rldl9kYXRhICpk ZXZfZGF0YTsgQEAgLTc5LDYgKzg3LDcKPj4+Pj4+IEBAIHN0cnVjdCBzdG0zMl9kZnNkbV9hZGMg ewo+Pj4+Pj4gICAgIAlzdHJ1Y3QgaWlvX2h3X2NvbnN1bWVyICpod2M7Cj4+Pj4+PiAgICAgCXN0 cnVjdCBjb21wbGV0aW9uIGNvbXBsZXRpb247Cj4+Pj4+PiAgICAgCXUzMiAqYnVmZmVyOwo+Pj4+ Pj4gKwlzdHJ1Y3Qgc3RtMzJfZGZzZG1fc2RfY2hhbl9pbmZvICpzZF9jaGFuOwo+Pj4+Pj4gICAg IAo+Pj4+Pj4gICAgIAkvKiBBdWRpbyBzcGVjaWZpYyAqLwo+Pj4+Pj4gICAgIAl1bnNpZ25lZCBp bnQgc3BpX2ZyZXE7ICAvKiBTUEkgYnVzIGNsb2NrIGZyZXF1ZW5jeSAqLyBAQAo+Pj4+Pj4gLTEy NzEsNyArMTI4MCwxMCBAQCBzdGF0aWMgaW50IHN0bTMyX2Rmc2RtX3JlYWRfcmF3KHN0cnVjdCBp aW9fZGV2ICppbmRpb19kZXYsCj4+Pj4+PiAgICAgCQkJCWludCAqdmFsMiwgbG9uZyBtYXNrKQo+ Pj4+Pj4gICAgIHsKPj4+Pj4+ICAgICAJc3RydWN0IHN0bTMyX2Rmc2RtX2FkYyAqYWRjID0gaWlv X3ByaXYoaW5kaW9fZGV2KTsKPj4+Pj4+IC0JaW50IHJldDsKPj4+Pj4+ICsJc3RydWN0IHN0bTMy X2Rmc2RtX2ZpbHRlciAqZmwgPSAmYWRjLT5kZnNkbS0+ZmxfbGlzdFthZGMtPmZsX2lkXTsKPj4+ Pj4+ICsJc3RydWN0IHN0bTMyX2Rmc2RtX2ZpbHRlcl9vc3IgKmZsbyA9ICZmbC0+ZmxvW2ZsLT5m YXN0XTsKPj4+Pj4+ICsJdTMyIG1heCA9IGZsby0+bWF4IDw8IChmbG8tPmxzaGlmdCAtIGNoYW4t PnNjYW5fdHlwZS5zaGlmdCk7Cj4+Pj4+PiArCWludCByZXQsIGlkeCA9IGNoYW4tPnNjYW5faW5k ZXg7Cj4+Pj4+PiAgICAgCj4+Pj4+PiAgICAgCXN3aXRjaCAobWFzaykgewo+Pj4+Pj4gICAgIAlj YXNlIElJT19DSEFOX0lORk9fUkFXOgo+Pj4+Pj4gQEAgLTEzMDcsNiArMTMxOSw0MSBAQCBzdGF0 aWMgaW50IHN0bTMyX2Rmc2RtX3JlYWRfcmF3KHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYsCj4+ Pj4+PiAgICAgCQkqdmFsID0gYWRjLT5zYW1wbGVfZnJlcTsKPj4+Pj4+ICAgICAKPj4+Pj4+ICAg ICAJCXJldHVybiBJSU9fVkFMX0lOVDsKPj4+Pj4+ICsKPj4+Pj4+ICsJY2FzZSBJSU9fQ0hBTl9J TkZPX1NDQUxFOgo+Pj4+Pj4gKwkJLyoKPj4+Pj4+ICsJCSAqIFNjYWxlIGlzIGV4cHJlc3NlZCBp biBtVi4KPj4+Pj4+ICsJCSAqIFdoZW4gZmFzdCBtb2RlIGlzIGRpc2FibGVkLCBhY3R1YWwgcmVz b2x1dGlvbiBtYXkgYmUgbG93ZXIKPj4+Pj4+ICsJCSAqIHRoYW4gMl5uLCB3aGVyZSBuPXJlYWxi aXRzLTEuCj4+Pj4+PiArCQkgKiBUaGlzIGxlYWRzIHRvIHVuZGVyZXN0aW1hdGluZyBpbnB1dCB2 b2x0YWdlLiBUbwo+Pj4+Pj4gKwkJICogY29tcGVuc2F0ZSB0aGlzIGRldmlhdGlvbiwgdGhlIHZv bHRhZ2UgcmVmZXJlbmNlIGNhbiBiZQo+Pj4+Pj4gKwkJICogY29ycmVjdGVkIHdpdGggYSBmYWN0 b3IgPSByZWFsYml0cyByZXNvbHV0aW9uIC8gYWN0dWFsIG1heAo+Pj4+Pj4gKwkJICovCj4+Pj4+ PiArCQkqdmFsID0gZGl2X3U2NCgodTY0KWFkYy0+c2RfY2hhbltpZHhdLnNjYWxlX3ZhbCAqCj4+ Pj4+PiArCQkJICAgICAgICh1NjQpQklUKERGU0RNX0RBVEFfUkVTIC0gMSksIG1heCk7Cj4+Pj4+ PiArCQkqdmFsMiA9IGNoYW4tPnNjYW5fdHlwZS5yZWFsYml0czsKPj4+Pj4+ICsJCWlmIChhZGMt PnNkX2NoYW5baWR4XS5kaWZmZXJlbnRpYWwpCj4+Pj4+PiArCQkJKnZhbCAqPSAyOwo+Pj4+Pj4g Kwo+Pj4+Pj4gKwkJcmV0dXJuIElJT19WQUxfRlJBQ1RJT05BTF9MT0cyOwo+Pj4+Pj4gKwo+Pj4+ Pj4gKwljYXNlIElJT19DSEFOX0lORk9fT0ZGU0VUOgo+Pj4+Pj4gKwkJLyoKPj4+Pj4+ICsJCSAq IERGU0RNIG91dHB1dCBkYXRhIGFyZSBpbiB0aGUgcmFuZ2UgWy0yXm4sMl5uLTFdLAo+Pj4+Pj4g KwkJICogd2l0aCBuPXJlYWxiaXRzLTEuCj4+Pj4+PiArCQkgKiAtIERpZmZlcmVudGlhbCBtb2R1 bGF0b3I6Cj4+Pj4+PiArCQkgKiBPZmZzZXQgY29ycmVzcG9uZCB0byBTRCBtb2R1bGF0b3Igb2Zm c2V0Lgo+Pj4+Pj4gKwkJICogLSBTaW5nbGUgZW5kZWQgbW9kdWxhdG9yOgo+Pj4+Pj4gKwkJICog SW5wdXQgaXMgaW4gWzBWLFZyZWZdIHJhbmdlLCB3aGVyZSAwViBjb3JyZXNwb25kcyB0byAtMl5u Lgo+Pj4+Pj4gKwkJICogQWRkIDJebiB0byBvZmZzZXQuIChpLmUuIG1pZGRsZSBvZiBpbnB1dCBy YW5nZSkKPj4+Pj4+ICsJCSAqIG9mZnNldCA9IG9mZnNldChzZCkgKiB2cmVmIC8gcmVzKHNkKSAq IG1heCAvIHZyZWYuCj4+Pj4+PiArCQkgKi8KPj4+Pj4+ICsJCSp2YWwgPSBkaXZfdTY0KCh1NjQp bWF4ICogYWRjLT5zZF9jaGFuW2lkeF0ub2Zmc2V0LAo+Pj4+Pj4gKwkJCSAgICAgICBCSVQoYWRj LT5zZF9jaGFuW2lkeF0uc2NhbGVfdmFsMiAtIDEpKTsKPj4+Pj4+ICsJCWlmICghYWRjLT5zZF9j aGFuW2lkeF0uZGlmZmVyZW50aWFsKQo+Pj4+Pj4gKwkJCSp2YWwgKz0gbWF4Owo+Pj4+Pj4gKwo+ Pj4+Pj4gKwkJcmV0dXJuIElJT19WQUxfSU5UOwo+Pj4+Pj4gICAgIAl9Cj4+Pj4+PiAgICAgCj4+ Pj4+PiAgICAgCXJldHVybiAtRUlOVkFMOwo+Pj4+Pj4gQEAgLTE0MzAsNyArMTQ3Nyw5IEBAIHN0 YXRpYyBpbnQgc3RtMzJfZGZzZG1fYWRjX2NoYW5faW5pdF9vbmUoc3RydWN0IGlpb19kZXYgKmlu ZGlvX2RldiwKPj4+Pj4+ICAgICAJICogSUlPX0NIQU5fSU5GT19SQVc6IHVzZWQgdG8gY29tcHV0 ZSByZWd1bGFyIGNvbnZlcnNpb24KPj4+Pj4+ICAgICAJICogSUlPX0NIQU5fSU5GT19PVkVSU0FN UExJTkdfUkFUSU86IHVzZWQgdG8gc2V0IG92ZXJzYW1wbGluZwo+Pj4+Pj4gICAgIAkgKi8KPj4+ Pj4+IC0JY2gtPmluZm9fbWFza19zZXBhcmF0ZSA9IEJJVChJSU9fQ0hBTl9JTkZPX1JBVyk7Cj4+ Pj4+PiArCWNoLT5pbmZvX21hc2tfc2VwYXJhdGUgPSBCSVQoSUlPX0NIQU5fSU5GT19SQVcpIHwK Pj4+Pj4+ICsJCQkJIEJJVChJSU9fQ0hBTl9JTkZPX1NDQUxFKSB8Cj4+Pj4+PiArCQkJCSBCSVQo SUlPX0NIQU5fSU5GT19PRkZTRVQpOwo+Pj4+Pj4gICAgIAljaC0+aW5mb19tYXNrX3NoYXJlZF9i eV9hbGwgPSBCSVQoSUlPX0NIQU5fSU5GT19PVkVSU0FNUExJTkdfUkFUSU8pIHwKPj4+Pj4+ICAg ICAJCQkJCUJJVChJSU9fQ0hBTl9JTkZPX1NBTVBfRlJFUSk7Cj4+Pj4+PiAgICAgCj4+Pj4+PiBA QCAtMTQ4MSw4ICsxNTMwLDEwIEBAIHN0YXRpYyBpbnQgc3RtMzJfZGZzZG1fYWRjX2luaXQoc3Ry dWN0IGlpb19kZXYgKmluZGlvX2RldikKPj4+Pj4+ICAgICB7Cj4+Pj4+PiAgICAgCXN0cnVjdCBp aW9fY2hhbl9zcGVjICpjaDsKPj4+Pj4+ICAgICAJc3RydWN0IHN0bTMyX2Rmc2RtX2FkYyAqYWRj ID0gaWlvX3ByaXYoaW5kaW9fZGV2KTsKPj4+Pj4+ICsJc3RydWN0IGlpb19jaGFubmVsICpjaGFu bmVscywgKmNoYW47Cj4+Pj4+PiArCXN0cnVjdCBzdG0zMl9kZnNkbV9zZF9jaGFuX2luZm8gKnNk X2NoYW47Cj4+Pj4+PiAgICAgCWludCBudW1fY2g7Cj4+Pj4+PiAtCWludCByZXQsIGNoYW5faWR4 Owo+Pj4+Pj4gKwlpbnQgcmV0LCBjaGFuX2lkeCwgdmFsMjsKPj4+Pj4+ICAgICAKPj4+Pj4+ICAg ICAJYWRjLT5vdmVyc2FtcCA9IERGU0RNX0RFRkFVTFRfT1ZFUlNBTVBMSU5HOwo+Pj4+Pj4gICAg IAlyZXQgPSBzdG0zMl9kZnNkbV9jb21wdXRlX2FsbF9vc3JzKGluZGlvX2RldiwgYWRjLT5vdmVy c2FtcCk7Cj4+Pj4+PiBAQCAtMTUwNiw2ICsxNTU3LDIyIEBAIHN0YXRpYyBpbnQgc3RtMzJfZGZz ZG1fYWRjX2luaXQoc3RydWN0IGlpb19kZXYgKmluZGlvX2RldikKPj4+Pj4+ICAgICAJaWYgKCFj aCkKPj4+Pj4+ICAgICAJCXJldHVybiAtRU5PTUVNOwo+Pj4+Pj4gICAgIAo+Pj4+Pj4gKwkvKiBH ZXQgU0QgbW9kdWxhdG9yIGNoYW5uZWxzICovCj4+Pj4+PiArCWNoYW5uZWxzID0gaWlvX2NoYW5u ZWxfZ2V0X2FsbCgmaW5kaW9fZGV2LT5kZXYpOwo+Pj4+Pj4gKwlpZiAoSVNfRVJSKGNoYW5uZWxz KSkgewo+Pj4+Pj4gKwkJZGV2X2VycigmaW5kaW9fZGV2LT5kZXYsICJGYWlsZWQgdG8gZ2V0IGNo YW5uZWwgJWxkXG4iLAo+Pj4+Pj4gKwkJCVBUUl9FUlIoY2hhbm5lbHMpKTsKPj4+Pj4+ICsJCXJl dHVybiBQVFJfRVJSKGNoYW5uZWxzKTsKPj4+Pj4+ICsJfQo+Pj4+Pj4gKwljaGFuID0gJmNoYW5u ZWxzWzBdOwo+Pj4+Pj4gKwo+Pj4+Pj4gKwlhZGMtPnNkX2NoYW4gPSBkZXZtX2t6YWxsb2MoJmlu ZGlvX2Rldi0+ZGV2LAo+Pj4+Pj4gKwkJCQkgICAgc2l6ZW9mKCphZGMtPnNkX2NoYW4pICogbnVt X2NoLCBHRlBfS0VSTkVMKTsKPj4+Pj4+ICsJaWYgKCFhZGMtPnNkX2NoYW4pCj4+Pj4+PiArCQly ZXR1cm4gLUVOT01FTTsKPj4+Pj4+ICsKPj4+Pj4+ICsJc2RfY2hhbiA9IGFkYy0+c2RfY2hhbjsK Pj4+Pj4+ICsKPj4+Pj4+ICAgICAJZm9yIChjaGFuX2lkeCA9IDA7IGNoYW5faWR4IDwgbnVtX2No OyBjaGFuX2lkeCsrKSB7Cj4+Pj4+PiAgICAgCQljaFtjaGFuX2lkeF0uc2Nhbl9pbmRleCA9IGNo YW5faWR4Owo+Pj4+Pj4gICAgIAkJcmV0ID0gc3RtMzJfZGZzZG1fYWRjX2NoYW5faW5pdF9vbmUo aW5kaW9fZGV2LAo+Pj4+Pj4gJmNoW2NoYW5faWR4XSk7IEBAIC0xNTEzLDYgKzE1ODAsMzggQEAg c3RhdGljIGludCBzdG0zMl9kZnNkbV9hZGNfaW5pdChzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2 KQo+Pj4+Pj4gICAgIAkJCWRldl9lcnIoJmluZGlvX2Rldi0+ZGV2LCAiQ2hhbm5lbHMgaW5pdCBm YWlsZWRcbiIpOwo+Pj4+Pj4gICAgIAkJCXJldHVybiByZXQ7Cj4+Pj4+PiAgICAgCQl9Cj4+Pj4+ PiArCj4+Pj4+PiArCQlpZiAoIWNoYW4tPmluZGlvX2RldikKPj4+Pj4+ICsJCQlyZXR1cm4gLUVJ TlZBTDsKPj4+Pj4+ICsKPj4+Pj4+ICsJCXJldCA9IGlpb19yZWFkX2NoYW5uZWxfc2NhbGUoY2hh biwgJnNkX2NoYW4tPnNjYWxlX3ZhbCwKPj4+Pj4+ICsJCQkJCSAgICAgJnNkX2NoYW4tPnNjYWxl X3ZhbDIpOwo+Pj4+Pj4gKwkJaWYgKHJldCA8IDApIHsKPj4+Pj4+ICsJCQlkZXZfZXJyKCZpbmRp b19kZXYtPmRldiwKPj4+Pj4+ICsJCQkJIkZhaWxlZCB0byBnZXQgY2hhbm5lbCAlZCBzY2FsZVxu IiwgY2hhbl9pZHgpOwo+Pj4+Pj4gKwkJCXJldHVybiByZXQ7Cj4+Pj4+PiArCQl9Cj4+Pj4+PiAr Cj4+Pj4+PiArCQlpZiAoaWlvX2NoYW5uZWxfaGFzX2luZm8oY2hhbi0+Y2hhbm5lbCwgSUlPX0NI QU5fSU5GT19PRkZTRVQpKSB7Cj4+Pj4+PiArCQkJcmV0ID0gaWlvX3JlYWRfY2hhbm5lbF9vZmZz ZXQoY2hhbiwgJnNkX2NoYW4tPm9mZnNldCwKPj4+Pj4+ICsJCQkJCQkgICAgICAmdmFsMik7Cj4+ Pj4+PiArCQkJaWYgKHJldCA8IDApIHsKPj4+Pj4+ICsJCQkJZGV2X2VycigmaW5kaW9fZGV2LT5k ZXYsCj4+Pj4+PiArCQkJCQkiRmFpbGVkIHRvIGdldCBjaGFubmVsICVkIG9mZnNldFxuIiwKPj4+ Pj4+ICsJCQkJCWNoYW5faWR4KTsKPj4+Pj4+ICsJCQkJcmV0dXJuIHJldDsKPj4+Pj4+ICsJCQl9 Cj4+Pj4+PiArCQl9Cj4+Pj4+PiArCj4+Pj4+PiArCQlzZF9jaGFuLT5kaWZmZXJlbnRpYWwgPSBj aGFuLT5jaGFubmVsLT5kaWZmZXJlbnRpYWw7Cj4+Pj4+PiArCj4+Pj4+PiArCQlkZXZfZGJnKCZp bmRpb19kZXYtPmRldiwgIkNoYW5uZWwgJWQgJXMgc2NhbGUgcmVmPSVkIG9mZnNldD0lZCIsCj4+ Pj4+PiArCQkJY2hhbl9pZHgsIGNoYW4tPmNoYW5uZWwtPmRpZmZlcmVudGlhbCA/Cj4+Pj4+PiAr CQkJImRpZmZlcmVudGlhbCIgOiAic2luZ2xlLWVuZGVkIiwKPj4+Pj4+ICsJCQlzZF9jaGFuLT5z Y2FsZV92YWwsIHNkX2NoYW4tPm9mZnNldCk7Cj4+Pj4+PiArCj4+Pj4+PiArCQljaGFuKys7Cj4+ Pj4+PiArCQlzZF9jaGFuKys7Cj4+Pj4+PiAgICAgCX0KPj4+Pj4+ICAgICAKPj4+Pj4+ICAgICAJ aW5kaW9fZGV2LT5udW1fY2hhbm5lbHMgPSBudW1fY2g7CgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdAps aW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVh ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==