From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id EE0046EAD3 for ; Wed, 24 Jun 2020 10:55:00 +0000 (UTC) From: =?UTF-8?q?Zbigniew=20Kempczy=C5=84ski?= Date: Wed, 24 Jun 2020 12:54:47 +0200 Message-Id: <20200624105448.26583-4-zbigniew.kempczynski@intel.com> In-Reply-To: <20200624105448.26583-1-zbigniew.kempczynski@intel.com> References: <20200624105448.26583-1-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v6 3/4] tests/api_intel_bb: Add intel_bb API test 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: igt-dev@lists.freedesktop.org Cc: Chris Wilson List-ID: SUdUIGNvZGUgY29udGFpbnMgc29tZSBtZWNoYW5pc21zIHdoaWNoIGFyZSBxdWl0ZSBsYXJnZSBh bmQgY292ZXIKZGlmZmVyZW50IGdlbnMgc28gdGhleSBkZXNlcnZlIG93biBhcGlfKiBjaGVja3Mu CgpTdGFydGluZyB3aXRoIGFwaV9pbnRlbF9iYiB2ZXJpZnkgaW50ZWxfYmIgZnVuY3Rpb25zIHdv cmsgYXMgZXhwZWN0ZWQuCgpTaWduZWQtb2ZmLWJ5OiBaYmlnbmlldyBLZW1wY3p5xYRza2kgPHpi aWduaWV3LmtlbXBjenluc2tpQGludGVsLmNvbT4KQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hy aXMtd2lsc29uLmNvLnVrPgotLS0KIHRlc3RzL2k5MTUvYXBpX2ludGVsX2JiLmMgfCA1NzcgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHRlc3RzL21lc29uLmJ1aWxkICAg ICAgICAgfCAgIDEgKwogMiBmaWxlcyBjaGFuZ2VkLCA1NzggaW5zZXJ0aW9ucygrKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHRlc3RzL2k5MTUvYXBpX2ludGVsX2JiLmMKCmRpZmYgLS1naXQgYS90ZXN0 cy9pOTE1L2FwaV9pbnRlbF9iYi5jIGIvdGVzdHMvaTkxNS9hcGlfaW50ZWxfYmIuYwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uYWEyY2NjNGYKLS0tIC9kZXYvbnVsbAorKysg Yi90ZXN0cy9pOTE1L2FwaV9pbnRlbF9iYi5jCkBAIC0wLDAgKzEsNTc3IEBACisvKgorICogQ29w eXJpZ2h0IMKpIDIwMjAgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhl cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQor ICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls ZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQg cmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMg dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNl bnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1p dCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28s IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBj b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhl IG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBz dWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZU V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBF WFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhF IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERB TUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O VFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4g Q09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdT CisgKiBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2luY2x1ZGUgImlndC5oIgorI2luY2x1ZGUg PHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5j bHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxpbnR0eXBlcy5o PgorI2luY2x1ZGUgPGNhaXJvLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzeXMv c3RhdC5oPgorI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorI2luY2x1ZGUgImludGVsX2J1Zm9wcy5o IgorCisjZGVmaW5lIFBBR0VfU0laRSA0MDk2CisKKyNkZWZpbmUgV0lEVEggNjQKKyNkZWZpbmUg SEVJR0hUIDY0CisjZGVmaW5lIENPTE9SXzAwCTB4MDAKKyNkZWZpbmUgQ09MT1JfMzMJMHgzMwor I2RlZmluZSBDT0xPUl83NwkweDc3CisjZGVmaW5lIENPTE9SX0NDCTB4Y2MKKworSUdUX1RFU1Rf REVTQ1JJUFRJT04oImludGVsX2JiIEFQSSBjaGVjay4iKTsKKworZW51bSByZWxvY19vYmplY3Rz IHsKKwlSRUxPQywKKwlOT1JFTE9DLAorfTsKKworZW51bSBvYmpfY2FjaGVfb3BzIHsKKwlQVVJH RV9DQUNIRSwKKwlLRUVQX0NBQ0hFLAorfTsKKworc3RhdGljIGJvb2wgZGVidWdfYmIgPSBmYWxz ZTsKK3N0YXRpYyBib29sIHdyaXRlX3BuZyA9IGZhbHNlOworc3RhdGljIGJvb2wgYnVmX2luZm8g PSBmYWxzZTsKKworc3RhdGljIHZvaWQgKmFsbG9jX2FsaWduZWQodWludDY0X3Qgc2l6ZSkKK3sK Kwl2b2lkICpwOworCisJaWd0X2Fzc2VydF9lcShwb3NpeF9tZW1hbGlnbigmcCwgMTYsIHNpemUp LCAwKTsKKworCXJldHVybiBwOworfQorCitzdGF0aWMgdm9pZCBmaWxsX2J1ZihzdHJ1Y3QgaW50 ZWxfYnVmICpidWYsIHVpbnQ4X3QgY29sb3IpCit7CisJdWludDhfdCAqcHRyOworCWludCBpOTE1 ID0gYnVmX29wc19nZXRfZmQoYnVmLT5ib3BzKTsKKwlpbnQgaTsKKworCXB0ciA9IGdlbV9tbWFw X19kZXZpY2VfY29oZXJlbnQoaTkxNSwgYnVmLT5oYW5kbGUsIDAsIGJ1Zi0+c2l6ZSwKKwkJCQkJ UFJPVF9XUklURSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgYnVmLT5zaXplOyBpKyspCisJCXB0cltp XSA9IGNvbG9yOworCisJbXVubWFwKHB0ciwgYnVmLT5zaXplKTsKK30KKworc3RhdGljIHZvaWQg Y2hlY2tfYnVmKHN0cnVjdCBpbnRlbF9idWYgKmJ1ZiwgdWludDhfdCBjb2xvcikKK3sKKwl1aW50 OF90ICpwdHI7CisJaW50IGk5MTUgPSBidWZfb3BzX2dldF9mZChidWYtPmJvcHMpOworCWludCBp OworCisJcHRyID0gZ2VtX21tYXBfX2RldmljZV9jb2hlcmVudChpOTE1LCBidWYtPmhhbmRsZSwg MCwgYnVmLT5zaXplLAorCQkJCQlQUk9UX1JFQUQpOworCisJZm9yIChpID0gMDsgaSA8IGJ1Zi0+ c2l6ZTsgaSsrKQorCQlpZ3RfYXNzZXJ0KHB0cltpXSA9PSBjb2xvcik7CisKKwltdW5tYXAocHRy LCBidWYtPnNpemUpOworfQorCisKK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfYnVmICoKK2NyZWF0ZV9i dWYoc3RydWN0IGJ1Zl9vcHMgKmJvcHMsIGludCB3aWR0aCwgaW50IGhlaWdodCwgdWludDhfdCBj b2xvcikKK3sKKwlzdHJ1Y3QgaW50ZWxfYnVmICpidWY7CisKKwlidWYgPSBjYWxsb2MoMSwgc2l6 ZW9mKCpidWYpKTsKKwlpZ3RfYXNzZXJ0KGJ1Zik7CisKKwlpbnRlbF9idWZfaW5pdChib3BzLCBi dWYsIHdpZHRoLzQsIGhlaWdodCwgMzIsIDAsIEk5MTVfVElMSU5HX05PTkUsIDApOworCWZpbGxf YnVmKGJ1ZiwgY29sb3IpOworCisJcmV0dXJuIGJ1ZjsKK30KKworc3RhdGljIHZvaWQgcHJpbnRf YnVmKHN0cnVjdCBpbnRlbF9idWYgKmJ1ZiwgY29uc3QgY2hhciAqbmFtZSkKK3sKKwl1aW50OF90 ICpwdHI7CisJaW50IGk5MTUgPSBidWZfb3BzX2dldF9mZChidWYtPmJvcHMpOworCisJcHRyID0g Z2VtX21tYXBfX2RldmljZV9jb2hlcmVudChpOTE1LCBidWYtPmhhbmRsZSwgMCwgYnVmLT5zaXpl LAorCQkJCQlQUk9UX1JFQUQpOworCWlndF9kZWJ1ZygiWyVzXSBCdWYgaGFuZGxlOiAlZCwgc2l6 ZTogJWQsIHY6IDB4JTAyeFxuIiwgbmFtZSwKKwkJICBidWYtPmhhbmRsZSwgYnVmLT5zaXplLCBw dHJbMF0pOworCW11bm1hcChwdHIsIGJ1Zi0+c2l6ZSk7Cit9CisKK3N0YXRpYyB2b2lkIHNpbXBs ZV9iYihzdHJ1Y3QgYnVmX29wcyAqYm9wcywgYm9vbCB1c2VfY29udGV4dCkKK3sKKwlpbnQgaTkx NSA9IGJ1Zl9vcHNfZ2V0X2ZkKGJvcHMpOworCXN0cnVjdCBpbnRlbF9iYiAqaWJiOworCXVpbnQz Ml90IGN0eDsKKworCWlmICh1c2VfY29udGV4dCkgeworCQlnZW1fcmVxdWlyZV9jb250ZXh0cyhp OTE1KTsKKwkJY3R4ID0gZ2VtX2NvbnRleHRfY3JlYXRlKGk5MTUpOworCX0KKworCWliYiA9IGlu dGVsX2JiX2NyZWF0ZShpOTE1LCBQQUdFX1NJWkUpOworCWlmIChkZWJ1Z19iYikKKwkJaW50ZWxf YmJfc2V0X2RlYnVnKGliYiwgdHJ1ZSk7CisKKwlpbnRlbF9iYl9vdXQoaWJiLCBNSV9CQVRDSF9C VUZGRVJfRU5EKTsKKwlpbnRlbF9iYl9wdHJfYWxpZ24oaWJiLCA4KTsKKworCWludGVsX2JiX2V4 ZWMoaWJiLCBpbnRlbF9iYl9vZmZzZXQoaWJiKSwKKwkJICAgICAgSTkxNV9FWEVDX0RFRkFVTFQg fCBJOTE1X0VYRUNfTk9fUkVMT0MsIHRydWUpOworCisJLyogQ2hlY2sgd2UncmUgc2FmZSB3aXRo IHJlc2V0IGFuZCBubyBkb3VibGUtZnJlZSB3aWxsIG9jY3VyICovCisJaW50ZWxfYmJfcmVzZXQo aWJiLCB0cnVlKTsKKwlpbnRlbF9iYl9yZXNldChpYmIsIGZhbHNlKTsKKwlpbnRlbF9iYl9yZXNl dChpYmIsIHRydWUpOworCisJaW50ZWxfYmJfb3V0KGliYiwgTUlfQkFUQ0hfQlVGRkVSX0VORCk7 CisJaW50ZWxfYmJfcHRyX2FsaWduKGliYiwgOCk7CisKKwlpZiAodXNlX2NvbnRleHQpCisJCWlu dGVsX2JiX2V4ZWNfd2l0aF9jb250ZXh0KGliYiwgaW50ZWxfYmJfb2Zmc2V0KGliYiksIGN0eCwK KwkJCQkJICAgSTkxNV9FWEVDX0RFRkFVTFQgfCBJOTE1X0VYRUNfTk9fUkVMT0MsCisJCQkJCSAg IHRydWUpOworCisJaW50ZWxfYmJfZGVzdHJveShpYmIpOworCWlmICh1c2VfY29udGV4dCkKKwkJ Z2VtX2NvbnRleHRfZGVzdHJveShpOTE1LCBjdHgpOworfQorCitzdGF0aWMgdm9pZCBfX2VtaXRf YmxpdChzdHJ1Y3QgaW50ZWxfYmIgKmliYiwKKwkJCXN0cnVjdCBpbnRlbF9idWYgKnNyYywgc3Ry dWN0IGludGVsX2J1ZiAqZHN0KQoreworCWJvb2wgaGFzXzY0Yl9yZWxvYzsKKworCWhhc182NGJf cmVsb2MgPSBpYmItPmdlbiA+PSA4OworCisJaW50ZWxfYmJfb3V0KGliYiwKKwkJICAgICBYWV9T UkNfQ09QWV9CTFRfQ01EIHwKKwkJICAgICBYWV9TUkNfQ09QWV9CTFRfV1JJVEVfQUxQSEEgfAor CQkgICAgIFhZX1NSQ19DT1BZX0JMVF9XUklURV9SR0IgfAorCQkgICAgICg2ICsgMiAqIGhhc182 NGJfcmVsb2MpKTsKKwlpbnRlbF9iYl9vdXQoaWJiLCAzIDw8IDI0IHwgMHhjYyA8PCAxNiB8IGRz dC0+c3RyaWRlKTsKKwlpbnRlbF9iYl9vdXQoaWJiLCAwKTsKKwlpbnRlbF9iYl9vdXQoaWJiLCBp bnRlbF9idWZfaGVpZ2h0KGRzdCkgPDwgMTYgfCBpbnRlbF9idWZfd2lkdGgoZHN0KSk7CisJaW50 ZWxfYmJfZW1pdF9yZWxvY19mZW5jZWQoaWJiLCBkc3QtPmhhbmRsZSwKKwkJCQkgICBJOTE1X0dF TV9ET01BSU5fUkVOREVSLAorCQkJCSAgIEk5MTVfR0VNX0RPTUFJTl9SRU5ERVIsCisJCQkJICAg MCwgMHgwKTsKKwlpbnRlbF9iYl9vdXQoaWJiLCAwKTsKKwlpbnRlbF9iYl9vdXQoaWJiLCBzcmMt PnN0cmlkZSk7CisJaW50ZWxfYmJfZW1pdF9yZWxvY19mZW5jZWQoaWJiLCBzcmMtPmhhbmRsZSwK KwkJCQkgICBJOTE1X0dFTV9ET01BSU5fUkVOREVSLCAwLAorCQkJCSAgIDAsIDB4MCk7Cit9CisK K3N0YXRpYyB2b2lkIGJsaXQoc3RydWN0IGJ1Zl9vcHMgKmJvcHMsCisJCSBlbnVtIHJlbG9jX29i amVjdHMgcmVsb2Nfb2JqLAorCQkgZW51bSBvYmpfY2FjaGVfb3BzIGNhY2hlX29wKQoreworCWlu dCBpOTE1ID0gYnVmX29wc19nZXRfZmQoYm9wcyk7CisJc3RydWN0IGludGVsX2JiICppYmI7CisJ c3RydWN0IGludGVsX2J1ZiAqc3JjLCAqZHN0OworCXVpbnQ2NF90IHBvZmZfYmIsIHBvZmZfc3Jj LCBwb2ZmX2RzdDsKKwl1aW50NjRfdCBwb2ZmMl9iYiwgcG9mZjJfc3JjLCBwb2ZmMl9kc3Q7CisJ dWludDY0X3QgZmxhZ3MgPSAwOworCWJvb2wgcHVyZ2VfY2FjaGUgPSBjYWNoZV9vcCA9PSBQVVJH RV9DQUNIRSA/IHRydWUgOiBmYWxzZTsKKwlib29sIGRvX3JlbG9jcyA9IHJlbG9jX29iaiA9PSBS RUxPQyA/IHRydWUgOiBmYWxzZTsKKworCXNyYyA9IGNyZWF0ZV9idWYoYm9wcywgV0lEVEgsIEhF SUdIVCwgQ09MT1JfQ0MpOworCWRzdCA9IGNyZWF0ZV9idWYoYm9wcywgV0lEVEgsIEhFSUdIVCwg Q09MT1JfMDApOworCisJaWYgKGJ1Zl9pbmZvKSB7CisJCXByaW50X2J1ZihzcmMsICJzcmMiKTsK KwkJcHJpbnRfYnVmKGRzdCwgImRzdCIpOworCX0KKworCWlmIChkb19yZWxvY3MpIHsKKwkJaWJi ID0gaW50ZWxfYmJfY3JlYXRlX3dpdGhfcmVsb2NzKGk5MTUsIFBBR0VfU0laRSk7CisJfSBlbHNl IHsKKwkJaWJiID0gaW50ZWxfYmJfY3JlYXRlKGk5MTUsIFBBR0VfU0laRSk7CisJCWZsYWdzIHw9 IEk5MTVfRVhFQ19OT19SRUxPQzsKKwl9CisKKwlpZiAoaWJiLT5nZW4gPj0gNikKKwkJZmxhZ3Mg fD0gSTkxNV9FWEVDX0JMVDsKKworCWlmIChkZWJ1Z19iYikKKwkJaW50ZWxfYmJfc2V0X2RlYnVn KGliYiwgdHJ1ZSk7CisKKwlfX2VtaXRfYmxpdChpYmIsIHNyYywgZHN0KTsKKworCS8qIFdlIGV4 cGVjdCBpbml0aWFsIGFkZHJlc3NlcyBhcmUgemVyb2VkIGZvciByZWxvY3MgKi8KKwlpZiAocmVs b2Nfb2JqID09IFJFTE9DKSB7CisJCWlndF9hc3NlcnQoaW50ZWxfYmJfZ2V0X29iamVjdF9vZmZz ZXQoaWJiLCBpYmItPmhhbmRsZSkgPT0gMCk7CisJCWlndF9hc3NlcnQoaW50ZWxfYmJfZ2V0X29i amVjdF9vZmZzZXQoaWJiLCBzcmMtPmhhbmRsZSkgPT0gMCk7CisJCWlndF9hc3NlcnQoaW50ZWxf YmJfZ2V0X29iamVjdF9vZmZzZXQoaWJiLCBkc3QtPmhhbmRsZSkgPT0gMCk7CisJfQorCisJaW50 ZWxfYmJfb3V0X2ZsdXNoKGliYik7CisJaWd0X2luZm8oImZsYWdzMTogJSIgUFJJWDY0ICJcbiIs IGZsYWdzKTsKKwlpbnRlbF9iYl9leGVjKGliYiwgaW50ZWxfYmJfb2Zmc2V0KGliYiksIGZsYWdz LCB0cnVlKTsKKwljaGVja19idWYoZHN0LCBDT0xPUl9DQyk7CisKKwlwb2ZmX2JiID0gaW50ZWxf YmJfZ2V0X29iamVjdF9vZmZzZXQoaWJiLCBpYmItPmhhbmRsZSk7CisJcG9mZl9zcmMgPSBpbnRl bF9iYl9nZXRfb2JqZWN0X29mZnNldChpYmIsIHNyYy0+aGFuZGxlKTsKKwlwb2ZmX2RzdCA9IGlu dGVsX2JiX2dldF9vYmplY3Rfb2Zmc2V0KGliYiwgZHN0LT5oYW5kbGUpOworCWlndF9kZWJ1Zygi YmIgIHByZXN1bWVkIG9mZnNldDogMHglbHhcbiIsIHBvZmZfYmIpOworCWlndF9kZWJ1Zygic3Jj IHByZXN1bWVkIG9mZnNldDogMHglbHhcbiIsIHBvZmZfc3JjKTsKKwlpZ3RfZGVidWcoImRzdCBw cmVzdW1lZCBvZmZzZXQ6IDB4JWx4XG4iLCBwb2ZmX2RzdCk7CisKKwlpbnRlbF9iYl9yZXNldChp YmIsIHB1cmdlX2NhY2hlKTsKKworCWZpbGxfYnVmKHNyYywgQ09MT1JfNzcpOworCWZpbGxfYnVm KGRzdCwgQ09MT1JfMDApOworCisJX19lbWl0X2JsaXQoaWJiLCBzcmMsIGRzdCk7CisKKwlwb2Zm Ml9iYiA9IGludGVsX2JiX2dldF9vYmplY3Rfb2Zmc2V0KGliYiwgaWJiLT5oYW5kbGUpOworCXBv ZmYyX3NyYyA9IGludGVsX2JiX2dldF9vYmplY3Rfb2Zmc2V0KGliYiwgc3JjLT5oYW5kbGUpOwor CXBvZmYyX2RzdCA9IGludGVsX2JiX2dldF9vYmplY3Rfb2Zmc2V0KGliYiwgZHN0LT5oYW5kbGUp OworCWlndF9kZWJ1ZygiYmIyICBwcmVzdW1lZCBvZmZzZXQ6IDB4JWx4XG4iLCBwb2ZmMl9iYik7 CisJaWd0X2RlYnVnKCJzcmMyIHByZXN1bWVkIG9mZnNldDogMHglbHhcbiIsIHBvZmYyX3NyYyk7 CisJaWd0X2RlYnVnKCJkc3QyIHByZXN1bWVkIG9mZnNldDogMHglbHhcbiIsIHBvZmYyX2RzdCk7 CisJaWYgKHB1cmdlX2NhY2hlKSB7CisJCWlmIChkb19yZWxvY3MpIHsKKwkJCWlndF9hc3NlcnQo cG9mZjJfYmIgPT0gMCk7CisJCQlpZ3RfYXNzZXJ0KHBvZmYyX3NyYyA9PSAwKTsKKwkJCWlndF9h c3NlcnQocG9mZjJfZHN0ID09IDApOworCQl9IGVsc2UgeworCQkJaWd0X2Fzc2VydChwb2ZmX2Ji ICE9IHBvZmYyX2JiKTsKKwkJCWlndF9hc3NlcnQocG9mZl9zcmMgIT0gcG9mZjJfc3JjKTsKKwkJ CWlndF9hc3NlcnQocG9mZl9kc3QgIT0gcG9mZjJfZHN0KTsKKwkJfQorCX0gZWxzZSB7CisJCWln dF9hc3NlcnQocG9mZl9iYiA9PSBwb2ZmMl9iYik7CisJCWlndF9hc3NlcnQocG9mZl9zcmMgPT0g cG9mZjJfc3JjKTsKKwkJaWd0X2Fzc2VydChwb2ZmX2RzdCA9PSBwb2ZmMl9kc3QpOworCX0KKwor CWludGVsX2JiX291dF9mbHVzaChpYmIpOworCWlndF9pbmZvKCJmbGFnczI6ICUiIFBSSVg2NCAi XG4iLCBmbGFncyk7CisJaW50ZWxfYmJfZXhlYyhpYmIsIGludGVsX2JiX29mZnNldChpYmIpLCBm bGFncywgdHJ1ZSk7CisJY2hlY2tfYnVmKGRzdCwgQ09MT1JfNzcpOworCisJcG9mZjJfc3JjID0g aW50ZWxfYmJfZ2V0X29iamVjdF9vZmZzZXQoaWJiLCBzcmMtPmhhbmRsZSk7CisJcG9mZjJfZHN0 ID0gaW50ZWxfYmJfZ2V0X29iamVjdF9vZmZzZXQoaWJiLCBkc3QtPmhhbmRsZSk7CisJaWd0X2Fz c2VydChwb2ZmX3NyYyA9PSBwb2ZmMl9zcmMpOworCWlndF9hc3NlcnQocG9mZl9kc3QgPT0gcG9m ZjJfZHN0KTsKKworCWludGVsX2JiX2Rlc3Ryb3koaWJiKTsKK30KKworc3RhdGljIHZvaWQgc2Ny YXRjaF9idWZfaW5pdChzdHJ1Y3QgYnVmX29wcyAqYm9wcywKKwkJCSAgICAgc3RydWN0IGludGVs X2J1ZiAqYnVmLAorCQkJICAgICBpbnQgd2lkdGgsIGludCBoZWlnaHQsCisJCQkgICAgIHVpbnQz Ml90IHJlcV90aWxpbmcsCisJCQkgICAgIGVudW0gaTkxNV9jb21wcmVzc2lvbiBjb21wcmVzc2lv bikKK3sKKwlpbnQgYnBwID0gMzI7CisKKwlpbnRlbF9idWZfaW5pdChib3BzLCBidWYsIHdpZHRo LCBoZWlnaHQsIGJwcCwgMCwKKwkJICAgICAgIHJlcV90aWxpbmcsIGNvbXByZXNzaW9uKTsKKwor CWlndF9hc3NlcnQoaW50ZWxfYnVmX3dpZHRoKGJ1ZikgPT0gd2lkdGgpOworCWlndF9hc3NlcnQo aW50ZWxfYnVmX2hlaWdodChidWYpID09IGhlaWdodCk7Cit9CisKK3N0YXRpYyB2b2lkIHNjcmF0 Y2hfYnVmX2RyYXdfcGF0dGVybihzdHJ1Y3QgYnVmX29wcyAqYm9wcywKKwkJCQkgICAgIHN0cnVj dCBpbnRlbF9idWYgKmJ1ZiwKKwkJCQkgICAgIGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoLAor CQkJCSAgICAgaW50IGN4LCBpbnQgY3ksIGludCBjdywgaW50IGNoLAorCQkJCSAgICAgYm9vbCB1 c2VfYWx0ZXJuYXRlX2NvbG9ycykKK3sKKwljYWlyb19zdXJmYWNlX3QgKnN1cmZhY2U7CisJY2Fp cm9fcGF0dGVybl90ICpwYXQ7CisJY2Fpcm9fdCAqY3I7CisJdm9pZCAqbGluZWFyOworCisJbGlu ZWFyID0gYWxsb2NfYWxpZ25lZChidWYtPnNpemUpOworCisJc3VyZmFjZSA9IGNhaXJvX2ltYWdl X3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKGxpbmVhciwKKwkJCQkJCSAgICAgIENBSVJPX0ZPUk1B VF9SR0IyNCwKKwkJCQkJCSAgICAgIGludGVsX2J1Zl93aWR0aChidWYpLAorCQkJCQkJICAgICAg aW50ZWxfYnVmX2hlaWdodChidWYpLAorCQkJCQkJICAgICAgYnVmLT5zdHJpZGUpOworCisJY3Ig PSBjYWlyb19jcmVhdGUoc3VyZmFjZSk7CisKKwljYWlyb19yZWN0YW5nbGUoY3IsIGN4LCBjeSwg Y3csIGNoKTsKKwljYWlyb19jbGlwKGNyKTsKKworCXBhdCA9IGNhaXJvX3BhdHRlcm5fY3JlYXRl X21lc2goKTsKKwljYWlyb19tZXNoX3BhdHRlcm5fYmVnaW5fcGF0Y2gocGF0KTsKKwljYWlyb19t ZXNoX3BhdHRlcm5fbW92ZV90byhwYXQsIHgsICAgeSk7CisJY2Fpcm9fbWVzaF9wYXR0ZXJuX2xp bmVfdG8ocGF0LCB4K3csIHkpOworCWNhaXJvX21lc2hfcGF0dGVybl9saW5lX3RvKHBhdCwgeCt3 LCB5K2gpOworCWNhaXJvX21lc2hfcGF0dGVybl9saW5lX3RvKHBhdCwgeCwgICB5K2gpOworCWlm ICh1c2VfYWx0ZXJuYXRlX2NvbG9ycykgeworCQljYWlyb19tZXNoX3BhdHRlcm5fc2V0X2Nvcm5l cl9jb2xvcl9yZ2IocGF0LCAwLCAwLjAsIDEuMCwgMS4wKTsKKwkJY2Fpcm9fbWVzaF9wYXR0ZXJu X3NldF9jb3JuZXJfY29sb3JfcmdiKHBhdCwgMSwgMS4wLCAwLjAsIDEuMCk7CisJCWNhaXJvX21l c2hfcGF0dGVybl9zZXRfY29ybmVyX2NvbG9yX3JnYihwYXQsIDIsIDEuMCwgMS4wLCAwLjApOwor CQljYWlyb19tZXNoX3BhdHRlcm5fc2V0X2Nvcm5lcl9jb2xvcl9yZ2IocGF0LCAzLCAwLjAsIDAu MCwgMC4wKTsKKwl9IGVsc2UgeworCQljYWlyb19tZXNoX3BhdHRlcm5fc2V0X2Nvcm5lcl9jb2xv cl9yZ2IocGF0LCAwLCAxLjAsIDAuMCwgMC4wKTsKKwkJY2Fpcm9fbWVzaF9wYXR0ZXJuX3NldF9j b3JuZXJfY29sb3JfcmdiKHBhdCwgMSwgMC4wLCAxLjAsIDAuMCk7CisJCWNhaXJvX21lc2hfcGF0 dGVybl9zZXRfY29ybmVyX2NvbG9yX3JnYihwYXQsIDIsIDAuMCwgMC4wLCAxLjApOworCQljYWly b19tZXNoX3BhdHRlcm5fc2V0X2Nvcm5lcl9jb2xvcl9yZ2IocGF0LCAzLCAxLjAsIDEuMCwgMS4w KTsKKwl9CisJY2Fpcm9fbWVzaF9wYXR0ZXJuX2VuZF9wYXRjaChwYXQpOworCisJY2Fpcm9fcmVj dGFuZ2xlKGNyLCB4LCB5LCB3LCBoKTsKKwljYWlyb19zZXRfc291cmNlKGNyLCBwYXQpOworCWNh aXJvX2ZpbGwoY3IpOworCWNhaXJvX3BhdHRlcm5fZGVzdHJveShwYXQpOworCisJY2Fpcm9fZGVz dHJveShjcik7CisKKwljYWlyb19zdXJmYWNlX2Rlc3Ryb3koc3VyZmFjZSk7CisKKwlsaW5lYXJf dG9faW50ZWxfYnVmKGJvcHMsIGJ1ZiwgbGluZWFyKTsKKworCWZyZWUobGluZWFyKTsKK30KKwor c3RhdGljIGJvb2wgY29tcGFyZV9idWZzKHN0cnVjdCBpbnRlbF9idWYgKmJ1ZjEsIHN0cnVjdCBp bnRlbF9idWYgKmJ1ZjIpCit7CisJdm9pZCAqcHRyMSwgKnB0cjI7CisJaW50IGZkMSwgZmQyLCBy ZXQ7CisKKwlpZ3RfYXNzZXJ0KGJ1ZjEtPnNpemUgPT0gYnVmMi0+c2l6ZSk7CisKKwlmZDEgPSBi dWZfb3BzX2dldF9mZChidWYxLT5ib3BzKTsKKwlmZDIgPSBidWZfb3BzX2dldF9mZChidWYyLT5i b3BzKTsKKworCXB0cjEgPSBnZW1fbW1hcF9fZGV2aWNlX2NvaGVyZW50KGZkMSwgYnVmMS0+aGFu ZGxlLCAwLCBidWYxLT5zaXplLAorCQkJCQkgUFJPVF9SRUFEKTsKKwlwdHIyID0gZ2VtX21tYXBf X2RldmljZV9jb2hlcmVudChmZDIsIGJ1ZjItPmhhbmRsZSwgMCwgYnVmMi0+c2l6ZSwKKwkJCQkJ IFBST1RfUkVBRCk7CisJcmV0ID0gbWVtY21wKHB0cjEsIHB0cjIsIGJ1ZjEtPnNpemUpOworCisJ bXVubWFwKHB0cjEsIGJ1ZjEtPnNpemUpOworCW11bm1hcChwdHIyLCBidWYyLT5zaXplKTsKKwor CXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIGRvX2ludGVsX2JiX2JsaXQoc3RydWN0IGJ1 Zl9vcHMgKmJvcHMpCit7CisJc3RydWN0IGludGVsX2JiICppYmI7CisJY29uc3QgaW50IHdpZHRo ID0gMTAyNDsKKwljb25zdCBpbnQgaGVpZ2h0ID0gMTAyNDsKKwlzdHJ1Y3QgaW50ZWxfYnVmIHNy YywgZHN0LCBmaW5hbDsKKwlpbnQgaTkxNSA9IGJ1Zl9vcHNfZ2V0X2ZkKGJvcHMpOworCisJZ2Vt X3JlcXVpcmVfYmxpdHRlcihpOTE1KTsKKworCWliYiA9IGludGVsX2JiX2NyZWF0ZShpOTE1LCBQ QUdFX1NJWkUpOworCWlmIChkZWJ1Z19iYikKKwkJaW50ZWxfYmJfc2V0X2RlYnVnKGliYiwgdHJ1 ZSk7CisKKwlzY3JhdGNoX2J1Zl9pbml0KGJvcHMsICZzcmMsIHdpZHRoLCBoZWlnaHQsIEk5MTVf VElMSU5HX05PTkUsCisJCQkgSTkxNV9DT01QUkVTU0lPTl9OT05FKTsKKwlzY3JhdGNoX2J1Zl9p bml0KGJvcHMsICZkc3QsIHdpZHRoLCBoZWlnaHQsIEk5MTVfVElMSU5HX1ksCisJCQkgSTkxNV9D T01QUkVTU0lPTl9OT05FKTsKKwlzY3JhdGNoX2J1Zl9pbml0KGJvcHMsICZmaW5hbCwgd2lkdGgs IGhlaWdodCwgSTkxNV9USUxJTkdfTk9ORSwKKwkJCSBJOTE1X0NPTVBSRVNTSU9OX05PTkUpOwor CisJaWYgKGJ1Zl9pbmZvKSB7CisJCWludGVsX2J1Zl9wcmludCgmc3JjKTsKKwkJaW50ZWxfYnVm X3ByaW50KCZkc3QpOworCX0KKworCXNjcmF0Y2hfYnVmX2RyYXdfcGF0dGVybihib3BzLCAmc3Jj LAorCQkJCSAwLCAwLCB3aWR0aCwgaGVpZ2h0LAorCQkJCSAwLCAwLCB3aWR0aCwgaGVpZ2h0LCAw KTsKKworCWludGVsX2JiX2JsdF9jb3B5KGliYiwKKwkJCSAgJnNyYywgMCwgMCwgc3JjLnN0cmlk ZSwKKwkJCSAgJmRzdCwgMCwgMCwgZHN0LnN0cmlkZSwKKwkJCSAgaW50ZWxfYnVmX3dpZHRoKCZk c3QpLAorCQkJICBpbnRlbF9idWZfaGVpZ2h0KCZkc3QpLAorCQkJICBkc3QuYnBwKTsKKworCWlu dGVsX2JiX2JsdF9jb3B5KGliYiwKKwkJCSAgJmRzdCwgMCwgMCwgZHN0LnN0cmlkZSwKKwkJCSAg JmZpbmFsLCAwLCAwLCBmaW5hbC5zdHJpZGUsCisJCQkgIGludGVsX2J1Zl93aWR0aCgmZHN0KSwK KwkJCSAgaW50ZWxfYnVmX2hlaWdodCgmZHN0KSwKKwkJCSAgZHN0LmJwcCk7CisKKwlpbnRlbF9i Yl9kZXN0cm95KGliYik7CisKKwlpZiAod3JpdGVfcG5nKSB7CisJCWludGVsX2J1Zl93cml0ZV90 b19wbmcoJnNyYywgImJiX2JsaXRfc3JjX3RpbGluZ19ub25lLnBuZyIpOworCQlpbnRlbF9idWZf d3JpdGVfdG9fcG5nKCZkc3QsICJiYl9ibGl0X2RzdF90aWxpbmdfeS5wbmciKTsKKwkJaW50ZWxf YnVmX3dyaXRlX3RvX3BuZygmZmluYWwsICJiYl9ibGl0X2ZpbmFsX3RpbGluZ19ub25lLnBuZyIp OworCX0KKworCWlndF9hc3NlcnQoY29tcGFyZV9idWZzKCZzcmMsICZkc3QpICE9IDApOworCWln dF9hc3NlcnQoY29tcGFyZV9idWZzKCZzcmMsICZmaW5hbCkgPT0gMCk7CisKKwlpbnRlbF9idWZf Y2xvc2UoYm9wcywgJnNyYyk7CisJaW50ZWxfYnVmX2Nsb3NlKGJvcHMsICZkc3QpOworCWludGVs X2J1Zl9jbG9zZShib3BzLCAmZmluYWwpOworfQorCisKK3N0YXRpYyB2b2lkIG9mZnNldF9jb250 cm9sKHN0cnVjdCBidWZfb3BzICpib3BzKQoreworCWludCBpOTE1ID0gYnVmX29wc19nZXRfZmQo Ym9wcyk7CisJc3RydWN0IGludGVsX2JiICppYmI7CisJc3RydWN0IGludGVsX2J1ZiAqc3JjLCAq ZHN0MSwgKmRzdDIsICpkc3QzOworCXVpbnQ2NF90IHBvZmZfc3JjLCBwb2ZmX2RzdDEsIHBvZmZf ZHN0MjsKKworCWliYiA9IGludGVsX2JiX2NyZWF0ZShpOTE1LCBQQUdFX1NJWkUpOworCWlmIChk ZWJ1Z19iYikKKwkJaW50ZWxfYmJfc2V0X2RlYnVnKGliYiwgdHJ1ZSk7CisKKwlzcmMgPSBjcmVh dGVfYnVmKGJvcHMsIFdJRFRILCBIRUlHSFQsIENPTE9SX0NDKTsKKwlkc3QxID0gY3JlYXRlX2J1 Zihib3BzLCBXSURUSCwgSEVJR0hULCBDT0xPUl8wMCk7CisJZHN0MiA9IGNyZWF0ZV9idWYoYm9w cywgV0lEVEgsIEhFSUdIVCwgQ09MT1JfNzcpOworCisJaW50ZWxfYmJfYWRkX29iamVjdChpYmIs IHNyYy0+aGFuZGxlLCBzcmMtPmFkZHIub2Zmc2V0LCBmYWxzZSk7CisJaW50ZWxfYmJfYWRkX29i amVjdChpYmIsIGRzdDEtPmhhbmRsZSwgZHN0MS0+YWRkci5vZmZzZXQsIHRydWUpOworCWludGVs X2JiX2FkZF9vYmplY3QoaWJiLCBkc3QyLT5oYW5kbGUsIGRzdDItPmFkZHIub2Zmc2V0LCB0cnVl KTsKKworCWludGVsX2JiX291dChpYmIsIE1JX0JBVENIX0JVRkZFUl9FTkQpOworCWludGVsX2Ji X3B0cl9hbGlnbihpYmIsIDgpOworCisJaW50ZWxfYmJfZXhlYyhpYmIsIGludGVsX2JiX29mZnNl dChpYmIpLAorCQkgICAgICBJOTE1X0VYRUNfREVGQVVMVCB8IEk5MTVfRVhFQ19OT19SRUxPQywg ZmFsc2UpOworCisJaWYgKGJ1Zl9pbmZvKSB7CisJCXByaW50X2J1ZihzcmMsICJzcmMgIik7CisJ CXByaW50X2J1Zihkc3QxLCAiZHN0MSIpOworCQlwcmludF9idWYoZHN0MiwgImRzdDIiKTsKKwl9 CisKKwlpZ3RfYXNzZXJ0KGludGVsX2JiX29iamVjdF9vZmZzZXRfdG9fYnVmKGliYiwgc3JjKSA9 PSB0cnVlKTsKKwlpZ3RfYXNzZXJ0KGludGVsX2JiX29iamVjdF9vZmZzZXRfdG9fYnVmKGliYiwg ZHN0MSkgPT0gdHJ1ZSk7CisJaWd0X2Fzc2VydChpbnRlbF9iYl9vYmplY3Rfb2Zmc2V0X3RvX2J1 ZihpYmIsIGRzdDIpID09IHRydWUpOworCXBvZmZfc3JjID0gc3JjLT5hZGRyLm9mZnNldDsKKwlw b2ZmX2RzdDEgPSBkc3QxLT5hZGRyLm9mZnNldDsKKwlwb2ZmX2RzdDIgPSBkc3QyLT5hZGRyLm9m ZnNldDsKKwlpbnRlbF9iYl9yZXNldChpYmIsIHRydWUpOworCisJZHN0MyA9IGNyZWF0ZV9idWYo Ym9wcywgV0lEVEgsIEhFSUdIVCwgQ09MT1JfMzMpOworCWludGVsX2JiX2FkZF9vYmplY3QoaWJi LCBkc3QzLT5oYW5kbGUsIGRzdDMtPmFkZHIub2Zmc2V0LCB0cnVlKTsKKwlpbnRlbF9iYl9hZGRf b2JqZWN0KGliYiwgc3JjLT5oYW5kbGUsIHNyYy0+YWRkci5vZmZzZXQsIGZhbHNlKTsKKwlpbnRl bF9iYl9hZGRfb2JqZWN0KGliYiwgZHN0MS0+aGFuZGxlLCBkc3QxLT5hZGRyLm9mZnNldCwgdHJ1 ZSk7CisJaW50ZWxfYmJfYWRkX29iamVjdChpYmIsIGRzdDItPmhhbmRsZSwgZHN0Mi0+YWRkci5v ZmZzZXQsIHRydWUpOworCisJaW50ZWxfYmJfb3V0KGliYiwgTUlfQkFUQ0hfQlVGRkVSX0VORCk7 CisJaW50ZWxfYmJfcHRyX2FsaWduKGliYiwgOCk7CisKKwlpbnRlbF9iYl9leGVjKGliYiwgaW50 ZWxfYmJfb2Zmc2V0KGliYiksCisJCSAgICAgIEk5MTVfRVhFQ19ERUZBVUxUIHwgSTkxNV9FWEVD X05PX1JFTE9DLCBmYWxzZSk7CisJaW50ZWxfYmJfc3luYyhpYmIpOworCisJaWd0X2Fzc2VydChp bnRlbF9iYl9vYmplY3Rfb2Zmc2V0X3RvX2J1ZihpYmIsIHNyYykgPT0gdHJ1ZSk7CisJaWd0X2Fz c2VydChpbnRlbF9iYl9vYmplY3Rfb2Zmc2V0X3RvX2J1ZihpYmIsIGRzdDEpID09IHRydWUpOwor CWlndF9hc3NlcnQoaW50ZWxfYmJfb2JqZWN0X29mZnNldF90b19idWYoaWJiLCBkc3QyKSA9PSB0 cnVlKTsKKwlpZ3RfYXNzZXJ0KGludGVsX2JiX29iamVjdF9vZmZzZXRfdG9fYnVmKGliYiwgZHN0 MykgPT0gdHJ1ZSk7CisJaWd0X2Fzc2VydChwb2ZmX3NyYyA9PSBzcmMtPmFkZHIub2Zmc2V0KTsK KwlpZ3RfYXNzZXJ0KHBvZmZfZHN0MSA9PSBkc3QxLT5hZGRyLm9mZnNldCk7CisJaWd0X2Fzc2Vy dChwb2ZmX2RzdDIgPT0gZHN0Mi0+YWRkci5vZmZzZXQpOworCisJaWYgKGJ1Zl9pbmZvKSB7CisJ CXByaW50X2J1ZihzcmMsICJzcmMgIik7CisJCXByaW50X2J1Zihkc3QxLCAiZHN0MSIpOworCQlw cmludF9idWYoZHN0MiwgImRzdDIiKTsKKwl9CisKKwlpbnRlbF9iYl9kZXN0cm95KGliYik7Cit9 CisKK3N0YXRpYyBpbnQgb3B0X2hhbmRsZXIoaW50IG9wdCwgaW50IG9wdF9pbmRleCwgdm9pZCAq ZGF0YSkKK3sKKwlzd2l0Y2ggKG9wdCkgeworCWNhc2UgJ2QnOgorCQlkZWJ1Z19iYiA9IHRydWU7 CisJCWJyZWFrOworCWNhc2UgJ3AnOgorCQl3cml0ZV9wbmcgPSB0cnVlOworCQlicmVhazsKKwlj YXNlICdpJzoKKwkJYnVmX2luZm8gPSB0cnVlOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1 cm4gSUdUX09QVF9IQU5ETEVSX0VSUk9SOworCX0KKworCXJldHVybiBJR1RfT1BUX0hBTkRMRVJf U1VDQ0VTUzsKK30KKworY29uc3QgY2hhciAqaGVscF9zdHIgPQorCSIgIC1kXHREZWJ1ZyBiYlxu IgorCSIgIC1wXHRXcml0ZSBzdXJmYWNlcyB0byBwbmdcbiIKKwkiICAtaVx0UHJpbnQgYnVmZmVy IGluZm9cbiIKKwk7CisKK2lndF9tYWluX2FyZ3MoImRwaSIsIE5VTEwsIGhlbHBfc3RyLCBvcHRf aGFuZGxlciwgTlVMTCkKK3sKKwlpbnQgaTkxNTsKKwlzdHJ1Y3QgYnVmX29wcyAqYm9wczsKKwor CWlndF9maXh0dXJlIHsKKwkJaTkxNSA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfSU5URUwpOwor CQlib3BzID0gYnVmX29wc19jcmVhdGUoaTkxNSk7CisJfQorCisJaWd0X3N1YnRlc3QoInNpbXBs ZS1iYiIpCisJCXNpbXBsZV9iYihib3BzLCBmYWxzZSk7CisKKwlpZ3Rfc3VidGVzdCgic2ltcGxl LWJiLWN0eCIpCisJCXNpbXBsZV9iYihib3BzLCB0cnVlKTsKKworCWlndF9zdWJ0ZXN0KCJibGl0 LW5vcmVsb2Mta2VlcC1jYWNoZSIpCisJCWJsaXQoYm9wcywgTk9SRUxPQywgS0VFUF9DQUNIRSk7 CisKKwlpZ3Rfc3VidGVzdCgiYmxpdC1yZWxvYy1wdXJnZS1jYWNoZSIpCisJCWJsaXQoYm9wcywg UkVMT0MsIFBVUkdFX0NBQ0hFKTsKKworCWlndF9zdWJ0ZXN0KCJibGl0LW5vcmVsb2MtcHVyZ2Ut Y2FjaGUiKQorCQlibGl0KGJvcHMsIE5PUkVMT0MsIFBVUkdFX0NBQ0hFKTsKKworCWlndF9zdWJ0 ZXN0KCJibGl0LXJlbG9jLWtlZXAtY2FjaGUiKQorCQlibGl0KGJvcHMsIFJFTE9DLCBLRUVQX0NB Q0hFKTsKKworCWlndF9zdWJ0ZXN0KCJpbnRlbC1iYi1ibGl0IikKKwkJZG9faW50ZWxfYmJfYmxp dChib3BzKTsKKworCWlndF9zdWJ0ZXN0KCJvZmZzZXQtY29udHJvbCIpCisJCW9mZnNldF9jb250 cm9sKGJvcHMpOworCisJaWd0X2ZpeHR1cmUgeworCQlidWZfb3BzX2Rlc3Ryb3koYm9wcyk7CisJ CWNsb3NlKGk5MTUpOworCX0KK30KZGlmZiAtLWdpdCBhL3Rlc3RzL21lc29uLmJ1aWxkIGIvdGVz dHMvbWVzb24uYnVpbGQKaW5kZXggMjgwOTE3OTQuLjA2YTQ3ZTM3IDEwMDY0NAotLS0gYS90ZXN0 cy9tZXNvbi5idWlsZAorKysgYi90ZXN0cy9tZXNvbi5idWlsZApAQCAtMTAzLDYgKzEwMyw3IEBA IHRlc3RfcHJvZ3MgPSBbCiBdCiAKIGk5MTVfcHJvZ3MgPSBbCisJJ2FwaV9pbnRlbF9iYicsCiAJ J2dlbjNfbWl4ZWRfYmxpdHMnLAogCSdnZW4zX3JlbmRlcl9saW5lYXJfYmxpdHMnLAogCSdnZW4z X3JlbmRlcl9taXhlZF9ibGl0cycsCi0tIAoyLjI2LjAKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaWd0LWRldgo=