From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 30/49] drm/i915/bxt: add display initialize/uninitialize sequence Date: Thu, 2 Apr 2015 19:32:52 +0300 Message-ID: <20150402163252.GC17410@intel.com> References: <1426585215-8788-1-git-send-email-imre.deak@intel.com> <1426585215-8788-31-git-send-email-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 1B8D76EABE for ; Thu, 2 Apr 2015 09:33:10 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1426585215-8788-31-git-send-email-imre.deak@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Imre Deak Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBNYXIgMTcsIDIwMTUgYXQgMTE6Mzk6NTZBTSArMDIwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IEZyb206IFZhbmRhbmEgS2FubmFuIDx2YW5kYW5hLmthbm5hbkBpbnRlbC5jb20+Cj4gCj4g QWRkIGRpc3BsYXkgY2xvY2svUEhZIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIGFzIHBlciBCU3Bl Yy4KPiAKPiBVbnRpbCBHT1AvVkJJT1MgcHJvdmlkZXMgYW4gdXBwZXIgbGltaXQgdmFsdWUgZm9y IENEQ0xLLCBjb21wYXJpbmcgY2xvY2sKPiB2YWx1ZSB3aXRoIDYyNCBNSHogYW5kIHJldHVybmlu ZyAwIGluIGNhc2UgaXQgZXhjZWVkcy4KPiAKPiBOb3RlIHRoYXQgdGhlIENEIGNsb2NrIGFuZCBQ SFkgaW5pdGlhbGl6YXRpb24vdW5pbml0aWFsaXphdGlvbiBhcmUgZG9uZQo+IGF0IHRoZWlyIGN1 cnJlbnQgcGxhY2Ugb25seSBmb3Igc2ltcGxpY2l0eSwgaW4gYSBmdXR1cmUgcGF0Y2ggLSB3aGVu IG1vcmUKPiBvZiB0aGUgcnVudGltZSBQTSBmZWF0dXJlcyB3aWxsIGJlIGVuYWJsZWQgLSB0aGVz ZSB3aWxsIGJlIG1vdmVkIHRvCj4gcG93ZXIgd2VsbCMxIGFuZCBtb2Rlc2V0IGVuY29kZXIgZW5h YmxpbmcvZGlzYWJsaW5nIGhvb2tzIHJlc3BlY3RpdmVseS4KPiBUaGlzIGFsc28gbWVhbnMgdGhh dCBhdG0gZHluYW1pYyBwb3dlciBnYXRpbmcgcG93ZXIgd2VsbCAjMiBpcwo+IGVmZmVjdGl2ZWx5 IGRpc2FibGVkLgoKT0ssIEkndmUgZ29uZSB0aHJvdWdoIHRoZSBQSFkgc3R1ZmYgYSBiaXQgbm93 LCBhbmQgc2tpcHBlZCB0aGUgY2RjbGsKc3R1ZmYgdGhpcyB0aW1lLgoKPiAKPiB2MTogQWRkZWQg ZnVuY3Rpb24gZGVmaW5pdGlvbnMgaW4gaGVhZGVyIGZpbGVzCj4gdjI6IEltcmUncyByZXZpZXcg Y29tbWVudHMgYWRkcmVzc2VkCj4gLSBNb3ZlZCBDRENMSyByZWxhdGVkIGRlZmluaXRpb25zIHRv IGk5MTVfcmVnLmgKPiAtIFJlbW92ZWQgZGVmaW50aW9ucyBmb3IgQ0RDTEsgZnJlcXVlbmN5Cj4g LSBTcGxpdCB1bmluaXRfY2RjbGsoKSBieSBhZGRpbmcgYSBwaHlfdW5pbml0IGZ1bmN0aW9uCj4g LSBDYWxjdWxhdGUgZnJlcSBhbmQgZGVjaW1hbCBiYXNlZCBvbiBpbnB1dCBmcmVxdWVuY3kKPiAt IFByb2dyYW0gU1NBIHByZWNoYXJnZSBiYXNlZCBvbiBpbnB1dCBmcmVxdWVuY3kKPiAtIFVzZSB3 YWl0X2ZvciAxbXMgaW5zdGVhZCAyMDB1cyB1ZGVsYXkgZm9yIERFIFBMTCBsb2NraW5nCj4gLSBS ZW1vdmVkIGluaXRpYWwgdmFsdWUgZm9yIGRpdmlkZXIsIGZyZXEsIGRlY2ltYWwsIHJhdGlvLgo+ IC0gUmVwbGFjZWQgcG9sbGluZyBsb29wcyB3aXRoIHdhaXRfZm9yCj4gLSBQYXJhbWV0ZXJpemVk IGxhdGVuY3kgb3B0aW0gc2V0dGluZwo+IC0gRml4IHRoZSBwYXJ0cyB3aGVyZSBERSBQTEwgaGFz IHRvIGJlIGRpc2FibGVkLgo+IC0gQ2FsbCBDRENMSyBzZWxlY3Rpb24gZnJvbSBtb2RlIHNldAo+ IAo+IHYzOiAoaW1yZSkKPiAtIGFkZCBub3RlIGFib3V0IHRoZSBwbGFuIHRvIG1vdmUgdGhlIGNk Y2xrL3BoeSBpbml0IHRvIGEgYmV0dGVyIHBsYWNlCj4gLSB0YWtlIHJwcy5od19sb2NrIGFyb3Vu ZCBwY29kZSBhY2Nlc3MKPiAtIGZpeCBEREkgUEhZIHRpbWVvdXQgdmFsdWUKPiAtIHNxdWFzaCBp biBWYW5kYW5hJ3MgIlBPUlRfQ0wyQ01fRFc2X0EgQlVOIGZpeCIsCj4gICAiRERJIFBIWSBwcm9n cmFtbWluZyByZWdpc3RlciBkZWZuIiwgIkRvIGRkaV9waHlfaW5pdCBhbHdheXMiLAo+ICAgIkNo ZWNrIENEQ0xLIHVwcGVyIGxpbWl0IiBwYXRjaGVzCj4gLSBtb3ZlIFBIWSByZWdpc3RlciBtYWNy b3MgbmV4dCB0byB0aGUgY29ycmVzcG9uZGluZyBDSFYvVkxWIG1hY3Jvcwo+IC0gbW92ZSBERSBQ TEwgcmVnaXN0ZXIgbWFjcm9zIGhlcmUgZnJvbSBhbm90aGVyIHBhdGNoIHNpbmNlIHRoZXkgYXJl Cj4gICB1c2VkIGhlcmUgZmlyc3QKPiAtIGFkZCBCWFRfIHByZWZpeCB0byBDRENMSyBmbGFncwo+ IC0gcy9DT01NT05fUkVTRVQvQ09NTU9OX1JFU0VUX0RJUy8gYW5kIGNsYXJpZnkgcmVsYXRlZCBj b2RlIGNvbW1lbnRzCj4gLSBmaXggaW5jb3JyZWN0IHJlYWQgdmFsdWUgZm9yIHRoZSBSTVcgb2Yg QlhUX1BIWV9DVExfRkFNSUxZX0RESQo+IC0gZml4IHVzaW5nIEdUX0RJU1BMQVlfRURQX1BPV0VS X09OIHZzLiBHVF9ESVNQTEFZX0RESV9QT1dFUl9PTgo+ICAgd2hlbiBwb3dlcmluZyBvbiBEREkg cG9ydHMKPiAtIGZpeCBpbmNvcnJlY3QgcG9ydCB3aGVuIHNldHRpbmcgQlhUX1BPUlRfVFhfRFcx NF9MTiBmb3IgRERJIHBvcnRzCj4gLSBhZGQgbWlzc2luZyBtYXNraW5nIHdoZW4gcHJvZ3JhbW1p bmcgQ0RDTEtfRlJFUV9ERUNJTUFMCj4gLSBhZGQgbWlzc2luZyBwb3dlcmluZyBvbiBmb3IgRERJ LUMgcG9ydCwgcmVuYW1lIE9DTDJfTERPRlVTRV9QV1JfRU4KPiAgIHRvIE9DTDJfTERPRlVTRV9Q V1JfRElTIHRvIHJlZHVjZSBjb25mdXNpb24KPiAtIGFkZCBub3RlIGFib3V0IG1pc21hdGNoIHdp dGggYnNwZWMgaW4gdGhlIFBPUlRfUkVGX0RXNiBmaWVsZHMKPiAtIGZhY3RvciBvdXQgUEhZIGlu aXQgY29kZSB0byBhIG5ldyBmdW5jdGlvbiwgc28gd2UgY2FuIGNhbGwgaXQgZm9yCj4gICBQSFlf QSBhbmQgUEhZX0JDLCBpbnN0ZWFkIG9mIG9wZW4tY29kaW5nIHRoZSBzYW1lCj4gCj4gU2lnbmVk LW9mZi1ieTogVmFuZGFuYSBLYW5uYW4gPHZhbmRhbmEua2FubmFuQGludGVsLmNvbT4gKHYyKQo+ IFNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KPiAtLS0KPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgIHwgMTI2ICsrKysrKysrKysrKysr Kwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgICAgfCAyOTEgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jIHwgIDc1ICsrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaCAgICAgfCAgIDQgKwo+ICA0IGZpbGVzIGNoYW5nZWQsIDQ5NiBpbnNlcnRpb25zKCspCj4g Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5kZXggYjQ0NzRkMy4uYTM1NzljMCAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC0xMTIwLDYgKzExMjAsMTEwIEBAIGVudW0gc2ts X2Rpc3BfcG93ZXJfd2VsbHMgewo+ICAjZGVmaW5lICAgRFBJT19GUkNfTEFURU5DWV9TSEZJVAk4 Cj4gICNkZWZpbmUgQ0hWX1RYX0RXMTQoY2gsIGxhbmUpIF9UWExBTkUoY2gsIGxhbmUsIDB4Yjgp Cj4gICNkZWZpbmUgICBEUElPX1VQQVJfU0hJRlQJCTMwCj4gKwo+ICsvKiBCWFQgUEhZIHJlZ2lz dGVycyAqLwo+ICtlbnVtIGJ4dF9waHkgewo+ICsJQlhUX1BIWV9BLAo+ICsJQlhUX1BIWV9CQwo+ ICt9OwoKV2UgaGF2ZSBlbnVtIGRwaW9fcGh5IGFscmVhZHkuIEFsdGhvdWdoIGhlcmUgd2UgaGF2 ZSBkZWZpbmVkIDAgdG8gYmUgdGhlCnNpbmdsZSBjaGFubmVsIFBIWSBhbmQgMSBpcyB0aGUgdHdv IGNoYW5uZWwgUEhZLCAgd2hlcmVhcyBvbiBDSFYgaXQncwp0aGUgb3RoZXIgd2F5IGFyb3VuZC4g SSdtIGdvaW5nIHRvIHN1Z2dlc3Qgd2UgZmxpcCBCWFQgb3ZlciB0byB1c2UgdGhlCkNIViBzY2hl bWUgdG8gYXZvaWQgYW55IHN1cnBpc2VzIGxhdGVyIGlmIHdlIGFjdHVhbHkgdHJ5IHRvIHVuaWZ5 IHRoZQpjb2RlLgoKPiArCj4gKyNkZWZpbmUgQlhUX1BIWShwaHksIGEsIGIpCQkoKGEpICsgKHBo eSkgKiAoKGIpIC0gKGEpKSkKClRoaXMgc2VlbXMgdG8gYmUganVzdCBhbm90aGVyIF9QSVBFKCks IHNob3VsZCBhdCBsZWFzdCBoYXZlIGFuCnVuZGVyc2NvcmUgc28gdGhhdCBwZW9wbGUgZG9uJ3Qg Y29uZnVzZSBpdCB3aXRoIHNvbWV0aGluZyB0aGV5IGFyZQpzdXBwb3NlZCB0byB1c2UuCgo+ICsK PiArI2RlZmluZSBCWFRfUF9DUl9HVF9ESVNQX1BXUk9OXzBfMl8wX0dUVE1NQURSCTB4MTM4MDkw CgpXZSBjYW4gZHJvcCB0aGUgXzBfMl8wX0dUVE1NQURSIHN1ZmZpeCwgd2UndmUgbmV2ZXIgaW5j bHVkZWQgaXQgZm9yIGFueQpvdGhlciBwbGF0Zm9ybXMgZWl0aGVyLgoKPiArI2RlZmluZSAgIF9F RFBfUE9XRVJfT04JCQkJKDEgPDwgMSkKPiArI2RlZmluZSAgIF9ERElfUE9XRVJfT04JCQkJKDEg PDwgMCkKPiArI2RlZmluZSAgIEdUX0RJU1BMQVlfUE9XRVJfT04ocGh5KQkJQlhUX1BIWShwaHks IF9FRFBfUE9XRVJfT04sIFwKPiArCQkJCQkJCV9ERElfUE9XRVJfT04pCgpVc2luZyBhIF9QSVBF KCkgdHlwZSBvZiBtYWNybyBmb3IgcmVnaXN0ZXIgYml0cyBzZWVtcyBhIGJpdCB1bnVzdWFsLgpJ J2QganVzdCBvcGVuIGNvZGUgaXQgYXMgKDEgPDwgKHBoeSkpIG9yIHNvbWV0aGluZy4gVGhhdCBh bHNvIHdvcmsKYmV0dGVyIGlmIHdlIHRoZSBQSFlzIGFyb3VuZCBzbyB0aGF0IFBIWTAgaXMgdGhl IGR1YWwgY2hhbm5lbCBQSFkuCgo+ICsKPiArI2RlZmluZSBfUEhZX0NUTF9GQU1JTFlfRURQCQkw eDY0QzgwCj4gKyNkZWZpbmUgX1BIWV9DVExfRkFNSUxZX0RESQkJMHg2NEM5MAo+ICsjZGVmaW5l ICAgQ09NTU9OX1JFU0VUX0RJUwkJKDEgPDwgMzEpCj4gKyNkZWZpbmUgQlhUX1BIWV9DVExfRkFN SUxZKHBoeSkJCUJYVF9QSFkocGh5LCBfUEhZX0NUTF9GQU1JTFlfRURQLCBcCj4gKwkJCQkJCSAg ICAgX1BIWV9DVExfRkFNSUxZX0RESSkKPiArCj4gKy8qIEJYVCBQSFkgY29tbW9uIGxhbmUgcmVn aXN0ZXJzICovCj4gKyNkZWZpbmUgX1BPUlRfQ0wxQ01fRFcwX0EJCTB4MTYyMDAwCj4gKyNkZWZp bmUgX1BPUlRfQ0wxQ01fRFcwX0JDCQkweDZDMDAwCj4gKyNkZWZpbmUgICBQSFlfUE9XRVJfR09P RAkJKDEgPDwgMTYpCj4gKyNkZWZpbmUgQlhUX1BPUlRfQ0wxQ01fRFcwKHBoeSkJCUJYVF9QSFko cGh5LCBfUE9SVF9DTDFDTV9EVzBfQSwJXAo+ICsJCQkJCQkgICAgIF9QT1JUX0NMMUNNX0RXMF9C QykKCkknbSBhIGJpdCBzYWQgdGhlc2UgYXJlIG5vdCBzaGFyaW5nIHRoZSBDSFYgcmVnIGRlZmlu ZXMsIG9yIGV2ZW4KcmVzZW1ibGUgdGhlbSBpbiBhbnkgd2F5LgoKPiArCj4gKyNkZWZpbmUgX1BP UlRfQ0wxQ01fRFc5X0EJCTB4MTYyMDI0Cj4gKyNkZWZpbmUgX1BPUlRfQ0wxQ01fRFc5X0JDCQkw eDZDMDI0Cj4gKyNkZWZpbmUgICBJUkVGMFJDX09GRlNFVF9TSElGVAkJOAo+ICsjZGVmaW5lICAg SVJFRjBSQ19PRkZTRVRfTUFTSwkJKDB4RkYgPDwgSVJFRjBSQ19PRkZTRVRfU0hJRlQpCj4gKyNk ZWZpbmUgQlhUX1BPUlRfQ0wxQ01fRFc5KHBoeSkJCUJYVF9QSFkocGh5LCBfUE9SVF9DTDFDTV9E VzlfQSwJXAo+ICsJCQkJCQkgICAgIF9QT1JUX0NMMUNNX0RXOV9CQykKPiArCj4gKyNkZWZpbmUg X1BPUlRfQ0wxQ01fRFcxMF9BCQkweDE2MjAyOAo+ICsjZGVmaW5lIF9QT1JUX0NMMUNNX0RXMTBf QkMJCTB4NkMwMjgKPiArI2RlZmluZSAgIElSRUYxUkNfT0ZGU0VUX1NISUZUCQk4Cj4gKyNkZWZp bmUgICBJUkVGMVJDX09GRlNFVF9NQVNLCQkoMHhGRiA8PCBJUkVGMVJDX09GRlNFVF9TSElGVCkK PiArI2RlZmluZSBCWFRfUE9SVF9DTDFDTV9EVzEwKHBoeSkJQlhUX1BIWShwaHksIF9QT1JUX0NM MUNNX0RXMTBfQSwgXAo+ICsJCQkJCQkgICAgIF9QT1JUX0NMMUNNX0RXMTBfQkMpCj4gKwo+ICsj ZGVmaW5lIF9QT1JUX0NMMUNNX0RXMjhfQQkJMHgxNjIwNzAKPiArI2RlZmluZSBfUE9SVF9DTDFD TV9EVzI4X0JDCQkweDZDMDcwCj4gKyNkZWZpbmUgICBPQ0wxX1BPV0VSX0RPV05fRU4JCSgxIDw8 IDIzKQo+ICsjZGVmaW5lICAgRFcyOF9PTERPX0RZTl9QV1JfRE9XTl9FTgkoMSA8PCAyMikKPiAr I2RlZmluZSAgIFNVU19DTEtfQ09ORklHCQkweDMKPiArI2RlZmluZSBCWFRfUE9SVF9DTDFDTV9E VzI4KHBoeSkJQlhUX1BIWShwaHksIF9QT1JUX0NMMUNNX0RXMjhfQSwgXAo+ICsJCQkJCQkgICAg IF9QT1JUX0NMMUNNX0RXMjhfQkMpCj4gKwo+ICsjZGVmaW5lIF9QT1JUX0NMMUNNX0RXMzBfQQkJ MHgxNjIwNzgKPiArI2RlZmluZSBfUE9SVF9DTDFDTV9EVzMwX0JDCQkweDZDMDc4Cj4gKyNkZWZp bmUgICBPQ0wyX0xET0ZVU0VfUFdSX0RJUwkJKDEgPDwgNikKPiArI2RlZmluZSBCWFRfUE9SVF9D TDFDTV9EVzMwKHBoeSkJQlhUX1BIWShwaHksIF9QT1JUX0NMMUNNX0RXMzBfQSwgXAo+ICsJCQkJ CQkgICAgIF9QT1JUX0NMMUNNX0RXMzBfQkMpCj4gKwo+ICsvKiBEZWZpbmVkIGZvciBQSFlfQkMg b25seSAqLwo+ICsjZGVmaW5lIEJYVF9QT1JUX0NMMkNNX0RXNl9CQwkJMHg2QzM1OAo+ICsjZGVm aW5lICAgRFc2X09MRE9fRFlOX1BXUl9ET1dOX0VOCSgxIDw8IDI4KQo+ICsKPiArLyogQlhUIFBI WSBSZWYgcmVnaXN0ZXJzICovCj4gKyNkZWZpbmUgX1BPUlRfUkVGX0RXM19BCQkJMHgxNjIxOEMK PiArI2RlZmluZSBfUE9SVF9SRUZfRFczX0JDCQkweDZDMThDCj4gKyNkZWZpbmUgICBHUkNfRE9O RQkJCSgxIDw8IDIyKQo+ICsjZGVmaW5lIEJYVF9QT1JUX1JFRl9EVzMocGh5KQkJQlhUX1BIWShw aHksIF9QT1JUX1JFRl9EVzNfQSwJXAo+ICsJCQkJCQkgICAgIF9QT1JUX1JFRl9EVzNfQkMpCj4g Kwo+ICsjZGVmaW5lIF9QT1JUX1JFRl9EVzZfQQkJCTB4MTYyMTk4Cj4gKyNkZWZpbmUgX1BPUlRf UkVGX0RXNl9CQwkJMHg2QzE5OAo+ICsvKgo+ICsgKiBGSVhNRTogQlNwZWMgZGlzYWdyZWVzIG9u IHRoZSBmb2xsb3dpbmcgdHdvIGZpZWxkcywgY2hlY2sgdGhlbSB3aXRoCj4gKyAqIEhXL2RvY3Vt ZW50YXRpb24gcGVvcGxlLgo+ICsgKi8KCkNIViBjb25maWdkYiBhbHNvIGRpc2FncmVlcy4KCj4g KyNkZWZpbmUgICBHUkNfQ09ERV9TSElGVAkJMjMKPiArI2RlZmluZSAgIEdSQ19DT0RFX01BU0sJ CQkoMHgxRkYgPDwgR1JDX0NPREVfU0hJRlQpCj4gKyNkZWZpbmUgICBHUkNfQ09ERV9GQVNUX1NI SUZUCQkxNgo+ICsjZGVmaW5lICAgR1JDX0NPREVfRkFTVF9NQVNLCQkoMHg3RiA8PCBHUkNfQ09E RV9GQVNUX1NISUZUKQo+ICsjZGVmaW5lICAgR1JDX0NPREVfU0xPV19TSElGVAkJOAo+ICsjZGVm aW5lICAgR1JDX0NPREVfU0xPV19NQVNLCQkoMHhGRiA8PCBHUkNfQ09ERV9TTE9XX1NISUZUKQo+ ICsjZGVmaW5lICAgR1JDX0NPREVfTk9NX01BU0sJCTB4RkYKPiArI2RlZmluZSBCWFRfUE9SVF9S RUZfRFc2KHBoeSkJCUJYVF9QSFkocGh5LCBfUE9SVF9SRUZfRFc2X0EsCVwKPiArCQkJCQkJICAg ICBfUE9SVF9SRUZfRFc2X0JDKQo+ICsKPiArI2RlZmluZSBfUE9SVF9SRUZfRFc4X0EJCQkweDE2 MjFBMAo+ICsjZGVmaW5lIF9QT1JUX1JFRl9EVzhfQkMJCTB4NkMxQTAKPiArI2RlZmluZSAgIEdS Q19ESVMJCQkoMSA8PCAxNSkKPiArI2RlZmluZSAgIEdSQ19SRFlfT1ZSRAkJCSgxIDw8IDEpCj4g KyNkZWZpbmUgQlhUX1BPUlRfUkVGX0RXOChwaHkpCQlCWFRfUEhZKHBoeSwgX1BPUlRfUkVGX0RX OF9BLAlcCj4gKwkJCQkJCSAgICAgX1BPUlRfUkVGX0RXOF9CQykKPiArCj4gKy8qIEJYVCBQSFkg VFggcmVnaXN0ZXJzICovCj4gKyNkZWZpbmUgQlhUX0xBTkVfT0ZGU0VUKGxhbmUpICAgICAgICAg ICAoKChsYW5lKSA+PiAxKSAqIDB4MjAwICsJXAo+ICsJCQkJCSAoKGxhbmUpICYgMSkgKiAweDgw KQo+ICsKPiArI2RlZmluZSBfUE9SVF9UWF9EVzE0X0xOMF9BCQkweDE2MjUzOAo+ICsjZGVmaW5l IF9QT1JUX1RYX0RXMTRfTE4wX0IJCTB4NkM1MzgKPiArI2RlZmluZSBfUE9SVF9UWF9EVzE0X0xO MF9DCQkweDZDOTM4Cj4gKyNkZWZpbmUgICBMQVRFTkNZX09QVElNX1NISUZUCQkzMAo+ICsjZGVm aW5lICAgTEFURU5DWV9PUFRJTQkJCSgxIDw8IExBVEVOQ1lfT1BUSU1fU0hJRlQpCj4gKyNkZWZp bmUgQlhUX1BPUlRfVFhfRFcxNF9MTihwb3J0LCBsYW5lKQkoX1BPUlQzKHBvcnQsIF9QT1JUX1RY X0RXMTRfTE4wX0EsICAgXAo+ICsJCQkJCQkgICAgICBfUE9SVF9UWF9EVzE0X0xOMF9CLCAgIFwK PiArCQkJCQkJICAgICAgX1BPUlRfVFhfRFcxNF9MTjBfQykgKyBcCj4gKwkJCQkJIEJYVF9MQU5F X09GRlNFVChsYW5lKSkKPiArCj4gIC8qCj4gICAqIEZlbmNlIHJlZ2lzdGVycwo+ICAgKi8KPiBA QCAtNTMyNiw2ICs1NDMwLDkgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7Cj4gICNkZWZp bmUgIERJU1BfRkJDX1dNX0RJUwkJKDE8PDE1KQo+ICAjZGVmaW5lIERJU1BfQVJCX0NUTDIJMHg0 NTAwNAo+ICAjZGVmaW5lICBESVNQX0RBVEFfUEFSVElUSU9OXzVfNgkoMTw8NikKPiArI2RlZmlu ZSBEQlVGX0NUTAkweDQ1MDA4Cj4gKyNkZWZpbmUgIERCVUZfUE9XRVJfUkVRVUVTVAkJKDE8PDMx KQo+ICsjZGVmaW5lICBEQlVGX1BPV0VSX1NUQVRFCQkoMTw8MzApCj4gICNkZWZpbmUgR0VON19N U0dfQ1RMCTB4NDUwMTAKPiAgI2RlZmluZSAgV0FJVF9GT1JfUENIX1JFU0VUX0FDSwkJKDE8PDEp Cj4gICNkZWZpbmUgIFdBSVRfRk9SX1BDSF9GTFJfQUNLCQkoMTw8MCkKPHNuaXA+Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMKPiBpbmRleCBhMjAzZDlkLi43ODk2ODJkIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMKPiBAQCAtMTk1Nyw2ICsxOTU3LDI5NCBAQCBzdGF0aWMgdm9pZCBz a2xfc2hhcmVkX2RwbGxzX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ ICAJfQo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZCBieHRfaW5pdF9waHkoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIGJ4dF9waHkgcGh5KQo+ICt7Cj4gKwllbnVtIHBvcnQg cG9ydDsKPiArCXVpbnQzMl90IHZhbDsKPiArCj4gKwl2YWwgPSBJOTE1X1JFQUQoQlhUX1BfQ1Jf R1RfRElTUF9QV1JPTl8wXzJfMF9HVFRNTUFEUik7Cj4gKwl2YWwgfD0gR1RfRElTUExBWV9QT1dF Ul9PTihwaHkpOwo+ICsJSTkxNV9XUklURShCWFRfUF9DUl9HVF9ESVNQX1BXUk9OXzBfMl8wX0dU VE1NQURSLCB2YWwpOwo+ICsKPiArCS8qIENvbnNpZGVyaW5nIDEwbXMgdGltZW91dCB1bnRpbCBC U3BlYyBpcyB1cGRhdGVkICovCj4gKwlpZiAod2FpdF9mb3IoSTkxNV9SRUFEKEJYVF9QT1JUX0NM MUNNX0RXMChwaHkpKSAmIFBIWV9QT1dFUl9HT09ELCAxMCkpCj4gKwkJRFJNX0VSUk9SKCJ0aW1l b3V0IGR1cmluZyBQSFkjJWQgcG93ZXIgb25cbiIsIHBoeSk7Cj4gKwo+ICsJLyogUHJvZ3JhbSBs YXRlbmN5IG9wdGltIHNldHRpbmcgKi8KPiArCWZvciAocG9ydCA9ICAocGh5ID09IEJYVF9QSFlf QSA/IFBPUlRfQSA6IFBPUlRfQik7Cj4gKwkgICAgIHBvcnQgPD0gKHBoeSA9PSBCWFRfUEhZX0Eg PyBQT1JUX0EgOiBQT1JUX0MpOyBwb3J0KyspIHsKPiArCQlpbnQgbGFuZTsKPiArCj4gKwkJZm9y IChsYW5lID0gMDsgbGFuZSA8IDQ7IGxhbmUrKykgewo+ICsJCQl2YWwgPSBJOTE1X1JFQUQoQlhU X1BPUlRfVFhfRFcxNF9MTihwb3J0LCBsYW5lKSk7Cj4gKwkJCXZhbCAmPSB+TEFURU5DWV9PUFRJ TTsKPiArCQkJaWYgKGxhbmUgPT0gMSkKClNob3VsZCBiZSAhPSAxCgo+ICsJCQkJdmFsIHw9IExB VEVOQ1lfT1BUSU07Cj4gKwo+ICsJCQlJOTE1X1dSSVRFKEJYVF9QT1JUX1RYX0RXMTRfTE4ocG9y dCwgbGFuZSksIHZhbCk7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCS8qIFByb2dyYW0gUExMIFJjb21w IGNvZGUgb2Zmc2V0ICovCj4gKwl2YWwgPSBJOTE1X1JFQUQoQlhUX1BPUlRfQ0wxQ01fRFc5KHBo eSkpOwo+ICsJdmFsICY9IH5JUkVGMFJDX09GRlNFVF9NQVNLOwo+ICsJdmFsIHw9IDB4RTQgPDwg SVJFRjBSQ19PRkZTRVRfU0hJRlQ7Cj4gKwlJOTE1X1dSSVRFKEJYVF9QT1JUX0NMMUNNX0RXOShw aHkpLCB2YWwpOwo+ICsKPiArCXZhbCA9IEk5MTVfUkVBRChCWFRfUE9SVF9DTDFDTV9EVzEwKHBo eSkpOwo+ICsJdmFsICY9IH5JUkVGMVJDX09GRlNFVF9NQVNLOwo+ICsJdmFsIHw9IDB4RTQgPDwg SVJFRjFSQ19PRkZTRVRfU0hJRlQ7Cj4gKwlJOTE1X1dSSVRFKEJYVF9QT1JUX0NMMUNNX0RXMTAo cGh5KSwgdmFsKTsKPiArCj4gKwkvKiBQcm9ncmFtIHBvd2VyIGdhdGluZyAqLwo+ICsJdmFsID0g STkxNV9SRUFEKEJYVF9QT1JUX0NMMUNNX0RXMjgocGh5KSk7Cj4gKwl2YWwgfD0gT0NMMV9QT1dF Ul9ET1dOX0VOIHwgRFcyOF9PTERPX0RZTl9QV1JfRE9XTl9FTiB8Cj4gKwkJU1VTX0NMS19DT05G SUc7Cj4gKwlJOTE1X1dSSVRFKEJYVF9QT1JUX0NMMUNNX0RXMjgocGh5KSwgdmFsKTsKPiArCj4g KwlpZiAocGh5ID09IEJYVF9QSFlfQkMpIHsKPiArCQl2YWwgPSBJOTE1X1JFQUQoQlhUX1BPUlRf Q0wyQ01fRFc2X0JDKTsKPiArCQl2YWwgfD0gRFc2X09MRE9fRFlOX1BXUl9ET1dOX0VOOwo+ICsJ CUk5MTVfV1JJVEUoQlhUX1BPUlRfQ0wyQ01fRFc2X0JDLCB2YWwpOwo+ICsJfQo+ICsKPiArCXZh bCA9IEk5MTVfUkVBRChCWFRfUE9SVF9DTDFDTV9EVzMwKHBoeSkpOwo+ICsJdmFsICY9IH5PQ0wy X0xET0ZVU0VfUFdSX0RJUzsKPiArCS8qCj4gKwkgKiBPbiBQSFlfQSBkaXNhYmxlIHBvd2VyIG9u IHRoZSBzZWNvbmQgY2hhbm5lbCwgc2luY2Ugbm8gcG9ydCBpcwo+ICsJICogY29ubmVjdGVkIHRo ZXJlLiBPbiBQSFlfQkMgYm90aCBjaGFubmVscyBoYXZlIGEgcG9ydCwgc28gbGVhdmUgaXQKPiAr CSAqIGVuYWJsZWQuCj4gKwkgKiBOb3RlIHRoYXQgcG9ydCBDIGlzIG9ubHkgY29ubmVjdGVkIG9u IEJYVC1QLCBzbyBvbiBCWFQwLzEgd2Ugc2hvdWxkCj4gKwkgKiBwb3dlciBkb3duIHRoZSBzZWNv bmQgY2hhbm5lbCBvbiBQSFlfQkMgYXMgd2VsbC4KPiArCSAqLwo+ICsJaWYgKHBoeSA9PSBCWFRf UEhZX0EpCj4gKwkJdmFsIHw9IE9DTDJfTERPRlVTRV9QV1JfRElTOwo+ICsJSTkxNV9XUklURShC WFRfUE9SVF9DTDFDTV9EVzMwKHBoeSksIHZhbCk7Cj4gKwo+ICsJaWYgKHBoeSA9PSBCWFRfUEhZ X0JDKSB7Cj4gKwkJdWludDMyX3QgZ3JjX2NvZGU7Cj4gKwkJLyoKPiArCQkgKiBQSFlfQkMgaXNu J3QgY29ubmVjdGVkIHRvIGFuIFJDT01QIHJlc2lzdG9yIHNvIGNvcHkgb3Zlcgo+ICsJCSAqIHRo ZSBjb3JyZXNwb25kaW5nIGNhbGlicmF0ZWQgdmFsdWUgZnJvbSBQSFlfQSwgYW5kIGRpc2FibGUK PiArCQkgKiB0aGUgYXV0b21hdGljIGNhbGlicmF0aW9uIG9uIFBIWV9CQy4KPiArCQkgKi8KPiAr CQlpZiAod2FpdF9mb3IoSTkxNV9SRUFEKEJYVF9QT1JUX1JFRl9EVzMoQlhUX1BIWV9BKSkgJiBH UkNfRE9ORSwKPiArCQkJICAgICAxMCkpCj4gKwkJCURSTV9FUlJPUigidGltZW91dCB3YWl0aW5n IGZvciBQSFkjMCBHUkNcbiIpOwo+ICsKPiArCQl2YWwgPSBJOTE1X1JFQUQoQlhUX1BPUlRfUkVG X0RXNihCWFRfUEhZX0EpKTsKPiArCQl2YWwgPSAodmFsICYgR1JDX0NPREVfTUFTSykgPj4gR1JD X0NPREVfU0hJRlQ7Cj4gKwkJZ3JjX2NvZGUgPSB2YWwgPDwgR1JDX0NPREVfRkFTVF9TSElGVCB8 Cj4gKwkJCSAgIHZhbCA8PCBHUkNfQ09ERV9TTE9XX1NISUZUIHwKPiArCQkJICAgdmFsOwo+ICsJ CUk5MTVfV1JJVEUoQlhUX1BPUlRfUkVGX0RXNihCWFRfUEhZX0JDKSwgZ3JjX2NvZGUpOwo+ICsK PiArCQl2YWwgPSBJOTE1X1JFQUQoQlhUX1BPUlRfUkVGX0RXOChCWFRfUEhZX0JDKSk7Cj4gKwkJ dmFsIHw9IEdSQ19ESVMgfCBHUkNfUkRZX09WUkQ7Cj4gKwkJSTkxNV9XUklURShCWFRfUE9SVF9S RUZfRFc4KEJYVF9QSFlfQkMpLCB2YWwpOwo+ICsJfQo+ICsKPiArCS8qIFJlbGVhc2UgY29tbW9u X3Jlc2V0ICovCj4gKwl2YWwgPSBJOTE1X1JFQUQoQlhUX1BIWV9DVExfRkFNSUxZKHBoeSkpOwo+ ICsJdmFsIHw9IENPTU1PTl9SRVNFVF9ESVM7Cj4gKwlJOTE1X1dSSVRFKEJYVF9QSFlfQ1RMX0ZB TUlMWShwaHkpLCB2YWwpOwo+ICt9CgpJIHN1cHBvc2Ugd2UnbGwgd2FudCB0byBtb2RlbCB0aGlz IHRoaW5nIGFzIGEgcG93ZXIgd2VsbCBsaWtlIG9uIENIVgpldmVudHVhbGx5LCBidXQgSSBndWVz cyB3ZSBjYW4gc3RhcnQgb2ZmIHdpdGggaW5pdGlhbGl6aW5nIGl0IG9uY2UuCgo+ICsKPiArdm9p ZCBieHRfZGRpX3BoeV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gK3sKPiArCS8qIEVu YWJsZSBQSFlfQSBmaXJzdCBzaW5jZSBpdCBwcm92aWRlcyBSY29tcCBmb3IgUEhZX0JDICovCj4g KwlieHRfaW5pdF9waHkoZGV2LT5kZXZfcHJpdmF0ZSwgQlhUX1BIWV9BKTsKPiArCWJ4dF9pbml0 X3BoeShkZXYtPmRldl9wcml2YXRlLCBCWFRfUEhZX0JDKTsKPiArfQo+ICsKPiArc3RhdGljIHZv aWQgYnh0X2RkaV9waHlfdW5pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gK3sKPiArCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwl1 aW50MzJfdCB0ZW1wOwo+ICsKPiArCXRlbXAgPSBJOTE1X1JFQUQoQlhUX1BIWV9DVExfRkFNSUxZ KEJYVF9QSFlfQSkpOwo+ICsJSTkxNV9XUklURShCWFRfUEhZX0NUTF9GQU1JTFkoQlhUX1BIWV9B KSwgdGVtcCAmIH5DT01NT05fUkVTRVRfRElTKTsKPiArCj4gKwl0ZW1wID0gSTkxNV9SRUFEKEJY VF9QSFlfQ1RMX0ZBTUlMWShCWFRfUEhZX0JDKSk7Cj4gKwlJOTE1X1dSSVRFKEJYVF9QSFlfQ1RM X0ZBTUlMWShCWFRfUEhZX0JDKSwgdGVtcCAmIH5DT01NT05fUkVTRVRfRElTKTsKPiArCj4gKwlJ OTE1X1dSSVRFKEJYVF9QX0NSX0dUX0RJU1BfUFdST05fMF8yXzBfR1RUTU1BRFIsIDApOwo+ICt9 CgpUaGlzIHNob3VsZCByZWFsbHkgYmUgcGVyLXBoeSB0byBhdm9pZCBjb25mdXNpb24gd2hlbiBj b21wYXJpbmcgd2l0aCB0aGUKaW5pdCBmdW5jdGlvbi4KCj4gKwo8c25pcD4KPiArCj4gK3ZvaWQg Ynh0X2luaXRfY2RjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiArewo+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCj4gKwkvKiBO REVfUlNUV1JOX09QVCBSU1QgUENIIEhhbmRzaGFrZSBFbiBtdXN0IGFsd2F5cyBiZSAwYiBvbiBC WFQKPiArCSAqIG9yIGVsc2UgdGhlIHJlc2V0IHdpbGwgaGFuZyBiZWNhdXNlIHRoZXJlIGlzIG5v IFBDSCB0byByZXNwb25kLgo+ICsJICogTW92ZSB0aGUgaGFuZHNoYWtlIHByb2dyYW1taW5nIHRv IGluaXRpYWxpemF0aW9uIHNlcXVlbmNlLgo+ICsJICogUHJldmlvdXNseSB3YXMgbGVmdCB1cCB0 byBCSU9TLgo+ICsJICovCj4gKwl1MzIgdGVtcCA9IEk5MTVfUkVBRChIU1dfTkRFX1JTVFdSTl9P UFQpOwo+ICsKPiArCXRlbXAgJj0gflJFU0VUX1BDSF9IQU5EU0hBS0VfRU5BQkxFOwo+ICsJSTkx NV9XUklURShIU1dfTkRFX1JTVFdSTl9PUFQsIHRlbXApOwo+ICsKPiArCS8qIEVuYWJsZSBQRzEg Zm9yIGNkY2xrICovCj4gKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJpdiwgUE9XRVJf RE9NQUlOX1BMTFMpOwo+ICsKPiArCS8qIGNoZWNrIGlmIGNkIGNsb2NrIGlzIGVuYWJsZWQgKi8K PiArCWlmIChJOTE1X1JFQUQoQlhUX0RFX1BMTF9FTkFCTEUpICYgQlhUX0RFX1BMTF9QTExfRU5B QkxFKSB7Cj4gKwkJRFJNX0RFQlVHX0tNUygiRGlzcGxheSBhbHJlYWR5IGluaXRpYWxpemVkXG4i KTsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gKwo+ICsJLyogRklYTUU6LSBUaGUgaW5pdGlhbCBDRENM SyBuZWVkcyB0byBiZSByZWFkIGZyb20gVkJULgo+ICsJICogTmVlZCB0byBtYWtlIHRoaXMgY2hh bmdlIGFmdGVyIFZCVCBoYXMgY2hhbmdlcyBmb3IgQlhULgo+ICsJICovCj4gKwlieHRfc2VsZWN0 X2NkY2xrX2ZyZXEoZGV2LCA2MjQwMDApOwo+ICsKPiArCUk5MTVfV1JJVEUoREJVRl9DVEwsIEk5 MTVfUkVBRChEQlVGX0NUTCkgfCBEQlVGX1BPV0VSX1JFUVVFU1QpOwo+ICsJdWRlbGF5KDEwKTsK PiArCj4gKwlpZiAoIShJOTE1X1JFQUQoREJVRl9DVEwpICYgREJVRl9QT1dFUl9TVEFURSkpCj4g KwkJRFJNX0VSUk9SKCJEQnVmIHBvd2VyIGVuYWJsZSB0aW1lb3V0IVxuIik7Cj4gK30KClRoaXMg Y29kZSBzZWVtcyBsaWtlIHBvd2VyIHdlbGwgdGVycml0b3J5IGFnYWluLiBKdXN0IHN0dWZmaW5n IGl0IGludG8KUEcxIHdvdWxkIHNlZW0gbGlrZSBhIGdvb2QgZW5vdWdoIHNvbHV0aW9uIGp1ZGdp bmcgYnkgdGhlIGZhY3QgdGhhdCB3ZQpob2xkIHRoZSBQRzEgcmVmZXJlbmNlIGFzIGxvbmcgYXMg d2UgaGF2ZSB0aGUgREJVRiBwb3dlciByZXF1ZXN0IGVuYWJsZWQuCgpPciBhcmUgdGhlcmUgYWN0 dWFsIHVzZXMgZm9yIGhhdmluZyBQRzEgZW5hYmxlZCB3L28gdGhpcyB0aGluZz8KCj4gKwo+ICt2 b2lkIGJ4dF91bmluaXRfY2RjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiArewo+ICsJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCj4g KwlieHRfZGRpX3BoeV91bmluaXQoZGV2KTsKPiArCj4gKwlJOTE1X1dSSVRFKERCVUZfQ1RMLCBJ OTE1X1JFQUQoREJVRl9DVEwpICYgfkRCVUZfUE9XRVJfUkVRVUVTVCk7Cj4gKwl1ZGVsYXkoMTAp Owo+ICsKPiArCWlmIChJOTE1X1JFQUQoREJVRl9DVEwpICYgREJVRl9QT1dFUl9TVEFURSkKPiAr CQlEUk1fRVJST1IoIkRCdWYgcG93ZXIgZGlzYWJsZSB0aW1lb3V0IVxuIik7Cj4gKwo+ICsJYnh0 X3NlbGVjdF9jZGNsa19mcmVxKGRldiwgMCk7Cj4gKwo+ICsJaW50ZWxfZGlzcGxheV9wb3dlcl9w dXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9QTExTKTsKPiArfQo+ICsKPiAgdm9pZCBpbnRlbF9k ZGlfcGxsX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgewo+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiBAQCAtMTk3Myw2ICsy MjYxLDkgQEAgdm9pZCBpbnRlbF9kZGlfcGxsX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikK PiAgCWlmIChJU19TS1lMQUtFKGRldikpIHsKPiAgCQlpZiAoIShJOTE1X1JFQUQoTENQTEwxX0NU TCkgJiBMQ1BMTF9QTExfRU5BQkxFKSkKPiAgCQkJRFJNX0VSUk9SKCJMQ1BMTDEgaXMgZGlzYWJs ZWRcbiIpOwo+ICsJfSBlbHNlIGlmIChJU19CUk9YVE9OKGRldikpIHsKPiArCQlieHRfaW5pdF9j ZGNsayhkZXYpOwo+ICsJCWJ4dF9kZGlfcGh5X2luaXQoZGV2KTsKPiAgCX0gZWxzZSB7Cj4gIAkJ LyoKPiAgCQkgKiBUaGUgTENQTEwgcmVnaXN0ZXIgc2hvdWxkIGJlIHR1cm5lZCBvbiBieSB0aGUg QklPUy4gRm9yIG5vdwotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=