From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sharma, Shashank" Subject: Re: [v11 1/4] drm: Add HDMI colorspace property Date: Fri, 8 Feb 2019 19:36:24 +0530 Message-ID: References: <1549382617-8951-2-git-send-email-uma.shankar@intel.com> <20190205163133.GS20097@intel.com> <20190205181307.GV20097@intel.com> <20190207190324.GM20097@intel.com> <20190208125239.GQ20097@intel.com> <20190208133003.GR20097@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190208133003.GR20097@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: "intel-gfx@lists.freedesktop.org" , "Syrjala, Ville" , "Lankhorst, Maarten" , "dri-devel@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org UmVnYXJkcwoKU2hhc2hhbmsKCk9uIDIvOC8yMDE5IDc6MDAgUE0sIFZpbGxlIFN5cmrDpGzDpCB3 cm90ZToKPiBPbiBGcmksIEZlYiAwOCwgMjAxOSBhdCAwNjozNjozOVBNICswNTMwLCBTaGFybWEs IFNoYXNoYW5rIHdyb3RlOgo+PiBSZWdhcmRzCj4+Cj4+IFNoYXNoYW5rCj4+Cj4+IE9uIDIvOC8y MDE5IDY6MjIgUE0sIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPj4+IE9uIEZyaSwgRmViIDA4LCAy MDE5IGF0IDEyOjM2OjI1UE0gKzAwMDAsIFNoYXJtYSwgU2hhc2hhbmsgd3JvdGU6Cj4+Pj4gUmVn YXJkcwo+Pj4+IFNoYXNoYW5rCj4+Pj4KPj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0K Pj4+Pj4gRnJvbTogSW50ZWwtZ2Z4IFttYWlsdG86aW50ZWwtZ2Z4LWJvdW5jZXNAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnXSBPbiBCZWhhbGYgT2YKPj4+Pj4gU2hhbmthciwgVW1hCj4+Pj4+IFNlbnQ6 IEZyaWRheSwgRmVicnVhcnkgOCwgMjAxOSA1OjQ1IFBNCj4+Pj4+IFRvOiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+Pj4+PiBDYzogaW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZzsgU3lyamFsYSwgVmlsbGUgPHZpbGxlLnN5cmphbGFAaW50ZWwu Y29tPjsgZHJpLQo+Pj4+PiBkZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IExhbmtob3JzdCwg TWFhcnRlbiA8bWFhcnRlbi5sYW5raG9yc3RAaW50ZWwuY29tPgo+Pj4+PiBTdWJqZWN0OiBSZTog W0ludGVsLWdmeF0gW3YxMSAxLzRdIGRybTogQWRkIEhETUkgY29sb3JzcGFjZSBwcm9wZXJ0eQo+ Pj4+Pgo+Pj4+Pj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+Pj4+Pj4+Pj4gRnJv bTogVmlsbGUgU3lyasOkbMOkIFttYWlsdG86dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb21d Cj4+Pj4+Pj4+Pj4gU2VudDogVHVlc2RheSwgRmVicnVhcnkgNSwgMjAxOSAxMDowMiBQTQo+Pj4+ Pj4+Pj4+IFRvOiBTaGFua2FyLCBVbWEgPHVtYS5zaGFua2FyQGludGVsLmNvbT4KPj4+Pj4+Pj4+ PiBDYzogaW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsKPj4+Pj4+Pj4+PiBkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBTeXJqYWxhLCBWaWxsZQo+Pj4+Pj4+Pj4+IDx2aWxs ZS5zeXJqYWxhQGludGVsLmNvbT47IExhbmtob3JzdCwgTWFhcnRlbgo+Pj4+Pj4+Pj4+IDxtYWFy dGVuLmxhbmtob3JzdEBpbnRlbC5jb20+Cj4+Pj4+Pj4+Pj4gU3ViamVjdDogUmU6IFtJbnRlbC1n ZnhdIFt2MTEgMS80XSBkcm06IEFkZCBIRE1JIGNvbG9yc3BhY2UKPj4+Pj4+Pj4+PiBwcm9wZXJ0 eQo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gT24gVHVlLCBGZWIgMDUsIDIwMTkgYXQgMDk6MzM6MzRQ TSArMDUzMCwgVW1hIFNoYW5rYXIgd3JvdGU6Cj4+Pj4+Pj4+Pj4+IENyZWF0ZSBhIG5ldyBjb25u ZWN0b3IgcHJvcGVydHkgdG8gcHJvZ3JhbSBjb2xvcnNwYWNlIHRvIHNpbmsgZGV2aWNlcy4KPj4+ Pj4+Pj4+Pj4gTW9kZXJuIHNpbmsgZGV2aWNlcyBzdXBwb3J0IG1vcmUgdGhhbiAxIHR5cGUgb2Yg Y29sb3JzcGFjZSBsaWtlCj4+Pj4+Pj4+Pj4+IDYwMSwgNzA5LCBCVDIwMjAgZXRjLiBUaGlzIGhl bHBzIHRvIHN3aXRjaCBiYXNlZCBvbiBjb250ZW50Cj4+Pj4+Pj4+Pj4+IHR5cGUgd2hpY2ggaXMg dG8gYmUgZGlzcGxheWVkLiBUaGUgZGVjaXNpb24gbGllcyB3aXRoCj4+Pj4+Pj4+Pj4+IGNvbXBv c2l0b3JzIGFzIHRvIGluIHdoaWNoIHNjZW5hcmlvcywgYSBwYXJ0aWN1bGFyIGNvbG9yc3BhY2Ug d2lsbCBiZSBwaWNrZWQuCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IFRoaXMgd2lsbCBiZSBoZWxw ZnVsIG1vc3RseSB0byBzd2l0Y2ggdG8gaGlnaGVyIGdhbXV0Cj4+Pj4+Pj4+Pj4+IGNvbG9yc3Bh Y2VzIGxpa2UKPj4+Pj4+Pj4+Pj4gQlQyMDIwIHdoZW4gdGhlIG1lZGlhIGNvbnRlbnQgaXMgZW5j b2RlZCBhcyBCVDIwMjAuIFRoZXJlYnkKPj4+Pj4+Pj4+Pj4gZ2l2aW5nIGEgZ29vZCB2aXN1YWwg ZXhwZXJpZW5jZSB0byB1c2Vycy4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gVGhlIGV4cGVjdGF0 aW9uIGZyb20gdXNlcnNwYWNlIGlzIHRoYXQgaXQgc2hvdWxkIHBhcnNlIHRoZSBFRElECj4+Pj4+ Pj4+Pj4+IGFuZCBnZXQgc3VwcG9ydGVkIGNvbG9yc3BhY2VzLiBVc2UgdGhpcyBwcm9wZXJ0eSBh bmQgc3dpdGNoIHRvCj4+Pj4+Pj4+Pj4+IHRoZSBvbmUgc3VwcG9ydGVkLiBTaW5rIHN1cHBvcnRl ZCBjb2xvcnNwYWNlcyBzaG91bGQgYmUKPj4+Pj4+Pj4+Pj4gcmV0cmlldmVkIGJ5IHVzZXJzcGFj ZSBmcm9tIEVESUQgYW5kIGRyaXZlciB3aWxsIG5vdCBleHBsaWNpdGx5Cj4+Pj4+Pj4+Pj4+IGV4 cG9zZQo+Pj4+Pj4gdGhlbS4KPj4+Pj4+Pj4+Pj4gQmFzaWNhbGx5IHRoZSBleHBlY3RhdGlvbiBm cm9tIHVzZXJzcGFjZSBpczoKPj4+Pj4+Pj4+Pj4gICAgLSBTZXQgdXAgQ1JUQyBERUdBTU1BL0NU TS9HQU1NQSB0byBjb252ZXJ0IHRvIHNvbWUgc2luawo+Pj4+Pj4+Pj4+PiAgICAgIGNvbG9yc3Bh Y2UKPj4+Pj4+Pj4+Pj4gICAgLSBTZXQgdGhpcyBuZXcgcHJvcGVydHkgdG8gbGV0IHRoZSBzaW5r IGtub3cgd2hhdCBpdAo+Pj4+Pj4+Pj4+PiAgICAgIGNvbnZlcnRlZCB0aGUgQ1JUQyBvdXRwdXQg dG8uCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IHYyOiBBZGRyZXNzZWQgTWFhcnRlbiBhbmQgVmls bGUncyByZXZpZXcgY29tbWVudHMuIEVuaGFuY2VkIHRoZQo+Pj4+Pj4+Pj4+PiBjb2xvcnNwYWNl IGVudW0gdG8gaW5jb3Jwb3JhdGUgYm90aCBIRE1JIGFuZCBEUCBzdXBwb3J0ZWQKPj4+Pj4+IGNv bG9yc3BhY2VzLgo+Pj4+Pj4+Pj4+PiBBbHNvLCBhZGRlZCBhIGRlZmF1bHQgb3B0aW9uIGZvciBj b2xvcnNwYWNlLgo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiB2MzogUmVtb3ZlZCBBZG9iZSByZWZl cmVuY2VzIGZyb20gZW51bSBkZWZpbml0aW9ucyBhcyBwZXIKPj4+Pj4+Pj4+Pj4gVmlsbGUsIEhh bnMgVmVya3VpbCBhbmQgSm9uYXMgS2FybG1hbiBzdWdnZXN0aW9ucy4gQ2hhbmdlZAo+Pj4+Pj4+ Pj4+PiBEZWZhdWx0IHRvIGFuIHVuc2V0IHN0YXRlIHdoZXJlIGRyaXZlciB3aWxsIGFzc2lnbiB0 aGUKPj4+Pj4+Pj4+Pj4gY29sb3JzcGFjZSBpcyBub3QgY2hvc2VuIGJ5IHVzZXIsIHN1Z2dlc3Rl ZCBieSBWaWxsZSBhbmQKPj4+Pj4+Pj4+Pj4gTWFhcnRlbi4gQWRkcmVzc2VkIG90aGVyIG1pc2Mg cmV2aWV3IGNvbW1lbnRzIGZyb20gTWFhcnRlbi4KPj4+Pj4+Pj4+Pj4gU3BsaXQgdGhlIGNoYW5n ZXMgdG8gaGF2ZSBzZXBhcmF0ZSBjb2xvcnNwYWNlIHByb3BlcnR5IGZvciBEUCBhbmQgSERNSS4K Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gdjQ6IEFkZHJlc3NlZCBDaHJpcyBhbmQgVmlsbGUncyBy ZXZpZXcgY29tbWVudHMsIGFuZCBjcmVhdGVkIGEKPj4+Pj4+Pj4+Pj4gY29tbW9uIGNvbG9yc3Bh Y2UgcHJvcGVydHkgZm9yIERQIGFuZCBIRE1JLCBmaWx0ZXJlZCB0aGUgbGlzdAo+Pj4+Pj4+Pj4+ PiBiYXNlZCBvbiB0aGUgY29sb3JzcGFjZXMgc3VwcG9ydGVkIGJ5IHRoZSByZXNwZWN0aXZlIHBy b3RvY29sIHN0YW5kYXJkLgo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiB2NTogTWFkZSB0aGUgcHJv cGVydHkgY3JlYXRpb24gaGVscGVyIGFjY2VwdCBlbnVtIGxpc3QgYmFzZWQgb24KPj4+Pj4+Pj4+ Pj4gcGxhdGZvcm0gY2FwYWJpbHRpZXMgYXMgc3VnZ2VzdGVkIGJ5IFNoYXNoYW5rLiBDb25zb2xp ZGF0ZWQKPj4+Pj4+Pj4+Pj4gSERNSSBhbmQgRFAgcHJvcGVydHkgY3JlYXRpb24gaW4gdGhlIGNv bW1vbiBoZWxwZXIuCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IHY2OiBBZGRyZXNzZWQgU2hhc2hh bmsncyByZXZpZXcgY29tbWVudHMuCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IHY3OiBBZGRlZCBk ZWZpbmVzIGluc3RlYWQgb2YgZW51bSBpbiB1YXBpIGFzIHBlciBCcmlhbgo+Pj4+Pj4+Pj4+PiBT dGFya2V5J3Mgc3VnZ2VzdGlvbiBpbiBvcmRlciB0byBnbyB3aXRoIHN0cmluZyBtYXRjaGluZyBh dCB1c2Vyc3BhY2UuCj4+Pj4+Pj4+Pj4+IFVwZGF0ZWQgdGhlIGNvbW1pdCBtZXNzYWdlIHRvIGFk ZCBtb3JlIGRldGFpbHMgYXMgd2VsbCBrZXJuZWwgZG9jcy4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ Pj4gdjg6IEFkZHJlc3NlZCBNYWFydGVuJ3MgcmV2aWV3IGNvbW1lbnRzLgo+Pj4+Pj4+Pj4+Pgo+ Pj4+Pj4+Pj4+PiB2OTogUmVtb3ZlZCBtYWNybyBkZWZpbmVzIGZyb20gdWFwaSBhcyBwZXIgQnJp YW4gU3RhcmtleSBhbmQKPj4+Pj4+Pj4+Pj4gRGFuaWVsIFN0b25lJ3MgY29tbWVudHMgYW5kIG1v dmVkIHRvIGRybSBpbmNsdWRlIGZpbGUuIE1vdmVkCj4+Pj4+Pj4+Pj4+IGJhY2sgdG8gb2xkZXIg ZGVzaWduIHdpdGggZXhwb3NpbmcgYWxsIEhETUkgY29sb3JzcGFjZXMgdG8KPj4+Pj4+Pj4+Pj4g dXNlcnNwYWNlIHNpbmNlIGluZm9mcmFtZSBjYXBhYmlsaXR5IGlzIHRoZXJlIGV2ZW4gb24gbGVn YWN5Cj4+Pj4+Pj4+Pj4+IHBsYXRmb3JtcywgYXMgcGVyIFZpbGxlJ3MgcmV2aWV3IGNvbW1lbnRz Lgo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiB2MTA6IEZpeGVkIHNwYXJzZSB3YXJuaW5ncywgdXBk YXRlZCB0aGUgUkIgZnJvbSBNYWFydGVuIGFuZCBKYW5pJ3MgYWNrLgo+Pj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4+PiB2MTE6IEFkZHJlc3NlZCBWaWxsZSdzIHJldmlldyBjb21tZW50cy4gVXBkYXRlZCB0 aGUgTWFjcm8KPj4+Pj4+Pj4+Pj4gbmFtaW5nIGFuZCBhZGRlZCBEQ0ktUDMgY29sb3JzcGFjZSBh cyB3ZWxsIGRlZmluZWQgaW4gQ0VBIDg2MS5HIHNwZWMuCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+ IFNpZ25lZC1vZmYtYnk6IFVtYSBTaGFua2FyIDx1bWEuc2hhbmthckBpbnRlbC5jb20+Cj4+Pj4+ Pj4+Pj4+IEFja2VkLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+Pj4+ Pj4+Pj4+PiBSZXZpZXdlZC1ieTogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50 ZWwuY29tPgo+Pj4+Pj4+Pj4+PiBSZXZpZXdlZC1ieTogTWFhcnRlbiBMYW5raG9yc3QKPj4+Pj4+ Pj4+Pj4gPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPj4+Pj4+Pj4+Pj4gLS0t Cj4+Pj4+Pj4+Pj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYyB8ICA0ICsr Cj4+Pj4+Pj4+Pj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMgICB8IDc4Cj4+ Pj4+Pj4+Pj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+Pj4+Pj4+ Pj4+ICAgIGluY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCAgICAgICB8IDUwICsrKysrKysrKysr KysrKysrKysrKysrKysKPj4+Pj4+Pj4+Pj4gICAgMyBmaWxlcyBjaGFuZ2VkLCAxMzIgaW5zZXJ0 aW9ucygrKQo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWNfdWFwaS5jCj4+Pj4+Pj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWNfdWFwaS5jCj4+Pj4+Pj4+Pj4+IGluZGV4IDlhMWY0MWEuLjliNWQ0NGYgMTAwNjQ0Cj4+ Pj4+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYwo+Pj4+Pj4+ Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMKPj4+Pj4+Pj4+Pj4g QEAgLTc0Niw2ICs3NDYsOCBAQCBzdGF0aWMgaW50Cj4+Pj4+Pj4+Pj4+IGRybV9hdG9taWNfY29u bmVjdG9yX3NldF9wcm9wZXJ0eShzdHJ1Y3QKPj4+Pj4+Pj4+PiBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IsCj4+Pj4+Pj4+Pj4+ICAgIAkJCXJldHVybiAtRUlOVkFMOwo+Pj4+Pj4+Pj4+PiAgICAJ CX0KPj4+Pj4+Pj4+Pj4gICAgCQlzdGF0ZS0+Y29udGVudF9wcm90ZWN0aW9uID0gdmFsOwo+Pj4+ Pj4+Pj4+PiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29ubmVjdG9yLT5jb2xvcnNwYWNlX3By b3BlcnR5KSB7Cj4+Pj4+Pj4+Pj4+ICsJCXN0YXRlLT5jb2xvcnNwYWNlID0gdmFsOwo+Pj4+Pj4+ Pj4+PiAgICAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPndyaXRlYmFja19mYl9pZF9w cm9wZXJ0eSkgewo+Pj4+Pj4+Pj4+PiAgICAJCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0K Pj4+Pj4+IGRybV9mcmFtZWJ1ZmZlcl9sb29rdXAoZGV2LAo+Pj4+Pj4+Pj4+IE5VTEwsIHZhbCk7 Cj4+Pj4+Pj4+Pj4+ICAgIAkJaW50IHJldCA9Cj4+Pj4+PiBkcm1fYXRvbWljX3NldF93cml0ZWJh Y2tfZmJfZm9yX2Nvbm5lY3RvcihzdGF0ZSwKPj4+Pj4+Pj4+PiBmYik7IEBACj4+Pj4+Pj4+Pj4+ IC04MTQsNiArODE2LDggQEAgc3RhdGljIGludAo+Pj4+Pj4+Pj4+PiBkcm1fYXRvbWljX2Nvbm5l Y3Rvcl9zZXRfcHJvcGVydHkoc3RydWN0Cj4+Pj4+Pj4+Pj4gZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLAo+Pj4+Pj4+Pj4+PiAgICAJCSp2YWwgPSBzdGF0ZS0+cGljdHVyZV9hc3BlY3RfcmF0aW87 Cj4+Pj4+Pj4+Pj4+ICAgIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+Y29udGVudF90 eXBlX3Byb3BlcnR5KSB7Cj4+Pj4+Pj4+Pj4+ICAgIAkJKnZhbCA9IHN0YXRlLT5jb250ZW50X3R5 cGU7Cj4+Pj4+Pj4+Pj4+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25uZWN0b3ItPmNvbG9y c3BhY2VfcHJvcGVydHkpIHsKPj4+Pj4+Pj4+Pj4gKwkJKnZhbCA9IHN0YXRlLT5jb2xvcnNwYWNl Owo+Pj4+Pj4+Pj4+PiAgICAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25uZWN0b3ItPnNjYWxp bmdfbW9kZV9wcm9wZXJ0eSkgewo+Pj4+Pj4+Pj4+PiAgICAJCSp2YWwgPSBzdGF0ZS0+c2NhbGlu Z19tb2RlOwo+Pj4+Pj4+Pj4+PiAgICAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PQo+Pj4+Pj4+Pj4+ PiBjb25uZWN0b3ItPmNvbnRlbnRfcHJvdGVjdGlvbl9wcm9wZXJ0eSkKPj4+Pj4+Pj4+Pj4geyBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+Pj4+Pj4+Pj4+PiBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMgaW5kZXggODQ3NTM5Ni4uNDMwOTg3MyAx MDA2NDQKPj4+Pj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+ Pj4+Pj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCj4+Pj4+Pj4+ Pj4+IEBAIC04MjYsNiArODI2LDMzIEBAIGludAo+Pj4+Pj4+Pj4+PiBkcm1fZGlzcGxheV9pbmZv X3NldF9idXNfZm9ybWF0cyhzdHJ1Y3QKPj4+Pj4+Pj4+Pj4gZHJtX2Rpc3BsYXlfaW5mbyAqaW5m bywgIH07Cj4+Pj4+Pj4+Pj4+IERSTV9FTlVNX05BTUVfRk4oZHJtX2dldF9jb250ZW50X3Byb3Rl Y3Rpb25fbmFtZSwKPj4+Pj4+Pj4+PiBkcm1fY3BfZW51bV9saXN0KQo+Pj4+Pj4+Pj4+PiArc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1fcHJvcF9lbnVtX2xpc3QgaGRtaV9jb2xvcnNwYWNlc1tdID0g ewo+Pj4+Pj4+Pj4+PiArCS8qIEZvciBEZWZhdWx0IGNhc2UsIGRyaXZlciB3aWxsIHNldCB0aGUg Y29sb3JzcGFjZSAqLwo+Pj4+Pj4+Pj4+PiArCXsgRFJNX01PREVfQ09MT1JJTUVUUllfREVGQVVM VCwgIkRlZmF1bHQiIH0sCj4+Pj4+Pj4+Pj4+ICsJLyogU3RhbmRhcmQgRGVmaW5pdGlvbiBDb2xv cmltZXRyeSBiYXNlZCBvbiBDRUEgODYxICovCj4+Pj4+Pj4+Pj4+ICsJeyBEUk1fTU9ERV9DT0xP UklNRVRSWV9TTVBURV8xNzBNLCAiU01QVEVfMTcwTSIgfSwKPj4+Pj4+Pj4+Pj4gKwl7IERSTV9N T0RFX0NPTE9SSU1FVFJZX0JUNzA5LCAiQlQ3MDkiIH0sCj4+Pj4+Pj4+Pj4+ICsJLyogU3RhbmRh cmQgRGVmaW5pdGlvbiBDb2xvcmltZXRyeSBiYXNlZCBvbiBJRUMgNjE5NjYtMi00ICovCj4+Pj4+ Pj4+Pj4+ICsJeyBEUk1fTU9ERV9DT0xPUklNRVRSWV9YVllDQ182MDEsICJYVllDQ182MDEiIH0s Cj4+Pj4+Pj4+Pj4+ICsJLyogSGlnaCBEZWZpbml0aW9uIENvbG9yaW1ldHJ5IGJhc2VkIG9uIElF QyA2MTk2Ni0yLTQgKi8KPj4+Pj4+Pj4+Pj4gKwl7IERSTV9NT0RFX0NPTE9SSU1FVFJZX1hWWUND XzcwOSwgIlhWWUNDXzcwOSIgfSwKPj4+Pj4+Pj4+Pj4gKwkvKiBDb2xvcmltZXRyeSBiYXNlZCBv biBJRUMgNjE5NjYtMi0xL0FtZW5kbWVudCAxICovCj4+Pj4+Pj4+Pj4+ICsJeyBEUk1fTU9ERV9D T0xPUklNRVRSWV9TWUNDXzYwMSwgIlNZQ0NfNjAxIiB9LAo+Pj4+Pj4+Pj4+PiArCS8qIENvbG9y aW1ldHJ5IGJhc2VkIG9uIElFQyA2MTk2Ni0yLTUgWzMzXSAqLwo+Pj4+Pj4+Pj4+PiArCXsgRFJN X01PREVfQ09MT1JJTUVUUllfT1BZQ0NfNjAxLCAib3BZQ0NfNjAxIiB9LAo+Pj4+Pj4+Pj4+PiAr CS8qIENvbG9yaW1ldHJ5IGJhc2VkIG9uIElFQyA2MTk2Ni0yLTUgKi8KPj4+Pj4+Pj4+Pj4gKwl7 IERSTV9NT0RFX0NPTE9SSU1FVFJZX09QUkdCLCAib3BSR0IiIH0sCj4+Pj4+Pj4+Pj4+ICsJLyog Q29sb3JpbWV0cnkgYmFzZWQgb24gSVRVLVIgQlQuMjAyMCAqLwo+Pj4+Pj4+Pj4+PiArCXsgRFJN X01PREVfQ09MT1JJTUVUUllfQlQyMDIwX1lDQywgIkJUMjAyMF9ZQ0MiIH0sCj4+Pj4+Pj4+Pj4+ ICsJLyogQ29sb3JpbWV0cnkgYmFzZWQgb24gSVRVLVIgQlQuMjAyMCAqLwo+Pj4+Pj4+Pj4+PiAr CXsgRFJNX01PREVfQ09MT1JJTUVUUllfQlQyMDIwX1JHQiwgIkJUMjAyMF9SR0IiIH0sCj4+Pj4+ Pj4+Pj4+ICsJLyogQ29sb3JpbWV0cnkgYmFzZWQgb24gSVRVLVIgQlQuMjAyMCAqLwo+Pj4+Pj4+ Pj4+PiArCXsgRFJNX01PREVfQ09MT1JJTUVUUllfQlQyMDIwX0NZQ0MsICJCVDIwMjBfQ1lDQyIg fSwKPj4+Pj4+Pj4+Pj4gKwkvKiBBZGRlZCBhcyBwYXJ0IG9mIEFkZGl0aW9uYWwgQ29sb3JpbWV0 cnkgRXh0ZW5zaW9uIGluIDg2MS5HICovCj4+Pj4+Pj4+Pj4+ICsJeyBEUk1fTU9ERV9DT0xPUklN RVRSWV9EQ0lfUDNfUkdCX0Q2NSwgIkRDSS0KPj4+Pj4+IFAzX1JHQl9ENjUiIH0sCj4+Pj4+Pj4+ Pj4+ICsJeyBEUk1fTU9ERV9DT0xPUklNRVRSWV9EQ0lfUDNfUkdCX1RIRUFURVIsICJEQ0ktCj4+ Pj4+Pj4+Pj4gUDNfUkdCX1RoZWF0ZXIiIH0sCj4+Pj4+Pj4+Pj4+ICt9Owo+Pj4+Pj4+Pj4+PiAr Cj4+Pj4+Pj4+Pj4+ICAgIC8qKgo+Pj4+Pj4+Pj4+PiAgICAgKiBET0M6IHN0YW5kYXJkIGNvbm5l Y3RvciBwcm9wZXJ0aWVzCj4+Pj4+Pj4+Pj4+ICAgICAqCj4+Pj4+Pj4+Pj4+IEBAIC0xNTQ4LDYg KzE1NzUsNTcgQEAgaW50Cj4+Pj4+Pj4+Pj4+IGRybV9tb2RlX2NyZWF0ZV9hc3BlY3RfcmF0aW9f cHJvcGVydHkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4+Pj4+Pj4+Pj4gRVhQT1JUX1NZTUJP TChkcm1fbW9kZV9jcmVhdGVfYXNwZWN0X3JhdGlvX3Byb3BlcnR5KTsKPj4+Pj4+Pj4+Pj4KPj4+ Pj4+Pj4+Pj4gICAgLyoqCj4+Pj4+Pj4+Pj4+ICsgKiBET0M6IHN0YW5kYXJkIGNvbm5lY3RvciBw cm9wZXJ0aWVzCj4+Pj4+Pj4+Pj4+ICsgKgo+Pj4+Pj4+Pj4+PiArICogQ29sb3JzcGFjZToKPj4+ Pj4+Pj4+Pj4gKyAqICAgICBkcm1fbW9kZV9jcmVhdGVfY29sb3JzcGFjZV9wcm9wZXJ0eSAtIGNy ZWF0ZSBjb2xvcnNwYWNlCj4+Pj4+PiBwcm9wZXJ0eQo+Pj4+Pj4+Pj4+PiArICogICAgIFRoaXMg cHJvcGVydHkgaGVscHMgc2VsZWN0IGEgc3VpdGFibGUgY29sb3JzcGFjZSBiYXNlZCBvbiB0aGUg c2luawo+Pj4+Pj4+Pj4+PiArICogICAgIGNhcGFiaWxpdHkuIE1vZGVybiBzaW5rIGRldmljZXMg c3VwcG9ydCB3aWRlciBnYW11dCBsaWtlIEJUMjAyMC4KPj4+Pj4+Pj4+Pj4gKyAqICAgICBUaGlz IGhlbHBzIHN3aXRjaCB0byBCVDIwMjAgbW9kZSBpZiB0aGUgQlQyMDIwIGVuY29kZWQgdmlkZW8K Pj4+Pj4+IHN0cmVhbQo+Pj4+Pj4+Pj4+PiArICogICAgIGlzIGJlaW5nIHBsYXllZCBieSB0aGUg dXNlciwgc2FtZSBmb3IgYW55IG90aGVyIGNvbG9yc3BhY2UuIFRoZXJlYnkKPj4+Pj4+Pj4+Pj4g KyAqICAgICBnaXZpbmcgYSBnb29kIHZpc3VhbCBleHBlcmllbmNlIHRvIHVzZXJzLgo+Pj4+Pj4+ Pj4+PiArICoKPj4+Pj4+Pj4+Pj4gKyAqICAgICBUaGUgZXhwZWN0YXRpb24gZnJvbSB1c2Vyc3Bh Y2UgaXMgdGhhdCBpdCBzaG91bGQgcGFyc2UgdGhlIEVESUQKPj4+Pj4+Pj4+Pj4gKyAqICAgICBh bmQgZ2V0IHN1cHBvcnRlZCBjb2xvcnNwYWNlcy4gVXNlIHRoaXMgcHJvcGVydHkgYW5kIHN3aXRj aCB0byB0aGUKPj4+Pj4+Pj4+Pj4gKyAqICAgICBvbmUgc3VwcG9ydGVkLiBTaW5rIHN1cHBvcnRl ZCBjb2xvcnNwYWNlcyBzaG91bGQgYmUgcmV0cmlldmVkIGJ5Cj4+Pj4+Pj4+Pj4+ICsgKiAgICAg dXNlcnNwYWNlIGZyb20gRURJRCBhbmQgZHJpdmVyIHdpbGwgbm90IGV4cGxpY2l0bHkgZXhwb3Nl IHRoZW0uCj4+Pj4+Pj4+Pj4+ICsgKgo+Pj4+Pj4+Pj4+PiArICogICAgIEJhc2ljYWxseSB0aGUg ZXhwZWN0YXRpb24gZnJvbSB1c2Vyc3BhY2UgaXM6Cj4+Pj4+Pj4+Pj4+ICsgKiAgICAgIC0gU2V0 IHVwIENSVEMgREVHQU1NQS9DVE0vR0FNTUEgdG8gY29udmVydCB0byBzb21lIHNpbmsKPj4+Pj4+ Pj4+Pj4gKyAqICAgICAgICBjb2xvcnNwYWNlCj4+Pj4+Pj4+Pj4+ICsgKiAgICAgIC0gU2V0IHRo aXMgbmV3IHByb3BlcnR5IHRvIGxldCB0aGUgc2luayBrbm93IHdoYXQgaXQKPj4+Pj4+Pj4+Pj4g KyAqICAgICAgICBjb252ZXJ0ZWQgdGhlIENSVEMgb3V0cHV0IHRvLgo+Pj4+Pj4+Pj4+PiArICog ICAgICAtIFRoaXMgcHJvcGVydHkgaXMganVzdCB0byBpbmZvcm0gc2luayB3aGF0IGNvbG9yc3Bh Y2UKPj4+Pj4+Pj4+Pj4gKyAqICAgICAgICBzb3VyY2UgaXMgdHJ5aW5nIHRvIGRyaXZlLgo+Pj4+ Pj4+Pj4+PiArICoKPj4+Pj4+Pj4+Pj4gKyAqIENhbGxlZCBieSBhIGRyaXZlciB0aGUgZmlyc3Qg dGltZSBpdCdzIG5lZWRlZCwgbXVzdCBiZQo+Pj4+Pj4+Pj4+PiArYXR0YWNoZWQgdG8gZGVzaXJl ZAo+Pj4+Pj4+Pj4+PiArICogY29ubmVjdG9ycy4KPj4+Pj4+Pj4+Pj4gKyAqLwo+Pj4+Pj4+Pj4+ PiAraW50IGRybV9tb2RlX2NyZWF0ZV9jb2xvcnNwYWNlX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29u bmVjdG9yCj4+Pj4+Pj4+Pj4+ICsqY29ubmVjdG9yKSB7Cj4+Pj4+Pj4+Pj4+ICsJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+ZGV2Owo+Pj4+Pj4+Pj4+PiArCXN0cnVjdCBkcm1f cHJvcGVydHkgKnByb3A7Cj4+Pj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+Pj4gKwlpZiAoY29ubmVjdG9y LT5jb25uZWN0b3JfdHlwZSA9PQo+Pj4+Pj4gRFJNX01PREVfQ09OTkVDVE9SX0hETUlBIHx8Cj4+ Pj4+Pj4+Pj4+ICsJICAgIGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgPT0KPj4+Pj4+IERSTV9N T0RFX0NPTk5FQ1RPUl9IRE1JQikgewo+Pj4+Pj4+Pj4+PiArCQlwcm9wID0gZHJtX3Byb3BlcnR5 X2NyZWF0ZV9lbnVtKGRldiwKPj4+Pj4+Pj4+PiBEUk1fTU9ERV9QUk9QX0VOVU0sCj4+Pj4+Pj4+ Pj4+ICsJCQkJCQkiQ29sb3JzcGFjZSIsCj4+Pj4+Pj4+Pj4+ICsJCQkJCQloZG1pX2NvbG9yc3Bh Y2VzLAo+Pj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+Pj4gCUFSUkFZX1NJWkUoaGRtaV9jb2xvcnNwYWNl cykpOwo+Pj4+Pj4+Pj4+PiArCQlpZiAoIXByb3ApCj4+Pj4+Pj4+Pj4+ICsJCQlyZXR1cm4gLUVO T01FTTsKPj4+Pj4+Pj4+Pj4gKwl9IGVsc2Ugewo+Pj4+Pj4+Pj4+PiArCQlEUk1fREVCVUdfS01T KCJDb2xvcnNwYWNlIHByb3BlcnR5IG5vdAo+Pj4+Pj4gc3VwcG9ydGVkXG4iKTsKPj4+Pj4+Pj4+ Pj4gKwkJcmV0dXJuIDA7Cj4+Pj4+Pj4+Pj4+ICsJfQo+Pj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+Pj4+ ICsJY29ubmVjdG9yLT5jb2xvcnNwYWNlX3Byb3BlcnR5ID0gcHJvcDsKPj4+Pj4+Pj4+Pj4gKwo+ Pj4+Pj4+Pj4+PiArCXJldHVybiAwOwo+Pj4+Pj4+Pj4+PiArfQo+Pj4+Pj4+Pj4+PiArRVhQT1JU X1NZTUJPTChkcm1fbW9kZV9jcmVhdGVfY29sb3JzcGFjZV9wcm9wZXJ0eSk7Cj4+Pj4+Pj4+Pj4+ ICsKPj4+Pj4+Pj4+Pj4gKy8qKgo+Pj4+Pj4+Pj4+PiAgICAgKiBkcm1fbW9kZV9jcmVhdGVfY29u dGVudF90eXBlX3Byb3BlcnR5IC0gY3JlYXRlIGNvbnRlbnQgdHlwZQo+Pj4+Pj4gcHJvcGVydHkK Pj4+Pj4+Pj4+Pj4gICAgICogQGRldjogRFJNIGRldmljZQo+Pj4+Pj4+Pj4+PiAgICAgKgo+Pj4+ Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4+Pj4+Pj4+ Pj4+IGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oIGluZGV4IDk5NDE2MTMuLjU4ZGI2NmUg MTAwNjQ0Cj4+Pj4+Pj4+Pj4+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+Pj4+ Pj4+Pj4+PiArKysgYi9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKPj4+Pj4+Pj4+Pj4gQEAg LTI1Myw2ICsyNTMsNDIgQEAgZW51bSBkcm1fcGFuZWxfb3JpZW50YXRpb24gewo+Pj4+Pj4+Pj4+ PiAgICAJRFJNX01PREVfUEFORUxfT1JJRU5UQVRJT05fUklHSFRfVVAsCj4+Pj4+Pj4+Pj4+ICAg IH07Cj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+ICsvKgo+Pj4+Pj4+Pj4+PiArICogVGhpcyBpcyBh IGNvbnNvbGlkYXRlZCBjb2xvcmltZXRyeSBsaXN0IHN1cHBvcnRlZCBieSBIRE1JCj4+Pj4+Pj4+ Pj4+ICthbmQKPj4+Pj4+Pj4+Pj4gKyAqIERQIHByb3RvY29sIHN0YW5kYXJkLiBUaGUgcmVzcGVj dGl2ZSBjb25uZWN0b3JzIHdpbGwKPj4+Pj4+Pj4+Pj4gK3JlZ2lzdGVyCj4+Pj4+Pj4+Pj4+ICsg KiBhIHByb3BlcnR5IHdpdGggdGhlIHN1YnNldCBvZiB0aGlzIGxpc3QgKHN1cHBvcnRlZCBieSB0 aGF0Cj4+Pj4+Pj4+Pj4+ICsgKiByZXNwZWN0aXZlIHByb3RvY29sKS4gVXNlcnNwYWNlIHdpbGwg c2V0IHRoZSBjb2xvcnNwYWNlCj4+Pj4+Pj4+Pj4+ICt0aHJvdWdoCj4+Pj4+Pj4+Pj4+ICsgKiBh IGNvbG9yc3BhY2UgcHJvcGVydHkgd2hpY2ggd2lsbCBiZSBjcmVhdGVkIGFuZCBleHBvc2VkIHRv Cj4+Pj4+Pj4+Pj4+ICsgKiB1c2Vyc3BhY2UuCj4+Pj4+Pj4+Pj4+ICsgKi8KPj4+Pj4+Pj4+Pj4g Kwo+Pj4+Pj4+Pj4+PiArLyogRm9yIERlZmF1bHQgY2FzZSwgZHJpdmVyIHdpbGwgc2V0IHRoZSBj b2xvcnNwYWNlICovCj4+Pj4+Pj4+Pj4+ICsjZGVmaW5lIERSTV9NT0RFX0NPTE9SSU1FVFJZX0RF RkFVTFQJCQkwCj4+Pj4+Pj4+Pj4+ICsvKiBDRUEgODYxIE5vcm1hbCBDb2xvcmltZXRyeSBvcHRp b25zICovCj4+Pj4+Pj4+Pj4+ICsjZGVmaW5lIERSTV9NT0RFX0NPTE9SSU1FVFJZX05PX0RBVEEJ CQkwCj4+Pj4+Pj4+Pj4+ICsjZGVmaW5lIERSTV9NT0RFX0NPTE9SSU1FVFJZX1NNUFRFXzE3ME0K Pj4+Pj4+Pj4gCTEKPj4+Pj4+Pj4+Pj4gKyNkZWZpbmUgRFJNX01PREVfQ09MT1JJTUVUUllfQlQ3 MDkJCQkyCj4+Pj4+Pj4+Pj4gU3RpbGwgbWlzc2luZyB0aGUgWUNiQ3IgaW5mb3JtYXRpb24gaW4g dGhlc2UgdHdvLgo+Pj4+Pj4+Pj4gQXMgcGVyIENUQSA4NjEuRyBzcGVjLCB3ZSBoYXZlIHRoZXNl IGFzIG9ubHkgU01QVEVfMTcwTSBhbmQgSVRVLVIKPj4+Pj4+Pj4+IEJUNzA5LCB3aXRoIG5vIHNw ZWNpZmljIG1lbnRpb24gb2YgUkdCIG9yIFlDYkNyLiBIZW5jZSwga2VwdCBpdCBhcwo+Pj4+Pj4+ Pj4gcGVyIHNwZWMuIFdlIHNlZW0gdG8gaGF2ZSBhIGNvbW1vbiBmaWVsZCBmb3IgYm90aCBhcyBw ZXIgQ1RBIHNwZWMuCj4+Pj4+Pj4+PiBDb3JyZWN0IG1lIGlmIG15IHVuZGVyc3RhbmRpbmcgaXMg d3JvbmcuCj4+Pj4+Pj4+IENoZWNrCj4+Pj4+Pj4+ICJUYWJsZSAxNCBQaWN0dXJlIENvbG9yaW1l dHJ5IEluZGljYXRlZCBieSB0aGUgUkdCIG9yIFlDIEIgQyBSIChZKSwKPj4+Pj4+Pj4gQ29sb3Jp bWV0cnkKPj4+Pj4+Pj4gKEMpIGFuZCBFeHRlbmRlZCBDb2xvcmltZXRyeSAoRUMpIEZpZWxkIFNl dHRpbmdzIgo+Pj4+Pj4+IFRoZXNlICBZMiBZMSBZMCB2YWx1ZXMgc2hvdWxkIGJlIHByb2dyYW1t ZWQgc2VwYXJhdGVseSBhbmQgbm90Cj4+Pj4+Pj4gdGhyb3VnaCB0aGUgY29sb3JzcGFjZSBhcyB0 aGV5IGFyZSBkYXRhIGZvcm1hdHMgaXNuJ3QgaXQuIEkgZmVlbCB0aGlzCj4+Pj4+Pj4gc2hvdWxk IGdldCBjb250cm9sbGVkIHNlcGFyYXRlbHkgaW5kZXBlbmRlbnQgb2YgY29sb3JpbWV0cnksIG9y Cj4+Pj4+Pj4gc2hvdWxkIHdlIGFkZCBhbGwgdGhlIFlDYkNyIGFuZCBSR0IgdmVyc2lvbnMgYW5k IHByb2dyYW0gdGhlbSBhcyBwYXJ0Cj4+Pj4+Pj4gb2YgdGhpcyBwcm9wZXJ0eSBpdHNlbGYKPj4+ Pj4+ID8KPj4+Pj4+Cj4+Pj4+PiBJIGRvbid0IHRoaW5rIHdlIGNhbiBzZXBhcmF0ZSB0aGVtLiBU aGUgdmFsdWVzIG9mIHRoZSBjb2xvcmltZXRyeSBiaXRzCj4+Pj4+PiBkb2Vzbid0IG1lYW4gYW55 dGhpbmcgd2l0aG91dCB0aGUgWSBiaXRzLiBJdCB3b3VsZCBtYWtlIHRoZSB1YXBpIGtpbmRhCj4+ Pj4+PiBjcmF6eSBpZiB3ZSBhbGxvdyB0aGUgdXNlciB0byBzcGVjaWZ5IEJULjIwMjAgUkdCIGJ1 dCB0aGVuIHdlIGFjdHVhbGx5Cj4+Pj4+PiBzaWduYWwgQlQuMjAyMCBZQ2JDciBpbiB0aGUgaW5m b2ZyYW1lLCBvciB2aWNlIHZlcnNhLiBPciB3ZSBqdXN0IHNpZ25hbAo+Pj4+Pj4gYSB0b3RhbGx5 IGludmFsaWQgdmFsdWUgZm9yIGFsbCB0aGUgb3RoZXIgY2FzZXMuCj4+Pj4+IEkgYWdyZWUgd2Ug bmVlZCBkYXRhIGZvcm1hdCBhbHNvIHRvIGJlIHNlbmQgYWxvbmcgd2l0aCBjb2xvcnNwYWNlLCBi dXQgdGhleSBhcmUgMgo+Pj4+PiBkaWZmZXJlbnQgdGhpbmdzLiBUbyBoYW5kbGUgWUNiQ3IgYW5k IHZhcmlhbnRzIChZVVYgNDQ0LCA0MjAgb3IgNDIyKSBhbmQgUkdCIEkgZmVlbAo+Pj4+PiB3ZSBz aG91bGQgZXhwb3NlIGEgZGlmZmVyZW50IEFQSSBpbnN0ZWFkIG9mIHVzaW5nIHRoaXMgb25lLiAg V2UgY2FuIGNyZWF0ZSBhbiBvdXRwdXQKPj4+Pj4gY3NjIHByb3BlcnR5IHdoaWNoIGRvZXMgdGhh dCBqb2IgZm9yIHVzLgo+Pj4+Pgo+Pj4+PiBTbyBmcm9tIGEgdXNlciBwZXJzcGVjdGl2ZSBpZiB3 ZSB3YW50cyB0byBzZXQgYSBjb2xvcnNwYWNlIHdlIHNob3VsZCB1c2UgdGhlIG9uZSBpbgo+Pj4+ PiB0aGlzIHNlcmllcyBhbmQgc2V0IHRoZSBkYXRhIGZvcm1hdCBzZXBhcmF0ZWx5IHVzaW5nIHRo ZSBvdGhlciBpbnRlcmZhY2UuIEJvdGggd2lsbCBiZQo+Pj4+PiByZWNlaXZlZCBpbiB0aGUgc3Rh dGUgdmFyaWFibGVzIGFuZCBsYXRlciBJbmZvZnJhbWUgcGFja2V0IHdpbGwgYmUgY3JlYXRlZCBh Y2NvcmRpbmdseS4KPj4+Pj4gQ2x1YmJpbmcgYm90aCBpbiBvbmUgbWF5IGxlYWQgdG8gbG90IG9m IHBvc3NpYmxlIGNvbWJpbmF0aW9ucyBleHBvc2VkIGFzIGVudW0KPj4+Pj4gd2hpY2ggbWF5IG5v dCBsb29rIHRvbyBjbGVhbi4KPj4+Pj4KPj4+Pj4gV2hhdCBkbyB5b3Ugc2F5IGFib3V0IGhhbmRs aW5nIHRoYXQgaW4gdGhlIG91dHB1dCBjc2MgcHJvcGVydHkuIEkgd2lsbCBnbyB3aXRoIHdoYXQg eW91Cj4+Pj4+IHJlY29tbWVuZCAuCj4+Pj4gUHJvZ3JhbW1pbmcgWTJZMVkwIGlzIGFscmVhZHkg dGFrZW4gY2FyZSBvZiwgd2hlbiB3ZSBhZGRlZCBzdXBwb3J0IGZvciBZQ0JDUiBvdXRwdXRzICg0 OjI6MCBpbXBsZW1lbnRhdGlvbikuCj4+Pj4gSW4gaW50ZWxfaGRtaS5jOmludGVsX2hkbWlfc2V0 X2F2aV9pbmZvZnJhbWUoKToKPj4+Pgo+Pj4+IGlmIChjcnRjX3N0YXRlLT5vdXRwdXRfZm9ybWF0 ID09IElOVEVMX09VVFBVVF9GT1JNQVRfWUNCQ1I0MjApCj4+Pj4gCWZyYW1lLmF2aS5jb2xvcnNw YWNlID0gSERNSV9DT0xPUlNQQUNFX1lVVjQyMDsKPj4+PiBlbHNlIGlmIChjcnRjX3N0YXRlLT5v dXRwdXRfZm9ybWF0ID09IElOVEVMX09VVFBVVF9GT1JNQVRfWUNCQ1I0NDQpCj4+Pj4gCWZyYW1l LmF2aS5jb2xvcnNwYWNlID0gSERNSV9DT0xPUlNQQUNFX1lVVjQ0NDsKPj4+PiBlbHNlCj4+Pj4g CWZyYW1lLmF2aS5jb2xvcnNwYWNlID0gSERNSV9DT0xPUlNQQUNFX1JHQjsKPj4+Pgo+Pj4+IElN TyBUaGlzIGxvb2tzIGxpa2UgYSBiZXR0ZXIgd2F5IHRvIGhhbmRsZSB0aGlzLCBpZSB3aGlsZSBh ZGRpbmcgc3VwcG9ydCBmb3IgYSBuZXcgZm9ybWF0LCBhZGQgc3VwcG9ydCBmb3IgY29ycmVzcG9u ZGluZyBBVkkgSUYgZmlsZWRzLiBUaGlzIHdpbGwgYWxzbyBtYWtlIHNjb3BlIG9mIHRoZSBwcm9w ZXJ0eSB1bmRlciBkaXNjdXNzaW9uIGxlc3MgY29tcGxpY2F0ZWQuCj4+PiBUaGF0J3MgYW4gZXhj ZXB0aW9uYWwgY2FzZS4gV2UncmUgcHJvZ3JhbW1pbmcgdGhlIENTQyBpbiB0aGF0IGNhc2UKPj4+ IHRvIGRvIHRoZSBSR0ItPllDYkNyIGNvbnZlcnNpb24gd2l0aG91dCB0ZWxsaW5nIHVzZXJzcGFj ZS4gU28gd2UKPj4+IG11c3QgYWxzbyBjb25maWd1cmUgdGhlIFkgYml0cyBhdXRvbWFnaWNhbGx5 Lgo+Pj4KPj4+IFdoYXQgd2Ugd2FudCBpcyBhIGNoZWNrIGxpa2Ugc286Cj4+Pgo+Pj4gaWYgKHBy b3AuY29sb3JzcGFjZSAhPSBkZWZhdWx0ICYmIG91dHB1dF9mb3JtYXQgIT0gUkdCKQo+Pj4gICAg ICAgcmV0dXJuIC1JTlZBTDsKPj4+Cj4+PiBiZWNhdXNlIHdlIGNhbid0IHNldCB1cCB0aGUgQ1ND IHRvIG1ha2UgYSBtZXNzIG9mIHRoZSB1c2VyJ3MKPj4+IGNhcmVmdWxseSBjcmFmdGVkIHBpeGVs cy4gVGhlIHBpeGVscyBtaWdodCBub3QgZXZlbiBjb250YWluCj4+PiBSR0IgZGF0YSBpbiB0aGF0 IGNhc2UuCj4+Pgo+Pj4gV2UnbGwgbmVlZCB0byBleHRlbmQgdGhhdCBhIGxpdHRsZSBiaXQgb25j ZSB3ZSBhZGQgdGhlIGV4cGxpY2l0Cj4+PiBjb250cm9sIG9mIHRoZSBvdXRwdXQgQ1NDIHZpYSBh bm90aGVyIHByb3AuIEJ1dCB0aGUgc2FtZQo+Pj4gcHJpbmNpcGxlIHNob3VsZCBob2xkLgo+PiBJ biBmYWN0LCBJIHJlbWVtYmVyIHRoZSByZWFzb24gd2h5IHdlIGNyZWF0ZWQgaW5mcmFzdHJ1Y3R1 cmUgbGlrZSB0aGlzLAo+PiBzbyB0aGF0LCBnb2luZyBmb3J3YXJkLCB3ZSBjb3VsZCBqdXN0IGFk ZCBhIG91dHB1dF9mb3JtYXQgcHJvcGVydHksIGZvcgo+PiB3aGljaCwgd2UgYWxyZWFkeSBoYXZl IHRoZSBiYWNrZWQgYW5kIHRoZSBzdGF0ZSB2YXJpYWJsZXMgcmVhZHkuIFRoZQo+PiBjb25zdW1l IG9mIHRoaXMgYmFja2VuZCBjYW4gYmUgdGhpcyBkcm1fcHJvcGVydHkgKGxpa2Ugb3V0cHV0X2Zv cm1hdCksCj4+IG9yIGludGVybmFsIG1vZGVzZXQgbGlrZSBZQ0JDUjQ6MjowIG9ubHkgbW9kZXMg aW4gRURJRC4gSXQgd2lsbCBhbHNvIGJlCj4+IGlubGluZSB3aXRoIHlvdXIgc3VnZ2VzdGlvbiBv ZiBDU0MgcHJvcGVydHkuCj4+Cj4+IFNvIHdlIGNhbiBoYXZlIHR3byBwcm9wZXJ0aWVzIGNvbG9y c3BhY2UgKEJUMjAyMC9TUkdCL1JFQzcwOSkgYW5kCj4+IGNvbG9yX21vZGVsL2NvbG9yX2Zvcm1h dChSR0IvWUNCQ1I0NDQvNDIwKSwgYW5kIGEgY29tYmluYXRpb24gb2YgYm90aAo+PiBzaG91bGQg cHJvZ3JhbSB0aGUgb3V0cHV0IEFWSSBpbmZvLWZyYW1lcy4gRG9lcyBpdCBhcHBlYWwgeW91ID8K PiBJJ20gbm90IHN1cmUgaXQncyBmZWFzaWJsZSB0byBzcGxpdCBpdCBsaWtlIHRoYXQuIFRoZSBj b21iaW5hdGlvbnMKPiBzdXBwb3J0ZWQgYnkgdGhlIGluZm9mcmFtZSBhcmUgcmF0aGVyIHNwZWNp ZmljIHNvIHRyeWluZyB0byBzcGxpdCBpdAo+IHVwIGxlYWRzIHRvIGVpdGhlciBzdXBlciBsaW1p dGVkIHVhcGksIG9yIG9uZSB0aGF0IGV4cG9zZXMgYSBsb3Qgb2YKPiBpbGxlZ2FsIGNvbWJpbmF0 aW9ucy4gQWxzbyBEUCBoYXMgc2xpZ2h0bHkgZGlmZmVyZW50IHNldCBvZiB0aGluZ3MKPiBpdCBz dXBwb3J0cyB3aGljaCBhZGRzIG1vcmUgY29tcGxpY2F0aW9ucy4KPgo+IFNvIEkgdGhpbmsgdGhl IGJlc3Qgb3B0aW9uIGlzIHN0aWxsIHRvIGluY2x1ZGUgdGhlIFk9eWVzL25vCj4gaW5mb3JtYXRp b24gaW4gdGhlIHByb3AgdmFsdWUgYWxvZ25zaWRlIHRoZSBDL0VDL0FDRSBiaXRzLgoKWWVzLCB5 b3UgYXJlIHJpZ2h0LCB0aGlzIGNvdWxkIGJlIGEgc2ltcGxlciB3YXkgb2YgZG9pbmcgdGhpbmdz LCBidXQgCndpdGggYSBsaW1pdGVkIHNldCBvZiBjb21iaW5hdGlvbi4KCkNvbnNpZGVyIHRoaXMg ZXhhbXBsZToKCi0gSWYgYSBIRE1JIG1vbml0b3Igc3VwcG9ydHMgQlQyMDIwLCBidXQgZG9lc24n dCBzdXBwb3J0IFlDQkNSIApmb3JtYXR0aW5nLCBob3cgdG8gaGFuZGxlIHRoaXMgb3B0aW9uID8g VGhpcyBtZWFucyB3ZSBoYXZlIHRvIApzZWxlY3RpdmVseSBzaG93IEJUMjAyMF9SR0IgZW51bSB2 YWx1ZSBvbmx5IG5vdCBCVDIwMjBfWUNCQ1JfNDQ0LzQyMCwKCi0gVGhpcyBhbHNvIG1lYW5zIHdl IGhhdmUgdG8gcHJvYmUgdGhlIEVESUQgZmlyc3QsIGFuZCB0aGVuIGNyZWF0ZSB0aGlzIApwcm9w ZXJ0eSwgd2hpY2ggbWVhbnMgd2Ugd2lsbCBiZSBkZXBlbmRlbnQgb24gdGhlIGhvdC1wbHVnIC8g ZGV0ZWN0IHRvIApjcmVhdGUgdGhpcyBwcm9wZXJ0eSwgaW5zdGVhZCBvZiBkb2luZyB0aGlzIGlu IGhkbWlfaW5pdC4KCkV2ZW4gbW9yZSBjb21wbGV4IHNjZW5hcmlvIHdvdWxkIGJlIHdoZW4gdGhl IG91dHB1dCBzdXBwb3J0IGRlcGVuZHMgb24gCm1vbml0b3IgKyBwbGF0Zm9ybSBib3RoLiBUaGlz IG1lYW5zIHdlIGhhdmUgdG8gcHJvdmlkZSB0aGlzIGNvbWJpbmF0aW9uIAp1cGZyb250IHdoaWxl IGNyZWF0aW5nIHRoaXMgcHJvcGVydHkuCgpPbiB0aGUgb3RoZXIgaGFuZCwgdGhlIGludmFsaWQg Y29tYmluYXRpb24gb2YgdHdvIHByb3BlcnR5LCBpdCB3b3VsZCBiZSAKZWFzeSB0byBkZXRlY3Qg YXQgcnVudGltZSBhdCBhdG9taWNfY2hlY2soKSBhbmQgZmFpbCB0aGUgY29tbWl0LgoKClRoaXMg aXMganVzdCBhIHRob3VnaHQsIGhvbmVzdGx5IEkgYW0gYWxzbyBub3Qgc3VyZSB3aGF0IHdvdWxk IGJlIHRoZSAKbW9zdCBhcHByb3ByaWF0ZSBzb2x1dGlvbiBmb3IgdGhpcywgYnV0IHNlZW1zIGl0 cyBzaW1wbGVyIHRvIGNyZWF0ZSAKcHJvcGVydHkgd2l0aCB0d28gcHJvcGVydGllcywgbWlnaHQg YmUgZGlmZmljdWx0IHRvIG1hbmFnZSBhdCBydW50aW1lLgoKV2l0aCBvbmUgcHJvcGVydHksIGl0 cyB2ZXJ5IGRpZmZpY3VsdCB0byBjcmVhdGUsIGJ1dCBvbmNlIGNyZWF0ZWQsIGl0IAp3b3VsZCB3 b3JrIHN1cmUgc2hvdC4KCi0gU2hhc2hhbmsKCj4+IC0gU2hhc2hhbmsKPj4KPj4+Pj4gUmVnYXJk cywKPj4+Pj4gVW1hIFNoYW5rYXIKPj4+Pj4KPj4+Pj4KPj4+Pj4KPj4+Pj4+PiBNeSBpZGVhIHdh cyBqdXN0IHRvIHVwZGF0ZSBjb2xvcmltZXRyeSBmaWVsZHMgYWxvbmUgYXMgcGFydCBvZiB0aGlz IGludGVyZmFjZS4KPj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiArLyogQ0VBIDg2MSBFeHRlbmRlZCBDb2xv cmltZXRyeSBPcHRpb25zICovICNkZWZpbmUKPj4+Pj4+Pj4+Pj4gK0RSTV9NT0RFX0NPTE9SSU1F VFJZX1hWWUNDXzYwMQo+Pj4+Pj4gCTMKPj4+Pj4+Pj4+Pj4gKyNkZWZpbmUgRFJNX01PREVfQ09M T1JJTUVUUllfWFZZQ0NfNzA5Cj4+Pj4+PiAJNAo+Pj4+Pj4+Pj4+PiArI2RlZmluZSBEUk1fTU9E RV9DT0xPUklNRVRSWV9TWUNDXzYwMQkJCTUKPj4+Pj4+Pj4+Pj4gKyNkZWZpbmUgRFJNX01PREVf Q09MT1JJTUVUUllfT1BZQ0NfNjAxCj4+Pj4+PiAJNgo+Pj4+Pj4+Pj4+PiArI2RlZmluZSBEUk1f TU9ERV9DT0xPUklNRVRSWV9PUFJHQgkJCTcKPj4+Pj4+Pj4+Pj4gKyNkZWZpbmUgRFJNX01PREVf Q09MT1JJTUVUUllfQlQyMDIwX1lDQwo+Pj4+Pj4gCTgKPj4+Pj4+Pj4+Pj4gKy8qIEJvdGggQlQy MDIwX1JHQiBhbmQgQlQyMDIwX1lDYkNiQ3IgaGF2ZSBzYW1lIHZhbHVlICovCj4+Pj4+Pj4+Pj4+ ICsjZGVmaW5lIERSTV9NT0RFX0NPTE9SSU1FVFJZX0JUMjAyMF9SR0IKPj4+Pj4+IAk5Cj4+Pj4+ Pj4+Pj4+ICsjZGVmaW5lIERSTV9NT0RFX0NPTE9SSU1FVFJZX0JUMjAyMF9DWUNDCQk5Cj4+Pj4+ Pj4+Pj4gSSB0aG91Z2ggeW91IGRpZG4ndCB3YW50IHRoZXNlIG51bWJlcnMgdG8gYmUgYmFzZWQg b24gdGhlIHNwZWMKPj4+Pj4+Pj4+PiBudW1iZXJzPyBUaGlzIGR1cGxpY2F0ZWQgdmFsdWUgc2Vl bXMgdG8gZ28gYWdhaW5zdCB0aGF0IGlkZWEuCj4+Pj4+Pj4+PiBZZWFoLCBmb3IgSERNSSBzb21l aG93IHdhcyB0cnlpbmcgdG8gdXRpbGl6ZSB0aGUgZGVmaW5pdGlvbnMgdG8KPj4+Pj4+Pj4+IGFk dmFudGFnZS4gQnV0IEkgZmVlbCwgSXQncyBiZXR0ZXIgdG8gZGUtY291cGxlIHRoaXMuIERlZmlu ZSB0aGlzCj4+Pj4+Pj4+PiBhcyBub3JtYWwgZW51bSB2YWx1ZXMgc2VxdWVudGlhbGx5IHNvIHRo YXQgdXNlcnNwYWNlIGdldCByZWFkYWJsZQo+Pj4+Pj4+Pj4gc2VyaWFsIG51bWJlcgo+Pj4+Pj4+ PiBraW5kIHZhbHVlcy4KPj4+Pj4+Pj4+IEFuZCB1c2UgdGhlc2UgaW4gZW5jb2RlciBmaWxlcyB0 byBnZXQgcHJvcGVyIHZhbHVlcyB0byBiZQo+Pj4+Pj4+Pj4gcHJvZ3JhbW1lZCBhcyBwZXIgcmVz cGVjdGl2ZSBzcGVjLCB3aGlsZSBkZWZpbmluZyB0aG9zZSB2YWx1ZXMgcGVyCj4+Pj4+Pj4+PiBl bmNvZGVyCj4+Pj4+PiBzZXBhcmF0ZWx5Lgo+Pj4+Pj4+PiBIb3BlIHRoaXMgaXMgZmluZS4KPj4+ Pj4+Pj4+Pj4gKy8qIEFkZGl0aW9uYWwgQ29sb3JpbWV0cnkgZXh0ZW5zaW9uIGFkZGVkIGFzIHBh cnQgb2YgQ1RBIDg2MS5HICovCj4+Pj4+Pj4+Pj4+ICsjZGVmaW5lIERSTV9NT0RFX0NPTE9SSU1F VFJZX0RDSV9QM19SR0JfRDY1CQkxMAo+Pj4+Pj4+Pj4+PiArI2RlZmluZSBEUk1fTU9ERV9DT0xP UklNRVRSWV9EQ0lfUDNfUkdCX1RIRUFURVIKPj4+Pj4+Pj4gCTExCj4+Pj4+Pj4+Pj4+ICsKPj4+ Pj4+Pj4+Pj4gKy8qIERQIE1TQSBDb2xvcmltZXRyeSBPcHRpb25zICovICNkZWZpbmUKPj4+Pj4+ Pj4+Pj4gK0RSTV9NT0RFX0RQX0NPTE9SSU1FVFJZX1lDQkNSX0lUVV82MDEKPj4+Pj4+IAkxMgo+ Pj4+Pj4+Pj4+PiArI2RlZmluZSBEUk1fTU9ERV9EUF9DT0xPUklNRVRSWV9ZQ0JDUl9JVFVfNzA5 Cj4+Pj4+PiAJMTMKPj4+Pj4+Pj4+PiBTdGlsbCBpbmNvbnNpc3RlbnQgbmFtaW5nIGluIG1hbnkg cGxhY2VzIChJVFVfIHZzLiBCVCwgWUNCQ1IgdnMuCj4+Pj4+Pj4+Pj4gWUNDLCBvcmRlciBvZiB0 aGUgdHdvKS4KPj4+Pj4+Pj4+IFdpbGwgZml4IHRoaXMuIFRoYW5rcyBWaWxsZS4KPj4+Pj4+Pj4+ Cj4+Pj4+Pj4+Pj4+ICsjZGVmaW5lIERSTV9NT0RFX0RQX0NPTE9SSU1FVFJZX1NSR0IJCQkxNAo+ Pj4+Pj4+Pj4+PiArI2RlZmluZSBEUk1fTU9ERV9EUF9DT0xPUklNRVRSWV9SR0JfV0lERV9HQU1V VAo+Pj4+Pj4+PiAJMTUKPj4+Pj4+Pj4+Pj4gKyNkZWZpbmUgRFJNX01PREVfRFBfQ09MT1JJTUVU UllfU0NSR0IKPj4+Pj4+IAkxNgo+Pj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+Pj4+ICAgIC8qKgo+Pj4+ Pj4+Pj4+PiAgICAgKiBzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAtIHJ1bnRpbWUgZGF0YSBhYm91 dCB0aGUgY29ubmVjdGVkIHNpbmsKPj4+Pj4+Pj4+Pj4gICAgICoKPj4+Pj4+Pj4+Pj4gQEAgLTUw Myw2ICs1MzksMTMgQEAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgewo+Pj4+Pj4+Pj4+PiAg ICAJdW5zaWduZWQgaW50IGNvbnRlbnRfcHJvdGVjdGlvbjsKPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ Pj4gICAgCS8qKgo+Pj4+Pj4+Pj4+PiArCSAqIEBjb2xvcnNwYWNlOiBTdGF0ZSB2YXJpYWJsZSBm b3IgQ29ubmVjdG9yIHByb3BlcnR5IHRvIHJlcXVlc3QKPj4+Pj4+Pj4+Pj4gKwkgKiBjb2xvcnNw YWNlIGNoYW5nZSBvbiBTaW5rLiBUaGlzIGlzIG1vc3QgY29tbW9ubHkgdXNlZCB0bwo+Pj4+Pj4g c3dpdGNoCj4+Pj4+Pj4+Pj4+ICsJICogdG8gd2lkZXIgY29sb3IgZ2FtdXRzIGxpa2UgQlQyMDIw Lgo+Pj4+Pj4+Pj4+PiArCSAqLwo+Pj4+Pj4+Pj4+PiArCXUzMiBjb2xvcnNwYWNlOwo+Pj4+Pj4+ Pj4+PiArCj4+Pj4+Pj4+Pj4+ICsJLyoqCj4+Pj4+Pj4+Pj4+ICAgIAkgKiBAd3JpdGViYWNrX2pv YjogV3JpdGViYWNrIGpvYiBmb3Igd3JpdGViYWNrIGNvbm5lY3RvcnMKPj4+Pj4+Pj4+Pj4gICAg CSAqCj4+Pj4+Pj4+Pj4+ICAgIAkgKiBIb2xkcyB0aGUgZnJhbWVidWZmZXIgYW5kIG91dC1mZW5j ZSBmb3IgYSB3cml0ZWJhY2sKPj4+Pj4+IGNvbm5lY3Rvci4KPj4+Pj4+Pj4+Pj4gQXMgQEAgLTk5 NSw2ICsxMDM4LDEyIEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yIHsKPj4+Pj4+Pj4+Pj4gICAgCXN0 cnVjdCBkcm1fcHJvcGVydHkgKmNvbnRlbnRfcHJvdGVjdGlvbl9wcm9wZXJ0eTsKPj4+Pj4+Pj4+ Pj4KPj4+Pj4+Pj4+Pj4gICAgCS8qKgo+Pj4+Pj4+Pj4+PiArCSAqIEBjb2xvcnNwYWNlX3Byb3Bl cnR5OiBDb25uZWN0b3IgcHJvcGVydHkgdG8gc2V0IHRoZSBzdWl0YWJsZQo+Pj4+Pj4+Pj4+PiAr CSAqIGNvbG9yc3BhY2Ugc3VwcG9ydGVkIGJ5IHRoZSBzaW5rLgo+Pj4+Pj4+Pj4+PiArCSAqLwo+ Pj4+Pj4+Pj4+PiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKmNvbG9yc3BhY2VfcHJvcGVydHk7Cj4+ Pj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+Pj4gKwkvKioKPj4+Pj4+Pj4+Pj4gICAgCSAqIEBwYXRoX2Js b2JfcHRyOgo+Pj4+Pj4+Pj4+PiAgICAJICoKPj4+Pj4+Pj4+Pj4gICAgCSAqIERSTSBibG9iIHBy b3BlcnR5IGRhdGEgZm9yIHRoZSBEUCBNU1QgcGF0aCBwcm9wZXJ0eS4gVGhpcwo+Pj4+Pj4+Pj4+ PiBzaG91bGQgb25seSBAQCAtMTI2OSw2ICsxMzE4LDcgQEAgaW50Cj4+Pj4+Pj4+Pj4+IGRybV9j b25uZWN0b3JfYXR0YWNoX3Zycl9jYXBhYmxlX3Byb3BlcnR5KAo+Pj4+Pj4+Pj4+PiAgICBpbnQg ZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfY29udGVudF9wcm90ZWN0aW9uX3Byb3BlcnR5KAo+Pj4+Pj4+ Pj4+PiAgICAJCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOyAgaW50Cj4+Pj4+Pj4+ Pj4+IGRybV9tb2RlX2NyZWF0ZV9hc3BlY3RfcmF0aW9fcHJvcGVydHkoc3RydWN0IGRybV9kZXZp Y2UgKmRldik7Cj4+Pj4+Pj4+Pj4+ICtpbnQgZHJtX21vZGVfY3JlYXRlX2NvbG9yc3BhY2VfcHJv cGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IKPj4+Pj4+Pj4+Pj4gKypjb25uZWN0b3IpOwo+Pj4+ Pj4+Pj4+PiAgICBpbnQgZHJtX21vZGVfY3JlYXRlX2NvbnRlbnRfdHlwZV9wcm9wZXJ0eShzdHJ1 Y3QgZHJtX2RldmljZQo+Pj4+Pj4+Pj4+PiAqZGV2KTsgdm9pZCBkcm1faGRtaV9hdmlfaW5mb2Zy YW1lX2NvbnRlbnRfdHlwZShzdHJ1Y3QKPj4+Pj4+Pj4+Pj4gaGRtaV9hdmlfaW5mb2ZyYW1lCj4+ Pj4+Pj4+Pj4gKmZyYW1lLAo+Pj4+Pj4+Pj4+PiAgICAJCQkJCSBjb25zdCBzdHJ1Y3QKPj4+Pj4+ IGRybV9jb25uZWN0b3Jfc3RhdGUKPj4+Pj4+Pj4+PiAqY29ubl9zdGF0ZSk7Cj4+Pj4+Pj4+Pj4+ IC0tCj4+Pj4+Pj4+Pj4+IDEuOS4xCj4+Pj4+Pj4+Pj4+Cj4+Pj4+IF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+Pj4+IEludGVsLWdmeCBtYWlsaW5nIGxp c3QKPj4+Pj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+Pj4+PiBodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK