From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Weinehall Subject: [PATCH i-g-t 2/3 v3] Unify handling of slow/combinatorial tests Date: Fri, 30 Oct 2015 15:18:30 +0200 Message-ID: <1446211111-3940-3-git-send-email-david.weinehall@linux.intel.com> References: <1445600556-14884-1-git-send-email-david.weinehall@linux.intel.com> <1446211111-3940-1-git-send-email-david.weinehall@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 29D7D6EC98 for ; Fri, 30 Oct 2015 06:19:46 -0700 (PDT) In-Reply-To: <1446211111-3940-1-git-send-email-david.weinehall@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 List-Id: intel-gfx@lists.freedesktop.org U29tZSBzdWJ0ZXN0cyBhcmUgbm90IHJ1biBieSBkZWZhdWx0LCBmb3IgdmFyaW91cyByZWFzb25z OwpiZSBpdCBiZWNhdXNlIHRoZXkncmUgb25seSBmb3IgZGVidWdnaW5nLCBiZWNhdXNlIHRoZXkn cmUgc2xvdywKb3IgYmVjYXVzZSB0aGV5IGFyZSBub3Qgb2YgaGlnaCBlbm91Z2ggcXVhbGl0eS4K ClRoaXMgcGF0Y2ggYWltcyB0byBpbnRyb2R1Y2UgYSBjb21tb24gbWVjaGFuaXNtIGZvciBjYXRl Z29yaXNpbmcKdGhlIHN1YnRlc3RzIGFuZCBpbnRyb2R1Y2VzIGEgZmxhZyAoLS1hbGwpIHRoYXQg cnVucy9saXN0cyBhbGwKc3VidGVzdHMgaW5zdGVhZCBvZiBqdXN0IHRoZSBkZWZhdWx0IHNldC4K ClNpZ25lZC1vZmYtYnk6IERhdmlkIFdlaW5laGFsbCA8ZGF2aWQud2VpbmVoYWxsQGxpbnV4Lmlu dGVsLmNvbT4KLS0tCiBsaWIvaWd0X2NvcmUuYyAgICAgICAgICAgICAgICAgICB8ICA0MyArKysr KystLQogbGliL2lndF9jb3JlLmggICAgICAgICAgICAgICAgICAgfCAgNDIgKysrKysrKysKIHRl c3RzL2dlbV9jb25jdXJyZW50X2JsaXQuYyAgICAgIHwgIDUwICsrKysrLS0tLS0KIHRlc3RzL2tt c19mcm9udGJ1ZmZlcl90cmFja2luZy5jIHwgMjA3ICsrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAyMTggaW5zZXJ0aW9ucygrKSwgMTI0IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfY29yZS5jIGIvbGliL2lndF9jb3JlLmMK aW5kZXggNTkxMjdjYWZlNjA2Li4yMDM0YmMzM2FkNzggMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfY29y ZS5jCisrKyBiL2xpYi9pZ3RfY29yZS5jCkBAIC0yMTYsNiArMjE2LDcgQEAgY29uc3QgY2hhciAq aWd0X2ludGVyYWN0aXZlX2RlYnVnOwogCiAvKiBzdWJ0ZXN0cyBoZWxwZXJzICovCiBzdGF0aWMg Ym9vbCBsaXN0X3N1YnRlc3RzID0gZmFsc2U7CitzdGF0aWMgdW5zaWduZWQgaW50IHN1YnRlc3Rf dHlwZXNfbWFzayA9IFNVQlRFU1RfVFlQRV9OT1JNQUw7CiBzdGF0aWMgY2hhciAqcnVuX3Npbmds ZV9zdWJ0ZXN0ID0gTlVMTDsKIHN0YXRpYyBib29sIHJ1bl9zaW5nbGVfc3VidGVzdF9mb3VuZCA9 IGZhbHNlOwogc3RhdGljIGNvbnN0IGNoYXIgKmluX3N1YnRlc3QgPSBOVUxMOwpAQCAtMjM0LDEy ICsyMzUsMTMgQEAgaW50IHRlc3RfY2hpbGRyZW5fc3o7CiBib29sIHRlc3RfY2hpbGQ7CiAKIGVu dW0gewotIE9QVF9MSVNUX1NVQlRFU1RTLAotIE9QVF9SVU5fU1VCVEVTVCwKLSBPUFRfREVTQ1JJ UFRJT04sCi0gT1BUX0RFQlVHLAotIE9QVF9JTlRFUkFDVElWRV9ERUJVRywKLSBPUFRfSEVMUCA9 ICdoJworCU9QVF9MSVNUX1NVQlRFU1RTLAorCU9QVF9XSVRIX0FMTF9TVUJURVNUUywKKwlPUFRf UlVOX1NVQlRFU1QsCisJT1BUX0RFU0NSSVBUSU9OLAorCU9QVF9ERUJVRywKKwlPUFRfSU5URVJB Q1RJVkVfREVCVUcsCisJT1BUX0hFTFAgPSAnaCcKIH07CiAKIHN0YXRpYyBpbnQgaWd0X2V4aXRj b2RlID0gSUdUX0VYSVRfU1VDQ0VTUzsKQEAgLTQ3OCw2ICs0ODAsNyBAQCBzdGF0aWMgdm9pZCBw cmludF91c2FnZShjb25zdCBjaGFyICpoZWxwX3N0ciwgYm9vbCBvdXRwdXRfb25fc3RkZXJyKQog CiAJZnByaW50ZihmLCAiVXNhZ2U6ICVzIFtPUFRJT05TXVxuIiwgY29tbWFuZF9zdHIpOwogCWZw cmludGYoZiwgIiAgLS1saXN0LXN1YnRlc3RzXG4iCisJCSAgICIgIC0tYWxsXG4iCiAJCSAgICIg IC0tcnVuLXN1YnRlc3QgPHBhdHRlcm4+XG4iCiAJCSAgICIgIC0tZGVidWdbPWxvZy1kb21haW5d XG4iCiAJCSAgICIgIC0taW50ZXJhY3RpdmUtZGVidWdbPWRvbWFpbl1cbiIKQEAgLTUxMCw2ICs1 MTMsNyBAQCBzdGF0aWMgaW50IGNvbW1vbl9pbml0KGludCAqYXJnYywgY2hhciAqKmFyZ3YsCiAJ aW50IGMsIG9wdGlvbl9pbmRleCA9IDAsIGksIHg7CiAJc3RhdGljIHN0cnVjdCBvcHRpb24gbG9u Z19vcHRpb25zW10gPSB7CiAJCXsibGlzdC1zdWJ0ZXN0cyIsIDAsIDAsIE9QVF9MSVNUX1NVQlRF U1RTfSwKKwkJeyJhbGwiLCAwLCAwLCBPUFRfV0lUSF9BTExfU1VCVEVTVFN9LAogCQl7InJ1bi1z dWJ0ZXN0IiwgMSwgMCwgT1BUX1JVTl9TVUJURVNUfSwKIAkJeyJoZWxwLWRlc2NyaXB0aW9uIiwg MCwgMCwgT1BUX0RFU0NSSVBUSU9OfSwKIAkJeyJkZWJ1ZyIsIG9wdGlvbmFsX2FyZ3VtZW50LCAw LCBPUFRfREVCVUd9LApAQCAtNjE3LDYgKzYyMSwxMCBAQCBzdGF0aWMgaW50IGNvbW1vbl9pbml0 KGludCAqYXJnYywgY2hhciAqKmFyZ3YsCiAJCQlpZiAoIXJ1bl9zaW5nbGVfc3VidGVzdCkKIAkJ CQlsaXN0X3N1YnRlc3RzID0gdHJ1ZTsKIAkJCWJyZWFrOworCQljYXNlIE9QVF9XSVRIX0FMTF9T VUJURVNUUzoKKwkJCWlmICghcnVuX3NpbmdsZV9zdWJ0ZXN0KQorCQkJCXN1YnRlc3RfdHlwZXNf bWFzayA9IFNVQlRFU1RfVFlQRV9BTEw7CisJCQlicmVhazsKIAkJY2FzZSBPUFRfUlVOX1NVQlRF U1Q6CiAJCQlpZiAoIWxpc3Rfc3VidGVzdHMpCiAJCQkJcnVuX3NpbmdsZV9zdWJ0ZXN0ID0gc3Ry ZHVwKG9wdGFyZyk7CkBAIC0xNjI5LDYgKzE2MzcsMjkgQEAgdm9pZCBpZ3Rfc2tpcF9vbl9zaW11 bGF0aW9uKHZvaWQpCiAJCWlndF9yZXF1aXJlKCFpZ3RfcnVuX2luX3NpbXVsYXRpb24oKSk7CiB9 CiAKKy8qKgorICogaWd0X21hdGNoX3N1YnRlc3RfZmxhZ3M6CisgKgorICogVGhpcyBmdW5jdGlv biBpcyB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIHN1YnRlc3QK KyAqIG1ha2VzIGl0IGEgY2FuZGlkYXRlIGZvciBpbmNsdXNpb24gaW4gdGhlIHRlc3QgcnVuOyB0 aGlzIGlzIHVzZWQgdG8KKyAqIGNhdGVnb3Jpc2UgdGVzdHMsIGZvciBpbnN0YW5jZSB0byBleGNs dWRlIHRlc3RzIHRoYXQgYXJlIHB1cmVseSBmb3IKKyAqIGRlYnVnIHB1cnBvc2VzLCB0ZXN0cyB0 aGF0IGFyZSBzcGVjaWZpYyB0byBjZXJ0YWluIGVudmlyb25tZW50cywKKyAqIG9yIHRlc3RzIHRo YXQgYXJlIHZlcnkgc2xvdy4KKyAqCisgKiBOb3RlIHRoYXQgYSB0ZXN0IGhhcyB0byBoYXZlIGFs bCBpdHMgZmxhZ3MgbWV0IHRvIGJlIHJ1bjsgZm9yIGluc3RhbmNlCisgKiBhIHN1YnRlc3Qgd2l0 aCB0aGUgZmxhZ3MgU1VCVEVTVF9UWVBFX1NMT1cgfCBTVUJURVNUX1RZUEVfREVCVUcgcmVxdWly ZXMKKyAqICItLXN1YnRlc3QtdHlwZXM9c2xvdyxkZWJ1ZyIgb3IgIi0tYWxsIiB0byBiZSBleGVj dXRlZAorICoKKyAqIEBzdWJ0ZXN0X2ZsYWdzOiBUaGUgc3VidGVzdHMgdG8gY2hlY2sgZm9yCisg KgorICogUmV0dXJuczogdHJ1ZSBpZiB0aGUgc3VidGVzdCB0ZXN0IHNob3VsZCBiZSBydW4sCisg KiAgICAgICAgICBmYWxzZSBpZiB0aGUgc3VidGVzdCBzaG91bGQgYmUgc2tpcHBlZAorICovCiti b29sIGlndF9tYXRjaF9zdWJ0ZXN0X2ZsYWdzKHVuc2lnbmVkIGxvbmcgc3VidGVzdF9mbGFncykK K3sKKwlyZXR1cm4gKChzdWJ0ZXN0X2ZsYWdzICYgc3VidGVzdF90eXBlc19tYXNrKSA9PSBzdWJ0 ZXN0X2ZsYWdzKTsKK30KKwogLyogc3RydWN0dXJlZCBsb2dnaW5nICovCiAKIC8qKgpkaWZmIC0t Z2l0IGEvbGliL2lndF9jb3JlLmggYi9saWIvaWd0X2NvcmUuaAppbmRleCA1YWUwOTY1M2ZkNTUu LjQ5NWNiNzdhOGFlYSAxMDA2NDQKLS0tIGEvbGliL2lndF9jb3JlLmgKKysrIGIvbGliL2lndF9j b3JlLmgKQEAgLTE5MSw2ICsxOTEsNDggQEAgYm9vbCBfX2lndF9ydW5fc3VidGVzdChjb25zdCBj aGFyICpzdWJ0ZXN0X25hbWUpOwogI2RlZmluZSBpZ3Rfc3VidGVzdF9mKGYuLi4pIFwKIAlfX2ln dF9zdWJ0ZXN0X2YoaWd0X3Rva2VuY2F0KF9fdG1wY2hhciwgX19MSU5FX18pLCBmKQogCitlbnVt IHsKKwkvKiBUaGUgc2V0IG9mIHRlc3RzIHJ1biBpZiBub3RoaW5nIGVsc2UgaXMgc3BlY2lmaWVk ICovCisJU1VCVEVTVF9UWVBFX05PUk1BTCA9IDEgPDwgMCwKKwkvKiBCYXNpYyBBY2NlcHRhbmNl IFRlc3Rpbmcgc2V0ICovCisJU1VCVEVTVF9UWVBFX0JBU0lDID0gMSA8PCAxLAorCS8qIFRlc3Rz IHRoYXQgYXJlIHZlcnkgc2xvdyAqLworCVNVQlRFU1RfVFlQRV9TTE9XID0gMSA8PCAyLAorCS8q IFRlc3RzIHRoYXQgbWFpbmx5IGludGVuZGVkIGZvciBkZWJ1Z2dpbmcgKi8KKwlTVUJURVNUX1RZ UEVfREVCVUcgPSAxIDw8IDMsCisJU1VCVEVTVF9UWVBFX0FMTCA9IH4wCit9IHN1YnRlc3RfdHlw ZXM7CisKK2Jvb2wgaWd0X21hdGNoX3N1YnRlc3RfZmxhZ3ModW5zaWduZWQgbG9uZyBzdWJ0ZXN0 X2ZsYWdzKTsKKworLyoqCisgKiBpZ3Rfc3VidGVzdF9mbGFnczoKKyAqIEBuYW1lOiBuYW1lIG9m IHRoZSBzdWJ0ZXN0CisgKiBAX19zdWJ0ZXN0X2ZsYWdzOiB0aGUgY2F0ZWdvcmllcyB0aGUgc3Vi dGVzdCBiZWxvbmdzIHRvCisgKgorICogVGhpcyBpcyBhIHdyYXBwZXIgYXJvdW5kIGlndF9zdWJ0 ZXN0IHRoYXQgd2lsbCBvbmx5IGV4ZWN1dGUgdGhlCisgKiB0ZXN0Y2FzZSBpZiBhbGwgb2YgdGhl IGZsYWdzIHBhc3NlZCB0byB0aGlzIGZ1bmN0aW9uIG1hdGNoIHRob3NlCisgKiBzcGVjaWZpZWQg YnkgdGhlIGxpc3Qgb2Ygc3VidGVzdCBjYXRlZ29yaWVzIHBhc3NlZCBmcm9tIHRoZQorICogY29t bWFuZCBsaW5lOyB0aGUgZGVmYXVsdCBjYXRlZ29yeSBpcyBTVUJURVNUX1RZUEVfTk9STUFMLgor ICovCisjZGVmaW5lIGlndF9zdWJ0ZXN0X2ZsYWdzKG5hbWUsIF9fc3VidGVzdF9mbGFncykgXAor CWlmIChpZ3RfbWF0Y2hfc3VidGVzdF9mbGFncyhfX3N1YnRlc3RfZmxhZ3MpKSBcCisJCWlndF9z dWJ0ZXN0KG5hbWUpCisKKy8qKgorICogaWd0X3N1YnRlc3RfZmxhZ3NfZjoKKyAqIEAuLi46IGZv cm1hdCBzdHJpbmcgYW5kIG9wdGlvbmFsIGFyZ3VtZW50cworICogQF9fc3VidGVzdF9mbGFnczog dGhlIGNhdGVnb3JpZXMgdGhlIHN1YnRlc3QgYmVsb25ncyB0bworICoKKyAqIFRoaXMgaXMgYSB3 cmFwcGVyIGFyb3VuZCBpZ3Rfc3VidGVzdF9mIHRoYXQgd2lsbCBvbmx5IGV4ZWN1dGUgdGhlCisg KiB0ZXN0Y2FzZSBpZiBhbGwgb2YgdGhlIGZsYWdzIHBhc3NlZCB0byB0aGlzIGZ1bmN0aW9uIG1h dGNoIHRob3NlCisgKiBzcGVjaWZpZWQgYnkgdGhlIGxpc3Qgb2Ygc3VidGVzdCBjYXRlZ29yaWVz IHBhc3NlZCBmcm9tIHRoZQorICogY29tbWFuZCBsaW5lOyB0aGUgZGVmYXVsdCBjYXRlZ29yeSBp cyBTVUJURVNUX1RZUEVfTk9STUFMLgorICovCisjZGVmaW5lIGlndF9zdWJ0ZXN0X2ZsYWdzX2Yo X19zdWJ0ZXN0X2ZsYWdzLCBmLi4uKSBcCisJaWYgKGlndF9tYXRjaF9zdWJ0ZXN0X2ZsYWdzKF9f c3VidGVzdF9mbGFncykpIFwKKwkJX19pZ3Rfc3VidGVzdF9mKGlndF90b2tlbmNhdChfX3RtcGNo YXIsIF9fTElORV9fKSwgZikKKwogY29uc3QgY2hhciAqaWd0X3N1YnRlc3RfbmFtZSh2b2lkKTsK IGJvb2wgaWd0X29ubHlfbGlzdF9zdWJ0ZXN0cyh2b2lkKTsKIApkaWZmIC0tZ2l0IGEvdGVzdHMv Z2VtX2NvbmN1cnJlbnRfYmxpdC5jIGIvdGVzdHMvZ2VtX2NvbmN1cnJlbnRfYmxpdC5jCmluZGV4 IDFkMmQ3ODcyMDJkZi4uYTRiZTBlNzlmYmQxIDEwMDY0NAotLS0gYS90ZXN0cy9nZW1fY29uY3Vy cmVudF9ibGl0LmMKKysrIGIvdGVzdHMvZ2VtX2NvbmN1cnJlbnRfYmxpdC5jCkBAIC01NSw3ICs1 NSw2IEBAIElHVF9URVNUX0RFU0NSSVBUSU9OKCJUZXN0IG9mIHByZWFkL3B3cml0ZS9tbWFwIGJl aGF2aW9yIHdoZW4gd3JpdGluZyB0byBhY3RpdmUiCiAKIGludCBmZCwgZGV2aWQsIGdlbjsKIHN0 cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2g7Ci1pbnQgYWxsOwogCiBzdGF0aWMgdm9pZAog bm9wX3JlbGVhc2VfYm8oZHJtX2ludGVsX2JvICpibykKQEAgLTkzMSwxNiArOTMwLDIwIEBAIHJ1 bl9iYXNpY19tb2Rlcyhjb25zdCBzdHJ1Y3QgYWNjZXNzX21vZGUgKm1vZGUsCiAJc3RydWN0IGJ1 ZmZlcnMgYnVmZmVyczsKIAogCWZvciAoaCA9IGhhbmdzOyBoLT5zdWZmaXg7IGgrKykgewotCQlp ZiAoIWFsbCAmJiAqaC0+c3VmZml4KQotCQkJY29udGludWU7CisJCXVuc2lnbmVkIGludCBzdWJ0 ZXN0X2ZsYWdzOwogCi0JCWZvciAocCA9IGFsbCA/IHBpcGVsaW5lcyA6IHBza2lwOyBwLT5wcmVm aXg7IHArKykgeworCQlpZiAoKmgtPnN1ZmZpeCkKKwkJCXN1YnRlc3RfZmxhZ3MgPSBTVUJURVNU X1RZUEVfU0xPVzsKKwkJZWxzZQorCQkJc3VidGVzdF9mbGFncyA9IFNVQlRFU1RfVFlQRV9OT1JN QUw7CisKKwkJZm9yIChwID0gaWd0X21hdGNoX3N1YnRlc3RfZmxhZ3MoU1VCVEVTVF9UWVBFX1NM T1cpID8gcGlwZWxpbmVzIDogcHNraXA7IHAtPnByZWZpeDsgcCsrKSB7CiAJCQlpZ3RfZml4dHVy ZSB7CiAJCQkJYmF0Y2ggPSBidWZmZXJzX2luaXQoJmJ1ZmZlcnMsIG1vZGUsIGZkKTsKIAkJCX0K IAogCQkJLyogdHJ5IHRvIG92ZXJ3cml0ZSB0aGUgc291cmNlIHZhbHVlcyAqLwotCQkJaWd0X3N1 YnRlc3RfZigiJXMtJXMtb3ZlcndyaXRlLXNvdXJjZS1vbmUlcyVzIiwgbW9kZS0+bmFtZSwgcC0+ cHJlZml4LCBzdWZmaXgsIGgtPnN1ZmZpeCkgeworCQkJaWd0X3N1YnRlc3RfZmxhZ3NfZihzdWJ0 ZXN0X2ZsYWdzLCAiJXMtJXMtb3ZlcndyaXRlLXNvdXJjZS1vbmUlcyVzIiwgbW9kZS0+bmFtZSwg cC0+cHJlZml4LCBzdWZmaXgsIGgtPnN1ZmZpeCkgewogCQkJCWgtPnJlcXVpcmUoKTsKIAkJCQlw LT5yZXF1aXJlKCk7CiAJCQkJYnVmZmVyc19jcmVhdGUoJmJ1ZmZlcnMsIG51bV9idWZmZXJzKTsK QEAgLTk0OSw3ICs5NTIsNyBAQCBydW5fYmFzaWNfbW9kZXMoY29uc3Qgc3RydWN0IGFjY2Vzc19t b2RlICptb2RlLAogCQkJCQkgICAgICBwLT5jb3B5LCBoLT5oYW5nKTsKIAkJCX0KIAotCQkJaWd0 X3N1YnRlc3RfZigiJXMtJXMtb3ZlcndyaXRlLXNvdXJjZSVzJXMiLCBtb2RlLT5uYW1lLCBwLT5w cmVmaXgsIHN1ZmZpeCwgaC0+c3VmZml4KSB7CisJCQlpZ3Rfc3VidGVzdF9mbGFnc19mKHN1YnRl c3RfZmxhZ3MsICIlcy0lcy1vdmVyd3JpdGUtc291cmNlJXMlcyIsIG1vZGUtPm5hbWUsIHAtPnBy ZWZpeCwgc3VmZml4LCBoLT5zdWZmaXgpIHsKIAkJCQloLT5yZXF1aXJlKCk7CiAJCQkJcC0+cmVx dWlyZSgpOwogCQkJCWJ1ZmZlcnNfY3JlYXRlKCZidWZmZXJzLCBudW1fYnVmZmVycyk7CkBAIC05 NTgsNyArOTYxLDcgQEAgcnVuX2Jhc2ljX21vZGVzKGNvbnN0IHN0cnVjdCBhY2Nlc3NfbW9kZSAq bW9kZSwKIAkJCQkJICAgICAgcC0+Y29weSwgaC0+aGFuZyk7CiAJCQl9CiAKLQkJCWlndF9zdWJ0 ZXN0X2YoIiVzLSVzLW92ZXJ3cml0ZS1zb3VyY2UtcmVhZC1iY3MlcyVzIiwgbW9kZS0+bmFtZSwg cC0+cHJlZml4LCBzdWZmaXgsIGgtPnN1ZmZpeCkgeworCQkJaWd0X3N1YnRlc3RfZmxhZ3NfZihz dWJ0ZXN0X2ZsYWdzLCAiJXMtJXMtb3ZlcndyaXRlLXNvdXJjZS1yZWFkLWJjcyVzJXMiLCBtb2Rl LT5uYW1lLCBwLT5wcmVmaXgsIHN1ZmZpeCwgaC0+c3VmZml4KSB7CiAJCQkJaC0+cmVxdWlyZSgp OwogCQkJCXAtPnJlcXVpcmUoKTsKIAkJCQlidWZmZXJzX2NyZWF0ZSgmYnVmZmVycywgbnVtX2J1 ZmZlcnMpOwpAQCAtOTY3LDcgKzk3MCw3IEBAIHJ1bl9iYXNpY19tb2Rlcyhjb25zdCBzdHJ1Y3Qg YWNjZXNzX21vZGUgKm1vZGUsCiAJCQkJCSAgICAgIHAtPmNvcHksIGgtPmhhbmcpOwogCQkJfQog Ci0JCQlpZ3Rfc3VidGVzdF9mKCIlcy0lcy1vdmVyd3JpdGUtc291cmNlLXJlYWQtcmNzJXMlcyIs IG1vZGUtPm5hbWUsIHAtPnByZWZpeCwgc3VmZml4LCBoLT5zdWZmaXgpIHsKKwkJCWlndF9zdWJ0 ZXN0X2ZsYWdzX2Yoc3VidGVzdF9mbGFncywgIiVzLSVzLW92ZXJ3cml0ZS1zb3VyY2UtcmVhZC1y Y3MlcyVzIiwgbW9kZS0+bmFtZSwgcC0+cHJlZml4LCBzdWZmaXgsIGgtPnN1ZmZpeCkgewogCQkJ CWgtPnJlcXVpcmUoKTsKIAkJCQlwLT5yZXF1aXJlKCk7CiAJCQkJaWd0X3JlcXVpcmUocmVuZGVy Y29weSk7CkBAIC05NzcsNyArOTgwLDcgQEAgcnVuX2Jhc2ljX21vZGVzKGNvbnN0IHN0cnVjdCBh Y2Nlc3NfbW9kZSAqbW9kZSwKIAkJCQkJICAgICAgcC0+Y29weSwgaC0+aGFuZyk7CiAJCQl9CiAK LQkJCWlndF9zdWJ0ZXN0X2YoIiVzLSVzLW92ZXJ3cml0ZS1zb3VyY2UtcmV2JXMlcyIsIG1vZGUt Pm5hbWUsIHAtPnByZWZpeCwgc3VmZml4LCBoLT5zdWZmaXgpIHsKKwkJCWlndF9zdWJ0ZXN0X2Zs YWdzX2Yoc3VidGVzdF9mbGFncywgIiVzLSVzLW92ZXJ3cml0ZS1zb3VyY2UtcmV2JXMlcyIsIG1v ZGUtPm5hbWUsIHAtPnByZWZpeCwgc3VmZml4LCBoLT5zdWZmaXgpIHsKIAkJCQloLT5yZXF1aXJl KCk7CiAJCQkJcC0+cmVxdWlyZSgpOwogCQkJCWJ1ZmZlcnNfY3JlYXRlKCZidWZmZXJzLCBudW1f YnVmZmVycyk7CkBAIC05ODcsNyArOTkwLDcgQEAgcnVuX2Jhc2ljX21vZGVzKGNvbnN0IHN0cnVj dCBhY2Nlc3NfbW9kZSAqbW9kZSwKIAkJCX0KIAogCQkJLyogdHJ5IHRvIGludGVybWl4IGNvcGll cyB3aXRoIEdQVSBjb3BpZXMqLwotCQkJaWd0X3N1YnRlc3RfZigiJXMtJXMtaW50ZXJtaXgtcmNz JXMlcyIsIG1vZGUtPm5hbWUsIHAtPnByZWZpeCwgc3VmZml4LCBoLT5zdWZmaXgpIHsKKwkJCWln dF9zdWJ0ZXN0X2ZsYWdzX2Yoc3VidGVzdF9mbGFncywgIiVzLSVzLWludGVybWl4LXJjcyVzJXMi LCBtb2RlLT5uYW1lLCBwLT5wcmVmaXgsIHN1ZmZpeCwgaC0+c3VmZml4KSB7CiAJCQkJaC0+cmVx dWlyZSgpOwogCQkJCXAtPnJlcXVpcmUoKTsKIAkJCQlpZ3RfcmVxdWlyZShyZW5kZXJjb3B5KTsK QEAgLTk5Niw3ICs5OTksNyBAQCBydW5fYmFzaWNfbW9kZXMoY29uc3Qgc3RydWN0IGFjY2Vzc19t b2RlICptb2RlLAogCQkJCQkgICAgICBkb19pbnRlcm1peF9yY3MsCiAJCQkJCSAgICAgIHAtPmNv cHksIGgtPmhhbmcpOwogCQkJfQotCQkJaWd0X3N1YnRlc3RfZigiJXMtJXMtaW50ZXJtaXgtYmNz JXMlcyIsIG1vZGUtPm5hbWUsIHAtPnByZWZpeCwgc3VmZml4LCBoLT5zdWZmaXgpIHsKKwkJCWln dF9zdWJ0ZXN0X2ZsYWdzX2Yoc3VidGVzdF9mbGFncywgIiVzLSVzLWludGVybWl4LWJjcyVzJXMi LCBtb2RlLT5uYW1lLCBwLT5wcmVmaXgsIHN1ZmZpeCwgaC0+c3VmZml4KSB7CiAJCQkJaC0+cmVx dWlyZSgpOwogCQkJCXAtPnJlcXVpcmUoKTsKIAkJCQlpZ3RfcmVxdWlyZShyZW5kZXJjb3B5KTsK QEAgLTEwMDUsNyArMTAwOCw3IEBAIHJ1bl9iYXNpY19tb2Rlcyhjb25zdCBzdHJ1Y3QgYWNjZXNz X21vZGUgKm1vZGUsCiAJCQkJCSAgICAgIGRvX2ludGVybWl4X2JjcywKIAkJCQkJICAgICAgcC0+ Y29weSwgaC0+aGFuZyk7CiAJCQl9Ci0JCQlpZ3Rfc3VidGVzdF9mKCIlcy0lcy1pbnRlcm1peC1i b3RoJXMlcyIsIG1vZGUtPm5hbWUsIHAtPnByZWZpeCwgc3VmZml4LCBoLT5zdWZmaXgpIHsKKwkJ CWlndF9zdWJ0ZXN0X2ZsYWdzX2Yoc3VidGVzdF9mbGFncywgIiVzLSVzLWludGVybWl4LWJvdGgl cyVzIiwgbW9kZS0+bmFtZSwgcC0+cHJlZml4LCBzdWZmaXgsIGgtPnN1ZmZpeCkgewogCQkJCWgt PnJlcXVpcmUoKTsKIAkJCQlwLT5yZXF1aXJlKCk7CiAJCQkJaWd0X3JlcXVpcmUocmVuZGVyY29w eSk7CkBAIC0xMDE2LDcgKzEwMTksNyBAQCBydW5fYmFzaWNfbW9kZXMoY29uc3Qgc3RydWN0IGFj Y2Vzc19tb2RlICptb2RlLAogCQkJfQogCiAJCQkvKiB0cnkgdG8gcmVhZCB0aGUgcmVzdWx0cyBi ZWZvcmUgdGhlIGNvcHkgY29tcGxldGVzICovCi0JCQlpZ3Rfc3VidGVzdF9mKCIlcy0lcy1lYXJs eS1yZWFkJXMlcyIsIG1vZGUtPm5hbWUsIHAtPnByZWZpeCwgc3VmZml4LCBoLT5zdWZmaXgpIHsK KwkJCWlndF9zdWJ0ZXN0X2ZsYWdzX2Yoc3VidGVzdF9mbGFncywgIiVzLSVzLWVhcmx5LXJlYWQl cyVzIiwgbW9kZS0+bmFtZSwgcC0+cHJlZml4LCBzdWZmaXgsIGgtPnN1ZmZpeCkgewogCQkJCWgt PnJlcXVpcmUoKTsKIAkJCQlwLT5yZXF1aXJlKCk7CiAJCQkJYnVmZmVyc19jcmVhdGUoJmJ1ZmZl cnMsIG51bV9idWZmZXJzKTsKQEAgLTEwMjYsNyArMTAyOSw3IEBAIHJ1bl9iYXNpY19tb2Rlcyhj b25zdCBzdHJ1Y3QgYWNjZXNzX21vZGUgKm1vZGUsCiAJCQl9CiAKIAkJCS8qIGNvbmN1cnJlbnQg cmVhZHMgKi8KLQkJCWlndF9zdWJ0ZXN0X2YoIiVzLSVzLXJlYWQtcmVhZC1iY3MlcyVzIiwgbW9k ZS0+bmFtZSwgcC0+cHJlZml4LCBzdWZmaXgsIGgtPnN1ZmZpeCkgeworCQkJaWd0X3N1YnRlc3Rf ZmxhZ3NfZihzdWJ0ZXN0X2ZsYWdzLCAiJXMtJXMtcmVhZC1yZWFkLWJjcyVzJXMiLCBtb2RlLT5u YW1lLCBwLT5wcmVmaXgsIHN1ZmZpeCwgaC0+c3VmZml4KSB7CiAJCQkJaC0+cmVxdWlyZSgpOwog CQkJCXAtPnJlcXVpcmUoKTsKIAkJCQlidWZmZXJzX2NyZWF0ZSgmYnVmZmVycywgbnVtX2J1ZmZl cnMpOwpAQCAtMTAzNCw3ICsxMDM3LDcgQEAgcnVuX2Jhc2ljX21vZGVzKGNvbnN0IHN0cnVjdCBh Y2Nlc3NfbW9kZSAqbW9kZSwKIAkJCQkJICAgICAgZG9fcmVhZF9yZWFkX2JjcywKIAkJCQkJICAg ICAgcC0+Y29weSwgaC0+aGFuZyk7CiAJCQl9Ci0JCQlpZ3Rfc3VidGVzdF9mKCIlcy0lcy1yZWFk LXJlYWQtcmNzJXMlcyIsIG1vZGUtPm5hbWUsIHAtPnByZWZpeCwgc3VmZml4LCBoLT5zdWZmaXgp IHsKKwkJCWlndF9zdWJ0ZXN0X2ZsYWdzX2Yoc3VidGVzdF9mbGFncywgIiVzLSVzLXJlYWQtcmVh ZC1yY3MlcyVzIiwgbW9kZS0+bmFtZSwgcC0+cHJlZml4LCBzdWZmaXgsIGgtPnN1ZmZpeCkgewog CQkJCWgtPnJlcXVpcmUoKTsKIAkJCQlwLT5yZXF1aXJlKCk7CiAJCQkJaWd0X3JlcXVpcmUocmVu ZGVyY29weSk7CkBAIC0xMDQ0LDggKzEwNDcsOCBAQCBydW5fYmFzaWNfbW9kZXMoY29uc3Qgc3Ry dWN0IGFjY2Vzc19tb2RlICptb2RlLAogCQkJCQkgICAgICBwLT5jb3B5LCBoLT5oYW5nKTsKIAkJ CX0KIAotCQkJLyogYW5kIGZpbmFsbHkgdHJ5IHRvIHRyaWNrIHRoZSBrZXJuZWwgaW50byBsb29z aW5nIHRoZSBwZW5kaW5nIHdyaXRlICovCi0JCQlpZ3Rfc3VidGVzdF9mKCIlcy0lcy1ncHUtcmVh ZC1hZnRlci13cml0ZSVzJXMiLCBtb2RlLT5uYW1lLCBwLT5wcmVmaXgsIHN1ZmZpeCwgaC0+c3Vm Zml4KSB7CisJCQkvKiBhbmQgZmluYWxseSB0cnkgdG8gdHJpY2sgdGhlIGtlcm5lbCBpbnRvIGxv c2luZyB0aGUgcGVuZGluZyB3cml0ZSAqLworCQkJaWd0X3N1YnRlc3RfZmxhZ3NfZihzdWJ0ZXN0 X2ZsYWdzLCAiJXMtJXMtZ3B1LXJlYWQtYWZ0ZXItd3JpdGUlcyVzIiwgbW9kZS0+bmFtZSwgcC0+ cHJlZml4LCBzdWZmaXgsIGgtPnN1ZmZpeCkgewogCQkJCWgtPnJlcXVpcmUoKTsKIAkJCQlwLT5y ZXF1aXJlKCk7CiAJCQkJYnVmZmVyc19jcmVhdGUoJmJ1ZmZlcnMsIG51bV9idWZmZXJzKTsKQEAg LTEwNjQsMTMgKzEwNjcsMTEgQEAgcnVuX2Jhc2ljX21vZGVzKGNvbnN0IHN0cnVjdCBhY2Nlc3Nf bW9kZSAqbW9kZSwKIHN0YXRpYyB2b2lkCiBydW5fbW9kZXMoY29uc3Qgc3RydWN0IGFjY2Vzc19t b2RlICptb2RlKQogewotCWlmIChhbGwpIHsKLQkJcnVuX2Jhc2ljX21vZGVzKG1vZGUsICIiLCBy dW5fc2luZ2xlKTsKKwlydW5fYmFzaWNfbW9kZXMobW9kZSwgIiIsIHJ1bl9zaW5nbGUpOwogCi0J CWlndF9mb3JrX3NpZ25hbF9oZWxwZXIoKTsKLQkJcnVuX2Jhc2ljX21vZGVzKG1vZGUsICItaW50 ZXJydXB0aWJsZSIsIHJ1bl9pbnRlcnJ1cHRpYmxlKTsKLQkJaWd0X3N0b3Bfc2lnbmFsX2hlbHBl cigpOwotCX0KKwlpZ3RfZm9ya19zaWduYWxfaGVscGVyKCk7CisJcnVuX2Jhc2ljX21vZGVzKG1v ZGUsICItaW50ZXJydXB0aWJsZSIsIHJ1bl9pbnRlcnJ1cHRpYmxlKTsKKwlpZ3Rfc3RvcF9zaWdu YWxfaGVscGVyKCk7CiAKIAlpZ3RfZm9ya19zaWduYWxfaGVscGVyKCk7CiAJcnVuX2Jhc2ljX21v ZGVzKG1vZGUsICItZm9ya2VkIiwgcnVuX2ZvcmtlZCk7CkBAIC0xMDgzLDkgKzEwODQsNiBAQCBp Z3RfbWFpbgogCiAJaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwogCi0JaWYgKHN0cnN0cihpZ3Rf dGVzdF9uYW1lKCksICJhbGwiKSkKLQkJYWxsID0gdHJ1ZTsKLQogCWlndF9maXh0dXJlIHsKIAkJ ZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsKIAkJZGV2aWQgPSBpbnRlbF9nZXRf ZHJtX2RldmlkKGZkKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19mcm9udGJ1ZmZlcl90cmFja2lu Zy5jIGIvdGVzdHMva21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMKaW5kZXggMTU3MDdiOWI5MDQw Li4zOWYzYzM3YThmMDAgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2ttc19mcm9udGJ1ZmZlcl90cmFja2lu Zy5jCisrKyBiL3Rlc3RzL2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jCkBAIC00Nyw4ICs0Nyw3 IEBAIElHVF9URVNUX0RFU0NSSVBUSU9OKCJUZXN0IHRoZSBLZXJuZWwncyBmcm9udGJ1ZmZlciB0 cmFja2luZyBtZWNoYW5pc20gYW5kICIKICAqIGNvbWJpbmF0aW9ucyB0aGF0IGFyZSBzb21ld2hh dCByZWR1bmRhbnQgYW5kIGRvbid0IGFkZCBtdWNoIHZhbHVlIHRvIHRoZQogICogdGVzdC4gRm9y IGV4YW1wbGUsIHNpbmNlIHdlIGFscmVhZHkgZG8gdGhlIG9mZnNjcmVlbiB0ZXN0aW5nIHdpdGgg YSBzaW5nbGUKICAqIHBpcGUgZW5hYmxlZCwgdGhlcmUncyBubyBtdWNoIHZhbHVlIGluIGRvaW5n IGl0IGFnYWluIHdpdGggZHVhbCBwaXBlcy4gSWYgeW91Ci0gKiBzdGlsbCB3YW50IHRvIHRyeSB0 aGVzZSByZWR1bmRhbnQgdGVzdHMsIHlvdSBuZWVkIHRvIHVzZSB0aGUgLS1zaG93LWhpZGRlbgot ICogb3B0aW9uLgorICogc3RpbGwgd2FudCB0byB0cnkgdGhlc2UgcmVkdW5kYW50IHRlc3RzLCB5 b3UgbmVlZCB0byB1c2UgdGhlIC0tYWxsIG9wdGlvbi4KICAqCiAgKiBUaGUgbW9zdCBpbXBvcnRh bnQgaGlkZGVuIHRoaW5nIGlzIHRoZSBGRUFUVVJFX05PTkUgc2V0IG9mIHRlc3RzLiBXaGVuZXZl cgogICogeW91IGdldCBhIGZhaWx1cmUgb24gYW55IHRlc3QsIGl0IGlzIGltcG9ydGFudCB0byBj aGVjayB3aGV0aGVyIHRoZSBzYW1lIHRlc3QKQEAgLTExNiw2ICsxMTUsOSBAQCBzdHJ1Y3QgdGVz dF9tb2RlIHsKIAl9IGZvcm1hdDsKIAogCWVudW0gaWd0X2RyYXdfbWV0aG9kIG1ldGhvZDsKKwor CS8qIFNwZWNpZmllcyB0aGUgc3VidGVzdCBjYXRlZ29yaWVzIHRoaXMgc3VidGVzdCBiZWxvbmdz IHRvICovCisJdW5zaWduZWQgbG9uZyBzdWJ0ZXN0X2ZsYWdzOwogfTsKIAogZW51bSBmbGlwX3R5 cGUgewpAQCAtMjM3LDcgKzIzOSw2IEBAIHN0cnVjdCB7CiAJYm9vbCBmYmNfY2hlY2tfbGFzdF9h Y3Rpb247CiAJYm9vbCBub19lZHA7CiAJYm9vbCBzbWFsbF9tb2RlczsKLQlib29sIHNob3dfaGlk ZGVuOwogCWludCBzdGVwOwogCWludCBvbmx5X3BpcGVzOwogCWludCBzaGFyZWRfZmJfeF9vZmZz ZXQ7CkBAIC0yNDksNyArMjUwLDYgQEAgc3RydWN0IHsKIAkuZmJjX2NoZWNrX2xhc3RfYWN0aW9u ID0gdHJ1ZSwKIAkubm9fZWRwID0gZmFsc2UsCiAJLnNtYWxsX21vZGVzID0gZmFsc2UsCi0JLnNo b3dfaGlkZGVuPSBmYWxzZSwKIAkuc3RlcCA9IDAsCiAJLm9ubHlfcGlwZXMgPSBQSVBFX0NPVU5U LAogCS5zaGFyZWRfZmJfeF9vZmZzZXQgPSA1MDAsCkBAIC0yOTMzLDkgKzI5MzMsNiBAQCBzdGF0 aWMgaW50IG9wdF9oYW5kbGVyKGludCBvcHRpb24sIGludCBvcHRpb25faW5kZXgsIHZvaWQgKmRh dGEpCiAJY2FzZSAnbSc6CiAJCW9wdC5zbWFsbF9tb2RlcyA9IHRydWU7CiAJCWJyZWFrOwotCWNh c2UgJ2knOgotCQlvcHQuc2hvd19oaWRkZW4gPSB0cnVlOwotCQlicmVhazsKIAljYXNlICd0JzoK IAkJb3B0LnN0ZXArKzsKIAkJYnJlYWs7CkBAIC0yOTcxLDcgKzI5NjgsNiBAQCBjb25zdCBjaGFy ICpoZWxwX3N0ciA9CiAiICAtLW5vLWZiYy1hY3Rpb24tY2hlY2sgICAgICAgRG9uJ3QgY2hlY2sg Zm9yIHRoZSBGQkMgbGFzdCBhY3Rpb25cbiIKICIgIC0tbm8tZWRwICAgICAgICAgICAgICAgICAg ICBEb24ndCB1c2UgZURQIG1vbml0b3JzXG4iCiAiICAtLXVzZS1zbWFsbC1tb2RlcyAgICAgICAg ICAgVXNlIHNtYWxsZXIgcmVzb2x1dGlvbnMgZm9yIHRoZSBtb2Rlc1xuIgotIiAgLS1zaG93LWhp ZGRlbiAgICAgICAgICAgICAgIFNob3cgaGlkZGVuIHN1YnRlc3RzXG4iCiAiICAtLXN0ZXAgICAg ICAgICAgICAgICAgICAgICAgU3RvcCBvbiBlYWNoIHN0ZXAgc28geW91IGNhbiBjaGVjayB0aGUg c2NyZWVuXG4iCiAiICAtLXNoYXJlZC1mYi14IG9mZnNldCAgICAgICAgVXNlICdvZmZzZXQnIGFz IHRoZSBYIG9mZnNldCBmb3IgdGhlIHNoYXJlZCBGQlxuIgogIiAgLS1zaGFyZWQtZmIteSBvZmZz ZXQgICAgICAgIFVzZSAnb2Zmc2V0JyBhcyB0aGUgWSBvZmZzZXQgZm9yIHRoZSBzaGFyZWQgRkJc biIKQEAgLTMwNjgsMTggKzMwNjQsMTkgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmZvcm1hdF9zdHIo ZW51bSBwaXhlbF9mb3JtYXQgZm9ybWF0KQogCWZvciAodC5wbGFuZSA9IDA7IHQucGxhbmUgPCBQ TEFORV9DT1VOVDsgdC5wbGFuZSsrKSB7CQkgICBcCiAJZm9yICh0LmZicyA9IDA7IHQuZmJzIDwg RkJTX0NPVU5UOyB0LmZicysrKSB7CQkJICAgXAogCWZvciAodC5tZXRob2QgPSAwOyB0Lm1ldGhv ZCA8IElHVF9EUkFXX01FVEhPRF9DT1VOVDsgdC5tZXRob2QrKykgeyBcCisJCXQuc3VidGVzdF9m bGFncyA9IFNVQlRFU1RfVFlQRV9OT1JNQUw7CQkJICAgXAogCQlpZiAodC5waXBlcyA9PSBQSVBF X1NJTkdMRSAmJiB0LnNjcmVlbiA9PSBTQ1JFRU5fU0NORCkJICAgXAogCQkJY29udGludWU7CQkJ CQkgICBcCiAJCWlmICh0LnNjcmVlbiA9PSBTQ1JFRU5fT0ZGU0NSRUVOICYmIHQucGxhbmUgIT0g UExBTkVfUFJJKSAgXAogCQkJY29udGludWU7CQkJCQkgICBcCi0JCWlmICghb3B0LnNob3dfaGlk ZGVuICYmIHQucGlwZXMgPT0gUElQRV9EVUFMICYmCQkgICBcCisJCWlmICh0LnBpcGVzID09IFBJ UEVfRFVBTCAmJgkJCQkgICBcCiAJCSAgICB0LnNjcmVlbiA9PSBTQ1JFRU5fT0ZGU0NSRUVOKQkJ CSAgIFwKLQkJCWNvbnRpbnVlOwkJCQkJICAgXAotCQlpZiAoIW9wdC5zaG93X2hpZGRlbiAmJiB0 LmZlYXR1cmUgPT0gRkVBVFVSRV9OT05FKQkgICBcCi0JCQljb250aW51ZTsJCQkJCSAgIFwKLQkJ aWYgKCFvcHQuc2hvd19oaWRkZW4gJiYgdC5mYnMgPT0gRkJTX1NIQVJFRCAmJgkJICAgXAorCQkJ dC5zdWJ0ZXN0X2ZsYWdzID0gU1VCVEVTVF9UWVBFX1NMT1c7CQkJCQkgICBcCisJCWlmICh0LmZl YXR1cmUgPT0gRkVBVFVSRV9OT05FKQkJCQkgICBcCisJCQl0LnN1YnRlc3RfZmxhZ3MgPSBTVUJU RVNUX1RZUEVfU0xPVzsJCQkJCSAgIFwKKwkJaWYgKHQuZmJzID09IEZCU19TSEFSRUQgJiYJCQkJ ICAgXAogCQkgICAgKHQucGxhbmUgPT0gUExBTkVfQ1VSIHx8IHQucGxhbmUgPT0gUExBTkVfU1BS KSkJICAgXAotCQkJY29udGludWU7CisJCQl0LnN1YnRlc3RfZmxhZ3MgPSBTVUJURVNUX1RZUEVf U0xPVzsKIAogCiAjZGVmaW5lIFRFU1RfTU9ERV9JVEVSX0VORCB9IH0gfSB9IH0gfQpAQCAtMzA5 NCw3ICszMDkxLDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJeyAibm8t ZmJjLWFjdGlvbi1jaGVjayIsICAgICAgMCwgMCwgJ2EnfSwKIAkJeyAibm8tZWRwIiwgICAgICAg ICAgICAgICAgICAgMCwgMCwgJ2UnfSwKIAkJeyAidXNlLXNtYWxsLW1vZGVzIiwgICAgICAgICAg MCwgMCwgJ20nfSwKLQkJeyAic2hvdy1oaWRkZW4iLCAgICAgICAgICAgICAgMCwgMCwgJ2knfSwK IAkJeyAic3RlcCIsICAgICAgICAgICAgICAgICAgICAgMCwgMCwgJ3QnfSwKIAkJeyAic2hhcmVk LWZiLXgiLCAgICAgICAgICAgICAgMSwgMCwgJ3gnfSwKIAkJeyAic2hhcmVkLWZiLXkiLCAgICAg ICAgICAgICAgMSwgMCwgJ3knfSwKQEAgLTMxMTAsOCArMzEwNiw5IEBAIGludCBtYWluKGludCBh cmdjLCBjaGFyICphcmd2W10pCiAJCXNldHVwX2Vudmlyb25tZW50KCk7CiAKIAlmb3IgKHQuZmVh dHVyZSA9IDA7IHQuZmVhdHVyZSA8IEZFQVRVUkVfQ09VTlQ7IHQuZmVhdHVyZSsrKSB7Ci0JCWlm ICghb3B0LnNob3dfaGlkZGVuICYmIHQuZmVhdHVyZSA9PSBGRUFUVVJFX05PTkUpCi0JCQljb250 aW51ZTsKKwkJdC5zdWJ0ZXN0X2ZsYWdzID0gU1VCVEVTVF9UWVBFX05PUk1BTDsKKwkJaWYgKHQu ZmVhdHVyZSA9PSBGRUFUVVJFX05PTkUpCisJCQl0LnN1YnRlc3RfZmxhZ3MgPSBTVUJURVNUX1RZ UEVfU0xPVzsKIAkJZm9yICh0LnBpcGVzID0gMDsgdC5waXBlcyA8IFBJUEVfQ09VTlQ7IHQucGlw ZXMrKykgewogCQkJdC5zY3JlZW4gPSBTQ1JFRU5fUFJJTTsKIAkJCXQucGxhbmUgPSBQTEFORV9Q Ukk7CkBAIC0zMTIwLDUyICszMTE3LDU4IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2 W10pCiAJCQkvKiBNYWtlIHN1cmUgbm90aGluZyBpcyB1c2luZyB0aGlzIHZhbHVlLiAqLwogCQkJ dC5tZXRob2QgPSAtMTsKIAotCQkJaWd0X3N1YnRlc3RfZigiJXMtJXMtcnRlIiwKLQkJCQkgICAg ICBmZWF0dXJlX3N0cih0LmZlYXR1cmUpLAotCQkJCSAgICAgIHBpcGVzX3N0cih0LnBpcGVzKSkK KwkJCWlndF9zdWJ0ZXN0X2ZsYWdzX2YodC5zdWJ0ZXN0X2ZsYWdzLAorCQkJCQkgICAgIiVzLSVz LXJ0ZSIsCisJCQkJCSAgICBmZWF0dXJlX3N0cih0LmZlYXR1cmUpLAorCQkJCQkgICAgcGlwZXNf c3RyKHQucGlwZXMpKQogCQkJCXJ0ZV9zdWJ0ZXN0KCZ0KTsKIAkJfQogCX0KIAogCVRFU1RfTU9E RV9JVEVSX0JFR0lOKHQpCi0JCWlndF9zdWJ0ZXN0X2YoIiVzLSVzLSVzLSVzLSVzLWRyYXctJXMi LAotCQkJICAgICAgZmVhdHVyZV9zdHIodC5mZWF0dXJlKSwKLQkJCSAgICAgIHBpcGVzX3N0cih0 LnBpcGVzKSwKLQkJCSAgICAgIHNjcmVlbl9zdHIodC5zY3JlZW4pLAotCQkJICAgICAgcGxhbmVf c3RyKHQucGxhbmUpLAotCQkJICAgICAgZmJzX3N0cih0LmZicyksCi0JCQkgICAgICBpZ3RfZHJh d19nZXRfbWV0aG9kX25hbWUodC5tZXRob2QpKQorCQlpZ3Rfc3VidGVzdF9mbGFnc19mKHQuc3Vi dGVzdF9mbGFncywKKwkJCQkgICAgIiVzLSVzLSVzLSVzLSVzLWRyYXctJXMiLAorCQkJCSAgICBm ZWF0dXJlX3N0cih0LmZlYXR1cmUpLAorCQkJCSAgICBwaXBlc19zdHIodC5waXBlcyksCisJCQkJ ICAgIHNjcmVlbl9zdHIodC5zY3JlZW4pLAorCQkJCSAgICBwbGFuZV9zdHIodC5wbGFuZSksCisJ CQkJICAgIGZic19zdHIodC5mYnMpLAorCQkJCSAgICBpZ3RfZHJhd19nZXRfbWV0aG9kX25hbWUo dC5tZXRob2QpKQogCQkJZHJhd19zdWJ0ZXN0KCZ0KTsKIAlURVNUX01PREVfSVRFUl9FTkQKIAog CVRFU1RfTU9ERV9JVEVSX0JFR0lOKHQpCiAJCWlmICh0LnBsYW5lICE9IFBMQU5FX1BSSSB8fAot CQkgICAgdC5zY3JlZW4gPT0gU0NSRUVOX09GRlNDUkVFTiB8fAotCQkgICAgKCFvcHQuc2hvd19o aWRkZW4gJiYgdC5tZXRob2QgIT0gSUdUX0RSQVdfQkxUKSkKKwkJICAgIHQuc2NyZWVuID09IFND UkVFTl9PRkZTQ1JFRU4pCiAJCQljb250aW51ZTsKLQotCQlpZ3Rfc3VidGVzdF9mKCIlcy0lcy0l cy0lcy1mbGlwLSVzIiwKLQkJCSAgICAgIGZlYXR1cmVfc3RyKHQuZmVhdHVyZSksCi0JCQkgICAg ICBwaXBlc19zdHIodC5waXBlcyksCi0JCQkgICAgICBzY3JlZW5fc3RyKHQuc2NyZWVuKSwKLQkJ CSAgICAgIGZic19zdHIodC5mYnMpLAotCQkJICAgICAgaWd0X2RyYXdfZ2V0X21ldGhvZF9uYW1l KHQubWV0aG9kKSkKKwkJaWYgKHQubWV0aG9kICE9IElHVF9EUkFXX0JMVCkKKwkJCXQuc3VidGVz dF9mbGFncyA9IFNVQlRFU1RfVFlQRV9TTE9XOworCisJCWlndF9zdWJ0ZXN0X2ZsYWdzX2YodC5z dWJ0ZXN0X2ZsYWdzLAorCQkJCSAgICAiJXMtJXMtJXMtJXMtZmxpcC0lcyIsCisJCQkJICAgIGZl YXR1cmVfc3RyKHQuZmVhdHVyZSksCisJCQkJICAgIHBpcGVzX3N0cih0LnBpcGVzKSwKKwkJCQkg ICAgc2NyZWVuX3N0cih0LnNjcmVlbiksCisJCQkJICAgIGZic19zdHIodC5mYnMpLAorCQkJCSAg ICBpZ3RfZHJhd19nZXRfbWV0aG9kX25hbWUodC5tZXRob2QpKQogCQkJZmxpcF9zdWJ0ZXN0KCZ0 LCBGTElQX1BBR0VGTElQKTsKIAotCQlpZ3Rfc3VidGVzdF9mKCIlcy0lcy0lcy0lcy1ldmZsaXAt JXMiLAotCQkJICAgICAgZmVhdHVyZV9zdHIodC5mZWF0dXJlKSwKLQkJCSAgICAgIHBpcGVzX3N0 cih0LnBpcGVzKSwKLQkJCSAgICAgIHNjcmVlbl9zdHIodC5zY3JlZW4pLAotCQkJICAgICAgZmJz X3N0cih0LmZicyksCi0JCQkgICAgICBpZ3RfZHJhd19nZXRfbWV0aG9kX25hbWUodC5tZXRob2Qp KQorCQlpZ3Rfc3VidGVzdF9mbGFnc19mKHQuc3VidGVzdF9mbGFncywKKwkJCQkgICAgIiVzLSVz LSVzLSVzLWV2ZmxpcC0lcyIsCisJCQkJICAgIGZlYXR1cmVfc3RyKHQuZmVhdHVyZSksCisJCQkJ ICAgIHBpcGVzX3N0cih0LnBpcGVzKSwKKwkJCQkgICAgc2NyZWVuX3N0cih0LnNjcmVlbiksCisJ CQkJICAgIGZic19zdHIodC5mYnMpLAorCQkJCSAgICBpZ3RfZHJhd19nZXRfbWV0aG9kX25hbWUo dC5tZXRob2QpKQogCQkJZmxpcF9zdWJ0ZXN0KCZ0LCBGTElQX1BBR0VGTElQX0VWRU5UKTsKIAot CQlpZ3Rfc3VidGVzdF9mKCIlcy0lcy0lcy0lcy1tc2ZsaXAtJXMiLAotCQkJICAgICAgZmVhdHVy ZV9zdHIodC5mZWF0dXJlKSwKLQkJCSAgICAgIHBpcGVzX3N0cih0LnBpcGVzKSwKLQkJCSAgICAg IHNjcmVlbl9zdHIodC5zY3JlZW4pLAotCQkJICAgICAgZmJzX3N0cih0LmZicyksCi0JCQkgICAg ICBpZ3RfZHJhd19nZXRfbWV0aG9kX25hbWUodC5tZXRob2QpKQorCQlpZ3Rfc3VidGVzdF9mbGFn c19mKHQuc3VidGVzdF9mbGFncywKKwkJCQkgICAgIiVzLSVzLSVzLSVzLW1zZmxpcC0lcyIsCisJ CQkJICAgIGZlYXR1cmVfc3RyKHQuZmVhdHVyZSksCisJCQkJICAgIHBpcGVzX3N0cih0LnBpcGVz KSwKKwkJCQkgICAgc2NyZWVuX3N0cih0LnNjcmVlbiksCisJCQkJICAgIGZic19zdHIodC5mYnMp LAorCQkJCSAgICBpZ3RfZHJhd19nZXRfbWV0aG9kX25hbWUodC5tZXRob2QpKQogCQkJZmxpcF9z dWJ0ZXN0KCZ0LCBGTElQX01PREVTRVQpOwogCiAJVEVTVF9NT0RFX0lURVJfRU5ECkBAIC0zMTc3 LDEwICszMTgwLDExIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCSAgICAo dC5mZWF0dXJlICYgRkVBVFVSRV9GQkMpID09IDApCiAJCQljb250aW51ZTsKIAotCQlpZ3Rfc3Vi dGVzdF9mKCIlcy0lcy0lcy1mbGlwdHJhY2siLAotCQkJICAgICAgZmVhdHVyZV9zdHIodC5mZWF0 dXJlKSwKLQkJCSAgICAgIHBpcGVzX3N0cih0LnBpcGVzKSwKLQkJCSAgICAgIGZic19zdHIodC5m YnMpKQorCQlpZ3Rfc3VidGVzdF9mbGFnc19mKHQuc3VidGVzdF9mbGFncywKKwkJCQkgICAgIiVz LSVzLSVzLWZsaXB0cmFjayIsCisJCQkJICAgIGZlYXR1cmVfc3RyKHQuZmVhdHVyZSksCisJCQkJ ICAgIHBpcGVzX3N0cih0LnBpcGVzKSwKKwkJCQkgICAgZmJzX3N0cih0LmZicykpCiAJCQlmbGlw dHJhY2tfc3VidGVzdCgmdCwgRkxJUF9QQUdFRkxJUCk7CiAJVEVTVF9NT0RFX0lURVJfRU5ECiAK QEAgLTMxOTAsMjAgKzMxOTQsMjIgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkK IAkJICAgIHQucGxhbmUgPT0gUExBTkVfUFJJKQogCQkJY29udGludWU7CiAKLQkJaWd0X3N1YnRl c3RfZigiJXMtJXMtJXMtJXMtJXMtbW92ZSIsCi0JCQkgICAgICBmZWF0dXJlX3N0cih0LmZlYXR1 cmUpLAotCQkJICAgICAgcGlwZXNfc3RyKHQucGlwZXMpLAotCQkJICAgICAgc2NyZWVuX3N0cih0 LnNjcmVlbiksCi0JCQkgICAgICBwbGFuZV9zdHIodC5wbGFuZSksCi0JCQkgICAgICBmYnNfc3Ry KHQuZmJzKSkKKwkJaWd0X3N1YnRlc3RfZmxhZ3NfZih0LnN1YnRlc3RfZmxhZ3MsCisJCQkJICAg ICIlcy0lcy0lcy0lcy0lcy1tb3ZlIiwKKwkJCQkgICAgZmVhdHVyZV9zdHIodC5mZWF0dXJlKSwK KwkJCQkgICAgcGlwZXNfc3RyKHQucGlwZXMpLAorCQkJCSAgICBzY3JlZW5fc3RyKHQuc2NyZWVu KSwKKwkJCQkgICAgcGxhbmVfc3RyKHQucGxhbmUpLAorCQkJCSAgICBmYnNfc3RyKHQuZmJzKSkK IAkJCW1vdmVfc3VidGVzdCgmdCk7CiAKLQkJaWd0X3N1YnRlc3RfZigiJXMtJXMtJXMtJXMtJXMt b25vZmYiLAotCQkJICAgICAgZmVhdHVyZV9zdHIodC5mZWF0dXJlKSwKLQkJCSAgICAgIHBpcGVz X3N0cih0LnBpcGVzKSwKLQkJCSAgICAgIHNjcmVlbl9zdHIodC5zY3JlZW4pLAotCQkJICAgICAg cGxhbmVfc3RyKHQucGxhbmUpLAotCQkJICAgICAgZmJzX3N0cih0LmZicykpCisJCWlndF9zdWJ0 ZXN0X2ZsYWdzX2YodC5zdWJ0ZXN0X2ZsYWdzLAorCQkJCSAgICAiJXMtJXMtJXMtJXMtJXMtb25v ZmYiLAorCQkJCSAgICBmZWF0dXJlX3N0cih0LmZlYXR1cmUpLAorCQkJCSAgICBwaXBlc19zdHIo dC5waXBlcyksCisJCQkJICAgIHNjcmVlbl9zdHIodC5zY3JlZW4pLAorCQkJCSAgICBwbGFuZV9z dHIodC5wbGFuZSksCisJCQkJICAgIGZic19zdHIodC5mYnMpKQogCQkJb25vZmZfc3VidGVzdCgm dCk7CiAJVEVTVF9NT0RFX0lURVJfRU5ECiAKQEAgLTMyMTMsMjcgKzMyMTksMzAgQEAgaW50IG1h aW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJICAgIHQucGxhbmUgIT0gUExBTkVfU1BSKQog CQkJY29udGludWU7CiAKLQkJaWd0X3N1YnRlc3RfZigiJXMtJXMtJXMtJXMtJXMtZnVsbHNjcmVl biIsCi0JCQkgICAgICBmZWF0dXJlX3N0cih0LmZlYXR1cmUpLAotCQkJICAgICAgcGlwZXNfc3Ry KHQucGlwZXMpLAotCQkJICAgICAgc2NyZWVuX3N0cih0LnNjcmVlbiksCi0JCQkgICAgICBwbGFu ZV9zdHIodC5wbGFuZSksCi0JCQkgICAgICBmYnNfc3RyKHQuZmJzKSkKKwkJaWd0X3N1YnRlc3Rf ZmxhZ3NfZih0LnN1YnRlc3RfZmxhZ3MsCisJCQkJICAgICIlcy0lcy0lcy0lcy0lcy1mdWxsc2Ny ZWVuIiwKKwkJCQkgICAgZmVhdHVyZV9zdHIodC5mZWF0dXJlKSwKKwkJCQkgICAgcGlwZXNfc3Ry KHQucGlwZXMpLAorCQkJCSAgICBzY3JlZW5fc3RyKHQuc2NyZWVuKSwKKwkJCQkgICAgcGxhbmVf c3RyKHQucGxhbmUpLAorCQkJCSAgICBmYnNfc3RyKHQuZmJzKSkKIAkJCWZ1bGxzY3JlZW5fcGxh bmVfc3VidGVzdCgmdCk7CiAJVEVTVF9NT0RFX0lURVJfRU5ECiAKIAlURVNUX01PREVfSVRFUl9C RUdJTih0KQogCQlpZiAodC5zY3JlZW4gIT0gU0NSRUVOX1BSSU0gfHwKLQkJICAgIHQubWV0aG9k ICE9IElHVF9EUkFXX0JMVCB8fAotCQkgICAgKCFvcHQuc2hvd19oaWRkZW4gJiYgdC5wbGFuZSAh PSBQTEFORV9QUkkpIHx8Ci0JCSAgICAoIW9wdC5zaG93X2hpZGRlbiAmJiB0LmZicyAhPSBGQlNf SU5ESVZJRFVBTCkpCisJCSAgICB0Lm1ldGhvZCAhPSBJR1RfRFJBV19CTFQpCiAJCQljb250aW51 ZTsKLQotCQlpZ3Rfc3VidGVzdF9mKCIlcy0lcy0lcy0lcy1tdWx0aWRyYXciLAotCQkJICAgICAg ZmVhdHVyZV9zdHIodC5mZWF0dXJlKSwKLQkJCSAgICAgIHBpcGVzX3N0cih0LnBpcGVzKSwKLQkJ CSAgICAgIHBsYW5lX3N0cih0LnBsYW5lKSwKLQkJCSAgICAgIGZic19zdHIodC5mYnMpKQorCQlp ZiAodC5wbGFuZSAhPSBQTEFORV9QUkkgfHwKKwkJICAgIHQuZmJzICE9IEZCU19JTkRJVklEVUFM KQorCQkJdC5zdWJ0ZXN0X2ZsYWdzID0gU1VCVEVTVF9UWVBFX1NMT1c7CisKKwkJaWd0X3N1YnRl c3RfZmxhZ3NfZih0LnN1YnRlc3RfZmxhZ3MsCisJCQkJICAgICIlcy0lcy0lcy0lcy1tdWx0aWRy YXciLAorCQkJCSAgICBmZWF0dXJlX3N0cih0LmZlYXR1cmUpLAorCQkJCSAgICBwaXBlc19zdHIo dC5waXBlcyksCisJCQkJICAgIHBsYW5lX3N0cih0LnBsYW5lKSwKKwkJCQkgICAgZmJzX3N0cih0 LmZicykpCiAJCQltdWx0aWRyYXdfc3VidGVzdCgmdCk7CiAJVEVTVF9NT0RFX0lURVJfRU5ECiAK QEAgLTMyNDUsNyArMzI1NCw5IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJ CSAgICB0Lm1ldGhvZCAhPSBJR1RfRFJBV19NTUFQX0dUVCkKIAkJCWNvbnRpbnVlOwogCi0JCWln dF9zdWJ0ZXN0X2YoIiVzLWZhcmZyb21mZW5jZSIsIGZlYXR1cmVfc3RyKHQuZmVhdHVyZSkpCisJ CWlndF9zdWJ0ZXN0X2ZsYWdzX2YodC5zdWJ0ZXN0X2ZsYWdzLAorCQkJCSAgICAiJXMtZmFyZnJv bWZlbmNlIiwKKwkJCQkgICAgZmVhdHVyZV9zdHIodC5mZWF0dXJlKSkKIAkJCWZhcmZyb21mZW5j ZV9zdWJ0ZXN0KCZ0KTsKIAlURVNUX01PREVfSVRFUl9FTkQKIApAQCAtMzI2MSwxMCArMzI3Miwx MSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQkJaWYgKHQuZm9ybWF0ID09 IEZPUk1BVF9ERUZBVUxUKQogCQkJCWNvbnRpbnVlOwogCi0JCQlpZ3Rfc3VidGVzdF9mKCIlcy0l cy1kcmF3LSVzIiwKLQkJCQkgICAgICBmZWF0dXJlX3N0cih0LmZlYXR1cmUpLAotCQkJCSAgICAg IGZvcm1hdF9zdHIodC5mb3JtYXQpLAotCQkJCSAgICAgIGlndF9kcmF3X2dldF9tZXRob2RfbmFt ZSh0Lm1ldGhvZCkpCisJCQlpZ3Rfc3VidGVzdF9mbGFnc19mKHQuc3VidGVzdF9mbGFncywKKwkJ CQkJICAgICIlcy0lcy1kcmF3LSVzIiwKKwkJCQkJICAgIGZlYXR1cmVfc3RyKHQuZmVhdHVyZSks CisJCQkJCSAgICBmb3JtYXRfc3RyKHQuZm9ybWF0KSwKKwkJCQkJICAgIGlndF9kcmF3X2dldF9t ZXRob2RfbmFtZSh0Lm1ldGhvZCkpCiAJCQkJZm9ybWF0X2RyYXdfc3VidGVzdCgmdCk7CiAJCX0K IAlURVNUX01PREVfSVRFUl9FTkQKQEAgLTMyNzUsOSArMzI4NywxMCBAQCBpbnQgbWFpbihpbnQg YXJnYywgY2hhciAqYXJndltdKQogCQkgICAgdC5wbGFuZSAhPSBQTEFORV9QUkkgfHwKIAkJICAg IHQubWV0aG9kICE9IElHVF9EUkFXX01NQVBfQ1BVKQogCQkJY29udGludWU7Ci0JCWlndF9zdWJ0 ZXN0X2YoIiVzLSVzLXNjYWxlZHByaW1hcnkiLAotCQkJICAgICAgZmVhdHVyZV9zdHIodC5mZWF0 dXJlKSwKLQkJCSAgICAgIGZic19zdHIodC5mYnMpKQorCQlpZ3Rfc3VidGVzdF9mbGFnc19mKHQu c3VidGVzdF9mbGFncywKKwkJCQkgICAgIiVzLSVzLXNjYWxlZHByaW1hcnkiLAorCQkJCSAgICBm ZWF0dXJlX3N0cih0LmZlYXR1cmUpLAorCQkJCSAgICBmYnNfc3RyKHQuZmJzKSkKIAkJCXNjYWxl ZHByaW1hcnlfc3VidGVzdCgmdCk7CiAJVEVTVF9NT0RFX0lURVJfRU5ECiAKQEAgLTMyODksMjIg KzMzMDIsMzIgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJICAgIHQubWV0 aG9kICE9IElHVF9EUkFXX01NQVBfQ1BVKQogCQkJY29udGludWU7CiAKLQkJaWd0X3N1YnRlc3Rf ZigiJXMtbW9kZXNldGZyb21idXN5IiwgZmVhdHVyZV9zdHIodC5mZWF0dXJlKSkKKwkJaWd0X3N1 YnRlc3RfZmxhZ3NfZih0LnN1YnRlc3RfZmxhZ3MsCisJCQkJICAgICIlcy1tb2Rlc2V0ZnJvbWJ1 c3kiLAorCQkJCSAgICBmZWF0dXJlX3N0cih0LmZlYXR1cmUpKQogCQkJbW9kZXNldGZyb21idXN5 X3N1YnRlc3QoJnQpOwogCiAJCWlmICh0LmZlYXR1cmUgJiBGRUFUVVJFX0ZCQykgewotCQkJaWd0 X3N1YnRlc3RfZigiJXMtYmFkc3RyaWRlIiwgZmVhdHVyZV9zdHIodC5mZWF0dXJlKSkKKwkJCWln dF9zdWJ0ZXN0X2ZsYWdzX2YodC5zdWJ0ZXN0X2ZsYWdzLAorCQkJCQkgICAgIiVzLWJhZHN0cmlk ZSIsCisJCQkJCSAgICBmZWF0dXJlX3N0cih0LmZlYXR1cmUpKQogCQkJCWJhZHN0cmlkZV9zdWJ0 ZXN0KCZ0KTsKIAotCQkJaWd0X3N1YnRlc3RfZigiJXMtc3RyaWRlY2hhbmdlIiwgZmVhdHVyZV9z dHIodC5mZWF0dXJlKSkKKwkJCWlndF9zdWJ0ZXN0X2ZsYWdzX2YodC5zdWJ0ZXN0X2ZsYWdzLAor CQkJCQkgICAgIiVzLXN0cmlkZWNoYW5nZSIsCisJCQkJCSAgICBmZWF0dXJlX3N0cih0LmZlYXR1 cmUpKQogCQkJCXN0cmlkZWNoYW5nZV9zdWJ0ZXN0KCZ0KTsKIAkJfQogCiAJCWlmICh0LmZlYXR1 cmUgJiBGRUFUVVJFX1BTUikKLQkJCWlndF9zdWJ0ZXN0X2YoIiVzLXNsb3dkcmF3IiwgZmVhdHVy ZV9zdHIodC5mZWF0dXJlKSkKKwkJCWlndF9zdWJ0ZXN0X2ZsYWdzX2YodC5zdWJ0ZXN0X2ZsYWdz LAorCQkJCQkgICAgIiVzLXNsb3dkcmF3IiwKKwkJCQkJICAgIGZlYXR1cmVfc3RyKHQuZmVhdHVy ZSkpCiAJCQkJc2xvd19kcmF3X3N1YnRlc3QoJnQpOwogCi0JCWlndF9zdWJ0ZXN0X2YoIiVzLXN1 c3BlbmQiLCBmZWF0dXJlX3N0cih0LmZlYXR1cmUpKQorCQlpZ3Rfc3VidGVzdF9mbGFnc19mKHQu c3VidGVzdF9mbGFncywKKwkJCQkgICAgIiVzLXN1c3BlbmQiLAorCQkJCSAgICBmZWF0dXJlX3N0 cih0LmZlYXR1cmUpKQogCQkJc3VzcGVuZF9zdWJ0ZXN0KCZ0KTsKIAlURVNUX01PREVfSVRFUl9F TkQKIAotLSAKMi42LjIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==