From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id B0EFE89110 for ; Wed, 20 Feb 2019 23:08:16 +0000 (UTC) Message-ID: <57e0c18eb1b258727c649fb4bfee992d89ed0c14.camel@intel.com> From: Dhinakaran Pandiyan Date: Wed, 20 Feb 2019 15:08:01 -0800 In-Reply-To: <1550681520-10018-1-git-send-email-anshuman.gupta@intel.com> References: <1550220366-21575-3-git-send-email-anshuman.gupta@intel.com> <1550681520-10018-1-git-send-email-anshuman.gupta@intel.com> Mime-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t v6 2/5] tests/pm_dc: Added new test to verify Display C States List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: dhinakaran.pandiyan@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: Anshuman Gupta , igt-dev@lists.freedesktop.org Cc: jyoti.r.yadav@intel.com List-ID: T24gV2VkLCAyMDE5LTAyLTIwIGF0IDIyOjIyICswNTMwLCBBbnNodW1hbiBHdXB0YSB3cm90ZToK PiBGcm9tOiBKeW90aSBZYWRhdiA8anlvdGkuci55YWRhdkBpbnRlbC5jb20+Cj4gCj4gQ3VycmVu dGx5IHRoaXMgdGVzdCB2YWxpZGF0ZXMgREM1IHVwb24gUFNSIGVudHJ5IGZvciBzdXBwb3J0ZWQK PiBwbGF0Zm9ybXMuCj4gQWRkZWQgbmV3IGZpbGUgZm9yIGNvbXBpbGF0aW9uIGluc2lkZSBNYWtl ZmlsZSBhbmQgTWVzb24uCj4gCj4gdjI6IFVzZWQgdGhlIGRlYnVnZnMgZW50cnkgZm9yIERDIGNv dW50ZXJzIGluc3RlYWQgb2YgUmVnaXN0ZXJzLgo+ICAgICBVc2VkIHNob3J0ZXIgbmFtZXMgZm9y IHZhcmlhYmxlcy4KPiAgICAgSW50cm9kdWNlZCB0aW1lb3V0IHRvIHJlYWQgREMgY291bnRlcnMu Cj4gdjM6IG9uZSBzZWNvbmQgdGltZW91dCBpcyBpbnRyb2R1Y2VkIHRvIHJlYWQgREMgY291bnRl cnMuCj4gICAgIFNraXAgdGhlIHN1YnRlc3QgaWYgY291bnRlcnMgYXJlIG5vdCBhdmFpbGFibGUg Zm9yIHRoYXQgcGxhdGZvcm0uCj4gdjQ6IFJlYmFzZWQsIHRvIGZpeCBjb21waWxhdGlvbiBlcnJv ciBpbiBwc3JfZW5hYmxlKCksCj4gcHNyX3dhaXRfZW50cnkoKQo+ICAgICBhbmQgcmVwbGFjZWQg aWd0X2Rpc3BsYXlfaW5pdCgpIGJ5IGlndF9kaXNwbGF5X3JlcXVpcmUoKSBpbgo+IHBtX3JwbS5j Lgo+ICAgICBBZGRyZXNzZWQgdGhlIHJldmlldyBjb21tZW50IGJ5IHJlbW92aW5nIHVudXNlZCBm dW5jdGlvbgo+IGRpc3BsYXlfaW5pdCwKPiAgICAgcmVtb3ZpbmcgcmVkdW5kYW50IGlndCBjb21t aXQgc3VnZ2VzdGVkIGJ5IEltcmUuCj4gICAgIEZpeGVkIHR5cG8gaW4gcmVhZF9kY19jb3VudGVy KCkuCj4gdjU6IEFkZHJlc3NlZCB0aGUgcmV2aWV3IGNvbW1lbnQgYnkgcmVtb3ZpbmcgcmVkdW5k YW50Cj4gcmVhZF9kY19jb3VudGVyKCksCj4gICAgIGNsdWJiZWQgY2xlYW51cCgpIGZ1bmN0aW9u IGluIHRlc3RfZGNfc3RhdGVfcHNyKCkgc3VnZ2VzdGVkIGJ5Cj4gSW1yZS4KPiAgICAgUmVhcnJh bmdlZCAgcHJlcHJvY2Vzc29yIGRpcmVjdGl2ZXMgYXQgb25lIHBsYWNlLgo+ICAgICBGaXhlZCBj b21waWxhdGlvbiB3YXJuaW5nIGJ5IGFkZGluZyBmdW5jdGlvbiBwcm90b3R5cGUgZm9yCj4gICAg IGRjX3N0YXRlX3dhaXRfZW50cnkoKSBhbmQgY2hlY2tfZGNfY291bnRlcigpLgo+ICAgICBMaXN0 aW5nIGFjdHVhbCBjaGFuZ2UgaW4gcGF0Y2ggc2V0IGNoYW5nZWxvZyB0byBtYWtlIHJldmlldwo+ IGVhc2llci4KPiB2NjogRml4ZWQgImk5MTVfZWRwX3Bzcl9zdGF0dXMiIHN0cmluZyB0byAiU2lu ayBzdXBwb3J0OiB5ZXMiLgoKQ2MnaW5nIEltcmUgYW5kIEpvc8OpCgoKPiAKPiBTaWduZWQtb2Zm LWJ5OiBKeW90aSBZYWRhdiA8anlvdGkuci55YWRhdkBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1i eTogQW5zaHVtYW4gR3VwdGEgPGFuc2h1bWFuLmd1cHRhQGludGVsLmNvbT4KPiAtLS0KPiAgdGVz dHMvTWFrZWZpbGUuc291cmNlcyB8ICAgMSArCj4gIHRlc3RzL21lc29uLmJ1aWxkICAgICAgfCAg IDEgKwo+ICB0ZXN0cy9wbV9kYy5jICAgICAgICAgIHwgMjA5Cj4gKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICAzIGZpbGVzIGNoYW5nZWQsIDIxMSBp bnNlcnRpb25zKCspCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9wbV9kYy5jCj4gCj4gZGlm ZiAtLWdpdCBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2Vz Cj4gaW5kZXggMzRiN2U0NC4uMDdiOTc4NyAxMDA2NDQKPiAtLS0gYS90ZXN0cy9NYWtlZmlsZS5z b3VyY2VzCj4gKysrIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwo+IEBAIC04MCw2ICs4MCw3IEBA IFRFU1RTX3Byb2dzID0gXAo+ICAJcG1fbHBzcCBcCj4gIAlwbV9yYzZfcmVzaWRlbmN5IFwKPiAg CXBtX3JwbSBcCj4gKwlwbV9kYyBcCj4gIAlwbV9ycHMgXAo+ICAJcG1fc3NldSBcCj4gIAlwcmlt ZV9idXN5IFwKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvbWVzb24uYnVpbGQgYi90ZXN0cy9tZXNvbi5i dWlsZAo+IGluZGV4IDI1YjQ2MTQuLjMwNzBhM2UgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvbWVzb24u YnVpbGQKPiArKysgYi90ZXN0cy9tZXNvbi5idWlsZAo+IEBAIC02Niw2ICs2Niw3IEBAIHRlc3Rf cHJvZ3MgPSBbCj4gIAkncG1fbHBzcCcsCj4gIAkncG1fcmM2X3Jlc2lkZW5jeScsCj4gIAkncG1f cnBtJywKPiArCSdwbV9kYycsCj4gIAkncG1fcnBzJywKPiAgCSdwbV9zc2V1JywKPiAgCSdwcmlt ZV9idXN5JywKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvcG1fZGMuYyBiL3Rlc3RzL3BtX2RjLmMKPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjdlMTY3MjEKPiAtLS0gL2Rldi9u dWxsCj4gKysrIGIvdGVzdHMvcG1fZGMuYwo+IEBAIC0wLDAgKzEsMjA5IEBACj4gKy8qCj4gKyAq IENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCj4gKyAqCj4gKyAqIFBlcm1pc3Np b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uCj4gb2J0 YWluaW5nIGEKPiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3Vt ZW50YXRpb24gZmlsZXMgKHRoZQo+ICJTb2Z0d2FyZSIpLAo+ICsgKiB0byBkZWFsIGluIHRoZSBT b2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dAo+IGxpbWl0YXRp b24KPiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs IGRpc3RyaWJ1dGUsCj4gc3VibGljZW5zZSwKPiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRo ZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20KPiB0aGUKPiArICogU29m dHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcKPiBj b25kaXRpb25zOgo+ICsgKgo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp cyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nCj4gdGhlIG5leHQKPiArICogcGFyYWdyYXBo KSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsCj4gcG9ydGlv bnMgb2YgdGhlCj4gKyAqIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJP VklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKPiBFWFBSRVNTIE9S Cj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJ RVMgT0YKPiBNRVJDSEFOVEFCSUxJVFksCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTwo+IEVWRU5UIFNIQUxMCj4gKyAqIFRI RSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBE QU1BR0VTCj4gT1IgT1RIRVIKPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBP RiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCj4gQVJJU0lORwo+ICsgKiBGUk9NLCBPVVQg T0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCj4gT1RI RVIgREVBTElOR1MKPiArICogSU4gVEhFIFNPRlRXQVJFLgo+ICsgKgo+ICsgKi8KPiArCj4gKyNp bmNsdWRlICJpZ3QuaCIKPiArI2luY2x1ZGUgImlndF9zeXNmcy5oIgo+ICsjaW5jbHVkZSAiaWd0 X3Bzci5oIgo+ICsjaW5jbHVkZSA8ZXJybm8uaD4KPiArI2luY2x1ZGUgPHN0ZGJvb2wuaD4KPiAr I2luY2x1ZGUgPHN0ZGlvLmg+Cj4gKyNpbmNsdWRlIDxzdHJpbmcuaD4KPiArI2luY2x1ZGUgImlu dGVsX2J1Zm1nci5oIgo+ICsjaW5jbHVkZSAiaW50ZWxfaW8uaCIKPiArI2luY2x1ZGUgImxpbWl0 cy5oIgo+ICsKPiArLyogREMgU3RhdGUgRmxhZ3MgKi8KPiArI2RlZmluZSBDSEVDS19EQzUJMQo+ ICsjZGVmaW5lIENIRUNLX0RDNgkyCj4gKwo+ICt0eXBlZGVmIHN0cnVjdCB7Cj4gKwlpbnQgZHJt X2ZkOwo+ICsJaW50IGRlYnVnZnNfZmQ7Cj4gKwl1aW50MzJfdCBkZXZpZDsKPiArCWlndF9kaXNw bGF5X3QgZGlzcGxheTsKPiArCXN0cnVjdCBpZ3RfZmIgZmJfd2hpdGU7Cj4gKwllbnVtIHBzcl9t b2RlIG9wX3Bzcl9tb2RlOwo+ICsJZHJtTW9kZU1vZGVJbmZvICptb2RlOwo+ICsJaWd0X291dHB1 dF90ICpvdXRwdXQ7Cj4gK30gZGF0YV90Owo+ICsKPiArYm9vbCBkY19zdGF0ZV93YWl0X2VudHJ5 KGludCwgaW50LCBpbnQpOwo+ICt2b2lkIGNoZWNrX2RjX2NvdW50ZXIoaW50LCBpbnQsIHVpbnQz Ml90KTsKPiArCj4gK3N0YXRpYyB2b2lkIHNldHVwX291dHB1dChkYXRhX3QgKmRhdGEpCj4gK3sK PiArCWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsKPiArCWlndF9vdXRw dXRfdCAqb3V0cHV0Owo+ICsJZW51bSBwaXBlIHBpcGU7Cj4gKwo+ICsJZm9yX2VhY2hfcGlwZV93 aXRoX3ZhbGlkX291dHB1dChkaXNwbGF5LCBwaXBlLCBvdXRwdXQpIHsKPiArCQlkcm1Nb2RlQ29u bmVjdG9yUHRyIGMgPSBvdXRwdXQtPmNvbmZpZy5jb25uZWN0b3I7Cj4gKwo+ICsJCWlmIChjLT5j b25uZWN0b3JfdHlwZSAhPSBEUk1fTU9ERV9DT05ORUNUT1JfZURQKQo+ICsJCQljb250aW51ZTsK PiArCj4gKwkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBpcGUpOwo+ICsJCWRhdGEtPm91 dHB1dCA9IG91dHB1dDsKPiArCQlkYXRhLT5tb2RlID0gaWd0X291dHB1dF9nZXRfbW9kZShvdXRw dXQpOwo+ICsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGRpc3Bs YXlfZmluaShkYXRhX3QgKmRhdGEpCj4gK3sKPiArCWlndF9kaXNwbGF5X2ZpbmkoJmRhdGEtPmRp c3BsYXkpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbCBlZHBfcHNyX3Npbmtfc3VwcG9ydChkYXRh X3QgKmRhdGEpCgpsaWIvcHNyLmMgYWxyZWFkeSBoYXMgYSBmdW5jdGlvbiB0byBkbyB0aGlzLCBw bGVhc2UgdXNlIHRoYXQuIE5vdCB1c2luZwp0aGUgbGlicmFyeSBmdW5jdGlvbiByZXN1bHRzIGlu IHJlYmFzZSBjaGFuZ2VzIGxpa2UgdGhlIG9uZSBkb25lIGluCnRoaXMgdmVyc2lvbi4KCj4gK3sK PiArCWNoYXIgYnVmWzUxMl07Cj4gKwo+ICsJaWd0X2RlYnVnZnNfc2ltcGxlX3JlYWQoZGF0YS0+ ZGVidWdmc19mZCwKPiAiaTkxNV9lZHBfcHNyX3N0YXR1cyIsCj4gKwkJCSBidWYsIHNpemVvZihi dWYpKTsKPiArCj4gKwlyZXR1cm4gc3Ryc3RyKGJ1ZiwgIlNpbmsgc3VwcG9ydDogeWVzIik7Cj4g K30KPiArCj4gK3N0YXRpYyB2b2lkIGNsZWFudXAoZGF0YV90ICpkYXRhKQo+ICt7Cj4gKwlpZ3Rf cGxhbmVfdCAqcHJpbWFyeTsKPiArCj4gKwlwcmltYXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmVf dHlwZShkYXRhLT5vdXRwdXQsCj4gKwkJCQkJICAgIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwo+ ICsJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCBOVUxMKTsKPiArCWlndF9kaXNwbGF5X2NvbW1p dCgmZGF0YS0+ZGlzcGxheSk7Cj4gKwlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgJmRhdGEt PmZiX3doaXRlKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgc2V0dXBfcHJpbWFyeShkYXRhX3Qg KmRhdGEpCj4gK3sKPiArCWlndF9wbGFuZV90ICpwcmltYXJ5Owo+ICsKPiArCXByaW1hcnkgPSBp Z3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKGRhdGEtPm91dHB1dCwKPiArCQkJCQkgICAgRFJNX1BM QU5FX1RZUEVfUFJJTUFSWSk7Cj4gKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksIE5VTEwpOwo+ ICsJaWd0X2NyZWF0ZV9jb2xvcl9mYihkYXRhLT5kcm1fZmQsCj4gKwkJCSAgICBkYXRhLT5tb2Rl LT5oZGlzcGxheSwgZGF0YS0+bW9kZS0+dmRpc3BsYXksCj4gKwkJCSAgICBEUk1fRk9STUFUX1hS R0I4ODg4LAo+ICsJCQkgICAgTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQsCj4gKwkJCSAg ICAxLjAsIDEuMCwgMS4wLAo+ICsJCQkgICAgJmRhdGEtPmZiX3doaXRlKTsKPiArCWlndF9wbGFu ZV9zZXRfZmIocHJpbWFyeSwgJmRhdGEtPmZiX3doaXRlKTsKPiArCWlndF9kaXNwbGF5X2NvbW1p dCgmZGF0YS0+ZGlzcGxheSk7Cj4gK30KPiArCj4gK3N0YXRpYyB1aW50MzJfdCBnZXRfZGNfY291 bnRlcihjaGFyICpkY19kYXRhKQo+ICt7Cj4gKwljaGFyICplOwo+ICsJbG9uZyByZXQ7Cj4gKwlj aGFyICpzID0gc3RyY2hyKGRjX2RhdGEsICc6Jyk7Cj4gKwo+ICsJYXNzZXJ0KHMpOwo+ICsJcysr Owo+ICsJcmV0ID0gc3RydG9sKHMsICZlLCAxMCk7Cj4gKwlhc3NlcnQoKChyZXQgIT0gTE9OR19N SU4gJiYgcmV0ICE9IExPTkdfTUFYKSB8fCBlcnJubyAhPQo+IEVSQU5HRSkgJiYKPiArCSAgICAg ICBlID4gcyAmJiAqZSA9PSAnXG4nICYmIHJldCA+PSAwKTsKPiArCXJldHVybiByZXQ7Cj4gK30K PiArCj4gK3N0YXRpYyB1aW50MzJfdCByZWFkX2RjX2NvdW50ZXIodWludDMyX3QgZHJtX2ZkLCBp bnQgZGNfZmxhZykKPiArewo+ICsJY2hhciBidWZbNDA5Nl07Cj4gKwljaGFyICpzdHI7Cj4gKwo+ ICsJaWd0X2RlYnVnZnNfcmVhZChkcm1fZmQsICJpOTE1X2RtY19pbmZvIiwgYnVmKTsKPiArCj4g KwlpZiAoZGNfZmxhZyAmIENIRUNLX0RDNSkKPiArCQlzdHIgPSBzdHJzdHIoYnVmLCAiREMzIC0+ IERDNSBjb3VudCIpOwo+ICsKPiArCWVsc2UgaWYgKGRjX2ZsYWcgJiBDSEVDS19EQzYpCj4gKwkJ c3RyID0gc3Ryc3RyKGJ1ZiwgIkRDNSAtPiBEQzYgY291bnQiKTsKPiArCj4gKwkvKiBDaGVjayBE QzUvREM2IGNvdW50ZXIgaXMgYXZhaWxhYmxlIGZvciB0aGUgcGxhdGZvcm0uCj4gKwkgKiBTa2lw IHRoZSB0ZXN0IGlmIGNvdW50ZXIgaXMgbm90IGF2YWlsYWJsZS4KPiArCSAqLwo+ICsJaWd0X3Nr aXBfb25fZihzdHIgPT0gTlVMTCwgIkRDJWQgY291bnRlciBpcyBub3QgYXZhaWxhYmxlXG4iLAo+ ICsJCSAgICAgIGRjX2ZsYWcgJiBDSEVDS19EQzUgPyA1IDogNik7CgpTaG91bGRuJ3QgdGhpcyBi ZSBhIGZhaWx1cmUgc2luY2UgeW91IGFscmVhZHkgdmVyaWZpZWQgRE1DIGlzIGxvYWRlZD8KSU9X LCB3aGF0IGFyZSB0aGUgY29uZGl0aW9ucyB3aGVyZSBETUMgaXMgbG9hZGVkIGJ1dCBkZWJ1Z2Zz IGRvZXMgbm90CmNvbnRhaW4gREM1IGFuZCBEQzYgc3RyaW5ncz8KCj4gKwlyZXR1cm4gZ2V0X2Rj X2NvdW50ZXIoc3RyKTsKPiArfQo+ICsKPiArYm9vbCBkY19zdGF0ZV93YWl0X2VudHJ5KGludCBk cm1fZmQsIGludCBkY19mbGFnLCBpbnQgcHJldl9kY19jb3VudCkKPiArewo+ICsJcmV0dXJuIGln dF93YWl0KHJlYWRfZGNfY291bnRlcihkcm1fZmQsIGRjX2ZsYWcpID4KPiBwcmV2X2RjX2NvdW50 LCAxMDAwLCAxMDApOwo+ICt9Cj4gKwo+ICt2b2lkIGNoZWNrX2RjX2NvdW50ZXIoaW50IGRybV9m ZCwgaW50IGRjX2ZsYWcsIHVpbnQzMl90Cj4gcHJldl9kY19jb3VudCkKPiArewo+ICsJaWd0X2Fz c2VydF9mKGRjX3N0YXRlX3dhaXRfZW50cnkoZHJtX2ZkLCBkY19mbGFnLAo+IHByZXZfZGNfY291 bnQpLAo+ICsJCSAgICAgIkRDJWQgc3RhdGUgaXMgbm90IGFjaGlldmVkXG4iLAo+ICsJCSAgICAg ZGNfZmxhZyAmIENIRUNLX0RDNSA/IDUgOiA2KTsKUGxlYXNlIGNvbnNpZGVyIGRlYnVnIGxvZ2dp bmcgdGhlIHByZXZpb3VzIGFuZCBjdXJyZW50IHZhbHVlcyByZWFkLiAKPiArfQo+ICsKPiArc3Rh dGljIHZvaWQgdGVzdF9kY19zdGF0ZV9wc3IoZGF0YV90ICpkYXRhLCBpbnQgZGNfZmxhZykKPiAr ewo+ICsJdWludDMyX3QgZGNfY291bnRlcl9iZWZvcmVfcHNyOwo+ICsKPiArCWRjX2NvdW50ZXJf YmVmb3JlX3BzciA9IHJlYWRfZGNfY291bnRlcihkYXRhLT5kcm1fZmQsIGRjX2ZsYWcpOwo+ICsJ c2V0dXBfb3V0cHV0KGRhdGEpOwo+ICsJc2V0dXBfcHJpbWFyeShkYXRhKTsKPiArCWlndF9hc3Nl cnQocHNyX3dhaXRfZW50cnkoZGF0YS0+ZGVidWdmc19mZCwgZGF0YS0KPiA+b3BfcHNyX21vZGUp KTsKPiArCWNoZWNrX2RjX2NvdW50ZXIoZGF0YS0+ZHJtX2ZkLCBkY19mbGFnLCBkY19jb3VudGVy X2JlZm9yZV9wc3IpOwo+ICsJY2xlYW51cChkYXRhKTsKPiArfQo+ICsKPiAraW50IG1haW4oaW50 IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKPiArewo+ICsJYm9vbCBoYXNfcnVudGltZV9wbTsKPiArCWRh dGFfdCBkYXRhID0ge307Cj4gKwo+ICsJaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwo+ICsJaWd0 X3N1YnRlc3RfaW5pdChhcmdjLCBhcmd2KTsKPiArCWlndF9maXh0dXJlIHsKPiArCQlkYXRhLmRy bV9mZCA9IGRybV9vcGVuX2RyaXZlcl9tYXN0ZXIoRFJJVkVSX0lOVEVMKTsKPiArCQlkYXRhLmRl YnVnZnNfZmQgPSBpZ3RfZGVidWdmc19kaXIoZGF0YS5kcm1fZmQpOwo+ICsJCWlndF9yZXF1aXJl KGRhdGEuZGVidWdmc19mZCAhPSAtMSk7Cj4gKwkJa21zdGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9k ZSgpOwo+ICsJCWRhdGEuZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGRhdGEuZHJtX2ZkKTsK PiArCQloYXNfcnVudGltZV9wbSA9IGlndF9zZXR1cF9ydW50aW1lX3BtKCk7Cj4gKwkJaWd0X2lu Zm8oIlJ1bnRpbWUgUE0gc3VwcG9ydDogJWRcbiIsIGhhc19ydW50aW1lX3BtKTsKPiArCQlpZ3Rf cmVxdWlyZShoYXNfcnVudGltZV9wbSk7Cj4gKwkJaWd0X3JlcXVpcmUoaWd0X3BtX2RtY19sb2Fk ZWQoZGF0YS5kZWJ1Z2ZzX2ZkKSk7Cj4gKwkJaWd0X2Rpc3BsYXlfcmVxdWlyZSgmZGF0YS5kaXNw bGF5LCBkYXRhLmRybV9mZCk7Cj4gKwl9Cj4gKwo+ICsJaWd0X3N1YnRlc3QoImRjNS1wc3IiKSB7 Cj4gKwkJZGF0YS5vcF9wc3JfbW9kZSA9IFBTUl9NT0RFXzE7Cj4gKwkJcHNyX2VuYWJsZShkYXRh LmRlYnVnZnNfZmQsIGRhdGEub3BfcHNyX21vZGUpOwo+ICsJCWlndF9yZXF1aXJlX2YoZWRwX3Bz cl9zaW5rX3N1cHBvcnQoJmRhdGEpLAo+ICsJCQkgICAgICAiU2luayBkb2VzIG5vdCBzdXBwb3J0 IFBTUlxuIik7CgpDaGVjayBmb3IgZmVhdHVyZSBzdXBwb3J0IGJlZm9yZSBlbmFibGluZyBQU1Iu Cgo+ICsJCXRlc3RfZGNfc3RhdGVfcHNyKCZkYXRhLCBDSEVDS19EQzUpOwo+ICsJfQo+ICsJaWd0 X2ZpeHR1cmUgewo+ICsJCWNsb3NlKGRhdGEuZGVidWdmc19mZCk7Cj4gKwkJZGlzcGxheV9maW5p KCZkYXRhKTsKPiArCX0KPiArCj4gKwlpZ3RfZXhpdCgpOwo+ICt9CgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3Qt ZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=