From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville Syrjala Subject: [PATCH 2/9] drm/i915: Redo plane sanitation during readout Date: Wed, 11 Oct 2017 19:04:48 +0300 Message-ID: <20171011160455.1874-3-ville.syrjala@linux.intel.com> References: <20171011160455.1874-1-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 40B536E6D9 for ; Wed, 11 Oct 2017 16:05:09 +0000 (UTC) In-Reply-To: <20171011160455.1874-1-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: intel-gfx@lists.freedesktop.org Cc: =?UTF-8?q?Alex=20Villac=C3=ADs=20Lasso?= , Thierry Reding List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClVu aWZ5IHRoZSBwbGFuZSBkaXNhYmxpbmcgZHVyaW5nIHN0YXRlIHJlYWRvdXQgYnkgcHVsbGluZyB0 aGUgY29kZSBpbnRvCmEgbmV3IGhlbHBlciBpbnRlbF9wbGFuZV9kaXNhYmxlX25vYXRvbWljKCku IFdlJ2xsIGFsc28gcmVhZCBvdXQgdGhlCnN0YXRlIG9mIGFsbCBwbGFuZXMsIHNvIHRoYXQgd2Ug a25vdyB3aGljaCBwbGFuZXMgcmVhbGx5IG5lZWQgdG8gYmUKZGlhYmxlZC4KCkFkZGl0b25hbGx5 IHdlIGNoYW5nZSB0aGUgcGxhbmU8LT5waXBlIG1hcHBpbmcgc2FuaXRhdGlvbiB0byB3b3JrIGJ5 CnNpbXBseSBkaXNhYmxpbmcgdGhlIG9mZmVuZGluZyBwbGFuZXMgaW5zdGVhZCBvZiBlbnRpcmUg cGlwZXMuIEFuZAp3ZSBkbyBpdCBiZWZvcmUgd2Ugb3RoZXJ3aXNlIHNhbml0aXplIHRoZSBjcnRj cywgd2hpY2ggbWVhbnMgd2UgZG9uJ3QKaGF2ZSB0byB3b3JyeSBhYm91dCBtaXNhc3NpZ25lZCBw bGFuZXMgZHVyaW5nIGNydGMgc2FuaXRhdGlvbiBhbnltb3JlLgoKdjI6IFJlb2RlciBwYXRjaGVz IHRvIG5vdCBkZXBlbmQgb24gZW51bSBvbGRfcGxhbmVfaWQKCkNjOiBUaGllcnJ5IFJlZGluZyA8 dGhpZXJyeS5yZWRpbmdAZ21haWwuY29tPgpDYzogQWxleCBWaWxsYWPDrXMgTGFzc28gPGFsZXh2 aWxsYWNpc2xhc3NvQGhvdG1haWwuY29tPgpCdWd6aWxsYTogaHR0cHM6Ly9idWdzLmZyZWVkZXNr dG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjIzClNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrD pGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTE2ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjcgaW5zZXJ0aW9ucygrKSwgNDkgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDgyNWFiMDBiNjYzOS4uYTlm ZDNiOGZhOTIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0yNzI5LDYg KzI3MjksMjMgQEAgaW50ZWxfc2V0X3BsYW5lX3Zpc2libGUoc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCiAJCSAgICAgIGNydGNfc3RhdGUtPmFjdGl2ZV9wbGFuZXMpOwogfQog CitzdGF0aWMgdm9pZCBpbnRlbF9wbGFuZV9kaXNhYmxlX25vYXRvbWljKHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjLAorCQkJCQkgc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSkKK3sKKwlzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9CisJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0 Yy0+YmFzZS5zdGF0ZSk7CisJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSA9 CisJCXRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lLT5iYXNlLnN0YXRlKTsKKworCWludGVsX3Nl dF9wbGFuZV92aXNpYmxlKGNydGNfc3RhdGUsIHBsYW5lX3N0YXRlLCBmYWxzZSk7CisKKwlpZiAo cGxhbmUtPmlkID09IFBMQU5FX1BSSU1BUlkpCisJCWludGVsX3ByZV9kaXNhYmxlX3ByaW1hcnlf bm9hdG9taWMoJmNydGMtPmJhc2UpOworCisJdHJhY2VfaW50ZWxfZGlzYWJsZV9wbGFuZSgmcGxh bmUtPmJhc2UsIGNydGMpOworCXBsYW5lLT5kaXNhYmxlX3BsYW5lKHBsYW5lLCBjcnRjKTsKK30K Kwogc3RhdGljIHZvaWQKIGludGVsX2ZpbmRfaW5pdGlhbF9wbGFuZV9vYmooc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGMsCiAJCQkgICAgIHN0cnVjdCBpbnRlbF9pbml0aWFsX3BsYW5lX2Nv bmZpZyAqcGxhbmVfY29uZmlnKQpAQCAtMjc4NiwxMiArMjgwMyw3IEBAIGludGVsX2ZpbmRfaW5p dGlhbF9wbGFuZV9vYmooc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiAJICogc2ltcGxl c3Qgc29sdXRpb24gaXMgdG8ganVzdCBkaXNhYmxlIHRoZSBwcmltYXJ5IHBsYW5lIG5vdyBhbmQK IAkgKiBwcmV0ZW5kIHRoZSBCSU9TIG5ldmVyIGhhZCBpdCBlbmFibGVkLgogCSAqLwotCWludGVs X3NldF9wbGFuZV92aXNpYmxlKHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSksCi0JCQkJ dG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmVfc3RhdGUpLAotCQkJCWZhbHNlKTsKLQlpbnRlbF9w cmVfZGlzYWJsZV9wcmltYXJ5X25vYXRvbWljKCZpbnRlbF9jcnRjLT5iYXNlKTsKLQl0cmFjZV9p bnRlbF9kaXNhYmxlX3BsYW5lKHByaW1hcnksIGludGVsX2NydGMpOwotCWludGVsX3BsYW5lLT5k aXNhYmxlX3BsYW5lKGludGVsX3BsYW5lLCBpbnRlbF9jcnRjKTsKKwlpbnRlbF9wbGFuZV9kaXNh YmxlX25vYXRvbWljKGludGVsX2NydGMsIGludGVsX3BsYW5lKTsKIAogCXJldHVybjsKIApAQCAt NTkyMyw2ICs1OTM1LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19kaXNhYmxlX25vYXRvbWlj KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjcnRjLT5kZXYpOwogCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4g ZG9tYWluOworCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7CiAJdTY0IGRvbWFpbnM7CiAJc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwogCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlOwpAQCAtNTkzMSwxMSArNTk0NCwxMiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRj X2Rpc2FibGVfbm9hdG9taWMoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWlmICghaW50ZWxfY3J0 Yy0+YWN0aXZlKQogCQlyZXR1cm47CiAKLQlpZiAoY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPnZpc2li bGUpIHsKLQkJaW50ZWxfcHJlX2Rpc2FibGVfcHJpbWFyeV9ub2F0b21pYyhjcnRjKTsKKwlmb3Jf ZWFjaF9pbnRlbF9wbGFuZV9vbl9jcnRjKCZkZXZfcHJpdi0+ZHJtLCBpbnRlbF9jcnRjLCBwbGFu ZSkgeworCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0KKwkJ CXRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lLT5iYXNlLnN0YXRlKTsKIAotCQlpbnRlbF9jcnRj X2Rpc2FibGVfcGxhbmVzKGNydGMsIDEgPDwgZHJtX3BsYW5lX2luZGV4KGNydGMtPnByaW1hcnkp KTsKLQkJY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPnZpc2libGUgPSBmYWxzZTsKKwkJaWYgKHBsYW5l X3N0YXRlLT5iYXNlLnZpc2libGUpCisJCQlpbnRlbF9wbGFuZV9kaXNhYmxlX25vYXRvbWljKGlu dGVsX2NydGMsIHBsYW5lKTsKIAl9CiAKIAlzdGF0ZSA9IGRybV9hdG9taWNfc3RhdGVfYWxsb2Mo Y3J0Yy0+ZGV2KTsKQEAgLTE0Njc4LDIyICsxNDY5MiwzOCBAQCB2b2lkIGk4MzBfZGlzYWJsZV9w aXBlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUpCiAJ UE9TVElOR19SRUFEKERQTEwocGlwZSkpOwogfQogCi1zdGF0aWMgYm9vbAotaW50ZWxfY2hlY2tf cGxhbmVfbWFwcGluZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKK3N0YXRpYyBib29sIGludGVs X3BsYW5lX21hcHBpbmdfb2soc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkJICAgc3RydWN0 IGludGVsX3BsYW5lICpwcmltYXJ5KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwotCXUzMiB2YWw7CisJZW51bSBwbGFuZSBw bGFuZSA9IHByaW1hcnktPnBsYW5lOworCXUzMiB2YWwgPSBJOTE1X1JFQUQoRFNQQ05UUihwbGFu ZSkpOwogCi0JaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5udW1fcGlwZXMgPT0gMSkKLQkJcmV0 dXJuIHRydWU7CisJcmV0dXJuICh2YWwgJiBESVNQTEFZX1BMQU5FX0VOQUJMRSkgPT0gMCB8fAor CQkodmFsICYgRElTUFBMQU5FX1NFTF9QSVBFX01BU0spID09IERJU1BQTEFORV9TRUxfUElQRShj cnRjLT5waXBlKTsKK30KIAotCXZhbCA9IEk5MTVfUkVBRChEU1BDTlRSKCFjcnRjLT5wbGFuZSkp Oworc3RhdGljIHZvaWQKK2ludGVsX3Nhbml0aXplX3BsYW5lX21hcHBpbmcoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCWVudW0gcGlwZSBwaXBlOwogCi0JaWYgKCh2YWwg JiBESVNQTEFZX1BMQU5FX0VOQUJMRSkgJiYKLQkgICAgKCEhKHZhbCAmIERJU1BQTEFORV9TRUxf UElQRV9NQVNLKSA9PSBjcnRjLT5waXBlKSkKLQkJcmV0dXJuIGZhbHNlOworCWlmIChJTlRFTF9H RU4oZGV2X3ByaXYpID49IDQpCisJCXJldHVybjsKIAotCXJldHVybiB0cnVlOworCWZvcl9lYWNo X3BpcGUoZGV2X3ByaXYsIHBpcGUpIHsKKwkJc3RydWN0IGludGVsX2NydGMgKmNydGMgPQorCQkJ aW50ZWxfZ2V0X2NydGNfZm9yX3BpcGUoZGV2X3ByaXYsIHBpcGUpOworCQlzdHJ1Y3QgaW50ZWxf cGxhbmUgKnBsYW5lID0KKwkJCXRvX2ludGVsX3BsYW5lKGNydGMtPmJhc2UucHJpbWFyeSk7CisK KwkJaWYgKGludGVsX3BsYW5lX21hcHBpbmdfb2soY3J0YywgcGxhbmUpKQorCQkJY29udGludWU7 CisKKwkJRFJNX0RFQlVHX0tNUygiJXMgYXR0YWNoZWQgdG8gdGhlIHdyb25nIHBpcGUsIGRpc2Fi bGluZyBwbGFuZVxuIiwKKwkJCSAgICAgIHBsYW5lLT5iYXNlLm5hbWUpOworCQlpbnRlbF9wbGFu ZV9kaXNhYmxlX25vYXRvbWljKGNydGMsIHBsYW5lKTsKKwl9CiB9CiAKIHN0YXRpYyBib29sIGlu dGVsX2NydGNfaGFzX2VuY29kZXJzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQpAQCAtMTQ3NDks MzMgKzE0Nzc5LDE1IEBAIHN0YXRpYyB2b2lkIGludGVsX3Nhbml0aXplX2NydGMoc3RydWN0IGlu dGVsX2NydGMgKmNydGMsCiAKIAkJLyogRGlzYWJsZSBldmVyeXRoaW5nIGJ1dCB0aGUgcHJpbWFy eSBwbGFuZSAqLwogCQlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9jcnRjKGRldiwgY3J0YywgcGxh bmUpIHsKLQkJCWlmIChwbGFuZS0+YmFzZS50eXBlID09IERSTV9QTEFORV9UWVBFX1BSSU1BUlkp Ci0JCQkJY29udGludWU7CisJCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlID0KKwkJCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZS0+YmFzZS5zdGF0ZSk7CiAK LQkJCXRyYWNlX2ludGVsX2Rpc2FibGVfcGxhbmUoJnBsYW5lLT5iYXNlLCBjcnRjKTsKLQkJCXBs YW5lLT5kaXNhYmxlX3BsYW5lKHBsYW5lLCBjcnRjKTsKKwkJCWlmIChwbGFuZV9zdGF0ZS0+YmFz ZS52aXNpYmxlICYmCisJCQkgICAgcGxhbmUtPmJhc2UudHlwZSAhPSBEUk1fUExBTkVfVFlQRV9Q UklNQVJZKQorCQkJCWludGVsX3BsYW5lX2Rpc2FibGVfbm9hdG9taWMoY3J0YywgcGxhbmUpOwog CQl9CiAJfQogCi0JLyogV2UgbmVlZCB0byBzYW5pdGl6ZSB0aGUgcGxhbmUgLT4gcGlwZSBtYXBw aW5nIGZpcnN0IGJlY2F1c2UgdGhpcyB3aWxsCi0JICogZGlzYWJsZSB0aGUgY3J0YyAoYW5kIGhl bmNlIGNoYW5nZSB0aGUgc3RhdGUpIGlmIGl0IGlzIHdyb25nLiBOb3RlCi0JICogdGhhdCBnZW40 KyBoYXMgYSBmaXhlZCBwbGFuZSAtPiBwaXBlIG1hcHBpbmcuICAqLwotCWlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpIDwgNCAmJiAhaW50ZWxfY2hlY2tfcGxhbmVfbWFwcGluZyhjcnRjKSkgewotCQli b29sIHBsYW5lOwotCi0JCURSTV9ERUJVR19LTVMoIltDUlRDOiVkOiVzXSB3cm9uZyBwbGFuZSBj b25uZWN0aW9uIGRldGVjdGVkIVxuIiwKLQkJCSAgICAgIGNydGMtPmJhc2UuYmFzZS5pZCwgY3J0 Yy0+YmFzZS5uYW1lKTsKLQotCQkvKiBQaXBlIGhhcyB0aGUgd3JvbmcgcGxhbmUgYXR0YWNoZWQg YW5kIHRoZSBwbGFuZSBpcyBhY3RpdmUuCi0JCSAqIFRlbXBvcmFyaWx5IGNoYW5nZSB0aGUgcGxh bmUgbWFwcGluZyBhbmQgZGlzYWJsZSBldmVyeXRoaW5nCi0JCSAqIC4uLiAgKi8KLQkJcGxhbmUg PSBjcnRjLT5wbGFuZTsKLQkJY3J0Yy0+YmFzZS5wcmltYXJ5LT5zdGF0ZS0+dmlzaWJsZSA9IHRy dWU7Ci0JCWNydGMtPnBsYW5lID0gIXBsYW5lOwotCQlpbnRlbF9jcnRjX2Rpc2FibGVfbm9hdG9t aWMoJmNydGMtPmJhc2UsIGN0eCk7Ci0JCWNydGMtPnBsYW5lID0gcGxhbmU7Ci0JfQotCiAJLyog QWRqdXN0IHRoZSBzdGF0ZSBvZiB0aGUgb3V0cHV0IHBpcGUgYWNjb3JkaW5nIHRvIHdoZXRoZXIg d2UKIAkgKiBoYXZlIGFjdGl2ZSBjb25uZWN0b3JzL2VuY29kZXJzLiAqLwogCWlmIChjcnRjLT5h Y3RpdmUgJiYgIWludGVsX2NydGNfaGFzX2VuY29kZXJzKGNydGMpKQpAQCAtMTQ4ODMsMTQgKzE0 ODk1LDE4IEBAIHZvaWQgaTkxNV9yZWRpc2FibGVfdmdhKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIC8qIEZJWE1FIHJlYWQgb3V0IGZ1bGwgcGxhbmUgc3RhdGUgZm9yIGFsbCBw bGFuZXMgKi8KIHN0YXRpYyB2b2lkIHJlYWRvdXRfcGxhbmVfc3RhdGUoc3RydWN0IGludGVsX2Ny dGMgKmNydGMpCiB7Ci0Jc3RydWN0IGludGVsX3BsYW5lICpwcmltYXJ5ID0gdG9faW50ZWxfcGxh bmUoY3J0Yy0+YmFzZS5wcmltYXJ5KTsKLQlib29sIHZpc2libGU7CisJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CisJc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQorCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMt PmJhc2Uuc3RhdGUpOworCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7CiAKLQl2aXNpYmxlID0g Y3J0Yy0+YWN0aXZlICYmIHByaW1hcnktPmdldF9od19zdGF0ZShwcmltYXJ5KTsKKwlmb3JfZWFj aF9pbnRlbF9wbGFuZV9vbl9jcnRjKCZkZXZfcHJpdi0+ZHJtLCBjcnRjLCBwbGFuZSkgeworCQlz dHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0KKwkJCXRvX2ludGVsX3BsYW5l X3N0YXRlKHBsYW5lLT5iYXNlLnN0YXRlKTsKKwkJYm9vbCB2aXNpYmxlID0gcGxhbmUtPmdldF9o d19zdGF0ZShwbGFuZSk7CiAKLQlpbnRlbF9zZXRfcGxhbmVfdmlzaWJsZSh0b19pbnRlbF9jcnRj X3N0YXRlKGNydGMtPmJhc2Uuc3RhdGUpLAotCQkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKHByaW1h cnktPmJhc2Uuc3RhdGUpLAotCQkJCXZpc2libGUpOworCQlpbnRlbF9zZXRfcGxhbmVfdmlzaWJs ZShjcnRjX3N0YXRlLCBwbGFuZV9zdGF0ZSwgdmlzaWJsZSk7CisJfQogfQogCiBzdGF0aWMgdm9p ZCBpbnRlbF9tb2Rlc2V0X3JlYWRvdXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikK QEAgLTE1MDc5LDYgKzE1MDk1LDggQEAgaW50ZWxfbW9kZXNldF9zZXR1cF9od19zdGF0ZShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAogCS8qIEhXIHN0YXRlIGlzIHJlYWQgb3V0LCBub3cgd2UgbmVl ZCB0byBzYW5pdGl6ZSB0aGlzIG1lc3MuICovCiAJZ2V0X2VuY29kZXJfcG93ZXJfZG9tYWlucyhk ZXZfcHJpdik7CiAKKwlpbnRlbF9zYW5pdGl6ZV9wbGFuZV9tYXBwaW5nKGRldl9wcml2KTsKKwog CWZvcl9lYWNoX2ludGVsX2VuY29kZXIoZGV2LCBlbmNvZGVyKSB7CiAJCWludGVsX3Nhbml0aXpl X2VuY29kZXIoZW5jb2Rlcik7CiAJfQotLSAKMi4xMy42CgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK