From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans Verkuil Subject: Re: [Intel-gfx] [PATCH v2 00/10] Color Manager Implementation Date: Tue, 14 Jul 2015 10:17:09 +0200 Message-ID: <55A4C585.2070901@xs4all.nl> References: <1433425361-17864-1-git-send-email-Kausal.Malladi@intel.com> <20150609125047.GF1671@strange.amr.corp.intel.com> <20150615065310.GC8341@phenom.ffwll.local> <55A376EC.8060807@xs4all.nl> <20150713091813.GW3736@phenom.ffwll.local> <55A38843.9090408@xs4all.nl> <20150713095444.GH3736@phenom.ffwll.local> <55A38EBC.5060201@xs4all.nl> <20150713140741.GJ3736@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20150713140741.GJ3736@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 Cc: annie.j.matheson@intel.com, jesse.barnes@intel.com, dri-devel@lists.freedesktop.org, vijay.a.purushothaman@intel.com, dhanya.p.r@intel.com, daniel.vetter@intel.com, intel-gfx@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gMDcvMTMvMTUgMTY6MDcsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gT24gTW9uLCBKdWwgMTMs IDIwMTUgYXQgMTI6MTE6MDhQTSArMDIwMCwgSGFucyBWZXJrdWlsIHdyb3RlOgo+PiBPbiAwNy8x My8yMDE1IDExOjU0IEFNLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+Pj4gT24gTW9uLCBKdWwgMTMs IDIwMTUgYXQgMTE6NDM6MzFBTSArMDIwMCwgSGFucyBWZXJrdWlsIHdyb3RlOgo+Pj4+IE9uIDA3 LzEzLzIwMTUgMTE6MTggQU0sIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4+Pj4+IE9uIE1vbiwgSnVs IDEzLCAyMDE1IGF0IDEwOjI5OjMyQU0gKzAyMDAsIEhhbnMgVmVya3VpbCB3cm90ZToKPj4+Pj4+ IE9uIDA2LzE1LzIwMTUgMDg6NTMgQU0sIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4+Pj4+Pj4gT24g VHVlLCBKdW4gMDksIDIwMTUgYXQgMDE6NTA6NDhQTSArMDEwMCwgRGFtaWVuIExlc3BpYXUgd3Jv dGU6Cj4+Pj4+Pj4+IE9uIFRodSwgSnVuIDA0LCAyMDE1IGF0IDA3OjEyOjMxUE0gKzA1MzAsIEth dXNhbCBNYWxsYWRpIHdyb3RlOgo+Pj4+Pj4+Pj4gRnJvbTogS2F1c2FsIE1hbGxhZGkgPEthdXNh bC5NYWxsYWRpQGludGVsLmNvbT4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBUaGlzIHBhdGNoIHNldCBh ZGRzIGNvbG9yIG1hbmFnZXIgaW1wbGVtZW50YXRpb24gaW4gZHJtL2k5MTUgbGF5ZXIuCj4+Pj4+ Pj4+PiBDb2xvciBNYW5hZ2VyIGlzIGFuIGV4dGVuc2lvbiBpbiBpOTE1IGRyaXZlciB0byBzdXBw b3J0IGNvbG9yIAo+Pj4+Pj4+Pj4gY29ycmVjdGlvbi9lbmhhbmNlbWVudC4gVmFyaW91cyBJbnRl bCBwbGF0Zm9ybXMgc3VwcG9ydCBzZXZlcmFsCj4+Pj4+Pj4+PiBjb2xvciBjb3JyZWN0aW9uIGNh cGFiaWxpdGllcy4gQ29sb3IgTWFuYWdlciBwcm92aWRlcyBhYnN0cmFjdGlvbgo+Pj4+Pj4+Pj4g b2YgdGhlc2UgcHJvcGVydGllcyBhbmQgYWxsb3dzIGEgdXNlciBzcGFjZSBVSSBhZ2VudCB0byAK Pj4+Pj4+Pj4+IGNvcnJlY3QvZW5oYW5jZSB0aGUgZGlzcGxheS4KPj4+Pj4+Pj4KPj4+Pj4+Pj4g U28gSSBkaWQgYSBmaXJzdCByb3VnaCBwYXNzIG9uIHRoZSBBUEkgaXRzZWxmLiBUaGUgYmlnIHF1 ZXN0aW9uIHRoYXQKPj4+Pj4+Pj4gaXNuJ3Qgc29sdmVkIGF0IHRoZSBtb21lbnQgaXM6IGRvIHdl IHdhbnQgdG8gdHJ5IHRvIGRvIGdlbmVyaWMgS01TCj4+Pj4+Pj4+IHByb3BlcnRpZXMgZm9yIHBy ZS1MVVQgKyBtYXRyaXggKyBwb3N0LUxVVCBvciBub3QuICJHZW5lcmljIiBoYXMgMyBsZXZlbHM6 Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+ICAgMS8gR2VuZXJpYyBmb3IgYWxsIEtNUyBkcml2ZXJzCj4+Pj4+ Pj4+ICAgMi8gR2VuZXJpYyBmb3IgaTkxNSBzdXBwb3J0ZWQgcGxhdGZvbXMKPj4+Pj4+Pj4gICAz LyBTcGVjaWZpYyB0byBlYWNoIHBsYXRmb3JtCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IEF0IHRoaXMgcG9p bnQsIEknbSBxdWl0ZSB0ZW1wdGVkIHRvIHNheSB3ZSBzaG91bGQgZ2l2ZSAxLyBhIHNob3QuIFdl Cj4+Pj4+Pj4+IHNob3VsZCBiZSBhYmxlIHRvIGhhdmUgcHJlLUxVVCArIG1hdHJpeCArIHBvc3Qt TFVUIG9uIENSVEMgb2JqZWN0cyBhbmQKPj4+Pj4+Pj4gZ3VhcmFudGVlIHRoYXQsIHdoZW4gdGhl IGRyaXZlcnMgZXhwb3NlIHN1Y2ggcHJvcGVydGllcywgdXNlciBzcGFjZSBjYW4KPj4+Pj4+Pj4g YXQgbGVhc3QgZ2l2ZSA4IGJpdHMgTFVUICsgM3gzIG1hdHJpeCArIDggYml0cyBMVVQuCj4+Pj4+ Pj4+Cj4+Pj4+Pj4+IEl0IG1heSBiZSBwb3NzaWJsZSB0byB1c2UgdGhlICJ0cnkiIHZlcnNpb24g b2YgdGhlIGF0b21pYyBpb2N0bCB0bwo+Pj4+Pj4+PiBleHBsb3JlIHRoZSBzcGFjZSBvZiBwb3Nz aWJpbGl0aWVzIGZyb20gYSBnZW5lcmljIHVzZXIgc3BhY2UgdG8gdXNlCj4+Pj4+Pj4+IGJpZ2dl ciBMVVRzIGFzIHdlbGwuIEEgSEFMIGxheWVyICh3aGljaCBpcyBhbHJlYWR5IHRoZXJlIGluIHNv bWUgYnV0IG5vdAo+Pj4+Pj4+PiBhbGwgT1Nlcykgd291bGQgc3RpbGwgYmUgYWJsZSB0byB1c2Ug dGhvc2UgZ2VuZXJpYyBwcm9wZXJ0aWVzIHRvIGxvYWQKPj4+Pj4+Pj4gInByZWNpc2lvbiBvcHRp bWl6ZWQiIExVVHMgd2l0aCBzb21lIGtub3dsZWRnZSBvZiB0aGUgaGFyZHdhcmUuCj4+Pj4+Pj4K Pj4+Pj4+PiBZZWFoLCBpbW8gMS8gc2hvdWxkIGJlIGRvYWJsZS4gRm9yIHRoZSBtYXRyaXggd2Ug c2hvdWxkIGJlIGFibGUgdG8gYmUKPj4+Pj4+PiBmdWxseSBnZW5lcmljIHdpdGggYSAxNi4xNiBm b3JtYXQuIEZvciBnYW1tYSBvbmUgb3B0aW9uIHdvdWxkIGJlIHRvIGhhdmUKPj4+Pj4+Cj4+Pj4+ PiBJIGtub3cgSSBhbSBsYXRlIHJlcGx5aW5nLCBhcG9sb2dpZXMgZm9yIHRoYXQuCj4+Pj4+Pgo+ Pj4+Pj4gSSd2ZSBiZWVuIHdvcmtpbmcgb24gQ1NDIHN1cHBvcnQgZm9yIFY0TDIgYXMgd2VsbCAo c3RpbGwgd29yayBpbiBwcm9ncmVzcykKPj4+Pj4+IGFuZCBJIHdvdWxkIGxpa2UgdG8gYXQgbGVh c3QgZW5kIHVwIHdpdGggdGhlIHNhbWUgbG93LWxldmVsIGZpeGVkIHBvaW50Cj4+Pj4+PiBmb3Jt YXQgYXMgRFJNIHNvIHdlIGNhbiBzaGFyZSBtYXRyaXgvdmVjdG9yIGNhbGN1bGF0aW9ucy4KPj4+ Pj4+Cj4+Pj4+PiBCYXNlZCBvbiBteSBleHBlcmllbmNlcyBJIGhhdmUgY29uY2VybnMgYWJvdXQg dGhlIDE2LjE2IGZvcm1hdDogdGhlIHByZWNpc2lvbgo+Pj4+Pj4gaXMgcXVpdGUgbG93IHdoaWNo IGNhbiBiZSBhIHByb2JsZW0gd2hlbiBzdWNoIHZhbHVlcyBhcmUgdXNlZCBpbiBtYXRyaXgKPj4+ Pj4+IG11bHRpcGxpY2F0aW9ucy4KPj4+Pj4+Cj4+Pj4+PiBJbiBhZGRpdGlvbiwgd2hpbGUgdGhl IHByZWNpc2lvbiBtYXkgYmUgc3VmZmljaWVudCBmb3IgOCBiaXQgY29sb3IgY29tcG9uZW50Cj4+ Pj4+PiB2YWx1ZXMsIEknbSBwcmV0dHkgc3VyZSBpdCB3aWxsIGJlIGluc3VmZmljaWVudCB3aGVu IGRlYWxpbmcgd2l0aCAxMiBvciAxNiBiaXQKPj4+Pj4+IGNvbG9yIGNvbXBvbmVudHMuCj4+Pj4+ Pgo+Pj4+Pj4gSW4gZWFybGllciB2ZXJzaW9ucyBvZiBteSBDU0MgY29kZSBJIHVzZWQgYSAxMi4y MCBmb3JtYXQsIGJ1dCBpbiB0aGUgbGF0ZXN0IEkKPj4+Pj4+IHN3aXRjaGVkIHRvIDMyLjMyLiBU aGlzIGZpdHMgbmljZWx5IGluIGEgdTY0IGFuZCBpdCdzIGVhc3kgdG8gZXh0cmFjdCB0aGUKPj4+ Pj4+IGludGVnZXIgYW5kIGZyYWN0aW9uYWwgcGFydHMuCj4+Pj4+Pgo+Pj4+Pj4gSWYgdGhpcyBp cyBnb2luZyB0byBiZSBhIGdlbmVyaWMgYW5kIGZ1dHVyZSBwcm9vZiBBUEksIHRoZW4gbXkgc3Vn Z2VzdGlvbgo+Pj4+Pj4gd291bGQgYmUgdG8gaW5jcmVhc2UgdGhlIHByZWNpc2lvbiBvZiB0aGUg dW5kZXJseWluZyBkYXRhIHR5cGUuCj4+Pj4+Cj4+Pj4+IFdlIGRpc2N1c3NlZCB0aGlzIGEgYml0 IG1vcmUgaW50ZXJuYWxseSBhbmQgZmlndXJlZCBpdCB3b3VsZCBiZSBuaWNlIHRvIGhhdmUgdGhl IHNhbWUKPj4+Pj4gZml4ZWQgcG9pbnQgZm9yIGJvdGggQ1NDIG1hdHJpeCBhbmQgTFVUL2dhbW1h IHRhYmxlcy4gQ3VycmVudCBjb25zZW5zdXMKPj4+Pj4gc2VlbXMgdG8gYmUgdG8gZ28gd2l0aCA4 LjI0IGZvciBib3RoLiBTaW5jZSBMVVRzIGFyZSBmYWlybHkgYmlnIEkgdGhpbmsgaXQKPj4+Pj4g bWFrZXMgc2Vuc2UgaWYgd2UgdHJ5IHRvIGJlIG5vdCB0b28gd2FzdGVmdWwgKHdoaWxlIHN0aWxs IGZ1dHVyZS1wcm9vZgo+Pj4+PiBvZmMpLgo+Pj4+Cj4+Pj4gVGhlIC4yNCBzaG91bGQgaGF2ZSBl bm91Z2ggcHJlY2lzaW9uLCBidXQgSSBhbSB3b3JyaWVkIGFib3V0IHRoZSA4OiB3aGlsZQo+Pj4+ IHRoaXMgd29ya3MgZm9yIDggYml0IGNvbXBvbmVudHMsIHlvdSBjYW4ndCB1c2UgaXQgdG8gcmVw cmVzZW50IHZhbHVlcwo+Pj4+PiAyNTUsIHdoaWNoIG1pZ2h0IGJlIG5lZWRlZCAobm93IG9yIGlu IHRoZSBmdXR1cmUpIGZvciAxMCwgMTIgb3IgMTYgYml0Cj4+Pj4gY29sb3IgY29tcG9uZW50cy4K Pj4+Pgo+Pj4+IEl0J3Mgd2h5IEkgZW5kZWQgdXAgd2l0aCAzMi4zMjogaXQncyB2ZXJ5IGdlbmVy aWMgc28gdXNhYmxlIGZvciBvdGhlcgo+Pj4+IHRoaW5ncyBiZXNpZGVzIENTQy4KPj4+Pgo+Pj4+ IE5vdGUgdGhhdCA4LjI0IGlzIHJlYWxseSA3LjI0ICsgb25lIHNpZ24gYml0LiBTbyAyNTUgY2Fu J3QgYmUgcmVwcmVzZW50ZWQKPj4+PiBpbiB0aGlzIGZvcm1hdC4KPj4+Pgo+Pj4+IFRoYXQgc2Fp ZCwgYWxsIHZhbHVlcyBJJ20gd29ya2luZyB3aXRoIGluIG15IGN1cnJlbnQgY29kZSBhcmUgc21h bGwgaW50ZWdlcnMKPj4+PiAoc2F5IGJldHdlZW4gLTQgYW5kIDQgd29yc3QgY2FzZSksIHNvIDgu MjQgd291bGQgd29yay4gQnV0IEkgYW0gbm90IGF0IGFsbAo+Pj4+IGNvbmZpZGVudCB0aGF0IHRo aXMgaXMgZnV0dXJlIHByb29mLiBNeSBndXQgZmVlbGluZyBpcyB0aGF0IHlvdSBuZWVkIHRvIGJl Cj4+Pj4gYWJsZSB0byByZXByZXNlbnQgYXQgbGVhc3QgdGhlIG1heCBjb21wb25lbnQgdmFsdWUg KyBhIHNpZ24gYml0ICsgNyBkZWNpbWFscwo+Pj4+IHByZWNpc2lvbi4gV2hpY2ggbWFrZXMgMTcu MjQuCj4+Pgo+Pj4gVGhlIGlkZWEgaXMgdG8gc3RlYWwgZnJvbSBHTCBhbmQgYWx3YXlzIG5vcm1h bGl6ZSBldmVyeXRoaW5nIHRvIFswLjAsCj4+PiAxLjBdLCBpcnJlc3BlY3RpdmUgb2YgdGhlIHNv dXJjZSBjb2xvciBmb3JtYXQuIFdlIG5lZWQgdGhhdCBpbiBkcm0gc2luY2UKPj4+IGlmIHlvdSBi bGVuZCB0b2dldGhlciBwbGFuZXMgd2l0aCBkaWZmZXJlbnQgZm9ybWF0cyBpdCdzIGNvbXBsZXRl bHkKPj4+IHVuZGVmaW5lZCB3aGljaCBvbmUgeW91IHNob3VsZCBwaWNrLiA4IGJpdHMgb2YgcHJl Y2lzaW9uIGZvciB2YWx1ZXMgb3V0IG9mCj4+PiByYW5nZSBzaG91bGQgYmUgZW5vdWdoIDstKQo+ Pgo+PiBUaGF0IGRvZXNuJ3QgcmVhbGx5IGhlbHAgbXVjaCwgdXNpbmcgYSBbMC0xXSByYW5nZSBq dXN0IG1lYW5zIHRoYXQgeW91IG5lZWQKPj4gbW9yZSBwcmVjaXNpb24gZm9yIHRoZSBmcmFjdGlv biBzaW5jZSB0aGUgaW50ZWdlciBwcmVjaXNpb24gaXMgbm93IGFkZGVkIHRvCj4+IHRoZSBmcmFj dGlvbmFsIHByZWNpc2lvbi4KPj4KPj4gU28gZm9yIDE2LWJpdCBjb2xvciBjb21wb25lbnRzIHRo ZSA4LjI0IGZvcm1hdCB3aWxsIGxlYXZlIHlvdSB3aXRoIG9ubHkgOCBiaXRzCj4+IHByZWNpc2lv biBpZiB5b3Ugc2NhbGUgZWFjaCBjb21wb25lbnQgdG8gdGhlIFswLTFdIHJhbmdlLiBUaGF0J3Mg c2xpZ2h0bHkgbW9yZQo+PiB0aGFuIDIgZGVjaW1hbHMuIEkgZG9uJ3QgYmVsaWV2ZSB0aGF0IGlz IGVub3VnaC4gSWYgeW91IGRvIGEgZ2FtbWEgdGFibGUgbG9va3VwCj4+IGFuZCB0aGVuIGZlZWQg dGhlIHJlc3VsdCB0byBhIENTQyBtYXRyaXggeW91IG5lZWQgbW9yZSBwcmVjaXNpb24gaWYgeW91 IHdhbnQKPj4gdG8gZ2V0IGFjY3VyYXRlIHJlc3VsdHMuCj4gCj4gSG0sIHdoeSBkbyB3ZSBuZWVk IDggYml0cyBtb3JlIHByZWNpc2lvbiB0aGFuIHNvdXJjZSBkYXRhPyBBdCBsZWFzdCBpbiB0aGUK PiBpbnRlbCBodyBJJ3ZlIHNlZW4gdGhlIG1vc3QgYml0cyB3ZSBjYW4gc3R1ZmYgaW50byB0aGUg aHcgaXMgMC4xMiAoYWdhaW4KPiBmb3IgcmVzY2FsZWQgcmFuZ2UgdG8gMC4wLTEuMCkuIDI0IGJp dHMgbWVhbnMgYXMtaXMgd2UnbGwgdGhyb3cgMTIgYml0cwo+IGF3YXkuIFdoYXQgd291bGQgeW91 IHdhbnQgdG8gdXNlIHRoZXNlIGJpdHMgZm9yPwoKVGhlIGludGVsIGhhcmR3YXJlIHVzZXMgMTIg Yml0cyB0b2RheSwgYnV0IHdoYXQgYWJvdXQgdGhlIG5leHQtZ2VuPyBJZiB5b3UgYXJlCmRlZmlu aW5nIGFuIEFQSSBhbmQgZGF0YSB0eXBlIGp1c3QgZm9yIHRoZSBoYXJkd2FyZSB0aGUga2VybmVs IHN1cHBvcnRzIHRvZGF5LAp0aGVuIDEyIGJpdHMgbWlnaHQgYmUgZW5vdWdoIHByZWNpc2lvbi4g SWYgeW91IHdhbnQgdG8gYmUgZnV0dXJlIHByb29mIHRoZW4geW91Cm5lZWQgdG8gYmUgcHJlcGFy ZWQgZm9yIG1vcmUgY2FwYWJsZSBmdXR1cmUgaGFyZHdhcmUuCgpTbyAwLjEyIHdpbGwgb2J2aW91 c2x5IG5vdCBiZSBlbm91Z2ggaWYgeW91IHdhbnQgdG8gc3VwcG9ydCAxNiBiaXQgY29sb3IgY29t cG9uZW50cwppbiB0aGUgZnV0dXJlLgoKSW4gYWRkaXRpb24sIHRvIGZ1bGx5IHN1cHBvcnQgSFcg Y29sb3JzcGFjZSBjb252ZXJzaW9uIChlLmcuIHNSR0IgdG8gUmVjLjcwOSkgd2hlcmUKbG9va3Vw IHRhYmxlcyBhcmUgdXNlZCBmb3IgaW1wbGVtZW50aW5nIHRoZSB0cmFuc2ZlciBmdW5jdGlvbnMg KG5vcm1hbCBhbmQgaW52ZXJzZSksCnRoZW4geW91IG5lZWQgbW9yZSBwcmVjaXNpb24gdGhlbiBq dXN0IHRoZSBudW1iZXIgb2YgYml0cyBwZXIgY29tcG9uZW50IG9yIHlvdSB3aWxsCmdldCBxdWl0 ZSBsYXJnZSBlcnJvcnMgaW4gdGhlIGNhbGN1bGF0aW9uLgoKSXQgYWxsIGRlcGVuZHMgaG93IGEg TFVUIGlzIHVzZWQ6IGlmIHRoZSB2YWx1ZSBmcm9tIHRoZSBMVVQgaXMgdGhlICdmaW5hbCcgdmFs dWUsCnRoZW4geW91IGRvbid0IG5lZWQgbW9yZSBwcmVjaXNpb24gdGhhbiB0aGUgbnVtYmVyIG9m IGJpdHMgb2YgYSBjb2xvciBjb21wb25lbnQuIEJ1dAppZiBpdCBpcyB1c2VkIGluIG90aGVyIGNh bGN1bGF0aW9ucyAoM3gzIG1hdHJpY2VzLCBmdWxsL2xpbWl0ZWQgcmFuZ2Ugc2NhbGluZywgZXRj KSwKdGhlbiB0aGUgTFVUIHNob3VsZCBwcm92aWRlIG1vcmUgYml0cyBwcmVjaXNpb24uCgpXaGlj aCBzZWVtcyB0byBiZSB0aGUgY2FzZSB3aXRoIEludGVsIGhhcmR3YXJlOiAxMiBiaXRzIGlzIDQg Yml0cyBtb3JlIHRoYW4gdGhlIDggYml0cwpwZXIgY29tcG9uZW50IGl0IHByb2JhYmx5IHVzZXMu CgpJIHdvdWxkIGd1ZXNzIHRoYXQgYSBMVVQgc3VwcG9ydGluZyAxNiBiaXQgY29sb3IgY29tcG9u ZW50cyB3b3VsZCBuZWVkIGEgcHJlY2lzaW9uCm9mIDAuMjAgb3Igc28gKGFzc3VtaW5nIHRoZSBy ZXN1bHRpbmcgdmFsdWVzIGFyZSB1c2VkIGluIGZ1cnRoZXIgY2FsY3VsYXRpb25zKS4KCkhpZ2gg ZHluYW1pYyByYW5nZSB2aWRlbyB3aWxsIGJlIGFuIGltcG9ydGFudCBkcml2aW5nIGZvcmNlIHRv d2FyZHMgaGlnaGVyIGJpdCBkZXB0aHMKYW5kIGFjY3VyYXRlIGNvbG9yIGhhbmRsaW5nLCBzbyB5 b3UgY2FuIGV4cGVjdCB0byBzZWUgdGhpcyBiZWNvbWUgbXVjaCBtb3JlIGltcG9ydGFudAppbiB0 aGUgY29taW5nIHllYXJzLgoKQW5kIGFzIEkgbWVudGlvbmVkIGFub3RoZXIgY29uc2lkZXJhdGlv biBpcyB0aGF0IHRoaXMgZml4ZWQgcG9pbnQgZGF0YSB0eXBlIG1pZ2h0CmJlIHVzZWZ1bCBlbHNl d2hlcmUgaW4gdGhlIGtlcm5lbCB3aGVyZSB5b3UgbmVlZCB0byBkbyBzb21lIHByZWNpc2lvbiBh cml0aG1ldGljLgpTbyB1c2luZyBhIHN0YW5kYXJkIHR5cGUgdGhhdCBhbnlvbmUgY2FuIHVzZSB3 aXRoIGZ1bmN0aW9ucyBpbiBsaWIvIHRvIGRvIGJhc2ljCm9wZXJhdGlvbnMgY2FuIGJlIHZlcnkg dXNlZnVsIGluZGVlZCBiZXlvbmQganVzdCBEUk0gYW5kIFY0TDIuCgo+IAo+Pj4gT2ggYW5kIHdl IG1pZ2h0IG5lZWQgdGhvc2Ugc2luY2UgZm9yIENTQyBhbmQgYXQgbGVhc3Qgc29tZSBMVVRzIHlv dSBjYW4gZG8KPj4+IHRoaXMuCj4+Cj4+IFNvcnJ5LCBJIGRvbid0IHVuZGVyc3RhbmQgdGhpcyBz ZW50ZW5jZS4gV2hhdCBkb2VzICd0aG9zZScgYW5kICd0aGlzJyByZWZlciB0bz8KPiAKPiBJIG1l YW50IHRoYXQgdGhlIGhpZ2hlciBiaXRzIGJlZm9yZSB0aGUgZGVjaW1hbCBhcmUgbmVlZGVkIGlu IHNvbWUgY2FzZXMKPiBieSB0aGUgaHcgc2luY2UgaXQgYWxsb3dzIHZhbHVlcyA+IGxvZ2ljYWwg MS4wLiBBdCBsZWFzdCBzb21lIGh3IHN1cHBvcnRzCj4gMTZiaXQgKGhhbGYpIGZsb2F0cyBhcyBz Y2Fub3V0IHNvdXJjZXMgdG9vLgoKQWgsIE9LLiBUaGFua3MgZm9yIHRoZSBjbGFyaWZpY2F0aW9u LgoKUmVnYXJkcywKCglIYW5zCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg==