From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 13/13] RFC: drm: Atomic modeset ioctl Date: Wed, 17 Dec 2014 16:04:15 +0100 Message-ID: <20141217150415.GS2711@phenom.ffwll.local> References: <1418771141-16954-1-git-send-email-robdclark@gmail.com> <1418771141-16954-14-git-send-email-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f179.google.com (mail-wi0-f179.google.com [209.85.212.179]) by gabe.freedesktop.org (Postfix) with ESMTP id 60DAB6E889 for ; Wed, 17 Dec 2014 07:03:40 -0800 (PST) Received: by mail-wi0-f179.google.com with SMTP id ex7so16412571wid.6 for ; Wed, 17 Dec 2014 07:03:39 -0800 (PST) Content-Disposition: inline In-Reply-To: <1418771141-16954-14-git-send-email-robdclark@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Rob Clark Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBEZWMgMTYsIDIwMTQgYXQgMDY6MDU6NDFQTSAtMDUwMCwgUm9iIENsYXJrIHdyb3Rl Ogo+IFRoZSBhdG9taWMgbW9kZXNldCBpb2N0bCBjYW4gYmUgdXNlZCB0byBwdXNoIGFueSBudW1i ZXIgb2YgbmV3IHZhbHVlcwo+IGZvciBvYmplY3QgcHJvcGVydGllcy4gVGhlIGRyaXZlciBjYW4g dGhlbiBjaGVjayB0aGUgZnVsbCBkZXZpY2UKPiBjb25maWd1cmF0aW9uIGFzIHNpbmdsZSB1bml0 LCBhbmQgdHJ5IHRvIGFwcGx5IHRoZSBjaGFuZ2VzIGF0b21pY2FsbHkuCj4gCj4gVGhlIGlvY3Rs IHNpbXBseSB0YWtlcyBhIGxpc3Qgb2Ygb2JqZWN0IElEcyBhbmQgcHJvcGVydHkgSURzIGFuZCB0 aGVpcgo+IHZhbHVlcy4KPiAKPiBPcmlnaW5hbGx5IGJhc2VkIG9uIGEgcGF0Y2ggZnJvbSBWaWxs ZSBTeXJqw6Rsw6QsIGFsdGhvdWdoIGl0IGhhcyBtdXRhdGVkCj4gKG11dGlsYXRlZD8pIGVub3Vn aCBzaW5jZSB0aGVuIHRoYXQgeW91IHByb2JhYmx5IHNob3VsZG4ndCBibGFtZSBpdCBvbgo+IGhp bSA7LSkKPiAKPiBUT0RPOgo+ICAqIGhpZGUgYmVoaW5kIG1vZHVsZXBhcmFtIGluaXRpYWxseQoK WWVhaCB3ZSBuZWVkIHRoaXMsIGFuZCBJIHRoaW5rIHdlIHJlYWxseSBuZWVkIHRoaXMgKHBsdXMK ZmlsZV9wcml2LT5hdG9taWNfa21zIHRvIGFsbG93IG5ldyB1c2Vyc3BhY2UgdG8gZW5hYmxlIGF0 b21pYywgc2ltaWxhciB0bwpmaWxlX3ByaXYtPnVuaXZlcnNhbF9wbGFuZXMpIGV2ZW4gZm9yIHBh dGNoZXMgNiwgMTAmMTEuCgo+ICAqIGVpdGhlciBicmluZyBiYWNrIGJsb2IgcHJvcGVydHkgc3Vw cG9ydCwgb3IgYWRkIGlvY3RscyBmb3IgY3JlYXRlLwo+ICAgIGRlc3Ryb3kgYmxvYiBwcm9wZXJ0 aWVzIHNvIHRoZXkgY2FuIGJlIHBhc3NlZCBpbiBieSBpZCBpbiB0aGlzCj4gICAgaW9jdGwuICBJ J20gbGVhbmluZyB0b3dhcmRzIHRoZSBsYXR0ZXIgYXBwcm9hY2ggYXMgKGEpIGl0IGlzIG1vcmUK PiAgICBpbiBsaW5lIHdpdGggaG93IGJsb2IgcHJvcGVydGllcyBhcmUgcmVhZCwgYW5kIChiKSB0 aGUgYXRvbWljCj4gICAgaW9jdGwgZnVuY3Rpb24gaXMgYmlnIGVub3VnaCBhbHJlYWR5LgoKVGhl IGJsb2IgYXBwcm9hY2ggaXMgYSBiaXQgbW9yZSB3b3JrLCBzaW5jZSB3ZSBuZWVkIHRvIGNvcHlw YXN0ZSBhbGwgdGhlCmxvZ2ljIHdlIGhhdmUgZm9yIHBlci1maWxwcml2IGZyYW1lYnVmZmVyczog Y2xlYW51cCBsaXN0cyAmIHJlZmNvdW50aW5nLgpOb3Qgc3VyZSB3aGV0aGVyIHdlIHNob3VsZCBq dXN0IGdvIHdpdGggbG90cyBtb3JlIHByb3BlcnRpZXMsIHRoZXkncmUKY2hlYXAgOy0pIEJ1dCBJ J20gb2sgd2l0aCB0aGlzIGJsb2IgYXBwcm9hY2gsIHRvby4gQWRkaW5nIGJsb2JzIHRvIHRoZQph dG9taWMgaW9jdGwgaXRzZWxmIGZlZWxzIGEgYml0IHdyb25nLgoKT25lIHRoaW5nIEkgaGF2ZSB0 byBjb25zaWRlciB3aXRoIG15IGludGVsIGhhdCBvbiBpcyB0aGUgYnJpZGdlIHdlIG5lZWQgdG8K YWRmLiBFdmVyeXRpbmcgcGxhaW4gNjRiaXQgcHJvcHMgd291bGQgYmUgYSBiaXQgZWFzaWVyIHRv IG1hcnNoYWwgdGhyb3VnaAphZGYgaW50byBhdG9taWMgaW50ZXJmYWNlcy4gQnV0IG9ubHkgc2xp Z2h0bHksIHdlIGNhbiBqdXN0IGFkZCBhbiBpbi1saW5lCnNldCBvZiBibG9icyBhdCB0aGUgZW5k IGFuZCB3cml0ZSB0aGVtIGRpcmVjdGx5LCB0b28uIFNvIGVpdGhlciBhcHByb2FjaAppcyBmaW5l IHJlYWxseS4KCkJlbG93IGEgZmV3IGNvbW1lbnRzIGFsbCBvdmVyLCBidXQgbG9va3MgZ29vZCBv dmVyYWxsLgoKQ2hlZXJzLCBEYW5pZWwKCj4gCj4gU2lnbmVkLW9mZi1ieTogUm9iIENsYXJrIDxy b2JkY2xhcmtAZ21haWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5j IHwgMzA4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgZHJp dmVycy9ncHUvZHJtL2RybV9jcnRjLmMgICB8ICAgNCArLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJt X2lvY3RsLmMgIHwgICAxICsKPiAgaW5jbHVkZS9kcm0vZHJtX2NydGMuaCAgICAgICB8ICAgNiAr Cj4gIGluY2x1ZGUvdWFwaS9kcm0vZHJtLmggICAgICAgfCAgIDEgKwo+ICBpbmNsdWRlL3VhcGkv ZHJtL2RybV9tb2RlLmggIHwgIDIxICsrKwo+ICA2IGZpbGVzIGNoYW5nZWQsIDMzOSBpbnNlcnRp b25zKCspLCAyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+IGluZGV4IDcxYjQ4 YTAuLmU3YTQ1ZWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiBAQCAtOTYwLDMgKzk2MCwzMTEg QEAgaW50IGRybV9hdG9taWNfYXN5bmNfY29tbWl0KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSkKPiAgCXJldHVybiBjb25maWctPmZ1bmNzLT5hdG9taWNfY29tbWl0KHN0YXRlLT5kZXYs IHN0YXRlLCB0cnVlKTsKPiAgfQo+ICBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfYXN5bmNfY29t bWl0KTsKPiArCj4gKy8qCj4gKyAqIFRoZSBiaWcgbW9uc3RvciBpb2N0bAo+ICsgKi8KPiArCj4g K3N0YXRpYyBzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpjcmVhdGVfdmJsYW5rX2V2 ZW50KAo+ICsJCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9w cml2LCB1aW50NjRfdCB1c2VyX2RhdGEpCj4gK3sKPiArCXN0cnVjdCBkcm1fcGVuZGluZ192Ymxh bmtfZXZlbnQgKmUgPSBOVUxMOwo+ICsJdW5zaWduZWQgbG9uZyBmbGFnczsKPiArCj4gKwlzcGlu X2xvY2tfaXJxc2F2ZSgmZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7Cj4gKwlpZiAoZmlsZV9wcml2 LT5ldmVudF9zcGFjZSA8IHNpemVvZiBlLT5ldmVudCkgewo+ICsJCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJmRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOwo+ICsJCWdvdG8gb3V0Owo+ICsJfQo+ICsJ ZmlsZV9wcml2LT5ldmVudF9zcGFjZSAtPSBzaXplb2YgZS0+ZXZlbnQ7Cj4gKwlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZkZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKPiArCj4gKwllID0ga3phbGxv YyhzaXplb2YgKmUsIEdGUF9LRVJORUwpOwo+ICsJaWYgKGUgPT0gTlVMTCkgewo+ICsJCXNwaW5f bG9ja19pcnFzYXZlKCZkZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKPiArCQlmaWxlX3ByaXYtPmV2 ZW50X3NwYWNlICs9IHNpemVvZiBlLT5ldmVudDsKPiArCQlzcGluX3VubG9ja19pcnFyZXN0b3Jl KCZkZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKPiArCQlnb3RvIG91dDsKPiArCX0KPiArCj4gKwll LT5ldmVudC5iYXNlLnR5cGUgPSBEUk1fRVZFTlRfRkxJUF9DT01QTEVURTsKPiArCWUtPmV2ZW50 LmJhc2UubGVuZ3RoID0gc2l6ZW9mIGUtPmV2ZW50Owo+ICsJZS0+ZXZlbnQudXNlcl9kYXRhID0g dXNlcl9kYXRhOwo+ICsJZS0+YmFzZS5ldmVudCA9ICZlLT5ldmVudC5iYXNlOwo+ICsJZS0+YmFz ZS5maWxlX3ByaXYgPSBmaWxlX3ByaXY7Cj4gKwllLT5iYXNlLmRlc3Ryb3kgPSAodm9pZCAoKikg KHN0cnVjdCBkcm1fcGVuZGluZ19ldmVudCAqKSkga2ZyZWU7Cj4gKwo+ICtvdXQ6Cj4gKwlyZXR1 cm4gZTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZGVzdHJveV92YmxhbmtfZXZlbnQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKPiArCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwgc3RydWN0 IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZSkKPiArewo+ICsJdW5zaWduZWQgbG9uZyBmbGFn czsKPiArCj4gKwlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7Cj4g KwlmaWxlX3ByaXYtPmV2ZW50X3NwYWNlICs9IHNpemVvZiBlLT5ldmVudDsKPiArCXNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJmRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOwo+ICsJa2ZyZWUoZSk7Cj4g K30KCkkgZ3Vlc3MgdGhlc2UgdHdvIGFyZSB0aGUgc2tlbGV0b24gZnVuY3Rpb25zIGZvciB0aGUg cmVmYWN0b3JpbmcgeW91J3ZlCnN0YXJ0ZWQ/IEp1c3QgYW4gYXNpZGUgcmVhbGx5LgoKPiAraW50 IGRybV9tb2RlX2F0b21pY19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJCQkgIHZv aWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQo+ICt7Cj4gKwlzdHJ1Y3QgZHJt X21vZGVfYXRvbWljICphcmcgPSBkYXRhOwo+ICsJdWludDMyX3QgX191c2VyICpvYmpzX3B0ciA9 ICh1aW50MzJfdCBfX3VzZXIgKikodW5zaWduZWQgbG9uZykoYXJnLT5vYmpzX3B0cik7Cj4gKwl1 aW50MzJfdCBfX3VzZXIgKmNvdW50X3Byb3BzX3B0ciA9ICh1aW50MzJfdCBfX3VzZXIgKikodW5z aWduZWQgbG9uZykoYXJnLT5jb3VudF9wcm9wc19wdHIpOwo+ICsJdWludDMyX3QgX191c2VyICpw cm9wc19wdHIgPSAodWludDMyX3QgX191c2VyICopKHVuc2lnbmVkIGxvbmcpKGFyZy0+cHJvcHNf cHRyKTsKPiArCXVpbnQ2NF90IF9fdXNlciAqcHJvcF92YWx1ZXNfcHRyID0gKHVpbnQ2NF90IF9f dXNlciAqKSh1bnNpZ25lZCBsb25nKShhcmctPnByb3BfdmFsdWVzX3B0cik7Cj4gKwl1bnNpZ25l ZCBpbnQgY29waWVkX29ianMsIGNvcGllZF9wcm9wczsKPiArCXN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZTsKPiArCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCBjdHg7Cj4gKwlz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiArCXVuc2lnbmVkIHBsYW5lX21hc2sgPSAwOwo+ICsJ aW50IHJldCA9IDA7Cj4gKwl1bnNpZ25lZCBpbnQgaSwgajsKPiArCj4gKwlpZiAoYXJnLT5mbGFn cyAmIH5EUk1fTU9ERV9BVE9NSUNfRkxBR1MpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJ LyogY2FuJ3QgdGVzdCBhbmQgZXhwZWN0IGFuIGV2ZW50IGF0IHRoZSBzYW1lIHRpbWUuICovCj4g KwlpZiAoKGFyZy0+ZmxhZ3MgJiBEUk1fTU9ERV9BVE9NSUNfVEVTVF9PTkxZKSAmJgo+ICsJCQko YXJnLT5mbGFncyAmIERSTV9NT0RFX1BBR0VfRkxJUF9FVkVOVCkpCj4gKwkJcmV0dXJuIC1FSU5W QUw7CgpNYXliZSBjaGVjayBmb3IgYXN5bmMgaW1wbGllcyBub25ibG9jaywgdG9vPwoKQW5kIEkg dGhpbmsgd2UgbmVlZCB0byB3cml0ZSB0aGUgZmxhZ3MgZnJvbSB1c2Vyc3BhY2UgaW50bwpkcm1f YXRvbWljX3N0YXRlLiBBdCBsZWFzdCBmb3IgbW9zdCBodyBhc3luYyBmbGlwcyBoYXZlIGZhaXJs eSBzdHJpY3QKcmVxdWlyZW1lbnRzLCBhIGxvdCBzdHJpY3RlciB0aGFuIG5vcm1hbCBmbGlwcyBh dCBsZWFzdC4KCk9yIHdlIGp1c3QgZGlzYWxsb3cgYXN5bmMgdXBkYXRlcyBmb3Igbm93IHRocm91 Z2ggYXRvbWljLgoKPiArCj4gKwlkcm1fbW9kZXNldF9hY3F1aXJlX2luaXQoJmN0eCwgMCk7Cj4g Kwo+ICsJc3RhdGUgPSBkcm1fYXRvbWljX3N0YXRlX2FsbG9jKGRldik7Cj4gKwlpZiAoIXN0YXRl KQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsKPiArCXN0YXRlLT5hY3F1aXJlX2N0eCA9ICZjdHg7 Cj4gKwo+ICtyZXRyeToKPiArCWNvcGllZF9vYmpzID0gMDsKPiArCWNvcGllZF9wcm9wcyA9IDA7 Cj4gKwo+ICsJZm9yIChpID0gMDsgaSA8IGFyZy0+Y291bnRfb2JqczsgaSsrKSB7Cj4gKwkJdWlu dDMyX3Qgb2JqX2lkLCBjb3VudF9wcm9wczsKPiArCQlzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpv Ymo7Cj4gKwo+ICsJCWlmIChnZXRfdXNlcihvYmpfaWQsIG9ianNfcHRyICsgY29waWVkX29ianMp KSB7Cj4gKwkJCXJldCA9IC1FRkFVTFQ7Cj4gKwkJCWdvdG8gZmFpbDsKPiArCQl9Cj4gKwo+ICsJ CW9iaiA9IGRybV9tb2RlX29iamVjdF9maW5kKGRldiwgb2JqX2lkLCBEUk1fTU9ERV9PQkpFQ1Rf QU5ZKTsKPiArCQlpZiAoIW9iaiB8fCAhb2JqLT5wcm9wZXJ0aWVzKSB7Cj4gKwkJCXJldCA9IC1F Tk9FTlQ7Cj4gKwkJCWdvdG8gZmFpbDsKPiArCQl9Cj4gKwo+ICsJCWlmIChvYmotPnR5cGUgPT0g RFJNX01PREVfT0JKRUNUX1BMQU5FKSB7Cj4gKwkJCXBsYW5lID0gb2JqX3RvX3BsYW5lKG9iaik7 Cj4gKwkJCXBsYW5lX21hc2sgfD0gKDEgPDwgZHJtX3BsYW5lX2luZGV4KHBsYW5lKSk7Cj4gKwkJ CXBsYW5lLT5vbGRfZmIgPSBwbGFuZS0+ZmI7Cj4gKwkJfQo+ICsKPiArCQlpZiAoZ2V0X3VzZXIo Y291bnRfcHJvcHMsIGNvdW50X3Byb3BzX3B0ciArIGNvcGllZF9vYmpzKSkgewo+ICsJCQlyZXQg PSAtRUZBVUxUOwo+ICsJCQlnb3RvIGZhaWw7Cj4gKwkJfQo+ICsKPiArCQljb3BpZWRfb2Jqcysr Owo+ICsKPiArCQlmb3IgKGogPSAwOyBqIDwgY291bnRfcHJvcHM7IGorKykgewoKSWYgaXQncyBu b3QgdG9vIGhvcnJpYmxlIEkgdGhpbmsgZXh0cmFjdGluZyB0aGUgaW5uZXIgcHJvcGVydGllcyBs b29wCndvdWxkIGJlIHJlYWxseSBuaWNlIHRvIHRhbWUgdGhlIG1vbnN0ZXIuCgo+ICsJCQl1aW50 MzJfdCBwcm9wX2lkOwo+ICsJCQl1aW50NjRfdCBwcm9wX3ZhbHVlOwo+ICsJCQlzdHJ1Y3QgZHJt X3Byb3BlcnR5ICpwcm9wOwo+ICsJCQlzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpyZWY7Cj4gKwo+ ICsJCQlpZiAoZ2V0X3VzZXIocHJvcF9pZCwgcHJvcHNfcHRyICsgY29waWVkX3Byb3BzKSkgewo+ ICsJCQkJcmV0ID0gLUVGQVVMVDsKPiArCQkJCWdvdG8gZmFpbDsKPiArCQkJfQo+ICsKPiArCQkJ cHJvcCA9IGRybV9wcm9wZXJ0eV9maW5kKGRldiwgcHJvcF9pZCk7Cj4gKwkJCWlmICghcHJvcCkg ewo+ICsJCQkJcmV0ID0gLUVOT0VOVDsKPiArCQkJCWdvdG8gZmFpbDsKPiArCQkJfQo+ICsKPiAr CQkJaWYgKGdldF91c2VyKHByb3BfdmFsdWUsIHByb3BfdmFsdWVzX3B0ciArIGNvcGllZF9wcm9w cykpIHsKPiArCQkJCXJldCA9IC1FRkFVTFQ7Cj4gKwkJCQlnb3RvIGZhaWw7Cj4gKwkJCX0KPiAr Cj4gKwkJCWlmICghZHJtX3Byb3BlcnR5X2NoYW5nZV92YWxpZF9nZXQocHJvcCwgcHJvcF92YWx1 ZSwgJnJlZikpIHsKPiArCQkJCXJldCA9IC1FSU5WQUw7Cj4gKwkJCQlnb3RvIGZhaWw7Cj4gKwkJ CX0KPiArCj4gKwkJCXN3aXRjaCAob2JqLT50eXBlKSB7Cj4gKwkJCWNhc2UgRFJNX01PREVfT0JK RUNUX0NPTk5FQ1RPUjogewo+ICsJCQkJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9 IG9ial90b19jb25uZWN0b3Iob2JqKTsKPiArCQkJCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRl ICpjb25uZWN0b3Jfc3RhdGU7Cj4gKwo+ICsJCQkJY29ubmVjdG9yX3N0YXRlID0gZHJtX2F0b21p Y19nZXRfY29ubmVjdG9yX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IpOwo+ICsJCQkJaWYgKElTX0VS Uihjb25uZWN0b3Jfc3RhdGUpKSB7Cj4gKwkJCQkJcmV0ID0gUFRSX0VSUihjb25uZWN0b3Jfc3Rh dGUpOwo+ICsJCQkJCWJyZWFrOwo+ICsJCQkJfQo+ICsKPiArCQkJCXJldCA9IGRybV9hdG9taWNf Y29ubmVjdG9yX3NldF9wcm9wZXJ0eShjb25uZWN0b3IsCj4gKwkJCQkJCWNvbm5lY3Rvcl9zdGF0 ZSwgcHJvcCwgcHJvcF92YWx1ZSk7Cj4gKwkJCQlicmVhazsKPiArCQkJfQo+ICsJCQljYXNlIERS TV9NT0RFX09CSkVDVF9DUlRDOiB7Cj4gKwkJCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBvYmpf dG9fY3J0YyhvYmopOwo+ICsJCQkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+ ICsKPiArCQkJCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLCBj cnRjKTsKPiArCQkJCWlmIChJU19FUlIoY3J0Y19zdGF0ZSkpIHsKPiArCQkJCQlyZXQgPSBQVFJf RVJSKGNydGNfc3RhdGUpOwo+ICsJCQkJCWJyZWFrOwo+ICsJCQkJfQo+ICsKPiArCQkJCXJldCA9 IGRybV9hdG9taWNfY3J0Y19zZXRfcHJvcGVydHkoY3J0YywKPiArCQkJCQkJY3J0Y19zdGF0ZSwg cHJvcCwgcHJvcF92YWx1ZSk7Cj4gKwkJCQlicmVhazsKPiArCQkJfQo+ICsJCQljYXNlIERSTV9N T0RFX09CSkVDVF9QTEFORTogewo+ICsJCQkJc3RydWN0IGRybV9wbGFuZSAqcGxhbmUgPSBvYmpf dG9fcGxhbmUob2JqKTsKPiArCQkJCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRl Owo+ICsKPiArCQkJCXBsYW5lX3N0YXRlID0gZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUoc3Rh dGUsIHBsYW5lKTsKPiArCQkJCWlmIChJU19FUlIocGxhbmVfc3RhdGUpKSB7Cj4gKwkJCQkJcmV0 ID0gUFRSX0VSUihwbGFuZV9zdGF0ZSk7Cj4gKwkJCQkJYnJlYWs7Cj4gKwkJCQl9Cj4gKwo+ICsJ CQkJcmV0ID0gZHJtX2F0b21pY19wbGFuZV9zZXRfcHJvcGVydHkocGxhbmUsCj4gKwkJCQkJCXBs YW5lX3N0YXRlLCBwcm9wLCBwcm9wX3ZhbHVlKTsKPiArCQkJCWJyZWFrOwo+ICsJCQl9Cj4gKwkJ CWRlZmF1bHQ6Cj4gKwkJCQlyZXQgPSAtRUlOVkFMOwo+ICsJCQkJYnJlYWs7Cj4gKwkJCX0KPiAr Cj4gKwkJCWNvcGllZF9wcm9wcysrOwo+ICsKPiArCQkJZHJtX3Byb3BlcnR5X2NoYW5nZV92YWxp ZF9wdXQocHJvcCwgcmVmKTsKPiArCj4gKwkJCWlmIChyZXQpCj4gKwkJCQlnb3RvIGZhaWw7Cj4g KwkJfQo+ICsJfQo+ICsKPiArCWlmIChhcmctPmZsYWdzICYgRFJNX01PREVfUEFHRV9GTElQX0VW RU5UKSB7Cj4gKwkJaW50IG5jcnRjcyA9IGRldi0+bW9kZV9jb25maWcubnVtX2NydGM7Cj4gKwo+ ICsJCWZvciAoaSA9IDA7IGkgPCBuY3J0Y3M7IGkrKykgewo+ICsJCQlzdHJ1Y3QgZHJtX2NydGNf c3RhdGUgKmNydGNfc3RhdGUgPSBzdGF0ZS0+Y3J0Y19zdGF0ZXNbaV07Cj4gKwkJCXN0cnVjdCBk cm1fcGVuZGluZ192YmxhbmtfZXZlbnQgKmU7Cj4gKwo+ICsJCQlpZiAoIWNydGNfc3RhdGUpCj4g KwkJCQljb250aW51ZTsKPiArCj4gKwkJCWUgPSBjcmVhdGVfdmJsYW5rX2V2ZW50KGRldiwgZmls ZV9wcml2LCBhcmctPnVzZXJfZGF0YSk7Cj4gKwkJCWlmICghZSkgewo+ICsJCQkJcmV0ID0gLUVO T01FTTsKPiArCQkJCWdvdG8gZmFpbDsKPiArCQkJfQo+ICsKPiArCQkJY3J0Y19zdGF0ZS0+ZXZl bnQgPSBlOwo+ICsJCX0KPiArCX0KPiArCj4gKwkvKiBzYW5pdHkgY2hlY2sgaW5jb21pbmcgc3Rh dGUsIGJlY2F1c2UgZGFudmV0IHdhbnRlZCB0aGlzCj4gKwkgKiB0byBiZSBhbiBldmVuIGJpZ2dl ciBtb25zdGVyIGlvY3RsIGFuZCB3YW50ZWQgdG8gYmUgYWJsZQo+ICsJICogdG8gV0FSTl9PTigp IGluIHRoZXNlIGNhc2VzIGluIHRoZSBoZWxwZXJzOgo+ICsJICovCj4gKwlkcm1fZm9yX2VhY2hf cGxhbmVfbWFzayhwbGFuZSwgZGV2LCBwbGFuZV9tYXNrKSB7Cj4gKwkJc3RydWN0IGRybV9wbGFu ZV9zdGF0ZSAqcGxhbmVfc3RhdGUgPQo+ICsJCQlkcm1fYXRvbWljX2dldF9wbGFuZV9zdGF0ZShz dGF0ZSwgcGxhbmUpOwo+ICsKPiArCQlpZiAoSVNfRVJSKHBsYW5lX3N0YXRlKSkgewo+ICsJCQly ZXQgPSBQVFJfRVJSKHBsYW5lX3N0YXRlKTsKPiArCQkJZ290byBmYWlsOwo+ICsJCX0KPiArCj4g KwkJaWYgKFdBUk5fT04ocGxhbmVfc3RhdGUtPmNydGMgJiYgIXBsYW5lX3N0YXRlLT5mYikpIHsK PiArCQkJRFJNX0RFQlVHX0tNUygiQ1JUQyBzZXQgYnV0IG5vIEZCXG4iKTsKPiArCQkJcmV0ID0g LUVJTlZBTDsKPiArCQkJZ290byBmYWlsOwo+ICsJCX0gZWxzZSBpZiAoV0FSTl9PTihwbGFuZV9z dGF0ZS0+ZmIgJiYgIXBsYW5lX3N0YXRlLT5jcnRjKSkgewo+ICsJCQlEUk1fREVCVUdfS01TKCJG QiBzZXQgYnV0IG5vIENSVENcbiIpOwo+ICsJCQlyZXQgPSAtRUlOVkFMOwo+ICsJCQlnb3RvIGZh aWw7Cj4gKwkJfQo+ICsJfQoKV2l0aCBteSBzdWdnZXN0aW9uIHRvIG1vdmUgdGhlIGNoZWNrcyBm cm9tIGhlbGVwcnMgdG8gY2hlY2tfb25seSB3ZSBjb3VsZApyZW1vdmUgdGhlIGFib3ZlIGh1bmsg YXMgcmVkdW5kYW50LgoKPiArCj4gKwlpZiAoYXJnLT5mbGFncyAmIERSTV9NT0RFX0FUT01JQ19U RVNUX09OTFkpIHsKPiArCQlyZXQgPSBkcm1fYXRvbWljX2NoZWNrX29ubHkoc3RhdGUpOwo+ICsJ CS8qIF9jaGVja19vbmx5KCkgZG9lcyBub3QgZnJlZSBzdGF0ZSwgdW5saWtlIF9jb21taXQoKSAq Lwo+ICsJCWRybV9hdG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7Cj4gKwl9IGVsc2UgaWYgKGFyZy0+ ZmxhZ3MgJiBEUk1fTU9ERV9BVE9NSUNfTk9OQkxPQ0spIHsKPiArCQlyZXQgPSBkcm1fYXRvbWlj X2FzeW5jX2NvbW1pdChzdGF0ZSk7Cj4gKwl9IGVsc2Ugewo+ICsJCXJldCA9IGRybV9hdG9taWNf Y29tbWl0KHN0YXRlKTsKPiArCX0KPiArCj4gKwkvKiBpZiBzdWNjZWVkZWQsIGZpeHVwIGxlZ2Fj eSBwbGFuZSBjcnRjL2ZiIHB0cnMgYmVmb3JlIGRyb3BwaW5nCj4gKwkgKiBsb2NrcyAoaWUuIHdo aWxlIGl0IGlzIHN0aWxsIHNhZmUgdG8gZGVyZWYgcGxhbmUtPnN0YXRlKS4gIFdlCj4gKwkgKiBu ZWVkIHRvIGRvIHRoaXMgaGVyZSBiZWNhdXNlIHRoZSBkcml2ZXIgZW50cnkgcG9pbnRzIGNhbm5v dAo+ICsJICogZGlzdGluZ3Vpc2ggYmV0d2VlbiBsZWdhY3kgYW5kIGF0b21pYyBpb2N0bHMuCj4g KwkgKi8KPiArCWRybV9mb3JfZWFjaF9wbGFuZV9tYXNrKHBsYW5lLCBkZXYsIHBsYW5lX21hc2sp IHsKPiArCQlpZiAocmV0ID09IDApIHsKPiArCQkJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqbmV3 X2ZiID0gcGxhbmUtPnN0YXRlLT5mYjsKPiArCQkJaWYgKG5ld19mYikKPiArCQkJCWRybV9mcmFt ZWJ1ZmZlcl9yZWZlcmVuY2UobmV3X2ZiKTsKPiArCQkJcGxhbmUtPmZiID0gbmV3X2ZiOwo+ICsJ CQlwbGFuZS0+Y3J0YyA9IHBsYW5lLT5zdGF0ZS0+Y3J0YzsKPiArCQl9IGVsc2Ugewo+ICsJCQlw bGFuZS0+b2xkX2ZiID0gTlVMTDsKPiArCQl9Cj4gKwkJaWYgKHBsYW5lLT5vbGRfZmIpIHsKPiAr CQkJZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKHBsYW5lLT5vbGRfZmIpOwo+ICsJCQlwbGFu ZS0+b2xkX2ZiID0gTlVMTDsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJZHJtX21vZGVzZXRfZHJvcF9s b2NrcygmY3R4KTsKPiArCWRybV9tb2Rlc2V0X2FjcXVpcmVfZmluaSgmY3R4KTsKPiArCj4gKwly ZXR1cm4gcmV0Owo+ICsKPiArZmFpbDoKPiArCWlmIChyZXQgPT0gLUVERUFETEspCj4gKwkJZ290 byBiYWNrb2ZmOwo+ICsKPiArCWlmIChhcmctPmZsYWdzICYgRFJNX01PREVfUEFHRV9GTElQX0VW RU5UKSB7Cj4gKwkJaW50IG5jcnRjcyA9IGRldi0+bW9kZV9jb25maWcubnVtX2NydGM7Cj4gKwo+ ICsJCWZvciAoaSA9IDA7IGkgPCBuY3J0Y3M7IGkrKykgewo+ICsJCQlzdHJ1Y3QgZHJtX2NydGNf c3RhdGUgKmNydGNfc3RhdGUgPSBzdGF0ZS0+Y3J0Y19zdGF0ZXNbaV07Cj4gKwo+ICsJCQlpZiAo IWNydGNfc3RhdGUpCj4gKwkJCQljb250aW51ZTsKPiArCj4gKwkJCWRlc3Ryb3lfdmJsYW5rX2V2 ZW50KGRldiwgZmlsZV9wcml2LCBjcnRjX3N0YXRlLT5ldmVudCk7Cj4gKwkJCWNydGNfc3RhdGUt PmV2ZW50ID0gTlVMTDsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJZHJtX2F0b21pY19zdGF0ZV9mcmVl KHN0YXRlKTsKPiArCj4gKwlkcm1fbW9kZXNldF9kcm9wX2xvY2tzKCZjdHgpOwo+ICsJZHJtX21v ZGVzZXRfYWNxdWlyZV9maW5pKCZjdHgpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gKwo+ICtiYWNr b2ZmOgo+ICsJZHJtX2F0b21pY19zdGF0ZV9jbGVhcihzdGF0ZSk7Cj4gKwlkcm1fbW9kZXNldF9i YWNrb2ZmKCZjdHgpOwo+ICsKPiArCWdvdG8gcmV0cnk7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwo+IGlu ZGV4IDM5YzNlMDYuLjk0OGQwNGQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9j cnRjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwo+IEBAIC00Mjk5LDcgKzQy OTksNyBAQCBFWFBPUlRfU1lNQk9MKGRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9w ZXJ0eSk7Cj4gICAqIG9iamVjdCB0byB3aGljaCB0aGUgcHJvcGVydHkgaXMgYXR0YWNoZWQgaGFz IGEgY2hhbmNlIHRvIHRha2UgaXQncyBvd24KPiAgICogcmVmZXJlbmNlKS4KPiAgICovCj4gLXN0 YXRpYyBib29sIGRybV9wcm9wZXJ0eV9jaGFuZ2VfdmFsaWRfZ2V0KHN0cnVjdCBkcm1fcHJvcGVy dHkgKnByb3BlcnR5LAo+ICtib29sIGRybV9wcm9wZXJ0eV9jaGFuZ2VfdmFsaWRfZ2V0KHN0cnVj dCBkcm1fcHJvcGVydHkgKnByb3BlcnR5LAo+ICAJCQkJCSB1aW50NjRfdCB2YWx1ZSwgc3RydWN0 IGRybV9tb2RlX29iamVjdCAqKnJlZikKPiAgewo+ICAJaWYgKHByb3BlcnR5LT5mbGFncyAmIERS TV9NT0RFX1BST1BfSU1NVVRBQkxFKQo+IEBAIC00MzUzLDcgKzQzNTMsNyBAQCBzdGF0aWMgYm9v bCBkcm1fcHJvcGVydHlfY2hhbmdlX3ZhbGlkX2dldChzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9w ZXJ0eSwKPiAgCX0KPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgZHJtX3Byb3BlcnR5X2NoYW5nZV92 YWxpZF9wdXQoc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCj4gK3ZvaWQgZHJtX3Byb3Bl cnR5X2NoYW5nZV92YWxpZF9wdXQoc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCj4gIAkJ c3RydWN0IGRybV9tb2RlX29iamVjdCAqcmVmKQo+ICB7Cj4gIAlpZiAoIXJlZikKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9p b2N0bC5jCj4gaW5kZXggMDA1ODdhMS4uZmU3NjgxNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2lvY3RsLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKPiBA QCAtNjIwLDYgKzYyMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgZHJt X2lvY3Rsc1tdID0gewo+ICAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9PQkpfR0VUUFJP UEVSVElFUywgZHJtX21vZGVfb2JqX2dldF9wcm9wZXJ0aWVzX2lvY3RsLCBEUk1fQ09OVFJPTF9B TExPV3xEUk1fVU5MT0NLRUQpLAo+ICAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9PQkpf U0VUUFJPUEVSVFksIGRybV9tb2RlX29ial9zZXRfcHJvcGVydHlfaW9jdGwsIERSTV9NQVNURVJ8 RFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKPiAgCURSTV9JT0NUTF9ERUYoRFJNX0lP Q1RMX01PREVfQ1VSU09SMiwgZHJtX21vZGVfY3Vyc29yMl9pb2N0bCwgRFJNX01BU1RFUnxEUk1f Q09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAo+ICsJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExf TU9ERV9BVE9NSUMsIGRybV9tb2RlX2F0b21pY19pb2N0bCwgRFJNX01BU1RFUnxEUk1fQ09OVFJP TF9BTExPV3xEUk1fVU5MT0NLRUQpLAo+ICB9Owo+ICAKPiAgI2RlZmluZSBEUk1fQ09SRV9JT0NU TF9DT1VOVAlBUlJBWV9TSVpFKCBkcm1faW9jdGxzICkKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9k cm0vZHJtX2NydGMuaCBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiBpbmRleCA0OGZjZDk4Li44 MzMwNjc2IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiArKysgYi9pbmNs dWRlL2RybS9kcm1fY3J0Yy5oCj4gQEAgLTEzMzIsNiArMTMzMiwxMCBAQCBleHRlcm4gaW50IGRy bV9tb2RlX2NyZWF0ZV9zY2FsaW5nX21vZGVfcHJvcGVydHkoc3RydWN0IGRybV9kZXZpY2UgKmRl dik7Cj4gIGV4dGVybiBpbnQgZHJtX21vZGVfY3JlYXRlX2FzcGVjdF9yYXRpb19wcm9wZXJ0eShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgZXh0ZXJuIGludCBkcm1fbW9kZV9jcmVhdGVfZGly dHlfaW5mb19wcm9wZXJ0eShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgZXh0ZXJuIGludCBk cm1fbW9kZV9jcmVhdGVfc3VnZ2VzdGVkX29mZnNldF9wcm9wZXJ0aWVzKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpOwo+ICtleHRlcm4gYm9vbCBkcm1fcHJvcGVydHlfY2hhbmdlX3ZhbGlkX2dldChz dHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKPiArCQkJCQkgdWludDY0X3QgdmFsdWUsIHN0 cnVjdCBkcm1fbW9kZV9vYmplY3QgKipyZWYpOwo+ICtleHRlcm4gdm9pZCBkcm1fcHJvcGVydHlf Y2hhbmdlX3ZhbGlkX3B1dChzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKPiArCQlzdHJ1 Y3QgZHJtX21vZGVfb2JqZWN0ICpyZWYpOwo+ICAKPiAgZXh0ZXJuIGludCBkcm1fbW9kZV9jb25u ZWN0b3JfYXR0YWNoX2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAg CQkJCQkgICAgIHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7Cj4gQEAgLTE0MjMsNiArMTQy Nyw4IEBAIGV4dGVybiBpbnQgZHJtX21vZGVfb2JqX3NldF9wcm9wZXJ0eV9pb2N0bChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICBleHRlcm4gaW50IGRybV9tb2RlX3BsYW5l X3NldF9vYmpfcHJvcChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCQkJCSAgICAgICBzdHJ1 Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKPiAgCQkJCSAgICAgICB1aW50NjRfdCB2YWx1ZSk7 Cj4gK2V4dGVybiBpbnQgZHJtX21vZGVfYXRvbWljX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gKwkJCQkgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwo+ICAK PiAgZXh0ZXJuIHZvaWQgZHJtX2ZiX2dldF9icHBfZGVwdGgodWludDMyX3QgZm9ybWF0LCB1bnNp Z25lZCBpbnQgKmRlcHRoLAo+ICAJCQkJIGludCAqYnBwKTsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVk ZS91YXBpL2RybS9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgKPiBpbmRleCBiMGI4NTU2 Li45Y2VhOTY2IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgKPiArKysgYi9p bmNsdWRlL3VhcGkvZHJtL2RybS5oCj4gQEAgLTc3Nyw2ICs3NzcsNyBAQCBzdHJ1Y3QgZHJtX3By aW1lX2hhbmRsZSB7Cj4gICNkZWZpbmUgRFJNX0lPQ1RMX01PREVfT0JKX0dFVFBST1BFUlRJRVMJ RFJNX0lPV1IoMHhCOSwgc3RydWN0IGRybV9tb2RlX29ial9nZXRfcHJvcGVydGllcykKPiAgI2Rl ZmluZSBEUk1fSU9DVExfTU9ERV9PQkpfU0VUUFJPUEVSVFkJRFJNX0lPV1IoMHhCQSwgc3RydWN0 IGRybV9tb2RlX29ial9zZXRfcHJvcGVydHkpCj4gICNkZWZpbmUgRFJNX0lPQ1RMX01PREVfQ1VS U09SMgkJRFJNX0lPV1IoMHhCQiwgc3RydWN0IGRybV9tb2RlX2N1cnNvcjIpCj4gKyNkZWZpbmUg RFJNX0lPQ1RMX01PREVfQVRPTUlDCQlEUk1fSU9XUigweEJDLCBzdHJ1Y3QgZHJtX21vZGVfYXRv bWljKQo+ICAKPiAgLyoqCj4gICAqIERldmljZSBzcGVjaWZpYyBpb2N0bHMgc2hvdWxkIG9ubHkg YmUgaW4gdGhlaXIgcmVzcGVjdGl2ZSBoZWFkZXJzCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFw aS9kcm0vZHJtX21vZGUuaCBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaAo+IGluZGV4IDg2 NTc0YjAuLjM0NTk3NzggMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5o Cj4gKysrIGIvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCj4gQEAgLTUxOSw0ICs1MTksMjUg QEAgc3RydWN0IGRybV9tb2RlX2Rlc3Ryb3lfZHVtYiB7Cj4gIAl1aW50MzJfdCBoYW5kbGU7Cj4g IH07Cj4gIAo+ICsvKiBwYWdlLWZsaXAgZmxhZ3MgYXJlIHZhbGlkLCBwbHVzOiAqLwo+ICsjZGVm aW5lIERSTV9NT0RFX0FUT01JQ19URVNUX09OTFkgMHgwMTAwCj4gKyNkZWZpbmUgRFJNX01PREVf QVRPTUlDX05PTkJMT0NLICAweDAyMDAKPiArCj4gKyNkZWZpbmUgRFJNX01PREVfQVRPTUlDX0ZM QUdTIChcCj4gKwkJRFJNX01PREVfUEFHRV9GTElQX0VWRU5UIHxcCj4gKwkJRFJNX01PREVfUEFH RV9GTElQX0FTWU5DIHxcCj4gKwkJRFJNX01PREVfQVRPTUlDX1RFU1RfT05MWSB8XAo+ICsJCURS TV9NT0RFX0FUT01JQ19OT05CTE9DSykKCkp1c3QgZm9yIGZ1dHVyZS1wcm9vZmluZzogU2hvdWxk IHdlIGFkZCBhbiBBVE9NSUNfQUxMT1dfTU9ERVNFVCByaWdodCBhd2F5CihhbmQgYWRkIGNoZWNr cyBpbiB0aGUgaGVscGVycyBmb3IgdGhhdCBjYXNlLCBzaG91bGQganVzdCBiZSBhIGNoZWNrIGZv cgpjcnRjX3N0YXRlLT5tb2Rlc2V0X2NoYW5nZWQgYXQgdGhlIHZlcnkgZW5kIG9mCmF0b21pY19o ZWxwZXJfY2hlY2tfbW9kZXNldD8KCkkgcmVhbGx5IHRoaW5rIHdlIG5lZWQgdG8gY2xhcmlmeSB0 aGlzIGJlZm9yZSB3ZSBtYWtlIHRoZSBhYmkgc3RhYmxlLApvdGhlcndpc2UgdGhlcmUgd2lsbCBi ZSBzdXJwcmlzZSBjb21wb3NpdG9ycyBkb2luZyBhIGZ1bGwgbW9kZXNldCBvbmNlIHBlcgpmcmFt ZS4gV2hpY2ggaXMgdG90YWxseSB1bmNvb2wgb2ZjLiBCdXQgZG9lc24ndCBuZWVkIHRvIGJlIGRv bmUgcmlnaHQKYXdheSwgYnV0IGEgc21hbGwgcGF0Y2ggb24gdG9wIHdvdWxkIGJlIGdyZWF0IChz aW5jZSBpdCdzIHNvIHNpbXBsZSB3aXRoCmhlbHBlcnMgYXQgbGVhc3QpLgoKPiArCj4gK3N0cnVj dCBkcm1fbW9kZV9hdG9taWMgewo+ICsJX191MzIgZmxhZ3M7Cj4gKwlfX3UzMiBjb3VudF9vYmpz Owo+ICsJX191NjQgb2Jqc19wdHI7Cj4gKwlfX3U2NCBjb3VudF9wcm9wc19wdHI7Cj4gKwlfX3U2 NCBwcm9wc19wdHI7Cj4gKwlfX3U2NCBwcm9wX3ZhbHVlc19wdHI7Cj4gKwlfX3U2NCBibG9iX3Zh bHVlc19wdHI7ICAvKiByZW1vdmU/ICovCj4gKwlfX3U2NCB1c2VyX2RhdGE7Cj4gK307Cj4gKwo+ ICAjZW5kaWYKPiAtLSAKPiAyLjEuMAo+IAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5n aW5lZXIsIEludGVsIENvcnBvcmF0aW9uCis0MSAoMCkgNzkgMzY1IDU3IDQ4IC0gaHR0cDovL2Js b2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK