From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2E2D66E944 for ; Tue, 23 Jun 2020 06:20:12 +0000 (UTC) From: =?UTF-8?q?Zbigniew=20Kempczy=C5=84ski?= Date: Tue, 23 Jun 2020 08:19:59 +0200 Message-Id: <20200623062000.17889-4-zbigniew.kempczynski@intel.com> In-Reply-To: <20200623062000.17889-1-zbigniew.kempczynski@intel.com> References: <20200623062000.17889-1-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 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 aXMtd2lsc29uLmNvLnVrPgotLS0KIHRlc3RzL2k5MTUvYXBpX2ludGVsX2JiLmMgfCA1NTkgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHRlc3RzL21lc29uLmJ1aWxkICAg ICAgICAgfCAgIDEgKwogMiBmaWxlcyBjaGFuZ2VkLCA1NjAgaW5zZXJ0aW9ucygrKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHRlc3RzL2k5MTUvYXBpX2ludGVsX2JiLmMKCmRpZmYgLS1naXQgYS90ZXN0 cy9pOTE1L2FwaV9pbnRlbF9iYi5jIGIvdGVzdHMvaTkxNS9hcGlfaW50ZWxfYmIuYwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uZTNmZmVjMTgKLS0tIC9kZXYvbnVsbAorKysg Yi90ZXN0cy9pOTE1L2FwaV9pbnRlbF9iYi5jCkBAIC0wLDAgKzEsNTU5IEBACisvKgorICogQ29w 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 X19jcHVfY29oZXJlbnQoaTkxNSwgYnVmLT5oYW5kbGUsIDAsIGJ1Zi0+c2l6ZSwgUFJPVF9XUklU RSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgYnVmLT5zaXplOyBpKyspCisJCXB0cltpXSA9IGNvbG9y OworCisJbXVubWFwKHB0ciwgYnVmLT5zaXplKTsKK30KKworc3RhdGljIHZvaWQgY2hlY2tfYnVm KHN0cnVjdCBpbnRlbF9idWYgKmJ1ZiwgdWludDhfdCBjb2xvcikKK3sKKwl1aW50OF90ICpwdHI7 CisJaW50IGk5MTUgPSBidWZfb3BzX2dldF9mZChidWYtPmJvcHMpOworCWludCBpOworCisJcHRy ID0gZ2VtX21tYXBfX2NwdV9jb2hlcmVudChpOTE1LCBidWYtPmhhbmRsZSwgMCwgYnVmLT5zaXpl LCBQUk9UX1dSSVRFKTsKKworCWZvciAoaSA9IDA7IGkgPCBidWYtPnNpemU7IGkrKykKKwkJaWd0 X2Fzc2VydChwdHJbaV0gPT0gY29sb3IpOworCisJbXVubWFwKHB0ciwgYnVmLT5zaXplKTsKK30K KworCitzdGF0aWMgc3RydWN0IGludGVsX2J1ZiAqCitjcmVhdGVfYnVmKHN0cnVjdCBidWZfb3Bz ICpib3BzLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIHVpbnQ4X3QgY29sb3IpCit7CisJc3RydWN0 IGludGVsX2J1ZiAqYnVmOworCisJYnVmID0gY2FsbG9jKDEsIHNpemVvZigqYnVmKSk7CisJaWd0 X2Fzc2VydChidWYpOworCisJaW50ZWxfYnVmX2luaXQoYm9wcywgYnVmLCB3aWR0aC80LCBoZWln aHQsIDMyLCAwLCBJOTE1X1RJTElOR19OT05FLCAwKTsKKwlmaWxsX2J1ZihidWYsIGNvbG9yKTsK KworCXJldHVybiBidWY7Cit9CisKK3N0YXRpYyB2b2lkIHByaW50X2J1ZihzdHJ1Y3QgaW50ZWxf YnVmICpidWYsIGNvbnN0IGNoYXIgKm5hbWUpCit7CisJdWludDhfdCAqcHRyOworCWludCBpOTE1 ID0gYnVmX29wc19nZXRfZmQoYnVmLT5ib3BzKTsKKworCXB0ciA9IGdlbV9tbWFwX19jcHVfY29o ZXJlbnQoaTkxNSwgYnVmLT5oYW5kbGUsIDAsIGJ1Zi0+c2l6ZSwKKwkJCQkgICAgIFBST1RfV1JJ VEUpOworCWlndF9kZWJ1ZygiWyVzXSBCdWYgaGFuZGxlOiAlZCwgc2l6ZTogJWQsIHY6IDB4JTAy eFxuIiwgbmFtZSwKKwkJICBidWYtPmhhbmRsZSwgYnVmLT5zaXplLCBwdHJbMF0pOworCW11bm1h cChwdHIsIGJ1Zi0+c2l6ZSk7Cit9CisKK3N0YXRpYyB2b2lkIHNpbXBsZV9iYihzdHJ1Y3QgYnVm X29wcyAqYm9wcykKK3sKKwlpbnQgaTkxNSA9IGJ1Zl9vcHNfZ2V0X2ZkKGJvcHMpOworCXN0cnVj dCBpbnRlbF9iYiAqaWJiOworCXVpbnQzMl90IGN0eDsKKworCWN0eCA9IGdlbV9jb250ZXh0X2Ny ZWF0ZShpOTE1KTsKKwlpYmIgPSBpbnRlbF9iYl9jcmVhdGUoaTkxNSwgUEFHRV9TSVpFKTsKKwlp ZiAoZGVidWdfYmIpCisJCWludGVsX2JiX3NldF9kZWJ1ZyhpYmIsIHRydWUpOworCisJaW50ZWxf YmJfb3V0KGliYiwgTUlfQkFUQ0hfQlVGRkVSX0VORCk7CisJaW50ZWxfYmJfcHRyX2FsaWduKGli YiwgOCk7CisKKwlpbnRlbF9iYl9leGVjKGliYiwgaW50ZWxfYmJfb2Zmc2V0KGliYiksCisJCSAg ICAgIEk5MTVfRVhFQ19ERUZBVUxUIHwgSTkxNV9FWEVDX05PX1JFTE9DLCB0cnVlKTsKKworCS8q IENoZWNrIHdlJ3JlIHNhZmUgd2l0aCByZXNldCBhbmQgbm8gZG91YmxlLWZyZWUgd2lsbCBvY2N1 ciAqLworCWludGVsX2JiX3Jlc2V0KGliYiwgdHJ1ZSk7CisJaW50ZWxfYmJfcmVzZXQoaWJiLCBm YWxzZSk7CisJaW50ZWxfYmJfcmVzZXQoaWJiLCB0cnVlKTsKKworCWludGVsX2JiX291dChpYmIs IE1JX0JBVENIX0JVRkZFUl9FTkQpOworCWludGVsX2JiX3B0cl9hbGlnbihpYmIsIDgpOworCisJ aW50ZWxfYmJfZXhlY193aXRoX2NvbnRleHQoaWJiLCBpbnRlbF9iYl9vZmZzZXQoaWJiKSwgY3R4 LAorCQkJCSAgIEk5MTVfRVhFQ19ERUZBVUxUIHwgSTkxNV9FWEVDX05PX1JFTE9DLCB0cnVlKTsK KworCWludGVsX2JiX2Rlc3Ryb3koaWJiKTsKKwlnZW1fY29udGV4dF9kZXN0cm95KGk5MTUsIGN0 eCk7Cit9CisKK3N0YXRpYyB2b2lkIF9fZW1pdF9ibGl0KHN0cnVjdCBpbnRlbF9iYiAqaWJiLAor CQkJc3RydWN0IGludGVsX2J1ZiAqc3JjLCBzdHJ1Y3QgaW50ZWxfYnVmICpkc3QpCit7CisJYm9v bCBoYXNfNjRiX3JlbG9jOworCisJaGFzXzY0Yl9yZWxvYyA9IGliYi0+Z2VuID49IDg7CisKKwlp bnRlbF9iYl9vdXQoaWJiLAorCQkgICAgIFhZX1NSQ19DT1BZX0JMVF9DTUQgfAorCQkgICAgIFhZ X1NSQ19DT1BZX0JMVF9XUklURV9BTFBIQSB8CisJCSAgICAgWFlfU1JDX0NPUFlfQkxUX1dSSVRF X1JHQiB8CisJCSAgICAgKDYgKyAyICogaGFzXzY0Yl9yZWxvYykpOworCWludGVsX2JiX291dChp YmIsIDMgPDwgMjQgfCAweGNjIDw8IDE2IHwgZHN0LT5zdHJpZGUpOworCWludGVsX2JiX291dChp YmIsIDApOworCWludGVsX2JiX291dChpYmIsIGludGVsX2J1Zl9oZWlnaHQoZHN0KSA8PCAxNiB8 IGludGVsX2J1Zl93aWR0aChkc3QpKTsKKwlpbnRlbF9iYl9lbWl0X3JlbG9jX2ZlbmNlZChpYmIs IGRzdC0+aGFuZGxlLAorCQkJCSAgIEk5MTVfR0VNX0RPTUFJTl9SRU5ERVIsCisJCQkJICAgSTkx NV9HRU1fRE9NQUlOX1JFTkRFUiwKKwkJCQkgICAwLCAweDApOworCWludGVsX2JiX291dChpYmIs IDApOworCWludGVsX2JiX291dChpYmIsIHNyYy0+c3RyaWRlKTsKKwlpbnRlbF9iYl9lbWl0X3Jl bG9jX2ZlbmNlZChpYmIsIHNyYy0+aGFuZGxlLAorCQkJCSAgIEk5MTVfR0VNX0RPTUFJTl9SRU5E RVIsIDAsCisJCQkJICAgMCwgMHgwKTsKKworCWludGVsX2JiX291dChpYmIsIE1JX0JBVENIX0JV RkZFUl9FTkQpOworCWludGVsX2JiX3B0cl9hbGlnbihpYmIsIDgpOworfQorCitzdGF0aWMgdm9p ZCBibGl0KHN0cnVjdCBidWZfb3BzICpib3BzLAorCQkgZW51bSByZWxvY19vYmplY3RzIHJlbG9j X29iaiwKKwkJIGVudW0gb2JqX2NhY2hlX29wcyBjYWNoZV9vcCkKK3sKKwlpbnQgaTkxNSA9IGJ1 Zl9vcHNfZ2V0X2ZkKGJvcHMpOworCXN0cnVjdCBpbnRlbF9iYiAqaWJiOworCXN0cnVjdCBpbnRl bF9idWYgKnNyYywgKmRzdDsKKwl1aW50NjRfdCBwb2ZmX2JiLCBwb2ZmX3NyYywgcG9mZl9kc3Q7 CisJdWludDY0X3QgcG9mZjJfYmIsIHBvZmYyX3NyYywgcG9mZjJfZHN0OworCXVpbnQ2NF90IGZs YWdzID0gSTkxNV9FWEVDX0JMVDsKKwlib29sIHB1cmdlX2NhY2hlID0gY2FjaGVfb3AgPT0gUFVS R0VfQ0FDSEUgPyB0cnVlIDogZmFsc2U7CisJYm9vbCBkb19yZWxvY3MgPSByZWxvY19vYmogPT0g UkVMT0MgPyB0cnVlIDogZmFsc2U7CisKKwlzcmMgPSBjcmVhdGVfYnVmKGJvcHMsIFdJRFRILCBI RUlHSFQsIENPTE9SX0NDKTsKKwlkc3QgPSBjcmVhdGVfYnVmKGJvcHMsIFdJRFRILCBIRUlHSFQs IENPTE9SXzAwKTsKKworCWlmIChidWZfaW5mbykgeworCQlwcmludF9idWYoc3JjLCAic3JjIik7 CisJCXByaW50X2J1Zihkc3QsICJkc3QiKTsKKwl9CisKKwlpZiAoZG9fcmVsb2NzKSB7CisJCWli YiA9IGludGVsX2JiX2NyZWF0ZV93aXRoX3JlbG9jcyhpOTE1LCBQQUdFX1NJWkUpOworCX0gZWxz ZSB7CisJCWliYiA9IGludGVsX2JiX2NyZWF0ZShpOTE1LCBQQUdFX1NJWkUpOworCQlmbGFncyB8 PSBJOTE1X0VYRUNfTk9fUkVMT0M7CisJfQorCisJaWYgKGRlYnVnX2JiKQorCQlpbnRlbF9iYl9z ZXRfZGVidWcoaWJiLCB0cnVlKTsKKworCV9fZW1pdF9ibGl0KGliYiwgc3JjLCBkc3QpOworCisJ LyogV2UgZXhwZWN0IGluaXRpYWwgYWRkcmVzc2VzIGFyZSB6ZXJvZWQgZm9yIHJlbG9jcyAqLwor CWlmIChyZWxvY19vYmogPT0gUkVMT0MpIHsKKwkJaWd0X2Fzc2VydChpbnRlbF9iYl9nZXRfb2Jq ZWN0X29mZnNldChpYmIsIGliYi0+aGFuZGxlKSA9PSAwKTsKKwkJaWd0X2Fzc2VydChpbnRlbF9i Yl9nZXRfb2JqZWN0X29mZnNldChpYmIsIHNyYy0+aGFuZGxlKSA9PSAwKTsKKwkJaWd0X2Fzc2Vy dChpbnRlbF9iYl9nZXRfb2JqZWN0X29mZnNldChpYmIsIGRzdC0+aGFuZGxlKSA9PSAwKTsKKwl9 CisKKwlpbnRlbF9iYl9leGVjKGliYiwgaW50ZWxfYmJfb2Zmc2V0KGliYiksIGZsYWdzLCB0cnVl KTsKKwljaGVja19idWYoZHN0LCBDT0xPUl9DQyk7CisKKwlwb2ZmX2JiID0gaW50ZWxfYmJfZ2V0 X29iamVjdF9vZmZzZXQoaWJiLCBpYmItPmhhbmRsZSk7CisJcG9mZl9zcmMgPSBpbnRlbF9iYl9n ZXRfb2JqZWN0X29mZnNldChpYmIsIHNyYy0+aGFuZGxlKTsKKwlwb2ZmX2RzdCA9IGludGVsX2Ji X2dldF9vYmplY3Rfb2Zmc2V0KGliYiwgZHN0LT5oYW5kbGUpOworCWlndF9kZWJ1ZygiYmIgIHBy ZXN1bWVkIG9mZnNldDogMHglbHhcbiIsIHBvZmZfYmIpOworCWlndF9kZWJ1Zygic3JjIHByZXN1 bWVkIG9mZnNldDogMHglbHhcbiIsIHBvZmZfc3JjKTsKKwlpZ3RfZGVidWcoImRzdCBwcmVzdW1l ZCBvZmZzZXQ6IDB4JWx4XG4iLCBwb2ZmX2RzdCk7CisKKwlpbnRlbF9iYl9yZXNldChpYmIsIHB1 cmdlX2NhY2hlKTsKKworCWZpbGxfYnVmKHNyYywgQ09MT1JfNzcpOworCWZpbGxfYnVmKGRzdCwg Q09MT1JfMDApOworCisJX19lbWl0X2JsaXQoaWJiLCBzcmMsIGRzdCk7CisKKwlwb2ZmMl9iYiA9 IGludGVsX2JiX2dldF9vYmplY3Rfb2Zmc2V0KGliYiwgaWJiLT5oYW5kbGUpOworCXBvZmYyX3Ny YyA9IGludGVsX2JiX2dldF9vYmplY3Rfb2Zmc2V0KGliYiwgc3JjLT5oYW5kbGUpOworCXBvZmYy X2RzdCA9IGludGVsX2JiX2dldF9vYmplY3Rfb2Zmc2V0KGliYiwgZHN0LT5oYW5kbGUpOworCWln dF9kZWJ1ZygiYmIyICBwcmVzdW1lZCBvZmZzZXQ6IDB4JWx4XG4iLCBwb2ZmMl9iYik7CisJaWd0 X2RlYnVnKCJzcmMyIHByZXN1bWVkIG9mZnNldDogMHglbHhcbiIsIHBvZmYyX3NyYyk7CisJaWd0 X2RlYnVnKCJkc3QyIHByZXN1bWVkIG9mZnNldDogMHglbHhcbiIsIHBvZmYyX2RzdCk7CisJaWYg KHB1cmdlX2NhY2hlKSB7CisJCWlmIChkb19yZWxvY3MpIHsKKwkJCWlndF9hc3NlcnQocG9mZjJf YmIgPT0gMCk7CisJCQlpZ3RfYXNzZXJ0KHBvZmYyX3NyYyA9PSAwKTsKKwkJCWlndF9hc3NlcnQo cG9mZjJfZHN0ID09IDApOworCQl9IGVsc2UgeworCQkJaWd0X2Fzc2VydChwb2ZmX2JiICE9IHBv ZmYyX2JiKTsKKwkJCWlndF9hc3NlcnQocG9mZl9zcmMgIT0gcG9mZjJfc3JjKTsKKwkJCWlndF9h c3NlcnQocG9mZl9kc3QgIT0gcG9mZjJfZHN0KTsKKwkJfQorCX0gZWxzZSB7CisJCWlndF9hc3Nl cnQocG9mZl9iYiA9PSBwb2ZmMl9iYik7CisJCWlndF9hc3NlcnQocG9mZl9zcmMgPT0gcG9mZjJf c3JjKTsKKwkJaWd0X2Fzc2VydChwb2ZmX2RzdCA9PSBwb2ZmMl9kc3QpOworCX0KKworCWludGVs X2JiX2V4ZWMoaWJiLCBpbnRlbF9iYl9vZmZzZXQoaWJiKSwgZmxhZ3MsIHRydWUpOworCWNoZWNr X2J1Zihkc3QsIENPTE9SXzc3KTsKKworCXBvZmYyX3NyYyA9IGludGVsX2JiX2dldF9vYmplY3Rf b2Zmc2V0KGliYiwgc3JjLT5oYW5kbGUpOworCXBvZmYyX2RzdCA9IGludGVsX2JiX2dldF9vYmpl Y3Rfb2Zmc2V0KGliYiwgZHN0LT5oYW5kbGUpOworCWlndF9hc3NlcnQocG9mZl9zcmMgPT0gcG9m ZjJfc3JjKTsKKwlpZ3RfYXNzZXJ0KHBvZmZfZHN0ID09IHBvZmYyX2RzdCk7CisKKwlpbnRlbF9i Yl9kZXN0cm95KGliYik7Cit9CisKK3N0YXRpYyB2b2lkIHNjcmF0Y2hfYnVmX2luaXQoc3RydWN0 IGJ1Zl9vcHMgKmJvcHMsCisJCQkgICAgIHN0cnVjdCBpbnRlbF9idWYgKmJ1ZiwKKwkJCSAgICAg aW50IHdpZHRoLCBpbnQgaGVpZ2h0LAorCQkJICAgICB1aW50MzJfdCByZXFfdGlsaW5nLAorCQkJ ICAgICBlbnVtIGk5MTVfY29tcHJlc3Npb24gY29tcHJlc3Npb24pCit7CisJaW50IGJwcCA9IDMy OworCisJaW50ZWxfYnVmX2luaXQoYm9wcywgYnVmLCB3aWR0aCwgaGVpZ2h0LCBicHAsIDAsCisJ CSAgICAgICByZXFfdGlsaW5nLCBjb21wcmVzc2lvbik7CisKKwlpZ3RfYXNzZXJ0KGludGVsX2J1 Zl93aWR0aChidWYpID09IHdpZHRoKTsKKwlpZ3RfYXNzZXJ0KGludGVsX2J1Zl9oZWlnaHQoYnVm KSA9PSBoZWlnaHQpOworfQorCitzdGF0aWMgdm9pZCBzY3JhdGNoX2J1Zl9kcmF3X3BhdHRlcm4o c3RydWN0IGJ1Zl9vcHMgKmJvcHMsCisJCQkJICAgICBzdHJ1Y3QgaW50ZWxfYnVmICpidWYsCisJ CQkJICAgICBpbnQgeCwgaW50IHksIGludCB3LCBpbnQgaCwKKwkJCQkgICAgIGludCBjeCwgaW50 IGN5LCBpbnQgY3csIGludCBjaCwKKwkJCQkgICAgIGJvb2wgdXNlX2FsdGVybmF0ZV9jb2xvcnMp Cit7CisJY2Fpcm9fc3VyZmFjZV90ICpzdXJmYWNlOworCWNhaXJvX3BhdHRlcm5fdCAqcGF0Owor CWNhaXJvX3QgKmNyOworCXZvaWQgKmxpbmVhcjsKKworCWxpbmVhciA9IGFsbG9jX2FsaWduZWQo YnVmLT5zaXplKTsKKworCXN1cmZhY2UgPSBjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3Jf ZGF0YShsaW5lYXIsCisJCQkJCQkgICAgICBDQUlST19GT1JNQVRfUkdCMjQsCisJCQkJCQkgICAg ICBpbnRlbF9idWZfd2lkdGgoYnVmKSwKKwkJCQkJCSAgICAgIGludGVsX2J1Zl9oZWlnaHQoYnVm KSwKKwkJCQkJCSAgICAgIGJ1Zi0+c3RyaWRlKTsKKworCWNyID0gY2Fpcm9fY3JlYXRlKHN1cmZh Y2UpOworCisJY2Fpcm9fcmVjdGFuZ2xlKGNyLCBjeCwgY3ksIGN3LCBjaCk7CisJY2Fpcm9fY2xp cChjcik7CisKKwlwYXQgPSBjYWlyb19wYXR0ZXJuX2NyZWF0ZV9tZXNoKCk7CisJY2Fpcm9fbWVz aF9wYXR0ZXJuX2JlZ2luX3BhdGNoKHBhdCk7CisJY2Fpcm9fbWVzaF9wYXR0ZXJuX21vdmVfdG8o cGF0LCB4LCAgIHkpOworCWNhaXJvX21lc2hfcGF0dGVybl9saW5lX3RvKHBhdCwgeCt3LCB5KTsK KwljYWlyb19tZXNoX3BhdHRlcm5fbGluZV90byhwYXQsIHgrdywgeStoKTsKKwljYWlyb19tZXNo X3BhdHRlcm5fbGluZV90byhwYXQsIHgsICAgeStoKTsKKwlpZiAodXNlX2FsdGVybmF0ZV9jb2xv cnMpIHsKKwkJY2Fpcm9fbWVzaF9wYXR0ZXJuX3NldF9jb3JuZXJfY29sb3JfcmdiKHBhdCwgMCwg MC4wLCAxLjAsIDEuMCk7CisJCWNhaXJvX21lc2hfcGF0dGVybl9zZXRfY29ybmVyX2NvbG9yX3Jn YihwYXQsIDEsIDEuMCwgMC4wLCAxLjApOworCQljYWlyb19tZXNoX3BhdHRlcm5fc2V0X2Nvcm5l cl9jb2xvcl9yZ2IocGF0LCAyLCAxLjAsIDEuMCwgMC4wKTsKKwkJY2Fpcm9fbWVzaF9wYXR0ZXJu X3NldF9jb3JuZXJfY29sb3JfcmdiKHBhdCwgMywgMC4wLCAwLjAsIDAuMCk7CisJfSBlbHNlIHsK KwkJY2Fpcm9fbWVzaF9wYXR0ZXJuX3NldF9jb3JuZXJfY29sb3JfcmdiKHBhdCwgMCwgMS4wLCAw LjAsIDAuMCk7CisJCWNhaXJvX21lc2hfcGF0dGVybl9zZXRfY29ybmVyX2NvbG9yX3JnYihwYXQs IDEsIDAuMCwgMS4wLCAwLjApOworCQljYWlyb19tZXNoX3BhdHRlcm5fc2V0X2Nvcm5lcl9jb2xv cl9yZ2IocGF0LCAyLCAwLjAsIDAuMCwgMS4wKTsKKwkJY2Fpcm9fbWVzaF9wYXR0ZXJuX3NldF9j b3JuZXJfY29sb3JfcmdiKHBhdCwgMywgMS4wLCAxLjAsIDEuMCk7CisJfQorCWNhaXJvX21lc2hf cGF0dGVybl9lbmRfcGF0Y2gocGF0KTsKKworCWNhaXJvX3JlY3RhbmdsZShjciwgeCwgeSwgdywg aCk7CisJY2Fpcm9fc2V0X3NvdXJjZShjciwgcGF0KTsKKwljYWlyb19maWxsKGNyKTsKKwljYWly b19wYXR0ZXJuX2Rlc3Ryb3kocGF0KTsKKworCWNhaXJvX2Rlc3Ryb3koY3IpOworCisJY2Fpcm9f c3VyZmFjZV9kZXN0cm95KHN1cmZhY2UpOworCisJbGluZWFyX3RvX2ludGVsX2J1Zihib3BzLCBi dWYsIGxpbmVhcik7CisKKwlmcmVlKGxpbmVhcik7Cit9CisKK3N0YXRpYyBib29sIGNvbXBhcmVf YnVmcyhzdHJ1Y3QgaW50ZWxfYnVmICpidWYxLCBzdHJ1Y3QgaW50ZWxfYnVmICpidWYyKQorewor CXZvaWQgKnB0cjEsICpwdHIyOworCWludCBmZDEsIGZkMiwgcmV0OworCisJaWd0X2Fzc2VydChi dWYxLT5zaXplID09IGJ1ZjItPnNpemUpOworCisJZmQxID0gYnVmX29wc19nZXRfZmQoYnVmMS0+ Ym9wcyk7CisJZmQyID0gYnVmX29wc19nZXRfZmQoYnVmMi0+Ym9wcyk7CisKKwlwdHIxID0gZ2Vt X21tYXBfX2RldmljZV9jb2hlcmVudChmZDEsIGJ1ZjEtPmhhbmRsZSwgMCwgYnVmMS0+c2l6ZSwK KwkJCQkJIFBST1RfUkVBRCk7CisJcHRyMiA9IGdlbV9tbWFwX19kZXZpY2VfY29oZXJlbnQoZmQy LCBidWYyLT5oYW5kbGUsIDAsIGJ1ZjItPnNpemUsCisJCQkJCSBQUk9UX1JFQUQpOworCXJldCA9 IG1lbWNtcChwdHIxLCBwdHIyLCBidWYxLT5zaXplKTsKKworCW11bm1hcChwdHIxLCBidWYxLT5z aXplKTsKKwltdW5tYXAocHRyMiwgYnVmMi0+c2l6ZSk7CisKKwlyZXR1cm4gcmV0OworfQorCitz dGF0aWMgdm9pZCBkb19pbnRlbF9iYl9ibGl0KHN0cnVjdCBidWZfb3BzICpib3BzKQoreworCXN0 cnVjdCBpbnRlbF9iYiAqaWJiOworCWNvbnN0IGludCB3aWR0aCA9IDEwMjQ7CisJY29uc3QgaW50 IGhlaWdodCA9IDEwMjQ7CisJc3RydWN0IGludGVsX2J1ZiBzcmMsIGRzdCwgZmluYWw7CisJaW50 IGk5MTUgPSBidWZfb3BzX2dldF9mZChib3BzKTsKKworCWliYiA9IGludGVsX2JiX2NyZWF0ZShp OTE1LCBQQUdFX1NJWkUpOworCWlmIChkZWJ1Z19iYikKKwkJaW50ZWxfYmJfc2V0X2RlYnVnKGli YiwgdHJ1ZSk7CisKKwlzY3JhdGNoX2J1Zl9pbml0KGJvcHMsICZzcmMsIHdpZHRoLCBoZWlnaHQs IEk5MTVfVElMSU5HX05PTkUsCisJCQkgSTkxNV9DT01QUkVTU0lPTl9OT05FKTsKKwlzY3JhdGNo X2J1Zl9pbml0KGJvcHMsICZkc3QsIHdpZHRoLCBoZWlnaHQsIEk5MTVfVElMSU5HX1ksCisJCQkg STkxNV9DT01QUkVTU0lPTl9OT05FKTsKKwlzY3JhdGNoX2J1Zl9pbml0KGJvcHMsICZmaW5hbCwg d2lkdGgsIGhlaWdodCwgSTkxNV9USUxJTkdfTk9ORSwKKwkJCSBJOTE1X0NPTVBSRVNTSU9OX05P TkUpOworCisJaWYgKGJ1Zl9pbmZvKSB7CisJCWludGVsX2J1Zl9wcmludCgmc3JjKTsKKwkJaW50 ZWxfYnVmX3ByaW50KCZkc3QpOworCX0KKworCXNjcmF0Y2hfYnVmX2RyYXdfcGF0dGVybihib3Bz LCAmc3JjLAorCQkJCSAwLCAwLCB3aWR0aCwgaGVpZ2h0LAorCQkJCSAwLCAwLCB3aWR0aCwgaGVp Z2h0LCAwKTsKKworCWludGVsX2JiX2JsdF9jb3B5KGliYiwKKwkJCSAgJnNyYywgMCwgMCwgc3Jj LnN0cmlkZSwKKwkJCSAgJmRzdCwgMCwgMCwgZHN0LnN0cmlkZSwKKwkJCSAgaW50ZWxfYnVmX3dp ZHRoKCZkc3QpLAorCQkJICBpbnRlbF9idWZfaGVpZ2h0KCZkc3QpLAorCQkJICBkc3QuYnBwKTsK KworCWludGVsX2JiX2JsdF9jb3B5KGliYiwKKwkJCSAgJmRzdCwgMCwgMCwgZHN0LnN0cmlkZSwK KwkJCSAgJmZpbmFsLCAwLCAwLCBmaW5hbC5zdHJpZGUsCisJCQkgIGludGVsX2J1Zl93aWR0aCgm ZHN0KSwKKwkJCSAgaW50ZWxfYnVmX2hlaWdodCgmZHN0KSwKKwkJCSAgZHN0LmJwcCk7CisKKwlp bnRlbF9iYl9kZXN0cm95KGliYik7CisKKwlpZiAod3JpdGVfcG5nKSB7CisJCWludGVsX2J1Zl93 cml0ZV90b19wbmcoJnNyYywgImJiX2JsaXRfc3JjX3RpbGluZ19ub25lLnBuZyIpOworCQlpbnRl bF9idWZfd3JpdGVfdG9fcG5nKCZkc3QsICJiYl9ibGl0X2RzdF90aWxpbmdfeS5wbmciKTsKKwkJ aW50ZWxfYnVmX3dyaXRlX3RvX3BuZygmZmluYWwsICJiYl9ibGl0X2ZpbmFsX3RpbGluZ19ub25l LnBuZyIpOworCX0KKworCWlndF9hc3NlcnQoY29tcGFyZV9idWZzKCZzcmMsICZkc3QpICE9IDAp OworCWlndF9hc3NlcnQoY29tcGFyZV9idWZzKCZzcmMsICZmaW5hbCkgPT0gMCk7CisKKwlpbnRl bF9idWZfY2xvc2UoYm9wcywgJnNyYyk7CisJaW50ZWxfYnVmX2Nsb3NlKGJvcHMsICZkc3QpOwor CWludGVsX2J1Zl9jbG9zZShib3BzLCAmZmluYWwpOworfQorCisKK3N0YXRpYyB2b2lkIG9mZnNl dF9jb250cm9sKHN0cnVjdCBidWZfb3BzICpib3BzKQoreworCWludCBpOTE1ID0gYnVmX29wc19n ZXRfZmQoYm9wcyk7CisJc3RydWN0IGludGVsX2JiICppYmI7CisJc3RydWN0IGludGVsX2J1ZiAq c3JjLCAqZHN0MSwgKmRzdDIsICpkc3QzOworCXVpbnQ2NF90IHBvZmZfc3JjLCBwb2ZmX2RzdDEs IHBvZmZfZHN0MjsKKworCWliYiA9IGludGVsX2JiX2NyZWF0ZShpOTE1LCBQQUdFX1NJWkUpOwor CWlmIChkZWJ1Z19iYikKKwkJaW50ZWxfYmJfc2V0X2RlYnVnKGliYiwgdHJ1ZSk7CisKKwlzcmMg PSBjcmVhdGVfYnVmKGJvcHMsIFdJRFRILCBIRUlHSFQsIENPTE9SX0NDKTsKKwlkc3QxID0gY3Jl YXRlX2J1Zihib3BzLCBXSURUSCwgSEVJR0hULCBDT0xPUl8wMCk7CisJZHN0MiA9IGNyZWF0ZV9i dWYoYm9wcywgV0lEVEgsIEhFSUdIVCwgQ09MT1JfNzcpOworCisJaW50ZWxfYmJfYWRkX29iamVj dChpYmIsIHNyYy0+aGFuZGxlLCBzcmMtPmFkZHIub2Zmc2V0LCBmYWxzZSk7CisJaW50ZWxfYmJf YWRkX29iamVjdChpYmIsIGRzdDEtPmhhbmRsZSwgZHN0MS0+YWRkci5vZmZzZXQsIHRydWUpOwor CWludGVsX2JiX2FkZF9vYmplY3QoaWJiLCBkc3QyLT5oYW5kbGUsIGRzdDItPmFkZHIub2Zmc2V0 LCB0cnVlKTsKKworCWludGVsX2JiX291dChpYmIsIE1JX0JBVENIX0JVRkZFUl9FTkQpOworCWlu dGVsX2JiX3B0cl9hbGlnbihpYmIsIDgpOworCisJaW50ZWxfYmJfZXhlYyhpYmIsIGludGVsX2Ji X29mZnNldChpYmIpLAorCQkgICAgICBJOTE1X0VYRUNfREVGQVVMVCB8IEk5MTVfRVhFQ19OT19S RUxPQywgZmFsc2UpOworCisJaWYgKGJ1Zl9pbmZvKSB7CisJCXByaW50X2J1ZihzcmMsICJzcmMg Iik7CisJCXByaW50X2J1Zihkc3QxLCAiZHN0MSIpOworCQlwcmludF9idWYoZHN0MiwgImRzdDIi KTsKKwl9CisKKwlpZ3RfYXNzZXJ0KGludGVsX2JiX29iamVjdF9vZmZzZXRfdG9fYnVmKGliYiwg c3JjKSA9PSB0cnVlKTsKKwlpZ3RfYXNzZXJ0KGludGVsX2JiX29iamVjdF9vZmZzZXRfdG9fYnVm KGliYiwgZHN0MSkgPT0gdHJ1ZSk7CisJaWd0X2Fzc2VydChpbnRlbF9iYl9vYmplY3Rfb2Zmc2V0 X3RvX2J1ZihpYmIsIGRzdDIpID09IHRydWUpOworCXBvZmZfc3JjID0gc3JjLT5hZGRyLm9mZnNl dDsKKwlwb2ZmX2RzdDEgPSBkc3QxLT5hZGRyLm9mZnNldDsKKwlwb2ZmX2RzdDIgPSBkc3QyLT5h ZGRyLm9mZnNldDsKKwlpbnRlbF9iYl9yZXNldChpYmIsIHRydWUpOworCisJZHN0MyA9IGNyZWF0 ZV9idWYoYm9wcywgV0lEVEgsIEhFSUdIVCwgQ09MT1JfMzMpOworCWludGVsX2JiX2FkZF9vYmpl Y3QoaWJiLCBkc3QzLT5oYW5kbGUsIGRzdDMtPmFkZHIub2Zmc2V0LCB0cnVlKTsKKwlpbnRlbF9i Yl9hZGRfb2JqZWN0KGliYiwgc3JjLT5oYW5kbGUsIHNyYy0+YWRkci5vZmZzZXQsIGZhbHNlKTsK KwlpbnRlbF9iYl9hZGRfb2JqZWN0KGliYiwgZHN0MS0+aGFuZGxlLCBkc3QxLT5hZGRyLm9mZnNl dCwgdHJ1ZSk7CisJaW50ZWxfYmJfYWRkX29iamVjdChpYmIsIGRzdDItPmhhbmRsZSwgZHN0Mi0+ YWRkci5vZmZzZXQsIHRydWUpOworCisJaW50ZWxfYmJfb3V0KGliYiwgTUlfQkFUQ0hfQlVGRkVS X0VORCk7CisJaW50ZWxfYmJfcHRyX2FsaWduKGliYiwgOCk7CisKKwlpbnRlbF9iYl9leGVjKGli YiwgaW50ZWxfYmJfb2Zmc2V0KGliYiksCisJCSAgICAgIEk5MTVfRVhFQ19ERUZBVUxUIHwgSTkx NV9FWEVDX05PX1JFTE9DLCBmYWxzZSk7CisJaW50ZWxfYmJfc3luYyhpYmIpOworCisJaWd0X2Fz c2VydChpbnRlbF9iYl9vYmplY3Rfb2Zmc2V0X3RvX2J1ZihpYmIsIHNyYykgPT0gdHJ1ZSk7CisJ aWd0X2Fzc2VydChpbnRlbF9iYl9vYmplY3Rfb2Zmc2V0X3RvX2J1ZihpYmIsIGRzdDEpID09IHRy dWUpOworCWlndF9hc3NlcnQoaW50ZWxfYmJfb2JqZWN0X29mZnNldF90b19idWYoaWJiLCBkc3Qy KSA9PSB0cnVlKTsKKwlpZ3RfYXNzZXJ0KGludGVsX2JiX29iamVjdF9vZmZzZXRfdG9fYnVmKGli YiwgZHN0MykgPT0gdHJ1ZSk7CisJaWd0X2Fzc2VydChwb2ZmX3NyYyA9PSBzcmMtPmFkZHIub2Zm c2V0KTsKKwlpZ3RfYXNzZXJ0KHBvZmZfZHN0MSA9PSBkc3QxLT5hZGRyLm9mZnNldCk7CisJaWd0 X2Fzc2VydChwb2ZmX2RzdDIgPT0gZHN0Mi0+YWRkci5vZmZzZXQpOworCisJaWYgKGJ1Zl9pbmZv KSB7CisJCXByaW50X2J1ZihzcmMsICJzcmMgIik7CisJCXByaW50X2J1Zihkc3QxLCAiZHN0MSIp OworCQlwcmludF9idWYoZHN0MiwgImRzdDIiKTsKKwl9CisKKwlpbnRlbF9iYl9kZXN0cm95KGli Yik7Cit9CisKK3N0YXRpYyBpbnQgb3B0X2hhbmRsZXIoaW50IG9wdCwgaW50IG9wdF9pbmRleCwg dm9pZCAqZGF0YSkKK3sKKwlzd2l0Y2ggKG9wdCkgeworCWNhc2UgJ2QnOgorCQlkZWJ1Z19iYiA9 IHRydWU7CisJCWJyZWFrOworCWNhc2UgJ3AnOgorCQl3cml0ZV9wbmcgPSB0cnVlOworCQlicmVh azsKKwljYXNlICdpJzoKKwkJYnVmX2luZm8gPSB0cnVlOworCQlicmVhazsKKwlkZWZhdWx0Ogor CQlyZXR1cm4gSUdUX09QVF9IQU5ETEVSX0VSUk9SOworCX0KKworCXJldHVybiBJR1RfT1BUX0hB TkRMRVJfU1VDQ0VTUzsKK30KKworY29uc3QgY2hhciAqaGVscF9zdHIgPQorCSIgIC1kXHREZWJ1 ZyBiYlxuIgorCSIgIC1wXHRXcml0ZSBzdXJmYWNlcyB0byBwbmdcbiIKKwkiICAtaVx0UHJpbnQg YnVmZmVyIGluZm9cbiIKKwk7CisKK2lndF9tYWluX2FyZ3MoImRwaSIsIE5VTEwsIGhlbHBfc3Ry LCBvcHRfaGFuZGxlciwgTlVMTCkKK3sKKwlpbnQgaTkxNTsKKwlzdHJ1Y3QgYnVmX29wcyAqYm9w czsKKworCWlndF9maXh0dXJlIHsKKwkJaTkxNSA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfSU5U RUwpOworCQlib3BzID0gYnVmX29wc19jcmVhdGUoaTkxNSk7CisJfQorCisJaWd0X3N1YnRlc3Qo InNpbXBsZS1iYiIpCisJCXNpbXBsZV9iYihib3BzKTsKKworCWlndF9zdWJ0ZXN0KCJibGl0LW5v cmVsb2Mta2VlcC1jYWNoZSIpCisJCWJsaXQoYm9wcywgTk9SRUxPQywgS0VFUF9DQUNIRSk7CisK KwlpZ3Rfc3VidGVzdCgiYmxpdC1yZWxvYy1wdXJnZS1jYWNoZSIpCisJCWJsaXQoYm9wcywgUkVM T0MsIFBVUkdFX0NBQ0hFKTsKKworCWlndF9zdWJ0ZXN0KCJibGl0LW5vcmVsb2MtcHVyZ2UtY2Fj aGUiKQorCQlibGl0KGJvcHMsIE5PUkVMT0MsIFBVUkdFX0NBQ0hFKTsKKworCWlndF9zdWJ0ZXN0 KCJibGl0LXJlbG9jLWtlZXAtY2FjaGUiKQorCQlibGl0KGJvcHMsIFJFTE9DLCBLRUVQX0NBQ0hF KTsKKworCWlndF9zdWJ0ZXN0KCJpbnRlbC1iYi1ibGl0IikKKwkJZG9faW50ZWxfYmJfYmxpdChi b3BzKTsKKworCWlndF9zdWJ0ZXN0KCJvZmZzZXQtY29udHJvbCIpCisJCW9mZnNldF9jb250cm9s KGJvcHMpOworCisJaWd0X2ZpeHR1cmUgeworCQlidWZfb3BzX2Rlc3Ryb3koYm9wcyk7CisJCWNs b3NlKGk5MTUpOworCX0KK30KZGlmZiAtLWdpdCBhL3Rlc3RzL21lc29uLmJ1aWxkIGIvdGVzdHMv bWVzb24uYnVpbGQKaW5kZXggMjgwOTE3OTQuLjA2YTQ3ZTM3IDEwMDY0NAotLS0gYS90ZXN0cy9t ZXNvbi5idWlsZAorKysgYi90ZXN0cy9tZXNvbi5idWlsZApAQCAtMTAzLDYgKzEwMyw3IEBAIHRl c3RfcHJvZ3MgPSBbCiBdCiAKIGk5MTVfcHJvZ3MgPSBbCisJJ2FwaV9pbnRlbF9iYicsCiAJJ2dl bjNfbWl4ZWRfYmxpdHMnLAogCSdnZW4zX3JlbmRlcl9saW5lYXJfYmxpdHMnLAogCSdnZW4zX3Jl bmRlcl9taXhlZF9ibGl0cycsCi0tIAoyLjI2LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaWd0LWRldgo=