From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Kocialkowski Subject: Re: [PATCH 00/20] drm: Split out the formats API and move it to a common place Date: Tue, 23 Apr 2019 14:33:46 +0200 Message-ID: References: <20190417154121.GJ13337@phenom.ffwll.local> <20190418062229.eyog4i62eg4pr6uf@flea> <20190418090221.e57dogn4yx5nwdni@flea> <6578c22ddf5420d4dead69d29f451bc6a91f6c4a.camel@bootlin.com> <20190420224045.GY4964@pendragon.ideasonboard.com> <20190423073026.GX13337@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from relay6-d.mail.gandi.net (relay6-d.mail.gandi.net [217.70.183.198]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1B06289321 for ; Tue, 23 Apr 2019 12:33:50 +0000 (UTC) In-Reply-To: <20190423073026.GX13337@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter , Laurent Pinchart Cc: Thomas Petazzoni , Maxime Ripard , Linux Kernel Mailing List , dri-devel , David Airlie , Hans Verkuil , Sean Paul , Sakari Ailus , Boris Brezillon , Daniel Vetter , Mauro Carvalho Chehab , "open list:DMA BUFFER SHARING FRAMEWORK" List-Id: dri-devel@lists.freedesktop.org SGksCgpPbiBUdWUsIDIwMTktMDQtMjMgYXQgMDk6MzAgKzAyMDAsIERhbmllbCBWZXR0ZXIgd3Jv dGU6Cj4gT24gU3VuLCBBcHIgMjEsIDIwMTkgYXQgMDE6NDA6NDVBTSArMDMwMCwgTGF1cmVudCBQ aW5jaGFydCB3cm90ZToKPiA+IEhpIFBhdWwsCj4gPiAKPiA+IE9uIFRodSwgQXByIDE4LCAyMDE5 IGF0IDAxOjQ5OjU0UE0gKzAyMDAsIFBhdWwgS29jaWFsa293c2tpIHdyb3RlOgo+ID4gPiBPbiBU aHUsIDIwMTktMDQtMTggYXQgMTE6MDIgKzAyMDAsIE1heGltZSBSaXBhcmQgd3JvdGU6Cj4gPiA+ ID4gT24gVGh1LCBBcHIgMTgsIDIwMTkgYXQgMDk6NTI6MTBBTSArMDIwMCwgRGFuaWVsIFZldHRl ciB3cm90ZToKPiA+ID4gPiA+IEFuZCBhIGxvdCBvZiBwZW9wbGUgcHVzaGVkIGZvciB0aGUgImZv dXJjYyBpcyBhIHN0YW5kYXJkIiwgd2hlbgo+ID4gPiA+ID4gcmVhbGx5IGl0J3MgdG90YWxseSBu b3QuCj4gPiA+ID4gCj4gPiA+ID4gRXZlbiBpZiBpdCdzIG5vdCBhIHN0YW5kYXJkLCBoYXZpbmcg Y29uc2lzdGVuY3kgd291bGQgYmUgYSBnb29kIHRoaW5nLgo+ID4gPiA+IAo+ID4gPiA+IEFuZCB5 b3Ugc2FpZCB5b3Vyc2VsZiB0aGF0IERSTSBmb3VyY2MgaXMgbm93IHByZXR0eSBtdWNoIGFuIGF1 dGhvcml0eQo+ID4gPiA+IGZvciB0aGUgZm91cmNjLCBzbyBpdCBkZWZpbml0ZWx5IGxvb2tzIGxp a2UgYSBzdGFuZGFyZCB0byBtZS4KPiA+ID4gCj4gPiA+IEkgdGhpbmsgdHJ5aW5nIHRvIG1ha2Ug dGhlIFY0TDIgYW5kIERSTSBmb3VyY2NzIGNvbnZlcmdlIGlzIGEgbG9zdAo+ID4gPiBjYXVzZSwg YXMgaXQgaGFzIGFscmVhZHkgc2lnbmlmaWNhbnRseSBkaXZlcmdlZC4gRXZlbiBpZiB3ZSBjb29y ZGluYXRlCj4gPiA+IGFuIGVmZm9ydCB0byBpbnRyb2R1Y2UgbmV3IGZvcm1hdHMgd2l0aCB0aGUg c2FtZSBmb3VyY2Mgb24gYm90aCBzaWRlcywKPiA+ID4gSSBkb24ndCBzZWUgd2hhdCBnb29kIHRo YXQgd291bGQgYmUgc2luY2UgdGhlIGZvcm1hdHMgd2UgaGF2ZSBub3cgYXJlCj4gPiA+IHN0aWxs IHBsYWd1ZWQgYnkgdGhlIGluY29uc2lzdGVuY3kuCj4gPiA+IAo+ID4gPiBJIHRoaW5rIHdlIGFs d2F5cyBuZWVkIGFuIGV4cGxpY2l0IHRyYW5zbGF0aW9uIHN0ZXAgZnJvbSBlaXRoZXIgdjRsMiBv cgo+ID4gPiBkcm0gdG8gdGhlIGludGVybmFsIHJlcHJlc2VudGF0aW9uIGFuZCBiYWNrLCB3aXRo b3V0IGV2ZXIgYXNzdW1pbmcgdGhhdAo+ID4gPiBmb3JtYXRzIG1pZ2h0IGJlIGNvbXBhdGlibGUg YmVjYXVzZSB0aGV5IHNoYXJlIHRoZSBzYW1lIGZvdXJjYy4KPiA+IAo+ID4gSSBkb24ndCBhZ3Jl ZS4gQVBJcyBldm9sdmUsIGFuZCB3aGlsZSB3ZSBjYW4ndCBzd2l0Y2ggZnJvbSBvbmUgc2V0IG9m Cj4gPiA0Q0NzIHRvIGFub3RoZXIgaW4gZXhpc3RpbmcgQVBJcywgd2UgY291bGQgaW4gbmV3IEFQ SXMuIEJvcmlzIGlzIHdvcmtpbmcKPiA+IG9uIG5ldyBpb2N0bHMgdG8gaGFuZGxlIGZvcm1hdHMg aW4gVjRMMiwgYW5kIHdoaWxlIDRDQyB1bmlmaWNhdGlvbiBjb3VsZAo+ID4gYmUgaW1wb3B1bGFy IGZyb20gYSB1c2Vyc3BhY2UgZGV2ZWxvcGVycyBwb2ludCBvZiB2aWV3IHRoZXJlLCBJIGRvbid0 Cj4gPiB0aGluayB3ZSBoYXZlIHJ1bGVkIGl0IG91dCBjb21wbGV0ZWx5LiBUaGUgbW92ZSB0byB0 aGUgcmVxdWVzdCBBUEkgaXMKPiA+IGFsc28gYW4gYXJlYSB3aGVyZSBhIGNvbW1vbiBzZXQgb2Yg NENDcyBjb3VsZCBiZSB1c2VkLCBhcyBpdCB3aWxsIGRlcGFydAo+ID4gZnJvbSB0aGUgZXhpc3Rp bmcgVjRMMiBpb2N0bHMuIFRvIHN1bW1hcml6ZSBteSBvcGluaW9uLCB3ZSdyZSBub3QgdGhlcmUK PiA+IHlldCwgYnV0IEkgd291bGRuJ3QgcnVsZSBpdCBvdXQgY29tcGxldGVseSBmb3IgdGhlIGZ1 dHVyZS4KPiA+IAo+ID4gPiBJdCBsb29rcyBsaWtlIHNvIGZhciwgVjRMMiBwaXhlbCBmb3JtYXRz IGRlc2NyaWJlIGEgRFJNIHBpeGVsIGZvcm1hdCArCj4gPiA+IG1vZGlmaWVyLgo+ID4gCj4gPiBE Uk0gbW9kaWZpZXJzIGFyZSBtb3N0bHkgYWJvdXQgdGlsaW5nIGFuZCBjb21wcmVzc2lvbiwgYW5k IHdlIGhhcmRseQo+ID4gc3VwcG9ydCB0aGVzZSBpbiBWNEwyLiBXaGF0IGFyZSB0aGUgbW9kaWZp ZXJzIHlvdSB0aGluayBhcmUgaGFyZGNvZGVkIGluCj4gPiA0Q0NzIGluIFY0TDIgPwo+IAo+IEht IG1heWJlIGl0IHdhcyBhIGRybSBvbmUgdGhhdCBkaWRuJ3QgY29tZSBmcm9tIHY0bCBvciBhbnl3 aGVyZSBlbHNlCj4gcmVhbGx5LCBidXQgdGhlIE5WMTJNVCBvbmUgaXMgbnYxMiArIHNvbWUgdGls aW5nLiBJIHRoaW5rIHdlIG1hbmFnZWQgdG8KPiB1YXBpLWJlbmQgdGhhdCBvbmUgaW50byBzaGFw ZSBpbiBhdCBsZWFzdCBkcm0uCgpUaGUgb25lIEkgaGFkIGluIG1pbmQgaXMgVjRMMl9QSVhfRk1U X1NVTlhJX1RJTEVEX05WMTIgd2hpY2ggdHJhbnNsYXRlcwp0byBEUk1fRk9STUFUX05WMTIgKyBE Uk1fRk9STUFUX01PRF9BTExXSU5ORVJfVElMRUQuIFNlZW1zIHRvIGJlIGEKcHJldHR5IHNpbWls YXIgY2FzZSB0byB0aGUgTWVkaWF0ZWsgb25lIGluZGVlZC4KCkluIG91ciBjYXVzZSwgdGhhdCdz IGJlY2F1c2UgdGhlIHZpZGVvIGRlY29kaW5nIGVuZ2luZSBwcm9kdWNlcyBpdHMKZGVzdGluYXRp b24gYnVmZmVycyBpbiBhIHNwZWNpZmljIHRpbGVkIGZvcm1hdCwgdGhhdCB0aGUgZGlzcGxheSBl bmdpbmUKY2FuIHRha2UgaW4gZGlyZWN0bHkuCgpDaGVlcnMsCgpQYXVsCgo+IC1EYW5pZWwKPiAK PiA+ID4gSSB0aGluayBCb3JpcyAoQ0NlZCkgaXMgd29ya2luZyB0byBjaGFuZ2UgdGhhdCBieSBh bGxvd2luZyB0bwo+ID4gPiBwYXNzIGEgRFJNIG1vZGlmaWVyIHRocm91Z2ggVjRMMi4gV2l0aCB0 aGF0LCB3ZSdkIGJlIGluIGEgc2l0dWF0aW9uCj4gPiA+IHdoZXJlIHNvbWUgZm9ybWF0cyBhcmUg ZGVzY3JpYmVkIGJ5IHRoZSB2NGwyIHBpeGZtdCBhbG9uZSBhbmQgc29tZQo+ID4gPiBmb3JtYXRz IGFyZSBhbHNvIGRlc2NyaWJlZCBhIG1vZGlmaWVyIChidXQgSSBsb29rZWQgYXQgaXQgZnJvbSBh Cj4gPiA+IGRpc3RhbmNlIHNvIG1pZ2h0IGhhdmUgbWlzdW5kZXJzdG9kKS4gVGhhdCBmZWVscyBi ZXR0ZXIgc2luY2UgaXQgYXZvaWRzCj4gPiA+IHRoZSBjb21iaW5hdG9yeSBleHBsb3Npb24gZnJv bSBkZXNjcmliaW5nIGVhY2ggZm9ybWF0ICsgbW9kaWZpZXIKPiA+ID4gaW5kaXZpZHVhbGx5Lgo+ ID4gPiAKPiA+ID4gV2hhdCBkbyB5b3UgdGhpbms/Cj4gPiA+IAo+ID4gPiA+ID4gdjRsIHRlbmRz IHRvIGNvbmZsYXRlIHBpeGVsIGZvcm1hdCB3aXRoIHN0dWZmIHRoYXQgd2UgdGVuZCB0byBlbmNv ZGUKPiA+ID4gPiA+IGluIG1vZGlmaWVycyBhIGxvdCBtb3JlLgo+ID4gPiA+IAo+ID4gPiA+IEJv cmlzIGlzIHdvcmtpbmcgb24gYWRkaW5nIHRoZSBtb2RpZmllcnMgY29uY2VwdCB0byB2NGwyLCBz byB3ZSdyZQo+ID4gPiA+IGNvbnZlcmdpbmcgaGVyZSwgYW5kIHdlIGNhbiB0b3RhbGx5IGhhdmUg YSBsYXllciBpbiB2NGwyIHRvIGNvbnZlcnQKPiA+ID4gPiBiZXR3ZWVuIG9sZCB2NGwyICJmb3Jt YXQrbW9kaWZpZXJzIiBmb3JtYXRzLCBhbmQgRFJNIHN0eWxlIGZvcm1hdHMuCj4gPiA+ID4gCj4g PiA+ID4gPiBUaGVyZSdzIGEgYnVuY2ggb2YgcmVhc29ucyB3ZSBjYW4ndCBqdXN0IHVzZSB2NGws IGFuZCB0aGV5J3JlIGFzCj4gPiA+ID4gPiB2YWxpZCBhcyBldmVyOgo+ID4gPiA+ID4gCj4gPiA+ ID4gPiAtIFdlIG92ZXJsYXAgYmFkbHkgaW4gc29tZSBhcmVhcywgc28gZXZlbiBpZiBmb3VyY2Mg Y29kZXMgbWF0Y2gsIHdlCj4gPiA+ID4gPiAgIGNhbid0IHVzZSB0aGVtIGFuZCBuZWVkIGEgZHVw bGljYXRlZCBEUk1fRk9VUkNDIGNvZGUuCj4gPiA+ID4gCj4gPiA+ID4gRG8geW8gaGF2ZSBhbiBl eGFtcGxlIG9mIG9uZSBvZiB0aG9zZSBhcmVhcz8KPiA+ID4gPiAKPiA+ID4gPiA+IC0gdjRsIGVu Y29kZXMgc29tZSBtZXRhZGF0YSBpbnRvIHRoZSBmb3VyY2MgdGhhdCB3ZSBlbmNvZGUgZWxzZXdo ZXJlLAo+ID4gPiA+ID4gICBlLmcuIG9mZnNldCBmb3IgcGxhbmFyIHl1diBmb3JtYXRzLCBvciB0 aWxpbmcgbW9kZQo+ID4gPiA+IAo+ID4gPiA+IEFzIEkgd2FzIHNheWluZywgdGhpcyBjaGFuZ2Vz IG9uIHRoZSB2NGwyIHNpZGUsIGFuZCBjb252ZXJnaW5nIHRvCj4gPiA+ID4gd2hhdCBEUk0gaXMg ZG9pbmcuCj4gPiA+ID4gCj4gPiA+ID4gPiAtIGRybSBmb3VyY2MgY29kZSBkb2Vzbid0IGFjdHVh bGx5IGRlZmluZSB0aGUgZHJtX2Zvcm1hdF9pbmZvCj4gPiA+ID4gPiAgIHVuaXF1ZWx5LCBkcml2 ZXJzIGNhbiBvdmVycmlkZSB0aGF0ICh0aGF0J3MgYW4gZXhwbGljaXQgZGVzaWduCj4gPiA+ID4g PiAgIGludGVudCBvZiBtb2RpZmllcnMsIHRvIGFsbG93IGRyaXZlcnMgdG8gYWRkIGFub3RoZXIg cGxhbmUgZm9yCj4gPiA+ID4gPiAgIGUuZy4gY29tcHJlc3Npb24gaW5mb3JtYXRpb24pLiBZb3Un ZCBuZWVkIHRvIHB1bGwgdGhhdCBkcml2ZXIKPiA+ID4gPiA+ICAga25vd2xlZGdlIGludG8geW91 ciBmb3JtYXQgbGlicmFyeS4KPiA+ID4gPiAKPiA+ID4gPiBJJ20gbm90IHN1cmUgaG93IG15IHBh dGNoZXMgYXJlIGNoYW5naW5nIGFueXRoaW5nIGhlcmUuIFRoaXMgaXMKPiA+ID4gPiBsaXR0ZXJh bGx5IHRoZSBzYW1lIGNvZGUsIHdpdGggdGhlIGZ1bmN0aW9ucyByZW5hbWVkLgo+ID4gPiA+IAo+ ID4gPiA+IElmIGRyaXZlcnMgd2FudCB0byBvdmVycmlkZSB0aGF0LCB0aGVuIHllYWgsIGZpbmUs IHdlIGNhbiBsZXQgdGhlbSBkbwo+ID4gPiA+IHRoYXQuIEp1c3QgbGlrZSBhbnkgaGVscGVyIHRo aXMganVzdCBwcm92aWRlcyBhIGRlZmF1bHQgdGhhdCBjb3ZlcnMKPiA+ID4gPiBtb3N0IG9mIHRo ZSBjYXNlcy4KPiA+ID4gPiAKPiA+ID4gPiA+IElvdyB0aGVyZSdzIG5vIHdheSB3ZSBjYW4gZWFz aWx5IGFkb3B0IHY0bCBmb3VyY2MsIGV4Y2VwdCBpZiB3ZSBkbwo+ID4gPiA+ID4gc29tZXRoaW5n IGxpa2UgYSBuZXcgYWRkZmIgZmxhZy4KPiA+ID4gPiAKPiA+ID4gPiBGb3IgdGhlIGZvcm1hdHMg dGhhdCB3b3VsZCBiZSBkZXNjcmliZWQgYXMgYSBtb2RpZmllciwgc3VyZS4gRm9yIGFsbAo+ID4g PiA+IHRoZSBvdGhlcnMgKHRoYXQgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkIGJ5IERSTSksIHRoZW4g SSBkb24ndCByZWFsbHkKPiA+ID4gPiBzZWUgd2h5IG5vdC4KPiA+ID4gPiAKPiA+ID4gPiA+ID4g QW5kIGdpdmVuIGhvdyB0aGUgY3VycmVudCBzdGF0ZSBpcyBhIG1lc3MgaW4gdGhpcyByZWdhcmQs IEknbSBub3QgdG9vCj4gPiA+ID4gPiA+IG9wdGltaXN0aWMgYWJvdXQga2VlcGluZyB0aGUgZm9y bWF0cyBpbiB0aGVpciByZWxldmFudCBmcmFtZXdvcmtzLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ ID4gSGF2aW5nIGEgc2hhcmVkIGxpYnJhcnksIGdvdmVybmVkIGJ5IGJvdGgsIHdpbGwgbWFrZSB0 aGlzIGZhciBlYXNpZXIsCj4gPiA+ID4gPiA+IHNpbmNlIGl0IHdpbGwgYmUgZWFzeSB0byBkaXNj b3ZlciB0aGUgZm9ybWF0cyB0aGF0IGFyZSBhbHJlYWR5Cj4gPiA+ID4gPiA+IHN1cHBvcnRlZCBi eSB0aGUgb3RoZXIgc3Vic3lzdGVtLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBJIHRoaW5rIGEgY29t cGF0IGxpYnJhcnkgdGhhdCAodHJpZXMgdG8sIGJlc3QgZWZmb3J0KSBjb252ZXJ0IGJldHdlZW4K PiA+ID4gPiA+IHY0bCBhbmQgZHJtIGZvdXJjYyB3b3VsZCBtYWtlIHNlbnNlLiBTb21ld2hlcmUg aW4gZHJpdmVycy92aWRlbywgbmV4dAo+ID4gPiA+ID4gdG8gdGhlIGNvbnZlcnNpb24gZnVuY3Rp b25zIGZvciB2aWRlb21vZGUgPC0+IGRybV9kaXNwbGF5X21vZGUKPiA+ID4gPiA+IHBlcmhhcHMu IFRoYXQgc2hvdWxkIGJlIHVzZWZ1bCBmb3IgZHJpdmVycy4KPiA+ID4gPiAKPiA+ID4gPiBUaGF0 J3Mgbm90IHJlYWxseSB3aGF0IHRoaXMgc2VyaWVzIGlzIGFib3V0IHRob3VnaC4gVGhhdCBzZXJp ZXMgaXMKPiA+ID4gPiBhYm91dCBzaGFyaW5nIHRoZSAoaW1hZ2V8cGl4ZWxzKSBmb3JtYXRzIGRh dGFiYXNlIGFjcm9zcyBldmVyeW9uZSBzbwo+ID4gPiA+IHRoYXQgZXZlcnlvbmUgY2FuIGJlbmVm aXQgZnJvbSBpdC4KPiA+ID4gPiAKPiA+ID4gPiA+IFVuaWZ5aW5nIHRoZSBmb3JtYXRzIHRoZW1z ZWx2ZXMsIGFuZCBhbGwgdGhlIGFzc29jaWF0ZWQgbWV0YWRhdGEgaXMKPiA+ID4gPiA+IGltbyBh IG5vLWdvLCBhbmQgd2FzIGEgcHJldHR5IGNvbnNjaW91cyBkZWNpc2lvbiB3aGVuIHdlIGltcGxl bWVudGVkCj4gPiA+ID4gPiBkcm1fZm91cmNjIGEgZmV3IHllYXJzIGJhY2suCj4gPiA+ID4gPiAK PiA+ID4gPiA+ID4gSWYgd2Ugd2FudCB0byBrZWVwIHRoZSBjdXJyZW50IGxpYnJhcnkgaW4gRFJN LCB3ZSBoYXZlIHR3byBvcHRpb25zCj4gPiA+ID4gPiA+IHRoZW46Cj4gPiA+ID4gPiA+IAo+ID4g PiA+ID4gPiAgIC0gU3VwcG9ydCBhbGwgdGhlIHY0bDIgZm9ybWF0cyBpbiB0aGUgRFJNIGxpYnJh cnksIHdoaWNoIGlzCj4gPiA+ID4gPiA+ICAgICBlc3NlbnRpYWxseSB3aGF0IEknbSBkb2luZyBp biB0aGUgbGFzdCBwYXRjaGVzLiBIb3dldmVyLCB0aGF0Cj4gPiA+ID4gPiA+ICAgICB3b3VsZCBy ZXF1aXJlIHRvIGhhdmUgdGhlIHY0bDIgZGV2ZWxvcHBlcnMgYWxzbyByZXZpZXdpbmcgc3R1ZmYK PiA+ID4gPiA+ID4gICAgIHRoZXJlLiBBbmQgZ2l2ZW4gaG93IGJ1c3kgdGhleSBhcmUsIEkgY2Fu bm90IHJlYWxseSBzZWUgaG93IHRoYXQKPiA+ID4gPiA+ID4gICAgIHdvdWxkIHdvcmsuCj4gPiA+ ID4gPiAKPiA+ID4gPiA+IFdlbGwsIGlmIHdlIGVuZCB1cCB3aXRoIGEgY29tbW9uIGxpYnJhcnkg dGhlbiB5ZXMgd2UgbmVlZCBjcm9zcwo+ID4gPiA+ID4gcmV2aWV3LiBUaGVyZSdzIG5vIHdheSBh cm91bmQgdGhhdC4gRG9lc24ndCBtYXR0ZXIgd2hlcmUgZXhhY3RseSB0aGF0Cj4gPiA+ID4gPiBs aWJyYXJ5IGlzIGluIHRoZSBmaWxlc3lzdGVtIHRyZWUsIGFuZCBhZGRpbmcgYSBzcGVjaWFsIE1B SU5UQUlORVJTCj4gPiA+ID4gPiBlbnRyeSBmb3IgYW55dGhpbmcgcmVsYXRlZCB0byBmb3VyY2Mg KGJvdGggZHJtIGFuZCB2NGwpIHRvIG1ha2Ugc3VyZQo+ID4gPiA+ID4gdGhleSBnZXQgY3Jvc3Mt cG9zdGVkIGlzIGVhc3kuIE5vIGZpbGUgcmVuYW1pbmcgbmVlZGVkLgo+ID4gPiA+IAo+ID4gPiA+ IFRoYXQgd291bGQgY3JlYXRlIHNvbWUgZ292ZXJuaW5nIGlzc3VlcyBhcyB3ZWxsLiBGb3IgZXhh bXBsZSwgaWYgeW91Cj4gPiA+ID4gZXZlciBoYXZlIGEgcGF0Y2ggZnJvbSBvbmUgZm91cmNjIGFk ZGl0aW9uICh0aGF0IG1pZ2h0IG9yIG1pZ2h0IG5vdCBiZQo+ID4gPiA+IGNvdmVyZWQgYnkgdjRs MiksIHdpbGwgeW91IHdhaXQgZm9yIGFueSB2NGwyIGRldmVsb3BwZXIgdG8gcmV2aWV3IGl0Pwo+ ID4gPiA+IAo+ID4gPiA+IElmIGl0J3Mgc2hhcmVkIGNvZGUsIHRoZW4gaXQgc2hvdWxkIGJlIHNo YXJlZCwgYW5kIGV2ZXJ5IGNsaWVudAo+ID4gPiA+IGZyYW1ld29yayBwdXQgb24gYW4gZXF1YWwg Zm9vdGluZy4KPiA+ID4gPiAKPiA+ID4gPiA+ID4gICAtIERldmVsb3AgdGhlIHNhbWUgbGlicmFy eSBmcm9tIHdpdGhpbiB2NGwyLiBUaGF0IGlzIHJlYWxseSBhIHBvb3IKPiA+ID4gPiA+ID4gICAg IHNvbHV0aW9uLCBzaW5jZSB0aGUgaW5mb3JtYXRpb24gd291bGQgYmUgZ3JlYXRseSBkdXBsaWNh dGVkCj4gPiA+ID4gPiA+ICAgICBiZXR3ZWVuIHRoZSB0d28sIGFuZCBpbiB0ZXJtcyBvZiBtYWlu dGFpbmFuY2UsIGNvZGUsIGFuZCBiaW5hcnkKPiA+ID4gPiA+ID4gICAgIHNpemUgdGhhdCB3b3Vs ZCBiZSBkdXBsaWNhdGVkIHRvby4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gSXQncyBlc3NlbnRpYWxs eSB3aGF0IHdlIGRlY2lkZWQgdG8gZG8gZm9yIGRybSB5ZWFycyBiYWNrLgo+ID4gPiA+IAo+ID4g PiA+IEFuZCBpdCB3YXMgcHJvYmFibHkgdGhlIHJpZ2h0IHNvbHV0aW9uIGJhY2sgdGhlbiwgYnV0 IEknbSByZWFsbHkgbm90Cj4gPiA+ID4gY29udmluY2VkIGl0J3Mgc3RpbGwgdGhlIHJpZ2h0IHRo aW5nIHRvIGRvIHRvZGF5Lgo+ID4gPiA+IAo+ID4gPiA+ID4gPiBIYXZpbmcgaXQgc2hhcmVkIGFs bG93cyB0byBlYXNpbHkgc2hhcmUsIGFuZCBkaXNjb3ZlciBmb3JtYXRzIGZyb20gdGhlCj4gPiA+ ID4gPiA+IG90aGVyIHN1YnN5c3RlbSwgYW5kIHRvIGhhdmUgYSBzaW5nbGUsIHVuaXF1ZSBwbGFj ZSB3aGVyZSB0aGlzIGlzCj4gPiA+ID4gPiA+IGNlbnRyYWxpemVkLgo+ID4gPiA+ID4gCj4gPiA+ ID4gPiBXaGF0IEkgdGhpbmsgY291bGQgd29yayBhcyBtaWRkbGUgZ3JvdW5kOgo+ID4gPiA+ID4g LSBQdXQgZHJtX2Zvcm1hdCBzdHVmZiBpbnRvIGEgc2VwYXJhdGUgLmtvCj4gPiA+ID4gPiAtIEFk ZCBhIE1BSU5UQUlORVJTIGVudHJ5IHRvIG1ha2Ugc3VyZSBhbGwgdGhpbmdzIGZvdXJjYyBhcmUg Y3Jvc3MKPiA+ID4gPiA+IHBvc3RlZCB0byBib3RoIGRybSBhbmQgdjRsIGxpc3RzLiBFYXN5IG9u IHRoZSBkcm0gc2lkZSwgc2luY2UgaXQncyBhbGwKPiA+ID4gPiA+IHNlcGFyYXRlIGZpbGVzLiBO b3Qgc3VyZSBpdCdzIHNvIGNvbnZlbmllbnQgZm9yIHY0bCB1YXBpLgo+ID4gPiA+ID4gLSBBZGQg YSBjb252ZXJzaW9uIGxpYnJhcnkgdGhhdCB0cmllcyB0byBiZXN0LWVmZm9ydCBtYXAgYmV0d2Vl biBkcm0KPiA+ID4gPiA+IGFuZCB2NGwgZm9ybWF0cy4gT24gdGhlIGRybSBzaWRlIHRoYXQgbW9z dCBsaWtlbHkgbWVhbnMgeW91IG5lZWQKPiA+ID4gPiA+IG9mZnNldHMgZm9yIHBsYW5lcywgYW5k IG1vZGlmaWVycyB0b28gKHNpbmNlIHRob3NlIGFyZSBpbXBsaWVkIGluIHNvbWUKPiA+ID4gPiA+ IHY0bCBmb3VyY2MpLiBFbXBoYXNpcyBvbiAiYmVzdCBlZmZvcnQiIGkuZS4gb25seSBzdXBwb3J0 IGFzIG11Y2ggYXMKPiA+ID4gPiA+IHRoZSBkcml2ZXJzIHRoYXQgdXNlIHRoaXMgbGlicmFyeSBu ZWVkLgo+ID4gPiA+ID4gLSBBZGQgZHJtX2ZvdXJjYyBhcy1uZWVkZWQgYnkgdGhlc2UgZHJpdmVy cyB0aGF0IHdhbnQgdG8gdXNlIGEgdW5pZmllZAo+ID4gPiA+ID4gZm9ybWF0IHNwYWNlLgo+ID4g PiA+ID4gCj4gPiA+ID4gPiBGb3JjaW5nIHRoaXMgdW5pZmljYXRpb24gb24gZXZlcnlvbmUgb3Rv aCBpcyBpbW8gd2F5IHRvbyBtdWNoLgo+ID4gPiA+IAo+ID4gPiA+IHY0bDIgaXMgc3RhcnRpbmcg dG8gY29udmVyZ2Ugd2l0aCBEUk0sIGFuZCB3ZSdyZSB1c2luZyB0aGUgRFJNIEFQSQo+ID4gPiA+ IHByZXR0eSBtdWNoIHVudG91Y2hlZCBmb3IgdGhhdCBsaWJyYXJ5LCBzbyBJJ20gbm90IHJlYWxs eSBzdXJlIGhvdwo+ID4gPiA+IGFueW9uZSBpcyBodXJ0IGJ5IHRoYXQgdW5pZmljYXRpb24uCj4g PiAKPiA+IC0tIAo+ID4gUmVnYXJkcywKPiA+IAo+ID4gTGF1cmVudCBQaW5jaGFydAotLSAKUGF1 bCBLb2NpYWxrb3dza2ksIEJvb3RsaW4KRW1iZWRkZWQgTGludXggYW5kIGtlcm5lbCBlbmdpbmVl cmluZwpodHRwczovL2Jvb3RsaW4uY29tCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWw=