From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6DF3B89791 for ; Fri, 14 Jun 2019 14:28:41 +0000 (UTC) Date: Fri, 14 Jun 2019 17:28:38 +0300 From: Petri Latvala Message-ID: <20190614142838.GR22949@platvala-desk.ger.corp.intel.com> References: <20190614132429.22384-1-oleg.vasilev@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190614132429.22384-1-oleg.vasilev@intel.com> Subject: Re: [igt-dev] [PATCH] 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: Oleg Vasilev Cc: igt-dev@lists.freedesktop.org List-ID: T24gRnJpLCBKdW4gMTQsIDIwMTkgYXQgMDQ6MjQ6MjlQTSArMDMwMCwgT2xlZyBWYXNpbGV2IHdy b3RlOgo+IEN1cnJlbnRseSwgcnVubmVyIGFscmVhZHkgY29sbGVjdHMgYWxsIHN1YnRlc3QgbmFt ZXMgaW50byBqb2JfbGlzdC4KPiAtLWxpc3QtYWxsIGFsbG93cyB0byBvdXRwdXQgaXQgdG8gc3Rk b3V0Lgo+IAo+IC0tYmxhY2tsaXN0IG9wdGlvbiB0YWtlcyBhIGZpbGVuYW1lIGFzIGFuIGFyZ3Vt ZW50IGFuZCBhZGRzIGFsbCByZWdleGVzCj4gZnJvbSB0aGF0IGZpbGUgdG8gdGhlIGV4Y2x1c2lv biBsaXN0Lgo+IAo+IENjOiBQZXRyaSBMYXR2YWxhIDxwZXRyaS5sYXR2YWxhQGludGVsLmNvbT4K PiBTaWduZWQtb2ZmLWJ5OiBPbGVnIFZhc2lsZXYgPG9sZWcudmFzaWxldkBpbnRlbC5jb20+Cj4g LS0tCj4gIHJ1bm5lci9qb2JfbGlzdC5jICAgICB8ICAxOCArKysrKysrCj4gIHJ1bm5lci9qb2Jf bGlzdC5oICAgICB8ICAgMSArCj4gIHJ1bm5lci9ydW5uZXIuYyAgICAgICB8ICAgNSArKwo+ICBy dW5uZXIvcnVubmVyX3Rlc3RzLmMgfCAgMTQgKysrKy0KPiAgcnVubmVyL3NldHRpbmdzLmMgICAg IHwgMTE4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQo+ICBydW5u ZXIvc2V0dGluZ3MuaCAgICAgfCAgIDEgKwo+ICA2IGZpbGVzIGNoYW5nZWQsIDEzNSBpbnNlcnRp b25zKCspLCAyMiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvcnVubmVyL2pvYl9saXN0 LmMgYi9ydW5uZXIvam9iX2xpc3QuYwo+IGluZGV4IDRhMTY3NDJmLi4yYTUwZGM1YyAxMDA2NDQK PiAtLS0gYS9ydW5uZXIvam9iX2xpc3QuYwo+ICsrKyBiL3J1bm5lci9qb2JfbGlzdC5jCj4gQEAg LTI5MSw2ICsyOTEsMjQgQEAgc3RhdGljIGJvb2wgam9iX2xpc3RfZnJvbV90ZXN0X2xpc3Qoc3Ry dWN0IGpvYl9saXN0ICpqb2JfbGlzdCwKPiAgCXJldHVybiBhbnk7Cj4gIH0KPiAgCj4gK3ZvaWQg bGlzdF9hbGxfdGVzdHMoc3RydWN0IGpvYl9saXN0KiBsc3QpCj4gK3sKPiArCWZvciAoc2l6ZV90 IHRlc3RfaWR4ID0gMDsgdGVzdF9pZHggPCBsc3QtPnNpemU7ICsrdGVzdF9pZHgpewo+ICsJCXN0 cnVjdCBqb2JfbGlzdF9lbnRyeSogY3VycmVudF9lbnRyeSA9IGxzdC0+ZW50cmllcyt0ZXN0X2lk eDsKPiArCQlpZiAoY3VycmVudF9lbnRyeS0+c3VidGVzdF9jb3VudD09MCkgewo+ICsJCQlwcmlu dGYoImlndEAlc1xuIiwgY3VycmVudF9lbnRyeS0+YmluYXJ5KTsKPiArCQkJY29udGludWU7Cj4g KwkJfQo+ICsJCWZvciAoc2l6ZV90IHN1YnRlc3RfaWR4ID0gMDsKPiArCQkgICAgc3VidGVzdF9p ZHggPCBjdXJyZW50X2VudHJ5LT5zdWJ0ZXN0X2NvdW50Owo+ICsJCSAgICArK3N1YnRlc3RfaWR4 KSB7Cj4gKwkJCWNoYXIgKnN1YnRlc3RfbmFtZSA9IGN1cnJlbnRfZW50cnktPnN1YnRlc3RzW3N1 YnRlc3RfaWR4XTsKPiArCQkJcHJpbnRmKCJpZ3RAJXNAJXNcbiIsIGN1cnJlbnRfZW50cnktPmJp bmFyeSwgc3VidGVzdF9uYW1lKTsKPiArCQl9Cj4gKwl9Cj4gK30KPiArCj4gKwo+ICBzdGF0aWMg Y2hhciAqbG93ZXJjYXNlKGNvbnN0IGNoYXIgKnN0cikKPiAgewo+ICAJY2hhciAqcmV0ID0gbWFs bG9jKHN0cmxlbihzdHIpICsgMSk7Cj4gZGlmZiAtLWdpdCBhL3J1bm5lci9qb2JfbGlzdC5oIGIv cnVubmVyL2pvYl9saXN0LmgKPiBpbmRleCBmOGJiYmRkYy4uY2VlNGJmZjYgMTAwNjQ0Cj4gLS0t IGEvcnVubmVyL2pvYl9saXN0LmgKPiArKysgYi9ydW5uZXIvam9iX2xpc3QuaAo+IEBAIC0zNiw1 ICszNiw2IEBAIGJvb2wgY3JlYXRlX2pvYl9saXN0KHN0cnVjdCBqb2JfbGlzdCAqam9iX2xpc3Qs IHN0cnVjdCBzZXR0aW5ncyAqc2V0dGluZ3MpOwo+ICAKPiAgYm9vbCBzZXJpYWxpemVfam9iX2xp c3Qoc3RydWN0IGpvYl9saXN0ICpqb2JfbGlzdCwgc3RydWN0IHNldHRpbmdzICpzZXR0aW5ncyk7 Cj4gIGJvb2wgcmVhZF9qb2JfbGlzdChzdHJ1Y3Qgam9iX2xpc3QgKmpvYl9saXN0LCBpbnQgZGly ZmQpOwo+ICt2b2lkIGxpc3RfYWxsX3Rlc3RzKHN0cnVjdCBqb2JfbGlzdCogbHN0KTsKPiAgCj4g ICNlbmRpZgo+IGRpZmYgLS1naXQgYS9ydW5uZXIvcnVubmVyLmMgYi9ydW5uZXIvcnVubmVyLmMK PiBpbmRleCBlMWE2Y2NiYS4uOTA5ZWM4NjEgMTAwNjQ0Cj4gLS0tIGEvcnVubmVyL3J1bm5lci5j Cj4gKysrIGIvcnVubmVyL3J1bm5lci5jCj4gQEAgLTI0LDYgKzI0LDExIEBAIGludCBtYWluKGlu dCBhcmdjLCBjaGFyICoqYXJndikKPiAgCQlyZXR1cm4gMTsKPiAgCX0KPiAgCj4gKwlpZihzZXR0 aW5ncy5saXN0X2FsbCkgewoKQWRkIHNwYWNlIGFmdGVyIGlmCgoKPiArCQlsaXN0X2FsbF90ZXN0 cygmam9iX2xpc3QpOwo+ICsJCXJldHVybiAwOwo+ICsJfQo+ICsKPiAgCWlmICghaW5pdGlhbGl6 ZV9leGVjdXRlX3N0YXRlKCZzdGF0ZSwgJnNldHRpbmdzLCAmam9iX2xpc3QpKSB7Cj4gIAkJcmV0 dXJuIDE7Cj4gIAl9Cj4gZGlmZiAtLWdpdCBhL3J1bm5lci9ydW5uZXJfdGVzdHMuYyBiL3J1bm5l ci9ydW5uZXJfdGVzdHMuYwo+IGluZGV4IGMwOWNkYTcwLi4wMGJiOWRlMyAxMDA2NDQKPiAtLS0g YS9ydW5uZXIvcnVubmVyX3Rlc3RzLmMKPiArKysgYi9ydW5uZXIvcnVubmVyX3Rlc3RzLmMKPiBA QCAtMzg4LDYgKzM4OCw4IEBAIGlndF9tYWluCj4gIAkJCQkgICAgICAgIi10IiwgInBhdHRlcm4y IiwKPiAgCQkJCSAgICAgICAiLXgiLCAieHBhdHRlcm4xIiwKPiAgCQkJCSAgICAgICAiLXgiLCAi eHBhdHRlcm4yIiwKPiArCQkJCSAgICAgICAiLWIiLCAiLi4vcnVubmVyL3Rlc3RkYXRhL3Rlc3Qt YmxhY2tsaXN0LnR4dCIsCj4gKwkJCQkgICAgICAgIi0tYmxhY2tsaXN0IiwgIi4uL3J1bm5lci90 ZXN0ZGF0YS90ZXN0LWJsYWNrbGlzdDIudHh0IiwKCkRvbid0IHVzZSByZWxhdGl2ZSBwYXRocywg eW91IGRvbid0IGtub3cgd2hhdCB0aGUgQ1dEIGlzLgoKVXNlIHRoZSB2YXJpYWJsZSB0ZXN0ZGF0 YWRpciB0byBmaW5kIHJ1bm5lci90ZXN0ZGF0YS4gQW5kIHJlbWVtYmVyIHRvIGdpdCBhZGQgdGhv c2UgZmlsZXMuCgoKCj4gIAkJCQkgICAgICAgIi1zIiwKPiAgCQkJCSAgICAgICAiLWwiLCAidmVy Ym9zZSIsCj4gIAkJCQkgICAgICAgIi0tb3ZlcndyaXRlIiwKPiBAQCAtNDEwLDkgKzQxMiwxMSBA QCBpZ3RfbWFpbgo+ICAJCWlndF9hc3NlcnRfZXEoc2V0dGluZ3MtPmluY2x1ZGVfcmVnZXhlcy5z aXplLCAyKTsKPiAgCQlpZ3RfYXNzZXJ0X2Vxc3RyKHNldHRpbmdzLT5pbmNsdWRlX3JlZ2V4ZXMu cmVnZXhfc3RyaW5nc1swXSwgInBhdHRlcm4xIik7Cj4gIAkJaWd0X2Fzc2VydF9lcXN0cihzZXR0 aW5ncy0+aW5jbHVkZV9yZWdleGVzLnJlZ2V4X3N0cmluZ3NbMV0sICJwYXR0ZXJuMiIpOwo+IC0J CWlndF9hc3NlcnRfZXEoc2V0dGluZ3MtPmV4Y2x1ZGVfcmVnZXhlcy5zaXplLCAyKTsKPiArCQlp Z3RfYXNzZXJ0X2VxKHNldHRpbmdzLT5leGNsdWRlX3JlZ2V4ZXMuc2l6ZSwgNCk7Cj4gIAkJaWd0 X2Fzc2VydF9lcXN0cihzZXR0aW5ncy0+ZXhjbHVkZV9yZWdleGVzLnJlZ2V4X3N0cmluZ3NbMF0s ICJ4cGF0dGVybjEiKTsKPiAgCQlpZ3RfYXNzZXJ0X2Vxc3RyKHNldHRpbmdzLT5leGNsdWRlX3Jl Z2V4ZXMucmVnZXhfc3RyaW5nc1sxXSwgInhwYXR0ZXJuMiIpOwo+ICsJCWlndF9hc3NlcnRfZXFz dHIoc2V0dGluZ3MtPmV4Y2x1ZGVfcmVnZXhlcy5yZWdleF9zdHJpbmdzWzJdLCAieHBhdHRlcm4z Iik7IC8qIEZyb20gYmxhY2tsaXN0ICovCj4gKwkJaWd0X2Fzc2VydF9lcXN0cihzZXR0aW5ncy0+ ZXhjbHVkZV9yZWdleGVzLnJlZ2V4X3N0cmluZ3NbM10sICJ4cGF0dGVybjQiKTsgLyogRnJvbSBi bGFja2xpc3QyICovCj4gIAkJaWd0X2Fzc2VydChzZXR0aW5ncy0+c3luYyk7Cj4gIAkJaWd0X2Fz c2VydF9lcShzZXR0aW5ncy0+bG9nX2xldmVsLCBMT0dfTEVWRUxfVkVSQk9TRSk7Cj4gIAkJaWd0 X2Fzc2VydChzZXR0aW5ncy0+b3ZlcndyaXRlKTsKPiBAQCAtNDI2LDYgKzQzMCwxNCBAQCBpZ3Rf bWFpbgo+ICAJCWlndF9hc3NlcnQoc2V0dGluZ3MtPnBpZ2xpdF9zdHlsZV9kbWVzZyk7Cj4gIAkJ aWd0X2Fzc2VydF9lcShzZXR0aW5ncy0+ZG1lc2dfd2Fybl9sZXZlbCwgMyk7Cj4gIAl9Cj4gKwlp Z3Rfc3VidGVzdCgicGFyc2UtbGlzdC1hbGwiKSB7Cj4gKwkJY29uc3QgY2hhciAqYXJndltdID0g eyAicnVubmVyIiwKPiArCQkJCSAgICAgICAiLS1saXN0LWFsbCIsCj4gKwkJCQkgICAgICAgInRl c3Qtcm9vdC1kaXIifTsKPiArCj4gKwkJaWd0X2Fzc2VydChwYXJzZV9vcHRpb25zKEFSUkFZX1NJ WkUoYXJndiksIChjaGFyKiopYXJndiwgc2V0dGluZ3MpKTsKPiArCQlpZ3RfYXNzZXJ0X2VxKHNl dHRpbmdzLT5saXN0X2FsbCwgMSk7Cj4gKwl9Cj4gIAo+ICAJaWd0X3N1YnRlc3QoImRtZXNnLXdh cm4tbGV2ZWwtaW5mZXJyZWQiKSB7Cj4gIAkJY29uc3QgY2hhciAqYXJndltdID0geyAicnVubmVy IiwKPiBkaWZmIC0tZ2l0IGEvcnVubmVyL3NldHRpbmdzLmMgYi9ydW5uZXIvc2V0dGluZ3MuYwo+ IGluZGV4IGFkMzhhZThkLi4yNjkyMzcwZiAxMDA2NDQKPiAtLS0gYS9ydW5uZXIvc2V0dGluZ3Mu Ywo+ICsrKyBiL3J1bm5lci9zZXR0aW5ncy5jCj4gQEAgLTEsNSArMSw2IEBACj4gICNpbmNsdWRl ICJzZXR0aW5ncy5oIgo+ICAKPiArI2luY2x1ZGUgPGN0eXBlLmg+Cj4gICNpbmNsdWRlIDxlcnJu by5oPgo+ICAjaW5jbHVkZSA8ZmNudGwuaD4KPiAgI2luY2x1ZGUgPGdldG9wdC5oPgo+IEBAIC0z MCw2ICszMSw4IEBAIGVudW0gewo+ICAJT1BUX01VTFRJUExFID0gJ20nLAo+ICAJT1BUX1RJTUVP VVQgPSAnYycsCj4gIAlPUFRfV0FUQ0hET0cgPSAnZycsCj4gKwlPUFRfQkxBQ0tMSVNUID0gJ2In LAo+ICsJT1BUX0xJU1RfQUxMID0gJ0wnLAo+ICB9Owo+ICAKPiAgc3RhdGljIHN0cnVjdCB7Cj4g QEAgLTExNyw3ICsxMjAsOCBAQCBzdGF0aWMgYm9vbCBwYXJzZV9hYm9ydF9jb25kaXRpb25zKHN0 cnVjdCBzZXR0aW5ncyAqc2V0dGluZ3MsIGNvbnN0IGNoYXIgKm9wdGFyZwo+ICB9Cj4gIAo+ICBz dGF0aWMgY29uc3QgY2hhciAqdXNhZ2Vfc3RyID0KPiAtCSJ1c2FnZTogcnVubmVyIFtvcHRpb25z XSBbdGVzdF9yb290XSByZXN1bHRzLXBhdGhcblxuIgo+ICsJInVzYWdlOiBydW5uZXIgW29wdGlv bnNdIFt0ZXN0X3Jvb3RdIHJlc3VsdHMtcGF0aFxuIgo+ICsJIiAgIG9yOiBydW5uZXIgLS1saXN0 LWFsbCBbb3B0aW9uc10gW3Rlc3Rfcm9vdF0gXG5cbiIKPiAgCSJPcHRpb25zOlxuIgo+ICAJIiBQ aWdsaXQgY29tcGF0aWJsZTpcbiIKPiAgCSIgIC1oLCAtLWhlbHAgICAgICAgICAgICBTaG93IHRo aXMgaGVscCBtZXNzYWdlIGFuZCBleGl0XG4iCj4gQEAgLTE3Miw2ICsxNzYsMTAgQEAgc3RhdGlj IGNvbnN0IGNoYXIgKnVzYWdlX3N0ciA9Cj4gIAkiICAgICAgICAgICAgICAgICAgICAgICAgKGxv bmdlcikgZmlsdGVyIGxpc3QgbWVhbnMgdGhlIHRlc3QgcmVzdWx0IHNob3VsZFxuIgo+ICAJIiAg ICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZS4gS0VSTl9OT1RJQ0UgZG1lc2cgbGV2ZWwgaXMg dHJlYXRlZCBhcyB3YXJuLFxuIgo+ICAJIiAgICAgICAgICAgICAgICAgICAgICAgIHVubGVzcyBv dmVycmlkZGVuIHdpdGggLS1kbWVzZy13YXJuLWxldmVsLlxuIgo+ICsJIiAgLWIsIC0tYmxhY2ts aXN0IEZJTEVOQU1FXG4iCj4gKwkiICAgICAgICAgICAgICAgICAgICAgICAgRXhjbHVkZSBhbGwg dGVzdCBtYXRjaGluZyB0byByZWdleGVzIGZyb20gRklMRU5BTUVcbiIKPiArCSIgICAgICAgICAg ICAgICAgICAgICAgICAoY2FuIGJlIHVzZWQgbW9yZSB0aGFuIG9uY2UpXG4iCj4gKwkiICAtTCwg LS1saXN0LWFsbCAgICAgICAgTGlzdCBhbGwgbWF0Y2hpbmcgc3VidGVzdHMgaW5zdGVhZCBvZiBy dW5uaW5nXG4iCj4gIAkiICBbdGVzdF9yb290XSAgICAgICAgICAgRGlyZWN0b3J5IHRoYXQgY29u dGFpbnMgdGhlIElHVCB0ZXN0cy4gVGhlIGVudmlyb25tZW50XG4iCj4gIAkiICAgICAgICAgICAg ICAgICAgICAgICAgdmFyaWFibGUgSUdUX1RFU1RfUk9PVCB3aWxsIGJlIHVzZWQgaWYgc2V0LCBv dmVycmlkaW5nXG4iCj4gIAkiICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyBvcHRpb24gaWYg Z2l2ZW4uXG4iCj4gQEAgLTIxMyw2ICsyMjEsNTEgQEAgc3RhdGljIGJvb2wgYWRkX3JlZ2V4KHN0 cnVjdCByZWdleF9saXN0ICpsaXN0LCBjaGFyICpuZXcpCj4gIAlyZXR1cm4gdHJ1ZTsKPiAgfQo+ ICAKPiArc3RhdGljIGJvb2wgcGFyc2VfYmxhY2tsaXN0KHN0cnVjdCByZWdleF9saXN0ICpleGNs dWRlX3JlZ2V4ZXMsIGNoYXIgKmJsYWNrbGlzdF9maWxlbmFtZSkKPiArewo+ICsJRklMRSAqZjsK PiArCWNoYXIgKmxpbmUgPSBOVUxMOwo+ICsJc2l6ZV90IGxpbmVfbGVuID0gMDsKPiArCWJvb2wg c3RhdHVzOwo+ICsKPiArCgpZb3UgaGF2ZSBhbiBleHRyYSBuZXdsaW5lIGhlcmUuCgo+ICsJaWYg KChmID0gZm9wZW4oYmxhY2tsaXN0X2ZpbGVuYW1lLCAiciIpKSA9PSBOVUxMKSB7Cj4gKwkJZnBy aW50ZihzdGRlcnIsICJDYW5ub3Qgb3BlbiBibGFja2xpc3QgZmlsZSAlc1xuIiwgYmxhY2tsaXN0 X2ZpbGVuYW1lKTsKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwl9Cj4gKwl3aGlsZSAoMSkgewo+ICsJ CXNpemVfdCBzdHJfc2l6ZSA9IDAsIGlkeCA9IDA7Cj4gKwo+ICsJCWlmIChnZXRsaW5lKCZsaW5l LCAmbGluZV9sZW4sIGYpID09IC0xKSB7Cj4gKwkJCWlmIChlcnJubyA9PSBFSU5UUikKPiArCQkJ CWNvbnRpbnVlOwo+ICsJCQllbHNlCj4gKwkJCQlicmVhazsKPiArCQl9Cj4gKwo+ICsJCXdoaWxl ICh0cnVlKSB7Cj4gKwkJCWlmKGxpbmVbaWR4XT09J1xuJyB8fAo+ICsJCQkgICBsaW5lW2lkeF09 PScjJyAgfHwgLyogIyBzdGFydHMgYSBjb21tZW50ICovCj4gKwkJCSAgIGxpbmVbaWR4XT09J1ww JykKPiArCQkJCWJyZWFrOwo+ICsJCQlpZHgrKzsKPiArCQkJaWYgKCFpc3NwYWNlKGxpbmVbc3Ry X3NpemVdKSkKPiArCQkJCXN0cl9zaXplID0gaWR4Owo+ICsJCQl9Cj4gKwkJaWYgKHN0cl9zaXpl ID4gMCkgewo+ICsJCQljaGFyICogdGVzdF9yZWdleCA9IHN0cm5kdXAobGluZSwgc3RyX3NpemUp Owo+ICsJCQlzdGF0dXMgPSBhZGRfcmVnZXgoZXhjbHVkZV9yZWdleGVzLCB0ZXN0X3JlZ2V4KTsK PiArCQkJaWYoIXN0YXR1cyl7Cj4gKwkJCQlicmVhazsKPiArCQkJfQo+ICsJCX0KClRoZXJlJ3Mg c29tZXRoaW5nIGluIHRoaXMgcGFyc2luZyBjb2RlIHRoYXQgZmVlbHMgZnVua3kgYnV0IGFzIGxv bmcgYXMKaXQgd29ya3MgKG1vcmUgb24gdGhhdCBsYXRlcikuLi4KCj4gKwl9Cj4gKwo+ICsJZnJl ZShsaW5lKTsKPiArCWZjbG9zZShmKTsKPiArCXJldHVybiBzdGF0dXM7Cj4gK30KPiArCj4gIHN0 YXRpYyB2b2lkIGZyZWVfcmVnZXhlcyhzdHJ1Y3QgcmVnZXhfbGlzdCAqcmVnZXhlcykKPiAgewo+ ICAJc2l6ZV90IGk7Cj4gQEAgLTI3Miw2ICszMjUsOCBAQCBib29sIHBhcnNlX29wdGlvbnMoaW50 IGFyZ2MsIGNoYXIgKiphcmd2LAo+ICAJCXsidXNlLXdhdGNoZG9nIiwgbm9fYXJndW1lbnQsIE5V TEwsIE9QVF9XQVRDSERPR30sCj4gIAkJeyJwaWdsaXQtc3R5bGUtZG1lc2ciLCBub19hcmd1bWVu dCwgTlVMTCwgT1BUX1BJR0xJVF9ETUVTR30sCj4gIAkJeyJkbWVzZy13YXJuLWxldmVsIiwgcmVx dWlyZWRfYXJndW1lbnQsIE5VTEwsIE9QVF9ETUVTR19XQVJOX0xFVkVMfSwKPiArCQl7ImJsYWNr bGlzdCIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCBPUFRfQkxBQ0tMSVNUfSwKPiArCQl7Imxp c3QtYWxsIiwgbm9fYXJndW1lbnQsIE5VTEwsIE9QVF9MSVNUX0FMTH0sCj4gIAkJeyAwLCAwLCAw LCAwfSwKPiAgCX07Cj4gIAo+IEBAIC0yODEsNyArMzM2LDcgQEAgYm9vbCBwYXJzZV9vcHRpb25z KGludCBhcmdjLCBjaGFyICoqYXJndiwKPiAgCj4gIAlzZXR0aW5ncy0+ZG1lc2dfd2Fybl9sZXZl bCA9IC0xOwo+ICAKPiAtCXdoaWxlICgoYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJobjpk dDp4OnNsOm9tIiwgbG9uZ19vcHRpb25zLCBOVUxMKSkgIT0gLTEpIHsKPiArCXdoaWxlICgoYyA9 IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJobjpkdDp4OnNsOm9tYjpMIiwgbG9uZ19vcHRpb25z LCBOVUxMKSkgIT0gLTEpIHsKPiAgCQlzd2l0Y2ggKGMpIHsKPiAgCQljYXNlIE9QVF9IRUxQOgo+ ICAJCQl1c2FnZShOVUxMLCBzdGRvdXQpOwo+IEBAIC0zNDIsNiArMzk3LDEzIEBAIGJvb2wgcGFy c2Vfb3B0aW9ucyhpbnQgYXJnYywgY2hhciAqKmFyZ3YsCj4gIAkJY2FzZSBPUFRfRE1FU0dfV0FS Tl9MRVZFTDoKPiAgCQkJc2V0dGluZ3MtPmRtZXNnX3dhcm5fbGV2ZWwgPSBhdG9pKG9wdGFyZyk7 Cj4gIAkJCWJyZWFrOwo+ICsJCWNhc2UgT1BUX0JMQUNLTElTVDoKPiArCQkJaWYgKCFwYXJzZV9i bGFja2xpc3QoJnNldHRpbmdzLT5leGNsdWRlX3JlZ2V4ZXMsIGFic29sdXRlX3BhdGgob3B0YXJn KSkpCj4gKwkJCQlnb3RvIGVycm9yOwo+ICsJCQlicmVhazsKPiArCQljYXNlIE9QVF9MSVNUX0FM TDoKPiArCQkJc2V0dGluZ3MtPmxpc3RfYWxsID0gdHJ1ZTsKPiArCQkJYnJlYWs7Cj4gIAkJY2Fz ZSAnPyc6Cj4gIAkJCXVzYWdlKE5VTEwsIHN0ZGVycik7Cj4gIAkJCWdvdG8gZXJyb3I7Cj4gQEAg LTM1NCwyMCArNDE2LDM5IEBAIGJvb2wgcGFyc2Vfb3B0aW9ucyhpbnQgYXJnYywgY2hhciAqKmFy Z3YsCj4gIAlpZiAoc2V0dGluZ3MtPmRtZXNnX3dhcm5fbGV2ZWwgPCAwKQo+ICAJCXNldHRpbmdz LT5kbWVzZ193YXJuX2xldmVsID0gNDsgLyogS0VSTl9XQVJOICovCj4gIAo+IC0Jc3dpdGNoIChh cmdjIC0gb3B0aW5kKSB7Cj4gLQljYXNlIDI6Cj4gLQkJc2V0dGluZ3MtPnRlc3Rfcm9vdCA9IGFi c29sdXRlX3BhdGgoYXJndltvcHRpbmRdKTsKPiAtCQkrK29wdGluZDsKPiAtCQkvKiBmYWxsdGhy b3VnaCAqLwo+IC0JY2FzZSAxOgo+IC0JCXNldHRpbmdzLT5yZXN1bHRzX3BhdGggPSBhYnNvbHV0 ZV9wYXRoKGFyZ3Zbb3B0aW5kXSk7Cj4gLQkJYnJlYWs7Cj4gLQljYXNlIDA6Cj4gLQkJdXNhZ2Uo IlJlc3VsdHMtcGF0aCBtaXNzaW5nIiwgc3RkZXJyKTsKPiAtCQlnb3RvIGVycm9yOwo+IC0JZGVm YXVsdDoKPiAtCQl1c2FnZSgiRXh0cmEgYXJndW1lbnRzIGFmdGVyIHJlc3VsdHMtcGF0aCIsIHN0 ZGVycik7Cj4gLQkJZ290byBlcnJvcjsKPiArCWlmIChzZXR0aW5ncy0+bGlzdF9hbGwpIHsgLyog LS1saXN0LWFsbCBkb2Vzbid0IHJlcXVyaWUgcmVzdWx0cyBwYXRoICovCgoKVHlwbywgcmVxdWly ZQoKCj4gKwkJc3dpdGNoIChhcmdjIC0gb3B0aW5kKSB7Cj4gKwkJY2FzZSAxOgo+ICsJCQlzZXR0 aW5ncy0+dGVzdF9yb290ID0gYWJzb2x1dGVfcGF0aChhcmd2W29wdGluZF0pOwo+ICsJCQkrK29w dGluZDsKPiArCQkJLyogZmFsbHRocm91Z2ggKi8KPiArCQljYXNlIDA6Cj4gKwkJCWJyZWFrOwo+ ICsJCWRlZmF1bHQ6Cj4gKwkJCXVzYWdlKCJUb28gbWFueSBhcmd1bWVudHMgZm9yIC0tbGlzdC1h bGwiLCBzdGRlcnIpOwo+ICsJCQlnb3RvIGVycm9yOwo+ICsJCX0KPiArCX0gZWxzZSB7Cj4gKwkJ c3dpdGNoIChhcmdjIC0gb3B0aW5kKSB7Cj4gKwkJY2FzZSAyOgo+ICsJCQlzZXR0aW5ncy0+dGVz dF9yb290ID0gYWJzb2x1dGVfcGF0aChhcmd2W29wdGluZF0pOwo+ICsJCQkrK29wdGluZDsKPiAr CQkJLyogZmFsbHRocm91Z2ggKi8KPiArCQljYXNlIDE6Cj4gKwkJCXNldHRpbmdzLT5yZXN1bHRz X3BhdGggPSBhYnNvbHV0ZV9wYXRoKGFyZ3Zbb3B0aW5kXSk7Cj4gKwkJCWJyZWFrOwo+ICsJCWNh c2UgMDoKPiArCQkJdXNhZ2UoIlJlc3VsdHMtcGF0aCBtaXNzaW5nIiwgc3RkZXJyKTsKPiArCQkJ Z290byBlcnJvcjsKPiArCQlkZWZhdWx0Ogo+ICsJCQl1c2FnZSgiRXh0cmEgYXJndW1lbnRzIGFm dGVyIHJlc3VsdHMtcGF0aCIsIHN0ZGVycik7Cj4gKwkJCWdvdG8gZXJyb3I7Cj4gKwkJfQo+ICsJ CWlmICghc2V0dGluZ3MtPm5hbWUpIHsKPiArCQkJY2hhciAqbmFtZSA9IHN0cmR1cChzZXR0aW5n cy0+cmVzdWx0c19wYXRoKTsKPiArCQkJc2V0dGluZ3MtPm5hbWUgPSBzdHJkdXAoYmFzZW5hbWUo bmFtZSkpOwo+ICsJCQlmcmVlKG5hbWUpOwo+ICsJCX0KClRPRE8gZm9yIGxhdGVyOiBSZWZhY3Rv ciB0aGlzIGR1cGxpY2F0ZWQgc3dpdGNoLgoKCgoKTG9va3MgZ29vZCBvdGhlcndpc2UsIGJ1dCBu YWNrIGZvciBtZXJnaW5nIGFzIG9mIHlldCwgYmVjYXVzZToKCldoaWxlIHBlcmZvcm1hbmNlIGlz IGJldHRlcjoKCiMgdGltZSAuL3NjcmlwdHMvcnVuLXRlc3RzLnNoIC1sCi4uLi4uLi4KcmVhbAkw bTUuMTg4cwp1c2VyCTBtMy44OTBzCnN5cwkwbTEuMzU0cwoKIyB0aW1lIGJ1aWxkL3J1bm5lci9p Z3RfcnVubmVyIC1MIGJ1aWxkL3Rlc3RzCi4uLi4uLi4KcmVhbAkwbTMuMDY1cwp1c2VyCTBtMi4y MjJzCnN5cwkwbTAuODk1cwoKKEkgd29uJ3QgY29tcGFyZSBsaXN0aW5nIHdpdGggYmxhY2tsaXN0 IHByb2Nlc3NpbmcsIHRoYXQncyBhIGhvcnJpYmxlCnNoZWxsIGtsdWRnZSkKCnRoZSByZXN1bHRz IGFyZSBkaWZmZXJlbnQ6CgpvcmlnaW5hbC1rbHVkZ2UudHh0IC0gYmxhY2tsaXN0LXByb2Nlc3Nl ZCB0ZXN0bGlzdCB3aXRoIGhvcnJpYmxlIHNoZWxsCmtsdWRnZQoKcnVubmVyLnR4dCAtIGlndF9y dW5uZXIgLUwgLWIgdGVzdHMvaW50ZWwtY2kvYmxhY2tsaXN0LnR4dApidWlsZC90ZXN0cywgc29y dGVkIGFuZCBkb3duY2FzZWQgdG8gY29tcGFyZSBhcHBsZXMgdG8gYXBwbGVzCgpkaWZmIC11IG9y aWdpbmFsLWtsdWRnZS50eHQgcnVubmVyLnR4dAoKK2lndEBnZW1fZXhlY19sdXRfaGFuZGxlCitp Z3RAZ2VtX2ZkX2V4aGF1c3Rpb24KK2lndEBnZW1fZ3R0X2hvZworaWd0QGdlbV9ndHRfc3BlZWQK K2lndEBnZW1fbHV0X2hhbmRsZQoraWd0QGdlbV9yaW5nX3N5bmNfbG9vcAoKVGhvc2UgYXJlIGJs YWNrbGlzdGVkIHdpdGggZS5nLgoKaWd0QGdlbV9leGVjX2x1dF9oYW5kbGUoQC4qKT8KCgpQbGVh c2UgY2hlY2sgd2hldGhlciB0aGUgZmF1bHQgaXMgZ2xpYiByZWdleCBiZWluZyB1bmFibGUgdG8g cHJvY2Vzcwp0aGF0IG9yIG91ciB1c2FnZSBvZiBpdC4KCgoKLS0gClBldHJpIExhdHZhbGEKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWls aW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2