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 16:55:24 +0200 Message-ID: <96cf0927fa74eb91a6f110f43a21ddd3d8a7333a.camel@bootlin.com> 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 relay8-d.mail.gandi.net (relay8-d.mail.gandi.net [217.70.183.201]) by gabe.freedesktop.org (Postfix) with ESMTPS id 78BB38938B for ; Tue, 23 Apr 2019 14:55:29 +0000 (UTC) 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: Nicolas Dufresne , 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 SGksCgpPbiBUdWUsIDIwMTktMDQtMjMgYXQgMTA6MjggLTA0MDAsIE5pY29sYXMgRHVmcmVzbmUg d3JvdGU6Cj4gTGUgbWFyZGkgMjMgYXZyaWwgMjAxOSDDoCAxNDozMyArMDIwMCwgUGF1bCBLb2Np YWxrb3dza2kgYSDDqWNyaXQgOgo+ID4gSGksCj4gPiAKPiA+IE9uIFR1ZSwgMjAxOS0wNC0yMyBh dCAwOTozMCArMDIwMCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+ID4gT24gU3VuLCBBcHIgMjEs IDIwMTkgYXQgMDE6NDA6NDVBTSArMDMwMCwgTGF1cmVudCBQaW5jaGFydCB3cm90ZToKPiA+ID4g PiBIaSBQYXVsLAo+ID4gPiA+IAo+ID4gPiA+IE9uIFRodSwgQXByIDE4LCAyMDE5IGF0IDAxOjQ5 OjU0UE0gKzAyMDAsIFBhdWwgS29jaWFsa293c2tpIHdyb3RlOgo+ID4gPiA+ID4gT24gVGh1LCAy MDE5LTA0LTE4IGF0IDExOjAyICswMjAwLCBNYXhpbWUgUmlwYXJkIHdyb3RlOgo+ID4gPiA+ID4g PiBPbiBUaHUsIEFwciAxOCwgMjAxOSBhdCAwOTo1MjoxMEFNICswMjAwLCBEYW5pZWwgVmV0dGVy IHdyb3RlOgo+ID4gPiA+ID4gPiA+IEFuZCBhIGxvdCBvZiBwZW9wbGUgcHVzaGVkIGZvciB0aGUg ImZvdXJjYyBpcyBhIHN0YW5kYXJkIiwgd2hlbgo+ID4gPiA+ID4gPiA+IHJlYWxseSBpdCdzIHRv dGFsbHkgbm90Lgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gRXZlbiBpZiBpdCdzIG5vdCBhIHN0 YW5kYXJkLCBoYXZpbmcgY29uc2lzdGVuY3kgd291bGQgYmUgYSBnb29kIHRoaW5nLgo+ID4gPiA+ ID4gPiAKPiA+ID4gPiA+ID4gQW5kIHlvdSBzYWlkIHlvdXJzZWxmIHRoYXQgRFJNIGZvdXJjYyBp cyBub3cgcHJldHR5IG11Y2ggYW4gYXV0aG9yaXR5Cj4gPiA+ID4gPiA+IGZvciB0aGUgZm91cmNj LCBzbyBpdCBkZWZpbml0ZWx5IGxvb2tzIGxpa2UgYSBzdGFuZGFyZCB0byBtZS4KPiA+ID4gPiA+ IAo+ID4gPiA+ID4gSSB0aGluayB0cnlpbmcgdG8gbWFrZSB0aGUgVjRMMiBhbmQgRFJNIGZvdXJj Y3MgY29udmVyZ2UgaXMgYSBsb3N0Cj4gPiA+ID4gPiBjYXVzZSwgYXMgaXQgaGFzIGFscmVhZHkg c2lnbmlmaWNhbnRseSBkaXZlcmdlZC4gRXZlbiBpZiB3ZSBjb29yZGluYXRlCj4gPiA+ID4gPiBh biBlZmZvcnQgdG8gaW50cm9kdWNlIG5ldyBmb3JtYXRzIHdpdGggdGhlIHNhbWUgZm91cmNjIG9u IGJvdGggc2lkZXMsCj4gPiA+ID4gPiBJIGRvbid0IHNlZSB3aGF0IGdvb2QgdGhhdCB3b3VsZCBi ZSBzaW5jZSB0aGUgZm9ybWF0cyB3ZSBoYXZlIG5vdyBhcmUKPiA+ID4gPiA+IHN0aWxsIHBsYWd1 ZWQgYnkgdGhlIGluY29uc2lzdGVuY3kuCj4gPiA+ID4gPiAKPiA+ID4gPiA+IEkgdGhpbmsgd2Ug YWx3YXlzIG5lZWQgYW4gZXhwbGljaXQgdHJhbnNsYXRpb24gc3RlcCBmcm9tIGVpdGhlciB2NGwy IG9yCj4gPiA+ID4gPiBkcm0gdG8gdGhlIGludGVybmFsIHJlcHJlc2VudGF0aW9uIGFuZCBiYWNr LCB3aXRob3V0IGV2ZXIgYXNzdW1pbmcgdGhhdAo+ID4gPiA+ID4gZm9ybWF0cyBtaWdodCBiZSBj b21wYXRpYmxlIGJlY2F1c2UgdGhleSBzaGFyZSB0aGUgc2FtZSBmb3VyY2MuCj4gPiA+ID4gCj4g PiA+ID4gSSBkb24ndCBhZ3JlZS4gQVBJcyBldm9sdmUsIGFuZCB3aGlsZSB3ZSBjYW4ndCBzd2l0 Y2ggZnJvbSBvbmUgc2V0IG9mCj4gPiA+ID4gNENDcyB0byBhbm90aGVyIGluIGV4aXN0aW5nIEFQ SXMsIHdlIGNvdWxkIGluIG5ldyBBUElzLiBCb3JpcyBpcyB3b3JraW5nCj4gPiA+ID4gb24gbmV3 IGlvY3RscyB0byBoYW5kbGUgZm9ybWF0cyBpbiBWNEwyLCBhbmQgd2hpbGUgNENDIHVuaWZpY2F0 aW9uIGNvdWxkCj4gPiA+ID4gYmUgaW1wb3B1bGFyIGZyb20gYSB1c2Vyc3BhY2UgZGV2ZWxvcGVy cyBwb2ludCBvZiB2aWV3IHRoZXJlLCBJIGRvbid0Cj4gPiA+ID4gdGhpbmsgd2UgaGF2ZSBydWxl ZCBpdCBvdXQgY29tcGxldGVseS4gVGhlIG1vdmUgdG8gdGhlIHJlcXVlc3QgQVBJIGlzCj4gPiA+ ID4gYWxzbyBhbiBhcmVhIHdoZXJlIGEgY29tbW9uIHNldCBvZiA0Q0NzIGNvdWxkIGJlIHVzZWQs IGFzIGl0IHdpbGwgZGVwYXJ0Cj4gPiA+ID4gZnJvbSB0aGUgZXhpc3RpbmcgVjRMMiBpb2N0bHMu IFRvIHN1bW1hcml6ZSBteSBvcGluaW9uLCB3ZSdyZSBub3QgdGhlcmUKPiA+ID4gPiB5ZXQsIGJ1 dCBJIHdvdWxkbid0IHJ1bGUgaXQgb3V0IGNvbXBsZXRlbHkgZm9yIHRoZSBmdXR1cmUuCj4gPiA+ ID4gCj4gPiA+ID4gPiBJdCBsb29rcyBsaWtlIHNvIGZhciwgVjRMMiBwaXhlbCBmb3JtYXRzIGRl c2NyaWJlIGEgRFJNIHBpeGVsIGZvcm1hdCArCj4gPiA+ID4gPiBtb2RpZmllci4KPiA+ID4gPiAK PiA+ID4gPiBEUk0gbW9kaWZpZXJzIGFyZSBtb3N0bHkgYWJvdXQgdGlsaW5nIGFuZCBjb21wcmVz c2lvbiwgYW5kIHdlIGhhcmRseQo+ID4gPiA+IHN1cHBvcnQgdGhlc2UgaW4gVjRMMi4gV2hhdCBh cmUgdGhlIG1vZGlmaWVycyB5b3UgdGhpbmsgYXJlIGhhcmRjb2RlZCBpbgo+ID4gPiA+IDRDQ3Mg aW4gVjRMMiA/Cj4gPiA+IAo+ID4gPiBIbSBtYXliZSBpdCB3YXMgYSBkcm0gb25lIHRoYXQgZGlk bid0IGNvbWUgZnJvbSB2NGwgb3IgYW55d2hlcmUgZWxzZQo+ID4gPiByZWFsbHksIGJ1dCB0aGUg TlYxMk1UIG9uZSBpcyBudjEyICsgc29tZSB0aWxpbmcuIEkgdGhpbmsgd2UgbWFuYWdlZCB0bwo+ ID4gPiB1YXBpLWJlbmQgdGhhdCBvbmUgaW50byBzaGFwZSBpbiBhdCBsZWFzdCBkcm0uCj4gPiAK PiA+IFRoZSBvbmUgSSBoYWQgaW4gbWluZCBpcyBWNEwyX1BJWF9GTVRfU1VOWElfVElMRURfTlYx MiB3aGljaCB0cmFuc2xhdGVzCj4gPiB0byBEUk1fRk9STUFUX05WMTIgKyBEUk1fRk9STUFUX01P RF9BTExXSU5ORVJfVElMRUQuIFNlZW1zIHRvIGJlIGEKPiA+IHByZXR0eSBzaW1pbGFyIGNhc2Ug dG8gdGhlIE1lZGlhdGVrIG9uZSBpbmRlZWQuCj4gPiAKPiA+IEluIG91ciBjYXVzZSwgdGhhdCdz IGJlY2F1c2UgdGhlIHZpZGVvIGRlY29kaW5nIGVuZ2luZSBwcm9kdWNlcyBpdHMKPiA+IGRlc3Rp bmF0aW9uIGJ1ZmZlcnMgaW4gYSBzcGVjaWZpYyB0aWxlZCBmb3JtYXQsIHRoYXQgdGhlIGRpc3Bs YXkgZW5naW5lCj4gPiBjYW4gdGFrZSBpbiBkaXJlY3RseS4KPiAKPiBXZSBhbHNvIGhhdmUgdGhl IFNhbXN1bmcgdGlsaW5nIChaIHBhdHRlcm4pIGFzIG1lbnRpb25lZCBoZXJlLCBidXQgYWxzbwo+ IGxpbmVhciAxNngxNiB0aWxlIHBsYWNlbWVudCAoYWxzbyBmcm9tIFNhbXN1bmcgPykgYW5kIEkg YmVsaWV2ZSBBbWxvZ2ljCj4gQ09ERUMgcGF0Y2hlcyBpcyBicmluZ2luZyBhbm90aGVyIHRpbGlu ZyAodW5hdm9pZGFibGUgb24gb2xkZXIgTWVzb244LAo+IHdpdGggNjRieXRlcyBzd2FwcykuIEFs bCB0aGVzZSBzaG91bGQgYmUgZXhwcmVzc2VkIGFzIE5WMTIgKyBtb2QgaW4gRFJNCj4gc3BhY2Uu Cj4gCj4gV2hhdCBpcyB2ZXJ5IG9mdGVuIG5vdCBlbmFibGVkLCBidXQgYWZmZWN0IHRoZSBwZXJm b3JtYW5jZSBvbiBtYWlubGluZQo+IG1lZGlhIGRyaXZlcnMgaXMgdGhlIEFSTSBmcmFtZSBidWZm ZXIgY29tcHJlc3Npb24uIEkga25vdyB0aGF0IFJLIGNoaXBzCj4gaGF2ZSBzdXBwb3J0IGZvciB0 aGlzLCBhbmQgdGhhdCB5b3UgY2FuJ3QgYWNoaWV2ZSB0aGUgbWF4aW11bQo+IHRocm91Z2hwdXQg d2l0aG91dCB0aGF0LiBUaGlzIG9uZSBpcyBub3QgZG9jdW1lbnRlZCBhbnl3aGVyZSwgYnV0IEkK PiB1bmRlcnN0YW5kIHRoYXQgdGhlcmUgaXMgbXVsdGlwbGUgdmFyaWFudHMgdGhhdCBIVyB2ZW5k b3IgbGljZW5jZS4KPiBUaG91Z2gsIGluIGdlbmVyYWwsIGVhY2ggU29DIGFyZSBsaWtlbHkgcnVu bmluZyBhIHNpbmdsZSB2YXJpYW50LCBzbyBhCj4gc2luZ2xlIG1vZCB3b3VsZCBtYWtlIHNlbnNl Lgo+IAo+IFNvIGFsbCB0aGlzIHRvIHNheSB0aGF0IFY0TDIgZXF1YWxseSBuZWVkcyBzdXBwb3J0 cyBmb3IgdGhlc2UuCgpZZXMsIEkgZGVmaW5pdGVseSBhZ3JlZSB3aXRoIHRoYXQuCgo+IFdoYXQg SSB1bmRlcnN0b29kIHRocm91Z2ggRFJNIEFQSSBpcyB0aGF0IGEgYnVmZmVyIGFsbG9jYXRlZCBm b3IgbGV0J3Mgc2F5Cj4gTlYxMiArIG1vZCwgaXMgY29tcGF0aWJsZSB3aXRoIGxpbmVhciBOVjEy LiBUaGF0IGNvdWxkIGJlIHVzZWQgdG8KPiBzaW1wbGlmeSBzb21lIGNvZGUsIGJ1dCBhdCB0aGUg c2FtZSB0aW1lLCBhIGNvbW1vbiBBUEkgdGhhdCBkZWFscyB3aXRoCj4gdGhlIHBhZGRpbmcgYW5k IGFsaWdubWVudCBvZiBlYWNoIGZvcm1hdCArIG1vZCBpbmRlcGVuZGVudGx5IHdvdWxkIGRvCj4g dGhhdCBzYW1lIGFzIGxvbmcgYXMgdGhpcyBpcyBub3QgdmFyaWFibGUgZGVwZW5kaW5nIG9uIHdo aWNoIHRhcmdldCBIVwo+IHVzZXMgdGhhdCBzYW1lIGZvcm1hdC4KPiAKPiBJIHRoaW5rIERSTSAr IG1vZCByZWR1Y2UgdGhlIGFtb3VudCBvZiBkZWRpY2F0ZWQgZm9ybWF0cyB0aGF0IG5lZWRzIHRv Cj4gYmUgYWRkZWQsIGFuZCBzaW1wbGlmeSB0aGUgZG9jdW1lbnRhdGlvbiBvZiBlYWNoIGZvcm1h dHMuIEkgd2FzIGxvb2tpbmcKPiBhdCB0aGUgQW1sb2dpYyBBeGkgY29uZmlndXJhdGlvbnMgb24g QW1sb2dpYyBTOTA1eCByZWNlbnRseSwgYW5kIGZvcgo+IGVhY2ggd2VsbCBrbm93biBmb3JtYXQs IHRoZXJlIGlzIGEgYml0bWFzayB0aGF0IGxldCB5b3UgZG8gYXJiaXRyYXJ5Cj4gc3dhcHBpbmcg b2YgYml0cywgc28gZWZmZWN0aXZlbHkgaWYgd2Ugc3RhcnQgZXhwb3NpbmcgYWxsIHRoZXNlIHdp dGgKPiBWNEwyIHN0eWxlLCB0aGUgbGlzdCB3b3VsZCBiZWNvbWUgdmVyeSBsb25nIGFuZCBoYXJk IHRvIG1haW50YWluZWQuCgpUaGUgbnVtYmVyIG9mIHBvc3NpYmxlIGNvbWJpbmF0aW9ucyBpcyBp bmRlZWQgbXVjaCB0b28gaGlnaCB0byBoYXZlCnRoZW0gZXhwb3NlZCBhcyBzaW5nbGUgVjRMMiBm b3JtYXRzLiBOb3QgdG8gbWVudGlvbiB0aGUgVkM0IHRpbGluZwptb2RpZmllcnMgd2hlcmUgdGhl IGNvbHVtbiBoZWlnaHQgaXMgcGFzc2VkIGFzIGFuIGFyZ3VtZW50IHRvIHRoZQptb2RpZmllciAo c28gdGhlcmUgaXMgYSBtb2RpZmllciBiYXNlIGFuZCBhIHZhcmlhYmxlIHBhcnQgdG8gaXQpLgoK U28gSSBkZWZpbml0ZWx5IGFncmVlIHRoYXQgaGF2aW5nIGEgd2F5IHRvIHJlcHJlc2VudCBtb2Rp ZmllcnMgaW4gVjRMMgp3b3VsZCBiZSBxdWl0ZSByZWxldmFudCBhbmQgdXNlZnVsLgoKQ2hlZXJz LAoKUGF1bAoKPiA+ID4gLURhbmllbAo+ID4gPiAKPiA+ID4gPiA+IEkgdGhpbmsgQm9yaXMgKEND ZWQpIGlzIHdvcmtpbmcgdG8gY2hhbmdlIHRoYXQgYnkgYWxsb3dpbmcgdG8KPiA+ID4gPiA+IHBh c3MgYSBEUk0gbW9kaWZpZXIgdGhyb3VnaCBWNEwyLiBXaXRoIHRoYXQsIHdlJ2QgYmUgaW4gYSBz aXR1YXRpb24KPiA+ID4gPiA+IHdoZXJlIHNvbWUgZm9ybWF0cyBhcmUgZGVzY3JpYmVkIGJ5IHRo ZSB2NGwyIHBpeGZtdCBhbG9uZSBhbmQgc29tZQo+ID4gPiA+ID4gZm9ybWF0cyBhcmUgYWxzbyBk ZXNjcmliZWQgYSBtb2RpZmllciAoYnV0IEkgbG9va2VkIGF0IGl0IGZyb20gYQo+ID4gPiA+ID4g ZGlzdGFuY2Ugc28gbWlnaHQgaGF2ZSBtaXN1bmRlcnN0b2QpLiBUaGF0IGZlZWxzIGJldHRlciBz aW5jZSBpdCBhdm9pZHMKPiA+ID4gPiA+IHRoZSBjb21iaW5hdG9yeSBleHBsb3Npb24gZnJvbSBk ZXNjcmliaW5nIGVhY2ggZm9ybWF0ICsgbW9kaWZpZXIKPiA+ID4gPiA+IGluZGl2aWR1YWxseS4K PiA+ID4gPiA+IAo+ID4gPiA+ID4gV2hhdCBkbyB5b3UgdGhpbms/Cj4gPiA+ID4gPiAKPiA+ID4g PiA+ID4gPiB2NGwgdGVuZHMgdG8gY29uZmxhdGUgcGl4ZWwgZm9ybWF0IHdpdGggc3R1ZmYgdGhh dCB3ZSB0ZW5kIHRvIGVuY29kZQo+ID4gPiA+ID4gPiA+IGluIG1vZGlmaWVycyBhIGxvdCBtb3Jl Lgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gQm9yaXMgaXMgd29ya2luZyBvbiBhZGRpbmcgdGhl IG1vZGlmaWVycyBjb25jZXB0IHRvIHY0bDIsIHNvIHdlJ3JlCj4gPiA+ID4gPiA+IGNvbnZlcmdp bmcgaGVyZSwgYW5kIHdlIGNhbiB0b3RhbGx5IGhhdmUgYSBsYXllciBpbiB2NGwyIHRvIGNvbnZl cnQKPiA+ID4gPiA+ID4gYmV0d2VlbiBvbGQgdjRsMiAiZm9ybWF0K21vZGlmaWVycyIgZm9ybWF0 cywgYW5kIERSTSBzdHlsZSBmb3JtYXRzLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiBUaGVy ZSdzIGEgYnVuY2ggb2YgcmVhc29ucyB3ZSBjYW4ndCBqdXN0IHVzZSB2NGwsIGFuZCB0aGV5J3Jl IGFzCj4gPiA+ID4gPiA+ID4gdmFsaWQgYXMgZXZlcjoKPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ ID4gPiAtIFdlIG92ZXJsYXAgYmFkbHkgaW4gc29tZSBhcmVhcywgc28gZXZlbiBpZiBmb3VyY2Mg Y29kZXMgbWF0Y2gsIHdlCj4gPiA+ID4gPiA+ID4gICBjYW4ndCB1c2UgdGhlbSBhbmQgbmVlZCBh IGR1cGxpY2F0ZWQgRFJNX0ZPVVJDQyBjb2RlLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gRG8g eW8gaGF2ZSBhbiBleGFtcGxlIG9mIG9uZSBvZiB0aG9zZSBhcmVhcz8KPiA+ID4gPiA+ID4gCj4g PiA+ID4gPiA+ID4gLSB2NGwgZW5jb2RlcyBzb21lIG1ldGFkYXRhIGludG8gdGhlIGZvdXJjYyB0 aGF0IHdlIGVuY29kZSBlbHNld2hlcmUsCj4gPiA+ID4gPiA+ID4gICBlLmcuIG9mZnNldCBmb3Ig cGxhbmFyIHl1diBmb3JtYXRzLCBvciB0aWxpbmcgbW9kZQo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ ID4gQXMgSSB3YXMgc2F5aW5nLCB0aGlzIGNoYW5nZXMgb24gdGhlIHY0bDIgc2lkZSwgYW5kIGNv bnZlcmdpbmcgdG8KPiA+ID4gPiA+ID4gd2hhdCBEUk0gaXMgZG9pbmcuCj4gPiA+ID4gPiA+IAo+ ID4gPiA+ID4gPiA+IC0gZHJtIGZvdXJjYyBjb2RlIGRvZXNuJ3QgYWN0dWFsbHkgZGVmaW5lIHRo ZSBkcm1fZm9ybWF0X2luZm8KPiA+ID4gPiA+ID4gPiAgIHVuaXF1ZWx5LCBkcml2ZXJzIGNhbiBv dmVycmlkZSB0aGF0ICh0aGF0J3MgYW4gZXhwbGljaXQgZGVzaWduCj4gPiA+ID4gPiA+ID4gICBp bnRlbnQgb2YgbW9kaWZpZXJzLCB0byBhbGxvdyBkcml2ZXJzIHRvIGFkZCBhbm90aGVyIHBsYW5l IGZvcgo+ID4gPiA+ID4gPiA+ICAgZS5nLiBjb21wcmVzc2lvbiBpbmZvcm1hdGlvbikuIFlvdSdk IG5lZWQgdG8gcHVsbCB0aGF0IGRyaXZlcgo+ID4gPiA+ID4gPiA+ICAga25vd2xlZGdlIGludG8g eW91ciBmb3JtYXQgbGlicmFyeS4KPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IEknbSBub3Qgc3Vy ZSBob3cgbXkgcGF0Y2hlcyBhcmUgY2hhbmdpbmcgYW55dGhpbmcgaGVyZS4gVGhpcyBpcwo+ID4g PiA+ID4gPiBsaXR0ZXJhbGx5IHRoZSBzYW1lIGNvZGUsIHdpdGggdGhlIGZ1bmN0aW9ucyByZW5h bWVkLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gSWYgZHJpdmVycyB3YW50IHRvIG92ZXJyaWRl IHRoYXQsIHRoZW4geWVhaCwgZmluZSwgd2UgY2FuIGxldCB0aGVtIGRvCj4gPiA+ID4gPiA+IHRo YXQuIEp1c3QgbGlrZSBhbnkgaGVscGVyIHRoaXMganVzdCBwcm92aWRlcyBhIGRlZmF1bHQgdGhh dCBjb3ZlcnMKPiA+ID4gPiA+ID4gbW9zdCBvZiB0aGUgY2FzZXMuCj4gPiA+ID4gPiA+IAo+ID4g PiA+ID4gPiA+IElvdyB0aGVyZSdzIG5vIHdheSB3ZSBjYW4gZWFzaWx5IGFkb3B0IHY0bCBmb3Vy Y2MsIGV4Y2VwdCBpZiB3ZSBkbwo+ID4gPiA+ID4gPiA+IHNvbWV0aGluZyBsaWtlIGEgbmV3IGFk ZGZiIGZsYWcuCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBGb3IgdGhlIGZvcm1hdHMgdGhhdCB3 b3VsZCBiZSBkZXNjcmliZWQgYXMgYSBtb2RpZmllciwgc3VyZS4gRm9yIGFsbAo+ID4gPiA+ID4g PiB0aGUgb3RoZXJzICh0aGF0IGFyZSBub3QgeWV0IHN1cHBvcnRlZCBieSBEUk0pLCB0aGVuIEkg ZG9uJ3QgcmVhbGx5Cj4gPiA+ID4gPiA+IHNlZSB3aHkgbm90Lgo+ID4gPiA+ID4gPiAKPiA+ID4g PiA+ID4gPiA+IEFuZCBnaXZlbiBob3cgdGhlIGN1cnJlbnQgc3RhdGUgaXMgYSBtZXNzIGluIHRo aXMgcmVnYXJkLCBJJ20gbm90IHRvbwo+ID4gPiA+ID4gPiA+ID4gb3B0aW1pc3RpYyBhYm91dCBr ZWVwaW5nIHRoZSBmb3JtYXRzIGluIHRoZWlyIHJlbGV2YW50IGZyYW1ld29ya3MuCj4gPiA+ID4g PiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+IEhhdmluZyBhIHNoYXJlZCBsaWJyYXJ5LCBnb3Zlcm5l ZCBieSBib3RoLCB3aWxsIG1ha2UgdGhpcyBmYXIgZWFzaWVyLAo+ID4gPiA+ID4gPiA+ID4gc2lu Y2UgaXQgd2lsbCBiZSBlYXN5IHRvIGRpc2NvdmVyIHRoZSBmb3JtYXRzIHRoYXQgYXJlIGFscmVh ZHkKPiA+ID4gPiA+ID4gPiA+IHN1cHBvcnRlZCBieSB0aGUgb3RoZXIgc3Vic3lzdGVtLgo+ID4g PiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+IEkgdGhpbmsgYSBjb21wYXQgbGlicmFyeSB0aGF0ICh0 cmllcyB0bywgYmVzdCBlZmZvcnQpIGNvbnZlcnQgYmV0d2Vlbgo+ID4gPiA+ID4gPiA+IHY0bCBh bmQgZHJtIGZvdXJjYyB3b3VsZCBtYWtlIHNlbnNlLiBTb21ld2hlcmUgaW4gZHJpdmVycy92aWRl bywgbmV4dAo+ID4gPiA+ID4gPiA+IHRvIHRoZSBjb252ZXJzaW9uIGZ1bmN0aW9ucyBmb3Igdmlk ZW9tb2RlIDwtPiBkcm1fZGlzcGxheV9tb2RlCj4gPiA+ID4gPiA+ID4gcGVyaGFwcy4gVGhhdCBz aG91bGQgYmUgdXNlZnVsIGZvciBkcml2ZXJzLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gVGhh dCdzIG5vdCByZWFsbHkgd2hhdCB0aGlzIHNlcmllcyBpcyBhYm91dCB0aG91Z2guIFRoYXQgc2Vy aWVzIGlzCj4gPiA+ID4gPiA+IGFib3V0IHNoYXJpbmcgdGhlIChpbWFnZXxwaXhlbHMpIGZvcm1h dHMgZGF0YWJhc2UgYWNyb3NzIGV2ZXJ5b25lIHNvCj4gPiA+ID4gPiA+IHRoYXQgZXZlcnlvbmUg Y2FuIGJlbmVmaXQgZnJvbSBpdC4KPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gVW5pZnlpbmcg dGhlIGZvcm1hdHMgdGhlbXNlbHZlcywgYW5kIGFsbCB0aGUgYXNzb2NpYXRlZCBtZXRhZGF0YSBp cwo+ID4gPiA+ID4gPiA+IGltbyBhIG5vLWdvLCBhbmQgd2FzIGEgcHJldHR5IGNvbnNjaW91cyBk ZWNpc2lvbiB3aGVuIHdlIGltcGxlbWVudGVkCj4gPiA+ID4gPiA+ID4gZHJtX2ZvdXJjYyBhIGZl dyB5ZWFycyBiYWNrLgo+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gSWYgd2Ugd2FudCB0 byBrZWVwIHRoZSBjdXJyZW50IGxpYnJhcnkgaW4gRFJNLCB3ZSBoYXZlIHR3byBvcHRpb25zCj4g PiA+ID4gPiA+ID4gPiB0aGVuOgo+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiAgIC0g U3VwcG9ydCBhbGwgdGhlIHY0bDIgZm9ybWF0cyBpbiB0aGUgRFJNIGxpYnJhcnksIHdoaWNoIGlz Cj4gPiA+ID4gPiA+ID4gPiAgICAgZXNzZW50aWFsbHkgd2hhdCBJJ20gZG9pbmcgaW4gdGhlIGxh c3QgcGF0Y2hlcy4gSG93ZXZlciwgdGhhdAo+ID4gPiA+ID4gPiA+ID4gICAgIHdvdWxkIHJlcXVp cmUgdG8gaGF2ZSB0aGUgdjRsMiBkZXZlbG9wcGVycyBhbHNvIHJldmlld2luZyBzdHVmZgo+ID4g PiA+ID4gPiA+ID4gICAgIHRoZXJlLiBBbmQgZ2l2ZW4gaG93IGJ1c3kgdGhleSBhcmUsIEkgY2Fu bm90IHJlYWxseSBzZWUgaG93IHRoYXQKPiA+ID4gPiA+ID4gPiA+ICAgICB3b3VsZCB3b3JrLgo+ ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+IFdlbGwsIGlmIHdlIGVuZCB1cCB3aXRoIGEgY29t bW9uIGxpYnJhcnkgdGhlbiB5ZXMgd2UgbmVlZCBjcm9zcwo+ID4gPiA+ID4gPiA+IHJldmlldy4g VGhlcmUncyBubyB3YXkgYXJvdW5kIHRoYXQuIERvZXNuJ3QgbWF0dGVyIHdoZXJlIGV4YWN0bHkg dGhhdAo+ID4gPiA+ID4gPiA+IGxpYnJhcnkgaXMgaW4gdGhlIGZpbGVzeXN0ZW0gdHJlZSwgYW5k IGFkZGluZyBhIHNwZWNpYWwgTUFJTlRBSU5FUlMKPiA+ID4gPiA+ID4gPiBlbnRyeSBmb3IgYW55 dGhpbmcgcmVsYXRlZCB0byBmb3VyY2MgKGJvdGggZHJtIGFuZCB2NGwpIHRvIG1ha2Ugc3VyZQo+ ID4gPiA+ID4gPiA+IHRoZXkgZ2V0IGNyb3NzLXBvc3RlZCBpcyBlYXN5LiBObyBmaWxlIHJlbmFt aW5nIG5lZWRlZC4KPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IFRoYXQgd291bGQgY3JlYXRlIHNv bWUgZ292ZXJuaW5nIGlzc3VlcyBhcyB3ZWxsLiBGb3IgZXhhbXBsZSwgaWYgeW91Cj4gPiA+ID4g PiA+IGV2ZXIgaGF2ZSBhIHBhdGNoIGZyb20gb25lIGZvdXJjYyBhZGRpdGlvbiAodGhhdCBtaWdo dCBvciBtaWdodCBub3QgYmUKPiA+ID4gPiA+ID4gY292ZXJlZCBieSB2NGwyKSwgd2lsbCB5b3Ug d2FpdCBmb3IgYW55IHY0bDIgZGV2ZWxvcHBlciB0byByZXZpZXcgaXQ/Cj4gPiA+ID4gPiA+IAo+ ID4gPiA+ID4gPiBJZiBpdCdzIHNoYXJlZCBjb2RlLCB0aGVuIGl0IHNob3VsZCBiZSBzaGFyZWQs IGFuZCBldmVyeSBjbGllbnQKPiA+ID4gPiA+ID4gZnJhbWV3b3JrIHB1dCBvbiBhbiBlcXVhbCBm b290aW5nLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+ICAgLSBEZXZlbG9wIHRoZSBzYW1l IGxpYnJhcnkgZnJvbSB3aXRoaW4gdjRsMi4gVGhhdCBpcyByZWFsbHkgYSBwb29yCj4gPiA+ID4g PiA+ID4gPiAgICAgc29sdXRpb24sIHNpbmNlIHRoZSBpbmZvcm1hdGlvbiB3b3VsZCBiZSBncmVh dGx5IGR1cGxpY2F0ZWQKPiA+ID4gPiA+ID4gPiA+ICAgICBiZXR3ZWVuIHRoZSB0d28sIGFuZCBp biB0ZXJtcyBvZiBtYWludGFpbmFuY2UsIGNvZGUsIGFuZCBiaW5hcnkKPiA+ID4gPiA+ID4gPiA+ ICAgICBzaXplIHRoYXQgd291bGQgYmUgZHVwbGljYXRlZCB0b28uCj4gPiA+ID4gPiA+ID4gCj4g PiA+ID4gPiA+ID4gSXQncyBlc3NlbnRpYWxseSB3aGF0IHdlIGRlY2lkZWQgdG8gZG8gZm9yIGRy bSB5ZWFycyBiYWNrLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gQW5kIGl0IHdhcyBwcm9iYWJs eSB0aGUgcmlnaHQgc29sdXRpb24gYmFjayB0aGVuLCBidXQgSSdtIHJlYWxseSBub3QKPiA+ID4g PiA+ID4gY29udmluY2VkIGl0J3Mgc3RpbGwgdGhlIHJpZ2h0IHRoaW5nIHRvIGRvIHRvZGF5Lgo+ ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+IEhhdmluZyBpdCBzaGFyZWQgYWxsb3dzIHRvIGVh c2lseSBzaGFyZSwgYW5kIGRpc2NvdmVyIGZvcm1hdHMgZnJvbSB0aGUKPiA+ID4gPiA+ID4gPiA+ IG90aGVyIHN1YnN5c3RlbSwgYW5kIHRvIGhhdmUgYSBzaW5nbGUsIHVuaXF1ZSBwbGFjZSB3aGVy ZSB0aGlzIGlzCj4gPiA+ID4gPiA+ID4gPiBjZW50cmFsaXplZC4KPiA+ID4gPiA+ID4gPiAKPiA+ ID4gPiA+ID4gPiBXaGF0IEkgdGhpbmsgY291bGQgd29yayBhcyBtaWRkbGUgZ3JvdW5kOgo+ID4g PiA+ID4gPiA+IC0gUHV0IGRybV9mb3JtYXQgc3R1ZmYgaW50byBhIHNlcGFyYXRlIC5rbwo+ID4g PiA+ID4gPiA+IC0gQWRkIGEgTUFJTlRBSU5FUlMgZW50cnkgdG8gbWFrZSBzdXJlIGFsbCB0aGlu Z3MgZm91cmNjIGFyZSBjcm9zcwo+ID4gPiA+ID4gPiA+IHBvc3RlZCB0byBib3RoIGRybSBhbmQg djRsIGxpc3RzLiBFYXN5IG9uIHRoZSBkcm0gc2lkZSwgc2luY2UgaXQncyBhbGwKPiA+ID4gPiA+ ID4gPiBzZXBhcmF0ZSBmaWxlcy4gTm90IHN1cmUgaXQncyBzbyBjb252ZW5pZW50IGZvciB2NGwg dWFwaS4KPiA+ID4gPiA+ID4gPiAtIEFkZCBhIGNvbnZlcnNpb24gbGlicmFyeSB0aGF0IHRyaWVz IHRvIGJlc3QtZWZmb3J0IG1hcCBiZXR3ZWVuIGRybQo+ID4gPiA+ID4gPiA+IGFuZCB2NGwgZm9y bWF0cy4gT24gdGhlIGRybSBzaWRlIHRoYXQgbW9zdCBsaWtlbHkgbWVhbnMgeW91IG5lZWQKPiA+ ID4gPiA+ID4gPiBvZmZzZXRzIGZvciBwbGFuZXMsIGFuZCBtb2RpZmllcnMgdG9vIChzaW5jZSB0 aG9zZSBhcmUgaW1wbGllZCBpbiBzb21lCj4gPiA+ID4gPiA+ID4gdjRsIGZvdXJjYykuIEVtcGhh c2lzIG9uICJiZXN0IGVmZm9ydCIgaS5lLiBvbmx5IHN1cHBvcnQgYXMgbXVjaCBhcwo+ID4gPiA+ ID4gPiA+IHRoZSBkcml2ZXJzIHRoYXQgdXNlIHRoaXMgbGlicmFyeSBuZWVkLgo+ID4gPiA+ID4g PiA+IC0gQWRkIGRybV9mb3VyY2MgYXMtbmVlZGVkIGJ5IHRoZXNlIGRyaXZlcnMgdGhhdCB3YW50 IHRvIHVzZSBhIHVuaWZpZWQKPiA+ID4gPiA+ID4gPiBmb3JtYXQgc3BhY2UuCj4gPiA+ID4gPiA+ ID4gCj4gPiA+ID4gPiA+ID4gRm9yY2luZyB0aGlzIHVuaWZpY2F0aW9uIG9uIGV2ZXJ5b25lIG90 b2ggaXMgaW1vIHdheSB0b28gbXVjaC4KPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IHY0bDIgaXMg c3RhcnRpbmcgdG8gY29udmVyZ2Ugd2l0aCBEUk0sIGFuZCB3ZSdyZSB1c2luZyB0aGUgRFJNIEFQ SQo+ID4gPiA+ID4gPiBwcmV0dHkgbXVjaCB1bnRvdWNoZWQgZm9yIHRoYXQgbGlicmFyeSwgc28g SSdtIG5vdCByZWFsbHkgc3VyZSBob3cKPiA+ID4gPiA+ID4gYW55b25lIGlzIGh1cnQgYnkgdGhh dCB1bmlmaWNhdGlvbi4KPiA+ID4gPiAKPiA+ID4gPiAtLSAKPiA+ID4gPiBSZWdhcmRzLAo+ID4g PiA+IAo+ID4gPiA+IExhdXJlbnQgUGluY2hhcnQKLS0gClBhdWwgS29jaWFsa293c2tpLCBCb290 bGluCkVtYmVkZGVkIExpbnV4IGFuZCBrZXJuZWwgZW5naW5lZXJpbmcKaHR0cHM6Ly9ib290bGlu LmNvbQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJp LWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs