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.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,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 9C271C433F5 for ; Sun, 12 Sep 2021 17:25:13 +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 5AA7B61050 for ; Sun, 12 Sep 2021 17:25:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 5AA7B61050 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org 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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=N++vp5ghB0hS5dkjqiUqYaEqRAhtZykG/y9CWawP+dQ=; b=tRCjCcE7U6vni+ 59FF3rrEo7uJwa2K6u3BiZfsZiRcci8of6VauXeRamxTptbw95Da9UVGtXfE7aa2vg+rXqfWWgsgv C8bBgk6qsXJtrIy2Z0GQqAiT6P7TwBA6slvJe5516WcyEXWjCJax+APEMbHlC5YY1vPHtoFbNiutO 3OL/uTIgDzBLwFCiUHIRr3eSQV8pMdxV8MArDMOq8BfFRnHZfov0pgSpik7kG60UlF7dEBSJoSmbm S1M/pGAn4eYk0YP1A20w+v1Wnh2t1DU0mQNiNJnqdC6JTf08JHw9Dsv7r+4g533fuF9bpahnv8nwn 4zE0gVPAOfeNjii5sXGw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mPTBu-00GooQ-1K; Sun, 12 Sep 2021 17:22:54 +0000 Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mPTBp-00Gong-9v for linux-arm-kernel@lists.infradead.org; Sun, 12 Sep 2021 17:22:52 +0000 Received: from jic23-huawei (cpc108967-cmbg20-2-0-cust86.5-4.cable.virginm.net [81.101.6.87]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 7525E6101A; Sun, 12 Sep 2021 17:22:45 +0000 (UTC) Date: Sun, 12 Sep 2021 18:26:17 +0100 From: Jonathan Cameron To: Olivier MOYSAN Cc: , , , , , , , , , , Arnaud POULIQUEN , Fabrice GASNIER Subject: Re: [PATCH 4/4] iio: adc: stm32-dfsdm: add scale and offset support Message-ID: <20210912182617.5635fa06@jic23-huawei> In-Reply-To: <78f4e4b9-ef4c-982f-7cd3-8d3052d99150@foss.st.com> 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> <78f4e4b9-ef4c-982f-7cd3-8d3052d99150@foss.st.com> X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210912_102249_447339_B9FD7796 X-CRM114-Status: GOOD ( 56.62 ) 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCAxMCBTZXAgMjAyMSAxNzo1Njo0NSArMDIwMApPbGl2aWVyIE1PWVNBTiA8b2xpdmll ci5tb3lzYW5AZm9zcy5zdC5jb20+IHdyb3RlOgoKPiBIaSBKb25hdGhhbiwKPiAKPiBPbiA5LzEw LzIxIDQ6MDUgUE0sIE9saXZpZXIgTU9ZU0FOIHdyb3RlOgo+ID4gCj4gPiAKPiA+IAo+ID4gU1Qg UmVzdHJpY3RlZAo+ID4gCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID4gRnJvbTog Sm9uYXRoYW4gQ2FtZXJvbiA8amljMjNAa2VybmVsLm9yZz4KPiA+IFNlbnQ6IHZlbmRyZWRpIDE0 IGbDqXZyaWVyIDIwMjAgMTY6MTAKPiA+IFRvOiBPbGl2aWVyIE1PWVNBTiA8b2xpdmllci5tb3lz YW5Ac3QuY29tPgo+ID4gQ2M6IHJvYmgrZHRAa2VybmVsLm9yZzsgbWFyay5ydXRsYW5kQGFybS5j b207IGtuYWFjay5oQGdteC5kZTsgbGFyc0BtZXRhZm9vLmRlOyBkZXZpY2V0cmVlQHZnZXIua2Vy bmVsLm9yZzsgbGludXgtaWlvQHZnZXIua2VybmVsLm9yZzsgbGludXgta2VybmVsQHZnZXIua2Vy bmVsLm9yZzsgcG1lZXJ3QHBtZWVydy5uZXQ7IGxpbnV4LXN0bTMyQHN0LW1kLW1haWxtYW4uc3Rv cm1yZXBseS5jb207IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwo+ID4gU3Vi amVjdDogUmU6IFtQQVRDSCA0LzRdIGlpbzogYWRjOiBzdG0zMi1kZnNkbTogYWRkIHNjYWxlIGFu ZCBvZmZzZXQgc3VwcG9ydAo+ID4gCj4gPiBPbiBGcmksIDE0IEZlYiAyMDIwIDE0OjQ5OjE4ICsw MDAwCj4gPiBPbGl2aWVyIE1PWVNBTiA8b2xpdmllci5tb3lzYW5Ac3QuY29tPiB3cm90ZToKPiA+ ICAgCj4gPj4gSGkgSm9uYXRoYW4sCj4gPj4KPiA+PiBPbiAyLzE0LzIwIDI6MTEgUE0sIEpvbmF0 aGFuIENhbWVyb24gd3JvdGU6ICAKPiA+Pj4gT24gVHVlLCAxMSBGZWIgMjAyMCAxNToxOTowMSAr MDAwMAo+ID4+PiBPbGl2aWVyIE1PWVNBTiA8b2xpdmllci5tb3lzYW5Ac3QuY29tPiB3cm90ZToK PiA+Pj4gICAgIAo+ID4+Pj4gSGkgSm9uYXRoYW4sCj4gPj4+Pgo+ID4+Pj4gT24gMi84LzIwIDU6 MTggUE0sIEpvbmF0aGFuIENhbWVyb24gd3JvdGU6ICAKPiA+Pj4+PiBPbiBUdWUsIDQgRmViIDIw MjAgMTE6MTA6MDggKzAxMDAKPiA+Pj4+PiBPbGl2aWVyIE1veXNhbiA8b2xpdmllci5tb3lzYW5A c3QuY29tPiB3cm90ZToKPiA+Pj4+PiAgICAgICAgCj4gPj4+Pj4+IEFkZCBzY2FsZSBhbmQgb2Zm c2V0IGF0dHJpYnV0ZXMgc3VwcG9ydCB0byBTVE0zMiBERlNETS4KPiA+Pj4+Pj4KPiA+Pj4+Pj4g U2lnbmVkLW9mZi1ieTogT2xpdmllciBNb3lzYW4gPG9saXZpZXIubW95c2FuQHN0LmNvbT4gIAo+ ID4+Pj4+IEhtbS4gSSBjYW4ndCByZW1lbWJlciB0aGlzIGhpc3Rvcnkgb2YgdGhpcyBidXQgd2Un dmUga2luZCBvZiBlbmRlZAo+ID4+Pj4+IHVwIGJhY2t3YXJkcyB3cnQgdG8gb3RoZXIgY29uc3Vt ZXIgZHJpdmVycy4KPiA+Pj4+Pgo+ID4+Pj4+IEluIHNvbWUgc2Vuc2UgdGhpcyBpcyBzaW1pbGFy IHRvIHRoZSBhbmFsb2cgZ3lyb3Njb3Blcy4gIEluIHRob3NlCj4gPj4+Pj4gdGhlIGNvbnN1bWVy IGRyaXZlciBpcyB0aGUgZ3lyb3Njb3BlIHdoaWNoIGlzIGNvbnN1bWluZyB0aGUgcmF3Cj4gPj4+ Pj4gcmVhZGluZ3MgZnJvbSBhbiBBREMgY29ubmVjdGVkIHRvIHRoZSBjaGFubmVsLiAgVGhpcyBy ZXN1bHRzIGluIHVzCj4gPj4+Pj4gZ2V0dGluZyByZWFkaW5ncyByZXBvcnRlZCBieSB0aGUgZ3ly b3Njb3BlIGRyaXZlci4KPiA+Pj4+Pgo+ID4+Pj4+IEhlcmUgd2UgaGF2ZSBhIHNpZ21hIGRlbHRh IGNvbnZlcnRvciBjb25zdW1pbmcgdGhlIHB1bHNlIHRyYWluCj4gPj4+Pj4gZnJvbSBhIHNpZ21h IGRlbHRhIGRldmljZS4gIFNvIHRoZSBjaGFubmVscyBhcmUgcmVwb3J0ZWQgYnkgdGhlCj4gPj4+ Pj4gc2lnbWEgZGVsdGEgcmVjZWl2ZXIsIHdoZXJlYXMgaSB0aGluayB0aGUgbmVhcmVzdCBlcXVp dmFsZW50IHRvCj4gPj4+Pj4gdGhlIGFuYWxvZyB2b2x0YWdlIG91dHB1dGluZyBneXJvc2NvcGVz IHdvdWxkIGhhdmUgYmVlbiBpZiB3ZSBoYWQKPiA+Pj4+PiByZXBvcnRlZCB0aGUgY2hhbm5lbCB2 YWx1ZXMgYXQgdGhlIHNpZ21hIGRlbHRhIGNvbnZlcnRlci4gIAo+ID4+Pj4gVGhlIERGU0RNIGRy aXZlciBpcyBjdXJyZW50bHkgdXNlZCBhcyBhIGNvbnN1bWVyIG9mIHRoZSBzZCBtb2R1bGF0b3Iu Cj4gPj4+PiBUaGUgc2NhbGUgYW5kIG9mZnNldCB2YWx1ZXMgb2YgdGhlIGNoYW5uZWxzIGFyZSBh bHJlYWR5IGNvbXB1dGVkIGJ5Cj4gPj4+PiB0aGUgREZTRE0gZHJpdmVyLCBhbmQgcHJvdmlkZWQg YnkgdGhpcyBkcml2ZXIgdG8gdGhlIElJTyBBQkkuCj4gPj4+PiBIb3dldmVyLCB0aGUgREZTRE0g aGFzIG5vIHZvbHRhZ2UgcmVmZXJlbmNlLCBzbyBpdCBoYXMgdG8gcmV0cmlldmUKPiA+Pj4+IGl0 IGZyb20gc2QtbW9kdWxhdG9yIGNoYW5uZWxzLCBmb3IgdGhlIHNjYWxlIGZhY3RvciBjb21wdXRh dGlvbi4KPiA+Pj4+Cj4gPj4+PiAgICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNjYWxlwqAgb2Zmc2V0Cj4gPj4+ PiAgICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBewqDCoMKgwqDCoCBeCj4gPj4+PiAgICDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCB8wqDCoMKgwqDCoCB8wqDCoMKgwqDCoMKgIElJTyBBQkkKPiA+Pj4+ICstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+ ID4+Pj4gICAgwqDCoMKgwqDCoMKgwqDCoCArLS0tLS0tLS0tLS0tLS0tK8KgwqDCoMKgwqDCoMKg wqDCoCArLS0tLS0tLS0tLS0tLSsKPiA+Pj4+ICAgIMKgwqDCoMKgwqDCoMKgwqAgfHNkIGRyaXZl csKgwqDCoMKgwqAgfMKgwqDCoMKgwqDCoMKgwqDCoCB8REZTRE0gZHJpdmVyIHwKPiA+Pj4+ICAg IMKgwqDCoMKgwqDCoMKgwqAgKy0tLS0tLS0tLS0tLS0tLSvCoMKgwqDCoMKgwqDCoMKgwqAgKy0t LS0tLS0tLS0tLS0rCj4gPj4+PiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPiA+Pj4+ICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgSFcKPiA+Pj4+ICAgIMKgwqDCoMKg wqDCoMKgwqAgKy0tLS0tLS0tLS0tLS0tLSvCoMKgwqDCoMKgwqDCoMKgwqAgKy0tLS0tLS0tLS0t LS0rCj4gPj4+PiArLS0tLS0tLT4rIHNkLW1vZHVsYXRvcsKgICstLS0tLS0tLS0+KyBERlNETSAr LS0tLS0tLS0+Cj4gPj4+PiBhbmFsb2fCoMKgICstLS0tLS0rLS0tLS0tLS0rwqDCoMKgwqDCoMKg wqDCoMKgICstLS0tLS0tLS0tLS0tKyBvdXRwdXQgaW5wdXQKPiA+Pj4+IF4KPiA+Pj4+ICAgIMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IHZyZWYKPiA+Pj4+ICAgIMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCArCj4gPj4+Pgo+ID4+Pj4KPiA+Pj4+IElzIGl0IHRoZSB0b3Bv bG9neSB5b3VyIGFyZSBleHBlY3RpbmcgPyAgCj4gPj4+IEl0J3Mgbm90IHRoZSBvbmUgd2UnZCBl eHBlY3QgaWYgd2UgYXJlIGFsaWduaW5nIHdpdGggc2ltaWxhciBjYXNlcwo+ID4+PiBlbHNld2hl cmUgaW4gSUlPLiAgRm9yIGV4YW1wbGUsIGlmIHdlIGF0dGFjaCBhbiBhbmFsb2cgYWNjZWxlcm9t ZXRlcgo+ID4+PiB0byBhbiBBREMsIHdlIHJlcG9ydCB0aGUgYWNjZWwgY2hhbm5lbHMgb24gdGhl IGFjY2VsZXJvbWV0ZXIgbm90IHRoZQo+ID4+PiBBREMuICBUaGUgZXF1aXZhbGVudCB3b3VsZCBi ZSB0byBzZWUgdGhlIERGU0RNIGFzIHByb3ZpZGluZyBhCj4gPj4+IGNvbnZlcnNpb24gc2Vydmlj ZSB0byB0aGUgU0QgZGV2aWNlIHdoaWNoIGlzIGFjdHVhbGx5IGV4ZWN1dGluZyB0aGUKPiA+Pj4g bWVhc3VyZW1lbnQgYW5kIGhhcyB0aGUgaW5wdXQgY2hhbm5lbHMuCj4gPj4+Cj4gPj4+Cj4gPj4+ ICAgwqDCoMKgwqDCoMKgwqDCoCBzY2FsZcKgIG9mZnNldCAgcmF3Cj4gPj4+ICAgwqDCoMKgwqDC oMKgwqDCoMKgwqAgXsKgwqDCoMKgwqAgXiAgICAgIF4KPiA+Pj4gICDCoMKgwqDCoMKgwqDCoMKg wqDCoCB8wqDCoMKgwqDCoCB8wqDCoMKgwqAgIHwgIMKgwqAgICAgICAgICAgICAgICAgICAgICAg ICAgIElJTyBBQkkKPiA+Pj4gICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gPj4+ICAgICDCoMKgwqDCoMKgwqDCoMKgICst LS0tLS0tLS0tLS0tLS0rwqDCoMKgwqDCoMKgwqDCoMKgICstLS0tLS0tLS0tLS0tKwo+ID4+PiAg ICAgwqDCoMKgwqDCoMKgwqDCoCB8c2QgZHJpdmVywqDCoMKgwqDCoCB8wqDCoMKgwqDCoMKgwqDC oMKgIHxERlNETSBkcml2ZXIgfAo+ID4+PiAgICAgwqDCoMKgwqDCoMKgwqDCoCArLS0tLS0tLS0t LS0tLS0tK8KgwqDCoMKgwqDCoMKgwqDCoCArLS0tLS0tLS0tLS0tLSsKPiA+Pj4gICAgKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r Cj4gPj4+ICAgICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIEhXCj4gPj4+ICAgICDCoMKgwqDCoMKgwqDCoMKgICstLS0tLS0tLS0tLS0tLS0r wqDCoMKgwqDCoMKgwqDCoMKgICstLS0tLS0tLS0tLS0tKwo+ID4+PiAgICArLS0tLS0tLT4rIHNk LW1vZHVsYXRvcsKgICstLS0tLS0tLS0+KyBERlNETSArLS0tLS0tLS0+Cj4gPj4+ICAgIGFuYWxv Z8KgwqAgKy0tLS0tLSstLS0tLS0tLSvCoMKgwqDCoMKgwqDCoMKgwqAgKy0tLS0tLS0tLS0tLS0r IG91dHB1dAo+ID4+PiAgICBpbnB1dMKgwqDCoMKgwqDCoMKgwqDCoMKgIF4KPiA+Pj4gICAgIMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IHZyZWYgIAo+ID4+Pj4gICAgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgICsKPiA+Pj4+ICAgICAKPiA+PiBUaGFua3MgZm9yIHlvdXIg Y2xhcmlmaWNhdGlvbi4KPiA+PiBvaywgbW92aW5nIHRvIHRoaXMgbG9naWMgaXMgYSBzaWduaWZp Y2FudCBjaGFuZ2UuCj4gPj4gSSBuZWVkIHRvIGV2YWx1YXRlIGZ1cnRoZXIgdGhlIGltcGFjdCBv biB0aGUgZGZzZG0gZHJpdmVyLiAgCj4gPiAKPiA+IFVuZGVyc3Rvb2QhICBJZiB3ZSBjYW4ndCBk byBpdCB3aXRob3V0IHBvdGVudGlhbGx5IGJyZWFraW5nIHVzZXJzIHRoZW4gc3VjaCBpcyBsaWZl Lgo+ID4gCj4gPiBKb25hdGhhbgo+ID4gICAKPiAKPiBJIGNvbWUgYmFjayB0byB0aGlzIG9sZCwg YnV0IHN0aWxsIHZhbGlkIHRvcGljLgoKSSdkIGZvcmdvdHRlbiBhYm91dCB0aGlzIG9uZSwgc28g YXBvbG9naWVzIGlmIGl0IHRha2VzIG1lIGEgYml0IG9mIHRpbWUgdG8KZ2V0IGJhY2sgdXAgdG8g c3BlZWQhCgo+IFlvdSBtZW50aW9uZWQgdGhlIGV4YW1wbGUgb2YgYW5hbG9nIGd5cm9zY29wZXMg aW4gYSBwcmV2aW91cyBtZXNzYWdlLgo+IExvb2tpbmcgYXQgZ3lyb3Njb3BlIGRyaXZlcnMsIEkg Zm91bmQgcmNhci1neXJvYWRjIGRyaXZlciB3aGljaCBzaG93cyAKCk5vdCBhIGd5cm9zY29wZSBk cml2ZXIgZGVzcGl0ZSB0aGUgbmFtZSA6KSAgSSB3YXMgdGhpbmtpbmcgbW9yZSBvZiB0aGUKY2Fz ZSB3aGVyZSB3ZSBoYXZlIGEgZ3lyb3Njb3BlIHRoYXQgY2FuIGJlIHdpcmVkIHVwIHRvIGEgYnVu Y2ggb2YgZGlmZmVyZW50CkFEQ3MuCgo+IHJlcXVpcmVtZW50cyBzaW1pbGFyIHRvIGRmc2RtIG5l ZWRzOgo+IGh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL0RvY3VtZW50YXRpb24vZGV2aWNldHJl ZS9iaW5kaW5ncy9paW8vYWRjL3JlbmVzYXMlMkNyY2FyLWd5cm9hZGMueWFtbAo+IAo+IHJjYXIt Z3lyb2FkYyBkcml2ZXIgbWFpbiBjaGFyYWN0ZXJpc2l0aWNzOgo+IC0gdGhlIHBhcmVudCBkZXZp Y2UgKGd5cm9hZGMpIGlzIGEgY29uc3VtZXIgb2Ygc3ViIGRldmljZXMgKFNQSSBBRENzKQo+IC0g dGhlIGNoYW5uZWxzIGFyZSBwb3B1bGF0ZWQgZnJvbSB0aGUgc3ViIGRldmljZXMKPiAtIHRoZSBp aW8gZGV2aWNlIGlzIGFzc29jaWF0ZWQgdG8gdGhlIHBhcmVudCBkZXZpY2UKCkkgd291bGRuJ3Qg bmVjZXNzYXJpbHkgdGFrZSB0aGF0IGFzIGEgZ29sZGVuIGV4YW1wbGUuICBXZSB3ZXJlIHN0aWxs IGZpZ3VyaW5nCm91dCBob3cgdGhpcyBzdHVmZiB3b3VsZCBmaXQgdG9nZXRoZXIuCkZyb20gd2hh dCBJIHJlY2FsbCAoYW5kIGl0J3MgYmVlbiBhIGZldyB5ZWFycykgdGhhdCBkZXZpY2UgcHJvdmlk ZXMgbm8KY29uZmlndXJhdGlvbiB0eXBlIGludGVyZmFjZXMgZm9yIHRoZSBTUEkgQURDcyAtIHRo ZXkgZW5kIHVwIGhhdmluZyBubwpleGlzdGVuY2UgaW4gdGhlIGRldmljZSBtb2RlbCBhcyBhIHJl c3VsdC4gIFRoZXJlIGlzIG5vIG1lYW5zIG9mCnNoYXJpbmcgYW55dGhpbmcgYmV0d2VlbiB0aGUg d2F5cyB0aGlzIGRldmljZSB1c2VzIHRoZSBTUEkgQURDcyBhbmQgdGhlCndheSBhbnkgb3RoZXIg ZGV2aWNlIGRvZXMuCgo+IAo+IAo+IEkgdG9vayB0aGUgZXhhbXBsZSBvZiBneXJvYWRjIHRvIHJl Y29uc2lkZXIgZGZzZG0gdG9wb2xvZ3kgYW5kIGV4cGxvcmUgCj4gc29tZSB2YXJpYW50cyBhY2Nv cmRpbmcgdG8gSUlPIGRldmljZXMgdXNlLgo+IAo+IDEpIGN1cnJlbnQgdG9wb2xvZ3k6IG9uZSBJ SU8gZGV2aWNlIHBlciBTRCBtb2R1bGF0b3IgYW5kIG9uZSBpaW8gZGV2aWNlIAo+IHBlciBERlNE TSBmaWx0ZXIKPiAgICAgIFRoZSBERlNETSBpcyB1c2VkIGFzIGEgY29uc3VtZXIgb2YgU0QgbW9k dWxhdG9yIHRocm91Z2ggdGhlIGh3Cj4gICAgICBjb25zdW1lciBBUEkuCj4gICAgICAqIGNvbnMK PiAgICAgICAgICAtIFNEIG1vZHVsYXRvciBhbmQgREZTRE0gZmlsdGVyIGhhdmUgdGhlaXIgb3du IGNoYW5uZWwKPiAgICAgICAgICBzcGVjaWZpY2F0aW9uLgo+ICAgICAgICAgIC0gREZTRE0gcmV0 cmlldmVzIGNoYW5uZWxzIHNjYWxlIGluZm9ybWF0aW9uIGZyb20gU0QKPiAgICAgICAgICBtb2R1 bGF0b3IgdG8gaW5pdGlhbGl6ZWQgaXRzIGNoYW5uZWxzCj4gICAgICAgICAgLSBTRCBtb2R1bGF0 b3IgSUlPIHN5c2ZzIGludGVyZmFjZSBpcyB1c2VsZXNzCj4gCj4gKy0tLS0tLS0tLS0tLSsgICAg ICstLS0tLS0tKyAgICAgKy0tLS0tLS0tLSsgIHN5c2ZzCj4gfCBzZDAgaWlvZGV2IHwgLS0+IHwg Y2hhbjAgfCAtLT4gfCBmaWx0ZXIwIHwgLS0tLS0tLT4KPiArLS0tLS0tLS0tLS0tKyAgICAgKy0t LS0tLS0rICAgICArLS0tLS0tLS0tKwo+ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KPiAgICB8IHN5c2ZzICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gICAgdiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+ICstLS0tLS0tLS0tLS0rICAgICAr LS0tLS0tLSsgICAgICAgfAo+IHwgc2QxIGlpb2RldiB8IC0tPiB8IGNoYW4xIHwgLS0tLS0tKwo+ ICstLS0tLS0tLS0tLS0rICAgICArLS0tLS0tLSsKPiAgICB8Cj4gICAgfCBzeXNmcwo+ICAgIHYK PiAKPiAKPiAyKSAiY29udmVyc2lvbiBzZXJ2aWNlIiB0b3BvbG9neTogb25lIElJTyBkZXZpY2Ug cGVyIFNEIG1vZHVsYXRvcgo+ICAgICAgKiBjb25zCj4gICAgICAgICAgLSBEYXRhIHRyYW5zZmVy czogaW4gdGhpcyBjYXNlIHRoZSBjb252ZXJ0ZWQgZGF0YSBmcm9tCj4gICAgICAgICAgREZTRE0g ZmlsdGVyIGhhdmUgdG8gYmUgc2VudCBiYWNrIHRvIFNEIG1vZHVsYXRvciB0byBiZSAJCj4gCWF2 YWlsYWJsZSBvbiBzeXNmcyBpbnRlcmZhY2UuCj4gICAgICAgICAgLSBTY2FuIG1vZGU6IHRoaXMg dG9wb2xvZ3kgc2VlbXMgbm90IGNvbXBhdGlibGUgd2l0aCBzY2FuCj4gICAgICAgICAgbW9kZSwg d2hlcmUgbXVsdGlwbGV4ZWQgY2hhbm5lbHMgYXJlIGV4cGVjdGVkIGFyZSBvbgo+IAlJSU8gZGV2 aWNlIGludGVyZmFjZS4KPiAKPiAJPT4gSSBkb24ndCBmaW5kIGEgcHJvcGVyIHdheSB0byBhZGRy ZXNzIHNjYW4gbW9kZSB3aXRoIG11bHRpIFNEICAKPiAJbW9kdWxhdG9yIGNvbm5lY3RlZCB0byBv bmUgREZTTSBmaWx0ZXIKCkdvb2QgcG9pbnQsIHRoZXJlIGlzbid0IGEgbWVhbnMgb2YgY29tYmlu aW5nIHRoZSBzY2FucyBmcm9tIG11bHRpcGxlCklJTyBkZXZpY2VzIGFuZCB0aGF0IGlzIHdoYXQg d2UgZW5kIHVwIGhhdmluZyBpbiB0aGlzIG1vZGVsLgoKWW91IGNhbiAnc3BsaXQnIHRoZSBjaGFu bmVscyBzbyB0aGF0IGVuYWJsaW5nIHNkMCBhbmQgc2QxIGJ1ZmZlcmVkCm1vZGUgd2lsbCByZXN1 bHQgaW4gc2NhbnMgZnJvbSB0aGUgZmlsdGVyIGZpbGxpbmcgRklGT3MgZm9yIGVhY2ggb2YgdGhl bQpidXQgdGhhdCBtYXkgbm90IGZpdCB0aGUgdXNlIG1vZGVsIHlvdSBoYXZlIGluIG1pbmQuCgpU aGlzIHNvcnQgb2YgZGVtdXggaXMgbW9yZSBvZnRlbiBkb25lIGZvciB3aGVuIHdlIGhhdmUgYSBj b25zdW1lciBpbgp0aGUgZm9ybSBvZiBzYXkgYSB0b3VjaHNjcmVlbiB0aGF0IHVzZXMgYSBjb3Vw bGUgb2YgY2hhbm5lbHMgb2ZmIGEKZ2VuZXJhbCBwdXJwb3NlIEFEQy4gV2UgaGF2ZSBubyByZWFz b24gdG8gd2FudCB0byBlbnN1cmUgYW55IGFsaWdubWVudApiZXR3ZWVuIHRoZSBkYXRhIGdvaW5n IHRvIHRoZSB0b3VjaHNjcmVlbiBhbmQgdGhhdCBnb2luZyB0byB0aGUKd2hvIGV2ZXIgaXMgaW50 ZXJlc3RlZCBpbiB0aGUgb3RoZXIgQURDIGNoYW5uZWxzLgoKPiAKPiArLS0tLS0tLS0tLS0tKyAg ICAgICstLS0tLS0tKyAgICAgKy0tLS0tLS0tLSsKPiB8IHNkMCBpaW9kZXYgfCA8LS0+IHwgY2hh bjAgfCA8LT4gfCBmaWx0ZXIwIHwKPiArLS0tLS0tLS0tLS0tKyAgICAgICstLS0tLS0tKyAgICAg Ky0tLS0tLS0tLSsKPiAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgo+ICAg IHwgc3lzZnMgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gICAgdiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKPiArLS0tLS0tLS0tLS0tKyAgICAgICstLS0t LS0tKyAgICAgICB8Cj4gfCBzZDEgaWlvZGV2IHwgPC0tPiB8IGNoYW4xIHwgPC0tLS0tKwo+ICst LS0tLS0tLS0tLS0rICAgICAgKy0tLS0tLS0rCj4gICAgfAo+ICAgIHwgc3lzZnMKPiAgICB2Cj4g Cj4gCj4gMykgZ3lyb2FkYyBsaWtlIHRvcG9sb2d5OiBvbmUgaWlvIGRldmljZSBwZXIgREZTRE0g ZmlsdGVyCj4gKG5vIFNEIG1vZHVsYXRvciBpaW8gZGV2aWNlIHJlZ2lzdGVyZWQpCj4gICAgICBG b3IgREZTRE0gc2NhbGUgYW5kIG9mZnNldCwgdGhlIHJlcXVpcmVkIGluZm9ybWF0aW9uIGFyZSBT RAo+ICAgICAgbW9kdWxhdG9yIHJlZmVyZW5jZSB2b2x0YWdlIGFuZCBjaGFubmVsIHR5cGVzLgo+ IAo+ICAgICAgdm9sdGFnZSByZWZlcmVuY2U6IHRoZSByZWd1bGF0b3Igdm9sdGFnZSBjYW4gYmUg cmV0cmlldmVkIGFzIGl0Cj4gICAgICBpcyBkb25lIGluICBneXJvYWRjIGRyaXZlci4KPiAgICAg IE1heWJlIHdlIGNhbiBkcm9wcGVkIG1lcmVseSBTRCBtb2R1bGF0b3IsIGFuZCBkZXNjcmliZSB2 b2x0YWdlCj4gICAgICBhcyBhIHByb3BlcnR5IG9mIHRoZSBjaGFubmVsICh0aHJvdWdoIGdlbmVy aWMgY2hhbm5lbCBiaW5kaW5nKQo+ICAgICAgVGhpcyBtYXkgYmUgdG9vIHJlc3RyaWN0aXZlIGlm IG1vcmUgaGFyZHdhcmUgaGFzIHRvIGJlCj4gICAgICBjb25maWd1cmVkIGluIHRoZSBTRCBtb2R1 bGF0b3IsIHlldC4KClRoYXQgaXMgaW5kZWVkIHRoZSBrZXkgcXVlc3Rpb24uIERvIHdlIG5lZWQg dG8gY29uZmlndXJlIHRoZSBtb2R1bGF0b3IKZGV2aWNlcz8gSWYgd2UgZG8gdGhlbiB0aGV5IG5l ZWQgdG8gaGF2ZSBhbiBleGlzdGVuY2UgaW4gdGhlIGRldmljZSBtb2RlbC4KTWFwcGluZyB0aGVt IGFzIElJTyBkZXZpY2VzIHByb3ZpZGVzIHJldXNhYmlsaXR5IGFjcm9zcyBtdWx0aXBsZQpmaWx0 ZXIgaW1wbGVtZW50YXRpb25zLgoKPiAKPiAgICAgIGNoYW5uZWwgdHlwZTogSUlPIGdlbmVyaWMg Y2hhbm5lbCBiaW5kaW5nIGNvdWxkIGJlIHVzZWQgaGVyZQo+ICAgICAgaW5zdGVhZCBvZiBwcm9w cmlldGFyeSBwcm9wZXJ0aWVzCj4gICAgICB0byBkZXNjcmliZSB0aGUgY2hhbm5lbHMKPiAKPiAg ICAgIGJpbmRpbmcgc2FtcGxlOgo+ICAgICAgZGZzZG1fcGRtMTogZmlsdGVyQDEgewo+ICAgICAg ICAgIGNvbXBhdGlibGUgPSAic3Qsc3RtMzItZGZzZG0tYWRjIjsKPiAgICAgICAgICByZWcgPSA8 MT47Cj4gICAgICAgICAgaW50ZXJydXB0cyA9IDxHSUNfU1BJIDExMSBJUlFfVFlQRV9MRVZFTF9I SUdIPjsKPiAgICAgICAgICBkbWFzID0gPCZkbWFtdXgxIDEwMiAweDQwMCAweDAxPjsKPiAgICAg ICAgICBkbWEtbmFtZXMgPSAicngiOwo+ICAgICAgICAgIHN0LGZpbHRlci1vcmRlciA9IDwxPjsK PiAKPiAgICAgICAgICBjaGFubmVsQDIgewo+ICAgICAgICAgICAgICByZWcgPSA8Mj47Cj4gICAg ICAgICAgICAgIGxhYmVsID0gImluMiI7Cj4gICAgICAgICAgICAgIHN0LGFkYy1jaGFubmVsLXR5 cGVzID0gIlNQSV9SIjsKPiAgICAgICAgICAgICAgc3QsYWRjLWNoYW5uZWwtY2xrLXNyYyA9ICJD TEtPVVRfRiI7Cj4gCj4gICAgICAgICAgICAgIHNkQDAgeyAgICA/Cj4gICAgICAgICAgICAgICAg ICByZWcgPSA8MD47Cj4gICAgICAgICAgICAgICAgICBjb21wYXRpYmxlID0gInNkLW1vZCI7Cj4g ICAgICAgICAgICAgICAgICB2cmVmLXN1cHBseSA9IDwmdnJlZj47Cj4gICAgICAgICAgICAgIH07 Cj4gICAgICAgICAgfTsKPiAgICAgIH07Cj4gCj4gICAgICAqIGNvbnMKPiAgICAgICAgICAtIFRo ZSBzdWIgZGV2aWNlcyBhcmUgZW1iZWRkZWQgaW4gdGhlIGRyaXZlciBhbmQgYXJlIG5vdAo+ICAg ICAgICAgIGJhc2VkIG9uIGdlbmVyYWwgZGV2aWNlIEFQSS4KPiAgICAgICAgICBBbHRlcm5hdGl2 ZWx5LCBpZiB3ZSB3YW50IHRvIHVzZSBzdGFuZGFyZCBkZXZpY2UgbW9kZWwKPiAgICAgICAgICBh bmQgYXZvaWQgdGhlIGNyZWF0aW9uIG9mIGFuIHVucmVsZXZhbnQgSUlPIGRldmljZSBmb3IKPiAg ICAgICAgICBTRCBtb2R1bGF0b3IsIGEgc3BlY2lmaWMgdHlwZSBvZiBkZXZpY2UgbWF5IGJlCj4g ICAgICAgICAgcHJvdmlkZWQgYnkgSUlPIGZyYW1ld29yay4gVGhpcyBjb3VsZCBiZSBhIGtpbmQg b2YKPiAgICAgICAgICAiYmFja2VuZCIgZGV2aWNlIHdpdGhvdXQgSUlPIHN5c2ZzIGludGVyZmFj ZSBhdHRhY2hlZC4KClRoYXQgbWF5IGJlIGFuIG9wdGlvbi4gIEl0IHdhcyBhbHdheXMgb24gdGhl IGxpc3Qgb2YgdGhpbmdzIHRvIGRvCnRvIGFsbG93IGZvciBJSU8gZGV2aWNlcyB0aGF0IGhhdmUg bm8gJ0lJTyBpbnRlcmZhY2UnIHRvIHVzZXJzcGFjZS4KVGhlIG1haW4gdXNlY2FzZSB3YXMgU29D IEFEQ3Mgd2hlcmUgYWxsIHRoZSBjaGFubmVscyBhcmUgZ29pbmcgdG8Kb3RoZXIgaW4ga2VybmVs IGNvbnN1bWVycywgYnV0IGl0IG1pZ2h0IGJlIGFwcGxpY2FibGUgaGVyZSBhcyB3ZWxsLgoKPiAK PiAgICAgID0+IFRoaXMgc29sdXRpb24gY291bGQgYmUgYXBwbGljYWJsZSBidXQgc29tZSBkZXRh aWxzIGluIHRoZSAgCj4gICAgICBpbXBsZW1lbnRhdGlvbiB3aWxsIGhhdmUgdG8gYmUgY2xhcmlm aWVkIGZ1cnRoZXIuCj4gICAgICBNYXkgd2UgY29uc2lkZXIgYWRkaW5nIGEgImJhY2tlbmQiIGRl dmljZSB3aXRob3V0IElJTyBpbnRlcmZhY2UKPiAgICAgIGluIHRoZSBJSU8gZnJhbWV3b3JrID8K PiAgICAgIE1heSB0aGUgU0QgbW9kdWxhdG9yIGJlIGRyb3BwZWQgPwo+IAo+ICstLS0tLSsgICAg ICstLS0tLS0tKyAgICAgKy0tLS0tLS0tLS0tLS0tLS0rICBzeXNmcwo+IHwgc2QwIHwgLS0+IHwg Y2hhbjAgfCAtLT4gfCBmaWx0ZXIwIGlpb2RldiB8IC0tLS0tLS0+Cj4gKy0tLS0tKyAgICAgKy0t LS0tLS0rICAgICArLS0tLS0tLS0tLS0tLS0tLSsKPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwKPiArLS0tLS0rICAgICArLS0tLS0tLSsgICAgICAgfAo+IHwgc2QxIHwg LS0+IHwgY2hhbjEgfCAtLS0tLS0rCj4gKy0tLS0tKyAgICAgKy0tLS0tLS0rCj4gCj4gCj4gSGVy ZSB0aGVyZSBpcyBhIHBvaW50IHRoYXQgbmVlZHMgdG8gYmUgY2xhcmlmaWVkIGluIHJlbGF0aW9u IHRvIHRoZSAKPiBwcmV2aW91cyBkaXNjdXNzaW9ucyBJIHRoaW5rLgo+IElmIEkgcmVmZXIgdG8g dGhlIGxhc3QgY29tbWVudCBvZiB0aGUgY3VycmVudCB0aHJlYWQsIEkgdW5kZXJzdGFuZCB0aGF0 IAo+IHlvdSB3ZXJlIGV4cGVjdGluZyB0aGUgSUlPIHN5c2ZzIGludGVyZmFjZSB0byBiZSBhdHRh Y2hlZCB0byB0aGUgU0QgCj4gbW9kdWxhdG9yLiAoc29sdXRpb24gMikKClllcy4KCj4gRm9yIHRo ZSBneXJvYWRjLCB0aGUgY2hhbm5lbHMgYXJlIGluZGVlZCBwb3B1bGF0ZWQgYnkgdGhlIHN1YiBk ZXZpY2VzLiAKPiBIb3dldmVyIHRoZSBJSU8gZGV2aWNlIGNvcnJlc3BvbmRzIHRvIHRoZSBBREMg Y29uc3VtZXIgYW5kIG5vdCB0aGUgQURDcyAKPiB0aGVtc2VsdmVzLiAoc29sdXRpb24gMykKClRo YXQgb25lIGlzIGEgcmF0aGVyIG9kZCBjYXNlIGJlY2F1c2Ugbm8gZ2VuZXJpYyBoYW5kbGluZyBp cyBwb3NzaWJsZQpvZiB0aGUgQURDcy4gRm9yIGV4YW1wbGUgaXQgZG9lc24ndCB1c2UgdGhlIGFk NzQ3NiBkcml2ZXIgYmVjYXVzZSB3ZSBjYW4ndAp0YWxrIHRvIHRoZSBkZXZpY2UgZXZlbiB0aG91 Z2ggaXQncyB0aGUgc2FtZSBBREMgYXMgdGhlIGFkNzQ3NiBkcml2ZXIgc3VwcG9ydHMuCgo+IAo+ IFdoYXQgaXMgdGhlIHRoZSBwcmVmZXJyZWQgYXBwcm9hY2ggZm9yIHlvdSA/CgpJIHN0aWxsIGZh dm91ciBzb2x1dGlvbiAyLCBidXQgaWYgeW91IG5lZWQgdG8gaGF2ZSB0aGUgY2hhbm5lbHMgY2xl YW5seQpwcmVzZW50ZWQgaW4gYSBzY2FuIGRlc3BpdGUgdGhlbSBjb21pbmcgZnJvbSBkaWZmZXJl bnQgbW9kdWxhdG9ycywgdGhlbiB0aGF0CnNvbHV0aW9uIG1heSBub3QgYmUgc3VmZmljaWVudCBh bmQgd2UgbmVlZCB0byB0aGluayBhYm91dCBob3cgZWxzZSB0byBkbwp0aGluZ3MuCgpKb25hdGhh bgoKPiAKPiBUaGFua3MgZm9yIHlvdXIgZmVlZGJhY2sKPiBCZXN0IHJlZ2FyZHMKPiBPbGl2aWVy Cj4gCj4gCj4gPj4KPiA+PiBSZWdhcmRzCj4gPj4gT2xpdmllciAgCj4gPj4+PiBJZiBub3QsIEkg cHJvYmFibHkgbWlzc2Vkc29tZXRoaW5nLiBDb3VsZCB5b3UgcGxlYXNlIGNsYXJpZnkgdGhpcyBw b2ludCA/Cj4gPj4+Pgo+ID4+Pj4gUmVnYXJkcwo+ID4+Pj4gT2xpdmllciAgCj4gPj4+Pj4gVGhp cyB3YXNuJ3QgcmVhbGx5IGFuIGlzc3VlIHdoZW4gdGhlIG9ubHkgdmFsdWVzIGF2YWlsYWJsZSB3 ZXJlCj4gPj4+Pj4gcmF3LCBidXQgaWYgd2UgYXJlIGFkZGluZyBzY2FsZSBhbmQgb2Zmc2V0LCB0 aGV5IGFyZSB0aGluZ3MgdGhhdAo+ID4+Pj4+IGJlbG9uZyB0byB0aGUgYWQxMjAxIGZvciBleGFt cGxlLCBub3QgdGhlIHVwc3RyZWFtIHN0bTMyLWRmc2RtIHVuaXQuCj4gPj4+Pj4KPiA+Pj4+PiBU aGlua2luZyBvZiBpdCBhbm90aGVyIHdheSwgd2UgZG9uJ3QgcmVwb3J0IGFuIFNQSSBBREMgb3V0 cHV0IGluCj4gPj4+Pj4gdGhlIGRyaXZlciBmb3IgdGhlIFNQSSBtYXN0ZXIuCj4gPj4+Pj4KPiA+ Pj4+PiBDb3VsZCB3ZSBmbGlwIGl0IGFyb3VuZCB3aXRob3V0IGJyZWFraW5nIGFueXRoaW5nPwo+ ID4+Pj4+Cj4gPj4+Pj4gSm9uYXRoYW4KPiA+Pj4+PiAgICAgICAgCj4gPj4+Pj4+IC0tLQo+ID4+ Pj4+PiAgICAgZHJpdmVycy9paW8vYWRjL3N0bTMyLWRmc2RtLWFkYy5jIHwgMTA1ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrLQo+ID4+Pj4+PiAgICAgMSBmaWxlIGNoYW5nZWQsIDEwMiBp bnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+ID4+Pj4+Pgo+ID4+Pj4+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9paW8vYWRjL3N0bTMyLWRmc2RtLWFkYy5jCj4gPj4+Pj4+IGIvZHJpdmVycy9p aW8vYWRjL3N0bTMyLWRmc2RtLWFkYy5jCj4gPj4+Pj4+IGluZGV4IDA3YjlkZmRmOGU3Ni4uYjg1 ZmQzZTkwNDk2IDEwMDY0NAo+ID4+Pj4+PiAtLS0gYS9kcml2ZXJzL2lpby9hZGMvc3RtMzItZGZz ZG0tYWRjLmMKPiA+Pj4+Pj4gKysrIGIvZHJpdmVycy9paW8vYWRjL3N0bTMyLWRmc2RtLWFkYy5j Cj4gPj4+Pj4+IEBAIC0xMCw2ICsxMCw3IEBACj4gPj4+Pj4+ICAgICAjaW5jbHVkZSA8bGludXgv ZG1hLW1hcHBpbmcuaD4KPiA+Pj4+Pj4gICAgICNpbmNsdWRlIDxsaW51eC9paW8vYWRjL3N0bTMy LWRmc2RtLWFkYy5oPgo+ID4+Pj4+PiAgICAgI2luY2x1ZGUgPGxpbnV4L2lpby9idWZmZXIuaD4K PiA+Pj4+Pj4gKyNpbmNsdWRlIDxsaW51eC9paW8vY29uc3VtZXIuaD4KPiA+Pj4+Pj4gICAgICNp bmNsdWRlIDxsaW51eC9paW8vaHctY29uc3VtZXIuaD4KPiA+Pj4+Pj4gICAgICNpbmNsdWRlIDxs aW51eC9paW8vc3lzZnMuaD4KPiA+Pj4+Pj4gICAgICNpbmNsdWRlIDxsaW51eC9paW8vdGltZXIv c3RtMzItbHB0aW0tdHJpZ2dlci5oPgo+ID4+Pj4+PiBAQCAtNjcsNiArNjgsMTMgQEAgc3RydWN0 IHN0bTMyX2Rmc2RtX2Rldl9kYXRhIHsKPiA+Pj4+Pj4gICAgIAljb25zdCBzdHJ1Y3QgcmVnbWFw X2NvbmZpZyAqcmVnbWFwX2NmZzsKPiA+Pj4+Pj4gICAgIH07Cj4gPj4+Pj4+ICAgICAKPiA+Pj4+ Pj4gK3N0cnVjdCBzdG0zMl9kZnNkbV9zZF9jaGFuX2luZm8gewo+ID4+Pj4+PiArCWludCBzY2Fs ZV92YWw7Cj4gPj4+Pj4+ICsJaW50IHNjYWxlX3ZhbDI7Cj4gPj4+Pj4+ICsJaW50IG9mZnNldDsK PiA+Pj4+Pj4gKwl1bnNpZ25lZCBpbnQgZGlmZmVyZW50aWFsOwo+ID4+Pj4+PiArfTsKPiA+Pj4+ Pj4gKwo+ID4+Pj4+PiAgICAgc3RydWN0IHN0bTMyX2Rmc2RtX2FkYyB7Cj4gPj4+Pj4+ICAgICAJ c3RydWN0IHN0bTMyX2Rmc2RtICpkZnNkbTsKPiA+Pj4+Pj4gICAgIAljb25zdCBzdHJ1Y3Qgc3Rt MzJfZGZzZG1fZGV2X2RhdGEgKmRldl9kYXRhOyBAQCAtNzksNiArODcsNwo+ID4+Pj4+PiBAQCBz dHJ1Y3Qgc3RtMzJfZGZzZG1fYWRjIHsKPiA+Pj4+Pj4gICAgIAlzdHJ1Y3QgaWlvX2h3X2NvbnN1 bWVyICpod2M7Cj4gPj4+Pj4+ICAgICAJc3RydWN0IGNvbXBsZXRpb24gY29tcGxldGlvbjsKPiA+ Pj4+Pj4gICAgIAl1MzIgKmJ1ZmZlcjsKPiA+Pj4+Pj4gKwlzdHJ1Y3Qgc3RtMzJfZGZzZG1fc2Rf Y2hhbl9pbmZvICpzZF9jaGFuOwo+ID4+Pj4+PiAgICAgCj4gPj4+Pj4+ICAgICAJLyogQXVkaW8g c3BlY2lmaWMgKi8KPiA+Pj4+Pj4gICAgIAl1bnNpZ25lZCBpbnQgc3BpX2ZyZXE7ICAvKiBTUEkg YnVzIGNsb2NrIGZyZXF1ZW5jeSAqLyBAQAo+ID4+Pj4+PiAtMTI3MSw3ICsxMjgwLDEwIEBAIHN0 YXRpYyBpbnQgc3RtMzJfZGZzZG1fcmVhZF9yYXcoc3RydWN0IGlpb19kZXYgKmluZGlvX2RldiwK PiA+Pj4+Pj4gICAgIAkJCQlpbnQgKnZhbDIsIGxvbmcgbWFzaykKPiA+Pj4+Pj4gICAgIHsKPiA+ Pj4+Pj4gICAgIAlzdHJ1Y3Qgc3RtMzJfZGZzZG1fYWRjICphZGMgPSBpaW9fcHJpdihpbmRpb19k ZXYpOwo+ID4+Pj4+PiAtCWludCByZXQ7Cj4gPj4+Pj4+ICsJc3RydWN0IHN0bTMyX2Rmc2RtX2Zp bHRlciAqZmwgPSAmYWRjLT5kZnNkbS0+ZmxfbGlzdFthZGMtPmZsX2lkXTsKPiA+Pj4+Pj4gKwlz dHJ1Y3Qgc3RtMzJfZGZzZG1fZmlsdGVyX29zciAqZmxvID0gJmZsLT5mbG9bZmwtPmZhc3RdOwo+ ID4+Pj4+PiArCXUzMiBtYXggPSBmbG8tPm1heCA8PCAoZmxvLT5sc2hpZnQgLSBjaGFuLT5zY2Fu X3R5cGUuc2hpZnQpOwo+ID4+Pj4+PiArCWludCByZXQsIGlkeCA9IGNoYW4tPnNjYW5faW5kZXg7 Cj4gPj4+Pj4+ICAgICAKPiA+Pj4+Pj4gICAgIAlzd2l0Y2ggKG1hc2spIHsKPiA+Pj4+Pj4gICAg IAljYXNlIElJT19DSEFOX0lORk9fUkFXOgo+ID4+Pj4+PiBAQCAtMTMwNyw2ICsxMzE5LDQxIEBA IHN0YXRpYyBpbnQgc3RtMzJfZGZzZG1fcmVhZF9yYXcoc3RydWN0IGlpb19kZXYgKmluZGlvX2Rl diwKPiA+Pj4+Pj4gICAgIAkJKnZhbCA9IGFkYy0+c2FtcGxlX2ZyZXE7Cj4gPj4+Pj4+ICAgICAK PiA+Pj4+Pj4gICAgIAkJcmV0dXJuIElJT19WQUxfSU5UOwo+ID4+Pj4+PiArCj4gPj4+Pj4+ICsJ Y2FzZSBJSU9fQ0hBTl9JTkZPX1NDQUxFOgo+ID4+Pj4+PiArCQkvKgo+ID4+Pj4+PiArCQkgKiBT Y2FsZSBpcyBleHByZXNzZWQgaW4gbVYuCj4gPj4+Pj4+ICsJCSAqIFdoZW4gZmFzdCBtb2RlIGlz IGRpc2FibGVkLCBhY3R1YWwgcmVzb2x1dGlvbiBtYXkgYmUgbG93ZXIKPiA+Pj4+Pj4gKwkJICog dGhhbiAyXm4sIHdoZXJlIG49cmVhbGJpdHMtMS4KPiA+Pj4+Pj4gKwkJICogVGhpcyBsZWFkcyB0 byB1bmRlcmVzdGltYXRpbmcgaW5wdXQgdm9sdGFnZS4gVG8KPiA+Pj4+Pj4gKwkJICogY29tcGVu c2F0ZSB0aGlzIGRldmlhdGlvbiwgdGhlIHZvbHRhZ2UgcmVmZXJlbmNlIGNhbiBiZQo+ID4+Pj4+ PiArCQkgKiBjb3JyZWN0ZWQgd2l0aCBhIGZhY3RvciA9IHJlYWxiaXRzIHJlc29sdXRpb24gLyBh Y3R1YWwgbWF4Cj4gPj4+Pj4+ICsJCSAqLwo+ID4+Pj4+PiArCQkqdmFsID0gZGl2X3U2NCgodTY0 KWFkYy0+c2RfY2hhbltpZHhdLnNjYWxlX3ZhbCAqCj4gPj4+Pj4+ICsJCQkgICAgICAgKHU2NClC SVQoREZTRE1fREFUQV9SRVMgLSAxKSwgbWF4KTsKPiA+Pj4+Pj4gKwkJKnZhbDIgPSBjaGFuLT5z Y2FuX3R5cGUucmVhbGJpdHM7Cj4gPj4+Pj4+ICsJCWlmIChhZGMtPnNkX2NoYW5baWR4XS5kaWZm ZXJlbnRpYWwpCj4gPj4+Pj4+ICsJCQkqdmFsICo9IDI7Cj4gPj4+Pj4+ICsKPiA+Pj4+Pj4gKwkJ cmV0dXJuIElJT19WQUxfRlJBQ1RJT05BTF9MT0cyOwo+ID4+Pj4+PiArCj4gPj4+Pj4+ICsJY2Fz ZSBJSU9fQ0hBTl9JTkZPX09GRlNFVDoKPiA+Pj4+Pj4gKwkJLyoKPiA+Pj4+Pj4gKwkJICogREZT RE0gb3V0cHV0IGRhdGEgYXJlIGluIHRoZSByYW5nZSBbLTJebiwyXm4tMV0sCj4gPj4+Pj4+ICsJ CSAqIHdpdGggbj1yZWFsYml0cy0xLgo+ID4+Pj4+PiArCQkgKiAtIERpZmZlcmVudGlhbCBtb2R1 bGF0b3I6Cj4gPj4+Pj4+ICsJCSAqIE9mZnNldCBjb3JyZXNwb25kIHRvIFNEIG1vZHVsYXRvciBv ZmZzZXQuCj4gPj4+Pj4+ICsJCSAqIC0gU2luZ2xlIGVuZGVkIG1vZHVsYXRvcjoKPiA+Pj4+Pj4g KwkJICogSW5wdXQgaXMgaW4gWzBWLFZyZWZdIHJhbmdlLCB3aGVyZSAwViBjb3JyZXNwb25kcyB0 byAtMl5uLgo+ID4+Pj4+PiArCQkgKiBBZGQgMl5uIHRvIG9mZnNldC4gKGkuZS4gbWlkZGxlIG9m IGlucHV0IHJhbmdlKQo+ID4+Pj4+PiArCQkgKiBvZmZzZXQgPSBvZmZzZXQoc2QpICogdnJlZiAv IHJlcyhzZCkgKiBtYXggLyB2cmVmLgo+ID4+Pj4+PiArCQkgKi8KPiA+Pj4+Pj4gKwkJKnZhbCA9 IGRpdl91NjQoKHU2NCltYXggKiBhZGMtPnNkX2NoYW5baWR4XS5vZmZzZXQsCj4gPj4+Pj4+ICsJ CQkgICAgICAgQklUKGFkYy0+c2RfY2hhbltpZHhdLnNjYWxlX3ZhbDIgLSAxKSk7Cj4gPj4+Pj4+ ICsJCWlmICghYWRjLT5zZF9jaGFuW2lkeF0uZGlmZmVyZW50aWFsKQo+ID4+Pj4+PiArCQkJKnZh bCArPSBtYXg7Cj4gPj4+Pj4+ICsKPiA+Pj4+Pj4gKwkJcmV0dXJuIElJT19WQUxfSU5UOwo+ID4+ Pj4+PiAgICAgCX0KPiA+Pj4+Pj4gICAgIAo+ID4+Pj4+PiAgICAgCXJldHVybiAtRUlOVkFMOwo+ ID4+Pj4+PiBAQCAtMTQzMCw3ICsxNDc3LDkgQEAgc3RhdGljIGludCBzdG0zMl9kZnNkbV9hZGNf Y2hhbl9pbml0X29uZShzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2LAo+ID4+Pj4+PiAgICAgCSAq IElJT19DSEFOX0lORk9fUkFXOiB1c2VkIHRvIGNvbXB1dGUgcmVndWxhciBjb252ZXJzaW9uCj4g Pj4+Pj4+ICAgICAJICogSUlPX0NIQU5fSU5GT19PVkVSU0FNUExJTkdfUkFUSU86IHVzZWQgdG8g c2V0IG92ZXJzYW1wbGluZwo+ID4+Pj4+PiAgICAgCSAqLwo+ID4+Pj4+PiAtCWNoLT5pbmZvX21h c2tfc2VwYXJhdGUgPSBCSVQoSUlPX0NIQU5fSU5GT19SQVcpOwo+ID4+Pj4+PiArCWNoLT5pbmZv X21hc2tfc2VwYXJhdGUgPSBCSVQoSUlPX0NIQU5fSU5GT19SQVcpIHwKPiA+Pj4+Pj4gKwkJCQkg QklUKElJT19DSEFOX0lORk9fU0NBTEUpIHwKPiA+Pj4+Pj4gKwkJCQkgQklUKElJT19DSEFOX0lO Rk9fT0ZGU0VUKTsKPiA+Pj4+Pj4gICAgIAljaC0+aW5mb19tYXNrX3NoYXJlZF9ieV9hbGwgPSBC SVQoSUlPX0NIQU5fSU5GT19PVkVSU0FNUExJTkdfUkFUSU8pIHwKPiA+Pj4+Pj4gICAgIAkJCQkJ QklUKElJT19DSEFOX0lORk9fU0FNUF9GUkVRKTsKPiA+Pj4+Pj4gICAgIAo+ID4+Pj4+PiBAQCAt MTQ4MSw4ICsxNTMwLDEwIEBAIHN0YXRpYyBpbnQgc3RtMzJfZGZzZG1fYWRjX2luaXQoc3RydWN0 IGlpb19kZXYgKmluZGlvX2RldikKPiA+Pj4+Pj4gICAgIHsKPiA+Pj4+Pj4gICAgIAlzdHJ1Y3Qg aWlvX2NoYW5fc3BlYyAqY2g7Cj4gPj4+Pj4+ICAgICAJc3RydWN0IHN0bTMyX2Rmc2RtX2FkYyAq YWRjID0gaWlvX3ByaXYoaW5kaW9fZGV2KTsKPiA+Pj4+Pj4gKwlzdHJ1Y3QgaWlvX2NoYW5uZWwg KmNoYW5uZWxzLCAqY2hhbjsKPiA+Pj4+Pj4gKwlzdHJ1Y3Qgc3RtMzJfZGZzZG1fc2RfY2hhbl9p bmZvICpzZF9jaGFuOwo+ID4+Pj4+PiAgICAgCWludCBudW1fY2g7Cj4gPj4+Pj4+IC0JaW50IHJl dCwgY2hhbl9pZHg7Cj4gPj4+Pj4+ICsJaW50IHJldCwgY2hhbl9pZHgsIHZhbDI7Cj4gPj4+Pj4+ ICAgICAKPiA+Pj4+Pj4gICAgIAlhZGMtPm92ZXJzYW1wID0gREZTRE1fREVGQVVMVF9PVkVSU0FN UExJTkc7Cj4gPj4+Pj4+ICAgICAJcmV0ID0gc3RtMzJfZGZzZG1fY29tcHV0ZV9hbGxfb3Nycyhp bmRpb19kZXYsIGFkYy0+b3ZlcnNhbXApOwo+ID4+Pj4+PiBAQCAtMTUwNiw2ICsxNTU3LDIyIEBA IHN0YXRpYyBpbnQgc3RtMzJfZGZzZG1fYWRjX2luaXQoc3RydWN0IGlpb19kZXYgKmluZGlvX2Rl dikKPiA+Pj4+Pj4gICAgIAlpZiAoIWNoKQo+ID4+Pj4+PiAgICAgCQlyZXR1cm4gLUVOT01FTTsK PiA+Pj4+Pj4gICAgIAo+ID4+Pj4+PiArCS8qIEdldCBTRCBtb2R1bGF0b3IgY2hhbm5lbHMgKi8K PiA+Pj4+Pj4gKwljaGFubmVscyA9IGlpb19jaGFubmVsX2dldF9hbGwoJmluZGlvX2Rldi0+ZGV2 KTsKPiA+Pj4+Pj4gKwlpZiAoSVNfRVJSKGNoYW5uZWxzKSkgewo+ID4+Pj4+PiArCQlkZXZfZXJy KCZpbmRpb19kZXYtPmRldiwgIkZhaWxlZCB0byBnZXQgY2hhbm5lbCAlbGRcbiIsCj4gPj4+Pj4+ ICsJCQlQVFJfRVJSKGNoYW5uZWxzKSk7Cj4gPj4+Pj4+ICsJCXJldHVybiBQVFJfRVJSKGNoYW5u ZWxzKTsKPiA+Pj4+Pj4gKwl9Cj4gPj4+Pj4+ICsJY2hhbiA9ICZjaGFubmVsc1swXTsKPiA+Pj4+ Pj4gKwo+ID4+Pj4+PiArCWFkYy0+c2RfY2hhbiA9IGRldm1fa3phbGxvYygmaW5kaW9fZGV2LT5k ZXYsCj4gPj4+Pj4+ICsJCQkJICAgIHNpemVvZigqYWRjLT5zZF9jaGFuKSAqIG51bV9jaCwgR0ZQ X0tFUk5FTCk7Cj4gPj4+Pj4+ICsJaWYgKCFhZGMtPnNkX2NoYW4pCj4gPj4+Pj4+ICsJCXJldHVy biAtRU5PTUVNOwo+ID4+Pj4+PiArCj4gPj4+Pj4+ICsJc2RfY2hhbiA9IGFkYy0+c2RfY2hhbjsK PiA+Pj4+Pj4gKwo+ID4+Pj4+PiAgICAgCWZvciAoY2hhbl9pZHggPSAwOyBjaGFuX2lkeCA8IG51 bV9jaDsgY2hhbl9pZHgrKykgewo+ID4+Pj4+PiAgICAgCQljaFtjaGFuX2lkeF0uc2Nhbl9pbmRl eCA9IGNoYW5faWR4Owo+ID4+Pj4+PiAgICAgCQlyZXQgPSBzdG0zMl9kZnNkbV9hZGNfY2hhbl9p bml0X29uZShpbmRpb19kZXYsCj4gPj4+Pj4+ICZjaFtjaGFuX2lkeF0pOyBAQCAtMTUxMyw2ICsx NTgwLDM4IEBAIHN0YXRpYyBpbnQgc3RtMzJfZGZzZG1fYWRjX2luaXQoc3RydWN0IGlpb19kZXYg KmluZGlvX2RldikKPiA+Pj4+Pj4gICAgIAkJCWRldl9lcnIoJmluZGlvX2Rldi0+ZGV2LCAiQ2hh bm5lbHMgaW5pdCBmYWlsZWRcbiIpOwo+ID4+Pj4+PiAgICAgCQkJcmV0dXJuIHJldDsKPiA+Pj4+ Pj4gICAgIAkJfQo+ID4+Pj4+PiArCj4gPj4+Pj4+ICsJCWlmICghY2hhbi0+aW5kaW9fZGV2KQo+ ID4+Pj4+PiArCQkJcmV0dXJuIC1FSU5WQUw7Cj4gPj4+Pj4+ICsKPiA+Pj4+Pj4gKwkJcmV0ID0g aWlvX3JlYWRfY2hhbm5lbF9zY2FsZShjaGFuLCAmc2RfY2hhbi0+c2NhbGVfdmFsLAo+ID4+Pj4+ PiArCQkJCQkgICAgICZzZF9jaGFuLT5zY2FsZV92YWwyKTsKPiA+Pj4+Pj4gKwkJaWYgKHJldCA8 IDApIHsKPiA+Pj4+Pj4gKwkJCWRldl9lcnIoJmluZGlvX2Rldi0+ZGV2LAo+ID4+Pj4+PiArCQkJ CSJGYWlsZWQgdG8gZ2V0IGNoYW5uZWwgJWQgc2NhbGVcbiIsIGNoYW5faWR4KTsKPiA+Pj4+Pj4g KwkJCXJldHVybiByZXQ7Cj4gPj4+Pj4+ICsJCX0KPiA+Pj4+Pj4gKwo+ID4+Pj4+PiArCQlpZiAo aWlvX2NoYW5uZWxfaGFzX2luZm8oY2hhbi0+Y2hhbm5lbCwgSUlPX0NIQU5fSU5GT19PRkZTRVQp KSB7Cj4gPj4+Pj4+ICsJCQlyZXQgPSBpaW9fcmVhZF9jaGFubmVsX29mZnNldChjaGFuLCAmc2Rf Y2hhbi0+b2Zmc2V0LAo+ID4+Pj4+PiArCQkJCQkJICAgICAgJnZhbDIpOwo+ID4+Pj4+PiArCQkJ aWYgKHJldCA8IDApIHsKPiA+Pj4+Pj4gKwkJCQlkZXZfZXJyKCZpbmRpb19kZXYtPmRldiwKPiA+ Pj4+Pj4gKwkJCQkJIkZhaWxlZCB0byBnZXQgY2hhbm5lbCAlZCBvZmZzZXRcbiIsCj4gPj4+Pj4+ ICsJCQkJCWNoYW5faWR4KTsKPiA+Pj4+Pj4gKwkJCQlyZXR1cm4gcmV0Owo+ID4+Pj4+PiArCQkJ fQo+ID4+Pj4+PiArCQl9Cj4gPj4+Pj4+ICsKPiA+Pj4+Pj4gKwkJc2RfY2hhbi0+ZGlmZmVyZW50 aWFsID0gY2hhbi0+Y2hhbm5lbC0+ZGlmZmVyZW50aWFsOwo+ID4+Pj4+PiArCj4gPj4+Pj4+ICsJ CWRldl9kYmcoJmluZGlvX2Rldi0+ZGV2LCAiQ2hhbm5lbCAlZCAlcyBzY2FsZSByZWY9JWQgb2Zm c2V0PSVkIiwKPiA+Pj4+Pj4gKwkJCWNoYW5faWR4LCBjaGFuLT5jaGFubmVsLT5kaWZmZXJlbnRp YWwgPwo+ID4+Pj4+PiArCQkJImRpZmZlcmVudGlhbCIgOiAic2luZ2xlLWVuZGVkIiwKPiA+Pj4+ Pj4gKwkJCXNkX2NoYW4tPnNjYWxlX3ZhbCwgc2RfY2hhbi0+b2Zmc2V0KTsKPiA+Pj4+Pj4gKwo+ ID4+Pj4+PiArCQljaGFuKys7Cj4gPj4+Pj4+ICsJCXNkX2NoYW4rKzsKPiA+Pj4+Pj4gICAgIAl9 Cj4gPj4+Pj4+ICAgICAKPiA+Pj4+Pj4gICAgIAlpbmRpb19kZXYtPm51bV9jaGFubmVscyA9IG51 bV9jaDsgIAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5m cmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xp bnV4LWFybS1rZXJuZWwK