From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Singh, Gaurav K" Subject: Re: [RFC CABC PATCH v2 3/3] drm/i915: CABC support for backlight control Date: Wed, 05 Aug 2015 13:20:31 +0530 Message-ID: <55C1C047.9000304@intel.com> References: <20150706125106.GZ2156@phenom.ffwll.local> <1437740649-9168-1-git-send-email-m.deepak@intel.com> <55BA00F7.8000606@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id B55ED6E6B0 for ; Wed, 5 Aug 2015 00:50:42 -0700 (PDT) In-Reply-To: <55BA00F7.8000606@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Deepak M , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiA3LzMwLzIwMTUgNDoxOCBQTSwgU2luZ2gsIEdhdXJhdiBLIHdyb3RlOgo+Cj4KPiBPbiA3 LzI0LzIwMTUgNTo1NCBQTSwgRGVlcGFrIE0gd3JvdGU6Cj4+IEluIENBQkMgKENvbnRlbnQgQWRh cHRpdmUgQnJpZ2h0bmVzcyBDb250cm9sKSBjb250ZW50IGdyZXkgbGV2ZWwKPj4gc2NhbGUgY2Fu IGJlIGluY3JlYXNlZCB3aGlsZSBzaW11bHRhbmVvdXNseSBkZWNyZWFzaW5nCj4+IGJyaWdodG5l c3Mgb2YgdGhlIGJhY2tsaWdodCB0byBhY2hpZXZlIHNhbWUgcGVyY2VpdmVkIGJyaWdodG5lc3Mu Cj4+Cj4+IFRoZSBDQUJDIGlzIG5vdCBzdGFuZGFyZGl6ZWQgYW5kIHBhbmVsIHZlbmRvcnMgYXJl IGZyZWUgdG8gZm9sbG93Cj4+IHRoZWlyIGltcGxlbWVudGF0aW9uLiBUaGUgQ0FCQyBpbXBsZW1l bnRhaW9uIGhlcmUgYXNzdW1lcyB0aGF0IHRoZQo+PiBwYW5lbHMgdXNlIHN0YW5kYXJkIFNXIHJl Z2lzdGVyIGZvciBjb250cm9sLgo+Pgo+PiBJbiB0aGlzIGRlc2lnbiB0aGVyZSB3aWxsIGJlIG5v IFBXTSBzaWduYWwgZnJvbSB0aGUgU29DIGFuZCBEQ1MKPj4gY29tbWFuZHMgYXJlIHNlbnQgdG8g ZW5hYmxlIGFuZCBjb250cm9sIHRoZSBiYWNrbGlnaHQgYnJpZ2h0bmVzcy4KPj4KPj4gdjI6Cj4+ IC0gQ3JlYXRlZCBhIG5ldyBiYWNrbGlnaHQgZHJpdmVyIGZvciBjYWJjLCB3aGljaCB3aWxsIGJl IHJlZ2lzdGVyZWQKPj4gICAgb25seSB3aGVuIGl0IGNhYmMgaXMgc3VwcG9ydGVkIGJ5IHBhbmVs Lgo+PiAgICAoQWRkcmVzc2VkIGNvbW1lbnQgZnJvbSBEYW5pZWwgVmV0dGVyKQo+Pgo+PiBTaWdu ZWQtb2ZmLWJ5OiBEZWVwYWsgTSA8bS5kZWVwYWtAaW50ZWwuY29tPgo+PiAtLS0KPj4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICAgIHwgICAgMSArCj4+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICB8ICAgIDMgKy0KPj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kc2kuYyAgICAgIHwgICAxMyArKwo+PiAgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RzaV9jYWJjLmMgfCAgMzQ5IAo+PiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY2FiYy5oIHwgICA0 NSArKysrKwo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgICAgfCAgIDIy ICsrLQo+PiAgIGluY2x1ZGUvdmlkZW8vbWlwaV9kaXNwbGF5LmggICAgICAgICAgfCAgICA4ICsK Pj4gICA3IGZpbGVzIGNoYW5nZWQsIDQzNiBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQo+ PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY2Fi Yy5jCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rz aV9jYWJjLmgKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxl IAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4+IGluZGV4IGRlMjE5NjUuLmE3 Mzk1M2MgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4+IEBAIC03NSw2ICs3NSw3IEBAIGk5 MTUteSArPSBkdm9fY2g3MDE3Lm8gXAo+PiAgICAgICAgIGludGVsX2RwX21zdC5vIFwKPj4gICAg ICAgICBpbnRlbF9kc2kubyBcCj4+ICAgICAgICAgaW50ZWxfZHNpX3BsbC5vIFwKPj4gKyAgICAg IGludGVsX2RzaV9jYWJjLm8gXAo+PiAgICAgICAgIGludGVsX2RzaV9wYW5lbF92YnQubyBcCj4+ ICAgICAgICAgaW50ZWxfZHZvLm8gXAo+PiAgICAgICAgIGludGVsX2hkbWkubyBcCj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAKPj4gYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiBpbmRleCAzZjBhODkwLi45ZjgwNmRkNSAxMDA2NDQK Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4gQEAgLTEzMTksNyArMTMxOSw4IEBAIGV4dGVy biBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAKPj4gKmludGVsX2ZpbmRfcGFuZWxfZG93bmNsb2Nr KAo+PiAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsK Pj4gICB2b2lkIGludGVsX2JhY2tsaWdodF9yZWdpc3RlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KTsKPj4gICB2b2lkIGludGVsX2JhY2tsaWdodF91bnJlZ2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpOwo+PiAtCj4+ICtleHRlcm4gaW50IGNhYmNfYmFja2xpZ2h0X2RldmljZV9yZWdpc3Rl cihzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yIAo+PiAqY29ubmVjdG9yKTsKPj4gK2V4dGVybiB2b2lk IGNhYmNfYmFja2xpZ2h0X2RldmljZV91bnJlZ2lzdGVyKHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig Cj4+ICpjb25uZWN0b3IpOwo+PiAgICAgLyogaW50ZWxfcHNyLmMgKi8KPj4gICB2b2lkIGludGVs X3Bzcl9lbmFibGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kc2kuYwo+PiBpbmRleCA5ODk5OGU5Li44ZjAwNmYyIDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kc2kuYwo+PiBAQCAtMzQsNiArMzQsNyBAQAo+PiAgICNpbmNsdWRlICJpOTE1 X2Rydi5oIgo+PiAgICNpbmNsdWRlICJpbnRlbF9kcnYuaCIKPj4gICAjaW5jbHVkZSAiaW50ZWxf ZHNpLmgiCj4+ICsjaW5jbHVkZSAiaW50ZWxfZHNpX2NhYmMuaCIKPj4gICAgIHN0YXRpYyBjb25z dCBzdHJ1Y3Qgewo+PiAgICAgICB1MTYgcGFuZWxfaWQ7Cj4+IEBAIC0zNzYsNiArMzc3LDcgQEAg c3RhdGljIHZvaWQgaW50ZWxfZHNpX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAKPj4gKmVu Y29kZXIpCj4+ICAgICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRl djsKPj4gICAgICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKPj4gICAgICAgc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2lu dGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4+ICsgICAgc3RydWN0IGludGVsX2Nvbm5lY3RvciAq Y29ubmVjdG9yID0gaW50ZWxfZHNpLT5hdHRhY2hlZF9jb25uZWN0b3I7Cj4+ICAgICAgIGVudW0g cG9ydCBwb3J0Owo+PiAgICAgICAgIERSTV9ERUJVR19LTVMoIlxuIik7Cj4+IEBAIC0zOTYsNiAr Mzk4LDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAKPj4gKmVuY29kZXIpCj4+ICAgICAgICAgICAgIGludGVsX2RzaV9wb3J0X2VuYWJsZShlbmNv ZGVyKTsKPj4gICAgICAgfQo+PiArCj4+ICsgICAgaWYgKGRldl9wcml2LT52YnQuZHNpLmNvbmZp Zy0+Y2FiY19zdXBwb3J0ZWQpCj4+ICsgICAgICAgIGNhYmNfZW5hYmxlX2JhY2tsaWdodChjb25u ZWN0b3IpOwo+PiAgIH0KPj4gICAgIHN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVfZW5hYmxlKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+PiBAQCAtNDY5LDExICs0NzQsMTUgQEAgc3Rh dGljIHZvaWQgaW50ZWxfZHNpX2Rpc2FibGUoc3RydWN0IAo+PiBpbnRlbF9lbmNvZGVyICplbmNv ZGVyKQo+PiAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7 Cj4+ICAgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3By aXZhdGU7Cj4+ICAgICAgIHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRl bF9kc2koJmVuY29kZXItPmJhc2UpOwo+PiArICAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNv bm5lY3RvciA9IGludGVsX2RzaS0+YXR0YWNoZWRfY29ubmVjdG9yOwo+PiAgICAgICBlbnVtIHBv cnQgcG9ydDsKPj4gICAgICAgdTMyIHRlbXA7Cj4+ICAgICAgICAgRFJNX0RFQlVHX0tNUygiXG4i KTsKPj4gICArICAgIGlmIChkZXZfcHJpdi0+dmJ0LmRzaS5jb25maWctPmNhYmNfc3VwcG9ydGVk KQo+PiArICAgICAgICBjYWJjX2Rpc2FibGVfYmFja2xpZ2h0KGNvbm5lY3Rvcik7Cj4+ICsKPj4g ICAgICAgaWYgKGlzX3ZpZF9tb2RlKGludGVsX2RzaSkpIHsKPj4gICAgICAgICAgIGZvcl9lYWNo X2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpCj4+ICAgICAgICAgICAgICAgd2FpdF9m b3JfZHNpX2ZpZm9fZW1wdHkoaW50ZWxfZHNpLCBwb3J0KTsKPj4gQEAgLTEwOTksNiArMTEwOCwx MCBAQCB2b2lkIGludGVsX2RzaV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICAgICAg ICAgaW50ZWxfcGFuZWxfaW5pdCgmaW50ZWxfY29ubmVjdG9yLT5wYW5lbCwgZml4ZWRfbW9kZSwg TlVMTCk7Cj4+ICAgKyAgICBpZiAoZGV2X3ByaXYtPnZidC5kc2kuY29uZmlnLT5jYWJjX3N1cHBv cnRlZCkKPj4gKyAgICAgICAgY2FiY19zZXR1cF9iYWNrbGlnaHQoY29ubmVjdG9yLAo+PiArICAg ICAgICAgICAgaW50ZWxfZW5jb2Rlci0+Y3J0Y19tYXNrID09Cj4+ICsgICAgICAgICAgICAgICAg KDEgPDwgUElQRV9BKSA/IFBJUEVfQSA6IFBJUEVfQik7Cj4+ICAgICAgIHJldHVybjsKPj4gICAg IGVycjoKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9jYWJj LmMgCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX2NhYmMuYwo+PiBuZXcgZmls ZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwLi4yYTc4MzI2Cj4+IC0tLSAvZGV2L251bGwK Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX2NhYmMuYwo+PiBAQCAtMCww ICsxLDM0OSBAQAo+PiArLyoKPj4gKyAqIENvcHlyaWdodCDCqSAyMDA2LTIwMTAgSW50ZWwgQ29y cG9yYXRpb24KPj4gKyAqCj4+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVl IG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiAKPj4gb2J0YWluaW5nIGEKPj4gKyAqIGNvcHkgb2Yg dGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgCj4+ ICJTb2Z0d2FyZSIpLAo+PiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0 cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgCj4+IGxpbWl0YXRpb24KPj4gKyAqIHRoZSByaWdo dHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCAKPj4g c3VibGljZW5zZSwKPj4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFu ZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIAo+PiB0aGUKPj4gKyAqIFNvZnR3YXJlIGlzIGZ1 cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4+ ICsgKgo+PiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv biBub3RpY2UgKGluY2x1ZGluZyAKPj4gdGhlIG5leHQKPj4gKyAqIHBhcmFncmFwaCkgc2hhbGwg YmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCAKPj4gcG9ydGlvbnMgb2Yg dGhlCj4+ICsgKiBTb2Z0d2FyZS4KPj4gKyAqCj4+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklE RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgCj4+IEVYUFJFU1MgT1IK Pj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJ RVMgT0YgCj4+IE1FUkNIQU5UQUJJTElUWSwKPj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyAKPj4gRVZFTlQgU0hBTEwKPj4g KyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENM QUlNLCBEQU1BR0VTIAo+PiBPUiBPVEhFUgo+PiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFO IEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIAo+PiBBUklTSU5HCj4+ICsg KiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUg VVNFIE9SIE9USEVSCj4+ICsgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4+ICsgKgo+PiAr ICovCj4+ICsKPj4gKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KPj4gKyNpbmNsdWRlIDxsaW51 eC9tb2R1bGVwYXJhbS5oPgo+PiArI2luY2x1ZGUgImludGVsX2Rydi5oIgo+PiArI2luY2x1ZGUg ImludGVsX2RzaS5oIgo+PiArI2luY2x1ZGUgImk5MTVfZHJ2LmgiCj4+ICsjaW5jbHVkZSAiaW50 ZWxfZHNpX2NhYmMuaCIKPj4gKyNpbmNsdWRlIDx2aWRlby9taXBpX2Rpc3BsYXkuaD4KPj4gKyNp bmNsdWRlIDxkcm0vZHJtX21pcGlfZHNpLmg+Cj4+ICsKPj4gK2ludCBjYWJjX3NldHVwX2JhY2ts aWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4+ICsgICAgICAgIGVudW0g cGlwZSB1bnVzZWQpCj4+ICt7Cj4+ICsgICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5l Y3Rvci0+YmFzZS5kZXY7Cj4+ICsgICAgc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gTlVM TDsKPj4gKyAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBOVUxMOwo+PiArICAgIHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyID0gTlVMTDsKPj4gKyAgICBzdHJ1Y3QgaW50ZWxfcGFuZWwg KnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7Cj4+ICsgICAgc3RydWN0IG1pcGlfZHNpX2Rldmlj ZSAqZHNpX2RldmljZTsKPj4gKyAgICB1OCBsZXZlbDsKPj4gKwo+PiArICAgIGxpc3RfZm9yX2Vh Y2hfZW50cnkoY3J0YywgJmRldi0+bW9kZV9jb25maWcuY3J0Y19saXN0LCBoZWFkKSB7Cj4+ICsg ICAgICAgIGZvcl9lYWNoX2VuY29kZXJfb25fY3J0YyhkZXYsIGNydGMsIGVuY29kZXIpIHsKPj4g KyAgICAgICAgICAgIGlmIChlbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9EU0kpCj4+ICsg ICAgICAgICAgICAgICAgaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFz ZSk7Cj4+ICsgICAgICAgIH0KPj4gKyAgICB9Cj4+ICsgICAgZHNpX2RldmljZSA9IGludGVsX2Rz aS0+ZHNpX2hvc3RzWzBdLT5kZXZpY2U7Cj4gVGhpcyB3aWxsIHdvcmsgb25seSBmb3IgTUlQSSBQ b3J0IEEgbm90IGZvciBNSVBJIFBvcnQgQy4gVXNlIAo+IGZvcl9lYWNoX2RzaV9wb3J0IG1hY3Jv IGFuZCBpbnRlbF9kc2ktPmRzaV9ob3N0c1twb3J0XSB0byBjb3JyZWN0bHkgCj4gcmVhY2ggdG8g bWlwaV9kc2lfZGV2aWNlIGZvciBib3RoIHBvcnRzLiBJZiBpdCBpcyBkdWFsIGxpbmssIGJyZWFr IAo+IGFmdGVyIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBmaXJzdCBpdGVyYXRpb24uCj4+ICsgICAg cGFuZWwtPmJhY2tsaWdodC5tYXggPSBDQUJDX01BWF9WQUxVRTsKPj4gKyAgICBwYW5lbC0+YmFj a2xpZ2h0LmxldmVsID0gQ0FCQ19NQVhfVkFMVUU7Cj4+ICsgICAgbGV2ZWwgPSBDQUJDX01BWF9W QUxVRTsKPj4gKyAgICBwYW5lbC0+YmFja2xpZ2h0LmVuYWJsZWQgPSB0cnVlOwo+PiArICAgIHJl dHVybiAwOwo+PiArfQo+PiArCj4+ICt1MzIgY2FiY19nZXRfYmFja2xpZ2h0KHN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPj4gK3sKPj4gKyAgICBzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKPj4gKyAgICBzdHJ1Y3QgaW50ZWxfZHNpICppbnRl bF9kc2kgPSBOVUxMOwo+PiArICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IE5VTEw7Cj4+ICsg ICAgc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSBOVUxMOwo+PiArICAgIHN0cnVjdCBt aXBpX2RzaV9kZXZpY2UgKmRzaV9kZXZpY2U7Cj4+ICsgICAgc3RydWN0IGludGVsX3BhbmVsICpw YW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOwo+PiArICAgIHU4IGRhdGFbMl0gPSB7MH07Cj4+ICsg ICAgZW51bSBwb3J0IHBvcnQgPSBQT1JUX0E7Cj4gd2lsbCBmYWlsIGZvciBzaW5nbGUgbGluayBN SVBJIFBvcnQgQy4KPj4gKyAgICB1MzIgcmV0Owo+PiArCj4+ICsgICAgbGlzdF9mb3JfZWFjaF9l bnRyeShjcnRjLCAmZGV2LT5tb2RlX2NvbmZpZy5jcnRjX2xpc3QsIGhlYWQpIHsKPj4gKyAgICAg ICAgZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2Rlcikgewo+PiArICAg ICAgICAgICAgaWYgKGVuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0RTSSkKPj4gKyAgICAg ICAgICAgICAgICBpbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsK Pj4gKyAgICAgICAgfQo+PiArICAgIH0KPj4gKyAgICBpZiAoaW50ZWxfZHNpLT5kdWFsX2xpbmsp IHsKPiBQdXQgdGhlIGJlbG93IG9yIHJlcXVpcmVkIGxvZ2ljIGludG8gc3RhdGljIGlubGluZSBm dW5jdGlvbiByZXR1cm5pbmcgCj4gZW51bSBwb3J0IC4KPj4gKyAgICAgICAgaWYgKGludGVsX2Rz aS0+ZGxfY2FiY19wb3J0ID09IENBQkNfUE9SVF9BIHx8Cj4+ICsgICAgICAgICAgICAgICAgaW50 ZWxfZHNpLT5kbF9jYWJjX3BvcnQgPT0gQ0FCQ19QT1JUX0FfQU5EX0MpCj4+ICsgICAgICAgICAg ICBwb3J0ID0gUE9SVF9BOwo+PiArICAgICAgICBlbHNlIGlmIChpbnRlbF9kc2ktPmRsX2NhYmNf cG9ydCA9PSBDQUJDX1BPUlRfQykKPj4gKyAgICAgICAgICAgIHBvcnQgPSBQT1JUX0M7Cj4+ICsg ICAgfQo+IFVzZSBmb3JfZWFjaF9kc2lfcG9ydCBtYWNybyBoZXJlIC4gY2FsbCB0aGUgIGlubGlu ZSBmdW5jdGlvbiB3aXRoaW4gCj4gZm9yX2VhY2hfZHNpX3BvcnQgbWFjcm8gdG8gZ2V0IHRoZSBy ZXF1aXJlZCBlbnVtIHBvcnQgZm9yIGR1YWwgbGluay4KPj4gKwo+PiArICAgIGRzaV9kZXZpY2Ug PSBpbnRlbF9kc2ktPmRzaV9ob3N0c1twb3J0XS0+ZGV2aWNlOwo+PiArICAgIG1pcGlfZHNpX2Rj c19yZWFkKGRzaV9kZXZpY2UsIE1JUElfRENTX0NBQkNfTEVWRUxfUkQsIGRhdGEsIDIpOwo+PiAr Cj4+ICsgICAgcmV0ID0gKGRhdGFbMV0gKiBwYW5lbC0+YmFja2xpZ2h0Lm1heCkgLyAyNTU7Cj4+ ICsgICAgcmV0dXJuIHJldDsKPj4gK30KPj4gKwo+PiArdm9pZCBjYWJjX3NldF9iYWNrbGlnaHQo c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgbGV2ZWwpCj4+ICt7Cj4+ICsg ICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4+ICsgICAg c3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gTlVMTDsKPj4gKyAgICBzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMgPSBOVUxMOwo+PiArICAgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0g TlVMTDsKPj4gKyAgICBzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2lfZGV2aWNlOwo+PiArICAg IHU4IGRhdGFbMl0gPSB7MH07Cj4+ICsgICAgZW51bSBwb3J0IHBvcnQgPSBQT1JUX0E7Cj4+ICsg ICAgc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOwo+PiArICAg IHU4IGNvdW50ID0gMTsKPj4gKyAgICB1MzIgaHdfbGV2ZWw7Cj4+ICsKPj4gKyAgICBsaXN0X2Zv cl9lYWNoX2VudHJ5KGNydGMsICZkZXYtPm1vZGVfY29uZmlnLmNydGNfbGlzdCwgaGVhZCkgewo+ PiArICAgICAgICBmb3JfZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKSB7 Cj4+ICsgICAgICAgICAgICBpZiAoZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRFNJKQo+ PiArICAgICAgICAgICAgICAgIGludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXIt PmJhc2UpOwo+PiArICAgICAgICB9Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgaWYgKGludGVsX2Rz aS0+ZHVhbF9saW5rKSB7Cj4gUHV0IHRoZSBiZWxvdyBsb2dpYyBpbnRvIHN0YXRpYyBpbmxpbmUg ZnVuY3Rpb24gcmV0dXJuaW5nIGVudW0gcG9ydCAuCj4+ICsgICAgICAgIGlmIChpbnRlbF9kc2kt PmRsX2NhYmNfcG9ydCA9PSBDQUJDX1BPUlRfQSkKPj4gKyAgICAgICAgICAgIHBvcnQgPSBQT1JU X0E7Cj4+ICsgICAgICAgIGVsc2UgaWYgKGludGVsX2RzaS0+ZGxfY2FiY19wb3J0ID09IENBQkNf UE9SVF9DKQo+PiArICAgICAgICAgICAgcG9ydCA9IFBPUlRfQzsKPj4gKyAgICAgICAgZWxzZSBp ZiAoaW50ZWxfZHNpLT5kbF9jYWJjX3BvcnQgPT0gQ0FCQ19QT1JUX0FfQU5EX0MpCj4+ICsgICAg ICAgICAgICBwb3J0ID0gUE9SVF9BOwo+PiArICAgIH0KPj4gKwo+IEJlbG93IHBhcnQgbm90IHJl cXVpcmVkLiB1c2UgZm9yX2VhY2hfZHNpX3BvcnQgbWFjcm8uCj4+ICsgICAgaWYgKGludGVsX2Rz aS0+ZHVhbF9saW5rICYmIGludGVsX2RzaS0+ZGxfY2FiY19wb3J0ID09Cj4+ICsgICAgICAgICAg ICBDQUJDX1BPUlRfQV9BTkRfQykKPj4gKyAgICAgICAgY291bnQgPSAyOwo+PiArCj4+ICsKPj4g KyAgICBod19sZXZlbCA9IGxldmVsICUgKHBhbmVsLT5iYWNrbGlnaHQubWF4ICsgMSk7Cj4+ICsg ICAgaHdfbGV2ZWwgPSAoaHdfbGV2ZWwgKiAyNTUpIC8gcGFuZWwtPmJhY2tsaWdodC5tYXg7Cj4+ ICsgICAgcGFuZWwtPmJhY2tsaWdodC5sZXZlbCA9IGh3X2xldmVsOwo+PiArCj4gVXNlIGZvcl9l YWNoX2RzaV9wb3J0IG1hY3JvIGFzIGV4cGxhaW5lZCBhYm92ZS4KPj4gKyAgICBkbyB7Cj4+ICsg ICAgICAgIGRzaV9kZXZpY2UgPSBpbnRlbF9kc2ktPmRzaV9ob3N0c1twb3J0XS0+ZGV2aWNlOwo+ PiArICAgICAgICBkYXRhWzFdID0gaHdfbGV2ZWw7Cj4+ICsgICAgICAgIGRhdGFbMF0gPSBNSVBJ X0RDU19DQUJDX0xFVkVMX1dSOwo+PiArICAgICAgICBtaXBpX2RzaV9kY3Nfd3JpdGVfYnVmZmVy KGRzaV9kZXZpY2UsIGRhdGEsIDIpOwo+PiArICAgICAgICBpZiAoY291bnQgPT0gMikKPj4gKyAg ICAgICAgICAgIHBvcnQgPSBQT1JUX0M7Cj4+ICsgICAgfSB3aGlsZSAoLS1jb3VudCA+IDApOwo+ PiArfQo+PiArCj4+ICt2b2lkIGNhYmNfZW5hYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IpCj4+ICt7Cj4+ICsgICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4+ICsgICAgc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNp ID0gTlVMTDsKPj4gKyAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBOVUxMOwo+PiArICAgIHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gTlVMTDsKPj4gKyAgICBzdHJ1Y3QgaW50ZWxf cGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7Cj4+ICsgICAgc3RydWN0IG1pcGlfZHNp X2RldmljZSAqZHNpX2RldmljZTsKPj4gKyAgICBlbnVtIHBvcnQgcG9ydCA9IFBPUlRfQTsKPiBX aWxsIGZhaWwgZm9yIHNpbmdsZSBsaW5rIFBvcnQgQwo+PiArICAgIHU4IGRhdGFbMl0gPSB7MH07 Cj4+ICsgICAgdTggY291bnQgPSAxOwo+PiArCj4+ICsgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShj cnRjLCAmZGV2LT5tb2RlX2NvbmZpZy5jcnRjX2xpc3QsIGhlYWQpIHsKPj4gKyAgICAgICAgZm9y X2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2Rlcikgewo+PiArICAgICAgICAg ICAgaWYgKGVuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0RTSSkKPj4gKyAgICAgICAgICAg ICAgICBpbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPj4gKyAg ICAgICAgfQo+PiArICAgIH0KPj4gKwo+PiArICAgIGlmIChpbnRlbF9kc2ktPmR1YWxfbGluaykg ewo+IFNhbWUgY29tbWVudCAuUHV0IHRoZSBiZWxvdyBsb2dpYyBpbnRvIHN0YXRpYyBpbmxpbmUg ZnVuY3Rpb24gCj4gcmV0dXJuaW5nIGVudW0gcG9ydCAuCj4+ICsgICAgICAgIGlmIChpbnRlbF9k c2ktPmRsX2NhYmNfcG9ydCA9PSBDQUJDX1BPUlRfQSkKPj4gKyAgICAgICAgICAgIHBvcnQgPSBQ T1JUX0E7Cj4+ICsgICAgICAgIGVsc2UgaWYgKGludGVsX2RzaS0+ZGxfY2FiY19wb3J0ID09IENB QkNfUE9SVF9DKQo+PiArICAgICAgICAgICAgcG9ydCA9IFBPUlRfQzsKPiBBbHNvIGJlbG93IGNv bmRpdGlvbiBuZWVkIG5vdCBiZSB0YWtlbiBpbnRvIHRoZSBpbmxpbmUgZnVuY3Rpb24uIFNpbmNl IAo+IGl0IGlzIGR1YWwgbGluayBhbmQgd2l0aCBvdGhlciBjb25kaXRpb25zIGFyZSBtZXQsIHRo ZW4gCj4gQ0FCQ19QT1JUX0FfQU5EX0Mgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHRha2VuIGNhcmUg Zm9yIGJvdGggcG9ydHMgYnkgCj4gdGhlIGZvcl9lYWNoX2RzaV9wb3J0IG1hY3JvLgo+IFdpdGhp biBmb3JfZWFjaF9kc2lfcG9ydCwganVzdCBjaGVjayBmb3IgaW50ZWxfZHNpLT5kbF9jYWJjX3Bv cnQgIT0gCj4gQ0FCQ19QT1JUX0FfQU5EX0MsIGlmIHllcyBjYWxsIHRoZSBpbmxpbmUgZnVuY3Rp b24gdG8gZ2V0IHRoZSBwb3J0IG5vIAo+IGFuZCBpZiBubywgYWxsIG90aGVyIGNvbmRpdGlvbnMg d2lsbCBiZSB0YWtlbiBjYXJlIGZvciBib3RoIHBvcnRzIGJ5IAo+IGZvcl9lYWNoX2RzaV9wb3J0 Lgo+IEJlZm9yZSB0aGUgZW5kIG9mIGZvcl9lYWNoX2RzaV9wb3J0ICx5b3UgbWF5IHJlcXVpcmUg dG8gY2hlY2sgdGhlIAo+IGludGVsX2RzaS0+ZGxfY2FiY19wb3J0ICE9IENBQkNfUE9SVF9BX0FO RF9DICwgc28gdGhhdCB5b3UgY2FuIHJldHVybiAKPiBmcm9tIHRoZSBtYWNyby4KPj4gKyAgICAg ICAgZWxzZSBpZiAoaW50ZWxfZHNpLT5kbF9jYWJjX3BvcnQgPT0gQ0FCQ19QT1JUX0FfQU5EX0Mp Cj4+ICsgICAgICAgICAgICBwb3J0ID0gUE9SVF9BOwo+PiArICAgIH0KPj4gKwo+PiArICAgIGlm IChpbnRlbF9kc2ktPmR1YWxfbGluayAmJiBpbnRlbF9kc2ktPmRsX2NhYmNfcG9ydCA9PQo+PiAr ICAgICAgICAgICAgQ0FCQ19QT1JUX0FfQU5EX0MpCj4+ICsgICAgICAgIGNvdW50ID0gMjsKPj4g Kwo+PiArICAgIGRvIHsKPiBzYW1lIGNvbW1lbnQgYXMgYWJvdmUuIFVzZSBmb3JfZWFjaF9kc2lf cG9ydAo+PiArICAgICAgICBkc2lfZGV2aWNlID0gaW50ZWxfZHNpLT5kc2lfaG9zdHNbcG9ydF0t PmRldmljZTsKPj4gKwo+PiArCj4+ICsgICAgICAgIGRhdGFbMF0gPSBNSVBJX0RDU19DQUJDX0NP TlRST0xfQlJJR0hUX1dSOwo+PiArICAgICAgICBkYXRhWzFdID0gQ0FCQ19CQUNLTElHSFQgfCBD QUJDX0RJTU1JTkdfRElTUExBWSB8IENBQkNfQkNUUkw7Cj4+ICsgICAgICAgIG1pcGlfZHNpX2Rj c193cml0ZV9idWZmZXIoZHNpX2RldmljZSwgZGF0YSwgMik7Cj4+ICsgICAgICAgIGRhdGFbMF0g PSBNSVBJX0RDU19DQUJDX0NPTlRST0xfV1I7Cj4+ICsgICAgICAgIGRhdGFbMV0gPSBDQUJDX1ZJ REVPX01PREU7Cj4+ICsgICAgICAgIG1pcGlfZHNpX2Rjc193cml0ZV9idWZmZXIoZHNpX2Rldmlj ZSwgZGF0YSwgMik7Cj4+ICsKPj4gKyAgICAgICAgaWYgKGNvdW50ID09IDIpCj4+ICsgICAgICAg ICAgICBwb3J0ID0gUE9SVF9DOwo+PiArICAgIH0gd2hpbGUgKC0tY291bnQgPiAwKTsKPj4gKwo+ PiArICAgIGNhYmNfc2V0X2JhY2tsaWdodChjb25uZWN0b3IsIHBhbmVsLT5iYWNrbGlnaHQubGV2 ZWwpOwo+PiArfQo+PiArCj4+ICt2b2lkIGNhYmNfZGlzYWJsZV9iYWNrbGlnaHQoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+PiArewo+PiArICAgIHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2Owo+PiArICAgIHN0cnVjdCBpbnRlbF9kc2kgKmlu dGVsX2RzaSA9IE5VTEw7Cj4+ICsgICAgc3RydWN0IGRybV9jcnRjICpjcnRjID0gTlVMTDsKPj4g KyAgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IE5VTEw7Cj4+ICsgICAgc3RydWN0 IG1pcGlfZHNpX2RldmljZSAqZHNpX2RldmljZTsKPj4gKyAgICBlbnVtIHBvcnQgcG9ydCA9IFBP UlRfQTsKPiBXaWxsIGZhaWwgZm9yIHNpbmdsZSBsaW5rIFBvcnQgQwo+PiArICAgIHU4IGRhdGFb Ml0gPSB7MH07Cj4+ICsgICAgdTggY291bnQgPSAxOwo+PiArCj4+ICsgICAgbGlzdF9mb3JfZWFj aF9lbnRyeShjcnRjLCAmZGV2LT5tb2RlX2NvbmZpZy5jcnRjX2xpc3QsIGhlYWQpIHsKPj4gKyAg ICAgICAgZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2Rlcikgewo+PiAr ICAgICAgICAgICAgaWYgKGVuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0RTSSkKPj4gKyAg ICAgICAgICAgICAgICBpbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNl KTsKPj4gKyAgICAgICAgfQo+PiArICAgIH0KPj4gKwo+PiArICAgIGlmIChpbnRlbF9kc2ktPmR1 YWxfbGluaykgewo+IFNhbWUgY29tbWVudCBhcyBhYm92ZS4gVXNlIHN0YXRpYyBpbmxpbmUgZnVu Y3Rpb24gZm9yIHRoaXMuCj4+ICsgICAgICAgIGlmIChpbnRlbF9kc2ktPmRsX2NhYmNfcG9ydCA9 PSBDQUJDX1BPUlRfQSkKPj4gKyAgICAgICAgICAgIHBvcnQgPSBQT1JUX0E7Cj4+ICsgICAgICAg IGVsc2UgaWYgKGludGVsX2RzaS0+ZGxfY2FiY19wb3J0ID09IENBQkNfUE9SVF9DKQo+PiArICAg ICAgICAgICAgcG9ydCA9IFBPUlRfQzsKPj4gKyAgICAgICAgZWxzZSBpZiAoaW50ZWxfZHNpLT5k bF9jYWJjX3BvcnQgPT0gQ0FCQ19QT1JUX0FfQU5EX0MpCj4+ICsgICAgICAgICAgICBwb3J0ID0g UE9SVF9BOwo+PiArICAgIH0KPj4gKwo+PiArICAgIGlmIChpbnRlbF9kc2ktPmR1YWxfbGluayAm JiBpbnRlbF9kc2ktPmRsX2NhYmNfcG9ydCA9PQo+PiArICAgICAgICAgICAgQ0FCQ19QT1JUX0Ff QU5EX0MpCj4+ICsgICAgICAgIGNvdW50ID0gMjsKPj4gKwo+PiArICAgIGRvIHsKPiBVc2UgZm9y X2VhY2hfZHNpX3BvcnQgbWFjcm8KPj4gKyAgICAgICAgZHNpX2RldmljZSA9IGludGVsX2RzaS0+ ZHNpX2hvc3RzW3BvcnRdLT5kZXZpY2U7Cj4+ICsKPj4gKyAgICAgICAgY2FiY19zZXRfYmFja2xp Z2h0KGNvbm5lY3RvciwgMCk7Cj4+ICsgICAgICAgIGRhdGFbMV0gPSBDQUJDX09GRjsKPj4gKyAg ICAgICAgZGF0YVswXSA9IE1JUElfRENTX0NBQkNfQ09OVFJPTF9XUjsKPj4gKyAgICAgICAgbWlw aV9kc2lfZGNzX3dyaXRlX2J1ZmZlcihkc2lfZGV2aWNlLCBkYXRhLCAyKTsKPj4gKyAgICAgICAg ZGF0YVswXSA9IE1JUElfRENTX0NBQkNfQ09OVFJPTF9CUklHSFRfV1I7Cj4+ICsgICAgICAgIG1p cGlfZHNpX2Rjc193cml0ZV9idWZmZXIoZHNpX2RldmljZSwgZGF0YSwgMik7Cj4+ICsKPj4gKyAg ICAgICAgaWYgKGNvdW50ID09IDIpCj4+ICsgICAgICAgICAgICBwb3J0ID0gUE9SVF9DOwo+PiAr ICAgIH0gd2hpbGUgKC0tY291bnQgPiAwKTsKPj4gK30KPj4gKwo+PiArc3RhdGljIGludCBjYWJj X2JhY2tsaWdodF9kZXZpY2VfdXBkYXRlX3N0YXR1cyhzdHJ1Y3QgCj4+IGJhY2tsaWdodF9kZXZp Y2UgKmJkKQo+PiArewo+PiArICAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9 IGJsX2dldF9kYXRhKGJkKTsKPj4gKyAgICBzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNv bm5lY3Rvci0+cGFuZWw7Cj4+ICsgICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rv ci0+YmFzZS5kZXY7Cj4+ICsKPj4gKyAgICBkcm1fbW9kZXNldF9sb2NrKCZkZXYtPm1vZGVfY29u ZmlnLmNvbm5lY3Rpb25fbXV0ZXgsIE5VTEwpOwo+PiArICAgIERSTV9ERUJVR19LTVMoInVwZGF0 aW5nIGludGVsX2JhY2tsaWdodCwgYnJpZ2h0bmVzcz0lZC8lZFxuIiwKPj4gKyAgICAgICAgICAg IGJkLT5wcm9wcy5icmlnaHRuZXNzLCBiZC0+cHJvcHMubWF4X2JyaWdodG5lc3MpOwo+PiArICAg IGNhYmNfc2V0X2JhY2tsaWdodChjb25uZWN0b3IsIGJkLT5wcm9wcy5icmlnaHRuZXNzKTsKPj4g Kwo+PiArICAgIC8qCj4+ICsgICAgICogQWxsb3cgZmxpcHBpbmcgYmxfcG93ZXIgYXMgYSBzdWIt c3RhdGUgb2YgZW5hYmxlZC4gU2FkbHkgdGhlCj4+ICsgICAgICogYmFja2xpZ2h0IGNsYXNzIGRl dmljZSBkb2VzIG5vdCBtYWtlIGl0IGVhc3kgdG8gdG8gZGlmZmVyZW50aWF0ZQo+PiArICAgICAq IGJldHdlZW4gY2FsbGJhY2tzIGZvciBicmlnaHRuZXNzIGFuZCBibF9wb3dlciwgc28gb3VyIAo+ PiBiYWNrbGlnaHRfcG93ZXIKPj4gKyAgICAgKiBjYWxsYmFjayBuZWVkcyB0byB0YWtlIHRoaXMg aW50byBhY2NvdW50Lgo+PiArICAgICAqLwo+PiArICAgIGlmIChwYW5lbC0+YmFja2xpZ2h0LmVu YWJsZWQpIHsKPj4gKyAgICAgICAgaWYgKHBhbmVsLT5iYWNrbGlnaHRfcG93ZXIpIHsKPj4gKyAg ICAgICAgICAgIGJvb2wgZW5hYmxlID0gYmQtPnByb3BzLnBvd2VyID09IEZCX0JMQU5LX1VOQkxB TksgJiYKPj4gKyAgICAgICAgICAgICAgICBiZC0+cHJvcHMuYnJpZ2h0bmVzcyAhPSAwOwo+PiAr ICAgICAgICAgICAgcGFuZWwtPmJhY2tsaWdodF9wb3dlcihjb25uZWN0b3IsIGVuYWJsZSk7Cj4+ ICsgICAgICAgIH0KPj4gKyAgICB9IGVsc2Ugewo+PiArICAgICAgICBiZC0+cHJvcHMucG93ZXIg PSBGQl9CTEFOS19QT1dFUkRPV047Cj4+ICsgICAgfQo+PiArCj4+ICsgZHJtX21vZGVzZXRfdW5s b2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgpOwo+PiArICAgIHJldHVybiAw Owo+PiArfQo+PiArCj4+ICtzdGF0aWMgaW50IGNhYmNfYmFja2xpZ2h0X2RldmljZV9nZXRfYnJp Z2h0bmVzcyhzdHJ1Y3QgCj4+IGJhY2tsaWdodF9kZXZpY2UgKmJkKQo+PiArewo+PiArICAgIHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGJsX2dldF9kYXRhKGJkKTsKPj4gKyAg ICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKPj4gKyAgICBz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+PiAr ICAgIGludCByZXQ7Cj4+ICsKPj4gKyAgICBpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7 Cj4+ICsgICAgZHJtX21vZGVzZXRfbG9jaygmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211 dGV4LCBOVUxMKTsKPj4gKwo+PiArICAgIHJldCA9IGNhYmNfZ2V0X2JhY2tsaWdodChjb25uZWN0 b3IpOwo+PiArCj4+ICsgZHJtX21vZGVzZXRfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5l Y3Rpb25fbXV0ZXgpOwo+PiArICAgIGludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKPj4g Kwo+PiArICAgIHJldHVybiByZXQ7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg YmFja2xpZ2h0X29wcyBjYWJjX2JhY2tsaWdodF9kZXZpY2Vfb3BzID0gewo+PiArICAgIC51cGRh dGVfc3RhdHVzID0gY2FiY19iYWNrbGlnaHRfZGV2aWNlX3VwZGF0ZV9zdGF0dXMsCj4+ICsgICAg LmdldF9icmlnaHRuZXNzID0gY2FiY19iYWNrbGlnaHRfZGV2aWNlX2dldF9icmlnaHRuZXNzLAo+ PiArfTsKPj4gKwo+PiAraW50IGNhYmNfYmFja2xpZ2h0X2RldmljZV9yZWdpc3RlcihzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4+ICt7Cj4+ICsgICAgc3RydWN0IGludGVsX3Bh bmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOwo+PiArICAgIHN0cnVjdCBiYWNrbGlnaHRf cHJvcGVydGllcyBwcm9wczsKPj4gKwo+PiArICAgIGlmIChXQVJOX09OKHBhbmVsLT5iYWNrbGln aHQuZGV2aWNlKSkKPj4gKyAgICAgICAgcmV0dXJuIC1FTk9ERVY7Cj4+ICsKPj4gKyAgICBpZiAo IXBhbmVsLT5iYWNrbGlnaHQucHJlc2VudCkKPj4gKyAgICAgICAgcmV0dXJuIDA7Cj4+ICsKPj4g KyAgICBXQVJOX09OKHBhbmVsLT5iYWNrbGlnaHQubWF4ID09IDApOwo+PiArCj4+ICsgICAgbWVt c2V0KCZwcm9wcywgMCwgc2l6ZW9mKHByb3BzKSk7Cj4+ICsgICAgcHJvcHMudHlwZSA9IEJBQ0tM SUdIVF9GSVJNV0FSRTsKPj4gKwo+PiArICAgIC8qCj4+ICsgICAgICogTm90ZTogRXZlcnl0aGlu ZyBzaG91bGQgd29yayBldmVuIGlmIHRoZSBiYWNrbGlnaHQgZGV2aWNlIG1heAo+PiArICAgICAq IHByZXNlbnRlZCB0byB0aGUgdXNlcnNwYWNlIGlzIGFyYml0cmFyaWx5IGNob3Nlbi4KPj4gKyAg ICAgKi8KPj4gKyAgICBwcm9wcy5tYXhfYnJpZ2h0bmVzcyA9IHBhbmVsLT5iYWNrbGlnaHQubWF4 Owo+PiArICAgIHByb3BzLmJyaWdodG5lc3MgPSBwcm9wcy5tYXhfYnJpZ2h0bmVzczsKPj4gKwo+ PiArICAgIGlmIChwYW5lbC0+YmFja2xpZ2h0LmVuYWJsZWQpCj4+ICsgICAgICAgIHByb3BzLnBv d2VyID0gRkJfQkxBTktfVU5CTEFOSzsKPj4gKyAgICBlbHNlCj4+ICsgICAgICAgIHByb3BzLnBv d2VyID0gRkJfQkxBTktfUE9XRVJET1dOOwo+PiArCj4+ICsgICAgLyoKPj4gKyAgICAgKiBOb3Rl OiB1c2luZyB0aGUgc2FtZSBuYW1lIGluZGVwZW5kZW50IG9mIHRoZSBjb25uZWN0b3IgcHJldmVu dHMKPj4gKyAgICAgKiByZWdpc3RyYXRpb24gb2YgbXVsdGlwbGUgYmFja2xpZ2h0IGRldmljZXMg aW4gdGhlIGRyaXZlci4KPj4gKyAgICAgKi8KPj4gKyAgICBwYW5lbC0+YmFja2xpZ2h0LmRldmlj ZSA9Cj4+ICsgICAgICAgIGJhY2tsaWdodF9kZXZpY2VfcmVnaXN0ZXIoImludGVsX2JhY2tsaWdo dCIsCj4+ICsgICAgICAgICAgICAgICAgY29ubmVjdG9yLT5iYXNlLmtkZXYsCj4+ICsgICAgICAg ICAgICAgICAgY29ubmVjdG9yLAo+PiArICAgICAgICAgICAgICAgICZjYWJjX2JhY2tsaWdodF9k ZXZpY2Vfb3BzLCAmcHJvcHMpOwo+PiArCj4+ICsgICAgaWYgKElTX0VSUihwYW5lbC0+YmFja2xp Z2h0LmRldmljZSkpIHsKPj4gKyAgICAgICAgRFJNX0VSUk9SKCJGYWlsZWQgdG8gcmVnaXN0ZXIg YmFja2xpZ2h0OiAlbGRcbiIsCj4+ICsgICAgICAgICAgICAgICAgUFRSX0VSUihwYW5lbC0+YmFj a2xpZ2h0LmRldmljZSkpOwo+PiArICAgICAgICBwYW5lbC0+YmFja2xpZ2h0LmRldmljZSA9IE5V TEw7Cj4+ICsgICAgICAgIHJldHVybiAtRU5PREVWOwo+PiArICAgIH0KPj4gKwo+PiArICAgIERS TV9ERUJVR19LTVMoIkNvbm5lY3RvciAlcyBiYWNrbGlnaHQgc3lzZnMgaW50ZXJmYWNlIAo+PiBy ZWdpc3RlcmVkXG4iLAo+PiArICAgICAgICAgICAgY29ubmVjdG9yLT5iYXNlLm5hbWUpOwo+PiAr Cj4+ICsgICAgcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK3ZvaWQgY2FiY19iYWNrbGlnaHRfZGV2 aWNlX3VucmVnaXN0ZXIoc3RydWN0IGludGVsX2Nvbm5lY3RvciAKPj4gKmNvbm5lY3RvcikKPj4g K3sKPj4gKyAgICBzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7 Cj4+ICsKPj4gKyAgICBpZiAocGFuZWwtPmJhY2tsaWdodC5kZXZpY2UpIHsKPj4gKyBiYWNrbGln aHRfZGV2aWNlX3VucmVnaXN0ZXIocGFuZWwtPmJhY2tsaWdodC5kZXZpY2UpOwo+PiArICAgICAg ICBwYW5lbC0+YmFja2xpZ2h0LmRldmljZSA9IE5VTEw7Cj4+ICsgICAgfQo+PiArfQo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX2NhYmMuaCAKPj4gYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY2FiYy5oCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 Cj4+IGluZGV4IDAwMDAwMDAuLjVkMTM0ZjUKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY2FiYy5oCj4+IEBAIC0wLDAgKzEsNDUgQEAKPj4g Ky8qCj4+ICsgKiBDb3B5cmlnaHQgwqkgMjAxMyBJbnRlbCBDb3Jwb3JhdGlvbgo+PiArICoKPj4g KyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg cGVyc29uIAo+PiBvYnRhaW5pbmcgYQo+PiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBh c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAKPj4gIlNvZnR3YXJlIiksCj4+ICsg KiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcg d2l0aG91dCAKPj4gbGltaXRhdGlvbgo+PiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1v ZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIAo+PiBzdWJsaWNlbnNlLAo+PiArICog YW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25z IHRvIHdob20gCj4+IHRoZQo+PiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBz dWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPj4gKyAqCj4+ICsgKiBUaGUgYWJv dmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5n IAo+PiB0aGUgbmV4dAo+PiArICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwg Y29waWVzIG9yIHN1YnN0YW50aWFsIAo+PiBwb3J0aW9ucyBvZiB0aGUKPj4gKyAqIFNvZnR3YXJl Lgo+PiArICoKPj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VU IFdBUlJBTlRZIE9GIEFOWSBLSU5ELCAKPj4gRVhQUkVTUyBPUgo+PiArICogSU1QTElFRCwgSU5D TFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiAKPj4gTUVSQ0hBTlRB QklMSVRZLAo+PiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklO RlJJTkdFTUVOVC4gIElOIE5PIAo+PiBFVkVOVCBTSEFMTAo+PiArICogVEhFIEFVVEhPUlMgT1Ig Q09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgCj4+IE9S IE9USEVSCj4+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU LCBUT1JUIE9SIE9USEVSV0lTRSwgCj4+IEFSSVNJTkcKPj4gKyAqIEZST00sIE9VVCBPRiBPUiBJ TiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKPj4gKyAq IERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KPj4gKyAqCj4+ICsgKi8KPj4gKwo+PiArZXh0ZXJu IGludCBjYWJjX2JhY2tsaWdodF9kZXZpY2VfcmVnaXN0ZXIoc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAKPj4gKmNvbm5lY3Rvcik7Cj4+ICtleHRlcm4gdm9pZCBjYWJjX2JhY2tsaWdodF9kZXZpY2Vf dW5yZWdpc3RlcihzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yIAo+PiAqY29ubmVjdG9yKTsKPj4gK3Zv aWQgY2FiY19zZXRfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rvciwg dTMyIGxldmVsKTsKPj4gK3UzMiBjYWJjX2dldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqY29ubmVjdG9yKTsKPj4gK3ZvaWQgY2FiY19lbmFibGVfYmFja2xpZ2h0KHN0cnVjdCBp bnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Cj4+ICt2b2lkIGNhYmNfZGlzYWJsZV9iYWNrbGln aHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKPj4gK2ludCBjYWJjX3NldHVw X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIGVudW0gCj4+IHBp cGUgdW51c2VkKTsKPj4gKwo+PiArI2RlZmluZSBDQUJDX09GRiAgICAgICAgICAgICAgICAgICAg ICAgKDAgPDwgMCkKPj4gKyNkZWZpbmUgQ0FCQ19VU0VSX0lOVEVSRkFDRV9JTUFHRSAgICAgICgx IDw8IDApCj4+ICsjZGVmaW5lIENBQkNfU1RJTExfUElDVFVSRSAgICAgICAgICAgICAoMiA8PCAw KQo+PiArI2RlZmluZSBDQUJDX1ZJREVPX01PREUgICAgICAgICAgICAgICAgICAgICAgICAoMyA8 PCAwKQo+PiArCj4+ICsjZGVmaW5lIENBQkNfQkFDS0xJR0hUICAgICAgICAgICAgICAgICAoMSA8 PCAyKQo+PiArI2RlZmluZSBDQUJDX0RJTU1JTkdfRElTUExBWSAgICAgICAgICAgKDEgPDwgMykK Pj4gKyNkZWZpbmUgQ0FCQ19CQ1RSTCAgICAgICAgICAgICAgICAgICAgICgxIDw8IDUpCj4+ICsK Pj4gKyNkZWZpbmUgQ0FCQ19QT1JUX0EgICAgICAgICAgICAgICAgICAgIDB4MDAKPj4gKyNkZWZp bmUgQ0FCQ19QT1JUX0MgICAgICAgICAgICAgICAgICAgIDB4MDEKPj4gKyNkZWZpbmUgQ0FCQ19Q T1JUX0FfQU5EX0MgICAgICAgICAgICAgIDB4MDIKPj4gKyNkZWZpbmUgQ0FCQ19NQVhfVkFMVUUg ICAgICAgICAgICAgICAweGZmCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wYW5lbC5jIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMKPj4g aW5kZXggNTVhYWQyMy4uYzczNDQ5YiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcGFuZWwuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5l bC5jCj4+IEBAIC0xNTAyLDE1ICsxNTAyLDI5IEBAIHZvaWQgaW50ZWxfcGFuZWxfZmluaShzdHJ1 Y3QgaW50ZWxfcGFuZWwgKnBhbmVsKQo+PiAgIHZvaWQgaW50ZWxfYmFja2xpZ2h0X3JlZ2lzdGVy KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICAgewo+PiAgICAgICBzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3I7Cj4+ICsgICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPj4gICAtICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoY29u bmVjdG9yLCAKPj4gJmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsIGJhc2UuaGVhZCkK Pj4gLSAgICAgICAgaW50ZWxfYmFja2xpZ2h0X2RldmljZV9yZWdpc3Rlcihjb25uZWN0b3IpOwo+ PiArICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoY29ubmVjdG9yLCAmZGV2LT5tb2RlX2NvbmZpZy5j b25uZWN0b3JfbGlzdCwKPj4gKyAgICAgICAgICAgICAgICAgICAgYmFzZS5oZWFkKSB7Cj4+ICsg ICAgICAgIGlmIChjb25uZWN0b3ItPmVuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0RTSSAm Jgo+PiArICAgICAgICAgICAgZGV2X3ByaXYtPnZidC5kc2kuY29uZmlnLT5jYWJjX3N1cHBvcnRl ZCkKPj4gKyAgICAgICAgICAgIGNhYmNfYmFja2xpZ2h0X2RldmljZV9yZWdpc3Rlcihjb25uZWN0 b3IpOwo+PiArICAgICAgICBlbHNlCj4+ICsgICAgICAgICAgICBpbnRlbF9iYWNrbGlnaHRfZGV2 aWNlX3JlZ2lzdGVyKGNvbm5lY3Rvcik7Cj4+ICsgICAgfQo+PiAgIH0KPj4gICAgIHZvaWQgaW50 ZWxfYmFja2xpZ2h0X3VucmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4gICB7Cj4+ ICAgICAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPj4gKyAgICBzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+PiAgIC0gICAg bGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsIAo+PiAmZGV2LT5tb2RlX2NvbmZpZy5jb25u ZWN0b3JfbGlzdCwgYmFzZS5oZWFkKQo+PiAtICAgICAgICBpbnRlbF9iYWNrbGlnaHRfZGV2aWNl X3VucmVnaXN0ZXIoY29ubmVjdG9yKTsKPj4gKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5l Y3RvciwgJmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsCj4+ICsgICAgICAgICAgICAg ICAgICAgIGJhc2UuaGVhZCkgewo+PiArICAgICAgICBpZiAoY29ubmVjdG9yLT5lbmNvZGVyLT50 eXBlID09IElOVEVMX09VVFBVVF9EU0kgJiYKPj4gKyAgICAgICAgICAgIGRldl9wcml2LT52YnQu ZHNpLmNvbmZpZy0+Y2FiY19zdXBwb3J0ZWQpCj4+ICsgICAgICAgICAgICBjYWJjX2JhY2tsaWdo dF9kZXZpY2VfdW5yZWdpc3Rlcihjb25uZWN0b3IpOwo+PiArICAgICAgICBlbHNlCj4+ICsgICAg ICAgICAgICBpbnRlbF9iYWNrbGlnaHRfZGV2aWNlX3VucmVnaXN0ZXIoY29ubmVjdG9yKTsKPj4g KyAgICB9Cj4+ICAgfQo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS92aWRlby9taXBpX2Rpc3BsYXku aCBiL2luY2x1ZGUvdmlkZW8vbWlwaV9kaXNwbGF5LmgKPj4gaW5kZXggZGRjYzhjYS4uNWI4ZWVl YyAxMDA2NDQKPj4gLS0tIGEvaW5jbHVkZS92aWRlby9taXBpX2Rpc3BsYXkuaAo+PiArKysgYi9p bmNsdWRlL3ZpZGVvL21pcGlfZGlzcGxheS5oCj4+IEBAIC0xMTcsNiArMTE3LDE0IEBAIGVudW0g ewo+PiAgICAgICBNSVBJX0RDU19HRVRfU0NBTkxJTkUgICAgICAgID0gMHg0NSwKPj4gICAgICAg TUlQSV9EQ1NfUkVBRF9EREJfU1RBUlQgICAgICAgID0gMHhBMSwKPj4gICAgICAgTUlQSV9EQ1Nf UkVBRF9EREJfQ09OVElOVUUgICAgPSAweEE4LApQbGVhc2UgYWRkIHRoZW0gaW4gaW5jcmVtZW50 IG9yZGVyLiBBbHNvLCBpbiBITEQgaXQgaXMgbWVudGlvbmVkIHRoYXQgCm9mZnNldCBmb3IgTUlQ SV9EQ1NfQ0FCQ19MRVZFTF9SRCBpcyAweDUxLiBDb3JyZWN0IGVpdGhlciBvZiB0aGVtIAphY2Nv cmRpbmdseS4KPj4gKyAgICBNSVBJX0RDU19DQUJDX0xFVkVMX1JEICAgICAgICAgID0gMHg1MiwK Pj4gKyAgICBNSVBJX0RDU19DQUJDX01JTl9CUklHSFRORVNTX1JEID0gMHg1RiwKPj4gKyAgICBN SVBJX0RDU19DQUJDX0NPTlRST0xfUkQgICAgICAgID0gMHg1NiwKPj4gKyAgICBNSVBJX0RDU19D QUJDX0NPTlRST0xfQlJJR0hUX1JEID0gMHg1NCwKPj4gKyAgICBNSVBJX0RDU19DQUJDX0xFVkVM X1dSICAgICAgICAgID0gMHg1MSwKPj4gKyAgICBNSVBJX0RDU19DQUJDX01JTl9CUklHSFRORVNT X1dSID0gMHg1RSwKPj4gKyAgICBNSVBJX0RDU19DQUJDX0NPTlRST0xfV1IgICAgICAgID0gMHg1 NSwKPj4gKyAgICBNSVBJX0RDU19DQUJDX0NPTlRST0xfQlJJR0hUX1dSID0gMHg1MywKPj4gICB9 Owo+PiAgICAgLyogTUlQSSBEQ1MgcGl4ZWwgZm9ybWF0cyAqLwo+CgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=