From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.0 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,URIBL_BLOCKED,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 7C709C433F5 for ; Sun, 19 Sep 2021 18:12:39 +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 3342F60F9B for ; Sun, 19 Sep 2021 18:12:39 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 3342F60F9B 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=pcGb5hGwLjvKN7GHEFNn5QWulPqWW3FZYWkWqNjRZX4=; b=ZPOzBt+gnUwpIM iJIU3QlvXuTetYlWRA7IqMqQKfBOB3Q9vT42Cz+twOHMtRlfR4bpGu2z1nV8d6Iwc/HyOeoM173Sc AdKPoEBAGuA7nrdW6ynXc/8bbOQ6nMteZeP+xkal3+4uKWu2Nun6kU1N1RH+UpRXl5IPnLTJaF3vc jOQOsaD7v4E03MxfmkkdD9YxFWwKqMuB7rQ7LUlKAxnI1h2OkocE1Rb9fBbK7eGd1nBxo5WeVp4iz VrfRq6hpstcMyMogAekxu2j+WPE2HatZmYxOo+WY7IqhVL++ESJbGSdCS+wLgnR3cuFaxue+/dkkG ksVXB3StCHm+lnUuH4lw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mS1H2-0001z5-41; Sun, 19 Sep 2021 18:10:44 +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 1mS1Gw-0001y7-Fo for linux-arm-kernel@lists.infradead.org; Sun, 19 Sep 2021 18:10:42 +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 9997A60F9D; Sun, 19 Sep 2021 18:10:33 +0000 (UTC) Date: Sun, 19 Sep 2021 19:14:14 +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: <20210919191414.09270f4e@jic23-huawei> In-Reply-To: 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> 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-20210919_111038_642793_510CF3C3 X-CRM114-Status: GOOD ( 59.73 ) 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 T24gVHVlLCAxNCBTZXAgMjAyMSAxNzo0MzoxNSArMDIwMApPbGl2aWVyIE1PWVNBTiA8b2xpdmll ci5tb3lzYW5AZm9zcy5zdC5jb20+IHdyb3RlOgoKPiBIaSBKb25hdGhhbiwKPiAKPiBUaGFua3Ms IGZvciB5b3VyIGNvbW1lbnRzLgo+IAo+IE9uIDkvMTIvMjEgNzoyNiBQTSwgSm9uYXRoYW4gQ2Ft ZXJvbiB3cm90ZToKPiA+IE9uIEZyaSwgMTAgU2VwIDIwMjEgMTc6NTY6NDUgKzAyMDAKPiA+IE9s aXZpZXIgTU9ZU0FOIDxvbGl2aWVyLm1veXNhbkBmb3NzLnN0LmNvbT4gd3JvdGU6Cj4gPiAgIAo+ ID4+IEhpIEpvbmF0aGFuLAo+ID4+Cj4gPj4gT24gOS8xMC8yMSA0OjA1IFBNLCBPbGl2aWVyIE1P WVNBTiB3cm90ZTogIAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBTVCBSZXN0cmljdGVkCj4gPj4+ Cj4gPj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPj4+IEZyb206IEpvbmF0aGFuIENh bWVyb24gPGppYzIzQGtlcm5lbC5vcmc+Cj4gPj4+IFNlbnQ6IHZlbmRyZWRpIDE0IGbDqXZyaWVy IDIwMjAgMTY6MTAKPiA+Pj4gVG86IE9saXZpZXIgTU9ZU0FOIDxvbGl2aWVyLm1veXNhbkBzdC5j b20+Cj4gPj4+IENjOiByb2JoK2R0QGtlcm5lbC5vcmc7IG1hcmsucnV0bGFuZEBhcm0uY29tOyBr bmFhY2suaEBnbXguZGU7IGxhcnNAbWV0YWZvby5kZTsgZGV2aWNldHJlZUB2Z2VyLmtlcm5lbC5v cmc7IGxpbnV4LWlpb0B2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5v cmc7IHBtZWVyd0BwbWVlcncubmV0OyBsaW51eC1zdG0zMkBzdC1tZC1tYWlsbWFuLnN0b3JtcmVw bHkuY29tOyBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKPiA+Pj4gU3ViamVj dDogUmU6IFtQQVRDSCA0LzRdIGlpbzogYWRjOiBzdG0zMi1kZnNkbTogYWRkIHNjYWxlIGFuZCBv ZmZzZXQgc3VwcG9ydAo+ID4+Pgo+ID4+PiBPbiBGcmksIDE0IEZlYiAyMDIwIDE0OjQ5OjE4ICsw MDAwCj4gPj4+IE9saXZpZXIgTU9ZU0FOIDxvbGl2aWVyLm1veXNhbkBzdC5jb20+IHdyb3RlOgo+ ID4+PiAgICAgIAo+ID4+Pj4gSGkgSm9uYXRoYW4sCj4gPj4+Pgo+ID4+Pj4gT24gMi8xNC8yMCAy OjExIFBNLCBKb25hdGhhbiBDYW1lcm9uIHdyb3RlOiAgCj4gPj4+Pj4gT24gVHVlLCAxMSBGZWIg MjAyMCAxNToxOTowMSArMDAwMAo+ID4+Pj4+IE9saXZpZXIgTU9ZU0FOIDxvbGl2aWVyLm1veXNh bkBzdC5jb20+IHdyb3RlOgo+ID4+Pj4+ICAgICAgICAKPiA+Pj4+Pj4gSGkgSm9uYXRoYW4sCj4g Pj4+Pj4+Cj4gPj4+Pj4+IE9uIDIvOC8yMCA1OjE4IFBNLCBKb25hdGhhbiBDYW1lcm9uIHdyb3Rl OiAgCj4gPj4+Pj4+PiBPbiBUdWUsIDQgRmViIDIwMjAgMTE6MTA6MDggKzAxMDAKPiA+Pj4+Pj4+ IE9saXZpZXIgTW95c2FuIDxvbGl2aWVyLm1veXNhbkBzdC5jb20+IHdyb3RlOgo+ID4+Pj4+Pj4g ICAgICAgICAgIAo+ID4+Pj4+Pj4+IEFkZCBzY2FsZSBhbmQgb2Zmc2V0IGF0dHJpYnV0ZXMgc3Vw cG9ydCB0byBTVE0zMiBERlNETS4KPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6 IE9saXZpZXIgTW95c2FuIDxvbGl2aWVyLm1veXNhbkBzdC5jb20+ICAKPiA+Pj4+Pj4+IEhtbS4g SSBjYW4ndCByZW1lbWJlciB0aGlzIGhpc3Rvcnkgb2YgdGhpcyBidXQgd2UndmUga2luZCBvZiBl bmRlZAo+ID4+Pj4+Pj4gdXAgYmFja3dhcmRzIHdydCB0byBvdGhlciBjb25zdW1lciBkcml2ZXJz Lgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IEluIHNvbWUgc2Vuc2UgdGhpcyBpcyBzaW1pbGFyIHRvIHRo ZSBhbmFsb2cgZ3lyb3Njb3Blcy4gIEluIHRob3NlCj4gPj4+Pj4+PiB0aGUgY29uc3VtZXIgZHJp dmVyIGlzIHRoZSBneXJvc2NvcGUgd2hpY2ggaXMgY29uc3VtaW5nIHRoZSByYXcKPiA+Pj4+Pj4+ IHJlYWRpbmdzIGZyb20gYW4gQURDIGNvbm5lY3RlZCB0byB0aGUgY2hhbm5lbC4gIFRoaXMgcmVz dWx0cyBpbiB1cwo+ID4+Pj4+Pj4gZ2V0dGluZyByZWFkaW5ncyByZXBvcnRlZCBieSB0aGUgZ3ly b3Njb3BlIGRyaXZlci4KPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBIZXJlIHdlIGhhdmUgYSBzaWdtYSBk ZWx0YSBjb252ZXJ0b3IgY29uc3VtaW5nIHRoZSBwdWxzZSB0cmFpbgo+ID4+Pj4+Pj4gZnJvbSBh IHNpZ21hIGRlbHRhIGRldmljZS4gIFNvIHRoZSBjaGFubmVscyBhcmUgcmVwb3J0ZWQgYnkgdGhl Cj4gPj4+Pj4+PiBzaWdtYSBkZWx0YSByZWNlaXZlciwgd2hlcmVhcyBpIHRoaW5rIHRoZSBuZWFy ZXN0IGVxdWl2YWxlbnQgdG8KPiA+Pj4+Pj4+IHRoZSBhbmFsb2cgdm9sdGFnZSBvdXRwdXRpbmcg Z3lyb3Njb3BlcyB3b3VsZCBoYXZlIGJlZW4gaWYgd2UgaGFkCj4gPj4+Pj4+PiByZXBvcnRlZCB0 aGUgY2hhbm5lbCB2YWx1ZXMgYXQgdGhlIHNpZ21hIGRlbHRhIGNvbnZlcnRlci4gIAo+ID4+Pj4+ PiBUaGUgREZTRE0gZHJpdmVyIGlzIGN1cnJlbnRseSB1c2VkIGFzIGEgY29uc3VtZXIgb2YgdGhl IHNkIG1vZHVsYXRvci4KPiA+Pj4+Pj4gVGhlIHNjYWxlIGFuZCBvZmZzZXQgdmFsdWVzIG9mIHRo ZSBjaGFubmVscyBhcmUgYWxyZWFkeSBjb21wdXRlZCBieQo+ID4+Pj4+PiB0aGUgREZTRE0gZHJp dmVyLCBhbmQgcHJvdmlkZWQgYnkgdGhpcyBkcml2ZXIgdG8gdGhlIElJTyBBQkkuCj4gPj4+Pj4+ IEhvd2V2ZXIsIHRoZSBERlNETSBoYXMgbm8gdm9sdGFnZSByZWZlcmVuY2UsIHNvIGl0IGhhcyB0 byByZXRyaWV2ZQo+ID4+Pj4+PiBpdCBmcm9tIHNkLW1vZHVsYXRvciBjaGFubmVscywgZm9yIHRo ZSBzY2FsZSBmYWN0b3IgY29tcHV0YXRpb24uCj4gPj4+Pj4+Cj4gPj4+Pj4+ICAgICDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHNjYWxlwqAgb2Zmc2V0Cj4gPj4+Pj4+ICAgICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBewqDC oMKgwqDCoCBeCj4gPj4+Pj4+ICAgICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoMKgwqDCoCB8wqDC oMKgwqDCoMKgIElJTyBBQkkKPiA+Pj4+Pj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gPj4+Pj4+ICAgICDCoMKgwqDCoMKg wqDCoMKgICstLS0tLS0tLS0tLS0tLS0rwqDCoMKgwqDCoMKgwqDCoMKgICstLS0tLS0tLS0tLS0t Kwo+ID4+Pj4+PiAgICAgwqDCoMKgwqDCoMKgwqDCoCB8c2QgZHJpdmVywqDCoMKgwqDCoCB8wqDC oMKgwqDCoMKgwqDCoMKgIHxERlNETSBkcml2ZXIgfAo+ID4+Pj4+PiAgICAgwqDCoMKgwqDCoMKg wqDCoCArLS0tLS0tLS0tLS0tLS0tK8KgwqDCoMKgwqDCoMKgwqDCoCArLS0tLS0tLS0tLS0tLSsK PiA+Pj4+Pj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rCj4gPj4+Pj4+ICAgICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEhXCj4gPj4+Pj4+ICAgICDCoMKgwqDCoMKgwqDC oMKgICstLS0tLS0tLS0tLS0tLS0rwqDCoMKgwqDCoMKgwqDCoMKgICstLS0tLS0tLS0tLS0tKwo+ ID4+Pj4+PiArLS0tLS0tLT4rIHNkLW1vZHVsYXRvcsKgICstLS0tLS0tLS0+KyBERlNETSArLS0t LS0tLS0+Cj4gPj4+Pj4+IGFuYWxvZ8KgwqAgKy0tLS0tLSstLS0tLS0tLSvCoMKgwqDCoMKgwqDC oMKgwqAgKy0tLS0tLS0tLS0tLS0rIG91dHB1dCBpbnB1dAo+ID4+Pj4+PiBeCj4gPj4+Pj4+ICAg ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCB2cmVmCj4gPj4+Pj4+ICAgICDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKwo+ID4+Pj4+Pgo+ID4+Pj4+Pgo+ID4+Pj4+PiBJ cyBpdCB0aGUgdG9wb2xvZ3kgeW91ciBhcmUgZXhwZWN0aW5nID8gIAo+ID4+Pj4+IEl0J3Mgbm90 IHRoZSBvbmUgd2UnZCBleHBlY3QgaWYgd2UgYXJlIGFsaWduaW5nIHdpdGggc2ltaWxhciBjYXNl cwo+ID4+Pj4+IGVsc2V3aGVyZSBpbiBJSU8uICBGb3IgZXhhbXBsZSwgaWYgd2UgYXR0YWNoIGFu IGFuYWxvZyBhY2NlbGVyb21ldGVyCj4gPj4+Pj4gdG8gYW4gQURDLCB3ZSByZXBvcnQgdGhlIGFj Y2VsIGNoYW5uZWxzIG9uIHRoZSBhY2NlbGVyb21ldGVyIG5vdCB0aGUKPiA+Pj4+PiBBREMuICBU aGUgZXF1aXZhbGVudCB3b3VsZCBiZSB0byBzZWUgdGhlIERGU0RNIGFzIHByb3ZpZGluZyBhCj4g Pj4+Pj4gY29udmVyc2lvbiBzZXJ2aWNlIHRvIHRoZSBTRCBkZXZpY2Ugd2hpY2ggaXMgYWN0dWFs bHkgZXhlY3V0aW5nIHRoZQo+ID4+Pj4+IG1lYXN1cmVtZW50IGFuZCBoYXMgdGhlIGlucHV0IGNo YW5uZWxzLgo+ID4+Pj4+Cj4gPj4+Pj4KPiA+Pj4+PiAgICDCoMKgwqDCoMKgwqDCoMKgIHNjYWxl wqAgb2Zmc2V0ICByYXcKPiA+Pj4+PiAgICDCoMKgwqDCoMKgwqDCoMKgwqDCoCBewqDCoMKgwqDC oCBeICAgICAgXgo+ID4+Pj4+ICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgwqDCoMKgIHzC oMKgwqDCoCAgfCAgwqDCoCAgICAgICAgICAgICAgICAgICAgICAgICAgSUlPIEFCSQo+ID4+Pj4+ ICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSsKPiA+Pj4+PiAgICAgIMKgwqDCoMKgwqDCoMKgwqAgKy0tLS0tLS0tLS0tLS0t LSvCoMKgwqDCoMKgwqDCoMKgwqAgKy0tLS0tLS0tLS0tLS0rCj4gPj4+Pj4gICAgICDCoMKgwqDC oMKgwqDCoMKgIHxzZCBkcml2ZXLCoMKgwqDCoMKgIHzCoMKgwqDCoMKgwqDCoMKgwqAgfERGU0RN IGRyaXZlciB8Cj4gPj4+Pj4gICAgICDCoMKgwqDCoMKgwqDCoMKgICstLS0tLS0tLS0tLS0tLS0r wqDCoMKgwqDCoMKgwqDCoMKgICstLS0tLS0tLS0tLS0tKwo+ID4+Pj4+ICAgICArLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPiA+ Pj4+PiAgICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgSFcKPiA+Pj4+PiAgICAgIMKgwqDCoMKgwqDCoMKgwqAgKy0tLS0tLS0tLS0tLS0t LSvCoMKgwqDCoMKgwqDCoMKgwqAgKy0tLS0tLS0tLS0tLS0rCj4gPj4+Pj4gICAgICstLS0tLS0t Pisgc2QtbW9kdWxhdG9ywqAgKy0tLS0tLS0tLT4rIERGU0RNICstLS0tLS0tLT4KPiA+Pj4+PiAg ICAgYW5hbG9nwqDCoCArLS0tLS0tKy0tLS0tLS0tK8KgwqDCoMKgwqDCoMKgwqDCoCArLS0tLS0t LS0tLS0tLSsgb3V0cHV0Cj4gPj4+Pj4gICAgIGlucHV0wqDCoMKgwqDCoMKgwqDCoMKgwqAgXgo+ ID4+Pj4+ICAgICAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgdnJlZiAgCj4gPj4+ Pj4+ICAgICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKwo+ID4+Pj4+PiAgICAgICAg Cj4gPj4+PiBUaGFua3MgZm9yIHlvdXIgY2xhcmlmaWNhdGlvbi4KPiA+Pj4+IG9rLCBtb3Zpbmcg dG8gdGhpcyBsb2dpYyBpcyBhIHNpZ25pZmljYW50IGNoYW5nZS4KPiA+Pj4+IEkgbmVlZCB0byBl dmFsdWF0ZSBmdXJ0aGVyIHRoZSBpbXBhY3Qgb24gdGhlIGRmc2RtIGRyaXZlci4gIAo+ID4+Pgo+ ID4+PiBVbmRlcnN0b29kISAgSWYgd2UgY2FuJ3QgZG8gaXQgd2l0aG91dCBwb3RlbnRpYWxseSBi cmVha2luZyB1c2VycyB0aGVuIHN1Y2ggaXMgbGlmZS4KPiA+Pj4KPiA+Pj4gSm9uYXRoYW4KPiA+ Pj4gICAgICAKPiA+Pgo+ID4+IEkgY29tZSBiYWNrIHRvIHRoaXMgb2xkLCBidXQgc3RpbGwgdmFs aWQgdG9waWMuICAKPiA+IAo+ID4gSSdkIGZvcmdvdHRlbiBhYm91dCB0aGlzIG9uZSwgc28gYXBv bG9naWVzIGlmIGl0IHRha2VzIG1lIGEgYml0IG9mIHRpbWUgdG8KPiA+IGdldCBiYWNrIHVwIHRv IHNwZWVkIQo+ID4gICAKPiA+PiBZb3UgbWVudGlvbmVkIHRoZSBleGFtcGxlIG9mIGFuYWxvZyBn eXJvc2NvcGVzIGluIGEgcHJldmlvdXMgbWVzc2FnZS4KPiA+PiBMb29raW5nIGF0IGd5cm9zY29w ZSBkcml2ZXJzLCBJIGZvdW5kIHJjYXItZ3lyb2FkYyBkcml2ZXIgd2hpY2ggc2hvd3MgIAo+ID4g Cj4gPiBOb3QgYSBneXJvc2NvcGUgZHJpdmVyIGRlc3BpdGUgdGhlIG5hbWUgOikgIEkgd2FzIHRo aW5raW5nIG1vcmUgb2YgdGhlCj4gPiBjYXNlIHdoZXJlIHdlIGhhdmUgYSBneXJvc2NvcGUgdGhh dCBjYW4gYmUgd2lyZWQgdXAgdG8gYSBidW5jaCBvZiBkaWZmZXJlbnQKPiA+IEFEQ3MuCj4gPiAg IAo+ID4+IHJlcXVpcmVtZW50cyBzaW1pbGFyIHRvIGRmc2RtIG5lZWRzOgo+ID4+IGh0dHBzOi8v d3d3Lmtlcm5lbC5vcmcvZG9jL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9paW8v YWRjL3JlbmVzYXMlMkNyY2FyLWd5cm9hZGMueWFtbAo+ID4+Cj4gPj4gcmNhci1neXJvYWRjIGRy aXZlciBtYWluIGNoYXJhY3RlcmlzaXRpY3M6Cj4gPj4gLSB0aGUgcGFyZW50IGRldmljZSAoZ3ly b2FkYykgaXMgYSBjb25zdW1lciBvZiBzdWIgZGV2aWNlcyAoU1BJIEFEQ3MpCj4gPj4gLSB0aGUg Y2hhbm5lbHMgYXJlIHBvcHVsYXRlZCBmcm9tIHRoZSBzdWIgZGV2aWNlcwo+ID4+IC0gdGhlIGlp byBkZXZpY2UgaXMgYXNzb2NpYXRlZCB0byB0aGUgcGFyZW50IGRldmljZSAgCj4gPiAKPiA+IEkg d291bGRuJ3QgbmVjZXNzYXJpbHkgdGFrZSB0aGF0IGFzIGEgZ29sZGVuIGV4YW1wbGUuICBXZSB3 ZXJlIHN0aWxsIGZpZ3VyaW5nCj4gPiBvdXQgaG93IHRoaXMgc3R1ZmYgd291bGQgZml0IHRvZ2V0 aGVyLgo+ID4gIEZyb20gd2hhdCBJIHJlY2FsbCAoYW5kIGl0J3MgYmVlbiBhIGZldyB5ZWFycykg dGhhdCBkZXZpY2UgcHJvdmlkZXMgbm8KPiA+IGNvbmZpZ3VyYXRpb24gdHlwZSBpbnRlcmZhY2Vz IGZvciB0aGUgU1BJIEFEQ3MgLSB0aGV5IGVuZCB1cCBoYXZpbmcgbm8KPiA+IGV4aXN0ZW5jZSBp biB0aGUgZGV2aWNlIG1vZGVsIGFzIGEgcmVzdWx0LiAgVGhlcmUgaXMgbm8gbWVhbnMgb2YKPiA+ IHNoYXJpbmcgYW55dGhpbmcgYmV0d2VlbiB0aGUgd2F5cyB0aGlzIGRldmljZSB1c2VzIHRoZSBT UEkgQURDcyBhbmQgdGhlCj4gPiB3YXkgYW55IG90aGVyIGRldmljZSBkb2VzLgo+ID4gICAKPiA+ Pgo+ID4+Cj4gPj4gSSB0b29rIHRoZSBleGFtcGxlIG9mIGd5cm9hZGMgdG8gcmVjb25zaWRlciBk ZnNkbSB0b3BvbG9neSBhbmQgZXhwbG9yZQo+ID4+IHNvbWUgdmFyaWFudHMgYWNjb3JkaW5nIHRv IElJTyBkZXZpY2VzIHVzZS4KPiA+Pgo+ID4+IDEpIGN1cnJlbnQgdG9wb2xvZ3k6IG9uZSBJSU8g ZGV2aWNlIHBlciBTRCBtb2R1bGF0b3IgYW5kIG9uZSBpaW8gZGV2aWNlCj4gPj4gcGVyIERGU0RN IGZpbHRlcgo+ID4+ICAgICAgIFRoZSBERlNETSBpcyB1c2VkIGFzIGEgY29uc3VtZXIgb2YgU0Qg bW9kdWxhdG9yIHRocm91Z2ggdGhlIGh3Cj4gPj4gICAgICAgY29uc3VtZXIgQVBJLgo+ID4+ICAg ICAgICogY29ucwo+ID4+ICAgICAgICAgICAtIFNEIG1vZHVsYXRvciBhbmQgREZTRE0gZmlsdGVy IGhhdmUgdGhlaXIgb3duIGNoYW5uZWwKPiA+PiAgICAgICAgICAgc3BlY2lmaWNhdGlvbi4KPiA+ PiAgICAgICAgICAgLSBERlNETSByZXRyaWV2ZXMgY2hhbm5lbHMgc2NhbGUgaW5mb3JtYXRpb24g ZnJvbSBTRAo+ID4+ICAgICAgICAgICBtb2R1bGF0b3IgdG8gaW5pdGlhbGl6ZWQgaXRzIGNoYW5u ZWxzCj4gPj4gICAgICAgICAgIC0gU0QgbW9kdWxhdG9yIElJTyBzeXNmcyBpbnRlcmZhY2UgaXMg dXNlbGVzcwo+ID4+Cj4gPj4gKy0tLS0tLS0tLS0tLSsgICAgICstLS0tLS0tKyAgICAgKy0tLS0t LS0tLSsgIHN5c2ZzCj4gPj4gfCBzZDAgaWlvZGV2IHwgLS0+IHwgY2hhbjAgfCAtLT4gfCBmaWx0 ZXIwIHwgLS0tLS0tLT4KPiA+PiArLS0tLS0tLS0tLS0tKyAgICAgKy0tLS0tLS0rICAgICArLS0t LS0tLS0tKwo+ID4+ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCj4gPj4g ICAgIHwgc3lzZnMgICAgICAgICAgICAgICAgICAgICAgICAgIHwKPiA+PiAgICAgdiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfAo+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8Cj4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwK PiA+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+ID4+ICstLS0tLS0t LS0tLS0rICAgICArLS0tLS0tLSsgICAgICAgfAo+ID4+IHwgc2QxIGlpb2RldiB8IC0tPiB8IGNo YW4xIHwgLS0tLS0tKwo+ID4+ICstLS0tLS0tLS0tLS0rICAgICArLS0tLS0tLSsKPiA+PiAgICAg fAo+ID4+ICAgICB8IHN5c2ZzCj4gPj4gICAgIHYKPiA+Pgo+ID4+Cj4gPj4gMikgImNvbnZlcnNp b24gc2VydmljZSIgdG9wb2xvZ3k6IG9uZSBJSU8gZGV2aWNlIHBlciBTRCBtb2R1bGF0b3IKPiA+ PiAgICAgICAqIGNvbnMKPiA+PiAgICAgICAgICAgLSBEYXRhIHRyYW5zZmVyczogaW4gdGhpcyBj YXNlIHRoZSBjb252ZXJ0ZWQgZGF0YSBmcm9tCj4gPj4gICAgICAgICAgIERGU0RNIGZpbHRlciBo YXZlIHRvIGJlIHNlbnQgYmFjayB0byBTRCBtb2R1bGF0b3IgdG8gYmUgCQo+ID4+IAlhdmFpbGFi bGUgb24gc3lzZnMgaW50ZXJmYWNlLgo+ID4+ICAgICAgICAgICAtIFNjYW4gbW9kZTogdGhpcyB0 b3BvbG9neSBzZWVtcyBub3QgY29tcGF0aWJsZSB3aXRoIHNjYW4KPiA+PiAgICAgICAgICAgbW9k ZSwgd2hlcmUgbXVsdGlwbGV4ZWQgY2hhbm5lbHMgYXJlIGV4cGVjdGVkIGFyZSBvbgo+ID4+IAlJ SU8gZGV2aWNlIGludGVyZmFjZS4KPiA+PiAgCj4gPj4gCT0+IEkgZG9uJ3QgZmluZCBhIHByb3Bl ciB3YXkgdG8gYWRkcmVzcyBzY2FuIG1vZGUgd2l0aCBtdWx0aSBTRCAgCj4gPj4gCW1vZHVsYXRv ciBjb25uZWN0ZWQgdG8gb25lIERGU00gZmlsdGVyICAKPiA+IAo+ID4gR29vZCBwb2ludCwgdGhl cmUgaXNuJ3QgYSBtZWFucyBvZiBjb21iaW5pbmcgdGhlIHNjYW5zIGZyb20gbXVsdGlwbGUKPiA+ IElJTyBkZXZpY2VzIGFuZCB0aGF0IGlzIHdoYXQgd2UgZW5kIHVwIGhhdmluZyBpbiB0aGlzIG1v ZGVsLgo+ID4gCj4gPiBZb3UgY2FuICdzcGxpdCcgdGhlIGNoYW5uZWxzIHNvIHRoYXQgZW5hYmxp bmcgc2QwIGFuZCBzZDEgYnVmZmVyZWQKPiA+IG1vZGUgd2lsbCByZXN1bHQgaW4gc2NhbnMgZnJv bSB0aGUgZmlsdGVyIGZpbGxpbmcgRklGT3MgZm9yIGVhY2ggb2YgdGhlbQo+ID4gYnV0IHRoYXQg bWF5IG5vdCBmaXQgdGhlIHVzZSBtb2RlbCB5b3UgaGF2ZSBpbiBtaW5kLgo+ID4gICAKPiAKPiBZ ZXMsIHRoaXMgbW9kZWwgbWF5IGJlIGFuIG9wdGlvbiB3aGVuIHdlIGhhdmUgaW5kZXBlbmRlbnQg ZGF0YSBvbiBlYWNoIAo+IGNoYW5uZWwuIElmIHdlIHdhbnQgdG8gaGFuZGxlIGRhdGEgY29ycmVs YXRlZCBpbiB0aW1lLCB0aGluZ3MgYmVjb21lIAo+IG1vcmUgdHJpY2t5LCB5ZXQuCj4gVGhlIGZv bGxvd2luZyBwcmVzZW50YXRpb24gc2hvd3Mgc29tZSBleGFtcGxlcyBvZiB1c2UgY2FzZXMgZm9y IFNUTTMyIAo+IERGU0RNIChwYWdlIDIwIHRvIDI0KToKPiBodHRwczovL3N0LW9ubGluZXRyYWlu aW5nLnMzLmFtYXpvbmF3cy5jb20vU1RNMzJMNF9TeXN0ZW1fRGlnaXRhbF9GaWx0ZXJfZm9yX1NE X01vZHVsYXRvcnNfaW50ZXJmYWNlXyhERlNETSkvaW5kZXguaHRtbAo+IAo+IExvb2tpbmcgYXQg My1waGFzZSBlbGVjdHJpY2l0eSBtZXRlciBleGFtcGxlIChwYWdlIDIzKSwgdGhlIHZvbHRhZ2Vz IAo+IGZyb20gdGhyZWUgU0QgbW9kdWxhdG9ycyBhcmUgY2FwdHVyZWQgYW5kIHByb2Nlc3NlZCBi eSBvbmUgREZTRE0gZmlsdGVyLgo+IFRoZSBtdXRpcGxleGVkIGZpbHRlcmVkIGRhdGEgY2FuIHRo ZW4gYmUgdXNlZCBmb3IgZnVydGhlciBwcm9jZXNzaW5nLgo+IElmIHdlIGdldCB0aGUgZmlsdGVy ZWQgZGF0YSBmcm9tIHRocmVlIFNEIElJTyBkZXZpY2VzLCBpdCBsb29rcyAKPiBkaWZmaWN1bHQg dG8gZ3VhcmFudGVlIHRpbWUgYWxpZ25tZW50IGJldHdlZW4gdGhlc2UgZGF0YS4KCldlIGNhbiBj aGVhdCBhbmQgZW5zdXJlIHRoZXkgYWxsIGhhdmUgdGhlIHNhbWUgdGltZXN0YW1wLCBidXQgSSBh Z3JlZQppdCBpcyBsZXNzIHRoYW4gaWRlYWwuCgo+IAo+IEl0IHNlZW1zIHRvIG1lIHRoYXQgdGhl IHNvbHV0aW9uIDIsIG1heSByZWR1Y2UgdGhlIGZpZWxkIG9mIHVzZSBjYXNlcyAKPiB0aGF0IGNv dWxkIGJlIGFkZHJlc3NlZCBieSB0aGUgREZTRE0uCgpBZ3JlZWQsIHRoYXQncyBub3QgZ29vZC4K Cj4gCj4gPiBUaGlzIHNvcnQgb2YgZGVtdXggaXMgbW9yZSBvZnRlbiBkb25lIGZvciB3aGVuIHdl IGhhdmUgYSBjb25zdW1lciBpbgo+ID4gdGhlIGZvcm0gb2Ygc2F5IGEgdG91Y2hzY3JlZW4gdGhh dCB1c2VzIGEgY291cGxlIG9mIGNoYW5uZWxzIG9mZiBhCj4gPiBnZW5lcmFsIHB1cnBvc2UgQURD LiBXZSBoYXZlIG5vIHJlYXNvbiB0byB3YW50IHRvIGVuc3VyZSBhbnkgYWxpZ25tZW50Cj4gPiBi ZXR3ZWVuIHRoZSBkYXRhIGdvaW5nIHRvIHRoZSB0b3VjaHNjcmVlbiBhbmQgdGhhdCBnb2luZyB0 byB0aGUKPiA+IHdobyBldmVyIGlzIGludGVyZXN0ZWQgaW4gdGhlIG90aGVyIEFEQyBjaGFubmVs cy4KPiA+ICAgCj4gPj4KPiA+PiArLS0tLS0tLS0tLS0tKyAgICAgICstLS0tLS0tKyAgICAgKy0t LS0tLS0tLSsKPiA+PiB8IHNkMCBpaW9kZXYgfCA8LS0+IHwgY2hhbjAgfCA8LT4gfCBmaWx0ZXIw IHwKPiA+PiArLS0tLS0tLS0tLS0tKyAgICAgICstLS0tLS0tKyAgICAgKy0tLS0tLS0tLSsKPiA+ PiAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KPiA+PiAgICAgfCBzeXNm cyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKPiA+PiAgICAgdiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwKPiA+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwKPiA+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKPiA+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKPiA+PiArLS0tLS0tLS0tLS0t KyAgICAgICstLS0tLS0tKyAgICAgICB8Cj4gPj4gfCBzZDEgaWlvZGV2IHwgPC0tPiB8IGNoYW4x IHwgPC0tLS0tKwo+ID4+ICstLS0tLS0tLS0tLS0rICAgICAgKy0tLS0tLS0rCj4gPj4gICAgIHwK PiA+PiAgICAgfCBzeXNmcwo+ID4+ICAgICB2Cj4gPj4KPiA+Pgo+ID4+IDMpIGd5cm9hZGMgbGlr ZSB0b3BvbG9neTogb25lIGlpbyBkZXZpY2UgcGVyIERGU0RNIGZpbHRlcgo+ID4+IChubyBTRCBt b2R1bGF0b3IgaWlvIGRldmljZSByZWdpc3RlcmVkKQo+ID4+ICAgICAgIEZvciBERlNETSBzY2Fs ZSBhbmQgb2Zmc2V0LCB0aGUgcmVxdWlyZWQgaW5mb3JtYXRpb24gYXJlIFNECj4gPj4gICAgICAg bW9kdWxhdG9yIHJlZmVyZW5jZSB2b2x0YWdlIGFuZCBjaGFubmVsIHR5cGVzLgo+ID4+Cj4gPj4g ICAgICAgdm9sdGFnZSByZWZlcmVuY2U6IHRoZSByZWd1bGF0b3Igdm9sdGFnZSBjYW4gYmUgcmV0 cmlldmVkIGFzIGl0Cj4gPj4gICAgICAgaXMgZG9uZSBpbiAgZ3lyb2FkYyBkcml2ZXIuCj4gPj4g ICAgICAgTWF5YmUgd2UgY2FuIGRyb3BwZWQgbWVyZWx5IFNEIG1vZHVsYXRvciwgYW5kIGRlc2Ny aWJlIHZvbHRhZ2UKPiA+PiAgICAgICBhcyBhIHByb3BlcnR5IG9mIHRoZSBjaGFubmVsICh0aHJv dWdoIGdlbmVyaWMgY2hhbm5lbCBiaW5kaW5nKQo+ID4+ICAgICAgIFRoaXMgbWF5IGJlIHRvbyBy ZXN0cmljdGl2ZSBpZiBtb3JlIGhhcmR3YXJlIGhhcyB0byBiZQo+ID4+ICAgICAgIGNvbmZpZ3Vy ZWQgaW4gdGhlIFNEIG1vZHVsYXRvciwgeWV0LiAgCj4gPiAKPiA+IFRoYXQgaXMgaW5kZWVkIHRo ZSBrZXkgcXVlc3Rpb24uIERvIHdlIG5lZWQgdG8gY29uZmlndXJlIHRoZSBtb2R1bGF0b3IKPiA+ IGRldmljZXM/IElmIHdlIGRvIHRoZW4gdGhleSBuZWVkIHRvIGhhdmUgYW4gZXhpc3RlbmNlIGlu IHRoZSBkZXZpY2UgbW9kZWwuCj4gPiBNYXBwaW5nIHRoZW0gYXMgSUlPIGRldmljZXMgcHJvdmlk ZXMgcmV1c2FiaWxpdHkgYWNyb3NzIG11bHRpcGxlCj4gPiBmaWx0ZXIgaW1wbGVtZW50YXRpb25z Lgo+ID4gICAKPiAKPiBXZSBuZWVkIHRvIGJlIGFibGUgdG8gbWFuYWdlIGEgd2lkZSByYW5nZSBv ZiBhcHBsaWNhdGlvbi4gU28sIHdlIGhhdmUgdG8gCj4gYmUgZmxleGlibGUgZW5vdWdoIHRvIGNv bmZpZ3VyZSBTRCBtb2R1bGF0b3Igd2hlbiBuZWNlc3NhcnkuCj4gSSBhZ3JlZSwgdGhhdCB0aGUg U0QgZGV2aWNlIGhhcyB0byBiZSBrZXB0IGZyb20gdGhpcyBwb2ludCBvZiB2aWV3Lgo+IAo+ID4+ Cj4gPj4gICAgICAgY2hhbm5lbCB0eXBlOiBJSU8gZ2VuZXJpYyBjaGFubmVsIGJpbmRpbmcgY291 bGQgYmUgdXNlZCBoZXJlCj4gPj4gICAgICAgaW5zdGVhZCBvZiBwcm9wcmlldGFyeSBwcm9wZXJ0 aWVzCj4gPj4gICAgICAgdG8gZGVzY3JpYmUgdGhlIGNoYW5uZWxzCj4gPj4KPiA+PiAgICAgICBi aW5kaW5nIHNhbXBsZToKPiA+PiAgICAgICBkZnNkbV9wZG0xOiBmaWx0ZXJAMSB7Cj4gPj4gICAg ICAgICAgIGNvbXBhdGlibGUgPSAic3Qsc3RtMzItZGZzZG0tYWRjIjsKPiA+PiAgICAgICAgICAg cmVnID0gPDE+Owo+ID4+ICAgICAgICAgICBpbnRlcnJ1cHRzID0gPEdJQ19TUEkgMTExIElSUV9U WVBFX0xFVkVMX0hJR0g+Owo+ID4+ICAgICAgICAgICBkbWFzID0gPCZkbWFtdXgxIDEwMiAweDQw MCAweDAxPjsKPiA+PiAgICAgICAgICAgZG1hLW5hbWVzID0gInJ4IjsKPiA+PiAgICAgICAgICAg c3QsZmlsdGVyLW9yZGVyID0gPDE+Owo+ID4+Cj4gPj4gICAgICAgICAgIGNoYW5uZWxAMiB7Cj4g Pj4gICAgICAgICAgICAgICByZWcgPSA8Mj47Cj4gPj4gICAgICAgICAgICAgICBsYWJlbCA9ICJp bjIiOwo+ID4+ICAgICAgICAgICAgICAgc3QsYWRjLWNoYW5uZWwtdHlwZXMgPSAiU1BJX1IiOwo+ ID4+ICAgICAgICAgICAgICAgc3QsYWRjLWNoYW5uZWwtY2xrLXNyYyA9ICJDTEtPVVRfRiI7Cj4g Pj4KPiA+PiAgICAgICAgICAgICAgIHNkQDAgeyAgICA/Cj4gPj4gICAgICAgICAgICAgICAgICAg cmVnID0gPDA+Owo+ID4+ICAgICAgICAgICAgICAgICAgIGNvbXBhdGlibGUgPSAic2QtbW9kIjsK PiA+PiAgICAgICAgICAgICAgICAgICB2cmVmLXN1cHBseSA9IDwmdnJlZj47Cj4gPj4gICAgICAg ICAgICAgICB9Owo+ID4+ICAgICAgICAgICB9Owo+ID4+ICAgICAgIH07Cj4gPj4KPiA+PiAgICAg ICAqIGNvbnMKPiA+PiAgICAgICAgICAgLSBUaGUgc3ViIGRldmljZXMgYXJlIGVtYmVkZGVkIGlu IHRoZSBkcml2ZXIgYW5kIGFyZSBub3QKPiA+PiAgICAgICAgICAgYmFzZWQgb24gZ2VuZXJhbCBk ZXZpY2UgQVBJLgo+ID4+ICAgICAgICAgICBBbHRlcm5hdGl2ZWx5LCBpZiB3ZSB3YW50IHRvIHVz ZSBzdGFuZGFyZCBkZXZpY2UgbW9kZWwKPiA+PiAgICAgICAgICAgYW5kIGF2b2lkIHRoZSBjcmVh dGlvbiBvZiBhbiB1bnJlbGV2YW50IElJTyBkZXZpY2UgZm9yCj4gPj4gICAgICAgICAgIFNEIG1v ZHVsYXRvciwgYSBzcGVjaWZpYyB0eXBlIG9mIGRldmljZSBtYXkgYmUKPiA+PiAgICAgICAgICAg cHJvdmlkZWQgYnkgSUlPIGZyYW1ld29yay4gVGhpcyBjb3VsZCBiZSBhIGtpbmQgb2YKPiA+PiAg ICAgICAgICAgImJhY2tlbmQiIGRldmljZSB3aXRob3V0IElJTyBzeXNmcyBpbnRlcmZhY2UgYXR0 YWNoZWQuICAKPiA+IAo+ID4gVGhhdCBtYXkgYmUgYW4gb3B0aW9uLiAgSXQgd2FzIGFsd2F5cyBv biB0aGUgbGlzdCBvZiB0aGluZ3MgdG8gZG8KPiA+IHRvIGFsbG93IGZvciBJSU8gZGV2aWNlcyB0 aGF0IGhhdmUgbm8gJ0lJTyBpbnRlcmZhY2UnIHRvIHVzZXJzcGFjZS4KPiA+IFRoZSBtYWluIHVz ZWNhc2Ugd2FzIFNvQyBBRENzIHdoZXJlIGFsbCB0aGUgY2hhbm5lbHMgYXJlIGdvaW5nIHRvCj4g PiBvdGhlciBpbiBrZXJuZWwgY29uc3VtZXJzLCBidXQgaXQgbWlnaHQgYmUgYXBwbGljYWJsZSBo ZXJlIGFzIHdlbGwuCj4gPiAgIAo+IAo+IENhbiB5b3Ugc2VlIGFub3RoZXIgYWx0ZXJuYXRpdmUg dG8gc29sdXRpb24gMiwgdG8gYWxsb3cgZnVsbCBzdXBwb3J0IG9mIAo+IERGU0RNIGZlYXR1cmVz ID8KCkFueXRoaW5nIEkgY2FuIGNvbWUgdXAgd2l0aCBhbHNvIGhhcyBpc3N1ZXMuCkEpIEFzc3Vt ZSB0aGF0IGlmIHdlIGhhdmUgbXVsdGlwbGUgY2hhbm5lbHMgdGhhdCB3ZSB3YW50IHRvIGNhcHR1 cmUgdG9nZXRoZXIgdGhhdAogICB0aGV5IGFyZSBnb2luZyB0aHJvdWdoIG1hdGNoZWQgbW9kdWxh dG9yIGRldmljZXMuICBTbyBtYWtlIHRoZSBtb2R1bGF0b3IgZHJpdmVyCiAgIGFibGUgdG8gaGFu ZGxlIG11bHRpcGxlIGNoYW5uZWxzLiAgVGhhdCB3YXkgd2UgY291bGQgd3JhcCBpdCBhbGwgdXAg dG9nZXRoZXIuCglDb25zOiBXaGF0IGlmIHRoZXkgYXJlIHVzaW5nIGRpZmZlcmVudCBtb2R1bGF0 b3JzIGJ1dCBzdGlsbCB3YW50IHRvIGNhcHR1cmUKCSAgICAgIHRoZSBkYXRhIGFzIG9uZSBzY2Fu PwoKQikgQWRkIHRoZSBsb2dpYyB0byBtdXggZGV2aWNlcyBiYWNrIHRvZ2V0aGVyICh0aGlzIGlz IG5hc3R5IGJ1dCBiZWFyIHdpdGggbWUpCgorLS0tLS0tLS0tLS0tLS0tLS0tLS0rICAgICstLS0t LS0tLSsgICArLS0tLS0tLS0tLS0tLS0tLS0rCnwgQ2hhbm5lbCBpbnRlcmxlYXZlcnwtLS0tfCBT RDAgICAgfC0tLXwgRmlsdGVyIDAgaWlvZGV2IHwgCnwgICAgICAgICAgICAgICAgICAgIHwgICAg Ky0tLS0tLS0tKyAgIHwgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgfCAg ICArLS0tLS0tLS0rICAgfCAgICAgICAgICAgICAgICAgfCAgICAgICAgIAp8ICAgICAgICAgICAg ICAgICAgICB8LS0tLXwgU0QxICAgIHwtLS18ICAgICAgICAgICAgICAgICB8IAp8ICAgICAgICAg ICAgICAgICAgICB8ICAgICstLS0tLS0tLSsgICArLS0tLS0tLS0tLS0tLS0tLS0rCistLS0tLS0t LS0tLS0tLS0tLS0tLSsKCkkgZGlkIG1lbnRpb24gdGhpcyBnb3QgbmFzdHkgOikgSXQgbWlnaHQg YmUgYSB1c2VmdWwgY29uY2VwdCBpbiBnZW5lcmFsIHRob3VnaApmb3Igb3RoZXIgdXNlY2FzZXMu CgpXZSBpbnRyb2R1Y2UgYSBuZXcgaW50ZXJsZWF2ZXIgZGV2aWNlIHRoYXQgaXMgYSBjb25zdW1l ciBvZiBvdGhlciBkZXZpY2VzIHRoYXQKYXJlIGFzc3VtZWQgdG8gYWxsIHJ1biBvZiB0aGUgc2Ft ZSAidHJpZ2dlciIuICBJdCB3aWxsIGJlIGEgY29uc3VtZXIgb2YKYm90aCBtb2R1bGF0b3IgSUlP IGRldmljZXMgYW5kIHdpbGwgcmVjZWl2ZSBkYXRhIGZyb20gdGhlIGJvdGguCkl0IHdpbGwgaGF2 ZSAyIGNoYW5uZWxzIHdoaWNoIGluIHR1cm4gd2lsbCBnYWluIHRoZWlyIHNjYWxlIGV0YyBieSBx dWVyeWluZwp0aGUgbW9kdWxhdG9ycy4gVGhvc2UgbW9kdWxhdG9ycyB3aWxsIGdldCB0aGVpciBh Y3R1YWwgZGF0YSBhcyBjb25zdW1lcnMKZnJvbSB0aGUgZmlsdGVyIGRldmljZS4KClNvIGZvciBi dWZmZXJlZCB1c2UgdGhlIGZsb3cgd2lsbCBiZToKInNjYW4iIGNvbWVzIGludG8gdGhlIGZpbHRl ciBkcml2ZXIuICBJdCBkZW11eGVzIGFuZCBwYXNzZXMgdGhyb3VnaCB0byB0aGUKdHdvIHNlcGFy YXRlIG1vZHVsYXRvciBkcml2ZXJzLiAgVGhvc2UgdGhlbiBwYXNzIGl0IG9uIHRvIHRoZSBjaGFu bmVsIGludGVybGVhdmVyLgpHaXZlbiBJIHdvdWxkbid0IHdhbnQgdG8gY29uc3RyYWluIHRoZSBv cmRlciwgdGhhdCBkcml2ZXIgdGhlbiBoYXMgdG8gYnVmZmVyCnRoZW0gdXAgdW50aWwgaXQgaGFz IGEgZnVsbCAnc2Nhbicgd2hpY2ggaXQgaW4gdHVybiBwdXNoZWQgaW50byBpdCdzIGtmaWZvCmJ1 ZmZlciBmb3IgdXNlcnNwYWNlIGNvbnN1bXB0aW9uLgoKT3RoZXIgdGhhbiB0aGUgaG9ycmlibGUg ZGF0YSBmbG93LCB0aGlzIGRvZXMgbWF0Y2ggYWxsIG91ciByZXF1aXJlbWVudHMuCkl0IHJlcHJl c2VudHMgdGhlIGZpbHRlciBhbmQgYW55IGZpbHRlciBzcGVjaWZpYyBjb250cm9scyBhcyBvbmUg ZGV2aWNlLgpFYWNoIG1vZHVsYXRvciBoYXMgaXQncyBvd24gcmVwcmVzZW50YXRpb24gYXMgd2Vs bCBhbmQgc28gc2NhbGluZyBldGMgaXMKaW4gYW4gYXBwcm9wcmlhdGUgcGxhY2UuICBUaGUgaW50 ZXJsZWF2ZXIgaXMgdGhlbiBhIHNvZnR3YXJlIGNvbnN0cnVjdCB0bwphbGxvdyB1cyB0byBncmFi IG11bHRpcGxlIGRhdGEgZmxvd3MgZnJvbSBpbmRlcGVuZGVudCBkZXZpY2VzICh0aGF0IHdlCmV4 cGVjdCB0byAndHJpZ2dlcicgdG9nZXRoZXIpIGFuZCBjb21iaW5lIHRoZW0gaW50byBhIHNpbmds ZSBmbG93LgpJJ20gbm90IGtlZW4gb24gdGhlIHJhY2UgY29uZGl0aW9ucyB0aGF0IHdvdWxkIHBy b2JhYmx5IG9jY3VyLCBidXQgaXQKY291bGQgYmUgbWFkZSB0byB3b3JrLgoKSSd2ZSB0aG91Z2h0 IGFib3V0IGRvaW5nIHRoaXMgYmVmb3JlIHRvIGFsbG93IGNhc2VzIGxpa2UuCgogICAgICAgICAg ICAgICAgICAgICAgVHJpZ2dlcgogICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0rICArLSstLS0tLS0tLSsKfCBDaGFubmVsIGludGVybGVhdmVyfC0t Yy18IEFDQ0VMICB8IAp8ICAgICAgICAgICAgICAgICAgICB8ICB8ICstLS0tLS0tLSsKfCAgICAg ICAgICAgICAgICAgICAgfCAgKy0rLS0tLS0tLS0rICAgICAgICAgCnwgICAgICAgICAgICAgICAg ICAgIHwtLS0tfCBHeXJvICAgfCAKfCAgICAgICAgICAgICAgICAgICAgfCAgICArLS0tLS0tLS0r CistLS0tLS0tLS0tLS0tLS0tLS0tLSsKClRoYXQgaXMgYW4gSU1VIGJ1aWx0IG9mIHNlcGFyYXRl IGNvbXBvbmVudHMgYnV0IHdpdGggYSBjb21tb24gdHJpZ2dlciBzaWduYWwKb3Igc2F5IGEgaGln aCByZXNvbHV0aW9uIHRpbWVyIGJhc2VkIHRyaWdnZXIuICAgVG9kYXkgd2UgaGF2ZSB0byBmdXNl IHRoYXQKZGF0YSBpbiB1c2Vyc3BhY2Ugd2hpY2ggaXMgcmF0aGVyIG1lc3N5LgoKPiAKPiBJZiAn YmFja2VuZCcgb3B0aW9uIHR1cm5zIG91dCB0byBiZSB0aGUgbW9zdCBhcHByb3ByaWF0ZWQgdG8g bWF0Y2ggREZTRE0gCj4gY29uc3RyYWludHMsIEkgY2FuIHByZXBhcmUgc29tZSBwYXRjaGVzIHRv IHN1cHBvcnQgaXQuCj4gV291bGQgeW91IGhhdmUgc29tZSBndWlkZWxpbmVzIG9yIHJlcXVpcmVt ZW50cyBmb3IgdGhlIGltcGxlbWVudGF0aW9uIG9mIAo+IHN1Y2ggZmVhdHVyZSwgaW4gdGhpcyBj YXNlID8KCkNsb3Nlc3QgZXhhbXBsZSBpcyB0aGF0IHJjYXItZ3lyb2FkYyBidXQgaW4gdGhpcyBj YXNlIHdlJ2Qgd2FudCB0byBkZWZpbmUKc29tZXRoaW5nIHN0YW5kYXJkIHRvIHN1cHBvcnQgdGhl IG1vZHVsYXRvcnMgc28gdGhhdCBpZiB3ZSBoYXZlIG90aGVyIGZpbHRlcnMKaW4gZnV0dXJlIHdl IGNhbiByZXVzZSB0aGVtLgoKVGhhdCBtZWFucyBpbXBsZW1lbnRpbmcgdGhlbSBhcyBjaGlsZCBk ZXZpY2VzIG9mIHRoZSBmaWx0ZXIgLSBwcm9iYWJseSBwdXQKdGhlIG9uIHRoZSBJSU8gYnVzLCBi dXQgYXMgZGlmZmVyZW50IGRldmljZSB0eXBlLiAgVGFrZSBhIGxvb2sgYXQgaG93CnRyaWdnZXJz IGFyZSBkb25lIGluIGluZHVzdHJpYWxpby10cmlnZ2VyLmMKWW91IG5lZWQgc3RydWN0IGRldmlj ZV90eXBlIHNkX21vZHVsYXRvcgphbmQgYSBzdWl0YWJsZSBkZXZpY2Ugc3RydWN0IChidXJyZWQg aW4gYW4gaWlvX3NkX21vZHVsYXRvciBzdHJ1Y3QgcHJvYmFibHkpLgoKQWxzbyBuZWVkZWQgd291 bGQgYmUgYSBidW5jaCBvZiBzdGFuZGFyZCBjYWxsYmFja3MgdG8gYWxsb3cgeW91IHRvIHF1ZXJ5 IHRoaW5ncwpsaWtlIHNjYWxpbmcuICAgS2VlcCB0aGF0IGludGVyZmFjZSBzaW1wbGUuIFVudGls IHdlIGhhdmUgYSBsb3Qgb2YgbW9kdWxhdG9yCmRyaXZlcnMgaXQgd2lsbCBiZSBoYXJkIHRvIGtu b3cgZXhhY3RseSB3aGF0IGlzIG5lZWRlZC4gIEFsc28gd2hpbHN0IHdlIGRvbid0CmhhdmUgbWFu eSBpdCBpcyBlYXN5IHRvIG1vZGlmeSB0aGUgaW50ZXJmYWNlLgoKVGhlbiBoYXZlIHlvdXIgZmls dGVyIGRyaXZlciB3YWxrIGl0J3Mgb3duIGR0IGNoaWxkcmVuIGFuZCBpbnN0YW50aWF0ZQphcHBy b3ByaWF0ZSBuZXcgZWxlbWVudHMgYW5kIHJlZ2lzdGVyIHRoZW0gb24gdGhlIGlpb19idXMuICBU aGV5IHdpbGwgaGF2ZQp0aGUgZmlsdGVyIGFzIHRoZWlyIHBhcmVudC4KClRoZXJlIGFyZSB2YXJp b3VzIGV4YW1wbGVzIG9mIHRoaXMgc29ydCBvZiB0aGluZyBpbiB0cmVlLgpJZiB5b3Ugd2FudCBh IGdvb2Qgb25lLCBkcml2ZXJzL2N4bCBkb2VzIGEgbG90IG9mIHRoaXMgc29ydCBtYWdpYyB0byBt YW5hZ2UKYSBmYWlybHkgY29tcGxleCBncmFwaCBvZiBkZXZpY2VzIGluY2x1ZGluZyBzb21lIG5p Y2UgcmVnaXN0cmF0aW9uIHN0dWZmIHRvCmNhdXNlIHRoZSBjb3JyZWN0IGRldmljZSBkcml2ZXJz IHRvIGxvYWQgYXV0b21hdGljYWxseS4KCkhtbS4gIFRoaW5raW5nIG1vcmUgb24gdGhpcywgdGhl cmUgaXMgYW4gb3JkZXJpbmcgaXNzdWUgZm9yIGRyaXZlciBsb2FkLgpJbnN0ZWFkIG9mIG1ha2lu ZyB0aGUgbW9kdWxhdG9yIG5vZGVzIGNoaWxkcmVuIG9mIHRoZSBtb2R1bGF0b3IsIHlvdSBtYXkg bmVlZAp0byBnaXZlIHRoZW0gdGhlaXIgb3duIGV4aXN0ZW5jZSBhbmQgdXNlIGEgcGhhbmRsZSB0 byByZWZlcmVuY2UgdGhlbS4KVGhhdCB3aWxsIGxldCB5b3UgZGVmZXIgcHJvYmUgaW4gdGhlIGZp bHRlciBkcml2ZXIgdW50aWwgdGhvc2UKbW9kdWxhdG9yIGRyaXZlcnMgYXJlIHJlYWR5LgoKVGhp cyBpc24ndCBnb2luZyB0byBiZSBwYXJ0aWN1bGFybHkgc2ltcGxlLCBzbyB5b3UgbWF5IHdhbnQg dG8gaGF2ZSBhIGxvb2sKYXQgaG93IHZhcmlvdXMgb3RoZXIgc3Vic3lzdGVtcyBkbyBzaW1pbGFy IHRoaW5ncyBhbmQgbW9jayB1cCB0aGUgZGVwZW5kZW5jaWVzCnRvIG1ha2Ugc3VyZSB5b3UgaGF2 ZSBzb21ldGhpbmcgdGhhdCBkb2Vzbid0IGVuZCB1cCB3aXRoIGEgbG9vcCBvZiBkZXBlbmRlbmNp ZXMuCkluIHNvbWUgd2F5cyB0aGUgbW9kdWxhdG9ycyBhcmUgb24gYSBidXMgYmVsb3cgdGhlIGZp bHRlciwgYnV0IHRoZSBmaWx0ZXIgZHJpdmVyCm5lZWRzIHRoZW0gdG8gYmUgaW4gcGxhY2UgdG8g ZG8gdGhlIHJlc3QuCllvdSBtYXkgZW5kIHVwIHdpdGggc29tZSBzb3J0IG9mIGRlbGF5ZWQgbG9h ZC4KMS4gSW5pdGlhbCBmaWx0ZXIgZHJpdmVyIGxvYWQgKyBwYXJzaW5nIG9mIHRoZSBtb2R1bGF0 b3IgZHQgY2hpbGRyZW4gKGlmIGRvbmUgdGhhdCB3YXkpLgoyLiBGaWx0ZXIgZHJpdmVyIGdvZXMg dG8gc2xlZXAgdW50aWwuLi4KMy4gTW9kdWxhdG9yIGRyaXZlcnMgY2FsbCBzb21ldGhpbmcgb24g dGhlIGZpbHRlciBkcml2ZXIgdG8gc2F5IHRoZXkgYXJlIHJlYWR5Lgo0LiBGaWx0ZXIgZHJpdmVy IGZpbmlzaGVzIGxvYWRpbmcgYW5kIGNyZWF0ZSB0aGUgSUlPIGRldmljZSBldGMuCllvdSdsbCBu ZWVkIHNvbWUgcmVmZXJlbmNlIGNvdW50aW5nIGV0YyBpbiB0aGVyZSB0byBtYWtlIHJlbW92YWwg c2FmZSBldGMgYnV0IGl0CnNob3VsZG4ndCBiZSAndG9vIGJhZCcuCgpHb29kIGx1Y2shCgpKb25h dGhhbgoKCgo+IAo+IFJlZ2FyZHMKPiBPbGl2aWVyCj4gCj4gPj4gIAo+ID4+ICAgICAgID0+IFRo aXMgc29sdXRpb24gY291bGQgYmUgYXBwbGljYWJsZSBidXQgc29tZSBkZXRhaWxzIGluIHRoZSAg Cj4gPj4gICAgICAgaW1wbGVtZW50YXRpb24gd2lsbCBoYXZlIHRvIGJlIGNsYXJpZmllZCBmdXJ0 aGVyLgo+ID4+ICAgICAgIE1heSB3ZSBjb25zaWRlciBhZGRpbmcgYSAiYmFja2VuZCIgZGV2aWNl IHdpdGhvdXQgSUlPIGludGVyZmFjZQo+ID4+ICAgICAgIGluIHRoZSBJSU8gZnJhbWV3b3JrID8K PiA+PiAgICAgICBNYXkgdGhlIFNEIG1vZHVsYXRvciBiZSBkcm9wcGVkID8KPiA+Pgo+ID4+ICst LS0tLSsgICAgICstLS0tLS0tKyAgICAgKy0tLS0tLS0tLS0tLS0tLS0rICBzeXNmcwo+ID4+IHwg c2QwIHwgLS0+IHwgY2hhbjAgfCAtLT4gfCBmaWx0ZXIwIGlpb2RldiB8IC0tLS0tLS0+Cj4gPj4g Ky0tLS0tKyAgICAgKy0tLS0tLS0rICAgICArLS0tLS0tLS0tLS0tLS0tLSsKPiA+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCj4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfAo+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKPiA+PiArLS0tLS0rICAg ICArLS0tLS0tLSsgICAgICAgfAo+ID4+IHwgc2QxIHwgLS0+IHwgY2hhbjEgfCAtLS0tLS0rCj4g Pj4gKy0tLS0tKyAgICAgKy0tLS0tLS0rCj4gPj4KPiA+Pgo+ID4+IEhlcmUgdGhlcmUgaXMgYSBw b2ludCB0aGF0IG5lZWRzIHRvIGJlIGNsYXJpZmllZCBpbiByZWxhdGlvbiB0byB0aGUKPiA+PiBw cmV2aW91cyBkaXNjdXNzaW9ucyBJIHRoaW5rLgo+ID4+IElmIEkgcmVmZXIgdG8gdGhlIGxhc3Qg Y29tbWVudCBvZiB0aGUgY3VycmVudCB0aHJlYWQsIEkgdW5kZXJzdGFuZCB0aGF0Cj4gPj4geW91 IHdlcmUgZXhwZWN0aW5nIHRoZSBJSU8gc3lzZnMgaW50ZXJmYWNlIHRvIGJlIGF0dGFjaGVkIHRv IHRoZSBTRAo+ID4+IG1vZHVsYXRvci4gKHNvbHV0aW9uIDIpICAKPiA+IAo+ID4gWWVzLgo+ID4g ICAKPiA+PiBGb3IgdGhlIGd5cm9hZGMsIHRoZSBjaGFubmVscyBhcmUgaW5kZWVkIHBvcHVsYXRl ZCBieSB0aGUgc3ViIGRldmljZXMuCj4gPj4gSG93ZXZlciB0aGUgSUlPIGRldmljZSBjb3JyZXNw b25kcyB0byB0aGUgQURDIGNvbnN1bWVyIGFuZCBub3QgdGhlIEFEQ3MKPiA+PiB0aGVtc2VsdmVz LiAoc29sdXRpb24gMykgIAo+ID4gCj4gPiBUaGF0IG9uZSBpcyBhIHJhdGhlciBvZGQgY2FzZSBi ZWNhdXNlIG5vIGdlbmVyaWMgaGFuZGxpbmcgaXMgcG9zc2libGUKPiA+IG9mIHRoZSBBRENzLiBG b3IgZXhhbXBsZSBpdCBkb2Vzbid0IHVzZSB0aGUgYWQ3NDc2IGRyaXZlciBiZWNhdXNlIHdlIGNh bid0Cj4gPiB0YWxrIHRvIHRoZSBkZXZpY2UgZXZlbiB0aG91Z2ggaXQncyB0aGUgc2FtZSBBREMg YXMgdGhlIGFkNzQ3NiBkcml2ZXIgc3VwcG9ydHMuCj4gPiAgIAo+ID4+Cj4gPj4gV2hhdCBpcyB0 aGUgdGhlIHByZWZlcnJlZCBhcHByb2FjaCBmb3IgeW91ID8gIAo+ID4gCj4gPiBJIHN0aWxsIGZh dm91ciBzb2x1dGlvbiAyLCBidXQgaWYgeW91IG5lZWQgdG8gaGF2ZSB0aGUgY2hhbm5lbHMgY2xl YW5seQo+ID4gcHJlc2VudGVkIGluIGEgc2NhbiBkZXNwaXRlIHRoZW0gY29taW5nIGZyb20gZGlm ZmVyZW50IG1vZHVsYXRvcnMsIHRoZW4gdGhhdAo+ID4gc29sdXRpb24gbWF5IG5vdCBiZSBzdWZm aWNpZW50IGFuZCB3ZSBuZWVkIHRvIHRoaW5rIGFib3V0IGhvdyBlbHNlIHRvIGRvCj4gPiB0aGlu Z3MuCj4gPiAKPiA+IEpvbmF0aGFuCj4gPiAgIAo+ID4+Cj4gPj4gVGhhbmtzIGZvciB5b3VyIGZl ZWRiYWNrCj4gPj4gQmVzdCByZWdhcmRzCj4gPj4gT2xpdmllcgo+ID4+Cj4gPj4gIAo+ID4+Pj4K PiA+Pj4+IFJlZ2FyZHMKPiA+Pj4+IE9saXZpZXIgIAo+ID4+Pj4+PiBJZiBub3QsIEkgcHJvYmFi bHkgbWlzc2Vkc29tZXRoaW5nLiBDb3VsZCB5b3UgcGxlYXNlIGNsYXJpZnkgdGhpcyBwb2ludCA/ Cj4gPj4+Pj4+Cj4gPj4+Pj4+IFJlZ2FyZHMKPiA+Pj4+Pj4gT2xpdmllciAgCj4gPj4+Pj4+PiBU aGlzIHdhc24ndCByZWFsbHkgYW4gaXNzdWUgd2hlbiB0aGUgb25seSB2YWx1ZXMgYXZhaWxhYmxl IHdlcmUKPiA+Pj4+Pj4+IHJhdywgYnV0IGlmIHdlIGFyZSBhZGRpbmcgc2NhbGUgYW5kIG9mZnNl dCwgdGhleSBhcmUgdGhpbmdzIHRoYXQKPiA+Pj4+Pj4+IGJlbG9uZyB0byB0aGUgYWQxMjAxIGZv ciBleGFtcGxlLCBub3QgdGhlIHVwc3RyZWFtIHN0bTMyLWRmc2RtIHVuaXQuCj4gPj4+Pj4+Pgo+ ID4+Pj4+Pj4gVGhpbmtpbmcgb2YgaXQgYW5vdGhlciB3YXksIHdlIGRvbid0IHJlcG9ydCBhbiBT UEkgQURDIG91dHB1dCBpbgo+ID4+Pj4+Pj4gdGhlIGRyaXZlciBmb3IgdGhlIFNQSSBtYXN0ZXIu Cj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gQ291bGQgd2UgZmxpcCBpdCBhcm91bmQgd2l0aG91dCBicmVh a2luZyBhbnl0aGluZz8KPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBKb25hdGhhbgo+ID4+Pj4+Pj4gICAg ICAgICAgIAo+ID4+Pj4+Pj4+IC0tLQo+ID4+Pj4+Pj4+ICAgICAgZHJpdmVycy9paW8vYWRjL3N0 bTMyLWRmc2RtLWFkYy5jIHwgMTA1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ID4+ Pj4+Pj4+ICAgICAgMSBmaWxlIGNoYW5nZWQsIDEwMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u cygtKQo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWlvL2FkYy9z dG0zMi1kZnNkbS1hZGMuYwo+ID4+Pj4+Pj4+IGIvZHJpdmVycy9paW8vYWRjL3N0bTMyLWRmc2Rt LWFkYy5jCj4gPj4+Pj4+Pj4gaW5kZXggMDdiOWRmZGY4ZTc2Li5iODVmZDNlOTA0OTYgMTAwNjQ0 Cj4gPj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9paW8vYWRjL3N0bTMyLWRmc2RtLWFkYy5jCj4gPj4+ Pj4+Pj4gKysrIGIvZHJpdmVycy9paW8vYWRjL3N0bTMyLWRmc2RtLWFkYy5jCj4gPj4+Pj4+Pj4g QEAgLTEwLDYgKzEwLDcgQEAKPiA+Pj4+Pj4+PiAgICAgICNpbmNsdWRlIDxsaW51eC9kbWEtbWFw cGluZy5oPgo+ID4+Pj4+Pj4+ICAgICAgI2luY2x1ZGUgPGxpbnV4L2lpby9hZGMvc3RtMzItZGZz ZG0tYWRjLmg+Cj4gPj4+Pj4+Pj4gICAgICAjaW5jbHVkZSA8bGludXgvaWlvL2J1ZmZlci5oPgo+ ID4+Pj4+Pj4+ICsjaW5jbHVkZSA8bGludXgvaWlvL2NvbnN1bWVyLmg+Cj4gPj4+Pj4+Pj4gICAg ICAjaW5jbHVkZSA8bGludXgvaWlvL2h3LWNvbnN1bWVyLmg+Cj4gPj4+Pj4+Pj4gICAgICAjaW5j bHVkZSA8bGludXgvaWlvL3N5c2ZzLmg+Cj4gPj4+Pj4+Pj4gICAgICAjaW5jbHVkZSA8bGludXgv aWlvL3RpbWVyL3N0bTMyLWxwdGltLXRyaWdnZXIuaD4KPiA+Pj4+Pj4+PiBAQCAtNjcsNiArNjgs MTMgQEAgc3RydWN0IHN0bTMyX2Rmc2RtX2Rldl9kYXRhIHsKPiA+Pj4+Pj4+PiAgICAgIAljb25z dCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyAqcmVnbWFwX2NmZzsKPiA+Pj4+Pj4+PiAgICAgIH07Cj4g Pj4+Pj4+Pj4gICAgICAKPiA+Pj4+Pj4+PiArc3RydWN0IHN0bTMyX2Rmc2RtX3NkX2NoYW5faW5m byB7Cj4gPj4+Pj4+Pj4gKwlpbnQgc2NhbGVfdmFsOwo+ID4+Pj4+Pj4+ICsJaW50IHNjYWxlX3Zh bDI7Cj4gPj4+Pj4+Pj4gKwlpbnQgb2Zmc2V0Owo+ID4+Pj4+Pj4+ICsJdW5zaWduZWQgaW50IGRp ZmZlcmVudGlhbDsKPiA+Pj4+Pj4+PiArfTsKPiA+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4gICAgICBz dHJ1Y3Qgc3RtMzJfZGZzZG1fYWRjIHsKPiA+Pj4+Pj4+PiAgICAgIAlzdHJ1Y3Qgc3RtMzJfZGZz ZG0gKmRmc2RtOwo+ID4+Pj4+Pj4+ICAgICAgCWNvbnN0IHN0cnVjdCBzdG0zMl9kZnNkbV9kZXZf ZGF0YSAqZGV2X2RhdGE7IEBAIC03OSw2ICs4Nyw3Cj4gPj4+Pj4+Pj4gQEAgc3RydWN0IHN0bTMy X2Rmc2RtX2FkYyB7Cj4gPj4+Pj4+Pj4gICAgICAJc3RydWN0IGlpb19od19jb25zdW1lciAqaHdj Owo+ID4+Pj4+Pj4+ICAgICAgCXN0cnVjdCBjb21wbGV0aW9uIGNvbXBsZXRpb247Cj4gPj4+Pj4+ Pj4gICAgICAJdTMyICpidWZmZXI7Cj4gPj4+Pj4+Pj4gKwlzdHJ1Y3Qgc3RtMzJfZGZzZG1fc2Rf Y2hhbl9pbmZvICpzZF9jaGFuOwo+ID4+Pj4+Pj4+ICAgICAgCj4gPj4+Pj4+Pj4gICAgICAJLyog QXVkaW8gc3BlY2lmaWMgKi8KPiA+Pj4+Pj4+PiAgICAgIAl1bnNpZ25lZCBpbnQgc3BpX2ZyZXE7 ICAvKiBTUEkgYnVzIGNsb2NrIGZyZXF1ZW5jeSAqLyBAQAo+ID4+Pj4+Pj4+IC0xMjcxLDcgKzEy ODAsMTAgQEAgc3RhdGljIGludCBzdG0zMl9kZnNkbV9yZWFkX3JhdyhzdHJ1Y3QgaWlvX2RldiAq aW5kaW9fZGV2LAo+ID4+Pj4+Pj4+ICAgICAgCQkJCWludCAqdmFsMiwgbG9uZyBtYXNrKQo+ID4+ Pj4+Pj4+ICAgICAgewo+ID4+Pj4+Pj4+ICAgICAgCXN0cnVjdCBzdG0zMl9kZnNkbV9hZGMgKmFk YyA9IGlpb19wcml2KGluZGlvX2Rldik7Cj4gPj4+Pj4+Pj4gLQlpbnQgcmV0Owo+ID4+Pj4+Pj4+ ICsJc3RydWN0IHN0bTMyX2Rmc2RtX2ZpbHRlciAqZmwgPSAmYWRjLT5kZnNkbS0+ZmxfbGlzdFth ZGMtPmZsX2lkXTsKPiA+Pj4+Pj4+PiArCXN0cnVjdCBzdG0zMl9kZnNkbV9maWx0ZXJfb3NyICpm bG8gPSAmZmwtPmZsb1tmbC0+ZmFzdF07Cj4gPj4+Pj4+Pj4gKwl1MzIgbWF4ID0gZmxvLT5tYXgg PDwgKGZsby0+bHNoaWZ0IC0gY2hhbi0+c2Nhbl90eXBlLnNoaWZ0KTsKPiA+Pj4+Pj4+PiArCWlu dCByZXQsIGlkeCA9IGNoYW4tPnNjYW5faW5kZXg7Cj4gPj4+Pj4+Pj4gICAgICAKPiA+Pj4+Pj4+ PiAgICAgIAlzd2l0Y2ggKG1hc2spIHsKPiA+Pj4+Pj4+PiAgICAgIAljYXNlIElJT19DSEFOX0lO Rk9fUkFXOgo+ID4+Pj4+Pj4+IEBAIC0xMzA3LDYgKzEzMTksNDEgQEAgc3RhdGljIGludCBzdG0z Ml9kZnNkbV9yZWFkX3JhdyhzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2LAo+ID4+Pj4+Pj4+ICAg ICAgCQkqdmFsID0gYWRjLT5zYW1wbGVfZnJlcTsKPiA+Pj4+Pj4+PiAgICAgIAo+ID4+Pj4+Pj4+ ICAgICAgCQlyZXR1cm4gSUlPX1ZBTF9JTlQ7Cj4gPj4+Pj4+Pj4gKwo+ID4+Pj4+Pj4+ICsJY2Fz ZSBJSU9fQ0hBTl9JTkZPX1NDQUxFOgo+ID4+Pj4+Pj4+ICsJCS8qCj4gPj4+Pj4+Pj4gKwkJICog U2NhbGUgaXMgZXhwcmVzc2VkIGluIG1WLgo+ID4+Pj4+Pj4+ICsJCSAqIFdoZW4gZmFzdCBtb2Rl IGlzIGRpc2FibGVkLCBhY3R1YWwgcmVzb2x1dGlvbiBtYXkgYmUgbG93ZXIKPiA+Pj4+Pj4+PiAr CQkgKiB0aGFuIDJebiwgd2hlcmUgbj1yZWFsYml0cy0xLgo+ID4+Pj4+Pj4+ICsJCSAqIFRoaXMg bGVhZHMgdG8gdW5kZXJlc3RpbWF0aW5nIGlucHV0IHZvbHRhZ2UuIFRvCj4gPj4+Pj4+Pj4gKwkJ ICogY29tcGVuc2F0ZSB0aGlzIGRldmlhdGlvbiwgdGhlIHZvbHRhZ2UgcmVmZXJlbmNlIGNhbiBi ZQo+ID4+Pj4+Pj4+ICsJCSAqIGNvcnJlY3RlZCB3aXRoIGEgZmFjdG9yID0gcmVhbGJpdHMgcmVz b2x1dGlvbiAvIGFjdHVhbCBtYXgKPiA+Pj4+Pj4+PiArCQkgKi8KPiA+Pj4+Pj4+PiArCQkqdmFs ID0gZGl2X3U2NCgodTY0KWFkYy0+c2RfY2hhbltpZHhdLnNjYWxlX3ZhbCAqCj4gPj4+Pj4+Pj4g KwkJCSAgICAgICAodTY0KUJJVChERlNETV9EQVRBX1JFUyAtIDEpLCBtYXgpOwo+ID4+Pj4+Pj4+ ICsJCSp2YWwyID0gY2hhbi0+c2Nhbl90eXBlLnJlYWxiaXRzOwo+ID4+Pj4+Pj4+ICsJCWlmIChh ZGMtPnNkX2NoYW5baWR4XS5kaWZmZXJlbnRpYWwpCj4gPj4+Pj4+Pj4gKwkJCSp2YWwgKj0gMjsK PiA+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4gKwkJcmV0dXJuIElJT19WQUxfRlJBQ1RJT05BTF9MT0cy Owo+ID4+Pj4+Pj4+ICsKPiA+Pj4+Pj4+PiArCWNhc2UgSUlPX0NIQU5fSU5GT19PRkZTRVQ6Cj4g Pj4+Pj4+Pj4gKwkJLyoKPiA+Pj4+Pj4+PiArCQkgKiBERlNETSBvdXRwdXQgZGF0YSBhcmUgaW4g dGhlIHJhbmdlIFstMl5uLDJebi0xXSwKPiA+Pj4+Pj4+PiArCQkgKiB3aXRoIG49cmVhbGJpdHMt MS4KPiA+Pj4+Pj4+PiArCQkgKiAtIERpZmZlcmVudGlhbCBtb2R1bGF0b3I6Cj4gPj4+Pj4+Pj4g KwkJICogT2Zmc2V0IGNvcnJlc3BvbmQgdG8gU0QgbW9kdWxhdG9yIG9mZnNldC4KPiA+Pj4+Pj4+ PiArCQkgKiAtIFNpbmdsZSBlbmRlZCBtb2R1bGF0b3I6Cj4gPj4+Pj4+Pj4gKwkJICogSW5wdXQg aXMgaW4gWzBWLFZyZWZdIHJhbmdlLCB3aGVyZSAwViBjb3JyZXNwb25kcyB0byAtMl5uLgo+ID4+ Pj4+Pj4+ICsJCSAqIEFkZCAyXm4gdG8gb2Zmc2V0LiAoaS5lLiBtaWRkbGUgb2YgaW5wdXQgcmFu Z2UpCj4gPj4+Pj4+Pj4gKwkJICogb2Zmc2V0ID0gb2Zmc2V0KHNkKSAqIHZyZWYgLyByZXMoc2Qp ICogbWF4IC8gdnJlZi4KPiA+Pj4+Pj4+PiArCQkgKi8KPiA+Pj4+Pj4+PiArCQkqdmFsID0gZGl2 X3U2NCgodTY0KW1heCAqIGFkYy0+c2RfY2hhbltpZHhdLm9mZnNldCwKPiA+Pj4+Pj4+PiArCQkJ ICAgICAgIEJJVChhZGMtPnNkX2NoYW5baWR4XS5zY2FsZV92YWwyIC0gMSkpOwo+ID4+Pj4+Pj4+ ICsJCWlmICghYWRjLT5zZF9jaGFuW2lkeF0uZGlmZmVyZW50aWFsKQo+ID4+Pj4+Pj4+ICsJCQkq dmFsICs9IG1heDsKPiA+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4gKwkJcmV0dXJuIElJT19WQUxfSU5U Owo+ID4+Pj4+Pj4+ICAgICAgCX0KPiA+Pj4+Pj4+PiAgICAgIAo+ID4+Pj4+Pj4+ICAgICAgCXJl dHVybiAtRUlOVkFMOwo+ID4+Pj4+Pj4+IEBAIC0xNDMwLDcgKzE0NzcsOSBAQCBzdGF0aWMgaW50 IHN0bTMyX2Rmc2RtX2FkY19jaGFuX2luaXRfb25lKHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYs Cj4gPj4+Pj4+Pj4gICAgICAJICogSUlPX0NIQU5fSU5GT19SQVc6IHVzZWQgdG8gY29tcHV0ZSBy ZWd1bGFyIGNvbnZlcnNpb24KPiA+Pj4+Pj4+PiAgICAgIAkgKiBJSU9fQ0hBTl9JTkZPX09WRVJT QU1QTElOR19SQVRJTzogdXNlZCB0byBzZXQgb3ZlcnNhbXBsaW5nCj4gPj4+Pj4+Pj4gICAgICAJ ICovCj4gPj4+Pj4+Pj4gLQljaC0+aW5mb19tYXNrX3NlcGFyYXRlID0gQklUKElJT19DSEFOX0lO Rk9fUkFXKTsKPiA+Pj4+Pj4+PiArCWNoLT5pbmZvX21hc2tfc2VwYXJhdGUgPSBCSVQoSUlPX0NI QU5fSU5GT19SQVcpIHwKPiA+Pj4+Pj4+PiArCQkJCSBCSVQoSUlPX0NIQU5fSU5GT19TQ0FMRSkg fAo+ID4+Pj4+Pj4+ICsJCQkJIEJJVChJSU9fQ0hBTl9JTkZPX09GRlNFVCk7Cj4gPj4+Pj4+Pj4g ICAgICAJY2gtPmluZm9fbWFza19zaGFyZWRfYnlfYWxsID0gQklUKElJT19DSEFOX0lORk9fT1ZF UlNBTVBMSU5HX1JBVElPKSB8Cj4gPj4+Pj4+Pj4gICAgICAJCQkJCUJJVChJSU9fQ0hBTl9JTkZP X1NBTVBfRlJFUSk7Cj4gPj4+Pj4+Pj4gICAgICAKPiA+Pj4+Pj4+PiBAQCAtMTQ4MSw4ICsxNTMw LDEwIEBAIHN0YXRpYyBpbnQgc3RtMzJfZGZzZG1fYWRjX2luaXQoc3RydWN0IGlpb19kZXYgKmlu ZGlvX2RldikKPiA+Pj4+Pj4+PiAgICAgIHsKPiA+Pj4+Pj4+PiAgICAgIAlzdHJ1Y3QgaWlvX2No YW5fc3BlYyAqY2g7Cj4gPj4+Pj4+Pj4gICAgICAJc3RydWN0IHN0bTMyX2Rmc2RtX2FkYyAqYWRj ID0gaWlvX3ByaXYoaW5kaW9fZGV2KTsKPiA+Pj4+Pj4+PiArCXN0cnVjdCBpaW9fY2hhbm5lbCAq Y2hhbm5lbHMsICpjaGFuOwo+ID4+Pj4+Pj4+ICsJc3RydWN0IHN0bTMyX2Rmc2RtX3NkX2NoYW5f aW5mbyAqc2RfY2hhbjsKPiA+Pj4+Pj4+PiAgICAgIAlpbnQgbnVtX2NoOwo+ID4+Pj4+Pj4+IC0J aW50IHJldCwgY2hhbl9pZHg7Cj4gPj4+Pj4+Pj4gKwlpbnQgcmV0LCBjaGFuX2lkeCwgdmFsMjsK PiA+Pj4+Pj4+PiAgICAgIAo+ID4+Pj4+Pj4+ICAgICAgCWFkYy0+b3ZlcnNhbXAgPSBERlNETV9E RUZBVUxUX09WRVJTQU1QTElORzsKPiA+Pj4+Pj4+PiAgICAgIAlyZXQgPSBzdG0zMl9kZnNkbV9j b21wdXRlX2FsbF9vc3JzKGluZGlvX2RldiwgYWRjLT5vdmVyc2FtcCk7Cj4gPj4+Pj4+Pj4gQEAg LTE1MDYsNiArMTU1NywyMiBAQCBzdGF0aWMgaW50IHN0bTMyX2Rmc2RtX2FkY19pbml0KHN0cnVj dCBpaW9fZGV2ICppbmRpb19kZXYpCj4gPj4+Pj4+Pj4gICAgICAJaWYgKCFjaCkKPiA+Pj4+Pj4+ PiAgICAgIAkJcmV0dXJuIC1FTk9NRU07Cj4gPj4+Pj4+Pj4gICAgICAKPiA+Pj4+Pj4+PiArCS8q IEdldCBTRCBtb2R1bGF0b3IgY2hhbm5lbHMgKi8KPiA+Pj4+Pj4+PiArCWNoYW5uZWxzID0gaWlv X2NoYW5uZWxfZ2V0X2FsbCgmaW5kaW9fZGV2LT5kZXYpOwo+ID4+Pj4+Pj4+ICsJaWYgKElTX0VS UihjaGFubmVscykpIHsKPiA+Pj4+Pj4+PiArCQlkZXZfZXJyKCZpbmRpb19kZXYtPmRldiwgIkZh aWxlZCB0byBnZXQgY2hhbm5lbCAlbGRcbiIsCj4gPj4+Pj4+Pj4gKwkJCVBUUl9FUlIoY2hhbm5l bHMpKTsKPiA+Pj4+Pj4+PiArCQlyZXR1cm4gUFRSX0VSUihjaGFubmVscyk7Cj4gPj4+Pj4+Pj4g Kwl9Cj4gPj4+Pj4+Pj4gKwljaGFuID0gJmNoYW5uZWxzWzBdOwo+ID4+Pj4+Pj4+ICsKPiA+Pj4+ Pj4+PiArCWFkYy0+c2RfY2hhbiA9IGRldm1fa3phbGxvYygmaW5kaW9fZGV2LT5kZXYsCj4gPj4+ Pj4+Pj4gKwkJCQkgICAgc2l6ZW9mKCphZGMtPnNkX2NoYW4pICogbnVtX2NoLCBHRlBfS0VSTkVM KTsKPiA+Pj4+Pj4+PiArCWlmICghYWRjLT5zZF9jaGFuKQo+ID4+Pj4+Pj4+ICsJCXJldHVybiAt RU5PTUVNOwo+ID4+Pj4+Pj4+ICsKPiA+Pj4+Pj4+PiArCXNkX2NoYW4gPSBhZGMtPnNkX2NoYW47 Cj4gPj4+Pj4+Pj4gKwo+ID4+Pj4+Pj4+ICAgICAgCWZvciAoY2hhbl9pZHggPSAwOyBjaGFuX2lk eCA8IG51bV9jaDsgY2hhbl9pZHgrKykgewo+ID4+Pj4+Pj4+ICAgICAgCQljaFtjaGFuX2lkeF0u c2Nhbl9pbmRleCA9IGNoYW5faWR4Owo+ID4+Pj4+Pj4+ICAgICAgCQlyZXQgPSBzdG0zMl9kZnNk bV9hZGNfY2hhbl9pbml0X29uZShpbmRpb19kZXYsCj4gPj4+Pj4+Pj4gJmNoW2NoYW5faWR4XSk7 IEBAIC0xNTEzLDYgKzE1ODAsMzggQEAgc3RhdGljIGludCBzdG0zMl9kZnNkbV9hZGNfaW5pdChz dHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2KQo+ID4+Pj4+Pj4+ICAgICAgCQkJZGV2X2VycigmaW5k aW9fZGV2LT5kZXYsICJDaGFubmVscyBpbml0IGZhaWxlZFxuIik7Cj4gPj4+Pj4+Pj4gICAgICAJ CQlyZXR1cm4gcmV0Owo+ID4+Pj4+Pj4+ICAgICAgCQl9Cj4gPj4+Pj4+Pj4gKwo+ID4+Pj4+Pj4+ ICsJCWlmICghY2hhbi0+aW5kaW9fZGV2KQo+ID4+Pj4+Pj4+ICsJCQlyZXR1cm4gLUVJTlZBTDsK PiA+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4gKwkJcmV0ID0gaWlvX3JlYWRfY2hhbm5lbF9zY2FsZShj aGFuLCAmc2RfY2hhbi0+c2NhbGVfdmFsLAo+ID4+Pj4+Pj4+ICsJCQkJCSAgICAgJnNkX2NoYW4t PnNjYWxlX3ZhbDIpOwo+ID4+Pj4+Pj4+ICsJCWlmIChyZXQgPCAwKSB7Cj4gPj4+Pj4+Pj4gKwkJ CWRldl9lcnIoJmluZGlvX2Rldi0+ZGV2LAo+ID4+Pj4+Pj4+ICsJCQkJIkZhaWxlZCB0byBnZXQg Y2hhbm5lbCAlZCBzY2FsZVxuIiwgY2hhbl9pZHgpOwo+ID4+Pj4+Pj4+ICsJCQlyZXR1cm4gcmV0 Owo+ID4+Pj4+Pj4+ICsJCX0KPiA+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4gKwkJaWYgKGlpb19jaGFu bmVsX2hhc19pbmZvKGNoYW4tPmNoYW5uZWwsIElJT19DSEFOX0lORk9fT0ZGU0VUKSkgewo+ID4+ Pj4+Pj4+ICsJCQlyZXQgPSBpaW9fcmVhZF9jaGFubmVsX29mZnNldChjaGFuLCAmc2RfY2hhbi0+ b2Zmc2V0LAo+ID4+Pj4+Pj4+ICsJCQkJCQkgICAgICAmdmFsMik7Cj4gPj4+Pj4+Pj4gKwkJCWlm IChyZXQgPCAwKSB7Cj4gPj4+Pj4+Pj4gKwkJCQlkZXZfZXJyKCZpbmRpb19kZXYtPmRldiwKPiA+ Pj4+Pj4+PiArCQkJCQkiRmFpbGVkIHRvIGdldCBjaGFubmVsICVkIG9mZnNldFxuIiwKPiA+Pj4+ Pj4+PiArCQkJCQljaGFuX2lkeCk7Cj4gPj4+Pj4+Pj4gKwkJCQlyZXR1cm4gcmV0Owo+ID4+Pj4+ Pj4+ICsJCQl9Cj4gPj4+Pj4+Pj4gKwkJfQo+ID4+Pj4+Pj4+ICsKPiA+Pj4+Pj4+PiArCQlzZF9j aGFuLT5kaWZmZXJlbnRpYWwgPSBjaGFuLT5jaGFubmVsLT5kaWZmZXJlbnRpYWw7Cj4gPj4+Pj4+ Pj4gKwo+ID4+Pj4+Pj4+ICsJCWRldl9kYmcoJmluZGlvX2Rldi0+ZGV2LCAiQ2hhbm5lbCAlZCAl cyBzY2FsZSByZWY9JWQgb2Zmc2V0PSVkIiwKPiA+Pj4+Pj4+PiArCQkJY2hhbl9pZHgsIGNoYW4t PmNoYW5uZWwtPmRpZmZlcmVudGlhbCA/Cj4gPj4+Pj4+Pj4gKwkJCSJkaWZmZXJlbnRpYWwiIDog InNpbmdsZS1lbmRlZCIsCj4gPj4+Pj4+Pj4gKwkJCXNkX2NoYW4tPnNjYWxlX3ZhbCwgc2RfY2hh bi0+b2Zmc2V0KTsKPiA+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4gKwkJY2hhbisrOwo+ID4+Pj4+Pj4+ ICsJCXNkX2NoYW4rKzsKPiA+Pj4+Pj4+PiAgICAgIAl9Cj4gPj4+Pj4+Pj4gICAgICAKPiA+Pj4+ Pj4+PiAgICAgIAlpbmRpb19kZXYtPm51bV9jaGFubmVscyA9IG51bV9jaDsgIAo+ID4gICAKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0t a2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcK aHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2Vy bmVsCg==