From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7CAAF6EEFA for ; Fri, 13 Sep 2019 09:38:37 +0000 (UTC) Date: Fri, 13 Sep 2019 12:38:34 +0300 From: Petri Latvala Message-ID: <20190913093834.GN4019@platvala-desk.ger.corp.intel.com> References: <20190913091712.25594-1-chris@chris-wilson.co.uk> <20190913091917.25661-1-chris@chris-wilson.co.uk> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190913091917.25661-1-chris@chris-wilson.co.uk> Subject: Re: [igt-dev] [PATCH i-g-t] runner: Add a timestamp to each log message 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: Chris Wilson Cc: igt-dev@lists.freedesktop.org List-ID: T24gRnJpLCBTZXAgMTMsIDIwMTkgYXQgMTA6MTk6MTdBTSArMDEwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IFZlcnkgaGFuZHkgZm9yIGNvcnJlbGF0aW5nIGV2ZW50cyBiZXR3ZWVuIGRpZmZlcmVu dCBsb2dzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2ls c29uLmNvLnVrPgo+IENjOiBQZXRyaSBMYXR2YWxhIDxwZXRyaS5sYXR2YWxhQGludGVsLmNvbT4K ClJldmlld2VkLWJ5OiBQZXRyaSBMYXR2YWxhIDxwZXRyaS5sYXR2YWxhQGludGVsLmNvbT4KCgo+ IC0tLQo+ICBydW5uZXIvZXhlY3V0b3IuYyB8IDE0MSArKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCA3NyBpbnNlcnRpb25zKCsp LCA2NCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvcnVubmVyL2V4ZWN1dG9yLmMgYi9y dW5uZXIvZXhlY3V0b3IuYwo+IGluZGV4IDUyZmVlN2QxMy4uZDhiNjRhM2ZiIDEwMDY0NAo+IC0t LSBhL3J1bm5lci9leGVjdXRvci5jCj4gKysrIGIvcnVubmVyL2V4ZWN1dG9yLmMKPiBAQCAtMiw2 ICsyLDcgQEAKPiAgI2luY2x1ZGUgPGZjbnRsLmg+Cj4gICNpbmNsdWRlIDxsaW51eC93YXRjaGRv Zy5oPgo+ICAjaW5jbHVkZSA8c2lnbmFsLmg+Cj4gKyNpbmNsdWRlIDxzdGRhcmcuaD4KPiAgI2lu Y2x1ZGUgPHN0ZGlvLmg+Cj4gICNpbmNsdWRlIDxzdGRsaWIuaD4KPiAgI2luY2x1ZGUgPHN0cmlu Zy5oPgo+IEBAIC0yNiwxMyArMjcsMjkgQEAgc3RhdGljIHN0cnVjdCB7Cj4gIAlzaXplX3QgbnVt X2RvZ3M7Cj4gIH0gd2F0Y2hkb2dzOwo+ICAKPiArX19hdHRyaWJ1dGVfXygoZm9ybWF0KHByaW50 ZiwgMiwgMykpKQo+ICtzdGF0aWMgdm9pZCBvdXRmKEZJTEUgKnN0cmVhbSwgY29uc3QgY2hhciAq Zm10LCAuLi4pCj4gK3sKPiArCWludCBzYXZlZF9lcnJubyA9IGVycm5vOwo+ICsJc3RydWN0IHRp bWVzcGVjIHR2Owo+ICsJdmFfbGlzdCBhcDsKPiArCj4gKwlpZiAoY2xvY2tfZ2V0dGltZShDTE9D S19CT09UVElNRSwgJnR2KSkKPiArCQljbG9ja19nZXR0aW1lKENMT0NLX1JFQUxUSU1FLCAmdHYp Owo+ICsJZnByaW50ZihzdHJlYW0sICJbJWxkLiUwNmxkXSAiLCB0di50dl9zZWMsIHR2LnR2X25z ZWMgLyAxMDAwKTsKPiArCj4gKwl2YV9zdGFydChhcCwgZm10KTsKPiArCWVycm5vID0gc2F2ZWRf ZXJybm87Cj4gKwl2ZnByaW50ZihzdHJlYW0sIGZtdCwgYXApOwo+ICsJdmFfZW5kKGFwKTsKPiAr fQo+ICsKPiAgc3RhdGljIHZvaWQgX19jbG9zZV93YXRjaGRvZyhpbnQgZmQpCj4gIHsKPiAgCXNz aXplX3QgcmV0ID0gd3JpdGUoZmQsICJWIiwgMSk7Cj4gIAo+ICAJaWYgKHJldCA9PSAtMSkKPiAt CQlmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBzdG9wIGEgd2F0Y2hkb2c6ICVzXG4iLAo+IC0J CQlzdHJlcnJvcihlcnJubykpOwo+ICsJCW91dGYoc3RkZXJyLCAiRmFpbGVkIHRvIHN0b3AgYSB3 YXRjaGRvZzogJW1cbiIpOwo+ICAKPiAgCWNsb3NlKGZkKTsKPiAgfQo+IEBAIC00MiwxMCArNTks MTAgQEAgc3RhdGljIHZvaWQgY2xvc2Vfd2F0Y2hkb2dzKHN0cnVjdCBzZXR0aW5ncyAqc2V0dGlu Z3MpCj4gIAlzaXplX3QgaTsKPiAgCj4gIAlpZiAoc2V0dGluZ3MgJiYgc2V0dGluZ3MtPmxvZ19s ZXZlbCA+PSBMT0dfTEVWRUxfVkVSQk9TRSkKPiAtCQlwcmludGYoIkNsb3Npbmcgd2F0Y2hkb2dz XG4iKTsKPiArCQlvdXRmKHN0ZG91dCwgIkNsb3Npbmcgd2F0Y2hkb2dzXG4iKTsKPiAgCj4gIAlp ZiAoc2V0dGluZ3MgPT0gTlVMTCAmJiB3YXRjaGRvZ3MubnVtX2RvZ3MgIT0gMCkKPiAtCQlmcHJp bnRmKHN0ZGVyciwgIkNsb3Npbmcgd2F0Y2hkb2dzIGZyb20gZXhpdCBoYW5kbGVyIVxuIik7Cj4g KwkJb3V0ZihzdGRlcnIsICJDbG9zaW5nIHdhdGNoZG9ncyBmcm9tIGV4aXQgaGFuZGxlciFcbiIp Owo+ICAKPiAgCWZvciAoaSA9IDA7IGkgPCB3YXRjaGRvZ3MubnVtX2RvZ3M7IGkrKykgewo+ICAJ CV9fY2xvc2Vfd2F0Y2hkb2cod2F0Y2hkb2dzLmZkc1tpXSk7Cj4gQEAgLTczLDcgKzkwLDcgQEAg c3RhdGljIHZvaWQgaW5pdF93YXRjaGRvZ3Moc3RydWN0IHNldHRpbmdzICpzZXR0aW5ncykKPiAg CQlyZXR1cm47Cj4gIAo+ICAJaWYgKHNldHRpbmdzLT5sb2dfbGV2ZWwgPj0gTE9HX0xFVkVMX1ZF UkJPU0UpIHsKPiAtCQlwcmludGYoIkluaXRpYWxpemluZyB3YXRjaGRvZ3NcbiIpOwo+ICsJCW91 dGYoc3Rkb3V0LCAiSW5pdGlhbGl6aW5nIHdhdGNoZG9nc1xuIik7Cj4gIAl9Cj4gIAo+ICAJYXRl eGl0KGNsb3NlX3dhdGNoZG9nc19hdGV4aXQpOwo+IEBAIC04OCw3ICsxMDUsNyBAQCBzdGF0aWMg dm9pZCBpbml0X3dhdGNoZG9ncyhzdHJ1Y3Qgc2V0dGluZ3MgKnNldHRpbmdzKQo+ICAJCXdhdGNo ZG9ncy5mZHNbaV0gPSBmZDsKPiAgCj4gIAkJaWYgKHNldHRpbmdzLT5sb2dfbGV2ZWwgPj0gTE9H X0xFVkVMX1ZFUkJPU0UpCj4gLQkJCXByaW50ZigiICVzXG4iLCBuYW1lKTsKPiArCQkJb3V0Zihz dGRvdXQsICIgJXNcbiIsIG5hbWUpOwo+ICAJfQo+ICB9Cj4gIAo+IEBAIC0xMjMsMTAgKzE0MCw4 IEBAIHN0YXRpYyB2b2lkIHBpbmdfd2F0Y2hkb2dzKHZvaWQpCj4gIAo+ICAJZm9yIChpID0gMDsg aSA8IHdhdGNoZG9ncy5udW1fZG9nczsgaSsrKSB7Cj4gIAkJcmV0ID0gaW9jdGwod2F0Y2hkb2dz LmZkc1tpXSwgV0RJT0NfS0VFUEFMSVZFLCBOVUxMKTsKPiAtCj4gIAkJaWYgKHJldCA9PSAtMSkK PiAtCQkJZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gcGluZyBhIHdhdGNoZG9nOiAlc1xuIiwK PiAtCQkJCXN0cmVycm9yKGVycm5vKSk7Cj4gKwkJCW91dGYoc3RkZXJyLCAiRmFpbGVkIHRvIHBp bmcgYSB3YXRjaGRvZzogJW1cbiIpOwo+ICAJfQo+ICB9Cj4gIAo+IEBAIC0yMzcsNyArMjUyLDcg QEAgc3RhdGljIGNoYXIgKm5lZWRfdG9fYWJvcnQoY29uc3Qgc3RydWN0IHNldHRpbmdzKiBzZXR0 aW5ncykKPiAgCQkJY29udGludWU7Cj4gIAo+ICAJCWlmIChzZXR0aW5ncy0+bG9nX2xldmVsID49 IExPR19MRVZFTF9OT1JNQUwpCj4gLQkJCWZwcmludGYoc3RkZXJyLCAiQWJvcnRpbmc6ICVzXG4i LCBhYm9ydCk7Cj4gKwkJCW91dGYoc3RkZXJyLCAiQWJvcnRpbmc6ICVzXG4iLCBhYm9ydCk7Cj4g IAo+ICAJCXJldHVybiBhYm9ydDsKPiAgCX0KPiBAQCAtNDU2LDcgKzQ3MSw3IEBAIHN0YXRpYyBi b29sIGtpbGxfY2hpbGQoaW50IHNpZywgcGlkX3QgY2hpbGQpCj4gIAkgKi8KPiAgCWtpbGwoLWNo aWxkLCBzaWcpOwo+ICAJaWYgKGtpbGwoY2hpbGQsIHNpZykgJiYgZXJybm8gPT0gRVNSQ0gpIHsK PiAtCQlmcHJpbnRmKHN0ZGVyciwgIkNoaWxkIHByb2Nlc3MgZG9lcyBub3QgZXhpc3QuIFRoaXMg c2hvdWxkbid0IGhhcHBlbi5cbiIpOwo+ICsJCW91dGYoc3RkZXJyLCAiQ2hpbGQgcHJvY2VzcyBk b2VzIG5vdCBleGlzdC4gVGhpcyBzaG91bGRuJ3QgaGFwcGVuLlxuIik7Cj4gIAkJcmV0dXJuIGZh bHNlOwo+ICAJfQo+ICAKPiBAQCAtNTE4LDkgKzUzMywxMCBAQCBzdGF0aWMgaW50IG1vbml0b3Jf b3V0cHV0KHBpZF90IGNoaWxkLAo+ICAJCQl0aW1lb3V0IC89IHRpbWVvdXRfaW50ZXJ2YWxzOwo+ ICAKPiAgCQkJaWYgKHNldHRpbmdzLT5sb2dfbGV2ZWwgPj0gTE9HX0xFVkVMX1ZFUkJPU0UpIHsK PiAtCQkJCXByaW50ZigiV2F0Y2hkb2cgZG9lc24ndCBzdXBwb3J0IHRoZSB0aW1lb3V0IHdlIHJl cXVlc3RlZCAoc2hvcnRlbmVkIHRvICVkIHNlY29uZHMpLlxuIgo+IC0JCQkJICAgICAgICJVc2lu ZyAlZCBpbnRlcnZhbHMgb2YgJWQgc2Vjb25kcy5cbiIsCj4gLQkJCQkgICAgICAgd2RfdGltZW91 dCwgdGltZW91dF9pbnRlcnZhbHMsIHRpbWVvdXQpOwo+ICsJCQkJb3V0ZihzdGRvdXQsCj4gKwkJ CQkgICAgICJXYXRjaGRvZyBkb2Vzbid0IHN1cHBvcnQgdGhlIHRpbWVvdXQgd2UgcmVxdWVzdGVk IChzaG9ydGVuZWQgdG8gJWQgc2Vjb25kcykuXG4iCj4gKwkJCQkgICAgICJVc2luZyAlZCBpbnRl cnZhbHMgb2YgJWQgc2Vjb25kcy5cbiIsCj4gKwkJCQkgICAgIHdkX3RpbWVvdXQsIHRpbWVvdXRf aW50ZXJ2YWxzLCB0aW1lb3V0KTsKPiAgCQkJfQo+ICAJCX0KPiAgCX0KPiBAQCAtNTU1LDcgKzU3 MSw4IEBAIHN0YXRpYyBpbnQgbW9uaXRvcl9vdXRwdXQocGlkX3QgY2hpbGQsCj4gIAkJCXN3aXRj aCAoa2lsbGVkKSB7Cj4gIAkJCWNhc2UgMDoKPiAgCQkJCWlmIChzZXR0aW5ncy0+bG9nX2xldmVs ID49IExPR19MRVZFTF9OT1JNQUwpIHsKPiAtCQkJCQlwcmludGYoIlRpbWVvdXQuIEtpbGxpbmcg dGhlIGN1cnJlbnQgdGVzdCB3aXRoIFNJR1FVSVQuXG4iKTsKPiArCQkJCQlvdXRmKHN0ZG91dCwK PiArCQkJCQkgICAgICJUaW1lb3V0LiBLaWxsaW5nIHRoZSBjdXJyZW50IHRlc3Qgd2l0aCBTSUdR VUlULlxuIik7Cj4gIAkJCQkJZmZsdXNoKHN0ZG91dCk7Cj4gIAkJCQl9Cj4gIAo+IEBAIC01NzMs NyArNTkwLDggQEAgc3RhdGljIGludCBtb25pdG9yX291dHB1dChwaWRfdCBjaGlsZCwKPiAgCQkJ CWJyZWFrOwo+ICAJCQljYXNlIFNJR1FVSVQ6Cj4gIAkJCQlpZiAoc2V0dGluZ3MtPmxvZ19sZXZl bCA+PSBMT0dfTEVWRUxfTk9STUFMKSB7Cj4gLQkJCQkJcHJpbnRmKCJUaW1lb3V0LiBLaWxsaW5n IHRoZSBjdXJyZW50IHRlc3Qgd2l0aCBTSUdLSUxMLlxuIik7Cj4gKwkJCQkJb3V0ZihzdGRvdXQs Cj4gKwkJCQkJICAgICAiVGltZW91dC4gS2lsbGluZyB0aGUgY3VycmVudCB0ZXN0IHdpdGggU0lH S0lMTC5cbiIpOwo+ICAJCQkJCWZmbHVzaChzdGRvdXQpOwo+ICAJCQkJfQo+ICAKPiBAQCAtNTk3 LDggKzYxNSw4IEBAIHN0YXRpYyBpbnQgbW9uaXRvcl9vdXRwdXQocGlkX3QgY2hpbGQsCj4gIAo+ ICAJCQkJLyogTm90aGluZyB0aGF0IGNhbiBiZSBkb25lLCByZWFsbHkuIExldCdzIHRlbGwgdGhl IGNhbGxlciB3ZSB3YW50IHRvIGFib3J0LiAqLwo+ICAJCQkJaWYgKHNldHRpbmdzLT5sb2dfbGV2 ZWwgPj0gTE9HX0xFVkVMX05PUk1BTCkgewo+IC0JCQkJCWZwcmludGYoc3RkZXJyLCAiQ2hpbGQg cmVmdXNlcyB0byBkaWUsIHRhaW50ZWQgJWx4LiBBYm9ydGluZy5cbiIsCj4gLQkJCQkJCXRhaW50 cyk7Cj4gKwkJCQkJb3V0ZihzdGRlcnIsICJDaGlsZCByZWZ1c2VzIHRvIGRpZSwgdGFpbnRlZCAl bHguIEFib3J0aW5nLlxuIiwKPiArCQkJCQkgICAgIHRhaW50cyk7Cj4gIAkJCQl9Cj4gIAkJCQlj bG9zZV93YXRjaGRvZ3Moc2V0dGluZ3MpOwo+ICAJCQkJZnJlZShvdXRidWYpOwo+IEBAIC02MjEs OCArNjM5LDcgQEAgc3RhdGljIGludCBtb25pdG9yX291dHB1dChwaWRfdCBjaGlsZCwKPiAgCQkJ cyA9IHJlYWQob3V0ZmQsIGJ1Ziwgc2l6ZW9mKGJ1ZikpOwo+ICAJCQlpZiAocyA8PSAwKSB7Cj4g IAkJCQlpZiAocyA8IDApIHsKPiAtCQkJCQlmcHJpbnRmKHN0ZGVyciwgIkVycm9yIHJlYWRpbmcg dGVzdCdzIHN0ZG91dDogJXNcbiIsCj4gLQkJCQkJCXN0cmVycm9yKGVycm5vKSk7Cj4gKwkJCQkJ b3V0ZihzdGRlcnIsICJFcnJvciByZWFkaW5nIHRlc3QncyBzdGRvdXQ6ICVtXG4iKTsKPiAgCQkJ CX0KPiAgCj4gIAkJCQljbG9zZShvdXRmZCk7Cj4gQEAgLTY4OSw4ICs3MDYsNyBAQCBzdGF0aWMg aW50IG1vbml0b3Jfb3V0cHV0KHBpZF90IGNoaWxkLAo+ICAJCQlzID0gcmVhZChlcnJmZCwgYnVm LCBzaXplb2YoYnVmKSk7Cj4gIAkJCWlmIChzIDw9IDApIHsKPiAgCQkJCWlmIChzIDwgMCkgewo+ IC0JCQkJCWZwcmludGYoc3RkZXJyLCAiRXJyb3IgcmVhZGluZyB0ZXN0J3Mgc3RkZXJyOiAlc1xu IiwKPiAtCQkJCQkJc3RyZXJyb3IoZXJybm8pKTsKPiArCQkJCQlvdXRmKHN0ZGVyciwgIkVycm9y IHJlYWRpbmcgdGVzdCdzIHN0ZGVycjogJW1cbiIpOwo+ICAJCQkJfQo+ICAJCQkJY2xvc2UoZXJy ZmQpOwo+ICAJCQkJZXJyZmQgPSAtMTsKPiBAQCAtNzA2LDEyICs3MjIsMTEgQEAgc3RhdGljIGlu dCBtb25pdG9yX291dHB1dChwaWRfdCBjaGlsZCwKPiAgCQkJcyA9IHJlYWQoa21zZ2ZkLCBidWYs IHNpemVvZihidWYpKTsKPiAgCQkJaWYgKHMgPCAwKSB7Cj4gIAkJCQlpZiAoZXJybm8gIT0gRVBJ UEUgJiYgZXJybm8gIT0gRUlOVkFMKSB7Cj4gLQkJCQkJZnByaW50ZihzdGRlcnIsICJFcnJvciBy ZWFkaW5nIGZyb20ga21zZywgc3RvcHBpbmcgbW9uaXRvcmluZzogJXNcbiIsCj4gLQkJCQkJCXN0 cmVycm9yKGVycm5vKSk7Cj4gKwkJCQkJb3V0ZihzdGRlcnIsICJFcnJvciByZWFkaW5nIGZyb20g a21zZywgc3RvcHBpbmcgbW9uaXRvcmluZzogJW1cbiIpOwo+ICAJCQkJCWNsb3NlKGttc2dmZCk7 Cj4gIAkJCQkJa21zZ2ZkID0gLTE7Cj4gIAkJCQl9IGVsc2UgaWYgKGVycm5vID09IEVJTlZBTCkg ewo+IC0JCQkJCWZwcmludGYoc3RkZXJyLCAiV2FybmluZzogQnVmZmVyIHRvbyBzbWFsbCBmb3Ig a2VybmVsIGxvZyByZWNvcmQsIHJlY29yZCBsb3N0LlxuIik7Cj4gKwkJCQkJb3V0ZihzdGRlcnIs ICJXYXJuaW5nOiBCdWZmZXIgdG9vIHNtYWxsIGZvciBrZXJuZWwgbG9nIHJlY29yZCwgcmVjb3Jk IGxvc3QuXG4iKTsKPiAgCQkJCX0KPiAgCQkJfSBlbHNlIHsKPiAgCQkJCXdyaXRlKG91dHB1dHNb X0ZfRE1FU0ddLCBidWYsIHMpOwo+IEBAIC03MjYsMTIgKzc0MSwxMSBAQCBzdGF0aWMgaW50IG1v bml0b3Jfb3V0cHV0KHBpZF90IGNoaWxkLAo+ICAKPiAgCQkJcyA9IHJlYWQoc2lnZmQsICZzaWdp bmZvLCBzaXplb2Yoc2lnaW5mbykpOwo+ICAJCQlpZiAocyA8IDApIHsKPiAtCQkJCWZwcmludGYo c3RkZXJyLCAiRXJyb3IgcmVhZGluZyBmcm9tIHNpZ25hbGZkOiAlc1xuIiwKPiAtCQkJCQlzdHJl cnJvcihlcnJubykpOwo+ICsJCQkJb3V0ZihzdGRlcnIsICJFcnJvciByZWFkaW5nIGZyb20gc2ln bmFsZmQ6ICVtXG4iKTsKPiAgCQkJCWNvbnRpbnVlOwo+ICAJCQl9IGVsc2UgaWYgKHNpZ2luZm8u c3NpX3NpZ25vID09IFNJR0NITEQpIHsKPiAgCQkJCWlmIChjaGlsZCAhPSB3YWl0cGlkKGNoaWxk LCAmc3RhdHVzLCBXTk9IQU5HKSkgewo+IC0JCQkJCWZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRv IHJlYXAgY2hpbGRcbiIpOwo+ICsJCQkJCW91dGYoc3RkZXJyLCAiRmFpbGVkIHRvIHJlYXAgY2hp bGRcbiIpOwo+ICAJCQkJCXN0YXR1cyA9IDk5OTk7Cj4gIAkJCQl9IGVsc2UgaWYgKFdJRkVYSVRF RChzdGF0dXMpKSB7Cj4gIAkJCQkJc3RhdHVzID0gV0VYSVRTVEFUVVMoc3RhdHVzKTsKPiBAQCAt NzQ2LDggKzc2MCw5IEBAIHN0YXRpYyBpbnQgbW9uaXRvcl9vdXRwdXQocGlkX3QgY2hpbGQsCj4g IAkJCX0gZWxzZSB7Cj4gIAkJCQkvKiBXZSdyZSBkeWluZywgc28gd2UncmUgdGFraW5nIHRoZW0g d2l0aCB1cyAqLwo+ICAJCQkJaWYgKHNldHRpbmdzLT5sb2dfbGV2ZWwgPj0gTE9HX0xFVkVMX05P Uk1BTCkKPiAtCQkJCQlwcmludGYoIkFib3J0IHJlcXVlc3RlZCB2aWEgJXMsIHRlcm1pbmF0aW5n IGNoaWxkcmVuXG4iLAo+IC0JCQkJCSAgICAgICBzdHJzaWduYWwoc2lnaW5mby5zc2lfc2lnbm8p KTsKPiArCQkJCQlvdXRmKHN0ZG91dCwKPiArCQkJCQkgICAgICJBYm9ydCByZXF1ZXN0ZWQgdmlh ICVzLCB0ZXJtaW5hdGluZyBjaGlsZHJlblxuIiwKPiArCQkJCQkgICAgIHN0cnNpZ25hbChzaWdp bmZvLnNzaV9zaWdubykpOwo+ICAKPiAgCQkJCWFib3J0aW5nID0gdHJ1ZTsKPiAgCQkJCXRpbWVv dXQgPSAyOwo+IEBAIC04MzYsNyArODUxLDcgQEAgZXhlY3V0ZV90ZXN0X3Byb2Nlc3MoaW50IG91 dGZkLCBpbnQgZXJyZmQsCj4gIAl9Cj4gIAo+ICAJZXhlY3YoYXJndlswXSwgYXJndik7Cj4gLQlm cHJpbnRmKHN0ZGVyciwgIkNhbm5vdCBleGVjdXRlICVzXG4iLCBhcmd2WzBdKTsKPiArCW91dGYo c3RkZXJyLCAiQ2Fubm90IGV4ZWN1dGUgJXNcbiIsIGFyZ3ZbMF0pOwo+ICAJZXhpdChJR1RfRVhJ VF9JTlZBTElEKTsKPiAgfQo+ICAKPiBAQCAtODYxLDcgKzg3Niw3IEBAIHN0YXRpYyB2b2lkIHBy aW50X3RpbWVfbGVmdChzdHJ1Y3QgZXhlY3V0ZV9zdGF0ZSAqc3RhdGUsCj4gIAkJcmV0dXJuOwo+ ICAKPiAgCXdpZHRoID0gZGlnaXRzKHNldHRpbmdzLT5vdmVyYWxsX3RpbWVvdXQpOwo+IC0JcHJp bnRmKCIoJSouMGZzIGxlZnQpICIsIHdpZHRoLCBzdGF0ZS0+dGltZV9sZWZ0KTsKPiArCW91dGYo c3Rkb3V0LCAiKCUqLjBmcyBsZWZ0KSAiLCB3aWR0aCwgc3RhdGUtPnRpbWVfbGVmdCk7Cj4gIH0K PiAgCj4gIHN0YXRpYyBjaGFyICplbnRyeV9kaXNwbGF5X25hbWUoc3RydWN0IGpvYl9saXN0X2Vu dHJ5ICplbnRyeSkKPiBAQCAtOTIzLDEyICs5MzgsMTIgQEAgc3RhdGljIGludCBleGVjdXRlX25l eHRfZW50cnkoc3RydWN0IGV4ZWN1dGVfc3RhdGUgKnN0YXRlLAo+ICAJc25wcmludGYobmFtZSwg c2l6ZW9mKG5hbWUpLCAiJXpkIiwgaWR4KTsKPiAgCW1rZGlyYXQocmVzZGlyZmQsIG5hbWUsIDA3 NzcpOwo+ICAJaWYgKChkaXJmZCA9IG9wZW5hdChyZXNkaXJmZCwgbmFtZSwgT19ESVJFQ1RPUlkg fCBPX1JET05MWSB8IE9fQ0xPRVhFQykpIDwgMCkgewo+IC0JCWZwcmludGYoc3RkZXJyLCAiRXJy b3IgYWNjZXNzaW5nIGluZGl2aWR1YWwgdGVzdCByZXN1bHQgZGlyZWN0b3J5XG4iKTsKPiArCQlv dXRmKHN0ZGVyciwgIkVycm9yIGFjY2Vzc2luZyBpbmRpdmlkdWFsIHRlc3QgcmVzdWx0IGRpcmVj dG9yeVxuIik7Cj4gIAkJcmV0dXJuIC0xOwo+ICAJfQo+ICAKPiAgCWlmICghb3Blbl9vdXRwdXRf ZmlsZXMoZGlyZmQsIG91dHB1dHMsIHRydWUpKSB7Cj4gLQkJZnByaW50ZihzdGRlcnIsICJFcnJv ciBvcGVuaW5nIG91dHB1dCBmaWxlc1xuIik7Cj4gKwkJb3V0ZihzdGRlcnIsICJFcnJvciBvcGVu aW5nIG91dHB1dCBmaWxlc1xuIik7Cj4gIAkJcmVzdWx0ID0gLTE7Cj4gIAkJZ290byBvdXRfZGly ZmQ7Cj4gIAl9Cj4gQEAgLTkzOSwxMyArOTU0LDEzIEBAIHN0YXRpYyBpbnQgZXhlY3V0ZV9uZXh0 X2VudHJ5KHN0cnVjdCBleGVjdXRlX3N0YXRlICpzdGF0ZSwKPiAgCX0KPiAgCj4gIAlpZiAocGlw ZShvdXRwaXBlKSB8fCBwaXBlKGVycnBpcGUpKSB7Cj4gLQkJZnByaW50ZihzdGRlcnIsICJFcnJv ciBjcmVhdGluZyBwaXBlczogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7Cj4gKwkJb3V0ZihzdGRl cnIsICJFcnJvciBjcmVhdGluZyBwaXBlczogJW1cbiIpOwo+ICAJCXJlc3VsdCA9IC0xOwo+ICAJ CWdvdG8gb3V0X3BpcGU7Cj4gIAl9Cj4gIAo+ICAJaWYgKChrbXNnZmQgPSBvcGVuKCIvZGV2L2tt c2ciLCBPX1JET05MWSB8IE9fQ0xPRVhFQykpIDwgMCkgewo+IC0JCWZwcmludGYoc3RkZXJyLCAi V2FybmluZzogQ2Fubm90IG9wZW4gL2Rldi9rbXNnXG4iKTsKPiArCQlvdXRmKHN0ZGVyciwgIldh cm5pbmc6IENhbm5vdCBvcGVuIC9kZXYva21zZ1xuIik7Cj4gIAl9IGVsc2Ugewo+ICAJCS8qIFRP RE86IENoZWNraW5nIG9mIGFib3J0IGNvbmRpdGlvbnMgaW4gcHJlLWV4ZWN1dGUgZG1lc2cgKi8K PiAgCQlsc2VlayhrbXNnZmQsIDAsIFNFRUtfRU5EKTsKPiBAQCAtOTU1LDE1ICs5NzAsMTUgQEAg c3RhdGljIGludCBleGVjdXRlX25leHRfZW50cnkoc3RydWN0IGV4ZWN1dGVfc3RhdGUgKnN0YXRl LAo+ICAJaWYgKHNldHRpbmdzLT5sb2dfbGV2ZWwgPj0gTE9HX0xFVkVMX05PUk1BTCkgewo+ICAJ CWNoYXIgKmRpc3BsYXluYW1lOwo+ICAJCWludCB3aWR0aCA9IGRpZ2l0cyh0b3RhbCk7Cj4gLQkJ cHJpbnRmKCJbJTAqemQvJTAqemRdICIsIHdpZHRoLCBpZHggKyAxLCB3aWR0aCwgdG90YWwpOwo+ ICsJCW91dGYoc3Rkb3V0LCAiWyUwKnpkLyUwKnpkXSAiLCB3aWR0aCwgaWR4ICsgMSwgd2lkdGgs IHRvdGFsKTsKPiAgCj4gIAkJcHJpbnRfdGltZV9sZWZ0KHN0YXRlLCBzZXR0aW5ncyk7Cj4gIAo+ ICAJCWRpc3BsYXluYW1lID0gZW50cnlfZGlzcGxheV9uYW1lKGVudHJ5KTsKPiAtCQlwcmludGYo IiVzIiwgZGlzcGxheW5hbWUpOwo+ICsJCW91dGYoc3Rkb3V0LCAiJXMiLCBkaXNwbGF5bmFtZSk7 Cj4gIAkJZnJlZShkaXNwbGF5bmFtZSk7Cj4gIAo+IC0JCXByaW50ZigiXG4iKTsKPiArCQlvdXRm KHN0ZG91dCwgIlxuIik7Cj4gIAl9Cj4gIAo+ICAJLyoKPiBAQCAtOTc1LDcgKzk5MCw3IEBAIHN0 YXRpYyBpbnQgZXhlY3V0ZV9uZXh0X2VudHJ5KHN0cnVjdCBleGVjdXRlX3N0YXRlICpzdGF0ZSwK PiAgCj4gIAljaGlsZCA9IGZvcmsoKTsKPiAgCWlmIChjaGlsZCA8IDApIHsKPiAtCQlmcHJpbnRm KHN0ZGVyciwgIkZhaWxlZCB0byBmb3JrOiAlc1xuIiwgc3RyZXJyb3IoZXJybm8pKTsKPiArCQlv dXRmKHN0ZGVyciwgIkZhaWxlZCB0byBmb3JrOiAlbVxuIik7Cj4gIAkJcmVzdWx0ID0gLTE7Cj4g IAkJZ290byBvdXRfa21zZ2ZkOwo+ICAJfSBlbHNlIGlmIChjaGlsZCA9PSAwKSB7Cj4gQEAgLTEw MjcsOSArMTA0Miw4IEBAIHN0YXRpYyBib29sIGNsZWFyX3Rlc3RfcmVzdWx0X2RpcmVjdG9yeShp bnQgZGlyZmQpCj4gIAo+ICAJZm9yIChpID0gMDsgaSA8IF9GX0xBU1Q7IGkrKykgewo+ICAJCWlm IChyZW1vdmVfZmlsZShkaXJmZCwgZmlsZW5hbWVzW2ldKSkgewo+IC0JCQlmcHJpbnRmKHN0ZGVy ciwgIkVycm9yIGRlbGV0aW5nICVzIGZyb20gdGVzdCByZXN1bHQgZGlyZWN0b3J5OiAlc1xuIiwK PiAtCQkJCWZpbGVuYW1lc1tpXSwKPiAtCQkJCXN0cmVycm9yKGVycm5vKSk7Cj4gKwkJCW91dGYo c3RkZXJyLCAiRXJyb3IgZGVsZXRpbmcgJXMgZnJvbSB0ZXN0IHJlc3VsdCBkaXJlY3Rvcnk6ICVt XG4iLAo+ICsJCQkgICAgIGZpbGVuYW1lc1tpXSk7Cj4gIAkJCXJldHVybiBmYWxzZTsKPiAgCQl9 Cj4gIAl9Cj4gQEAgLTEwNDgsNyArMTA2Miw3IEBAIHN0YXRpYyBib29sIGNsZWFyX29sZF9yZXN1 bHRzKGNoYXIgKnBhdGgpCj4gIAkJCXJldHVybiB0cnVlOwo+ICAJCX0KPiAgCj4gLQkJZnByaW50 ZihzdGRlcnIsICJFcnJvciBjbGVhcmluZyBvbGQgcmVzdWx0czogJXNcbiIsIHN0cmVycm9yKGVy cm5vKSk7Cj4gKwkJb3V0ZihzdGRlcnIsICJFcnJvciBjbGVhcmluZyBvbGQgcmVzdWx0czogJW1c biIpOwo+ICAJCXJldHVybiBmYWxzZTsKPiAgCX0KPiAgCj4gQEAgLTEwNTcsNyArMTA3MSw3IEBA IHN0YXRpYyBib29sIGNsZWFyX29sZF9yZXN1bHRzKGNoYXIgKnBhdGgpCj4gIAkgICAgcmVtb3Zl X2ZpbGUoZGlyZmQsICJlbmR0aW1lLnR4dCIpIHx8Cj4gIAkgICAgcmVtb3ZlX2ZpbGUoZGlyZmQs ICJhYm9ydGVkLnR4dCIpKSB7Cj4gIAkJY2xvc2UoZGlyZmQpOwo+IC0JCWZwcmludGYoc3RkZXJy LCAiRXJyb3IgY2xlYXJpbmcgb2xkIHJlc3VsdHM6ICVzXG4iLCBzdHJlcnJvcihlcnJubykpOwo+ ICsJCW91dGYoc3RkZXJyLCAiRXJyb3IgY2xlYXJpbmcgb2xkIHJlc3VsdHM6ICVtXG4iKTsKPiAg CQlyZXR1cm4gZmFsc2U7Cj4gIAl9Cj4gIAo+IEBAIC0xMDc2LDkgKzEwOTAsOSBAQCBzdGF0aWMg Ym9vbCBjbGVhcl9vbGRfcmVzdWx0cyhjaGFyICpwYXRoKQo+ICAJCX0KPiAgCQljbG9zZShyZXNk aXJmZCk7Cj4gIAkJaWYgKHVubGlua2F0KGRpcmZkLCBuYW1lLCBBVF9SRU1PVkVESVIpKSB7Cj4g LQkJCWZwcmludGYoc3RkZXJyLAo+IC0JCQkJIldhcm5pbmc6IFJlc3VsdCBkaXJlY3RvcnkgJXMg Y29udGFpbnMgZXh0cmEgZmlsZXNcbiIsCj4gLQkJCQluYW1lKTsKPiArCQkJb3V0ZihzdGRlcnIs Cj4gKwkJCSAgICAgIldhcm5pbmc6IFJlc3VsdCBkaXJlY3RvcnkgJXMgY29udGFpbnMgZXh0cmEg ZmlsZXNcbiIsCj4gKwkJCSAgICAgbmFtZSk7Cj4gIAkJfQo+ICAJfQo+ICAKPiBAQCAtMTIzNCwx MSArMTI0OCwxMSBAQCBzdGF0aWMgdm9pZCBvb21faW1tb3J0YWwodm9pZCkKPiAgCj4gIAlmZCA9 IG9wZW4oIi9wcm9jL3NlbGYvb29tX3Njb3JlX2FkaiIsIE9fV1JPTkxZKTsKPiAgCWlmIChmZCA8 IDApIHsKPiAtCQlmcHJpbnRmKHN0ZGVyciwgIldhcm5pbmc6IENhbm5vdCBhZGp1c3Qgb29tIHNj b3JlLlxuIik7Cj4gKwkJb3V0ZihzdGRlcnIsICJXYXJuaW5nOiBDYW5ub3QgYWRqdXN0IG9vbSBz Y29yZS5cbiIpOwo+ICAJCXJldHVybjsKPiAgCX0KPiAgCWlmICh3cml0ZShmZCwgbmV2ZXJfa2ls bCwgc2l6ZW9mKG5ldmVyX2tpbGwpKSAhPSBzaXplb2YobmV2ZXJfa2lsbCkpCj4gLQkJZnByaW50 ZihzdGRlcnIsICJXYXJuaW5nOiBBZGp1c3Rpbmcgb29tIHNjb3JlIGZhaWxlZC5cbiIpOwo+ICsJ CW91dGYoc3RkZXJyLCAiV2FybmluZzogQWRqdXN0aW5nIG9vbSBzY29yZSBmYWlsZWQuXG4iKTsK PiAgCj4gIAljbG9zZShmZCk7Cj4gIH0KPiBAQCAtMTI1MywyMiArMTI2NywyMiBAQCBzdGF0aWMg Ym9vbCBzaG91bGRfZGllX2JlY2F1c2Vfc2lnbmFsKGludCBzaWdmZCkKPiAgCj4gIAlpZiAocmV0 ICE9IDApIHsKPiAgCQlpZiAocmV0ID09IC0xKSB7Cj4gLQkJCWZwcmludGYoc3RkZXJyLCAiUG9s bCBvbiBzaWduYWxmZCBmYWlsZWQgd2l0aCAlc1xuIiwgc3RyZXJyb3IoZXJybm8pKTsKPiArCQkJ b3V0ZihzdGRlcnIsICJQb2xsIG9uIHNpZ25hbGZkIGZhaWxlZCB3aXRoICVtXG4iKTsKPiAgCQkJ cmV0dXJuIHRydWU7IC8qIHNvbWV0aGluZyBpcyB3cm9uZywgbGV0J3MgZGllICovCj4gIAkJfQo+ ICAKPiAgCQlyZXQgPSByZWFkKHNpZ2ZkLCAmc2lnaW5mbywgc2l6ZW9mKHNpZ2luZm8pKTsKPiAg Cj4gIAkJaWYgKHJldCA9PSAtMSkgewo+IC0JCQlmcHJpbnRmKHN0ZGVyciwgIkVycm9yIHJlYWRp bmcgZnJvbSBzaWduYWxmZDogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7Cj4gKwkJCW91dGYoc3Rk ZXJyLCAiRXJyb3IgcmVhZGluZyBmcm9tIHNpZ25hbGZkOiAlbVxuIik7Cj4gIAkJCXJldHVybiBm YWxzZTsgLyogd2UgbWF5IHdhbnQgdG8gcmV0cnkgbGF0ZXIgKi8KPiAgCQl9Cj4gIAo+ICAJCWlm IChzaWdpbmZvLnNzaV9zaWdubyA9PSBTSUdDSExEKSB7Cj4gLQkJCWZwcmludGYoc3RkZXJyLCAi UnVubmVyIGdvdCBzdHJheSBTSUdDSExEIHdoaWxlIG5vdCBleGVjdXRpbmcgYW55IHRlc3RzLlxu Iik7Cj4gKwkJCW91dGYoc3RkZXJyLCAiUnVubmVyIGdvdCBzdHJheSBTSUdDSExEIHdoaWxlIG5v dCBleGVjdXRpbmcgYW55IHRlc3RzLlxuIik7Cj4gIAkJfSBlbHNlIHsKPiAtCQkJZnByaW50Zihz dGRlcnIsICJSdW5uZXIgaXMgYmVpbmcga2lsbGVkIGJ5ICVzXG4iLAo+IC0JCQkJc3Ryc2lnbmFs KHNpZ2luZm8uc3NpX3NpZ25vKSk7Cj4gKwkJCW91dGYoc3RkZXJyLCAiUnVubmVyIGlzIGJlaW5n IGtpbGxlZCBieSAlc1xuIiwKPiArCQkJICAgICBzdHJzaWduYWwoc2lnaW5mby5zc2lfc2lnbm8p KTsKPiAgCQkJcmV0dXJuIHRydWU7Cj4gIAkJfQo+ICAKPiBAQCAtMTI4OSwyOCArMTMwMywyNyBA QCBib29sIGV4ZWN1dGUoc3RydWN0IGV4ZWN1dGVfc3RhdGUgKnN0YXRlLAo+ICAJYm9vbCBzdGF0 dXMgPSB0cnVlOwo+ICAKPiAgCWlmIChzdGF0ZS0+ZHJ5KSB7Cj4gLQkJcHJpbnRmKCJEcnkgcnVu LCBub3QgZXhlY3V0aW5nLiBJbnZva2UgaWd0X3Jlc3VtZSBpZiB5b3Ugd2FudCB0byBleGVjdXRl LlxuIik7Cj4gKwkJb3V0ZihzdGRvdXQsICJEcnkgcnVuLCBub3QgZXhlY3V0aW5nLiBJbnZva2Ug aWd0X3Jlc3VtZSBpZiB5b3Ugd2FudCB0byBleGVjdXRlLlxuIik7Cj4gIAkJcmV0dXJuIHRydWU7 Cj4gIAl9Cj4gIAo+ICAJaWYgKChyZXNkaXJmZCA9IG9wZW4oc2V0dGluZ3MtPnJlc3VsdHNfcGF0 aCwgT19ESVJFQ1RPUlkgfCBPX1JET05MWSkpIDwgMCkgewo+ICAJCS8qIEluaXRpYWxpemUgc3Rh dGUgc2hvdWxkIGhhdmUgZG9uZSB0aGlzICovCj4gLQkJZnByaW50ZihzdGRlcnIsICJFcnJvcjog RmFpbHVyZSBvcGVuaW5nIHJlc3VsdHMgcGF0aCAlc1xuIiwKPiAtCQkJc2V0dGluZ3MtPnJlc3Vs dHNfcGF0aCk7Cj4gKwkJb3V0ZihzdGRlcnIsICJFcnJvcjogRmFpbHVyZSBvcGVuaW5nIHJlc3Vs dHMgcGF0aCAlc1xuIiwKPiArCQkgICAgIHNldHRpbmdzLT5yZXN1bHRzX3BhdGgpOwo+ICAJCXJl dHVybiBmYWxzZTsKPiAgCX0KPiAgCj4gIAlpZiAoKHRlc3RkaXJmZCA9IG9wZW4oc2V0dGluZ3Mt PnRlc3Rfcm9vdCwgT19ESVJFQ1RPUlkgfCBPX1JET05MWSkpIDwgMCkgewo+IC0JCWZwcmludGYo c3RkZXJyLCAiRXJyb3I6IEZhaWx1cmUgb3BlbmluZyB0ZXN0IHJvb3QgJXNcbiIsCj4gLQkJCXNl dHRpbmdzLT50ZXN0X3Jvb3QpOwo+ICsJCW91dGYoc3RkZXJyLCAiRXJyb3I6IEZhaWx1cmUgb3Bl bmluZyB0ZXN0IHJvb3QgJXNcbiIsCj4gKwkJICAgICBzZXR0aW5ncy0+dGVzdF9yb290KTsKPiAg CQljbG9zZShyZXNkaXJmZCk7Cj4gIAkJcmV0dXJuIGZhbHNlOwo+ICAJfQo+ICAKPiAgCS8qIFRP RE86IE9uIHJlc3VtZSwgZG9uJ3QgcmV3cml0ZSwgdmVyaWZ5IHRoYXQgY29udGVudCBtYXRjaGVz IGN1cnJlbnQgaW5zdGVhZCAqLwo+ICAJaWYgKCh1bmFtZWZkID0gb3BlbmF0KHJlc2RpcmZkLCAi dW5hbWUudHh0IiwgT19DUkVBVCB8IE9fV1JPTkxZIHwgT19UUlVOQywgMDY2NikpIDwgMCkgewo+ IC0JCWZwcmludGYoc3RkZXJyLCAiRXJyb3I6IEZhaWx1cmUgb3BlbmluZyB1bmFtZS50eHQ6ICVz XG4iLAo+IC0JCQlzdHJlcnJvcihlcnJubykpOwo+ICsJCW91dGYoc3RkZXJyLCAiRXJyb3I6IEZh aWx1cmUgb3BlbmluZyB1bmFtZS50eHQ6ICVtXG4iKTsKPiAgCQljbG9zZSh0ZXN0ZGlyZmQpOwo+ ICAJCWNsb3NlKHJlc2RpcmZkKTsKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gQEAgLTEzMzksNyArMTM1 Miw3IEBAIGJvb2wgZXhlY3V0ZShzdHJ1Y3QgZXhlY3V0ZV9zdGF0ZSAqc3RhdGUsCj4gIAo+ICAJ aWYgKHNpZ2ZkIDwgMCkgewo+ICAJCS8qIFRPRE86IEhhbmRsZSBiZXR0ZXIgKi8KPiAtCQlmcHJp bnRmKHN0ZGVyciwgIkNhbm5vdCBtYXNrIHNpZ25hbHNcbiIpOwo+ICsJCW91dGYoc3RkZXJyLCAi Q2Fubm90IG1hc2sgc2lnbmFsc1xuIik7Cj4gIAkJc3RhdHVzID0gZmFsc2U7Cj4gIAkJZ290byBl bmQ7Cj4gIAl9Cj4gQEAgLTE0MDEsNyArMTQxNCw3IEBAIGJvb2wgZXhlY3V0ZShzdHJ1Y3QgZXhl Y3V0ZV9zdGF0ZSAqc3RhdGUsCj4gIAo+ICAJCWlmIChvdmVyYWxsX3RpbWVvdXRfZXhjZWVkZWQo c3RhdGUpKSB7Cj4gIAkJCWlmIChzZXR0aW5ncy0+bG9nX2xldmVsID49IExPR19MRVZFTF9OT1JN QUwpIHsKPiAtCQkJCXByaW50ZigiT3ZlcmFsbCB0aW1lb3V0IHRpbWUgZXhjZWVkZWQsIHN0b3Bw aW5nLlxuIik7Cj4gKwkJCQlvdXRmKHN0ZG91dCwgIk92ZXJhbGwgdGltZW91dCB0aW1lIGV4Y2Vl ZGVkLCBzdG9wcGluZy5cbiIpOwo+ICAJCQl9Cj4gIAo+ICAJCQlicmVhazsKPiAtLSAKPiAyLjIz LjAKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0 LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2