From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id ACCFE6E418 for ; Mon, 17 Dec 2018 12:00:30 +0000 (UTC) Date: Mon, 17 Dec 2018 14:00:27 +0200 From: Petri Latvala Message-ID: <20181217120027.GR17124@platvala-desk.ger.corp.intel.com> References: <20181213005739.29199-1-anusha.srivatsa@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20181213005739.29199-1-anusha.srivatsa@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t] test/kms_dp_dsc: Basic KMS test to validate VESA DSC on DP/eDP 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: Anusha Cc: igt-dev@lists.freedesktop.org, Manasi Navare , Dhinakaran Pandiyan List-ID: T24gV2VkLCBEZWMgMTIsIDIwMTggYXQgMDQ6NTc6MzlQTSAtMDgwMCwgQW51c2hhIHdyb3RlOgo+ IEZyb206IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4gCj4gVGhp cyBwYXRjaCBhZGRzIGEgYmFzaWMga21zIHRlc3QgdG8gdmFsaWRhdGUgdGhlIGRpc3BsYXkgc3Ry ZWFtCj4gY29tcHJlc3Npb24gZnVuY3Rpb25hbGl0eSBpZiBzdXBwb3J0ZWQgb24gRFAvZURQIGNv bm5lY3Rvci4KPiBDdXJyZW50bHkgdGhpcyBoYXMgb25seSB0d28gc3VidGVzdHMgdG8gZm9yY2Ug dGhlIERTQyBvbiBhbGwKPiB0aGUgZURQIGFuZCBEUCBjb25uZWN0b3JzIHRoYXQgc3VwcG9ydCBp dCB3aXRoIGRlZmF1bHQgcGFyYW1ldGVycy4KPiBUaGlzIHdpbGwgYmUgZXhwYW5kZWQgdG8gYWRk IG1vcmUgc3VidGVzdHMgdG8gdHdlYWsgRFNDIHBhcmFtZXRlcnMuCj4gCj4gdjY6IChmcm9tIEFu dXNoYSkKPiAqIEZpeCBydW5fdGVzdCgpIChQZXRyaSkKPiAqIEZpeCB1cGRhdGVfZGlzcGxheSgp IHRvIGF2b2lkIGxlYWtzLiAoUGV0cmkpCj4gdjU6Cj4gKiBGaXggdGVzdCBjbGVhbnVwIHRvIGF2 b2lkIGNyYXNoIChQZXRyaSkKPiB2NDoKPiAqIEZ1dHVyZSBwcm9vZiBmb3IgbW9yZSB0ZXN0IHR5 cGVzIChQZXRyaSkKPiAqIEZpeCBhbHBoYWJldGljYWwgb3JkZXIgKFBldHJpKQo+ICogcy9pZ3Rf ZGlzcGxheV9pbml0L2lndF9kaXNwbGF5X3JlcXVpcmUgKFBldHJpKQo+ICogUmVtb3ZlIGJsYW5r IGxpbmVzIGFmdGVyIHJldHVybiAoUGV0cmkpCj4gdjM6Cj4gKiBVc2UgYXJyYXkgb2YgY29ubmVj dG9ycyBhbmQgbG9vcCB0aHJvdWdoIChQZXRyaSkKPiAqIEFsc28gY2hlY2sgZm9yIEZFQyBvbiBE UCBjb25uZWN0b3JzIChNYW5hc2kpCj4gKiBBZGQgYSBQaXBlX0EgcmVzdHJpY3Rpb24gb24gRFAg KFZpbGxlKQo+IHYyOgo+ICogVXNlIElHVCB3cmFwcGVycyBmb3IgYWxsIChESywgQW50b25pbykK PiAqIFNwbGl0IGludG8gdHdvIHN1YnRlc3RzIGZvciBlRFAgYW5kIERQIHR5cGVzIChQZXRyaSkK PiAKPiBDYzogUGV0cmkgTGF0dmFsYSA8cGV0cmkubGF0dmFsYUBpbnRlbC5jb20+Cj4gQ2M6IEFu dG9uaW8gQXJnZW56aWFubyA8YW50b25pby5hcmdlbnppYW5vQGludGVsLmNvbT4KPiBDYzogRGhp bmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+Cj4gQ2M6IFZp bGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IEFudXNo YSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBB bnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1i eTogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiAtLS0KPiAgdGVz dHMvTWFrZWZpbGUuc291cmNlcyB8ICAgMSArCj4gIHRlc3RzL2ttc19kcF9kc2MuYyAgICAgfCAy NjQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgdGVzdHMvbWVz b24uYnVpbGQgICAgICB8ICAgMSArCj4gIDMgZmlsZXMgY2hhbmdlZCwgMjY2IGluc2VydGlvbnMo KykKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2ttc19kcF9kc2MuYwo+IAo+IGRpZmYgLS1n aXQgYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwo+IGlu ZGV4IGVlZGRlMWU4Li5hM2MyNGM5OSAxMDA2NDQKPiAtLS0gYS90ZXN0cy9NYWtlZmlsZS5zb3Vy Y2VzCj4gKysrIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwo+IEBAIC01NCw2ICs1NCw3IEBAIFRF U1RTX3Byb2dzID0gXAo+ICAJa21zX2NydGNfYmFja2dyb3VuZF9jb2xvciBcCj4gIAlrbXNfY3Vy c29yX2NyYyBcCj4gIAlrbXNfY3Vyc29yX2xlZ2FjeSBcCj4gKwlrbXNfZHBfZHNjIFwKPiAgCWtt c19kcmF3X2NyYyBcCj4gIAlrbXNfZmJjb25fZmJ0IFwKPiAgCWttc19mZW5jZV9waW5fbGVhayBc Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19kcF9kc2MuYyBiL3Rlc3RzL2ttc19kcF9kc2MuYwo+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAuLjg4NGE3NzE3Cj4gLS0tIC9k ZXYvbnVsbAo+ICsrKyBiL3Rlc3RzL2ttc19kcF9kc2MuYwo+IEBAIC0wLDAgKzEsMjY0IEBACj4g Ky8qCj4gKyAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCj4gKyAqCj4gKyAq IFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVy c29uIG9idGFpbmluZyBhCj4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCj4gKyAqIHRvIGRlYWwgaW4g dGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0 YXRpb24KPiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxp c2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0 aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQo+ICsgKiBTb2Z0 d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25k aXRpb25zOgo+ICsgKgo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw ZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Cj4gKyAqIHBhcmFncmFwaCkgc2hh bGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0 aGUKPiArICogU29mdHdhcmUuCj4gKyAqCj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAi QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4gKyAqIElN UExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVS Q0hBTlRBQklMSVRZLAo+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg Tk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKPiArICogVEhFIEFVVEhPUlMgT1Ig Q09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RI RVIKPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9S VCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiArICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJ T04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwo+ICsgKiBJ TiBUSEUgU09GVFdBUkUuCj4gKyAqCj4gKyAqIERpc3BsYXlwb3J0IERpc3BsYXkgU3RyZWFtIENv bXByZXNzaW9uIHRlc3QKPiArICogVW50aWwgdGhlIENSQyBzdXBwb3J0IGlzIGFkZGVkIHRoaXMg bmVlZHMgdG8gYmUgaW52b2tlZCB3aXRoIC0taW50ZXJhY3RpdmUKPiArICogdG8gbWFudWFsbHkg dmVyaWZ5IGlmIHRoZSB0ZXN0IHBhdHRlcm4gaXMgc2VlbiB3aXRob3V0IGNvcnJ1cHRpb24gZm9y IGVhY2gKPiArICogc3VidGVzdC4KPiArICoKPiArICogQXV0aG9yczoKPiArICogTWFuYXNpIE5h dmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiArICoKPiArICovCj4gKyNpbmNsdWRl ICJpZ3QuaCIKPiArI2luY2x1ZGUgImlndF9zeXNmcy5oIgo+ICsjaW5jbHVkZSA8ZXJybm8uaD4K PiArI2luY2x1ZGUgPGdldG9wdC5oPgo+ICsjaW5jbHVkZSA8bWF0aC5oPgo+ICsjaW5jbHVkZSA8 c3RkaW50Lmg+Cj4gKyNpbmNsdWRlIDxzdGRib29sLmg+Cj4gKyNpbmNsdWRlIDxzdHJpbmdzLmg+ Cj4gKyNpbmNsdWRlIDx1bmlzdGQuaD4KPiArI2luY2x1ZGUgPHN0ZGxpYi5oPgo+ICsjaW5jbHVk ZSA8c2lnbmFsLmg+Cj4gKyNpbmNsdWRlIDx0aW1lLmg+Cj4gKyNpbmNsdWRlIDxmY250bC5oPgo+ ICsjaW5jbHVkZSA8dGVybWlvcy5oPgo+ICsKPiArZW51bSBkc2NfdGVzdF90eXBlCj4gK3sKPiAr CXRlc3RfYmFzaWNfZHNjX2VuYWJsZQo+ICt9Owo+ICsKPiArdHlwZWRlZiBzdHJ1Y3Qgewo+ICsJ aW50IGRybV9mZDsKPiArCWludCBkZWJ1Z2ZzX2ZkOwo+ICsJdWludDMyX3QgaWQ7Cj4gKwlpZ3Rf ZGlzcGxheV90IGRpc3BsYXk7Cj4gKwlzdHJ1Y3QgaWd0X2ZiIGZiX3Rlc3RfcGF0dGVybjsKPiAr CWlndF9vdXRwdXRfdCAqb3V0cHV0Owo+ICsJaW50IG1vZGVfdmFsaWQ7Cj4gKwlkcm1Nb2RlTW9k ZUluZm8gKm1vZGU7Cj4gKwlkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3I7Cj4gKwlkcm1Nb2Rl RW5jb2RlciAqZW5jb2RlcjsKPiArCWludCBjcnRjOwo+ICsJZW51bSBwaXBlIHBpcGU7Cj4gKwlj aGFyIGNvbm5fbmFtZVsxMjhdOwo+ICt9IGRhdGFfdDsKPiArCj4gK3N0YXRpYyBpbmxpbmUgdm9p ZCBtYW51YWwoY29uc3QgY2hhciAqZXhwZWN0ZWQpCj4gK3sKPiArCWlndF9kZWJ1Z19tYW51YWxf Y2hlY2soImFsbCIsIGV4cGVjdGVkKTsKPiArfQo+ICsKPiArc3RhdGljIGJvb2wgaXNfZHBfZHNj X3N1cHBvcnRlZChkYXRhX3QgKmRhdGEpCj4gK3sKPiArCWNoYXIgZmlsZV9uYW1lWzEyOF0gPSB7 MH07Cj4gKwljaGFyIGJ1Zls1MTJdOwo+ICsKPiArCXN0cmNweShmaWxlX25hbWUsIGRhdGEtPmNv bm5fbmFtZSk7Cj4gKwlzdHJjYXQoZmlsZV9uYW1lLCAiL2k5MTVfZHNjX2ZlY19zdXBwb3J0Iik7 Cj4gKwlpZ3RfcmVxdWlyZShpZ3RfZGVidWdmc19zaW1wbGVfcmVhZChkYXRhLT5kZWJ1Z2ZzX2Zk LCBmaWxlX25hbWUsIGJ1ZiwKPiArCQkJCQkgICAgc2l6ZW9mKGJ1ZikpID4gMCk7Cj4gKwlpZ3Rf ZGVidWdmc19yZWFkKGRhdGEtPmRybV9mZCwgZmlsZV9uYW1lLCBidWYpOwo+ICsKPiArCXJldHVy biBzdHJzdHIoYnVmLCAiRFNDX1NpbmtfU3VwcG9ydDogeWVzIik7Cj4gK30KPiArCj4gK3N0YXRp YyBib29sIGlzX2RwX2ZlY19zdXBwb3J0ZWQoZGF0YV90ICpkYXRhKQo+ICt7Cj4gKwljaGFyIGZp bGVfbmFtZVsxMjhdID0gezB9Owo+ICsJY2hhciBidWZbNTEyXTsKPiArCj4gKwlzdHJjcHkoZmls ZV9uYW1lLCBkYXRhLT5jb25uX25hbWUpOwo+ICsJc3RyY2F0KGZpbGVfbmFtZSwgIi9pOTE1X2Rz Y19mZWNfc3VwcG9ydCIpOwo+ICsJaWd0X2RlYnVnZnNfcmVhZChkYXRhLT5kcm1fZmQsIGZpbGVf bmFtZSwgYnVmKTsKPiArCj4gKwlyZXR1cm4gc3Ryc3RyKGJ1ZiwgIkZFQ19TaW5rX1N1cHBvcnQ6 IHllcyIpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbCBpc19kcF9kc2NfZW5hYmxlZChkYXRhX3Qg KmRhdGEpCj4gK3sKPiArCWNoYXIgZmlsZV9uYW1lWzEyOF0gPSB7MH07Cj4gKwljaGFyIGJ1Zls1 MTJdOwo+ICsKPiArCXN0cmNweShmaWxlX25hbWUsIGRhdGEtPmNvbm5fbmFtZSk7Cj4gKwlzdHJj YXQoZmlsZV9uYW1lLCAiL2k5MTVfZHNjX2ZlY19zdXBwb3J0Iik7Cj4gKwlpZ3RfZGVidWdmc19y ZWFkKGRhdGEtPmRybV9mZCwgZmlsZV9uYW1lLCBidWYpOwo+ICsKPiArCXJldHVybiBzdHJzdHIo YnVmLCAiRFNDX0VuYWJsZWQ6IHllcyIpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBmb3JjZV9k cF9kc2NfZW5hYmxlKGRhdGFfdCAqZGF0YSkKPiArewo+ICsJY2hhciBmaWxlX25hbWVbMTI4XSA9 IHswfTsKPiArCWludCByZXQ7Cj4gKwo+ICsJc3RyY3B5KGZpbGVfbmFtZSwgZGF0YS0+Y29ubl9u YW1lKTsKPiArCXN0cmNhdChmaWxlX25hbWUsICIvaTkxNV9kc2NfZmVjX3N1cHBvcnQiKTsKPiAr CWlndF9kZWJ1ZyAoIkZvcmNpbmcgRFNDIGVuYWJsZSBvbiAlc1xuIiwgZGF0YS0+Y29ubl9uYW1l KTsKPiArCXJldCA9IGlndF9zeXNmc193cml0ZShkYXRhLT5kZWJ1Z2ZzX2ZkLCBmaWxlX25hbWUs ICIxIiwgMSk7Cj4gKwlpZ3RfYXNzZXJ0X2YocmV0ID4gMCwgImRlYnVnZnNfd3JpdGUgZmFpbGVk Iik7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGNsZWFyX2RwX2RzY19lbmFibGUoZGF0YV90ICpk YXRhKQo+ICt7Cj4gKwljaGFyIGZpbGVfbmFtZVsxMjhdID0gezB9Owo+ICsJaW50IHJldDsKPiAr Cj4gKwlzdHJjcHkoZmlsZV9uYW1lLCBkYXRhLT5jb25uX25hbWUpOwo+ICsJc3RyY2F0KGZpbGVf bmFtZSwgIi9pOTE1X2RzY19mZWNfc3VwcG9ydCIpOwo+ICsJaWd0X2RlYnVnICgiQ2xlYXJpbmcg RFNDIGVuYWJsZSBvbiAlc1xuIiwgZGF0YS0+Y29ubl9uYW1lKTsKPiArCXJldCA9IGlndF9zeXNm c193cml0ZShkYXRhLT5kZWJ1Z2ZzX2ZkLCBmaWxlX25hbWUsICIwIiwgMSk7Cj4gKwlpZ3RfYXNz ZXJ0X2YocmV0ID4gMCwgImRlYnVnZnNfd3JpdGUgZmFpbGVkIik7Cj4gK30KPiArCj4gK3N0YXRp YyB2b2lkIHRlc3RfY2xlYW51cChkYXRhX3QgKmRhdGEpIHsKPiArCWlndF9wbGFuZV90ICpwcmlt YXJ5Owo+ICsKPiArCWlmIChkYXRhLT5vdXRwdXQpIHsKPiArCXByaW1hcnkgPSBpZ3Rfb3V0cHV0 X2dldF9wbGFuZV90eXBlKGRhdGEtPm91dHB1dCwKPiArCQkJCQkgICAgRFJNX1BMQU5FX1RZUEVf UFJJTUFSWSk7Cj4gKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksIE5VTEwpOwo+ICsJaWd0X2Rp c3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKPiArCj4gKwlpZ3RfcmVtb3ZlX2ZiKGRhdGEt PmRybV9mZCwgJmRhdGEtPmZiX3Rlc3RfcGF0dGVybik7Cj4gKwl9Cj4gK30KCgpJbmRlbnRhdGlv biBvbiB0aGUgaWYgaXMgd3JvbmcuCgoKPiArCj4gKwo+ICsvKgo+ICsgKiBSZS1wcm9iZSBjb25u ZWN0b3JzIGFuZCBkbyBhIG1vZGVzZXQgd2l0aCBEU0MKPiArICoKPiArICovCj4gK3N0YXRpYyB2 b2lkIHVwZGF0ZV9kaXNwbGF5KGRhdGFfdCAqZGF0YSwgZW51bSBkc2NfdGVzdF90eXBlIHRlc3Rf dHlwZSkKPiArewo+ICsJaWd0X3BsYW5lX3QgKnByaW1hcnk7Cj4gKwlkYXRhLT5tb2RlID0gaWd0 X291dHB1dF9nZXRfbW9kZShkYXRhLT5vdXRwdXQpOwo+ICsJZGF0YS0+Y29ubmVjdG9yID0gZGF0 YS0+b3V0cHV0LT5jb25maWcuY29ubmVjdG9yOwo+ICsKPiArCWlmIChkYXRhLT5jb25uZWN0b3It PmNvbm5lY3Rvcl90eXBlID09IERSTV9NT0RFX0NPTk5FQ1RPUl9EaXNwbGF5UG9ydCAmJgo+ICsJ ICAgIGRhdGEtPnBpcGUgPT0gUElQRV9BKSB7Cj4gKwkJaWd0X2RlYnVnICgiRFNDIG5vdCBzdXBw b3J0ZWQgb24gUGlwZSBBIG9uIGV4dGVybmFsIERQXG4iKTsKPiArCQlyZXR1cm47Cj4gKwl9Cj4g Kwo+ICsJaWYgKHRlc3RfdHlwZSA9PSB0ZXN0X2Jhc2ljX2RzY19lbmFibGUpIHsKPiArCQlpZ3Rf ZGVidWcgKCJEU0MgaXMgc3VwcG9ydGVkIG9uICVzXG4iLAo+ICsJCQkgICBkYXRhLT5jb25uX25h bWUpOwo+ICsJCWZvcmNlX2RwX2RzY19lbmFibGUoZGF0YSk7Cj4gKwkJLyogQ2xlYXIgdGhlIGZi IGluIG9yZGVyIHRvIGF2b2lkIGxlYWtzICovCj4gKwkJaWd0X3JlbW92ZV9mYihkYXRhLT5kcm1f ZmQsICZkYXRhLT5mYl90ZXN0X3BhdHRlcm4pOwo+ICsJCWlndF9jcmVhdGVfcGF0dGVybl9mYihk YXRhLT5kcm1fZmQsIGRhdGEtPm1vZGUtPmhkaXNwbGF5LAo+ICsJCQkJICAgICAgZGF0YS0+bW9k ZS0+dmRpc3BsYXksCj4gKwkJCQkgICAgICBEUk1fRk9STUFUX1hSR0I4ODg4LAo+ICsJCQkJICAg ICAgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwKPiArCQkJCSAgICAgICZkYXRhLT5mYl90ZXN0 X3BhdHRlcm4pOwo+ICsJCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKGRhdGEt Pm91dHB1dCwKPiArCQkJCQkJICAgIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwo+ICsJCWlndF9w bGFuZV9zZXRfZmIocHJpbWFyeSwgJmRhdGEtPmZiX3Rlc3RfcGF0dGVybik7Cj4gKwkJaWd0X2Rp c3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKPiArCQkvKiBVbnRpbCB3ZSBoYXZlIENSQyBj aGVjayBzdXBwb3J0LCBtYW51YWxseSBjaGVjayBpZiBSR0IgdGVzdCBwYXR0ZXJuIGhhcyBubyBj b3JydXB0aW9uICovCj4gKwkJbWFudWFsICgiUkdCIHRlc3QgcGF0dGVybiB3aXRob3V0IGNvcnJ1 cHRpb24iKTsKPiArCQlpZ3RfYXNzZXJ0X2YoaXNfZHBfZHNjX2VuYWJsZWQoZGF0YSksCj4gKwkJ CSAgICAgIkRlZmF1bHQgRFNDIGVuYWJsZSBmYWlsZWQgb24gQ29ubmVjdG9yOiAlcyBQaXBlOiAl cyIsCj4gKwkJCSAgICAgZGF0YS0+Y29ubl9uYW1lLAo+ICsJCQkgICAgIGttc3Rlc3RfcGlwZV9u YW1lKGRhdGEtPnBpcGUpKTsKPiArCQljbGVhcl9kcF9kc2NfZW5hYmxlKGRhdGEpOwo+ICsJfSBl bHNlIHsKPiArCQlpZ3RfYXNzZXJ0KCEiVW5rbm93biB0ZXN0IHR5cGVcbiIpOwo+ICsJfQo+ICt9 Cj4gKwo+ICtzdGF0aWMgdm9pZCBydW5fdGVzdChkYXRhX3QgKmRhdGEsIGlndF9vdXRwdXRfdCAq b3V0cHV0LAo+ICsJCSAgICAgZW51bSBkc2NfdGVzdF90eXBlIHRlc3RfdHlwZSkKPiArewo+ICsJ ZW51bSBwaXBlIHBpcGU7Cj4gKwo+ICsJZm9yX2VhY2hfcGlwZV9zdGF0aWMocGlwZSkgewoKClRo aXMgZG9lc24ndCBuZWVkIHRvIGJlIHRoZSBfc3RhdGljIGxvb3AsIGZvcl9lYWNoX3BpcGUoZGF0 YS0+ZGlzcGxheSwgcGlwZSkgY2FuIGJlIHVzZWQuCgoKPiArCQlpZiAoaWd0X3BpcGVfY29ubmVj dG9yX3ZhbGlkKHBpcGUsIG91dHB1dCkpIHsKPiArCQkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRw dXQsIHBpcGUpOwo+ICsJCQlkYXRhLT5waXBlID0gcGlwZTsKPiArCQkJZGF0YS0+b3V0cHV0ID0g b3V0cHV0Owo+ICsJCQl1cGRhdGVfZGlzcGxheShkYXRhLCB0ZXN0X3R5cGUpOwo+ICsJCX0KPiAr CX0KPiArfQo+ICsKPiAraWd0X21haW4KPiArewo+ICsJZGF0YV90IGRhdGEgPSB7fTsKPiArCWln dF9vdXRwdXRfdCAqb3V0cHV0Owo+ICsJZHJtTW9kZVJlcyAqcmVzOwo+ICsJZHJtTW9kZUNvbm5l Y3RvciAqY29ubmVjdG9yOwo+ICsJaW50IGksIHRlc3RfY29ubl9jbnQsIHRlc3RfY250Owo+ICsJ aW50IHRlc3RzW10gPSB7RFJNX01PREVfQ09OTkVDVE9SX2VEUCwgRFJNX01PREVfQ09OTkVDVE9S X0Rpc3BsYXlQb3J0fTsKPiArCj4gKwlpZ3RfZml4dHVyZSB7Cj4gKwkJZGF0YS5kcm1fZmQgPSBk cm1fb3Blbl9kcml2ZXJfbWFzdGVyKERSSVZFUl9BTlkpOwo+ICsJCWRhdGEuZGVidWdmc19mZCA9 IGlndF9kZWJ1Z2ZzX2RpcihkYXRhLmRybV9mZCk7Cj4gKwkJa21zdGVzdF9zZXRfdnRfZ3JhcGhp Y3NfbW9kZSgpOwo+ICsJCWlndF9kaXNwbGF5X3JlcXVpcmUoJmRhdGEuZGlzcGxheSwgZGF0YS5k cm1fZmQpOwo+ICsJCS8vaWd0X2Rpc3BsYXlfcmVxdWlyZV9vdXRwdXQoJmRhdGEuZGlzcGxheSk7 Cj4gKwkJaWd0X3JlcXVpcmUocmVzID0gZHJtTW9kZUdldFJlc291cmNlcyhkYXRhLmRybV9mZCkp Owo+ICsJfQo+ICsKPiArCWZvciAodGVzdF9jbnQgPSAwOyB0ZXN0X2NudCA8IEFSUkFZX1NJWkUo dGVzdHMpOyB0ZXN0X2NudCsrKSB7Cj4gKwo+ICsJCWlndF9zdWJ0ZXN0X2YoImJhc2ljLWRzYy1l bmFibGUtJXMiLAo+ICsJCQkgICAgICBrbXN0ZXN0X2Nvbm5lY3Rvcl90eXBlX3N0cih0ZXN0c1t0 ZXN0X2NudF0pKSB7Cj4gKwkJCXRlc3RfY29ubl9jbnQgPSAwOwo+ICsJCQlmb3IgKGkgPSAwOyBp IDwgcmVzLT5jb3VudF9jb25uZWN0b3JzOyBpKyspIHsKPiArCQkJCWNvbm5lY3RvciA9IGRybU1v ZGVHZXRDb25uZWN0b3JDdXJyZW50KGRhdGEuZHJtX2ZkLAo+ICsJCQkJCQkJCSAgICAgICByZXMt PmNvbm5lY3RvcnNbaV0pOwo+ICsJCQkJaWYgKGNvbm5lY3Rvci0+Y29ubmVjdGlvbiAhPSBEUk1f TU9ERV9DT05ORUNURUQgfHwKPiArCQkJCSAgICBjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlICE9 Cj4gKwkJCQkgICAgdGVzdHNbdGVzdF9jbnRdKQo+ICsJCQkJCWNvbnRpbnVlOwo+ICsJCQkJdGVz dF9jb25uX2NudCsrOwo+ICsJCQkJb3V0cHV0ID0gaWd0X291dHB1dF9mcm9tX2Nvbm5lY3Rvcigm ZGF0YS5kaXNwbGF5LCBjb25uZWN0b3IpOwo+ICsJCQkJc3ByaW50ZihkYXRhLmNvbm5fbmFtZSwg IiVzLSVkIiwKPiArCQkJCQlrbXN0ZXN0X2Nvbm5lY3Rvcl90eXBlX3N0cihjb25uZWN0b3ItPmNv bm5lY3Rvcl90eXBlKSwKPiArCQkJCQl0ZXN0X2Nvbm5fY250KTsKPiArCQkJCWlndF9yZXF1aXJl X2YoaXNfZHBfZHNjX3N1cHBvcnRlZCgmZGF0YSksCj4gKwkJCQkJICAgICAgIkRTQyBub3Qgc3Vw cG9ydGVkIG9uIGNvbm5lY3RvciAlcyBcbiIsCj4gKwkJCQkJICAgICAgZGF0YS5jb25uX25hbWUp OwoKVGhpcyB3aWxsIG1ha2UgdGhlIHN1YnRlc3Qgc2tpcCB3aGVuIGNoZWNraW5nIERQLTEsIHdp dGhvdXQgdHJ5aW5nCkRQLTIgYXQgYWxsLiBJcyB0aGF0IGludGVuZGVkPwoKCgotLSAKUGV0cmkg TGF0dmFsYQoKCgo+ICsJCQkJaWYgKGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgPT0gRFJNX01P REVfQ09OTkVDVE9SX0Rpc3BsYXlQb3J0KQo+ICsJCQkJCWlndF9yZXF1aXJlX2YoaXNfZHBfZmVj X3N1cHBvcnRlZCgmZGF0YSksCj4gKwkJCQkJCSAgICAgICJEU0MgY2Fubm90IGJlIGVuYWJsZWQg d2l0aG91dCBGRUMgb24gJXNcbiIsCj4gKwkJCQkJCSAgICAgIGRhdGEuY29ubl9uYW1lKTsKPiAr CQkJCXJ1bl90ZXN0KCZkYXRhLCBvdXRwdXQsIHRlc3RfYmFzaWNfZHNjX2VuYWJsZSk7Cj4gKwkJ CX0KPiArCQkJdGVzdF9jbGVhbnVwKCZkYXRhKTsKPiArCQkJaWd0X3NraXBfb24odGVzdF9jb25u X2NudCA9PSAwKTsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJaWd0X2ZpeHR1cmUgewo+ICsJCWRybU1v ZGVGcmVlQ29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4gKwkJZHJtTW9kZUZyZWVSZXNvdXJjZXMocmVz KTsKPiArCQljbG9zZShkYXRhLmRlYnVnZnNfZmQpOwo+ICsJCWNsb3NlKGRhdGEuZHJtX2ZkKTsK PiArCQlpZ3RfZGlzcGxheV9maW5pKCZkYXRhLmRpc3BsYXkpOwo+ICsJfQo+ICsJaWd0X2V4aXQo KTsKPiArfQo+IGRpZmYgLS1naXQgYS90ZXN0cy9tZXNvbi5idWlsZCBiL3Rlc3RzL21lc29uLmJ1 aWxkCj4gaW5kZXggYjhhNmU2MWIuLmUxNGFiMmI0IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL21lc29u LmJ1aWxkCj4gKysrIGIvdGVzdHMvbWVzb24uYnVpbGQKPiBAQCAtMjUsNiArMjUsNyBAQCB0ZXN0 X3Byb2dzID0gWwo+ICAJJ2ttc19jcnRjX2JhY2tncm91bmRfY29sb3InLAo+ICAJJ2ttc19jdXJz b3JfY3JjJywKPiAgCSdrbXNfY3Vyc29yX2xlZ2FjeScsCj4gKwkna21zX2RwX2RzYycsCj4gIAkn a21zX2RyYXdfY3JjJywKPiAgCSdrbXNfZmJjb25fZmJ0JywKPiAgCSdrbXNfZmVuY2VfcGluX2xl YWsnLAo+IC0tIAo+IDIuMTcuMAo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ln dC1kZXYK