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 62B6489598 for ; Mon, 15 Oct 2018 15:19:39 +0000 (UTC) Date: Mon, 15 Oct 2018 18:18:15 +0300 From: Imre Deak Message-ID: <20181015151815.GD11298@ideak-desk.fi.intel.com> References: <1539172908-20679-1-git-send-email-jyoti.r.yadav@intel.com> <1539172908-20679-3-git-send-email-jyoti.r.yadav@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1539172908-20679-3-git-send-email-jyoti.r.yadav@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t v2 2/5] [intel-gfx] tests/pm_dc : Added new test to verify Display C States. List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: imre.deak@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Jyoti Yadav Cc: igt-dev@lists.freedesktop.org, anusha.srivatsa@intel.com, rodrigo.vivi@intel.com List-ID: RXh0cmEgc3BhY2UgYWZ0ZXIgJzonIGluIHRoZSBzdWJqZWN0IGxpbmUuCgpPbiBXZWQsIE9jdCAx MCwgMjAxOCBhdCAwODowMTo0NUFNIC0wNDAwLCBKeW90aSBZYWRhdiB3cm90ZToKPiBDdXJyZW50 bHkgdGhpcyB0ZXN0IHZhbGlkYXRlIERDNSB1cG9uIFBTUiBlbnRyeSBmb3Igc3VwcG9ydGVkIHBs YXRmb3Jtcy4KPiBBZGRlZCBuZXcgZmlsZSBmb3IgY29tcGlsYXRpb24gaW5zaWRlIE1ha2VmaWxl IGFuZCBNZXNvbi4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBKeW90aSBZYWRhdiA8anlvdGkuci55YWRh dkBpbnRlbC5jb20+Cj4gLS0tCj4gIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgfCAgIDEgKwo+ICB0 ZXN0cy9tZXNvbi5idWlsZCAgICAgIHwgICAxICsKPiAgdGVzdHMvcG1fZGMuYyAgICAgICAgICB8 IDIxNyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4g IDMgZmlsZXMgY2hhbmdlZCwgMjE5IGluc2VydGlvbnMoKykKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0 IHRlc3RzL3BtX2RjLmMKPiAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcyBi L3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKPiBpbmRleCBjODQ5MzNmLi5kNDkxNDIwIDEwMDY0NAo+ IC0tLSBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKPiArKysgYi90ZXN0cy9NYWtlZmlsZS5zb3Vy Y2VzCj4gQEAgLTIxNCw2ICsyMTQsNyBAQCBURVNUU19wcm9ncyA9IFwKPiAgCXBtX2xwc3AgXAo+ ICAJcG1fcmM2X3Jlc2lkZW5jeSBcCj4gIAlwbV9ycG0gXAo+ICsJcG1fZGMgXAo+ICAJcG1fcnBz IFwKPiAgCXBtX3NzZXUgXAo+ICAJcHJpbWVfYnVzeSBcCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL21l c29uLmJ1aWxkIGIvdGVzdHMvbWVzb24uYnVpbGQKPiBpbmRleCAxN2RlYjk0Li41MGIwNjg3IDEw MDY0NAo+IC0tLSBhL3Rlc3RzL21lc29uLmJ1aWxkCj4gKysrIGIvdGVzdHMvbWVzb24uYnVpbGQK PiBAQCAtMTg4LDYgKzE4OCw3IEBAIHRlc3RfcHJvZ3MgPSBbCj4gIAkncG1fbHBzcCcsCj4gIAkn cG1fcmM2X3Jlc2lkZW5jeScsCj4gIAkncG1fcnBtJywKPiArCSdwbV9kYycsCj4gIAkncG1fcnBz JywKPiAgCSdwbV9zc2V1JywKPiAgCSdwcmltZV9idXN5JywKPiBkaWZmIC0tZ2l0IGEvdGVzdHMv cG1fZGMuYyBiL3Rlc3RzL3BtX2RjLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAw MDAwMDAuLjQxMjVkODMKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvdGVzdHMvcG1fZGMuYwo+IEBA IC0wLDAgKzEsMjE3IEBACj4gKy8qCj4gKyAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBv cmF0aW9uCj4gKyAqCj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0 d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiks Cj4gKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1 ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KPiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1v ZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4gKyAqIGFuZC9v ciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3 aG9tIHRoZQo+ICsgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8g dGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+ICsgKgo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0 IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Cj4g KyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFu dGlhbCBwb3J0aW9ucyBvZiB0aGUKPiArICogU29mdHdhcmUuCj4gKyAqCj4gKyAqIFRIRSBTT0ZU V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBF WFBSRVNTIE9SCj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKPiAr ICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xB SU0sIERBTUFHRVMgT1IgT1RIRVIKPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP TiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiArICogRlJPTSwgT1VU IE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhF UiBERUFMSU5HUwo+ICsgKiBJTiBUSEUgU09GVFdBUkUuCj4gKyAqCj4gKyAqLwo+ICsKPiArI2lu Y2x1ZGUgImlndC5oIgo+ICsjaW5jbHVkZSAiaWd0X3N5c2ZzLmgiCj4gKyNpbmNsdWRlICJpZ3Rf cHNyLmgiCj4gKyNpbmNsdWRlIDxlcnJuby5oPgo+ICsjaW5jbHVkZSA8c3RkYm9vbC5oPgo+ICsj aW5jbHVkZSA8c3RkaW8uaD4KPiArI2luY2x1ZGUgPHN0cmluZy5oPgo+ICsjaW5jbHVkZSAiaW50 ZWxfYnVmbWdyLmgiCj4gKyNpbmNsdWRlICJpbnRlbF9pby5oIgo+ICsKPiArCj4gK3R5cGVkZWYg c3RydWN0IHsKPiArCWludCBkcm1fZmQ7Cj4gKwlpbnQgZGVidWdmc19mZDsKPiArCXVpbnQzMl90 IGRldmlkOwo+ICsJaWd0X2Rpc3BsYXlfdCBkaXNwbGF5Owo+ICsJc3RydWN0IGlndF9mYiBmYl93 aGl0ZTsKPiArCWRybU1vZGVNb2RlSW5mbyAqbW9kZTsKPiArCWlndF9vdXRwdXRfdCAqb3V0cHV0 Owo+ICsJaW50IGRjX2ZsYWdzOwo+ICt9IGRhdGFfdDsKPiArCj4gK2Jvb2wgaGFzX3J1bnRpbWVf cG07CgpDYW4ndCBzZWUgdGhlIGFib3ZlIHVzZWQgb3V0c2lkZSBvZiBtYWluKCkuCgo+ICsvKiBE QyBTdGF0ZSBGbGFncyAqLwo+ICsjZGVmaW5lIENIRUNLX0RDNQkxCj4gKyNkZWZpbmUgQ0hFQ0tf REM2CTIKPiArCj4gK3N0YXRpYyB2b2lkIHNldHVwX291dHB1dChkYXRhX3QgKmRhdGEpCj4gK3sK PiArCWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsKPiArCWlndF9vdXRw dXRfdCAqb3V0cHV0Owo+ICsJZW51bSBwaXBlIHBpcGU7Cj4gKwo+ICsJZm9yX2VhY2hfcGlwZV93 aXRoX3ZhbGlkX291dHB1dChkaXNwbGF5LCBwaXBlLCBvdXRwdXQpIHsKPiArCQlkcm1Nb2RlQ29u bmVjdG9yUHRyIGMgPSBvdXRwdXQtPmNvbmZpZy5jb25uZWN0b3I7Cj4gKwo+ICsJCWlmIChjLT5j b25uZWN0b3JfdHlwZSAhPSBEUk1fTU9ERV9DT05ORUNUT1JfZURQKQo+ICsJCQljb250aW51ZTsK PiArCj4gKwkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBpcGUpOwo+ICsJCWRhdGEtPm91 dHB1dCA9IG91dHB1dDsKPiArCQlkYXRhLT5tb2RlID0gaWd0X291dHB1dF9nZXRfbW9kZShvdXRw dXQpOwo+ICsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGRpc3Bs YXlfaW5pdChkYXRhX3QgKmRhdGEpCj4gK3sKPiArCWlndF9kaXNwbGF5X2luaXQoJmRhdGEtPmRp c3BsYXksIGRhdGEtPmRybV9mZCk7Cj4gKwlzZXR1cF9vdXRwdXQoZGF0YSk7Cj4gK30KPiArCj4g K3N0YXRpYyB2b2lkIGRpc3BsYXlfZmluaShkYXRhX3QgKmRhdGEpCj4gK3sKPiArCWlndF9kaXNw bGF5X2ZpbmkoJmRhdGEtPmRpc3BsYXkpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbCBzaW5rX3N1 cHBvcnQoZGF0YV90ICpkYXRhKQoKVGhlIGZ1bmN0aW9uIG5hbWUgc2hvdWxkIHJlZmxlY3Qgd2hh dCBpdCByZWFsbHkgY2hlY2tzLgoKPiArewo+ICsJY2hhciBidWZbNTEyXTsKPiArCj4gKwlpZ3Rf ZGVidWdmc19zaW1wbGVfcmVhZChkYXRhLT5kZWJ1Z2ZzX2ZkLCAiaTkxNV9lZHBfcHNyX3N0YXR1 cyIsCj4gKwkJCSBidWYsIHNpemVvZihidWYpKTsKPiArCj4gKwlyZXR1cm4gc3Ryc3RyKGJ1Ziwg IlNpbmtfU3VwcG9ydDogeWVzXG4iKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgY2xlYW51cChk YXRhX3QgKmRhdGEpCj4gK3sKPiArCWlndF9wbGFuZV90ICpwcmltYXJ5Owo+ICsKPiArCXByaW1h cnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKGRhdGEtPm91dHB1dCwKPiArCQkJCQkgICAg RFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7Cj4gKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksIE5V TEwpOwo+ICsJaWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKPiArCWlndF9yZW1v dmVfZmIoZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+ZmJfd2hpdGUpOwo+ICt9Cj4gKwo+ICtzdGF0aWMg dm9pZCBzZXR1cF9wcmltYXJ5KGRhdGFfdCAqZGF0YSkKPiArewo+ICsJaWd0X3BsYW5lX3QgKnBy aW1hcnk7Cj4gKwo+ICsJcHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUoZGF0YS0+ b3V0cHV0LAo+ICsJCQkJCSAgICBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKPiArCWlndF9wbGFu ZV9zZXRfZmIocHJpbWFyeSwgTlVMTCk7Cj4gKwlpZ3RfY3JlYXRlX2NvbG9yX2ZiKGRhdGEtPmRy bV9mZCwKPiArCQkJICAgIGRhdGEtPm1vZGUtPmhkaXNwbGF5LCBkYXRhLT5tb2RlLT52ZGlzcGxh eSwKPiArCQkJICAgIERSTV9GT1JNQVRfWFJHQjg4ODgsCj4gKwkJCSAgICBMT0NBTF9JOTE1X0ZP Uk1BVF9NT0RfWF9USUxFRCwKPiArCQkJICAgIDEuMCwgMS4wLCAxLjAsCj4gKwkJCSAgICAmZGF0 YS0+ZmJfd2hpdGUpOwo+ICsJaWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKPiAr Cj4gKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksICZkYXRhLT5mYl93aGl0ZSk7Cj4gKwlpZ3Rf ZGlzcGxheV9jb21taXQoJmRhdGEtPmRpc3BsYXkpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdWludDMy X3QgZ2V0X2RjX2NvdW50ZXIoY2hhciAqZGNfZGF0YSkKPiArewo+ICsJLyogc3RvcmUgdGhlIERD IHN0cmluZyB0aWxsIG5ldyBsaW5lIGluc2lkZSBhcnJheSAqLwo+ICsJY2hhciBidWZbMjBdOwo+ ICsJaW50IGkgPSAwOwo+ICsJY2hhciAqdG9rZW47Cj4gKwl1bnNpZ25lZCBpbnQgY291bnRlcjsK PiArCj4gKwl3aGlsZSAoZGNfZGF0YVtpXSAhPSAnXG4nKSB7Cj4gKwkJYnVmW2ldID0gZGNfZGF0 YVtpXTsKPiArCQlpKys7Cj4gKwl9Cj4gKwlidWZbaV0gPSAnXDAnOwo+ICsJdG9rZW4gPSBzdHJ0 b2soYnVmLCAiOiIpOwo+ICsJdG9rZW4gPSBzdHJ0b2soTlVMTCwgIjoiKTsKPiArCWNvdW50ZXIg PSBzdHJ0b3VsKHRva2VuLCBOVUxMLCAxMCk7Cj4gKwlyZXR1cm4gY291bnRlcjsKPiArfQoKVGhl IGZvbGxvd2luZyB3b3VsZCBiZSBzYWZlcjoKCgljaGFyICpzID0gc3RyY2hyKGRjX2RhdGEsICc6 Jyk7CgljaGFyICplOwoJbG9uZyByZXQ7CgoJYXNzZXJ0KHMpOwoJcysrOwoJcmV0ID0gc3RydG9s KHMsICZlLCAxMCk7Cglhc3NlcnQoKChyZXQgIT0gTE9OR19NSU4gJiYgcmV0ICE9IExPTkdfTUFY KSB8fCBlcnJubyAhPSBFUkFOR0UpICYmCgkgICAgICAgKHJldCAhPSAwIHx8IGVycm5vID0pICYm CgkgICAgICAgZSA+IHMgJiYgKmUgPT0gJ1xuJyAmJgoJICAgICAgIHJldCA+PSAwKTsKCglyZXR1 cm4gcmV0OwoKCj4gKwo+ICtzdGF0aWMgdWludDMyX3QgcmVhZF9kY19jb3VudGVyKHVpbnQzMl90 IGRybV9mZCwgaW50IGRjX2ZsYWdzKQo+ICt7Cj4gKwljaGFyIGJ1Zls0MDk2XTsKPiArCWNoYXIg KnN0cjsKPiArCj4gKwlpZ3RfZGVidWdmc19yZWFkKGRybV9mZCwgImk5MTVfZG1jX2luZm8iLCBi dWYpOwo+ICsJaWd0X3NraXBfb24oYnVmWzBdID09ICdcMCcpOwoKVGhpcyBjYW4ndCBoYXBwZW4g c2luY2Ugd2Ugc2tpcCB0aGUgdGVzdCBpZiBkbWNfbG9hZGVkKCkgcmV0dXJucyBmYWxzZS4KCj4g KwlpZiAoZGNfZmxhZ3MgJiBDSEVDS19EQzUpCj4gKwkJc3RyID0gc3Ryc3RyKGJ1ZiwgIkRDMyAt PiBEQzUgY291bnQiKTsKPiArCWVsc2UgaWYgKGRjX2ZsYWdzICYgQ0hFQ0tfREM2KQo+ICsJCXN0 ciA9IHN0cnN0cihidWYsICJEQzUgLT4gREM2IGNvdW50Iik7Cj4gKwlpZ3RfYXNzZXJ0KHN0cik7 Cj4gKwlyZXR1cm4gZ2V0X2RjX2NvdW50ZXIoc3RyKTsKPiArfQo+ICsKPiArYm9vbCBkY19zdGF0 ZV93YWl0X2VudHJ5KGRhdGFfdCAqZGF0YSwgaW50IHByZXZfZGNfY291bnQpCj4gK3sKPiArCXJl dHVybiBpZ3Rfd2FpdChyZWFkX2RjX2NvdW50ZXIoZGF0YS0+ZHJtX2ZkLCBkYXRhLT5kY19mbGFn cykgPiBwcmV2X2RjX2NvdW50LCA1MDAwLCAxMDApOwoKSSB0aGluayA1IHNlY29uZCB3b3VsZCBh bHJlYWR5IHBvaW50IHRvIHNvbWUgcHJvYmxlbSwgdGhlIDEgc2Vjb25kCnN1Z2dlc3RlZCBieSBE SyBzZWVtcyBvayB0byBtZS4KCj4gK30KPiArCj4gK3ZvaWQgY2hlY2tfZGNfY291bnRlcihkYXRh X3QgKmRhdGEsIHVpbnQzMl90IHByZXZfZGNfY291bnQpCj4gK3sKPiArCWlmIChkYXRhLT5kY19m bGFncyAmIENIRUNLX0RDNSkgewo+ICsJCWlndF9hc3NlcnRfZihkY19zdGF0ZV93YWl0X2VudHJ5 KGRhdGEsIHByZXZfZGNfY291bnQpLAo+ICsJCQkJIkRDNSBzdGF0ZSBpcyBub3QgYWNoaWV2ZWRc biIpOwo+ICsJfSBlbHNlIGlmIChkYXRhLT5kY19mbGFncyAmIENIRUNLX0RDNikgewo+ICsJCWln dF9hc3NlcnRfZihkY19zdGF0ZV93YWl0X2VudHJ5KGRhdGEsIHByZXZfZGNfY291bnQpLAo+ICsJ CQkJIkRDNiBzdGF0ZSBpcyBub3QgYWNoaWV2ZWRcbiIpOwo+ICsJfQoKCWlndF9hc3NlcnRfZihk Y19zdGF0ZV93YWl0X2VudHJ5KGRhdGEsIHByZXZfZGNfY291bnQpLAoJCSAgICAgIkRDJWQgc3Rh dGUgaXMgbm90IGFjaGlldmVkXG4iLAoJCSAgICAgZGF0YS0+ZGNfZmxhZ3MgJiBDSEVDS19EQzUg PyA1IDogNik7Cgp3b3VsZCBiZSBzaW1wbGVyIHRvIHJlYWQuCgo+ICt9Cj4gKwo+ICtzdGF0aWMg dm9pZCB0ZXN0X2RjX3N0YXRlX3BzcihkYXRhX3QgKmRhdGEpCj4gK3sKPiArCXVpbnQzMl90IGRj X2NvdW50ZXJfYmVmb3JlX3BzcjsKPiArCj4gKwlkY19jb3VudGVyX2JlZm9yZV9wc3IgPSByZWFk X2RjX2NvdW50ZXIoZGF0YS0+ZHJtX2ZkLCBkYXRhLT5kY19mbGFncyk7Cj4gKwlzZXR1cF9wcmlt YXJ5KGRhdGEpOwo+ICsJaWd0X2Fzc2VydChwc3Jfd2FpdF9lbnRyeShkYXRhLT5kZWJ1Z2ZzX2Zk KSk7Cj4gKwljaGVja19kY19jb3VudGVyKGRhdGEsIGRjX2NvdW50ZXJfYmVmb3JlX3Bzcik7Cj4g K30KPiArCj4gK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCj4gK3sKPiArCWRhdGFf dCBkYXRhID0ge307Cj4gKwo+ICsJaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwo+ICsJaWd0X3N1 YnRlc3RfaW5pdChhcmdjLCBhcmd2KTsKPiArCWlndF9maXh0dXJlIHsKPiArCQlkYXRhLmRybV9m ZCA9IGRybV9vcGVuX2RyaXZlcl9tYXN0ZXIoRFJJVkVSX0lOVEVMKTsKPiArCQlkYXRhLmRlYnVn ZnNfZmQgPSBpZ3RfZGVidWdmc19kaXIoZGF0YS5kcm1fZmQpOwo+ICsJCWlndF9yZXF1aXJlKGRh dGEuZGVidWdmc19mZCAhPSAtMSk7Cj4gKwkJa21zdGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9kZSgp Owo+ICsJCWRhdGEuZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGRhdGEuZHJtX2ZkKTsKPiAr CQlwc3JfZW5hYmxlKGRhdGEuZGVidWdmc19mZCk7Cj4gKwkJaGFzX3J1bnRpbWVfcG0gPSBpZ3Rf c2V0dXBfcnVudGltZV9wbSgpOwo+ICsJCWlndF9pbmZvKCJSdW50aW1lIFBNIHN1cHBvcnQ6ICVk XG4iLCBoYXNfcnVudGltZV9wbSk7Cj4gKwkJaWd0X3JlcXVpcmUoaGFzX3J1bnRpbWVfcG0pOwo+ ICsJCWlndF9yZXF1aXJlKGlndF9wbV9kbWNfbG9hZGVkKGRhdGEuZGVidWdmc19mZCkpOwo+ICsK PiArCQlpZ3RfcmVxdWlyZV9mKHNpbmtfc3VwcG9ydCgmZGF0YSksCj4gKwkJCSAgICAgICJTaW5r IGRvZXMgbm90IHN1cHBvcnQgUFNSXG4iKTsKCldvdWxkIGJlIGNsZWFyZXIgdG8gcHV0IHRoZSBh Ym92ZSBhbmQgcHNyX2VuYWJsZSgpIHRvIHRoZSByZWxldmFudApzdWJ0ZXN0cy4KCj4gKwkJZGlz cGxheV9pbml0KCZkYXRhKTsKPiArCX0KPiArCj4gKwlpZ3Rfc3VidGVzdCgiZGM1LXBzciIpIHsK PiArCQlkYXRhLmRjX2ZsYWdzIHw9IENIRUNLX0RDNTsKCllvdSBjb3VsZCBqdXN0IHBhc3MgdGhl IGZsYWcgZGlyZWN0bHkgdG8gdGhlIHRlc3QgZnVuY3Rpb24uCgo+ICsJCXRlc3RfZGNfc3RhdGVf cHNyKCZkYXRhKTsKPiArCQljbGVhbnVwKCZkYXRhKTsKPiArCX0KPiArCWlndF9maXh0dXJlIHsK PiArCQljbG9zZShkYXRhLmRlYnVnZnNfZmQpOwo+ICsJCWRpc3BsYXlfZmluaSgmZGF0YSk7Cj4g Kwl9Cj4gKwo+ICsJaWd0X2V4aXQoKTsKPiArfQo+IC0tIAo+IDEuOS4xCj4gCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0 CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=