From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from loongson.cn (loongson.cn [114.242.206.163]) by mx.groups.io with SMTP id smtpd.web08.4554.1662714532201142151 for ; Fri, 09 Sep 2022 02:08:53 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: loongson.cn, ip: 114.242.206.163, mailfrom: lixianglai@loongson.cn) Received: from lixianglai$loongson.cn ( [10.20.42.66] ) by ajax-webmail-localhost.localdomain (Coremail) ; Fri, 9 Sep 2022 17:08:48 +0800 (GMT+08:00) X-Originating-IP: [10.20.42.66] Date: Fri, 9 Sep 2022 17:08:48 +0800 (GMT+08:00) X-CM-HeaderCharset: UTF-8 From: "xianglai" To: gaoliming Cc: devel@edk2.groups.io, maobibo@loongson.cn Subject: =?UTF-8?B?UmU6IOWbnuWkjTogW2VkazItZGV2ZWxdIFtlZGsyLXBsYXRmb3Jtc11bUEFUQ0ggVjEgMDEvMTZdIFBsYXRmb3JtL0xvb25nc29uOiBBZGQgU2VyaWFsIFBvcnQgbGlicmFyeQ==?= X-Priority: 3 X-Mailer: Coremail Webmail Server Version XT5.0.14 build 20220411(feba7c69) Copyright (c) 2002-2022 www.mailtech.cn .loongson.cn In-Reply-To: <027c01d8c428$67c63ad0$3752b070$@byosoft.com.cn> References: <7775be2be248a91ee072180e9bebc00d94a21298.1662691771.git.lixianglai@loongson.cn> <027c01d8c428$67c63ad0$3752b070$@byosoft.com.cn> X-CM-CTRLDATA: A4+nO2Zvb3Rlcl90eHQ9NDY0NjY6NjEy MIME-Version: 1.0 Message-ID: <958f0bd.78c2.18321824253.Coremail.lixianglai@loongson.cn> X-Coremail-Locale: zh_CN X-CM-TRANSID: AQAAf8BxP+CgAhtjzUkVAA--.4893W X-CM-SenderInfo: 5ol0xt5qjotxo6or00hjvr0hdfq/1tbiAQAECGMZ21sYPgABsQ X-Coremail-Antispam: 1Ur529EdanIXcx71UUUUU7IcSsGvfJ3iIAIbVAYjsxI4VWkKw CS07vEb4IE77IF4wCS07vE1I0E4x80FVAKz4kxMIAIbVAFxVCaYxvI4VCIwcAKzIAtYxBI daVFxhVjvjDU= Content-Transfer-Encoding: base64 Content-Type: text/plain; charset=UTF-8 CkhpIExpbWluZzoKICBUaGFua3MgZm9yIHdyaXRpbmcgYmFjayBhbmQgZm9yIHRoZSB0aXBzLiBZ b3UgY2FuIGdldCBhbGwgdGhlIHBhdGNoZXMgYXQ6CiAgaHR0cHM6Ly9naXRodWIuY29tL2xvb25n c29uL2VkazItcGxhdGZvcm1zL3RyZWUvZGV2ZWwtTG9vbmdBcmNoLXBhdGNoCgpUaGFua3MKeGlh bmdsYWkKCj4gLS0tLS3ljp/lp4vpgq7ku7YtLS0tLQo+IOWPkeS7tuS6ujogZ2FvbGltaW5nIDxn YW9saW1pbmdAYnlvc29mdC5jb20uY24+Cj4g5Y+R6YCB5pe26Ze0OjIwMjItMDktMDkgMTY6NDQ6 NDIgKOaYn+acn+S6lCkKPiDmlLbku7bkuro6IGRldmVsQGVkazIuZ3JvdXBzLmlvLCBsaXhpYW5n bGFpQGxvb25nc29uLmNuCj4g5oqE6YCBOiBtYW9iaWJvQGxvb25nc29uLmNuCj4g5Li76aKYOiDl m57lpI06IFtlZGsyLWRldmVsXSBbZWRrMi1wbGF0Zm9ybXNdW1BBVENIIFYxIDAxLzE2XSBQbGF0 Zm9ybS9Mb29uZ3NvbjogQWRkIFNlcmlhbCBQb3J0IGxpYnJhcnkKPiAKPiBYaWFuZ2xhaToKPiAg IFBsZWFzZSBzaGFyZSB0aGUgZ2l0aHViIGxpbmsgdG8gZ2V0IGFsbCBwYXRjaGVzLiAKPiAKPiBU aGFua3MKPiBMaW1pbmcKPiA+IC0tLS0t6YKu5Lu25Y6f5Lu2LS0tLS0KPiA+IOWPkeS7tuS6ujog ZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiDku6PooaggeGlhbmds YWkKPiA+IOWPkemAgeaXtumXtDogMjAyMuW5tDnmnIg55pelIDExOjEyCj4gPiDmlLbku7bkuro6 IGRldmVsQGVkazIuZ3JvdXBzLmlvCj4gPiDmioTpgIE6IG1hb2JpYm9AbG9vbmdzb24uY24KPiA+ IOS4u+mimDogW2VkazItZGV2ZWxdIFtlZGsyLXBsYXRmb3Jtc11bUEFUQ0ggVjEgMDEvMTZdIFBs YXRmb3JtL0xvb25nc29uOgo+ID4gQWRkIFNlcmlhbCBQb3J0IGxpYnJhcnkKPiA+IAo+ID4gU2Vy aWFsIFBvcnQgbGlicmFyeSBmb3IgTG9vbmdhcmNoUWVtdVBrZwo+ID4gCj4gPiBTaWduZWQtb2Zm LWJ5OiB4aWFuZ2xhaSBsaSA8bGl4aWFuZ2xhaUBsb29uZ3Nvbi5jbj4KPiA+IC0tLQo+ID4gIC4u Li9Mb29uZ0FyY2hRZW11UGtnL0luY2x1ZGUvTGlicmFyeS9DcHUuaCAgICB8IDM0NCArKysrKysr KysrCj4gPiAgLi4uL0luY2x1ZGUvTG9vbmdBcmNoUWVtdVBsYXRmb3JtLmggICAgICAgICAgIHwg MTAzICsrKwo+ID4gIC4uLi9MaWJyYXJ5L1NlcmlhbFBvcnRMaWIvU2VyaWFsUG9ydExpYi5jICAg ICB8IDYxMiArKysrKysrKysrKysrKysrKysKPiA+ICAuLi4vTGlicmFyeS9TZXJpYWxQb3J0TGli L1NlcmlhbFBvcnRMaWIuaW5mICAgfCAgMzYgKysKPiA+ICA0IGZpbGVzIGNoYW5nZWQsIDEwOTUg aW5zZXJ0aW9ucygrKQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NAo+ID4gUGxhdGZvcm0vTG9vbmdz b24vTG9vbmdBcmNoUWVtdVBrZy9JbmNsdWRlL0xpYnJhcnkvQ3B1LmgKPiA+ICBjcmVhdGUgbW9k ZSAxMDA2NDQKPiA+IFBsYXRmb3JtL0xvb25nc29uL0xvb25nQXJjaFFlbXVQa2cvSW5jbHVkZS9M b29uZ0FyY2hRZW11UGxhdGZvcm0uaAo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NAo+ID4gUGxhdGZv cm0vTG9vbmdzb24vTG9vbmdBcmNoUWVtdVBrZy9MaWJyYXJ5L1NlcmlhbFBvcnRMaWIvU2VyaWFs UG9ydExpYi5jCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0Cj4gPiBQbGF0Zm9ybS9Mb29uZ3Nvbi9M b29uZ0FyY2hRZW11UGtnL0xpYnJhcnkvU2VyaWFsUG9ydExpYi9TZXJpYWxQb3J0TGliLmluCj4g PiBmCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9QbGF0Zm9ybS9Mb29uZ3Nvbi9Mb29uZ0FyY2hRZW11 UGtnL0luY2x1ZGUvTGlicmFyeS9DcHUuaAo+ID4gYi9QbGF0Zm9ybS9Mb29uZ3Nvbi9Mb29uZ0Fy Y2hRZW11UGtnL0luY2x1ZGUvTGlicmFyeS9DcHUuaAo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQK PiA+IGluZGV4IDAwMDAwMDAwMDAuLmRlNDY2YjdjNmYKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsr KyBiL1BsYXRmb3JtL0xvb25nc29uL0xvb25nQXJjaFFlbXVQa2cvSW5jbHVkZS9MaWJyYXJ5L0Nw dS5oCj4gPiBAQCAtMCwwICsxLDM0NCBAQAo+ID4gKy8qKiBAZmlsZQo+ID4gCj4gPiArCj4gPiAK PiA+ICsgIENvcHlyaWdodCAoYykgMjAyMSBMb29uZ3NvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9u IExpbWl0ZWQuIEFsbCByaWdodHMKPiA+IHJlc2VydmVkLjxCUj4KPiA+IAo+ID4gKwo+ID4gCj4g PiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudAo+ID4gCj4g PiArCj4gPiAKPiA+ICsgIEBwYXIgR2xvc3Nhcnk6Cj4gPiAKPiA+ICsgICAgLSBFWEMgICAgIC0g RXhjZXB0aW9uCj4gPiAKPiA+ICsgICAgLSBJTlQgICAgIC0gSW50ZXJydXB0Cj4gPiAKPiA+ICsg ICAgLSBGUFUgICAgIC0gRmxvYXRpbmcgUG9pbnQgVW5pdAo+ID4gCj4gPiArICAgIC0gQ1NSICAg ICAtIENQVSBTdGF0dXMgUmVnaXN0ZXIKPiA+IAo+ID4gKyAgICAtIFJFQURRICAgLSBSZWFkIFF1 YWQgV29yZAo+ID4gCj4gPiArKiovCj4gPiAKPiA+ICsjaWZuZGVmIExPT05HQVJDSF9DUFVfSF8K PiA+IAo+ID4gKyNkZWZpbmUgTE9PTkdBUkNIX0NQVV9IXwo+ID4gCj4gPiArCj4gPiAKPiA+ICsv KiBFeGNlcHRpb24gdHlwZXMgZGVjb2RlZCBieSBtYWNoZGVwIGV4Y2VwdGlvbiBkZWNvZGVyICov Cj4gPiAKPiA+ICsjZGVmaW5lIEVYQ19JTlQgICAgICAgICAwICAgICAgIC8qIEhXIGludGVycnVw dCAqLwo+ID4gCj4gPiArI2RlZmluZSBFWENfVExCTCAgICAgICAgMSAgICAgICAvKiBUTEIgbWlz cyBvbiBhIGxvYWQgKi8KPiA+IAo+ID4gKyNkZWZpbmUgRVhDX1RMQlMgICAgICAgIDIgICAgICAg LyogVExCIG1pc3Mgb24gYSBzdG9yZSAqLwo+ID4gCj4gPiArI2RlZmluZSBFWENfVExCSSAgICAg ICAgMyAgICAgICAvKiBUTEIgbWlzcyBvbiBhIGlmZXRjaCAqLwo+ID4gCj4gPiArI2RlZmluZSBF WENfVExCTSAgICAgICAgNCAgICAgICAvKiBUTEIgbW9kaWZpZWQgZmF1bHQgKi8KPiA+IAo+ID4g KyNkZWZpbmUgRVhDX1RMQlJJICAgICAgIDUgICAgICAgLyogVExCIFJlYWQtSW5oaWJpdCBleGNl cHRpb24gKi8KPiA+IAo+ID4gKyNkZWZpbmUgRVhDX1RMQlhJICAgICAgIDYgICAgICAgLyogVExC IEV4ZWN1dGlvbi1JbmhpYml0IGV4Y2VwdGlvbiAqLwo+ID4gCj4gPiArI2RlZmluZSBFWENfVExC UEUgICAgICAgNyAgICAgICAvKiBUTEIgUHJpdmlsZWdlIEVycm9yICovCj4gPiAKPiA+ICsjZGVm aW5lIEVYQ19BREUgICAgICAgICA4ICAgICAgIC8qIEFkZHJlc3MgRXJyb3IgKi8KPiA+IAo+ID4g KyNkZWZpbmUgRVhDX0FMRSAgICAgICAgIDkgICAgICAgLyogVW5hbGlnbiBBY2Nlc3MgKi8KPiA+ IAo+ID4gKyNkZWZpbmUgRVhDX09PQiAgICAgICAgIDEwICAgICAgLyogT3V0IG9mIGJvdW5kcyAq Lwo+ID4gCj4gPiArI2RlZmluZSBFWENfU1lTICAgICAgICAgMTEgICAgICAvKiBTeXN0ZW0gY2Fs bCAqLwo+ID4gCj4gPiArI2RlZmluZSBFWENfQlAgICAgICAgICAgMTIgICAgICAvKiBCcmVha3Bv aW50ICovCj4gPiAKPiA+ICsjZGVmaW5lIEVYQ19JTkUgICAgICAgICAxMyAgICAgIC8qIEluc3Qu IE5vdCBFeGlzdCAqLwo+ID4gCj4gPiArI2RlZmluZSBFWENfSVBFICAgICAgICAgMTQgICAgICAv KiBJbnN0LiBQcml2aWxlZ2VkIEVycm9yICovCj4gPiAKPiA+ICsjZGVmaW5lIEVYQ19GUERJUyAg ICAgICAxNSAgICAgIC8qIEZQVSBEaXNhYmxlZCAqLwo+ID4gCj4gPiArI2RlZmluZSBFWENfTFNY RElTICAgICAgMTYgICAgICAvKiBMU1ggRGlzYWJsZWQgKi8KPiA+IAo+ID4gKyNkZWZpbmUgRVhD X0xBU1hESVMgICAgIDE3ICAgICAgLyogTEFTWCBEaXNhYmxlZCAqLwo+ID4gCj4gPiArI2RlZmlu ZSBFWENfRlBFICAgICAgICAgMTggICAgICAvKiBGbG9hdGluZyBQb2ludCBFeGNlcHRpb24gKi8K PiA+IAo+ID4gKyNkZWZpbmUgRVhDX1dBVENIICAgICAgIDE5ICAgICAgLyogV2F0Y2ggYWRkcmVz cyByZWZlcmVuY2UgKi8KPiA+IAo+ID4gKyNkZWZpbmUgRVhDX0JBRCAgICAgICAgIDI1NSAgICAg LyogVW5kZWNvZGVhYmxlICovCj4gPiAKPiA+ICsKPiA+IAo+ID4gKyNkZWZpbmUgQ09QWV9TSUdD T0RFICAgIC8vIGNvcHkgc2lnY29kZSBhYm92ZSB1c2VyIHN0YWNrIGluIGV4ZWMKPiA+IAo+ID4g KyNkZWZpbmUgWkVSTyAgJHIwIC8qIHdpcmVkIHplcm8gKi8KPiA+IAo+ID4gKyNkZWZpbmUgUkEg ICAgJHIxIC8qIHJldHVybiBhZGRyZXNzICovCj4gPiAKPiA+ICsjZGVmaW5lIEdQICAgICRyMiAv KiBnbG9iYWwgcG9pbnRlciAtIGNhbGxlciBzYXZlZCBmb3IgUElDICovCj4gPiAKPiA+ICsjZGVm aW5lIFNQICAgICRyMyAvKiBzdGFjayBwb2ludGVyICovCj4gPiAKPiA+ICsjZGVmaW5lIFYwICAg ICRyNCAvKiByZXR1cm4gdmFsdWUgLSBjYWxsZXIgc2F2ZWQgKi8KPiA+IAo+ID4gKyNkZWZpbmUg VjEgICAgJHI1Cj4gPiAKPiA+ICsjZGVmaW5lIEEwICAgICRyNCAvKiBhcmd1bWVudCByZWdpc3Rl cnMgKi8KPiA+IAo+ID4gKyNkZWZpbmUgQTEgICAgJHI1Cj4gPiAKPiA+ICsjZGVmaW5lIEEyICAg ICRyNgo+ID4gCj4gPiArI2RlZmluZSBBMyAgICAkcjcKPiA+IAo+ID4gKyNkZWZpbmUgQTQgICAg JHI4IC8qIGFyZyByZWcgNjQgYml0OyBjYWxsZXIgc2F2ZWQgaW4gMzIgYml0ICovCj4gPiAKPiA+ ICsjZGVmaW5lIEE1ICAgICRyOQo+ID4gCj4gPiArI2RlZmluZSBBNiAgICAkcjEwCj4gPiAKPiA+ ICsjZGVmaW5lIEE3ICAgICRyMTEKPiA+IAo+ID4gKyNkZWZpbmUgVDAgICAgJHIxMiAvKiBjYWxs ZXIgc2F2ZWQgKi8KPiA+IAo+ID4gKyNkZWZpbmUgVDEgICAgJHIxMwo+ID4gCj4gPiArI2RlZmlu ZSBUMiAgICAkcjE0Cj4gPiAKPiA+ICsjZGVmaW5lIFQzICAgICRyMTUKPiA+IAo+ID4gKyNkZWZp bmUgVDQgICAgJHIxNiAvKiBjYWxsZWUgc2F2ZWQgKi8KPiA+IAo+ID4gKyNkZWZpbmUgVDUgICAg JHIxNwo+ID4gCj4gPiArI2RlZmluZSBUNiAgICAkcjE4Cj4gPiAKPiA+ICsjZGVmaW5lIFQ3ICAg ICRyMTkKPiA+IAo+ID4gKyNkZWZpbmUgVDggICAgJHIyMCAvKiBjYWxsZXIgc2F2ZWQgKi8KPiA+ IAo+ID4gKyNkZWZpbmUgVFAgICAgJHIyMSAvKiBUTFMgKi8KPiA+IAo+ID4gKyNkZWZpbmUgRlAg ICAgJHIyMiAvKiBmcmFtZSBwb2ludGVyICovCj4gPiAKPiA+ICsjZGVmaW5lIFMwICAgICRyMjMg LyogY2FsbGVlIHNhdmVkICovCj4gPiAKPiA+ICsjZGVmaW5lIFMxICAgICRyMjQKPiA+IAo+ID4g KyNkZWZpbmUgUzIgICAgJHIyNQo+ID4gCj4gPiArI2RlZmluZSBTMyAgICAkcjI2Cj4gPiAKPiA+ ICsjZGVmaW5lIFM0ICAgICRyMjcKPiA+IAo+ID4gKyNkZWZpbmUgUzUgICAgJHIyOAo+ID4gCj4g PiArI2RlZmluZSBTNiAgICAkcjI5Cj4gPiAKPiA+ICsjZGVmaW5lIFM3ICAgICRyMzAKPiA+IAo+ ID4gKyNkZWZpbmUgUzggICAgJHIzMSAvKiBjYWxsZWUgc2F2ZWQgKi8KPiA+IAo+ID4gKwo+ID4g Cj4gPiArI2RlZmluZSBGQ1NSMCAgICAgICAkcjAKPiA+IAo+ID4gKwo+ID4gCj4gPiArLy8KPiA+ IAo+ID4gKy8vIExvY2F0aW9uIG9mIHRoZSBzYXZlZCByZWdpc3RlcnMgcmVsYXRpdmUgdG8gWkVS Ty4KPiA+IAo+ID4gKy8vIFVzYWdlIGlzIHAtPnBfcmVnc1tYWF0uCj4gPiAKPiA+ICsvLwo+ID4g Cj4gPiArI2RlZmluZSBSQV9OVU0gICAgIDEKPiA+IAo+ID4gKyNkZWZpbmUgR1BfTlVNICAgICAy Cj4gPiAKPiA+ICsjZGVmaW5lIFNQX05VTSAgICAgMwo+ID4gCj4gPiArI2RlZmluZSBBMF9OVU0g ICAgIDQKPiA+IAo+ID4gKyNkZWZpbmUgQTFfTlVNICAgICA1Cj4gPiAKPiA+ICsjZGVmaW5lIEEy X05VTSAgICAgNgo+ID4gCj4gPiArI2RlZmluZSBBM19OVU0gICAgIDcKPiA+IAo+ID4gKyNkZWZp bmUgQTRfTlVNICAgICA4Cj4gPiAKPiA+ICsjZGVmaW5lIEE1X05VTSAgICAgOQo+ID4gCj4gPiAr I2RlZmluZSBBNl9OVU0gICAgIDEwCj4gPiAKPiA+ICsjZGVmaW5lIEE3X05VTSAgICAgMTEKPiA+ IAo+ID4gKyNkZWZpbmUgVDBfTlVNICAgICAxMgo+ID4gCj4gPiArI2RlZmluZSBUMV9OVU0gICAg IDEzCj4gPiAKPiA+ICsjZGVmaW5lIFQyX05VTSAgICAgMTQKPiA+IAo+ID4gKyNkZWZpbmUgVDNf TlVNICAgICAxNQo+ID4gCj4gPiArI2RlZmluZSBUNF9OVU0gICAgIDE2Cj4gPiAKPiA+ICsjZGVm aW5lIFQ1X05VTSAgICAgMTcKPiA+IAo+ID4gKyNkZWZpbmUgVDZfTlVNICAgICAxOAo+ID4gCj4g PiArI2RlZmluZSBUN19OVU0gICAgIDE5Cj4gPiAKPiA+ICsjZGVmaW5lIFQ4X05VTSAgICAgMjAK PiA+IAo+ID4gKyNkZWZpbmUgVFBfTlVNICAgICAyMQo+ID4gCj4gPiArI2RlZmluZSBGUF9OVU0g ICAgIDIyCj4gPiAKPiA+ICsjZGVmaW5lIFMwX05VTSAgICAgMjMKPiA+IAo+ID4gKyNkZWZpbmUg UzFfTlVNICAgICAyNAo+ID4gCj4gPiArI2RlZmluZSBTMl9OVU0gICAgIDI1Cj4gPiAKPiA+ICsj ZGVmaW5lIFMzX05VTSAgICAgMjYKPiA+IAo+ID4gKyNkZWZpbmUgUzRfTlVNICAgICAyNwo+ID4g Cj4gPiArI2RlZmluZSBTNV9OVU0gICAgIDI4Cj4gPiAKPiA+ICsjZGVmaW5lIFM2X05VTSAgICAg MjkKPiA+IAo+ID4gKyNkZWZpbmUgUzdfTlVNICAgICAzMAo+ID4gCj4gPiArI2RlZmluZSBTOF9O VU0gICAgIDMxCj4gPiAKPiA+ICsKPiA+IAo+ID4gKyNkZWZpbmUgRlAwX05VTSAgICAwCj4gPiAK PiA+ICsjZGVmaW5lIEZQMV9OVU0gICAgMQo+ID4gCj4gPiArI2RlZmluZSBGUDJfTlVNICAgIDIK PiA+IAo+ID4gKyNkZWZpbmUgRlAzX05VTSAgICAzCj4gPiAKPiA+ICsjZGVmaW5lIEZQNF9OVU0g ICAgNAo+ID4gCj4gPiArI2RlZmluZSBGUDVfTlVNICAgIDUKPiA+IAo+ID4gKyNkZWZpbmUgRlA2 X05VTSAgICA2Cj4gPiAKPiA+ICsjZGVmaW5lIEZQN19OVU0gICAgNwo+ID4gCj4gPiArI2RlZmlu ZSBGUDhfTlVNICAgIDgKPiA+IAo+ID4gKyNkZWZpbmUgRlA5X05VTSAgICA5Cj4gPiAKPiA+ICsj ZGVmaW5lIEZQMTBfTlVNICAgMTAKPiA+IAo+ID4gKyNkZWZpbmUgRlAxMV9OVU0gICAxMQo+ID4g Cj4gPiArI2RlZmluZSBGUDEyX05VTSAgIDEyCj4gPiAKPiA+ICsjZGVmaW5lIEZQMTNfTlVNICAg MTMKPiA+IAo+ID4gKyNkZWZpbmUgRlAxNF9OVU0gICAxNAo+ID4gCj4gPiArI2RlZmluZSBGUDE1 X05VTSAgIDE1Cj4gPiAKPiA+ICsjZGVmaW5lIEZQMTZfTlVNICAgMTYKPiA+IAo+ID4gKyNkZWZp bmUgRlAxN19OVU0gICAxNwo+ID4gCj4gPiArI2RlZmluZSBGUDE4X05VTSAgIDE4Cj4gPiAKPiA+ ICsjZGVmaW5lIEZQMTlfTlVNICAgMTkKPiA+IAo+ID4gKyNkZWZpbmUgRlAyMF9OVU0gICAyMAo+ ID4gCj4gPiArI2RlZmluZSBGUDIxX05VTSAgIDIxCj4gPiAKPiA+ICsjZGVmaW5lIEZQMjJfTlVN ICAgMjIKPiA+IAo+ID4gKyNkZWZpbmUgRlAyM19OVU0gICAyMwo+ID4gCj4gPiArI2RlZmluZSBG UDI0X05VTSAgIDI0Cj4gPiAKPiA+ICsjZGVmaW5lIEZQMjVfTlVNICAgMjUKPiA+IAo+ID4gKyNk ZWZpbmUgRlAyNl9OVU0gICAyNgo+ID4gCj4gPiArI2RlZmluZSBGUDI3X05VTSAgIDI3Cj4gPiAK PiA+ICsjZGVmaW5lIEZQMjhfTlVNICAgMjgKPiA+IAo+ID4gKyNkZWZpbmUgRlAyOV9OVU0gICAy OQo+ID4gCj4gPiArI2RlZmluZSBGUDMwX05VTSAgIDMwCj4gPiAKPiA+ICsjZGVmaW5lIEZQMzFf TlVNICAgMzEKPiA+IAo+ID4gKyNkZWZpbmUgRkNTUl9OVU0gICAzMgo+ID4gCj4gPiArI2RlZmlu ZSBGQ0NfTlVNICAgIDMzCj4gPiAKPiA+ICsKPiA+IAo+ID4gKyNpZmRlZiBfX0FTU0VNQkxZX18K PiA+IAo+ID4gKyNkZWZpbmUgX1VMQ0FTVF8KPiA+IAo+ID4gKyNkZWZpbmUgX1U2NENBU1RfCj4g PiAKPiA+ICsjZWxzZQo+ID4gCj4gPiArI2RlZmluZSBfVUxDQVNUXyAodW5zaWduZWQgbG9uZykK PiA+IAo+ID4gKyNkZWZpbmUgX1U2NENBU1RfICh1NjQpCj4gPiAKPiA+ICsjZW5kaWYKPiA+IAo+ ID4gKwo+ID4gCj4gPiArI2RlZmluZSBMT09OR0FSQ0hfQ1NSX0NSTUQgICAgICAwCj4gPiAKPiA+ ICsjZGVmaW5lIExPT05HQVJDSF9DU1JfUFJNRCAgICAgIDEKPiA+IAo+ID4gKyNkZWZpbmUgTE9P TkdBUkNIX0NTUl9FVUVOICAgICAgMgo+ID4gCj4gPiArI2RlZmluZSBDU1JfRVVFTl9MQlRFTl9T SElGVCAgICAgICAgMwo+ID4gCj4gPiArI2RlZmluZSBDU1JfRVVFTl9MQlRFTiAgICAgICAgICAg ICAgKF9VTENBU1RfKDB4MSkgPDwKPiA+IENTUl9FVUVOX0xCVEVOX1NISUZUKQo+ID4gCj4gPiAr I2RlZmluZSBDU1JfRVVFTl9MQVNYRU5fU0hJRlQgICAgICAgMgo+ID4gCj4gPiArI2RlZmluZSBD U1JfRVVFTl9MQVNYRU4gICAgICAgICAgICAgKF9VTENBU1RfKDB4MSkgPDwKPiA+IENTUl9FVUVO X0xBU1hFTl9TSElGVCkKPiA+IAo+ID4gKyNkZWZpbmUgQ1NSX0VVRU5fTFNYRU5fU0hJRlQgICAg ICAgIDEKPiA+IAo+ID4gKyNkZWZpbmUgQ1NSX0VVRU5fTFNYRU4gICAgICAgICAgICAgIChfVUxD QVNUXygweDEpIDw8Cj4gPiBDU1JfRVVFTl9MU1hFTl9TSElGVCkKPiA+IAo+ID4gKyNkZWZpbmUg Q1NSX0VVRU5fRlBFTl9TSElGVCAgICAgICAgIDAKPiA+IAo+ID4gKyNkZWZpbmUgQ1NSX0VVRU5f RlBFTiAgICAgICAgICAgICAgIChfVUxDQVNUXygweDEpIDw8Cj4gPiBDU1JfRVVFTl9GUEVOX1NI SUZUKQo+ID4gCj4gPiArI2RlZmluZSBMT09OR0FSQ0hfQ1NSX0VDRkcgICAgICA0Cj4gPiAKPiA+ ICsKPiA+IAo+ID4gKy8qIEV4Y2VwdGlvbiBzdGF0dXMgKi8KPiA+IAo+ID4gKyNkZWZpbmUgTE9P TkdBUkNIX0NTUl9FU1RBVCAgICAgNQo+ID4gCj4gPiArI2RlZmluZSBDU1JfRVNUQVRfRVNVQkNP REVfU0hJRlQgICAgICAgMjIKPiA+IAo+ID4gKyNkZWZpbmUgQ1NSX0VTVEFUX0VTVUJDT0RFX1dJ RFRIICAgICAgIDkKPiA+IAo+ID4gKyNkZWZpbmUgQ1NSX0VTVEFUX0VTVUJDT0RFICAgICAgICAg ICAgIChfVUxDQVNUXygweDFmZikgPDwKPiA+IENTUl9FU1RBVF9FU1VCQ09ERV9TSElGVCkKPiA+ IAo+ID4gKyNkZWZpbmUgQ1NSX0VTVEFUX0VYQ19TSElGVCAgICAgICAgICAgIDE2Cj4gPiAKPiA+ ICsjZGVmaW5lIENTUl9FU1RBVF9FWENfV0lEVEggICAgICAgICAgICA2Cj4gPiAKPiA+ICsjZGVm aW5lIENTUl9FU1RBVF9FWEMgICAgICAgICAgICAgICAgICAoX1VMQ0FTVF8oMHgzZikgPDwKPiA+ IENTUl9FU1RBVF9FWENfU0hJRlQpCj4gPiAKPiA+ICsjZGVmaW5lIENTUl9FU1RBVF9JU19TSElG VCAgICAgICAgICAgICAwCj4gPiAKPiA+ICsjZGVmaW5lIENTUl9FU1RBVF9JU19XSURUSCAgICAg ICAgICAgICAxNQo+ID4gCj4gPiArI2RlZmluZSBDU1JfRVNUQVRfSVMgICAgICAgICAgICAgICAg ICAgKF9VTENBU1RfKDB4N2ZmZikgPDwKPiA+IENTUl9FU1RBVF9JU19TSElGVCkKPiA+IAo+ID4g KyNkZWZpbmUgTE9PTkdBUkNIX0NTUl9FUEMgICAgICAgNgo+ID4gCj4gPiArI2RlZmluZSBMT09O R0FSQ0hfQ1NSX0JBRFYgICAgICA3Cj4gPiAKPiA+ICsjZGVmaW5lIExPT05HQVJDSF9DU1JfQkFE SU5TVCAgIDgKPiA+IAo+ID4gKyNkZWZpbmUgTE9PTkdBUkNIX0NTUl9CQURJICAgICAgOAo+ID4g Cj4gPiArI2RlZmluZSBMT09OR0FSQ0hfQ1NSX0VCQVNFICAgICAweGMgICAgIC8qIEV4Y2VwdGlv biBlbnRyeSBiYXNlCj4gPiBhZGRyZXNzICovCj4gPiAKPiA+ICsjZGVmaW5lIExPT05HQVJDSF9D U1JfQ1BVTlVNICAgIDB4MjAgICAgLyogQ1BVIGNvcmUgbnVtYmVyICovCj4gPiAKPiA+ICsKPiA+ IAo+ID4gKy8qIHJlZ2lzdGVyIG51bWJlciBzYXZlIGluIHN0YWNrIG9uIGV4Y2VwdGlvbiAqLwo+ ID4gCj4gPiArI2RlZmluZSBGUF9CQVNFX05VTSAgICAgICAgICAgICAzNAo+ID4gCj4gPiArI2Rl ZmluZSBCQVNFX05VTSAgICAgICAgICAgICAgICAzMgo+ID4gCj4gPiArI2RlZmluZSBDU1JfTlVN ICAgICAgICAgICAgICAgICAxMAo+ID4gCj4gPiArI2RlZmluZSBGUF9CQVNFX0lOREVYICAgICAg ICAgICAoQ1NSX05VTSArIEJBU0VfTlVNKQo+ID4gCj4gPiArI2RlZmluZSBCT09UQ09SRV9JRCAg ICAgIDAKPiA+IAo+ID4gKwo+ID4gCj4gPiArI2RlZmluZSBMT09OR1NPTl9JT0NTUl9JUElfU1RB VFVTICAweDEwMDAKPiA+IAo+ID4gKyNkZWZpbmUgTE9PTkdTT05fSU9DU1JfSVBJX0VOICAgICAg MHgxMDA0Cj4gPiAKPiA+ICsjZGVmaW5lIExPT05HU09OX0lPQ1NSX0lQSV9TRVQgICAgIDB4MTAw OAo+ID4gCj4gPiArI2RlZmluZSBMT09OR1NPTl9JT0NTUl9JUElfQ0xFQVIgICAweDEwMGMKPiA+ IAo+ID4gKyNkZWZpbmUgTE9PTkdTT05fQ1NSX01BSUxfQlVGMCAgICAgMHgxMDIwCj4gPiAKPiA+ ICsjZGVmaW5lIExPT05HU09OX0NTUl9NQUlMX0JVRjEgICAgIDB4MTAyOAo+ID4gCj4gPiArI2Rl ZmluZSBMT09OR1NPTl9DU1JfTUFJTF9CVUYyICAgICAweDEwMzAKPiA+IAo+ID4gKyNkZWZpbmUg TE9PTkdTT05fQ1NSX01BSUxfQlVGMyAgICAgMHgxMDM4Cj4gPiAKPiA+ICsKPiA+IAo+ID4gKy8q IEJpdCBEb21haW5zIGZvciBDRkcgcmVnaXN0ZXJzICovCj4gPiAKPiA+ICsjZGVmaW5lIExPT05H QVJDSF9DUFVDRkc0ICAgICAgICAgIDB4NAo+ID4gCj4gPiArI2RlZmluZSBMT09OR0FSQ0hfQ1BV Q0ZHNSAgICAgICAgICAweDUKPiA+IAo+ID4gKwo+ID4gCj4gPiArLyogS3NjcmF0Y2ggcmVnaXN0 ZXJzICovCj4gPiAKPiA+ICsjZGVmaW5lIExPT05HQVJDSF9DU1JfS1MwICAgICAgICAgIDB4MzAK PiA+IAo+ID4gKyNkZWZpbmUgTE9PTkdBUkNIX0NTUl9LUzEgICAgICAgICAgMHgzMQo+ID4gCj4g PiArCj4gPiAKPiA+ICsvKiBTdGFibGUgdGltZXIgcmVnaXN0ZXJzICovCj4gPiAKPiA+ICsjZGVm aW5lIExPT05HQVJDSF9DU1JfVE1DRkcgICAgICAgICAgICAgMHg0MQo+ID4gCj4gPiArI2RlZmlu ZSBMT09OR0FSQ0hfQ1NSX1RNQ0ZHX0VOICAgICAgICAgICgxVUxMIDw8IDApCj4gPiAKPiA+ICsj ZGVmaW5lIExPT05HQVJDSF9DU1JfVE1DRkdfUEVSSU9EICAgICAgKDFVTEwgPDwgMSkKPiA+IAo+ ID4gKyNkZWZpbmUgTE9PTkdBUkNIX0NTUl9UTUNGR19USU1FVkFMICAgICAoMHgzZmZmZmZmZmZm ZmZVTEwgPDwgMikKPiA+IAo+ID4gKyNkZWZpbmUgTE9PTkdBUkNIX0NTUl9UVkFMICAgICAgICAg MHg0MiAgICAvKiBUaW1lciB2YWx1ZSAqLwo+ID4gCj4gPiArI2RlZmluZSBMT09OR0FSQ0hfQ1NS X0NOVEMgICAgICAgICAweDQzICAgIC8qIFRpbWVyIG9mZnNldCAqLwo+ID4gCj4gPiArI2RlZmlu ZSBMT09OR0FSQ0hfQ1NSX1RJTlRDTFIgICAgICAweDQ0ICAgIC8qIFRpbWVyIGludGVycnVwdAo+ ID4gY2xlYXIgKi8KPiA+IAo+ID4gKwo+ID4gCj4gPiArLyogVExCIHJlZmlsbCBleGNlcHRpb24g YmFzZSBhZGRyZXNzICovCj4gPiAKPiA+ICsjZGVmaW5lIExPT05HQVJDSF9DU1JfVExCUkVCQVNF ICAgIDB4ODgKPiA+IAo+ID4gKyNkZWZpbmUgTE9PTkdBUkNIX0NTUl9UTEJSU0FWRSAgICAgMHg4 YiAgICAvKiBLU2NyYXRjaCBmb3IgVExCCj4gPiByZWZpbGwgZXhjZXB0aW9uICovCj4gPiAKPiA+ ICsjZGVmaW5lIExPT05HQVJDSF9DU1JfUEdEICAgICAgICAgIDB4MWIgICAgLyogUGFnZSB0YWJs ZSBiYXNlICovCj4gPiAKPiA+ICsKPiA+IAo+ID4gKy8qIEJpdHMgOCBhbmQgOSBvZiBGUFUgU3Rh dHVzIFJlZ2lzdGVyIHNwZWNpZnkgdGhlIHJvdW5kaW5nIG1vZGUgKi8KPiA+IAo+ID4gKyNkZWZp bmUgRlBVX0NTUl9STSAgICAgIDB4MzAwCj4gPiAKPiA+ICsjZGVmaW5lIEZQVV9DU1JfUk4gICAg ICAweDAwMCAgIC8qIG5lYXJlc3QgKi8KPiA+IAo+ID4gKyNkZWZpbmUgRlBVX0NTUl9SWiAgICAg IDB4MTAwICAgLyogdG93YXJkcyB6ZXJvICovCj4gPiAKPiA+ICsjZGVmaW5lIEZQVV9DU1JfUlUg ICAgICAweDIwMCAgIC8qIHRvd2FyZHMgK0luZmluaXR5ICovCj4gPiAKPiA+ICsjZGVmaW5lIEZQ VV9DU1JfUkQgICAgICAweDMwMCAgIC8qIHRvd2FyZHMgLUluZmluaXR5ICovCj4gPiAKPiA+ICsK PiA+IAo+ID4gKy8qCj4gPiAKPiA+ICsgIFJlYWRzIGRhdGEgZnJvbSB0aGUgc3BlY2lmaWVkIENT UiByZWdpc3Rlci4KPiA+IAo+ID4gKwo+ID4gCj4gPiArICBAcGFyYW1bT1VUXSAgdmFsICAgVGhl IHZhbHVlIGlzIHJlYWQgZnJvbSB0aGUgQ1NSIHNwZWNpZmllZCByZWdpc3Rlci4KPiA+IAo+ID4g KyAgQHBhcmFtW0lOXSAgcmVnICAgIFNwZWNpZmllcyB0aGUgcmVnaXN0ZXIgbnVtYmVyIG9mIHRo ZSBDU1IgdG8gcmVhZAo+ID4gdGhlIGRhdGEuCj4gPiAKPiA+ICsKPiA+IAo+ID4gKyAgQHJldHZh bCAgVk9JRAo+ID4gCj4gPiArICovCj4gPiAKPiA+ICsjZGVmaW5lIExPT05HQVJDSF9DU1JfUkVB RFEodmFsLCByZWcpICAgICAgICAgICAgICAgICAgIFwKPiA+IAo+ID4gK2RvIHsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gCj4gPiArICBV SU5UNjQgX19yZXM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4g PiAKPiA+ICsgIC8qIGNzcnJkIHJkLCBjc3JfbnVtICovICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKPiA+IAo+ID4gKyAgX19hc21fXyBfX3ZvbGF0aWxlX18oICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAo+ID4gCj4gPiArICAgICAgICAgICJjc3JyZCAgJTAsICUxIFxu XHQiICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiAKPiA+ICsgICAgICAgICAgOiI9ciIo X19yZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+IAo+ID4gKyAgICAg ICAgICA6ImkiKHJlZykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4g Cj4gPiArICAgICAgICAgIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCj4gPiAKPiA+ICsgICAgICAgICAgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKPiA+IAo+ID4gKyAgKHZhbCkgPSBfX3JlczsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gCj4gPiArfSB3aGlsZSgwKQo+ID4gCj4g PiArCj4gPiAKPiA+ICsvKgo+ID4gCj4gPiArICBXcml0ZSBkYXRhIHRvIHRoZSBzcGVjaWZpZWQg Q1NSIHJlZ2lzdGVyLgo+ID4gCj4gPiArCj4gPiAKPiA+ICsgIEBwYXJhbVtPVVRdICB2YWwgICBU aGUgdmFsdWUgaXMgd3JpdGUgdG8gdGhlIENTUiBzcGVjaWZpZWQgcmVnaXN0ZXIuCj4gPiAKPiA+ ICsgIEBwYXJhbVtJTl0gIHJlZyAgICBTcGVjaWZpZXMgdGhlIHJlZ2lzdGVyIG51bWJlciBvZiB0 aGUgQ1NSIHRvIHdyaXRlCj4gPiB0aGUgZGF0YS4KPiA+IAo+ID4gKwo+ID4gCj4gPiArICBAcmV0 dmFsICBWT0lECj4gPiAKPiA+ICsgKi8KPiA+IAo+ID4gKyNkZWZpbmUgTE9PTkdBUkNIX0NTUl9X UklURVEodmFsLCByZWcpICAgICAgICAgICAgICAgICBcCj4gPiAKPiA+ICtkbyB7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gCj4gPiArICBV SU5UNjQgX192YWwgPSB2YWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ IAo+ID4gKyAgLyogY3Nyd3IgcmQsIGNzcl9udW0gKi8gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCj4gPiAKPiA+ICsgIF9fYXNtX18gX192b2xhdGlsZV9fKCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAo+ID4gCj4gPiArICAgICAgICAgICJjc3J3ciAgJTAsICUxIFxuXHQi ICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+IAo+ID4gKyAgICAgICAgICA6ICIrciIoX192 YWwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiAKPiA+ICsgICAgICAgICAg OiAiaSIocmVnKSwgInIiKF9fdmFsKSAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gCj4gPiAr ICAgICAgICAgIDogIm1lbW9yeSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK PiA+IAo+ID4gKyAgICAgICAgICApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCj4gPiAKPiA+ICt9IHdoaWxlKDApCj4gPiAKPiA+ICsKPiA+IAo+ID4gKy8qCj4g PiAKPiA+ICsgIEV4Y2hhbmdlIHNwZWNpZmllZCBiaXQgZGF0YSB3aXRoIHRoZSBzcGVjaWZpZWQg Q1NSIHJlZ2lzdGVycwo+ID4gCj4gPiArCj4gPiAKPiA+ICsgIEBwYXJhbVtJTl0gIHZhbCAgIFRo ZSB2YWx1ZSBFeGNoYW5nZWQgd2l0aCB0aGUgQ1NSIHNwZWNpZmllZAo+ID4gcmVnaXN0ZXIuCj4g PiAKPiA+ICsgIEBwYXJhbVtJTl0gIG1hc2sgICBTcGVjaWZpZXMgdGhlIG1hc2sgZm9yIHN3YXBw aW5nIGJpdHMKPiA+IAo+ID4gKyAgQHBhcmFtW0lOXSAgcmVnICAgIFNwZWNpZmllcyB0aGUgcmVn aXN0ZXIgbnVtYmVyIG9mIHRoZSBDU1IgdG8KPiA+IEV4Y2hhbmdlIHRoZSBkYXRhLgo+ID4gCj4g PiArCj4gPiAKPiA+ICsgIEByZXR2YWwgIFZPSUQKPiA+IAo+ID4gKyAqLwo+ID4gCj4gPiArI2Rl ZmluZSBMT09OR0FSQ0hfQ1NSX1hDSEdRKHZhbCwgbWFzaywgcmVnKSAgICAgICAgICBcCj4gPiAK PiA+ICtkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKPiA+IAo+ID4gKyAgVUlOVDY0IF9fdmFsID0gdmFsOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAo+ID4gCj4gPiArICBVSU5UNjQgX19tYXNrID0gbWFzazsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCj4gPiAKPiA+ICsgIC8qIGNzcndyIHJkLCBjc3JfbnVtICovICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+IAo+ID4gKyAgX19hc21fXyBfX3ZvbGF0aWxl X18oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gCj4gPiArICAgICAgICAgICJj c3J4Y2hnICAlMCwgJTEsICUyIFxuXHQiICAgICAgICAgICAgICAgICBcCj4gPiAKPiA+ICsgICAg ICAgICAgOiAiK3IiKF9fdmFsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+IAo+ ID4gKyAgICAgICAgICA6ICJyIihfX21hc2spLCAiaSIocmVnKSwgInIiKF9fdmFsKSAgICAgICAg XAo+ID4gCj4gPiArICAgICAgICAgIDogIm1lbW9yeSIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCj4gPiAKPiA+ICsgICAgICAgICAgKTsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKPiA+IAo+ID4gK30gd2hpbGUoMCkKPiA+IAo+ID4gKy8qCj4gPiAK PiA+ICsgIFJlYWRzIGRhdGEgZnJvbSB0aGUgc3BlY2lmaWVkIENQVUNGRyByZWdpc3Rlci4KPiA+ IAo+ID4gKwo+ID4gCj4gPiArICBAcGFyYW1bT1VUXSAgdmFsICAgVGhlIHZhbHVlIGlzIHJlYWQg ZnJvbSB0aGUgQ1BVQ0ZHIHNwZWNpZmllZAo+ID4gcmVnaXN0ZXIuCj4gPiAKPiA+ICsgIEBwYXJh bVtJTl0gIHJlZyAgICBTcGVjaWZpZXMgdGhlIHJlZ2lzdGVyIG51bWJlciBvZiB0aGUgQ1BVQ0ZH IHRvCj4gPiByZWFkIHRoZSBkYXRhLgo+ID4gCj4gPiArCj4gPiAKPiA+ICsgIEByZXR2YWwgIFZP SUQKPiA+IAo+ID4gKyAqLwo+ID4gCj4gPiArI2RlZmluZSBMT09OR0FSQ0hfR0VUX0NQVUNGRyh2 YWwsIHJlZykgICAgICAgICAgICAgICBcCj4gPiAKPiA+ICtkbyB7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+IAo+ID4gKyAgVUlOVDY0IF9fcmVz OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gCj4gPiArICAvKiBj cHVjZmcgcmQsIHJqICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiAKPiA+ ICsgIF9fYXNtX18gX192b2xhdGlsZV9fKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK PiA+IAo+ID4gKyAgICAgICAgICAiY3B1Y2ZnICAlMCwgJTEgXG5cdCIgICAgICAgICAgICAgICAg ICAgICAgXAo+ID4gCj4gPiArICAgICAgICAgIDoiPXIiKF9fcmVzKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCj4gPiAKPiA+ICsgICAgICAgICAgOiJyIihyZWcpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKPiA+IAo+ID4gKyAgICAgICAgICA6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gCj4gPiArICAgICAgICAgICk7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiAKPiA+ICsgIHZhbCA9 IChVSU5UMzIpX19yZXM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+IAo+ID4g K30gd2hpbGUoMCkKPiA+IAo+ID4gKwo+ID4gCj4gPiArLyoKPiA+IAo+ID4gKyAgRW5hYmxlcyAg ZmxvYXRpbmctcG9pbnQgdW5pdAo+ID4gCj4gPiArCj4gPiAKPiA+ICsgIEBwYXJhbSAgVk9JRAo+ ID4gCj4gPiArCj4gPiAKPiA+ICsgIEByZXR2YWwgIFZPSUQKPiA+IAo+ID4gKyAqLwo+ID4gCj4g PiArI2RlZmluZSBMT09OR0FSQ0hfRU5BQkxSX0ZQVSgpICAgICAgICAgICAgICAgICAgICAgICBc Cj4gPiAKPiA+ICtkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKPiA+IAo+ID4gKyAgTE9PTkdBUkNIX0NTUl9YQ0hHUShDU1JfRVVFTl9GUEVOLCAg ICAgICAgICAgICAgICAgXAo+ID4gCj4gPiArICAgICAgICAgICAgICAgICAgICAgIENTUl9FVUVO X0ZQRU4sICAgICAgICAgICAgICAgICBcCj4gPiAKPiA+ICsgICAgICAgICAgICAgICAgICAgICAg TE9PTkdBUkNIX0NTUl9FVUVOKTsgICAgICAgICAgIFwKPiA+IAo+ID4gK30gd2hpbGUgKDApCj4g PiAKPiA+ICsKPiA+IAo+ID4gKy8qCj4gPiAKPiA+ICsgIERpc2FibGUgIGZsb2F0aW5nLXBvaW50 IHVuaXQKPiA+IAo+ID4gKwo+ID4gCj4gPiArICBAcGFyYW0gIFZPSUQKPiA+IAo+ID4gKwo+ID4g Cj4gPiArICBAcmV0dmFsICBWT0lECj4gPiAKPiA+ICsgKi8KPiA+IAo+ID4gKyNkZWZpbmUgTE9P TkdBUkNIX0RJU0FCTEVfRlBVKCkgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gCj4gPiArZG8g eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiAK PiA+ICsgIExPT05HQVJDSF9DU1JfWENIR1EoMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKPiA+IAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICBDU1JfRVVFTl9GUEVOLCAgICAgICAg ICAgICAgICAgXAo+ID4gCj4gPiArICAgICAgICAgICAgICAgICAgICAgIExPT05HQVJDSF9DU1Jf RVVFTik7ICAgICAgICAgICBcCj4gPiAKPiA+ICt9IHdoaWxlICgwKQo+ID4gCj4gPiArCj4gPiAK PiA+ICsjZW5kaWYKPiA+IAo+ID4gZGlmZiAtLWdpdAo+ID4gYS9QbGF0Zm9ybS9Mb29uZ3Nvbi9M b29uZ0FyY2hRZW11UGtnL0luY2x1ZGUvTG9vbmdBcmNoUWVtdVBsYXRmb3JtLgo+ID4gaAo+ID4g Yi9QbGF0Zm9ybS9Mb29uZ3Nvbi9Mb29uZ0FyY2hRZW11UGtnL0luY2x1ZGUvTG9vbmdBcmNoUWVt dVBsYXRmb3JtLgo+ID4gaAo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+IGluZGV4IDAwMDAw MDAwMDAuLjYyYjgxZDg4YzMKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsrKwo+ID4gYi9QbGF0Zm9y bS9Mb29uZ3Nvbi9Mb29uZ0FyY2hRZW11UGtnL0luY2x1ZGUvTG9vbmdBcmNoUWVtdVBsYXRmb3Jt Lgo+ID4gaAo+ID4gQEAgLTAsMCArMSwxMDMgQEAKPiA+ICsvKiogQGZpbGUKPiA+IAo+ID4gKyAg IExvb25nQXJjaCBRZW11IFBsYXRmb3JtIG1hY3JvIGRlZmluaXRpb24uCj4gPiAKPiA+ICsKPiA+ IAo+ID4gKyAgIENvcHlyaWdodCAoYykgMjAyMSwgTG9vbmdzb24gTGltaXRlZC4gQWxsIHJpZ2h0 cyByZXNlcnZlZC4KPiA+IAo+ID4gKwo+ID4gCj4gPiArICAgU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQKPiA+IAo+ID4gKwo+ID4gCj4gPiArICoqLwo+ID4gCj4g PiArCj4gPiAKPiA+ICsjaWZuZGVmIExPT05HQVJDSF9RRU1VX1BMQVRGT1JNX0hfCj4gPiAKPiA+ ICsjZGVmaW5lIExPT05HQVJDSF9RRU1VX1BMQVRGT1JNX0hfCj4gPiAKPiA+ICsKPiA+IAo+ID4g Kwo+ID4gCj4gPiArLyogQWNwaSBwbSBkZXZpY2UgKi8KPiA+IAo+ID4gKyNkZWZpbmUgTFM3QV9Q Q0hfUkVHX0JBU0UgICAgICAgICAgICAgMHgxMDAwMDAwMFVMCj4gPiAKPiA+ICsjZGVmaW5lIExT N0FfQUNQSV9SRUdfQkFTRSAgICAgICAgICAgIChMUzdBX1BDSF9SRUdfQkFTRSAgKwo+ID4gMHgw MDBEMDAwMCkKPiA+IAo+ID4gKyNkZWZpbmUgTFM3QV9QTV9DTlRfQkxLICAgICAgICAgICAgICAg KDB4MTQpIC8qIDIgYnl0ZXMgKi8KPiA+IAo+ID4gKyNkZWZpbmUgTFM3QV9HUEUwX1JFU0VUX1JF RyAgICAgICAgICAgKDB4MzApIC8qIDQgYnl0ZXMgKi8KPiA+IAo+ID4gKwo+ID4gCj4gPiArI2Rl ZmluZSBBQ1BJX0JJVE1BU0tfU0xFRVBfVFlQRSAgICAgICAweDFDMDAKPiA+IAo+ID4gKyNkZWZp bmUgQUNQSV9CSVRNQVNLX1NMRUVQX0VOQUJMRSAgICAgMHgyMDAwCj4gPiAKPiA+ICsKPiA+IAo+ ID4gKwo+ID4gCj4gPiArLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KPiA+IAo+ID4gKy8vIFVBUlQgUmVnaXN0ZXIgT2Zmc2V0cwo+ID4gCj4gPiArLy8tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IAo+ID4gKyNkZWZp bmUgQkFVRF9MT1dfT0ZGU0VUICAgICAgICAgMHgwMAo+ID4gCj4gPiArI2RlZmluZSBCQVVEX0hJ R0hfT0ZGU0VUICAgICAgICAweDAxCj4gPiAKPiA+ICsjZGVmaW5lIElFUl9PRkZTRVQgICAgICAg ICAgICAgIDB4MDEKPiA+IAo+ID4gKyNkZWZpbmUgTENSX1NIQURPV19PRkZTRVQgICAgICAgMHgw MQo+ID4gCj4gPiArI2RlZmluZSBGQ1JfU0hBRE9XX09GRlNFVCAgICAgICAweDAyCj4gPiAKPiA+ ICsjZGVmaW5lIElSX0NPTlRST0xfT0ZGU0VUICAgICAgIDB4MDIKPiA+IAo+ID4gKyNkZWZpbmUg RkNSX09GRlNFVCAgICAgICAgICAgICAgMHgwMgo+ID4gCj4gPiArI2RlZmluZSBFSVJfT0ZGU0VU ICAgICAgICAgICAgICAweDAyCj4gPiAKPiA+ICsjZGVmaW5lIEJTUl9PRkZTRVQgICAgICAgICAg ICAgIDB4MDMKPiA+IAo+ID4gKyNkZWZpbmUgTENSX09GRlNFVCAgICAgICAgICAgICAgMHgwMwo+ ID4gCj4gPiArI2RlZmluZSBNQ1JfT0ZGU0VUICAgICAgICAgICAgICAweDA0Cj4gPiAKPiA+ICsj ZGVmaW5lIExTUl9PRkZTRVQgICAgICAgICAgICAgIDB4MDUKPiA+IAo+ID4gKyNkZWZpbmUgTVNS X09GRlNFVCAgICAgICAgICAgICAgMHgwNgo+ID4gCj4gPiArCj4gPiAKPiA+ICsvKiBjaGFyYWN0 ZXIgZm9ybWF0IGNvbnRyb2wgcmVnaXN0ZXIgKi8KPiA+IAo+ID4gKyNkZWZpbmUgQ0ZDUl9ETEFC ICAgMHg4MCAgLyogZGl2aXNvciBsYXRjaCAqLwo+ID4gCj4gPiArI2RlZmluZSBDRkNSX1NCUkVB SyAweDQwICAvKiBzZW5kIGJyZWFrICovCj4gPiAKPiA+ICsjZGVmaW5lIENGQ1JfUFpFUk8gIDB4 MzAgIC8qIHplcm8gcGFyaXR5ICovCj4gPiAKPiA+ICsjZGVmaW5lIENGQ1JfUE9ORSAgIDB4MjAg IC8qIG9uZSBwYXJpdHkgKi8KPiA+IAo+ID4gKyNkZWZpbmUgQ0ZDUl9QRVZFTiAgMHgxMCAgLyog ZXZlbiBwYXJpdHkgKi8KPiA+IAo+ID4gKyNkZWZpbmUgQ0ZDUl9QT0REICAgMHgwMCAgLyogb2Rk IHBhcml0eSAqLwo+ID4gCj4gPiArI2RlZmluZSBDRkNSX1BFTkFCICAweDA4ICAvKiBwYXJpdHkg ZW5hYmxlICovCj4gPiAKPiA+ICsjZGVmaW5lIENGQ1JfU1RPUEIgIDB4MDQgIC8qIDIgc3RvcCBi aXRzICovCj4gPiAKPiA+ICsjZGVmaW5lIENGQ1JfOEJJVFMgIDB4MDMgIC8qIDggZGF0YSBiaXRz ICovCj4gPiAKPiA+ICsjZGVmaW5lIENGQ1JfN0JJVFMgIDB4MDIgIC8qIDcgZGF0YSBiaXRzICov Cj4gPiAKPiA+ICsjZGVmaW5lIENGQ1JfNkJJVFMgIDB4MDEgIC8qIDYgZGF0YSBiaXRzICovCj4g PiAKPiA+ICsjZGVmaW5lIENGQ1JfNUJJVFMgIDB4MDAgIC8qIDUgZGF0YSBiaXRzICovCj4gPiAK PiA+ICsvKiBtb2RlbSBjb250cm9sIHJlZ2lzdGVyICovCj4gPiAKPiA+ICsjZGVmaW5lIE1DUl9M T09QQkFDSyAgMHgxMCAgLyogbG9vcGJhY2sgKi8KPiA+IAo+ID4gKyNkZWZpbmUgTUNSX0lFTkFC TEUgICAweDA4ICAvKiBvdXRwdXQgMiA9IGludCBlbmFibGUgKi8KPiA+IAo+ID4gKyNkZWZpbmUg TUNSX0RSUyAgICAgICAweDA0ICAvKiBvdXRwdXQgMSA9IHh4eCAqLwo+ID4gCj4gPiArI2RlZmlu ZSBNQ1JfUlRTICAgICAgIDB4MDIgIC8qIGVuYWJsZSBSVFMgKi8KPiA+IAo+ID4gKyNkZWZpbmUg TUNSX0RUUiAgICAgICAweDAxICAvKiBlbmFibGUgRFRSICovCj4gPiAKPiA+ICsKPiA+IAo+ID4g Ky8qIGxpbmUgc3RhdHVzIHJlZ2lzdGVyICovCj4gPiAKPiA+ICsjZGVmaW5lIExTUl9SQ1ZfRklG TyAgMHg4MCAgLyogZXJyb3IgaW4gcmVjZWl2ZSBmaWZvICovCj4gPiAKPiA+ICsjZGVmaW5lIExT Ul9UU1JFICAgICAgMHg0MCAgLyogdHJhbnNtaXR0ZXIgZW1wdHkgKi8KPiA+IAo+ID4gKyNkZWZp bmUgTFNSX1RYUkRZICAgICAweDIwICAvKiB0cmFuc21pdHRlciByZWFkeSAqLwo+ID4gCj4gPiAr I2RlZmluZSBMU1JfQkkgICAgICAgIDB4MTAgIC8qIGJyZWFrIGRldGVjdGVkICovCj4gPiAKPiA+ ICsjZGVmaW5lIExTUl9GRSAgICAgICAgMHgwOCAgLyogZnJhbWluZyBlcnJvciAqLwo+ID4gCj4g PiArI2RlZmluZSBMU1JfUEUgICAgICAgIDB4MDQgIC8qIHBhcml0eSBlcnJvciAqLwo+ID4gCj4g PiArI2RlZmluZSBMU1JfT0UgICAgICAgIDB4MDIgIC8qIG92ZXJydW4gZXJyb3IgKi8KPiA+IAo+ ID4gKyNkZWZpbmUgTFNSX1JYUkRZICAgICAweDAxICAvKiByZWNlaXZlciByZWFkeSAqLwo+ID4g Cj4gPiArI2RlZmluZSBMU1JfUkNWX01BU0sgIDB4MWYKPiA+IAo+ID4gKwo+ID4gCj4gPiArLyog MTY1NTAgVUFSVCByZWdpc3RlciBvZmZzZXRzIGFuZCBiaXRmaWVsZHMgKi8KPiA+IAo+ID4gKyNk ZWZpbmUgUl9VQVJUX1JYQlVGICAgICAgICAgIDAKPiA+IAo+ID4gKyNkZWZpbmUgUl9VQVJUX1RY QlVGICAgICAgICAgIDAKPiA+IAo+ID4gKyNkZWZpbmUgUl9VQVJUX0JBVURfTE9XICAgICAgIDAK PiA+IAo+ID4gKyNkZWZpbmUgUl9VQVJUX0JBVURfSElHSCAgICAgIDEKPiA+IAo+ID4gKyNkZWZp bmUgUl9VQVJUX0ZDUiAgICAgICAgICAgIDIKPiA+IAo+ID4gKyNkZWZpbmUgQl9VQVJUX0ZDUl9G SUZPRSAgICAgIEJJVDAKPiA+IAo+ID4gKyNkZWZpbmUgQl9VQVJUX0ZDUl9GSUZPNjQgICAgIEJJ VDUKPiA+IAo+ID4gKyNkZWZpbmUgUl9VQVJUX0xDUiAgICAgICAgICAgIDMKPiA+IAo+ID4gKyNk ZWZpbmUgQl9VQVJUX0xDUl9ETEFCICAgICAgIEJJVDcKPiA+IAo+ID4gKyNkZWZpbmUgUl9VQVJU X01DUiAgICAgICAgICAgIDQKPiA+IAo+ID4gKyNkZWZpbmUgQl9VQVJUX01DUl9EVFJDICAgICAg IEJJVDAKPiA+IAo+ID4gKyNkZWZpbmUgQl9VQVJUX01DUl9SVFMgICAgICAgIEJJVDEKPiA+IAo+ ID4gKyNkZWZpbmUgUl9VQVJUX0xTUiAgICAgICAgICAgIDUKPiA+IAo+ID4gKyNkZWZpbmUgQl9V QVJUX0xTUl9SWFJEWSAgICAgIEJJVDAKPiA+IAo+ID4gKyNkZWZpbmUgQl9VQVJUX0xTUl9UWFJE WSAgICAgIEJJVDUKPiA+IAo+ID4gKyNkZWZpbmUgQl9VQVJUX0xTUl9URU1UICAgICAgIEJJVDYK PiA+IAo+ID4gKyNkZWZpbmUgUl9VQVJUX01TUiAgICAgICAgICAgIDYKPiA+IAo+ID4gKyNkZWZp bmUgQl9VQVJUX01TUl9DVFMgICAgICAgIEJJVDQKPiA+IAo+ID4gKyNkZWZpbmUgQl9VQVJUX01T Ul9EU1IgICAgICAgIEJJVDUKPiA+IAo+ID4gKyNkZWZpbmUgQl9VQVJUX01TUl9SSSAgICAgICAg IEJJVDYKPiA+IAo+ID4gKyNkZWZpbmUgQl9VQVJUX01TUl9EQ0QgICAgICAgIEJJVDcKPiA+IAo+ ID4gKyNkZWZpbmUgVUFSVF9CQVNFX0FERFJFU1MgICAgICgweDFmZTAwMWUwKQo+ID4gCj4gPiAr I2RlZmluZSBVQVJUX0JQUyAgICAgICAgICAgICAgKDExNTIwMCkKPiA+IAo+ID4gKyNkZWZpbmUg VUFSVF9XQUlUX1RJTU9VVCAgICAgICgxMDAwMDAwKQo+ID4gCj4gPiArLy8tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IAo+ID4gKy8vIFVBUlQgU2V0dGlu Z3MKPiA+IAo+ID4gKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCj4gPiAKPiA+ICsjZGVmaW5lIFBIWVNfVE9fQ0FDSEVEKHgpICAgICAgICgoeCkpCj4gPiAK PiA+ICsjZGVmaW5lIFBIWVNfVE9fVU5DQUNIRUQoeCkgICAgICgoeCkpCj4gPiAKPiA+ICsKPiA+ IAo+ID4gKyNlbmRpZgo+ID4gCj4gPiBkaWZmIC0tZ2l0Cj4gPiBhL1BsYXRmb3JtL0xvb25nc29u L0xvb25nQXJjaFFlbXVQa2cvTGlicmFyeS9TZXJpYWxQb3J0TGliL1NlcmlhbFBvcnRMaWIKPiA+ IC5jCj4gPiBiL1BsYXRmb3JtL0xvb25nc29uL0xvb25nQXJjaFFlbXVQa2cvTGlicmFyeS9TZXJp YWxQb3J0TGliL1NlcmlhbFBvcnRMaWIKPiA+IC5jCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ ID4gaW5kZXggMDAwMDAwMDAwMC4uNWIyZjNhODE5NAo+ID4gLS0tIC9kZXYvbnVsbAo+ID4gKysr Cj4gPiBiL1BsYXRmb3JtL0xvb25nc29uL0xvb25nQXJjaFFlbXVQa2cvTGlicmFyeS9TZXJpYWxQ b3J0TGliL1NlcmlhbFBvcnRMaWIKPiA+IC5jCj4gPiBAQCAtMCwwICsxLDYxMiBAQAo+ID4gKy8q KiBAZmlsZQo+ID4gCj4gPiArICBVQVJUIFNlcmlhbCBQb3J0IGxpYnJhcnkgZnVuY3Rpb25zCj4g PiAKPiA+ICsKPiA+IAo+ID4gKyAgQ29weXJpZ2h0IChjKSAyMDIxIExvb25nc29uIFRlY2hub2xv Z3kgQ29ycG9yYXRpb24gTGltaXRlZC4gQWxsIHJpZ2h0cwo+ID4gcmVzZXJ2ZWQuPEJSPgo+ID4g Cj4gPiArCj4gPiAKPiA+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2Ut UGF0ZW50Cj4gPiAKPiA+ICsKPiA+IAo+ID4gKyAgQHBhciBHbG9zc2FyeToKPiA+IAo+ID4gKyAg ICAtIEJwcyAtIEJpdCBQZXIgU2Vjb25kCj4gPiAKPiA+ICsgICAgLSBDVEwgLSBDb250cm9sCj4g PiAKPiA+ICsgICAgLSBDb25maWcgLSBDb25maWd1cmUKPiA+IAo+ID4gKyoqLwo+ID4gCj4gPiAr Cj4gPiAKPiA+ICsjaW5jbHVkZSA8QmFzZS5oPgo+ID4gCj4gPiArI2luY2x1ZGUgPExpYnJhcnkv Q3B1Lmg+Cj4gPiAKPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9Jb0xpYi5oPgo+ID4gCj4gPiArI2lu Y2x1ZGUgPExpYnJhcnkvU2VyaWFsUG9ydExpYi5oPgo+ID4gCj4gPiArI2luY2x1ZGUgPExvb25n QXJjaFFlbXVQbGF0Zm9ybS5oPgo+ID4gCj4gPiArCj4gPiAKPiA+ICtVSU5UTiAgIGdVYXJ0QmFz ZSA9IFBIWVNfVE9fVU5DQUNIRUQoVUFSVF9CQVNFX0FERFJFU1MpOwo+ID4gCj4gPiArVUlOVE4g ICBnQnBzICAgICAgPSBVQVJUX0JQUzsKPiA+IAo+ID4gKwo+ID4gCj4gPiArLyoqCj4gPiAKPiA+ ICsgIEluaXRpYWxpemUgdGhlIHNlcmlhbCBkZXZpY2UgaGFyZHdhcmUuCj4gPiAKPiA+ICsKPiA+ IAo+ID4gKyAgSWYgbm8gaW5pdGlhbGl6YXRpb24gaXMgcmVxdWlyZWQsIHRoZW4gcmV0dXJuIFJF VFVSTl9TVUNDRVNTLgo+ID4gCj4gPiArICBJZiB0aGUgc2VyaWFsIGRldmljZSB3YXMgc3VjY2Vz c2Z1bHkgaW5pdGlhbGl6ZWQsIHRoZW4gcmV0dXJuCj4gPiBSRVRVUk5fU1VDQ0VTUy4KPiA+IAo+ ID4gKyAgSWYgdGhlIHNlcmlhbCBkZXZpY2UgY291bGQgbm90IGJlIGluaXRpYWxpemVkLCB0aGVu IHJldHVybgo+ID4gUkVUVVJOX0RFVklDRV9FUlJPUi4KPiA+IAo+ID4gKwo+ID4gCj4gPiArICBA cmV0dmFsIFJFVFVSTl9TVUNDRVNTICAgICAgICBUaGUgc2VyaWFsIGRldmljZSB3YXMgaW5pdGlh bGl6ZWQuCj4gPiAKPiA+ICsgIEByZXR2YWwgUkVUVVJOX0RFVklDRV9FUlJPUiAgIFRoZSBzZXJh aWwgZGV2aWNlIGNvdWxkIG5vdCBiZQo+ID4gaW5pdGlhbGl6ZWQuCj4gPiAKPiA+ICsKPiA+IAo+ ID4gKyoqLwo+ID4gCj4gPiArUkVUVVJOX1NUQVRVUwo+ID4gCj4gPiArRUZJQVBJCj4gPiAKPiA+ ICtTZXJpYWxQb3J0SW5pdGlhbGl6ZSAoCj4gPiAKPiA+ICsgIFZPSUQKPiA+IAo+ID4gKyAgKQo+ ID4gCj4gPiArewo+ID4gCj4gPiArICBVSU5UTiAgVGltZU91dDsKPiA+IAo+ID4gKyAgLy8KPiA+ IAo+ID4gKyAgLy8gd2FpdCBmb3IgVHggZmlmbyB0byBjb21wbGV0ZWx5IGRyYWluICovCj4gPiAK PiA+ICsgIC8vCj4gPiAKPiA+ICsgIFRpbWVPdXQgPSBVQVJUX1dBSVRfVElNT1VUOwo+ID4gCj4g PiArICB3aGlsZSAoIShNbWlvUmVhZDggKChVSU5UTikgZ1VhcnRCYXNlICsgTFNSX09GRlNFVCkg JiBMU1JfVFNSRSkpIHsKPiA+IAo+ID4gKyAgICBpZiAoLS1UaW1lT3V0ID09IDApIHsKPiA+IAo+ ID4gKyAgICAgIGJyZWFrOwo+ID4gCj4gPiArICAgIH0KPiA+IAo+ID4gKyAgfQo+ID4gCj4gPiAr ICAvLwo+ID4gCj4gPiArICAvLyBTZXQgY29tbXVuaWNhdGlvbnMgZm9ybWF0Cj4gPiAKPiA+ICsg IC8vCj4gPiAKPiA+ICsgIE1taW9Xcml0ZTggKChVSU5UTikgKGdVYXJ0QmFzZSArIExDUl9PRkZT RVQpLCBDRkNSX0RMQUIpOwo+ID4gCj4gPiArCj4gPiAKPiA+ICsgIC8vCj4gPiAKPiA+ICsgIC8v IENvbmZpZ3VyZSBiYXVkIHJhdGUKPiA+IAo+ID4gKyAgLy8KPiA+IAo+ID4gKwo+ID4gCj4gPiAr Cj4gPiAKPiA+ICsgIE1taW9Xcml0ZTggKChVSU5UTikgKGdVYXJ0QmFzZSArIExDUl9PRkZTRVQp LCBDRkNSXzhCSVRTKTsKPiA+IAo+ID4gKyAgTW1pb1dyaXRlOCAoKFVJTlROKSAoZ1VhcnRCYXNl ICsgTUNSX09GRlNFVCksIE1DUl9JRU5BQkxFIHwKPiA+IE1DUl9EVFIgfCBNQ1JfUlRTKTsKPiA+ IAo+ID4gKyAgLy8KPiA+IAo+ID4gKyAgLy8gaWYgZW5hYmxlIGludGVycnVwdCB0aGUga2VybmVs IG9mIGxlbW90ZSB3aWxsIGVycm9yIGluIFNUUiBtb2RlCj4gZHVyaW5nCj4gPiB3YWtlIHVwIHBo YXNlLgo+ID4gCj4gPiArICAvLwo+ID4gCj4gPiArICAvL01taW9Xcml0ZTggKChVSU5UTikgKGdV YXJ0QmFzZSArIElFUl9PRkZTRVQpLCBDRkNSXzhCSVRTKTsKPiA+IAo+ID4gKwo+ID4gCj4gPiAr ICByZXR1cm4gUkVUVVJOX1NVQ0NFU1M7Cj4gPiAKPiA+ICt9Cj4gPiAKPiA+ICsKPiA+IAo+ID4g Ky8qKgo+ID4gCj4gPiArICBXcml0ZSBkYXRhIGZyb20gYnVmZmVyIHRvIHNlcmlhbCBkZXZpY2Uu Cj4gPiAKPiA+ICsKPiA+IAo+ID4gKyAgV3JpdGVzIE51bWJlck9mQnl0ZXMgZGF0YSBieXRlcyBm cm9tIEJ1ZmZlciB0byB0aGUgc2VyaWFsIGRldmljZS4KPiA+IAo+ID4gKyAgVGhlIG51bWJlciBv ZiBieXRlcyBhY3R1YWxseSB3cml0dGVuIHRvIHRoZSBzZXJpYWwgZGV2aWNlIGlzIHJldHVybmVk Lgo+ID4gCj4gPiArICBJZiB0aGUgcmV0dXJuIHZhbHVlIGlzIGxlc3MgdGhhbiBOdW1iZXJPZkJ5 dGVzLCB0aGVuIHRoZSB3cml0ZQo+IG9wZXJhdGlvbgo+ID4gZmFpbGVkLgo+ID4gCj4gPiArCj4g PiAKPiA+ICsgIElmIEJ1ZmZlciBpcyBOVUxMLCB0aGVuIEFTU0VSVCAoKS4KPiA+IAo+ID4gKwo+ ID4gCj4gPiArICBJZiBOdW1iZXJPZkJ5dGVzIGlzIHplcm8sIHRoZW4gcmV0dXJuIDAuCj4gPiAK PiA+ICsKPiA+IAo+ID4gKyAgQHBhcmFtICBCdWZmZXIgICAgICAgICAgIFBvaW50ZXIgdG8gdGhl IGRhdGEgYnVmZmVyIHRvIGJlIHdyaXR0ZW4uCj4gPiAKPiA+ICsgIEBwYXJhbSAgTnVtYmVyT2ZC eXRlcyAgICBOdW1iZXIgb2YgYnl0ZXMgdG8gd3JpdHRlbiB0byB0aGUgc2VyaWFsCj4gPiBkZXZp Y2UuCj4gPiAKPiA+ICsKPiA+IAo+ID4gKyAgQHJldHZhbCAwICAgICAgICAgICAgICAgIE51bWJl ck9mQnl0ZXMgaXMgMC4KPiA+IAo+ID4gKyAgQHJldHZhbCA+MCAgICAgICAgICAgICAgIFRoZSBu dW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiB0byB0aGUgc2VyaWFsCj4gPiBkZXZpY2UuCj4gPiAKPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIHZhbHVlIGlzIGxlc3MgdGhhbiBO dW1iZXJPZkJ5dGVzLAo+ID4gdGhlbiB0aGUgcmVhZCBvcGVyYXRpb24gZmFpbGVkLgo+ID4gCj4g PiArCj4gPiAKPiA+ICsqKi8KPiA+IAo+ID4gK1VJTlROCj4gPiAKPiA+ICtFRklBUEkKPiA+IAo+ ID4gK1VhcnRDdGxXcml0ZSAoCj4gPiAKPiA+ICsgIElOIFVJTlQ4ICAgICAqQnVmZmVyLAo+ID4g Cj4gPiArICBJTiBVSU5UTiAgICAgTnVtYmVyT2ZCeXRlcywKPiA+IAo+ID4gKyAgSU4gVUlOVE4g ICAgIEN0bEFkZHIKPiA+IAo+ID4gKykKPiA+IAo+ID4gK3sKPiA+IAo+ID4gKyAgVUlOVE4gIFJl c3VsdDsKPiA+IAo+ID4gKyAgVUlOVDggIERhdGE7Cj4gPiAKPiA+ICsKPiA+IAo+ID4gKyAgaWYg KEJ1ZmZlciA9PSBOVUxMKSB7Cj4gPiAKPiA+ICsgICAgcmV0dXJuIDA7Cj4gPiAKPiA+ICsgIH0K PiA+IAo+ID4gKwo+ID4gCj4gPiArICBSZXN1bHQgPSBOdW1iZXJPZkJ5dGVzOwo+ID4gCj4gPiAr Cj4gPiAKPiA+ICsgIHdoaWxlIChOdW1iZXJPZkJ5dGVzLS0pIHsKPiA+IAo+ID4gKyAgICAvLwo+ ID4gCj4gPiArICAgIC8vIFdhaXQgZm9yIHRoZSBzZXJhaWwgcG9ydCB0byBiZSByZWFkeS4KPiA+ IAo+ID4gKyAgICAvLwo+ID4gCj4gPiArICAgIGRvIHsKPiA+IAo+ID4gKyAgICAgIERhdGEgPSBN bWlvUmVhZDggKEN0bEFkZHIgKyBMU1JfT0ZGU0VUKTsKPiA+IAo+ID4gKyAgICB9IHdoaWxlICgo RGF0YSAmIExTUl9UWFJEWSkgPT0gMCk7Cj4gPiAKPiA+ICsgICAgTW1pb1dyaXRlOCAoQ3RsQWRk ciwgKkJ1ZmZlcisrKTsKPiA+IAo+ID4gKyAgfQo+ID4gCj4gPiArCj4gPiAKPiA+ICsgIHJldHVy biBSZXN1bHQ7Cj4gPiAKPiA+ICt9Cj4gPiAKPiA+ICsvKioKPiA+IAo+ID4gKyAgV3JpdGVzIGRh dGEgdG8gc2VyaWFsIHBvcnQuCj4gPiAKPiA+ICsKPiA+IAo+ID4gKyAgQHBhcmFtICBCdWZmZXIg ICAgICAgICAgIFBvaW50ZXIgdG8gdGhlIGRhdGEgYnVmZmVyIHRvIHN0b3JlIHRoZSBkYXRhCj4g PiB3cml0ZWQgdG8gc2VyaWFsIHBvcnQuCj4gPiAKPiA+ICsgIEBwYXJhbSAgTnVtYmVyT2ZCeXRl cyAgICBOdW1iZXIgb2YgYnl0ZXMgdG8gd3JpdGUgdG8gdGhlIHNlcmlhbAo+ID4gcG9ydC4KPiA+ IAo+ID4gKwo+ID4gCj4gPiArICBAcmV0dmFsIDAgICAgICAgICAgICAgICAgTnVtYmVyT2ZCeXRl cyBpcyAwLgo+ID4gCj4gPiArICBAcmV0dmFsID4wICAgICAgICAgICAgICAgVGhlIG51bWJlciBv ZiBieXRlcyB3cml0ZSB0aGUgc2VyaWFsIHBvcnQuCj4gPiAKPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiB0aGlzIHZhbHVlIGlzIGxlc3MgdGhhbiBOdW1iZXJPZkJ5dGVzLAo+ID4g dGhlbiB0aGUgd3JpdGUgb3BlcmF0aW9uIGZhaWxlZC4KPiA+IAo+ID4gKwo+ID4gCj4gPiArKiov Cj4gPiAKPiA+ICtVSU5UTgo+ID4gCj4gPiArRUZJQVBJCj4gPiAKPiA+ICtTZXJpYWxQb3J0V3Jp dGUgKAo+ID4gCj4gPiArICBJTiBVSU5UOCAgICAgKkJ1ZmZlciwKPiA+IAo+ID4gKyAgSU4gVUlO VE4gICAgIE51bWJlck9mQnl0ZXMKPiA+IAo+ID4gKykKPiA+IAo+ID4gK3sKPiA+IAo+ID4gKyAg cmV0dXJuIFVhcnRDdGxXcml0ZSAoQnVmZmVyLCBOdW1iZXJPZkJ5dGVzLCBnVWFydEJhc2UpOwo+ ID4gCj4gPiArfQo+ID4gCj4gPiArLyoqCj4gPiAKPiA+ICsgIFJlYWRzIGRhdGEgZnJvbSBhIHNl cmlhbCBkZXZpY2UgaW50byBhIGJ1ZmZlci4KPiA+IAo+ID4gKwo+ID4gCj4gPiArICBAcGFyYW0g IEJ1ZmZlciAgICAgICAgICAgUG9pbnRlciB0byB0aGUgZGF0YSBidWZmZXIgdG8gc3RvcmUgdGhl IGRhdGEKPiA+IHJlYWQgZnJvbSB0aGUgc2VyaWFsIGRldmljZS4KPiA+IAo+ID4gKyAgQHBhcmFt ICBOdW1iZXJPZkJ5dGVzICAgIE51bWJlciBvZiBieXRlcyB0byByZWFkIGZyb20gdGhlIHNlcmlh bAo+ID4gZGV2aWNlLgo+ID4gCj4gPiArCj4gPiAKPiA+ICsgIEByZXR2YWwgMCAgICAgICAgICAg ICAgICBOdW1iZXJPZkJ5dGVzIGlzIDAuCj4gPiAKPiA+ICsgIEByZXR2YWwgPjAgICAgICAgICAg ICAgICBUaGUgbnVtYmVyIG9mIGJ5dGVzIHJlYWQgZnJvbSB0aGUgc2VyaWFsCj4gPiBkZXZpY2Uu Cj4gPiAKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIHZhbHVlIGlzIGxl c3MgdGhhbiBOdW1iZXJPZkJ5dGVzLAo+ID4gdGhlbiB0aGUgcmVhZCBvcGVyYXRpb24gZmFpbGVk Lgo+ID4gCj4gPiArCj4gPiAKPiA+ICsqKi8KPiA+IAo+ID4gK1VJTlROCj4gPiAKPiA+ICtFRklB UEkKPiA+IAo+ID4gK1VhcnRDdGxSZWFkICgKPiA+IAo+ID4gKyAgT1VUIFVJTlQ4ICAgICAqQnVm ZmVyLAo+ID4gCj4gPiArICBJTiAgVUlOVE4gICAgIE51bWJlck9mQnl0ZXMsCj4gPiAKPiA+ICsg IElOICBVSU5UTiAgICAgQ3RsQWRkcgo+ID4gCj4gPiArKQo+ID4gCj4gPiArewo+ID4gCj4gPiAr ICBVSU5UTiAgUmVzdWx0Owo+ID4gCj4gPiArICBVSU5UOCAgRGF0YTsKPiA+IAo+ID4gKwo+ID4g Cj4gPiArICBpZiAoTlVMTCA9PSBCdWZmZXIpIHsKPiA+IAo+ID4gKyAgICByZXR1cm4gMDsKPiA+ IAo+ID4gKyAgfQo+ID4gCj4gPiArCj4gPiAKPiA+ICsgIFJlc3VsdCA9IE51bWJlck9mQnl0ZXM7 Cj4gPiAKPiA+ICsKPiA+IAo+ID4gKyAgd2hpbGUgKE51bWJlck9mQnl0ZXMtLSkgewo+ID4gCj4g PiArICAgIC8vCj4gPiAKPiA+ICsgICAgLy8gV2FpdCBmb3IgdGhlIHNlcmFpbCBwb3J0IHRvIGJl IHJlYWR5Lgo+ID4gCj4gPiArICAgIC8vCj4gPiAKPiA+ICsgICAgZG8gewo+ID4gCj4gPiArICAg ICAgRGF0YSA9IE1taW9SZWFkOCAoQ3RsQWRkciArIExTUl9PRkZTRVQpOwo+ID4gCj4gPiArICAg IH0gd2hpbGUgKChEYXRhICYgTFNSX1JYUkRZKSA9PSAwKTsKPiA+IAo+ID4gKwo+ID4gCj4gPiAr ICAgICpCdWZmZXIrKyA9IE1taW9SZWFkOCAoQ3RsQWRkcik7Cj4gPiAKPiA+ICsgIH0KPiA+IAo+ ID4gKwo+ID4gCj4gPiArICByZXR1cm4gUmVzdWx0Owo+ID4gCj4gPiArfQo+ID4gCj4gPiArLyoq Cj4gPiAKPiA+ICsgIFJlYWQgZGF0YSBmcm9tIHNlcmlhbCBwb3J0Lgo+ID4gCj4gPiArCj4gPiAK PiA+ICsgIEBwYXJhbSAgQnVmZmVyICAgICAgICAgICBQb2ludGVyIHRvIHRoZSBkYXRhIGJ1ZmZl ciB0byBzdG9yZSB0aGUgZGF0YQo+ID4gcmVhZCBmcm9tIHNlcmlhbCBwb3J0Lgo+ID4gCj4gPiAr ICBAcGFyYW0gIE51bWJlck9mQnl0ZXMgICAgTnVtYmVyIG9mIGJ5dGVzIHRvIHJlYWQgZnJvbSB0 aGUgc2VyaWFsCj4gPiBwb3J0Lgo+ID4gCj4gPiArCj4gPiAKPiA+ICsgIEByZXR2YWwgMCAgICAg ICAgICAgICAgICBOdW1iZXJPZkJ5dGVzIGlzIDAuCj4gPiAKPiA+ICsgIEByZXR2YWwgPjAgICAg ICAgICAgICAgICBUaGUgbnVtYmVyIG9mIGJ5dGVzIHJlYWQgZnJvbSB0aGUgc2VyaWFsCj4gPiBw b3J0Lgo+ID4gCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyB2YWx1ZSBp cyBsZXNzIHRoYW4gTnVtYmVyT2ZCeXRlcywKPiA+IHRoZW4gdGhlIHJlYWQgb3BlcmF0aW9uIGZh aWxlZC4KPiA+IAo+ID4gKwo+ID4gCj4gPiArKiovCj4gPiAKPiA+ICtVSU5UTgo+ID4gCj4gPiAr RUZJQVBJCj4gPiAKPiA+ICtTZXJpYWxQb3J0UmVhZCAoCj4gPiAKPiA+ICsgIE9VVCBVSU5UOCAg ICAgKkJ1ZmZlciwKPiA+IAo+ID4gKyAgSU4gIFVJTlROICAgICBOdW1iZXJPZkJ5dGVzCj4gPiAK PiA+ICspCj4gPiAKPiA+ICt7Cj4gPiAKPiA+ICsgIHJldHVybiBVYXJ0Q3RsUmVhZCAoQnVmZmVy LCBOdW1iZXJPZkJ5dGVzLCBnVWFydEJhc2UpOwo+ID4gCj4gPiArfQo+ID4gCj4gPiArLyoqCj4g PiAKPiA+ICsgIFBvbGxzIGEgc2VyaWFsIGRldmljZSB0byBzZWUgaWYgdGhlcmUgaXMgYW55IGRh dGEgd2FpdGluZyB0byBiZSByZWFkLgo+ID4gCj4gPiArCj4gPiAKPiA+ICsgIFBvbGxzIGFzZXJp YWwgZGV2aWNlIHRvIHNlZSBpZiB0aGVyZSBpcyBhbnkgZGF0YSB3YWl0aW5nIHRvIGJlIHJlYWQu Cj4gPiAKPiA+ICsgIElmIHRoZXJlIGlzIGRhdGEgd2FpdGluZyB0byBiZSByZWFkIGZyb20gdGhl IHNlcmlhbCBkZXZpY2UsIHRoZW4gVFJVRQo+IGlzCj4gPiByZXR1cm5lZC4KPiA+IAo+ID4gKyAg SWYgdGhlcmUgaXMgbm8gZGF0YSB3YWl0aW5nIHRvIGJlIHJlYWQgZnJvbSB0aGUgc2VyaWFsIGRl dmljZSwgdGhlbgo+IEZBTFNFIGlzCj4gPiByZXR1cm5lZC4KPiA+IAo+ID4gKwo+ID4gCj4gPiAr ICBAcmV0dmFsIFRSVUUgICAgICAgICAgICAgRGF0YSBpcyB3YWl0aW5nIHRvIGJlIHJlYWQgZnJv bSB0aGUgc2VyaWFsCj4gPiBkZXZpY2UuCj4gPiAKPiA+ICsgIEByZXR2YWwgRkFMU0UgICAgICAg ICAgICBUaGVyZSBpcyBubyBkYXRhIHdhaXRpbmcgdG8gYmUgcmVhZCBmcm9tIHRoZQo+ID4gc2Vy aWFsIGRldmljZS4KPiA+IAo+ID4gKwo+ID4gCj4gPiArKiovCj4gPiAKPiA+ICtCT09MRUFOCj4g PiAKPiA+ICtFRklBUEkKPiA+IAo+ID4gK1NlcmlhbFBvcnRQb2xsICgKPiA+IAo+ID4gKyAgVk9J RAo+ID4gCj4gPiArICApCj4gPiAKPiA+ICt7Cj4gPiAKPiA+ICsgIFVJTlQ4ICBEYXRhOwo+ID4g Cj4gPiArCj4gPiAKPiA+ICsgIC8vCj4gPiAKPiA+ICsgIC8vIFJlYWQgdGhlIHNlcmlhbCBwb3J0 IHN0YXR1cy4KPiA+IAo+ID4gKyAgLy8KPiA+IAo+ID4gKyAgRGF0YSA9IE1taW9SZWFkOCAoKFVJ TlROKSBnVWFydEJhc2UgKyBMU1JfT0ZGU0VUKTsKPiA+IAo+ID4gKwo+ID4gCj4gPiArICByZXR1 cm4gKEJPT0xFQU4pICgoRGF0YSAmIExTUl9SWFJEWSkgIT0gMCk7Cj4gPiAKPiA+ICt9Cj4gPiAK PiA+ICsvKioKPiA+IAo+ID4gKyAgVG8gZ2V0IHNlcmlhbCByZWdpc3RlciBiYXNlIGFkZHJlc3Mu Cj4gPiAKPiA+ICsKPiA+IAo+ID4gKyAgQHBhcmFtICBWT0lECj4gPiAKPiA+ICsKPiA+IAo+ID4g KyAgQHJldHVybiAgc2VyaWFsIHJlZ2lzdGVyIGJhc2UgYWRkcmVzcy4KPiA+IAo+ID4gKyoqLwo+ ID4gCj4gPiArVUlOVE4KPiA+IAo+ID4gK0dldFNlcmlhbFJlZ2lzdGVyQmFzZSAoCj4gPiAKPiA+ ICsgIFZPSUQKPiA+IAo+ID4gKyAgKQo+ID4gCj4gPiArewo+ID4gCj4gPiArICByZXR1cm4gZ1Vh cnRCYXNlOwo+ID4gCj4gPiArfQo+ID4gCj4gPiArLyoqCj4gPiAKPiA+ICsgIFJlYWQgYW4gOC1i aXQgcmVnaXN0ZXIuCj4gPiAKPiA+ICsgIEBwYXJhbSAgQmFzZSAgICBUaGUgYmFzZSBhZGRyZXNz IHJlZ2lzdGVyIG9mIFVBUlQgZGV2aWNlLgo+ID4gCj4gPiArICBAcGFyYW0gIE9mZnNldCAgVGhl IG9mZnNldCBvZiB0aGUgcmVnaXN0ZXIgdG8gcmVhZC4KPiA+IAo+ID4gKwo+ID4gCj4gPiArICBA cmV0dXJuIFRoZSB2YWx1ZSByZWFkIGZyb20gdGhlIDE2NTUwIHJlZ2lzdGVyLgo+ID4gCj4gPiAr Cj4gPiAKPiA+ICsqKi8KPiA+IAo+ID4gK1VJTlQ4Cj4gPiAKPiA+ICtTZXJpYWxQb3J0UmVhZFJl Z2lzdGVyICgKPiA+IAo+ID4gKyAgVUlOVE4gIEJhc2UsCj4gPiAKPiA+ICsgIFVJTlROICBPZmZz ZXQKPiA+IAo+ID4gKyAgKQo+ID4gCj4gPiArewo+ID4gCj4gPiArICAgIHJldHVybiBNbWlvUmVh ZDggKEJhc2UgKyBPZmZzZXQpOwo+ID4gCj4gPiArfQo+ID4gCj4gPiArCj4gPiAKPiA+ICsvKioK PiA+IAo+ID4gKyAgV3JpdGUgYW4gOC1iaXQgcmVnaXN0ZXIuCj4gPiAKPiA+ICsgIEBwYXJhbSAg QmFzZSAgICBUaGUgYmFzZSBhZGRyZXNzIHJlZ2lzdGVyIG9mIFVBUlQgZGV2aWNlLgo+ID4gCj4g PiArICBAcGFyYW0gIE9mZnNldCAgVGhlIG9mZnNldCBvZiB0aGUgcmVnaXN0ZXIgdG8gd3JpdGUu Cj4gPiAKPiA+ICsgIEBwYXJhbSAgVmFsdWUgICBUaGUgdmFsdWUgdG8gd3JpdGUgdG8gdGhlIHJl Z2lzdGVyIHNwZWNpZmllZCBieSBPZmZzZXQuCj4gPiAKPiA+ICsKPiA+IAo+ID4gKyAgQHJldHVy biBUaGUgdmFsdWUgd3JpdHRlbiB0byB0aGUgMTY1NTAgcmVnaXN0ZXIuCj4gPiAKPiA+ICsKPiA+ IAo+ID4gKyoqLwo+ID4gCj4gPiArVUlOVDgKPiA+IAo+ID4gK1NlcmlhbFBvcnRXcml0ZVJlZ2lz dGVyICgKPiA+IAo+ID4gKyAgVUlOVE4gIEJhc2UsCj4gPiAKPiA+ICsgIFVJTlROICBPZmZzZXQs Cj4gPiAKPiA+ICsgIFVJTlQ4ICBWYWx1ZQo+ID4gCj4gPiArICApCj4gPiAKPiA+ICt7Cj4gPiAK PiA+ICsgICAgcmV0dXJuIE1taW9Xcml0ZTggKEJhc2UgKyBPZmZzZXQsIFZhbHVlKTsKPiA+IAo+ ID4gK30KPiA+IAo+ID4gKwo+ID4gCj4gPiArLyoqCj4gPiAKPiA+ICsgIFNldHMgdGhlIGNvbnRy b2wgYml0cyBvbiBhIHNlcmlhbCBkZXZpY2UuCj4gPiAKPiA+ICsKPiA+IAo+ID4gKyAgQHBhcmFt IENvbnRyb2wgICAgICAgICAgICAgICAgU2V0cyB0aGUgYml0cyBvZiBDb250cm9sIHRoYXQgYXJl Cj4gPiBzZXR0YWJsZS4KPiA+IAo+ID4gKwo+ID4gCj4gPiArICBAcmV0dmFsIFJFVFVSTl9TVUND RVNTICAgICAgICBUaGUgbmV3IGNvbnRyb2wgYml0cyB3ZXJlIHNldCBvbiB0aGUKPiA+IHNlcmlh bCBkZXZpY2UuCj4gPiAKPiA+ICsgIEByZXR2YWwgUkVUVVJOX1VOU1VQUE9SVEVEICAgIFRoZSBz ZXJpYWwgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQKPiA+IHRoaXMgb3BlcmF0aW9uLgo+ID4gCj4g PiArICBAcmV0dmFsIFJFVFVSTl9ERVZJQ0VfRVJST1IgICBUaGUgc2VyaWFsIGRldmljZSBpcyBu b3QgZnVuY3Rpb25pbmcKPiA+IGNvcnJlY3RseS4KPiA+IAo+ID4gKwo+ID4gCj4gPiArKiovCj4g PiAKPiA+ICtSRVRVUk5fU1RBVFVTCj4gPiAKPiA+ICtFRklBUEkKPiA+IAo+ID4gK1NlcmlhbFBv cnRTZXRDb250cm9sICgKPiA+IAo+ID4gKyAgSU4gVUlOVDMyIENvbnRyb2wKPiA+IAo+ID4gKyAg KQo+ID4gCj4gPiArewo+ID4gCj4gPiArICBVSU5UTiBTZXJpYWxSZWdpc3RlckJhc2U7Cj4gPiAK PiA+ICsgIFVJTlQ4IE1jcjsKPiA+IAo+ID4gKwo+ID4gCj4gPiArICAvLwo+ID4gCj4gPiArICAv LyBGaXJzdCBkZXRlcm1pbmUgdGhlIHBhcmFtZXRlciBpcyBpbnZhbGlkLgo+ID4gCj4gPiArICAv Lwo+ID4gCj4gPiArICBpZiAoKENvbnRyb2wgJiAofihFRklfU0VSSUFMX1JFUVVFU1RfVE9fU0VO RCB8Cj4gPiBFRklfU0VSSUFMX0RBVEFfVEVSTUlOQUxfUkVBRFkgfAo+ID4gCj4gPiArCj4gPiBF RklfU0VSSUFMX0hBUkRXQVJFX0ZMT1dfQ09OVFJPTF9FTkFCTEUpKSkgIT0gMCkKPiA+IAo+ID4g KyAgewo+ID4gCj4gPiArICAgIHJldHVybiBSRVRVUk5fVU5TVVBQT1JURUQ7Cj4gPiAKPiA+ICsg IH0KPiA+IAo+ID4gKwo+ID4gCj4gPiArICBTZXJpYWxSZWdpc3RlckJhc2UgPSBHZXRTZXJpYWxS ZWdpc3RlckJhc2UgKCk7Cj4gPiAKPiA+ICsgIGlmIChTZXJpYWxSZWdpc3RlckJhc2UgPT0wKSB7 Cj4gPiAKPiA+ICsgICAgcmV0dXJuIFJFVFVSTl9VTlNVUFBPUlRFRDsKPiA+IAo+ID4gKyAgfQo+ ID4gCj4gPiArCj4gPiAKPiA+ICsgIC8vCj4gPiAKPiA+ICsgIC8vIFJlYWQgdGhlIE1vZGVtIENv bnRyb2wgUmVnaXN0ZXIuCj4gPiAKPiA+ICsgIC8vCj4gPiAKPiA+ICsgIE1jciA9IFNlcmlhbFBv cnRSZWFkUmVnaXN0ZXIgKFNlcmlhbFJlZ2lzdGVyQmFzZSwgUl9VQVJUX01DUik7Cj4gPiAKPiA+ ICsgIE1jciAmPSAofihCX1VBUlRfTUNSX0RUUkMgfCBCX1VBUlRfTUNSX1JUUykpOwo+ID4gCj4g PiArCj4gPiAKPiA+ICsgIGlmICgoQ29udHJvbCAmIEVGSV9TRVJJQUxfREFUQV9URVJNSU5BTF9S RUFEWSkgPT0KPiA+IEVGSV9TRVJJQUxfREFUQV9URVJNSU5BTF9SRUFEWSkgewo+ID4gCj4gPiAr ICAgIE1jciB8PSBCX1VBUlRfTUNSX0RUUkM7Cj4gPiAKPiA+ICsgIH0KPiA+IAo+ID4gKwo+ID4g Cj4gPiArICBpZiAoKENvbnRyb2wgJiBFRklfU0VSSUFMX1JFUVVFU1RfVE9fU0VORCkgPT0KPiA+ IEVGSV9TRVJJQUxfUkVRVUVTVF9UT19TRU5EKSB7Cj4gPiAKPiA+ICsgICAgTWNyIHw9IEJfVUFS VF9NQ1JfUlRTOwo+ID4gCj4gPiArICB9Cj4gPiAKPiA+ICsKPiA+IAo+ID4gKyAgLy8KPiA+IAo+ ID4gKyAgLy8gV3JpdGUgdGhlIE1vZGVtIENvbnRyb2wgUmVnaXN0ZXIuCj4gPiAKPiA+ICsgIC8v Cj4gPiAKPiA+ICsgIFNlcmlhbFBvcnRXcml0ZVJlZ2lzdGVyIChTZXJpYWxSZWdpc3RlckJhc2Us IFJfVUFSVF9NQ1IsIE1jcik7Cj4gPiAKPiA+ICsKPiA+IAo+ID4gKyAgcmV0dXJuIFJFVFVSTl9T VUNDRVNTOwo+ID4gCj4gPiArfQo+ID4gCj4gPiArCj4gPiAKPiA+ICsvKioKPiA+IAo+ID4gKyAg UmV0cmlldmUgdGhlIHN0YXR1cyBvZiB0aGUgY29udHJvbCBiaXRzIG9uIGEgc2VyaWFsIGRldmlj ZS4KPiA+IAo+ID4gKwo+ID4gCj4gPiArICBAcGFyYW0gQ29udHJvbCAgICAgICAgICAgICAgICBB IHBvaW50ZXIgdG8gcmV0dXJuIHRoZSBjdXJyZW50Cj4gPiBjb250cm9sIHNpZ25hbHMgZnJvbSB0 aGUgc2VyaWFsIGRldmljZS4KPiA+IAo+ID4gKwo+ID4gCj4gPiArICBAcmV0dmFsIFJFVFVSTl9T VUNDRVNTICAgICAgICBUaGUgY29udHJvbCBiaXRzIHdlcmUgcmVhZCBmcm9tIHRoZQo+ID4gc2Vy aWFsIGRldmljZS4KPiA+IAo+ID4gKyAgQHJldHZhbCBSRVRVUk5fVU5TVVBQT1JURUQgICAgVGhl IHNlcmlhbCBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydAo+ID4gdGhpcyBvcGVyYXRpb24uCj4gPiAK PiA+ICsgIEByZXR2YWwgUkVUVVJOX0RFVklDRV9FUlJPUiAgIFRoZSBzZXJpYWwgZGV2aWNlIGlz IG5vdCBmdW5jdGlvbmluZwo+ID4gY29ycmVjdGx5Lgo+ID4gCj4gPiArCj4gPiAKPiA+ICsqKi8K PiA+IAo+ID4gK1JFVFVSTl9TVEFUVVMKPiA+IAo+ID4gK0VGSUFQSQo+ID4gCj4gPiArU2VyaWFs UG9ydEdldENvbnRyb2wgKAo+ID4gCj4gPiArICBPVVQgVUlOVDMyICpDb250cm9sCj4gPiAKPiA+ ICsgICkKPiA+IAo+ID4gK3sKPiA+IAo+ID4gKyAgVUlOVE4gU2VyaWFsUmVnaXN0ZXJCYXNlOwo+ ID4gCj4gPiArICBVSU5UOCBNc3I7Cj4gPiAKPiA+ICsgIFVJTlQ4IE1jcjsKPiA+IAo+ID4gKyAg VUlOVDggTHNyOwo+ID4gCj4gPiArCj4gPiAKPiA+ICsgIFNlcmlhbFJlZ2lzdGVyQmFzZSA9IEdl dFNlcmlhbFJlZ2lzdGVyQmFzZSAoKTsKPiA+IAo+ID4gKyAgaWYgKFNlcmlhbFJlZ2lzdGVyQmFz ZSA9PTApIHsKPiA+IAo+ID4gKyAgICByZXR1cm4gUkVUVVJOX1VOU1VQUE9SVEVEOwo+ID4gCj4g PiArICB9Cj4gPiAKPiA+ICsKPiA+IAo+ID4gKyAgKkNvbnRyb2wgPSAwOwo+ID4gCj4gPiArCj4g PiAKPiA+ICsgIC8vCj4gPiAKPiA+ICsgIC8vIFJlYWQgdGhlIE1vZGVtIFN0YXR1cyBSZWdpc3Rl ci4KPiA+IAo+ID4gKyAgLy8KPiA+IAo+ID4gKyAgTXNyID0gU2VyaWFsUG9ydFJlYWRSZWdpc3Rl ciAoU2VyaWFsUmVnaXN0ZXJCYXNlLCBSX1VBUlRfTVNSKTsKPiA+IAo+ID4gKwo+ID4gCj4gPiAr ICBpZiAoKE1zciAmIEJfVUFSVF9NU1JfQ1RTKSA9PSBCX1VBUlRfTVNSX0NUUykgewo+ID4gCj4g PiArICAgICpDb250cm9sIHw9IEVGSV9TRVJJQUxfQ0xFQVJfVE9fU0VORDsKPiA+IAo+ID4gKyAg fQo+ID4gCj4gPiArCj4gPiAKPiA+ICsgIGlmICgoTXNyICYgQl9VQVJUX01TUl9EU1IpID09IEJf VUFSVF9NU1JfRFNSKSB7Cj4gPiAKPiA+ICsgICAgKkNvbnRyb2wgfD0gRUZJX1NFUklBTF9EQVRB X1NFVF9SRUFEWTsKPiA+IAo+ID4gKyAgfQo+ID4gCj4gPiArCj4gPiAKPiA+ICsgIGlmICgoTXNy ICYgQl9VQVJUX01TUl9SSSkgPT0gQl9VQVJUX01TUl9SSSkgewo+ID4gCj4gPiArICAgICpDb250 cm9sIHw9IEVGSV9TRVJJQUxfUklOR19JTkRJQ0FURTsKPiA+IAo+ID4gKyAgfQo+ID4gCj4gPiAr Cj4gPiAKPiA+ICsgIGlmICgoTXNyICYgQl9VQVJUX01TUl9EQ0QpID09IEJfVUFSVF9NU1JfRENE KSB7Cj4gPiAKPiA+ICsgICAgKkNvbnRyb2wgfD0gRUZJX1NFUklBTF9DQVJSSUVSX0RFVEVDVDsK PiA+IAo+ID4gKyAgfQo+ID4gCj4gPiArCj4gPiAKPiA+ICsgIC8vCj4gPiAKPiA+ICsgIC8vIFJl YWQgdGhlIE1vZGVtIENvbnRyb2wgUmVnaXN0ZXIuCj4gPiAKPiA+ICsgIC8vCj4gPiAKPiA+ICsg IE1jciA9IFNlcmlhbFBvcnRSZWFkUmVnaXN0ZXIgKFNlcmlhbFJlZ2lzdGVyQmFzZSwgUl9VQVJU X01DUik7Cj4gPiAKPiA+ICsKPiA+IAo+ID4gKyAgaWYgKChNY3IgJiBCX1VBUlRfTUNSX0RUUkMp ID09IEJfVUFSVF9NQ1JfRFRSQykgewo+ID4gCj4gPiArICAgICpDb250cm9sIHw9IEVGSV9TRVJJ QUxfREFUQV9URVJNSU5BTF9SRUFEWTsKPiA+IAo+ID4gKyAgfQo+ID4gCj4gPiArCj4gPiAKPiA+ ICsgIGlmICgoTWNyICYgQl9VQVJUX01DUl9SVFMpID09IEJfVUFSVF9NQ1JfUlRTKSB7Cj4gPiAK PiA+ICsgICAgKkNvbnRyb2wgfD0gRUZJX1NFUklBTF9SRVFVRVNUX1RPX1NFTkQ7Cj4gPiAKPiA+ ICsgIH0KPiA+IAo+ID4gKwo+ID4gCj4gPiArICBpZiAoUGNkR2V0Qm9vbCAoUGNkU2VyaWFsVXNl SGFyZHdhcmVGbG93Q29udHJvbCkpIHsKPiA+IAo+ID4gKyAgICAqQ29udHJvbCB8PSBFRklfU0VS SUFMX0hBUkRXQVJFX0ZMT1dfQ09OVFJPTF9FTkFCTEU7Cj4gPiAKPiA+ICsgIH0KPiA+IAo+ID4g Kwo+ID4gCj4gPiArICAvLwo+ID4gCj4gPiArICAvLyBSZWFkIHRoZSBMaW5lIFN0YXR1cyBSZWdp c3Rlci4KPiA+IAo+ID4gKyAgLy8KPiA+IAo+ID4gKyAgTHNyID0gU2VyaWFsUG9ydFJlYWRSZWdp c3RlciAoU2VyaWFsUmVnaXN0ZXJCYXNlLCBSX1VBUlRfTFNSKTsKPiA+IAo+ID4gKwo+ID4gCj4g PiArICBpZiAoKExzciAmIChCX1VBUlRfTFNSX1RFTVQgfCBCX1VBUlRfTFNSX1RYUkRZKSkgPT0K PiA+IChCX1VBUlRfTFNSX1RFTVQgfCBCX1VBUlRfTFNSX1RYUkRZKSkgewo+ID4gCj4gPiArICAg ICpDb250cm9sIHw9IEVGSV9TRVJJQUxfT1VUUFVUX0JVRkZFUl9FTVBUWTsKPiA+IAo+ID4gKyAg fQo+ID4gCj4gPiArCj4gPiAKPiA+ICsgIGlmICgoTHNyICYgQl9VQVJUX0xTUl9SWFJEWSkgPT0g MCkgewo+ID4gCj4gPiArICAgICpDb250cm9sIHw9IEVGSV9TRVJJQUxfSU5QVVRfQlVGRkVSX0VN UFRZOwo+ID4gCj4gPiArICB9Cj4gPiAKPiA+ICsKPiA+IAo+ID4gKyAgcmV0dXJuIFJFVFVSTl9T VUNDRVNTOwo+ID4gCj4gPiArfQo+ID4gCj4gPiArCj4gPiAKPiA+ICsvKioKPiA+IAo+ID4gKyAg U2V0cyB0aGUgYmF1ZCByYXRlLCByZWNlaXZlIEZJRk8gZGVwdGgsIHRyYW5zbWl0L3JlY2VpY2Ug dGltZSBvdXQsCj4gcGFyaXR5LAo+ID4gCj4gPiArICBkYXRhIGJpdHMsIGFuZCBzdG9wIGJpdHMg b24gYSBzZXJpYWwgZGV2aWNlLgo+ID4gCj4gPiArCj4gPiAKPiA+ICsgIEBwYXJhbSBCYXVkUmF0 ZSAgICAgICAgICAgVGhlIHJlcXVlc3RlZCBiYXVkIHJhdGUuIEEgQmF1ZFJhdGUKPiA+IHZhbHVl IG9mIDAgd2lsbCB1c2UgdGhlCj4gPiAKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGV2aWNlJ3MgZGVmYXVsdCBpbnRlcmZhY2Ugc3BlZWQuCj4gPiAKPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT24gb3V0cHV0LCB0aGUgdmFsdWUgYWN0dWFsbHkgc2V0Lgo+ID4gCj4g PiArICBAcGFyYW0gUmV2ZWl2ZUZpZm9EZXB0aCAgIFRoZSByZXF1ZXN0ZWQgZGVwdGggb2YgdGhl IEZJRk8gb24gdGhlCj4gPiByZWNlaXZlIHNpZGUgb2YgdGhlCj4gPiAKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VyaWFsIGludGVyZmFjZS4gQSBSZWNlaXZlRmlmb0RlcHRoIHZh bHVlCj4gPiBvZiAwIHdpbGwgdXNlCj4gPiAKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGhlIGRldmljZSdzIGRlZmF1bHQgRklGTyBkZXB0aC4KPiA+IAo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPbiBvdXRwdXQsIHRoZSB2YWx1ZSBhY3R1YWxseSBzZXQuCj4gPiAK PiA+ICsgIEBwYXJhbSBUaW1lb3V0ICAgICAgICAgICAgVGhlIHJlcXVlc3RlZCB0aW1lIG91dCBm b3IgYSBzaW5nbGUKPiA+IGNoYXJhY3RlciBpbiBtaWNyb3NlY29uZHMuCj4gPiAKPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyB0aW1lb3V0IGFwcGxpZXMgdG8gYm90aCB0aGUg dHJhbnNtaXQKPiA+IGFuZCByZWNlaXZlIHNpZGUgb2YgdGhlCj4gPiAKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50ZXJmYWNlLiBBIFRpbWVvdXQgdmFsdWUgb2YgMCB3aWxsIHVz ZQo+ID4gdGhlIGRldmljZSdzIGRlZmF1bHQgdGltZQo+ID4gCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG91dCB2YWx1ZS4KPiA+IAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBPbiBvdXRwdXQsIHRoZSB2YWx1ZSBhY3R1YWxseSBzZXQuCj4gPiAKPiA+ICsgIEBwYXJh bSBQYXJpdHkgICAgICAgICAgICAgVGhlIHR5cGUgb2YgcGFyaXR5IHRvIHVzZSBvbiB0aGlzIHNl cmlhbAo+ID4gZGV2aWNlLiBBIFBhcml0eSB2YWx1ZSBvZgo+ID4gCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgIERlZmF1bHRQYXJpdHkgd2lsbCB1c2UgdGhlIGRldmljZSdzIGRlZmF1 bHQKPiA+IHBhcml0eSB2YWx1ZS4KPiA+IAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBPbiBvdXRwdXQsIHRoZSB2YWx1ZSBhY3R1YWxseSBzZXQuCj4gPiAKPiA+ICsgIEBwYXJhbSBE YXRhQml0cyAgICAgICAgICAgVGhlIG51bWJlciBvZiBkYXRhIGJpdHMgdG8gdXNlIG9uIHRoZQo+ ID4gc2VyaWFsIGRldmljZS4gQSBEYXRhQml0cwo+ID4gCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHZhdWxlIG9mIDAgd2lsbCB1c2UgdGhlIGRldmljZSdzIGRlZmF1bHQKPiA+IGRh dGEgYml0IHNldHRpbmcuCj4gPiAKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgT24g b3V0cHV0LCB0aGUgdmFsdWUgYWN0dWFsbHkgc2V0Lgo+ID4gCj4gPiArICBAcGFyYW0gU3RvcEJp dHMgICAgICAgICAgIFRoZSBudW1iZXIgb2Ygc3RvcCBiaXRzIHRvIHVzZSBvbiB0aGlzCj4gPiBz ZXJpYWwgZGV2aWNlLiBBIFN0b3BCaXRzCj4gPiAKPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdmFsdWUgb2YgRGVmYXVsdFN0b3BCaXRzIHdpbGwgdXNlIHRoZQo+ID4gZGV2aWNlJ3Mg ZGVmYXVsdCBudW1iZXIgb2YKPiA+IAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dG9wIGJpdHMuCj4gPiAKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgT24gb3V0cHV0 LCB0aGUgdmFsdWUgYWN0dWFsbHkgc2V0Lgo+ID4gCj4gPiArCj4gPiAKPiA+ICsgIEByZXR2YWwg UkVUVVJOX1NVQ0NFU1MgICAgICAgICAgICBUaGUgbmV3IGF0dHJpYnV0ZXMgd2VyZSBzZXQgb24K PiA+IHRoZSBzZXJpYWwgZGV2aWNlLgo+ID4gCj4gPiArICBAcmV0dmFsIFJFVFVSTl9VTlNVUFBP UlRFRCAgICAgICAgVGhlIHNlcmlhbCBkZXZpY2UgZG9lcyBub3QKPiA+IHN1cHBvcnQgdGhpcyBv cGVyYXRpb24uCj4gPiAKPiA+ICsgIEByZXR2YWwgUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSICBP bmUgb3IgbW9yZSBvZiB0aGUgYXR0cmlidXRlcwo+ID4gaGFzIGFuIHVuc3VwcG9ydGVkIHZhbHVl Lgo+ID4gCj4gPiArICBAcmV0dmFsIFJFVFVSTl9ERVZJQ0VfRVJST1IgICAgICAgVGhlIHNlcmlh bCBkZXZpY2UgaXMgbm90Cj4gPiBmdW5jdGlvbmluZyBjb3JyZWN0bHkuCj4gPiAKPiA+ICsKPiA+ IAo+ID4gKyoqLwo+ID4gCj4gPiArUkVUVVJOX1NUQVRVUwo+ID4gCj4gPiArRUZJQVBJCj4gPiAK PiA+ICtVYXJ0Q3RsQ29uZmlnICgKPiA+IAo+ID4gKyAgSU4gT1VUIFVJTlQ2NCAgICAgICAgICAg ICAqQmF1ZFJhdGUsCj4gPiAKPiA+ICsgIElOIE9VVCBVSU5UMzIgICAgICAgICAgICAgKlJlY2Vp dmVGaWZvRGVwdGgsCj4gPiAKPiA+ICsgIElOIE9VVCBVSU5UMzIgICAgICAgICAgICAgKlRpbWVv dXQsCj4gPiAKPiA+ICsgIElOIE9VVCBFRklfUEFSSVRZX1RZUEUgICAgKlBhcml0eSwKPiA+IAo+ ID4gKyAgSU4gT1VUIFVJTlQ4ICAgICAgICAgICAgICAqRGF0YUJpdHMsCj4gPiAKPiA+ICsgIElO IE9VVCBFRklfU1RPUF9CSVRTX1RZUEUgKlN0b3BCaXRzLAo+ID4gCj4gPiArICBJTiBVSU5UTiAg ICAgICAgICAgICAgICAgICBDdGxBZGRyCj4gPiAKPiA+ICsgICkKPiA+IAo+ID4gK3sKPiA+IAo+ ID4gKyAgVUlOVE4gICAgIFNlcmlhbFJlZ2lzdGVyQmFzZTsKPiA+IAo+ID4gKyAgVUlOVDggICAg IExjcjsKPiA+IAo+ID4gKyAgVUlOVDggICAgIExjckRhdGE7Cj4gPiAKPiA+ICsgIFVJTlQ4ICAg ICBMY3JQYXJpdHk7Cj4gPiAKPiA+ICsgIFVJTlQ4ICAgICBMY3JTdG9wOwo+ID4gCj4gPiArCj4g PiAKPiA+ICsKPiA+IAo+ID4gKyAgU2VyaWFsUmVnaXN0ZXJCYXNlID0gQ3RsQWRkcjsKPiA+IAo+ ID4gKyAgaWYgKFNlcmlhbFJlZ2lzdGVyQmFzZSA9PTApIHsKPiA+IAo+ID4gKyAgICByZXR1cm4g UkVUVVJOX1VOU1VQUE9SVEVEOwo+ID4gCj4gPiArICB9Cj4gPiAKPiA+ICsKPiA+IAo+ID4gKyAg Ly8KPiA+IAo+ID4gKyAgLy8gQ2hlY2sgZm9yIGRlZmF1bHQgc2V0dGluZ3MgYW5kIGZpbGwgaW4g YWN0dWFsIHZhbHVlcy4KPiA+IAo+ID4gKyAgLy8KPiA+IAo+ID4gKyAgaWYgKCpCYXVkUmF0ZSA9 PSAwKSB7Cj4gPiAKPiA+ICsgICAgKkJhdWRSYXRlID0gUGNkR2V0MzIgKFBjZFNlcmlhbEJhdWRS YXRlKTsKPiA+IAo+ID4gKyAgfQo+ID4gCj4gPiArCj4gPiAKPiA+ICsgIGlmICgqRGF0YUJpdHMg PT0gMCkgewo+ID4gCj4gPiArICAgIExjckRhdGEgPSAoVUlOVDgpIChQY2RHZXQ4IChQY2RTZXJp YWxMaW5lQ29udHJvbCkgJiAweDMpOwo+ID4gCj4gPiArICAgICpEYXRhQml0cyA9IExjckRhdGEg KyA1Owo+ID4gCj4gPiArICB9IGVsc2Ugewo+ID4gCj4gPiArICAgIGlmICgoKkRhdGFCaXRzIDwg NSkKPiA+IAo+ID4gKyAgICAgIHx8ICgqRGF0YUJpdHMgPiA4KSkKPiA+IAo+ID4gKyAgICB7Cj4g PiAKPiA+ICsgICAgICByZXR1cm4gUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSOwo+ID4gCj4gPiAr ICAgIH0KPiA+IAo+ID4gKyAgICAvLwo+ID4gCj4gPiArICAgIC8vIE1hcCA1Li44IHRvIDAuLjMK PiA+IAo+ID4gKyAgICAvLwo+ID4gCj4gPiArICAgIExjckRhdGEgPSAoVUlOVDgpICgqRGF0YUJp dHMgLSAoVUlOVDgpIDUpOwo+ID4gCj4gPiArICB9Cj4gPiAKPiA+ICsKPiA+IAo+ID4gKyAgaWYg KCpQYXJpdHkgPT0gRGVmYXVsdFBhcml0eSkgewo+ID4gCj4gPiArICAgIExjclBhcml0eSA9IChV SU5UOCkgKChQY2RHZXQ4IChQY2RTZXJpYWxMaW5lQ29udHJvbCkgPj4gMykgJiAweDcpOwo+ID4g Cj4gPiArICAgIHN3aXRjaCAoTGNyUGFyaXR5KSB7Cj4gPiAKPiA+ICsgICAgICBjYXNlIDA6Cj4g PiAKPiA+ICsgICAgICAgICpQYXJpdHkgPSBOb1Bhcml0eTsKPiA+IAo+ID4gKyAgICAgICAgYnJl YWs7Cj4gPiAKPiA+ICsKPiA+IAo+ID4gKyAgICAgIGNhc2UgMzoKPiA+IAo+ID4gKyAgICAgICAg KlBhcml0eSA9IEV2ZW5QYXJpdHk7Cj4gPiAKPiA+ICsgICAgICAgIGJyZWFrOwo+ID4gCj4gPiAr Cj4gPiAKPiA+ICsgICAgICBjYXNlIDE6Cj4gPiAKPiA+ICsgICAgICAgICpQYXJpdHkgPSBPZGRQ YXJpdHk7Cj4gPiAKPiA+ICsgICAgICAgIGJyZWFrOwo+ID4gCj4gPiArCj4gPiAKPiA+ICsgICAg ICBjYXNlIDc6Cj4gPiAKPiA+ICsgICAgICAgICpQYXJpdHkgPSBTcGFjZVBhcml0eTsKPiA+IAo+ ID4gKyAgICAgICAgYnJlYWs7Cj4gPiAKPiA+ICsKPiA+IAo+ID4gKyAgICAgIGNhc2UgNToKPiA+ IAo+ID4gKyAgICAgICAgKlBhcml0eSA9IE1hcmtQYXJpdHk7Cj4gPiAKPiA+ICsgICAgICAgIGJy ZWFrOwo+ID4gCj4gPiArCj4gPiAKPiA+ICsgICAgICBkZWZhdWx0Ogo+ID4gCj4gPiArICAgICAg ICBicmVhazsKPiA+IAo+ID4gKyAgICB9Cj4gPiAKPiA+ICsgIH0gZWxzZSB7Cj4gPiAKPiA+ICsg ICAgc3dpdGNoICgqUGFyaXR5KSB7Cj4gPiAKPiA+ICsgICAgICBjYXNlIE5vUGFyaXR5Ogo+ID4g Cj4gPiArICAgICAgICBMY3JQYXJpdHkgPSAwOwo+ID4gCj4gPiArICAgICAgICBicmVhazsKPiA+ IAo+ID4gKwo+ID4gCj4gPiArICAgICAgY2FzZSBFdmVuUGFyaXR5Ogo+ID4gCj4gPiArICAgICAg ICBMY3JQYXJpdHkgPSAzOwo+ID4gCj4gPiArICAgICAgICBicmVhazsKPiA+IAo+ID4gKwo+ID4g Cj4gPiArICAgICAgY2FzZSBPZGRQYXJpdHk6Cj4gPiAKPiA+ICsgICAgICAgIExjclBhcml0eSA9 IDE7Cj4gPiAKPiA+ICsgICAgICAgIGJyZWFrOwo+ID4gCj4gPiArCj4gPiAKPiA+ICsgICAgICBj YXNlIFNwYWNlUGFyaXR5Ogo+ID4gCj4gPiArICAgICAgICBMY3JQYXJpdHkgPSA3Owo+ID4gCj4g PiArICAgICAgICBicmVhazsKPiA+IAo+ID4gKwo+ID4gCj4gPiArICAgICAgY2FzZSBNYXJrUGFy aXR5Ogo+ID4gCj4gPiArICAgICAgICBMY3JQYXJpdHkgPSA1Owo+ID4gCj4gPiArICAgICAgICBi cmVhazsKPiA+IAo+ID4gKwo+ID4gCj4gPiArICAgICAgZGVmYXVsdDoKPiA+IAo+ID4gKyAgICAg ICAgcmV0dXJuIFJFVFVSTl9JTlZBTElEX1BBUkFNRVRFUjsKPiA+IAo+ID4gKyAgICB9Cj4gPiAK PiA+ICsgIH0KPiA+IAo+ID4gKwo+ID4gCj4gPiArICBpZiAoKlN0b3BCaXRzID09IERlZmF1bHRT dG9wQml0cykgewo+ID4gCj4gPiArICAgIExjclN0b3AgPSAoVUlOVDgpICgoUGNkR2V0OCAoUGNk U2VyaWFsTGluZUNvbnRyb2wpID4+IDIpICYgMHgxKTsKPiA+IAo+ID4gKyAgICBzd2l0Y2ggKExj clN0b3ApIHsKPiA+IAo+ID4gKyAgICAgIGNhc2UgMDoKPiA+IAo+ID4gKyAgICAgICAgKlN0b3BC aXRzID0gT25lU3RvcEJpdDsKPiA+IAo+ID4gKyAgICAgICAgYnJlYWs7Cj4gPiAKPiA+ICsKPiA+ IAo+ID4gKyAgICAgIGNhc2UgMToKPiA+IAo+ID4gKyAgICAgICAgaWYgKCpEYXRhQml0cyA9PSA1 KSB7Cj4gPiAKPiA+ICsgICAgICAgICAgKlN0b3BCaXRzID0gT25lRml2ZVN0b3BCaXRzOwo+ID4g Cj4gPiArICAgICAgICB9IGVsc2Ugewo+ID4gCj4gPiArICAgICAgICAgICpTdG9wQml0cyA9IFR3 b1N0b3BCaXRzOwo+ID4gCj4gPiArICAgICAgICB9Cj4gPiAKPiA+ICsgICAgICAgIGJyZWFrOwo+ ID4gCj4gPiArCj4gPiAKPiA+ICsgICAgICBkZWZhdWx0Ogo+ID4gCj4gPiArICAgICAgICBicmVh azsKPiA+IAo+ID4gKyAgICB9Cj4gPiAKPiA+ICsgIH0gZWxzZSB7Cj4gPiAKPiA+ICsgICAgc3dp dGNoICgqU3RvcEJpdHMpIHsKPiA+IAo+ID4gKyAgICAgIGNhc2UgT25lU3RvcEJpdDoKPiA+IAo+ ID4gKyAgICAgICAgTGNyU3RvcCA9IDA7Cj4gPiAKPiA+ICsgICAgICAgIGJyZWFrOwo+ID4gCj4g PiArCj4gPiAKPiA+ICsgICAgICBjYXNlIE9uZUZpdmVTdG9wQml0czoKPiA+IAo+ID4gKyAgICAg IGNhc2UgVHdvU3RvcEJpdHM6Cj4gPiAKPiA+ICsgICAgICAgIExjclN0b3AgPSAxOwo+ID4gCj4g PiArICAgICAgICBicmVhazsKPiA+IAo+ID4gKwo+ID4gCj4gPiArICAgICAgZGVmYXVsdDoKPiA+ IAo+ID4gKyAgICAgICAgcmV0dXJuIFJFVFVSTl9JTlZBTElEX1BBUkFNRVRFUjsKPiA+IAo+ID4g KyAgICB9Cj4gPiAKPiA+ICsgIH0KPiA+IAo+ID4gKyAgU2VyaWFsUG9ydFdyaXRlUmVnaXN0ZXIg KFNlcmlhbFJlZ2lzdGVyQmFzZSwgUl9VQVJUX0xDUiwKPiA+IEJfVUFSVF9MQ1JfRExBQik7Cj4g PiAKPiA+ICsKPiA+IAo+ID4gKyAgLy8KPiA+IAo+ID4gKyAgLy8gQ2xlYXIgRExBQiBhbmQgY29u ZmlndXJlIERhdGEgQml0cywgUGFyaXR5LCBhbmQgU3RvcCBCaXRzLgo+ID4gCj4gPiArICAvLyBT dHJpcCByZXNlcnZlZCBiaXRzIGZyb20gbGluZSBjb250cm9sIHZhbHVlCj4gPiAKPiA+ICsgIC8v Cj4gPiAKPiA+ICsgIExjciA9IChVSU5UOCkgKChMY3JQYXJpdHkgPDwgMykgfCAoTGNyU3RvcCA8 PCAyKSB8IExjckRhdGEpOwo+ID4gCj4gPiArICBTZXJpYWxQb3J0V3JpdGVSZWdpc3RlciAoU2Vy aWFsUmVnaXN0ZXJCYXNlLCBSX1VBUlRfTENSLCAoVUlOVDgpIChMY3IgJgo+ID4gMHgzRikpOwo+ ID4gCj4gPiArCj4gPiAKPiA+ICsgIHJldHVybiBSRVRVUk5fU1VDQ0VTUzsKPiA+IAo+ID4gK30K PiA+IAo+ID4gKy8qKgo+ID4gCj4gPiArICBTZXQgdGhlIHNlcmlhbCBwb3J0IEF0dHJpYnV0ZXMu Cj4gPiAKPiA+ICsKPiA+IAo+ID4gKyAgQHBhcmFtICBWT0lECj4gPiAKPiA+ICsKPiA+IAo+ID4g KyAgQHJldHVybiAgc2VyaWFsIHJlZ2lzdGVyIGJhc2UgYWRkcmVzcy4KPiA+IAo+ID4gKyoqLwo+ ID4gCj4gPiArUkVUVVJOX1NUQVRVUwo+ID4gCj4gPiArRUZJQVBJCj4gPiAKPiA+ICtTZXJpYWxQ b3J0U2V0QXR0cmlidXRlcyAoCj4gPiAKPiA+ICsgIElOIE9VVCBVSU5UNjQgICAgICAgICAgICAg KkJhdWRSYXRlLAo+ID4gCj4gPiArICBJTiBPVVQgVUlOVDMyICAgICAgICAgICAgICpSZWNlaXZl Rmlmb0RlcHRoLAo+ID4gCj4gPiArICBJTiBPVVQgVUlOVDMyICAgICAgICAgICAgICpUaW1lb3V0 LAo+ID4gCj4gPiArICBJTiBPVVQgRUZJX1BBUklUWV9UWVBFICAgICpQYXJpdHksCj4gPiAKPiA+ ICsgIElOIE9VVCBVSU5UOCAgICAgICAgICAgICAgKkRhdGFCaXRzLAo+ID4gCj4gPiArICBJTiBP VVQgRUZJX1NUT1BfQklUU19UWVBFICpTdG9wQml0cwo+ID4gCj4gPiArICApCj4gPiAKPiA+ICt7 Cj4gPiAKPiA+ICsgIFVJTlROICAgICBTZXJpYWxSZWdpc3RlckJhc2U7Cj4gPiAKPiA+ICsKPiA+ IAo+ID4gKyAgU2VyaWFsUmVnaXN0ZXJCYXNlID0gR2V0U2VyaWFsUmVnaXN0ZXJCYXNlICgpOwo+ ID4gCj4gPiArCj4gPiAKPiA+ICsgIHJldHVybiAgVWFydEN0bENvbmZpZyAoJmdCcHMsIFJlY2Vp dmVGaWZvRGVwdGgsIFRpbWVvdXQsIFBhcml0eSwKPiA+IERhdGFCaXRzLCBTdG9wQml0cywKPiA+ IAo+ID4gKyAgICAgICAgICAgIFNlcmlhbFJlZ2lzdGVyQmFzZSk7Cj4gPiAKPiA+ICt9Cj4gPiAK PiA+IGRpZmYgLS1naXQKPiA+IGEvUGxhdGZvcm0vTG9vbmdzb24vTG9vbmdBcmNoUWVtdVBrZy9M aWJyYXJ5L1NlcmlhbFBvcnRMaWIvU2VyaWFsUG9ydExpYgo+ID4gLmluZgo+ID4gYi9QbGF0Zm9y bS9Mb29uZ3Nvbi9Mb29uZ0FyY2hRZW11UGtnL0xpYnJhcnkvU2VyaWFsUG9ydExpYi9TZXJpYWxQ b3J0TGliCj4gPiAuaW5mCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gaW5kZXggMDAwMDAw MDAwMC4uNmM0Njc0MTUxYgo+ID4gLS0tIC9kZXYvbnVsbAo+ID4gKysrCj4gPiBiL1BsYXRmb3Jt L0xvb25nc29uL0xvb25nQXJjaFFlbXVQa2cvTGlicmFyeS9TZXJpYWxQb3J0TGliL1NlcmlhbFBv cnRMaWIKPiA+IC5pbmYKPiA+IEBAIC0wLDAgKzEsMzYgQEAKPiA+ICsjIyBAZmlsZQo+ID4gCj4g PiArIyAgVUFSVCBTZXJpYWwgUG9ydCBsaWJyYXJ5IGZ1bmN0aW9ucwo+ID4gCj4gPiArIwo+ID4g Cj4gPiArIyAgQ29weXJpZ2h0IChjKSAyMDIxIExvb25nc29uIFRlY2hub2xvZ3kgQ29ycG9yYXRp b24gTGltaXRlZC4gQWxsIHJpZ2h0cwo+ID4gcmVzZXJ2ZWQuPEJSPgo+ID4gCj4gPiArIwo+ID4g Cj4gPiArIyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQKPiA+ IAo+ID4gKyMKPiA+IAo+ID4gKyMjCj4gPiAKPiA+ICsKPiA+IAo+ID4gKwo+ID4gCj4gPiArW0Rl ZmluZXNdCj4gPiAKPiA+ICsgIElORl9WRVJTSU9OICAgICAgICAgICAgICAgICAgICA9IDB4MDAw MTAwMDUKPiA+IAo+ID4gKyAgQkFTRV9OQU1FICAgICAgICAgICAgICAgICAgICAgID0gUGNBdFNl cmlhbFBvcnRMaWIKPiA+IAo+ID4gKyAgRklMRV9HVUlEICAgICAgICAgICAgICAgICAgICAgID0K PiA+IGY0ZmI4ODNkLTgxMzgtNGYyOS1iYjBjLWM1NzRlOTMxMmM3NAo+ID4gCj4gPiArICBNT0RV TEVfVFlQRSAgICAgICAgICAgICAgICAgICAgPSBCQVNFCj4gPiAKPiA+ICsgIFZFUlNJT05fU1RS SU5HICAgICAgICAgICAgICAgICA9IDEuMAo+ID4gCj4gPiArICBMSUJSQVJZX0NMQVNTICAgICAg ICAgICAgICAgICAgPSBTZXJpYWxQb3J0TGliCj4gPiAKPiA+ICsKPiA+IAo+ID4gK1tQYWNrYWdl c10KPiA+IAo+ID4gKyAgTWRlUGtnL01kZVBrZy5kZWMKPiA+IAo+ID4gKyAgTWRlTW9kdWxlUGtn L01kZU1vZHVsZVBrZy5kZWMKPiA+IAo+ID4gKyAgUGxhdGZvcm0vTG9vbmdzb24vTG9vbmdBcmNo UWVtdVBrZy9Mb29uZ3Nvbi5kZWMKPiA+IAo+ID4gKwo+ID4gCj4gPiArW0xpYnJhcnlDbGFzc2Vz XQo+ID4gCj4gPiArICBCYXNlTGliCj4gPiAKPiA+ICsgIElvTGliCj4gPiAKPiA+ICsgIFBjZExp Ygo+ID4gCj4gPiArCj4gPiAKPiA+ICtbU291cmNlc10KPiA+IAo+ID4gKyAgU2VyaWFsUG9ydExp Yi5jCj4gPiAKPiA+ICsKPiA+IAo+ID4gK1tQY2RdCj4gPiAKPiA+ICsgIGdFZmlNZGVNb2R1bGVQ a2dUb2tlblNwYWNlR3VpZC5QY2RTZXJpYWxVc2VIYXJkd2FyZUZsb3dDb250cm9sCj4gPiAjIyBD T05TVU1FUwo+ID4gCj4gPiArICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkU2Vy aWFsQmF1ZFJhdGUKPiA+ICMjIENPTlNVTUVTCj4gPiAKPiA+ICsgIGdFZmlNZGVNb2R1bGVQa2dU b2tlblNwYWNlR3VpZC5QY2RTZXJpYWxMaW5lQ29udHJvbAo+ID4gIyMgQ09OU1VNRVMKPiA+IAo+ ID4gKyAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFNlcmlhbENsb2NrUmF0ZQo+ ID4gIyMgQ09OU1VNRVMKPiA+IAo+ID4gLS0KPiA+IDIuMzEuMQo+ID4gCj4gPiAKPiA+IAo+ID4g LT0tPS09LT0tPS09Cj4gPiBHcm91cHMuaW8gTGlua3M6IFlvdSByZWNlaXZlIGFsbCBtZXNzYWdl cyBzZW50IHRvIHRoaXMgZ3JvdXAuCj4gPiBWaWV3L1JlcGx5IE9ubGluZSAoIzkzNTY4KTogaHR0 cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvOTM1NjgKPiA+IE11dGUgVGhpcyBU b3BpYzogaHR0cHM6Ly9ncm91cHMuaW8vbXQvOTM1NjU1OTEvNDkwNTk1Mwo+ID4gR3JvdXAgT3du ZXI6IGRldmVsK293bmVyQGVkazIuZ3JvdXBzLmlvCj4gPiBVbnN1YnNjcmliZTogaHR0cHM6Ly9l ZGsyLmdyb3Vwcy5pby9nL2RldmVsL3Vuc3ViCj4gPiBbZ2FvbGltaW5nQGJ5b3NvZnQuY29tLmNu XQo+ID4gLT0tPS09LT0tPS09Cj4gPiAKPiA+IAo+ID4gCj4gCj4gCj4gCj4gCg0KDQrmnKzpgq7k u7blj4rlhbbpmYTku7blkKvmnInpvpnoiq/kuK3np5HnmoTllYbkuJrnp5jlr4bkv6Hmga/vvIzk u4XpmZDkuo7lj5HpgIHnu5nkuIrpnaLlnLDlnYDkuK3liJflh7rnmoTkuKrkurrmiJbnvqTnu4Tj gILnpoHmraLku7vkvZXlhbbku5bkurrku6Xku7vkvZXlvaLlvI/kvb/nlKjvvIjljIXmi6zkvYbk uI3pmZDkuo7lhajpg6jmiJbpg6jliIblnLDms4TpnLLjgIHlpI3liLbmiJbmlaPlj5HvvInmnKzp gq7ku7blj4rlhbbpmYTku7bkuK3nmoTkv6Hmga/jgILlpoLmnpzmgqjplJnmlLbmnKzpgq7ku7bv vIzor7fmgqjnq4vljbPnlLXor53miJbpgq7ku7bpgJrnn6Xlj5Hku7bkurrlubbliKDpmaTmnKzp gq7ku7bjgIIgDQpUaGlzIGVtYWlsIGFuZCBpdHMgYXR0YWNobWVudHMgY29udGFpbiBjb25maWRl bnRpYWwgaW5mb3JtYXRpb24gZnJvbSBMb29uZ3NvbiBUZWNobm9sb2d5ICwgd2hpY2ggaXMgaW50 ZW5kZWQgb25seSBmb3IgdGhlIHBlcnNvbiBvciBlbnRpdHkgd2hvc2UgYWRkcmVzcyBpcyBsaXN0 ZWQgYWJvdmUuIEFueSB1c2Ugb2YgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gaW4g YW55IHdheSAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG8sIHRvdGFsIG9yIHBhcnRpYWwg ZGlzY2xvc3VyZSwgcmVwcm9kdWN0aW9uIG9yIGRpc3NlbWluYXRpb24pIGJ5IHBlcnNvbnMgb3Ro ZXIgdGhhbiB0aGUgaW50ZW5kZWQgcmVjaXBpZW50KHMpIGlzIHByb2hpYml0ZWQuIElmIHlvdSBy ZWNlaXZlIHRoaXMgZW1haWwgaW4gZXJyb3IsIHBsZWFzZSBub3RpZnkgdGhlIHNlbmRlciBieSBw aG9uZSBvciBlbWFpbCBpbW1lZGlhdGVseSBhbmQgZGVsZXRlIGl0LiA=