From mboxrd@z Thu Jan 1 00:00:00 1970 From: CK Hu Subject: Re: [PATCH v2 07/13] drm/mediatek: separae hdmi phy to different file Date: Mon, 10 Sep 2018 09:44:09 +0800 Message-ID: <1536543849.9336.7.camel@mtksdaap41> References: <20180905083146.14727-1-bibby.hsieh@mediatek.com> <20180905083146.14727-8-bibby.hsieh@mediatek.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180905083146.14727-8-bibby.hsieh@mediatek.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Bibby Hsieh Cc: linux-kernel@vger.kernel.org, Sascha Hauer , chunhui dai , David Airlie , Daniel Vetter , Cawa Cheng , dri-devel@lists.freedesktop.org, Mao Huang , Thierry Reding , linux-mediatek@lists.infradead.org, Matthias Brugger , Yingjoe Chen , linux-arm-kernel@lists.infradead.org List-Id: linux-mediatek@lists.infradead.org SGksIEJpYmJ5OgoKT24gV2VkLCAyMDE4LTA5LTA1IGF0IDE2OjMxICswODAwLCBCaWJieSBIc2ll aCB3cm90ZToKPiBGcm9tOiBjaHVuaHVpIGRhaSA8Y2h1bmh1aS5kYWlAbWVkaWF0ZWsuY29tPgo+ IAo+IERpZmZlcmVudCBJQyBoYXMgZGlmZmVyZW50IHBoeSBzZXR0aW5nIG9mIEhETUkuCj4gVGhp cyBwYXRjaCBzZXBhcmFlcyB0aGUgcGh5IGhhcmR3YXJlIHJlbGF0ZSBwYXJ0IGZvciBtdDgxNzMu Cj4gCj4gU2lnbmVkLW9mZi1ieTogY2h1bmh1aSBkYWkgPGNodW5odWkuZGFpQG1lZGlhdGVrLmNv bT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL01ha2VmaWxlICAgICAgICAgICAg ICB8ICAxNSArLS0KPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19oZG1pLmMgICAgICAg ICAgICB8ICAzMCArKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2hkbWkuaCAg ICAgICAgICAgIHwgIDI2ICsrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfaGRt aV9waHkuYyAgICAgICAgfCAxNTQgKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBkcml2ZXJz L2dwdS9kcm0vbWVkaWF0ZWsvbXRrX210ODE3M19oZG1pX3BoeS5jIHwgMTI5ICsrLS0tLS0tLS0t LS0tLS0tLS0tLQo+ICA1IGZpbGVzIGNoYW5nZWQsIDIxNiBpbnNlcnRpb25zKCspLCAxMzggZGVs ZXRpb25zKC0pCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2hkbWlfcGh5LmMKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL01ha2VmaWxlCj4gaW5kZXggY2U4 M2MzOTZhNzQyLi43Zjk0Nzk3OWQ2OGYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21l ZGlhdGVrL01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL01ha2VmaWxl Cj4gQEAgLTEsNCArMSwxMiBAQAo+ICAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4w Cj4gK21lZGlhdGVrLWRybS1oZG1pLW9ianMgOj0gbXRrX2NlYy5vIFwKPiArCQkJICBtdGtfaGRt aS5vIFwKPiArCQkJICBtdGtfaGRtaV9kZGMubyBcCj4gKwkJCSAgbXRrX210ODE3M19oZG1pX3Bo eS5vIFwKPiArCQkJICBtdGtfaGRtaV9waHkubwo+ICsKPiArb2JqLSQoQ09ORklHX0RSTV9NRURJ QVRFS19IRE1JKSArPSBtZWRpYXRlay1kcm0taGRtaS5vCj4gKwoKSXQgbG9va3MgbGlrZSB5b3Ug anVzdCB3YW50IHRvIGFkZCBtdGtfaGRtaV9waHkubywgSSB0aGluayB5b3UgbmVlZCBub3QKdG8g bW92ZSBtZWRpYXRlay1kcm0taGRtaS1vYmpzLgoKPiAgbWVkaWF0ZWstZHJtLXkgOj0gbXRrX2Rp c3BfY29sb3IubyBcCj4gIAkJICBtdGtfZGlzcF9vdmwubyBcCj4gIAkJICBtdGtfZGlzcF9yZG1h Lm8gXAo+IEBAIC0xNCwxMCArMjIsMyBAQCBtZWRpYXRlay1kcm0teSA6PSBtdGtfZGlzcF9jb2xv ci5vIFwKPiAgCQkgIG10a19kcGkubwo+ICAKPiAgb2JqLSQoQ09ORklHX0RSTV9NRURJQVRFSykg Kz0gbWVkaWF0ZWstZHJtLm8KPiAtCj4gLW1lZGlhdGVrLWRybS1oZG1pLW9ianMgOj0gbXRrX2Nl Yy5vIFwKPiAtCQkJICBtdGtfaGRtaS5vIFwKPiAtCQkJICBtdGtfaGRtaV9kZGMubyBcCj4gLQkJ CSAgbXRrX210ODE3M19oZG1pX3BoeS5vCj4gLQo+IC1vYmotJChDT05GSUdfRFJNX01FRElBVEVL X0hETUkpICs9IG1lZGlhdGVrLWRybS1oZG1pLm8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL21lZGlhdGVrL210a19oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2hk bWkuYwo+IGluZGV4IDJkNDVkMWRkOTU1NC4uN2MwMjJmM2Y1M2VjIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfaGRtaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L21lZGlhdGVrL210a19oZG1pLmMKPiBAQCAtMjMzLDYgKzIzMyw3IEBAIHN0YXRpYyB2b2lkIG10 a19oZG1pX2h3X3ZpZF9ibGFjayhzdHJ1Y3QgbXRrX2hkbWkgKmhkbWksIGJvb2wgYmxhY2spCj4g IHN0YXRpYyB2b2lkIG10a19oZG1pX2h3X21ha2VfcmVnX3dyaXRhYmxlKHN0cnVjdCBtdGtfaGRt aSAqaGRtaSwgYm9vbCBlbmFibGUpCj4gIHsKPiAgCXN0cnVjdCBhcm1fc21jY2NfcmVzIHJlczsK PiArCXN0cnVjdCBtdGtfaGRtaV9waHkgKmhkbWlfcGh5ID0gcGh5X2dldF9kcnZkYXRhKGhkbWkt PnBoeSk7Cj4gIAo+ICAJLyoKPiAgCSAqIE1UODE3MyBIRE1JIGhhcmR3YXJlIGhhcyBhbiBvdXRw dXQgY29udHJvbCBiaXQgdG8gZW5hYmxlL2Rpc2FibGUgSERNSQo+IEBAIC0yNDAsOCArMjQxLDEz IEBAIHN0YXRpYyB2b2lkIG10a19oZG1pX2h3X21ha2VfcmVnX3dyaXRhYmxlKHN0cnVjdCBtdGtf aGRtaSAqaGRtaSwgYm9vbCBlbmFibGUpCj4gIAkgKiBUaGUgQVJNIHRydXN0ZWQgZmlybXdhcmUg cHJvdmlkZXMgYW4gQVBJIGZvciB0aGUgSERNSSBkcml2ZXIgdG8gc2V0Cj4gIAkgKiB0aGlzIGNv bnRyb2wgYml0IHRvIGVuYWJsZSBIRE1JIG91dHB1dCBpbiBzdXBlcnZpc29yIG1vZGUuCj4gIAkg Ki8KPiAtCWFybV9zbWNjY19zbWMoTVRLX1NJUF9TRVRfQVVUSE9SSVpFRF9TRUNVUkVfUkVHLCAw eDE0MDAwOTA0LCAweDgwMDAwMDAwLAo+IC0JCSAgICAgIDAsIDAsIDAsIDAsIDAsICZyZXMpOwo+ ICsJaWYgKGhkbWlfcGh5LT5jb25mICYmIGhkbWlfcGh5LT5jb25mLT50el9lbmFibGVkKQo+ICsJ CWFybV9zbWNjY19zbWMoTVRLX1NJUF9TRVRfQVVUSE9SSVpFRF9TRUNVUkVfUkVHLCAweDE0MDAw OTA0LAo+ICsJCQkgICAgICAweDgwMDAwMDAwLCAwLCAwLCAwLCAwLCAwLCAmcmVzKTsKPiArCWVs c2UKPiArCQlyZWdtYXBfdXBkYXRlX2JpdHMoaGRtaS0+c3lzX3JlZ21hcCwKPiArCQkJCSAgIGhk bWktPnN5c19vZmZzZXQgKyBIRE1JX1NZU19DRkcyMCwKPiArCQkJCSAgIDB4ODAwMDgwMDUsIGVu YWJsZSA/IDB4ODAwMDAwMDUgOiAweDgwMDApOwoKSSB0aGluayB0aGlzIHNob3VsZCBiZSBtb3Zl ZCB0byAnZHJtL21lZGlhdGVrOiBhZGQgaGRtaSBkcml2ZXIgZm9yCk1UMjcwMSBhbmQgTVQ3NjIz Jy4gSWYgeW91IGNoYW5nZSB0aGUgdmFyaWFibGUgbmFtZSB0byB0el9kaXNhYmxlZCwgeW91CmNv dWxkIG1vZGlmeSB0aGlzIGluIGp1c3Qgb25lIHBhdGNoLgoKPiAgCj4gIAlyZWdtYXBfdXBkYXRl X2JpdHMoaGRtaS0+c3lzX3JlZ21hcCwgaGRtaS0+c3lzX29mZnNldCArIEhETUlfU1lTX0NGRzIw LAo+ICAJCQkgICBIRE1JX1BDTEtfRlJFRV9SVU4sIGVuYWJsZSA/IEhETUlfUENMS19GUkVFX1JV TiA6IDApOwo+IEBAIC0xNDM3LDYgKzE0NDMsNyBAQCBzdGF0aWMgaW50IG10a19oZG1pX2R0X3Bh cnNlX3BkYXRhKHN0cnVjdCBtdGtfaGRtaSAqaGRtaSwKPiAgCXN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKmNlY19wZGV2Owo+ICAJc3RydWN0IHJlZ21hcCAqcmVnbWFwOwo+ICAJc3RydWN0IHJlc291 cmNlICptZW07Cj4gKwljb25zdCBjaGFyICpwaHlfbmFtZTsKPiAgCWludCByZXQ7Cj4gIAo+ICAJ cmV0ID0gbXRrX2hkbWlfZ2V0X2FsbF9jbGsoaGRtaSwgbnApOwo+IEBAIC0xNDQ1LDYgKzE0NTIs MTggQEAgc3RhdGljIGludCBtdGtfaGRtaV9kdF9wYXJzZV9wZGF0YShzdHJ1Y3QgbXRrX2hkbWkg KmhkbWksCj4gIAkJcmV0dXJuIHJldDsKPiAgCX0KPiAgCj4gKwlyZXQgPSBvZl9wcm9wZXJ0eV9y ZWFkX3N0cmluZyhucCwgInBoeS1uYW1lcyIsICZwaHlfbmFtZSk7Cj4gKwlpZiAocmV0IDwgMCkg ewo+ICsJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIHJlYWQgcGh5LW5hbWVzOiAlZFxuIiwgcmV0 KTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsJaGRtaS0+cGh5ID0gZGV2bV9waHlfZ2V0KGRl diwgcGh5X25hbWUpOwo+ICsJaWYgKElTX0VSUihoZG1pLT5waHkpKSB7Cj4gKwkJcmV0ID0gUFRS X0VSUihoZG1pLT5waHkpOwo+ICsJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGdldCBIRE1JIFBI WTogJWRcbiIsIHJldCk7Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiArCgpJIHRoaW5rIHRoaXMg cGFydCBpcyBub3QgcmVsYXRlZCB0byAnc2VwYXJhdGUgaGRtaSBwaHkgdG8gZGlmZmVyZW50CmZp bGUnIGFuZCBJIGRvbid0IGtub3cgd2h5IHlvdSBkbyB0aGlzPyBJZiB5b3UgcmVhbGx5IG5lZWQg dGhpcywKc2VwYXJhdGUgdGhpcyB0byBhbiBpbmRlcGVuZGVudCBwYXRjaCBhbmQgZGVzY3JpYmUg d2h5IHlvdSBkbyB0aGlzLgoKUmVnYXJkcywKQ0sKCj4gIAkvKiBUaGUgQ0VDIG1vZHVsZSBoYW5k bGVzIEhETUkgaG90cGx1ZyBkZXRlY3Rpb24gKi8KPiAgCWNlY19ucCA9IG9mX2ZpbmRfY29tcGF0 aWJsZV9ub2RlKG5wLT5wYXJlbnQsIE5VTEwsCj4gIAkJCQkJICJtZWRpYXRlayxtdDgxNzMtY2Vj Iik7Cj4gQEAgLTE2NzcsMTMgKzE2OTYsNiBAQCBzdGF0aWMgaW50IG10a19kcm1faGRtaV9wcm9i ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAJaWYgKHJldCkKPiAgCQlyZXR1cm4g cmV0Owo+ICAKPiAtCWhkbWktPnBoeSA9IGRldm1fcGh5X2dldChkZXYsICJoZG1pIik7Cj4gLQlp ZiAoSVNfRVJSKGhkbWktPnBoeSkpIHsKPiAtCQlyZXQgPSBQVFJfRVJSKGhkbWktPnBoeSk7Cj4g LQkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gZ2V0IEhETUkgUEhZOiAlZFxuIiwgcmV0KTsKPiAt CQlyZXR1cm4gcmV0Owo+IC0JfQo+IC0KPiAgCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGhk bWkpOwo+ICAKPiAgCXJldCA9IG10a19oZG1pX291dHB1dF9pbml0KGhkbWkpOwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2hkbWkuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfaGRtaS5oCj4gaW5kZXggNjM3MWIzZGUxZmY2Li5hMzUwYTZjOTI3MWYg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19oZG1pLmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2hkbWkuaAo+IEBAIC0xMywxMSArMTMsMzcg QEAKPiAgICovCj4gICNpZm5kZWYgX01US19IRE1JX0NUUkxfSAo+ICAjZGVmaW5lIF9NVEtfSERN SV9DVFJMX0gKPiArI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgo+ICsjaW5jbHVkZSA8bGludXgvY2xr LXByb3ZpZGVyLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9waHkvcGh5Lmg+Cj4gKyNpbmNsdWRlIDxs aW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KPiArCj4gK3N0cnVjdCBtdGtfaGRtaV9waHlfY29uZiB7 Cj4gKwlib29sIHR6X2VuYWJsZWQ7Cj4gKwljb25zdCBzdHJ1Y3QgY2xrX29wcyAqaGRtaV9waHlf Y2xrX29wczsKPiArCWNvbnN0IHN0cnVjdCBwaHlfb3BzICpoZG1pX3BoeV9kZXZfb3BzOwo+ICt9 Owo+ICsKPiArc3RydWN0IG10a19oZG1pX3BoeSB7Cj4gKwl2b2lkIF9faW9tZW0gKnJlZ3M7Cj4g KwlzdHJ1Y3QgZGV2aWNlICpkZXY7Cj4gKwlzdHJ1Y3QgbXRrX2hkbWlfcGh5X2NvbmYgKmNvbmY7 Cj4gKwlzdHJ1Y3QgY2xrICpwbGw7Cj4gKwlzdHJ1Y3QgY2xrX2h3IHBsbF9odzsKPiArCXVuc2ln bmVkIGxvbmcgcGxsX3JhdGU7Cj4gKwl1bnNpZ25lZCBjaGFyIGRydl9pbXBfY2xrOwo+ICsJdW5z aWduZWQgY2hhciBkcnZfaW1wX2QyOwo+ICsJdW5zaWduZWQgY2hhciBkcnZfaW1wX2QxOwo+ICsJ dW5zaWduZWQgY2hhciBkcnZfaW1wX2QwOwo+ICsJdW5zaWduZWQgaW50IGliaWFzOwo+ICsJdW5z aWduZWQgaW50IGliaWFzX3VwOwo+ICt9Owo+ICAKPiAgc3RydWN0IHBsYXRmb3JtX2RyaXZlcjsK PiAgCj4gIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19jZWNfZHJpdmVyOwo+ICBl eHRlcm4gc3RydWN0IHBsYXRmb3JtX2RyaXZlciBtdGtfaGRtaV9kZGNfZHJpdmVyOwo+ICBleHRl cm4gc3RydWN0IHBsYXRmb3JtX2RyaXZlciBtdGtfaGRtaV9waHlfZHJpdmVyOwo+ICtleHRlcm4g c3RydWN0IG10a19oZG1pX3BoeV9jb25mIG10a19oZG1pX3BoeV84MTczX2NvbmY7Cj4gIAo+ICAj ZW5kaWYgLyogX01US19IRE1JX0NUUkxfSCAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2hkbWlfcGh5LmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRr X2hkbWlfcGh5LmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4u ODJlZDczNTc1ZTA0Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRp YXRlay9tdGtfaGRtaV9waHkuYwo+IEBAIC0wLDAgKzEsMTU0IEBACj4gKy8vIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBHUEwtMi4wCj4gKy8qCj4gKyAqIENvcHlyaWdodCAoYykgMjAxOCBNZWRp YVRlayBJbmMuCj4gKyAqIEF1dGhvcjogSmllIFFpdSA8amllLnFpdUBtZWRpYXRlay5jb20+Cj4g KyAqLwo+ICsKPiArI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgo+ICsjaW5jbHVkZSA8bGludXgvY2xr LXByb3ZpZGVyLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgo+ICsjaW5jbHVkZSA8bGlu dXgva2VybmVsLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9tZmQvc3lzY29uLmg+Cj4gKyNpbmNsdWRl IDxsaW51eC9tb2R1bGUuaD4KPiArI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3JtLmg+Cj4gKyNp bmNsdWRlIDxsaW51eC9vZi5oPgo+ICsjaW5jbHVkZSA8bGludXgvcGh5L3BoeS5oPgo+ICsjaW5j bHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+ Cj4gKyNpbmNsdWRlICJtdGtfaGRtaS5oIgo+ICsKPiArc3RhdGljIHZvaWQgbXRrX2hkbWlfcGh5 X2Nsa19nZXRfb3BzKHN0cnVjdCBtdGtfaGRtaV9waHkgKmhkbWlfcGh5LAo+ICsJCQkJICAgICBj b25zdCBzdHJ1Y3QgY2xrX29wcyAqKm9wcykKPiArewo+ICsJaWYgKGhkbWlfcGh5ICYmIGhkbWlf cGh5LT5jb25mICYmIGhkbWlfcGh5LT5jb25mLT5oZG1pX3BoeV9jbGtfb3BzKQo+ICsJCSpvcHMg PSBoZG1pX3BoeS0+Y29uZi0+aGRtaV9waHlfY2xrX29wczsKPiArCWVsc2UKPiArCQlkZXZfZXJy KGhkbWlfcGh5LT5kZXYsICJGYWlsZWQgdG8gZ2V0IGNsayBvcHMgb2YgcGh5XG4iKTsKPiArfQo+ ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBwaHlfb3BzICoKPiArbXRrX2hkbWlfcGh5X2Rldl9n ZXRfb3BzKGNvbnN0IHN0cnVjdCBtdGtfaGRtaV9waHkgKmhkbWlfcGh5KQo+ICt7Cj4gKwlpZiAo aGRtaV9waHkgJiYgaGRtaV9waHktPmNvbmYgJiYgaGRtaV9waHktPmNvbmYtPmhkbWlfcGh5X2Rl dl9vcHMpCj4gKwkJcmV0dXJuIGhkbWlfcGh5LT5jb25mLT5oZG1pX3BoeV9kZXZfb3BzOwo+ICsJ ZGV2X2VycihoZG1pX3BoeS0+ZGV2LCAiRmFpbGVkIHRvIGdldCBkZXYgb3BzIG9mIHBoeVxuIik7 Cj4gKwkJcmV0dXJuIE5VTEw7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbXRrX2hkbWlfcGh5X3By b2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gK3sKPiArCXN0cnVjdCBkZXZpY2Ug KmRldiA9ICZwZGV2LT5kZXY7Cj4gKwlzdHJ1Y3QgbXRrX2hkbWlfcGh5ICpoZG1pX3BoeTsKPiAr CXN0cnVjdCByZXNvdXJjZSAqbWVtOwo+ICsJc3RydWN0IGNsayAqcmVmX2NsazsKPiArCWNvbnN0 IGNoYXIgKnJlZl9jbGtfbmFtZTsKPiArCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGNsa19pbml0ID0g ewo+ICsJCS5udW1fcGFyZW50cyA9IDEsCj4gKwkJLnBhcmVudF9uYW1lcyA9IChjb25zdCBjaGFy ICogY29uc3QgKikmcmVmX2Nsa19uYW1lLAo+ICsJCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJF TlQgfCBDTEtfU0VUX1JBVEVfR0FURSwKPiArCX07Cj4gKwo+ICsJc3RydWN0IHBoeSAqcGh5Owo+ ICsJc3RydWN0IHBoeV9wcm92aWRlciAqcGh5X3Byb3ZpZGVyOwo+ICsJaW50IHJldDsKPiArCj4g KwloZG1pX3BoeSA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqaGRtaV9waHkpLCBHRlBfS0VS TkVMKTsKPiArCWlmICghaGRtaV9waHkpCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwo+ICsJbWVt ID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKPiArCWhk bWlfcGh5LT5yZWdzID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKGRldiwgbWVtKTsKPiArCWlmIChJ U19FUlIoaGRtaV9waHktPnJlZ3MpKSB7Cj4gKwkJcmV0ID0gUFRSX0VSUihoZG1pX3BoeS0+cmVn cyk7Cj4gKwkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gZ2V0IG1lbW9yeSByZXNvdXJjZTogJWRc biIsIHJldCk7Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwlyZWZfY2xrID0gZGV2bV9j bGtfZ2V0KGRldiwgInBsbF9yZWYiKTsKPiArCWlmIChJU19FUlIocmVmX2NsaykpIHsKPiArCQly ZXQgPSBQVFJfRVJSKHJlZl9jbGspOwo+ICsJCWRldl9lcnIoJnBkZXYtPmRldiwgIkZhaWxlZCB0 byBnZXQgUExMIHJlZmVyZW5jZSBjbG9jazogJWRcbiIsCj4gKwkJCXJldCk7Cj4gKwkJcmV0dXJu IHJldDsKPiArCX0KPiArCXJlZl9jbGtfbmFtZSA9IF9fY2xrX2dldF9uYW1lKHJlZl9jbGspOwo+ ICsKPiArCXJldCA9IG9mX3Byb3BlcnR5X3JlYWRfc3RyaW5nKGRldi0+b2Zfbm9kZSwgImNsb2Nr LW91dHB1dC1uYW1lcyIsCj4gKwkJCQkgICAgICAmY2xrX2luaXQubmFtZSk7Cj4gKwlpZiAocmV0 IDwgMCkgewo+ICsJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIHJlYWQgY2xvY2stb3V0cHV0LW5h bWVzOiAlZFxuIiwgcmV0KTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCWhkbWlfcGh5 LT5kZXYgPSBkZXY7Cj4gKwloZG1pX3BoeS0+Y29uZiA9Cj4gKwkJKHN0cnVjdCBtdGtfaGRtaV9w aHlfY29uZiAqKW9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YShkZXYpOwo+ICsJbXRrX2hkbWlfcGh5 X2Nsa19nZXRfb3BzKGhkbWlfcGh5LCAmY2xrX2luaXQub3BzKTsKPiArCWhkbWlfcGh5LT5wbGxf aHcuaW5pdCA9ICZjbGtfaW5pdDsKPiArCWhkbWlfcGh5LT5wbGwgPSBkZXZtX2Nsa19yZWdpc3Rl cihkZXYsICZoZG1pX3BoeS0+cGxsX2h3KTsKPiArCWlmIChJU19FUlIoaGRtaV9waHktPnBsbCkp IHsKPiArCQlyZXQgPSBQVFJfRVJSKGhkbWlfcGh5LT5wbGwpOwo+ICsJCWRldl9lcnIoZGV2LCAi RmFpbGVkIHRvIHJlZ2lzdGVyIFBMTDogJWRcbiIsIHJldCk7Cj4gKwkJcmV0dXJuIHJldDsKPiAr CX0KPiArCj4gKwlyZXQgPSBvZl9wcm9wZXJ0eV9yZWFkX3UzMihkZXYtPm9mX25vZGUsICJtZWRp YXRlayxpYmlhcyIsCj4gKwkJCQkgICAmaGRtaV9waHktPmliaWFzKTsKPiArCWlmIChyZXQgPCAw KSB7Cj4gKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiRmFpbGVkIHRvIGdldCBpYmlhczogJWRcbiIs IHJldCk7Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwlyZXQgPSBvZl9wcm9wZXJ0eV9y ZWFkX3UzMihkZXYtPm9mX25vZGUsICJtZWRpYXRlayxpYmlhc191cCIsCj4gKwkJCQkgICAmaGRt aV9waHktPmliaWFzX3VwKTsKPiArCWlmIChyZXQgPCAwKSB7Cj4gKwkJZGV2X2VycigmcGRldi0+ ZGV2LCAiRmFpbGVkIHRvIGdldCBpYmlhcyB1cDogJWRcbiIsIHJldCk7Cj4gKwkJcmV0dXJuIHJl dDsKPiArCX0KPiArCj4gKwlkZXZfaW5mbyhkZXYsICJVc2luZyBkZWZhdWx0IFRYIERSViBpbXBl ZGFuY2U6IDQuMmsvMzZcbiIpOwo+ICsJaGRtaV9waHktPmRydl9pbXBfY2xrID0gMHgzMDsKPiAr CWhkbWlfcGh5LT5kcnZfaW1wX2QyID0gMHgzMDsKPiArCWhkbWlfcGh5LT5kcnZfaW1wX2QxID0g MHgzMDsKPiArCWhkbWlfcGh5LT5kcnZfaW1wX2QwID0gMHgzMDsKPiArCj4gKwlwaHkgPSBkZXZt X3BoeV9jcmVhdGUoZGV2LCBOVUxMLCBtdGtfaGRtaV9waHlfZGV2X2dldF9vcHMoaGRtaV9waHkp KTsKPiArCWlmIChJU19FUlIocGh5KSkgewo+ICsJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGNy ZWF0ZSBIRE1JIFBIWVxuIik7Cj4gKwkJcmV0dXJuIFBUUl9FUlIocGh5KTsKPiArCX0KPiArCXBo eV9zZXRfZHJ2ZGF0YShwaHksIGhkbWlfcGh5KTsKPiArCj4gKwlwaHlfcHJvdmlkZXIgPSBkZXZt X29mX3BoeV9wcm92aWRlcl9yZWdpc3RlcihkZXYsIG9mX3BoeV9zaW1wbGVfeGxhdGUpOwo+ICsJ aWYgKElTX0VSUihwaHlfcHJvdmlkZXIpKSB7Cj4gKwkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8g cmVnaXN0ZXIgSERNSSBQSFlcbiIpOwo+ICsJCXJldHVybiBQVFJfRVJSKHBoeV9wcm92aWRlcik7 Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIG9mX2Nsa19hZGRfcHJvdmlkZXIoZGV2LT5vZl9ub2RlLCBv Zl9jbGtfc3JjX3NpbXBsZV9nZXQsCj4gKwkJCQkgICBoZG1pX3BoeS0+cGxsKTsKPiArfQo+ICsK PiArc3RhdGljIGludCBtdGtfaGRtaV9waHlfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpCj4gK3sKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0 IG9mX2RldmljZV9pZCBtdGtfaGRtaV9waHlfbWF0Y2hbXSA9IHsKPiArCXsgLmNvbXBhdGlibGUg PSAibWVkaWF0ZWssbXQ4MTczLWhkbWktcGh5IiwKPiArCSAgLmRhdGEgPSAmbXRrX2hkbWlfcGh5 XzgxNzNfY29uZiwKPiArCX0sCj4gKwl7fSwKPiArfTsKPiArCj4gK3N0cnVjdCBwbGF0Zm9ybV9k cml2ZXIgbXRrX2hkbWlfcGh5X2RyaXZlciA9IHsKPiArCS5wcm9iZSA9IG10a19oZG1pX3BoeV9w cm9iZSwKPiArCS5yZW1vdmUgPSBtdGtfaGRtaV9waHlfcmVtb3ZlLAo+ICsJLmRyaXZlciA9IHsK PiArCQkubmFtZSA9ICJtZWRpYXRlay1oZG1pLXBoeSIsCj4gKwkJLm9mX21hdGNoX3RhYmxlID0g bXRrX2hkbWlfcGh5X21hdGNoLAo+ICsJfSwKPiArfTsKPiArCj4gK01PRFVMRV9ERVNDUklQVElP TigiTWVkaWFUZWsgSERNSSBQSFkgRHJpdmVyIik7Cj4gK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIi KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19tdDgxNzNfaGRt aV9waHkuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfbXQ4MTczX2hkbWlfcGh5LmMK PiBpbmRleCA1MWNiOWNmYjY2NDYuLjFhMzVmZGQ0MDVkOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vbWVkaWF0ZWsvbXRrX210ODE3M19oZG1pX3BoeS5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19tdDgxNzNfaGRtaV9waHkuYwo+IEBAIC0yMSw2ICsyMSw3IEBA Cj4gICNpbmNsdWRlIDxsaW51eC9waHkvcGh5Lmg+Cj4gICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9y bV9kZXZpY2UuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Cj4gKyNpbmNsdWRlICJtdGtf aGRtaS5oIgo+ICAKPiAgI2RlZmluZSBIRE1JX0NPTjAJCTB4MDAKPiAgI2RlZmluZSBSR19IRE1J VFhfUExMX0VOCQlCSVQoMzEpCj4gQEAgLTEyMywyMCArMTI0LDYgQEAKPiAgI2RlZmluZSBSR1Nf SERNSVRYXzVUMV9FREcJCSgweGYgPDwgNCkKPiAgI2RlZmluZSBSR1NfSERNSVRYX1BMVUdfVFNU CQlCSVQoMCkKPiAgCj4gLXN0cnVjdCBtdGtfaGRtaV9waHkgewo+IC0Jdm9pZCBfX2lvbWVtICpy ZWdzOwo+IC0Jc3RydWN0IGRldmljZSAqZGV2Owo+IC0Jc3RydWN0IGNsayAqcGxsOwo+IC0Jc3Ry dWN0IGNsa19odyBwbGxfaHc7Cj4gLQl1bnNpZ25lZCBsb25nIHBsbF9yYXRlOwo+IC0JdTggZHJ2 X2ltcF9jbGs7Cj4gLQl1OCBkcnZfaW1wX2QyOwo+IC0JdTggZHJ2X2ltcF9kMTsKPiAtCXU4IGRy dl9pbXBfZDA7Cj4gLQl1MzIgaWJpYXM7Cj4gLQl1MzIgaWJpYXNfdXA7Cj4gLX07Cj4gLQo+ICBz dGF0aWMgY29uc3QgdTggUFJFRElWWzNdWzRdID0gewo+ICAJezB4MCwgMHgwLCAweDAsIDB4MH0s CS8qIDI3TWh6ICovCj4gIAl7MHgxLCAweDEsIDB4MSwgMHgxfSwJLyogNzRNaHogKi8KPiBAQCAt MzY3LDcgKzM1NCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIG10a19oZG1pX3BsbF9yZWNhbGNf cmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywKPiAgCXJldHVybiBoZG1pX3BoeS0+cGxsX3JhdGU7Cj4g IH0KPiAgCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBtdGtfaGRtaV9wbGxfb3BzID0g ewo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgbXRrX2hkbWlfcGh5X3BsbF9vcHMgPSB7 Cj4gIAkucHJlcGFyZSA9IG10a19oZG1pX3BsbF9wcmVwYXJlLAo+ICAJLnVucHJlcGFyZSA9IG10 a19oZG1pX3BsbF91bnByZXBhcmUsCj4gIAkuc2V0X3JhdGUgPSBtdGtfaGRtaV9wbGxfc2V0X3Jh dGUsCj4gQEAgLTQxNCwxMTggKzQwMSwxNiBAQCBzdGF0aWMgaW50IG10a19oZG1pX3BoeV9wb3dl cl9vZmYoc3RydWN0IHBoeSAqcGh5KQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyBj b25zdCBzdHJ1Y3QgcGh5X29wcyBtdGtfaGRtaV9waHlfb3BzID0gewo+ICtzdGF0aWMgY29uc3Qg c3RydWN0IHBoeV9vcHMgbXRrX2hkbWlfcGh5X2Rldl9vcHMgPSB7Cj4gIAkucG93ZXJfb24gPSBt dGtfaGRtaV9waHlfcG93ZXJfb24sCj4gIAkucG93ZXJfb2ZmID0gbXRrX2hkbWlfcGh5X3Bvd2Vy X29mZiwKPiAgCS5vd25lciA9IFRISVNfTU9EVUxFLAo+ICB9Owo+ICAKPiAtc3RhdGljIGludCBt dGtfaGRtaV9waHlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAtewo+IC0J c3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKPiAtCXN0cnVjdCBtdGtfaGRtaV9waHkg KmhkbWlfcGh5Owo+IC0Jc3RydWN0IHJlc291cmNlICptZW07Cj4gLQlzdHJ1Y3QgY2xrICpyZWZf Y2xrOwo+IC0JY29uc3QgY2hhciAqcmVmX2Nsa19uYW1lOwo+IC0Jc3RydWN0IGNsa19pbml0X2Rh dGEgY2xrX2luaXQgPSB7Cj4gLQkJLm9wcyA9ICZtdGtfaGRtaV9wbGxfb3BzLAo+IC0JCS5udW1f cGFyZW50cyA9IDEsCj4gLQkJLnBhcmVudF9uYW1lcyA9IChjb25zdCBjaGFyICogY29uc3QgKikm cmVmX2Nsa19uYW1lLAo+IC0JCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQgfCBDTEtfU0VU X1JBVEVfR0FURSwKPiAtCX07Cj4gLQlzdHJ1Y3QgcGh5ICpwaHk7Cj4gLQlzdHJ1Y3QgcGh5X3By b3ZpZGVyICpwaHlfcHJvdmlkZXI7Cj4gLQlpbnQgcmV0Owo+IC0KPiAtCWhkbWlfcGh5ID0gZGV2 bV9remFsbG9jKGRldiwgc2l6ZW9mKCpoZG1pX3BoeSksIEdGUF9LRVJORUwpOwo+IC0JaWYgKCFo ZG1pX3BoeSkKPiAtCQlyZXR1cm4gLUVOT01FTTsKPiAtCj4gLQltZW0gPSBwbGF0Zm9ybV9nZXRf cmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwo+IC0JaGRtaV9waHktPnJlZ3MgPSBk ZXZtX2lvcmVtYXBfcmVzb3VyY2UoZGV2LCBtZW0pOwo+IC0JaWYgKElTX0VSUihoZG1pX3BoeS0+ cmVncykpIHsKPiAtCQlyZXQgPSBQVFJfRVJSKGhkbWlfcGh5LT5yZWdzKTsKPiAtCQlkZXZfZXJy KGRldiwgIkZhaWxlZCB0byBnZXQgbWVtb3J5IHJlc291cmNlOiAlZFxuIiwgcmV0KTsKPiAtCQly ZXR1cm4gcmV0Owo+IC0JfQo+IC0KPiAtCXJlZl9jbGsgPSBkZXZtX2Nsa19nZXQoZGV2LCAicGxs X3JlZiIpOwo+IC0JaWYgKElTX0VSUihyZWZfY2xrKSkgewo+IC0JCXJldCA9IFBUUl9FUlIocmVm X2Nsayk7Cj4gLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiRmFpbGVkIHRvIGdldCBQTEwgcmVmZXJl bmNlIGNsb2NrOiAlZFxuIiwKPiAtCQkJcmV0KTsKPiAtCQlyZXR1cm4gcmV0Owo+IC0JfQo+IC0J cmVmX2Nsa19uYW1lID0gX19jbGtfZ2V0X25hbWUocmVmX2Nsayk7Cj4gLQo+IC0JcmV0ID0gb2Zf cHJvcGVydHlfcmVhZF9zdHJpbmcoZGV2LT5vZl9ub2RlLCAiY2xvY2stb3V0cHV0LW5hbWVzIiwK PiAtCQkJCSAgICAgICZjbGtfaW5pdC5uYW1lKTsKPiAtCWlmIChyZXQgPCAwKSB7Cj4gLQkJZGV2 X2VycihkZXYsICJGYWlsZWQgdG8gcmVhZCBjbG9jay1vdXRwdXQtbmFtZXM6ICVkXG4iLCByZXQp Owo+IC0JCXJldHVybiByZXQ7Cj4gLQl9Cj4gLQo+IC0JaGRtaV9waHktPnBsbF9ody5pbml0ID0g JmNsa19pbml0Owo+IC0JaGRtaV9waHktPnBsbCA9IGRldm1fY2xrX3JlZ2lzdGVyKGRldiwgJmhk bWlfcGh5LT5wbGxfaHcpOwo+IC0JaWYgKElTX0VSUihoZG1pX3BoeS0+cGxsKSkgewo+IC0JCXJl dCA9IFBUUl9FUlIoaGRtaV9waHktPnBsbCk7Cj4gLQkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8g cmVnaXN0ZXIgUExMOiAlZFxuIiwgcmV0KTsKPiAtCQlyZXR1cm4gcmV0Owo+IC0JfQo+IC0KPiAt CXJldCA9IG9mX3Byb3BlcnR5X3JlYWRfdTMyKGRldi0+b2Zfbm9kZSwgIm1lZGlhdGVrLGliaWFz IiwKPiAtCQkJCSAgICZoZG1pX3BoeS0+aWJpYXMpOwo+IC0JaWYgKHJldCA8IDApIHsKPiAtCQlk ZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gZ2V0IGliaWFzOiAlZFxuIiwgcmV0KTsKPiAt CQlyZXR1cm4gcmV0Owo+IC0JfQo+IC0KPiAtCXJldCA9IG9mX3Byb3BlcnR5X3JlYWRfdTMyKGRl di0+b2Zfbm9kZSwgIm1lZGlhdGVrLGliaWFzX3VwIiwKPiAtCQkJCSAgICZoZG1pX3BoeS0+aWJp YXNfdXApOwo+IC0JaWYgKHJldCA8IDApIHsKPiAtCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYWls ZWQgdG8gZ2V0IGliaWFzIHVwOiAlZFxuIiwgcmV0KTsKPiAtCQlyZXR1cm4gcmV0Owo+IC0JfQo+ IC0KPiAtCWRldl9pbmZvKGRldiwgIlVzaW5nIGRlZmF1bHQgVFggRFJWIGltcGVkYW5jZTogNC4y ay8zNlxuIik7Cj4gLQloZG1pX3BoeS0+ZHJ2X2ltcF9jbGsgPSAweDMwOwo+IC0JaGRtaV9waHkt PmRydl9pbXBfZDIgPSAweDMwOwo+IC0JaGRtaV9waHktPmRydl9pbXBfZDEgPSAweDMwOwo+IC0J aGRtaV9waHktPmRydl9pbXBfZDAgPSAweDMwOwo+IC0KPiAtCXBoeSA9IGRldm1fcGh5X2NyZWF0 ZShkZXYsIE5VTEwsICZtdGtfaGRtaV9waHlfb3BzKTsKPiAtCWlmIChJU19FUlIocGh5KSkgewo+ IC0JCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGNyZWF0ZSBIRE1JIFBIWVxuIik7Cj4gLQkJcmV0 dXJuIFBUUl9FUlIocGh5KTsKPiAtCX0KPiAtCXBoeV9zZXRfZHJ2ZGF0YShwaHksIGhkbWlfcGh5 KTsKPiAtCj4gLQlwaHlfcHJvdmlkZXIgPSBkZXZtX29mX3BoeV9wcm92aWRlcl9yZWdpc3Rlcihk ZXYsIG9mX3BoeV9zaW1wbGVfeGxhdGUpOwo+IC0JaWYgKElTX0VSUihwaHlfcHJvdmlkZXIpKQo+ IC0JCXJldHVybiBQVFJfRVJSKHBoeV9wcm92aWRlcik7Cj4gLQo+IC0JaGRtaV9waHktPmRldiA9 IGRldjsKPiAtCXJldHVybiBvZl9jbGtfYWRkX3Byb3ZpZGVyKGRldi0+b2Zfbm9kZSwgb2ZfY2xr X3NyY19zaW1wbGVfZ2V0LAo+IC0JCQkJICAgaGRtaV9waHktPnBsbCk7Cj4gLX0KPiAtCj4gLXN0 YXRpYyBpbnQgbXRrX2hkbWlfcGh5X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 KQo+IC17Cj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9k ZXZpY2VfaWQgbXRrX2hkbWlfcGh5X21hdGNoW10gPSB7Cj4gLQl7IC5jb21wYXRpYmxlID0gIm1l ZGlhdGVrLG10ODE3My1oZG1pLXBoeSIsIH0sCj4gLQl7fSwKPiAtfTsKPiAtCj4gLXN0cnVjdCBw bGF0Zm9ybV9kcml2ZXIgbXRrX2hkbWlfcGh5X2RyaXZlciA9IHsKPiAtCS5wcm9iZSA9IG10a19o ZG1pX3BoeV9wcm9iZSwKPiAtCS5yZW1vdmUgPSBtdGtfaGRtaV9waHlfcmVtb3ZlLAo+IC0JLmRy aXZlciA9IHsKPiAtCQkubmFtZSA9ICJtZWRpYXRlay1oZG1pLXBoeSIsCj4gLQkJLm9mX21hdGNo X3RhYmxlID0gbXRrX2hkbWlfcGh5X21hdGNoLAo+IC0JfSwKPiArc3RydWN0IG10a19oZG1pX3Bo eV9jb25mIG10a19oZG1pX3BoeV84MTczX2NvbmYgPSB7Cj4gKwkudHpfZW5hYmxlZCA9IHRydWUs Cj4gKwkuaGRtaV9waHlfY2xrX29wcyA9ICZtdGtfaGRtaV9waHlfcGxsX29wcywKPiArCS5oZG1p X3BoeV9kZXZfb3BzID0gJm10a19oZG1pX3BoeV9kZXZfb3BzLAo+ICB9Owo+ICAKPiAgTU9EVUxF X0FVVEhPUigiSmllIFFpdSA8amllLnFpdUBtZWRpYXRlay5jb20+Iik7CgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==