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 08E246F671 for ; Fri, 21 Dec 2018 12:14:52 +0000 (UTC) Date: Fri, 21 Dec 2018 14:14:49 +0200 From: Petri Latvala Message-ID: <20181221121449.GV17124@platvala-desk.ger.corp.intel.com> References: <20181220191046.1207-1-anusha.srivatsa@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20181220191046.1207-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: T24gVGh1LCBEZWMgMjAsIDIwMTggYXQgMTE6MTA6NDZBTSAtMDgwMCwgQW51c2hhIHdyb3RlOgo+ IEZyb206IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4gCj4gVGhp cyBwYXRjaCBhZGRzIGEgYmFzaWMga21zIHRlc3QgdG8gdmFsaWRhdGUgdGhlIGRpc3BsYXkgc3Ry ZWFtCj4gY29tcHJlc3Npb24gZnVuY3Rpb25hbGl0eSBpZiBzdXBwb3J0ZWQgb24gRFAvZURQIGNv bm5lY3Rvci4KPiBDdXJyZW50bHkgdGhpcyBoYXMgb25seSB0d28gc3VidGVzdHMgdG8gZm9yY2Ug dGhlIERTQyBvbiBhbGwKPiB0aGUgZURQIGFuZCBEUCBjb25uZWN0b3JzIHRoYXQgc3VwcG9ydCBp dCB3aXRoIGRlZmF1bHQgcGFyYW1ldGVycy4KPiBUaGlzIHdpbGwgYmUgZXhwYW5kZWQgdG8gYWRk IG1vcmUgc3VidGVzdHMgdG8gdHdlYWsgRFNDIHBhcmFtZXRlcnMuCj4gCj4gdjc6IChmcm9tIEFu dXNoYSkKPiAqIENvZGUgU3R5bGUgY2hhbmdlcy4oUGV0cmkpCj4gKiBVc2UgZm9yX2VhY2hfcGlw ZSgpIGluc3RlYWQgb2YgZm9yX2VhY2hfcGlwZV9zdGF0aWMoKS4oUGV0cmkpCj4gKiBDb3JyZWN0 IGxvZ2ljIGJ5IGF2b2lkaW5nIHNraXBwaW5nIG9mIGlubmVyIGZvciBsb29wIGNvbXBsZXRlbHku KFBldHJpKQo+IHY2OiAoZnJvbSBBbnVzaGEpCj4gKiBGaXggcnVuX3Rlc3QoKSAoUGV0cmkpCj4g KiBGaXggdXBkYXRlX2Rpc3BsYXkoKSB0byBhdm9pZCBsZWFrcy4gKFBldHJpKQo+IHY1Ogo+ICog Rml4IHRlc3QgY2xlYW51cCB0byBhdm9pZCBjcmFzaCAoUGV0cmkpCj4gdjQ6Cj4gKiBGdXR1cmUg cHJvb2YgZm9yIG1vcmUgdGVzdCB0eXBlcyAoUGV0cmkpCj4gKiBGaXggYWxwaGFiZXRpY2FsIG9y ZGVyIChQZXRyaSkKPiAqIHMvaWd0X2Rpc3BsYXlfaW5pdC9pZ3RfZGlzcGxheV9yZXF1aXJlIChQ ZXRyaSkKPiAqIFJlbW92ZSBibGFuayBsaW5lcyBhZnRlciByZXR1cm4gKFBldHJpKQo+IHYzOgo+ ICogVXNlIGFycmF5IG9mIGNvbm5lY3RvcnMgYW5kIGxvb3AgdGhyb3VnaCAoUGV0cmkpCj4gKiBB bHNvIGNoZWNrIGZvciBGRUMgb24gRFAgY29ubmVjdG9ycyAoTWFuYXNpKQo+ICogQWRkIGEgUGlw ZV9BIHJlc3RyaWN0aW9uIG9uIERQIChWaWxsZSkKPiB2MjoKPiAqIFVzZSBJR1Qgd3JhcHBlcnMg Zm9yIGFsbCAoREssIEFudG9uaW8pCj4gKiBTcGxpdCBpbnRvIHR3byBzdWJ0ZXN0cyBmb3IgZURQ IGFuZCBEUCB0eXBlcyAoUGV0cmkpCj4gCj4gQ2M6IFBldHJpIExhdHZhbGEgPHBldHJpLmxhdHZh bGFAaW50ZWwuY29tPgo+IENjOiBBbnRvbmlvIEFyZ2Vuemlhbm8gPGFudG9uaW8uYXJnZW56aWFu b0BpbnRlbC5jb20+Cj4gQ2M6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4ucGFuZGl5 YW5AaW50ZWwuY29tPgo+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgo+IENjOiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5j b20+Cj4gU2lnbmVkLW9mZi1ieTogQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50 ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBp bnRlbC5jb20+Cj4gLS0tCj4gIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgfCAgIDEgKwo+ICB0ZXN0 cy9rbXNfZHBfZHNjLmMgICAgIHwgMjY2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCj4gIHRlc3RzL21lc29uLmJ1aWxkICAgICAgfCAgIDEgKwo+ICAzIGZpbGVzIGNo YW5nZWQsIDI2OCBpbnNlcnRpb25zKCspCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9rbXNf ZHBfZHNjLmMKPiAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcyBiL3Rlc3Rz L01ha2VmaWxlLnNvdXJjZXMKPiBpbmRleCBlZWRkZTFlOC4uYTNjMjRjOTkgMTAwNjQ0Cj4gLS0t IGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcwo+ICsrKyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMK PiBAQCAtNTQsNiArNTQsNyBAQCBURVNUU19wcm9ncyA9IFwKPiAgCWttc19jcnRjX2JhY2tncm91 bmRfY29sb3IgXAo+ICAJa21zX2N1cnNvcl9jcmMgXAo+ICAJa21zX2N1cnNvcl9sZWdhY3kgXAo+ ICsJa21zX2RwX2RzYyBcCj4gIAlrbXNfZHJhd19jcmMgXAo+ICAJa21zX2ZiY29uX2ZidCBcCj4g IAlrbXNfZmVuY2VfcGluX2xlYWsgXAo+IGRpZmYgLS1naXQgYS90ZXN0cy9rbXNfZHBfZHNjLmMg Yi90ZXN0cy9rbXNfZHBfZHNjLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAw MDAwLi5jOWEzODdlZAo+IC0tLSAvZGV2L251bGwKPiArKysgYi90ZXN0cy9rbXNfZHBfZHNjLmMK PiBAQCAtMCwwICsxLDI2NiBAQAo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgwqkgMjAxOCBJbnRlbCBD b3Jwb3JhdGlvbgo+ICsgKgo+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVl IG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ICsgKiBjb3B5IG9mIHRoaXMg c29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2Fy ZSIpLAo+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBp bmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5 LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+ICsgKiBh bmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMg dG8gd2hvbSB0aGUKPiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0 IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiArICoKPiArICogVGhlIGFib3ZlIGNvcHly aWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4 dAo+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vi c3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4gKyAqIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUg U09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO RCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRP IFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxM Cj4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5Z IENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBB Q1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4gKyAqIEZST00s IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1Ig T1RIRVIgREVBTElOR1MKPiArICogSU4gVEhFIFNPRlRXQVJFLgo+ICsgKgo+ICsgKiBEaXNwbGF5 cG9ydCBEaXNwbGF5IFN0cmVhbSBDb21wcmVzc2lvbiB0ZXN0Cj4gKyAqIFVudGlsIHRoZSBDUkMg c3VwcG9ydCBpcyBhZGRlZCB0aGlzIG5lZWRzIHRvIGJlIGludm9rZWQgd2l0aCAtLWludGVyYWN0 aXZlCj4gKyAqIHRvIG1hbnVhbGx5IHZlcmlmeSBpZiB0aGUgdGVzdCBwYXR0ZXJuIGlzIHNlZW4g d2l0aG91dCBjb3JydXB0aW9uIGZvciBlYWNoCj4gKyAqIHN1YnRlc3QuCj4gKyAqCj4gKyAqIEF1 dGhvcnM6Cj4gKyAqIE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4g KyAqCj4gKyAqLwo+ICsjaW5jbHVkZSAiaWd0LmgiCj4gKyNpbmNsdWRlICJpZ3Rfc3lzZnMuaCIK PiArI2luY2x1ZGUgPGVycm5vLmg+Cj4gKyNpbmNsdWRlIDxnZXRvcHQuaD4KPiArI2luY2x1ZGUg PG1hdGguaD4KPiArI2luY2x1ZGUgPHN0ZGludC5oPgo+ICsjaW5jbHVkZSA8c3RkYm9vbC5oPgo+ ICsjaW5jbHVkZSA8c3RyaW5ncy5oPgo+ICsjaW5jbHVkZSA8dW5pc3RkLmg+Cj4gKyNpbmNsdWRl IDxzdGRsaWIuaD4KPiArI2luY2x1ZGUgPHNpZ25hbC5oPgo+ICsjaW5jbHVkZSA8dGltZS5oPgo+ ICsjaW5jbHVkZSA8ZmNudGwuaD4KPiArI2luY2x1ZGUgPHRlcm1pb3MuaD4KPiArCj4gK2VudW0g ZHNjX3Rlc3RfdHlwZQo+ICt7Cj4gKwl0ZXN0X2Jhc2ljX2RzY19lbmFibGUKPiArfTsKPiArCj4g K3R5cGVkZWYgc3RydWN0IHsKPiArCWludCBkcm1fZmQ7Cj4gKwlpbnQgZGVidWdmc19mZDsKPiAr CXVpbnQzMl90IGlkOwo+ICsJaWd0X2Rpc3BsYXlfdCBkaXNwbGF5Owo+ICsJc3RydWN0IGlndF9m YiBmYl90ZXN0X3BhdHRlcm47Cj4gKwlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKPiArCWludCBtb2Rl X3ZhbGlkOwo+ICsJZHJtTW9kZU1vZGVJbmZvICptb2RlOwo+ICsJZHJtTW9kZUNvbm5lY3RvciAq Y29ubmVjdG9yOwo+ICsJZHJtTW9kZUVuY29kZXIgKmVuY29kZXI7Cj4gKwlpbnQgY3J0YzsKPiAr CWVudW0gcGlwZSBwaXBlOwo+ICsJY2hhciBjb25uX25hbWVbMTI4XTsKPiArfSBkYXRhX3Q7Cj4g Kwo+ICtzdGF0aWMgaW5saW5lIHZvaWQgbWFudWFsKGNvbnN0IGNoYXIgKmV4cGVjdGVkKQo+ICt7 Cj4gKwlpZ3RfZGVidWdfbWFudWFsX2NoZWNrKCJhbGwiLCBleHBlY3RlZCk7Cj4gK30KPiArCj4g K3N0YXRpYyBib29sIGlzX2RwX2RzY19zdXBwb3J0ZWQoZGF0YV90ICpkYXRhKQo+ICt7Cj4gKwlj aGFyIGZpbGVfbmFtZVsxMjhdID0gezB9Owo+ICsJY2hhciBidWZbNTEyXTsKPiArCj4gKwlzdHJj cHkoZmlsZV9uYW1lLCBkYXRhLT5jb25uX25hbWUpOwo+ICsJc3RyY2F0KGZpbGVfbmFtZSwgIi9p OTE1X2RzY19mZWNfc3VwcG9ydCIpOwo+ICsJaWd0X3JlcXVpcmUoaWd0X2RlYnVnZnNfc2ltcGxl X3JlYWQoZGF0YS0+ZGVidWdmc19mZCwgZmlsZV9uYW1lLCBidWYsCj4gKwkJCQkJICAgIHNpemVv ZihidWYpKSA+IDApOwo+ICsJaWd0X2RlYnVnZnNfcmVhZChkYXRhLT5kcm1fZmQsIGZpbGVfbmFt ZSwgYnVmKTsKPiArCj4gKwlyZXR1cm4gc3Ryc3RyKGJ1ZiwgIkRTQ19TaW5rX1N1cHBvcnQ6IHll cyIpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbCBpc19kcF9mZWNfc3VwcG9ydGVkKGRhdGFfdCAq ZGF0YSkKPiArewo+ICsJY2hhciBmaWxlX25hbWVbMTI4XSA9IHswfTsKPiArCWNoYXIgYnVmWzUx Ml07Cj4gKwo+ICsJc3RyY3B5KGZpbGVfbmFtZSwgZGF0YS0+Y29ubl9uYW1lKTsKPiArCXN0cmNh dChmaWxlX25hbWUsICIvaTkxNV9kc2NfZmVjX3N1cHBvcnQiKTsKPiArCWlndF9kZWJ1Z2ZzX3Jl YWQoZGF0YS0+ZHJtX2ZkLCBmaWxlX25hbWUsIGJ1Zik7Cj4gKwo+ICsJcmV0dXJuIHN0cnN0cihi dWYsICJGRUNfU2lua19TdXBwb3J0OiB5ZXMiKTsKPiArfQo+ICsKPiArc3RhdGljIGJvb2wgaXNf ZHBfZHNjX2VuYWJsZWQoZGF0YV90ICpkYXRhKQo+ICt7Cj4gKwljaGFyIGZpbGVfbmFtZVsxMjhd ID0gezB9Owo+ICsJY2hhciBidWZbNTEyXTsKPiArCj4gKwlzdHJjcHkoZmlsZV9uYW1lLCBkYXRh LT5jb25uX25hbWUpOwo+ICsJc3RyY2F0KGZpbGVfbmFtZSwgIi9pOTE1X2RzY19mZWNfc3VwcG9y dCIpOwo+ICsJaWd0X2RlYnVnZnNfcmVhZChkYXRhLT5kcm1fZmQsIGZpbGVfbmFtZSwgYnVmKTsK PiArCj4gKwlyZXR1cm4gc3Ryc3RyKGJ1ZiwgIkRTQ19FbmFibGVkOiB5ZXMiKTsKPiArfQo+ICsK PiArc3RhdGljIHZvaWQgZm9yY2VfZHBfZHNjX2VuYWJsZShkYXRhX3QgKmRhdGEpCj4gK3sKPiAr CWNoYXIgZmlsZV9uYW1lWzEyOF0gPSB7MH07Cj4gKwlpbnQgcmV0Owo+ICsKPiArCXN0cmNweShm aWxlX25hbWUsIGRhdGEtPmNvbm5fbmFtZSk7Cj4gKwlzdHJjYXQoZmlsZV9uYW1lLCAiL2k5MTVf ZHNjX2ZlY19zdXBwb3J0Iik7Cj4gKwlpZ3RfZGVidWcgKCJGb3JjaW5nIERTQyBlbmFibGUgb24g JXNcbiIsIGRhdGEtPmNvbm5fbmFtZSk7Cj4gKwlyZXQgPSBpZ3Rfc3lzZnNfd3JpdGUoZGF0YS0+ ZGVidWdmc19mZCwgZmlsZV9uYW1lLCAiMSIsIDEpOwo+ICsJaWd0X2Fzc2VydF9mKHJldCA+IDAs ICJkZWJ1Z2ZzX3dyaXRlIGZhaWxlZCIpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBjbGVhcl9k cF9kc2NfZW5hYmxlKGRhdGFfdCAqZGF0YSkKPiArewo+ICsJY2hhciBmaWxlX25hbWVbMTI4XSA9 IHswfTsKPiArCWludCByZXQ7Cj4gKwo+ICsJc3RyY3B5KGZpbGVfbmFtZSwgZGF0YS0+Y29ubl9u YW1lKTsKPiArCXN0cmNhdChmaWxlX25hbWUsICIvaTkxNV9kc2NfZmVjX3N1cHBvcnQiKTsKPiAr CWlndF9kZWJ1ZyAoIkNsZWFyaW5nIERTQyBlbmFibGUgb24gJXNcbiIsIGRhdGEtPmNvbm5fbmFt ZSk7Cj4gKwlyZXQgPSBpZ3Rfc3lzZnNfd3JpdGUoZGF0YS0+ZGVidWdmc19mZCwgZmlsZV9uYW1l LCAiMCIsIDEpOwo+ICsJaWd0X2Fzc2VydF9mKHJldCA+IDAsICJkZWJ1Z2ZzX3dyaXRlIGZhaWxl ZCIpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCB0ZXN0X2NsZWFudXAoZGF0YV90ICpkYXRhKSB7 Cj4gKwlpZ3RfcGxhbmVfdCAqcHJpbWFyeTsKPiArCj4gKwlpZiAoZGF0YS0+b3V0cHV0KSB7Cj4g KwkJcHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUoZGF0YS0+b3V0cHV0LAo+ICsJ CQkJCQkgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7Cj4gKwkJaWd0X3BsYW5lX3NldF9mYihw cmltYXJ5LCBOVUxMKTsKPiArCQlpZ3RfZGlzcGxheV9jb21taXQoJmRhdGEtPmRpc3BsYXkpOwo+ ICsKPiArCQlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiX3Rlc3RfcGF0dGVy bik7Cj4gKwl9Cj4gK30KPiArCj4gKwo+ICsvKgo+ICsgKiBSZS1wcm9iZSBjb25uZWN0b3JzIGFu ZCBkbyBhIG1vZGVzZXQgd2l0aCBEU0MKPiArICoKPiArICovCj4gK3N0YXRpYyB2b2lkIHVwZGF0 ZV9kaXNwbGF5KGRhdGFfdCAqZGF0YSwgZW51bSBkc2NfdGVzdF90eXBlIHRlc3RfdHlwZSkKPiAr ewo+ICsJaWd0X3BsYW5lX3QgKnByaW1hcnk7Cj4gKwlkYXRhLT5tb2RlID0gaWd0X291dHB1dF9n ZXRfbW9kZShkYXRhLT5vdXRwdXQpOwo+ICsJZGF0YS0+Y29ubmVjdG9yID0gZGF0YS0+b3V0cHV0 LT5jb25maWcuY29ubmVjdG9yOwo+ICsKPiArCWlmIChkYXRhLT5jb25uZWN0b3ItPmNvbm5lY3Rv cl90eXBlID09IERSTV9NT0RFX0NPTk5FQ1RPUl9EaXNwbGF5UG9ydCAmJgo+ICsJICAgIGRhdGEt PnBpcGUgPT0gUElQRV9BKSB7Cj4gKwkJaWd0X2RlYnVnICgiRFNDIG5vdCBzdXBwb3J0ZWQgb24g UGlwZSBBIG9uIGV4dGVybmFsIERQXG4iKTsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gKwo+ICsJaWYg KHRlc3RfdHlwZSA9PSB0ZXN0X2Jhc2ljX2RzY19lbmFibGUpIHsKPiArCQlpZ3RfZGVidWcgKCJE U0MgaXMgc3VwcG9ydGVkIG9uICVzXG4iLAo+ICsJCQkgICBkYXRhLT5jb25uX25hbWUpOwo+ICsJ CWZvcmNlX2RwX2RzY19lbmFibGUoZGF0YSk7Cj4gKwkJLyogQ2xlYXIgdGhlIGZiIGluIG9yZGVy IHRvIGF2b2lkIGxlYWtzICovCj4gKwkJaWd0X3JlbW92ZV9mYihkYXRhLT5kcm1fZmQsICZkYXRh LT5mYl90ZXN0X3BhdHRlcm4pOwo+ICsJCWlndF9jcmVhdGVfcGF0dGVybl9mYihkYXRhLT5kcm1f ZmQsIGRhdGEtPm1vZGUtPmhkaXNwbGF5LAo+ICsJCQkJICAgICAgZGF0YS0+bW9kZS0+dmRpc3Bs YXksCj4gKwkJCQkgICAgICBEUk1fRk9STUFUX1hSR0I4ODg4LAo+ICsJCQkJICAgICAgTE9DQUxf RFJNX0ZPUk1BVF9NT0RfTk9ORSwKPiArCQkJCSAgICAgICZkYXRhLT5mYl90ZXN0X3BhdHRlcm4p Owo+ICsJCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKGRhdGEtPm91dHB1dCwK PiArCQkJCQkJICAgIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwo+ICsJCWlndF9wbGFuZV9zZXRf ZmIocHJpbWFyeSwgJmRhdGEtPmZiX3Rlc3RfcGF0dGVybik7Cj4gKwkJaWd0X2Rpc3BsYXlfY29t bWl0KCZkYXRhLT5kaXNwbGF5KTsKPiArCQkvKiBVbnRpbCB3ZSBoYXZlIENSQyBjaGVjayBzdXBw b3J0LCBtYW51YWxseSBjaGVjayBpZiBSR0IgdGVzdCBwYXR0ZXJuIGhhcyBubyBjb3JydXB0aW9u ICovCj4gKwkJbWFudWFsICgiUkdCIHRlc3QgcGF0dGVybiB3aXRob3V0IGNvcnJ1cHRpb24iKTsK PiArCQlpZ3RfYXNzZXJ0X2YoaXNfZHBfZHNjX2VuYWJsZWQoZGF0YSksCj4gKwkJCSAgICAgIkRl ZmF1bHQgRFNDIGVuYWJsZSBmYWlsZWQgb24gQ29ubmVjdG9yOiAlcyBQaXBlOiAlcyIsCj4gKwkJ CSAgICAgZGF0YS0+Y29ubl9uYW1lLAo+ICsJCQkgICAgIGttc3Rlc3RfcGlwZV9uYW1lKGRhdGEt PnBpcGUpKTsKPiArCQljbGVhcl9kcF9kc2NfZW5hYmxlKGRhdGEpOwo+ICsJfSBlbHNlIHsKPiAr CQlpZ3RfYXNzZXJ0KCEiVW5rbm93biB0ZXN0IHR5cGVcbiIpOwo+ICsJfQo+ICt9Cj4gKwo+ICtz dGF0aWMgdm9pZCBydW5fdGVzdChkYXRhX3QgKmRhdGEsIGlndF9vdXRwdXRfdCAqb3V0cHV0LAo+ ICsJCSAgICAgZW51bSBkc2NfdGVzdF90eXBlIHRlc3RfdHlwZSkKPiArewo+ICsJZW51bSBwaXBl IHBpcGU7Cj4gKwo+ICsJZm9yX2VhY2hfcGlwZSgmZGF0YS0+ZGlzcGxheSwgcGlwZSkgewo+ICsK PiArCQlpZiAoaWd0X3BpcGVfY29ubmVjdG9yX3ZhbGlkKHBpcGUsIG91dHB1dCkpIHsKPiArCQkJ aWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBpcGUpOwo+ICsJCQlkYXRhLT5waXBlID0gcGlw ZTsKPiArCQkJZGF0YS0+b3V0cHV0ID0gb3V0cHV0Owo+ICsJCQl1cGRhdGVfZGlzcGxheShkYXRh LCB0ZXN0X3R5cGUpOwo+ICsJCX0KPiArCX0KPiArfQo+ICsKPiAraWd0X21haW4KPiArewo+ICsJ ZGF0YV90IGRhdGEgPSB7fTsKPiArCWlndF9vdXRwdXRfdCAqb3V0cHV0Owo+ICsJZHJtTW9kZVJl cyAqcmVzOwo+ICsJZHJtTW9kZUNvbm5lY3RvciAqY29ubmVjdG9yOwo+ICsJaW50IGksIHRlc3Rf Y29ubl9jbnQsIHRlc3RfY250Owo+ICsJaW50IHRlc3RzW10gPSB7RFJNX01PREVfQ09OTkVDVE9S X2VEUCwgRFJNX01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQb3J0fTsKPiArCj4gKwlpZ3RfZml4dHVy ZSB7Cj4gKwkJZGF0YS5kcm1fZmQgPSBkcm1fb3Blbl9kcml2ZXJfbWFzdGVyKERSSVZFUl9BTlkp Owo+ICsJCWRhdGEuZGVidWdmc19mZCA9IGlndF9kZWJ1Z2ZzX2RpcihkYXRhLmRybV9mZCk7Cj4g KwkJa21zdGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9kZSgpOwo+ICsJCWlndF9kaXNwbGF5X3JlcXVp cmUoJmRhdGEuZGlzcGxheSwgZGF0YS5kcm1fZmQpOwo+ICsJCS8vaWd0X2Rpc3BsYXlfcmVxdWly ZV9vdXRwdXQoJmRhdGEuZGlzcGxheSk7Cj4gKwkJaWd0X3JlcXVpcmUocmVzID0gZHJtTW9kZUdl dFJlc291cmNlcyhkYXRhLmRybV9mZCkpOwo+ICsJfQo+ICsKPiArCWZvciAodGVzdF9jbnQgPSAw OyB0ZXN0X2NudCA8IEFSUkFZX1NJWkUodGVzdHMpOyB0ZXN0X2NudCsrKSB7Cj4gKwo+ICsJCWln dF9zdWJ0ZXN0X2YoImJhc2ljLWRzYy1lbmFibGUtJXMiLAo+ICsJCQkgICAgICBrbXN0ZXN0X2Nv bm5lY3Rvcl90eXBlX3N0cih0ZXN0c1t0ZXN0X2NudF0pKSB7Cj4gKwkJCXRlc3RfY29ubl9jbnQg PSAwOwo+ICsJCQlmb3IgKGkgPSAwOyBpIDwgcmVzLT5jb3VudF9jb25uZWN0b3JzOyBpKyspIHsK PiArCQkJCWNvbm5lY3RvciA9IGRybU1vZGVHZXRDb25uZWN0b3JDdXJyZW50KGRhdGEuZHJtX2Zk LAo+ICsJCQkJCQkJCSAgICAgICByZXMtPmNvbm5lY3RvcnNbaV0pOwo+ICsJCQkJaWYgKGNvbm5l Y3Rvci0+Y29ubmVjdGlvbiAhPSBEUk1fTU9ERV9DT05ORUNURUQgfHwKPiArCQkJCSAgICBjb25u ZWN0b3ItPmNvbm5lY3Rvcl90eXBlICE9Cj4gKwkJCQkgICAgdGVzdHNbdGVzdF9jbnRdKQo+ICsJ CQkJCWNvbnRpbnVlOwo+ICsJCQkJdGVzdF9jb25uX2NudCsrOwo+ICsJCQkJb3V0cHV0ID0gaWd0 X291dHB1dF9mcm9tX2Nvbm5lY3RvcigmZGF0YS5kaXNwbGF5LCBjb25uZWN0b3IpOwo+ICsJCQkJ c3ByaW50ZihkYXRhLmNvbm5fbmFtZSwgIiVzLSVkIiwKPiArCQkJCQlrbXN0ZXN0X2Nvbm5lY3Rv cl90eXBlX3N0cihjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlKSwKPiArCQkJCQl0ZXN0X2Nvbm5f Y250KTsKPiArCQkJCWlmKCFpc19kcF9kc2Nfc3VwcG9ydGVkKCZkYXRhKSkKPiArCQkJCQlpZ3Rf ZGVidWcoIkRTQyBub3Qgc3VwcG9ydGVkIG9uIGNvbm5lY3RvciAlcyBcbiIsCj4gKwkJCQkJCSAg ZGF0YS5jb25uX25hbWUpOwo+ICsJCQkJCWJyZWFrOwoKClRoaXMgc2hvdWxkIHJhdGhlciBiZSAn Y29udGludWUnLgoKCj4gKwkJCQlpZiAoY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSA9PSBEUk1f TU9ERV9DT05ORUNUT1JfRGlzcGxheVBvcnQpCj4gKwkJCQkJaWd0X3JlcXVpcmVfZihpc19kcF9m ZWNfc3VwcG9ydGVkKCZkYXRhKSwKPiArCQkJCQkJICAgICAgIkRTQyBjYW5ub3QgYmUgZW5hYmxl ZCB3aXRob3V0IEZFQyBvbiAlc1xuIiwKPiArCQkJCQkJICAgICAgZGF0YS5jb25uX25hbWUpOwo+ ICsJCQkJcnVuX3Rlc3QoJmRhdGEsIG91dHB1dCwgdGVzdF9iYXNpY19kc2NfZW5hYmxlKTsKCgou Li5hbmQgaW4gZmFjdCwgdGhlIHRlc3Qgc2hvdWxkIGNoZWNrIGlmIGl0IGdvdCBpbnRvIHRlc3Rp bmcgYW55CmNvbm5lY3RvcnMuIEFzIGluLCBhY3R1YWxseSBlbmRlZCB1cCBjYWxsaW5nIHJ1bl90 ZXN0KCkuCgoKCj4gKwkJCX0KPiArCQkJdGVzdF9jbGVhbnVwKCZkYXRhKTsKPiArCQkJaWd0X3Nr aXBfb24odGVzdF9jb25uX2NudCA9PSAwKTsKCkFuZCB0aGlzIHNraXBfb24gaXMgbWVhbnQgdG8g Y2hlY2sgZXhhY3RseSB0aGF0LiBUaGUgcG9pbnQgb2YgdGhpcyBpcwp0byBwcm9kdWNlIGEgU0tJ UCByZXN1bHQgaWYgbm8gRFAgY29ubmVjdG9ycyB3ZXJlIERTQyBjYXBhYmxlLgoKTWF5YmUgaW5j cmVtZW50IHRlc3RfY29ubl9jbnQgaW5zdGVhZCByaWdodCBiZWZvcmUgY2FsbGluZyBydW5fdGVz dCwKYW5kIHVzZSBjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlX2lkIGluc3RlYWQgb2YgdGVzdF9j b25uX2NudCB0bwpnZW5lcmF0ZSBkYXRhLmNvbm5fbmFtZT8KCgotLSAKUGV0cmkgTGF0dmFsYQpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1h aWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK