From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9687E10E468 for ; Tue, 31 Oct 2023 10:40:10 +0000 (UTC) From: "Hogander, Jouni" To: "Joshi, Kunal1" , "igt-dev@lists.freedesktop.org" Date: Tue, 31 Oct 2023 10:40:00 +0000 Message-ID: <092f55b945b50ae4634f2b8792f0190eef2859f9.camel@intel.com> References: <20231031080949.1145422-1-kunal1.joshi@intel.com> <20231031080949.1145422-3-kunal1.joshi@intel.com> In-Reply-To: <20231031080949.1145422-3-kunal1.joshi@intel.com> Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t 2/7] lib/igt_psr: modified psr_sink_support for pr compatability List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Murthy, Arun R" Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" List-ID: T24gVHVlLCAyMDIzLTEwLTMxIGF0IDEzOjM5ICswNTMwLCBLdW5hbCBKb3NoaSB3cm90ZToKPiBO ZXcgZGVidWdmcyBkaXJlY3RvcnkgZm9yIGFsbCBEUCBjb25uZWN0b3JzIHdpbGwgYmUgYWRkZWQK PiB3aXRoIGJlbG93IHBhdGNoIHNlcmllcwo+IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9w Lm9yZy9zZXJpZXMvOTQ0NzAvCj4gCj4gRm9yIERQIENvbm5lY3RvcnMKPiDCoMKgwqDCoMKgwqDC oMKgL3N5cy9rZXJuZWwvZGVidWcvZHJpLzAvRFAteC9pOTE1X3Bzcl9zdGF0dXMKPiAKPiBGb3Ig ZURQIENvbm5lY3RvcnMKPiDCoMKgwqDCoMKgwqDCoMKgL3N5cy9rZXJuZWwvZGVidWcvZHJpLzAv aTkxNV9lZHBfcHNyX3N0YXR1cwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoG9yCj4gwqDCoMKgwqDCoMKgwqDCoC9zeXMva2VybmVsL2RlYnVnL2RyaS8w L2VEUC14L2k5MTVfcHNyX3N0YXR1cwo+IAo+IHYyOiByZXVzZSBwc3Jfc2lua19zdXBwb3J0IChK b3VuaSkKPiAKPiBDYzogSm91bmkgSMO2Z2FuZGVyIDxqb3VuaS5ob2dhbmRlckBpbnRlbC5jb20+ Cj4gQ2M6IEFuaW1lc2ggTWFubmEgPGFuaW1lc2gubWFubmFAaW50ZWwuY29tPgo+IENjOiBBcnVu IFIgTXVydGh5IDxhcnVuLnIubXVydGh5QGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBLdW5h bCBKb3NoaSA8a3VuYWwxLmpvc2hpQGludGVsLmNvbT4KPiAtLS0KPiDCoGxpYi9pZ3RfcHNyLmPC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDU0ICsr KysrKysrKysrKysrKysrKy0tLS0tLQo+IC0tCj4gwqBsaWIvaWd0X3Bzci5owqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDMgKy0KPiDCoHRlc3Rz L2ludGVsL2ttc19kaXJ0eWZiLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMiArLQo+ IMKgdGVzdHMvaW50ZWwva21zX2ZiY29uX2ZidC5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAg NCArLQo+IMKgdGVzdHMvaW50ZWwva21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMgfMKgIDIgKy0K PiDCoHRlc3RzL2ludGVsL2ttc19wbV9kYy5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHzCoCA5ICsrKy0tCj4gwqB0ZXN0cy9pbnRlbC9rbXNfcHNyLmPCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHzCoCAyICstCj4gwqB0ZXN0cy9pbnRlbC9rbXNfcHNyMl9zZi5jwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDMgKy0KPiDCoHRlc3RzL2ludGVsL2ttc19wc3Iy X3N1LmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMyArLQo+IMKgdGVzdHMvaW50ZWwv a21zX3Bzcl9zdHJlc3NfdGVzdC5jwqDCoMKgwqDCoCB8wqAgMiArLQo+IMKgdGVzdHMva21zX2Zl YXR1cmVfZGlzY292ZXJ5LmPCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDQgKy0KPiDCoDExIGZpbGVz IGNoYW5nZWQsIDU3IGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1n aXQgYS9saWIvaWd0X3Bzci5jIGIvbGliL2lndF9wc3IuYwo+IGluZGV4IDEzZjdjNTY3ZC4uYWEz Y2E5ZGRiIDEwMDY0NAo+IC0tLSBhL2xpYi9pZ3RfcHNyLmMKPiArKysgYi9saWIvaWd0X3Bzci5j Cj4gQEAgLTE5MiwzMSArMTkyLDUxIEBAIGJvb2wgcHNyX2Rpc2FibGUoaW50IGRldmljZSwgaW50 IGRlYnVnZnNfZmQpCj4gwqDCoMKgwqDCoMKgwqDCoHJldHVybiBwc3Jfc2V0KGRldmljZSwgZGVi dWdmc19mZCwgLTEpOwo+IMKgfQo+IMKgCj4gLWJvb2wgcHNyX3Npbmtfc3VwcG9ydChpbnQgZGV2 aWNlLCBpbnQgZGVidWdmc19mZCwgZW51bSBwc3JfbW9kZQo+IG1vZGUpCj4gK2Jvb2wgcHNyX3Np bmtfc3VwcG9ydChpbnQgZGV2aWNlLCBpbnQgZGVidWdmc19mZCwgZW51bSBwc3JfbW9kZQo+IG1v ZGUsIGlndF9vdXRwdXRfdCAqb3V0cHV0KQo+IMKgewo+ICvCoMKgwqDCoMKgwqDCoGNoYXIgKmxp bmU7Cj4gK8KgwqDCoMKgwqDCoMKgY2hhciBkZWJ1Z2ZzX2ZpbGVbMTI4XSA9IHswfTsKPiDCoMKg wqDCoMKgwqDCoMKgY2hhciBidWZbUFNSX1NUQVRVU19NQVhfTEVOXTsKPiDCoMKgwqDCoMKgwqDC oMKgaW50IHJldDsKPiDCoAo+IC3CoMKgwqDCoMKgwqDCoHJldCA9IGlndF9kZWJ1Z2ZzX3NpbXBs ZV9yZWFkKGRlYnVnZnNfZmQsCj4gImk5MTVfZWRwX3Bzcl9zdGF0dXMiLCBidWYsCj4gK8KgwqDC oMKgwqDCoMKgaWYgKG91dHB1dCkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3By aW50ZihkZWJ1Z2ZzX2ZpbGUsICIlcy9pOTE1X3Bzcl9zdGF0dXMiLCBvdXRwdXQtCj4gPm5hbWUp Owo+ICvCoMKgwqDCoMKgwqDCoGVsc2UKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg c3ByaW50ZihkZWJ1Z2ZzX2ZpbGUsICIlcyIsICJpOTE1X2VkcF9wc3Jfc3RhdHVzIik7Cj4gKwo+ ICvCoMKgwqDCoMKgwqDCoHJldCA9IGlndF9kZWJ1Z2ZzX3NpbXBsZV9yZWFkKGRlYnVnZnNfZmQs IGRlYnVnZnNfZmlsZSwgYnVmLAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNpemVvZihidWYpKTsKPiDC oMKgwqDCoMKgwqDCoMKgaWYgKHJldCA8IDEpCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqByZXR1cm4gZmFsc2U7Cj4gwqAKPiAtwqDCoMKgwqDCoMKgwqBpZiAobW9kZSA9PSBQU1Jf TU9ERV8xKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gc3Ryc3RyKGJ1 ZiwgIlNpbmtfU3VwcG9ydDogeWVzXG4iKSB8fAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgc3Ryc3RyKGJ1ZiwgIlNpbmsgc3VwcG9ydDogeWVzIik7Cj4gLcKg wqDCoMKgwqDCoMKgZWxzZQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKgo+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBpOTE1IHJlcXVpcmVzIFBTUiB2ZXJzaW9u IDB4MDMgdGhhdCBpcyBQU1IyICsgU1UKPiB3aXRoCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAqIFktY29vcmRpbmF0ZSB0byBzdXBwb3J0IFBTUjIKPiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgICoKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogb3IK PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICoKPiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICogUFNSIHZlcnNpb24gMHg0IHRoYXQgaXMgUFNSMiArIFNVIHcvIFktY29v cmRpbmF0ZQo+IGFuZCBTVQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBSZWdp b24gRWFybHkgVHJhbnNwb3J0IHRvIHN1cHBvcnQgUFNSMiAoZURQIDEuNSkKPiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgICovCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oHJldHVybiBzdHJzdHIoYnVmLCAiU2luayBzdXBwb3J0OiB5ZXMgWzB4MDNdIikgfHwKPiAtwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnN0cihidWYsICJTaW5r IHN1cHBvcnQ6IHllcyBbMHgwNF0iKTsKPiArwqDCoMKgwqDCoMKgwqBsaW5lID0gc3Ryc3RyKGJ1 ZiwgIlNpbmsgc3VwcG9ydDogIik7Cj4gK8KgwqDCoMKgwqDCoMKgaWYgKCFsaW5lKQo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gZmFsc2U7Cj4gKwo+ICvCoMKgwqDCoMKg wqDCoHN3aXRjaCAobW9kZSkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjYXNl IFBTUl9NT0RFXzE6Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqByZXR1cm4gc3Ryc3RyKGxpbmUsICJQU1IgPSB5ZXMiKTsKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgY2FzZSBQU1JfTU9ERV8yOgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBjYXNlIFBTUl9NT0RFXzJfU0VMX0ZFVENIOgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyoKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIGk5MTUgcmVxdWlyZXMgUFNSIHZlcnNpb24gMHgwMyB0 aGF0IGlzCj4gUFNSMiArIFNVIHdpdGgKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAqIFktY29vcmRpbmF0ZSB0byBzdXBwb3J0IFBTUjIKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIG9yCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKgo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogUFNSIHZlcnNpb24gMHg0IHRoYXQg aXMgUFNSMiArIFNVIHcvIFktCj4gY29vcmRpbmF0ZSBhbmQgU1UKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIFJlZ2lvbiBFYXJseSBUcmFuc3BvcnQg dG8gc3VwcG9ydCBQU1IyCj4gKGVEUCAxLjUpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgKi8KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoHJldHVybiBzdHJzdHIobGluZSwgIlBTUiA9IHllcyIpICYmCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg KHN0cnN0cihsaW5lLCAiWzB4MDNdIikgfHwKPiBzdHJzdHIobGluZSwgIlsweDA0XSIpKTsKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY2FzZSBQUl9NT0RFOgo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIHN0cnN0cihsaW5lLCAi UGFuZWwgUmVwbGF5ID0geWVzIik7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNh c2UgUFJfTU9ERV9TRUxfRkVUQ0g6Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqByZXR1cm4gc3Ryc3RyKGxpbmUsICJQYW5lbCBSZXBsYXkgPSB5ZXMiKSAm Jgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHN0cnN0cihidWYsICJQU1IyIHNlbGVjdGl2ZSBmZXRjaDoKPiBlbmFibGVkIik7CgpJ IHRoaW5rIHRoaXMgaXNuJ3QgeWV0IGltcGxlbWVudGVkIG9uIGtlcm5lbCBzaWRlLCBidXQgSSB3 b3VsZCBhc3N1bWUKd2UgdXNlICJzZWxlY3RpdmUgdXBkYXRlIiBhbmQgbm90IFBTUjIuIFNlbGVj dGl2ZSBmZXRjaCBpcyBmZWF0dXJlIGluCm91ciBIVyB3aGljaCBjYW4gYmUgdXNlZCB3aGVuIGRv aW5nIHNlbGVjdGl2ZSB1cGRhdGVzLiBQYW5lbCBpc24ndAphd2FyZSBvZiBzZWxlY3RpdmUgZmV0 Y2ggZG9uZSBvbiBzb3VyY2Ugc2lkZS4KCkJSLApKb3VuaSBIw7ZnYW5kZXIKCiAKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGVmYXVsdDoKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9hc3NlcnRfZihmYWxzZSwgIkludmFsaWQgcHNy IG1vZGVcbiIpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgcmV0dXJuIGZhbHNlOwo+ICvCoMKgwqDCoMKgwqDCoH0KPiDCoH0KPiDCoAo+IMKgI2RlZmlu ZSBQU1IyX1NVX0JMT0NLX1NUUl9MT09LVVAgIlBTUjIgU1UgYmxvY2tzOlxuMFx0Igo+IGRpZmYg LS1naXQgYS9saWIvaWd0X3Bzci5oIGIvbGliL2lndF9wc3IuaAo+IGluZGV4IDI0MzE1NDg5Ny4u ZTIxM2IwNWU5IDEwMDY0NAo+IC0tLSBhL2xpYi9pZ3RfcHNyLmgKPiArKysgYi9saWIvaWd0X3Bz ci5oCj4gQEAgLTI3LDYgKzI3LDcgQEAKPiDCoCNpbmNsdWRlICJpZ3RfZGVidWdmcy5oIgo+IMKg I2luY2x1ZGUgImlndF9jb3JlLmgiCj4gwqAjaW5jbHVkZSAiaWd0X2F1eC5oIgo+ICsjaW5jbHVk ZSAiaWd0X2ttcy5oIgo+IMKgCj4gwqAjZGVmaW5lIFBTUl9TVEFUVVNfTUFYX0xFTiA1MTIKPiDC oAo+IEBAIC00Niw3ICs0Nyw3IEBAIGJvb2wgcHNyX3dhaXRfdXBkYXRlKGludCBkZWJ1Z2ZzX2Zk LCBlbnVtIHBzcl9tb2RlCj4gbW9kZSk7Cj4gwqBib29sIHBzcl9sb25nX3dhaXRfdXBkYXRlKGlu dCBkZWJ1Z2ZzX2ZkLCBlbnVtIHBzcl9tb2RlIG1vZGUpOwo+IMKgYm9vbCBwc3JfZW5hYmxlKGlu dCBkZXZpY2UsIGludCBkZWJ1Z2ZzX2ZkLCBlbnVtIHBzcl9tb2RlKTsKPiDCoGJvb2wgcHNyX2Rp c2FibGUoaW50IGRldmljZSwgaW50IGRlYnVnZnNfZmQpOwo+IC1ib29sIHBzcl9zaW5rX3N1cHBv cnQoaW50IGRldmljZSwgaW50IGRlYnVnZnNfZmQsIGVudW0gcHNyX21vZGUKPiBtb2RlKTsKPiAr Ym9vbCBwc3Jfc2lua19zdXBwb3J0KGludCBkZXZpY2UsIGludCBkZWJ1Z2ZzX2ZkLCBlbnVtIHBz cl9tb2RlCj4gbW9kZSwgaWd0X291dHB1dF90ICpvdXRwdXQpOwo+IMKgYm9vbCBwc3IyX3dhaXRf c3UoaW50IGRlYnVnZnNfZmQsIHVpbnQxNl90ICpudW1fc3VfYmxvY2tzKTsKPiDCoHZvaWQgcHNy X3ByaW50X2RlYnVnZnMoaW50IGRlYnVnZnNfZmQpOwo+IMKgZW51bSBwc3JfbW9kZSBwc3JfZ2V0 X21vZGUoaW50IGRlYnVnZnNfZmQpOwo+IGRpZmYgLS1naXQgYS90ZXN0cy9pbnRlbC9rbXNfZGly dHlmYi5jIGIvdGVzdHMvaW50ZWwva21zX2RpcnR5ZmIuYwo+IGluZGV4IGNjOTUyOTE3OC4uZjdm ZjFhYzBiIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2ludGVsL2ttc19kaXJ0eWZiLmMKPiArKysgYi90 ZXN0cy9pbnRlbC9rbXNfZGlydHlmYi5jCj4gQEAgLTkyLDcgKzkyLDcgQEAgc3RhdGljIGJvb2wg Y2hlY2tfc3VwcG9ydChkYXRhX3QgKmRhdGEpCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgRFJNX01PREVfQ09OTkVDVE9SX2VEUCkKPiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gZmFsc2U7Cj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gcHNyX3Npbmtfc3VwcG9ydChkYXRhLT5kcm1fZmQs IGRhdGEtCj4gPmRlYnVnZnNfZmQsCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFBTUl9NT0RFXzEp Owo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBQU1JfTU9ERV8xLCBOVUxMKTsKPiDCoMKgwqDCoMKg wqDCoMKgY2FzZSBGRUFUVVJFX0RSUlM6Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqByZXR1cm4gaW50ZWxfaXNfZHJyc19zdXBwb3J0ZWQoZGF0YS0+ZHJtX2ZkLCBkYXRhLQo+ID5w aXBlKSAmJgo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGludGVsX291dHB1dF9oYXNfZHJycyhkYXRhLT5kcm1fZmQsIGRhdGEtCj4gPm91dHB1dCk7Cj4g ZGlmZiAtLWdpdCBhL3Rlc3RzL2ludGVsL2ttc19mYmNvbl9mYnQuYwo+IGIvdGVzdHMvaW50ZWwv a21zX2ZiY29uX2ZidC5jCj4gaW5kZXggOGQ2YmIzY2I2Li5hN2YyNGU2NjkgMTAwNjQ0Cj4gLS0t IGEvdGVzdHMvaW50ZWwva21zX2ZiY29uX2ZidC5jCj4gKysrIGIvdGVzdHMvaW50ZWwva21zX2Zi Y29uX2ZidC5jCj4gQEAgLTI2OSw3ICsyNjksNyBAQCBzdGF0aWMgYm9vbCBwc3JfaXNfZGlzYWJs ZWQoaW50IGRlYnVnZnNfZmQpCj4gwqAKPiDCoHN0YXRpYyBib29sIHBzcl9zdXBwb3J0ZWRfb25f Y2hpcHNldChpbnQgZGV2aWNlLCBpbnQgZGVidWdmc19mZCkKPiDCoHsKPiAtwqDCoMKgwqDCoMKg wqByZXR1cm4gcHNyX3Npbmtfc3VwcG9ydChkZXZpY2UsIGRlYnVnZnNfZmQsIFBTUl9NT0RFXzEp Owo+ICvCoMKgwqDCoMKgwqDCoHJldHVybiBwc3Jfc2lua19zdXBwb3J0KGRldmljZSwgZGVidWdm c19mZCwgUFNSX01PREVfMSwKPiBOVUxMKTsKPiDCoH0KPiDCoAo+IMKgc3RhdGljIGJvb2wgcHNy X3dhaXRfdW50aWxfdXBkYXRlKHN0cnVjdCBkcm1faW5mbyAqZHJtKQo+IEBAIC0yODAsNyArMjgw LDcgQEAgc3RhdGljIGJvb2wgcHNyX3dhaXRfdW50aWxfdXBkYXRlKHN0cnVjdCBkcm1faW5mbwo+ ICpkcm0pCj4gwqBzdGF0aWMgdm9pZCBkaXNhYmxlX2ZlYXR1cmVzKGludCBkZXZpY2UsIGludCBk ZWJ1Z2ZzX2ZkKQo+IMKgewo+IMKgwqDCoMKgwqDCoMKgwqBpZ3Rfc2V0X21vZHVsZV9wYXJhbV9p bnQoZGV2aWNlLCAiZW5hYmxlX2ZiYyIsIDApOwo+IC3CoMKgwqDCoMKgwqDCoGlmIChwc3Jfc2lu a19zdXBwb3J0KGRldmljZSwgZGVidWdmc19mZCwgUFNSX01PREVfMSkpCj4gK8KgwqDCoMKgwqDC oMKgaWYgKHBzcl9zaW5rX3N1cHBvcnQoZGV2aWNlLCBkZWJ1Z2ZzX2ZkLCBQU1JfTU9ERV8xLCBO VUxMKSkKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHBzcl9kaXNhYmxlKGRldmlj ZSwgZGVidWdmc19mZCk7Cj4gwqB9Cj4gwqAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvaW50ZWwva21z X2Zyb250YnVmZmVyX3RyYWNraW5nLmMKPiBiL3Rlc3RzL2ludGVsL2ttc19mcm9udGJ1ZmZlcl90 cmFja2luZy5jCj4gaW5kZXggZjkwZDA5ZjlmLi4yZDU4OGU4MzYgMTAwNjQ0Cj4gLS0tIGEvdGVz dHMvaW50ZWwva21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMKPiArKysgYi90ZXN0cy9pbnRlbC9r bXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYwo+IEBAIC0xMzYyLDcgKzEzNjIsNyBAQCBzdGF0aWMg dm9pZCBzZXR1cF9wc3Iodm9pZCkKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJl dHVybjsKPiDCoMKgwqDCoMKgwqDCoMKgfQo+IMKgCj4gLcKgwqDCoMKgwqDCoMKgaWYgKCFwc3Jf c2lua19zdXBwb3J0KGRybS5mZCwgZHJtLmRlYnVnZnMsIFBTUl9NT0RFXzEpKSB7Cj4gK8KgwqDC oMKgwqDCoMKgaWYgKCFwc3Jfc2lua19zdXBwb3J0KGRybS5mZCwgZHJtLmRlYnVnZnMsIFBTUl9N T0RFXzEsIE5VTEwpKQo+IHsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9p bmZvKCJDYW4ndCB0ZXN0IFBTUjogbm90IHN1cHBvcnRlZCBieSBzaW5rLlxuIik7Cj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm47Cj4gwqDCoMKgwqDCoMKgwqDCoH0KPiBk aWZmIC0tZ2l0IGEvdGVzdHMvaW50ZWwva21zX3BtX2RjLmMgYi90ZXN0cy9pbnRlbC9rbXNfcG1f ZGMuYwo+IGluZGV4IDFlOWNhNWQ2Yy4uZTVkYWFjYjg0IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2lu dGVsL2ttc19wbV9kYy5jCj4gKysrIGIvdGVzdHMvaW50ZWwva21zX3BtX2RjLmMKPiBAQCAtNjcz LDE0ICs2NzMsMTYgQEAgaWd0X21haW4KPiDCoMKgwqDCoMKgwqDCoMKgaWd0X2Rlc2NyaWJlKCJJ biB0aGlzIHRlc3Qgd2UgbWFrZSBzdXJlIHRoYXQgc3lzdGVtIGVudGVycwo+IERDM0NPICIKPiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJ3aGVuIFBTUjIgaXMgYWN0 aXZlIGFuZCBzeXN0ZW0gaXMgaW4gU0xFRVAKPiBzdGF0ZSIpOwo+IMKgwqDCoMKgwqDCoMKgwqBp Z3Rfc3VidGVzdCgiZGMzY28tdnBiLXNpbXVsYXRpb24iKSB7Cj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGlndF9yZXF1aXJlKHBzcl9zaW5rX3N1cHBvcnQoZGF0YS5kcm1fZmQsCj4g ZGF0YS5kZWJ1Z2ZzX2ZkLCBQU1JfTU9ERV8yKSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGlndF9yZXF1aXJlKHBzcl9zaW5rX3N1cHBvcnQoZGF0YS5kcm1fZmQsCj4gZGF0YS5k ZWJ1Z2ZzX2ZkLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBQU1JfTU9ERV8yLCBO VUxMKSk7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0ZXN0X2RjM2NvX3ZwYl9z aW11bGF0aW9uKCZkYXRhKTsKPiDCoMKgwqDCoMKgwqDCoMKgfQo+IMKgCj4gwqDCoMKgwqDCoMKg wqDCoGlndF9kZXNjcmliZSgiVGhpcyB0ZXN0IHZhbGlkYXRlcyBkaXNwbGF5IGVuZ2luZSBlbnRy eSB0byBEQzUKPiBzdGF0ZSAiCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAid2hpbGUgUFNSIGlzIGFjdGl2ZSIpOwo+IMKgwqDCoMKgwqDCoMKgwqBpZ3Rfc3VidGVz dCgiZGM1LXBzciIpIHsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X3JlcXVp cmUocHNyX3Npbmtfc3VwcG9ydChkYXRhLmRybV9mZCwKPiBkYXRhLmRlYnVnZnNfZmQsIFBTUl9N T0RFXzEpKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X3JlcXVpcmUocHNy X3Npbmtfc3VwcG9ydChkYXRhLmRybV9mZCwKPiBkYXRhLmRlYnVnZnNfZmQsCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIFBTUl9NT0RFXzEsIE5VTEwpKTsKPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoGRhdGEub3BfcHNyX21vZGUgPSBQU1JfTU9ERV8xOwo+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcHNyX2VuYWJsZShkYXRhLmRybV9mZCwgZGF0YS5k ZWJ1Z2ZzX2ZkLAo+IGRhdGEub3BfcHNyX21vZGUpOwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgdGVzdF9kY19zdGF0ZV9wc3IoJmRhdGEsIENIRUNLX0RDNSk7Cj4gQEAgLTY4OSw3 ICs2OTEsOCBAQCBpZ3RfbWFpbgo+IMKgwqDCoMKgwqDCoMKgwqBpZ3RfZGVzY3JpYmUoIlRoaXMg dGVzdCB2YWxpZGF0ZXMgZGlzcGxheSBlbmdpbmUgZW50cnkgdG8gREM2Cj4gc3RhdGUgIgo+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIndoaWxlIFBTUiBpcyBhY3Rp dmUiKTsKPiDCoMKgwqDCoMKgwqDCoMKgaWd0X3N1YnRlc3QoImRjNi1wc3IiKSB7Cj4gLcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9yZXF1aXJlKHBzcl9zaW5rX3N1cHBvcnQoZGF0 YS5kcm1fZmQsCj4gZGF0YS5kZWJ1Z2ZzX2ZkLCBQU1JfTU9ERV8xKSk7Cj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoGlndF9yZXF1aXJlKHBzcl9zaW5rX3N1cHBvcnQoZGF0YS5kcm1f ZmQsCj4gZGF0YS5kZWJ1Z2ZzX2ZkLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBQ U1JfTU9ERV8xLCBOVUxMKSk7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkYXRh Lm9wX3Bzcl9tb2RlID0gUFNSX01PREVfMTsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoHBzcl9lbmFibGUoZGF0YS5kcm1fZmQsIGRhdGEuZGVidWdmc19mZCwKPiBkYXRhLm9wX3Bz cl9tb2RlKTsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9yZXF1aXJlX2Yo aWd0X3BtX3BjOF9wbHVzX3Jlc2lkZW5jaWVzX2VuYWJsZWQoZGF0Cj4gYS5tc3JfZmQpLAo+IGRp ZmYgLS1naXQgYS90ZXN0cy9pbnRlbC9rbXNfcHNyLmMgYi90ZXN0cy9pbnRlbC9rbXNfcHNyLmMK PiBpbmRleCBmZmVjYzUyMjIuLjI2MDA5NWFlYyAxMDA2NDQKPiAtLS0gYS90ZXN0cy9pbnRlbC9r bXNfcHNyLmMKPiArKysgYi90ZXN0cy9pbnRlbC9rbXNfcHNyLmMKPiBAQCAtNDMzLDcgKzQzMyw3 IEBAIHN0YXRpYyB2b2lkIGZpbGxfcmVuZGVyKGRhdGFfdCAqZGF0YSwgY29uc3QKPiBzdHJ1Y3Qg aWd0X2ZiICpmYiwKPiDCoHN0YXRpYyBib29sIHNpbmtfc3VwcG9ydChkYXRhX3QgKmRhdGEsIGVu dW0gcHNyX21vZGUgbW9kZSkKPiDCoHsKPiDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIGRhdGEtPndp dGhfcHNyX2Rpc2FibGVkIHx8Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHBzcl9zaW5r X3N1cHBvcnQoZGF0YS0+ZHJtX2ZkLCBkYXRhLT5kZWJ1Z2ZzX2ZkLAo+IG1vZGUpOwo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwc3Jfc2lua19zdXBwb3J0KGRhdGEtPmRybV9mZCwgZGF0 YS0+ZGVidWdmc19mZCwgbW9kZSwKPiBOVUxMKTsKPiDCoH0KPiDCoAo+IMKgc3RhdGljIGJvb2wg cHNyX3dhaXRfZW50cnlfaWZfZW5hYmxlZChkYXRhX3QgKmRhdGEpCj4gZGlmZiAtLWdpdCBhL3Rl c3RzL2ludGVsL2ttc19wc3IyX3NmLmMgYi90ZXN0cy9pbnRlbC9rbXNfcHNyMl9zZi5jCj4gaW5k ZXggZDdhNzQ2MjExLi4yZDA1ZjExMTAgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvaW50ZWwva21zX3Bz cjJfc2YuYwo+ICsrKyBiL3Rlc3RzL2ludGVsL2ttc19wc3IyX3NmLmMKPiBAQCAtOTgwLDcgKzk4 MCw4IEBAIGlndF9tYWluCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBrbXN0ZXN0 X3NldF92dF9ncmFwaGljc19tb2RlKCk7Cj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGlndF9yZXF1aXJlX2YocHNyX3Npbmtfc3VwcG9ydChkYXRhLmRybV9mZCwKPiAtwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRhdGEuZGVidWdmc19mZCwKPiBQU1JfTU9E RV8yKSwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRhdGEuZGVidWdmc19m ZCwKPiBQU1JfTU9ERV8yLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgTlVM TCksCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAiU2luayBkb2VzIG5vdCBzdXBwb3J0IFBTUjJcbiIpOwo+IMKgCj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkaXNwbGF5X2luaXQoJmRhdGEpOwo+IGRpZmYgLS1naXQg YS90ZXN0cy9pbnRlbC9rbXNfcHNyMl9zdS5jIGIvdGVzdHMvaW50ZWwva21zX3BzcjJfc3UuYwo+ IGluZGV4IDgzNGZlYzFlYy4uMmY4OWRlNDM1IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2ludGVsL2tt c19wc3IyX3N1LmMKPiArKysgYi90ZXN0cy9pbnRlbC9rbXNfcHNyMl9zdS5jCj4gQEAgLTMyNyw3 ICszMjcsOCBAQCBpZ3RfbWFpbgo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKga21z dGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9kZSgpOwo+IMKgCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBpZ3RfcmVxdWlyZV9mKHBzcl9zaW5rX3N1cHBvcnQoZGF0YS5kcm1fZmQsCj4g LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkYXRhLmRlYnVnZnNfZmQsCj4gUFNS X01PREVfMiksCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkYXRhLmRlYnVn ZnNfZmQsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBQU1JfTU9ERV8yLCBO VUxMKSwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICJTaW5rIGRvZXMgbm90IHN1cHBvcnQgUFNSMlxuIik7Cj4gwqAKPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9yZXF1aXJlX2YoaW50ZWxfZGlzcGxheV92ZXIo aW50ZWxfZ2V0X2RybV9kZXZpZChkCj4gYXRhLmRybV9mZCkpIDwgMTMsCj4gZGlmZiAtLWdpdCBh L3Rlc3RzL2ludGVsL2ttc19wc3Jfc3RyZXNzX3Rlc3QuYwo+IGIvdGVzdHMvaW50ZWwva21zX3Bz cl9zdHJlc3NfdGVzdC5jCj4gaW5kZXggYjY3NTllZWNlLi5iZWRlZDNiOTQgMTAwNjQ0Cj4gLS0t IGEvdGVzdHMvaW50ZWwva21zX3Bzcl9zdHJlc3NfdGVzdC5jCj4gKysrIGIvdGVzdHMvaW50ZWwv a21zX3Bzcl9zdHJlc3NfdGVzdC5jCj4gQEAgLTM1Nyw3ICszNTcsNyBAQCBpZ3RfbWFpbgo+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKga21zdGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9k ZSgpOwo+IMKgCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3RfcmVxdWlyZV9m KHBzcl9zaW5rX3N1cHBvcnQoZGF0YS5kcm1fZmQsCj4gZGF0YS5kZWJ1Z2ZzX2ZkLAo+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgUFNSX01PREVfMSksCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBQU1JfTU9ERV8xLCBOVUxMKSwKPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJTaW5rIGRvZXMg bm90IHN1cHBvcnQgUFNSXG4iKTsKPiDCoAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgc2V0dXBfb3V0cHV0KCZkYXRhKTsKPiBkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2ZlYXR1cmVf ZGlzY292ZXJ5LmMKPiBiL3Rlc3RzL2ttc19mZWF0dXJlX2Rpc2NvdmVyeS5jCj4gaW5kZXggM2Ex ZjZkMjFkLi40MjhmOTdmZmUgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMva21zX2ZlYXR1cmVfZGlzY292 ZXJ5LmMKPiArKysgYi90ZXN0cy9rbXNfZmVhdHVyZV9kaXNjb3ZlcnkuYwo+IEBAIC0xNTksMTIg KzE1OSwxMiBAQCBpZ3RfbWFpbiB7Cj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGlndF9kZXNjcmliZSgiTWFrZSBzdXJlIHRoYXQgd2UgaGF2ZSBlRFAgcGFuZWwgd2l0aAo+ IFBTUjEgc3VwcG9ydC4iKTsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9z dWJ0ZXN0KCJwc3IxIikgewo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgaWd0X3JlcXVpcmUocHNyX3Npbmtfc3VwcG9ydChmZCwgZGVidWdmc19mZCwKPiBQ U1JfTU9ERV8xKSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBpZ3RfcmVxdWlyZShwc3Jfc2lua19zdXBwb3J0KGZkLCBkZWJ1Z2ZzX2ZkLAo+IFBTUl9N T0RFXzEsIE5VTEwpKTsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0KPiDCoAo+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X2Rlc2NyaWJlKCJNYWtlIHN1cmUg dGhhdCB3ZSBoYXZlIGVEUCBwYW5lbCB3aXRoCj4gUFNSMiBzdXBwb3J0LiIpOwo+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X3N1YnRlc3QoInBzcjIiKSB7Cj4gLcKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3RfcmVxdWlyZShwc3Jfc2lu a19zdXBwb3J0KGZkLCBkZWJ1Z2ZzX2ZkLAo+IFBTUl9NT0RFXzIpKTsKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9yZXF1aXJlKHBzcl9zaW5rX3N1 cHBvcnQoZmQsIGRlYnVnZnNfZmQsCj4gUFNSX01PREVfMiwgTlVMTCkpOwo+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+IMKgCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBpZ3RfZGVzY3JpYmUoIk1ha2Ugc3VyZSB0aGF0IHdlIGhhdmUgRFAtTVNUCj4gY29uZmln dXJhdGlvbi4iKTsKCg==