From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anusha Srivatsa Subject: Re: [PATCH 05/24] drm/i915/icp: Add Interrupt Support Date: Mon, 18 Jun 2018 12:10:12 -0700 Message-ID: <20180618191011.GA16852@intel.com> References: <20180522002558.29262-1-paulo.r.zanoni@intel.com> <20180522002558.29262-6-paulo.r.zanoni@intel.com> <20180524235355.GA2951@ldmartin-desk.amr.corp.intel.com> <1527209143.2226.89.camel@intel.com> <20180525004321.GC2951@ldmartin-desk.amr.corp.intel.com> <20180529234150.GA11474@ldmartin-desk.amr.corp.intel.com> <20180613222306.GB17137@ldmartin-desk.amr.corp.intel.com> <1528942914.7432.40.camel@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 37E3489AC3 for ; Mon, 18 Jun 2018 19:12:34 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1528942914.7432.40.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Dhinakaran Pandiyan Cc: intel-gfx@lists.freedesktop.org, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKdW4gMTMsIDIwMTggYXQgMDc6MjE6NTRQTSAtMDcwMCwgRGhpbmFrYXJhbiBQYW5k aXlhbiB3cm90ZToKPiBPbiBXZWQsIDIwMTgtMDYtMTMgYXQgMTU6MjMgLTA3MDAsIEx1Y2FzIERl IE1hcmNoaSB3cm90ZToKPiA+IE9uIFR1ZSwgTWF5IDI5LCAyMDE4IGF0IDA1OjA0OjU4UE0gLTA3 MDAsIEx1Y2FzIERlIE1hcmNoaSB3cm90ZToKPiA+ID4gCj4gPiA+IE9uIFRodSwgTWF5IDI0LCAy MDE4IGF0IDA1OjQzOjI0UE0gLTA3MDAsIEx1Y2FzIERlIE1hcmNoaSB3cm90ZToKPiA+ID4gPiAK PiA+ID4gPiBPbiBUaHUsIE1heSAyNCwgMjAxOCBhdCAwNTo0NTo0M1BNIC0wNzAwLCBEaGluYWth cmFuIFBhbmRpeWFuCj4gPiA+ID4gd3JvdGU6Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IE9uIFRodSwg MjAxOC0wNS0yNCBhdCAxNjo1MyAtMDcwMCwgTHVjYXMgRGUgTWFyY2hpIHdyb3RlOgo+ID4gPiA+ ID4gPiAKPiA+ID4gPiA+ID4gT24gTW9uLCBNYXkgMjEsIDIwMTggYXQgMDU6MjU6MzlQTSAtMDcw MCwgUGF1bG8gWmFub25pIHdyb3RlOgo+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+IAo+ID4g PiA+ID4gPiA+IEZyb206IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNv bT4KPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiBUaGlzIHBhdGNoIGFkZHJlc3NlcyBJbnRl cnJ1cHRzIGZyb20gc291dGggZGlzcGxheSBlbmdpbmUKPiA+ID4gPiA+ID4gPiAoU0RFKS4KPiA+ ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiBJQ1AgaGFzIHR3byByZWdpc3RlcnMgLSBTSE9UUExV R19DVExfRERJIGFuZAo+ID4gPiA+ID4gPiA+IFNIT1RQTFVHX0NUTF9UQy4KPiA+ID4gPiA+ID4g PiBJbnRyb2R1Y2UgdGhlc2UgcmVnaXN0ZXJzIGFuZCB0aGVpciBpbnRlbmRlZCB2YWx1ZXMuCj4g PiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gSW50cm9kdWNlIGljcF9pcnFfaGFuZGxlcigpLgo+ ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+IENjOiBQYXVsbyBaYW5vbmkgPHBhdWxvLnIuemFu b25pQGludGVsLmNvbT4KPiA+ID4gPiA+ID4gPiBDYzogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhp bmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+Cj4gPiA+ID4gPiA+ID4gQ2M6IFZpbGxlIFN5cmph bGEgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gPiA+ID4gPiA+IFNpZ25lZC1v ZmYtYnk6IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT4KPiA+ID4g PiA+ID4gPiBbUGF1bG86IGNvZGluZyBzdHlsZSBiaWtlc2hlZHMgYW5kIHJlYmFzZXNdLgo+ID4g PiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50 ZWwuY29tPgo+ID4gPiA+ID4gPiA+IC0tLQo+ID4gPiA+ID4gPiA+IMKgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9pcnEuYyB8IDEzNAo+ID4gPiA+ID4gPiA+ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0KPiA+ID4gPiA+ID4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVnLmggfMKgwqA0MCArKysrKysrKysrKysKPiA+ID4gPiA+ID4gPiDCoDIgZmlsZXMg Y2hhbmdlZCwgMTcyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4gPiA+ID4gPiA+ID4g Cj4gPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJx LmMKPiA+ID4gPiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiA+ID4g PiA+ID4gPiBpbmRleCA5YmNlYzVmZGI5ZDAuLjZiMTA5OTkxNzg2ZiAxMDA2NDQKPiA+ID4gPiA+ ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gPiA+ID4gPiA+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ID4gPiA+ID4gPiA+IEBAIC0x MjIsNiArMTIyLDE1IEBAIHN0YXRpYyBjb25zdCB1MzIKPiA+ID4gPiA+ID4gPiBocGRfdGNfZ2Vu MTFbSFBEX05VTV9QSU5TXSA9Cj4gPiA+ID4gPiA+ID4gewo+ID4gPiA+ID4gPiA+IMKgCVtIUERf UE9SVF9GXSA9IEdFTjExX1RDNF9IT1RQTFVHCj4gPiA+ID4gPiA+ID4gwqB9Owo+ID4gPiA+ID4g PiA+IMKgCj4gPiA+ID4gPiA+ID4gK3N0YXRpYyBjb25zdCB1MzIgaHBkX2ljcFtIUERfTlVNX1BJ TlNdID0gewo+ID4gPiA+ID4gPiA+ICsJW0hQRF9QT1JUX0FdID0gSUNQX0RESUFfSE9UUExVRywK PiA+ID4gPiA+ID4gPiArCVtIUERfUE9SVF9CXSA9IElDUF9ERElCX0hPVFBMVUcsCj4gPiA+ID4g PiA+ID4gKwlbSFBEX1BPUlRfQ10gPSBJQ1BfVEMxX0hPVFBMVUcsCj4gPiA+ID4gPiA+ID4gKwlb SFBEX1BPUlRfRF0gPSBJQ1BfVEMyX0hPVFBMVUcsCj4gPiA+ID4gPiA+ID4gKwlbSFBEX1BPUlRf RV0gPSBJQ1BfVEMzX0hPVFBMVUcsCj4gPiA+ID4gPiA+ID4gKwlbSFBEX1BPUlRfRl0gPSBJQ1Bf VEM0X0hPVFBMVUcKPiA+ID4gPiA+ID4gPiArfTsKPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ ID4gwqAvKiBJSVIgY2FuIHRoZW9yZXRpY2FsbHkgcXVldWUgdXAgdHdvIGV2ZW50cy4gQmUgcGFy YW5vaWQuCj4gPiA+ID4gPiA+ID4gKi8KPiA+ID4gPiA+ID4gPiDCoCNkZWZpbmUgR0VOOF9JUlFf UkVTRVRfTkRYKHR5cGUsIHdoaWNoKSBkbyB7IFwKPiA+ID4gPiA+ID4gPiDCoAlJOTE1X1dSSVRF KEdFTjhfIyN0eXBlIyNfSU1SKHdoaWNoKSwgMHhmZmZmZmZmZik7Cj4gPiA+ID4gPiA+ID4gXAo+ ID4gPiA+ID4gPiA+IEBAIC0xNTg2LDYgKzE1OTUsMzQgQEAgc3RhdGljIGJvb2wKPiA+ID4gPiA+ ID4gPiBieHRfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0KGVudW0gcG9ydCBwb3J0LCB1MzIgdmFs KQo+ID4gPiA+ID4gPiA+IMKgCX0KPiA+ID4gPiA+ID4gPiDCoH0KPiA+ID4gPiA+ID4gPiDCoAo+ ID4gPiA+ID4gPiA+ICtzdGF0aWMgYm9vbCBpY3BfZGRpX3BvcnRfaG90cGx1Z19sb25nX2RldGVj dChlbnVtIHBvcnQKPiA+ID4gPiA+ID4gPiBwb3J0LCB1MzIKPiA+ID4gPiA+ID4gPiB2YWwpCj4g PiA+ID4gPiA+ID4gK3sKPiA+ID4gPiA+ID4gPiArCXN3aXRjaCAocG9ydCkgewo+ID4gPiA+ID4g PiA+ICsJY2FzZSBQT1JUX0E6Cj4gPiA+ID4gPiA+ID4gKwkJcmV0dXJuIHZhbCAmIElDUF9ERElB X0hQRF9MT05HX0RFVEVDVDsKPiA+ID4gPiA+ID4gPiArCWNhc2UgUE9SVF9COgo+ID4gPiA+ID4g PiA+ICsJCXJldHVybiB2YWwgJiBJQ1BfRERJQl9IUERfTE9OR19ERVRFQ1Q7Cj4gPiA+ID4gPiA+ ID4gKwlkZWZhdWx0Ogo+ID4gPiA+ID4gPiA+ICsJCXJldHVybiBmYWxzZTsKPiA+ID4gPiA+ID4g PiArCX0KPiA+ID4gPiA+ID4gPiArfQo+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiArc3Rh dGljIGJvb2wgaWNwX3RjX3BvcnRfaG90cGx1Z19sb25nX2RldGVjdChlbnVtIHBvcnQKPiA+ID4g PiA+ID4gPiBwb3J0LCB1MzIKPiA+ID4gPiA+ID4gPiB2YWwpCj4gPiA+ID4gPiA+ID4gK3sKPiA+ ID4gPiA+ID4gPiArCXN3aXRjaCAocG9ydCkgewo+ID4gPiA+ID4gPiA+ICsJY2FzZSBQT1JUX0M6 Cj4gPiA+ID4gPiA+ID4gKwkJcmV0dXJuIHZhbCAmCj4gPiA+ID4gPiA+ID4gSUNQX1RDX0hQRF9M T05HX0RFVEVDVChQT1JUX1RDMSk7Cj4gPiA+ID4gPiA+ID4gKwljYXNlIFBPUlRfRDoKPiA+ID4g PiA+ID4gPiArCQlyZXR1cm4gdmFsICYKPiA+ID4gPiA+ID4gPiBJQ1BfVENfSFBEX0xPTkdfREVU RUNUKFBPUlRfVEMyKTsKPiA+ID4gPiA+ID4gPiArCWNhc2UgUE9SVF9FOgo+ID4gPiA+ID4gPiA+ ICsJCXJldHVybiB2YWwgJgo+ID4gPiA+ID4gPiA+IElDUF9UQ19IUERfTE9OR19ERVRFQ1QoUE9S VF9UQzMpOwo+ID4gPiA+ID4gPiA+ICsJY2FzZSBQT1JUX0Y6Cj4gPiA+ID4gPiA+ID4gKwkJcmV0 dXJuIHZhbCAmCj4gPiA+ID4gPiA+ID4gSUNQX1RDX0hQRF9MT05HX0RFVEVDVChQT1JUX1RDNCk7 Cj4gPiA+ID4gPiA+ID4gKwlkZWZhdWx0Ogo+ID4gPiA+ID4gPiA+ICsJCXJldHVybiBmYWxzZTsK PiA+ID4gPiA+ID4gPiArCX0KPiA+ID4gPiA+ID4gPiArfQo+ID4gPiA+ID4gPiA+ICsKPiA+ID4g PiA+ID4gPiDCoHN0YXRpYyBib29sIHNwdF9wb3J0X2hvdHBsdWcyX2xvbmdfZGV0ZWN0KGVudW0g cG9ydCBwb3J0LAo+ID4gPiA+ID4gPiA+IHUzMiB2YWwpCj4gPiA+ID4gPiA+ID4gwqB7Cj4gPiA+ ID4gPiA+ID4gwqAJc3dpdGNoIChwb3J0KSB7Cj4gPiA+ID4gPiA+ID4gQEAgLTIzNzcsNiArMjQx NCw0MyBAQCBzdGF0aWMgdm9pZCBjcHRfaXJxX2hhbmRsZXIoc3RydWN0Cj4gPiA+ID4gPiA+ID4g ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBwY2hfaWlyKQo+ID4gPiA+ID4gPiA+IMKg CQljcHRfc2Vycl9pbnRfaGFuZGxlcihkZXZfcHJpdik7Cj4gPiA+ID4gPiA+ID4gwqB9Cj4gPiA+ ID4gPiA+ID4gwqAKPiA+ID4gPiA+ID4gPiArc3RhdGljIHZvaWQgaWNwX2lycV9oYW5kbGVyKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gPiA+ID4gPiA+ID4gKmRldl9wcml2LCB1MzIKPiA+ID4g PiA+ID4gPiBwY2hfaWlyKQo+ID4gPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiA+ID4gKwl1MzIgZGRp X2hvdHBsdWdfdHJpZ2dlciA9IHBjaF9paXIgJgo+ID4gPiA+ID4gPiA+IElDUF9TREVfRERJX01B U0s7Cj4gPiA+ID4gPiA+ID4gKwl1MzIgdGNfaG90cGx1Z190cmlnZ2VyID0gcGNoX2lpciAmCj4g PiA+ID4gPiA+ID4gSUNQX1NERV9UQ19NQVNLOwo+ID4gPiA+ID4gPiA+ICsJdTMyIHBpbl9tYXNr ID0gMCwgbG9uZ19tYXNrID0gMDsKPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gKwlpZiAo ZGRpX2hvdHBsdWdfdHJpZ2dlcikgewo+ID4gPiA+ID4gPiA+ICsJCXUzMiBkaWdfaG90cGx1Z19y ZWc7Cj4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ICsJCWRpZ19ob3RwbHVnX3JlZyA9Cj4g PiA+ID4gPiA+ID4gSTkxNV9SRUFEKFNIT1RQTFVHX0NUTF9EREkpOwo+ID4gPiA+ID4gPiA+ICsJ CUk5MTVfV1JJVEUoU0hPVFBMVUdfQ1RMX0RESSwKPiA+ID4gPiA+ID4gPiBkaWdfaG90cGx1Z19y ZWcpOwo+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiArCQlpbnRlbF9nZXRfaHBkX3BpbnMo ZGV2X3ByaXYsICZwaW5fbWFzaywKPiA+ID4gPiA+ID4gPiAmbG9uZ19tYXNrLAo+ID4gPiA+ID4g PiA+ICsJCQkJwqDCoMKgZGRpX2hvdHBsdWdfdHJpZ2dlciwKPiA+ID4gPiA+ID4gPiArCQkJCcKg wqDCoGRpZ19ob3RwbHVnX3JlZywKPiA+ID4gPiA+ID4gPiBocGRfaWNwLAo+ID4gPiA+ID4gPiA+ ICsJCQkJwqDCoMKgaWNwX2RkaV9wb3J0X2hvdHBsdWdfbG8KPiA+ID4gPiA+ID4gPiBuZ19kZXRl Ywo+ID4gPiA+ID4gPiA+IHQpOwo+ID4gPiA+ID4gPiA+ICsJfQo+ID4gPiA+ID4gPiA+ICsKPiA+ ID4gPiA+ID4gPiArCWlmICh0Y19ob3RwbHVnX3RyaWdnZXIpIHsKPiA+ID4gPiA+ID4gPiArCQl1 MzIgZGlnX2hvdHBsdWdfcmVnOwo+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiArCQlkaWdf aG90cGx1Z19yZWcgPQo+ID4gPiA+ID4gPiA+IEk5MTVfUkVBRChTSE9UUExVR19DVExfVEMpOwo+ ID4gPiA+ID4gPiA+ICsJCUk5MTVfV1JJVEUoU0hPVFBMVUdfQ1RMX1RDLAo+ID4gPiA+ID4gPiA+ IGRpZ19ob3RwbHVnX3JlZyk7Cj4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ICsJCWludGVs X2dldF9ocGRfcGlucyhkZXZfcHJpdiwgJnBpbl9tYXNrLAo+ID4gPiA+ID4gPiA+ICZsb25nX21h c2ssCj4gPiA+ID4gPiA+ID4gKwkJCQnCoMKgwqB0Y19ob3RwbHVnX3RyaWdnZXIsCj4gPiA+ID4g PiA+ID4gKwkJCQnCoMKgwqBkaWdfaG90cGx1Z19yZWcsCj4gPiA+ID4gPiA+ID4gaHBkX2ljcCwK PiA+ID4gPiA+ID4gPiArCQkJCcKgwqDCoGljcF90Y19wb3J0X2hvdHBsdWdfbG9uCj4gPiA+ID4g PiA+ID4gZ19kZXRlY3QKPiA+ID4gPiA+ID4gPiApOwo+ID4gPiA+ID4gPiA+ICsJfQo+ID4gPiA+ ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiArCWlmIChwaW5fbWFzaykKPiA+ID4gPiA+ID4gPiArCQlp bnRlbF9ocGRfaXJxX2hhbmRsZXIoZGV2X3ByaXYsIHBpbl9tYXNrLAo+ID4gPiA+ID4gPiA+IGxv bmdfbWFzayk7Cj4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ICsJaWYgKHBjaF9paXIgJiBJ Q1BfR01CVVMpCj4gPiA+ID4gPiA+ID4gKwkJZ21idXNfaXJxX2hhbmRsZXIoZGV2X3ByaXYpOwo+ ID4gPiA+ID4gPiA+ICt9Cj4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+IMKgc3RhdGljIHZv aWQgc3B0X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gPiA+ID4gPiA+ID4g KmRldl9wcml2LCB1MzIKPiA+ID4gPiA+ID4gPiBwY2hfaWlyKQo+ID4gPiA+ID4gPiA+IMKgewo+ ID4gPiA+ID4gPiA+IMKgCXUzMiBob3RwbHVnX3RyaWdnZXIgPSBwY2hfaWlyICYKPiA+ID4gPiA+ ID4gPiBTREVfSE9UUExVR19NQVNLX1NQVCAmCj4gPiA+ID4gPiA+ID4gQEAgLTI3NzksOCArMjg1 MywxMSBAQCBnZW44X2RlX2lycV9oYW5kbGVyKHN0cnVjdAo+ID4gPiA+ID4gPiA+IGRybV9pOTE1 X3ByaXZhdGUKPiA+ID4gPiA+ID4gPiAqZGV2X3ByaXYsIHUzMiBtYXN0ZXJfY3RsKQo+ID4gPiA+ ID4gPiA+IMKgCQkJSTkxNV9XUklURShTREVJSVIsIGlpcik7Cj4gPiA+ID4gPiA+ID4gwqAJCQly ZXQgPSBJUlFfSEFORExFRDsKPiA+ID4gPiA+ID4gPiDCoAo+ID4gPiA+ID4gPiA+IC0JCQlpZiAo SEFTX1BDSF9TUFQoZGV2X3ByaXYpIHx8Cj4gPiA+ID4gPiA+ID4gSEFTX1BDSF9LQlAoZGV2X3By aXYpIHx8Cj4gPiA+ID4gPiA+ID4gLQkJCcKgwqDCoMKgSEFTX1BDSF9DTlAoZGV2X3ByaXYpKQo+ ID4gPiA+ID4gPiA+ICsJCQlpZiAoSEFTX1BDSF9JQ1AoZGV2X3ByaXYpKQo+ID4gPiA+ID4gPiA+ ICsJCQkJaWNwX2lycV9oYW5kbGVyKGRldl9wcml2LAo+ID4gPiA+ID4gPiA+IGlpcik7Cj4gPiA+ IHRvIGJlIGNsZWFyIG9uIHdoYXQgSSB3YXMgc2F5aW5nLi4uIFNlZSB0aGUgY29udGV4dCBqdXN0 IGFib3ZlOiB3ZQo+ID4gPiByZWFkCj4gPiA+IGFuZCB3cml0ZSBTREVJSVIgdG8gZ2V0L2NsZWFy IHRoZSBpbnRlcnJ1cHQgYml0cy4gWWV0IHlvdSBhcmUKPiA+ID4gZGVmaW5pbmcgYQo+ID4gPiBJ Q1BfU0RFX0lJUiB0aGF0IGhhcyB0byBiZSB0aGUgc2FtZSB2YWx1ZS7CoMKgVG8gYXZvaWQgYW55 IGNvbmZ1c2lvbiwKPiA+ID4gSQo+ID4gPiB0aGluayBpdCdzIGJldHRlciB0byBzdGF5IHdpdGgg U0RFSUlSIGFuZCBqdXN0IGNoYW5nZSB0aGUgYml0Cj4gPiA+IGRlZmluaXRpb24uCj4gPiBEaywg YW55IG5ld3Mgb24gdGhpcz8KCkx1Y2FzLCBEaywgdGhhbmtzIGZvciB0aGUgcmV2aWV3LgpTb3Jy eSBmb3IgdGhlIGxhdGUgcmVzcG9uc2UuCgpZZXMsIGkgc2VlIHRoYXQgdGhlIHJlZ2lzdGVycyBh cmUgZXhhY3RseSB0aGUgc2FtZS4gYmV0dGVyIHRvIHJldXNlIHRoZQpvcmlnaW5hbCBTREV7fSBh bmQgaGF2ZSBvbmx5IG5ldyBiaXQgZGVmaW5pdGlvbnMgaW4gcGxhY2UuCgpJIHNoYWxsIHJlbW92 ZSB0aGUgSUNQX1NERXt9IHJlZ2lzdGVyIGRlZmluZXMuCgo+IFNERUlJUiBpcyBmaW5lIGJ5IG1l LiBUaGUgcGF0Y2ggYXV0aG9yIGhhcyB0byBtYWtlIHRoZSByZXF1aXJlZAo+IGNoYW5nZXMsIEkg anVzdCByZXZpZXdlZCB0aGUgcGF0Y2ggOikKPiAKPiA+IAo+ID4gTHVjYXMgRGUgTWFyY2hpCj4g PiAKPiA+ID4gCj4gPiA+IAo+ID4gPiAKPiA+ID4gPiAKPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiAK PiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiArCQkJZWxzZSBpZiAoSEFTX1BDSF9TUFQoZGV2 X3ByaXYpIHx8Cj4gPiA+ID4gPiA+ID4gKwkJCQnCoEhBU19QQ0hfS0JQKGRldl9wcml2KSB8fAo+ ID4gPiA+ID4gPiA+ICsJCQkJwqBIQVNfUENIX0NOUChkZXZfcHJpdikpCj4gPiA+ID4gPiA+ID4g wqAJCQkJc3B0X2lycV9oYW5kbGVyKGRldl9wcml2LAo+ID4gPiA+ID4gPiA+IGlpcik7Cj4gPiA+ ID4gPiA+ID4gwqAJCQllbHNlCj4gPiA+ID4gPiA+ID4gwqAJCQkJY3B0X2lycV9oYW5kbGVyKGRl dl9wcml2LAo+ID4gPiA+ID4gPiA+IGlpcik7Cj4gPiA+ID4gPiA+ID4gQEAgLTM1NDgsNiArMzYy NSw5IEBAIHN0YXRpYyB2b2lkIGdlbjExX2lycV9yZXNldChzdHJ1Y3QKPiA+ID4gPiA+ID4gPiBk cm1fZGV2aWNlCj4gPiA+ID4gPiA+ID4gKmRldikKPiA+ID4gPiA+ID4gPiDCoAlHRU4zX0lSUV9S RVNFVChHRU4xMV9ERV9IUERfKTsKPiA+ID4gPiA+ID4gPiDCoAlHRU4zX0lSUV9SRVNFVChHRU4x MV9HVV9NSVNDXyk7Cj4gPiA+ID4gPiA+ID4gwqAJR0VOM19JUlFfUkVTRVQoR0VOOF9QQ1VfKTsK PiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gKwlpZiAoSEFTX1BDSF9JQ1AoZGV2X3ByaXYp KQo+ID4gPiA+ID4gPiA+ICsJCUdFTjNfSVJRX1JFU0VUKElDUF9TREVfKTsKPiA+ID4gPiA+ID4g PiDCoH0KPiA+ID4gPiA+ID4gPiDCoAo+ID4gPiA+ID4gPiA+IMKgdm9pZCBnZW44X2lycV9wb3dl cl93ZWxsX3Bvc3RfZW5hYmxlKHN0cnVjdAo+ID4gPiA+ID4gPiA+IGRybV9pOTE1X3ByaXZhdGUK PiA+ID4gPiA+ID4gPiAqZGV2X3ByaXYsCj4gPiA+ID4gPiA+ID4gQEAgLTM2NjQsNiArMzc0NCwz NSBAQCBzdGF0aWMgdm9pZCBpYnhfaHBkX2lycV9zZXR1cChzdHJ1Y3QKPiA+ID4gPiA+ID4gPiBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ID4gPiA+ID4gPiDCoAlpYnhfaHBkX2RldGVj dGlvbl9zZXR1cChkZXZfcHJpdik7Cj4gPiA+ID4gPiA+ID4gwqB9Cj4gPiA+ID4gPiA+ID4gwqAK PiA+ID4gPiA+ID4gPiArc3RhdGljIHZvaWQgaWNwX2hwZF9kZXRlY3Rpb25fc2V0dXAoc3RydWN0 Cj4gPiA+ID4gPiA+ID4gZHJtX2k5MTVfcHJpdmF0ZQo+ID4gPiA+ID4gPiA+ICpkZXZfcHJpdikK PiA+ID4gPiA+ID4gPiArewo+ID4gPiA+ID4gPiA+ICsJdTMyIGhvdHBsdWc7Cj4gPiA+ID4gPiA+ ID4gKwo+ID4gPiA+ID4gPiA+ICsJaG90cGx1ZyA9IEk5MTVfUkVBRChTSE9UUExVR19DVExfRERJ KTsKPiA+ID4gPiA+ID4gPiArCWhvdHBsdWcgfD0gSUNQX0RESUFfSFBEX0VOQUJMRSB8Cj4gPiA+ ID4gPiA+ID4gKwkJwqDCoMKgSUNQX0RESUJfSFBEX0VOQUJMRTsKPiA+ID4gPiA+ID4gPiArCUk5 MTVfV1JJVEUoU0hPVFBMVUdfQ1RMX0RESSwgaG90cGx1Zyk7Cj4gPiA+ID4gPiA+ID4gKwo+ID4g PiA+ID4gPiA+ICsJaG90cGx1ZyA9IEk5MTVfUkVBRChTSE9UUExVR19DVExfVEMpOwo+ID4gPiA+ ID4gPiA+ICsJaG90cGx1ZyB8PSBJQ1BfVENfSFBEX0VOQUJMRShQT1JUX1RDMSkgfAo+ID4gPiA+ ID4gPiA+ICsJCcKgwqDCoElDUF9UQ19IUERfRU5BQkxFKFBPUlRfVEMyKSB8Cj4gPiA+ID4gPiA+ ID4gKwkJwqDCoMKgSUNQX1RDX0hQRF9FTkFCTEUoUE9SVF9UQzMpIHwKPiA+ID4gPiA+ID4gPiAr CQnCoMKgwqBJQ1BfVENfSFBEX0VOQUJMRShQT1JUX1RDNCk7Cj4gPiA+ID4gPiA+ID4gKwlJOTE1 X1dSSVRFKFNIT1RQTFVHX0NUTF9UQywgaG90cGx1Zyk7Cj4gPiA+ID4gPiA+ID4gK30KPiA+ID4g PiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gK3N0YXRpYyB2b2lkIGljcF9ocGRfaXJxX3NldHVwKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gPiA+ID4gPiA+ID4gKmRldl9wcml2KQo+ID4gPiA+ID4g PiA+ICt7Cj4gPiA+ID4gPiA+ID4gKwl1MzIgaG90cGx1Z19pcnFzLCBlbmFibGVkX2lycXM7Cj4g PiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ICsJaG90cGx1Z19pcnFzID0gSUNQX1NERV9ERElf TUFTSyB8IElDUF9TREVfVENfTUFTSzsKPiA+ID4gPiA+ID4gPiArCWVuYWJsZWRfaXJxcyA9IGlu dGVsX2hwZF9lbmFibGVkX2lycXMoZGV2X3ByaXYsCj4gPiA+ID4gPiA+ID4gaHBkX2ljcCk7Cj4g PiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ICsJaWJ4X2Rpc3BsYXlfaW50ZXJydXB0X3VwZGF0 ZShkZXZfcHJpdiwKPiA+ID4gPiA+ID4gPiBob3RwbHVnX2lycXMsCj4gPiA+ID4gPiA+ID4gZW5h YmxlZF9pcnFzKTsKPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gKwlpY3BfaHBkX2RldGVj dGlvbl9zZXR1cChkZXZfcHJpdik7Cj4gPiA+ID4gPiA+ID4gK30KPiA+ID4gPiA+ID4gPiArCj4g PiA+ID4gPiA+ID4gwqBzdGF0aWMgdm9pZCBnZW4xMV9ocGRfZGV0ZWN0aW9uX3NldHVwKHN0cnVj dAo+ID4gPiA+ID4gPiA+IGRybV9pOTE1X3ByaXZhdGUKPiA+ID4gPiA+ID4gPiAqZGV2X3ByaXYp Cj4gPiA+ID4gPiA+ID4gwqB7Cj4gPiA+ID4gPiA+ID4gwqAJdTMyIGhvdHBsdWc7Cj4gPiA+ID4g PiA+ID4gQEAgLTM2OTAsNiArMzc5OSw5IEBAIHN0YXRpYyB2b2lkCj4gPiA+ID4gPiA+ID4gZ2Vu MTFfaHBkX2lycV9zZXR1cChzdHJ1Y3QKPiA+ID4gPiA+ID4gPiBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiA+ID4gPiA+ID4gPiDCoAlQT1NUSU5HX1JFQUQoR0VOMTFfREVfSFBEX0lNUik7 Cj4gPiA+ID4gPiA+ID4gwqAKPiA+ID4gPiA+ID4gPiDCoAlnZW4xMV9ocGRfZGV0ZWN0aW9uX3Nl dHVwKGRldl9wcml2KTsKPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gKwlpZiAoSEFTX1BD SF9JQ1AoZGV2X3ByaXYpKQo+ID4gPiA+ID4gPiA+ICsJCWljcF9ocGRfaXJxX3NldHVwKGRldl9w cml2KTsKPiA+ID4gPiA+ID4gPiDCoH0KPiA+ID4gPiA+ID4gPiDCoAo+ID4gPiA+ID4gPiA+IMKg c3RhdGljIHZvaWQgc3B0X2hwZF9kZXRlY3Rpb25fc2V0dXAoc3RydWN0Cj4gPiA+ID4gPiA+ID4g ZHJtX2k5MTVfcHJpdmF0ZQo+ID4gPiA+ID4gPiA+ICpkZXZfcHJpdikKPiA+ID4gPiA+ID4gPiBA QCAtNDEyMSwxMSArNDIzMywyOSBAQCBzdGF0aWMgdm9pZAo+ID4gPiA+ID4gPiA+IGdlbjExX2d0 X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QKPiA+ID4gPiA+ID4gPiBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiA+ID4gPiA+ID4gPiDCoAlJOTE1X1dSSVRFKEdFTjExX0dQTV9XR0JPWFBFUkZf SU5UUl9NQVNLLMKgwqB+MCk7Cj4gPiA+ID4gPiA+ID4gwqB9Cj4gPiA+ID4gPiA+ID4gwqAKPiA+ ID4gPiA+ID4gPiArc3RhdGljIHZvaWQgaWNwX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+ID4gPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiA+ID4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPiA+ID4gPiA+ID4gKwl1MzIg bWFzayA9IElDUF9HTUJVUzsKPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gKwlXQVJOX09O KEk5MTVfUkVBRChJQ1BfU0RFX0lFUikgIT0gMCk7Cj4gPiA+ID4gPiA+ID4gKwlJOTE1X1dSSVRF KElDUF9TREVfSUVSLCAweGZmZmZmZmZmKTsKPiA+ID4gPiA+ID4gPiArCVBPU1RJTkdfUkVBRChJ Q1BfU0RFX0lFUik7Cj4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ICsJZ2VuM19hc3NlcnRf aWlyX2lzX3plcm8oZGV2X3ByaXYsIElDUF9TREVfSUlSKTsKPiA+ID4gPiA+ID4gPiArCUk5MTVf V1JJVEUoSUNQX1NERV9JTVIsIH5tYXNrKTsKPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4g KwlpY3BfaHBkX2RldGVjdGlvbl9zZXR1cChkZXZfcHJpdik7Cj4gPiA+ID4gPiA+ID4gK30KPiA+ ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gwqBzdGF0aWMgaW50IGdlbjExX2lycV9wb3N0aW5z dGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gPiA+ID4gPiA+IMKgewo+ID4gPiA+ID4g PiA+IMKgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0KPiA+ID4gPiA+ ID4gPiA+ZGV2X3ByaXZhdGU7Cj4gPiA+ID4gPiA+ID4gwqAJdTMyIGd1X21pc2NfbWFza2VkID0g R0VOMTFfR1VfTUlTQ19HU0U7Cj4gPiA+ID4gPiA+ID4gwqAKPiA+ID4gPiA+ID4gPiArCWlmIChI QVNfUENIX0lDUChkZXZfcHJpdikpCj4gPiA+ID4gPiA+ID4gKwkJaWNwX2lycV9wb3N0aW5zdGFs bChkZXYpOwo+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiDCoAlnZW4xMV9ndF9pcnFfcG9z dGluc3RhbGwoZGV2X3ByaXYpOwo+ID4gPiA+ID4gPiA+IMKgCWdlbjhfZGVfaXJxX3Bvc3RpbnN0 YWxsKGRldl9wcml2KTsKPiA+ID4gPiA+ID4gPiDCoAo+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiA+ID4gPiA+ID4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiA+ID4gPiA+ID4gaW5kZXggMTk2MDAwOTc1ODFm Li4yOGNlOTZjZTA0ODQgMTAwNjQ0Cj4gPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZWcuaAo+ID4gPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVnLmgKPiA+ID4gPiA+ID4gPiBAQCAtNzQ2MCw2ICs3NDYwLDQ2IEBAIGVudW0gewo+ ID4gPiA+ID4gPiA+IMKgI2RlZmluZcKgwqBQT1JURV9IT1RQTFVHX1NIT1JUX0RFVEVDVAkoMSA8 PCAwKQo+ID4gPiA+ID4gPiA+IMKgI2RlZmluZcKgwqBQT1JURV9IT1RQTFVHX0xPTkdfREVURUNU CSgyIDw8IDApCj4gPiA+ID4gPiA+ID4gwqAKPiA+ID4gPiA+ID4gPiArLyogSUNQICovCj4gPiA+ ID4gPiA+ID4gKyNkZWZpbmUgSUNQX1NERV9JU1IJCQlfTU1JTygweGM0MDAwKQo+ID4gPiA+ID4g PiA+ICsjZGVmaW5lIElDUF9TREVfSU1SCQkJX01NSU8oMHhjNDAwNCkKPiA+ID4gPiA+ID4gPiAr I2RlZmluZSBJQ1BfU0RFX0lJUgkJCV9NTUlPKDB4YzQwMDgpCj4gPiA+ID4gPiA+ID4gKyNkZWZp bmUgSUNQX1NERV9JRVIJCQlfTU1JTygweGM0MDBjKQo+ID4gPiA+ID4gPiBUaGVzZSBhcmUgZXhh Y3RseSB0aGUgc2FtZSByZWdpc3RlcnMgYXMgU0RFe0lTUixJTVIsSUlSLElFUn0uCj4gPiA+ID4g PiA+IEZvciBhbGwKPiA+ID4gPiA+ID4gdGhlIG90aGVyIHBsYXRmb3JtcyB3aGF0IHdlIGRvIGlz IHJhdGhlciBwb3N0Zml4IHRoZSBwbGF0Zm9ybQo+ID4gPiA+ID4gPiBuYW1lLgo+ID4gPiA+ID4g PiAKPiA+ID4gPiA+ID4gSSB0aGluayB3ZSBzaG91bGQgZm9sbG93IHdoYXQgdGhleSBkbyBoZXJl Lgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4g Cj4gPiA+ID4gPiA+ID4gKyNkZWZpbmXCoMKgwqBJQ1BfVEM0X0hPVFBMVUcJCSgxIDw8IDI3KQo+ ID4gPiA+ID4gPiA+ICsjZGVmaW5lwqDCoMKgSUNQX1RDM19IT1RQTFVHCQkoMSA8PCAyNikKPiA+ ID4gPiA+ID4gPiArI2RlZmluZcKgwqDCoElDUF9UQzJfSE9UUExVRwkJKDEgPDwgMjUpCj4gPiA+ ID4gPiA+ID4gKyNkZWZpbmXCoMKgwqBJQ1BfVEMxX0hPVFBMVUcJCSgxIDw8IDI0KQo+ID4gPiA+ ID4gPiA+ICsjZGVmaW5lwqDCoMKgSUNQX0dNQlVTCQkJKDEgPDwgMjMpCj4gPiA+ID4gPiA+ID4g KyNkZWZpbmXCoMKgwqBJQ1BfRERJQl9IT1RQTFVHCQkoMSA8PCAxNykKPiA+ID4gPiA+ID4gPiAr I2RlZmluZcKgwqDCoElDUF9ERElBX0hPVFBMVUcJCSgxIDw8IDE2KQo+ID4gPiA+ID4gPiBzbyB0 aGVzZSB3b3VsZCBiZWNvbWUgU0RFX1RDNF9IT1RQTFVHX0lDUCBhbmQgc28gb24uCj4gPiA+ID4g PiA+IAo+ID4gPiA+ID4gVGhlIHJlYXNvbiBJIHByZWZlcnJlZCB0aGlzIG5hbWluZyBmb3IgZ2Vu LTExIGlzIGl0IGlzCj4gPiA+ID4gPiBzeW1tZXRyaWMgdG8gdGhlCj4gPiA+ID4gPiBjb3JyZXNw b25kaW5nIGRlZmluaXRpb25zIGluIHRoZSBub3J0aCBlbmdpbmUuCj4gPiA+ID4gPiAKPiA+ID4g PiA+IEZvciBleGFtcGxlLAo+ID4gPiA+ID4gKyNkZWZpbmUgR0VOMTFfREVfSFBEX0lTUsKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoF9NTUlPKDB4NDQ0NzApCj4gPiA+ID4gPiArI2RlZmlu ZSBHRU4xMV9ERV9IUERfSU1SwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgX01NSU8oMHg0 NDQ3NCkKPiA+ID4gPiA+ICsjZGVmaW5lIEdFTjExX0RFX0hQRF9JSVLCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBfTU1JTygweDQ0NDc4KQo+ID4gPiA+ID4gKyNkZWZpbmUgR0VOMTFfREVf SFBEX0lFUsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoF9NTUlPKDB4NDQ0N2MpCj4gPiA+ ID4gPiArI2RlZmluZcKgwqBHRU4xMV9UQzRfSE9UUExVR8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCgxIDw8IDE5KQo+ID4gPiA+ID4gKyNkZWZpbmXCoMKgR0VOMTFf VEMzX0hPVFBMVUfCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAoMSA8 PCAxOCkKPiA+ID4gPiA+ICsjZGVmaW5lwqDCoEdFTjExX1RDMl9IT1RQTFVHwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKDEgPDwgMTcpCj4gPiA+ID4gPiArI2RlZmlu ZcKgwqBHRU4xMV9UQzFfSE9UUExVR8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCgxIDw8IDE2KQoKSSBzZWUgdGhhdCBjaGFuZ2luZyBJQ1BfVEM0X0hPVFBMVUcgdG8g U0RFX1RDNF9IT1RQTFVHX0lDUCB3aWxsIGFsaWduIGl0IHdpdGggcmVzdApvZiBwbGF0Zm9ybS4g bG9va2luZyBhdCBCU3BlYyB0aG91Z2ggdGhlIGJpdGZpZWxkIGlzIG5hbWVkICJIb3RwbHVnIFR5 cGVDIFBvcnQgbiIuCkZvbGxvd2luZyB0aGF0IG1heWJlIFNERV9IT1RQTFVHX1RDNF9JQ1AgIHdp bGwgYmUgYSBnb29kIG9wdGlvbi4KVGhpcyB3aWxsIGJyZWFrIHRoZSBzeW1tZXRyeSB3aXRoIHRo ZSByZWdpc3RlcnMgaW4gbm9ydGggZGlzcGxheSB0aG91Z2guLi4uCgoKPiA+ID4gPiA+IFdpdGgg aW50ZXJydXB0cyBnZXR0aW5nIHJvdXRlZCB0byBub3J0aCBvciBzb3V0aCBlbmdpbmVzIGZvcgo+ ID4gPiA+ID4gdGhlIHNhbWUKPiA+ID4gPiA+IHBvcnQsIHRoaXMgbmFtaW5nIHNjaGVtZSBtYWtl cyB0aGUgZHVhbGl0eSBjbGVhcmVyIElNTy4KPiA+ID4gPiBTdGlsbCB0aGUgcmVnaXN0ZXIgaXMg dGhlIHNhbWUgYXMgU0RFSVNSIGFuZCB0aGVyZSBhcmUgcGxhY2VzIGluCj4gPiA+ID4gd2hpY2gg d2UKPiA+ID4gPiByZWFkIGl0IGV4cGVjdGluZyB0byBiZSB0aGUgc2FtZSBudW1iZXIuCj4gPiA+ ID4gCj4gPiA+ID4gT25seSB0aGUgYml0cyBhcmUgZGlmZmVyZW50LCBzbyBuYW1lIHRoZSBiaXRz IGRpZmZlcmVudGx5IGFzIGl0Cj4gPiA+ID4gaXMgZm9yCj4gPiA+ID4gb3RoZXIgcGxhdGZvcm1z LsKgwqBJIHRoaW5rIG9mIHRoZSBzeW1tZXRyeSBoZXJlIGp1c3QgYW5kIGFjY2lkZW50Cj4gPiA+ ID4gb2YKPiA+ID4gPiBsaWZlIGV4cGVjdGluZyB0byBiZSBkaWZmZXJlbnQgaWYgbm9ydGggYW5k IHNvdXRoIGVuZ2luZXMgZG9uJ3QKPiA+ID4gPiBoYXZlIHRoZQo+ID4gPiA+IHNhbWUgcG9ydHMu Cj4gPiA+IFRoaXMgaXMgb24gZ2VuOF9kZV9pcnFfaGFuZGxlcigpIHdoaWNoIGlzIHN0aWxsIHVz ZWQgZm9yIGdlbjExLgoKPiA+ID4gTHVjYXMgRGUgTWFyY2hpCj4gPiA+IAo+ID4gPiA+IAo+ID4g PiA+IAo+ID4gPiA+IEx1Y2FzIERlIE1hcmNoaQo+ID4gPiA+IAo+ID4gPiA+ID4gCj4gPiA+ID4g PiAKPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiAK PiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gKyNkZWZpbmUgSUNQX1NERV9ERElfTUFTSwkJ KElDUF9ERElCX0hPVFBMVUcKPiA+ID4gPiA+ID4gPiB8CQo+ID4gPiA+ID4gPiA+IFwKPiA+ID4g PiA+ID4gPiArCQkJCQnCoElDUF9ERElBX0hPVFBMVUcpCj4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ ID4gPiA+ICsjZGVmaW5lIElDUF9TREVfVENfTUFTSwkJCShJQ1BfVEM0X0hPCj4gPiA+ID4gPiA+ ID4gVFBMVUcgfAkKPiA+ID4gPiA+ID4gPiBcCj4gPiA+ID4gPiA+ID4gKwkJCQkJwqBJQ1BfVEMz X0hPVFBMVUcgfAo+ID4gPiA+ID4gPiA+IAkKPiA+ID4gPiA+ID4gPiBcCj4gPiA+ID4gPiA+ID4g KwkJCQkJwqBJQ1BfVEMyX0hPVFBMVUcgfAo+ID4gPiA+ID4gPiA+IAkKPiA+ID4gPiA+ID4gPiBc Cj4gPiA+ID4gPiA+ID4gKwkJCQkJwqBJQ1BfVEMxX0hPVFBMVUcpCj4gPiA+ID4gPiA+ID4gKwo+ ID4gPiA+ID4gPiA+ICsjZGVmaW5lIFNIT1RQTFVHX0NUTF9EREkJCQlfTU1JTygweGM0Cj4gPiA+ ID4gPiA+ID4gMDMwKQkKPiA+ID4gPiA+ID4gPiAvKiBTSE9UUExVR19DVEwgKi8KPiA+ID4gPiA+ ID4gVGhpcyBhbHNvIHNlZW1zIHRvIHJldXNlIHdoYXQgd2UgaGF2ZSBkZWZpbmVkIGFzCj4gPiA+ ID4gPiA+IFBDSF9QT1JUX0hPVFBMVUcKPiA+ID4gPiA+ID4gd2l0aCBhCj4gPiA+ID4gPiA+IGNv bW1lbnQgdG8gU0hPVFBMVUdfQ1RMIHRoZXJlLCBhbHRob3VnaCBoZXJlIEkgdGVuZCB0byBiZSBp bgo+ID4gPiA+ID4gPiBmYXZvciBvZgo+ID4gPiA+ID4gPiB1c2luZyB0aGUgY3VycmVudCByZWFs IG5hbWUgb2YgdGhlIHJlZ2lzdGVyIChTSE9UUExVR19DVEwpLgo+ID4gPiA+ID4gVGhlIHJlYWwg bmFtZSBJIHNlZSBpcyBTSE9UUExVR19DVExfRERJIGZvciBJQ1AuClRoYXQgaXMgY29ycmVjdC4K IAo+ID4gPiA+ID4gSSBkb24ndCBiZWxpZXZlIHdlIHNob3VsZCBhdHRlbXB0IHRvIG1ha2UgdGhl c2UgZGVmaW5pdGlvbnMKPiA+ID4gPiA+IGNvbnNpc3RlbnQKPiA+ID4gPiA+IHdpdGggcHJldmlv dXMgcGxhdGZvcm1zIG92ZXIgbWFraW5nIHRoZW0gY29uc2lzdGVudCB3aXRoIGVhY2gKPiA+ID4g PiA+IG90aGVyLgo+ID4gPiA+ID4gwqAKPiBJZiB5b3Ugd2FudCB0byByZXRhaW4gdGhlIG9yaWdp bmFsIGRlZmluaXRpb24gUENIX0hPVFBMVUcsIGFwcGVuZGluZyB0bwo+IHRoZSBleGlzdGluZyBj b21tZW50IHRoYXQgdGhlIHJlZ2lzdGVyIGlzIGNhbGxlZCBTSE9UUExVR19DVExfRERJIG9uCj4g SUNQIHdvdWxkIGJlIG5pY2UuCgpTbyBoYXZlIHRoZSBQQ0hfSE9UUExVRyBkZWZpbmUgYW5kIHRo ZSBuZXcgU0hPVFBMVUdfQ1RMX0RESSB3aXRoIGNvbW1lbnQKYWRkcmVzc2luZyB0aGF0IHRoZXkg YXJlIHRoZSBzYW1lIHJlZ2lzdGVycyBidXQga2VlcGluZyB0aGUgbmFtZSBjb25zaXN0ZW50IHdp dGggQlNwZWMKc2hvdWxkIHN1ZmZpY2U/CgpUaGFua3MsCkFudXNoYSAKIApfXyBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5n IGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApBbnVzaGEgU3Jp dmF0c2EKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==