From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [RFC] drm/i915: adding state checker for gamma lut values Date: Mon, 25 Mar 2019 11:52:04 +0200 Message-ID: <878sx3s2m3.fsf@intel.com> References: <1552634188-7372-1-git-send-email-swati2.sharma@intel.com> <87o96ch3jm.fsf@intel.com> <6b816617-af80-afdf-9379-b33367cece80@intel.com> <87r2b1en0r.fsf@intel.com> <1543a4b7-1258-33f1-68ea-eef1b033d17d@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0F90188E46 for ; Mon, 25 Mar 2019 09:49:29 +0000 (UTC) In-Reply-To: <1543a4b7-1258-33f1-68ea-eef1b033d17d@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Sharma, Swati2" , intel-gfx@lists.freedesktop.org Cc: "daniel.vetter@ffwll.ch" , "Nautiyal, Ankit K" List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAyNSBNYXIgMjAxOSwgIlNoYXJtYSwgU3dhdGkyIiA8c3dhdGkyLnNoYXJtYUBpbnRl bC5jb20+IHdyb3RlOgo+IE9uIDIwLU1hci0xOSA2OjExIFBNLCBKYW5pIE5pa3VsYSB3cm90ZToK Pj4gT24gV2VkLCAyMCBNYXIgMjAxOSwgIlNoYXJtYSwgU3dhdGkyIiA8c3dhdGkyLnNoYXJtYUBp bnRlbC5jb20+IHdyb3RlOgo+Pj4gT24gMTUtTWFyLTE5IDM6MTcgUE0sIE5pa3VsYSwgSmFuaSB3 cm90ZToKPj4+PiBPbiBGcmksIDE1IE1hciAyMDE5LCBzd2F0aTIuc2hhcm1hQGludGVsLmNvbSB3 cm90ZToKPj4+Pj4gRnJvbTogU3dhdGkgU2hhcm1hIDxzd2F0aTIuc2hhcm1hQGludGVsLmNvbT4K Pj4+Pj4KPj4+Pj4gQWRkZWQgc3RhdGUgY2hlY2tlciB0byB2YWxpZGF0ZSBnYW1tYV9sdXQgdmFs dWVzLiBUaGlzCj4+Pj4+IHJlYWRzIGhhcmR3YXJlIHN0YXRlLCBhbmQgY29tcGFyZXMgdGhlIG9y aWdpbmFsbHkgcmVxdWVzdGVkCj4+Pj4+IHN0YXRlIHRvIHRoZSBzdGF0ZSByZWFkIGZyb20gaGFy ZHdhcmUuCj4+Pj4+Cj4+Pj4+IFRoaXMgaW1wbGVtZW50YXRpb24gY2FuIGJlIHVzZWQgZm9yIEdl bjkrIHBsYXRmb3JtcywKPj4+Pj4gSSBoYXZlbid0IGltcGxlbWVudGVkIGl0IGZvciBsZWdhY3kg cGxhdGZvcm1zLiBKdXN0IHdhbnQgdG8gZ2V0Cj4+Pj4+IGZlZWRiYWNrIGlmIHRoaXMgaXMgdGhl IHJpZ2h0IGFwcHJvYWNoIHRvIGZvbGxvdy4KPj4+Pj4KPj4+Pj4gQWxzbywgaW52ZXJzZSBmdW5j dGlvbiBvZiBkcm1fY29sb3JfbHV0X2V4dHJhY3QgaXMgbWlzc2luZwo+Pj4+PiB0byBjb252ZXJ0 IGhhcmR3YXJlIHJlYWQgdmFsdWVzIGJhY2sgdG8gdXNlciB2YWx1ZXMuCj4+Pj4+IFRoaW5raW5n IGZvciB0aGF0LiBJIGhhdmUgYWRkZWQgYWxsICJUT0RPcyIgYW5kICJQbGFjZWhvbGRlcnMiLgo+ Pj4+Pgo+Pj4+PiBBbm90aGVyIGFwcHJvYWNoOgo+Pj4+PiBTdG9yaW5nICJ3b3JkIiB0byBiZSB3 cml0dGVuIGludG8gaGFyZHdhcmUgaW4gZGV2X3ByaXYgYW5kCj4+Pj4+IGluc3RlYWQgb2YgY29t cGFyaW5nIGJsb2IsIGNvbXBhcmluZyAid29yZCI/IEluIGRldl9wcml2LAo+Pj4+PiBvbmx5IHBv aW50ZXIgd2lsbCBiZSB0aGVyZSAoc29tZXRoaW5nIGxpa2UgKmdhbW1hX3dvcmQpLgo+Pj4+IFlv dSBjYW4ndCBzdG9yZSBpdCBpbiBkZXZfcHJpdiBiZWNhdXNlIGl0J3MgY3J0YyBzdGF0ZSBzcGVj aWZpYwo+Pj4+IGRhdGEuIEV2ZW4gaWYgc3RvcmVkIGluIGNydGMgc3RhdGUsIHRoZSBhcHByb2Fj aCBkb2Vzbid0IGhlbHAgdGhlCj4+Pj4gaW5pdGlhbCBodyBzdGF0ZSByZWFkb3V0IGFuZCB0YWtl b3Zlci4KPj4+Pgo+Pj4+IFBsZWFzZSB1c2UgaW50ZWwtZ2Z4IG1haWxpbmcgbGlzdCBmb3IgaTkx NSBwYXRjaGVzLgo+Pj4+Cj4+Pj4+IEZvciB0aGlzIHRvbywgSSB3aWxsIHNlbmQgYSBwYXRjaCB0 byBtYWtlIGl0IG1vcmUgY2xlYXIuCj4+Pj4+Cj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFN3YXRpIFNo YXJtYSA8c3dhdGkyLnNoYXJtYUBpbnRlbC5jb20+Cj4+Pj4+IC0tLQo+Pj4+PiAgICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgfCAgIDEgKwo+Pj4+PiAgICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jICAgfCAxMjcgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0KPj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j IHwgIDUwICsrKysrKysrKysrKysrCj4+Pj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oICAgICB8ICAgMSArCj4+Pj4+ICAgIDQgZmlsZXMgY2hhbmdlZCwgMTczIGluc2VydGlv bnMoKyksIDYgZGVsZXRpb25zKC0pCj4+Pj4+Cj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ Pj4+PiBpbmRleCBjNGZmZTE5Li5iNDFiZmFhIDEwMDY0NAo+Pj4+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKPj4+Pj4gQEAgLTMzNCw2ICszMzQsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfZGlzcGxh eV9mdW5jcyB7Cj4+Pj4+ICAgIAkgKiBpbnZvbHZlZCB3aXRoIHRoZSBzYW1lIGNvbW1pdC4KPj4+ Pj4gICAgCSAqLwo+Pj4+PiAgICAJdm9pZCAoKmxvYWRfbHV0cykoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwo+Pj4+PiArCXZvaWQgKCpnZXRfY29uZmlnKShzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4+Pj4gVGhlIG5hbWUgaXMgdG9vIGdl bmVyaWMuCj4+Pj4KPj4+Pj4gICAgfTsKPj4+Pj4gICAgCj4+Pj4+ICAgICNkZWZpbmUgQ1NSX1ZF UlNJT04obWFqb3IsIG1pbm9yKQkoKG1ham9yKSA8PCAxNiB8IChtaW5vcikpCj4+Pj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfY29sb3IuYwo+Pj4+PiBpbmRleCBkYTdhMDdkLi5hNTE1ZTlmIDEwMDY0 NAo+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jCj4+Pj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPj4+Pj4gQEAgLTc0LDYgKzc0 LDExIEBACj4+Pj4+ICAgICNkZWZpbmUgSUxLX0NTQ19DT0VGRl8xXzAJCVwKPj4+Pj4gICAgCSgo NyA8PCAxMikgfCBJTEtfQ1NDX0NPRUZGX0ZQKENUTV9DT0VGRl8xXzAsIDgpKQo+Pj4+PiAgICAK Pj4+Pj4gKy8qIE1hc2sgdG8gZXh0cmFjdCBSR0IgdmFsdWVzIGZyb20gcmVnaXN0ZXJzICovCj4+ Pj4+ICsjZGVmaW5lIENPTE9SX0JMVUVfTUFTSyAgICAgICAgIDB4MDAwMDAzRkYgICAgICAgICAg ICAgIC8qIDk6MCAqLwo+Pj4+PiArI2RlZmluZSBDT0xPUl9HUkVFTl9NQVNLICAgICAgICAweDAw MEZGQzAwICAgICAgICAgICAgICAvKiAxOToxMCAqLwo+Pj4+PiArI2RlZmluZSBDT0xPUl9SRURf TUFTSyAgICAgICAgICAweDNGRjAwMDAwICAgICAgICAgICAgICAvKiAyOToyMCAqLwo+Pj4+IFRo ZXNlIGJlbG9uZyBpbiBpOTE1X3JlZy5oLCBhbmQgeW91IG5lZWQgcGxhdGZvcm0gc3BlY2lmaWMg c2hpZnRzIGFuZAo+Pj4+IG1hc2tzLiBUaGUgY29kZSB0aGF0IHdyaXRlcyB0aGUgcmVnaXN0ZXJz IHNlZW1zIHRvIHVzZSBtYWdpYyBudW1iZXJzLi4uCj4+Pj4KPj4+Pj4gKwo+Pj4+PiAgICBzdGF0 aWMgYm9vbCBsdXRfaXNfbGVnYWN5KGNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqbHV0 KQo+Pj4+PiAgICB7Cj4+Pj4+ICAgIAlyZXR1cm4gZHJtX2NvbG9yX2x1dF9zaXplKGx1dCkgPT0g TEVHQUNZX0xVVF9MRU5HVEg7Cj4+Pj4+IEBAIC02NzIsNiArNjc3LDk3IEBAIHN0YXRpYyB2b2lk IGNoZXJyeXZpZXdfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQo+Pj4+PiAgICAJaTl4eF9sb2FkX2x1dHNfaW50ZXJuYWwoY3J0Y19zdGF0ZSwgTlVM TCk7Cj4+Pj4+ICAgIH0KPj4+Pj4gICAgCj4+Pj4+ICtzdGF0aWMgdm9pZCBiZHdfZ2V0X2dhbW1h X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwgdTMyIG9mZnNldCkK Pj4+Pj4gK3sKPj4+Pj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPj4+Pj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g Y3J0Yy0+YmFzZS5kZXY7Cj4+Pj4+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4+Pj4+ICsJdTMyIGksIHRtcCwgbHV0X3NpemUg PSBJTlRFTF9JTkZPKGRldl9wcml2KS0+Y29sb3IuZ2FtbWFfbHV0X3NpemU7Cj4+Pj4+ICsJZW51 bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+Pj4+PiArCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxv YiAqYmxvYiA9IE5VTEw7Cj4+Pj4+ICsJc3RydWN0IGRybV9jb2xvcl9sdXQgKmJsb2JfZGF0YTsK Pj4+Pj4gKwo+Pj4+PiArCVdBUk5fT04ob2Zmc2V0ICYgflBBTF9QUkVDX0lOREVYX1ZBTFVFX01B U0spOwo+Pj4+PiArCj4+Pj4+ICsJSTkxNV9XUklURShQUkVDX1BBTF9JTkRFWChwaXBlKSwKPj4+ Pj4gKwkJCShvZmZzZXQgPyBQQUxfUFJFQ19TUExJVF9NT0RFIDogMCkgfAo+Pj4+PiArCQkJUEFM X1BSRUNfQVVUT19JTkNSRU1FTlQgfAo+Pj4+PiArCQkJb2Zmc2V0KTsKPj4+Pj4gKwo+Pj4+PiAr CWJsb2IgPSBkcm1fcHJvcGVydHlfY3JlYXRlX2Jsb2IoZGV2LAo+Pj4+PiArCQkJc2l6ZW9mKHN0 cnVjdCBkcm1fY29sb3JfbHV0KSAqIGx1dF9zaXplLAo+Pj4+PiArCQkJTlVMTCk7Cj4+Pj4+ICsJ aWYgKElTX0VSUihibG9iKSkKPj4+Pj4gKwkJcmV0dXJuOwo+Pj4+PiArCj4+Pj4+ICsJYmxvYl9k YXRhID0gYmxvYi0+ZGF0YTsKPj4+Pj4gKwo+Pj4+PiArCWZvciAoaSA9IDA7IGkgPCBsdXRfc2l6 ZTsgaSsrKSB7Cj4+Pj4+ICsJCXRtcCA9IEk5MTVfUkVBRChQUkVDX1BBTF9EQVRBKHBpcGUpKTsK Pj4+Pj4gKwkJLyoKPj4+Pj4gKwkJICogVE9ETzogY29udmVydCBSR0IgdmFsdWUgcmVhZCBmcm9t IHJlZ2lzdGVyIGludG8gY29ycmVzcG9uZGluZyB1c2VyIHZhbHVlIHVzaW5nCj4+Pj4+ICsJCSAq IHNvbWUgd3JhcHBlciBsaWtlIGRybV9jb2xvcl9sdXRfcHV0KCkgKG9yKSBpbnRlbF9jb2xvcl9s dXRfcHV0KCkgc28gdGhhdCBpdAo+Pj4+PiArCQkgKiBjYW4gYmUgY29tcGFyZWQgbGF0ZXIuCj4+ Pj4+ICsJCSAqLwo+Pj4+IFllYWgsIHlvdSdsbCBuZWVkIHRoaXMuCj4+PiBDYW4geW91IHBsZWFz ZSBoZWxwIGluIHRoaXM/Cj4+IFNvbWV0aGluZyBsaWtlIHRoaXM6Cj4+Cj4+IC8qIGNvbnZlcnQg aHcgdmFsdWUgd2l0aCBnaXZlbiBiaXRfcHJlY2lzaW9uIHRvIGx1dCBwcm9wZXJ0eSB2YWwgKi8K Pj4gdTMyIGRybV9jb2xvcl9sdXRfcGFjayh1MzIgdmFsLCB1MzIgYml0X3ByZWNpc2lvbikKPj4g ewo+PiAJdTMyIG1heCA9IDB4ZmZmZiA+PiAoMTYgLSBiaXRfcHJlY2lzaW9uKTsKPj4KPj4gCXZh bCA9IGNsYW1wX3ZhbCh2YWwsIDAsIG1heCk7Cj4+Cj4+IAlpZiAoYml0X3ByZWNpc2lvbiA8IDE2 KQo+PiAJCXZhbCA8PD0gMTYgLSBiaXRfcHJlY2lzaW9uOwo+Pgo+PiAJcmV0dXJuIHZhbDsKPj4g fQo+Pgo+PiAvKiBjb21wYXJlIHR3byBsdXQgcHJvcGVydHkgdmFsdWVzIHdpdGggZ2l2ZW4gYml0 X3ByZWNpc2lvbiAqLwo+PiBib29sIGRybV9jb2xvcl9sdXRfbWF0Y2godTMyIGEsIHUzMiBiLCB1 MzIgYml0X3ByZWNpc2lvbikKPj4gewo+PiAJdTMyIGVyciA9IDB4ZmZmZiA+PiBiaXRfcHJlY2lz aW9uOwo+Pgo+PiAJcmV0dXJuIGFicygobG9uZylhIC0gYikgPD0gZXJyOwo+PiB9Cj4gQWxzbywg aG93IHRvIHBhc3MgImJpdF9wcmVjaXNpb24iIHNpbmNlIGluIHBsYXRmb3JtIHNwZWNpZmljIGxv YWQgbHV0cywKPiBpdHMgaGFyZCBjb2RlZC4gRG8gd2Ugc3RvcmUgcGxhdGZvcm0gc3BlY2lmaWMg Yml0IHByZWNpc2lvbj8KCllvdSBjb3VsZCBhZGQgYSBmdW5jdGlvbiBpbiBpbnRlbF9jb2xvci5j IHRoYXQgcmV0dXJucyB0aGUgYml0CnByZWNpc2lvbi4KCj4gQWxzbywgaG93IHRvIGhhbmRsZSAi ZWxzZSIgY2FzZSBvZiBsb2FkIGx1dHMgd2hlcmUgd2UgYXJlIGNyZWF0aW5nIHRoZSB3b3JkCj4g dy9vIHJvdW5kaW5nIG9mZi4KCkluIGRybV9jb2xvcl9sdXRfcGFjaygpIHdlIGRvbid0IGFjdHVh bGx5IG5lZWQgdGhlIGlmIHRoZXJlIGF0IGFsbCwgaXQncwpqdXN0IGZvciBjbGFyaXR5IGFuZCBz aW1pbGFyaXR5IHdpdGggdGhlIGV4dHJhY3QuIGJpdF9wcmVjaXNpb24gPT0gMTYKbGVhZHMgdG8g MCBzaGlmdC4KCkFuZCBpbiBkcm1fY29sb3JfbHV0X21hdGNoKCkgZXJyIGJlY29tZXMgMCBmb3Ig MTYtYml0IHByZWNpc2lvbi4KCkJSLApKYW5pLgoKPj4KPj4gSSBkaWRuJ3QgZG91YmxlIGNoZWNr IHRoZSBtYXRoLCBidXQgaXQncyBwcm9iYWJseSBjbG9zZSBlbm91Z2ggZm9yCj4+IHN0YXJ0ZXJz LiA7KQo+Pgo+Pgo+Pgo+PiBCUiwKPj4gSmFuaS4KPj4KPj4KPj4KPj4KPj4+Pj4gKwkJYmxvYl9k YXRhW2ldLnJlZCA9ICh0bXAgJiBDT0xPUl9SRURfTUFTSykgPj4gMjA7Cj4+Pj4+ICsJCWJsb2Jf ZGF0YVtpXS5ncmVlbiA9ICh0bXAgJiBDT0xPUl9HUkVFTl9NQVNLKSA+PiAxMDsKPj4+Pj4gKwkJ YmxvYl9kYXRhW2ldLmJsdWUgPSB0bXAgJiBDT0xPUl9CTFVFX01BU0s7Cj4+Pj4+ICsJfQo+Pj4+ PiArCj4+Pj4+ICsJSTkxNV9XUklURShQUkVDX1BBTF9JTkRFWChwaXBlKSwgMCk7Cj4+Pj4+ICsK Pj4+Pj4gKwljcnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1dCA9IGJsb2I7Cj4+Pj4+ICt9Cj4+Pj4+ ICsKPj4+Pj4gK3N0YXRpYyB2b2lkIGk5eHhfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKPj4+PiBQbGVhc2UgaW5jbHVkZSAoZGUpZ2FtbWEgb3IgY29sb3Ig aW4gdGhlIGZ1bmN0aW9uIG5hbWVzLgo+Pj4+Cj4+Pj4+ICt7Cj4+Pj4+ICsJc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4+Pj4+ ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+Pj4+PiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ Pj4+PiArCXUzMiBpLCB0bXA7Cj4+Pj4+ICsJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ Pj4+PiArCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYiA9IE5VTEw7Cj4+Pj4+ICsJc3Ry dWN0IGRybV9jb2xvcl9sdXQgKmJsb2JfZGF0YTsKPj4+Pj4gKwo+Pj4+PiArCWJsb2IgPSBkcm1f cHJvcGVydHlfY3JlYXRlX2Jsb2IoZGV2LAo+Pj4+PiArCQkJCQlzaXplb2Yoc3RydWN0IGRybV9j b2xvcl9sdXQpICogMjU2LAo+Pj4+PiArCQkJCQlOVUxMKTsKPj4+Pj4gKwlpZiAoSVNfRVJSKGJs b2IpKQo+Pj4+PiArCQlyZXR1cm47Cj4+Pj4+ICsKPj4+Pj4gKwlibG9iX2RhdGEgPSBibG9iLT5k YXRhOwo+Pj4+PiArCj4+Pj4+ICsJZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKSB7Cj4+Pj4+ICsJ CWlmIChIQVNfR01DSChkZXZfcHJpdikpCj4+Pj4+ICsJCQl0bXAgPSBJOTE1X1JFQUQoUEFMRVRU RShwaXBlLCBpKSk7Cj4+Pj4+ICsJCWVsc2UKPj4+Pj4gKwkJCXRtcCA9IEk5MTVfUkVBRChMR0Nf UEFMRVRURShwaXBlLCBpKSk7Cj4+Pj4+ICsJCS8qCj4+Pj4+ICsJCSAqIFRPRE86IGNvbnZlcnQg UkdCIHZhbHVlIHJlYWQgZnJvbSByZWdpc3RlciBpbnRvIGNvcnJlc3BvbmRpbmcgdXNlciB2YWx1 ZSB1c2luZwo+Pj4+PiArCQkgKiBzb21lIHdyYXBwZXIgbGlrZSBkcm1fY29sb3JfbHV0X3B1dCgp IChvcikgaW50ZWxfY29sb3JfbHV0X3B1dCgpIHNvIHRoYXQgaXQKPj4+Pj4gKwkJICogY2FuIGJl IGNvbXBhcmVkIGxhdGVyLgo+Pj4+PiArCQkgKi8KPj4+Pj4gKwkJYmxvYl9kYXRhW2ldLnJlZCA9 ICh0bXAgJiBDT0xPUl9SRURfTUFTSykgPj4gMjA7Cj4+Pj4+ICsJCWJsb2JfZGF0YVtpXS5ncmVl biA9ICh0bXAgJiBDT0xPUl9HUkVFTl9NQVNLKSA+PiAxMDsKPj4+Pj4gKwkJYmxvYl9kYXRhW2ld LmJsdWUgPSAodG1wICYgQ09MT1JfQkxVRV9NQVNLKTsKPj4+Pj4gKwl9Cj4+Pj4+ICsKPj4+Pj4g KwljcnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1dCA9IGJsb2I7Cj4+Pj4+ICt9Cj4+Pj4+ICsKPj4+ Pj4gK3N0YXRpYyB2b2lkIGljbF9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQo+Pj4+PiArewo+Pj4+PiArCS8qCj4+Pj4+ICsJICogVE9ETzogcGxhY2Vob2xk ZXIgZm9yIGRlZ2FtbWEgdmFsaWRhdGlvbgo+Pj4+PiArCSAqIGdsa19nZXRfZGVnYW1tYV9jb25m aWcoY3J0Y19zdGF0ZSwgMCk7Cj4+Pj4+ICsJICovCj4+Pj4+ICsKPj4+Pj4gKwlpZiAoY3J0Y19z dGF0ZV9pc19sZWdhY3lfZ2FtbWEoY3J0Y19zdGF0ZSkpCj4+Pj4+ICsJCWk5eHhfZ2V0X2NvbmZp ZyhjcnRjX3N0YXRlKTsKPj4+Pj4gKwllbHNlCj4+Pj4+ICsJCWJkd19nZXRfZ2FtbWFfY29uZmln KGNydGNfc3RhdGUsIDApOwo+Pj4+PiArfQo+Pj4+PiArCj4+Pj4+ICAgIHZvaWQgaW50ZWxfY29s b3JfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ Pj4+PiAgICB7Cj4+Pj4+ICAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKPj4+Pj4gQEAgLTY3OSw2ICs3NzUs MTMgQEAgdm9pZCBpbnRlbF9jb2xvcl9sb2FkX2x1dHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCj4+Pj4+ICAgIAlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2x1dHMo Y3J0Y19zdGF0ZSk7Cj4+Pj4+ICAgIH0KPj4+Pj4gICAgCj4+Pj4+ICt2b2lkIGludGVsX2NvbG9y X2dldF9jb25maWcoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4+Pj4+ICt7 Cj4+Pj4+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRj X3N0YXRlLT5iYXNlLmNydGMtPmRldik7Cj4+Pj4+ICsKPj4+Pj4gKwlkZXZfcHJpdi0+ZGlzcGxh eS5nZXRfY29uZmlnKGNydGNfc3RhdGUpOwo+Pj4+IFRoaXMgd2lsbCBvb3BzIG9uIHBsYXRmb3Jt cyB3aGVyZSB5b3UgaGF2ZW4ndCBpbXBsZW1lbnRlZCBpdCB5ZXQuCj4+Pj4KPj4+Pj4gK30KPj4+ Pj4gKwo+Pj4+PiAgICB2b2lkIGludGVsX2NvbG9yX2NvbW1pdChjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPj4+Pj4gICAgewo+Pj4+PiAgICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRl dik7Cj4+Pj4+IEBAIC04MzMsMjIgKzkzNiwzNCBAQCB2b2lkIGludGVsX2NvbG9yX2luaXQoc3Ry dWN0IGludGVsX2NydGMgKmNydGMpCj4+Pj4+ICAgIAo+Pj4+PiAgICAJZHJtX21vZGVfY3J0Y19z ZXRfZ2FtbWFfc2l6ZSgmY3J0Yy0+YmFzZSwgMjU2KTsKPj4+Pj4gICAgCj4+Pj4+ICsJLyoKPj4+ Pj4gKwkgKiBUT0RPOiBJbiB0aGUgZm9sbG93aW5nIGlmIGxhZGRlciwga2VwdCBwbGFjZWhvbGRl cnMKPj4+Pj4gKwkgKiBmb3IgZXh0ZW5kaW5nIGx1dCB2YWxpZGF0aW9uIGZvciBsZWdhY3kgcGxh dGZvcm1zLgo+Pj4+PiArCSAqLwo+Pj4+IEkgdGhpbmsgYWRkaW5nIHRoZSBwbGFjZWhvbGRlciBj b21tZW50cyBpcyB0b28gbWVzc3kuCj4+Pj4KPj4+Pj4gICAgCWlmIChIQVNfR01DSChkZXZfcHJp dikpIHsKPj4+Pj4gLQkJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+Pj4+PiArCQlpZiAo SVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKPj4+Pj4gICAgCQkJZGV2X3ByaXYtPmRpc3BsYXku bG9hZF9sdXRzID0gY2hlcnJ5dmlld19sb2FkX2x1dHM7Cj4+Pj4+IC0JCWVsc2UKPj4+Pj4gKwkJ CSAvKiBkZXZfcHJpdi0+ZGlzcGxheS5nZXRfY29uZmlnID0gY2hlcnJ5dmlld19nZXRfY29uZmln OyAqLwo+Pj4+PiArCQl9IGVsc2Ugewo+Pj4+PiAgICAJCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2Fk X2x1dHMgPSBpOXh4X2xvYWRfbHV0czsKPj4+Pj4gKwkJCWRldl9wcml2LT5kaXNwbGF5LmdldF9j b25maWcgPSBpOXh4X2dldF9jb25maWc7Cj4+Pj4+ICsJCX0KPj4+Pj4gICAgCj4+Pj4+ICAgIAkJ ZGV2X3ByaXYtPmRpc3BsYXkuY29sb3JfY29tbWl0ID0gaTl4eF9jb2xvcl9jb21taXQ7Cj4+Pj4+ ICAgIAl9IGVsc2Ugewo+Pj4+PiAtCQlpZiAoSVNfSUNFTEFLRShkZXZfcHJpdikpCj4+Pj4+ICsJ CWlmIChJU19JQ0VMQUtFKGRldl9wcml2KSkgewo+Pj4+PiAgICAJCQlkZXZfcHJpdi0+ZGlzcGxh eS5sb2FkX2x1dHMgPSBpY2xfbG9hZF9sdXRzOwo+Pj4+PiAtCQllbHNlIGlmIChJU19DQU5OT05M QUtFKGRldl9wcml2KSB8fCBJU19HRU1JTklMQUtFKGRldl9wcml2KSkKPj4+Pj4gKwkJCWRldl9w cml2LT5kaXNwbGF5LmdldF9jb25maWcgPSBpY2xfZ2V0X2NvbmZpZzsKPj4+Pj4gKwkJfSBlbHNl IGlmIChJU19DQU5OT05MQUtFKGRldl9wcml2KSB8fCBJU19HRU1JTklMQUtFKGRldl9wcml2KSkg ewo+Pj4+PiAgICAJCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2x1dHMgPSBnbGtfbG9hZF9sdXRz Owo+Pj4+PiAtCQllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkgfHwgSVNfQlJPQURX RUxMKGRldl9wcml2KSkKPj4+Pj4gKwkJCS8qIGRldl9wcml2LT5kaXNwbGF5LmdldF9jb25maWcg PSBnbGtfZ2V0X2NvbmZpZzsgKi8KPj4+Pj4gKwkJfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3By aXYpID49IDkgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkgewo+Pj4+PiAgICAJCQlkZXZfcHJp di0+ZGlzcGxheS5sb2FkX2x1dHMgPSBicm9hZHdlbGxfbG9hZF9sdXRzOwo+Pj4+PiAtCQllbHNl Cj4+Pj4+ICsJCQkvKiBkZXZfcHJpdi0+ZGlzcGxheS5nZXRfY29uZmlnID0gYnJvYWR3ZWxsX2dl dF9jb25maWc7ICovCj4+Pj4+ICsJCX0gZWxzZSB7Cj4+Pj4+ICAgIAkJCWRldl9wcml2LT5kaXNw bGF5LmxvYWRfbHV0cyA9IGk5eHhfbG9hZF9sdXRzOwo+Pj4+PiArCQkJZGV2X3ByaXYtPmRpc3Bs YXkuZ2V0X2NvbmZpZyA9IGk5eHhfZ2V0X2NvbmZpZzsKPj4+Pj4gKwkJfQo+Pj4+PiAgICAKPj4+ Pj4gICAgCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQo+Pj4+PiAgICAJCQlkZXZfcHJp di0+ZGlzcGxheS5jb2xvcl9jb21taXQgPSBza2xfY29sb3JfY29tbWl0Owo+Pj4+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+Pj4+IGluZGV4IDk2M2I0YmQuLjE2NWQ3OTcgMTAw NjQ0Cj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+Pj4+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4+Pj4gQEAgLTgy MTIsNiArODIxMiwxMSBAQCBzdGF0aWMgYm9vbCBpOXh4X2dldF9waXBlX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YywKPj4+Pj4gICAgCj4+Pj4+ICAgIAlpOXh4X2dldF9waXBlX2NvbG9y X2NvbmZpZyhwaXBlX2NvbmZpZyk7Cj4+Pj4+ICAgIAo+Pj4+PiArCS8qCj4+Pj4+ICsJICogVE9E TzogWWV0IHRvIGltcGxlbWVudCBmb3IgbGVnYWN5IHBsYXRmb3Jtcwo+Pj4+PiArCSAqIGludGVs X2NvbG9yX2dldF9jb25maWcocGlwZV9jb25maWcpOwo+Pj4+PiArCSAqLwo+Pj4+PiArCj4+Pj4g SSdtIG5vdCBzdXJlIGFib3V0IGFkZGluZyB0aGVzZSBjb21tZW50cyBlaXRoZXIuCj4+Pj4KPj4+ Pj4gICAgCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgNCkKPj4+Pj4gICAgCQlwaXBlX2NvbmZp Zy0+ZG91YmxlX3dpZGUgPSB0bXAgJiBQSVBFQ09ORl9ET1VCTEVfV0lERTsKPj4+Pj4gICAgCj4+ Pj4+IEBAIC05Mjg0LDYgKzkyODksMTEgQEAgc3RhdGljIGJvb2wgaXJvbmxha2VfZ2V0X3BpcGVf Y29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+Pj4+PiAgICAKPj4+Pj4gICAgCWk5eHhf Z2V0X3BpcGVfY29sb3JfY29uZmlnKHBpcGVfY29uZmlnKTsKPj4+Pj4gICAgCj4+Pj4+ICsJLyoK Pj4+Pj4gKwkgKiBUT0RPOiBZZXQgdG8gaW1wbGVtZW50IGZvciBsZWdhY3kgcGxhdGZvcm1zCj4+ Pj4+ICsJICogaW50ZWxfY29sb3JfZ2V0X2NvbmZpZyhwaXBlX2NvbmZpZyk7Cj4+Pj4+ICsJICov Cj4+Pj4+ICsKPj4+Pj4gICAgCWlmIChJOTE1X1JFQUQoUENIX1RSQU5TQ09ORihjcnRjLT5waXBl KSkgJiBUUkFOU19FTkFCTEUpIHsKPj4+Pj4gICAgCQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwg KnBsbDsKPj4+Pj4gICAgCQllbnVtIGludGVsX2RwbGxfaWQgcGxsX2lkOwo+Pj4+PiBAQCAtOTkz Miw2ICs5OTQyLDggQEAgc3RhdGljIGJvb2wgaGFzd2VsbF9nZXRfcGlwZV9jb25maWcoc3RydWN0 IGludGVsX2NydGMgKmNydGMsCj4+Pj4+ICAgIAkJaTl4eF9nZXRfcGlwZV9jb2xvcl9jb25maWco cGlwZV9jb25maWcpOwo+Pj4+PiAgICAJfQo+Pj4+PiAgICAKPj4+Pj4gKwlpbnRlbF9jb2xvcl9n ZXRfY29uZmlnKHBpcGVfY29uZmlnKTsKPj4+Pj4gKwo+Pj4+PiAgICAJcG93ZXJfZG9tYWluID0g UE9XRVJfRE9NQUlOX1BJUEVfUEFORUxfRklUVEVSKGNydGMtPnBpcGUpOwo+Pj4+PiAgICAJaWYg KGludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0X2lmX2VuYWJsZWQoZGV2X3ByaXYsIHBvd2VyX2RvbWFp bikpIHsKPj4+Pj4gICAgCQlXQVJOX09OKHBvd2VyX2RvbWFpbl9tYXNrICYgQklUX1VMTChwb3dl cl9kb21haW4pKTsKPj4+Pj4gQEAgLTExOTkwLDYgKzEyMDAyLDM0IEBAIHN0YXRpYyBib29sIGZh c3Rib290X2VuYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+Pj4+PiAg ICAJcmV0dXJuIGZhbHNlOwo+Pj4+PiAgICB9Cj4+Pj4+ICAgIAo+Pj4+PiArc3RhdGljIGJvb2wg aW50ZWxfY29tcGFyZV9ibG9iKHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYjEsCj4+Pj4+ ICsJCQkgICAgICAgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iMikKPj4+Pj4gK3sKPj4+ Pj4gKwlzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqc3dfbHV0ID0gYmxvYjEtPmRhdGE7Cj4+Pj4+ICsJ c3RydWN0IGRybV9jb2xvcl9sdXQgKmh3X2x1dCA9IGJsb2IyLT5kYXRhOwo+Pj4+PiArCWludCBz d19sdXRfc2l6ZSwgaHdfbHV0X3NpemU7Cj4+Pj4+ICsJaW50IGk7Cj4+Pj4+ICsKPj4+Pj4gKwlz d19sdXRfc2l6ZSA9IGRybV9jb2xvcl9sdXRfc2l6ZShibG9iMSk7Cj4+Pj4+ICsJaHdfbHV0X3Np emUgPSBkcm1fY29sb3JfbHV0X3NpemUoYmxvYjIpOwo+Pj4+PiArCj4+Pj4+ICsJaWYgKHN3X2x1 dF9zaXplICE9IGh3X2x1dF9zaXplKSB7Cj4+Pj4+ICsJCURSTV9ERUJVR19LTVMoIkludmFsaWQg TFVUIHNpemU7IGdvdCAlZCwgZXhwZWN0ZWQgJWRcbiIsIGh3X2x1dF9zaXplLCBzd19sdXRfc2l6 ZSk7Cj4+Pj4gUGxlYXNlIGRvbid0IGFkZCB0aGVzZSBkZWJ1ZyBsb2dzIGhlcmUuIEluc3RlYWQs IGFkZCBhIHNlcGFyYXRlIGZ1bmN0aW9uCj4+Pj4gdG8gbG9nIGVycm9ycyBhdCB0aGUgaGlnaGVy IGxldmVsLiBDb250cmFzdCBQSVBFX0NPTkZfQ0hFQ0tfSU5GT0ZSQU1FKCkKPj4+PiBhbmQgcGlw ZV9jb25maWdfaW5mb2ZyYW1lX2VycigpLiBUaGF0IGNhbiBjb21lIGFzIGEgZm9sbG93LXVwCj4+ Pj4gaW1wcm92ZW1lbnQsIGJ1dCB0aGUgZGVidWcgbG9ncyBoZXJlIGFyZSB1bm5lY2Vzc2FyeS4K Pj4+Pgo+Pj4+PiArCQlyZXR1cm4gZmFsc2U7Cj4+Pj4+ICsJfQo+Pj4+PiArCj4+Pj4+ICsJZm9y IChpID0gMDsgaSA8IHN3X2x1dF9zaXplOyBpKyspIHsKPj4+Pj4gKwkJaWYgKGh3X2x1dFtpXS5y ZWQgIT0gc3dfbHV0W2ldLnJlZCB8fAo+Pj4+PiArCQkgICAgaHdfbHV0W2ldLmJsdWUgIT0gc3df bHV0W2ldLmJsdWUgfHwKPj4+Pj4gKwkJICAgIGh3X2x1dFtpXS5ncmVlbiAhPSBzd19sdXRbaV0u Z3JlZW4pIHsKPj4+Pj4gKwkJCURSTV9ERUJVR19LTVMoIkludmFsaWQgTFVUIHZhbHVlOyBzd19s dXQgdmFsdWUgZG9lc24ndCBtYXRjaCBod19sdXQgdmFsdWVcbiIpOwo+Pj4+PiArCQkJcmV0dXJu IGZhbHNlOwo+Pj4+PiArCQl9Cj4+Pj4+ICsJfQo+Pj4+PiArCj4+Pj4+ICsJcmV0dXJuIHRydWU7 Cj4+Pj4+ICt9Cj4+Pj4+ICsKPj4+PiBJJ2QgcHV0IHRoaXMgaW4gaW50ZWxfY29sb3IuYyBhbmQg bmFtZSBpdCBwcm9wZXJseS4gWW91IGNhbid0IHVzZSBpdCB0bwo+Pj4+IGNvbXBhcmUgcmFuZG9t IGJsb2JzLCBhbmQgdGhlIGNvbXBhcmlzb24gbmVlZHMgdG8gdGFrZSBwbGF0Zm9ybSBzcGVjaWZp Ywo+Pj4+IGJpdCBwcmVjaXNpb24gb2YgdGhlIHJlYWRvdXQgaW50byBhY2NvdW50Lgo+Pj4+Cj4+ Pj4gVGhlIGJsb2JzIG1heSBiZSBOVUxMLgo+Pj4+Cj4+Pj4+ICAgIHN0YXRpYyBib29sCj4+Pj4+ ICAgIGludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+Pj4+PiAgICAJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjdXJyZW50X2Nv bmZpZywKPj4+Pj4gQEAgLTEyMTQ4LDYgKzEyMTg4LDE0IEBAIHN0YXRpYyBib29sIGZhc3Rib290 X2VuYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+Pj4+PiAgICAJfSBc Cj4+Pj4+ICAgIH0gd2hpbGUgKDApCj4+Pj4+ICAgIAo+Pj4+PiArI2RlZmluZSBQSVBFX0NPTkZf Q0hFQ0tfQkxPQihuYW1lKSBkbyB7IFwKPj4+PiBDSEVDS19MVVQgb3IgQ0hFQ0tfQ09MT1JfTFVU IG9yIHNvbWV0aGluZywgbm90IGp1c3QgQ0hFQ0tfQkxPQi4KPj4+Pgo+Pj4+PiArCWlmICghaW50 ZWxfY29tcGFyZV9ibG9iKGN1cnJlbnRfY29uZmlnLT5uYW1lLCBwaXBlX2NvbmZpZy0+bmFtZSkp IHsgXAo+Pj4+PiArCQlwaXBlX2NvbmZpZ19lcnIoYWRqdXN0LCBfX3N0cmluZ2lmeShuYW1lKSwg XAo+Pj4+PiArCQkJCSJod19zdGF0ZSBkb2Vzbid0IG1hdGNoIHN3X3N0YXRlXG4iKTsgXAo+Pj4+ PiArCQlyZXQgPSBmYWxzZTsgXAo+Pj4+PiArCX0gXAo+Pj4+PiArfSB3aGlsZSAoMCkKPj4+Pj4g Kwo+Pj4+PiAgICAjZGVmaW5lIFBJUEVfQ09ORl9RVUlSSyhxdWlyaykgXAo+Pj4+PiAgICAJKChj dXJyZW50X2NvbmZpZy0+cXVpcmtzIHwgcGlwZV9jb25maWctPnF1aXJrcykgJiAocXVpcmspKQo+ Pj4+PiAgICAKPj4+Pj4gQEAgLTEyMjg3LDYgKzEyMzM1LDggQEAgc3RhdGljIGJvb2wgZmFzdGJv b3RfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+Pj4+ICAgIAlQ SVBFX0NPTkZfQ0hFQ0tfSU5GT0ZSQU1FKHNwZCk7Cj4+Pj4+ICAgIAlQSVBFX0NPTkZfQ0hFQ0tf SU5GT0ZSQU1FKGhkbWkpOwo+Pj4+PiAgICAKPj4+Pj4gKwlQSVBFX0NPTkZfQ0hFQ0tfQkxPQihi YXNlLmdhbW1hX2x1dCk7Cj4+Pj4+ICsKPj4+Pj4gICAgI3VuZGVmIFBJUEVfQ09ORl9DSEVDS19Y Cj4+Pj4+ICAgICN1bmRlZiBQSVBFX0NPTkZfQ0hFQ0tfSQo+Pj4+PiAgICAjdW5kZWYgUElQRV9D T05GX0NIRUNLX0JPT0wKPj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4+Pj4gaW5kZXgg NDBlYmM5NC4uYTZhY2Q5YiAxMDA2NDQKPj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKPj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK Pj4+Pj4gQEAgLTI1MTIsNiArMjUxMiw3IEBAIGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2hlY2tf d2l0aF9zdGF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfCj4+Pj4+ ICAgIGludCBpbnRlbF9jb2xvcl9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSk7Cj4+Pj4+ICAgIHZvaWQgaW50ZWxfY29sb3JfY29tbWl0KGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPj4+Pj4gICAgdm9pZCBpbnRlbF9jb2xvcl9sb2Fk X2x1dHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwo+Pj4+PiAr dm9pZCBpbnRlbF9jb2xvcl9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKTsKPj4+Pj4gICAgCj4+Pj4+ICAgIC8qIGludGVsX2xzcGNvbi5jICovCj4+Pj4+ICAg IGJvb2wgbHNwY29uX2luaXQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3Bv cnQpOwoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBHcmFwaGljcyBDZW50ZXIK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4