From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: Re: [PATCH 9/9] drm/xen-front: Implement communication with backend Date: Tue, 6 Mar 2018 11:45:24 +0200 Message-ID: References: <1519200222-20623-1-git-send-email-andr2000@gmail.com> <1519200222-20623-10-git-send-email-andr2000@gmail.com> <20180305092515.GJ22212@phenom.ffwll.local> <7a6d19be-a740-dae4-551b-17740171aedf@epam.com> <20180306092659.GN22212@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1et9A3-0004fk-3l for xen-devel@lists.xenproject.org; Tue, 06 Mar 2018 09:45:31 +0000 Received: by mail-lf0-x242.google.com with SMTP id g72so27544686lfg.3 for ; Tue, 06 Mar 2018 01:45:28 -0800 (PST) In-Reply-To: <20180306092659.GN22212@phenom.ffwll.local> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Oleksandr Andrushchenko , xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, airlied@linux.ie, daniel.vetter@intel.com, seanpaul@chromium.org, gustavo@padovan.org, jgross@suse.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com List-Id: xen-devel@lists.xenproject.org T24gMDMvMDYvMjAxOCAxMToyNiBBTSwgRGFuaWVsIFZldHRlciB3cm90ZToKPiBPbiBNb24sIE1h ciAwNSwgMjAxOCBhdCAxMTozMDozNUFNICswMjAwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3 cm90ZToKPj4gT24gMDMvMDUvMjAxOCAxMToyNSBBTSwgRGFuaWVsIFZldHRlciB3cm90ZToKPj4+ IE9uIFdlZCwgRmViIDIxLCAyMDE4IGF0IDEwOjAzOjQyQU0gKzAyMDAsIE9sZWtzYW5kciBBbmRy dXNoY2hlbmtvIHdyb3RlOgo+Pj4+IEZyb206IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVr c2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4KPj4+Pgo+Pj4+IEhhbmRsZSBjb21tdW5pY2F0 aW9uIHdpdGggdGhlIGJhY2tlbmQ6Cj4+Pj4gICAgLSBzZW5kIHJlcXVlc3RzIGFuZCB3YWl0IGZv ciB0aGUgcmVzcG9uc2VzIGFjY29yZGluZwo+Pj4+ICAgICAgdG8gdGhlIGRpc3BsaWYgcHJvdG9j b2wKPj4+PiAgICAtIHNlcmlhbGl6ZSBhY2Nlc3MgdG8gdGhlIGNvbW11bmljYXRpb24gY2hhbm5l bAo+Pj4+ICAgIC0gdGltZS1vdXQgdXNlZCBmb3IgYmFja2VuZCBjb21tdW5pY2F0aW9uIGlzIHNl dCB0byAzMDAwIG1zCj4+Pj4gICAgLSBtYW5hZ2UgZGlzcGxheSBidWZmZXJzIHNoYXJlZCB3aXRo IHRoZSBiYWNrZW5kCj4+Pj4KPj4+PiBTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgQW5kcnVzaGNo ZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+Cj4+PiBBZnRlciB0aGUgZGVt aWRsYXllcmluZyBpdCBwcm9iYWJseSBtYWtlcyBzZW5zZSB0byBtZXJnZSB0aGlzIHdpdGggdGhl Cj4+PiBvdmVyYWxsIGttcy9iYXNpYy1kcm0tZHJpdmVyIHBhdGNoLiBVcCB0byB5b3UgcmVhbGx5 Lgo+PiBUaGUgcmVhc29uIGZvciBzdWNoIHBhcnRpdGlvbmluZyBoZXJlIGFuZCBiZWZvcmUgd2Fz IHRoYXQKPj4gSSBjYW4gaGF2ZSBYZW4vRFJNIHBhcnRzIHNlcGFyYXRlLCBzbyB0aG9zZSBhcmUg ZWFzaWVyIGZvcgo+PiByZXZpZXcgYnkgWGVuL0RSTSBjb21tdW5pdGllcy4gU28sIEkgd291bGQg cHJlZmVyIHRvIGhhdmUgaXQKPj4gYXMgaXQgaXMKPiBXZWxsIGZvciByZXZpZXdpbmcgdGhlIGtt cyBwYXJ0cyBJIG5lZWQgdG8gY2hlY2sgd2hhdCB0aGUgeGVuIHBhcnRzIGFyZQo+IGRvaW5nIChh dCBsZWFzdCBzb21ldGltZXMpLCBzaW5jZSBzZW1hbnRpY3Mgb2Ygd2hhdCB5b3UncmUgZG9pbmcg bWF0dGVyLAo+IGFuZCB0aGVyZSdzIGEgZmV3IGNhc2VzIHdoaWNoIG5ldyBkcml2ZXJzIHRlbmQg dG8gZ2V0IHdyb25nLiBTbyBmb3IgbWUsCj4gdGhpcyBzcGxpdHRpbmcgbWFrZXMgc3R1ZmYgYWN0 dWFsbHkgaGFyZGVyIHRvIHJldmlldy4KPgo+IEFuZCBJIGd1ZXNzIGZvciB0aGUgeGVuIGZvbGtz IGl0IHdvbid0IGh1cnQgaWYgdGhleSBzZWUgYSBiaXQgY2xlYXJlciBob3cKPiBpdCdzIHVzZWQg b24gdGhlIGRybSBzaWRlIChldmVuIGlmIHRoZXkgbWlnaHQgbm90IHJlYWxseSB1bmRlcnN0YW5k IHdoYXQncwo+IGdvaW5nIG9uKS4gSWYgd2UgaGF2ZSBzb21lIHN1cGVyZmljaWFsIGFic3RyYWN0 aW9uIGluIGJldHdlZW4gZWFjaCBvZiB0aGUKPiBzdWJzeXN0ZW0gbWFpbnRhaW5lcnMgbWlnaHQg bWFrZSBhc3N1bXB0aW9ucyBhYm91dCB3aGF0IHRoZSBvdGhlciBzaWRlIG9mCj4gdGhlIGNvZGUg aXMgZG9pbmcgd2hpY2ggdHVybiBvdXQgdG8gYmUgd3JvbmcsIGFuZCB0aGF0J3Mgbm90IGdvb2Qu Cj4KPiBKdXN0IGV4cGxhaW5pbmcgbXkgbW90aXZhdGlvbiBmb3Igd2h5IEkgZG9uJ3QgbGlrZSBh YnN0cmFjdGlvbnMgYW5kCj4gc3BsaXR0aW5nIHN0dWZmIHVwIGludG8gcGF0Y2hlcyB0aGF0IGRv bid0IG1ha2UgbXVjaCBzZW5zZSBvbiB0aGVpciBvd24KPiAoYmVjYXVzZSB0aGUgY29kZSBpcyBq dXN0IGhhbmdpbmcgb3V0IHRoZXJlIHdpdGhvdXQgYmVpbmcgd2lyZWQgdXAKPiBhbnl3aGVyZSku Ck9rLCBubyBwcm9ibGVtIGhlcmUuIFdpbGwgc3F1YXNoIHJlbGV2YW50IHBhdGNoZXMgdGhlbgo+ IC1EYW5pZWwKPj4+IC1EYW5pZWwKPj4+PiAtLS0KPj4+PiAgICBkcml2ZXJzL2dwdS9kcm0veGVu L3hlbl9kcm1fZnJvbnQuYyB8IDMyNyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0KPj4+PiAgICBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnQuaCB8ICAgNSArCj4+ Pj4gICAgMiBmaWxlcyBjaGFuZ2VkLCAzMjcgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkK Pj4+Pgo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnQu YyBiL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udC5jCj4+Pj4gaW5kZXggOGRlODhl MzU5ZDVlLi41YWQ1NDYyMzFkMzAgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hl bi94ZW5fZHJtX2Zyb250LmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1f ZnJvbnQuYwo+Pj4+IEBAIC0zMSwxMiArMzEsMTQ2IEBACj4+Pj4gICAgI2luY2x1ZGUgInhlbl9k cm1fZnJvbnRfZXZ0Y2hubC5oIgo+Pj4+ICAgICNpbmNsdWRlICJ4ZW5fZHJtX2Zyb250X3NoYnVm LmgiCj4+Pj4gKy8qIHRpbWVvdXQgaW4gbXMgdG8gd2FpdCBmb3IgYmFja2VuZCB0byByZXNwb25k ICovCj4+Pj4gKyNkZWZpbmUgVkRSTV9XQUlUX0JBQ0tfTVMJMzAwMAo+Pj4+ICsKPj4+PiArc3Ry dWN0IHhlbl9kcm1fZnJvbnRfZGJ1ZiB7Cj4+Pj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7Cj4+ Pj4gKwl1aW50NjRfdCBkYnVmX2Nvb2tpZTsKPj4+PiArCXVpbnQ2NF90IGZiX2Nvb2tpZTsKPj4+ PiArCXN0cnVjdCB4ZW5fZHJtX2Zyb250X3NoYnVmICpzaGJ1ZjsKPj4+PiArfTsKPj4+PiArCj4+ Pj4gK3N0YXRpYyBpbnQgZGJ1Zl9hZGRfdG9fbGlzdChzdHJ1Y3QgeGVuX2RybV9mcm9udF9pbmZv ICpmcm9udF9pbmZvLAo+Pj4+ICsJCXN0cnVjdCB4ZW5fZHJtX2Zyb250X3NoYnVmICpzaGJ1Ziwg dWludDY0X3QgZGJ1Zl9jb29raWUpCj4+Pj4gK3sKPj4+PiArCXN0cnVjdCB4ZW5fZHJtX2Zyb250 X2RidWYgKmRidWY7Cj4+Pj4gKwo+Pj4+ICsJZGJ1ZiA9IGt6YWxsb2Moc2l6ZW9mKCpkYnVmKSwg R0ZQX0tFUk5FTCk7Cj4+Pj4gKwlpZiAoIWRidWYpCj4+Pj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4+ Pj4gKwo+Pj4+ICsJZGJ1Zi0+ZGJ1Zl9jb29raWUgPSBkYnVmX2Nvb2tpZTsKPj4+PiArCWRidWYt PnNoYnVmID0gc2hidWY7Cj4+Pj4gKwlsaXN0X2FkZCgmZGJ1Zi0+bGlzdCwgJmZyb250X2luZm8t PmRidWZfbGlzdCk7Cj4+Pj4gKwlyZXR1cm4gMDsKPj4+PiArfQo+Pj4+ICsKPj4+PiArc3RhdGlj IHN0cnVjdCB4ZW5fZHJtX2Zyb250X2RidWYgKmRidWZfZ2V0KHN0cnVjdCBsaXN0X2hlYWQgKmRi dWZfbGlzdCwKPj4+PiArCQl1aW50NjRfdCBkYnVmX2Nvb2tpZSkKPj4+PiArewo+Pj4+ICsJc3Ry dWN0IHhlbl9kcm1fZnJvbnRfZGJ1ZiAqYnVmLCAqcTsKPj4+PiArCj4+Pj4gKwlsaXN0X2Zvcl9l YWNoX2VudHJ5X3NhZmUoYnVmLCBxLCBkYnVmX2xpc3QsIGxpc3QpCj4+Pj4gKwkJaWYgKGJ1Zi0+ ZGJ1Zl9jb29raWUgPT0gZGJ1Zl9jb29raWUpCj4+Pj4gKwkJCXJldHVybiBidWY7Cj4+Pj4gKwo+ Pj4+ICsJcmV0dXJuIE5VTEw7Cj4+Pj4gK30KPj4+PiArCj4+Pj4gK3N0YXRpYyB2b2lkIGRidWZf Zmx1c2hfZmIoc3RydWN0IGxpc3RfaGVhZCAqZGJ1Zl9saXN0LCB1aW50NjRfdCBmYl9jb29raWUp Cj4+Pj4gK3sKPj4+PiArCXN0cnVjdCB4ZW5fZHJtX2Zyb250X2RidWYgKmJ1ZiwgKnE7Cj4+Pj4g Kwo+Pj4+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGJ1ZiwgcSwgZGJ1Zl9saXN0LCBsaXN0 KQo+Pj4+ICsJCWlmIChidWYtPmZiX2Nvb2tpZSA9PSBmYl9jb29raWUpCj4+Pj4gKwkJCXhlbl9k cm1fZnJvbnRfc2hidWZfZmx1c2goYnVmLT5zaGJ1Zik7Cj4+Pj4gK30KPj4+PiArCj4+Pj4gK3N0 YXRpYyB2b2lkIGRidWZfZnJlZShzdHJ1Y3QgbGlzdF9oZWFkICpkYnVmX2xpc3QsIHVpbnQ2NF90 IGRidWZfY29va2llKQo+Pj4+ICt7Cj4+Pj4gKwlzdHJ1Y3QgeGVuX2RybV9mcm9udF9kYnVmICpi dWYsICpxOwo+Pj4+ICsKPj4+PiArCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShidWYsIHEsIGRi dWZfbGlzdCwgbGlzdCkKPj4+PiArCQlpZiAoYnVmLT5kYnVmX2Nvb2tpZSA9PSBkYnVmX2Nvb2tp ZSkgewo+Pj4+ICsJCQlsaXN0X2RlbCgmYnVmLT5saXN0KTsKPj4+PiArCQkJeGVuX2RybV9mcm9u dF9zaGJ1Zl91bm1hcChidWYtPnNoYnVmKTsKPj4+PiArCQkJeGVuX2RybV9mcm9udF9zaGJ1Zl9m cmVlKGJ1Zi0+c2hidWYpOwo+Pj4+ICsJCQlrZnJlZShidWYpOwo+Pj4+ICsJCQlicmVhazsKPj4+ PiArCQl9Cj4+Pj4gK30KPj4+PiArCj4+Pj4gK3N0YXRpYyB2b2lkIGRidWZfZnJlZV9hbGwoc3Ry dWN0IGxpc3RfaGVhZCAqZGJ1Zl9saXN0KQo+Pj4+ICt7Cj4+Pj4gKwlzdHJ1Y3QgeGVuX2RybV9m cm9udF9kYnVmICpidWYsICpxOwo+Pj4+ICsKPj4+PiArCWxpc3RfZm9yX2VhY2hfZW50cnlfc2Fm ZShidWYsIHEsIGRidWZfbGlzdCwgbGlzdCkgewo+Pj4+ICsJCWxpc3RfZGVsKCZidWYtPmxpc3Qp Owo+Pj4+ICsJCXhlbl9kcm1fZnJvbnRfc2hidWZfdW5tYXAoYnVmLT5zaGJ1Zik7Cj4+Pj4gKwkJ eGVuX2RybV9mcm9udF9zaGJ1Zl9mcmVlKGJ1Zi0+c2hidWYpOwo+Pj4+ICsJCWtmcmVlKGJ1Zik7 Cj4+Pj4gKwl9Cj4+Pj4gK30KPj4+PiArCj4+Pj4gK3N0YXRpYyBzdHJ1Y3QgeGVuZGlzcGxfcmVx ICpiZV9wcmVwYXJlX3JlcSgKPj4+PiArCQlzdHJ1Y3QgeGVuX2RybV9mcm9udF9ldnRjaG5sICpl dnRjaG5sLCB1aW50OF90IG9wZXJhdGlvbikKPj4+PiArewo+Pj4+ICsJc3RydWN0IHhlbmRpc3Bs X3JlcSAqcmVxOwo+Pj4+ICsKPj4+PiArCXJlcSA9IFJJTkdfR0VUX1JFUVVFU1QoJmV2dGNobmwt PnUucmVxLnJpbmcsCj4+Pj4gKwkJCWV2dGNobmwtPnUucmVxLnJpbmcucmVxX3Byb2RfcHZ0KTsK Pj4+PiArCXJlcS0+b3BlcmF0aW9uID0gb3BlcmF0aW9uOwo+Pj4+ICsJcmVxLT5pZCA9IGV2dGNo bmwtPmV2dF9uZXh0X2lkKys7Cj4+Pj4gKwlldnRjaG5sLT5ldnRfaWQgPSByZXEtPmlkOwo+Pj4+ ICsJcmV0dXJuIHJlcTsKPj4+PiArfQo+Pj4+ICsKPj4+PiArc3RhdGljIGludCBiZV9zdHJlYW1f ZG9faW8oc3RydWN0IHhlbl9kcm1fZnJvbnRfZXZ0Y2hubCAqZXZ0Y2hubCwKPj4+PiArCQlzdHJ1 Y3QgeGVuZGlzcGxfcmVxICpyZXEpCj4+Pj4gK3sKPj4+PiArCXJlaW5pdF9jb21wbGV0aW9uKCZl dnRjaG5sLT51LnJlcS5jb21wbGV0aW9uKTsKPj4+PiArCWlmICh1bmxpa2VseShldnRjaG5sLT5z dGF0ZSAhPSBFVlRDSE5MX1NUQVRFX0NPTk5FQ1RFRCkpCj4+Pj4gKwkJcmV0dXJuIC1FSU87Cj4+ Pj4gKwo+Pj4+ICsJeGVuX2RybV9mcm9udF9ldnRjaG5sX2ZsdXNoKGV2dGNobmwpOwo+Pj4+ICsJ cmV0dXJuIDA7Cj4+Pj4gK30KPj4+PiArCj4+Pj4gK3N0YXRpYyBpbnQgYmVfc3RyZWFtX3dhaXRf aW8oc3RydWN0IHhlbl9kcm1fZnJvbnRfZXZ0Y2hubCAqZXZ0Y2hubCkKPj4+PiArewo+Pj4+ICsJ aWYgKHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmZXZ0Y2hubC0+dS5yZXEuY29tcGxldGlv biwKPj4+PiArCQkJbXNlY3NfdG9famlmZmllcyhWRFJNX1dBSVRfQkFDS19NUykpIDw9IDApCj4+ Pj4gKwkJcmV0dXJuIC1FVElNRURPVVQ7Cj4+Pj4gKwo+Pj4+ICsJcmV0dXJuIGV2dGNobmwtPnUu cmVxLnJlc3Bfc3RhdHVzOwo+Pj4+ICt9Cj4+Pj4gKwo+Pj4+ICAgIHN0YXRpYyBpbnQgYmVfbW9k ZV9zZXQoc3RydWN0IHhlbl9kcm1fZnJvbnRfZHJtX3BpcGVsaW5lICpwaXBlbGluZSwgdWludDMy X3QgeCwKPj4+PiAgICAJCXVpbnQzMl90IHksIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWln aHQsIHVpbnQzMl90IGJwcCwKPj4+PiAgICAJCXVpbnQ2NF90IGZiX2Nvb2tpZSkKPj4+PiAgICB7 Cj4+Pj4gLQlyZXR1cm4gMDsKPj4+PiArCXN0cnVjdCB4ZW5fZHJtX2Zyb250X2V2dGNobmwgKmV2 dGNobmw7Cj4+Pj4gKwlzdHJ1Y3QgeGVuX2RybV9mcm9udF9pbmZvICpmcm9udF9pbmZvOwo+Pj4+ ICsJc3RydWN0IHhlbmRpc3BsX3JlcSAqcmVxOwo+Pj4+ICsJdW5zaWduZWQgbG9uZyBmbGFnczsK Pj4+PiArCWludCByZXQ7Cj4+Pj4gKwo+Pj4+ICsJZnJvbnRfaW5mbyA9IHBpcGVsaW5lLT5kcm1f aW5mby0+ZnJvbnRfaW5mbzsKPj4+PiArCWV2dGNobmwgPSAmZnJvbnRfaW5mby0+ZXZ0X3BhaXJz W3BpcGVsaW5lLT5pbmRleF0ucmVxOwo+Pj4+ICsJaWYgKHVubGlrZWx5KCFldnRjaG5sKSkKPj4+ PiArCQlyZXR1cm4gLUVJTzsKPj4+PiArCj4+Pj4gKwltdXRleF9sb2NrKCZmcm9udF9pbmZvLT5y ZXFfaW9fbG9jayk7Cj4+Pj4gKwo+Pj4+ICsJc3Bpbl9sb2NrX2lycXNhdmUoJmZyb250X2luZm8t PmlvX2xvY2ssIGZsYWdzKTsKPj4+PiArCXJlcSA9IGJlX3ByZXBhcmVfcmVxKGV2dGNobmwsIFhF TkRJU1BMX09QX1NFVF9DT05GSUcpOwo+Pj4+ICsJcmVxLT5vcC5zZXRfY29uZmlnLnggPSB4Owo+ Pj4+ICsJcmVxLT5vcC5zZXRfY29uZmlnLnkgPSB5Owo+Pj4+ICsJcmVxLT5vcC5zZXRfY29uZmln LndpZHRoID0gd2lkdGg7Cj4+Pj4gKwlyZXEtPm9wLnNldF9jb25maWcuaGVpZ2h0ID0gaGVpZ2h0 Owo+Pj4+ICsJcmVxLT5vcC5zZXRfY29uZmlnLmJwcCA9IGJwcDsKPj4+PiArCXJlcS0+b3Auc2V0 X2NvbmZpZy5mYl9jb29raWUgPSBmYl9jb29raWU7Cj4+Pj4gKwo+Pj4+ICsJcmV0ID0gYmVfc3Ry ZWFtX2RvX2lvKGV2dGNobmwsIHJlcSk7Cj4+Pj4gKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZm cm9udF9pbmZvLT5pb19sb2NrLCBmbGFncyk7Cj4+Pj4gKwo+Pj4+ICsJaWYgKHJldCA9PSAwKQo+ Pj4+ICsJCXJldCA9IGJlX3N0cmVhbV93YWl0X2lvKGV2dGNobmwpOwo+Pj4+ICsKPj4+PiArCW11 dGV4X3VubG9jaygmZnJvbnRfaW5mby0+cmVxX2lvX2xvY2spOwo+Pj4+ICsJcmV0dXJuIHJldDsK Pj4+PiAgICB9Cj4+Pj4gICAgc3RhdGljIGludCBiZV9kYnVmX2NyZWF0ZV9pbnQoc3RydWN0IHhl bl9kcm1fZnJvbnRfaW5mbyAqZnJvbnRfaW5mbywKPj4+PiBAQCAtNDQsNyArMTc4LDY5IEBAIHN0 YXRpYyBpbnQgYmVfZGJ1Zl9jcmVhdGVfaW50KHN0cnVjdCB4ZW5fZHJtX2Zyb250X2luZm8gKmZy b250X2luZm8sCj4+Pj4gICAgCQl1aW50MzJfdCBicHAsIHVpbnQ2NF90IHNpemUsIHN0cnVjdCBw YWdlICoqcGFnZXMsCj4+Pj4gICAgCQlzdHJ1Y3Qgc2dfdGFibGUgKnNndCkKPj4+PiAgICB7Cj4+ Pj4gKwlzdHJ1Y3QgeGVuX2RybV9mcm9udF9ldnRjaG5sICpldnRjaG5sOwo+Pj4+ICsJc3RydWN0 IHhlbl9kcm1fZnJvbnRfc2hidWYgKnNoYnVmOwo+Pj4+ICsJc3RydWN0IHhlbmRpc3BsX3JlcSAq cmVxOwo+Pj4+ICsJc3RydWN0IHhlbl9kcm1fZnJvbnRfc2hidWZfY2ZnIGJ1Zl9jZmc7Cj4+Pj4g Kwl1bnNpZ25lZCBsb25nIGZsYWdzOwo+Pj4+ICsJaW50IHJldDsKPj4+PiArCj4+Pj4gKwlldnRj aG5sID0gJmZyb250X2luZm8tPmV2dF9wYWlyc1tHRU5FUklDX09QX0VWVF9DSE5MXS5yZXE7Cj4+ Pj4gKwlpZiAodW5saWtlbHkoIWV2dGNobmwpKQo+Pj4+ICsJCXJldHVybiAtRUlPOwo+Pj4+ICsK Pj4+PiArCW1lbXNldCgmYnVmX2NmZywgMCwgc2l6ZW9mKGJ1Zl9jZmcpKTsKPj4+PiArCWJ1Zl9j ZmcueGJfZGV2ID0gZnJvbnRfaW5mby0+eGJfZGV2Owo+Pj4+ICsJYnVmX2NmZy5wYWdlcyA9IHBh Z2VzOwo+Pj4+ICsJYnVmX2NmZy5zaXplID0gc2l6ZTsKPj4+PiArCWJ1Zl9jZmcuc2d0ID0gc2d0 Owo+Pj4+ICsJYnVmX2NmZy5iZV9hbGxvYyA9IGZyb250X2luZm8tPmNmZy5iZV9hbGxvYzsKPj4+ PiArCj4+Pj4gKwlzaGJ1ZiA9IHhlbl9kcm1fZnJvbnRfc2hidWZfYWxsb2MoJmJ1Zl9jZmcpOwo+ Pj4+ICsJaWYgKCFzaGJ1ZikKPj4+PiArCQlyZXR1cm4gLUVOT01FTTsKPj4+PiArCj4+Pj4gKwly ZXQgPSBkYnVmX2FkZF90b19saXN0KGZyb250X2luZm8sIHNoYnVmLCBkYnVmX2Nvb2tpZSk7Cj4+ Pj4gKwlpZiAocmV0IDwgMCkgewo+Pj4+ICsJCXhlbl9kcm1fZnJvbnRfc2hidWZfZnJlZShzaGJ1 Zik7Cj4+Pj4gKwkJcmV0dXJuIHJldDsKPj4+PiArCX0KPj4+PiArCj4+Pj4gKwltdXRleF9sb2Nr KCZmcm9udF9pbmZvLT5yZXFfaW9fbG9jayk7Cj4+Pj4gKwo+Pj4+ICsJc3Bpbl9sb2NrX2lycXNh dmUoJmZyb250X2luZm8tPmlvX2xvY2ssIGZsYWdzKTsKPj4+PiArCXJlcSA9IGJlX3ByZXBhcmVf cmVxKGV2dGNobmwsIFhFTkRJU1BMX09QX0RCVUZfQ1JFQVRFKTsKPj4+PiArCXJlcS0+b3AuZGJ1 Zl9jcmVhdGUuZ3JlZl9kaXJlY3RvcnkgPQo+Pj4+ICsJCQl4ZW5fZHJtX2Zyb250X3NoYnVmX2dl dF9kaXJfc3RhcnQoc2hidWYpOwo+Pj4+ICsJcmVxLT5vcC5kYnVmX2NyZWF0ZS5idWZmZXJfc3og PSBzaXplOwo+Pj4+ICsJcmVxLT5vcC5kYnVmX2NyZWF0ZS5kYnVmX2Nvb2tpZSA9IGRidWZfY29v a2llOwo+Pj4+ICsJcmVxLT5vcC5kYnVmX2NyZWF0ZS53aWR0aCA9IHdpZHRoOwo+Pj4+ICsJcmVx LT5vcC5kYnVmX2NyZWF0ZS5oZWlnaHQgPSBoZWlnaHQ7Cj4+Pj4gKwlyZXEtPm9wLmRidWZfY3Jl YXRlLmJwcCA9IGJwcDsKPj4+PiArCWlmIChidWZfY2ZnLmJlX2FsbG9jKQo+Pj4+ICsJCXJlcS0+ b3AuZGJ1Zl9jcmVhdGUuZmxhZ3MgfD0gWEVORElTUExfREJVRl9GTEdfUkVRX0FMTE9DOwo+Pj4+ ICsKPj4+PiArCXJldCA9IGJlX3N0cmVhbV9kb19pbyhldnRjaG5sLCByZXEpOwo+Pj4+ICsJc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmZnJvbnRfaW5mby0+aW9fbG9jaywgZmxhZ3MpOwo+Pj4+ICsK Pj4+PiArCWlmIChyZXQgPCAwKQo+Pj4+ICsJCWdvdG8gZmFpbDsKPj4+PiArCj4+Pj4gKwlyZXQg PSBiZV9zdHJlYW1fd2FpdF9pbyhldnRjaG5sKTsKPj4+PiArCWlmIChyZXQgPCAwKQo+Pj4+ICsJ CWdvdG8gZmFpbDsKPj4+PiArCj4+Pj4gKwlyZXQgPSB4ZW5fZHJtX2Zyb250X3NoYnVmX21hcChz aGJ1Zik7Cj4+Pj4gKwlpZiAocmV0IDwgMCkKPj4+PiArCQlnb3RvIGZhaWw7Cj4+Pj4gKwo+Pj4+ ICsJbXV0ZXhfdW5sb2NrKCZmcm9udF9pbmZvLT5yZXFfaW9fbG9jayk7Cj4+Pj4gICAgCXJldHVy biAwOwo+Pj4+ICsKPj4+PiArZmFpbDoKPj4+PiArCW11dGV4X3VubG9jaygmZnJvbnRfaW5mby0+ cmVxX2lvX2xvY2spOwo+Pj4+ICsJZGJ1Zl9mcmVlKCZmcm9udF9pbmZvLT5kYnVmX2xpc3QsIGRi dWZfY29va2llKTsKPj4+PiArCXJldHVybiByZXQ7Cj4+Pj4gICAgfQo+Pj4+ICAgIHN0YXRpYyBp bnQgYmVfZGJ1Zl9jcmVhdGVfZnJvbV9zZ3Qoc3RydWN0IHhlbl9kcm1fZnJvbnRfaW5mbyAqZnJv bnRfaW5mbywKPj4+PiBAQCAtNjYsMjYgKzI2MiwxNDQgQEAgc3RhdGljIGludCBiZV9kYnVmX2Ny ZWF0ZV9mcm9tX3BhZ2VzKHN0cnVjdCB4ZW5fZHJtX2Zyb250X2luZm8gKmZyb250X2luZm8sCj4+ Pj4gICAgc3RhdGljIGludCBiZV9kYnVmX2Rlc3Ryb3koc3RydWN0IHhlbl9kcm1fZnJvbnRfaW5m byAqZnJvbnRfaW5mbywKPj4+PiAgICAJCXVpbnQ2NF90IGRidWZfY29va2llKQo+Pj4+ICAgIHsK Pj4+PiAtCXJldHVybiAwOwo+Pj4+ICsJc3RydWN0IHhlbl9kcm1fZnJvbnRfZXZ0Y2hubCAqZXZ0 Y2hubDsKPj4+PiArCXN0cnVjdCB4ZW5kaXNwbF9yZXEgKnJlcTsKPj4+PiArCXVuc2lnbmVkIGxv bmcgZmxhZ3M7Cj4+Pj4gKwlib29sIGJlX2FsbG9jOwo+Pj4+ICsJaW50IHJldDsKPj4+PiArCj4+ Pj4gKwlldnRjaG5sID0gJmZyb250X2luZm8tPmV2dF9wYWlyc1tHRU5FUklDX09QX0VWVF9DSE5M XS5yZXE7Cj4+Pj4gKwlpZiAodW5saWtlbHkoIWV2dGNobmwpKQo+Pj4+ICsJCXJldHVybiAtRUlP Owo+Pj4+ICsKPj4+PiArCWJlX2FsbG9jID0gZnJvbnRfaW5mby0+Y2ZnLmJlX2FsbG9jOwo+Pj4+ ICsKPj4+PiArCS8qCj4+Pj4gKwkgKiBmb3IgdGhlIGJhY2tlbmQgYWxsb2NhdGVkIGJ1ZmZlciBy ZWxlYXNlIHJlZmVyZW5jZXMgbm93LCBzbyBiYWNrZW5kCj4+Pj4gKwkgKiBjYW4gZnJlZSB0aGUg YnVmZmVyCj4+Pj4gKwkgKi8KPj4+PiArCWlmIChiZV9hbGxvYykKPj4+PiArCQlkYnVmX2ZyZWUo JmZyb250X2luZm8tPmRidWZfbGlzdCwgZGJ1Zl9jb29raWUpOwo+Pj4+ICsKPj4+PiArCW11dGV4 X2xvY2soJmZyb250X2luZm8tPnJlcV9pb19sb2NrKTsKPj4+PiArCj4+Pj4gKwlzcGluX2xvY2tf aXJxc2F2ZSgmZnJvbnRfaW5mby0+aW9fbG9jaywgZmxhZ3MpOwo+Pj4+ICsJcmVxID0gYmVfcHJl cGFyZV9yZXEoZXZ0Y2hubCwgWEVORElTUExfT1BfREJVRl9ERVNUUk9ZKTsKPj4+PiArCXJlcS0+ b3AuZGJ1Zl9kZXN0cm95LmRidWZfY29va2llID0gZGJ1Zl9jb29raWU7Cj4+Pj4gKwo+Pj4+ICsJ cmV0ID0gYmVfc3RyZWFtX2RvX2lvKGV2dGNobmwsIHJlcSk7Cj4+Pj4gKwlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZmcm9udF9pbmZvLT5pb19sb2NrLCBmbGFncyk7Cj4+Pj4gKwo+Pj4+ICsJaWYg KHJldCA9PSAwKQo+Pj4+ICsJCXJldCA9IGJlX3N0cmVhbV93YWl0X2lvKGV2dGNobmwpOwo+Pj4+ ICsKPj4+PiArCS8qCj4+Pj4gKwkgKiBkbyB0aGlzIHJlZ2FyZGxlc3Mgb2YgY29tbXVuaWNhdGlv biBzdGF0dXMgd2l0aCB0aGUgYmFja2VuZDoKPj4+PiArCSAqIGlmIHdlIGNhbm5vdCByZW1vdmUg cmVtb3RlIHJlc291cmNlcyByZW1vdmUgd2hhdCB3ZSBjYW4gbG9jYWxseQo+Pj4+ICsJICovCj4+ Pj4gKwlpZiAoIWJlX2FsbG9jKQo+Pj4+ICsJCWRidWZfZnJlZSgmZnJvbnRfaW5mby0+ZGJ1Zl9s aXN0LCBkYnVmX2Nvb2tpZSk7Cj4+Pj4gKwo+Pj4+ICsJbXV0ZXhfdW5sb2NrKCZmcm9udF9pbmZv LT5yZXFfaW9fbG9jayk7Cj4+Pj4gKwlyZXR1cm4gcmV0Owo+Pj4+ICAgIH0KPj4+PiAgICBzdGF0 aWMgaW50IGJlX2ZiX2F0dGFjaChzdHJ1Y3QgeGVuX2RybV9mcm9udF9pbmZvICpmcm9udF9pbmZv LAo+Pj4+ICAgIAkJdWludDY0X3QgZGJ1Zl9jb29raWUsIHVpbnQ2NF90IGZiX2Nvb2tpZSwgdWlu dDMyX3Qgd2lkdGgsCj4+Pj4gICAgCQl1aW50MzJfdCBoZWlnaHQsIHVpbnQzMl90IHBpeGVsX2Zv cm1hdCkKPj4+PiAgICB7Cj4+Pj4gLQlyZXR1cm4gMDsKPj4+PiArCXN0cnVjdCB4ZW5fZHJtX2Zy b250X2V2dGNobmwgKmV2dGNobmw7Cj4+Pj4gKwlzdHJ1Y3QgeGVuX2RybV9mcm9udF9kYnVmICpi dWY7Cj4+Pj4gKwlzdHJ1Y3QgeGVuZGlzcGxfcmVxICpyZXE7Cj4+Pj4gKwl1bnNpZ25lZCBsb25n IGZsYWdzOwo+Pj4+ICsJaW50IHJldDsKPj4+PiArCj4+Pj4gKwlldnRjaG5sID0gJmZyb250X2lu Zm8tPmV2dF9wYWlyc1tHRU5FUklDX09QX0VWVF9DSE5MXS5yZXE7Cj4+Pj4gKwlpZiAodW5saWtl bHkoIWV2dGNobmwpKQo+Pj4+ICsJCXJldHVybiAtRUlPOwo+Pj4+ICsKPj4+PiArCWJ1ZiA9IGRi dWZfZ2V0KCZmcm9udF9pbmZvLT5kYnVmX2xpc3QsIGRidWZfY29va2llKTsKPj4+PiArCWlmICgh YnVmKQo+Pj4+ICsJCXJldHVybiAtRUlOVkFMOwo+Pj4+ICsKPj4+PiArCWJ1Zi0+ZmJfY29va2ll ID0gZmJfY29va2llOwo+Pj4+ICsKPj4+PiArCW11dGV4X2xvY2soJmZyb250X2luZm8tPnJlcV9p b19sb2NrKTsKPj4+PiArCj4+Pj4gKwlzcGluX2xvY2tfaXJxc2F2ZSgmZnJvbnRfaW5mby0+aW9f bG9jaywgZmxhZ3MpOwo+Pj4+ICsJcmVxID0gYmVfcHJlcGFyZV9yZXEoZXZ0Y2hubCwgWEVORElT UExfT1BfRkJfQVRUQUNIKTsKPj4+PiArCXJlcS0+b3AuZmJfYXR0YWNoLmRidWZfY29va2llID0g ZGJ1Zl9jb29raWU7Cj4+Pj4gKwlyZXEtPm9wLmZiX2F0dGFjaC5mYl9jb29raWUgPSBmYl9jb29r aWU7Cj4+Pj4gKwlyZXEtPm9wLmZiX2F0dGFjaC53aWR0aCA9IHdpZHRoOwo+Pj4+ICsJcmVxLT5v cC5mYl9hdHRhY2guaGVpZ2h0ID0gaGVpZ2h0Owo+Pj4+ICsJcmVxLT5vcC5mYl9hdHRhY2gucGl4 ZWxfZm9ybWF0ID0gcGl4ZWxfZm9ybWF0Owo+Pj4+ICsKPj4+PiArCXJldCA9IGJlX3N0cmVhbV9k b19pbyhldnRjaG5sLCByZXEpOwo+Pj4+ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZnJvbnRf aW5mby0+aW9fbG9jaywgZmxhZ3MpOwo+Pj4+ICsKPj4+PiArCWlmIChyZXQgPT0gMCkKPj4+PiAr CQlyZXQgPSBiZV9zdHJlYW1fd2FpdF9pbyhldnRjaG5sKTsKPj4+PiArCj4+Pj4gKwltdXRleF91 bmxvY2soJmZyb250X2luZm8tPnJlcV9pb19sb2NrKTsKPj4+PiArCXJldHVybiByZXQ7Cj4+Pj4g ICAgfQo+Pj4+ICAgIHN0YXRpYyBpbnQgYmVfZmJfZGV0YWNoKHN0cnVjdCB4ZW5fZHJtX2Zyb250 X2luZm8gKmZyb250X2luZm8sCj4+Pj4gICAgCQl1aW50NjRfdCBmYl9jb29raWUpCj4+Pj4gICAg ewo+Pj4+IC0JcmV0dXJuIDA7Cj4+Pj4gKwlzdHJ1Y3QgeGVuX2RybV9mcm9udF9ldnRjaG5sICpl dnRjaG5sOwo+Pj4+ICsJc3RydWN0IHhlbmRpc3BsX3JlcSAqcmVxOwo+Pj4+ICsJdW5zaWduZWQg bG9uZyBmbGFnczsKPj4+PiArCWludCByZXQ7Cj4+Pj4gKwo+Pj4+ICsJZXZ0Y2hubCA9ICZmcm9u dF9pbmZvLT5ldnRfcGFpcnNbR0VORVJJQ19PUF9FVlRfQ0hOTF0ucmVxOwo+Pj4+ICsJaWYgKHVu bGlrZWx5KCFldnRjaG5sKSkKPj4+PiArCQlyZXR1cm4gLUVJTzsKPj4+PiArCj4+Pj4gKwltdXRl eF9sb2NrKCZmcm9udF9pbmZvLT5yZXFfaW9fbG9jayk7Cj4+Pj4gKwo+Pj4+ICsJc3Bpbl9sb2Nr X2lycXNhdmUoJmZyb250X2luZm8tPmlvX2xvY2ssIGZsYWdzKTsKPj4+PiArCXJlcSA9IGJlX3By ZXBhcmVfcmVxKGV2dGNobmwsIFhFTkRJU1BMX09QX0ZCX0RFVEFDSCk7Cj4+Pj4gKwlyZXEtPm9w LmZiX2RldGFjaC5mYl9jb29raWUgPSBmYl9jb29raWU7Cj4+Pj4gKwo+Pj4+ICsJcmV0ID0gYmVf c3RyZWFtX2RvX2lvKGV2dGNobmwsIHJlcSk7Cj4+Pj4gKwlzcGluX3VubG9ja19pcnFyZXN0b3Jl KCZmcm9udF9pbmZvLT5pb19sb2NrLCBmbGFncyk7Cj4+Pj4gKwo+Pj4+ICsJaWYgKHJldCA9PSAw KQo+Pj4+ICsJCXJldCA9IGJlX3N0cmVhbV93YWl0X2lvKGV2dGNobmwpOwo+Pj4+ICsKPj4+PiAr CW11dGV4X3VubG9jaygmZnJvbnRfaW5mby0+cmVxX2lvX2xvY2spOwo+Pj4+ICsJcmV0dXJuIHJl dDsKPj4+PiAgICB9Cj4+Pj4gICAgc3RhdGljIGludCBiZV9wYWdlX2ZsaXAoc3RydWN0IHhlbl9k cm1fZnJvbnRfaW5mbyAqZnJvbnRfaW5mbywgaW50IGNvbm5faWR4LAo+Pj4+ICAgIAkJdWludDY0 X3QgZmJfY29va2llKQo+Pj4+ICAgIHsKPj4+PiAtCXJldHVybiAwOwo+Pj4+ICsJc3RydWN0IHhl bl9kcm1fZnJvbnRfZXZ0Y2hubCAqZXZ0Y2hubDsKPj4+PiArCXN0cnVjdCB4ZW5kaXNwbF9yZXEg KnJlcTsKPj4+PiArCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4+Pj4gKwlpbnQgcmV0Owo+Pj4+ICsK Pj4+PiArCWlmICh1bmxpa2VseShjb25uX2lkeCA+PSBmcm9udF9pbmZvLT5udW1fZXZ0X3BhaXJz KSkKPj4+PiArCQlyZXR1cm4gLUVJTlZBTDsKPj4+PiArCj4+Pj4gKwlkYnVmX2ZsdXNoX2ZiKCZm cm9udF9pbmZvLT5kYnVmX2xpc3QsIGZiX2Nvb2tpZSk7Cj4+Pj4gKwlldnRjaG5sID0gJmZyb250 X2luZm8tPmV2dF9wYWlyc1tjb25uX2lkeF0ucmVxOwo+Pj4+ICsKPj4+PiArCW11dGV4X2xvY2so JmZyb250X2luZm8tPnJlcV9pb19sb2NrKTsKPj4+PiArCj4+Pj4gKwlzcGluX2xvY2tfaXJxc2F2 ZSgmZnJvbnRfaW5mby0+aW9fbG9jaywgZmxhZ3MpOwo+Pj4+ICsJcmVxID0gYmVfcHJlcGFyZV9y ZXEoZXZ0Y2hubCwgWEVORElTUExfT1BfUEdfRkxJUCk7Cj4+Pj4gKwlyZXEtPm9wLnBnX2ZsaXAu ZmJfY29va2llID0gZmJfY29va2llOwo+Pj4+ICsKPj4+PiArCXJldCA9IGJlX3N0cmVhbV9kb19p byhldnRjaG5sLCByZXEpOwo+Pj4+ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZnJvbnRfaW5m by0+aW9fbG9jaywgZmxhZ3MpOwo+Pj4+ICsKPj4+PiArCWlmIChyZXQgPT0gMCkKPj4+PiArCQly ZXQgPSBiZV9zdHJlYW1fd2FpdF9pbyhldnRjaG5sKTsKPj4+PiArCj4+Pj4gKwltdXRleF91bmxv Y2soJmZyb250X2luZm8tPnJlcV9pb19sb2NrKTsKPj4+PiArCXJldHVybiByZXQ7Cj4+Pj4gICAg fQo+Pj4+ICAgIHN0YXRpYyB2b2lkIHhlbl9kcm1fZHJ2X3VubG9hZChzdHJ1Y3QgeGVuX2RybV9m cm9udF9pbmZvICpmcm9udF9pbmZvKQo+Pj4+IEBAIC0xODMsNiArNDk3LDcgQEAgc3RhdGljIHZv aWQgeGVuX2Rydl9yZW1vdmVfaW50ZXJuYWwoc3RydWN0IHhlbl9kcm1fZnJvbnRfaW5mbyAqZnJv bnRfaW5mbykKPj4+PiAgICB7Cj4+Pj4gICAgCXhlbl9kcm1fZHJ2X2RlaW5pdChmcm9udF9pbmZv KTsKPj4+PiAgICAJeGVuX2RybV9mcm9udF9ldnRjaG5sX2ZyZWVfYWxsKGZyb250X2luZm8pOwo+ Pj4+ICsJZGJ1Zl9mcmVlX2FsbCgmZnJvbnRfaW5mby0+ZGJ1Zl9saXN0KTsKPj4+PiAgICB9Cj4+ Pj4gICAgc3RhdGljIGludCBiYWNrZW5kX29uX2luaXR3YWl0KHN0cnVjdCB4ZW5fZHJtX2Zyb250 X2luZm8gKmZyb250X2luZm8pCj4+Pj4gQEAgLTMxMCw2ICs2MjUsOCBAQCBzdGF0aWMgaW50IHhl bl9kcnZfcHJvYmUoc3RydWN0IHhlbmJ1c19kZXZpY2UgKnhiX2RldiwKPj4+PiAgICAJZnJvbnRf aW5mby0+eGJfZGV2ID0geGJfZGV2Owo+Pj4+ICAgIAlzcGluX2xvY2tfaW5pdCgmZnJvbnRfaW5m by0+aW9fbG9jayk7Cj4+Pj4gKwltdXRleF9pbml0KCZmcm9udF9pbmZvLT5yZXFfaW9fbG9jayk7 Cj4+Pj4gKwlJTklUX0xJU1RfSEVBRCgmZnJvbnRfaW5mby0+ZGJ1Zl9saXN0KTsKPj4+PiAgICAJ ZnJvbnRfaW5mby0+ZHJtX3BkcnZfcmVnaXN0ZXJlZCA9IGZhbHNlOwo+Pj4+ICAgIAlkZXZfc2V0 X2RydmRhdGEoJnhiX2Rldi0+ZGV2LCBmcm9udF9pbmZvKTsKPj4+PiAgICAJcmV0dXJuIHhlbmJ1 c19zd2l0Y2hfc3RhdGUoeGJfZGV2LCBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyk7Cj4+Pj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udC5oIGIvZHJpdmVycy9n cHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250LmgKPj4+PiBpbmRleCBjNmY1MmM4OTI0MzQuLmRiMzJk MDAxNDVkMSAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJv bnQuaAo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udC5oCj4+Pj4g QEAgLTEzNyw2ICsxMzcsOCBAQCBzdHJ1Y3QgeGVuX2RybV9mcm9udF9pbmZvIHsKPj4+PiAgICAJ c3RydWN0IHhlbmJ1c19kZXZpY2UgKnhiX2RldjsKPj4+PiAgICAJLyogdG8gcHJvdGVjdCBkYXRh IGJldHdlZW4gYmFja2VuZCBJTyBjb2RlIGFuZCBpbnRlcnJ1cHQgaGFuZGxlciAqLwo+Pj4+ICAg IAlzcGlubG9ja190IGlvX2xvY2s7Cj4+Pj4gKwkvKiBzZXJpYWxpemVyIGZvciBiYWNrZW5kIElP OiByZXF1ZXN0L3Jlc3BvbnNlICovCj4+Pj4gKwlzdHJ1Y3QgbXV0ZXggcmVxX2lvX2xvY2s7Cj4+ Pj4gICAgCWJvb2wgZHJtX3BkcnZfcmVnaXN0ZXJlZDsKPj4+PiAgICAJLyogdmlydHVhbCBEUk0g cGxhdGZvcm0gZGV2aWNlICovCj4+Pj4gICAgCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRybV9w ZGV2Owo+Pj4+IEBAIC0xNDQsNiArMTQ2LDkgQEAgc3RydWN0IHhlbl9kcm1fZnJvbnRfaW5mbyB7 Cj4+Pj4gICAgCWludCBudW1fZXZ0X3BhaXJzOwo+Pj4+ICAgIAlzdHJ1Y3QgeGVuX2RybV9mcm9u dF9ldnRjaG5sX3BhaXIgKmV2dF9wYWlyczsKPj4+PiAgICAJc3RydWN0IHhlbl9kcm1fZnJvbnRf Y2ZnIGNmZzsKPj4+PiArCj4+Pj4gKwkvKiBkaXNwbGF5IGJ1ZmZlcnMgKi8KPj4+PiArCXN0cnVj dCBsaXN0X2hlYWQgZGJ1Zl9saXN0Owo+Pj4+ICAgIH07Cj4+Pj4gICAgI2VuZGlmIC8qIF9fWEVO X0RSTV9GUk9OVF9IXyAqLwo+Pj4+IC0tIAo+Pj4+IDIuNy40Cj4+Pj4KPj4+PiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4+IGRyaS1kZXZlbCBtYWls aW5nIGxpc3QKPj4+PiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+Pj4gaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKPj4gX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gZHJpLWRldmVs IG1haWxpbmcgbGlzdAo+PiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+IGh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54 ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==