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 B82B06E463 for ; Wed, 21 Nov 2018 10:08:46 +0000 (UTC) Date: Wed, 21 Nov 2018 12:08:42 +0200 From: Petri Latvala Message-ID: <20181121100842.GZ17124@platvala-desk.ger.corp.intel.com> References: <20181120233437.5352-1-manasi.d.navare@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20181120233437.5352-1-manasi.d.navare@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t v2] 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: Manasi Navare Cc: igt-dev@lists.freedesktop.org, Anusha Srivatsa , Dhinakaran Pandiyan List-ID: T24gVHVlLCBOb3YgMjAsIDIwMTggYXQgMDM6MzQ6MzdQTSAtMDgwMCwgTWFuYXNpIE5hdmFyZSB3 cm90ZToKPiBUaGlzIHBhdGNoIGFkZHMgYSBiYXNpYyBrbXMgdGVzdCB0byB2YWxpZGF0ZSB0aGUg ZGlzcGxheSBzdHJlYW0KPiBjb21wcmVzc2lvbiBmdW5jdGlvbmFsaXR5IGlmIHN1cHBvcnRlZCBv biBEUC9lRFAgY29ubmVjdG9yLgo+IEN1cnJlbnRseSB0aGlzIGhhcyBvbmx5IHR3byBzdWJ0ZXN0 cyB0byBmb3JjZSB0aGUgRFNDIG9uIGFsbAo+IHRoZSBlRFAgYW5kIERQIGNvbm5lY3RvcnMgdGhh dCBzdXBwb3J0IGl0IHdpdGggZGVmYXVsdCBwYXJhbWV0ZXJzLgo+IFRoaXMgd2lsbCBiZSBleHBh bmRlZCB0byBhZGQgbW9yZSBzdWJ0ZXN0cyB0byB0d2VhayBEU0MgcGFyYW1ldGVycy4KPiAKPiBU aGlzIHVzZXMgdGhlIGRlYnVnZnMgbm9kZXMgYWRkZWQgaW4gdGhlIHBhdGNoOgo+IGh0dHBzOi8v cGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRjaC8yNjE3NDIvCj4gCj4gdjI6Cj4gKiBVc2Ug SUdUIHdyYXBwZXJzIGZvciBhbGwgKERLLCBBbnRvbmlvKQo+ICogU3BsaXQgaW50byB0d28gc3Vi dGVzdHMgZm9yIGVEUCBhbmQgRFAgdHlwZXMgKFBldHJpKQo+IAo+IENjOiBQZXRyaSBMYXR2YWxh IDxwZXRyaS5sYXR2YWxhQGludGVsLmNvbT4KPiBDYzogQW50b25pbyBBcmdlbnppYW5vIDxhbnRv bmlvLmFyZ2Vuemlhbm9AaW50ZWwuY29tPgo+IENjOiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGlu YWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4KPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBDYzogQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3Jp dmF0c2FAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5k Lm5hdmFyZUBpbnRlbC5jb20+Cj4gLS0tCj4gIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgfCAgIDEg Kwo+ICB0ZXN0cy9rbXNfZHBfZHNjLmMgICAgIHwgMjUzICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCj4gIHRlc3RzL21lc29uLmJ1aWxkICAgICAgfCAgIDEgKwo+ICAz IGZpbGVzIGNoYW5nZWQsIDI1NSBpbnNlcnRpb25zKCspCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB0 ZXN0cy9rbXNfZHBfZHNjLmMKPiAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUuc291cmNl cyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKPiBpbmRleCBkMDA3ZWJjNy4uMmE1YjFjN2YgMTAw NjQ0Cj4gLS0tIGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcwo+ICsrKyBiL3Rlc3RzL01ha2VmaWxl LnNvdXJjZXMKPiBAQCAtODgsNiArODgsNyBAQCBURVNUU19wcm9ncyA9IFwKPiAgCWttc191bml2 ZXJzYWxfcGxhbmUgXAo+ICAJa21zX3ZibGFuayBcCj4gIAlrbXNfc2VxdWVuY2UgXAo+ICsJa21z X2RwX2RzYyBcCj4gIAltZXRhX3Rlc3QgXAo+ICAJcGVyZiBcCj4gIAlwZXJmX3BtdSBcCj4gZGlm ZiAtLWdpdCBhL3Rlc3RzL2ttc19kcF9kc2MuYyBiL3Rlc3RzL2ttc19kcF9kc2MuYwo+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAuLjUzODFkNTc1Cj4gLS0tIC9kZXYvbnVs bAo+ICsrKyBiL3Rlc3RzL2ttc19kcF9kc2MuYwo+IEBAIC0wLDAgKzEsMjUzIEBACj4gKy8qCj4g KyAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCj4gKyAqCj4gKyAqIFBlcm1p c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i dGFpbmluZyBhCj4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1 bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCj4gKyAqIHRvIGRlYWwgaW4gdGhlIFNv ZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24K PiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRp c3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29m dHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQo+ICsgKiBTb2Z0d2FyZSBp cyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25z Ogo+ICsgKgo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz aW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Cj4gKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUg aW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKPiAr ICogU29mdHdhcmUuCj4gKyAqCj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMi LCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4gKyAqIElNUExJRUQs IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB QklMSVRZLAo+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5G UklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKPiArICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJ R0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKPiAr ICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBP VEhFUldJU0UsIEFSSVNJTkcKPiArICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lU SCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwo+ICsgKiBJTiBUSEUg U09GVFdBUkUuCj4gKyAqCj4gKyAqIERpc3BsYXlwb3J0IERpc3BsYXkgU3RyZWFtIENvbXByZXNz aW9uIHRlc3QKPiArICogVW50aWwgdGhlIENSQyBzdXBwb3J0IGlzIGFkZGVkIHRoaXMgbmVlZHMg dG8gYmUgaW52b2tlZCB3aXRoIC0taW50ZXJhY3RpdmUKPiArICogdG8gbWFudWFsbHkgdmVyaWZ5 IGlmIHRoZSB0ZXN0IHBhdHRlcm4gaXMgc2VlbiB3aXRob3V0IGNvcnJ1cHRpb24gZm9yIGVhY2gK PiArICogc3VidGVzdC4KPiArICoKPiArICogQXV0aG9yczoKPiArICogTWFuYXNpIE5hdmFyZSA8 bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiArICoKPiArICovCj4gKyNpbmNsdWRlICJpZ3Qu aCIKPiArI2luY2x1ZGUgImlndF9zeXNmcy5oIgo+ICsjaW5jbHVkZSA8ZXJybm8uaD4KPiArI2lu Y2x1ZGUgPGdldG9wdC5oPgo+ICsjaW5jbHVkZSA8bWF0aC5oPgo+ICsjaW5jbHVkZSA8c3RkaW50 Lmg+Cj4gKyNpbmNsdWRlIDxzdGRib29sLmg+Cj4gKyNpbmNsdWRlIDxzdHJpbmdzLmg+Cj4gKyNp bmNsdWRlIDx1bmlzdGQuaD4KPiArI2luY2x1ZGUgPHN0ZGxpYi5oPgo+ICsjaW5jbHVkZSA8c2ln bmFsLmg+Cj4gKyNpbmNsdWRlIDx0aW1lLmg+Cj4gKyNpbmNsdWRlIDxmY250bC5oPgo+ICsjaW5j bHVkZSA8dGVybWlvcy5oPgo+ICsKPiArZW51bSBkc2NfdGVzdF90eXBlCj4gK3sKPiArCXRlc3Rf YmFzaWNfZHNjX2VuYWJsZQo+ICt9Owo+ICsKPiArdHlwZWRlZiBzdHJ1Y3Qgewo+ICsJaW50IGRy bV9mZDsKPiArCWludCBkZWJ1Z2ZzX2ZkOwo+ICsJdWludDMyX3QgaWQ7Cj4gKwlpZ3RfZGlzcGxh eV90IGRpc3BsYXk7Cj4gKwlzdHJ1Y3QgaWd0X2ZiIGZiX3Rlc3RfcGF0dGVybjsKPiArCWlndF9v dXRwdXRfdCAqb3V0cHV0Owo+ICsJaW50IG1vZGVfdmFsaWQ7Cj4gKwlkcm1Nb2RlTW9kZUluZm8g Km1vZGU7Cj4gKwlkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3I7Cj4gKwlkcm1Nb2RlRW5jb2Rl ciAqZW5jb2RlcjsKPiArCWludCBjcnRjOwo+ICsJZW51bSBwaXBlIHBpcGU7Cj4gKwlpbnQgdGVz dF9jb25uX2NudDsKPiArfSBkYXRhX3Q7Cj4gKwo+ICtzdGF0aWMgaW5saW5lIHZvaWQgbWFudWFs KGNvbnN0IGNoYXIgKmV4cGVjdGVkKQo+ICt7Cj4gKwlpZ3RfZGVidWdfbWFudWFsX2NoZWNrKCJh bGwiLCBleHBlY3RlZCk7Cj4gK30KPiArCj4gK3N0YXRpYyBib29sIGlzX2RwX2RzY19zdXBwb3J0 ZWQoZGF0YV90ICpkYXRhLCBjaGFyICp0ZXN0X2Nvbm5lY3Rvcl9uYW1lKQo+ICt7Cj4gKwljaGFy IGZpbGVfbmFtZVsxMjhdID0gezB9Owo+ICsJY2hhciBidWZbNTEyXTsKPiArCj4gKwlzdHJjcHko ZmlsZV9uYW1lLCB0ZXN0X2Nvbm5lY3Rvcl9uYW1lKTsKPiArCXN0cmNhdChmaWxlX25hbWUsICIv aTkxNV9kc2Nfc3VwcG9ydCIpOwo+ICsJaWd0X2RlYnVnZnNfcmVhZChkYXRhLT5kcm1fZmQsIGZp bGVfbmFtZSwgYnVmKTsKPiArCj4gKwlyZXR1cm4gc3Ryc3RyKGJ1ZiwgIlN1cHBvcnRlZDogeWVz Iik7Cj4gKwo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbCBpc19kcF9kc2NfZW5hYmxlZChkYXRhX3Qg KmRhdGEsIGNoYXIgKnRlc3RfY29ubmVjdG9yX25hbWUpCj4gK3sKPiArCWNoYXIgZmlsZV9uYW1l WzEyOF0gPSB7MH07Cj4gKwljaGFyIGJ1Zls1MTJdOwo+ICsKPiArCXN0cmNweShmaWxlX25hbWUs IHRlc3RfY29ubmVjdG9yX25hbWUpOwo+ICsJc3RyY2F0KGZpbGVfbmFtZSwgIi9pOTE1X2RzY19z dXBwb3J0Iik7Cj4gKwlpZ3RfZGVidWdmc19yZWFkKGRhdGEtPmRybV9mZCwgZmlsZV9uYW1lLCBi dWYpOwo+ICsKPiArCXJldHVybiBzdHJzdHIoYnVmLCAiRW5hYmxlZDogeWVzIik7Cj4gKwo+ICt9 Cj4gKwo+ICtzdGF0aWMgdm9pZCBmb3JjZV9kcF9kc2NfZW5hYmxlKGRhdGFfdCAqZGF0YSwgY2hh ciAqdGVzdF9jb25uZWN0b3JfbmFtZSkKPiArewo+ICsJY2hhciBmaWxlX25hbWVbMTI4XSA9IHsw fTsKPiArCWludCByZXQ7Cj4gKwo+ICsJc3RyY3B5KGZpbGVfbmFtZSwgdGVzdF9jb25uZWN0b3Jf bmFtZSk7Cj4gKwlzdHJjYXQoZmlsZV9uYW1lLCAiL2k5MTVfZHNjX3N1cHBvcnQiKTsKPiArCWln dF9kZWJ1ZyAoIkZvcmNpbmcgRFNDIGVuYWJsZSBvbiAlc1xuIiwgdGVzdF9jb25uZWN0b3JfbmFt ZSk7Cj4gKwlyZXQgPSBpZ3Rfc3lzZnNfd3JpdGUoZGF0YS0+ZGVidWdmc19mZCwgZmlsZV9uYW1l LCAiMSIsIDEpOwo+ICsJaWd0X2Fzc2VydF9mKHJldCA+IDAsICJkZWJ1Z2ZzX3dyaXRlIGZhaWxl ZCIpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBjbGVhcl9kcF9kc2NfZW5hYmxlKGRhdGFfdCAq ZGF0YSwgY2hhciAqdGVzdF9jb25uZWN0b3JfbmFtZSkKPiArewo+ICsJY2hhciBmaWxlX25hbWVb MTI4XSA9IHswfTsKPiArCWludCByZXQ7Cj4gKwo+ICsJc3RyY3B5KGZpbGVfbmFtZSwgdGVzdF9j b25uZWN0b3JfbmFtZSk7Cj4gKwlzdHJjYXQoZmlsZV9uYW1lLCAiL2k5MTVfZHNjX3N1cHBvcnQi KTsKPiArCWlndF9kZWJ1ZyAoIkNsZWFyaW5nIERTQyBlbmFibGUgb24gJXNcbiIsIHRlc3RfY29u bmVjdG9yX25hbWUpOwo+ICsJcmV0ID0gaWd0X3N5c2ZzX3dyaXRlKGRhdGEtPmRlYnVnZnNfZmQs IGZpbGVfbmFtZSwgIjAiLCAxKTsKPiArCWlndF9hc3NlcnRfZihyZXQgPiAwLCAiZGVidWdmc193 cml0ZSBmYWlsZWQiKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgdGVzdF9jbGVhbnVwKGRhdGFf dCAqZGF0YSkgewo+ICsJaWd0X3BsYW5lX3QgKnByaW1hcnk7Cj4gKwo+ICsJcHJpbWFyeSA9IGln dF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUoZGF0YS0+b3V0cHV0LAo+ICsJCQkJCSAgICBEUk1fUExB TkVfVFlQRV9QUklNQVJZKTsKPiArCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgTlVMTCk7Cj4g KwlpZ3RfZGlzcGxheV9jb21taXQoJmRhdGEtPmRpc3BsYXkpOwo+ICsKPiArCWlndF9yZW1vdmVf ZmIoZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+ZmJfdGVzdF9wYXR0ZXJuKTsKPiArfQo+ICsKPiArCj4g Ky8qCj4gKyAqIFJlLXByb2JlIGNvbm5lY3RvcnMgYW5kIGRvIGEgbW9kZXNldCB3aXRoIERTQwo+ ICsgKgo+ICsgKi8KPiArc3RhdGljIHZvaWQgdXBkYXRlX2Rpc3BsYXkoZGF0YV90ICpkYXRhLCBl bnVtIGRzY190ZXN0X3R5cGUgdGVzdF90eXBlKQo+ICt7Cj4gKwlpZ3RfcGxhbmVfdCAqcHJpbWFy eTsKPiArCWNoYXIgY29ubl9idWZbMTI4XTsKPiArCWRhdGEtPm1vZGUgPSBpZ3Rfb3V0cHV0X2dl dF9tb2RlKGRhdGEtPm91dHB1dCk7Cj4gKwlkYXRhLT5jb25uZWN0b3IgPSBkYXRhLT5vdXRwdXQt PmNvbmZpZy5jb25uZWN0b3I7Cj4gKwo+ICsJc3ByaW50Zihjb25uX2J1ZiwgIiVzLSVkIiwKPiAr CQlrbXN0ZXN0X2Nvbm5lY3Rvcl90eXBlX3N0cihkYXRhLT5jb25uZWN0b3ItPmNvbm5lY3Rvcl90 eXBlKSwKPiArCQlkYXRhLT50ZXN0X2Nvbm5fY250KTsKPiArCWlmICghaXNfZHBfZHNjX3N1cHBv cnRlZChkYXRhLCBjb25uX2J1ZikpIHsKPiArCQlpZ3RfZGVidWcoIkRTQyBub3Qgc3VwcG9ydGVk IG9uIGNvbm5lY3RvciAlcyBvbiAlc1xuIiwKPiArCQkJICBjb25uX2J1ZiwKPiArCQkJICBrbXN0 ZXN0X3BpcGVfbmFtZShkYXRhLT5waXBlKSk7Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsKPiArCWlm ICh0ZXN0X3R5cGUgPT0gdGVzdF9iYXNpY19kc2NfZW5hYmxlKSB7Cj4gKwkJaWd0X2RlYnVnICgi RFNDIGlzIHN1cHBvcnRlZCBvbiAlc1xuIiwKPiArCQkJICAgY29ubl9idWYpOwo+ICsJCWZvcmNl X2RwX2RzY19lbmFibGUoZGF0YSwgY29ubl9idWYpOwo+ICsJCWlndF9jcmVhdGVfcGF0dGVybl9m YihkYXRhLT5kcm1fZmQsIGRhdGEtPm1vZGUtPmhkaXNwbGF5LAo+ICsJCQkJICAgICAgZGF0YS0+ bW9kZS0+dmRpc3BsYXksCj4gKwkJCQkgICAgICBEUk1fRk9STUFUX1hSR0I4ODg4LAo+ICsJCQkJ ICAgICAgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwKPiArCQkJCSAgICAgICZkYXRhLT5mYl90 ZXN0X3BhdHRlcm4pOwo+ICsJCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKGRh dGEtPm91dHB1dCwKPiArCQkJCQkJICAgIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwo+ICsJCWln dF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgJmRhdGEtPmZiX3Rlc3RfcGF0dGVybik7Cj4gKwkJaWd0 X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKPiArCQkvKiBVbnRpbCB3ZSBoYXZlIENS QyBjaGVjayBzdXBwb3J0LCBtYW51YWxseSBjaGVjayBpZiBSR0IgdGVzdCBwYXR0ZXJuIGhhcyBu byBjb3JydXB0aW9uICovCj4gKwkJbWFudWFsICgiUkdCIHRlc3QgcGF0dGVybiB3aXRob3V0IGNv cnJ1cHRpb24iKTsKPiArCQlpZ3RfYXNzZXJ0X2YoaXNfZHBfZHNjX2VuYWJsZWQoZGF0YSwgY29u bl9idWYpLAo+ICsJCQkgICAgICJEZWZhdWx0IERTQyBlbmFibGUgZmFpbGVkIG9uIENvbm5lY3Rv cjogJXMgUGlwZTogJXMiLAo+ICsJCQkgICAgIGNvbm5fYnVmLAo+ICsJCQkgICAgIGttc3Rlc3Rf cGlwZV9uYW1lKGRhdGEtPnBpcGUpKTsKPiArCQljbGVhcl9kcF9kc2NfZW5hYmxlKGRhdGEsIGNv bm5fYnVmKTsKPiArCX0KPiArCj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHJ1bl90ZXN0KGRhdGFf dCAqZGF0YSwgaWd0X291dHB1dF90ICpvdXRwdXQsCj4gKwkJICAgICBlbnVtIGRzY190ZXN0X3R5 cGUgdGVzdF90eXBlKQo+ICt7Cj4gKwllbnVtIHBpcGUgcGlwZTsKPiArCj4gKwlmb3JfZWFjaF9w aXBlX3dpdGhfdmFsaWRfb3V0cHV0KCZkYXRhLT5kaXNwbGF5LCBwaXBlLCBvdXRwdXQpIHsKPiAr CQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZSk7Cj4gKwkJZGF0YS0+cGlwZSA9IHBp cGU7Cj4gKwkJZGF0YS0+b3V0cHV0ID0gb3V0cHV0Owo+ICsJCXVwZGF0ZV9kaXNwbGF5KGRhdGEs IHRlc3RfYmFzaWNfZHNjX2VuYWJsZSk7Cj4gKwl9Cj4gK30KPiArCj4gK2lndF9tYWluCj4gK3sK PiArCWRhdGFfdCBkYXRhID0ge307Cj4gKwlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKPiArCWRybU1v ZGVSZXMgKnJlczsKPiArCWRybU1vZGVDb25uZWN0b3IgKmNvbm5lY3RvcjsKPiArCWludCBpLCB0 ZXN0X2Nvbm5fY250LCBkZXZpZDsKPiArCj4gKwlpZ3RfZml4dHVyZSB7Cj4gKwkJaWd0X3NraXBf b25fc2ltdWxhdGlvbigpOwo+ICsJCWRhdGEuZHJtX2ZkID0gZHJtX29wZW5fZHJpdmVyX21hc3Rl cihEUklWRVJfQU5ZKTsKPiArCQlkYXRhLmRlYnVnZnNfZmQgPSBpZ3RfZGVidWdmc19kaXIoZGF0 YS5kcm1fZmQpOwo+ICsJCWRldmlkID0gaW50ZWxfZ2V0X2RybV9kZXZpZChkYXRhLmRybV9mZCk7 Cj4gKwkJaWd0X3JlcXVpcmUoQVRfTEVBU1RfR0VOKGRldmlkLCAxMCkpOwo+ICsJCWttc3Rlc3Rf c2V0X3Z0X2dyYXBoaWNzX21vZGUoKTsKPiArCQlpZ3RfZGlzcGxheV9pbml0KCZkYXRhLmRpc3Bs YXksIGRhdGEuZHJtX2ZkKTsKPiArCQlpZ3RfZGlzcGxheV9yZXF1aXJlX291dHB1dCgmZGF0YS5k aXNwbGF5KTsKPiArCQlpZ3RfcmVxdWlyZShyZXMgPSBkcm1Nb2RlR2V0UmVzb3VyY2VzKGRhdGEu ZHJtX2ZkKSk7Cj4gKwl9Cj4gKwo+ICsJaWd0X3N1YnRlc3QoImJhc2ljLWRzYy1lbmFibGUtZURQ Iikgewo+ICsJCXRlc3RfY29ubl9jbnQgPSAwOwo+ICsJCWZvciAoaSA9IDA7IGkgPCByZXMtPmNv dW50X2Nvbm5lY3RvcnM7IGkrKykgewo+ICsJCQljb25uZWN0b3IgPSBkcm1Nb2RlR2V0Q29ubmVj dG9yQ3VycmVudChkYXRhLmRybV9mZCwKPiArCQkJCQkJCSAgICAgICByZXMtPmNvbm5lY3RvcnNb aV0pOwo+ICsJCQlpZiAoY29ubmVjdG9yLT5jb25uZWN0aW9uICE9IERSTV9NT0RFX0NPTk5FQ1RF RCB8fAo+ICsJCQkgICAgY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSAhPSBEUk1fTU9ERV9DT05O RUNUT1JfZURQKQo+ICsJCQkJY29udGludWU7Cj4gKwkJCWRhdGEudGVzdF9jb25uX2NudCA9ICsr dGVzdF9jb25uX2NudDsKPiArCQkJb3V0cHV0ID0gaWd0X291dHB1dF9mcm9tX2Nvbm5lY3Rvcigm ZGF0YS5kaXNwbGF5LCBjb25uZWN0b3IpOwo+ICsJCQlydW5fdGVzdCgmZGF0YSwgb3V0cHV0LCB0 ZXN0X2Jhc2ljX2RzY19lbmFibGUpOwo+ICsJCX0KPiArCQl0ZXN0X2NsZWFudXAoJmRhdGEpOwo+ ICsJCWlndF9za2lwX29uKHRlc3RfY29ubl9jbnQgPT0gMCk7Cj4gKwl9Cj4gKwo+ICsJaWd0X3N1 YnRlc3QoImJhc2ljLWRzYy1lbmFibGUtRFAiKSB7Cj4gKwkJdGVzdF9jb25uX2NudCA9IDA7Cj4g KwkJZm9yIChpID0gMDsgaSA8IHJlcy0+Y291bnRfY29ubmVjdG9yczsgaSsrKSB7Cj4gKwkJCWNv bm5lY3RvciA9IGRybU1vZGVHZXRDb25uZWN0b3JDdXJyZW50KGRhdGEuZHJtX2ZkLAo+ICsJCQkJ CQkJICAgICAgIHJlcy0+Y29ubmVjdG9yc1tpXSk7Cj4gKwkJCWlmIChjb25uZWN0b3ItPmNvbm5l Y3Rpb24gIT0gRFJNX01PREVfQ09OTkVDVEVEIHx8Cj4gKwkJCSAgICBjb25uZWN0b3ItPmNvbm5l Y3Rvcl90eXBlICE9IERSTV9NT0RFX0NPTk5FQ1RPUl9EaXNwbGF5UG9ydCkKPiArCQkJCWNvbnRp bnVlOwo+ICsJCQlkYXRhLnRlc3RfY29ubl9jbnQgPSB0ZXN0X2Nvbm5fY250Kys7Cj4gKwkJCW91 dHB1dCA9IGlndF9vdXRwdXRfZnJvbV9jb25uZWN0b3IoJmRhdGEuZGlzcGxheSwgY29ubmVjdG9y KTsKPiArCQkJcnVuX3Rlc3QoJmRhdGEsIG91dHB1dCwgdGVzdF9iYXNpY19kc2NfZW5hYmxlKTsK PiArCQl9Cj4gKwkJdGVzdF9jbGVhbnVwKCZkYXRhKTsKPiArCQlpZ3Rfc2tpcF9vbih0ZXN0X2Nv bm5fY250ID09IDApOwo+ICsJfQoKUmVmYWN0b3IgdGhpcyBkdXBsaWNhdGlvbiBhIGJpdC4KCkEg Zm9yIGxvb3Agb3ZlciBhbiBhcnJheSBvZiAobmFtZSwgdHlwZSkgYW5kCgppZ3Rfc3VidGVzdF9m KCJiYXNpYy1kc2MtZW5hYmxlLSVzIiwgbmFtZSkgewogLi4uCiBpZiAoY29ubmVjdG9yLT5jb25u ZWN0b3JfdHlwZSAhPSB0eXBlKQogLi4uCn0KClRoZSBuYW1lIGFuZCBjb25uZWN0b3IgdHlwZSBh cmUgdHdvIG91dCBvZiB0aGUgdGhyZWUgZGlmZmVyZW5jZXMgaW4KdGhlIHN1YnRlc3QgY29kZSB0 aGF0IEkgY2FuIHNwb3QsIGFuZCBJIGNhbid0IHNlZSBhIHJlYXNvbiBmb3IgdGhlCnRoaXJkLgoK Ci0tIApQZXRyaSBMYXR2YWxhCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRl dgo=