From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Harrison Subject: Re: [PATCH 09/13] drm/i915: Interrupt driven fences Date: Fri, 11 Dec 2015 15:30:39 +0000 Message-ID: <566AEC1F.7040701@Intel.com> References: <1449839521-21958-1-git-send-email-John.C.Harrison@Intel.com> <1449839521-21958-10-git-send-email-John.C.Harrison@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 7EE7F89A0F for ; Fri, 11 Dec 2015 07:30:42 -0800 (PST) In-Reply-To: <1449839521-21958-10-git-send-email-John.C.Harrison@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 UmVwbHkgbW92ZWQgZnJvbSBlYXJsaWVyIHBhdGNoIHNldCB3aGljaCBoYXMgbm93IGJlZW4gc3Vw ZXJjZWVkZWQgYnkgCnRoaXMgc2V0Li4uCgpPbiAxMS8xMi8yMDE1IDEyOjE3LCBUdnJ0a28gVXJz dWxpbiB3cm90ZToKPgo+IEhpLAo+Cj4gU29tZSByYW5kb20gY29tbWVudHMsIG1vc3RseSBmcm9t IHRoZSBwb2ludCBvZiB2aWV3IG9mIHNvbHZpbmcgdGhlIAo+IHRodW5kZXJpbmcgaGVyZCBwcm9i bGVtLgo+Cj4gT24gMjMvMTEvMTUgMTE6MzQsIEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20gd3Jv dGU6Cj4+IEZyb206IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+Cj4+ Cj4+IFRoZSBpbnRlbmRlZCB1c2FnZSBtb2RlbCBmb3Igc3RydWN0IGZlbmNlIGlzIHRoYXQgdGhl IHNpZ25hbGxlZCBzdGF0dXMKPj4gc2hvdWxkIGJlIHNldCBvbiBkZW1hbmQgcmF0aGVyIHRoYW4g cG9sbGVkLiBUaGF0IGlzLCB0aGVyZSBzaG91bGQgbm90Cj4+IGJlIGEgbmVlZCBmb3IgYSAnc2ln bmFsZWQnIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBldmVyeXRpbWUgdGhlIHN0YXR1cwo+PiBpcyBx dWVyaWVkLiBJbnN0ZWFkLCAnc29tZXRoaW5nJyBzaG91bGQgYmUgZG9uZSB0byBlbmFibGUgYSBz aWduYWwKPj4gY2FsbGJhY2sgZnJvbSB0aGUgaGFyZHdhcmUgd2hpY2ggd2lsbCB1cGRhdGUgdGhl IHN0YXRlIGRpcmVjdGx5LiBJbgo+PiB0aGUgY2FzZSBvZiByZXF1ZXN0cywgdGhpcyBpcyB0aGUg c2Vxbm8gdXBkYXRlIGludGVycnVwdC4gVGhlIGlkZWEgaXMKPj4gdGhhdCB0aGlzIGNhbGxiYWNr IHdpbGwgb25seSBiZSBlbmFibGVkIG9uIGRlbWFuZCB3aGVuIHNvbWV0aGluZwo+PiBhY3R1YWxs eSB0cmllcyB0byB3YWl0IG9uIHRoZSBmZW5jZS4KPj4KPj4gVGhpcyBjaGFuZ2UgcmVtb3ZlcyB0 aGUgcG9sbGluZyB0ZXN0IGFuZCByZXBsYWNlcyBpdCB3aXRoIHRoZSBjYWxsYmFjawo+PiBzY2hl bWUuIEVhY2ggZmVuY2UgaXMgYWRkZWQgdG8gYSAncGxlYXNlIHBva2UgbWUnIGxpc3QgYXQgdGhl IHN0YXJ0IG9mCj4+IGk5MTVfYWRkX3JlcXVlc3QoKS4gVGhlIGludGVycnVwdCBoYW5kbGVyIHRo ZW4gc2NhbnMgdGhyb3VnaCB0aGUgJ3Bva2UKPj4gbWUnIGxpc3Qgd2hlbiBhIG5ldyBzZXFubyBw b3BzIG91dCBhbmQgc2lnbmFscyBhbnkgbWF0Y2hpbmcKPj4gZmVuY2UvcmVxdWVzdC4gVGhlIGZl bmNlIGlzIHRoZW4gcmVtb3ZlZCBmcm9tIHRoZSBsaXN0IHNvIHRoZSBlbnRpcmUKPj4gcmVxdWVz dCBzdGFjayBkb2VzIG5vdCBuZWVkIHRvIGJlIHNjYW5uZWQgZXZlcnkgdGltZS4gTm90ZSB0aGF0 IHRoZQo+PiBmZW5jZSBpcyBhZGRlZCB0byB0aGUgbGlzdCBiZWZvcmUgdGhlIGNvbW1hbmRzIHRv IGdlbmVyYXRlIHRoZSBzZXFubwo+PiBpbnRlcnJ1cHQgYXJlIGFkZGVkIHRvIHRoZSByaW5nLiBU aHVzIHRoZSBzZXF1ZW5jZSBpcyBndWFyYW50ZWVkIHRvIGJlCj4+IHJhY2UgZnJlZSBpZiB0aGUg aW50ZXJydXB0IGlzIGFscmVhZHkgZW5hYmxlZC4KPj4KPj4gTm90ZSB0aGF0IHRoZSBpbnRlcnJ1 cHQgaXMgb25seSBlbmFibGVkIG9uIGRlbWFuZCAoaS5lLiB3aGVuCj4+IF9fd2FpdF9yZXF1ZXN0 KCkgaXMgY2FsbGVkKS4gVGh1cyB0aGVyZSBpcyBzdGlsbCBhIHBvdGVudGlhbCByYWNlIHdoZW4K Pj4gZW5hYmxpbmcgdGhlIGludGVycnVwdCBhcyB0aGUgcmVxdWVzdCBtYXkgYWxyZWFkeSBoYXZl IGNvbXBsZXRlZC4KPj4gSG93ZXZlciwgdGhpcyBpcyBzaW1wbHkgc29sdmVkIGJ5IGNhbGxpbmcg dGhlIGludGVycnVwdCBwcm9jZXNzaW5nCj4+IGNvZGUgaW1tZWRpYXRlbHkgYWZ0ZXIgZW5hYmxp bmcgdGhlIGludGVycnVwdCBhbmQgdGhlcmVieSBjaGVja2luZyBmb3IKPj4gYWxyZWFkeSBjb21w bGV0ZWQgcmVxdWVzdHMuCj4+Cj4+IExhc3RseSwgdGhlIHJpbmcgY2xlYW4gdXAgY29kZSBoYXMg dGhlIHBvc3NpYmlsaXR5IHRvIGNhbmNlbAo+PiBvdXRzdGFuZGluZyByZXF1ZXN0cyAoZS5nLiBi ZWNhdXNlIFREUiBoYXMgcmVzZXQgdGhlIHJpbmcpLiBUaGVzZQo+PiByZXF1ZXN0cyB3aWxsIG5l dmVyIGdldCBzaWduYWxsZWQgYW5kIHNvIG11c3QgYmUgcmVtb3ZlZCBmcm9tIHRoZQo+PiBzaWdu YWwgbGlzdCBtYW51YWxseS4gVGhpcyBpcyBkb25lIGJ5IHNldHRpbmcgYSAnY2FuY2VsbGVkJyBm bGFnIGFuZAo+PiB0aGVuIGNhbGxpbmcgdGhlIHJlZ3VsYXIgbm90aWZ5L3JldGlyZSBjb2RlIHBh dGggcmF0aGVyIHRoYW4KPj4gYXR0ZW1wdGluZyB0byBkdXBsaWNhdGUgdGhlIGxpc3QgbWFuaXB1 bGF0YXRpb24gYW5kIGNsZWFuIHVwIGNvZGUgaW4KPj4gbXVsdGlwbGUgcGxhY2VzLiBUaGlzIGFs c28gYXZvaWQgYW55IHJhY2UgY29uZGl0aW9uIHdoZXJlIHRoZQo+PiBjYW5jZWxsYXRpb24gcmVx dWVzdCBtaWdodCBvY2N1ciBhZnRlci9kdXJpbmcgdGhlIGNvbXBsZXRpb24gaW50ZXJydXB0Cj4+ IGFjdHVhbGx5IGFycml2aW5nLgo+Pgo+PiB2MjogVXBkYXRlZCB0byB0YWtlIGFkdmFudGFnZSBv ZiB0aGUgcmVxdWVzdCB1bnJlZmVyZW5jZSBubyBsb25nZXIKPj4gcmVxdWlyaW5nIHRoZSBtdXRl eCBsb2NrLgo+Pgo+PiB2MzogTW92ZSB0aGUgc2lnbmFsIGxpc3QgcHJvY2Vzc2luZyBhcm91bmQg dG8gcHJldmVudCB1bnN1Ym1pdHRlZAo+PiByZXF1ZXN0cyBiZWluZyBhZGRlZCB0byB0aGUgbGlz dC4gVGhpcyB3YXMgb2NjdXJyaW5nIG9uIEFuZHJvaWQKPj4gYmVjYXVzZSB0aGUgbmF0aXZlIHN5 bmMgaW1wbGVtZW50YXRpb24gY2FsbHMgdGhlCj4+IGZlbmNlLT5lbmFibGVfc2lnbmFsbGluZyBB UEkgaW1tZWRpYXRlbHkgb24gZmVuY2UgY3JlYXRpb24uCj4+Cj4+IFVwZGF0ZWQgYWZ0ZXIgcmV2 aWV3IGNvbW1lbnRzIGJ5IFR2cnRrbyBVcnN1bGluLiBSZW5hbWVkIGxpc3Qgbm9kZXMgdG8KPj4g J2xpbmsnIGluc3RlYWQgb2YgJ2xpc3QnLiBBZGRlZCBzdXBwb3J0IGZvciByZXR1cm5pbmcgYW4g ZXJyb3IgY29kZSBvbgo+PiBhIGNhbmNlbGxlZCBmZW5jZS4gVXBkYXRlIGxpc3QgcHJvY2Vzc2lu ZyB0byBiZSBtb3JlIGVmZmljaWVudC9zYWZlcgo+PiB3aXRoIHJlc3BlY3QgdG8gc3BpbmxvY2tz Lgo+Pgo+PiBGb3I6IFZJWi01MTkwCj4+IFNpZ25lZC1vZmYtYnk6IEpvaG4gSGFycmlzb24gPEpv aG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+Cj4+IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVy c3VsaW5AaW50ZWwuY29tPgo+PiAtLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oICAgICAgICAgfCAgMTAgKysKPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j ICAgICAgICAgfCAxODcgCj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCj4+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgICAgICAgIHwgICAyICsKPj4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgfCAgIDIgKwo+PiAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyB8ICAgMiArCj4+ICAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIHwgICAyICsKPj4gICA2IGZpbGVzIGNoYW5nZWQs IDE5NiBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4+IGluZGV4IGZiZjU5MWYuLmQwMTNjNmQgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAo+PiBAQCAtMjE4Nyw3ICsyMTg3LDEyIEBAIHZvaWQgaTkxNV9nZW1fdHJhY2tf ZmIoc3RydWN0IAo+PiBkcm1faTkxNV9nZW1fb2JqZWN0ICpvbGQsCj4+ICAgc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0IHsKPj4gICAgICAgLyoqIFVuZGVybHlpbmcgb2JqZWN0IGZvciBpbXBs ZW1lbnRpbmcgdGhlIHNpZ25hbC93YWl0IHN0dWZmLiAqLwo+PiAgICAgICBzdHJ1Y3QgZmVuY2Ug ZmVuY2U7Cj4+ICsgICAgc3RydWN0IGxpc3RfaGVhZCBzaWduYWxfbGluazsKPj4gKyAgICBzdHJ1 Y3QgbGlzdF9oZWFkIHVuc2lnbmFsX2xpbms7Cj4+ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgZGVs YXllZF9mcmVlX2xpbms7Cj4+ICsgICAgYm9vbCBjYW5jZWxsZWQ7Cj4+ICsgICAgYm9vbCBpcnFf ZW5hYmxlZDsKPj4gKyAgICBib29sIHNpZ25hbF9yZXF1ZXN0ZWQ7Cj4+Cj4+ICAgICAgIC8qKiBP biBXaGljaCByaW5nIHRoaXMgcmVxdWVzdCB3YXMgZ2VuZXJhdGVkICovCj4+ICAgICAgIHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1Owo+PiBAQCAtMjI2NSw2ICsyMjcwLDExIEBAIGludCBp OTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCAKPj4gaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ PiAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqKnJlcV9vdXQp Owo+PiAgIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9jYW5jZWwoc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXEpOwo+Pgo+PiArdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X3N1Ym1pdChzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7Cj4+ICt2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfZW5h YmxlX2ludGVycnVwdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgCj4+ICpyZXEsCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZmVuY2VfbG9ja2VkKTsKPj4gK3ZvaWQgaTkxNV9n ZW1fcmVxdWVzdF9ub3RpZnkoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgYm9vbCAKPj4g ZmVuY2VfbG9ja2VkKTsKPj4gKwo+PiAgIGludCBpOTE1X2NyZWF0ZV9mZW5jZV90aW1lbGluZShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW50 ZWxfY29udGV4dCAqY3R4LAo+PiAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICpyaW5nKTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMgCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+PiBpbmRleCAxNzFh ZTVmLi4yYTBiMzQ2IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPj4gQEAgLTExNjUs NiArMTE2NSw4IEBAIHN0YXRpYyBpbnQgX19pOTE1X3NwaW5fcmVxdWVzdChzdHJ1Y3QgCj4+IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4+Cj4+ICAgICAgIHRpbWVvdXQgPSBqaWZmaWVzICsg MTsKPj4gICAgICAgd2hpbGUgKCFuZWVkX3Jlc2NoZWQoKSkgewo+PiArICAgICAgICBpOTE1X2dl bV9yZXF1ZXN0X25vdGlmeShyZXEtPnJpbmcsIGZhbHNlKTsKPj4gKwo+Cj4gVGhpcyBsb29rcyBp cyBhIGJpdCBoZWF2eXdlaWdodCwgaGFtbWVyaW5nIG9uIHRoZSBzcGlubG9jayBhbmQgCj4gaW50 ZXJydXB0cyBvbi1vZmYsIHdoeSBpdCBpcyByZXF1aXJlZCB0byBjYWxsIHRoaXMgaGVyZSBpbnN0 ZWFkIG9mIAo+IHJlbHlpbmcgb24gaW50ZXJydXB0cyB3aGljaCBoYXZlIGJlZW4gZW5hYmxlZCBh bHJlYWR5PwoKSXQgaXNuJ3QgcmVxdWlyZWQuIEl0IHdhcyBpcyBqdXN0IGFuIGF0dGVtcHQgdG8g aW1wbGVtZW50IHRoZSBzdXBlci1mYXN0IApzcGluIHdhaXQgcmF0aGVyIHRoYW4gd2FpdGluZyBm b3IgdGhlIGZ1bGwgaW50ZXJydXB0IGxhdGVuY3kuIENocmlzIFcgCnNlZW1zIHRvIHRoaW5rIHBv bGxpbmcgZm9yIGNvbXBsZXRpb24gZm9yIGEgYnJpZWYgcGVyaW9kIGJlZm9yZSBnb2luZyB0byAK c2xlZXAgaXMgYSBzaWduaWZpY2FudCBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudC4gV2l0aCBpbnRl cnJ1cHQgYmFzZWQgCmNvbXBsZXRpb24gdGhlbiB0aGUgc3BpbiB3aWxsIHJlcXVpcmUgcnVubmlu ZyB0aGUgaW50ZXJydXB0IHByb2Nlc3NpbmcgCmNvZGUgb24gZWFjaCBpdGVyYXRpb24gb3RoZXJ3 aXNlIHlvdSBhcmUgc3RpbGwgd2FpdGluZyBmb3Igd2hhdGV2ZXIgCmxhdGVuY3kgaXMgaW4gdGhl IGludGVycnVwdCBwYXRoIGl0c2VsZi4KCj4KPj4gICAgICAgICAgIGlmIChpOTE1X2dlbV9yZXF1 ZXN0X2NvbXBsZXRlZChyZXEpKQo+PiAgICAgICAgICAgICAgIHJldHVybiAwOwo+Pgo+PiBAQCAt MTE3Myw2ICsxMTc1LDkgQEAgc3RhdGljIGludCBfX2k5MTVfc3Bpbl9yZXF1ZXN0KHN0cnVjdCAK Pj4gZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPj4KPj4gICAgICAgICAgIGNwdV9yZWxheF9s b3dsYXRlbmN5KCk7Cj4+ICAgICAgIH0KPj4gKwo+PiArICAgIGk5MTVfZ2VtX3JlcXVlc3Rfbm90 aWZ5KHJlcS0+cmluZywgZmFsc2UpOwo+PiArCj4+ICAgICAgIGlmIChpOTE1X2dlbV9yZXF1ZXN0 X2NvbXBsZXRlZChyZXEpKQo+PiAgICAgICAgICAgcmV0dXJuIDA7Cj4+Cj4+IEBAIC0xMjE0LDkg KzEyMTksMTQgQEAgaW50IF9faTkxNV93YWl0X3JlcXVlc3Qoc3RydWN0IAo+PiBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxLAo+Pgo+PiAgICAgICBXQVJOKCFpbnRlbF9pcnFzX2VuYWJsZWQoZGV2 X3ByaXYpLCAiSVJRcyBkaXNhYmxlZCIpOwo+Pgo+PiAtICAgIGlmIChsaXN0X2VtcHR5KCZyZXEt Pmxpc3QpKQo+PiArICAgIGlmIChpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChyZXEpKQo+PiAg ICAgICAgICAgcmV0dXJuIDA7Cj4+Cj4+ICsgICAgLyoKPj4gKyAgICAgKiBFbmFibGUgaW50ZXJy dXB0IGNvbXBsZXRpb24gb2YgdGhlIHJlcXVlc3QuCj4+ICsgICAgICovCj4+ICsgICAgZmVuY2Vf ZW5hYmxlX3N3X3NpZ25hbGluZygmcmVxLT5mZW5jZSk7Cj4+ICsKPgo+IFRoZXJlIGlzIGR1cGxp Y2F0ZWQgdXNlciBpbnRlcnJ1cHQgaGFuZGxpbmcgaW4gdGhpcyBmdW5jdGlvbiBub3cuIENvZGUg Cj4gd2hpY2ggZG9lcyBpcnEgZ2V0L3B1dCBkaXJlY3RseSBpcyBzdGlsbCB0aGVyZSwgYnV0IEkg dGhpbmsgaXQgc2hvdWxkIAo+IGJlIHJlbW92ZWQuCk5vdCBzdXJlIGV4YWN0bHkgd2hhdCB5b3Ug dGhpbmsgaXMgZHVwbGljYXRlZD8gVGhlIGZlbmNlIGZ1bmN0aW9uIGp1c3QgCmNhbGxzIGJhY2sg dG8gdGhlIGk5MTUgY29kZSB3aGljaCBzZXRzIHN0dWZmIHVwIGZvciBpbnRlcnJ1cHQgc2lnbmFs bGluZyAKKGlmIGl0IGhhc24ndCBhbHJlYWR5IGJlZW4gZG9uZSkuIElmIHRoZSBmZW5jZSBpcyBh bHJlYWR5IHNldCB1cCB0aGVuIAp0aGUgY2FsbCBpcyBhIG5vLW9wLgoKPgo+PiAgICAgICBpZiAo aTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQocmVxKSkKPj4gICAgICAgICAgIHJldHVybiAwOwo+ Pgo+PiBAQCAtMTM3Nyw2ICsxMzg3LDE5IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3JlcXVlc3Rf cmV0aXJlKHN0cnVjdCAKPj4gZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4+ICAgICAg IGxpc3RfZGVsX2luaXQoJnJlcXVlc3QtPmxpc3QpOwo+PiAgICAgICBpOTE1X2dlbV9yZXF1ZXN0 X3JlbW92ZV9mcm9tX2NsaWVudChyZXF1ZXN0KTsKPj4KPj4gKyAgICAvKiBJbiBjYXNlIHRoZSBy ZXF1ZXN0IGlzIHN0aWxsIGluIHRoZSBzaWduYWwgcGVuZGluZyBsaXN0ICovCj4KPiBXaGVuIHdv dWxkIHRoaXMgaGFwcGVuPyAoY29tbWVudCBoaW50KQoKVERSLCBwcmUtZW1wdGlvbiwgYW55dGhp bmcgZWxzZSB3aGljaCBjYW4gYWJvcnQgYSByZXF1ZXN0L2JhdGNoIGJ1ZmZlciAKYmVmb3JlIGl0 IGhhcyBjb21wbGV0ZWQuIFdpbGwgdXBkYXRlIHRoZSBjb21tZW50LgoKPgo+PiArICAgIGlmICgh bGlzdF9lbXB0eSgmcmVxdWVzdC0+c2lnbmFsX2xpbmspKSB7Cj4+ICsgICAgICAgIC8qCj4+ICsg ICAgICAgICAqIFRoZSByZXF1ZXN0IG11c3QgYmUgbWFya2VkIGFzIGNhbmNlbGxlZCBhbmQgdGhl IHVuZGVybHlpbmcKPj4gKyAgICAgICAgICogZmVuY2UgYXMgYm90aCBmYWlsZWQuIE5COiBUaGVy ZSBpcyBubyBleHBsaWNpdCBmZW5jZSBmYWlsCj4+ICsgICAgICAgICAqIEFQSSwgdGhlcmUgaXMg b25seSBhIG1hbnVhbCBwb2tlIGFuZCBzaWduYWwuCj4+ICsgICAgICAgICAqLwo+PiArICAgICAg ICByZXF1ZXN0LT5jYW5jZWxsZWQgPSB0cnVlOwo+PiArICAgICAgICAvKiBIb3cgdG8gcHJvcGFn YXRlIHRvIGFueSBhc3NvY2lhdGVkIHN5bmNfZmVuY2U/Pz8gKi8KPj4gKyAgICAgICAgcmVxdWVz dC0+ZmVuY2Uuc3RhdHVzID0gLUVJTzsKPj4gKyAgICAgICAgZmVuY2Vfc2lnbmFsX2xvY2tlZCgm cmVxdWVzdC0+ZmVuY2UpOwo+Cj4gRG9lcyB0aGUgY2FuY2VsbGVkIHJlcXVlc3QgaGFzIHRvIHN0 YXkgb24gdGhlIHNpZ25hbCBsaXN0PyBJZiBpdCBjb3VsZCAKPiBiZSBtb3ZlZCBvdXRzaWRlIG9m IHRoZSBpcnEgaG90IGxpc3QgaXQgbWlnaHQgYmUgYmVuZWZpY2lhbCBmb3IgbGlzdCAKPiBsZW5n dGggYW5kIHNpbXBsaWZ5aW5nIHRoZSBjb2RlIGluIGk5MTVfZ2VtX3JlcXVlc3Rfbm90aWZ5LgpU aGUgcG9pbnQgb2YgbGVhdmluZyBpdCBvbiB0aGUgbGlzdCBpcyB0byBnZXQgYWxsIHRoZSBvdGhl ciBwcm9jZXNzaW5nIAp3aXRob3V0IGR1cGxpY2F0aW5nIGFueSBjb2RlLiBFLmcuIGxhdGVyIG9u IHRoZSBzY2hlZHVsZXIgaG9va3MgaW50byB0aGUgCm5vdGlmeSBmdW5jdGlvbiBhcyBpdCBuZWVk cyB0byBrbm93IHdoZW4gZWFjaCByZXF1ZXN0IGhhcyBjb21wbGV0ZWQuCgoKPgo+PiArICAgIH0K Pj4gKwo+PiAgICAgICBpOTE1X2dlbV9yZXF1ZXN0X3VucmVmZXJlbmNlKHJlcXVlc3QpOwo+PiAg IH0KPj4KPj4gQEAgLTI1MzUsNiArMjU1OCwxMiBAQCB2b2lkIF9faTkxNV9hZGRfcmVxdWVzdChz dHJ1Y3QgCj4+IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0LAo+PiAgICAgICAgKi8KPj4g ICAgICAgcmVxdWVzdC0+cG9zdGZpeCA9IGludGVsX3JpbmdfZ2V0X3RhaWwocmluZ2J1Zik7Cj4+ Cj4+ICsgICAgLyoKPj4gKyAgICAgKiBBZGQgdGhlIGZlbmNlIHRvIHRoZSBwZW5kaW5nIGxpc3Qg YmVmb3JlIGVtaXR0aW5nIHRoZSAKPj4gY29tbWFuZHMgdG8KPj4gKyAgICAgKiBnZW5lcmF0ZSBh IHNlcW5vIG5vdGlmaWNhdGlvbiBpbnRlcnJ1cHQuCj4+ICsgICAgICovCj4+ICsgICAgaTkxNV9n ZW1fcmVxdWVzdF9zdWJtaXQocmVxdWVzdCk7Cj4+ICsKPj4gICAgICAgaWYgKGk5MTUuZW5hYmxl X2V4ZWNsaXN0cykKPj4gICAgICAgICAgIHJldCA9IHJpbmctPmVtaXRfcmVxdWVzdChyZXF1ZXN0 KTsKPj4gICAgICAgZWxzZSB7Cj4+IEBAIC0yNjU0LDI1ICsyNjgzLDEzNSBAQCBzdGF0aWMgdm9p ZCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWUoc3RydWN0IAo+PiBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxKQo+PiAgICAgICAgICAgaTkxNV9nZW1fY29udGV4dF91bnJlZmVyZW5jZShjdHgpOwo+PiAg ICAgICB9Cj4+Cj4+ICsgICAgaWYgKHJlcS0+aXJxX2VuYWJsZWQpCj4+ICsgICAgICAgIHJlcS0+ cmluZy0+aXJxX3B1dChyZXEtPnJpbmcpOwo+PiArCj4+ICAgICAgIGttZW1fY2FjaGVfZnJlZShy ZXEtPmk5MTUtPnJlcXVlc3RzLCByZXEpOwo+PiAgIH0KPj4KPj4gLXN0YXRpYyBib29sIGk5MTVf Z2VtX3JlcXVlc3RfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkKPj4g Ky8qCj4+ICsgKiBUaGUgcmVxdWVzdCBpcyBhYm91dCB0byBiZSBzdWJtaXR0ZWQgdG8gdGhlIGhh cmR3YXJlIHNvIGFkZCB0aGUgCj4+IGZlbmNlIHRvCj4+ICsgKiB0aGUgbGlzdCBvZiBzaWduYWxh YmxlIGZlbmNlcy4KPj4gKyAqCj4+ICsgKiBOQjogVGhpcyBkb2VzIG5vdCBuZWNlc3NhcmlseSBl bmFibGUgaW50ZXJydXB0cyB5ZXQuIFRoYXQgb25seSAKPj4gb2NjdXJzIG9uCj4+ICsgKiBkZW1h bmQgd2hlbiB0aGUgcmVxdWVzdCBpcyBhY3R1YWxseSB3YWl0ZWQgb24uIEhvd2V2ZXIsIGFkZGlu ZyBpdCAKPj4gdG8gdGhlCj4+ICsgKiBsaXN0IGVhcmx5IGVuc3VyZXMgdGhhdCB0aGVyZSBpcyBu byByYWNlIGNvbmRpdGlvbiB3aGVyZSB0aGUgCj4+IGludGVycnVwdAo+PiArICogY291bGQgcG9w IG91dCBwcmVtYXR1cmVseSBhbmQgdGh1cyBiZSBjb21wbGV0ZWx5IGxvc3QuIFRoZSByYWNlIAo+ PiBpcyBtZXJlbHkKPj4gKyAqIHRoYXQgdGhlIGludGVycnVwdCBtdXN0IGJlIG1hbnVhbGx5IGNo ZWNrZWQgZm9yIGFmdGVyIGJlaW5nIGVuYWJsZWQuCj4+ICsgKi8KPj4gK3ZvaWQgaTkxNV9nZW1f cmVxdWVzdF9zdWJtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4+ICAgewo+ PiAtICAgIC8qIEludGVycnVwdCBkcml2ZW4gZmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQgeWV0 LiovCj4+IC0gICAgV0FSTih0cnVlLCAiVGhpcyBzaG91bGQgbm90IGJlIGNhbGxlZCEiKTsKPj4g LSAgICByZXR1cm4gdHJ1ZTsKPj4gKyAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwo+PiArCj4+ICsg ICAgLyoKPj4gKyAgICAgKiBBbHdheXMgZW5hYmxlIHNpZ25hbCBwcm9jZXNzaW5nIGZvciB0aGUg cmVxdWVzdCdzIGZlbmNlIG9iamVjdAo+PiArICAgICAqIGJlZm9yZSB0aGF0IHJlcXVlc3QgaXMg c3VibWl0dGVkIHRvIHRoZSBoYXJkd2FyZS4gVGh1cyB0aGVyZSAKPj4gaXMgbm8KPj4gKyAgICAg KiByYWNlIGNvbmRpdGlvbiB3aGVyZWJ5IHRoZSBpbnRlcnJ1cHQgY291bGQgcG9wIG91dCBiZWZv cmUgdGhlCj4+ICsgICAgICogcmVxdWVzdCBoYXMgYmVlbiBhZGRlZCB0byB0aGUgc2lnbmFsIGxp c3QuIEhlbmNlIG5vIG5lZWQgdG8gCj4+IGNoZWNrCj4+ICsgICAgICogZm9yIGNvbXBsZXRpb24s IHVuZG8gdGhlIGxpc3QgYWRkIGFuZCByZXR1cm4gZmFsc2UuCj4+ICsgICAgICovCj4+ICsgICAg aTkxNV9nZW1fcmVxdWVzdF9yZWZlcmVuY2UocmVxKTsKPj4gKyAgICBzcGluX2xvY2tfaXJxc2F2 ZSgmcmVxLT5yaW5nLT5mZW5jZV9sb2NrLCBmbGFncyk7Cj4KPiBUaGlzIG9ubHkgZ2V0cyBjYWxs ZWQgZnJvbSBub24taXJxIGNvbnRleHQgc28gY291bGQgdXNlIHNwaW5fbG9ja19pcnEuClRoZSBm ZW5jZV9sb2NrIGlzIGFjcXVpcmVkIGZyb20gd2l0aGluIGk5MTVfZ2VtX3JlcXVlc3Rfbm90aWZ5 KCkgd2hpY2ggCmlzIGNhbGxlZCB3aXRoaW4gdGhlIElSUSBoYW5kbGVyIGFuZCB0aGVyZWZvcmUg YXQgSVJRIGNvbnRleHQuCgo+Cj4+ICsgV0FSTl9PTighbGlzdF9lbXB0eSgmcmVxLT5zaWduYWxf bGluaykpOwo+PiArICAgIGxpc3RfYWRkX3RhaWwoJnJlcS0+c2lnbmFsX2xpbmssICZyZXEtPnJp bmctPmZlbmNlX3NpZ25hbF9saXN0KTsKPj4gKyAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZy ZXEtPnJpbmctPmZlbmNlX2xvY2ssIGZsYWdzKTsKPj4gKwo+PiArICAgIC8qCj4+ICsgICAgICog TkI6IEludGVycnVwdHMgYXJlIG9ubHkgZW5hYmxlZCBvbiBkZW1hbmQuIFRodXMgdGhlcmUgaXMg c3RpbGwgYQo+PiArICAgICAqIHJhY2Ugd2hlcmUgdGhlIHJlcXVlc3QgY291bGQgY29tcGxldGUg YmVmb3JlIHRoZSBpbnRlcnJ1cHQgaGFzCj4+ICsgICAgICogYmVlbiBlbmFibGVkLiBUaHVzIGNh cmUgbXVzdCBiZSB0YWtlbiBhdCB0aGF0IHBvaW50Lgo+PiArICAgICAqLwo+PiArCj4+ICsgICAg IC8qIEhhdmUgaW50ZXJydXB0cyBhbHJlYWR5IGJlZW4gcmVxdWVzdGVkPyAqLwo+PiArICAgICBp ZiAocmVxLT5zaWduYWxfcmVxdWVzdGVkKQo+Cj4gU29tZSBjb2RlIHBhdGggY2FuIGVuYWJsZSBz aWduYWxpbmcgYmVmb3JlIHRoZSBleGVjYnVmIGNvbXBsZXRlZD8KT25jZSB0aGUgc2NoZWR1bGVy IGhhcyBhcnJpdmVkIHRoZW4gYSB3YWl0IHJlcXVlc3QgY2FsbCBjYW4gYmUgbWFkZSBsb25nIApi ZWZvcmUgdGhlIHJlcXVlc3QgaGFzIGJlZW4gc3VibWl0dGVkIHRvIHRoZSBoYXJkd2FyZS4gTGlr ZXdpc2UgaWYgYSAKdXNlciBsYW5kIGZlbmNlIGlzIHJlcXVlc3RlZCBmb3IgdGhlIGJhdGNoIGJ1 ZmZlciwgdGhhdCBpcyBhbGxvY2F0ZWQgCmJlZm9yZSBleGVjdXRpb24gYmVnaW5zIGFuZCB0aGUg aW50ZXJuYWxzIG9mIHRoZSBmZW5jZSBjb2RlIAphdXRvbWF0aWNhbGx5IGVuYWJsZXMgc2lnbmFs bGluZy4KCj4+ICsgaTkxNV9nZW1fcmVxdWVzdF9lbmFibGVfaW50ZXJydXB0KHJlcSwgZmFsc2Up Owo+PiArfQo+PiArCj4+ICsvKgo+PiArICogVGhlIHJlcXVlc3QgaXMgYmVpbmcgYWN0aXZlbHkg d2FpdGVkIG9uLCBzbyBlbmFibGUgaW50ZXJydXB0IGJhc2VkCj4+ICsgKiBjb21wbGV0aW9uIHNp Z25hbGxpbmcuCj4+ICsgKi8KPj4gK3ZvaWQgaTkxNV9nZW1fcmVxdWVzdF9lbmFibGVfaW50ZXJy dXB0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAKPj4gKnJlcSwKPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgYm9vbCBmZW5jZV9sb2NrZWQpCj4+ICt7Cj4+ICsgICAgaWYgKHJlcS0+aXJx X2VuYWJsZWQpCj4+ICsgICAgICAgIHJldHVybjsKPj4gKwo+PiArICAgIFdBUk5fT04oIXJlcS0+ cmluZy0+aXJxX2dldChyZXEtPnJpbmcpKTsKPj4gKyAgICByZXEtPmlycV9lbmFibGVkID0gdHJ1 ZTsKPgo+IFByb2JhYmx5IHNob3VsZG4ndCBzZXQgdGhlIGZsYWcgaWYgaXJxX2dldCBmYWlsZWQg bm90IHRvIHVuYmFsYW5jZSB0aGUgCj4gaXJxIHJlZmNvdW50LgpXaWxsIGFkZCBhbiBpZiBhcm91 bmQgdGhlIFdBUk4uCgo+Cj4+ICsKPj4gKyAgICAvKgo+PiArICAgICAqIEJlY2F1c2UgdGhlIGlu dGVycnVwdCBpcyBvbmx5IGVuYWJsZWQgb24gZGVtYW5kLCB0aGVyZSBpcyBhIHJhY2UKPj4gKyAg ICAgKiB3aGVyZSB0aGUgaW50ZXJydXB0IGNhbiBmaXJlIGJlZm9yZSBhbnlvbmUgaXMgbG9va2lu ZyBmb3IgaXQuIFNvCj4+ICsgICAgICogZG8gYW4gZXhwbGljaXQgY2hlY2sgZm9yIG1pc3NlZCBp bnRlcnJ1cHRzLgo+PiArICAgICAqLwo+PiArICAgIGk5MTVfZ2VtX3JlcXVlc3Rfbm90aWZ5KHJl cS0+cmluZywgZmVuY2VfbG9ja2VkKTsKPj4gICB9Cj4+Cj4+IC1zdGF0aWMgYm9vbCBpOTE1X2dl bV9yZXF1ZXN0X2lzX2NvbXBsZXRlZChzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkKPj4gK3N0YXRp YyBib29sIGk5MTVfZ2VtX3JlcXVlc3RfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKnJl cV9mZW5jZSkKPj4gICB7Cj4+ICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx ID0gY29udGFpbmVyX29mKHJlcV9mZW5jZSwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg dHlwZW9mKCpyZXEpLCBmZW5jZSk7Cj4+ICsKPj4gKyAgICAvKgo+PiArICAgICAqIE5vIG5lZWQg dG8gYWN0dWFsbHkgZW5hYmxlIGludGVycnVwdCBiYXNlZCBwcm9jZXNzaW5nIHVudGlsIHRoZQo+ PiArICAgICAqIHJlcXVlc3QgaGFzIGJlZW4gc3VibWl0dGVkIHRvIHRoZSBoYXJkd2FyZS4gQXQg d2hpY2ggcG9pbnQKPj4gKyAgICAgKiAnaTkxNV9nZW1fcmVxdWVzdF9zdWJtaXQoKScgaXMgY2Fs bGVkLiBTbyBvbmx5IHJlYWxseSBlbmFibGUKPj4gKyAgICAgKiBzaWduYWxsaW5nIGluIHRoZXJl LiBKdXN0IHNldCBhIGZsYWcgdG8gc2F5IHRoYXQgaW50ZXJydXB0cyBhcmUKPj4gKyAgICAgKiB3 YW50ZWQgd2hlbiB0aGUgcmVxdWVzdCBpcyBldmVudHVhbGx5IHN1Ym1pdHRlZC4gT24gdGhlIG90 aGVyIAo+PiBoYW5kCj4+ICsgICAgICogaWYgdGhlIHJlcXVlc3QgaGFzIGFscmVhZHkgYmVlbiBz dWJtaXR0ZWQgdGhlbiBpbnRlcnJ1cHRzIGRvIAo+PiBuZWVkCj4+ICsgICAgICogdG8gYmUgZW5h YmxlZCBub3cuCj4+ICsgICAgICovCj4+ICsKPj4gKyAgICByZXEtPnNpZ25hbF9yZXF1ZXN0ZWQg PSB0cnVlOwo+PiArCj4+ICsgICAgaWYgKCFsaXN0X2VtcHR5KCZyZXEtPnNpZ25hbF9saW5rKSkK Pj4gKyAgICAgICAgaTkxNV9nZW1fcmVxdWVzdF9lbmFibGVfaW50ZXJydXB0KHJlcSwgdHJ1ZSk7 Cj4+ICsKPj4gKyAgICByZXR1cm4gdHJ1ZTsKPj4gK30KPj4gKwo+PiArdm9pZCBpOTE1X2dlbV9y ZXF1ZXN0X25vdGlmeShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBib29sIAo+PiBmZW5j ZV9sb2NrZWQpCj4KPiBJIHRoaW5rIG5hbWUgY291bGQgYmUgaW1wcm92ZSBzaW5jZSB0aGlzIG1h ZGUgbWUgZXhwZWN0IGEgcmVxdWVzdCBpbiAKPiB0aGUgcGFyYW1ldGVyIGxpc3QuCj4KPiBNYXli ZSBpOTE1X2dlbV9ub3RpZnlfcmVxdWVzdHMgPwpUaGUgaWRlYSBiZWhpbmQgdGhlIG5hbWluZyBp cyB0aGF0IGFsbCB0aGUgcmVxdWVzdCBjb2RlIGlzIHByZWZpeGVkIHdpdGggCidpOTE1X2dlbV9y ZXF1ZXN0XycuIFRoaXMgaXMgdGhlIG5vdGlmeSBmdW5jdGlvbiBvZiB0aGF0IHNldCBvZiBpbnRl cmZhY2VzLgoKPgo+PiArewo+PiArICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx LCAqcmVxX25leHQ7Cj4+ICsgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKPj4gICAgICAgdTMyIHNl cW5vOwo+Pgo+PiAtICAgIHNlcW5vID0gcmVxLT5yaW5nLT5nZXRfc2Vxbm8ocmVxLT5yaW5nLCBm YWxzZS8qbGF6eV9jb2hlcmVuY3kqLyk7Cj4+ICsgICAgaWYgKGxpc3RfZW1wdHkoJnJpbmctPmZl bmNlX3NpZ25hbF9saXN0KSkKPj4gKyAgICAgICAgcmV0dXJuOwo+PiArCj4+ICsgICAgaWYgKCFm ZW5jZV9sb2NrZWQpCj4+ICsgICAgICAgIHNwaW5fbG9ja19pcnFzYXZlKCZyaW5nLT5mZW5jZV9s b2NrLCBmbGFncyk7Cj4+ICsKPj4gKyAgICBzZXFubyA9IHJpbmctPmdldF9zZXFubyhyaW5nLCBm YWxzZSk7Cj4KPiBDb3VsZCByZWFkIHRoZSBzZXFubyBvdXRzaWRlIHRoZSBzcGlubG9jaywgYWx0 aG91Z2ggbm90IHRoYXQgaW1wb3J0YW50IAo+IHNpbmNlIHRoZSBwcmltYXJ5IGNhbGxlciBvZiB0 aGlzIGlzIChvciBzaG91bGQgYmUpIHRoZSBpcnEgaGFuZGxlci4KVGhhdCBmaXggaXMgYWxyZWFk eSBkb25lIGluIHBhdGNoICMxMyBvZiB0aGUgbmV3IHNlcmllcy4KCj4KPj4gKwo+PiArICAgIGxp c3RfZm9yX2VhY2hfZW50cnlfc2FmZShyZXEsIHJlcV9uZXh0LCAKPj4gJnJpbmctPmZlbmNlX3Np Z25hbF9saXN0LCBzaWduYWxfbGluaykgewo+PiArICAgICAgICBpZiAoIXJlcS0+Y2FuY2VsbGVk KSB7Cj4+ICsgICAgICAgICAgICBpZiAoIWk5MTVfc2Vxbm9fcGFzc2VkKHNlcW5vLCByZXEtPnNl cW5vKSkKPj4gKyAgICAgICAgICAgICAgICBicmVhazsKPj4gKyAgICAgICAgfQo+PiArCj4+ICsg ICAgICAgIC8qCj4+ICsgICAgICAgICAqIFN0YXJ0IGJ5IHJlbW92aW5nIHRoZSBmZW5jZSBmcm9t IHRoZSBzaWduYWwgbGlzdCBvdGhlcndpc2UKPj4gKyAgICAgICAgICogdGhlIHJldGlyZSBjb2Rl IGNhbiBydW4gY29uY3VycmVudGx5IGFuZCBnZXQgY29uZnVzZWQuCj4+ICsgICAgICAgICAqLwo+ PiArICAgICAgICBsaXN0X2RlbF9pbml0KCZyZXEtPnNpZ25hbF9saW5rKTsKPj4gKwo+PiArICAg ICAgICBpZiAoIXJlcS0+Y2FuY2VsbGVkKSB7Cj4+ICsgICAgICAgICAgICBmZW5jZV9zaWduYWxf bG9ja2VkKCZyZXEtPmZlbmNlKTsKPj4gKyAgICAgICAgfQo+PiArCj4+ICsgICAgICAgIGlmIChy ZXEtPmlycV9lbmFibGVkKSB7Cj4+ICsgICAgICAgICAgICByZXEtPnJpbmctPmlycV9wdXQocmVx LT5yaW5nKTsKPj4gKyAgICAgICAgICAgIHJlcS0+aXJxX2VuYWJsZWQgPSBmYWxzZTsKPj4gKyAg ICAgICAgfQo+PiArCj4+ICsgICAgICAgIC8qIENhbid0IHVucmVmZXJlbmNlIGhlcmUgYmVjYXVz ZSB0aGF0IG1pZ2h0IGdyYWIgZmVuY2VfbG9jayAqLwo+PiArICAgICAgICBsaXN0X2FkZF90YWls KCZyZXEtPnVuc2lnbmFsX2xpbmssICZyaW5nLT5mZW5jZV91bnNpZ25hbF9saXN0KTsKPj4gKyAg ICB9Cj4+Cj4+IC0gICAgcmV0dXJuIGk5MTVfc2Vxbm9fcGFzc2VkKHNlcW5vLCByZXEtPnNlcW5v KTsKPj4gKyAgICBpZiAoIWZlbmNlX2xvY2tlZCkKPj4gKyAgICAgICAgc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmcmluZy0+ZmVuY2VfbG9jaywgZmxhZ3MpOwo+PiAgIH0KPj4KPj4gICBzdGF0aWMg Y29uc3QgY2hhciAqaTkxNV9nZW1fcmVxdWVzdF9nZXRfZHJpdmVyX25hbWUoc3RydWN0IGZlbmNl IAo+PiAqcmVxX2ZlbmNlKQo+PiBAQCAtMjcxMiw3ICsyODUxLDYgQEAgc3RhdGljIHZvaWQgCj4+ IGk5MTVfZ2VtX3JlcXVlc3RfZmVuY2VfdmFsdWVfc3RyKHN0cnVjdCBmZW5jZSAqcmVxX2ZlbmNl LCBjaGFyICpzdHIsCj4+Cj4+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgaTkxNV9n ZW1fcmVxdWVzdF9mb3BzID0gewo+PiAgICAgICAuZW5hYmxlX3NpZ25hbGluZyAgICA9IGk5MTVf Z2VtX3JlcXVlc3RfZW5hYmxlX3NpZ25hbGluZywKPj4gLSAgICAuc2lnbmFsZWQgICAgICAgID0g aTkxNV9nZW1fcmVxdWVzdF9pc19jb21wbGV0ZWQsCj4+ICAgICAgIC53YWl0ICAgICAgICAgICAg PSBmZW5jZV9kZWZhdWx0X3dhaXQsCj4+ICAgICAgIC5yZWxlYXNlICAgICAgICA9IGk5MTVfZ2Vt X3JlcXVlc3RfcmVsZWFzZSwKPj4gICAgICAgLmdldF9kcml2ZXJfbmFtZSAgICA9IGk5MTVfZ2Vt X3JlcXVlc3RfZ2V0X2RyaXZlcl9uYW1lLAo+PiBAQCAtMjc5NSw2ICsyOTMzLDcgQEAgaW50IGk5 MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0IAo+PiBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4+ ICAgICAgICAgICBnb3RvIGVycjsKPj4gICAgICAgfQo+Pgo+PiArICAgIElOSVRfTElTVF9IRUFE KCZyZXEtPnNpZ25hbF9saW5rKTsKPj4gICAgICAgZmVuY2VfaW5pdCgmcmVxLT5mZW5jZSwgJmk5 MTVfZ2VtX3JlcXVlc3RfZm9wcywgJnJpbmctPmZlbmNlX2xvY2ssCj4+IGN0eC0+ZW5naW5lW3Jp bmctPmlkXS5mZW5jZV90aW1lbGluZS5mZW5jZV9jb250ZXh0LAo+PiBpOTE1X2ZlbmNlX3RpbWVs aW5lX2dldF9uZXh0X3NlcW5vKCZjdHgtPmVuZ2luZVtyaW5nLT5pZF0uZmVuY2VfdGltZWxpbmUp KTsKPj4gQEAgLTI4MzIsNiArMjk3MSwxMSBAQCB2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfY2FuY2Vs KHN0cnVjdCAKPj4gZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPj4gICB7Cj4+ICAgICAgIGlu dGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfY2FuY2VsKHJlcS0+cmluZ2J1Zik7Cj4+Cj4+ICsgICAg cmVxLT5jYW5jZWxsZWQgPSB0cnVlOwo+PiArICAgIC8qIEhvdyB0byBwcm9wYWdhdGUgdG8gYW55 IGFzc29jaWF0ZWQgc3luY19mZW5jZT8/PyAqLwo+PiArICAgIHJlcS0+ZmVuY2Uuc3RhdHVzID0g LUVJTlZBTDsKPj4gKyAgICBmZW5jZV9zaWduYWxfbG9ja2VkKCZyZXEtPmZlbmNlKTsKPgo+IFNh bWUgcXVlc3Rpb24gZnJvbSBiZWZvcmUsIGNvdWxkIHlvdSBqdXN0IG1vdmUgaXQgdG8gdW5zaWdu YWxlZCBsaXN0IAo+IHN0cmFpZ2h0IGF3YXk/IChBbmQgZHJvcCBpbnRlcnJ1cHRzPykKQWdhaW4s IGl0IHNlZW1lZCBhIG11Y2ggc2ltcGxlciBkcml2ZXIgaWYgdGhlIHJlcXVlc3QgY29tcGxldGlv biBjb2RlIGlzIApvbmx5IGtlcHQgaW5zaWRlIHRoZSBub3RpZnkgZnVuY3Rpb24gYW5kIG5vdCBy ZXBsaWNhdGVkIHRvIG11bHRpcGxlIHBsYWNlcy4KCj4KPj4gKwo+PiAgICAgICBpOTE1X2dlbV9y ZXF1ZXN0X3VucmVmZXJlbmNlKHJlcSk7Cj4+ICAgfQo+Pgo+PiBAQCAtMjkyNSw2ICszMDY5LDEz IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3Jlc2V0X3JpbmdfY2xlYW51cChzdHJ1Y3QgCj4+IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiAgICAgICAgICAgaTkxNV9nZW1fcmVxdWVzdF9y ZXRpcmUocmVxdWVzdCk7Cj4+ICAgICAgIH0KPj4KPj4gKyAgICAvKgo+PiArICAgICAqIFRpZHkg dXAgYW55dGhpbmcgbGVmdCBvdmVyLiBUaGlzIGluY2x1ZGVzIGEgY2FsbCB0bwo+PiArICAgICAq IGk5MTVfZ2VtX3JlcXVlc3Rfbm90aWZ5KCkgd2hpY2ggd2lsbCBtYWtlIHN1cmUgdGhhdCBhbnkg cmVxdWVzdHMKPj4gKyAgICAgKiB0aGF0IHdlcmUgb24gdGhlIHNpZ25hbCBwZW5kaW5nIGxpc3Qg Z2V0IGFsc28gY2xlYW5lZCB1cC4KPj4gKyAgICAgKi8KPj4gKyAgICBpOTE1X2dlbV9yZXRpcmVf cmVxdWVzdHNfcmluZyhyaW5nKTsKPj4gKwo+PiAgICAgICAvKiBIYXZpbmcgZmx1c2hlZCBhbGwg cmVxdWVzdHMgZnJvbSBhbGwgcXVldWVzLCB3ZSBrbm93IHRoYXQgYWxsCj4+ICAgICAgICAqIHJp bmdidWZmZXJzIG11c3Qgbm93IGJlIGVtcHR5LiBIb3dldmVyLCBzaW5jZSB3ZSBkbyBub3QgcmVj bGFpbQo+PiAgICAgICAgKiBhbGwgc3BhY2Ugd2hlbiByZXRpcmluZyB0aGUgcmVxdWVzdCAodG8g cHJldmVudCBIRUFEcyBjb2xsaWRpbmcKPj4gQEAgLTI5NzQsNiArMzEyNSwxMyBAQCBpOTE1X2dl bV9yZXRpcmVfcmVxdWVzdHNfcmluZyhzdHJ1Y3QgCj4+IGludGVsX2VuZ2luZV9jcyAqcmluZykK Pj4KPj4gICAgICAgV0FSTl9PTihpOTE1X3ZlcmlmeV9saXN0cyhyaW5nLT5kZXYpKTsKPj4KPj4g KyAgICAvKgo+PiArICAgICAqIElmIG5vLW9uZSBoYXMgd2FpdGVkIG9uIGEgcmVxdWVzdCByZWNl bnRseSB0aGVuIGludGVycnVwdHMgd2lsbAo+PiArICAgICAqIG5vdCBoYXZlIGJlZW4gZW5hYmxl ZCBhbmQgdGh1cyBubyByZXF1ZXN0cyB3aWxsIGV2ZXIgYmUgCj4+IG1hcmtlZCBhcwo+PiArICAg ICAqIGNvbXBsZXRlZC4gU28gZG8gYW4gaW50ZXJydXB0IGNoZWNrIG5vdy4KPj4gKyAgICAgKi8K Pj4gKyAgICBpOTE1X2dlbV9yZXF1ZXN0X25vdGlmeShyaW5nLCBmYWxzZSk7Cj4+ICsKPj4gICAg ICAgLyogUmV0aXJlIHJlcXVlc3RzIGZpcnN0IGFzIHdlIHVzZSBpdCBhYm92ZSBmb3IgdGhlIGVh cmx5IHJldHVybi4KPj4gICAgICAgICogSWYgd2UgcmV0aXJlIHJlcXVlc3RzIGxhc3QsIHdlIG1h eSB1c2UgYSBsYXRlciBzZXFubyBhbmQgc28gCj4+IGNsZWFyCj4+ICAgICAgICAqIHRoZSByZXF1 ZXN0cyBsaXN0cyB3aXRob3V0IGNsZWFyaW5nIHRoZSBhY3RpdmUgbGlzdCwgbGVhZGluZyB0bwo+ PiBAQCAtMzAxNSw2ICszMTczLDE1IEBAIGk5MTVfZ2VtX3JldGlyZV9yZXF1ZXN0c19yaW5nKHN0 cnVjdCAKPj4gaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+PiAgICAgICAgICAgaTkxNV9nZW1fcmVx dWVzdF9hc3NpZ24oJnJpbmctPnRyYWNlX2lycV9yZXEsIE5VTEwpOwo+PiAgICAgICB9Cj4+Cj4+ ICsgICAgLyogVGlkeSB1cCBhbnkgcmVxdWVzdHMgdGhhdCB3ZXJlIHJlY2VudGx5IHNpZ25hbGxl ZCAqLwo+PiArICAgIHNwaW5fbG9ja19pcnFzYXZlKCZyaW5nLT5mZW5jZV9sb2NrLCBmbGFncyk7 Cj4KPiBDb3VsZCBhbHNvIHVzZSBzcGluX2xvY2tfaXJxIGhlcmUgSSB0aGluay4KPgo+PiArIGxp c3Rfc3BsaWNlX2luaXQoJnJpbmctPmZlbmNlX3Vuc2lnbmFsX2xpc3QsICZsaXN0X2hlYWQpOwo+ PiArICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnJpbmctPmZlbmNlX2xvY2ssIGZsYWdzKTsK Pj4gKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocmVxLCByZXFfbmV4dCwgJmxpc3RfaGVh ZCwgCj4+IHVuc2lnbmFsX2xpbmspIHsKPj4gKyAgICAgICAgbGlzdF9kZWwoJnJlcS0+dW5zaWdu YWxfbGluayk7Cj4+ICsgICAgICAgIGk5MTVfZ2VtX3JlcXVlc3RfdW5yZWZlcmVuY2UocmVxKTsK Pj4gKyAgICB9Cj4+ICsKPj4gICAgICAgLyogUmVhbGx5IGZyZWUgYW55IHJlcXVlc3RzIHRoYXQg d2VyZSByZWNlbnRseSB1bnJlZmVyZW5jZWQgKi8KPj4gICAgICAgc3Bpbl9sb2NrX2lycXNhdmUo JnJpbmctPmRlbGF5ZWRfZnJlZV9sb2NrLCBmbGFncyk7Cj4+ICAgICAgIGxpc3Rfc3BsaWNlX2lu aXQoJnJpbmctPmRlbGF5ZWRfZnJlZV9saXN0LCAmbGlzdF9oZWFkKTsKPj4gQEAgLTUwNjYsNiAr NTIzMyw4IEBAIGluaXRfcmluZ19saXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ PiAgIHsKPj4gICAgICAgSU5JVF9MSVNUX0hFQUQoJnJpbmctPmFjdGl2ZV9saXN0KTsKPj4gICAg ICAgSU5JVF9MSVNUX0hFQUQoJnJpbmctPnJlcXVlc3RfbGlzdCk7Cj4+ICsgICAgSU5JVF9MSVNU X0hFQUQoJnJpbmctPmZlbmNlX3NpZ25hbF9saXN0KTsKPj4gKyAgICBJTklUX0xJU1RfSEVBRCgm cmluZy0+ZmVuY2VfdW5zaWduYWxfbGlzdCk7Cj4+ICAgICAgIElOSVRfTElTVF9IRUFEKCZyaW5n LT5kZWxheWVkX2ZyZWVfbGlzdCk7Cj4+ICAgfQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2ly cS5jCj4+IGluZGV4IDY4YjA5NGIuLjc0Zjg1NTIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfaXJxLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9p cnEuYwo+PiBAQCAtOTgxLDYgKzk4MSw4IEBAIHN0YXRpYyB2b2lkIG5vdGlmeV9yaW5nKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgCj4+ICpyaW5nKQo+Pgo+PiAgICAgICB0cmFjZV9pOTE1X2dlbV9y ZXF1ZXN0X25vdGlmeShyaW5nKTsKPj4KPj4gKyAgICBpOTE1X2dlbV9yZXF1ZXN0X25vdGlmeShy aW5nLCBmYWxzZSk7Cj4+ICsKPj4gICAgICAgd2FrZV91cF9hbGwoJnJpbmctPmlycV9xdWV1ZSk7 Cj4KPiBUaGlzIGlzIHRoZSBiaWcgb25lIC0gSSB0aGluayB0byBzb2x2ZSB0aGUgdGh1bmRlcmlu ZyBoZXJkIHByb2JsZW0gCj4gdGhpcyBwYXRjaCBzaG91bGQgYWxzbyBpbmNsdWRlIHRoZSByZW1v dmFsIG9mIHJpbmctPmlycV9xdWV1ZSBzaW5jZSBJIAo+IGRvbid0IHRoaW5rIGl0IG5lZWRzIHRv IGtlZXAgZXhpc3RpbmcgYWZ0ZXIgaXQuCj4KPiBGb3IgZXhhbXBsZSBhZGRpbmcgYSByZXEtPndh aXRfcXVldWUgb24gd2hpY2ggX19pOTE1X3dhaXRfcmVxdWVzdCAKPiB3b3VsZCB3YWl0IGluc3Rl YWQgYW5kIGRvaW5nIGEgd2FrZV91cF9hbGwgb24gaXQgZnJvbSAKPiBpOTE1X2dlbV9yZXF1ZXN0 X25vdGlmeT8KPgo+IEJlY2F1c2UgaW4gdGhpcyBmb3JtLCB3aGVuIEkndmUgcmFuIHRoaXMgcGF0 Y2ggc2VyaWVzIGFuZCBpdCBjYXVzZWQgCj4gdGhlIG51bWJlciBvZiBjb250ZXh0IHN3aXRjaGVz IHRvIGdvIHVwIG1vcmUgdGhhbiBzaXggdGltZXMgb24gb25lIAo+IHdvcmtsb2FkLiBJbnRlcnJ1 cHRzIGFsc28gd2VudCB1cCBidXQgb25seSBieSA1MCUgaW4gY29tcGFyaXNvbiBhbmQgCj4gdGlt ZSBzcGVudCBpbiBpcnEgaGFuZGxlcnMgZG91YmxlZC4KPgo+IEJ1dCBjb250ZXh0IHN3aXRjaGVz IGFuZCAxMCUgbW9yZSBjcHUgdGltZSBsb29rIHRoZSBtb3N0IGRyYW1hdGljLgo+Cj4gU28gaXQg d291bGQgYmUgaW50ZXJlc3RpbmcgdG8gc2VlIGlmIHNpbXBseSBtb3ZpbmcgdGhlIHdhaXQgcXVl dWUgdG8gCj4gYmUgcGVyIHJlcXVlc3QgY291bGQgZml4IHRoZSBtYWpvcml0eSBvZiB0aGF0IG9y IG5vdC4KClRoaXMgaWRlYSB3YXMgcG9zdGVkIG9uZSB2ZXJzaW9uIG9mIHRoZSB0aHVuZGVyaW5n IGhlcmQgdGhyZWFkIGFscmVhZHkuIApJIGhhdmVuJ3QgaW1wbGVtZW50ZWQgaXQgeWV0IGFzIEkg aGF2ZW4ndCBoYWQgdGhlIHRpbWUgdG8gbG9vayBpbnRvIApleGFjdGx5IHdoYXQgaXMgcmVxdWly ZWQuIEJ1dCB5ZXMsIGluIHRoZW9yeSB0aGUgZmVuY2UgY29kZSBzaG91bGQgbWVhbiAKdGhlIGly cV9xdWV1ZSBpcyBvYnNvbGV0ZS4gVGhlIHdhaXRlcnMgY2FuIHNpbXBseSByZWdpc3RlciBhIGNh bGxiYWNrIG9uIAp0aGUgcmVxdWVzdCdzIHVuZGVybHlpbmcgZmVuY2Ugb2JqZWN0LiBXaGVuIHRo ZSBpbnRlcnJ1cHQgaGFuZGxlciAKc2lnbmFscyB0aGUgZmVuY2UsIHRoYXQgZmVuY2Ugd2lsbCBw cm9jZXNzIGl0J3MgY2FsbGJhY2sgbGlzdCBhbmQgd2FrZSAKdGhlIHdhaXRlci4gQWxsIG5pY2Vs eSB0YXJnZXRlZCBhbmQgbm8tb25lIGdldHMgd29rZW4gdW5uZWNlc3NhcmlseS4KCj4KPj4gICB9 Cj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAKPj4g Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+PiBpbmRleCAwNmEzOThhLi43NmZj MjQ1IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+PiBAQCAtMTkyMCw2ICsxOTIw LDggQEAgc3RhdGljIGludCBsb2dpY2FsX3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAKPj4g KmRldiwgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluCj4+ICAgICAgIHJpbmctPmRldiA9IGRl djsKPj4gICAgICAgSU5JVF9MSVNUX0hFQUQoJnJpbmctPmFjdGl2ZV9saXN0KTsKPj4gICAgICAg SU5JVF9MSVNUX0hFQUQoJnJpbmctPnJlcXVlc3RfbGlzdCk7Cj4+ICsgICAgSU5JVF9MSVNUX0hF QUQoJnJpbmctPmZlbmNlX3NpZ25hbF9saXN0KTsKPj4gKyAgICBJTklUX0xJU1RfSEVBRCgmcmlu Zy0+ZmVuY2VfdW5zaWduYWxfbGlzdCk7Cj4+ICAgICAgIElOSVRfTElTVF9IRUFEKCZyaW5nLT5k ZWxheWVkX2ZyZWVfbGlzdCk7Cj4+ICAgICAgIHNwaW5fbG9ja19pbml0KCZyaW5nLT5mZW5jZV9s b2NrKTsKPj4gICAgICAgc3Bpbl9sb2NrX2luaXQoJnJpbmctPmRlbGF5ZWRfZnJlZV9sb2NrKTsK Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyAK Pj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPj4gaW5kZXggZTU1 NzNlNy4uMWRlYzI1MiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuYwo+PiBAQCAtMjE1OCw2ICsyMTU4LDggQEAgc3RhdGljIGludCBpbnRlbF9pbml0X3Jpbmdf YnVmZmVyKHN0cnVjdCAKPj4gZHJtX2RldmljZSAqZGV2LAo+PiAgICAgICBJTklUX0xJU1RfSEVB RCgmcmluZy0+cmVxdWVzdF9saXN0KTsKPj4gICAgICAgSU5JVF9MSVNUX0hFQUQoJnJpbmctPmV4 ZWNsaXN0X3F1ZXVlKTsKPj4gICAgICAgSU5JVF9MSVNUX0hFQUQoJnJpbmctPmJ1ZmZlcnMpOwo+ PiArICAgIElOSVRfTElTVF9IRUFEKCZyaW5nLT5mZW5jZV9zaWduYWxfbGlzdCk7Cj4+ICsgICAg SU5JVF9MSVNUX0hFQUQoJnJpbmctPmZlbmNlX3Vuc2lnbmFsX2xpc3QpOwo+PiAgICAgICBJTklU X0xJU1RfSEVBRCgmcmluZy0+ZGVsYXllZF9mcmVlX2xpc3QpOwo+PiAgICAgICBzcGluX2xvY2tf aW5pdCgmcmluZy0+ZmVuY2VfbG9jayk7Cj4+ICAgICAgIHNwaW5fbG9ja19pbml0KCZyaW5nLT5k ZWxheWVkX2ZyZWVfbG9jayk7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmggCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oCj4+IGluZGV4IDc3Mzg0ZWQuLjlkMDllZGIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPj4gQEAgLTM1NCw2ICszNTQsOCBAQCBzdHJ1Y3QgIGlu dGVsX2VuZ2luZV9jcyB7Cj4+ICAgICAgIHUzMiAoKmdldF9jbWRfbGVuZ3RoX21hc2spKHUzMiBj bWRfaGVhZGVyKTsKPj4KPj4gICAgICAgc3BpbmxvY2tfdCBmZW5jZV9sb2NrOwo+PiArICAgIHN0 cnVjdCBsaXN0X2hlYWQgZmVuY2Vfc2lnbmFsX2xpc3Q7Cj4+ICsgICAgc3RydWN0IGxpc3RfaGVh ZCBmZW5jZV91bnNpZ25hbF9saXN0Owo+PiAgIH07Cj4+Cj4+ICAgYm9vbCBpbnRlbF9yaW5nX2lu aXRpYWxpemVkKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwo+Pgo+Cj4gUmVnYXJkcywK Pgo+IFR2cnRrbwo+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=