From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [Intel-gfx] [v11 1/4] drm: Add HDMI colorspace property Date: Fri, 8 Feb 2019 17:35:49 +0200 Message-ID: <20190208153549.GT20097@intel.com> References: <20190207190324.GM20097@intel.com> <20190208125239.GQ20097@intel.com> <20190208133003.GR20097@intel.com> <20190208143743.GS20097@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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: "Shankar, Uma" Cc: "intel-gfx@lists.freedesktop.org" , "Syrjala, Ville" , "Lankhorst, Maarten" , "dri-devel@lists.freedesktop.org" List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBGZWIgMDgsIDIwMTkgYXQgMDM6MDM6MzRQTSArMDAwMCwgU2hhbmthciwgVW1hIHdy b3RlOgo+IAo+IAo+ID4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID5Gcm9tOiBWaWxsZSBT eXJqw6Rsw6QgW21haWx0bzp2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbV0KPiA+U2VudDog RnJpZGF5LCBGZWJydWFyeSA4LCAyMDE5IDg6MDggUE0KPiA+VG86IFNoYXJtYSwgU2hhc2hhbmsg PHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+Cj4gPkNjOiBTaGFua2FyLCBVbWEgPHVtYS5zaGFu a2FyQGludGVsLmNvbT47IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7Cj4gPlN5cmph bGEsIFZpbGxlIDx2aWxsZS5zeXJqYWxhQGludGVsLmNvbT47IGRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmc7IExhbmtob3JzdCwKPiA+TWFhcnRlbiA8bWFhcnRlbi5sYW5raG9yc3RAaW50 ZWwuY29tPgo+ID5TdWJqZWN0OiBSZTogW0ludGVsLWdmeF0gW3YxMSAxLzRdIGRybTogQWRkIEhE TUkgY29sb3JzcGFjZSBwcm9wZXJ0eQo+ID4KPiA+T24gRnJpLCBGZWIgMDgsIDIwMTkgYXQgMDc6 MzY6MjRQTSArMDUzMCwgU2hhcm1hLCBTaGFzaGFuayB3cm90ZToKPiA+PiBSZWdhcmRzCj4gPj4K PiA+PiBTaGFzaGFuawo+ID4+Cj4gPj4gT24gMi84LzIwMTkgNzowMCBQTSwgVmlsbGUgU3lyasOk bMOkIHdyb3RlOgo+ID4+ID4gT24gRnJpLCBGZWIgMDgsIDIwMTkgYXQgMDY6MzY6MzlQTSArMDUz MCwgU2hhcm1hLCBTaGFzaGFuayB3cm90ZToKPiA+PiA+PiBSZWdhcmRzCj4gPj4gPj4KPiA+PiA+ PiBTaGFzaGFuawo+ID4+ID4+Cj4gPj4gPj4gT24gMi84LzIwMTkgNjoyMiBQTSwgVmlsbGUgU3ly asOkbMOkIHdyb3RlOgo+ID4+ID4+PiBPbiBGcmksIEZlYiAwOCwgMjAxOSBhdCAxMjozNjoyNVBN ICswMDAwLCBTaGFybWEsIFNoYXNoYW5rIHdyb3RlOgo+ID4+ID4+Pj4gUmVnYXJkcwo+ID4+ID4+ Pj4gU2hhc2hhbmsKPiA+PiA+Pj4+Cj4gPj4gPj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0KPiA+PiA+Pj4+PiBGcm9tOiBJbnRlbC1nZnggW21haWx0bzppbnRlbC1nZngtYm91bmNlc0Bs aXN0cy5mcmVlZGVza3RvcC5vcmddCj4gPj4gPj4+Pj4gT24gQmVoYWxmIE9mIFNoYW5rYXIsIFVt YQo+ID4+ID4+Pj4+IFNlbnQ6IEZyaWRheSwgRmVicnVhcnkgOCwgMjAxOSA1OjQ1IFBNCj4gPj4g Pj4+Pj4gVG86IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ Cj4gPj4gPj4+Pj4gQ2M6IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IFN5cmphbGEs IFZpbGxlCj4gPj4gPj4+Pj4gPHZpbGxlLnN5cmphbGFAaW50ZWwuY29tPjsgZHJpLSBkZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmc7Cj4gPj4gPj4+Pj4gTGFua2hvcnN0LCBNYWFydGVuIDxtYWFy dGVuLmxhbmtob3JzdEBpbnRlbC5jb20+Cj4gPj4gPj4+Pj4gU3ViamVjdDogUmU6IFtJbnRlbC1n ZnhdIFt2MTEgMS80XSBkcm06IEFkZCBIRE1JIGNvbG9yc3BhY2UKPiA+PiA+Pj4+PiBwcm9wZXJ0 eQo+ID4+ID4+Pj4+Cj4gPj4gPj4+Pj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ ID4+ID4+Pj4+Pj4+Pj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIFttYWlsdG86dmlsbGUuc3lyamFs YUBsaW51eC5pbnRlbC5jb21dCj4gPj4gPj4+Pj4+Pj4+PiBTZW50OiBUdWVzZGF5LCBGZWJydWFy eSA1LCAyMDE5IDEwOjAyIFBNCj4gPj4gPj4+Pj4+Pj4+PiBUbzogU2hhbmthciwgVW1hIDx1bWEu c2hhbmthckBpbnRlbC5jb20+Cj4gPj4gPj4+Pj4+Pj4+PiBDYzogaW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZzsKPiA+PiA+Pj4+Pj4+Pj4+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmc7IFN5cmphbGEsIFZpbGxlCj4gPj4gPj4+Pj4+Pj4+PiA8dmlsbGUuc3lyamFsYUBpbnRl bC5jb20+OyBMYW5raG9yc3QsIE1hYXJ0ZW4KPiA+PiA+Pj4+Pj4+Pj4+IDxtYWFydGVuLmxhbmto b3JzdEBpbnRlbC5jb20+Cj4gPj4gPj4+Pj4+Pj4+PiBTdWJqZWN0OiBSZTogW0ludGVsLWdmeF0g W3YxMSAxLzRdIGRybTogQWRkIEhETUkgY29sb3JzcGFjZQo+ID4+ID4+Pj4+Pj4+Pj4gcHJvcGVy dHkKPiA+PiA+Pj4+Pj4+Pj4+Cj4gPj4gPj4+Pj4+Pj4+PiBPbiBUdWUsIEZlYiAwNSwgMjAxOSBh dCAwOTozMzozNFBNICswNTMwLCBVbWEgU2hhbmthciB3cm90ZToKPiA+PiA+Pj4+Pj4+Pj4+PiBD cmVhdGUgYSBuZXcgY29ubmVjdG9yIHByb3BlcnR5IHRvIHByb2dyYW0gY29sb3JzcGFjZSB0byBz aW5rCj4gPmRldmljZXMuCj4gPj4gPj4+Pj4+Pj4+Pj4gTW9kZXJuIHNpbmsgZGV2aWNlcyBzdXBw b3J0IG1vcmUgdGhhbiAxIHR5cGUgb2YgY29sb3JzcGFjZQo+ID4+ID4+Pj4+Pj4+Pj4+IGxpa2Ug NjAxLCA3MDksIEJUMjAyMCBldGMuIFRoaXMgaGVscHMgdG8gc3dpdGNoIGJhc2VkIG9uCj4gPj4g Pj4+Pj4+Pj4+Pj4gY29udGVudCB0eXBlIHdoaWNoIGlzIHRvIGJlIGRpc3BsYXllZC4gVGhlIGRl Y2lzaW9uIGxpZXMKPiA+PiA+Pj4+Pj4+Pj4+PiB3aXRoIGNvbXBvc2l0b3JzIGFzIHRvIGluIHdo aWNoIHNjZW5hcmlvcywgYSBwYXJ0aWN1bGFyIGNvbG9yc3BhY2Ugd2lsbAo+ID5iZSBwaWNrZWQu Cj4gPj4gPj4+Pj4+Pj4+Pj4KPiA+PiA+Pj4+Pj4+Pj4+PiBUaGlzIHdpbGwgYmUgaGVscGZ1bCBt b3N0bHkgdG8gc3dpdGNoIHRvIGhpZ2hlciBnYW11dAo+ID4+ID4+Pj4+Pj4+Pj4+IGNvbG9yc3Bh Y2VzIGxpa2UKPiA+PiA+Pj4+Pj4+Pj4+PiBCVDIwMjAgd2hlbiB0aGUgbWVkaWEgY29udGVudCBp cyBlbmNvZGVkIGFzIEJUMjAyMC4KPiA+PiA+Pj4+Pj4+Pj4+PiBUaGVyZWJ5IGdpdmluZyBhIGdv b2QgdmlzdWFsIGV4cGVyaWVuY2UgdG8gdXNlcnMuCj4gPj4gPj4+Pj4+Pj4+Pj4KPiA+PiA+Pj4+ Pj4+Pj4+PiBUaGUgZXhwZWN0YXRpb24gZnJvbSB1c2Vyc3BhY2UgaXMgdGhhdCBpdCBzaG91bGQg cGFyc2UgdGhlCj4gPj4gPj4+Pj4+Pj4+Pj4gRURJRCBhbmQgZ2V0IHN1cHBvcnRlZCBjb2xvcnNw YWNlcy4gVXNlIHRoaXMgcHJvcGVydHkgYW5kCj4gPj4gPj4+Pj4+Pj4+Pj4gc3dpdGNoIHRvIHRo ZSBvbmUgc3VwcG9ydGVkLiBTaW5rIHN1cHBvcnRlZCBjb2xvcnNwYWNlcwo+ID4+ID4+Pj4+Pj4+ Pj4+IHNob3VsZCBiZSByZXRyaWV2ZWQgYnkgdXNlcnNwYWNlIGZyb20gRURJRCBhbmQgZHJpdmVy IHdpbGwKPiA+PiA+Pj4+Pj4+Pj4+PiBub3QgZXhwbGljaXRseSBleHBvc2UKPiA+PiA+Pj4+Pj4g dGhlbS4KPiA+PiA+Pj4+Pj4+Pj4+PiBCYXNpY2FsbHkgdGhlIGV4cGVjdGF0aW9uIGZyb20gdXNl cnNwYWNlIGlzOgo+ID4+ID4+Pj4+Pj4+Pj4+ICAgIC0gU2V0IHVwIENSVEMgREVHQU1NQS9DVE0v R0FNTUEgdG8gY29udmVydCB0byBzb21lIHNpbmsKPiA+PiA+Pj4+Pj4+Pj4+PiAgICAgIGNvbG9y c3BhY2UKPiA+PiA+Pj4+Pj4+Pj4+PiAgICAtIFNldCB0aGlzIG5ldyBwcm9wZXJ0eSB0byBsZXQg dGhlIHNpbmsga25vdyB3aGF0IGl0Cj4gPj4gPj4+Pj4+Pj4+Pj4gICAgICBjb252ZXJ0ZWQgdGhl IENSVEMgb3V0cHV0IHRvLgo+ID4+ID4+Pj4+Pj4+Pj4+Cj4gPj4gPj4+Pj4+Pj4+Pj4gdjI6IEFk ZHJlc3NlZCBNYWFydGVuIGFuZCBWaWxsZSdzIHJldmlldyBjb21tZW50cy4KPiA+PiA+Pj4+Pj4+ Pj4+PiBFbmhhbmNlZCB0aGUgY29sb3JzcGFjZSBlbnVtIHRvIGluY29ycG9yYXRlIGJvdGggSERN SSBhbmQKPiA+PiA+Pj4+Pj4+Pj4+PiBEUCBzdXBwb3J0ZWQKPiA+PiA+Pj4+Pj4gY29sb3JzcGFj ZXMuCj4gPj4gPj4+Pj4+Pj4+Pj4gQWxzbywgYWRkZWQgYSBkZWZhdWx0IG9wdGlvbiBmb3IgY29s b3JzcGFjZS4KPiA+PiA+Pj4+Pj4+Pj4+Pgo+ID4+ID4+Pj4+Pj4+Pj4+IHYzOiBSZW1vdmVkIEFk b2JlIHJlZmVyZW5jZXMgZnJvbSBlbnVtIGRlZmluaXRpb25zIGFzIHBlcgo+ID4+ID4+Pj4+Pj4+ Pj4+IFZpbGxlLCBIYW5zIFZlcmt1aWwgYW5kIEpvbmFzIEthcmxtYW4gc3VnZ2VzdGlvbnMuIENo YW5nZWQKPiA+PiA+Pj4+Pj4+Pj4+PiBEZWZhdWx0IHRvIGFuIHVuc2V0IHN0YXRlIHdoZXJlIGRy aXZlciB3aWxsIGFzc2lnbiB0aGUKPiA+PiA+Pj4+Pj4+Pj4+PiBjb2xvcnNwYWNlIGlzIG5vdCBj aG9zZW4gYnkgdXNlciwgc3VnZ2VzdGVkIGJ5IFZpbGxlIGFuZAo+ID4+ID4+Pj4+Pj4+Pj4+IE1h YXJ0ZW4uIEFkZHJlc3NlZCBvdGhlciBtaXNjIHJldmlldyBjb21tZW50cyBmcm9tIE1hYXJ0ZW4u Cj4gPj4gPj4+Pj4+Pj4+Pj4gU3BsaXQgdGhlIGNoYW5nZXMgdG8gaGF2ZSBzZXBhcmF0ZSBjb2xv cnNwYWNlIHByb3BlcnR5IGZvciBEUCBhbmQKPiA+SERNSS4KPiA+PiA+Pj4+Pj4+Pj4+Pgo+ID4+ ID4+Pj4+Pj4+Pj4+IHY0OiBBZGRyZXNzZWQgQ2hyaXMgYW5kIFZpbGxlJ3MgcmV2aWV3IGNvbW1l bnRzLCBhbmQKPiA+PiA+Pj4+Pj4+Pj4+PiBjcmVhdGVkIGEgY29tbW9uIGNvbG9yc3BhY2UgcHJv cGVydHkgZm9yIERQIGFuZCBIRE1JLAo+ID4+ID4+Pj4+Pj4+Pj4+IGZpbHRlcmVkIHRoZSBsaXN0 IGJhc2VkIG9uIHRoZSBjb2xvcnNwYWNlcyBzdXBwb3J0ZWQgYnkgdGhlIHJlc3BlY3RpdmUKPiA+ cHJvdG9jb2wgc3RhbmRhcmQuCj4gPj4gPj4+Pj4+Pj4+Pj4KPiA+PiA+Pj4+Pj4+Pj4+PiB2NTog TWFkZSB0aGUgcHJvcGVydHkgY3JlYXRpb24gaGVscGVyIGFjY2VwdCBlbnVtIGxpc3QKPiA+PiA+ Pj4+Pj4+Pj4+PiBiYXNlZCBvbiBwbGF0Zm9ybSBjYXBhYmlsdGllcyBhcyBzdWdnZXN0ZWQgYnkg U2hhc2hhbmsuCj4gPj4gPj4+Pj4+Pj4+Pj4gQ29uc29saWRhdGVkIEhETUkgYW5kIERQIHByb3Bl cnR5IGNyZWF0aW9uIGluIHRoZSBjb21tb24gaGVscGVyLgo+ID4+ID4+Pj4+Pj4+Pj4+Cj4gPj4g Pj4+Pj4+Pj4+Pj4gdjY6IEFkZHJlc3NlZCBTaGFzaGFuaydzIHJldmlldyBjb21tZW50cy4KPiA+ PiA+Pj4+Pj4+Pj4+Pgo+ID4+ID4+Pj4+Pj4+Pj4+IHY3OiBBZGRlZCBkZWZpbmVzIGluc3RlYWQg b2YgZW51bSBpbiB1YXBpIGFzIHBlciBCcmlhbgo+ID4+ID4+Pj4+Pj4+Pj4+IFN0YXJrZXkncyBz dWdnZXN0aW9uIGluIG9yZGVyIHRvIGdvIHdpdGggc3RyaW5nIG1hdGNoaW5nIGF0IHVzZXJzcGFj ZS4KPiA+PiA+Pj4+Pj4+Pj4+PiBVcGRhdGVkIHRoZSBjb21taXQgbWVzc2FnZSB0byBhZGQgbW9y ZSBkZXRhaWxzIGFzIHdlbGwga2VybmVsIGRvY3MuCj4gPj4gPj4+Pj4+Pj4+Pj4KPiA+PiA+Pj4+ Pj4+Pj4+PiB2ODogQWRkcmVzc2VkIE1hYXJ0ZW4ncyByZXZpZXcgY29tbWVudHMuCj4gPj4gPj4+ Pj4+Pj4+Pj4KPiA+PiA+Pj4+Pj4+Pj4+PiB2OTogUmVtb3ZlZCBtYWNybyBkZWZpbmVzIGZyb20g dWFwaSBhcyBwZXIgQnJpYW4gU3RhcmtleQo+ID4+ID4+Pj4+Pj4+Pj4+IGFuZCBEYW5pZWwgU3Rv bmUncyBjb21tZW50cyBhbmQgbW92ZWQgdG8gZHJtIGluY2x1ZGUgZmlsZS4KPiA+PiA+Pj4+Pj4+ Pj4+PiBNb3ZlZCBiYWNrIHRvIG9sZGVyIGRlc2lnbiB3aXRoIGV4cG9zaW5nIGFsbCBIRE1JCj4g Pj4gPj4+Pj4+Pj4+Pj4gY29sb3JzcGFjZXMgdG8gdXNlcnNwYWNlIHNpbmNlIGluZm9mcmFtZSBj YXBhYmlsaXR5IGlzCj4gPj4gPj4+Pj4+Pj4+Pj4gdGhlcmUgZXZlbiBvbiBsZWdhY3kgcGxhdGZv cm1zLCBhcyBwZXIgVmlsbGUncyByZXZpZXcgY29tbWVudHMuCj4gPj4gPj4+Pj4+Pj4+Pj4KPiA+ PiA+Pj4+Pj4+Pj4+PiB2MTA6IEZpeGVkIHNwYXJzZSB3YXJuaW5ncywgdXBkYXRlZCB0aGUgUkIg ZnJvbSBNYWFydGVuIGFuZCBKYW5pJ3MKPiA+YWNrLgo+ID4+ID4+Pj4+Pj4+Pj4+Cj4gPj4gPj4+ Pj4+Pj4+Pj4gdjExOiBBZGRyZXNzZWQgVmlsbGUncyByZXZpZXcgY29tbWVudHMuIFVwZGF0ZWQg dGhlIE1hY3JvCj4gPj4gPj4+Pj4+Pj4+Pj4gbmFtaW5nIGFuZCBhZGRlZCBEQ0ktUDMgY29sb3Jz cGFjZSBhcyB3ZWxsIGRlZmluZWQgaW4gQ0VBIDg2MS5HCj4gPnNwZWMuCj4gPj4gPj4+Pj4+Pj4+ Pj4KPiA+PiA+Pj4+Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBVbWEgU2hhbmthciA8dW1hLnNoYW5r YXJAaW50ZWwuY29tPgo+ID4+ID4+Pj4+Pj4+Pj4+IEFja2VkLWJ5OiBKYW5pIE5pa3VsYSA8amFu aS5uaWt1bGFAaW50ZWwuY29tPgo+ID4+ID4+Pj4+Pj4+Pj4+IFJldmlld2VkLWJ5OiBTaGFzaGFu ayBTaGFybWEgPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+Cj4gPj4gPj4+Pj4+Pj4+Pj4gUmV2 aWV3ZWQtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0Cj4gPj4gPj4+Pj4+Pj4+Pj4gPG1hYXJ0ZW4ubGFu a2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiA+PiA+Pj4+Pj4+Pj4+PiAtLS0KPiA+PiA+Pj4+Pj4+ Pj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMgfCAgNCArKwo+ID4+ID4+ Pj4+Pj4+Pj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMgICB8IDc4Cj4gPj4g Pj4+Pj4+Pj4+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+PiA+ Pj4+Pj4+Pj4+PiAgICBpbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmggICAgICAgfCA1MAo+ID4r KysrKysrKysrKysrKysrKysrKysrKysrCj4gPj4gPj4+Pj4+Pj4+Pj4gICAgMyBmaWxlcyBjaGFu Z2VkLCAxMzIgaW5zZXJ0aW9ucygrKQo+ID4+ID4+Pj4+Pj4+Pj4+Cj4gPj4gPj4+Pj4+Pj4+Pj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYwo+ID4+ID4+Pj4+ Pj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jCj4gPj4gPj4+Pj4+Pj4+ Pj4gaW5kZXggOWExZjQxYS4uOWI1ZDQ0ZiAxMDA2NDQKPiA+PiA+Pj4+Pj4+Pj4+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMKPiA+PiA+Pj4+Pj4+Pj4+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMKPiA+PiA+Pj4+Pj4+Pj4+PiBAQCAtNzQ2 LDYgKzc0Niw4IEBAIHN0YXRpYyBpbnQKPiA+PiA+Pj4+Pj4+Pj4+PiBkcm1fYXRvbWljX2Nvbm5l Y3Rvcl9zZXRfcHJvcGVydHkoc3RydWN0Cj4gPj4gPj4+Pj4+Pj4+PiBkcm1fY29ubmVjdG9yICpj b25uZWN0b3IsCj4gPj4gPj4+Pj4+Pj4+Pj4gICAgCQkJcmV0dXJuIC1FSU5WQUw7Cj4gPj4gPj4+ Pj4+Pj4+Pj4gICAgCQl9Cj4gPj4gPj4+Pj4+Pj4+Pj4gICAgCQlzdGF0ZS0+Y29udGVudF9wcm90 ZWN0aW9uID0gdmFsOwo+ID4+ID4+Pj4+Pj4+Pj4+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBj b25uZWN0b3ItPmNvbG9yc3BhY2VfcHJvcGVydHkpIHsKPiA+PiA+Pj4+Pj4+Pj4+PiArCQlzdGF0 ZS0+Y29sb3JzcGFjZSA9IHZhbDsKPiA+PiA+Pj4+Pj4+Pj4+PiAgICAJfSBlbHNlIGlmIChwcm9w ZXJ0eSA9PSBjb25maWctPndyaXRlYmFja19mYl9pZF9wcm9wZXJ0eSkgewo+ID4+ID4+Pj4+Pj4+ Pj4+ICAgIAkJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPQo+ID4+ID4+Pj4+PiBkcm1fZnJh bWVidWZmZXJfbG9va3VwKGRldiwKPiA+PiA+Pj4+Pj4+Pj4+IE5VTEwsIHZhbCk7Cj4gPj4gPj4+ Pj4+Pj4+Pj4gICAgCQlpbnQgcmV0ID0KPiA+PiA+Pj4+Pj4gZHJtX2F0b21pY19zZXRfd3JpdGVi YWNrX2ZiX2Zvcl9jb25uZWN0b3Ioc3RhdGUsCj4gPj4gPj4+Pj4+Pj4+PiBmYik7IEBACj4gPj4g Pj4+Pj4+Pj4+Pj4gLTgxNCw2ICs4MTYsOCBAQCBzdGF0aWMgaW50Cj4gPj4gPj4+Pj4+Pj4+Pj4g ZHJtX2F0b21pY19jb25uZWN0b3Jfc2V0X3Byb3BlcnR5KHN0cnVjdAo+ID4+ID4+Pj4+Pj4+Pj4g ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4+ID4+Pj4+Pj4+Pj4+ICAgIAkJKnZhbCA9IHN0 YXRlLT5waWN0dXJlX2FzcGVjdF9yYXRpbzsKPiA+PiA+Pj4+Pj4+Pj4+PiAgICAJfSBlbHNlIGlm IChwcm9wZXJ0eSA9PSBjb25maWctPmNvbnRlbnRfdHlwZV9wcm9wZXJ0eSkgewo+ID4+ID4+Pj4+ Pj4+Pj4+ICAgIAkJKnZhbCA9IHN0YXRlLT5jb250ZW50X3R5cGU7Cj4gPj4gPj4+Pj4+Pj4+Pj4g Kwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbm5lY3Rvci0+Y29sb3JzcGFjZV9wcm9wZXJ0eSkg ewo+ID4+ID4+Pj4+Pj4+Pj4+ICsJCSp2YWwgPSBzdGF0ZS0+Y29sb3JzcGFjZTsKPiA+PiA+Pj4+ Pj4+Pj4+PiAgICAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25uZWN0b3ItPnNjYWxpbmdfbW9k ZV9wcm9wZXJ0eSkgewo+ID4+ID4+Pj4+Pj4+Pj4+ICAgIAkJKnZhbCA9IHN0YXRlLT5zY2FsaW5n X21vZGU7Cj4gPj4gPj4+Pj4+Pj4+Pj4gICAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0KPiA+PiA+ Pj4+Pj4+Pj4+PiBjb25uZWN0b3ItPmNvbnRlbnRfcHJvdGVjdGlvbl9wcm9wZXJ0eSkKPiA+PiA+ Pj4+Pj4+Pj4+PiB7IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5j Cj4gPj4gPj4+Pj4+Pj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jIGluZGV4 IDg0NzUzOTYuLjQzMDk4NzMKPiA+PiA+Pj4+Pj4+Pj4+PiAxMDA2NDQKPiA+PiA+Pj4+Pj4+Pj4+ PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCj4gPj4gPj4+Pj4+Pj4+Pj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+ID4+ID4+Pj4+Pj4+Pj4+IEBA IC04MjYsNiArODI2LDMzIEBAIGludAo+ID4+ID4+Pj4+Pj4+Pj4+IGRybV9kaXNwbGF5X2luZm9f c2V0X2J1c19mb3JtYXRzKHN0cnVjdAo+ID4+ID4+Pj4+Pj4+Pj4+IGRybV9kaXNwbGF5X2luZm8g KmluZm8sICB9Owo+ID4+ID4+Pj4+Pj4+Pj4+IERSTV9FTlVNX05BTUVfRk4oZHJtX2dldF9jb250 ZW50X3Byb3RlY3Rpb25fbmFtZSwKPiA+PiA+Pj4+Pj4+Pj4+IGRybV9jcF9lbnVtX2xpc3QpCj4g Pj4gPj4+Pj4+Pj4+Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3Byb3BfZW51bV9saXN0IGhk bWlfY29sb3JzcGFjZXNbXSA9IHsKPiA+PiA+Pj4+Pj4+Pj4+PiArCS8qIEZvciBEZWZhdWx0IGNh c2UsIGRyaXZlciB3aWxsIHNldCB0aGUgY29sb3JzcGFjZSAqLwo+ID4+ID4+Pj4+Pj4+Pj4+ICsJ eyBEUk1fTU9ERV9DT0xPUklNRVRSWV9ERUZBVUxULCAiRGVmYXVsdCIgfSwKPiA+PiA+Pj4+Pj4+ Pj4+PiArCS8qIFN0YW5kYXJkIERlZmluaXRpb24gQ29sb3JpbWV0cnkgYmFzZWQgb24gQ0VBIDg2 MSAqLwo+ID4+ID4+Pj4+Pj4+Pj4+ICsJeyBEUk1fTU9ERV9DT0xPUklNRVRSWV9TTVBURV8xNzBN LAo+ID4iU01QVEVfMTcwTSIgfSwKPiA+PiA+Pj4+Pj4+Pj4+PiArCXsgRFJNX01PREVfQ09MT1JJ TUVUUllfQlQ3MDksICJCVDcwOSIgfSwKPiA+PiA+Pj4+Pj4+Pj4+PiArCS8qIFN0YW5kYXJkIERl ZmluaXRpb24gQ29sb3JpbWV0cnkgYmFzZWQgb24gSUVDIDYxOTY2LTItNAo+ID4qLwo+ID4+ID4+ Pj4+Pj4+Pj4+ICsJeyBEUk1fTU9ERV9DT0xPUklNRVRSWV9YVllDQ182MDEsICJYVllDQ182MDEi IH0sCj4gPj4gPj4+Pj4+Pj4+Pj4gKwkvKiBIaWdoIERlZmluaXRpb24gQ29sb3JpbWV0cnkgYmFz ZWQgb24gSUVDIDYxOTY2LTItNCAqLwo+ID4+ID4+Pj4+Pj4+Pj4+ICsJeyBEUk1fTU9ERV9DT0xP UklNRVRSWV9YVllDQ183MDksICJYVllDQ183MDkiIH0sCj4gPj4gPj4+Pj4+Pj4+Pj4gKwkvKiBD b2xvcmltZXRyeSBiYXNlZCBvbiBJRUMgNjE5NjYtMi0xL0FtZW5kbWVudCAxICovCj4gPj4gPj4+ Pj4+Pj4+Pj4gKwl7IERSTV9NT0RFX0NPTE9SSU1FVFJZX1NZQ0NfNjAxLCAiU1lDQ182MDEiIH0s Cj4gPj4gPj4+Pj4+Pj4+Pj4gKwkvKiBDb2xvcmltZXRyeSBiYXNlZCBvbiBJRUMgNjE5NjYtMi01 IFszM10gKi8KPiA+PiA+Pj4+Pj4+Pj4+PiArCXsgRFJNX01PREVfQ09MT1JJTUVUUllfT1BZQ0Nf NjAxLCAib3BZQ0NfNjAxIiB9LAo+ID4+ID4+Pj4+Pj4+Pj4+ICsJLyogQ29sb3JpbWV0cnkgYmFz ZWQgb24gSUVDIDYxOTY2LTItNSAqLwo+ID4+ID4+Pj4+Pj4+Pj4+ICsJeyBEUk1fTU9ERV9DT0xP UklNRVRSWV9PUFJHQiwgIm9wUkdCIiB9LAo+ID4+ID4+Pj4+Pj4+Pj4+ICsJLyogQ29sb3JpbWV0 cnkgYmFzZWQgb24gSVRVLVIgQlQuMjAyMCAqLwo+ID4+ID4+Pj4+Pj4+Pj4+ICsJeyBEUk1fTU9E RV9DT0xPUklNRVRSWV9CVDIwMjBfWUNDLCAiQlQyMDIwX1lDQyIKPiA+fSwKPiA+PiA+Pj4+Pj4+ Pj4+PiArCS8qIENvbG9yaW1ldHJ5IGJhc2VkIG9uIElUVS1SIEJULjIwMjAgKi8KPiA+PiA+Pj4+ Pj4+Pj4+PiArCXsgRFJNX01PREVfQ09MT1JJTUVUUllfQlQyMDIwX1JHQiwgIkJUMjAyMF9SR0Ii Cj4gPn0sCj4gPj4gPj4+Pj4+Pj4+Pj4gKwkvKiBDb2xvcmltZXRyeSBiYXNlZCBvbiBJVFUtUiBC VC4yMDIwICovCj4gPj4gPj4+Pj4+Pj4+Pj4gKwl7IERSTV9NT0RFX0NPTE9SSU1FVFJZX0JUMjAy MF9DWUNDLAo+ID4iQlQyMDIwX0NZQ0MiIH0sCj4gPj4gPj4+Pj4+Pj4+Pj4gKwkvKiBBZGRlZCBh cyBwYXJ0IG9mIEFkZGl0aW9uYWwgQ29sb3JpbWV0cnkgRXh0ZW5zaW9uIGluCj4gPjg2MS5HICov Cj4gPj4gPj4+Pj4+Pj4+Pj4gKwl7IERSTV9NT0RFX0NPTE9SSU1FVFJZX0RDSV9QM19SR0JfRDY1 LCAiRENJLQo+ID4+ID4+Pj4+PiBQM19SR0JfRDY1IiB9LAo+ID4+ID4+Pj4+Pj4+Pj4+ICsJeyBE Uk1fTU9ERV9DT0xPUklNRVRSWV9EQ0lfUDNfUkdCX1RIRUFURVIsICJEQ0ktCj4gPj4gPj4+Pj4+ Pj4+PiBQM19SR0JfVGhlYXRlciIgfSwKPiA+PiA+Pj4+Pj4+Pj4+PiArfTsKPiA+PiA+Pj4+Pj4+ Pj4+PiArCj4gPj4gPj4+Pj4+Pj4+Pj4gICAgLyoqCj4gPj4gPj4+Pj4+Pj4+Pj4gICAgICogRE9D OiBzdGFuZGFyZCBjb25uZWN0b3IgcHJvcGVydGllcwo+ID4+ID4+Pj4+Pj4+Pj4+ICAgICAqCj4g Pj4gPj4+Pj4+Pj4+Pj4gQEAgLTE1NDgsNiArMTU3NSw1NyBAQCBpbnQKPiA+PiA+Pj4+Pj4+Pj4+ PiBkcm1fbW9kZV9jcmVhdGVfYXNwZWN0X3JhdGlvX3Byb3BlcnR5KHN0cnVjdCBkcm1fZGV2aWNl Cj4gPj4gPj4+Pj4+Pj4+Pj4gKmRldikKPiA+PiA+Pj4+Pj4+Pj4+PiBFWFBPUlRfU1lNQk9MKGRy bV9tb2RlX2NyZWF0ZV9hc3BlY3RfcmF0aW9fcHJvcGVydHkpOwo+ID4+ID4+Pj4+Pj4+Pj4+Cj4g Pj4gPj4+Pj4+Pj4+Pj4gICAgLyoqCj4gPj4gPj4+Pj4+Pj4+Pj4gKyAqIERPQzogc3RhbmRhcmQg Y29ubmVjdG9yIHByb3BlcnRpZXMKPiA+PiA+Pj4+Pj4+Pj4+PiArICoKPiA+PiA+Pj4+Pj4+Pj4+ PiArICogQ29sb3JzcGFjZToKPiA+PiA+Pj4+Pj4+Pj4+PiArICogICAgIGRybV9tb2RlX2NyZWF0 ZV9jb2xvcnNwYWNlX3Byb3BlcnR5IC0gY3JlYXRlIGNvbG9yc3BhY2UKPiA+PiA+Pj4+Pj4gcHJv cGVydHkKPiA+PiA+Pj4+Pj4+Pj4+PiArICogICAgIFRoaXMgcHJvcGVydHkgaGVscHMgc2VsZWN0 IGEgc3VpdGFibGUgY29sb3JzcGFjZSBiYXNlZCBvbiB0aGUKPiA+c2luawo+ID4+ID4+Pj4+Pj4+ Pj4+ICsgKiAgICAgY2FwYWJpbGl0eS4gTW9kZXJuIHNpbmsgZGV2aWNlcyBzdXBwb3J0IHdpZGVy IGdhbXV0IGxpa2UKPiA+QlQyMDIwLgo+ID4+ID4+Pj4+Pj4+Pj4+ICsgKiAgICAgVGhpcyBoZWxw cyBzd2l0Y2ggdG8gQlQyMDIwIG1vZGUgaWYgdGhlIEJUMjAyMCBlbmNvZGVkIHZpZGVvCj4gPj4g Pj4+Pj4+IHN0cmVhbQo+ID4+ID4+Pj4+Pj4+Pj4+ICsgKiAgICAgaXMgYmVpbmcgcGxheWVkIGJ5 IHRoZSB1c2VyLCBzYW1lIGZvciBhbnkgb3RoZXIgY29sb3JzcGFjZS4KPiA+VGhlcmVieQo+ID4+ ID4+Pj4+Pj4+Pj4+ICsgKiAgICAgZ2l2aW5nIGEgZ29vZCB2aXN1YWwgZXhwZXJpZW5jZSB0byB1 c2Vycy4KPiA+PiA+Pj4+Pj4+Pj4+PiArICoKPiA+PiA+Pj4+Pj4+Pj4+PiArICogICAgIFRoZSBl eHBlY3RhdGlvbiBmcm9tIHVzZXJzcGFjZSBpcyB0aGF0IGl0IHNob3VsZCBwYXJzZSB0aGUgRURJ RAo+ID4+ID4+Pj4+Pj4+Pj4+ICsgKiAgICAgYW5kIGdldCBzdXBwb3J0ZWQgY29sb3JzcGFjZXMu IFVzZSB0aGlzIHByb3BlcnR5IGFuZCBzd2l0Y2ggdG8KPiA+dGhlCj4gPj4gPj4+Pj4+Pj4+Pj4g KyAqICAgICBvbmUgc3VwcG9ydGVkLiBTaW5rIHN1cHBvcnRlZCBjb2xvcnNwYWNlcyBzaG91bGQg YmUgcmV0cmlldmVkCj4gPmJ5Cj4gPj4gPj4+Pj4+Pj4+Pj4gKyAqICAgICB1c2Vyc3BhY2UgZnJv bSBFRElEIGFuZCBkcml2ZXIgd2lsbCBub3QgZXhwbGljaXRseSBleHBvc2UgdGhlbS4KPiA+PiA+ Pj4+Pj4+Pj4+PiArICoKPiA+PiA+Pj4+Pj4+Pj4+PiArICogICAgIEJhc2ljYWxseSB0aGUgZXhw ZWN0YXRpb24gZnJvbSB1c2Vyc3BhY2UgaXM6Cj4gPj4gPj4+Pj4+Pj4+Pj4gKyAqICAgICAgLSBT ZXQgdXAgQ1JUQyBERUdBTU1BL0NUTS9HQU1NQSB0byBjb252ZXJ0IHRvIHNvbWUKPiA+c2luawo+ ID4+ID4+Pj4+Pj4+Pj4+ICsgKiAgICAgICAgY29sb3JzcGFjZQo+ID4+ID4+Pj4+Pj4+Pj4+ICsg KiAgICAgIC0gU2V0IHRoaXMgbmV3IHByb3BlcnR5IHRvIGxldCB0aGUgc2luayBrbm93IHdoYXQg aXQKPiA+PiA+Pj4+Pj4+Pj4+PiArICogICAgICAgIGNvbnZlcnRlZCB0aGUgQ1JUQyBvdXRwdXQg dG8uCj4gPj4gPj4+Pj4+Pj4+Pj4gKyAqICAgICAgLSBUaGlzIHByb3BlcnR5IGlzIGp1c3QgdG8g aW5mb3JtIHNpbmsgd2hhdCBjb2xvcnNwYWNlCj4gPj4gPj4+Pj4+Pj4+Pj4gKyAqICAgICAgICBz b3VyY2UgaXMgdHJ5aW5nIHRvIGRyaXZlLgo+ID4+ID4+Pj4+Pj4+Pj4+ICsgKgo+ID4+ID4+Pj4+ Pj4+Pj4+ICsgKiBDYWxsZWQgYnkgYSBkcml2ZXIgdGhlIGZpcnN0IHRpbWUgaXQncyBuZWVkZWQs IG11c3QgYmUKPiA+PiA+Pj4+Pj4+Pj4+PiArYXR0YWNoZWQgdG8gZGVzaXJlZAo+ID4+ID4+Pj4+ Pj4+Pj4+ICsgKiBjb25uZWN0b3JzLgo+ID4+ID4+Pj4+Pj4+Pj4+ICsgKi8KPiA+PiA+Pj4+Pj4+ Pj4+PiAraW50IGRybV9tb2RlX2NyZWF0ZV9jb2xvcnNwYWNlX3Byb3BlcnR5KHN0cnVjdAo+ID4+ ID4+Pj4+Pj4+Pj4+ICtkcm1fY29ubmVjdG9yCj4gPj4gPj4+Pj4+Pj4+Pj4gKypjb25uZWN0b3Ip IHsKPiA+PiA+Pj4+Pj4+Pj4+PiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3It PmRldjsKPiA+PiA+Pj4+Pj4+Pj4+PiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3A7Cj4gPj4g Pj4+Pj4+Pj4+Pj4gKwo+ID4+ID4+Pj4+Pj4+Pj4+ICsJaWYgKGNvbm5lY3Rvci0+Y29ubmVjdG9y X3R5cGUgPT0KPiA+PiA+Pj4+Pj4gRFJNX01PREVfQ09OTkVDVE9SX0hETUlBIHx8Cj4gPj4gPj4+ Pj4+Pj4+Pj4gKwkgICAgY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSA9PQo+ID4+ID4+Pj4+PiBE Uk1fTU9ERV9DT05ORUNUT1JfSERNSUIpIHsKPiA+PiA+Pj4+Pj4+Pj4+PiArCQlwcm9wID0gZHJt X3Byb3BlcnR5X2NyZWF0ZV9lbnVtKGRldiwKPiA+PiA+Pj4+Pj4+Pj4+IERSTV9NT0RFX1BST1Bf RU5VTSwKPiA+PiA+Pj4+Pj4+Pj4+PiArCQkJCQkJIkNvbG9yc3BhY2UiLAo+ID4+ID4+Pj4+Pj4+ Pj4+ICsJCQkJCQloZG1pX2NvbG9yc3BhY2VzLAo+ID4+ID4+Pj4+Pj4+Pj4+ICsKPiA+PiA+Pj4+ Pj4+Pj4+IAlBUlJBWV9TSVpFKGhkbWlfY29sb3JzcGFjZXMpKTsKPiA+PiA+Pj4+Pj4+Pj4+PiAr CQlpZiAoIXByb3ApCj4gPj4gPj4+Pj4+Pj4+Pj4gKwkJCXJldHVybiAtRU5PTUVNOwo+ID4+ID4+ Pj4+Pj4+Pj4+ICsJfSBlbHNlIHsKPiA+PiA+Pj4+Pj4+Pj4+PiArCQlEUk1fREVCVUdfS01TKCJD b2xvcnNwYWNlIHByb3BlcnR5IG5vdAo+ID4+ID4+Pj4+PiBzdXBwb3J0ZWRcbiIpOwo+ID4+ID4+ Pj4+Pj4+Pj4+ICsJCXJldHVybiAwOwo+ID4+ID4+Pj4+Pj4+Pj4+ICsJfQo+ID4+ID4+Pj4+Pj4+ Pj4+ICsKPiA+PiA+Pj4+Pj4+Pj4+PiArCWNvbm5lY3Rvci0+Y29sb3JzcGFjZV9wcm9wZXJ0eSA9 IHByb3A7Cj4gPj4gPj4+Pj4+Pj4+Pj4gKwo+ID4+ID4+Pj4+Pj4+Pj4+ICsJcmV0dXJuIDA7Cj4g Pj4gPj4+Pj4+Pj4+Pj4gK30KPiA+PiA+Pj4+Pj4+Pj4+PiArRVhQT1JUX1NZTUJPTChkcm1fbW9k ZV9jcmVhdGVfY29sb3JzcGFjZV9wcm9wZXJ0eSk7Cj4gPj4gPj4+Pj4+Pj4+Pj4gKwo+ID4+ID4+ Pj4+Pj4+Pj4+ICsvKioKPiA+PiA+Pj4+Pj4+Pj4+PiAgICAgKiBkcm1fbW9kZV9jcmVhdGVfY29u dGVudF90eXBlX3Byb3BlcnR5IC0gY3JlYXRlCj4gPj4gPj4+Pj4+Pj4+Pj4gY29udGVudCB0eXBl Cj4gPj4gPj4+Pj4+IHByb3BlcnR5Cj4gPj4gPj4+Pj4+Pj4+Pj4gICAgICogQGRldjogRFJNIGRl dmljZQo+ID4+ID4+Pj4+Pj4+Pj4+ICAgICAqCj4gPj4gPj4+Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBh L2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+ID4+ID4+Pj4+Pj4+Pj4+IGIvaW5jbHVkZS9k cm0vZHJtX2Nvbm5lY3Rvci5oIGluZGV4IDk5NDE2MTMuLjU4ZGI2NmUKPiA+PiA+Pj4+Pj4+Pj4+ PiAxMDA2NDQKPiA+PiA+Pj4+Pj4+Pj4+PiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9y LmgKPiA+PiA+Pj4+Pj4+Pj4+PiArKysgYi9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKPiA+ PiA+Pj4+Pj4+Pj4+PiBAQCAtMjUzLDYgKzI1Myw0MiBAQCBlbnVtIGRybV9wYW5lbF9vcmllbnRh dGlvbiB7Cj4gPj4gPj4+Pj4+Pj4+Pj4gICAgCURSTV9NT0RFX1BBTkVMX09SSUVOVEFUSU9OX1JJ R0hUX1VQLAo+ID4+ID4+Pj4+Pj4+Pj4+ICAgIH07Cj4gPj4gPj4+Pj4+Pj4+Pj4KPiA+PiA+Pj4+ Pj4+Pj4+PiArLyoKPiA+PiA+Pj4+Pj4+Pj4+PiArICogVGhpcyBpcyBhIGNvbnNvbGlkYXRlZCBj b2xvcmltZXRyeSBsaXN0IHN1cHBvcnRlZCBieQo+ID4+ID4+Pj4+Pj4+Pj4+ICtIRE1JIGFuZAo+ ID4+ID4+Pj4+Pj4+Pj4+ICsgKiBEUCBwcm90b2NvbCBzdGFuZGFyZC4gVGhlIHJlc3BlY3RpdmUg Y29ubmVjdG9ycyB3aWxsCj4gPj4gPj4+Pj4+Pj4+Pj4gK3JlZ2lzdGVyCj4gPj4gPj4+Pj4+Pj4+ Pj4gKyAqIGEgcHJvcGVydHkgd2l0aCB0aGUgc3Vic2V0IG9mIHRoaXMgbGlzdCAoc3VwcG9ydGVk IGJ5Cj4gPj4gPj4+Pj4+Pj4+Pj4gK3RoYXQKPiA+PiA+Pj4+Pj4+Pj4+PiArICogcmVzcGVjdGl2 ZSBwcm90b2NvbCkuIFVzZXJzcGFjZSB3aWxsIHNldCB0aGUKPiA+PiA+Pj4+Pj4+Pj4+PiArY29s b3JzcGFjZSB0aHJvdWdoCj4gPj4gPj4+Pj4+Pj4+Pj4gKyAqIGEgY29sb3JzcGFjZSBwcm9wZXJ0 eSB3aGljaCB3aWxsIGJlIGNyZWF0ZWQgYW5kCj4gPj4gPj4+Pj4+Pj4+Pj4gK2V4cG9zZWQgdG8K PiA+PiA+Pj4+Pj4+Pj4+PiArICogdXNlcnNwYWNlLgo+ID4+ID4+Pj4+Pj4+Pj4+ICsgKi8KPiA+ PiA+Pj4+Pj4+Pj4+PiArCj4gPj4gPj4+Pj4+Pj4+Pj4gKy8qIEZvciBEZWZhdWx0IGNhc2UsIGRy aXZlciB3aWxsIHNldCB0aGUgY29sb3JzcGFjZSAqLwo+ID4+ID4+Pj4+Pj4+Pj4+ICsjZGVmaW5l IERSTV9NT0RFX0NPTE9SSU1FVFJZX0RFRkFVTFQJCQkwCj4gPj4gPj4+Pj4+Pj4+Pj4gKy8qIENF QSA4NjEgTm9ybWFsIENvbG9yaW1ldHJ5IG9wdGlvbnMgKi8KPiA+PiA+Pj4+Pj4+Pj4+PiArI2Rl ZmluZSBEUk1fTU9ERV9DT0xPUklNRVRSWV9OT19EQVRBCQkJMAo+ID4+ID4+Pj4+Pj4+Pj4+ICsj ZGVmaW5lIERSTV9NT0RFX0NPTE9SSU1FVFJZX1NNUFRFXzE3ME0KPiA+PiA+Pj4+Pj4+PiAJMQo+ ID4+ID4+Pj4+Pj4+Pj4+ICsjZGVmaW5lIERSTV9NT0RFX0NPTE9SSU1FVFJZX0JUNzA5CQkJMgo+ ID4+ID4+Pj4+Pj4+Pj4gU3RpbGwgbWlzc2luZyB0aGUgWUNiQ3IgaW5mb3JtYXRpb24gaW4gdGhl c2UgdHdvLgo+ID4+ID4+Pj4+Pj4+PiBBcyBwZXIgQ1RBIDg2MS5HIHNwZWMsIHdlIGhhdmUgdGhl c2UgYXMgb25seSBTTVBURV8xNzBNIGFuZAo+ID4+ID4+Pj4+Pj4+PiBJVFUtUiBCVDcwOSwgd2l0 aCBubyBzcGVjaWZpYyBtZW50aW9uIG9mIFJHQiBvciBZQ2JDci4KPiA+PiA+Pj4+Pj4+Pj4gSGVu Y2UsIGtlcHQgaXQgYXMgcGVyIHNwZWMuIFdlIHNlZW0gdG8gaGF2ZSBhIGNvbW1vbiBmaWVsZCBm b3IgYm90aCBhcwo+ID5wZXIgQ1RBIHNwZWMuCj4gPj4gPj4+Pj4+Pj4+IENvcnJlY3QgbWUgaWYg bXkgdW5kZXJzdGFuZGluZyBpcyB3cm9uZy4KPiA+PiA+Pj4+Pj4+PiBDaGVjawo+ID4+ID4+Pj4+ Pj4+ICJUYWJsZSAxNCBQaWN0dXJlIENvbG9yaW1ldHJ5IEluZGljYXRlZCBieSB0aGUgUkdCIG9y IFlDIEIgQwo+ID4+ID4+Pj4+Pj4+IFIgKFkpLCBDb2xvcmltZXRyeQo+ID4+ID4+Pj4+Pj4+IChD KSBhbmQgRXh0ZW5kZWQgQ29sb3JpbWV0cnkgKEVDKSBGaWVsZCBTZXR0aW5ncyIKPiA+PiA+Pj4+ Pj4+IFRoZXNlICBZMiBZMSBZMCB2YWx1ZXMgc2hvdWxkIGJlIHByb2dyYW1tZWQgc2VwYXJhdGVs eSBhbmQgbm90Cj4gPj4gPj4+Pj4+PiB0aHJvdWdoIHRoZSBjb2xvcnNwYWNlIGFzIHRoZXkgYXJl IGRhdGEgZm9ybWF0cyBpc24ndCBpdC4gSQo+ID4+ID4+Pj4+Pj4gZmVlbCB0aGlzIHNob3VsZCBn ZXQgY29udHJvbGxlZCBzZXBhcmF0ZWx5IGluZGVwZW5kZW50IG9mCj4gPj4gPj4+Pj4+PiBjb2xv cmltZXRyeSwgb3Igc2hvdWxkIHdlIGFkZCBhbGwgdGhlIFlDYkNyIGFuZCBSR0IgdmVyc2lvbnMK PiA+PiA+Pj4+Pj4+IGFuZCBwcm9ncmFtIHRoZW0gYXMgcGFydCBvZiB0aGlzIHByb3BlcnR5IGl0 c2VsZgo+ID4+ID4+Pj4+PiA/Cj4gPj4gPj4+Pj4+Cj4gPj4gPj4+Pj4+IEkgZG9uJ3QgdGhpbmsg d2UgY2FuIHNlcGFyYXRlIHRoZW0uIFRoZSB2YWx1ZXMgb2YgdGhlCj4gPj4gPj4+Pj4+IGNvbG9y aW1ldHJ5IGJpdHMgZG9lc24ndCBtZWFuIGFueXRoaW5nIHdpdGhvdXQgdGhlIFkgYml0cy4gSXQK PiA+PiA+Pj4+Pj4gd291bGQgbWFrZSB0aGUgdWFwaSBraW5kYSBjcmF6eSBpZiB3ZSBhbGxvdyB0 aGUgdXNlciB0byBzcGVjaWZ5Cj4gPj4gPj4+Pj4+IEJULjIwMjAgUkdCIGJ1dCB0aGVuIHdlIGFj dHVhbGx5IHNpZ25hbCBCVC4yMDIwIFlDYkNyIGluIHRoZQo+ID4+ID4+Pj4+PiBpbmZvZnJhbWUs IG9yIHZpY2UgdmVyc2EuIE9yIHdlIGp1c3Qgc2lnbmFsIGEgdG90YWxseSBpbnZhbGlkIHZhbHVl IGZvciBhbGwgdGhlCj4gPm90aGVyIGNhc2VzLgo+ID4+ID4+Pj4+IEkgYWdyZWUgd2UgbmVlZCBk YXRhIGZvcm1hdCBhbHNvIHRvIGJlIHNlbmQgYWxvbmcgd2l0aAo+ID4+ID4+Pj4+IGNvbG9yc3Bh Y2UsIGJ1dCB0aGV5IGFyZSAyIGRpZmZlcmVudCB0aGluZ3MuIFRvIGhhbmRsZSBZQ2JDciBhbmQK PiA+PiA+Pj4+PiB2YXJpYW50cyAoWVVWIDQ0NCwgNDIwIG9yIDQyMikgYW5kIFJHQiBJIGZlZWwg d2Ugc2hvdWxkIGV4cG9zZSBhCj4gPj4gPj4+Pj4gZGlmZmVyZW50IEFQSSBpbnN0ZWFkIG9mIHVz aW5nIHRoaXMgb25lLiAgV2UgY2FuIGNyZWF0ZSBhbiBvdXRwdXQgY3NjIHByb3BlcnR5Cj4gPndo aWNoIGRvZXMgdGhhdCBqb2IgZm9yIHVzLgo+ID4+ID4+Pj4+Cj4gPj4gPj4+Pj4gU28gZnJvbSBh IHVzZXIgcGVyc3BlY3RpdmUgaWYgd2Ugd2FudHMgdG8gc2V0IGEgY29sb3JzcGFjZSB3ZQo+ID4+ ID4+Pj4+IHNob3VsZCB1c2UgdGhlIG9uZSBpbiB0aGlzIHNlcmllcyBhbmQgc2V0IHRoZSBkYXRh IGZvcm1hdAo+ID4+ID4+Pj4+IHNlcGFyYXRlbHkgdXNpbmcgdGhlIG90aGVyIGludGVyZmFjZS4g Qm90aCB3aWxsIGJlIHJlY2VpdmVkIGluIHRoZSBzdGF0ZQo+ID52YXJpYWJsZXMgYW5kIGxhdGVy IEluZm9mcmFtZSBwYWNrZXQgd2lsbCBiZSBjcmVhdGVkIGFjY29yZGluZ2x5Lgo+ID4+ID4+Pj4+ IENsdWJiaW5nIGJvdGggaW4gb25lIG1heSBsZWFkIHRvIGxvdCBvZiBwb3NzaWJsZSBjb21iaW5h dGlvbnMKPiA+PiA+Pj4+PiBleHBvc2VkIGFzIGVudW0gd2hpY2ggbWF5IG5vdCBsb29rIHRvbyBj bGVhbi4KPiA+PiA+Pj4+Pgo+ID4+ID4+Pj4+IFdoYXQgZG8geW91IHNheSBhYm91dCBoYW5kbGlu ZyB0aGF0IGluIHRoZSBvdXRwdXQgY3NjIHByb3BlcnR5Lgo+ID4+ID4+Pj4+IEkgd2lsbCBnbyB3 aXRoIHdoYXQgeW91IHJlY29tbWVuZCAuCj4gPj4gPj4+PiBQcm9ncmFtbWluZyBZMlkxWTAgaXMg YWxyZWFkeSB0YWtlbiBjYXJlIG9mLCB3aGVuIHdlIGFkZGVkIHN1cHBvcnQgZm9yCj4gPllDQkNS IG91dHB1dHMgKDQ6MjowIGltcGxlbWVudGF0aW9uKS4KPiA+PiA+Pj4+IEluIGludGVsX2hkbWku YzppbnRlbF9oZG1pX3NldF9hdmlfaW5mb2ZyYW1lKCk6Cj4gPj4gPj4+Pgo+ID4+ID4+Pj4gaWYg KGNydGNfc3RhdGUtPm91dHB1dF9mb3JtYXQgPT0gSU5URUxfT1VUUFVUX0ZPUk1BVF9ZQ0JDUjQy MCkKPiA+PiA+Pj4+IAlmcmFtZS5hdmkuY29sb3JzcGFjZSA9IEhETUlfQ09MT1JTUEFDRV9ZVVY0 MjA7IGVsc2UgaWYKPiA+PiA+Pj4+IChjcnRjX3N0YXRlLT5vdXRwdXRfZm9ybWF0ID09IElOVEVM X09VVFBVVF9GT1JNQVRfWUNCQ1I0NDQpCj4gPj4gPj4+PiAJZnJhbWUuYXZpLmNvbG9yc3BhY2Ug PSBIRE1JX0NPTE9SU1BBQ0VfWVVWNDQ0OyBlbHNlCj4gPj4gPj4+PiAJZnJhbWUuYXZpLmNvbG9y c3BhY2UgPSBIRE1JX0NPTE9SU1BBQ0VfUkdCOwo+ID4+ID4+Pj4KPiA+PiA+Pj4+IElNTyBUaGlz IGxvb2tzIGxpa2UgYSBiZXR0ZXIgd2F5IHRvIGhhbmRsZSB0aGlzLCBpZSB3aGlsZSBhZGRpbmcg c3VwcG9ydCBmb3IgYQo+ID5uZXcgZm9ybWF0LCBhZGQgc3VwcG9ydCBmb3IgY29ycmVzcG9uZGlu ZyBBVkkgSUYgZmlsZWRzLiBUaGlzIHdpbGwgYWxzbyBtYWtlIHNjb3BlIG9mCj4gPnRoZSBwcm9w ZXJ0eSB1bmRlciBkaXNjdXNzaW9uIGxlc3MgY29tcGxpY2F0ZWQuCj4gPj4gPj4+IFRoYXQncyBh biBleGNlcHRpb25hbCBjYXNlLiBXZSdyZSBwcm9ncmFtbWluZyB0aGUgQ1NDIGluIHRoYXQgY2Fz ZQo+ID4+ID4+PiB0byBkbyB0aGUgUkdCLT5ZQ2JDciBjb252ZXJzaW9uIHdpdGhvdXQgdGVsbGlu ZyB1c2Vyc3BhY2UuIFNvIHdlCj4gPj4gPj4+IG11c3QgYWxzbyBjb25maWd1cmUgdGhlIFkgYml0 cyBhdXRvbWFnaWNhbGx5Lgo+ID4+ID4+Pgo+ID4+ID4+PiBXaGF0IHdlIHdhbnQgaXMgYSBjaGVj ayBsaWtlIHNvOgo+ID4+ID4+Pgo+ID4+ID4+PiBpZiAocHJvcC5jb2xvcnNwYWNlICE9IGRlZmF1 bHQgJiYgb3V0cHV0X2Zvcm1hdCAhPSBSR0IpCj4gPj4gPj4+ICAgICAgIHJldHVybiAtSU5WQUw7 Cj4gPj4gPj4+Cj4gPj4gPj4+IGJlY2F1c2Ugd2UgY2FuJ3Qgc2V0IHVwIHRoZSBDU0MgdG8gbWFr ZSBhIG1lc3Mgb2YgdGhlIHVzZXIncwo+ID4+ID4+PiBjYXJlZnVsbHkgY3JhZnRlZCBwaXhlbHMu IFRoZSBwaXhlbHMgbWlnaHQgbm90IGV2ZW4gY29udGFpbiBSR0IKPiA+PiA+Pj4gZGF0YSBpbiB0 aGF0IGNhc2UuCj4gPj4gPj4+Cj4gPj4gPj4+IFdlJ2xsIG5lZWQgdG8gZXh0ZW5kIHRoYXQgYSBs aXR0bGUgYml0IG9uY2Ugd2UgYWRkIHRoZSBleHBsaWNpdAo+ID4+ID4+PiBjb250cm9sIG9mIHRo ZSBvdXRwdXQgQ1NDIHZpYSBhbm90aGVyIHByb3AuIEJ1dCB0aGUgc2FtZSBwcmluY2lwbGUKPiA+ PiA+Pj4gc2hvdWxkIGhvbGQuCj4gPj4gPj4gSW4gZmFjdCwgSSByZW1lbWJlciB0aGUgcmVhc29u IHdoeSB3ZSBjcmVhdGVkIGluZnJhc3RydWN0dXJlIGxpa2UKPiA+PiA+PiB0aGlzLCBzbyB0aGF0 LCBnb2luZyBmb3J3YXJkLCB3ZSBjb3VsZCBqdXN0IGFkZCBhIG91dHB1dF9mb3JtYXQKPiA+PiA+ PiBwcm9wZXJ0eSwgZm9yIHdoaWNoLCB3ZSBhbHJlYWR5IGhhdmUgdGhlIGJhY2tlZCBhbmQgdGhl IHN0YXRlCj4gPj4gPj4gdmFyaWFibGVzIHJlYWR5LiBUaGUgY29uc3VtZSBvZiB0aGlzIGJhY2tl bmQgY2FuIGJlIHRoaXMKPiA+PiA+PiBkcm1fcHJvcGVydHkgKGxpa2Ugb3V0cHV0X2Zvcm1hdCks IG9yIGludGVybmFsIG1vZGVzZXQgbGlrZQo+ID4+ID4+IFlDQkNSNDoyOjAgb25seSBtb2RlcyBp biBFRElELiBJdCB3aWxsIGFsc28gYmUgaW5saW5lIHdpdGggeW91ciBzdWdnZXN0aW9uIG9mIENT Qwo+ID5wcm9wZXJ0eS4KPiA+PiA+Pgo+ID4+ID4+IFNvIHdlIGNhbiBoYXZlIHR3byBwcm9wZXJ0 aWVzIGNvbG9yc3BhY2UgKEJUMjAyMC9TUkdCL1JFQzcwOSkgYW5kCj4gPj4gPj4gY29sb3JfbW9k ZWwvY29sb3JfZm9ybWF0KFJHQi9ZQ0JDUjQ0NC80MjApLCBhbmQgYSBjb21iaW5hdGlvbiBvZgo+ ID4+ID4+IGJvdGggc2hvdWxkIHByb2dyYW0gdGhlIG91dHB1dCBBVkkgaW5mby1mcmFtZXMuIERv ZXMgaXQgYXBwZWFsIHlvdSA/Cj4gPj4gPiBJJ20gbm90IHN1cmUgaXQncyBmZWFzaWJsZSB0byBz cGxpdCBpdCBsaWtlIHRoYXQuIFRoZSBjb21iaW5hdGlvbnMKPiA+PiA+IHN1cHBvcnRlZCBieSB0 aGUgaW5mb2ZyYW1lIGFyZSByYXRoZXIgc3BlY2lmaWMgc28gdHJ5aW5nIHRvIHNwbGl0IGl0Cj4g Pj4gPiB1cCBsZWFkcyB0byBlaXRoZXIgc3VwZXIgbGltaXRlZCB1YXBpLCBvciBvbmUgdGhhdCBl eHBvc2VzIGEgbG90IG9mCj4gPj4gPiBpbGxlZ2FsIGNvbWJpbmF0aW9ucy4gQWxzbyBEUCBoYXMg c2xpZ2h0bHkgZGlmZmVyZW50IHNldCBvZiB0aGluZ3MKPiA+PiA+IGl0IHN1cHBvcnRzIHdoaWNo IGFkZHMgbW9yZSBjb21wbGljYXRpb25zLgo+ID4+ID4KPiA+PiA+IFNvIEkgdGhpbmsgdGhlIGJl c3Qgb3B0aW9uIGlzIHN0aWxsIHRvIGluY2x1ZGUgdGhlIFk9eWVzL25vCj4gPj4gPiBpbmZvcm1h dGlvbiBpbiB0aGUgcHJvcCB2YWx1ZSBhbG9nbnNpZGUgdGhlIEMvRUMvQUNFIGJpdHMuCj4gPj4K PiA+PiBZZXMsIHlvdSBhcmUgcmlnaHQsIHRoaXMgY291bGQgYmUgYSBzaW1wbGVyIHdheSBvZiBk b2luZyB0aGluZ3MsIGJ1dAo+ID4+IHdpdGggYSBsaW1pdGVkIHNldCBvZiBjb21iaW5hdGlvbi4K PiA+Pgo+ID4+IENvbnNpZGVyIHRoaXMgZXhhbXBsZToKPiA+Pgo+ID4+IC0gSWYgYSBIRE1JIG1v bml0b3Igc3VwcG9ydHMgQlQyMDIwLCBidXQgZG9lc24ndCBzdXBwb3J0IFlDQkNSCj4gPj4gZm9y bWF0dGluZywgaG93IHRvIGhhbmRsZSB0aGlzIG9wdGlvbiA/IFRoaXMgbWVhbnMgd2UgaGF2ZSB0 bwo+ID4+IHNlbGVjdGl2ZWx5IHNob3cgQlQyMDIwX1JHQiBlbnVtIHZhbHVlIG9ubHkgbm90IEJU MjAyMF9ZQ0JDUl80NDQvNDIwLAo+ID4+Cj4gPj4gLSBUaGlzIGFsc28gbWVhbnMgd2UgaGF2ZSB0 byBwcm9iZSB0aGUgRURJRCBmaXJzdCwgYW5kIHRoZW4gY3JlYXRlCj4gPj4gdGhpcyBwcm9wZXJ0 eSwgd2hpY2ggbWVhbnMgd2Ugd2lsbCBiZSBkZXBlbmRlbnQgb24gdGhlIGhvdC1wbHVnIC8KPiA+ PiBkZXRlY3QgdG8gY3JlYXRlIHRoaXMgcHJvcGVydHksIGluc3RlYWQgb2YgZG9pbmcgdGhpcyBp biBoZG1pX2luaXQuCj4gPgo+ID5JTU8gd2UganVzdCBpZ25vcmUgdGhpcyBwcm9ibGVtIGFuZCBl eHBvc2UgYWxsIHRoZSBsZWdhbCBvcHRpb25zIHRoZSBzcGVjIGhhcy4KPiA+Cj4gPklmIHVzZXJz cGFjZSB3YW50cyB0byBrbm93IHdoYXQncyBhY3R1YWxseSBzdXBwb3J0ZWQgaXQgd2lsbCBoYXZl IHRvIHBhcnNlIHRoZSBFRElELgo+ID5XZSBjb3VsZCB0aGluayBhYm91dCBwYXJzaW5nIHRoYXQg aW4gdGhlIGtlcm5lbCB0b28gYW5kIGV4cG9zaW5nIGFuIGltbXV0YWJsZSBwcm9wCj4gPnRvIGV4 cG9zZSB0aGF0IGluZnJvbWF0aW9uLiBCdXQgSSdtIG5vdCBzdXJlIHRoaXMgaXMgc3VjaCBhIGdv b2QgaWRlYSBzaW5jZSB3ZSdkCj4gPmJhc2ljYWxseSBkcm93biBpbiBwcm9wZXJ0aWVzIGlmIHdl IHRyeSB0byBleHBvc2UgYWxsIHRoZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBFRElELiBBCj4gPmJl dHRlciBsb25nIHRlcm0gcGxhbiB3b3VsZCBiZSBhIGNvbW1vbiBFRElEIHBhcnNpbmcgbGlicmFy eSBmb3IgZXZlcnlvbmUuCj4gPgo+ID4+Cj4gPj4gRXZlbiBtb3JlIGNvbXBsZXggc2NlbmFyaW8g d291bGQgYmUgd2hlbiB0aGUgb3V0cHV0IHN1cHBvcnQgZGVwZW5kcyBvbgo+ID4+IG1vbml0b3Ig KyBwbGF0Zm9ybSBib3RoLiBUaGlzIG1lYW5zIHdlIGhhdmUgdG8gcHJvdmlkZSB0aGlzCj4gPj4g Y29tYmluYXRpb24gdXBmcm9udCB3aGlsZSBjcmVhdGluZyB0aGlzIHByb3BlcnR5Lgo+ID4+Cj4g Pj4gT24gdGhlIG90aGVyIGhhbmQsIHRoZSBpbnZhbGlkIGNvbWJpbmF0aW9uIG9mIHR3byBwcm9w ZXJ0eSwgaXQgd291bGQKPiA+PiBiZSBlYXN5IHRvIGRldGVjdCBhdCBydW50aW1lIGF0IGF0b21p Y19jaGVjaygpIGFuZCBmYWlsIHRoZSBjb21taXQuCj4gPj4KPiA+Pgo+ID4+IFRoaXMgaXMganVz dCBhIHRob3VnaHQsIGhvbmVzdGx5IEkgYW0gYWxzbyBub3Qgc3VyZSB3aGF0IHdvdWxkIGJlIHRo ZQo+ID4+IG1vc3QgYXBwcm9wcmlhdGUgc29sdXRpb24gZm9yIHRoaXMsIGJ1dCBzZWVtcyBpdHMg c2ltcGxlciB0byBjcmVhdGUKPiA+PiBwcm9wZXJ0eSB3aXRoIHR3byBwcm9wZXJ0aWVzLCBtaWdo dCBiZSBkaWZmaWN1bHQgdG8gbWFuYWdlIGF0IHJ1bnRpbWUuCj4gPj4KPiA+PiBXaXRoIG9uZSBw cm9wZXJ0eSwgaXRzIHZlcnkgZGlmZmljdWx0IHRvIGNyZWF0ZSwgYnV0IG9uY2UgY3JlYXRlZCwg aXQKPiA+PiB3b3VsZCB3b3JrIHN1cmUgc2hvdC4KPiA+Cj4gPkkgZG9uJ3QgdGhpbmsgaXQncyB0 aGF0IGRpZmZpY3VsdC4gSnVzdCBleHBvc2UgYWxsIHRoZSB0aGluZ3MgaW4gdGhlCj4gPkNUQS04 NjEgYmlnIHRhYmxlLiBXaGljaCBtZWFucyBpbmNsdWRpbmcgdGhlIFkgYml0IHRvby4KPiAKPiBI aSBWaWxsZSwKPiBPayBTbyB3aWxsIHRyeSB0byBkbyB0aGlzIHdheSB0aGVuOgo+IAo+IEhhdmUg YSBzZXBhcmF0ZSBlbnVtIG9wdGlvbiBsaWtlIAo+IERSTV9NT0RFX0NPTE9SSU1FVFJZX0JUNzA5 X1lVVjQ0NAo+IERSTV9NT0RFX0NPTE9SSU1FVFJZX0JUNzA5X1lVVjQyMAo+IERSTV9NT0RFX0NP TE9SSU1FVFJZX0JUNzA5X1lVVjQyMgoKSG1tLiBJJ20gbm90IHF1aXRlIGNvbnZpbmNlZCB0aGF0 IHdlIHdhbnQgdGhlIHN1YnNhbXBsaW5nIGluZm9ybWF0aW9uCmluY2x1ZGVkIGhlcmUuIFRoYXQg d2lsbCBtYWtlIGl0IGRpZmZpY3VsdCB0byBkbyB0aGUgb3V0cHV0IGNzYwpwcm9wZXJ0eSBpbiBh IHdheSB0aGF0IGxlYXZlcyB0aGUgZHJpdmVyIGZyZWUgdG8gc2VsZWN0IHRoZSBzdWJzYW1wbGlu ZwphdXRvbWFnaWNhbGx5LCB3aGljaCB3ZSBwcm9hYmx5IHN0aWxsIHdhbnQgYmVjYXVzZSBvZiB0 aG9zZSBhbm5veWluZwpIRE1JIDIuMCBtb25pdG9ycy4KCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50 ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==