From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC PATCH 00/37] Modesetting for atomic modesetting Date: Tue, 24 Mar 2015 09:55:56 +0100 Message-ID: <20150324085556.GY1349@phenom.ffwll.local> References: <1426739556-10429-1-git-send-email-daniels@collabora.com> <20150323082055.GC1349@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wg0-f45.google.com (mail-wg0-f45.google.com [74.125.82.45]) by gabe.freedesktop.org (Postfix) with ESMTP id 5A23C6E110 for ; Tue, 24 Mar 2015 01:54:12 -0700 (PDT) Received: by wgs2 with SMTP id 2so58546357wgs.1 for ; Tue, 24 Mar 2015 01:54:11 -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: Daniel Stone Cc: dri-devel , Daniel Stone List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBNYXIgMjMsIDIwMTUgYXQgMDQ6NTg6NDdQTSArMDAwMCwgRGFuaWVsIFN0b25lIHdy b3RlOgo+IEhpLAo+IAo+IE9uIDIzIE1hcmNoIDIwMTUgYXQgMDg6MjAsIERhbmllbCBWZXR0ZXIg PGRhbmllbEBmZndsbC5jaD4gd3JvdGU6Cj4gPiBPbiBUaHUsIE1hciAxOSwgMjAxNSBhdCAwNDoz MjozNkFNICswMDAwLCBEYW5pZWwgU3RvbmUgd3JvdGU6Cj4gPj4gVGhpcyBzZXJpZXMgZW5kcyB1 cCB0b3VjaGluZyBwcmV0dHkgbXVjaCBhbGwgdGhlIGRyaXZlcnMsIGJ5IHZpcnR1ZSBvZiB0dXJu aW5nCj4gPj4gY3J0Yy0+bW9kZSAoaW4gcGFydGljdWxhcikgaW50byBib3RoIGEgY29uc3QgYW5k IGEgcG9pbnRlci4KPiA+Cj4gPiBPayB0aGlzIGlzIHF1aXRlIGEgYml0IGEgZGlmZmVyZW50IGJl YXN0IHRoYW4gd2hhdCBJIGV4cGVjdGVkLiBJIHRoaW5rCj4gPiBpdCdzIHdheSB0b28gaW50cnVz aXZlIGZvciBkcml2ZXJzIHRvIGxhbmQgcXVpY2tseSwgYW5kIHRoZXJlJ3MgYSBiaWcKPiA+IGRl cGVuY3kgY2hhaW4gbGlua2luZyBldmVyeXRoaW5nLiBJIHRoaW5rIHdlIG5lZWQgc29tZXRoaW5n IG11Y2ggc2ltcGxlci4KPiAKPiBZZWFoLCBJJ20gdW5lYXN5IHdpdGggaG93IGludmFzaXZlIGl0 J3MgZ290OiBoZW5jZSB0aGUgcHJvcG9zYWwgdG8KPiBkcm9wIGNydGMtPm1vZGUgYmFjayBpbnRv IGJlaW5nIGlubGluZWQuIEkgZG9uJ3QgdGhpbmsgd2UgbG9zZQo+IGFueXRoaW5nIGZyb20gZG9p bmcgdGhhdCAoYXMgY3J0Yy0+c3RhdGUtPm1vZGUgc3RpbGwgY2hhbmdlcyksIGFuZAo+IHRoYXQg bWFrZXMgdGhlIGRpZmYgbXVjaCBsZXNzIHNjYXJ5LiBUaGUgY29uc3RuZXNzIGNoYW5nZXMgbm8g bG9uZ2VyCj4gYmVjb21lIHJlcXVpcmVkLCBidXQgSSB0aGluayBhcmUgc3RpbGwgcHJldHR5IHVz ZWZ1bCBmcm9tIHRoZSBwb2ludCBvZgo+IHZpZXcgb2Ygc2V0dGluZyAoYW5kIGVuZm9yY2luZykg b3VyIGV4aXN0aW5nIGV4cGVjdGF0aW9ucy4gSSdkIHN0aWxsCj4gbG9vayB0byBwdXNoIHRob3Nl IGFueXdheSwgYnV0IGF0IGEgbXVjaCBtb3JlIHNlZGF0ZSBwYWNlLgo+IAo+ID4+ICAgLSBhcyBm YXIgYXMgcG9zc2libGUsIG1vZGVzIHNob3VsZCBiZSByZWxhdGVhYmxlIHRvIHRoZWlyIHNvdXJj ZSwgZS5nLiBpZgo+ID4+ICAgICBQbHltb3V0aCBwdWxscyBhIHBhcnRpY3VsYXIgbW9kZSBmcm9t IHRoZSBlbmNvZGVyLCBhbmQgeW91IHBpY2sgdXAgb24gdGhhdAo+ID4+ICAgICBtb2RlIGFzIHBh cnQgb2YgY3VycmVudCBjb25maWd1cmF0aW9uIGR1cmluZyBoYW5kb3ZlciwgeW91IHNob3VsZCBi ZSBhYmxlCj4gPj4gICAgIHRvIHdvcmsgYmFja3dhcmRzIHRvIHdoZXJlIFBseW1vdXRoIHNvdXJj ZWQgaXQsIGkuZS4gdGhlIGVuY29kZXIgbGlzdAo+ID4KPiA+IFdpdGggbGVnYWN5IHNldGNydGMg d2UgYWxyZWFkeSBsb3NlIHRoaXMgaW5mb3JtYXRpb24gYW5kIHRodXMgZmFyIG5vIG9uZQo+ID4g c2VlbXMgdG8gaGF2ZSBjYXJlZC4gQW5kIEkgZG9uJ3Qgc2VlIHRoZSB1c2UtY2FzZSBzaW5jZSBz aW1wbHkgY29tcGFyaW5nCj4gPiBpdCB0byBzb3VyY2VzIHdvcmtzIHdlbGwgZW5vdWdoLCBpbiBj YXNlIHlvdSB3YW50IHRvIGtub3cgd2hlcmUgYSBtb2RlIGlzCj4gPiBmcm9tLgo+IAo+IE9uIHRo ZSBvdGhlciBoYW5kLCBJIHdvdWxkbid0IHN1Z2dlc3QgU2V0Q3J0YyB0byByZWFsbHkgYmUgYSBt b2RlbCB0bwo+IGZvbGxvdy4gSSByZWFsbHkgZG9uJ3QgbWluZCBTZXRDcnRjIGJyZWFraW5nIGFs bCB0aGVzZSBleHBlY3RhdGlvbnMKPiBhYm92ZSwgbWluZC4KCldlbGwgc2V0Y3J0YyBpcyBib3Vu ZCB0byBzdGF5IGFyb3VuZCwgYW5kIHVzZXJzcGFjZSB1c2luZyBpdCB3aWxsIGFsc28Kc3RpY2sg YXJvdW5kIGZvciBxdWl0ZSBhIGJpdCBJIHRoaW5rLiBJZiB3ZSBhZGQgbmV3IHNlbWFudGljIGd1 YXJhbnRlZXMKYW5kIHRoZW4gdXNlcnNwYWNlIGNhbid0IHJlbHkgb24gdGhlbSB3ZSBiZWFyIGFs bCB0aGUgY29zdCB3aXRob3V0IG11Y2gKYmVuZWZpdC4KCj4gPj4gICAtIHVzZXJzcGFjZSBzaG91 bGQgYmUgYWJsZSB0byB0ZWxsIHRoZSBjdXJyZW50IHN0YXR1cyBieSBsb29raW5nIGF0IHRoZSBJ RHMKPiA+PiAgICAgcmV0dXJuZWQgYnkgcHJvcGVydHkgcXVlcmllcywgcmF0aGVyIHRoYW4gaGF2 aW5nIHRvIHB1bGwgdGhlIGVudGlyZSBtb2RlCj4gPj4gICAgIG91dDogaWYgd2UgbWFrZSB0aGVt IGRvIHRoYXQsIHRoZXkgd29uJ3QgYm90aGVyIG1pbmltaXNpbmcgdGhlIGRlbHRhcyBhbmQKPiA+ PiAgICAgd2lsbCBqdXN0IGR1bXAgdGhlIGZ1bGwgc3RhdGUgaW4gZXZlcnkgdGltZSwgYW5kIHRo YXQgbWFrZXMgZGVidWdnaW5nIHRoZQo+ID4+ICAgICBlbnRpcmUgdGhpbmcgdGhhdCBtdWNoIGhh cmRlcgo+ID4KPiA+IFRoYXQgZG9lc24ndCB3b3JrIHNpbmNlIGlkciBlYWdlcmx5IHJldXNlcyBp ZHMuIEp1c3QgYnkgbG9va2luZyBhdCB0aGUgaWQKPiA+IHlvdSBjYW4ndCB0ZWxsIHdoZXRoZXIg aXQncyB0aGUgc2FtZSBvYmplY3Qgb3IgYSBuZXcgb25lIGFjY2lkZW50YWxseQo+ID4gcmV1c2lu ZyB0aGUgc2FtZSBpZCBzbG90LiBZb3UgYWx3YXlzIGhhdmUgdG8gcmUtcmVhZCB0aGUgYmxvYiBw cm9wZXJ0eSB0b28KPiA+IHRvIHJlY29uc3RydWN0IHN0YXRlLgo+IAo+IERvIHdlIG1ha2UgYW55 IGd1YXJhbnRlZSBvbiBjb25uZWN0b3ItPm1vZGVzIGxpZmV0aW1lcz8gSWYgaXQgY2FuJ3QKPiBj aGFuZ2Ugd2l0aG91dCBhIGhvdHBsdWcgZXZlbnQsIHRoZW4gd2Uga25vdyB0aGUgSUQgaXMgdmFs aWQgdW50aWwgdGhlCj4gY29ubmVjdG9yIGdvZXMgZGFyaywgYXQgd2hpY2ggcG9pbnQgd2UgaGF2 ZSB0byBkcm9wIGFueSBsb2NhbCBjYWNoZQo+IHJlbGF0aW5nIHRvIGl0Lgo+IAo+IFNheWluZyB0 aGF0IHVzZXJzcGFjZSBtdXN0IHJlYWQgZXZlcnkgc2luZ2xlIG1vZGUgcHJvcGVydHkgYmFjayBl dmVyeQo+IHNpbmdsZSB0aW1lIGlzIHByZXR0eSBob3JyaWJsZSBmcm9tIHRoZSBwb2ludCBvZiB2 aWV3IG9mIHJlcXVpcmluZwo+IG1vcmUgdXNlcnNwYWNlLT5rZXJuZWwtPnVzZXJzcGFjZS0+a2Vy bmVsLT5bLi4uXSB0cmlwcyB0byBkbyBkaXNjb3ZlcnkKPiBldmVyeSB0aW1lLCBqdXN0IGJlY2F1 c2Ugd2UgZGVjaWRlZCBub3QgdG8gd29yayBvdXQgYSBzZW5zaWJsZQo+IGxpZmV0aW1lIHN0cmF0 ZWd5IHRvIGV4cG9zZSB0byB1c2Vyc3BhY2UuCgpDdXJyZW50IGtlcm5lbHMgc2hvdWxkIHNlbmQg eW91IGEgaG90cGx1ZyBldmVudCwgc28gd2l0aCB0aG9zZSB0aGF0CnN0cmF0ZWd5IHdvcmtzIC0g eW91IGNhbiBjYWNoZSB1bnRpbCB0aGUgbmV4dCBob3RwbHVnLiBCdXQgb24gb2xkZXIKa2VybmVs cyAoYW5kIGlpcmMgd2UndmUgb25seSBmaXhlZCB0aGlzIHZlcnkgcmVjZW50bHkpIHNvbWV0aW1l cyBob3RwbHVnCmV2ZW50cyBnZXQgbG9zdC4gU28gdGhlcmUgaWYgc29tZW9uZSBhc2tzIGZvciBh IGZ1bGwgcmVwcm9iZSwgeW91IGhhdmUgdG8KZG8gdGhlIGZ1bGwgZGFuY2UuCgo+ID4gVGhpcyBi bGV3IHVwIHdpdGggZWRpZCBibG9iIHByb3BlcnRpZXMgd2hlcmUgU05BIGhhZCBvbmUgY2xldmVy IHRyaWNrIHRvbwo+ID4gbWFueSBhbmQgdGhvdWdodCB0aGF0IG1hdGNoaW5nIGVkaWQgYmxvYiBw cm9wIGlkIG1lYW5zIHRoZSBlZGlkIGlzCj4gPiB1bmNoYW5nZWQuIEJ1dCBzaW5jZSB3ZSByZW1v dmUgdGhlIG9sZCBibG9iIGJlZm9yZSB3ZSBhZGQgdGhlIG5ldyBvbmUKPiA+IHlvdSdyZSBwcmV0 dHkgbXVjaCBndXJhbnRlZWQgdG8gcmV1c2UgdGhlIHNhbWUgc2xvdC4KPiAKPiBTdXJlLCBpZiB5 b3UncmUgbm90IHBheWluZyBhdHRlbnRpb24gdG8gdGhlIGRlZmluZWQgbGlmZXRpbWUsIHRoZW4K PiBkb24ndCBkbyBhbnkgY2FjaGluZy4gQnV0IHRoaXMgaXMgYWJvdXQgX2RlZmluaW5nXyBzdWNo IGEgdXNhYmxlCj4gbGlmZXRpbWUgdGhhdCB1c2Vyc3BhY2UgY2FuLgoKSG0gbGV0J3MgYmFja3Ry YWNrIGEgYml0OiBXaGF0J3MgdGhlIHVwc2lkZSBvZiB0aGlzIGRlZmluZWQgbGlmZXRpbWU/IEF0 bQpJIHNlZSBhIGxvdCBvZiBjb3N0IG9uIHRoZSBrZXJuZWwgc2lkZSAoZ2V0dGluZyB0aGlzIHNl cmllcyBpbiB3aWxsIHRha2UgYQpmZXcgcmVsZWFzZXMgcHJvYmFibHkgYmVjYXVzZSB0aGVyZSdz IHNvIG1hbnkgaW50ZXJsb2NrZWQgc3Vic3lzdGVtLXdpZGUKY2hhbmdlcykuIEJ1dCBJIGRvbid0 IHNlZSBhIGJlbmVmaXQuCgpUaGUgb25seSBwbGFjZSB3ZSBjdXJyZW50bHkgcmVhZCBvdXQgdGhl IGN1cnJlbnQgY29uZmlndXJhdGlvbiBpcyB3aGVuCnRoZSBjb21wb3NpdG9yIHN0YXJ0cyB1cCBz byB0aGF0IGl0IGNhbiBwZXJmZWN0bHkgdGFrZSBvdmVyIHdoYXRldmVyJ3MKYmVlbiBzZXQgdXAg YnkgdGhlIGZpcm13YXJlL2Jvb3Qgc3BsYXNoIGZvciBmYXN0Ym9vdC4gQWZ0ZXJ3YXJkcyBldmVy eW9uZQpqdXN0IGJhc2hlcyBpbiB0aGVpciBvd24gY29uZmlnLCBldmVuIHdoZW4gc3dpdGNoaW5n IGJldHdlZW4gY29tcG9zaXRvcnMKYW5kIGFsbCB0aGF0LgoKV2l0aG91dCBhIGNsZWFyIHVzZS1j YXNlIHRoYXQganVzdGlmaWVzIHRoZSB3b3JrIEkgZG9uJ3QgdGhpbmsgd2Ugc2hvdWxkCmRvIHRo aXMgLSBzb21lb25lIHdpbGwgY29tZSB1cCB3aXRoIGNsZXZlciBhYnVzZSBmb3IgaXQgYW5kIHRo ZW4gd2UgaGF2ZQphbm90aGVyIGhhcmQtdG8td29yay1hcm91bmQgcmVncmVzc2lvbiBhdCBoYW5k LiBTbyBmcm9tIG15IHNpZGUgdGhlIG9ubHkKcmVxdWlyZW1lbnQgaXMgdGhhdCBhdG9taWMgY2xp ZW50cyBzaG91bGQgYmUgYWJsZSB0byBzb21laG93IGdldCBhdCB0aGUKY3VycmVudCBibG9iIHBy b3BlcnRpZXMgbGlrZSBtb2RlLCBnYW1tYSAuLi4KCj4gPj4gICAtIHNldHRpbmcgYSBtb2RlIGN1 cnJlbnQgc2hvdWxkIGhvbGQgYSByZWZlcmVuY2UgZm9yIGFzIGxvbmcgYXMgaXQncyBjdXJyZW50 LAo+ID4+ICAgICBlLmcuIGlmIHlvdSBjcmVhdGUgYSBtYWdpYyB1c2VyLXN1cHBsaWVkIG1vZGUs IHNldCB0aGF0IG9uIHRoZSBDUlRDIGFuZAo+ID4+ICAgICB0aGVuIHRlcm1pbmF0ZSB0aGUgY29u bmVjdGlvbiwgdGhlIG1vZGUgc2hvdWxkIHN0aWxsIGxpdmUgb24gZm9yIGhhbmRvdmVyCj4gPj4g ICAgIHB1cnBvc2VzCj4gPgo+ID4gSSB0aGluayB3ZSBuZWVkIG11Y2ggbGVzczogSWYgeW91ciBk cml2ZXIgc3VwcG9ydHMgYXRvbWljIChhbmQgaGVuY2UKPiA+IHVzZXJzcGFjZSBtaWdodCBiZSBh c2tpbmcgZm9yIHRoZSBtb2RlIGJsb2IgcHJvcCBpZCkgdGhlbiB0aGF0IGJsb2Igc2hvdWxkCj4g PiBzdXJ2aXZlIGFzIGxvbmcgYXMgdGhlIG1vZGUgaXMgaW4gdXNlLgo+IAo+IFdoaWNoIG5vdCBv bmx5IHJlcXVpcmVzIHRoZSBtb3N0IGludmFzaXZlIG9mIHRoZSBjaGFuZ2VzIGFueXdheQo+ICht b2R1bG8gdGhvc2UgdG8gY3J0Yy0+bW9kZSwgd2hpY2ggY2FuIHJlZ2FyZGxlc3MgYmUgZHJvcHBl ZCksIGJ1dAo+IGFsc28gYSBidW5jaCBvZiAnZXZlcnkgdGltZSB0aGUgc3RhdGUgY2hhbmdlcywg Z28gY29uc3VsdCBzb21lCj4gYXV4aWxpYXJ5IHByb3BlcnR5IGFuZCBwb3RlbnRpYWxseSBleHBp cmUgaXRzIGxpZmV0aW1lJy4KCldlbGwgeWVhaCwgYnV0IGZvciB0aGUgbW9kZSBwcm9wZXJ0eSB0 aGUgb25seSBwbGFjZSBpdCBjaGFuZ2VzIChiZXNpZGVzCnRoZSBhdG9taWMgaW9jdGwpIGlzIGlu IGRybV9hdG9taWNfaGVscGVyX3NldF9jb25maWcuIFdlIGhhdmUgYSBsb3QgbW9yZQpjb21wYXQg Z2x1ZSBhbHJlYWR5IHRoYW4gdGhlIGZldyBsaW5lcyB5b3UnZCBuZWVkIHRvIGFkZCBpbiB0aGVy ZS4gVGhlCmNydWNpYWwgYml0IGlzIHRoYXQgd2Ugb25seSBuZWVkIHRvIG1ha2UgdGhpcyB3b3Jr IGZvciBhdG9taWMgZHJpdmVycywKc2luY2Ugbm9uLWF0b21pYyBkcml2ZXJzIHdvbid0IGV2ZXIg ZXhwb3NlIHRoZSBNT0RFX0lEIHByb3BlcnR5LiBBbmQKbm9uLWF0b21pYyB1c2Vyc3BhY2UgZG9l c24ndCBjYXJlIGFueXdheS4KCkFsc28gdGhlIGltcG9ydGFudCBwYXJ0IGhlcmUgaXNuJ3Qgc28g bXVjaCB0aGUgbW9kZSAodXNlcnNwYWNlIGNhbiBnZXQgYXQKdGhhdCksIGJ1dCBvdGhlciBuZXcg YmxvYiBwcm9wZXJ0aWVzIGxpa2UgcGVyLXBsYW5lIGdhbW1hIG9yIG90aGVyIGNvbG9yCmNvcnJl Y3Rpb25zIHRhYmxlcy4KCj4gPj4gICAtIHBlcnNpc3RlbmNlIG9mIHN5c3RlbS1zdXBwbGllZCAo ZnJvbS1jb25uZWN0b3Igb3IgZnJvbS1DUlRDKSBtb2RlcyBpcyBub3QKPiA+PiAgICAgaW1wb3J0 YW50IGJleW9uZCB0aGVpciBuYXR1cmFsIGxpZmV0aW1lOiBpZiB5b3UgcGljayBhIG1vZGUgdXAg ZnJvbSBhCj4gPj4gICAgIGNvbm5lY3RvcidzIHByb2JlZCBsaXN0IGFuZCB0aGVuIHRoYXQgY29u bmVjdG9yIGRpc2FwcGVhcnMsIHNldHRpbmcgdGhhdAo+ID4+ICAgICBtb2RlIGlzIHVubGlrZWx5 IHRvIGJlIHdoYXQgeW91IHdhbnQsIHNvIGZhaWx1cmUgYmVjYXVzZSB0aGUgbW9kZSBubwo+ID4+ ICAgICBsb25nZXIgZXhpc3RzIGlzIGVudGlyZWx5IGFjY2VwdGFibGUKPiA+Cj4gPiBTb21ld2hh dCB1bm9yZGVyZWQsIGJ1dCBoZXJlJ3Mgd2hhdCBJIHRoaW5rIHdlIG5lZWQ6Cj4gPiAtIFN1YnR5 cGluZyBibG9iIHByb3BlcnRpZXMgaXMgbm90IG5lZWRlZCwgYXQgbGVhc3QgSSBjYW4ndCB0aGlu ayBvZiBhCj4gPiAgIHVzZS1jYXNlLiBJdCB3aWxsIHJlc3VsdCB0aG91Z2ggaW4gbG90cyBvZiBk dXBsaWNhdGVkIGNvZGUgZm9yCj4gPiAgIGR1cGxpY2F0ZWQgcmVmL3VucmVmIGZ1bmN0aW9ucyBh bmQgYXRvbWljIHByb3AgaGFuZGxpbmcuCj4gCj4gV2hlbiB5b3Ugc2F5ICdzdWJ0eXBpbmcnLCBk byB5b3UgbWVhbiB3aGF0IEkndmUgZG9uZSB3aXRoIGdldGJsb2I/CgpOb3QganVzdCBidXQgeWVz LiBUaGUgb3RoZXIgcmVzdWx0IGlzIHRoYXQgd2UnZCBuZWVkIHRvIGR1cGxpY2F0ZSB0aGUKcHJv cGVydHkgZGVjb2RpbmcgY29kZSBmb3IgZWFjaCB0eXBlIGluIHRoZSBhdG9taWMgaW9jdGwvc2V0 X3Byb3BlcnR5CmZ1bmN0aW9ucy4gQW5kIHlvdSBuZWVkIHBlci10eXBlIHJlZmVyZW5jZS91bnJl ZmVyZW5jZSBmdW5jdGlvbnMuCgo+ID4gLSBTaW5jZSB3ZSBhbHJlYWR5IGhhdmUgYSBnZXRibG9i IGlvY3RsIEkgdGhpbmsgd2Ugc2hvdWxkIGp1c3QgZXh0ZW5kIHRoZQo+ID4gICBleGlzdGluZyBk cm1fcHJvcGVydHlfYmxvYjoKPiAKPiBUaGF0IHdhcyBhY3R1YWxseSBteSBpbml0aWFsIGltcGxl bWVudGF0aW9uLCBidXQgZGlkbid0IGxpa2UgdGhlCj4gcmVzdWx0aW5nIHJlZmVyZW5jZSB0aWUt dXAgYmV0d2VlbiBkcm1fZGlzcGxheV9tb2RlIGFuZAo+IGRybV9wcm9wZXJ0eV9ibG9iIChha2Eg ZHJtX21vZGVfbW9kZWluZm8pLiBJIGNvdWxkbid0IGZpZ3VyZSBvdXQgYQo+IHJlYWxseSBjbGVh biB3YXkgdG8gZG8gaXQgdGhhdCBkaWRuJ3QgcHJvdmFibHkgZmFsbCBkb3duIGF0IHNvbWUKPiBw b2ludCwgc28gYWJhbmRvbmVkIGl0IGFuZCB3ZW50IGZvciByZWZlcmVuY2luZyBkcm1fZGlzcGxh eV9tb2RlCj4gaW5zdGVhZC4KCldoeSByZWZjb3VudCBkcm1fZGlzcGxheV9tb2RlPyBUaGF0J3Mg dGhlIGRybS1pbnRlcm5hbCByZXByZXNlbnRhdGlvbiwgd2UKY2FuIGp1c3Qga2VlcCB0aGF0IGFz LWlzIGV2ZXJ5d2hlcmUuIEkgdGhpbmsgdGhhdCdzIHRoZSBtYWluIHBvaW50IG9mIHdoeQp5b3Ug b3B0ZWQgZm9yIHRoaXMgbXVjaCBtb3JlIGludmFzaXZlIHJlZmFjdG9yaW5nLCBhbmQgSSBkb24n dCBzZWUgd2h5CndlJ2QgbmVlZCBpdC4gVGhlIGFkZGVkIGtyZWYgZm9yIGRybV9ibG9iX3Byb3Bl cnR5IGlzIGltbyByZWFsbHkgYWxsIHRoZQprcmVmcyBJIHRoaW5rIHdlIG5lZWQuCgo+ID4gICBQ bHVzIG9mYyBjaGFuZ2luZyBkcm1fcHJvcGVydHlfY3JlYXRlL2Rlc3Ryb3lfYmxvYiBpbnRvIHJl Zi91bnJlZgo+ID4gICBmdW5jdGlvbnMuIEFuZCBkb2luZyB0aGUgc2FtZSB3ZWFrIHJlZmVyZW5j ZSB0cmljayBmb3IgaWRycyBhcyB3ZSdyZQo+ID4gICB1c2luZyBmb3IgZnJhbWVidWZmZXJzIG5v dy4KPiA+Cj4gPiAgIEZvciBtb2RlIHByb3BlcnRpZXMgdGhlIGRhdGEgY29udGFpbmVkIHdvdWxk IGJlIHN0cnVjdCBkcm1fbW9kZV9tb2RlaW5mbwo+ID4gICAoaS5lLiB0aGUgQUJJIHN0cnVjdCB3 ZSBhbHJlYWR5IHVzZSBmb3IgdGhlIHNldGNydGMvZ2V0Y29ubmVjdG9yIGlvY3RscywKPiA+ICAg bm90IHRoZSBpbnRlcm5hbCBvbmUpLgo+IAo+IFJpZ2h0LCB0aGlzIGlzIHdoYXQncyB0aGVyZTog MjUvMzcgaXMgZXhwbGljaXRseSBhbHdheXMgcmV0dXJuaW5nCj4gbW9kZWluZm8sIGFuZCB0aGUg Y3JlYXRpb24gZG9lcyBhcyB3ZWxsLiBJIGRvbid0IHNlZSBhbnkgYmVuZWZpdCB0bwo+IGV4cG9z aW5nIHRoZSBpbnRlcm5hbCBzdHJ1Y3QuCgpIbSwgbWF5YmUgSSBuZWVkIHRvIGV4cGxhaW4gbXkg bW90aXZpYXRpb24gZm9yIHRoZSBibG9iIHByb3Agc3R1ZmY6IEkgd2FudAp0byB1c2UgaXQgZm9y IGdhbW1hIHRhYmxlcyAobm90IGp1c3QgdGhlIHBlci1jcnRjIG9uZSB3ZSBoYXZlLCBidXQKcGVy LXBsYW5lIHRhYmxlcyB0b28pIGFuZCBvdGhlciBiaWdnZXIgcHJvcGVydGllcy4gVXNpbmcgaXQg Zm9yIHRoZSBtb2RlCmJ5IHBhY2tpbmcgdGhlIGV4aXN0aW5nIGRybV9tb2RlX21vZGVpbmZvIGlu dG8gYSBibG9iIHRvbyB3YXMganVzdCBhIGJpdAphbiBhZnRlcnRob3VnaHQgLSBmb3IgdGhlIG1v ZGUgd2UgY291bGQgYXMgd2VsbCBqdXN0IGFkZCBwcm9wZXJ0aWVzIGZvcgphbGwgdGhlIGluZGl2 aWR1YWwgbWVtYmVycywgbGlrZSB3ZSd2ZSBkb25lIHdpdGggYWxsIHRoZSBvdGhlciBzdHJ1Y3R1 cmVzLgoKQnV0IGxvYWRpbmcgZ2FtbWEgdGFibGVzIHdpdGggZ2FtbWEtMCB1cCB0byBnYW1tYS0x MDI0IGlzIHdheSB0b28KdW53aWVsZGluZywgc28gdGhhdCdzIHdoeSB3ZSBpbW8gcmVhbGx5IG5l ZWQgYmxvYnMuCgo+ID4gLSBJbW8gcmVxdWlyaW5nIGFsbCB0aGUgbGVnYWN5IHVzZXJzIHRvIGJl IGNvbnZlcnRlZCB0byBwb2ludGVycyBpc24ndAo+ID4gICBuZWVkZWQuIGNydGMtPm1vZGUvaHdt b2RlIGFyZSBkZXByZWNhdGVkIGZvciBhdG9taWMgZHJpdmVycy4gTm90IHRoYXQgSQo+ID4gICBk b24ndCB0aGluayBkb2luZyB0aGlzIGlzbid0IHVzZWZ1bCwgSSBqdXN0IHRoaW5rIGl0J3Mgbm90 IG5lZWRlZCB0bwo+ID4gICBoYXZlIGEgbWluaW1hbCBhdG9taWMgbW9kZSBibG9iIHN1cHBvcnQu Cj4gCj4gWWVhaCwgSSBhZ3JlZS4gSSdtIG1vdmluZyBhbGwgdGhpcyBvdXQgdG8gYmUgdHJhY2tl ZCBpbiBhIHNlcGFyYXRlCj4gc2VyaWVzLiBBIGxvdCBvZiBpdCB3YXMgdG8gY29udmluY2UgbXlz ZWxmIHRoYXQgaW4gdGhlIHByb2Nlc3Mgb2YgdGhlCj4gbW9kZSB3b3JrIEkgd2FzIGRvaW5nLCBJ IHdvdWxkbid0IGJlIGJyZWFraW5nIGRyaXZlcnMuCj4gCj4gPiAgIEFzaWRlOiBXZSBkb24ndCBl dmVuIG5lZWQgdG8gY29udmVydCBtb2RlIHN0cnVjdHMgdG8gcG9pbnRlcnMgaWYgd2UKPiA+ICAg ZW1iZWRkZWQgdGhlIGtyZWYgaW50byB0aGUgbW9kZSAtIEkndmUgZG9uZSBzaW1pbGFyIGhvcnJp YmxlIGNvbnZlcnNpb24KPiA+ICAgdHJpY2tzIHdpdGggZnJhbWVidWZmZXJzLCB3aGVyZSBkcml2 ZXJzIHRlbmQgdG8gZW1iZWQgdGhlIHN0YXRpYyBmYmRldgo+ID4gICBmcmFtZWJ1ZmZlciBpbnRv IHRoZSBmYmRldiBlbXVsYXRpb24gc3RydWN0LiBZb3UganVzdCBuZWVkIHJhdwo+ID4gICBmcmVl L2Rlc3Ryb3kgZW50cnkgcG9pbnRzIHdoaWNoIGZvciBzYWZldHkgY2hlY2sgdGhhdCB0aGUga3Jl ZiBjb3VudCBpcwo+ID4gICBleGFjdGx5IDEuCj4gPgo+ID4gLSBGb3IgdGhlIGFjdHVhbCBhdG9t aWMgaW50ZWdyYXRpb24gSSB0aGluayB3ZSBuZWVkIGEgYmxvYiBwcm9wIHBvaW50ZXIKPiA+ICAg c2VwYXJhdGUgZnJvbSB0aGUgbW9kZSBzdHJ1Y3QuIFRoZSBibG9iIHByb3AgY29udGFpbnMgdGhl IHVzZXJzcGFjZSBBQkkKPiA+ICAgc3RydWN0LCBhbmQgdGhlIGVtYmVkZGVkIG9uZSBpcyB0aGUg b25lIHVzZWQgaW50ZXJuYWxseS4gRG9pbmcgYW55IGtpbmQKPiA+ICAgb2YgY29udmVyc2lvbiBq dXN0IGxlYWRzIHRvIGxvdHMgb2YgY2h1cm4sIHdoaWNoIGlzIGVzcGVjaWFsbHkgYmFkIHdpdGgK PiA+ICAgYXJvdW5kIDQgc3RpbGwgaW5jb21wbGV0ZS91bm1lcmdlZCBhdG9taWMgY29udmVyc2lv bi4gU28ganVzdAo+ID4KPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oIGIv aW5jbHVkZS9kcm0vZHJtX2NydGMuaAo+ID4gaW5kZXggYWRjOWVhNWFjZjAyLi5kNmE3YTUyNDdi NjQgMTAwNjQ0Cj4gPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCj4gPiArKysgYi9pbmNs dWRlL2RybS9kcm1fY3J0Yy5oCj4gPiBAQCAtMjk2LDYgKzI5Niw3IEBAIHN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSB7Cj4gPiAgICAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGFkanVzdGVkX21v ZGU7Cj4gPgo+ID4gICAgICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBtb2RlOwo+ID4gKyAg ICAgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKiBtb2RlX2Jsb2I7Cj4gPgo+ID4gICAgICAg ICBzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpldmVudDsKPiA+Cj4gPiAgIEdldHRp bmcgdGhlIHJlZmNvdW50aW5nIHJpZ2h0IGZvciB0aGUgYXRvbWljIGlvY3RsIHNob3VsZCBiZSBz aW1wbGUuIEZvcgo+ID4gICB0aGUgbGVnYWN5IC0+c2V0X2NvbmZpZyBlbnRyeXBvaW50IHdlIG5l ZWQgdG8gZml4IHRoaW5ncyB1cCBpbiB0aGUKPiA+ICAgaGVscGVyIHdoZW4gd2UgdXBkYXRlIHRo ZSBtb2RlLCBieSBtYW51YWxseSByZWxlYXNpbmcgdGhlIG9sZCBtb2RlIGJsb2IKPiA+ICAgYW5k IGNyZWF0aW5nIGEgbmV3IG9uZSAob3duZWQgYnkgdGhlIGtlcm5lbCB0byBhdm9pZCBsZWFrcyBi ZWNhdXNlIG9sZAo+ID4gICB1c2Vyc3BhY2Ugd29uJ3QgY2xlYW4gdGhlbSB1cCAtIHdlJ3ZlIGhh ZCB0aGlzIGJ1ZyB3aXRoIGNvbXBhdCBjdXJzb3IKPiA+ICAgZmJzIGp1c3QgcmVjZW50bHkpLgo+ IAo+IFRvIGJlIGhvbmVzdCBJIHRoaW5rIHRoZSBmYiByZWZjbnQgYnVnIGlzIHByZXR0eSBhcHJv cG9zIGhlcmUgLSBieQo+IGtlZXBpbmcgdGhlc2UgYXdrd2FyZGx5IHNwbGl0IG91dCwgaW5kZXBl bmRlbnRseSByZWZlcmVuY2UtY291bnRlZCwKPiBub3Qgc2Vuc2libHkgbGlua2VkIHRvIGVhY2gg b3RoZXIsIGFuZCBub3QgZXZlbiB2ZXJpZnlpbmcgdGhlCj4gY29ycmVjdG5lc3Mgb2YgdGhlIHVz ZXJzIChjb25zdCksIHlvdSdyZSBpbnZpdGluZyBhbm90aGVyIGRpc2FzdGVyCj4gYWxvbmcgdGhl IHNhbWUgbGluZXMuIEVzcGVjaWFsbHkgYXMgZHJpdmVycyBzdGFydCB0byBtb3ZlIGF3YXkgZnJv bQo+IHRoZSBoZWxwZXJzIGFuZCBhcmUgZXhwZWN0ZWQgdG8gbWFuYWdlIG1vcmUgc3RhdGUgdGhl bXNlbHZlcy4KCldoaWNoIGZiIHJlZmNvdW50IGJ1Zz8gV2UndmUgaGFkIHBpbGVzIG9mIHRoZW0g aW4gdGhlIHBhc3QsIHNpbXBseSBiZWNhdXNlCnJlZmNvdW50aW5nIGlzIGFwcGFyZW50bHkgaGFy ZC4gQW5kIEkgZG9uJ3QgcmVhbGx5IHNlZSBhIHByb2JsZW0gd2l0aApyZWZjb3VudGVkIG9iamVj dHMgd2l0aCBhdG9taWMsIG5vcm1hbCBkcml2ZXIgY29kZSBzaG91bGRuJ3QgZXZlciBjYXJlLgpU aGUgb25seSBwbGFjZSB3ZSBuZWVkIHRvIGJlIGNhcmVmdWwgaXMgaW4KLSBkdXBsaWNhdGUvZGVz dHJveV9zdGF0ZSBmdW5jdGlvbnM6IENhbiBiZSBmaXhlZCBieSBleHRyYWN0aW5nIHN1aXRhYmxl CiAgaGVscGVycyBpbnN0ZWFkIG9mIGNvcHlwYXN0aW5nLgotIGF0b21pY19zZXRfcHJvcGVydHk6 IEZvciBhbGwgdGhlIGNvcmUgcHJvcGVydGllcyB0aGUgZGVjb2RpbmcgaXMgZG9uZSBpbgogIHRo ZSBjb3JlIGFueXdheS4KCkFuZCBmb3IgdGhlIG9kZGJhbGwgZHJpdmVyLXByaXZhdGUgYmxvYiBw cm9wZXJ0eSB3ZSBjYW4gcHJvdmlkZQpjb252aWVuZW5jZSBmdW5jdGlvbnMgdG8gdXBkYXRlIHBv aW50ZXJzIHdoaWNoIHdpbGwgZG8gdGhlIGNvcnJlY3QKdW5yZWYvcmVmIGRhbmNlLgoKPiBJIGFn cmVlIHRoZSBpbml0aWFsIHNlcmllcyB3YXMgdG9vIGludmFzaXZlIGFuZCB0aGVyZSdzIHZhbHVl IGluCj4gaGF2aW5nIGEgbXVjaCBtb3JlIG1pbmltYWwgc2VyaWVzLCBzbyBob3cgYWJvdXQgSSBz cGxpdCBvdXQgdGhlCj4gY3J0Yy0+bW9kZSBjb25zdG5lc3MgKGJ1dCBub3QgcG9pbnRlciAtIEkg ZG9uJ3QgdGhpbmsgSSBoYXZlIGFueQo+IGRlc2lyZSB0byBldmVyIHB1c2ggdGhhdCB0aHJvdWdo IHRicWgpIGNoYW5nZXMgaW50byBhbm90aGVyIHNlcmllcyB3ZQo+IGNhbiB0cmFjayBzZXBhcmF0 ZWx5LCBhbmQgdGhlbiBzZWUgaWYgd2UgY2FuIGdldCBhIG11Y2ggbW9yZSBtaW5pbWFsCj4gcGF0 Y2hzZXQgdGhhdCBkb2Vzbid0IG1ha2UgbWUgc2h1ZGRlciBhbmQgdGhpbmsgb2YgcHJldmlvdXMK PiByZWZjbnQvc3RhdGUtY29uc2lzdGVuY3kgaG9ycm9ycywgbm9yIHlvdSBvZiBhdG9taWMgY29u dmVyc2lvbnMgcGFzdCwKPiB0b2dldGhlci4gSSdtIGhhcHB5IHRvIHB1bGwgaW4gdGhlIG90aGVy IGd1eXMgZG9pbmcgYXRvbWljIGNvbnZlcnNpb25zCj4gYW5kIGdldCBzb21lIHRlc3Rpbmcgb3V0 IG9mIHRoZW0gdG8gc2VlIGlmIGl0J2xsIHdvcmsgZm9yIHRoZW0gYW5kIGhvdwo+IHdlbGwsIGJ1 dCBoYXZpbmcgaXQgcnVuIG9uIFRlZ3JhIHdhcyBhYm91dCBhcyBwYWlubGVzcyBhcyBJIGNvdWxk J3ZlCj4gaG9wZWQgZm9yLgoKSG0sIGhvdyBkb2VzIGEgY29uc3QgY3J0Yy0+bW9kZSBhcyBhIG5v bi1wb2ludGVyIHdvcms/IFdlIGRvIG5lZWQgdG8KdXBkYXRlIHRoaXMgb25lIGluIHNldF9jb25m aWcuIE9yIHdvdWxkIHlvdSBkbyBhIGZvcmNlZCBjYXN0IGluIHRoZXNlCmNhc2VzPwoKQnV0IGV2 ZW4gZm9yIHRoYXQgSSBkb24ndCBzZWUgd2h5IHdlJ2QgbmVlZCB0byBjaGFuZ2UgY3J0Yy0+bW9k ZSByZWFsbHkgdG8KbWFrZSB0aGUgYXRvbWljIG1vZGUgYSBibG9iIHByb3BlcnR5LgoKQ2hlZXJz LCBEYW5pZWwKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBv cmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVsCg==