From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-yb1-xb32.google.com (mail-yb1-xb32.google.com [IPv6:2607:f8b0:4864:20::b32]) by gabe.freedesktop.org (Postfix) with ESMTPS id BCE8389F8B for ; Mon, 14 Jun 2021 22:42:44 +0000 (UTC) Received: by mail-yb1-xb32.google.com with SMTP id i4so17726869ybe.2 for ; Mon, 14 Jun 2021 15:42:44 -0700 (PDT) MIME-Version: 1.0 References: <20210614163704.365989-1-jason@jlekstrand.net> <20210614163704.365989-24-jason@jlekstrand.net> <20210614172819.GF20637@zkempczy-mobl2> In-Reply-To: <20210614172819.GF20637@zkempczy-mobl2> From: Jason Ekstrand Date: Mon, 14 Jun 2021 17:42:32 -0500 Message-ID: Subject: Re: [igt-dev] [PATCH i-g-t 23/77] tests/i915/gem_sync: Convert to intel_ctx_t 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: =?UTF-8?Q?Zbigniew_Kempczy=C5=84ski?= Cc: IGT GPU Tools List-ID: T24gTW9uLCBKdW4gMTQsIDIwMjEgYXQgMTI6MjggUE0gWmJpZ25pZXcgS2VtcGN6ecWEc2tpCjx6 Ymlnbmlldy5rZW1wY3p5bnNraUBpbnRlbC5jb20+IHdyb3RlOgo+Cj4gT24gTW9uLCBKdW4gMTQs IDIwMjEgYXQgMTE6MzY6MzhBTSAtMDUwMCwgSmFzb24gRWtzdHJhbmQgd3JvdGU6Cj4gPiBTaWdu ZWQtb2ZmLWJ5OiBKYXNvbiBFa3N0cmFuZCA8amFzb25Aamxla3N0cmFuZC5uZXQ+Cj4gPiAtLS0K PiA+ICB0ZXN0cy9pOTE1L2dlbV9zeW5jLmMgfCAxNTkgKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDkwIGluc2VydGlvbnMoKyks IDY5IGRlbGV0aW9ucygtKQo+ID4KPiA+IGRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9zeW5j LmMgYi90ZXN0cy9pOTE1L2dlbV9zeW5jLmMKPiA+IGluZGV4IGFlNDFiNmJiMC4uMjZlOWUwYTE1 IDEwMDY0NAo+ID4gLS0tIGEvdGVzdHMvaTkxNS9nZW1fc3luYy5jCj4gPiArKysgYi90ZXN0cy9p OTE1L2dlbV9zeW5jLmMKPiA+IEBAIC05NywzOCArOTcsMzMgQEAgZmlsdGVyX2VuZ2luZXNfY2Fu X3N0b3JlX2R3b3JkKGludCBmZCwgc3RydWN0IGludGVsX2VuZ2luZV9kYXRhICppZWQpCj4gPiAg ICAgICBpZWQtPm5lbmdpbmVzID0gY291bnQ7Cj4gPiAgfQo+ID4KPiA+IC1zdGF0aWMgc3RydWN0 IGludGVsX2VuZ2luZV9kYXRhIGxpc3Rfc3RvcmVfZW5naW5lcyhpbnQgZmQsIHVuc2lnbmVkIHJp bmcpCj4gPiArc3RhdGljIHN0cnVjdCBpbnRlbF9lbmdpbmVfZGF0YQo+ID4gK2xpc3RfZW5naW5l cyhpbnQgZmQsIGNvbnN0IGludGVsX2N0eF90ICpjdHgsIHVuc2lnbmVkIHJpbmcpCj4gPiAgewo+ ID4gICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9kYXRhIGllZCA9IHsgfTsKPiA+Cj4gPiAgICAg ICBpZiAocmluZyA9PSBBTExfRU5HSU5FUykgewo+ID4gLSAgICAgICAgICAgICBpZWQgPSBpbnRl bF9pbml0X2VuZ2luZV9saXN0KGZkLCAwKTsKPiA+IC0gICAgICAgICAgICAgZmlsdGVyX2VuZ2lu ZXNfY2FuX3N0b3JlX2R3b3JkKGZkLCAmaWVkKTsKPiA+ICsgICAgICAgICAgICAgaWVkID0gaW50 ZWxfZW5naW5lX2xpc3RfZm9yX2N0eF9jZmcoZmQsICZjdHgtPmNmZyk7Cj4gPiArICAgICB9IGVs c2UgaWYgKGN0eC0+Y2ZnLm51bV9lbmdpbmVzKSB7Cj4gPiArICAgICAgICAgICAgIGlndF9hc3Nl cnQocmluZyA8IGN0eC0+Y2ZnLm51bV9lbmdpbmVzKTsKPiA+ICsgICAgICAgICAgICAgaWVkLmVu Z2luZXNbaWVkLm5lbmdpbmVzXS5mbGFncyA9IHJpbmc7Cj4gPiArICAgICAgICAgICAgIHN0cmNw eShpZWQuZW5naW5lc1tpZWQubmVuZ2luZXNdLm5hbWUsICIgIik7Cj4gPiArICAgICAgICAgICAg IGllZC5uZW5naW5lcysrOwo+ID4gICAgICAgfSBlbHNlIHsKPiA+IC0gICAgICAgICAgICAgaWYg KGdlbV9oYXNfcmluZyhmZCwgcmluZykgJiYgZ2VtX2Nhbl9zdG9yZV9kd29yZChmZCwgcmluZykp IHsKPiA+IC0gICAgICAgICAgICAgICAgICAgICBpZWQuZW5naW5lc1tpZWQubmVuZ2luZXNdLmZs YWdzID0gcmluZzsKPiA+IC0gICAgICAgICAgICAgICAgICAgICBzdHJjcHkoaWVkLmVuZ2luZXNb aWVkLm5lbmdpbmVzXS5uYW1lLCAiICIpOwo+ID4gLSAgICAgICAgICAgICAgICAgICAgIGllZC5u ZW5naW5lcysrOwo+ID4gLSAgICAgICAgICAgICB9Cj4gPiArICAgICAgICAgICAgIGlndF9hc3Nl cnQoZ2VtX2hhc19yaW5nKGZkLCByaW5nKSk7Cj4gPiArICAgICAgICAgICAgIGllZC5lbmdpbmVz W2llZC5uZW5naW5lc10uZmxhZ3MgPSByaW5nOwo+ID4gKyAgICAgICAgICAgICBzdHJjcHkoaWVk LmVuZ2luZXNbaWVkLm5lbmdpbmVzXS5uYW1lLCAiICIpOwo+ID4gKyAgICAgICAgICAgICBpZWQu bmVuZ2luZXMrKzsKPiA+ICAgICAgIH0KPiA+Cj4gPiAgICAgICByZXR1cm4gaWVkOwo+ID4gIH0K Pgo+IFRha2UgY29tbWVudCBmcm9tIHByZXZpb3VzIHNlcmllcyAtIGlnbm9yZSBvciBhcHBseSBt eSBzdWdnZXN0aW9uLAo+IHJlZ2FyZGxlc3MgdGhhdDoKCll1cC4gIFNvcnJ5IGZvciB0aGUgcmFj ZS4gIEl0J2xsIGJlIGZpeGVkIGluIHRoZSBuZXh0IHNlbmQuCgo+IFJldmlld2VkLWJ5OiBaYmln bmlldyBLZW1wY3p5xYRza2kgPHpiaWduaWV3LmtlbXBjenluc2tpQGludGVsLmNvbT4KPgo+IC0t Cj4gWmJpZ25pZXcKPgo+ID4KPiA+IC1zdGF0aWMgc3RydWN0IGludGVsX2VuZ2luZV9kYXRhIGxp c3RfZW5naW5lcyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcpCj4gPiArc3RhdGljIHN0cnVjdCBpbnRl bF9lbmdpbmVfZGF0YQo+ID4gK2xpc3Rfc3RvcmVfZW5naW5lcyhpbnQgZmQsIGNvbnN0IGludGVs X2N0eF90ICpjdHgsIHVuc2lnbmVkIHJpbmcpCj4gPiAgewo+ID4gLSAgICAgc3RydWN0IGludGVs X2VuZ2luZV9kYXRhIGllZCA9IHsgfTsKPiA+IC0KPiA+IC0gICAgIGlmIChyaW5nID09IEFMTF9F TkdJTkVTKSB7Cj4gPiAtICAgICAgICAgICAgIGllZCA9IGludGVsX2luaXRfZW5naW5lX2xpc3Qo ZmQsIDApOwo+ID4gLSAgICAgfSBlbHNlIHsKPiA+IC0gICAgICAgICAgICAgaWYgKGdlbV9oYXNf cmluZyhmZCwgcmluZykpIHsKPiA+IC0gICAgICAgICAgICAgICAgICAgICBpZWQuZW5naW5lc1tp ZWQubmVuZ2luZXNdLmZsYWdzID0gcmluZzsKPiA+IC0gICAgICAgICAgICAgICAgICAgICBzdHJj cHkoaWVkLmVuZ2luZXNbaWVkLm5lbmdpbmVzXS5uYW1lLCAiICIpOwo+ID4gLSAgICAgICAgICAg ICAgICAgICAgIGllZC5uZW5naW5lcysrOwo+ID4gLSAgICAgICAgICAgICB9Cj4gPiAtICAgICB9 Cj4gPiAtCj4gPiArICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2RhdGEgaWVkID0gbGlzdF9lbmdp bmVzKGZkLCBjdHgsIHJpbmcpOwo+ID4gKyAgICAgZmlsdGVyX2VuZ2luZXNfY2FuX3N0b3JlX2R3 b3JkKGZkLCAmaWVkKTsKPiA+ICAgICAgIHJldHVybiBpZWQ7Cj4gPiAgfQo+ID4KPiA+IEBAIC0x NTAsMTEgKzE0NSwxMiBAQCBzdGF0aWMgdm9pZCB4Y2hnX2VuZ2luZSh2b2lkICphcnJheSwgdW5z aWduZWQgaSwgdW5zaWduZWQgaikKPiA+ICB9Cj4gPgo+ID4gIHN0YXRpYyB2b2lkCj4gPiAtc3lu Y19yaW5nKGludCBmZCwgdW5zaWduZWQgcmluZywgaW50IG51bV9jaGlsZHJlbiwgaW50IHRpbWVv dXQpCj4gPiArc3luY19yaW5nKGludCBmZCwgY29uc3QgaW50ZWxfY3R4X3QgKmN0eCwKPiA+ICsg ICAgICAgdW5zaWduZWQgcmluZywgaW50IG51bV9jaGlsZHJlbiwgaW50IHRpbWVvdXQpCj4gPiAg ewo+ID4gICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9kYXRhIGllZDsKPiA+Cj4gPiAtICAgICBp ZWQgPSBsaXN0X2VuZ2luZXMoZmQsIHJpbmcpOwo+ID4gKyAgICAgaWVkID0gbGlzdF9lbmdpbmVz KGZkLCBjdHgsIHJpbmcpOwo+ID4gICAgICAgaWd0X3JlcXVpcmUoaWVkLm5lbmdpbmVzKTsKPiA+ ICAgICAgIG51bV9jaGlsZHJlbiAqPSBpZWQubmVuZ2luZXM7Cj4gPgo+ID4gQEAgLTE3NCw2ICsx NzAsNyBAQCBzeW5jX3JpbmcoaW50IGZkLCB1bnNpZ25lZCByaW5nLCBpbnQgbnVtX2NoaWxkcmVu LCBpbnQgdGltZW91dCkKPiA+ICAgICAgICAgICAgICAgZXhlY2J1Zi5idWZmZXJzX3B0ciA9IHRv X3VzZXJfcG9pbnRlcigmb2JqZWN0KTsKPiA+ICAgICAgICAgICAgICAgZXhlY2J1Zi5idWZmZXJf Y291bnQgPSAxOwo+ID4gICAgICAgICAgICAgICBleGVjYnVmLmZsYWdzID0gaWVkX2ZsYWdzKCZp ZWQsIGNoaWxkKTsKPiA+ICsgICAgICAgICAgICAgZXhlY2J1Zi5yc3ZkMSA9IGN0eC0+aWQ7Cj4g PiAgICAgICAgICAgICAgIGdlbV9leGVjYnVmKGZkLCAmZXhlY2J1Zik7Cj4gPiAgICAgICAgICAg ICAgIGdlbV9zeW5jKGZkLCBvYmplY3QuaGFuZGxlKTsKPiA+Cj4gPiBAQCAtMTk2LDcgKzE5Myw4 IEBAIHN5bmNfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCBudW1fY2hpbGRyZW4sIGlu dCB0aW1lb3V0KQo+ID4gIH0KPiA+Cj4gPiAgc3RhdGljIHZvaWQKPiA+IC1pZGxlX3JpbmcoaW50 IGZkLCB1bnNpZ25lZCBpbnQgcmluZywgaW50IG51bV9jaGlsZHJlbiwgaW50IHRpbWVvdXQpCj4g PiAraWRsZV9yaW5nKGludCBmZCwgY29uc3QgaW50ZWxfY3R4X3QgKmN0eCwgdW5zaWduZWQgaW50 IHJpbmcsCj4gPiArICAgICAgIGludCBudW1fY2hpbGRyZW4sIGludCB0aW1lb3V0KQo+ID4gIHsK PiA+ICAgICAgIGNvbnN0IHVpbnQzMl90IGJiZSA9IE1JX0JBVENIX0JVRkZFUl9FTkQ7Cj4gPiAg ICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBvYmplY3Q7Cj4gPiBAQCAtMjE0 LDYgKzIxMiw3IEBAIGlkbGVfcmluZyhpbnQgZmQsIHVuc2lnbmVkIGludCByaW5nLCBpbnQgbnVt X2NoaWxkcmVuLCBpbnQgdGltZW91dCkKPiA+ICAgICAgIGV4ZWNidWYuYnVmZmVyc19wdHIgPSB0 b191c2VyX3BvaW50ZXIoJm9iamVjdCk7Cj4gPiAgICAgICBleGVjYnVmLmJ1ZmZlcl9jb3VudCA9 IDE7Cj4gPiAgICAgICBleGVjYnVmLmZsYWdzID0gcmluZzsKPiA+ICsgICAgIGV4ZWNidWYucnN2 ZDEgPSBjdHgtPmlkOwo+ID4gICAgICAgZ2VtX2V4ZWNidWYoZmQsICZleGVjYnVmKTsKPiA+ICAg ICAgIGdlbV9zeW5jKGZkLCBvYmplY3QuaGFuZGxlKTsKPiA+Cj4gPiBAQCAtMjM1LDExICsyMzQs MTIgQEAgaWRsZV9yaW5nKGludCBmZCwgdW5zaWduZWQgaW50IHJpbmcsIGludCBudW1fY2hpbGRy ZW4sIGludCB0aW1lb3V0KQo+ID4gIH0KPiA+Cj4gPiAgc3RhdGljIHZvaWQKPiA+IC13YWtldXBf cmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0aW1lb3V0LCBpbnQgd2xlbikKPiA+ICt3 YWtldXBfcmluZyhpbnQgZmQsIGNvbnN0IGludGVsX2N0eF90ICpjdHgsIHVuc2lnbmVkIHJpbmcs Cj4gPiArICAgICAgICAgaW50IHRpbWVvdXQsIGludCB3bGVuKQo+ID4gIHsKPiA+ICAgICAgIHN0 cnVjdCBpbnRlbF9lbmdpbmVfZGF0YSBpZWQ7Cj4gPgo+ID4gLSAgICAgaWVkID0gbGlzdF9zdG9y ZV9lbmdpbmVzKGZkLCByaW5nKTsKPiA+ICsgICAgIGllZCA9IGxpc3Rfc3RvcmVfZW5naW5lcyhm ZCwgY3R4LCByaW5nKTsKPiA+ICAgICAgIGlndF9yZXF1aXJlKGllZC5uZW5naW5lcyk7Cj4gPgo+ ID4gICAgICAgaW50ZWxfZGV0ZWN0X2FuZF9jbGVhcl9taXNzZWRfaW50ZXJydXB0cyhmZCk7Cj4g PiBAQCAtMjU5LDggKzI1OSwxMCBAQCB3YWtldXBfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcs IGludCB0aW1lb3V0LCBpbnQgd2xlbikKPiA+ICAgICAgICAgICAgICAgZXhlY2J1Zi5idWZmZXJz X3B0ciA9IHRvX3VzZXJfcG9pbnRlcigmb2JqZWN0KTsKPiA+ICAgICAgICAgICAgICAgZXhlY2J1 Zi5idWZmZXJfY291bnQgPSAxOwo+ID4gICAgICAgICAgICAgICBleGVjYnVmLmZsYWdzID0gaWVk X2ZsYWdzKCZpZWQsIGNoaWxkKTsKPiA+ICsgICAgICAgICAgICAgZXhlY2J1Zi5yc3ZkMSA9IGN0 eC0+aWQ7Cj4gPgo+ID4gICAgICAgICAgICAgICBzcGluID0gX19pZ3Rfc3Bpbl9uZXcoZmQsCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY3R4ID0gY3R4LAo+ID4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmVuZ2luZSA9IGV4ZWNidWYuZmxhZ3Ms Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmxhZ3MgPSAoSUdUX1NQ SU5fUE9MTF9SVU4gfAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElHVF9TUElOX0ZBU1QpKTsKPiA+IEBAIC0zMjcsMTIgKzMyOSwxMiBAQCB3YWtldXBf cmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0aW1lb3V0LCBpbnQgd2xlbikKPiA+ICAg ICAgIGlndF9hc3NlcnRfZXEoaW50ZWxfZGV0ZWN0X2FuZF9jbGVhcl9taXNzZWRfaW50ZXJydXB0 cyhmZCksIDApOwo+ID4gIH0KPiA+Cj4gPiAtc3RhdGljIHZvaWQgYWN0aXZlX3JpbmcoaW50IGZk LCB1bnNpZ25lZCBpbnQgcmluZywKPiA+ICtzdGF0aWMgdm9pZCBhY3RpdmVfcmluZyhpbnQgZmQs IGNvbnN0IGludGVsX2N0eF90ICpjdHgsIHVuc2lnbmVkIGludCByaW5nLAo+ID4gICAgICAgICAg ICAgICAgICAgICAgIGludCBudW1fY2hpbGRyZW4sIGludCB0aW1lb3V0KQo+ID4gIHsKPiA+ICAg ICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfZGF0YSBpZWQ7Cj4gPgo+ID4gLSAgICAgaWVkID0gbGlz dF9zdG9yZV9lbmdpbmVzKGZkLCByaW5nKTsKPiA+ICsgICAgIGllZCA9IGxpc3Rfc3RvcmVfZW5n aW5lcyhmZCwgY3R4LCByaW5nKTsKPiA+ICAgICAgIGlndF9yZXF1aXJlKGllZC5uZW5naW5lcyk7 Cj4gPgo+ID4gICAgICAgaW50ZWxfZGV0ZWN0X2FuZF9jbGVhcl9taXNzZWRfaW50ZXJydXB0cyhm ZCk7Cj4gPiBAQCAtMzQyLDEwICszNDQsMTIgQEAgc3RhdGljIHZvaWQgYWN0aXZlX3JpbmcoaW50 IGZkLCB1bnNpZ25lZCBpbnQgcmluZywKPiA+ICAgICAgICAgICAgICAgaWd0X3NwaW5fdCAqc3Bp blsyXTsKPiA+Cj4gPiAgICAgICAgICAgICAgIHNwaW5bMF0gPSBfX2lndF9zcGluX25ldyhmZCwK PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jdHggPSBjdHgsCj4g PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZW5naW5lID0gaWVkX2Zs YWdzKCZpZWQsIGNoaWxkKSwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC5mbGFncyA9IElHVF9TUElOX0ZBU1QpOwo+ID4KPiA+ICAgICAgICAgICAgICAgc3Bpblsx XSA9IF9faWd0X3NwaW5fbmV3KGZkLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLmN0eCA9IGN0eCwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC5lbmdpbmUgPSBpZWRfZmxhZ3MoJmllZCwgY2hpbGQpLAo+ID4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZsYWdzID0gSUdUX1NQSU5fRkFTVCk7Cj4gPgo+ ID4gQEAgLTM3NywxMSArMzgxLDEyIEBAIHN0YXRpYyB2b2lkIGFjdGl2ZV9yaW5nKGludCBmZCwg dW5zaWduZWQgaW50IHJpbmcsCj4gPiAgfQo+ID4KPiA+ICBzdGF0aWMgdm9pZAo+ID4gLWFjdGl2 ZV93YWtldXBfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0aW1lb3V0LCBpbnQgd2xl bikKPiA+ICthY3RpdmVfd2FrZXVwX3JpbmcoaW50IGZkLCBjb25zdCBpbnRlbF9jdHhfdCAqY3R4 LCB1bnNpZ25lZCByaW5nLAo+ID4gKyAgICAgICAgICAgICAgICBpbnQgdGltZW91dCwgaW50IHds ZW4pCj4gPiAgewo+ID4gICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9kYXRhIGllZDsKPiA+Cj4g PiAtICAgICBpZWQgPSBsaXN0X3N0b3JlX2VuZ2luZXMoZmQsIHJpbmcpOwo+ID4gKyAgICAgaWVk ID0gbGlzdF9zdG9yZV9lbmdpbmVzKGZkLCBjdHgsIHJpbmcpOwo+ID4gICAgICAgaWd0X3JlcXVp cmUoaWVkLm5lbmdpbmVzKTsKPiA+Cj4gPiAgICAgICBpbnRlbF9kZXRlY3RfYW5kX2NsZWFyX21p c3NlZF9pbnRlcnJ1cHRzKGZkKTsKPiA+IEBAIC00MDEsNiArNDA2LDcgQEAgYWN0aXZlX3dha2V1 cF9yaW5nKGludCBmZCwgdW5zaWduZWQgcmluZywgaW50IHRpbWVvdXQsIGludCB3bGVuKQo+ID4g ICAgICAgICAgICAgICBleGVjYnVmLmJ1ZmZlcnNfcHRyID0gdG9fdXNlcl9wb2ludGVyKCZvYmpl Y3QpOwo+ID4gICAgICAgICAgICAgICBleGVjYnVmLmJ1ZmZlcl9jb3VudCA9IDE7Cj4gPiAgICAg ICAgICAgICAgIGV4ZWNidWYuZmxhZ3MgPSBpZWRfZmxhZ3MoJmllZCwgY2hpbGQpOwo+ID4gKyAg ICAgICAgICAgICBleGVjYnVmLnJzdmQxID0gY3R4LT5pZDsKPiA+Cj4gPiAgICAgICAgICAgICAg IHNwaW5bMF0gPSBfX2lndF9zcGluX25ldyhmZCwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC5lbmdpbmUgPSBleGVjYnVmLmZsYWdzLAo+ID4gQEAgLTQ5MSwxMiAr NDk3LDEzIEBAIGFjdGl2ZV93YWtldXBfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0 aW1lb3V0LCBpbnQgd2xlbikKPiA+ICB9Cj4gPgo+ID4gIHN0YXRpYyB2b2lkCj4gPiAtc3RvcmVf cmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCBudW1fY2hpbGRyZW4sIGludCB0aW1lb3V0 KQo+ID4gK3N0b3JlX3JpbmcoaW50IGZkLCBjb25zdCBpbnRlbF9jdHhfdCAqY3R4LCB1bnNpZ25l ZCByaW5nLAo+ID4gKyAgICAgICAgaW50IG51bV9jaGlsZHJlbiwgaW50IHRpbWVvdXQpCj4gPiAg ewo+ID4gICAgICAgY29uc3QgdW5zaWduZWQgaW50IGdlbiA9IGludGVsX2dlbihpbnRlbF9nZXRf ZHJtX2RldmlkKGZkKSk7Cj4gPiAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2RhdGEgaWVkOwo+ ID4KPiA+IC0gICAgIGllZCA9IGxpc3Rfc3RvcmVfZW5naW5lcyhmZCwgcmluZyk7Cj4gPiArICAg ICBpZWQgPSBsaXN0X3N0b3JlX2VuZ2luZXMoZmQsIGN0eCwgcmluZyk7Cj4gPiAgICAgICBpZ3Rf cmVxdWlyZShpZWQubmVuZ2luZXMpOwo+ID4gICAgICAgbnVtX2NoaWxkcmVuICo9IGllZC5uZW5n aW5lczsKPiA+Cj4gPiBAQCAtNTE3LDYgKzUyNCw3IEBAIHN0b3JlX3JpbmcoaW50IGZkLCB1bnNp Z25lZCByaW5nLCBpbnQgbnVtX2NoaWxkcmVuLCBpbnQgdGltZW91dCkKPiA+ICAgICAgICAgICAg ICAgZXhlY2J1Zi5mbGFncyB8PSBJOTE1X0VYRUNfSEFORExFX0xVVDsKPiA+ICAgICAgICAgICAg ICAgaWYgKGdlbiA8IDYpCj4gPiAgICAgICAgICAgICAgICAgICAgICAgZXhlY2J1Zi5mbGFncyB8 PSBJOTE1X0VYRUNfU0VDVVJFOwo+ID4gKyAgICAgICAgICAgICBleGVjYnVmLnJzdmQxID0gY3R4 LT5pZDsKPiA+Cj4gPiAgICAgICAgICAgICAgIG1lbXNldChvYmplY3QsIDAsIHNpemVvZihvYmpl Y3QpKTsKPiA+ICAgICAgICAgICAgICAgb2JqZWN0WzBdLmhhbmRsZSA9IGdlbV9jcmVhdGUoZmQs IDQwOTYpOwo+ID4gQEAgLTU4NywxNCArNTk1LDE1IEBAIHN0b3JlX3JpbmcoaW50IGZkLCB1bnNp Z25lZCByaW5nLCBpbnQgbnVtX2NoaWxkcmVuLCBpbnQgdGltZW91dCkKPiA+ICB9Cj4gPgo+ID4g IHN0YXRpYyB2b2lkCj4gPiAtc3dpdGNoX3JpbmcoaW50IGZkLCB1bnNpZ25lZCByaW5nLCBpbnQg bnVtX2NoaWxkcmVuLCBpbnQgdGltZW91dCkKPiA+ICtzd2l0Y2hfcmluZyhpbnQgZmQsIGNvbnN0 IGludGVsX2N0eF90ICpjdHgsIHVuc2lnbmVkIHJpbmcsCj4gPiArICAgICAgICAgaW50IG51bV9j aGlsZHJlbiwgaW50IHRpbWVvdXQpCj4gPiAgewo+ID4gICAgICAgY29uc3QgdW5zaWduZWQgaW50 IGdlbiA9IGludGVsX2dlbihpbnRlbF9nZXRfZHJtX2RldmlkKGZkKSk7Cj4gPiAgICAgICBzdHJ1 Y3QgaW50ZWxfZW5naW5lX2RhdGEgaWVkOwo+ID4KPiA+ICAgICAgIGdlbV9yZXF1aXJlX2NvbnRl eHRzKGZkKTsKPiA+Cj4gPiAtICAgICBpZWQgPSBsaXN0X3N0b3JlX2VuZ2luZXMoZmQsIHJpbmcp Owo+ID4gKyAgICAgaWVkID0gbGlzdF9zdG9yZV9lbmdpbmVzKGZkLCBjdHgsIHJpbmcpOwo+ID4g ICAgICAgaWd0X3JlcXVpcmUoaWVkLm5lbmdpbmVzKTsKPiA+ICAgICAgIG51bV9jaGlsZHJlbiAq PSBpZWQubmVuZ2luZXM7Cj4gPgo+ID4gQEAgLTYwNCw2ICs2MTMsNyBAQCBzd2l0Y2hfcmluZyhp bnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCBudW1fY2hpbGRyZW4sIGludCB0aW1lb3V0KQo+ID4g ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyIG9i amVjdFsyXTsKPiA+ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl bG9jYXRpb25fZW50cnkgcmVsb2NbMTAyNF07Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiBleGVjYnVmOwo+ID4gKyAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGludGVsX2N0eF90ICpjdHg7Cj4gPiAgICAgICAgICAgICAgIH0gY29udGV4 dHNbMl07Cj4gPiAgICAgICAgICAgICAgIGRvdWJsZSBlbGFwc2VkLCBiYXNlbGluZTsKPiA+ICAg ICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBjeWNsZXM7Cj4gPiBAQCAtNjIxLDcgKzYzMSw5IEBA IHN3aXRjaF9yaW5nKGludCBmZCwgdW5zaWduZWQgcmluZywgaW50IG51bV9jaGlsZHJlbiwgaW50 IHRpbWVvdXQpCj4gPiAgICAgICAgICAgICAgICAgICAgICAgYy0+ZXhlY2J1Zi5mbGFncyB8PSBJ OTE1X0VYRUNfSEFORExFX0xVVDsKPiA+ICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ2VuIDwg NikKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMtPmV4ZWNidWYuZmxhZ3MgfD0g STkxNV9FWEVDX1NFQ1VSRTsKPiA+IC0gICAgICAgICAgICAgICAgICAgICBjLT5leGVjYnVmLnJz dmQxID0gZ2VtX2NvbnRleHRfY3JlYXRlKGZkKTsKPiA+ICsKPiA+ICsgICAgICAgICAgICAgICAg ICAgICBjLT5jdHggPSBpbnRlbF9jdHhfY3JlYXRlKGZkLCAmY3R4LT5jZmcpOwo+ID4gKyAgICAg ICAgICAgICAgICAgICAgIGMtPmV4ZWNidWYucnN2ZDEgPSBjLT5jdHgtPmlkOwo+ID4KPiA+ICAg ICAgICAgICAgICAgICAgICAgICBtZW1zZXQoYy0+b2JqZWN0LCAwLCBzaXplb2YoYy0+b2JqZWN0 KSk7Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgYy0+b2JqZWN0WzBdLmhhbmRsZSA9IGdlbV9j cmVhdGUoZmQsIDQwOTYpOwo+ID4gQEAgLTcxNyw3ICs3MjksNyBAQCBzd2l0Y2hfcmluZyhpbnQg ZmQsIHVuc2lnbmVkIHJpbmcsIGludCBudW1fY2hpbGRyZW4sIGludCB0aW1lb3V0KQo+ID4gICAg ICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IEFSUkFZX1NJWkUoY29udGV4dHMpOyBpKysp IHsKPiA+ICAgICAgICAgICAgICAgICAgICAgICBnZW1fY2xvc2UoZmQsIGNvbnRleHRzW2ldLm9i amVjdFsxXS5oYW5kbGUpOwo+ID4gICAgICAgICAgICAgICAgICAgICAgIGdlbV9jbG9zZShmZCwg Y29udGV4dHNbaV0ub2JqZWN0WzBdLmhhbmRsZSk7Cj4gPiAtICAgICAgICAgICAgICAgICAgICAg Z2VtX2NvbnRleHRfZGVzdHJveShmZCwgY29udGV4dHNbaV0uZXhlY2J1Zi5yc3ZkMSk7Cj4gPiAr ICAgICAgICAgICAgICAgICAgICAgaW50ZWxfY3R4X2Rlc3Ryb3koZmQsIGNvbnRleHRzW2ldLmN0 eCk7Cj4gPiAgICAgICAgICAgICAgIH0KPiA+ICAgICAgIH0KPiA+ICAgICAgIGlndF93YWl0Y2hp bGRyZW5fdGltZW91dCh0aW1lb3V0KzEwLCBOVUxMKTsKPiA+IEBAIC03NjYsNyArNzc4LDggQEAg c3RhdGljIHZvaWQgKndhaXRlcih2b2lkICphcmcpCj4gPiAgfQo+ID4KPiA+ICBzdGF0aWMgdm9p ZAo+ID4gLV9fc3RvcmVfbWFueShpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0aW1lb3V0LCB1 bnNpZ25lZCBsb25nICpjeWNsZXMpCj4gPiArX19zdG9yZV9tYW55KGludCBmZCwgY29uc3QgaW50 ZWxfY3R4X3QgKmN0eCwgdW5zaWduZWQgcmluZywKPiA+ICsgICAgICAgICAgaW50IHRpbWVvdXQs IHVuc2lnbmVkIGxvbmcgKmN5Y2xlcykKPiA+ICB7Cj4gPiAgICAgICBjb25zdCB1bnNpZ25lZCBp bnQgZ2VuID0gaW50ZWxfZ2VuKGludGVsX2dldF9kcm1fZGV2aWQoZmQpKTsKPiA+ICAgICAgIGNv bnN0IHVpbnQzMl90IGJiZSA9IE1JX0JBVENIX0JVRkZFUl9FTkQ7Cj4gPiBAQCAtNzg1LDYgKzc5 OCw3IEBAIF9fc3RvcmVfbWFueShpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0aW1lb3V0LCB1 bnNpZ25lZCBsb25nICpjeWNsZXMpCj4gPiAgICAgICBleGVjYnVmLmZsYWdzIHw9IEk5MTVfRVhF Q19IQU5ETEVfTFVUOwo+ID4gICAgICAgaWYgKGdlbiA8IDYpCj4gPiAgICAgICAgICAgICAgIGV4 ZWNidWYuZmxhZ3MgfD0gSTkxNV9FWEVDX1NFQ1VSRTsKPiA+ICsgICAgIGV4ZWNidWYucnN2ZDEg PSBjdHgtPmlkOwo+ID4KPiA+ICAgICAgIG1lbXNldChvYmplY3QsIDAsIHNpemVvZihvYmplY3Qp KTsKPiA+ICAgICAgIG9iamVjdFswXS5oYW5kbGUgPSBnZW1fY3JlYXRlKGZkLCA0MDk2KTsKPiA+ IEBAIC04OTQsNyArOTA4LDggQEAgX19zdG9yZV9tYW55KGludCBmZCwgdW5zaWduZWQgcmluZywg aW50IHRpbWVvdXQsIHVuc2lnbmVkIGxvbmcgKmN5Y2xlcykKPiA+ICB9Cj4gPgo+ID4gIHN0YXRp YyB2b2lkCj4gPiAtc3RvcmVfbWFueShpbnQgZmQsIHVuc2lnbmVkIGludCByaW5nLCBpbnQgbnVt X2NoaWxkcmVuLCBpbnQgdGltZW91dCkKPiA+ICtzdG9yZV9tYW55KGludCBmZCwgY29uc3QgaW50 ZWxfY3R4X3QgKmN0eCwgdW5zaWduZWQgaW50IHJpbmcsCj4gPiArICAgICAgICBpbnQgbnVtX2No aWxkcmVuLCBpbnQgdGltZW91dCkKPiA+ICB7Cj4gPiAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5l X2RhdGEgaWVkOwo+ID4gICAgICAgdW5zaWduZWQgbG9uZyAqc2hhcmVkOwo+ID4gQEAgLTkwMiwx NCArOTE3LDE0IEBAIHN0b3JlX21hbnkoaW50IGZkLCB1bnNpZ25lZCBpbnQgcmluZywgaW50IG51 bV9jaGlsZHJlbiwgaW50IHRpbWVvdXQpCj4gPiAgICAgICBzaGFyZWQgPSBtbWFwKE5VTEwsIDQw OTYsIFBST1RfV1JJVEUsIE1BUF9TSEFSRUQgfCBNQVBfQU5PTiwgLTEsIDApOwo+ID4gICAgICAg aWd0X2Fzc2VydChzaGFyZWQgIT0gTUFQX0ZBSUxFRCk7Cj4gPgo+ID4gLSAgICAgaWVkID0gbGlz dF9zdG9yZV9lbmdpbmVzKGZkLCByaW5nKTsKPiA+ICsgICAgIGllZCA9IGxpc3Rfc3RvcmVfZW5n aW5lcyhmZCwgY3R4LCByaW5nKTsKPiA+ICAgICAgIGlndF9yZXF1aXJlKGllZC5uZW5naW5lcyk7 Cj4gPgo+ID4gICAgICAgaW50ZWxfZGV0ZWN0X2FuZF9jbGVhcl9taXNzZWRfaW50ZXJydXB0cyhm ZCk7Cj4gPgo+ID4gICAgICAgZm9yIChpbnQgbiA9IDA7IG4gPCBpZWQubmVuZ2luZXM7IG4rKykg ewo+ID4gICAgICAgICAgICAgICBpZ3RfZm9yayhjaGlsZCwgMSkKPiA+IC0gICAgICAgICAgICAg ICAgICAgICBfX3N0b3JlX21hbnkoZmQsCj4gPiArICAgICAgICAgICAgICAgICAgICAgX19zdG9y ZV9tYW55KGZkLCBjdHgsCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGll ZF9mbGFncygmaWVkLCBuKSwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGltZW91dCwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNoYXJlZFtu XSk7Cj4gPiBAQCAtOTI1LDExICs5NDAsMTEgQEAgc3RvcmVfbWFueShpbnQgZmQsIHVuc2lnbmVk IGludCByaW5nLCBpbnQgbnVtX2NoaWxkcmVuLCBpbnQgdGltZW91dCkKPiA+ICB9Cj4gPgo+ID4g IHN0YXRpYyB2b2lkCj4gPiAtc3luY19hbGwoaW50IGZkLCBpbnQgbnVtX2NoaWxkcmVuLCBpbnQg dGltZW91dCkKPiA+ICtzeW5jX2FsbChpbnQgZmQsIGNvbnN0IGludGVsX2N0eF90ICpjdHgsIGlu dCBudW1fY2hpbGRyZW4sIGludCB0aW1lb3V0KQo+ID4gIHsKPiA+ICAgICAgIHN0cnVjdCBpbnRl bF9lbmdpbmVfZGF0YSBpZWQ7Cj4gPgo+ID4gLSAgICAgaWVkID0gbGlzdF9lbmdpbmVzKGZkLCBB TExfRU5HSU5FUyk7Cj4gPiArICAgICBpZWQgPSBsaXN0X2VuZ2luZXMoZmQsIGN0eCwgQUxMX0VO R0lORVMpOwo+ID4gICAgICAgaWd0X3JlcXVpcmUoaWVkLm5lbmdpbmVzKTsKPiA+Cj4gPiAgICAg ICBpbnRlbF9kZXRlY3RfYW5kX2NsZWFyX21pc3NlZF9pbnRlcnJ1cHRzKGZkKTsKPiA+IEBAIC05 NDcsNiArOTYyLDcgQEAgc3luY19hbGwoaW50IGZkLCBpbnQgbnVtX2NoaWxkcmVuLCBpbnQgdGlt ZW91dCkKPiA+ICAgICAgICAgICAgICAgbWVtc2V0KCZleGVjYnVmLCAwLCBzaXplb2YoZXhlY2J1 ZikpOwo+ID4gICAgICAgICAgICAgICBleGVjYnVmLmJ1ZmZlcnNfcHRyID0gdG9fdXNlcl9wb2lu dGVyKCZvYmplY3QpOwo+ID4gICAgICAgICAgICAgICBleGVjYnVmLmJ1ZmZlcl9jb3VudCA9IDE7 Cj4gPiArICAgICAgICAgICAgIGV4ZWNidWYucnN2ZDEgPSBjdHgtPmlkOwo+ID4gICAgICAgICAg ICAgICBnZW1fZXhlY2J1ZihmZCwgJmV4ZWNidWYpOwo+ID4gICAgICAgICAgICAgICBnZW1fc3lu YyhmZCwgb2JqZWN0LmhhbmRsZSk7Cj4gPgo+ID4gQEAgLTk3MSwxMiArOTg3LDEyIEBAIHN5bmNf YWxsKGludCBmZCwgaW50IG51bV9jaGlsZHJlbiwgaW50IHRpbWVvdXQpCj4gPiAgfQo+ID4KPiA+ ICBzdGF0aWMgdm9pZAo+ID4gLXN0b3JlX2FsbChpbnQgZmQsIGludCBudW1fY2hpbGRyZW4sIGlu dCB0aW1lb3V0KQo+ID4gK3N0b3JlX2FsbChpbnQgZmQsIGNvbnN0IGludGVsX2N0eF90ICpjdHgs IGludCBudW1fY2hpbGRyZW4sIGludCB0aW1lb3V0KQo+ID4gIHsKPiA+ICAgICAgIGNvbnN0IHVu c2lnbmVkIGludCBnZW4gPSBpbnRlbF9nZW4oaW50ZWxfZ2V0X2RybV9kZXZpZChmZCkpOwo+ID4g ICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9kYXRhIGllZDsKPiA+Cj4gPiAtICAgICBpZWQgPSBs aXN0X3N0b3JlX2VuZ2luZXMoZmQsIEFMTF9FTkdJTkVTKTsKPiA+ICsgICAgIGllZCA9IGxpc3Rf c3RvcmVfZW5naW5lcyhmZCwgY3R4LCBBTExfRU5HSU5FUyk7Cj4gPiAgICAgICBpZ3RfcmVxdWly ZShpZWQubmVuZ2luZXMpOwo+ID4KPiA+ICAgICAgIGludGVsX2RldGVjdF9hbmRfY2xlYXJfbWlz c2VkX2ludGVycnVwdHMoZmQpOwo+ID4gQEAgLTk5NSw2ICsxMDExLDcgQEAgc3RvcmVfYWxsKGlu dCBmZCwgaW50IG51bV9jaGlsZHJlbiwgaW50IHRpbWVvdXQpCj4gPiAgICAgICAgICAgICAgIGV4 ZWNidWYuZmxhZ3MgfD0gSTkxNV9FWEVDX0hBTkRMRV9MVVQ7Cj4gPiAgICAgICAgICAgICAgIGlm IChnZW4gPCA2KQo+ID4gICAgICAgICAgICAgICAgICAgICAgIGV4ZWNidWYuZmxhZ3MgfD0gSTkx NV9FWEVDX1NFQ1VSRTsKPiA+ICsgICAgICAgICAgICAgZXhlY2J1Zi5yc3ZkMSA9IGN0eC0+aWQ7 Cj4gPgo+ID4gICAgICAgICAgICAgICBtZW1zZXQob2JqZWN0LCAwLCBzaXplb2Yob2JqZWN0KSk7 Cj4gPiAgICAgICAgICAgICAgIG9iamVjdFswXS5oYW5kbGUgPSBnZW1fY3JlYXRlKGZkLCA0MDk2 KTsKPiA+IEBAIC0xMDcwLDIwICsxMDg3LDIxIEBAIHN0b3JlX2FsbChpbnQgZmQsIGludCBudW1f Y2hpbGRyZW4sIGludCB0aW1lb3V0KQo+ID4gIH0KPiA+Cj4gPiAgc3RhdGljIHZvaWQKPiA+IC1w cmVlbXB0KGludCBmZCwgdW5zaWduZWQgcmluZywgaW50IG51bV9jaGlsZHJlbiwgaW50IHRpbWVv dXQpCj4gPiArcHJlZW1wdChpbnQgZmQsIGNvbnN0IGludGVsX2N0eF90ICpjdHgsIHVuc2lnbmVk IHJpbmcsCj4gPiArICAgICBpbnQgbnVtX2NoaWxkcmVuLCBpbnQgdGltZW91dCkKPiA+ICB7Cj4g PiAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2RhdGEgaWVkOwo+ID4gLSAgICAgdWludDMyX3Qg Y3R4WzJdOwo+ID4gKyAgICAgY29uc3QgaW50ZWxfY3R4X3QgKnRtcF9jdHhbMl07Cj4gPgo+ID4g LSAgICAgaWVkID0gbGlzdF9lbmdpbmVzKGZkLCBBTExfRU5HSU5FUyk7Cj4gPiArICAgICBpZWQg PSBsaXN0X2VuZ2luZXMoZmQsIGN0eCwgQUxMX0VOR0lORVMpOwo+ID4gICAgICAgaWd0X3JlcXVp cmUoaWVkLm5lbmdpbmVzKTsKPiA+ICAgICAgIG51bV9jaGlsZHJlbiAqPSBpZWQubmVuZ2luZXM7 Cj4gPgo+ID4gLSAgICAgY3R4WzBdID0gZ2VtX2NvbnRleHRfY3JlYXRlKGZkKTsKPiA+IC0gICAg IGdlbV9jb250ZXh0X3NldF9wcmlvcml0eShmZCwgY3R4WzBdLCBNSU5fUFJJTyk7Cj4gPiArICAg ICB0bXBfY3R4WzBdID0gaW50ZWxfY3R4X2NyZWF0ZShmZCwgJmN0eC0+Y2ZnKTsKPiA+ICsgICAg IGdlbV9jb250ZXh0X3NldF9wcmlvcml0eShmZCwgdG1wX2N0eFswXS0+aWQsIE1JTl9QUklPKTsK PiA+Cj4gPiAtICAgICBjdHhbMV0gPSBnZW1fY29udGV4dF9jcmVhdGUoZmQpOwo+ID4gLSAgICAg Z2VtX2NvbnRleHRfc2V0X3ByaW9yaXR5KGZkLCBjdHhbMV0sIE1BWF9QUklPKTsKPiA+ICsgICAg IHRtcF9jdHhbMV0gPSBpbnRlbF9jdHhfY3JlYXRlKGZkLCAmY3R4LT5jZmcpOwo+ID4gKyAgICAg Z2VtX2NvbnRleHRfc2V0X3ByaW9yaXR5KGZkLCB0bXBfY3R4WzFdLT5pZCwgTUFYX1BSSU8pOwo+ ID4KPiA+ICAgICAgIGludGVsX2RldGVjdF9hbmRfY2xlYXJfbWlzc2VkX2ludGVycnVwdHMoZmQp Owo+ID4gICAgICAgaWd0X2ZvcmsoY2hpbGQsIG51bV9jaGlsZHJlbikgewo+ID4gQEAgLTExMDEs NyArMTExOSw3IEBAIHByZWVtcHQoaW50IGZkLCB1bnNpZ25lZCByaW5nLCBpbnQgbnVtX2NoaWxk cmVuLCBpbnQgdGltZW91dCkKPiA+ICAgICAgICAgICAgICAgZXhlY2J1Zi5idWZmZXJzX3B0ciA9 IHRvX3VzZXJfcG9pbnRlcigmb2JqZWN0KTsKPiA+ICAgICAgICAgICAgICAgZXhlY2J1Zi5idWZm ZXJfY291bnQgPSAxOwo+ID4gICAgICAgICAgICAgICBleGVjYnVmLmZsYWdzID0gaWVkX2ZsYWdz KCZpZWQsIGNoaWxkKTsKPiA+IC0gICAgICAgICAgICAgZXhlY2J1Zi5yc3ZkMSA9IGN0eFsxXTsK PiA+ICsgICAgICAgICAgICAgZXhlY2J1Zi5yc3ZkMSA9IHRtcF9jdHhbMV0tPmlkOwo+ID4gICAg ICAgICAgICAgICBnZW1fZXhlY2J1ZihmZCwgJmV4ZWNidWYpOwo+ID4gICAgICAgICAgICAgICBn ZW1fc3luYyhmZCwgb2JqZWN0LmhhbmRsZSk7Cj4gPgo+ID4gQEAgLTExMTAsNyArMTEyOCw3IEBA IHByZWVtcHQoaW50IGZkLCB1bnNpZ25lZCByaW5nLCBpbnQgbnVtX2NoaWxkcmVuLCBpbnQgdGlt ZW91dCkKPiA+ICAgICAgICAgICAgICAgZG8gewo+ID4gICAgICAgICAgICAgICAgICAgICAgIGln dF9zcGluX3QgKnNwaW4gPQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19pZ3Rf c3Bpbl9uZXcoZmQsCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAuY3R4X2lkID0gY3R4WzBdLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLmN0eCA9IHRtcF9jdHhbMF0sCj4gPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAuZW5naW5lID0gZXhlY2J1Zi5mbGFncyk7Cj4gPgo+ ID4gICAgICAgICAgICAgICAgICAgICAgIGRvIHsKPiA+IEBAIC0xMTI5LDggKzExNDcsOCBAQCBw cmVlbXB0KGludCBmZCwgdW5zaWduZWQgcmluZywgaW50IG51bV9jaGlsZHJlbiwgaW50IHRpbWVv dXQpCj4gPiAgICAgICBpZ3Rfd2FpdGNoaWxkcmVuX3RpbWVvdXQodGltZW91dCsxMCwgTlVMTCk7 Cj4gPiAgICAgICBpZ3RfYXNzZXJ0X2VxKGludGVsX2RldGVjdF9hbmRfY2xlYXJfbWlzc2VkX2lu dGVycnVwdHMoZmQpLCAwKTsKPiA+Cj4gPiAtICAgICBnZW1fY29udGV4dF9kZXN0cm95KGZkLCBj dHhbMV0pOwo+ID4gLSAgICAgZ2VtX2NvbnRleHRfZGVzdHJveShmZCwgY3R4WzBdKTsKPiA+ICsg ICAgIGludGVsX2N0eF9kZXN0cm95KGZkLCB0bXBfY3R4WzFdKTsKPiA+ICsgICAgIGludGVsX2N0 eF9kZXN0cm95KGZkLCB0bXBfY3R4WzBdKTsKPiA+ICB9Cj4gPgo+ID4gIGlndF9tYWluCj4gPiBA QCAtMTEzOCw3ICsxMTU2LDcgQEAgaWd0X21haW4KPiA+ICAgICAgIGNvbnN0IGludCBuY3B1cyA9 IHN5c2NvbmYoX1NDX05QUk9DRVNTT1JTX09OTE4pOwo+ID4gICAgICAgY29uc3Qgc3RydWN0IHsK PiA+ICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZTsKPiA+IC0gICAgICAgICAgICAgdm9p ZCAoKmZ1bmMpKGludCBmZCwgdW5zaWduZWQgaW50IGVuZ2luZSwKPiA+ICsgICAgICAgICAgICAg dm9pZCAoKmZ1bmMpKGludCBmZCwgY29uc3QgaW50ZWxfY3R4X3QgKmN0eCwgdW5zaWduZWQgaW50 IGVuZ2luZSwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBudW1fY2hpbGRyZW4s IGludCB0aW1lb3V0KTsKPiA+ICAgICAgICAgICAgICAgaW50IG51bV9jaGlsZHJlbjsKPiA+ICAg ICAgICAgICAgICAgaW50IHRpbWVvdXQ7Cj4gPiBAQCAtMTE3Myw2ICsxMTkxLDcgQEAgaWd0X21h aW4KPiA+ICAjZGVmaW5lIGZvcl9lYWNoX3Rlc3QodCwgVCkgZm9yKHR5cGVvZigqVCkgKnQgPSBU OyB0LT5uYW1lOyB0KyspCj4gPgo+ID4gICAgICAgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlv bl9lbmdpbmUyICplOwo+ID4gKyAgICAgY29uc3QgaW50ZWxfY3R4X3QgKmN0eDsKPiA+ICAgICAg IGludCBmZCA9IC0xOwo+ID4KPiA+ICAgICAgIGlndF9maXh0dXJlIHsKPiA+IEBAIC0xMTgwLDYg KzExOTksNyBAQCBpZ3RfbWFpbgo+ID4gICAgICAgICAgICAgICBpZ3RfcmVxdWlyZV9nZW0oZmQp Owo+ID4gICAgICAgICAgICAgICBnZW1fc3VibWlzc2lvbl9wcmludF9tZXRob2QoZmQpOwo+ID4g ICAgICAgICAgICAgICBnZW1fc2NoZWR1bGVyX3ByaW50X2NhcGFiaWxpdHkoZmQpOwo+ID4gKyAg ICAgICAgICAgICBjdHggPSBpbnRlbF9jdHhfY3JlYXRlX2FsbF9waHlzaWNhbChmZCk7Cj4gPgo+ ID4gICAgICAgICAgICAgICBpZ3RfZm9ya19oYW5nX2RldGVjdG9yKGZkKTsKPiA+ICAgICAgIH0K PiA+IEBAIC0xMTg5LDcgKzEyMDksNyBAQCBpZ3RfbWFpbgo+ID4gICAgICAgICAgICAgICBpZ3Rf c3VidGVzdF93aXRoX2R5bmFtaWNfZigiJXMiLCB0LT5uYW1lKSB7Cj4gPiAgICAgICAgICAgICAg ICAgICAgICAgZm9yIChjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX3JpbmcgKmwgPSBpbnRl bF9leGVjdXRpb25fcmluZ3M7IGwtPm5hbWU7IGwrKykgewo+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWd0X2R5bmFtaWNfZigiJXMiLCBsLT5uYW1lKSB7Cj4gPiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQtPmZ1bmMoZmQsIGViX3JpbmcobCksCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQtPmZ1bmMoZmQsIGludGVsX2N0 eF8wKGZkKSwgZWJfcmluZyhsKSwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0LT5udW1fY2hpbGRyZW4sIHQtPnRpbWVvdXQpOwo+ID4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQo+ID4gICAgICAgICAgICAgICAgICAgICAgIH0KPiA+IEBA IC0xMTk3LDMwICsxMjE3LDMwIEBAIGlndF9tYWluCj4gPiAgICAgICB9Cj4gPgo+ID4gICAgICAg aWd0X3N1YnRlc3QoImJhc2ljLWFsbCIpCj4gPiAtICAgICAgICAgICAgIHN5bmNfYWxsKGZkLCAx LCAyKTsKPiA+ICsgICAgICAgICAgICAgc3luY19hbGwoZmQsIGN0eCwgMSwgMik7Cj4gPiAgICAg ICBpZ3Rfc3VidGVzdCgiYmFzaWMtc3RvcmUtYWxsIikKPiA+IC0gICAgICAgICAgICAgc3RvcmVf YWxsKGZkLCAxLCAyKTsKPiA+ICsgICAgICAgICAgICAgc3RvcmVfYWxsKGZkLCBjdHgsIDEsIDIp Owo+ID4KPiA+ICAgICAgIGlndF9zdWJ0ZXN0KCJhbGwiKQo+ID4gLSAgICAgICAgICAgICBzeW5j X2FsbChmZCwgMSwgMjApOwo+ID4gKyAgICAgICAgICAgICBzeW5jX2FsbChmZCwgY3R4LCAxLCAy MCk7Cj4gPiAgICAgICBpZ3Rfc3VidGVzdCgic3RvcmUtYWxsIikKPiA+IC0gICAgICAgICAgICAg c3RvcmVfYWxsKGZkLCAxLCAyMCk7Cj4gPiArICAgICAgICAgICAgIHN0b3JlX2FsbChmZCwgY3R4 LCAxLCAyMCk7Cj4gPiAgICAgICBpZ3Rfc3VidGVzdCgiZm9ya2VkLWFsbCIpCj4gPiAtICAgICAg ICAgICAgIHN5bmNfYWxsKGZkLCBuY3B1cywgMjApOwo+ID4gKyAgICAgICAgICAgICBzeW5jX2Fs bChmZCwgY3R4LCBuY3B1cywgMjApOwo+ID4gICAgICAgaWd0X3N1YnRlc3QoImZvcmtlZC1zdG9y ZS1hbGwiKQo+ID4gLSAgICAgICAgICAgICBzdG9yZV9hbGwoZmQsIG5jcHVzLCAyMCk7Cj4gPiAr ICAgICAgICAgICAgIHN0b3JlX2FsbChmZCwgY3R4LCBuY3B1cywgMjApOwo+ID4KPiA+ICAgICAg IGZvcl9lYWNoX3Rlc3QodCwgYWxsKSB7Cj4gPiAgICAgICAgICAgICAgIGlndF9zdWJ0ZXN0X2Yo IiVzIiwgdC0+bmFtZSkKPiA+IC0gICAgICAgICAgICAgICAgICAgICB0LT5mdW5jKGZkLCBBTExf RU5HSU5FUywgdC0+bnVtX2NoaWxkcmVuLCB0LT50aW1lb3V0KTsKPiA+ICsgICAgICAgICAgICAg ICAgICAgICB0LT5mdW5jKGZkLCBjdHgsIEFMTF9FTkdJTkVTLCB0LT5udW1fY2hpbGRyZW4sIHQt PnRpbWVvdXQpOwo+ID4gICAgICAgfQo+ID4KPiA+ICAgICAgIC8qIE5ldyB3YXkgb2Ygc2VsZWN0 aW5nIGVuZ2luZXMuICovCj4gPiAgICAgICBmb3JfZWFjaF90ZXN0KHQsIGluZGl2aWR1YWwpIHsK PiA+ICAgICAgICAgICAgICAgaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljX2YoIiVzIiwgdC0+bmFt ZSkgewo+ID4gLSAgICAgICAgICAgICAgICAgICAgIF9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5l KGZkLCBlKSB7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgZm9yX2VhY2hfY3R4X2VuZ2luZShm ZCwgY3R4LCBlKSB7Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ3RfZHluYW1p Y19mKCIlcyIsIGUtPm5hbWUpIHsKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdC0+ZnVuYyhmZCwgZS0+ZmxhZ3MsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHQtPmZ1bmMoZmQsIGN0eCwgZS0+ZmxhZ3MsCj4gPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC0+bnVtX2NoaWxkcmVuLCB0LT50aW1l b3V0KTsKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KPiA+ICAgICAgICAgICAg ICAgICAgICAgICB9Cj4gPiBAQCAtMTIzNSwxNyArMTI1NSwxOCBAQCBpZ3RfbWFpbgo+ID4gICAg ICAgICAgICAgICB9Cj4gPgo+ID4gICAgICAgICAgICAgICBpZ3Rfc3VidGVzdCgicHJlZW1wdC1h bGwiKQo+ID4gLSAgICAgICAgICAgICAgICAgICAgIHByZWVtcHQoZmQsIEFMTF9FTkdJTkVTLCAx LCAyMCk7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgcHJlZW1wdChmZCwgY3R4LCBBTExfRU5H SU5FUywgMSwgMjApOwo+ID4gICAgICAgICAgICAgICBpZ3Rfc3VidGVzdF93aXRoX2R5bmFtaWMo InByZWVtcHQiKSB7Cj4gPiAtICAgICAgICAgICAgICAgICAgICAgX19mb3JfZWFjaF9waHlzaWNh bF9lbmdpbmUoZmQsIGUpIHsKPiA+ICsgICAgICAgICAgICAgICAgICAgICBmb3JfZWFjaF9jdHhf ZW5naW5lKGZkLCBjdHgsIGUpIHsKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGln dF9keW5hbWljX2YoIiVzIiwgZS0+bmFtZSkKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcHJlZW1wdChmZCwgZS0+ZmxhZ3MsIG5jcHVzLCAyMCk7Cj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWVtcHQoZmQsIGN0eCwgZS0+ZmxhZ3Ms IG5jcHVzLCAyMCk7Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgfQo+ID4gICAgICAgICAgICAg ICB9Cj4gPiAgICAgICB9Cj4gPgo+ID4gICAgICAgaWd0X2ZpeHR1cmUgewo+ID4gICAgICAgICAg ICAgICBpZ3Rfc3RvcF9oYW5nX2RldGVjdG9yKCk7Cj4gPiArICAgICAgICAgICAgIGludGVsX2N0 eF9kZXN0cm95KGZkLCBjdHgpOwo+ID4gICAgICAgICAgICAgICBjbG9zZShmZCk7Cj4gPiAgICAg ICB9Cj4gPiAgfQo+ID4gLS0KPiA+IDIuMzEuMQo+ID4KPiA+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBpZ3QtZGV2IG1haWxpbmcgbGlzdAo+ID4g aWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2lndC1kZXYK