From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id E207F8914E for ; Mon, 17 Jun 2019 11:49:41 +0000 (UTC) From: Oleg Vasilev Date: Mon, 17 Jun 2019 14:49:37 +0300 Message-Id: <20190617114937.14542-1-oleg.vasilev@intel.com> In-Reply-To: <20190614132429.22384-1-oleg.vasilev@intel.com> References: <20190614132429.22384-1-oleg.vasilev@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH v2] runner: add --list-all and --blacklist 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: Petri Latvala List-ID: Q3VycmVudGx5LCBydW5uZXIgYWxyZWFkeSBjb2xsZWN0cyBhbGwgc3VidGVzdCBuYW1lcyBpbnRv IGpvYl9saXN0LgotLWxpc3QtYWxsIGFsbG93cyB0byBvdXRwdXQgaXQgdG8gc3Rkb3V0LgoKLS1i bGFja2xpc3Qgb3B0aW9uIHRha2VzIGEgZmlsZW5hbWUgYXMgYW4gYXJndW1lbnQgYW5kIGFkZHMg YWxsIHJlZ2V4ZXMKZnJvbSB0aGF0IGZpbGUgdG8gdGhlIGV4Y2x1c2lvbiBsaXN0LgoKdjI6CiAt IFVwZGF0ZSBleGNsdWRlL2luY2x1ZGUgcmVnZXggbWF0Y2hlcyBmb3IgdGVzdHMgd2l0aG91dAoJ c3VidGVzdHMgdG8gYmUgbWF0Y2hlZCB3aXRoIHBpZ3RpdC1saWtlIG5hbWUgKFBldHJpKQogLSBS ZXBsYWNlIHJlbGF0aXZlIHBhdGhzIHdpdGggdGhvc2UgZm9ybWF0dGVkIHdpdGggdGVzdGRhdGFk aXIgKFBldHJpKQogLSBNaW5vciBjb2Rlc3R5bGUgY2hhbmdlcwoKQ2M6IFBldHJpIExhdHZhbGEg PHBldHJpLmxhdHZhbGFAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBPbGVnIFZhc2lsZXYgPG9s ZWcudmFzaWxldkBpbnRlbC5jb20+Ci0tLQogcnVubmVyL2pvYl9saXN0LmMgICAgICAgICAgICAg ICAgICAgfCAgMjcgKysrKysrLQogcnVubmVyL2pvYl9saXN0LmggICAgICAgICAgICAgICAgICAg fCAgIDEgKwogcnVubmVyL3J1bm5lci5jICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKysKIHJ1 bm5lci9ydW5uZXJfdGVzdHMuYyAgICAgICAgICAgICAgIHwgIDE4ICsrKystCiBydW5uZXIvc2V0 dGluZ3MuYyAgICAgICAgICAgICAgICAgICB8IDExNyArKysrKysrKysrKysrKysrKysrKysrKy0t LS0tCiBydW5uZXIvc2V0dGluZ3MuaCAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBydW5uZXIv dGVzdGRhdGEvbWVzb24uYnVpbGQgICAgICAgICB8ICAgNSArKwogcnVubmVyL3Rlc3RkYXRhL3Rl c3QtYmxhY2tsaXN0LnR4dCAgfCAgIDIgKwogcnVubmVyL3Rlc3RkYXRhL3Rlc3QtYmxhY2tsaXN0 Mi50eHQgfCAgIDIgKwogOSBmaWxlcyBjaGFuZ2VkLCAxNTQgaW5zZXJ0aW9ucygrKSwgMjQgZGVs ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgcnVubmVyL3Rlc3RkYXRhL3Rlc3QtYmxhY2ts aXN0LnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHJ1bm5lci90ZXN0ZGF0YS90ZXN0LWJsYWNrbGlz dDIudHh0CgpkaWZmIC0tZ2l0IGEvcnVubmVyL2pvYl9saXN0LmMgYi9ydW5uZXIvam9iX2xpc3Qu YwppbmRleCA0YTE2NzQyZi4uZTc4ZTAzNTggMTAwNjQ0Ci0tLSBhL3J1bm5lci9qb2JfbGlzdC5j CisrKyBiL3J1bm5lci9qb2JfbGlzdC5jCkBAIC0xMTEsMTEgKzExMSwxNiBAQCBzdGF0aWMgdm9p ZCBhZGRfc3VidGVzdHMoc3RydWN0IGpvYl9saXN0ICpqb2JfbGlzdCwgc3RydWN0IHNldHRpbmdz ICpzZXR0aW5ncywKIAkJZnByaW50ZihzdGRlcnIsICJwb3BlbiBlcnJvciB3aGVuIGV4ZWN1dGlu ZyAlczogJXNcbiIsIGJpbmFyeSwgc3RyZXJyb3IoZXJybm8pKTsKIAl9IGVsc2UgaWYgKFdJRkVY SVRFRChzKSkgewogCQlpZiAoV0VYSVRTVEFUVVMocykgPT0gSUdUX0VYSVRfSU5WQUxJRCkgewor CQkJY2hhciBwaWdsaXRuYW1lWzI1Nl07CisJCQlnZW5lcmF0ZV9waWdsaXRfbmFtZShiaW5hcnks IE5VTEwsCisJCQkJCSAgICAgcGlnbGl0bmFtZSwgc2l6ZW9mKHBpZ2xpdG5hbWUpKTsKKwogCQkJ LyogTm8gc3VidGVzdHMgb24gdGhpcyBvbmUgKi8KLQkJCWlmIChleGNsdWRlICYmIGV4Y2x1ZGUt PnNpemUgJiYgbWF0Y2hlc19hbnkoYmluYXJ5LCBleGNsdWRlKSkgeworCQkJaWYgKGV4Y2x1ZGUg JiYgZXhjbHVkZS0+c2l6ZSAmJgorCQkJCQltYXRjaGVzX2FueShwaWdsaXRuYW1lLCBleGNsdWRl KSkgewogCQkJCXJldHVybjsKIAkJCX0KLQkJCWlmICghaW5jbHVkZSB8fCAhaW5jbHVkZS0+c2l6 ZSB8fCBtYXRjaGVzX2FueShiaW5hcnksIGluY2x1ZGUpKSB7CisJCQlpZiAoIWluY2x1ZGUgfHwg IWluY2x1ZGUtPnNpemUgfHwgbWF0Y2hlc19hbnkocGlnbGl0bmFtZSwgaW5jbHVkZSkpIHsKIAkJ CQlhZGRfam9iX2xpc3RfZW50cnkoam9iX2xpc3QsIHN0cmR1cChiaW5hcnkpLCBOVUxMLCAwKTsK IAkJCQlyZXR1cm47CiAJCQl9CkBAIC0yOTEsNiArMjk2LDI0IEBAIHN0YXRpYyBib29sIGpvYl9s aXN0X2Zyb21fdGVzdF9saXN0KHN0cnVjdCBqb2JfbGlzdCAqam9iX2xpc3QsCiAJcmV0dXJuIGFu eTsKIH0KIAordm9pZCBsaXN0X2FsbF90ZXN0cyhzdHJ1Y3Qgam9iX2xpc3QqIGxzdCkKK3sKKwlm b3IgKHNpemVfdCB0ZXN0X2lkeCA9IDA7IHRlc3RfaWR4IDwgbHN0LT5zaXplOyArK3Rlc3RfaWR4 KXsKKwkJc3RydWN0IGpvYl9saXN0X2VudHJ5KiBjdXJyZW50X2VudHJ5ID0gbHN0LT5lbnRyaWVz K3Rlc3RfaWR4OworCQlpZiAoY3VycmVudF9lbnRyeS0+c3VidGVzdF9jb3VudD09MCkgeworCQkJ cHJpbnRmKCJpZ3RAJXNcbiIsIGN1cnJlbnRfZW50cnktPmJpbmFyeSk7CisJCQljb250aW51ZTsK KwkJfQorCQlmb3IgKHNpemVfdCBzdWJ0ZXN0X2lkeCA9IDA7CisJCSAgICBzdWJ0ZXN0X2lkeCA8 IGN1cnJlbnRfZW50cnktPnN1YnRlc3RfY291bnQ7CisJCSAgICArK3N1YnRlc3RfaWR4KSB7CisJ CQljaGFyICpzdWJ0ZXN0X25hbWUgPSBjdXJyZW50X2VudHJ5LT5zdWJ0ZXN0c1tzdWJ0ZXN0X2lk eF07CisJCQlwcmludGYoImlndEAlc0Alc1xuIiwgY3VycmVudF9lbnRyeS0+YmluYXJ5LCBzdWJ0 ZXN0X25hbWUpOworCQl9CisJfQorfQorCisKIHN0YXRpYyBjaGFyICpsb3dlcmNhc2UoY29uc3Qg Y2hhciAqc3RyKQogewogCWNoYXIgKnJldCA9IG1hbGxvYyhzdHJsZW4oc3RyKSArIDEpOwpkaWZm IC0tZ2l0IGEvcnVubmVyL2pvYl9saXN0LmggYi9ydW5uZXIvam9iX2xpc3QuaAppbmRleCBmOGJi YmRkYy4uY2VlNGJmZjYgMTAwNjQ0Ci0tLSBhL3J1bm5lci9qb2JfbGlzdC5oCisrKyBiL3J1bm5l ci9qb2JfbGlzdC5oCkBAIC0zNiw1ICszNiw2IEBAIGJvb2wgY3JlYXRlX2pvYl9saXN0KHN0cnVj dCBqb2JfbGlzdCAqam9iX2xpc3QsIHN0cnVjdCBzZXR0aW5ncyAqc2V0dGluZ3MpOwogCiBib29s IHNlcmlhbGl6ZV9qb2JfbGlzdChzdHJ1Y3Qgam9iX2xpc3QgKmpvYl9saXN0LCBzdHJ1Y3Qgc2V0 dGluZ3MgKnNldHRpbmdzKTsKIGJvb2wgcmVhZF9qb2JfbGlzdChzdHJ1Y3Qgam9iX2xpc3QgKmpv Yl9saXN0LCBpbnQgZGlyZmQpOwordm9pZCBsaXN0X2FsbF90ZXN0cyhzdHJ1Y3Qgam9iX2xpc3Qq IGxzdCk7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvcnVubmVyL3J1bm5lci5jIGIvcnVubmVyL3J1 bm5lci5jCmluZGV4IGUxYTZjY2JhLi40ODU1YWQ2NCAxMDA2NDQKLS0tIGEvcnVubmVyL3J1bm5l ci5jCisrKyBiL3J1bm5lci9ydW5uZXIuYwpAQCAtMjQsNiArMjQsMTEgQEAgaW50IG1haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQogCQlyZXR1cm4gMTsKIAl9CiAKKwlpZiAoc2V0dGluZ3MubGlz dF9hbGwpIHsKKwkJbGlzdF9hbGxfdGVzdHMoJmpvYl9saXN0KTsKKwkJcmV0dXJuIDA7CisJfQor CiAJaWYgKCFpbml0aWFsaXplX2V4ZWN1dGVfc3RhdGUoJnN0YXRlLCAmc2V0dGluZ3MsICZqb2Jf bGlzdCkpIHsKIAkJcmV0dXJuIDE7CiAJfQpkaWZmIC0tZ2l0IGEvcnVubmVyL3J1bm5lcl90ZXN0 cy5jIGIvcnVubmVyL3J1bm5lcl90ZXN0cy5jCmluZGV4IGMwOWNkYTcwLi4zOWQ0YTA3OCAxMDA2 NDQKLS0tIGEvcnVubmVyL3J1bm5lcl90ZXN0cy5jCisrKyBiL3J1bm5lci9ydW5uZXJfdGVzdHMu YwpAQCAtMzc4LDYgKzM3OCw3IEBAIGlndF9tYWluCiAJfQogCiAJaWd0X3N1YnRlc3QoInBhcnNl LWFsbC1zZXR0aW5ncyIpIHsKKwkJY2hhciBibGFja2xpc3RfbmFtZVtQQVRIX01BWF0sIGJsYWNr bGlzdDJfbmFtZVtQQVRIX01BWF07CiAJCWNvbnN0IGNoYXIgKmFyZ3ZbXSA9IHsgInJ1bm5lciIs CiAJCQkJICAgICAgICItbiIsICJmb28iLAogCQkJCSAgICAgICAiLS1hYm9ydC1vbi1tb25pdG9y ZWQtZXJyb3I9dGFpbnQsbG9ja2RlcCIsCkBAIC0zODgsNiArMzg5LDggQEAgaWd0X21haW4KIAkJ CQkgICAgICAgIi10IiwgInBhdHRlcm4yIiwKIAkJCQkgICAgICAgIi14IiwgInhwYXR0ZXJuMSIs CiAJCQkJICAgICAgICIteCIsICJ4cGF0dGVybjIiLAorCQkJCSAgICAgICAiLWIiLCBibGFja2xp c3RfbmFtZSwKKwkJCQkgICAgICAgIi0tYmxhY2tsaXN0IiwgYmxhY2tsaXN0Ml9uYW1lLAogCQkJ CSAgICAgICAiLXMiLAogCQkJCSAgICAgICAiLWwiLCAidmVyYm9zZSIsCiAJCQkJICAgICAgICIt LW92ZXJ3cml0ZSIsCkBAIC00MDEsNiArNDA0LDkgQEAgaWd0X21haW4KIAkJCQkgICAgICAgInBh dGgtdG8tcmVzdWx0cyIsCiAJCX07CiAKKwkJc3ByaW50ZihibGFja2xpc3RfbmFtZSwgIiVzL3Rl c3QtYmxhY2tsaXN0LnR4dCIsIHRlc3RkYXRhZGlyKTsKKwkJc3ByaW50ZihibGFja2xpc3QyX25h bWUsICIlcy90ZXN0LWJsYWNrbGlzdDIudHh0IiwgdGVzdGRhdGFkaXIpOworCiAJCWlndF9hc3Nl cnQocGFyc2Vfb3B0aW9ucyhBUlJBWV9TSVpFKGFyZ3YpLCAoY2hhcioqKWFyZ3YsIHNldHRpbmdz KSk7CiAKIAkJaWd0X2Fzc2VydF9lcShzZXR0aW5ncy0+YWJvcnRfbWFzaywgQUJPUlRfVEFJTlQg fCBBQk9SVF9MT0NLREVQKTsKQEAgLTQxMCw5ICs0MTYsMTEgQEAgaWd0X21haW4KIAkJaWd0X2Fz c2VydF9lcShzZXR0aW5ncy0+aW5jbHVkZV9yZWdleGVzLnNpemUsIDIpOwogCQlpZ3RfYXNzZXJ0 X2Vxc3RyKHNldHRpbmdzLT5pbmNsdWRlX3JlZ2V4ZXMucmVnZXhfc3RyaW5nc1swXSwgInBhdHRl cm4xIik7CiAJCWlndF9hc3NlcnRfZXFzdHIoc2V0dGluZ3MtPmluY2x1ZGVfcmVnZXhlcy5yZWdl eF9zdHJpbmdzWzFdLCAicGF0dGVybjIiKTsKLQkJaWd0X2Fzc2VydF9lcShzZXR0aW5ncy0+ZXhj bHVkZV9yZWdleGVzLnNpemUsIDIpOworCQlpZ3RfYXNzZXJ0X2VxKHNldHRpbmdzLT5leGNsdWRl X3JlZ2V4ZXMuc2l6ZSwgNCk7CiAJCWlndF9hc3NlcnRfZXFzdHIoc2V0dGluZ3MtPmV4Y2x1ZGVf cmVnZXhlcy5yZWdleF9zdHJpbmdzWzBdLCAieHBhdHRlcm4xIik7CiAJCWlndF9hc3NlcnRfZXFz dHIoc2V0dGluZ3MtPmV4Y2x1ZGVfcmVnZXhlcy5yZWdleF9zdHJpbmdzWzFdLCAieHBhdHRlcm4y Iik7CisJCWlndF9hc3NlcnRfZXFzdHIoc2V0dGluZ3MtPmV4Y2x1ZGVfcmVnZXhlcy5yZWdleF9z dHJpbmdzWzJdLCAieHBhdHRlcm4zIik7IC8qIEZyb20gYmxhY2tsaXN0ICovCisJCWlndF9hc3Nl cnRfZXFzdHIoc2V0dGluZ3MtPmV4Y2x1ZGVfcmVnZXhlcy5yZWdleF9zdHJpbmdzWzNdLCAieHBh dHRlcm40Iik7IC8qIEZyb20gYmxhY2tsaXN0MiAqLwogCQlpZ3RfYXNzZXJ0KHNldHRpbmdzLT5z eW5jKTsKIAkJaWd0X2Fzc2VydF9lcShzZXR0aW5ncy0+bG9nX2xldmVsLCBMT0dfTEVWRUxfVkVS Qk9TRSk7CiAJCWlndF9hc3NlcnQoc2V0dGluZ3MtPm92ZXJ3cml0ZSk7CkBAIC00MjYsNiArNDM0 LDE0IEBAIGlndF9tYWluCiAJCWlndF9hc3NlcnQoc2V0dGluZ3MtPnBpZ2xpdF9zdHlsZV9kbWVz Zyk7CiAJCWlndF9hc3NlcnRfZXEoc2V0dGluZ3MtPmRtZXNnX3dhcm5fbGV2ZWwsIDMpOwogCX0K KwlpZ3Rfc3VidGVzdCgicGFyc2UtbGlzdC1hbGwiKSB7CisJCWNvbnN0IGNoYXIgKmFyZ3ZbXSA9 IHsgInJ1bm5lciIsCisJCQkJICAgICAgICItLWxpc3QtYWxsIiwKKwkJCQkgICAgICAgInRlc3Qt cm9vdC1kaXIifTsKKworCQlpZ3RfYXNzZXJ0KHBhcnNlX29wdGlvbnMoQVJSQVlfU0laRShhcmd2 KSwgKGNoYXIqKilhcmd2LCBzZXR0aW5ncykpOworCQlpZ3RfYXNzZXJ0X2VxKHNldHRpbmdzLT5s aXN0X2FsbCwgMSk7CisJfQogCiAJaWd0X3N1YnRlc3QoImRtZXNnLXdhcm4tbGV2ZWwtaW5mZXJy ZWQiKSB7CiAJCWNvbnN0IGNoYXIgKmFyZ3ZbXSA9IHsgInJ1bm5lciIsCmRpZmYgLS1naXQgYS9y dW5uZXIvc2V0dGluZ3MuYyBiL3J1bm5lci9zZXR0aW5ncy5jCmluZGV4IGFkMzhhZThkLi5mNGI0 YWY5MCAxMDA2NDQKLS0tIGEvcnVubmVyL3NldHRpbmdzLmMKKysrIGIvcnVubmVyL3NldHRpbmdz LmMKQEAgLTEsNSArMSw2IEBACiAjaW5jbHVkZSAic2V0dGluZ3MuaCIKIAorI2luY2x1ZGUgPGN0 eXBlLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxmY250bC5oPgogI2luY2x1ZGUg PGdldG9wdC5oPgpAQCAtMzAsNiArMzEsOCBAQCBlbnVtIHsKIAlPUFRfTVVMVElQTEUgPSAnbScs CiAJT1BUX1RJTUVPVVQgPSAnYycsCiAJT1BUX1dBVENIRE9HID0gJ2cnLAorCU9QVF9CTEFDS0xJ U1QgPSAnYicsCisJT1BUX0xJU1RfQUxMID0gJ0wnLAogfTsKIAogc3RhdGljIHN0cnVjdCB7CkBA IC0xMTcsNyArMTIwLDggQEAgc3RhdGljIGJvb2wgcGFyc2VfYWJvcnRfY29uZGl0aW9ucyhzdHJ1 Y3Qgc2V0dGluZ3MgKnNldHRpbmdzLCBjb25zdCBjaGFyICpvcHRhcmcKIH0KIAogc3RhdGljIGNv bnN0IGNoYXIgKnVzYWdlX3N0ciA9Ci0JInVzYWdlOiBydW5uZXIgW29wdGlvbnNdIFt0ZXN0X3Jv b3RdIHJlc3VsdHMtcGF0aFxuXG4iCisJInVzYWdlOiBydW5uZXIgW29wdGlvbnNdIFt0ZXN0X3Jv b3RdIHJlc3VsdHMtcGF0aFxuIgorCSIgICBvcjogcnVubmVyIC0tbGlzdC1hbGwgW29wdGlvbnNd IFt0ZXN0X3Jvb3RdIFxuXG4iCiAJIk9wdGlvbnM6XG4iCiAJIiBQaWdsaXQgY29tcGF0aWJsZTpc biIKIAkiICAtaCwgLS1oZWxwICAgICAgICAgICAgU2hvdyB0aGlzIGhlbHAgbWVzc2FnZSBhbmQg ZXhpdFxuIgpAQCAtMTcyLDYgKzE3NiwxMCBAQCBzdGF0aWMgY29uc3QgY2hhciAqdXNhZ2Vfc3Ry ID0KIAkiICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmdlcikgZmlsdGVyIGxpc3QgbWVhbnMg dGhlIHRlc3QgcmVzdWx0IHNob3VsZFxuIgogCSIgICAgICAgICAgICAgICAgICAgICAgICBjaGFu Z2UuIEtFUk5fTk9USUNFIGRtZXNnIGxldmVsIGlzIHRyZWF0ZWQgYXMgd2FybixcbiIKIAkiICAg ICAgICAgICAgICAgICAgICAgICAgdW5sZXNzIG92ZXJyaWRkZW4gd2l0aCAtLWRtZXNnLXdhcm4t bGV2ZWwuXG4iCisJIiAgLWIsIC0tYmxhY2tsaXN0IEZJTEVOQU1FXG4iCisJIiAgICAgICAgICAg ICAgICAgICAgICAgIEV4Y2x1ZGUgYWxsIHRlc3QgbWF0Y2hpbmcgdG8gcmVnZXhlcyBmcm9tIEZJ TEVOQU1FXG4iCisJIiAgICAgICAgICAgICAgICAgICAgICAgIChjYW4gYmUgdXNlZCBtb3JlIHRo YW4gb25jZSlcbiIKKwkiICAtTCwgLS1saXN0LWFsbCAgICAgICAgTGlzdCBhbGwgbWF0Y2hpbmcg c3VidGVzdHMgaW5zdGVhZCBvZiBydW5uaW5nXG4iCiAJIiAgW3Rlc3Rfcm9vdF0gICAgICAgICAg IERpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHRoZSBJR1QgdGVzdHMuIFRoZSBlbnZpcm9ubWVudFxu IgogCSIgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZSBJR1RfVEVTVF9ST09UIHdpbGwg YmUgdXNlZCBpZiBzZXQsIG92ZXJyaWRpbmdcbiIKIAkiICAgICAgICAgICAgICAgICAgICAgICAg dGhpcyBvcHRpb24gaWYgZ2l2ZW4uXG4iCkBAIC0yMTMsNiArMjIxLDUwIEBAIHN0YXRpYyBib29s IGFkZF9yZWdleChzdHJ1Y3QgcmVnZXhfbGlzdCAqbGlzdCwgY2hhciAqbmV3KQogCXJldHVybiB0 cnVlOwogfQogCitzdGF0aWMgYm9vbCBwYXJzZV9ibGFja2xpc3Qoc3RydWN0IHJlZ2V4X2xpc3Qg KmV4Y2x1ZGVfcmVnZXhlcywgY2hhciAqYmxhY2tsaXN0X2ZpbGVuYW1lKQoreworCUZJTEUgKmY7 CisJY2hhciAqbGluZSA9IE5VTEw7CisJc2l6ZV90IGxpbmVfbGVuID0gMDsKKwlib29sIHN0YXR1 czsKKworCWlmICgoZiA9IGZvcGVuKGJsYWNrbGlzdF9maWxlbmFtZSwgInIiKSkgPT0gTlVMTCkg eworCQlmcHJpbnRmKHN0ZGVyciwgIkNhbm5vdCBvcGVuIGJsYWNrbGlzdCBmaWxlICVzXG4iLCBi bGFja2xpc3RfZmlsZW5hbWUpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCXdoaWxlICgxKSB7CisJ CXNpemVfdCBzdHJfc2l6ZSA9IDAsIGlkeCA9IDA7CisKKwkJaWYgKGdldGxpbmUoJmxpbmUsICZs aW5lX2xlbiwgZikgPT0gLTEpIHsKKwkJCWlmIChlcnJubyA9PSBFSU5UUikKKwkJCQljb250aW51 ZTsKKwkJCWVsc2UKKwkJCQlicmVhazsKKwkJfQorCisJCXdoaWxlICh0cnVlKSB7CisJCQlpZihs aW5lW2lkeF09PSdcbicgfHwKKwkJCSAgIGxpbmVbaWR4XT09JyMnICB8fCAvKiAjIHN0YXJ0cyBh IGNvbW1lbnQgKi8KKwkJCSAgIGxpbmVbaWR4XT09J1wwJykKKwkJCQlicmVhazsKKwkJCWlmICgh aXNzcGFjZShsaW5lW2lkeF0pKQorCQkJCXN0cl9zaXplID0gaWR4KzE7CisJCQlpZHgrKzsKKwkJ fQorCQlpZiAoc3RyX3NpemUgPiAwKSB7CisJCQljaGFyICogdGVzdF9yZWdleCA9IHN0cm5kdXAo bGluZSwgc3RyX3NpemUpOworCQkJc3RhdHVzID0gYWRkX3JlZ2V4KGV4Y2x1ZGVfcmVnZXhlcywg dGVzdF9yZWdleCk7CisJCQlpZighc3RhdHVzKXsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0K KworCWZyZWUobGluZSk7CisJZmNsb3NlKGYpOworCXJldHVybiBzdGF0dXM7Cit9CisKIHN0YXRp YyB2b2lkIGZyZWVfcmVnZXhlcyhzdHJ1Y3QgcmVnZXhfbGlzdCAqcmVnZXhlcykKIHsKIAlzaXpl X3QgaTsKQEAgLTI3Miw2ICszMjQsOCBAQCBib29sIHBhcnNlX29wdGlvbnMoaW50IGFyZ2MsIGNo YXIgKiphcmd2LAogCQl7InVzZS13YXRjaGRvZyIsIG5vX2FyZ3VtZW50LCBOVUxMLCBPUFRfV0FU Q0hET0d9LAogCQl7InBpZ2xpdC1zdHlsZS1kbWVzZyIsIG5vX2FyZ3VtZW50LCBOVUxMLCBPUFRf UElHTElUX0RNRVNHfSwKIAkJeyJkbWVzZy13YXJuLWxldmVsIiwgcmVxdWlyZWRfYXJndW1lbnQs IE5VTEwsIE9QVF9ETUVTR19XQVJOX0xFVkVMfSwKKwkJeyJibGFja2xpc3QiLCByZXF1aXJlZF9h cmd1bWVudCwgTlVMTCwgT1BUX0JMQUNLTElTVH0sCisJCXsibGlzdC1hbGwiLCBub19hcmd1bWVu dCwgTlVMTCwgT1BUX0xJU1RfQUxMfSwKIAkJeyAwLCAwLCAwLCAwfSwKIAl9OwogCkBAIC0yODEs NyArMzM1LDcgQEAgYm9vbCBwYXJzZV9vcHRpb25zKGludCBhcmdjLCBjaGFyICoqYXJndiwKIAog CXNldHRpbmdzLT5kbWVzZ193YXJuX2xldmVsID0gLTE7CiAKLQl3aGlsZSAoKGMgPSBnZXRvcHRf bG9uZyhhcmdjLCBhcmd2LCAiaG46ZHQ6eDpzbDpvbSIsIGxvbmdfb3B0aW9ucywgTlVMTCkpICE9 IC0xKSB7CisJd2hpbGUgKChjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgImhuOmR0Ong6c2w6 b21iOkwiLCBsb25nX29wdGlvbnMsIE5VTEwpKSAhPSAtMSkgewogCQlzd2l0Y2ggKGMpIHsKIAkJ Y2FzZSBPUFRfSEVMUDoKIAkJCXVzYWdlKE5VTEwsIHN0ZG91dCk7CkBAIC0zNDIsNiArMzk2LDEz IEBAIGJvb2wgcGFyc2Vfb3B0aW9ucyhpbnQgYXJnYywgY2hhciAqKmFyZ3YsCiAJCWNhc2UgT1BU X0RNRVNHX1dBUk5fTEVWRUw6CiAJCQlzZXR0aW5ncy0+ZG1lc2dfd2Fybl9sZXZlbCA9IGF0b2ko b3B0YXJnKTsKIAkJCWJyZWFrOworCQljYXNlIE9QVF9CTEFDS0xJU1Q6CisJCQlpZiAoIXBhcnNl X2JsYWNrbGlzdCgmc2V0dGluZ3MtPmV4Y2x1ZGVfcmVnZXhlcywgYWJzb2x1dGVfcGF0aChvcHRh cmcpKSkKKwkJCQlnb3RvIGVycm9yOworCQkJYnJlYWs7CisJCWNhc2UgT1BUX0xJU1RfQUxMOgor CQkJc2V0dGluZ3MtPmxpc3RfYWxsID0gdHJ1ZTsKKwkJCWJyZWFrOwogCQljYXNlICc/JzoKIAkJ CXVzYWdlKE5VTEwsIHN0ZGVycik7CiAJCQlnb3RvIGVycm9yOwpAQCAtMzU0LDIwICs0MTUsMzkg QEAgYm9vbCBwYXJzZV9vcHRpb25zKGludCBhcmdjLCBjaGFyICoqYXJndiwKIAlpZiAoc2V0dGlu Z3MtPmRtZXNnX3dhcm5fbGV2ZWwgPCAwKQogCQlzZXR0aW5ncy0+ZG1lc2dfd2Fybl9sZXZlbCA9 IDQ7IC8qIEtFUk5fV0FSTiAqLwogCi0Jc3dpdGNoIChhcmdjIC0gb3B0aW5kKSB7Ci0JY2FzZSAy OgotCQlzZXR0aW5ncy0+dGVzdF9yb290ID0gYWJzb2x1dGVfcGF0aChhcmd2W29wdGluZF0pOwot CQkrK29wdGluZDsKLQkJLyogZmFsbHRocm91Z2ggKi8KLQljYXNlIDE6Ci0JCXNldHRpbmdzLT5y ZXN1bHRzX3BhdGggPSBhYnNvbHV0ZV9wYXRoKGFyZ3Zbb3B0aW5kXSk7Ci0JCWJyZWFrOwotCWNh c2UgMDoKLQkJdXNhZ2UoIlJlc3VsdHMtcGF0aCBtaXNzaW5nIiwgc3RkZXJyKTsKLQkJZ290byBl cnJvcjsKLQlkZWZhdWx0OgotCQl1c2FnZSgiRXh0cmEgYXJndW1lbnRzIGFmdGVyIHJlc3VsdHMt cGF0aCIsIHN0ZGVycik7Ci0JCWdvdG8gZXJyb3I7CisJaWYgKHNldHRpbmdzLT5saXN0X2FsbCkg eyAvKiAtLWxpc3QtYWxsIGRvZXNuJ3QgcmVxdWlyZSByZXN1bHRzIHBhdGggKi8KKwkJc3dpdGNo IChhcmdjIC0gb3B0aW5kKSB7CisJCWNhc2UgMToKKwkJCXNldHRpbmdzLT50ZXN0X3Jvb3QgPSBh YnNvbHV0ZV9wYXRoKGFyZ3Zbb3B0aW5kXSk7CisJCQkrK29wdGluZDsKKwkJCS8qIGZhbGx0aHJv dWdoICovCisJCWNhc2UgMDoKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJdXNhZ2UoIlRvbyBt YW55IGFyZ3VtZW50cyBmb3IgLS1saXN0LWFsbCIsIHN0ZGVycik7CisJCQlnb3RvIGVycm9yOwor CQl9CisJfSBlbHNlIHsKKwkJc3dpdGNoIChhcmdjIC0gb3B0aW5kKSB7CisJCWNhc2UgMjoKKwkJ CXNldHRpbmdzLT50ZXN0X3Jvb3QgPSBhYnNvbHV0ZV9wYXRoKGFyZ3Zbb3B0aW5kXSk7CisJCQkr K29wdGluZDsKKwkJCS8qIGZhbGx0aHJvdWdoICovCisJCWNhc2UgMToKKwkJCXNldHRpbmdzLT5y ZXN1bHRzX3BhdGggPSBhYnNvbHV0ZV9wYXRoKGFyZ3Zbb3B0aW5kXSk7CisJCQlicmVhazsKKwkJ Y2FzZSAwOgorCQkJdXNhZ2UoIlJlc3VsdHMtcGF0aCBtaXNzaW5nIiwgc3RkZXJyKTsKKwkJCWdv dG8gZXJyb3I7CisJCWRlZmF1bHQ6CisJCQl1c2FnZSgiRXh0cmEgYXJndW1lbnRzIGFmdGVyIHJl c3VsdHMtcGF0aCIsIHN0ZGVycik7CisJCQlnb3RvIGVycm9yOworCQl9CisJCWlmICghc2V0dGlu Z3MtPm5hbWUpIHsKKwkJCWNoYXIgKm5hbWUgPSBzdHJkdXAoc2V0dGluZ3MtPnJlc3VsdHNfcGF0 aCk7CisJCQlzZXR0aW5ncy0+bmFtZSA9IHN0cmR1cChiYXNlbmFtZShuYW1lKSk7CisJCQlmcmVl KG5hbWUpOworCQl9CiAJfQogCiAJaWYgKChlbnZfdGVzdF9yb290ID0gZ2V0ZW52KCJJR1RfVEVT VF9ST09UIikpICE9IE5VTEwpIHsKQEAgLTM4MCwxMSArNDYwLDYgQEAgYm9vbCBwYXJzZV9vcHRp b25zKGludCBhcmdjLCBjaGFyICoqYXJndiwKIAkJZ290byBlcnJvcjsKIAl9CiAKLQlpZiAoIXNl dHRpbmdzLT5uYW1lKSB7Ci0JCWNoYXIgKm5hbWUgPSBzdHJkdXAoc2V0dGluZ3MtPnJlc3VsdHNf cGF0aCk7Ci0JCXNldHRpbmdzLT5uYW1lID0gc3RyZHVwKGJhc2VuYW1lKG5hbWUpKTsKLQkJZnJl ZShuYW1lKTsKLQl9CiAKIAlyZXR1cm4gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvcnVubmVyL3NldHRp bmdzLmggYi9ydW5uZXIvc2V0dGluZ3MuaAppbmRleCAwYTFlZTA4ZC4uNmRjZmE4YzUgMTAwNjQ0 Ci0tLSBhL3J1bm5lci9zZXR0aW5ncy5oCisrKyBiL3J1bm5lci9zZXR0aW5ncy5oCkBAIC00Myw2 ICs0Myw3IEBAIHN0cnVjdCBzZXR0aW5ncyB7CiAJY2hhciAqcmVzdWx0c19wYXRoOwogCWJvb2wg cGlnbGl0X3N0eWxlX2RtZXNnOwogCWludCBkbWVzZ193YXJuX2xldmVsOworCWJvb2wgbGlzdF9h bGw7CiB9OwogCiAvKioKZGlmZiAtLWdpdCBhL3J1bm5lci90ZXN0ZGF0YS9tZXNvbi5idWlsZCBi L3J1bm5lci90ZXN0ZGF0YS9tZXNvbi5idWlsZAppbmRleCAwMTFlZmY4ZS4uMjQ1NmY4MmEgMTAw NjQ0Ci0tLSBhL3J1bm5lci90ZXN0ZGF0YS9tZXNvbi5idWlsZAorKysgYi9ydW5uZXIvdGVzdGRh dGEvbWVzb24uYnVpbGQKQEAgLTEyLDYgKzEyLDExIEBAIGZvcmVhY2ggcHJvZyA6IHRlc3RkYXRh X3Byb2dzCiAJCQkJCSAgIGluc3RhbGwgOiBmYWxzZSkKIGVuZGZvcmVhY2gKIAorY29uZmlndXJl X2ZpbGUoaW5wdXQgOiAndGVzdC1ibGFja2xpc3QudHh0JywKKwkgICAgICAgb3V0cHV0IDogJ3Rl c3QtYmxhY2tsaXN0LnR4dCcsIGNvcHkgOiB0cnVlKQorY29uZmlndXJlX2ZpbGUoaW5wdXQgOiAn dGVzdC1ibGFja2xpc3QyLnR4dCcsCisJICAgICAgIG91dHB1dCA6ICd0ZXN0LWJsYWNrbGlzdDIu dHh0JywgY29weSA6IHRydWUpCisKIHRlc3RkYXRhX2xpc3QgPSBjdXN0b21fdGFyZ2V0KCd0ZXN0 ZGF0YV90ZXN0bGlzdCcsCiAJCQkgICAgICBvdXRwdXQgOiAndGVzdC1saXN0LnR4dCcsCiAJCQkg ICAgICBjb21tYW5kIDogWyBnZW5fdGVzdGxpc3QsICdAT1VUUFVUQCcsIHRlc3RkYXRhX3Byb2dz IF0sCmRpZmYgLS1naXQgYS9ydW5uZXIvdGVzdGRhdGEvdGVzdC1ibGFja2xpc3QudHh0IGIvcnVu bmVyL3Rlc3RkYXRhL3Rlc3QtYmxhY2tsaXN0LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMC4uNmIwOWFlNWMKLS0tIC9kZXYvbnVsbAorKysgYi9ydW5uZXIvdGVzdGRhdGEv dGVzdC1ibGFja2xpc3QudHh0CkBAIC0wLDAgKzEsMiBAQAoreHBhdHRlcm4zICAgICMgQ29tbWVu dCAxCisjIENvbW1lbnQgMgpkaWZmIC0tZ2l0IGEvcnVubmVyL3Rlc3RkYXRhL3Rlc3QtYmxhY2ts aXN0Mi50eHQgYi9ydW5uZXIvdGVzdGRhdGEvdGVzdC1ibGFja2xpc3QyLnR4dApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uZDBmNmU2MTIKLS0tIC9kZXYvbnVsbAorKysgYi9y dW5uZXIvdGVzdGRhdGEvdGVzdC1ibGFja2xpc3QyLnR4dApAQCAtMCwwICsxLDIgQEAKKworeHBh dHRlcm40Ci0tIAoyLjIxLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRl dg==