From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5CDFF89ED6 for ; Tue, 19 May 2020 10:23:56 +0000 (UTC) Date: Tue, 19 May 2020 15:44:55 +0530 From: Anshuman Gupta Message-ID: <20200519101455.GO10565@intel.com> References: <20200512103415.28968-1-anshuman.gupta@intel.com> <20200512103415.28968-4-anshuman.gupta@intel.com> <20200519093209.GZ9497@platvala-desk.ger.corp.intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20200519093209.GZ9497@platvala-desk.ger.corp.intel.com> Subject: Re: [igt-dev] [PATCH i-g-t v8 3/6] tests/i915_pm_lpsp: lpsp platform agnostic support 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: Petri Latvala Cc: igt-dev@lists.freedesktop.org, martin.peres@intel.com List-ID: T24gMjAyMC0wNS0xOSBhdCAxMjozMjowOSArMDMwMCwgUGV0cmkgTGF0dmFsYSB3cm90ZToKPiBP biBUdWUsIE1heSAxMiwgMjAyMCBhdCAwNDowNDoxMlBNICswNTMwLCBBbnNodW1hbiBHdXB0YSB3 cm90ZToKPiA+IEN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgbHBzcCBpZ3QgdGVzdCwgYXNzdW1l ZCB0aGF0IGV2ZXJ5IG5vbi1lZHAKPiA+IHBhbmVsIGlzbid0IGEgbHBzcCBwYW5lbCBidXQgaXQg aXMgbm90IHRydWUgb24gVEdMIGFueW1vcmUsCj4gPiBhbnkgSERNSS9EUC9EU0kgcGFuZWwgY29u bmVjdGVkIG9uIHBpcGUgQSBhbmQgY29ubmVjdGVkIHRvIFBPUlRfe0EsQixDfQo+ID4gY2FuIGRy aXZlIExQU1AuCj4gPiBFdmVuIG9uIG9sZGVyIEdlbjkgcGxhdGZvcm0gYSBEUCBwYW5lbCBjYW4g ZHJpdmUgbHBzcCBvbiBQb3J0IEEuCj4gPiBUaGlzIHJlcXVpcmVzIGNvbXBsZXRlIGRlc2lnbiBj aGFuZ2UgaW4gY3VycmVudCBscHNwIGlndCBmb3IgYSBwbGF0Zm9ybQo+ID4gYWdub3N0aWMgc3Vw cG9ydC4KPiA+IAo+ID4gVGhlIG5ldyBpZ3QgYXBwcm9hY2ggaXMgcmVsaWVzIG9uIGNvbm5lY3Rv ciBzcGVjaWZpYwo+ID4gaTkxNV9scHNwX2NhcGFiaWxpdHkgYW5kIGk5MTVfbHBzcF9zdGF0dXMg ZGVidWdmcyBhdHRyaWJ1dGVzLAo+ID4gdGhlc2UgZGVidWdmcyBleHBvc2VzIHdoZXRoZXIgYW4g b3V0cHV0IGlzIGNhcGFibGUgb2YgZHJpdmluZyBscHNwCj4gPiBhbmQgbHBzcCBpcyBlbmFibGVk Lgo+ID4gCj4gPiBOdWtpbmcgZWRwLW5hdGl2ZSBhbmQgbm9uLWVkcCB0ZXN0LCBpbnRyb2R1Y2lu ZyBhIG5ldyBkeW5hbWljCj4gPiBpZ3Qgc3VidGVzdCBrbXMtbHBzcCwgd2hpY2ggdmFsaWRhdGVz IGxwc3Agb24gZWFjaCBjb25uZWN0ZWQgb3V0cHV0Cj4gPiBhbmQgc2tpcCB0aGUgc3VidGVzdCBp ZiBvdXRwdXQgaXMgbm90IGxwc3AgY2FwYWJsZS4KPiA+IAo+ID4gU2tpcCBzY3JlZW5zLWRpc2Fi bGVkIHRlc3QgZm9yIHBsYXRmb3JtIHdoaWNoIHN1cHBvcnQgREMgc3RhdGVzLgo+ID4gc2NyZWVu cy1kaXNhYmxlZCB0ZXN0IGlzIG9ubHkgdmFsaWQgZm9yIHRoZSBwbGF0Zm9ybXMgbGlrZSBIU1cv QkRXCj4gPiB3aGVyZSBQRzEgaXMgQWx3YXlzLU9OIHBvd2VyIGRvbWFpbiwgc28gdGhlc2UgcGxh dGZvcm0gdGVzdCBscHNwCj4gPiB3aXRoIGFsbCBzY3JlZW4gZGlzYWJsZWQgaS5lIHZhbGlkYXRl IFBHMiB3aGVuIGFsbCBzY3JlZW4gYXJlCj4gPiBkaXNhYmxlZC4KPiA+IERDIHN0YXRlIGkuZSBE TUMgZi93IHN1cHBvcnRlZCBwbGF0Zm9ybXMgZG9uJ3QgaGF2ZSBhbnkgUk9JIHRvIHZhbGlkYXRl Cj4gPiBzY3JlZW5zLWRpc2FibGVkIHN1YnRlc3QgYXMgZXhpc3RpbmcgZGMqLWRwbXMgaTkxNV9w bV9kYwo+ID4gc3VidGVzdCBhbHJlYWR5IHZhbGlkYXRlIGl0IGltcGxpY2l0bHkuCj4gPiAKPiA+ IHYyOgo+ID4gLSBDSSBmYWlsdXJlcyBmaXh1cC4KPiA+IHYzOgo+ID4gLSByZW1vdmVkIHVubG9h ZGluZyBvZiBzbmRfbW9kdWxlcy4gW01hcnRpbl0KPiA+IHY0Ogo+ID4gLSBEb24ndCB0ZXN0IG5v bi1scHNwKGlmIGxwc3AgZGlzYWJsZWQpLCBubyBST0kgdG8gdGVzdCB0aGF0Lgo+ID4gLSBudWtl IHBhbmVsLWZpdHRlciB0ZXN0Lgo+ID4gdjU6Cj4gPiAtIEFkZGVkIGR5bmFtaWMgc3VidGVzdCBh bmQgaWd0IGNoYW5nZXMgYWNjb3JkaW5nIHRvIGtlcm5lbAo+ID4gICBkZWJ1Z2ZzIGk5MTVfbHBz cF9zdGF0dXMgY2hhbmdlcy4KPiA+IHY2Ogo+ID4gLSBBdm9pZGVkIHBpcGUgYmlnIGpvaW5lciBi eSB1c2luZyA0ayBvciBsZXNzZXIgbW9kZSwKPiA+ICAgc28gaWd0IHdpbGwgbm90IGZhaWwgd2hl biBwaXBlIGJpZyBqb2luZXIgcGF0Y2hlcyB3aWxsCj4gPiAgIGxhbmQgdG8ga2VybmVsLgo+ID4g djc6Cj4gPiAtIENvbWJpbmVkIFt2NiA0LzZdIHBhdGNoIHRvIHRoaXMgcGF0Y2gsIHNraXAgdGhl IHNjcmVlbnMtZGlzYWJsZWQKPiA+ICAgc3VidGVzdCBmb3IgREMgc3RhdGUgc3VwcG9ydGVkIHBs YXRmb3Jtcy4gW0FuaW1lc2hdCj4gPiB2ODoKPiA+IC0gNGsgbW9kZSBjb3JyZWN0aW9uIDM4NDAq MjE2MCBhbmQgZm9yIGxvb3AgZm9yIGF2YWlsYWJsZSBtb2Rlcwo+ID4gICBzaG91bGQgaXRlcmF0 ZSBmcm9tIGMtPm1vZGVzWzBdLiBbQW5raXRdCj4gPiAKPiA+IFJldmlld2VkLWJ5OiBBbmltZXNo IE1hbm5hIDxhbmltZXNoLm1hbm5hQGludGVsLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IEFuc2h1 bWFuIEd1cHRhIDxhbnNodW1hbi5ndXB0YUBpbnRlbC5jb20+Cj4gPiAtLS0KPiA+ICB0ZXN0cy9p OTE1L2k5MTVfcG1fbHBzcC5jIHwgMzEzICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0tLS0tCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDE0NyBpbnNlcnRpb25zKCspLCAxNjYgZGVsZXRp b25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2k5MTVfcG1fbHBzcC5jIGIv dGVzdHMvaTkxNS9pOTE1X3BtX2xwc3AuYwo+ID4gaW5kZXggMDhmODJlN2MuLjBlOTQ1MmZkIDEw MDY0NAo+ID4gLS0tIGEvdGVzdHMvaTkxNS9pOTE1X3BtX2xwc3AuYwo+ID4gKysrIGIvdGVzdHMv aTkxNS9pOTE1X3BtX2xwc3AuYwo+ID4gQEAgLTI1LDIxMCArMjUsMTkxIEBACj4gPiAgICovCj4g PiAgCj4gPiAgI2luY2x1ZGUgImlndC5oIgo+ID4gKyNpbmNsdWRlICJpZ3Rfa21vZC5oIgo+ID4g KyNpbmNsdWRlICJpZ3RfcG0uaCIKPiA+ICsjaW5jbHVkZSAiaWd0X3N5c2ZzLmgiCj4gPiAgI2lu Y2x1ZGUgPHN5cy90eXBlcy5oPgo+ID4gICNpbmNsdWRlIDxzeXMvc3RhdC5oPgo+ID4gICNpbmNs dWRlIDxmY250bC5oPgo+ID4gICNpbmNsdWRlIDx1bmlzdGQuaD4KPiA+ICAKPiA+ICsjZGVmaW5l IE1BWF9TSU5LX0xQU1BfSU5GT19CVUZfTEVOCTQwOTYKPiA+ICAKPiA+IC1zdGF0aWMgYm9vbCBz dXBwb3J0c19scHNwKHVpbnQzMl90IGRldmlkKQo+ID4gLXsKPiA+IC0JcmV0dXJuIElTX0hBU1dF TEwoZGV2aWQpIHx8IElTX0JST0FEV0VMTChkZXZpZCk7Cj4gPiAtfQo+ID4gKyNkZWZpbmUgUFdS X0RPTUFJTl9JTkZPICJpOTE1X3Bvd2VyX2RvbWFpbl9pbmZvIgo+ID4gIAo+ID4gLXN0YXRpYyBi b29sIGxwc3BfaXNfZW5hYmxlZChpbnQgZHJtX2ZkKQo+ID4gK3R5cGVkZWYgc3RydWN0IHsKPiA+ ICsJaW50IGRybV9mZDsKPiA+ICsJaW50IGRlYnVnZnNfZmQ7Cj4gPiArCXVpbnQzMl90IGRldmlk Owo+ID4gKwljaGFyICpwd3JfZG1uX2luZm87Cj4gPiArCWlndF9kaXNwbGF5X3QgZGlzcGxheTsK PiA+ICsJc3RydWN0IGlndF9mYiBmYjsKPiA+ICsJZHJtTW9kZU1vZGVJbmZvICptb2RlOwo+ID4g KwlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKPiA+ICt9IGRhdGFfdDsKPiA+ICsKPiA+ICtzdGF0aWMg Ym9vbCBscHNwX2lzX2VuYWJsZWQoZGF0YV90ICpkYXRhKQo+ID4gIHsKPiA+IC0JdWludDMyX3Qg dmFsOwo+ID4gKwljaGFyIGJ1ZltNQVhfU0lOS19MUFNQX0lORk9fQlVGX0xFTl07Cj4gPiArCWlu dCBsZW47Cj4gPiAgCj4gPiAtCXZhbCA9IElOUkVHKEhTV19QV1JfV0VMTF9DVEwyKTsKPiA+IC0J cmV0dXJuICEodmFsICYgSFNXX1BXUl9XRUxMX1NUQVRFX0VOQUJMRUQpOwo+ID4gLX0KPiA+ICsJ bGVuID0gaWd0X2RlYnVnZnNfc2ltcGxlX3JlYWQoZGF0YS0+ZGVidWdmc19mZCwgImk5MTVfbHBz cF9zdGF0dXMiLAo+ID4gKwkJCQkgICAgICBidWYsIHNpemVvZihidWYpKTsKPiA+ICsJaWYgKGxl biA8IDApCj4gPiArCQlpZ3RfYXNzZXJ0X2VxKGxlbiwgLUVOT0RFVik7Cj4gPiAgCj4gPiAtLyog VGhlIExQU1AgbW9kZSBpcyBhbGwgYWJvdXQgYW4gZW5hYmxlZCBwaXBlLCBidXQgd2UgZXhwZWN0 IHRvIGFsc28gYmUgaW4gdGhlCj4gPiAtICogbG93IHBvd2VyIG1vZGUgd2hlbiBubyBwaXBlcyBh cmUgZW5hYmxlZCwgc28gZG8gdGhpcyBjaGVjayBhbnl3YXkuICovCj4gPiAtc3RhdGljIHZvaWQg c2NyZWVuc19kaXNhYmxlZF9zdWJ0ZXN0KGludCBkcm1fZmQsIGRybU1vZGVSZXNQdHIgZHJtX3Jl cykKPiA+IC17Cj4gPiAtCWttc3Rlc3RfdW5zZXRfYWxsX2NydGNzKGRybV9mZCwgZHJtX3Jlcyk7 Cj4gPiAtCWlndF9hc3NlcnQobHBzcF9pc19lbmFibGVkKGRybV9mZCkpOwo+ID4gKwlpZ3Rfc2tp cF9vbihzdHJzdHIoYnVmLCAiTFBTUDogbm90IHN1cHBvcnRlZCIpKTsKPiA+ICsKPiA+ICsJcmV0 dXJuIHN0cnN0cihidWYsICJMUFNQOiBlbmFibGVkIik7Cj4gPiAgfQo+ID4gIAo+ID4gLXN0YXRp YyB1aW50MzJfdCBjcmVhdGVfZmIoaW50IGRybV9mZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQo+ ID4gK3N0YXRpYyBib29sIGRtY19zdXBwb3J0ZWQoaW50IGRlYnVnZnMpCj4gPiAgewo+ID4gLQlz dHJ1Y3QgaWd0X2ZiIGZiOwo+ID4gKwljaGFyIGJ1ZlsxNV07Cj4gPiArCWludCBsZW47Cj4gPiAg Cj4gPiAtCXJldHVybiBpZ3RfY3JlYXRlX3BhdHRlcm5fZmIoZHJtX2ZkLCB3aWR0aCwgaGVpZ2h0 LCBEUk1fRk9STUFUX1hSR0I4ODg4LAo+ID4gLQkJCQkgICAgIExPQ0FMX0RSTV9GT1JNQVRfTU9E X05PTkUsICZmYik7Cj4gPiArCWxlbiA9IGlndF9zeXNmc19yZWFkKGRlYnVnZnMsICJpOTE1X2Rt Y19pbmZvIiwgYnVmLCBzaXplb2YoYnVmKSAtIDEpOwo+ID4gKwo+ID4gKwlpZiAobGVuIDwgMCkK PiA+ICsJCXJldHVybiBmYWxzZTsKPiA+ICsJZWxzZQo+ID4gKwkJcmV0dXJuIHRydWU7Cj4gPiAg fQo+ID4gIAo+ID4gLXN0YXRpYyB2b2lkIGVkcF9zdWJ0ZXN0KGludCBkcm1fZmQsIGRybU1vZGVS ZXNQdHIgZHJtX3JlcywKPiA+IC0JCQlkcm1Nb2RlQ29ubmVjdG9yUHRyICpkcm1fY29ubmVjdG9y cywgdWludDMyX3QgZGV2aWQsCj4gPiAtCQkJYm9vbCB1c2VfcGFuZWxfZml0dGVyKQo+ID4gKy8q Cj4gPiArICogVGhlIExQU1AgbW9kZSBpcyBhbGwgYWJvdXQgYW4gZW5hYmxlZCBwaXBlLCBidXQg d2UgZXhwZWN0IHRvIGFsc28gYmUgaW4gdGhlCj4gPiArICogbG93IHBvd2VyIG1vZGUgd2hlbiBu byBwaXBlcyBhcmUgZW5hYmxlZCwgc28gZG8gdGhpcyBjaGVjayBhbnl3YXkuCj4gPiArICovCj4g PiArc3RhdGljIHZvaWQgc2NyZWVuc19kaXNhYmxlZF9zdWJ0ZXN0KGRhdGFfdCAqZGF0YSkKPiA+ ICB7Cj4gPiAtCWludCBpLCByYzsKPiA+IC0JdWludDMyX3QgY3J0Y19pZCA9IDAsIGJ1ZmZlcl9p ZCA9IDA7Cj4gPiAtCWRybU1vZGVDb25uZWN0b3JQdHIgY29ubmVjdG9yID0gTlVMTDsKPiA+IC0J ZHJtTW9kZU1vZGVJbmZvUHRyIG1vZGUgPSBOVUxMOwo+ID4gLQlkcm1Nb2RlTW9kZUluZm8gc3Rk XzEwMjRfbW9kZSA9IHsKPiA+IC0JCS5jbG9jayA9IDY1MDAwLAo+ID4gLQkJLmhkaXNwbGF5ID0g MTAyNCwKPiA+IC0JCS5oc3luY19zdGFydCA9IDEwNDgsCj4gPiAtCQkuaHN5bmNfZW5kID0gMTE4 NCwKPiA+IC0JCS5odG90YWwgPSAxMzQ0LAo+ID4gLQkJLmhza2V3ID0gMCwKPiA+IC0JCS52ZGlz cGxheSA9IDc2OCwKPiA+IC0JCS52c3luY19zdGFydCA9IDc3MSwKPiA+IC0JCS52c3luY19lbmQg PSA3NzcsCj4gPiAtCQkudnRvdGFsID0gODA2LAo+ID4gLQkJLnZzY2FuID0gMCwKPiA+IC0JCS52 cmVmcmVzaCA9IDYwLAo+ID4gLQkJLmZsYWdzID0gMHhBLAo+ID4gLQkJLnR5cGUgPSAweDQwLAo+ ID4gLQkJLm5hbWUgPSAiQ3VzdG9tIDEwMjR4NzY4IiwKPiA+IC0JfTsKPiA+IC0KPiA+IC0Ja21z dGVzdF91bnNldF9hbGxfY3J0Y3MoZHJtX2ZkLCBkcm1fcmVzKTsKPiA+IC0KPiA+IC0JZm9yIChp ID0gMDsgaSA8IGRybV9yZXMtPmNvdW50X2Nvbm5lY3RvcnM7IGkrKykgewo+ID4gLQkJZHJtTW9k ZUNvbm5lY3RvclB0ciBjID0gZHJtX2Nvbm5lY3RvcnNbaV07Cj4gPiAtCj4gPiAtCQlpZiAoYy0+ Y29ubmVjdG9yX3R5cGUgIT0gRFJNX01PREVfQ09OTkVDVE9SX2VEUCkKPiA+IC0JCQljb250aW51 ZTsKPiA+IC0JCWlmIChjLT5jb25uZWN0aW9uICE9IERSTV9NT0RFX0NPTk5FQ1RFRCkKPiA+IC0J CQljb250aW51ZTsKPiA+IC0KPiA+IC0JCWlmICghdXNlX3BhbmVsX2ZpdHRlciAmJiBjLT5jb3Vu dF9tb2Rlcykgewo+ID4gLQkJCWNvbm5lY3RvciA9IGM7Cj4gPiAtCQkJbW9kZSA9ICZjLT5tb2Rl c1swXTsKPiA+IC0JCQlicmVhazsKPiA+IC0JCX0KPiA+IC0JCWlmICh1c2VfcGFuZWxfZml0dGVy KSB7Cj4gPiAtCQkJY29ubmVjdG9yID0gYzsKPiA+IC0KPiA+IC0JCQkvKiBUaGlzIGlzIG9uZSBv ZiB0aGUgbW9kZXMgWG9yZyBjcmVhdGVzIGZvciBwYW5lbHMsIHNvCj4gPiAtCQkJICogaXQgc2hv dWxkIHdvcmsganVzdCBmaW5lLiBOb3RpY2UgdGhhdCBHZW5zIHRoYXQKPiA+IC0JCQkgKiBzdXBw b3J0IExQU1AgYXJlIHRvbyBuZXcgZm9yIHBhbmVscyB3aXRoIG5hdGl2ZQo+ID4gLQkJCSAqIDEw MjR4NzY4IHJlc29sdXRpb24sIHNvIHRoaXMgc2hvdWxkIGZvcmNlIHRoZSBwYW5lbAo+ID4gLQkJ CSAqIGZpdHRlci4gKi8KPiA+IC0JCQlpZ3RfYXNzZXJ0KGMtPmNvdW50X21vZGVzICYmCj4gPiAt CQkJCSAgIGMtPm1vZGVzWzBdLmhkaXNwbGF5ID4gMTAyNCk7Cj4gPiAtCQkJaWd0X2Fzc2VydChj LT5jb3VudF9tb2RlcyAmJgo+ID4gLQkJCQkgICBjLT5tb2Rlc1swXS52ZGlzcGxheSA+IDc2OCk7 Cj4gPiAtCQkJbW9kZSA9ICZzdGRfMTAyNF9tb2RlOwo+ID4gLQkJCWJyZWFrOwo+ID4gLQkJfQo+ ID4gLQl9Cj4gPiAtCWlndF9yZXF1aXJlKGNvbm5lY3Rvcik7Cj4gPiAtCj4gPiAtCWNydGNfaWQg PSBrbXN0ZXN0X2ZpbmRfY3J0Y19mb3JfY29ubmVjdG9yKGRybV9mZCwgZHJtX3JlcywgY29ubmVj dG9yLAo+ID4gLQkJCQkJCSAgMCk7Cj4gPiAtCWJ1ZmZlcl9pZCA9IGNyZWF0ZV9mYihkcm1fZmQs IG1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSk7Cj4gPiAtCj4gPiAtCWlndF9hc3NlcnQo YnVmZmVyX2lkKTsKPiA+IC0JaWd0X2Fzc2VydChjb25uZWN0b3IpOwo+ID4gLQlpZ3RfYXNzZXJ0 KG1vZGUpOwo+ID4gLQo+ID4gLQlyYyA9IGRybU1vZGVTZXRDcnRjKGRybV9mZCwgY3J0Y19pZCwg YnVmZmVyX2lkLCAwLCAwLAo+ID4gLQkJCSAgICAmY29ubmVjdG9yLT5jb25uZWN0b3JfaWQsIDEs IG1vZGUpOwo+ID4gLQlpZ3RfYXNzZXJ0X2VxKHJjLCAwKTsKPiA+IC0KPiA+IC0JaWYgKHVzZV9w YW5lbF9maXR0ZXIpIHsKPiA+IC0JCWlmIChJU19IQVNXRUxMKGRldmlkKSkKPiA+IC0JCQlpZ3Rf YXNzZXJ0KCFscHNwX2lzX2VuYWJsZWQoZHJtX2ZkKSk7Cj4gPiAtCQllbHNlCj4gPiAtCQkJaWd0 X2Fzc2VydChscHNwX2lzX2VuYWJsZWQoZHJtX2ZkKSk7Cj4gPiAtCX0gZWxzZSB7Cj4gPiAtCQlp Z3RfYXNzZXJ0KGxwc3BfaXNfZW5hYmxlZChkcm1fZmQpKTsKPiA+ICsJaWd0X291dHB1dF90ICpv dXRwdXQ7Cj4gPiArCWludCB2YWxpZF9vdXRwdXQgPSAwOwo+ID4gKwllbnVtIHBpcGUgcGlwZTsK PiA+ICsKPiA+ICsJZm9yX2VhY2hfcGlwZV93aXRoX3NpbmdsZV9vdXRwdXQoJmRhdGEtPmRpc3Bs YXksIHBpcGUsIG91dHB1dCkgewo+ID4gKwkJZGF0YS0+b3V0cHV0ID0gb3V0cHV0Owo+ID4gKwkJ aWd0X291dHB1dF9zZXRfcGlwZShkYXRhLT5vdXRwdXQsIFBJUEVfTk9ORSk7Cj4gPiArCQlpZ3Rf ZGlzcGxheV9jb21taXQoJmRhdGEtPmRpc3BsYXkpOwo+ID4gKwkJdmFsaWRfb3V0cHV0Kys7Cj4g PiAgCX0KPiAKPiBUaGlzIGNvZGUgaXMgYWxyZWFkeSBtZXJnZWQsIGJ1dCBub25ldGhlbGVzczoK VGhhbmtzIGZvciByZXBvcnRpbmcgdGhpcywKSSB3aWxsIGZpeCB0aGlzLCBpcyB0aGVyZSBhIHdh eSB0byByZXBsaWNhdGUgd2hhdCBsZWdhY3kga21zdGVzdF91bnNldF9hbGxfY3J0Y3MoKSBkb2Vz LApUaGFua3MsCkFuc2h1bWFuIEd1cHRhLgo+IAo+IFRoaXMgZm9yIGxvb3AgZG9lc24ndCBkbyB3 aGF0IHlvdSBwcm9iYWJseSB0aGluayBpdCBkb2VzLiBUaGlzIGxvb3BzCj4gdGhyb3VnaCBlYWNo IHBpcGUsIHBvc3NpYmx5IGdpdmluZyB5b3UgdGhlIHNhbWUgb3V0cHV0IGZvciBldmVyeSBwaXBl Lgo+IAo+IEFuIGltbWVkaWF0ZSBlZmZlY3QgaXMgdGhhdCB0aGlzIGludHJvZHVjZXMgYSBuZXcg Y29tcGlsZSB3YXJuaW5nOgo+IAo+IC4uL3Rlc3RzL2k5MTUvaTkxNV9wbV9scHNwLmM6IEluIGZ1 bmN0aW9uIOKAmHNjcmVlbnNfZGlzYWJsZWRfc3VidGVzdOKAmToKPiAuLi90ZXN0cy9pOTE1L2k5 MTVfcG1fbHBzcC5jOjg3OjEyOiB3YXJuaW5nOiB2YXJpYWJsZSDigJhwaXBl4oCZIHNldCBidXQg bm90IHVzZWQgWy1XdW51c2VkLWJ1dC1zZXQtdmFyaWFibGVdCj4gICBlbnVtIHBpcGUgcGlwZTsK PiAgICAgICAgICAgICAgIF5+fn4KPiAKPiAKPiAKPiAtLSAKPiBQZXRyaSBMYXR2YWxhCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGlu ZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=