From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [PATCH] Revert "drm/i915/skl: New ddb allocation algorithm" Date: Thu, 15 Jun 2017 11:23:24 +0300 Message-ID: <1497515004.3260.2.camel@gmail.com> References: <1497376350-3400-1-git-send-email-rodrigo.vivi@intel.com> <20170613180705.GJ19328@mdroper-desk.amr.corp.intel.com> <1497440826.14142.2.camel@gmail.com> <20170614211642.GN19328@mdroper-desk.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pg0-x242.google.com (mail-pg0-x242.google.com [IPv6:2607:f8b0:400e:c05::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9A8666E6B9 for ; Thu, 15 Jun 2017 08:24:46 +0000 (UTC) Received: by mail-pg0-x242.google.com with SMTP id j186so979215pge.1 for ; Thu, 15 Jun 2017 01:24:46 -0700 (PDT) In-Reply-To: <20170614211642.GN19328@mdroper-desk.amr.corp.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper Cc: intel-gfx , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyMDE3LTA2LTE0IGF0IDE0OjE2IC0wNzAwLCBNYXR0IFJvcGVyIHdyb3RlOgo+IE9u IFdlZCwgSnVuIDE0LCAyMDE3IGF0IDAyOjQ3OjA2UE0gKzAzMDAsIEFuZGVyIENvbnNlbHZhbiBE ZSBPbGl2ZWlyYSB3cm90ZToKPiA+IE9uIFR1ZSwgMjAxNy0wNi0xMyBhdCAxMjowNiAtMDcwMCwg Um9kcmlnbyBWaXZpIHdyb3RlOgo+ID4gPiBPbiBUdWUsIEp1biAxMywgMjAxNyBhdCAxMTowNyBB TSwgTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4gd3JvdGU6Cj4gPiA+ID4g T24gVHVlLCBKdW4gMTMsIDIwMTcgYXQgMTA6NTI6MzBBTSAtMDcwMCwgUm9kcmlnbyBWaXZpIHdy b3RlOgo+ID4gPiA+ID4gVGhpcyByZXZlcnRzIGNvbW1pdCBiYjlkODVmNmU5ZGU4ZmVmNTIzNmMw NzY1MzBlYWI2N2EyZjI0MzFiLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBOZXcgZGRiIGFsbG9jYXRp b24gYWxnb3JpdGhtIGlzIGEgc2hvdyBzdG9wcGVyIG9uIG15IFNLTCBzeXN0ZW0uCj4gPiA+ID4g PiAKPiA+ID4gPiA+IEJlc2lkZXMgbm90IGJlIGFibGUgdG8gZ2V0IGV4dGVybmFsIERQIDRrQDYw ICh0aHJvdWdoIFVTQiB0eXBlIEMpLAo+ID4gPiA+ID4gSXQgZnVsbHkgaGFuZyBteSBzY3JlZW4g d2hlbiB1bnBsdWdnaW5nIHRoZSBVU0IgdHlwZSBDLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBDYzog TWFoZXNoIEt1bWFyIDxtYWhlc2gxLmt1bWFyQGludGVsLmNvbT4KPiA+ID4gPiA+IENjOiBNYWFy dGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+ID4gPiA+ ID4gQ2M6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+Cj4gPiA+ID4gPiBT aWduZWQtb2ZmLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cj4gPiA+ ID4gCj4gPiA+ID4gSXMgdGhlcmUgYSBidWd6aWxsYSBlbnRyeSB3aXRoIGRldGFpbHMvbG9ncyBm cm9tIHRoZSBmYWlsdXJlIHdlIGNhbgo+ID4gPiA+IHJlZmVyIHRvPwo+ID4gPiAKPiA+ID4gbm9w ZSwgc2luY2UgSSBrbm93IGl0IHdhcyB3b3JraW5nIGZldyB3ZWVrcyBhZ28gYW5kIHRoZW4gc3Rv cHBlZAo+ID4gPiB3b3JraW5nIEkgd2VudCBkaXJlY3RseQo+ID4gPiB0byBiaXNlY3Qgc28gSSBj b3VsZCBnZXQgbXkgc3lzdGVtIHVzYWJsZSBxdWlja2x5IGFnYWluLgo+ID4gPiAKPiA+ID4gQnV0 IHllcywgSSBuZWVkIHRvIG9wZW4gYSBwcm9wZXIgYnVnemlsbGEgYW5kIHByb3ZpZGUgbG9ncy4K PiA+ID4gU2hvdWxkIHdlIHJldmVydCBmaXJzdCBhbmQgZ3JhYiBsb2dzIGxhdHRlciBvciB3ZSBh cmUgZ29pbmcgdG8gdHJ5IHRvCj4gPiA+IGFuYWx5c2UgbG9ncyBhbmQgZml4Pwo+ID4gPiAKPiA+ ID4gQW55d2F5cyB0aGlzIGlzIGEgYmlnIHNob3cgc3RvcHBlciBzbyBJIGJlbGlldmUgd2UgcmV2 ZXJ0IGF0IGxlYXN0Cj4gPiA+IGJlZm9yZSBuZXh0IHB1bGwgcmVxdWVzdC4KPiA+IAo+ID4gVGhp cyBwYXRjaCBhbHNvIGNhdXNlcyBhcnRpZmFjdHMgaW4gZHVhbCBzY3JlZW4gc2V0dXBzLiBBbGwg dGhlIHNjYW5saW5lcyBiZWxvdwo+ID4gdGhlIG1vdXNlIGN1cnNvciBhcmUgd3JvbmcsIHNvbWV0 aW1lcyBjb250YWluaW5nIGEgc2hhZGUgb2YgZ3JheSBhbmQgb3RoZXJzCj4gPiByZXBlYXRpbmcg dGhlIGltYWdlIGFib3ZlLiBJJ3ZlIHNlZW4gdGhpcyBpbiBBUEwgYW5kIEdMSyB1c2luZyBEU0kr SERNSSwKPiA+IGVEUCtIRE1JIGFuZCBEU0krRFAuIEluIHRoZSBEUCBjYXNlLCBob3dldmVyLCB0 aGUgc2NyZWVuIGdvZXMgYmxhbmsgYW5kIHJlcG9ydHMKPiA+IGxhY2sgb2Ygc2lnbmFsLgo+ID4g Cj4gPiBJJ3ZlIG5vdGljZWQgZmlmbyB1bmRlcnJ1biBtZXNzYWdlcy4gSSBjb21wYXJlZCB0aGUg ZGRiIGFsbG9jYXRpb24gaW4gR0xLIHdpdGggYQo+ID4gd29ya2luZyBhbmQgbm9uLXdvcmtpbmcg a2VybmVsLCBidXQgdGhleSB3ZXJlIHRoZSBzYW1lLgo+ID4gCj4gPiBBbmRlcgo+IAo+IEFja25v d2xlZGdlZC1ieTogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KPiAKPiBm b3IgdGhlIHJldmVydCwgdW5sZXNzIE1haGVzaCBvciBNYWFydGVuIGhhdmUgYW4gaWRlYSBmb3Ig YW4gaW1tZWRpYXRlCj4gZml4IHRoYXQgY2FuIGJlIG1lcmdlZCBpbnN0ZWFkLgo+IAo+IExldCB1 cyBrbm93IHdoZW4geW91J3ZlIGhhZCBhIGNoYW5jZSB0byBmaWxlIGEgYnVnemlsbGEgd2l0aCBs b2dzIGFuZAo+IHN1Y2ggc28gdGhhdCB3ZSBjYW4gaW52ZXN0aWdhdGUgaW4gbW9yZSBkZXRhaWwu CgpJIGZpbGVkIHRoaXMgb25lOgoKaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1 Zy5jZ2k/aWQ9MTAxNDQxCgpBbmRlcgoKPiAKPiAKPiBNYXR0Cj4gCj4gPiAKPiA+ID4gCj4gPiA+ IFdoZW4geW91IHNheSB5b3UgY2FuJ3QgZ2V0IERQIDRrQDYwLCBhcmUgeW91IHNlZWluZyBtZXNz YWdlcwo+ID4gPiA+IGluIGRtZXNnIGFib3V0IHRoZSBzZXR1cCBiZWluZyBvdXRzaWRlIHN5c3Rl bSB3YXRlcm1hcmsgbGltaXRhdGlvbnMgb3IKPiA+ID4gPiBhcmUgeW91IGp1c3QgZ2V0dGluZyBh IGJsYWNrIHNjcmVlbj8KPiA+ID4gCj4gPiA+IGp1c3QgZ2V0dGluZyBhIGJsYW5rIHNjcmVlbiBv biBEUCB3aGVuIHBsdWdnaW5nIHVzYi1jIGFuZCBhIGxvY2tlZC11cAo+ID4gPiBzY3JlZW4gb24g ZURQIHdoZW4gcmVtb3ZpbmcgdXNiLWMuCj4gPiA+IAo+ID4gPiA+IAo+ID4gPiA+IAo+ID4gPiA+ IE1hdHQKPiA+ID4gPiAKPiA+ID4gPiA+IC0tLQo+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BtLmMgfCAyNTcgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+ID4gPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCA5OCBpbnNlcnRpb25zKCspLCAxNTkgZGVs ZXRpb25zKC0pCj4gPiA+ID4gPiAKPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ID4g PiA+ID4gaW5kZXggYWE5ZDhjZS4uZGM0Mjc1ZCAxMDA2NDQKPiA+ID4gPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMKPiA+ID4gPiA+IEBAIC00MTQwLDQxICs0MTQwLDEzIEBAIGludCBz a2xfY2hlY2tfcGlwZV9tYXhfcGl4ZWxfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YywKPiA+ID4gPiA+ICAgICAgIG1pbmltdW1bUExBTkVfQ1VSU09SXSA9IHNrbF9jdXJzb3JfYWxs b2NhdGlvbihudW1fYWN0aXZlKTsKPiA+ID4gPiA+ICB9Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IC1z dGF0aWMgdm9pZAo+ID4gPiA+ID4gLXNrbF9lbmFibGVfcGxhbmVfd21fbGV2ZWxzKGNvbnN0IHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gPiA+IC0gICAgICAgICAgICAg ICAgICAgICAgICB1aW50MTZfdCBwbGFuZV9kZGIsCj4gPiA+ID4gPiAtICAgICAgICAgICAgICAg ICAgICAgICAgdWludDE2X3QgbWF4X2xldmVsLAo+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBza2xfcGxhbmVfd20gKndtKQo+ID4gPiA+ID4gLXsKPiA+ID4gPiA+IC0g ICAgIGludCBsZXZlbDsKPiA+ID4gPiA+IC0gICAgIC8qCj4gPiA+ID4gPiAtICAgICAgKiBOb3cg ZW5hYmxlIGFsbCBsZXZlbHMgaW4gV00gc3RydWN0dXJlIHdoaWNoIGNhbiBiZSBlbmFibGVkCj4g PiA+ID4gPiAtICAgICAgKiB1c2luZyBjdXJyZW50IEREQiBhbGxvY2F0aW9uCj4gPiA+ID4gPiAt ICAgICAgKi8KPiA+ID4gPiA+IC0gICAgIGZvciAobGV2ZWwgPSBpbGtfd21fbWF4X2xldmVsKGRl dl9wcml2KTsgbGV2ZWwgPj0gMDsgbGV2ZWwtLSkgewo+ID4gPiA+ID4gLSAgICAgICAgICAgICBz dHJ1Y3Qgc2tsX3dtX2xldmVsICpsZXZlbF93bSA9ICZ3bS0+d21bbGV2ZWxdOwo+ID4gPiA+ID4g LQo+ID4gPiA+ID4gLSAgICAgICAgICAgICBpZiAobGV2ZWwgPiBtYXhfbGV2ZWwgfHwgbGV2ZWxf d20tPnBsYW5lX3Jlc19iID09IDAKPiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHx8IGxldmVsX3dtLT5wbGFuZV9yZXNfbCA+PSAzMQo+ID4gPiA+ID4gLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgbGV2ZWxfd20tPnBsYW5lX3Jlc19iID49 IHBsYW5lX2RkYikgewo+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgIGxldmVsX3dtLT5w bGFuZV9lbiA9IGZhbHNlOwo+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgIGxldmVsX3dt LT5wbGFuZV9yZXNfYiA9IDA7Cj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgbGV2ZWxf d20tPnBsYW5lX3Jlc19sID0gMDsKPiA+ID4gPiA+IC0gICAgICAgICAgICAgfSBlbHNlIHsKPiA+ ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICBsZXZlbF93bS0+cGxhbmVfZW4gPSB0cnVlOwo+ ID4gPiA+ID4gLSAgICAgICAgICAgICB9Cj4gPiA+ID4gPiAtICAgICB9Cj4gPiA+ID4gPiAtfQo+ ID4gPiA+ID4gLQo+ID4gPiA+ID4gIHN0YXRpYyBpbnQKPiA+ID4gPiA+ICBza2xfYWxsb2NhdGVf cGlwZV9kZGIoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKPiA+ID4gPiA+IC0gICAg ICAgICAgICAgICAgICAgc3RydWN0IHNrbF9waXBlX3dtICpwaXBlX3dtLAo+ID4gPiA+ID4gICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpkZGIgLyogb3V0ICov KQo+ID4gPiA+ID4gIHsKPiA+ID4gPiA+ICAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSA9IGNzdGF0ZS0+YmFzZS5zdGF0ZTsKPiA+ID4gPiA+ICAgICAgIHN0cnVjdCBkcm1fY3J0 YyAqY3J0YyA9IGNzdGF0ZS0+YmFzZS5jcnRjOwo+ID4gPiA+ID4gICAgICAgc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiA+ID4gPiA+IC0gICAgIHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiA+ID4gPiA+ICAgICAgIHN0cnVjdCBp bnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiA+ID4gPiA+ICAg ICAgIGVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiA+ID4gPiA+ICAgICAgIHN0 cnVjdCBza2xfZGRiX2VudHJ5ICphbGxvYyA9ICZjc3RhdGUtPndtLnNrbC5kZGI7Cj4gPiA+ID4g PiBAQCAtNDE4Nyw5ICs0MTU5LDYgQEAgaW50IHNrbF9jaGVja19waXBlX21heF9waXhlbF9yYXRl KHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAo+ID4gPiA+ID4gICAgICAgdW5zaWduZWQg cGxhbmVfZGF0YV9yYXRlW0k5MTVfTUFYX1BMQU5FU10gPSB7fTsKPiA+ID4gPiA+ICAgICAgIHVu c2lnbmVkIHBsYW5lX3lfZGF0YV9yYXRlW0k5MTVfTUFYX1BMQU5FU10gPSB7fTsKPiA+ID4gPiA+ ICAgICAgIHVpbnQxNl90IHRvdGFsX21pbl9ibG9ja3MgPSAwOwo+ID4gPiA+ID4gLSAgICAgdWlu dDE2X3QgdG90YWxfbGV2ZWxfZGRiOwo+ID4gPiA+ID4gLSAgICAgdWludDE2X3QgcGxhbmVfYmxv Y2tzID0gMDsKPiA+ID4gPiA+IC0gICAgIGludCBtYXhfbGV2ZWwsIGxldmVsOwo+ID4gPiA+ID4g Cj4gPiA+ID4gPiAgICAgICAvKiBDbGVhciB0aGUgcGFydGl0aW9uaW5nIGZvciBkaXNhYmxlZCBw bGFuZXMuICovCj4gPiA+ID4gPiAgICAgICBtZW1zZXQoZGRiLT5wbGFuZVtwaXBlXSwgMCwgc2l6 ZW9mKGRkYi0+cGxhbmVbcGlwZV0pKTsKPiA+ID4gPiA+IEBAIC00MjI4LDQ4ICs0MTk3LDEwIEBA IGludCBza2xfY2hlY2tfcGlwZV9tYXhfcGl4ZWxfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YywKPiA+ID4gPiA+ICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4gPiA+ID4g PiAgICAgICB9Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IC0gICAgIGFsbG9jX3NpemUgLT0gbWluaW11 bVtQTEFORV9DVVJTT1JdOwo+ID4gPiA+ID4gLSAgICAgZGRiLT5wbGFuZVtwaXBlXVtQTEFORV9D VVJTT1JdLnN0YXJ0ID0gYWxsb2MtPmVuZCAtCj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5pbXVtW1BMQU5FX0NVUlNPUl07 Cj4gPiA+ID4gPiArICAgICBhbGxvY19zaXplIC09IHRvdGFsX21pbl9ibG9ja3M7Cj4gPiA+ID4g PiArICAgICBkZGItPnBsYW5lW3BpcGVdW1BMQU5FX0NVUlNPUl0uc3RhcnQgPSBhbGxvYy0+ZW5k IC0gbWluaW11bVtQTEFORV9DVVJTT1JdOwo+ID4gPiA+ID4gICAgICAgZGRiLT5wbGFuZVtwaXBl XVtQTEFORV9DVVJTT1JdLmVuZCA9IGFsbG9jLT5lbmQ7Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IC0g ICAgIGZvciAobGV2ZWwgPSBpbGtfd21fbWF4X2xldmVsKGRldl9wcml2KTsgbGV2ZWwgPj0gMDsg bGV2ZWwtLSkgewo+ID4gPiA+ID4gLSAgICAgICAgICAgICB0b3RhbF9sZXZlbF9kZGIgPSAwOwo+ ID4gPiA+ID4gLSAgICAgICAgICAgICBmb3JfZWFjaF9wbGFuZV9pZF9vbl9jcnRjKGludGVsX2Ny dGMsIHBsYW5lX2lkKSB7Cj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgLyoKPiA+ID4g PiA+IC0gICAgICAgICAgICAgICAgICAgICAgKiBUT0RPOiBXZSBzaG91bGQgY2FsY3VsYXRlIHdh dGVybWFyayB2YWx1ZXMgZm9yIFkvVVYKPiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAg KiBwbGFuZSBib3RoIGluIGNhc2Ugb2YgTlYxMiBmb3JtYXQgYW5kIHVzZSBib3RoIHZhbHVlcwo+ ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAqIGZvciBkZGIgY2FsY3VsYXRpb24uIE5W MTIgaXMgZGlzYWJsZWQgYXMgb2Ygbm93LCBTbwo+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAg ICAgICAqIHVzaW5nIG9ubHkgc2luZ2xlL1VWIHBsYW5lIHZhbHVlIGhlcmUuCj4gPiA+ID4gPiAt ICAgICAgICAgICAgICAgICAgICAgICovCj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAg c3RydWN0IHNrbF9wbGFuZV93bSAqd20gPSAmcGlwZV93bS0+cGxhbmVzW3BsYW5lX2lkXTsKPiA+ ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCBwbGFuZV9yZXNfYiA9IHdtLT53 bVtsZXZlbF0ucGxhbmVfcmVzX2I7Cj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgdWlu dDE2X3QgbWluID0gbWluaW11bVtwbGFuZV9pZF0gKyB5X21pbmltdW1bcGxhbmVfaWRdOwo+ID4g PiA+ID4gLQo+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgIGlmIChwbGFuZV9pZCA9PSBQ TEFORV9DVVJTT1IpCj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250 aW51ZTsKPiA+ID4gPiA+IC0KPiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICB0b3RhbF9s ZXZlbF9kZGIgKz0gbWF4KHBsYW5lX3Jlc19iLCBtaW4pOwo+ID4gPiA+ID4gLSAgICAgICAgICAg ICB9Cj4gPiA+ID4gPiAtCj4gPiA+ID4gPiAtICAgICAgICAgICAgIC8qCj4gPiA+ID4gPiAtICAg ICAgICAgICAgICAqIElmIFRoaXMgbGV2ZWwgY2FuIHN1Y2Nlc3NmdWxseSBiZSBlbmFibGVkIHdp dGggdGhlCj4gPiA+ID4gPiAtICAgICAgICAgICAgICAqIHBpcGUncyBjdXJyZW50IEREQiBhbGxv Y2F0aW9uLCB0aGVuIGFsbCBsb3dlciBsZXZlbHMgYXJlCj4gPiA+ID4gPiAtICAgICAgICAgICAg ICAqIGd1YXJhbnRlZWQgdG8gc3VjY2VlZCBhcyB3ZWxsLgo+ID4gPiA+ID4gLSAgICAgICAgICAg ICAgKi8KPiA+ID4gPiA+IC0gICAgICAgICAgICAgaWYgKHRvdGFsX2xldmVsX2RkYiA8PSBhbGxv Y19zaXplKQo+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ID4gPiA+ID4g LSAgICAgfQo+ID4gPiA+ID4gLQo+ID4gPiA+ID4gLSAgICAgaWYgKChsZXZlbCA8IDApIHx8ICh0 b3RhbF9taW5fYmxvY2tzID4gYWxsb2Nfc2l6ZSkpIHsKPiA+ID4gPiA+IC0gICAgICAgICAgICAg RFJNX0RFQlVHX0tNUygiUmVxdWVzdGVkIGRpc3BsYXkgY29uZmlndXJhdGlvbiBleGNlZWRzIHN5 c3RlbSBEREIgbGltaXRhdGlvbnMiKTsKPiA+ID4gPiA+IC0gICAgICAgICAgICAgRFJNX0RFQlVH X0tNUygibWluaW11bSByZXF1aXJlZCAlZC8lZFxuIiwgKGxldmVsIDwgMCkgPwo+ID4gPiA+ID4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxfbGV2ZWxfZGRiIDogdG90YWxfbWlu X2Jsb2NrcywgYWxsb2Nfc2l6ZSk7Cj4gPiA+ID4gPiAtICAgICAgICAgICAgIHJldHVybiAtRUlO VkFMOwo+ID4gPiA+ID4gLSAgICAgfQo+ID4gPiA+ID4gLSAgICAgbWF4X2xldmVsID0gbGV2ZWw7 Cj4gPiA+ID4gPiAtICAgICBhbGxvY19zaXplIC09IHRvdGFsX2xldmVsX2RkYjsKPiA+ID4gPiA+ IC0KPiA+ID4gPiA+ICAgICAgIC8qCj4gPiA+ID4gPiAgICAgICAgKiAyLiBEaXN0cmlidXRlIHRo ZSByZW1haW5pbmcgc3BhY2UgaW4gcHJvcG9ydGlvbiB0byB0aGUgYW1vdW50IG9mCj4gPiA+ID4g PiAgICAgICAgKiBkYXRhIGVhY2ggcGxhbmUgbmVlZHMgdG8gZmV0Y2ggZnJvbSBtZW1vcnkuCj4g PiA+ID4gPiBAQCAtNDI3OSwyNCArNDIxMCwxMyBAQCBpbnQgc2tsX2NoZWNrX3BpcGVfbWF4X3Bp eGVsX3JhdGUoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCj4gPiA+ID4gPiAgICAgICB0 b3RhbF9kYXRhX3JhdGUgPSBza2xfZ2V0X3RvdGFsX3JlbGF0aXZlX2RhdGFfcmF0ZShjc3RhdGUs Cj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwbGFuZV9kYXRhX3JhdGUsCj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFuZV95X2RhdGFfcmF0ZSk7 Cj4gPiA+ID4gPiAtICAgICAvKgo+ID4gPiA+ID4gLSAgICAgICogUExBTkVfQ1VSU09SIGRhdGEg cmF0ZSBpcyBub3QgaW5jbHVkZWQgaW4gdG90YWxfZGF0YV9yYXRlLgo+ID4gPiA+ID4gLSAgICAg ICogSWYgb25seSBjdXJzb3IgcGxhbmUgaXMgZW5hYmxlZCB3ZSBoYXZlIHRvIGVuYWJsZSBpdHMg V00gbGV2ZWxzCj4gPiA+ID4gPiAtICAgICAgKiBleHBsaWNpdGx5IGJlZm9yZSByZXR1cm5pbmcu IEN1cnNvciBoYXMgZml4ZWQgZGRiIGFsbG9jYXRpb24sCj4gPiA+ID4gPiAtICAgICAgKiBTbyBp dCdzIG9rIHRvIGFsd2F5cyBjaGVjayBjdXJzb3IgV00gZW5hYmxpbmcgYmVmb3JlIHJldHVybi4K PiA+ID4gPiA+IC0gICAgICAqLwo+ID4gPiA+ID4gLSAgICAgcGxhbmVfYmxvY2tzID0gc2tsX2Rk Yl9lbnRyeV9zaXplKCZkZGItPnBsYW5lW3BpcGVdW1BMQU5FX0NVUlNPUl0pOwo+ID4gPiA+ID4g LSAgICAgc2tsX2VuYWJsZV9wbGFuZV93bV9sZXZlbHMoZGV2X3ByaXYsIHBsYW5lX2Jsb2Nrcywg bWF4X2xldmVsLAo+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBp cGVfd20tPnBsYW5lc1tQTEFORV9DVVJTT1JdKTsKPiA+ID4gPiA+ICAgICAgIGlmICh0b3RhbF9k YXRhX3JhdGUgPT0gMCkKPiA+ID4gPiA+ICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4gPiA+ID4g PiAKPiA+ID4gPiA+ICAgICAgIHN0YXJ0ID0gYWxsb2MtPnN0YXJ0Owo+ID4gPiA+ID4gICAgICAg Zm9yX2VhY2hfcGxhbmVfaWRfb25fY3J0YyhpbnRlbF9jcnRjLCBwbGFuZV9pZCkgewo+ID4gPiA+ ID4gICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZGF0YV9yYXRlLCB5X2RhdGFfcmF0ZTsKPiA+ ID4gPiA+IC0gICAgICAgICAgICAgdWludDE2X3QgcGxhbmVfYmxvY2tzID0gMCwgeV9wbGFuZV9i bG9ja3MgPSAwOwo+ID4gPiA+ID4gLSAgICAgICAgICAgICBzdHJ1Y3Qgc2tsX3BsYW5lX3dtICp3 bSA9ICZwaXBlX3dtLT5wbGFuZXNbcGxhbmVfaWRdOwo+ID4gPiA+ID4gLSAgICAgICAgICAgICB1 aW50MTZfdCBwbGFuZV9yZXNfYiA9IHdtLT53bVttYXhfbGV2ZWxdLnBsYW5lX3Jlc19iOwo+ID4g PiA+ID4gKyAgICAgICAgICAgICB1aW50MTZfdCBwbGFuZV9ibG9ja3MsIHlfcGxhbmVfYmxvY2tz ID0gMDsKPiA+ID4gPiA+IAo+ID4gPiA+ID4gICAgICAgICAgICAgICBpZiAocGxhbmVfaWQgPT0g UExBTkVfQ1VSU09SKQo+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ ID4gPiA+ID4gQEAgLTQzMDgsMzYgKzQyMjgsMzMgQEAgaW50IHNrbF9jaGVja19waXBlX21heF9w aXhlbF9yYXRlKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAo+ID4gPiA+ID4gICAgICAg ICAgICAgICAgKiBwcm9tb3RlIHRoZSBleHByZXNzaW9uIHRvIDY0IGJpdHMgdG8gYXZvaWQgb3Zl cmZsb3dpbmcsIHRoZQo+ID4gPiA+ID4gICAgICAgICAgICAgICAgKiByZXN1bHQgaXMgPCBhdmFp bGFibGUgYXMgZGF0YV9yYXRlIC8gdG90YWxfZGF0YV9yYXRlIDwgMQo+ID4gPiA+ID4gICAgICAg ICAgICAgICAgKi8KPiA+ID4gPiA+ICsgICAgICAgICAgICAgcGxhbmVfYmxvY2tzID0gbWluaW11 bVtwbGFuZV9pZF07Cj4gPiA+ID4gPiArICAgICAgICAgICAgIHBsYW5lX2Jsb2NrcyArPSBkaXZf dTY0KCh1aW50NjRfdClhbGxvY19zaXplICogZGF0YV9yYXRlLAo+ID4gPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbF9kYXRhX3JhdGUpOwo+ID4gPiA+ID4g Cj4gPiA+ID4gPiAgICAgICAgICAgICAgIC8qIExlYXZlIGRpc2FibGVkIHBsYW5lcyBhdCAoMCww KSAqLwo+ID4gPiA+ID4gICAgICAgICAgICAgICBpZiAoZGF0YV9yYXRlKSB7Cj4gPiA+ID4gPiAt ICAgICAgICAgICAgICAgICAgICAgcGxhbmVfYmxvY2tzID0gbWF4KG1pbmltdW1bcGxhbmVfaWRd LCBwbGFuZV9yZXNfYik7Cj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgcGxhbmVfYmxv Y2tzICs9IGRpdl91NjQoKHVpbnQ2NF90KWFsbG9jX3NpemUgKgo+ID4gPiA+ID4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhX3JhdGUsIHRvdGFsX2RhdGFfcmF0ZSk7 Cj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgZGRiLT5wbGFuZVtwaXBlXVtwbGFuZV9p ZF0uc3RhcnQgPSBzdGFydDsKPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICBkZGItPnBs YW5lW3BpcGVdW3BsYW5lX2lkXS5lbmQgPSBzdGFydCArIHBsYW5lX2Jsb2NrczsKPiA+ID4gPiA+ IC0gICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBwbGFuZV9ibG9ja3M7Cj4gPiA+ID4gPiAg ICAgICAgICAgICAgIH0KPiA+ID4gPiA+IAo+ID4gPiA+ID4gKyAgICAgICAgICAgICBzdGFydCAr PSBwbGFuZV9ibG9ja3M7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiAgICAgICAgICAgICAgIC8qCj4g PiA+ID4gPiAgICAgICAgICAgICAgICAqIGFsbG9jYXRpb24gZm9yIHlfcGxhbmUgcGFydCBvZiBw bGFuYXIgZm9ybWF0Ogo+ID4gPiA+ID4gLSAgICAgICAgICAgICAgKiBUT0RPOiBPbmNlIHdlIHN0 YXJ0IGNhbGN1bGF0aW5nIHdhdGVybWFyayB2YWx1ZXMgZm9yIFkvVVYKPiA+ID4gPiA+IC0gICAg ICAgICAgICAgICogcGxhbmUgYm90aCBjb25zaWRlciBpdCBmb3IgaW5pdGlhbCBhbGxvd2VkIHdt IGJsb2Nrcy4KPiA+ID4gPiA+ICAgICAgICAgICAgICAgICovCj4gPiA+ID4gPiAgICAgICAgICAg ICAgIHlfZGF0YV9yYXRlID0gcGxhbmVfeV9kYXRhX3JhdGVbcGxhbmVfaWRdOwo+ID4gPiA+ID4g Cj4gPiA+ID4gPiArICAgICAgICAgICAgIHlfcGxhbmVfYmxvY2tzID0geV9taW5pbXVtW3BsYW5l X2lkXTsKPiA+ID4gPiA+ICsgICAgICAgICAgICAgeV9wbGFuZV9ibG9ja3MgKz0gZGl2X3U2NCgo dWludDY0X3QpYWxsb2Nfc2l6ZSAqIHlfZGF0YV9yYXRlLAo+ID4gPiA+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbF9kYXRhX3JhdGUpOwo+ID4gPiA+ID4gKwo+ ID4gPiA+ID4gICAgICAgICAgICAgICBpZiAoeV9kYXRhX3JhdGUpIHsKPiA+ID4gPiA+IC0gICAg ICAgICAgICAgICAgICAgICB5X3BsYW5lX2Jsb2NrcyA9IHlfbWluaW11bVtwbGFuZV9pZF07Cj4g PiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgeV9wbGFuZV9ibG9ja3MgKz0gZGl2X3U2NCgo dWludDY0X3QpYWxsb2Nfc2l6ZSAqCj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHlfZGF0YV9yYXRlLCB0b3RhbF9kYXRhX3JhdGUpOwo+ID4gPiA+ID4gICAg ICAgICAgICAgICAgICAgICAgIGRkYi0+eV9wbGFuZVtwaXBlXVtwbGFuZV9pZF0uc3RhcnQgPSBz dGFydDsKPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICBkZGItPnlfcGxhbmVbcGlwZV1b cGxhbmVfaWRdLmVuZCA9IHN0YXJ0ICsgeV9wbGFuZV9ibG9ja3M7Cj4gPiA+ID4gPiAtICAgICAg ICAgICAgICAgICAgICAgc3RhcnQgKz0geV9wbGFuZV9ibG9ja3M7Cj4gPiA+ID4gPiAgICAgICAg ICAgICAgIH0KPiA+ID4gPiA+IC0gICAgICAgICAgICAgc2tsX2VuYWJsZV9wbGFuZV93bV9sZXZl bHMoZGV2X3ByaXYsCj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBsYW5lX2Jsb2NrcywKPiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbWF4X2xldmVsLAo+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB3bSk7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArICAgICAgICAg ICAgIHN0YXJ0ICs9IHlfcGxhbmVfYmxvY2tzOwo+ID4gPiA+ID4gICAgICAgfQo+ID4gPiA+ID4g Cj4gPiA+ID4gPiAgICAgICByZXR1cm4gMDsKPiA+ID4gPiA+IEBAIC00NDI3LDkgKzQzNDQsMTEg QEAgc3RhdGljIHVpbnRfZml4ZWRfMTZfMTZfdCBza2xfd21fbWV0aG9kMih1aW50MzJfdCBwaXhl bF9yYXRlLAo+ID4gPiA+ID4gIHN0YXRpYyBpbnQgc2tsX2NvbXB1dGVfcGxhbmVfd20oY29uc3Qg c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiA+ID4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKPiA+ID4g PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFu ZV9zdGF0ZSAqaW50ZWxfcHN0YXRlLAo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdWludDE2X3QgZGRiX2FsbG9jYXRpb24sCj4gPiA+ID4gPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQgbGV2ZWwsCj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1aW50MTZfdCAqb3V0X2Jsb2NrcywgLyogb3V0ICovCj4gPiA+ID4gPiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpvdXRfbGluZXMgLyogb3V0ICovKQo+ID4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqb3V0X2xpbmVzLCAv KiBvdXQgKi8KPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgKmVu YWJsZWQgLyogb3V0ICovKQo+ID4gPiA+ID4gIHsKPiA+ID4gPiA+ICAgICAgIHN0cnVjdCBpbnRl bF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShpbnRlbF9wc3RhdGUtPmJhc2UucGxhbmUp Owo+ID4gPiA+ID4gICAgICAgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcHN0YXRlID0g JmludGVsX3BzdGF0ZS0+YmFzZTsKPiA+ID4gPiA+IEBAIC00NDUyLDggKzQzNzEsMTAgQEAgc3Rh dGljIGludCBza2xfY29tcHV0ZV9wbGFuZV93bShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCj4gPiA+ID4gPiAgICAgICBib29sIHlfdGlsZWQsIHhfdGlsZWQ7Cj4gPiA+ ID4gPiAKPiA+ID4gPiA+ICAgICAgIGlmIChsYXRlbmN5ID09IDAgfHwKPiA+ID4gPiA+IC0gICAg ICAgICAhaW50ZWxfd21fcGxhbmVfdmlzaWJsZShjc3RhdGUsIGludGVsX3BzdGF0ZSkpCj4gPiA+ ID4gPiArICAgICAgICAgIWludGVsX3dtX3BsYW5lX3Zpc2libGUoY3N0YXRlLCBpbnRlbF9wc3Rh dGUpKSB7Cj4gPiA+ID4gPiArICAgICAgICAgICAgICplbmFibGVkID0gZmFsc2U7Cj4gPiA+ID4g PiAgICAgICAgICAgICAgIHJldHVybiAwOwo+ID4gPiA+ID4gKyAgICAgfQo+ID4gPiA+ID4gCj4g PiA+ID4gPiAgICAgICB5X3RpbGVkID0gZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9Z X1RJTEVEIHx8Cj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgZmItPm1vZGlmaWVyID09IEk5MTVf Rk9STUFUX01PRF9ZZl9USUxFRDsKPiA+ID4gPiA+IEBAIC00NTQxLDYgKzQ0NjIsOSBAQCBzdGF0 aWMgaW50IHNrbF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiA+ID4gPiA+ICAgICAgICAgICAgICAgaWYgKChjcHAgKiBjc3RhdGUtPmJh c2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCAvIDUxMiA8IDEpICYmCj4gPiA+ID4gPiAgICAg ICAgICAgICAgICAgICAocGxhbmVfYnl0ZXNfcGVyX2xpbmUgLyA1MTIgPCAxKSkKPiA+ID4gPiA+ ICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZF9yZXN1bHQgPSBtZXRob2QyOwo+ID4gPiA+ ID4gKyAgICAgICAgICAgICBlbHNlIGlmICgoZGRiX2FsbG9jYXRpb24gJiYgZGRiX2FsbG9jYXRp b24gLwo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIGZpeGVkXzE2XzE2X3RvX3UzMl9y b3VuZF91cChwbGFuZV9ibG9ja3NfcGVyX2xpbmUpKSA+PSAxKQo+ID4gPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgIHNlbGVjdGVkX3Jlc3VsdCA9IG1pbl9maXhlZF8xNl8xNihtZXRob2QxLCBt ZXRob2QyKTsKPiA+ID4gPiA+ICAgICAgICAgICAgICAgZWxzZSBpZiAobGF0ZW5jeSA+PSBsaW5l dGltZV91cykKPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZF9yZXN1bHQg PSBtaW5fZml4ZWRfMTZfMTYobWV0aG9kMSwgbWV0aG9kMik7Cj4gPiA+ID4gPiAgICAgICAgICAg ICAgIGVsc2UKPiA+ID4gPiA+IEBAIC00NTYwLDQyICs0NDg0LDY0IEBAIHN0YXRpYyBpbnQgc2ts X2NvbXB1dGVfcGxhbmVfd20oY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ID4gPiA+ID4gICAgICAgICAgICAgICB9Cj4gPiA+ID4gPiAgICAgICB9Cj4gPiA+ID4gPiAK PiA+ID4gPiA+IC0gICAgIGlmIChyZXNfbGluZXMgPj0gMzEgJiYgbGV2ZWwgPT0gMCkgewo+ID4g PiA+ID4gLSAgICAgICAgICAgICBzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSA9IHBzdGF0ZS0+cGxh bmU7Cj4gPiA+ID4gPiArICAgICBpZiAocmVzX2Jsb2NrcyA+PSBkZGJfYWxsb2NhdGlvbiB8fCBy ZXNfbGluZXMgPiAzMSkgewo+ID4gPiA+ID4gKyAgICAgICAgICAgICAqZW5hYmxlZCA9IGZhbHNl Owo+ID4gPiA+ID4gCj4gPiA+ID4gPiAtICAgICAgICAgICAgIERSTV9ERUJVR19LTVMoIlJlcXVl c3RlZCBkaXNwbGF5IGNvbmZpZ3VyYXRpb24gZXhjZWVkcyBzeXN0ZW0gd2F0ZXJtYXJrIGxpbWl0 YXRpb25zXG4iKTsKPiA+ID4gPiA+IC0gICAgICAgICAgICAgRFJNX0RFQlVHX0tNUygiW1BMQU5F OiVkOiVzXSBsaW5lcyByZXF1aXJlZCA9ICV1LzMxXG4iLAo+ID4gPiA+ID4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGxhbmUtPmJhc2UuaWQsIHBsYW5lLT5uYW1lLCByZXNfbGluZXMp Owo+ID4gPiA+ID4gLSAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiA+ID4gPiA+ICsgICAg ICAgICAgICAgLyoKPiA+ID4gPiA+ICsgICAgICAgICAgICAgICogSWYgdGhlcmUgYXJlIG5vIHZh bGlkIGxldmVsIDAgd2F0ZXJtYXJrcywgdGhlbiB3ZSBjYW4ndAo+ID4gPiA+ID4gKyAgICAgICAg ICAgICAgKiBzdXBwb3J0IHRoaXMgZGlzcGxheSBjb25maWd1cmF0aW9uLgo+ID4gPiA+ID4gKyAg ICAgICAgICAgICAgKi8KPiA+ID4gPiA+ICsgICAgICAgICAgICAgaWYgKGxldmVsKSB7Cj4gPiA+ ID4gPiArICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4gPiA+ID4gPiArICAgICAgICAg ICAgIH0gZWxzZSB7Cj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9w bGFuZSAqcGxhbmUgPSBwc3RhdGUtPnBsYW5lOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgIERSTV9ERUJVR19LTVMoIlJlcXVlc3RlZCBkaXNwbGF5IGNvbmZpZ3Vy YXRpb24gZXhjZWVkcyBzeXN0ZW0gd2F0ZXJtYXJrIGxpbWl0YXRpb25zXG4iKTsKPiA+ID4gPiA+ ICsgICAgICAgICAgICAgICAgICAgICBEUk1fREVCVUdfS01TKCJbUExBTkU6JWQ6JXNdIGJsb2Nr cyByZXF1aXJlZCA9ICV1LyV1LCBsaW5lcyByZXF1aXJlZCA9ICV1LzMxXG4iLAo+ID4gPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhbmUtPmJhc2UuaWQsIHBsYW5l LT5uYW1lLAo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz X2Jsb2NrcywgZGRiX2FsbG9jYXRpb24sIHJlc19saW5lcyk7Cj4gPiA+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4gPiA+ID4gPiArICAgICAgICAgICAgIH0KPiA+ ID4gPiA+ICAgICAgIH0KPiA+ID4gPiA+IAo+ID4gPiA+ID4gICAgICAgKm91dF9ibG9ja3MgPSBy ZXNfYmxvY2tzOwo+ID4gPiA+ID4gICAgICAgKm91dF9saW5lcyA9IHJlc19saW5lczsKPiA+ID4g PiA+ICsgICAgICplbmFibGVkID0gdHJ1ZTsKPiA+ID4gPiA+IAo+ID4gPiA+ID4gICAgICAgcmV0 dXJuIDA7Cj4gPiA+ID4gPiAgfQo+ID4gPiA+ID4gCj4gPiA+ID4gPiAgc3RhdGljIGludAo+ID4g PiA+ID4gIHNrbF9jb21wdXRlX3dtX2xldmVscyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgIHN0cnVjdCBza2xfZGRi X2FsbG9jYXRpb24gKmRkYiwKPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgY29u c3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICppbnRlbF9wc3RhdGUsCj4gPiA+ID4gPiAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBza2xfcGxhbmVfd20gKndtKQo+ID4gPiA+ID4gIHsKPiA+ ID4gPiA+ICsgICAgIHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0 Yyhjc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gPiA+ID4gPiArICAgICBzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSA9IGludGVsX3BzdGF0ZS0+YmFzZS5wbGFuZTsKPiA+ID4gPiA+ICsgICAgIHN0cnVjdCBp bnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7Cj4gPiA+ID4g PiArICAgICB1aW50MTZfdCBkZGJfYmxvY2tzOwo+ID4gPiA+ID4gKyAgICAgZW51bSBwaXBlIHBp cGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ID4gPiA+ID4gICAgICAgaW50IGxldmVsLCBtYXhfbGV2 ZWwgPSBpbGtfd21fbWF4X2xldmVsKGRldl9wcml2KTsKPiA+ID4gPiA+ICAgICAgIGludCByZXQ7 Cj4gPiA+ID4gPiAKPiA+ID4gPiA+ICAgICAgIGlmIChXQVJOX09OKCFpbnRlbF9wc3RhdGUtPmJh c2UuZmIpKQo+ID4gPiA+ID4gICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiA+ID4gPiA+ IAo+ID4gPiA+ID4gKyAgICAgZGRiX2Jsb2NrcyA9IHNrbF9kZGJfZW50cnlfc2l6ZSgmZGRiLT5w bGFuZVtwaXBlXVtpbnRlbF9wbGFuZS0+aWRdKTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICAgICAg IGZvciAobGV2ZWwgPSAwOyBsZXZlbCA8PSBtYXhfbGV2ZWw7IGxldmVsKyspIHsKPiA+ID4gPiA+ ICAgICAgICAgICAgICAgc3RydWN0IHNrbF93bV9sZXZlbCAqcmVzdWx0ID0gJndtLT53bVtsZXZl bF07Cj4gPiA+ID4gPiAKPiA+ID4gPiA+ICAgICAgICAgICAgICAgcmV0ID0gc2tsX2NvbXB1dGVf cGxhbmVfd20oZGV2X3ByaXYsCj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNzdGF0ZSwKPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50ZWxfcHN0YXRlLAo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkZGJfYmxvY2tzLAo+ID4gPiA+ID4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbCwKPiA+ID4gPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJlc3VsdC0+cGxhbmVfcmVzX2IsCj4gPiA+ ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyZXN1bHQtPnBs YW5lX3Jlc19sKTsKPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJnJlc3VsdC0+cGxhbmVfcmVzX2wsCj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZyZXN1bHQtPnBsYW5lX2VuKTsKPiA+ID4gPiA+ICAgICAg ICAgICAgICAgaWYgKHJldCkKPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g cmV0Owo+ID4gPiA+ID4gICAgICAgfQo+ID4gPiA+ID4gQEAgLTQ2NjEsNyArNDYwNyw4IEBAIHN0 YXRpYyBpbnQgc2tsX2J1aWxkX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0 ZSwKPiA+ID4gPiA+IAo+ID4gPiA+ID4gICAgICAgICAgICAgICB3bSA9ICZwaXBlX3dtLT5wbGFu ZXNbcGxhbmVfaWRdOwo+ID4gPiA+ID4gCj4gPiA+ID4gPiAtICAgICAgICAgICAgIHJldCA9IHNr bF9jb21wdXRlX3dtX2xldmVscyhkZXZfcHJpdiwgY3N0YXRlLCBpbnRlbF9wc3RhdGUsIHdtKTsK PiA+ID4gPiA+ICsgICAgICAgICAgICAgcmV0ID0gc2tsX2NvbXB1dGVfd21fbGV2ZWxzKGRldl9w cml2LCBkZGIsIGNzdGF0ZSwKPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludGVsX3BzdGF0ZSwgd20pOwo+ID4gPiA+ID4gICAgICAgICAgICAgICBp ZiAocmV0KQo+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiA+ ID4gPiAgICAgICAgICAgICAgIHNrbF9jb21wdXRlX3RyYW5zaXRpb25fd20oY3N0YXRlLCAmd20t PnRyYW5zX3dtKTsKPiA+ID4gPiA+IEBAIC00Nzc0LDQ1ICs0NzIxLDYgQEAgYm9vbCBza2xfZGRi X2FsbG9jYXRpb25fb3ZlcmxhcHMoY29uc3Qgc3RydWN0IHNrbF9kZGJfZW50cnkgKiplbnRyaWVz LAo+ID4gPiA+ID4gICAgICAgcmV0dXJuIGZhbHNlOwo+ID4gPiA+ID4gIH0KPiA+ID4gPiA+IAo+ ID4gPiA+ID4gLXN0YXRpYyBpbnQKPiA+ID4gPiA+IC1za2xfZGRiX2FkZF9hZmZlY3RlZF9wbGFu ZXMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKPiA+ID4gPiA+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNrbF9waXBlX3dtICpvbGRfcGlwZV93bSwKPiA+ ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNrbF9waXBlX3dt ICpwaXBlX3dtKQo+ID4gPiA+ID4gLXsKPiA+ID4gPiA+IC0gICAgIHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSA9IGNzdGF0ZS0+YmFzZS5zdGF0ZTsKPiA+ID4gPiA+IC0gICAgIHN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+ZGV2Owo+ID4gPiA+ID4gLSAgICAgc3RydWN0IGRy bV9jcnRjICpjcnRjID0gY3N0YXRlLT5iYXNlLmNydGM7Cj4gPiA+ID4gPiAtICAgICBzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gPiA+ID4gPiAt ICAgICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4g PiA+ID4gPiAtICAgICBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9IHRv X2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSk7Cj4gPiA+ID4gPiAtICAgICBzdHJ1Y3Qgc2tsX2Rk Yl9hbGxvY2F0aW9uICpuZXdfZGRiID0gJmludGVsX3N0YXRlLT53bV9yZXN1bHRzLmRkYjsKPiA+ ID4gPiA+IC0gICAgIHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmN1cl9kZGIgPSAmZGV2X3By aXYtPndtLnNrbF9ody5kZGI7Cj4gPiA+ID4gPiAtICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRl ICpwbGFuZV9zdGF0ZTsKPiA+ID4gPiA+IC0gICAgIHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwo+ ID4gPiA+ID4gLSAgICAgZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ID4gPiA+ ID4gLQo+ID4gPiA+ID4gLSAgICAgV0FSTl9PTighZHJtX2F0b21pY19nZXRfZXhpc3RpbmdfY3J0 Y19zdGF0ZShzdGF0ZSwgY3J0YykpOwo+ID4gPiA+ID4gLQo+ID4gPiA+ID4gLSAgICAgZHJtX2Zv cl9lYWNoX3BsYW5lX21hc2socGxhbmUsIGRldiwgY3N0YXRlLT5iYXNlLnBsYW5lX21hc2spIHsK PiA+ID4gPiA+IC0gICAgICAgICAgICAgZW51bSBwbGFuZV9pZCBwbGFuZV9pZCA9IHRvX2ludGVs X3BsYW5lKHBsYW5lKS0+aWQ7Cj4gPiA+ID4gPiAtICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBz a2xfcGxhbmVfd20gKndtID0gJnBpcGVfd20tPnBsYW5lc1twbGFuZV9pZF07Cj4gPiA+ID4gPiAt ICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBza2xfcGxhbmVfd20gKm9sZF93bSA9ICZvbGRfcGlw ZV93bS0+cGxhbmVzW3BsYW5lX2lkXTsKPiA+ID4gPiA+IC0KPiA+ID4gPiA+IC0gICAgICAgICAg ICAgaWYgKChza2xfZGRiX2VudHJ5X2VxdWFsKCZjdXJfZGRiLT5wbGFuZVtwaXBlXVtwbGFuZV9p ZF0sCj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuZXdf ZGRiLT5wbGFuZVtwaXBlXVtwbGFuZV9pZF0pICYmCj4gPiA+ID4gPiAtICAgICAgICAgICAgICAg ICBza2xfZGRiX2VudHJ5X2VxdWFsKCZjdXJfZGRiLT55X3BsYW5lW3BpcGVdW3BsYW5lX2lkXSwK PiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ld19kZGIt PnlfcGxhbmVbcGlwZV1bcGxhbmVfaWRdKSkgJiYKPiA+ID4gPiA+IC0gICAgICAgICAgICAgICAg ICFtZW1jbXAod20sIG9sZF93bSwgc2l6ZW9mKHN0cnVjdCBza2xfcGxhbmVfd20pKSkKPiA+ID4g PiA+IC0gICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKPiA+ID4gPiA+IC0KPiA+ID4gPiA+ IC0gICAgICAgICAgICAgcGxhbmVfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9wbGFuZV9zdGF0ZShz dGF0ZSwgcGxhbmUpOwo+ID4gPiA+ID4gLSAgICAgICAgICAgICBpZiAoSVNfRVJSKHBsYW5lX3N0 YXRlKSkKPiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gUFRSX0VSUihwbGFu ZV9zdGF0ZSk7Cj4gPiA+ID4gPiAtICAgICB9Cj4gPiA+ID4gPiAtCj4gPiA+ID4gPiAtICAgICBy ZXR1cm4gMDsKPiA+ID4gPiA+IC19Cj4gPiA+ID4gPiAtCj4gPiA+ID4gPiAgc3RhdGljIGludCBz a2xfdXBkYXRlX3BpcGVfd20oc3RydWN0IGRybV9jcnRjX3N0YXRlICpjc3RhdGUsCj4gPiA+ID4g PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNrbF9waXBlX3dtICpv bGRfcGlwZV93bSwKPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg c2tsX3BpcGVfd20gKnBpcGVfd20sIC8qIG91dCAqLwo+ID4gPiA+ID4gQEAgLTQ4MjYsMTcgKzQ3 MzQsNiBAQCBzdGF0aWMgaW50IHNrbF91cGRhdGVfcGlwZV93bShzdHJ1Y3QgZHJtX2NydGNfc3Rh dGUgKmNzdGF0ZSwKPiA+ID4gPiA+ICAgICAgIGlmIChyZXQpCj4gPiA+ID4gPiAgICAgICAgICAg ICAgIHJldHVybiByZXQ7Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IC0gICAgIHJldCA9IHNrbF9hbGxv Y2F0ZV9waXBlX2RkYihpbnRlbF9jc3RhdGUsIHBpcGVfd20sIGRkYik7Cj4gPiA+ID4gPiAtICAg ICBpZiAocmV0KQo+ID4gPiA+ID4gLSAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gPiA+ID4g LSAgICAgLyoKPiA+ID4gPiA+IC0gICAgICAqIFRPRE86IFBsYW5lcyBhcmUgaW5jbHVkZWQgaW4g c3RhdGUgdG8gYXJtIFdNIHJlZ2lzdGVycy4KPiA+ID4gPiA+IC0gICAgICAqIFNjb3BlIHRvIG9w dGltaXplIGZ1cnRoZXIsIGJ5IGp1c3QgcmV3cml0aW5nIHBsYW5lIHN1cmYgcmVnaXN0ZXIuCj4g PiA+ID4gPiAtICAgICAgKi8KPiA+ID4gPiA+IC0gICAgIHJldCA9IHNrbF9kZGJfYWRkX2FmZmVj dGVkX3BsYW5lcyhpbnRlbF9jc3RhdGUsIG9sZF9waXBlX3dtLCBwaXBlX3dtKTsKPiA+ID4gPiA+ IC0gICAgIGlmIChyZXQpCj4gPiA+ID4gPiAtICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiA+ ID4gPiAtCj4gPiA+ID4gPiAgICAgICBpZiAoIW1lbWNtcChvbGRfcGlwZV93bSwgcGlwZV93bSwg c2l6ZW9mKCpwaXBlX3dtKSkpCj4gPiA+ID4gPiAgICAgICAgICAgICAgICpjaGFuZ2VkID0gZmFs c2U7Cj4gPiA+ID4gPiAgICAgICBlbHNlCj4gPiA+ID4gPiBAQCAtNDg1OSw3ICs0NzU2LDQxIEBA IHN0YXRpYyBpbnQgc2tsX3VwZGF0ZV9waXBlX3dtKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3N0 YXRlLAo+ID4gPiA+ID4gIH0KPiA+ID4gPiA+IAo+ID4gPiA+ID4gIHN0YXRpYyBpbnQKPiA+ID4g PiA+IC1za2xfaW5jbHVkZV9hZmZlY3RlZF9jcnRjcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq c3RhdGUpCj4gPiA+ID4gPiArc2tsX2RkYl9hZGRfYWZmZWN0ZWRfcGxhbmVzKHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjc3RhdGUpCj4gPiA+ID4gPiArewo+ID4gPiA+ID4gKyAgICAgc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3N0YXRlLT5iYXNlLnN0YXRlOwo+ID4gPiA+ID4g KyAgICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5kZXY7Cj4gPiA+ID4gPiArICAg ICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBjc3RhdGUtPmJhc2UuY3J0YzsKPiA+ID4gPiA+ICsg ICAgIHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsK PiA+ID4gPiA+ICsgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKPiA+ID4gPiA+ICsgICAgIHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVs X3N0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKTsKPiA+ID4gPiA+ICsgICAgIHN0 cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKm5ld19kZGIgPSAmaW50ZWxfc3RhdGUtPndtX3Jlc3Vs dHMuZGRiOwo+ID4gPiA+ID4gKyAgICAgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAqY3VyX2Rk YiA9ICZkZXZfcHJpdi0+d20uc2tsX2h3LmRkYjsKPiA+ID4gPiA+ICsgICAgIHN0cnVjdCBkcm1f cGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOwo+ID4gPiA+ID4gKyAgICAgc3RydWN0IGRybV9wbGFu ZSAqcGxhbmU7Cj4gPiA+ID4gPiArICAgICBlbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBp cGU7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArICAgICBXQVJOX09OKCFkcm1fYXRvbWljX2dldF9l eGlzdGluZ19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKSk7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiAr ICAgICBkcm1fZm9yX2VhY2hfcGxhbmVfbWFzayhwbGFuZSwgZGV2LCBjc3RhdGUtPmJhc2UucGxh bmVfbWFzaykgewo+ID4gPiA+ID4gKyAgICAgICAgICAgICBlbnVtIHBsYW5lX2lkIHBsYW5lX2lk ID0gdG9faW50ZWxfcGxhbmUocGxhbmUpLT5pZDsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsgICAg ICAgICAgICAgaWYgKHNrbF9kZGJfZW50cnlfZXF1YWwoJmN1cl9kZGItPnBsYW5lW3BpcGVdW3Bs YW5lX2lkXSwKPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Jm5ld19kZGItPnBsYW5lW3BpcGVdW3BsYW5lX2lkXSkgJiYKPiA+ID4gPiA+ICsgICAgICAgICAg ICAgICAgIHNrbF9kZGJfZW50cnlfZXF1YWwoJmN1cl9kZGItPnlfcGxhbmVbcGlwZV1bcGxhbmVf aWRdLAo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmV3 X2RkYi0+eV9wbGFuZVtwaXBlXVtwbGFuZV9pZF0pKQo+ID4gPiA+ID4gKyAgICAgICAgICAgICAg ICAgICAgIGNvbnRpbnVlOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKyAgICAgICAgICAgICBwbGFu ZV9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKHN0YXRlLCBwbGFuZSk7Cj4gPiA+ ID4gPiArICAgICAgICAgICAgIGlmIChJU19FUlIocGxhbmVfc3RhdGUpKQo+ID4gPiA+ID4gKyAg ICAgICAgICAgICAgICAgICAgIHJldHVybiBQVFJfRVJSKHBsYW5lX3N0YXRlKTsKPiA+ID4gPiA+ ICsgICAgIH0KPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsgICAgIHJldHVybiAwOwo+ID4gPiA+ID4g K30KPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICtzdGF0aWMgaW50Cj4gPiA+ID4gPiArc2tsX2NvbXB1 dGVfZGRiKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ID4gPiA+ICB7Cj4gPiA+ ID4gPiAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsKPiA+ID4gPiA+ ICAgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsK PiA+ID4gPiA+IEBAIC00OTIzLDYgKzQ4NTQsMTQgQEAgc3RhdGljIGludCBza2xfdXBkYXRlX3Bp cGVfd20oc3RydWN0IGRybV9jcnRjX3N0YXRlICpjc3RhdGUsCj4gPiA+ID4gPiAgICAgICAgICAg ICAgIGNzdGF0ZSA9IGludGVsX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgaW50ZWxfY3J0 Yyk7Cj4gPiA+ID4gPiAgICAgICAgICAgICAgIGlmIChJU19FUlIoY3N0YXRlKSkKPiA+ID4gPiA+ ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUFRSX0VSUihjc3RhdGUpOwo+ID4gPiA+ID4g Kwo+ID4gPiA+ID4gKyAgICAgICAgICAgICByZXQgPSBza2xfYWxsb2NhdGVfcGlwZV9kZGIoY3N0 YXRlLCBkZGIpOwo+ID4gPiA+ID4gKyAgICAgICAgICAgICBpZiAocmV0KQo+ID4gPiA+ID4gKyAg ICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArICAg ICAgICAgICAgIHJldCA9IHNrbF9kZGJfYWRkX2FmZmVjdGVkX3BsYW5lcyhjc3RhdGUpOwo+ID4g PiA+ID4gKyAgICAgICAgICAgICBpZiAocmV0KQo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgIHJldHVybiByZXQ7Cj4gPiA+ID4gPiAgICAgICB9Cj4gPiA+ID4gPiAKPiA+ID4gPiA+ICAg ICAgIHJldHVybiAwOwo+ID4gPiA+ID4gQEAgLTUwMTIsNyArNDk1MSw3IEBAIHN0YXRpYyBpbnQg c2tsX3VwZGF0ZV9waXBlX3dtKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3N0YXRlLAo+ID4gPiA+ ID4gICAgICAgLyogQ2xlYXIgYWxsIGRpcnR5IGZsYWdzICovCj4gPiA+ID4gPiAgICAgICByZXN1 bHRzLT5kaXJ0eV9waXBlcyA9IDA7Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IC0gICAgIHJldCA9IHNr bF9pbmNsdWRlX2FmZmVjdGVkX2NydGNzKHN0YXRlKTsKPiA+ID4gPiA+ICsgICAgIHJldCA9IHNr bF9jb21wdXRlX2RkYihzdGF0ZSk7Cj4gPiA+ID4gPiAgICAgICBpZiAocmV0KQo+ID4gPiA+ID4g ICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gPiA+ID4gCj4gPiA+ID4gPiAtLQo+ID4gPiA+ ID4gMS45LjEKPiA+ID4gPiA+IAo+ID4gPiA+IAo+ID4gPiA+IC0tCj4gPiA+ID4gTWF0dCBSb3Bl cgo+ID4gPiA+IEdyYXBoaWNzIFNvZnR3YXJlIEVuZ2luZWVyCj4gPiA+ID4gSW9URyBQbGF0Zm9y bSBFbmFibGluZyAmIERldmVsb3BtZW50Cj4gPiA+ID4gSW50ZWwgQ29ycG9yYXRpb24KPiA+ID4g PiAoOTE2KSAzNTYtMjc5NQo+ID4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCj4gPiA+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gPiA+IElu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gPiBodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+ID4gPiAKPiA+ID4gCj4gPiA+ IAo+IAo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK