From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: Re: [PATCH i-g-t v11] tests/kms_frontbuffer_tracking: Including DRRS test coverage Date: Thu, 4 Jan 2018 03:44:10 +0530 Message-ID: References: <1514814332-31840-1-git-send-email-lohith.bs@intel.com> <1514991727-6817-1-git-send-email-lohith.bs@intel.com> <20180103192106.dho3w5aw7oar4wzd@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id B438C8979D for ; Wed, 3 Jan 2018 22:18:04 +0000 (UTC) In-Reply-To: <20180103192106.dho3w5aw7oar4wzd@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi , Lohith BS Cc: paulo.r.zanoni@intel.com, jari.tahvanainen@intel.com, daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, ankit.k.nautiyal@intel.com List-Id: intel-gfx@lists.freedesktop.org CgpPbiBUaHVyc2RheSAwNCBKYW51YXJ5IDIwMTggMTI6NTEgQU0sIFJvZHJpZ28gVml2aSB3cm90 ZToKPiBPbiBXZWQsIEphbiAwMywgMjAxOCBhdCAwMzowMjowN1BNICswMDAwLCBMb2hpdGggQlMg d3JvdGU6Cj4+IER5bmFtaWMgUmVmcmVzaCBSYXRlIFN3aXRjaChEUlJTKSBpcyB1c2VkIHRvIHN3 aXRjaCB0aGUgcGFuZWwncwo+PiByZWZyZXNoIHJhdGUgdG8gdGhlIGxvd2VzdCB2cmVmcmVzaCBz dXBwb3J0ZWQgYnkgcGFuZWwsIHdoZW4gZnJhbWUgaXMKPj4gbm90IGZsaXBwZWQgZm9yIG1vcmUg dGhhbiBhIFNlYy4KPj4KPj4gSW4ga2VybmVsLCBEUlJTIHVzZXMgdGhlIGZyb250IGJ1ZmZlciB0 cmFja2luZyBpbmZyYXN0cnVjdHVyZS4KPj4gSGVuY2UgRFJSUyB0ZXN0IGNvdmVyYWdlIGlzIGFk ZGVkIGFsb25nIHdpdGggb3RoZXIgZnJvbnRidWZmZXIgdHJhY2tpbmcKPj4gYmFzZWQgZmVhdHVy ZXMgc3VjaCBhcyBGQkMgYW5kIFBTUiB0ZXN0cy4KPj4KPj4gSGVyZSwgd2UgYXJlIHRlc3Rpbmcg RFJSUyB3aXRoIG90aGVyIGZlYXR1cmVzIGluIGFsbCBwb3NzaWJsZQo+PiBjb21iaW5hdGlvbnMs IGluIGFsbCByZXF1aXJlZCB0ZXN0IGNhc2VzLCB0byBjYXB0dXJlIGFueSBwb3NzaWJsZQo+PiBy ZWdyZXNzaW9uLgo+Pgo+PiB2MjogQWRkcmVzc2VkIHRoZSBjb21tZW50cyBhbmQgc3VnZ2VzdGlv bnMgZnJvbSBWbGFkLCBNYXJpdXMuCj4+ICAgICAgVGhlIHNpZ25vZmYgZGV0YWlscyBmcm9tIHRo ZSBlYXJsaWVyIHdvcmsgYXJlIGFsc28gaW5jbHVkZWQuCj4+Cj4+IHYzOiBNb2RpZmllZCB2Ymxh bmsgcmF0ZSBjYWxjdWxhdGlvbiBieSB1c2luZyByZXBseS1zZXF1ZW5jZSwKPj4gICAgICBwcm92 aWRlZCBieSBkcm1XYWl0VkJsYW5rLCBhcyBzdWdnZXN0ZWQgYnkgQ2hyaXMgV2lsc29uLgo+Pgo+ PiB2NDogQXMgc3VnZ2VzdGVkIGZyb20gQ2hyaXMgV2lsc29uIGFuZCBEYW5pZWwgVmV0dGVyCj4+ ICAgICAgMSkgQXZvaWRlZCB1c2luZyBwdGhyZWFkIGZvciBjYWxjdWxhdGluZyB2YmxhbmsgcmVm cmVzaCByYXRlLAo+PiAgICAgICAgIGluc3RlYWQgdXNlZCBkcm1XYWl0VkJsYW5rIHJlcGx5IHNl cXVlbmNlLgo+PiAgICAgIDIpIEF2b2lkZWQgdXNpbmcga2VybmVsLXNwZWNpZmljIGluZm8gbGlr ZSB0cmFuc2l0aW9uYWwgZGVsYXlzLAo+PiAgICAgICAgIGluc3RlYWQgcG9sbGluZyBtZWNoYW5p c20gd2l0aCB0aW1lb3V0IGlzIHVzZWQuCj4+ICAgICAgMykgSW5jbHVkZWQgZWRwLURSUlMgYXMg YSBzdWJ0ZXN0IGluIGttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jLAo+PiAgICAgICAgIGluc3Rl YWQgb2YgaGF2aW5nIGEgc2VwYXJhdGUgdGVzdC4KPj4KPj4gdjU6IFRoaXMgcGF0Y2ggYWRkcyBE UlJTIGFzIGEgbmV3IGZlYXR1cmUgaW4gdGhlCj4+ICAgICAga21zX2Zyb250YnVmZmVyX3RyYWNr aW5nIElHVC4KPj4gICAgICBEUlJTIHN3aXRjaCB0byBsb3dlciB2cmVmcmVzaCByYXRlIGlzIHRl c3RlZCBhdCBzbG93LWRyYXcgc3VidGVzdC4KPj4KPj4gICAgICBOb3RlOgo+PiAgICAgIDEpIEN1 cnJlbnRseSBrZXJuZWwgZG9lc24ndCBoYXZlIHN1cHBvcnQgdG8gZW5hYmxlIGFuZCBkaXNhYmxl Cj4+ICAgICAgICAgdGhlIERSUlMgZmVhdHVyZSBkeW5hbWljYWxseShhcyBpbiBjYXNlIG9mIFBT UikuIEhlbmNlIGlmIHRoZQo+PiAgICAgICAgIHBhbmVsIHN1cHBvcnRzIERSUlMgaXQgd2lsbCBi ZSBlbmFibGVkIGJ5IGRlZmF1bHQuCj4+Cj4+ICAgICAgVGhpcyBpcyBpbiBjb250aW51YXRpb24g b2YgbGFzdCBwYXRjaAo+PiAJImh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRj aC8xNjI3MjYvIgo+Pgo+PiB2NjogVGhpcyBwYXRjaCBhZGRzIHJ1bnRpbWUgZW5hYmxlIGFuZCBk aXNhYmxlIGZlYXR1cmUgZm9yIHRlc3RpbmcgRFJSUwo+Pgo+PiB2NzogVGhpcyBwYXRjaCBhZGRz IHJ1bnRpbWUgZW5hYmxlIGFuZCBkaXNhYmxlIGZlYXR1cmUgZm9yIHRlc3RpbmcgRFJSUwo+PiAg ICAgIHRocm91Z2ggZGVidWdmcyBlbnRyeSAiaTkxNV9kcnJzX2N0bCIuCj4+Cj4+IHY4OiBDb21t aXQgbWVzc2FnZSBpcyB1cGRhdGVkIHRvIHJlZmxlY3QgY3VycmVudCBpbXBsZW1lbnRhdGlvbi4K Pj4KPj4gdjk6IEFkZHJlc3NlZCBQYXVsbyBaYW5vbmkgY29tbWVudHMuCj4+ICAgICAgQ2hlY2sg Zm9yIERSUlNfTE9XIGF0IHRlc3RzIHdpdGggT0ZGU0NSRUVOICsgRkJTX0lORElWSURVQUwuCj4+ Cj4+IHYxMDogQ29ycmVjdGVkIERSUlMgc3RhdGUgZXhwZWN0YXRpb24gaW4gc3VzcGVuZCByZWxh dGVkIHN1YnRlc3RzLgo+Pgo+PiB2MTE6IFJlbW92aW5nIHRoZSBnbG9iYWwgZmxhZyBpc19wc3Jf ZHJyc19jb21ibyBbUm9kcmlnb10uCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IExvaGl0aCBCUyA8bG9o aXRoLmJzQGludGVsLmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogYWtuYXV0aXkgPGFua2l0LmsubmF1 dGl5YWxAaW50ZWwuY29tPgo+PiAtLS0KPj4gICB0ZXN0cy9rbXNfZnJvbnRidWZmZXJfdHJhY2tp bmcuYyB8IDE4NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KPj4gICAx IGZpbGUgY2hhbmdlZCwgMTc1IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCj4+Cj4+IGRp ZmYgLS1naXQgYS90ZXN0cy9rbXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYyBiL3Rlc3RzL2ttc19m cm9udGJ1ZmZlcl90cmFja2luZy5jCj4+IGluZGV4IDE2MDFjYWIuLjc4NzZhMTIgMTAwNjQ0Cj4+ IC0tLSBhL3Rlc3RzL2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jCj4+ICsrKyBiL3Rlc3RzL2tt c19mcm9udGJ1ZmZlcl90cmFja2luZy5jCj4+IEBAIC0zNCw3ICszNCw3IEBACj4+ICAgCj4+ICAg Cj4+ICAgSUdUX1RFU1RfREVTQ1JJUFRJT04oIlRlc3QgdGhlIEtlcm5lbCdzIGZyb250YnVmZmVy IHRyYWNraW5nIG1lY2hhbmlzbSBhbmQgIgo+PiAtCQkgICAgICJpdHMgcmVsYXRlZCBmZWF0dXJl czogRkJDIGFuZCBQU1IiKTsKPj4gKwkJICAgICAiaXRzIHJlbGF0ZWQgZmVhdHVyZXM6IEZCQywg UFNSIGFuZCBEUlJTIik7Cj4+ICAgCj4+ICAgLyoKPj4gICAgKiBPbmUgb2YgdGhlIGFzcGVjdHMg b2YgdGhpcyB0ZXN0IGlzIHRoYXQsIGZvciBldmVyeSBzdWJ0ZXN0LCB3ZSB0cnkgZGlmZmVyZW50 Cj4+IEBAIC0xMDUsOCArMTA1LDkgQEAgc3RydWN0IHRlc3RfbW9kZSB7Cj4+ICAgCQlGRUFUVVJF X05PTkUgID0gMCwKPj4gICAJCUZFQVRVUkVfRkJDICAgPSAxLAo+PiAgIAkJRkVBVFVSRV9QU1Ig ICA9IDIsCj4+IC0JCUZFQVRVUkVfQ09VTlQgPSA0LAo+PiAtCQlGRUFUVVJFX0RFRkFVTFQgPSA0 LAo+PiArCQlGRUFUVVJFX0RSUlMgID0gNCwKPj4gKwkJRkVBVFVSRV9DT1VOVCA9IDgsCj4+ICsJ CUZFQVRVUkVfREVGQVVMVCA9IDgsCj4+ICAgCX0gZmVhdHVyZTsKPj4gICAKPj4gICAJLyogUG9z c2libGUgcGl4ZWwgZm9ybWF0cy4gV2UganVzdCB1c2UgRk9STUFUX0RFRkFVTFQgZm9yIG1vc3Qg dGVzdHMgYW5kCj4+IEBAIC0xNTYsNiArMTU3LDcgQEAgc3RydWN0IHJlY3Qgewo+PiAgIHN0cnVj dCB7Cj4+ICAgCWludCBmZDsKPj4gICAJaW50IGRlYnVnZnM7Cj4+ICsJaW50IGRycnNfZGVidWdm c19mZDsKPj4gICAJZHJtTW9kZVJlc1B0ciByZXM7Cj4+ICAgCWRybU1vZGVDb25uZWN0b3JQdHIg Y29ubmVjdG9yc1tNQVhfQ09OTkVDVE9SU107Cj4+ICAgCWRybU1vZGVFbmNvZGVyUHRyIGVuY29k ZXJzW01BWF9FTkNPREVSU107Cj4+IEBAIC0xODIsNiArMTg0LDEzIEBAIHN0cnVjdCB7Cj4+ICAg CS5jYW5fdGVzdCA9IGZhbHNlLAo+PiAgIH07Cj4+ICAgCj4+ICsjZGVmaW5lIE1BWF9EUlJTX1NU QVRVU19CVUZfTEVOIDI1Ngo+PiArCj4+ICtzdHJ1Y3Qgewo+PiArCWJvb2wgY2FuX3Rlc3Q7Cj4+ ICt9IGRycnMgPSB7Cj4+ICsJLmNhbl90ZXN0ID0gZmFsc2UsCj4+ICt9Owo+PiAgIAo+PiAgICNk ZWZpbmUgU0lOS19DUkNfU0laRSAxMgo+PiAgIHR5cGVkZWYgc3RydWN0IHsKPj4gQEAgLTgyNSw2 ICs4MzQsNjQgQEAgc3RhdGljIHZvaWQgcHNyX3ByaW50X3N0YXR1cyh2b2lkKQo+PiAgIAlpZ3Rf aW5mbygiUFNSIHN0YXR1czpcbiVzXG4iLCBidWYpOwo+PiAgIH0KPj4gICAKPj4gK3ZvaWQgZHJy c19zZXQodW5zaWduZWQgaW50IHZhbCkKPj4gK3sKPj4gKwljaGFyIGJ1ZlsyXTsKPj4gKwo+PiAr CWlndF9kZWJ1ZygiTWFudWFsbHkgJXNhYmxpbmcgRFJSUy4gJWxsdVxuIiwgdmFsID8gImVuIiA6 ICJkaXMiLCB2YWwpOwo+PiArCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIlZCIsIHZhbCk7 Cj4+ICsJaWd0X2Fzc2VydF9lcSh3cml0ZShkcm0uZHJyc19kZWJ1Z2ZzX2ZkLAo+PiArCQkgICAg ICBidWYsIHN0cmxlbihidWYpKSwgc3RybGVuKGJ1ZikpOwo+PiArfQo+PiArCj4+ICtzdGF0aWMg Ym9vbCBpc19kcnJzX2hpZ2godm9pZCkKPj4gK3sKPj4gKwljaGFyIGJ1ZltNQVhfRFJSU19TVEFU VVNfQlVGX0xFTl07Cj4+ICsKPj4gKwlkZWJ1Z2ZzX3JlYWQoImk5MTVfZHJyc19zdGF0dXMiLCBi dWYpOwo+PiArCXJldHVybiBzdHJzdHIoYnVmLCAiRFJSU19ISUdIX1JSIik7Cj4+ICt9Cj4+ICsK Pj4gK3N0YXRpYyBib29sIGlzX2RycnNfbG93KHZvaWQpCj4+ICt7Cj4+ICsJY2hhciBidWZbTUFY X0RSUlNfU1RBVFVTX0JVRl9MRU5dOwo+PiArCj4+ICsJZGVidWdmc19yZWFkKCJpOTE1X2RycnNf c3RhdHVzIiwgYnVmKTsKPj4gKwlyZXR1cm4gc3Ryc3RyKGJ1ZiwgIkRSUlNfTE9XX1JSIik7Cj4+ ICt9Cj4+ICsKPj4gK3N0YXRpYyBib29sIGlzX2RycnNfc3VwcG9ydGVkKHZvaWQpCj4+ICt7Cj4+ ICsJY2hhciBidWZbTUFYX0RSUlNfU1RBVFVTX0JVRl9MRU5dOwo+PiArCj4+ICsJZGVidWdmc19y ZWFkKCJpOTE1X2RycnNfc3RhdHVzIiwgYnVmKTsKPj4gKwlyZXR1cm4gc3Ryc3RyKGJ1ZiwgIkRS UlMgU3VwcG9ydGVkOiBZZXMiKTsKPj4gK30KPj4gKwo+PiArc3RhdGljIGJvb2wgaXNfZHJyc19p bmFjdGl2ZSh2b2lkKQo+PiArewo+PiArCWNoYXIgYnVmW01BWF9EUlJTX1NUQVRVU19CVUZfTEVO XTsKPj4gKwo+PiArCWRlYnVnZnNfcmVhZCgiaTkxNV9kcnJzX3N0YXR1cyIsIGJ1Zik7Cj4+ICsK Pj4gKwlpZiAoc3Ryc3RyKGJ1ZiwgIk5vIGFjdGl2ZSBjcnRjIGZvdW5kIikpCj4+ICsJCXJldHVy biB0cnVlOwo+PiArCWlmIChzdHJzdHIoYnVmLCAiSWRsZW5lc3MgRFJSUzogRGlzYWJsZWQiKSkK Pj4gKwkJcmV0dXJuIHRydWU7Cj4+ICsJaWYgKHN0cnN0cihidWYsICJEUlJTIFN1cHBvcnRlZCA6 IE5vIikpCj4gc29ycnkgZm9yIG5vdCBhc2tpbmcgb24gdGhlIHByZXZpb3VzIGVtYWlsLCBidXQg c2luY2UgZHJycyBzdGF0dXMKPiBwcmludCB0aGlzIGZvciBvdGhlciBjb25uZWN0ZWQgb3V0cHV0 cyBJIGJlbGlldmUgdGhpcyB3aWxsIGNhdXNlIGEKPiBmYWxzZSBwb3NpdGl2ZSBpbiB0aGUgY2Fz ZSB5b3UgaGF2ZQo+Cj4gQ1JUQyAxOiAgRFAtMToKPiAJVkJUOiBEUlJTX3R5cGU6IE5vbmUKPgo+ IAlEUlJTIFN1cHBvcnRlZCA6IE5vCj4KPiBDUlRDIDI6ICBlRFAtMToKPiAJVkJUOiBEUlJTX3R5 cGU6IHdoYXRldmVyCj4KPiAJRFJSUyBTdXBwb3J0ZWQgOiBZZXMKPgo+Cj4gd29uJ3QgaXQ/ClRo YXRzIGEgZ29vZCBjYXRjaC4gV2Ugc2hvdWxkIG5vdCBiZSBkZWNpZGluZyBpbmFjdGl2ZW5lc3Mg YmFzZWQgb24gCkRSUlNfU3VwcG9ydGVkIHN0YXRlLiBhcyB0aGF0IHdpbGwgYmUgcG9wdWxhdGVk IGZvciBhbGwgYWN0aXZlIGNydGNzIAp3aXRoIHllcyBhbmQgbm9zLiBvdXIgdGVzdHMgZGlkbid0 IGNhdGNoIGFzIHRoZXkgd2VyZSBoYXZpbmcgc2luZ2xlIGVkcCAKZGlzcGxheS4Kc28gaG93IGFi b3V0IGFsdGVybmF0aXZlbHkgZGV0ZWN0aW5nIHRoZSBkcnJzX2luYWN0aXZlIHN0YXRlIGJ5IG5l Z2F0aW5nIAp0aGUgYWN0aXZlIHN0YXRlIG9mIHRoZSBEUlJTLiBEUlJTIGFjdGl2ZSBzdGF0ZSBp cyBwb3NzaWJsZSBvbmx5IG9uIG9uZSAKY3J0YyB3aGljaCBoYXMgZURQIGNvbm5lY3Rvci4KCnNv IGZ1bmMgc2hvdWxkIGxvb2sgbGlrZQoKc3RhdGljIGJvb2wgaXNfZHJyc19pbmFjdGl2ZSh2b2lk KQp7CgljaGFyIGJ1ZltNQVhfRFJSU19TVEFUVVNfQlVGX0xFTl07CgoJZGVidWdmc19yZWFkKCJp OTE1X2RycnNfc3RhdHVzIiwgYnVmKTsKCglpZiAoc3Ryc3RyKGJ1ZiwgIkRSUlNfU3RhdGU6ICIp KQoJCXJldHVybiBmYWxzZTsKCglyZXR1cm4gdHJ1ZTsKfQoKPj4gKwkJcmV0dXJuIHRydWU7Cj4+ ICsKPj4gKwlyZXR1cm4gZmFsc2U7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIGRycnNfcHJp bnRfc3RhdHVzKHZvaWQpCj4+ICt7Cj4+ICsJY2hhciBidWZbTUFYX0RSUlNfU1RBVFVTX0JVRl9M RU5dOwo+PiArCj4+ICsJZGVidWdmc19yZWFkKCJpOTE1X2RycnNfc3RhdHVzIiwgYnVmKTsKPj4g KwlpZ3RfaW5mbygiRFJSUyBTVEFUVVMgOlxuJXNcbiIsIGJ1Zik7Cj4+ICt9Cj4+ICsKPj4gICBz dGF0aWMgc3RydWN0IHRpbWVzcGVjIGZiY19nZXRfbGFzdF9hY3Rpb24odm9pZCkKPj4gICB7Cj4+ ICAgCXN0cnVjdCB0aW1lc3BlYyByZXQgPSB7IDAsIDAgfTsKPj4gQEAgLTkzNSwxMCArMTAwMiwx NyBAQCBzdGF0aWMgYm9vbCBwc3Jfd2FpdF91bnRpbF9lbmFibGVkKHZvaWQpCj4+ICAgCXJldHVy biBpZ3Rfd2FpdChwc3JfaXNfZW5hYmxlZCgpLCA1MDAwLCAxKTsKPj4gICB9Cj4+ICAgCj4+ICtz dGF0aWMgYm9vbCBkcnJzX3dhaXRfdW50aWxfcnJfc3dpdGNoX3RvX2xvdyh2b2lkKQo+PiArewo+ PiArCXJldHVybiBpZ3Rfd2FpdChpc19kcnJzX2xvdygpLCA1MDAwLCAxKTsKPj4gK30KPj4gKwo+ PiAgICNkZWZpbmUgZmJjX2VuYWJsZSgpIGlndF9zZXRfbW9kdWxlX3BhcmFtX2ludCgiZW5hYmxl X2ZiYyIsIDEpCj4+ICAgI2RlZmluZSBmYmNfZGlzYWJsZSgpIGlndF9zZXRfbW9kdWxlX3BhcmFt X2ludCgiZW5hYmxlX2ZiYyIsIDApCj4+ICAgI2RlZmluZSBwc3JfZW5hYmxlKCkgaWd0X3NldF9t b2R1bGVfcGFyYW1faW50KCJlbmFibGVfcHNyIiwgMSkKPj4gICAjZGVmaW5lIHBzcl9kaXNhYmxl KCkgaWd0X3NldF9tb2R1bGVfcGFyYW1faW50KCJlbmFibGVfcHNyIiwgMCkKPj4gKyNkZWZpbmUg ZHJyc19lbmFibGUoKQlkcnJzX3NldCgxKQo+PiArI2RlZmluZSBkcnJzX2Rpc2FibGUoKQlkcnJz X3NldCgwKQo+PiAgIAo+PiAgIHN0YXRpYyB2b2lkIGdldF9zaW5rX2NyYyhzaW5rX2NyY190ICpj cmMsIGJvb2wgbWFuZGF0b3J5KQo+PiAgIHsKPj4gQEAgLTExODQsNiArMTI1OCw3IEBAIHN0YXRp YyB2b2lkIGRpc2FibGVfZmVhdHVyZXMoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCkKPj4gICAK Pj4gICAJZmJjX2Rpc2FibGUoKTsKPj4gICAJcHNyX2Rpc2FibGUoKTsKPj4gKwlkcnJzX2Rpc2Fi bGUoKTsKPj4gICB9Cj4+ICAgCj4+ICAgc3RhdGljIHZvaWQgKmJ1c3lfdGhyZWFkX2Z1bmModm9p ZCAqZGF0YSkKPj4gQEAgLTE1MDgsNiArMTU4MywxMiBAQCBzdGF0aWMgdm9pZCB0ZWFyZG93bl9j cmNzKHZvaWQpCj4+ICAgCWlndF9waXBlX2NyY19mcmVlKHBpcGVfY3JjKTsKPj4gICB9Cj4+ICAg Cj4+ICtzdGF0aWMgdm9pZCB0ZWFyZG93bl9kcnJzKHZvaWQpCj4+ICt7Cj4+ICsJaWYgKGRybS5k cnJzX2RlYnVnZnNfZmQgIT0gLTEpCj4+ICsJCWNsb3NlKGRybS5kcnJzX2RlYnVnZnNfZmQpOwo+ PiArfQo+PiArCj4+ICAgc3RhdGljIGJvb2wgZmJjX3N1cHBvcnRlZF9vbl9jaGlwc2V0KHZvaWQp Cj4+ICAgewo+PiAgIAljaGFyIGJ1ZlsxMjhdOwo+PiBAQCAtMTU3Nyw2ICsxNjU4LDI5IEBAIHN0 YXRpYyB2b2lkIHRlYXJkb3duX3Bzcih2b2lkKQo+PiAgIHsKPj4gICB9Cj4+ICAgCj4+ICtzdGF0 aWMgdm9pZCBzZXR1cF9kcnJzKHZvaWQpCj4+ICt7Cj4+ICsJaWYgKGdldF9jb25uZWN0b3IocHJp bV9tb2RlX3BhcmFtcy5jb25uZWN0b3JfaWQpLT5jb25uZWN0b3JfdHlwZSAhPQo+PiArCSAgICBE Uk1fTU9ERV9DT05ORUNUT1JfZURQKSB7Cj4+ICsJCWlndF9pbmZvKCJDYW4ndCB0ZXN0IERSUlM6 IG5vIHVzYWJsZSBlRFAgc2NyZWVuLlxuIik7Cj4+ICsJCXJldHVybjsKPj4gKwl9Cj4+ICsKPj4g KwlpZiAoIWlzX2RycnNfc3VwcG9ydGVkKCkpIHsKPj4gKwkJaWd0X2luZm8oIkNhbid0IHRlc3Qg RFJSUzogTm90IHN1cHBvcnRlZC5cbiIpOwo+PiArCQlyZXR1cm47Cj4+ICsJfQo+PiArCj4+ICsJ ZHJtLmRycnNfZGVidWdmc19mZCA9IG9wZW5hdChkcm0uZGVidWdmcywgImk5MTVfZHJyc19jdGwi LCBPX1dST05MWSk7Cj4+ICsKPj4gKwlpZiAoZHJtLmRycnNfZGVidWdmc19mZCA+IDApIHsKPj4g KwkJZHJycy5jYW5fdGVzdCA9IHRydWU7Cj4+ICsJfSBlbHNlIHsKPj4gKwkJaWd0X2luZm8oIkNh bid0IHRlc3QgRFJSUzogRGVidWdmcyBlbnRyeSBpOTE1X2RycnNfY3RsIG5vdCBmb3VuZC5cbiIp Owo+PiArCQlkcnJzLmNhbl90ZXN0ID0gZmFsc2U7Cj4+ICsJfQo+PiArfQo+PiArCj4+ICAgc3Rh dGljIHZvaWQgc2V0dXBfZW52aXJvbm1lbnQodm9pZCkKPj4gICB7Cj4+ICAgCXNldHVwX2RybSgp Owo+PiBAQCAtMTU4NCw2ICsxNjg4LDcgQEAgc3RhdGljIHZvaWQgc2V0dXBfZW52aXJvbm1lbnQo dm9pZCkKPj4gICAKPj4gICAJc2V0dXBfZmJjKCk7Cj4+ICAgCXNldHVwX3BzcigpOwo+PiArCXNl dHVwX2RycnMoKTsKPj4gICAKPj4gICAJc2V0dXBfY3JjcygpOwo+PiAgIH0KPj4gQEAgLTE1OTYs NiArMTcwMSw3IEBAIHN0YXRpYyB2b2lkIHRlYXJkb3duX2Vudmlyb25tZW50KHZvaWQpCj4+ICAg CXRlYXJkb3duX3BzcigpOwo+PiAgIAl0ZWFyZG93bl9mYmMoKTsKPj4gICAJdGVhcmRvd25fbW9k ZXNldCgpOwo+PiArCXRlYXJkb3duX2RycnMoKTsKPj4gICAJdGVhcmRvd25fZHJtKCk7Cj4+ICAg fQo+PiAgIAo+PiBAQCAtMTY2Miw2ICsxNzY4LDExIEBAIHN0YXRpYyB2b2lkIGRvX2ZsdXNoKGNv bnN0IHN0cnVjdCB0ZXN0X21vZGUgKnQpCj4+ICAgI2RlZmluZSBBU1NFUlRfUFNSX0VOQUJMRUQJ CSgxIDw8IDYpCj4+ICAgI2RlZmluZSBBU1NFUlRfUFNSX0RJU0FCTEVECQkoMSA8PCA3KQo+PiAg IAo+PiArI2RlZmluZSBEUlJTX0FTU0VSVF9GTEFHUwkJKDcgPDwgOCkKPj4gKyNkZWZpbmUgQVNT RVJUX0RSUlNfSElHSAkJKDEgPDwgOCkKPj4gKyNkZWZpbmUgQVNTRVJUX0RSUlNfTE9XCQkoMSA8 PCA5KQo+PiArI2RlZmluZSBBU1NFUlRfRFJSU19JTkFDVElWRQkJKDEgPDwgMTApCj4+ICsKPj4g ICBzdGF0aWMgaW50IGFkanVzdF9hc3NlcnRpb25fZmxhZ3MoY29uc3Qgc3RydWN0IHRlc3RfbW9k ZSAqdCwgaW50IGZsYWdzKQo+PiAgIHsKPj4gICAJaWYgKCEoZmxhZ3MgJiBET05UX0FTU0VSVF9G RUFUVVJFX1NUQVRVUykpIHsKPj4gQEAgLTE2NjksMTIgKzE3ODAsMTcgQEAgc3RhdGljIGludCBh ZGp1c3RfYXNzZXJ0aW9uX2ZsYWdzKGNvbnN0IHN0cnVjdCB0ZXN0X21vZGUgKnQsIGludCBmbGFn cykKPj4gICAJCQlmbGFncyB8PSBBU1NFUlRfRkJDX0VOQUJMRUQ7Cj4+ICAgCQlpZiAoIShmbGFn cyAmIEFTU0VSVF9QU1JfRElTQUJMRUQpKQo+PiAgIAkJCWZsYWdzIHw9IEFTU0VSVF9QU1JfRU5B QkxFRDsKPj4gKwkJaWYgKCEoKGZsYWdzICYgQVNTRVJUX0RSUlNfTE9XKSB8fAo+PiArCQkgICAg KGZsYWdzICYgQVNTRVJUX0RSUlNfSU5BQ1RJVkUpKSkKPj4gKwkJCWZsYWdzIHw9IEFTU0VSVF9E UlJTX0hJR0g7Cj4+ICAgCX0KPj4gICAKPj4gICAJaWYgKCh0LT5mZWF0dXJlICYgRkVBVFVSRV9G QkMpID09IDApCj4+ICAgCQlmbGFncyAmPSB+RkJDX0FTU0VSVF9GTEFHUzsKPj4gICAJaWYgKCh0 LT5mZWF0dXJlICYgRkVBVFVSRV9QU1IpID09IDApCj4+ICAgCQlmbGFncyAmPSB+UFNSX0FTU0VS VF9GTEFHUzsKPj4gKwlpZiAoKHQtPmZlYXR1cmUgJiBGRUFUVVJFX0RSUlMpID09IDApCj4+ICsJ CWZsYWdzICY9IH5EUlJTX0FTU0VSVF9GTEFHUzsKPj4gICAKPj4gICAJcmV0dXJuIGZsYWdzOwo+ PiAgIH0KPj4gQEAgLTE3MDYsNiArMTgyMiwyMyBAQCBzdGF0aWMgdm9pZCBkb19zdGF0dXNfYXNz ZXJ0aW9ucyhpbnQgZmxhZ3MpCj4+ICAgCQlyZXR1cm47Cj4+ICAgCX0KPj4gICAKPj4gKwlpZiAo ZmxhZ3MgJiBBU1NFUlRfRFJSU19ISUdIKSB7Cj4+ICsJCWlmICghaXNfZHJyc19oaWdoKCkpIHsK Pj4gKwkJCWRycnNfcHJpbnRfc3RhdHVzKCk7Cj4+ICsJCQlpZ3RfYXNzZXJ0X2YoZmFsc2UsICJE UlJTIEhJR0hcbiIpOwo+PiArCQl9Cj4+ICsJfSBlbHNlIGlmIChmbGFncyAmIEFTU0VSVF9EUlJT X0xPVykgewo+PiArCQlpZiAoIWRycnNfd2FpdF91bnRpbF9ycl9zd2l0Y2hfdG9fbG93KCkpIHsK Pj4gKwkJCWRycnNfcHJpbnRfc3RhdHVzKCk7Cj4+ICsJCQlpZ3RfYXNzZXJ0X2YoZmFsc2UsICJE UlJTIExPV1xuIik7Cj4+ICsJCX0KPj4gKwl9IGVsc2UgaWYgKGZsYWdzICYgQVNTRVJUX0RSUlNf SU5BQ1RJVkUpIHsKPj4gKwkJaWYgKCFpc19kcnJzX2luYWN0aXZlKCkpIHsKPj4gKwkJCWRycnNf cHJpbnRfc3RhdHVzKCk7Cj4+ICsJCQlpZ3RfYXNzZXJ0X2YoZmFsc2UsICJEUlJTIElOQUNUSVZF XG4iKTsKPj4gKwkJfQo+PiArCX0KPj4gKwo+PiAgIAlpZiAoZmxhZ3MgJiBBU1NFUlRfRkJDX0VO QUJMRUQpIHsKPj4gICAJCWlndF9yZXF1aXJlKCFmYmNfbm90X2Vub3VnaF9zdG9sZW4oKSk7Cj4+ ICAgCQlpZ3RfcmVxdWlyZSghZmJjX3N0cmlkZV9ub3Rfc3VwcG9ydGVkKCkpOwo+PiBAQCAtMTgz Myw2ICsxOTY2LDggQEAgc3RhdGljIHZvaWQgZW5hYmxlX2ZlYXR1cmVzX2Zvcl90ZXN0KGNvbnN0 IHN0cnVjdCB0ZXN0X21vZGUgKnQpCj4+ICAgCQlmYmNfZW5hYmxlKCk7Cj4+ICAgCWlmICh0LT5m ZWF0dXJlICYgRkVBVFVSRV9QU1IpCj4+ICAgCQlwc3JfZW5hYmxlKCk7Cj4+ICsJaWYgKHQtPmZl YXR1cmUgJiBGRUFUVVJFX0RSUlMpCj4+ICsJCWRycnNfZW5hYmxlKCk7Cj4+ICAgfQo+PiAgIAo+ PiAgIHN0YXRpYyB2b2lkIGNoZWNrX3Rlc3RfcmVxdWlyZW1lbnRzKGNvbnN0IHN0cnVjdCB0ZXN0 X21vZGUgKnQpCj4+IEBAIC0xODUyLDYgKzE5ODcsMTggQEAgc3RhdGljIHZvaWQgY2hlY2tfdGVz dF9yZXF1aXJlbWVudHMoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCkKPj4gICAJCQkgICAgICAi Q2FuJ3QgdGVzdCBQU1Igd2l0aG91dCBzaW5rIENSQ3NcbiIpOwo+PiAgIAl9Cj4+ICAgCj4+ICsJ aWYgKHQtPmZlYXR1cmUgJiBGRUFUVVJFX0RSUlMpCj4+ICsJCWlndF9yZXF1aXJlX2YoZHJycy5j YW5fdGVzdCwKPj4gKwkJCSAgICAgICJDYW4ndCB0ZXN0IERSUlMgd2l0aCB0aGUgY3VycmVudCBv dXRwdXRzXG4iKTsKPj4gKwo+PiArCS8qCj4+ICsJICogSW4ga2VybmVsLCBXaGVuIFBTUiBpcyBl bmFibGVkLCBEUlJTIHdpbGwgYmUgZGlzYWJsZWQuIFNvIElmIGEgdGVzdAo+PiArCSAqIGNhc2Ug bmVlZHMgRFJSUyArIFBTUiBlbmFibGVkLCB0aGF0IHdpbGwgYmUgc2tpcHBlZC4KPj4gKwkgKi8K Pj4gKwlpZ3RfcmVxdWlyZV9mKCEoKHQtPmZlYXR1cmUgJiBGRUFUVVJFX1BTUikgJiYKPj4gKwkJ ICAgICAgKHQtPmZlYXR1cmUgJiBGRUFUVVJFX0RSUlMpKSwKPj4gKwkJICAgICAgIkNhbid0IHRl c3QgUFNSIGFuZCBEUlJTIHRvZ2V0aGVyXG4iKTsKPj4gKwo+PiAgIAlpZiAob3B0Lm9ubHlfcGlw ZXMgIT0gUElQRV9DT1VOVCkKPj4gICAJCWlndF9yZXF1aXJlKHQtPnBpcGVzID09IG9wdC5vbmx5 X3BpcGVzKTsKPj4gICB9Cj4+IEBAIC0xOTczLDcgKzIxMjAsNyBAQCBzdGF0aWMgdm9pZCBydGVf c3VidGVzdChjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQo+PiAgIAo+PiAgIAl1bnNldF9hbGxf Y3J0Y3MoKTsKPj4gICAJZG9fYXNzZXJ0aW9ucyhBU1NFUlRfRkJDX0RJU0FCTEVEIHwgQVNTRVJU X1BTUl9ESVNBQkxFRCB8Cj4+IC0JCSAgICAgIERPTlRfQVNTRVJUX0NSQyk7Cj4+ICsJCSAgICAg IERPTlRfQVNTRVJUX0NSQyB8IEFTU0VSVF9EUlJTX0lOQUNUSVZFKTsKPj4gICAKPj4gICAJZW5h YmxlX3ByaW1fc2NyZWVuX2FuZF93YWl0KHQpOwo+PiAgIAlzZXRfY3Vyc29yX2Zvcl90ZXN0KHQs ICZwcmltX21vZGVfcGFyYW1zKTsKPj4gQEAgLTIwNjUsNiArMjIxMiwxMyBAQCBzdGF0aWMgdm9p ZCBkcmF3X3N1YnRlc3QoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCkKPj4gICAJaWYgKG9wX2Rp c2FibGVzX3Bzcih0LCB0LT5tZXRob2QpKQo+PiAgIAkJYXNzZXJ0aW9ucyB8PSBBU1NFUlRfUFNS X0RJU0FCTEVEOwo+PiAgIAo+PiArCS8qCj4+ICsJICogT24gRkJTX0lORElWSURVQUwsIHdyaXRl IHRvIG9mZnNjcmVlbiBwbGFuZSB3aWxsIG5vdCB0b3VjaCB0aGUKPj4gKwkgKiBjdXJyZW50IGZy YW1idWZmZXIuIEhlbmNlIGFzc2VydCBmb3IgRFJSU19MT1cuCj4+ICsJICovCj4+ICsJaWYgKCh0 LT5mYnMgPT0gRkJTX0lORElWSURVQUwpICYmICh0LT5zY3JlZW4gPT0gU0NSRUVOX09GRlNDUkVF TikpCj4+ICsJCWFzc2VydGlvbnMgfD0gQVNTRVJUX0RSUlNfTE9XOwo+PiArCj4+ICAgCXByZXBh cmVfc3VidGVzdCh0LCBwYXR0ZXJuKTsKPj4gICAJdGFyZ2V0ID0gcGlja190YXJnZXQodCwgcGFy YW1zKTsKPj4gICAKPj4gQEAgLTIyNzMsNyArMjQyNywxMSBAQCBzdGF0aWMgdm9pZCBzbG93X2Ry YXdfc3VidGVzdChjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQo+PiAgIAkJc2xlZXAoMik7Cj4+ ICAgCj4+ICAgCQl1cGRhdGVfd2FudGVkX2NyYyh0LCAmcGF0dGVybi0+Y3Jjc1t0LT5mb3JtYXRd W3JdKTsKPj4gLQkJZG9fYXNzZXJ0aW9ucygwKTsKPj4gKwo+PiArCQlpZiAodC0+ZmVhdHVyZSAm IEZFQVRVUkVfRFJSUykKPj4gKwkJCWRvX2Fzc2VydGlvbnMoQVNTRVJUX0RSUlNfTE9XKTsKPj4g KwkJZWxzZQo+PiArCQkJZG9fYXNzZXJ0aW9ucygwKTsKPj4gICAJfQo+PiAgIH0KPj4gICAKPj4g QEAgLTI4ODIsMTcgKzMwNDAsMTcgQEAgc3RhdGljIHZvaWQgc3VzcGVuZF9zdWJ0ZXN0KGNvbnN0 IHN0cnVjdCB0ZXN0X21vZGUgKnQpCj4+ICAgCXNsZWVwKDUpOwo+PiAgIAlpZ3Rfc3lzdGVtX3N1 c3BlbmRfYXV0b3Jlc3VtZShTVVNQRU5EX1NUQVRFX01FTSwgU1VTUEVORF9URVNUX05PTkUpOwo+ PiAgIAlzbGVlcCg1KTsKPj4gLQlkb19hc3NlcnRpb25zKDApOwo+PiArCWRvX2Fzc2VydGlvbnMo QVNTRVJUX0RSUlNfTE9XKTsKPj4gICAKPj4gICAJdW5zZXRfYWxsX2NydGNzKCk7Cj4+ICAgCXNs ZWVwKDUpOwo+PiAgIAlpZ3Rfc3lzdGVtX3N1c3BlbmRfYXV0b3Jlc3VtZShTVVNQRU5EX1NUQVRF X01FTSwgU1VTUEVORF9URVNUX05PTkUpOwo+PiAgIAlzbGVlcCg1KTsKPj4gICAJZG9fYXNzZXJ0 aW9ucyhBU1NFUlRfRkJDX0RJU0FCTEVEIHwgQVNTRVJUX1BTUl9ESVNBQkxFRCB8Cj4+IC0JCSAg ICAgIERPTlRfQVNTRVJUX0NSQyk7Cj4+ICsJCSAgICAgIERPTlRfQVNTRVJUX0NSQyB8IEFTU0VS VF9EUlJTX0lOQUNUSVZFKTsKPj4gICAKPj4gICAJc2V0X21vZGVfZm9yX3BhcmFtcyhwYXJhbXMp Owo+PiAtCWRvX2Fzc2VydGlvbnMoMCk7Cj4+ICsJZG9fYXNzZXJ0aW9ucyhBU1NFUlRfRFJSU19I SUdIKTsKPiBJIGRvbid0IHVuZGVyc3RhbmQgd2h5IHdlIGhhZCB0aGlzIGRvX2Fzc2VydGlvbnMo MCkgaGVyZSwKPiBidXQgaG93IHN1cmUgeW91IGFyZSB0aGF0IHRoaXMgaXMgaGlnaCBhbmQgcHJl dmlvdXMgaXMgbG93PwpBY3R1YWxsecKgIHBhc3NpbmcgMCBvciBBU1NFUlRfRFJSU19ISUdIIHRv IGRvX2Fzc2VydGlvbiBpcyBzYW1lLiBpZiBEUlJTIAppcyBlbmFibGVkIGFuZCBhc3NlcnQgZmxh ZyBkb2Vzbid0IGhhdmUgRFJSU19MT1cgfHwgRFJSU19JTkFDVElWRSwKYWRqdXN0X2Fzc2VydGlv bl9mbGFncygpIHdpbGwgc2V0IEFTU0VSVF9EUlJTX0hJR0ggaW4gdGhlIGZsYWcuCmkuZSBJZiBh IGZlYXR1cmUgaXMgZW5hYmxlZCBidXQgbm8gYXNzZXJ0IGZsYWcgaXMgcGFzc2VkIGZvciB0aGF0 IApmZWF0dXJlIGFkanVzdF9hc3NlcnRpb25fZmxhZ3MoKSBzZXRzIHRoZSBkZWZhdWx0IHN0YXRl IG9mIHRoZSBmZWF0dXJlcyAKYXMgYXNzZXJ0IGZsYWcuCnNvIHllcyBkb19hc3NlcnRpb25zKDAp IHNob3VsZG4ndCBiZSB0b3VjaGVkIGF0IGl0cyBsYXN0IG9jY3VycmVuY2UuCgpyZWdhcmRpbmcg aGlnaCBhbmQgbG93IHN0YXRlIGV4cGVjdGF0aW9uOiBhdCBlYXJsaWVyIHN0YWdlIHdlIGhhdmUg dGhlIApkZWxheSBvZiA1U2VjIGFmdGVyIHJlc3VtZSB3aXRoIGFsbCBjcnRjcyBvbi4gc28gaWYg RFJSUyBpcyBlbmFibGVkLCBpdHMgCnN0YXRlIHdpbGwgYmUgRFJSU19MT1cuCkluIG1pZGRsZSBz dGFnZSwgc2luY2Ugbm8gYWN0aXZlIGNydGMsIERSUlMgd2lsbCBiZSBpbmFjdGl2ZS4gQW5kIGlu IApsYXRlciBzdGFnZSBhZnRlciBtb2RlIHNldCB0aGVyZSBpcyBub3QgZW5vdWdoIGRlbGF5IHRv IGVudGVyIGludG8gCkRSUlNfTE9XIHNvIERSUlNfSElHSCBzaG91bGQgYmUgZXhwZWN0ZWQuCgpB Ym92ZSBEUlJTIHN0YXRlIGV4cGVjdGF0aW9uIHRoZW9yeSBpcyB0ZXN0ZWQgdG8gYmUgY29ycmVj dCBvbiBHTEsgYW5kIApvdGhlciBwbGF0Zm9ybXMuCgotUmFtCj4KPj4gICB9Cj4+ICAgCj4+ICAg LyoqCj4+IEBAIC0zMzcxLDYgKzM1MjksMTQgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmZlYXR1cmVf c3RyKGludCBmZWF0dXJlKQo+PiAgIAkJcmV0dXJuICJwc3IiOwo+PiAgIAljYXNlIEZFQVRVUkVf RkJDIHwgRkVBVFVSRV9QU1I6Cj4+ICAgCQlyZXR1cm4gImZiY3BzciI7Cj4+ICsJY2FzZSBGRUFU VVJFX0RSUlM6Cj4+ICsJCXJldHVybiAiZHJycyI7Cj4+ICsJY2FzZSBGRUFUVVJFX0ZCQyB8IEZF QVRVUkVfRFJSUzoKPj4gKwkJcmV0dXJuICJmYmNkcnJzIjsKPj4gKwljYXNlIEZFQVRVUkVfUFNS IHwgRkVBVFVSRV9EUlJTOgo+PiArCQlyZXR1cm4gInBzcmRycnMiOwo+PiArCWNhc2UgRkVBVFVS RV9GQkMgfCBGRUFUVVJFX1BTUiB8IEZFQVRVUkVfRFJSUzoKPj4gKwkJcmV0dXJuICJmYmNwc3Jk cnJzIjsKPj4gICAJZGVmYXVsdDoKPj4gICAJCWlndF9hc3NlcnQoZmFsc2UpOwo+PiAgIAl9Cj4+ IEBAIC0zNjM1LDcgKzM4MDEsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQo+ PiAgIAkJCQl0aWxpbmdjaGFuZ2Vfc3VidGVzdCgmdCk7Cj4+ICAgCQl9Cj4+ICAgCj4+IC0JCWlm ICh0LmZlYXR1cmUgJiBGRUFUVVJFX1BTUikKPj4gKwkJaWYgKCh0LmZlYXR1cmUgJiBGRUFUVVJF X1BTUikgfHwgKHQuZmVhdHVyZSAmIEZFQVRVUkVfRFJSUykpCj4+ICAgCQkJaWd0X3N1YnRlc3Rf ZigiJXMtc2xvd2RyYXciLCBmZWF0dXJlX3N0cih0LmZlYXR1cmUpKQo+PiAgIAkJCQlzbG93X2Ry YXdfc3VidGVzdCgmdCk7Cj4+ICAgCj4+IC0tIAo+PiAxLjkuMQo+PgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==