From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH v5] drm/i915/icl: Enhanced execution list support Date: Mon, 22 Jan 2018 17:08:16 +0200 Message-ID: <877esahqxr.fsf@gaia.fi.intel.com> References: <20180109232835.11478-1-paulo.r.zanoni@intel.com> <1516226034-2805-1-git-send-email-daniele.ceraolospurio@intel.com> <87efmmhudf.fsf@gaia.fi.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7F7306E23C for ; Mon, 22 Jan 2018 15:08:31 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniele Ceraolo Spurio , intel-gfx@lists.freedesktop.org Cc: Thomas Daniel , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org RGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGludGVsLmNvbT4g d3JpdGVzOgoKPiBPbiAxOS8wMS8xOCAwNTowNSwgTWlrYSBLdW9wcGFsYSB3cm90ZToKPj4gRGFu aWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGludGVsLmNvbT4gd3Jp dGVzOgo+PiAKPj4+IEZyb206IFRob21hcyBEYW5pZWwgPHRob21hcy5kYW5pZWxAaW50ZWwuY29t Pgo+Pj4KPj4+IEVuaGFuY2VkIEV4ZWNsaXN0cyBpcyBhbiB1cGdyYWRlZCB2ZXJzaW9uIG9mIGV4 ZWNsaXN0cyB3aGljaCBzdXBwb3J0cwo+Pj4gdXAgdG8gOCBwb3J0cy4gVGhlIGxyY3MgdG8gYmUg c3VibWl0dGVkIGFyZSB3cml0dGVuIHRvIGEgc3VibWl0IHF1ZXVlLAo+Pj4gd2hpY2ggaXMgdGhl biBsb2FkZWQgb24gdGhlIEhXLiBXaGVuIHdyaXRpbmcgdG8gdGhlIEVMU1AgcmVnaXN0ZXIsIHRo ZQo+Pj4gbHJjcyBhcmUgd3JpdHRlbiBjeWNsaWNhbGx5IGluIHRoZSBxdWV1ZSBmcm9tIHBvc2l0 aW9uIDAgdG8gcG9zaXRpb24gNy4KPj4+IEFsdGVybmF0aXZlbHksIGl0IGlzIHBvc3NpYmxlIHRv IHdyaXRlIGRpcmVjdGx5IGluIHRoZSBpbmRpdmlkdWFsCj4+PiBwb3NpdGlvbnMgb2YgdGhlIHF1 ZXVlIHVzaW5nIHRoZSBFTFNRIHJlZ2lzdGVycy4gVG8gYmUgYWJsZSB0byByZS11c2UKPj4+IGFs bCB0aGUgZXhpc3RpbmcgY29kZSB3ZSdyZSB1c2luZyB0aGUgbGF0dGVyIG1ldGhvZCBhbmQgd2Un cmUgY3VycmVudGx5Cj4+PiBsaW1pdGluZyBvdXJzZWxmIHRvIG9ubHkgdXNpbmcgMiBlbGVtZW50 cy4KPj4+Cj4+PiBUaGUgcHJlZW1wdGlvbiBmbG93IGlzIHNsaWd0aGx5IGRpZmZlcmVudCB3aXRo IGVuaGFuY2VkIGV4ZWNsaXN0cywgc28KPj4+IHRoaXMgcGF0Y2ggdHVybnMgcHJlZW1wdGlvbiBv ZmYgdGVtcG9yYXJpbHkgZm9yIEdlbjExKyB3aGlsZSB3ZSB3YWl0IGZvcgo+Pj4gdGhlIG5ldyBt ZWNoYW5pc20gdG8gbGFuZC4KPj4+Cj4+PiB2MjogUmViYXNlLgo+Pj4gdjM6IFN3aXRjaCBmcm9t ICFJU19HRU4xMSB0byBHRU4gPCAxMSAoRGFuaWVsZSBDZXJhb2xvIFNwdXJpbykuCj4+PiB2NDog VXNlIHRoZSBlbHNxIHJlZ2lzdGVycyBpbnN0ZWFkIG9mIGVsc3AuIChEYW5pZWxlIENlcmFvbG8g U3B1cmlvKQo+Pj4gdjU6IFJld29yZCBjb21taXQsIHJlbmFtZSByZWdzIHRvIGJlIGNsb3NlciB0 byBzcGVjcywgdHVybiBvZmYKPj4+ICAgICAgcHJlZW1wdGlvbiAoRGFuaWVsZSksIHJldXNlIGVu Z2luZS0+ZXhlY2xpc3RzLmVsc3AgKENocmlzKQo+Pj4KPj4+IENjOiBDaHJpcyBXaWxzb24gPGNo cmlzQGNocmlzLXdpbHNvbi5jby51az4KPj4+IFNpZ25lZC1vZmYtYnk6IFRob21hcyBEYW5pZWwg PHRob21hcy5kYW5pZWxAaW50ZWwuY29tPgo+Pj4gU2lnbmVkLW9mZi1ieTogUm9kcmlnbyBWaXZp IDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+Pj4gU2lnbmVkLW9mZi1ieTogRGFuaWVsZSBDZXJh b2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGludGVsLmNvbT4KPj4gCj4+IFdhcyBn b2luZyB0byBhZG9wdCB0aGlzIHBhdGNoIGZyb20gUm9kcmlnbyBidXQgeW91IHdlcmUgZmFzdGVy Lgo+PiAKPj4gSSBjaG9vc2UgdG8gc3Rhc2ggdGhlIGVsc3EgYW5kIHVzZSBpdCBhcyBhIGdlbjEx IHZzIHJlc3QgdG9nZ2xlOgo+PiAKPj4gUmVsZXZhbnQgYml0czoKPj4gCj4+ICtzdGF0aWMgaW5s aW5lIHZvaWQgd3JpdGVfcG9ydChzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNvbnN0 IGV4ZWNsaXN0cywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50 IG4sCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHU2NCBkZXNjKQo+PiArewo+PiAr ICAgICAgIGlmIChleGVjbGlzdHMtPmVsc3EpCj4+ICsgICAgICAgICAgICAgICBnZW4xMV9lbHNx X3dyaXRlKGRlc2MsIG4sIGV4ZWNsaXN0cy0+ZWxzcSk7Cj4+ICsgICAgICAgZWxzZQo+PiArICAg ICAgICAgICAgICAgZ2VuOF9lbHNwX3dyaXRlKGRlc2MsIGV4ZWNsaXN0cy0+ZWxzcCk7Cj4+ICt9 Cj4+ICsKPj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBzdWJtaXRfcG9ydHMoc3RydWN0IGludGVsX2Vu Z2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMpCj4+ICt7Cj4+ICsgICAgICAgLyogZm9y IGdlbjExKyB3ZSBuZWVkIHRvIG1hbnVhbGx5IGxvYWQgdGhlIHN1Ym1pdCBxdWV1ZSAqLwo+PiAr ICAgICAgIGlmIChleGVjbGlzdHMtPmVsc3EpIHsKPj4gKyAgICAgICAgICAgICAgIHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGNvbnRh aW5lcl9vZihleGVjbGlzdHMsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZXhlY2xpc3RzKTsKPj4gKyAgICAgICAgICAgICAgIHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKPj4gKwo+PiArICAgICAgICAgICAgICAg STkxNV9XUklURV9GVyhSSU5HX0VMQ1IoZW5naW5lKSwgRUxDUl9MT0FEKTsKPj4gKyAgICAgICB9 Cj4+ICt9Cj4+ICsKPj4KPgo+IEkgd2FzIHVuZGVjaWRlZCBhYm91dCBoaWRpbmcgdGhlIGNvZGUg aW4gc3ViLWZ1bmN0aW9ucyBiZWNhdXNlIG9mIHRoZSAKPiBwcmUtZW1wdGlvbiBwYXRoLiBUaGVy ZSBpcyBubyBuZWVkIGluIGdlbjExIHRvIGluamVjdCBhIGNvbnRleHQgdG8gCj4gcHJlZW1wdCB0 byBpZGxlLCBzbyB0aGUgaW5qZWN0X3ByZWVtcHQgZnVuY3Rpb24gd2lsbCBiZSBwcmUtZ2VuMTEg b25seSAKPiBhbmQgdGhlcmVmb3JlIEknZCBwcmVmZXIgdG8ga2VlcCBhIGRpcmVjdCBjYWxsIHRv IGVsc3Bfd3JpdGUgdGhlcmUuIElNSE8gCj4gaXQnZCBiZSBjbGVhbmVyIHRvIGhhdmUgc2ltaWxh ciBjb2RlIGluIGJvdGggcGxhY2VzLCBoZW5jZSB0aGUgCj4gb3Blbi1jb2RpbmcuIFRoaXMgc2Fp ZCwgSSdkIGJlIGhhcHB5IHRvIGNoYW5nZSBpdCBsaWtlIHlvdSBwcm9wb3NlZCBpZiAKPiB0aGVy ZSBpcyBhIGdlbmVyYWwgcHJlZmVyZW5jZSB0byBhYnN0cmFjdCB0aGluZ3MgYSBiaXQgaW4gdGhl IHNoYXJlZCAKPiBwYXRoIGV2ZW4gaWYgdGhlIHByZS1lbXB0aW9uIHBhdGggc3RheXMgZGlmZmVy ZW50Lgo+CgpQbGVhc2UgZG9uJ3QgY2hhbmdlLiBJIGRpZCB0aGUgbW9yZSBhYnN0cmFjdCB2ZXJz aW9uIGJlZm9yZQpsZWFybmluZyB0aGF0IGdlbjExIGRvbid0IG5lZWQgdGhlIHNwZWNpYWwgcHJl ZW1wdCBzd2l0Y2guCgo+IFJlZ2FyZGluZyB1c2luZyBleGVjbGlzdHMtPmVsc3EgYXMgYSB0b2dn bGUsIEkgd2FzIHRoaW5raW5nIHRoYXQgd2UgCj4gY291bGQgaGF2ZSBhIGRldmljZSBpbmZvIGZs YWcgaW5zdGVhZCwgc28gd2UgY291bGQgdXNlIGl0IGV2ZW4gYmVmb3JlIAo+IHNldHRpbmcgZXhl Y2xpc3RzLT5lbHNxLiBBbnkgcHJlZmVyZW5jZSBvbiB0aGlzPwoKaGFzX2xvZ2ljYWxfcmluZ19l bHNxPyBEb2Vzbid0IHRhc3RlIGJhZC4KCj4gVGhhbmtzLAo+IERhbmllbGUKPgo+IFAuUy4gSWYg eW91IHdhbnQgdG8gdGFrZSBvdmVyIGZlZWwgZnJlZSB0byBzZW5kIGFuIHVwZGF0ZWQgcGF0Y2gg OykKPgoKTm8gbmVlZCB0byB0YWtlIG92ZXIsIEkgdGhvdWdodCBpdCB3YXMgb3JwaGFuZWQgcGF0 Y2ggOikKCi1NaWthCgo+PiAuLi4KPj4gLU1pa2EKPj4gCj4+PiAtLS0KPj4+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgIHwgIDUgKysrKy0KPj4+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgIHwgMzUgKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oICAgICAg ICB8ICAzICsrKwo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgg fCAgNiArKysrLS0KPj4+ICAgNCBmaWxlcyBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCA4IGRl bGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+Pj4gaW5kZXggYzQyMDE1 Yi4uMzE2MzU0MyAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4+IEBAIC0yNzM4 LDggKzI3MzgsMTEgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgaTkxNV9zZ19zZWdtZW50 X3NpemUodm9pZCkKPj4+ICAgCj4+PiAgICNkZWZpbmUgSEFTX0xPR0lDQUxfUklOR19DT05URVhU UyhkZXZfcHJpdikgXAo+Pj4gICAJCSgoZGV2X3ByaXYpLT5pbmZvLmhhc19sb2dpY2FsX3Jpbmdf Y29udGV4dHMpCj4+PiArCj4+PiArLyogWFhYOiBQcmVlbXB0aW9uIGRpc2FibGVkIGZvciBHZW4x MSsgdW50aWwgc3VwcG9ydCBmb3IgbmV3IGZsb3cgbGFuZHMgKi8KPj4+ICAgI2RlZmluZSBIQVNf TE9HSUNBTF9SSU5HX1BSRUVNUFRJT04oZGV2X3ByaXYpIFwKPj4+IC0JCSgoZGV2X3ByaXYpLT5p bmZvLmhhc19sb2dpY2FsX3JpbmdfcHJlZW1wdGlvbikKPj4+ICsJCSgoZGV2X3ByaXYpLT5pbmZv Lmhhc19sb2dpY2FsX3JpbmdfcHJlZW1wdGlvbiAmJiBcCj4+PiArCQkgSU5URUxfR0VOKGRldl9w cml2KSA8IDExKQo+Pj4gICAKPj4+ICAgI2RlZmluZSBIQVNfRVhFQ0xJU1RTKGRldl9wcml2KSBI QVNfTE9HSUNBTF9SSU5HX0NPTlRFWFRTKGRldl9wcml2KQo+Pj4gICAKPj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jCj4+PiBpbmRleCBmZjI1ZjIwLi42N2FkN2M5IDEwMDY0NAo+Pj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xyYy5jCj4+PiBAQCAtNDI4LDExICs0MjgsMjQgQEAgc3RhdGljIGlubGlu ZSB2b2lkIGVsc3Bfd3JpdGUodTY0IGRlc2MsIHUzMiBfX2lvbWVtICplbHNwKQo+Pj4gICAJd3Jp dGVsKGxvd2VyXzMyX2JpdHMoZGVzYyksIGVsc3ApOwo+Pj4gICB9Cj4+PiAgIAo+Pj4gK3N0YXRp YyBpbmxpbmUgdm9pZCBlbHNxY193cml0ZSh1NjQgZGVzYywgdTMyIF9faW9tZW0gKmVsc3FjLCB1 MzIgcG9ydCkKPj4+ICt7Cj4+PiArCXdyaXRlbChsb3dlcl8zMl9iaXRzKGRlc2MpLCBlbHNxYyAr IHBvcnQgKiAyKTsKPj4+ICsJd3JpdGVsKHVwcGVyXzMyX2JpdHMoZGVzYyksIGVsc3FjICsgcG9y dCAqIDIgKyAxKTsKPj4+ICt9Cj4+PiArCj4+PiAgIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19zdWJt aXRfcG9ydHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+Pj4gICB7Cj4+PiArCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKPj4+ICAgCXN0 cnVjdCBleGVjbGlzdF9wb3J0ICpwb3J0ID0gZW5naW5lLT5leGVjbGlzdHMucG9ydDsKPj4+ICAg CXVuc2lnbmVkIGludCBuOwo+Pj4gICAKPj4+ICsJLyoKPj4+ICsJICogR2VuMTErIG5vdGU6IHRo ZSBzdWJtaXQgcXVldWUgaXMgbm90IGNsZWFyZWQgYWZ0ZXIgYmVpbmcgc3VibWl0dGVkCj4+PiAr CSAqIHRvIHRoZSBIVyBzbyB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB3ZSBhbHdheXMgY2xlYW4gaXQg dXAuIFRoaXMgaXMKPj4+ICsJICogY3VycmVudGx5IGVuc3VyZWQgYnkgdGhlIGZhY3QgdGhhdCB3 ZSBhbHdheXMgd3JpdGUgdGhlIHNhbWUgbnVtYmVyCj4+PiArCSAqIG9mIGVsc3EgZW50cmllcywg a2VlcCB0aGlzIGluIG1pbmQgYmVmb3JlIGNoYW5naW5nIHRoZSBsb29wIGJlbG93Lgo+Pj4gKwkg Ki8KPj4+ICAgCWZvciAobiA9IGV4ZWNsaXN0c19udW1fcG9ydHMoJmVuZ2luZS0+ZXhlY2xpc3Rz KTsgbi0tOyApIHsKPj4+ICAgCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxOwo+Pj4g ICAJCXVuc2lnbmVkIGludCBjb3VudDsKPj4+IEBAIC00NTYsOCArNDY5LDE2IEBAIHN0YXRpYyB2 b2lkIGV4ZWNsaXN0c19zdWJtaXRfcG9ydHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KQo+Pj4gICAJCQlkZXNjID0gMDsKPj4+ICAgCQl9Cj4+PiAgIAo+Pj4gLQkJZWxzcF93cml0ZShk ZXNjLCBlbmdpbmUtPmV4ZWNsaXN0cy5lbHNwKTsKPj4+ICsJCWlmIChJTlRFTF9HRU4oZGV2X3By aXYpID49IDExKQo+Pj4gKwkJCWVsc3FjX3dyaXRlKGRlc2MsIGVuZ2luZS0+ZXhlY2xpc3RzLmVs cywgbik7Cj4+PiArCQllbHNlCj4+PiArCQkJZWxzcF93cml0ZShkZXNjLCBlbmdpbmUtPmV4ZWNs aXN0cy5lbHMpOwo+Pj4gICAJfQo+Pj4gKwo+Pj4gKwkvKiBmb3IgZ2VuMTErIHdlIG5lZWQgdG8g bWFudWFsbHkgbG9hZCB0aGUgc3VibWl0IHF1ZXVlICovCj4+PiArCWlmIChJTlRFTF9HRU4oZGV2 X3ByaXYpID49IDExKQo+Pj4gKwkJSTkxNV9XUklURV9GVyhSSU5HX0VYRUNMSVNUX0NPTlRST0wo ZW5naW5lKSwgRUxfQ1RSTF9MT0FEKTsKPj4+ICsKPj4+ICAgCWV4ZWNsaXN0c19jbGVhcl9hY3Rp dmUoJmVuZ2luZS0+ZXhlY2xpc3RzLCBFWEVDTElTVFNfQUNUSVZFX0hXQUNLKTsKPj4+ICAgfQo+ Pj4gICAKPj4+IEBAIC01MDYsOSArNTI3LDkgQEAgc3RhdGljIHZvaWQgaW5qZWN0X3ByZWVtcHRf Y29udGV4dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4+PiAgIAo+Pj4gICAJR0VN X1RSQUNFKCIlc1xuIiwgZW5naW5lLT5uYW1lKTsKPj4+ICAgCWZvciAobiA9IGV4ZWNsaXN0c19u dW1fcG9ydHMoJmVuZ2luZS0+ZXhlY2xpc3RzKTsgLS1uOyApCj4+PiAtCQllbHNwX3dyaXRlKDAs IGVuZ2luZS0+ZXhlY2xpc3RzLmVsc3ApOwo+Pj4gKwkJZWxzcF93cml0ZSgwLCBlbmdpbmUtPmV4 ZWNsaXN0cy5lbHMpOwo+Pj4gICAKPj4+IC0JZWxzcF93cml0ZShjZS0+bHJjX2Rlc2MsIGVuZ2lu ZS0+ZXhlY2xpc3RzLmVsc3ApOwo+Pj4gKwllbHNwX3dyaXRlKGNlLT5scmNfZGVzYywgZW5naW5l LT5leGVjbGlzdHMuZWxzKTsKPj4+ICAgCWV4ZWNsaXN0c19jbGVhcl9hY3RpdmUoJmVuZ2luZS0+ ZXhlY2xpc3RzLCBFWEVDTElTVFNfQUNUSVZFX0hXQUNLKTsKPj4+ICAgfQo+Pj4gICAKPj4+IEBA IC0yMDE2LDggKzIwMzcsMTIgQEAgc3RhdGljIGludCBsb2dpY2FsX3JpbmdfaW5pdChzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4+PiAgIAlpZiAocmV0KQo+Pj4gICAJCWdvdG8gZXJy b3I7Cj4+PiAgIAo+Pj4gLQllbmdpbmUtPmV4ZWNsaXN0cy5lbHNwID0KPj4+IC0JCWVuZ2luZS0+ aTkxNS0+cmVncyArIGk5MTVfbW1pb19yZWdfb2Zmc2V0KFJJTkdfRUxTUChlbmdpbmUpKTsKPj4+ ICsJaWYgKElOVEVMX0dFTihlbmdpbmUtPmk5MTUpID49IDExKQo+Pj4gKwkJZW5naW5lLT5leGVj bGlzdHMuZWxzID0gZW5naW5lLT5pOTE1LT5yZWdzICsKPj4+ICsJCQlpOTE1X21taW9fcmVnX29m ZnNldChSSU5HX0VYRUNMSVNUX1NRX0NPTlRFTlRTKGVuZ2luZSkpOwo+Pj4gKwllbHNlCj4+PiAr CQllbmdpbmUtPmV4ZWNsaXN0cy5lbHMgPSBlbmdpbmUtPmk5MTUtPnJlZ3MgKwo+Pj4gKwkJCWk5 MTVfbW1pb19yZWdfb2Zmc2V0KFJJTkdfRUxTUChlbmdpbmUpKTsKPj4+ICAgCj4+PiAgIAlyZXR1 cm4gMDsKPj4+ICAgCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+Pj4gaW5kZXggNmQ0Zjli OS4uM2FiNDI2NiAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5oCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+Pj4gQEAgLTM4 LDYgKzM4LDkgQEAKPj4+ICAgI2RlZmluZQkgIENUWF9DVFJMX0VOR0lORV9DVFhfUkVTVE9SRV9J TkhJQklUCSgxIDw8IDApCj4+PiAgICNkZWZpbmUgICBDVFhfQ1RSTF9SU19DVFhfRU5BQkxFICAg ICAgICAgICAgICAgICgxIDw8IDEpCj4+PiAgICNkZWZpbmUgUklOR19DT05URVhUX1NUQVRVU19C VUZfQkFTRShlbmdpbmUpCV9NTUlPKChlbmdpbmUpLT5tbWlvX2Jhc2UgKyAweDM3MCkKPj4+ICsj ZGVmaW5lIFJJTkdfRVhFQ0xJU1RfU1FfQ09OVEVOVFMoZW5naW5lKQlfTU1JTygoZW5naW5lKS0+ bW1pb19iYXNlICsgMHg1MTApCj4+PiArI2RlZmluZSBSSU5HX0VYRUNMSVNUX0NPTlRST0woZW5n aW5lKQkJX01NSU8oKGVuZ2luZSktPm1taW9fYmFzZSArIDB4NTUwKQo+Pj4gKyNkZWZpbmUJICBF TF9DVFJMX0xPQUQJCQkJKDEgPDwgMCkKPj4+ICAgI2RlZmluZSBSSU5HX0NPTlRFWFRfU1RBVFVT X0JVRl9MTyhlbmdpbmUsIGkpCV9NTUlPKChlbmdpbmUpLT5tbWlvX2Jhc2UgKyAweDM3MCArIChp KSAqIDgpCj4+PiAgICNkZWZpbmUgUklOR19DT05URVhUX1NUQVRVU19CVUZfSEkoZW5naW5lLCBp KQlfTU1JTygoZW5naW5lKS0+bW1pb19iYXNlICsgMHgzNzAgKyAoaSkgKiA4ICsgNCkKPj4+ICAg I2RlZmluZSBSSU5HX0NPTlRFWFRfU1RBVFVTX1BUUihlbmdpbmUpCQlfTU1JTygoZW5naW5lKS0+ bW1pb19iYXNlICsgMHgzYTApCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5oCj4+PiBpbmRleCBjNWZmMjAzLi5kMzZiYjczIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPj4+IEBAIC0yMDAsOSArMjAwLDExIEBAIHN0cnVjdCBp bnRlbF9lbmdpbmVfZXhlY2xpc3RzIHsKPj4+ICAgCWJvb2wgbm9fcHJpb2xpc3Q7Cj4+PiAgIAo+ Pj4gICAJLyoqCj4+PiAtCSAqIEBlbHNwOiB0aGUgRXhlY0xpc3QgU3VibWlzc2lvbiBQb3J0IHJl Z2lzdGVyCj4+PiArCSAqIEBlbHM6IGdlbi1zcGVjaWZpYyBleGVjbGlzdCBzdWJtaXNzaW9uIHJl Z2lzdGVyCj4+PiArCSAqIHNldCB0byB0aGUgRXhlY0xpc3QgU3VibWlzc2lvbiBQb3J0IChlbHNw KSByZWdpc3RlciBwcmUtR2VuMTEgYW5kIHRvCj4+PiArCSAqIHRoZSBFeGVjTGlzdCBTdWJtaXNz aW9uIFF1ZXVlIENvbnRlbnRzIHJlZ2lzdGVyIGFycmF5IGZvciBHZW4xMSsKPj4+ICAgCSAqLwo+ Pj4gLQl1MzIgX19pb21lbSAqZWxzcDsKPj4+ICsJdTMyIF9faW9tZW0gKmVsczsKPj4+ICAgCj4+ PiAgIAkvKioKPj4+ICAgCSAqIEBwb3J0OiBleGVjbGlzdCBwb3J0IHN0YXRlcwo+Pj4gLS0gCj4+ PiAxLjkuMQo+Pj4KPj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCj4+PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4+PiBJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCj4+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK