From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH 12/18] drm/i915: Move display w/a #1175 Date: Wed, 22 Aug 2018 18:09:42 -0700 Message-ID: <20180823010942.GR2340@intel.com> References: <20180719182214.4323-1-ville.syrjala@linux.intel.com> <20180719182214.4323-13-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id D575988304 for ; Thu, 23 Aug 2018 01:09:43 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180719182214.4323-13-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville Syrjala Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBKdWwgMTksIDIwMTggYXQgMDk6MjI6MDhQTSArMDMwMCwgVmlsbGUgU3lyamFsYSB3 cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+IAo+IE1vdmUgdGhlIGRpc3BsYXkgdy9hICMxMTc1IHRvIGEgYmV0dGVyIHBsYWNlLiBU aGF0IHBsYWNlCj4gYmVpbmcgdGhlIG5ldyBza2wrIHNwZWNpZmljIHBsYW5lLT5jaGVjaygpIGhv b2suIFRoaXMgbGVhdmVzCj4gdGhlIHNrbF9jaGVja19wbGFuZV9zdXJmYWNlKCkgc3R1ZmYgdG8g ZGVhbCB3aXRoIHRoZSBndHQgb2Zmc2V0Cj4gYW5kIHNyYyBjb29yZGluYXRlIHN0dWZmIGFzIG9y aWdpbmFsbHkgZW52aXNpb25lZC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6Qg PHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgoKUmV2aWV3ZWQtYnk6IFJvZHJpZ28gVml2 aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYyB8IDM2ICsrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMyArLS0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgIHwgMzYgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystCj4gIDMgZmlsZXMgY2hhbmdlZCwgNDEgaW5zZXJ0aW9ucygrKSwg MzQgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGlu ZGV4IDIzODFiNzYyZDEwOS4uZGJjYzlhMjNlZWZhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwo+IEBAIC0yOTg2LDIwICsyOTg2LDE0IEBAIHN0YXRpYyBib29sIHNrbF9j aGVja19tYWluX2Njc19jb29yZGluYXRlcyhzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlCj4gIAlyZXR1cm4gdHJ1ZTsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBza2xfY2hlY2tf bWFpbl9zdXJmYWNlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ IC0JCQkJICBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQo+ICtzdGF0aWMg aW50IHNrbF9jaGVja19tYWluX3N1cmZhY2Uoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFu ZV9zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KPiAt CQl0b19pOTE1KHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lLT5kZXYpOwo+ICAJY29uc3Qgc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKPiAgCXVuc2lnbmVk IGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOwo+ICAJaW50IHggPSBw bGFuZV9zdGF0ZS0+YmFzZS5zcmMueDEgPj4gMTY7Cj4gIAlpbnQgeSA9IHBsYW5lX3N0YXRlLT5i YXNlLnNyYy55MSA+PiAxNjsKPiAgCWludCB3ID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRl LT5iYXNlLnNyYykgPj4gMTY7Cj4gIAlpbnQgaCA9IGRybV9yZWN0X2hlaWdodCgmcGxhbmVfc3Rh dGUtPmJhc2Uuc3JjKSA+PiAxNjsKPiAtCWludCBkc3RfeCA9IHBsYW5lX3N0YXRlLT5iYXNlLmRz dC54MTsKPiAtCWludCBkc3RfdyA9IGRybV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0ZS0+YmFzZS5k c3QpOwo+IC0JaW50IHBpcGVfc3JjX3cgPSBjcnRjX3N0YXRlLT5waXBlX3NyY193Owo+ICAJaW50 IG1heF93aWR0aCA9IHNrbF9tYXhfcGxhbmVfd2lkdGgoZmIsIDAsIHJvdGF0aW9uKTsKPiAgCWlu dCBtYXhfaGVpZ2h0ID0gNDA5NjsKPiAgCXUzMiBhbGlnbm1lbnQsIG9mZnNldCwgYXV4X29mZnNl dCA9IHBsYW5lX3N0YXRlLT5jb2xvcl9wbGFuZVsxXS5vZmZzZXQ7Cj4gQEAgLTMwMTAsMjQgKzMw MDQsNiBAQCBzdGF0aWMgaW50IHNrbF9jaGVja19tYWluX3N1cmZhY2UoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAl9Cj4g IAo+IC0JLyoKPiAtCSAqIERpc3BsYXkgV0EgIzExNzU6IGNubCxnbGsKPiAtCSAqIFBsYW5lcyBv dGhlciB0aGFuIHRoZSBjdXJzb3IgbWF5IGNhdXNlIEZJRk8gdW5kZXJmbG93IGFuZCBkaXNwbGF5 Cj4gLQkgKiBjb3JydXB0aW9uIGlmIHN0YXJ0aW5nIGxlc3MgdGhhbiA0IHBpeGVscyBmcm9tIHRo ZSByaWdodCBlZGdlIG9mCj4gLQkgKiB0aGUgc2NyZWVuLgo+IC0JICogQmVzaWRlcyB0aGUgYWJv dmUgV0EgZml4IHRoZSBzaW1pbGFyIHByb2JsZW0sIHdoZXJlIHBsYW5lcyBvdGhlcgo+IC0JICog dGhhbiB0aGUgY3Vyc29yIGVuZGluZyBsZXNzIHRoYW4gNCBwaXhlbHMgZnJvbSB0aGUgbGVmdCBl ZGdlIG9mIHRoZQo+IC0JICogc2NyZWVuIG1heSBjYXVzZSBGSUZPIHVuZGVyZmxvdyBhbmQgZGlz cGxheSBjb3JydXB0aW9uLgo+IC0JICovCj4gLQlpZiAoKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYp IHx8IElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKSAmJgo+IC0JICAgIChkc3RfeCArIGRzdF93IDwg NCB8fCBkc3RfeCA+IHBpcGVfc3JjX3cgLSA0KSkgewo+IC0JCURSTV9ERUJVR19LTVMoInJlcXVl c3RlZCBwbGFuZSBYICVzIHBvc2l0aW9uICVkIGludmFsaWQgKHZhbGlkIHJhbmdlICVkLSVkKVxu IiwKPiAtCQkJICAgICAgZHN0X3ggKyBkc3RfdyA8IDQgPyAiZW5kIiA6ICJzdGFydCIsCj4gLQkJ CSAgICAgIGRzdF94ICsgZHN0X3cgPCA0ID8gZHN0X3ggKyBkc3RfdyA6IGRzdF94LAo+IC0JCQkg ICAgICA0LCBwaXBlX3NyY193IC0gNCk7Cj4gLQkJcmV0dXJuIC1FUkFOR0U7Cj4gLQl9Cj4gLQo+ ICAJaW50ZWxfYWRkX2ZiX29mZnNldHMoJngsICZ5LCBwbGFuZV9zdGF0ZSwgMCk7Cj4gIAlvZmZz ZXQgPSBpbnRlbF9wbGFuZV9jb21wdXRlX2FsaWduZWRfb2Zmc2V0KCZ4LCAmeSwgcGxhbmVfc3Rh dGUsIDApOwo+ICAJYWxpZ25tZW50ID0gaW50ZWxfc3VyZl9hbGlnbm1lbnQoZmIsIDApOwo+IEBA IC0zMDg5LDggKzMwNjUsNyBAQCBzdGF0aWMgaW50IHNrbF9jaGVja19tYWluX3N1cmZhY2UoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIH0KPiAgCj4gIHN0YXRp YyBpbnQKPiAtc2tsX2NoZWNrX252MTJfc3VyZmFjZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKPiAtCQkgICAgICAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpw bGFuZV9zdGF0ZSkKPiArc2tsX2NoZWNrX252MTJfc3VyZmFjZShzdHJ1Y3QgaW50ZWxfcGxhbmVf c3RhdGUgKnBsYW5lX3N0YXRlKQo+ICB7Cj4gIAkvKiBEaXNwbGF5IFdBICMxMTA2ICovCj4gIAlp ZiAocGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb24gIT0KPiBAQCAtMzE2MSw4ICszMTM2LDcgQEAg c3RhdGljIGludCBza2xfY2hlY2tfY2NzX2F1eF9zdXJmYWNlKHN0cnVjdCBpbnRlbF9wbGFuZV9z dGF0ZSAqcGxhbmVfc3RhdGUpCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtaW50IHNrbF9jaGVj a19wbGFuZV9zdXJmYWNlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl LAo+IC0JCQkgICAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKPiAraW50 IHNrbF9jaGVja19wbGFuZV9zdXJmYWNlKHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVf c3RhdGUpCj4gIHsKPiAgCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVf c3RhdGUtPmJhc2UuZmI7Cj4gIAl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+ YmFzZS5yb3RhdGlvbjsKPiBAQCAtMzE4Niw3ICszMTYwLDcgQEAgaW50IHNrbF9jaGVja19wbGFu ZV9zdXJmYWNlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJ ICogdGhlIG1haW4gc3VyZmFjZSBzZXR1cCBkZXBlbmRzIG9uIGl0Lgo+ICAJICovCj4gIAlpZiAo ZmItPmZvcm1hdC0+Zm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMikgewo+IC0JCXJldCA9IHNrbF9j aGVja19udjEyX3N1cmZhY2UoY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpOwo+ICsJCXJldCA9IHNr bF9jaGVja19udjEyX3N1cmZhY2UocGxhbmVfc3RhdGUpOwo+ICAJCWlmIChyZXQpCj4gIAkJCXJl dHVybiByZXQ7Cj4gIAkJcmV0ID0gc2tsX2NoZWNrX252MTJfYXV4X3N1cmZhY2UocGxhbmVfc3Rh dGUpOwo+IEBAIC0zMjAzLDcgKzMxNzcsNyBAQCBpbnQgc2tsX2NoZWNrX3BsYW5lX3N1cmZhY2Uo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJcGxhbmVfc3Rh dGUtPmNvbG9yX3BsYW5lWzFdLnkgPSAwOwo+ICAJfQo+ICAKPiAtCXJldCA9IHNrbF9jaGVja19t YWluX3N1cmZhY2UoY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpOwo+ICsJcmV0ID0gc2tsX2NoZWNr X21haW5fc3VyZmFjZShwbGFuZV9zdGF0ZSk7Cj4gIAlpZiAocmV0KQo+ICAJCXJldHVybiByZXQ7 Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggNmQ1N2M2YTUwOGQ0Li41NWYz NTM3YmE4ZjggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0xNjUxLDggKzE2 NTEsNyBAQCB1MzIgc2tsX3BsYW5lX2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKPiAgdTMyIGdsa19jb2xvcl9jdGwoY29uc3Qgc3RydWN0IGludGVsX3BsYW5l X3N0YXRlICpwbGFuZV9zdGF0ZSk7Cj4gIHUzMiBza2xfcGxhbmVfc3RyaWRlKGNvbnN0IHN0cnVj dCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUsCj4gIAkJICAgICBpbnQgcGxhbmUpOwo+ IC1pbnQgc2tsX2NoZWNrX3BsYW5lX3N1cmZhY2UoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCj4gLQkJCSAgICBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlKTsKPiAraW50IHNrbF9jaGVja19wbGFuZV9zdXJmYWNlKHN0cnVjdCBpbnRlbF9wbGFu ZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwo+ICBpbnQgaTl4eF9jaGVja19wbGFuZV9zdXJmYWNlKHN0 cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwo+ICBpbnQgc2tsX2Zvcm1hdF90 b19mb3VyY2MoaW50IGZvcm1hdCwgYm9vbCByZ2Jfb3JkZXIsIGJvb2wgYWxwaGEpOwo+ICB1bnNp Z25lZCBpbnQgaTl4eF9wbGFuZV9tYXhfc3RyaWRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUs Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBpbmRleCAwNDFiODkyMWY0ZmUuLmY0 Mzg4NGY3NjIxMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJp dGUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gQEAgLTEy MTgsNiArMTIxOCwzNiBAQCBzdGF0aWMgaW50IHNrbF9wbGFuZV9jaGVja19mYihjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+ ICtzdGF0aWMgaW50IHNrbF9wbGFuZV9jaGVja19kc3RfY29vcmRpbmF0ZXMoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gKwkJCQkJICAgY29uc3Qgc3RydWN0IGlu dGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0KPiArCQl0b19pOTE1KHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lLT5k ZXYpOwo+ICsJaW50IGNydGNfeCA9IHBsYW5lX3N0YXRlLT5iYXNlLmRzdC54MTsKPiArCWludCBj cnRjX3cgPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPmJhc2UuZHN0KTsKPiArCWludCBw aXBlX3NyY193ID0gY3J0Y19zdGF0ZS0+cGlwZV9zcmNfdzsKPiArCj4gKwkvKgo+ICsJICogRGlz cGxheSBXQSAjMTE3NTogY25sLGdsawo+ICsJICogUGxhbmVzIG90aGVyIHRoYW4gdGhlIGN1cnNv ciBtYXkgY2F1c2UgRklGTyB1bmRlcmZsb3cgYW5kIGRpc3BsYXkKPiArCSAqIGNvcnJ1cHRpb24g aWYgc3RhcnRpbmcgbGVzcyB0aGFuIDQgcGl4ZWxzIGZyb20gdGhlIHJpZ2h0IGVkZ2Ugb2YKPiAr CSAqIHRoZSBzY3JlZW4uCj4gKwkgKiBCZXNpZGVzIHRoZSBhYm92ZSBXQSBmaXggdGhlIHNpbWls YXIgcHJvYmxlbSwgd2hlcmUgcGxhbmVzIG90aGVyCj4gKwkgKiB0aGFuIHRoZSBjdXJzb3IgZW5k aW5nIGxlc3MgdGhhbiA0IHBpeGVscyBmcm9tIHRoZSBsZWZ0IGVkZ2Ugb2YgdGhlCj4gKwkgKiBz Y3JlZW4gbWF5IGNhdXNlIEZJRk8gdW5kZXJmbG93IGFuZCBkaXNwbGF5IGNvcnJ1cHRpb24uCj4g KwkgKi8KPiArCWlmICgoSVNfR0VNSU5JTEFLRShkZXZfcHJpdikgfHwgSVNfQ0FOTk9OTEFLRShk ZXZfcHJpdikpICYmCj4gKwkgICAgKGNydGNfeCArIGNydGNfdyA8IDQgfHwgY3J0Y194ID4gcGlw ZV9zcmNfdyAtIDQpKSB7Cj4gKwkJRFJNX0RFQlVHX0tNUygicmVxdWVzdGVkIHBsYW5lIFggJXMg cG9zaXRpb24gJWQgaW52YWxpZCAodmFsaWQgcmFuZ2UgJWQtJWQpXG4iLAo+ICsJCQkgICAgICBj cnRjX3ggKyBjcnRjX3cgPCA0ID8gImVuZCIgOiAic3RhcnQiLAo+ICsJCQkgICAgICBjcnRjX3gg KyBjcnRjX3cgPCA0ID8gY3J0Y194ICsgY3J0Y193IDogY3J0Y194LAo+ICsJCQkgICAgICA0LCBw aXBlX3NyY193IC0gNCk7Cj4gKwkJcmV0dXJuIC1FUkFOR0U7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJu IDA7Cj4gK30KPiArCj4gIGludCBza2xfcGxhbmVfY2hlY2soc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCj4gIAkJICAgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVf c3RhdGUpCj4gIHsKPiBAQCAtMTI1MiwxMSArMTI4MiwxNSBAQCBpbnQgc2tsX3BsYW5lX2NoZWNr KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJaWYgKCFwbGFuZV9zdGF0 ZS0+YmFzZS52aXNpYmxlKQo+ICAJCXJldHVybiAwOwo+ICAKPiArCXJldCA9IHNrbF9wbGFuZV9j aGVja19kc3RfY29vcmRpbmF0ZXMoY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpOwo+ICsJaWYgKHJl dCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiAgCXJldCA9IGludGVsX3BsYW5lX2NoZWNrX3NyY19j b29yZGluYXRlcyhwbGFuZV9zdGF0ZSk7Cj4gIAlpZiAocmV0KQo+ICAJCXJldHVybiByZXQ7Cj4g IAo+IC0JcmV0ID0gc2tsX2NoZWNrX3BsYW5lX3N1cmZhY2UoY3J0Y19zdGF0ZSwgcGxhbmVfc3Rh dGUpOwo+ICsJcmV0ID0gc2tsX2NoZWNrX3BsYW5lX3N1cmZhY2UocGxhbmVfc3RhdGUpOwo+ICAJ aWYgKHJldCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiAtLSAKPiAyLjE2LjQKPiAKPiBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWls aW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==