From mboxrd@z Thu Jan 1 00:00:00 1970 From: deepak.s@linux.intel.com Subject: [PATCH 05/10] drm/i915/chv: Streamline CHV forcewake stuff Date: Mon, 5 May 2014 18:17:34 +0530 Message-ID: <1399294059-20748-6-git-send-email-deepak.s@linux.intel.com> References: <1399294059-20748-1-git-send-email-deepak.s@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [143.182.124.21]) by gabe.freedesktop.org (Postfix) with ESMTP id A76E06E899 for ; Mon, 5 May 2014 05:47:56 -0700 (PDT) In-Reply-To: <1399294059-20748-1-git-send-email-deepak.s@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: fafael.barbalho@intel.com List-Id: intel-gfx@lists.freedesktop.org RnJvbTogRGVlcGFrIFMgPGRlZXBhay5zQGxpbnV4LmludGVsLmNvbT4KClN0cmVhbWxpbmUgdGhl IENIViBmb3JjZXdha2UgZnVuY3Rpb25zIGp1c3QgbGlrZSB3YXMgZG9uZSBmb3IgVkxWLgoKVGhp cyB3aWxsIGFsc28gZml4IGEgYnVnIGluIGFjY2Vzc2luZyB0aGUgY29tbW9uIHdlbGwgcmVnaXN0 ZXJzLAp3aGVyZSB3ZSdkIGVuZCB1cCB0cnlpbmcgdG8gd2FrZSB1cCB0aGUgd2VsbHMgdG9vIG1h bnkgdGltZXMKc2luY2Ugd2UnZCBjYWxsIGZvcmNlX3dha2VfZ2V0L3B1dCB0d2ljZSBwZXIgcmVn aXN0ZXIgYWNjZXNzLCB3aXRoCkZPUkNFRkFLRV9BTEwgYm90aCB0aW1lcy4KCnYyOiBSZS1mYWN0 b3IgQ0hWL1ZMViBGb3JjZXdha2Ugb2Zmc2V0cyAoQmVuKQoKUmV2aWV3ZWQtYnk6IE1pa2EgS3Vv cHBhbGEgPG1pa2Eua3VvcHBhbGFAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJq w6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEZWVw YWsgUyA8ZGVlcGFrLnNAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3VuY29yZS5jIHwgMTQ4ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyksIDgyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKaW5kZXggNGYxZjE5OS4uZDFhOGM3MiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKQEAgLTQ4NCw0MSArNDg0LDQzIEBAIHZvaWQgYXNz ZXJ0X2ZvcmNlX3dha2VfaW5hY3RpdmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogI2RlZmluZSBORUVEU19GT1JDRV9XQUtFKGRldl9wcml2LCByZWcpIFwKIAkgKChyZWcpIDwg MHg0MDAwMCAmJiAocmVnKSAhPSBGT1JDRVdBS0UpCiAKKyNkZWZpbmUgUkVHX1JBTkdFKHJlZywg c3RhcnQsIGVuZCkgKChyZWcpID49IChzdGFydCkgJiYgKHJlZykgPCAoZW5kKSkKKwogI2RlZmlu ZSBGT1JDRVdBS0VfVkxWX1JFTkRFUl9SQU5HRV9PRkZTRVQocmVnKSBcCi0JKCgocmVnKSA+PSAw eDIwMDAgJiYgKHJlZykgPCAweDQwMDApIHx8XAotCSgocmVnKSA+PSAweDUwMDAgJiYgKHJlZykg PCAweDgwMDApIHx8XAotCSgocmVnKSA+PSAweEIwMDAgJiYgKHJlZykgPCAweDEyMDAwKSB8fFwK LQkoKHJlZykgPj0gMHgyRTAwMCAmJiAocmVnKSA8IDB4MzAwMDApKQorCShSRUdfUkFOR0UoKHJl ZyksIDB4MjAwMCwgMHg0MDAwKSB8fCBcCisJIFJFR19SQU5HRSgocmVnKSwgMHg1MDAwLCAweDgw MDApIHx8IFwKKwkgUkVHX1JBTkdFKChyZWcpLCAweEIwMDAsIDB4MTIwMDApIHx8IFwKKwkgUkVH X1JBTkdFKChyZWcpLCAweDJFMDAwLCAweDMwMDAwKSkKIAotI2RlZmluZSBGT1JDRVdBS0VfVkxW X01FRElBX1JBTkdFX09GRlNFVChyZWcpXAotCSgoKHJlZykgPj0gMHgxMjAwMCAmJiAocmVnKSA8 IDB4MTQwMDApIHx8XAotCSgocmVnKSA+PSAweDIyMDAwICYmIChyZWcpIDwgMHgyNDAwMCkgfHxc Ci0JKChyZWcpID49IDB4MzAwMDAgJiYgKHJlZykgPCAweDQwMDAwKSkKKyNkZWZpbmUgRk9SQ0VX QUtFX1ZMVl9NRURJQV9SQU5HRV9PRkZTRVQocmVnKSBcCisJKFJFR19SQU5HRSgocmVnKSwgMHgx MjAwMCwgMHgxNDAwMCkgfHwgXAorCSBSRUdfUkFOR0UoKHJlZyksIDB4MjIwMDAsIDB4MjQwMDAp IHx8IFwKKwkgUkVHX1JBTkdFKChyZWcpLCAweDMwMDAwLCAweDQwMDAwKSkKIAogI2RlZmluZSBG T1JDRVdBS0VfQ0hWX1JFTkRFUl9SQU5HRV9PRkZTRVQocmVnKSBcCi0JKCgocmVnKSA+PSAweDIw MDAgJiYgKHJlZykgPCAweDQwMDApIHx8XAotCSgocmVnKSA+PSAweDUwMDAgJiYgKHJlZykgPCAw eDgwMDApIHx8XAotCSgocmVnKSA+PSAweDgzMDAgJiYgKHJlZykgPCAweDg1MDApIHx8XAotCSgo cmVnKSA+PSAweEIwMDAgJiYgKHJlZykgPCAweEMwMDApIHx8XAotCSgocmVnKSA+PSAweEUwMDAg JiYgKHJlZykgPCAweEU4MDApKQotCi0jZGVmaW5lIEZPUkNFV0FLRV9DSFZfTUVESUFfUkFOR0Vf T0ZGU0VUKHJlZylcCi0JKCgocmVnKSA+PSAweDg4MDAgJiYgKHJlZykgPCAweDg5MDApIHx8XAot CSgocmVnKSA+PSAweEQwMDAgJiYgKHJlZykgPCAweEQ4MDApIHx8XAotCSgocmVnKSA+PSAweDEy MDAwICYmIChyZWcpIDwgMHgxNDAwMCkgfHxcCi0JKChyZWcpID49IDB4MUEwMDAgJiYgKHJlZykg PCAweDFDMDAwKSB8fFwKLQkoKHJlZykgPj0gMHgxRTgwMCAmJiAocmVnKSA8IDB4MUVBMDApIHx8 XAotCSgocmVnKSA+PSAweDMwMDAwICYmIChyZWcpIDwgMHg0MDAwMCkpCi0KLSNkZWZpbmUgRk9S Q0VXQUtFX0NIVl9DT01NT05fUkFOR0VfT0ZGU0VUKHJlZylcCi0JKCgocmVnKSA+PSAweDQwMDAg JiYgKHJlZykgPCAweDUwMDApIHx8XAotCSgocmVnKSA+PSAweDgwMDAgJiYgKHJlZykgPCAweDgz MDApIHx8XAotCSgocmVnKSA+PSAweDg1MDAgJiYgKHJlZykgPCAweDg2MDApIHx8XAotCSgocmVn KSA+PSAweDkwMDAgJiYgKHJlZykgPCAweEIwMDApIHx8XAotCSgocmVnKSA+PSAweEMwMDAgJiYg KHJlZykgPCAweGM4MDApIHx8XAotCSgocmVnKSA+PSAweEYwMDAgJiYgKHJlZykgPCAweDEwMDAw KSB8fFwKLQkoKHJlZykgPj0gMHgxNDAwMCAmJiAocmVnKSA8IDB4MTQ0MDApIHx8XAotCSgocmVn KSA+PSAweDIyMDAwICYmIChyZWcpIDwgMHgyNDAwMCkpCisJKFJFR19SQU5HRSgocmVnKSwgMHgy MDAwLCAweDQwMDApIHx8IFwKKwkgUkVHX1JBTkdFKChyZWcpLCAweDUwMDAsIDB4ODAwMCkgfHwg XAorCSBSRUdfUkFOR0UoKHJlZyksIDB4ODMwMCwgMHg4NTAwKSB8fCBcCisJIFJFR19SQU5HRSgo cmVnKSwgMHhCMDAwLCAweEMwMDApIHx8IFwKKwkgUkVHX1JBTkdFKChyZWcpLCAweEUwMDAsIDB4 RTgwMCkpCisKKyNkZWZpbmUgRk9SQ0VXQUtFX0NIVl9NRURJQV9SQU5HRV9PRkZTRVQocmVnKSBc CisJKFJFR19SQU5HRSgocmVnKSwgMHg4ODAwLCAweDg5MDApIHx8IFwKKwkgUkVHX1JBTkdFKChy ZWcpLCAweEQwMDAsIDB4RDgwMCkgfHwgXAorCSBSRUdfUkFOR0UoKHJlZyksIDB4MTIwMDAsIDB4 MTQwMDApIHx8IFwKKwkgUkVHX1JBTkdFKChyZWcpLCAweDFBMDAwLCAweDFDMDAwKSB8fCBcCisJ IFJFR19SQU5HRSgocmVnKSwgMHgxRTgwMCwgMHgxRUEwMCkgfHwgXAorCSBSRUdfUkFOR0UoKHJl ZyksIDB4MzAwMDAsIDB4NDAwMDApKQorCisjZGVmaW5lIEZPUkNFV0FLRV9DSFZfQ09NTU9OX1JB TkdFX09GRlNFVChyZWcpIFwKKwkoUkVHX1JBTkdFKChyZWcpLCAweDQwMDAsIDB4NTAwMCkgfHwg XAorCSBSRUdfUkFOR0UoKHJlZyksIDB4ODAwMCwgMHg4MzAwKSB8fCBcCisJIFJFR19SQU5HRSgo cmVnKSwgMHg4NTAwLCAweDg2MDApIHx8IFwKKwkgUkVHX1JBTkdFKChyZWcpLCAweDkwMDAsIDB4 QjAwMCkgfHwgXAorCSBSRUdfUkFOR0UoKHJlZyksIDB4QzAwMCwgMHhDODAwKSB8fCBcCisJIFJF R19SQU5HRSgocmVnKSwgMHhGMDAwLCAweDEwMDAwKSB8fCBcCisJIFJFR19SQU5HRSgocmVnKSwg MHgxNDAwMCwgMHgxNDQwMCkgfHwgXAorCSBSRUdfUkFOR0UoKHJlZyksIDB4MjIwMDAsIDB4MjQw MDApKQogCiBzdGF0aWMgdm9pZAogaWxrX2R1bW15X3dyaXRlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKQEAgLTYxOCwzMyArNjIwLDIzIEBAIHN0YXRpYyB1IyN4IFwKIGNodl9y ZWFkIyN4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgb2ZmX3QgcmVnLCBib29s IHRyYWNlKSB7IFwKIAl1bnNpZ25lZCBmd2VuZ2luZSA9IDA7IFwKIAlSRUdfUkVBRF9IRUFERVIo eCk7IFwKLQlpZiAoRk9SQ0VXQUtFX0NIVl9SRU5ERVJfUkFOR0VfT0ZGU0VUKHJlZykpIFwKLQkJ ZndlbmdpbmUgPSBGT1JDRVdBS0VfUkVOREVSOyBcCi0JZWxzZSBpZiAoRk9SQ0VXQUtFX0NIVl9N RURJQV9SQU5HRV9PRkZTRVQocmVnKSkgXAotCQlmd2VuZ2luZSA9IEZPUkNFV0FLRV9NRURJQTsg XAotCWVsc2UgaWYgKEZPUkNFV0FLRV9DSFZfQ09NTU9OX1JBTkdFX09GRlNFVChyZWcpKSBcCi0J CWZ3ZW5naW5lID0gRk9SQ0VXQUtFX0FMTDsgXAotCWlmIChGT1JDRVdBS0VfUkVOREVSICYgZndl bmdpbmUpIHsgXAotCQlpZiAoZGV2X3ByaXYtPnVuY29yZS5md19yZW5kZXJjb3VudCsrID09IDAp IFwKLQkJCShkZXZfcHJpdiktPnVuY29yZS5mdW5jcy5mb3JjZV93YWtlX2dldChkZXZfcHJpdiwg XAotCQkJCQkJCQlmd2VuZ2luZSk7IFwKLQl9IFwKLQlpZiAoRk9SQ0VXQUtFX01FRElBICYgZndl bmdpbmUpIHsgXAotCQlpZiAoZGV2X3ByaXYtPnVuY29yZS5md19tZWRpYWNvdW50KysgPT0gMCkg XAotCQkJKGRldl9wcml2KS0+dW5jb3JlLmZ1bmNzLmZvcmNlX3dha2VfZ2V0KGRldl9wcml2LCBc Ci0JCQkJCQkJCWZ3ZW5naW5lKTsgXAorCWlmIChGT1JDRVdBS0VfQ0hWX1JFTkRFUl9SQU5HRV9P RkZTRVQocmVnKSkgeyBcCisJCWlmIChkZXZfcHJpdi0+dW5jb3JlLmZ3X3JlbmRlcmNvdW50ID09 IDApIFwKKwkJCWZ3ZW5naW5lID0gRk9SQ0VXQUtFX1JFTkRFUjsgXAorCX0gZWxzZSBpZiAoRk9S Q0VXQUtFX0NIVl9NRURJQV9SQU5HRV9PRkZTRVQocmVnKSkgeyBcCisJCWlmIChkZXZfcHJpdi0+ dW5jb3JlLmZ3X21lZGlhY291bnQgPT0gMCkgXAorCQkJZndlbmdpbmUgPSBGT1JDRVdBS0VfTUVE SUE7IFwKKwl9IGVsc2UgaWYgKEZPUkNFV0FLRV9DSFZfQ09NTU9OX1JBTkdFX09GRlNFVChyZWcp KSB7IFwKKwkJaWYgKGRldl9wcml2LT51bmNvcmUuZndfcmVuZGVyY291bnQgPT0gMCkgXAorCQkJ ZndlbmdpbmUgfD0gRk9SQ0VXQUtFX1JFTkRFUjsgXAorCQlpZiAoZGV2X3ByaXYtPnVuY29yZS5m d19tZWRpYWNvdW50ID09IDApIFwKKwkJCWZ3ZW5naW5lIHw9IEZPUkNFV0FLRV9NRURJQTsgXAog CX0gXAorCWlmIChmd2VuZ2luZSkgXAorCQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLmZvcmNlX3dh a2VfZ2V0KGRldl9wcml2LCBmd2VuZ2luZSk7IFwKIAl2YWwgPSBfX3Jhd19pOTE1X3JlYWQjI3go ZGV2X3ByaXYsIHJlZyk7IFwKLQlpZiAoRk9SQ0VXQUtFX1JFTkRFUiAmIGZ3ZW5naW5lKSB7IFwK LQkJaWYgKC0tZGV2X3ByaXYtPnVuY29yZS5md19yZW5kZXJjb3VudCA9PSAwKSBcCi0JCQkoZGV2 X3ByaXYpLT51bmNvcmUuZnVuY3MuZm9yY2Vfd2FrZV9wdXQoZGV2X3ByaXYsIFwKLQkJCQkJCQkJ ZndlbmdpbmUpOyBcCi0JfSBcCi0JaWYgKEZPUkNFV0FLRV9NRURJQSAmIGZ3ZW5naW5lKSB7IFwK LQkJaWYgKC0tZGV2X3ByaXYtPnVuY29yZS5md19tZWRpYWNvdW50ID09IDApIFwKLQkJCShkZXZf cHJpdiktPnVuY29yZS5mdW5jcy5mb3JjZV93YWtlX3B1dChkZXZfcHJpdiwgXAotCQkJCQkJCQlm d2VuZ2luZSk7IFwKLQl9IFwKKwlpZiAoZndlbmdpbmUpIFwKKwkJZGV2X3ByaXYtPnVuY29yZS5m dW5jcy5mb3JjZV93YWtlX3B1dChkZXZfcHJpdiwgZndlbmdpbmUpOyBcCiAJUkVHX1JFQURfRk9P VEVSOyBcCiB9CiAKQEAgLTc3OCwzNSArNzcwLDI3IEBAIGdlbjhfd3JpdGUjI3goc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBvZmZfdCByZWcsIHUjI3ggdmFsLCBib29sIHRyYWNl CiBzdGF0aWMgdm9pZCBcCiBjaHZfd3JpdGUjI3goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LCBvZmZfdCByZWcsIHUjI3ggdmFsLCBib29sIHRyYWNlKSB7IFwKIAl1bnNpZ25lZCBm d2VuZ2luZSA9IDA7IFwKLQlib29sIF9fbmVlZHNfcHV0ID0gIWlzX2dlbjhfc2hhZG93ZWQoZGV2 X3ByaXYsIHJlZyk7IFwKKwlib29sIHNoYWRvd2VkID0gaXNfZ2VuOF9zaGFkb3dlZChkZXZfcHJp diwgcmVnKTsgXAogCVJFR19XUklURV9IRUFERVI7IFwKLQlpZiAoRk9SQ0VXQUtFX0NIVl9SRU5E RVJfUkFOR0VfT0ZGU0VUKHJlZykpIFwKLQkJZndlbmdpbmUgPSBGT1JDRVdBS0VfUkVOREVSOyBc Ci0JZWxzZSBpZiAoRk9SQ0VXQUtFX0NIVl9NRURJQV9SQU5HRV9PRkZTRVQocmVnKSkgXAotCQlm d2VuZ2luZSA9IEZPUkNFV0FLRV9NRURJQTsgXAotCWVsc2UgaWYgKEZPUkNFV0FLRV9DSFZfQ09N TU9OX1JBTkdFX09GRlNFVChyZWcpKSBcCi0JCWZ3ZW5naW5lID0gRk9SQ0VXQUtFX0FMTDsgXAot CWlmIChfX25lZWRzX3B1dCAmJiAoRk9SQ0VXQUtFX1JFTkRFUiAmIGZ3ZW5naW5lKSkgeyBcCi0J CQlpZiAoZGV2X3ByaXYtPnVuY29yZS5md19yZW5kZXJjb3VudCsrID09IDApIFwKLQkJCQkoZGV2 X3ByaXYpLT51bmNvcmUuZnVuY3MuZm9yY2Vfd2FrZV9nZXQoZGV2X3ByaXYsIFwKLQkJCQkJCQkJ CWZ3ZW5naW5lKTsgXAotCX0gXAotCWlmIChfX25lZWRzX3B1dCAmJiAoRk9SQ0VXQUtFX01FRElB ICYgZndlbmdpbmUpKSB7IFwKLQkJaWYgKGRldl9wcml2LT51bmNvcmUuZndfbWVkaWFjb3VudCsr ID09IDApIFwKLQkJCShkZXZfcHJpdiktPnVuY29yZS5mdW5jcy5mb3JjZV93YWtlX2dldChkZXZf cHJpdiwgXAotCQkJCQkJCQlmd2VuZ2luZSk7IFwKKwlpZiAoIXNoYWRvd2VkKSB7IFwKKwkJaWYg KEZPUkNFV0FLRV9DSFZfUkVOREVSX1JBTkdFX09GRlNFVChyZWcpKSB7IFwKKwkJCWlmIChkZXZf cHJpdi0+dW5jb3JlLmZ3X3JlbmRlcmNvdW50ID09IDApIFwKKwkJCQlmd2VuZ2luZSA9IEZPUkNF V0FLRV9SRU5ERVI7IFwKKwkJfSBlbHNlIGlmIChGT1JDRVdBS0VfQ0hWX01FRElBX1JBTkdFX09G RlNFVChyZWcpKSB7IFwKKwkJCWlmIChkZXZfcHJpdi0+dW5jb3JlLmZ3X21lZGlhY291bnQgPT0g MCkgXAorCQkJCWZ3ZW5naW5lID0gRk9SQ0VXQUtFX01FRElBOyBcCisJCX0gZWxzZSBpZiAoRk9S Q0VXQUtFX0NIVl9DT01NT05fUkFOR0VfT0ZGU0VUKHJlZykpIHsgXAorCQkJaWYgKGRldl9wcml2 LT51bmNvcmUuZndfcmVuZGVyY291bnQgPT0gMCkgXAorCQkJCWZ3ZW5naW5lIHw9IEZPUkNFV0FL RV9SRU5ERVI7IFwKKwkJCWlmIChkZXZfcHJpdi0+dW5jb3JlLmZ3X21lZGlhY291bnQgPT0gMCkg XAorCQkJCWZ3ZW5naW5lIHw9IEZPUkNFV0FLRV9NRURJQTsgXAorCQl9IFwKIAl9IFwKKwlpZiAo ZndlbmdpbmUpIFwKKwkJZGV2X3ByaXYtPnVuY29yZS5mdW5jcy5mb3JjZV93YWtlX2dldChkZXZf cHJpdiwgZndlbmdpbmUpOyBcCiAJX19yYXdfaTkxNV93cml0ZSMjeChkZXZfcHJpdiwgcmVnLCB2 YWwpOyBcCi0JaWYgKF9fbmVlZHNfcHV0ICYmIChGT1JDRVdBS0VfUkVOREVSICYgZndlbmdpbmUp KSB7IFwKLQkJCWlmICgtLWRldl9wcml2LT51bmNvcmUuZndfcmVuZGVyY291bnQgPT0gMCkgXAot CQkJCShkZXZfcHJpdiktPnVuY29yZS5mdW5jcy5mb3JjZV93YWtlX3B1dChkZXZfcHJpdiwgXAot CQkJCQkJCQkJZndlbmdpbmUpOyBcCi0JfSBcCi0JaWYgKF9fbmVlZHNfcHV0ICYmIChGT1JDRVdB S0VfTUVESUEgJiBmd2VuZ2luZSkpIHsgXAotCQlpZiAoLS1kZXZfcHJpdi0+dW5jb3JlLmZ3X21l ZGlhY291bnQgPT0gMCkgXAotCQkJKGRldl9wcml2KS0+dW5jb3JlLmZ1bmNzLmZvcmNlX3dha2Vf cHV0KGRldl9wcml2LCBcCi0JCQkJCQkJCWZ3ZW5naW5lKTsgXAotCX0gXAorCWlmIChmd2VuZ2lu ZSkgXAorCQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLmZvcmNlX3dha2VfcHV0KGRldl9wcml2LCBm d2VuZ2luZSk7IFwKIAlSRUdfV1JJVEVfRk9PVEVSOyBcCiB9CiAKLS0gCjEuOS4xCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=