From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 33FB86E21D for ; Tue, 15 Jun 2021 09:04:33 +0000 (UTC) From: Jani Nikula In-Reply-To: <022ace71648746a6b89ddea38d3bfead@intel.com> References: <20210611052005.303-1-venkata.sai.patnana@intel.com> <022ace71648746a6b89ddea38d3bfead@intel.com> Date: Tue, 15 Jun 2021 12:04:24 +0300 Message-ID: <87fsxjxzvr.fsf@intel.com> MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t 01/17] tests/kms_dither: New IGT to validate crtc Dithering List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: "Shankar, Uma" , "Modem, Bhanuprakash" , "Patnana, Venkata Sai" , "igt-dev@lists.freedesktop.org" Cc: "Varide, Nischal" , "Latvala, Petri" List-ID: T24gVHVlLCAxNSBKdW4gMjAyMSwgIlNoYW5rYXIsIFVtYSIgPHVtYS5zaGFua2FyQGludGVsLmNv bT4gd3JvdGU6Cj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+IEZyb206IE1vZGVtLCBC aGFudXByYWthc2ggPGJoYW51cHJha2FzaC5tb2RlbUBpbnRlbC5jb20+Cj4+IFNlbnQ6IFR1ZXNk YXksIEp1bmUgMTUsIDIwMjEgMTE6MjggQU0KPj4gVG86IFNoYW5rYXIsIFVtYSA8dW1hLnNoYW5r YXJAaW50ZWwuY29tPjsgUGF0bmFuYSwgVmVua2F0YSBTYWkKPj4gPHZlbmthdGEuc2FpLnBhdG5h bmFAaW50ZWwuY29tPjsgaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gQ2M6IFNoYXJt YSwgU3dhdGkyIDxzd2F0aTIuc2hhcm1hQGludGVsLmNvbT47IEIgUywgS2FydGhpawo+PiA8a2Fy dGhpay5iLnNAaW50ZWwuY29tPjsgVmFyaWRlLCBOaXNjaGFsIDxuaXNjaGFsLnZhcmlkZUBpbnRl bC5jb20+OyBMYXR2YWxhLCBQZXRyaQo+PiA8cGV0cmkubGF0dmFsYUBpbnRlbC5jb20+Cj4+IFN1 YmplY3Q6IFJFOiBbUEFUQ0ggaS1nLXQgMDEvMTddIHRlc3RzL2ttc19kaXRoZXI6IE5ldyBJR1Qg dG8gdmFsaWRhdGUgY3J0YyBEaXRoZXJpbmcKPj4gCj4+ID4gRnJvbTogU2hhbmthciwgVW1hIDx1 bWEuc2hhbmthckBpbnRlbC5jb20+Cj4+ID4gU2VudDogVHVlc2RheSwgSnVuZSAxNSwgMjAyMSAx MToyNCBBTQo+PiA+IFRvOiBQYXRuYW5hLCBWZW5rYXRhIFNhaSA8dmVua2F0YS5zYWkucGF0bmFu YUBpbnRlbC5jb20+OyBpZ3QtCj4+ID4gZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiA+IENj OiBNb2RlbSwgQmhhbnVwcmFrYXNoIDxiaGFudXByYWthc2gubW9kZW1AaW50ZWwuY29tPjsgU2hh cm1hLCBTd2F0aTIKPj4gPiA8c3dhdGkyLnNoYXJtYUBpbnRlbC5jb20+OyBCIFMsIEthcnRoaWsg PGthcnRoaWsuYi5zQGludGVsLmNvbT47Cj4+ID4gVmFyaWRlLCBOaXNjaGFsIDxuaXNjaGFsLnZh cmlkZUBpbnRlbC5jb20+OyBMYXR2YWxhLCBQZXRyaQo+PiA+IDxwZXRyaS5sYXR2YWxhQGludGVs LmNvbT4KPj4gPiBTdWJqZWN0OiBSRTogW1BBVENIIGktZy10IDAxLzE3XSB0ZXN0cy9rbXNfZGl0 aGVyOiBOZXcgSUdUIHRvIHZhbGlkYXRlCj4+ID4gY3J0YyBEaXRoZXJpbmcKPj4gPgo+PiA+Cj4+ ID4KPj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+ID4gPiBGcm9tOiBQYXRuYW5h LCBWZW5rYXRhIFNhaSA8dmVua2F0YS5zYWkucGF0bmFuYUBpbnRlbC5jb20+Cj4+ID4gPiBTZW50 OiBGcmlkYXksIEp1bmUgMTEsIDIwMjEgMTA6NTAgQU0KPj4gPiA+IFRvOiBpZ3QtZGV2QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwo+PiA+ID4gQ2M6IFBhdG5hbmEsIFZlbmthdGEgU2FpIDx2ZW5rYXRh LnNhaS5wYXRuYW5hQGludGVsLmNvbT47IE1vZGVtLAo+PiA+IEJoYW51cHJha2FzaAo+PiA+ID4g PGJoYW51cHJha2FzaC5tb2RlbUBpbnRlbC5jb20+OyBTaGFybWEsIFN3YXRpMgo+PiA+ID4gPHN3 YXRpMi5zaGFybWFAaW50ZWwuY29tPjsgQiBTLCBLYXJ0aGlrIDxrYXJ0aGlrLmIuc0BpbnRlbC5j b20+Owo+PiA+ID4gU2hhbmthciwgVW1hIDx1bWEuc2hhbmthckBpbnRlbC5jb20+OyBWYXJpZGUs IE5pc2NoYWwKPj4gPiA+IDxuaXNjaGFsLnZhcmlkZUBpbnRlbC5jb20+OyBMYXR2YWxhLCBQZXRy aQo+PiA+IDxwZXRyaS5sYXR2YWxhQGludGVsLmNvbT4KPj4gPiA+IFN1YmplY3Q6IFtQQVRDSCBp LWctdCAwMS8xN10gdGVzdHMva21zX2RpdGhlcjogTmV3IElHVCB0byB2YWxpZGF0ZQo+PiA+ID4g Y3J0Ywo+PiA+IERpdGhlcmluZwo+PiA+Cj4+ID4gVGhpcyB0ZXN0IGRlcGVuZHMgb24gdGhlIGNv cnJlc3BvbmRpbmcga2VybmVsIGRyaXZlciBjaGFuZ2VzLgo+PiA+IGh0dHBzOi8vcGF0Y2h3b3Jr LmZyZWVkZXNrdG9wLm9yZy9zZXJpZXMvOTEzODMvIDogRGl0aGVyaW5nIHN1cHBvcnQKPj4gPiBo dHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvc2VyaWVzLzc5NjY0LzogRGVidWdmcyBj aGFuZ2VzIFRoZQo+PiA+IGFib3ZlIGFyZSBpbiByZXZpZXcuCj4+ID4KPj4gPiBJIHdvdWxkIHN1 Z2dlc3Qgd2UgY29uc29saWRhdGUgYm90aCBrZXJuZWwgY2hhbmdlcyBpbiAxIGNvbW1vbiBzZXJp ZXMuCj4+IAo+PiBBcyB3ZSBkb2Vzbid0IGhhdmUgYSB0ZXN0IGNvdmVyYWdlIGZvciBEaXRoZXJp bmcsIGl0IHdhcyBpbnRlbnRpb25hbCB0byBoYXZlIDIKPj4gcGF0Y2hlczoKPj4gCj4+ICogb25l IGZvciBsZWdhY3kgKGRpdGhlciBhdCBlbmQgb2YgdGhlIHBpcGUpCj4+ICogb3RoZXIgdG8gZXh0 ZW5kIGl0IGZvciBkaXRoZXIgYXQgZW5kIG9mIENDIGJsb2NrLgo+Cj4gSSBpbnRlbmRlZCB0byB0 ZWxsIGFib3V0IHRoZSBhY3R1YWwgZGl0aGVyaW5nIHN1cHBvcnQgYW5kIGRlYnVnZnMgYWRkaXRp b25zIGluIGRyaXZlciB3aGljaCBhcmUgbm93Cj4gaW4gc2VwYXJhdGUgc2VyaWVzIGluIG1haWxp bmcgbGlzdC4gSSBnb3QgdGhlIElHVCBwYXJ0IHdoaWNoIGlzIGZpbmUgaW4gc2VwYXJhdGUgcGF0 Y2hlcy4KClllYWgsIHRoaXMgc2VyaWVzIHNlZW1zIHRvIGJlIGEgbWl4ZWQgYmFnIG9mIGFsbCBr aW5kcyBvZiBjaGFuZ2VzIGFsbApvdmVyIHRoZSBwbGFjZS4gRGl0aGVyaW5nIGluIGlndCBzaG91 bGQgcHJvYmFibHkgYmUgb25lIGluZGVwZW5kZW50CnNlcmllcy4KCkJSLApKYW5pLgoKPgo+IFJl Z2FyZHMsCj4gVW1hIFNoYW5rYXIKPgo+PiAtIEJoYW51Cj4+ID4KPj4gPiBUaGUga2VybmVsIGNo YW5nZXMgbmVlZHMgdG8gYmUgbWVyZ2VkIGFuZCBhdmFpbGFibGUgaW4gZHJpdmVyLCBiZWZvcmUK Pj4gPiB0aGlzIHRlc3QgY2FuIGdvIGluLgo+PiA+Cj4+ID4gUmVnYXJkcywKPj4gPiBVbWEgU2hh bmthcgo+PiA+Cj4+ID4gPiBGcm9tOiBCaGFudXByYWthc2ggTW9kZW0gPGJoYW51cHJha2FzaC5t b2RlbUBpbnRlbC5jb20+Cj4+ID4gPgo+PiA+ID4gTWFueSBvZiB0aGUgZGlzcGxheSBkZXZpY2Vz IGhhdmUgY29sb3IgZm9ybWF0IHN1cHBvcnQgbGVzcyB0aGFuIHRoZQo+PiA+ID4gY29sb3IKPj4g PiBmb3JtYXQgb2YKPj4gPiA+IHRoZSBpbnB1dCBkYXRhIChFeDogOC1iaXQgaW5wdXQgZGF0YSBh bmQgNi1iaXQgZGlzcGxheSBjb2xvciBkZXB0aCkuCj4+ID4gPiBUaGVuCj4+ID4gdGhlIGlucHV0 IGRhdGEKPj4gPiA+IHdpbGwgYmUgZWl0aGVyIHRydW5jYXRlZCBvciByb3VuZGVkLCBidXQgdGhp cyBhcHByb2FjaCB1c3VhbGx5Cj4+ID4gPiBjYXVzZXMgbG9zcwo+PiA+IG9mIGRldGFpbAo+PiA+ ID4gYW5kIGFsc28gcHJvZHVjZSBsYXJnZSBiYW5kZWQgYXJlYXMgb2YgYSBzaW5nbGUgY29sb3Ig dGhhdAo+PiA+ID4gc2lnbmlmaWNhbnRseQo+PiA+IGRpZmZlcnMgZnJvbQo+PiA+ID4gdGhlIG9y aWdpbmFsIGltYWdlLgo+PiA+ID4KPj4gPiA+IERpdGhlcmluZyBpcyBhIHRlY2huaXF1ZSB1c2Vk IHRvIGVuaGFuY2UgdGhlc2UgY29sb3JzIGJ5IGNyZWF0aW5nCj4+ID4gPiB0aGUKPj4gPiBpbGx1 c2lvbiBvZgo+PiA+ID4gc21vb3RobmVzcyBieSBhZGp1c3RpbmcgdGhlIG5lYXJieSBwaXhlbCBj b2xvci4KPj4gPiA+IEZvciBFZzogQ29udmVydGluZyA4LWJpdCB0byA2LWJpdCBieSBtb2RpZnlp bmcgdGhlIHBpeGVsIGluZm9ybWF0aW9uLgo+PiA+ID4KPj4gPiA+IERpdGhlcmluZyBzaG91bGQg YmUgZW5hYmxlZCB3aGVuIGEgcGFuZWwgY29sb3IgZGVwdGggaXMgbG93ZXIgdGhhbgo+PiA+ID4g dGhlIGNvbG9yCj4+ID4gZGVwdGgKPj4gPiA+IG9mIHRoZSBmcmFtZWJ1ZmZlci4KPj4gPiA+Cj4+ ID4gPiBFdmVuIHRob3VnaCBmZWF0dXJlIERpdGhlcmluZyBpcyB0aGVyZSBzaW5jZSBsZWdhY3ks IHRoZXJlIGlzIG5vCj4+ID4gPiBzcGVjaWZpYwo+PiA+IElHVCBmb3IgdGhpcy4KPj4gPiA+IFRo aXMgcGF0Y2ggd2lsbCBjcmVhdGUgTmV3IElHVCBmb3IgRGl0aGVyaW5nLgo+PiA+ID4gQW5kIGJl bG93IGlzIHRoZSB0cnV0aCB0YWJsZSBmb3IgQ1JUQyBEaXRoZXJpbmcuCj4+ID4gPgo+PiA+ID4g fC0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18Cj4+ID4gPiB8ICBGcmFt ZSBidWZmZXIgIHwgIFBhbmVsICB8ICBEaXRoZXJpbmcgIHwKPj4gPiA+IHwtLS0tLS0tLS0tLS0t LS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfAo+PiA+ID4gfCAgICAgIDggQlBDICAgICB8ICA2 IEJQQyAgfCAgICAgWWVzICAgICB8Cj4+ID4gPiB8LS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18 LS0tLS0tLS0tLS0tLXwKPj4gPiA+IHwgICAgICA4IEJQQyAgICAgfCAgOCBCUEMgIHwgICAgIE5v ICAgICAgfAo+PiA+ID4gfC0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18 Cj4+ID4gPiB8ICAgICAgOCBCUEMgICAgIHwgMTAgQlBDICB8ICAgICBObyAgICAgIHwKPj4gPiA+ IHwtLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfAo+PiA+ID4gfCAgICAg MTAgQlBDICAgICB8ICA2IEJQQyAgfCAgICAgWWVzICAgICB8Cj4+ID4gPiB8LS0tLS0tLS0tLS0t LS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwKPj4gPiA+IHwgICAgIDEwIEJQQyAgICAgfCAg OCBCUEMgIHwgICAgIFllcyAgICAgfAo+PiA+ID4gfC0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0t fC0tLS0tLS0tLS0tLS18Cj4+ID4gPiB8ICAgICAxMCBCUEMgICAgIHwgMTAgQlBDICB8ICAgICBO byAgICAgIHwKPj4gPiA+IHwtLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0t fAo+PiA+ID4gfCAgICAgMTYgQlBDICAgICB8ICA2IEJQQyAgfCAgICAgWWVzICAgICB8Cj4+ID4g PiB8LS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwKPj4gPiA+IHwgICAg IDE2IEJQQyAgICAgfCAgOCBCUEMgIHwgICAgIFllcyAgICAgfAo+PiA+ID4gfC0tLS0tLS0tLS0t LS0tLS18LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18Cj4+ID4gPiB8ICAgICAxNiBCUEMgICAgIHwg MTAgQlBDICB8ICAgICBZZXMgICAgIHwKPj4gPiA+IHwtLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0t LXwtLS0tLS0tLS0tLS0tfAo+PiA+ID4KPj4gPiA+IENjOiBTd2F0aSBTaGFybWEgPHN3YXRpMi5z aGFybWFAaW50ZWwuY29tPgo+PiA+ID4gQ2M6IEthcnRoaWsgQiBTIDxrYXJ0aGlrLmIuc0BpbnRl bC5jb20+Cj4+ID4gPiBDYzogVW1hIFNoYW5rYXIgPHVtYS5zaGFua2FyQGludGVsLmNvbT4KPj4g PiA+IENjOiBOaXNjaGFsIFZhcmlkZSA8bmlzY2hhbC52YXJpZGVAaW50ZWwuY29tPgo+PiA+ID4g Q2M6IFBldHJpIExhdHZhbGEgPHBldHJpLmxhdHZhbGFAaW50ZWwuY29tPgo+PiA+ID4gU2lnbmVk LW9mZi1ieTogQmhhbnVwcmFrYXNoIE1vZGVtIDxiaGFudXByYWthc2gubW9kZW1AaW50ZWwuY29t Pgo+PiA+ID4gLS0tCj4+ID4gPiAgdGVzdHMva21zX2RpdGhlci5jIHwgMjUwICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+PiA+ID4gIHRlc3RzL21lc29uLmJ1 aWxkICB8ICAgMSArCj4+ID4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAyNTEgaW5zZXJ0aW9ucygrKQo+ PiA+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9rbXNfZGl0aGVyLmMKPj4gPiA+Cj4+ID4g PiBkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2RpdGhlci5jIGIvdGVzdHMva21zX2RpdGhlci5jIG5l dyBmaWxlIG1vZGUKPj4gPiA+IDEwMDY0NAo+PiA+IGluZGV4Cj4+ID4gPiAwMDAwMDAwMDAwLi5j MjVkNjIzZjgxCj4+ID4gPiAtLS0gL2Rldi9udWxsCj4+ID4gPiArKysgYi90ZXN0cy9rbXNfZGl0 aGVyLmMKPj4gPiA+IEBAIC0wLDAgKzEsMjUwIEBACj4+ID4gPiArLyoKPj4gPiA+ICsgKiBDb3B5 cmlnaHQgwqkgMjAyMCBJbnRlbCBDb3Jwb3JhdGlvbgo+PiA+ID4gKyAqCj4+ID4gPiArICogUGVy bWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24K Pj4gPiA+ICtvYnRhaW5pbmcgYQo+PiA+ID4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQg YXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKPj4gPiA+ICsiU29mdHdhcmUiKSwK Pj4gPiA+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBp bmNsdWRpbmcgd2l0aG91dAo+PiA+ID4gK2xpbWl0YXRpb24KPj4gPiA+ICsgKiB0aGUgcmlnaHRz IHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwKPj4gPiA+ ICtzdWJsaWNlbnNlLAo+PiA+ID4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdh cmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0bwo+PiA+ID4gK3dob20gdGhlCj4+ID4gPiArICog U29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcg Y29uZGl0aW9uczoKPj4gPiA+ICsgKgo+PiA+ID4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90 aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcKPj4gPiA+ICt0aGUgbmV4 dAo+PiA+ID4gKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBv ciBzdWJzdGFudGlhbAo+PiA+ID4gK3BvcnRpb25zIG9mIHRoZQo+PiA+ID4gKyAqIFNvZnR3YXJl Lgo+PiA+ID4gKyAqCj4+ID4gPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIs IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCj4+ID4gPiArRVhQUkVTUyBPUgo+PiA+ID4g KyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMg T0YKPj4gPiA+ICtNRVJDSEFOVEFCSUxJVFksCj4+ID4gPiArICogRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PCj4+ID4gPiArRVZFTlQg U0hBTEwKPj4gPiA+ICsgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUg TElBQkxFIEZPUiBBTlkgQ0xBSU0sCj4+ID4gPiArREFNQUdFUyBPUgo+PiA+ID4gKyAqIE9USEVS IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IKPj4g PiA+ICtPVEhFUldJU0UsCj4+ID4gPiArICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09O TkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUKPj4gPiA+ICtVU0UgT1IKPj4gPiA+ICsg KiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4+ID4gPiArICoKPj4gPiA+ICsgKiBB dXRob3JzOgo+PiA+ID4gKyAqICAgICBCaGFudXByYWthc2ggTW9kZW0gPGJoYW51cHJha2FzaC5t b2RlbUBpbnRlbC5jb20+Cj4+ID4gPiArICoKPj4gPiA+ICsgKi8KPj4gPiA+ICsKPj4gPiA+ICsj aW5jbHVkZSAiaWd0LmgiCj4+ID4gPiArI2luY2x1ZGUgPGZjbnRsLmg+Cj4+ID4gPiArI2luY2x1 ZGUgPHRlcm1pb3MuaD4KPj4gPiA+ICsjaW5jbHVkZSA8dW5pc3RkLmg+Cj4+ID4gPiArCj4+ID4g PiArSUdUX1RFU1RfREVTQ1JJUFRJT04oIlRlc3QgRGl0aGVyaW5nIGJsb2NrIHN0YXR1cyIpOwo+ PiA+ID4gKwo+PiA+ID4gKy8qIENvbm5lY3RvciBCUEMgKi8KPj4gPiA+ICsjZGVmaW5lIElHVF9D T05ORUNUT1JfQlBDXzY2Cj4+ID4gPiArI2RlZmluZSBJR1RfQ09OTkVDVE9SX0JQQ184OAo+PiA+ ID4gKyNkZWZpbmUgSUdUX0NPTk5FQ1RPUl9CUENfMTAxMAo+PiA+ID4gKyNkZWZpbmUgSUdUX0NP Tk5FQ1RPUl9CUENfMTIxMgo+PiA+ID4gKwo+PiA+ID4gKy8qIEZyYW1lYnVmZmVyIEJQQyAqLwo+ PiA+ID4gKyNkZWZpbmUgSUdUX0ZSQU1FX0JVRkZFUl9CUENfODgKPj4gPiA+ICsjZGVmaW5lIElH VF9GUkFNRV9CVUZGRVJfQlBDXzEwMTAKPj4gPiA+ICsjZGVmaW5lIElHVF9GUkFNRV9CVUZGRVJf QlBDXzE2MTYKPj4gPiA+ICsKPj4gPiA+ICsvKiBDb21tb24gdGVzdCBkYXRhLiAqLwo+PiA+ID4g K3R5cGVkZWYgc3RydWN0IGRhdGEgewo+PiA+ID4gK2lndF9kaXNwbGF5X3QgZGlzcGxheTsKPj4g PiA+ICtpZ3RfcGxhbmVfdCAqcHJpbWFyeTsKPj4gPiA+ICtpZ3Rfb3V0cHV0X3QgKm91dHB1dDsK Pj4gPiA+ICtpZ3RfcGlwZV90ICpwaXBlOwo+PiA+ID4gK2RybU1vZGVNb2RlSW5mbyAqbW9kZTsK Pj4gPiA+ICtlbnVtIHBpcGUgcGlwZV9pZDsKPj4gPiA+ICtpbnQgZHJtX2ZkOwo+PiA+ID4gK2ln dF9mYl90IGZiOwo+PiA+ID4gK30gZGF0YV90Owo+PiA+ID4gKwo+PiA+ID4gK3R5cGVkZWYgc3Ry dWN0IHsKPj4gPiA+ICt1bnNpZ25lZCBpbnQgYnBjOwo+PiA+ID4gK3Vuc2lnbmVkIGludCBkaXRo ZXI7Cj4+ID4gPiArfSBkaXRoZXJfc3RhdHVzX3Q7Cj4+ID4gPiArCj4+ID4gPiArLyogUHJlcGFy ZSB0ZXN0IGRhdGEuICovCj4+ID4gPiArc3RhdGljIHZvaWQgcHJlcGFyZV90ZXN0KGRhdGFfdCAq ZGF0YSwgaWd0X291dHB1dF90ICpvdXRwdXQsIGVudW0KPj4gPiA+ICtwaXBlCj4+ID4gPiArcGlw ZSkgewo+PiA+ID4gK2lndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsKPj4g PiA+ICsKPj4gPiA+ICtkYXRhLT5waXBlX2lkID0gcGlwZTsKPj4gPiA+ICtkYXRhLT5waXBlID0g JmRhdGEtPmRpc3BsYXkucGlwZXNbZGF0YS0+cGlwZV9pZF07Cj4+ID4gPiAraWd0X2Fzc2VydChk YXRhLT5waXBlKTsKPj4gPiA+ICsKPj4gPiA+ICtpZ3RfZGlzcGxheV9yZXNldChkaXNwbGF5KTsK Pj4gPiA+ICsKPj4gPiA+ICtkYXRhLT5vdXRwdXQgPSBvdXRwdXQ7Cj4+ID4gPiAraWd0X2Fzc2Vy dChkYXRhLT5vdXRwdXQpOwo+PiA+ID4gKwo+PiA+ID4gK2RhdGEtPm1vZGUgPSBpZ3Rfb3V0cHV0 X2dldF9tb2RlKGRhdGEtPm91dHB1dCk7Cj4+ID4gPiAraWd0X2Fzc2VydChkYXRhLT5tb2RlKTsK Pj4gPiA+ICsKPj4gPiA+ICtkYXRhLT5wcmltYXJ5ID0KPj4gPiA+ICtpZ3RfcGlwZV9nZXRfcGxh bmVfdHlwZShkYXRhLT5waXBlLAo+PiA+ID4gRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7Cj4+ID4g PiArCj4+ID4gPiAraWd0X291dHB1dF9zZXRfcGlwZShkYXRhLT5vdXRwdXQsIGRhdGEtPnBpcGVf aWQpOyB9Cj4+ID4gPiArCj4+ID4gPiArLyogUmV0dXJucyB0aGUgY3VycmVudCBzdGF0ZSBvZiBk aXRoZXJpbmcgZnJvbSB0aGUgY3J0YyBkZWJ1Z2ZzLiAqLwo+PiA+ID4gK3N0YXRpYyBkaXRoZXJf c3RhdHVzX3QgZ2V0X2RpdGhlcl9zdGF0ZShkYXRhX3QgKmRhdGEpIHsgY2hhcgo+PiA+ID4gK2J1 ZlsyNTZdOyBjaGFyIGNydGNfbmFtZVs3XTsgY2hhciAqc3RhcnRfbG9jOyBpbnQgZmQsIHJlczsK Pj4gPiA+ICtkaXRoZXJfc3RhdHVzX3Qgc3RhdHVzOwo+PiA+ID4gKwo+PiA+ID4gK3NucHJpbnRm KGNydGNfbmFtZSwgNywgImNydGMtJWQiLCBkYXRhLT5waXBlX2lkKTsgZmQgPQo+PiA+ID4gK2ln dF9kZWJ1Z2ZzX29wZW4oZGF0YS0+ZHJtX2ZkLCBjcnRjX25hbWUsIE9fUkRPTkxZKTsgaWd0X2Fz c2VydChmZAo+PiA+ID4gKz49IDApOwo+PiA+ID4gKwo+PiA+ID4gK3JlcyA9IGlndF9kZWJ1Z2Zz X3NpbXBsZV9yZWFkKGZkLCAiZGl0aGVyIiwgYnVmLCBzaXplb2YoYnVmKSk7Cj4+ID4gPiAraWd0 X3JlcXVpcmUocmVzID4gMCk7IGNsb3NlKGZkKTsKPj4gPiA+ICsKPj4gPiA+ICtpZ3RfYXNzZXJ0 KHN0YXJ0X2xvYyA9IHN0cnN0cihidWYsICJicGM6ICIpKTsKPj4gPiA+ICtpZ3RfYXNzZXJ0X2Vx KHNzY2FuZihzdGFydF9sb2MsICJicGM6ICV1IiwgJnN0YXR1cy5icGMpLCAxKTsKPj4gPiA+ICsK Pj4gPiA+ICtpZ3RfYXNzZXJ0KHN0YXJ0X2xvYyA9IHN0cnN0cihidWYsICJEaXRoZXI6ICIpKTsK Pj4gPiA+ICtpZ3RfYXNzZXJ0X2VxKHNzY2FuZihzdGFydF9sb2MsICJEaXRoZXI6ICV1IiwgJnN0 YXR1cy5kaXRoZXIpLCAxKTsKPj4gPiA+ICsKPj4gPiA+ICtyZXR1cm4gc3RhdHVzOwo+PiA+ID4g K30KPj4gPiA+ICsKPj4gPiA+ICtzdGF0aWMgdm9pZCB0ZXN0X2RpdGhlcmluZyhkYXRhX3QgKmRh dGEsIGVudW0gcGlwZSBwaXBlLAo+PiA+ID4gKyAgIGlndF9vdXRwdXRfdCAqb3V0cHV0LAo+PiA+ ID4gKyAgIGludCBmYl9icGMsIGludCBmYl9mb3JtYXQsCj4+ID4gPiArICAgaW50IG91dHB1dF9i cGMpCj4+ID4gPiArewo+PiA+ID4gK2lndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlz cGxheTsgZGl0aGVyX3N0YXR1c190IHN0YXR1czsKPj4gPiA+ICtpbnQgYnBjOwo+PiA+ID4gKwo+ PiA+ID4gK2lndF9pbmZvKCJEaXRoZXJpbmcgdGVzdCBleGVjdXRpb24gb24gJXMgUElQRV8lc1xu IiwKPj4gPiA+ICtvdXRwdXQtPm5hbWUsIGttc3Rlc3RfcGlwZV9uYW1lKHBpcGUpKTsKPj4gPiA+ ICtwcmVwYXJlX3Rlc3QoZGF0YSwgb3V0cHV0LCBwaXBlKTsKPj4gPiA+ICsKPj4gPiA+ICtpZ3Rf YXNzZXJ0KGlndF9jcmVhdGVfZmIoZGF0YS0+ZHJtX2ZkLCBkYXRhLT5tb2RlLT5oZGlzcGxheSwK Pj4gPiA+ICsgZGF0YS0+bW9kZS0+dmRpc3BsYXksIGZiX2Zvcm1hdCwKPj4gPiA+ICsgTE9DQUxf RFJNX0ZPUk1BVF9NT0RfTk9ORSwgJmRhdGEtPmZiKSk7Cj4+ID4gPiAraWd0X3BsYW5lX3NldF9m YihkYXRhLT5wcmltYXJ5LCAmZGF0YS0+ZmIpOwo+PiA+ID4gK2lndF9wbGFuZV9zZXRfc2l6ZShk YXRhLT5wcmltYXJ5LCBkYXRhLT5tb2RlLT5oZGlzcGxheSwKPj4gPiA+ICtkYXRhLT5tb2RlLT52 ZGlzcGxheSk7Cj4+ID4gPiArCj4+ID4gPiArYnBjID0gaWd0X291dHB1dF9nZXRfcHJvcChvdXRw dXQsIElHVF9DT05ORUNUT1JfTUFYX0JQQyk7Cj4+ID4gPiAraWd0X291dHB1dF9zZXRfcHJvcF92 YWx1ZShkYXRhLT5vdXRwdXQsIElHVF9DT05ORUNUT1JfTUFYX0JQQywKPj4gPiA+IG91dHB1dF9i cGMpOwo+PiA+ID4gK2lndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgZGlzcGxheS0+aXNfYXRv bWljID8gQ09NTUlUX0FUT01JQyA6Cj4+ID4gPiArQ09NTUlUX0xFR0FDWSk7Cj4+ID4gPiArCj4+ ID4gPiArLyoKPj4gPiA+ICsgKiBDaGVjayB0aGUgc3RhdHVzIG9mIERpdGhlcmluZyBibG9jazoK Pj4gPiA+ICsgKgo+PiA+ID4gKyAqIFByZXNlcnZlIHRoZSByZXN1bHQgJiBjb21wdXRlIGxhdGVy IChhZnRlciBjbGVhbi11cCkuCj4+ID4gPiArICogSWYgZmJfYnBjIGlzIGdyZWF0ZXIgdGhhbiBv dXRwdXRfYnBjLCBEaXRoZXJpbmcgc2hvdWxkIGJlCj4+ID4gPiArZW5hYmxlZAo+PiA+ID4gKyAq IEVsc2UgZGlzYWJsZWQKPj4gPiA+ICsgKi8KPj4gPiA+ICtzdGF0dXMgPSBnZXRfZGl0aGVyX3N0 YXRlKGRhdGEpOwo+PiA+ID4gKwo+PiA+ID4gK2lndF9kZWJ1ZygiRkIgQlBDOiVkLCBQYW5lbCBC UEM6JWQsIFBpcGUgQlBDOiVkLCBFeHBlY3RlZAo+PiA+ID4gK0RpdGhlcjolcywKPj4gPiA+IEFj dHVhbCByZXN1bHQ6JXNcbiIsCj4+ID4gPiArICBmYl9icGMsIG91dHB1dF9icGMsIHN0YXR1cy5i cGMsCj4+ID4gPiArICAoZmJfYnBjID4gb3V0cHV0X2JwYykgPyAiRW5hYmxlIjogIkRpc2FibGUi LCAgc3RhdHVzLmRpdGhlciA/Cj4+ID4gPiArICJFbmFibGUiOiAiRGlzYWJsZSIpOwo+PiA+ID4g Kwo+PiA+ID4gKyAgICAgICAvKgo+PiA+ID4gKyogV2UgbXVzdCB1cGRhdGUgdGhlIENvbm5lY3Rv ciBtYXhfYnBjIHByb3BlcnR5IGJhY2sKPj4gPiA+ICsqIE90aGVyd2lzZSwgcHJldmlvdXNseSB1 cGRhdGVkIHZhbHVlIHdpbGwgc3RheSBmb3JldmVyIGFuZAo+PiA+ID4gKyogbWF5IGNhdXNlIHRo ZSBmYWlsdXJlcyBmb3IgbmV4dC9vdGhlciBzdWJ0ZXN0cy4KPj4gPiA+ICsqLwo+PiA+ID4gK2ln dF9vdXRwdXRfc2V0X3Byb3BfdmFsdWUoZGF0YS0+b3V0cHV0LCBJR1RfQ09OTkVDVE9SX01BWF9C UEMsCj4+ID4gPiBicGMpOwo+PiA+ID4gK2lndF9wbGFuZV9zZXRfZmIoZGF0YS0+cHJpbWFyeSwg TlVMTCk7IGlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LAo+PiA+ID4gK1BJUEVfTk9ORSk7IGln dF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgZGlzcGxheS0+aXNfYXRvbWljID8KPj4gPiA+ICtD T01NSVRfQVRPTUlDIDoKPj4gPiA+IENPTU1JVF9MRUdBQ1kpOwo+PiA+ID4gK2lndF9yZW1vdmVf ZmIoZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+ZmIpOwo+PiA+ID4gKwo+PiA+ID4gKy8qIENoZWNrIGlm IGNydGMgYnBjIGlzIHVwZGF0ZWQgd2l0aCByZXF1ZXN0ZWQgb25lLiAqLwo+PiA+ID4gK2lndF9y ZXF1aXJlX2YoKHN0YXR1cy5icGMgPT0gb3V0cHV0X2JwYyksICIlcyBjYW4gc3VwcG9ydCBtYXgK Pj4gPiA+ICsldS1icGMsIGJ1dCByZXF1ZXN0ZWQgJWQtYnBjXG4iLAo+PiA+ID4gK291dHB1dC0+ bmFtZSwgc3RhdHVzLmJwYywgb3V0cHV0X2JwYyk7Cj4+ID4gPiArCj4+ID4gPiArLyogQ29tcHV0 ZSB0aGUgcmVzdWx0LiAqLwo+PiA+ID4gK2lmIChmYl9icGMgPiBvdXRwdXRfYnBjKQo+PiA+ID4g K2lndF9hc3NlcnRfZihzdGF0dXMuZGl0aGVyLCAiKGZiXyVkYnBjID4gb3V0cHV0XyVkYnBjKTog RGl0aGVyCj4+ID4gPiBzaG91bGQgYmUgZW5hYmxlZFxuIiwKPj4gPiA+ICtmYl9icGMsIG91dHB1 dF9icGMpOwo+PiA+ID4gK2Vsc2UKPj4gPiA+ICtpZ3RfYXNzZXJ0X2YoIXN0YXR1cy5kaXRoZXIs ICIoZmJfJWRicGMgPD0gb3V0cHV0XyVkYnBjKTogRGl0aGVyCj4+ID4gPiBzaG91bGQgYmUgZGlz YWJsZWRcbiIsCj4+ID4gPiArZmJfYnBjLCBvdXRwdXRfYnBjKTsKPj4gPiA+ICsKPj4gPiA+ICty ZXR1cm47Cj4+ID4gPiArfQo+PiA+ID4gKwo+PiA+ID4gKy8qIFJldHVybnMgdHJ1ZSBpZiBhbiBv dXRwdXQgc3VwcG9ydHMgbWF4IGJwYyBwcm9wZXJ0eSAmIG1heF9icGMgPj0KPj4gPiA+ICtyZXF1 ZXN0ZWQuICovIHN0YXRpYyBib29sIGlzX3N1cHBvcnRlZChpZ3Rfb3V0cHV0X3QgKm91dHB1dCwg aW50IGJwYykgewo+PiA+ID4gKyAgICAgICAgcmV0dXJuIGlndF9vdXRwdXRfaGFzX3Byb3Aob3V0 cHV0LCBJR1RfQ09OTkVDVE9SX01BWF9CUEMpCj4+ID4gPiArJiYgKGlndF9vdXRwdXRfZ2V0X3By b3Aob3V0cHV0LCBJR1RfQ09OTkVDVE9SX01BWF9CUEMpID49IGJwYyk7Cj4+ID4gPiB9Cj4+ID4g PiArCj4+ID4gPiArc3RhdGljIHZvaWQKPj4gPiA+ICtydW5fZGl0aGVyX3Rlc3QoZGF0YV90ICpk YXRhLCBpbnQgZmJfYnBjLCBpbnQgZmJfZm9ybWF0LCBpbnQKPj4gPiA+ICtvdXRwdXRfYnBjKSB7 Cj4+ID4gPiAraWd0X291dHB1dF90ICpvdXRwdXQ7Cj4+ID4gPiAraWd0X2Rpc3BsYXlfdCAqZGlz cGxheSA9ICZkYXRhLT5kaXNwbGF5Owo+PiA+ID4gKwo+PiA+ID4gK2Zvcl9lYWNoX2Nvbm5lY3Rl ZF9vdXRwdXQoZGlzcGxheSwgb3V0cHV0KSB7IGVudW0gcGlwZSBwaXBlOwo+PiA+ID4gKwo+PiA+ ID4gK2lmICghaXNfc3VwcG9ydGVkKG91dHB1dCwgb3V0cHV0X2JwYykpIGNvbnRpbnVlOwo+PiA+ ID4gKwo+PiA+ID4gK2lmICgoc3Ryc3RyKG91dHB1dC0+bmFtZSwgIkhETUkiKSAhPSBOVUxMKSAm Jgo+PiA+ID4gKyAgICAob3V0cHV0X2JwYyA9PSBJR1RfQ09OTkVDVE9SX0JQQ182KSkgY29udGlu dWU7Cj4+ID4gPiArCj4+ID4gPiArZm9yX2VhY2hfcGlwZShkaXNwbGF5LCBwaXBlKSB7Cj4+ID4g PiAraWYgKGlndF9waXBlX2Nvbm5lY3Rvcl92YWxpZChwaXBlLCBvdXRwdXQpKSB7Cj4+ID4gPiAr aWd0X2R5bmFtaWNfZigiJXMtcGlwZS0lcyIsIG91dHB1dC0+bmFtZSwKPj4gPiA+IGttc3Rlc3Rf cGlwZV9uYW1lKHBpcGUpKQo+PiA+ID4gK3Rlc3RfZGl0aGVyaW5nKGRhdGEsIHBpcGUsIG91dHB1 dCwgZmJfYnBjLCBmYl9mb3JtYXQsIG91dHB1dF9icGMpOwo+PiA+ID4gKwo+PiA+ID4gKy8qIE9u ZSBwaXBlIGlzIGVub3VnaCAqLwo+PiA+ID4gK2JyZWFrOwo+PiA+ID4gK30KPj4gPiA+ICt9Cj4+ ID4gPiArfQo+PiA+ID4gK30KPj4gPiA+ICsKPj4gPiA+ICtpZ3RfbWFpbgo+PiA+ID4gK3sKPj4g PiA+ICtzdHJ1Y3Qgewo+PiA+ID4gK2ludCBmYl9icGM7Cj4+ID4gPiAraW50IGZvcm1hdDsKPj4g PiA+ICtpbnQgb3V0cHV0X2JwYzsKPj4gPiA+ICt9IHRlc3RzW10gPSB7Cj4+ID4gPiAreyBJR1Rf RlJBTUVfQlVGRkVSX0JQQ184LCBEUk1fRk9STUFUX1hSR0I4ODg4LAo+PiA+ID4gSUdUX0NPTk5F Q1RPUl9CUENfNiB9LAo+PiA+ID4gK3sgSUdUX0ZSQU1FX0JVRkZFUl9CUENfOCwgRFJNX0ZPUk1B VF9YUkdCODg4OCwKPj4gPiA+IElHVF9DT05ORUNUT1JfQlBDXzggfSwKPj4gPiA+ICt9Owo+PiA+ ID4gK2ludCBpOwo+PiA+ID4gK2RhdGFfdCBkYXRhID0geyAwIH07Cj4+ID4gPiArCj4+ID4gPiAr aWd0X2ZpeHR1cmUgewo+PiA+ID4gK2RhdGEuZHJtX2ZkID0gZHJtX29wZW5fZHJpdmVyX21hc3Rl cihEUklWRVJfSU5URUwpOwo+PiA+ID4gK2ttc3Rlc3Rfc2V0X3Z0X2dyYXBoaWNzX21vZGUoKTsK Pj4gPiA+ICsKPj4gPiA+ICtpZ3RfZGlzcGxheV9yZXF1aXJlKCZkYXRhLmRpc3BsYXksIGRhdGEu ZHJtX2ZkKTsKPj4gPiA+ICtpZ3RfZGlzcGxheV9yZXF1aXJlX291dHB1dCgmZGF0YS5kaXNwbGF5 KTsKPj4gPiA+ICt9Cj4+ID4gPiArCj4+ID4gPiArZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUo dGVzdHMpOyBpKyspIHsKPj4gPiA+ICtpZ3RfZGVzY3JpYmVfZigiRnJhbWVidWZmZXIgQlBDOiVk LCBQYW5lbCBCUEM6JWQsIEV4cGVjdGVkCj4+ID4gPiBEaXRoZXI6JXNcbiIsCj4+ID4gPiArICAg ICAgIHRlc3RzW2ldLmZiX2JwYywgdGVzdHNbaV0ub3V0cHV0X2JwYywKPj4gPiA+ICsgICAgICAg KHRlc3RzW2ldLmZiX2JwYyA+IHRlc3RzW2ldLm91dHB1dF9icGMpID8KPj4gPiA+ICsiRW5hYmxl IjogIkRpc2FibGUiKTsKPj4gPiA+ICsKPj4gPiA+ICtpZ3Rfc3VidGVzdF93aXRoX2R5bmFtaWNf ZigiRkItJWRCUEMtVnMtUGFuZWwtJWRCUEMiLAo+PiA+ID4gK3Rlc3RzW2ldLmZiX2JwYywgdGVz dHNbaV0ub3V0cHV0X2JwYykgcnVuX2RpdGhlcl90ZXN0KCZkYXRhLAo+PiA+ID4gK3Rlc3RzW2ld LmZiX2JwYywgdGVzdHNbaV0uZm9ybWF0LCB0ZXN0c1tpXS5vdXRwdXRfYnBjKTsgfQo+PiA+ID4g Kwo+PiA+ID4gK2lndF9maXh0dXJlIHsKPj4gPiA+ICtpZ3RfZGlzcGxheV9maW5pKCZkYXRhLmRp c3BsYXkpOwo+PiA+ID4gK30KPj4gPiA+ICt9Cj4+ID4gPiBkaWZmIC0tZ2l0IGEvdGVzdHMvbWVz b24uYnVpbGQgYi90ZXN0cy9tZXNvbi5idWlsZCBpbmRleAo+PiA+IDIzNTFiM2QzZmEuLmU1OTU0 ZTI4MzIKPj4gPiA+IDEwMDY0NAo+PiA+ID4gLS0tIGEvdGVzdHMvbWVzb24uYnVpbGQKPj4gPiA+ ICsrKyBiL3Rlc3RzL21lc29uLmJ1aWxkCj4+ID4gPiBAQCAtMjgsNiArMjgsNyBAQCB0ZXN0X3By b2dzID0gWwo+PiA+ID4gICdrbXNfY3Vyc29yX2NyYycsCj4+ID4gPiAgJ2ttc19jdXJzb3JfZWRn ZV93YWxrJywKPj4gPiA+ICAna21zX2N1cnNvcl9sZWdhY3knLAo+PiA+ID4gKydrbXNfZGl0aGVy JywKPj4gPiA+ICAna21zX2RwX2F1eF9kZXYnLAo+PiA+ID4gICdrbXNfZHBfZHNjJywKPj4gPiA+ ICAna21zX2RwX3RpbGVkX2Rpc3BsYXknLAo+PiA+ID4gLS0KPj4gPiA+IDIuMjUuMQo+PiA+Cj4+ IAo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBp Z3QtZGV2IG1haWxpbmcgbGlzdAo+IGlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2CgotLSAK SmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIEdyYXBoaWNzIENlbnRlcgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlz dAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK