From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 182598922F for ; Tue, 3 Sep 2019 14:35:02 +0000 (UTC) Date: Tue, 3 Sep 2019 17:34:24 +0300 From: Imre Deak Message-ID: <20190903143424.GB4392@ideak-desk.fi.intel.com> References: <20190901142001.11279-1-anshuman.gupta@intel.com> <20190901142001.11279-3-anshuman.gupta@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190901142001.11279-3-anshuman.gupta@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t v13 2/6] tests/i915/i915_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: Anshuman Gupta Cc: igt-dev@lists.freedesktop.org, jyoti.r.yadav@intel.com List-ID: T24gU3VuLCBTZXAgMDEsIDIwMTkgYXQgMDc6NDk6NTdQTSArMDUzMCwgQW5zaHVtYW4gR3VwdGEg d3JvdGU6Cj4gRnJvbTogSnlvdGkgWWFkYXYgPGp5b3RpLnIueWFkYXZAaW50ZWwuY29tPgo+IAo+ IEN1cnJlbnRseSB0aGlzIHRlc3QgdmFsaWRhdGVzIERDNSB1cG9uIFBTUiBlbnRyeSBmb3Igc3Vw cG9ydGVkIHBsYXRmb3Jtcy4KPiBBZGRlZCBuZXcgZmlsZSBmb3IgY29tcGlsYXRpb24gaW5zaWRl IE1ha2VmaWxlIGFuZCBNZXNvbi4KPiAKPiB2MjogVXNlZCB0aGUgZGVidWdmcyBlbnRyeSBmb3Ig REMgY291bnRlcnMgaW5zdGVhZCBvZiBSZWdpc3RlcnMuCj4gICAgIFVzZWQgc2hvcnRlciBuYW1l cyBmb3IgdmFyaWFibGVzLgo+ICAgICBJbnRyb2R1Y2VkIHRpbWVvdXQgdG8gcmVhZCBEQyBjb3Vu dGVycy4KPiB2Mzogb25lIHNlY29uZCB0aW1lb3V0IGlzIGludHJvZHVjZWQgdG8gcmVhZCBEQyBj b3VudGVycy4KPiAgICAgU2tpcCB0aGUgc3VidGVzdCBpZiBjb3VudGVycyBhcmUgbm90IGF2YWls YWJsZSBmb3IgdGhhdCBwbGF0Zm9ybS4KPiB2NDogUmViYXNlZCwgdG8gZml4IGNvbXBpbGF0aW9u IGVycm9yIGluIHBzcl9lbmFibGUoKSwgcHNyX3dhaXRfZW50cnkoKQo+ICAgICBhbmQgcmVwbGFj ZWQgaWd0X2Rpc3BsYXlfaW5pdCgpIGJ5IGlndF9kaXNwbGF5X3JlcXVpcmUoKSBpbiBwbV9ycG0u Yy4KPiAgICAgQWRkcmVzc2VkIHRoZSByZXZpZXcgY29tbWVudCBieSByZW1vdmluZyB1bnVzZWQg ZnVuY3Rpb24gZGlzcGxheV9pbml0LAo+ICAgICByZW1vdmluZyByZWR1bmRhbnQgaWd0IGNvbW1p dCBzdWdnZXN0ZWQgYnkgSW1yZS4KPiAgICAgRml4ZWQgdHlwbyBpbiByZWFkX2RjX2NvdW50ZXIo KS4KPiB2NTogQWRkcmVzc2VkIHRoZSByZXZpZXcgY29tbWVudCBieSByZW1vdmluZyByZWR1bmRh bnQgcmVhZF9kY19jb3VudGVyKCksCj4gICAgIGNsdWJiZWQgY2xlYW51cCgpIGZ1bmN0aW9uIGlu IHRlc3RfZGNfc3RhdGVfcHNyKCkgc3VnZ2VzdGVkIGJ5IEltcmUuCj4gICAgIFJlYXJyYW5nZWQg IHByZXByb2Nlc3NvciBkaXJlY3RpdmVzIGF0IG9uZSBwbGFjZS4KPiAgICAgRml4ZWQgY29tcGls YXRpb24gd2FybmluZyBieSBhZGRpbmcgZnVuY3Rpb24gcHJvdG90eXBlIGZvcgo+ICAgICBkY19z dGF0ZV93YWl0X2VudHJ5KCkgYW5kIGNoZWNrX2RjX2NvdW50ZXIoKS4KPiAgICAgTGlzdGluZyBh Y3R1YWwgY2hhbmdlIGluIHBhdGNoIHNldCBjaGFuZ2Vsb2cgdG8gbWFrZSByZXZpZXcgZWFzaWVy Lgo+IHY2OiBGaXhlZCAiaTkxNV9lZHBfcHNyX3N0YXR1cyIgc3RyaW5nIHRvICJTaW5rIHN1cHBv cnQ6IHllcyIuCj4gdjc6IFJlYmFzZWQgc2luY2UgdGVzdCBuYW1lIGNoYW5nZWQgZnJvbSAicG1f ZGMiIHRvICJpOTE1X3BtX2RjIiwKPiAgICAgdGhpcyB3aWxsIGFsaWduIHdpdGggb3RoZXIgUE0g dGVzdHMuCj4gICAgIGFsc28gY2hhbmdlZCB0aGUgREM1LzYgY291bnRlciBjaGVjayB0aW1lb3V0 IHRvIDMgc2Vjb25kLgo+IHY4OiBPbiBmZXcgcGxhdGZvcm0gU0FUQSBpL3AgaXMgYmxvY2tpbmcg ZGVlcGVyIHBhY2thZ2UgQyBzdGF0ZXMuCj4gICAgIHVzZWQgaWd0X3BtX2VuYWJsZV9zYXRhX2xp bmtfcG93ZXJfbWFuYWdlbWVudCgpIGZ1bmN0aW9uIGluIG9yZGVyCj4gICAgIHRvIHVzZSBtaW5f cG93ZXIgcG9saWN5Lgo+IHY5OiBSZW1vdmVkIHJlZHVuZGFudCBpZ3RfcG1fcmVtb3ZlX3NhdGFf bGlua19wb3dlcl9tYW5hZ2VtZW50KCkKPiAgICAgYXMgc2F0YSBsaW5rIHBvbGljeSB2YWx1ZXMg d2lsbCBiZSByZXN0b3JlZCBieSBleGl0IGhhbmRsZXIuCj4gdjEwOiBjaGFuZ2VkIGNsZWFudXAo KSB0byBjbGVhbnVwX2RjX3BzcigpIHN5bW1ldHJpYyB0byBjbGVhbnVwX2RjX2RwbXMoKS4KPiAK PiBTaWduZWQtb2ZmLWJ5OiBKeW90aSBZYWRhdiA8anlvdGkuci55YWRhdkBpbnRlbC5jb20+Cj4g U2lnbmVkLW9mZi1ieTogQW5zaHVtYW4gR3VwdGEgPGFuc2h1bWFuLmd1cHRhQGludGVsLmNvbT4K PiAtLS0KPiAgdGVzdHMvTWFrZWZpbGUuc291cmNlcyAgfCAgIDMgKwo+ICB0ZXN0cy9pOTE1L2k5 MTVfcG1fZGMuYyB8IDIxMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Cj4gIHRlc3RzL21lc29uLmJ1aWxkICAgICAgIHwgICAxICsKPiAgMyBmaWxlcyBjaGFuZ2VkLCAy MTUgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvaTkxNS9pOTE1X3Bt X2RjLmMKPiAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcyBiL3Rlc3RzL01h a2VmaWxlLnNvdXJjZXMKPiBpbmRleCBjMDJlNGQ5NC4uZWJhZjc1ZjggMTAwNjQ0Cj4gLS0tIGEv dGVzdHMvTWFrZWZpbGUuc291cmNlcwo+ICsrKyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKPiBA QCAtNTA3LDYgKzUwNyw5IEBAIGk5MTVfcG1fcmM2X3Jlc2lkZW5jeV9TT1VSQ0VTID0gaTkxNS9p OTE1X3BtX3JjNl9yZXNpZGVuY3kuYwo+ICBURVNUU19wcm9ncyArPSBpOTE1X3BtX3JwbQo+ICBp OTE1X3BtX3JwbV9TT1VSQ0VTID0gaTkxNS9pOTE1X3BtX3JwbS5jCj4gIAo+ICtURVNUU19wcm9n cyArPSBpOTE1X3BtX2RjCj4gK2k5MTVfcG1fZGNfU09VUkNFUyA9IGk5MTUvaTkxNV9wbV9kYy5j Cj4gKwo+ICBURVNUU19wcm9ncyArPSBpOTE1X3BtX3Jwcwo+ICBpOTE1X3BtX3Jwc19TT1VSQ0VT ID0gaTkxNS9pOTE1X3BtX3Jwcy5jCj4gIAo+IGRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2k5MTVf cG1fZGMuYyBiL3Rlc3RzL2k5MTUvaTkxNV9wbV9kYy5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQK PiBpbmRleCAwMDAwMDAwMC4uMTBlNGVmYmQKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvdGVzdHMv aTkxNS9pOTE1X3BtX2RjLmMKPiBAQCAtMCwwICsxLDIxMSBAQAo+ICsvKgo+ICsgKiBDb3B5cmln aHQgwqkgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsgKgo+ICsgKiBQZXJtaXNzaW9uIGlzIGhl cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm aWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRo b3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCj4gKyAqIHRoZSBy aWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBz dWJsaWNlbnNlLAo+ICsgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQg dG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPiArICogU29mdHdhcmUgaXMgZnVybmlzaGVk IHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiArICoKPiAr ICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug KGluY2x1ZGluZyB0aGUgbmV4dAo+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGlu IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4gKyAqIFNvZnR3YXJl Lgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX QVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcg QlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiAr ICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4g IElOIE5PIEVWRU5UIFNIQUxMCj4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJT IEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4gKyAqIExJQUJJTElU WSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBB UklTSU5HCj4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRX QVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKPiArICogSU4gVEhFIFNPRlRXQVJFLgo+ ICsgKgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlICJpZ3QuaCIKPiArI2luY2x1ZGUgImlndF9zeXNm cy5oIgo+ICsjaW5jbHVkZSAiaWd0X3Bzci5oIgo+ICsjaW5jbHVkZSA8ZXJybm8uaD4KPiArI2lu Y2x1ZGUgPHN0ZGJvb2wuaD4KPiArI2luY2x1ZGUgPHN0ZGlvLmg+Cj4gKyNpbmNsdWRlIDxzdHJp bmcuaD4KPiArI2luY2x1ZGUgImludGVsX2J1Zm1nci5oIgo+ICsjaW5jbHVkZSAiaW50ZWxfaW8u aCIKClRoZSBhYm92ZSAyIGluY2x1ZGVzIHNlZW0gdW5uZWNlc3NhcnkuIFBsZWFzZSBhbHNvIGdy b3VwIGFuZCBzb3J0IHRoZW0KbGlrZToKCiNpbmNsdWRlIDxhLmg+CiNpbmNsdWRlIDxiLmg+Cgoj aW5jbHVkZSAiYS5oIgojaW5jbHVkZSAiYi5oIgoKPiArI2luY2x1ZGUgImxpbWl0cy5oIgo+ICsK PiArLyogREMgU3RhdGUgRmxhZ3MgKi8KPiArI2RlZmluZSBDSEVDS19EQzUJMQo+ICsjZGVmaW5l IENIRUNLX0RDNgkyCj4gKwo+ICt0eXBlZGVmIHN0cnVjdCB7Cj4gKwlpbnQgZHJtX2ZkOwo+ICsJ aW50IGRlYnVnZnNfZmQ7Cj4gKwl1aW50MzJfdCBkZXZpZDsKPiArCWlndF9kaXNwbGF5X3QgZGlz cGxheTsKPiArCXN0cnVjdCBpZ3RfZmIgZmJfd2hpdGU7Cj4gKwllbnVtIHBzcl9tb2RlIG9wX3Bz cl9tb2RlOwo+ICsJZHJtTW9kZU1vZGVJbmZvICptb2RlOwo+ICsJaWd0X291dHB1dF90ICpvdXRw dXQ7Cj4gK30gZGF0YV90Owo+ICsKPiArc3RhdGljIGJvb2wgZGNfc3RhdGVfd2FpdF9lbnRyeShp bnQgZHJtX2ZkLCBpbnQgZGNfZmxhZywgaW50IHByZXZfZGNfY291bnQpOwo+ICtzdGF0aWMgdm9p ZCBjaGVja19kY19jb3VudGVyKGludCBkcm1fZmQsIGludCBkY19mbGFnLCB1aW50MzJfdCBwcmV2 X2RjX2NvdW50KTsKPiArCj4gK3N0YXRpYyB2b2lkIHNldHVwX291dHB1dChkYXRhX3QgKmRhdGEp Cj4gK3sKPiArCWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsKPiArCWln dF9vdXRwdXRfdCAqb3V0cHV0Owo+ICsJZW51bSBwaXBlIHBpcGU7Cj4gKwo+ICsJZm9yX2VhY2hf cGlwZV93aXRoX3ZhbGlkX291dHB1dChkaXNwbGF5LCBwaXBlLCBvdXRwdXQpIHsKPiArCQlkcm1N b2RlQ29ubmVjdG9yUHRyIGMgPSBvdXRwdXQtPmNvbmZpZy5jb25uZWN0b3I7Cj4gKwo+ICsJCWlm IChjLT5jb25uZWN0b3JfdHlwZSAhPSBEUk1fTU9ERV9DT05ORUNUT1JfZURQKQo+ICsJCQljb250 aW51ZTsKPiArCj4gKwkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBpcGUpOwo+ICsJCWRh dGEtPm91dHB1dCA9IG91dHB1dDsKPiArCQlkYXRhLT5tb2RlID0gaWd0X291dHB1dF9nZXRfbW9k ZShvdXRwdXQpOwo+ICsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lk IGRpc3BsYXlfZmluaShkYXRhX3QgKmRhdGEpCj4gK3sKPiArCWlndF9kaXNwbGF5X2ZpbmkoJmRh dGEtPmRpc3BsYXkpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbCBlZHBfcHNyX3Npbmtfc3VwcG9y dChkYXRhX3QgKmRhdGEpCj4gK3sKPiArCWNoYXIgYnVmWzUxMl07Cj4gKwo+ICsJaWd0X2RlYnVn ZnNfc2ltcGxlX3JlYWQoZGF0YS0+ZGVidWdmc19mZCwgImk5MTVfZWRwX3Bzcl9zdGF0dXMiLAo+ ICsJCQkJYnVmLCBzaXplb2YoYnVmKSk7Cj4gKwo+ICsJcmV0dXJuIHN0cnN0cihidWYsICJTaW5r IHN1cHBvcnQ6IHllcyIpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBjbGVhbnVwX2RjX3Bzcihk YXRhX3QgKmRhdGEpCj4gK3sKPiArCWlndF9wbGFuZV90ICpwcmltYXJ5Owo+ICsKPiArCXByaW1h cnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKGRhdGEtPm91dHB1dCwKPiArCQkJCQkgICAg RFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7Cj4gKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksIE5V TEwpOwo+ICsJaWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKPiArCWlndF9yZW1v dmVfZmIoZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+ZmJfd2hpdGUpOwo+ICt9Cj4gKwo+ICtzdGF0aWMg dm9pZCBzZXR1cF9wcmltYXJ5KGRhdGFfdCAqZGF0YSkKPiArewo+ICsJaWd0X3BsYW5lX3QgKnBy aW1hcnk7Cj4gKwo+ICsJcHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUoZGF0YS0+ b3V0cHV0LAo+ICsJCQkJCSAgICBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKPiArCWlndF9wbGFu ZV9zZXRfZmIocHJpbWFyeSwgTlVMTCk7Cj4gKwlpZ3RfY3JlYXRlX2NvbG9yX2ZiKGRhdGEtPmRy bV9mZCwKPiArCQkJICAgIGRhdGEtPm1vZGUtPmhkaXNwbGF5LCBkYXRhLT5tb2RlLT52ZGlzcGxh eSwKPiArCQkJICAgIERSTV9GT1JNQVRfWFJHQjg4ODgsCj4gKwkJCSAgICBMT0NBTF9JOTE1X0ZP Uk1BVF9NT0RfWF9USUxFRCwKPiArCQkJICAgIDEuMCwgMS4wLCAxLjAsCj4gKwkJCSAgICAmZGF0 YS0+ZmJfd2hpdGUpOwo+ICsJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCAmZGF0YS0+ZmJfd2hp dGUpOwo+ICsJaWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKPiArfQo+ICsKPiAr c3RhdGljIHVpbnQzMl90IGdldF9kY19jb3VudGVyKGNoYXIgKmRjX2RhdGEpCj4gK3sKPiArCWNo YXIgKmU7Cj4gKwlsb25nIHJldDsKPiArCWNoYXIgKnMgPSBzdHJjaHIoZGNfZGF0YSwgJzonKTsK PiArCj4gKwlhc3NlcnQocyk7Cj4gKwlzKys7Cj4gKwlyZXQgPSBzdHJ0b2wocywgJmUsIDEwKTsK PiArCWFzc2VydCgoKHJldCAhPSBMT05HX01JTiAmJiByZXQgIT0gTE9OR19NQVgpIHx8IGVycm5v ICE9IEVSQU5HRSkgJiYKPiArCSAgICAgICBlID4gcyAmJiAqZSA9PSAnXG4nICYmIHJldCA+PSAw KTsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK3N0YXRpYyB1aW50MzJfdCByZWFkX2RjX2Nv dW50ZXIodWludDMyX3QgZHJtX2ZkLCBpbnQgZGNfZmxhZykKPiArewo+ICsJY2hhciBidWZbNDA5 Nl07Cj4gKwljaGFyICpzdHI7Cj4gKwo+ICsJaWd0X2RlYnVnZnNfcmVhZChkcm1fZmQsICJpOTE1 X2RtY19pbmZvIiwgYnVmKTsKPiArCj4gKwlpZiAoZGNfZmxhZyAmIENIRUNLX0RDNSkKPiArCQlz dHIgPSBzdHJzdHIoYnVmLCAiREMzIC0+IERDNSBjb3VudCIpOwo+ICsJZWxzZSBpZiAoZGNfZmxh ZyAmIENIRUNLX0RDNikKPiArCQlzdHIgPSBzdHJzdHIoYnVmLCAiREM1IC0+IERDNiBjb3VudCIp Owo+ICsKPiArCS8qIENoZWNrIERDNS9EQzYgY291bnRlciBpcyBhdmFpbGFibGUgZm9yIHRoZSBw bGF0Zm9ybS4KPiArCSAqIFNraXAgdGhlIHRlc3QgaWYgY291bnRlciBpcyBub3QgYXZhaWxhYmxl Lgo+ICsJICovCj4gKwlpZ3Rfc2tpcF9vbl9mKCFzdHIsICJEQyVkIGNvdW50ZXIgaXMgbm90IGF2 YWlsYWJsZVxuIiwKPiArCQkgICAgICBkY19mbGFnICYgQ0hFQ0tfREM1ID8gNSA6IDYpOwo+ICsJ cmV0dXJuIGdldF9kY19jb3VudGVyKHN0cik7Cj4gK30KPiArCj4gK3N0YXRpYyBib29sIGRjX3N0 YXRlX3dhaXRfZW50cnkoaW50IGRybV9mZCwgaW50IGRjX2ZsYWcsIGludCBwcmV2X2RjX2NvdW50 KQo+ICt7Cj4gKwlyZXR1cm4gaWd0X3dhaXQocmVhZF9kY19jb3VudGVyKGRybV9mZCwgZGNfZmxh ZykgPgo+ICsJCQlwcmV2X2RjX2NvdW50LCAzMDAwLCAxMDApOwo+ICt9Cj4gKwo+ICtzdGF0aWMg dm9pZCBjaGVja19kY19jb3VudGVyKGludCBkcm1fZmQsIGludCBkY19mbGFnLCB1aW50MzJfdCBw cmV2X2RjX2NvdW50KQo+ICt7Cj4gKwlpZ3RfYXNzZXJ0X2YoZGNfc3RhdGVfd2FpdF9lbnRyeShk cm1fZmQsIGRjX2ZsYWcsIHByZXZfZGNfY291bnQpLAo+ICsJCSAgICAgIkRDJWQgc3RhdGUgaXMg bm90IGFjaGlldmVkXG4iLAo+ICsJCSAgICAgZGNfZmxhZyAmIENIRUNLX0RDNSA/IDUgOiA2KTsK PiArfQo+ICsKPiArc3RhdGljIHZvaWQgdGVzdF9kY19zdGF0ZV9wc3IoZGF0YV90ICpkYXRhLCBp bnQgZGNfZmxhZykKPiArewo+ICsJdWludDMyX3QgZGNfY291bnRlcl9iZWZvcmVfcHNyOwo+ICsK PiArCWRjX2NvdW50ZXJfYmVmb3JlX3BzciA9IHJlYWRfZGNfY291bnRlcihkYXRhLT5kcm1fZmQs IGRjX2ZsYWcpOwo+ICsJc2V0dXBfb3V0cHV0KGRhdGEpOwo+ICsJc2V0dXBfcHJpbWFyeShkYXRh KTsKPiArCWlndF9hc3NlcnQocHNyX3dhaXRfZW50cnkoZGF0YS0+ZGVidWdmc19mZCwgZGF0YS0+ b3BfcHNyX21vZGUpKTsKPiArCWNoZWNrX2RjX2NvdW50ZXIoZGF0YS0+ZHJtX2ZkLCBkY19mbGFn LCBkY19jb3VudGVyX2JlZm9yZV9wc3IpOwo+ICsJY2xlYW51cF9kY19wc3IoZGF0YSk7Cj4gK30K PiArCj4gK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCj4gK3sKPiArCWJvb2wgaGFz X3J1bnRpbWVfcG07Cj4gKwlkYXRhX3QgZGF0YSA9IHt9Owo+ICsKPiArCWlndF9za2lwX29uX3Np bXVsYXRpb24oKTsKPiArCWlndF9zdWJ0ZXN0X2luaXQoYXJnYywgYXJndik7Cj4gKwlpZ3RfZml4 dHVyZSB7Cj4gKwkJZGF0YS5kcm1fZmQgPSBkcm1fb3Blbl9kcml2ZXJfbWFzdGVyKERSSVZFUl9J TlRFTCk7Cj4gKwkJZGF0YS5kZWJ1Z2ZzX2ZkID0gaWd0X2RlYnVnZnNfZGlyKGRhdGEuZHJtX2Zk KTsKPiArCQlpZ3RfcmVxdWlyZShkYXRhLmRlYnVnZnNfZmQgIT0gLTEpOwo+ICsJCWttc3Rlc3Rf c2V0X3Z0X2dyYXBoaWNzX21vZGUoKTsKPiArCQlkYXRhLmRldmlkID0gaW50ZWxfZ2V0X2RybV9k ZXZpZChkYXRhLmRybV9mZCk7Cj4gKwkJaWd0X3BtX2VuYWJsZV9zYXRhX2xpbmtfcG93ZXJfbWFu YWdlbWVudCgpOwo+ICsJCWhhc19ydW50aW1lX3BtID0gaWd0X3NldHVwX3J1bnRpbWVfcG0oKTsK PiArCQlpZ3RfaW5mbygiUnVudGltZSBQTSBzdXBwb3J0OiAlZFxuIiwgaGFzX3J1bnRpbWVfcG0p Owo+ICsJCWlndF9yZXF1aXJlKGhhc19ydW50aW1lX3BtKTsKPiArCQlpZ3RfcmVxdWlyZShpZ3Rf cG1fZG1jX2xvYWRlZChkYXRhLmRlYnVnZnNfZmQpKTsKPiArCQlpZ3RfZGlzcGxheV9yZXF1aXJl KCZkYXRhLmRpc3BsYXksIGRhdGEuZHJtX2ZkKTsKPiArCX0KPiArCj4gKwlpZ3Rfc3VidGVzdCgi ZGM1LXBzciIpIHsKPiArCQlkYXRhLm9wX3Bzcl9tb2RlID0gUFNSX01PREVfMTsKPiArCQlwc3Jf ZW5hYmxlKGRhdGEuZGVidWdmc19mZCwgZGF0YS5vcF9wc3JfbW9kZSk7Cj4gKwkJaWd0X3JlcXVp cmVfZihlZHBfcHNyX3Npbmtfc3VwcG9ydCgmZGF0YSksCj4gKwkJCSAgICAgICJTaW5rIGRvZXMg bm90IHN1cHBvcnQgUFNSXG4iKTsKPiArCQl0ZXN0X2RjX3N0YXRlX3BzcigmZGF0YSwgQ0hFQ0tf REM1KTsKPiArCX0KPiArCj4gKwlpZ3RfZml4dHVyZSB7Cj4gKwkJY2xvc2UoZGF0YS5kZWJ1Z2Zz X2ZkKTsKPiArCQlkaXNwbGF5X2ZpbmkoJmRhdGEpOwo+ICsJfQo+ICsKPiArCWlndF9leGl0KCk7 Cj4gK30KPiBkaWZmIC0tZ2l0IGEvdGVzdHMvbWVzb24uYnVpbGQgYi90ZXN0cy9tZXNvbi5idWls ZAo+IGluZGV4IGE3YjJiMzIyLi5mODVkZWJhMSAxMDA2NDQKPiAtLS0gYS90ZXN0cy9tZXNvbi5i dWlsZAo+ICsrKyBiL3Rlc3RzL21lc29uLmJ1aWxkCj4gQEAgLTIzMCw2ICsyMzAsNyBAQCBpOTE1 X3Byb2dzID0gWwo+ICAJJ2k5MTVfcG1fbHBzcCcsCj4gIAknaTkxNV9wbV9yYzZfcmVzaWRlbmN5 JywKPiAgCSdpOTE1X3BtX3JwbScsCj4gKwknaTkxNV9wbV9kYycsCj4gIAknaTkxNV9wbV9ycHMn LAo+ICAJJ2k5MTVfcG1fc3NldScsCj4gIAknaTkxNV9xdWVyeScsCj4gLS0gCj4gMi4yMS4wCj4g Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYg bWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==