From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id B33CA6F891 for ; Fri, 17 Jan 2020 18:14:27 +0000 (UTC) From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Date: Fri, 17 Jan 2020 10:14:18 -0800 Message-Id: <20200117181418.18755-2-jose.souza@intel.com> In-Reply-To: <20200117181418.18755-1-jose.souza@intel.com> References: <20200117181418.18755-1-jose.souza@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 2/2] tests: Add tests for DP MST 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 List-ID: VGVzdCBEUCBNU1QgY29ybmVyIGNhc2VzLgoKQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3ly amFsYUBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEpvc8OpIFJvYmVydG8gZGUgU291 emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgotLS0KIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgfCAg IDEgKwogdGVzdHMva21zX21zdC5jICAgICAgICB8IDM0NyArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogdGVzdHMvbWVzb24uYnVpbGQgICAgICB8ICAgMSArCiAzIGZp bGVzIGNoYW5nZWQsIDM0OSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMv a21zX21zdC5jCgpkaWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcyBiL3Rlc3RzL01h a2VmaWxlLnNvdXJjZXMKaW5kZXggODA2ZWIwMmQuLjY4Nzk0ZWQzIDEwMDY0NAotLS0gYS90ZXN0 cy9NYWtlZmlsZS5zb3VyY2VzCisrKyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKQEAgLTU5LDYg KzU5LDcgQEAgVEVTVFNfcHJvZ3MgPSBcCiAJa21zX2xlYXNlIFwKIAlrbXNfbGVnYWN5X2NvbG9y a2V5IFwKIAlrbXNfbW1hcF93cml0ZV9jcmMgXAorCWttc19tc3QgXAogCWttc19wYW5lbF9maXR0 aW5nIFwKIAlrbXNfcGlwZV9iX2NfaXZiIFwKIAlrbXNfcGlwZV9jcmNfYmFzaWMgXApkaWZmIC0t Z2l0IGEvdGVzdHMva21zX21zdC5jIGIvdGVzdHMva21zX21zdC5jCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwLi43Y2MwMTQxNwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2tt c19tc3QuYwpAQCAtMCwwICsxLDM0NyBAQAorI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8 c3RyaW5nLmg+CisKKyNpbmNsdWRlICJpZ3QuaCIKKworSUdUX1RFU1RfREVTQ1JJUFRJT04oIlRl c3QgRFAgTVNUIGNvcm5lciBjYXNlcy4iKTsKKy8qCisgKiBJdCBpcyB0ZXN0aW5nIG9ubHkgdGhl IGZpcnN0IE1TVCBwb3J0IGZvdW5kLCB0byB0ZXN0IG11bHRpcGxlIHBvcnRzIG9yIGZvcmNlCisg KiB0ZXN0IGluIGEgc3BlY2lmaWMgcG9ydCBjaGFuZ2VzIHdpbGwgYmUgbmVlZGVkCisgKi8KKwor I2RlZmluZSBTUVVBUkVfU0laRSAxMDAKKyNkZWZpbmUgTUFYX01TVF9PVVRQVVRTIDMKKyNkZWZp bmUgUkVTT0xVVElPTl9IIDE5MjAKKyNkZWZpbmUgUkVTT0xVVElPTl9WIDEwODAKKyNkZWZpbmUg QU5PVEhFUl9SRVNPTFVUSU9OX0ggMTAyNAorI2RlZmluZSBBTk9USEVSX1JFU09MVVRJT05fViA3 NjgKKwordHlwZWRlZiBzdHJ1Y3QgeworCWludCBkcm1fZmQ7CisJaWd0X2Rpc3BsYXlfdCBkaXNw bGF5OworCWlndF9vdXRwdXRfdCAqbXN0X291dHB1dFtNQVhfTVNUX09VVFBVVFNdOworCXN0cnVj dCBpZ3RfZmIgZmJbTUFYX01TVF9PVVRQVVRTXTsKKwl1aW50OF90IG1zdF9jb25uZWN0b3JzLCBw cmVwYXJlZDsKK30gZGF0YV90OworCitzdGF0aWMgZHJtTW9kZU1vZGVJbmZvICpmaW5kX21vZGUo aWd0X291dHB1dF90ICpvdXRwdXQsIHVpbnQxNl90IGgsIHVpbnQxNl90IHYsCisJCQkJICB1aW50 MzJfdCAqbW9kZV9jbG9jaykKK3sKKwlkcm1Nb2RlTW9kZUluZm8gKnJldCA9IE5VTEw7CisJaW50 IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgb3V0cHV0LT5jb25maWcuY29ubmVjdG9yLT5jb3VudF9t b2RlczsgaSsrKSB7CisJCWRybU1vZGVNb2RlSW5mbyAqbW9kZTsKKworCQltb2RlID0gJm91dHB1 dC0+Y29uZmlnLmNvbm5lY3Rvci0+bW9kZXNbaV07CisJCWlmIChtb2RlLT5oZGlzcGxheSAhPSBo IHx8CisJCSAgICBtb2RlLT52ZGlzcGxheSAhPSB2KQorCQkJY29udGludWU7CisKKwkJaWYgKG1v ZGVfY2xvY2sgJiYgKm1vZGVfY2xvY2sgJiYgbW9kZS0+Y2xvY2sgIT0gKm1vZGVfY2xvY2spCisJ CQljb250aW51ZTsKKworCQlpZiAobW9kZV9jbG9jayAmJiAhKm1vZGVfY2xvY2spCisJCQkqbW9k ZV9jbG9jayA9IG1vZGUtPmNsb2NrOworCisJCXJldCA9IG1vZGU7CisKKwkJYnJlYWs7CisJfQor CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludDE2X3QgZ2V0X3BhcmVudF9jb25uX2lkKGNv bnN0IGNoYXIgKm1zdF9wYXRoKQoreworCWludCBpOworCWNoYXIgYnVmZmVyWzZdOworCisJaWYg KG1zdF9wYXRoWzBdICE9ICdtJyB8fCBtc3RfcGF0aFsxXSAhPSAncycgfHwgbXN0X3BhdGhbMl0g IT0gJ3QnIHx8CisJICAgIG1zdF9wYXRoWzNdICE9ICc6JykKKwkJcmV0dXJuIC0xOworCisJLyog VW5saWtlbHkgdG8gbmVlZCBtb3JlIHRoYW4gNSBkaWdpdHMgdG8gcmVwcmVzZW50IGEgY29ubmVj dG9yIGlkICovCisJZm9yIChpID0gNDsgaSA8IDk7IGkrKykgeworCQlpZiAoIWlzZGlnaXQobXN0 X3BhdGhbaV0pKQorCQkJYnJlYWs7CisJfQorCisJaWYgKGkgPT0gNCkKKwkJcmV0dXJuIC0xOwor CisJaSA9IGkgLSA0OworCW1lbWNweShidWZmZXIsICZtc3RfcGF0aFs0XSwgaSk7CisJYnVmZmVy W2ldID0gMDsKKwlyZXR1cm4gYXRvaShidWZmZXIpOworfQorCitzdGF0aWMgdm9pZCBzZWFyY2hf bXN0X291dHB1dHMoZGF0YV90ICpkYXRhKQoreworCWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAm ZGF0YS0+ZGlzcGxheTsKKwlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKKwl1aW50MzJfdCBjbG9jayA9 IDA7CisJaW50MTZfdCBwYXJlbnRfY29ubiA9IC0xOworCisJZm9yX2VhY2hfY29ubmVjdGVkX291 dHB1dChkaXNwbGF5LCBvdXRwdXQpIHsKKwkJZHJtTW9kZVByb3BlcnR5QmxvYlB0ciBibG9iOwor CQljaGFyIG1zdF9wYXRoX2J1ZmZlclszMl07CisJCWRybU1vZGVNb2RlSW5mbyAqbW9kZTsKKwkJ dWludDY0X3QgdmFsOworCisJCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBQSVBFX05PTkUp OworCisJCWlmIChkYXRhLT5tc3RfY29ubmVjdG9ycyA9PSBNQVhfTVNUX09VVFBVVFMpCisJCQlj b250aW51ZTsKKworCQlpZiAoIWlndF9vdXRwdXRfaGFzX3Byb3Aob3V0cHV0LCBJR1RfQ09OTkVD VE9SX1BBVEgpKSB7CisJCQlpZ3RfZGVidWcoIlx0bm8gcGF0Y2ggcHJvcFxuIik7CisJCQljb250 aW51ZTsKKwkJfQorCisJCXZhbCA9IGlndF9vdXRwdXRfZ2V0X3Byb3Aob3V0cHV0LCBJR1RfQ09O TkVDVE9SX1BBVEgpOworCQlibG9iID0gZHJtTW9kZUdldFByb3BlcnR5QmxvYihkYXRhLT5kcm1f ZmQsIHZhbCk7CisJCXN0cm5jcHkobXN0X3BhdGhfYnVmZmVyLCAoY29uc3QgY2hhciAqKWJsb2It PmRhdGEsCisJCQlzaXplb2YobXN0X3BhdGhfYnVmZmVyKSAtIDEpOworCQlkcm1Nb2RlRnJlZVBy b3BlcnR5QmxvYihibG9iKTsKKworCQlpZiAocGFyZW50X2Nvbm4gIT0gLTEpIHsKKwkJCWlmIChn ZXRfcGFyZW50X2Nvbm5faWQobXN0X3BhdGhfYnVmZmVyKSAhPSBwYXJlbnRfY29ubikKKwkJCQlj b250aW51ZTsKKwkJfSBlbHNlIHsKKwkJCXBhcmVudF9jb25uID0gZ2V0X3BhcmVudF9jb25uX2lk KG1zdF9wYXRoX2J1ZmZlcik7CisJCQlpZ3RfaW5mbygiTVNUIHBhcmVudCBjb25uZWN0b3IgJWlc biIsIHBhcmVudF9jb25uKTsKKwkJfQorCisJCW1vZGUgPSBmaW5kX21vZGUob3V0cHV0LCBSRVNP TFVUSU9OX0gsIFJFU09MVVRJT05fViwgJmNsb2NrKTsKKwkJaWYgKCFtb2RlKSB7CisJCQlpZ3Rf aW5mbygiTVNUIGNvbm5lY3RvciAlc1slc10gZm91bmQgYnV0IG5vIGNvbXBhdGlibGUgbW9kZSBm b3VuZFxuIiwKKwkJCQkgb3V0cHV0LT5uYW1lLCBtc3RfcGF0aF9idWZmZXIpOworCQkJY29udGlu dWU7CisJCX0KKworCQlpZ3RfaW5mbygiQWRkZWQgTVNUIGNvbm5lY3RvciAlc1slc11cbiIsIG91 dHB1dC0+bmFtZSwgbXN0X3BhdGhfYnVmZmVyKTsKKworCQlpZ3Rfb3V0cHV0X292ZXJyaWRlX21v ZGUob3V0cHV0LCBtb2RlKTsKKwkJZGF0YS0+bXN0X291dHB1dFtkYXRhLT5tc3RfY29ubmVjdG9y c10gPSBvdXRwdXQ7CisJCWRhdGEtPm1zdF9jb25uZWN0b3JzKys7CisJfQorCisJaWd0X3JlcXVp cmVfZihkYXRhLT5tc3RfY29ubmVjdG9ycywgIk5vIE1TVCBjb25uZWN0b3IgZm91bmRcbiIpOwor CWlndF9kaXNwbGF5X2NvbW1pdDIoJmRhdGEtPmRpc3BsYXksIENPTU1JVF9BVE9NSUMpOworfQor CitzdGF0aWMgdm9pZCBwcmVwYXJlKGRhdGFfdCAqZGF0YSwgdWludDhfdCBuX291dHB1dHMpCit7 CisJaWd0X291dHB1dF90ICpvdXRwdXQ7CisJdWludDhfdCBpOworCisJZm9yIChpID0gMDsgaSA8 IGRhdGEtPm1zdF9jb25uZWN0b3JzICYmIGkgPCBuX291dHB1dHM7IGkrKykgeworCQljb25zdCBk cm1Nb2RlTW9kZUluZm8gKm1vZGU7CisJCWlndF9wbGFuZV90ICpwcmltYXJ5OworCQlkb3VibGUg ciwgZywgYjsKKwkJY2Fpcm9fdCAqY3I7CisKKwkJb3V0cHV0ID0gZGF0YS0+bXN0X291dHB1dFtp XTsKKwkJbW9kZSA9IGlndF9vdXRwdXRfZ2V0X21vZGUob3V0cHV0KTsKKworCQlpZ3Rfb3V0cHV0 X3NldF9waXBlKG91dHB1dCwgUElQRV9BICsgaSk7CisKKwkJcHJpbWFyeSA9IGlndF9vdXRwdXRf Z2V0X3BsYW5lX3R5cGUob3V0cHV0LAorCQkJCQkJICAgIERSTV9QTEFORV9UWVBFX1BSSU1BUlkp OworCQlpZ3RfY3JlYXRlX2NvbG9yX2ZiKGRhdGEtPmRybV9mZCwgbW9kZS0+aGRpc3BsYXksIG1v ZGUtPnZkaXNwbGF5LAorCQkJCSAgICBEUk1fRk9STUFUX1hSR0I4ODg4LCBMT0NBTF9EUk1fRk9S TUFUX01PRF9OT05FLAorCQkJCSAgICAxLjAsIDEuMCwgMS4wLCAmZGF0YS0+ZmJbaV0pOworCisJ CWNyID0gaWd0X2dldF9jYWlyb19jdHgoZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+ZmJbaV0pOworCisJ CS8qIHBhaW50IHNxdWFyZSBpbiBkaWZmZXJlbnQgY29sb3IgKi8KKwkJc3dpdGNoIChpICUgNCkg eworCQljYXNlIDA6CisJCQlyID0gMS4wOworCQkJZyA9IGIgPSAwLjA7CisJCQlicmVhazsKKwkJ Y2FzZSAxOgorCQkJZyA9IDEuMDsKKwkJCXIgPSBiID0gMC4wOworCQkJYnJlYWs7CisJCWNhc2Ug MjoKKwkJCWIgPSAxLjA7CisJCQlyID0gZyA9IDAuMDsKKwkJCWJyZWFrOworCQlkZWZhdWx0Ogor CQljYXNlIDQ6CisJCQlyID0gZyA9IGIgPSAwLjA7CisJCQlicmVhazsKKwkJfQorCQlpZ3RfcGFp bnRfY29sb3JfYWxwaGEoY3IsIDAsIDAsIFNRVUFSRV9TSVpFLCBTUVVBUkVfU0laRSwKKwkJCQkg ICAgICByLCBnLCBiLCAxLjApOworCisJCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgJmRhdGEt PmZiW2ldKTsKKwkJaWd0X3B1dF9jYWlyb19jdHgoZGF0YS0+ZHJtX2ZkLCAgJmRhdGEtPmZiW2ld LCBjcik7CisJfQorCisJaWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0YS0+ZGlzcGxheSwgQ09NTUlU X0FUT01JQyk7CisJZGF0YS0+cHJlcGFyZWQgPSBuX291dHB1dHM7Cit9CisKK3N0YXRpYyB2b2lk IGNoYW5nZV9yZXNvbHV0aW9uKGRhdGFfdCAqZGF0YSwgYm9vbCBhbGwpCit7CisJaWd0X291dHB1 dF90ICpvdXRwdXQ7CisJdWludDMyX3QgY2xvY2sgPSAwOworCXVpbnQ4X3QgaTsKKworCWZvciAo aSA9IDA7IGkgPCBkYXRhLT5tc3RfY29ubmVjdG9yczsgaSsrKSB7CisJCWRybU1vZGVNb2RlSW5m byAqbW9kZTsKKworCQlvdXRwdXQgPSBkYXRhLT5tc3Rfb3V0cHV0W2ldOworCQlpZiAob3V0cHV0 LT5wZW5kaW5nX3BpcGUgPT0gUElQRV9OT05FKQorCQkJY29udGludWU7CisKKwkJbW9kZSA9IGZp bmRfbW9kZShvdXRwdXQsIEFOT1RIRVJfUkVTT0xVVElPTl9ILAorCQkJCSBBTk9USEVSX1JFU09M VVRJT05fViwgJmNsb2NrKTsKKwkJaWYgKCFtb2RlKSB7CisJCQlpZ3RfaW5mbygiTmV3IHJlc29s dXRpb24gbm90IGZvdW5kIG9uICVzIHNraXBwaW5nIGl0XG4iLAorCQkJCSBvdXRwdXQtPm5hbWUp OworCQkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIFBJUEVfTk9ORSk7CisJCQljb250aW51 ZTsKKwkJfQorCisJCWlndF9vdXRwdXRfb3ZlcnJpZGVfbW9kZShvdXRwdXQsIG1vZGUpOworCisJ CWlmICghYWxsKQorCQkJYnJlYWs7CisJfQorCisJaWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0YS0+ ZGlzcGxheSwgQ09NTUlUX0FUT01JQyk7Cit9CisKK3N0YXRpYyB2b2lkIHJlc3RvcmVfcmVzb2x1 dGlvbihkYXRhX3QgKmRhdGEpCit7CisJaWd0X291dHB1dF90ICpvdXRwdXQ7CisJdWludDMyX3Qg Y2xvY2sgPSAwOworCXVpbnQ4X3QgaTsKKworCWZvciAoaSA9IDA7IGkgPCBkYXRhLT5tc3RfY29u bmVjdG9yczsgaSsrKSB7CisJCWRybU1vZGVNb2RlSW5mbyAqbW9kZTsKKworCQlvdXRwdXQgPSBk YXRhLT5tc3Rfb3V0cHV0W2ldOworCQltb2RlID0gZmluZF9tb2RlKG91dHB1dCwgUkVTT0xVVElP Tl9ILCBSRVNPTFVUSU9OX1YsICZjbG9jayk7CisJCS8qCisJCSAqIE5vIG5lZWQgdG8gY2hlY2sg YmVjYXVzZSB0aGlzIG1vZGUgd2FzIGFscmVhZHkgZm91bmQgaW4KKwkJICogc2VhcmNoX21zdF9v dXRwdXRzKCkKKwkJICovCisJCWlndF9vdXRwdXRfb3ZlcnJpZGVfbW9kZShvdXRwdXQsIG1vZGUp OworCQkvKiBSZWVuYWJsZSBhbnkgc2luayBsZWZ0IG9mZiBpbiBjaGFuZ2VfcmVzb2x1dGlvbigp ICovCisJCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBQSVBFX0EgKyBpKTsKKwl9CisKKwlp Z3RfZGlzcGxheV9jb21taXQyKCZkYXRhLT5kaXNwbGF5LCBDT01NSVRfQVRPTUlDKTsKK30KKwor c3RhdGljIHZvaWQgY2xlYW51cChkYXRhX3QgKmRhdGEpCit7CisJdWludDhfdCBpOworCisJZm9y IChpID0gMDsgaSA8IGRhdGEtPnByZXBhcmVkOyBpKyspIHsKKwkJaWd0X291dHB1dF90ICpvdXRw dXQgPSBkYXRhLT5tc3Rfb3V0cHV0W2ldOworCQlpZ3RfcGxhbmVfdCAqcHJpbWFyeTsKKworCQlw cmltYXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShvdXRwdXQsCisJCQkJCQkgICAgRFJN X1BMQU5FX1RZUEVfUFJJTUFSWSk7CisJCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgTlVMTCk7 CisJCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBQSVBFX05PTkUpOworCX0KKworCWlndF9k aXNwbGF5X2NvbW1pdDIoJmRhdGEtPmRpc3BsYXksIENPTU1JVF9BVE9NSUMpOworCisJZm9yIChp ID0gMDsgaSA8IGRhdGEtPnByZXBhcmVkOyBpKyspCisJCWlndF9yZW1vdmVfZmIoZGF0YS0+ZHJt X2ZkLCAmZGF0YS0+ZmJbaV0pOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltd KQoreworCWRhdGFfdCBkYXRhID0ge307CisKKwlpZ3Rfc3VidGVzdF9pbml0X3BhcnNlX29wdHMo JmFyZ2MsIGFyZ3YsICIiLCBOVUxMLAorCQkJCSAgICBOVUxMLCBOVUxMLCBOVUxMKTsKKwlpZ3Rf c2tpcF9vbl9zaW11bGF0aW9uKCk7CisKKwlpZ3RfZml4dHVyZSB7CisJCWRhdGEuZHJtX2ZkID0g ZHJtX29wZW5fZHJpdmVyX21hc3RlcihEUklWRVJfSU5URUwpOworCQlrbXN0ZXN0X3NldF92dF9n cmFwaGljc19tb2RlKCk7CisKKwkJaWd0X2Rpc3BsYXlfcmVxdWlyZSgmZGF0YS5kaXNwbGF5LCBk YXRhLmRybV9mZCk7CisJCXNlYXJjaF9tc3Rfb3V0cHV0cygmZGF0YSk7CisJfQorCisJaWd0X2Rl c2NyaWJlKCJFbmFibGUgYWxsIE1TVCBzdHJlYW1zIGluIHRoZSBzYW1lIHBvcnQiKTsKKwlpZ3Rf c3VidGVzdF9mKCJhbGxfZW5hYmxlZCIpIHsKKwkJcHJlcGFyZSgmZGF0YSwgZGF0YS5tc3RfY29u bmVjdG9ycyk7CisJCWlndF9kZWJ1Z19tYW51YWxfY2hlY2soImFsbCIsICJhbGwgc3RyZWFtcyBl bmFibGVkIik7CisJCWNsZWFudXAoJmRhdGEpOworCX0KKworCWlndF9kZXNjcmliZSgiVGVzdCBj aGFuZ2UgdGhlIG1hc3RlciBDUlRDIG9mIHRoZSBNU1Qgc3RyZWFtIik7CisJaWd0X3N1YnRlc3Rf ZigiY2hhbmdlX21hc3RlciIpIHsKKwkJZW51bSBwaXBlIHBpcGU7CisKKwkJaWd0X3JlcXVpcmUo ZGF0YS5tc3RfY29ubmVjdG9ycyA+PSAyKTsKKworCQlwcmVwYXJlKCZkYXRhLCAyKTsKKwkJaWd0 X2RlYnVnX21hbnVhbF9jaGVjaygiYWxsIiwgImR1YWwgb3V0cHV0Iik7CisKKwkJcGlwZSA9IGRh dGEubXN0X291dHB1dFswXS0+cGVuZGluZ19waXBlOworCQlpZ3Rfb3V0cHV0X3NldF9waXBlKGRh dGEubXN0X291dHB1dFswXSwgUElQRV9OT05FKTsKKwkJaWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0 YS5kaXNwbGF5LCBDT01NSVRfQVRPTUlDKTsKKwkJaWd0X2RlYnVnX21hbnVhbF9jaGVjaygiYWxs IiwgImZpcnN0IE1TVCBzdHJlYW0gZGlzYWJsZWQiKTsKKworCQlpZ3Rfb3V0cHV0X3NldF9waXBl KGRhdGEubXN0X291dHB1dFswXSwgcGlwZSk7CisJCWlndF9kaXNwbGF5X2NvbW1pdDIoJmRhdGEu ZGlzcGxheSwgQ09NTUlUX0FUT01JQyk7CisJCWlndF9kZWJ1Z19tYW51YWxfY2hlY2soImFsbCIs ICJkdWFsIG91dHB1dCIpOworCisJCXBpcGUgPSBkYXRhLm1zdF9vdXRwdXRbMV0tPnBlbmRpbmdf cGlwZTsKKwkJaWd0X291dHB1dF9zZXRfcGlwZShkYXRhLm1zdF9vdXRwdXRbMV0sIFBJUEVfTk9O RSk7CisJCWlndF9kaXNwbGF5X2NvbW1pdDIoJmRhdGEuZGlzcGxheSwgQ09NTUlUX0FUT01JQyk7 CisJCWlndF9kZWJ1Z19tYW51YWxfY2hlY2soImFsbCIsICJzZWNvbmQgTVNUIHN0cmVhbSBkaXNh YmxlZCIpOworCisJCWlndF9vdXRwdXRfc2V0X3BpcGUoZGF0YS5tc3Rfb3V0cHV0WzFdLCBwaXBl KTsKKwkJaWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0YS5kaXNwbGF5LCBDT01NSVRfQVRPTUlDKTsK KwkJaWd0X2RlYnVnX21hbnVhbF9jaGVjaygiYWxsIiwgImR1YWwgb3V0cHV0Iik7CisKKwkJY2xl YW51cCgmZGF0YSk7CisJfQorCisJaWd0X2Rlc2NyaWJlKCJUZXN0IGNoYW5nZSB0aGUgcmVzb2x1 dGlvbiBvZmYgYWxsIE1TVCBzdHJlYW1zIik7CisJaWd0X3N1YnRlc3RfZigiY2hhbmdlX3Jlc29s dXRpb24iKSB7CisJCXByZXBhcmUoJmRhdGEsIGRhdGEubXN0X2Nvbm5lY3RvcnMpOworCQlpZ3Rf ZGVidWdfbWFudWFsX2NoZWNrKCJhbGwiLCAicmVndWxhciByZXNvbHV0aW9uIGluIGFsbCBzdHJl YW1zIik7CisKKwkJY2hhbmdlX3Jlc29sdXRpb24oJmRhdGEsIHRydWUpOworCQlpZ3RfZGVidWdf bWFudWFsX2NoZWNrKCJhbGwiLCAibmV3IHJlc29sdXRpb24gc2V0IGluIGNvbXBhdGlibGUgc3Ry ZWFtcyIpOworCisJCXJlc3RvcmVfcmVzb2x1dGlvbigmZGF0YSk7CisJCWlndF9kZWJ1Z19tYW51 YWxfY2hlY2soImFsbCIsICJyZWd1bGFyIHJlc29sdXRpb24gaW4gYWxsIHN0cmVhbXMgYWdhaW4i KTsKKwkJY2xlYW51cCgmZGF0YSk7CisJfQorCisJaWd0X2Rlc2NyaWJlKCJUZXN0IGRvIGEgZnVs bG1vZGVzZXQgaW4gdGhlIG1hc3RlciBDUlRDIG9mIHRoZSBNU1Qgc3RyZWFtIik7CisJaWd0X3N1 YnRlc3RfZigiZnVsbG1vZGVzZXRfbWFzdGVyIikgeworCQlwcmVwYXJlKCZkYXRhLCBkYXRhLm1z dF9jb25uZWN0b3JzKTsKKwkJaWd0X2RlYnVnX21hbnVhbF9jaGVjaygiYWxsIiwgInJlZ3VsYXIg cmVzb2x1dGlvbiBpbiBhbGwgc3RyZWFtcyIpOworCisJCWNoYW5nZV9yZXNvbHV0aW9uKCZkYXRh LCBmYWxzZSk7CisJCWlndF9kZWJ1Z19tYW51YWxfY2hlY2soImFsbCIsICJuZXcgcmVzb2x1dGlv biBpbiB0aGUgZmlyc3Qgc3RyZWFtIik7CisKKwkJcmVzdG9yZV9yZXNvbHV0aW9uKCZkYXRhKTsK KwkJaWd0X2RlYnVnX21hbnVhbF9jaGVjaygiYWxsIiwgInJlZ3VsYXIgcmVzb2x1dGlvbiBpbiBh bGwgc3RyZWFtcyBhZ2FpbiIpOworCQljbGVhbnVwKCZkYXRhKTsKKwl9CisKKwlpZ3RfZml4dHVy ZSB7CisJCWlndF9kaXNwbGF5X3Jlc2V0KCZkYXRhLmRpc3BsYXkpOworCQlpZ3RfZGlzcGxheV9m aW5pKCZkYXRhLmRpc3BsYXkpOworCX0KKworCWlndF9leGl0KCk7Cit9CmRpZmYgLS1naXQgYS90 ZXN0cy9tZXNvbi5idWlsZCBiL3Rlc3RzL21lc29uLmJ1aWxkCmluZGV4IGE3OWQyMmJhLi5hNTUy MzAxYiAxMDA2NDQKLS0tIGEvdGVzdHMvbWVzb24uYnVpbGQKKysrIGIvdGVzdHMvbWVzb24uYnVp bGQKQEAgLTQzLDYgKzQzLDcgQEAgdGVzdF9wcm9ncyA9IFsKIAkna21zX2xlYXNlJywKIAkna21z X2xlZ2FjeV9jb2xvcmtleScsCiAJJ2ttc19tbWFwX3dyaXRlX2NyYycsCisJJ2ttc19tc3QnLAog CSdrbXNfcGFuZWxfZml0dGluZycsCiAJJ2ttc19waXBlX2JfY19pdmInLAogCSdrbXNfcGlwZV9j cmNfYmFzaWMnLAotLSAKMi4yNS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ln dC1kZXYK