From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas Stach Subject: Re: [PATCH RFC 003/111] staging: etnaviv: add drm driver Date: Tue, 07 Apr 2015 14:52:31 +0200 Message-ID: <1428411151.2811.78.camel@pengutronix.de> References: <1427988653-754-1-git-send-email-l.stach@pengutronix.de> <1427988653-754-4-git-send-email-l.stach@pengutronix.de> <1428392117.2811.12.camel@pengutronix.de> <1428398410.2811.46.camel@pengutronix.de> <20150407104602.GF12732@n2100.arm.linux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [92.198.50.35]) by gabe.freedesktop.org (Postfix) with ESMTP id 0B4876E2C2 for ; Tue, 7 Apr 2015 05:52:36 -0700 (PDT) In-Reply-To: <20150407104602.GF12732@n2100.arm.linux.org.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Russell King - ARM Linux Cc: DRI mailing list , Sascha Hauer List-Id: dri-devel@lists.freedesktop.org QW0gRGllbnN0YWcsIGRlbiAwNy4wNC4yMDE1LCAxMTo0NiArMDEwMCBzY2hyaWViIFJ1c3NlbGwg S2luZyAtIEFSTQpMaW51eDoKPiBPbiBUdWUsIEFwciAwNywgMjAxNSBhdCAxMToyMDoxMEFNICsw MjAwLCBMdWNhcyBTdGFjaCB3cm90ZToKPiA+IEFtIERpZW5zdGFnLCBkZW4gMDcuMDQuMjAxNSwg MTE6MDQgKzAyMDAgc2NocmllYiBDaHJpc3RpYW4gR21laW5lcjoKPiA+ID4gV2hhdCByb2xlIGRv ZXMgR1BVIHBvd2VyIG1hbmFnZW1lbnQgcGxheXMgaGVyZT8gRm9yIHRoZSBjb250ZXh0IHN3aXRj aGluZwo+ID4gPiBpdCBjb3VsZCBtYWtlIHNlbnNlLiBCdXQgZm9yIHRoZSAyZCBjb3JlIHRoZSBj b250ZXh0IGlzIHNvIHNtYWxsIHRoYXQKPiA+ID4gaXQgZG9lcyBub3QKPiA+ID4gaHVydCB0byBz ZW5kIGl0IHdpdGggZXZlcnkgY29tbWFuZCBzdHJlYW0uIEZvciB0aGUgM2QgY29yZSBpdCBpcyBt dWNoCj4gPiA+IGJpZ2dlciwgYnV0Cj4gPiA+IHRoaXMgY291bGQgYmUgZG9uZSBjb21wbGV0ZWx5 IGluIHRoZSBrZXJuZWwuIE9yIEkgYW0gd3JvbmcgaGVyZT8KPiA+Cj4gPiBJZiB5b3UgcG93ZXIg ZG93biB0aGUgR1BVIHlvdSBsb29zZSB0aGUgY29udGV4dC4gWW91IGFyZSByaWdodCB0aGF0IHdl Cj4gPiBjb3VsZCBzYXZlL3Jlc3RvcmUgdGhlIGNvbnRleHQgZnJvbSBrZXJuZWwgc3BhY2UsIGJ1 dCB0aGF0IGlzIHJlYWxseQo+ID4gdGFraW5nIGEgdG9sbCBvbiBDUFUgdGltZS4gSXQgaXMgbXVj aCBiZXR0ZXIgdG8gaGF2ZSB1c2Vyc3BhY2UgcHJvdmlkZSBhCj4gPiBjb250ZXh0IGJ1ZmZlciB0 byBnZXQgdGhlIEdQVSBpbiB0aGUgZXhwZWN0ZWQgc3RhdGUsIGFzIHlvdSB0aGVuIG9ubHkKPiA+ IG5lZWQgdG8gc3BsaWNlIHRoaXMgaW50byB0aGUgZXhlY3V0aW9uIHN0cmVhbSB0byByZXN0b3Jl IHRoZSBjb250ZXh0Cj4gPiBpbnN0ZWFkIG9mIHB1c2hpbmcgaXQgd2l0aCB0aGUgQ1BVLiBSZWFk aW5nIGJhY2sgdGhlIGNvbnRleHQgb24gZXZlcnkKPiA+IHN3aXRjaCB3aWxsIGtpbGwgYW55IHBl cmZvcm1hbmNlLgo+IAo+IEZvciBib3RoIFZpdmFudGUgYW5kIEV0bmF2aXYsIGl0J3MgYWxyZWFk eSB0aGUgYWNjZXB0ZWQgd2F5IHRoYXQgMkQKPiBjb3JlcyBuZWVkIHRoZSBmdWxsIGNvbnRleHQg bG9hZGVkIGZvciBlYWNoIG9wZXJhdGlvbiwgYW5kIHRoZSBmZXcKPiB1c2Vyc3BhY2UgYml0cyB3 ZSBoYXZlIGNvbXBseSB3aXRoIHRoYXQgdG9kYXkuCj4gCj4gV2l0aCBFdG5hdml2IERSTSwgd2Ug YWxyZWFkeSBtdXN0IGVuc3VyZSB0aGF0IHRoZSBjb21tYW5kIGJ1ZmZlcgo+IHN1Ym1pdHRlZCB0 byB0aGUgR1BVIGNvbnRhaW5zIGFsbCByZWZlcmVuY2VzIHRvIGJ1ZmZlciBvYmplY3RzIHRvIGJl Cj4gb3BlcmF0ZWQgb24gYnkgdGhhdCBjb21tYW5kIGJsb2NrIC0gb3IgdG8gcHV0IGl0IGFub3Ro ZXIgd2F5LCB3ZQo+IG5lZWQgdG8gZW5zdXJlIHRoYXQgZWFjaCBHUFUgb3BlcmF0aW9uIGlzIGNv bXBsZXRlIGluc2lkZSB0aGUgY29tbWFuZAo+IHN1Ym1pdHRlZCBidWZmZXIuCj4gClJpZ2h0IHRo YXQncyBvbmUgdGhpbmcgdGhhdCBJIHJlYWxseSBoYWRuJ3QgdGhvdWdodCB0aHJvdWdoIHVudGls IG5vdy4KU28gdGhpcyBtZWFucyB3ZSBtdXN0IGF0IGxlYXN0IGVtaXQgYWxsIHN0YXRlcyB0aGF0 IGNvbnRhaW4gcmVsb2NzLAp3aGljaCBtYXkgZnVydGhlciByZWR1Y2UgdGhlIHBvc3NpYmlsaXR5 IHRvIGRvIG1pbmltYWwgc3RhdGUgdXBkYXRlcy4KVXJnaHMuCgo+IFRoZSAyRCBjb3JlIGlzIHJh dGhlciBtZXNzeSBhcyBmYXIgYXMgd2hpY2ggYml0cyBvZiBzdGF0ZSBuZWVkIHRvIGJlCj4gcHJl c2VydmVkLCBlc3BlY2lhbGx5IHdoZW4geW91IGNvbnNpZGVyIHRoYXQgeW91IGhhdmUgdGhlIDJE IGRyYXdpbmcKPiBhbmQgYmxpdCBvcHMsIGFzIHdlbGwgYXMgYSB2aWRlbyByYXN0ZXJpc2VyIHdo aWNoIHNoYXJlcyBzb21lIHN0YXRlCj4gcmVnaXN0ZXJzIGZvciB0aGUgZGVzdGluYXRpb24sIGJ1 dCB1c2VzIGRpZmZlcmVudCBzdGF0ZSByZWdpc3RlcnMgZm9yCj4gdGhlIHNvdXJjZS4gIEl0IHF1 aWNrbHkgYmVjb21lcyByYXRoZXIgbWVzc3kgdG8ga2VlcCB0cmFjayBvZiB0aGUKPiBHUFUgc3Rh dGUuCj4gCj4gSW4gYW55IGNhc2UsIHRoZSBhbW91bnQgb2Ygc3RhdGUgd2hpY2ggbmVlZHMgdG8g YmUgbG9hZGVkIGZvciAyRAo+IG9wZXJhdGlvbnMgaXMgc21hbGwsIHNvIEkgdGhpbmsgaXQgcmVh bGx5IG1ha2VzIHNlbnNlIHRvIHJlcXVpcmUKPiB1c2Vyc3BhY2UgdG8gb25seSBzdWJtaXQgY29t cGxldGUsIGZ1bGx5IGRlc2NyaWJlZCAyRCBvcGVyYXRpb25zCj4gd2l0aGluIGEgc2luZ2xlIGNv bW1hbmQgYnVmZmVyLgo+IAo+ID4gPiBJIHRlbmQgdG8gZ2V0IHRoaW5ncyB1cCBhbmQgcnVubmlu ZyBhbmQgZG8gdGhlIG9wdGltaXphdGlvbiBzdGVwIGlmIGl0Cj4gPiA+IGlzIHJlYWxseSB3b3J0 aC4KPiA+ID4gQWxzbyBJIGxpa2Ugc3R1ZmYgdG8gYmUgc3R1cGlkIHNpbXBsZS4gVGhlcmUgaXMg YW4gb3RoZXIgaW50ZXJlc3RpbmcKPiA+ID4gZmFjdDogZmx1c2hpbmcgdGhlCj4gPiA+IGlvbW11 djIgaXMgZG9uZSB2aWEgY29tbWFuZCBzdHJlYW0gYW5kIHdlIG5lZWQgdG8gcmVzZXJ2ZSBtb3Jl IHNwYWNlCj4gPiA+IGZvciB0aGUgdGFpbCBvZiB0aGUgdXNlZCBiby4gU28gaWYgd2UgcmVzZXJ2 ZSBzb21lIHNwYWNlIGluIHRoZQo+ID4gPiBjb21tYW5kIGJ1ZmZlciwgd2UgaGF2ZSBvdGhlciBz cGFjZSBsaW1pdHMgZm9yIHRoZSB0YWlsIGRlcGVuZGluZyBvbgo+ID4gPiB1c2VkIGhhcmR3YXJl Lgo+IAo+IEkgd291bGQgbXVjaCByYXRoZXIgd2Ugb25seSBhcHBlbmRlZCBMSU5LIGNvbW1hbmRz IHRvIHRoZSBzdWJtaXR0ZWQKPiBjb21tYW5kIEJPLCBhbmQgYWRkZWQgd2hhdGV2ZXIgR1BVIG1h bmFnZW1lbnQgY29tbWFuZHMgdG8gZWl0aGVyIHRoZQo+IHJpbmcgYnVmZmVyICh3aGljaCBpcyBl YXN5KSBvciBhIHNlcGFyYXRlIEdQVSBtYW5hZ2VtZW50IGNvbW1hbmQKPiBidWZmZXIuICBHaXZl biB0aGF0IEknbSBhbHJlYWR5IGRvaW5nIHRoaXMgdG8gZmx1c2ggdGhlIFYxIE1NVSBpbgo+IHRo ZSBrZXJuZWwgcmluZyBidWZmZXIsIHRoaXMgaXMgdGhlIG9wdGlvbiBJIHByZWZlci4KPiAKPiA+ IFlvdSBtYXkgYmUgYXdhcmUgdGhhdCBvbmNlIHRoaXMgaXMgdXBzdHJlYW0gdGhlcmUgaXMgbm8g ZWFzeSB3YXkgdG8KPiA+IGNoYW5nZSB0aGUgdXNlcnNwYWNlIGludGVyZmFjZSBhbnltb3JlLiBT byB3aGF0ZXZlciBpcyBsZWZ0IG91dCBub3cgaXMKPiA+IGxpa2VseSB0byBiZSB2ZXJ5IGhhcmQg dG8gcmVpbnRyb2R1Y2UgbGF0ZXIuCj4gCj4gSW5kZWVkIC0gd2UgbmVlZCB0byBhZ3JlZSB3aGF0 IHRoZSBzdWJtaXRlZCBjb21tYW5kIGJ1ZmZlciB3aWxsIGNvbnRhaW4sCj4gYW5kIGhvdyBtdWNo IHNwYWNlIHRvIGVuZm9yY2UgYXQgdGhlIGVuZCBvZiB0aGUgY29tbWFuZCBidWZmZXIuCj4gCj4g VGhlIG1pbmltdW0gc3BhY2UgaXMgb25lIExJTksgY29tbWFuZCwgd2hpY2ggaXMgOCBieXRlcy4g IEFzIGxvbmcgYXMgd2UKPiBjYW4gYWRkIGEgTElOSyBjb21tYW5kLCB3ZSBjYW4gcmVkaXJlY3Qg dGhlIEdQVSdzIGV4ZWN1dGlvbiBlbHNld2hlcmUgdG8KPiBkbyB3aGF0ZXZlciBvdGhlciBvcGVy YXRpb25zIHdlIHdhbnQgdG8gZG8uCj4gCj4gSSB0aGluayB0aGUgb25seSBkYW5nZXIgdGhlcmUg aXMgaWYgVml2YW50ZSBwcm9kdWNlIGEgR1BVIHdpdGggNjQtYml0Cj4gYWRkcmVzc2luZyBmb3Ig dGhlIGNvbW1hbmQgc3RyZWFtIC0gaWYgdGhleSBkbywgY29tbWFuZHMgbGlrZSBMSU5LIHdpbGwK PiBtb3N0IGxpa2VseSBjaGFuZ2UgZm9ybWF0LCBhbmQgcG9zc2libHkgd291bGQgYmUgYSBkaWZm ZXJlbnQgbnVtYmVyIG9mCj4gYml0cy4KPiAKPiBUaGUgc2ltcGxlIHNvbHV0aW9uIHRvIHRoaXMg d291bGQgYmUgdG8gaW50cm9kdWNlIGludG8gdGhlIEFQSSBhCj4gcHJvcGVydHkgKGxpa2UgaXMg ZG9uZSBmb3IgdGhlIGZlYXR1cmUgYml0cykgd2hpY2ggdGVsbHMgdXNlcnNwYWNlIHRoZQo+IG1p bmltdW0gbnVtYmVyIG9mIGJ5dGVzIHdoaWNoIG11c3QgYmUgcmVzZXJ2ZWQgYXQgdGhlIGVuZCBv ZiB0aGUgY29tbWFuZAo+IGJ1ZmZlci4gIElmIHdlIG5lZWQgdG8gY2hhbmdlIHRoYXQgaW4gdGhl IGZ1dHVyZSwgd2UgaGF2ZSB0aGUgZmxleGliaWxpdHkKPiB0byBkbyBzby4KPiAKClllcywgdGhh dCBzZWVtcyB0byBiZSB0aGUgc3RyYWlnaHQgZm9yd2FyZCBzb2x1dGlvbi4gRXhwb3J0IGEgcHJv cGVydHkKZnJvbSB0aGUga2VybmVsIHRvIHNpZ25hbCB0aGUgdXNlcnNwYWNlIGhvdyBtdWNoIGZy ZWUgc3BhY2UgaXMgbmVlZGVkIGF0CnRoZSBlbmQgb2YgdGhlIGJ1ZmZlciBhbmQgcmVqZWN0IGFu eSBidWZmZXIgdmlvbGF0aW5nIHRoaXMuCgpUaG91Z2ggSSBhZ3JlZSB0aGF0IHdlIHNob3VsZCBu b3Qgb3ZlcnVzZSB0aGlzIGFuZCB0cnkgdG8gZG8gYXMgbXVjaCBhcwpwb3NzaWJsZSBvdXRzaWRl IG9mIHRoZSB1c2VyIGNvbW1hbmQgc3RyZWFtcy4KCj4gPiBXaGF0JyB0aGUgcHJvYmxlbSB3aXRo IGhhdmluZyBhIGNvbW1hbmQgYnVmZmVyIGluIHRoZSBrZXJuZWwgdG8gZmx1c2gKPiA+IHRoZSBN TVV2Mj8gV2h5IGRvIHlvdSBuZWVkIHRvIGluc2VydCB0aG9zZSBjb21tYW5kcyBpbnRvIHRoZSB1 c2Vyc3BhY2UKPiA+IGNvbW1hbmQgc3RyZWFtPwo+IAo+IFRoYXQncyBjZXJ0YWlubHkgd2hlcmUg SSB3b3VsZCBwdXQgaXQuCj4gCj4gPiA+ID4+ID4gKyNkZWZpbmUgRVROQV9TVUJNSVRfQk9fUkVB RCAgICAgICAgICAgICAweDAwMDEKPiA+ID4gPj4gPiArI2RlZmluZSBFVE5BX1NVQk1JVF9CT19X UklURSAgICAgICAgICAgIDB4MDAwMgo+ID4gPiA+PiA+ICtzdHJ1Y3QgZHJtX2V0bmF2aXZfZ2Vt X3N1Ym1pdF9ibyB7Cj4gPiA+ID4+ID4gKyAgICAgICB1aW50MzJfdCBmbGFnczsgICAgICAgICAg LyogaW4sIG1hc2sgb2YgRVROQV9TVUJNSVRfQk9feCAqLwo+ID4gPiA+PiA+ICsgICAgICAgdWlu dDMyX3QgaGFuZGxlOyAgICAgICAgIC8qIGluLCBHRU0gaGFuZGxlICovCj4gPiA+ID4+ID4gKyAg ICAgICB1aW50NjRfdCBwcmVzdW1lZDsgICAgICAgLyogaW4vb3V0LCBwcmVzdW1lZCBidWZmZXIg YWRkcmVzcyAqLwo+ID4gPiA+Pgo+ID4gPiA+PiBwcmVzdW1lZCBzdXBwb3J0IHNob3VsZCBuZXZl ciBoaXQgZXRuYXZpdiBkcml2ZXIuCj4gPiA+ID4+Cj4gPiA+ID4gQXMgc3RhdGVkIGluIHRoZSBj b3ZlciBsZXR0ZXIgSSB0aGluayBwcmVzdW1lZCBzdXBwb3J0IHdpbGwgYmVjb21lCj4gPiA+ID4g cG9zc2libGUgd2l0aCBNTVV2MiBhbmQgbWF5IHByb3ZpZGUgYSBnb29kIG9wdGltaXphdGlvbiB0 aGVyZS4gU28gSQo+ID4gPiA+IHdvdWxkIHJhdGhlciBsZWF2ZSB0aGlzIGluIGhlcmUgYW5kIGp1 c3QgaWdub3JlIGl0IGZvciBub3cuCj4gCj4gQ291bGQgd2UgcmVuYW1lIHRoaXMgbWVtYmVyICdy ZXNlcnZlZCcgaWYgaXQncyBzb21ldGhpbmcgdGhhdCB3ZSB0aGluawo+IHdlJ3JlIGdvaW5nIHRv IGltcGxlbWVudCBpbiB0aGUgbmVhciBmdXR1cmUgLSBidXQgYWxzbyBwbGVhc2UgYWRkIGEKPiBm bGFnIHdoaWNoIGluZGljYXRlcyB3aGV0aGVyIHRoZSBwcmVzdW1lZCBhZGRyZXNzIGlzIHByZXNl bnQgb3Igbm90Lgo+IFplcm8gX2Nhbl8gYmUgYSB2YWxpZCBhZGRyZXNzIHRvbyEKPiAKPiA+IEEg cHJlc3VtZWQgYWRkcmVzcyBjYW4gbm90IGJlIGEgcGh5c2ljYWwgYWRkcmVzcywgYnV0IGlzIGFu IGFkZHJlc3MgaW4KPiA+IHRoZSBWTSBjb250ZXh0IG9mIHRoYXQgcHJvY2Vzcy4gTm91dmVhdSB1 c2VzIHRoZSBzYW1lIHRoaW5nIG9uIE5WNTArCj4gPiB3aGVyZSB5b3UgaGF2ZSBhIHByb3BlciBN TVUgdG8gcHJvdGVjdCBhbGwgR1BVIGFjY2Vzc2VzLiBJIHdvdWxkIGV4cGVjdAo+ID4gdGhlIHNh bWUgdGhpbmcgdG8gYmUgdHJ1ZSBmb3IgVml2YW50ZSBNTVV2Mi4KPiAKPiBJIGtub3cgdGhhdCB0 aGVyZSBhcmUgdmVyeSBzdHJvbmcgb3BpbmlvbnMgYWJvdXQgZXhwb3NpbmcgX3BoeXNpY2FsXwo+ IGFkZHJlc3NlcyB0byB1c2Vyc3BhY2UgKERhdmlkLCBmb3IgZXhhbXBsZSwgZG9lc24ndCBsaWtl IGl0IG9uZSBiaXQuKQo+IElmIGl0J3MgYSBHUFUgYWRkcmVzcywgdGhlbiB0aGF0J3MgbGVzcyB1 c2VmdWwgdG8gdXNlcnNwYWNlLgo+IApBIEdQVSBhZGRyZXNzIHdpdGggcGVyLXByb2Nlc3MgcGFn ZXRhYmxlcyBhbmQgZnVsbCB0cmFuc2xhdGlvbiBzdXBwb3J0Cm9uIHRoZSBHUFUgTU1VIGlzIGFz IGdvb2QgYXMgYSBDUFUgdmlydHVhbCBhZGRyZXNzLiBJIHdvdWxkbid0IGV4cGVjdAphbnkgb2Jq ZWN0aW9ucyBhZ2FpbnN0IHRob3NlLiBNTVV2MSBpcyBtb3JlIGxpa2UgYSBHQVJUIHdpbmRvdyBh bmQKZG9lc24ndCBwcm92aWRlIGZ1bGwgdHJhbnNsYXRpb24sIHNvIHdlIHNob3VsZG4ndCB0cnVz dCB1c2Vyc3BhY2Ugd2l0aApNTVV2MS4KCj4gSG93ZXZlciwgdGhhdCBkYXRhIGhhcyB0byBiZSB0 cmVhdGVkIGFzIHN1c3BlY3QgY29taW5nIGZyb20gdXNlcnNwYWNlLgo+IAo+IFlvdSBzdGlsbCBu ZWVkIHRvIGxvb2sgdXAgdGhlIGJ1ZmZlciBvYmplY3QgaW4gdGhlIGtlcm5lbCwgc28gdGhhdCB5 b3UKPiBjYW4gbWFuYWdlIHRoZSBidWZmZXIgb2JqZWN0J3Mgc3RhdGUuICBJZiB5b3UgaGF2ZSB0 aGUgYnVmZmVyIG9iamVjdCdzCj4gc3RhdGUsIHRoZW4geW91IG1vc3QgbGlrZWx5IGhhdmUgZWFz eSBhY2Nlc3MgdG8gaXRzIEdQVSBtYXBwaW5nLCB3aGljaAo+IG1lYW5zIHlvdSBjYW4gcmV0cmll dmUgdGhlIEdQVSBhZGRyZXNzLCB3aGljaCB5b3UgY2FuIHRoZW4gdXNlIHRvCj4gdmFsaWRhdGUg dGhlIGFkZHJlc3MgcGFzc2VkIGZyb20gdXNlcnNwYWNlLi4uIGJ1dCBpZiB5b3UndmUgZm91bmQg dGhlCj4gR1BVIGFkZHJlc3MgdmlhIHRoaXMgbWV0aG9kLCB5b3UgaGF2ZW4ndCBzYXZlZCBhbnl0 aGluZy4KPiAKPiBBbiBhbHRlcm5hdGl2ZSBhcHByb2FjaCB3b3VsZCBiZSB0byBsb29rdXAgdGhl IHByZXN1bWVkIGFkZHJlc3MgaW4KPiAoZWcpIGEgcmJ0cmVlIHRvIGxvY2F0ZSB0aGUgYnVmZmVy IG9iamVjdCdzIHN0YXRlLCB3aGljaCB3b3VsZCBzYXZlCj4gdGhlIGxvb2t1cCBieSBvYmplY3Qg SUQsIGJ1dCBkb2VzIHRoaXMgc2F2ZSBhbnl0aGluZyBieSBkb2luZyB0aGF0LAo+IGRvZXMgaXQg YWRkIGNvbXBsZXhpdHkgYW5kIGFkZGl0aW9uYWwga2VybmVsIHByb2Nlc3Npbmc/Cj4gCj4gSSdt IG5vdCBzdXJlLgo+IApJJ20gbm90IHN1cmUgYWJvdXQgdGhpcy4gV2l0aCBNTVV2MiBhbmQgcGVy LXByb2Nlc3MgcGFnZXRhYmxlcyB0aGVyZQpyZWFsbHkgaXMgbm8gbmVlZCB0byB2YWxpZGF0ZSB0 aGUgYWRkcmVzc2VzIGZyb20gdXNlcnNwYWNlIGFzIGVhY2gKcHJvY2VzcyBpcyBvbmx5IGFibGUg dG8gc2hvb3QgaXRzZWxmIGluIHRoZSBmb290LgoKPiA+ID4gS2VlcCBpdCBzdHVwaWQgc2ltcGxl LiBJbiBteSBsaWJkcm0gcmVwbywgd2hpY2ggeW91IGhvcGVmdWxseSBrbm93LCBJCj4gPiA+IGhh dmUgaW1wbGVtZW50ZWQgdGhlIGJ1ZmZlciBoYW5kbGluZyBmcm9tIHRoZSBvcmlnaW5hbCBsaWJl dG5hdml2LiBXZQo+ID4gPiBhbGxvY2F0ZSA1IGNvbW1hbmQgYnVmZmVycyBvZiBhIGRlZmluZWQg c2l6ZSBhbmQgcm90YXRlIHRocm91Z2ggdGhlbS4KPiA+ID4gRHVyaW5nIGNvbW1hbmQgYnVmZmVy IGJ1aWxkaW5nIHdlIHJlc2VydmUgc3BhY2UgaW4gdGhlIHN0cmVhbS4gaWYKPiA+ID4gdGhlcmUg aXMgbm90IGVub3VnaCBzcGFjZSB3ZSBmbHVzaCB0aGUgY3VycmVudCBidWZmZXIgc3RyZWFtIGFu ZAo+ID4gPiBzd2l0Y2ggdG8gdGhlIG5leHQgYW5kIHVzIGl0LiBUaGVuIHRoZXJlIGlzIGEgd2F5 IHRvIGV4cGxpY2l0IGZsdXNoCj4gPiA+IGEgY29tbWFuZCBidWZmZXIuCj4gPiA+IAo+ID4gPiBG b3IgbW9yZSBkZXRhaWxzIHNlZToKPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2xhYW53ai9ldG5h X3Zpdi90cmVlL21hc3Rlci9zcmMvZXRuYXZpdgo+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vYXVz dHJpYW5jb2Rlci9saWJkcm0KPiA+IAo+ID4gU2FtZSBhcmd1bWVudCBhcyBhYm92ZSByZWFsbHku IFdlIG5lZWQgYXQgbGVhc3QgdGhlIGNvbnRleHQgYnVmZmVyLgo+IAo+IEFuIGltcG9ydGFudCBx dWVzdGlvbiBpcyB3aGV0aGVyIHRoZSBjb250ZXh0IGJ1ZmZlciwgYnVpbHQgYnkgdXNlcnNwYWNl LAo+IHNob3VsZCBiZSBzdWJtaXR0ZWQgYXMgb25lIG9mIHRoZXNlIGNvbW1hbmQgYnVmZmVycywg b3Iga2VwdCBzZXBhcmF0ZSBzbwo+IHRoZSBrZXJuZWwgY2FuIGtlZXAgdHJhY2sgb2YgaXQgYW5k IGRlY2lkZSB3aGV0aGVyIG9yIG5vdCB0byB1c2UgaXQKPiBhY2NvcmRpbmcgdG8gdGhlIHN0YXRl IGl0J3MgdHJhY2tpbmcuCj4gCj4gQW5vdGhlciBwb2ludCB0byBicmluZyB1cCBoZXJlIGlzIGFi b3V0IGhvdyBjb21tYW5kIGJ1ZmZlcnMgYXJlIHN1Ym1pdHRlZC4KPiAKPiBDb25zaWRlciB0aGlz IHNjZW5hcmlvOgo+IAo+IC0gVXNlcnNwYWNlIGNyZWF0ZXMgYSBjb21tYW5kIGJ1ZmZlciwgYW5k IGFycmFuZ2VzIGZvciB0aGUgaW5pdGlhbAo+ICAgY29tbWFuZHMgdG8gYmUgdGltZSBjb25zdW1p bmcgKGVnLCBsb25nIFdBSVQgY29tbWFuZHMuKSAgSXQgZmlsbHMgdGhlCj4gICByZXN0IG9mIHRo ZSBidWZmZXIgd2l0aCBkdW1teSBMT0FEIFNUQVRFIGNvbW1hbmRzLgo+IC0gVXNlcnNwYWNlIHN1 Ym1pdHMgdGhpcywgdGhlIGtlcm5lbCB2YWxpZGF0ZXMgdGhlIGNvbW1hbmQgYnVmZmVyLCBhbmQK PiAgIHN1Ym1pdHMgaXQgdG8gdGhlIEdQVS4gIFRoZSBHUFUgc3RhcnRzIGV4ZWN1dGluZyB0aGUg YnVmZmVyLgo+IC0gVXNlcnNwYWNlLCB3aGljaCBzdGlsbCBoYXMgYWNjZXNzIHRvIHRoZSBjb21t YW5kIGJ1ZmZlciwgb3ZlcndyaXRlcwo+ICAgdGhlIExPQUQgU1RBVEUgY29tbWFuZHMgd2l0aCBt YWxpY2lvdXMgR1BVIGNvbW1hbmRzLgo+IC0gR1BVIGV4ZWN1dGVzIG1hbGljaW91cyBHUFUgY29t bWFuZHMuCj4gCj4gVGhpcyBicmluZ3MgdXAgc2V2ZXJhbCBxdWVzdGlvbnM6Cj4gCj4gMS4gRG8g d2UgY2FyZSBhYm91dCB0aGlzPwo+IDIuIElmIHdlIGRvIGNhcmUsIHNob3VsZCB3ZSBpbnNpc3Qg dGhhdCBhIGNvbW1hbmQgYnVmZmVyIGlzIG5vdCBtYXBwZWQKPiAgICBpbiB1c2Vyc3BhY2Ugd2hl biBpdCBpcyBzdWJtaXR0ZWQsIGFuZCBwcmV2ZW50IGFuIGluLXVzZSBjb21tYW5kCj4gICAgYnVm ZmVyIGJlaW5nIG1hcHBlZD8KPiAzLiBJZiB3ZSBkb24ndCBjYXJlLCB3aGF0J3MgdGhlIHBvaW50 IG9mIHZhbGlkYXRpbmcgdGhlIHN1cHBsaWVkIGNvbW1hbmQKPiAgICBidWZmZXI/Cj4gCj4gKDIp IHdvdWxkIGJlIHF1aXRlIGFuIEFQSSBjaGFuZ2Ugb3ZlciB3aGF0IHdlIGhhdmUgdG9kYXksIGFu ZCBpbnRyb2R1Y2UKPiBhbiBhbW91bnQgb2Ygb3ZlcmhlYWQsIHRob3VnaCBzb21ldGhpbmcgd2hp Y2ggY291bGQgYmUgaGFuZGxlZCBpbiB0aGUKPiB1c2Vyc3BhY2UgbGlicmFyeSAoZWcsIGlmIHdl J3JlIG1vZGVsbGluZyBvbiBldG5hdml2J3MgZml2ZSBjb21tYW5kCj4gYnVmZmVyIG1vZGVsLCB3 ZSBjb3VsZCBjb3B5IHRoZSBjb21tYW5kIGJ1ZmZlciBpbW1lZGlhdGVseSBiZWZvcmUKPiBzdWJt aXNzaW9uLikKPiAKPiBHaXZlbiB0aGlzLCBJIHRoaW5rICgzKSBoYXMgc29tZSB2YWx1ZSBpcnJl c3BlY3RpdmUgb2YgdGhlIG91dGNvbWUgb2YKPiAoMSkgYXMgaXQgZ2l2ZXMgdXMgYSB3YXkgdG8g Y2F0Y2ggc2lsbHkgZXJyb3JzIGZyb20gdXNlcnNwYWNlIGJlZm9yZQo+IHRoZXkgaGl0IHRoZSBH UFUgYW5kIGJlY29tZSBhIHByb2JsZW0uCj4gCkkgdGhpbmsgd2Ugc2hvdWxkIGNhcmUuCkkgZmFp bCB0byBzZWUgaG93IHRoaXMgd291bGQgaGF2ZSB0byBiZSBhbiBBUEkgY2hhbmdlLiBXaHkgY2Fu J3Qgd2UganVzdApoYW5kIG91dCBidWZmZXJzIHRvIHVzZXJzcGFjZSBsaWtlIHdlIGRvIG5vdyBh bmQgY29weSB0aGVpciBjb250ZW50cwppbnRvIGFuIGludGVybmFsIGJ1ZmZlciBhcyB3ZSB2YWxp ZGF0ZSBhbmQgYXBwbHkgcmVsb2NzPwpUaGlzIG1vZGVsIG1heSBiZSBiZW5lZmljaWFsIGV2ZW4g d2l0aG91dCB0aGUgc2VjdXJpdHkgYmVuZWZpdHMsIGFzIHdlCmNvdWxkIGhhbmQgb3V0IGNhY2hl ZCBidWZmZXJzIHRvIHVzZXJzcGFjZSwgc28gd2UgY2FuIHJlYWQgdGhlbSBtb3JlCmVmZmljaWVu dGx5IGZvciB2YWxpZGF0aW9uIGFuZCBzdHVmZiB0aGluZ3MgaW50byBhbiBpbnRlcm5hbAp3cml0 ZS1jb21iaW5lZCBidWZmZXIuCgpSZWdhcmRzLApMdWNhcwotLSAKUGVuZ3V0cm9uaXggZS5LLiAg ICAgICAgICAgICB8IEx1Y2FzIFN0YWNoICAgICAgICAgICAgICAgICB8CkluZHVzdHJpYWwgTGlu dXggU29sdXRpb25zICAgfCBodHRwOi8vd3d3LnBlbmd1dHJvbml4LmRlLyAgfAoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK