From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: Re: [PATCH 1/8] drm/i915: Keep contexts pinned until after the next kernel context switch Date: Wed, 12 Jun 2019 14:42:29 +0100 Message-ID: <156034694995.5468.11180105549563398902@skylake-alporthouse-com> References: <20190612093111.11684-1-chris@chris-wilson.co.uk> <20190612093111.11684-2-chris@chris-wilson.co.uk> <875zpb9bjn.fsf@gaia.fi.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id C9F21893EB for ; Wed, 12 Jun 2019 13:42:35 +0000 (UTC) In-Reply-To: <875zpb9bjn.fsf@gaia.fi.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Mika Kuoppala , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UXVvdGluZyBNaWthIEt1b3BwYWxhICgyMDE5LTA2LTEyIDE0OjI5OjQ4KQo+IENocmlzIFdpbHNv biA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPiB3cml0ZXM6Cj4gCj4gPiBXZSBuZWVkIHRvIGtl ZXAgdGhlIGNvbnRleHQgaW1hZ2UgcGlubmVkIGluIG1lbW9yeSB1bnRpbCBhZnRlciB0aGUgR1BV Cj4gPiBoYXMgZmluaXNoZWQgd3JpdGluZyBpbnRvIGl0LiBTaW5jZSBpdCBjb250aW51ZXMgdG8g d3JpdGUgYXMgd2Ugc2lnbmFsCj4gPiB0aGUgZmluYWwgYnJlYWRjcnVtYiwgd2UgbmVlZCB0byBr ZWVwIGl0IHBpbm5lZCB1bnRpbCB0aGUgcmVxdWVzdCBhZnRlcgo+ID4gaXQgaXMgY29tcGxldGUu IEN1cnJlbnRseSB3ZSBrbm93IHRoZSBvcmRlciBpbiB3aGljaCByZXF1ZXN0cyBleGVjdXRlIG9u Cj4gPiBlYWNoIGVuZ2luZSwgYW5kIHNvIHRvIHJlbW92ZSB0aGF0IHByZXN1bXB0aW9uIHdlIG5l ZWQgdG8gaWRlbnRpZnkgYQo+ID4gcmVxdWVzdC9jb250ZXh0LXN3aXRjaCB3ZSBrbm93IG11c3Qg b2NjdXIgYWZ0ZXIgb3VyIGNvbXBsZXRpb24uIEFueQo+ID4gcmVxdWVzdCBxdWV1ZWQgYWZ0ZXIg dGhlIHNpZ25hbCBtdXN0IGltcGx5IGEgY29udGV4dCBzd2l0Y2gsIGZvcgo+ID4gc2ltcGxpY2l0 eSB3ZSB1c2UgYSBmcmVzaCByZXF1ZXN0IGZyb20gdGhlIGtlcm5lbCBjb250ZXh0Lgo+ID4KPiA+ IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+ ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuYyAg IHwgMjQgKystLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRl eHQuaCAgIHwgIDEgLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9wbS5j ICAgICAgICB8IDIwICsrKystCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29u dGV4dC5jICAgICAgIHwgODAgKysrKysrKysrKysrKysrKy0tLQo+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX2NvbnRleHQuaCAgICAgICB8ICAzICsKPiA+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0X3R5cGVzLmggfCAgNiArLQo+ID4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZS5oICAgICAgICB8ICAyIC0KPiA+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYyAgICAgfCAyMyArLS0tLS0KPiA+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfcG0uYyAgICAgfCAgMiArCj4gPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmggIHwgMTMgKy0tCj4gPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMgICAgICAgICAgIHwgNjIgKystLS0t LS0tLS0tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVyLmMg ICAgfCA0NCArLS0tLS0tLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvbW9ja19lbmdp bmUuYyAgICAgICAgIHwgMTEgKy0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9hY3Rp dmUuYyAgICAgICAgICAgIHwgODAgKysrKysrKysrKysrKysrKysrLQo+ID4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfYWN0aXZlLmggICAgICAgICAgICB8ICA1ICsrCj4gPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9hY3RpdmVfdHlwZXMuaCAgICAgIHwgIDMgKwo+ID4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICAgICB8ICA0IC0KPiA+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYyAgICAgICAgICAgfCAxNSAtLS0tCj4gPiAgLi4u L2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMgIHwgIDEgLQo+ID4gIDE5 IGZpbGVzIGNoYW5nZWQsIDIxNCBpbnNlcnRpb25zKCspLCAxODUgZGVsZXRpb25zKC0pCj4gPgo+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5jCj4gPiBpbmRl eCBjODZjYTlmMjE1MzIuLjYyMDAwNjBhZWYwNSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmMKPiA+IEBAIC02OTIsMTcgKzY5Miw2IEBAIGlu dCBpOTE1X2dlbV9jb250ZXh0c19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiA+ICAgICAgIHJldHVybiAwOwo+ID4gIH0KPiA+ICAKPiA+IC12b2lkIGk5MTVfZ2VtX2Nv bnRleHRzX2xvc3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gLXsKPiA+ IC0gICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKPiA+IC0gICAgIGVudW0gaW50 ZWxfZW5naW5lX2lkIGlkOwo+ID4gLQo+ID4gLSAgICAgbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2 X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+ID4gLQo+ID4gLSAgICAgZm9yX2VhY2hfZW5naW5l KGVuZ2luZSwgZGV2X3ByaXYsIGlkKQo+ID4gLSAgICAgICAgICAgICBpbnRlbF9lbmdpbmVfbG9z dF9jb250ZXh0KGVuZ2luZSk7Cj4gPiAtfQo+ID4gLQo+ID4gIHZvaWQgaTkxNV9nZW1fY29udGV4 dHNfZmluaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiA+ICB7Cj4gPiAgICAgICBs b2NrZGVwX2Fzc2VydF9oZWxkKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKPiA+IEBAIC0xMjAz LDEwICsxMTkyLDYgQEAgZ2VuOF9tb2RpZnlfcnBjcyhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2Us IHN0cnVjdCBpbnRlbF9zc2V1IHNzZXUpCj4gPiAgICAgICBpZiAocmV0KQo+ID4gICAgICAgICAg ICAgICBnb3RvIG91dF9hZGQ7Cj4gPiAgCj4gPiAtICAgICByZXQgPSBnZW44X2VtaXRfcnBjc19j b25maWcocnEsIGNlLCBzc2V1KTsKPiA+IC0gICAgIGlmIChyZXQpCj4gPiAtICAgICAgICAgICAg IGdvdG8gb3V0X2FkZDsKPiA+IC0KPiA+ICAgICAgIC8qCj4gPiAgICAgICAgKiBHdWFyYW50ZWUg Y29udGV4dCBpbWFnZSBhbmQgdGhlIHRpbWVsaW5lIHJlbWFpbnMgcGlubmVkIHVudGlsIHRoZQo+ ID4gICAgICAgICogbW9kaWZ5aW5nIHJlcXVlc3QgaXMgcmV0aXJlZCBieSBzZXR0aW5nIHRoZSBj ZSBhY3Rpdml0eSB0cmFja2VyLgo+ID4gQEAgLTEyMTQsOSArMTE5OSwxMiBAQCBnZW44X21vZGlm eV9ycGNzKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwgc3RydWN0IGludGVsX3NzZXUgc3NldSkK PiA+ICAgICAgICAqIEJ1dCB3ZSBvbmx5IG5lZWQgdG8gdGFrZSBvbmUgcGluIG9uIHRoZSBhY2Nv dW50IG9mIGl0LiBPciBpbiBvdGhlcgo+ID4gICAgICAgICogd29yZHMgdHJhbnNmZXIgdGhlIHBp bm5lZCBjZSBvYmplY3QgdG8gdHJhY2tlZCBhY3RpdmUgcmVxdWVzdC4KPiA+ICAgICAgICAqLwo+ ID4gLSAgICAgaWYgKCFpOTE1X2FjdGl2ZV9yZXF1ZXN0X2lzc2V0KCZjZS0+YWN0aXZlX3RyYWNr ZXIpKQo+ID4gLSAgICAgICAgICAgICBfX2ludGVsX2NvbnRleHRfcGluKGNlKTsKPiA+IC0gICAg IF9faTkxNV9hY3RpdmVfcmVxdWVzdF9zZXQoJmNlLT5hY3RpdmVfdHJhY2tlciwgcnEpOwo+ID4g KyAgICAgR0VNX0JVR19PTihpOTE1X2FjdGl2ZV9pc19pZGxlKCZjZS0+YWN0aXZlKSk7Cj4gPiAr ICAgICByZXQgPSBpOTE1X2FjdGl2ZV9yZWYoJmNlLT5hY3RpdmUsIHJxLT5mZW5jZS5jb250ZXh0 LCBycSk7Cj4gCj4gCj4gV2h5IHRoZSBwbGFjZSB0byBrZWVwIHRoZSBjb250ZXh0IGFsaXZlIGlz IHRoaXMgZnVuY3Rpb24/CgpUaGlzIGlzIGEgc3BlY2lhbCBjYXNlIHdoZXJlIHdlIGhhdmUgb25l IGNvbnRleHQgKHRoZSBrZXJuZWwgY29udGV4dCkKd3JpdGluZyBpbnRvIHRoZSBjb250ZXh0IHN0 YXRlIG9iamVjdCBvZiBhbm90aGVyLiBUbyBrZWVwIHRoZSB0YXJnZXQKY29udGV4dCBzdGF0ZSBw aW5uZWQsIHdlIG1hcmsgdGhlIGVudGlyZSBjb250ZXh0IGFzIGFjdGl2ZS4KIAo+IEluIG90aGVy IHdvcmRzLCBpZiB0aGUgc3NldSBzdGF0ZSBpcyBub3QgY2hhbmdlZCwgd2UgYmFpbCBvdXQgZWFy bHkKPiBhbmQgZG9uJ3Qgc2V0dXAgdGhlIHRyYWNrZXIgYW5kIHRodXMgZmFpbCBpbiBwcm9taXNl IGZvciBrZWVwaW5nIGl0IGFsaXZlLgoKQXMgd2UgZG9uJ3QgbmVlZCB0byBrZWVwIGl0IGFsaXZl IGZvciBhbiBhY2Nlc3MgdGhhdCBuZXZlciBoYXBwZW5lZC4KCj4gPiArICAgICBpZiAocmV0KQo+ ID4gKyAgICAgICAgICAgICBnb3RvIG91dF9hZGQ7Cj4gPiArCj4gPiArICAgICByZXQgPSBnZW44 X2VtaXRfcnBjc19jb25maWcocnEsIGNlLCBzc2V1KTsKPiA+ICAKPiA+ICBvdXRfYWRkOgo+ID4g ICAgICAgaTkxNV9yZXF1ZXN0X2FkZChycSk7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9jb250ZXh0LmgKPiA+IGluZGV4IDYzMDM5MmM3N2U0OC4uOTY5MWRkMDYyZjcy IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRl eHQuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQu aAo+ID4gQEAgLTEzNCw3ICsxMzQsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV9nZW1fY29u dGV4dF9pc19rZXJuZWwoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKPiA+ICAKPiA+ICAv KiBpOTE1X2dlbV9jb250ZXh0LmMgKi8KPiA+ICBpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2VtX2Nv bnRleHRzX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiA+IC12b2lk IGk5MTVfZ2VtX2NvbnRleHRzX2xvc3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KTsKPiA+ICB2b2lkIGk5MTVfZ2VtX2NvbnRleHRzX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKPiA+ICAKPiA+ICBpbnQgaTkxNV9nZW1fY29udGV4dF9vcGVuKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX3BtLmMKPiA+IGluZGV4IGY0MGYxM2MwYjhiNy4uNTliNmQ0NWIxOTM2IDEwMDY0NAo+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3BtLmMKPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9wbS5jCj4gPiBAQCAtMTAsNiArMTAsMjIg QEAKPiA+ICAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKPiA+ICAjaW5jbHVkZSAiaTkxNV9nbG9iYWxz LmgiCj4gPiAgCj4gPiArc3RhdGljIHZvaWQgY2FsbF9pZGxlX2JhcnJpZXJzKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSkKPiA+ICt7Cj4gPiArICAgICBzdHJ1Y3QgbGxpc3Rfbm9kZSAq bm9kZSwgKm5leHQ7Cj4gPiArCj4gPiArICAgICBsbGlzdF9mb3JfZWFjaF9zYWZlKG5vZGUsIG5l eHQsIGxsaXN0X2RlbF9hbGwoJmVuZ2luZS0+YmFycmllcl90YXNrcykpIHsKPiA+ICsgICAgICAg ICAgICAgc3RydWN0IGk5MTVfYWN0aXZlX3JlcXVlc3QgKmFjdGl2ZSA9Cj4gPiArICAgICAgICAg ICAgICAgICAgICAgY29udGFpbmVyX29mKChzdHJ1Y3QgbGlzdF9oZWFkICopbm9kZSwKPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW9mKCphY3RpdmUpLCBsaW5rKTsK PiA+ICsKPiA+ICsgICAgICAgICAgICAgSU5JVF9MSVNUX0hFQUQoJmFjdGl2ZS0+bGluayk7Cj4g PiArICAgICAgICAgICAgIFJDVV9JTklUX1BPSU5URVIoYWN0aXZlLT5yZXF1ZXN0LCBOVUxMKTsK PiA+ICsKPiA+ICsgICAgICAgICAgICAgYWN0aXZlLT5yZXRpcmUoYWN0aXZlLCBOVUxMKTsKPiA+ ICsgICAgIH0KPiA+ICt9Cj4gPiArCj4gPiAgc3RhdGljIHZvaWQgaTkxNV9nZW1fcGFyayhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiA+ICB7Cj4gPiAgICAgICBzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmU7Cj4gPiBAQCAtMTcsOCArMzMsMTAgQEAgc3RhdGljIHZvaWQgaTkx NV9nZW1fcGFyayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiA+ICAKPiA+ICAgICAg IGxvY2tkZXBfYXNzZXJ0X2hlbGQoJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+ID4gIAo+ID4g LSAgICAgZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpCj4gPiArICAgICBmb3JfZWFj aF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkgewo+ID4gKyAgICAgICAgICAgICBjYWxsX2lkbGVf YmFycmllcnMoZW5naW5lKTsgLyogY2xlYW51cCBhZnRlciB3ZWRnaW5nICovCj4gPiAgICAgICAg ICAgICAgIGk5MTVfZ2VtX2JhdGNoX3Bvb2xfZmluaSgmZW5naW5lLT5iYXRjaF9wb29sKTsKPiA+ ICsgICAgIH0KPiA+ICAKPiA+ICAgICAgIGk5MTVfdGltZWxpbmVzX3BhcmsoaTkxNSk7Cj4gPiAg ICAgICBpOTE1X3ZtYV9wYXJrZWQoaTkxNSk7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfY29udGV4dC5jCj4gPiBpbmRleCBjNzhlYzBiNThlNzcuLmMxMGViNDkwNDI2NCAxMDA2NDQK PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQuYwo+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5jCj4gPiBAQCAtNjEsNyAr NjEsNiBAQCBpbnQgX19pbnRlbF9jb250ZXh0X2RvX3BpbihzdHJ1Y3QgaW50ZWxfY29udGV4dCAq Y2UpCj4gPiAgCj4gPiAgICAgICAgICAgICAgIGk5MTVfZ2VtX2NvbnRleHRfZ2V0KGNlLT5nZW1f Y29udGV4dCk7IC8qIGZvciBjdHgtPnBwZ3R0ICovCj4gPiAgCj4gPiAtICAgICAgICAgICAgIGlu dGVsX2NvbnRleHRfZ2V0KGNlKTsKPiA+ICAgICAgICAgICAgICAgc21wX21iX19iZWZvcmVfYXRv bWljKCk7IC8qIGZsdXNoIHBpbiBiZWZvcmUgaXQgaXMgdmlzaWJsZSAqLwo+ID4gICAgICAgfQo+ ID4gIAo+ID4gQEAgLTg5LDIwICs4OCw0NSBAQCB2b2lkIGludGVsX2NvbnRleHRfdW5waW4oc3Ry dWN0IGludGVsX2NvbnRleHQgKmNlKQo+ID4gICAgICAgICAgICAgICBjZS0+b3BzLT51bnBpbihj ZSk7Cj4gPiAgCj4gPiAgICAgICAgICAgICAgIGk5MTVfZ2VtX2NvbnRleHRfcHV0KGNlLT5nZW1f Y29udGV4dCk7Cj4gPiAtICAgICAgICAgICAgIGludGVsX2NvbnRleHRfcHV0KGNlKTsKPiA+ICsg ICAgICAgICAgICAgaW50ZWxfY29udGV4dF9pbmFjdGl2ZShjZSk7Cj4gPiAgICAgICB9Cj4gPiAg Cj4gPiAgICAgICBtdXRleF91bmxvY2soJmNlLT5waW5fbXV0ZXgpOwo+ID4gICAgICAgaW50ZWxf Y29udGV4dF9wdXQoY2UpOwo+ID4gIH0KPiA+ICAKPiA+IC1zdGF0aWMgdm9pZCBpbnRlbF9jb250 ZXh0X3JldGlyZShzdHJ1Y3QgaTkxNV9hY3RpdmVfcmVxdWVzdCAqYWN0aXZlLAo+ID4gLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQo+ID4gK3N0 YXRpYyBpbnQgX19jb250ZXh0X3Bpbl9zdGF0ZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgdW5zaWdu ZWQgbG9uZyBmbGFncykKPiA+ICB7Cj4gPiAtICAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2Ug PQo+ID4gLSAgICAgICAgICAgICBjb250YWluZXJfb2YoYWN0aXZlLCB0eXBlb2YoKmNlKSwgYWN0 aXZlX3RyYWNrZXIpOwo+ID4gKyAgICAgaW50IGVycjsKPiA+ICAKPiA+IC0gICAgIGludGVsX2Nv bnRleHRfdW5waW4oY2UpOwo+ID4gKyAgICAgZXJyID0gaTkxNV92bWFfcGluKHZtYSwgMCwgMCwg ZmxhZ3MgfCBQSU5fR0xPQkFMKTsKPiA+ICsgICAgIGlmIChlcnIpCj4gPiArICAgICAgICAgICAg IHJldHVybiBlcnI7Cj4gPiArCj4gPiArICAgICAvKgo+ID4gKyAgICAgICogQW5kIG1hcmsgaXQg YXMgYSBnbG9iYWxseSBwaW5uZWQgb2JqZWN0IHRvIGxldCB0aGUgc2hyaW5rZXIga25vdwo+ID4g KyAgICAgICogaXQgY2Fubm90IHJlY2xhaW0gdGhlIG9iamVjdCB1bnRpbCB3ZSByZWxlYXNlIGl0 Lgo+ID4gKyAgICAgICovCj4gPiArICAgICB2bWEtPm9iai0+cGluX2dsb2JhbCsrOwo+ID4gKyAg ICAgdm1hLT5vYmotPm1tLmRpcnR5ID0gdHJ1ZTsKPiA+ICsKPiA+ICsgICAgIHJldHVybiAwOwo+ ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBfX2NvbnRleHRfdW5waW5fc3RhdGUoc3RydWN0 IGk5MTVfdm1hICp2bWEpCj4gPiArewo+ID4gKyAgICAgdm1hLT5vYmotPnBpbl9nbG9iYWwtLTsK PiA+ICsgICAgIF9faTkxNV92bWFfdW5waW4odm1hKTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGlj IHZvaWQgaW50ZWxfY29udGV4dF9yZXRpcmUoc3RydWN0IGk5MTVfYWN0aXZlICphY3RpdmUpCj4g PiArewo+ID4gKyAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmNlID0gY29udGFpbmVyX29mKGFj dGl2ZSwgdHlwZW9mKCpjZSksIGFjdGl2ZSk7Cj4gPiArCj4gPiArICAgICBpZiAoY2UtPnN0YXRl KQo+ID4gKyAgICAgICAgICAgICBfX2NvbnRleHRfdW5waW5fc3RhdGUoY2UtPnN0YXRlKTsKPiA+ ICsKPiA+ICsgICAgIGludGVsX2NvbnRleHRfcHV0KGNlKTsKPiA+ICB9Cj4gPiAgCj4gPiAgdm9p ZAo+ID4gQEAgLTEyNSw4ICsxNDksNDYgQEAgaW50ZWxfY29udGV4dF9pbml0KHN0cnVjdCBpbnRl bF9jb250ZXh0ICpjZSwKPiA+ICAKPiA+ICAgICAgIG11dGV4X2luaXQoJmNlLT5waW5fbXV0ZXgp Owo+ID4gIAo+ID4gLSAgICAgaTkxNV9hY3RpdmVfcmVxdWVzdF9pbml0KCZjZS0+YWN0aXZlX3Ry YWNrZXIsCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgaW50ZWxfY29u dGV4dF9yZXRpcmUpOwo+ID4gKyAgICAgaTkxNV9hY3RpdmVfaW5pdChjdHgtPmk5MTUsICZjZS0+ YWN0aXZlLCBpbnRlbF9jb250ZXh0X3JldGlyZSk7Cj4gPiArfQo+ID4gKwo+ID4gK2ludCBpbnRl bF9jb250ZXh0X2FjdGl2ZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsIHVuc2lnbmVkIGxvbmcg ZmxhZ3MpCj4gCj4gCj4gSSBjYW4gZGlnZXN0IHRoaXMgYnV0IHdhcyBtaXNzaW5nIHRoZSB2ZXJi IGluIHRoaXMgYW5kIHRob3VnaHQKPiBpbnRlbF9jb250ZXh0X2FjdGl2YXRlfGRlYWN0aXZhdGUu CgpZb3Ugd2lsbCBuZXZlciBtYWtlIG1lIHdyaXRlIGFjdGl2OCEgT3RoZXIgdGhhbiBpbnNlcnRp bmcgbWFyayBvciBtYWtlLApJIGRvbid0IGhhdmUgYSBiZXR0ZXIgaWRlYSBhbmQgaGF2ZSBncm93 biBxdWl0ZSB1c2VkIHRvIG92ZXIgdGhlIGxhc3QKc2V2ZXJhbCBtb250aHMuIEkgdGhpbmsgdGhl IGludGVudCBoZXJlIGlzIHJlYXNvbmFibHkgY2xlYXIsIHRoaXMgaXMgdG8Kb3BlcmF0ZSBvbiB0 aGUgY2UtPmFjdGl2ZS4KCk1heWJlLCBpbnRlbF9jb250ZXh0X2FjdGl2ZV9hY3F1aXJlKCkgYW5k IGludGVsX2NvbnRleHRfYWN0aXZlX3JlbGVhc2UoKT8KCj4gPiArewo+ID4gKyAgICAgaW50IGVy cjsKPiA+ICsKPiA+ICsgICAgIGlmICghaTkxNV9hY3RpdmVfYWNxdWlyZSgmY2UtPmFjdGl2ZSkp Cj4gPiArICAgICAgICAgICAgIHJldHVybiAwOwo+ID4gKwo+ID4gKyAgICAgaW50ZWxfY29udGV4 dF9nZXQoY2UpOwo+ID4gKwo+ID4gKyAgICAgaWYgKCFjZS0+c3RhdGUpCj4gPiArICAgICAgICAg ICAgIHJldHVybiAwOwo+ID4gKwo+ID4gKyAgICAgZXJyID0gX19jb250ZXh0X3Bpbl9zdGF0ZShj ZS0+c3RhdGUsIGZsYWdzKTsKPiA+ICsgICAgIGlmIChlcnIpIHsKPiA+ICsgICAgICAgICAgICAg aTkxNV9hY3RpdmVfY2FuY2VsKCZjZS0+YWN0aXZlKTsKPiA+ICsgICAgICAgICAgICAgaW50ZWxf Y29udGV4dF9wdXQoY2UpOwo+ID4gKyAgICAgICAgICAgICByZXR1cm4gZXJyOwo+ID4gKyAgICAg fQo+ID4gKwo+ID4gKyAgICAgLyogUHJlYWxsb2NhdGUgdHJhY2tpbmcgbm9kZXMgKi8KPiA+ICsg ICAgIGlmICghaTkxNV9nZW1fY29udGV4dF9pc19rZXJuZWwoY2UtPmdlbV9jb250ZXh0KSkgewo+ ID4gKyAgICAgICAgICAgICBlcnIgPSBpOTE1X2FjdGl2ZV9hY3F1aXJlX3ByZWFsbG9jYXRlX2Jh cnJpZXIoJmNlLT5hY3RpdmUsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjZS0+ZW5naW5lKTsKPiA+ICsgICAgICAgICAgICAg aWYgKGVycikgewo+ID4gKyAgICAgICAgICAgICAgICAgICAgIGk5MTVfYWN0aXZlX3JlbGVhc2Uo JmNlLT5hY3RpdmUpOwo+ID4gKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlcnI7Cj4gPiAr ICAgICAgICAgICAgIH0KPiA+ICsgICAgIH0KPiA+ICsKPiA+ICsgICAgIHJldHVybiAwOwo+ID4g K30KPiA+ICsKPiA+ICt2b2lkIGludGVsX2NvbnRleHRfaW5hY3RpdmUoc3RydWN0IGludGVsX2Nv bnRleHQgKmNlKQo+ID4gK3sKPiA+ICsgICAgIC8qIE5vZGVzIHByZWFsbG9jYXRlZCBpbiBpbnRl bF9jb250ZXh0X2FjdGl2ZSgpICovCj4gPiArICAgICBpOTE1X2FjdGl2ZV9hY3F1aXJlX2JhcnJp ZXIoJmNlLT5hY3RpdmUpOwo+ID4gKyAgICAgaTkxNV9hY3RpdmVfcmVsZWFzZSgmY2UtPmFjdGl2 ZSk7Cj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRpYyB2b2lkIGk5MTVfZ2xvYmFsX2NvbnRleHRfc2hy aW5rKHZvaWQpCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxf Y29udGV4dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5oCj4gPiBp bmRleCA2ZDU0NTNiYTJjMWUuLjRkZTRiYTJkZjdkNCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvaW50ZWxfY29udGV4dC5oCj4gPiBAQCAtMTAyLDYgKzEwMiw5IEBAIHN0YXRpYyBp bmxpbmUgdm9pZCBpbnRlbF9jb250ZXh0X2V4aXQoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQo+ ID4gICAgICAgICAgICAgICBjZS0+b3BzLT5leGl0KGNlKTsKPiA+ICB9Cj4gPiAgCj4gPiAraW50 IGludGVsX2NvbnRleHRfYWN0aXZlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwgdW5zaWduZWQg bG9uZyBmbGFncyk7Cj4gPiArdm9pZCBpbnRlbF9jb250ZXh0X2luYWN0aXZlKHN0cnVjdCBpbnRl bF9jb250ZXh0ICpjZSk7Cj4gPiArCj4gPiAgc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfY29u dGV4dCAqaW50ZWxfY29udGV4dF9nZXQoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQo+ID4gIHsK PiA+ICAgICAgIGtyZWZfZ2V0KCZjZS0+cmVmKTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9pbnRlbF9jb250ZXh0X3R5cGVzLmgKPiA+IGluZGV4IDgyNWZjZjBhYzljNC4uZTk1YmU0 YmU5NjEyIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29u dGV4dF90eXBlcy5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250 ZXh0X3R5cGVzLmgKPiA+IEBAIC01NiwxMCArNTYsMTAgQEAgc3RydWN0IGludGVsX2NvbnRleHQg ewo+ID4gICAgICAgaW50ZWxfZW5naW5lX21hc2tfdCBzYXR1cmF0ZWQ7IC8qIHN1Ym1pdHRpbmcg c2VtYXBob3JlcyB0b28gbGF0ZT8gKi8KPiA+ICAKPiA+ICAgICAgIC8qKgo+ID4gLSAgICAgICog YWN0aXZlX3RyYWNrZXI6IEFjdGl2ZSB0cmFja2VyIGZvciB0aGUgZXh0ZXJuYWwgcnEgYWN0aXZp dHkKPiA+IC0gICAgICAqIG9uIHRoaXMgaW50ZWxfY29udGV4dCBvYmplY3QuCj4gPiArICAgICAg KiBhY3RpdmU6IEFjdGl2ZSB0cmFja2VyIGZvciB0aGUgcnEgYWN0aXZpdHkgKGluYy4gZXh0ZXJu YWwpIG9uIHRoaXMKPiA+ICsgICAgICAqIGludGVsX2NvbnRleHQgb2JqZWN0Lgo+ID4gICAgICAg ICovCj4gPiAtICAgICBzdHJ1Y3QgaTkxNV9hY3RpdmVfcmVxdWVzdCBhY3RpdmVfdHJhY2tlcjsK PiA+ICsgICAgIHN0cnVjdCBpOTE1X2FjdGl2ZSBhY3RpdmU7Cj4gPiAgCj4gPiAgICAgICBjb25z dCBzdHJ1Y3QgaW50ZWxfY29udGV4dF9vcHMgKm9wczsKPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmUuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX2VuZ2luZS5oCj4gPiBpbmRleCAyMDFiYmQyYTRmYWYuLmI5ZmQ4OGYyMTYw OSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZS5o Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmUuaAo+ID4gQEAg LTQ2Niw4ICs0NjYsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZW5naW5lX3Jlc2V0KHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiA+ICBib29sIGludGVsX2VuZ2luZV9pc19p ZGxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Cj4gPiAgYm9vbCBpbnRlbF9lbmdp bmVzX2FyZV9pZGxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gPiAgCj4g PiAtdm9pZCBpbnRlbF9lbmdpbmVfbG9zdF9jb250ZXh0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSk7Cj4gPiAtCj4gPiAgdm9pZCBpbnRlbF9lbmdpbmVzX3Jlc2V0X2RlZmF1bHRfc3Vi bWlzc2lvbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cj4gPiAgdW5zaWduZWQgaW50 IGludGVsX2VuZ2luZXNfaGFzX2NvbnRleHRfaXNvbGF0aW9uKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1KTsKPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2lu ZV9jcy5jCj4gPiBpbmRleCBjMGQ5ODZkYjVhNzUuLjVhMDgwMzZhZTc3NCAxMDA2NDQKPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYwo+ID4gQEAgLTYxMSw2ICs2 MTEsOCBAQCBzdGF0aWMgaW50IGludGVsX2VuZ2luZV9zZXR1cF9jb21tb24oc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQo+ID4gIHsKPiA+ICAgICAgIGludCBlcnI7Cj4gPiAgCj4gPiAr ICAgICBpbml0X2xsaXN0X2hlYWQoJmVuZ2luZS0+YmFycmllcl90YXNrcyk7Cj4gPiArCj4gPiAg ICAgICBlcnIgPSBpbml0X3N0YXR1c19wYWdlKGVuZ2luZSk7Cj4gPiAgICAgICBpZiAoZXJyKQo+ ID4gICAgICAgICAgICAgICByZXR1cm4gZXJyOwo+ID4gQEAgLTg3MCw2ICs4NzIsNyBAQCB2b2lk IGludGVsX2VuZ2luZV9jbGVhbnVwX2NvbW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUpCj4gPiAgICAgICBpZiAoZW5naW5lLT5wcmVlbXB0X2NvbnRleHQpCj4gPiAgICAgICAgICAg ICAgIGludGVsX2NvbnRleHRfdW5waW4oZW5naW5lLT5wcmVlbXB0X2NvbnRleHQpOwo+ID4gICAg ICAgaW50ZWxfY29udGV4dF91bnBpbihlbmdpbmUtPmtlcm5lbF9jb250ZXh0KTsKPiA+ICsgICAg IEdFTV9CVUdfT04oIWxsaXN0X2VtcHR5KCZlbmdpbmUtPmJhcnJpZXJfdGFza3MpKTsKPiA+ICAK PiA+ICAgICAgIGk5MTVfdGltZWxpbmVfZmluaSgmZW5naW5lLT50aW1lbGluZSk7Cj4gPiAgCj4g PiBAQCAtMTIwMSwyNiArMTIwNCw2IEBAIHZvaWQgaW50ZWxfZW5naW5lc19yZXNldF9kZWZhdWx0 X3N1Ym1pc3Npb24oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gPiAgICAgICAgICAg ICAgIGVuZ2luZS0+c2V0X2RlZmF1bHRfc3VibWlzc2lvbihlbmdpbmUpOwo+ID4gIH0KPiA+ICAK PiA+IC0vKioKPiA+IC0gKiBpbnRlbF9lbmdpbmVfbG9zdF9jb250ZXh0OiBjYWxsZWQgd2hlbiB0 aGUgR1BVIGlzIHJlc2V0IGludG8gdW5rbm93biBzdGF0ZQo+ID4gLSAqIEBlbmdpbmU6IHRoZSBl bmdpbmUKPiA+IC0gKgo+ID4gLSAqIFdlIGhhdmUgZWl0aGVyIHJlc2V0IHRoZSBHUFUgb3Igb3Ro ZXJ3aXNlIGFib3V0IHRvIGxvc2Ugc3RhdGUgdHJhY2tpbmcgb2YKPiA+IC0gKiB0aGUgY3VycmVu dCBHUFUgbG9naWNhbCBzdGF0ZSAoZS5nLiBzdXNwZW5kKS4gT24gbmV4dCB1c2UsIGl0IGlzIHRo ZXJlZm9yZQo+ID4gLSAqIGltcGVyYXRpdmUgdGhhdCB3ZSBtYWtlIG5vIHByZXN1bXB0aW9ucyBh Ym91dCB0aGUgY3VycmVudCBzdGF0ZSBhbmQgbG9hZAo+ID4gLSAqIGZyb20gc2NyYXRjaC4KPiA+ IC0gKi8KPiA+IC12b2lkIGludGVsX2VuZ2luZV9sb3N0X2NvbnRleHQoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQo+ID4gLXsKPiA+IC0gICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpj ZTsKPiA+IC0KPiA+IC0gICAgIGxvY2tkZXBfYXNzZXJ0X2hlbGQoJmVuZ2luZS0+aTkxNS0+ZHJt LnN0cnVjdF9tdXRleCk7Cj4gPiAtCj4gPiAtICAgICBjZSA9IGZldGNoX2FuZF96ZXJvKCZlbmdp bmUtPmxhc3RfcmV0aXJlZF9jb250ZXh0KTsKPiA+IC0gICAgIGlmIChjZSkKPiA+IC0gICAgICAg ICAgICAgaW50ZWxfY29udGV4dF91bnBpbihjZSk7Cj4gPiAtfQo+ID4gLQo+ID4gIGJvb2wgaW50 ZWxfZW5naW5lX2Nhbl9zdG9yZV9kd29yZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp Cj4gPiAgewo+ID4gICAgICAgc3dpdGNoIChJTlRFTF9HRU4oZW5naW5lLT5pOTE1KSkgewo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9wbS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3BtLmMKPiA+IGluZGV4IGNjZjAz NDc2NDc0MS4uM2M0NDhhMDYxYWJkIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvaW50ZWxfZW5naW5lX3BtLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2ludGVsX2VuZ2luZV9wbS5jCj4gPiBAQCAtODgsNiArODgsOCBAQCBzdGF0aWMgYm9vbCBzd2l0 Y2hfdG9fa2VybmVsX2NvbnRleHQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ID4g IAo+ID4gICAgICAgLyogQ2hlY2sgYWdhaW4gb24gdGhlIG5leHQgcmV0aXJlbWVudC4gKi8KPiA+ ICAgICAgIGVuZ2luZS0+d2FrZXJlZl9zZXJpYWwgPSBlbmdpbmUtPnNlcmlhbCArIDE7Cj4gPiAr Cj4gPiArICAgICBpOTE1X3JlcXVlc3RfYWRkX2JhcnJpZXJzKHJxKTsKPiA+ICAgICAgIF9faTkx NV9yZXF1ZXN0X2NvbW1pdChycSk7Cj4gPiAgCj4gPiAgICAgICByZXR1cm4gZmFsc2U7Cj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfdHlwZXMuaAo+ID4gaW5kZXgg MDEyMjM4NjQyMzdhLi4zM2EzMWFhMmQyYWUgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfdHlwZXMuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmgKPiA+IEBAIC0xMSw2ICsxMSw3IEBACj4gPiAg I2luY2x1ZGUgPGxpbnV4L2lycV93b3JrLmg+Cj4gPiAgI2luY2x1ZGUgPGxpbnV4L2tyZWYuaD4K PiA+ICAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgo+ID4gKyNpbmNsdWRlIDxsaW51eC9sbGlzdC5o Pgo+ID4gICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgo+ID4gIAo+ID4gICNpbmNsdWRlICJpOTE1 X2dlbS5oIgo+ID4gQEAgLTI4OCw2ICsyODksNyBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzIHsK PiA+ICAgICAgIHN0cnVjdCBpbnRlbF9yaW5nICpidWZmZXI7Cj4gPiAgCj4gPiAgICAgICBzdHJ1 Y3QgaTkxNV90aW1lbGluZSB0aW1lbGluZTsKPiA+ICsgICAgIHN0cnVjdCBsbGlzdF9oZWFkIGJh cnJpZXJfdGFza3M7Cj4gPiAgCj4gPiAgICAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqa2VybmVs X2NvbnRleHQ7IC8qIHBpbm5lZCAqLwo+ID4gICAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKnBy ZWVtcHRfY29udGV4dDsgLyogcGlubmVkOyBvcHRpb25hbCAqLwo+ID4gQEAgLTQzNSwxNyArNDM3 LDYgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7Cj4gPiAgCj4gPiAgICAgICBzdHJ1Y3QgaW50 ZWxfZW5naW5lX2V4ZWNsaXN0cyBleGVjbGlzdHM7Cj4gPiAgCj4gPiAtICAgICAvKiBDb250ZXh0 cyBhcmUgcGlubmVkIHdoaWxzdCB0aGV5IGFyZSBhY3RpdmUgb24gdGhlIEdQVS4gVGhlIGxhc3QK PiA+IC0gICAgICAqIGNvbnRleHQgZXhlY3V0ZWQgcmVtYWlucyBhY3RpdmUgd2hpbHN0IHRoZSBH UFUgaXMgaWRsZSAtIHRoZQo+ID4gLSAgICAgICogc3dpdGNoIGF3YXkgYW5kIHdyaXRlIHRvIHRo ZSBjb250ZXh0IG9iamVjdCBvbmx5IG9jY3VycyBvbiB0aGUKPiA+IC0gICAgICAqIG5leHQgZXhl Y3V0aW9uLiAgQ29udGV4dHMgYXJlIG9ubHkgdW5waW5uZWQgb24gcmV0aXJlbWVudCBvZiB0aGUK PiA+IC0gICAgICAqIGZvbGxvd2luZyByZXF1ZXN0IGVuc3VyaW5nIHRoYXQgd2UgY2FuIGFsd2F5 cyB3cml0ZSB0byB0aGUgb2JqZWN0Cj4gPiAtICAgICAgKiBvbiB0aGUgY29udGV4dCBzd2l0Y2gg ZXZlbiBhZnRlciBpZGxpbmcuIEFjcm9zcyBzdXNwZW5kLCB3ZSBzd2l0Y2gKPiA+IC0gICAgICAq IHRvIHRoZSBrZXJuZWwgY29udGV4dCBhbmQgdHJhc2ggaXQgYXMgdGhlIHNhdmUgbWF5IG5vdCBo YXBwZW4KPiA+IC0gICAgICAqIGJlZm9yZSB0aGUgaGFyZHdhcmUgaXMgcG93ZXJlZCBkb3duLgo+ ID4gLSAgICAgICovCj4gPiAtICAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqbGFzdF9yZXRpcmVk X2NvbnRleHQ7Cj4gPiAtCj4gPiAgICAgICAvKiBzdGF0dXNfbm90aWZpZXI6IGxpc3Qgb2YgY2Fs bGJhY2tzIGZvciBjb250ZXh0LXN3aXRjaCBjaGFuZ2VzICovCj4gPiAgICAgICBzdHJ1Y3QgYXRv bWljX25vdGlmaWVyX2hlYWQgY29udGV4dF9zdGF0dXNfbm90aWZpZXI7Cj4gPiAgCj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYwo+ID4gaW5kZXggYjhmNTU5MmRhMThmLi4wNTUyNDQ4 OTYxNWMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMu Ywo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMKPiA+IEBAIC0x NDIyLDYwICsxNDIyLDExIEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19jb250ZXh0X2Rlc3Ryb3ko c3RydWN0IGtyZWYgKmtyZWYpCj4gPiAgICAgICBpbnRlbF9jb250ZXh0X2ZyZWUoY2UpOwo+ID4g IH0KPiA+ICAKPiA+IC1zdGF0aWMgaW50IF9fY29udGV4dF9waW4oc3RydWN0IGk5MTVfdm1hICp2 bWEpCj4gPiAtewo+ID4gLSAgICAgdW5zaWduZWQgaW50IGZsYWdzOwo+ID4gLSAgICAgaW50IGVy cjsKPiA+IC0KPiA+IC0gICAgIGZsYWdzID0gUElOX0dMT0JBTCB8IFBJTl9ISUdIOwo+ID4gLSAg ICAgZmxhZ3MgfD0gUElOX09GRlNFVF9CSUFTIHwgaTkxNV9nZ3R0X3Bpbl9iaWFzKHZtYSk7Cj4g PiAtCj4gPiAtICAgICBlcnIgPSBpOTE1X3ZtYV9waW4odm1hLCAwLCAwLCBmbGFncyk7Cj4gPiAt ICAgICBpZiAoZXJyKQo+ID4gLSAgICAgICAgICAgICByZXR1cm4gZXJyOwo+ID4gLQo+ID4gLSAg ICAgdm1hLT5vYmotPnBpbl9nbG9iYWwrKzsKPiA+IC0gICAgIHZtYS0+b2JqLT5tbS5kaXJ0eSA9 IHRydWU7Cj4gPiAtCj4gPiAtICAgICByZXR1cm4gMDsKPiA+IC19Cj4gPiAtCj4gPiAtc3RhdGlj IHZvaWQgX19jb250ZXh0X3VucGluKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+ID4gLXsKPiA+IC0g ICAgIHZtYS0+b2JqLT5waW5fZ2xvYmFsLS07Cj4gPiAtICAgICBfX2k5MTVfdm1hX3VucGluKHZt YSk7Cj4gPiAtfQo+ID4gLQo+ID4gIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19jb250ZXh0X3VucGlu KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKPiA+ICB7Cj4gPiAtICAgICBzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmU7Cj4gPiAtCj4gPiAtICAgICAvKgo+ID4gLSAgICAgICogVGhlIHRh c2tsZXQgbWF5IHN0aWxsIGJlIHVzaW5nIGEgcG9pbnRlciB0byBvdXIgc3RhdGUsIHZpYSBhbgo+ ID4gLSAgICAgICogb2xkIHJlcXVlc3QuIEhvd2V2ZXIsIHNpbmNlIHdlIGtub3cgd2Ugb25seSB1 bnBpbiB0aGUgY29udGV4dAo+ID4gLSAgICAgICogb24gcmV0aXJlbWVudCBvZiB0aGUgZm9sbG93 aW5nIHJlcXVlc3QsIHdlIGtub3cgdGhhdCB0aGUgbGFzdAo+ID4gLSAgICAgICogcmVxdWVzdCBy ZWZlcmVuY2luZyB1cyB3aWxsIGhhdmUgaGFkIGEgY29tcGxldGlvbiBDUyBpbnRlcnJ1cHQuCj4g PiAtICAgICAgKiBJZiB3ZSBzZWUgdGhhdCBpdCBpcyBzdGlsbCBhY3RpdmUsIGl0IG1lYW5zIHRo YXQgdGhlIHRhc2tsZXQgaGFzbid0Cj4gPiAtICAgICAgKiBoYWQgdGhlIGNoYW5jZSB0byBydW4g eWV0OyBsZXQgaXQgcnVuIGJlZm9yZSB3ZSB0ZWFyZG93biB0aGUKPiA+IC0gICAgICAqIHJlZmVy ZW5jZSBpdCBtYXkgdXNlLgo+ID4gLSAgICAgICovCj4gPiAtICAgICBlbmdpbmUgPSBSRUFEX09O Q0UoY2UtPmluZmxpZ2h0KTsKPiA+IC0gICAgIGlmICh1bmxpa2VseShlbmdpbmUpKSB7Cj4gPiAt ICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gPiAtCj4gPiAtICAgICAgICAgICAg IHNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKPiA+IC0g ICAgICAgICAgICAgcHJvY2Vzc19jc2IoZW5naW5lKTsKPiA+IC0gICAgICAgICAgICAgc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7Cj4gPiAtCj4g PiAtICAgICAgICAgICAgIEdFTV9CVUdfT04oUkVBRF9PTkNFKGNlLT5pbmZsaWdodCkpOwo+ID4g LSAgICAgfQo+ID4gLQo+ID4gICAgICAgaTkxNV9nZW1fY29udGV4dF91bnBpbl9od19pZChjZS0+ Z2VtX2NvbnRleHQpOwo+ID4gLQo+ID4gLSAgICAgaW50ZWxfcmluZ191bnBpbihjZS0+cmluZyk7 Cj4gPiAtCj4gPiAgICAgICBpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGNlLT5zdGF0ZS0+b2Jq KTsKPiA+IC0gICAgIF9fY29udGV4dF91bnBpbihjZS0+c3RhdGUpOwo+ID4gKyAgICAgaW50ZWxf cmluZ191bnBpbihjZS0+cmluZyk7Cj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRpYyB2b2lkCj4gPiBA QCAtMTUxMiw3ICsxNDYzLDEwIEBAIF9fZXhlY2xpc3RzX2NvbnRleHRfcGluKHN0cnVjdCBpbnRl bF9jb250ZXh0ICpjZSwKPiA+ICAgICAgICAgICAgICAgZ290byBlcnI7Cj4gPiAgICAgICBHRU1f QlVHX09OKCFjZS0+c3RhdGUpOwo+ID4gIAo+ID4gLSAgICAgcmV0ID0gX19jb250ZXh0X3Bpbihj ZS0+c3RhdGUpOwo+ID4gKyAgICAgcmV0ID0gaW50ZWxfY29udGV4dF9hY3RpdmUoY2UsCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmdpbmUtPmk5MTUtPmdndHQucGluX2Jp YXMgfAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUElOX09GRlNFVF9CSUFT IHwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBJTl9ISUdIKTsKPiA+ICAg ICAgIGlmIChyZXQpCj4gPiAgICAgICAgICAgICAgIGdvdG8gZXJyOwo+ID4gIAo+ID4gQEAgLTE1 MjEsNyArMTQ3NSw3IEBAIF9fZXhlY2xpc3RzX2NvbnRleHRfcGluKHN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjZSwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSTkxNV9N QVBfT1ZFUlJJREUpOwo+ID4gICAgICAgaWYgKElTX0VSUih2YWRkcikpIHsKPiA+ICAgICAgICAg ICAgICAgcmV0ID0gUFRSX0VSUih2YWRkcik7Cj4gPiAtICAgICAgICAgICAgIGdvdG8gdW5waW5f dm1hOwo+ID4gKyAgICAgICAgICAgICBnb3RvIHVucGluX2FjdGl2ZTsKPiA+ICAgICAgIH0KPiA+ ICAKPiA+ICAgICAgIHJldCA9IGludGVsX3JpbmdfcGluKGNlLT5yaW5nKTsKPiA+IEBAIC0xNTQy LDggKzE0OTYsOCBAQCBfX2V4ZWNsaXN0c19jb250ZXh0X3BpbihzdHJ1Y3QgaW50ZWxfY29udGV4 dCAqY2UsCj4gPiAgICAgICBpbnRlbF9yaW5nX3VucGluKGNlLT5yaW5nKTsKPiA+ICB1bnBpbl9t YXA6Cj4gPiAgICAgICBpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGNlLT5zdGF0ZS0+b2JqKTsK PiA+IC11bnBpbl92bWE6Cj4gPiAtICAgICBfX2NvbnRleHRfdW5waW4oY2UtPnN0YXRlKTsKPiA+ ICt1bnBpbl9hY3RpdmU6Cj4gPiArICAgICBpbnRlbF9jb250ZXh0X2luYWN0aXZlKGNlKTsKPiA+ ICBlcnI6Cj4gPiAgICAgICByZXR1cm4gcmV0Owo+ID4gIH0KPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVyLmMKPiA+IGluZGV4IGM4MzRkMDE2Yzk2NS4uN2FiMjhi NmY2MmExIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmlu Z2J1ZmZlci5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nYnVm ZmVyLmMKPiA+IEBAIC0xMzQ5LDQ1ICsxMzQ5LDkgQEAgc3RhdGljIHZvaWQgX19jb250ZXh0X3Vu cGluX3BwZ3R0KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCj4gPiAgICAgICAgICAgICAg IGdlbjZfcHBndHRfdW5waW4oaTkxNV92bV90b19wcGd0dCh2bSkpOwo+ID4gIH0KPiA+ICAKPiA+ IC1zdGF0aWMgaW50IF9fY29udGV4dF9waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQo+ID4g LXsKPiA+IC0gICAgIHN0cnVjdCBpOTE1X3ZtYSAqdm1hOwo+ID4gLSAgICAgaW50IGVycjsKPiA+ IC0KPiA+IC0gICAgIHZtYSA9IGNlLT5zdGF0ZTsKPiA+IC0gICAgIGlmICghdm1hKQo+ID4gLSAg ICAgICAgICAgICByZXR1cm4gMDsKPiA+IC0KPiA+IC0gICAgIGVyciA9IGk5MTVfdm1hX3Bpbih2 bWEsIDAsIDAsIFBJTl9HTE9CQUwgfCBQSU5fSElHSCk7Cj4gPiAtICAgICBpZiAoZXJyKQo+ID4g LSAgICAgICAgICAgICByZXR1cm4gZXJyOwo+ID4gLQo+ID4gLSAgICAgLyoKPiA+IC0gICAgICAq IEFuZCBtYXJrIGlzIGFzIGEgZ2xvYmFsbHkgcGlubmVkIG9iamVjdCB0byBsZXQgdGhlIHNocmlu a2VyIGtub3cKPiA+IC0gICAgICAqIGl0IGNhbm5vdCByZWNsYWltIHRoZSBvYmplY3QgdW50aWwg d2UgcmVsZWFzZSBpdC4KPiA+IC0gICAgICAqLwo+ID4gLSAgICAgdm1hLT5vYmotPnBpbl9nbG9i YWwrKzsKPiA+IC0gICAgIHZtYS0+b2JqLT5tbS5kaXJ0eSA9IHRydWU7Cj4gPiAtCj4gPiAtICAg ICByZXR1cm4gMDsKPiA+IC19Cj4gPiAtCj4gPiAtc3RhdGljIHZvaWQgX19jb250ZXh0X3VucGlu KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKPiA+IC17Cj4gPiAtICAgICBzdHJ1Y3QgaTkxNV92 bWEgKnZtYTsKPiA+IC0KPiA+IC0gICAgIHZtYSA9IGNlLT5zdGF0ZTsKPiA+IC0gICAgIGlmICgh dm1hKQo+ID4gLSAgICAgICAgICAgICByZXR1cm47Cj4gPiAtCj4gPiAtICAgICB2bWEtPm9iai0+ cGluX2dsb2JhbC0tOwo+ID4gLSAgICAgaTkxNV92bWFfdW5waW4odm1hKTsKPiA+IC19Cj4gPiAt Cj4gPiAgc3RhdGljIHZvaWQgcmluZ19jb250ZXh0X3VucGluKHN0cnVjdCBpbnRlbF9jb250ZXh0 ICpjZSkKPiA+ICB7Cj4gPiAgICAgICBfX2NvbnRleHRfdW5waW5fcHBndHQoY2UtPmdlbV9jb250 ZXh0KTsKPiA+IC0gICAgIF9fY29udGV4dF91bnBpbihjZSk7Cj4gPiAgfQo+ID4gIAo+ID4gIHN0 YXRpYyBzdHJ1Y3QgaTkxNV92bWEgKgo+ID4gQEAgLTE0NzcsMTggKzE0NDEsMTggQEAgc3RhdGlj IGludCByaW5nX2NvbnRleHRfcGluKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKPiA+ICAgICAg ICAgICAgICAgY2UtPnN0YXRlID0gdm1hOwo+ID4gICAgICAgfQo+ID4gIAo+ID4gLSAgICAgZXJy ID0gX19jb250ZXh0X3BpbihjZSk7Cj4gPiArICAgICBlcnIgPSBpbnRlbF9jb250ZXh0X2FjdGl2 ZShjZSwgUElOX0hJR0gpOwo+ID4gICAgICAgaWYgKGVycikKPiA+ICAgICAgICAgICAgICAgcmV0 dXJuIGVycjsKPiA+ICAKPiA+ICAgICAgIGVyciA9IF9fY29udGV4dF9waW5fcHBndHQoY2UtPmdl bV9jb250ZXh0KTsKPiA+ICAgICAgIGlmIChlcnIpCj4gPiAtICAgICAgICAgICAgIGdvdG8gZXJy X3VucGluOwo+ID4gKyAgICAgICAgICAgICBnb3RvIGVycl9hY3RpdmU7Cj4gPiAgCj4gPiAgICAg ICByZXR1cm4gMDsKPiA+ICAKPiA+IC1lcnJfdW5waW46Cj4gPiAtICAgICBfX2NvbnRleHRfdW5w aW4oY2UpOwo+ID4gK2Vycl9hY3RpdmU6Cj4gPiArICAgICBpbnRlbF9jb250ZXh0X2luYWN0aXZl KGNlKTsKPiA+ICAgICAgIHJldHVybiBlcnI7Cj4gPiAgfQo+ID4gIAo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L21vY2tfZW5naW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9tb2NrX2VuZ2luZS5jCj4gPiBpbmRleCA2ZDc1NjI3NjllYjIuLmI3Njc1ZWYxODUy MyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L21vY2tfZW5naW5lLmMK PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L21vY2tfZW5naW5lLmMKPiA+IEBAIC0x NDYsMTIgKzE0NiwxOCBAQCBzdGF0aWMgdm9pZCBtb2NrX2NvbnRleHRfZGVzdHJveShzdHJ1Y3Qg a3JlZiAqcmVmKQo+ID4gIAo+ID4gIHN0YXRpYyBpbnQgbW9ja19jb250ZXh0X3BpbihzdHJ1Y3Qg aW50ZWxfY29udGV4dCAqY2UpCj4gPiAgewo+ID4gKyAgICAgaW50IHJldDsKPiA+ICsKPiA+ICAg ICAgIGlmICghY2UtPnJpbmcpIHsKPiA+ICAgICAgICAgICAgICAgY2UtPnJpbmcgPSBtb2NrX3Jp bmcoY2UtPmVuZ2luZSk7Cj4gPiAgICAgICAgICAgICAgIGlmICghY2UtPnJpbmcpCj4gPiAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4gPiAgICAgICB9Cj4gPiAgCj4gPiAr ICAgICByZXQgPSBpbnRlbF9jb250ZXh0X2FjdGl2ZShjZSwgUElOX0hJR0gpOwo+ID4gKyAgICAg aWYgKHJldCkKPiA+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+ICsKPiA+ICAgICAgIG1v Y2tfdGltZWxpbmVfcGluKGNlLT5yaW5nLT50aW1lbGluZSk7Cj4gPiAgICAgICByZXR1cm4gMDsK PiA+ICB9Cj4gPiBAQCAtMzI4LDE0ICszMzQsOSBAQCB2b2lkIG1vY2tfZW5naW5lX2ZyZWUoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ID4gIHsKPiA+ICAgICAgIHN0cnVjdCBtb2Nr X2VuZ2luZSAqbW9jayA9Cj4gPiAgICAgICAgICAgICAgIGNvbnRhaW5lcl9vZihlbmdpbmUsIHR5 cGVvZigqbW9jayksIGJhc2UpOwo+ID4gLSAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmNlOwo+ ID4gIAo+ID4gICAgICAgR0VNX0JVR19PTih0aW1lcl9wZW5kaW5nKCZtb2NrLT5od19kZWxheSkp Owo+ID4gIAo+ID4gLSAgICAgY2UgPSBmZXRjaF9hbmRfemVybygmZW5naW5lLT5sYXN0X3JldGly ZWRfY29udGV4dCk7Cj4gPiAtICAgICBpZiAoY2UpCj4gPiAtICAgICAgICAgICAgIGludGVsX2Nv bnRleHRfdW5waW4oY2UpOwo+ID4gLQo+ID4gICAgICAgaW50ZWxfY29udGV4dF91bnBpbihlbmdp bmUtPmtlcm5lbF9jb250ZXh0KTsKPiA+ICAKPiA+ICAgICAgIGludGVsX2VuZ2luZV9maW5pX2Jy ZWFkY3J1bWJzKGVuZ2luZSk7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9hY3RpdmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmMKPiA+IGlu ZGV4IDg2M2FlMTI3MDdiYS4uMTAwZTQwYWZjOWQ2IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9hY3RpdmUuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9hY3RpdmUuYwo+ID4gQEAgLTEwMCw3ICsxMDAsNyBAQCBhY3RpdmVfaW5zdGFuY2Uoc3Ry dWN0IGk5MTVfYWN0aXZlICpyZWYsIHU2NCBpZHgpCj4gPiAgICAgICAgICAgICAgIHBhcmVudCA9 ICpwOwo+ID4gIAo+ID4gICAgICAgICAgICAgICBub2RlID0gcmJfZW50cnkocGFyZW50LCBzdHJ1 Y3QgYWN0aXZlX25vZGUsIG5vZGUpOwo+ID4gLSAgICAgICAgICAgICBpZiAobm9kZS0+dGltZWxp bmUgPT0gaWR4KQo+ID4gKyAgICAgICAgICAgICBpZiAobm9kZS0+dGltZWxpbmUgPT0gaWR4ICYm ICFJU19FUlIobm9kZS0+YmFzZS5yZXF1ZXN0KSkKPiAKPiBJcyB0aGlzIHJlbGF0ZWQgY2hhbmdl PwoKSXQgb25jZSB3YXMgKGluIHRoZSBuZXh0IGNodW5rKS4gSSB1c2VkIHRvIGluc2VydCB0aGUg ZnJlc2hseSBwcmVhbGxvY2F0ZWQKbm9kZSBpbnRvIHRoZSB0cmVlIGJlZm9yZSBpdCBoYWQgYSB2 YWxpZCByZXF1ZXN0LiBJdCBhcHBlYXJzIHRoYXQgaXMgbm8KbG9uZ2VyIHRoZSBjYXNlIGFuZCB0 aGUgRVJSX1BUUiBpcyBrZXB0IHNhZmVseSBpbiBhIGxpc3QgdW50aWwgcmVhZHkuCgo+IC1NaWth Cj4gCj4gPiAgICAgICAgICAgICAgICAgICAgICAgZ290byByZXBsYWNlOwo+ID4gIAo+ID4gICAg ICAgICAgICAgICBpZiAobm9kZS0+dGltZWxpbmUgPCBpZHgpCj4gPiBAQCAtMTU3LDYgKzE1Nyw3 IEBAIHZvaWQgaTkxNV9hY3RpdmVfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwK PiA+ICAgICAgIHJlZi0+cmV0aXJlID0gcmV0aXJlOwo+ID4gICAgICAgcmVmLT50cmVlID0gUkJf Uk9PVDsKPiA+ICAgICAgIGk5MTVfYWN0aXZlX3JlcXVlc3RfaW5pdCgmcmVmLT5sYXN0LCBOVUxM LCBsYXN0X3JldGlyZSk7Cj4gPiArICAgICBpbml0X2xsaXN0X2hlYWQoJnJlZi0+YmFycmllcnMp Owo+ID4gICAgICAgcmVmLT5jb3VudCA9IDA7Cj4gPiAgfQo+ID4gIAo+ID4gQEAgLTI2Myw2ICsy NjQsODMgQEAgdm9pZCBpOTE1X2FjdGl2ZV9maW5pKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKQo+ ID4gIH0KPiA+ICAjZW5kaWYKPiA+ICAKPiA+ICtpbnQgaTkxNV9hY3RpdmVfYWNxdWlyZV9wcmVh bGxvY2F0ZV9iYXJyaWVyKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmLAo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQo+ID4gK3sKPiA+ICsgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZW5n aW5lLT5pOTE1Owo+ID4gKyAgICAgdW5zaWduZWQgbG9uZyB0bXA7Cj4gPiArICAgICBpbnQgZXJy ID0gMDsKPiA+ICsKPiA+ICsgICAgIEdFTV9CVUdfT04oIWVuZ2luZS0+bWFzayk7Cj4gPiArICAg ICBmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgaTkxNSwgZW5naW5lLT5tYXNrLCB0bXAp IHsKPiA+ICsgICAgICAgICAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmtjdHggPSBlbmdpbmUt Pmtlcm5lbF9jb250ZXh0Owo+ID4gKyAgICAgICAgICAgICBzdHJ1Y3QgYWN0aXZlX25vZGUgKm5v ZGU7Cj4gPiArCj4gPiArICAgICAgICAgICAgIG5vZGUgPSBrbWVtX2NhY2hlX2FsbG9jKGdsb2Jh bC5zbGFiX2NhY2hlLCBHRlBfS0VSTkVMKTsKPiA+ICsgICAgICAgICAgICAgaWYgKHVubGlrZWx5 KCFub2RlKSkgewo+ID4gKyAgICAgICAgICAgICAgICAgICAgIGVyciA9IC1FTk9NRU07Cj4gPiAr ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gPiArICAgICAgICAgICAgIH0KPiA+ICsKPiA+ ICsgICAgICAgICAgICAgaTkxNV9hY3RpdmVfcmVxdWVzdF9pbml0KCZub2RlLT5iYXNlLAo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKillbmdpbmUsIG5v ZGVfcmV0aXJlKTsKPiA+ICsgICAgICAgICAgICAgbm9kZS0+dGltZWxpbmUgPSBrY3R4LT5yaW5n LT50aW1lbGluZS0+ZmVuY2VfY29udGV4dDsKPiA+ICsgICAgICAgICAgICAgbm9kZS0+cmVmID0g cmVmOwo+ID4gKyAgICAgICAgICAgICByZWYtPmNvdW50Kys7Cj4gPiArCj4gPiArICAgICAgICAg ICAgIGxsaXN0X2FkZCgoc3RydWN0IGxsaXN0X25vZGUgKikmbm9kZS0+YmFzZS5saW5rLAo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgJnJlZi0+YmFycmllcnMpOwo+ID4gKyAgICAgfQo+ID4g Kwo+ID4gKyAgICAgcmV0dXJuIGVycjsKPiA+ICt9Cj4gPiArCj4gPiArdm9pZCBpOTE1X2FjdGl2 ZV9hY3F1aXJlX2JhcnJpZXIoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpCj4gPiArewo+ID4gKyAg ICAgc3RydWN0IGxsaXN0X25vZGUgKnBvcywgKm5leHQ7Cj4gPiArCj4gPiArICAgICBpOTE1X2Fj dGl2ZV9hY3F1aXJlKHJlZik7Cj4gPiArCj4gPiArICAgICBsbGlzdF9mb3JfZWFjaF9zYWZlKHBv cywgbmV4dCwgbGxpc3RfZGVsX2FsbCgmcmVmLT5iYXJyaWVycykpIHsKPiA+ICsgICAgICAgICAg ICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+ID4gKyAgICAgICAgICAgICBzdHJ1 Y3QgYWN0aXZlX25vZGUgKm5vZGU7Cj4gPiArICAgICAgICAgICAgIHN0cnVjdCByYl9ub2RlICoq cCwgKnBhcmVudDsKPiA+ICsKPiA+ICsgICAgICAgICAgICAgbm9kZSA9IGNvbnRhaW5lcl9vZigo c3RydWN0IGxpc3RfaGVhZCAqKXBvcywKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0eXBlb2YoKm5vZGUpLCBiYXNlLmxpbmspOwo+ID4gKwo+ID4gKyAgICAgICAgICAgICBl bmdpbmUgPSAodm9pZCAqKXJjdV9hY2Nlc3NfcG9pbnRlcihub2RlLT5iYXNlLnJlcXVlc3QpOwo+ ID4gKyAgICAgICAgICAgICBSQ1VfSU5JVF9QT0lOVEVSKG5vZGUtPmJhc2UucmVxdWVzdCwgRVJS X1BUUigtRUFHQUlOKSk7Cj4gPiArCj4gPiArICAgICAgICAgICAgIHBhcmVudCA9IE5VTEw7Cj4g PiArICAgICAgICAgICAgIHAgPSAmcmVmLT50cmVlLnJiX25vZGU7Cj4gPiArICAgICAgICAgICAg IHdoaWxlICgqcCkgewo+ID4gKyAgICAgICAgICAgICAgICAgICAgIHBhcmVudCA9ICpwOwo+ID4g KyAgICAgICAgICAgICAgICAgICAgIGlmIChyYl9lbnRyeShwYXJlbnQsCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBhY3RpdmVfbm9kZSwKPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSktPnRpbWVsaW5lIDwgbm9kZS0+dGltZWxp bmUpCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwID0gJnBhcmVudC0+cmJfcmln aHQ7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgZWxzZQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcCA9ICZwYXJlbnQtPnJiX2xlZnQ7Cj4gPiArICAgICAgICAgICAgIH0KPiA+ ICsgICAgICAgICAgICAgcmJfbGlua19ub2RlKCZub2RlLT5ub2RlLCBwYXJlbnQsIHApOwo+ID4g KyAgICAgICAgICAgICByYl9pbnNlcnRfY29sb3IoJm5vZGUtPm5vZGUsICZyZWYtPnRyZWUpOwo+ ID4gKwo+ID4gKyAgICAgICAgICAgICBsbGlzdF9hZGQoKHN0cnVjdCBsbGlzdF9ub2RlICopJm5v ZGUtPmJhc2UubGluaywKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICZlbmdpbmUtPmJhcnJp ZXJfdGFza3MpOwo+ID4gKyAgICAgfQo+ID4gKyAgICAgaTkxNV9hY3RpdmVfcmVsZWFzZShyZWYp Owo+ID4gK30KPiA+ICsKPiA+ICt2b2lkIGk5MTVfcmVxdWVzdF9hZGRfYmFycmllcnMoc3RydWN0 IGk5MTVfcmVxdWVzdCAqcnEpCj4gPiArewo+ID4gKyAgICAgc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lID0gcnEtPmVuZ2luZTsKPiA+ICsgICAgIHN0cnVjdCBsbGlzdF9ub2RlICpub2Rl LCAqbmV4dDsKPiA+ICsKPiA+ICsgICAgIGxsaXN0X2Zvcl9lYWNoX3NhZmUobm9kZSwgbmV4dCwg bGxpc3RfZGVsX2FsbCgmZW5naW5lLT5iYXJyaWVyX3Rhc2tzKSkKPiA+ICsgICAgICAgICAgICAg bGlzdF9hZGRfdGFpbCgoc3RydWN0IGxpc3RfaGVhZCAqKW5vZGUsICZycS0+YWN0aXZlX2xpc3Qp Owo+ID4gK30KPiA+ICsKPiA+ICBpbnQgaTkxNV9hY3RpdmVfcmVxdWVzdF9zZXQoc3RydWN0IGk5 MTVfYWN0aXZlX3JlcXVlc3QgKmFjdGl2ZSwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCj4gPiAgewo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Fj dGl2ZS5oCj4gPiBpbmRleCA3ZDc1ODcxOWNlMzkuLmQ1NWQzNzY3Mzk0NCAxMDA2NDQKPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmgKPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmgKPiA+IEBAIC00MDYsNCArNDA2LDkgQEAgdm9pZCBp OTE1X2FjdGl2ZV9maW5pKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKTsKPiA+ICBzdGF0aWMgaW5s aW5lIHZvaWQgaTkxNV9hY3RpdmVfZmluaShzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZikgeyB9Cj4g PiAgI2VuZGlmCj4gPiAgCj4gPiAraW50IGk5MTVfYWN0aXZlX2FjcXVpcmVfcHJlYWxsb2NhdGVf YmFycmllcihzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZiwKPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Cj4g PiArdm9pZCBpOTE1X2FjdGl2ZV9hY3F1aXJlX2JhcnJpZXIoc3RydWN0IGk5MTVfYWN0aXZlICpy ZWYpOwo+ID4gK3ZvaWQgaTkxNV9yZXF1ZXN0X2FkZF9iYXJyaWVycyhzdHJ1Y3QgaTkxNV9yZXF1 ZXN0ICpycSk7Cj4gPiArCj4gPiAgI2VuZGlmIC8qIF9JOTE1X0FDVElWRV9IXyAqLwo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlX3R5cGVzLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZV90eXBlcy5oCj4gPiBpbmRleCBiNjc5MjUzYjUz YTUuLmMwMjU5OTFiOTIzMyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfYWN0aXZlX3R5cGVzLmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0 aXZlX3R5cGVzLmgKPiA+IEBAIC03LDYgKzcsNyBAQAo+ID4gICNpZm5kZWYgX0k5MTVfQUNUSVZF X1RZUEVTX0hfCj4gPiAgI2RlZmluZSBfSTkxNV9BQ1RJVkVfVFlQRVNfSF8KPiA+ICAKPiA+ICsj aW5jbHVkZSA8bGludXgvbGxpc3QuaD4KPiA+ICAjaW5jbHVkZSA8bGludXgvcmJ0cmVlLmg+Cj4g PiAgI2luY2x1ZGUgPGxpbnV4L3JjdXBkYXRlLmg+Cj4gPiAgCj4gPiBAQCAtMzEsNiArMzIsOCBA QCBzdHJ1Y3QgaTkxNV9hY3RpdmUgewo+ID4gICAgICAgdW5zaWduZWQgaW50IGNvdW50Owo+ID4g IAo+ID4gICAgICAgdm9pZCAoKnJldGlyZSkoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpOwo+ID4g Kwo+ID4gKyAgICAgc3RydWN0IGxsaXN0X2hlYWQgYmFycmllcnM7Cj4gPiAgfTsKPiA+ICAKPiA+ ICAjZW5kaWYgLyogX0k5MTVfQUNUSVZFX1RZUEVTX0hfICovCj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMKPiA+IGluZGV4IGU5ODBjMWVlM2RjZi4uMDY2M2YyZGY2NWQ2IDEwMDY0NAo+ID4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYwo+ID4gQEAgLTExOTcsMTAgKzExOTcsNiBAQCB2b2lkIGk5MTVf Z2VtX3Nhbml0aXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ID4gIAo+ID4gICAg ICAgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQoJmk5MTUtPnVuY29yZSwgRk9SQ0VXQUtFX0FM TCk7Cj4gPiAgICAgICBpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1LCB3YWtlcmVmKTsKPiA+IC0K PiA+IC0gICAgIG11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+ID4gLSAgICAg aTkxNV9nZW1fY29udGV4dHNfbG9zdChpOTE1KTsKPiA+IC0gICAgIG11dGV4X3VubG9jaygmaTkx NS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gPiAgfQo+ID4gIAo+ID4gIHZvaWQgaTkxNV9nZW1faW5p dF9zd2l6emxpbmcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMKPiA+IGluZGV4IGU5YjU5ZWVhNGYxMC4uOWVmZjlkZTdm YTEwIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMK PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jCj4gPiBAQCAtMjEz LDE4ICsyMTMsNiBAQCBzdGF0aWMgdm9pZCBfX3JldGlyZV9lbmdpbmVfcmVxdWVzdChzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gPiAgICAgICBzcGluX3VubG9jaygmcnEtPmxvY2sp Owo+ID4gIAo+ID4gICAgICAgbG9jYWxfaXJxX2VuYWJsZSgpOwo+ID4gLQo+ID4gLSAgICAgLyoK PiA+IC0gICAgICAqIFRoZSBiYWNraW5nIG9iamVjdCBmb3IgdGhlIGNvbnRleHQgaXMgZG9uZSBh ZnRlciBzd2l0Y2hpbmcgdG8gdGhlCj4gPiAtICAgICAgKiAqbmV4dCogY29udGV4dC4gVGhlcmVm b3JlIHdlIGNhbm5vdCByZXRpcmUgdGhlIHByZXZpb3VzIGNvbnRleHQgdW50aWwKPiA+IC0gICAg ICAqIHRoZSBuZXh0IGNvbnRleHQgaGFzIGFscmVhZHkgc3RhcnRlZCBydW5uaW5nLiBIb3dldmVy LCBzaW5jZSB3ZQo+ID4gLSAgICAgICogY2Fubm90IHRha2UgdGhlIHJlcXVpcmVkIGxvY2tzIGF0 IGk5MTVfcmVxdWVzdF9zdWJtaXQoKSB3ZQo+ID4gLSAgICAgICogZGVmZXIgdGhlIHVucGlubmlu ZyBvZiB0aGUgYWN0aXZlIGNvbnRleHQgdG8gbm93LCByZXRpcmVtZW50IG9mCj4gPiAtICAgICAg KiB0aGUgc3Vic2VxdWVudCByZXF1ZXN0Lgo+ID4gLSAgICAgICovCj4gPiAtICAgICBpZiAoZW5n aW5lLT5sYXN0X3JldGlyZWRfY29udGV4dCkKPiA+IC0gICAgICAgICAgICAgaW50ZWxfY29udGV4 dF91bnBpbihlbmdpbmUtPmxhc3RfcmV0aXJlZF9jb250ZXh0KTsKPiA+IC0gICAgIGVuZ2luZS0+ bGFzdF9yZXRpcmVkX2NvbnRleHQgPSBycS0+aHdfY29udGV4dDsKPiA+ICB9Cj4gPiAgCj4gPiAg c3RhdGljIHZvaWQgX19yZXRpcmVfZW5naW5lX3VwdG8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lLAo+ID4gQEAgLTc1OSw5ICs3NDcsNiBAQCBfX2k5MTVfcmVxdWVzdF9jcmVhdGUoc3Ry dWN0IGludGVsX2NvbnRleHQgKmNlLCBnZnBfdCBnZnApCj4gPiAgCj4gPiAgICAgICBycS0+aW5m aXggPSBycS0+cmluZy0+ZW1pdDsgLyogZW5kIG9mIGhlYWRlcjsgc3RhcnQgb2YgdXNlciBwYXls b2FkICovCj4gPiAgCj4gPiAtICAgICAvKiBLZWVwIGEgc2Vjb25kIHBpbiBmb3IgdGhlIGR1YWwg cmV0aXJlbWVudCBhbG9uZyBlbmdpbmUgYW5kIHJpbmcgKi8KPiA+IC0gICAgIF9faW50ZWxfY29u dGV4dF9waW4oY2UpOwo+ID4gLQo+ID4gICAgICAgaW50ZWxfY29udGV4dF9tYXJrX2FjdGl2ZShj ZSk7Cj4gPiAgICAgICByZXR1cm4gcnE7Cj4gPiAgCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jCj4gPiBpbmRleCBiN2YzZmJiNGFlODku LmE5NmQwYzAxMmQ0NiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0 ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2Vs ZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jCj4gPiBAQCAtNTYsNyArNTYsNiBAQCBzdGF0aWMgdm9p ZCBtb2NrX2RldmljZV9yZWxlYXNlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiAgCj4gPiAg ICAgICBtdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKPiA+ICAgICAgIG1vY2tf ZGV2aWNlX2ZsdXNoKGk5MTUpOwo+ID4gLSAgICAgaTkxNV9nZW1fY29udGV4dHNfbG9zdChpOTE1 KTsKPiA+ICAgICAgIG11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gPiAg Cj4gPiAgICAgICBmbHVzaF93b3JrKCZpOTE1LT5nZW0uaWRsZV93b3JrKTsKPiA+IC0tIAo+ID4g Mi4yMC4xCj4gPgo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KPiA+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiA+IEludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cj4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeA==