From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bjorn Helgaas Subject: Re: [PATCH v1] ACPI: Switch to use generic UUID API Date: Thu, 4 May 2017 08:51:28 -0500 Message-ID: References: <20170504092151.88646-1-andriy.shevchenko@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170504092151.88646-1-andriy.shevchenko@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Andy Shevchenko Cc: alsa-devel , Heikki Krogerus , Liam Girdwood , "linux-pci@vger.kernel.org" , Amir Goldstein , Jarkko Sakkinen , Adrian Hunter , Benjamin Tissoires , Joerg Roedel , "linux-acpi@vger.kernel.org" , tpmdd-devel@lists.sourceforge.net, Ben Skeggs , "nouveau@lists.freedesktop.org" , linux-mmc , Zhang Rui , Borislav Petkov , Yisen Zhuang , Mathias Nyman , intel-gfx , "linux-input@vger.kernel.org" List-Id: tpmdd-devel@lists.sourceforge.net T24gVGh1LCBNYXkgNCwgMjAxNyBhdCA0OjIxIEFNLCBBbmR5IFNoZXZjaGVua28KPGFuZHJpeS5z aGV2Y2hlbmtvQGxpbnV4LmludGVsLmNvbT4gd3JvdGU6Cj4gYWNwaV9ldmFsdWF0ZV9kc20oKSBh bmQgZnJpZW5kcyB0YWtlIGEgcG9pbnRlciB0byBhIHJhdyBidWZmZXIgb2YgMTYKPiBieXRlcy4g SW5zdGVhZCB3ZSBjb252ZXJ0IHRoZW0gdG8gdXNlIHV1aWRfbGUgdHlwZS4gQXQgdGhlIHNhbWUg dGltZSB3ZQo+IGNvbnZlcnQgY3VycmVudCB1c2Vycy4KPgo+IGFjcGlfc3RyX3RvX3V1aWQoKSBi ZWNvbWVzIHVzZWxlc3MgYWZ0ZXIgdGhlIGNvbnZlcnNpb24gYW5kIGl0J3Mgc2FmZSB0bwo+IGdl dCByaWQgb2YgaXQuCj4KPiBUaGUgY29udmVyc2lvbiBmaXhlcyBhIHBvdGVudGlhbCBidWcgaW4g aW50MzQweF90aGVybWFsIGFzIHdlbGwgc2luY2UKPiB3ZSBoYXZlIHRvIHVzZSBtZW1jbXAoKSBv biBiaW5hcnkgZGF0YS4KPgo+IENjOiBSYWZhZWwgSi4gV3lzb2NraSA8cmp3QHJqd3lzb2NraS5u ZXQ+Cj4gQ2M6IE1pa2EgV2VzdGVyYmVyZyA8bWlrYS53ZXN0ZXJiZXJnQGxpbnV4LmludGVsLmNv bT4KPiBDYzogQm9yaXNsYXYgUGV0a292IDxicEBzdXNlLmRlPgo+IENjOiBEYW4gV2lsbGlhbXMg PGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4KPiBDYzogQW1pciBHb2xkc3RlaW4gPGFtaXI3M2ls QGdtYWlsLmNvbT4KPiBDYzogSmFya2tvIFNha2tpbmVuIDxqYXJra28uc2Fra2luZW5AbGludXgu aW50ZWwuY29tPgo+IENjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29t Pgo+IENjOiBCZW4gU2tlZ2dzIDxic2tlZ2dzQHJlZGhhdC5jb20+Cj4gQ2M6IEJlbmphbWluIFRp c3NvaXJlcyA8YmVuamFtaW4udGlzc29pcmVzQHJlZGhhdC5jb20+Cj4gQ2M6IEpvZXJnIFJvZWRl bCA8am9yb0A4Ynl0ZXMub3JnPgo+IENjOiBBZHJpYW4gSHVudGVyIDxhZHJpYW4uaHVudGVyQGlu dGVsLmNvbT4KPiBDYzogWWlzZW4gWmh1YW5nIDx5aXNlbi56aHVhbmdAaHVhd2VpLmNvbT4KPiBD YzogQmpvcm4gSGVsZ2FhcyA8YmhlbGdhYXNAZ29vZ2xlLmNvbT4KPiBDYzogWmhhbmcgUnVpIDxy dWkuemhhbmdAaW50ZWwuY29tPgo+IENjOiBGZWxpcGUgQmFsYmkgPGJhbGJpQGtlcm5lbC5vcmc+ Cj4gQ2M6IE1hdGhpYXMgTnltYW4gPG1hdGhpYXMubnltYW5AaW50ZWwuY29tPgo+IENjOiBIZWlr a2kgS3JvZ2VydXMgPGhlaWtraS5rcm9nZXJ1c0BsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IExpYW0g R2lyZHdvb2QgPGxnaXJkd29vZEBnbWFpbC5jb20+Cj4gQ2M6IE1hcmsgQnJvd24gPGJyb29uaWVA a2VybmVsLm9yZz4KPiBTaWduZWQtb2ZmLWJ5OiBBbmR5IFNoZXZjaGVua28gPGFuZHJpeS5zaGV2 Y2hlbmtvQGxpbnV4LmludGVsLmNvbT4KCkZvciB0aGUgZHJpdmVycy9wY2kgcGFydHM6CgpBY2tl ZC1ieTogQmpvcm4gSGVsZ2FhcyA8YmhlbGdhYXNAZ29vZ2xlLmNvbT4KCj4gLS0tCj4gIGRyaXZl cnMvYWNwaS9hY3BpX2V4dGxvZy5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTAgKysrLS0t Cj4gIGRyaXZlcnMvYWNwaS9idXMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg MjkgKystLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2FjcGkvbmZpdC9jb3JlLmMgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IDQwICsrKysrKysrKysrLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9h Y3BpL25maXQvbmZpdC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMyArLQo+ICBkcml2 ZXJzL2FjcGkvdXRpbHMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstLQo+ ICBkcml2ZXJzL2NoYXIvdHBtL3RwbV9jcmIuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICA5 ICsrKy0tCj4gIGRyaXZlcnMvY2hhci90cG0vdHBtX3BwaS5jICAgICAgICAgICAgICAgICAgICAg ICAgIHwgMjAgKysrKystLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYWNwaS5j ICAgICAgICAgICAgICAgICAgfCAxNCArKystLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vbm91dmVh dS9ub3V2ZWF1X2FjcGkuYyAgICAgICAgICAgICB8IDIwICsrKysrLS0tLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L214bS9iYXNlLmMgICAgIHwgIDkgKysrLS0KPiAg ZHJpdmVycy9oaWQvaTJjLWhpZC9pMmMtaGlkLmMgICAgICAgICAgICAgICAgICAgICAgfCAgOSAr KystLQo+ICBkcml2ZXJzL2lvbW11L2RtYXIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDExICsrKy0tLQo+ICBkcml2ZXJzL21tYy9ob3N0L3NkaGNpLXBjaS1jb3JlLmMgICAgICAg ICAgICAgICAgICB8ICA5ICsrKy0tCj4gIGRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9o bnMvaG5zX2RzYWZfbWlzYy5jIHwgMTUgKysrKy0tLS0KPiAgZHJpdmVycy9wY2kvcGNpLWFjcGku YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMSArKystLS0KPiAgZHJpdmVycy9wY2kv cGNpLWxhYmVsLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLS0KPiAgZHJpdmVy cy90aGVybWFsL2ludDM0MHhfdGhlcm1hbC9pbnQzNDAwX3RoZXJtYWwuYyAgfCAgOCArKy0tLQo+ ICBkcml2ZXJzL3VzYi9kd2MzL2R3YzMtcGNpLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICA2 ICsrLS0KPiAgZHJpdmVycy91c2IvaG9zdC94aGNpLXBjaS5jICAgICAgICAgICAgICAgICAgICAg ICAgfCAgOSArKystLQo+ICBkcml2ZXJzL3VzYi9taXNjL3Vjc2kuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAyICstCj4gIGRyaXZlcnMvdXNiL3R5cGVjL3R5cGVjX3djb3ZlLmMgICAg ICAgICAgICAgICAgICAgIHwgIDQgKy0tCj4gIGluY2x1ZGUvYWNwaS9hY3BpX2J1cy5oICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDkgKystLS0KPiAgaW5jbHVkZS9saW51eC9hY3BpLmgg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLS0KPiAgaW5jbHVkZS9saW51eC9w Y2ktYWNwaS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQo+ICBzb3VuZC9zb2Mv aW50ZWwvc2t5bGFrZS9za2wtbmhsdC5jICAgICAgICAgICAgICAgICB8ICA3ICsrLS0KPiAgdG9v bHMvdGVzdGluZy9udmRpbW0vdGVzdC9pb21hcC5jICAgICAgICAgICAgICAgICAgfCAgMiArLQo+ ICB0b29scy90ZXN0aW5nL252ZGltbS90ZXN0L25maXQuYyAgICAgICAgICAgICAgICAgICB8ICAy ICstCj4gIDI3IGZpbGVzIGNoYW5nZWQsIDExNiBpbnNlcnRpb25zKCspLCAxNTYgZGVsZXRpb25z KC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2FjcGlfZXh0bG9nLmMgYi9kcml2ZXJz L2FjcGkvYWNwaV9leHRsb2cuYwo+IGluZGV4IDUwMmVhNGRjMjA4MC4uNjlkNjE0MGI2YWZhIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvYWNwaS9hY3BpX2V4dGxvZy5jCj4gKysrIGIvZHJpdmVycy9h Y3BpL2FjcGlfZXh0bG9nLmMKPiBAQCAtMTgyLDE3ICsxODIsMTcgQEAgc3RhdGljIGludCBleHRs b2dfcHJpbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQgbG9uZyB2YWwsCj4K PiAgc3RhdGljIGJvb2wgX19pbml0IGV4dGxvZ19nZXRfbDFhZGRyKHZvaWQpCj4gIHsKPiAtICAg ICAgIHU4IHV1aWRbMTZdOwo+ICsgICAgICAgdXVpZF9sZSB1dWlkOwo+ICAgICAgICAgYWNwaV9o YW5kbGUgaGFuZGxlOwo+ICAgICAgICAgdW5pb24gYWNwaV9vYmplY3QgKm9iajsKPgo+IC0gICAg ICAgYWNwaV9zdHJfdG9fdXVpZChleHRsb2dfZHNtX3V1aWQsIHV1aWQpOwo+IC0KPiArICAgICAg IGlmICh1dWlkX2xlX3RvX2JpbihleHRsb2dfZHNtX3V1aWQsICZ1dWlkKSkKPiArICAgICAgICAg ICAgICAgcmV0dXJuIGZhbHNlOwo+ICAgICAgICAgaWYgKEFDUElfRkFJTFVSRShhY3BpX2dldF9o YW5kbGUoTlVMTCwgIlxcX1NCIiwgJmhhbmRsZSkpKQo+ICAgICAgICAgICAgICAgICByZXR1cm4g ZmFsc2U7Cj4gLSAgICAgICBpZiAoIWFjcGlfY2hlY2tfZHNtKGhhbmRsZSwgdXVpZCwgRVhUTE9H X0RTTV9SRVYsIDEgPDwgRVhUTE9HX0ZOX0FERFIpKQo+ICsgICAgICAgaWYgKCFhY3BpX2NoZWNr X2RzbShoYW5kbGUsICZ1dWlkLCBFWFRMT0dfRFNNX1JFViwgMSA8PCBFWFRMT0dfRk5fQUREUikp Cj4gICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKPiAtICAgICAgIG9iaiA9IGFjcGlfZXZh bHVhdGVfZHNtX3R5cGVkKGhhbmRsZSwgdXVpZCwgRVhUTE9HX0RTTV9SRVYsCj4gKyAgICAgICBv YmogPSBhY3BpX2V2YWx1YXRlX2RzbV90eXBlZChoYW5kbGUsICZ1dWlkLCBFWFRMT0dfRFNNX1JF ViwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYVExPR19GTl9BRERS LCBOVUxMLCBBQ1BJX1RZUEVfSU5URUdFUik7Cj4gICAgICAgICBpZiAoIW9iaikgewo+ICAgICAg ICAgICAgICAgICByZXR1cm4gZmFsc2U7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9idXMu YyBiL2RyaXZlcnMvYWNwaS9idXMuYwo+IGluZGV4IDc4NGJkYTY2M2QxNi4uZTgxMzBhNDg3M2U5 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvYWNwaS9idXMuYwo+ICsrKyBiL2RyaXZlcnMvYWNwaS9i dXMuYwo+IEBAIC0xOTYsNDIgKzE5NiwxOSBAQCBzdGF0aWMgdm9pZCBhY3BpX3ByaW50X29zY19l cnJvcihhY3BpX2hhbmRsZSBoYW5kbGUsCj4gICAgICAgICBwcl9kZWJ1ZygiXG4iKTsKPiAgfQo+ Cj4gLWFjcGlfc3RhdHVzIGFjcGlfc3RyX3RvX3V1aWQoY2hhciAqc3RyLCB1OCAqdXVpZCkKPiAt ewo+IC0gICAgICAgaW50IGk7Cj4gLSAgICAgICBzdGF0aWMgaW50IG9wY19tYXBfdG9fdXVpZFsx Nl0gPSB7NiwgNCwgMiwgMCwgMTEsIDksIDE2LCAxNCwgMTksIDIxLAo+IC0gICAgICAgICAgICAg ICAyNCwgMjYsIDI4LCAzMCwgMzIsIDM0fTsKPiAtCj4gLSAgICAgICBpZiAoc3RybGVuKHN0cikg IT0gMzYpCj4gLSAgICAgICAgICAgICAgIHJldHVybiBBRV9CQURfUEFSQU1FVEVSOwo+IC0gICAg ICAgZm9yIChpID0gMDsgaSA8IDM2OyBpKyspIHsKPiAtICAgICAgICAgICAgICAgaWYgKGkgPT0g OCB8fCBpID09IDEzIHx8IGkgPT0gMTggfHwgaSA9PSAyMykgewo+IC0gICAgICAgICAgICAgICAg ICAgICAgIGlmIChzdHJbaV0gIT0gJy0nKQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIEFFX0JBRF9QQVJBTUVURVI7Cj4gLSAgICAgICAgICAgICAgIH0gZWxzZSBpZiAo IWlzeGRpZ2l0KHN0cltpXSkpCj4gLSAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFFX0JB RF9QQVJBTUVURVI7Cj4gLSAgICAgICB9Cj4gLSAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTY7IGkr Kykgewo+IC0gICAgICAgICAgICAgICB1dWlkW2ldID0gaGV4X3RvX2JpbihzdHJbb3BjX21hcF90 b191dWlkW2ldXSkgPDwgNDsKPiAtICAgICAgICAgICAgICAgdXVpZFtpXSB8PSBoZXhfdG9fYmlu KHN0cltvcGNfbWFwX3RvX3V1aWRbaV0gKyAxXSk7Cj4gLSAgICAgICB9Cj4gLSAgICAgICByZXR1 cm4gQUVfT0s7Cj4gLX0KPiAtRVhQT1JUX1NZTUJPTF9HUEwoYWNwaV9zdHJfdG9fdXVpZCk7Cj4g LQo+ICBhY3BpX3N0YXR1cyBhY3BpX3J1bl9vc2MoYWNwaV9oYW5kbGUgaGFuZGxlLCBzdHJ1Y3Qg YWNwaV9vc2NfY29udGV4dCAqY29udGV4dCkKPiAgewo+ICAgICAgICAgYWNwaV9zdGF0dXMgc3Rh dHVzOwo+ICAgICAgICAgc3RydWN0IGFjcGlfb2JqZWN0X2xpc3QgaW5wdXQ7Cj4gICAgICAgICB1 bmlvbiBhY3BpX29iamVjdCBpbl9wYXJhbXNbNF07Cj4gICAgICAgICB1bmlvbiBhY3BpX29iamVj dCAqb3V0X29iajsKPiAtICAgICAgIHU4IHV1aWRbMTZdOwo+ICsgICAgICAgdXVpZF9sZSB1dWlk Owo+ICAgICAgICAgdTMyIGVycm9yczsKPiAgICAgICAgIHN0cnVjdCBhY3BpX2J1ZmZlciBvdXRw dXQgPSB7QUNQSV9BTExPQ0FURV9CVUZGRVIsIE5VTEx9Owo+Cj4gICAgICAgICBpZiAoIWNvbnRl eHQpCj4gICAgICAgICAgICAgICAgIHJldHVybiBBRV9FUlJPUjsKPiAtICAgICAgIGlmIChBQ1BJ X0ZBSUxVUkUoYWNwaV9zdHJfdG9fdXVpZChjb250ZXh0LT51dWlkX3N0ciwgdXVpZCkpKQo+ICsg ICAgICAgaWYgKHV1aWRfbGVfdG9fYmluKGNvbnRleHQtPnV1aWRfc3RyLCAmdXVpZCkpCj4gICAg ICAgICAgICAgICAgIHJldHVybiBBRV9FUlJPUjsKPiAgICAgICAgIGNvbnRleHQtPnJldC5sZW5n dGggPSBBQ1BJX0FMTE9DQVRFX0JVRkZFUjsKPiAgICAgICAgIGNvbnRleHQtPnJldC5wb2ludGVy ID0gTlVMTDsKPiBAQCAtMjQxLDcgKzIxOCw3IEBAIGFjcGlfc3RhdHVzIGFjcGlfcnVuX29zYyhh Y3BpX2hhbmRsZSBoYW5kbGUsIHN0cnVjdCBhY3BpX29zY19jb250ZXh0ICpjb250ZXh0KQo+ICAg ICAgICAgaW5wdXQucG9pbnRlciA9IGluX3BhcmFtczsKPiAgICAgICAgIGluX3BhcmFtc1swXS50 eXBlICAgICAgICAgICAgICAgPSBBQ1BJX1RZUEVfQlVGRkVSOwo+ICAgICAgICAgaW5fcGFyYW1z WzBdLmJ1ZmZlci5sZW5ndGggICAgICA9IDE2Owo+IC0gICAgICAgaW5fcGFyYW1zWzBdLmJ1ZmZl ci5wb2ludGVyICAgICA9IHV1aWQ7Cj4gKyAgICAgICBpbl9wYXJhbXNbMF0uYnVmZmVyLnBvaW50 ZXIgICAgID0gKHU4ICopJnV1aWQ7Cj4gICAgICAgICBpbl9wYXJhbXNbMV0udHlwZSAgICAgICAg ICAgICAgID0gQUNQSV9UWVBFX0lOVEVHRVI7Cj4gICAgICAgICBpbl9wYXJhbXNbMV0uaW50ZWdl ci52YWx1ZSAgICAgID0gY29udGV4dC0+cmV2Owo+ICAgICAgICAgaW5fcGFyYW1zWzJdLnR5cGUg ICAgICAgICAgICAgICA9IEFDUElfVFlQRV9JTlRFR0VSOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2FjcGkvbmZpdC9jb3JlLmMgYi9kcml2ZXJzL2FjcGkvbmZpdC9jb3JlLmMKPiBpbmRleCAwZjc5 ODJhMWNhYWYuLmJkM2U0NWVkZTA1NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2FjcGkvbmZpdC9j b3JlLmMKPiArKysgYi9kcml2ZXJzL2FjcGkvbmZpdC9jb3JlLmMKPiBAQCAtNzQsMTEgKzc0LDEx IEBAIHN0cnVjdCBuZml0X3RhYmxlX3ByZXYgewo+ICAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBm bHVzaGVzOwo+ICB9Owo+Cj4gLXN0YXRpYyB1OCBuZml0X3V1aWRbTkZJVF9VVUlEX01BWF1bMTZd Owo+ICtzdGF0aWMgdXVpZF9sZSBuZml0X3V1aWRbTkZJVF9VVUlEX01BWF07Cj4KPiAtY29uc3Qg dTggKnRvX25maXRfdXVpZChlbnVtIG5maXRfdXVpZHMgaWQpCj4gK2NvbnN0IHV1aWRfbGUgKnRv X25maXRfdXVpZChlbnVtIG5maXRfdXVpZHMgaWQpCj4gIHsKPiAtICAgICAgIHJldHVybiBuZml0 X3V1aWRbaWRdOwo+ICsgICAgICAgcmV0dXJuICZuZml0X3V1aWRbaWRdOwo+ICB9Cj4gIEVYUE9S VF9TWU1CT0wodG9fbmZpdF91dWlkKTsKPgo+IEBAIC0yMDcsNyArMjA3LDcgQEAgaW50IGFjcGlf bmZpdF9jdGwoc3RydWN0IG52ZGltbV9idXNfZGVzY3JpcHRvciAqbmRfZGVzYywgc3RydWN0IG52 ZGltbSAqbnZkaW1tLAo+ICAgICAgICAgdTMyIG9mZnNldCwgZndfc3RhdHVzID0gMDsKPiAgICAg ICAgIGFjcGlfaGFuZGxlIGhhbmRsZTsKPiAgICAgICAgIHVuc2lnbmVkIGludCBmdW5jOwo+IC0g ICAgICAgY29uc3QgdTggKnV1aWQ7Cj4gKyAgICAgICBjb25zdCB1dWlkX2xlICp1dWlkOwo+ICAg ICAgICAgaW50IHJjLCBpOwo+Cj4gICAgICAgICBmdW5jID0gY21kOwo+IEBAIC0zOTQsNyArMzk0 LDcgQEAgaW50IG5maXRfc3BhX3R5cGUoc3RydWN0IGFjcGlfbmZpdF9zeXN0ZW1fYWRkcmVzcyAq c3BhKQo+ICAgICAgICAgaW50IGk7Cj4KPiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBORklUX1VV SURfTUFYOyBpKyspCj4gLSAgICAgICAgICAgICAgIGlmIChtZW1jbXAodG9fbmZpdF91dWlkKGkp LCBzcGEtPnJhbmdlX2d1aWQsIDE2KSA9PSAwKQo+ICsgICAgICAgICAgICAgICBpZiAoIXV1aWRf bGVfY21wX3BwKHRvX25maXRfdXVpZChpKSwgKHV1aWRfbGUgKilzcGEtPnJhbmdlX2d1aWQpKQo+ ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpOwo+ICAgICAgICAgcmV0dXJuIC0xOwo+ ICB9Cj4gQEAgLTE0MDAsNyArMTQwMCw3IEBAIHN0YXRpYyBpbnQgYWNwaV9uZml0X2FkZF9kaW1t KHN0cnVjdCBhY3BpX25maXRfZGVzYyAqYWNwaV9kZXNjLAo+ICAgICAgICAgc3RydWN0IGFjcGlf ZGV2aWNlICphZGV2LCAqYWRldl9kaW1tOwo+ICAgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0g YWNwaV9kZXNjLT5kZXY7Cj4gICAgICAgICB1bnNpZ25lZCBsb25nIGRzbV9tYXNrOwo+IC0gICAg ICAgY29uc3QgdTggKnV1aWQ7Cj4gKyAgICAgICBjb25zdCB1dWlkX2xlICp1dWlkID0gdG9fbmZp dF91dWlkKE5GSVRfREVWX0RJTU0pOwo+ICAgICAgICAgaW50IGk7Cj4gICAgICAgICBpbnQgZmFt aWx5ID0gLTE7Cj4KPiBAQCAtMTU5Niw3ICsxNTk2LDcgQEAgc3RhdGljIGludCBhY3BpX25maXRf cmVnaXN0ZXJfZGltbXMoc3RydWN0IGFjcGlfbmZpdF9kZXNjICphY3BpX2Rlc2MpCj4gIHN0YXRp YyB2b2lkIGFjcGlfbmZpdF9pbml0X2RzbXMoc3RydWN0IGFjcGlfbmZpdF9kZXNjICphY3BpX2Rl c2MpCj4gIHsKPiAgICAgICAgIHN0cnVjdCBudmRpbW1fYnVzX2Rlc2NyaXB0b3IgKm5kX2Rlc2Mg PSAmYWNwaV9kZXNjLT5uZF9kZXNjOwo+IC0gICAgICAgY29uc3QgdTggKnV1aWQgPSB0b19uZml0 X3V1aWQoTkZJVF9ERVZfQlVTKTsKPiArICAgICAgIGNvbnN0IHV1aWRfbGUgKnV1aWQgPSB0b19u Zml0X3V1aWQoTkZJVF9ERVZfQlVTKTsKPiAgICAgICAgIHN0cnVjdCBhY3BpX2RldmljZSAqYWRl djsKPiAgICAgICAgIGludCBpOwo+Cj4gQEAgLTMwMzYsMTkgKzMwMzYsMTkgQEAgc3RhdGljIF9f aW5pdCBpbnQgbmZpdF9pbml0KHZvaWQpCj4gICAgICAgICBCVUlMRF9CVUdfT04oc2l6ZW9mKHN0 cnVjdCBhY3BpX25maXRfY29udHJvbF9yZWdpb24pICE9IDgwKTsKPiAgICAgICAgIEJVSUxEX0JV R19PTihzaXplb2Yoc3RydWN0IGFjcGlfbmZpdF9kYXRhX3JlZ2lvbikgIT0gNDApOwo+Cj4gLSAg ICAgICBhY3BpX3N0cl90b191dWlkKFVVSURfVk9MQVRJTEVfTUVNT1JZLCBuZml0X3V1aWRbTkZJ VF9TUEFfVk9MQVRJTEVdKTsKPiAtICAgICAgIGFjcGlfc3RyX3RvX3V1aWQoVVVJRF9QRVJTSVNU RU5UX01FTU9SWSwgbmZpdF91dWlkW05GSVRfU1BBX1BNXSk7Cj4gLSAgICAgICBhY3BpX3N0cl90 b191dWlkKFVVSURfQ09OVFJPTF9SRUdJT04sIG5maXRfdXVpZFtORklUX1NQQV9EQ1JdKTsKPiAt ICAgICAgIGFjcGlfc3RyX3RvX3V1aWQoVVVJRF9EQVRBX1JFR0lPTiwgbmZpdF91dWlkW05GSVRf U1BBX0JEV10pOwo+IC0gICAgICAgYWNwaV9zdHJfdG9fdXVpZChVVUlEX1ZPTEFUSUxFX1ZJUlRV QUxfRElTSywgbmZpdF91dWlkW05GSVRfU1BBX1ZESVNLXSk7Cj4gLSAgICAgICBhY3BpX3N0cl90 b191dWlkKFVVSURfVk9MQVRJTEVfVklSVFVBTF9DRCwgbmZpdF91dWlkW05GSVRfU1BBX1ZDRF0p Owo+IC0gICAgICAgYWNwaV9zdHJfdG9fdXVpZChVVUlEX1BFUlNJU1RFTlRfVklSVFVBTF9ESVNL LCBuZml0X3V1aWRbTkZJVF9TUEFfUERJU0tdKTsKPiAtICAgICAgIGFjcGlfc3RyX3RvX3V1aWQo VVVJRF9QRVJTSVNURU5UX1ZJUlRVQUxfQ0QsIG5maXRfdXVpZFtORklUX1NQQV9QQ0RdKTsKPiAt ICAgICAgIGFjcGlfc3RyX3RvX3V1aWQoVVVJRF9ORklUX0JVUywgbmZpdF91dWlkW05GSVRfREVW X0JVU10pOwo+IC0gICAgICAgYWNwaV9zdHJfdG9fdXVpZChVVUlEX05GSVRfRElNTSwgbmZpdF91 dWlkW05GSVRfREVWX0RJTU1dKTsKPiAtICAgICAgIGFjcGlfc3RyX3RvX3V1aWQoVVVJRF9ORklU X0RJTU1fTl9IUEUxLCBuZml0X3V1aWRbTkZJVF9ERVZfRElNTV9OX0hQRTFdKTsKPiAtICAgICAg IGFjcGlfc3RyX3RvX3V1aWQoVVVJRF9ORklUX0RJTU1fTl9IUEUyLCBuZml0X3V1aWRbTkZJVF9E RVZfRElNTV9OX0hQRTJdKTsKPiAtICAgICAgIGFjcGlfc3RyX3RvX3V1aWQoVVVJRF9ORklUX0RJ TU1fTl9NU0ZULCBuZml0X3V1aWRbTkZJVF9ERVZfRElNTV9OX01TRlRdKTsKPiArICAgICAgIHV1 aWRfbGVfdG9fYmluKFVVSURfVk9MQVRJTEVfTUVNT1JZLCAmbmZpdF91dWlkW05GSVRfU1BBX1ZP TEFUSUxFXSk7Cj4gKyAgICAgICB1dWlkX2xlX3RvX2JpbihVVUlEX1BFUlNJU1RFTlRfTUVNT1JZ LCAmbmZpdF91dWlkW05GSVRfU1BBX1BNXSk7Cj4gKyAgICAgICB1dWlkX2xlX3RvX2JpbihVVUlE X0NPTlRST0xfUkVHSU9OLCAmbmZpdF91dWlkW05GSVRfU1BBX0RDUl0pOwo+ICsgICAgICAgdXVp ZF9sZV90b19iaW4oVVVJRF9EQVRBX1JFR0lPTiwgJm5maXRfdXVpZFtORklUX1NQQV9CRFddKTsK PiArICAgICAgIHV1aWRfbGVfdG9fYmluKFVVSURfVk9MQVRJTEVfVklSVFVBTF9ESVNLLCAmbmZp dF91dWlkW05GSVRfU1BBX1ZESVNLXSk7Cj4gKyAgICAgICB1dWlkX2xlX3RvX2JpbihVVUlEX1ZP TEFUSUxFX1ZJUlRVQUxfQ0QsICZuZml0X3V1aWRbTkZJVF9TUEFfVkNEXSk7Cj4gKyAgICAgICB1 dWlkX2xlX3RvX2JpbihVVUlEX1BFUlNJU1RFTlRfVklSVFVBTF9ESVNLLCAmbmZpdF91dWlkW05G SVRfU1BBX1BESVNLXSk7Cj4gKyAgICAgICB1dWlkX2xlX3RvX2JpbihVVUlEX1BFUlNJU1RFTlRf VklSVFVBTF9DRCwgJm5maXRfdXVpZFtORklUX1NQQV9QQ0RdKTsKPiArICAgICAgIHV1aWRfbGVf dG9fYmluKFVVSURfTkZJVF9CVVMsICZuZml0X3V1aWRbTkZJVF9ERVZfQlVTXSk7Cj4gKyAgICAg ICB1dWlkX2xlX3RvX2JpbihVVUlEX05GSVRfRElNTSwgJm5maXRfdXVpZFtORklUX0RFVl9ESU1N XSk7Cj4gKyAgICAgICB1dWlkX2xlX3RvX2JpbihVVUlEX05GSVRfRElNTV9OX0hQRTEsICZuZml0 X3V1aWRbTkZJVF9ERVZfRElNTV9OX0hQRTFdKTsKPiArICAgICAgIHV1aWRfbGVfdG9fYmluKFVV SURfTkZJVF9ESU1NX05fSFBFMiwgJm5maXRfdXVpZFtORklUX0RFVl9ESU1NX05fSFBFMl0pOwo+ ICsgICAgICAgdXVpZF9sZV90b19iaW4oVVVJRF9ORklUX0RJTU1fTl9NU0ZULCAmbmZpdF91dWlk W05GSVRfREVWX0RJTU1fTl9NU0ZUXSk7Cj4KPiAgICAgICAgIG5maXRfd3EgPSBjcmVhdGVfc2lu Z2xldGhyZWFkX3dvcmtxdWV1ZSgibmZpdCIpOwo+ICAgICAgICAgaWYgKCFuZml0X3dxKQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvbmZpdC9uZml0LmggYi9kcml2ZXJzL2FjcGkvbmZpdC9u Zml0LmgKPiBpbmRleCA1OGZiN2Q2OGUwNGEuLjJmMjMzYjI4NzA5ZiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2FjcGkvbmZpdC9uZml0LmgKPiArKysgYi9kcml2ZXJzL2FjcGkvbmZpdC9uZml0LmgK PiBAQCAtMTgsNyArMTgsNiBAQAo+ICAjaW5jbHVkZSA8bGludXgvbGlibnZkaW1tLmg+Cj4gICNp bmNsdWRlIDxsaW51eC9uZGN0bC5oPgo+ICAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KPiAtI2lu Y2x1ZGUgPGxpbnV4L3V1aWQuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KPiAgI2luY2x1 ZGUgPGFjcGkvYWN1dWlkLmg+Cj4KPiBAQCAtMjM3LDcgKzIzNiw3IEBAIHN0YXRpYyBpbmxpbmUg c3RydWN0IGFjcGlfbmZpdF9kZXNjICp0b19hY3BpX2Rlc2MoCj4gICAgICAgICByZXR1cm4gY29u dGFpbmVyX29mKG5kX2Rlc2MsIHN0cnVjdCBhY3BpX25maXRfZGVzYywgbmRfZGVzYyk7Cj4gIH0K Pgo+IC1jb25zdCB1OCAqdG9fbmZpdF91dWlkKGVudW0gbmZpdF91dWlkcyBpZCk7Cj4gK2NvbnN0 IHV1aWRfbGUgKnRvX25maXRfdXVpZChlbnVtIG5maXRfdXVpZHMgaWQpOwo+ICBpbnQgYWNwaV9u Zml0X2luaXQoc3RydWN0IGFjcGlfbmZpdF9kZXNjICphY3BpX2Rlc2MsIHZvaWQgKm5maXQsIGFj cGlfc2l6ZSBzeik7Cj4gIHZvaWQgYWNwaV9uZml0X3NodXRkb3duKHZvaWQgKmRhdGEpOwo+ICB2 b2lkIF9fYWNwaV9uZml0X25vdGlmeShzdHJ1Y3QgZGV2aWNlICpkZXYsIGFjcGlfaGFuZGxlIGhh bmRsZSwgdTMyIGV2ZW50KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL3V0aWxzLmMgYi9k cml2ZXJzL2FjcGkvdXRpbHMuYwo+IGluZGV4IDI3ZDBkY2ZjZjQ3ZC4uYmJlOGE5NTBlNTA4IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvYWNwaS91dGlscy5jCj4gKysrIGIvZHJpdmVycy9hY3BpL3V0 aWxzLmMKPiBAQCAtNjI1LDcgKzYyNSw3IEBAIGFjcGlfc3RhdHVzIGFjcGlfZXZhbHVhdGVfbGNr KGFjcGlfaGFuZGxlIGhhbmRsZSwgaW50IGxvY2spCj4gICAqIHNvbWUgb2xkIEJJT1NlcyBkbyBl eHBlY3QgYSBidWZmZXIgb3IgYW4gaW50ZWdlciBldGMuCj4gICAqLwo+ICB1bmlvbiBhY3BpX29i amVjdCAqCj4gLWFjcGlfZXZhbHVhdGVfZHNtKGFjcGlfaGFuZGxlIGhhbmRsZSwgY29uc3QgdTgg KnV1aWQsIHU2NCByZXYsIHU2NCBmdW5jLAo+ICthY3BpX2V2YWx1YXRlX2RzbShhY3BpX2hhbmRs ZSBoYW5kbGUsIGNvbnN0IHV1aWRfbGUgKnV1aWQsIHU2NCByZXYsIHU2NCBmdW5jLAo+ICAgICAg ICAgICAgICAgICAgIHVuaW9uIGFjcGlfb2JqZWN0ICphcmd2NCkKPiAgewo+ICAgICAgICAgYWNw aV9zdGF0dXMgcmV0Owo+IEBAIC02NzQsNyArNjc0LDcgQEAgRVhQT1JUX1NZTUJPTChhY3BpX2V2 YWx1YXRlX2RzbSk7Cj4gICAqIGZ1bmN0aW9ucy4gQ3VycmVudGx5IG9ubHkgc3VwcG9ydCA2NCBm dW5jdGlvbnMgYXQgbWF4aW11bSwgc2hvdWxkIGJlCj4gICAqIGVub3VnaCBmb3Igbm93Lgo+ICAg Ki8KPiAtYm9vbCBhY3BpX2NoZWNrX2RzbShhY3BpX2hhbmRsZSBoYW5kbGUsIGNvbnN0IHU4ICp1 dWlkLCB1NjQgcmV2LCB1NjQgZnVuY3MpCj4gK2Jvb2wgYWNwaV9jaGVja19kc20oYWNwaV9oYW5k bGUgaGFuZGxlLCBjb25zdCB1dWlkX2xlICp1dWlkLCB1NjQgcmV2LCB1NjQgZnVuY3MpCj4gIHsK PiAgICAgICAgIGludCBpOwo+ICAgICAgICAgdTY0IG1hc2sgPSAwOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2NoYXIvdHBtL3RwbV9jcmIuYyBiL2RyaXZlcnMvY2hhci90cG0vdHBtX2NyYi5jCj4g aW5kZXggYjkxN2I5ZDVmNzEwLi5mNzg5ZjdlNWExN2QgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9j aGFyL3RwbS90cG1fY3JiLmMKPiArKysgYi9kcml2ZXJzL2NoYXIvdHBtL3RwbV9jcmIuYwo+IEBA IC0yNywxMCArMjcsOSBAQAo+Cj4gICNkZWZpbmUgQUNQSV9TSUdfVFBNMiAiVFBNMiIKPgo+IC1z dGF0aWMgY29uc3QgdTggQ1JCX0FDUElfU1RBUlRfVVVJRFtdID0gewo+IC0gICAgICAgLyogMDAw MCAqLyAweEFCLCAweDZDLCAweEJGLCAweDZCLCAweDYzLCAweDU0LCAweDE0LCAweDQ3LAo+IC0g ICAgICAgLyogMDAwOCAqLyAweEI3LCAweENELCAweEYwLCAweDIwLCAweDNDLCAweDAzLCAweDY4 LCAweEQ0Cj4gLX07Cj4gK3N0YXRpYyBjb25zdCB1dWlkX2xlIGNyYl9hY3BpX3N0YXJ0X3V1aWQg PQo+ICsgICAgICAgVVVJRF9MRSgweDZCQkY2Q0FCLCAweDU0NjMsIDB4NDcxNCwKPiArICAgICAg ICAgICAgICAgMHhCNywgMHhDRCwgMHhGMCwgMHgyMCwgMHgzQywgMHgwMywgMHg2OCwgMHhENCk7 Cj4KPiAgZW51bSBjcmJfZGVmYXVsdHMgewo+ICAgICAgICAgQ1JCX0FDUElfU1RBUlRfUkVWSVNJ T05fSUQgPSAxLAo+IEBAIC0yNjYsNyArMjY1LDcgQEAgc3RhdGljIGludCBjcmJfZG9fYWNwaV9z dGFydChzdHJ1Y3QgdHBtX2NoaXAgKmNoaXApCj4gICAgICAgICBpbnQgcmM7Cj4KPiAgICAgICAg IG9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtKGNoaXAtPmFjcGlfZGV2X2hhbmRsZSwKPiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIENSQl9BQ1BJX1NUQVJUX1VVSUQsCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmY3JiX2FjcGlfc3RhcnRfdXVpZCwKPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENSQl9BQ1BJX1NUQVJUX1JFVklTSU9OX0lELAo+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1JCX0FDUElfU1RBUlRfSU5ERVgsCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9j aGFyL3RwbS90cG1fcHBpLmMgYi9kcml2ZXJzL2NoYXIvdHBtL3RwbV9wcGkuYwo+IGluZGV4IDY5 MmEyYzZhZTAzNi4uN2NmNjgyNDI2MzYxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvY2hhci90cG0v dHBtX3BwaS5jCj4gKysrIGIvZHJpdmVycy9jaGFyL3RwbS90cG1fcHBpLmMKPiBAQCAtMzIsMjAg KzMyLDE2IEBACj4gICNkZWZpbmUgUFBJX1ZTX1JFUV9TVEFSVCAgICAgICAxMjgKPiAgI2RlZmlu ZSBQUElfVlNfUkVRX0VORCAgICAgICAgIDI1NQo+Cj4gLXN0YXRpYyBjb25zdCB1OCB0cG1fcHBp X3V1aWRbXSA9IHsKPiAtICAgICAgIDB4QTYsIDB4RkEsIDB4REQsIDB4M0QsCj4gLSAgICAgICAw eDFCLCAweDM2LAo+IC0gICAgICAgMHhCNCwgMHg0RSwKPiAtICAgICAgIDB4QTQsIDB4MjQsCj4g LSAgICAgICAweDhELCAweDEwLCAweDA4LCAweDlELCAweDE2LCAweDUzCj4gLX07Cj4gK3N0YXRp YyBjb25zdCB1dWlkX2xlIHRwbV9wcGlfdXVpZCA9Cj4gKyAgICAgICBVVUlEX0xFKDB4M0REREZB QTYsIDB4MzYxQiwgMHg0RUI0LAo+ICsgICAgICAgICAgICAgICAweEE0LCAweDI0LCAweDhELCAw eDEwLCAweDA4LCAweDlELCAweDE2LCAweDUzKTsKPgo+ICBzdGF0aWMgaW5saW5lIHVuaW9uIGFj cGlfb2JqZWN0ICoKPiAgdHBtX2V2YWxfZHNtKGFjcGlfaGFuZGxlIHBwaV9oYW5kbGUsIGludCBm dW5jLCBhY3BpX29iamVjdF90eXBlIHR5cGUsCj4gICAgICAgICAgICAgIHVuaW9uIGFjcGlfb2Jq ZWN0ICphcmd2NCkKPiAgewo+ICAgICAgICAgQlVHX09OKCFwcGlfaGFuZGxlKTsKPiAtICAgICAg IHJldHVybiBhY3BpX2V2YWx1YXRlX2RzbV90eXBlZChwcGlfaGFuZGxlLCB0cG1fcHBpX3V1aWQs Cj4gKyAgICAgICByZXR1cm4gYWNwaV9ldmFsdWF0ZV9kc21fdHlwZWQocHBpX2hhbmRsZSwgJnRw bV9wcGlfdXVpZCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUE1f UFBJX1JFVklTSU9OX0lELAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZ1bmMsIGFyZ3Y0LCB0eXBlKTsKPiAgfQo+IEBAIC0xMDcsNyArMTAzLDcgQEAgc3RhdGljIHNz aXplX3QgdHBtX3N0b3JlX3BwaV9yZXF1ZXN0KHN0cnVjdCBkZXZpY2UgKmRldiwKPiAgICAgICAg ICAqIGlzIHVwZGF0ZWQgd2l0aCBmdW5jdGlvbiBpbmRleCBmcm9tIFNVQlJFUSB0byBTVUJSRVEy IHNpbmNlIFBQSQo+ICAgICAgICAgICogdmVyc2lvbiAxLjEKPiAgICAgICAgICAqLwo+IC0gICAg ICAgaWYgKGFjcGlfY2hlY2tfZHNtKGNoaXAtPmFjcGlfZGV2X2hhbmRsZSwgdHBtX3BwaV91dWlk LAo+ICsgICAgICAgaWYgKGFjcGlfY2hlY2tfZHNtKGNoaXAtPmFjcGlfZGV2X2hhbmRsZSwgJnRw bV9wcGlfdXVpZCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUE1fUFBJX1JFVklTSU9O X0lELCAxIDw8IFRQTV9QUElfRk5fU1VCUkVRMikpCj4gICAgICAgICAgICAgICAgIGZ1bmMgPSBU UE1fUFBJX0ZOX1NVQlJFUTI7Cj4KPiBAQCAtMjY4LDcgKzI2NCw3IEBAIHN0YXRpYyBzc2l6ZV90 IHNob3dfcHBpX29wZXJhdGlvbnMoYWNwaV9oYW5kbGUgZGV2X2hhbmRsZSwgY2hhciAqYnVmLCB1 MzIgc3RhcnQsCj4gICAgICAgICAgICAgICAgICJVc2VyIG5vdCByZXF1aXJlZCIsCj4gICAgICAg ICB9Owo+Cj4gLSAgICAgICBpZiAoIWFjcGlfY2hlY2tfZHNtKGRldl9oYW5kbGUsIHRwbV9wcGlf dXVpZCwgVFBNX1BQSV9SRVZJU0lPTl9JRCwKPiArICAgICAgIGlmICghYWNwaV9jaGVja19kc20o ZGV2X2hhbmRsZSwgJnRwbV9wcGlfdXVpZCwgVFBNX1BQSV9SRVZJU0lPTl9JRCwKPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMSA8PCBUUE1fUFBJX0ZOX0dFVE9QUikpCj4gICAgICAgICAg ICAgICAgIHJldHVybiAtRVBFUk07Cj4KPiBAQCAtMzQxLDEyICszMzcsMTIgQEAgdm9pZCB0cG1f YWRkX3BwaShzdHJ1Y3QgdHBtX2NoaXAgKmNoaXApCj4gICAgICAgICBpZiAoIWNoaXAtPmFjcGlf ZGV2X2hhbmRsZSkKPiAgICAgICAgICAgICAgICAgcmV0dXJuOwo+Cj4gLSAgICAgICBpZiAoIWFj cGlfY2hlY2tfZHNtKGNoaXAtPmFjcGlfZGV2X2hhbmRsZSwgdHBtX3BwaV91dWlkLAo+ICsgICAg ICAgaWYgKCFhY3BpX2NoZWNrX2RzbShjaGlwLT5hY3BpX2Rldl9oYW5kbGUsICZ0cG1fcHBpX3V1 aWQsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRQTV9QUElfUkVWSVNJT05fSUQsIDEg PDwgVFBNX1BQSV9GTl9WRVJTSU9OKSkKPiAgICAgICAgICAgICAgICAgcmV0dXJuOwo+Cj4gICAg ICAgICAvKiBDYWNoZSBQUEkgdmVyc2lvbiBzdHJpbmcuICovCj4gLSAgICAgICBvYmogPSBhY3Bp X2V2YWx1YXRlX2RzbV90eXBlZChjaGlwLT5hY3BpX2Rldl9oYW5kbGUsIHRwbV9wcGlfdXVpZCwK PiArICAgICAgIG9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtX3R5cGVkKGNoaXAtPmFjcGlfZGV2X2hh bmRsZSwgJnRwbV9wcGlfdXVpZCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFRQTV9QUElfUkVWSVNJT05fSUQsIFRQTV9QUElfRk5fVkVSU0lPTiwKPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIEFDUElfVFlQRV9TVFJJTkcpOwo+ICAg ICAgICAgaWYgKG9iaikgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9hY3BpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hY3BpLmMKPiBpbmRleCBlYjYz OGExZTY5ZDIuLjcyYmZlNmNlYWRmOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9hY3BpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hY3BpLmMK PiBAQCAtMTUsMTMgKzE1LDkgQEAgc3RhdGljIHN0cnVjdCBpbnRlbF9kc21fcHJpdiB7Cj4gICAg ICAgICBhY3BpX2hhbmRsZSBkaGFuZGxlOwo+ICB9IGludGVsX2RzbV9wcml2Owo+Cj4gLXN0YXRp YyBjb25zdCB1OCBpbnRlbF9kc21fZ3VpZFtdID0gewo+IC0gICAgICAgMHhkMywgMHg3MywgMHhk OCwgMHg3ZSwKPiAtICAgICAgIDB4ZDAsIDB4YzIsCj4gLSAgICAgICAweDRmLCAweDRlLAo+IC0g ICAgICAgMHhhOCwgMHg1NCwKPiAtICAgICAgIDB4MGYsIDB4MTMsIDB4MTcsIDB4YjAsIDB4MWMs IDB4MmMKPiAtfTsKPiArc3RhdGljIGNvbnN0IHV1aWRfbGUgaW50ZWxfZHNtX2d1aWQgPQo+ICsg ICAgICAgVVVJRF9MRSgweDdlZDg3M2QzLCAweGMyZDAsIDB4NGU0ZiwKPiArICAgICAgICAgICAg ICAgMHhhOCwgMHg1NCwgMHgwZiwgMHgxMywgMHgxNywgMHhiMCwgMHgxYywgMHgyYyk7Cj4KPiAg c3RhdGljIGNoYXIgKmludGVsX2RzbV9wb3J0X25hbWUodTggaWQpCj4gIHsKPiBAQCAtODAsNyAr NzYsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc21fcGxhdGZvcm1fbXV4X2luZm8odm9pZCkKPiAg ICAgICAgIGludCBpOwo+ICAgICAgICAgdW5pb24gYWNwaV9vYmplY3QgKnBrZywgKmNvbm5lY3Rv cl9jb3VudDsKPgo+IC0gICAgICAgcGtnID0gYWNwaV9ldmFsdWF0ZV9kc21fdHlwZWQoaW50ZWxf ZHNtX3ByaXYuZGhhbmRsZSwgaW50ZWxfZHNtX2d1aWQsCj4gKyAgICAgICBwa2cgPSBhY3BpX2V2 YWx1YXRlX2RzbV90eXBlZChpbnRlbF9kc21fcHJpdi5kaGFuZGxlLCAmaW50ZWxfZHNtX2d1aWQs Cj4gICAgICAgICAgICAgICAgICAgICAgICAgSU5URUxfRFNNX1JFVklTSU9OX0lELCBJTlRFTF9E U01fRk5fUExBVEZPUk1fTVVYX0lORk8sCj4gICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwg QUNQSV9UWVBFX1BBQ0tBR0UpOwo+ICAgICAgICAgaWYgKCFwa2cpIHsKPiBAQCAtMTE4LDcgKzEx NCw3IEBAIHN0YXRpYyBib29sIGludGVsX2RzbV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBk ZXYpCj4gICAgICAgICBpZiAoIWRoYW5kbGUpCj4gICAgICAgICAgICAgICAgIHJldHVybiBmYWxz ZTsKPgo+IC0gICAgICAgaWYgKCFhY3BpX2NoZWNrX2RzbShkaGFuZGxlLCBpbnRlbF9kc21fZ3Vp ZCwgSU5URUxfRFNNX1JFVklTSU9OX0lELAo+ICsgICAgICAgaWYgKCFhY3BpX2NoZWNrX2RzbShk aGFuZGxlLCAmaW50ZWxfZHNtX2d1aWQsIElOVEVMX0RTTV9SRVZJU0lPTl9JRCwKPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMSA8PCBJTlRFTF9EU01fRk5fUExBVEZPUk1fTVVYX0lORk8p KSB7Cj4gICAgICAgICAgICAgICAgIERSTV9ERUJVR19LTVMoIm5vIF9EU00gbWV0aG9kIGZvciBp bnRlbCBkZXZpY2VcbiIpOwo+ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYWNwaS5jIGIvZHJpdmVycy9n cHUvZHJtL25vdXZlYXUvbm91dmVhdV9hY3BpLmMKPiBpbmRleCAzOTQ2OGMyMTgwMjcuLmZhZWEy MzI3NmQ0YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Fj cGkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYWNwaS5jCj4gQEAg LTYwLDE1ICs2MCwxMyBAQCBib29sIG5vdXZlYXVfaXNfdjFfZHNtKHZvaWQpIHsKPiAgfQo+Cj4g ICNpZmRlZiBDT05GSUdfVkdBX1NXSVRDSEVST08KPiAtc3RhdGljIGNvbnN0IGNoYXIgbm91dmVh dV9kc21fbXVpZFtdID0gewo+IC0gICAgICAgMHhBMCwgMHhBMCwgMHg5NSwgMHg5RCwgMHg2MCwg MHgwMCwgMHg0OCwgMHg0RCwKPiAtICAgICAgIDB4QjMsIDB4NEQsIDB4N0UsIDB4NUYsIDB4RUEs IDB4MTIsIDB4OUYsIDB4RDQsCj4gLX07Cj4gK3N0YXRpYyBjb25zdCB1dWlkX2xlIG5vdXZlYXVf ZHNtX211aWQgPQo+ICsgICAgICAgVVVJRF9MRSgweDlEOTVBMEEwLCAweDAwNjAsIDB4NEQ0OCwK PiArICAgICAgICAgICAgICAgMHhCMywgMHg0RCwgMHg3RSwgMHg1RiwgMHhFQSwgMHgxMiwgMHg5 RiwgMHhENCk7Cj4KPiAtc3RhdGljIGNvbnN0IGNoYXIgbm91dmVhdV9vcF9kc21fbXVpZFtdID0g ewo+IC0gICAgICAgMHhGOCwgMHhEOCwgMHg4NiwgMHhBNCwgMHhEQSwgMHgwQiwgMHgxQiwgMHg0 NywKPiAtICAgICAgIDB4QTcsIDB4MkIsIDB4NjAsIDB4NDIsIDB4QTYsIDB4QjUsIDB4QkUsIDB4 RTAsCj4gLX07Cj4gK3N0YXRpYyBjb25zdCB1dWlkX2xlIG5vdXZlYXVfb3BfZHNtX211aWQgPQo+ ICsgICAgICAgVVVJRF9MRSgweEE0ODZEOEY4LCAweDBCREEsIDB4NDcxQiwKPiArICAgICAgICAg ICAgICAgMHhBNywgMHgyQiwgMHg2MCwgMHg0MiwgMHhBNiwgMHhCNSwgMHhCRSwgMHhFMCk7Cj4K PiAgc3RhdGljIGludCBub3V2ZWF1X29wdGltdXNfZHNtKGFjcGlfaGFuZGxlIGhhbmRsZSwgaW50 IGZ1bmMsIGludCBhcmcsIHVpbnQzMl90ICpyZXN1bHQpCj4gIHsKPiBAQCAtODYsNyArODQsNyBA QCBzdGF0aWMgaW50IG5vdXZlYXVfb3B0aW11c19kc20oYWNwaV9oYW5kbGUgaGFuZGxlLCBpbnQg ZnVuYywgaW50IGFyZywgdWludDMyX3QgKgo+ICAgICAgICAgICAgICAgICBhcmdzX2J1ZmZbaV0g PSAoYXJnID4+IGkgKiA4KSAmIDB4RkY7Cj4KPiAgICAgICAgICpyZXN1bHQgPSAwOwo+IC0gICAg ICAgb2JqID0gYWNwaV9ldmFsdWF0ZV9kc21fdHlwZWQoaGFuZGxlLCBub3V2ZWF1X29wX2RzbV9t dWlkLCAweDAwMDAwMTAwLAo+ICsgICAgICAgb2JqID0gYWNwaV9ldmFsdWF0ZV9kc21fdHlwZWQo aGFuZGxlLCAmbm91dmVhdV9vcF9kc21fbXVpZCwgMHgwMDAwMDEwMCwKPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMsICZhcmd2NCwgQUNQSV9UWVBFX0JVRkZFUik7 Cj4gICAgICAgICBpZiAoIW9iaikgewo+ICAgICAgICAgICAgICAgICBhY3BpX2hhbmRsZV9pbmZv KGhhbmRsZSwgImZhaWxlZCB0byBldmFsdWF0ZSBfRFNNXG4iKTsKPiBAQCAtMTM4LDcgKzEzNiw3 IEBAIHN0YXRpYyBpbnQgbm91dmVhdV9kc20oYWNwaV9oYW5kbGUgaGFuZGxlLCBpbnQgZnVuYywg aW50IGFyZykKPiAgICAgICAgICAgICAgICAgLmludGVnZXIudmFsdWUgPSBhcmcsCj4gICAgICAg ICB9Owo+Cj4gLSAgICAgICBvYmogPSBhY3BpX2V2YWx1YXRlX2RzbV90eXBlZChoYW5kbGUsIG5v dXZlYXVfZHNtX211aWQsIDB4MDAwMDAxMDIsCj4gKyAgICAgICBvYmogPSBhY3BpX2V2YWx1YXRl X2RzbV90eXBlZChoYW5kbGUsICZub3V2ZWF1X2RzbV9tdWlkLCAweDAwMDAwMTAyLAo+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYywgJmFyZ3Y0LCBBQ1BJX1RZUEVf SU5URUdFUik7Cj4gICAgICAgICBpZiAoIW9iaikgewo+ICAgICAgICAgICAgICAgICBhY3BpX2hh bmRsZV9pbmZvKGhhbmRsZSwgImZhaWxlZCB0byBldmFsdWF0ZSBfRFNNXG4iKTsKPiBAQCAtMjU5 LDcgKzI1Nyw3IEBAIHN0YXRpYyB2b2lkIG5vdXZlYXVfZHNtX3BjaV9wcm9iZShzdHJ1Y3QgcGNp X2RldiAqcGRldiwgYWNwaV9oYW5kbGUgKmRoYW5kbGVfb3V0Cj4gICAgICAgICBpZiAoIWFjcGlf aGFzX21ldGhvZChkaGFuZGxlLCAiX0RTTSIpKQo+ICAgICAgICAgICAgICAgICByZXR1cm47Cj4K PiAtICAgICAgIHN1cHBvcnRzX211eCA9IGFjcGlfY2hlY2tfZHNtKGRoYW5kbGUsIG5vdXZlYXVf ZHNtX211aWQsIDB4MDAwMDAxMDIsCj4gKyAgICAgICBzdXBwb3J0c19tdXggPSBhY3BpX2NoZWNr X2RzbShkaGFuZGxlLCAmbm91dmVhdV9kc21fbXVpZCwgMHgwMDAwMDEwMiwKPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgPDwgTk9VVkVBVV9EU01fUE9XRVIpOwo+ICAg ICAgICAgb3B0aW11c19mdW5jcyA9IG5vdXZlYXVfZHNtX2dldF9vcHRpbXVzX2Z1bmN0aW9ucyhk aGFuZGxlKTsKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL3N1 YmRldi9teG0vYmFzZS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvbXht L2Jhc2UuYwo+IGluZGV4IGUzZTJmNWU4MzgxNS4uY2M5NWI4MTUwYTg2IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L214bS9iYXNlLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL3N1YmRldi9teG0vYmFzZS5jCj4gQEAgLTgxLDEw ICs4MSw5IEBAIG14bV9zaGFkb3dfZHNtKHN0cnVjdCBudmttX214bSAqbXhtLCB1OCB2ZXJzaW9u KQo+ICB7Cj4gICAgICAgICBzdHJ1Y3QgbnZrbV9zdWJkZXYgKnN1YmRldiA9ICZteG0tPnN1YmRl djsKPiAgICAgICAgIHN0cnVjdCBudmttX2RldmljZSAqZGV2aWNlID0gc3ViZGV2LT5kZXZpY2U7 Cj4gLSAgICAgICBzdGF0aWMgY2hhciBtdWlkW10gPSB7Cj4gLSAgICAgICAgICAgICAgIDB4MDAs IDB4QTQsIDB4MDQsIDB4NDAsIDB4N0QsIDB4OTEsIDB4RjIsIDB4NEMsCj4gLSAgICAgICAgICAg ICAgIDB4QjgsIDB4OUMsIDB4NzksIDB4QjYsIDB4MkYsIDB4RDUsIDB4NTYsIDB4NjUKPiAtICAg ICAgIH07Cj4gKyAgICAgICBzdGF0aWMgdXVpZF9sZSBtdWlkID0KPiArICAgICAgICAgICAgICAg VVVJRF9MRSgweDQwMDRBNDAwLCAweDkxN0QsIDB4NENGMiwKPiArICAgICAgICAgICAgICAgICAg ICAgICAweEI4LCAweDlDLCAweDc5LCAweEI2LCAweDJGLCAweEQ1LCAweDU2LCAweDY1KTsKPiAg ICAgICAgIHUzMiBteG1zX2FyZ3NbXSA9IHsgMHgwMDAwMDAwMCB9Owo+ICAgICAgICAgdW5pb24g YWNwaV9vYmplY3QgYXJndjQgPSB7Cj4gICAgICAgICAgICAgICAgIC5idWZmZXIudHlwZSA9IEFD UElfVFlQRV9CVUZGRVIsCj4gQEAgLTEwNSw3ICsxMDQsNyBAQCBteG1fc2hhZG93X2RzbShzdHJ1 Y3QgbnZrbV9teG0gKm14bSwgdTggdmVyc2lvbikKPiAgICAgICAgICAqIHVubGVzcyB5b3UgcGFz cyBpbiBleGFjdGx5IHRoZSB2ZXJzaW9uIGl0IHN1cHBvcnRzLi4KPiAgICAgICAgICAqLwo+ICAg ICAgICAgcmV2ID0gKHZlcnNpb24gJiAweGYwKSA8PCA0IHwgKHZlcnNpb24gJiAweDBmKTsKPiAt ICAgICAgIG9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtKGhhbmRsZSwgbXVpZCwgcmV2LCAweDAwMDAw MDEwLCAmYXJndjQpOwo+ICsgICAgICAgb2JqID0gYWNwaV9ldmFsdWF0ZV9kc20oaGFuZGxlLCAm bXVpZCwgcmV2LCAweDAwMDAwMDEwLCAmYXJndjQpOwo+ICAgICAgICAgaWYgKCFvYmopIHsKPiAg ICAgICAgICAgICAgICAgbnZrbV9kZWJ1ZyhzdWJkZXYsICJEU00gTVhNUyBmYWlsZWRcbiIpOwo+ ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaGlk L2kyYy1oaWQvaTJjLWhpZC5jIGIvZHJpdmVycy9oaWQvaTJjLWhpZC9pMmMtaGlkLmMKPiBpbmRl eCA4ZGFhOGNlNjRlYmIuLmY4M2JkNzE3Y2RkNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2hpZC9p MmMtaGlkL2kyYy1oaWQuYwo+ICsrKyBiL2RyaXZlcnMvaGlkL2kyYy1oaWQvaTJjLWhpZC5jCj4g QEAgLTg3MiwxMCArODcyLDkgQEAgc3RhdGljIGludCBpMmNfaGlkX2ZldGNoX2hpZF9kZXNjcmlw dG9yKHN0cnVjdCBpMmNfaGlkICppaGlkKQo+ICBzdGF0aWMgaW50IGkyY19oaWRfYWNwaV9wZGF0 YShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAo+ICAgICAgICAgICAgICAgICBzdHJ1Y3QgaTJj X2hpZF9wbGF0Zm9ybV9kYXRhICpwZGF0YSkKPiAgewo+IC0gICAgICAgc3RhdGljIHU4IGkyY19o aWRfZ3VpZFtdID0gewo+IC0gICAgICAgICAgICAgICAweEY3LCAweEY2LCAweERGLCAweDNDLCAw eDY3LCAweDQyLCAweDU1LCAweDQ1LAo+IC0gICAgICAgICAgICAgICAweEFELCAweDA1LCAweEIz LCAweDBBLCAweDNELCAweDg5LCAweDM4LCAweERFLAo+IC0gICAgICAgfTsKPiArICAgICAgIHN0 YXRpYyB1dWlkX2xlIGkyY19oaWRfZ3VpZCA9Cj4gKyAgICAgICAgICAgICAgIFVVSURfTEUoMHgz Q0RGRjZGNywgMHg0MjY3LCAweDQ1NTUsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgMHhBRCwg MHgwNSwgMHhCMywgMHgwQSwgMHgzRCwgMHg4OSwgMHgzOCwgMHhERSk7Cj4gICAgICAgICB1bmlv biBhY3BpX29iamVjdCAqb2JqOwo+ICAgICAgICAgc3RydWN0IGFjcGlfZGV2aWNlICphZGV2Owo+ ICAgICAgICAgYWNwaV9oYW5kbGUgaGFuZGxlOwo+IEBAIC04ODQsNyArODgzLDcgQEAgc3RhdGlj IGludCBpMmNfaGlkX2FjcGlfcGRhdGEoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKPiAgICAg ICAgIGlmICghaGFuZGxlIHx8IGFjcGlfYnVzX2dldF9kZXZpY2UoaGFuZGxlLCAmYWRldikpCj4g ICAgICAgICAgICAgICAgIHJldHVybiAtRU5PREVWOwo+Cj4gLSAgICAgICBvYmogPSBhY3BpX2V2 YWx1YXRlX2RzbV90eXBlZChoYW5kbGUsIGkyY19oaWRfZ3VpZCwgMSwgMSwgTlVMTCwKPiArICAg ICAgIG9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtX3R5cGVkKGhhbmRsZSwgJmkyY19oaWRfZ3VpZCwg MSwgMSwgTlVMTCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFDUElf VFlQRV9JTlRFR0VSKTsKPiAgICAgICAgIGlmICghb2JqKSB7Cj4gICAgICAgICAgICAgICAgIGRl dl9lcnIoJmNsaWVudC0+ZGV2LCAiZGV2aWNlIF9EU00gZXhlY3V0aW9uIGZhaWxlZFxuIik7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvZG1hci5jIGIvZHJpdmVycy9pb21tdS9kbWFyLmMK PiBpbmRleCBjYmY3NzYzZDgwOTEuLjQyMGQ1MWIyODZhZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2lvbW11L2RtYXIuYwo+ICsrKyBiL2RyaXZlcnMvaW9tbXUvZG1hci5jCj4gQEAgLTE4MDgsMTAg KzE4MDgsOSBAQCBJT01NVV9JTklUX1BPU1QoZGV0ZWN0X2ludGVsX2lvbW11KTsKPiAgICogZm9y IERpcmVjdGVkLUlPIEFyY2hpdGVjdHVyZSBTcGVjaWZpY3Rpb24sIFJldiAyLjIsIFNlY3Rpb24g OC44Cj4gICAqICJSZW1hcHBpbmcgSGFyZHdhcmUgVW5pdCBIb3QgUGx1ZyIuCj4gICAqLwo+IC1z dGF0aWMgdTggZG1hcl9ocF91dWlkW10gPSB7Cj4gLSAgICAgICAvKiAwMDAwICovICAgIDB4QTYs IDB4QTMsIDB4QzEsIDB4RDgsIDB4OUIsIDB4QkUsIDB4OUIsIDB4NEMsCj4gLSAgICAgICAvKiAw MDA4ICovICAgIDB4OTEsIDB4QkYsIDB4QzMsIDB4Q0IsIDB4ODEsIDB4RkMsIDB4NUQsIDB4QUYK PiAtfTsKPiArc3RhdGljIHV1aWRfbGUgZG1hcl9ocF91dWlkID0KPiArICAgICAgIFVVSURfTEUo MHhEOEMxQTNBNiwgMHhCRTlCLCAweDRDOUIsCj4gKyAgICAgICAgICAgICAgIDB4OTEsIDB4QkYs IDB4QzMsIDB4Q0IsIDB4ODEsIDB4RkMsIDB4NUQsIDB4QUYpOwo+Cj4gIC8qCj4gICAqIEN1cnJl bnRseSB0aGVyZSdzIG9ubHkgb25lIHJldmlzaW9uIGFuZCBCSU9TIHdpbGwgbm90IGNoZWNrIHRo ZSByZXZpc2lvbiBpZCwKPiBAQCAtMTgyNCw3ICsxODIzLDcgQEAgc3RhdGljIHU4IGRtYXJfaHBf dXVpZFtdID0gewo+Cj4gIHN0YXRpYyBpbmxpbmUgYm9vbCBkbWFyX2RldGVjdF9kc20oYWNwaV9o YW5kbGUgaGFuZGxlLCBpbnQgZnVuYykKPiAgewo+IC0gICAgICAgcmV0dXJuIGFjcGlfY2hlY2tf ZHNtKGhhbmRsZSwgZG1hcl9ocF91dWlkLCBETUFSX0RTTV9SRVZfSUQsIDEgPDwgZnVuYyk7Cj4g KyAgICAgICByZXR1cm4gYWNwaV9jaGVja19kc20oaGFuZGxlLCAmZG1hcl9ocF91dWlkLCBETUFS X0RTTV9SRVZfSUQsIDEgPDwgZnVuYyk7Cj4gIH0KPgo+ICBzdGF0aWMgaW50IGRtYXJfd2Fsa19k c21fcmVzb3VyY2UoYWNwaV9oYW5kbGUgaGFuZGxlLCBpbnQgZnVuYywKPiBAQCAtMTg0Myw3ICsx ODQyLDcgQEAgc3RhdGljIGludCBkbWFyX3dhbGtfZHNtX3Jlc291cmNlKGFjcGlfaGFuZGxlIGhh bmRsZSwgaW50IGZ1bmMsCj4gICAgICAgICBpZiAoIWRtYXJfZGV0ZWN0X2RzbShoYW5kbGUsIGZ1 bmMpKQo+ICAgICAgICAgICAgICAgICByZXR1cm4gMDsKPgo+IC0gICAgICAgb2JqID0gYWNwaV9l dmFsdWF0ZV9kc21fdHlwZWQoaGFuZGxlLCBkbWFyX2hwX3V1aWQsIERNQVJfRFNNX1JFVl9JRCwK PiArICAgICAgIG9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtX3R5cGVkKGhhbmRsZSwgJmRtYXJfaHBf dXVpZCwgRE1BUl9EU01fUkVWX0lELAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZnVuYywgTlVMTCwgQUNQSV9UWVBFX0JVRkZFUik7Cj4gICAgICAgICBpZiAoIW9iaikK PiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9ERVY7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv bW1jL2hvc3Qvc2RoY2ktcGNpLWNvcmUuYyBiL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcGNpLWNv cmUuYwo+IGluZGV4IDkyZmMzZjdjNTM4ZC4uMjYyYjhjMzIwZDdjIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvbW1jL2hvc3Qvc2RoY2ktcGNpLWNvcmUuYwo+ICsrKyBiL2RyaXZlcnMvbW1jL2hvc3Qv c2RoY2ktcGNpLWNvcmUuYwo+IEBAIC00MDQsMTAgKzQwNCw5IEBAIHN0cnVjdCBpbnRlbF9ob3N0 IHsKPiAgICAgICAgIGJvb2wgICAgZDNfcmV0dW5lOwo+ICB9Owo+Cj4gLWNvbnN0IHU4IGludGVs X2RzbV91dWlkW10gPSB7Cj4gLSAgICAgICAweEE1LCAweDNFLCAweEMxLCAweEY2LCAweENELCAw eDY1LCAweDFGLCAweDQ2LAo+IC0gICAgICAgMHhBQiwgMHg3QSwgMHgyOSwgMHhGNywgMHhFOCwg MHhENSwgMHhCRCwgMHg2MSwKPiAtfTsKPiArY29uc3QgdXVpZF9sZSBpbnRlbF9kc21fdXVpZCA9 Cj4gKyAgICAgICBVVUlEX0xFKDB4RjZDMTNFQTUsIDB4NjVDRCwgMHg0NjFGLAo+ICsgICAgICAg ICAgICAgICAweEFCLCAweDdBLCAweDI5LCAweEY3LCAweEU4LCAweEQ1LCAweEJELCAweDYxKTsK Pgo+ICBzdGF0aWMgaW50IF9faW50ZWxfZHNtKHN0cnVjdCBpbnRlbF9ob3N0ICppbnRlbF9ob3N0 LCBzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgZm4sIHUzMiAqcmVzdWx0KQo+IEBAIC00MTYsNyArNDE1LDcgQEAgc3RhdGljIGludCBfX2lu dGVsX2RzbShzdHJ1Y3QgaW50ZWxfaG9zdCAqaW50ZWxfaG9zdCwgc3RydWN0IGRldmljZSAqZGV2 LAo+ICAgICAgICAgaW50IGVyciA9IDA7Cj4gICAgICAgICBzaXplX3QgbGVuOwo+Cj4gLSAgICAg ICBvYmogPSBhY3BpX2V2YWx1YXRlX2RzbShBQ1BJX0hBTkRMRShkZXYpLCBpbnRlbF9kc21fdXVp ZCwgMCwgZm4sIE5VTEwpOwo+ICsgICAgICAgb2JqID0gYWNwaV9ldmFsdWF0ZV9kc20oQUNQSV9I QU5ETEUoZGV2KSwgJmludGVsX2RzbV91dWlkLCAwLCBmbiwgTlVMTCk7Cj4gICAgICAgICBpZiAo IW9iaikKPiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FT1BOT1RTVVBQOwo+Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMvaG5zX2RzYWZfbWlzYy5jIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hucy9obnNfZHNhZl9taXNjLmMKPiBpbmRl eCBlMTNhYTA2NGE4ZTkuLjAyODQyZmU3ZjFkMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9oaXNpbGljb24vaG5zL2huc19kc2FmX21pc2MuYwo+ICsrKyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L2hpc2lsaWNvbi9obnMvaG5zX2RzYWZfbWlzYy5jCj4gQEAgLTI5LDEwICsyOSw5 IEBAIGVudW0gX2RzbV9yc3RfdHlwZSB7Cj4gICAgICAgICBITlNfUk9DRV9SRVNFVF9GVU5DICAg ICA9IDB4NywKPiAgfTsKPgo+IC1jb25zdCB1OCBobnNfZHNhZl9hY3BpX2RzbV91dWlkW10gPSB7 Cj4gLSAgICAgICAweDFBLCAweEFBLCAweDg1LCAweDFBLCAweDkzLCAweEUyLCAweDVFLCAweDQx LAo+IC0gICAgICAgMHg4RSwgMHgyOCwgMHg4RCwgMHg2OSwgMHgwQSwgMHgwRiwgMHg4MiwgMHgw QQo+IC19Owo+ICtjb25zdCB1dWlkX2xlIGhuc19kc2FmX2FjcGlfZHNtX3V1aWQgPQo+ICsgICAg ICAgVVVJRF9MRSgweDFBODVBQTFBLCAweEUyOTMsIDB4NDE1RSwKPiArICAgICAgICAgICAgICAg MHg4RSwgMHgyOCwgMHg4RCwgMHg2OSwgMHgwQSwgMHgwRiwgMHg4MiwgMHgwQSk7Cj4KPiAgc3Rh dGljIHZvaWQgZHNhZl93cml0ZV9zdWIoc3RydWN0IGRzYWZfZGV2aWNlICpkc2FmX2RldiwgdTMy IHJlZywgdTMyIHZhbCkKPiAgewo+IEBAIC0xNTEsNyArMTUwLDcgQEAgc3RhdGljIHZvaWQgaG5z X2RzYWZfYWNwaV9zcnN0X2J5X3BvcnQoc3RydWN0IGRzYWZfZGV2aWNlICpkc2FmX2RldiwgdTgg b3BfdHlwZSwKPiAgICAgICAgIGFyZ3Y0LnBhY2thZ2UuZWxlbWVudHMgPSBvYmpfYXJnczsKPgo+ ICAgICAgICAgb2JqID0gYWNwaV9ldmFsdWF0ZV9kc20oQUNQSV9IQU5ETEUoZHNhZl9kZXYtPmRl diksCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBobnNfZHNhZl9hY3BpX2RzbV91 dWlkLCAwLCBvcF90eXBlLCAmYXJndjQpOwo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJmhuc19kc2FmX2FjcGlfZHNtX3V1aWQsIDAsIG9wX3R5cGUsICZhcmd2NCk7Cj4gICAgICAg ICBpZiAoIW9iaikgewo+ICAgICAgICAgICAgICAgICBkZXZfd2Fybihkc2FmX2Rldi0+ZGV2LCAi cmVzZXQgcG9ydF90eXBlJWQgcG9ydCVkIGZhaWwhIiwKPiAgICAgICAgICAgICAgICAgICAgICAg ICAgcG9ydF90eXBlLCBwb3J0KTsKPiBAQCAtNDM0LDcgKzQzMyw3IEBAIHN0YXRpYyBwaHlfaW50 ZXJmYWNlX3QgaG5zX21hY19nZXRfcGh5X2lmX2FjcGkoc3RydWN0IGhuc19tYWNfY2IgKm1hY19j YikKPiAgICAgICAgIGFyZ3Y0LnBhY2thZ2UuZWxlbWVudHMgPSAmb2JqX2FyZ3MsCj4KPiAgICAg ICAgIG9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtKEFDUElfSEFORExFKG1hY19jYi0+ZGV2KSwKPiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhuc19kc2FmX2FjcGlfZHNtX3V1aWQsIDAs Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaG5zX2RzYWZfYWNwaV9kc21fdXVp ZCwgMCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhOU19PUF9HRVRfUE9SVF9U WVBFX0ZVTkMsICZhcmd2NCk7Cj4KPiAgICAgICAgIGlmICghb2JqIHx8IG9iai0+dHlwZSAhPSBB Q1BJX1RZUEVfSU5URUdFUikKPiBAQCAtNDc0LDcgKzQ3Myw3IEBAIGludCBobnNfbWFjX2dldF9z ZnBfcHJzbnRfYWNwaShzdHJ1Y3QgaG5zX21hY19jYiAqbWFjX2NiLCBpbnQgKnNmcF9wcnNudCkK PiAgICAgICAgIGFyZ3Y0LnBhY2thZ2UuZWxlbWVudHMgPSAmb2JqX2FyZ3MsCj4KPiAgICAgICAg IG9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtKEFDUElfSEFORExFKG1hY19jYi0+ZGV2KSwKPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhuc19kc2FmX2FjcGlfZHNtX3V1aWQsIDAsCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaG5zX2RzYWZfYWNwaV9kc21fdXVpZCwg MCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhOU19PUF9HRVRfU0ZQX1NUQVRf RlVOQywgJmFyZ3Y0KTsKPgo+ICAgICAgICAgaWYgKCFvYmogfHwgb2JqLT50eXBlICE9IEFDUElf VFlQRV9JTlRFR0VSKQo+IEBAIC01NjUsNyArNTY0LDcgQEAgaG5zX21hY19jb25maWdfc2RzX2xv b3BiYWNrX2FjcGkoc3RydWN0IGhuc19tYWNfY2IgKm1hY19jYiwgYm9vbCBlbikKPiAgICAgICAg IGFyZ3Y0LnBhY2thZ2UuZWxlbWVudHMgPSBvYmpfYXJnczsKPgo+ICAgICAgICAgb2JqID0gYWNw aV9ldmFsdWF0ZV9kc20oQUNQSV9IQU5ETEUobWFjX2NiLT5kc2FmX2Rldi0+ZGV2KSwKPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhuc19kc2FmX2FjcGlfZHNtX3V1aWQsIDAsCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaG5zX2RzYWZfYWNwaV9kc21fdXVpZCwg MCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhOU19PUF9TRVJERVNfTFBfRlVO QywgJmFyZ3Y0KTsKPiAgICAgICAgIGlmICghb2JqKSB7Cj4gICAgICAgICAgICAgICAgIGRldl93 YXJuKG1hY19jYi0+ZHNhZl9kZXYtPmRldiwgInNldCBwb3J0JWQgc2VyZGVzIGxwIGZhaWwhIiwK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcGNpLWFjcGkuYyBiL2RyaXZlcnMvcGNpL3BjaS1h Y3BpLmMKPiBpbmRleCAwMDE4NjAzNjE0MzQuLmViNjEyMTIzZTBkZCAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL3BjaS9wY2ktYWNwaS5jCj4gKysrIGIvZHJpdmVycy9wY2kvcGNpLWFjcGkuYwo+IEBA IC0yNCwxMCArMjQsOSBAQAo+ICAgKiBUaGUgVVVJRCBpcyBkZWZpbmVkIGluIHRoZSBQQ0kgRmly bXdhcmUgU3BlY2lmaWNhdGlvbiBhdmFpbGFibGUgaGVyZToKPiAgICogaHR0cHM6Ly93d3cucGNp c2lnLmNvbS9tZW1iZXJzL2Rvd25sb2Fkcy9wY2lmd19yM18xXzEzRGVjMTAucGRmCj4gICAqLwo+ IC1jb25zdCB1OCBwY2lfYWNwaV9kc21fdXVpZFtdID0gewo+IC0gICAgICAgMHhkMCwgMHgzNywg MHhjOSwgMHhlNSwgMHg1MywgMHgzNSwgMHg3YSwgMHg0ZCwKPiAtICAgICAgIDB4OTEsIDB4MTcs IDB4ZWEsIDB4NGQsIDB4MTksIDB4YzMsIDB4NDMsIDB4NGQKPiAtfTsKPiArY29uc3QgdXVpZF9s ZSBwY2lfYWNwaV9kc21fdXVpZCA9Cj4gKyAgICAgICBVVUlEX0xFKDB4ZTVjOTM3ZDAsIDB4MzU1 MywgMHg0ZDdhLAo+ICsgICAgICAgICAgICAgICAweDkxLCAweDE3LCAweGVhLCAweDRkLCAweDE5 LCAweGMzLCAweDQzLCAweDRkKTsKPgo+ICAjaWYgZGVmaW5lZChDT05GSUdfUENJX1FVSVJLUykg JiYgZGVmaW5lZChDT05GSUdfQVJNNjQpCj4gIHN0YXRpYyBpbnQgYWNwaV9nZXRfcmNfYWRkcihz dHJ1Y3QgYWNwaV9kZXZpY2UgKmFkZXYsIHN0cnVjdCByZXNvdXJjZSAqcmVzKQo+IEBAIC02ODAs NyArNjc5LDcgQEAgdm9pZCBhY3BpX3BjaV9hZGRfYnVzKHN0cnVjdCBwY2lfYnVzICpidXMpCj4g ICAgICAgICBpZiAoIXBjaV9pc19yb290X2J1cyhidXMpKQo+ICAgICAgICAgICAgICAgICByZXR1 cm47Cj4KPiAtICAgICAgIG9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtKEFDUElfSEFORExFKGJ1cy0+ YnJpZGdlKSwgcGNpX2FjcGlfZHNtX3V1aWQsIDMsCj4gKyAgICAgICBvYmogPSBhY3BpX2V2YWx1 YXRlX2RzbShBQ1BJX0hBTkRMRShidXMtPmJyaWRnZSksICZwY2lfYWNwaV9kc21fdXVpZCwgMywK PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFU0VUX0RFTEFZX0RTTSwgTlVMTCk7 Cj4gICAgICAgICBpZiAoIW9iaikKPiAgICAgICAgICAgICAgICAgcmV0dXJuOwo+IEBAIC03NDUs NyArNzQ0LDcgQEAgc3RhdGljIHZvaWQgcGNpX2FjcGlfb3B0aW1pemVfZGVsYXkoc3RydWN0IHBj aV9kZXYgKnBkZXYsCj4gICAgICAgICBpZiAoYnJpZGdlLT5pZ25vcmVfcmVzZXRfZGVsYXkpCj4g ICAgICAgICAgICAgICAgIHBkZXYtPmQzY29sZF9kZWxheSA9IDA7Cj4KPiAtICAgICAgIG9iaiA9 IGFjcGlfZXZhbHVhdGVfZHNtKGhhbmRsZSwgcGNpX2FjcGlfZHNtX3V1aWQsIDMsCj4gKyAgICAg ICBvYmogPSBhY3BpX2V2YWx1YXRlX2RzbShoYW5kbGUsICZwY2lfYWNwaV9kc21fdXVpZCwgMywK PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTkNUSU9OX0RFTEFZX0RTTSwgTlVM TCk7Cj4gICAgICAgICBpZiAoIW9iaikKPiAgICAgICAgICAgICAgICAgcmV0dXJuOwo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL3BjaS9wY2ktbGFiZWwuYyBiL2RyaXZlcnMvcGNpL3BjaS1sYWJlbC5j Cj4gaW5kZXggNTEzNTczNzdlZmJjLi5hMmMwNDIyOWYxZGMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9wY2kvcGNpLWxhYmVsLmMKPiArKysgYi9kcml2ZXJzL3BjaS9wY2ktbGFiZWwuYwo+IEBAIC0x NzIsNyArMTcyLDcgQEAgc3RhdGljIGludCBkc21fZ2V0X2xhYmVsKHN0cnVjdCBkZXZpY2UgKmRl diwgY2hhciAqYnVmLAo+ICAgICAgICAgaWYgKCFoYW5kbGUpCj4gICAgICAgICAgICAgICAgIHJl dHVybiAtMTsKPgo+IC0gICAgICAgb2JqID0gYWNwaV9ldmFsdWF0ZV9kc20oaGFuZGxlLCBwY2lf YWNwaV9kc21fdXVpZCwgMHgyLAo+ICsgICAgICAgb2JqID0gYWNwaV9ldmFsdWF0ZV9kc20oaGFu ZGxlLCAmcGNpX2FjcGlfZHNtX3V1aWQsIDB4MiwKPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIERFVklDRV9MQUJFTF9EU00sIE5VTEwpOwo+ICAgICAgICAgaWYgKCFvYmopCj4gICAg ICAgICAgICAgICAgIHJldHVybiAtMTsKPiBAQCAtMjEyLDcgKzIxMiw3IEBAIHN0YXRpYyBib29s IGRldmljZV9oYXNfZHNtKHN0cnVjdCBkZXZpY2UgKmRldikKPiAgICAgICAgIGlmICghaGFuZGxl KQo+ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cj4KPiAtICAgICAgIHJldHVybiAhIWFj cGlfY2hlY2tfZHNtKGhhbmRsZSwgcGNpX2FjcGlfZHNtX3V1aWQsIDB4MiwKPiArICAgICAgIHJl dHVybiAhIWFjcGlfY2hlY2tfZHNtKGhhbmRsZSwgJnBjaV9hY3BpX2RzbV91dWlkLCAweDIsCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxIDw8IERFVklDRV9MQUJFTF9EU00pOwo+ ICB9Cj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL2ludDM0MHhfdGhlcm1hbC9pbnQz NDAwX3RoZXJtYWwuYyBiL2RyaXZlcnMvdGhlcm1hbC9pbnQzNDB4X3RoZXJtYWwvaW50MzQwMF90 aGVybWFsLmMKPiBpbmRleCA5NDEzYzRhYmYwYjkuLmMwZWIzYmIxOWIyMyAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL3RoZXJtYWwvaW50MzQweF90aGVybWFsL2ludDM0MDBfdGhlcm1hbC5jCj4gKysr IGIvZHJpdmVycy90aGVybWFsL2ludDM0MHhfdGhlcm1hbC9pbnQzNDAwX3RoZXJtYWwuYwo+IEBA IC0yMyw3ICsyMyw3IEBAIGVudW0gaW50MzQwMF90aGVybWFsX3V1aWQgewo+ICAgICAgICAgSU5U MzQwMF9USEVSTUFMX01BWElNVU1fVVVJRCwKPiAgfTsKPgo+IC1zdGF0aWMgdTggKmludDM0MDBf dGhlcm1hbF91dWlkc1tJTlQzNDAwX1RIRVJNQUxfTUFYSU1VTV9VVUlEXSA9IHsKPiArc3RhdGlj IGNvbnN0IGNoYXIgKmludDM0MDBfdGhlcm1hbF91dWlkc1tJTlQzNDAwX1RIRVJNQUxfTUFYSU1V TV9VVUlEXSA9IHsKPiAgICAgICAgICI0MkE0NDFENi1BRTZBLTQ2MmItQTg0Qi00QThDRTc5MDI3 RDMiLAo+ICAgICAgICAgIjNBOTVDMzg5LUU0QjgtNDYyOS1BNTI2LUM1MkM4ODYyNkJBRSIsCj4g ICAgICAgICAiOTdDNjhBRTctMTVGQS00OTljLUI4QzktNURBODFENjA2RTBBIiwKPiBAQCAtMTQx LDEwICsxNDEsMTAgQEAgc3RhdGljIGludCBpbnQzNDAwX3RoZXJtYWxfZ2V0X3V1aWRzKHN0cnVj dCBpbnQzNDAwX3RoZXJtYWxfcHJpdiAqcHJpdikKPiAgICAgICAgICAgICAgICAgfQo+Cj4gICAg ICAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBJTlQzNDAwX1RIRVJNQUxfTUFYSU1VTV9VVUlE OyBqKyspIHsKPiAtICAgICAgICAgICAgICAgICAgICAgICB1OCB1dWlkWzE2XTsKPiArICAgICAg ICAgICAgICAgICAgICAgICB1dWlkX2xlIHU7Cj4KPiAtICAgICAgICAgICAgICAgICAgICAgICBh Y3BpX3N0cl90b191dWlkKGludDM0MDBfdGhlcm1hbF91dWlkc1tqXSwgdXVpZCk7Cj4gLSAgICAg ICAgICAgICAgICAgICAgICAgaWYgKCFzdHJuY21wKHV1aWQsIG9iamItPmJ1ZmZlci5wb2ludGVy LCAxNikpIHsKPiArICAgICAgICAgICAgICAgICAgICAgICB1dWlkX2xlX3RvX2JpbihpbnQzNDAw X3RoZXJtYWxfdXVpZHNbal0sICZ1KTsKPiArICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXV1 aWRfbGVfY21wKCoodXVpZF9sZSAqKW9iamItPmJ1ZmZlci5wb2ludGVyKSwgdSkgewo+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+dXVpZF9iaXRtYXAgfD0gKDEgPDwgaik7 Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKPiAgICAgICAgICAgICAg ICAgICAgICAgICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2R3YzMvZHdjMy1wY2kuYyBi L2RyaXZlcnMvdXNiL2R3YzMvZHdjMy1wY2kuYwo+IGluZGV4IGExNWVjNzFkMDQyMy4uNmI1Mjg0 ZWM3NmRmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvdXNiL2R3YzMvZHdjMy1wY2kuYwo+ICsrKyBi L2RyaXZlcnMvdXNiL2R3YzMvZHdjMy1wY2kuYwo+IEBAIC01Niw3ICs1Niw3IEBAIHN0cnVjdCBk d2MzX3BjaSB7Cj4gICAgICAgICBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkd2MzOwo+ICAgICAg ICAgc3RydWN0IHBjaV9kZXYgKnBjaTsKPgo+IC0gICAgICAgdTggdXVpZFsxNl07Cj4gKyAgICAg ICB1dWlkX2xlIHV1aWQ7Cj4KPiAgICAgICAgIHVuc2lnbmVkIGludCBoYXNfZHNtX2Zvcl9wbTox Owo+ICB9Owo+IEBAIC0xMTgsNyArMTE4LDcgQEAgc3RhdGljIGludCBkd2MzX3BjaV9xdWlya3Mo c3RydWN0IGR3YzNfcGNpICpkd2MpCj4KPiAgICAgICAgICAgICAgICAgaWYgKHBkZXYtPmRldmlj ZSA9PSBQQ0lfREVWSUNFX0lEX0lOVEVMX0JYVCB8fAo+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGRldi0+ZGV2aWNlID09IFBDSV9ERVZJQ0VfSURfSU5URUxfQlhUX00pIHsKPiAt ICAgICAgICAgICAgICAgICAgICAgICBhY3BpX3N0cl90b191dWlkKFBDSV9JTlRFTF9CWFRfRFNN X1VVSUQsIGR3Yy0+dXVpZCk7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgdXVpZF9sZV90b19i aW4oUENJX0lOVEVMX0JYVF9EU01fVVVJRCwgJmR3Yy0+dXVpZCk7Cj4gICAgICAgICAgICAgICAg ICAgICAgICAgZHdjLT5oYXNfZHNtX2Zvcl9wbSA9IHRydWU7Cj4gICAgICAgICAgICAgICAgIH0K Pgo+IEBAIC0yODgsNyArMjg4LDcgQEAgc3RhdGljIGludCBkd2MzX3BjaV9kc20oc3RydWN0IGR3 YzNfcGNpICpkd2MsIGludCBwYXJhbSkKPiAgICAgICAgIHRtcC50eXBlID0gQUNQSV9UWVBFX0lO VEVHRVI7Cj4gICAgICAgICB0bXAuaW50ZWdlci52YWx1ZSA9IHBhcmFtOwo+Cj4gLSAgICAgICBv YmogPSBhY3BpX2V2YWx1YXRlX2RzbShBQ1BJX0hBTkRMRSgmZHdjLT5wY2ktPmRldiksIGR3Yy0+ dXVpZCwKPiArICAgICAgIG9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtKEFDUElfSEFORExFKCZkd2Mt PnBjaS0+ZGV2KSwgJmR3Yy0+dXVpZCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAxLCBQQ0lf SU5URUxfQlhUX0ZVTkNfUE1VX1BXUiwgJmFyZ3Y0KTsKPiAgICAgICAgIGlmICghb2JqKSB7Cj4g ICAgICAgICAgICAgICAgIGRldl9lcnIoJmR3Yy0+cGNpLT5kZXYsICJmYWlsZWQgdG8gZXZhbHVh dGUgX0RTTVxuIik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1wY2kuYyBi L2RyaXZlcnMvdXNiL2hvc3QveGhjaS1wY2kuYwo+IGluZGV4IDdiODY1MDhhYzhjZi4uOTNiNGYw ZGU5NDE4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1wY2kuYwo+ICsrKyBi L2RyaXZlcnMvdXNiL2hvc3QveGhjaS1wY2kuYwo+IEBAIC0yMTAsMTMgKzIxMCwxMiBAQCBzdGF0 aWMgdm9pZCB4aGNpX3BjaV9xdWlya3Moc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgeGhjaV9o Y2QgKnhoY2kpCj4gICNpZmRlZiBDT05GSUdfQUNQSQo+ICBzdGF0aWMgdm9pZCB4aGNpX3BtZV9h Y3BpX3J0ZDNfZW5hYmxlKHN0cnVjdCBwY2lfZGV2ICpkZXYpCj4gIHsKPiAtICAgICAgIHN0YXRp YyBjb25zdCB1OCBpbnRlbF9kc21fdXVpZFtdID0gewo+IC0gICAgICAgICAgICAgICAweGI3LCAw eDBjLCAweDM0LCAweGFjLCAweDAxLCAweGU5LCAweGJmLCAweDQ1LAo+IC0gICAgICAgICAgICAg ICAweGI3LCAweGU2LCAweDJiLCAweDM0LCAweGVjLCAweDkzLCAweDFlLCAweDIzLAo+IC0gICAg ICAgfTsKPiArICAgICAgIHN0YXRpYyBjb25zdCB1dWlkX2xlIGludGVsX2RzbV91dWlkID0KPiAr ICAgICAgICAgICAgICAgVVVJRF9MRSgweGFjMzQwY2I3LCAweGU5MDEsIDB4NDViZiwKPiArICAg ICAgICAgICAgICAgICAgICAgICAweGI3LCAweGU2LCAweDJiLCAweDM0LCAweGVjLCAweDkzLCAw eDFlLCAweDIzKTsKPiAgICAgICAgIHVuaW9uIGFjcGlfb2JqZWN0ICpvYmo7Cj4KPiAtICAgICAg IG9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtKEFDUElfSEFORExFKCZkZXYtPmRldiksIGludGVsX2Rz bV91dWlkLCAzLCAxLAo+ICsgICAgICAgb2JqID0gYWNwaV9ldmFsdWF0ZV9kc20oQUNQSV9IQU5E TEUoJmRldi0+ZGV2KSwgJmludGVsX2RzbV91dWlkLCAzLCAxLAo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTlVMTCk7Cj4gICAgICAgICBBQ1BJX0ZSRUUob2JqKTsKPiAgfQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9taXNjL3Vjc2kuYyBiL2RyaXZlcnMvdXNiL21pc2MvdWNz aS5jCj4gaW5kZXggMDczOTdiZGRlZmEzLi40OWUzMmZmYmU1OWYgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy91c2IvbWlzYy91Y3NpLmMKPiArKysgYi9kcml2ZXJzL3VzYi9taXNjL3Vjc2kuYwo+IEBA IC02MSw3ICs2MSw3IEBAIHN0YXRpYyBpbnQgdWNzaV9hY3BpX2NtZChzdHJ1Y3QgdWNzaSAqdWNz aSwgc3RydWN0IHVjc2lfY29udHJvbCAqY3RybCkKPgo+ICAgICAgICAgdWNzaS0+ZGF0YS0+Y3Ry bC5yYXdfY21kID0gY3RybC0+cmF3X2NtZDsKPgo+IC0gICAgICAgb2JqID0gYWNwaV9ldmFsdWF0 ZV9kc20oQUNQSV9IQU5ETEUodWNzaS0+ZGV2KSwgdXVpZC5iLCAxLCAxLCBOVUxMKTsKPiArICAg ICAgIG9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtKEFDUElfSEFORExFKHVjc2ktPmRldiksICZ1dWlk LCAxLCAxLCBOVUxMKTsKPiAgICAgICAgIGlmICghb2JqKSB7Cj4gICAgICAgICAgICAgICAgIGRl dl9lcnIodWNzaS0+ZGV2LCAiJXM6IGZhaWxlZCB0byBldmFsdWF0ZSBfRFNNXG4iLCBfX2Z1bmNf Xyk7Cj4gICAgICAgICAgICAgICAgIHJldHVybiAtRUlPOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L3VzYi90eXBlYy90eXBlY193Y292ZS5jIGIvZHJpdmVycy91c2IvdHlwZWMvdHlwZWNfd2NvdmUu Ywo+IGluZGV4IGQ1YTdiMjFmYTNmMS4uNWNlOTNlMGExNWNhIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvdXNiL3R5cGVjL3R5cGVjX3djb3ZlLmMKPiArKysgYi9kcml2ZXJzL3VzYi90eXBlYy90eXBl Y193Y292ZS5jCj4gQEAgLTExOCw3ICsxMTgsNyBAQCBzdGF0aWMgaW50IHdjb3ZlX3R5cGVjX2Z1 bmMoc3RydWN0IHdjb3ZlX3R5cGVjICp3Y292ZSwKPiAgICAgICAgIHRtcC50eXBlID0gQUNQSV9U WVBFX0lOVEVHRVI7Cj4gICAgICAgICB0bXAuaW50ZWdlci52YWx1ZSA9IHBhcmFtOwo+Cj4gLSAg ICAgICBvYmogPSBhY3BpX2V2YWx1YXRlX2RzbShBQ1BJX0hBTkRMRSh3Y292ZS0+ZGV2KSwgdXVp ZC5iLCAxLCBmdW5jLAo+ICsgICAgICAgb2JqID0gYWNwaV9ldmFsdWF0ZV9kc20oQUNQSV9IQU5E TEUod2NvdmUtPmRldiksICZ1dWlkLCAxLCBmdW5jLAo+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJmFyZ3Y0KTsKPiAgICAgICAgIGlmICghb2JqKSB7Cj4gICAgICAgICAgICAgICAg IGRldl9lcnIod2NvdmUtPmRldiwgIiVzOiBmYWlsZWQgdG8gZXZhbHVhdGUgX0RTTVxuIiwgX19m dW5jX18pOwo+IEBAIC0zMTQsNyArMzE0LDcgQEAgc3RhdGljIGludCB3Y292ZV90eXBlY19wcm9i ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAgICAgICAgaWYgKHJldCkKPiAgICAg ICAgICAgICAgICAgcmV0dXJuIHJldDsKPgo+IC0gICAgICAgaWYgKCFhY3BpX2NoZWNrX2RzbShB Q1BJX0hBTkRMRSgmcGRldi0+ZGV2KSwgdXVpZC5iLCAwLCAweDFmKSkgewo+ICsgICAgICAgaWYg KCFhY3BpX2NoZWNrX2RzbShBQ1BJX0hBTkRMRSgmcGRldi0+ZGV2KSwgJnV1aWQsIDAsIDB4MWYp KSB7Cj4gICAgICAgICAgICAgICAgIGRldl9lcnIoJnBkZXYtPmRldiwgIk1pc3NpbmcgX0RTTSBm dW5jdGlvbnNcbiIpOwo+ICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT0RFVjsKPiAgICAgICAg IH0KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hY3BpL2FjcGlfYnVzLmggYi9pbmNsdWRlL2FjcGkv YWNwaV9idXMuaAo+IGluZGV4IDE5N2YzZmZmYzlhNy4uMDY4Mjk0MmQ2YTc2IDEwMDY0NAo+IC0t LSBhL2luY2x1ZGUvYWNwaS9hY3BpX2J1cy5oCj4gKysrIGIvaW5jbHVkZS9hY3BpL2FjcGlfYnVz LmgKPiBAQCAtNjEsMTMgKzYxLDE0IEBAIGJvb2wgYWNwaV9hdGFfbWF0Y2goYWNwaV9oYW5kbGUg aGFuZGxlKTsKPiAgYm9vbCBhY3BpX2JheV9tYXRjaChhY3BpX2hhbmRsZSBoYW5kbGUpOwo+ICBi b29sIGFjcGlfZG9ja19tYXRjaChhY3BpX2hhbmRsZSBoYW5kbGUpOwo+Cj4gLWJvb2wgYWNwaV9j aGVja19kc20oYWNwaV9oYW5kbGUgaGFuZGxlLCBjb25zdCB1OCAqdXVpZCwgdTY0IHJldiwgdTY0 IGZ1bmNzKTsKPiAtdW5pb24gYWNwaV9vYmplY3QgKmFjcGlfZXZhbHVhdGVfZHNtKGFjcGlfaGFu ZGxlIGhhbmRsZSwgY29uc3QgdTggKnV1aWQsCj4gK2Jvb2wgYWNwaV9jaGVja19kc20oYWNwaV9o YW5kbGUgaGFuZGxlLCBjb25zdCB1dWlkX2xlICp1dWlkLCB1NjQgcmV2LCB1NjQgZnVuY3MpOwo+ ICt1bmlvbiBhY3BpX29iamVjdCAqYWNwaV9ldmFsdWF0ZV9kc20oYWNwaV9oYW5kbGUgaGFuZGxl LCBjb25zdCB1dWlkX2xlICp1dWlkLAo+ICAgICAgICAgICAgICAgICAgICAgICAgIHU2NCByZXYs IHU2NCBmdW5jLCB1bmlvbiBhY3BpX29iamVjdCAqYXJndjQpOwo+Cj4gIHN0YXRpYyBpbmxpbmUg dW5pb24gYWNwaV9vYmplY3QgKgo+IC1hY3BpX2V2YWx1YXRlX2RzbV90eXBlZChhY3BpX2hhbmRs ZSBoYW5kbGUsIGNvbnN0IHU4ICp1dWlkLCB1NjQgcmV2LCB1NjQgZnVuYywKPiAtICAgICAgICAg ICAgICAgICAgICAgICB1bmlvbiBhY3BpX29iamVjdCAqYXJndjQsIGFjcGlfb2JqZWN0X3R5cGUg dHlwZSkKPiArYWNwaV9ldmFsdWF0ZV9kc21fdHlwZWQoYWNwaV9oYW5kbGUgaGFuZGxlLCBjb25z dCB1dWlkX2xlICp1dWlkLCB1NjQgcmV2LAo+ICsgICAgICAgICAgICAgICAgICAgICAgIHU2NCBm dW5jLCB1bmlvbiBhY3BpX29iamVjdCAqYXJndjQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAg YWNwaV9vYmplY3RfdHlwZSB0eXBlKQo+ICB7Cj4gICAgICAgICB1bmlvbiBhY3BpX29iamVjdCAq b2JqOwo+Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYWNwaS5oIGIvaW5jbHVkZS9saW51 eC9hY3BpLmgKPiBpbmRleCAxMzdlNGEzZDg5YzUuLjY2ZDEzNTAwMzc4MCAxMDA2NDQKPiAtLS0g YS9pbmNsdWRlL2xpbnV4L2FjcGkuaAo+ICsrKyBiL2luY2x1ZGUvbGludXgvYWNwaS5oCj4gQEAg LTM5LDYgKzM5LDcgQEAKPiAgI2luY2x1ZGUgPGxpbnV4L2R5bmFtaWNfZGVidWcuaD4KPiAgI2lu Y2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+ICAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KPiArI2lu Y2x1ZGUgPGxpbnV4L3V1aWQuaD4KPgo+ICAjaW5jbHVkZSA8YWNwaS9hY3BpX2J1cy5oPgo+ICAj aW5jbHVkZSA8YWNwaS9hY3BpX2RyaXZlcnMuaD4KPiBAQCAtNDU3LDcgKzQ1OCw2IEBAIHN0cnVj dCBhY3BpX29zY19jb250ZXh0IHsKPiAgICAgICAgIHN0cnVjdCBhY3BpX2J1ZmZlciByZXQ7ICAg ICAgICAgLyogZnJlZSBieSBjYWxsZXIgaWYgc3VjY2VzcyAqLwo+ICB9Owo+Cj4gLWFjcGlfc3Rh dHVzIGFjcGlfc3RyX3RvX3V1aWQoY2hhciAqc3RyLCB1OCAqdXVpZCk7Cj4gIGFjcGlfc3RhdHVz IGFjcGlfcnVuX29zYyhhY3BpX2hhbmRsZSBoYW5kbGUsIHN0cnVjdCBhY3BpX29zY19jb250ZXh0 ICpjb250ZXh0KTsKPgo+ICAvKiBJbmRleGVzIGludG8gX09TQyBDYXBhYmlsaXRpZXMgQnVmZmVy IChEV09SRHMgMiAmIDMgYXJlIGRldmljZS1zcGVjaWZpYykgKi8KPiBAQCAtNzQxLDcgKzc0MSw3 IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBhY3BpX2RyaXZlcl9tYXRjaF9kZXZpY2Uoc3RydWN0IGRl dmljZSAqZGV2LAo+ICB9Cj4KPiAgc3RhdGljIGlubGluZSB1bmlvbiBhY3BpX29iamVjdCAqYWNw aV9ldmFsdWF0ZV9kc20oYWNwaV9oYW5kbGUgaGFuZGxlLAo+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHU4ICp1dWlkLAo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHV1aWRfbGUg KnV1aWQsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50IHJldiwgaW50IGZ1bmMsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5pb24gYWNwaV9vYmplY3QgKmFyZ3Y0KQo+ICB7Cj4gZGlmZiAt LWdpdCBhL2luY2x1ZGUvbGludXgvcGNpLWFjcGkuaCBiL2luY2x1ZGUvbGludXgvcGNpLWFjcGku aAo+IGluZGV4IDdhNGU4M2E4Yzg5Yy4uOTE3YTZhZDBmMjRkIDEwMDY0NAo+IC0tLSBhL2luY2x1 ZGUvbGludXgvcGNpLWFjcGkuaAo+ICsrKyBiL2luY2x1ZGUvbGludXgvcGNpLWFjcGkuaAo+IEBA IC0xMDUsNyArMTA1LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGFjcGlwaHBfcmVtb3ZlX3Nsb3Rz KHN0cnVjdCBwY2lfYnVzICpidXMpIHsgfQo+ICBzdGF0aWMgaW5saW5lIHZvaWQgYWNwaXBocF9j aGVja19ob3N0X2JyaWRnZShzdHJ1Y3QgYWNwaV9kZXZpY2UgKmFkZXYpIHsgfQo+ICAjZW5kaWYK Pgo+IC1leHRlcm4gY29uc3QgdTggcGNpX2FjcGlfZHNtX3V1aWRbXTsKPiArZXh0ZXJuIGNvbnN0 IHV1aWRfbGUgcGNpX2FjcGlfZHNtX3V1aWQ7Cj4gICNkZWZpbmUgREVWSUNFX0xBQkVMX0RTTSAg ICAgICAweDA3Cj4gICNkZWZpbmUgUkVTRVRfREVMQVlfRFNNICAgICAgICAgICAgICAgIDB4MDgK PiAgI2RlZmluZSBGVU5DVElPTl9ERUxBWV9EU00gICAgIDB4MDkKPiBkaWZmIC0tZ2l0IGEvc291 bmQvc29jL2ludGVsL3NreWxha2Uvc2tsLW5obHQuYyBiL3NvdW5kL3NvYy9pbnRlbC9za3lsYWtl L3NrbC1uaGx0LmMKPiBpbmRleCBlM2YwNjY3MmZkNmQuLmI5NWY2NTlkY2VkNSAxMDA2NDQKPiAt LS0gYS9zb3VuZC9zb2MvaW50ZWwvc2t5bGFrZS9za2wtbmhsdC5jCj4gKysrIGIvc291bmQvc29j L2ludGVsL3NreWxha2Uvc2tsLW5obHQuYwo+IEBAIC0yMSw4ICsyMSw5IEBACj4gICNpbmNsdWRl ICJza2wuaCIKPgo+ICAvKiBVbmlxdWUgaWRlbnRpZmljYXRpb24gZm9yIGdldHRpbmcgTkhMVCBi bG9icyAqLwo+IC1zdGF0aWMgdTggT1NDX1VVSURbMTZdID0gezB4NkUsIDB4ODgsIDB4OUYsIDB4 QTYsIDB4RUIsIDB4NkMsIDB4OTQsIDB4NDUsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweEE0LCAweDFGLCAweDdCLCAweDVELCAweENFLCAweDI0LCAweEM1LCAweDUzfTsKPiAr c3RhdGljIHV1aWRfbGUgb3NjX3V1aWQgPQo+ICsgICAgICAgVVVJRF9MRSgweEE2OUY4ODZFLCAw eDZDRUIsIDB4NDU5NCwKPiArICAgICAgICAgICAgICAgMHhBNCwgMHgxRiwgMHg3QiwgMHg1RCwg MHhDRSwgMHgyNCwgMHhDNSwgMHg1Myk7Cj4KPiAgc3RydWN0IG5obHRfYWNwaV90YWJsZSAqc2ts X25obHRfaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gIHsKPiBAQCAtMzcsNyArMzgsNyBAQCBz dHJ1Y3QgbmhsdF9hY3BpX3RhYmxlICpza2xfbmhsdF9pbml0KHN0cnVjdCBkZXZpY2UgKmRldikK PiAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Cj4gICAgICAgICB9Cj4KPiAtICAgICAgIG9i aiA9IGFjcGlfZXZhbHVhdGVfZHNtKGhhbmRsZSwgT1NDX1VVSUQsIDEsIDEsIE5VTEwpOwo+ICsg ICAgICAgb2JqID0gYWNwaV9ldmFsdWF0ZV9kc20oaGFuZGxlLCAmb3NjX3V1aWQsIDEsIDEsIE5V TEwpOwo+ICAgICAgICAgaWYgKG9iaiAmJiBvYmotPnR5cGUgPT0gQUNQSV9UWVBFX0JVRkZFUikg ewo+ICAgICAgICAgICAgICAgICBuaGx0X3B0ciA9IChzdHJ1Y3QgbmhsdF9yZXNvdXJjZV9kZXNj ICAqKW9iai0+YnVmZmVyLnBvaW50ZXI7Cj4gICAgICAgICAgICAgICAgIG5obHRfdGFibGUgPSAo c3RydWN0IG5obHRfYWNwaV90YWJsZSAqKQo+IGRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL252 ZGltbS90ZXN0L2lvbWFwLmMgYi90b29scy90ZXN0aW5nL252ZGltbS90ZXN0L2lvbWFwLmMKPiBp bmRleCA2NGNhZTFhNWRlZmYuLmYxOTBmMjJjNTNkZCAxMDA2NDQKPiAtLS0gYS90b29scy90ZXN0 aW5nL252ZGltbS90ZXN0L2lvbWFwLmMKPiArKysgYi90b29scy90ZXN0aW5nL252ZGltbS90ZXN0 L2lvbWFwLmMKPiBAQCAtMzcwLDcgKzM3MCw3IEBAIGFjcGlfc3RhdHVzIF9fd3JhcF9hY3BpX2V2 YWx1YXRlX29iamVjdChhY3BpX2hhbmRsZSBoYW5kbGUsIGFjcGlfc3RyaW5nIHBhdGgsCj4gIH0K PiAgRVhQT1JUX1NZTUJPTChfX3dyYXBfYWNwaV9ldmFsdWF0ZV9vYmplY3QpOwo+Cj4gLXVuaW9u IGFjcGlfb2JqZWN0ICogX193cmFwX2FjcGlfZXZhbHVhdGVfZHNtKGFjcGlfaGFuZGxlIGhhbmRs ZSwgY29uc3QgdTggKnV1aWQsCj4gK3VuaW9uIGFjcGlfb2JqZWN0ICogX193cmFwX2FjcGlfZXZh bHVhdGVfZHNtKGFjcGlfaGFuZGxlIGhhbmRsZSwgY29uc3QgdXVpZF9sZSAqdXVpZCwKPiAgICAg ICAgICAgICAgICAgdTY0IHJldiwgdTY0IGZ1bmMsIHVuaW9uIGFjcGlfb2JqZWN0ICphcmd2NCkK PiAgewo+ICAgICAgICAgdW5pb24gYWNwaV9vYmplY3QgKm9iaiA9IEVSUl9QVFIoLUVOWElPKTsK PiBkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9udmRpbW0vdGVzdC9uZml0LmMgYi90b29scy90 ZXN0aW5nL252ZGltbS90ZXN0L25maXQuYwo+IGluZGV4IGMyMTg3MTc4ZmIxMy4uMTQ1ZjZlZTAy MzRmIDEwMDY0NAo+IC0tLSBhL3Rvb2xzL3Rlc3RpbmcvbnZkaW1tL3Rlc3QvbmZpdC5jCj4gKysr IGIvdG9vbHMvdGVzdGluZy9udmRpbW0vdGVzdC9uZml0LmMKPiBAQCAtMTU1OSw3ICsxNTU5LDcg QEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgbmZpdF9jdGxfaGFuZGxlOwo+ICB1bmlvbiBhY3BpX29i amVjdCAqcmVzdWx0Owo+Cj4gIHN0YXRpYyB1bmlvbiBhY3BpX29iamVjdCAqbmZpdF90ZXN0X2V2 YWx1YXRlX2RzbShhY3BpX2hhbmRsZSBoYW5kbGUsCj4gLSAgICAgICAgICAgICAgIGNvbnN0IHU4 ICp1dWlkLCB1NjQgcmV2LCB1NjQgZnVuYywgdW5pb24gYWNwaV9vYmplY3QgKmFyZ3Y0KQo+ICsg ICAgICAgICAgICAgICBjb25zdCB1dWlkX2xlICp1dWlkLCB1NjQgcmV2LCB1NjQgZnVuYywgdW5p b24gYWNwaV9vYmplY3QgKmFyZ3Y0KQo+ICB7Cj4gICAgICAgICBpZiAoaGFuZGxlICE9ICZuZml0 X2N0bF9oYW5kbGUpCj4gICAgICAgICAgICAgICAgIHJldHVybiBFUlJfUFRSKC1FTlhJTyk7Cj4g LS0KPiAyLjExLjAKPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK