From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH] drm/i915: Backlight Control over AUX feature Date: Tue, 15 Sep 2015 10:26:41 +0300 Message-ID: <87613cjg7i.fsf@intel.com> References: <1441894302-28475-1-git-send-email-yetundex.adebisi@intel.com> <87wpvtjp6t.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 2692F6E3C4 for ; Tue, 15 Sep 2015 00:23:28 -0700 (PDT) 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: "Adebisi, YetundeX" , "Intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAxNCBTZXAgMjAxNSwgIkFkZWJpc2ksIFlldHVuZGVYIiA8eWV0dW5kZXguYWRlYmlz aUBpbnRlbC5jb20+IHdyb3RlOgo+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+PiBGcm9t OiBKYW5pIE5pa3VsYSBbbWFpbHRvOmphbmkubmlrdWxhQGxpbnV4LmludGVsLmNvbV0KPj4gU2Vu dDogTW9uZGF5LCBTZXB0ZW1iZXIgMTQsIDIwMTUgMTE6MDAgQU0KPj4gVG86IEFkZWJpc2ksIFll dHVuZGVYOyBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+IENjOiBBZGViaXNpLCBZ ZXR1bmRlWAo+PiBTdWJqZWN0OiBSZTogW0ludGVsLWdmeF0gW1BBVENIXSBkcm0vaTkxNTogQmFj a2xpZ2h0IENvbnRyb2wgb3ZlciBBVVggZmVhdHVyZQo+PiAKPj4gT24gVGh1LCAxMCBTZXAgMjAx NSwgWWV0dW5kZSBBZGViaXNpIDx5ZXR1bmRleC5hZGViaXNpQGludGVsLmNvbT4gd3JvdGU6Cj4+ ID4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIEJhY2tsaWdodCBDb250cm9sIG92ZXIgdGhl IEFVWCBjaGFubmVsIGZvcgo+PiA+IERQIGFuZCBlRFAgY29ubmVjdG9ycy4gSXQgYWxsb3dzIHRo ZSBiYWNrbGlnaHQgb2YgRFAgYW5kIGVEUCBjb25uZWN0ZWQKPj4gPiBkaXNwbGF5cyB0byBiZSBj b250cm9sbGVkIGZyb20gc29mdHdhcmUgdXNpbmcgc3lzZnMgaW50ZXJmYWNlLgo+PiAKPj4gV2hp Y2ggc3BlYyBzYXlzIHRoZXJlJ3MgRFBDRCBiYWNrbGlnaHQgY29udHJvbCBzdXBwb3J0IG9uIG5v bi1lbWJlZGRlZAo+PiBEaXNwbGF5IFBvcnQ/IEFGQUlDVCBpdCdzIGp1c3QgZURQLgo+IERQQ0Qg QmFja2xpZ2h0IGNvbnRyb2wgaXMgb25seSBzcGVjaWZpZWQgaW4gZURQLiAKPiBIb3dldmVyLCAg dGhpcyBwYXRjaCBpcyBhbHNvIHRvIGFkZHJlc3MgIGEgY3VzdG9tZXIgdXNlICBjYXNlIGZvciBD aHJvbnRlbCdzIERQIHRvIExWRFMgYWRkLW9uIGNhcmQgKGh0dHA6Ly93d3cuY2hyb250ZWwuY29t L2luZGV4LnBocC9jaDc1MTFiLWx2ZHMtZGlzcGxheXBvcnQpIAo+CgpVbmRlcnN0b29kLiBIb3dl dmVyIHRoZSBmaXJzdCBwcmlvcml0eSBzaG91bGQgYmUgdG8gZ2V0IHRoZSBkZXNpZ24gcmlnaHQK Zm9yIHRoZSBtYW55IG9yZGVycyBvZiBtYWduaXR1ZGUgbW9yZSBjb21tb24gY2FzZSBvZiBzdGFu ZGFyZHMgY29tcGxpYW50CmVEUCBEUENEIGJhY2tsaWdodCBjb250cm9sLgoKSW5kZWVkIHRoZSBD aHJvbnRlbCBkYXRhc2hlZXQgYWxzbyBzYXlzIGl0J3MgZURQLXRvLUxWRFMsIHNvIHlvdSdyZQpn ZXR0aW5nIGRlZXBlciBpbiB0aGUgdW5rbm93biBzdGFuZGFyZHMgaW5jb21wbGlhbmNlIHRlcnJp dG9yeS4uLgoKPj4gCj4+ID4gVGhlIGNvZGUgZmlyc3QgY2hlY2tzIGlmIHRoZSBEUC9lRFAgZGlz cGxheSBoYXMgdGhlIGNhcGFiaWxpdHkgZm9yCj4+ID4gYmFja2xpZ2h0IGNvbnRyb2wgYnkgcmVh ZGluZyBEaXNwbGF5IENvbnRyb2wgRFBDRCByZWdpc3RlcnMgYXMgZGVmaW5lZAo+PiA+IGJ5IHRo ZSBlRFAgdjEuMyBWRVNBIHNwZWNzLgo+PiA+IEl0IHRoZW4gcmVnaXN0ZXJzIGEgL3N5cy9iYWNr bGlnaHQgZGV2aWNlIGlmIGJhY2tsaWdodCBjb250cm9sIGlzCj4+ID4gc3VwcG9ydGVkLgo+PiA+ Cj4+ID4gSXQgcHJvdmlkZXMgZnVuY3Rpb25zIHRvCj4+ID4gLSBSZWdpc3RlciBhIHN5c2ZzIGJh Y2tsaWdodCBpbnRlcmZhY2UgaWYgdGhlIGVEUC9EUCBjb25ubmVjdG9yIGlzCj4+ID4gY2FwYWJs ZSBvZiBhdXggYmFja2xpZ2h0IGNvbnRyb2wKPj4gPiAtIFJlYWQgdGhlIGN1cnJlbnQgYmFja2xp Z2h0IGxldmVsIGZyb20gRFBDRCByZWdpc3RlciAweDcyMgo+PiA+IC0gQ2hhbmdlIHRoZSBiYWNr bGlnaHQgbGV2ZWwKPj4gPiAtIERpc2FibGUvRW5hYmxlIHRoZSBiYWNrbGlnaHQgYnkgd3JpdGlu ZyB0byBEUENEIHJlZ2lzdGVyIDB4NzIwCj4+IAo+PiBJTU8gdGhlIGRlc2lnbiBzaG91bGQgYmUg dG8gbW92ZSBkZXZfcHJpdi0+ZGlzcGxheSBiYWNrbGlnaHQgaG9va3MgdG8gYmUKPj4gY29ubmVj dG9yIHNwZWNpZmljLCBpbiBpbnRlbF9wYW5lbCwgYW5kIGl0IHdvdWxkIGJlIHRyYW5zcGFyZW50 IHdoZXRoZXIKPj4gYmFja2xpZ2h0IGNvbnRyb2wgaXMgQVVYIGJhc2VkLCBHUFUgUFdNIGJhc2Vk LCBQTUlDIFBXTSBiYXNlZCwgb3IgRFNJCj4+IGNvbW1hbmQgbW9kZSBiYXNlZC4gSSd2ZSBnaXZl biB0aGUgZXhhY3Qgc2FtZSBmZWVkYmFjayBhYm91dCB0aGUgcmVjZW50Cj4+IERTSSBjb21tYW5k IG1vZGUgYmFja2xpZ2h0IGNvZGUuCj4+IAo+PiBNb3N0IG9mIHRoZSBib2lsZXJwbGF0ZSBjb2Rl IGluIGludGVsX3BhbmVsLmMgc2hvdWxkIHJlbWFpbiBpbnRhY3QsIGp1c3QgdGhlCj4+IGhvb2tz IHdvdWxkIGJlIGluIGEgZGlmZmVyZW50IHN0cnVjdCwgYW5kIHdvdWxkLCBpbiBEUCBBVVggY2Fz ZSwgcG9pbnQgYXQKPj4gZGlmZmVyZW50IGZ1bmN0aW9ucy4gVGhpcyBwYXRjaCBkdXBsaWNhdGVz IHdheSB0b28gbXVjaCBjb2RlIGZvciBubyBnb29kCj4+IHJlYXNvbi4KPj4gCj4KPiBJIHdpbGwg aGF2ZSBhIGxvb2sgYXQgc2VwYXJhdGluZyBvdXQgdGhlIGVEUCBBVVggQmFja2xpZ2h0IGNvbnRy b2wgYXMgc3VnZ2VzdGVkLgo+Cj4+ID4gVXNhZ2U6Cj4+ID4gQmFja2xpZ2h0IGxldmVsIHJhbmdl cyBmcm9tIDAobWluKS0yNDAobWF4KSAweDAtMHhGMAo+PiA+IC0gVG8gY2hhbmdlIEJhY2tsaWdo dCBsZXZlbCB0byA1MAo+PiA+IGVjaG8gNTAgPiAvc3lzL2NsYXNzL2JhY2tsaWdodC9pbnRlbF9h dXhfYmFja2xpZ2h0LURQLTMvYnJpZ2h0bmVzcwo+PiAKPj4gSUlVQyBpdCBzaG91bGQgYmUgZW5v dWdoIHRvIGhhdmUganVzdCBvbmUgaW50ZWxfYmFja2xpZ2h0LiBBbmQgaWYgbm90LCBJIGRvbid0 Cj4+IHRoaW5rIHR5aW5nIHRoZSBiYWNrbGlnaHQgdG8gdGhlIGNvbm5lY3RvciBuYW1lIGxpa2Ug dGhpcyBpcyBhIGdvb2QgaWRlYS4KPj4gVXNlcnNwYWNlIGNhbiBhbHJlYWR5IG1hcCB0aGUgYmFj a2xpZ2h0IGludGVyZmFjZXMgdG8gdGhlIGNvbm5lY3RvcnMgYmFzZWQKPj4gb24gdGhlIHBhcmVu dCBrb2JqZWN0Lgo+PiAKPiBUaGUgY3VzdG9tZXIgdXNlIGNhc2UgaXMgdG8gYmUgYWJsZSB0byBj b250cm9sIHRoZSBiYWNrbGlnaHQgb2YgdGhlIGNvbm5lY3RlZCBkaXNwbGF5cyBpbmRlcGVuZGVu dGx5LiAKPiBUaGUgZGlzcGxheXMgYXJlIGNvbm5lY3RlZCB1c2luZyB0aGUgRFAvZURQIHRvIExW RFMgYWRkLW9uIGNhcmQuIAo+IFRoaXMgaXMgd2h5IHRoZXJlIGFyZSBtdWx0aXBsZSBpbnRlbF9i YWNrbGlnaHQgaW50ZXJmYWNlLCB0aGVyZSBtaWdodCBiZSBiZXR0ZXIgYXBwcm9hY2hlcywgSSB3 aWxsIGFwcHJlY2lhdGUgeW91ciBzdWdnZXN0aW9ucy4KCk9rYXkuIEZvciB0aGUgbm9ybWFsIGVE UCBjYXNlIHRoZSBzb2x1dGlvbiB3b3VsZCBiZSB0byBwcm9iZSBmb3IKYmFja2xpZ2h0IGNhcGFi aWxpdGllcyBpbiBpbnRlbF9kcC5jICpiZWZvcmUqIHRoZSBjYWxsIHRvCmludGVsX3BhbmVsX2lu aXQoKSwgYW5kIGhhdmUgdGhlIGJhY2tsaWdodCBob29rcyBpbml0aWFsaXplZAphY2NvcmRpbmds eS4KCkZvciB0aGlzICJlRFAtdG8tTFZEUyBjb252ZXJ0ZXIgaW4gbm9ybWFsIERQIiBjYXNlLCBJ IGFtIGZyYW5rbHkgbm90CnN1cmUgaWYgaXQgaGFzIGEgcGxhY2UgaW4gdGhlIHVwc3RyZWFtIGRy aXZlci4gV2l0aCB0aGUgZURQIERQQ0Qgc3VwcG9ydAppbiBwbGFjZSB3ZSBjYW4gZ2V0IHByZXR0 eSBjbG9zZSB0byB3aGVyZSB5b3Ugd2FudCB0byBiZSwgYnV0IHRoZW4geW91J2QKaGF2ZSB0byBh ZGRpdGlvbmFsbHkgc2V0dXAgRFBDRCBiYWNrbGlnaHQgY29udHJvbCBmb3IgYWxsIERQCmNvbm5l Y3RvcnMuIFRoYXQgbWF5IGJlIHNvbWV0aGluZyB5b3UgaGF2ZSB0byBjYXJyeSBvdXQtb2YtdHJl ZSwgYnV0IEknbQpwcmV0dHkgY29uZmlkZW50IGl0J3MgYSByYXRoZXIgc21hbGwgZGlmZi4KClNv IHBsZWFzZSBzZXBhcmF0ZSB5b3VyIHdvcmsgdG8gc2VwYXJhdGUgcGF0Y2hlcyBhbG9uZyB0aG9z ZSBsaW5lcy4gVGhlCmVEUCBjYXNlIGlzIG5vdCBjb250cm92ZXJzaWFsIGFuZCB3ZSdsbCB3YW50 IHRoYXQgbm8gbWF0dGVyIHdoYXQsIGFuZCBpdAppcyByZXF1aXJlZCBwcmVwIHdvcmsgZm9yIHlv dXIgY3VzdG9tZXIgY2FzZSBhbnl3YXkuIEFuZCB0aGF0J3MgbGlrZQo5NSslIG9mIHRoZSB3aG9s ZSB0aGluZy4KCgpCUiwKSmFuaS4KCgoKPgo+PiA+Cj4+ID4gLSBUbyBkaXNhYmxlIGJhY2tsaWdo dAo+PiA+IGVjaG8gNCA+IC9zeXMvY2xhc3MvYmFja2xpZ2h0L2ludGVsX2F1eF9iYWNrbGlnaHQt RFAtMy9ibF9wb3dlcgo+PiA+IC0gVG8gZW5hYmxlIGJhY2tsaWdodAo+PiA+IGVjaG8gMCA+IC9z eXMvY2xhc3MvYmFja2xpZ2h0L2ludGVsX2F1eF9iYWNrbGlnaHQtRFAtMy9ibF9wb3dlcgo+PiA+ Cj4+ID4gdjI6Cj4+ID4gLSBDb2RlIGNsZWFuIHVwCj4+ID4gLSBBdm9pZCBjb2RlIGR1cGxpY2F0 aW9uIGJ5IG1lcmdpbmcgdGhlIGJhY2tsaWdodCBkZXZpY2UKPj4gPiByZWdpc3Rlci91bnJlZ2lz dGVyIGZ1bmN0aW9uIHdpdGggdGhlIGV4aXN0aW5nIG9uZSBmb3IgaW50ZXJuYWwKPj4gPiBkaXNw bGF5cwo+PiA+Cj4+ID4gdjM6Cj4+ID4gRnVydGhlciBjaGFuZ2VzIHRvIHJlLXVzZSBleGlzdGlu ZyBjb2RlIGJ5IGFkZGluZyBibF9uYW1lIGFuZAo+PiA+IGJhY2tsaWdodF9vcHMgdmFyaWFibGVz IHRvIHRoZSBpbnRlbF9iYWNrbGlnaHQgc3RydWN0dXJlLgo+PiAKPj4gV2hlcmUgd2VyZSB0aGUg cHJldmlvdXMgdmVyc2lvbnM/IFNvbWVob3cgSSBkb24ndCB0aGluayBJIHdvdWxkIGhhdmUKPj4g bWlzc2VkIHRoZW0gaWYgdGhleSBoYWQgYmVlbiBwb3N0ZWQgb24gdGhlIG1haWxpbmcgbGlzdHMu Cj4KPiBTb3JyeSwgdGhpcyB3YXMgaW5pdGlhbGx5IHNlbnQgdG8gaXNnLWdtcy4gSSB3aWxsIHJl bW92ZSB0aGVtLgo+PiAKPj4gPgo+PiA+IENjOiBCb2IgUGFhdXdlIDxib2Iuai5wYWF1d2VAaW50 ZWwuY29tPgo+PiA+IFNpZ25lZC1vZmYtYnk6IFlldHVuZGUgQWRlYmlzaSA8eWV0dW5kZXguYWRl YmlzaUBpbnRlbC5jb20+Cj4+ID4gLS0tCj4+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2Vm aWxlICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwo+PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMgICAgICAgICAgICAgIHwgICAxICsKPj4gPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAgICAgICAgICAgICAgICB8ICAgNiArLQo+PiA+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9hdXhfYmFja2xpZ2h0X2N0bC5jIHwgMzI0Cj4+ICsr KysrKysrKysrKysrKysrKysrKysKPj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmggICAgICAgICAgICAgICAgICB8ICA0NiArKy0KPj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcGFuZWwuYyAgICAgICAgICAgICAgICB8IDExMSArKysrKy0tLQo+PiA+ICBpbmNsdWRl L2RybS9kcm1fZHBfaGVscGVyLmggICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICsKPj4gCj4+ IENoYW5nZXMgdG8gdGhpcyBmaWxlIG11c3QgYmUgYSBzZXBhcmF0ZSBwYXRjaCwgcG9zdGVkIHRv IGRyaS1kZXZlbCBsaXN0Lgo+PiAKPj4gUGxlYXNlIGZpbmQgc29tZSBmdXJ0aGVyIG5vdGVzIGJl bG93Lgo+PiAKPj4gPiAgNyBmaWxlcyBjaGFuZ2VkLCA0NDMgaW5zZXJ0aW9ucygrKSwgNTIgZGVs ZXRpb25zKC0pICBjcmVhdGUgbW9kZQo+PiA+IDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcF9hdXhfYmFja2xpZ2h0X2N0bC5jCj4+ID4KPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKPj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2Vm aWxlIGluZGV4IDQ0ZDI5MGEuLjI2MGJlMDMgMTAwNjQ0Cj4+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvTWFrZWZpbGUKPj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmls ZQo+PiA+IEBAIC03Nyw2ICs3Nyw3IEBAIGk5MTUteSArPSBkdm9fY2g3MDE3Lm8gXAo+PiA+ICAJ ICBkdm9fdGZwNDEwLm8gXAo+PiA+ICAJICBpbnRlbF9jcnQubyBcCj4+ID4gIAkgIGludGVsX2Rk aS5vIFwKPj4gPiArCSAgaW50ZWxfZHBfYXV4X2JhY2tsaWdodF9jdGwubyBcCj4+ID4gIAkgIGlu dGVsX2RwX21zdC5vIFwKPj4gPiAgCSAgaW50ZWxfZHAubyBcCj4+ID4gIAkgIGludGVsX2RzaS5v IFwKPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j Cj4+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gPiBpbmRleCBl NjI5YTFiLi4yOTM3NDMyIDEwMDY0NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwo+PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwo+PiA+IEBAIC0xNTM0MCw2ICsxNTM0MCw3IEBAIHZvaWQgaW50ZWxfY29ubmVjdG9yX3Vu cmVnaXN0ZXIoc3RydWN0Cj4+IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQo+PiA+ ICAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9ICZpbnRlbF9jb25uZWN0b3ItPmJh c2U7Cj4+ID4KPj4gPiAgCWludGVsX3BhbmVsX2Rlc3Ryb3lfYmFja2xpZ2h0KGNvbm5lY3Rvcik7 Cj4+ID4gKwlpbnRlbF9kcF9hdXhfYmFja2xpZ2h0X2Rlc3Ryb3koY29ubmVjdG9yKTsKPj4gPiAg CWRybV9jb25uZWN0b3JfdW5yZWdpc3Rlcihjb25uZWN0b3IpOwo+PiA+ICB9Cj4+ID4KPj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+PiA+IGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBpbmRleCA0NWFiMjVlLi45NzVhODM2IDEwMDY0NAo+ PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4+ID4gQEAgLTMwMTgsNyArMzAxOCw3IEBAIHN0 YXRpYyB2b2lkIGNodl9kcF9wb3N0X3BsbF9kaXNhYmxlKHN0cnVjdAo+PiBpbnRlbF9lbmNvZGVy ICplbmNvZGVyKQo+PiA+ICAgKiBTaW5rcyBhcmUgKnN1cHBvc2VkKiB0byBjb21lIHVwIHdpdGhp biAxbXMgZnJvbSBhbiBvZmYgc3RhdGUsIGJ1dAo+PiB3ZSdyZSBhbHNvCj4+ID4gICAqIHN1cHBv c2VkIHRvIHJldHJ5IDMgdGltZXMgcGVyIHRoZSBzcGVjLgo+PiA+ICAgKi8KPj4gPiAtc3RhdGlj IHNzaXplX3QKPj4gPiArc3NpemVfdAo+PiA+ICBpbnRlbF9kcF9kcGNkX3JlYWRfd2FrZShzdHJ1 Y3QgZHJtX2RwX2F1eCAqYXV4LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAo+PiA+ICAJCQl2b2lkICpi dWZmZXIsIHNpemVfdCBzaXplKQo+PiA+ICB7Cj4+ID4gQEAgLTM5NjksNyArMzk2OSw3IEBAIGlu dGVsX2RwX2xpbmtfZG93bihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+PiA+ICAJbXNsZWVw KGludGVsX2RwLT5wYW5lbF9wb3dlcl9kb3duX2RlbGF5KTsKPj4gPiAgfQo+PiA+Cj4+ID4gLXN0 YXRpYyBib29sCj4+ID4gK2Jvb2wKPj4gCj4+IFdoeT8KPiBJdCBnZXRzIGNhbGxlZCBmcm9tIHRo ZSBuZXdseSBhZGRlZCBmaWxlICBpbnRlbF9kcF9hdXhfYmFja2xpZ2h0X2N0bC5jLiBNaWdodCBu b3QgYmUgbmVlZGVkIGlmIEkgY2hhbmdlIGl0IGFzIHlvdSBzdWdnZXN0ZWQuCj4+IAo+PiA+ICBp bnRlbF9kcF9nZXRfZHBjZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKSAgewo+PiA+ICAJc3Ry dWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9k cCk7IEBACj4+ID4gLTYxMjUsNiArNjEyNSw4IEBAIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQKPj4gKmludGVsX2RpZ19wb3J0LAo+PiA+ICAJCXJldHVy biBmYWxzZTsKPj4gPiAgCX0KPj4gPgo+PiA+ICsJaW50ZWxfZHBfYXV4X2JhY2tsaWdodF9pbml0 KGludGVsX2RwLCBjb25uZWN0b3IpOwo+PiA+ICsKPj4gPiAgCWludGVsX2RwX2FkZF9wcm9wZXJ0 aWVzKGludGVsX2RwLCBjb25uZWN0b3IpOwo+PiA+Cj4+ID4gIAkvKiBGb3IgRzRYIGRlc2t0b3Ag Y2hpcCwgUEVHX0JBTkRfR0FQX0RBVEEgMzowIG11c3QgZmlyc3QgYmUKPj4gd3JpdHRlbgo+PiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9hdXhfYmFja2xpZ2h0 X2N0bC5jCj4+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9hdXhfYmFja2xpZ2h0 X2N0bC5jCj4+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gPiBpbmRleCAwMDAwMDAwLi5hOGVm OTYwCj4+ID4gLS0tIC9kZXYvbnVsbAo+PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwX2F1eF9iYWNrbGlnaHRfY3RsLmMKPj4gPiBAQCAtMCwwICsxLDMyNCBAQAo+PiA+ICsv Kgo+PiA+ICsgKiBDb3B5cmlnaHQgwqkgMjAxNSBJbnRlbCBDb3Jwb3JhdGlvbgo+PiA+ICsgKgo+ PiA+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g YW55IHBlcnNvbgo+PiA+ICtvYnRhaW5pbmcgYQo+PiA+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdh cmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCj4+ID4gKyJTb2Z0d2Fy ZSIpLAo+PiA+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9u LCBpbmNsdWRpbmcgd2l0aG91dAo+PiA+ICtsaW1pdGF0aW9uCj4+ID4gKyAqIHRoZSByaWdodHMg dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLAo+PiA+ICtz dWJsaWNlbnNlLAo+PiA+ICsgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBh bmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbQo+PiA+ICt0aGUKPj4gPiArICogU29mdHdhcmUg aXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u czoKPj4gPiArICoKPj4gPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg cGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZwo+PiA+ICt0aGUgbmV4dAo+PiA+ICsgKiBwYXJh Z3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9y dGlvbnMKPj4gPiArb2YgdGhlCj4+ID4gKyAqIFNvZnR3YXJlLgo+PiA+ICsgKgo+PiA+ICsgKiBU SEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkK Pj4gS0lORCwKPj4gPiArRVhQUkVTUyBPUgo+PiA+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVU IE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCj4+ID4gK01FUkNIQU5UQUJJTElUWSwK Pj4gPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdF TUVOVC4gIElOCj4+IE5PIEVWRU5UCj4+ID4gK1NIQUxMCj4+ID4gKyAqIFRIRSBBVVRIT1JTIE9S IENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLAo+PiBEQU1BR0VTCj4+ ID4gK09SIE9USEVSCj4+ID4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0Yg Q09OVFJBQ1QsIFRPUlQgT1IKPj4gT1RIRVJXSVNFLAo+PiA+ICtBUklTSU5HCj4+ID4gKyAqIEZS T00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UK Pj4gT1IKPj4gPiArT1RIRVIgREVBTElOR1MKPj4gPiArICogSU4gVEhFIFNPRlRXQVJFLgo+PiA+ ICsgKgo+PiA+ICsgKgo+PiA+ICsgKi8KPj4gPiArCj4+ID4gKyNpbmNsdWRlICJpbnRlbF9kcnYu aCIKPj4gPiArCj4+ID4gKwo+PiA+ICsjZGVmaW5lIE1BWF9BVVhfQkxfSFdfTEVWRUwgMHhGMAo+ PiA+ICsjZGVmaW5lIE1JTl9BVVhfQkxfSFdfTEVWRUwgMHgwMAo+PiA+ICsKPj4gPiArCj4+ID4g K3N0YXRpYyB1aW50OF90IHJlYWRfbW9kZV9zZXRfcmVnKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApIHsKPj4gPiArCXVpbnQ4X3QgZHBjZF9idWYgPSAwOwo+PiA+ICsKPj4gPiArCWlmIChpbnRl bF9kcF9kcGNkX3JlYWRfd2FrZSgmaW50ZWxfZHAtPmF1eCwKPj4gPiArCQkJRFBfRURQX0JBQ0tM SUdIVF9NT0RFX1NFVF9SRUdJU1RFUiwKPj4gPiArCQkJJmRwY2RfYnVmLCBzaXplb2YoZHBjZF9i dWYpKSA8IDApCj4+ID4gKwkJRFJNX0RFQlVHX0tNUygiRmFpbGVkIHRvIHJlYWQgRFBDRCByZWdp c3RlciAweCV4XG4iLAo+PiA+ICsJCQkJRFBfRURQX0JBQ0tMSUdIVF9NT0RFX1NFVF9SRUdJU1RF Uik7Cj4+ID4gKwo+PiA+ICsJcmV0dXJuIGRwY2RfYnVmOwo+PiA+ICt9Cj4+ID4gKwo+PiA+ICsv KioKPj4gPiArICogUmVhZCB0aGUgY3VycmVudCBiYWNrbGlnaHQgdmFsdWUgZnJvbSBEUENEIHJl Z2lzdGVyKHMpIGJhc2VkCj4+ID4gKyAqIG9uIGlmIDgtYml0KE1TQikgb3IgMTYtYml0KE1TQiBh bmQgTFNCKSB2YWx1ZXMgYXJlIHN1cHBvcnRlZCAgKi8KPj4gPiArc3RhdGljIHVpbnQxNl90IHJl YWRfYXV4X2JhY2tsaWdodF9sZXZlbChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKSB7Cj4+ID4g Kwl1aW50MTZfdCByZWFkX3ZhbCA9IDA7Cj4+ID4gKwo+PiA+ICsJaWYgKGludGVsX2RwX2RwY2Rf cmVhZF93YWtlKCZpbnRlbF9kcC0+YXV4LAo+PiA+ICsJCQlEUF9FRFBfQkFDS0xJR0hUX0JSSUdI VE5FU1NfTVNCLAo+PiA+ICsJCQkmcmVhZF92YWwsIHNpemVvZihyZWFkX3ZhbCkpIDwgMCkgewo+ PiA+ICsJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byByZWFkIERQQ0QgcmVnaXN0ZXIgMHgleFxu IiwKPj4gPiArCQkJCURQX0VEUF9CQUNLTElHSFRfQlJJR0hUTkVTU19NU0IpOwo+PiA+ICsJCXJl dHVybiAwOwo+PiA+ICsJfQo+PiA+ICsJaWYgKGludGVsX2RwLT5hdXhfYmFja2xpZ2h0LnVzZV9s c2JfcmVnKSB7Cj4+ID4gKwkJdWludDhfdCB2YWxfbHNiID0gMDsKPj4gPiArCj4+ID4gKwkJaWYg KGludGVsX2RwX2RwY2RfcmVhZF93YWtlKCZpbnRlbF9kcC0+YXV4LAo+PiA+ICsJCQkJRFBfRURQ X0JBQ0tMSUdIVF9CUklHSFRORVNTX0xTQiwKPj4gPiArCQkJCSZ2YWxfbHNiLCBzaXplb2YodmFs X2xzYikpIDwgMCkgewo+PiA+ICsJCQlEUk1fREVCVUdfS01TKCJGYWlsZWQgdG8gcmVhZCBEUENE IHJlZ2lzdGVyCj4+IDB4JXhcbiIsCj4+ID4gKwo+PiAJRFBfRURQX0JBQ0tMSUdIVF9CUklHSFRO RVNTX0xTQik7Cj4+ID4gKwkJCXJldHVybiAwOwo+PiA+ICsJCX0KPj4gPiArCQlyZWFkX3ZhbCA9 IChyZWFkX3ZhbCA8PCA4IHwgdmFsX2xzYik7Cj4+ID4gKwl9Cj4+ID4gKwo+PiA+ICsJcmV0dXJu IHJlYWRfdmFsOwo+PiA+ICt9Cj4+ID4gKwo+PiA+ICsKPj4gPiArc3RhdGljIGJvb2wgZ2V0X2F1 eF9iYWNrbGlnaHRfZW5hYmxlKHN0cnVjdCBkcm1fZHBfYXV4ICphdXgpIHsKPj4gPiArCXVpbnQ4 X3QgcmVhZF92YWwgPSAwOwo+PiA+ICsKPj4gPiArCWlmIChpbnRlbF9kcF9kcGNkX3JlYWRfd2Fr ZShhdXgsCj4+IERQX0VEUF9ESVNQTEFZX0NPTlRST0xfUkVHSVNURVIsCj4+ID4gKwkJCSZyZWFk X3ZhbCwgc2l6ZW9mKHJlYWRfdmFsKSkgPCAwKSB7Cj4+ID4gKwkJRFJNX0RFQlVHX0tNUygiRmFp bGVkIHRvIHJlYWQgRFBDRCByZWdpc3RlciAweCV4XG4iLAo+PiA+ICsJCQkJRFBfRURQX0RJU1BM QVlfQ09OVFJPTF9SRUdJU1RFUik7Cj4+ID4gKwkJfQo+PiA+ICsJcmV0dXJuIHJlYWRfdmFsICYg RFBfRURQX0JBQ0tMSUdIVF9FTkFCTEU7IH0KPj4gPiArCj4+ID4gKwo+PiA+ICtzdGF0aWMgYm9v bCBpc19hdXhfZGlzcGxheV9jb250cm9sX2NhcGFibGUoc3RydWN0IGRybV9jb25uZWN0b3IKPj4g PiArKmNvbm5lY3Rvcikgewo+PiA+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29k ZXIgPQo+PiBpbnRlbF9hdHRhY2hlZF9lbmNvZGVyKGNvbm5lY3Rvcik7Cj4+ID4gKwlzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZpbnRlbF9lbmNvZGVyLT5iYXNl KTsKPj4gPiArCXVpbnQ4X3QgZHBjZF9lZHBbMl0gPSB7IDB4MCB9Owo+PiA+ICsKPj4gPiArCS8q IENoZWNrIHRoZSAgZURQIERpc3BsYXkgY29udHJvbCBjYXBhYmlsaXRpZXMgcmVnaXN0ZXJzIHRv IGRldGVybWluZSBpZgo+PiA+ICsJICogdGhlIHBhbmVsIGNhbiBzdXBwb3J0IGJhY2tsaWdodCBj b250cm9sIG92ZXIgdGhlIGF1eCBjaGFubmVsKi8KPj4gPiArCWlmIChpbnRlbF9kcF9kcGNkX3Jl YWRfd2FrZSgmaW50ZWxfZHAtPmF1eCwKPj4gRFBfRURQX0dFTkVSQUxfQ0FQXzEsCj4+ID4gKwkJ CWRwY2RfZWRwLCBzaXplb2YoZHBjZF9lZHApKSA8IDApIHsKPj4gPiArCQlEUk1fREVCVUdfS01T KCJGYWlsZWQgdG8gcmVhZCBEUENEIERpc3BsYXkgQ29udHJvbAo+PiByZWdpc3RlcnNcbiIpOwo+ PiA+ICsJCXJldHVybiBmYWxzZTsKPj4gPiArCX0KPj4gPiArCURSTV9ERUJVR19LTVMoIkVEUCBE UENEIDogJSpwaFxuIiwgKGludCkgc2l6ZW9mKGRwY2RfZWRwKSwKPj4gPiArZHBjZF9lZHApOwo+ PiA+ICsKPj4gPiArCWlmIChkcGNkX2VkcFswXSAmCj4+IERQX0VEUF9UQ09OX0JBQ0tMSUdIVF9B REpVU1RNRU5UX0NBUEFCTEUgJiYKPj4gPiArCQkJKGRwY2RfZWRwWzBdICYKPj4gRFBfRURQX0JB Q0tMSUdIVF9BVVhfRU5BQkxFX0NBUEFCTEUpICYmCj4+ID4gKwkJCShkcGNkX2VkcFsxXSAmCj4+ IERQX0VEUF9CQUNLTElHSFRfQlJJR0hUTkVTU19BVVhfU0VUX0NBUEFCTEUpICYmCj4+ID4gKwkJ CSgocmVhZF9tb2RlX3NldF9yZWcoaW50ZWxfZHApICYKPj4gPiArCj4+IAlEUF9FRFBfQkFDS0xJ R0hUX0JSSUdIVE5FU1NfQ1RMX01PREVfRFBDRF9NQVNLKSkpIHsKPj4gPiArCj4+ID4gKwkJRFJN X0RFQlVHX0tNUygiQVVYIEJhY2tsaWdodCBDb250cm9sIFN1cHBvcnRlZCFcbiIpOwo+PiA+ICsK Pj4gPiArCQlpZiAoZHBjZF9lZHBbMV0gJgo+PiBEUF9FRFBfQkFDS0xJR0hUX0JSSUdIVE5FU1Nf QllURV9DT1VOVCkKPj4gPiArCQkJaW50ZWxfZHAtPmF1eF9iYWNrbGlnaHQudXNlX2xzYl9yZWcg PSB0cnVlOwo+PiA+ICsKPj4gPiArCQlyZXR1cm4gdHJ1ZTsKPj4gPiArCX0KPj4gPiArCXJldHVy biBmYWxzZTsKPj4gPiArfQo+PiA+ICsKPj4gPiArI2lmIElTX0VOQUJMRUQoQ09ORklHX0JBQ0tM SUdIVF9DTEFTU19ERVZJQ0UpCj4+ID4gKwo+PiA+ICsvKioKPj4gPiArICogU2VuZHMgdGhlIGN1 cnJlbnQgYmFja2xpZ2h0IGxldmVsIG92ZXIgdGhlIGF1eCBjaGFubmVsLCBjaGVja2luZwo+PiA+ ICtpZiBpdHMgdXNpbmcKPj4gPiArICogOC1iaXQgb3IgMTYgYml0IHZhbHVlIChNU0IgYW5kIExT QikgICovIHN0YXRpYyB2b2lkCj4+ID4gK3dyaXRlX2F1eF9iYWNrbGlnaHRfbGV2ZWwoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCwgdWludDE2X3QgbGV2ZWwpCj4+ID4gK3sKPj4gPiArCXVpbnQ4 X3QgdmFsc1syXSA9IHsgMHgwIH07Cj4+ID4gKwo+PiA+ICsJdmFsc1swXSA9IGxldmVsOwo+PiA+ ICsJRFJNX0RFQlVHX0tNUygiTGV2ZWwgMHgleFxuIiwgbGV2ZWwpOwo+PiA+ICsKPj4gPiArCS8q IFdyaXRlIHRoZSBNU0IgYW5kL29yIExTQiAqLwo+PiA+ICsJIGlmIChpbnRlbF9kcC0+YXV4X2Jh Y2tsaWdodC51c2VfbHNiX3JlZykgewo+PiA+ICsJCXZhbHNbMF0gPSAobGV2ZWwgJiAweEZGMDAp ID4+IDg7Cj4+ID4gKwkJdmFsc1sxXSA9IChsZXZlbCAmIDB4RkYpOwo+PiA+ICsJCWlmIChkcm1f ZHBfZHBjZF93cml0ZWIoJmludGVsX2RwLT5hdXgsCj4+ID4gKwkJCQlEUF9FRFBfQkFDS0xJR0hU X0JSSUdIVE5FU1NfTVNCLAo+PiB2YWxzWzFdKSA8IDApIHsKPj4gPiArCQkJRFJNX0RFQlVHX0tN UygiRmFpbGVkIHRvIHdyaXRlIGF1eCBiYWNrbGlnaHQKPj4gbGV2ZWxcbiIpOwo+PiA+ICsJCQly ZXR1cm47Cj4+ID4gKwkJfQo+PiA+ICsJIH0KPj4gPiArCWlmIChkcm1fZHBfZHBjZF93cml0ZWIo JmludGVsX2RwLT5hdXgsCj4+IERQX0VEUF9CQUNLTElHSFRfQlJJR0hUTkVTU19NU0IsCj4+ID4g KwkJCXZhbHNbMF0pIDwgMCkgewo+PiA+ICsJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byB3cml0 ZSBhdXggYmFja2xpZ2h0IGxldmVsXG4iKTsKPj4gPiArCQlyZXR1cm47Cj4+ID4gKwl9Cj4+ID4g KwlpbnRlbF9kcC0+YXV4X2JhY2tsaWdodC5sZXZlbCA9IGxldmVsOyB9Cj4+ID4gKwo+PiA+ICtz dGF0aWMgdm9pZCBzZXRfYXV4X2JhY2tsaWdodF9lbmFibGUoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCwgYm9vbAo+PiA+ICtlbmFibGUpIHsKPj4gPiArCXVpbnQ4X3QgcmVnX3ZhbCA9IDA7Cj4+ ID4gKwo+PiA+ICsJaWYgKGludGVsX2RwX2RwY2RfcmVhZF93YWtlKCZpbnRlbF9kcC0+YXV4LAo+ PiA+ICsJCQkJRFBfRURQX0RJU1BMQVlfQ09OVFJPTF9SRUdJU1RFUiwKPj4gPiArCQkJCSZyZWdf dmFsLCBzaXplb2YocmVnX3ZhbCkpIDwgMCkgewo+PiA+ICsJCURSTV9ERUJVR19LTVMoIkZhaWxl ZCB0byByZWFkIERQQ0QgcmVnaXN0ZXIgMHgleFxuIiwKPj4gPiArCQkJCURQX0VEUF9ESVNQTEFZ X0NPTlRST0xfUkVHSVNURVIpOwo+PiA+ICsJCXJldHVybjsKPj4gPiArCX0KPj4gPiArCWlmIChl bmFibGUpCj4+ID4gKwkJcmVnX3ZhbCB8PSBEUF9FRFBfQkFDS0xJR0hUX0VOQUJMRTsKPj4gPiAr CWVsc2UKPj4gPiArCQlyZWdfdmFsICY9IH4oRFBfRURQX0JBQ0tMSUdIVF9FTkFCTEUpOwo+PiA+ ICsKPj4gPiArCWlmIChkcm1fZHBfZHBjZF93cml0ZWIoJmludGVsX2RwLT5hdXgsCj4+IERQX0VE UF9ESVNQTEFZX0NPTlRST0xfUkVHSVNURVIsCj4+ID4gKwkJCXJlZ192YWwpIDwgMCkgewo+PiA+ ICsJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byAlcyBhdXggYmFja2xpZ2h0XG4iLAo+PiA+ICsJ CQkJZW5hYmxlID8gImVuYWJsZSIgOiAiZGlzYWJsZSIpOwo+PiA+ICsJCXJldHVybjsKPj4gPiAr CX0KPj4gPiArCWludGVsX2RwLT5hdXhfYmFja2xpZ2h0LmVuYWJsZWQgPSBlbmFibGU7IH0KPj4g PiArCj4+ID4gKy8qKgo+PiA+ICsgKiBpbnRlbF9kcF9hdXhfYmFja2xpZ2h0X2RldmljZV91cGRh dGVfc3RhdHVzCj4+ID4gKyAqIFdyaXRlcyB0byB0aGUgc3lzZnMgYmFja2xpZ2h0IGludGVyZmFj ZSB3aWxsIGNvbWUgaGVyZSB0byBzZXQgdGhlCj4+ID4gKyAqIGJhY2tsaWdodCBsZXZlbCBvciBk aXNhYmxlL2VuYWJsZSB0aGUgYmFja2xpZ2h0ICAqLyBzdGF0aWMgaW50Cj4+ID4gK2ludGVsX2Rw X2F1eF9iYWNrbGlnaHRfZGV2aWNlX3VwZGF0ZV9zdGF0dXMoc3RydWN0IGJhY2tsaWdodF9kZXZp Y2UKPj4gPiArKmJkKSB7Cj4+ID4gKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25u ZWN0b3IgPSBibF9nZXRfZGF0YShiZCk7Cj4+ID4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yID0gJmludGVsX2Nvbm5lY3Rvci0+YmFzZTsKPj4gPiArCXN0cnVjdCBpbnRlbF9lbmNv ZGVyICppbnRlbF9lbmNvZGVyID0KPj4gaW50ZWxfYXR0YWNoZWRfZW5jb2Rlcihjb25uZWN0b3Ip Owo+PiA+ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmaW50 ZWxfZW5jb2Rlci0+YmFzZSk7Cj4+ID4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVj dG9yLT5kZXY7Cj4+ID4gKwl1aW50MzJfdCBod19sZXZlbDsKPj4gPiArCWJvb2wgYmxfZW5hYmxl ID0gZmFsc2U7Cj4+ID4gKwo+PiA+ICsJRFJNX0RFQlVHX0tNUygiVXBkYXRpbmcgaW50ZWxfYXV4 X2JhY2tsaWdodC1EUCwKPj4gYnJpZ2h0bmVzcz0lZC8lZCwgYmxfcG93ZXIgJWRcbiIsCj4+ID4g KwkJCWJkLT5wcm9wcy5icmlnaHRuZXNzLCBiZC0+cHJvcHMubWF4X2JyaWdodG5lc3MsCj4+ID4g KwkJCWJkLT5wcm9wcy5wb3dlcik7Cj4+ID4gKwo+PiA+ICsJaWYgKGNvbm5lY3Rvci0+c3RhdHVz ICE9IGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkKQo+PiA+ICsJCXJldHVybiAtRU5PREVWOwo+ PiA+ICsKPj4gPiArCVdBUk5fT04oaW50ZWxfZHAtPmF1eF9iYWNrbGlnaHQubWF4ID09IDApOwo+ PiA+ICsKPj4gPiArCWRybV9tb2Rlc2V0X2xvY2soJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlv bl9tdXRleCwgTlVMTCk7Cj4+ID4gKwo+PiA+ICsJaHdfbGV2ZWwgPSBzY2FsZShiZC0+cHJvcHMu YnJpZ2h0bmVzcywKPj4gPiArCQkJMCwgYmQtPnByb3BzLm1heF9icmlnaHRuZXNzLAo+PiA+ICsJ CQlpbnRlbF9kcC0+YXV4X2JhY2tsaWdodC5taW4sIGludGVsX2RwLQo+PiA+YXV4X2JhY2tsaWdo dC5tYXgpOwo+PiA+ICsKPj4gPiArCWlmIChpbnRlbF9kcC0+YXV4X2JhY2tsaWdodC5sZXZlbCAh PSBod19sZXZlbCkKPj4gPiArCQl3cml0ZV9hdXhfYmFja2xpZ2h0X2xldmVsKGludGVsX2RwLCBo d19sZXZlbCk7Cj4+ID4gKwo+PiA+ICsJLyoKPj4gPiArCSAqIFRoaXMgZ2V0cyBjYWxsZWQgd2hl biBibF9wb3dlciBpcyB3cml0dGVuIHRvIGFzIHdlbGwuIENoZWNrIGlmIHRoZQo+PiA+ICsJICog YmxfcG93ZXIgc3RhdGUgaGFzIGNoYW5nZWQgYW5kIHdyaXRlIGl0Cj4+ID4gKwkgKi8KPj4gPiAr CWJsX2VuYWJsZSA9IChiZC0+cHJvcHMucG93ZXIgPT0gRkJfQkxBTktfVU5CTEFOSyk7Cj4+ID4g KwlpZiAoaW50ZWxfZHAtPmF1eF9iYWNrbGlnaHQuZW5hYmxlZCAhPSBibF9lbmFibGUpCj4+ID4g KwkJc2V0X2F1eF9iYWNrbGlnaHRfZW5hYmxlKGludGVsX2RwLCBibF9lbmFibGUpOwo+PiA+ICsK Pj4gPiArCWRybV9tb2Rlc2V0X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211 dGV4KTsKPj4gPiArCXJldHVybiAwOwo+PiA+ICt9Cj4+ID4gKwo+PiA+ICsvKioKPj4gPiArICog aW50ZWxfZHBfYXV4X2JhY2tsaWdodF9kZXZpY2VfZ2V0X2JyaWdodG5lc3MKPj4gPiArICogQ2Fs bGVkIG9uIHJlYWQgb2YgdGhlIHN5c2ZzIGJhY2tsaWdodCBpbnRlcmZhY2UgdG8gZ2V0IHRoZSBj dXJyZW50Cj4+ID4gK2JhY2tsaWdodAo+PiA+ICsgKiB2YWx1ZSBmcm9tIHRoZSBBVVggY2hhbm5l bC4KPj4gPiArICovCj4+ID4gK3N0YXRpYyBpbnQKPj4gPiAraW50ZWxfZHBfYXV4X2JhY2tsaWdo dF9kZXZpY2VfZ2V0X2JyaWdodG5lc3Moc3RydWN0IGJhY2tsaWdodF9kZXZpY2UKPj4gPiArKmJk KSB7Cj4+ID4gKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IgPSBibF9n ZXRfZGF0YShiZCk7Cj4+ID4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJmlu dGVsX2Nvbm5lY3Rvci0+YmFzZTsKPj4gPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25u ZWN0b3ItPmRldjsKPj4gPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyID0K Pj4gaW50ZWxfYXR0YWNoZWRfZW5jb2Rlcihjb25uZWN0b3IpOwo+PiA+ICsJc3RydWN0IGludGVs X2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmaW50ZWxfZW5jb2Rlci0+YmFzZSk7Cj4+ ID4gKwlpbnQgcmV0Owo+PiA+ICsKPj4gPiArCWlmIChjb25uZWN0b3ItPnN0YXR1cyAhPSBjb25u ZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZCkKPj4gPiArCQlyZXR1cm4gLUVOT0RFVjsKPj4gPiArCj4+ ID4gKwlkcm1fbW9kZXNldF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgs IE5VTEwpOwo+PiA+ICsKPj4gPiArCWludGVsX2RwLT5hdXhfYmFja2xpZ2h0LmxldmVsID0gcmVh ZF9hdXhfYmFja2xpZ2h0X2xldmVsKGludGVsX2RwKTsKPj4gPiArCj4+ID4gKwlyZXQgPSBzY2Fs ZShpbnRlbF9kcC0+YXV4X2JhY2tsaWdodC5sZXZlbCwKPj4gPiArCQkJaW50ZWxfZHAtPmF1eF9i YWNrbGlnaHQubWluLCBpbnRlbF9kcC0KPj4gPmF1eF9iYWNrbGlnaHQubWF4LAo+PiA+ICsJCQkw LCBiZC0+cHJvcHMubWF4X2JyaWdodG5lc3MpOwo+PiA+ICsKPj4gPiArCWRybV9tb2Rlc2V0X3Vu bG9jaygmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4KTsKPj4gPiArCj4+ID4gKwly ZXR1cm4gcmV0Owo+PiA+ICt9Cj4+ID4gKwo+PiA+ICtjb25zdCBzdHJ1Y3QgYmFja2xpZ2h0X29w cyBpbnRlbF9kcF9iYWNrbGlnaHRfZGV2aWNlX29wcyA9IHsKPj4gPiArCS51cGRhdGVfc3RhdHVz ID0gaW50ZWxfZHBfYXV4X2JhY2tsaWdodF9kZXZpY2VfdXBkYXRlX3N0YXR1cywKPj4gPiArCS5n ZXRfYnJpZ2h0bmVzcyA9IGludGVsX2RwX2F1eF9iYWNrbGlnaHRfZGV2aWNlX2dldF9icmlnaHRu ZXNzLAo+PiA+ICt9Owo+PiA+ICsKPj4gPiArc3RhdGljIHZvaWQgc2V0dXBfYmFja2xpZ2h0X29w cyhzdHJ1Y3QgaW50ZWxfYmFja2xpZ2h0ICpiYWNrbGlnaHQpIHsKPj4gPiArCWJhY2tsaWdodC0+ Ymxfb3BzID0gJmludGVsX2RwX2JhY2tsaWdodF9kZXZpY2Vfb3BzOyB9ICNlbHNlCj4+ID4gKwo+ PiA+ICtzdGF0aWMgdm9pZCBzZXR1cF9iYWNrbGlnaHRfb3BzKHN0cnVjdCBpbnRlbF9iYWNrbGln aHQgKmJhY2tsaWdodCkgewo+PiA+ICsKPj4gPiArfQo+PiA+ICsjZW5kaWYgLyogQ09ORklHX0JB Q0tMSUdIVF9DTEFTU19ERVZJQ0UgKi8KPj4gPiArCj4+ID4gKwo+PiA+ICtzdGF0aWMgdm9pZCBf YXV4X2JhY2tsaWdodF9pbml0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApIHsKPj4gPiArCXN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPQo+PiA+ICsmaW50ZWxfZHAtPmF0dGFjaGVk X2Nvbm5lY3Rvci0+YmFzZTsKPj4gPiArCj4+ID4gKwlpbnRlbF9kcC0+YXV4X2JhY2tsaWdodC5t YXggPSBNQVhfQVVYX0JMX0hXX0xFVkVMOwo+PiA+ICsJaW50ZWxfZHAtPmF1eF9iYWNrbGlnaHQu bWluID0gTUlOX0FVWF9CTF9IV19MRVZFTDsKPj4gPiArCj4+ID4gKwlpbnRlbF9kcC0+YXV4X2Jh Y2tsaWdodC5sZXZlbCA9IHJlYWRfYXV4X2JhY2tsaWdodF9sZXZlbChpbnRlbF9kcCk7Cj4+ID4g KwlpbnRlbF9kcC0+YXV4X2JhY2tsaWdodC5lbmFibGVkID0KPj4gPiArZ2V0X2F1eF9iYWNrbGln aHRfZW5hYmxlKCZpbnRlbF9kcC0+YXV4KTsKPj4gPiArCj4+ID4gKwlzZXR1cF9iYWNrbGlnaHRf b3BzKCZpbnRlbF9kcC0+YXV4X2JhY2tsaWdodCk7Cj4+ID4gKwkvKgo+PiA+ICsJKiBGb3IgQVVY IGJhY2tsaWdodCwgdXNpbmcgZGlmZmVyZW50IG5hbWUgZm9yIGVhY2ggRFAvZURQIGNvbm5lY3Rv cgo+PiA+ICsJKiB3aWxsIHByb2R1Y2UgcmVnaXN0cmF0aW9uIG9mIG11bHRpcGxlIERQLUFVWCBi YWNrbGlnaHQgZGV2aWNlcyBpbgo+PiA+ICsJKiB0aGUgZHJpdmVyLgo+PiA+ICsJKi8KPj4gPiAr CXNucHJpbnRmKGludGVsX2RwLT5hdXhfYmFja2xpZ2h0LmJsX25hbWUsCj4+IElOVEVMX0JBQ0tM SUdIVF9OQU1FX0xFTiwKPj4gPiArCQkJImludGVsX2F1eF9iYWNrbGlnaHQtJXMiLCBjb25uZWN0 b3ItPm5hbWUpOyB9Cj4+ID4gKwo+PiA+ICsvKioKPj4gPiArICogQ2FsbGVkIG9uIGNvbm5lY3Rv ciBpbml0aWFsaXphdGlvbiB0byBjaGVjayBmb3IgYXV4IGJhY2tsaWdodAo+PiA+ICtjb250cm9s Cj4+ID4gKyAqIGNhcGFiaWxpdHkgYW5kIGlmIHByZXNlbnQsIGluaXRpYWxpemUgaXQuCj4+ID4g KyAqLwo+PiA+ICsKPj4gPiArdm9pZCBpbnRlbF9kcF9hdXhfYmFja2xpZ2h0X2luaXQoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCwKPj4gPiArCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yKQo+PiA+ICt7Cj4+ID4gKwlpZiAoIWlzX2F1eF9kaXNwbGF5X2NvbnRyb2xfY2FwYWJsZShj b25uZWN0b3IpKSB7Cj4+ID4gKwkJRFJNX0RFQlVHX0tNUygiQmFja2xpZ2h0IGNvbnRyb2wgb3Zl ciBBVVggbm90Cj4+IHN1cHBvcnRlZFxuIik7Cj4+ID4gKwkJcmV0dXJuOwo+PiA+ICsJfQo+PiA+ ICsJaW50ZWxfZHAtPmF1eF9iYWNrbGlnaHQucHJlc2VudCA9IHRydWU7Cj4+ID4gKwo+PiA+ICsJ X2F1eF9iYWNrbGlnaHRfaW5pdChpbnRlbF9kcCk7Cj4+ID4gKwo+PiA+ICsJRFJNX0RFQlVHX0tN UygiQ29ubmVjdG9yICVzIGJhY2tsaWdodCAlcywgYnJpZ2h0bmVzcwo+PiAldS8ldVxuIiwKPj4g PiArCQkJY29ubmVjdG9yLT5uYW1lLAo+PiA+ICsJCQlpbnRlbF9kcC0+YXV4X2JhY2tsaWdodC5l bmFibGVkID8gImVuYWJsZWQiIDoKPj4gImRpc2FibGVkIiwKPj4gPiArCQkJaW50ZWxfZHAtPmF1 eF9iYWNrbGlnaHQubGV2ZWwsIGludGVsX2RwLQo+PiA+YXV4X2JhY2tsaWdodC5tYXgpOyB9Cj4+ ID4gKy8qKgo+PiA+ICsgKiBDbGVhbnVwIGF1eCBiYWNrbGlnaHQgY29udHJvbCBkYXRhICAqLyB2 b2lkCj4+ID4gK2ludGVsX2RwX2F1eF9iYWNrbGlnaHRfZGVzdHJveShzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yKSB7Cj4+ID4gKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5j b2RlciA9Cj4+IGludGVsX2F0dGFjaGVkX2VuY29kZXIoY29ubmVjdG9yKTsKPj4gPiArCXN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmludGVsX2VuY29kZXItPmJh c2UpOwo+PiA+ICsKPj4gPiArCWludGVsX2RwLT5hdXhfYmFja2xpZ2h0LnByZXNlbnQgPSBmYWxz ZTsgfQo+PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ PiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4gPiBpbmRleCA0NjQ4NGU0 Li40MzhhODdiIDEwMDY0NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCj4+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4gPiBAQCAt MTYzLDI2ICsxNjMsMzEgQEAgc3RydWN0IGludGVsX2VuY29kZXIgewo+PiA+ICAJZW51bSBocGRf cGluIGhwZF9waW47Cj4+ID4gIH07Cj4+ID4KPj4gPiArI2RlZmluZSBJTlRFTF9CQUNLTElHSFRf TkFNRV9MRU4gNTAKPj4gPiArc3RydWN0IGludGVsX2JhY2tsaWdodCB7Cj4+ID4gKwlib29sIHBy ZXNlbnQ7Cj4+ID4gKwl1MzIgbGV2ZWw7Cj4+ID4gKwl1MzIgbWluOwo+PiA+ICsJdTMyIG1heDsK Pj4gPiArCWJvb2wgZW5hYmxlZDsKPj4gPiArCWJvb2wgY29tYmluYXRpb25fbW9kZTsJLyogZ2Vu IDIvNCBvbmx5ICovCj4+ID4gKwlib29sIGFjdGl2ZV9sb3dfcHdtOwo+PiA+ICsKPj4gPiArCS8q IFBXTSBjaGlwICovCj4+ID4gKwlzdHJ1Y3QgcHdtX2RldmljZSAqcHdtOwo+PiA+ICsKPj4gPiAr CXN0cnVjdCBiYWNrbGlnaHRfZGV2aWNlICpkZXZpY2U7Cj4+ID4gKwljb25zdCBzdHJ1Y3QgYmFj a2xpZ2h0X29wcyAqYmxfb3BzOwo+PiA+ICsJY2hhciBibF9uYW1lW0lOVEVMX0JBQ0tMSUdIVF9O QU1FX0xFTl07Cj4+ID4gKwlib29sIHVzZV9sc2JfcmVnOwkvKiBhdXggYmFja2xpZ2h0IG9ubHkg Ki8KPj4gPiArfTsKPj4gPiArCj4+ID4gIHN0cnVjdCBpbnRlbF9wYW5lbCB7Cj4+ID4gIAlzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZml4ZWRfbW9kZTsKPj4gPiAgCXN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICpkb3duY2xvY2tfbW9kZTsKPj4gPiAgCWludCBmaXR0aW5nX21vZGU7Cj4+ID4KPj4g PiAtCS8qIGJhY2tsaWdodCAqLwo+PiA+IC0Jc3RydWN0IHsKPj4gPiAtCQlib29sIHByZXNlbnQ7 Cj4+ID4gLQkJdTMyIGxldmVsOwo+PiA+IC0JCXUzMiBtaW47Cj4+ID4gLQkJdTMyIG1heDsKPj4g PiAtCQlib29sIGVuYWJsZWQ7Cj4+ID4gLQkJYm9vbCBjb21iaW5hdGlvbl9tb2RlOwkvKiBnZW4g Mi80IG9ubHkgKi8KPj4gPiAtCQlib29sIGFjdGl2ZV9sb3dfcHdtOwo+PiA+IC0KPj4gPiAtCQkv KiBQV00gY2hpcCAqLwo+PiA+IC0JCXN0cnVjdCBwd21fZGV2aWNlICpwd207Cj4+ID4gLQo+PiA+ IC0JCXN0cnVjdCBiYWNrbGlnaHRfZGV2aWNlICpkZXZpY2U7Cj4+ID4gLQl9IGJhY2tsaWdodDsK Pj4gPiArCXN0cnVjdCBpbnRlbF9iYWNrbGlnaHQgYmFja2xpZ2h0Owo+PiA+Cj4+ID4gIAl2b2lk ICgqYmFja2xpZ2h0X3Bvd2VyKShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICosIGJvb2wgZW5hYmxl KTsgIH07Cj4+ID4gQEAgLTc3MSw2ICs3NzYsOCBAQCBzdHJ1Y3QgaW50ZWxfZHAgewo+PiA+ICAJ dW5zaWduZWQgbG9uZyBjb21wbGlhbmNlX3Rlc3RfdHlwZTsKPj4gPiAgCXVuc2lnbmVkIGxvbmcg Y29tcGxpYW5jZV90ZXN0X2RhdGE7Cj4+ID4gIAlib29sIGNvbXBsaWFuY2VfdGVzdF9hY3RpdmU7 Cj4+ID4gKwo+PiA+ICsJc3RydWN0IGludGVsX2JhY2tsaWdodCBhdXhfYmFja2xpZ2h0Owo+PiA+ ICB9Owo+PiA+Cj4+ID4gIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgewo+PiA+IEBAIC0xMjEw LDYgKzEyMTcsMTEgQEAgdm9pZCBpbnRlbF9lZHBfZHJyc19pbnZhbGlkYXRlKHN0cnVjdAo+PiBk cm1fZGV2aWNlICpkZXYsCj4+ID4gIAkJdW5zaWduZWQgZnJvbnRidWZmZXJfYml0cyk7Cj4+ID4g IHZvaWQgaW50ZWxfZWRwX2RycnNfZmx1c2goc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWdu ZWQKPj4gPiBmcm9udGJ1ZmZlcl9iaXRzKTsgIHZvaWQgaHN3X2RwX3NldF9kZGlfcGxsX3NlbChz dHJ1Y3QKPj4gPiBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7Cj4+ID4gK2Jvb2wgaW50 ZWxfZHBfZ2V0X2RwY2Qoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7IHNzaXplX3QKPj4gPiAr aW50ZWxfZHBfZHBjZF9yZWFkX3dha2Uoc3RydWN0IGRybV9kcF9hdXggKmF1eCwgdW5zaWduZWQg aW50IG9mZnNldCwKPj4gPiArCQl2b2lkICpidWZmZXIsIHNpemVfdCBzaXplKTsKPj4gPiArdWlu dDMyX3Qgc2NhbGUodWludDMyX3Qgc291cmNlX3ZhbCwgdWludDMyX3Qgc291cmNlX21pbiwgdWlu dDMyX3QKPj4gc291cmNlX21heCwKPj4gPiArCQl1aW50MzJfdCB0YXJnZXRfbWluLCB1aW50MzJf dCB0YXJnZXRfbWF4KTsKPj4gPgo+PiA+ICAvKiBpbnRlbF9kcF9tc3QuYyAqLwo+PiA+ICBpbnQg aW50ZWxfZHBfbXN0X2VuY29kZXJfaW5pdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0Cj4+ID4g KmludGVsX2RpZ19wb3J0LCBpbnQgY29ubl9pZCk7IEBAIC0xMzI4LDYgKzEzNDAsMTAgQEAgZXh0 ZXJuIHN0cnVjdAo+PiA+IGRybV9kaXNwbGF5X21vZGUgKmludGVsX2ZpbmRfcGFuZWxfZG93bmNs b2NrKCAgdm9pZAo+PiA+IGludGVsX2JhY2tsaWdodF9yZWdpc3RlcihzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KTsgIHZvaWQKPj4gPiBpbnRlbF9iYWNrbGlnaHRfdW5yZWdpc3RlcihzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KTsKPj4gPgo+PiA+ICsvKiBpbnRlbF9kcF9hdXhfYmFja2xpZ2h0X2N0bC5j ICovCj4+ID4gK3ZvaWQgaW50ZWxfZHBfYXV4X2JhY2tsaWdodF9pbml0KHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAsCj4+ID4gKwkJCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+ PiA+ICt2b2lkIGludGVsX2RwX2F1eF9iYWNrbGlnaHRfZGVzdHJveShzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yKTsKPj4gPgo+PiA+ICAvKiBpbnRlbF9wc3IuYyAqLwo+PiA+ICB2b2lk IGludGVsX3Bzcl9lbmFibGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7IGRpZmYgLS1naXQK Pj4gPiBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMKPj4gPiBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMKPj4gPiBpbmRleCAyMDM0NDM4YS4uYzYxZmI5MiAx MDA2NDQKPj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwo+PiA+IEBAIC00MTAsNyAr NDEwLDcgQEAgaW50ZWxfcGFuZWxfZGV0ZWN0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ID4g ICAqIFJldHVybiBAc291cmNlX3ZhbCBpbiByYW5nZSBbQHNvdXJjZV9taW4uLkBzb3VyY2VfbWF4 XSBzY2FsZWQgdG8KPj4gcmFuZ2UKPj4gPiAgICogW0B0YXJnZXRfbWluLi5AdGFyZ2V0X21heF0u Cj4+ID4gICAqLwo+PiA+IC1zdGF0aWMgdWludDMyX3Qgc2NhbGUodWludDMyX3Qgc291cmNlX3Zh bCwKPj4gPiArdWludDMyX3Qgc2NhbGUodWludDMyX3Qgc291cmNlX3ZhbCwKPj4gPiAgCQkgICAg ICB1aW50MzJfdCBzb3VyY2VfbWluLCB1aW50MzJfdCBzb3VyY2VfbWF4LAo+PiA+ICAJCSAgICAg IHVpbnQzMl90IHRhcmdldF9taW4sIHVpbnQzMl90IHRhcmdldF9tYXgpICB7IEBAIC0xMTUxLDE4 Cj4+ID4gKzExNTEsMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBiYWNrbGlnaHRfb3BzIGludGVs X2JhY2tsaWdodF9kZXZpY2Vfb3BzCj4+ID0gewo+PiA+ICAJLmdldF9icmlnaHRuZXNzID0gaW50 ZWxfYmFja2xpZ2h0X2RldmljZV9nZXRfYnJpZ2h0bmVzcywKPj4gPiAgfTsKPj4gPgo+PiA+IC1z dGF0aWMgaW50IGludGVsX2JhY2tsaWdodF9kZXZpY2VfcmVnaXN0ZXIoc3RydWN0IGludGVsX2Nv bm5lY3Rvcgo+PiA+ICpjb25uZWN0b3IpCj4+ID4gK3N0YXRpYyB2b2lkIHNldHVwX2JhY2tsaWdo dF9vcHMoc3RydWN0IGludGVsX2JhY2tsaWdodCAqYmFja2xpZ2h0KSB7Cj4+ID4gKwliYWNrbGln aHQtPmJsX29wcyA9ICZpbnRlbF9iYWNrbGlnaHRfZGV2aWNlX29wczsgfQo+PiA+ICsKPj4gPiAr c3RhdGljIGludCBpbnRlbF9iYWNrbGlnaHRfZGV2aWNlX3JlZ2lzdGVyKHN0cnVjdCBpbnRlbF9j b25uZWN0b3IKPj4gKmNvbm5lY3RvciwKPj4gPiArCQlzdHJ1Y3QgaW50ZWxfYmFja2xpZ2h0ICpi YWNrbGlnaHQpCj4+IAo+PiBBZ2FpbiwgQUZBSUNUIG9ubHkgZURQIGNhbiBoYXZlIHRoaXMsIHNv IGludGVsX3BhbmVsIGlzIHRoZSBwbGFjZSB0byBrZWVwCj4+IGludGVsX2JhY2tsaWdodCwgYW5k IHlvdSBkb24ndCBoYXZlIHRvIG1vZGlmeSB0aGUgc2lnbmF0dXJlIG9mIHRoaXMgZnVuY3Rpb24u Cj4+IAo+PiBFdmVuIGlmIHJlZ3VsYXIgRFAgc3VwcG9ydHMgdGhpcywgSSdkIGdvIHdpdGggYSBj bGVhbiBpbXBsZW1lbnRhdGlvbiBvbiBlRFAKPj4gb25seSBmaXJzdCwgZ2V0dGluZyB0aGF0IHdv cmtpbmcgYW5kIHJpZ2h0LCBhbmQgdGhlIGNvbnNpZGVyaW5nIHRoZSBpbXBsaWNhdGlvbnMKPj4g b2YgaGF2aW5nIGJhY2tsaWdodCBkZXZpY2VzIGZvciBleHRlcm5hbCBkaXNwbGF5cy4KPgo+IFRo YXQgbWFrZXMgc2Vuc2UsIEkgd2lsbCBsb29rIGF0IHRoZSBwYXRjaCB5b3Ugc2VudCBmb3Igc2V0 dGluZyB1cCAgdGhlIGVEUCBCYWNrbGlnaHQgY29udHJvbCBvdmVyIEFVWC4KPj4gCj4+ID4gIHsK Pj4gPiAtCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKPj4g PiAgCXN0cnVjdCBiYWNrbGlnaHRfcHJvcGVydGllcyBwcm9wczsKPj4gPgo+PiA+IC0JaWYgKFdB Uk5fT04ocGFuZWwtPmJhY2tsaWdodC5kZXZpY2UpKQo+PiA+ICsJaWYgKFdBUk5fT04oYmFja2xp Z2h0LT5kZXZpY2UpKQo+PiA+ICAJCXJldHVybiAtRU5PREVWOwo+PiA+Cj4+ID4gLQlpZiAoIXBh bmVsLT5iYWNrbGlnaHQucHJlc2VudCkKPj4gPiArCWlmICghYmFja2xpZ2h0LT5wcmVzZW50KQo+ PiA+ICAJCXJldHVybiAwOwo+PiA+Cj4+ID4gLQlXQVJOX09OKHBhbmVsLT5iYWNrbGlnaHQubWF4 ID09IDApOwo+PiA+ICsJV0FSTl9PTihiYWNrbGlnaHQtPm1heCA9PSAwKTsKPj4gPgo+PiA+ICAJ bWVtc2V0KCZwcm9wcywgMCwgc2l6ZW9mKHByb3BzKSk7Cj4+ID4gIAlwcm9wcy50eXBlID0gQkFD S0xJR0hUX1JBVzsKPj4gPiBAQCAtMTE3MSwzMCArMTE3NiwyNSBAQCBzdGF0aWMgaW50IGludGVs X2JhY2tsaWdodF9kZXZpY2VfcmVnaXN0ZXIoc3RydWN0Cj4+IGludGVsX2Nvbm5lY3RvciAqY29u bmVjdG9yKQo+PiA+ICAJICogTm90ZTogRXZlcnl0aGluZyBzaG91bGQgd29yayBldmVuIGlmIHRo ZSBiYWNrbGlnaHQgZGV2aWNlIG1heAo+PiA+ICAJICogcHJlc2VudGVkIHRvIHRoZSB1c2Vyc3Bh Y2UgaXMgYXJiaXRyYXJpbHkgY2hvc2VuLgo+PiA+ICAJICovCj4+ID4gLQlwcm9wcy5tYXhfYnJp Z2h0bmVzcyA9IHBhbmVsLT5iYWNrbGlnaHQubWF4Owo+PiA+IC0JcHJvcHMuYnJpZ2h0bmVzcyA9 IHNjYWxlX2h3X3RvX3VzZXIoY29ubmVjdG9yLAo+PiA+IC0JCQkJCSAgICBwYW5lbC0+YmFja2xp Z2h0LmxldmVsLAo+PiA+IC0JCQkJCSAgICBwcm9wcy5tYXhfYnJpZ2h0bmVzcyk7Cj4+ID4gKwlw cm9wcy5tYXhfYnJpZ2h0bmVzcyA9IGJhY2tsaWdodC0+bWF4Owo+PiA+ICsJcHJvcHMuYnJpZ2h0 bmVzcyA9IHNjYWxlKGJhY2tsaWdodC0+bGV2ZWwsIGJhY2tsaWdodC0+bWluLCBiYWNrbGlnaHQt Cj4+ID5tYXgsCj4+ID4gKwkJICAgICAwLCBwcm9wcy5tYXhfYnJpZ2h0bmVzcyk7Cj4+ID4KPj4g PiAtCWlmIChwYW5lbC0+YmFja2xpZ2h0LmVuYWJsZWQpCj4+ID4gKwlpZiAoYmFja2xpZ2h0LT5l bmFibGVkKQo+PiA+ICAJCXByb3BzLnBvd2VyID0gRkJfQkxBTktfVU5CTEFOSzsKPj4gPiAgCWVs c2UKPj4gPiAgCQlwcm9wcy5wb3dlciA9IEZCX0JMQU5LX1BPV0VSRE9XTjsKPj4gPgo+PiA+IC0J LyoKPj4gPiAtCSAqIE5vdGU6IHVzaW5nIHRoZSBzYW1lIG5hbWUgaW5kZXBlbmRlbnQgb2YgdGhl IGNvbm5lY3Rvcgo+PiBwcmV2ZW50cwo+PiA+IC0JICogcmVnaXN0cmF0aW9uIG9mIG11bHRpcGxl IGJhY2tsaWdodCBkZXZpY2VzIGluIHRoZSBkcml2ZXIuCj4+ID4gLQkgKi8KPj4gPiAtCXBhbmVs LT5iYWNrbGlnaHQuZGV2aWNlID0KPj4gPiAtCQliYWNrbGlnaHRfZGV2aWNlX3JlZ2lzdGVyKCJp bnRlbF9iYWNrbGlnaHQiLAo+PiA+ICsJYmFja2xpZ2h0LT5kZXZpY2UgPQo+PiA+ICsJCWJhY2ts aWdodF9kZXZpY2VfcmVnaXN0ZXIoYmFja2xpZ2h0LT5ibF9uYW1lLAo+PiA+ICAJCQkJCSAgY29u bmVjdG9yLT5iYXNlLmtkZXYsCj4+ID4gIAkJCQkJICBjb25uZWN0b3IsCj4+ID4gLQkJCQkJICAm aW50ZWxfYmFja2xpZ2h0X2RldmljZV9vcHMsCj4+ICZwcm9wcyk7Cj4+ID4gKwkJCQkJICBiYWNr bGlnaHQtPmJsX29wcywgJnByb3BzKTsKPj4gPgo+PiA+IC0JaWYgKElTX0VSUihwYW5lbC0+YmFj a2xpZ2h0LmRldmljZSkpIHsKPj4gPiArCWlmIChJU19FUlIoYmFja2xpZ2h0LT5kZXZpY2UpKSB7 Cj4+ID4gIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gcmVnaXN0ZXIgYmFja2xpZ2h0OiAlbGRcbiIs Cj4+ID4gLQkJCSAgUFRSX0VSUihwYW5lbC0+YmFja2xpZ2h0LmRldmljZSkpOwo+PiA+IC0JCXBh bmVsLT5iYWNrbGlnaHQuZGV2aWNlID0gTlVMTDsKPj4gPiArCQkJICBQVFJfRVJSKGJhY2tsaWdo dC0+ZGV2aWNlKSk7Cj4+ID4gKwkJYmFja2xpZ2h0LT5kZXZpY2UgPSBOVUxMOwo+PiA+ICAJCXJl dHVybiAtRU5PREVWOwo+PiA+ICAJfQo+PiA+Cj4+ID4gQEAgLTEyMDQsMjEgKzEyMDQsMjUgQEAg c3RhdGljIGludCBpbnRlbF9iYWNrbGlnaHRfZGV2aWNlX3JlZ2lzdGVyKHN0cnVjdAo+PiBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPj4gPiAgCXJldHVybiAwOwo+PiA+ICB9Cj4+ID4KPj4g PiAtc3RhdGljIHZvaWQgaW50ZWxfYmFja2xpZ2h0X2RldmljZV91bnJlZ2lzdGVyKHN0cnVjdCBp bnRlbF9jb25uZWN0b3IKPj4gPiAqY29ubmVjdG9yKQo+PiA+ICtzdGF0aWMgdm9pZCBpbnRlbF9i YWNrbGlnaHRfZGV2aWNlX3VucmVnaXN0ZXIoc3RydWN0IGludGVsX2JhY2tsaWdodAo+PiA+ICsq YmFja2xpZ2h0KQo+PiA+ICB7Cj4+ID4gLQlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNv bm5lY3Rvci0+cGFuZWw7Cj4+ID4gLQo+PiA+IC0JaWYgKHBhbmVsLT5iYWNrbGlnaHQuZGV2aWNl KSB7Cj4+ID4gLQkJYmFja2xpZ2h0X2RldmljZV91bnJlZ2lzdGVyKHBhbmVsLT5iYWNrbGlnaHQu ZGV2aWNlKTsKPj4gPiAtCQlwYW5lbC0+YmFja2xpZ2h0LmRldmljZSA9IE5VTEw7Cj4+ID4gKwlp ZiAoYmFja2xpZ2h0LT5kZXZpY2UpIHsKPj4gPiArCQliYWNrbGlnaHRfZGV2aWNlX3VucmVnaXN0 ZXIoYmFja2xpZ2h0LT5kZXZpY2UpOwo+PiA+ICsJCWJhY2tsaWdodC0+ZGV2aWNlID0gTlVMTDsK Pj4gPiAgCX0KPj4gPiAgfQo+PiA+ICsKPj4gPiAgI2Vsc2UgLyogQ09ORklHX0JBQ0tMSUdIVF9D TEFTU19ERVZJQ0UgKi8gLXN0YXRpYyBpbnQKPj4gPiBpbnRlbF9iYWNrbGlnaHRfZGV2aWNlX3Jl Z2lzdGVyKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPj4gPiArCj4+ID4gK3N0 YXRpYyBpbnQgaW50ZWxfYmFja2xpZ2h0X2RldmljZV9yZWdpc3RlcihzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yCj4+ICpjb25uZWN0b3IsCj4+ID4gKwkJc3RydWN0IGludGVsX2JhY2tsaWdodCAqYmFj a2xpZ2h0KQo+PiA+ICB7Cj4+ID4gIAlyZXR1cm4gMDsKPj4gPiAgfQo+PiA+IC1zdGF0aWMgdm9p ZCBpbnRlbF9iYWNrbGlnaHRfZGV2aWNlX3VucmVnaXN0ZXIoc3RydWN0IGludGVsX2Nvbm5lY3Rv cgo+PiA+ICpjb25uZWN0b3IpCj4+ID4gK3N0YXRpYyB2b2lkIGludGVsX2JhY2tsaWdodF9kZXZp Y2VfdW5yZWdpc3RlcihzdHJ1Y3QgaW50ZWxfYmFja2xpZ2h0Cj4+ID4gKypiYWNrbGlnaHQpIHsg fSBzdGF0aWMgdm9pZCBzZXR1cF9iYWNrbGlnaHRfb3BzKHN0cnVjdAo+PiA+ICtpbnRlbF9iYWNr bGlnaHQgKmJhY2tsaWdodCkKPj4gPiAgewo+PiA+ICB9Cj4+ID4gICNlbmRpZiAvKiBDT05GSUdf QkFDS0xJR0hUX0NMQVNTX0RFVklDRSAqLyBAQCAtMTY1Miw2ICsxNjU2LDE3Cj4+IEBAIGludAo+ PiA+IGludGVsX3BhbmVsX3NldHVwX2JhY2tsaWdodChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yLCBlbnVtIHBpcGUKPj4gPiBwaXBlKQo+PiA+Cj4+ID4gIAlwYW5lbC0+YmFja2xpZ2h0 LnByZXNlbnQgPSB0cnVlOwo+PiA+Cj4+ID4gKwlzZXR1cF9iYWNrbGlnaHRfb3BzKCZwYW5lbC0+ YmFja2xpZ2h0KTsKPj4gPiArCj4+ID4gKwkvKgo+PiA+ICsJICogTm90ZTogRm9yIGludGVybmFs IGRpc3BsYXlzLCB1c2luZyB0aGUgc2FtZSBuYW1lIGluZGVwZW5kZW50IG9mCj4+IHRoZQo+PiA+ ICsJICogY29ubmVjdG9yIHByZXZlbnRzIHJlZ2lzdHJhdGlvbiBvZiBtdWx0aXBsZSBiYWNrbGln aHQgZGV2aWNlcyBpbiB0aGUKPj4gPiArCSAqIGRyaXZlci4KPj4gPiArCSAqLwo+PiA+ICsJc3Ry bmNweShwYW5lbC0+YmFja2xpZ2h0LmJsX25hbWUsICJpbnRlbF9iYWNrbGlnaHQiLAo+PiA+ICsJ CQlJTlRFTF9CQUNLTElHSFRfTkFNRV9MRU4pOwo+PiA+ICsJcGFuZWwtPmJhY2tsaWdodC5ibF9u YW1lW0lOVEVMX0JBQ0tMSUdIVF9OQU1FX0xFTiAtIDFdID0gJ1wwJzsKPj4gPiArCj4+ID4gIAlE Uk1fREVCVUdfS01TKCJDb25uZWN0b3IgJXMgYmFja2xpZ2h0IGluaXRpYWxpemVkLCAlcywKPj4g YnJpZ2h0bmVzcyAldS8ldVxuIiwKPj4gPiAgCQkgICAgICBjb25uZWN0b3ItPm5hbWUsCj4+ID4g IAkJICAgICAgcGFuZWwtPmJhY2tsaWdodC5lbmFibGVkID8gImVuYWJsZWQiIDogImRpc2FibGVk IiwgQEAKPj4gPiAtMTc1NywxNiArMTc3Miw0MiBAQCB2b2lkIGludGVsX3BhbmVsX2Zpbmkoc3Ry dWN0IGludGVsX3BhbmVsICpwYW5lbCkKPj4gPgo+PiA+ICB2b2lkIGludGVsX2JhY2tsaWdodF9y ZWdpc3RlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KSAgewo+PiA+IC0Jc3RydWN0IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yOwo+PiA+ICsJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxf Y29ubmVjdG9yOwo+PiA+ICsKPj4gPiArCWxpc3RfZm9yX2VhY2hfZW50cnkoaW50ZWxfY29ubmVj dG9yLCAmZGV2LQo+PiA+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsCj4+ID4gKwkJCWJhc2Uu aGVhZCkgewo+PiA+ICsJCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSAmaW50ZWxf Y29ubmVjdG9yLT5iYXNlOwo+PiA+ICsKPj4gPiArCQlpbnRlbF9iYWNrbGlnaHRfZGV2aWNlX3Jl Z2lzdGVyKGludGVsX2Nvbm5lY3RvciwKPj4gPiArCQkJCSZpbnRlbF9jb25uZWN0b3ItPnBhbmVs LmJhY2tsaWdodCk7Cj4+ID4gKwo+PiA+ICsJCWlmIChjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBl ID09Cj4+IERSTV9NT0RFX0NPTk5FQ1RPUl9EaXNwbGF5UG9ydCB8fAo+PiA+ICsJCQkJY29ubmVj dG9yLT5jb25uZWN0b3JfdHlwZSA9PQo+PiBEUk1fTU9ERV9DT05ORUNUT1JfZURQKSB7Cj4+ID4g KwkJCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0KPj4gaW50ZWxfYXR0YWNoZWRfZW5j b2Rlcihjb25uZWN0b3IpOwo+PiA+ICsJCQlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0KPj4g ZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPj4gPgo+PiA+IC0JbGlzdF9mb3JfZWFj aF9lbnRyeShjb25uZWN0b3IsICZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LAo+PiBi YXNlLmhlYWQpCj4+ID4gLQkJaW50ZWxfYmFja2xpZ2h0X2RldmljZV9yZWdpc3Rlcihjb25uZWN0 b3IpOwo+PiA+ICsJCQlpbnRlbF9iYWNrbGlnaHRfZGV2aWNlX3JlZ2lzdGVyKGludGVsX2Nvbm5l Y3RvciwKPj4gPiArCQkJCQkmaW50ZWxfZHAtPmF1eF9iYWNrbGlnaHQpOwo+PiA+ICsJCX0KPj4g PiArCX0KPj4gPiAgfQo+PiA+Cj4+ID4gIHZvaWQgaW50ZWxfYmFja2xpZ2h0X3VucmVnaXN0ZXIo c3RydWN0IGRybV9kZXZpY2UgKmRldikgIHsKPj4gPiAtCXN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3RvcjsKPj4gPiArCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3Rv cjsKPj4gPiArCj4+ID4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGludGVsX2Nvbm5lY3RvciwgJmRl di0KPj4gPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LAo+PiA+ICsJCQliYXNlLmhlYWQpIHsK Pj4gPiArCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJmludGVsX2Nvbm5lY3Rv ci0+YmFzZTsKPj4gPiArCj4+ID4gKwo+PiA+ICtpbnRlbF9iYWNrbGlnaHRfZGV2aWNlX3VucmVn aXN0ZXIoJmludGVsX2Nvbm5lY3Rvci0+cGFuZWwuYmFja2xpZ2h0KTsKPj4gPgo+PiA+IC0JbGlz dF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9s aXN0LAo+PiBiYXNlLmhlYWQpCj4+ID4gLQkJaW50ZWxfYmFja2xpZ2h0X2RldmljZV91bnJlZ2lz dGVyKGNvbm5lY3Rvcik7Cj4+ID4gKwkJaWYgKGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgPT0K Pj4gRFJNX01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQb3J0IHx8Cj4+ID4gKwkJCQljb25uZWN0b3It PmNvbm5lY3Rvcl90eXBlID09Cj4+IERSTV9NT0RFX0NPTk5FQ1RPUl9lRFApIHsKPj4gPiArCQkJ c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPQo+PiBpbnRlbF9hdHRhY2hlZF9lbmNvZGVy KGNvbm5lY3Rvcik7Cj4+ID4gKwkJCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPQo+PiBlbmNf dG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+PiA+ICsKPj4gPiArCQkJaW50ZWxfYmFja2xp Z2h0X2RldmljZV91bnJlZ2lzdGVyKCZpbnRlbF9kcC0KPj4gPmF1eF9iYWNrbGlnaHQpOwo+PiA+ ICsJCX0KPj4gPiArCX0KPj4gPiAgfQo+PiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1f ZHBfaGVscGVyLmgKPj4gYi9pbmNsdWRlL2RybS9kcm1fZHBfaGVscGVyLmgKPj4gPiBpbmRleCA4 YzUyZDBlZjEuLjU4MjYxODMgMTAwNjQ0Cj4+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2RwX2hl bHBlci5oCj4+ID4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5oCj4+ID4gQEAgLTQ1 NSwxNiArNDU1LDIyIEBACj4+ID4gICMgZGVmaW5lIERQX0VEUF8xNAkJCSAgICAweDAzCj4+ID4K Pj4gPiAgI2RlZmluZSBEUF9FRFBfR0VORVJBTF9DQVBfMQkJICAgIDB4NzAxCj4+ID4gKyNkZWZp bmUgRFBfRURQX1RDT05fQkFDS0xJR0hUX0FESlVTVE1FTlRfQ0FQQUJMRSAgICAgICgxIDw8IDAp Cj4+ID4gKyNkZWZpbmUgRFBfRURQX0JBQ0tMSUdIVF9BVVhfRU5BQkxFX0NBUEFCTEUgICAgICAg ICAgICgxIDw8IDIpCj4+ID4KPj4gPiAgI2RlZmluZSBEUF9FRFBfQkFDS0xJR0hUX0FESlVTVE1F TlRfQ0FQICAgICAweDcwMgo+PiA+ICsjZGVmaW5lIERQX0VEUF9CQUNLTElHSFRfQlJJR0hUTkVT U19BVVhfU0VUX0NBUEFCTEUgICAoMSA8PCAxKQo+PiA+ICsjZGVmaW5lIERQX0VEUF9CQUNLTElH SFRfQlJJR0hUTkVTU19CWVRFX0NPVU5UICAgICAgICAoMSA8PCAyKQo+PiA+Cj4+ID4gICNkZWZp bmUgRFBfRURQX0dFTkVSQUxfQ0FQXzIJCSAgICAweDcwMwo+PiA+Cj4+ID4gICNkZWZpbmUgRFBf RURQX0dFTkVSQUxfQ0FQXzMJCSAgICAweDcwNCAgICAvKiBlRFAgMS40ICovCj4+ID4KPj4gPiAg I2RlZmluZSBEUF9FRFBfRElTUExBWV9DT05UUk9MX1JFR0lTVEVSICAgICAweDcyMAo+PiA+ICsj ZGVmaW5lIERQX0VEUF9CQUNLTElHSFRfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAoMSA8 PCAwKQo+PiA+Cj4+ID4gICNkZWZpbmUgRFBfRURQX0JBQ0tMSUdIVF9NT0RFX1NFVF9SRUdJU1RF UiAgMHg3MjEKPj4gPiArI2RlZmluZSBEUF9FRFBfQkFDS0xJR0hUX0JSSUdIVE5FU1NfQ1RMX01P REVfRFBDRF9NQVNLIDB4Mgo+PiA+Cj4+ID4gICNkZWZpbmUgRFBfRURQX0JBQ0tMSUdIVF9CUklH SFRORVNTX01TQiAgICAgMHg3MjIKPj4gPiAgI2RlZmluZSBEUF9FRFBfQkFDS0xJR0hUX0JSSUdI VE5FU1NfTFNCICAgICAweDcyMwo+PiA+IC0tCj4+ID4gMS45LjMKPj4gPgo+PiA+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+ID4gSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdAo+PiA+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gPiBodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4+IAo+ PiAtLQo+PiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIK Ci0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK