From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: Re: [PATCH 2/2] xen/input: add multi-touch support Date: Wed, 7 Jun 2017 10:15:13 +0300 Message-ID: <6f20cdf5-02c4-dfe3-5567-89a6735a3a82__41467.9175512449$1496819789$gmane$org@gmail.com> References: <1492083484-31786-1-git-send-email-andr2000@gmail.com> <1492083484-31786-3-git-send-email-andr2000@gmail.com> <20170421021018.GB23279@dtor-ws> <20170530055150.GA38163@dtor-ws> <8092dd49-20e0-3e8d-977d-2f570142a37d@gmail.com> <20170530163708.GA12922@dtor-ws> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dIVBW-0001pG-MB for xen-devel@lists.xenproject.org; Wed, 07 Jun 2017 07:15:18 +0000 Received: by mail-lf0-f65.google.com with SMTP id o28so346791lfk.1 for ; Wed, 07 Jun 2017 00:15:16 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Dmitry Torokhov Cc: jgross@suse.com, Oleksandr Andrushchenko , vlad.babchuk@gmail.com, linux-kernel@vger.kernel.org, andrii.anisov@gmail.com, olekstysh@gmail.com, al1img@gmail.com, linux-input@vger.kernel.org, xen-devel@lists.xenproject.org, boris.ostrovsky@oracle.com, joculator@gmail.com List-Id: xen-devel@lists.xenproject.org SGksIERtaXRyeSEKCkkgd291bGQgYXBwcmVjaWF0ZSB5b3VyIGNvbW1lbnRzIG9uIHRoZSBiZWxv dwoKT24gMDUvMzEvMjAxNyAxMjowNiBQTSwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6 Cj4gSGksIERtaXRyeSEKPgo+IE9uIDA1LzMwLzIwMTcgMDc6MzcgUE0sIERtaXRyeSBUb3Jva2hv diB3cm90ZToKPj4gT24gVHVlLCBNYXkgMzAsIDIwMTcgYXQgMDM6NTA6MjBQTSArMDMwMCwgT2xl a3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6Cj4+PiBIaSwgRG1pdHJ5IQo+Pj4KPj4+IE9uIDA1 LzMwLzIwMTcgMDg6NTEgQU0sIERtaXRyeSBUb3Jva2hvdiB3cm90ZToKPj4+PiBPbiBGcmksIEFw ciAyMSwgMjAxNyBhdCAwOTo0MDozNkFNICswMzAwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyAK Pj4+PiB3cm90ZToKPj4+Pj4gSGksIERtaXRyeSEKPj4+Pj4KPj4+Pj4gT24gMDQvMjEvMjAxNyAw NToxMCBBTSwgRG1pdHJ5IFRvcm9raG92IHdyb3RlOgo+Pj4+Pj4gSGkgT2xla3NhbmRyLAo+Pj4+ Pj4KPj4+Pj4+IE9uIFRodSwgQXByIDEzLCAyMDE3IGF0IDAyOjM4OjA0UE0gKzAzMDAsIE9sZWtz YW5kciBBbmRydXNoY2hlbmtvIAo+Pj4+Pj4gd3JvdGU6Cj4+Pj4+Pj4gRnJvbTogT2xla3NhbmRy IEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPgo+Pj4+Pj4+ Cj4+Pj4+Pj4gRXh0ZW5kIHhlbl9rYmRmcm9udCB0byBwcm92aWRlIG11bHRpLXRvdWNoIHN1cHBv cnQKPj4+Pj4+PiB0byB1bnByaXZpbGVnZWQgZG9tYWlucy4KPj4+Pj4+Pgo+Pj4+Pj4+IFNpZ25l ZC1vZmYtYnk6IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIAo+Pj4+Pj4+IDxvbGVrc2FuZHJfYW5k cnVzaGNoZW5rb0BlcGFtLmNvbT4KPj4+Pj4+PiAtLS0KPj4+Pj4+PiAgIGRyaXZlcnMvaW5wdXQv bWlzYy94ZW4ta2JkZnJvbnQuYyB8IDE0MiAKPj4+Pj4+PiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLQo+Pj4+Pj4+ICAgMSBmaWxlIGNoYW5nZWQsIDE0MCBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQo+Pj4+Pj4+Cj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv aW5wdXQvbWlzYy94ZW4ta2JkZnJvbnQuYyAKPj4+Pj4+PiBiL2RyaXZlcnMvaW5wdXQvbWlzYy94 ZW4ta2JkZnJvbnQuYwo+Pj4+Pj4+IGluZGV4IDAxYzI3YjRjMzI4OC4uZTVkMDY0YWFhMjM3IDEw MDY0NAo+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvaW5wdXQvbWlzYy94ZW4ta2JkZnJvbnQuYwo+Pj4+ Pj4+ICsrKyBiL2RyaXZlcnMvaW5wdXQvbWlzYy94ZW4ta2JkZnJvbnQuYwo+Pj4+Pj4+IEBAIC0x Nyw2ICsxNyw3IEBACj4+Pj4+Pj4gICAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KPj4+Pj4+PiAg ICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KPj4+Pj4+PiAgICNpbmNsdWRlIDxsaW51eC9pbnB1 dC5oPgo+Pj4+Pj4+ICsjaW5jbHVkZSA8bGludXgvaW5wdXQvbXQuaD4KPj4+Pj4+PiAgICNpbmNs dWRlIDxsaW51eC9zbGFiLmg+Cj4+Pj4+Pj4gICAjaW5jbHVkZSA8YXNtL3hlbi9oeXBlcnZpc29y Lmg+Cj4+Pj4+Pj4gQEAgLTM0LDExICszNSwxNCBAQAo+Pj4+Pj4+ICAgc3RydWN0IHhlbmtiZF9p bmZvIHsKPj4+Pj4+PiAgICAgICBzdHJ1Y3QgaW5wdXRfZGV2ICprYmQ7Cj4+Pj4+Pj4gICAgICAg c3RydWN0IGlucHV0X2RldiAqcHRyOwo+Pj4+Pj4+ICsgICAgc3RydWN0IGlucHV0X2RldiAqbXRv dWNoOwo+Pj4+Pj4+ICAgICAgIHN0cnVjdCB4ZW5rYmRfcGFnZSAqcGFnZTsKPj4+Pj4+PiAgICAg ICBpbnQgZ3JlZjsKPj4+Pj4+PiAgICAgICBpbnQgaXJxOwo+Pj4+Pj4+ICAgICAgIHN0cnVjdCB4 ZW5idXNfZGV2aWNlICp4YmRldjsKPj4+Pj4+PiAgICAgICBjaGFyIHBoeXNbMzJdOwo+Pj4+Pj4+ ICsgICAgLyogY3VycmVudCBNVCBzbG90L2NvbnRhY3QgSUQgd2UgYXJlIGluamVjdGluZyBldmVu dHMgaW4gKi8KPj4+Pj4+PiArICAgIGludCBtdG91Y2hfY3VyX2NvbnRhY3RfaWQ7Cj4+Pj4+Pj4g ICB9Owo+Pj4+Pj4+ICAgZW51bSB7IEtQQVJBTV9YLCBLUEFSQU1fWSwgS1BBUkFNX0NOVCB9Owo+ Pj4+Pj4+IEBAIC00Nyw2ICs1MSwxMiBAQCBtb2R1bGVfcGFyYW1fYXJyYXkocHRyX3NpemUsIGlu dCwgTlVMTCwgMDQ0NCk7Cj4+Pj4+Pj4gICBNT0RVTEVfUEFSTV9ERVNDKHB0cl9zaXplLAo+Pj4+ Pj4+ICAgICAgICJQb2ludGluZyBkZXZpY2Ugd2lkdGgsIGhlaWdodCBpbiBwaXhlbHMgKGRlZmF1 bHQgODAwLDYwMCkiKTsKPj4+Pj4+PiArZW51bSB7IEtQQVJBTV9NVF9YLCBLUEFSQU1fTVRfWSwg S1BBUkFNX01UX0NOVCB9Owo+Pj4+Pj4+ICtzdGF0aWMgaW50IG10b3VjaF9zaXplW0tQQVJBTV9N VF9DTlRdID0geyBYRU5GQl9XSURUSCwgCj4+Pj4+Pj4gWEVORkJfSEVJR0hUIH07Cj4+Pj4+Pj4g K21vZHVsZV9wYXJhbV9hcnJheShtdG91Y2hfc2l6ZSwgaW50LCBOVUxMLCAwNDQ0KTsKPj4+Pj4+ PiArTU9EVUxFX1BBUk1fREVTQyhwdHJfc2l6ZSwKPj4+Pj4+PiArICAgICJNdWx0aS10b3VjaCBk ZXZpY2Ugd2lkdGgsIGhlaWdodCBpbiBwaXhlbHMgKGRlZmF1bHQgCj4+Pj4+Pj4gODAwLDYwMCki KTsKPj4+Pj4+PiArCj4+Pj4+PiBXaHkgZG8geW91IG5lZWQgc2VwYXJhdGUgbW9kdWxlIHBhcmFt ZXRlcnMgZm9yIG11bHRpLXRvdWNoIGRldmljZT8KPj4+Pj4gcGxlYXNlIHNlZSBiZWxvdwo+Pj4+ Pj4+ICAgc3RhdGljIGludCB4ZW5rYmRfcmVtb3ZlKHN0cnVjdCB4ZW5idXNfZGV2aWNlICopOwo+ Pj4+Pj4+ICAgc3RhdGljIGludCB4ZW5rYmRfY29ubmVjdF9iYWNrZW5kKHN0cnVjdCB4ZW5idXNf ZGV2aWNlICosIAo+Pj4+Pj4+IHN0cnVjdCB4ZW5rYmRfaW5mbyAqKTsKPj4+Pj4+PiAgIHN0YXRp YyB2b2lkIHhlbmtiZF9kaXNjb25uZWN0X2JhY2tlbmQoc3RydWN0IHhlbmtiZF9pbmZvICopOwo+ Pj4+Pj4+IEBAIC0xMDAsNiArMTEwLDYwIEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBpbnB1dF9oYW5k bGVyKGludCBycSwgCj4+Pj4+Pj4gdm9pZCAqZGV2X2lkKQo+Pj4+Pj4+ICAgICAgICAgICAgICAg ICAgIGlucHV0X3JlcG9ydF9yZWwoZGV2LCBSRUxfV0hFRUwsCj4+Pj4+Pj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgLWV2ZW50LT5wb3MucmVsX3opOwo+Pj4+Pj4+ICAgICAgICAgICAgICAg YnJlYWs7Cj4+Pj4+Pj4gKyAgICAgICAgY2FzZSBYRU5LQkRfVFlQRV9NVE9VQ0g6Cj4+Pj4+Pj4g KyAgICAgICAgICAgIGRldiA9IGluZm8tPm10b3VjaDsKPj4+Pj4+PiArICAgICAgICAgICAgaWYg KHVubGlrZWx5KCFkZXYpKQo+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgYnJlYWs7Cj4+Pj4+Pj4g KyAgICAgICAgICAgIGlmICh1bmxpa2VseShldmVudC0+bXRvdWNoLmNvbnRhY3RfaWQgIT0KPj4+ Pj4+PiArICAgICAgICAgICAgICAgICAgICBpbmZvLT5tdG91Y2hfY3VyX2NvbnRhY3RfaWQpKSB7 Cj4+Pj4+PiBXaHkgaXMgdGhpcyB1bmxpa2VseT8gRG9lcyBjb250YWN0IElEIGNoYW5nZXMgb25j ZSBpbiAxMDAwIAo+Pj4+Pj4gcGFja2V0cyBvcgo+Pj4+Pj4gZXZlbiBsZXNzPwo+Pj4+PiBNdSBh c3N1bXB0aW9uIHdhcyB0aGF0IHJlZ2FyZGxlc3Mgb2YgdGhlIGZhY3QgdGhhdCB3ZSBhcmUgbXVs dGktdG91Y2gKPj4+Pj4gZGV2aWNlIHN0aWxsIHNpbmdsZSB0b3VjaGVzIHdpbGwgY29tZSBpbiBt b3JlIGZyZXF1ZW50bHkKPj4+Pj4gQnV0IEkgY2FuIHJlbW92ZSAqdW5saWtlbHkqIGlmIG15IGFz c3VtcHRpb24gaXMgbm90IGNvcnJlY3QKPj4+PiBJIHRoaW5rIHRoZSBub3JtYWwgZXhwZWN0YXRp b24gaXMgdGhhdCAidW5saWtlbHkiIGlzIHN1cHBvc2VkIGZvcgo+Pj4+IHNvbWV0aGluZyB0aGF0 IGhhcHBlbnMgb25jZSBpbiBhIGJsdWUgbW9vbiwgc28gSSdkIHJhdGhlciByZW1vdmUgaXQuCj4+ Pj4KPj4+IGFncmVlLCByZW1vdmVkICJ1bmxpa2VseSIKPj4+Pj4+PiArIGluZm8tPm10b3VjaF9j dXJfY29udGFjdF9pZCA9Cj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgZXZlbnQtPm10b3Vj aC5jb250YWN0X2lkOwo+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgaW5wdXRfbXRfc2xvdChkZXYs IGV2ZW50LT5tdG91Y2guY29udGFjdF9pZCk7Cj4+Pj4+Pj4gKyAgICAgICAgICAgIH0KPj4+Pj4+ PiArICAgICAgICAgICAgc3dpdGNoIChldmVudC0+bXRvdWNoLmV2ZW50X3R5cGUpIHsKPj4+Pj4+ PiArICAgICAgICAgICAgY2FzZSBYRU5LQkRfTVRfRVZfRE9XTjoKPj4+Pj4+PiArICAgICAgICAg ICAgICAgIGlucHV0X210X3JlcG9ydF9zbG90X3N0YXRlKGRldiwgTVRfVE9PTF9GSU5HRVIsCj4+ Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKTsKPj4+PiBTaG91bGQg d2UgZXN0YWJsaXNoIHRvb2wgZXZlbnQ/IFdlIGhhdmUgTVRfVE9PTF9QRU4sIGV0Yy4KPj4+IEkg dGhpbmsgdGhhdCBmb3IgbXVsdGktdG91Y2ggTVRfVE9PTF9GSU5HRVIgaXMgZW5vdWdoCj4+PiBh bnkgcmVhc29uIHdlIHdvdWxkIGFsc28gd2FudCBNVF9UT09MX1BFTiBoZXJlPwo+PiBXaHkgd291 bGQgbm90IHlvdT8gTGV0J3Mgc2F5IHlvdSBoYXZlIGEgZHJhd2luZyBhcHBsaWNhdGlvbiBydW5u aW5nIGluCj4+IGd1ZXN0IHRoYXQgY2FuIG1ha2UgdXNlIG9mIHRvb2wgdHlwZXMuIFdoeSB3b3Vs ZCBub3QgeW91IHdhbnQgdG8gdGVsbCBpdAo+PiB0aGF0IHRoZSB0b29sIHVzZXIgaXMgY3VycmVu dGx5IHVzaW5nIGlzIGluIGZhY3QgYSBwZW4gYW5kIG5vdCBmaW5nZXI/Cj4gQnV0IGl0IGlzIGEg ZmluZ2VyIDopIHdlIGFyZSBtdWx0aS10b3VjaCwgbm90IG11bHRpIHBlbgo+Cj4gQmVzaWRlcywg dGhhdCwgaWYgSSBhbSBhYm91dCB0byBpbXBsZW1lbnQgcGVuIHN1cHBvcnQKPiAod2hpY2ggSSBz dGlsbCBub3QgY29udmluY2VkIHdlIHJlYWxseSBuZWVkKSwgaG93IHdpbGwgSQo+IGRvIHRoYXQ/ Cj4gTXkgdW5kZXJzdGFuZGluZyBpcyB0aGF0IEkgbmVlZCAyIGRpZmZlcmVudCBzbG90cyB0byBy ZXBvcnQKPiB0aGUgc2FtZSBjb29yZGluYXRlcyBmb3IgZmluZ2VyIGFuZCBwZW4uIFRoaXMgaXMg YmVjYXVzZQo+IGlucHV0X210X3JlcG9ydF9zbG90X3N0YXRlIGhhcyBhIGNoZWNrIHRoYXQgaWYg dG9vbCBoYXMKPiBjaGFuZ2VkIGZvciB0aGUgY3VycmVudCBzbG90IHRoZW4gYSBuZXcgdHJhY2tp bmcgSUQgaXMgc2V0Lgo+IERvIEkgYWxzbyBuZWVkIHRvIGFsbG9jYXRlIHR3aWNlIG1vcmUgc2xv dHMsIHNvIEkgY2FuCj4gcmVwb3J0IDIgKiBudW1fY29udGFjdHMgZXZlbnRzIHNpbXVsdGFuZW91 c2x5IChvbmUgZm9yIGZpbmdlcgo+IGFuZCBhbm90aGVyIGZvciBwZW4pPwo+IFRoYXQgc2FpZCwg SSBiZWxpZXZlIHdlIGNhbiBzdGFydCB3aXRoIG11bHRpLXRvdWNoIHN1cHBvcnQKPiBhbmQgaWYg bmVlZCBiZSB0aGVuIGFkZCBwZW4gc3VwcG9ydCBhcyBhIHNlcGFyYXRlIGNoYW5nZSwKPiBkb2Vz IHRoYXQgbWFrZSBzZW5zZSBmb3IgeW91Pwo+Pgo+Pj4gKEkgZ3Vlc3MgTVRfVE9PTF9QQUxNIGlz IG5vdCBhcHByb3ByaWF0ZSBhbnl3YXlzKQo+PiBEZXBlbmRzIG9uIGlmIHlvdSBkbyBzdHJhaWdo dCBwYXNzLXRocm91Z2ggZnJvbSB0aGUgaG9zdCBzaWRlIG9yIG5vdC4gSWYKPj4geW91IHN0YWNr IGRvZXMgcGFsbSByZWplY3Rpb24gYmVmb3JlIHBhc3NpbmcgdGhlIGRhdGEgdGhyb3VnaCB0aGVu IHlvdQo+PiB3b3VsZCBub3Qgc2VlIE1UX1RPT0xfUEFMTSBpbiBndWVzdC4KPiB0aGUgcHJvdG9j b2wgdXNlZCBiZXR3ZWVuIGd1ZXN0IGFuZCBob3N0IGlzIGEgZ2VuZXJpYyBvbmUsCj4gbm90IHVz aW5nIExpbnV4IHR5cGVzL2NvbnN0YW50cy9ldmVudHMuCj4gU28sIG5vIFBBTE0vVE9PTCBzdXBw b3J0IGlzIGluIHBsYWNlCj4+Pj4+Pj4gKyBpbnB1dF9ldmVudChkZXYsIEVWX0FCUywgQUJTX01U X1BPU0lUSU9OX1gsCj4+Pj4+Pj4gKyBldmVudC0+bXRvdWNoLnUucG9zLmFic194KTsKPj4+Pj4+ PiArICAgICAgICAgICAgICAgIGlucHV0X2V2ZW50KGRldiwgRVZfQUJTLCBBQlNfTVRfUE9TSVRJ T05fWSwKPj4+Pj4+PiArIGV2ZW50LT5tdG91Y2gudS5wb3MuYWJzX3kpOwo+Pj4+Pj4+ICsgICAg ICAgICAgICAgICAgaW5wdXRfZXZlbnQoZGV2LCBFVl9BQlMsIEFCU19YLAo+Pj4+Pj4+ICsgZXZl bnQtPm10b3VjaC51LnBvcy5hYnNfeCk7Cj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICBpbnB1dF9l dmVudChkZXYsIEVWX0FCUywgQUJTX1ksCj4+Pj4+Pj4gKyBldmVudC0+bXRvdWNoLnUucG9zLmFi c195KTsKPj4+Pj4+PiArICAgICAgICAgICAgICAgIGJyZWFrOwo+Pj4+Pj4+ICsgICAgICAgICAg ICBjYXNlIFhFTktCRF9NVF9FVl9VUDoKPj4+Pj4+PiArICAgICAgICAgICAgICAgIGlucHV0X210 X3JlcG9ydF9zbG90X3N0YXRlKGRldiwgTVRfVE9PTF9GSU5HRVIsCj4+Pj4+Pj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSk7Cj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICBi cmVhazsKPj4+Pj4+PiArICAgICAgICAgICAgY2FzZSBYRU5LQkRfTVRfRVZfTU9USU9OOgo+Pj4+ Pj4+ICsgICAgICAgICAgICAgICAgaW5wdXRfZXZlbnQoZGV2LCBFVl9BQlMsIEFCU19NVF9QT1NJ VElPTl9YLAo+Pj4+Pj4+ICsgZXZlbnQtPm10b3VjaC51LnBvcy5hYnNfeCk7Cj4+Pj4+Pj4gKyAg ICAgICAgICAgICAgICBpbnB1dF9ldmVudChkZXYsIEVWX0FCUywgQUJTX01UX1BPU0lUSU9OX1ks Cj4+Pj4+Pj4gKyBldmVudC0+bXRvdWNoLnUucG9zLmFic195KTsKPj4+Pj4+PiArICAgICAgICAg ICAgICAgIGlucHV0X2V2ZW50KGRldiwgRVZfQUJTLCBBQlNfWCwKPj4+Pj4+PiArIGV2ZW50LT5t dG91Y2gudS5wb3MuYWJzX3gpOwo+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgaW5wdXRfZXZlbnQo ZGV2LCBFVl9BQlMsIEFCU19ZLAo+Pj4+Pj4+ICsgZXZlbnQtPm10b3VjaC51LnBvcy5hYnNfeSk7 Cj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICBicmVhazsKPj4+Pj4+PiArICAgICAgICAgICAgY2Fz ZSBYRU5LQkRfTVRfRVZfU1lOOgo+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgaW5wdXRfbXRfc3lu Y19mcmFtZShkZXYpOwo+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgYnJlYWs7Cj4+Pj4+Pj4gKyAg ICAgICAgICAgIGNhc2UgWEVOS0JEX01UX0VWX1NIQVBFOgo+Pj4+Pj4+ICsgICAgICAgICAgICAg ICAgaW5wdXRfZXZlbnQoZGV2LCBFVl9BQlMsIEFCU19NVF9UT1VDSF9NQUpPUiwKPj4+Pj4+PiAr IGV2ZW50LT5tdG91Y2gudS5zaGFwZS5tYWpvcik7Cj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICBp bnB1dF9ldmVudChkZXYsIEVWX0FCUywgQUJTX01UX1RPVUNIX01JTk9SLAo+Pj4+Pj4+ICsgZXZl bnQtPm10b3VjaC51LnNoYXBlLm1pbm9yKTsKPj4+Pj4+PiArICAgICAgICAgICAgICAgIGJyZWFr Owo+Pj4+Pj4+ICsgICAgICAgICAgICBjYXNlIFhFTktCRF9NVF9FVl9PUklFTlQ6Cj4+Pj4+Pj4g KyAgICAgICAgICAgICAgICBpbnB1dF9ldmVudChkZXYsIEVWX0FCUywgQUJTX01UX09SSUVOVEFU SU9OLAo+Pj4+Pj4+ICsgZXZlbnQtPm10b3VjaC51Lm9yaWVudGF0aW9uKTsKPj4+Pj4+PiArICAg ICAgICAgICAgICAgIGJyZWFrOwo+Pj4+Pj4+ICsgICAgICAgICAgICB9Cj4+Pj4+Pj4gKyAgICAg ICAgICAgIC8qIG9ubHkgcmVwb3J0IHN5biB3aGVuIHJlcXVlc3RlZCAqLwo+Pj4+Pj4+ICsgICAg ICAgICAgICBpZiAoZXZlbnQtPm10b3VjaC5ldmVudF90eXBlICE9IFhFTktCRF9NVF9FVl9TWU4p Cj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICBkZXYgPSBOVUxMOwo+Pj4+Pj4+ICAgICAgICAgICB9 Cj4+Pj4+Pj4gICAgICAgICAgIGlmIChkZXYpCj4+Pj4+Pj4gICAgICAgICAgICAgICBpbnB1dF9z eW5jKGRldik7Cj4+Pj4+Pj4gQEAgLTExNSw5ICsxNzksOSBAQCBzdGF0aWMgaW50IHhlbmtiZF9w cm9iZShzdHJ1Y3QgeGVuYnVzX2RldmljZSAKPj4+Pj4+PiAqZGV2LAo+Pj4+Pj4+ICAgICAgICAg ICAgICAgICAgICAgY29uc3Qgc3RydWN0IHhlbmJ1c19kZXZpY2VfaWQgKmlkKQo+Pj4+Pj4+ICAg ewo+Pj4+Pj4+ICAgICAgIGludCByZXQsIGk7Cj4+Pj4+Pj4gLSAgICB1bnNpZ25lZCBpbnQgYWJz Owo+Pj4+Pj4+ICsgICAgdW5zaWduZWQgaW50IGFicywgdG91Y2g7Cj4+Pj4+Pj4gICAgICAgc3Ry dWN0IHhlbmtiZF9pbmZvICppbmZvOwo+Pj4+Pj4+IC0gICAgc3RydWN0IGlucHV0X2RldiAqa2Jk LCAqcHRyOwo+Pj4+Pj4+ICsgICAgc3RydWN0IGlucHV0X2RldiAqa2JkLCAqcHRyLCAqbXRvdWNo Owo+Pj4+Pj4+ICAgICAgIGluZm8gPSBremFsbG9jKHNpemVvZigqaW5mbyksIEdGUF9LRVJORUwp Owo+Pj4+Pj4+ICAgICAgIGlmICghaW5mbykgewo+Pj4+Pj4+IEBAIC0xNTIsNiArMjE2LDE3IEBA IHN0YXRpYyBpbnQgeGVua2JkX3Byb2JlKHN0cnVjdCAKPj4+Pj4+PiB4ZW5idXNfZGV2aWNlICpk ZXYsCj4+Pj4+Pj4gICAgICAgICAgIH0KPj4+Pj4+PiAgICAgICB9Cj4+Pj4+Pj4gKyAgICB0b3Vj aCA9IHhlbmJ1c19yZWFkX3Vuc2lnbmVkKGRldi0+bm9kZW5hbWUsCj4+Pj4+Pj4gKyAgICAgICAg ICAgICAgICAgICAgIFhFTktCRF9GSUVMRF9GRUFUX01UT1VDSCwgMCk7Cj4+Pj4+Pj4gKyAgICBp ZiAodG91Y2gpIHsKPj4+Pj4+PiArICAgICAgICByZXQgPSB4ZW5idXNfd3JpdGUoWEJUX05JTCwg ZGV2LT5ub2RlbmFtZSwKPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgIFhFTktCRF9GSUVMRF9S RVFfTVRPVUNILCAiMSIpOwo+Pj4+Pj4+ICsgICAgICAgIGlmIChyZXQpIHsKPj4+Pj4+PiArICAg ICAgICAgICAgcHJfd2FybmluZygieGVua2JkOiBjYW4ndCByZXF1ZXN0IG11bHRpLXRvdWNoIik7 Cj4+Pj4+Pj4gKyAgICAgICAgICAgIHRvdWNoID0gMDsKPj4+Pj4+PiArICAgICAgICB9Cj4+Pj4+ Pj4gKyAgICB9Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICAgICAgIC8qIGtleWJvYXJkICovCj4+Pj4+Pj4g ICAgICAga2JkID0gaW5wdXRfYWxsb2NhdGVfZGV2aWNlKCk7Cj4+Pj4+Pj4gICAgICAgaWYgKCFr YmQpCj4+Pj4+Pj4gQEAgLTIwOCw2ICsyODMsNjcgQEAgc3RhdGljIGludCB4ZW5rYmRfcHJvYmUo c3RydWN0IAo+Pj4+Pj4+IHhlbmJ1c19kZXZpY2UgKmRldiwKPj4+Pj4+PiAgICAgICB9Cj4+Pj4+ Pj4gICAgICAgaW5mby0+cHRyID0gcHRyOwo+Pj4+Pj4+ICsgICAgLyogbXVsdGktdG91Y2ggZGV2 aWNlICovCj4+Pj4+Pj4gKyAgICBpZiAodG91Y2gpIHsKPj4+Pj4+PiArICAgICAgICBpbnQgbnVt X2NvbnQsIHdpZHRoLCBoZWlnaHQ7Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICsgICAgICAgIG10b3VjaCA9 IGlucHV0X2FsbG9jYXRlX2RldmljZSgpOwo+Pj4+Pj4+ICsgICAgICAgIGlmICghbXRvdWNoKQo+ Pj4+Pj4+ICsgICAgICAgICAgICBnb3RvIGVycm9yX25vbWVtOwo+Pj4+Pj4+ICsKPj4+Pj4+PiAr ICAgICAgICBudW1fY29udCA9IHhlbmJ1c19yZWFkX3Vuc2lnbmVkKGluZm8tPnhiZGV2LT5ub2Rl bmFtZSwKPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgWEVOS0JEX0ZJRUxEX01UX05V TV9DT05UQUNUUywKPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgMSk7Cj4+Pj4gU2hv dWxkIHdlIHJlZnVzZSBNVCBkZXZpY2VzIHdpdGggbnVtYmVyIG9mIGNvbnRhY3RzIGxlc3MgdGhh biAyPwo+Pj4gd2UgY2FuLCBidXQgSSBzZWUgbm8gaGFybSBpbiAxLiB3aGF0IGlzIG1vcmUsIHRo aXMgbWF5Cj4+PiBhbGxvdyBndWVzdHMgdG8gZW11bGF0ZSBtb3JlIHBvaW50aW5nIGRldmljZXMK Pj4+IGJ1dCwgaWYgeW91IGluc2lzdCwgdGhlbiBJIHdpbGwgYWRkIGFwcHJvcHJpYXRlIGNvZGUg dG8KPj4+IHJlamVjdCBpZiBudW1iZXIgb2YgY29udGFjdHMgaXMgbGVzcyB0aGVuIDIKPj4+Pj4+ PiArICAgICAgICB3aWR0aCA9IHhlbmJ1c19yZWFkX3Vuc2lnbmVkKGluZm8tPnhiZGV2LT5ub2Rl bmFtZSwKPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgIFhFTktCRF9GSUVMRF9NVF9X SURUSCwKPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgIFhFTkZCX1dJRFRIKTsKPj4+ Pj4+PiArICAgICAgICBoZWlnaHQgPSB4ZW5idXNfcmVhZF91bnNpZ25lZChpbmZvLT54YmRldi0+ bm9kZW5hbWUsCj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOS0JEX0ZJRUxE X01UX0hFSUdIVCwKPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5GQl9IRUlH SFQpOwo+Pj4+Pj4gQ3VyaW91cyB3aHkgeW91IG5lZWQgc2VwYXJhdGUgcGFyYW1ldGVycyBoZXJl IHRvby4uLgo+Pj4+PiBUaGlzIGlzIGJlY2F1c2UgbXQgcGFyYW1ldGVycyBhcmUgZGlmZmVyZW50 IGZyb20gcHRyCj4+Pj4+IGluIGEgd2F5IHRoYXQgdGhleSBhcmUgY29uZmlndXJhYmxlIHBlciBm cm9udCBkcml2ZXIncwo+Pj4+PiBpbnN0YW5jZSByYXRoZXIgdGhhbiBwZXIgYmFja2VuZCwgZS5n LiBpbiBYZW5TdG9yZToKPj4+Pj4KPj4+Pj4gL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQvdmtiZC8x LzAvd2lkdGggPSAiMTkyMCIKPj4+Pj4gL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQvdmtiZC8xLzAv aGVpZ2h0ID0gIjEwODAiCj4+Pj4+Cj4+Pj4+IC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmtiZC8w L211bHRpLXRvdWNoLXdpZHRoID0gIjE5MjAiCj4+Pj4+IC9sb2NhbC9kb21haW4vMS9kZXZpY2Uv dmtiZC8wL211bHRpLXRvdWNoLWhlaWdodCA9ICIxMDgwIgo+Pj4+PiAvbG9jYWwvZG9tYWluLzEv ZGV2aWNlL3ZrYmQvMC9tdWx0aS10b3VjaC1udW0tY29udGFjdHMgPSAiMTAiCj4+Pj4+Cj4+Pj4+ IC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmtiZC8xL211bHRpLXRvdWNoLXdpZHRoID0gIjgwMCIK Pj4+Pj4gL2xvY2FsL2RvbWFpbi8xL2RldmljZS92a2JkLzEvbXVsdGktdG91Y2gtaGVpZ2h0ID0g IjYwMCIKPj4+Pj4gL2xvY2FsL2RvbWFpbi8xL2RldmljZS92a2JkLzEvbXVsdGktdG91Y2gtbnVt LWNvbnRhY3RzID0gIjMiCj4+Pj4+Cj4+Pj4+IFRoZSBtYWluIHJlYXNvbiBmb3Igc3VjaCBjb25m aWd1cmF0aW9uIGlzIHRoYXQgeW91IGNhbgo+Pj4+PiBjb25maWd1cmUgbXVsdGlwbGUgbXQgaW5w dXQgZGV2aWNlcyBldmVuIGZvciB0aGUgc2FtZSBndWVzdAo+Pj4+PiB3aXRoIGRpZmZlcmVudCBy ZXNvbHV0aW9ucyB3aGljaCBtYXkgbm90IG1hdGNoIHRob3NlCj4+Pj4+IGNvbmZpZ3VyZWQgZm9y IHB0ci4KPj4+Pj4gKEluIG15IHVzZS1jYXNlIEkgdXNlIG5ldyBkaXNwbGlmIHByb3RvY29sIFsx XSBpbiBjb25qdW5jdGlvbgo+Pj4+PiB3aXRoIG10IGlucHV0IGRldmljZXMgYW5kIHRoZSBjb3Jy ZXNwb25kaW5nIGJhY2tlbmQgaXMgbm90Cj4+Pj4+IFFFTVUncyB4ZW5mYikKPj4+PiBJIHNlZS4K Pj4+Pgo+Pj4+PiBBcyB0byBtb2R1bGUgcGFyYW1ldGVycywgSSBhZGRlZCB0aG9zZSB0byBiZSBj b25zaXN0ZW50IHdpdGgKPj4+Pj4gcHRyIGRldmljZS4gRG8geW91IHRoaW5rIHdlIGNhbiBsaXZl IHdpdGhvdXQgdGhlbSBhbmQKPj4+Pj4gZG8geW91IHdhbnQgbWUgdG8gcmVtb3ZlIHRoZW0/Cj4+ Pj4gWWVzLCBJIHRoaW5rIHdlIGJldHRlci4gSSBhbSBhbHNvIGNvbmZ1c2VkIGJ5IHRoZSB3YXkg eW91IGFyZSBoYW5kbGluZwo+Pj4+IHRoZSBtb2R1bGUgcGFyYW1ldGVycy4gSXQgbG9va3MgdG8g bWUgeW91IHVwZGF0ZSB0aGVtIHdpdGggZGF0YSBwYXNzZWQKPj4+ID5mcm9tIHRoZSBiYWNrZW5k LCBidXQgbmV2ZXIgdXNlIHRoZSBkYXRhLi4uCj4+PiBJIGhhdmUgcmVtb3ZlZCBtb2R1bGUgcGFy YW1ldGVycyAodGhlIG9ubHkgdXNlIG9mIHRob3NlCj4+PiB3YXMgdG8gYmUgYWJsZSB0byBzZWUg Y29uZmlndXJlZCB3aWR0aCBhbmQgaGVpZ2h0IG9uCj4+PiBndWVzdCBzaWRlLCBidXQgdGhpcyBp cyBtaW5vcikKPj4gZXZ0ZXN0IHdvdWxkIHNob3cgaXQgdG8geW91LiBPciB5b3UgY2FuIHF1ZXJ5 IGlucHV0IGRldmljZSB5b3Vyc2VsZgo+PiAoRVZJT0NHQUJTIGlvdGNsKS4KPiB5ZXMsIGlmIGVt YmVkZGVkIHN5c3RlbSAod2hpY2ggaXMgbXkgdGFyZ2V0KSBoYXMgZXZ0ZXN0Cj4gYnV0IGl0IGRl ZmluaXRlbHkgZG9lcyBoYXZlIGlvY3RsIHRob3VnaAo+Pj4+Pj4+ICsKPj4+Pj4+PiArICAgICAg ICBtdG91Y2gtPm5hbWUgPSAiWGVuIFZpcnR1YWwgTXVsdGktdG91Y2giOwo+Pj4+Pj4+ICsgICAg ICAgIG10b3VjaC0+cGh5cyA9IGluZm8tPnBoeXM7Cj4+Pj4+Pj4gKyAgICAgICAgbXRvdWNoLT5p ZC5idXN0eXBlID0gQlVTX1BDSTsKPj4+Pj4+PiArICAgICAgICBtdG91Y2gtPmlkLnZlbmRvciA9 IDB4NTg1MzsKPj4+Pj4+PiArICAgICAgICBtdG91Y2gtPmlkLnByb2R1Y3QgPSAweGZmZmQ7Cj4+ Pj4+Pj4gKwo+Pj4+Pj4+ICsgICAgICAgIF9fc2V0X2JpdChFVl9BQlMsIG10b3VjaC0+ZXZiaXQp Owo+Pj4+Pj4+ICsgICAgICAgIF9fc2V0X2JpdChFVl9LRVksIG10b3VjaC0+ZXZiaXQpOwo+Pj4+ Pj4+ICsgICAgICAgIF9fc2V0X2JpdChCVE5fVE9VQ0gsIG10b3VjaC0+a2V5Yml0KTsKPj4gUGxl YXNlIG1ha2UgaXQKPj4gICAgICAgICBpbnB1dF9zZXRfY2FwYWJpbGl0eShtdG91Y2gsIEVWX0tF WSwgQlROX1RPVUNIKTsKPj4KPj4gYW5kIGRyb3AgYWxsIF9fc2V0X2JpdCgpcy4KPiBkb25lLCB0 aGFuayB5b3UKPj4+Pj4+PiArCj4+Pj4+Pj4gKyAgICAgICAgaW5wdXRfc2V0X2Fic19wYXJhbXMo bXRvdWNoLCBBQlNfWCwKPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgMCwgd2lkdGgsIDAs IDApOwo+Pj4+Pj4+ICsgICAgICAgIGlucHV0X3NldF9hYnNfcGFyYW1zKG10b3VjaCwgQUJTX1ks Cj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgIDAsIGhlaWdodCwgMCwgMCk7Cj4+Pj4+Pj4g KyAgICAgICAgaW5wdXRfc2V0X2Fic19wYXJhbXMobXRvdWNoLCBBQlNfUFJFU1NVUkUsCj4+Pj4+ Pj4gKyAgICAgICAgICAgICAgICAgICAgIDAsIDI1NSwgMCwgMCk7Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ ICsgICAgICAgIGlucHV0X3NldF9hYnNfcGFyYW1zKG10b3VjaCwgQUJTX01UX1RPVUNIX01BSk9S LAo+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAwLCAyNTUsIDAsIDApOwo+Pj4+Pj4+ICsg ICAgICAgIGlucHV0X3NldF9hYnNfcGFyYW1zKG10b3VjaCwgQUJTX01UX1BPU0lUSU9OX1gsCj4+ Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgIDAsIHdpZHRoLCAwLCAwKTsKPj4+Pj4+PiArICAg ICAgICBpbnB1dF9zZXRfYWJzX3BhcmFtcyhtdG91Y2gsIEFCU19NVF9QT1NJVElPTl9ZLAo+Pj4+ Pj4+ICsgICAgICAgICAgICAgICAgICAgICAwLCBoZWlnaHQsIDAsIDApOwo+Pj4+Pj4+ICsgICAg ICAgIGlucHV0X3NldF9hYnNfcGFyYW1zKG10b3VjaCwgQUJTX01UX1BSRVNTVVJFLAo+Pj4+Pj4+ ICsgICAgICAgICAgICAgICAgICAgICAwLCAyNTUsIDAsIDApOwo+Pj4+Pj4+ICsKPj4+Pj4+PiAr ICAgICAgICBpbnB1dF9tdF9pbml0X3Nsb3RzKG10b3VjaCwgbnVtX2NvbnQsIDApOwo+Pj4+IFdl IG5lZWQgZXJyb3IgaGFuZGxpbmcgaGVyZS4KPj4+IGRvbmUKPj4+PiAgIEFsc28sIGl0IHdvdWxk IGJlIG5pY2UgaWYgd2Ugc2V0IElOUFVUX01UXyoKPj4+PiBmbGFncyBoZXJlLCBzbyB0aGF0IHVz ZXJzcGFjZSBoYWQgYmV0dGVyIGNoYW5jZSBvZiBmaWd1cmluZyBob3cgdG8KPj4+PiBoYW5kbGUg dGhlIGRldmljZS4KPj4+IGRvbmUsIEkgd2lsbCB1c2UgSU5QVVRfTVRfRElSRUNUIHwgSU5QVVRf TVRfRFJPUF9VTlVTRUQKPj4gRG9lcyB0aGF0IG1lYW4gdGhhdCB5b3VyIGJhY2tlbmQgZG9lcyBu b3QgcmVsaWFibHkgcmVwb3J0IHJlbGVhc2Ugb2YKPj4gY29udGFjdHM/Cj4gdGhlcmUgaXMgYSBy aW5nIGJ1ZmZlciBiZXR3ZWVuIGhvc3QgYW5kIGd1ZXN0LAo+IHNvIHRoZXJlIGlzIGFsd2F5cyBh IHBvc3NpYmlsaXR5IChyYXRoZXIgc21hbGwgSSBiZWxpZXZlKQo+IHRoYXQgdGhlIGJ1ZmZlciBv dmVycnVucy4gRG8geW91IHRoaW5rIEkgbmVlZCBJTlBVVF9NVF9EUk9QX1VOVVNFRCBvcgo+IHdl IGNhbiBsaXZlIHdpdGhvdXQgaXQ/Cj4+Cj4+IFRoYW5rcy4KPj4KPj4+Pj4+PiArCj4+Pj4+Pj4g KyAgICAgICAgbXRvdWNoX3NpemVbS1BBUkFNX01UX1hdID0gd2lkdGg7Cj4+Pj4+Pj4gKyAgICAg ICAgbXRvdWNoX3NpemVbS1BBUkFNX01UX1ldID0gaGVpZ2h0Owo+Pj4+Pj4+ICsgICAgICAgIGlu Zm8tPm10b3VjaF9jdXJfY29udGFjdF9pZCA9IC0xOwo+Pj4+Pj4+ICsKPj4+Pj4+PiArICAgICAg ICByZXQgPSBpbnB1dF9yZWdpc3Rlcl9kZXZpY2UobXRvdWNoKTsKPj4+Pj4+PiArICAgICAgICBp ZiAocmV0KSB7Cj4+Pj4+Pj4gKyAgICAgICAgICAgIGlucHV0X2ZyZWVfZGV2aWNlKG10b3VjaCk7 Cj4+Pj4+Pj4gKyAgICAgICAgICAgIHhlbmJ1c19kZXZfZmF0YWwoaW5mby0+eGJkZXYsIHJldCwK Pj4+Pj4+PiArICJpbnB1dF9yZWdpc3Rlcl9kZXZpY2UobXRvdWNoKSIpOwo+Pj4+Pj4+ICsgICAg ICAgICAgICBnb3RvIGVycm9yOwo+Pj4+Pj4+ICsgICAgICAgIH0KPj4+Pj4+PiArICAgICAgICBp bmZvLT5tdG91Y2hfY3VyX2NvbnRhY3RfaWQgPSAtMTsKPj4+Pj4+PiArICAgICAgICBpbmZvLT5t dG91Y2ggPSBtdG91Y2g7Cj4+Pj4+Pj4gKyAgICB9Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICAgICAgIHJl dCA9IHhlbmtiZF9jb25uZWN0X2JhY2tlbmQoZGV2LCBpbmZvKTsKPj4+Pj4+PiAgICAgICBpZiAo cmV0IDwgMCkKPj4+Pj4+PiAgICAgICAgICAgZ290byBlcnJvcjsKPj4+Pj4+PiBAQCAtMjQwLDYg KzM3Niw4IEBAIHN0YXRpYyBpbnQgeGVua2JkX3JlbW92ZShzdHJ1Y3QgCj4+Pj4+Pj4geGVuYnVz X2RldmljZSAqZGV2KQo+Pj4+Pj4+ICAgICAgICAgICBpbnB1dF91bnJlZ2lzdGVyX2RldmljZShp bmZvLT5rYmQpOwo+Pj4+Pj4+ICAgICAgIGlmIChpbmZvLT5wdHIpCj4+Pj4+Pj4gICAgICAgICAg IGlucHV0X3VucmVnaXN0ZXJfZGV2aWNlKGluZm8tPnB0cik7Cj4+Pj4+Pj4gKyAgICBpZiAoaW5m by0+bXRvdWNoKQo+Pj4+Pj4+ICsgICAgICAgIGlucHV0X3VucmVnaXN0ZXJfZGV2aWNlKGluZm8t Pm10b3VjaCk7Cj4+Pj4+Pj4gICAgICAgZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKWluZm8tPnBh Z2UpOwo+Pj4+Pj4+ICAgICAgIGtmcmVlKGluZm8pOwo+Pj4+Pj4+ICAgICAgIHJldHVybiAwOwo+ Pj4+Pj4+IC0tIAo+Pj4+Pj4+IDIuNy40Cj4+Pj4+Pj4KPj4+PiBUaGFua3MuCj4+Pj4KPj4+IEZv ciB5b3VyIGNvbnZlbmllbmNlIEkgYW0gYXR0YWNoaW5nIHRoZSBjaGFuZ2VzIEkgYW0gYWJvdXQK Pj4+IHRvIHB1dCBpbnRvIHYxIG9mIHRoZSBzZXJpZXM6Cj4+PiAgIC0gcmVtb3ZlIHVubGlrZWx5 Cj4+PiAgIC0gcmVtb3ZlIG1vZHVsZSBwYXJhbWV0ZXJzCj4+PiAgIC0gZXJyb3IgaGFuZGxpbmcg Zm9yIGlucHV0X210X2luaXRfc2xvdHMKPj4+ICAgLSBsZXQgdXNlcnNwYWNlIGJldHRlciBjaGFu Y2Ugb2YgZmlndXJpbmcgaG93IHRvIGhhbmRsZSB0aGUgZGV2aWNlCj4+Pgo+Pj4gVGhhbmsgeW91 LAo+Pj4gT2xla3NhbmRyCj4+PiAgRnJvbSBlNzY1MDZjNTU4NDZlMmJiNGNjYmFmYTQzMDY0MmUz Njg2NDNlNTFkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQo+Pj4gRnJvbTogT2xla3NhbmRyIEFu ZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPgo+Pj4gRGF0ZTog VHVlLCAzMCBNYXkgMjAxNyAxNDo0OTo1OCArMDMwMAo+Pj4gU3ViamVjdDogW1BBVENIXSBGaXg6 IHJlbW92ZSB1bmxpa2VseSBGaXg6IHJlbW92ZSBtb2R1bGUgcGFyYW10ZXJzIAo+Pj4gRml4OiBl cnJvcgo+Pj4gICBoYW5kbGluZyBmb3IgaW5wdXRfbXRfaW5pdF9zbG90cyBGaXg6IGxldCB1c2Vy c3BhY2UgYmV0dGVyIGNoYW5jZSAKPj4+IG9mIGZpZ3VyaW5nCj4+PiAgIGhvdyB0byBoYW5kbGUg dGhlIGRldmljZQo+Pj4KPj4+IFNpZ25lZC1vZmYtYnk6IE9sZWtzYW5kciBBbmRydXNoY2hlbmtv IAo+Pj4gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPgo+Pj4gLS0tCj4+PiAgIGRy aXZlcnMvaW5wdXQvbWlzYy94ZW4ta2JkZnJvbnQuYyB8IDIxICsrKysrKysrKystLS0tLS0tLS0t LQo+Pj4gICAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0p Cj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvbWlzYy94ZW4ta2JkZnJvbnQuYyAK Pj4+IGIvZHJpdmVycy9pbnB1dC9taXNjL3hlbi1rYmRmcm9udC5jCj4+PiBpbmRleCA4MjY2ZWY5 NDhhMDYuLjI3M2Q3ODZhMTljZCAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvaW5wdXQvbWlzYy94 ZW4ta2JkZnJvbnQuYwo+Pj4gKysrIGIvZHJpdmVycy9pbnB1dC9taXNjL3hlbi1rYmRmcm9udC5j Cj4+PiBAQCAtNTEsMTIgKzUxLDYgQEAgbW9kdWxlX3BhcmFtX2FycmF5KHB0cl9zaXplLCBpbnQs IE5VTEwsIDA0NDQpOwo+Pj4gICBNT0RVTEVfUEFSTV9ERVNDKHB0cl9zaXplLAo+Pj4gICAgICAg IlBvaW50aW5nIGRldmljZSB3aWR0aCwgaGVpZ2h0IGluIHBpeGVscyAoZGVmYXVsdCA4MDAsNjAw KSIpOwo+Pj4gICAtZW51bSB7IEtQQVJBTV9NVF9YLCBLUEFSQU1fTVRfWSwgS1BBUkFNX01UX0NO VCB9Owo+Pj4gLXN0YXRpYyBpbnQgbXRvdWNoX3NpemVbS1BBUkFNX01UX0NOVF0gPSB7IFhFTkZC X1dJRFRILCBYRU5GQl9IRUlHSFQgfTsKPj4+IC1tb2R1bGVfcGFyYW1fYXJyYXkobXRvdWNoX3Np emUsIGludCwgTlVMTCwgMDQ0NCk7Cj4+PiAtTU9EVUxFX1BBUk1fREVTQyhwdHJfc2l6ZSwKPj4+ IC0gICAgIk11bHRpLXRvdWNoIGRldmljZSB3aWR0aCwgaGVpZ2h0IGluIHBpeGVscyAoZGVmYXVs dCA4MDAsNjAwKSIpOwo+Pj4gLQo+Pj4gICBzdGF0aWMgaW50IHhlbmtiZF9yZW1vdmUoc3RydWN0 IHhlbmJ1c19kZXZpY2UgKik7Cj4+PiAgIHN0YXRpYyBpbnQgeGVua2JkX2Nvbm5lY3RfYmFja2Vu ZChzdHJ1Y3QgeGVuYnVzX2RldmljZSAqLCBzdHJ1Y3QgCj4+PiB4ZW5rYmRfaW5mbyAqKTsKPj4+ ICAgc3RhdGljIHZvaWQgeGVua2JkX2Rpc2Nvbm5lY3RfYmFja2VuZChzdHJ1Y3QgeGVua2JkX2lu Zm8gKik7Cj4+PiBAQCAtMTE0LDggKzEwOCw4IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBpbnB1dF9o YW5kbGVyKGludCBycSwgdm9pZCAKPj4+ICpkZXZfaWQpCj4+PiAgICAgICAgICAgICAgIGRldiA9 IGluZm8tPm10b3VjaDsKPj4+ICAgICAgICAgICAgICAgaWYgKHVubGlrZWx5KCFkZXYpKQo+Pj4g ICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4+PiAtICAgICAgICAgICAgaWYgKHVubGlrZWx5KGV2 ZW50LT5tdG91Y2guY29udGFjdF9pZCAhPQo+Pj4gLSAgICAgICAgICAgICAgICAgICAgaW5mby0+ bXRvdWNoX2N1cl9jb250YWN0X2lkKSkgewo+Pj4gKyAgICAgICAgICAgIGlmIChldmVudC0+bXRv dWNoLmNvbnRhY3RfaWQgIT0KPj4+ICsgICAgICAgICAgICAgICAgICAgIGluZm8tPm10b3VjaF9j dXJfY29udGFjdF9pZCkgewo+Pj4gICAgICAgICAgICAgICAgICAgaW5mby0+bXRvdWNoX2N1cl9j b250YWN0X2lkID0KPj4+ICAgICAgICAgICAgICAgICAgICAgICBldmVudC0+bXRvdWNoLmNvbnRh Y3RfaWQ7Cj4+PiAgICAgICAgICAgICAgICAgICBpbnB1dF9tdF9zbG90KGRldiwgZXZlbnQtPm10 b3VjaC5jb250YWN0X2lkKTsKPj4+IEBAIC0zMjcsMTAgKzMyMSwxNSBAQCBzdGF0aWMgaW50IHhl bmtiZF9wcm9iZShzdHJ1Y3QgeGVuYnVzX2RldmljZSAKPj4+ICpkZXYsCj4+PiAgICAgICAgICAg aW5wdXRfc2V0X2Fic19wYXJhbXMobXRvdWNoLCBBQlNfTVRfUFJFU1NVUkUsCj4+PiAgICAgICAg ICAgICAgICAgICAgICAgIDAsIDI1NSwgMCwgMCk7Cj4+PiAgIC0gICAgICAgIGlucHV0X210X2lu aXRfc2xvdHMobXRvdWNoLCBudW1fY29udCwgMCk7Cj4+PiArICAgICAgICByZXQgPSBpbnB1dF9t dF9pbml0X3Nsb3RzKG10b3VjaCwgbnVtX2NvbnQsCj4+PiArICAgICAgICAgICAgICAgIElOUFVU X01UX0RJUkVDVCB8IElOUFVUX01UX0RST1BfVU5VU0VEKTsKPj4+ICsgICAgICAgIGlmIChyZXQp IHsKPj4+ICsgICAgICAgICAgICBpbnB1dF9mcmVlX2RldmljZShtdG91Y2gpOwo+Pj4gKyAgICAg ICAgICAgIHhlbmJ1c19kZXZfZmF0YWwoaW5mby0+eGJkZXYsIHJldCwKPj4+ICsgICAgICAgICAg ICAgICAgICAgICAiaW5wdXRfbXRfaW5pdF9zbG90cyIpOwo+Pj4gKyAgICAgICAgICAgIGdvdG8g ZXJyb3I7Cj4+PiArICAgICAgICB9Cj4+PiAgIC0gICAgICAgIG10b3VjaF9zaXplW0tQQVJBTV9N VF9YXSA9IHdpZHRoOwo+Pj4gLSAgICAgICAgbXRvdWNoX3NpemVbS1BBUkFNX01UX1ldID0gaGVp Z2h0Owo+Pj4gICAgICAgICAgIGluZm8tPm10b3VjaF9jdXJfY29udGFjdF9pZCA9IC0xOwo+Pj4g ICAgICAgICAgICAgcmV0ID0gaW5wdXRfcmVnaXN0ZXJfZGV2aWNlKG10b3VjaCk7Cj4+PiAtLSAK Pj4+IDIuNy40Cj4+Pgo+Pgo+IFRoYW5rIHlvdSwKPiBPbGVrc2FuZHIKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK