From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Stephen Gallagher To: git-commits@fedoraproject.org Subject: [rpms/open-vm-tools] f45: Merge remote-tracking branch 'origin/eln' into rawhide Date: Wed, 23 Sep 2026 22:13:09 GMT Message-ID: <179020158923.1.508408169625752772.rpms-open-vm-tools-fbbad012e210@fedoraproject.org> List-ID: X-Git-Repo: rpms/open-vm-tools X-Git-Branch: f45 X-Git-Rev: fbbad012e2105f4f4be42ff3bcad549b5a4ea781 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvb3Blbi12bS10b29s cwpCcmFuY2ggOiBmNDUKQ29tbWl0IDogZmJiYWQwMTJlMjEwNWY0ZjRiZTQyZmYzYmNhZDU0OWI1 YTRlYTc4MQpBdXRob3IgOiBTdGVwaGVuIEdhbGxhZ2hlciA8c2dhbGxhZ2hAcmVkaGF0LmNvbT4K RGF0ZSAgIDogMjAyNi0wOS0wM1QxMDo0MzozMC0wNDowMApTdGF0cyAgOiArNzI2Ly0xMzgxIGlu IDExIGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9v cGVuLXZtLXRvb2xzL2MvZmJiYWQwMTJlMjEwNWY0ZjRiZTQyZmYzYmNhZDU0OWI1YTRlYTc4MT9i cmFuY2g9ZjQ1CgpMb2c6Ck1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9lbG4n IGludG8gcmF3aGlkZQoKLS0tCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9yZQpp bmRleCA4NDg4MWZiLi4zMzVlYzk1IDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBiLy5naXRp Z25vcmUKQEAgLTEsNDQgKzEgQEAKLS9vcGVuLXZtLXRvb2xzLTkuMi4yLTg5MzY4My50YXIuZ3oK LS9vcGVuLXZtLXRvb2xzLTkuMi4zLTEwMzEzNjAudGFyLmd6Ci0vb3Blbi12bS10b29scy05LjQu MC0xMjgwNTQ0LnRhci5negotL29wZW4tdm0tdG9vbHMtOS40LjYtMTc3MDE2NS50YXIuZ3oKLS9v cGVuLXZtLXRvb2xzLTkuMTAuMC0yNDc2NzQzLnRhci5negotL29wZW4tdm0tdG9vbHMtOS4xMC4y LTI4MjI2MzkudGFyLmd6Ci0vb3Blbi12bS10b29scy0xMC4wLjAtMzAwMDc0My50YXIuZ3oKLS9v cGVuLXZtLXRvb2xzLTEwLjAuNS0zMjI3ODcyLnRhci5negotL29wZW4tdm0tdG9vbHMtMTAuMS4w LTQ0NDkxNTAudGFyLmd6Ci0vb3Blbi12bS10b29scy0xMC4xLjUtNTA1NTY4My50YXIuZ3oKLS9v cGVuLXZtLXRvb2xzLTEwLjEuMTAtNjA4MjUzMy50YXIuZ3oKLS9vcGVuLXZtLXRvb2xzLTEwLjIu MC03MjUzMzIzLnRhci5negotL29wZW4tdm0tdG9vbHMtMTAuMi41LTgwNjg0MDYudGFyLmd6Ci0v b3Blbi12bS10b29scy0xMC4zLjAtODkzMTM5NS50YXIuZ3oKLS9vcGVuLXZtLXRvb2xzLTEwLjMu NS0xMDQzMDE0Ny50YXIuZ3oKLS9vcGVuLXZtLXRvb2xzLTEwLjMuMTAtMTI0MDY5NjIudGFyLmd6 Ci0vb3Blbi12bS10b29scy0xMS4wLjAtMTQ1NDk0MzQudGFyLmd6Ci0vb3Blbi12bS10b29scy0x MS4wLjUtMTUzODk1OTIudGFyLmd6Ci0vb3Blbi12bS10b29scy0xMS4xLjAtMTYwMzY1NDYudGFy Lmd6Ci0vb3Blbi12bS10b29scy0xMS4xLjUtMTY3MjQ0NjQudGFyLmd6Ci0vb3Blbi12bS10b29s cy0xMS4yLjAtMTY5MzgxMTMudGFyLmd6Ci0vb3Blbi12bS10b29scy0xMS4yLjUtMTczMzc2NzQu dGFyLmd6Ci0vb3Blbi12bS10b29scy0xMS4zLjAtMTgwOTA1NTgudGFyLmd6Ci0vb3Blbi12bS10 b29scy0xMS4zLjUtMTg1NTc3OTQudGFyLmd6Ci0vb3Blbi12bS10b29scy0xMi4wLjAtMTkzNDU2 NTUudGFyLmd6Ci0vb3Blbi12bS10b29scy0xMi4wLjUtMTk3MTY2MTcudGFyLmd6Ci0vb3Blbi12 bS10b29scy0xMi4xLjAtMjAyMTk2NjUudGFyLmd6Ci0vb3Blbi12bS10b29scy0xMi4xLjUtMjA3 MzUxMTkudGFyLmd6Ci0vb3Blbi12bS10b29scy0xMi4yLjAtMjEyMjMwNzQudGFyLmd6Ci0vb3Bl bi12bS10b29scy0xMi4yLjUtMjE4NTU2MDAudGFyLmd6Ci0vb3Blbi12bS10b29scy0xMi4zLjAt MjIyMzQ4NzIudGFyLmd6Ci0vb3Blbi12bS10b29scy0xMi4zLjUtMjI1NDQwOTkudGFyLmd6Ci0v b3Blbi12bS10b29scy0xMi40LjAtMjMyNTkzNDEudGFyLmd6Ci0vYXRrbW0tMi4yOC40LTIuZWwx MC5zcmMucnBtCi0vY2Fpcm9tbS0xLjE0LjUtNS5lbDEwLnNyYy5ycG0KLS9nbGlibW0yLjQtMi42 Ni42LTUuZWwxMC5zcmMucnBtCi0vZ3RrbW0zLjAtMy4yNC44LTYuZWwxMC5zcmMucnBtCi0vbGli c2lnYysrMjAtMi4xMi4xLTQuZWw5LnNyYy5ycG0KLS9wYW5nb21tLTIuNDYuNC0yLmVsMTAuc3Jj LnJwbQotL29wZW4tdm0tdG9vbHMtMTIuNC41LTIzNzg3NjM1LnRhci5negotL29wZW4tdm0tdG9v bHMtMTIuNS4wLTI0Mjc2ODQ2LnRhci5negotL29wZW4tdm0tdG9vbHMtMTMuMC4wLTI0Njk2NDA5 LnRhci5negotL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1LnRhci5negotL29wZW4tdm0t dG9vbHMtMTMuMC4xMC0yNTA1NjE1MS50YXIuZ3oKKyoudGFyLmd6CgpkaWZmIC0tZ2l0IGEvMDAw MS1GaXgtZGlzY2FyZGVkLXF1YWxpZmllcnMtd2FybmluZy1lcnJvci5wYXRjaCBiLzAwMDEtRml4 LWRpc2NhcmRlZC1xdWFsaWZpZXJzLXdhcm5pbmctZXJyb3IucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDJhOWM3NGYuLjAwMDAwMDAKLS0tIGEvMDAwMS1GaXgtZGlzY2FyZGVk LXF1YWxpZmllcnMtd2FybmluZy1lcnJvci5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDc3NiAr MCwwIEBACi1Gcm9tIDBlODBjYjg2YmI0NzVmNjY3ZGFmN2ViNjNhNDIxNjJiYjg0YWIwN2EgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBNaXJvc2xhdiBSZXphbmluYSA8bXJlemFuaW5A cmVkaGF0LmNvbT4KLURhdGU6IFR1ZSwgOSBEZWMgMjAyNSAxMjoyMjowMiArMDEwMAotU3ViamVj dDogW1BBVENIXSBGaXggZGlzY2FyZGVkLXF1YWxpZmllcnMgd2FybmluZyBlcnJvcgotCi1OZXcg Z2NjIHJlcG9ydHMgd2FybmluZyB3aGVuIHBvaW50ZXIgbG9vc2VzIGNvbnN0IHF1YWxpZmllci4K LQotSW4gYWRkaXRpb24sIGhhbmRsZSBuZXcgZ19mcmVlIGRlZmluaXRpb24uCi0KLVNpZ25lZC1v ZmYtYnk6IE1pcm9zbGF2IFJlemFuaW5hIDxtcmV6YW5pbkByZWRoYXQuY29tPgotLS0tCi0gb3Bl bi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvY29uZmlnL2x0bWFpbi5zaCAgICAgfCAgNCArKy0t Ci0gLi4uL2xpYi9maWxlL2ZpbGVMb2NrUG9zaXguYyAgICAgICAgICAgICAgICAgICAgICAgfCAg NCArKy0tCi0gLi4uL2xpYi9maWxlL2ZpbGVMb2NrUHJpbWl0aXZlLmMgICAgICAgICAgICAgICAg ICAgfCAgMiArLQotIG9wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L2xpYi9maWxlL2ZpbGVQ b3NpeC5jIHwgIDQgKystLQotIC4uLi9saWIvZmlsZS9maWxlU3RhbmRBbG9uZS5jICAgICAgICAg ICAgICAgICAgICAgIHwgIDggKysrKy0tLS0KLSAuLi4vbGliL2dsaWJVdGlscy9maWxlTG9nZ2Vy LmMgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrKystLS0tCi0gLi4uL2xpYi9oZ2ZzL2hnZnNF c2NhcGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNCArKysrKysrLS0tLS0tLQotIC4u Li9saWIvaGdmc1NlcnZlci9oZ2ZzU2VydmVyTGludXguYyAgICAgICAgICAgICAgIHwgIDQgKyst LQotIG9wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L2xpYi9taXNjL2NvZGVzZXQuYyAgIHwg IDIgKy0KLSAuLi4vbGliL21pc2MvY29kZXNldE9sZC5jICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAyICstCi0gLi4uL2xpYi9taXNjL2hvc3RpbmZvUG9zaXguYyAgICAgICAgICAgICAgICAg ICAgICAgfCAxNCArKysrKysrLS0tLS0tLQotIG9wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1 L2xpYi9taXNjL21hY2hpbmVJRC5jIHwgIDIgKy0KLSBvcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkx NTY5NS9saWIvbWlzYy9zdHJ1dGlsLmMgICB8ICA4ICsrKystLS0tCi0gLi4uL2xpYi9uaWNJbmZv L25pY0luZm9Qb3NpeC5jICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQotIC4uLi9saWIvcHJv Y01nci9wcm9jTWdyUG9zaXguYyAgICAgICAgICAgICAgICAgICAgIHwgIDggKysrKy0tLS0KLSAu Li4vbGliL3Byb2NNZ3IvcHJvY01nclNvbGFyaXMuYyAgICAgICAgICAgICAgICAgICB8ICAyICst Ci0gLi4uL2xpYi9ycGNDaGFubmVsL2dsaWJfc3R1YnMuYyAgICAgICAgICAgICAgICAgICAgfCAg MyArKysKLSBvcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9saWIvdXNlci91dGlsLmMgICAg ICB8ICAyICstCi0gLi4uL2xpYmd1ZXN0U3RvcmVDbGllbnQvZ3Vlc3RTdG9yZUNsaWVudExpYi5j ICAgICAgfCAgNCArKy0tCi0gb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvbGlidm10b29s cy9pMThuLmMgICAgfCAgNCArKy0tCi0gLi4uL21vZHVsZXMvc29sYXJpcy92bWhnZnMvdm5vZGUu YyAgICAgICAgICAgICAgICAgfCAgMiArLQotIC4uLi9jb21wb25lbnRNZ3IvY29tcG9uZW50TWdy SW5zdGFsbEFjdGlvbi5jICAgICAgIHwgIDQgKystLQotIC4uLi9zZXJ2aWNlcy9wbHVnaW5zL2Ru ZGNwL2NvcHlQYXN0ZVVJWDExLmNwcCAgICAgIHwgIDIgKy0KLSAuLi4vc2VydmljZXMvcGx1Z2lu cy9kbmRjcC9kbmQvZG5kWGRnLmMgICAgICAgICAgICB8ICAyICstCi0gLi4uL3BsdWdpbnMvZG5k Y3AvZG5kR3Vlc3QvZ3Vlc3RDb3B5UGFzdGVTcmMuY2MgICAgfCAgMiArLQotIC4uLi9wbHVnaW5z L2RuZGNwL2RuZEd1ZXN0L3ZtR3Vlc3REbkRTcmMuY2MgICAgICAgIHwgIDIgKy0KLSAuLi4vc2Vy dmljZXMvcGx1Z2lucy9kbmRjcC9kbmRVSVgxMS5jcHAgICAgICAgICAgICB8ICAyICstCi0gLi4u L3NlcnZpY2VzL3BsdWdpbnMvZ3Vlc3RJbmZvL3BlcmZNb25MaW51eC5jICAgICAgfCAgMiArLQot IC4uLi9zZXJ2aWNlcy9wbHVnaW5zL3ZpeC92aXhUb29scy5jICAgICAgICAgICAgICAgIHwgIDgg KysrKy0tLS0KLSAuLi4vdGVzdHMvdm1ycGNkYmcvZGVidWdDaGFubmVsLmMgICAgICAgICAgICAg ICAgICB8ICAyICstCi0gb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvdmdhdXRoL2NvbW1v bi9pMThuLmMgfCAgMiArLQotIC4uLi92bWJsb2NrbW91bnRlci92bWJsb2NrbW91bnRlci5jICAg ICAgICAgICAgICAgIHwgIDIgKy0KLSBvcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS92bWhn ZnMtZnVzZS9jb25maWcuYyB8ICAyICstCi0gb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUv eGZlcmxvZ3MveGZlcmxvZ3MuYyAgfCAgOCArKysrLS0tLQotIDM0IGZpbGVzIGNoYW5nZWQsIDcz IGluc2VydGlvbnMoKyksIDcwIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvb3Blbi12bS10 b29scy0xMy4wLjUtMjQ5MTU2OTUvY29uZmlnL2x0bWFpbi5zaCBiL29wZW4tdm0tdG9vbHMtMTMu MC41LTI0OTE1Njk1L2NvbmZpZy9sdG1haW4uc2gKLWluZGV4IDJjMTUzMDkuLjA5ODk5ZjEgMTAw NzU1Ci0tLS0gYS9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9jb25maWcvbHRtYWluLnNo Ci0rKysgYi9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9jb25maWcvbHRtYWluLnNoCi1A QCAtNDQ3NiwxMSArNDQ3NiwxMSBAQCBFT0YKLSAJICAgIGNhdCA8PCJFT0YiCi0gICB7Ci0gICAg IGNoYXIqIHA7Ci0tICAgIHdoaWxlICgocCA9IHN0cmNociAobmV3YXJnelswXSwgJ1xcJykpICE9 IE5VTEwpCi0rICAgIHdoaWxlICgocCA9IChjaGFyICopIHN0cmNociAobmV3YXJnelswXSwgJ1xc JykpICE9IE5VTEwpCi0gICAgICAgewotIAkqcCA9ICcvJzsKLSAgICAgICB9Ci0tICAgIHdoaWxl ICgocCA9IHN0cmNociAobHRfYXJndl96ZXJvLCAnXFwnKSkgIT0gTlVMTCkKLSsgICAgd2hpbGUg KChwID0gKGNoYXIgKikgc3RyY2hyIChsdF9hcmd2X3plcm8sICdcXCcpKSAhPSBOVUxMKQotICAg ICAgIHsKLSAJKnAgPSAnLyc7Ci0gICAgICAgfQotZGlmZiAtLWdpdCBhL29wZW4tdm0tdG9vbHMt MTMuMC41LTI0OTE1Njk1L2xpYi9maWxlL2ZpbGVMb2NrUG9zaXguYyBiL29wZW4tdm0tdG9vbHMt MTMuMC41LTI0OTE1Njk1L2xpYi9maWxlL2ZpbGVMb2NrUG9zaXguYwotaW5kZXggYTczNzNiNC4u MGVlY2M0MiAxMDA2NDQKLS0tLSBhL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L2xpYi9m aWxlL2ZpbGVMb2NrUG9zaXguYwotKysrIGIvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUv bGliL2ZpbGUvZmlsZUxvY2tQb3NpeC5jCi1AQCAtMTcyLDcgKzE3Miw3IEBAIEZpbGVSZWFkU2xh c2hQcm9jKGNvbnN0IGNoYXIgKnByb2NQYXRoLCAgLy8gSU46Ci0gCi0gICAgYnVmZmVyW2xlbl0g PSAnXDAnOwotIAotLSAgIHAgPSBzdHJjaHIoYnVmZmVyLCAnXG4nKTsKLSsgICBwID0gKGNoYXIg Kikgc3RyY2hyKGJ1ZmZlciwgJ1xuJyk7Ci0gCi0gICAgaWYgKHAgIT0gTlVMTCkgewotICAgICAg ICpwID0gJ1wwJzsKLUBAIC0yNDgsNyArMjQ4LDcgQEAgRmlsZUxvY2tQcm9jZXNzRGVzY3JpcHRv cihwaWRfdCBwaWQpICAvLyBJTjoKLSAKLSAgICAgICAqKHAgLSAxKSA9ICdcMCc7Ci0gCi0tICAg ICAgcSA9IHN0cnJjaHIocCArIDEsICcpJyk7Ci0rICAgICAgcSA9IChjaGFyICopIHN0cnJjaHIo cCArIDEsICcpJyk7Ci0gICAgICAgaWYgKHEgPT0gTlVMTCkgewotICAgICAgICAgIGdvdG8gYmFp bDsKLSAgICAgICB9Ci1kaWZmIC0tZ2l0IGEvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUv bGliL2ZpbGUvZmlsZUxvY2tQcmltaXRpdmUuYyBiL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1 Njk1L2xpYi9maWxlL2ZpbGVMb2NrUHJpbWl0aXZlLmMKLWluZGV4IDE5M2ZjMzYuLjc1NzFjZWQg MTAwNjQ0Ci0tLS0gYS9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9saWIvZmlsZS9maWxl TG9ja1ByaW1pdGl2ZS5jCi0rKysgYi9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9saWIv ZmlsZS9maWxlTG9ja1ByaW1pdGl2ZS5jCi1AQCAtMjM4LDcgKzIzOCw3IEBAIEZpbGVMb2NrUGFy c2VBcmdzKGNoYXIgKmFyZ3ZbXSwgICAgICAgLy8gSU46Ci0gCi0gICAgd2hpbGUgKGFyZ0NvdW50 KSB7Ci0gICAgICAgdWludDMyIGk7Ci0tICAgICAgY2hhciAqcCA9IHN0cmNocihhcmd2W2FyZ1Bv c10sICc9Jyk7Ci0rICAgICAgY2hhciAqcCA9IChjaGFyICopIHN0cmNocihhcmd2W2FyZ1Bvc10s ICc9Jyk7Ci0gCi0gICAgICAgLyogVmFsaWRhdGUgdGhlICJuYW1lPXZhbHVlIiBmb3JtICovCi0g ICAgICAgaWYgKChwID09IE5VTEwpIHx8IChwID09IGFyZ3ZbYXJnUG9zXSkgfHwgKHBbMV0gPT0g J1wwJykpIHsKLWRpZmYgLS1naXQgYS9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9saWIv ZmlsZS9maWxlUG9zaXguYyBiL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L2xpYi9maWxl L2ZpbGVQb3NpeC5jCi1pbmRleCAzYjUwMGViLi41ZDBmNzcyIDEwMDY0NAotLS0tIGEvb3Blbi12 bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvbGliL2ZpbGUvZmlsZVBvc2l4LmMKLSsrKyBiL29wZW4t dm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L2xpYi9maWxlL2ZpbGVQb3NpeC5jCi1AQCAtMTUxMCw3 ICsxNTEwLDcgQEAgRmlsZV9HZXRWTUZTTW91bnRJbmZvKGNvbnN0IGNoYXIgKnBhdGhOYW1lLCAg ICAvLyBJTjoKLSAgICAgICAgKiBUaGlzIHdpbGwgY292ZXIgYm90aCBORlN2MyBhbmQgTkZTdjQu MS4KLSAgICAgICAgKi8KLSAgICAgICBpZiAoc3RybmNtcChmc0F0dHJzLT5mc1R5cGUsIEZTX05G U19PTl9FU1gsIEZTX05GU19QUkVGSVhfTEVOKSA9PSAwKSB7Ci0tICAgICAgICAgY2hhciAqc2Vw ID0gc3RyY2hyKGZzQXR0cnMtPmxvZ2ljYWxEZXZpY2UsICcgJyk7Ci0rICAgICAgICAgY2hhciAq c2VwID0gKGNoYXIgKikgc3RyY2hyKGZzQXR0cnMtPmxvZ2ljYWxEZXZpY2UsICcgJyk7Ci0gCi0g ICAgICAgICAgaWYgKHNlcCkgewotICAgICAgICAgICAgICpzZXArKyA9IDA7Ci1AQCAtMjMzOSw3 ICsyMzM5LDcgQEAgRmlsZVBvc2l4TmVhcmVzdEV4aXN0aW5nQW5jZXN0b3IoY2hhciBjb25zdCAq cGF0aCkgIC8vIElOOiBGaWxlIHBhdGgKLSAgICAgICAgICBicmVhazsKLSAgICAgICB9Ci0gCi0t ICAgICAgcHRyID0gc3RycmNocihyZXN1bHQsIERJUlNFUEMpOwotKyAgICAgIHB0ciA9IChjaGFy ICopIHN0cnJjaHIocmVzdWx0LCBESVJTRVBDKTsKLSAgICAgICBpZiAocHRyID09IE5VTEwpIHsK LSAgICAgICAgICBwdHIgPSByZXN1bHQ7Ci0gICAgICAgfQotZGlmZiAtLWdpdCBhL29wZW4tdm0t dG9vbHMtMTMuMC41LTI0OTE1Njk1L2xpYi9maWxlL2ZpbGVTdGFuZEFsb25lLmMgYi9vcGVuLXZt LXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9saWIvZmlsZS9maWxlU3RhbmRBbG9uZS5jCi1pbmRleCA2 ZDNjYmEyLi4xZmE0YWI2IDEwMDY0NAotLS0tIGEvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2 OTUvbGliL2ZpbGUvZmlsZVN0YW5kQWxvbmUuYwotKysrIGIvb3Blbi12bS10b29scy0xMy4wLjUt MjQ5MTU2OTUvbGliL2ZpbGUvZmlsZVN0YW5kQWxvbmUuYwotQEAgLTcxNSw5ICs3MTUsOSBAQCBG aWxlX1JlcGxhY2VFeHRlbnNpb24oY29uc3QgY2hhciAqcGF0aE5hbWUsICAgICAgLy8gSU46Ci0g Ci0gICAgcCA9IEZpbGVGaW5kTGFzdERpcnNlcChyZXN1bHQsIHBhdGhOYW1lTGVuKTsKLSAgICBp ZiAocCA9PSBOVUxMKSB7Ci0tICAgICAgIHAgPSBzdHJyY2hyKHJlc3VsdCwgJy4nKTsKLSsgICAg ICAgcCA9IChjaGFyICopIHN0cnJjaHIocmVzdWx0LCAnLicpOwotICAgIH0gZWxzZSB7Ci0tICAg ICAgIHAgPSBzdHJyY2hyKHAsICcuJyk7Ci0rICAgICAgIHAgPSAoY2hhciAqKSBzdHJyY2hyKHAs ICcuJyk7Ci0gICAgfQotIAotICAgIGlmIChwID09IE5VTEwpIHsKLUBAIC03OTAsOSArNzkwLDkg QEAgRmlsZV9SZW1vdmVFeHRlbnNpb24oY29uc3QgY2hhciAqcGF0aE5hbWUpICAvLyBJTjoKLSAK LSAgICBwID0gRmlsZUZpbmRMYXN0RGlyc2VwKHJlc3VsdCwgc3RybGVuKHBhdGhOYW1lKSk7Ci0g ICAgaWYgKHAgPT0gTlVMTCkgewotLSAgICAgICBwID0gc3RycmNocihyZXN1bHQsICcuJyk7Ci0r ICAgICAgIHAgPSAoY2hhciAqKSBzdHJyY2hyKHJlc3VsdCwgJy4nKTsKLSAgICB9IGVsc2Ugewot LSAgICAgICBwID0gc3RycmNocihwLCAnLicpOwotKyAgICAgICBwID0gKGNoYXIgKikgc3RycmNo cihwLCAnLicpOwotICAgIH0KLSAKLSAgICBBU1NFUlQocCAhPSBOVUxMKTsKLWRpZmYgLS1naXQg YS9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9saWIvZ2xpYlV0aWxzL2ZpbGVMb2dnZXIu YyBiL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L2xpYi9nbGliVXRpbHMvZmlsZUxvZ2dl ci5jCi1pbmRleCBmMWIwZGM3Li41OTYwNWJiIDEwMDY0NAotLS0tIGEvb3Blbi12bS10b29scy0x My4wLjUtMjQ5MTU2OTUvbGliL2dsaWJVdGlscy9maWxlTG9nZ2VyLmMKLSsrKyBiL29wZW4tdm0t dG9vbHMtMTMuMC41LTI0OTE1Njk1L2xpYi9nbGliVXRpbHMvZmlsZUxvZ2dlci5jCi1AQCAtMTY3 LDcgKzE2Nyw3IEBAIEZpbGVMb2dnZXJHZXRQYXRoKEZpbGVMb2dnZXIgKmRhdGEsCi0gICAgZm9y IChpID0gMDsgaSA8IEdfTl9FTEVNRU5UUyh2YXJzKTsgaSArPSAyKSB7Ci0gICAgICAgY2hhciAq bGFzdCA9IGxvZ3BhdGg7Ci0gICAgICAgY2hhciAqc3RhcnQ7Ci0tICAgICAgd2hpbGUgKChzdGFy dCA9IHN0cnN0cihsYXN0LCB2YXJzW2ldKSkgIT0gTlVMTCkgewotKyAgICAgIHdoaWxlICgoc3Rh cnQgPSAoY2hhciAqKSBzdHJzdHIobGFzdCwgdmFyc1tpXSkpICE9IE5VTEwpIHsKLSAgICAgICAg ICBnY2hhciAqdG1wOwotICAgICAgICAgIGNoYXIgKmVuZCA9IHN0YXJ0ICsgc3RybGVuKHZhcnNb aV0pOwotICAgICAgICAgIHNpemVfdCBvZmZzZXQgPSAoc3RhcnQgLSBsYXN0KSArIHN0cmxlbih2 YXJzW2krMV0pOwotQEAgLTE5MiwxMSArMTkyLDExIEBAIEZpbGVMb2dnZXJHZXRQYXRoKEZpbGVM b2dnZXIgKmRhdGEsCi0gICAgICogYmFja2luZyB1cCBvbGQgbG9nIGZpbGVzLgotICAgICAqLwot ICAgIGlmIChpbmRleCAhPSAwICYmICFoYXNJbmRleCkgewotLSAgICAgIGNoYXIgKnNlcCA9IHN0 cnJjaHIobG9ncGF0aCwgJy4nKTsKLS0gICAgICBjaGFyICpwYXRoc2VwID0gc3RycmNocihsb2dw YXRoLCAnLycpOwotKyAgICAgIGNoYXIgKnNlcCA9IChjaGFyICopIHN0cnJjaHIobG9ncGF0aCwg Jy4nKTsKLSsgICAgICBjaGFyICpwYXRoc2VwID0gKGNoYXIgKikgc3RycmNocihsb2dwYXRoLCAn LycpOwotIAotICAgICAgIGlmIChwYXRoc2VwID09IE5VTEwpIHsKLS0gICAgICAgICBwYXRoc2Vw ID0gc3RycmNocihsb2dwYXRoLCAnXFwnKTsKLSsgICAgICAgICBwYXRoc2VwID0gKGNoYXIgKikg c3RycmNocihsb2dwYXRoLCAnXFwnKTsKLSAgICAgICB9Ci0gCi0gICAgICAgaWYgKHNlcCAhPSBO VUxMICYmIHNlcCA+IHBhdGhzZXApIHsKLWRpZmYgLS1naXQgYS9vcGVuLXZtLXRvb2xzLTEzLjAu NS0yNDkxNTY5NS9saWIvaGdmcy9oZ2ZzRXNjYXBlLmMgYi9vcGVuLXZtLXRvb2xzLTEzLjAuNS0y NDkxNTY5NS9saWIvaGdmcy9oZ2ZzRXNjYXBlLmMKLWluZGV4IGM0ZDM5YjEuLmNlNDc1ZDkgMTAw NjQ0Ci0tLS0gYS9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9saWIvaGdmcy9oZ2ZzRXNj YXBlLmMKLSsrKyBiL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L2xpYi9oZ2ZzL2hnZnNF c2NhcGUuYwotQEAgLTE5OCw3ICsxOTgsNyBAQCBIZ2ZzQWRkRXNjYXBlQ2hhcmFjdGVyKGNoYXIg Y29uc3QgKiBidWZJbiwgICAgICAvLyBJTjogaW5wdXQgbmFtZQotICAgICAgIGlmIChvdXRwdXRT cGFjZSA8IDIpIHsKLSAgICAgICAgICByZXR1cm4gRkFMU0U7Ci0gICAgICAgfQotLSAgICAgIGls bGVnYWwgPSBzdHJjaHIoSEdGU19JTExFR0FMX0NIQVJTLCBidWZJbltlc2NhcGVDb250ZXh0LT5w cm9jZXNzZWRPZmZzZXRdKTsKLSsgICAgICBpbGxlZ2FsID0gKGNoYXIgKikgc3RyY2hyKEhHRlNf SUxMRUdBTF9DSEFSUywgYnVmSW5bZXNjYXBlQ29udGV4dC0+cHJvY2Vzc2VkT2Zmc2V0XSk7Ci0g ICAgICAgZXNjYXBlQ29udGV4dC0+cHJvY2Vzc2VkT2Zmc2V0Kys7ICAvLyBTa2lwIGlsbGVnYWwg aW5wdXQgY2hhcmFjdGVyCi0gICAgICAgQVNTRVJUKGlsbGVnYWwgIT0gTlVMTCk7Ci0gICAgICAg ZXNjYXBlQ29udGV4dC0+b3V0cHV0QnVmZmVyW2VzY2FwZUNvbnRleHQtPm91dHB1dE9mZnNldF0g PQotQEAgLTU4MywxMiArNTgzLDEyIEBAIEhnZnNJc0VzY2FwZVNlcXVlbmNlKGNoYXIgY29uc3Qg KmJ1ZkluLCAgIC8vIElOOiBpbnB1dCBuYW1lCi0gICAgICAgICAgaWYgKGJ1ZkluW29mZnNldCAt IDJdID09IEhHRlNfRVNDQVBFX1NVQlNUSVRVRV9DSEFSKSB7Ci0gICAgICAgICAgICAgcmV0dXJu IFRSVUU7Ci0gICAgICAgICAgfQotLSAgICAgICAgIHN1YnN0aXR1dGUgPSBzdHJjaHIoSEdGU19T VUJTVElUVVRFX0NIQVJTLCBidWZJbltvZmZzZXQgLSAyXSk7Ci0rICAgICAgICAgc3Vic3RpdHV0 ZSA9IChjaGFyICopIHN0cmNocihIR0ZTX1NVQlNUSVRVVEVfQ0hBUlMsIGJ1ZkluW29mZnNldCAt IDJdKTsKLSAgICAgICAgICBpZiAoc3Vic3RpdHV0ZSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAg cmV0dXJuIFRSVUU7Ci0gICAgICAgICAgfQotICAgICAgIH0KLS0gICAgICBzdWJzdGl0dXRlID0g c3RyY2hyKEhHRlNfU1VCU1RJVFVURV9DSEFSUywgYnVmSW5bb2Zmc2V0IC0gMV0pOwotKyAgICAg IHN1YnN0aXR1dGUgPSAoY2hhciAqKSBzdHJjaHIoSEdGU19TVUJTVElUVVRFX0NIQVJTLCBidWZJ bltvZmZzZXQgLSAxXSk7Ci0gICAgICAgaWYgKHN1YnN0aXR1dGUgIT0gTlVMTCkgewotICAgICAg ICAgIHJldHVybiBUUlVFOwotICAgICAgIH0KLUBAIC04ODIsMTIgKzg4MiwxMiBAQCBIZ2ZzRXNj YXBlVW5kb0NvbXBvbmVudChjaGFyICAgKmJ1ZkluLCAgICAgICAgICAgICAvLyBJTjogQ2hhcmFj dGVycyB0byBiZSB1bmVzYwotIAotICAgIGN1ck91dEJ1ZmZlciA9IGJ1ZkluOwotICAgIHNpemVJ biA9IHN0cmxlbihjdXJPdXRCdWZmZXIpOwotLSAgIGVzY2FwZVBvaW50ZXIgPSBzdHJjaHIoY3Vy T3V0QnVmZmVyLCBIR0ZTX0VTQ0FQRV9DSEFSKTsKLSsgICBlc2NhcGVQb2ludGVyID0gKGNoYXIg Kikgc3RyY2hyKGN1ck91dEJ1ZmZlciwgSEdGU19FU0NBUEVfQ0hBUik7Ci0gICAgd2hpbGUgKGVz Y2FwZVBvaW50ZXIgIT0gTlVMTCkgewotICAgICAgIHNpemVfdCBvZmZzZXQgPSBlc2NhcGVQb2lu dGVyIC0gYnVmSW47Ci0gCi0gICAgICAgaWYgKEhnZnNJc0VzY2FwZVNlcXVlbmNlKGJ1ZkluLCBv ZmZzZXQsIHNpemVJbikpIHsKLS0gICAgICAgICBjaGFyKiBzdWJzdGl0dXRlID0gc3RyY2hyKEhH RlNfU1VCU1RJVFVURV9DSEFSUywgYnVmSW5bb2Zmc2V0IC0gMV0pOwotKyAgICAgICAgIGNoYXIq IHN1YnN0aXR1dGUgPSAoY2hhciAqKSBzdHJjaHIoSEdGU19TVUJTVElUVVRFX0NIQVJTLCBidWZJ bltvZmZzZXQgLSAxXSk7Ci0gICAgICAgICAgaWYgKHN1YnN0aXR1dGUgIT0gTlVMTCkgewotICAg ICAgICAgICAgIGJ1ZkluW29mZnNldCAtIDFdID0gSEdGU19JTExFR0FMX0NIQVJTW3N1YnN0aXR1 dGUgLSBIR0ZTX1NVQlNUSVRVVEVfQ0hBUlNdOwotICAgICAgICAgIH0gZWxzZSBpZiAoYnVmSW5b b2Zmc2V0IC0gMV0gPT0gSEdGU19FU0NBUEVfU1VCU1RJVFVFX0NIQVIpIHsKLUBAIC04OTcsMTIg Kzg5NywxMiBAQCBIZ2ZzRXNjYXBlVW5kb0NvbXBvbmVudChjaGFyICAgKmJ1ZkluLCAgICAgICAg ICAgICAvLyBJTjogQ2hhcmFjdGVycyB0byBiZSB1bmVzYwotICAgICAgICAgICgqdW5wcm9jZXNz ZWRMZW5ndGgpLS07Ci0gICAgICAgICAgc2l6ZUluLS07Ci0gICAgICAgICAgaWYgKHNpemVJbiA+ IDApIHsKLS0gICAgICAgICAgICBlc2NhcGVQb2ludGVyID0gc3RyY2hyKGVzY2FwZVBvaW50ZXIs IEhHRlNfRVNDQVBFX0NIQVIpOwotKyAgICAgICAgICAgIGVzY2FwZVBvaW50ZXIgPSAoY2hhciAq KSBzdHJjaHIoZXNjYXBlUG9pbnRlciwgSEdGU19FU0NBUEVfQ0hBUik7Ci0gICAgICAgICAgfSBl bHNlIHsKLSAgICAgICAgICAgICBlc2NhcGVQb2ludGVyID0gTlVMTDsKLSAgICAgICAgICB9Ci0g ICAgICAgfSBlbHNlIHsKLS0gICAgICAgICBlc2NhcGVQb2ludGVyID0gc3RyY2hyKGVzY2FwZVBv aW50ZXIgKyAxLCBIR0ZTX0VTQ0FQRV9DSEFSKTsKLSsgICAgICAgICBlc2NhcGVQb2ludGVyID0g KGNoYXIgKikgc3RyY2hyKGVzY2FwZVBvaW50ZXIgKyAxLCBIR0ZTX0VTQ0FQRV9DSEFSKTsKLSAg ICAgICB9Ci0gICAgfQotICAgIEFTU0VSVCgoKnVucHJvY2Vzc2VkTGVuZ3RoKSA+IHNpemVJbik7 Ci1kaWZmIC0tZ2l0IGEvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvbGliL2hnZnNTZXJ2 ZXIvaGdmc1NlcnZlckxpbnV4LmMgYi9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9saWIv aGdmc1NlcnZlci9oZ2ZzU2VydmVyTGludXguYwotaW5kZXggNGEwYmM5My4uYWM2MmMxYiAxMDA2 NDQKLS0tLSBhL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L2xpYi9oZ2ZzU2VydmVyL2hn ZnNTZXJ2ZXJMaW51eC5jCi0rKysgYi9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9saWIv aGdmc1NlcnZlci9oZ2ZzU2VydmVyTGludXguYwotQEAgLTEzNjksNyArMTM2OSw3IEBAIEhnZnNH ZXRIaWRkZW5BdHRyKGNoYXIgY29uc3QgKmZpbGVOYW1lLCAgICAgICAgIC8vIElOOiAgSW5wdXQg ZmlsZW5hbWUKLSAgICBBU1NFUlQoZmlsZU5hbWUpOwotICAgIEFTU0VSVChhdHRyKTsKLSAKLS0g ICBiYXNlTmFtZSA9IHN0cnJjaHIoZmlsZU5hbWUsIERJUlNFUEMpOwotKyAgIGJhc2VOYW1lID0g KGNoYXIgKikgc3RycmNocihmaWxlTmFtZSwgRElSU0VQQyk7Ci0gCi0gICAgaWYgKChiYXNlTmFt ZSAhPSBOVUxMKSAmJgotICAgICAgICAoYmFzZU5hbWVbMV0gPT0gJy4nKSAmJgotQEAgLTE2NDcs NyArMTY0Nyw3IEBAIEhnZnNDYXNlSW5zZW5zaXRpdmVMb29rdXAoY29uc3QgY2hhciAqc2hhcmVQ YXRoLCAgICAgICAgICAgLy8gSU4KLSAKLSAgICB3aGlsZSAoVFJVRSkgewotICAgICAgIC8qIEdl dCB0aGUgbmV4dCBjb21wb25lbnQuICovCi0tICAgICAgbmV4dENvbXBvbmVudCA9IHN0cmNocihj dXJyZW50Q29tcG9uZW50LCBESVJTRVBDKTsKLSsgICAgICBuZXh0Q29tcG9uZW50ID0gKGNoYXIg Kikgc3RyY2hyKGN1cnJlbnRDb21wb25lbnQsIERJUlNFUEMpOwotICAgICAgIGlmIChuZXh0Q29t cG9uZW50ICE9IE5VTEwpIHsKLSAgICAgICAgICAqbmV4dENvbXBvbmVudCA9ICdcMCc7Ci0gICAg ICAgfQotZGlmZiAtLWdpdCBhL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L2xpYi9taXNj L2NvZGVzZXQuYyBiL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L2xpYi9taXNjL2NvZGVz ZXQuYwotaW5kZXggMjUyMjFmNi4uYWZjNjE1YiAxMDA2NDQKLS0tLSBhL29wZW4tdm0tdG9vbHMt MTMuMC41LTI0OTE1Njk1L2xpYi9taXNjL2NvZGVzZXQuYwotKysrIGIvb3Blbi12bS10b29scy0x My4wLjUtMjQ5MTU2OTUvbGliL21pc2MvY29kZXNldC5jCi1AQCAtNTg5LDcgKzU4OSw3IEBAIENv ZGVTZXRfSW5pdChjb25zdCBjaGFyICppY3VEYXRhRGlyKSAvLyBJTjogSUNVIGRhdGEgZmlsZSBs b2NhdGlvbiBpbiBDdXJyZW50IGNvCi0gICAgICAgICovCi0gICAgICAgbW9kUGF0aCA9IENvZGVT ZXRHZXRNb2R1bGVQYXRoKEhHTVBfUFJJVklMRUdFKTsKLSAgICAgICBpZiAobW9kUGF0aCkgewot LSAgICAgICAgIGxhc3RTbGFzaCA9IHN0cnJjaHIobW9kUGF0aCwgRElSU0VQQyk7Ci0rICAgICAg ICAgbGFzdFNsYXNoID0gKGNoYXIgKikgc3RycmNocihtb2RQYXRoLCBESVJTRVBDKTsKLSAgICAg ICAgICBpZiAobGFzdFNsYXNoKSB7Ci0gICAgICAgICAgICAgKmxhc3RTbGFzaCA9ICdcMCc7Ci0g Ci1kaWZmIC0tZ2l0IGEvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvbGliL21pc2MvY29k ZXNldE9sZC5jIGIvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvbGliL21pc2MvY29kZXNl dE9sZC5jCi1pbmRleCBmYjRmMTk0Li5lZDg2ZDAzIDEwMDY0NAotLS0tIGEvb3Blbi12bS10b29s cy0xMy4wLjUtMjQ5MTU2OTUvbGliL21pc2MvY29kZXNldE9sZC5jCi0rKysgYi9vcGVuLXZtLXRv b2xzLTEzLjAuNS0yNDkxNTY5NS9saWIvbWlzYy9jb2Rlc2V0T2xkLmMKLUBAIC03NTUsNyArNzU1 LDcgQEAgQ29kZVNldE9sZF9HZXRDdXJyZW50Q29kZVNldCh2b2lkKQotICAgICAgICAgIGNoYXIg KnA7Ci0gCi0gICAgICAgICAgZ0ZpbGVuYW1lRW5jb2RpbmcgPSBVdGlsX1NhZmVTdHJkdXAoZ0Zp bGVuYW1lRW5jb2RpbmcpOwotLSAgICAgICAgIHAgPSBzdHJjaHIoZ0ZpbGVuYW1lRW5jb2Rpbmcs ICcsJyk7Ci0rICAgICAgICAgcCA9IChjaGFyICopIHN0cmNocihnRmlsZW5hbWVFbmNvZGluZywg JywnKTsKLSAKLSAgICAgICAgICBpZiAocCAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgKnAgPSAn XDAnOwotZGlmZiAtLWdpdCBhL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L2xpYi9taXNj L2hvc3RpbmZvUG9zaXguYyBiL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L2xpYi9taXNj L2hvc3RpbmZvUG9zaXguYwotaW5kZXggZGM5OWQ4My4uMjJkYmI0OCAxMDA2NDQKLS0tLSBhL29w ZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L2xpYi9taXNjL2hvc3RpbmZvUG9zaXguYwotKysr IGIvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvbGliL21pc2MvaG9zdGluZm9Qb3NpeC5j Ci1AQCAtMTYyMCw3ICsxNjIwLDcgQEAgSG9zdGluZm9SZWFkRGlzdHJvRmlsZShCb29sIG9zUmVs ZWFzZVJ1bGVzLCAgIC8vIElOOiBvc1JlbGVhc2UgcnVsZXMKLSAKLSAgICAgICAgICAgICAgaWYg KGxpbmVCdWZbbGVuXSA9PSAnIicpIHsKLSAgICAgICAgICAgICAgICAgZGF0YSA9ICZsaW5lQnVm W2xlbiArIDFdOwotLSAgICAgICAgICAgICAgICBwID0gc3RycmNocihkYXRhLCAnIicpOwotKyAg ICAgICAgICAgICAgICBwID0gKGNoYXIgKikgc3RycmNocihkYXRhLCAnIicpOwotIAotICAgICAg ICAgICAgICAgICBpZiAocCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIFdhcm5pbmco IiVzOiBJbnZhbGlkIG9zLXJlbGVhc2UgZmlsZS4iLCBfX0ZVTkNUSU9OX18pOwotQEAgLTE2Mjks NyArMTYyOSw3IEBAIEhvc3RpbmZvUmVhZERpc3Ryb0ZpbGUoQm9vbCBvc1JlbGVhc2VSdWxlcywg ICAvLyBJTjogb3NSZWxlYXNlIHJ1bGVzCi0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg ICAgICAgICAgIGRhdGEgPSAmbGluZUJ1ZltsZW5dOwotIAotLSAgICAgICAgICAgICAgICBwID0g c3RyY2hyKGRhdGEsICdcbicpOwotKyAgICAgICAgICAgICAgICBwID0gKGNoYXIgKikgc3RyY2hy KGRhdGEsICdcbicpOwotIAotICAgICAgICAgICAgICAgICBpZiAocCA9PSBOVUxMKSB7Ci0gICAg ICAgICAgICAgICAgICAgIFdhcm5pbmcoIiVzOiBvcy1yZWxlYXNlIGZpbGUgbGluZSB0b28gbG9u Zy4iLAotQEAgLTE4OTQsNyArMTg5NCw3IEBAIEhvc3RpbmZvTHNiUmVtb3ZlUXVvdGVzKGNoYXIg KmxzYk91dHB1dCkgIC8vIElOL09VVDoKLSAgICBBU1NFUlQobHNiU3RhcnQgIT0gTlVMTCk7Ci0g Ci0gICAgaWYgKGxzYlN0YXJ0WzBdID09ICciJykgewotLSAgICAgIGNoYXIgKnF1b3RlRW5kID0g c3RyY2hyKCsrbHNiU3RhcnQsICciJyk7Ci0rICAgICAgY2hhciAqcXVvdGVFbmQgPSAoY2hhciAq KSBzdHJjaHIoKytsc2JTdGFydCwgJyInKTsKLSAKLSAgICAgICBpZiAocXVvdGVFbmQgIT0gTlVM TCkgewotICAgICAgICAgICpxdW90ZUVuZCA9ICdcMCc7Ci1AQCAtMzQ3Miw4ICszNDcyLDggQEAg SG9zdGluZm9HZXRDcHVJbmZvKGludCBuQ3B1LCAgICAgICAgIC8vIElOOgotICAgICAgICAgICBT dGRJT19SZWFkTmV4dExpbmUoZiwgJmxpbmUsIDAsIE5VTEwpID09IFN0ZElPX1N1Y2Nlc3MpIHsK LSAgICAgICBjaGFyICpzOwotIAotLSAgICAgIGlmICgocyA9IHN0cnN0cihsaW5lLCBuYW1lKSkg JiYKLS0gICAgICAgICAgKHMgPSBzdHJjaHIocywgJzonKSkpIHsKLSsgICAgICBpZiAoKHMgPSAo Y2hhciAqKSBzdHJzdHIobGluZSwgbmFtZSkpICYmCi0rICAgICAgICAgIChzID0gKGNoYXIgKikg c3RyY2hyKHMsICc6JykpKSB7Ci0gICAgICAgICAgY2hhciAqZTsKLSAKLSAgICAgICAgICBzKys7 Ci1AQCAtNDAzOSw3ICs0MDM5LDcgQEAgSG9zdGluZm9GaW5kRW50cnkoY2hhciAqYnVmZmVyLCAg ICAgICAgIC8vIElOOiBCdWZmZXIKLSAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzdHJp bmcsICAgLy8gSU46IFN0cmluZyBzb3VnaHQKLSAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgKnZhbHVlKSAgLy8gT1VUOiBWYWx1ZQotIHsKLS0gICBjaGFyICpwID0gc3Ryc3RyKGJ1ZmZl ciwgc3RyaW5nKTsKLSsgICBjaGFyICpwID0gKGNoYXIgKikgc3Ryc3RyKGJ1ZmZlciwgc3RyaW5n KTsKLSAgICB1bnNpZ25lZCBpbnQgdmFsOwotIAotICAgIGlmIChwID09IE5VTEwpIHsKLUBAIC00 NTcwLDcgKzQ1NzAsNyBAQCBIb3N0aW5mb19HZXRMaWJyYXJ5UGF0aCh2b2lkICphZGRyKSAgLy8g SU4KLSAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICB9Ci0gCi0tICAgICAgICAgc2Vw ID0gc3RyY2hyKGVudHJ5LT5kX25hbWUsICctJyk7Ci0rICAgICAgICAgc2VwID0gKGNoYXIgKikg c3RyY2hyKGVudHJ5LT5kX25hbWUsICctJyk7Ci0gICAgICAgICAgaWYgKHNlcCA9PSBOVUxMKSB7 Ci0gICAgICAgICAgICAgY29udGludWU7IC8vIFRoZSBmaWxlIG5hbWUgZG9lcyBOT1QgaW4gYDEy MzRhYmNkLWFiY2QxMjM0YCBmb3JtYXQKLSAgICAgICAgICB9Ci1kaWZmIC0tZ2l0IGEvb3Blbi12 bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvbGliL21pc2MvbWFjaGluZUlELmMgYi9vcGVuLXZtLXRv b2xzLTEzLjAuNS0yNDkxNTY5NS9saWIvbWlzYy9tYWNoaW5lSUQuYwotaW5kZXggN2MyOWExYy4u MWUwNGE5YyAxMDA2NDQKLS0tLSBhL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L2xpYi9t aXNjL21hY2hpbmVJRC5jCi0rKysgYi9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9saWIv bWlzYy9tYWNoaW5lSUQuYwotQEAgLTg4LDcgKzg4LDcgQEAgRmluZFdpbmRvd3NBZGFwdGVyKElQ X0FEQVBURVJfSU5GTyAqaGVhZCwgIC8vIElOOgotICAgICAgICAgICAgICAoKmFkYXB0ZXJJbmZv LT5EZXNjcmlwdGlvbiA9PSAnXDAnKSkgewotICAgICAgICAgICAgIHRha2VJdCA9IFRSVUU7Ci0g ICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICBjaGFyICpwID0gc3Ryc3RyKGFkYXB0ZXJJ bmZvLT5EZXNjcmlwdGlvbiwgcGF0dGVybik7Ci0rICAgICAgICAgICAgY2hhciAqcCA9IChjaGFy ICopIHN0cnN0cihhZGFwdGVySW5mby0+RGVzY3JpcHRpb24sIHBhdHRlcm4pOwotIAotICAgICAg ICAgICAgIGlmICgoKHAgIT0gTlVMTCkgJiYgZmluZFBhdHRlcm4pIHx8Ci0gICAgICAgICAgICAg ICAgICgocCA9PSBOVUxMKSAmJiAhZmluZFBhdHRlcm4pKSB7Ci1kaWZmIC0tZ2l0IGEvb3Blbi12 bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvbGliL21pc2Mvc3RydXRpbC5jIGIvb3Blbi12bS10b29s cy0xMy4wLjUtMjQ5MTU2OTUvbGliL21pc2Mvc3RydXRpbC5jCi1pbmRleCA0ZmM2NTAyLi44ZDY0 ZDI3IDEwMDY0NAotLS0tIGEvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvbGliL21pc2Mv c3RydXRpbC5jCi0rKysgYi9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9saWIvbWlzYy9z dHJ1dGlsLmMKLUBAIC0xNDY3LDcgKzE0NjcsNyBAQCBTdHJVdGlsX1JlcGxhY2VBbGwoY29uc3Qg Y2hhciAqb3JpZywgLy8gSU4KLSAgICAgbGVuV2l0aCA9IHN0cmxlbih3aXRoKTsKLSAKLSAgICAg Y3VycmVudCA9IG9yaWc7Ci0tICAgIHdoaWxlICgodG1wID0gc3Ryc3RyKGN1cnJlbnQsIHdoYXQp KSAhPSBOVUxMKSB7Ci0rICAgIHdoaWxlICgodG1wID0gKGNoYXIgKikgc3Ryc3RyKGN1cnJlbnQs IHdoYXQpKSAhPSBOVUxMKSB7Ci0gICAgICAgIGN1cnJlbnQgPSB0bXAgKyBsZW5XaGF0OwotICAg ICAgICArK29jY3VycmVuY2VzOwotICAgICB9Ci1AQCAtMTYyMCw3ICsxNjIwLDcgQEAgU3RyVXRp bF9HZXROZXh0SXRlbShjaGFyICoqbGlzdCwgLy8gSU4vT1VUOgotICAgICAgIHJldHVybiBOVUxM OwotICAgIH0KLSAKLS0gICBmb3VuZERlbGltID0gc3RyY2hyKCpsaXN0LCBkZWxpbSk7Ci0rICAg Zm91bmREZWxpbSA9IChjaGFyICopIHN0cmNocigqbGlzdCwgZGVsaW0pOwotICAgIGlmIChmb3Vu ZERlbGltICE9IE5VTEwpIHsKLSAgICAgICBmb3VuZERlbGltWzBdID0gJ1wwJzsKLSAgICAgICAq bGlzdCA9IGZvdW5kRGVsaW0gKyAxOwotQEAgLTE2NjAsNyArMTY2MCw3IEBAIFN0clV0aWxfR2V0 TGFzdEl0ZW0oY2hhciAqKmxpc3QsIC8vIElOL09VVDoKLSAgICAgICByZXR1cm4gTlVMTDsKLSAg ICB9Ci0gCi0tICAgZm91bmREZWxpbSA9IHN0cnJjaHIoKmxpc3QsIGRlbGltKTsKLSsgICBmb3Vu ZERlbGltID0gKGNoYXIgKikgc3RycmNocigqbGlzdCwgZGVsaW0pOwotICAgIGlmIChmb3VuZERl bGltICE9IE5VTEwpIHsKLSAgICAgICBmb3VuZERlbGltWzBdID0gJ1wwJzsKLSAgICAgICB0b2tl biA9IGZvdW5kRGVsaW0gKyAxOwotQEAgLTE3MDUsNyArMTcwNSw3IEBAIFN0clV0aWxIYXNMaXN0 SXRlbShjaGFyIGNvbnN0ICpsaXN0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJ TjoKLSAgICBkbyB7Ci0gICAgICAgaW50IHRva2VuTGVuOwotIAotLSAgICAgIGZvdW5kRGVsaW0g PSBzdHJjaHIobGlzdCwgZGVsaW0pOwotKyAgICAgIGZvdW5kRGVsaW0gPSAoY2hhciAqKSBzdHJj aHIobGlzdCwgZGVsaW0pOwotICAgICAgIGlmIChmb3VuZERlbGltID09IE5VTEwpIHsgLy8gZWl0 aGVyIHNpbmdsZSBvciBsYXN0IGVsZW1lbnQKLSAgICAgICAgICB0b2tlbkxlbiA9IHN0cmxlbihs aXN0KTsKLSAgICAgICB9IGVsc2UgeyAvLyAhIGxhc3QgZWxlbWVudAotZGlmZiAtLWdpdCBhL29w ZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L2xpYi9uaWNJbmZvL25pY0luZm9Qb3NpeC5jIGIv b3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvbGliL25pY0luZm8vbmljSW5mb1Bvc2l4LmMK LWluZGV4IDAxMzVlNmEuLmFhYWY3NWEgMTAwNjQ0Ci0tLS0gYS9vcGVuLXZtLXRvb2xzLTEzLjAu NS0yNDkxNTY5NS9saWIvbmljSW5mby9uaWNJbmZvUG9zaXguYwotKysrIGIvb3Blbi12bS10b29s cy0xMy4wLjUtMjQ5MTU2OTUvbGliL25pY0luZm8vbmljSW5mb1Bvc2l4LmMKLUBAIC0yNjYsNyAr MjY2LDcgQEAgSXBFbnRyeU1hdGNoZXNEZXZpY2UoY29uc3QgY2hhciAqZGV2TmFtZSwKLSAgICBj aGFyICpwOwotICAgIHNpemVfdCBuOwotIAotLSAgIGlmICgocCA9IHN0cmNocihsYWJlbCwgJzon KSkgIT0gTlVMTCkgewotKyAgIGlmICgocCA9IChjaGFyICopIHN0cmNocihsYWJlbCwgJzonKSkg IT0gTlVMTCkgewotICAgICAgIG4gPSBwIC0gbGFiZWw7Ci0gICAgfSBlbHNlIHsKLSAgICAgICBu ID0gc3RybGVuKGxhYmVsKTsKLWRpZmYgLS1naXQgYS9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkx NTY5NS9saWIvcHJvY01nci9wcm9jTWdyUG9zaXguYyBiL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0 OTE1Njk1L2xpYi9wcm9jTWdyL3Byb2NNZ3JQb3NpeC5jCi1pbmRleCA5NDk2ZTIxLi5mMTc0YzY0 IDEwMDY0NAotLS0tIGEvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvbGliL3Byb2NNZ3Iv cHJvY01nclBvc2l4LmMKLSsrKyBiL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L2xpYi9w cm9jTWdyL3Byb2NNZ3JQb3NpeC5jCi1AQCAtNjI2LDcgKzYyNiw3IEBAIFByb2NNZ3JfTGlzdFBy b2Nlc3Nlcyh2b2lkKQotICAgICAgICAgICAgICAgICAgICAqICAgZ2RtLXNlc3Npb24td29ya2Vy IFtwYW0vZ2RtLWF1dG9sb2dpbl0KLSAgICAgICAgICAgICAgICAgICAgKgotICAgICAgICAgICAg ICAgICAgICAqLwotLSAgICAgICAgICAgICAgICAgIGNoYXIgKmNtZE5hbWVCZWdpbiA9IHN0cnJj aHIoY21kTGluZVRlbXAsICcvJyk7Ci0rICAgICAgICAgICAgICAgICAgY2hhciAqY21kTmFtZUJl Z2luID0gKGNoYXIgKikgc3RycmNocihjbWRMaW5lVGVtcCwgJy8nKTsKLSAgICAgICAgICAgICAg ICAgICBpZiAoTlVMTCAhPSBjbWROYW1lQmVnaW4gJiYgY21kTGluZVRlbXBbMF0gPT0gJy8nKSB7 Ci0gICAgICAgICAgICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAgICAgICAgICAgKiBTa2lw IG92ZXIgdGhlIGxhc3Qgc2VwYXJhdG9yLgotQEAgLTc2NCw3ICs3NjQsNyBAQCBQcm9jTWdyX0xp c3RQcm9jZXNzZXModm9pZCkKLSAgICAgICAvKgotICAgICAgICAqIFNraXAgb3ZlciBpbml0aWFs IHByb2Nlc3MgaWQgYW5kIHByb2Nlc3MgbmFtZS4gICIxMjMgKGJhc2gpIFsuLi5dIi4KLSAgICAg ICAgKi8KLS0gICAgICBzdHJpbmdCZWdpbiA9IHN0cmNocihjbWRTdGF0VGVtcCwgJyknKSArIDI7 Ci0rICAgICAgc3RyaW5nQmVnaW4gPSAoY2hhciAqKSBzdHJjaHIoY21kU3RhdFRlbXAsICcpJykg KyAyOwotIAotICAgICAgIG51bWJlckZvdW5kID0gc3NjYW5mKHN0cmluZ0JlZ2luLCAiJWMgJWQg JWQgJWQgJWQgJWQgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlbHUgJWx1ICVsdSAl bHUgJWx1ICVMdSAlTHUgJUx1ICVMdSAlbGQgJWxkICIKLUBAIC05OTAsNyArOTkwLDcgQEAgUHJv Y01ncl9MaXN0UHJvY2Vzc2VzKHZvaWQpCi0gICAgICAgICAgICAgICAgICogRmluZCB0aGUgbGFz dCBwYXRoIHNlcGFyYXRvciwgdG8gZ2V0IHRoZSBjbWQgbmFtZS4KLSAgICAgICAgICAgICAgICAg KiBJZiBubyBzZXBhcmF0b3IgaXMgZm91bmQsIHRoZW4gdXNlIHRoZSB3aG9sZSBuYW1lLgotICAg ICAgICAgICAgICAgICAqLwotLSAgICAgICAgICAgICAgIGNtZE5hbWVCZWdpbiA9IHN0cnJjaHIo KmNtZExpbmVUZW1wLCAnLycpOwotKyAgICAgICAgICAgICAgIGNtZE5hbWVCZWdpbiA9IChjaGFy ICopIHN0cnJjaHIoKmNtZExpbmVUZW1wLCAnLycpOwotICAgICAgICAgICAgICAgIGlmIChOVUxM ID09IGNtZE5hbWVCZWdpbikgewotICAgICAgICAgICAgICAgICAgIGNtZE5hbWVCZWdpbiA9ICpj bWRMaW5lVGVtcDsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotQEAgLTEyMTksNyArMTIxOSw3 IEBAIFByb2NNZ3JHZXRDb21tYW5kTGluZUFyZ3MobG9uZyBwaWQsICAgICAgICAgICAgICAgLy8g SU46ICBwcm9jZXNzIGlkCi0gICAgICAgICAgICAgICogRmluZCB0aGUgbGFzdCBwYXRoIHNlcGFy YXRvciwgdG8gZ2V0IHRoZSBjbWQgbmFtZS4KLSAgICAgICAgICAgICAgKiBJZiBubyBzZXBhcmF0 b3IgaXMgZm91bmQsIHRoZW4gdXNlIHRoZSB3aG9sZSBuYW1lLgotICAgICAgICAgICAgICAqLwot LSAgICAgICAgICAgIGNtZE5hbWVCZWdpbiA9IHN0cnJjaHIoY21kTGluZVRlbXAsICcvJyk7Ci0r ICAgICAgICAgICAgY21kTmFtZUJlZ2luID0gKGNoYXIgKikgc3RycmNocihjbWRMaW5lVGVtcCwg Jy8nKTsKLSAgICAgICAgICAgICBpZiAoTlVMTCA9PSBjbWROYW1lQmVnaW4pIHsKLSAgICAgICAg ICAgICAgICBjbWROYW1lQmVnaW4gPSBjbWRMaW5lVGVtcDsKLSAgICAgICAgICAgICB9IGVsc2Ug ewotZGlmZiAtLWdpdCBhL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L2xpYi9wcm9jTWdy L3Byb2NNZ3JTb2xhcmlzLmMgYi9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9saWIvcHJv Y01nci9wcm9jTWdyU29sYXJpcy5jCi1pbmRleCBlZGU1MmQ2Li44ZTAxNjA2IDEwMDY0NAotLS0t IGEvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvbGliL3Byb2NNZ3IvcHJvY01nclNvbGFy aXMuYwotKysrIGIvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvbGliL3Byb2NNZ3IvcHJv Y01nclNvbGFyaXMuYwotQEAgLTM1Nyw3ICszNTcsNyBAQCBFeHRyYWN0Q29tbWFuZExpbmVGcm9t QWRkcmVzc1NwYWNlRmlsZShwc2luZm9fdCAqcHJvY0luZm8sIC8vSU46IHBzaW5mbyBzdHJ1Y3QK LSAgICAgICAgICAgICAgKiBGaW5kIHRoZSBsYXN0IHBhdGggc2VwYXJhdG9yLCB0byBnZXQgdGhl IGNtZCBuYW1lLgotICAgICAgICAgICAgICAqIElmIG5vIHNlcGFyYXRvciBpcyBmb3VuZCwgdGhl biB1c2UgdGhlIHdob2xlIG5hbWUuCi0gICAgICAgICAgICAgICovCi0tICAgICAgICAgICAgY21k TmFtZUJlZ2luID0gc3RycmNocihidWYsICcvJyk7Ci0rICAgICAgICAgICAgY21kTmFtZUJlZ2lu ID0gKGNoYXIgKikgc3RycmNocihidWYsICcvJyk7Ci0gICAgICAgICAgICAgaWYgKE5VTEwgPT0g Y21kTmFtZUJlZ2luKSB7Ci0gICAgICAgICAgICAgICAgY21kTmFtZUJlZ2luID0gYnVmOwotICAg ICAgICAgICAgIH0gZWxzZSB7Ci1kaWZmIC0tZ2l0IGEvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5 MTU2OTUvbGliL3JwY0NoYW5uZWwvZ2xpYl9zdHVicy5jIGIvb3Blbi12bS10b29scy0xMy4wLjUt MjQ5MTU2OTUvbGliL3JwY0NoYW5uZWwvZ2xpYl9zdHVicy5jCi1pbmRleCBjMzJkZWIwLi5lZGIz ZmM0IDEwMDY0NAotLS0tIGEvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvbGliL3JwY0No YW5uZWwvZ2xpYl9zdHVicy5jCi0rKysgYi9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9s aWIvcnBjQ2hhbm5lbC9nbGliX3N0dWJzLmMKLUBAIC0zMiw2ICszMiw5IEBACi0gI2lmICFkZWZp bmVkKFVTRV9SUENJX09OTFkpCi0gI2Vycm9yICJUaGlzIGZpbGUgc2hvdWxkIGJlIGNvbXBpbGVk IGZvciBSUENJLW9ubHkgY2hhbm5lbCEiCi0gI2VuZGlmCi0rI2lmIGRlZmluZWQoZ19mcmVlKQot KyN1bmRlZiBnX2ZyZWUKLSsjZW5kaWYKLSAKLSB2b2lkICpnX21hbGxvYzAoc2l6ZV90IHMpIHsg cmV0dXJuIFV0aWxfU2FmZUNhbGxvYygxLCBzKTsgfQotIHZvaWQgKmdfbWFsbG9jMF9uKHNpemVf dCBuLCBzaXplX3QgcykgeyByZXR1cm4gVXRpbF9TYWZlQ2FsbG9jKG4sIHMpOyB9Ci1kaWZmIC0t Z2l0IGEvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvbGliL3VzZXIvdXRpbC5jIGIvb3Bl bi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvbGliL3VzZXIvdXRpbC5jCi1pbmRleCBiYmQyOWM1 Li5kZDEwM2JhIDEwMDY0NAotLS0tIGEvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvbGli L3VzZXIvdXRpbC5jCi0rKysgYi9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9saWIvdXNl ci91dGlsLmMKLUBAIC04NTcsNyArODU3LDcgQEAgVXRpbF9EZXJpdmVGaWxlTmFtZShjb25zdCBj aGFyICpzb3VyY2UsIC8vIElOOiBwYXRoIHRvIGRpY3QgZmlsZSAoaW5jbCBmaWxlbmFtZSkKLSAK LSAgICAvKiBzdHJpcCBvZmYgdGhlIGV4aXN0aW5nIGZpbGUgZXh0ZW5zaW9uLCBpZiBwcmVzZW50 ICovCi0gICAgewotLSAgICAgIGNoYXIgKnAgPSBTdHJfU3RycmNocihiYXNlLCAnLicpOwotKyAg ICAgIGNoYXIgKnAgPSAoY2hhciAqKSBTdHJfU3RycmNocihiYXNlLCAnLicpOwotICAgICAgIGlm IChwICE9IE5VTEwpIHsKLSAJICpwID0gJ1wwJzsKLSAgICAgICB9Ci1kaWZmIC0tZ2l0IGEvb3Bl bi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvbGliZ3Vlc3RTdG9yZUNsaWVudC9ndWVzdFN0b3Jl Q2xpZW50TGliLmMgYi9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9saWJndWVzdFN0b3Jl Q2xpZW50L2d1ZXN0U3RvcmVDbGllbnRMaWIuYwotaW5kZXggOWY3NGU4NC4uZGMyNDhjOCAxMDA2 NDQKLS0tLSBhL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L2xpYmd1ZXN0U3RvcmVDbGll bnQvZ3Vlc3RTdG9yZUNsaWVudExpYi5jCi0rKysgYi9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkx NTY5NS9saWJndWVzdFN0b3JlQ2xpZW50L2d1ZXN0U3RvcmVDbGllbnRMaWIuYwotQEAgLTczNSw3 ICs3MzUsNyBAQCBHdWVzdFN0b3JlUmVjdkhUVFBSZXNwb25zZUhlYWRlcihDYWxsQ3R4ICpjdHgp ICAvLyBJTgotIAotICAgICAgIHRvdGFsQnl0ZXNSZWNlaXZlZCArPSBieXRlc1JlY2VpdmVkOwot ICAgICAgIGN0eC0+YnVmW3RvdGFsQnl0ZXNSZWNlaXZlZF0gPSAnXDAnOwotLSAgICAgIGh0dHBI ZWFkZXJFbmQgPSBzdHJzdHIoY3R4LT5idWYsIEhUVFBfSEVBREVSX0VORCk7Ci0rICAgICAgaHR0 cEhlYWRlckVuZCA9IChjaGFyICopIHN0cnN0cihjdHgtPmJ1ZiwgSFRUUF9IRUFERVJfRU5EKTsK LSAgICAgICBpZiAoaHR0cEhlYWRlckVuZCAhPSBOVUxMKSB7Ci0gICAgICAgICAgKmh0dHBIZWFk ZXJFbmQgPSAnXDAnOwotICAgICAgICAgIGJyZWFrOwotQEAgLTc3Niw3ICs3NzYsNyBAQCBHdWVz dFN0b3JlUmVjdkhUVFBSZXNwb25zZUhlYWRlcihDYWxsQ3R4ICpjdHgpICAvLyBJTgotICAgICAg IHJldHVybiBHU0xJQkVSUl9TRVJWRVI7Ci0gICAgfQotIAotLSAgIGNvbnRlbnRMZW5ndGhIZWFk ZXIgPSBzdHJzdHIoaHR0cFN0YXR1cyArIHN0cmxlbihodHRwU3RhdHVzKSArIDEsCi0rICAgY29u dGVudExlbmd0aEhlYWRlciA9IChjaGFyICopIHN0cnN0cihodHRwU3RhdHVzICsgc3RybGVuKGh0 dHBTdGF0dXMpICsgMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTlRFTlRf TEVOR1RIX0hFQURFUik7Ci0gICAgaWYgKE5VTEwgPT0gY29udGVudExlbmd0aEhlYWRlcikgewot ICAgICAgIExPR19FUlIoY3R4LCAiUHJvdG9jb2wgY29udGVudCBsZW5ndGggbm90IGZvdW5kLiIp OwotZGlmZiAtLWdpdCBhL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L2xpYnZtdG9vbHMv aTE4bi5jIGIvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvbGlidm10b29scy9pMThuLmMK LWluZGV4IDMwODVmNzIuLmQ2YzhlYWUgMTAwNjQ0Ci0tLS0gYS9vcGVuLXZtLXRvb2xzLTEzLjAu NS0yNDkxNTY5NS9saWJ2bXRvb2xzL2kxOG4uYwotKysrIGIvb3Blbi12bS10b29scy0xMy4wLjUt MjQ5MTU2OTUvbGlidm10b29scy9pMThuLmMKLUBAIC0yNDAsNyArMjQwLDcgQEAgTXNnR2V0VXNl ckxhbmd1YWdlKHZvaWQpCi0gICAgICAgY2hhciAqZG90OwotIAotICAgICAgIGxhbmcgPSBnX3N0 cmR1cCh0bXApOwotLSAgICAgIGRvdCA9IHN0cmNocihsYW5nLCAnLicpOwotKyAgICAgIGRvdCA9 IChjaGFyICopIHN0cmNocihsYW5nLCAnLicpOwotICAgICAgIGlmIChkb3QgIT0gTlVMTCkgewot ICAgICAgICAgICpkb3QgPSAnXDAnOwotICAgICAgIH0KLUBAIC02OTgsNyArNjk4LDcgQEAgVk1U b29sc19CaW5kVGV4dERvbWFpbihjb25zdCBjaGFyICpkb21haW4sCi0gICAgICAgICogSWYgd2Ug Y291bGRuJ3QgZmluZCB0aGUgY2F0YWxvZyBmaWxlIGZvciB0aGUgdXNlcidzIGxhbmd1YWdlLCBz ZWUgaWYKLSAgICAgICAgKiB3ZSBjYW4gZmluZCBhIG1vcmUgZ2VuZXJpYyBsYW5ndWFnZSAoZS5n LiwgZm9yICJlbl9VUyIsIGFsc28gdHJ5ICJlbiIpLgotICAgICAgICAqLwotLSAgICAgIGNoYXIg KnNlcCA9IFN0cl9TdHJyY2hyKGxhbmcsICdfJyk7Ci0rICAgICAgY2hhciAqc2VwID0gKGNoYXIg KikgU3RyX1N0cnJjaHIobGFuZywgJ18nKTsKLSAgICAgICBpZiAoc2VwICE9IE5VTEwpIHsKLSAg ICAgICAgICBpZiAodXNybGFuZyA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgdXNybGFuZyA9IFV0 aWxfU2FmZVN0cmR1cChsYW5nKTsKLWRpZmYgLS1naXQgYS9vcGVuLXZtLXRvb2xzLTEzLjAuNS0y NDkxNTY5NS9tb2R1bGVzL3NvbGFyaXMvdm1oZ2ZzL3Zub2RlLmMgYi9vcGVuLXZtLXRvb2xzLTEz LjAuNS0yNDkxNTY5NS9tb2R1bGVzL3NvbGFyaXMvdm1oZ2ZzL3Zub2RlLmMKLWluZGV4IDUzZGQ1 NDkuLmRmMmUxZjIgMTAwNjQ0Ci0tLS0gYS9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9t b2R1bGVzL3NvbGFyaXMvdm1oZ2ZzL3Zub2RlLmMKLSsrKyBiL29wZW4tdm0tdG9vbHMtMTMuMC41 LTI0OTE1Njk1L21vZHVsZXMvc29sYXJpcy92bWhnZnMvdm5vZGUuYwotQEAgLTU0MjEsNyArNTQy MSw3IEBAIEhnZnNNYWtlRnVsbE5hbWUoY29uc3QgY2hhciAqcGF0aCwgICAgICAvLyBJTjogIFBh dGggb2YgZGlyZWN0b3J5IGNvbnRhaW5pbmcgZmlsCi0gICAgICAgICogUmVwbGFjZSB0aGUgbGFz dCBwYXRoIHNlcGFyYXRvciB3aXRoIGEgTlVMIHRlcm1pbmF0b3IsIHRoZW4gcmV0dXJuIHRoZQot ICAgICAgICAqIHNpemUgb2YgdGhlIGJ1ZmZlci4KLSAgICAgICAgKi8KLS0gICAgICBjaGFyICpu ZXdFbmQgPSBzdHJyY2hyKG91dEJ1ZiwgJy8nKTsKLSsgICAgICBjaGFyICpuZXdFbmQgPSAoY2hh ciAqKSBzdHJyY2hyKG91dEJ1ZiwgJy8nKTsKLSAgICAgICBpZiAoIW5ld0VuZCkgewotICAgICAg ICAgIC8qCi0gICAgICAgICAgICogV2Ugc2hvdWxkIG5ldmVyIGdldCBoZXJlIHNpbmNlIHdlIG5h bWUgdGhlIHJvb3Qgdm5vZGUgIi8iIGluCi1kaWZmIC0tZ2l0IGEvb3Blbi12bS10b29scy0xMy4w LjUtMjQ5MTU2OTUvc2VydmljZXMvcGx1Z2lucy9jb21wb25lbnRNZ3IvY29tcG9uZW50TWdySW5z dGFsbEFjdGlvbi5jIGIvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvc2VydmljZXMvcGx1 Z2lucy9jb21wb25lbnRNZ3IvY29tcG9uZW50TWdySW5zdGFsbEFjdGlvbi5jCi1pbmRleCBlMDUx ZjQxLi45ZGRiMjM5IDEwMDY0NAotLS0tIGEvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUv c2VydmljZXMvcGx1Z2lucy9jb21wb25lbnRNZ3IvY29tcG9uZW50TWdySW5zdGFsbEFjdGlvbi5j Ci0rKysgYi9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9zZXJ2aWNlcy9wbHVnaW5zL2Nv bXBvbmVudE1nci9jb21wb25lbnRNZ3JJbnN0YWxsQWN0aW9uLmMKLUBAIC00NzYsNyArNDc2LDcg QEAgQ29tcG9uZW50TWdyQ29uc3RydWN0Q29tbWFuZGxpbmUoZ2NoYXIgKnNjcmlwdFBhdGgsICAg ICAgICAgICAgLy8gSU4KLSAgICB9Ci0gCi0gICAgaWYgKGN1c3RvbUFyZ3VtZW50cyAhPSBOVUxM KSB7Ci0tICAgICAgbWFuZGF0b3J5UGFyYW1zRXhpc3RzID0gc3Ryc3RyKGN1c3RvbUFyZ3VtZW50 cywgbWFuZGF0b3J5UGFyYW1zKTsKLSsgICAgICBtYW5kYXRvcnlQYXJhbXNFeGlzdHMgPSAoY2hh ciAqKSBzdHJzdHIoY3VzdG9tQXJndW1lbnRzLCBtYW5kYXRvcnlQYXJhbXMpOwotICAgICAgIGlm IChtYW5kYXRvcnlQYXJhbXNFeGlzdHMgPT0gTlVMTCkgewotICAgICAgICAgIGNvbW1hbmRsaW5l ID0gU3RyX1NhZmVBc3ByaW50ZihOVUxMLCAiXCIlcyVzXCIgJXMgXCIlc1wiICVzICVzICVzIiwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3lzRGlyLCBwb3dlcnNo ZWxsRXhlY3V0YWJsZSwKLUBAIC01MDQsNyArNTA0LDcgQEAgQ29tcG9uZW50TWdyQ29uc3RydWN0 Q29tbWFuZGxpbmUoZ2NoYXIgKnNjcmlwdFBhdGgsICAgICAgICAgICAgLy8gSU4KLSAgICBmcmVl KHN5c0Rpcik7Ci0gI2Vsc2UKLSAgICBpZiAoY3VzdG9tQXJndW1lbnRzICE9IE5VTEwpIHsKLS0g ICAgICBtYW5kYXRvcnlQYXJhbXNFeGlzdHMgPSBzdHJzdHIoY3VzdG9tQXJndW1lbnRzLCBtYW5k YXRvcnlQYXJhbXMpOwotKyAgICAgIG1hbmRhdG9yeVBhcmFtc0V4aXN0cyA9IChjaGFyICopIHN0 cnN0cihjdXN0b21Bcmd1bWVudHMsIG1hbmRhdG9yeVBhcmFtcyk7Ci0gICAgICAgaWYgKG1hbmRh dG9yeVBhcmFtc0V4aXN0cyA9PSBOVUxMKSB7Ci0gICAgICAgICAgY29tbWFuZGxpbmUgPSBTdHJf U2FmZUFzcHJpbnRmKE5VTEwsICIlcyAlcyAlcyAlcyIsIHNjcmlwdFBhdGgsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRBcmd1bWVudHMsIGN1c3RvbUFy Z3VtZW50cywKLWRpZmYgLS1naXQgYS9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9zZXJ2 aWNlcy9wbHVnaW5zL2RuZGNwL2NvcHlQYXN0ZVVJWDExLmNwcCBiL29wZW4tdm0tdG9vbHMtMTMu MC41LTI0OTE1Njk1L3NlcnZpY2VzL3BsdWdpbnMvZG5kY3AvY29weVBhc3RlVUlYMTEuY3BwCi1p bmRleCBhNGEwMmM1Li5lZjQ3Yjc2IDEwMDY0NAotLS0tIGEvb3Blbi12bS10b29scy0xMy4wLjUt MjQ5MTU2OTUvc2VydmljZXMvcGx1Z2lucy9kbmRjcC9jb3B5UGFzdGVVSVgxMS5jcHAKLSsrKyBi L29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L3NlcnZpY2VzL3BsdWdpbnMvZG5kY3AvY29w eVBhc3RlVUlYMTEuY3BwCi1AQCAtMTA0MCw3ICsxMDQwLDcgQEAgQ29weVBhc3RlVUlYMTE6Okxv Y2FsR2V0U2VsZWN0aW9uRmlsZUxpc3QoY29uc3QgR3RrOjpTZWxlY3Rpb25EYXRhJiBzZCkgICAg ICAvLwotICAgICAgIC8qCi0gICAgICAgICogUGFyc2UgcmVsYXRpdmUgcGF0aC4KLSAgICAgICAg Ki8KLS0gICAgICBuZXdSZWxQYXRoID0gU3RyX1N0cnJjaHIobmV3UGF0aCwgRElSU0VQQykgKyAx OyAvLyBQb2ludCB0byBjaGFyIGFmdGVyICcvJwotKyAgICAgIG5ld1JlbFBhdGggPSAoY2hhciAq KSBTdHJfU3RycmNocihuZXdQYXRoLCBESVJTRVBDKSArIDE7IC8vIFBvaW50IHRvIGNoYXIgYWZ0 ZXIgJy8nCi0gCi0gICAgICAgLyogS2VlcCB0cmFjayBvZiBob3cgYmlnIHRoZSBmY3AgZmlsZXMg YXJlLiAqLwotICAgICAgIGlmICgoc2l6ZSA9IEZpbGVfR2V0U2l6ZUV4KG5ld1BhdGgpKSA+PSAw KSB7Ci1kaWZmIC0tZ2l0IGEvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvc2VydmljZXMv cGx1Z2lucy9kbmRjcC9kbmQvZG5kWGRnLmMgYi9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5 NS9zZXJ2aWNlcy9wbHVnaW5zL2RuZGNwL2RuZC9kbmRYZGcuYwotaW5kZXggZGE1NGVlNS4uOGY0 OTBmNiAxMDA2NDQKLS0tLSBhL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L3NlcnZpY2Vz L3BsdWdpbnMvZG5kY3AvZG5kL2RuZFhkZy5jCi0rKysgYi9vcGVuLXZtLXRvb2xzLTEzLjAuNS0y NDkxNTY5NS9zZXJ2aWNlcy9wbHVnaW5zL2RuZGNwL2RuZC9kbmRYZGcuYwotQEAgLTQyOCw3ICs0 MjgsNyBAQCBDcmVhdGVTdGFnaW5nRGlyZWN0b3J5KAotICAgICAgIGNoYXIgKnJlYWxTdGFnaW5n RGlyID0gU3RyX1NhZmVBc3ByaW50ZihOVUxMLCAiJXNYWFhYWFgiLCByZWFsUm9vdCk7Ci0gCi0g ICAgICAgaWYgKG1rZHRlbXAocmVhbFN0YWdpbmdEaXIpICE9IE5VTEwpIHsKLS0gICAgICAgICBj aGFyICpyYW5kb21QYXJ0ID0gc3RycmNocihyZWFsU3RhZ2luZ0RpciwgJy8nKSArIDE7Ci0rICAg ICAgICAgY2hhciAqcmFuZG9tUGFydCA9IChjaGFyICopIHN0cnJjaHIocmVhbFN0YWdpbmdEaXIs ICcvJykgKyAxOwotICAgICAgICAgIFZFUklGWSgqcmFuZG9tUGFydCAhPSAnXDAnKTsKLSAKLSAg ICAgICAgICBhcHBhcmVudFN0YWdpbmdEaXIgPSBVbmljb2RlX0FwcGVuZChhcHBhcmVudFJvb3Qs IHJhbmRvbVBhcnQpOwotZGlmZiAtLWdpdCBhL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1 L3NlcnZpY2VzL3BsdWdpbnMvZG5kY3AvZG5kR3Vlc3QvZ3Vlc3RDb3B5UGFzdGVTcmMuY2MgYi9v cGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9zZXJ2aWNlcy9wbHVnaW5zL2RuZGNwL2RuZEd1 ZXN0L2d1ZXN0Q29weVBhc3RlU3JjLmNjCi1pbmRleCA0MmIxNGE3Li4wMzAzNjI1IDEwMDY0NAot LS0tIGEvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvc2VydmljZXMvcGx1Z2lucy9kbmRj cC9kbmRHdWVzdC9ndWVzdENvcHlQYXN0ZVNyYy5jYwotKysrIGIvb3Blbi12bS10b29scy0xMy4w LjUtMjQ5MTU2OTUvc2VydmljZXMvcGx1Z2lucy9kbmRjcC9kbmRHdWVzdC9ndWVzdENvcHlQYXN0 ZVNyYy5jYwotQEAgLTE5OCw3ICsxOTgsNyBAQCBHdWVzdENvcHlQYXN0ZVNyYzo6U2V0dXBEZXN0 RGlyKGNvbnN0IHN0ZDo6c3RyaW5nICZkZXN0RGlyKQotICAgICAgIGlmIChuZXdEaXIgIT0gTlVM TCkgewotICAgICAgICAgIG1TdGFnaW5nRGlyID0gbmV3RGlyOwotIAotLSAgICAgICAgIGNoYXIg Kmxhc3RTZXAgPSBTdHJfU3RycmNocihuZXdEaXIsIERJUlNFUEMpOwotKyAgICAgICAgIGNoYXIg Kmxhc3RTZXAgPSAoY2hhciAqKSBTdHJfU3RycmNocihuZXdEaXIsIERJUlNFUEMpOwotICAgICAg ICAgIGlmIChsYXN0U2VwICYmIGxhc3RTZXBbMV0gIT0gJ1wwJykgewotICAgICAgICAgICAgIG1T dGFnaW5nRGlyICs9IERJUlNFUFM7Ci0gICAgICAgICAgfQotZGlmZiAtLWdpdCBhL29wZW4tdm0t dG9vbHMtMTMuMC41LTI0OTE1Njk1L3NlcnZpY2VzL3BsdWdpbnMvZG5kY3AvZG5kR3Vlc3Qvdm1H dWVzdERuRFNyYy5jYyBiL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L3NlcnZpY2VzL3Bs dWdpbnMvZG5kY3AvZG5kR3Vlc3Qvdm1HdWVzdERuRFNyYy5jYwotaW5kZXggMTFjOWZkNS4uMmYz NjZjNyAxMDA2NDQKLS0tLSBhL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L3NlcnZpY2Vz L3BsdWdpbnMvZG5kY3AvZG5kR3Vlc3Qvdm1HdWVzdERuRFNyYy5jYwotKysrIGIvb3Blbi12bS10 b29scy0xMy4wLjUtMjQ5MTU2OTUvc2VydmljZXMvcGx1Z2lucy9kbmRjcC9kbmRHdWVzdC92bUd1 ZXN0RG5EU3JjLmNjCi1AQCAtNzAsNyArNzAsNyBAQCBWTUd1ZXN0RG5EU3JjOjpTZXR1cERlc3RE aXIoY29uc3Qgc3RkOjpzdHJpbmcgJmRlc3REaXIpCi0gICAgICAgaWYgKG5ld0RpciAhPSBOVUxM KSB7Ci0gICAgICAgICAgbVN0YWdpbmdEaXIgPSBuZXdEaXI7Ci0gCi0tICAgICAgICAgY2hhciAq bGFzdFNlcCA9IFN0cl9TdHJyY2hyKG5ld0RpciwgRElSU0VQQyk7Ci0rICAgICAgICAgY2hhciAq bGFzdFNlcCA9IChjaGFyICopIFN0cl9TdHJyY2hyKG5ld0RpciwgRElSU0VQQyk7Ci0gICAgICAg ICAgaWYgKGxhc3RTZXAgJiYgbGFzdFNlcFsxXSAhPSAnXDAnKSB7Ci0gICAgICAgICAgICAgbVN0 YWdpbmdEaXIgKz0gRElSU0VQUzsKLSAgICAgICAgICB9Ci1kaWZmIC0tZ2l0IGEvb3Blbi12bS10 b29scy0xMy4wLjUtMjQ5MTU2OTUvc2VydmljZXMvcGx1Z2lucy9kbmRjcC9kbmRVSVgxMS5jcHAg Yi9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9zZXJ2aWNlcy9wbHVnaW5zL2RuZGNwL2Ru ZFVJWDExLmNwcAotaW5kZXggZTA4NGRjNC4uODNjMmM2MCAxMDA2NDQKLS0tLSBhL29wZW4tdm0t dG9vbHMtMTMuMC41LTI0OTE1Njk1L3NlcnZpY2VzL3BsdWdpbnMvZG5kY3AvZG5kVUlYMTEuY3Bw Ci0rKysgYi9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9zZXJ2aWNlcy9wbHVnaW5zL2Ru ZGNwL2RuZFVJWDExLmNwcAotQEAgLTE0OTEsNyArMTQ5MSw3IEBAIERuRFVJWDExOjpTZXRDUENs aXBib2FyZEZyb21HdGsoY29uc3QgR3RrOjpTZWxlY3Rpb25EYXRhJiBzZCkgLy8gSU4KLSAgICAg ICAgICAvKgotICAgICAgICAgICAqIFBhcnNlIHJlbGF0aXZlIHBhdGguCi0gICAgICAgICAgICov Ci0tICAgICAgICAgbmV3UmVsUGF0aCA9IFN0cl9TdHJyY2hyKG5ld1BhdGgsIERJUlNFUEMpICsg MTsgLy8gUG9pbnQgdG8gY2hhciBhZnRlciAnLycKLSsgICAgICAgICBuZXdSZWxQYXRoID0gKGNo YXIgKikgU3RyX1N0cnJjaHIobmV3UGF0aCwgRElSU0VQQykgKyAxOyAvLyBQb2ludCB0byBjaGFy IGFmdGVyICcvJwotIAotICAgICAgICAgIC8qIEtlZXAgdHJhY2sgb2YgaG93IGJpZyB0aGUgZG5k IGZpbGVzIGFyZS4gKi8KLSAgICAgICAgICBpZiAoKHNpemUgPSBGaWxlX0dldFNpemVFeChuZXdQ YXRoKSkgPj0gMCkgewotZGlmZiAtLWdpdCBhL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1 L3NlcnZpY2VzL3BsdWdpbnMvZ3Vlc3RJbmZvL3BlcmZNb25MaW51eC5jIGIvb3Blbi12bS10b29s cy0xMy4wLjUtMjQ5MTU2OTUvc2VydmljZXMvcGx1Z2lucy9ndWVzdEluZm8vcGVyZk1vbkxpbnV4 LmMKLWluZGV4IDNjNTFmYWUuLjcyNDhiNmYgMTAwNjQ0Ci0tLS0gYS9vcGVuLXZtLXRvb2xzLTEz LjAuNS0yNDkxNTY5NS9zZXJ2aWNlcy9wbHVnaW5zL2d1ZXN0SW5mby9wZXJmTW9uTGludXguYwot KysrIGIvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvc2VydmljZXMvcGx1Z2lucy9ndWVz dEluZm8vcGVyZk1vbkxpbnV4LmMKLUBAIC00NzcsNyArNDc3LDcgQEAgR3Vlc3RJbmZvUHJvY0Rh dGEoY29uc3QgY2hhciAqcGF0aE5hbWUsICAgICAgICAgICAvLyBJTjogcGF0aCBuYW1lCi0gICAg ICAgfQotIAotICAgICAgIGlmIChmaWVsZFNlcGFyYXRvciAhPSAnXDAnKSB7Ci0tICAgICAgICAg Y2hhciAqcCA9IHN0cnJjaHIoZmllbGROYW1lLCBmaWVsZFNlcGFyYXRvcik7Ci0rICAgICAgICAg Y2hhciAqcCA9IChjaGFyICopIHN0cnJjaHIoZmllbGROYW1lLCBmaWVsZFNlcGFyYXRvcik7Ci0g ICAgICAgICAgaWYgKHAgPT0gTlVMTCkgewotICAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAg ICogV2hlbiBmaWVsZFNlcGFyYXRvciBpcyBzcGVjaWZpZWQsIGZpZWxkTmFtZSBpcyBleHBlY3Rl ZAotZGlmZiAtLWdpdCBhL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L3NlcnZpY2VzL3Bs dWdpbnMvdml4L3ZpeFRvb2xzLmMgYi9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS9zZXJ2 aWNlcy9wbHVnaW5zL3ZpeC92aXhUb29scy5jCi1pbmRleCA2NTQ1MTJjLi42Yjk3MjMzIDEwMDY0 NAotLS0tIGEvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvc2VydmljZXMvcGx1Z2lucy92 aXgvdml4VG9vbHMuYwotKysrIGIvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvc2Vydmlj ZXMvcGx1Z2lucy92aXgvdml4VG9vbHMuYwotQEAgLTkzMyw3ICs5MzMsNyBAQCBWaXhUb29sc0J1 aWxkVXNlckVudmlyb25tZW50VGFibGUoY29uc3QgY2hhciAqIGNvbnN0ICplbnZwKSAgIC8vIElO OiBvcHRpb25hbAotICAgICAgIGNoYXIgKndoZXJlVG9TcGxpdDsKLSAgICAgICBzaXplX3QgbmFt ZUxlbjsKLSAKLS0gICAgICB3aGVyZVRvU3BsaXQgPSBzdHJjaHIoKmVudnAsICc9Jyk7Ci0rICAg ICAgd2hlcmVUb1NwbGl0ID0gKGNoYXIgKikgc3RyY2hyKCplbnZwLCAnPScpOwotICAgICAgIGlm IChOVUxMID09IHdoZXJlVG9TcGxpdCkgewotICAgICAgICAgIC8qIE91ciBjb2RlIGdlbmVyYXRl ZCB0aGlzIGxpc3QsIHNvIHRoaXMgc2hvdWxkbid0IGhhcHBlbi4gKi8KLSAgICAgICAgICBBU1NF UlQoMCk7Ci1AQCAtMTQ5OCw3ICsxNDk4LDcgQEAgVml4VG9vbHNSdW5Qcm9ncmFtSW1wbChjaGFy ICpyZXF1ZXN0TmFtZSwgICAgICAvLyBJTgotICAgIH0KLSAgICBpZiAoJ1wiJyA9PSAqc3RhcnRQ cm9ncmFtRmlsZU5hbWUpIHsKLSAgICAgICBzdGFydFByb2dyYW1GaWxlTmFtZSsrOwotLSAgICAg IHN0b3BQcm9ncmFtRmlsZU5hbWUgPSBzdHJzdHIoc3RhcnRQcm9ncmFtRmlsZU5hbWUsICJcIiIp OwotKyAgICAgIHN0b3BQcm9ncmFtRmlsZU5hbWUgPSAoY2hhciAqKSBzdHJzdHIoc3RhcnRQcm9n cmFtRmlsZU5hbWUsICJcIiIpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgc3RvcFByb2dyYW1GaWxl TmFtZSA9IE5VTEw7Ci0gICAgfQotQEAgLTE3MTYsNyArMTcxNiw3IEBAIFZpeFRvb2xzU3RhcnRQ cm9ncmFtSW1wbChjb25zdCBjaGFyICpyZXF1ZXN0TmFtZSwgICAgICAgICAgICAvLyBJTgotICAg IH0KLSAgICBpZiAoJ1wiJyA9PSAqc3RhcnRQcm9ncmFtRmlsZU5hbWUpIHsKLSAgICAgICBzdGFy dFByb2dyYW1GaWxlTmFtZSsrOwotLSAgICAgIHN0b3BQcm9ncmFtRmlsZU5hbWUgPSBzdHJzdHIo c3RhcnRQcm9ncmFtRmlsZU5hbWUsICJcIiIpOwotKyAgICAgIHN0b3BQcm9ncmFtRmlsZU5hbWUg PSAoY2hhciAqKSBzdHJzdHIoc3RhcnRQcm9ncmFtRmlsZU5hbWUsICJcIiIpOwotICAgIH0gZWxz ZSB7Ci0gICAgICAgc3RvcFByb2dyYW1GaWxlTmFtZSA9IE5VTEw7Ci0gICAgfQotQEAgLTQ1ODIs NyArNDU4Miw3IEBAIFZpeFRvb2xzR2V0QWxsRW52VmFyc0ZvclVzZXIodm9pZCAqdXNlclRva2Vu LCAgICAgLy8gSU4KLSAgICAgICAgICBjaGFyICp3aGVyZVRvU3BsaXQ7Ci0gICAgICAgICAgc2l6 ZV90IG5hbWVMZW47Ci0gCi0tICAgICAgICAgd2hlcmVUb1NwbGl0ID0gc3RyY2hyKGVudlZhciwg Jz0nKTsKLSsgICAgICAgICB3aGVyZVRvU3BsaXQgPSAoY2hhciAqKSBzdHJjaHIoZW52VmFyLCAn PScpOwotICAgICAgICAgIGlmIChOVUxMID09IHdoZXJlVG9TcGxpdCkgewotICAgICAgICAgICAg IC8qIE91ciBjb2RlIGdlbmVyYXRlZCB0aGlzIGxpc3QsIHNvIHRoaXMgc2hvdWxkbid0IGhhcHBl bi4gKi8KLSAgICAgICAgICAgICBBU1NFUlQoMCk7Ci1kaWZmIC0tZ2l0IGEvb3Blbi12bS10b29s cy0xMy4wLjUtMjQ5MTU2OTUvdGVzdHMvdm1ycGNkYmcvZGVidWdDaGFubmVsLmMgYi9vcGVuLXZt LXRvb2xzLTEzLjAuNS0yNDkxNTY5NS90ZXN0cy92bXJwY2RiZy9kZWJ1Z0NoYW5uZWwuYwotaW5k ZXggMzk5ZGVkZC4uZWI1NWNmMiAxMDA2NDQKLS0tLSBhL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0 OTE1Njk1L3Rlc3RzL3ZtcnBjZGJnL2RlYnVnQ2hhbm5lbC5jCi0rKysgYi9vcGVuLXZtLXRvb2xz LTEzLjAuNS0yNDkxNTY5NS90ZXN0cy92bXJwY2RiZy9kZWJ1Z0NoYW5uZWwuYwotQEAgLTIyMiw3 ICsyMjIsNyBAQCBScGNEZWJ1Z1NlbmQoUnBjQ2hhbm5lbCAqY2hhbiwKLSAgICAgICAgICBBU1NF UlQobWFwcGluZy0+eGRyU2l6ZSA+IDApOwotIAotICAgICAgICAgIC8qIEZpbmQgb3V0IHdoZXJl IHRoZSBYRFIgZGF0YSBzdGFydHMuICovCi0tICAgICAgICAgc3RhcnQgPSBzdHJjaHIoY29weSwg JyAnKTsKLSsgICAgICAgICBzdGFydCA9IChjaGFyICopIHN0cmNocihjb3B5LCAnICcpOwotICAg ICAgICAgIGlmIChzdGFydCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgUnBjRGVidWdfU2V0UmVz dWx0KCJDYW4ndCBmaW5kIGNvbW1hbmQgZGVsaW1pdGVyLiIsIHJlc3VsdCwgcmVzdWx0TGVuKTsK LSAgICAgICAgICAgICByZXQgPSBGQUxTRTsKLWRpZmYgLS1naXQgYS9vcGVuLXZtLXRvb2xzLTEz LjAuNS0yNDkxNTY5NS92Z2F1dGgvY29tbW9uL2kxOG4uYyBiL29wZW4tdm0tdG9vbHMtMTMuMC41 LTI0OTE1Njk1L3ZnYXV0aC9jb21tb24vaTE4bi5jCi1pbmRleCA2ZDEyOTJkLi5iYTJjYTI4IDEw MDY0NAotLS0tIGEvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvdmdhdXRoL2NvbW1vbi9p MThuLmMKLSsrKyBiL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L3ZnYXV0aC9jb21tb24v aTE4bi5jCi1AQCAtNDg0LDcgKzQ4NCw3IEBAIE1zZ0dldFVzZXJMYW5ndWFnZSh2b2lkKQotICAg ICAgIGNoYXIgKmRvdDsKLSAKLSAgICAgICBsYW5nID0gZ19zdHJkdXAodG1wKTsKLS0gICAgICBk b3QgPSBzdHJjaHIobGFuZywgJy4nKTsKLSsgICAgICBkb3QgPSAoY2hhciAqKSBzdHJjaHIobGFu ZywgJy4nKTsKLSAgICAgICBpZiAoZG90ICE9IE5VTEwpIHsKLSAgICAgICAgICAqZG90ID0gJ1ww JzsKLSAgICAgICB9Ci1kaWZmIC0tZ2l0IGEvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUv dm1ibG9ja21vdW50ZXIvdm1ibG9ja21vdW50ZXIuYyBiL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0 OTE1Njk1L3ZtYmxvY2ttb3VudGVyL3ZtYmxvY2ttb3VudGVyLmMKLWluZGV4IDQyOWIxMjQuLjYz YjViZWYgMTAwNjQ0Ci0tLS0gYS9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS92bWJsb2Nr bW91bnRlci92bWJsb2NrbW91bnRlci5jCi0rKysgYi9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkx NTY5NS92bWJsb2NrbW91bnRlci92bWJsb2NrbW91bnRlci5jCi1AQCAtMTQwLDcgKzE0MCw3IEBA IG1haW4oaW50IGFyZ2MsICAgICAgICAgIC8vIElOCi0gICAgdGhpc1Byb2dyYW0gPSBhcmd2WzBd OwotIAotICAgIC8qIENvbXB1dGUgdGhlIGJhc2UgbmFtZSBvZiB0aGUgcHJvZ3JhbSwgdG9vLiAq LwotLSAgIHRoaXNQcm9ncmFtQmFzZSA9IHN0cnJjaHIodGhpc1Byb2dyYW0sICcvJyk7Ci0rICAg dGhpc1Byb2dyYW1CYXNlID0gKGNoYXIgKikgc3RycmNocih0aGlzUHJvZ3JhbSwgJy8nKTsKLSAg ICBpZiAodGhpc1Byb2dyYW1CYXNlICE9IE5VTEwpIHsKLSAgICAgICB0aGlzUHJvZ3JhbUJhc2Ur KzsKLSAgICB9IGVsc2UgewotZGlmZiAtLWdpdCBhL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1 Njk1L3ZtaGdmcy1mdXNlL2NvbmZpZy5jIGIvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUv dm1oZ2ZzLWZ1c2UvY29uZmlnLmMKLWluZGV4IDE5NTM1ZmQuLjNmNjhmZjYgMTAwNjQ0Ci0tLS0g YS9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS92bWhnZnMtZnVzZS9jb25maWcuYwotKysr IGIvb3Blbi12bS10b29scy0xMy4wLjUtMjQ5MTU2OTUvdm1oZ2ZzLWZ1c2UvY29uZmlnLmMKLUBA IC0yNDgsNyArMjQ4LDcgQEAgU3lzQ29tcGF0SXNJbnN0YWxsZWRGdXNlKGNoYXIgKnV0c1JlbGVh c2UpICAvLyBJTjoga2VybmVsIHJlbGVhc2UKLSAgICB9Ci0gCi0gICAgbW9kdWxlc0RlcERhdGFb bW9kdWxlc0RlcERhdGFTaXplXSA9ICdcMCc7Ci0tICAgZnVzZUZpbGVzeXN0ZW0gPSBzdHJzdHIo bW9kdWxlc0RlcERhdGEsCi0rICAgZnVzZUZpbGVzeXN0ZW0gPSAoY2hhciAqKSBzdHJzdHIobW9k dWxlc0RlcERhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVTRVJfS0VSTkVMX0ZT KTsKLSAKLSAgICBpbnN0YWxsZWRGdXNlID0gKGZ1c2VGaWxlc3lzdGVtICE9IE5VTEwpOwotZGlm ZiAtLWdpdCBhL29wZW4tdm0tdG9vbHMtMTMuMC41LTI0OTE1Njk1L3hmZXJsb2dzL3hmZXJsb2dz LmMgYi9vcGVuLXZtLXRvb2xzLTEzLjAuNS0yNDkxNTY5NS94ZmVybG9ncy94ZmVybG9ncy5jCi1p bmRleCBhMjlhMjVhLi43ZmM4NjcxIDEwMDY0NAotLS0tIGEvb3Blbi12bS10b29scy0xMy4wLjUt MjQ5MTU2OTUveGZlcmxvZ3MveGZlcmxvZ3MuYwotKysrIGIvb3Blbi12bS10b29scy0xMy4wLjUt MjQ5MTU2OTUveGZlcmxvZ3MveGZlcmxvZ3MuYwotQEAgLTIwOCw5ICsyMDgsOSBAQCBleHRyYWN0 RmlsZShjaGFyICpmaWxlbmFtZSkgLy9JTjogdm14IGxvZyBmaWxlbmFtZSBlLmcuIHZtd2FyZS5s b2cKLSAgICAgICAgICAgICAgKiByZWFkIHRoZSBpbnB1dCBmaWxlbmFtZSwgd2hpY2ggd2FzIHRo ZSBmaWxlbmFtZSB3cml0dGVuIGJ5IHRoZQotICAgICAgICAgICAgICAqIGd1ZXN0LgotICAgICAg ICAgICAgICAqLwotLSAgICAgICAgICAgIGxvZ0lucEZpbGVuYW1lID0gc3Ryc3RyKGJ1ZiwgTE9H X1NUQVJUX01BUkspOwotKyAgICAgICAgICAgIGxvZ0lucEZpbGVuYW1lID0gKGNoYXIgKikgc3Ry c3RyKGJ1ZiwgTE9HX1NUQVJUX01BUkspOwotICAgICAgICAgICAgIGxvZ0lucEZpbGVuYW1lICs9 IHNpemVvZiBMT0dfU1RBUlRfTUFSSzsKLS0gICAgICAgICAgICBwdHJTdHIgPSBzdHJzdHIobG9n SW5wRmlsZW5hbWUsICI6IHZlciAiKTsKLSsgICAgICAgICAgICBwdHJTdHIgPSAoY2hhciAqKSBz dHJzdHIobG9nSW5wRmlsZW5hbWUsICI6IHZlciAiKTsKLSAgICAgICAgICAgICBpZiAocHRyU3Ry ID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkludmFsaWQgc3Rh cnQgbG9nIG1hcmsuIik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci1AQCAtMjQzLDcgKzI0Myw3 IEBAIGV4dHJhY3RGaWxlKGNoYXIgKmZpbGVuYW1lKSAvL0lOOiB2bXggbG9nIGZpbGVuYW1lIGUu Zy4gdm13YXJlLmxvZwotICAgICAgICAgICAgICAqIGRvbnQgd3JpdGUgYW55dGhpbmcuCi0gICAg ICAgICAgICAgICovCi0gICAgICAgICAgICAgcHRyU3RyKys7Ci0tICAgICAgICAgICAgdmVyID0g c3Ryc3RyKHB0clN0ciwgInZlciAtICIpOwotKyAgICAgICAgICAgIHZlciA9IChjaGFyICopIHN0 cnN0cihwdHJTdHIsICJ2ZXIgLSAiKTsKLSAgICAgICAgICAgICBpZiAoIXZlcikgewotICAgICAg ICAgICAgICAgIFdhcm5pbmcoIk5vIHZlcnNpb24gaW5mb3JtYXRpb24gZGV0ZWN0ZWRcbiIpOwot ICAgICAgICAgICAgIH0gZWxzZSB7Ci1AQCAtMjc2LDcgKzI3Niw3IEBAIGV4dHJhY3RGaWxlKGNo YXIgKmZpbGVuYW1lKSAvL0lOOiB2bXggbG9nIGZpbGVuYW1lIGUuZy4gdm13YXJlLmxvZwotICAg ICAgICAgIH0gZWxzZSB7IC8vIHdyaXRlIHRvIHRoZSBvdXRwdXQgZmlsZQotICAgICAgICAgICAg IGlmIChvdXRmcCkgewotICAgICAgICAgICAgICAgIEFTU0VSVChzdGF0ZSA9PSBJTl9HVUVTVF9M T0dHSU5HKTsKLS0gICAgICAgICAgICAgICBwdHJTdHIgPSBzdHJzdHIoYnVmLCBMT0dfR1VFU1Rf TUFSSyk7Ci0rICAgICAgICAgICAgICAgcHRyU3RyID0gKGNoYXIgKikgc3Ryc3RyKGJ1ZiwgTE9H X0dVRVNUX01BUkspOwotICAgICAgICAgICAgICAgIHB0clN0ciArPSBzaXplb2YgTE9HX0dVRVNU X01BUksgLSAxOwotICAgICAgICAgICAgICAgIGlmIChCYXNlNjRfRGVjb2RlKHB0clN0ciwgYmFz ZTY0T3V0LCBCVUZfT1VUX1NJWkUsICZsZW5PdXQpKSB7Ci0gICAgICAgICAgICAgICAgICAgaWYg KGZ3cml0ZShiYXNlNjRPdXQsIDEsIGxlbk91dCwgb3V0ZnApICE9IGxlbk91dCkgewotLS0gCi0y LjUxLjEKLQoKZGlmZiAtLWdpdCBhL2NoYW5nZWxvZyBiL2NoYW5nZWxvZwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzNhZTAxCi0tLSAvZGV2L251bGwKKysrIGIvY2hhbmdl bG9nCkBAIC0wLDAgKzEsMjA0IEBACisqIFRodSBNYXIgMjAgMjAyNSBSaWNoYXJkIFcuTS4gSm9u ZXMgPHJqb25lc0ByZWRoYXQuY29tPiAtIDEyLjQuMC00CistIEJ1bXAgYW5kIHJlYnVpbGQKKwor KiBGcmkgSmFuIDE3IDIwMjUgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRv cmFwcm9qZWN0Lm9yZz4gLSAxMi40LjAtMworLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXBy b2plY3Qub3JnL3dpa2kvRmVkb3JhXzQyX01hc3NfUmVidWlsZAorCisqIFRodSBKdWwgMTggMjAy NCBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAt IDEyLjQuMC0yCistIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9G ZWRvcmFfNDFfTWFzc19SZWJ1aWxkCisKKyogV2VkIEp1biAwNSAyMDI0IEpvaG4gV29sZmUgPGpv aG4ud29sZmVAYnJvYWRjb20uY29tPiAtIDEyLjQuMC0xCistIFBhY2thZ2UgYSBuZXcgdXBzdHJl YW0gdmVyc2lvbiBvZiBvcGVuLXZtLXRvb2xzLTEyLjQuMC0yMzI1OTM0MS4KKyAgLSBBIG51bWJl ciBvZiBDb3Zlcml0eSByZXBvcnRlZCBpc3N1ZXMgaGF2ZSBiZWVuIGFkZHJlc3NlZC4KKworKiBU aHUgSmFuIDI1IDIwMjQgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFw cm9qZWN0Lm9yZz4gLSAxMi4zLjUtMworLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2pl Y3Qub3JnL3dpa2kvRmVkb3JhXzQwX01hc3NfUmVidWlsZAorCisqIFN1biBKYW4gMjEgMjAyNCBG ZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDEy LjMuNS0yCistIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRv cmFfNDBfTWFzc19SZWJ1aWxkCisKKyogV2VkIE5vdiA4IDIwMjMgSm9obiBXb2xmZSA8andvbGZl QHZtd2FyZS5jb20+IC0gMTIuMy41LTEKKy0gUGFja2FnZSBuZXcgdXBzdHJlYW0gdmVyc2lvbiBv ZiBvcGVuLXZtLXRvb2xzLTEyLjMuNS0yMjU0NDA5OS4KKyAgLiBmaXggZm9yIENWRS0yMDIzLTM0 MDU4IC0gYW5vdGhlciBTQU1MIHRva2VuIHNpZ25hdHVyZSBieXBhc3MgdnVsbmVyYWJpbGl0eS4K KyAgLiBmaXggZm9yIENWRS0yMDIzLTM0MDU5IC0gYSBmaWxlIGRlc2NyaXB0b3IgaGlqYWNrIHZ1 bG5lcmFiaWxpdHkgaW4gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZtd2FyZS11 c2VyLXN1aWQtd3JhcHBlci4KKyAgLiBhZGRyZXNzIGh0dHBzOi8vZ2l0aHViLmNvbS92bXdhcmUv b3Blbi12bS10b29scy9pc3N1ZXMvMzEwCistIFJlbW92ZSBDVkUtMjAyMy0zNDA1OC5wYXRjaCBh bmQgQ1ZFLTIwMjMtMzQwNTkucGF0Y2ggYXMgbm8gbG9uZ2VyIG5lZWRlZC4KKworKiBNb24gT2N0 IDMwIDIwMjMgSm9obiBXb2xmZSA8andvbGZlQHZtd2FyZS5jb20+IC0gMTIuMy4wLTMKKy0gQWRk cmVzcyBDVkUtMjAyMy0zNDA1OCAtIEJaIDIyNDY5NjMgLSBTQU1MIHRva2VuIHNpZ25hdHVyZSB0 b2tlbiBieXBhc3MuCistIEFkZHJlc3MgQ1ZFLTIwMjMtMzQwNTkgLSBCWiAyMjQ2OTYyIC0gdm13 YXJlLXVzZXItc3VpZC13cmFwcGVyCisgIGZpbGUgZGVzY3JpcHRvciBoaWphY2sgdnVsbmVyYWJp bGl0eQorKiBUaHUgT2N0IDA1IDIwMjMgUGV0ZXIgUm9iaW5zb24gPHBicm9iaW5zb25AZmVkb3Jh cHJvamVjdC5vcmc+IC0gMTIuMy4wLTIKKy0gVXNlIGZ1c2UzIG9uIG5ldyBSSEVMCisKKyogU2F0 IFNlcCA5IDIwMjMgSm9obiBXb2xmZSA8andvbGZlQHZtd2FyZS5jb20+IC0gMTIuMy4wLTEKKy0g UGFja2FnZSBuZXcgdXBzdHJlYW0gdmVyc2lvbiBvZiBvcGVuLXZtLXRvb2xzLTEyLjMuMC0yMjIz NDg3Mi4KKyAgLSBGaXggZm9yIENWRS0yMDIzLTIwOTAwIC0gYSBTQU1MIHRva2VuIHNpZ25hdHVy ZSBieXBhc3MgdnVsbmVyYWJpbGl0eS4KKyAgLSBGaXggZm9yIENWRS0yMDIzLTIwODY3IC0gYW4g QXV0aGVudGljYXRpb24gQnlwYXNzIHZ1bG5lcmFiaWxpdHkuCisgIC0gTGludXggcXVpZXNjZWQg c25hcHNob3RzIGhhdmUgYmVlbiB1cGRhdGVkIHRvIGF2b2lkIGludGVybWl0dGVudCBoYW5ncwor ICAgIG9mIHRoZSB2bXRvb2xzZCBwcm9jZXNzLgorICAgIC0gRmlsZSBzeXN0ZW1zIHByZWZyb3pl biBieSBjdXN0b20gcXVpZXNjaW5nIHNjcmlwdHMgbXVzdCBiZSBsaXN0ZWQgb24gdGhlCisgICAg ICAiZXhjbHVkZWRGaWxlU3lzdGVtcyIgc2V0dGluZyBpbiB0aGUgInZtYmFja3VwIiBzZWN0aW9u IG9mIHRoZSB0b29scy5jb25mCisgICAgICBmaWxlLgorICAgIC0gQSB0b29scy5jb25mIGNvbmZp Z3VyYXRpb24gc2V0dGluZyBpcyBhdmFpbGFibGUgdG8gdGVtcG9yYWlseSBkaXJlY3QKKyAgICAg IExpbnV4IHF1aWVzY2VkIHNuYXBob3RzIHRvIHJlc3RvcmUgcHJlIG9wZW4tdm0tdG9vbHMgMTIu Mi4wIGJlaGF2aW9yCisgICAgICBvZiBpZ25vcmluZyBmaWxlIHN5c3RlbXMgYWxyZWFkeSBmcm96 ZW4uCisgIC0gQSBudW1iZXIgb2YgQ292ZXJpdHkgcmVwb3J0ZWQgaXNzdWVzIGhhdmUgYmVlbiBh ZGRyZXNzZWQuCisgIC0gQSBudW1iZXIgb2YgR2l0SHViIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0 cyBoYXZlIGJlZW4gaGFuZGxlZC4KKworKiBUaHUgSnVsIDIwIDIwMjMgRmVkb3JhIFJlbGVhc2Ug RW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxMi4xLjUtNAorLSBSZWJ1 aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzM5X01hc3NfUmVi dWlsZAorCisqIFRodSBKYW4gMTkgMjAyMyBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVs ZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDEyLjEuNS0zCistIFJlYnVpbHQgZm9yIGh0dHBzOi8v ZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMzhfTWFzc19SZWJ1aWxkCisKKyogU3VuIEph biAxIDIwMjMgSm9obiBXb2xmZSA8andvbGZlQHZtd2FyZS5jb20+IC0gMTIuMS41LTIKKy0gVXBk YXRlIHRoZSBjb3B5cmlnaHQgZGF0ZSBpbiB0aGUgb3Blbi12bS10b29scy5zcGVjIGZpbGUuCisK KyogU3VuIEphbiAxIDIwMjMgSm9obiBXb2xmZSA8andvbGZlQHZtd2FyZS5jb20+IC0gMTIuMS41 LTEKKy0gUGFja2FnZSBuZXcgdXBzdHJlYW0gdmVyc2lvbiBvZiBvcGVuLXZtLXRvb2xzLTEyLjEu NS0yMDczNTExOS4KKyAgLSBUaGUgZGVwbG95UGtnIHBsdWdpbiBtYXkgcHJlbWF0dXJlbHkgcmVi b290IHRoZSBndWVzdCBWTSBiZWZvcmUgY2xvdWQtaW5pdAorICAgIGhhcyBjb21wbGV0ZWQgdXNl ciBkYXRhIHNldHVwCisgIC0gQSBTSUdTRUdWIG1heSBiZSBlbmNvdW50ZXJlZCB3aGVuIGEgbm9u LXF1aWVzY2luZyBzbmFwc2hvdCB0aW1lcyBvdXQuCisgIC0gQSBudW1iZXIgb2YgQ292ZXJpdHkg cmVwb3J0ZWQgaXNzdWVzIGhhdmUgYmVlbiBhZGRyZXNzZWQuCisKKyogVGh1IFNlcCA4IDIwMjIg Sm9obiBXb2xmZSA8andvbGZlQFZNV0FSRS5DT00+IC0gMTIuMS4wLTEKKy0gUGFja2FnZSBuZXcg dXBzdHJlYW0gdmVyc2lvbiBvcGVuLXZtLXRvb2xzLTEyLjEuMC0yMDIxOTY2NS4KKyAgLiBmaXgg Zm9yIENWRS0yMDIyLTMxNjc2IC0gYSBsb2NhbCBwcml2aWxlZ2UgZXNjYWxhdGlvbiB2dWxuZXJh YmlsaXR5LgorICAuIGFkZHJlc3MgYSBudW1iZXIgb2YgQ292ZXJpdHkgcmVwb3J0ZWQgaXNzdWVz LgorLSBSZW1vdmUgcGF0Y2ggMTIwNS1Qcm9wZXJseS1jaGVjay1hdXRob3JpemF0aW9uLW9uLWlu Y29taW5nLWd1ZXN0T3BzLXJlLnBhdGNoCisgIGFzIG5vIGxvbmdlciBuZWVkZWQuCisKKyogU3Vu IFNlcCA0IDIwMjIgSm9obiBXb2xmZSA8andvbGZlQHZtd2FyZS5jb20+IC0gMTIuMC41LTMKKy0g QWRkIHBhdGNoIDEyMDUtUHJvcGVybHktY2hlY2stYXV0aG9yaXphdGlvbi1vbi1pbmNvbWluZy1n dWVzdE9wcy1yZS5wYXRjaAorICB0byBmaXggQ1ZFLTIwMjItMzE2NzYgaW4gb3Blbi12bS10b29s cyAxMi4wLjUgdHJhY2tlZCBpbiBQUiAxMjA5NzYuCistIENvcnJlY3QgYnVpbGQgcmVxdWlyZW1l bnRzIC0gcmVwbGFjZSBzeXN0ZW1kLXJwbS1tYWNyb3Mgd2l0aCBzeXN0ZW1kX3VkZXYuCisKKyog RnJpIEp1bCAyMiAyMDIyIEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3Jh cHJvamVjdC5vcmc+IC0gMTIuMC41LTIKKy0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9q ZWN0Lm9yZy93aWtpL0ZlZG9yYV8zN19NYXNzX1JlYnVpbGQKKworKiBNb24gTWF5IDMwIDIwMjIg Sm9obiBXb2xmZSA8andvbGZlQHZtd2FyZS5jb20+IC0gMTIuMC41LTEKKy0gUGFja2FnZSBuZXcg dXBzdHJlYW0gdmVyc2lvbiBvcGVuLXZtLXRvb2xzLTEyLjAuNS0xOTcxNjYxNy4KKyAtIE1haW50 ZW5hbmNlIHJlbGVhc2UgYWRkcmVzc2luZyBzb21lIHBvdGVudGlhbCBGVEJGUyBpc3N1ZXMuCist IFJlbW92ZSBhc3luY3NvY2tldC5wYXRjaCBhcyBubyBsb25nZXIgbmVlZGVkLgorCisqIE1vbiBN YXkgOSAyMDIyIEpvaG4gV29sZmUgPGp3b2xmZUB2bXdhcmUuY29tPiAtIDEyLjAuMC0xCistIFBh Y2thZ2UgbmV3IHVwc3RyZWFtIHZlcnNpb24gb3Blbi12bS10b29scy0xMi4wLjAtMTkzNDU2NTUu CistIEVuYWJsZSBidWlsZCBvZiB0aGUgbmV3IHNhbHQtbWluaW9uIHBsdWdpbiBwYWNrYWdlLgor LSBEZWZlcnJpbmcgZW5hYmxlbWVudCBvZiBuZXcgY29udGFpbmVySW5mbyBwbHVnaW4gdW50aWwg YSBsYXRlciByZXZpc2lvbi4KKy0gQnVpbGQgd2l0aCBmdXNlMyBvbiBGZWRvcmEuCisKKyogVGh1 IEZlYiAyNCAyMDIyIEpvaG4gV29sZmUgPGp3b2xmZUB2bXdhcmUuY29tPiAtIDExLjMuNS0xCist IFBhY2thZ2UgbmV3IHVwc3RyZWFtIHZlcnNpb24gb3Blbi12bS10b29scy0xMS4zLjUtMTg1NTc3 OTQuCisKKyogV2VkIEZlYiA5IDIwMjIgSm9obiBXb2xmZSA8andvbGZlQHZtd2FyZS5jb20+IC0g MTEuMy4wLTYKKy0gUmVmYWN0b3JlZCBhc3luY3NvY2tldC5jIHBhdGNoIHRvIHVzZSBzaXplX3Qg c2l6ZSBhbmQgaW5kZXggdmFyaWFibGVzLgorCisqIFR1ZSBGZWIgMSAyMDIyIEpvaG4gV29sZmUg PGp3b2xmZUB2bXdhcmUuY29tPiAtIDExLjMuMC01CistIEFkZHJlc3MgKGZpeCkgc3RyaW5ncyBv ciBhcnJheSBib3VuZHMgd2FybmluZ3MgZnJvbSBHQ0MgMTIuMC54LgorCisqIFRodSBKYW4gMjAg MjAyMiBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3Jn PiAtIDExLjMuMC00CistIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lr aS9GZWRvcmFfMzZfTWFzc19SZWJ1aWxkCisKKyogVHVlIFNlcCAxNCAyMDIxIFNhaGFuYSBQcmFz YWQgPHNhaGFuYUByZWRoYXQuY29tPiAtIDExLjMuMC0zCistIFJlYnVpbHQgd2l0aCBPcGVuU1NM IDMuMC4wCisKKyogVGh1IEp1bCAyMiAyMDIxIEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxy ZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gMTEuMy4wLTIKKy0gUmVidWlsdCBmb3IgaHR0cHM6 Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8zNV9NYXNzX1JlYnVpbGQKKworKiBUaHUg SnVsIDE1IDIwMjEgUmF2aW5kcmEgS3VtYXIgPHJhdmluZHJha3VtYXJAdm13YXJlLmNvbT4gLSAx MS4zLjAtMQorLSBQYWNrYWdlIG5ldyB1cHN0cmVhbSB2ZXJzaW9uIG9wZW4tdm0tdG9vbHMtMTEu My4wLTE4MDkwNTU4LgorLSBBZGQgdm13YXJlLWFsaWFzLWltcG9ydCwgdm13Z2Z4Y3RybCwgbGli Z2RwLnNvLCBsaWJndWVzdFN0b3JlLnNvCisgIGFuZCBsaWJndWVzdFN0b3JlQ2xpZW50LnNvLiou CistIFJlbW92ZSBvcGVuLXZtLXRvb2xzLWZpeC1rbXMtYXV0b2RldGVjdGlvbi5wYXRjaCwKKyAg b3Blbi12bS10b29scy1nY2MxMS5wYXRjaCBhbmQgb3Blbi12bS10b29scy1nZGstZ2xpYi5wYXRj aAorICBhcyBubyBsb25nZXIgbmVlZGVkLgorCisqIFR1ZSBKdW4gMDEgMjAyMSBTaW1vbmUgQ2Fy b25uaSA8bmVnYXRpdm8xN0BnbWFpbC5jb20+IC0gMTEuMi41LTkKKy0gQmFja3BvcnQgcGF0Y2gg Zm9yIEtNUyBhdXRvZGV0ZWN0aW9uLgorCisqIFR1ZSBKdW4gMDEgMjAyMSBTaW1vbmUgQ2Fyb25u aSA8bmVnYXRpdm8xN0BnbWFpbC5jb20+IC0gMTEuMi41LTgKKy0gVHJpbSBjaGFuZ2Vsb2cuCist IEZpeCBsaWJkcm0vdWRldiBidWlsZCByZXF1aXJlbWVudC4KKworKiBUdWUgSnVuIDAxIDIwMjEg U2ltb25lIENhcm9ubmkgPG5lZ2F0aXZvMTdAZ21haWwuY29tPiAtIDExLjIuNS03CistIEZpeCBi dWlsZCBvbiBDZW50T1MvUkhFTCA3LgorLSBBbGxvdyBidWlsZGluZyBvbiBhYXJjaDY0IGZvciBD ZW50T1MvUkhFTCA4KyBhbmQgRmVkb3JhLgorLSBDbGVhbiB1cCBTUEVDIGZpbGUgKGNvbmRpdGlv bmFscywgYnVpbGQgcmVxdWlyZW1lbnRzLCBzY3JpcHRsZXRzLCBmb3JtYXR0aW5nKS4KKworKiBN b24gQXByIDA1IDIwMjEgUmF2aW5kcmEgS3VtYXIgPHJhdmluZHJha3VtYXJAdm13YXJlLmNvbT4g LSAxMS4yLjUtNgorLSBBZGRlZCBtaXNzaW5nIGVzY2FwZSBjaGFyIGluIHJ1bi12bWJsb2NrXFx4 MmRmdXNlLm1vdW50IHNlcnZpY2UgbmFtZS4KKy0gRW5hYmxlZCBydW4tdm1ibG9ja1xceDJkZnVz ZS5tb3VudCBzZXJ2aWNlIGR1cmluZyBwb3N0LWluc3RhbGwuCistIE1vdmVkIHJ1bi12bWJsb2Nr XHgyZGZ1c2UubW91bnQgc2VydmljZSB1bml0IHRvIGRlc2t0b3AgcGFja2FnZS4KKworKiBGcmkg TWFyIDE5IDIwMjEgUmF2aW5kcmEgS3VtYXIgPHJhdmluZHJha3VtYXJAdm13YXJlLmNvbT4gLSAx MS4yLjUtNQorLSBBZGRlZCBvcGVuLXZtLXRvb2xzLWdkay1nbGliLnBhdGNoIHRvIGZpeCBSSEJa IzE5Mzk3MTguCisKKyogVHVlIE1hciAxNiAyMDIxIE5lYWwgR29tcGEgPG5nb21wYTEzQGdtYWls LmNvbT4gLSAxMS4yLjUtNAorLSBBZGQgbWlzc2luZyBCUnMKKy0gQ2xlYW4gdXAgY29uZGl0aW9u YWxzIHRvIGJ1aWxkIGNvcnJlY3RseSB3aXRoIEVMOCsKKy0gU2ltcGxpZnkgc3lzdGVtZCBzY3Jp cHRsZXRzCisKKyogVHVlIE1hciAwMiAyMDIxIFpiaWduaWV3IErEmWRyemVqZXdza2ktU3ptZWsg PHpieXN6ZWtAaW4ud2F3LnBsPiAtIDExLjIuNS0zCistIFJlYnVpbHQgZm9yIHVwZGF0ZWQgc3lz dGVtZC1ycG0tbWFjcm9zCisgIFNlZSBodHRwczovL3BhZ3VyZS5pby9mZXNjby9pc3N1ZS8yNTgz LgorCisqIFR1ZSBKYW4gMjYgMjAyMSBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5n QGZlZG9yYXByb2plY3Qub3JnPiAtIDExLjIuNS0yCistIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVk b3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMzRfTWFzc19SZWJ1aWxkCisKKyogRnJpIEphbiAx NSAyMDIxIFJhdmluZHJhIEt1bWFyIDxyYXZpbmRyYWt1bWFyQHZtd2FyZS5jb20+IC0gMTEuMi41 LTEKKy0gUGFja2FnZSBuZXcgdXBzdHJlYW0gdmVyc2lvbiBvcGVuLXZtLXRvb2xzLTExLjIuNS0x NzMzNzY3NC4KKy0gbGliZG5ldCBkZXBlbmRlbmN5IHdhcyByZW1vdmVkIGluIG9wZW4tdm0tdG9v bHMgMTEuMC4wLiBTbywKKyAgcmVtb3ZlZCB0aGUgc3RhbGUgQnVpbGRSZXF1aXJlcyBmb3IgbGli ZG5ldC4KKworKiBUaHUgSmFuIDE0IDIwMjEgUmljaGFyZCBXLk0uIEpvbmVzIDxyam9uZXNAcmVk aGF0LmNvbT4gLSAxMS4yLjAtMgorLSBCdW1wIGFuZCByZWJ1aWxkIGFnYWluc3QgbGliZG5ldCAx LjE0IChSSEJaIzE5MTU4MzgpLgorCisqIEZyaSBOb3YgMDYgMjAyMCBSYXZpbmRyYSBLdW1hciA8 cmF2aW5kcmFrdW1hckB2bXdhcmUuY29tPiAtIDExLjIuMC0xCistIFBhY2thZ2UgbmV3IHVwc3Ry ZWFtIHZlcnNpb24gb3Blbi12bS10b29scy0xMS4yLjAtMTY5MzgxMTMuCisKKyogRnJpIE9jdCAz MCAyMDIwIEplZmYgTGF3IDxsYXdAcmVkaGF0LmNvbT4gLSAxMS4xLjUtMgorLSBGaXggaW5jb3Jy ZWN0IHZvbGF0aWxlIGV4cG9zZWQgYnkgZ2NjLTExCisKKyogVHVlIFNlcCAwOCAyMDIwIFJhdmlu ZHJhIEt1bWFyIDxyYXZpbmRyYWt1bWFyQHZtd2FyZS5jb20+IC0gMTEuMS41LTEKKy0gUGFja2Fn ZSBuZXcgdXBzdHJlYW0gdmVyc2lvbiBvcGVuLXZtLXRvb2xzLTExLjEuNS0xNjcyNDQ2NC4KKy0g UmVtb3ZlZCBnY2MxMC13YXJuaW5nLnBhdGNoIGFuZCBzZG1wLWZpeGVzLnBhdGNoIChubyBsb25n ZXIgbmVlZGVkKS4KKworKiBUdWUgSnVsIDI4IDIwMjAgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJp bmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxMS4xLjAtNAorLSBSZWJ1aWx0IGZvciBo dHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzMzX01hc3NfUmVidWlsZAorCisq IFRodSBKdWwgMDkgMjAyMCBNZXJsaW4gTWF0aGVzaXVzIDxtbWF0aGVzaUByZWRoYXQuY29tPiAt IDExLjEuMC0zCistIENvbmRpdGlvbmFsIGZpeGVzIHRvIGJ1aWxkIGZvciBFTE4KKworKiBTdW4g SnVuIDIxIDIwMjAgUmF2aW5kcmEgS3VtYXIgPHJhdmluZHJha3VtYXJAdm13YXJlLmNvbT4gLSAx MS4xLjAtMgorLSBBZGRlZCBzZG1wLWZpeGVzLnBhdGNoIGZyb20gdXBzdHJlYW0gdG8gcmVtb3Zl IG5ldC10b29scyBkZXBlbmRlbmN5CisgIGFuZCBjb3VwbGUgb2YgaW1wb3J0YW50IGZpeGVzCisK KyogTW9uIE1heSAyNSAyMDIwIFJhdmluZHJhIEt1bWFyIDxyYXZpbmRyYWt1bWFyQHZtd2FyZS5j b20+IC0gMTEuMS4wLTEKKy0gUGFja2FnZSBuZXcgdXBzdHJlYW0gdmVyc2lvbiBvcGVuLXZtLXRv b2xzLTExLjEuMC0xNjAzNjU0Ni4KKy0gQWRkZWQgbmV3IG9wZW4tdm0tdG9vbHMtc2RtcCBwYWNr YWdlLgorLSBXb3JrYXJvdW5kIGZvciB2bS1zdXBwb3J0IHNjcmlwdCBwYXRoIGlzIG5vIGxvbmdl ciBuZWVkZWQuCistIEFkZGVkIG1pc3NpbmcgZGVwZW5kZW5jaWVzIGZvciB2bS1zdXBwb3J0IHNj cmlwdC4KKy0gVXBkYXRlZCBnY2MxMC13YXJuaW5nLnBhdGNoLgorLSBSZW1vdmVkIGdjYzktc3Rh dGljLWlubGluZS5wYXRjaCBhbmQgZGlza2luZm8tbG9nLXNwZXcucGF0Y2ggdGhhdAorICBhcmUg bm8gbG9uZ2VyIG5lZWRlZC4KKworKiBTdW4gTWF5IDE3IDIwMjAgUmF2aW5kcmEgS3VtYXIgPHJh dmluZHJha3VtYXJAdm13YXJlLmNvbT4gLSAxMS4wLjUtNAorLSBVcGRhdGVkIFBBTSBjb25maWd1 cmF0aW9uIGZpbGUgdG8gZm9sbG93IGNvbmZpZ3VyZWQgYXV0aG4gc2NoZW1lLgorCisqIFR1ZSBN YXIgMjQgMjAyMCBSYXZpbmRyYSBLdW1hciA8cmF2aW5kcmFrdW1hckB2bXdhcmUuY29tPiAtIDEx LjAuNS0zCistIFVzZSAvc2Jpbi9sZGNvbmZpZyBvbiBvbGRlciB0aGFuIEZlZG9yYSAyOCBhbmQg UkhFTCA4IHBsYXRmb3Jtcy4KKworKiBGcmkgRmViIDA3IDIwMjAgUmF2aW5kcmEgS3VtYXIgPHJh dmluZHJha3VtYXJAdm13YXJlLmNvbT4gLSAxMS4wLjUtMgorLSBBZGRlZCBwYXRjaCBkaXNraW5m by1sb2ctc3Bldy5wYXRjaC4KKworKiBUdWUgRmViIDA0IDIwMjAgUmF2aW5kcmEgS3VtYXIgPHJh dmluZHJha3VtYXJAdm13YXJlLmNvbT4gLSAxMS4wLjUtMQorLSBQYWNrYWdlIG5ldyB1cHN0cmVh bSB2ZXJzaW9uIG9wZW4tdm0tdG9vbHMtMTEuMC41LTE1Mzg5NTkyLgorLSBSZW1vdmVkIHZpeC1t ZW1sZWFrLnBhdGNoIHdoaWNoIGlzIG5vIGxvbmdlciBuZWVkZWQuCisKKyogVHVlIEZlYiAwNCAy MDIwIFJhdmluZHJhIEt1bWFyIDxyYXZpbmRyYWt1bWFyQHZtd2FyZS5jb20+IC0gMTEuMC4wLTYK Ky0gQWRkZWQgZ2NjMTAtd2FybmluZy5wYXRjaCBmb3IgZml4aW5nIGNvbXBpbGF0aW9uIGlzc3Vl cy4KKworKiBXZWQgSmFuIDI5IDIwMjAgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVu Z0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxMS4wLjAtNQorLSBSZWJ1aWx0IGZvciBodHRwczovL2Zl ZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzMyX01hc3NfUmVidWlsZAoKZGlmZiAtLWdpdCBh L2dhdGluZy55YW1sIGIvZ2F0aW5nLnlhbWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDliOTM4OGMuLjAwMDAwMDAKLS0tIGEvZ2F0aW5nLnlhbWwKKysrIC9kZXYvbnVsbApAQCAtMSw2 ICswLDAgQEAKLS0tLSAhUG9saWN5Ci1wcm9kdWN0X3ZlcnNpb25zOgotICAtIHJoZWwtMTAKLWRl Y2lzaW9uX2NvbnRleHQ6IG9zY2lfY29tcG9zZV9nYXRlCi1ydWxlczoKLSAgLSAhUGFzc2luZ1Rl c3RDYXNlUnVsZSB7dGVzdF9jYXNlX25hbWU6IDNyZC1lc3hpLXg4Nl82NC5icmV3LWJ1aWxkLnRp ZXIxLmZ1bmN0aW9uYWx9CgpkaWZmIC0tZ2l0IGEvb3Blbi12bS10b29scy1nY2MxNi5wYXRjaCBi L29wZW4tdm0tdG9vbHMtZ2NjMTYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uYzk3ZDFiZQotLS0gL2Rldi9udWxsCisrKyBiL29wZW4tdm0tdG9vbHMtZ2NjMTYucGF0 Y2gKQEAgLTAsMCArMSwxMTkgQEAKK2RpZmYgLU5hdXIgb3Blbi12bS10b29scy0xMy4xLjAtMjUy MTg4ODUub2xkL2xpYi9oZ2ZzL2hnZnNFc2NhcGUuYyBvcGVuLXZtLXRvb2xzLTEzLjEuMC0yNTIx ODg4NS9saWIvaGdmcy9oZ2ZzRXNjYXBlLmMKKy0tLSBvcGVuLXZtLXRvb2xzLTEzLjEuMC0yNTIx ODg4NS5vbGQvbGliL2hnZnMvaGdmc0VzY2FwZS5jCTIwMjYtMDUtMjAgMDk6Mjk6MjIuNzg1OTIy NTkwICswMjAwCisrKysgb3Blbi12bS10b29scy0xMy4xLjAtMjUyMTg4ODUvbGliL2hnZnMvaGdm c0VzY2FwZS5jCTIwMjYtMDUtMjAgMDk6Mjk6MjkuODgyOTMxMDcwICswMjAwCitAQCAtMTk4LDcg KzE5OCw3IEBACisgICAgICAgaWYgKG91dHB1dFNwYWNlIDwgMikgeworICAgICAgICAgIHJldHVy biBGQUxTRTsKKyAgICAgICB9CistICAgICAgaWxsZWdhbCA9IHN0cmNocihIR0ZTX0lMTEVHQUxf Q0hBUlMsIGJ1ZkluW2VzY2FwZUNvbnRleHQtPnByb2Nlc3NlZE9mZnNldF0pOworKyAgICAgIGls bGVnYWwgPSAoY2hhciAqKXN0cmNocihIR0ZTX0lMTEVHQUxfQ0hBUlMsIGJ1ZkluW2VzY2FwZUNv bnRleHQtPnByb2Nlc3NlZE9mZnNldF0pOworICAgICAgIGVzY2FwZUNvbnRleHQtPnByb2Nlc3Nl ZE9mZnNldCsrOyAgLy8gU2tpcCBpbGxlZ2FsIGlucHV0IGNoYXJhY3RlcgorICAgICAgIEFTU0VS VChpbGxlZ2FsICE9IE5VTEwpOworICAgICAgIGVzY2FwZUNvbnRleHQtPm91dHB1dEJ1ZmZlcltl c2NhcGVDb250ZXh0LT5vdXRwdXRPZmZzZXRdID0KK0BAIC01ODMsMTIgKzU4MywxMiBAQAorICAg ICAgICAgIGlmIChidWZJbltvZmZzZXQgLSAyXSA9PSBIR0ZTX0VTQ0FQRV9TVUJTVElUVUVfQ0hB UikgeworICAgICAgICAgICAgIHJldHVybiBUUlVFOworICAgICAgICAgIH0KKy0gICAgICAgICBz dWJzdGl0dXRlID0gc3RyY2hyKEhHRlNfU1VCU1RJVFVURV9DSEFSUywgYnVmSW5bb2Zmc2V0IC0g Ml0pOworKyAgICAgICAgIHN1YnN0aXR1dGUgPSAoY2hhciAqKXN0cmNocihIR0ZTX1NVQlNUSVRV VEVfQ0hBUlMsIGJ1ZkluW29mZnNldCAtIDJdKTsKKyAgICAgICAgICBpZiAoc3Vic3RpdHV0ZSAh PSBOVUxMKSB7CisgICAgICAgICAgICAgcmV0dXJuIFRSVUU7CisgICAgICAgICAgfQorICAgICAg IH0KKy0gICAgICBzdWJzdGl0dXRlID0gc3RyY2hyKEhHRlNfU1VCU1RJVFVURV9DSEFSUywgYnVm SW5bb2Zmc2V0IC0gMV0pOworKyAgICAgIHN1YnN0aXR1dGUgPSAoY2hhciAqKXN0cmNocihIR0ZT X1NVQlNUSVRVVEVfQ0hBUlMsIGJ1ZkluW29mZnNldCAtIDFdKTsKKyAgICAgICBpZiAoc3Vic3Rp dHV0ZSAhPSBOVUxMKSB7CisgICAgICAgICAgcmV0dXJuIFRSVUU7CisgICAgICAgfQorQEAgLTg4 Nyw3ICs4ODcsNyBAQAorICAgICAgIHNpemVfdCBvZmZzZXQgPSBlc2NhcGVQb2ludGVyIC0gYnVm SW47CisgCisgICAgICAgaWYgKEhnZnNJc0VzY2FwZVNlcXVlbmNlKGJ1ZkluLCBvZmZzZXQsIHNp emVJbikpIHsKKy0gICAgICAgICBjaGFyKiBzdWJzdGl0dXRlID0gc3RyY2hyKEhHRlNfU1VCU1RJ VFVURV9DSEFSUywgYnVmSW5bb2Zmc2V0IC0gMV0pOworKyAgICAgICAgIGNoYXIqIHN1YnN0aXR1 dGUgPSAoY2hhciAqKXN0cmNocihIR0ZTX1NVQlNUSVRVVEVfQ0hBUlMsIGJ1ZkluW29mZnNldCAt IDFdKTsKKyAgICAgICAgICBpZiAoc3Vic3RpdHV0ZSAhPSBOVUxMKSB7CisgICAgICAgICAgICAg YnVmSW5bb2Zmc2V0IC0gMV0gPSBIR0ZTX0lMTEVHQUxfQ0hBUlNbc3Vic3RpdHV0ZSAtIEhHRlNf U1VCU1RJVFVURV9DSEFSU107CisgICAgICAgICAgfSBlbHNlIGlmIChidWZJbltvZmZzZXQgLSAx XSA9PSBIR0ZTX0VTQ0FQRV9TVUJTVElUVUVfQ0hBUikgeworZGlmZiAtTmF1ciBvcGVuLXZtLXRv b2xzLTEzLjEuMC0yNTIxODg4NS5vbGQvbGliL2hnZnNTZXJ2ZXIvaGdmc1NlcnZlckxpbnV4LmMg b3Blbi12bS10b29scy0xMy4xLjAtMjUyMTg4ODUvbGliL2hnZnNTZXJ2ZXIvaGdmc1NlcnZlckxp bnV4LmMKKy0tLSBvcGVuLXZtLXRvb2xzLTEzLjEuMC0yNTIxODg4NS5vbGQvbGliL2hnZnNTZXJ2 ZXIvaGdmc1NlcnZlckxpbnV4LmMJMjAyNi0wNS0yMCAwOToyOToyMi43ODYyMTM5MzggKzAyMDAK KysrKyBvcGVuLXZtLXRvb2xzLTEzLjEuMC0yNTIxODg4NS9saWIvaGdmc1NlcnZlci9oZ2ZzU2Vy dmVyTGludXguYwkyMDI2LTA1LTIwIDA5OjI5OjI5Ljg4MzU2MDMyNiArMDIwMAorQEAgLTEzNjks NyArMTM2OSw3IEBACisgICAgQVNTRVJUKGZpbGVOYW1lKTsKKyAgICBBU1NFUlQoYXR0cik7Cisg CistICAgYmFzZU5hbWUgPSBzdHJyY2hyKGZpbGVOYW1lLCBESVJTRVBDKTsKKysgICBiYXNlTmFt ZSA9IChjaGFyICopc3RycmNocihmaWxlTmFtZSwgRElSU0VQQyk7CisgCisgICAgaWYgKChiYXNl TmFtZSAhPSBOVUxMKSAmJgorICAgICAgICAoYmFzZU5hbWVbMV0gPT0gJy4nKSAmJgorZGlmZiAt TmF1ciBvcGVuLXZtLXRvb2xzLTEzLjEuMC0yNTIxODg4NS5vbGQvbGliL21pc2Mvc3RydXRpbC5j IG9wZW4tdm0tdG9vbHMtMTMuMS4wLTI1MjE4ODg1L2xpYi9taXNjL3N0cnV0aWwuYworLS0tIG9w ZW4tdm0tdG9vbHMtMTMuMS4wLTI1MjE4ODg1Lm9sZC9saWIvbWlzYy9zdHJ1dGlsLmMJMjAyNi0w NS0yMCAwOToyOToyMi43ODcxOTgyMTMgKzAyMDAKKysrKyBvcGVuLXZtLXRvb2xzLTEzLjEuMC0y NTIxODg4NS9saWIvbWlzYy9zdHJ1dGlsLmMJMjAyNi0wNS0yMCAwOToyOToyOS44ODQ0NzUyMzAg KzAyMDAKK0BAIC0xNDY3LDcgKzE0NjcsNyBAQAorICAgICBsZW5XaXRoID0gc3RybGVuKHdpdGgp OworIAorICAgICBjdXJyZW50ID0gb3JpZzsKKy0gICAgd2hpbGUgKCh0bXAgPSBzdHJzdHIoY3Vy cmVudCwgd2hhdCkpICE9IE5VTEwpIHsKKysgICAgd2hpbGUgKCh0bXAgPSAoY2hhciAqKXN0cnN0 cihjdXJyZW50LCB3aGF0KSkgIT0gTlVMTCkgeworICAgICAgICBjdXJyZW50ID0gdG1wICsgbGVu V2hhdDsKKyAgICAgICAgKytvY2N1cnJlbmNlczsKKyAgICAgfQorQEAgLTE3MDUsNyArMTcwNSw3 IEBACisgICAgZG8geworICAgICAgIGludCB0b2tlbkxlbjsKKyAKKy0gICAgICBmb3VuZERlbGlt ID0gc3RyY2hyKGxpc3QsIGRlbGltKTsKKysgICAgICBmb3VuZERlbGltID0gKGNoYXIgKilzdHJj aHIobGlzdCwgZGVsaW0pOworICAgICAgIGlmIChmb3VuZERlbGltID09IE5VTEwpIHsgLy8gZWl0 aGVyIHNpbmdsZSBvciBsYXN0IGVsZW1lbnQKKyAgICAgICAgICB0b2tlbkxlbiA9IHN0cmxlbihs aXN0KTsKKyAgICAgICB9IGVsc2UgeyAvLyAhIGxhc3QgZWxlbWVudAorZGlmZiAtTmF1ciBvcGVu LXZtLXRvb2xzLTEzLjEuMC0yNTIxODg4NS5vbGQvbGliL25pY0luZm8vbmljSW5mb1Bvc2l4LmMg b3Blbi12bS10b29scy0xMy4xLjAtMjUyMTg4ODUvbGliL25pY0luZm8vbmljSW5mb1Bvc2l4LmMK Ky0tLSBvcGVuLXZtLXRvb2xzLTEzLjEuMC0yNTIxODg4NS5vbGQvbGliL25pY0luZm8vbmljSW5m b1Bvc2l4LmMJMjAyNi0wNS0yMCAwOToyOToyMi43ODk2MjYxMzggKzAyMDAKKysrKyBvcGVuLXZt LXRvb2xzLTEzLjEuMC0yNTIxODg4NS9saWIvbmljSW5mby9uaWNJbmZvUG9zaXguYwkyMDI2LTA1 LTIwIDA5OjI5OjI5Ljg4NDg4MzI3OCArMDIwMAorQEAgLTI2Niw3ICsyNjYsNyBAQAorICAgIGNo YXIgKnA7CisgICAgc2l6ZV90IG47CisgCistICAgaWYgKChwID0gc3RyY2hyKGxhYmVsLCAnOicp KSAhPSBOVUxMKSB7CisrICAgaWYgKChwID0gKGNoYXIgKilzdHJjaHIobGFiZWwsICc6JykpICE9 IE5VTEwpIHsKKyAgICAgICBuID0gcCAtIGxhYmVsOworICAgIH0gZWxzZSB7CisgICAgICAgbiA9 IHN0cmxlbihsYWJlbCk7CitkaWZmIC1OYXVyIG9wZW4tdm0tdG9vbHMtMTMuMS4wLTI1MjE4ODg1 Lm9sZC9saWIvcnBjQ2hhbm5lbC9nbGliX3N0dWJzLmMgb3Blbi12bS10b29scy0xMy4xLjAtMjUy MTg4ODUvbGliL3JwY0NoYW5uZWwvZ2xpYl9zdHVicy5jCistLS0gb3Blbi12bS10b29scy0xMy4x LjAtMjUyMTg4ODUub2xkL2xpYi9ycGNDaGFubmVsL2dsaWJfc3R1YnMuYwkyMDI2LTA1LTIwIDA5 OjI5OjIyLjc4Mjk3NTYxNyArMDIwMAorKysrIG9wZW4tdm0tdG9vbHMtMTMuMS4wLTI1MjE4ODg1 L2xpYi9ycGNDaGFubmVsL2dsaWJfc3R1YnMuYwkyMDI2LTA1LTIwIDA5OjI5OjI5Ljg4NTMwMTIy NiArMDIwMAorQEAgLTMzLDYgKzMzLDEwIEBACisgI2Vycm9yICJUaGlzIGZpbGUgc2hvdWxkIGJl IGNvbXBpbGVkIGZvciBSUENJLW9ubHkgY2hhbm5lbCEiCisgI2VuZGlmCisgCisrI3VuZGVmIGdf bWFsbG9jMAorKyN1bmRlZiBnX21hbGxvYzBfbgorKyN1bmRlZiBnX2ZyZWUKKysKKyB2b2lkICpn X21hbGxvYzAoc2l6ZV90IHMpIHsgcmV0dXJuIFV0aWxfU2FmZUNhbGxvYygxLCBzKTsgfQorIHZv aWQgKmdfbWFsbG9jMF9uKHNpemVfdCBuLCBzaXplX3QgcykgeyByZXR1cm4gVXRpbF9TYWZlQ2Fs bG9jKG4sIHMpOyB9Cisgdm9pZCBnX2ZyZWUodm9pZCAqcCkgeyBmcmVlKHApOyB9CitkaWZmIC1O YXVyIG9wZW4tdm0tdG9vbHMtMTMuMS4wLTI1MjE4ODg1Lm9sZC9saWJ2bXRvb2xzL2kxOG4uYyBv cGVuLXZtLXRvb2xzLTEzLjEuMC0yNTIxODg4NS9saWJ2bXRvb2xzL2kxOG4uYworLS0tIG9wZW4t dm0tdG9vbHMtMTMuMS4wLTI1MjE4ODg1Lm9sZC9saWJ2bXRvb2xzL2kxOG4uYwkyMDI2LTA1LTIw IDA5OjI5OjIyLjgwNTE2NDAxNiArMDIwMAorKysrIG9wZW4tdm0tdG9vbHMtMTMuMS4wLTI1MjE4 ODg1L2xpYnZtdG9vbHMvaTE4bi5jCTIwMjYtMDUtMjAgMDk6Mjk6MjkuODg1NDMwMjE5ICswMjAw CitAQCAtNzExLDcgKzcxMSw3IEBACisgICAgICAgICogSWYgd2UgY291bGRuJ3QgZmluZCB0aGUg Y2F0YWxvZyBmaWxlIGZvciB0aGUgdXNlcidzIGxhbmd1YWdlLCBzZWUgaWYKKyAgICAgICAgKiB3 ZSBjYW4gZmluZCBhIG1vcmUgZ2VuZXJpYyBsYW5ndWFnZSAoZS5nLiwgZm9yICJlbl9VUyIsIGFs c28gdHJ5ICJlbiIpLgorICAgICAgICAqLworLSAgICAgIGNoYXIgKnNlcCA9IFN0cl9TdHJyY2hy KGxhbmcsICdfJyk7CisrICAgICAgY2hhciAqc2VwID0gKGNoYXIgKilTdHJfU3RycmNocihsYW5n LCAnXycpOworICAgICAgIGlmIChzZXAgIT0gTlVMTCkgeworICAgICAgICAgIGlmICh1c3JsYW5n ID09IE5VTEwpIHsKKyAgICAgICAgICAgICB1c3JsYW5nID0gVXRpbF9TYWZlU3RyZHVwKGxhbmcp OworZGlmZiAtTmF1ciBvcGVuLXZtLXRvb2xzLTEzLjEuMC0yNTIxODg4NS5vbGQvc2VydmljZXMv cGx1Z2lucy92aXgvdml4VG9vbHMuYyBvcGVuLXZtLXRvb2xzLTEzLjEuMC0yNTIxODg4NS9zZXJ2 aWNlcy9wbHVnaW5zL3ZpeC92aXhUb29scy5jCistLS0gb3Blbi12bS10b29scy0xMy4xLjAtMjUy MTg4ODUub2xkL3NlcnZpY2VzL3BsdWdpbnMvdml4L3ZpeFRvb2xzLmMJMjAyNi0wNS0yMCAwOToy OToyMi44MDI5NTI4NTkgKzAyMDAKKysrKyBvcGVuLXZtLXRvb2xzLTEzLjEuMC0yNTIxODg4NS9z ZXJ2aWNlcy9wbHVnaW5zL3ZpeC92aXhUb29scy5jCTIwMjYtMDUtMjAgMDk6Mjk6MjkuODg1OTAz NjUxICswMjAwCitAQCAtOTI4LDcgKzkyOCw3IEBACisgICAgICAgY2hhciAqd2hlcmVUb1NwbGl0 OworICAgICAgIHNpemVfdCBuYW1lTGVuOworIAorLSAgICAgIHdoZXJlVG9TcGxpdCA9IHN0cmNo cigqZW52cCwgJz0nKTsKKysgICAgICB3aGVyZVRvU3BsaXQgPSAoY2hhciAqKXN0cmNocigqZW52 cCwgJz0nKTsKKyAgICAgICBpZiAoTlVMTCA9PSB3aGVyZVRvU3BsaXQpIHsKKyAgICAgICAgICAv KiBPdXIgY29kZSBnZW5lcmF0ZWQgdGhpcyBsaXN0LCBzbyB0aGlzIHNob3VsZG4ndCBoYXBwZW4u ICovCisgICAgICAgICAgQVNTRVJUKDApOwoKZGlmZiAtLWdpdCBhL29wZW4tdm0tdG9vbHMtb3Bl bnNzbDQucGF0Y2ggYi9vcGVuLXZtLXRvb2xzLW9wZW5zc2w0LnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1NzRmZWEKLS0tIC9kZXYvbnVsbAorKysgYi9vcGVuLXZt LXRvb2xzLW9wZW5zc2w0LnBhdGNoCkBAIC0wLDAgKzEsMzkgQEAKK2RpZmYgLS1naXQgYS92Z2F1 dGgvY29tbW9uL2NlcnR2ZXJpZnkuYyBiL3ZnYXV0aC9jb21tb24vY2VydHZlcmlmeS5jCitpbmRl eCA4NDVmNTliLi5lYzVmYWY3IDEwMDY0NAorLS0tIGEvdmdhdXRoL2NvbW1vbi9jZXJ0dmVyaWZ5 LmMKKysrKyBiL3ZnYXV0aC9jb21tb24vY2VydHZlcmlmeS5jCitAQCAtNzkzLDcgKzc5Myw3IEBA IENlcnRWZXJpZnlfQ2hlY2tTaWduYXR1cmVVc2luZ0NlcnQoVkdBdXRoSGFzaEFsZyBoYXNoLAor IHsKKyAgICBWR0F1dGhFcnJvciBlcnI7CisgICAgWDUwOSAqY2VydDsKKy0gICBYNTA5X1BVQktF WSAqeDUwOVB1YktleTsKKysgICBjb25zdCBYNTA5X1BVQktFWSAqeDUwOVB1YktleTsKKyAgICBF VlBfUEtFWSAqcHVibGljS2V5OworIAorICAgIGNlcnQgPSBDZXJ0U3RyaW5nVG9YNTA5KHBlbUNl cnQpOworQEAgLTkyNCwxMiArOTI0LDEyIEBAIGRvbmU6CisgCisgc3RhdGljIFg1MDkgKgorIEZp bmRDZXJ0KEdMaXN0ICpjTGlzdCwKKy0gICAgICAgICBYNTA5X05BTUUgKnZhbCwKKysgICAgICAg ICBjb25zdCBYNTA5X05BTUUgKnZhbCwKKyAgICAgICAgICBpbnQgY2hlY2tTdWJqKQorIHsKKyAg ICBHTGlzdCAqbDsKKyAgICBYNTA5ICpjOworLSAgIFg1MDlfTkFNRSAqdjsKKysgICBjb25zdCBY NTA5X05BTUUgKnY7CisgCisgICAgbCA9IGNMaXN0OworICAgIHdoaWxlIChsICE9IE5VTEwpIHsK K0BAIC05NzQsOCArOTc0LDggQEAgQ2VydFZlcmlmeV9DaGVja0ZvclVucmVsYXRlZENlcnRzKGlu dCBudW1DZXJ0cywKKyAgICBHTGlzdCAqcmF3TGlzdCA9IE5VTEw7CisgICAgWDUwOSAqYmFzZUNl cnQ7CisgICAgWDUwOSAqY3VyQ2VydDsKKy0gICBYNTA5X05BTUUgKnN1YmplY3Q7CistICAgWDUw OV9OQU1FICppc3N1ZXI7CisrICAgY29uc3QgWDUwOV9OQU1FICpzdWJqZWN0OworKyAgIGNvbnN0 IFg1MDlfTkFNRSAqaXNzdWVyOworIAorICAgIC8qIGNvbW1vbiBzaW5nbGUgY2VydCBjYXNlOyBu b3RoaW5nIHRvIGRvICovCisgICAgaWYgKG51bUNlcnRzID09IDEpIHsKCmRpZmYgLS1naXQgYS9v cGVuLXZtLXRvb2xzLXNpZ2MrKzMucGF0Y2ggYi9vcGVuLXZtLXRvb2xzLXNpZ2MrKzMucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTVjYThjZgotLS0gL2Rldi9udWxs CisrKyBiL29wZW4tdm0tdG9vbHMtc2lnYysrMy5wYXRjaApAQCAtMCwwICsxLDMyOSBAQAorZGlm ZiAtTmF1ciBvcGVuLXZtLXRvb2xzLTEzLjEuMC0yNTIxODg4NS5vbGQvbGliL2luY2x1ZGUvc2ln YysrMnRvMy5oIG9wZW4tdm0tdG9vbHMtMTMuMS4wLTI1MjE4ODg1L2xpYi9pbmNsdWRlL3NpZ2Mr KzJ0bzMuaAorLS0tIG9wZW4tdm0tdG9vbHMtMTMuMS4wLTI1MjE4ODg1Lm9sZC9saWIvaW5jbHVk ZS9zaWdjKysydG8zLmgJMjAyNi0wNS0yMCAwOToyOToyMi43NzYzODU2NDYgKzAyMDAKKysrKyBv cGVuLXZtLXRvb2xzLTEzLjEuMC0yNTIxODg4NS9saWIvaW5jbHVkZS9zaWdjKysydG8zLmgJMjAy Ni0wNS0yMCAwOTo0MzoyOS43NTAzNjk4ODcgKzAyMDAKK0BAIC0zNiw4NSArMzYsNiBAQAorIG5h bWVzcGFjZSBzaWdjIHsKKyAKKyAKKy0vLyBCcmlkZ2Ugc2xvdCBzeW50YXggY2hhbmdlCistdGVt cGxhdGUgPHR5cGVuYW1lIFRfcmV0LCB0eXBlbmFtZS4uLiBUX2FyZ3M+CistY2xhc3Mgc2xvdCA6 IHB1YmxpYyBzbG90PFRfcmV0KFRfYXJncy4uLik+IHsKKy1wcml2YXRlOgorLSAgIHVzaW5nIF90 cnVlX3Nsb3QgPSBzbG90PFRfcmV0KFRfYXJncy4uLik+OworLXB1YmxpYzoKKy0gICBpbmxpbmUg c2xvdCgpID0gZGVmYXVsdDsKKy0gICBpbmxpbmUgc2xvdChjb25zdCBfdHJ1ZV9zbG90JiBzcmMp IDogX3RydWVfc2xvdChzcmMpIHt9CistICAgdGVtcGxhdGU8dHlwZW5hbWUgVF9mdW5jdG9yPgor LSAgIGlubGluZSBzbG90KGNvbnN0IFRfZnVuY3RvciYgZnVuYykgOiBfdHJ1ZV9zbG90KGZ1bmMp IHt9CistfTsKKy0KKy10ZW1wbGF0ZSA8dHlwZW5hbWUgVF9yZXQ+CistdXNpbmcgc2xvdDAgPSBz bG90PFRfcmV0KCk+OworLXRlbXBsYXRlIDx0eXBlbmFtZSBUX3JldCwgdHlwZW5hbWUgVF9hcmcx PgorLXVzaW5nIHNsb3QxID0gc2xvdDxUX3JldChUX2FyZzEpPjsKKy10ZW1wbGF0ZSA8dHlwZW5h bWUgVF9yZXQsIHR5cGVuYW1lIFRfYXJnMSwgdHlwZW5hbWUgVF9hcmcyPgorLXVzaW5nIHNsb3Qy ID0gc2xvdDxUX3JldChUX2FyZzEsIFRfYXJnMik+OworLXRlbXBsYXRlIDx0eXBlbmFtZSBUX3Jl dCwgdHlwZW5hbWUgVF9hcmcxLCB0eXBlbmFtZSBUX2FyZzIsIHR5cGVuYW1lIFRfYXJnMz4KKy11 c2luZyBzbG90MyA9IHNsb3Q8VF9yZXQoVF9hcmcxLCBUX2FyZzIsIFRfYXJnMyk+OworLXRlbXBs YXRlIDx0eXBlbmFtZSBUX3JldCwgdHlwZW5hbWUgVF9hcmcxLCB0eXBlbmFtZSBUX2FyZzIsIHR5 cGVuYW1lIFRfYXJnMywgdHlwZW5hbWUgVF9hcmc0PgorLXVzaW5nIHNsb3Q0ID0gc2xvdDxUX3Jl dChUX2FyZzEsIFRfYXJnMiwgVF9hcmczLCBUX2FyZzQpPjsKKy10ZW1wbGF0ZSA8dHlwZW5hbWUg VF9yZXQsIHR5cGVuYW1lIFRfYXJnMSwgdHlwZW5hbWUgVF9hcmcyLCB0eXBlbmFtZSBUX2FyZzMs IHR5cGVuYW1lIFRfYXJnNCwgdHlwZW5hbWUgVF9hcmc1PgorLXVzaW5nIHNsb3Q1ID0gc2xvdDxU X3JldChUX2FyZzEsIFRfYXJnMiwgVF9hcmczLCBUX2FyZzQsIFRfYXJnNSk+OworLXRlbXBsYXRl IDx0eXBlbmFtZSBUX3JldCwgdHlwZW5hbWUgVF9hcmcxLCB0eXBlbmFtZSBUX2FyZzIsIHR5cGVu YW1lIFRfYXJnMywgdHlwZW5hbWUgVF9hcmc0LCB0eXBlbmFtZSBUX2FyZzUsIHR5cGVuYW1lIFRf YXJnNj4KKy11c2luZyBzbG90NiA9IHNsb3Q8VF9yZXQoVF9hcmcxLCBUX2FyZzIsIFRfYXJnMywg VF9hcmc0LCBUX2FyZzUsIFRfYXJnNik+OworLXRlbXBsYXRlIDx0eXBlbmFtZSBUX3JldCwgdHlw ZW5hbWUgVF9hcmcxLCB0eXBlbmFtZSBUX2FyZzIsIHR5cGVuYW1lIFRfYXJnMywgdHlwZW5hbWUg VF9hcmc0LCB0eXBlbmFtZSBUX2FyZzUsIHR5cGVuYW1lIFRfYXJnNiwgdHlwZW5hbWUgVF9hcmc3 PgorLXVzaW5nIHNsb3Q3ID0gc2xvdDxUX3JldChUX2FyZzEsIFRfYXJnMiwgVF9hcmczLCBUX2Fy ZzQsIFRfYXJnNSwgVF9hcmc2LCBUX2FyZzcpPjsKKy0KKy0KKy0vLyBCcmlkZ2Ugc2lnbmFsIHN5 bnRheCBjaGFuZ2UKKy10ZW1wbGF0ZSA8dHlwZW5hbWUgVF9yZXQsIHR5cGVuYW1lLi4uIFRfYXJn cz4KKy1jbGFzcyBzaWduYWwgOiBwdWJsaWMgc2lnbmFsPFRfcmV0KFRfYXJncy4uLik+LCBwdWJs aWMgdHJhY2thYmxlIHsKKy1wdWJsaWM6CistICAgc2lnbmFsKCkgPSBkZWZhdWx0OworLQorLSAg IGRlY2x0eXBlKGF1dG8pIG1ha2Vfc2xvdCgpIGNvbnN0IHsKKy0gICAgICByZXR1cm4gbWVtX2Z1 bigqdGhpcywgJnNpZ25hbDo6ZW1pdCk7CistICAgfQorLX07CistCistdGVtcGxhdGUgPHR5cGVu YW1lIFRfcmV0PgorLXVzaW5nIHNpZ25hbDAgPSBzaWduYWw8VF9yZXQoKT47CistdGVtcGxhdGUg PHR5cGVuYW1lIFRfcmV0LCB0eXBlbmFtZSBUX2FyZzE+CistdXNpbmcgc2lnbmFsMSA9IHNpZ25h bDxUX3JldChUX2FyZzEpPjsKKy10ZW1wbGF0ZSA8dHlwZW5hbWUgVF9yZXQsIHR5cGVuYW1lIFRf YXJnMSwgdHlwZW5hbWUgVF9hcmcyPgorLXVzaW5nIHNpZ25hbDIgPSBzaWduYWw8VF9yZXQoVF9h cmcxLCBUX2FyZzIpPjsKKy10ZW1wbGF0ZSA8dHlwZW5hbWUgVF9yZXQsIHR5cGVuYW1lIFRfYXJn MSwgdHlwZW5hbWUgVF9hcmcyLCB0eXBlbmFtZSBUX2FyZzM+CistdXNpbmcgc2lnbmFsMyA9IHNp Z25hbDxUX3JldChUX2FyZzEsIFRfYXJnMiwgVF9hcmczKT47CistdGVtcGxhdGUgPHR5cGVuYW1l IFRfcmV0LCB0eXBlbmFtZSBUX2FyZzEsIHR5cGVuYW1lIFRfYXJnMiwgdHlwZW5hbWUgVF9hcmcz LCB0eXBlbmFtZSBUX2FyZzQ+CistdXNpbmcgc2lnbmFsNCA9IHNpZ25hbDxUX3JldChUX2FyZzEs IFRfYXJnMiwgVF9hcmczLCBUX2FyZzQpPjsKKy10ZW1wbGF0ZSA8dHlwZW5hbWUgVF9yZXQsIHR5 cGVuYW1lIFRfYXJnMSwgdHlwZW5hbWUgVF9hcmcyLCB0eXBlbmFtZSBUX2FyZzMsIHR5cGVuYW1l IFRfYXJnNCwgdHlwZW5hbWUgVF9hcmc1PgorLXVzaW5nIHNpZ25hbDUgPSBzaWduYWw8VF9yZXQo VF9hcmcxLCBUX2FyZzIsIFRfYXJnMywgVF9hcmc0LCBUX2FyZzUpPjsKKy10ZW1wbGF0ZSA8dHlw ZW5hbWUgVF9yZXQsIHR5cGVuYW1lIFRfYXJnMSwgdHlwZW5hbWUgVF9hcmcyLCB0eXBlbmFtZSBU X2FyZzMsIHR5cGVuYW1lIFRfYXJnNCwgdHlwZW5hbWUgVF9hcmc1LCB0eXBlbmFtZSBUX2FyZzY+ CistdXNpbmcgc2lnbmFsNiA9IHNpZ25hbDxUX3JldChUX2FyZzEsIFRfYXJnMiwgVF9hcmczLCBU X2FyZzQsIFRfYXJnNSwgVF9hcmc2KT47CistdGVtcGxhdGUgPHR5cGVuYW1lIFRfcmV0LCB0eXBl bmFtZSBUX2FyZzEsIHR5cGVuYW1lIFRfYXJnMiwgdHlwZW5hbWUgVF9hcmczLCB0eXBlbmFtZSBU X2FyZzQsIHR5cGVuYW1lIFRfYXJnNSwgdHlwZW5hbWUgVF9hcmc2LCB0eXBlbmFtZSBUX2FyZzc+ CistdXNpbmcgc2lnbmFsNyA9IHNpZ25hbDxUX3JldChUX2FyZzEsIFRfYXJnMiwgVF9hcmczLCBU X2FyZzQsIFRfYXJnNSwgVF9hcmc2LCBUX2FyZzcpPjsKKy0KKy0KKy0vL0JyaWRnZSBib3VuZF9t ZW1fZnVuY3RvcgorLXRlbXBsYXRlIDx0eXBlbmFtZSBUX3JldCwgdHlwZW5hbWUgVF9vYmo+Cist dXNpbmcgYm91bmRfbWVtX2Z1bmN0b3IwID0gYm91bmRfbWVtX2Z1bmN0b3I8VF9yZXQgKFRfb2Jq OjoqKSgpPjsKKy10ZW1wbGF0ZSA8dHlwZW5hbWUgVF9yZXQsIHR5cGVuYW1lIFRfb2JqLCB0eXBl bmFtZSBUX2FyZzE+CistdXNpbmcgYm91bmRfbWVtX2Z1bmN0b3IxID0gYm91bmRfbWVtX2Z1bmN0 b3I8VF9yZXQgKFRfb2JqOjoqKShUX2FyZzEpLCBUX2FyZzE+OworLXRlbXBsYXRlIDx0eXBlbmFt ZSBUX3JldCwgdHlwZW5hbWUgVF9vYmosIHR5cGVuYW1lIFRfYXJnMSwgdHlwZW5hbWUgVF9hcmcy PgorLXVzaW5nIGJvdW5kX21lbV9mdW5jdG9yMiA9IGJvdW5kX21lbV9mdW5jdG9yPFRfcmV0IChU X29iajo6KikoVF9hcmcxLCBUX2FyZzIpLCBUX2FyZzEsIFRfYXJnMj47CistdGVtcGxhdGUgPHR5 cGVuYW1lIFRfcmV0LCB0eXBlbmFtZSBUX29iaiwgdHlwZW5hbWUgVF9hcmcxLCB0eXBlbmFtZSBU X2FyZzIsIHR5cGVuYW1lIFRfYXJnMz4KKy11c2luZyBib3VuZF9tZW1fZnVuY3RvcjMgPSBib3Vu ZF9tZW1fZnVuY3RvcjxUX3JldCAoVF9vYmo6OiopKFRfYXJnMSwgVF9hcmcyLCBUX2FyZzMpLCBU X2FyZzEsIFRfYXJnMiwgVF9hcmczPjsKKy10ZW1wbGF0ZSA8dHlwZW5hbWUgVF9yZXQsIHR5cGVu YW1lIFRfb2JqLCB0eXBlbmFtZSBUX2FyZzEsIHR5cGVuYW1lIFRfYXJnMiwgdHlwZW5hbWUgVF9h cmczLCB0eXBlbmFtZSBUX2FyZzQ+CistdXNpbmcgYm91bmRfbWVtX2Z1bmN0b3I0ID0gYm91bmRf bWVtX2Z1bmN0b3I8VF9yZXQgKFRfb2JqOjoqKShUX2FyZzEsIFRfYXJnMiwgVF9hcmczLCBUX2Fy ZzQpLCBUX2FyZzEsIFRfYXJnMiwgVF9hcmczLCBUX2FyZzQ+OworLXRlbXBsYXRlIDx0eXBlbmFt ZSBUX3JldCwgdHlwZW5hbWUgVF9vYmosIHR5cGVuYW1lIFRfYXJnMSwgdHlwZW5hbWUgVF9hcmcy LCB0eXBlbmFtZSBUX2FyZzMsIHR5cGVuYW1lIFRfYXJnNCwgdHlwZW5hbWUgVF9hcmc1PgorLXVz aW5nIGJvdW5kX21lbV9mdW5jdG9yNSA9IGJvdW5kX21lbV9mdW5jdG9yPFRfcmV0IChUX29iajo6 KikoVF9hcmcxLCBUX2FyZzIsIFRfYXJnMywgVF9hcmc0LCBUX2FyZzUpLCBUX2FyZzEsIFRfYXJn MiwgVF9hcmczLCBUX2FyZzQsIFRfYXJnNT47CistdGVtcGxhdGUgPHR5cGVuYW1lIFRfcmV0LCB0 eXBlbmFtZSBUX29iaiwgdHlwZW5hbWUgVF9hcmcxLCB0eXBlbmFtZSBUX2FyZzIsIHR5cGVuYW1l IFRfYXJnMywgdHlwZW5hbWUgVF9hcmc0LCB0eXBlbmFtZSBUX2FyZzUsIHR5cGVuYW1lIFRfYXJn Nj4KKy11c2luZyBib3VuZF9tZW1fZnVuY3RvcjYgPSBib3VuZF9tZW1fZnVuY3RvcjxUX3JldCAo VF9vYmo6OiopKFRfYXJnMSwgVF9hcmcyLCBUX2FyZzMsIFRfYXJnNCwgVF9hcmc1LCBUX2FyZzYp LCBUX2FyZzEsIFRfYXJnMiwgVF9hcmczLCBUX2FyZzQsIFRfYXJnNSwgVF9hcmc2PjsKKy10ZW1w bGF0ZSA8dHlwZW5hbWUgVF9yZXQsIHR5cGVuYW1lIFRfb2JqLCB0eXBlbmFtZSBUX2FyZzEsIHR5 cGVuYW1lIFRfYXJnMiwgdHlwZW5hbWUgVF9hcmczLCB0eXBlbmFtZSBUX2FyZzQsIHR5cGVuYW1l IFRfYXJnNSwgdHlwZW5hbWUgVF9hcmc2LCB0eXBlbmFtZSBUX2FyZzc+CistdXNpbmcgYm91bmRf bWVtX2Z1bmN0b3I3ID0gYm91bmRfbWVtX2Z1bmN0b3I8VF9yZXQgKFRfb2JqOjoqKShUX2FyZzEs IFRfYXJnMiwgVF9hcmczLCBUX2FyZzQsIFRfYXJnNSwgVF9hcmc2LCBUX2FyZzcpLCBUX2FyZzEs IFRfYXJnMiwgVF9hcmczLCBUX2FyZzQsIFRfYXJnNSwgVF9hcmc2LCBUX2FyZzc+OworLQorLQor LQorIC8vIEFkZCBvbGQgbWVtX2Z1biBBUEkgZm9yIHBvaW50ZXIKKyB0ZW1wbGF0ZTx0eXBlbmFt ZSBUX3JldHVybiwgdHlwZW5hbWUgVF9vYmosIHR5cGVuYW1lLi4uIFRfYXJnPgorIGlubGluZSBk ZWNsdHlwZShhdXRvKQorQEAgLTEzMSwxMyArNTIsNiBAQAorIH0KKyAKKyAKKy0vLyBTdHViIHNp Z2M6OnJlZiBpbXBsCistdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CistaW5saW5lIGRlY2x0eXBlKGF1 dG8pIHJlZihUJiB0KSB7IHJldHVybiBzdGQ6OnJlZih0KTsgfQorLXRlbXBsYXRlIDx0eXBlbmFt ZSBUPgorLWlubGluZSBkZWNsdHlwZShhdXRvKSByZWYoY29uc3QgVCYgdCkgeyByZXR1cm4gc3Rk OjpjcmVmKHQpOyB9CistCistCisgfSAvL25hbWVzcGFjZSBzaWdjCisgCisgI2VuZGlmIC8vIFNJ R0NYWF9NQUpPUl9WRVJTSU9OID49IDMKK2RpZmYgLU5hdXIgb3Blbi12bS10b29scy0xMy4xLjAt MjUyMTg4ODUub2xkL3NlcnZpY2VzL3BsdWdpbnMvZG5kY3AvZG5kL2NvcHlQYXN0ZVJwYy5oaCBv cGVuLXZtLXRvb2xzLTEzLjEuMC0yNTIxODg4NS9zZXJ2aWNlcy9wbHVnaW5zL2RuZGNwL2RuZC9j b3B5UGFzdGVScGMuaGgKKy0tLSBvcGVuLXZtLXRvb2xzLTEzLjEuMC0yNTIxODg4NS5vbGQvc2Vy dmljZXMvcGx1Z2lucy9kbmRjcC9kbmQvY29weVBhc3RlUnBjLmhoCTIwMjYtMDUtMjAgMDk6Mjk6 MjIuNzk4ODUxNzQyICswMjAwCisrKysgb3Blbi12bS10b29scy0xMy4xLjAtMjUyMTg4ODUvc2Vy dmljZXMvcGx1Z2lucy9kbmRjcC9kbmQvY29weVBhc3RlUnBjLmhoCTIwMjYtMDUtMjAgMDk6NDM6 NDUuMDc2Mjg4MTkyICswMjAwCitAQCAtMzksMTggKzM5LDE4IEBACisgICAgdmlydHVhbCB+Q29w eVBhc3RlUnBjKHZvaWQpIHt9OworIAorICAgIC8qIHNpZ2Mgc2lnbmFscyBmb3IgQ29weVBhc3Rl IHNvdXJjZSBjYWxsYmFjay4gKi8KKy0gICBzaWdjOjpzaWduYWw8dm9pZCwgdWludDMyLCBib29s LCBjb25zdCBDUENsaXBib2FyZCo+IHNyY1JlY3ZDbGlwQ2hhbmdlZDsKKy0gICBzaWdjOjpzaWdu YWw8dm9pZCwgdWludDMyLCBjb25zdCB1aW50OCAqLCB1aW50MzI+IHJlcXVlc3RGaWxlc0NoYW5n ZWQ7CistICAgc2lnYzo6c2lnbmFsPHZvaWQsIHVpbnQzMiwgYm9vbCwgY29uc3QgdWludDggKiwg dWludDMyPiBnZXRGaWxlc0RvbmVDaGFuZ2VkOworKyAgIHNpZ2M6OnNpZ25hbDx2b2lkKHVpbnQz MiwgYm9vbCwgY29uc3QgQ1BDbGlwYm9hcmQqKT4gc3JjUmVjdkNsaXBDaGFuZ2VkOworKyAgIHNp Z2M6OnNpZ25hbDx2b2lkKHVpbnQzMiwgY29uc3QgdWludDggKiwgdWludDMyKT4gcmVxdWVzdEZp bGVzQ2hhbmdlZDsKKysgICBzaWdjOjpzaWduYWw8dm9pZCh1aW50MzIsIGJvb2wsIGNvbnN0IHVp bnQ4ICosIHVpbnQzMik+IGdldEZpbGVzRG9uZUNoYW5nZWQ7CisgCisgICAgLyogc2lnYyBzaWdu YWwgZm9yIENvcHlQYXN0ZSBkZXN0aW5hdGlvbiBjYWxsYmFjay4gKi8KKy0gICBzaWdjOjpzaWdu YWw8dm9pZCwgdWludDMyLCBib29sPiBkZXN0UmVxdWVzdENsaXBDaGFuZ2VkOworKyAgIHNpZ2M6 OnNpZ25hbDx2b2lkKHVpbnQzMiwgYm9vbCk+IGRlc3RSZXF1ZXN0Q2xpcENoYW5nZWQ7CisgCisg ICAgLyogc2lnYyBzaWduYWwgZm9yIHBpbmcgcmVwbHkgY2FsbGJhY2suICovCistICAgc2lnYzo6 c2lnbmFsPHZvaWQsIHVpbnQzMj4gcGluZ1JlcGx5Q2hhbmdlZDsKKysgICBzaWdjOjpzaWduYWw8 dm9pZCh1aW50MzIpPiBwaW5nUmVwbHlDaGFuZ2VkOworIAorICAgIC8qIHNpZ2Mgc2lnbmFsIGZv ciBycGMgY29tbWFuZCByZXBseSByZWNlaXZlZC4gKi8KKy0gICBzaWdjOjpzaWduYWw8dm9pZCwg dWludDMyLCB1aW50MzI+IGNtZFJlcGx5Q2hhbmdlZDsKKysgICBzaWdjOjpzaWduYWw8dm9pZCh1 aW50MzIsIHVpbnQzMik+IGNtZFJlcGx5Q2hhbmdlZDsKKyAKKyAgICB2aXJ0dWFsIHZvaWQgSW5p dCh2b2lkKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIFNlbmRQaW5nKHVpbnQzMiBjYXBzKSA9IDA7 CitkaWZmIC1OYXVyIG9wZW4tdm0tdG9vbHMtMTMuMS4wLTI1MjE4ODg1Lm9sZC9zZXJ2aWNlcy9w bHVnaW5zL2RuZGNwL2RuZC9kbmRScGMuaGggb3Blbi12bS10b29scy0xMy4xLjAtMjUyMTg4ODUv c2VydmljZXMvcGx1Z2lucy9kbmRjcC9kbmQvZG5kUnBjLmhoCistLS0gb3Blbi12bS10b29scy0x My4xLjAtMjUyMTg4ODUub2xkL3NlcnZpY2VzL3BsdWdpbnMvZG5kY3AvZG5kL2RuZFJwYy5oaAky MDI2LTA1LTIwIDA5OjI5OjIyLjc5ODg1MTc0MiArMDIwMAorKysrIG9wZW4tdm0tdG9vbHMtMTMu MS4wLTI1MjE4ODg1L3NlcnZpY2VzL3BsdWdpbnMvZG5kY3AvZG5kL2RuZFJwYy5oaAkyMDI2LTA1 LTIwIDA5OjQzOjQ1LjA3NjYzMzkxNCArMDIwMAorQEAgLTQwLDMwICs0MCwzMCBAQAorICAgIHZp cnR1YWwgfkRuRFJwYyh2b2lkKSB7fTsKKyAKKyAgICAvKiBzaWdjIHNpZ25hbHMgZm9yIERuRCBz b3VyY2UgY2FsbGJhY2suICovCistICAgc2lnYzo6c2lnbmFsPHZvaWQsIHVpbnQzMiwgY29uc3Qg Q1BDbGlwYm9hcmQgKj4gc3JjRHJhZ0JlZ2luQ2hhbmdlZDsKKy0gICBzaWdjOjpzaWduYWw8dm9p ZCwgdWludDMyPiBzcmNDYW5jZWxDaGFuZ2VkOworLSAgIHNpZ2M6OnNpZ25hbDx2b2lkLCB1aW50 MzIsIHVpbnQzMiwgdWludDMyPiBzcmNEcm9wQ2hhbmdlZDsKKysgICBzaWdjOjpzaWduYWw8dm9p ZCh1aW50MzIsIGNvbnN0IENQQ2xpcGJvYXJkICopPiBzcmNEcmFnQmVnaW5DaGFuZ2VkOworKyAg IHNpZ2M6OnNpZ25hbDx2b2lkKHVpbnQzMik+IHNyY0NhbmNlbENoYW5nZWQ7CisrICAgc2lnYzo6 c2lnbmFsPHZvaWQodWludDMyLCB1aW50MzIsIHVpbnQzMik+IHNyY0Ryb3BDaGFuZ2VkOworIAor ICAgIC8qIHNpZ2Mgc2lnbmFscyBmb3IgRG5EIGRlc3RpbmF0aW9uIGNhbGxiYWNrLiAqLworLSAg IHNpZ2M6OnNpZ25hbDx2b2lkLCB1aW50MzIsIGludDMyPiBkZXN0RHJhZ0VudGVyUmVwbHlDaGFu Z2VkOworLSAgIHNpZ2M6OnNpZ25hbDx2b2lkLCB1aW50MzI+IGRlc3RQcml2RHJhZ0VudGVyQ2hh bmdlZDsKKy0gICBzaWdjOjpzaWduYWw8dm9pZCwgdWludDMyLCBpbnQzMiwgaW50MzI+IGRlc3RQ cml2RHJhZ0xlYXZlQ2hhbmdlZDsKKy0gICBzaWdjOjpzaWduYWw8dm9pZCwgdWludDMyLCBpbnQz MiwgaW50MzI+IGRlc3RQcml2RHJvcENoYW5nZWQ7CistICAgc2lnYzo6c2lnbmFsPHZvaWQsIHVp bnQzMiwgaW50MzIsIGludDMyPiBkZXN0RHJvcENoYW5nZWQ7CistICAgc2lnYzo6c2lnbmFsPHZv aWQsIHVpbnQzMj4gZGVzdENhbmNlbENoYW5nZWQ7CistCistICAgc2lnYzo6c2lnbmFsPHZvaWQs IHVpbnQzMiwgaW50MzIsIGludDMyPiBtb3ZlTW91c2VDaGFuZ2VkOworLSAgIHNpZ2M6OnNpZ25h bDx2b2lkLCB1aW50MzIsIHVpbnQzMj4gdXBkYXRlRmVlZGJhY2tDaGFuZ2VkOworLSAgIHNpZ2M6 OnNpZ25hbDx2b2lkLCB1aW50MzIsIGludDMyLCBpbnQzMj4gcXVlcnlFeGl0aW5nQ2hhbmdlZDsK Ky0gICBzaWdjOjpzaWduYWw8dm9pZCwgdWludDMyPiBkcmFnTm90UGVuZGluZ0NoYW5nZWQ7Cist ICAgc2lnYzo6c2lnbmFsPHZvaWQsIHVpbnQzMiwgY29uc3QgdWludDggKiwgdWludDMyPiByZXF1 ZXN0RmlsZUNoYW5nZWQ7CistICAgc2lnYzo6c2lnbmFsPHZvaWQsIHVpbnQzMiwgYm9vbCwgY29u c3QgdWludDggKiwgdWludDMyPiBnZXRGaWxlc0RvbmVDaGFuZ2VkOworKyAgIHNpZ2M6OnNpZ25h bDx2b2lkKHVpbnQzMiwgaW50MzIpPiBkZXN0RHJhZ0VudGVyUmVwbHlDaGFuZ2VkOworKyAgIHNp Z2M6OnNpZ25hbDx2b2lkKHVpbnQzMik+IGRlc3RQcml2RHJhZ0VudGVyQ2hhbmdlZDsKKysgICBz aWdjOjpzaWduYWw8dm9pZCh1aW50MzIsIGludDMyLCBpbnQzMik+IGRlc3RQcml2RHJhZ0xlYXZl Q2hhbmdlZDsKKysgICBzaWdjOjpzaWduYWw8dm9pZCh1aW50MzIsIGludDMyLCBpbnQzMik+IGRl c3RQcml2RHJvcENoYW5nZWQ7CisrICAgc2lnYzo6c2lnbmFsPHZvaWQodWludDMyLCBpbnQzMiwg aW50MzIpPiBkZXN0RHJvcENoYW5nZWQ7CisrICAgc2lnYzo6c2lnbmFsPHZvaWQodWludDMyKT4g ZGVzdENhbmNlbENoYW5nZWQ7CisrCisrICAgc2lnYzo6c2lnbmFsPHZvaWQodWludDMyLCBpbnQz MiwgaW50MzIpPiBtb3ZlTW91c2VDaGFuZ2VkOworKyAgIHNpZ2M6OnNpZ25hbDx2b2lkKHVpbnQz MiwgdWludDMyKT4gdXBkYXRlRmVlZGJhY2tDaGFuZ2VkOworKyAgIHNpZ2M6OnNpZ25hbDx2b2lk KHVpbnQzMiwgaW50MzIsIGludDMyKT4gcXVlcnlFeGl0aW5nQ2hhbmdlZDsKKysgICBzaWdjOjpz aWduYWw8dm9pZCh1aW50MzIpPiBkcmFnTm90UGVuZGluZ0NoYW5nZWQ7CisrICAgc2lnYzo6c2ln bmFsPHZvaWQodWludDMyLCBjb25zdCB1aW50OCAqLCB1aW50MzIpPiByZXF1ZXN0RmlsZUNoYW5n ZWQ7CisrICAgc2lnYzo6c2lnbmFsPHZvaWQodWludDMyLCBib29sLCBjb25zdCB1aW50OCAqLCB1 aW50MzIpPiBnZXRGaWxlc0RvbmVDaGFuZ2VkOworIAorICAgIC8qIHNpZ2Mgc2lnbmFsIGZvciBy ZXNwb25kaW5nIHRvIHBpbmcgcmVwbHkgKi8KKy0gICBzaWdjOjpzaWduYWw8dm9pZCwgdWludDMy PiBwaW5nUmVwbHlDaGFuZ2VkOworKyAgIHNpZ2M6OnNpZ25hbDx2b2lkKHVpbnQzMik+IHBpbmdS ZXBseUNoYW5nZWQ7CisgCisgICAgLyogc2lnYyBzaWduYWwgZm9yIHJwYyBjbWQgcmVwbHkgcmVj ZWl2ZWQuICovCistICAgc2lnYzo6c2lnbmFsPHZvaWQsIHVpbnQzMiwgdWludDMyPiBjbWRSZXBs eUNoYW5nZWQ7CisrICAgc2lnYzo6c2lnbmFsPHZvaWQodWludDMyLCB1aW50MzIpPiBjbWRSZXBs eUNoYW5nZWQ7CisgCisgICAgLyogRG5EIHNvdXJjZS4gKi8KKyAgICB2aXJ0dWFsIGJvb2wgU3Jj RHJhZ0JlZ2luRG9uZSh1aW50MzIgc2Vzc2lvbklkKSA9IDA7CitkaWZmIC1OYXVyIG9wZW4tdm0t dG9vbHMtMTMuMS4wLTI1MjE4ODg1Lm9sZC9zZXJ2aWNlcy9wbHVnaW5zL2RuZGNwL2RuZC9maWxl VHJhbnNmZXJScGMuaGggb3Blbi12bS10b29scy0xMy4xLjAtMjUyMTg4ODUvc2VydmljZXMvcGx1 Z2lucy9kbmRjcC9kbmQvZmlsZVRyYW5zZmVyUnBjLmhoCistLS0gb3Blbi12bS10b29scy0xMy4x LjAtMjUyMTg4ODUub2xkL3NlcnZpY2VzL3BsdWdpbnMvZG5kY3AvZG5kL2ZpbGVUcmFuc2ZlclJw Yy5oaAkyMDI2LTA1LTIwIDA5OjI5OjIyLjc5ODg1MTc0MiArMDIwMAorKysrIG9wZW4tdm0tdG9v bHMtMTMuMS4wLTI1MjE4ODg1L3NlcnZpY2VzL3BsdWdpbnMvZG5kY3AvZG5kL2ZpbGVUcmFuc2Zl clJwYy5oaAkyMDI2LTA1LTIwIDA5OjQzOjQ1LjA3NjQwNTIzMyArMDIwMAorQEAgLTM4LDggKzM4 LDggQEAKKyBwdWJsaWM6CisgICAgdmlydHVhbCB+RmlsZVRyYW5zZmVyUnBjKHZvaWQpIHt9Owor IAorLSAgIHNpZ2M6OnNpZ25hbDx2b2lkLCB1aW50MzIsIGNvbnN0IHVpbnQ4ICosIHNpemVfdD4g SGdmc1BhY2tldFJlY2VpdmVkOworLSAgIHNpZ2M6OnNpZ25hbDx2b2lkLCB1aW50MzIsIGNvbnN0 IHVpbnQ4ICosIHNpemVfdD4gSGdmc1JlcGx5UmVjZWl2ZWQ7CisrICAgc2lnYzo6c2lnbmFsPHZv aWQodWludDMyLCBjb25zdCB1aW50OCAqLCBzaXplX3QpPiBIZ2ZzUGFja2V0UmVjZWl2ZWQ7Cisr ICAgc2lnYzo6c2lnbmFsPHZvaWQodWludDMyLCBjb25zdCB1aW50OCAqLCBzaXplX3QpPiBIZ2Zz UmVwbHlSZWNlaXZlZDsKKyAKKyAgICB2aXJ0dWFsIHZvaWQgSW5pdCh2b2lkKSA9IDA7CisgICAg dmlydHVhbCBib29sIFNlbmRIZ2ZzUGFja2V0KHVpbnQzMiBzZXNzaW9uSWQsCitkaWZmIC1OYXVy IG9wZW4tdm0tdG9vbHMtMTMuMS4wLTI1MjE4ODg1Lm9sZC9zZXJ2aWNlcy9wbHVnaW5zL2RuZGNw L2RuZEd1ZXN0QmFzZS9ndWVzdENvcHlQYXN0ZS5oaCBvcGVuLXZtLXRvb2xzLTEzLjEuMC0yNTIx ODg4NS9zZXJ2aWNlcy9wbHVnaW5zL2RuZGNwL2RuZEd1ZXN0QmFzZS9ndWVzdENvcHlQYXN0ZS5o aAorLS0tIG9wZW4tdm0tdG9vbHMtMTMuMS4wLTI1MjE4ODg1Lm9sZC9zZXJ2aWNlcy9wbHVnaW5z L2RuZGNwL2RuZEd1ZXN0QmFzZS9ndWVzdENvcHlQYXN0ZS5oaAkyMDI2LTA1LTIwIDA5OjI5OjIy Ljc5OTQ1NDUwNyArMDIwMAorKysrIG9wZW4tdm0tdG9vbHMtMTMuMS4wLTI1MjE4ODg1L3NlcnZp Y2VzL3BsdWdpbnMvZG5kY3AvZG5kR3Vlc3RCYXNlL2d1ZXN0Q29weVBhc3RlLmhoCTIwMjYtMDUt MjAgMDk6NDM6NDUuMDc2MzQ5OTQ5ICswMjAwCitAQCAtNDgsOSArNDgsOSBAQAorICAgIEd1ZXN0 Q29weVBhc3RlTWdyKERuRENQVHJhbnNwb3J0ICp0cmFuc3BvcnQpOworICAgIH5HdWVzdENvcHlQ YXN0ZU1ncih2b2lkKTsKKyAKKy0gICBzaWdjOjpzaWduYWw8dm9pZCwgY29uc3QgQ1BDbGlwYm9h cmQqPiBzcmNSZWN2Q2xpcENoYW5nZWQ7CistICAgc2lnYzo6c2lnbmFsPHZvaWQ+IGRlc3RSZXF1 ZXN0Q2xpcENoYW5nZWQ7CistICAgc2lnYzo6c2lnbmFsPHZvaWQsIGJvb2w+IGdldEZpbGVzRG9u ZUNoYW5nZWQ7CisrICAgc2lnYzo6c2lnbmFsPHZvaWQoY29uc3QgQ1BDbGlwYm9hcmQqKT4gc3Jj UmVjdkNsaXBDaGFuZ2VkOworKyAgIHNpZ2M6OnNpZ25hbDx2b2lkKCk+IGRlc3RSZXF1ZXN0Q2xp cENoYW5nZWQ7CisrICAgc2lnYzo6c2lnbmFsPHZvaWQoYm9vbCk+IGdldEZpbGVzRG9uZUNoYW5n ZWQ7CisgCisgICAgR1VFU1RfQ1BfU1RBVEUgR2V0U3RhdGUodm9pZCkgeyByZXR1cm4gbUNQU3Rh dGU7IH0KKyAgICB2b2lkIFNldFN0YXRlKEdVRVNUX0NQX1NUQVRFIHN0YXRlKTsKK2RpZmYgLU5h dXIgb3Blbi12bS10b29scy0xMy4xLjAtMjUyMTg4ODUub2xkL3NlcnZpY2VzL3BsdWdpbnMvZG5k Y3AvZG5kR3Vlc3RCYXNlL2d1ZXN0RG5ELmhoIG9wZW4tdm0tdG9vbHMtMTMuMS4wLTI1MjE4ODg1 L3NlcnZpY2VzL3BsdWdpbnMvZG5kY3AvZG5kR3Vlc3RCYXNlL2d1ZXN0RG5ELmhoCistLS0gb3Bl bi12bS10b29scy0xMy4xLjAtMjUyMTg4ODUub2xkL3NlcnZpY2VzL3BsdWdpbnMvZG5kY3AvZG5k R3Vlc3RCYXNlL2d1ZXN0RG5ELmhoCTIwMjYtMDUtMjAgMDk6Mjk6MjIuNzk5NDU0NTA3ICswMjAw CisrKysgb3Blbi12bS10b29scy0xMy4xLjAtMjUyMTg4ODUvc2VydmljZXMvcGx1Z2lucy9kbmRj cC9kbmRHdWVzdEJhc2UvZ3Vlc3REbkQuaGgJMjAyNi0wNS0yMCAwOTo0Mzo0NS4wNzYxMDk3ODYg KzAyMDAKK0BAIC03MywxOCArNzMsMTggQEAKKyAgICAgICAgICAgICAgICBUb29sc0FwcEN0eCAq Y3R4KTsKKyAgICB2aXJ0dWFsIH5HdWVzdERuRE1ncih2b2lkKTsKKyAKKy0gICBzaWdjOjpzaWdu YWw8dm9pZCwgaW50LCBpbnQ+IG1vdmVNb3VzZUNoYW5nZWQ7CistICAgc2lnYzo6c2lnbmFsPHZv aWQsIGJvb2wsIGludCwgaW50PiB1cGRhdGVEZXRXbmRDaGFuZ2VkOworLSAgIHNpZ2M6OnNpZ25h bDx2b2lkLCBHVUVTVF9ETkRfU1RBVEU+IHN0YXRlQ2hhbmdlZDsKKysgICBzaWdjOjpzaWduYWw8 dm9pZChpbnQsIGludCk+IG1vdmVNb3VzZUNoYW5nZWQ7CisrICAgc2lnYzo6c2lnbmFsPHZvaWQo Ym9vbCwgaW50LCBpbnQpPiB1cGRhdGVEZXRXbmRDaGFuZ2VkOworKyAgIHNpZ2M6OnNpZ25hbDx2 b2lkKEdVRVNUX0RORF9TVEFURSk+IHN0YXRlQ2hhbmdlZDsKKyAKKy0gICBzaWdjOjpzaWduYWw8 dm9pZCwgY29uc3QgQ1BDbGlwYm9hcmQqLCBzdGQ6OnN0cmluZz4gc3JjRHJhZ0JlZ2luQ2hhbmdl ZDsKKy0gICBzaWdjOjpzaWduYWw8dm9pZD4gc3JjRHJvcENoYW5nZWQ7CistICAgc2lnYzo6c2ln bmFsPHZvaWQ+IHNyY0NhbmNlbENoYW5nZWQ7CistICAgc2lnYzo6c2lnbmFsPHZvaWQsIGJvb2w+ IGdldEZpbGVzRG9uZUNoYW5nZWQ7CisrICAgc2lnYzo6c2lnbmFsPHZvaWQoY29uc3QgQ1BDbGlw Ym9hcmQqLCBzdGQ6OnN0cmluZyk+IHNyY0RyYWdCZWdpbkNoYW5nZWQ7CisrICAgc2lnYzo6c2ln bmFsPHZvaWQoKT4gc3JjRHJvcENoYW5nZWQ7CisrICAgc2lnYzo6c2lnbmFsPHZvaWQoKT4gc3Jj Q2FuY2VsQ2hhbmdlZDsKKysgICBzaWdjOjpzaWduYWw8dm9pZChib29sKT4gZ2V0RmlsZXNEb25l Q2hhbmdlZDsKKyAKKy0gICBzaWdjOjpzaWduYWw8dm9pZD4gZGVzdENhbmNlbENoYW5nZWQ7Cist ICAgc2lnYzo6c2lnbmFsPHZvaWQsIGludDMyLCBpbnQzMj4gcHJpdkRyb3BDaGFuZ2VkOworLSAg IHNpZ2M6OnNpZ25hbDx2b2lkPiBkZXN0TW92ZURldFduZFRvTW91c2VQb3NDaGFuZ2VkOworKyAg IHNpZ2M6OnNpZ25hbDx2b2lkKCk+IGRlc3RDYW5jZWxDaGFuZ2VkOworKyAgIHNpZ2M6OnNpZ25h bDx2b2lkKGludDMyLCBpbnQzMik+IHByaXZEcm9wQ2hhbmdlZDsKKysgICBzaWdjOjpzaWduYWw8 dm9pZCgpPiBkZXN0TW92ZURldFduZFRvTW91c2VQb3NDaGFuZ2VkOworIAorICAgIEd1ZXN0RG5E U3JjICpHZXREbkRTcmModm9pZCkgeyByZXR1cm4gbVNyYzsgfQorICAgIEd1ZXN0RG5ERGVzdCAq R2V0RG5ERGVzdCh2b2lkKSB7IHJldHVybiBtRGVzdDsgfQorZGlmZiAtTmF1ciBvcGVuLXZtLXRv b2xzLTEzLjEuMC0yNTIxODg4NS5vbGQvc2VydmljZXMvcGx1Z2lucy9kbmRjcC94dXRpbHMveHV0 aWxzLmNjIG9wZW4tdm0tdG9vbHMtMTMuMS4wLTI1MjE4ODg1L3NlcnZpY2VzL3BsdWdpbnMvZG5k Y3AveHV0aWxzL3h1dGlscy5jYworLS0tIG9wZW4tdm0tdG9vbHMtMTMuMS4wLTI1MjE4ODg1Lm9s ZC9zZXJ2aWNlcy9wbHVnaW5zL2RuZGNwL3h1dGlscy94dXRpbHMuY2MJMjAyNi0wNS0yMCAwOToy OToyMi44MDA3MjUyOTIgKzAyMDAKKysrKyBvcGVuLXZtLXRvb2xzLTEzLjEuMC0yNTIxODg4NS9z ZXJ2aWNlcy9wbHVnaW5zL2RuZGNwL3h1dGlscy94dXRpbHMuY2MJMjAyNi0wNS0yMCAwOTo0Mzo0 NS4wNzY4MzU1NjQgKzAyMDAKK0BAIC00MiwxNCArNDIsMTQgQEAKKyAKKyAKKyAvKiBBY3R1YWwg ZGVmaW5pdGlvbnMgb2YgdGhlIHNpZ25hbHMgaW4gdGhpcyBjbGFzcy4gKi8KKy1zaWdjOjpzaWdu YWw8dm9pZCwgR2xpYjo6UmVmUHRyPEdkazo6U2NyZWVuPiA+IGN1cnJlbnREZXNrdG9wQ2hhbmdl ZDsKKy1zaWdjOjpzaWduYWw8dm9pZCwgR2xpYjo6UmVmUHRyPEdkazo6U2NyZWVuPiA+IGRlc2t0 b3BMYXlvdXRDaGFuZ2VkOworLXNpZ2M6OnNpZ25hbDx2b2lkLCBHbGliOjpSZWZQdHI8R2RrOjpT Y3JlZW4+ID4gZGVza3RvcEdlb21ldHJ5Q2hhbmdlZDsKKy1zaWdjOjpzaWduYWw8dm9pZCwgR2xp Yjo6UmVmUHRyPEdkazo6U2NyZWVuPiA+IGRlc2t0b3BWaWV3cG9ydENoYW5nZWQ7Cistc2lnYzo6 c2lnbmFsPHZvaWQsIEdsaWI6OlJlZlB0cjxHZGs6OlNjcmVlbj4gPiB3aW5kb3dTdGFja0NoYW5n ZWQ7Cistc2lnYzo6c2lnbmFsPHZvaWQsIEdsaWI6OlJlZlB0cjxHZGs6OlNjcmVlbj4gPiB3aW5k b3dNYW5hZ2VyQ2hhbmdlZDsKKy1zaWdjOjpzaWduYWw8dm9pZCwgR2xpYjo6UmVmUHRyPEdkazo6 U2NyZWVuPiA+IGFjdGl2ZVdpbmRvd0NoYW5nZWQ7Cistc2lnYzo6c2lnbmFsPHZvaWQsIEdsaWI6 OlJlZlB0cjxHZGs6OlNjcmVlbj4gPiB3b3JrQXJlYUNoYW5nZWQ7Cisrc2lnYzo6c2lnbmFsPHZv aWQoR2xpYjo6UmVmUHRyPEdkazo6U2NyZWVuPik+IGN1cnJlbnREZXNrdG9wQ2hhbmdlZDsKKytz aWdjOjpzaWduYWw8dm9pZChHbGliOjpSZWZQdHI8R2RrOjpTY3JlZW4+KT4gZGVza3RvcExheW91 dENoYW5nZWQ7Cisrc2lnYzo6c2lnbmFsPHZvaWQoR2xpYjo6UmVmUHRyPEdkazo6U2NyZWVuPik+ IGRlc2t0b3BHZW9tZXRyeUNoYW5nZWQ7Cisrc2lnYzo6c2lnbmFsPHZvaWQoR2xpYjo6UmVmUHRy PEdkazo6U2NyZWVuPik+IGRlc2t0b3BWaWV3cG9ydENoYW5nZWQ7Cisrc2lnYzo6c2lnbmFsPHZv aWQoR2xpYjo6UmVmUHRyPEdkazo6U2NyZWVuPik+IHdpbmRvd1N0YWNrQ2hhbmdlZDsKKytzaWdj OjpzaWduYWw8dm9pZChHbGliOjpSZWZQdHI8R2RrOjpTY3JlZW4+KT4gd2luZG93TWFuYWdlckNo YW5nZWQ7Cisrc2lnYzo6c2lnbmFsPHZvaWQoR2xpYjo6UmVmUHRyPEdkazo6U2NyZWVuPik+IGFj dGl2ZVdpbmRvd0NoYW5nZWQ7Cisrc2lnYzo6c2lnbmFsPHZvaWQoR2xpYjo6UmVmUHRyPEdkazo6 U2NyZWVuPik+IHdvcmtBcmVhQ2hhbmdlZDsKKyAKKyAvKiBOZWNlc3NhcnkgZm9yIGNhbGN1bGF0 aW5nIHBlci1tb25pdG9yIF9ORVRfV09SS0FSRUEgaW4gR2V0TW9uaXRvcldvcmtBcmVhKCkgKi8K KyBzdHJ1Y3QgTkVUV01TdHJ1dFBhcnRpYWwgeworZGlmZiAtTmF1ciBvcGVuLXZtLXRvb2xzLTEz LjEuMC0yNTIxODg4NS5vbGQvc2VydmljZXMvcGx1Z2lucy9kbmRjcC94dXRpbHMveHV0aWxzLmho IG9wZW4tdm0tdG9vbHMtMTMuMS4wLTI1MjE4ODg1L3NlcnZpY2VzL3BsdWdpbnMvZG5kY3AveHV0 aWxzL3h1dGlscy5oaAorLS0tIG9wZW4tdm0tdG9vbHMtMTMuMS4wLTI1MjE4ODg1Lm9sZC9zZXJ2 aWNlcy9wbHVnaW5zL2RuZGNwL3h1dGlscy94dXRpbHMuaGgJMjAyNi0wNS0yMCAwOToyOToyMi44 MDA3MjUyOTIgKzAyMDAKKysrKyBvcGVuLXZtLXRvb2xzLTEzLjEuMC0yNTIxODg4NS9zZXJ2aWNl cy9wbHVnaW5zL2RuZGNwL3h1dGlscy94dXRpbHMuaGgJMjAyNi0wNS0yMCAwOTo0Mzo0NS4wNzY0 OTI5MzggKzAyMDAKK0BAIC02NSwyMiArNjUsMjIgQEAKKyAKKyB1aW50MzIgR2V0TnVtRGVza3Rv cHMoR2xpYjo6UmVmUHRyPEdkazo6U2NyZWVuPiBzY3JlZW4pOworIHVpbnQzMiBHZXRDdXJyZW50 RGVza3RvcChHbGliOjpSZWZQdHI8R2RrOjpTY3JlZW4+IHNjcmVlbik7CistZXh0ZXJuIHNpZ2M6 OnNpZ25hbDx2b2lkLCBHbGliOjpSZWZQdHI8R2RrOjpTY3JlZW4+ID4gY3VycmVudERlc2t0b3BD aGFuZ2VkOworK2V4dGVybiBzaWdjOjpzaWduYWw8dm9pZChHbGliOjpSZWZQdHI8R2RrOjpTY3Jl ZW4+KT4gY3VycmVudERlc2t0b3BDaGFuZ2VkOworIAorIGJvb2wgR2V0RGVza3RvcExheW91dChH bGliOjpSZWZQdHI8R2RrOjpTY3JlZW4+IHNjcmVlbiwKKyAgICAgICAgICAgICAgICAgICAgICAg dWludDMyJiByb3dzLCB1aW50MzImIGNvbHVtbnMsIEd0azo6Q29ybmVyVHlwZSYgY29ybmVyLAor ICAgICAgICAgICAgICAgICAgICAgICBHdGs6Ok9yaWVudGF0aW9uJiBvcmllbnRhdGlvbik7Cist ZXh0ZXJuIHNpZ2M6OnNpZ25hbDx2b2lkLCBHbGliOjpSZWZQdHI8R2RrOjpTY3JlZW4+ID4gZGVz a3RvcExheW91dENoYW5nZWQ7CisrZXh0ZXJuIHNpZ2M6OnNpZ25hbDx2b2lkKEdsaWI6OlJlZlB0 cjxHZGs6OlNjcmVlbj4pPiBkZXNrdG9wTGF5b3V0Q2hhbmdlZDsKKyAKKyBib29sIEdldERlc2t0 b3BHZW9tZXRyeShHbGliOjpSZWZQdHI8R2RrOjpTY3JlZW4+IHNjcmVlbiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICB1aW50MzImIHdpZHRoLCB1aW50MzImIGhlaWdodCk7CistZXh0ZXJuIHNp Z2M6OnNpZ25hbDx2b2lkLCBHbGliOjpSZWZQdHI8R2RrOjpTY3JlZW4+ID4gZGVza3RvcEdlb21l dHJ5Q2hhbmdlZDsKKytleHRlcm4gc2lnYzo6c2lnbmFsPHZvaWQoR2xpYjo6UmVmUHRyPEdkazo6 U2NyZWVuPik+IGRlc2t0b3BHZW9tZXRyeUNoYW5nZWQ7CisgCisgYm9vbCBHZXREZXNrdG9wVmll d3BvcnQoR2xpYjo6UmVmUHRyPEdkazo6U2NyZWVuPiBzY3JlZW4sCisgICAgICAgICAgICAgICAg ICAgICAgICAgdWludDMyIGRlc2t0b3BJbmRleCwgVk1Qb2ludCYgdmlld3BvcnQpOworLWV4dGVy biBzaWdjOjpzaWduYWw8dm9pZCwgR2xpYjo6UmVmUHRyPEdkazo6U2NyZWVuPiA+IGRlc2t0b3BW aWV3cG9ydENoYW5nZWQ7CisrZXh0ZXJuIHNpZ2M6OnNpZ25hbDx2b2lkKEdsaWI6OlJlZlB0cjxH ZGs6OlNjcmVlbj4pPiBkZXNrdG9wVmlld3BvcnRDaGFuZ2VkOworIAorLWV4dGVybiBzaWdjOjpz aWduYWw8dm9pZCwgR2xpYjo6UmVmUHRyPEdkazo6U2NyZWVuPiA+IGFjdGl2ZVdpbmRvd0NoYW5n ZWQ7CisrZXh0ZXJuIHNpZ2M6OnNpZ25hbDx2b2lkKEdsaWI6OlJlZlB0cjxHZGs6OlNjcmVlbj4p PiBhY3RpdmVXaW5kb3dDaGFuZ2VkOworIAorIC8qIFdpbmRvdyBzdGFja2luZyAqLworIHZvaWQg UmFpc2VXaW5kb3coR2xpYjo6UmVmUHRyPEdkazo6V2luZG93PiB3aW5kb3csCitAQCAtODgsNyAr ODgsNyBAQAorICAgICAgICAgICAgICAgICAgICAgR2xpYjo6UmVmUHRyPEdkazo6V2luZG93Pigp LAorICAgICAgICAgICAgICAgICAgZ3VpbnQzMiB0aW1lc3RhbXAgPSAwKTsKKyBIb3N0V2luZG93 TGlzdCBHZXRIb3N0V2luZG93U3RhY2soKTsKKy1leHRlcm4gc2lnYzo6c2lnbmFsPHZvaWQsIEds aWI6OlJlZlB0cjxHZGs6OlNjcmVlbj4gPiB3aW5kb3dTdGFja0NoYW5nZWQ7CisrZXh0ZXJuIHNp Z2M6OnNpZ25hbDx2b2lkKEdsaWI6OlJlZlB0cjxHZGs6OlNjcmVlbj4pPiB3aW5kb3dTdGFja0No YW5nZWQ7CisgCisgCisgLyogTXVsdGktaGVhZCAqLworQEAgLTk2LDcgKzk2LDcgQEAKKyAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQgbW9uaXRvciwgR2RrOjpSZWN0YW5nbGUmIHJlY3QpOwor IAorIHV0Zjo6c3RyaW5nIEdldFdpbmRvd01hbmFnZXJOYW1lKEdsaWI6OlJlZlB0cjxHZGs6OlNj cmVlbj4gc2NyZWVuKTsKKy1leHRlcm4gc2lnYzo6c2lnbmFsPHZvaWQsIEdsaWI6OlJlZlB0cjxH ZGs6OlNjcmVlbj4gPiB3aW5kb3dNYW5hZ2VyQ2hhbmdlZDsKKytleHRlcm4gc2lnYzo6c2lnbmFs PHZvaWQoR2xpYjo6UmVmUHRyPEdkazo6U2NyZWVuPik+IHdpbmRvd01hbmFnZXJDaGFuZ2VkOwor IAorIHZvaWQgU2V0RnVsbHNjcmVlbk1vbml0b3JzSGludChHbGliOjpSZWZQdHI8R2RrOjpXaW5k b3c+IHdpbmRvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8 bG9uZz4gdG9wb2xvZ3kpOworQEAgLTEwOSw3ICsxMDksNyBAQAorICAgICAgICAgICAgICAgICAg ICAgICAgIGludCYgeCwgaW50JiB5LCBHZGs6Ok1vZGlmaWVyVHlwZSYgbWFzayk7CisgCisgCist ZXh0ZXJuIHNpZ2M6OnNpZ25hbDx2b2lkLCBHbGliOjpSZWZQdHI8R2RrOjpTY3JlZW4+ID4gd29y a0FyZWFDaGFuZ2VkOworK2V4dGVybiBzaWdjOjpzaWduYWw8dm9pZChHbGliOjpSZWZQdHI8R2Rr OjpTY3JlZW4+KT4gd29ya0FyZWFDaGFuZ2VkOworIAorIGJvb2wgR2V0WFdpbmRvd1NpemUoY29u c3QgR2xpYjo6UmVmUHRyPEdkazo6V2luZG93PiYgd2luZG93LCBpbnQmIHdpZHRoLAorICAgICAg ICAgICAgICAgICAgICAgaW50JiBoZWlnaHQpOwoKZGlmZiAtLWdpdCBhL29wZW4tdm0tdG9vbHMu c3BlYyBiL29wZW4tdm0tdG9vbHMuc3BlYwppbmRleCBmYWI0NDI2Li44MThmMTBmIDEwMDY0NAot LS0gYS9vcGVuLXZtLXRvb2xzLnNwZWMKKysrIGIvb3Blbi12bS10b29scy5zcGVjCkBAIC0xLDQ5 ICsxLDEyIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyMjIENvcHlyaWdodCAyMDEzLTIw MjMgVk13YXJlLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyMjCi0jIyMgUlBNIFNQRUMg ZmlsZSBmb3IgYnVpbGRpbmcgb3Blbi12bS10b29scyBwYWNrYWdlcy4KLSMjIwotIyMjCi0jIyMg VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkKLSMjIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdmVyc2lvbiAyIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwotIyMjIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLgotIyMjCi0jIyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0jIyMgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSMjIyBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl Ci0jIyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSMjIwot IyMjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlCi0jIyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUg dG8gdGhlIEZyZWUgU29mdHdhcmUKLSMjIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKLQotJWdsb2JhbCBtYWpvcnZlcnNpb24gICAgMTMuMAotJWdsb2JhbCBtaW5v cnZlcnNpb24gICAgMTAKLSVnbG9iYWwgdG9vbHNidWlsZCAgICAgIDI1MDU2MTUxCi0lZ2xvYmFs IHRvb2xzdmVyc2lvbiAgICAle21ham9ydmVyc2lvbn0uJXttaW5vcnZlcnNpb259CislZ2xvYmFs IHRvb2xzYnVpbGQgICAgICAyNTIxODg4NQogJWdsb2JhbCB0b29sc2RhZW1vbiAgICAgdm10b29s c2QKICVnbG9iYWwgdmdhdXRoZGFlbW9uICAgIHZnYXV0aGQKIAotIyBndGttbTMgaXMgcmVtb3Zl ZCBmcm9tIFJIRUwgMTAsIGJ1bmRsZSBpdCB1bnRpbCB0aGUgcHJvamVjdCBpcyBwb3J0ZWQKLSMg R1RLIDQsIHNlZSBSSEVMLTM1NTM3Ci0lZ2xvYmFsIGJ1bmRsZV9ndGttbTMgICAxCi0KIE5hbWU6 ICAgICAgICAgICAgIG9wZW4tdm0tdG9vbHMKLVZlcnNpb246ICAgICAgICAgICV7dG9vbHN2ZXJz aW9ufQotUmVsZWFzZTogICAgICAgICAgMSV7P2Rpc3R9CitWZXJzaW9uOiAgICAgICAgICAxMy4x LjAKK1JlbGVhc2U6ICAgICAgICAgICVhdXRvcmVsZWFzZQogU3VtbWFyeTogICAgICAgICAgT3Bl biBWaXJ0dWFsIE1hY2hpbmUgVG9vbHMgZm9yIHZpcnR1YWwgbWFjaGluZXMgaG9zdGVkIG9uIFZN d2FyZQotJWlmIDAlez9idW5kbGVfZ3RrbW0zfQotIyBhdGttbTogTEdQTC0yLjEtb3ItbGF0ZXIK LSMgY2Fpcm9tbTogTEdQTC0yLjAtb3ItbGF0ZXIKLSMgZ2xpYm1tMi40OiBMR1BMLTIuMS1vci1s YXRlciBBTkQgR1BMLTIuMC1vci1sYXRlcgotIyBndGttbTMuMDogTEdQTC0yLjEtb3ItbGF0ZXIg QU5EIEdQTC0yLjAtb3ItbGF0ZXIKLSMgbGlic2lnYysrMjA6IExHUEwtMi4xLW9yLWxhdGVyCi0j IHBhbmdvbW06IExHUEwtMi4xLW9yLWxhdGVyIEFORCBHUEwtMi4wLW9ubHkKLUxpY2Vuc2U6ICAg ICAgICAgIEdQTC0yLjAtb25seSBBTkQgVzNDIEFORCBMR1BMLTIuMS1vbmx5IEFORCBJQ1UgQU5E IElTQyBBTkQgTUlUIEFORCBMR1BMLTIuMS1vci1sYXRlciBBTkQgTEdQTC0yLjAtb3ItbGF0ZXIg QU5EIEdQTC0yLjAtb3ItbGF0ZXIKLSVlbHNlCiBMaWNlbnNlOiAgICAgICAgICBHUEwtMi4wLW9u bHkgQU5EIFczQyBBTkQgTEdQTC0yLjEtb25seSBBTkQgSUNVIEFORCBJU0MgQU5EIE1JVAotJWVu ZGlmCiBVUkw6ICAgICAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vdm13YXJlLyV7bmFtZX0K IAogU291cmNlMDogICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3Ztd2FyZS8le25hbWV9L3Jl bGVhc2VzL2Rvd25sb2FkL3N0YWJsZS0le3ZlcnNpb259LyV7bmFtZX0tJXt2ZXJzaW9ufS0le3Rv b2xzYnVpbGR9LnRhci5negpAQCAtNTMsMzIgKzE2LDExIEBAIFNvdXJjZTM6ICAgICAgICAgIHJ1 bi12bWJsb2NrXHgyZGZ1c2UubW91bnQKIFNvdXJjZTQ6ICAgICAgICAgIG9wZW4tdm0tdG9vbHMu Y29uZgogU291cmNlNTogICAgICAgICAgdm10b29sc2QucGFtCiAKLSVpZiAwJXs/YnVuZGxlX2d0 a21tM30KLSVnbG9iYWwgYnVuZGxlZF9pbnN0YWxsX3BhdGggJXtfbGliZGlyfS8le25hbWV9Ci0K LSVnbG9iYWwgX19wcm92aWRlc19leGNsdWRlX2Zyb20gXiV7YnVuZGxlZF9pbnN0YWxsX3BhdGh9 Ci0lZ2xvYmFsIF9fcmVxdWlyZXNfZXhjbHVkZSBeKGxpYmF0a21tfGxpYmNhaXJvbW18bGliZ2Rr bW18bGliZ2lvbW18bGliZ2xpYm1tfGxpYmd0a21tfGxpYnBhbmdvbW18bGlic2lnYykuKiQKLQot IyBHZW5lcmFsbHkgdXNlIHRoZSBjb250ZW50IHRoYXQgd2FzIGFscmVhZHkgcGFydCBvZiBSSEVM IDEwIGFwYXJ0IGZyb20gbGlic2lnYysrMjAKLSMgYXMgaXQgd2FzIG1vZGlmaWVkIHRvIG5vdCBi dWlsZCBkb2N1bWVudGF0aW9uIGJlY2F1c2Ugb2YgZG9jYm9vazUsIHNlZSBpLmUuIFJIRUwtNDU1 NjUKLSMgSW4gb3JkZXIgb2YgdXNlOgotU291cmNlMTAxOiAgICAgICAgbGlic2lnYysrMjAtMi4x Mi4xLTQuZWw5LnNyYy5ycG0KLVNvdXJjZTEwMjogICAgICAgIGh0dHBzOi8va29qaWh1Yi5zdHJl YW0uY2VudG9zLm9yZy9rb2ppZmlsZXMvdm9sL2tvamkwMi9wYWNrYWdlcy9nbGlibW0yLjQvMi42 Ni42LzUuZWwxMC9zcmMvZ2xpYm1tMi40LTIuNjYuNi01LmVsMTAuc3JjLnJwbQotU291cmNlMTAz OiAgICAgICAgaHR0cHM6Ly9rb2ppaHViLnN0cmVhbS5jZW50b3Mub3JnL2tvamlmaWxlcy92b2wv a29qaTAyL3BhY2thZ2VzL2F0a21tLzIuMjguNC8yLmVsMTAvc3JjL2F0a21tLTIuMjguNC0yLmVs MTAuc3JjLnJwbQotU291cmNlMTA0OiAgICAgICAgaHR0cHM6Ly9rb2ppaHViLnN0cmVhbS5yZHUy LnJlZGhhdC5jb20va29qaWZpbGVzL3ZvbC9rb2ppMDIvcGFja2FnZXMvY2Fpcm9tbS8xLjE0LjUv NS5lbDEwL3NyYy9jYWlyb21tLTEuMTQuNS01LmVsMTAuc3JjLnJwbQotU291cmNlMTA1OiAgICAg ICAgaHR0cHM6Ly9rb2ppaHViLnN0cmVhbS5yZHUyLnJlZGhhdC5jb20va29qaWZpbGVzL3ZvbC9r b2ppMDIvcGFja2FnZXMvcGFuZ29tbS8yLjQ2LjQvMi5lbDEwL3NyYy9wYW5nb21tLTIuNDYuNC0y LmVsMTAuc3JjLnJwbQotU291cmNlMTA2OiAgICAgICAgaHR0cHM6Ly9rb2ppaHViLnN0cmVhbS5y ZHUyLnJlZGhhdC5jb20va29qaWZpbGVzL3ZvbC9rb2ppMDIvcGFja2FnZXMvZ3RrbW0zLjAvMy4y NC44LzYuZWwxMC9zcmMvZ3RrbW0zLjAtMy4yNC44LTYuZWwxMC5zcmMucnBtCi0lZW5kaWYKK1Bh dGNoMDogICAgICAgICAgIG9wZW4tdm0tdG9vbHMtZ2NjMTYucGF0Y2gKK1BhdGNoMTogICAgICAg ICAgIG9wZW4tdm0tdG9vbHMtc2lnYysrMy5wYXRjaAorUGF0Y2gyOiAgICAgICAgICAgb3Blbi12 bS10b29scy1vcGVuc3NsNC5wYXRjaAogCi0laWYgMCV7P3JoZWx9ID49IDcKLUV4Y2x1c2l2ZUFy Y2g6ICAgIHg4Nl82NCBhYXJjaDY0Ci0lZWxzZQogRXhjbHVzaXZlQXJjaDogICAgJXtpeDg2fSB4 ODZfNjQgYWFyY2g2NAotJWVuZGlmCi0KLSMgUGF0Y2hlcwotI1BhdGNoMDogICAgICAgICAgIDxw YXRjaC1uYW1lMD4ucGF0Y2gKLVBhdGNoMjogMDAwMS1GaXgtZGlzY2FyZGVkLXF1YWxpZmllcnMt d2FybmluZy1lcnJvci5wYXRjaAogCiBCdWlsZFJlcXVpcmVzOiAgICBhdXRvY29uZgogQnVpbGRS ZXF1aXJlczogICAgYXV0b21ha2UKQEAgLTg2LDE4ICsyOCw3IEBAIEJ1aWxkUmVxdWlyZXM6ICAg IGxpYnRvb2wKIEJ1aWxkUmVxdWlyZXM6ICAgIG1ha2UKIEJ1aWxkUmVxdWlyZXM6ICAgIGdjYy1j KysKIEJ1aWxkUmVxdWlyZXM6ICAgIGRveHlnZW4KLSMgRnVzZSBpcyBvcHRpb25hbCBhbmQgZW5h YmxlcyB2bWJsb2NrLWZ1c2UKLSMgU3dpdGNoaW5nIEZlZG9yYSB0byB1c2UgZnVzZTMuICAgUmVk IEhhdCB0byBzd2l0Y2ggb24gdGhlaXIgb3duIHNjaGVkdWxlLgotJWlmIDAlez9mZWRvcmF9IHx8 IDAlez9yaGVsfSA+IDgKLUJ1aWxkUmVxdWlyZXM6ICAgIGZ1c2UzLWRldmVsCi0lZWxzZQotQnVp bGRSZXF1aXJlczogICAgZnVzZS1kZXZlbAotJWVuZGlmCi1CdWlsZFJlcXVpcmVzOiAgICBnbGli Mi1kZXZlbCA+PSAyLjE0LjAKLUJ1aWxkUmVxdWlyZXM6ICAgIGxpYmljdS1kZXZlbAotQnVpbGRS ZXF1aXJlczogICAgbGlibXNwYWNrLWRldmVsCi0jIFVuZm9ydHVuYXRlbHksIHhtbHNlYzEtb3Bl bnNzbCBkb2VzIG5vdCBhZGQgbGlidG9vbC1sdGRsIGRlcGVuZGVuY3ksIHNvIHdlCi0jIG5lZWQg dG8gYWRkIGl0IG91cnNlbHZlcy4KK0J1aWxkUmVxdWlyZXM6ICAgIGZ1c2UzLWRldmVsID49IDMu MTAuMAogQnVpbGRSZXF1aXJlczogICAgbGlidG9vbC1sdGRsLWRldmVsCiBCdWlsZFJlcXVpcmVz OiAgICBsaWJYMTEtZGV2ZWwKIEJ1aWxkUmVxdWlyZXM6ICAgIGxpYlhleHQtZGV2ZWwKQEAgLTEw Niw1NiArMzcsMzcgQEAgQnVpbGRSZXF1aXJlczogICAgbGliWGluZXJhbWEtZGV2ZWwKIEJ1aWxk UmVxdWlyZXM6ICAgIGxpYlhyYW5kci1kZXZlbAogQnVpbGRSZXF1aXJlczogICAgbGliWHJlbmRl ci1kZXZlbAogQnVpbGRSZXF1aXJlczogICAgbGliWHRzdC1kZXZlbAotQnVpbGRSZXF1aXJlczog ICAgb3BlbnNzbC1kZXZlbAogQnVpbGRSZXF1aXJlczogICAgcGFtLWRldmVsCitCdWlsZFJlcXVp cmVzOiAgICBwa2djb25maWcoZ2xpYi0yLjApID49IDIuMzQuMAorQnVpbGRSZXF1aXJlczogICAg cGtnY29uZmlnKGdtb2R1bGUtMi4wKSA+PSAyLjM0LjAKK0J1aWxkUmVxdWlyZXM6ICAgIHBrZ2Nv bmZpZyhnb2JqZWN0LTIuMCkgPj0gMi4zNC4wCitCdWlsZFJlcXVpcmVzOiAgICBwa2djb25maWco Z3RocmVhZC0yLjApID49IDIuMzQuMAorQnVpbGRSZXF1aXJlczogICAgcGtnY29uZmlnKGd0azQp ID49IDQuMC4wCitCdWlsZFJlcXVpcmVzOiAgICBwa2djb25maWcoZ3RrbW0tNC4wKSA+PSA0LjAu MAorQnVpbGRSZXF1aXJlczogICAgcGtnY29uZmlnKGljdS1pMThuKQogQnVpbGRSZXF1aXJlczog ICAgcGtnY29uZmlnKGxpYmRybSkKK0J1aWxkUmVxdWlyZXM6ICAgIHBrZ2NvbmZpZyhsaWJtc3Bh Y2spID49IDAuMC4yMDA0MDMwOGFscGhhCiBCdWlsZFJlcXVpcmVzOiAgICBwa2djb25maWcobGli dWRldikKK0J1aWxkUmVxdWlyZXM6ICAgIHBrZ2NvbmZpZyhsaWJ0aXJwYykKK0J1aWxkUmVxdWly ZXM6ICAgIHBrZ2NvbmZpZyhvcGVuc3NsKQorQnVpbGRSZXF1aXJlczogICAgcGtnY29uZmlnKHBy b3RvYnVmKSA+PSAzLjAuMAogQnVpbGRSZXF1aXJlczogICAgcHJvY3BzLWRldmVsCi1CdWlsZFJl cXVpcmVzOiAgICB4bWxzZWMxLW9wZW5zc2wtZGV2ZWwKLQotJWlmIDAlez9mZWRvcmF9IHx8IDAl ez9yaGVsfSA+PSA4Ci1CdWlsZFJlcXVpcmVzOiAgICBndGszLWRldmVsID49IDMuMTAuMAotJWlm IDAlez9idW5kbGVfZ3RrbW0zfQotQnVpbGRSZXF1aXJlczogICAgYXRrLWRldmVsCi0jIEZvciBj YWlyb21tIHRlc3RzLCBjb3VsZCBiZSBkcm9wcGVkCi1CdWlsZFJlcXVpcmVzOiAgICBib29zdC1k ZXZlbAotQnVpbGRSZXF1aXJlczogICAgbGlieHNsdAotQnVpbGRSZXF1aXJlczogICAgbTQKLUJ1 aWxkUmVxdWlyZXM6ICAgIG1lc29uCi1CdWlsZFJlcXVpcmVzOiAgICBtbS1jb21tb24KLUJ1aWxk UmVxdWlyZXM6ICAgIHBlcmwtZ2VuZXJhdG9ycwotQnVpbGRSZXF1aXJlczogICAgcGVybC1pbnRl cnByZXRlcgotQnVpbGRSZXF1aXJlczogICAgcGVybChHZXRvcHQ6OkxvbmcpCi0lZWxzZQotQnVp bGRSZXF1aXJlczogICAgZ3RrbW0zMC1kZXZlbCA+PSAzLjEwLjAKLSVlbmRpZgotQnVpbGRSZXF1 aXJlczogICAgbGlidGlycGMtZGV2ZWwKIEJ1aWxkUmVxdWlyZXM6ICAgIHJwY2dlbgorIyBSZXF1 aXJlZCBvdGhlcndpc2UgdWRldiBydWxlcyBhcmUgbm90IGJ1aWx0OgogQnVpbGRSZXF1aXJlczog ICAgc3lzdGVtZC11ZGV2Ci0lZWxzZQotQnVpbGRSZXF1aXJlczogICAgZ3RrMi1kZXZlbCA+PSAy LjQuMAotQnVpbGRSZXF1aXJlczogICAgZ3RrbW0yNC1kZXZlbAotQnVpbGRSZXF1aXJlczogICAg c3lzdGVtZAotJWVuZGlmCitCdWlsZFJlcXVpcmVzOiAgICB4bWxzZWMxLW9wZW5zc2wtZGV2ZWwK IAogUmVxdWlyZXM6ICAgICAgICAgY29yZXV0aWxzCi0laWYgMCV7P2ZlZG9yYX0gfHwgMCV7P3Jo ZWx9ID4gOAogUmVxdWlyZXM6ICAgICAgICAgZnVzZTMKLSVlbHNlCi1SZXF1aXJlczogICAgICAg ICBmdXNlCi0lZW5kaWYKLVJlcXVpcmVzOiAgICAgICAgIGlwcm91dGUKIFJlcXVpcmVzOiAgICAg ICAgIGdyZXAKK1JlcXVpcmVzOiAgICAgICAgIGlwcm91dGUKIFJlcXVpcmVzOiAgICAgICAgIHBj aXV0aWxzCiBSZXF1aXJlczogICAgICAgICBzZWQKLVJlcXVpcmVzOiAgICAgICAgIHN5c3RlbWQK IFJlcXVpcmVzOiAgICAgICAgIHRhcgogUmVxdWlyZXM6ICAgICAgICAgdXRpbC1saW51eAogUmVx dWlyZXM6ICAgICAgICAgd2hpY2gKICMgeG1sc2VjMS1vcGVuc3NsIG5lZWRzIHRvIGJlIGFkZGVk IGV4cGxpY2l0bHkKIFJlcXVpcmVzOiAgICAgICAgIHhtbHNlYzEtb3BlbnNzbAotIyBEZXBsb3lQ a2cgcGx1Z2dpbiByZXF1aXJlIGRidXMtdXVpZGdlbgotUmVxdWlyZXM6ICAgICAgICAgZGJ1cy10 b29scwogCiAjIG9wZW4tdm0tdG9vbHMgPj0gMTAuMC4wIGRvIG5vdCByZXF1aXJlIG9wZW4tdm0t dG9vbHMtZGVwbG95cGtnIHByb3ZpZGVkIGJ5CiAjIFZNd2FyZS4gVGhhdCBmdW5jdGlvbmFsaXR5 IGlzIG5vdyBhdmFpbGFibGUgYXMgcGFydCBvZiBvcGVuLXZtLXRvb2xzIHBhY2thZ2UKQEAgLTE5 NSw3ICsxMDcsNiBAQCB2aXJ0dWFsIG1hY2hpbmVzIGJ5IHZSZWFsaXplIE9wZXJhdGlvbnMgU2Vy dmljZSBEaXNjb3ZlcnkgTWFuYWdlbWVudCBQYWNrLgogCiAlcGFja2FnZSAgICAgICAgICBzYWx0 LW1pbmlvbgogU3VtbWFyeTogICAgICAgICAgU2NyaXB0IGZpbGUgdG8gaW5zdGFsbC91bmluc3Rh bGwgc2FsdC1taW5pb24KLUdyb3VwOiAgICAgICAgICAgIFN5c3RlbSBFbnZpcm9ubWVudC9MaWJy YXJpZXMKIFJlcXVpcmVzOiAgICAgICAgICV7bmFtZX0lez9faXNhfSA9ICV7dmVyc2lvbn0tJXty ZWxlYXNlfSwgc3lzdGVtZCwgY3VybCwgY29yZXV0aWxzLCBnYXdrLCBncmVwCiBFeGNsdXNpdmVB cmNoOiAgICB4ODZfNjQKIApAQCAtMjIxLDE4OCArMTMyLDI5IEBAIHVzZWZ1bCBmb3IgdmVyaWZ5 aW5nIHRoZSBmdW5jdGlvbmluZyBvZiAle25hbWV9IGluIFZNd2FyZSB2aXJ0dWFsCiBtYWNoaW5l cy4KIAogJXByZXAKLSVhdXRvc2V0dXAgLXAyIC1uICV7bmFtZX0tJXt2ZXJzaW9ufS0le3Rvb2xz YnVpbGR9CislYXV0b3NldHVwIC1wMSAtbiAle25hbWV9LSV7dmVyc2lvbn0tJXt0b29sc2J1aWxk fQogCiAlYnVpbGQKLSVpZiAwJXs/YnVuZGxlX2d0a21tM30KLWV4cG9ydCBQQVRIPSIle19idWls ZHJvb3RkaXJ9L2JpbjokUEFUSCIKLQotZnVuY3Rpb24gaW5zdGFsbF9ycG1zX3RvX2N1cnJlbnRf ZGlyKCkgewotICAgIFBBQ0tBR0VfUlBNPSQoZXZhbCBlY2hvICQxKQotICAgIFBBQ0tBR0VfRElS PSV7X3JwbWRpcn0KLQotICAgIGVjaG8gImluc3RhbGxfcnBtc190b19jdXJyZW50X2RpcigpIGZv ciAkUEFDS0FHRV9ESVIvJFBBQ0tBR0VfUlBNIgotICAgIGlmIFsgISAtZiAkUEFDS0FHRV9ESVIv JFBBQ0tBR0VfUlBNIF07IHRoZW4KLSAgICAgICAgIyBIYWNrIGZvciB0cHMgdGVzdHMKLSAgICAg ICAgQVJDSF9TVFI9JXtfYXJjaH0KLSAgICAgICAgJWlmYXJjaCAle2l4ODZ9Ci0gICAgICAgICAg ICBBUkNIX1NUUj0iaT84NiIKLSAgICAgICAgJWVuZGlmCi0gICAgICAgIFBBQ0tBR0VfRElSPSIk UEFDS0FHRV9ESVIvJEFSQ0hfU1RSIgotICAgICBmaQotCi0gICAgIGZvciBwYWNrYWdlIGluICQo bHMgJFBBQ0tBR0VfRElSLyRQQUNLQUdFX1JQTSkKLSAgICAgZG8KLSAgICAgICAgIGVjaG8gIiRw YWNrYWdlIgotICAgICAgICAgcnBtMmNwaW8gIiRwYWNrYWdlIiB8IGNwaW8gLWl2ZHUKLSAgICAg ZG9uZQotfQotCi1ycG1idWlsZF9idW5kbGVkKCkgewotICAgIHJwbWJ1aWxkIC0tbm9kZXBzIFwK LSAgICAgICAgICAgICAtLWRlZmluZSAnX3ByZWZpeCAle2J1bmRsZWRfaW5zdGFsbF9wYXRofScg XAotICAgICAgICAgICAgIC0tZGVmaW5lICdfX3BlcmwgL3Vzci9iaW4vcGVybCcgXAotICAgICAg ICAgICAgICRACi19Ci0KLWV4cG9ydCBMREZMQUdTPSItTCV7X2J1aWxkcm9vdGRpcn0le2J1bmRs ZWRfaW5zdGFsbF9wYXRofS8le19saWJ9ICRMREZMQUdTIgotZXhwb3J0IExERkxBR1M9Ii1XbCwt cnBhdGgsJXtidW5kbGVkX2luc3RhbGxfcGF0aH0vJXtfbGlifSAkTERGTEFHUyIKLWV4cG9ydCBM REZMQUdTPSItV2wsLXJwYXRoLWxpbmssJXtfYnVpbGRyb290ZGlyfSV7YnVuZGxlZF9pbnN0YWxs X3BhdGh9LyV7X2xpYn0gJExERkxBR1MiCi1leHBvcnQgUEtHX0NPTkZJR19QQVRIPSV7X2J1aWxk cm9vdGRpcn0le2J1bmRsZWRfaW5zdGFsbF9wYXRofS8le19saWJ9L3BrZ2NvbmZpZwotZXhwb3J0 IFBBVEg9IiV7X2J1aWxkcm9vdGRpcn0le2J1bmRsZWRfaW5zdGFsbF9wYXRofS9iaW46JFBBVEgi Ci0KLSMgbGlic2lnYysrMjAKLXJwbSAtaXZoICV7U09VUkNFMTAxfQotcnBtYnVpbGRfYnVuZGxl ZCAtYmEgJXtfc3BlY2Rpcn0vbGlic2lnYysrMjAuc3BlYwotcHVzaGQgJXtfYnVpbGRyb290ZGly fQotaW5zdGFsbF9ycG1zX3RvX2N1cnJlbnRfZGlyIGxpYnNpZ2MrKzIwKi5ycG0KLXBvcGQKLQot c2VkIC1pICdzQHByZWZpeD0le2J1bmRsZWRfaW5zdGFsbF9wYXRofUBwcmVmaXg9JXtfYnVpbGRy b290ZGlyfSV7YnVuZGxlZF9pbnN0YWxsX3BhdGh9QGcnIFwKLSAgJXtfYnVpbGRyb290ZGlyfSV7 YnVuZGxlZF9pbnN0YWxsX3BhdGh9LyV7X2xpYn0vcGtnY29uZmlnLyoucGMKLQotIyBnbGlibW0y LjQKLXJwbSAtaXZoICV7U09VUkNFMTAyfQotcnBtYnVpbGRfYnVuZGxlZCAtYmEgJXtfc3BlY2Rp cn0vZ2xpYm1tMi40LnNwZWMKLXB1c2hkICV7X2J1aWxkcm9vdGRpcn0KLWluc3RhbGxfcnBtc190 b19jdXJyZW50X2RpciBnbGlibW0yLjQqLnJwbQotcG9wZAotCi1zZWQgLWkgJ3NAcHJlZml4PSV7 YnVuZGxlZF9pbnN0YWxsX3BhdGh9QHByZWZpeD0le19idWlsZHJvb3RkaXJ9JXtidW5kbGVkX2lu c3RhbGxfcGF0aH1AZycgXAotICAle19idWlsZHJvb3RkaXJ9JXtidW5kbGVkX2luc3RhbGxfcGF0 aH0vJXtfbGlifS9wa2djb25maWcvKi5wYwotCi0jIGF0a21tCi1ycG0gLWl2aCAle1NPVVJDRTEw M30KLXJwbWJ1aWxkX2J1bmRsZWQgLWJhICV7X3NwZWNkaXJ9L2F0a21tLnNwZWMKLXB1c2hkICV7 X2J1aWxkcm9vdGRpcn0KLWluc3RhbGxfcnBtc190b19jdXJyZW50X2RpciBhdGttbSoucnBtCi1w b3BkCi0KLXNlZCAtaSAnc0BwcmVmaXg9JXtidW5kbGVkX2luc3RhbGxfcGF0aH1AcHJlZml4PSV7 X2J1aWxkcm9vdGRpcn0le2J1bmRsZWRfaW5zdGFsbF9wYXRofUBnJyBcCi0gICV7X2J1aWxkcm9v dGRpcn0le2J1bmRsZWRfaW5zdGFsbF9wYXRofS8le19saWJ9L3BrZ2NvbmZpZy8qLnBjCi0KLSMg Y2Fpcm9tbQotcnBtIC1pdmggJXtTT1VSQ0UxMDR9Ci1ycG1idWlsZF9idW5kbGVkIC0td2l0aG91 dD1kb2NfcGRmIC1iYSAle19zcGVjZGlyfS9jYWlyb21tLnNwZWMKLXB1c2hkICV7X2J1aWxkcm9v dGRpcn0KLWluc3RhbGxfcnBtc190b19jdXJyZW50X2RpciBjYWlyb21tKi5ycG0KLXBvcGQKLQot c2VkIC1pICdzQHByZWZpeD0le2J1bmRsZWRfaW5zdGFsbF9wYXRofUBwcmVmaXg9JXtfYnVpbGRy b290ZGlyfSV7YnVuZGxlZF9pbnN0YWxsX3BhdGh9QGcnIFwKLSAgJXtfYnVpbGRyb290ZGlyfSV7 YnVuZGxlZF9pbnN0YWxsX3BhdGh9LyV7X2xpYn0vcGtnY29uZmlnLyoucGMKLQotIyBwYW5nb21t Ci1ycG0gLWl2aCAle1NPVVJDRTEwNX0KLXJwbWJ1aWxkX2J1bmRsZWQgLWJhICV7X3NwZWNkaXJ9 L3BhbmdvbW0uc3BlYwotcHVzaGQgJXtfYnVpbGRyb290ZGlyfQotaW5zdGFsbF9ycG1zX3RvX2N1 cnJlbnRfZGlyIHBhbmdvbW0qLnJwbQotcG9wZAotCi1zZWQgLWkgJ3NAcHJlZml4PSV7YnVuZGxl ZF9pbnN0YWxsX3BhdGh9QHByZWZpeD0le19idWlsZHJvb3RkaXJ9JXtidW5kbGVkX2luc3RhbGxf cGF0aH1AZycgXAotICAle19idWlsZHJvb3RkaXJ9JXtidW5kbGVkX2luc3RhbGxfcGF0aH0vJXtf bGlifS9wa2djb25maWcvKi5wYwotCi0jIGd0a21tMy4wCi1ycG0gLWl2aCAle1NPVVJDRTEwNn0K LXJwbWJ1aWxkX2J1bmRsZWQgLWJhICV7X3NwZWNkaXJ9L2d0a21tMy4wLnNwZWMKLXB1c2hkICV7 X2J1aWxkcm9vdGRpcn0KLWluc3RhbGxfcnBtc190b19jdXJyZW50X2RpciBndGttbSoucnBtCi1w b3BkCi0KLXNlZCAtaSAnc0BwcmVmaXg9JXtidW5kbGVkX2luc3RhbGxfcGF0aH1AcHJlZml4PSV7 X2J1aWxkcm9vdGRpcn0le2J1bmRsZWRfaW5zdGFsbF9wYXRofUBnJyBcCi0gICV7X2J1aWxkcm9v dGRpcn0le2J1bmRsZWRfaW5zdGFsbF9wYXRofS8le19saWJ9L3BrZ2NvbmZpZy8qLnBjCi0KLSMg UmVtb3ZlIHRoZSBkb2Mgc3VicGFja2FnZXMgYXMgd2UgZG9uJ3QgbmVlZCB0aGVtCi1maW5kICV7 X3JwbWRpcn0gLW5hbWUgIipkb2MqLnJwbSIgLWRlbGV0ZQotJWVuZGlmCi0KIGF1dG9yZWNvbmYg LXZpZgogCiAlY29uZmlndXJlIFwKLSAgICAtLXdpdGhvdXQta2VybmVsLW1vZHVsZXMgXAotICAg IC0tZW5hYmxlLXhtbHNlYzEgXAorICAgIC0tZGlzYWJsZS1zdGF0aWMgXAogICAgIC0tZW5hYmxl LXJlc29sdXRpb25rbXMgXAotICAgIC0tZW5hYmxlLXNlcnZpY2VkaXNjb3ZlcnkgXAogJWlmYXJj aCB4ODZfNjQKICAgICAtLWVuYWJsZS1zYWx0LW1pbmlvbiBcCiAlZW5kaWYKLSVpZiAwJXs/ZmVk b3JhfSB8fCAwJXs/cmhlbH0gPj0gOAorICAgIC0tZW5hYmxlLXNlcnZpY2VkaXNjb3ZlcnkgXAor ICAgIC0tZW5hYmxlLXZtd2dmeGN0cmwgXAorICAgIC0td2l0aC1mdXNlIFwKKyAgICAtLXdpdGgt Z3RrNCBcCiAgICAgLS13aXRoLXRpcnBjIFwKLSAgICAtLXdpdGhvdXQtZ3RrMiBcCi0gICAgLS13 aXRob3V0LWd0a21tIFwKLSVpZiAwJXs/YnVuZGxlX2d0azNtbX0KLSAgICAtLXdpdGhvdXQtZ3Rr bW0zIFwKLSVlbmRpZgotJWVsc2UKLSAgICAtLXdpdGhvdXQtdGlycGMgXAotICAgIC0td2l0aG91 dC1ndGszIFwKLSAgICAtLXdpdGhvdXQtZ3RrbW0zIFwKLSVlbmRpZgotICAgIC0tZGlzYWJsZS1z dGF0aWMKKyAgICAtLXdpdGgteG1sc2VjMSBcCisgICAgLS13aXRob3V0LWtlcm5lbC1tb2R1bGVz CiAKIHNlZCAtaSAtZSAncyEgLXNoYXJlZCAhIC1XbCwtLWFzLW5lZWRlZFwwIWcnIGxpYnRvb2wK ICVtYWtlX2J1aWxkCiAKICVpbnN0YWxsCi1leHBvcnQgRE9OVF9TVFJJUD0xCi0KLSVpZiAwJXs/ YnVuZGxlX2d0a21tM30KLXNldCAtZQotZnVuY3Rpb24gaW5zdGFsbF9ycG1zX3RvX2N1cnJlbnRf ZGlyKCkgewotICAgIFBBQ0tBR0VfUlBNPSQoZXZhbCBlY2hvICQxKQotICAgIFBBQ0tBR0VfRElS PSV7X3JwbWRpcn0KLQotICAgIGVjaG8gImluc3RhbGxfcnBtc190b19jdXJyZW50X2RpcigpIGZv ciAkUEFDS0FHRV9ESVIvJFBBQ0tBR0VfUlBNIgotICAgIGlmIFsgISAtZiAkUEFDS0FHRV9ESVIv JFBBQ0tBR0VfUlBNIF07IHRoZW4KLSAgICAgICAgIyBIYWNrIGZvciB0cHMgdGVzdHMKLSAgICAg ICAgQVJDSF9TVFI9JXtfYXJjaH0KLSAgICAgICAgJWlmYXJjaCAle2l4ODZ9Ci0gICAgICAgICAg ICBBUkNIX1NUUj0iaT84NiIKLSAgICAgICAgJWVuZGlmCi0gICAgICAgIFBBQ0tBR0VfRElSPSIk UEFDS0FHRV9ESVIvJEFSQ0hfU1RSIgotICAgICBmaQotCi0gICAgIGZvciBwYWNrYWdlIGluICQo bHMgJFBBQ0tBR0VfRElSLyRQQUNLQUdFX1JQTSkKLSAgICAgZG8KLSAgICAgICAgIGVjaG8gIiRw YWNrYWdlIgotICAgICAgICAgcnBtMmNwaW8gIiRwYWNrYWdlIiB8IGNwaW8gLWl2ZHUKLSAgICAg ZG9uZQotfQotCi1wdXNoZCAle2J1aWxkcm9vdH0KLSMgSW5zdGFsbCBvbmx5IHdoYXQgd2UgbmVl ZCBpbiBydW50aW1lCi1pbnN0YWxsX3JwbXNfdG9fY3VycmVudF9kaXIgYXRrbW0tMi4yOC40LSou cnBtCi1pbnN0YWxsX3JwbXNfdG9fY3VycmVudF9kaXIgY2Fpcm9tbS0xLjE0LjUtKi5ycG0KLWlu c3RhbGxfcnBtc190b19jdXJyZW50X2RpciBnbGlibW0yLjQtMi42NioucnBtCi1pbnN0YWxsX3Jw bXNfdG9fY3VycmVudF9kaXIgZ3RrbW0zLjAtMy4yNC44Ki5ycG0KLWluc3RhbGxfcnBtc190b19j dXJyZW50X2RpciBsaWJzaWdjKysyMC0yLjEyLjEqLnJwbQotaW5zdGFsbF9ycG1zX3RvX2N1cnJl bnRfZGlyIHBhbmdvbW0tMi40Ni40Ki5ycG0KLXBvcGQKLQotIyBjbGVhbiB0aGUgY3JlYXRlZCBi dW5kbGVkIHJwbXMgaWYgdGhlcmUgYXJlIGFueQotcm0gLXJmICV7X3NyY3JwbWRpcn0vbGlic2ln YysrMjAqLnNyYy5ycG0KLWZpbmQgJXtfcnBtZGlyfSAtbmFtZSAibGlic2lnYysrMjAqLnJwbSIg LWRlbGV0ZQotcm0gLXJmICV7X3NyY3JwbWRpcn0vZ2xpYm1tMi40Ki5zcmMucnBtCi1maW5kICV7 X3JwbWRpcn0gLW5hbWUgImdsaWJtbTIuNCoucnBtIiAtZGVsZXRlCi1ybSAtcmYgJXtfc3JjcnBt ZGlyfS9hdGttbSouc3JjLnJwbQotZmluZCAle19ycG1kaXJ9IC1uYW1lICJhdGttbSoucnBtIiAt ZGVsZXRlCi1ybSAtcmYgJXtfc3JjcnBtZGlyfS9jYWlyb21tKi5zcmMucnBtCi1maW5kICV7X3Jw bWRpcn0gLW5hbWUgImNhaXJvbW0qLnJwbSIgLWRlbGV0ZQotcm0gLXJmICV7X3NyY3JwbWRpcn0v cGFuZ29tbSouc3JjLnJwbQotZmluZCAle19ycG1kaXJ9IC1uYW1lICJwYW5nb21tKi5ycG0iIC1k ZWxldGUKLXJtIC1yZiAle19zcmNycG1kaXJ9L2d0a21tKi5zcmMucnBtCi1maW5kICV7X3JwbWRp cn0gLW5hbWUgImd0a21tKi5ycG0iIC1kZWxldGUKLSVlbmRpZgotCiAlbWFrZV9pbnN0YWxsCiAK ICMgUmVtb3ZlIGV4ZWMgYml0IGZyb20gY29uZmlnIGZpbGVzCkBAIC00MzUsNyArMTg3LDYgQEAg aW5zdGFsbCAtcCAtbSA2NDQgLUQgJXtTT1VSQ0U1fSAle2J1aWxkcm9vdH0le19zeXNjb25mZGly fS9wYW0uZC92bXRvb2xzZAogIyBmaWxlLiBXZSBjYW4gYWRkICUlY2hlY2sgc2VjaW9uIG9uY2Ug J21ha2UgY2hlY2snIGlzIGZpeGVkIHVwc3RyZWFtLgogCiAlcG9zdAotJT9sZGNvbmZpZwogIyBT ZXR1cCBtb3VudCBwb2ludCBmb3IgU2hhcmVkIEZvbGRlcnMKICMgTk9URTogVXNlIHN5c3RlbWQt ZGV0ZWN0LXZpcnQgdG8gZGV0ZWN0IFZNd2FyZSBwbGF0Zm9ybSBiZWNhdXNlCiAjICAgICAgIHZt d2FyZS1jaGVja3ZtIG1pZ2h0IG1pc2JlaGF2ZSBvbiBub24tVk13YXJlIHBsYXRmb3Jtcy4KQEAg LTQ4MSw3ICsyMzIsNiBAQCBpZiAle19iaW5kaXJ9L3N5c3RlbWN0bCBpcy1hY3RpdmUgJXt0b29s c2RhZW1vbn0uc2VydmljZSAmPiAvZGV2L251bGw7IHRoZW4KIGZpCiAKICVwcmV1bgotJT9sZGNv bmZpZwogJXN5c3RlbWRfcHJldW4gJXt0b29sc2RhZW1vbn0uc2VydmljZSAle3ZnYXV0aGRhZW1v bn0uc2VydmljZQogCiBpZiBbICIkMSIgPSAiMCIgLWEgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCkBAIC01MDYsNyArMjU2LDYgQEAgZmkKICVzeXN0ZW1kX3ByZXVuIHJ1 bi12bWJsb2NrXFx4MmRmdXNlLm1vdW50CiAKICVwb3N0dW4KLSU/bGRjb25maWcKICVzeXN0ZW1k X3Bvc3R1bl93aXRoX3Jlc3RhcnQgJXt0b29sc2RhZW1vbn0uc2VydmljZSAle3ZnYXV0aGRhZW1v bn0uc2VydmljZQogCiAlcG9zdHVuIGRlc2t0b3AKQEAgLTU4MywxOSArMzMyLDYgQEAgZmkKICV7 X2xpYmRpcn0vJXtuYW1lfS9wbHVnaW5zL3ZtdXNyLwogJXtfdW5pdGRpcn0vcnVuLXZtYmxvY2tc eDJkZnVzZS5tb3VudAogCi0laWYgMCV7P2J1bmRsZV9ndGttbTN9Ci0le2J1bmRsZWRfaW5zdGFs bF9wYXRofS9zaGFyZS9kb2MvCi0le2J1bmRsZWRfaW5zdGFsbF9wYXRofS9zaGFyZS9saWNlbnNl cy8KLSV7YnVuZGxlZF9pbnN0YWxsX3BhdGh9LyV7X2xpYn0vbGliYXRrbW0qCi0le2J1bmRsZWRf aW5zdGFsbF9wYXRofS8le19saWJ9L2xpYmNhaXJvbW0qCi0le2J1bmRsZWRfaW5zdGFsbF9wYXRo fS8le19saWJ9L2xpYmdka21tKgotJXtidW5kbGVkX2luc3RhbGxfcGF0aH0vJXtfbGlifS9saWJn aW9tbSoKLSV7YnVuZGxlZF9pbnN0YWxsX3BhdGh9LyV7X2xpYn0vbGliZ2xpYm1tKgotJXtidW5k bGVkX2luc3RhbGxfcGF0aH0vJXtfbGlifS9saWJndGttbSoKLSV7YnVuZGxlZF9pbnN0YWxsX3Bh dGh9LyV7X2xpYn0vbGlicGFuZ29tbSoKLSV7YnVuZGxlZF9pbnN0YWxsX3BhdGh9LyV7X2xpYn0v bGlic2lnYyoKLSVlbmRpZgotCiAlZmlsZXMgc2RtcAogJXtfbGliZGlyfS8le25hbWV9L3BsdWdp bnMvdm1zdmMvbGlic2VydmljZURpc2NvdmVyeS5zbwogJXtfbGliZGlyfS8le25hbWV9L3NlcnZp Y2VEaXNjb3ZlcnkKQEAgLTYyMywyNTMgKzM1OSw0IEBAIGZpCiAle19iaW5kaXJ9L3Ztd2FyZS12 Z2F1dGgtc21va2V0ZXN0CiAKICVjaGFuZ2Vsb2cKLSogTW9uIEZlYiAxNiAyMDI2IEJvIFlhbmcg PGJveWFuZ0ByZWRoYXQuY29tPiAtIDEzLjAuMTAtMQotLSBSZWJhc2UgdG8gMTMuMC4xMCBbUkhF TC0xNDQ1NzddCi0tIFJlc29sdmVzOiBSSEVMLTE0NDU3NwotICAoW0VTWGldW1JIRUwxMF0gb3Bl bi12bS10b29scyB2ZXJzaW9uIDEzLjAuMTAgaGFzIGJlZW4gcmVsZWFzZWQgLSBwbGVhc2UgcmVi YXNlKQotCi0qIE1vbiBOb3YgMDMgMjAyNSBCbyBZYW5nIDxib3lhbmdAcmVkaGF0LmNvbT4gLSAx My4wLjUtMQotLSBSZWJhc2UgdG8gMTMuMC41IFtSSEVMLTExODUwNF0KLS0gUmVzb2x2ZXM6IFJI RUwtMTE4NTA0Ci0gIChbRVNYaV1bUkhFTDEwXSBvcGVuLXZtLXRvb2xzIHZlcnNpb24gMTMuMC41 IGhhcyBiZWVuIHJlbGVhc2VkIC0gcGxlYXNlIHJlYmFzZSkKLQotKiBNb24gT2N0IDA2IDIwMjUg TWlyb3NsYXYgUmV6YW5pbmEgPG1yZXphbmluQHJlZGhhdC5jb20+IC0gMTMuMC4wLTIKLS0gb3Z0 LUhhbmRsZS1uZXctY2xvdWQtaW5pdC1lcnJvci1jb2RlLWFuZC1zdGF0dXMucGF0Y2ggW1JIRUwt OTk3ODFdCi0tIG92dC1BZGRyZXNzLUNWRS0yMDI1LTQxMjQ0LnBhdGNoIFtSSEVMLTExNzM4Ml0K LS0gUmVzb2x2ZXM6IFJIRUwtOTk3ODEKLSAgKENsb3VkLWluaXQgcmVjZWl2ZXMgVEVSTSBzaWdu YWwgZnJvbSBQSUQgMSBpbiB0aGUgbWlkZGxlIG9mIHJ1bm5pbmcgdXNlciBkYXRhIFtyaGVsLTEw XSkKLS0gUmVzb2x2ZXM6IFJIRUwtMTE3MzgyCi0gIChbQ0lTQSBNYWpvciBJbmNpZGVudF0gQ1ZF LTIwMjUtNDEyNDQgb3Blbi12bS10b29sczogTG9jYWwgcHJpdmlsZWdlIGVzY2FsYXRpb24gaW4g b3Blbi12bS10b29scyBbcmhlbC0xMC4yXSkKLQotKiBUaHUgSnVsIDI0IDIwMjUgQm8gWWFuZyA8 Ym95YW5nQHJlZGhhdC5jb20+IC0gMTMuMC4wLTEKLS0gUmViYXNlIHRvIDEzLjAuMCBbUkhFTC05 OTE1Nl0KLS0gUmVzb2x2ZXM6IFJIRUwtOTkxNTYKLSAgKFtFU1hpXVtSSEVMMTBdIG9wZW4tdm0t dG9vbHMgdmVyc2lvbiAxMy4wLjAgaGFzIGJlZW4gcmVsZWFzZWQgLSBwbGVhc2UgcmViYXNlKQot Ci0qIFR1ZSBEZWMgMDMgMjAyNCBNaXJvc2xhdiBSZXphbmluYSA8bXJlemFuaW5AcmVkaGF0LmNv bT4gLSAxMi41LjAtMQotLSBSZWJhc2UgdG8gMTIuNS4wIFtSSEVMLTYzMDkyXQotLSBSZXNvbHZl czogUkhFTC02MzA5MgotICAoW0VTWGldW1JIRUwxMF0gb3Blbi12bS10b29scyB2ZXJzaW9uIDEy LjUuMCBoYXMgYmVlbiByZWxlYXNlZCAtIHBsZWFzZSByZWJhc2UpCi0KLSogVHVlIE9jdCAyOSAy MDI0IFRyb3kgRGF3c29uIDx0ZGF3c29uQHJlZGhhdC5jb20+IC0gMTIuNC41LTIKLS0gQnVtcCBy ZWxlYXNlIGZvciBPY3RvYmVyIDIwMjQgbWFzcyByZWJ1aWxkOgotICBSZXNvbHZlczogUkhFTC02 NDAxOAotCi0qIFRodSBTZXAgMTIgMjAyNCBNaXJvc2xhdiBSZXphbmluYSA8bXJlemFuaW5AcmVk aGF0LmNvbT4gLSAxMi40LjUtMQotLSBSZWJhc2UgdG8gMTIuNC4xIFtSSEVMLTQ1NTQ5XQotLSBS ZXNvbHZlczogUkhFTC00NTU0OQotICAoW0VTWGldW1JIRUwxMF0gb3Blbi12bS10b29scyB2ZXJz aW9uIDEyLjQuNSBoYXMgYmVlbiByZWxlYXNlZCAtIHBsZWFzZSByZWJhc2UpCi0KLSogVGh1IEF1 ZyAyMiAyMDI0IFRvbWFzIFBvcGVsYSA8dHBvcGVsYUByZWRoYXQuY29tPiAtIDEyLjQuMC01Ci0t IEJ1bmRsZSBndGttbTMuMCBzdGFjayBvbiBSSEVMIDEwIHRvIGFsbG93IGl0cyByZW1vdmFsCi0t IFVwZGF0ZSBsaWNlbnNlIHN0cmluZyB0byBTUERYIGZvcm1hdAotCi0qIE1vbiBKdW4gMjQgMjAy NCBUcm95IERhd3NvbiA8dGRhd3NvbkByZWRoYXQuY29tPiAtIDEyLjQuMC00Ci0tIEJ1bXAgcmVs ZWFzZSBmb3IgSnVuZSAyMDI0IG1hc3MgcmVidWlsZAotCi0qIFdlZCBKdW4gMTIgMjAyNCBNaXJv c2xhdiBSZXphbmluYSA8bXJlemFuaW5AcmVkaGF0LmNvbT4gLSAxMi40LjAtMwotLSBvdnQtRHJv cC1ub3ctdW5uZWVkZWQtZ2RrLXBpeGJ1Zi14bGliLWRlcGVuZGVuY3kucGF0Y2ggW1JIRUwtNDA3 MzJdCi0tIFJlc29sdmVzOiBSSEVMLTQwNzMyCi0gIChEcm9wIHVubmVlZGVkIGdkay1waXhidWYt eGxpYiBkZXBlbmRlbmN5KQotCi0qIE1vbiBNYXkgMjAgMjAyNCBNaXJvc2xhdiBSZXphbmluYSA8 bXJlemFuaW5AcmVkaGF0LmNvbT4gLSAxMi40LjAtMgotLSBvdnQtUmVxdWlyZS1kYnVzLXRvb2xz LnBhdGNoIFtSSEVMLTM2MjkyXQotLSBSZXNvbHZlczogUkhFTC0zNjI5MgotICAoW0VTWGldW29w ZW4tdm0tdG9vbHNdVGhlIG9wZW4tdm0tdG9vbHMgc2hvdWxkIGRlcGVuZCBvbiBkYnVzLXRvb2xz IFtyaGVsLTEwXSkKLQotKiBGcmkgQXByIDE5IDIwMjQgTWlyb3NsYXYgUmV6YW5pbmEgPG1yZXph bmluQHJlZGhhdC5jb20+IC0gMTIuNC4wLTEKLS0gUmViYXNlIHRvIDEyLjQuMCBbUkhFTC0zMDM0 NV0KLS0gUmVzb2x2ZXM6IFtSSEVMLTMwMzQ1XQotICAoW0VTWGldW1JIRUwxMF1vcGVuLXZtLXRv b2xzIHZlcnNpb24gMTIuNC4wIGhhcyBiZWVuIHJlbGVhc2VkIC0gcGxlYXNlIHJlYmFzZSkKLQot KiBUaHUgSmFuIDI1IDIwMjQgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRv cmFwcm9qZWN0Lm9yZz4gLSAxMi4zLjUtMwotLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXBy b2plY3Qub3JnL3dpa2kvRmVkb3JhXzQwX01hc3NfUmVidWlsZAotCi0qIFN1biBKYW4gMjEgMjAy NCBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAt IDEyLjMuNS0yCi0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9G ZWRvcmFfNDBfTWFzc19SZWJ1aWxkCi0KLSogV2VkIE5vdiA4IDIwMjMgSm9obiBXb2xmZSA8andv bGZlQHZtd2FyZS5jb20+IC0gMTIuMy41LTEKLS0gUGFja2FnZSBuZXcgdXBzdHJlYW0gdmVyc2lv biBvZiBvcGVuLXZtLXRvb2xzLTEyLjMuNS0yMjU0NDA5OS4KLSAgLiBmaXggZm9yIENWRS0yMDIz LTM0MDU4IC0gYW5vdGhlciBTQU1MIHRva2VuIHNpZ25hdHVyZSBieXBhc3MgdnVsbmVyYWJpbGl0 eS4KLSAgLiBmaXggZm9yIENWRS0yMDIzLTM0MDU5IC0gYSBmaWxlIGRlc2NyaXB0b3IgaGlqYWNr IHZ1bG5lcmFiaWxpdHkgaW4gdGhlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZtd2Fy ZS11c2VyLXN1aWQtd3JhcHBlci4KLSAgLiBhZGRyZXNzIGh0dHBzOi8vZ2l0aHViLmNvbS92bXdh cmUvb3Blbi12bS10b29scy9pc3N1ZXMvMzEwCi0tIFJlbW92ZSBDVkUtMjAyMy0zNDA1OC5wYXRj aCBhbmQgQ1ZFLTIwMjMtMzQwNTkucGF0Y2ggYXMgbm8gbG9uZ2VyIG5lZWRlZC4KLQotKiBNb24g T2N0IDMwIDIwMjMgSm9obiBXb2xmZSA8andvbGZlQHZtd2FyZS5jb20+IC0gMTIuMy4wLTMKLS0g QWRkcmVzcyBDVkUtMjAyMy0zNDA1OCAtIEJaIDIyNDY5NjMgLSBTQU1MIHRva2VuIHNpZ25hdHVy ZSB0b2tlbiBieXBhc3MuCi0tIEFkZHJlc3MgQ1ZFLTIwMjMtMzQwNTkgLSBCWiAyMjQ2OTYyIC0g dm13YXJlLXVzZXItc3VpZC13cmFwcGVyCi0gIGZpbGUgZGVzY3JpcHRvciBoaWphY2sgdnVsbmVy YWJpbGl0eQotKiBUaHUgT2N0IDA1IDIwMjMgUGV0ZXIgUm9iaW5zb24gPHBicm9iaW5zb25AZmVk b3JhcHJvamVjdC5vcmc+IC0gMTIuMy4wLTIKLS0gVXNlIGZ1c2UzIG9uIG5ldyBSSEVMCi0KLSog U2F0IFNlcCA5IDIwMjMgSm9obiBXb2xmZSA8andvbGZlQHZtd2FyZS5jb20+IC0gMTIuMy4wLTEK LS0gUGFja2FnZSBuZXcgdXBzdHJlYW0gdmVyc2lvbiBvZiBvcGVuLXZtLXRvb2xzLTEyLjMuMC0y MjIzNDg3Mi4KLSAgLSBGaXggZm9yIENWRS0yMDIzLTIwOTAwIC0gYSBTQU1MIHRva2VuIHNpZ25h dHVyZSBieXBhc3MgdnVsbmVyYWJpbGl0eS4KLSAgLSBGaXggZm9yIENWRS0yMDIzLTIwODY3IC0g YW4gQXV0aGVudGljYXRpb24gQnlwYXNzIHZ1bG5lcmFiaWxpdHkuCi0gIC0gTGludXggcXVpZXNj ZWQgc25hcHNob3RzIGhhdmUgYmVlbiB1cGRhdGVkIHRvIGF2b2lkIGludGVybWl0dGVudCBoYW5n cwotICAgIG9mIHRoZSB2bXRvb2xzZCBwcm9jZXNzLgotICAgIC0gRmlsZSBzeXN0ZW1zIHByZWZy b3plbiBieSBjdXN0b20gcXVpZXNjaW5nIHNjcmlwdHMgbXVzdCBiZSBsaXN0ZWQgb24gdGhlCi0g ICAgICAiZXhjbHVkZWRGaWxlU3lzdGVtcyIgc2V0dGluZyBpbiB0aGUgInZtYmFja3VwIiBzZWN0 aW9uIG9mIHRoZSB0b29scy5jb25mCi0gICAgICBmaWxlLgotICAgIC0gQSB0b29scy5jb25mIGNv bmZpZ3VyYXRpb24gc2V0dGluZyBpcyBhdmFpbGFibGUgdG8gdGVtcG9yYWlseSBkaXJlY3QKLSAg ICAgIExpbnV4IHF1aWVzY2VkIHNuYXBob3RzIHRvIHJlc3RvcmUgcHJlIG9wZW4tdm0tdG9vbHMg MTIuMi4wIGJlaGF2aW9yCi0gICAgICBvZiBpZ25vcmluZyBmaWxlIHN5c3RlbXMgYWxyZWFkeSBm cm96ZW4uCi0gIC0gQSBudW1iZXIgb2YgQ292ZXJpdHkgcmVwb3J0ZWQgaXNzdWVzIGhhdmUgYmVl biBhZGRyZXNzZWQuCi0gIC0gQSBudW1iZXIgb2YgR2l0SHViIGlzc3VlcyBhbmQgcHVsbCByZXF1 ZXN0cyBoYXZlIGJlZW4gaGFuZGxlZC4KLQotKiBUaHUgSnVsIDIwIDIwMjMgRmVkb3JhIFJlbGVh c2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxMi4xLjUtNAotLSBS ZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzM5X01hc3Nf UmVidWlsZAotCi0qIFRodSBKYW4gMTkgMjAyMyBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8 cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDEyLjEuNS0zCi0tIFJlYnVpbHQgZm9yIGh0dHBz Oi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMzhfTWFzc19SZWJ1aWxkCi0KLSogU3Vu IEphbiAxIDIwMjMgSm9obiBXb2xmZSA8andvbGZlQHZtd2FyZS5jb20+IC0gMTIuMS41LTIKLS0g VXBkYXRlIHRoZSBjb3B5cmlnaHQgZGF0ZSBpbiB0aGUgb3Blbi12bS10b29scy5zcGVjIGZpbGUu Ci0KLSogU3VuIEphbiAxIDIwMjMgSm9obiBXb2xmZSA8andvbGZlQHZtd2FyZS5jb20+IC0gMTIu MS41LTEKLS0gUGFja2FnZSBuZXcgdXBzdHJlYW0gdmVyc2lvbiBvZiBvcGVuLXZtLXRvb2xzLTEy LjEuNS0yMDczNTExOS4KLSAgLSBUaGUgZGVwbG95UGtnIHBsdWdpbiBtYXkgcHJlbWF0dXJlbHkg cmVib290IHRoZSBndWVzdCBWTSBiZWZvcmUgY2xvdWQtaW5pdAotICAgIGhhcyBjb21wbGV0ZWQg dXNlciBkYXRhIHNldHVwCi0gIC0gQSBTSUdTRUdWIG1heSBiZSBlbmNvdW50ZXJlZCB3aGVuIGEg bm9uLXF1aWVzY2luZyBzbmFwc2hvdCB0aW1lcyBvdXQuCi0gIC0gQSBudW1iZXIgb2YgQ292ZXJp dHkgcmVwb3J0ZWQgaXNzdWVzIGhhdmUgYmVlbiBhZGRyZXNzZWQuCi0KLSogVGh1IFNlcCA4IDIw MjIgSm9obiBXb2xmZSA8andvbGZlQFZNV0FSRS5DT00+IC0gMTIuMS4wLTEKLS0gUGFja2FnZSBu ZXcgdXBzdHJlYW0gdmVyc2lvbiBvcGVuLXZtLXRvb2xzLTEyLjEuMC0yMDIxOTY2NS4KLSAgLiBm aXggZm9yIENWRS0yMDIyLTMxNjc2IC0gYSBsb2NhbCBwcml2aWxlZ2UgZXNjYWxhdGlvbiB2dWxu ZXJhYmlsaXR5LgotICAuIGFkZHJlc3MgYSBudW1iZXIgb2YgQ292ZXJpdHkgcmVwb3J0ZWQgaXNz dWVzLgotLSBSZW1vdmUgcGF0Y2ggMTIwNS1Qcm9wZXJseS1jaGVjay1hdXRob3JpemF0aW9uLW9u LWluY29taW5nLWd1ZXN0T3BzLXJlLnBhdGNoCi0gIGFzIG5vIGxvbmdlciBuZWVkZWQuCi0KLSog U3VuIFNlcCA0IDIwMjIgSm9obiBXb2xmZSA8andvbGZlQHZtd2FyZS5jb20+IC0gMTIuMC41LTMK LS0gQWRkIHBhdGNoIDEyMDUtUHJvcGVybHktY2hlY2stYXV0aG9yaXphdGlvbi1vbi1pbmNvbWlu Zy1ndWVzdE9wcy1yZS5wYXRjaAotICB0byBmaXggQ1ZFLTIwMjItMzE2NzYgaW4gb3Blbi12bS10 b29scyAxMi4wLjUgdHJhY2tlZCBpbiBQUiAxMjA5NzYuCi0tIENvcnJlY3QgYnVpbGQgcmVxdWly ZW1lbnRzIC0gcmVwbGFjZSBzeXN0ZW1kLXJwbS1tYWNyb3Mgd2l0aCBzeXN0ZW1kX3VkZXYuCi0K LSogRnJpIEp1bCAyMiAyMDIyIEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVk b3JhcHJvamVjdC5vcmc+IC0gMTIuMC41LTIKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFw cm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8zN19NYXNzX1JlYnVpbGQKLQotKiBNb24gTWF5IDMwIDIw MjIgSm9obiBXb2xmZSA8andvbGZlQHZtd2FyZS5jb20+IC0gMTIuMC41LTEKLS0gUGFja2FnZSBu ZXcgdXBzdHJlYW0gdmVyc2lvbiBvcGVuLXZtLXRvb2xzLTEyLjAuNS0xOTcxNjYxNy4KLSAtIE1h aW50ZW5hbmNlIHJlbGVhc2UgYWRkcmVzc2luZyBzb21lIHBvdGVudGlhbCBGVEJGUyBpc3N1ZXMu Ci0tIFJlbW92ZSBhc3luY3NvY2tldC5wYXRjaCBhcyBubyBsb25nZXIgbmVlZGVkLgotCi0qIE1v biBNYXkgOSAyMDIyIEpvaG4gV29sZmUgPGp3b2xmZUB2bXdhcmUuY29tPiAtIDEyLjAuMC0xCi0t IFBhY2thZ2UgbmV3IHVwc3RyZWFtIHZlcnNpb24gb3Blbi12bS10b29scy0xMi4wLjAtMTkzNDU2 NTUuCi0tIEVuYWJsZSBidWlsZCBvZiB0aGUgbmV3IHNhbHQtbWluaW9uIHBsdWdpbiBwYWNrYWdl LgotLSBEZWZlcnJpbmcgZW5hYmxlbWVudCBvZiBuZXcgY29udGFpbmVySW5mbyBwbHVnaW4gdW50 aWwgYSBsYXRlciByZXZpc2lvbi4KLS0gQnVpbGQgd2l0aCBmdXNlMyBvbiBGZWRvcmEuCi0KLSog VGh1IEZlYiAyNCAyMDIyIEpvaG4gV29sZmUgPGp3b2xmZUB2bXdhcmUuY29tPiAtIDExLjMuNS0x Ci0tIFBhY2thZ2UgbmV3IHVwc3RyZWFtIHZlcnNpb24gb3Blbi12bS10b29scy0xMS4zLjUtMTg1 NTc3OTQuCi0KLSogV2VkIEZlYiA5IDIwMjIgSm9obiBXb2xmZSA8andvbGZlQHZtd2FyZS5jb20+ IC0gMTEuMy4wLTYKLS0gUmVmYWN0b3JlZCBhc3luY3NvY2tldC5jIHBhdGNoIHRvIHVzZSBzaXpl X3Qgc2l6ZSBhbmQgaW5kZXggdmFyaWFibGVzLgotCi0qIFR1ZSBGZWIgMSAyMDIyIEpvaG4gV29s ZmUgPGp3b2xmZUB2bXdhcmUuY29tPiAtIDExLjMuMC01Ci0tIEFkZHJlc3MgKGZpeCkgc3RyaW5n cyBvciBhcnJheSBib3VuZHMgd2FybmluZ3MgZnJvbSBHQ0MgMTIuMC54LgotCi0qIFRodSBKYW4g MjAgMjAyMiBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qu b3JnPiAtIDExLjMuMC00Ci0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcv d2lraS9GZWRvcmFfMzZfTWFzc19SZWJ1aWxkCi0KLSogVHVlIFNlcCAxNCAyMDIxIFNhaGFuYSBQ cmFzYWQgPHNhaGFuYUByZWRoYXQuY29tPiAtIDExLjMuMC0zCi0tIFJlYnVpbHQgd2l0aCBPcGVu U1NMIDMuMC4wCi0KLSogVGh1IEp1bCAyMiAyMDIxIEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5n IDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gMTEuMy4wLTIKLS0gUmVidWlsdCBmb3IgaHR0 cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8zNV9NYXNzX1JlYnVpbGQKLQotKiBU aHUgSnVsIDE1IDIwMjEgUmF2aW5kcmEgS3VtYXIgPHJhdmluZHJha3VtYXJAdm13YXJlLmNvbT4g LSAxMS4zLjAtMQotLSBQYWNrYWdlIG5ldyB1cHN0cmVhbSB2ZXJzaW9uIG9wZW4tdm0tdG9vbHMt MTEuMy4wLTE4MDkwNTU4LgotLSBBZGQgdm13YXJlLWFsaWFzLWltcG9ydCwgdm13Z2Z4Y3RybCwg bGliZ2RwLnNvLCBsaWJndWVzdFN0b3JlLnNvCi0gIGFuZCBsaWJndWVzdFN0b3JlQ2xpZW50LnNv LiouCi0tIFJlbW92ZSBvcGVuLXZtLXRvb2xzLWZpeC1rbXMtYXV0b2RldGVjdGlvbi5wYXRjaCwK LSAgb3Blbi12bS10b29scy1nY2MxMS5wYXRjaCBhbmQgb3Blbi12bS10b29scy1nZGstZ2xpYi5w YXRjaAotICBhcyBubyBsb25nZXIgbmVlZGVkLgotCi0qIFR1ZSBKdW4gMDEgMjAyMSBTaW1vbmUg Q2Fyb25uaSA8bmVnYXRpdm8xN0BnbWFpbC5jb20+IC0gMTEuMi41LTkKLS0gQmFja3BvcnQgcGF0 Y2ggZm9yIEtNUyBhdXRvZGV0ZWN0aW9uLgotCi0qIFR1ZSBKdW4gMDEgMjAyMSBTaW1vbmUgQ2Fy b25uaSA8bmVnYXRpdm8xN0BnbWFpbC5jb20+IC0gMTEuMi41LTgKLS0gVHJpbSBjaGFuZ2Vsb2cu Ci0tIEZpeCBsaWJkcm0vdWRldiBidWlsZCByZXF1aXJlbWVudC4KLQotKiBUdWUgSnVuIDAxIDIw MjEgU2ltb25lIENhcm9ubmkgPG5lZ2F0aXZvMTdAZ21haWwuY29tPiAtIDExLjIuNS03Ci0tIEZp eCBidWlsZCBvbiBDZW50T1MvUkhFTCA3LgotLSBBbGxvdyBidWlsZGluZyBvbiBhYXJjaDY0IGZv ciBDZW50T1MvUkhFTCA4KyBhbmQgRmVkb3JhLgotLSBDbGVhbiB1cCBTUEVDIGZpbGUgKGNvbmRp dGlvbmFscywgYnVpbGQgcmVxdWlyZW1lbnRzLCBzY3JpcHRsZXRzLCBmb3JtYXR0aW5nKS4KLQot KiBNb24gQXByIDA1IDIwMjEgUmF2aW5kcmEgS3VtYXIgPHJhdmluZHJha3VtYXJAdm13YXJlLmNv bT4gLSAxMS4yLjUtNgotLSBBZGRlZCBtaXNzaW5nIGVzY2FwZSBjaGFyIGluIHJ1bi12bWJsb2Nr XFx4MmRmdXNlLm1vdW50IHNlcnZpY2UgbmFtZS4KLS0gRW5hYmxlZCBydW4tdm1ibG9ja1xceDJk ZnVzZS5tb3VudCBzZXJ2aWNlIGR1cmluZyBwb3N0LWluc3RhbGwuCi0tIE1vdmVkIHJ1bi12bWJs b2NrXHgyZGZ1c2UubW91bnQgc2VydmljZSB1bml0IHRvIGRlc2t0b3AgcGFja2FnZS4KLQotKiBG cmkgTWFyIDE5IDIwMjEgUmF2aW5kcmEgS3VtYXIgPHJhdmluZHJha3VtYXJAdm13YXJlLmNvbT4g LSAxMS4yLjUtNQotLSBBZGRlZCBvcGVuLXZtLXRvb2xzLWdkay1nbGliLnBhdGNoIHRvIGZpeCBS SEJaIzE5Mzk3MTguCi0KLSogVHVlIE1hciAxNiAyMDIxIE5lYWwgR29tcGEgPG5nb21wYTEzQGdt YWlsLmNvbT4gLSAxMS4yLjUtNAotLSBBZGQgbWlzc2luZyBCUnMKLS0gQ2xlYW4gdXAgY29uZGl0 aW9uYWxzIHRvIGJ1aWxkIGNvcnJlY3RseSB3aXRoIEVMOCsKLS0gU2ltcGxpZnkgc3lzdGVtZCBz Y3JpcHRsZXRzCi0KLSogVHVlIE1hciAwMiAyMDIxIFpiaWduaWV3IErEmWRyemVqZXdza2ktU3pt ZWsgPHpieXN6ZWtAaW4ud2F3LnBsPiAtIDExLjIuNS0zCi0tIFJlYnVpbHQgZm9yIHVwZGF0ZWQg c3lzdGVtZC1ycG0tbWFjcm9zCi0gIFNlZSBodHRwczovL3BhZ3VyZS5pby9mZXNjby9pc3N1ZS8y NTgzLgotCi0qIFR1ZSBKYW4gMjYgMjAyMSBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVs ZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDExLjIuNS0yCi0tIFJlYnVpbHQgZm9yIGh0dHBzOi8v ZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMzRfTWFzc19SZWJ1aWxkCi0KLSogRnJpIEph biAxNSAyMDIxIFJhdmluZHJhIEt1bWFyIDxyYXZpbmRyYWt1bWFyQHZtd2FyZS5jb20+IC0gMTEu Mi41LTEKLS0gUGFja2FnZSBuZXcgdXBzdHJlYW0gdmVyc2lvbiBvcGVuLXZtLXRvb2xzLTExLjIu NS0xNzMzNzY3NC4KLS0gbGliZG5ldCBkZXBlbmRlbmN5IHdhcyByZW1vdmVkIGluIG9wZW4tdm0t dG9vbHMgMTEuMC4wLiBTbywKLSAgcmVtb3ZlZCB0aGUgc3RhbGUgQnVpbGRSZXF1aXJlcyBmb3Ig bGliZG5ldC4KLQotKiBUaHUgSmFuIDE0IDIwMjEgUmljaGFyZCBXLk0uIEpvbmVzIDxyam9uZXNA cmVkaGF0LmNvbT4gLSAxMS4yLjAtMgotLSBCdW1wIGFuZCByZWJ1aWxkIGFnYWluc3QgbGliZG5l dCAxLjE0IChSSEJaIzE5MTU4MzgpLgotCi0qIEZyaSBOb3YgMDYgMjAyMCBSYXZpbmRyYSBLdW1h ciA8cmF2aW5kcmFrdW1hckB2bXdhcmUuY29tPiAtIDExLjIuMC0xCi0tIFBhY2thZ2UgbmV3IHVw c3RyZWFtIHZlcnNpb24gb3Blbi12bS10b29scy0xMS4yLjAtMTY5MzgxMTMuCi0KLSogRnJpIE9j dCAzMCAyMDIwIEplZmYgTGF3IDxsYXdAcmVkaGF0LmNvbT4gLSAxMS4xLjUtMgotLSBGaXggaW5j b3JyZWN0IHZvbGF0aWxlIGV4cG9zZWQgYnkgZ2NjLTExCi0KLSogVHVlIFNlcCAwOCAyMDIwIFJh dmluZHJhIEt1bWFyIDxyYXZpbmRyYWt1bWFyQHZtd2FyZS5jb20+IC0gMTEuMS41LTEKLS0gUGFj a2FnZSBuZXcgdXBzdHJlYW0gdmVyc2lvbiBvcGVuLXZtLXRvb2xzLTExLjEuNS0xNjcyNDQ2NC4K LS0gUmVtb3ZlZCBnY2MxMC13YXJuaW5nLnBhdGNoIGFuZCBzZG1wLWZpeGVzLnBhdGNoIChubyBs b25nZXIgbmVlZGVkKS4KLQotKiBUdWUgSnVsIDI4IDIwMjAgRmVkb3JhIFJlbGVhc2UgRW5naW5l ZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxMS4xLjAtNAotLSBSZWJ1aWx0IGZv ciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzMzX01hc3NfUmVidWlsZAot Ci0qIFRodSBKdWwgMDkgMjAyMCBNZXJsaW4gTWF0aGVzaXVzIDxtbWF0aGVzaUByZWRoYXQuY29t PiAtIDExLjEuMC0zCi0tIENvbmRpdGlvbmFsIGZpeGVzIHRvIGJ1aWxkIGZvciBFTE4KLQotKiBT dW4gSnVuIDIxIDIwMjAgUmF2aW5kcmEgS3VtYXIgPHJhdmluZHJha3VtYXJAdm13YXJlLmNvbT4g LSAxMS4xLjAtMgotLSBBZGRlZCBzZG1wLWZpeGVzLnBhdGNoIGZyb20gdXBzdHJlYW0gdG8gcmVt b3ZlIG5ldC10b29scyBkZXBlbmRlbmN5Ci0gIGFuZCBjb3VwbGUgb2YgaW1wb3J0YW50IGZpeGVz Ci0KLSogTW9uIE1heSAyNSAyMDIwIFJhdmluZHJhIEt1bWFyIDxyYXZpbmRyYWt1bWFyQHZtd2Fy ZS5jb20+IC0gMTEuMS4wLTEKLS0gUGFja2FnZSBuZXcgdXBzdHJlYW0gdmVyc2lvbiBvcGVuLXZt LXRvb2xzLTExLjEuMC0xNjAzNjU0Ni4KLS0gQWRkZWQgbmV3IG9wZW4tdm0tdG9vbHMtc2RtcCBw YWNrYWdlLgotLSBXb3JrYXJvdW5kIGZvciB2bS1zdXBwb3J0IHNjcmlwdCBwYXRoIGlzIG5vIGxv bmdlciBuZWVkZWQuCi0tIEFkZGVkIG1pc3NpbmcgZGVwZW5kZW5jaWVzIGZvciB2bS1zdXBwb3J0 IHNjcmlwdC4KLS0gVXBkYXRlZCBnY2MxMC13YXJuaW5nLnBhdGNoLgotLSBSZW1vdmVkIGdjYzkt c3RhdGljLWlubGluZS5wYXRjaCBhbmQgZGlza2luZm8tbG9nLXNwZXcucGF0Y2ggdGhhdAotICBh cmUgbm8gbG9uZ2VyIG5lZWRlZC4KLQotKiBTdW4gTWF5IDE3IDIwMjAgUmF2aW5kcmEgS3VtYXIg PHJhdmluZHJha3VtYXJAdm13YXJlLmNvbT4gLSAxMS4wLjUtNAotLSBVcGRhdGVkIFBBTSBjb25m aWd1cmF0aW9uIGZpbGUgdG8gZm9sbG93IGNvbmZpZ3VyZWQgYXV0aG4gc2NoZW1lLgotCi0qIFR1 ZSBNYXIgMjQgMjAyMCBSYXZpbmRyYSBLdW1hciA8cmF2aW5kcmFrdW1hckB2bXdhcmUuY29tPiAt IDExLjAuNS0zCi0tIFVzZSAvc2Jpbi9sZGNvbmZpZyBvbiBvbGRlciB0aGFuIEZlZG9yYSAyOCBh bmQgUkhFTCA4IHBsYXRmb3Jtcy4KLQotKiBGcmkgRmViIDA3IDIwMjAgUmF2aW5kcmEgS3VtYXIg PHJhdmluZHJha3VtYXJAdm13YXJlLmNvbT4gLSAxMS4wLjUtMgotLSBBZGRlZCBwYXRjaCBkaXNr aW5mby1sb2ctc3Bldy5wYXRjaC4KLQotKiBUdWUgRmViIDA0IDIwMjAgUmF2aW5kcmEgS3VtYXIg PHJhdmluZHJha3VtYXJAdm13YXJlLmNvbT4gLSAxMS4wLjUtMQotLSBQYWNrYWdlIG5ldyB1cHN0 cmVhbSB2ZXJzaW9uIG9wZW4tdm0tdG9vbHMtMTEuMC41LTE1Mzg5NTkyLgotLSBSZW1vdmVkIHZp eC1tZW1sZWFrLnBhdGNoIHdoaWNoIGlzIG5vIGxvbmdlciBuZWVkZWQuCi0KLSogVHVlIEZlYiAw NCAyMDIwIFJhdmluZHJhIEt1bWFyIDxyYXZpbmRyYWt1bWFyQHZtd2FyZS5jb20+IC0gMTEuMC4w LTYKLS0gQWRkZWQgZ2NjMTAtd2FybmluZy5wYXRjaCBmb3IgZml4aW5nIGNvbXBpbGF0aW9uIGlz c3Vlcy4KLQotKiBXZWQgSmFuIDI5IDIwMjAgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJl bGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxMS4wLjAtNQotLSBSZWJ1aWx0IGZvciBodHRwczov L2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzMyX01hc3NfUmVidWlsZAorJWF1dG9jaGFu Z2Vsb2cKCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCBlZjcyNWNmLi4wMzg1 YzZmIDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEsNyArMSBAQAotU0hB NTEyIChvcGVuLXZtLXRvb2xzLTEzLjAuMTAtMjUwNTYxNTEudGFyLmd6KSA9IGMzMzJmZDJlZmIz YmMxNmYyZmJiNzdiN2IwZDBmNGE1YmIyNTFiNWI0ODI4MjYwYmI2Y2JkOTY5MDNhMzhkNDkyZjkw NzI3ZGFkNTRlZjk1ZTQ0MmNmM2RjYzA0MzAzMmU1NTgxZTY0ZTNhZWU0YWZiNTViOWRiNTY4YTI5 MjU5Ci1TSEE1MTIgKGF0a21tLTIuMjguNC0yLmVsMTAuc3JjLnJwbSkgPSA1NTk1M2MzMjIxYzIy ODQzM2U3MjBiMjg1MTdjMWQyM2ZhYmExMDkxZWI1ZDgxYmU2NTIyYzA5NmI3Y2Y0MjgyOGVhZWZl MWMzMzBhYTJjYTBiMDU4MTg4Y2Y0ZGRkODU0OTQ2M2Q1ODE3OTQ5YTVhMzFlZmVhZDcyMDk3ZDA0 ZQotU0hBNTEyIChjYWlyb21tLTEuMTQuNS01LmVsMTAuc3JjLnJwbSkgPSAyZDAzNmU4M2M2M2Rk MjlhMTkzMzU0MmRlMjI3NGQ3NGI0ZTYzMTAwZDkwZGZkNTU5ZWFiZGQwMDMzM2FjNGRkMWNhMjVk ODEwZjUxODBjMWMxYWZkNzFjZDk4NTM3NmU3NzAwYmVhZmY0ZjM4NTEzMjIwMGM3NTYzM2JmYzk4 MAotU0hBNTEyIChnbGlibW0yLjQtMi42Ni42LTUuZWwxMC5zcmMucnBtKSA9IDc4Y2Q1ZDU0ZjFl ZjlmYWYyYmU3NWYyMjU1MGI1ZWM2MGI1NWY2YzQzNDVkZjkxZGI5NTg4OTc2MmY2MDZhMDY0OTkw NTA3NzkzNDUyN2I5OGJhMzI1MjEyYmI0NjBhMTlkZWFkZWY5ZWVhMTViYjBjNTA5MTVlNTYwNjIx ZDRjCi1TSEE1MTIgKGd0a21tMy4wLTMuMjQuOC02LmVsMTAuc3JjLnJwbSkgPSBlMGU0YzNjNTdj ZjM4NDkyOGMzOWIyMmFlODEyNzZmZjlmMmYzNGU3YWE2OTE0ZjdkOWEzY2U2NWI1ZTE3MGQ3ZDJl ZGFhNjE2NzhiOGYyYWMyZTViMTYwNzJkNzk2YWY3NGNhNTFhZDU2MGI2ZmM1MzljNzc5NmYzMThm YTZlYgotU0hBNTEyIChsaWJzaWdjKysyMC0yLjEyLjEtNC5lbDkuc3JjLnJwbSkgPSBjZGIxODAw YjI0MTM3OTRlODM2MjM4NzFiMmNhMmNhZGUwYjQ0NGUwYTkwZjY5NDhlMWYzZjQ0OWNkOTJlMTBi ZWIzZGQ3NjQ3MTAyM2Y5NWU0Zjc5NTY5M2IzZGVkMDliYzgzZjU1MWE1NGRhYjA2NWZkZWU1ZGJm NjdlOWE0MAotU0hBNTEyIChwYW5nb21tLTIuNDYuNC0yLmVsMTAuc3JjLnJwbSkgPSBhYjlhNzIz YjRhOTA1MDQxMDFkNTQ0MzM1MzMzZDlhMmVjM2M3NTU4MTAxYzcwMDVjYzY5YWEwNWMxMTVmNDYz OWQ3ZTQxMTBmYjVhODU2ZjQ4ZTM1ZWEwNjJhNTQ1MGFkZGRjYTA1ZjY4NjYyNjNmYThmMjBiOGNl Y2QxMmU2ZQorU0hBNTEyIChvcGVuLXZtLXRvb2xzLTEzLjEuMC0yNTIxODg4NS50YXIuZ3opID0g MDcwODZlMjQwM2JjNGFiOTcyNzgyMmNjZmI3MTUyZTQ3OWYzMjZhMWQzM2M1MzNiZGNmYjM4YjVh ZGU4YWEyZWQzYmMyNDQxMzBhYjc5NGFkNWI5OWQ5YTBiM2MzY2FlY2YwZjM3ZTJlMTY5NWJkOTcy MTNmMjIzNjQ5MGJiYjQKCmRpZmYgLS1naXQgYS92Z2F1dGhkLnNlcnZpY2UgYi92Z2F1dGhkLnNl cnZpY2UKaW5kZXggNmNhMzUwOC4uZDVmZWYyYyAxMDA2NDQKLS0tIGEvdmdhdXRoZC5zZXJ2aWNl CisrKyBiL3ZnYXV0aGQuc2VydmljZQpAQCAtMSw2ICsxLDYgQEAKIFtVbml0XQogRGVzY3JpcHRp b249VkdBdXRoIFNlcnZpY2UgZm9yIG9wZW4tdm0tdG9vbHMKLURvY3VtZW50YXRpb249aHR0cHM6 Ly9naXRodWIuY29tL3Ztd2FyZS9vcGVuLXZtLXRvb2xzCitEb2N1bWVudGF0aW9uPWh0dHA6Ly9n aXRodWIuY29tL3Ztd2FyZS9vcGVuLXZtLXRvb2xzCiBDb25kaXRpb25WaXJ0dWFsaXphdGlvbj12 bXdhcmUKIFBhcnRPZj12bXRvb2xzZC5zZXJ2aWNlCiAKCmRpZmYgLS1naXQgYS92bXRvb2xzZC5z ZXJ2aWNlIGIvdm10b29sc2Quc2VydmljZQppbmRleCA3NDU0ZjkwLi42Nzg4Zjk5IDEwMDY0NAot LS0gYS92bXRvb2xzZC5zZXJ2aWNlCisrKyBiL3ZtdG9vbHNkLnNlcnZpY2UKQEAgLTEsMTYgKzEs MTQgQEAKIFtVbml0XQogRGVzY3JpcHRpb249U2VydmljZSBmb3IgdmlydHVhbCBtYWNoaW5lcyBo b3N0ZWQgb24gVk13YXJlCi1Eb2N1bWVudGF0aW9uPWh0dHBzOi8vZ2l0aHViLmNvbS92bXdhcmUv b3Blbi12bS10b29scworRG9jdW1lbnRhdGlvbj1odHRwOi8vZ2l0aHViLmNvbS92bXdhcmUvb3Bl bi12bS10b29scwogQ29uZGl0aW9uVmlydHVhbGl6YXRpb249dm13YXJlCiBSZXF1aXJlcz12Z2F1 dGhkLnNlcnZpY2UKIEFmdGVyPXZnYXV0aGQuc2VydmljZQotU3RhcnRMaW1pdEludGVydmFsU2Vj PTMwCi1TdGFydExpbWl0QnVyc3Q9MworQmVmb3JlPWRpc3BsYXktbWFuYWdlci5zZXJ2aWNlCiAK IFtTZXJ2aWNlXQogRXhlY1N0YXJ0PS91c3IvYmluL3ZtdG9vbHNkCiBUaW1lb3V0U3RvcFNlYz01 Ci1SZXN0YXJ0PW9uLWZhaWx1cmUKIAogW0luc3RhbGxdCiBXYW50ZWRCeT1tdWx0aS11c2VyLnRh cmdldAo=