From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/imx: Add active primary plane reconfiguration support Date: Mon, 15 Aug 2016 15:59:02 +0200 Message-ID: <20160815135902.GH6232@phenom.ffwll.local> References: <1471241353-26269-1-git-send-email-gnuiyl@gmail.com> <20160815071850.GE6232@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id BAC776E50B for ; Mon, 15 Aug 2016 13:59:08 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id i5so11281660wmg.2 for ; Mon, 15 Aug 2016 06:59:08 -0700 (PDT) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Liu Ying Cc: Daniel Vetter , Peter Senna Tschudin , Russell King , DRI Development List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBBdWcgMTUsIDIwMTYgYXQgMDQ6MjM6MzNQTSArMDgwMCwgTGl1IFlpbmcgd3JvdGU6 Cj4gMjAxNi0wOC0xNSAxNToxOCBHTVQrMDg6MDAgRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xs LmNoPjoKPiA+IE9uIE1vbiwgQXVnIDE1LCAyMDE2IGF0IDAyOjA5OjEzUE0gKzA4MDAsIExpdSBZ aW5nIHdyb3RlOgo+ID4+IFdlIGRvbid0IHN1cHBvcnQgY29uZmlndXJpbmcgYWN0aXZlIHByaW1h cnkgcGxhbmUgb24tdGhlLWZseSBmb3IgaW14LWRybS4KPiA+PiBUaGUgcmVsZXZhbnQgQ1JUQyBz aG91bGQgYmUgZGlzYWJsZWQgYmVmb3JlIHRoZSBwbGFuZSBjb25maWd1cmF0aW9uLgo+ID4+IE9m IGNvdXJzZSwgdGhlIHBsYW5lIGl0c2VsZiBzaG91bGQgYmUgZGlzYWJsZWQgYXMgd2VsbC4KPiA+ PiBGb3Igb3ZlcmxheSBwbGFuZSwgd2UgY3VycmVudGx5IHJlamVjdCBhY3RpdmUgcGxhbmUgcmVj b25maWd1cmF0aW9uLgo+ID4+IFRoaXMgcGF0Y2ggYWRkcyBhY3RpdmUgcGxhbmUgcmVjb25maWd1 cmF0aW9uIHN1cHBvcnQgYnkgZm9yY2luZyBDUlRDCj4gPj4gbW9kZSBjaGFuZ2UgYW5kIGRpc2Fi bGluZy1lbmFibGluZyBwbGFuZSBpbiBwbGFuZSdzIC0+YXRvbWljX3VwZGF0ZQo+ID4+IGNhbGxi YWNrLgo+ID4KPiA+IFdoeSBkbyB5b3UgcmVqZWN0IHRoaXMgZm9yIG92ZXJsYXlzPyBVc2Vyc3Bh Y2UgY2FuIGFsd2F5cyBpbmRpY2F0ZSB3aGV0aGVyCj4gPiBpdCB3YW50cyBhIGZ1bGwgbW9kZXNl dCBvciBub3QgdGhyb3VnaCB0aGUgYXRvbWljIEFMTE9XX01PREVTRVQgZmxhZy4KPiA+IFBsZWFz ZSBkb24ndCBjcmVhdGUgc3VjaCBzcGVjaWFsIGNhc2VzIGluIGF0b21pYyBkcml2ZXJzLCBidXQg aW5zdGVhZAo+ID4gZXhwb3J0IHRoZSBmdWxsIGh3IGNhcGFiaWxpdGllcyB0byB1c2Vyc3BhY2Us IGFuZCBsZXQgdXNlcnNwYWNlIGRlY2lkZQo+ID4gd2hhdCBpdCB3YW50cy4KPiAKPiBJJ20gYSBi aXQgY29uc2VydmF0aXZlIHdoZW4gY2hhbmdpbmcgdGhlIGNvZGUgLSBqdXN0IHdhbnRlZCB0bwo+ IHRvdWNoIHRoZSBwcmltYXJ5IHBsYW5lIHBhcnQgb25seSBhbmQga2VlcCB0aGUgb3ZlcmxheSBw bGFuZQo+IGJlaW5nIHJlamVjdGVkIGp1c3QgdGhlIHNhbWUgYXMgdGhlIG5vbi1hdG9taWMgaW14 LWRybSBkcml2ZXIgZGlkLgo+IAo+IEFmdGVyIHJlbW92aW5nIHRoZSBpZigpIGNvbmRpdGlvbiBm b3IgdGhlIHByaW1hcnkgcGxhbmUsIHRoZSBhY3RpdmUKPiBvdmVybGF5IHBsYW5lIGNhbiBhbHNv IGJlIHJlY29uZmlndXJlZCBhY2NvcmRpbmcgdG8gbXkgdGVzdC4KPiAKPiBTbywgaXQgbG9va3Mg SSBtYXkgcmVzcGluIHRvIHJlbW92ZSB0aGUgcmVzdHJpY3Rpb24gZm9yIHRoZSBvdmVybGF5Cj4g cGxhbmUuCj4gCj4gPgo+ID4gTm90ZSB0aGF0IGZvciBsZWdhY3kgaW50ZXJmYWNlcyB0aGVyZSdz IG5vIHByb2JsZW0gYXQgYWxsLCB3ZSBzaG91bGQgc2V0Cj4gPiBhbGxvd19tb2Rlc2V0IGNvcnJl Y3RseSBmb3IgYWxsIG9mIHRoZSBsZWdhY3kgaW9jdGwgLT4gYXRvbWljIGhlbHBlcnMuCj4gPiAt RGFuaWVsCj4gPgo+ID4+Cj4gPj4gU3VnZ2VzdGVkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwu dmV0dGVyQGZmd2xsLmNoPgo+ID4+IENjOiBQaGlsaXBwIFphYmVsIDxwLnphYmVsQHBlbmd1dHJv bml4LmRlPgo+ID4+IENjOiBEYXZpZCBBaXJsaWUgPGFpcmxpZWRAbGludXguaWU+Cj4gPj4gQ2M6 IFJ1c3NlbGwgS2luZyA8bGludXhAYXJtbGludXgub3JnLnVrPgo+ID4+IENjOiBEYW5pZWwgVmV0 dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+ID4+IENjOiBQZXRlciBTZW5uYSBUc2NodWRp biA8cGV0ZXIuc2VubmFAZ21haWwuY29tPgo+ID4+IFNpZ25lZC1vZmYtYnk6IExpdSBZaW5nIDxn bnVpeWxAZ21haWwuY29tPgo+ID4+IC0tLQo+ID4+ICBkcml2ZXJzL2dwdS9kcm0vaW14L2lteC1k cm0tY29yZS5jIHwgMjYgKysrKysrKysrKysrKysrKysrKysrLQo+ID4+ICBkcml2ZXJzL2dwdS9k cm0vaW14L2lwdXYzLXBsYW5lLmMgIHwgNDQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0KPiA+PiAgMiBmaWxlcyBjaGFuZ2VkLCA1OSBpbnNlcnRpb25zKCspLCAxMSBkZWxl dGlvbnMoLSkKPiA+Pgo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaW14L2lteC1k cm0tY29yZS5jIGIvZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtZHJtLWNvcmUuYwo+ID4+IGluZGV4 IDZkYzBlZjQuLmMxMGMzZWEgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2lteC9p bXgtZHJtLWNvcmUuYwo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWRybS1jb3Jl LmMKPiA+PiBAQCAtMTQ3LDEwICsxNDcsMzQgQEAgc3RhdGljIHZvaWQgaW14X2RybV9vdXRwdXRf cG9sbF9jaGFuZ2VkKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCj4gPj4gICAgICAgZHJtX2ZiZGV2 X2NtYV9ob3RwbHVnX2V2ZW50KGlteGRybS0+ZmJoZWxwZXIpOwo+ID4+ICB9Cj4gPj4KPiA+PiAr c3RhdGljIGludCBpbXhfZHJtX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSkKPiA+PiArewo+ID4+ICsgICAgIGludCByZXQ7Cj4gPj4gKwo+ID4+ICsgICAgIHJl dCA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX21vZGVzZXQoZGV2LCBzdGF0ZSk7Cj4gPj4gKyAg ICAgaWYgKHJldCkKPiA+PiArICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPj4gKwo+ID4+ICsg ICAgIHJldCA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5lcyhkZXYsIHN0YXRlKTsKPiA+ PiArICAgICBpZiAocmV0KQo+ID4+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+PiArCj4g Pj4gKyAgICAgLyoKPiA+PiArICAgICAgKiBDaGVjayBtb2Rlc2V0IGFnYWluIGluIGNhc2UgY3J0 Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkIGlzCj4gPj4gKyAgICAgICogdXBkYXRlZCBpbiBwbGFuZSdz IC0+YXRvbWljX2NoZWNrIGNhbGxiYWNrLgo+ID4+ICsgICAgICAqLwo+ID4+ICsgICAgIHJldCA9 IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX21vZGVzZXQoZGV2LCBzdGF0ZSk7Cj4gPj4gKyAgICAg aWYgKHJldCkKPiA+PiArICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPj4gKwo+ID4+ICsgICAg IHJldHVybiByZXQ7Cj4gPj4gK30KPiA+PiArCj4gPj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJt X21vZGVfY29uZmlnX2Z1bmNzIGlteF9kcm1fbW9kZV9jb25maWdfZnVuY3MgPSB7Cj4gPj4gICAg ICAgLmZiX2NyZWF0ZSA9IGRybV9mYl9jbWFfY3JlYXRlLAo+ID4+ICAgICAgIC5vdXRwdXRfcG9s bF9jaGFuZ2VkID0gaW14X2RybV9vdXRwdXRfcG9sbF9jaGFuZ2VkLAo+ID4+IC0gICAgIC5hdG9t aWNfY2hlY2sgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVjaywKPiA+PiArICAgICAuYXRvbWljX2No ZWNrID0gaW14X2RybV9hdG9taWNfY2hlY2ssCj4gPj4gICAgICAgLmF0b21pY19jb21taXQgPSBk cm1fYXRvbWljX2hlbHBlcl9jb21taXQsCj4gPj4gIH07Cj4gPj4KPiA+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2lteC9p cHV2My1wbGFuZS5jCj4gPj4gaW5kZXggNGFkNjdkMC4uZDRkZGU0YSAxMDA2NDQKPiA+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaW14L2lwdXYzLXBsYW5lLmMKPiA+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaW14L2lwdXYzLXBsYW5lLmMKPiA+PiBAQCAtMzE5LDEzICszMTksMjEgQEAgc3RhdGlj IGludCBpcHVfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4+ ICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4gPj4KPiA+PiAgICAgICAvKgo+ID4+IC0g ICAgICAqIHNpbmNlIHdlIGNhbm5vdCB0b3VjaCBhY3RpdmUgSURNQUMgY2hhbm5lbHMsIHdlIGRv IG5vdCBzdXBwb3J0Cj4gPj4gLSAgICAgICogcmVzaXppbmcgdGhlIGVuYWJsZWQgcGxhbmUgb3Ig Y2hhbmdpbmcgaXRzIGZvcm1hdAo+ID4+ICsgICAgICAqIEZvciBwcmltYXJ5IHBsYW5lLCB3ZSBz dXBwb3J0IHJlc2l6aW5nIGFjdGl2ZSBwbGFuZSBvciBjaGFuZ2luZwo+ID4+ICsgICAgICAqIGl0 cyBmb3JtYXQgYnkgZm9yY2luZyBDUlRDIG1vZGUgY2hhbmdlIGFuZCBkaXNhYmxpbmctZW5hYmxp bmcgcGxhbmUKPiA+PiArICAgICAgKiBpbiBwbGFuZSdzIC0+YXRvbWljX3VwZGF0ZSBjYWxsYmFj ay4KPiA+PiArICAgICAgKiBGb3Igb3ZlcmxheSBwbGFuZSwgd2UgY3VycmVudGx5IHJlamVjdCB0 aGUgYWN0aXZlIHBsYW5lIHJlc2l6aW5nCj4gPj4gKyAgICAgICogb3IgZm9ybWF0IGNoYW5nZS4K PiA+PiAgICAgICAgKi8KPiA+PiAgICAgICBpZiAob2xkX2ZiICYmIChzdGF0ZS0+c3JjX3cgIT0g b2xkX3N0YXRlLT5zcmNfdyB8fAo+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0 ZS0+c3JjX2ggIT0gb2xkX3N0YXRlLT5zcmNfaCB8fAo+ID4+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICBmYi0+cGl4ZWxfZm9ybWF0ICE9IG9sZF9mYi0+cGl4ZWxfZm9ybWF0KSkKPiA+PiAt ICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICBmYi0+cGl4ZWxfZm9ybWF0ICE9IG9sZF9mYi0+cGl4ZWxfZm9ybWF0KSkgewo+ID4+ICsg ICAgICAgICAgICAgaWYgKHBsYW5lLT50eXBlID09IERSTV9QTEFORV9UWVBFX1BSSU1BUlkpIHsK PiA+PiArICAgICAgICAgICAgICAgICAgICAgY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkID0gdHJ1 ZTsKPiA+PiArICAgICAgICAgICAgIH0gZWxzZSB7Cj4gPj4gKyAgICAgICAgICAgICAgICAgICAg IHJldHVybiAtRUlOVkFMOwo+ID4+ICsgICAgICAgICAgICAgfQo+ID4+ICsgICAgIH0KPiA+Pgo+ ID4+ICAgICAgIGViYSA9IGRybV9wbGFuZV9zdGF0ZV90b19lYmEoc3RhdGUpOwo+ID4+Cj4gPj4g QEAgLTMzNSw4ICszNDMsMTMgQEAgc3RhdGljIGludCBpcHVfcGxhbmVfYXRvbWljX2NoZWNrKHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4+ICAgICAgIGlmIChmYi0+cGl0Y2hlc1swXSA8IDEg fHwgZmItPnBpdGNoZXNbMF0gPiAxNjM4NCkKPiA+PiAgICAgICAgICAgICAgIHJldHVybiAtRUlO VkFMOwo+ID4+Cj4gPj4gLSAgICAgaWYgKG9sZF9mYiAmJiBmYi0+cGl0Y2hlc1swXSAhPSBvbGRf ZmItPnBpdGNoZXNbMF0pCj4gPj4gLSAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiA+PiAr ICAgICBpZiAob2xkX2ZiICYmIGZiLT5waXRjaGVzWzBdICE9IG9sZF9mYi0+cGl0Y2hlc1swXSkg ewo+ID4+ICsgICAgICAgICAgICAgaWYgKHBsYW5lLT50eXBlID09IERSTV9QTEFORV9UWVBFX1BS SU1BUlkpIHsKPiA+PiArICAgICAgICAgICAgICAgICAgICAgY3J0Y19zdGF0ZS0+bW9kZV9jaGFu Z2VkID0gdHJ1ZTsKPiA+PiArICAgICAgICAgICAgIH0gZWxzZSB7Cj4gPj4gKyAgICAgICAgICAg ICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+ID4+ICsgICAgICAgICAgICAgfQo+ID4+ICsgICAg IH0KPiA+Pgo+ID4+ICAgICAgIHN3aXRjaCAoZmItPnBpeGVsX2Zvcm1hdCkgewo+ID4+ICAgICAg IGNhc2UgRFJNX0ZPUk1BVF9ZVVY0MjA6Cj4gPj4gQEAgLTM3MSw4ICszODQsMTMgQEAgc3RhdGlj IGludCBpcHVfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4+ ICAgICAgICAgICAgICAgaWYgKGZiLT5waXRjaGVzWzFdIDwgMSB8fCBmYi0+cGl0Y2hlc1sxXSA+ IDE2Mzg0KQo+ID4+ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiA+Pgo+ ID4+IC0gICAgICAgICAgICAgaWYgKG9sZF9mYiAmJiBvbGRfZmItPnBpdGNoZXNbMV0gIT0gZmIt PnBpdGNoZXNbMV0pCj4gPj4gLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+ ID4+ICsgICAgICAgICAgICAgaWYgKG9sZF9mYiAmJiBvbGRfZmItPnBpdGNoZXNbMV0gIT0gZmIt PnBpdGNoZXNbMV0pIHsKPiA+PiArICAgICAgICAgICAgICAgICAgICAgaWYgKHBsYW5lLT50eXBl ID09IERSTV9QTEFORV9UWVBFX1BSSU1BUlkpIHsKPiA+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjcnRjX3N0YXRlLT5tb2RlX2NoYW5nZWQgPSB0cnVlOwo+ID4+ICsgICAgICAgICAg ICAgICAgICAgICB9IGVsc2Ugewo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiAtRUlOVkFMOwo+ID4+ICsgICAgICAgICAgICAgICAgICAgICB9Cj4gPj4gKyAgICAgICAg ICAgICB9Cj4gPj4gICAgICAgfQo+ID4+Cj4gPj4gICAgICAgcmV0dXJuIDA7Cj4gPj4gQEAgLTM5 Miw4ICs0MTAsMTQgQEAgc3RhdGljIHZvaWQgaXB1X3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCj4gPj4gICAgICAgZW51bSBpcHVfY29sb3Jfc3BhY2UgaWNzOwo+ ID4+Cj4gPj4gICAgICAgaWYgKG9sZF9zdGF0ZS0+ZmIpIHsKPiA+PiAtICAgICAgICAgICAgIGlw dV9wbGFuZV9hdG9taWNfc2V0X2Jhc2UoaXB1X3BsYW5lLCBvbGRfc3RhdGUpOwo+ID4+IC0gICAg ICAgICAgICAgcmV0dXJuOwo+ID4+ICsgICAgICAgICAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlID0gc3RhdGUtPmNydGMtPnN0YXRlOwo+ID4+ICsKPiA+PiArICAgICAgICAg ICAgIGlmICghY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkKSB7Cj4gPj4gKyAgICAgICAgICAgICAg ICAgICAgIGlwdV9wbGFuZV9hdG9taWNfc2V0X2Jhc2UoaXB1X3BsYW5lLCBvbGRfc3RhdGUpOwo+ ID4+ICsgICAgICAgICAgICAgICAgICAgICByZXR1cm47Cj4gPj4gKyAgICAgICAgICAgICB9Cj4g Pj4gKwo+ID4+ICsgICAgICAgICAgICAgaXB1X2Rpc2FibGVfcGxhbmUocGxhbmUpOwo+ID4KPiA+ IE1vc3QgbGlrZWx5IHlvdSB3YW50IHRvIHB1dCBhIGNhbGwgdG8gZGlzYWJsZSBhbGwgcGxhbmVz IGludG8geW91J3JlCj4gPiBjcnRjLT5kaXNhYmxlIGZ1bmN0aW9uLiBUaGlzIGhlcmUgc21lbGxz IGxpa2UgYSBoYWNrLiBCdXQgSSBkb24ndCBrbm93IGlteAo+ID4gaHcgZW5vdWdoIHRvIGJlIGFi bGUgdG8gdGVsbC4KPiAKPiBIbW0uICBQcm9iYWJseSB0b28gaW52YXNpdmUgdG8gZGlzYWJsZSBh bGwgcGxhbmVzIGluIGNydGMtPmRpc2FibGUuCj4gVGhlIGF0b21pYyBjb3JlIHdvdWxkIGFkZCBh ZmZlY3RlZCBwcmltYXJ5IHBsYW5lIGludG8gc3RhdGUKPiB0byBjb21taXQgd2hlbiB0aGUgdXNl cnBhY2UgYXNrcyB0byByZWNvbmZpZ3VyZSBhbiBhY3RpdmUKPiBvdmVybGF5IHBsYW5lIG9ubHku IFNvIGltbywgcHJvYmFibHkgbm90IHByZXR0eSBtdWNoIGEgaGFjayAtCj4gdXBkYXRpbmcgb25l IHNpbmdsZSBwbGFuZSBhIHRpbWUgaW4gLT51cGRhdGVfcGxhbmUgaXMgc29tZXdoYXQKPiBjbGVh bmVyIHRoYW4gZGlzYWJsaW5nIGFsbCBwbGFuZXMgaW4gY3J0Yy0+ZGlzYWJsZS4KClNlZSBkcm1f YXRvbWljX2hlbHBlcl9kaXNhYmxlX3BsYW5lc19vbl9jcnRjKCksIHRoYXQncyB0aGUgaGVscGVy IHlvdSdyZQpzdXBwb3NlZCB0byBsb29rIGZvci4gVW5mb3J0dW5hdGVseSBpdCdzIGJ1Z2d5IDoo IEl0IGxvb2tzIGF0CnBsYW5lLT5zdGF0ZS0+Y3J0Yywgd2hpY2ggaXMgdGhlIG5ldyBjcnRjLCBh bmQgbm90IHRoZSBvbGQgY3J0Yy4gVGhlCmNvcnJlY3QgZml4IGlzIHRvIHBhc3MgaW4gdGhlIG9s ZCBjcnRjX3N0YXRlIGludG8gdGhpcyBmdW5jdGlvbiwgc28gdGhhdAp3ZSBjYW4gbG9vcCBvdmVy IHRoZSBjcnRjX3N0YXRlLT5wbGFuZV9tYXNrIGFuZCBzaHV0IGRvd24gYWxsIHRoZSBwbGFuZXMu CkJ1dCB0byBiZSBhYmxlIHRvIGRvIHRoYXQgZnJvbSBjcnRjIGNhbGxiYWNrcywgd2UgZmlyc3Qg bmVlZCB0byBhZGQgbmV3CmF0b21pYyB2ZXJzaW9ucyB3aGljaCBwYXNzIGRvd24gdGhlIHN0YXRl LiBJIGRpc2N1c3NlZCB0aGlzIGlzc3VlIHdpdGggQmVuClNrZWdncywgYW5kIEkgdGhpbmsgaGUn cyBsb29raW5nIGludG8gZml4aW5nIGl0LiBCdXQgdGhhdCB3aWxsIHRha2Ugc29tZQp0aW1lLgoK SWYgeW91IGRvbid0IHdhbnQgdG8gZml4IHRoaXMgYWxsIHRoZSBvbmx5IG90aGVyIG9wdGlvbiBp cyB0byBoYXZlIGEgbG9vcApvdmVyIGFsbCBwbGFuZXMgaW4gYSBody1zcGVjaWZpYyB3YXkgdG8g c2h1dCBkb3duIGFsbCB0aGUgcGxhbmVzIHdoaWNoIGFyZQphY3RpdmUgZnJvbSBjcnRjLT5kaXNh YmxlLgotRGFuaWVsCj4gCj4gUmVnYXJkcywKPiBMaXUgWWluZwo+IAo+ID4gLURhbmllbAo+ID4K PiA+PiAgICAgICB9Cj4gPj4KPiA+PiAgICAgICBzd2l0Y2ggKGlwdV9wbGFuZS0+ZHBfZmxvdykg ewo+ID4+IC0tCj4gPj4gMi43LjQKPiA+Pgo+ID4KPiA+IC0tCj4gPiBEYW5pZWwgVmV0dGVyCj4g PiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiA+IGh0dHA6Ly9ibG9nLmZm d2xsLmNoCj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xwo+ID4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+ID4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwo+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWwKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBD b3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK