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 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0D497C433F5 for ; Sun, 26 Sep 2021 14:54: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 C6E3361041 for ; Sun, 26 Sep 2021 14:54:12 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org C6E3361041 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=+mMH/VsvtPCl5awLZh1ykcbHfIMAR3VF76wFdzen/tg=; b=OciuxOiZeNrgf8 MKu4s3Zv/cImY3ixU8wn+vAyP4ZaMxKrbwHXhp8DuIWGH0uaJo5Pvx0HhV3hlFl+Suxax/HsHE9gE X+cX9Whd7d6mq1CQlz4+gQwQ30qBdVtb3bNdfNQ+9KAxXx/KeCa9D12M51rujq5juCYnHMpqd0dDe +csDB/0cumcczJoH/JpHK22dlOPVHBqTPy6W8O4x03mFw/h7TX6jApvjLp0zKEjJ89tLOosGoJeno ieu0QLjRgZ9PzP5LABLdyhRRFB48FwTQ0BZKQDH4IVR6cfR5RuELBLi2AB77+sVnmHn1P5yG2RvWF cHJCBcdYJrJZGHaJat4Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mUVW0-000it0-Sn; Sun, 26 Sep 2021 14:52:29 +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 1mUVVu-000irH-Os for linux-arm-kernel@lists.infradead.org; Sun, 26 Sep 2021 14:52:26 +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 7149060F48; Sun, 26 Sep 2021 14:52:18 +0000 (UTC) Date: Sun, 26 Sep 2021 15:56:07 +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: <20210926155607.3a7fae81@jic23-huawei> In-Reply-To: <2ac8eafa-25fe-6640-edef-960e56733534@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> <20210912182617.5635fa06@jic23-huawei> <20210919191414.09270f4e@jic23-huawei> <2ac8eafa-25fe-6640-edef-960e56733534@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-20210926_075222_922500_6A71959E X-CRM114-Status: GOOD ( 52.79 ) 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 T24gRnJpLCAyNCBTZXAgMjAyMSAxNToxNDoyMCArMDIwMApPbGl2aWVyIE1PWVNBTiA8b2xpdmll ci5tb3lzYW5AZm9zcy5zdC5jb20+IHdyb3RlOgoKPiBIaSBKb25hdGhhbiwKPiAKPiBPbiA5LzE5 LzIxIDg6MTQgUE0sIEpvbmF0aGFuIENhbWVyb24gd3JvdGU6Cj4gPiBPbiBUdWUsIDE0IFNlcCAy MDIxIDE3OjQzOjE1ICswMjAwCj4gPiBPbGl2aWVyIE1PWVNBTiA8b2xpdmllci5tb3lzYW5AZm9z cy5zdC5jb20+IHdyb3RlOgo+ID4gICAKPiA+PiBIaSBKb25hdGhhbiwKPiA+Pgo+ID4+IFRoYW5r cywgZm9yIHlvdXIgY29tbWVudHMuCj4gPj4KPiA+PiBPbiA5LzEyLzIxIDc6MjYgUE0sIEpvbmF0 aGFuIENhbWVyb24gd3JvdGU6ICAKPiA+Pj4gT24gRnJpLCAxMCBTZXAgMjAyMSAxNzo1Njo0NSAr MDIwMAo+ID4+PiBPbGl2aWVyIE1PWVNBTiA8b2xpdmllci5tb3lzYW5AZm9zcy5zdC5jb20+IHdy b3RlOgo+ID4+PiAgICAgIAo+ID4+Pj4gSGkgSm9uYXRoYW4sCj4gPj4+Pgo+ID4+Pj4gT24gOS8x MC8yMSA0OjA1IFBNLCBPbGl2aWVyIE1PWVNBTiB3cm90ZTogIAo+ID4+Pj4+Cj4gPj4+Pj4KPiA+ Pj4+Pgo+ID4+Pj4+IFNUIFJlc3RyaWN0ZWQKPiA+Pj4+Pgo+ID4+Pj4+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tCj4gPj4+Pj4gRnJvbTogSm9uYXRoYW4gQ2FtZXJvbiA8amljMjNAa2VybmVs Lm9yZz4KPiA+Pj4+PiBTZW50OiB2ZW5kcmVkaSAxNCBmw6l2cmllciAyMDIwIDE2OjEwCj4gPj4+ Pj4gVG86IE9saXZpZXIgTU9ZU0FOIDxvbGl2aWVyLm1veXNhbkBzdC5jb20+Cj4gPj4+Pj4gQ2M6 IHJvYmgrZHRAa2VybmVsLm9yZzsgbWFyay5ydXRsYW5kQGFybS5jb207IGtuYWFjay5oQGdteC5k ZTsgbGFyc0BtZXRhZm9vLmRlOyBkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9yZzsgbGludXgtaWlv QHZnZXIua2VybmVsLm9yZzsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsgcG1lZXJ3QHBt ZWVydy5uZXQ7IGxpbnV4LXN0bTMyQHN0LW1kLW1haWxtYW4uc3Rvcm1yZXBseS5jb207IGxpbnV4 LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwo+ID4+Pj4+IFN1YmplY3Q6IFJlOiBbUEFU Q0ggNC80XSBpaW86IGFkYzogc3RtMzItZGZzZG06IGFkZCBzY2FsZSBhbmQgb2Zmc2V0IHN1cHBv cnQKPiA+Pj4+Pgo+ID4+Pj4+IE9uIEZyaSwgMTQgRmViIDIwMjAgMTQ6NDk6MTggKzAwMDAKPiA+ Pj4+PiBPbGl2aWVyIE1PWVNBTiA8b2xpdmllci5tb3lzYW5Ac3QuY29tPiB3cm90ZToKPiA+Pj4+ PiAgICAgICAgIAo+ID4+Pj4+PiBIaSBKb25hdGhhbiwKPiA+Pj4+Pj4KPiA+Pj4+Pj4gT24gMi8x NC8yMCAyOjExIFBNLCBKb25hdGhhbiBDYW1lcm9uIHdyb3RlOiAgCj4gPj4+Pj4+PiBPbiBUdWUs IDExIEZlYiAyMDIwIDE1OjE5OjAxICswMDAwCj4gPj4+Pj4+PiBPbGl2aWVyIE1PWVNBTiA8b2xp dmllci5tb3lzYW5Ac3QuY29tPiB3cm90ZToKPiA+Pj4+Pj4+ICAgICAgICAgICAKPiA+Pj4+Pj4+ PiBIaSBKb25hdGhhbiwKPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+IE9uIDIvOC8yMCA1OjE4IFBNLCBK b25hdGhhbiBDYW1lcm9uIHdyb3RlOiAgCj4gPj4+Pj4+Pj4+IE9uIFR1ZSwgNCBGZWIgMjAyMCAx MToxMDowOCArMDEwMAo+ID4+Pj4+Pj4+PiBPbGl2aWVyIE1veXNhbiA8b2xpdmllci5tb3lzYW5A c3QuY29tPiB3cm90ZToKPiA+Pj4+Pj4+Pj4gICAgICAgICAgICAgIAo+ID4+Pj4+Pj4+Pj4gQWRk IHNjYWxlIGFuZCBvZmZzZXQgYXR0cmlidXRlcyBzdXBwb3J0IHRvIFNUTTMyIERGU0RNLgo+ID4+ Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IE9saXZpZXIgTW95c2FuIDxvbGl2 aWVyLm1veXNhbkBzdC5jb20+ICAKPiA+Pj4+Pj4+Pj4gSG1tLiBJIGNhbid0IHJlbWVtYmVyIHRo aXMgaGlzdG9yeSBvZiB0aGlzIGJ1dCB3ZSd2ZSBraW5kIG9mIGVuZGVkCj4gPj4+Pj4+Pj4+IHVw IGJhY2t3YXJkcyB3cnQgdG8gb3RoZXIgY29uc3VtZXIgZHJpdmVycy4KPiA+Pj4+Pj4+Pj4KPiA+ Pj4+Pj4+Pj4gSW4gc29tZSBzZW5zZSB0aGlzIGlzIHNpbWlsYXIgdG8gdGhlIGFuYWxvZyBneXJv c2NvcGVzLiAgSW4gdGhvc2UKPiA+Pj4+Pj4+Pj4gdGhlIGNvbnN1bWVyIGRyaXZlciBpcyB0aGUg Z3lyb3Njb3BlIHdoaWNoIGlzIGNvbnN1bWluZyB0aGUgcmF3Cj4gPj4+Pj4+Pj4+IHJlYWRpbmdz IGZyb20gYW4gQURDIGNvbm5lY3RlZCB0byB0aGUgY2hhbm5lbC4gIFRoaXMgcmVzdWx0cyBpbiB1 cwo+ID4+Pj4+Pj4+PiBnZXR0aW5nIHJlYWRpbmdzIHJlcG9ydGVkIGJ5IHRoZSBneXJvc2NvcGUg ZHJpdmVyLgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBIZXJlIHdlIGhhdmUgYSBzaWdtYSBkZWx0 YSBjb252ZXJ0b3IgY29uc3VtaW5nIHRoZSBwdWxzZSB0cmFpbgo+ID4+Pj4+Pj4+PiBmcm9tIGEg c2lnbWEgZGVsdGEgZGV2aWNlLiAgU28gdGhlIGNoYW5uZWxzIGFyZSByZXBvcnRlZCBieSB0aGUK PiA+Pj4+Pj4+Pj4gc2lnbWEgZGVsdGEgcmVjZWl2ZXIsIHdoZXJlYXMgaSB0aGluayB0aGUgbmVh cmVzdCBlcXVpdmFsZW50IHRvCj4gPj4+Pj4+Pj4+IHRoZSBhbmFsb2cgdm9sdGFnZSBvdXRwdXRp bmcgZ3lyb3Njb3BlcyB3b3VsZCBoYXZlIGJlZW4gaWYgd2UgaGFkCj4gPj4+Pj4+Pj4+IHJlcG9y dGVkIHRoZSBjaGFubmVsIHZhbHVlcyBhdCB0aGUgc2lnbWEgZGVsdGEgY29udmVydGVyLiAgCj4g Pj4+Pj4+Pj4gVGhlIERGU0RNIGRyaXZlciBpcyBjdXJyZW50bHkgdXNlZCBhcyBhIGNvbnN1bWVy IG9mIHRoZSBzZCBtb2R1bGF0b3IuCj4gPj4+Pj4+Pj4gVGhlIHNjYWxlIGFuZCBvZmZzZXQgdmFs dWVzIG9mIHRoZSBjaGFubmVscyBhcmUgYWxyZWFkeSBjb21wdXRlZCBieQo+ID4+Pj4+Pj4+IHRo ZSBERlNETSBkcml2ZXIsIGFuZCBwcm92aWRlZCBieSB0aGlzIGRyaXZlciB0byB0aGUgSUlPIEFC SS4KPiA+Pj4+Pj4+PiBIb3dldmVyLCB0aGUgREZTRE0gaGFzIG5vIHZvbHRhZ2UgcmVmZXJlbmNl LCBzbyBpdCBoYXMgdG8gcmV0cmlldmUKPiA+Pj4+Pj4+PiBpdCBmcm9tIHNkLW1vZHVsYXRvciBj aGFubmVscywgZm9yIHRoZSBzY2FsZSBmYWN0b3IgY29tcHV0YXRpb24uCj4gPj4+Pj4+Pj4KPiA+ Pj4+Pj4+PiAgICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2NhbGXCoCBvZmZzZXQKPiA+Pj4+Pj4+PiAgICAg IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIF7CoMKgwqDCoMKgIF4KPiA+Pj4+Pj4+PiAgICAgIMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHzCoMKgwqDCoMKgIHzCoMKgwqDCoMKgwqAgSUlPIEFCSQo+ID4+Pj4+Pj4+ICst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKwo+ID4+Pj4+Pj4+ICAgICAgwqDCoMKgwqDCoMKgwqDCoCArLS0tLS0tLS0tLS0tLS0tK8Kg wqDCoMKgwqDCoMKgwqDCoCArLS0tLS0tLS0tLS0tLSsKPiA+Pj4+Pj4+PiAgICAgIMKgwqDCoMKg wqDCoMKgwqAgfHNkIGRyaXZlcsKgwqDCoMKgwqAgfMKgwqDCoMKgwqDCoMKgwqDCoCB8REZTRE0g ZHJpdmVyIHwKPiA+Pj4+Pj4+PiAgICAgIMKgwqDCoMKgwqDCoMKgwqAgKy0tLS0tLS0tLS0tLS0t LSvCoMKgwqDCoMKgwqDCoMKgwqAgKy0tLS0tLS0tLS0tLS0rCj4gPj4+Pj4+Pj4gKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4g Pj4+Pj4+Pj4gICAgICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIEhXCj4gPj4+Pj4+Pj4gICAgICDCoMKgwqDCoMKgwqDCoMKgICstLS0tLS0t LS0tLS0tLS0rwqDCoMKgwqDCoMKgwqDCoMKgICstLS0tLS0tLS0tLS0tKwo+ID4+Pj4+Pj4+ICst LS0tLS0tPisgc2QtbW9kdWxhdG9ywqAgKy0tLS0tLS0tLT4rIERGU0RNICstLS0tLS0tLT4KPiA+ Pj4+Pj4+PiBhbmFsb2fCoMKgICstLS0tLS0rLS0tLS0tLS0rwqDCoMKgwqDCoMKgwqDCoMKgICst LS0tLS0tLS0tLS0tKyBvdXRwdXQgaW5wdXQKPiA+Pj4+Pj4+PiBeCj4gPj4+Pj4+Pj4gICAgICDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCB2cmVmCj4gPj4+Pj4+Pj4gICAgICDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKwo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4KPiA+Pj4+ Pj4+PiBJcyBpdCB0aGUgdG9wb2xvZ3kgeW91ciBhcmUgZXhwZWN0aW5nID8gIAo+ID4+Pj4+Pj4g SXQncyBub3QgdGhlIG9uZSB3ZSdkIGV4cGVjdCBpZiB3ZSBhcmUgYWxpZ25pbmcgd2l0aCBzaW1p bGFyIGNhc2VzCj4gPj4+Pj4+PiBlbHNld2hlcmUgaW4gSUlPLiAgRm9yIGV4YW1wbGUsIGlmIHdl IGF0dGFjaCBhbiBhbmFsb2cgYWNjZWxlcm9tZXRlcgo+ID4+Pj4+Pj4gdG8gYW4gQURDLCB3ZSBy ZXBvcnQgdGhlIGFjY2VsIGNoYW5uZWxzIG9uIHRoZSBhY2NlbGVyb21ldGVyIG5vdCB0aGUKPiA+ Pj4+Pj4+IEFEQy4gIFRoZSBlcXVpdmFsZW50IHdvdWxkIGJlIHRvIHNlZSB0aGUgREZTRE0gYXMg cHJvdmlkaW5nIGEKPiA+Pj4+Pj4+IGNvbnZlcnNpb24gc2VydmljZSB0byB0aGUgU0QgZGV2aWNl IHdoaWNoIGlzIGFjdHVhbGx5IGV4ZWN1dGluZyB0aGUKPiA+Pj4+Pj4+IG1lYXN1cmVtZW50IGFu ZCBoYXMgdGhlIGlucHV0IGNoYW5uZWxzLgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiAg ICAgwqDCoMKgwqDCoMKgwqDCoCBzY2FsZcKgIG9mZnNldCAgcmF3Cj4gPj4+Pj4+PiAgICAgwqDC oMKgwqDCoMKgwqDCoMKgwqAgXsKgwqDCoMKgwqAgXiAgICAgIF4KPiA+Pj4+Pj4+ICAgICDCoMKg wqDCoMKgwqDCoMKgwqDCoCB8wqDCoMKgwqDCoCB8wqDCoMKgwqAgIHwgIMKgwqAgICAgICAgICAg ICAgICAgICAgICAgICAgIElJTyBBQkkKPiA+Pj4+Pj4+ICAgICAgKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gPj4+Pj4+PiAg ICAgICDCoMKgwqDCoMKgwqDCoMKgICstLS0tLS0tLS0tLS0tLS0rwqDCoMKgwqDCoMKgwqDCoMKg ICstLS0tLS0tLS0tLS0tKwo+ID4+Pj4+Pj4gICAgICAgwqDCoMKgwqDCoMKgwqDCoCB8c2QgZHJp dmVywqDCoMKgwqDCoCB8wqDCoMKgwqDCoMKgwqDCoMKgIHxERlNETSBkcml2ZXIgfAo+ID4+Pj4+ Pj4gICAgICAgwqDCoMKgwqDCoMKgwqDCoCArLS0tLS0tLS0tLS0tLS0tK8KgwqDCoMKgwqDCoMKg wqDCoCArLS0tLS0tLS0tLS0tLSsKPiA+Pj4+Pj4+ICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gPj4+Pj4+PiAgICAg ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IEhXCj4gPj4+Pj4+PiAgICAgICDCoMKgwqDCoMKgwqDCoMKgICstLS0tLS0tLS0tLS0tLS0rwqDC oMKgwqDCoMKgwqDCoMKgICstLS0tLS0tLS0tLS0tKwo+ID4+Pj4+Pj4gICAgICArLS0tLS0tLT4r IHNkLW1vZHVsYXRvcsKgICstLS0tLS0tLS0+KyBERlNETSArLS0tLS0tLS0+Cj4gPj4+Pj4+PiAg ICAgIGFuYWxvZ8KgwqAgKy0tLS0tLSstLS0tLS0tLSvCoMKgwqDCoMKgwqDCoMKgwqAgKy0tLS0t LS0tLS0tLS0rIG91dHB1dAo+ID4+Pj4+Pj4gICAgICBpbnB1dMKgwqDCoMKgwqDCoMKgwqDCoMKg IF4KPiA+Pj4+Pj4+ICAgICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IHZyZWYg IAo+ID4+Pj4+Pj4+ICAgICAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICsKPiA+Pj4+ Pj4+PiAgICAgICAgICAgCj4gPj4+Pj4+IFRoYW5rcyBmb3IgeW91ciBjbGFyaWZpY2F0aW9uLgo+ ID4+Pj4+PiBvaywgbW92aW5nIHRvIHRoaXMgbG9naWMgaXMgYSBzaWduaWZpY2FudCBjaGFuZ2Uu Cj4gPj4+Pj4+IEkgbmVlZCB0byBldmFsdWF0ZSBmdXJ0aGVyIHRoZSBpbXBhY3Qgb24gdGhlIGRm c2RtIGRyaXZlci4gIAo+ID4+Pj4+Cj4gPj4+Pj4gVW5kZXJzdG9vZCEgIElmIHdlIGNhbid0IGRv IGl0IHdpdGhvdXQgcG90ZW50aWFsbHkgYnJlYWtpbmcgdXNlcnMgdGhlbiBzdWNoIGlzIGxpZmUu Cj4gPj4+Pj4KPiA+Pj4+PiBKb25hdGhhbgo+ID4+Pj4+ICAgICAgICAgCj4gPj4+Pgo+ID4+Pj4g SSBjb21lIGJhY2sgdG8gdGhpcyBvbGQsIGJ1dCBzdGlsbCB2YWxpZCB0b3BpYy4gIAo+ID4+Pgo+ ID4+PiBJJ2QgZm9yZ290dGVuIGFib3V0IHRoaXMgb25lLCBzbyBhcG9sb2dpZXMgaWYgaXQgdGFr ZXMgbWUgYSBiaXQgb2YgdGltZSB0bwo+ID4+PiBnZXQgYmFjayB1cCB0byBzcGVlZCEKPiA+Pj4g ICAgICAKPiA+Pj4+IFlvdSBtZW50aW9uZWQgdGhlIGV4YW1wbGUgb2YgYW5hbG9nIGd5cm9zY29w ZXMgaW4gYSBwcmV2aW91cyBtZXNzYWdlLgo+ID4+Pj4gTG9va2luZyBhdCBneXJvc2NvcGUgZHJp dmVycywgSSBmb3VuZCByY2FyLWd5cm9hZGMgZHJpdmVyIHdoaWNoIHNob3dzICAKPiA+Pj4KPiA+ Pj4gTm90IGEgZ3lyb3Njb3BlIGRyaXZlciBkZXNwaXRlIHRoZSBuYW1lIDopICBJIHdhcyB0aGlu a2luZyBtb3JlIG9mIHRoZQo+ID4+PiBjYXNlIHdoZXJlIHdlIGhhdmUgYSBneXJvc2NvcGUgdGhh dCBjYW4gYmUgd2lyZWQgdXAgdG8gYSBidW5jaCBvZiBkaWZmZXJlbnQKPiA+Pj4gQURDcy4KPiA+ Pj4gICAgICAKPiA+Pj4+IHJlcXVpcmVtZW50cyBzaW1pbGFyIHRvIGRmc2RtIG5lZWRzOgo+ID4+ Pj4gaHR0cHM6Ly93d3cua2VybmVsLm9yZy9kb2MvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2Jp bmRpbmdzL2lpby9hZGMvcmVuZXNhcyUyQ3JjYXItZ3lyb2FkYy55YW1sCj4gPj4+Pgo+ID4+Pj4g cmNhci1neXJvYWRjIGRyaXZlciBtYWluIGNoYXJhY3RlcmlzaXRpY3M6Cj4gPj4+PiAtIHRoZSBw YXJlbnQgZGV2aWNlIChneXJvYWRjKSBpcyBhIGNvbnN1bWVyIG9mIHN1YiBkZXZpY2VzIChTUEkg QURDcykKPiA+Pj4+IC0gdGhlIGNoYW5uZWxzIGFyZSBwb3B1bGF0ZWQgZnJvbSB0aGUgc3ViIGRl dmljZXMKPiA+Pj4+IC0gdGhlIGlpbyBkZXZpY2UgaXMgYXNzb2NpYXRlZCB0byB0aGUgcGFyZW50 IGRldmljZSAgCj4gPj4+Cj4gPj4+IEkgd291bGRuJ3QgbmVjZXNzYXJpbHkgdGFrZSB0aGF0IGFz IGEgZ29sZGVuIGV4YW1wbGUuICBXZSB3ZXJlIHN0aWxsIGZpZ3VyaW5nCj4gPj4+IG91dCBob3cg dGhpcyBzdHVmZiB3b3VsZCBmaXQgdG9nZXRoZXIuCj4gPj4+ICAgRnJvbSB3aGF0IEkgcmVjYWxs IChhbmQgaXQncyBiZWVuIGEgZmV3IHllYXJzKSB0aGF0IGRldmljZSBwcm92aWRlcyBubwo+ID4+ PiBjb25maWd1cmF0aW9uIHR5cGUgaW50ZXJmYWNlcyBmb3IgdGhlIFNQSSBBRENzIC0gdGhleSBl bmQgdXAgaGF2aW5nIG5vCj4gPj4+IGV4aXN0ZW5jZSBpbiB0aGUgZGV2aWNlIG1vZGVsIGFzIGEg cmVzdWx0LiAgVGhlcmUgaXMgbm8gbWVhbnMgb2YKPiA+Pj4gc2hhcmluZyBhbnl0aGluZyBiZXR3 ZWVuIHRoZSB3YXlzIHRoaXMgZGV2aWNlIHVzZXMgdGhlIFNQSSBBRENzIGFuZCB0aGUKPiA+Pj4g d2F5IGFueSBvdGhlciBkZXZpY2UgZG9lcy4KPiA+Pj4gICAgICAKPiA+Pj4+Cj4gPj4+Pgo+ID4+ Pj4gSSB0b29rIHRoZSBleGFtcGxlIG9mIGd5cm9hZGMgdG8gcmVjb25zaWRlciBkZnNkbSB0b3Bv bG9neSBhbmQgZXhwbG9yZQo+ID4+Pj4gc29tZSB2YXJpYW50cyBhY2NvcmRpbmcgdG8gSUlPIGRl dmljZXMgdXNlLgo+ID4+Pj4KPiA+Pj4+IDEpIGN1cnJlbnQgdG9wb2xvZ3k6IG9uZSBJSU8gZGV2 aWNlIHBlciBTRCBtb2R1bGF0b3IgYW5kIG9uZSBpaW8gZGV2aWNlCj4gPj4+PiBwZXIgREZTRE0g ZmlsdGVyCj4gPj4+PiAgICAgICAgVGhlIERGU0RNIGlzIHVzZWQgYXMgYSBjb25zdW1lciBvZiBT RCBtb2R1bGF0b3IgdGhyb3VnaCB0aGUgaHcKPiA+Pj4+ICAgICAgICBjb25zdW1lciBBUEkuCj4g Pj4+PiAgICAgICAgKiBjb25zCj4gPj4+PiAgICAgICAgICAgIC0gU0QgbW9kdWxhdG9yIGFuZCBE RlNETSBmaWx0ZXIgaGF2ZSB0aGVpciBvd24gY2hhbm5lbAo+ID4+Pj4gICAgICAgICAgICBzcGVj aWZpY2F0aW9uLgo+ID4+Pj4gICAgICAgICAgICAtIERGU0RNIHJldHJpZXZlcyBjaGFubmVscyBz Y2FsZSBpbmZvcm1hdGlvbiBmcm9tIFNECj4gPj4+PiAgICAgICAgICAgIG1vZHVsYXRvciB0byBp bml0aWFsaXplZCBpdHMgY2hhbm5lbHMKPiA+Pj4+ICAgICAgICAgICAgLSBTRCBtb2R1bGF0b3Ig SUlPIHN5c2ZzIGludGVyZmFjZSBpcyB1c2VsZXNzCj4gPj4+Pgo+ID4+Pj4gKy0tLS0tLS0tLS0t LSsgICAgICstLS0tLS0tKyAgICAgKy0tLS0tLS0tLSsgIHN5c2ZzCj4gPj4+PiB8IHNkMCBpaW9k ZXYgfCAtLT4gfCBjaGFuMCB8IC0tPiB8IGZpbHRlcjAgfCAtLS0tLS0tPgo+ID4+Pj4gKy0tLS0t LS0tLS0tLSsgICAgICstLS0tLS0tKyAgICAgKy0tLS0tLS0tLSsKPiA+Pj4+ICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgo+ID4+Pj4gICAgICB8IHN5c2ZzICAgICAgICAg ICAgICAgICAgICAgICAgICB8Cj4gPj4+PiAgICAgIHYgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwKPiA+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+ ID4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gPj4+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKPiA+Pj4+ICstLS0tLS0tLS0tLS0r ICAgICArLS0tLS0tLSsgICAgICAgfAo+ID4+Pj4gfCBzZDEgaWlvZGV2IHwgLS0+IHwgY2hhbjEg fCAtLS0tLS0rCj4gPj4+PiArLS0tLS0tLS0tLS0tKyAgICAgKy0tLS0tLS0rCj4gPj4+PiAgICAg IHwKPiA+Pj4+ICAgICAgfCBzeXNmcwo+ID4+Pj4gICAgICB2Cj4gPj4+Pgo+ID4+Pj4KPiA+Pj4+ IDIpICJjb252ZXJzaW9uIHNlcnZpY2UiIHRvcG9sb2d5OiBvbmUgSUlPIGRldmljZSBwZXIgU0Qg bW9kdWxhdG9yCj4gPj4+PiAgICAgICAgKiBjb25zCj4gPj4+PiAgICAgICAgICAgIC0gRGF0YSB0 cmFuc2ZlcnM6IGluIHRoaXMgY2FzZSB0aGUgY29udmVydGVkIGRhdGEgZnJvbQo+ID4+Pj4gICAg ICAgICAgICBERlNETSBmaWx0ZXIgaGF2ZSB0byBiZSBzZW50IGJhY2sgdG8gU0QgbW9kdWxhdG9y IHRvIGJlIAkKPiA+Pj4+IAlhdmFpbGFibGUgb24gc3lzZnMgaW50ZXJmYWNlLgo+ID4+Pj4gICAg ICAgICAgICAtIFNjYW4gbW9kZTogdGhpcyB0b3BvbG9neSBzZWVtcyBub3QgY29tcGF0aWJsZSB3 aXRoIHNjYW4KPiA+Pj4+ICAgICAgICAgICAgbW9kZSwgd2hlcmUgbXVsdGlwbGV4ZWQgY2hhbm5l bHMgYXJlIGV4cGVjdGVkIGFyZSBvbgo+ID4+Pj4gCUlJTyBkZXZpY2UgaW50ZXJmYWNlLgo+ID4+ Pj4gICAgIAo+ID4+Pj4gCT0+IEkgZG9uJ3QgZmluZCBhIHByb3BlciB3YXkgdG8gYWRkcmVzcyBz Y2FuIG1vZGUgd2l0aCBtdWx0aSBTRCAgCj4gPj4+PiAJbW9kdWxhdG9yIGNvbm5lY3RlZCB0byBv bmUgREZTTSBmaWx0ZXIgIAo+ID4+Pgo+ID4+PiBHb29kIHBvaW50LCB0aGVyZSBpc24ndCBhIG1l YW5zIG9mIGNvbWJpbmluZyB0aGUgc2NhbnMgZnJvbSBtdWx0aXBsZQo+ID4+PiBJSU8gZGV2aWNl cyBhbmQgdGhhdCBpcyB3aGF0IHdlIGVuZCB1cCBoYXZpbmcgaW4gdGhpcyBtb2RlbC4KPiA+Pj4K PiA+Pj4gWW91IGNhbiAnc3BsaXQnIHRoZSBjaGFubmVscyBzbyB0aGF0IGVuYWJsaW5nIHNkMCBh bmQgc2QxIGJ1ZmZlcmVkCj4gPj4+IG1vZGUgd2lsbCByZXN1bHQgaW4gc2NhbnMgZnJvbSB0aGUg ZmlsdGVyIGZpbGxpbmcgRklGT3MgZm9yIGVhY2ggb2YgdGhlbQo+ID4+PiBidXQgdGhhdCBtYXkg bm90IGZpdCB0aGUgdXNlIG1vZGVsIHlvdSBoYXZlIGluIG1pbmQuCj4gPj4+ICAgICAgCj4gPj4K PiA+PiBZZXMsIHRoaXMgbW9kZWwgbWF5IGJlIGFuIG9wdGlvbiB3aGVuIHdlIGhhdmUgaW5kZXBl bmRlbnQgZGF0YSBvbiBlYWNoCj4gPj4gY2hhbm5lbC4gSWYgd2Ugd2FudCB0byBoYW5kbGUgZGF0 YSBjb3JyZWxhdGVkIGluIHRpbWUsIHRoaW5ncyBiZWNvbWUKPiA+PiBtb3JlIHRyaWNreSwgeWV0 Lgo+ID4+IFRoZSBmb2xsb3dpbmcgcHJlc2VudGF0aW9uIHNob3dzIHNvbWUgZXhhbXBsZXMgb2Yg dXNlIGNhc2VzIGZvciBTVE0zMgo+ID4+IERGU0RNIChwYWdlIDIwIHRvIDI0KToKPiA+PiBodHRw czovL3N0LW9ubGluZXRyYWluaW5nLnMzLmFtYXpvbmF3cy5jb20vU1RNMzJMNF9TeXN0ZW1fRGln aXRhbF9GaWx0ZXJfZm9yX1NEX01vZHVsYXRvcnNfaW50ZXJmYWNlXyhERlNETSkvaW5kZXguaHRt bAo+ID4+Cj4gPj4gTG9va2luZyBhdCAzLXBoYXNlIGVsZWN0cmljaXR5IG1ldGVyIGV4YW1wbGUg KHBhZ2UgMjMpLCB0aGUgdm9sdGFnZXMKPiA+PiBmcm9tIHRocmVlIFNEIG1vZHVsYXRvcnMgYXJl IGNhcHR1cmVkIGFuZCBwcm9jZXNzZWQgYnkgb25lIERGU0RNIGZpbHRlci4KPiA+PiBUaGUgbXV0 aXBsZXhlZCBmaWx0ZXJlZCBkYXRhIGNhbiB0aGVuIGJlIHVzZWQgZm9yIGZ1cnRoZXIgcHJvY2Vz c2luZy4KPiA+PiBJZiB3ZSBnZXQgdGhlIGZpbHRlcmVkIGRhdGEgZnJvbSB0aHJlZSBTRCBJSU8g ZGV2aWNlcywgaXQgbG9va3MKPiA+PiBkaWZmaWN1bHQgdG8gZ3VhcmFudGVlIHRpbWUgYWxpZ25t ZW50IGJldHdlZW4gdGhlc2UgZGF0YS4gIAo+ID4gCj4gPiBXZSBjYW4gY2hlYXQgYW5kIGVuc3Vy ZSB0aGV5IGFsbCBoYXZlIHRoZSBzYW1lIHRpbWVzdGFtcCwgYnV0IEkgYWdyZWUKPiA+IGl0IGlz IGxlc3MgdGhhbiBpZGVhbC4KPiA+ICAgCj4gPj4KPiA+PiBJdCBzZWVtcyB0byBtZSB0aGF0IHRo ZSBzb2x1dGlvbiAyLCBtYXkgcmVkdWNlIHRoZSBmaWVsZCBvZiB1c2UgY2FzZXMKPiA+PiB0aGF0 IGNvdWxkIGJlIGFkZHJlc3NlZCBieSB0aGUgREZTRE0uICAKPiA+IAo+ID4gQWdyZWVkLCB0aGF0 J3Mgbm90IGdvb2QuCj4gPiAgIAo+ID4+ICAKPiA+Pj4gVGhpcyBzb3J0IG9mIGRlbXV4IGlzIG1v cmUgb2Z0ZW4gZG9uZSBmb3Igd2hlbiB3ZSBoYXZlIGEgY29uc3VtZXIgaW4KPiA+Pj4gdGhlIGZv cm0gb2Ygc2F5IGEgdG91Y2hzY3JlZW4gdGhhdCB1c2VzIGEgY291cGxlIG9mIGNoYW5uZWxzIG9m ZiBhCj4gPj4+IGdlbmVyYWwgcHVycG9zZSBBREMuIFdlIGhhdmUgbm8gcmVhc29uIHRvIHdhbnQg dG8gZW5zdXJlIGFueSBhbGlnbm1lbnQKPiA+Pj4gYmV0d2VlbiB0aGUgZGF0YSBnb2luZyB0byB0 aGUgdG91Y2hzY3JlZW4gYW5kIHRoYXQgZ29pbmcgdG8gdGhlCj4gPj4+IHdobyBldmVyIGlzIGlu dGVyZXN0ZWQgaW4gdGhlIG90aGVyIEFEQyBjaGFubmVscy4KPiA+Pj4gICAgICAKPiA+Pj4+Cj4g Pj4+PiArLS0tLS0tLS0tLS0tKyAgICAgICstLS0tLS0tKyAgICAgKy0tLS0tLS0tLSsKPiA+Pj4+ IHwgc2QwIGlpb2RldiB8IDwtLT4gfCBjaGFuMCB8IDwtPiB8IGZpbHRlcjAgfAo+ID4+Pj4gKy0t LS0tLS0tLS0tLSsgICAgICArLS0tLS0tLSsgICAgICstLS0tLS0tLS0rCj4gPj4+PiAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCj4gPj4+PiAgICAgIHwgc3lzZnMgICAg ICAgICAgICAgICAgICAgICAgICAgICB8Cj4gPj4+PiAgICAgIHYgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8Cj4gPj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8Cj4gPj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4g Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gPj4+PiArLS0t LS0tLS0tLS0tKyAgICAgICstLS0tLS0tKyAgICAgICB8Cj4gPj4+PiB8IHNkMSBpaW9kZXYgfCA8 LS0+IHwgY2hhbjEgfCA8LS0tLS0rCj4gPj4+PiArLS0tLS0tLS0tLS0tKyAgICAgICstLS0tLS0t Kwo+ID4+Pj4gICAgICB8Cj4gPj4+PiAgICAgIHwgc3lzZnMKPiA+Pj4+ICAgICAgdgo+ID4+Pj4K PiA+Pj4+Cj4gPj4+PiAzKSBneXJvYWRjIGxpa2UgdG9wb2xvZ3k6IG9uZSBpaW8gZGV2aWNlIHBl ciBERlNETSBmaWx0ZXIKPiA+Pj4+IChubyBTRCBtb2R1bGF0b3IgaWlvIGRldmljZSByZWdpc3Rl cmVkKQo+ID4+Pj4gICAgICAgIEZvciBERlNETSBzY2FsZSBhbmQgb2Zmc2V0LCB0aGUgcmVxdWly ZWQgaW5mb3JtYXRpb24gYXJlIFNECj4gPj4+PiAgICAgICAgbW9kdWxhdG9yIHJlZmVyZW5jZSB2 b2x0YWdlIGFuZCBjaGFubmVsIHR5cGVzLgo+ID4+Pj4KPiA+Pj4+ICAgICAgICB2b2x0YWdlIHJl ZmVyZW5jZTogdGhlIHJlZ3VsYXRvciB2b2x0YWdlIGNhbiBiZSByZXRyaWV2ZWQgYXMgaXQKPiA+ Pj4+ICAgICAgICBpcyBkb25lIGluICBneXJvYWRjIGRyaXZlci4KPiA+Pj4+ICAgICAgICBNYXli ZSB3ZSBjYW4gZHJvcHBlZCBtZXJlbHkgU0QgbW9kdWxhdG9yLCBhbmQgZGVzY3JpYmUgdm9sdGFn ZQo+ID4+Pj4gICAgICAgIGFzIGEgcHJvcGVydHkgb2YgdGhlIGNoYW5uZWwgKHRocm91Z2ggZ2Vu ZXJpYyBjaGFubmVsIGJpbmRpbmcpCj4gPj4+PiAgICAgICAgVGhpcyBtYXkgYmUgdG9vIHJlc3Ry aWN0aXZlIGlmIG1vcmUgaGFyZHdhcmUgaGFzIHRvIGJlCj4gPj4+PiAgICAgICAgY29uZmlndXJl ZCBpbiB0aGUgU0QgbW9kdWxhdG9yLCB5ZXQuICAKPiA+Pj4KPiA+Pj4gVGhhdCBpcyBpbmRlZWQg dGhlIGtleSBxdWVzdGlvbi4gRG8gd2UgbmVlZCB0byBjb25maWd1cmUgdGhlIG1vZHVsYXRvcgo+ ID4+PiBkZXZpY2VzPyBJZiB3ZSBkbyB0aGVuIHRoZXkgbmVlZCB0byBoYXZlIGFuIGV4aXN0ZW5j ZSBpbiB0aGUgZGV2aWNlIG1vZGVsLgo+ID4+PiBNYXBwaW5nIHRoZW0gYXMgSUlPIGRldmljZXMg cHJvdmlkZXMgcmV1c2FiaWxpdHkgYWNyb3NzIG11bHRpcGxlCj4gPj4+IGZpbHRlciBpbXBsZW1l bnRhdGlvbnMuCj4gPj4+ICAgICAgCj4gPj4KPiA+PiBXZSBuZWVkIHRvIGJlIGFibGUgdG8gbWFu YWdlIGEgd2lkZSByYW5nZSBvZiBhcHBsaWNhdGlvbi4gU28sIHdlIGhhdmUgdG8KPiA+PiBiZSBm bGV4aWJsZSBlbm91Z2ggdG8gY29uZmlndXJlIFNEIG1vZHVsYXRvciB3aGVuIG5lY2Vzc2FyeS4K PiA+PiBJIGFncmVlLCB0aGF0IHRoZSBTRCBkZXZpY2UgaGFzIHRvIGJlIGtlcHQgZnJvbSB0aGlz IHBvaW50IG9mIHZpZXcuCj4gPj4gIAo+ID4+Pj4KPiA+Pj4+ICAgICAgICBjaGFubmVsIHR5cGU6 IElJTyBnZW5lcmljIGNoYW5uZWwgYmluZGluZyBjb3VsZCBiZSB1c2VkIGhlcmUKPiA+Pj4+ICAg ICAgICBpbnN0ZWFkIG9mIHByb3ByaWV0YXJ5IHByb3BlcnRpZXMKPiA+Pj4+ICAgICAgICB0byBk ZXNjcmliZSB0aGUgY2hhbm5lbHMKPiA+Pj4+Cj4gPj4+PiAgICAgICAgYmluZGluZyBzYW1wbGU6 Cj4gPj4+PiAgICAgICAgZGZzZG1fcGRtMTogZmlsdGVyQDEgewo+ID4+Pj4gICAgICAgICAgICBj b21wYXRpYmxlID0gInN0LHN0bTMyLWRmc2RtLWFkYyI7Cj4gPj4+PiAgICAgICAgICAgIHJlZyA9 IDwxPjsKPiA+Pj4+ICAgICAgICAgICAgaW50ZXJydXB0cyA9IDxHSUNfU1BJIDExMSBJUlFfVFlQ RV9MRVZFTF9ISUdIPjsKPiA+Pj4+ICAgICAgICAgICAgZG1hcyA9IDwmZG1hbXV4MSAxMDIgMHg0 MDAgMHgwMT47Cj4gPj4+PiAgICAgICAgICAgIGRtYS1uYW1lcyA9ICJyeCI7Cj4gPj4+PiAgICAg ICAgICAgIHN0LGZpbHRlci1vcmRlciA9IDwxPjsKPiA+Pj4+Cj4gPj4+PiAgICAgICAgICAgIGNo YW5uZWxAMiB7Cj4gPj4+PiAgICAgICAgICAgICAgICByZWcgPSA8Mj47Cj4gPj4+PiAgICAgICAg ICAgICAgICBsYWJlbCA9ICJpbjIiOwo+ID4+Pj4gICAgICAgICAgICAgICAgc3QsYWRjLWNoYW5u ZWwtdHlwZXMgPSAiU1BJX1IiOwo+ID4+Pj4gICAgICAgICAgICAgICAgc3QsYWRjLWNoYW5uZWwt Y2xrLXNyYyA9ICJDTEtPVVRfRiI7Cj4gPj4+Pgo+ID4+Pj4gICAgICAgICAgICAgICAgc2RAMCB7 ICAgID8KPiA+Pj4+ICAgICAgICAgICAgICAgICAgICByZWcgPSA8MD47Cj4gPj4+PiAgICAgICAg ICAgICAgICAgICAgY29tcGF0aWJsZSA9ICJzZC1tb2QiOwo+ID4+Pj4gICAgICAgICAgICAgICAg ICAgIHZyZWYtc3VwcGx5ID0gPCZ2cmVmPjsKPiA+Pj4+ICAgICAgICAgICAgICAgIH07Cj4gPj4+ PiAgICAgICAgICAgIH07Cj4gPj4+PiAgICAgICAgfTsKPiA+Pj4+Cj4gPj4+PiAgICAgICAgKiBj b25zCj4gPj4+PiAgICAgICAgICAgIC0gVGhlIHN1YiBkZXZpY2VzIGFyZSBlbWJlZGRlZCBpbiB0 aGUgZHJpdmVyIGFuZCBhcmUgbm90Cj4gPj4+PiAgICAgICAgICAgIGJhc2VkIG9uIGdlbmVyYWwg ZGV2aWNlIEFQSS4KPiA+Pj4+ICAgICAgICAgICAgQWx0ZXJuYXRpdmVseSwgaWYgd2Ugd2FudCB0 byB1c2Ugc3RhbmRhcmQgZGV2aWNlIG1vZGVsCj4gPj4+PiAgICAgICAgICAgIGFuZCBhdm9pZCB0 aGUgY3JlYXRpb24gb2YgYW4gdW5yZWxldmFudCBJSU8gZGV2aWNlIGZvcgo+ID4+Pj4gICAgICAg ICAgICBTRCBtb2R1bGF0b3IsIGEgc3BlY2lmaWMgdHlwZSBvZiBkZXZpY2UgbWF5IGJlCj4gPj4+ PiAgICAgICAgICAgIHByb3ZpZGVkIGJ5IElJTyBmcmFtZXdvcmsuIFRoaXMgY291bGQgYmUgYSBr aW5kIG9mCj4gPj4+PiAgICAgICAgICAgICJiYWNrZW5kIiBkZXZpY2Ugd2l0aG91dCBJSU8gc3lz ZnMgaW50ZXJmYWNlIGF0dGFjaGVkLiAgCj4gPj4+Cj4gPj4+IFRoYXQgbWF5IGJlIGFuIG9wdGlv bi4gIEl0IHdhcyBhbHdheXMgb24gdGhlIGxpc3Qgb2YgdGhpbmdzIHRvIGRvCj4gPj4+IHRvIGFs bG93IGZvciBJSU8gZGV2aWNlcyB0aGF0IGhhdmUgbm8gJ0lJTyBpbnRlcmZhY2UnIHRvIHVzZXJz cGFjZS4KPiA+Pj4gVGhlIG1haW4gdXNlY2FzZSB3YXMgU29DIEFEQ3Mgd2hlcmUgYWxsIHRoZSBj aGFubmVscyBhcmUgZ29pbmcgdG8KPiA+Pj4gb3RoZXIgaW4ga2VybmVsIGNvbnN1bWVycywgYnV0 IGl0IG1pZ2h0IGJlIGFwcGxpY2FibGUgaGVyZSBhcyB3ZWxsLgo+ID4+PiAgICAgIAo+ID4+Cj4g Pj4gQ2FuIHlvdSBzZWUgYW5vdGhlciBhbHRlcm5hdGl2ZSB0byBzb2x1dGlvbiAyLCB0byBhbGxv dyBmdWxsIHN1cHBvcnQgb2YKPiA+PiBERlNETSBmZWF0dXJlcyA/ICAKPiA+IAo+ID4gQW55dGhp bmcgSSBjYW4gY29tZSB1cCB3aXRoIGFsc28gaGFzIGlzc3Vlcy4KPiA+IEEpIEFzc3VtZSB0aGF0 IGlmIHdlIGhhdmUgbXVsdGlwbGUgY2hhbm5lbHMgdGhhdCB3ZSB3YW50IHRvIGNhcHR1cmUgdG9n ZXRoZXIgdGhhdAo+ID4gICAgIHRoZXkgYXJlIGdvaW5nIHRocm91Z2ggbWF0Y2hlZCBtb2R1bGF0 b3IgZGV2aWNlcy4gIFNvIG1ha2UgdGhlIG1vZHVsYXRvciBkcml2ZXIKPiA+ICAgICBhYmxlIHRv IGhhbmRsZSBtdWx0aXBsZSBjaGFubmVscy4gIFRoYXQgd2F5IHdlIGNvdWxkIHdyYXAgaXQgYWxs IHVwIHRvZ2V0aGVyLgo+ID4gCUNvbnM6IFdoYXQgaWYgdGhleSBhcmUgdXNpbmcgZGlmZmVyZW50 IG1vZHVsYXRvcnMgYnV0IHN0aWxsIHdhbnQgdG8gY2FwdHVyZQo+ID4gCSAgICAgIHRoZSBkYXRh IGFzIG9uZSBzY2FuPwo+ID4gCj4gPiBCKSBBZGQgdGhlIGxvZ2ljIHRvIG11eCBkZXZpY2VzIGJh Y2sgdG9nZXRoZXIgKHRoaXMgaXMgbmFzdHkgYnV0IGJlYXIgd2l0aCBtZSkKPiA+IAo+ID4gKy0t LS0tLS0tLS0tLS0tLS0tLS0tKyAgICArLS0tLS0tLS0rICAgKy0tLS0tLS0tLS0tLS0tLS0tKwo+ ID4gfCBDaGFubmVsIGludGVybGVhdmVyfC0tLS18IFNEMCAgICB8LS0tfCBGaWx0ZXIgMCBpaW9k ZXYgfAo+ID4gfCAgICAgICAgICAgICAgICAgICAgfCAgICArLS0tLS0tLS0rICAgfCAgICAgICAg ICAgICAgICAgfAo+ID4gfCAgICAgICAgICAgICAgICAgICAgfCAgICArLS0tLS0tLS0rICAgfCAg ICAgICAgICAgICAgICAgfAo+ID4gfCAgICAgICAgICAgICAgICAgICAgfC0tLS18IFNEMSAgICB8 LS0tfCAgICAgICAgICAgICAgICAgfAo+ID4gfCAgICAgICAgICAgICAgICAgICAgfCAgICArLS0t LS0tLS0rICAgKy0tLS0tLS0tLS0tLS0tLS0tKwo+ID4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+ ID4gCj4gPiBJIGRpZCBtZW50aW9uIHRoaXMgZ290IG5hc3R5IDopIEl0IG1pZ2h0IGJlIGEgdXNl ZnVsIGNvbmNlcHQgaW4gZ2VuZXJhbCB0aG91Z2gKPiA+IGZvciBvdGhlciB1c2VjYXNlcy4KPiA+ IAo+ID4gV2UgaW50cm9kdWNlIGEgbmV3IGludGVybGVhdmVyIGRldmljZSB0aGF0IGlzIGEgY29u c3VtZXIgb2Ygb3RoZXIgZGV2aWNlcyB0aGF0Cj4gPiBhcmUgYXNzdW1lZCB0byBhbGwgcnVuIG9m IHRoZSBzYW1lICJ0cmlnZ2VyIi4gIEl0IHdpbGwgYmUgYSBjb25zdW1lciBvZgo+ID4gYm90aCBt b2R1bGF0b3IgSUlPIGRldmljZXMgYW5kIHdpbGwgcmVjZWl2ZSBkYXRhIGZyb20gdGhlIGJvdGgu Cj4gPiBJdCB3aWxsIGhhdmUgMiBjaGFubmVscyB3aGljaCBpbiB0dXJuIHdpbGwgZ2FpbiB0aGVp ciBzY2FsZSBldGMgYnkgcXVlcnlpbmcKPiA+IHRoZSBtb2R1bGF0b3JzLiBUaG9zZSBtb2R1bGF0 b3JzIHdpbGwgZ2V0IHRoZWlyIGFjdHVhbCBkYXRhIGFzIGNvbnN1bWVycwo+ID4gZnJvbSB0aGUg ZmlsdGVyIGRldmljZS4KPiA+IAo+ID4gU28gZm9yIGJ1ZmZlcmVkIHVzZSB0aGUgZmxvdyB3aWxs IGJlOgo+ID4gInNjYW4iIGNvbWVzIGludG8gdGhlIGZpbHRlciBkcml2ZXIuICBJdCBkZW11eGVz IGFuZCBwYXNzZXMgdGhyb3VnaCB0byB0aGUKPiA+IHR3byBzZXBhcmF0ZSBtb2R1bGF0b3IgZHJp dmVycy4gIFRob3NlIHRoZW4gcGFzcyBpdCBvbiB0byB0aGUgY2hhbm5lbCBpbnRlcmxlYXZlci4K PiA+IEdpdmVuIEkgd291bGRuJ3Qgd2FudCB0byBjb25zdHJhaW4gdGhlIG9yZGVyLCB0aGF0IGRy aXZlciB0aGVuIGhhcyB0byBidWZmZXIKPiA+IHRoZW0gdXAgdW50aWwgaXQgaGFzIGEgZnVsbCAn c2Nhbicgd2hpY2ggaXQgaW4gdHVybiBwdXNoZWQgaW50byBpdCdzIGtmaWZvCj4gPiBidWZmZXIg Zm9yIHVzZXJzcGFjZSBjb25zdW1wdGlvbi4KPiA+IAo+ID4gT3RoZXIgdGhhbiB0aGUgaG9ycmli bGUgZGF0YSBmbG93LCB0aGlzIGRvZXMgbWF0Y2ggYWxsIG91ciByZXF1aXJlbWVudHMuCj4gPiBJ dCByZXByZXNlbnRzIHRoZSBmaWx0ZXIgYW5kIGFueSBmaWx0ZXIgc3BlY2lmaWMgY29udHJvbHMg YXMgb25lIGRldmljZS4KPiA+IEVhY2ggbW9kdWxhdG9yIGhhcyBpdCdzIG93biByZXByZXNlbnRh dGlvbiBhcyB3ZWxsIGFuZCBzbyBzY2FsaW5nIGV0YyBpcwo+ID4gaW4gYW4gYXBwcm9wcmlhdGUg cGxhY2UuICBUaGUgaW50ZXJsZWF2ZXIgaXMgdGhlbiBhIHNvZnR3YXJlIGNvbnN0cnVjdCB0bwo+ ID4gYWxsb3cgdXMgdG8gZ3JhYiBtdWx0aXBsZSBkYXRhIGZsb3dzIGZyb20gaW5kZXBlbmRlbnQg ZGV2aWNlcyAodGhhdCB3ZQo+ID4gZXhwZWN0IHRvICd0cmlnZ2VyJyB0b2dldGhlcikgYW5kIGNv bWJpbmUgdGhlbSBpbnRvIGEgc2luZ2xlIGZsb3cuCj4gPiBJJ20gbm90IGtlZW4gb24gdGhlIHJh Y2UgY29uZGl0aW9ucyB0aGF0IHdvdWxkIHByb2JhYmx5IG9jY3VyLCBidXQgaXQKPiA+IGNvdWxk IGJlIG1hZGUgdG8gd29yay4KPiA+IAo+ID4gSSd2ZSB0aG91Z2h0IGFib3V0IGRvaW5nIHRoaXMg YmVmb3JlIHRvIGFsbG93IGNhc2VzIGxpa2UuCj4gPiAKPiA+ICAgICAgICAgICAgICAgICAgICAg ICAgVHJpZ2dlcgo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgIHwKPiA+ICstLS0tLS0tLS0t LS0tLS0tLS0tLSsgICstKy0tLS0tLS0tKwo+ID4gfCBDaGFubmVsIGludGVybGVhdmVyfC0tYy18 IEFDQ0VMICB8Cj4gPiB8ICAgICAgICAgICAgICAgICAgICB8ICB8ICstLS0tLS0tLSsKPiA+IHwg ICAgICAgICAgICAgICAgICAgIHwgICstKy0tLS0tLS0tKwo+ID4gfCAgICAgICAgICAgICAgICAg ICAgfC0tLS18IEd5cm8gICB8Cj4gPiB8ICAgICAgICAgICAgICAgICAgICB8ICAgICstLS0tLS0t LSsKPiA+ICstLS0tLS0tLS0tLS0tLS0tLS0tLSsKPiA+IAo+ID4gVGhhdCBpcyBhbiBJTVUgYnVp bHQgb2Ygc2VwYXJhdGUgY29tcG9uZW50cyBidXQgd2l0aCBhIGNvbW1vbiB0cmlnZ2VyIHNpZ25h bAo+ID4gb3Igc2F5IGEgaGlnaCByZXNvbHV0aW9uIHRpbWVyIGJhc2VkIHRyaWdnZXIuICAgVG9k YXkgd2UgaGF2ZSB0byBmdXNlIHRoYXQKPiA+IGRhdGEgaW4gdXNlcnNwYWNlIHdoaWNoIGlzIHJh dGhlciBtZXNzeS4KPiA+ICAgCj4gCj4gSW4gc2NhbiBtb2RlIHRoZSBERlNETSBhY3RzIGFjdHVh bGx5IGFzIGFuIGludGVybGVhdmVyLCBzbyBmcm9tIHRoaXMgCj4gcG9pbnQgb2YgdmlldyBpdCBj YW4gYmUgcHV0IGF0IHRoZSBpbnRlcmxlYXZlciBwbGFjZSBpbiB0aGUgZmxvdy4gCj4gSW5zdGVh ZCBvZiBhIHNvZnR3YXJlIGJsb2NrLCB3ZSBnZXQgYSBkcml2ZXIgd2hpY2ggcmVwcmVzZW50cyBh IGhhcmR3YXJlIAo+IGludGVybGVhdmVyIGRldmljZS4gQnV0IGhlcmUgd2UgY29tZSBiYWNrIHRv IHRoZSBpbml0aWFsIHRvcG9sZ3kgKGNhc2UgMSAKPiBhYm92ZSkgd2l0aCB0aGUgc2NhbGluZyBw cm9ibGVtLgoKSSdkIGdvIHdpdGggJ3NvcnQgb2YnIGZvciBpdCBtYXRjaGluZyB0aGF0IHRvcG9s b2d5LiAgSSBhZ3JlZSBpdCdzCmRvaW5nIHRoZSBoYXJkd2FyZSBqb2Igb2YgbWVhc3VyaW5nIHRo ZSBtdWx0aXBsZSBjaGFubmVscywgYnV0IGl0CmRvZXNuJ3QgcmVwcmVzZW50IHRoZSBkYXRhIGZs b3cgb2YgbXVsdGlwbGUgdW5yZWxhdGVkIGRldmljZXMgaW5mcm9udApvZiB0aGUgZGZzZG0uIAoK SXQncyBiaXQgY2x1bmt5IGFzIGFuIGFuYWxvZ3kgYnV0IGltYWdpbmUgdGhpcyBtYXBzIHRvLgoK SW50ZXJsZWF2ZXIgcmVwcmVzZW50cyBzb21lICdwaHlzaWNhbCB0aGluZycgLSBpbiB0aGUgZXhh bXBsZSBvZgphY2NlbCBhbmQgZ3lybyBpdCdzIGEgcGh5c2ljYWwgZGV2aWNlIHdlIGFyZSBtb3Zp bmcgYXJvdW5kLiAgV2UgdWx0aW1hdGVseQp3YW50IGEgc2luZ2xlIGRhdGEgc3RyZWFtIHRvIHRl bGwgdXMgaG93IHRoYXQgaXMgbW92aW5nLgpJdCBoYXMgYSBidW5jaCBvZiBwcm9wZXJ0aWVzIHdo aWNoIHdlIGFyZSB0aGVuIG1lYXN1cmluZyB3aXRoCmEgZ3lybyBhbmQgYW4gYWNjZWxlcm9tZXRl ciAod2hpY2ggZ2VuZXJhdGUgYW4gYW5hbG9nIHNpZ25hbCkuIFRob3NlCm1lYXN1cmVtZW50cyBh cmUgdGhlbiBpbiB0dXJuIG9idGFpbmVkIGJ5IHVzaW5nIGFuIEFEQy4KClN0aWxsLCB3aGV0aGVy IHRoaXMgYWN0dWFsbHkgbWFwcyB1c2VmdWxseSB0byB3aGF0IHdlIGhhdmUgaGVyZSBpc24ndAp0 b3RhbGx5IGNsZWFyIHRvIG1lLgoKPiAKPiBJJ2FtIHdvbmRlcmluZyBpZiB3ZSBjYW5ub3QgbWFu YWdlIHRoZSBzY2FsZSBhIGJpdCBkaWZmZXJlbnRseS4KPiBJbiB0aGUgaW5pdGlhbCBwcm9wb3Nh bCwgdGhlIGdsb2JhbCBzY2FsZSB3YXMgZXhwb3NlZCBhdCB0aGUgREZTRE0gSUlPIAo+IGRldmlj ZS4gQXMgd2UgaGF2ZSB0d28gSUlPIGRldmljZXMgc2VyaWFsaXplZCwgdGhlIGdsb2JhbCBzY2Fs ZSBjb3VsZCBiZSAKPiBjYWxjdWxhdGVkIGF0IGFwcGxpY2F0aW9uIGxldmVsIGZyb20gYm90aCBJ SU8gZGV2aWNlcyBzeXNmcyAKPiBpbmZvcm1hdGlvbnMuIFRoZSBTRCBtb2R1bGF0b3Igd291bGQg cHJvdmlkZSB0aGUgc2NhbGUgKGluIG1WIHVuaXQpIGFuZCAKPiB0aGUgREZTRE0gY291bGQgYmUg c2VlbiBoYXMgYSBkZXZpY2UgZ2l2aW5nIGEgZ2Fpbi4KPiAKPiBDdXJyZW50bHkgd2UgaGF2ZToK PiBkYXRhID0gKHJhdy1kZnNkbSA8PCBzaGlmdC1kZnNkbSArIG9mZnNldC1kZnNkbSkgeCBzY2Fs ZS1kZnNkbQo+IHdoZXJlIHNjYWxlLWRmc2RtIGlzIGNvbXB1dGVkIGZyb20gU0QgbW9kdWxhdG9y IHNjYWxlIGluZm8KPiAKPiBUaGlzIG1heSBiZSBjaGFuZ2VkIHRvOgo+IGRhdGEgPSAocmF3LWRm c2RtIDw8IHNoaWZ0LWRmc2RtICsgb2Zmc2V0LWRmc2RtKSB4IGdhaW4tZGZzZG0geCBzY2FsZS1z ZAo+IEluIHRoaXMgY2FzZSB0aGUgREZTRE0gZG9lcyBub3QgcmV0cmlldmUgdGhlIHNjYWxlIGZy b20gU0QgbW9kdWxhdG9yLgo+IFRoZSBERlNETSBkb2VzIG5vdCBwcm92aWRlIHNjYWxlIGluZm9y bWF0aW9uIGJ1dCBvbmx5IGEgZ2FpbiBpbmZvcm1hdGlvbgo+IChhY3R1YWwgcmVzb2x1dGlvbiAv IGZ1bGwgcmVzb2x1dGlvbikuCj4gTWF5ICdoYXJkd2FyZWdhaW4nIEFCSSBiZSBhIHJlbGV2YW50 IHdheSB0byBkZXNjcmliZSBzdWNoIGdhaW4gPwoKSGFyZHdhcmUgZ2FpbiBpcyBhIGJpdCBvZiBv ZGRpdHkuIAoKTm9ybWFsbHkgaGFyZHdhcmVnYWluIGlzIGFwcGxpZWQgdG8gZGV2aWNlcyB3aGVy ZQp0aGUgZ2FpbiBpc24ndCBvbiB0aGUgdGhlICd0aGluZyBiZWluZyBtZWFzdXJlZCcgYnV0IG9u IHNvbWV0aGluZyBlbHNlIHRoYXQKYWZmZWN0cyB0aGF0IG1lYXN1cmVtZW50LiAgQW4gZXhhbXBs ZSBiZWluZyB0aGUgZ2FpbiBvZiB0aGUgbGlnaHQgc2Vuc29yIHVzZWQKaW4gYSB0aW1lIG9mIGZs aWdodCBkaXN0YW5jZSBtZWFzdXJlbWVudC4KCkhvd2V2ZXIsIHdlIGhhdmUgdXNlZCBpbiBjYXNl cyB3aGVyZSB3ZSBoYXZlIGFuIGFtcGxpZmllciB0aGF0IGlzIHR5cGljYWxseQphbXBsaWZ5aW5n IHNpZ25hbHMgbm90IGFjdHVhbGx5IHZpc2libGUgdG8gdXMsIGZvciBleGFtcGxlIHRoZSBhZDgz NjYKd2hpY2ggSSB0aGluayBnZXQgdXNlZCBhcyBhIGJhc2ViYW5kIGFtcGxpZmllciBpbiByYWRp byBhcHBsaWNhdGlvbnMuCgogICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLSsKU29t ZSBhbmFsb2cgc2lnbmFsIC0tLS0tPnxBTVBMSUZJRVJ8LS0tLS0+ICBzb21lIG90aGVyIGFuYWxv ZyBzaWduYWwsIG5vdCBoZWFkaW5nIHRvIGFuIEFEQy4KICAgICAgICAgICAgICAgICAgICAgICAg ICstLS0tLS0tLS0rCj4gV2hhdCBsb29rcyBmaW5lIGhlcmUsIGlzIHRoYXQgd2UgcmVtb3ZlIHRo ZSBkZXBlbmRlbmN5IGJldHdlZW4gdGhlIERGU0RNIAo+IGFuZCB0aGUgU0QgbW9kdWxhdG9yLCBh bmQgZWFjaCBJSU8gZGV2aWNlIGV4cG9zZSBjb25zaXN0ZW50IHN5c2ZzIAo+IGluZm9ybWF0aW9u cyByZWdhcmRpbmcgdGhlaXIgYWN0dWFsIGhhcmR3YXJlIHNjb3BlLgo+IAo+IERvZXMgdGhpcyBh cHByb2FjaCBzZWVtcyB2YWxpZCB0byB5b3UgPwoKTG9vc2luZyB0aGUgZGVwZW5kZW5jeSByZW1v dmVzIGFuIG9idmlvdXMgd2F5IGZvciBnZW5lcmljIHNvZnR3YXJlIHRvCmFjdHVhbGx5IHVuZGVy c3RhbmQgd2hhdCBpcyBnb2luZyBvbi4gVGhhdCBzb2Z0d2FyZSBqdXN0IHdhbnRzIHRvIG1lYXN1 cmUKYW4gYW5hbG9nIHNpZ25hbCwgbm90IGZpZ3VyZSBvdXQgdGhlIHdpcmluZyBkaWFncmFtIG9m IHRoZSBjb21wb25lbnRzIGluCnRoZSBwYXRoLgoKPiAKPiA+Pgo+ID4+IElmICdiYWNrZW5kJyBv cHRpb24gdHVybnMgb3V0IHRvIGJlIHRoZSBtb3N0IGFwcHJvcHJpYXRlZCB0byBtYXRjaCBERlNE TQo+ID4+IGNvbnN0cmFpbnRzLCBJIGNhbiBwcmVwYXJlIHNvbWUgcGF0Y2hlcyB0byBzdXBwb3J0 IGl0Lgo+ID4+IFdvdWxkIHlvdSBoYXZlIHNvbWUgZ3VpZGVsaW5lcyBvciByZXF1aXJlbWVudHMg Zm9yIHRoZSBpbXBsZW1lbnRhdGlvbiBvZgo+ID4+IHN1Y2ggZmVhdHVyZSwgaW4gdGhpcyBjYXNl ID8gIAo+ID4gCj4gPiBDbG9zZXN0IGV4YW1wbGUgaXMgdGhhdCByY2FyLWd5cm9hZGMgYnV0IGlu IHRoaXMgY2FzZSB3ZSdkIHdhbnQgdG8gZGVmaW5lCj4gPiBzb21ldGhpbmcgc3RhbmRhcmQgdG8g c3VwcG9ydCB0aGUgbW9kdWxhdG9ycyBzbyB0aGF0IGlmIHdlIGhhdmUgb3RoZXIgZmlsdGVycwo+ ID4gaW4gZnV0dXJlIHdlIGNhbiByZXVzZSB0aGVtLgo+ID4gCj4gPiBUaGF0IG1lYW5zIGltcGxl bWVudGluZyB0aGVtIGFzIGNoaWxkIGRldmljZXMgb2YgdGhlIGZpbHRlciAtIHByb2JhYmx5IHB1 dAo+ID4gdGhlIG9uIHRoZSBJSU8gYnVzLCBidXQgYXMgZGlmZmVyZW50IGRldmljZSB0eXBlLiAg VGFrZSBhIGxvb2sgYXQgaG93Cj4gPiB0cmlnZ2VycyBhcmUgZG9uZSBpbiBpbmR1c3RyaWFsaW8t dHJpZ2dlci5jCj4gPiBZb3UgbmVlZCBzdHJ1Y3QgZGV2aWNlX3R5cGUgc2RfbW9kdWxhdG9yCj4g PiBhbmQgYSBzdWl0YWJsZSBkZXZpY2Ugc3RydWN0IChidXJyZWQgaW4gYW4gaWlvX3NkX21vZHVs YXRvciBzdHJ1Y3QgcHJvYmFibHkpLgo+ID4gCj4gPiBBbHNvIG5lZWRlZCB3b3VsZCBiZSBhIGJ1 bmNoIG9mIHN0YW5kYXJkIGNhbGxiYWNrcyB0byBhbGxvdyB5b3UgdG8gcXVlcnkgdGhpbmdzCj4g PiBsaWtlIHNjYWxpbmcuICAgS2VlcCB0aGF0IGludGVyZmFjZSBzaW1wbGUuIFVudGlsIHdlIGhh dmUgYSBsb3Qgb2YgbW9kdWxhdG9yCj4gPiBkcml2ZXJzIGl0IHdpbGwgYmUgaGFyZCB0byBrbm93 IGV4YWN0bHkgd2hhdCBpcyBuZWVkZWQuICBBbHNvIHdoaWxzdCB3ZSBkb24ndAo+ID4gaGF2ZSBt YW55IGl0IGlzIGVhc3kgdG8gbW9kaWZ5IHRoZSBpbnRlcmZhY2UuCj4gPiAKPiA+IFRoZW4gaGF2 ZSB5b3VyIGZpbHRlciBkcml2ZXIgd2FsayBpdCdzIG93biBkdCBjaGlsZHJlbiBhbmQgaW5zdGFu dGlhdGUKPiA+IGFwcHJvcHJpYXRlIG5ldyBlbGVtZW50cyBhbmQgcmVnaXN0ZXIgdGhlbSBvbiB0 aGUgaWlvX2J1cy4gIFRoZXkgd2lsbCBoYXZlCj4gPiB0aGUgZmlsdGVyIGFzIHRoZWlyIHBhcmVu dC4KPiA+IAo+ID4gVGhlcmUgYXJlIHZhcmlvdXMgZXhhbXBsZXMgb2YgdGhpcyBzb3J0IG9mIHRo aW5nIGluIHRyZWUuCj4gPiBJZiB5b3Ugd2FudCBhIGdvb2Qgb25lLCBkcml2ZXJzL2N4bCBkb2Vz IGEgbG90IG9mIHRoaXMgc29ydCBtYWdpYyB0byBtYW5hZ2UKPiA+IGEgZmFpcmx5IGNvbXBsZXgg Z3JhcGggb2YgZGV2aWNlcyBpbmNsdWRpbmcgc29tZSBuaWNlIHJlZ2lzdHJhdGlvbiBzdHVmZiB0 bwo+ID4gY2F1c2UgdGhlIGNvcnJlY3QgZGV2aWNlIGRyaXZlcnMgdG8gbG9hZCBhdXRvbWF0aWNh bGx5Lgo+ID4gCj4gPiBIbW0uICBUaGlua2luZyBtb3JlIG9uIHRoaXMsIHRoZXJlIGlzIGFuIG9y ZGVyaW5nIGlzc3VlIGZvciBkcml2ZXIgbG9hZC4KPiA+IEluc3RlYWQgb2YgbWFraW5nIHRoZSBt b2R1bGF0b3Igbm9kZXMgY2hpbGRyZW4gb2YgdGhlIG1vZHVsYXRvciwgeW91IG1heSBuZWVkCj4g PiB0byBnaXZlIHRoZW0gdGhlaXIgb3duIGV4aXN0ZW5jZSBhbmQgdXNlIGEgcGhhbmRsZSB0byBy ZWZlcmVuY2UgdGhlbS4KPiA+IFRoYXQgd2lsbCBsZXQgeW91IGRlZmVyIHByb2JlIGluIHRoZSBm aWx0ZXIgZHJpdmVyIHVudGlsIHRob3NlCj4gPiBtb2R1bGF0b3IgZHJpdmVycyBhcmUgcmVhZHku Cj4gPiAKPiA+IFRoaXMgaXNuJ3QgZ29pbmcgdG8gYmUgcGFydGljdWxhcmx5IHNpbXBsZSwgc28g eW91IG1heSB3YW50IHRvIGhhdmUgYSBsb29rCj4gPiBhdCBob3cgdmFyaW91cyBvdGhlciBzdWJz eXN0ZW1zIGRvIHNpbWlsYXIgdGhpbmdzIGFuZCBtb2NrIHVwIHRoZSBkZXBlbmRlbmNpZXMKPiA+ IHRvIG1ha2Ugc3VyZSB5b3UgaGF2ZSBzb21ldGhpbmcgdGhhdCBkb2Vzbid0IGVuZCB1cCB3aXRo IGEgbG9vcCBvZiBkZXBlbmRlbmNpZXMuCj4gPiBJbiBzb21lIHdheXMgdGhlIG1vZHVsYXRvcnMg YXJlIG9uIGEgYnVzIGJlbG93IHRoZSBmaWx0ZXIsIGJ1dCB0aGUgZmlsdGVyIGRyaXZlcgo+ID4g bmVlZHMgdGhlbSB0byBiZSBpbiBwbGFjZSB0byBkbyB0aGUgcmVzdC4KPiA+IFlvdSBtYXkgZW5k IHVwIHdpdGggc29tZSBzb3J0IG9mIGRlbGF5ZWQgbG9hZC4KPiA+IDEuIEluaXRpYWwgZmlsdGVy IGRyaXZlciBsb2FkICsgcGFyc2luZyBvZiB0aGUgbW9kdWxhdG9yIGR0IGNoaWxkcmVuIChpZiBk b25lIHRoYXQgd2F5KS4KPiA+IDIuIEZpbHRlciBkcml2ZXIgZ29lcyB0byBzbGVlcCB1bnRpbC4u Lgo+ID4gMy4gTW9kdWxhdG9yIGRyaXZlcnMgY2FsbCBzb21ldGhpbmcgb24gdGhlIGZpbHRlciBk cml2ZXIgdG8gc2F5IHRoZXkgYXJlIHJlYWR5Lgo+ID4gNC4gRmlsdGVyIGRyaXZlciBmaW5pc2hl cyBsb2FkaW5nIGFuZCBjcmVhdGUgdGhlIElJTyBkZXZpY2UgZXRjLgo+ID4gWW91J2xsIG5lZWQg c29tZSByZWZlcmVuY2UgY291bnRpbmcgZXRjIGluIHRoZXJlIHRvIG1ha2UgcmVtb3ZhbCBzYWZl IGV0YyBidXQgaXQKPiA+IHNob3VsZG4ndCBiZSAndG9vIGJhZCcuCj4gPiAKPiA+IEdvb2QgbHVj ayEKPiA+IAo+ID4gSm9uYXRoYW4KPiA+ICAgCj4gCj4gVGhlIGRldmljZSBoaWVyYWNoeSB5b3Ug aGF2ZSBkZXRhaWxsZWQgYWJvdmUsIGlzIHByb2JhYmx5IHRoZSBtb3N0IAo+IGZsZXhpYmxlIG9u ZSB0byBhZGRyZXNzIGEgd2lkZSByYW5nZSBvZiB1c2UgY2FzZXMsIGJ1dCBpdCBpcyBxdWl0ZSBh IAo+IGh1Z2Ugd29yayAuLi4gZXNwZWNpYWxseSBpbiBjb21wYXJpc29uIHRvIGN1cnJlbnQgbmVl ZC4KClVuZGVyc3Rvb2QuICBNYXliZSBpdHMgc29tZXRoaW5nIHdlIGNhbiBldm9sdmUgdG93YXJk cyBvdmVyIHRpbWUuCkknZCBsaWtlIHRvIHNheSBJJ2xsIGdldCB0aW1lIHNvbWV0aW1lIGluIHRo ZSBuZWFyIGZ1dHVyZSB0byBwdXQgYSBwcm90b3R5cGUKdG9nZXRoZXIgYnV0IHNhZGx5IEkgaGF2 ZSB0b28gbWFueSBvdGhlciB0aGluZ3Mgb24gdGhlIHRvZG8gbGlzdCB0byBjb21taXQKdG8gYW55 dGhpbmcuCgpKb25hdGhhbgoKPiBUaGFua3MgYW55d2F5IGZvciBhbGwgdGhlIGhpbnRzIHlvdSBn YXZlIGhlcmUuCgpObyBwcm9ibGVtLiAgVGhlc2Ugc3RtMzIgcGFydHMgbWFuYWdlIHRvIGNvbnRp bnVlIHB1c2hpbmcgdGhlIGJvdW5kYXJpZXMKb2Ygb3VyIHJhdGhlciBzaW1wbGlmaWVkIG1vZGVs IG9mIGhvdyB0aGUgd29ybGQgd29ya3MhCgpKb25hdGhhbgoKPiAKPiBSZWdhcmRzCj4gT2xpdmll cgo+ID4gCj4gPiAgIAo+ID4+Cj4gPj4gUmVnYXJkcwo+ID4+IE9saXZpZXIKPiA+PiAgCj4gPj4+ PiAgICAgCj4gPj4+PiAgICAgICAgPT4gVGhpcyBzb2x1dGlvbiBjb3VsZCBiZSBhcHBsaWNhYmxl IGJ1dCBzb21lIGRldGFpbHMgaW4gdGhlICAKPiA+Pj4+ICAgICAgICBpbXBsZW1lbnRhdGlvbiB3 aWxsIGhhdmUgdG8gYmUgY2xhcmlmaWVkIGZ1cnRoZXIuCj4gPj4+PiAgICAgICAgTWF5IHdlIGNv bnNpZGVyIGFkZGluZyBhICJiYWNrZW5kIiBkZXZpY2Ugd2l0aG91dCBJSU8gaW50ZXJmYWNlCj4g Pj4+PiAgICAgICAgaW4gdGhlIElJTyBmcmFtZXdvcmsgPwo+ID4+Pj4gICAgICAgIE1heSB0aGUg U0QgbW9kdWxhdG9yIGJlIGRyb3BwZWQgPwo+ID4+Pj4KPiA+Pj4+ICstLS0tLSsgICAgICstLS0t LS0tKyAgICAgKy0tLS0tLS0tLS0tLS0tLS0rICBzeXNmcwo+ID4+Pj4gfCBzZDAgfCAtLT4gfCBj aGFuMCB8IC0tPiB8IGZpbHRlcjAgaWlvZGV2IHwgLS0tLS0tLT4KPiA+Pj4+ICstLS0tLSsgICAg ICstLS0tLS0tKyAgICAgKy0tLS0tLS0tLS0tLS0tLS0rCj4gPj4+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgo+ID4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwK PiA+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gPj4+PiArLS0tLS0rICAg ICArLS0tLS0tLSsgICAgICAgfAo+ID4+Pj4gfCBzZDEgfCAtLT4gfCBjaGFuMSB8IC0tLS0tLSsK PiA+Pj4+ICstLS0tLSsgICAgICstLS0tLS0tKwo+ID4+Pj4KPiA+Pj4+Cj4gPj4+PiBIZXJlIHRo ZXJlIGlzIGEgcG9pbnQgdGhhdCBuZWVkcyB0byBiZSBjbGFyaWZpZWQgaW4gcmVsYXRpb24gdG8g dGhlCj4gPj4+PiBwcmV2aW91cyBkaXNjdXNzaW9ucyBJIHRoaW5rLgo+ID4+Pj4gSWYgSSByZWZl ciB0byB0aGUgbGFzdCBjb21tZW50IG9mIHRoZSBjdXJyZW50IHRocmVhZCwgSSB1bmRlcnN0YW5k IHRoYXQKPiA+Pj4+IHlvdSB3ZXJlIGV4cGVjdGluZyB0aGUgSUlPIHN5c2ZzIGludGVyZmFjZSB0 byBiZSBhdHRhY2hlZCB0byB0aGUgU0QKPiA+Pj4+IG1vZHVsYXRvci4gKHNvbHV0aW9uIDIpICAK PiA+Pj4KPiA+Pj4gWWVzLgo+ID4+PiAgICAgIAo+ID4+Pj4gRm9yIHRoZSBneXJvYWRjLCB0aGUg Y2hhbm5lbHMgYXJlIGluZGVlZCBwb3B1bGF0ZWQgYnkgdGhlIHN1YiBkZXZpY2VzLgo+ID4+Pj4g SG93ZXZlciB0aGUgSUlPIGRldmljZSBjb3JyZXNwb25kcyB0byB0aGUgQURDIGNvbnN1bWVyIGFu ZCBub3QgdGhlIEFEQ3MKPiA+Pj4+IHRoZW1zZWx2ZXMuIChzb2x1dGlvbiAzKSAgCj4gPj4+Cj4g Pj4+IFRoYXQgb25lIGlzIGEgcmF0aGVyIG9kZCBjYXNlIGJlY2F1c2Ugbm8gZ2VuZXJpYyBoYW5k bGluZyBpcyBwb3NzaWJsZQo+ID4+PiBvZiB0aGUgQURDcy4gRm9yIGV4YW1wbGUgaXQgZG9lc24n dCB1c2UgdGhlIGFkNzQ3NiBkcml2ZXIgYmVjYXVzZSB3ZSBjYW4ndAo+ID4+PiB0YWxrIHRvIHRo ZSBkZXZpY2UgZXZlbiB0aG91Z2ggaXQncyB0aGUgc2FtZSBBREMgYXMgdGhlIGFkNzQ3NiBkcml2 ZXIgc3VwcG9ydHMuCj4gPj4+ICAgICAgCj4gPj4+Pgo+ID4+Pj4gV2hhdCBpcyB0aGUgdGhlIHBy ZWZlcnJlZCBhcHByb2FjaCBmb3IgeW91ID8gIAo+ID4+Pgo+ID4+PiBJIHN0aWxsIGZhdm91ciBz b2x1dGlvbiAyLCBidXQgaWYgeW91IG5lZWQgdG8gaGF2ZSB0aGUgY2hhbm5lbHMgY2xlYW5seQo+ ID4+PiBwcmVzZW50ZWQgaW4gYSBzY2FuIGRlc3BpdGUgdGhlbSBjb21pbmcgZnJvbSBkaWZmZXJl bnQgbW9kdWxhdG9ycywgdGhlbiB0aGF0Cj4gPj4+IHNvbHV0aW9uIG1heSBub3QgYmUgc3VmZmlj aWVudCBhbmQgd2UgbmVlZCB0byB0aGluayBhYm91dCBob3cgZWxzZSB0byBkbwo+ID4+PiB0aGlu Z3MuCj4gPj4+Cj4gPj4+IEpvbmF0aGFuCj4gPj4+ICAgICAgCj4gPj4+Pgo+ID4+Pj4gVGhhbmtz IGZvciB5b3VyIGZlZWRiYWNrCj4gPj4+PiBCZXN0IHJlZ2FyZHMKPiA+Pj4+IE9saXZpZXIKPiA+ Pj4+Cj4gPj4+PiAgICAgCj4gPj4+Pj4+Cj4gPj4+Pj4+IFJlZ2FyZHMKPiA+Pj4+Pj4gT2xpdmll ciAgCj4gPj4+Pj4+Pj4gSWYgbm90LCBJIHByb2JhYmx5IG1pc3NlZHNvbWV0aGluZy4gQ291bGQg eW91IHBsZWFzZSBjbGFyaWZ5IHRoaXMgcG9pbnQgPwo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gUmVn YXJkcwo+ID4+Pj4+Pj4+IE9saXZpZXIgIAo+ID4+Pj4+Pj4+PiBUaGlzIHdhc24ndCByZWFsbHkg YW4gaXNzdWUgd2hlbiB0aGUgb25seSB2YWx1ZXMgYXZhaWxhYmxlIHdlcmUKPiA+Pj4+Pj4+Pj4g cmF3LCBidXQgaWYgd2UgYXJlIGFkZGluZyBzY2FsZSBhbmQgb2Zmc2V0LCB0aGV5IGFyZSB0aGlu Z3MgdGhhdAo+ID4+Pj4+Pj4+PiBiZWxvbmcgdG8gdGhlIGFkMTIwMSBmb3IgZXhhbXBsZSwgbm90 IHRoZSB1cHN0cmVhbSBzdG0zMi1kZnNkbSB1bml0Lgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBU aGlua2luZyBvZiBpdCBhbm90aGVyIHdheSwgd2UgZG9uJ3QgcmVwb3J0IGFuIFNQSSBBREMgb3V0 cHV0IGluCj4gPj4+Pj4+Pj4+IHRoZSBkcml2ZXIgZm9yIHRoZSBTUEkgbWFzdGVyLgo+ID4+Pj4+ Pj4+Pgo+ID4+Pj4+Pj4+PiBDb3VsZCB3ZSBmbGlwIGl0IGFyb3VuZCB3aXRob3V0IGJyZWFraW5n IGFueXRoaW5nPwo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBKb25hdGhhbgo+ID4+Pj4+Pj4+PiAg ICAgICAgICAgICAgCj4gPj4+Pj4+Pj4+PiAtLS0KPiA+Pj4+Pj4+Pj4+ICAgICAgIGRyaXZlcnMv aWlvL2FkYy9zdG0zMi1kZnNkbS1hZGMuYyB8IDEwNSArKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0KPiA+Pj4+Pj4+Pj4+ICAgICAgIDEgZmlsZSBjaGFuZ2VkLCAxMDIgaW5zZXJ0aW9ucygr KSwgMyBkZWxldGlvbnMoLSkKPiA+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9paW8vYWRjL3N0bTMyLWRmc2RtLWFkYy5jCj4gPj4+Pj4+Pj4+PiBiL2RyaXZlcnMv aWlvL2FkYy9zdG0zMi1kZnNkbS1hZGMuYwo+ID4+Pj4+Pj4+Pj4gaW5kZXggMDdiOWRmZGY4ZTc2 Li5iODVmZDNlOTA0OTYgMTAwNjQ0Cj4gPj4+Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2lpby9hZGMv c3RtMzItZGZzZG0tYWRjLmMKPiA+Pj4+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvaWlvL2FkYy9zdG0z Mi1kZnNkbS1hZGMuYwo+ID4+Pj4+Pj4+Pj4gQEAgLTEwLDYgKzEwLDcgQEAKPiA+Pj4+Pj4+Pj4+ ICAgICAgICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgo+ID4+Pj4+Pj4+Pj4gICAgICAg I2luY2x1ZGUgPGxpbnV4L2lpby9hZGMvc3RtMzItZGZzZG0tYWRjLmg+Cj4gPj4+Pj4+Pj4+PiAg ICAgICAjaW5jbHVkZSA8bGludXgvaWlvL2J1ZmZlci5oPgo+ID4+Pj4+Pj4+Pj4gKyNpbmNsdWRl IDxsaW51eC9paW8vY29uc3VtZXIuaD4KPiA+Pj4+Pj4+Pj4+ICAgICAgICNpbmNsdWRlIDxsaW51 eC9paW8vaHctY29uc3VtZXIuaD4KPiA+Pj4+Pj4+Pj4+ICAgICAgICNpbmNsdWRlIDxsaW51eC9p aW8vc3lzZnMuaD4KPiA+Pj4+Pj4+Pj4+ICAgICAgICNpbmNsdWRlIDxsaW51eC9paW8vdGltZXIv c3RtMzItbHB0aW0tdHJpZ2dlci5oPgo+ID4+Pj4+Pj4+Pj4gQEAgLTY3LDYgKzY4LDEzIEBAIHN0 cnVjdCBzdG0zMl9kZnNkbV9kZXZfZGF0YSB7Cj4gPj4+Pj4+Pj4+PiAgICAgICAJY29uc3Qgc3Ry dWN0IHJlZ21hcF9jb25maWcgKnJlZ21hcF9jZmc7Cj4gPj4+Pj4+Pj4+PiAgICAgICB9Owo+ID4+ Pj4+Pj4+Pj4gICAgICAgCj4gPj4+Pj4+Pj4+PiArc3RydWN0IHN0bTMyX2Rmc2RtX3NkX2NoYW5f aW5mbyB7Cj4gPj4+Pj4+Pj4+PiArCWludCBzY2FsZV92YWw7Cj4gPj4+Pj4+Pj4+PiArCWludCBz Y2FsZV92YWwyOwo+ID4+Pj4+Pj4+Pj4gKwlpbnQgb2Zmc2V0Owo+ID4+Pj4+Pj4+Pj4gKwl1bnNp Z25lZCBpbnQgZGlmZmVyZW50aWFsOwo+ID4+Pj4+Pj4+Pj4gK307Cj4gPj4+Pj4+Pj4+PiArCj4g Pj4+Pj4+Pj4+PiAgICAgICBzdHJ1Y3Qgc3RtMzJfZGZzZG1fYWRjIHsKPiA+Pj4+Pj4+Pj4+ICAg ICAgIAlzdHJ1Y3Qgc3RtMzJfZGZzZG0gKmRmc2RtOwo+ID4+Pj4+Pj4+Pj4gICAgICAgCWNvbnN0 IHN0cnVjdCBzdG0zMl9kZnNkbV9kZXZfZGF0YSAqZGV2X2RhdGE7IEBAIC03OSw2ICs4Nyw3Cj4g Pj4+Pj4+Pj4+PiBAQCBzdHJ1Y3Qgc3RtMzJfZGZzZG1fYWRjIHsKPiA+Pj4+Pj4+Pj4+ICAgICAg IAlzdHJ1Y3QgaWlvX2h3X2NvbnN1bWVyICpod2M7Cj4gPj4+Pj4+Pj4+PiAgICAgICAJc3RydWN0 IGNvbXBsZXRpb24gY29tcGxldGlvbjsKPiA+Pj4+Pj4+Pj4+ICAgICAgIAl1MzIgKmJ1ZmZlcjsK PiA+Pj4+Pj4+Pj4+ICsJc3RydWN0IHN0bTMyX2Rmc2RtX3NkX2NoYW5faW5mbyAqc2RfY2hhbjsK PiA+Pj4+Pj4+Pj4+ICAgICAgIAo+ID4+Pj4+Pj4+Pj4gICAgICAgCS8qIEF1ZGlvIHNwZWNpZmlj ICovCj4gPj4+Pj4+Pj4+PiAgICAgICAJdW5zaWduZWQgaW50IHNwaV9mcmVxOyAgLyogU1BJIGJ1 cyBjbG9jayBmcmVxdWVuY3kgKi8gQEAKPiA+Pj4+Pj4+Pj4+IC0xMjcxLDcgKzEyODAsMTAgQEAg c3RhdGljIGludCBzdG0zMl9kZnNkbV9yZWFkX3JhdyhzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2 LAo+ID4+Pj4+Pj4+Pj4gICAgICAgCQkJCWludCAqdmFsMiwgbG9uZyBtYXNrKQo+ID4+Pj4+Pj4+ Pj4gICAgICAgewo+ID4+Pj4+Pj4+Pj4gICAgICAgCXN0cnVjdCBzdG0zMl9kZnNkbV9hZGMgKmFk YyA9IGlpb19wcml2KGluZGlvX2Rldik7Cj4gPj4+Pj4+Pj4+PiAtCWludCByZXQ7Cj4gPj4+Pj4+ Pj4+PiArCXN0cnVjdCBzdG0zMl9kZnNkbV9maWx0ZXIgKmZsID0gJmFkYy0+ZGZzZG0tPmZsX2xp c3RbYWRjLT5mbF9pZF07Cj4gPj4+Pj4+Pj4+PiArCXN0cnVjdCBzdG0zMl9kZnNkbV9maWx0ZXJf b3NyICpmbG8gPSAmZmwtPmZsb1tmbC0+ZmFzdF07Cj4gPj4+Pj4+Pj4+PiArCXUzMiBtYXggPSBm bG8tPm1heCA8PCAoZmxvLT5sc2hpZnQgLSBjaGFuLT5zY2FuX3R5cGUuc2hpZnQpOwo+ID4+Pj4+ Pj4+Pj4gKwlpbnQgcmV0LCBpZHggPSBjaGFuLT5zY2FuX2luZGV4Owo+ID4+Pj4+Pj4+Pj4gICAg ICAgCj4gPj4+Pj4+Pj4+PiAgICAgICAJc3dpdGNoIChtYXNrKSB7Cj4gPj4+Pj4+Pj4+PiAgICAg ICAJY2FzZSBJSU9fQ0hBTl9JTkZPX1JBVzoKPiA+Pj4+Pj4+Pj4+IEBAIC0xMzA3LDYgKzEzMTks NDEgQEAgc3RhdGljIGludCBzdG0zMl9kZnNkbV9yZWFkX3JhdyhzdHJ1Y3QgaWlvX2RldiAqaW5k aW9fZGV2LAo+ID4+Pj4+Pj4+Pj4gICAgICAgCQkqdmFsID0gYWRjLT5zYW1wbGVfZnJlcTsKPiA+ Pj4+Pj4+Pj4+ICAgICAgIAo+ID4+Pj4+Pj4+Pj4gICAgICAgCQlyZXR1cm4gSUlPX1ZBTF9JTlQ7 Cj4gPj4+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4+PiArCWNhc2UgSUlPX0NIQU5fSU5GT19TQ0FMRToK PiA+Pj4+Pj4+Pj4+ICsJCS8qCj4gPj4+Pj4+Pj4+PiArCQkgKiBTY2FsZSBpcyBleHByZXNzZWQg aW4gbVYuCj4gPj4+Pj4+Pj4+PiArCQkgKiBXaGVuIGZhc3QgbW9kZSBpcyBkaXNhYmxlZCwgYWN0 dWFsIHJlc29sdXRpb24gbWF5IGJlIGxvd2VyCj4gPj4+Pj4+Pj4+PiArCQkgKiB0aGFuIDJebiwg d2hlcmUgbj1yZWFsYml0cy0xLgo+ID4+Pj4+Pj4+Pj4gKwkJICogVGhpcyBsZWFkcyB0byB1bmRl cmVzdGltYXRpbmcgaW5wdXQgdm9sdGFnZS4gVG8KPiA+Pj4+Pj4+Pj4+ICsJCSAqIGNvbXBlbnNh dGUgdGhpcyBkZXZpYXRpb24sIHRoZSB2b2x0YWdlIHJlZmVyZW5jZSBjYW4gYmUKPiA+Pj4+Pj4+ Pj4+ICsJCSAqIGNvcnJlY3RlZCB3aXRoIGEgZmFjdG9yID0gcmVhbGJpdHMgcmVzb2x1dGlvbiAv IGFjdHVhbCBtYXgKPiA+Pj4+Pj4+Pj4+ICsJCSAqLwo+ID4+Pj4+Pj4+Pj4gKwkJKnZhbCA9IGRp dl91NjQoKHU2NClhZGMtPnNkX2NoYW5baWR4XS5zY2FsZV92YWwgKgo+ID4+Pj4+Pj4+Pj4gKwkJ CSAgICAgICAodTY0KUJJVChERlNETV9EQVRBX1JFUyAtIDEpLCBtYXgpOwo+ID4+Pj4+Pj4+Pj4g KwkJKnZhbDIgPSBjaGFuLT5zY2FuX3R5cGUucmVhbGJpdHM7Cj4gPj4+Pj4+Pj4+PiArCQlpZiAo YWRjLT5zZF9jaGFuW2lkeF0uZGlmZmVyZW50aWFsKQo+ID4+Pj4+Pj4+Pj4gKwkJCSp2YWwgKj0g MjsKPiA+Pj4+Pj4+Pj4+ICsKPiA+Pj4+Pj4+Pj4+ICsJCXJldHVybiBJSU9fVkFMX0ZSQUNUSU9O QUxfTE9HMjsKPiA+Pj4+Pj4+Pj4+ICsKPiA+Pj4+Pj4+Pj4+ICsJY2FzZSBJSU9fQ0hBTl9JTkZP X09GRlNFVDoKPiA+Pj4+Pj4+Pj4+ICsJCS8qCj4gPj4+Pj4+Pj4+PiArCQkgKiBERlNETSBvdXRw dXQgZGF0YSBhcmUgaW4gdGhlIHJhbmdlIFstMl5uLDJebi0xXSwKPiA+Pj4+Pj4+Pj4+ICsJCSAq IHdpdGggbj1yZWFsYml0cy0xLgo+ID4+Pj4+Pj4+Pj4gKwkJICogLSBEaWZmZXJlbnRpYWwgbW9k dWxhdG9yOgo+ID4+Pj4+Pj4+Pj4gKwkJICogT2Zmc2V0IGNvcnJlc3BvbmQgdG8gU0QgbW9kdWxh dG9yIG9mZnNldC4KPiA+Pj4+Pj4+Pj4+ICsJCSAqIC0gU2luZ2xlIGVuZGVkIG1vZHVsYXRvcjoK PiA+Pj4+Pj4+Pj4+ICsJCSAqIElucHV0IGlzIGluIFswVixWcmVmXSByYW5nZSwgd2hlcmUgMFYg Y29ycmVzcG9uZHMgdG8gLTJebi4KPiA+Pj4+Pj4+Pj4+ICsJCSAqIEFkZCAyXm4gdG8gb2Zmc2V0 LiAoaS5lLiBtaWRkbGUgb2YgaW5wdXQgcmFuZ2UpCj4gPj4+Pj4+Pj4+PiArCQkgKiBvZmZzZXQg PSBvZmZzZXQoc2QpICogdnJlZiAvIHJlcyhzZCkgKiBtYXggLyB2cmVmLgo+ID4+Pj4+Pj4+Pj4g KwkJICovCj4gPj4+Pj4+Pj4+PiArCQkqdmFsID0gZGl2X3U2NCgodTY0KW1heCAqIGFkYy0+c2Rf Y2hhbltpZHhdLm9mZnNldCwKPiA+Pj4+Pj4+Pj4+ICsJCQkgICAgICAgQklUKGFkYy0+c2RfY2hh bltpZHhdLnNjYWxlX3ZhbDIgLSAxKSk7Cj4gPj4+Pj4+Pj4+PiArCQlpZiAoIWFkYy0+c2RfY2hh bltpZHhdLmRpZmZlcmVudGlhbCkKPiA+Pj4+Pj4+Pj4+ICsJCQkqdmFsICs9IG1heDsKPiA+Pj4+ Pj4+Pj4+ICsKPiA+Pj4+Pj4+Pj4+ICsJCXJldHVybiBJSU9fVkFMX0lOVDsKPiA+Pj4+Pj4+Pj4+ ICAgICAgIAl9Cj4gPj4+Pj4+Pj4+PiAgICAgICAKPiA+Pj4+Pj4+Pj4+ICAgICAgIAlyZXR1cm4g LUVJTlZBTDsKPiA+Pj4+Pj4+Pj4+IEBAIC0xNDMwLDcgKzE0NzcsOSBAQCBzdGF0aWMgaW50IHN0 bTMyX2Rmc2RtX2FkY19jaGFuX2luaXRfb25lKHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYsCj4g Pj4+Pj4+Pj4+PiAgICAgICAJICogSUlPX0NIQU5fSU5GT19SQVc6IHVzZWQgdG8gY29tcHV0ZSBy ZWd1bGFyIGNvbnZlcnNpb24KPiA+Pj4+Pj4+Pj4+ICAgICAgIAkgKiBJSU9fQ0hBTl9JTkZPX09W RVJTQU1QTElOR19SQVRJTzogdXNlZCB0byBzZXQgb3ZlcnNhbXBsaW5nCj4gPj4+Pj4+Pj4+PiAg ICAgICAJICovCj4gPj4+Pj4+Pj4+PiAtCWNoLT5pbmZvX21hc2tfc2VwYXJhdGUgPSBCSVQoSUlP X0NIQU5fSU5GT19SQVcpOwo+ID4+Pj4+Pj4+Pj4gKwljaC0+aW5mb19tYXNrX3NlcGFyYXRlID0g QklUKElJT19DSEFOX0lORk9fUkFXKSB8Cj4gPj4+Pj4+Pj4+PiArCQkJCSBCSVQoSUlPX0NIQU5f SU5GT19TQ0FMRSkgfAo+ID4+Pj4+Pj4+Pj4gKwkJCQkgQklUKElJT19DSEFOX0lORk9fT0ZGU0VU KTsKPiA+Pj4+Pj4+Pj4+ICAgICAgIAljaC0+aW5mb19tYXNrX3NoYXJlZF9ieV9hbGwgPSBCSVQo SUlPX0NIQU5fSU5GT19PVkVSU0FNUExJTkdfUkFUSU8pIHwKPiA+Pj4+Pj4+Pj4+ICAgICAgIAkJ CQkJQklUKElJT19DSEFOX0lORk9fU0FNUF9GUkVRKTsKPiA+Pj4+Pj4+Pj4+ICAgICAgIAo+ID4+ Pj4+Pj4+Pj4gQEAgLTE0ODEsOCArMTUzMCwxMCBAQCBzdGF0aWMgaW50IHN0bTMyX2Rmc2RtX2Fk Y19pbml0KHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYpCj4gPj4+Pj4+Pj4+PiAgICAgICB7Cj4g Pj4+Pj4+Pj4+PiAgICAgICAJc3RydWN0IGlpb19jaGFuX3NwZWMgKmNoOwo+ID4+Pj4+Pj4+Pj4g ICAgICAgCXN0cnVjdCBzdG0zMl9kZnNkbV9hZGMgKmFkYyA9IGlpb19wcml2KGluZGlvX2Rldik7 Cj4gPj4+Pj4+Pj4+PiArCXN0cnVjdCBpaW9fY2hhbm5lbCAqY2hhbm5lbHMsICpjaGFuOwo+ID4+ Pj4+Pj4+Pj4gKwlzdHJ1Y3Qgc3RtMzJfZGZzZG1fc2RfY2hhbl9pbmZvICpzZF9jaGFuOwo+ID4+ Pj4+Pj4+Pj4gICAgICAgCWludCBudW1fY2g7Cj4gPj4+Pj4+Pj4+PiAtCWludCByZXQsIGNoYW5f aWR4Owo+ID4+Pj4+Pj4+Pj4gKwlpbnQgcmV0LCBjaGFuX2lkeCwgdmFsMjsKPiA+Pj4+Pj4+Pj4+ ICAgICAgIAo+ID4+Pj4+Pj4+Pj4gICAgICAgCWFkYy0+b3ZlcnNhbXAgPSBERlNETV9ERUZBVUxU X09WRVJTQU1QTElORzsKPiA+Pj4+Pj4+Pj4+ICAgICAgIAlyZXQgPSBzdG0zMl9kZnNkbV9jb21w dXRlX2FsbF9vc3JzKGluZGlvX2RldiwgYWRjLT5vdmVyc2FtcCk7Cj4gPj4+Pj4+Pj4+PiBAQCAt MTUwNiw2ICsxNTU3LDIyIEBAIHN0YXRpYyBpbnQgc3RtMzJfZGZzZG1fYWRjX2luaXQoc3RydWN0 IGlpb19kZXYgKmluZGlvX2RldikKPiA+Pj4+Pj4+Pj4+ICAgICAgIAlpZiAoIWNoKQo+ID4+Pj4+ Pj4+Pj4gICAgICAgCQlyZXR1cm4gLUVOT01FTTsKPiA+Pj4+Pj4+Pj4+ICAgICAgIAo+ID4+Pj4+ Pj4+Pj4gKwkvKiBHZXQgU0QgbW9kdWxhdG9yIGNoYW5uZWxzICovCj4gPj4+Pj4+Pj4+PiArCWNo YW5uZWxzID0gaWlvX2NoYW5uZWxfZ2V0X2FsbCgmaW5kaW9fZGV2LT5kZXYpOwo+ID4+Pj4+Pj4+ Pj4gKwlpZiAoSVNfRVJSKGNoYW5uZWxzKSkgewo+ID4+Pj4+Pj4+Pj4gKwkJZGV2X2VycigmaW5k aW9fZGV2LT5kZXYsICJGYWlsZWQgdG8gZ2V0IGNoYW5uZWwgJWxkXG4iLAo+ID4+Pj4+Pj4+Pj4g KwkJCVBUUl9FUlIoY2hhbm5lbHMpKTsKPiA+Pj4+Pj4+Pj4+ICsJCXJldHVybiBQVFJfRVJSKGNo YW5uZWxzKTsKPiA+Pj4+Pj4+Pj4+ICsJfQo+ID4+Pj4+Pj4+Pj4gKwljaGFuID0gJmNoYW5uZWxz WzBdOwo+ID4+Pj4+Pj4+Pj4gKwo+ID4+Pj4+Pj4+Pj4gKwlhZGMtPnNkX2NoYW4gPSBkZXZtX2t6 YWxsb2MoJmluZGlvX2Rldi0+ZGV2LAo+ID4+Pj4+Pj4+Pj4gKwkJCQkgICAgc2l6ZW9mKCphZGMt PnNkX2NoYW4pICogbnVtX2NoLCBHRlBfS0VSTkVMKTsKPiA+Pj4+Pj4+Pj4+ICsJaWYgKCFhZGMt PnNkX2NoYW4pCj4gPj4+Pj4+Pj4+PiArCQlyZXR1cm4gLUVOT01FTTsKPiA+Pj4+Pj4+Pj4+ICsK PiA+Pj4+Pj4+Pj4+ICsJc2RfY2hhbiA9IGFkYy0+c2RfY2hhbjsKPiA+Pj4+Pj4+Pj4+ICsKPiA+ Pj4+Pj4+Pj4+ICAgICAgIAlmb3IgKGNoYW5faWR4ID0gMDsgY2hhbl9pZHggPCBudW1fY2g7IGNo YW5faWR4KyspIHsKPiA+Pj4+Pj4+Pj4+ICAgICAgIAkJY2hbY2hhbl9pZHhdLnNjYW5faW5kZXgg PSBjaGFuX2lkeDsKPiA+Pj4+Pj4+Pj4+ICAgICAgIAkJcmV0ID0gc3RtMzJfZGZzZG1fYWRjX2No YW5faW5pdF9vbmUoaW5kaW9fZGV2LAo+ID4+Pj4+Pj4+Pj4gJmNoW2NoYW5faWR4XSk7IEBAIC0x NTEzLDYgKzE1ODAsMzggQEAgc3RhdGljIGludCBzdG0zMl9kZnNkbV9hZGNfaW5pdChzdHJ1Y3Qg aWlvX2RldiAqaW5kaW9fZGV2KQo+ID4+Pj4+Pj4+Pj4gICAgICAgCQkJZGV2X2VycigmaW5kaW9f ZGV2LT5kZXYsICJDaGFubmVscyBpbml0IGZhaWxlZFxuIik7Cj4gPj4+Pj4+Pj4+PiAgICAgICAJ CQlyZXR1cm4gcmV0Owo+ID4+Pj4+Pj4+Pj4gICAgICAgCQl9Cj4gPj4+Pj4+Pj4+PiArCj4gPj4+ Pj4+Pj4+PiArCQlpZiAoIWNoYW4tPmluZGlvX2RldikKPiA+Pj4+Pj4+Pj4+ICsJCQlyZXR1cm4g LUVJTlZBTDsKPiA+Pj4+Pj4+Pj4+ICsKPiA+Pj4+Pj4+Pj4+ICsJCXJldCA9IGlpb19yZWFkX2No YW5uZWxfc2NhbGUoY2hhbiwgJnNkX2NoYW4tPnNjYWxlX3ZhbCwKPiA+Pj4+Pj4+Pj4+ICsJCQkJ CSAgICAgJnNkX2NoYW4tPnNjYWxlX3ZhbDIpOwo+ID4+Pj4+Pj4+Pj4gKwkJaWYgKHJldCA8IDAp IHsKPiA+Pj4+Pj4+Pj4+ICsJCQlkZXZfZXJyKCZpbmRpb19kZXYtPmRldiwKPiA+Pj4+Pj4+Pj4+ ICsJCQkJIkZhaWxlZCB0byBnZXQgY2hhbm5lbCAlZCBzY2FsZVxuIiwgY2hhbl9pZHgpOwo+ID4+ Pj4+Pj4+Pj4gKwkJCXJldHVybiByZXQ7Cj4gPj4+Pj4+Pj4+PiArCQl9Cj4gPj4+Pj4+Pj4+PiAr Cj4gPj4+Pj4+Pj4+PiArCQlpZiAoaWlvX2NoYW5uZWxfaGFzX2luZm8oY2hhbi0+Y2hhbm5lbCwg SUlPX0NIQU5fSU5GT19PRkZTRVQpKSB7Cj4gPj4+Pj4+Pj4+PiArCQkJcmV0ID0gaWlvX3JlYWRf Y2hhbm5lbF9vZmZzZXQoY2hhbiwgJnNkX2NoYW4tPm9mZnNldCwKPiA+Pj4+Pj4+Pj4+ICsJCQkJ CQkgICAgICAmdmFsMik7Cj4gPj4+Pj4+Pj4+PiArCQkJaWYgKHJldCA8IDApIHsKPiA+Pj4+Pj4+ Pj4+ICsJCQkJZGV2X2VycigmaW5kaW9fZGV2LT5kZXYsCj4gPj4+Pj4+Pj4+PiArCQkJCQkiRmFp bGVkIHRvIGdldCBjaGFubmVsICVkIG9mZnNldFxuIiwKPiA+Pj4+Pj4+Pj4+ICsJCQkJCWNoYW5f aWR4KTsKPiA+Pj4+Pj4+Pj4+ICsJCQkJcmV0dXJuIHJldDsKPiA+Pj4+Pj4+Pj4+ICsJCQl9Cj4g Pj4+Pj4+Pj4+PiArCQl9Cj4gPj4+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4+PiArCQlzZF9jaGFuLT5k aWZmZXJlbnRpYWwgPSBjaGFuLT5jaGFubmVsLT5kaWZmZXJlbnRpYWw7Cj4gPj4+Pj4+Pj4+PiAr Cj4gPj4+Pj4+Pj4+PiArCQlkZXZfZGJnKCZpbmRpb19kZXYtPmRldiwgIkNoYW5uZWwgJWQgJXMg c2NhbGUgcmVmPSVkIG9mZnNldD0lZCIsCj4gPj4+Pj4+Pj4+PiArCQkJY2hhbl9pZHgsIGNoYW4t PmNoYW5uZWwtPmRpZmZlcmVudGlhbCA/Cj4gPj4+Pj4+Pj4+PiArCQkJImRpZmZlcmVudGlhbCIg OiAic2luZ2xlLWVuZGVkIiwKPiA+Pj4+Pj4+Pj4+ICsJCQlzZF9jaGFuLT5zY2FsZV92YWwsIHNk X2NoYW4tPm9mZnNldCk7Cj4gPj4+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4+PiArCQljaGFuKys7Cj4g Pj4+Pj4+Pj4+PiArCQlzZF9jaGFuKys7Cj4gPj4+Pj4+Pj4+PiAgICAgICAJfQo+ID4+Pj4+Pj4+ Pj4gICAgICAgCj4gPj4+Pj4+Pj4+PiAgICAgICAJaW5kaW9fZGV2LT5udW1fY2hhbm5lbHMgPSBu dW1fY2g7ICAKPiA+Pj4gICAgICAKPiA+ICAgCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgt YXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=