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: Than Ngo To: git-commits@fedoraproject.org Subject: [rpms/chromium] epel9-next: update to 120.0.6099.62 Date: Fri, 07 Aug 2026 16:05:48 GMT Message-ID: <178611874878.1.10058633427182482100.rpms-chromium-199e1e8c0b26@fedoraproject.org> List-ID: X-Git-Repo: rpms/chromium X-Git-Branch: epel9-next X-Git-Rev: 199e1e8c0b2640c7bc42a220ac3e6036181c839a QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvY2hyb21pdW0KQnJh bmNoIDogZXBlbDktbmV4dApDb21taXQgOiAxOTllMWU4YzBiMjY0MGM3YmM0MmEyMjBhYzNlNjAz NjE4MWM4MzlhCkF1dGhvciA6IFRoYW4gTmdvIDx0aGFuQHJlZGhhdC5jb20+CkRhdGUgICA6IDIw MjMtMTItMDZUMTA6MjA6MzUrMDE6MDAKU3RhdHMgIDogKzE5ODEvLTIxNjggaW4gMzIgZmlsZShz KQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2Nocm9taXVtL2Mv MTk5ZTFlOGMwYjI2NDBjN2JjNDJhMjIwYWMzZTYwMzYxODFjODM5YT9icmFuY2g9ZXBlbDktbmV4 dAoKTG9nOgp1cGRhdGUgdG8gMTIwLjAuNjA5OS42MgoKLS0tCmRpZmYgLS1naXQgYS9jaHJvbWl1 bS0xMTctdHlwZW5hbWUucGF0Y2ggYi9jaHJvbWl1bS0xMTctdHlwZW5hbWUucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzYjAwZTcuLjAwMDAwMDAKLS0tIGEvY2hyb21pdW0t MTE3LXR5cGVuYW1lLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTY0ICswLDAgQEAKLWRpZmYg LXVwIGNocm9taXVtLTExNS4wLjU3OTAuMjQvY2hyb21lL2Jyb3dzZXIvZG93bmxvYWQvYnViYmxl L2Rvd25sb2FkX2J1YmJsZV91cGRhdGVfc2VydmljZS5jYy5tZSBjaHJvbWl1bS0xMTUuMC41Nzkw LjI0L2Nocm9tZS9icm93c2VyL2Rvd25sb2FkL2J1YmJsZS9kb3dubG9hZF9idWJibGVfdXBkYXRl X3NlcnZpY2UuY2MKLS0tLSBjaHJvbWl1bS0xMTUuMC41NzkwLjI0L2Nocm9tZS9icm93c2VyL2Rv d25sb2FkL2J1YmJsZS9kb3dubG9hZF9idWJibGVfdXBkYXRlX3NlcnZpY2UuY2MubWUJMjAyMy0w Ni0xNyAxNDo1MDo1Ni4zNDI1OTE3MDIgKzAyMDAKLSsrKyBjaHJvbWl1bS0xMTUuMC41NzkwLjI0 L2Nocm9tZS9icm93c2VyL2Rvd25sb2FkL2J1YmJsZS9kb3dubG9hZF9idWJibGVfdXBkYXRlX3Nl cnZpY2UuY2MJMjAyMy0wNi0xNyAxNDo1Nzo0OC4wMjQzNzczNzUgKzAyMDAKLUBAIC05MSw3ICs5 MSw3IEBAIEl0ZW1Tb3J0S2V5IEdldFNvcnRLZXkoY29uc3QgSXRlbSYgaXRlbSkKLSAvLyBIZWxw ZXIgdG8gZ2V0IGFuIGl0ZXJhdG9yIHRvIHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIGNhY2hlLiBU aGUgY2FjaGUKLSAvLyBtdXN0IG5vdCBiZSBlbXB0eS4KLSB0ZW1wbGF0ZSA8dHlwZW5hbWUgSXRl bT4KLS1Tb3J0ZWRJdGVtczxJdGVtPjo6Y29uc3RfaXRlcmF0b3IgR2V0TGFzdEl0ZXIoY29uc3Qg U29ydGVkSXRlbXM8SXRlbT4mIGNhY2hlKSB7Ci0rdHlwZW5hbWUgU29ydGVkSXRlbXM8SXRlbT46 OmNvbnN0X2l0ZXJhdG9yIEdldExhc3RJdGVyKGNvbnN0IFNvcnRlZEl0ZW1zPEl0ZW0+JiBjYWNo ZSkgewotICAgQ0hFQ0soIWNhY2hlLmVtcHR5KCkpOwotICAgYXV0byBpdCA9IGNhY2hlLmVuZCgp OwotICAgcmV0dXJuIHN0ZDo6cHJldihpdCk7Ci1AQCAtOTY3LDkgKzk2Nyw5IEBAIGJvb2wgRG93 bmxvYWRCdWJibGVVcGRhdGVTZXJ2aWNlOjpDYWNoZU0KLSB9Ci0gCi0gdGVtcGxhdGUgPHR5cGVu YW1lIElkLCB0eXBlbmFtZSBJdGVtPgotLVNvcnRlZEl0ZW1zPEl0ZW0+OjppdGVyYXRvcgotK3R5 cGVuYW1lIFNvcnRlZEl0ZW1zPEl0ZW0+OjppdGVyYXRvcgotIERvd25sb2FkQnViYmxlVXBkYXRl U2VydmljZTo6Q2FjaGVNYW5hZ2VyOjpSZW1vdmVJdGVtRnJvbUNhY2hlQnlJdGVyKAotLSAgICBT b3J0ZWRJdGVtczxJdGVtPjo6aXRlcmF0b3IgaXRlciwKLSsgICAgdHlwZW5hbWUgU29ydGVkSXRl bXM8SXRlbT46Oml0ZXJhdG9yIGl0ZXIsCi0gICAgIFNvcnRlZEl0ZW1zPEl0ZW0+JiBjYWNoZSwK LSAgICAgSXRlck1hcDxJZCwgSXRlbT4mIGl0ZXJfbWFwKSB7Ci0gICBDSEVDSyhpdGVyICE9IGNh Y2hlLmVuZCgpKTsKLWRpZmYgLXVwIGNocm9taXVtLTExNS4wLjU3OTAuMzIvY29tcG9uZW50cy9v cHRpbWl6YXRpb25fZ3VpZGUvY29yZS90ZmxpdGVfbW9kZWxfZXhlY3V0b3IuaC5tZSBjaHJvbWl1 bS0xMTUuMC41NzkwLjMyL2NvbXBvbmVudHMvb3B0aW1pemF0aW9uX2d1aWRlL2NvcmUvdGZsaXRl X21vZGVsX2V4ZWN1dG9yLmgKLS0tLSBjaHJvbWl1bS0xMTUuMC41NzkwLjMyL2NvbXBvbmVudHMv b3B0aW1pemF0aW9uX2d1aWRlL2NvcmUvdGZsaXRlX21vZGVsX2V4ZWN1dG9yLmgubWUJMjAyMy0w Ni0xOCAyMTo1Mjo1My41MTU2MjUyMzcgKzAyMDAKLSsrKyBjaHJvbWl1bS0xMTUuMC41NzkwLjMy L2NvbXBvbmVudHMvb3B0aW1pemF0aW9uX2d1aWRlL2NvcmUvdGZsaXRlX21vZGVsX2V4ZWN1dG9y LmgJMjAyMy0wNi0xOCAyMTo1MzowNi44ODE4ODEyOTMgKzAyMDAKLUBAIC0xODksNyArMTg5LDcg QEAgY2xhc3MgVEZMaXRlTW9kZWxFeGVjdXRvciA6IHB1YmxpYyBNb2RlbAotICAgdm9pZCBTZW5k Rm9yQmF0Y2hFeGVjdXRpb24oCi0gICAgICAgQmF0Y2hFeGVjdXRpb25DYWxsYmFjayBjYWxsYmFj a19vbl9jb21wbGV0ZSwKLSAgICAgICBiYXNlOjpUaW1lVGlja3Mgc3RhcnRfdGltZSwKLS0gICAg ICBNb2RlbEV4ZWN1dG9yPE91dHB1dFR5cGUsIElucHV0VHlwZT46OkNvbnN0UmVmSW5wdXRWZWN0 b3IgaW5wdXRzKQotKyAgICAgIHR5cGVuYW1lIE1vZGVsRXhlY3V0b3I8T3V0cHV0VHlwZSwgSW5w dXRUeXBlPjo6Q29uc3RSZWZJbnB1dFZlY3RvciBpbnB1dHMpCi0gICAgICAgb3ZlcnJpZGUgewot ICAgICBEQ0hFQ0soZXhlY3V0aW9uX3Rhc2tfcnVubmVyXy0+UnVuc1Rhc2tzSW5DdXJyZW50U2Vx dWVuY2UoKSk7Ci0gICAgIERDSEVDS19DQUxMRURfT05fVkFMSURfU0VRVUVOQ0Uoc2VxdWVuY2Vf Y2hlY2tlcl8pOwotZGlmZiAtdXAgY2hyb21pdW0tMTE1LjAuNTc5MC4zMi90aGlyZF9wYXJ0eS9i bGluay9yZW5kZXJlci9jb3JlL2h0bWwvcGFyc2VyL2h0bWxfZG9jdW1lbnRfcGFyc2VyX2Zhc3Rw YXRoLmNjLm1lIGNocm9taXVtLTExNS4wLjU3OTAuMzIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVy ZXIvY29yZS9odG1sL3BhcnNlci9odG1sX2RvY3VtZW50X3BhcnNlcl9mYXN0cGF0aC5jYwotLS0t IGNocm9taXVtLTExNS4wLjU3OTAuMzIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9o dG1sL3BhcnNlci9odG1sX2RvY3VtZW50X3BhcnNlcl9mYXN0cGF0aC5jYy5tZQkyMDIzLTA2LTE5 IDEwOjAzOjMyLjMxOTIxODY3OCArMDIwMAotKysrIGNocm9taXVtLTExNS4wLjU3OTAuMzIvdGhp cmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9odG1sL3BhcnNlci9odG1sX2RvY3VtZW50X3Bh cnNlcl9mYXN0cGF0aC5jYwkyMDIzLTA2LTE5IDEwOjA0OjEyLjAyMzk0MjIzMiArMDIwMAotQEAg LTE2OSw3ICsxNjksNyBAQCBjbGFzcyBIVE1MRmFzdFBhdGhQYXJzZXIgewotICAgdXNpbmcgU3Bh biA9IGJhc2U6OnNwYW48Y29uc3QgQ2hhcj47Ci0gICB1c2luZyBVU3BhbiA9IGJhc2U6OnNwYW48 Y29uc3QgVUNoYXI+OwotICAgLy8gMzIgbWF0Y2hlcyB0aGF0IHVzZWQgYnkgSFRNTFRva2VuOjpB dHRyaWJ1dGUuCi0tICB0eXBlZGVmIHN0ZDo6Y29uZGl0aW9uYWw8c3RkOjppc19zYW1lX3Y8Q2hh ciwgVUNoYXI+LAotKyAgdHlwZWRlZiB0eXBlbmFtZSBzdGQ6OmNvbmRpdGlvbmFsPHN0ZDo6aXNf c2FtZV92PENoYXIsIFVDaGFyPiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhckxp dGVyYWxCdWZmZXI8MzI+LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIExDaGFyTGl0ZXJh bEJ1ZmZlcjwzMj4+Ojp0eXBlIExpdGVyYWxCdWZmZXJUeXBlOwotICAgdHlwZWRlZiBVQ2hhckxp dGVyYWxCdWZmZXI8MzI+IFVDaGFyTGl0ZXJhbEJ1ZmZlclR5cGU7Ci1kaWZmIC11cCBjaHJvbWl1 bS0xMTYuMC41ODQ1LjUwL2NvbnRlbnQvcHVibGljL2Jyb3dzZXIvd2ViX3VpX2Jyb3dzZXJfaW50 ZXJmYWNlX2Jyb2tlcl9yZWdpc3RyeS5oLm1lIGNocm9taXVtLTExNi4wLjU4NDUuNTAvY29udGVu dC9wdWJsaWMvYnJvd3Nlci93ZWJfdWlfYnJvd3Nlcl9pbnRlcmZhY2VfYnJva2VyX3JlZ2lzdHJ5 LmgKLS0tLSBjaHJvbWl1bS0xMTYuMC41ODQ1LjUwL2NvbnRlbnQvcHVibGljL2Jyb3dzZXIvd2Vi X3VpX2Jyb3dzZXJfaW50ZXJmYWNlX2Jyb2tlcl9yZWdpc3RyeS5oLm1lCTIwMjMtMDgtMDIgMTY6 MTg6MzAuMzgwMTA4MTI1ICswMjAwCi0rKysgY2hyb21pdW0tMTE2LjAuNTg0NS41MC9jb250ZW50 L3B1YmxpYy9icm93c2VyL3dlYl91aV9icm93c2VyX2ludGVyZmFjZV9icm9rZXJfcmVnaXN0cnku aAkyMDIzLTA4LTAyIDE2OjIwOjU5LjY2MDAyNDU3OCArMDIwMAotQEAgLTEyNywxMCArMTI3LDEw IEBAIGNsYXNzIENPTlRFTlRfRVhQT1JUIFdlYlVJQnJvd3NlckludGVyZmEKLSAgIC8vCi0gICAv LyBUT0RPKGNyYnVnLmNvbS8xNDA3OTM2KTogUG9pbnQgdG8gV2ViVUlKc0JyaWRnZSBkb2N1bWVu dGF0aW9uLgotICAgdGVtcGxhdGUgPHR5cGVuYW1lIENvbnRyb2xsZXJUeXBlPgotLSAgSnNCcmlk Z2VUcmFpdHM8Q29udHJvbGxlclR5cGU+OjpCaW5kZXJJbml0aWFsaXplciYgRm9yV2ViVUlXaXRo SnNCcmlkZ2UoKSB7Ci0rICB0eXBlbmFtZSBKc0JyaWRnZVRyYWl0czxDb250cm9sbGVyVHlwZT46 OkJpbmRlckluaXRpYWxpemVyJiBGb3JXZWJVSVdpdGhKc0JyaWRnZSgpIHsKLSAgICAgdXNpbmcg VHJhaXRzID0gSnNCcmlkZ2VUcmFpdHM8Q29udHJvbGxlclR5cGU+OwotLSAgICB1c2luZyBJbnRl cmZhY2UgPSBUcmFpdHM6OkludGVyZmFjZTsKLS0gICAgdXNpbmcgSnNCcmlkZ2VCaW5kZXJJbml0 aWFsaXplciA9IFRyYWl0czo6QmluZGVySW5pdGlhbGl6ZXI7Ci0rICAgIHVzaW5nIEludGVyZmFj ZSA9IHR5cGVuYW1lIFRyYWl0czo6SW50ZXJmYWNlOwotKyAgICB1c2luZyBKc0JyaWRnZUJpbmRl ckluaXRpYWxpemVyID0gdHlwZW5hbWUgVHJhaXRzOjpCaW5kZXJJbml0aWFsaXplcjsKLSAKLSAg ICAgLy8gV2ViVUlDb250cm9sbGVyOjpHZXRUeXBlKCkgcmVxdWlyZXMgYW4gaW5zdGFudGlhdGVk IFdlYlVJQ29udHJvbGxlcgotICAgICAvLyAoYmVjYXVzZSBpdCdzIGEgdmlydHVhbCBtZXRob2Qg YW5kIGNhbid0IGJlIHN0YXRpYykuIEhlcmUgd2Ugb25seSBoYXZlCi1kaWZmIC11cCBjaHJvbWl1 bS0xMTYuMC41ODQ1LjUwL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvcGFpbnQvb2Jq ZWN0X3BhaW50X3Byb3BlcnRpZXNfc3BhcnNlLmgubWUgY2hyb21pdW0tMTE2LjAuNTg0NS41MC90 aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL3BhaW50L29iamVjdF9wYWludF9wcm9wZXJ0 aWVzX3NwYXJzZS5oCi0tLS0gY2hyb21pdW0tMTE2LjAuNTg0NS41MC90aGlyZF9wYXJ0eS9ibGlu ay9yZW5kZXJlci9jb3JlL3BhaW50L29iamVjdF9wYWludF9wcm9wZXJ0aWVzX3NwYXJzZS5oLm1l CTIwMjMtMDgtMDIgMjA6NDE6MjMuOTg0NzI5NDYyICswMjAwCi0rKysgY2hyb21pdW0tMTE2LjAu NTg0NS41MC90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL3BhaW50L29iamVjdF9wYWlu dF9wcm9wZXJ0aWVzX3NwYXJzZS5oCTIwMjMtMDgtMDIgMjA6NDE6NTMuNzM3NTgzMDkzICswMjAw Ci1AQCAtMjcwLDggKzI3MCw4IEBAIGNsYXNzIENPUkVfRVhQT1JUIE9iamVjdFBhaW50UHJvcGVy dGllc1MKLSAgICAgICBOb2RlTGlzdCYgbm9kZXMsCi0gICAgICAgTm9kZUlkIG5vZGVfaWQsCi0g ICAgICAgY29uc3QgUGFyZW50VHlwZSYgcGFyZW50LAotLSAgICAgIE5vZGVUeXBlOjpTdGF0ZSYm IHN0YXRlLAotLSAgICAgIGNvbnN0IE5vZGVUeXBlOjpBbmltYXRpb25TdGF0ZSYgYW5pbWF0aW9u X3N0YXRlID0KLSsgICAgICB0eXBlbmFtZSBOb2RlVHlwZTo6U3RhdGUmJiBzdGF0ZSwKLSsgICAg ICBjb25zdCB0eXBlbmFtZSBOb2RlVHlwZTo6QW5pbWF0aW9uU3RhdGUmIGFuaW1hdGlvbl9zdGF0 ZSA9Ci0gICAgICAgICAgIE5vZGVUeXBlOjpBbmltYXRpb25TdGF0ZSgpKSB7Ci0gICAgIC8vIEZp cnN0LCBjaGVjayBpZiB3ZSBuZWVkIHRvIGFkZCBhIG5ldyBub2RlLgotICAgICBpZiAoIW5vZGVz Lkhhc0ZpZWxkKG5vZGVfaWQpKSB7Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL2Nv bXBvbmVudHMvb3B0aW1pemF0aW9uX2d1aWRlL2NvcmUvdGZsaXRlX21vZGVsX2V4ZWN1dG9yLmgu bWUgY2hyb21pdW0tMTE3LjAuNTkzOC42Mi9jb21wb25lbnRzL29wdGltaXphdGlvbl9ndWlkZS9j b3JlL3RmbGl0ZV9tb2RlbF9leGVjdXRvci5oCi0tLS0gY2hyb21pdW0tMTE3LjAuNTkzOC42Mi9j b21wb25lbnRzL29wdGltaXphdGlvbl9ndWlkZS9jb3JlL3RmbGl0ZV9tb2RlbF9leGVjdXRvci5o Lm1lCTIwMjMtMDktMTUgMTA6MjI6NTEuODg5Njk4NDAyICswMjAwCi0rKysgY2hyb21pdW0tMTE3 LjAuNTkzOC42Mi9jb21wb25lbnRzL29wdGltaXphdGlvbl9ndWlkZS9jb3JlL3RmbGl0ZV9tb2Rl bF9leGVjdXRvci5oCTIwMjMtMDktMTUgMTA6Mjg6MjYuNzAyNzE2MjI0ICswMjAwCi1AQCAtMjM0 LDcgKzIzNCw3IEBAIGNsYXNzIFRGTGl0ZU1vZGVsRXhlY3V0b3IgOiBwdWJsaWMgTW9kZWwKLSAg IC8vIFN0YXJ0cyB0aGUgc3luY2hyb25vdXMgZXhlY3V0aW9uIG9mIHRoZSBtb2RlbC4gUmV0dXJu cyBtb2RlbCBvdXRwdXRzLgotICAgLy8gTW9kZWwgbmVlZHMgdG8gYmUgbG9hZGVkLiBTeW5jaHJv bm91cyBjYWxscyBkbyBub3QgbG9hZCBvciB1bmxvYWQgbW9kZWwuCi0gICBzdGQ6OnZlY3Rvcjxh YnNsOjpvcHRpb25hbDxPdXRwdXRUeXBlPj4gU2VuZEZvckJhdGNoRXhlY3V0aW9uU3luYygKLS0g ICAgICBNb2RlbEV4ZWN1dG9yPE91dHB1dFR5cGUsIElucHV0VHlwZT46OkNvbnN0UmVmSW5wdXRW ZWN0b3IgaW5wdXRzKQotKyAgICAgIHR5cGVuYW1lIE1vZGVsRXhlY3V0b3I8T3V0cHV0VHlwZSwg SW5wdXRUeXBlPjo6Q29uc3RSZWZJbnB1dFZlY3RvciBpbnB1dHMpCi0gICAgICAgb3ZlcnJpZGUg ewotICAgICBEQ0hFQ0soZXhlY3V0aW9uX3Rhc2tfcnVubmVyXy0+UnVuc1Rhc2tzSW5DdXJyZW50 U2VxdWVuY2UoKSk7Ci0gICAgIERDSEVDS19DQUxMRURfT05fVkFMSURfU0VRVUVOQ0Uoc2VxdWVu Y2VfY2hlY2tlcl8pOwotQEAgLTM4OSw3ICszODksNyBAQCBjbGFzcyBURkxpdGVNb2RlbEV4ZWN1 dG9yIDogcHVibGljIE1vZGVsCi0gICAvLyBleGVjdXRlcyBpdCBvbiB0aGUgbW9kZWwgZXhlY3V0 aW9uIHRocmVhZC4KLSAgIHZvaWQgTG9hZE1vZGVsRmlsZUFuZEJhdGNoRXhlY3V0ZSgKLSAgICAg ICBCYXRjaEV4ZWN1dGlvbkNhbGxiYWNrIGNhbGxiYWNrX29uX2NvbXBsZXRlLAotLSAgICAgIE1v ZGVsRXhlY3V0b3I8T3V0cHV0VHlwZSwgSW5wdXRUeXBlPjo6Q29uc3RSZWZJbnB1dFZlY3RvciBp bnB1dHMpIHsKLSsgICAgICB0eXBlbmFtZSBNb2RlbEV4ZWN1dG9yPE91dHB1dFR5cGUsIElucHV0 VHlwZT46OkNvbnN0UmVmSW5wdXRWZWN0b3IgaW5wdXRzKSB7Ci0gICAgIERDSEVDSyhleGVjdXRp b25fdGFza19ydW5uZXJfLT5SdW5zVGFza3NJbkN1cnJlbnRTZXF1ZW5jZSgpKTsKLSAgICAgRENI RUNLX0NBTExFRF9PTl9WQUxJRF9TRVFVRU5DRShzZXF1ZW5jZV9jaGVja2VyXyk7Ci0gCi1AQCAt NDA2LDcgKzQwNiw3IEBAIGNsYXNzIFRGTGl0ZU1vZGVsRXhlY3V0b3IgOiBwdWJsaWMgTW9kZWwK LSAKLSAgIC8vIEJhdGNoIGV4ZWN1dGVzIHRoZSBsb2FkZWQgbW9kZWwgZm9yIGlucHV0cy4KLSAg IHZvaWQgQmF0Y2hFeGVjdXRlTG9hZGVkTW9kZWwoCi0tICAgICAgTW9kZWxFeGVjdXRvcjxPdXRw dXRUeXBlLCBJbnB1dFR5cGU+OjpDb25zdFJlZklucHV0VmVjdG9yIGlucHV0cywKLSsgICAgICB0 eXBlbmFtZSBNb2RlbEV4ZWN1dG9yPE91dHB1dFR5cGUsIElucHV0VHlwZT46OkNvbnN0UmVmSW5w dXRWZWN0b3IgaW5wdXRzLAotICAgICAgIHN0ZDo6dmVjdG9yPGFic2w6Om9wdGlvbmFsPE91dHB1 dFR5cGU+Piogb3V0cHV0cykgewotICAgICBEQ0hFQ0soZXhlY3V0aW9uX3Rhc2tfcnVubmVyXy0+ UnVuc1Rhc2tzSW5DdXJyZW50U2VxdWVuY2UoKSk7Ci0gICAgIERDSEVDS19DQUxMRURfT05fVkFM SURfU0VRVUVOQ0Uoc2VxdWVuY2VfY2hlY2tlcl8pOwotQEAgLTQ2Niw3ICs0NjYsNyBAQCBjbGFz cyBURkxpdGVNb2RlbEV4ZWN1dG9yIDogcHVibGljIE1vZGVsCi0gICAvLyBVbmxvYWRzIHRoZSBt b2RlbCBpZiBuZWVkZWQuCi0gICB2b2lkIEJhdGNoRXhlY3V0ZUxvYWRlZE1vZGVsQW5kUnVuQ2Fs bGJhY2soCi0gICAgICAgQmF0Y2hFeGVjdXRpb25DYWxsYmFjayBjYWxsYmFja19vbl9jb21wbGV0 ZSwKLS0gICAgICBNb2RlbEV4ZWN1dG9yPE91dHB1dFR5cGUsIElucHV0VHlwZT46OkNvbnN0UmVm SW5wdXRWZWN0b3IgaW5wdXRzLAotKyAgICAgIHR5cGVuYW1lIE1vZGVsRXhlY3V0b3I8T3V0cHV0 VHlwZSwgSW5wdXRUeXBlPjo6Q29uc3RSZWZJbnB1dFZlY3RvciBpbnB1dHMsCi0gICAgICAgRXhl Y3V0aW9uU3RhdHVzIGV4ZWN1dGlvbl9zdGF0dXMpIHsKLSAgICAgRENIRUNLKGV4ZWN1dGlvbl90 YXNrX3J1bm5lcl8tPlJ1bnNUYXNrc0luQ3VycmVudFNlcXVlbmNlKCkpOwotICAgICBEQ0hFQ0tf Q0FMTEVEX09OX1ZBTElEX1NFUVVFTkNFKHNlcXVlbmNlX2NoZWNrZXJfKTsKLWRpZmYgLXVwIGNo cm9taXVtLTExNy4wLjU5MzguNjIvY29tcG9uZW50cy9zdXBlcnZpc2VkX3VzZXIvY29yZS9icm93 c2VyL3Byb3RvX2ZldGNoZXIuY2MubWUgY2hyb21pdW0tMTE3LjAuNTkzOC42Mi9jb21wb25lbnRz L3N1cGVydmlzZWRfdXNlci9jb3JlL2Jyb3dzZXIvcHJvdG9fZmV0Y2hlci5jYwotLS0tIGNocm9t aXVtLTExNy4wLjU5MzguNjIvY29tcG9uZW50cy9zdXBlcnZpc2VkX3VzZXIvY29yZS9icm93c2Vy L3Byb3RvX2ZldGNoZXIuY2MubWUJMjAyMy0wOS0xNSAxNzoyMDoyMi41NTA2NTc1ODYgKzAyMDAK LSsrKyBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL2NvbXBvbmVudHMvc3VwZXJ2aXNlZF91c2VyL2Nv cmUvYnJvd3Nlci9wcm90b19mZXRjaGVyLmNjCTIwMjMtMDktMTUgMTc6MjQ6MTEuMzk2NzE2NzM0 ICswMjAwCi1AQCAtMzk5LDcgKzM5OSw3IEBAIGNsYXNzIFJldHJ5aW5nRmV0Y2hlckltcGwgZmlu YWwgOiBwdWJsaWMKLSAgIFJldHJ5aW5nRmV0Y2hlckltcGwoY29uc3QgUmV0cnlpbmdGZXRjaGVy SW1wbCYpID0gZGVsZXRlOwotICAgUmV0cnlpbmdGZXRjaGVySW1wbCYgb3BlcmF0b3I9KGNvbnN0 IFJldHJ5aW5nRmV0Y2hlckltcGwmKSA9IGRlbGV0ZTsKLSAKLS0gIHZvaWQgU3RhcnQoUHJvdG9G ZXRjaGVyPFJlc3BvbnNlPjo6Q2FsbGJhY2sgY2FsbGJhY2spIG92ZXJyaWRlIHsKLSsgIHZvaWQg U3RhcnQodHlwZW5hbWUgUHJvdG9GZXRjaGVyPFJlc3BvbnNlPjo6Q2FsbGJhY2sgY2FsbGJhY2sp IG92ZXJyaWRlIHsKLSAgICAgY2FsbGJhY2tfID0gc3RkOjptb3ZlKGNhbGxiYWNrKTsKLSAgICAg UmV0cnkoKTsKLSAgIH0KLUBAIC00MzUsNyArNDM1LDcgQEAgY2xhc3MgUmV0cnlpbmdGZXRjaGVy SW1wbCBmaW5hbCA6IHB1YmxpYwotICAgfQotIAotICAgLy8gQ2xpZW50IGNhbGxiYWNrLgotLSAg UHJvdG9GZXRjaGVyPFJlc3BvbnNlPjo6Q2FsbGJhY2sgY2FsbGJhY2tfOwotKyAgdHlwZW5hbWUg UHJvdG9GZXRjaGVyPFJlc3BvbnNlPjo6Q2FsbGJhY2sgY2FsbGJhY2tfOwotIAotICAgLy8gUmV0 cnkgY29udHJvbHMuCi0gICBiYXNlOjpPbmVTaG90VGltZXIgdGltZXJfOwotQEAgLTU3OCw3ICs1 NzgsNyBAQCBQYXJhbGxlbEZldGNoTWFuYWdlcjxSZXF1ZXN0LCBSZXNwb25zZT46Ci0gdGVtcGxh dGUgPHR5cGVuYW1lIFJlcXVlc3QsIHR5cGVuYW1lIFJlc3BvbnNlPgotIHZvaWQgUGFyYWxsZWxG ZXRjaE1hbmFnZXI8UmVxdWVzdCwgUmVzcG9uc2U+OjpGZXRjaCgKLSAgICAgY29uc3QgUmVxdWVz dCYgcmVxdWVzdCwKLS0gICAgRmV0Y2hlcjo6Q2FsbGJhY2sgY2FsbGJhY2spIHsKLSsgICAgdHlw ZW5hbWUgRmV0Y2hlcjo6Q2FsbGJhY2sgY2FsbGJhY2spIHsKLSAgIENIRUNLKGNhbGxiYWNrKSA8 PCAiVXNlIGJhc2U6OkRvTm90aGluZygpIGluc3RlYWQgb2YgZW1wdHkgY2FsbGJhY2suIjsKLSAg IEtleVR5cGUga2V5ID0gcmVxdWVzdHNfaW5fZmxpZ2h0Xy5BZGQoTWFrZUZldGNoZXIocmVxdWVz dCkpOwotICAgcmVxdWVzdHNfaW5fZmxpZ2h0Xy5Mb29rdXAoa2V5KS0+U3RhcnQoCi1kaWZmIC11 cCBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL2NvbXBvbmVudHMvc3VwZXJ2aXNlZF91c2VyL2NvcmUv YnJvd3Nlci9wcm90b19mZXRjaGVyLmgubWUgY2hyb21pdW0tMTE3LjAuNTkzOC42Mi9jb21wb25l bnRzL3N1cGVydmlzZWRfdXNlci9jb3JlL2Jyb3dzZXIvcHJvdG9fZmV0Y2hlci5oCi0tLS0gY2hy b21pdW0tMTE3LjAuNTkzOC42Mi9jb21wb25lbnRzL3N1cGVydmlzZWRfdXNlci9jb3JlL2Jyb3dz ZXIvcHJvdG9fZmV0Y2hlci5oLm1lCTIwMjMtMDktMTUgMTc6MjA6NTYuNTQwNDYwMzkxICswMjAw Ci0rKysgY2hyb21pdW0tMTE3LjAuNTkzOC42Mi9jb21wb25lbnRzL3N1cGVydmlzZWRfdXNlci9j b3JlL2Jyb3dzZXIvcHJvdG9fZmV0Y2hlci5oCTIwMjMtMDktMTUgMTc6MjI6MTguMjQ2MjM3ODE3 ICswMjAwCi1AQCAtMTY1LDEwICsxNjUsMTAgQEAgY2xhc3MgUGFyYWxsZWxGZXRjaE1hbmFnZXIg ewotIAotICAgLy8gU3RhcnRzIHRoZSBmZXRjaC4gVW5kZXJseWluZyBmZXRjaGVyIGlzIHN0b3Jl ZCBpbnRlcm5hbGx5LCBhbmQgd2lsbCBiZQotICAgLy8gY2xlYW5lZCB1cCBhZnRlciBmaW5pc2gg b3Igd2hlbiB0aGlzIG1hbmFnZXIgaXMgZGVzdHJveWVkLgotLSAgdm9pZCBGZXRjaChjb25zdCBS ZXF1ZXN0JiByZXF1ZXN0LCBGZXRjaGVyOjpDYWxsYmFjayBjYWxsYmFjayk7Ci0rICB2b2lkIEZl dGNoKGNvbnN0IFJlcXVlc3QmIHJlcXVlc3QsIHR5cGVuYW1lIEZldGNoZXI6OkNhbGxiYWNrIGNh bGxiYWNrKTsKLSAKLSAgcHJpdmF0ZToKLS0gIHVzaW5nIEtleVR5cGUgPSBiYXNlOjpJRE1hcDxz dGQ6OnVuaXF1ZV9wdHI8RmV0Y2hlcj4+OjpLZXlUeXBlOwotKyAgdXNpbmcgS2V5VHlwZSA9IHR5 cGVuYW1lIGJhc2U6OklETWFwPHN0ZDo6dW5pcXVlX3B0cjxGZXRjaGVyPj46OktleVR5cGU7Ci0g Ci0gICAvLyBSZW1vdmUgZmV0Y2hlciB1bmRlciBrZXkgZnJvbSByZXF1ZXN0c19pbl9mbGlnaHRf LgotICAgdm9pZCBSZW1vdmUoS2V5VHlwZSBrZXkpOwoKZGlmZiAtLWdpdCBhL2Nocm9taXVtLTEx OC1hcm02NC1tZW1vcnlfdGFnZ2luZy5wYXRjaCBiL2Nocm9taXVtLTExOC1hcm02NC1tZW1vcnlf dGFnZ2luZy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDYzZmIzNy4uMDAw MDAwMAotLS0gYS9jaHJvbWl1bS0xMTgtYXJtNjQtbWVtb3J5X3RhZ2dpbmcucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1kaWZmIC11cCBjaHJvbWl1bS0xMTguMC41OTkzLjMy L2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jX2NvbmZp Zy5oLm1lIGNocm9taXVtLTExOC4wLjU5OTMuMzIvYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2Fs bG9jYXRvci9wYXJ0aXRpb25fYWxsb2NfY29uZmlnLmgKLS0tLSBjaHJvbWl1bS0xMTguMC41OTkz LjMyL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jX2Nv bmZpZy5oLm1lCTIwMjMtMTAtMDMgMjA6MjU6MDEuMjgyNzgyNDI1ICswMjAwCi0rKysgY2hyb21p dW0tMTE4LjAuNTk5My4zMi9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3BhcnRp dGlvbl9hbGxvY19jb25maWcuaAkyMDIzLTEwLTAzIDIwOjI1OjI3LjE1MTIzNjY2NCArMDIwMAot QEAgLTE1MiwxMCArMTUyLDcgQEAgc3RhdGljX2Fzc2VydChzaXplb2Yodm9pZCopICE9IDgsICIi KTsKLSAgICghQlVJTERGTEFHKFBVVF9SRUZfQ09VTlRfSU5fUFJFVklPVVNfU0xPVCkgJiYgXAot ICAgIGRlZmluZWQoQVJDSF9DUFVfTElUVExFX0VORElBTikpCi0gCi0tI2RlZmluZSBQQV9DT05G SUdfSEFTX01FTU9SWV9UQUdHSU5HKCkgICAgICAgICAgICAgIFwKLS0gIChkZWZpbmVkKEFSQ0hf Q1BVX0FSTTY0KSAmJiBkZWZpbmVkKF9fY2xhbmdfXykgJiYgXAotLSAgICFkZWZpbmVkKEFERFJF U1NfU0FOSVRJWkVSKSAmJiAgICAgICAgICAgICAgICAgICBcCi0tICAgKEJVSUxERkxBRyhJU19M SU5VWCkgfHwgQlVJTERGTEFHKElTX0FORFJPSUQpKSkKLSsjZGVmaW5lIFBBX0NPTkZJR19IQVNf TUVNT1JZX1RBR0dJTkcoKSAwCi0gCi0gI2lmIFBBX0NPTkZJRyhIQVNfTUVNT1JZX1RBR0dJTkcp Ci0gc3RhdGljX2Fzc2VydChzaXplb2Yodm9pZCopID09IDgpOwoKZGlmZiAtLWdpdCBhL2Nocm9t aXVtLTExOC1weXRob24tMy4xMi1kZXByZWNhdGVkLnBhdGNoIGIvY2hyb21pdW0tMTE4LXB5dGhv bi0zLjEyLWRlcHJlY2F0ZWQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU4 MzdhZTUuLjAwMDAwMDAKLS0tIGEvY2hyb21pdW0tMTE4LXB5dGhvbi0zLjEyLWRlcHJlY2F0ZWQu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMzggKzAsMCBAQAotZGlmZiAtdXAgY2hyb21pdW0t MTE1LjAuNTc5MC4xMDIvYmFzZS93cml0ZV9idWlsZF9kYXRlX2hlYWRlci5weS5tZSBjaHJvbWl1 bS0xMTUuMC41NzkwLjEwMi9iYXNlL3dyaXRlX2J1aWxkX2RhdGVfaGVhZGVyLnB5Ci0tLS0gY2hy b21pdW0tMTE1LjAuNTc5MC4xMDIvYmFzZS93cml0ZV9idWlsZF9kYXRlX2hlYWRlci5weS5tZQky MDIzLTA3LTIyIDE0OjIzOjQyLjYyMDY3OTM5NyArMDIwMAotKysrIGNocm9taXVtLTExNS4wLjU3 OTAuMTAyL2Jhc2Uvd3JpdGVfYnVpbGRfZGF0ZV9oZWFkZXIucHkJMjAyMy0wNy0yMiAxNToyNDo0 Ni44MzMzMTAzMTAgKzAyMDAKLUBAIC0xNyw3ICsxNyw3IEBAIGRlZiBtYWluKCk6Ci0gICBhcmdz ID0gYXJndW1lbnRfcGFyc2VyLnBhcnNlX2FyZ3MoKQotIAotICAgZGF0ZV92YWwgPSBpbnQoYXJn cy50aW1lc3RhbXApCi0tICBkYXRlID0gZGF0ZXRpbWUuZGF0ZXRpbWUudXRjZnJvbXRpbWVzdGFt cChkYXRlX3ZhbCkKLSsgIGRhdGUgPSAgZGF0ZXRpbWUuZGF0ZXRpbWUuZnJvbXRpbWVzdGFtcChk YXRlX3ZhbCwgZGF0ZXRpbWUudGltZXpvbmUudXRjKQotICAgb3V0cHV0ID0gKCcvLyBHZW5lcmF0 ZWQgYnkgLy9iYXNlL3dyaXRlX2J1aWxkX2RhdGVfaGVhZGVyLnB5XG4nCi0gICAgICAgICAgICAg JyNpZm5kZWYgQkFTRV9HRU5FUkFURURfQlVJTERfREFURV9USU1FU1RBTVAgXG4nCi0gICAgICAg ICAgICAgZicjZGVmaW5lIEJBU0VfR0VORVJBVEVEX0JVSUxEX0RBVEVfVElNRVNUQU1QIHtkYXRl X3ZhbH0nCi1kaWZmIC11cCBjaHJvbWl1bS0xMTUuMC41NzkwLjEwMi9idWlsZC93cml0ZV9idWls ZGZsYWdfaGVhZGVyLnB5Lm1lIGNocm9taXVtLTExNS4wLjU3OTAuMTAyL2J1aWxkL3dyaXRlX2J1 aWxkZmxhZ19oZWFkZXIucHkKLS0tLSBjaHJvbWl1bS0xMTUuMC41NzkwLjEwMi9idWlsZC93cml0 ZV9idWlsZGZsYWdfaGVhZGVyLnB5Lm1lCTIwMjMtMDctMjIgMTQ6MTY6MTQuMTk2OTc1NDUxICsw MjAwCi0rKysgY2hyb21pdW0tMTE1LjAuNTc5MC4xMDIvYnVpbGQvd3JpdGVfYnVpbGRmbGFnX2hl YWRlci5weQkyMDIzLTA3LTIyIDE0OjIwOjI0Ljk3NzIzOTk5NCArMDIwMAotQEAgLTQ0LDcgKzQ0 LDcgQEAgZGVmIEdldE9wdGlvbnMoKToKLSAgIGhlYWRlcl9ndWFyZCA9IGNtZGxpbmVfb3B0aW9u cy5vdXRwdXQudXBwZXIoKQotICAgaWYgaGVhZGVyX2d1YXJkWzBdLmlzZGlnaXQoKToKLSAgICAg aGVhZGVyX2d1YXJkID0gJ18nICsgaGVhZGVyX2d1YXJkCi0tICBoZWFkZXJfZ3VhcmQgPSByZS5z dWIoJ1teXHddJywgJ18nLCBoZWFkZXJfZ3VhcmQpCi0rICBoZWFkZXJfZ3VhcmQgPSByZS5zdWIo cidbXlx3XScsICdfJywgaGVhZGVyX2d1YXJkKQotICAgaGVhZGVyX2d1YXJkICs9ICdfJwotIAot ICAgIyBUaGUgYWN0dWFsIG91dHB1dCBmaWxlIGlzIGluc2lkZSB0aGUgZ2VuIGRpci4KLWRpZmYg LXVwIGNocm9taXVtLTExNS4wLjU3OTAuMTAyL2NvbXBvbmVudHMvcmVzb3VyY2VzL3Byb3RvYnVm cy9iaW5hcnlfcHJvdG9fZ2VuZXJhdG9yLnB5Lm1lIGNocm9taXVtLTExNS4wLjU3OTAuMTAyL2Nv bXBvbmVudHMvcmVzb3VyY2VzL3Byb3RvYnVmcy9iaW5hcnlfcHJvdG9fZ2VuZXJhdG9yLnB5Ci0t LS0gY2hyb21pdW0tMTE1LjAuNTc5MC4xMDIvY29tcG9uZW50cy9yZXNvdXJjZXMvcHJvdG9idWZz L2JpbmFyeV9wcm90b19nZW5lcmF0b3IucHkubWUJMjAyMy0wNy0yMiAxNDo0NzozNC4yMzA3NjQy MTAgKzAyMDAKLSsrKyBjaHJvbWl1bS0xMTUuMC41NzkwLjEwMi9jb21wb25lbnRzL3Jlc291cmNl cy9wcm90b2J1ZnMvYmluYXJ5X3Byb3RvX2dlbmVyYXRvci5weQkyMDIzLTA3LTIyIDE1OjExOjUw LjM2MDk4MzM4MyArMDIwMAotQEAgLTksNyArOSw4IEBACi0gIiIiCi0gZnJvbSBfX2Z1dHVyZV9f IGltcG9ydCBwcmludF9mdW5jdGlvbgotIGltcG9ydCBhYmMKLS1pbXBvcnQgaW1wCi0raW1wb3J0 IHR5cGVzCi0raW1wb3J0IGltcG9ydGxpYgotIGltcG9ydCBvcHRwYXJzZQotIGltcG9ydCBvcwot IGltcG9ydCByZQotQEAgLTQwLDYgKzQxLDEyIEBAIGNsYXNzIEdvb2dsZVByb3RvYnVmTW9kdWxl SW1wb3J0ZXI6Ci0gICAgICAgICByZXR1cm4gZmlsZXBhdGgKLSAgICAgcmV0dXJuIE5vbmUKLSAK LSsgIGRlZiBsb2FkX3NvdXJjZShuYW1lOiBzdHIsIHBhdGg6IHN0cikgLT4gdHlwZXMuTW9kdWxl VHlwZToKLSsgICAgc3BlYyA9IGltcG9ydGxpYi51dGlsLnNwZWNfZnJvbV9maWxlX2xvY2F0aW9u KG5hbWUsIHBhdGgpCi0rICAgIG1vZHVsZSA9IGltcG9ydGxpYi51dGlsLm1vZHVsZV9mcm9tX3Nw ZWMoc3BlYykKLSsgICAgc3BlYy5sb2FkZXIuZXhlY19tb2R1bGUobW9kdWxlKQotKyAgICByZXR1 cm4gbW9kdWxlCi0rCi0gICBkZWYgX21vZHVsZV9leGlzdHMoc2VsZiwgZnVsbG5hbWUpOgotICAg ICByZXR1cm4gc2VsZi5fZnVsbG5hbWVfdG9fZmlsZXBhdGgoZnVsbG5hbWUpIGlzIG5vdCBOb25l Ci0gCi1AQCAtNjgsNyArNzUsNyBAQCBjbGFzcyBHb29nbGVQcm90b2J1Zk1vZHVsZUltcG9ydGVy OgotICAgICAgIHJhaXNlIEltcG9ydEVycm9yKGZ1bGxuYW1lKQotIAotICAgICBmaWxlcGF0aCA9 IHNlbGYuX2Z1bGxuYW1lX3RvX2ZpbGVwYXRoKGZ1bGxuYW1lKQotLSAgICByZXR1cm4gaW1wLmxv YWRfc291cmNlKGZ1bGxuYW1lLCBmaWxlcGF0aCkKLSsgICAgcmV0dXJuIGxvYWRfc291cmNlKGZ1 bGxuYW1lLCBmaWxlcGF0aCkKLSAKLSBjbGFzcyBCaW5hcnlQcm90b0dlbmVyYXRvcjoKLSAKLWRp ZmYgLXVwIGNocm9taXVtLTExNS4wLjU3OTAuMTAyL21vam8vcHVibGljL3Rvb2xzL2JpbmRpbmdz L2NvbmNhdGVuYXRlX2FuZF9yZXBsYWNlX2Nsb3N1cmVfZXhwb3J0cy5weS5tZSBjaHJvbWl1bS0x MTUuMC41NzkwLjEwMi9tb2pvL3B1YmxpYy90b29scy9iaW5kaW5ncy9jb25jYXRlbmF0ZV9hbmRf cmVwbGFjZV9jbG9zdXJlX2V4cG9ydHMucHkKLS0tLSBjaHJvbWl1bS0xMTUuMC41NzkwLjEwMi9t b2pvL3B1YmxpYy90b29scy9iaW5kaW5ncy9jb25jYXRlbmF0ZV9hbmRfcmVwbGFjZV9jbG9zdXJl X2V4cG9ydHMucHkubWUJMjAyMy0wNy0yMiAxNToxNzoxOS4xMTQyNTg4MDEgKzAyMDAKLSsrKyBj aHJvbWl1bS0xMTUuMC41NzkwLjEwMi9tb2pvL3B1YmxpYy90b29scy9iaW5kaW5ncy9jb25jYXRl bmF0ZV9hbmRfcmVwbGFjZV9jbG9zdXJlX2V4cG9ydHMucHkJMjAyMy0wNy0yMiAxNToxNzo0My4z NjgyMDA0OTEgKzAyMDAKLUBAIC0zMiw3ICszMiw3IEBAIGRlZiBGaWx0ZXJMaW5lKGZpbGVuYW1l LCBsaW5lLCBvdXRwdXQpOgotICAgICByZXR1cm4KLSAKLSAgIGlmIGxpbmUuc3RhcnRzd2l0aCgi Z29vZy5wcm92aWRlIik6Ci0tICAgIG1hdGNoID0gcmUubWF0Y2goImdvb2cucHJvdmlkZVwoJyhb XiddKyknXCk7IiwgbGluZSkKLSsgICAgbWF0Y2ggPSByZS5tYXRjaChyImdvb2cucHJvdmlkZVwo JyhbXiddKyknXCk7IiwgbGluZSkKLSAgICAgaWYgbm90IG1hdGNoOgotICAgICAgIHByaW50KCJJ bnZhbGlkIGdvb2cucHJvdmlkZSBsaW5lIGluICVzOlxuJXMiICUgKGZpbGVuYW1lLCBsaW5lKSkK LSAgICAgICBzeXMuZXhpdCgxKQotZGlmZiAtdXAgY2hyb21pdW0tMTE1LjAuNTc5MC4xMDIvdGhp cmRfcGFydHkvY2F0YXB1bHQvY29tbW9uL3B5X3Z1bGNhbml6ZS9weV92dWxjYW5pemUvaHRtbF9n ZW5lcmF0aW9uX2NvbnRyb2xsZXIucHkubWUgY2hyb21pdW0tMTE1LjAuNTc5MC4xMDIvdGhpcmRf cGFydHkvY2F0YXB1bHQvY29tbW9uL3B5X3Z1bGNhbml6ZS9weV92dWxjYW5pemUvaHRtbF9nZW5l cmF0aW9uX2NvbnRyb2xsZXIucHkKLS0tLSBjaHJvbWl1bS0xMTUuMC41NzkwLjEwMi90aGlyZF9w YXJ0eS9jYXRhcHVsdC9jb21tb24vcHlfdnVsY2FuaXplL3B5X3Z1bGNhbml6ZS9odG1sX2dlbmVy YXRpb25fY29udHJvbGxlci5weS5tZQkyMDIzLTA3LTIyIDE1OjEyOjQxLjg1MDg5NTE3OSArMDIw MAotKysrIGNocm9taXVtLTExNS4wLjU3OTAuMTAyL3RoaXJkX3BhcnR5L2NhdGFwdWx0L2NvbW1v bi9weV92dWxjYW5pemUvcHlfdnVsY2FuaXplL2h0bWxfZ2VuZXJhdGlvbl9jb250cm9sbGVyLnB5 CTIwMjMtMDctMjIgMTU6MTI6NTUuODQ0ODcxMjA3ICswMjAwCi1AQCAtMTgsNyArMTgsNyBAQCBj bGFzcyBIVE1MR2VuZXJhdGlvbkNvbnRyb2xsZXIob2JqZWN0KToKLSAKLSAgIGRlZiBHZXRIVE1M Rm9ySW5saW5lU3R5bGVzaGVldChzZWxmLCBjb250ZW50cyk6Ci0gICAgIGlmIHNlbGYuY3VycmVu dF9tb2R1bGUgaXMgTm9uZToKLS0gICAgICBpZiByZS5zZWFyY2goJ3VybFwoLitcKScsIGNvbnRl bnRzKToKLSsgICAgICBpZiByZS5zZWFyY2gocid1cmxcKC4rXCknLCBjb250ZW50cyk6Ci0gICAg ICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgJ0RlZmF1bHQgSFRNTEdlbmVyYXRp b25Db250cm9sbGVyIGNhbm5vdCBoYW5kbGUgaW5saW5lIHN0eWxlIHVybHMnKQotICAgICAgIHJl dHVybiBjb250ZW50cwotZGlmZiAtdXAgY2hyb21pdW0tMTE1LjAuNTc5MC4xMDIvdGhpcmRfcGFy dHkvY2F0YXB1bHQvY29tbW9uL3B5X3Z1bGNhbml6ZS9weV92dWxjYW5pemUvanNfdXRpbHMucHku bWUgY2hyb21pdW0tMTE1LjAuNTc5MC4xMDIvdGhpcmRfcGFydHkvY2F0YXB1bHQvY29tbW9uL3B5 X3Z1bGNhbml6ZS9weV92dWxjYW5pemUvanNfdXRpbHMucHkKLS0tLSBjaHJvbWl1bS0xMTUuMC41 NzkwLjEwMi90aGlyZF9wYXJ0eS9jYXRhcHVsdC9jb21tb24vcHlfdnVsY2FuaXplL3B5X3Z1bGNh bml6ZS9qc191dGlscy5weS5tZQkyMDIzLTA3LTIyIDE1OjE0OjA2LjkyMzcxNzkxMCArMDIwMAot KysrIGNocm9taXVtLTExNS4wLjU3OTAuMTAyL3RoaXJkX3BhcnR5L2NhdGFwdWx0L2NvbW1vbi9w eV92dWxjYW5pemUvcHlfdnVsY2FuaXplL2pzX3V0aWxzLnB5CTIwMjMtMDctMjIgMTU6MTg6MDMu NzA0MTUwNjE0ICswMjAwCi1AQCAtNCw0ICs0LDQgQEAKLSAKLSAKLSBkZWYgRXNjYXBlSlNJZk5l ZWRlZChqcyk6Ci0tICByZXR1cm4ganMucmVwbGFjZSgnPC9zY3JpcHQ+JywgJzxcL3NjcmlwdD4n KQotKyAgcmV0dXJuIGpzLnJlcGxhY2Uocic8L3NjcmlwdD4nLCByJzxcL3NjcmlwdD4nKQotZGlm ZiAtdXAgY2hyb21pdW0tMTE1LjAuNTc5MC4xMDIvdGhpcmRfcGFydHkvY2F0YXB1bHQvY29tbW9u L3B5X3Z1bGNhbml6ZS9weV92dWxjYW5pemUvcGFyc2VfaHRtbF9kZXBzLnB5Lm1lIGNocm9taXVt LTExNS4wLjU3OTAuMTAyL3RoaXJkX3BhcnR5L2NhdGFwdWx0L2NvbW1vbi9weV92dWxjYW5pemUv cHlfdnVsY2FuaXplL3BhcnNlX2h0bWxfZGVwcy5weQotLS0tIGNocm9taXVtLTExNS4wLjU3OTAu MTAyL3RoaXJkX3BhcnR5L2NhdGFwdWx0L2NvbW1vbi9weV92dWxjYW5pemUvcHlfdnVsY2FuaXpl L3BhcnNlX2h0bWxfZGVwcy5weS5tZQkyMDIzLTA3LTIyIDE1OjE0OjMwLjEwNTY2MjUzMiArMDIw MAotKysrIGNocm9taXVtLTExNS4wLjU3OTAuMTAyL3RoaXJkX3BhcnR5L2NhdGFwdWx0L2NvbW1v bi9weV92dWxjYW5pemUvcHlfdnVsY2FuaXplL3BhcnNlX2h0bWxfZGVwcy5weQkyMDIzLTA3LTIy IDE1OjE0OjU3Ljk3NzU5NTk1MCArMDIwMAotQEAgLTI5Myw2ICsyOTMsNiBAQCBjbGFzcyBIVE1M TW9kdWxlUGFyc2VyKCk6Ci0gICAgICAgaHRtbCA9ICcnCi0gICAgIGVsc2U6Ci0gICAgICAgaWYg aHRtbC5maW5kKCc8IC9zY3JpcHQ+JykgIT0gLTE6Ci0tICAgICAgICByYWlzZSBFeGNlcHRpb24o J0VzY2FwZSBzY3JpcHQgdGFncyB3aXRoIDxcL3NjcmlwdD4nKQotKyAgICAgICAgcmFpc2UgRXhj ZXB0aW9uKHInRXNjYXBlIHNjcmlwdCB0YWdzIHdpdGggPFwvc2NyaXB0PicpCi0gCi0gICAgIHJl dHVybiBIVE1MTW9kdWxlUGFyc2VyUmVzdWx0cyhodG1sKQotZGlmZiAtdXAgY2hyb21pdW0tMTE1 LjAuNTc5MC4xMDIvdGhpcmRfcGFydHkvY2F0YXB1bHQvY29tbW9uL3B5X3Z1bGNhbml6ZS9weV92 dWxjYW5pemUvc3R5bGVfc2hlZXQucHkubWUgY2hyb21pdW0tMTE1LjAuNTc5MC4xMDIvdGhpcmRf cGFydHkvY2F0YXB1bHQvY29tbW9uL3B5X3Z1bGNhbml6ZS9weV92dWxjYW5pemUvc3R5bGVfc2hl ZXQucHkKLS0tLSBjaHJvbWl1bS0xMTUuMC41NzkwLjEwMi90aGlyZF9wYXJ0eS9jYXRhcHVsdC9j b21tb24vcHlfdnVsY2FuaXplL3B5X3Z1bGNhbml6ZS9zdHlsZV9zaGVldC5weS5tZQkyMDIzLTA3 LTIyIDE1OjEzOjEyLjMxNjg0Mjk5MCArMDIwMAotKysrIGNocm9taXVtLTExNS4wLjU3OTAuMTAy L3RoaXJkX3BhcnR5L2NhdGFwdWx0L2NvbW1vbi9weV92dWxjYW5pemUvcHlfdnVsY2FuaXplL3N0 eWxlX3NoZWV0LnB5CTIwMjMtMDctMjIgMTU6MTM6NDkuNjg0NzU5MDkxICswMjAwCi1AQCAtNjAs NyArNjAsNyBAQCBjbGFzcyBQYXJzZWRTdHlsZVNoZWV0KG9iamVjdCk6Ci0gICAgICAgcmV0dXJu ICd1cmwoZGF0YTppbWFnZS8lcztiYXNlNjQsJXMpJyAlIChleHRbMTpdLCBkYXRhLmRlY29kZSgn dXRmLTgnKSkKLSAKLSAgICAgIyBJJ20gYXNzdW1pbmcgd2Ugb25seSBoYXZlIHVybCgpJ3MgYXNz b2NpYXRlZCB3aXRoIGltYWdlcwotLSAgICByZXR1cm4gcmUuc3ViKCd1cmxcKCg/UDxxdW90ZT4i fFwnfCkoP1A8dXJsPlteIlwnKCldKikoP1A9cXVvdGUpXCknLAotKyAgICByZXR1cm4gcmUuc3Vi KHIndXJsXCgoP1A8cXVvdGU+InxcJ3wpKD9QPHVybD5bXiJcJygpXSopKD9QPXF1b3RlKVwpJywK LSAgICAgICAgICAgICAgICAgICBJbmxpbmVVcmwsIHNlbGYuY29udGVudHMpCi0gCi0gICBkZWYg QXBwZW5kRGlyZWN0bHlEZXBlbmRlbnRGaWxlbmFtZXNUbyhzZWxmLCBkZXBlbmRlbnRfZmlsZW5h bWVzKToKLUBAIC03Miw3ICs3Miw3IEBAIGNsYXNzIFBhcnNlZFN0eWxlU2hlZXQob2JqZWN0KToK LSAgICAgICByYWlzZSBFeGNlcHRpb24oJ0BpbXBvcnRzIGFyZSBub3Qgc3VwcG9ydGVkJykKLSAK LSAgICAgbWF0Y2hlcyA9IHJlLmZpbmRhbGwoCi0tICAgICAgICAndXJsXCgoPzpbInxcJ10/KShb XiJcJygpXSopKD86WyJ8XCddPylcKScsCi0rICAgICAgICByJ3VybFwoKD86WyJ8XCddPykoW14i XCcoKV0qKSg/OlsifFwnXT8pXCknLAotICAgICAgICAgc2VsZi5jb250ZW50cykKLSAKLSAgICAg ZGVmIHJlc29sdmVfdXJsKHVybCk6Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTUuMC41NzkwLjEwMi90 aGlyZF9wYXJ0eS9kYXduL2dlbmVyYXRvci9nZW5lcmF0b3JfbGliLnB5Lm1lIGNocm9taXVtLTEx NS4wLjU3OTAuMTAyL3RoaXJkX3BhcnR5L2Rhd24vZ2VuZXJhdG9yL2dlbmVyYXRvcl9saWIucHkK LS0tLSBjaHJvbWl1bS0xMTUuMC41NzkwLjEwMi90aGlyZF9wYXJ0eS9kYXduL2dlbmVyYXRvci9n ZW5lcmF0b3JfbGliLnB5Lm1lCTIwMjMtMDctMjIgMTU6MTE6NTYuODI2OTcyMzA2ICswMjAwCi0r KysgY2hyb21pdW0tMTE1LjAuNTc5MC4xMDIvdGhpcmRfcGFydHkvZGF3bi9nZW5lcmF0b3IvZ2Vu ZXJhdG9yX2xpYi5weQkyMDIzLTA3LTIyIDE1OjEyOjM3LjU1MDkwMjU0NSArMDIwMAotQEAgLTEx OSw4ICsxMTksOCBAQCBjbGFzcyBfUHJlcHJvY2Vzc2luZ0xvYWRlcihqaW5qYTIuQmFzZUxvCi0g ICAgICAgICAgICAgc291cmNlID0gc2VsZi5wcmVwcm9jZXNzKGYucmVhZCgpKQotICAgICAgICAg cmV0dXJuIHNvdXJjZSwgcGF0aCwgbGFtYmRhOiBtdGltZSA9PSBvcy5wYXRoLmdldG10aW1lKHBh dGgpCi0gCi0tICAgIGJsb2Nrc3RhcnQgPSByZS5jb21waWxlKCd7JS0/XHMqKGlmfGVsaWZ8ZWxz ZXxmb3J8YmxvY2t8bWFjcm8pW159XSolfScpCi0tICAgIGJsb2NrZW5kID0gcmUuY29tcGlsZSgn eyUtP1xzKihlbmQoaWZ8Zm9yfGJsb2NrfG1hY3JvKXxlbGlmfGVsc2UpW159XSolfScpCi0rICAg IGJsb2Nrc3RhcnQgPSByZS5jb21waWxlKHIneyUtP1xzKihpZnxlbGlmfGVsc2V8Zm9yfGJsb2Nr fG1hY3JvKVtefV0qJX0nKQotKyAgICBibG9ja2VuZCA9IHJlLmNvbXBpbGUocid7JS0/XHMqKGVu ZChpZnxmb3J8YmxvY2t8bWFjcm8pfGVsaWZ8ZWxzZSlbXn1dKiV9JykKLSAKLSAgICAgZGVmIHBy ZXByb2Nlc3Moc2VsZiwgc291cmNlKToKLSAgICAgICAgIGxpbmVzID0gc291cmNlLnNwbGl0KCdc bicpCgpkaWZmIC0tZ2l0IGEvY2hyb21pdW0tMTE4LXdvcmthcm91bmRfY2xhbmdfYnVnLXN0cnVj dHVyZWRfYmluZGluZy5wYXRjaCBiL2Nocm9taXVtLTExOC13b3JrYXJvdW5kX2NsYW5nX2J1Zy1z dHJ1Y3R1cmVkX2JpbmRpbmcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNi NzlmNTEuLjAwMDAwMDAKLS0tIGEvY2hyb21pdW0tMTE4LXdvcmthcm91bmRfY2xhbmdfYnVnLXN0 cnVjdHVyZWRfYmluZGluZy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDk2ICswLDAgQEAKLWRp ZmYgLXVwIGNocm9taXVtLTExNS4wLjU3OTAuMjQvbWVkaWEvYmFzZS9jZG1fcHJvbWlzZV9hZGFw dGVyLmNjLndvcmthcm91bmRfY2xhbmdfYnVnLXN0cnVjdHVyZWRfYmluZGluZyBjaHJvbWl1bS0x MTUuMC41NzkwLjI0L21lZGlhL2Jhc2UvY2RtX3Byb21pc2VfYWRhcHRlci5jYwotLS0tIGNocm9t aXVtLTExNS4wLjU3OTAuMjQvbWVkaWEvYmFzZS9jZG1fcHJvbWlzZV9hZGFwdGVyLmNjLndvcmth cm91bmRfY2xhbmdfYnVnLXN0cnVjdHVyZWRfYmluZGluZwkyMDIzLTA2LTA3IDIxOjQ4OjM3LjAw MDAwMDAwMCArMDIwMAotKysrIGNocm9taXVtLTExNS4wLjU3OTAuMjQvbWVkaWEvYmFzZS9jZG1f cHJvbWlzZV9hZGFwdGVyLmNjCTIwMjMtMDYtMTcgMTY6NTM6MjAuMjE2NjI4NTU3ICswMjAwCi1A QCAtOTQsNyArOTQsOSBAQCB2b2lkIENkbVByb21pc2VBZGFwdGVyOjpSZWplY3RQcm9taXNlKHVp Ci0gdm9pZCBDZG1Qcm9taXNlQWRhcHRlcjo6Q2xlYXIoQ2xlYXJSZWFzb24gcmVhc29uKSB7Ci0g ICAvLyBSZWplY3QgYWxsIG91dHN0YW5kaW5nIHByb21pc2VzLgotICAgRENIRUNLKHRocmVhZF9j aGVja2VyXy5DYWxsZWRPblZhbGlkVGhyZWFkKCkpOwotLSAgZm9yIChhdXRvJiBbcHJvbWlzZV9p ZCwgcHJvbWlzZV0gOiBwcm9taXNlc18pIHsKLSsgIGZvciAoYXV0byYgW3BfaSwgcF9lXSA6IHBy b21pc2VzXykgewotKyAgICBhdXRvJiBwcm9taXNlX2lkID0gcF9pOwotKyAgICBhdXRvJiBwcm9t aXNlID0gcF9lOwotICAgICBUUkFDRV9FVkVOVF9ORVNUQUJMRV9BU1lOQ19FTkQxKAotICAgICAg ICAgIm1lZGlhIiwgIkNkbVByb21pc2UiLCBUUkFDRV9JRF9XSVRIX1NDT1BFKCJDZG1Qcm9taXNl IiwgcHJvbWlzZV9pZCksCi0gICAgICAgICAic3RhdHVzIiwgImNsZWFyZWQiKTsKLWRpZmYgLXVw IGNocm9taXVtLTExNS4wLjU3OTAuMjQvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9s YXlvdXQvbmcvZ3JpZC9uZ19ncmlkX2xheW91dF9hbGdvcml0aG0uY2Mud29ya2Fyb3VuZF9jbGFu Z19idWctc3RydWN0dXJlZF9iaW5kaW5nIGNocm9taXVtLTExNS4wLjU3OTAuMjQvdGhpcmRfcGFy dHkvYmxpbmsvcmVuZGVyZXIvY29yZS9sYXlvdXQvbmcvZ3JpZC9uZ19ncmlkX2xheW91dF9hbGdv cml0aG0uY2MKLS0tLSBjaHJvbWl1bS0xMTUuMC41NzkwLjI0L3RoaXJkX3BhcnR5L2JsaW5rL3Jl bmRlcmVyL2NvcmUvbGF5b3V0L25nL2dyaWQvbmdfZ3JpZF9sYXlvdXRfYWxnb3JpdGhtLmNjLndv cmthcm91bmRfY2xhbmdfYnVnLXN0cnVjdHVyZWRfYmluZGluZwkyMDIzLTA2LTA3IDIxOjQ4OjQx LjAwMDAwMDAwMCArMDIwMAotKysrIGNocm9taXVtLTExNS4wLjU3OTAuMjQvdGhpcmRfcGFydHkv YmxpbmsvcmVuZGVyZXIvY29yZS9sYXlvdXQvbmcvZ3JpZC9uZ19ncmlkX2xheW91dF9hbGdvcml0 aG0uY2MJMjAyMy0wNi0xNyAxODo0NzowNi4wMDE0MDM5NjYgKzAyMDAKLUBAIC02NTUsOCArNjU4 LDEwIEBAIE5HR3JpZFNpemluZ1RyZWUgTkdHcmlkTGF5b3V0QWxnb3JpdGhtOjoKLSAgIE5HR3Jp ZFNpemluZ1RyZWUgc2l6aW5nX3RyZWU7Ci0gCi0gICBpZiAoY29uc3QgYXV0byogbGF5b3V0X3N1 YnRyZWUgPSBDb25zdHJhaW50U3BhY2UoKS5HcmlkTGF5b3V0U3VidHJlZSgpKSB7Ci0tICAgIGF1 dG8mIFtncmlkX2l0ZW1zLCBsYXlvdXRfZGF0YSwgc3VidHJlZV9zaXplXSA9Ci0tICAgICAgICBz aXppbmdfdHJlZS5DcmVhdGVTaXppbmdEYXRhKCk7Ci0rICAgIGF1dG8mIFtnX2ksIGxfZCwgc19z XSA9IHNpemluZ190cmVlLkNyZWF0ZVNpemluZ0RhdGEoKTsKLSsgICAgYXV0byYgZ3JpZF9pdGVt cyA9IGdfaTsKLSsgICAgYXV0byYgbGF5b3V0X2RhdGEgPSBsX2Q7Ci0rICAgIGF1dG8mIHN1YnRy ZWVfc2l6ZSA9IHNfczsKLSAKLSAgICAgY29uc3QgYXV0byYgbm9kZSA9IE5vZGUoKTsKLSAgICAg Z3JpZF9pdGVtcyA9Ci1AQCAtMTc5OCw4ICsxODAzLDEwIEBAIHZvaWQgTkdHcmlkTGF5b3V0QWxn b3JpdGhtOjpDb21wbGV0ZVRyYWMKLSAgICAgYm9vbCogb3B0X25lZWRzX2FkZGl0aW9uYWxfcGFz cykgY29uc3QgewotICAgRENIRUNLKHNpemluZ19zdWJ0cmVlKTsKLSAKLS0gIGF1dG8mIFtncmlk X2l0ZW1zLCBsYXlvdXRfZGF0YSwgc3VidHJlZV9zaXplXSA9Ci0tICAgICAgc2l6aW5nX3N1YnRy ZWUuU3VidHJlZVJvb3REYXRhKCk7Ci0rICBhdXRvJiBbZ19pLCBsX2QsIHNfc10gPSBzaXppbmdf c3VidHJlZS5TdWJ0cmVlUm9vdERhdGEoKTsKLSsgIGF1dG8mIGdyaWRfaXRlbXMgPSBnX2k7Ci0r ICBhdXRvJiBsYXlvdXRfZGF0YSA9IGxfZDsKLSsgIGF1dG8mIHN1YnRyZWVfc2l6ZSA9IHNfczsK LSAKLSAgIGNvbnN0IGJvb2wgaXNfZm9yX2NvbHVtbnMgPSB0cmFja19kaXJlY3Rpb24gPT0ga0Zv ckNvbHVtbnM7Ci0gICBjb25zdCBib29sIGhhc19ub25fZGVmaW5pdGVfdHJhY2sgPQotQEAgLTE5 MjQsOCArMTkzMSwxMCBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2FsbGJhY2tGdW5jPgotIHZvaWQg TkdHcmlkTGF5b3V0QWxnb3JpdGhtOjpGb3JFYWNoU3ViZ3JpZCgKLSAgICAgY29uc3QgTkdHcmlk U2l6aW5nU3VidHJlZSYgc2l6aW5nX3N1YnRyZWUsCi0gICAgIGNvbnN0IENhbGxiYWNrRnVuYyYg Y2FsbGJhY2tfZnVuYykgY29uc3QgewotLSAgYXV0byYgW2dyaWRfaXRlbXMsIGxheW91dF9kYXRh LCBzdWJ0cmVlX3NpemVdID0KLS0gICAgICBzaXppbmdfc3VidHJlZS5TdWJ0cmVlUm9vdERhdGEo KTsKLSsgIGF1dG8mIFtnX2ksIGxfZCwgc19zXSA9IHNpemluZ19zdWJ0cmVlLlN1YnRyZWVSb290 RGF0YSgpOwotKyAgYXV0byYgZ3JpZF9pdGVtcyA9IGdfaTsKLSsgIGF1dG8mIGxheW91dF9kYXRh ID0gbF9kOwotKyAgYXV0byYgc3VidHJlZV9zaXplID0gc19zOwotIAotICAgLy8gSWYgd2Uga25v dyB0aGlzIHN1YnRyZWUgZG9lc24ndCBoYXZlIG5lc3RlZCBzdWJncmlkcyB3ZSBjYW4gZXhpdCBl YXJseQotICAgLy8gaW5zdGVhZCBvZiBpdGVyYXRpbmcgb3ZlciBldmVyeSBncmlkIGl0ZW0gbG9v a2luZyBmb3IgdGhlbS4KLWRpZmYgLXVwIGNocm9taXVtLTExNS4wLjU3OTAuMzIvY29udGVudC9i cm93c2VyL3NlcnZpY2Vfd29ya2VyL3NlcnZpY2Vfd29ya2VyX2NvbnRleHRfd3JhcHBlci5jYy5t ZSBjaHJvbWl1bS0xMTUuMC41NzkwLjMyL2NvbnRlbnQvYnJvd3Nlci9zZXJ2aWNlX3dvcmtlci9z ZXJ2aWNlX3dvcmtlcl9jb250ZXh0X3dyYXBwZXIuY2MKLS0tLSBjaHJvbWl1bS0xMTUuMC41Nzkw LjMyL2NvbnRlbnQvYnJvd3Nlci9zZXJ2aWNlX3dvcmtlci9zZXJ2aWNlX3dvcmtlcl9jb250ZXh0 X3dyYXBwZXIuY2MubWUJMjAyMy0wNi0xOSAwODowNDowMi4yODcwNzI3MjIgKzAyMDAKLSsrKyBj aHJvbWl1bS0xMTUuMC41NzkwLjMyL2NvbnRlbnQvYnJvd3Nlci9zZXJ2aWNlX3dvcmtlci9zZXJ2 aWNlX3dvcmtlcl9jb250ZXh0X3dyYXBwZXIuY2MJMjAyMy0wNi0xOSAwODoxODoyNC41NzY4MTQ5 NTAgKzAyMDAKLUBAIC0xMzkzLDcgKzEzOTMsOCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250ZXh0 V3JhcHBlcjo6TWF5YmVQCi0gICAgIHJldHVybjsKLSAgIH0KLSAKLS0gIGF1dG8gW2RvY3VtZW50 X3VybCwga2V5LCBjYWxsYmFja10gPSBzdGQ6Om1vdmUoKnJlcXVlc3QpOwotKyAgYXV0byBbZF91 LCBrZXksIGNhbGxiYWNrXSA9IHN0ZDo6bW92ZSgqcmVxdWVzdCk7Ci0rICBhdXRvIGRvY3VtZW50 X3VybCA9IGRfdTsKLSAKLSAgIERDSEVDSyhkb2N1bWVudF91cmwuaXNfdmFsaWQoKSk7Ci0gICBU UkFDRV9FVkVOVDEoIlNlcnZpY2VXb3JrZXIiLAotZGlmZiAtdXAgY2hyb21pdW0tMTE3LjAuNTkz OC42Mi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL2xheW91dC9uZy9ncmlkL25nX2dy aWRfbGF5b3V0X2FsZ29yaXRobS5jYy5tZSBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL3RoaXJkX3Bh cnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvbGF5b3V0L25nL2dyaWQvbmdfZ3JpZF9sYXlvdXRfYWxn b3JpdGhtLmNjCi0tLS0gY2hyb21pdW0tMTE3LjAuNTkzOC42Mi90aGlyZF9wYXJ0eS9ibGluay9y ZW5kZXJlci9jb3JlL2xheW91dC9uZy9ncmlkL25nX2dyaWRfbGF5b3V0X2FsZ29yaXRobS5jYy5t ZQkyMDIzLTA5LTE1IDEzOjAzOjAwLjc4NzI1NzA0OCArMDIwMAotKysrIGNocm9taXVtLTExNy4w LjU5MzguNjIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9sYXlvdXQvbmcvZ3JpZC9u Z19ncmlkX2xheW91dF9hbGdvcml0aG0uY2MJMjAyMy0wOS0xNSAxMzoxNTowNS41MDI3MDY1MjIg KzAyMDAKLUBAIC0zNDM3LDcgKzM0MzcsMTAgQEAgdm9pZCBOR0dyaWRMYXlvdXRBbGdvcml0aG06 OlBsYWNlR3JpZEl0ZQotICAgRENIRUNLKG91dF9yb3dfYnJlYWtfYmV0d2Vlbik7Ci0gCi0gICBj b25zdCBhdXRvJiBjb250YWluZXJfc3BhY2UgPSBDb25zdHJhaW50U3BhY2UoKTsKLS0gIGNvbnN0 IGF1dG8mIFtncmlkX2l0ZW1zLCBsYXlvdXRfZGF0YSwgdHJlZV9zaXplXSA9IHNpemluZ190cmVl LlRyZWVSb290RGF0YSgpOwotKyAgY29uc3QgYXV0byYgW2dfaSwgbF9kLCB0X3NdID0gc2l6aW5n X3RyZWUuVHJlZVJvb3REYXRhKCk7Ci0rICBjb25zdCBhdXRvJiBncmlkX2l0ZW1zID0gZ19pOwot KyAgY29uc3QgYXV0byYgbGF5b3V0X2RhdGEgPSBsX2Q7Ci0rICBjb25zdCBhdXRvJiB0cmVlX3Np emUgPSB0X3M7Ci0gCi0gICBjb25zdCBhdXRvKiBjYWNoZWRfbGF5b3V0X3N1YnRyZWUgPSBjb250 YWluZXJfc3BhY2UuR3JpZExheW91dFN1YnRyZWUoKTsKLSAgIGNvbnN0IGF1dG8gY29udGFpbmVy X3dyaXRpbmdfZGlyZWN0aW9uID0KLUBAIC0zNjAxLDcgKzM2MDQsMTAgQEAgdm9pZCBOR0dyaWRM YXlvdXRBbGdvcml0aG06OlBsYWNlR3JpZEl0ZQotIAotICAgLy8gVE9ETyhpa2lscGF0cmljayk6 IFVwZGF0ZSB8U2V0SGFzU2VlbkFsbENoaWxkcmVufCBhbmQgZWFybHkgZXhpdCBpZiB0cnVlLgot ICAgY29uc3QgYXV0byYgY29uc3RyYWludF9zcGFjZSA9IENvbnN0cmFpbnRTcGFjZSgpOwotLSAg Y29uc3QgYXV0byYgW2dyaWRfaXRlbXMsIGxheW91dF9kYXRhLCB0cmVlX3NpemVdID0gc2l6aW5n X3RyZWUuVHJlZVJvb3REYXRhKCk7Ci0rICBjb25zdCBhdXRvJiBbZ19pLCBsX2QsIHRfc10gPSBz aXppbmdfdHJlZS5UcmVlUm9vdERhdGEoKTsKLSsgIGNvbnN0IGF1dG8mIGdyaWRfaXRlbXMgPSBn X2k7Ci0rICBjb25zdCBhdXRvJiBsYXlvdXRfZGF0YSA9IGxfZDsKLSsgIGNvbnN0IGF1dG8mIHRy ZWVfc2l6ZSA9dF9zOwotIAotICAgY29uc3QgYXV0byogY2FjaGVkX2xheW91dF9zdWJ0cmVlID0g Y29uc3RyYWludF9zcGFjZS5HcmlkTGF5b3V0U3VidHJlZSgpOwotICAgY29uc3QgYXV0byBjb250 YWluZXJfd3JpdGluZ19kaXJlY3Rpb24gPQoKZGlmZiAtLWdpdCBhL2Nocm9taXVtLTExOS1jb25z dGV4cHIucGF0Y2ggYi9jaHJvbWl1bS0xMTktY29uc3RleHByLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCBiMTk1ZmY0Li4wMDAwMDAwCi0tLSBhL2Nocm9taXVtLTExOS1jb25z dGV4cHIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1kaWZmIC11cCBjaHJv bWl1bS0xMTkuMC42MDQ1LjU5L2NvbXBvbmVudHMvbWlyYWNsZV9wYXJhbWV0ZXIvY29tbW9uL3B1 YmxpYy9taXJhY2xlX3BhcmFtZXRlci5oLm1lIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29tcG9u ZW50cy9taXJhY2xlX3BhcmFtZXRlci9jb21tb24vcHVibGljL21pcmFjbGVfcGFyYW1ldGVyLmgK LS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbXBvbmVudHMvbWlyYWNsZV9wYXJhbWV0ZXIv Y29tbW9uL3B1YmxpYy9taXJhY2xlX3BhcmFtZXRlci5oLm1lCTIwMjMtMTAtMzEgMjE6MDU6MDUu NTQ4NTY1MjQxICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb21wb25lbnRzL21p cmFjbGVfcGFyYW1ldGVyL2NvbW1vbi9wdWJsaWMvbWlyYWNsZV9wYXJhbWV0ZXIuaAkyMDIzLTEw LTMxIDIxOjIwOjUzLjk0NTUzMjA5NCArMDEwMAotQEAgLTkzLDcgKzkzLDcgQEAgY2xhc3MgTWly YWNsZVBhcmFtZXRlciB7Ci0gdGVtcGxhdGUgPD4KLSBjbGFzcyBNaXJhY2xlUGFyYW1ldGVyPHN0 ZDo6c3RyaW5nPiA6IHB1YmxpYyBNaXJhY2xlUGFyYW1ldGVyQmFzZTxzdGQ6OnN0cmluZz4gewot ICBwdWJsaWM6Ci0tICBjb25zdGV4cHIgTWlyYWNsZVBhcmFtZXRlcihjb25zdCBiYXNlOjpGZWF0 dXJlKiBmZWF0dXJlLAotKyAgTWlyYWNsZVBhcmFtZXRlcihjb25zdCBiYXNlOjpGZWF0dXJlKiBm ZWF0dXJlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogcGFyYW1f bmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIGRlZmF1bHRf dmFsdWUpCi0gICAgICAgOiBNaXJhY2xlUGFyYW1ldGVyQmFzZShmZWF0dXJlLCBwYXJhbV9uYW1l LCBzdGQ6Om1vdmUoZGVmYXVsdF92YWx1ZSkpIHt9CgpkaWZmIC0tZ2l0IGEvY2hyb21pdW0tMTE5 LWRpc2FibGUtR2xvYmFsTWVkaWFDb250cm9sc0Nhc3RTdGFydFN0b3AucGF0Y2ggYi9jaHJvbWl1 bS0xMTktZGlzYWJsZS1HbG9iYWxNZWRpYUNvbnRyb2xzQ2FzdFN0YXJ0U3RvcC5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjA4MjA5NS4uMDAwMDAwMAotLS0gYS9jaHJvbWl1 bS0xMTktZGlzYWJsZS1HbG9iYWxNZWRpYUNvbnRyb2xzQ2FzdFN0YXJ0U3RvcC5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUu MTA1L2Nocm9tZS9icm93c2VyL21lZGlhL3JvdXRlci9tZWRpYV9yb3V0ZXJfZmVhdHVyZS5jYy5k aXNhYmxlLUdsb2JhbE1lZGlhQ29udHJvbHNDYXN0U3RhcnRTdG9wIGNocm9taXVtLTExOS4wLjYw NDUuMTA1L2Nocm9tZS9icm93c2VyL21lZGlhL3JvdXRlci9tZWRpYV9yb3V0ZXJfZmVhdHVyZS5j YwotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Nocm9tZS9icm93c2VyL21lZGlhL3JvdXRl ci9tZWRpYV9yb3V0ZXJfZmVhdHVyZS5jYy5kaXNhYmxlLUdsb2JhbE1lZGlhQ29udHJvbHNDYXN0 U3RhcnRTdG9wCTIwMjMtMTEtMDYgMTI6NTc6MDQuMDk2Njk2NDkxICswMTAwCi0rKysgY2hyb21p dW0tMTE5LjAuNjA0NS4xMDUvY2hyb21lL2Jyb3dzZXIvbWVkaWEvcm91dGVyL21lZGlhX3JvdXRl cl9mZWF0dXJlLmNjCTIwMjMtMTEtMDYgMTM6MDA6MzAuNDgwOTI2MzQzICswMTAwCi1AQCAtNjgs MTUgKzY4LDkgQEAgQkFTRV9GRUFUVVJFKGtDYXN0TWlycm9yaW5nUGxheW91dERlbGF5LAotICAg ICAgICAgICAgICBiYXNlOjpGRUFUVVJFX0RJU0FCTEVEX0JZX0RFRkFVTFQpOwotIGNvbnN0IGJh c2U6OkZlYXR1cmVQYXJhbTxpbnQ+IGtDYXN0TWlycm9yaW5nUGxheW91dERlbGF5TXN7Ci0gICAg ICZrQ2FzdE1pcnJvcmluZ1BsYXlvdXREZWxheSwgImNhc3RfbWlycm9yaW5nX3BsYXlvdXRfZGVs YXlfbXMiLCAtMX07Ci0tI2lmIEJVSUxERkxBRyhJU19DSFJPTUVPUykKLSBCQVNFX0ZFQVRVUkUo a0dsb2JhbE1lZGlhQ29udHJvbHNDYXN0U3RhcnRTdG9wLAotICAgICAgICAgICAgICAiR2xvYmFs TWVkaWFDb250cm9sc0Nhc3RTdGFydFN0b3AiLAotICAgICAgICAgICAgICBiYXNlOjpGRUFUVVJF X0RJU0FCTEVEX0JZX0RFRkFVTFQpOwotLSNlbHNlCi0tQkFTRV9GRUFUVVJFKGtHbG9iYWxNZWRp YUNvbnRyb2xzQ2FzdFN0YXJ0U3RvcCwKLS0gICAgICAgICAgICAgIkdsb2JhbE1lZGlhQ29udHJv bHNDYXN0U3RhcnRTdG9wIiwKLS0gICAgICAgICAgICAgYmFzZTo6RkVBVFVSRV9FTkFCTEVEX0JZ X0RFRkFVTFQpOwotLSNlbmRpZiAgLy8gQlVJTERGTEFHKElTX0NIUk9NRU9TKQotICNlbmRpZiAg Ly8gIUJVSUxERkxBRyhJU19BTkRST0lEKQotIAotIG5hbWVzcGFjZSB7CgpkaWZmIC0tZ2l0IGEv Y2hyb21pdW0tMTE5LWRvbnQtcmVkZWZpbmUtQVRTUEktdmVyc2lvbi1tYWNyb3MucGF0Y2ggYi9j aHJvbWl1bS0xMTktZG9udC1yZWRlZmluZS1BVFNQSS12ZXJzaW9uLW1hY3Jvcy5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWI2NGM1NC4uMDAwMDAwMAotLS0gYS9jaHJvbWl1 bS0xMTktZG9udC1yZWRlZmluZS1BVFNQSS12ZXJzaW9uLW1hY3Jvcy5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDUwICswLDAgQEAKLWNvbW1pdCBmYzA5MzYzYjIyNzg4OTM3OTBkMTMxYzcyYTRl ZDk2ZWM5ODM3NjI0Ci1BdXRob3I6IEVsbHkgPGVsbHlqb25lc0BjaHJvbWl1bS5vcmc+Ci1EYXRl OiAgIFRodSBTZXAgMjEgMjI6MDk6NTkgMjAyMyArMDAwMAotCi0gICAgYTExeTogZG9uJ3QgcmVk ZWZpbmUgQVRTUEkgdmVyc2lvbiBtYWNyb3MKLSAgICAKLSAgICBBcyBvZiBBVFNQSSAyLjQ5Ljkw LCB0aGUgbGlicmFyeSBpdHNlbGYgZGVmaW5lcyB0aGVzZSwgYW5kIGlmIHdlCi0gICAgcmVkZWZp bmUgdGhlbSBvbiB0aGUgY29tcGlsZXIgY29tbWFuZCBsaW5lLCB3ZSBnZXQgYSBidWlsZCB3YXJu aW5nLgotICAgIFNlZTogaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2F0LXNwaTItY29y ZS8tL2lzc3Vlcy8xMjkKLSAgICAKLSAgICBCdWc6IE5vbmUKLSAgICBDaGFuZ2UtSWQ6IEk1Y2M2 NTViZDMyYzkwZDdhZjUyYzlkY2E2MDcyNGYzMzRjNGEyYTY1Ci0gICAgUmV2aWV3ZWQtb246IGh0 dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy80 ODgzNTc2Ci0gICAgQXV0by1TdWJtaXQ6IEVsbHkgRkogPGVsbHlqb25lc0BjaHJvbWl1bS5vcmc+ Ci0gICAgUmV2aWV3ZWQtYnk6IFRob21hcyBBbmRlcnNvbiA8dGhvbWFzYW5kZXJzb25AY2hyb21p dW0ub3JnPgotICAgIENvbW1pdC1RdWV1ZTogVGhvbWFzIEFuZGVyc29uIDx0aG9tYXNhbmRlcnNv bkBjaHJvbWl1bS5vcmc+Ci0gICAgQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2hlYWRzL21haW5A eyMxMTk5ODcwfQotCi1kaWZmIC0tZ2l0IGEvYnVpbGQvY29uZmlnL2xpbnV4L2F0c3BpMi9CVUlM RC5nbiBiL2J1aWxkL2NvbmZpZy9saW51eC9hdHNwaTIvQlVJTEQuZ24KLWluZGV4IDUxYjZkMzNh YWIzYzIuLmQxNjI5MjA1YzgyYTMgMTAwNjQ0Ci0tLS0gYS9idWlsZC9jb25maWcvbGludXgvYXRz cGkyL0JVSUxELmduCi0rKysgYi9idWlsZC9jb25maWcvbGludXgvYXRzcGkyL0JVSUxELmduCi1A QCAtMTcsMTMgKzE3LDE5IEBAIGlmICh1c2VfYXRrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiLS12ZXJzaW9uLWFzLWNvbXBvbmVudHMiLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAidmFsdWUiKQotLSAgICBhdHNwaV9tYWpvcl92ZXJzaW9uID0gYXRzcGlfdmVyc2lvblsw XQotLSAgICBhdHNwaV9taW5vcl92ZXJzaW9uID0gYXRzcGlfdmVyc2lvblsxXQotLSAgICBhdHNw aV9taWNyb192ZXJzaW9uID0gYXRzcGlfdmVyc2lvblsyXQotLSAgICBkZWZpbmVzID0gWwotLSAg ICAgICJBVFNQSV9NQUpPUl9WRVJTSU9OPSRhdHNwaV9tYWpvcl92ZXJzaW9uIiwKLS0gICAgICAi QVRTUElfTUlOT1JfVkVSU0lPTj0kYXRzcGlfbWlub3JfdmVyc2lvbiIsCi0tICAgICAgIkFUU1BJ X01JQ1JPX1ZFUlNJT049JGF0c3BpX21pY3JvX3ZlcnNpb24iLAotLSAgICBdCi0rICAgIG1ham9y ID0gYXRzcGlfdmVyc2lvblswXQotKyAgICBtaW5vciA9IGF0c3BpX3ZlcnNpb25bMV0KLSsgICAg bWljcm8gPSBhdHNwaV92ZXJzaW9uWzJdCi0rCi0rICAgICMgQVRTUEkgMi40OS45MCBub3cgZGVm aW5lcyB0aGVzZSBmb3IgdXMgYW5kIGl0J3MgYW4gZXJyb3IgZm9yIHVzIHRvCi0rICAgICMgcmVk ZWZpbmUgdGhlbSBvbiB0aGUgY29tcGlsZXIgY29tbWFuZCBsaW5lLgotKyAgICAjIFNlZSBBVFNQ SSA5MjczNDRhMzRjZDViZjgxZmM2NGRhNDk2ODI0MTczNWVjYjRmMDNiCi0rICAgIGlmIChtaW5v ciA8IDQ5IHx8IChtaW5vciA9PSA0OSAmJiBtaWNybyA8IDkwKSkgewotKyAgICAgIGRlZmluZXMg PSBbCi0rICAgICAgICAiQVRTUElfTUFKT1JfVkVSU0lPTj0kbWFqb3IiLAotKyAgICAgICAgIkFU U1BJX01JTk9SX1ZFUlNJT049JG1pbm9yIiwKLSsgICAgICAgICJBVFNQSV9NSUNST19WRVJTSU9O PSRtaWNybyIsCi0rICAgICAgXQotKyAgICB9Ci0gICB9Ci0gfQoKZGlmZiAtLWdpdCBhL2Nocm9t aXVtLTExOS1oaWRlLVVzZUNocm9tZU9TRGlyZWN0VmlkZW9EZWNvZGVyLWZsYWctb24tVkEtQVBJ LWRldmljZXMucGF0Y2ggYi9jaHJvbWl1bS0xMTktaGlkZS1Vc2VDaHJvbWVPU0RpcmVjdFZpZGVv RGVjb2Rlci1mbGFnLW9uLVZBLUFQSS1kZXZpY2VzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAxMGRiNTUxLi4wMDAwMDAwCi0tLSBhL2Nocm9taXVtLTExOS1oaWRlLVVzZUNo cm9tZU9TRGlyZWN0VmlkZW9EZWNvZGVyLWZsYWctb24tVkEtQVBJLWRldmljZXMucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwxODkgKzAsMCBAQAotY29tbWl0IDg3ZmNhN2YxNzU5ZTgwMGJkNzJi NWFiNjUxMWVlYTE3ZDY0MDBhNzYKLUF1dGhvcjogUGlsYXIgTW9saW5hIExvcGV6IDxwbW9saW5h bG9wZXpAY2hyb21pdW0ub3JnPgotRGF0ZTogICBUdWUgT2N0IDI0IDE5OjU3OjU1IDIwMjMgKzAw MDAKLQotICAgIHZpZGVvOiBoaWRlIFVzZUNocm9tZU9TRGlyZWN0VmlkZW9EZWNvZGVyIGZsYWcg b24gVkEtQVBJIGRldmljZXMKLSAgICAKLSAgICBXZSBhcmUgc2VlaW5nIGNyYXNoZXMgY2F1c2Vz IGJ5IHRoaXMgQ0hFQ0sgc3RhdGVtZW50OgotICAgIGh0dHBzOi8vc291cmNlLmNocm9taXVtLm9y Zy9jaHJvbWl1bS9jaHJvbWl1bS9zcmMvKy9tYWluOmNvbnRlbnQvcHVibGljL2Jyb3dzZXIvZ3B1 X3V0aWxzLmNjO2w9MTUxO2RyYz0wZTc3N2JhOWI2YzM0NjExNzA1ZDViMTQ1YzkyYmNkMDk1Mzkw MTFjCi0gICAgSXQncyB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBtYW51YWxseSBkaXNhYmxlcyB0 aGUgVXNlQ2hyb21lT1NEaXJlY3RWaWRlb0RlY29kZXIKLSAgICBmbGFnIG9uIFZBLUFQSSBkZXZp Y2VzIChJbnRlbCBhbmQgQU1EKS4gVGhpcyBmbGFnIGlzIHN1cHBvcnRlZCBvbmx5IG9uCi0gICAg bm9uLUludGVsIGFuZCBub24tQU1EIGRldmljZXMuIFRoaXMgQ0wgYWRkcyB0aGlzIGluZm9ybWF0 aW9uIHRvIHRoZSBmbGFnCi0gICAgZGVzY3JpcHRpb24gYW5kIGhpZGVzIHRoZSBmbGFnIGluIGNh c2UgVkEtQVBJIGlzIHVzZWQuCi0gICAgCi0gICAgQnVnOiAxNDY5Mjg1Ci0gICAgVGVzdDogbWFu dWFsIHRlc3Qgb24gdm9sdGVlcgotICAgIENoYW5nZS1JZDogSTE1M2I5Y2NiMzgxNTQ5OGM5MWNl NWVlZTk2NjgzNDA2MDc0OWUyNDcKLSAgICBSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1y ZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzQ5NjA5MTkKLSAgICBSZXZp ZXdlZC1ieTogRGFsZSBDdXJ0aXMgPGRhbGVjdXJ0aXNAY2hyb21pdW0ub3JnPgotICAgIFJldmll d2VkLWJ5OiBBbmRyZXMgQ2FsZGVyb24gSmFyYW1pbGxvIDxhbmRyZXNjakBjaHJvbWl1bS5vcmc+ Ci0gICAgUmV2aWV3ZWQtYnk6IEF2aSBEcmlzc21hbiA8YXZpQGNocm9taXVtLm9yZz4KLSAgICBD b21taXQtUXVldWU6IFBpbGFyIE1vbGluYSBMb3BleiA8cG1vbGluYWxvcGV6QGNocm9taXVtLm9y Zz4KLSAgICBDci1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFpbkB7IzEyMTQ0MTF9Ci0K LWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Nocm9tZS9icm93c2VyL2Fib3V0X2Zs YWdzLmNjLmhpZGUtVXNlQ2hyb21lT1NEaXJlY3RWaWRlb0RlY29kZXItZmxhZy1vbi1WQS1BUEkt ZGV2aWNlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jaHJvbWUvYnJvd3Nlci9hYm91dF9mbGFn cy5jYwotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Nocm9tZS9icm93c2VyL2Fib3V0X2Zs YWdzLmNjLmhpZGUtVXNlQ2hyb21lT1NEaXJlY3RWaWRlb0RlY29kZXItZmxhZy1vbi1WQS1BUEkt ZGV2aWNlcwkyMDIzLTExLTAxIDE5OjEwOjA5LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVt LTExOS4wLjYwNDUuMTA1L2Nocm9tZS9icm93c2VyL2Fib3V0X2ZsYWdzLmNjCTIwMjMtMTEtMDYg MTc6MTI6MDguMDU3OTg0MjkxICswMTAwCi1AQCAtNzc3MSwxMSArNzc3MSwxMyBAQCBjb25zdCBG ZWF0dXJlRW50cnkga0ZlYXR1cmVFbnRyaWVzW10gPSB7Ci0gI2VuZGlmICAvLyBCVUlMREZMQUco SVNfQ0hST01FT1NfQVNIKQotIAotICNpZiBCVUlMREZMQUcoSVNfQ0hST01FT1MpICYmIEJVSUxE RkxBRyhVU0VfQ0hST01FT1NfTUVESUFfQUNDRUxFUkFUSU9OKQotKyNpZiAhQlVJTERGTEFHKFVT RV9WQUFQSSkKLSAgICAgeyJjaHJvbWVvcy1kaXJlY3QtdmlkZW8tZGVjb2RlciIsCi0gICAgICBm bGFnX2Rlc2NyaXB0aW9uczo6a0Nocm9tZU9TRGlyZWN0VmlkZW9EZWNvZGVyTmFtZSwKLSAgICAg IGZsYWdfZGVzY3JpcHRpb25zOjprQ2hyb21lT1NEaXJlY3RWaWRlb0RlY29kZXJEZXNjcmlwdGlv biwKLSAgICAgIGtPc0NyT1MgfCBrT3NMYWNyb3MsCi0gICAgICBGRUFUVVJFX1ZBTFVFX1RZUEUo bWVkaWE6OmtVc2VDaHJvbWVPU0RpcmVjdFZpZGVvRGVjb2Rlcil9LAotKyNlbmRpZiAgLy8gIUJV SUxERkxBRyhVU0VfVkFBUEkpCi0gCi0gICAgIHsiZW5hYmxlLXZici1lbmNvZGUtYWNjZWxlcmF0 aW9uIiwKLSAgICAgIGZsYWdfZGVzY3JpcHRpb25zOjprQ2hyb21lT1NIV1ZCUkVuY29kaW5nTmFt ZSwKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Nocm9tZS9icm93c2VyL0RFUFMu aGlkZS1Vc2VDaHJvbWVPU0RpcmVjdFZpZGVvRGVjb2Rlci1mbGFnLW9uLVZBLUFQSS1kZXZpY2Vz IGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Nocm9tZS9icm93c2VyL0RFUFMKLS0tLSBjaHJvbWl1 bS0xMTkuMC42MDQ1LjEwNS9jaHJvbWUvYnJvd3Nlci9ERVBTLmhpZGUtVXNlQ2hyb21lT1NEaXJl Y3RWaWRlb0RlY29kZXItZmxhZy1vbi1WQS1BUEktZGV2aWNlcwkyMDIzLTExLTAxIDE5OjEwOjA5 LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Nocm9tZS9icm93 c2VyL0RFUFMJMjAyMy0xMS0wNiAxNzoxMjowOC4wNTU5ODQyNDggKzAxMDAKLUBAIC00MTUsNiAr NDE1LDcgQEAgaW5jbHVkZV9ydWxlcyA9IFsKLSAgICIrbWVkaWEvYmFzZSIsICAjIEZvciBtZWRp YSBzd2l0Y2hlcwotICAgIittZWRpYS9jYXBhYmlsaXRpZXMiLCAjIEZvciBJbk1lbW9yeVZpZGVv RGVjb2RlU3RhdHNEQgotICAgIittZWRpYS9jZG0iLAotKyAgIittZWRpYS9ncHUvYnVpbGRmbGFn cy5oIiwKLSAgICIrbWVkaWEvcmVtb3RpbmcvZGV2aWNlX2NhcGFiaWxpdHlfY2hlY2tlci5oIiwK LSAgICIrbWVkaWEvY2FwdHVyZSIsCi0gICAiK21lZGlhL21pZGkiLCAgIyBGb3IgbWlkaSBzd2l0 Y2hlcwotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY2hyb21lL2Jyb3dzZXIvZmxh Z19kZXNjcmlwdGlvbnMuY2MuaGlkZS1Vc2VDaHJvbWVPU0RpcmVjdFZpZGVvRGVjb2Rlci1mbGFn LW9uLVZBLUFQSS1kZXZpY2VzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Nocm9tZS9icm93c2Vy L2ZsYWdfZGVzY3JpcHRpb25zLmNjCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY2hyb21l L2Jyb3dzZXIvZmxhZ19kZXNjcmlwdGlvbnMuY2MuaGlkZS1Vc2VDaHJvbWVPU0RpcmVjdFZpZGVv RGVjb2Rlci1mbGFnLW9uLVZBLUFQSS1kZXZpY2VzCTIwMjMtMTEtMDEgMTk6MTA6MTIuMDAwMDAw MDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY2hyb21lL2Jyb3dzZXIvZmxh Z19kZXNjcmlwdGlvbnMuY2MJMjAyMy0xMS0wNiAxNzoxMjowOC4wNTk5ODQzMzUgKzAxMDAKLUBA IC03LDYgKzcsNyBAQAotICNpbmNsdWRlICJidWlsZC9idWlsZF9jb25maWcuaCIKLSAjaW5jbHVk ZSAiYnVpbGQvY2hyb21lb3NfYnVpbGRmbGFncy5oIgotICNpbmNsdWRlICJjb21wb25lbnRzL3N1 cGVydmlzZWRfdXNlci9jb3JlL2NvbW1vbi9idWlsZGZsYWdzLmgiCi0rI2luY2x1ZGUgIm1lZGlh L2dwdS9idWlsZGZsYWdzLmgiCi0gI2luY2x1ZGUgInBkZi9idWlsZGZsYWdzLmgiCi0gCi0gLy8g S2VlcCBpbiBpZGVudGljYWwgb3JkZXIgYXMgdGhlIGhlYWRlciBmaWxlLCBzZWUgdGhlIGNvbW1l bnQgYXQgdGhlIHRvcAotQEAgLTc0MjQsNiArNzQyNSw3IEBAIGNvbnN0IGNoYXIga1ZhYXBpVlA5 a1NWQ0VuY29kZXJEZXNjcmlwdGkKLSAjZW5kaWYgIC8vIGRlZmluZWQoQVJDSF9DUFVfWDg2X0ZB TUlMWSkgJiYgQlVJTERGTEFHKElTX0NIUk9NRU9TKQotIAotICNpZiBCVUlMREZMQUcoSVNfQ0hS T01FT1MpICYmIEJVSUxERkxBRyhVU0VfQ0hST01FT1NfTUVESUFfQUNDRUxFUkFUSU9OKQotKyNp ZiAhQlVJTERGTEFHKFVTRV9WQUFQSSkKLSBjb25zdCBjaGFyIGtDaHJvbWVPU0RpcmVjdFZpZGVv RGVjb2Rlck5hbWVbXSA9ICJDaHJvbWVPUyBEaXJlY3QgVmlkZW8gRGVjb2RlciI7Ci0gY29uc3Qg Y2hhciBrQ2hyb21lT1NEaXJlY3RWaWRlb0RlY29kZXJEZXNjcmlwdGlvbltdID0KLSAgICAgIkVu YWJsZXMgdGhlIGhhcmR3YXJlLWFjY2VsZXJhdGVkIENocm9tZU9TIGRpcmVjdCBtZWRpYTo6Vmlk ZW9EZWNvZGVyICIKLUBAIC03NDMxLDcgKzc0MzMsOCBAQCBjb25zdCBjaGFyIGtDaHJvbWVPU0Rp cmVjdFZpZGVvRGVjb2RlckRlCi0gICAgICItLXBsYXRmb3JtLWRpc2FsbG93cy1jaHJvbWVvcy1k aXJlY3QtdmlkZW8tZGVjb2RlciBjb21tYW5kIGxpbmUgc3dpdGNoICIKLSAgICAgIndoaWNoIGlz IGFkZGVkIGZvciBwbGF0Zm9ybXMgd2hlcmUgc2FpZCBkaXJlY3QgVmlkZW9EZWNvZGVyIGRvZXMg bm90IHdvcmsgIgotICAgICAib3IgaXMgbm90IHdlbGwgdGVzdGVkIChzZWUgdGhlIGRpc2FibGVf Y3Jvc192aWRlb19kZWNvZGVyIFVTRSBmbGFnIGluICIKLS0gICAgIkNocm9tZU9TKSI7Ci0rICAg ICJDaHJvbWVPUykuIFRoaXMgZmxhZyBpcyBzdXBwb3J0ZWQgb25seSBvbiBub24tSW50ZWwgYW5k IG5vbi1BTUQgZGV2aWNlcy4iOwotKyNlbmRpZiAgLy8gIUJVSUxERkxBRyhVU0VfVkFBUEkpCi0g Y29uc3QgY2hhciBrQ2hyb21lT1NIV1ZCUkVuY29kaW5nTmFtZVtdID0KLSAgICAgIkNocm9tZU9T IEhhcmR3YXJlIFZhcmlhYmxlIEJpdHJhdGUgRW5jb2RpbmciOwotIGNvbnN0IGNoYXIga0Nocm9t ZU9TSFdWQlJFbmNvZGluZ0Rlc2NyaXB0aW9uW10gPQotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAu NjA0NS4xMDUvY29udGVudC9wdWJsaWMvYnJvd3Nlci9ncHVfdXRpbHMuY2MuaGlkZS1Vc2VDaHJv bWVPU0RpcmVjdFZpZGVvRGVjb2Rlci1mbGFnLW9uLVZBLUFQSS1kZXZpY2VzIGNocm9taXVtLTEx OS4wLjYwNDUuMTA1L2NvbnRlbnQvcHVibGljL2Jyb3dzZXIvZ3B1X3V0aWxzLmNjCi0tLS0gY2hy b21pdW0tMTE5LjAuNjA0NS4xMDUvY29udGVudC9wdWJsaWMvYnJvd3Nlci9ncHVfdXRpbHMuY2Mu aGlkZS1Vc2VDaHJvbWVPU0RpcmVjdFZpZGVvRGVjb2Rlci1mbGFnLW9uLVZBLUFQSS1kZXZpY2Vz CTIwMjMtMTEtMDEgMTk6MTA6MjYuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAu NjA0NS4xMDUvY29udGVudC9wdWJsaWMvYnJvd3Nlci9ncHVfdXRpbHMuY2MJMjAyMy0xMS0wNiAx NzoxMjowOC4wNTk5ODQzMzUgKzAxMDAKLUBAIC0xMzMsMjAgKzEzMywyNiBAQCBjb25zdCBncHU6 OkdwdVByZWZlcmVuY2VzIEdldEdwdVByZWZlcmVuCi0gI2lmIEJVSUxERkxBRyhVU0VfQ0hST01F T1NfTUVESUFfQUNDRUxFUkFUSU9OKQotICAgLy8gVGhlIGRpcmVjdCBWaWRlb0RlY29kZXIgaXMg ZGlzYWxsb3dlZCBvbiBzb21lIHBhcnRpY3VsYXIgU29DL3BsYXRmb3Jtcy4KLSAgIGNvbnN0IGJv b2wgc2hvdWxkX3VzZV9kaXJlY3RfdmlkZW9fZGVjb2RlciA9Ci0rI2lmIEJVSUxERkxBRyhVU0Vf VkFBUEkpCi0rICAgICAgdHJ1ZTsKLSsjZWxzZQotICAgICAgICFjb21tYW5kX2xpbmUtPkhhc1N3 aXRjaCgKLSAgICAgICAgICAgc3dpdGNoZXM6OmtQbGF0Zm9ybURpc2FsbG93c0Nocm9tZU9TRGly ZWN0VmlkZW9EZWNvZGVyKSAmJgotICAgICAgIGJhc2U6OkZlYXR1cmVMaXN0OjpJc0VuYWJsZWQo bWVkaWE6OmtVc2VDaHJvbWVPU0RpcmVjdFZpZGVvRGVjb2Rlcik7Ci0rI2VuZGlmICAvLyBCVUlM REZMQUcoVVNFX1ZBQVBJKQotKwotKyAgZ3B1X3ByZWZlcmVuY2VzLmVuYWJsZV9jaHJvbWVvc19k aXJlY3RfdmlkZW9fZGVjb2RlciA9Ci0rI2lmIEJVSUxERkxBRyhVU0VfVkFBUEkpCi0rICAgICAg c2hvdWxkX3VzZV9kaXJlY3RfdmlkZW9fZGVjb2RlcjsKLSsjZWxzZQotKyAgICAgIC8vIEZvciB0 ZXN0aW5nIHB1cnBvc2VzLCB0aGUgZm9sbG93aW5nIGZsYWcgYWxsb3dzIHVzaW5nIHRoZSAib3Ro ZXIiIHZpZGVvCi0rICAgICAgLy8gZGVjb2RlciBpbXBsZW1lbnRhdGlvbi4KLSsgICAgICBiYXNl OjpGZWF0dXJlTGlzdDo6SXNFbmFibGVkKAotKyAgICAgICAgICBtZWRpYTo6a1VzZUFsdGVybmF0 ZVZpZGVvRGVjb2RlckltcGxlbWVudGF0aW9uKQotKyAgICAgICAgICA/ICFzaG91bGRfdXNlX2Rp cmVjdF92aWRlb19kZWNvZGVyCi0rICAgICAgICAgIDogc2hvdWxkX3VzZV9kaXJlY3RfdmlkZW9f ZGVjb2RlcjsKLSsjZW5kaWYgIC8vIEJVSUxERkxBRyhVU0VfVkFBUEkpCi0gCi0tICAvLyBGb3Ig dGVzdGluZyBwdXJwb3NlcywgdGhlIGZvbGxvd2luZyBmbGFnIGFsbG93cyB1c2luZyB0aGUgIm90 aGVyIiB2aWRlbwotLSAgLy8gZGVjb2RlciBpbXBsZW1lbnRhdGlvbi4KLS0gIGlmIChiYXNlOjpG ZWF0dXJlTGlzdDo6SXNFbmFibGVkKAotLSAgICAgICAgICBtZWRpYTo6a1VzZUFsdGVybmF0ZVZp ZGVvRGVjb2RlckltcGxlbWVudGF0aW9uKSkgewotLSAgICBncHVfcHJlZmVyZW5jZXMuZW5hYmxl X2Nocm9tZW9zX2RpcmVjdF92aWRlb19kZWNvZGVyID0KLS0gICAgICAgICFzaG91bGRfdXNlX2Rp cmVjdF92aWRlb19kZWNvZGVyOwotLSAgfSBlbHNlIHsKLS0gICAgZ3B1X3ByZWZlcmVuY2VzLmVu YWJsZV9jaHJvbWVvc19kaXJlY3RfdmlkZW9fZGVjb2RlciA9Ci0tICAgICAgICBzaG91bGRfdXNl X2RpcmVjdF92aWRlb19kZWNvZGVyOwotLSAgfQotICNpZiBCVUlMREZMQUcoVVNFX1ZBQVBJKQot ICAgQ0hFQ0soZ3B1X3ByZWZlcmVuY2VzLmVuYWJsZV9jaHJvbWVvc19kaXJlY3RfdmlkZW9fZGVj b2Rlcik7Ci0gI2VuZGlmICAvLyBCVUlMREZMQUcoVVNFX1ZBQVBJKQotZGlmZiAtdXAgY2hyb21p dW0tMTE5LjAuNjA0NS4xMDUvbWVkaWEvYmFzZS9tZWRpYV9zd2l0Y2hlcy5jYy5oaWRlLVVzZUNo cm9tZU9TRGlyZWN0VmlkZW9EZWNvZGVyLWZsYWctb24tVkEtQVBJLWRldmljZXMgY2hyb21pdW0t MTE5LjAuNjA0NS4xMDUvbWVkaWEvYmFzZS9tZWRpYV9zd2l0Y2hlcy5jYwotLS0tIGNocm9taXVt LTExOS4wLjYwNDUuMTA1L21lZGlhL2Jhc2UvbWVkaWFfc3dpdGNoZXMuY2MuaGlkZS1Vc2VDaHJv bWVPU0RpcmVjdFZpZGVvRGVjb2Rlci1mbGFnLW9uLVZBLUFQSS1kZXZpY2VzCTIwMjMtMTEtMDEg MTk6MTA6MzEuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvbWVk aWEvYmFzZS9tZWRpYV9zd2l0Y2hlcy5jYwkyMDIzLTExLTA2IDE3OjEyOjA4LjA2MDk4NDM1NiAr MDEwMAotQEAgLTEyMDIsNiArMTIwMiw3IEBAIEJBU0VfRkVBVFVSRShrQ2hyb21lT1NIV1ZCUkVu Y29kaW5nLAotICAgICAgICAgICAgICAiQ2hyb21lT1NIV1ZCUkVuY29kaW5nIiwKLSAgICAgICAg ICAgICAgYmFzZTo6RkVBVFVSRV9ESVNBQkxFRF9CWV9ERUZBVUxUKTsKLSAKLSsjaWYgIUJVSUxE RkxBRyhVU0VfVkFBUEkpCi0gLy8gRW5hYmxlIHRoZSBoYXJkd2FyZS1hY2NlbGVyYXRlZCBkaXJl Y3QgdmlkZW8gZGVjb2RlciBpbnN0ZWFkIG9mIHRoZSBvbmUKLSAvLyBuZWVkaW5nIHRoZSBWZGFW aWRlb0RlY29kZXIgYWRhcHRlci4gVGhpcyBmbGFnIGlzIHVzZWQgbWFpbmx5IGFzIGEKLSAvLyBj aHJvbWU6ZmxhZyBmb3IgZGV2ZWxvcGVycyBkZWJ1Z2dpbmcgaXNzdWVzIGFzIHdlbGwgYXMgdG8g YmUgYWJsZSB0bwotQEAgLTEyMTAsNiArMTIxMSw3IEBAIEJBU0VfRkVBVFVSRShrQ2hyb21lT1NI V1ZCUkVuY29kaW5nLAotIEJBU0VfRkVBVFVSRShrVXNlQ2hyb21lT1NEaXJlY3RWaWRlb0RlY29k ZXIsCi0gICAgICAgICAgICAgICJVc2VDaHJvbWVPU0RpcmVjdFZpZGVvRGVjb2RlciIsCi0gICAg ICAgICAgICAgIGJhc2U6OkZFQVRVUkVfRU5BQkxFRF9CWV9ERUZBVUxUKTsKLSsjZW5kaWYgIC8v ICFCVUlMREZMQUcoVVNFX1ZBQVBJKQotIAotIC8vIExpbWl0IHRoZSBudW1iZXIgb2YgY29uY3Vy cmVudCBoYXJkd2FyZSBkZWNvZGVyIGluc3RhbmNlcyBvbiBDaHJvbWVPUy4KLSBCQVNFX0ZFQVRV UkUoa0xpbWl0Q29uY3VycmVudERlY29kZXJJbnN0YW5jZXMsCi1AQCAtMTIzOCw3ICsxMjQwLDcg QEAgQkFTRV9GRUFUVVJFKGtQcmVmZXJTb2Z0d2FyZU1UMjEsCi0gICAgICAgICAgICAgICJQcmVm ZXJTb2Z0d2FyZU1UMjEiLAotICAgICAgICAgICAgICBiYXNlOjpGRUFUVVJFX0RJU0FCTEVEX0JZ X0RFRkFVTFQpOwotICNlbmRpZiAgLy8gZGVmaW5lZChBUkNIX0NQVV9BUk1fRkFNSUxZKQotLSNp ZiBCVUlMREZMQUcoSVNfQ0hST01FT1MpCi0rI2lmIEJVSUxERkxBRyhJU19DSFJPTUVPUykgJiYg IUJVSUxERkxBRyhVU0VfVkFBUEkpCi0gLy8gQ2hyb21lT1MgaGFzIG9uZSBvZiB0d28gVmlkZW9E ZWNvZGVyIGltcGxlbWVudGF0aW9ucyBhY3RpdmUgYmFzZWQgb24KLSAvLyBTb0MvYm9hcmQgc3Bl Y2lmaWMgY29uZmlndXJhdGlvbnMgdGhhdCBhcmUgc2VudCB2aWEgY29tbWFuZCBsaW5lIGZsYWdz LiBUaGlzCi0gLy8gc3dpdGNoIGFsbG93cyB1c2luZyB0aGUgbm9uIGRlZmF1bHQgaW1wbGVtZW50 YXRpb24gZm9yIHRlc3RpbmcuCi1AQCAtMTI0Niw3ICsxMjQ4LDcgQEAgQkFTRV9GRUFUVVJFKGtQ cmVmZXJTb2Z0d2FyZU1UMjEsCi0gQkFTRV9GRUFUVVJFKGtVc2VBbHRlcm5hdGVWaWRlb0RlY29k ZXJJbXBsZW1lbnRhdGlvbiwKLSAgICAgICAgICAgICAgIlVzZUFsdGVybmF0ZVZpZGVvRGVjb2Rl ckltcGxlbWVudGF0aW9uIiwKLSAgICAgICAgICAgICAgYmFzZTo6RkVBVFVSRV9ESVNBQkxFRF9C WV9ERUZBVUxUKTsKLS0jZW5kaWYgIC8vIEJVSUxERkxBRyhJU19DSFJPTUVPUykKLSsjZW5kaWYg IC8vIEJVSUxERkxBRyhJU19DSFJPTUVPUykgJiYgIUJVSUxERkxBRyhVU0VfVkFBUEkpCi0gI2Vu ZGlmICAvLyBCVUlMREZMQUcoVVNFX0NIUk9NRU9TX01FRElBX0FDQ0VMRVJBVElPTikKLSAKLSAj aWYgQlVJTERGTEFHKElTX1dJTikKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L21l ZGlhL2Jhc2UvbWVkaWFfc3dpdGNoZXMuaC5oaWRlLVVzZUNocm9tZU9TRGlyZWN0VmlkZW9EZWNv ZGVyLWZsYWctb24tVkEtQVBJLWRldmljZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvbWVkaWEv YmFzZS9tZWRpYV9zd2l0Y2hlcy5oCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvbWVkaWEv YmFzZS9tZWRpYV9zd2l0Y2hlcy5oLmhpZGUtVXNlQ2hyb21lT1NEaXJlY3RWaWRlb0RlY29kZXIt ZmxhZy1vbi1WQS1BUEktZGV2aWNlcwkyMDIzLTExLTAxIDE5OjEwOjMxLjAwMDAwMDAwMCArMDEw MAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L21lZGlhL2Jhc2UvbWVkaWFfc3dpdGNoZXMu aAkyMDIzLTExLTA2IDE3OjEyOjA4LjA2MDk4NDM1NiArMDEwMAotQEAgLTE0LDYgKzE0LDcgQEAK LSAjaW5jbHVkZSAiYnVpbGQvYnVpbGRfY29uZmlnLmgiCi0gI2luY2x1ZGUgImJ1aWxkL2Nocm9t ZW9zX2J1aWxkZmxhZ3MuaCIKLSAjaW5jbHVkZSAibWVkaWEvYmFzZS9tZWRpYV9leHBvcnQuaCIK LSsjaW5jbHVkZSAibWVkaWEvZ3B1L2J1aWxkZmxhZ3MuaCIKLSAjaW5jbHVkZSAibWVkaWEvbWVk aWFfYnVpbGRmbGFncy5oIgotIAotIG5hbWVzcGFjZSBiYXNlIHsKLUBAIC0zODIsMTYgKzM4Mywx OCBAQCBNRURJQV9FWFBPUlQgQkFTRV9ERUNMQVJFX0ZFQVRVUkUoa0J1aWx0Ci0gI2lmIEJVSUxE RkxBRyhVU0VfQ0hST01FT1NfTUVESUFfQUNDRUxFUkFUSU9OKQotIE1FRElBX0VYUE9SVCBCQVNF X0RFQ0xBUkVfRkVBVFVSRShrQ2hyb21lT1NIV0FWMURlY29kZXIpOwotIE1FRElBX0VYUE9SVCBC QVNFX0RFQ0xBUkVfRkVBVFVSRShrQ2hyb21lT1NIV1ZCUkVuY29kaW5nKTsKLSsjaWYgIUJVSUxE RkxBRyhVU0VfVkFBUEkpCi0gTUVESUFfRVhQT1JUIEJBU0VfREVDTEFSRV9GRUFUVVJFKGtVc2VD aHJvbWVPU0RpcmVjdFZpZGVvRGVjb2Rlcik7Ci0rI2VuZGlmICAvLyAhQlVJTERGTEFHKFVTRV9W QUFQSSkKLSBNRURJQV9FWFBPUlQgQkFTRV9ERUNMQVJFX0ZFQVRVUkUoa0xpbWl0Q29uY3VycmVu dERlY29kZXJJbnN0YW5jZXMpOwotIE1FRElBX0VYUE9SVCBCQVNFX0RFQ0xBUkVfRkVBVFVSRShr VVNlU2VxdWVuY2VkVGFza1J1bm5lckZvclZFQSk7Ci0gI2lmIGRlZmluZWQoQVJDSF9DUFVfQVJN X0ZBTUlMWSkKLSBNRURJQV9FWFBPUlQgQkFTRV9ERUNMQVJFX0ZFQVRVUkUoa1ByZWZlckdMSW1h Z2VQcm9jZXNzb3IpOwotIE1FRElBX0VYUE9SVCBCQVNFX0RFQ0xBUkVfRkVBVFVSRShrUHJlZmVy U29mdHdhcmVNVDIxKTsKLSAjZW5kaWYgIC8vIGRlZmluZWQoQVJDSF9DUFVfQVJNX0ZBTUlMWSkK LS0jaWYgQlVJTERGTEFHKElTX0NIUk9NRU9TKQotKyNpZiBCVUlMREZMQUcoSVNfQ0hST01FT1Mp ICYmICFCVUlMREZMQUcoVVNFX1ZBQVBJKQotIE1FRElBX0VYUE9SVCBCQVNFX0RFQ0xBUkVfRkVB VFVSRShrVXNlQWx0ZXJuYXRlVmlkZW9EZWNvZGVySW1wbGVtZW50YXRpb24pOwotLSNlbmRpZiAg Ly8gQlVJTERGTEFHKElTX0NIUk9NRU9TKQotKyNlbmRpZiAgLy8gQlVJTERGTEFHKElTX0NIUk9N RU9TKSAmJiAhQlVJTERGTEFHKFVTRV9WQUFQSSkKLSAjZW5kaWYgIC8vIEJVSUxERkxBRyhVU0Vf Q0hST01FT1NfTUVESUFfQUNDRUxFUkFUSU9OKQotIAotICNpZiBCVUlMREZMQUcoSVNfV0lOKQoK ZGlmZiAtLWdpdCBhL2Nocm9taXVtLTExOS1taXNzaW5nLWhlYWRlci1maWxlcy5wYXRjaCBiL2No cm9taXVtLTExOS1taXNzaW5nLWhlYWRlci1maWxlcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggYzE5YTFmNS4uMDAwMDAwMAotLS0gYS9jaHJvbWl1bS0xMTktbWlzc2luZy1o ZWFkZXItZmlsZXMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0NzAgKzAsMCBAQAotZGlmZiAt dXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvYmFzZS9jaGVja19vcC5oLm1pc3NpbmctaGVhZGVy LWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Jhc2UvY2hlY2tfb3AuaAotLS0tIGNocm9t aXVtLTExOS4wLjYwNDUuMTA1L2Jhc2UvY2hlY2tfb3AuaC5taXNzaW5nLWhlYWRlci1maWxlcwky MDIzLTExLTAxIDE5OjEwOjA1LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYw NDUuMTA1L2Jhc2UvY2hlY2tfb3AuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgwODg2ODk4MiArMDEw MAotQEAgLTUsNiArNSw3IEBACi0gI2lmbmRlZiBCQVNFX0NIRUNLX09QX0hfCi0gI2RlZmluZSBC QVNFX0NIRUNLX09QX0hfCi0gCi0rI2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgPGNzdGRk ZWY+Ci0gI2luY2x1ZGUgPHN0cmluZz4KLSAjaW5jbHVkZSA8c3RyaW5nX3ZpZXc+Ci1kaWZmIC11 cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9iYXNlL2NvbnRhaW5lcnMvZmxhdF9tYXAuaC5taXNz aW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9iYXNlL2NvbnRhaW5lcnMv ZmxhdF9tYXAuaAotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Jhc2UvY29udGFpbmVycy9m bGF0X21hcC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6MDUuMDAwMDAw MDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvYmFzZS9jb250YWluZXJzL2Zs YXRfbWFwLmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTM4NjkwODkgKzAxMDAKLUBAIC01LDYgKzUs NyBAQAotICNpZm5kZWYgQkFTRV9DT05UQUlORVJTX0ZMQVRfTUFQX0hfCi0gI2RlZmluZSBCQVNF X0NPTlRBSU5FUlNfRkxBVF9NQVBfSF8KLSAKLSsjaW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5jbHVk ZSA8ZnVuY3Rpb25hbD4KLSAjaW5jbHVkZSA8dHVwbGU+Ci0gI2luY2x1ZGUgPHR5cGVfdHJhaXRz PgotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvYmFzZS9kZWJ1Zy9wcm9maWxlci5o Lm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Jhc2UvZGVidWcv cHJvZmlsZXIuaAotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Jhc2UvZGVidWcvcHJvZmls ZXIuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEwOjA1LjAwMDAwMDAwMCAr MDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Jhc2UvZGVidWcvcHJvZmlsZXIuaAky MDIzLTExLTA2IDE0OjM0OjAxLjgwOTg2OTAwNCArMDEwMAotQEAgLTgsNiArOCw3IEBACi0gI2lu Y2x1ZGUgPHN0ZGRlZi5oPgotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAKLSsjaW5jbHVkZSA8Y3N0 ZGludD4KLSAjaW5jbHVkZSA8c3RyaW5nPgotIAotICNpbmNsdWRlICJiYXNlL2Jhc2VfZXhwb3J0 LmgiCi1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9iYXNlL21lbW9yeS9yZWZfY291 bnRlZC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Jhc2Uv bWVtb3J5L3JlZl9jb3VudGVkLmgKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9iYXNlL21l bW9yeS9yZWZfY291bnRlZC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6 MDUuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvYmFzZS9tZW1v cnkvcmVmX2NvdW50ZWQuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgwODg2ODk4MiArMDEwMAotQEAg LTYsNiArNiw3IEBACi0gI2RlZmluZSBCQVNFX01FTU9SWV9SRUZfQ09VTlRFRF9IXwotIAotICNp bmNsdWRlIDxzdGRkZWYuaD4KLSsjaW5jbHVkZSA8bGltaXRzPgotIAotICNpbmNsdWRlIDxsaW1p dHM+Ci0gI2luY2x1ZGUgPHV0aWxpdHk+Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS9jaHJvbWUvYnJvd3Nlci9wcml2YWN5X2J1ZGdldC9lbmNvdW50ZXJlZF9zdXJmYWNlX3RyYWNr ZXIuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jaHJvbWUv YnJvd3Nlci9wcml2YWN5X2J1ZGdldC9lbmNvdW50ZXJlZF9zdXJmYWNlX3RyYWNrZXIuaAotLS0t IGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Nocm9tZS9icm93c2VyL3ByaXZhY3lfYnVkZ2V0L2Vu Y291bnRlcmVkX3N1cmZhY2VfdHJhY2tlci5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEt MDEgMTk6MTA6MTMuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUv Y2hyb21lL2Jyb3dzZXIvcHJpdmFjeV9idWRnZXQvZW5jb3VudGVyZWRfc3VyZmFjZV90cmFja2Vy LmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTQ4NjkxMTAgKzAxMDAKLUBAIC03LDYgKzcsNyBAQAot IAotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAKLSsjaW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5jbHVk ZSA8bWFwPgotIAotICNpbmNsdWRlICJiYXNlL2NvbnRhaW5lcnMvZmxhdF9zZXQuaCIKLWRpZmYg LXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Nocm9tZS9icm93c2VyL3dlYmF1dGhuL2F1dGhl bnRpY2F0b3JfcmVxdWVzdF9kaWFsb2dfbW9kZWwuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJv bWl1bS0xMTkuMC42MDQ1LjEwNS9jaHJvbWUvYnJvd3Nlci93ZWJhdXRobi9hdXRoZW50aWNhdG9y X3JlcXVlc3RfZGlhbG9nX21vZGVsLmgKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jaHJv bWUvYnJvd3Nlci93ZWJhdXRobi9hdXRoZW50aWNhdG9yX3JlcXVlc3RfZGlhbG9nX21vZGVsLmgu bWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMDoxNi4wMDAwMDAwMDAgKzAxMDAK LSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jaHJvbWUvYnJvd3Nlci93ZWJhdXRobi9hdXRo ZW50aWNhdG9yX3JlcXVlc3RfZGlhbG9nX21vZGVsLmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTc4 NjkxNzQgKzAxMDAKLUBAIC04LDYgKzgsNyBAQAotICNpbmNsdWRlIDxtZW1vcnk+Ci0gI2luY2x1 ZGUgPHN0cmluZz4KLSAjaW5jbHVkZSA8dmVjdG9yPgotKyNpbmNsdWRlIDx2YXJpYW50PgotIAot ICNpbmNsdWRlICJiYXNlL2NvbnRhaW5lcnMvc3Bhbi5oIgotICNpbmNsdWRlICJiYXNlL2Z1bmN0 aW9uYWwvY2FsbGJhY2tfZm9yd2FyZC5oIgotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4x MDUvY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL2Nocm9tZS93ZWJfdmlld19pbXBsLmNjLm1pc3Np bmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Nocm9tZS90ZXN0L2Nocm9t ZWRyaXZlci9jaHJvbWUvd2ViX3ZpZXdfaW1wbC5jYwotLS0tIGNocm9taXVtLTExOS4wLjYwNDUu MTA1L2Nocm9tZS90ZXN0L2Nocm9tZWRyaXZlci9jaHJvbWUvd2ViX3ZpZXdfaW1wbC5jYy5taXNz aW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEwOjE2LjAwMDAwMDAwMCArMDEwMAotKysr IGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Nocm9tZS90ZXN0L2Nocm9tZWRyaXZlci9jaHJvbWUv d2ViX3ZpZXdfaW1wbC5jYwkyMDIzLTExLTA2IDE0OjM0OjAxLjgxODg2OTE5NiArMDEwMAotQEAg LTExLDYgKzExLDcgQEAKLSAjaW5jbHVkZSA8cXVldWU+Ci0gI2luY2x1ZGUgPHV0aWxpdHk+Ci0g I2luY2x1ZGUgPHZlY3Rvcj4KLSsjaW5jbHVkZSA8Y3N0cmluZz4KLSAKLSAjaW5jbHVkZSAiYmFz ZS9jaGVjay5oIgotICNpbmNsdWRlICJiYXNlL2ZpbGVzL2ZpbGVfcGF0aC5oIgotZGlmZiAtdXAg Y2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIv YXV0b2ZpbGxfYWJsYXRpb25fc3R1ZHkuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0x MTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci9hdXRvZmlsbF9h YmxhdGlvbl9zdHVkeS5oCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9h dXRvZmlsbC9jb3JlL2Jyb3dzZXIvYXV0b2ZpbGxfYWJsYXRpb25fc3R1ZHkuaC5taXNzaW5nLWhl YWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEwOjE5LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9t aXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL2F1dG9m aWxsX2FibGF0aW9uX3N0dWR5LmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTU4NjkxMzIgKzAxMDAK LUBAIC03LDYgKzcsNyBAQAotIAotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAKLSsjaW5jbHVkZSA8 Y3N0ZGludD4KLSAjaW5jbHVkZSA8c3RyaW5nPgotIAotIGNsYXNzIEdVUkw7Ci1kaWZmIC11cCBj aHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL2NyYXNoL2NvcmUvYXBwL2NyYXNoX3Jl cG9ydGVyX2NsaWVudC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUu MTA1L2NvbXBvbmVudHMvY3Jhc2gvY29yZS9hcHAvY3Jhc2hfcmVwb3J0ZXJfY2xpZW50LmgKLS0t LSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL2NyYXNoL2NvcmUvYXBwL2NyYXNo X3JlcG9ydGVyX2NsaWVudC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6 MjAuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50 cy9jcmFzaC9jb3JlL2FwcC9jcmFzaF9yZXBvcnRlcl9jbGllbnQuaAkyMDIzLTExLTA2IDE0OjM0 OjAxLjgxMzg2OTA4OSArMDEwMAotQEAgLTcsNiArNyw3IEBACi0gCi0gI2luY2x1ZGUgPHN0ZGlu dC5oPgotIAotKyNpbmNsdWRlIDxjc3RkaW50PgotICNpbmNsdWRlIDxzdHJpbmc+Ci0gCi0gI2lu Y2x1ZGUgImJ1aWxkL2J1aWxkX2NvbmZpZy5oIgotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0 NS4xMDUvY29tcG9uZW50cy9mZWF0dXJlX2VuZ2FnZW1lbnQvaW50ZXJuYWwvZXZlbnRfc3RvcmFn ZV92YWxpZGF0b3IuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS9jb21wb25lbnRzL2ZlYXR1cmVfZW5nYWdlbWVudC9pbnRlcm5hbC9ldmVudF9zdG9yYWdlX3Zh bGlkYXRvci5oCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9mZWF0dXJl X2VuZ2FnZW1lbnQvaW50ZXJuYWwvZXZlbnRfc3RvcmFnZV92YWxpZGF0b3IuaC5taXNzaW5nLWhl YWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEwOjIxLjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9t aXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvZmVhdHVyZV9lbmdhZ2VtZW50L2ludGVybmFs L2V2ZW50X3N0b3JhZ2VfdmFsaWRhdG9yLmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTQ4NjkxMTAg KzAxMDAKLUBAIC03LDYgKzcsNyBAQAotIAotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAKLSsjaW5j bHVkZSA8Y3N0ZGludD4KLSAjaW5jbHVkZSA8c3RyaW5nPgotIAotIG5hbWVzcGFjZSBmZWF0dXJl X2VuZ2FnZW1lbnQgewotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50 cy9mZWF0dXJlX2VuZ2FnZW1lbnQvaW50ZXJuYWwvbmV2ZXJfZXZlbnRfc3RvcmFnZV92YWxpZGF0 b3IuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25l bnRzL2ZlYXR1cmVfZW5nYWdlbWVudC9pbnRlcm5hbC9uZXZlcl9ldmVudF9zdG9yYWdlX3ZhbGlk YXRvci5oCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9mZWF0dXJlX2Vu Z2FnZW1lbnQvaW50ZXJuYWwvbmV2ZXJfZXZlbnRfc3RvcmFnZV92YWxpZGF0b3IuaC5taXNzaW5n LWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEwOjIxLjAwMDAwMDAwMCArMDEwMAotKysrIGNo cm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvZmVhdHVyZV9lbmdhZ2VtZW50L2ludGVy bmFsL25ldmVyX2V2ZW50X3N0b3JhZ2VfdmFsaWRhdG9yLmgJMjAyMy0xMS0wNiAxNDozNDowMS44 MTQ4NjkxMTAgKzAxMDAKLUBAIC01LDYgKzUsNyBAQAotICNpZm5kZWYgQ09NUE9ORU5UU19GRUFU VVJFX0VOR0FHRU1FTlRfSU5URVJOQUxfTkVWRVJfRVZFTlRfU1RPUkFHRV9WQUxJREFUT1JfSF8K LSAjZGVmaW5lIENPTVBPTkVOVFNfRkVBVFVSRV9FTkdBR0VNRU5UX0lOVEVSTkFMX05FVkVSX0VW RU5UX1NUT1JBR0VfVkFMSURBVE9SX0hfCi0gCi0rI2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1 ZGUgPHN0cmluZz4KLSAKLSAjaW5jbHVkZSAiY29tcG9uZW50cy9mZWF0dXJlX2VuZ2FnZW1lbnQv aW50ZXJuYWwvZXZlbnRfc3RvcmFnZV92YWxpZGF0b3IuaCIKLWRpZmYgLXVwIGNocm9taXVtLTEx OS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvb21uaWJveC9icm93c2VyL29uX2RldmljZV9oZWFkX21v ZGVsLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29tcG9u ZW50cy9vbW5pYm94L2Jyb3dzZXIvb25fZGV2aWNlX2hlYWRfbW9kZWwuaAotLS0tIGNocm9taXVt LTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvb21uaWJveC9icm93c2VyL29uX2RldmljZV9oZWFk X21vZGVsLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMDoyMS4wMDAwMDAw MDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL29tbmlib3gv YnJvd3Nlci9vbl9kZXZpY2VfaGVhZF9tb2RlbC5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODE1ODY5 MTMyICswMTAwCi1AQCAtNyw2ICs3LDcgQEAKLSAKLSAjaW5jbHVkZSA8c3RkaW50Lmg+Ci0gCi0r I2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgPHN0cmluZz4KLSAjaW5jbHVkZSA8dXRpbGl0 eT4KLSAjaW5jbHVkZSA8dmVjdG9yPgotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUv Y29tcG9uZW50cy9wYXNzd29yZF9tYW5hZ2VyL2NvcmUvYnJvd3Nlci9nZW5lcmF0aW9uL3Bhc3N3 b3JkX2dlbmVyYXRvci5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUu MTA1L2NvbXBvbmVudHMvcGFzc3dvcmRfbWFuYWdlci9jb3JlL2Jyb3dzZXIvZ2VuZXJhdGlvbi9w YXNzd29yZF9nZW5lcmF0b3IuaAotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVu dHMvcGFzc3dvcmRfbWFuYWdlci9jb3JlL2Jyb3dzZXIvZ2VuZXJhdGlvbi9wYXNzd29yZF9nZW5l cmF0b3IuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEwOjIxLjAwMDAwMDAw MCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvcGFzc3dvcmRf bWFuYWdlci9jb3JlL2Jyb3dzZXIvZ2VuZXJhdGlvbi9wYXNzd29yZF9nZW5lcmF0b3IuaAkyMDIz LTExLTA2IDE0OjM0OjAxLjgxNDg2OTExMCArMDEwMAotQEAgLTcsNiArNyw3IEBACi0gCi0gI2lu Y2x1ZGUgPHN0ZGludC5oPgotIAotKyNpbmNsdWRlIDxjc3RkaW50PgotICNpbmNsdWRlIDxzdHJp bmc+Ci0gCi0gCi1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL3Bh eW1lbnRzL2NvbnRlbnQvdXRpbGl0eS9maW5nZXJwcmludF9wYXJzZXIuaC5taXNzaW5nLWhlYWRl ci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL3BheW1lbnRzL2NvbnRl bnQvdXRpbGl0eS9maW5nZXJwcmludF9wYXJzZXIuaAotLS0tIGNocm9taXVtLTExOS4wLjYwNDUu MTA1L2NvbXBvbmVudHMvcGF5bWVudHMvY29udGVudC91dGlsaXR5L2ZpbmdlcnByaW50X3BhcnNl ci5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6MjEuMDAwMDAwMDAwICsw MTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9wYXltZW50cy9jb250 ZW50L3V0aWxpdHkvZmluZ2VycHJpbnRfcGFyc2VyLmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTU4 NjkxMzIgKzAxMDAKLUBAIC01LDYgKzUsNyBAQAotICNpZm5kZWYgQ09NUE9ORU5UU19QQVlNRU5U U19DT05URU5UX1VUSUxJVFlfRklOR0VSUFJJTlRfUEFSU0VSX0hfCi0gI2RlZmluZSBDT01QT05F TlRTX1BBWU1FTlRTX0NPTlRFTlRfVVRJTElUWV9GSU5HRVJQUklOVF9QQVJTRVJfSF8KLSAKLSsj aW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5jbHVkZSA8c3RkZGVmLmg+Ci0gI2luY2x1ZGUgPHN0ZGlu dC5oPgotIAotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvZ2luL3RpbWVfY2xhbXBl ci5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2dpbi90aW1l X2NsYW1wZXIuaAotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2dpbi90aW1lX2NsYW1wZXIu aC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEwOjI4LjAwMDAwMDAwMCArMDEw MAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2dpbi90aW1lX2NsYW1wZXIuaAkyMDIzLTEx LTA2IDE0OjM0OjAxLjgxODg2OTE5NiArMDEwMAotQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgR0lO X0VYUE9SVCBUaW1lQ2xhbXBlciB7Ci0gICAgIGNvbnN0IGludDY0X3QgbWljcm9zID0gbm93X21p Y3JvcyAlIDEwMDA7Ci0gICAgIC8vIGFicygpIGlzIG5lY2Vzc2FyeSBmb3IgZGV2aWNlcyB3aXRo IHRpbWVzIGJlZm9yZSB1bml4LWVwb2NoIChtb3N0IGxpa2VseQotICAgICAvLyBjb25maWd1cmVk IGluY29ycmVjdGx5KS4KLS0gICAgaWYgKGFicyhtaWNyb3MpICsga1Jlc29sdXRpb25NaWNyb3Mg PCAxMDAwKSB7Ci0rICAgIGlmIChzdGQ6OmFicyhtaWNyb3MpICsga1Jlc29sdXRpb25NaWNyb3Mg PCAxMDAwKSB7Ci0gICAgICAgcmV0dXJuIG5vd19taWNyb3MgLyAxMDAwOwotICAgICB9Ci0gICAg IHJldHVybiBDbGFtcFRpbWVSZXNvbHV0aW9uKG5vd19taWNyb3MpIC8gMTAwMDsKLWRpZmYgLXVw IGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2dwdS9jb25maWcvZ3B1X2ZlYXR1cmVfaW5mby5oLm1p c3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2dwdS9jb25maWcvZ3B1 X2ZlYXR1cmVfaW5mby5oCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvZ3B1L2NvbmZpZy9n cHVfZmVhdHVyZV9pbmZvLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMDoy OC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9ncHUvY29uZmln L2dwdV9mZWF0dXJlX2luZm8uaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgwOTg2OTAwNCArMDEwMAot QEAgLTcsNiArNyw3IEBACi0gCi0gI2luY2x1ZGUgPHN0ZGludC5oPgotIAotKyNpbmNsdWRlIDxj c3RkaW50PgotICNpbmNsdWRlIDxzdHJpbmc+Ci0gI2luY2x1ZGUgPHZlY3Rvcj4KLSAKLWRpZmYg LXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L25ldC9iYXNlL25ldF9leHBvcnQuaC5taXNzaW5n LWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9uZXQvYmFzZS9uZXRfZXhwb3J0 LmgKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9uZXQvYmFzZS9uZXRfZXhwb3J0LmgubWlz c2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMDozMi4wMDAwMDAwMDAgKzAxMDAKLSsr KyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9uZXQvYmFzZS9uZXRfZXhwb3J0LmgJMjAyMy0xMS0w NiAxNDozNDowMS44MDk4NjkwMDQgKzAxMDAKLUBAIC01LDYgKzUsOCBAQAotICNpZm5kZWYgTkVU X0JBU0VfTkVUX0VYUE9SVF9IXwotICNkZWZpbmUgTkVUX0JBU0VfTkVUX0VYUE9SVF9IXwotIAot KyNpbmNsdWRlIDxjc3RkaW50PgotKwotIC8vIERlZmluZXMgTkVUX0VYUE9SVCBzbyB0aGF0IGZ1 bmN0aW9uYWxpdHkgaW1wbGVtZW50ZWQgYnkgdGhlIG5ldCBtb2R1bGUgY2FuCi0gLy8gYmUgZXhw b3J0ZWQgdG8gY29uc3VtZXJzLCBhbmQgTkVUX0VYUE9SVF9QUklWQVRFIHRoYXQgYWxsb3dzIHVu aXQgdGVzdHMgdG8KLSAvLyBhY2Nlc3MgZmVhdHVyZXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQg ZGlyZWN0bHkgYnkgcmVhbCBjb25zdW1lcnMuCi1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1 LjEwNS9wZGYvZG9jdW1lbnRfYXR0YWNobWVudF9pbmZvLmgubWlzc2luZy1oZWFkZXItZmlsZXMg Y2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvcGRmL2RvY3VtZW50X2F0dGFjaG1lbnRfaW5mby5oCi0t LS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvcGRmL2RvY3VtZW50X2F0dGFjaG1lbnRfaW5mby5o Lm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6MzQuMDAwMDAwMDAwICswMTAw Ci0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvcGRmL2RvY3VtZW50X2F0dGFjaG1lbnRfaW5m by5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODE1ODY5MTMyICswMTAwCi1AQCAtNyw2ICs3LDcgQEAK LSAKLSAjaW5jbHVkZSA8c3RkaW50Lmg+Ci0gCi0rI2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1 ZGUgPHN0cmluZz4KLSAKLSAKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3NhbmRi b3gvbGludXgvc3lzY2FsbF9icm9rZXIvYnJva2VyX2ZpbGVfcGVybWlzc2lvbi5oLm1pc3Npbmct aGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3NhbmRib3gvbGludXgvc3lzY2Fs bF9icm9rZXIvYnJva2VyX2ZpbGVfcGVybWlzc2lvbi5oCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0 NS4xMDUvc2FuZGJveC9saW51eC9zeXNjYWxsX2Jyb2tlci9icm9rZXJfZmlsZV9wZXJtaXNzaW9u LmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMDozNC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9zYW5kYm94L2xpbnV4L3N5c2NhbGxfYnJv a2VyL2Jyb2tlcl9maWxlX3Blcm1pc3Npb24uaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgwOTg2OTAw NCArMDEwMAotQEAgLTUsNiArNSw3IEBACi0gI2lmbmRlZiBTQU5EQk9YX0xJTlVYX1NZU0NBTExf QlJPS0VSX0JST0tFUl9GSUxFX1BFUk1JU1NJT05fSF8KLSAjZGVmaW5lIFNBTkRCT1hfTElOVVhf U1lTQ0FMTF9CUk9LRVJfQlJPS0VSX0ZJTEVfUEVSTUlTU0lPTl9IXwotIAotKyNpbmNsdWRlIDxj c3RkaW50PgotICNpbmNsdWRlIDxiaXRzZXQ+Ci0gI2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1 ZGUgPHN0cmluZz4KLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3NlcnZpY2VzL2Rl dmljZS9wdWJsaWMvY3BwL2dlbmVyaWNfc2Vuc29yL3NlbnNvcl9yZWFkaW5nLmgubWlzc2luZy1o ZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvc2VydmljZXMvZGV2aWNlL3B1Ymxp Yy9jcHAvZ2VuZXJpY19zZW5zb3Ivc2Vuc29yX3JlYWRpbmcuaAotLS0tIGNocm9taXVtLTExOS4w LjYwNDUuMTA1L3NlcnZpY2VzL2RldmljZS9wdWJsaWMvY3BwL2dlbmVyaWNfc2Vuc29yL3NlbnNv cl9yZWFkaW5nLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMDozNS4wMDAw MDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9zZXJ2aWNlcy9kZXZpY2Uv cHVibGljL2NwcC9nZW5lcmljX3NlbnNvci9zZW5zb3JfcmVhZGluZy5oCTIwMjMtMTEtMDYgMTQ6 MzQ6MDEuODIwODY5MjM4ICswMTAwCi1AQCAtOCw2ICs4LDkgQEAKLSAjaW5jbHVkZSA8c3RkZGVm Lmg+Ci0gI2luY2x1ZGUgPHN0ZGludC5oPgotIAotKyNpbmNsdWRlIDxjc3RkZGVmPgotKyNpbmNs dWRlIDxjc3RkaW50PgotKwotICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KLSAKLSBuYW1lc3BhY2Ug ZGV2aWNlIHsKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3NraWEvZXh0L3NrY29s b3JzcGFjZV90cmZuLmNjLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUu MTA1L3NraWEvZXh0L3NrY29sb3JzcGFjZV90cmZuLmNjCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0 NS4xMDUvc2tpYS9leHQvc2tjb2xvcnNwYWNlX3RyZm4uY2MubWlzc2luZy1oZWFkZXItZmlsZXMJ MjAyMy0xMS0wMSAxOToxMDozNS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42 MDQ1LjEwNS9za2lhL2V4dC9za2NvbG9yc3BhY2VfdHJmbi5jYwkyMDIzLTExLTA2IDE0OjM0OjAx LjgxODg2OTE5NiArMDEwMAotQEAgLTMsNiArMyw3IEBACi0gLy8gZm91bmQgaW4gdGhlIExJQ0VO U0UgZmlsZS4KLSAKLSAjaW5jbHVkZSAic2tpYS9leHQvc2tjb2xvcnNwYWNlX3RyZm4uaCIKLSsj aW5jbHVkZSA8Y21hdGg+Ci0gCi0gI2luY2x1ZGUgPGNtYXRoPgotIAotZGlmZiAtdXAgY2hyb21p dW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL3N0cmluZ3Mvc3Ry aW5nX3ZpZXcuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90 aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvc3RyaW5ncy9zdHJpbmdfdmlldy5oCi0tLS0gY2hy b21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL3N0cmluZ3Mv c3RyaW5nX3ZpZXcuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEwOjM2LjAw MDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L2Fi c2VpbC1jcHAvYWJzbC9zdHJpbmdzL3N0cmluZ192aWV3LmgJMjAyMy0xMS0wNiAxNDozNDowMS44 MDk4NjkwMDQgKzAxMDAKLUBAIC0yNyw2ICsyNyw3IEBACi0gI2lmbmRlZiBBQlNMX1NUUklOR1Nf U1RSSU5HX1ZJRVdfSF8KLSAjZGVmaW5lIEFCU0xfU1RSSU5HU19TVFJJTkdfVklFV19IXwotIAot KyNpbmNsdWRlIDxjc3RkaW50PgotICNpbmNsdWRlIDxhbGdvcml0aG0+Ci0gI2luY2x1ZGUgPGNh c3NlcnQ+Ci0gI2luY2x1ZGUgPGNzdGRkZWY+Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1 LjEwNS90aGlyZF9wYXJ0eS9hbmdsZS9pbmNsdWRlL0dMU0xBTkcvU2hhZGVyVmFycy5oLm1pc3Np bmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L2FuZ2xl L2luY2x1ZGUvR0xTTEFORy9TaGFkZXJWYXJzLmgKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS90aGlyZF9wYXJ0eS9hbmdsZS9pbmNsdWRlL0dMU0xBTkcvU2hhZGVyVmFycy5oLm1pc3Npbmct aGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTE6NTkuMDAwMDAwMDAwICswMTAwCi0rKysgY2hy b21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvYW5nbGUvaW5jbHVkZS9HTFNMQU5HL1No YWRlclZhcnMuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxMDg2OTAyNSArMDEwMAotQEAgLTEwLDYg KzEwLDcgQEAKLSAjaWZuZGVmIEdMU0xBTkdfU0hBREVSVkFSU19IXwotICNkZWZpbmUgR0xTTEFO R19TSEFERVJWQVJTX0hfCi0gCi0rI2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgPGFsZ29y aXRobT4KLSAjaW5jbHVkZSA8YXJyYXk+Ci0gI2luY2x1ZGUgPGNzdGRpbnQ+Ci1kaWZmIC11cCBj aHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9ibGluay9wdWJsaWMvY29tbW9uL2Js dWV0b290aC93ZWJfYmx1ZXRvb3RoX2RldmljZV9pZC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNo cm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L2JsaW5rL3B1YmxpYy9jb21tb24vYmx1 ZXRvb3RoL3dlYl9ibHVldG9vdGhfZGV2aWNlX2lkLmgKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1 LjEwNS90aGlyZF9wYXJ0eS9ibGluay9wdWJsaWMvY29tbW9uL2JsdWV0b290aC93ZWJfYmx1ZXRv b3RoX2RldmljZV9pZC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6Mzcu MDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkv YmxpbmsvcHVibGljL2NvbW1vbi9ibHVldG9vdGgvd2ViX2JsdWV0b290aF9kZXZpY2VfaWQuaAky MDIzLTExLTA2IDE0OjM0OjAxLjgxMDg2OTAyNSArMDEwMAotQEAgLTcsNiArNyw3IEBACi0gCi0g I2luY2x1ZGUgPHN0ZGludC5oPgotIAotKyNpbmNsdWRlIDxjc3RkaW50PgotICNpbmNsdWRlIDxh cnJheT4KLSAjaW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KLWRpZmYg LXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L2Rhd24vc3JjL3RpbnQvbGFu Zy9zcGlydi9yZWFkZXIvYXN0X3BhcnNlci9uYW1lci5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNo cm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L2Rhd24vc3JjL3RpbnQvbGFuZy9zcGly di9yZWFkZXIvYXN0X3BhcnNlci9uYW1lci5oCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUv dGhpcmRfcGFydHkvZGF3bi9zcmMvdGludC9sYW5nL3NwaXJ2L3JlYWRlci9hc3RfcGFyc2VyL25h bWVyLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMzo1MC4wMDAwMDAwMDAg KzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9kYXduL3NyYy90 aW50L2xhbmcvc3BpcnYvcmVhZGVyL2FzdF9wYXJzZXIvbmFtZXIuaAkyMDIzLTExLTA2IDE0OjM0 OjAxLjgxMDg2OTAyNSArMDEwMAotQEAgLTE1LDYgKzE1LDcgQEAKLSAjaWZuZGVmIFNSQ19USU5U X0xBTkdfU1BJUlZfUkVBREVSX0FTVF9QQVJTRVJfTkFNRVJfSF8KLSAjZGVmaW5lIFNSQ19USU5U X0xBTkdfU1BJUlZfUkVBREVSX0FTVF9QQVJTRVJfTkFNRVJfSF8KLSAKLSsjaW5jbHVkZSA8Y3N0 ZGludD4KLSAjaW5jbHVkZSA8c3RyaW5nPgotICNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgotICNp bmNsdWRlIDx2ZWN0b3I+Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9w YXJ0eS9pcGN6L3NyYy9pcGN6L3JvdXRlcl9saW5rLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hy b21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvaXBjei9zcmMvaXBjei9yb3V0ZXJfbGlu ay5oCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvaXBjei9zcmMvaXBj ei9yb3V0ZXJfbGluay5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTE6MjAu MDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkv aXBjei9zcmMvaXBjei9yb3V0ZXJfbGluay5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODE5ODY5MjE3 ICswMTAwCi1AQCAtNSw2ICs1LDcgQEAKLSAjaWZuZGVmIElQQ1pfU1JDX0lQQ1pfUk9VVEVSX0xJ TktfSF8KLSAjZGVmaW5lIElQQ1pfU1JDX0lQQ1pfUk9VVEVSX0xJTktfSF8KLSAKLSsjaW5jbHVk ZSA8bWVtb3J5PgotICNpbmNsdWRlIDxjc3RkZGVmPgotICNpbmNsdWRlIDxmdW5jdGlvbmFsPgot ICNpbmNsdWRlIDxtZW1vcnk+Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGly ZF9wYXJ0eS9tYXRlcmlhbF9jb2xvcl91dGlsaXRpZXMvc3JjL2NwcC9wYWxldHRlcy90b25lcy5j Yy5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0 eS9tYXRlcmlhbF9jb2xvcl91dGlsaXRpZXMvc3JjL2NwcC9wYWxldHRlcy90b25lcy5jYwotLS0t IGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L21hdGVyaWFsX2NvbG9yX3V0aWxp dGllcy9zcmMvY3BwL3BhbGV0dGVzL3RvbmVzLmNjLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMt MTEtMDEgMTk6MTE6NTMuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4x MDUvdGhpcmRfcGFydHkvbWF0ZXJpYWxfY29sb3JfdXRpbGl0aWVzL3NyYy9jcHAvcGFsZXR0ZXMv dG9uZXMuY2MJMjAyMy0xMS0wNiAxNDozNDowMS44MTk4NjkyMTcgKzAxMDAKLUBAIC0xNCw2ICsx NCw3IEBACi0gICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gICovCi0gCi0rI2lu Y2x1ZGUgPGNtYXRoPgotICNpbmNsdWRlICJjcHAvcGFsZXR0ZXMvdG9uZXMuaCIKLSAKLSAjaW5j bHVkZSAiY3BwL2NhbS9jYW0uaCIKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3Ro aXJkX3BhcnR5L29wZW5zY3JlZW4vc3JjL2Rpc2NvdmVyeS9kbnNzZC9wdWJsaWMvZG5zX3NkX3R4 dF9yZWNvcmQuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90 aGlyZF9wYXJ0eS9vcGVuc2NyZWVuL3NyYy9kaXNjb3ZlcnkvZG5zc2QvcHVibGljL2Ruc19zZF90 eHRfcmVjb3JkLmgKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9vcGVu c2NyZWVuL3NyYy9kaXNjb3ZlcnkvZG5zc2QvcHVibGljL2Ruc19zZF90eHRfcmVjb3JkLmgubWlz c2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMTo1OS4wMDAwMDAwMDAgKzAxMDAKLSsr KyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9vcGVuc2NyZWVuL3NyYy9kaXNj b3ZlcnkvZG5zc2QvcHVibGljL2Ruc19zZF90eHRfcmVjb3JkLmgJMjAyMy0xMS0wNiAxNDozNDow MS44MTA4NjkwMjUgKzAxMDAKLUBAIC03LDYgKzcsNyBAQAotIAotICNpbmNsdWRlIDxzdGRpbnQu aD4KLSAKLSsjaW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KLSAjaW5j bHVkZSA8bWFwPgotICNpbmNsdWRlIDxzZXQ+Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1 LjEwNS90aGlyZF9wYXJ0eS9wZGZpdW0vY29uc3RhbnRzL2Fubm90YXRpb25fZmxhZ3MuaC5taXNz aW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9wZGZp dW0vY29uc3RhbnRzL2Fubm90YXRpb25fZmxhZ3MuaAotLS0tIGNocm9taXVtLTExOS4wLjYwNDUu MTA1L3RoaXJkX3BhcnR5L3BkZml1bS9jb25zdGFudHMvYW5ub3RhdGlvbl9mbGFncy5oLm1pc3Np bmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTQ6NDguMDAwMDAwMDAwICswMTAwCi0rKysg Y2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvcGRmaXVtL2NvbnN0YW50cy9hbm5v dGF0aW9uX2ZsYWdzLmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTU4NjkxMzIgKzAxMDAKLUBAIC03 LDYgKzcsOCBAQAotIAotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAKLSsjaW5jbHVkZSA8Y3N0ZGlu dD4KLSsKLSBuYW1lc3BhY2UgcGRmaXVtIHsKLSBuYW1lc3BhY2UgYW5ub3RhdGlvbl9mbGFncyB7 Ci0gCi1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9ydXkvc3Jj L3J1eS9wcm9maWxlci9pbnN0cnVtZW50YXRpb24uaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJv bWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9ydXkvc3JjL3J1eS9wcm9maWxlci9pbnN0 cnVtZW50YXRpb24uaAotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3J1 eS9zcmMvcnV5L3Byb2ZpbGVyL2luc3RydW1lbnRhdGlvbi5oLm1pc3NpbmctaGVhZGVyLWZpbGVz CTIwMjMtMTEtMDEgMTk6MTI6MDIuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAu NjA0NS4xMDUvdGhpcmRfcGFydHkvcnV5L3NyYy9ydXkvcHJvZmlsZXIvaW5zdHJ1bWVudGF0aW9u LmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTM4NjkwODkgKzAxMDAKLUBAIC0xNyw2ICsxNyw3IEBA IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICNkZWZpbmUgUlVZX1JVWV9QUk9GSUxF Ul9JTlNUUlVNRU5UQVRJT05fSF8KLSAKLSAjaWZkZWYgUlVZX1BST0ZJTEVSCi0rI2luY2x1ZGUg PHN0cmluZz4KLSAjaW5jbHVkZSA8Y3N0ZGlvPgotICNpbmNsdWRlIDxtdXRleD4KLSAjaW5jbHVk ZSA8dmVjdG9yPgotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkv c3dpZnRzaGFkZXIvc3JjL1N5c3RlbS9MUlVDYWNoZS5ocHAubWlzc2luZy1oZWFkZXItZmlsZXMg Y2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvc3JjL1N5c3Rl bS9MUlVDYWNoZS5ocHAKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9z d2lmdHNoYWRlci9zcmMvU3lzdGVtL0xSVUNhY2hlLmhwcC5taXNzaW5nLWhlYWRlci1maWxlcwky MDIzLTExLTAxIDE5OjEyOjE1LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYw NDUuMTA1L3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3NyYy9TeXN0ZW0vTFJVQ2FjaGUuaHBwCTIw MjMtMTEtMDYgMTQ6MzQ6MDEuODEwODY5MDI1ICswMTAwCi1AQCAtMTcsNiArMTcsNyBAQAotIAot ICNpbmNsdWRlICJTeXN0ZW0vRGVidWcuaHBwIgotIAotKyNpbmNsdWRlIDxjc3RkaW50PgotICNp bmNsdWRlIDxjc3RkZGVmPgotICNpbmNsdWRlIDxjc3RkaW50PgotICNpbmNsdWRlIDxmdW5jdGlv bmFsPgotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvc3dpZnRz aGFkZXIvdGhpcmRfcGFydHkvbGx2bS0xMC4wL2xsdm0vbGliL1N1cHBvcnQvVW5peC9TaWduYWxz LmluYy5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9w YXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLTEwLjAvbGx2bS9saWIvU3VwcG9ydC9V bml4L1NpZ25hbHMuaW5jCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkv c3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS0xMC4wL2xsdm0vbGliL1N1cHBvcnQvVW5peC9T aWduYWxzLmluYy5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEyOjQyLjAwMDAw MDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3N3aWZ0 c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tMTAuMC9sbHZtL2xpYi9TdXBwb3J0L1VuaXgvU2lnbmFs cy5pbmMJMjAyMy0xMS0wNiAxNDozNDowMS44MTQ4NjkxMTAgKzAxMDAKLUBAIC00NSw2ICs0NSw3 IEBACi0gI2luY2x1ZGUgImxsdm0vU3VwcG9ydC9TYXZlQW5kUmVzdG9yZS5oIgotICNpbmNsdWRl ICJsbHZtL1N1cHBvcnQvcmF3X29zdHJlYW0uaCIKLSAjaW5jbHVkZSA8YWxnb3JpdGhtPgotKyNp bmNsdWRlIDxjc3RkaW50PgotICNpbmNsdWRlIDxzdHJpbmc+Ci0gI2luY2x1ZGUgPHN5c2V4aXRz Lmg+Ci0gI2lmZGVmIEhBVkVfQkFDS1RSQUNFCi1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1 LjEwNS90aGlyZF9wYXJ0eS90ZmxpdGUvc3JjL3RlbnNvcmZsb3cvbGl0ZS9rZXJuZWxzL2ludGVy bmFsL3NwZWN0cm9ncmFtLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0 NS4xMDUvdGhpcmRfcGFydHkvdGZsaXRlL3NyYy90ZW5zb3JmbG93L2xpdGUva2VybmVscy9pbnRl cm5hbC9zcGVjdHJvZ3JhbS5oCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFy dHkvdGZsaXRlL3NyYy90ZW5zb3JmbG93L2xpdGUva2VybmVscy9pbnRlcm5hbC9zcGVjdHJvZ3Jh bS5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTM6MjAuMDAwMDAwMDAwICsw MTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvdGZsaXRlL3NyYy90 ZW5zb3JmbG93L2xpdGUva2VybmVscy9pbnRlcm5hbC9zcGVjdHJvZ3JhbS5oCTIwMjMtMTEtMDYg MTQ6MzQ6MDEuODEzODY5MDg5ICswMTAwCi1AQCAtMzEsNiArMzEsNyBAQCBsaW1pdGF0aW9ucyB1 bmRlciB0aGUgTGljZW5zZS4KLSAjaWZuZGVmIFRFTlNPUkZMT1dfTElURV9LRVJORUxTX0lOVEVS TkFMX1NQRUNUUk9HUkFNX0hfCi0gI2RlZmluZSBURU5TT1JGTE9XX0xJVEVfS0VSTkVMU19JTlRF Uk5BTF9TUEVDVFJPR1JBTV9IXwotIAotKyNpbmNsdWRlIDxjc3RkaW50PgotICNpbmNsdWRlIDxj b21wbGV4PgotICNpbmNsdWRlIDxkZXF1ZT4KLSAjaW5jbHVkZSA8dmVjdG9yPgotZGlmZiAtdXAg Y2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvdnVsa2FuLWRlcHMvdnVsa2FuLXZh bGlkYXRpb24tbGF5ZXJzL3NyYy9sYXllcnMvZXh0ZXJuYWwvdm1hL3ZrX21lbV9hbGxvYy5oLm1p c3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3Z1 bGthbi1kZXBzL3Z1bGthbi12YWxpZGF0aW9uLWxheWVycy9zcmMvbGF5ZXJzL2V4dGVybmFsL3Zt YS92a19tZW1fYWxsb2MuaAotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5 L3Z1bGthbi1kZXBzL3Z1bGthbi12YWxpZGF0aW9uLWxheWVycy9zcmMvbGF5ZXJzL2V4dGVybmFs L3ZtYS92a19tZW1fYWxsb2MuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEy OjQ1LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3Bh cnR5L3Z1bGthbi1kZXBzL3Z1bGthbi12YWxpZGF0aW9uLWxheWVycy9zcmMvbGF5ZXJzL2V4dGVy bmFsL3ZtYS92a19tZW1fYWxsb2MuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxNzg2OTE3NCArMDEw MAotQEAgLTI4ODQsNiArMjg4NCw3IEBAIHN0YXRpYyB2b2lkIHZtYV9hbGlnbmVkX2ZyZWUodm9p ZCogVk1BX04KLSAKLSAvLyBEZWZpbmUgdGhpcyBtYWNybyB0byAxIHRvIGVuYWJsZSBmdW5jdGlv bnM6IHZtYUJ1aWxkU3RhdHNTdHJpbmcsIHZtYUZyZWVTdGF0c1N0cmluZy4KLSAjaWYgVk1BX1NU QVRTX1NUUklOR19FTkFCTEVECi0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0gICAgIHN0YXRpYyBpbmxp bmUgdm9pZCBWbWFVaW50MzJUb1N0cihjaGFyKiBWTUFfTk9UX05VTEwgb3V0U3RyLCBzaXplX3Qg c3RyTGVuLCB1aW50MzJfdCBudW0pCi0gICAgIHsKLSAgICAgICAgIHNucHJpbnRmKG91dFN0ciwg c3RyTGVuLCAiJXUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KG51bSkpOwotZGlmZiAtdXAg Y2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvdnVsa2FuX21lbW9yeV9hbGxvY2F0 b3IvaW5jbHVkZS92a19tZW1fYWxsb2MuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0x MTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS92dWxrYW5fbWVtb3J5X2FsbG9jYXRvci9pbmNsdWRl L3ZrX21lbV9hbGxvYy5oCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkv dnVsa2FuX21lbW9yeV9hbGxvY2F0b3IvaW5jbHVkZS92a19tZW1fYWxsb2MuaC5taXNzaW5nLWhl YWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEyOjEzLjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9t aXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3Z1bGthbl9tZW1vcnlfYWxsb2NhdG9yL2lu Y2x1ZGUvdmtfbWVtX2FsbG9jLmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTI4NjkwNjggKzAxMDAK LUBAIC0yMzg4LDYgKzIzODgsNyBAQCBWTUFfQ0FMTF9QUkUgdm9pZCBWTUFfQ0FMTF9QT1NUIHZt YUZyZWVWCi0gI2lmZGVmIFZNQV9JTVBMRU1FTlRBVElPTg0KLSAjdW5kZWYgVk1BX0lNUExFTUVO VEFUSU9ODQotIA0KLSsjaW5jbHVkZSA8Y3N0ZGlvPg0KLSAjaW5jbHVkZSA8Y3N0ZGludD4NCi0g I2luY2x1ZGUgPGNzdGRsaWI+DQotICNpbmNsdWRlIDxjc3RyaW5nPg0KLWRpZmYgLXVwIGNocm9t aXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3dlYnJ0Yy9hdWRpby91dGlsaXR5L2NoYW5u ZWxfbWl4ZXIuY2MubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUv dGhpcmRfcGFydHkvd2VicnRjL2F1ZGlvL3V0aWxpdHkvY2hhbm5lbF9taXhlci5jYwotLS0tIGNo cm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3dlYnJ0Yy9hdWRpby91dGlsaXR5L2No YW5uZWxfbWl4ZXIuY2MubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxNDowNS4w MDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS93 ZWJydGMvYXVkaW8vdXRpbGl0eS9jaGFubmVsX21peGVyLmNjCTIwMjMtMTEtMDYgMTQ6MzQ6MDEu ODE5ODY5MjE3ICswMTAwCi1AQCAtOCw2ICs4LDggQEAKLSAgKiAgYmUgZm91bmQgaW4gdGhlIEFV VEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCi0gICovCi0gCi0rI2lu Y2x1ZGUgPGNzdHJpbmc+Ci0rCi0gI2luY2x1ZGUgImF1ZGlvL3V0aWxpdHkvY2hhbm5lbF9taXhl ci5oIgotIAotICNpbmNsdWRlICJhdWRpby91dGlsaXR5L2NoYW5uZWxfbWl4aW5nX21hdHJpeC5o IgotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvd2VicnRjL2Nv bW1vbl92aWRlby9oMjY0L3Nwc19wYXJzZXIuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1 bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjQvc3Bz X3BhcnNlci5oCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvd2VicnRj L2NvbW1vbl92aWRlby9oMjY0L3Nwc19wYXJzZXIuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIz LTExLTAxIDE5OjE0OjA2LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUu MTA1L3RoaXJkX3BhcnR5L3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NC9zcHNfcGFyc2VyLmgJMjAy My0xMS0wNiAxNDozNDowMS44MTk4NjkyMTcgKzAxMDAKLUBAIC0xMSw2ICsxMSw3IEBACi0gI2lm bmRlZiBDT01NT05fVklERU9fSDI2NF9TUFNfUEFSU0VSX0hfCi0gI2RlZmluZSBDT01NT05fVklE RU9fSDI2NF9TUFNfUEFSU0VSX0hfCi0gCi0rI2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUg ImFic2wvdHlwZXMvb3B0aW9uYWwuaCIKLSAjaW5jbHVkZSAicnRjX2Jhc2UvYml0c3RyZWFtX3Jl YWRlci5oIgotIAotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkv d2VicnRjL21vZHVsZXMvaW5jbHVkZS9tb2R1bGVfY29tbW9uX3R5cGVzX3B1YmxpYy5oLm1pc3Np bmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3dlYnJ0 Yy9tb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90eXBlc19wdWJsaWMuaAotLS0tIGNocm9t aXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2luY2x1ZGUvbW9k dWxlX2NvbW1vbl90eXBlc19wdWJsaWMuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAx IDE5OjE0OjExLjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3Ro aXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90eXBlc19wdWJs aWMuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxOTg2OTIxNyArMDEwMAotQEAgLTExLDYgKzExLDcg QEAKLSAjaWZuZGVmIE1PRFVMRVNfSU5DTFVERV9NT0RVTEVfQ09NTU9OX1RZUEVTX1BVQkxJQ19I XwotICNkZWZpbmUgTU9EVUxFU19JTkNMVURFX01PRFVMRV9DT01NT05fVFlQRVNfUFVCTElDX0hf Ci0gCi0rI2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgPGxpbWl0cz4KLSAKLSAjaW5jbHVk ZSAiYWJzbC90eXBlcy9vcHRpb25hbC5oIgotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4x MDUvdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3V0aWxpdHkvaXZmX2Zp bGVfcmVhZGVyLmNjLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1 L3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy91dGlsaXR5L2l2Zl9maWxl X3JlYWRlci5jYwotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3dlYnJ0 Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy91dGlsaXR5L2l2Zl9maWxlX3JlYWRlci5jYy5taXNzaW5n LWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjE0OjEyLjAwMDAwMDAwMCArMDEwMAotKysrIGNo cm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2Nv ZGluZy91dGlsaXR5L2l2Zl9maWxlX3JlYWRlci5jYwkyMDIzLTExLTA2IDE0OjM0OjAxLjgxOTg2 OTIxNyArMDEwMAotQEAgLTEwLDYgKzEwLDcgQEAKLSAKLSAjaW5jbHVkZSAibW9kdWxlcy92aWRl b19jb2RpbmcvdXRpbGl0eS9pdmZfZmlsZV9yZWFkZXIuaCIKLSAKLSsjaW5jbHVkZSA8Y3N0cmlu Zz4KLSAjaW5jbHVkZSA8c3RyaW5nPgotICNpbmNsdWRlIDx2ZWN0b3I+Ci0gCi1kaWZmIC11cCBj aHJvbWl1bS0xMTkuMC42MDQ1LjEwNS91aS9iYXNlL3ByZWRpY3Rpb24va2FsbWFuX2ZpbHRlci5o Lm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3VpL2Jhc2UvcHJl ZGljdGlvbi9rYWxtYW5fZmlsdGVyLmgKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS91aS9i YXNlL3ByZWRpY3Rpb24va2FsbWFuX2ZpbHRlci5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMt MTEtMDEgMTk6MTE6MjguMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4x MDUvdWkvYmFzZS9wcmVkaWN0aW9uL2thbG1hbl9maWx0ZXIuaAkyMDIzLTExLTA2IDE0OjM0OjAx LjgxNDg2OTExMCArMDEwMAotQEAgLTcsNiArNyw4IEBACi0gCi0gI2luY2x1ZGUgPHN0ZGludC5o PgotIAotKyNpbmNsdWRlIDxjc3RkaW50PgotKwotICNpbmNsdWRlICJiYXNlL2NvbXBvbmVudF9l eHBvcnQuaCIKLSAjaW5jbHVkZSAidWkvZ2Z4L2dlb21ldHJ5L21hdHJpeDNfZi5oIgotIAotZGlm ZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdWkvZ2Z4L2dlb21ldHJ5L2xpbmVhcl9ncmFk aWVudC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3VpL2dm eC9nZW9tZXRyeS9saW5lYXJfZ3JhZGllbnQuaAotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1 L3VpL2dmeC9nZW9tZXRyeS9saW5lYXJfZ3JhZGllbnQuaC5taXNzaW5nLWhlYWRlci1maWxlcwky MDIzLTExLTAxIDE5OjExOjI4LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYw NDUuMTA1L3VpL2dmeC9nZW9tZXRyeS9saW5lYXJfZ3JhZGllbnQuaAkyMDIzLTExLTA2IDE0OjM0 OjAxLjgxMjg2OTA2OCArMDEwMAotQEAgLTcsNiArNyw3IEBACi0gCi0gI2luY2x1ZGUgPHN0ZGlu dC5oPgotIAotKyNpbmNsdWRlIDxjc3RkaW50PgotICNpbmNsdWRlIDxhcnJheT4KLSAjaW5jbHVk ZSA8Y3N0ZGRlZj4KLSAjaW5jbHVkZSA8Y3N0ZGludD4KLWRpZmYgLXVwIGNocm9taXVtLTExOS4w LjYwNDUuMTA1L3VpL2dmeC9saW51eC9kcm1fdXRpbF9saW51eC5oLm1pc3NpbmctaGVhZGVyLWZp bGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3VpL2dmeC9saW51eC9kcm1fdXRpbF9saW51eC5o Ci0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdWkvZ2Z4L2xpbnV4L2RybV91dGlsX2xpbnV4 LmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMToyOC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS91aS9nZngvbGludXgvZHJtX3V0aWxfbGlu dXguaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxOTg2OTIxNyArMDEwMAotQEAgLTksNiArOSw4IEBA Ci0gCi0gI2luY2x1ZGUgInVpL2dmeC9idWZmZXJfdHlwZXMuaCIKLSAKLSsjaW5jbHVkZSA8Y3N0 ZGludD4KLSsKLSBuYW1lc3BhY2UgdWkgewotIAotIGludCBHZXRGb3VyQ0NGb3JtYXRGcm9tQnVm ZmVyRm9ybWF0KGdmeDo6QnVmZmVyRm9ybWF0IGZvcm1hdCk7CgpkaWZmIC0tZ2l0IGEvY2hyb21p dW0tMTE5LW5vX21hdGNoaW5nX2NvbnN0cnVjdG9yLnBhdGNoIGIvY2hyb21pdW0tMTE5LW5vX21h dGNoaW5nX2NvbnN0cnVjdG9yLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh MTZjOTc5Li4wMDAwMDAwCi0tLSBhL2Nocm9taXVtLTExOS1ub19tYXRjaGluZ19jb25zdHJ1Y3Rv ci5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDcwMyArMCwwIEBACi1kaWZmIC11cCBjaHJvbWl1 bS0xMTkuMC42MDQ1LjU5L2Jhc2UvdHJhY2VfZXZlbnQvdHJhY2VfbG9nLmNjLm5vX21hdGNoaW5n X2NvbnN0cnVjdG9yIGNocm9taXVtLTExOS4wLjYwNDUuNTkvYmFzZS90cmFjZV9ldmVudC90cmFj ZV9sb2cuY2MKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Jhc2UvdHJhY2VfZXZlbnQvdHJh Y2VfbG9nLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTAtMjYgMTg6MTY6NTEuMDAw MDAwMDAwICswMjAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9iYXNlL3RyYWNlX2V2ZW50 L3RyYWNlX2xvZy5jYwkyMDIzLTEwLTMwIDE2OjUxOjAyLjI3MDE1MTQ4NyArMDEwMAotQEAgLTIx OTEsOCArMjE5MSw4IEBAIHZvaWQgVHJhY2VMb2c6OlNldFRyYWNlQnVmZmVyRm9yVGVzdGluZygK LSAjaWYgQlVJTERGTEFHKFVTRV9QRVJGRVRUT19DTElFTlRfTElCUkFSWSkKLSB2b2lkIFRyYWNl TG9nOjpPblNldHVwKGNvbnN0IHBlcmZldHRvOjpEYXRhU291cmNlQmFzZTo6U2V0dXBBcmdzJiBh cmdzKSB7Ci0gICBBdXRvTG9jayBsb2NrKHRyYWNrX2V2ZW50X2xvY2tfKTsKLS0gIHRyYWNrX2V2 ZW50X3Nlc3Npb25zXy5lbXBsYWNlX2JhY2soYXJncy5pbnRlcm5hbF9pbnN0YW5jZV9pbmRleCwg KmFyZ3MuY29uZmlnLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdz LmJhY2tlbmRfdHlwZSk7Ci0rICB0cmFja19ldmVudF9zZXNzaW9uc18uZW1wbGFjZV9iYWNrKCkg PSB7YXJncy5pbnRlcm5hbF9pbnN0YW5jZV9pbmRleCwgKmFyZ3MuY29uZmlnLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLmJhY2tlbmRfdHlwZX07Ci0gfQotIAot IHZvaWQgVHJhY2VMb2c6Ok9uU3RhcnQoY29uc3QgcGVyZmV0dG86OkRhdGFTb3VyY2VCYXNlOjpT dGFydEFyZ3MmKSB7Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93 c2VyL2NvbnRlbnRfc2V0dGluZ3Mvb25lX3RpbWVfcGVybWlzc2lvbl9wcm92aWRlci5jYy5ub19t YXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2Vy L2NvbnRlbnRfc2V0dGluZ3Mvb25lX3RpbWVfcGVybWlzc2lvbl9wcm92aWRlci5jYwotLS0tIGNo cm9taXVtLTExOS4wLjYwNDUuNTkvY2hyb21lL2Jyb3dzZXIvY29udGVudF9zZXR0aW5ncy9vbmVf dGltZV9wZXJtaXNzaW9uX3Byb3ZpZGVyLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMt MTAtMjYgMTg6MTY6NTcuMDAwMDAwMDAwICswMjAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS41 OS9jaHJvbWUvYnJvd3Nlci9jb250ZW50X3NldHRpbmdzL29uZV90aW1lX3Blcm1pc3Npb25fcHJv dmlkZXIuY2MJMjAyMy0xMC0zMCAxNjo1MTowMi4yNjkxNTE0NjIgKzAxMDAKLUBAIC0yMjYsOCAr MjI2LDggQEAgdm9pZCBPbmVUaW1lUGVybWlzc2lvblByb3ZpZGVyOjpPblN1c3BlbgotIAotICAg ICAgIHdoaWxlIChydWxlX2l0ZXJhdG9yICYmIHJ1bGVfaXRlcmF0b3ItPkhhc05leHQoKSkgewot ICAgICAgICAgYXV0byBydWxlID0gcnVsZV9pdGVyYXRvci0+TmV4dCgpOwotLSAgICAgICAgcGF0 dGVybnNfdG9fZGVsZXRlLmVtcGxhY2VfYmFjayhzZXR0aW5nX3R5cGUsIHJ1bGUtPnByaW1hcnlf cGF0dGVybiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZS0+ c2Vjb25kYXJ5X3BhdHRlcm4pOwotKyAgICAgICAgcGF0dGVybnNfdG9fZGVsZXRlLmVtcGxhY2Vf YmFjaygpID0ge3NldHRpbmdfdHlwZSwgcnVsZS0+cHJpbWFyeV9wYXR0ZXJuLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlLT5zZWNvbmRhcnlfcGF0dGVybn07 Ci0gICAgICAgICBwZXJtaXNzaW9uczo6UGVybWlzc2lvblVtYVV0aWw6OlJlY29yZE9uZVRpbWVQ ZXJtaXNzaW9uRXZlbnQoCi0gICAgICAgICAgICAgc2V0dGluZ190eXBlLAotICAgICAgICAgICAg IHBlcm1pc3Npb25zOjpPbmVUaW1lUGVybWlzc2lvbkV2ZW50OjpFWFBJUkVEX09OX1NVU1BFTkQp OwotQEAgLTMyOSw4ICszMjksOCBAQCB2b2lkIE9uZVRpbWVQZXJtaXNzaW9uUHJvdmlkZXI6OkRl bGV0ZUVuCi0gICAgIGF1dG8gcnVsZSA9IHJ1bGVfaXRlcmF0b3ItPk5leHQoKTsKLSAgICAgaWYg KHJ1bGUtPnByaW1hcnlfcGF0dGVybi5NYXRjaGVzKG9yaWdpbl9ndXJsKSAmJgotICAgICAgICAg cnVsZS0+c2Vjb25kYXJ5X3BhdHRlcm4uTWF0Y2hlcyhvcmlnaW5fZ3VybCkpIHsKLS0gICAgICBw YXR0ZXJuc190b19kZWxldGUuZW1wbGFjZV9iYWNrKAotLSAgICAgICAgICBjb250ZW50X3NldHRp bmdfdHlwZSwgcnVsZS0+cHJpbWFyeV9wYXR0ZXJuLCBydWxlLT5zZWNvbmRhcnlfcGF0dGVybik7 Ci0rICAgICAgcGF0dGVybnNfdG9fZGVsZXRlLmVtcGxhY2VfYmFjaygpID0gewotKyAgICAgICAg ICBjb250ZW50X3NldHRpbmdfdHlwZSwgcnVsZS0+cHJpbWFyeV9wYXR0ZXJuLCBydWxlLT5zZWNv bmRhcnlfcGF0dGVybn07Ci0gICAgICAgcGVybWlzc2lvbnM6OlBlcm1pc3Npb25VbWFVdGlsOjpS ZWNvcmRPbmVUaW1lUGVybWlzc2lvbkV2ZW50KAotICAgICAgICAgICBjb250ZW50X3NldHRpbmdf dHlwZSwgdHJpZ2dlcl9ldmVudCk7Ci0gICAgIH0KLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYw NDUuNTkvY2hyb21lL2Jyb3dzZXIvZW50ZXJwcmlzZS9wcm9maWxlX21hbmFnZW1lbnQvcHJvZmls ZV9tYW5hZ2VtZW50X25hdmlnYXRpb25fdGhyb3R0bGUuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0 b3IgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvYnJvd3Nlci9lbnRlcnByaXNlL3Byb2Zp bGVfbWFuYWdlbWVudC9wcm9maWxlX21hbmFnZW1lbnRfbmF2aWdhdGlvbl90aHJvdHRsZS5jYwot LS0tIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY2hyb21lL2Jyb3dzZXIvZW50ZXJwcmlzZS9wcm9m aWxlX21hbmFnZW1lbnQvcHJvZmlsZV9tYW5hZ2VtZW50X25hdmlnYXRpb25fdGhyb3R0bGUuY2Mu bm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMC0yNiAxODoxNjo1Ny4wMDAwMDAwMDAgKzAy MDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL2VudGVycHJpc2Uv cHJvZmlsZV9tYW5hZ2VtZW50L3Byb2ZpbGVfbWFuYWdlbWVudF9uYXZpZ2F0aW9uX3Rocm90dGxl LmNjCTIwMjMtMTAtMzAgMTY6NTE6MDIuMjY3MTUxNDEyICswMTAwCi1AQCAtNjcsOCArNjcsOCBA QCBiYXNlOjpmbGF0X21hcDxzdGQ6OnN0cmluZywgU0FNTFByb2ZpbGVBCi0gICAvLyBUT0RPKGNy YnVnLmNvbS8xNDQ1MDcyKTogQWRkIGFjdHVhbCBkb21haW5zIHdpdGggYXR0cmlidXRlIG5hbWVz LgotICAgcHJvZmlsZV9hdHRyaWJ1dGVzLT5pbnNlcnQoc3RkOjptYWtlX3BhaXIoCi0gICAgICAg InN1cHBvcnRlZC50ZXN0IiwKLS0gICAgICBTQU1MUHJvZmlsZUF0dHJpYnV0ZXMoInBsYWNlaG9s ZGVyTmFtZSIsICJwbGFjZWhvbGRlckRvbWFpbiIsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJwbGFjZWhvbGRlclRva2VuIikpKTsKLSsgICAgICBTQU1MUHJvZmlsZUF0dHJpYnV0ZXN7 InBsYWNlaG9sZGVyTmFtZSIsICJwbGFjZWhvbGRlckRvbWFpbiIsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJwbGFjZWhvbGRlclRva2VuIn0pKTsKLSAKLSAgIC8vIEV4dHJhY3QgZG9t YWlucyBhbmQgYXR0cmlidXRlcyBmcm9tIHRoZSBjb21tYW5kIGxpbmUgc3dpdGNoLgotICAgY29u c3QgYmFzZTo6Q29tbWFuZExpbmUmIGNvbW1hbmRfbGluZSA9Ci1kaWZmIC11cCBjaHJvbWl1bS0x MTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL3VpL29tbmlib3gvY2hyb21lX29tbmlib3hfY2xp ZW50LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY2hy b21lL2Jyb3dzZXIvdWkvb21uaWJveC9jaHJvbWVfb21uaWJveF9jbGllbnQuY2MKLS0tLSBjaHJv bWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL3VpL29tbmlib3gvY2hyb21lX29tbmli b3hfY2xpZW50LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTAtMjYgMTg6MTc6MDAu MDAwMDAwMDAwICswMjAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvYnJvd3Nl ci91aS9vbW5pYm94L2Nocm9tZV9vbW5pYm94X2NsaWVudC5jYwkyMDIzLTEwLTMwIDE2OjUxOjAy LjI2MjE1MTI4OCArMDEwMAotQEAgLTQ3NCwxMCArNDc0LDEwIEBAIHZvaWQgQ2hyb21lT21uaWJv eENsaWVudDo6T25BdXRvY29tcGxldGUKLSAgICAgICAgICAgICAgIGFsdGVybmF0aXZlX25hdl9t YXRjaCk7Ci0gCi0gICAvLyBTdG9yZSB0aGUgZGV0YWlscyBuZWNlc3NhcnkgdG8gb3BlbiB0aGUg b21uaWJveCBtYXRjaCB2aWEgYnJvd3NlciBjb21tYW5kcy4KLS0gIGxvY2F0aW9uX2Jhcl8tPnNl dF9uYXZpZ2F0aW9uX3BhcmFtcyhMb2NhdGlvbkJhcjo6TmF2aWdhdGlvblBhcmFtcygKLSsgIGxv Y2F0aW9uX2Jhcl8tPnNldF9uYXZpZ2F0aW9uX3BhcmFtcyhMb2NhdGlvbkJhcjo6TmF2aWdhdGlv blBhcmFtc3sKLSAgICAgICBkZXN0aW5hdGlvbl91cmwsIGRpc3Bvc2l0aW9uLCB0cmFuc2l0aW9u LCBtYXRjaF9zZWxlY3Rpb25fdGltZXN0YW1wLAotICAgICAgIGRlc3RpbmF0aW9uX3VybF9lbnRl cmVkX3dpdGhvdXRfc2NoZW1lLAotLSAgICAgIGRlc3RpbmF0aW9uX3VybF9lbnRlcmVkX3dpdGhf aHR0cF9zY2hlbWUpKTsKLSsgICAgICBkZXN0aW5hdGlvbl91cmxfZW50ZXJlZF93aXRoX2h0dHBf c2NoZW1lfSk7Ci0gCi0gICBpZiAoYnJvd3Nlcl8pIHsKLSAgICAgYXV0byBuYXZpZ2F0aW9uID0g Y2hyb21lOjpPcGVuQ3VycmVudFVSTChicm93c2VyXyk7Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTku MC42MDQ1LjU5L2Nocm9tZS90ZXN0L2Nocm9tZWRyaXZlci9jYXBhYmlsaXRpZXMuY2Mubm9fbWF0 Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvdGVzdC9jaHJv bWVkcml2ZXIvY2FwYWJpbGl0aWVzLmNjCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJv bWUvdGVzdC9jaHJvbWVkcml2ZXIvY2FwYWJpbGl0aWVzLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVj dG9yCTIwMjMtMTAtMjYgMTg6MTc6MDEuMDAwMDAwMDAwICswMjAwCi0rKysgY2hyb21pdW0tMTE5 LjAuNjA0NS41OS9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvY2FwYWJpbGl0aWVzLmNjCTIwMjMt MTAtMzAgMTY6NTE6MDIuMjY4MTUxNDM3ICswMTAwCi1AQCAtMzQ2LDcgKzM0Niw3IEBAIFN0YXR1 cyBQYXJzZU1vYmlsZUVtdWxhdGlvbihjb25zdCBiYXNlOjoKLSAgICAgICAgICAgICAgICAgICAg ICAgICAiJ3ZlcnNpb24nIGZpZWxkIG9mIHR5cGUgc3RyaW5nIik7Ci0gICAgICAgICB9Ci0gCi0t ICAgICAgICBicmFuZHMuZW1wbGFjZV9iYWNrKCpicmFuZCwgKnZlcnNpb24pOwotKyAgICAgICAg YnJhbmRzLmVtcGxhY2VfYmFjaygpID0geypicmFuZCwgKnZlcnNpb259OwotICAgICAgIH0KLSAK LSAgICAgICBjbGllbnRfaGludHMuYnJhbmRzID0gc3RkOjptb3ZlKGJyYW5kcyk7Ci1AQCAtMzg0 LDcgKzM4NCw3IEBAIFN0YXR1cyBQYXJzZU1vYmlsZUVtdWxhdGlvbihjb25zdCBiYXNlOjoKLSAg ICAgICAgICAgICAgICAgICAgICAgICAiYSAndmVyc2lvbicgZmllbGQgb2YgdHlwZSBzdHJpbmci KTsKLSAgICAgICAgIH0KLSAKLS0gICAgICAgIGZ1bGxfdmVyc2lvbl9saXN0LmVtcGxhY2VfYmFj aygqYnJhbmQsICp2ZXJzaW9uKTsKLSsgICAgICAgIGZ1bGxfdmVyc2lvbl9saXN0LmVtcGxhY2Vf YmFjaygpID0geypicmFuZCwgKnZlcnNpb259OwotICAgICAgIH0KLSAKLSAgICAgICBjbGllbnRf aGludHMuZnVsbF92ZXJzaW9uX2xpc3QgPSBzdGQ6Om1vdmUoZnVsbF92ZXJzaW9uX2xpc3QpOwot ZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUv YnJvd3Nlci9jb250YWN0X2luZm9fc3luY191dGlsLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9y IGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIv Y29udGFjdF9pbmZvX3N5bmNfdXRpbC5jYwotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29t cG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvY29udGFjdF9pbmZvX3N5bmNfdXRpbC5jYy5u b19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTEwLTMwIDE2OjUxOjAyLjI3MzE1MTU2MiArMDEw MAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jy b3dzZXIvY29udGFjdF9pbmZvX3N5bmNfdXRpbC5jYwkyMDIzLTEwLTMwIDE3OjQxOjEyLjY4NTg4 NzUzOCArMDEwMAotQEAgLTE5NSw5ICsxOTUsOSBAQCBjbGFzcyBDb250YWN0SW5mb1Byb2ZpbGVT ZXR0ZXIgewotICAgICAgIENIRUNLKG9ic2VydmF0aW9ucy5lbXB0eSgpKTsKLSAgICAgICBmb3Ig KGNvbnN0IHN5bmNfcGI6OkNvbnRhY3RJbmZvU3BlY2lmaWNzOjpPYnNlcnZhdGlvbiYgcHJvdG9f b2JzZXJ2YXRpb24gOgotICAgICAgICAgICAgbWV0YWRhdGEub2JzZXJ2YXRpb25zKCkpIHsKLS0g ICAgICAgIG9ic2VydmF0aW9ucy5lbXBsYWNlX2JhY2socHJvdG9fb2JzZXJ2YXRpb24udHlwZSgp LAotKyAgICAgICAgb2JzZXJ2YXRpb25zLmVtcGxhY2VfYmFjaygpID0ge3N0YXRpY19jYXN0PHVu c2lnbmVkIGNoYXI+KHByb3RvX29ic2VydmF0aW9uLnR5cGUoKSksCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFByb2ZpbGVUb2tlblF1YWxpdHk6OkZvcm1TaWduYXR1cmVIYXNo KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdG9fb2JzZXJ2YXRp b24uZm9ybV9oYXNoKCkpKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHByb3RvX29ic2VydmF0aW9uLmZvcm1faGFzaCgpKX07Ci0gICAgICAgfQotICAgICB9Ci0gICB9 Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbXBvbmVudHMvdml6L3NlcnZpY2Uv ZGlzcGxheV9lbWJlZGRlci9za2lhX291dHB1dF9zdXJmYWNlX2ltcGxfb25fZ3B1LmNjLm5vX21h dGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29tcG9uZW50cy92aXov c2VydmljZS9kaXNwbGF5X2VtYmVkZGVyL3NraWFfb3V0cHV0X3N1cmZhY2VfaW1wbF9vbl9ncHUu Y2MKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbXBvbmVudHMvdml6L3NlcnZpY2UvZGlz cGxheV9lbWJlZGRlci9za2lhX291dHB1dF9zdXJmYWNlX2ltcGxfb25fZ3B1LmNjLm5vX21hdGNo aW5nX2NvbnN0cnVjdG9yCTIwMjMtMTAtMjYgMTg6MTc6MTIuMDAwMDAwMDAwICswMjAwCi0rKysg Y2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb21wb25lbnRzL3Zpei9zZXJ2aWNlL2Rpc3BsYXlfZW1i ZWRkZXIvc2tpYV9vdXRwdXRfc3VyZmFjZV9pbXBsX29uX2dwdS5jYwkyMDIzLTEwLTMwIDE2OjUx OjAyLjI2MDE1MTIzOCArMDEwMAotQEAgLTE1MzAsNyArMTUzMCw3IEBAIHZvaWQgU2tpYU91dHB1 dFN1cmZhY2VJbXBsT25HcHU6OkNvcHlPdXQKLSAKLSAgICAgICAvLyBJc3N1ZSByZWFkYmFja3Mg ZnJvbSB0aGUgc3VyZmFjZXM6Ci0gICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBDb3B5T3V0 cHV0UmVzdWx0OjprTlYxMk1heFBsYW5lczsgKytpKSB7Ci0tICAgICAgICBTa0lTaXplIHNpemUo cGxhbmVfc3VyZmFjZXNbaV0tPndpZHRoKCksIHBsYW5lX3N1cmZhY2VzW2ldLT5oZWlnaHQoKSk7 Ci0rICAgICAgICBTa0lTaXplIHNpemV7cGxhbmVfc3VyZmFjZXNbaV0tPndpZHRoKCksIHBsYW5l X3N1cmZhY2VzW2ldLT5oZWlnaHQoKX07Ci0gICAgICAgICBTa0ltYWdlSW5mbyBkc3RfaW5mbyA9 IFNrSW1hZ2VJbmZvOjpNYWtlKAotICAgICAgICAgICAgIHNpemUsIChpID09IDApID8ga0FscGhh XzhfU2tDb2xvclR5cGUgOiBrUjhHOF91bm9ybV9Ta0NvbG9yVHlwZSwKLSAgICAgICAgICAgICBr VW5wcmVtdWxfU2tBbHBoYVR5cGUpOwotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9j b250ZW50L2Jyb3dzZXIvZG93bmxvYWQvc2F2ZV9wYWNrYWdlLmNjLm5vX21hdGNoaW5nX2NvbnN0 cnVjdG9yIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29udGVudC9icm93c2VyL2Rvd25sb2FkL3Nh dmVfcGFja2FnZS5jYwotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29udGVudC9icm93c2Vy L2Rvd25sb2FkL3NhdmVfcGFja2FnZS5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTEw LTI2IDE4OjE3OjEyLjAwMDAwMDAwMCArMDIwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuNTkv Y29udGVudC9icm93c2VyL2Rvd25sb2FkL3NhdmVfcGFja2FnZS5jYwkyMDIzLTEwLTMwIDE2OjUx OjAyLjI3MTE1MTUxMiArMDEwMAotQEAgLTc2OSw4ICs3NjksOCBAQCB2b2lkIFNhdmVQYWNrYWdl OjpGaW5pc2goKSB7Ci0gICBpZiAoZG93bmxvYWRfKSB7Ci0gICAgIHN0ZDo6dmVjdG9yPGRvd25s b2FkOjpEb3dubG9hZFNhdmVJdGVtRGF0YTo6SXRlbUluZm8+IGZpbGVzOwotICAgICBmb3IgKGF1 dG8mIGl0ZW0gOiBzYXZlZF9zdWNjZXNzX2l0ZW1zXykgewotLSAgICAgIGZpbGVzLmVtcGxhY2Vf YmFjayhpdGVtLnNlY29uZC0+ZnVsbF9wYXRoKCksIGl0ZW0uc2Vjb25kLT51cmwoKSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgaXRlbS5zZWNvbmQtPnJlZmVycmVyKCkudXJsKTsKLSsgICAg ICBmaWxlcy5lbXBsYWNlX2JhY2soKSA9IHtpdGVtLnNlY29uZC0+ZnVsbF9wYXRoKCksIGl0ZW0u c2Vjb25kLT51cmwoKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5zZWNvbmQtPnJl ZmVycmVyKCkudXJsfTsKLSAgICAgfQotICAgICBkb3dubG9hZDo6RG93bmxvYWRTYXZlSXRlbURh dGE6OkF0dGFjaEl0ZW1EYXRhKGRvd25sb2FkXywgc3RkOjptb3ZlKGZpbGVzKSk7Ci0gICB9Ci1k aWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbnRlbnQvYnJvd3Nlci9yZW5kZXJlcl9o b3N0L3JlbmRlcl9mcmFtZV9ob3N0X2ltcGwuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hy b21pdW0tMTE5LjAuNjA0NS41OS9jb250ZW50L2Jyb3dzZXIvcmVuZGVyZXJfaG9zdC9yZW5kZXJf ZnJhbWVfaG9zdF9pbXBsLmNjCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb250ZW50L2Jy b3dzZXIvcmVuZGVyZXJfaG9zdC9yZW5kZXJfZnJhbWVfaG9zdF9pbXBsLmNjLm5vX21hdGNoaW5n X2NvbnN0cnVjdG9yCTIwMjMtMTAtMjYgMTg6MTc6MTIuMDAwMDAwMDAwICswMjAwCi0rKysgY2hy b21pdW0tMTE5LjAuNjA0NS41OS9jb250ZW50L2Jyb3dzZXIvcmVuZGVyZXJfaG9zdC9yZW5kZXJf ZnJhbWVfaG9zdF9pbXBsLmNjCTIwMjMtMTAtMzAgMTc6Mzg6MDkuMzUxMzg5OTg0ICswMTAwCi1A QCAtODU2Nyw3ICs4NTY3LDcgQEAgdm9pZCBSZW5kZXJGcmFtZUhvc3RJbXBsOjpTZW5kRmVuY2Vk RnJhbQotICAgZm9yIChjb25zdCBibGluazo6RmVuY2VkRnJhbWU6OlJlcG9ydGluZ0Rlc3RpbmF0 aW9uJiBkZXN0aW5hdGlvbiA6Ci0gICAgICAgIGRlc3RpbmF0aW9ucykgewotICAgICBTZW5kRmVu Y2VkRnJhbWVSZXBvcnRpbmdCZWFjb25JbnRlcm5hbCgKLS0gICAgICAgIERlc3RpbmF0aW9uRW51 bUV2ZW50KGV2ZW50X3R5cGUsIGV2ZW50X2RhdGEpLCBkZXN0aW5hdGlvbiwKLSsgICAgICAgIERl c3RpbmF0aW9uRW51bUV2ZW50e2V2ZW50X3R5cGUsIGV2ZW50X2RhdGF9LCBkZXN0aW5hdGlvbiwK LSAgICAgICAgIC8qZnJvbV9yZW5kZXJlcj0qL3RydWUsIGF0dHJpYnV0aW9uX3JlcG9ydGluZ19y dW50aW1lX2ZlYXR1cmVzLAotICAgICAgICAgR2V0RnJhbWVUcmVlTm9kZUlkKCkpOwotICAgfQot QEAgLTg2MDMsNyArODYwMyw3IEBAIHZvaWQgUmVuZGVyRnJhbWVIb3N0SW1wbDo6U2VuZEZlbmNl ZEZyYW0KLSAgIH0KLSAKLSAgIFNlbmRGZW5jZWRGcmFtZVJlcG9ydGluZ0JlYWNvbkludGVybmFs KAotLSAgICAgIERlc3RpbmF0aW9uVVJMRXZlbnQoZGVzdGluYXRpb25fdXJsKSwKLSsgICAgICBE ZXN0aW5hdGlvblVSTEV2ZW50e2Rlc3RpbmF0aW9uX3VybH0sCi0gICAgICAgYmxpbms6OkZlbmNl ZEZyYW1lOjpSZXBvcnRpbmdEZXN0aW5hdGlvbjo6a0J1eWVyLAotICAgICAgIC8qZnJvbV9yZW5k ZXJlcj0qL3RydWUsIGF0dHJpYnV0aW9uX3JlcG9ydGluZ19ydW50aW1lX2ZlYXR1cmVzLAotICAg ICAgIEdldEZyYW1lVHJlZU5vZGVJZCgpKTsKLUBAIC04NzAzLDggKzg3MDMsOCBAQCB2b2lkIFJl bmRlckZyYW1lSG9zdEltcGw6Ok1heWJlU2VuZEZlbmNlCi0gICAgICAgICBkYXRhID0gaW5mby0+ ZGF0YTsKLSAgICAgICB9Ci0gICAgICAgaW5pdGlhdG9yX3JmaC0+U2VuZEZlbmNlZEZyYW1lUmVw b3J0aW5nQmVhY29uSW50ZXJuYWwoCi0tICAgICAgICAgIERlc3RpbmF0aW9uRW51bUV2ZW50KGJs aW5rOjprRmVuY2VkRnJhbWVUb3BOYXZpZ2F0aW9uQmVhY29uVHlwZSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGF0YSksCi0rICAgICAgICAgIERlc3RpbmF0aW9uRW51bUV2ZW50 e2JsaW5rOjprRmVuY2VkRnJhbWVUb3BOYXZpZ2F0aW9uQmVhY29uVHlwZSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGF0YX0sCi0gICAgICAgICAgIGRlc3RpbmF0aW9uLAotICAg ICAgICAgICAvKmZyb21fcmVuZGVyZXI9Ki9mYWxzZSwgYXR0cmlidXRpb25fcmVwb3J0aW5nX2Zl YXR1cmVzLAotICAgICAgICAgICBHZXRGcmFtZVRyZWVOb2RlSWQoKSwgbmF2aWdhdGlvbl9yZXF1 ZXN0LkdldE5hdmlnYXRpb25JZCgpKTsKLUBAIC04NzE3LDggKzg3MTcsOCBAQCB2b2lkIFJlbmRl ckZyYW1lSG9zdEltcGw6Ok1heWJlU2VuZEZlbmNlCi0gICAgIGZvciAoYmxpbms6OkZlbmNlZEZy YW1lOjpSZXBvcnRpbmdEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiA6Ci0gICAgICAgICAgaW5mby0+ ZGVzdGluYXRpb25zKSB7Ci0gICAgICAgaW5pdGlhdG9yX3JmaC0+U2VuZEZlbmNlZEZyYW1lUmVw b3J0aW5nQmVhY29uSW50ZXJuYWwoCi0tICAgICAgICAgIERlc3RpbmF0aW9uRW51bUV2ZW50KGJs aW5rOjprRmVuY2VkRnJhbWVUb3BOYXZpZ2F0aW9uQmVhY29uVHlwZSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW5mby0+ZGF0YSksCi0rICAgICAgICAgIERlc3RpbmF0aW9uRW51 bUV2ZW50e2JsaW5rOjprRmVuY2VkRnJhbWVUb3BOYXZpZ2F0aW9uQmVhY29uVHlwZSwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby0+ZGF0YX0sCi0gICAgICAgICAgIGRlc3Rp bmF0aW9uLAotICAgICAgICAgICAvKmZyb21fcmVuZGVyZXI9Ki9mYWxzZSwgaW5mby0+YXR0cmli dXRpb25fcmVwb3J0aW5nX3J1bnRpbWVfZmVhdHVyZXMsCi0gICAgICAgICAgIEdldEZyYW1lVHJl ZU5vZGVJZCgpLCBuYXZpZ2F0aW9uX3JlcXVlc3QuR2V0TmF2aWdhdGlvbklkKCkpOwotZGlmZiAt dXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0 Zm9ybS9mb250cy9mb250X3BhbGV0dGUuaC5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1 bS0xMTkuMC42MDQ1LjU5L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRz L2ZvbnRfcGFsZXR0ZS5oCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS90aGlyZF9wYXJ0eS9i bGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9mb250X3BhbGV0dGUuaC5ub19tYXRjaGluZ19j b25zdHJ1Y3RvcgkyMDIzLTEwLTI2IDE4OjE3OjI0LjAwMDAwMDAwMCArMDIwMAotKysrIGNocm9t aXVtLTExOS4wLjYwNDUuNTkvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9u dHMvZm9udF9wYWxldHRlLmgJMjAyMy0xMC0zMCAxNjo1MTowMi4yNjIxNTEyODggKzAxMDAKLUBA IC05Niw3ICs5Niw3IEBAIGNsYXNzIFBMQVRGT1JNX0VYUE9SVCBGb250UGFsZXR0ZSA6IHB1YmwK LSAgICAgICBDb2xvcjo6Q29sb3JTcGFjZSBjb2xvcl9pbnRlcnBvbGF0aW9uX3NwYWNlLAotICAg ICAgIGFic2w6Om9wdGlvbmFsPENvbG9yOjpIdWVJbnRlcnBvbGF0aW9uTWV0aG9kPiBodWVfaW50 ZXJwb2xhdGlvbl9tZXRob2QpIHsKLSAgICAgcmV0dXJuIGJhc2U6OkFkb3B0UmVmKG5ldyBGb250 UGFsZXR0ZSgKLS0gICAgICAgIHN0YXJ0LCBlbmQsIE5vbk5vcm1hbGl6ZWRQZXJjZW50YWdlcyhz dGFydF9wZXJjZW50YWdlLCBlbmRfcGVyY2VudGFnZSksCi0rICAgICAgICBzdGFydCwgZW5kLCBO b25Ob3JtYWxpemVkUGVyY2VudGFnZXN7c3RhcnRfcGVyY2VudGFnZSwgZW5kX3BlcmNlbnRhZ2V9 LAotICAgICAgICAgbm9ybWFsaXplZF9wZXJjZW50YWdlLCBhbHBoYV9tdWx0aXBsaWVyLCBjb2xv cl9pbnRlcnBvbGF0aW9uX3NwYWNlLAotICAgICAgICAgaHVlX2ludGVycG9sYXRpb25fbWV0aG9k KSk7Ci0gICB9Ci1AQCAtMTcwLDcgKzE3MCw3IEBAIGNsYXNzIFBMQVRGT1JNX0VYUE9SVCBGb250 UGFsZXR0ZSA6IHB1YmwKLSAgICAgICBkb3VibGUgbm9ybWFsaXplZF9wZXJjZW50YWdlKSB7Ci0g ICAgIGRvdWJsZSBlbmRfcGVyY2VudGFnZSA9IG5vcm1hbGl6ZWRfcGVyY2VudGFnZSAqIDEwMC4w OwotICAgICBkb3VibGUgc3RhcnRfcGVyY2VudGFnZSA9IDEwMC4wIC0gZW5kX3BlcmNlbnRhZ2U7 Ci0tICAgIHJldHVybiBOb25Ob3JtYWxpemVkUGVyY2VudGFnZXMoc3RhcnRfcGVyY2VudGFnZSwg ZW5kX3BlcmNlbnRhZ2UpOwotKyAgICByZXR1cm4gTm9uTm9ybWFsaXplZFBlcmNlbnRhZ2Vze3N0 YXJ0X3BlcmNlbnRhZ2UsIGVuZF9wZXJjZW50YWdlfTsKLSAgIH0KLSAKLSAgIGRvdWJsZSBHZXRB bHBoYU11bHRpcGxpZXIoKSBjb25zdCB7Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5 L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL3BhbGV0dGVfaW50ZXJw b2xhdGlvbi5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5 L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL3BhbGV0dGVfaW50ZXJw b2xhdGlvbi5jYwotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuNTkvdGhpcmRfcGFydHkvYmxpbmsv cmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvcGFsZXR0ZV9pbnRlcnBvbGF0aW9uLmNjLm5vX21hdGNo aW5nX2NvbnN0cnVjdG9yCTIwMjMtMTAtMjYgMTg6MTc6MjQuMDAwMDAwMDAwICswMjAwCi0rKysg Y2hyb21pdW0tMTE5LjAuNjA0NS41OS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9y bS9mb250cy9wYWxldHRlX2ludGVycG9sYXRpb24uY2MJMjAyMy0xMC0zMCAxNjo1MTowMi4yNjEx NTEyNjMgKzAxMDAKLUBAIC0zMSw3ICszMSw3IEBAIFZlY3RvcjxGb250UGFsZXR0ZTo6Rm9udFBh bGV0dGVPdmVycmlkZT4KLSAgICAgICAgIGNvbG9yX2ludGVycG9sYXRpb25fc3BhY2UsIGh1ZV9p bnRlcnBvbGF0aW9uX21ldGhvZCwgc3RhcnRfY29sb3IsCi0gICAgICAgICBlbmRfY29sb3IsIHBl cmNlbnRhZ2UsIGFscGhhX211bHRpcGxpZXIpOwotIAotLSAgICBGb250UGFsZXR0ZTo6Rm9udFBh bGV0dGVPdmVycmlkZSByZXN1bHRfY29sb3JfcmVjb3JkKGksIHJlc3VsdF9jb2xvcik7Ci0rICAg IEZvbnRQYWxldHRlOjpGb250UGFsZXR0ZU92ZXJyaWRlIHJlc3VsdF9jb2xvcl9yZWNvcmR7c3Rh dGljX2Nhc3Q8aW50PihpKSwgcmVzdWx0X2NvbG9yfTsKLSAgICAgcmVzdWx0X2NvbG9yX3JlY29y ZHMucHVzaF9iYWNrKHJlc3VsdF9jb2xvcl9yZWNvcmQpOwotICAgfQotICAgcmV0dXJuIHJlc3Vs dF9jb2xvcl9yZWNvcmRzOwotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS91aS9ndGsv Z3RrX3VpLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTExOS4wLjYwNDUuNTkv dWkvZ3RrL2d0a191aS5jYwotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuNTkvdWkvZ3RrL2d0a191 aS5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTEwLTI2IDE4OjE4OjE0LjAwMDAwMDAw MCArMDIwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuNTkvdWkvZ3RrL2d0a191aS5jYwkyMDIz LTEwLTMwIDE2OjUxOjAyLjI3MjE1MTUzNyArMDEwMAotQEAgLTk5MywxMSArOTkzLDExIEBAIHVp OjpEaXNwbGF5Q29uZmlnIEd0a1VpOjpHZXREaXNwbGF5Q29uZmkKLSAgICAgR2RrUmVjdGFuZ2xl IGdlb21ldHJ5OwotICAgICBnZGtfbW9uaXRvcl9nZXRfZ2VvbWV0cnkobW9uaXRvciwgJmdlb21l dHJ5KTsKLSAgICAgaW50IG1vbml0b3Jfc2NhbGUgPSBzdGQ6Om1heCgxLCBnZGtfbW9uaXRvcl9n ZXRfc2NhbGVfZmFjdG9yKG1vbml0b3IpKTsKLS0gICAgY29uZmlnLmRpc3BsYXlfZ2VvbWV0cmll cy5lbXBsYWNlX2JhY2soCi0rICAgIGNvbmZpZy5kaXNwbGF5X2dlb21ldHJpZXMuZW1wbGFjZV9i YWNrKCkgPSB7Ci0gICAgICAgICBnZng6OlJlY3QobW9uaXRvcl9zY2FsZSAqIGdlb21ldHJ5Lngs IG1vbml0b3Jfc2NhbGUgKiBnZW9tZXRyeS55LAotICAgICAgICAgICAgICAgICAgIG1vbml0b3Jf c2NhbGUgKiBnZW9tZXRyeS53aWR0aCwKLSAgICAgICAgICAgICAgICAgICBtb25pdG9yX3NjYWxl ICogZ2VvbWV0cnkuaGVpZ2h0KSwKLS0gICAgICAgIG1vbml0b3Jfc2NhbGUgKiBmb250X3NjYWxl KTsKLSsgICAgICAgIHN0YXRpY19jYXN0PGZsb2F0Pihtb25pdG9yX3NjYWxlICogZm9udF9zY2Fs ZSl9OwotICAgfQotICAgcmV0dXJuIGNvbmZpZzsKLSB9Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTku MC42MDQ1LjU5L2Jhc2UvbWV0cmljcy9wZXJzaXN0ZW50X2hpc3RvZ3JhbV9hbGxvY2F0b3IuY2Mu bWUgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9iYXNlL21ldHJpY3MvcGVyc2lzdGVudF9oaXN0b2dy YW1fYWxsb2NhdG9yLmNjCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9iYXNlL21ldHJpY3Mv cGVyc2lzdGVudF9oaXN0b2dyYW1fYWxsb2NhdG9yLmNjLm1lCTIwMjMtMTAtMzEgMTg6MTQ6NDku Mjc1NzI4MDk5ICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9iYXNlL21ldHJpY3Mv cGVyc2lzdGVudF9oaXN0b2dyYW1fYWxsb2NhdG9yLmNjCTIwMjMtMTAtMzEgMTg6MTk6NTQuNTk5 MjIzMjM5ICswMTAwCi1AQCAtMjIxLDEzICsyMjEsMTMgQEAgUGVyc2lzdGVudFNwYXJzZUhpc3Rv Z3JhbURhdGFNYW5hZ2VyOjpMbwotICAgICAvLyBUaGUgc2FtcGxlLXJlY29yZCBjb3VsZCBiZSBm b3IgYW55IHNwYXJzZSBoaXN0b2dyYW0uIEFkZCB0aGUgcmVmZXJlbmNlCi0gICAgIC8vIHRvIHRo ZSBhcHByb3ByaWF0ZSBjb2xsZWN0aW9uIGZvciBsYXRlciB1c2UuCi0gICAgIGlmIChmb3VuZF9p ZCA9PSBtYXRjaF9pZCkgewotLSAgICAgIGZvdW5kX3JlY29yZHMuZW1wbGFjZV9iYWNrKHJlZiwg dmFsdWUpOwotKyAgICAgIGZvdW5kX3JlY29yZHMuZW1wbGFjZV9iYWNrKCkgPSB7cmVmLCB2YWx1 ZX07Ci0gICAgICAgZm91bmQgPSB0cnVlOwotICAgICB9IGVsc2UgewotICAgICAgIHN0ZDo6dmVj dG9yPFJlZmVyZW5jZUFuZFNhbXBsZT4qIHNhbXBsZXMgPQotICAgICAgICAgICBHZXRTYW1wbGVN YXBSZWNvcmRzV2hpbGVMb2NrZWQoZm91bmRfaWQpOwotICAgICAgIENIRUNLKHNhbXBsZXMpOwot LSAgICAgIHNhbXBsZXMtPmVtcGxhY2VfYmFjayhyZWYsIHZhbHVlKTsKLSsgICAgICBzYW1wbGVz LT5lbXBsYWNlX2JhY2soKSA9IHtyZWYsIHZhbHVlfTsKLSAgICAgfQotICAgfQotIAotZGlmZiAt dXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfY2FjaGUuY2Mu bWUgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfY2FjaGUuY2MK LS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L25ldC9kbnMvaG9zdF9yZXNvbHZlcl9jYWNoZS5j Yy5tZQkyMDIzLTEwLTMxIDIwOjQ4OjE5LjE1Mzg2ODMzOCArMDEwMAotKysrIGNocm9taXVtLTEx OS4wLjYwNDUuNTkvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX2NhY2hlLmNjCTIwMjMtMTAtMzEgMjA6 NTE6MzcuNjM0NTI2NTQ5ICswMTAwCi1AQCAtMzY4LDcgKzM2OCw3IEBAIHZvaWQgSG9zdFJlc29s dmVyQ2FjaGU6OlNldCgKLSAKLSAgIHN0ZDo6c3RyaW5nIGRvbWFpbl9uYW1lID0gcmVzdWx0LT5k b21haW5fbmFtZSgpOwotICAgZW50cmllc18uZW1wbGFjZSgKLS0gICAgICBLZXkoc3RkOjptb3Zl KGRvbWFpbl9uYW1lKSwgbmV0d29ya19hbm9ueW1pemF0aW9uX2tleSksCi0rICAgICAgS2V5e3N0 ZDo6bW92ZShkb21haW5fbmFtZSksIG5ldHdvcmtfYW5vbnltaXphdGlvbl9rZXl9LAotICAgICAg IEVudHJ5KHN0ZDo6bW92ZShyZXN1bHQpLCBzb3VyY2UsIHNlY3VyZSwgc3RhbGVuZXNzX2dlbmVy YXRpb24pKTsKLSAKLSAgIGlmIChlbnRyaWVzXy5zaXplKCkgPiBtYXhfZW50cmllc18pIHsKLWRp ZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jy b3dzZXIvd2ViZGF0YS9hdXRvZmlsbF90YWJsZS5jYy5tZSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5 L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL3dlYmRhdGEvYXV0b2ZpbGxfdGFibGUu Y2MKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9i cm93c2VyL3dlYmRhdGEvYXV0b2ZpbGxfdGFibGUuY2MubWUJMjAyMy0xMC0zMSAyMjozMjo1OC45 OTU5OTc4OTcgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbXBvbmVudHMvYXV0 b2ZpbGwvY29yZS9icm93c2VyL3dlYmRhdGEvYXV0b2ZpbGxfdGFibGUuY2MJMjAyMy0xMC0zMSAy MjozMzoyOC4yOTA1MjA2MDEgKzAxMDAKLUBAIC0xNzMzLDEwICsxNzMzLDEwIEBAIHN0ZDo6dW5p cXVlX3B0cjxBdXRvZmlsbFByb2ZpbGU+IEF1dG9maWwKLSAgICAgfQotIAotICAgICBiYXNlOjpz cGFuPGNvbnN0IHVpbnQ4X3Q+IG9ic2VydmF0aW9uc19kYXRhID0gcy5Db2x1bW5CbG9iKDMpOwot LSAgICBmaWVsZF90eXBlX3ZhbHVlcy5lbXBsYWNlX2JhY2soCi0rICAgIGZpZWxkX3R5cGVfdmFs dWVzLmVtcGxhY2VfYmFjaygpID0gewotICAgICAgICAgdHlwZSwgcy5Db2x1bW5TdHJpbmcxNigx KSwgcy5Db2x1bW5JbnQoMiksCi0gICAgICAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PihvYnNlcnZh dGlvbnNfZGF0YS5iZWdpbigpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2 YXRpb25zX2RhdGEuZW5kKCkpKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ic2Vy dmF0aW9uc19kYXRhLmVuZCgpKX07Ci0gCi0gICAgIGlmICh0eXBlID09IEFERFJFU1NfSE9NRV9D T1VOVFJZKSB7Ci0gICAgICAgY291bnRyeV9jb2RlID0gYmFzZTo6VVRGMTZUb1VURjgocy5Db2x1 bW5TdHJpbmcxNigxKSk7Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbXBvbmVu dHMvcGFzc3dvcmRfbWFuYWdlci9jb3JlL2Jyb3dzZXIvcGFzc3dvcmRfbWFuYWdlci5jYy50aGFu IGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29tcG9uZW50cy9wYXNzd29yZF9tYW5hZ2VyL2NvcmUv YnJvd3Nlci9wYXNzd29yZF9tYW5hZ2VyLmNjCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9j b21wb25lbnRzL3Bhc3N3b3JkX21hbmFnZXIvY29yZS9icm93c2VyL3Bhc3N3b3JkX21hbmFnZXIu Y2MudGhhbgkyMDIzLTEwLTMxIDIyOjQxOjIyLjg1MDIzMzAwNSArMDEwMAotKysrIGNocm9taXVt LTExOS4wLjYwNDUuNTkvY29tcG9uZW50cy9wYXNzd29yZF9tYW5hZ2VyL2NvcmUvYnJvd3Nlci9w YXNzd29yZF9tYW5hZ2VyLmNjCTIwMjMtMTAtMzEgMjI6NDI6MzcuMjc2OTMxOTMzICswMTAwCi1A QCAtNjI1LDcgKzYyNSw3IEBAIHZvaWQgUGFzc3dvcmRNYW5hZ2VyOjpPblVzZXJNb2RpZmllZE5v blAKLSAgIC8vIHxkcml2ZXJ8IG1pZ2h0IGJlIGVtcHR5IG9uIGlPUyBvciBpbiB0ZXN0cy4KLSAg IGludCBkcml2ZXJfaWQgPSBkcml2ZXIgPyBkcml2ZXItPkdldElkKCkgOiAwOwotICAgcG9zc2li bGVfdXNlcm5hbWVzXy5QdXQoCi0tICAgICAgUG9zc2libGVVc2VybmFtZUZpZWxkSWRlbnRpZmll cihkcml2ZXJfaWQsIHJlbmRlcmVyX2lkKSwKLSsgICAgICBQb3NzaWJsZVVzZXJuYW1lRmllbGRJ ZGVudGlmaWVye2RyaXZlcl9pZCwgcmVuZGVyZXJfaWR9LAotICAgICAgIFBvc3NpYmxlVXNlcm5h bWVEYXRhKEdldFNpZ25vblJlYWxtKGRyaXZlci0+R2V0TGFzdENvbW1pdHRlZFVSTCgpKSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJlcl9pZCwgdmFsdWUsIGJhc2U6OlRpbWU6 Ok5vdygpLCBkcml2ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBs ZXRlX2F0dHJpYnV0ZV9oYXNfdXNlcm5hbWUsIGlzX2xpa2VseV9vdHApKTsKLWRpZmYgLXVwIGNo cm9taXVtLTExOS4wLjYwNDUuNTkvY29udGVudC9icm93c2VyL2ludGVyZXN0X2dyb3VwL2ludGVy ZXN0X2dyb3VwX3N0b3JhZ2UuY2MudGhhbiBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbnRlbnQv YnJvd3Nlci9pbnRlcmVzdF9ncm91cC9pbnRlcmVzdF9ncm91cF9zdG9yYWdlLmNjCi0tLS0gY2hy b21pdW0tMTE5LjAuNjA0NS41OS9jb250ZW50L2Jyb3dzZXIvaW50ZXJlc3RfZ3JvdXAvaW50ZXJl c3RfZ3JvdXBfc3RvcmFnZS5jYy50aGFuCTIwMjMtMTAtMzEgMjM6MzE6MDguNDM4MjY3OTA4ICsw MTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb250ZW50L2Jyb3dzZXIvaW50ZXJlc3Rf Z3JvdXAvaW50ZXJlc3RfZ3JvdXBfc3RvcmFnZS5jYwkyMDIzLTEwLTMxIDIzOjMyOjA4Ljk3OTM1 ODcxMSArMDEwMAotQEAgLTI4NTQsMTAgKzI4NTQsMTAgQEAgRG9HZXRLQW5vbnltaXR5RGF0YShz cWw6OkRhdGFiYXNlJiBkYiwKLSAKLSAgIHN0ZDo6dmVjdG9yPFN0b3JhZ2VJbnRlcmVzdEdyb3Vw OjpLQW5vbnltaXR5RGF0YT4ga19hbm9uX2RhdGE7Ci0gICB3aGlsZSAoaW50ZXJlc3RfZ3JvdXBf a2Fub25fcXVlcnkuU3RlcCgpKSB7Ci0tICAgIGtfYW5vbl9kYXRhLmVtcGxhY2VfYmFjaygKLSsg ICAga19hbm9uX2RhdGEuZW1wbGFjZV9iYWNrKCkgPSB7Ci0gICAgICAgICAvKmtleT0qL2ludGVy ZXN0X2dyb3VwX2thbm9uX3F1ZXJ5LkNvbHVtblN0cmluZygwKSwKLSAgICAgICAgIC8qaXNfa19h bm9ueW1vdXM9Ki9pbnRlcmVzdF9ncm91cF9rYW5vbl9xdWVyeS5Db2x1bW5Cb29sKDEpLAotLSAg ICAgICAgLypsYXN0X3VwZGF0ZWQ9Ki9pbnRlcmVzdF9ncm91cF9rYW5vbl9xdWVyeS5Db2x1bW5U aW1lKDIpKTsKLSsgICAgICAgIC8qbGFzdF91cGRhdGVkPSovaW50ZXJlc3RfZ3JvdXBfa2Fub25f cXVlcnkuQ29sdW1uVGltZSgyKX07Ci0gICB9Ci0gICBpZiAoIWludGVyZXN0X2dyb3VwX2thbm9u X3F1ZXJ5LlN1Y2NlZWRlZCgpKSB7Ci0gICAgIHJldHVybiBhYnNsOjpudWxsb3B0OwotZGlmZiAt dXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb250ZW50L2Jyb3dzZXIvd2ViaWQvZmVkZXJhdGVk X2F1dGhfcmVxdWVzdF9pbXBsLmNjLnRoYW4gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb250ZW50 L2Jyb3dzZXIvd2ViaWQvZmVkZXJhdGVkX2F1dGhfcmVxdWVzdF9pbXBsLmNjCi0tLS0gY2hyb21p dW0tMTE5LjAuNjA0NS41OS9jb250ZW50L2Jyb3dzZXIvd2ViaWQvZmVkZXJhdGVkX2F1dGhfcmVx dWVzdF9pbXBsLmNjLnRoYW4JMjAyMy0xMS0wMSAxMToxOTo0Mi43NDUzOTU3OTcgKzAxMDAKLSsr KyBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbnRlbnQvYnJvd3Nlci93ZWJpZC9mZWRlcmF0ZWRf YXV0aF9yZXF1ZXN0X2ltcGwuY2MJMjAyMy0xMS0wMSAxMToyMjoxNi42NzA5MjA2NzkgKzAxMDAK LUBAIC0xODgxLDcgKzE4ODEsNyBAQCB2b2lkIEZlZGVyYXRlZEF1dGhSZXF1ZXN0SW1wbDo6U2hv d0Vycm9yCi0gICAgICAgYmFzZTo6QmluZE9uY2UoJkZlZGVyYXRlZEF1dGhSZXF1ZXN0SW1wbDo6 Q29tcGxldGVSZXF1ZXN0V2l0aEVycm9yLAotICAgICAgICAgICAgICAgICAgICAgIHdlYWtfcHRy X2ZhY3RvcnlfLkdldFdlYWtQdHIoKSkpOwotICAgYWJzbDo6b3B0aW9uYWw8VG9rZW5FcnJvcj4g dG9rZW5fZXJyb3IgPQotLSAgICAgIGVycm9yID8gYWJzbDo6bWFrZV9vcHRpb25hbDxUb2tlbkVy cm9yPihlcnJvci0+Y29kZSwgZXJyb3ItPnVybCkKLSsgICAgICBlcnJvciA/IGFic2w6Om1ha2Vf b3B0aW9uYWw8VG9rZW5FcnJvcj4oe2Vycm9yLT5jb2RlLCBlcnJvci0+dXJsfSkKLSAgICAgICAg ICAgICA6IGFic2w6Om51bGxvcHQ7Ci0gCi0gICAvLyBUT0RPKGNyYnVnLmNvbS8xNDg1NzEwKTog UmVmYWN0b3IgSWRlbnRpdHlDcmVkZW50aWFsVG9rZW5FcnJvcgotLS0tIGNocm9taXVtLTExOS4w LjYwNDUuNTkvdWkvYmFzZS93YXlsYW5kL2NvbG9yX21hbmFnZXJfdXRpbC5oLm5vX21hdGNoaW5n X2NvbnN0cnVjdG9yCTIwMjMtMTAtMjYgMTg6MTg6MTQuMDAwMDAwMDAwICswMjAwCi0rKysgY2hy b21pdW0tMTE5LjAuNjA0NS41OS91aS9iYXNlL3dheWxhbmQvY29sb3JfbWFuYWdlcl91dGlsLmgJ MjAyMy0xMS0wMSAxNzoyOTo1NC4yNjk4MjA0MTUgKzAxMDAKLUBAIC01Miw1MyArNTIsNTMgQEAK LSAgICAgemNyX2NvbG9yX21hbmFnZXJfdjFfY2hyb21hdGljaXR5X25hbWVzLAotICAgICBQcmlt YXJ5VmVyc2lvbj4oCi0gICAgIHt7WkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05B TUVTX0JUNjAxXzUyNV9MSU5FLAotLSAgICAgIFByaW1hcnlWZXJzaW9uKGdmeDo6Q29sb3JTcGFj ZTo6UHJpbWFyeUlEOjpTTVBURTE3ME0sCi0tICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRT aW5jZVZlcnNpb24pfSwKLSsgICAgICBQcmltYXJ5VmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlBy aW1hcnlJRDo6U01QVEUxNzBNLAotKyAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VW ZXJzaW9ufX0sCi0gICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVT X0JUNjAxXzYyNV9MSU5FLAotLSAgICAgIFByaW1hcnlWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6 UHJpbWFyeUlEOjpCVDQ3MEJHLAotLSAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VW ZXJzaW9uKX0sCi0rICAgICAgUHJpbWFyeVZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5 SUQ6OkJUNDcwQkcsCi0rICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb259 fSwKLSAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfU01QVEUx NzBNLAotLSAgICAgIFByaW1hcnlWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpT TVBURTE3ME0sCi0tICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb24pfSwK LSsgICAgICBQcmltYXJ5VmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6U01QVEUx NzBNLAotKyAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCi0gICAg ICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX0JUNzA5LAotLSAgICAg IFByaW1hcnlWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpCVDcwOSwga0RlZmF1 bHRTaW5jZVZlcnNpb24pfSwKLSsgICAgICBQcmltYXJ5VmVyc2lvbntnZng6OkNvbG9yU3BhY2U6 OlByaW1hcnlJRDo6QlQ3MDksIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCi0gICAgICB7WkNSX0NP TE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX0JUMjAyMCwKLS0gICAgICBQcmltYXJ5 VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6QlQyMDIwLCBrRGVmYXVsdFNpbmNl VmVyc2lvbil9LAotKyAgICAgIFByaW1hcnlWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6UHJpbWFy eUlEOjpCVDIwMjAsIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCi0gICAgICB7WkNSX0NPTE9SX01B TkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX1NSR0IsCi0tICAgICAgUHJpbWFyeVZlcnNpb24o Z2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OkJUNzA5LCBrRGVmYXVsdFNpbmNlVmVyc2lvbil9 LAotKyAgICAgIFByaW1hcnlWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpCVDcw OSwga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKLSAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9D SFJPTUFUSUNJVFlfTkFNRVNfRElTUExBWVAzLAotLSAgICAgIFByaW1hcnlWZXJzaW9uKGdmeDo6 Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpQMywga0RlZmF1bHRTaW5jZVZlcnNpb24pfSwKLSsgICAg ICBQcmltYXJ5VmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6UDMsIGtEZWZhdWx0 U2luY2VWZXJzaW9ufX0sCi0gICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZ X05BTUVTX0FET0JFUkdCLAotLSAgICAgIFByaW1hcnlWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6 UHJpbWFyeUlEOjpBRE9CRV9SR0IsCi0tICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5j ZVZlcnNpb24pfSwKLSsgICAgICBQcmltYXJ5VmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlByaW1h cnlJRDo6QURPQkVfUkdCLAotKyAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJz aW9ufX0sCi0gICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX1dJ REVfR0FNVVRfQ09MT1JfU1BJTiwKLS0gICAgICBQcmltYXJ5VmVyc2lvbigKLSsgICAgICBQcmlt YXJ5VmVyc2lvbnsKLSAgICAgICAgICAgZ2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OldJREVf R0FNVVRfQ09MT1JfU1BJTiwKLS0gICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01B VElDSVRZX05BTUVTX1dJREVfR0FNVVRfQ09MT1JfU1BJTl9TSU5DRV9WRVJTSU9OKX0sCi0rICAg ICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19XSURFX0dBTVVU X0NPTE9SX1NQSU5fU0lOQ0VfVkVSU0lPTn19LAotICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1Yx X0NIUk9NQVRJQ0lUWV9OQU1FU19CVDQ3ME0sCi0tICAgICAgUHJpbWFyeVZlcnNpb24oCi0rICAg ICAgUHJpbWFyeVZlcnNpb257Ci0gICAgICAgICAgIGdmeDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlE OjpCVDQ3ME0sCi0tICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9O QU1FU19CVDQ3ME1fU0lOQ0VfVkVSU0lPTil9LAotKyAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdF Ul9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfQlQ0NzBNX1NJTkNFX1ZFUlNJT059fSwKLSAgICAgIHta Q1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfU01QVEUyNDBNLAotLSAgICAg IFByaW1hcnlWZXJzaW9uKAotKyAgICAgIFByaW1hcnlWZXJzaW9uewotICAgICAgICAgICBnZng6 OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6U01QVEUyNDBNLAotLSAgICAgICAgICBaQ1JfQ09MT1Jf TUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfU01QVEUyNDBNX1NJTkNFX1ZFUlNJT04pfSwK LSsgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX1NNUFRF MjQwTV9TSU5DRV9WRVJTSU9OfX0sCi0gICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01B VElDSVRZX05BTUVTX1hZWl9ENTAsCi0tICAgICAgUHJpbWFyeVZlcnNpb24oCi0rICAgICAgUHJp bWFyeVZlcnNpb257Ci0gICAgICAgICAgIGdmeDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpYWVpf RDUwLAotLSAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNf WFlaX0Q1MF9TSU5DRV9WRVJTSU9OKX0sCi0rICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1Yx X0NIUk9NQVRJQ0lUWV9OQU1FU19YWVpfRDUwX1NJTkNFX1ZFUlNJT059fSwKLSAgICAgIHtaQ1Jf Q09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfU01QVEVTVDQyOF8xLAotLSAgICAg IFByaW1hcnlWZXJzaW9uKAotKyAgICAgIFByaW1hcnlWZXJzaW9uewotICAgICAgICAgICBnZng6 OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6U01QVEVTVDQyOF8xLAotLSAgICAgICAgICBaQ1JfQ09M T1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfU01QVEVTVDQyOF8xX1NJTkNFX1ZFUlNJ T04pfSwKLSsgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVT X1NNUFRFU1Q0MjhfMV9TSU5DRV9WRVJTSU9OfX0sCi0gICAgICB7WkNSX0NPTE9SX01BTkFHRVJf VjFfQ0hST01BVElDSVRZX05BTUVTX1NNUFRFU1Q0MzFfMiwKLS0gICAgICBQcmltYXJ5VmVyc2lv bigKLSsgICAgICBQcmltYXJ5VmVyc2lvbnsKLSAgICAgICAgICAgZ2Z4OjpDb2xvclNwYWNlOjpQ cmltYXJ5SUQ6OlNNUFRFU1Q0MzFfMiwKLS0gICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFf Q0hST01BVElDSVRZX05BTUVTX1NNUFRFU1Q0MzFfMl9TSU5DRV9WRVJTSU9OKX0sCi0rICAgICAg ICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19TTVBURVNUNDMxXzJf U0lOQ0VfVkVSU0lPTn19LAotICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lU WV9OQU1FU19GSUxNLAotLSAgICAgIFByaW1hcnlWZXJzaW9uKAotKyAgICAgIFByaW1hcnlWZXJz aW9uewotICAgICAgICAgICBnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6RklMTSwKLS0gICAg ICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX0ZJTE1fU0lOQ0Vf VkVSU0lPTil9fSk7Ci0rICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lU WV9OQU1FU19GSUxNX1NJTkNFX1ZFUlNJT059fX0pOwotIAotIC8vIEEgbWFwIGZyb20gdGhlIHpj cl9jb2xvcl9tYW5hZ2VyX3YxIGVvdGZfbmFtZXMgZW51bSB2YWx1ZXMKLSAvLyByZXByZXNlbnRp bmcgd2VsbC1rbm93biBFT1RGcywgdG8gdGhlaXIgZXF1aXZhbGVudCBUcmFuc2ZlcklEcy4KLUBA IC0xMDcsNjggKzEwNyw2OCBAQAotICAgICB6Y3JfY29sb3JfbWFuYWdlcl92MV9lb3RmX25hbWVz LAotICAgICBUcmFuc2ZlclZlcnNpb24+KHsKLSAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VP VEZfTkFNRVNfTElORUFSLAotLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6 VHJhbnNmZXJJRDo6TElORUFSLAotLSAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VW ZXJzaW9uKX0sCi0rICAgICBUcmFuc2ZlclZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpUcmFuc2Zl cklEOjpMSU5FQVIsCi0rICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb259 fSwKLSAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU1JHQiwKLS0gICAgIFRy YW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OlNSR0IsIGtEZWZhdWx0 U2luY2VWZXJzaW9uKX0sCi0rICAgICBUcmFuc2ZlclZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpU cmFuc2ZlcklEOjpTUkdCLCBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAotICAgICB7WkNSX0NPTE9S X01BTkFHRVJfVjFfRU9URl9OQU1FU19TUkdCX0hEUiwKLS0gICAgIFRyYW5zZmVyVmVyc2lvbihn Zng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OlNSR0JfSERSLAotLSAgICAgICAgICAgICAgICAg ICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU1JHQl9IRFJfU0lOQ0VfVkVSU0lP Til9LAotKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6 U1JHQl9IRFIsCi0rICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9U Rl9OQU1FU19TUkdCX0hEUl9TSU5DRV9WRVJTSU9OfX0sCi0gICAgIHtaQ1JfQ09MT1JfTUFOQUdF Ul9WMV9FT1RGX05BTUVTX0JUNzA5LAotLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JT cGFjZTo6VHJhbnNmZXJJRDo6QlQ3MDksCi0tICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9S X01BTkFHRVJfVjFfRU9URl9OQU1FU19CVDcwOV9TSU5DRV9WRVJTSU9OKX0sCi0rICAgICBUcmFu c2ZlclZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpCVDcwOSwKLSsgICAgICAg ICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUNzA5X1NJTkNF X1ZFUlNJT059fSwKLSAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfQlQyMDg3 LAotLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6R0FN TUEyNCwKLS0gICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAotKyAg ICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6R0FNTUEyNCwK LSsgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAotICAgICB7WkNS X0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19BRE9CRVJHQiwKLSAgICAgIC8vIFRoaXMgaXMg ZXZlciBzbyBzbGlnaHRseSBpbmFjY3VyYXRlLiBUaGUgbnVtYmVyIG91Z2h0IHRvIGJlCi0gICAg ICAvLyAyLjE5OTIxODc1Ziwgbm90IDIuMgotLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29s b3JTcGFjZTo6VHJhbnNmZXJJRDo6R0FNTUEyMiwKLS0gICAgICAgICAgICAgICAgICAgICBrRGVm YXVsdFNpbmNlVmVyc2lvbil9LAotKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFj ZTo6VHJhbnNmZXJJRDo6R0FNTUEyMiwKLSsgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNp bmNlVmVyc2lvbn19LAotICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19QUSwK LS0gICAgIFRyYW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OlBRLCBr RGVmYXVsdFNpbmNlVmVyc2lvbil9LAotKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JT cGFjZTo6VHJhbnNmZXJJRDo6UFEsIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCi0gICAgIHtaQ1Jf Q09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0hMRywKLS0gICAgIFRyYW5zZmVyVmVyc2lvbihn Zng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkhMRywKLS0gICAgICAgICAgICAgICAgICAgICBa Q1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0hMR19TSU5DRV9WRVJTSU9OKX0sCi0rICAg ICBUcmFuc2ZlclZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpITEcsCi0rICAg ICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19ITEdfU0lO Q0VfVkVSU0lPTn19LAotICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19TTVBU RTE3ME0sCi0tICAgICBUcmFuc2ZlclZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklE OjpTTVBURTE3ME0sCi0tICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFf RU9URl9OQU1FU19TTVBURTE3ME1fU0lOQ0VfVkVSU0lPTil9LAotKyAgICAgVHJhbnNmZXJWZXJz aW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6U01QVEUxNzBNLAotKyAgICAgICAgICAg ICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU01QVEUxNzBNX1NJTkNF X1ZFUlNJT059fSwKLSAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU01QVEUy NDBNLAotLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6 U01QVEUyNDBNLAotLSAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VP VEZfTkFNRVNfU01QVEUyNDBNX1NJTkNFX1ZFUlNJT04pfSwKLSsgICAgIFRyYW5zZmVyVmVyc2lv bntnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OlNNUFRFMjQwTSwKLSsgICAgICAgICAgICAg ICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NNUFRFMjQwTV9TSU5DRV9W RVJTSU9OfX0sCi0gICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NNUFRFU1Q0 MjhfMSwKLS0gICAgIFRyYW5zZmVyVmVyc2lvbigKLSsgICAgIFRyYW5zZmVyVmVyc2lvbnsKLSAg ICAgICAgICBnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OlNNUFRFU1Q0MjhfMSwKLS0gICAg ICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NNUFRFU1Q0MjhfMV9TSU5DRV9W RVJTSU9OKX0sCi0rICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19TTVBU RVNUNDI4XzFfU0lOQ0VfVkVSU0lPTn19LAotICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9U Rl9OQU1FU19MT0csCi0tICAgICBUcmFuc2ZlclZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpUcmFu c2ZlcklEOjpMT0csCi0tICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFf RU9URl9OQU1FU19MT0dfU0lOQ0VfVkVSU0lPTil9LAotKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dm eDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6TE9HLAotKyAgICAgICAgICAgICAgICAgICAgIFpD Ul9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfTE9HX1NJTkNFX1ZFUlNJT059fSwKLSAgICAg e1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfTE9HX1NRUlQsCi0tICAgICBUcmFuc2Zl clZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpMT0dfU1FSVCwKLS0gICAgICAg ICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0xPR19TUVJUX1NJ TkNFX1ZFUlNJT04pfSwKLSsgICAgIFRyYW5zZmVyVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlRy YW5zZmVySUQ6OkxPR19TUVJULAotKyAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5B R0VSX1YxX0VPVEZfTkFNRVNfTE9HX1NRUlRfU0lOQ0VfVkVSU0lPTn19LAotICAgICB7WkNSX0NP TE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19JRUM2MTk2Nl8yXzQsCi0tICAgICBUcmFuc2ZlclZl cnNpb24oCi0rICAgICBUcmFuc2ZlclZlcnNpb257Ci0gICAgICAgICAgZ2Z4OjpDb2xvclNwYWNl OjpUcmFuc2ZlcklEOjpJRUM2MTk2Nl8yXzQsCi0tICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJf VjFfRU9URl9OQU1FU19JRUM2MTk2Nl8yXzRfU0lOQ0VfVkVSU0lPTil9LAotKyAgICAgICAgIFpD Ul9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfSUVDNjE5NjZfMl80X1NJTkNFX1ZFUlNJT059 fSwKLSAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfQlQxMzYxX0VDRywKLS0g ICAgIFRyYW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkJUMTM2MV9F Q0csCi0tICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1F U19CVDEzNjFfRUNHX1NJTkNFX1ZFUlNJT04pfSwKLSsgICAgIFRyYW5zZmVyVmVyc2lvbntnZng6 OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkJUMTM2MV9FQ0csCi0rICAgICAgICAgICAgICAgICAg ICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19CVDEzNjFfRUNHX1NJTkNFX1ZFUlNJ T059fSwKLSAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfQlQyMDIwXzEwLAot LSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6QlQyMDIw XzEwLAotLSAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFN RVNfQlQyMDIwXzEwX1NJTkNFX1ZFUlNJT04pfSwKLSsgICAgIFRyYW5zZmVyVmVyc2lvbntnZng6 OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkJUMjAyMF8xMCwKLSsgICAgICAgICAgICAgICAgICAg ICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUMjAyMF8xMF9TSU5DRV9WRVJTSU9O fX0sCi0gICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUMjAyMF8xMiwKLS0g ICAgIFRyYW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkJUMjAyMF8x MiwKLS0gICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVT X0JUMjAyMF8xMl9TSU5DRV9WRVJTSU9OKX0sCi0rICAgICBUcmFuc2ZlclZlcnNpb257Z2Z4OjpD b2xvclNwYWNlOjpUcmFuc2ZlcklEOjpCVDIwMjBfMTIsCi0rICAgICAgICAgICAgICAgICAgICAg WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19CVDIwMjBfMTJfU0lOQ0VfVkVSU0lPTn19 LAotICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19TQ1JHQl9MSU5FQVJfODBf TklUUywKLS0gICAgIFRyYW5zZmVyVmVyc2lvbigKLSsgICAgIFRyYW5zZmVyVmVyc2lvbnsKLSAg ICAgICAgICBnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OlNDUkdCX0xJTkVBUl84MF9OSVRT LAotLSAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU0NSR0JfTElORUFS XzgwX05JVFNfU0lOQ0VfVkVSU0lPTil9LAotKyAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1Yx X0VPVEZfTkFNRVNfU0NSR0JfTElORUFSXzgwX05JVFNfU0lOQ0VfVkVSU0lPTn19LAotICAgICB7 WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19HQU1NQTE4LAotLSAgICAgVHJhbnNmZXJW ZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6R0FNTUExOCwKLS0gICAgICAgICAg ICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0dBTU1BMThfU0lOQ0Vf VkVSU0lPTil9LAotKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNm ZXJJRDo6R0FNTUExOCwKLSsgICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9W MV9FT1RGX05BTUVTX0dBTU1BMThfU0lOQ0VfVkVSU0lPTn19LAotICAgICB7WkNSX0NPTE9SX01B TkFHRVJfVjFfRU9URl9OQU1FU19HQU1NQTI4LAotLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6 Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6R0FNTUEyOCwKLS0gICAgICAgICAgICAgICAgICAgICBa Q1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0dBTU1BMjhfU0lOQ0VfVkVSU0lPTil9LAot KyAgICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6R0FNTUEy OCwKLSsgICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVT X0dBTU1BMjhfU0lOQ0VfVkVSU0lPTn19LAotIH0pOwotIAotIC8vIEEgbWFwIGZyb20gdGhlIFNE UiB6Y3JfY29sb3JfbWFuYWdlcl92MSBlb3RmX25hbWVzIGVudW0gdmFsdWVzCi1AQCAtMTc3LDE4 ICsxNzcsMTggQEAKLSBjb25zdGV4cHIgYXV0byBrVHJhbnNmZXJNYXAgPQotICAgICBiYXNlOjpN YWtlRml4ZWRGbGF0TWFwPHpjcl9jb2xvcl9tYW5hZ2VyX3YxX2VvdGZfbmFtZXMsIFRyYW5zZmVy Rm5WZXJzaW9uPih7Ci0gICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19M SU5FQVIsCi0tICAgICAgICAgVHJhbnNmZXJGblZlcnNpb24oU2tOYW1lZFRyYW5zZmVyRm46OmtM aW5lYXIsIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCi0rICAgICAgICAgVHJhbnNmZXJGblZlcnNp b257U2tOYW1lZFRyYW5zZmVyRm46OmtMaW5lYXIsIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCi0g ICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19TUkdCLAotLSAgICAgICAg IFRyYW5zZmVyRm5WZXJzaW9uKFNrTmFtZWRUcmFuc2ZlckZuRXh0OjprU1JHQiwga0RlZmF1bHRT aW5jZVZlcnNpb24pfSwKLSsgICAgICAgICBUcmFuc2ZlckZuVmVyc2lvbntTa05hbWVkVHJhbnNm ZXJGbkV4dDo6a1NSR0IsIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCi0gICAgICAgICB7WkNSX0NP TE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19CVDcwOSwKLS0gICAgICAgICBUcmFuc2ZlckZuVmVy c2lvbigKLSsgICAgICAgICBUcmFuc2ZlckZuVmVyc2lvbnsKLSAgICAgICAgICAgICAgU2tOYW1l ZFRyYW5zZmVyRm5FeHQ6OmtSZWM3MDksCi0tICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VS X1YxX0VPVEZfTkFNRVNfQlQ3MDlfU0lOQ0VfVkVSU0lPTil9LAotKyAgICAgICAgICAgICBaQ1Jf Q09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUNzA5X1NJTkNFX1ZFUlNJT059fSwKLSAgICAg ICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUMjA4NywKLS0gICAgICAgICBU cmFuc2ZlckZuVmVyc2lvbihnYW1tYTI0LCBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAotKyAgICAg ICAgIFRyYW5zZmVyRm5WZXJzaW9ue2dhbW1hMjQsIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCi0g ICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19BRE9CRVJHQiwKLS0gICAg ICAgICBUcmFuc2ZlckZuVmVyc2lvbihTa05hbWVkVHJhbnNmZXJGbkV4dDo6a0E5OFJHQiwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAotKyAgICAg ICAgIFRyYW5zZmVyRm5WZXJzaW9ue1NrTmFtZWRUcmFuc2ZlckZuRXh0OjprQTk4UkdCLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCi0gICAgIH0p OwotIAotIC8vIEEgbWFwIGZyb20gdGhlIEhEUiB6Y3JfY29sb3JfbWFuYWdlcl92MSBlb3RmX25h bWVzIGVudW0gdmFsdWVzCi1AQCAtMTk3LDcwICsxOTcsNzAgQEAKLSBjb25zdGV4cHIgYXV0byBr SERSVHJhbnNmZXJNYXAgPQotICAgICBiYXNlOjpNYWtlRml4ZWRGbGF0TWFwPHpjcl9jb2xvcl9t YW5hZ2VyX3YxX2VvdGZfbmFtZXMsIFRyYW5zZmVyRm5WZXJzaW9uPigKLSAgICAgICAgIHt7WkNS X0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19MSU5FQVIsCi0tICAgICAgICAgIFRyYW5zZmVy Rm5WZXJzaW9uKFNrTmFtZWRUcmFuc2ZlckZuOjprTGluZWFyLCBrRGVmYXVsdFNpbmNlVmVyc2lv bil9LAotKyAgICAgICAgICBUcmFuc2ZlckZuVmVyc2lvbntTa05hbWVkVHJhbnNmZXJGbjo6a0xp bmVhciwga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKLSAgICAgICAgICB7WkNSX0NPTE9SX01BTkFH RVJfVjFfRU9URl9OQU1FU19TUkdCX0hEUiwKLS0gICAgICAgICAgVHJhbnNmZXJGblZlcnNpb24o Ci0rICAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9uewotICAgICAgICAgICAgICAgU2tOYW1lZFRy YW5zZmVyRm5FeHQ6OmtTUkdCLAotLSAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFf RU9URl9OQU1FU19TUkdCX0hEUl9TSU5DRV9WRVJTSU9OKX0sCi0rICAgICAgICAgICAgICBaQ1Jf Q09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NSR0JfSERSX1NJTkNFX1ZFUlNJT059fSwKLSAg ICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19QUSwKLS0gICAgICAgICAg VHJhbnNmZXJGblZlcnNpb24oU2tOYW1lZFRyYW5zZmVyRm46OmtQUSwga0RlZmF1bHRTaW5jZVZl cnNpb24pfSwKLSsgICAgICAgICAgVHJhbnNmZXJGblZlcnNpb257U2tOYW1lZFRyYW5zZmVyRm46 OmtQUSwga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKLSAgICAgICAgICB7WkNSX0NPTE9SX01BTkFH RVJfVjFfRU9URl9OQU1FU19ITEcsCi0tICAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9uKFNrTmFt ZWRUcmFuc2ZlckZuOjprSExHLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBaQ1JfQ09M T1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0hMR19TSU5DRV9WRVJTSU9OKX0sCi0rICAgICAgICAg IFRyYW5zZmVyRm5WZXJzaW9ue1NrTmFtZWRUcmFuc2ZlckZuOjprSExHLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0hMR19TSU5D RV9WRVJTSU9OfX0sCi0gICAgICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNf RVhURU5ERURTUkdCMTAsCi0tICAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9uKAotKyAgICAgICAg ICBUcmFuc2ZlckZuVmVyc2lvbnsKLSAgICAgICAgICAgICAgIFNrTmFtZWRUcmFuc2ZlckZuRXh0 OjprU1JHQkV4dGVuZGVkMTAyM092ZXI1MTAsCi0tICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFO QUdFUl9WMV9FT1RGX05BTUVTX0VYVEVOREVEU1JHQjEwX1NJTkNFX1ZFUlNJT04pfX0pOwotKyAg ICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19FWFRFTkRFRFNSR0Ix MF9TSU5DRV9WRVJTSU9OfX19KTsKLSAKLSAvLyBBIG1hcCBmcm9tIHpjcl9jb2xvcl9tYW5hZ2Vy X3YxIG1hdHJpeF9uYW1lcyBlbnVtIHZhbHVlcyB0bwotIC8vIGdmeDo6Q29sb3JTcGFjZTo6TWF0 cml4SURzLgotIGNvbnN0ZXhwciBhdXRvIGtNYXRyaXhNYXAgPQotICAgICBiYXNlOjpNYWtlRml4 ZWRGbGF0TWFwPHpjcl9jb2xvcl9tYW5hZ2VyX3YxX21hdHJpeF9uYW1lcywgTWF0cml4VmVyc2lv bj4oCi0gICAgICAgICB7e1pDUl9DT0xPUl9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19SR0IsCi0t ICAgICAgICAgIE1hdHJpeFZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJRDo6UkdCLCBr RGVmYXVsdFNpbmNlVmVyc2lvbil9LAotKyAgICAgICAgICBNYXRyaXhWZXJzaW9ue2dmeDo6Q29s b3JTcGFjZTo6TWF0cml4SUQ6OlJHQiwga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKLSAgICAgICAg ICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfTUFUUklYX05BTUVTX0JUNzA5LAotLSAgICAgICAgICBN YXRyaXhWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OkJUNzA5LAotLSAgICAgICAg ICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCi0rICAgICAgICAgIE1hdHJp eFZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJRDo6QlQ3MDksCi0rICAgICAgICAgICAg ICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKLSAgICAgICAgICB7WkNSX0NPTE9S X01BTkFHRVJfVjFfTUFUUklYX05BTUVTX0JUNDcwQkcsCi0tICAgICAgICAgIE1hdHJpeFZlcnNp b24oCi0rICAgICAgICAgIE1hdHJpeFZlcnNpb257Ci0gICAgICAgICAgICAgICBnZng6OkNvbG9y U3BhY2U6Ok1hdHJpeElEOjpCVDQ3MEJHLAotLSAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFH RVJfVjFfTUFUUklYX05BTUVTX0JUNDcwQkdfU0lOQ0VfVkVSU0lPTil9LAotKyAgICAgICAgICAg ICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfTUFUUklYX05BTUVTX0JUNDcwQkdfU0lOQ0VfVkVSU0lP Tn19LAotICAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfQlQyMDIw X05DTCwKLS0gICAgICAgICAgTWF0cml4VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6Ok1hdHJpeElE OjpCVDIwMjBfTkNMLAotLSAgICAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJz aW9uKX0sCi0rICAgICAgICAgIE1hdHJpeFZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJ RDo6QlQyMDIwX05DTCwKLSsgICAgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVy c2lvbn19LAotICAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfQlQy MDIwX0NMLAotLSAgICAgICAgICBNYXRyaXhWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6TWF0cml4 SUQ6OkJUMjAyMF9DTCwKLS0gICAgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVy c2lvbil9LAotKyAgICAgICAgICBNYXRyaXhWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6TWF0cml4 SUQ6OkJUMjAyMF9DTCwKLSsgICAgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVy c2lvbn19LAotICAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfRkND LAotLSAgICAgICAgICBNYXRyaXhWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OkZD Qywga0RlZmF1bHRTaW5jZVZlcnNpb24pfSwKLSsgICAgICAgICAgTWF0cml4VmVyc2lvbntnZng6 OkNvbG9yU3BhY2U6Ok1hdHJpeElEOjpGQ0MsIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCi0gICAg ICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19ZQ09DRywKLS0gICAgICAg ICAgTWF0cml4VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6Ok1hdHJpeElEOjpZQ09DRywKLS0gICAg ICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfWUNP Q0dfU0lOQ0VfVkVSU0lPTil9LAotKyAgICAgICAgICBNYXRyaXhWZXJzaW9ue2dmeDo6Q29sb3JT cGFjZTo6TWF0cml4SUQ6OllDT0NHLAotKyAgICAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xP Ul9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19ZQ09DR19TSU5DRV9WRVJTSU9OfX0sCi0gICAgICAg ICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19ZRFpEWCwKLS0gICAgICAgICAg TWF0cml4VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6Ok1hdHJpeElEOjpZRFpEWCwKLS0gICAgICAg ICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfWURaRFhf U0lOQ0VfVkVSU0lPTil9LAotKyAgICAgICAgICBNYXRyaXhWZXJzaW9ue2dmeDo6Q29sb3JTcGFj ZTo6TWF0cml4SUQ6OllEWkRYLAotKyAgICAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9N QU5BR0VSX1YxX01BVFJJWF9OQU1FU19ZRFpEWF9TSU5DRV9WRVJTSU9OfX0sCi0gICAgICAgICAg e1pDUl9DT0xPUl9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19HQlIsCi0tICAgICAgICAgIE1hdHJp eFZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJRDo6R0JSLAotLSAgICAgICAgICAgICAg ICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19HQlJfU0lOQ0VfVkVS U0lPTil9LAotKyAgICAgICAgICBNYXRyaXhWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6TWF0cml4 SUQ6OkdCUiwKLSsgICAgICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9N QVRSSVhfTkFNRVNfR0JSX1NJTkNFX1ZFUlNJT059fSwKLSAgICAgICAgICB7WkNSX0NPTE9SX01B TkFHRVJfVjFfTUFUUklYX05BTUVTX1NNUFRFMTcwTSwKLS0gICAgICAgICAgTWF0cml4VmVyc2lv bihnZng6OkNvbG9yU3BhY2U6Ok1hdHJpeElEOjpTTVBURTE3ME0sCi0tICAgICAgICAgICAgICAg ICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb24pfSwKLSsgICAgICAgICAgTWF0cml4VmVyc2lv bntnZng6OkNvbG9yU3BhY2U6Ok1hdHJpeElEOjpTTVBURTE3ME0sCi0rICAgICAgICAgICAgICAg ICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKLSAgICAgICAgICB7WkNSX0NPTE9SX01B TkFHRVJfVjFfTUFUUklYX05BTUVTX1NNUFRFMjQwTSwKLS0gICAgICAgICAgTWF0cml4VmVyc2lv bihnZng6OkNvbG9yU3BhY2U6Ok1hdHJpeElEOjpTTVBURTI0ME0sCi0tICAgICAgICAgICAgICAg ICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb24pfX0pOwotKyAgICAgICAgICBNYXRyaXhWZXJz aW9ue2dmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OlNNUFRFMjQwTSwKLSsgICAgICAgICAgICAg ICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19fSk7Ci0gCi0gLy8gQSBtYXAgZnJvbSB6 Y3JfY29sb3JfbWFuYWdlcl92MSByYW5nZV9uYW1lcyBlbnVtIHZhbHVlcyB0bwotIC8vIGdmeDo6 Q29sb3JTcGFjZTo6UmFuZ2VJRHMuCi0gY29uc3RleHByIGF1dG8ga1JhbmdlTWFwID0KLSAgICAg YmFzZTo6TWFrZUZpeGVkRmxhdE1hcDx6Y3JfY29sb3JfbWFuYWdlcl92MV9yYW5nZV9uYW1lcywg UmFuZ2VWZXJzaW9uPigKLSAgICAgICAgIHt7WkNSX0NPTE9SX01BTkFHRVJfVjFfUkFOR0VfTkFN RVNfTElNSVRFRCwKLS0gICAgICAgICAgUmFuZ2VWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6UmFu Z2VJRDo6TElNSVRFRCwKLS0gICAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJz aW9uKX0sCi0rICAgICAgICAgIFJhbmdlVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlJhbmdlSUQ6 OkxJTUlURUQsCi0rICAgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19 LAotICAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9SQU5HRV9OQU1FU19GVUxMLAotLSAg ICAgICAgICBSYW5nZVZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpSYW5nZUlEOjpGVUxMLCBrRGVm YXVsdFNpbmNlVmVyc2lvbil9LAotKyAgICAgICAgICBSYW5nZVZlcnNpb257Z2Z4OjpDb2xvclNw YWNlOjpSYW5nZUlEOjpGVUxMLCBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAotICAgICAgICAgIHta Q1JfQ09MT1JfTUFOQUdFUl9WMV9SQU5HRV9OQU1FU19ERVJJVkVELAotLSAgICAgICAgICBSYW5n ZVZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpSYW5nZUlEOjpERVJJVkVELAotLSAgICAgICAgICAg ICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb24pfX0pOwotKyAgICAgICAgICBSYW5nZVZl cnNpb257Z2Z4OjpDb2xvclNwYWNlOjpSYW5nZUlEOjpERVJJVkVELAotKyAgICAgICAgICAgICAg ICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb259fX0pOwotIAotIHpjcl9jb2xvcl9tYW5hZ2Vy X3YxX2Nocm9tYXRpY2l0eV9uYW1lcyBUb0NvbG9yTWFuYWdlckNocm9tYXRpY2l0eSgKLSAgICAg Z2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQgcHJpbWFyeUlELAotQEAgLTI4Myw0ICsyODMsNCBA QAotIAotIH0gIC8vIG5hbWVzcGFjZSB1aTo6d2F5bGFuZAotIAotLSNlbmRpZiAgLy8gVUlfQkFT RV9XQVlMQU5EX0NPTE9SX01BTkFHRVJfVVRJTF9IXwotXCBLZWluIFplaWxlbnVtYnJ1Y2ggYW0g RGF0ZWllbmRlLgotKyNlbmRpZiAgLy8gVUlfQkFTRV9XQVlMQU5EX0NPTE9SX01BTkFHRVJfVVRJ TF9IXwotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvYnJvd3Nlci91aS92 aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9wcmV2aW91c2x5X2dy YW50ZWRfdmlldy5jYy5tZSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL3Vp L3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X3ByZXZpb3VzbHlf Z3JhbnRlZF92aWV3LmNjCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvYnJvd3Nl ci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9wcmV2aW91 c2x5X2dyYW50ZWRfdmlldy5jYy5tZQkyMDIzLTExLTAxIDIwOjQ2OjE1Ljk5Nzg2MTI3OCArMDEw MAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVy bWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfcHJldmlvdXNseV9ncmFudGVkX3Zp ZXcuY2MJMjAyMy0xMS0wMSAyMDo0OTozMy42MDMzNzE2ODAgKzAxMDAKLUBAIC01OCwxMyArNTgs MTMgQEAgRW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0UHJldmlvdXNseUdyYW50ZQotIHN0ZDo6dmVj dG9yPEVtYmVkZGVkUGVybWlzc2lvblByb21wdFByZXZpb3VzbHlHcmFudGVkVmlldzo6QnV0dG9u Q29uZmlndXJhdGlvbj4KLSBFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRQcmV2aW91c2x5R3JhbnRl ZFZpZXc6OkdldEJ1dHRvbnNDb25maWd1cmF0aW9uKCkgewotICAgc3RkOjp2ZWN0b3I8QnV0dG9u Q29uZmlndXJhdGlvbj4gYnV0dG9uczsKLS0gIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKAotKyAgYnV0 dG9ucy5lbXBsYWNlX2JhY2soKSA9IHsKLSAgICAgICBsMTBuX3V0aWw6OkdldFN0cmluZ1VURjE2 KElEU19FTUJFRERFRF9QUk9NUFRfQ09OVElOVUVfQUxMT1dJTkcpLAotLSAgICAgIEJ1dHRvblR5 cGU6OmtDb250aW51ZUFsbG93aW5nLCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbCk7Ci0rICAgICAg QnV0dG9uVHlwZTo6a0NvbnRpbnVlQWxsb3dpbmcsIHVpOjpCdXR0b25TdHlsZTo6a1RvbmFsfTsK LSAKLS0gIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKAotKyAgYnV0dG9ucy5lbXBsYWNlX2JhY2soKSA9 IHsKLSAgICAgICBsMTBuX3V0aWw6OkdldFN0cmluZ1VURjE2KElEU19FTUJFRERFRF9QUk9NUFRf U1RPUF9BTExPV0lORyksCi0tICAgICAgQnV0dG9uVHlwZTo6a1N0b3BBbGxvd2luZywgdWk6OkJ1 dHRvblN0eWxlOjprVG9uYWwpOwotKyAgICAgIEJ1dHRvblR5cGU6OmtTdG9wQWxsb3dpbmcsIHVp OjpCdXR0b25TdHlsZTo6a1RvbmFsfTsKLSAgIHJldHVybiBidXR0b25zOwotIH0KLSAKLWRpZmYg LXVwIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlz c2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfYXNrX3ZpZXcuY2MudGhhbiBjaHJvbWl1 bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVk ZGVkX3Blcm1pc3Npb25fcHJvbXB0X2Fza192aWV3LmNjCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0 NS41OS9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNz aW9uX3Byb21wdF9hc2tfdmlldy5jYy50aGFuCTIwMjMtMTEtMDEgMjA6NTI6MjkuMDA1NDY0NDk0 ICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvYnJvd3Nlci91aS92aWV3 cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9hc2tfdmlldy5jYwkyMDIz LTExLTAxIDIxOjE0OjEyLjc0MTg1OTYwNCArMDEwMAotQEAgLTU2LDEyICs1NiwxMiBAQCBzdGQ6 OnZlY3RvcjxFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRBc2tWCi0gRW1iZWRkZWRQZXJtaXNzaW9u UHJvbXB0QXNrVmlldzo6R2V0QnV0dG9uc0NvbmZpZ3VyYXRpb24oKSB7Ci0gICBzdGQ6OnZlY3Rv cjxCdXR0b25Db25maWd1cmF0aW9uPiBidXR0b25zOwotICAgaWYgKGJhc2U6OkZlYXR1cmVMaXN0 OjpJc0VuYWJsZWQocGVybWlzc2lvbnM6OmZlYXR1cmVzOjprT25lVGltZVBlcm1pc3Npb24pKSB7 Ci0tICAgIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKAotKyAgICBidXR0b25zLmVtcGxhY2VfYmFjaygp ID0gewotICAgICAgICAgbDEwbl91dGlsOjpHZXRTdHJpbmdVVEYxNihJRFNfUEVSTUlTU0lPTl9B TExPV19USElTX1RJTUUpLAotLSAgICAgICAgQnV0dG9uVHlwZTo6a0FsbG93VGhpc1RpbWUsIHVp OjpCdXR0b25TdHlsZTo6a1RvbmFsKTsKLSsgICAgICAgIEJ1dHRvblR5cGU6OmtBbGxvd1RoaXNU aW1lLCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbH07Ci0gICB9Ci0tICBidXR0b25zLmVtcGxhY2Vf YmFjayhsMTBuX3V0aWw6OkdldFN0cmluZ1VURjE2KElEU19QRVJNSVNTSU9OX0FMTE9XKSwKLS0g ICAgICAgICAgICAgICAgICAgICAgIEJ1dHRvblR5cGU6OmtBbGxvdywgdWk6OkJ1dHRvblN0eWxl OjprVG9uYWwpOwotKyAgYnV0dG9ucy5lbXBsYWNlX2JhY2soKSA9IHtsMTBuX3V0aWw6OkdldFN0 cmluZ1VURjE2KElEU19QRVJNSVNTSU9OX0FMTE9XKSwKLSsgICAgICAgICAgICAgICAgICAgICAg IEJ1dHRvblR5cGU6OmtBbGxvdywgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWx9OwotICAgcmV0dXJu IGJ1dHRvbnM7Ci0gfQotIAotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUv YnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9i YXNlX3ZpZXcuaC5tZSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL3VpL3Zp ZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X2Jhc2Vfdmlldy5oCi0t LS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNz aW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9iYXNlX3ZpZXcuaC5tZQkyMDIzLTExLTAx IDIxOjIyOjAyLjIyMjY0NjkwMyArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY2hy b21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9t cHRfYmFzZV92aWV3LmgJMjAyMy0xMS0wMSAyMToxOTo1OC43Njk2MTkzOTMgKzAxMDAKLUBAIC03 Miw2ICs3Miw3IEBAIGNsYXNzIEVtYmVkZGVkUGVybWlzc2lvblByb21wdEJhc2VWaWV3IDoKLSAg IHN0cnVjdCBSZXF1ZXN0TGluZUNvbmZpZ3VyYXRpb24gewotICAgICBjb25zdCByYXdfcHRyPGNv bnN0IGdmeDo6VmVjdG9ySWNvbj4gaWNvbjsKLSAgICAgc3RkOjp1MTZzdHJpbmcgbWVzc2FnZTsK LSsgICAgUmVxdWVzdExpbmVDb25maWd1cmF0aW9uKGF1dG8gaSwgYXV0byBtKSA6IGljb24oaSks IG1lc3NhZ2UobSkgeyB9Ci0gICB9OwotIAotICAgc3RydWN0IEJ1dHRvbkNvbmZpZ3VyYXRpb24g ewotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvYnJvd3Nlci91aS92aWV3 cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9wb2xpY3lfdmlldy5jYy50 aGFuIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlz c2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfcG9saWN5X3ZpZXcuY2MKLS0tLSBjaHJv bWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2Vt YmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X3BvbGljeV92aWV3LmNjLnRoYW4JMjAyMy0xMS0wMSAy MToyNTozMS4xMTg2MjY0NzMgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9t ZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0 X3BvbGljeV92aWV3LmNjCTIwMjMtMTEtMDEgMjE6MzA6MDYuMzgzMzQwMjc0ICswMTAwCi1AQCAt NDgsOCArNDgsOCBAQCBFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRQb2xpY3lWaWV3OjpHZXRSCi0g c3RkOjp2ZWN0b3I8RW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0UG9saWN5Vmlldzo6QnV0dG9uQ29u ZmlndXJhdGlvbj4KLSBFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRQb2xpY3lWaWV3OjpHZXRCdXR0 b25zQ29uZmlndXJhdGlvbigpIHsKLSAgIHN0ZDo6dmVjdG9yPEJ1dHRvbkNvbmZpZ3VyYXRpb24+ IGJ1dHRvbnM7Ci0tICBidXR0b25zLmVtcGxhY2VfYmFjayhsMTBuX3V0aWw6OkdldFN0cmluZ1VU RjE2KElEU19FTUJFRERFRF9QUk9NUFRfT0tfTEFCRUwpLAotLSAgICAgICAgICAgICAgICAgICAg ICAgQnV0dG9uVHlwZTo6a1BvbGljeU9LLCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbCk7Ci0rICBi dXR0b25zLmVtcGxhY2VfYmFjaygpID0ge2wxMG5fdXRpbDo6R2V0U3RyaW5nVVRGMTYoSURTX0VN QkVEREVEX1BST01QVF9PS19MQUJFTCksCi0rICAgICAgICAgICAgICAgICAgICAgICBCdXR0b25U eXBlOjprUG9saWN5T0ssIHVpOjpCdXR0b25TdHlsZTo6a1RvbmFsfTsKLSAgIHJldHVybiBidXR0 b25zOwotIH0KLSAKCmRpZmYgLS1naXQgYS9jaHJvbWl1bS0xMTktbnVsbHB0cl90LXdpdGhvdXQt bmFtZXNwYWNlLXN0ZC5wYXRjaCBiL2Nocm9taXVtLTExOS1udWxscHRyX3Qtd2l0aG91dC1uYW1l c3BhY2Utc3RkLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1Y2I5NjlmLi4w MDAwMDAwCi0tLSBhL2Nocm9taXVtLTExOS1udWxscHRyX3Qtd2l0aG91dC1uYW1lc3BhY2Utc3Rk LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotZGlmZiAtdXAgY2hyb21pdW0t MTE5LjAuNjA0NS41OS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL3BhaW50L2ZyYWdt ZW50X2RhdGFfaXRlcmF0b3IuaC5tZSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L3RoaXJkX3BhcnR5 L2JsaW5rL3JlbmRlcmVyL2NvcmUvcGFpbnQvZnJhZ21lbnRfZGF0YV9pdGVyYXRvci5oCi0tLS0g Y2hyb21pdW0tMTE5LjAuNjA0NS41OS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL3Bh aW50L2ZyYWdtZW50X2RhdGFfaXRlcmF0b3IuaC5tZQkyMDIzLTEwLTI3IDIwOjA3OjE2LjQyMTIz MDgxNSArMDIwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuNTkvdGhpcmRfcGFydHkvYmxpbmsv cmVuZGVyZXIvY29yZS9wYWludC9mcmFnbWVudF9kYXRhX2l0ZXJhdG9yLmgJMjAyMy0xMC0yNyAy MDowNzozNi44ODM2MDAwODUgKzAyMDAKLUBAIC01Miw3ICs1Miw3IEBAIGNsYXNzIEZyYWdtZW50 RGF0YUl0ZXJhdG9yCi0gIHB1YmxpYzoKLSAgIGV4cGxpY2l0IEZyYWdtZW50RGF0YUl0ZXJhdG9y KGNvbnN0IExheW91dE9iamVjdCYgb2JqZWN0KQotICAgICAgIDogRnJhZ21lbnREYXRhSXRlcmF0 b3JCYXNlKCZvYmplY3QuRmlyc3RGcmFnbWVudCgpKSB7fQotLSAgZXhwbGljaXQgRnJhZ21lbnRE YXRhSXRlcmF0b3IobnVsbHB0cl90KQotKyAgZXhwbGljaXQgRnJhZ21lbnREYXRhSXRlcmF0b3Io c3RkOjpudWxscHRyX3QpCi0gICAgICAgOiBGcmFnbWVudERhdGFJdGVyYXRvckJhc2UobnVsbHB0 cikge30KLSB9OwotIAotQEAgLTYzLDcgKzYzLDcgQEAgY2xhc3MgTXV0YWJsZUZyYWdtZW50RGF0 YUl0ZXJhdG9yCi0gICBleHBsaWNpdCBNdXRhYmxlRnJhZ21lbnREYXRhSXRlcmF0b3IoY29uc3Qg TGF5b3V0T2JqZWN0JiBvYmplY3QpCi0gICAgICAgOiBGcmFnbWVudERhdGFJdGVyYXRvckJhc2Uo Ci0gICAgICAgICAgICAgJm9iamVjdC5HZXRNdXRhYmxlRm9yUGFpbnRpbmcoKS5GaXJzdEZyYWdt ZW50KCkpIHt9Ci0tICBleHBsaWNpdCBNdXRhYmxlRnJhZ21lbnREYXRhSXRlcmF0b3IobnVsbHB0 cl90KQotKyAgZXhwbGljaXQgTXV0YWJsZUZyYWdtZW50RGF0YUl0ZXJhdG9yKHN0ZDo6bnVsbHB0 cl90KQotICAgICAgIDogRnJhZ21lbnREYXRhSXRlcmF0b3JCYXNlKG51bGxwdHIpIHt9Ci0gfTsK LSAKCmRpZmYgLS1naXQgYS9jaHJvbWl1bS0xMTktbnZpZGlhLXVzZS1zZXBhcmF0ZS1iby10by12 ZXJpZnktbW9kaWZpZXIucGF0Y2ggYi9jaHJvbWl1bS0xMTktbnZpZGlhLXVzZS1zZXBhcmF0ZS1i by10by12ZXJpZnktbW9kaWZpZXIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDcxN2Q4OTcuLjAwMDAwMDAKLS0tIGEvY2hyb21pdW0tMTE5LW52aWRpYS11c2Utc2VwYXJhdGUt Ym8tdG8tdmVyaWZ5LW1vZGlmaWVyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTY0ICswLDAg QEAKLWNvbW1pdCBiZGNjMjNlMGE1ZTdlMjIwNjYwZDNmNTRjOTcyNjJmOWE0YzMxNjA2Ci1BdXRo b3I6IE5pY2sgRGllZ28gWWFtYW5lIDxuaWNrZGllZ29AaWdhbGlhLmNvbT4KLURhdGU6ICAgVGh1 IE5vdiAyIDE3OjI2OjI1IDIwMjMgKzAwMDAKLQotICAgIGdibTogbnZpZGlhOiB1c2Ugc2VwYXJh dGUgYm8gdG8gdmVyaWZ5IG1vZGlmaWVycwotICAgIAotICAgIEJ1Z2d5IE52aWRpYSBkcml2ZXJz IGZhaWwgdG8gcmV0dXJuIEZEcyBmb3IgcGxhbmVzIG9mIGEgQk8gd2hpY2ggaGFkCi0gICAgYWxy ZWFkeSBhbiBpbXBvcnRlZCBCTyBkZXN0cm95ZWQgYmVmb3JlLiBUaGlzIGlzIGEgd29ya2Fyb3Vu ZCBmb3IgdGhhdAotICAgIGlzc3VlLCB3aGljaCBjb25zaXN0cyBvZiBjcmVhdGluZy9kZXN0cm95 aW5nIGEgc2VwYXJhdGUgMXgxIEJPIGZvcgotICAgIHZhbGlkYXRpbmcgdGhlIG1vZGlmaWVycyBi ZWZvcmUgYWN0dWFsbHkgY3JlYXRpbmcgdGhlIGZpbmFsIHJlcXVlc3RlZAotICAgIEJPLCB3aGlj aCBmb3Igbm93IGlzIGxpbWl0ZWQgdG8gSVNfTElOVVggYnVpbGRzLgotICAgIAotICAgIFRoZSBO dmlkaWEgZHJpdmVyIGJ1ZyBpcyBiZWluZyB0cmFja2VkIHVuZGVyIGludGVybmFsIGJ1ZyA0MzE1 NTI5LiBUaGVyZQotICAgIHNlZW1zIHRvIGJlIG90aGVyIGlzc3VlcyB3aGVuIHJ1bm5pbmcgdW5k ZXIgV2F5bGFuZCB3aXRoIE52aWRpYSwgd2hpY2gKLSAgICB3aWxsIGJlIHRyYWNrZWQgYW5kIGFk ZHJlc3NlZCBpbiBzZXBhcmF0ZSBwYXRjaGVzLgotICAgIAotICAgIFI9ZGNhc3RhZ25hLCBtc2lz b3ZAaWdhbGlhLmNvbQotICAgIAotICAgICAgd2l0aCBvem9uZS93YXlsYW5kIGJhY2tlbmQgYW5k IHZlcmlmeSBHUFUgYWNjZWxlcmF0aW9uIGlzIG5vdCBicm9rZW4uCi0gICAgCi0gICAgVGVzdDog SW4gYSBzaW5nbGUgTnZpZGlhIEdQVSBzZXR1cCwgd2l0aCBwcm9wcmlldGFyeSBkcml2ZXIsIHJ1 biBDaHJvbWUKLSAgICBCdWc6IDEyNzM3NTgsIDE0Nzg2ODQsIDE0NjM4NTEKLSAgICBDaGFuZ2Ut SWQ6IEk5ZjMyMmJjZjQwYjQ2MGJjZDRlYWQwMmYwNWRkMmU5YThkMjcxY2VhCi0gICAgUmV2aWV3 ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1 bS9zcmMvKy80OTg5NzgyCi0gICAgUmV2aWV3ZWQtYnk6IE1ha3NpbSBTaXNvdiA8bXNpc292QGln YWxpYS5jb20+Ci0gICAgQ29tbWl0LVF1ZXVlOiBOaWNrIFlhbWFuZSA8bmlja2RpZWdvQGlnYWxp YS5jb20+Ci0gICAgQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2hlYWRzL21haW5AeyMxMjE4OTI0 fQotCi1kaWZmIC0tZ2l0IGEvdWkvZ2Z4L2xpbnV4L2dibV93cmFwcGVyLmNjIGIvdWkvZ2Z4L2xp bnV4L2dibV93cmFwcGVyLmNjCi1pbmRleCBiZjkwYjc2NjA1ZjY4Li4xNDkxOGMxOWMwYWIwIDEw MDY0NAotLS0tIGEvdWkvZ2Z4L2xpbnV4L2dibV93cmFwcGVyLmNjCi0rKysgYi91aS9nZngvbGlu dXgvZ2JtX3dyYXBwZXIuY2MKLUBAIC0xMSw2ICsxMSw3IEBACi0gI2luY2x1ZGUgImJhc2UvbG9n Z2luZy5oIgotICNpbmNsdWRlICJiYXNlL21lbW9yeS9yYXdfcHRyLmgiCi0gI2luY2x1ZGUgImJh c2UvbWVtb3J5L3Jhd19wdHJfZXhjbHVzaW9uLmgiCi0rI2luY2x1ZGUgImJhc2UvbnVtZXJpY3Mv c2FmZV9jb252ZXJzaW9ucy5oIgotICNpbmNsdWRlICJiYXNlL3Bvc2l4L2VpbnRyX3dyYXBwZXIu aCIKLSAjaW5jbHVkZSAic2tpYS9leHQvbGVnYWN5X2Rpc3BsYXlfZ2xvYmFscy5oIgotICNpbmNs dWRlICJ0aGlyZF9wYXJ0eS9za2lhL2luY2x1ZGUvY29yZS9Ta1N1cmZhY2UuaCIKLUBAIC03MSw2 ICs3Miw3IEBAIGJhc2U6OlNjb3BlZEZEIEdldFBsYW5lRmRGb3JCbyhnYm1fYm8qIGJvLCBzaXpl X3QgcGxhbmUpIHsKLSAgIGludCByZXQ7Ci0gICAvLyBVc2UgRFJNX1JEV1IgdG8gYWxsb3cgdGhl IGZkIHRvIGJlIG1hcHBhYmxlIGluIGFub3RoZXIgcHJvY2Vzcy4KLSAgIHJldCA9IGRybVByaW1l SGFuZGxlVG9GRChkZXZfZmQsIHBsYW5lX2hhbmRsZSwgRFJNX0NMT0VYRUMgfCBEUk1fUkRXUiwg JmZkKTsKLSsgIFBMT0dfSUYoRVJST1IsIHJldCAhPSAwKSA8PCAiRmFpbGVkIHRvIGdldCBmZCBm b3IgcGxhbmUuIjsKLSAKLSAgIC8vIE9sZGVyIERSTSBpbXBsZW1lbnRhdGlvbnMgYmxvY2tlZCBE Uk1fUkRXUiwgYnV0IGdhdmUgYSByZWFkL3dyaXRlIG1hcHBpbmcKLSAgIC8vIGFueXdheXMKLUBA IC0zMDEsNTggKzMwMyw4MiBAQCBjbGFzcyBEZXZpY2UgZmluYWwgOiBwdWJsaWMgdWk6OkdibURl dmljZSB7Ci0gCi0gICBzdGQ6OnVuaXF1ZV9wdHI8dWk6OkdibUJ1ZmZlcj4gQ3JlYXRlQnVmZmVy V2l0aE1vZGlmaWVycygKLSAgICAgICB1aW50MzJfdCBmb3JtYXQsCi0tICAgICAgY29uc3QgZ2Z4 OjpTaXplJiBzaXplLAotKyAgICAgIGNvbnN0IGdmeDo6U2l6ZSYgcmVxdWVzdGVkX3NpemUsCi0g ICAgICAgdWludDMyX3QgZmxhZ3MsCi0gICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDY0X3Q+ JiBtb2RpZmllcnMpIG92ZXJyaWRlIHsKLS0gICAgaWYgKG1vZGlmaWVycy5lbXB0eSgpKQotLSAg ICAgIHJldHVybiBDcmVhdGVCdWZmZXIoZm9ybWF0LCBzaXplLCBmbGFncyk7Ci0tCi0tICAgIHN0 ZDo6dmVjdG9yPHVpbnQ2NF90PiBmaWx0ZXJlZF9tb2RpZmllcnMgPQotLSAgICAgICAgR2V0Rmls dGVyZWRNb2RpZmllcnMoZm9ybWF0LCBmbGFncywgbW9kaWZpZXJzKTsKLS0gICAgc3RydWN0IGdi bV9ibyogYm8gPSBudWxscHRyOwotLSAgICB3aGlsZSAoZmlsdGVyZWRfbW9kaWZpZXJzLnNpemUo KSA+IDApIHsKLS0gICAgICBibyA9IGdibV9ib19jcmVhdGVfd2l0aF9tb2RpZmllcnMoZGV2aWNl Xywgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmb3JtYXQsIGZpbHRlcmVkX21vZGlmaWVycy5kYXRhKCksCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkX21vZGlmaWVycy5z aXplKCkpOwotLSAgICAgIGlmICghYm8pIHsKLSsgICAgaWYgKG1vZGlmaWVycy5lbXB0eSgpKSB7 Ci0rICAgICAgcmV0dXJuIENyZWF0ZUJ1ZmZlcihmb3JtYXQsIHJlcXVlc3RlZF9zaXplLCBmbGFn cyk7Ci0rICAgIH0KLSsKLSsgICAgLy8gQnVnZ3kgZHJpdmVycyBwcmV2ZW50IHVzIGZyb20gZ2V0 dGluZyBwbGFuZSBGRHMgZnJvbSBhIEJPIHdoaWNoIGhhZCBpdHMKLSsgICAgLy8gcHJldmlvdXNs eSBpbXBvcnRlZCBCTyBkZXN0cm95ZWQuIEUuZzogTnZpZGlhLiBUaHVzLCBvbiBMaW51eCBEZXNr dG9wLCB3ZQotKyAgICAvLyBkbyB0aGUgY3JlYXRlL2ltcG9ydCBtb2RpZmllcnMgdmFsaWRhdGlv biBsb29wIGJlbG93IHVzaW5nIGEgc2VwYXJhdGUgc2V0Ci0rICAgIC8vIG9mIDF4MSBCT3Mgd2hp Y2ggYXJlIGRlc3Ryb3llZCBiZWZvcmUgY3JlYXRpbmcgdGhlIGZpbmFsIEJPIGNyZWF0aW9uIHVz ZWQKLSsgICAgLy8gdG8gaW5zdGFudGlhdGUgdGhlIHJldHVybmVkIEdibUJ1ZmZlci4KLSsgICAg Z2Z4OjpTaXplIHNpemUgPQotKyNpZiBCVUlMREZMQUcoSVNfTElOVVgpCi0rICAgICAgICBnZng6 OlNpemUoMSwgMSk7Ci0rI2Vsc2UKLSsgICAgICAgIHJlcXVlc3RlZF9zaXplOwotKyNlbmRpZgot KyAgICBhdXRvIGZpbHRlcmVkX21vZGlmaWVycyA9IEdldEZpbHRlcmVkTW9kaWZpZXJzKGZvcm1h dCwgZmxhZ3MsIG1vZGlmaWVycyk7Ci0rICAgIHN0cnVjdCBnYm1fYm8qIGNyZWF0ZWRfYm8gPSBu dWxscHRyOwotKyAgICBib29sIHZhbGlkX21vZGlmaWVycyA9IGZhbHNlOwotKwotKyAgICB3aGls ZSAoIXZhbGlkX21vZGlmaWVycyAmJiAhZmlsdGVyZWRfbW9kaWZpZXJzLmVtcHR5KCkpIHsKLSsg ICAgICBjcmVhdGVkX2JvID0gZ2JtX2JvX2NyZWF0ZV93aXRoX21vZGlmaWVycygKLSsgICAgICAg ICAgZGV2aWNlXywgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpLCBmb3JtYXQsCi0rICAgICAg ICAgIGZpbHRlcmVkX21vZGlmaWVycy5kYXRhKCksIGZpbHRlcmVkX21vZGlmaWVycy5zaXplKCkp OwotKyAgICAgIGlmICghY3JlYXRlZF9ibykgewotICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g ICAgICAgfQotIAotLSAgICAgIHN0cnVjdCBnYm1faW1wb3J0X2ZkX21vZGlmaWVyX2RhdGEgZmRf ZGF0YTsKLS0gICAgICBmZF9kYXRhLndpZHRoID0gc2l6ZS53aWR0aCgpOwotLSAgICAgIGZkX2Rh dGEuaGVpZ2h0ID0gc2l6ZS5oZWlnaHQoKTsKLS0gICAgICBmZF9kYXRhLmZvcm1hdCA9IGZvcm1h dDsKLS0gICAgICBmZF9kYXRhLm51bV9mZHMgPSBnYm1fYm9fZ2V0X3BsYW5lX2NvdW50KGJvKTsK LS0gICAgICBmZF9kYXRhLm1vZGlmaWVyID0gZ2JtX2JvX2dldF9tb2RpZmllcihibyk7Ci0tCi0t ICAgICAgLy8gU3RvcmUgZmRzIGluIHRoZSB2ZWN0b3Igb2YgYmFzZTo6U2NvcGVkRkRzLiBXaWxs IGJlIHJlbGVhc2VkCi0tICAgICAgLy8gYXV0b21hdGljYWxseS4KLSsgICAgICBjb25zdCBpbnQg cGxhbmVzX2NvdW50ID0gZ2JtX2JvX2dldF9wbGFuZV9jb3VudChjcmVhdGVkX2JvKTsKLSsgICAg ICBzdHJ1Y3QgZ2JtX2ltcG9ydF9mZF9tb2RpZmllcl9kYXRhIGZkX2RhdGEgPSB7Ci0rICAgICAg ICAgIC53aWR0aCA9IGJhc2U6OmNoZWNrZWRfY2FzdDx1aW50MzJfdD4oc2l6ZS53aWR0aCgpKSwK LSsgICAgICAgICAgLmhlaWdodCA9IGJhc2U6OmNoZWNrZWRfY2FzdDx1aW50MzJfdD4oc2l6ZS5o ZWlnaHQoKSksCi0rICAgICAgICAgIC5mb3JtYXQgPSBmb3JtYXQsCi0rICAgICAgICAgIC5udW1f ZmRzID0gYmFzZTo6Y2hlY2tlZF9jYXN0PHVpbnQzMl90PihwbGFuZXNfY291bnQpLAotKyAgICAg ICAgICAubW9kaWZpZXIgPSBnYm1fYm9fZ2V0X21vZGlmaWVyKGNyZWF0ZWRfYm8pfTsKLSsgICAg ICAvLyBTdG9yZSBmZHMgaW4gYSBiYXNlOjpTY29wZWRGRHMgdmVjdG9yLiBXaWxsIGJlIHJlbGVh c2VkIGF1dG9tYXRpY2FsbHkuCi0gICAgICAgc3RkOjp2ZWN0b3I8YmFzZTo6U2NvcGVkRkQ+IGZk czsKLSAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0YXRpY19jYXN0PHNpemVfdD4oZmRf ZGF0YS5udW1fZmRzKTsgKytpKSB7Ci0tICAgICAgICBmZHMuZW1wbGFjZV9iYWNrKEdldFBsYW5l RmRGb3JCbyhibywgaSkpOwotKyAgICAgICAgZmRzLmVtcGxhY2VfYmFjayhHZXRQbGFuZUZkRm9y Qm8oY3JlYXRlZF9ibywgaSkpOwotICAgICAgICAgZmRfZGF0YS5mZHNbaV0gPSBmZHMuYmFjaygp LmdldCgpOwotLSAgICAgICAgZmRfZGF0YS5zdHJpZGVzW2ldID0gZ2JtX2JvX2dldF9zdHJpZGVf Zm9yX3BsYW5lKGJvLCBpKTsKLS0gICAgICAgIGZkX2RhdGEub2Zmc2V0c1tpXSA9IGdibV9ib19n ZXRfb2Zmc2V0KGJvLCBpKTsKLSsgICAgICAgIGZkX2RhdGEuc3RyaWRlc1tpXSA9IGdibV9ib19n ZXRfc3RyaWRlX2Zvcl9wbGFuZShjcmVhdGVkX2JvLCBpKTsKLSsgICAgICAgIGZkX2RhdGEub2Zm c2V0c1tpXSA9IGdibV9ib19nZXRfb2Zmc2V0KGNyZWF0ZWRfYm8sIGkpOwotICAgICAgIH0KLSAK LS0gICAgICBzdHJ1Y3QgZ2JtX2JvKiBib19pbXBvcnQgPQotKyAgICAgIHN0cnVjdCBnYm1fYm8q IGltcG9ydGVkX2JvID0KLSAgICAgICAgICAgZ2JtX2JvX2ltcG9ydChkZXZpY2VfLCBHQk1fQk9f SU1QT1JUX0ZEX01PRElGSUVSLCAmZmRfZGF0YSwgZmxhZ3MpOwotLSAgICAgIGlmIChib19pbXBv cnQpIHsKLS0gICAgICAgIGdibV9ib19kZXN0cm95KGJvX2ltcG9ydCk7Ci0tICAgICAgICBicmVh azsKLSsKLSsgICAgICBpZiAoaW1wb3J0ZWRfYm8pIHsKLSsgICAgICAgIHZhbGlkX21vZGlmaWVy cyA9IHRydWU7Ci0rICAgICAgICBnYm1fYm9fZGVzdHJveShpbXBvcnRlZF9ibyk7Ci0gICAgICAg fSBlbHNlIHsKLS0gICAgICAgIGdibV9ib19kZXN0cm95KGJvKTsKLS0gICAgICAgIGJvID0gbnVs bHB0cjsKLSAgICAgICAgIEFkZE1vZGlmaWVyVG9CbG9ja2xpc3QoZm9ybWF0LCBmbGFncywgZmRf ZGF0YS5tb2RpZmllcik7Ci0gICAgICAgICBmaWx0ZXJlZF9tb2RpZmllcnMgPQotICAgICAgICAg ICAgIEdldEZpbHRlcmVkTW9kaWZpZXJzKGZvcm1hdCwgZmxhZ3MsIGZpbHRlcmVkX21vZGlmaWVy cyk7Ci0gICAgICAgfQotKwotKyAgICAgIGlmICghdmFsaWRfbW9kaWZpZXJzIHx8IHNpemUgIT0g cmVxdWVzdGVkX3NpemUpIHsKLSsgICAgICAgIGdibV9ib19kZXN0cm95KGNyZWF0ZWRfYm8pOwot KyAgICAgICAgY3JlYXRlZF9ibyA9IG51bGxwdHI7Ci0rICAgICAgfQotICAgICB9Ci0tICAgIGlm ICghYm8pIHsKLS0gICAgICByZXR1cm4gbnVsbHB0cjsKLSsKLSsgICAgLy8gSWYgbW9kaWZpZXJz IHdlcmUgc3VjY2Vzc2Z1bGx5IHZlcmlmaWVkIHRob3VnaCBgY3JlYXRlZF9ib2AgaXMgbnVsbCBo ZXJlLAotKyAgICAvLyBpdCBpdCBtZWFucyB0aGF0IHRoZSBidWZmZXIgY3JlYXRlZCBmb3IgdmVy aWZpY2F0aW9uIGNvdWxkIG5vdCBiZSByZXVzZWQsCi0rICAgIC8vIGllOiBkaWZmZXJlbnQgc2l6 ZSwgc28gY3JlYXRlIGl0IG5vdyB3aXRoIHRoZSBgcmVxdWVzdGVkX3NpemVgLgotKyAgICBpZiAo dmFsaWRfbW9kaWZpZXJzICYmICFjcmVhdGVkX2JvKSB7Ci0rICAgICAgY3JlYXRlZF9ibyA9IGdi bV9ib19jcmVhdGVfd2l0aF9tb2RpZmllcnMoCi0rICAgICAgICAgIGRldmljZV8sIHJlcXVlc3Rl ZF9zaXplLndpZHRoKCksIHJlcXVlc3RlZF9zaXplLmhlaWdodCgpLCBmb3JtYXQsCi0rICAgICAg ICAgIGZpbHRlcmVkX21vZGlmaWVycy5kYXRhKCksIGZpbHRlcmVkX21vZGlmaWVycy5zaXplKCkp OwotKyAgICAgIFBMT0dfSUYoRVJST1IsICFjcmVhdGVkX2JvKSA8PCAiRmFpbGVkIHRvIGNyZWF0 ZSBCTyB3aXRoIG1vZGlmaWVycy4iOwotICAgICB9Ci0gCi0tICAgIHJldHVybiBDcmVhdGVCdWZm ZXJGb3JCTyhibywgZm9ybWF0LCBzaXplLCBmbGFncyk7Ci0rICAgIHJldHVybiBjcmVhdGVkX2Jv ID8gQ3JlYXRlQnVmZmVyRm9yQk8oY3JlYXRlZF9ibywgZm9ybWF0LCBzaXplLCBmbGFncykKLSsg ICAgICAgICAgICAgICAgICAgICAgOiBudWxscHRyOwotICAgfQotIAotICAgc3RkOjp1bmlxdWVf cHRyPHVpOjpHYm1CdWZmZXI+IENyZWF0ZUJ1ZmZlckZyb21IYW5kbGUoCgpkaWZmIC0tZ2l0IGEv Y2hyb21pdW0tMTE5LXN5c3RlbS1saWJ1c2IucGF0Y2ggYi9jaHJvbWl1bS0xMTktc3lzdGVtLWxp YnVzYi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDE0N2ZlMC4uMDAwMDAw MAotLS0gYS9jaHJvbWl1bS0xMTktc3lzdGVtLWxpYnVzYi5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDM5ICswLDAgQEAKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2J1aWxkL2xp bnV4L3VuYnVuZGxlL2xpYnVzYi5nbi5nbnN5c3RlbSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9i dWlsZC9saW51eC91bmJ1bmRsZS9saWJ1c2IuZ24KLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS9idWlsZC9saW51eC91bmJ1bmRsZS9saWJ1c2IuZ24uZ25zeXN0ZW0JMjAyMy0xMS0wNiAxMjoy MjowOC41NTA2MjUzODcgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9idWlsZC9s aW51eC91bmJ1bmRsZS9saWJ1c2IuZ24JMjAyMy0xMS0wNiAxMjoyMjowOC41NTA2MjUzODcgKzAx MDAKLUBAIC0wLDAgKzEsMjQgQEAKLSsjIENvcHlyaWdodCAyMDE2IFRoZSBDaHJvbWl1bSBBdXRo b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg Z292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotKyMgZm91bmQgaW4g dGhlIExJQ0VOU0UgZmlsZS4KLSsKLStpbXBvcnQoIi8vYnVpbGQvY29uZmlnL2xpbnV4L3BrZ19j b25maWcuZ25pIikKLStpbXBvcnQoIi8vYnVpbGQvc2hpbV9oZWFkZXJzLmduaSIpCi0rCi0rcGtn X2NvbmZpZygic3lzdGVtX2xpYnVzYiIpIHsKLSsgIHBhY2thZ2VzID0gWyAibGlidXNiLTEuMCIg XQotK30KLSsKLStzaGltX2hlYWRlcnMoImxpYnVzYl9zaGltIikgewotKyAgcm9vdF9wYXRoID0g InNyYy9saWJ1c2IiCi0rICBoZWFkZXJzID0gWwotKyAgICAibGlidXNiLmgiLAotKyAgXQotK30K LSsKLStzb3VyY2Vfc2V0KCJsaWJ1c2IiKSB7Ci0rICBkZXBzID0gWwotKyAgICAiOmxpYnVzYl9z aGltIiwKLSsgIF0KLSsgIHB1YmxpY19jb25maWdzID0gWyAiOnN5c3RlbV9saWJ1c2IiIF0KLSt9 Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9idWlsZC9saW51eC91bmJ1bmRsZS9y ZXBsYWNlX2duX2ZpbGVzLnB5Lmduc3lzdGVtIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2J1aWxk L2xpbnV4L3VuYnVuZGxlL3JlcGxhY2VfZ25fZmlsZXMucHkKLS0tLSBjaHJvbWl1bS0xMTkuMC42 MDQ1LjEwNS9idWlsZC9saW51eC91bmJ1bmRsZS9yZXBsYWNlX2duX2ZpbGVzLnB5Lmduc3lzdGVt CTIwMjMtMTEtMDYgMTI6MjI6MDguNTUwNjI1Mzg3ICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAu NjA0NS4xMDUvYnVpbGQvbGludXgvdW5idW5kbGUvcmVwbGFjZV9nbl9maWxlcy5weQkyMDIzLTEx LTA2IDEyOjI4OjI4LjI5NTc3NjUwMSArMDEwMAotQEAgLTU0LDYgKzU0LDcgQEAgUkVQTEFDRU1F TlRTID0gewotICAgJ2xpYmV2ZW50JzogJ3RoaXJkX3BhcnR5L2xpYmV2ZW50L0JVSUxELmduJywK LSAgICdsaWJqcGVnJzogJ3RoaXJkX3BhcnR5L2xpYmpwZWcuZ25pJywKLSAgICdsaWJwbmcnOiAn dGhpcmRfcGFydHkvbGlicG5nL0JVSUxELmduJywKLSsgICdsaWJ1c2InOiAndGhpcmRfcGFydHkv bGlidXNiL0JVSUxELmduJywKLSAgICdsaWJ2cHgnOiAndGhpcmRfcGFydHkvbGlidnB4L0JVSUxE LmduJywKLSAgICdsaWJ3ZWJwJzogJ3RoaXJkX3BhcnR5L2xpYndlYnAvQlVJTEQuZ24nLAotICAg J2xpYnhtbCc6ICd0aGlyZF9wYXJ0eS9saWJ4bWwvQlVJTEQuZ24nLAoKZGlmZiAtLWdpdCBhL2No cm9taXVtLTEyMC1hcm02NC1tZW1vcnlfdGFnZ2luZy5wYXRjaCBiL2Nocm9taXVtLTEyMC1hcm02 NC1tZW1vcnlfdGFnZ2luZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5iYjQ2MWVmCi0tLSAvZGV2L251bGwKKysrIGIvY2hyb21pdW0tMTIwLWFybTY0LW1lbW9yeV90 YWdnaW5nLnBhdGNoCkBAIC0wLDAgKzEsMTQgQEAKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjM1 L2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3Ivc3JjL3BhcnRpdGlvbl9hbGxvYy9w YXJ0aXRpb25fYWxsb2NfY29uZmlnLmgudGhhbgkyMDIzLTExLTI2IDEzOjUwOjA3LjAwNTUxOTg3 NyArMDEwMAorKysrIGNocm9taXVtLTEyMC4wLjYwOTkuMzUvYmFzZS9hbGxvY2F0b3IvcGFydGl0 aW9uX2FsbG9jYXRvci9zcmMvcGFydGl0aW9uX2FsbG9jL3BhcnRpdGlvbl9hbGxvY19jb25maWcu aAkyMDIzLTExLTI2IDEzOjUwOjQ5LjcyNzI2NzI0MCArMDEwMAorQEAgLTE1MiwxMCArMTUyLDcg QEAKKyAgICghQlVJTERGTEFHKFBVVF9SRUZfQ09VTlRfSU5fUFJFVklPVVNfU0xPVCkgJiYgXAor ICAgIGRlZmluZWQoQVJDSF9DUFVfTElUVExFX0VORElBTikpCisgCistI2RlZmluZSBQQV9DT05G SUdfSEFTX01FTU9SWV9UQUdHSU5HKCkgICAgICAgICAgICAgIFwKKy0gIChkZWZpbmVkKEFSQ0hf Q1BVX0FSTTY0KSAmJiBkZWZpbmVkKF9fY2xhbmdfXykgJiYgXAorLSAgICFkZWZpbmVkKEFERFJF U1NfU0FOSVRJWkVSKSAmJiAgICAgICAgICAgICAgICAgICBcCistICAgKEJVSUxERkxBRyhJU19M SU5VWCkgfHwgQlVJTERGTEFHKElTX0FORFJPSUQpKSkKKysjZGVmaW5lIFBBX0NPTkZJR19IQVNf TUVNT1JZX1RBR0dJTkcoKSAwCisgCisgI2lmIFBBX0NPTkZJRyhIQVNfTUVNT1JZX1RBR0dJTkcp Cisgc3RhdGljX2Fzc2VydChzaXplb2Yodm9pZCopID09IDgpOwoKZGlmZiAtLWdpdCBhL2Nocm9t aXVtLTEyMC1kaXNhYmxlLUZGbXBlZ0FsbG93TGlzdHMucGF0Y2ggYi9jaHJvbWl1bS0xMjAtZGlz YWJsZS1GRm1wZWdBbGxvd0xpc3RzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjk4MjE2ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9jaHJvbWl1bS0xMjAtZGlzYWJsZS1G Rm1wZWdBbGxvd0xpc3RzLnBhdGNoCkBAIC0wLDAgKzEsMTIgQEAKK2RpZmYgLXVwIGNocm9taXVt LTEyMC4wLjYwOTkuNTYvbWVkaWEvYmFzZS9tZWRpYV9zd2l0Y2hlcy5jYy5tZSBjaHJvbWl1bS0x MjAuMC42MDk5LjU2L21lZGlhL2Jhc2UvbWVkaWFfc3dpdGNoZXMuY2MKKy0tLSBjaHJvbWl1bS0x MjAuMC42MDk5LjU2L21lZGlhL2Jhc2UvbWVkaWFfc3dpdGNoZXMuY2MubWUJMjAyMy0xMi0wMiAx MTo0MzoyMS45OTA3NzU4OTcgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L21lZGlh L2Jhc2UvbWVkaWFfc3dpdGNoZXMuY2MJMjAyMy0xMi0wMiAxMTo0NToyMy4yNDgwMDYzNzcgKzAx MDAKK0BAIC0xNjM2LDcgKzE2MzYsNyBAQCBCQVNFX0ZFQVRVUkUoa1VzZVNoYXJlZEltYWdlc0Zv clBlcHBlclZpCisgLy8gRW5hYmxlcyBGRm1wZWcgYWxsb3cgbGlzdHMgZm9yIHN1cHBvcnRlZCBj b2RlY3MgLyBjb250YWluZXJzLgorIEJBU0VfRkVBVFVSRShrRkZtcGVnQWxsb3dMaXN0cywKKyAg ICAgICAgICAgICAgIkZGbXBlZ0FsbG93TGlzdHMiLAorLSAgICAgICAgICAgICBiYXNlOjpGRUFU VVJFX0VOQUJMRURfQllfREVGQVVMVCk7CisrICAgICAgICAgICAgIGJhc2U6OkZFQVRVUkVfRElT QUJMRURfQllfREVGQVVMVCk7CisgCisgI2lmIEJVSUxERkxBRyhFTkFCTEVfRkZNUEVHX1ZJREVP X0RFQ09ERVJTKQorIC8vIEFsbG93cyBkZWNvZGluZyBvZiB0aGVvcmEgLyB2cDMgY29udGVudC4K CmRpZmYgLS1naXQgYS9jaHJvbWl1bS0xMjAtZGlzYWJsZS1HbG9iYWxNZWRpYUNvbnRyb2xzQ2Fz dFN0YXJ0U3RvcC5wYXRjaCBiL2Nocm9taXVtLTEyMC1kaXNhYmxlLUdsb2JhbE1lZGlhQ29udHJv bHNDYXN0U3RhcnRTdG9wLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjZhMjU4NWIKLS0tIC9kZXYvbnVsbAorKysgYi9jaHJvbWl1bS0xMjAtZGlzYWJsZS1HbG9iYWxN ZWRpYUNvbnRyb2xzQ2FzdFN0YXJ0U3RvcC5wYXRjaApAQCAtMCwwICsxLDE0IEBACistLS0gY2hy b21pdW0tMTIwLjAuNjA5OS4zNS9jaHJvbWUvYnJvd3Nlci9tZWRpYS9yb3V0ZXIvbWVkaWFfcm91 dGVyX2ZlYXR1cmUuY2Mub3JpZwkyMDIzLTExLTI2IDEzOjI1OjM0LjcyNDIyODc1NSArMDEwMAor KysrIGNocm9taXVtLTEyMC4wLjYwOTkuMzUvY2hyb21lL2Jyb3dzZXIvbWVkaWEvcm91dGVyL21l ZGlhX3JvdXRlcl9mZWF0dXJlLmNjCTIwMjMtMTEtMjYgMTM6Mjg6MjYuNDUyMzU5MTQ2ICswMTAw CitAQCAtNzEsMTEgKzcxLDcgQEAKKyAvLyBUT0RPKGIvMjAyMjk0OTQ2KTogUmVtb3ZlIHdoZW4g ZW5hYmxlZCBieSBkZWZhdWx0IG9uIENocm9tZU9TLgorIEJBU0VfRkVBVFVSRShrR2xvYmFsTWVk aWFDb250cm9sc0Nhc3RTdGFydFN0b3AsCisgICAgICAgICAgICAgICJHbG9iYWxNZWRpYUNvbnRy b2xzQ2FzdFN0YXJ0U3RvcCIsCistI2lmIEJVSUxERkxBRyhJU19DSFJPTUVPUykKKyAgICAgICAg ICAgICAgYmFzZTo6RkVBVFVSRV9ESVNBQkxFRF9CWV9ERUZBVUxUKTsKKy0jZWxzZQorLSAgICAg ICAgICAgICBiYXNlOjpGRUFUVVJFX0VOQUJMRURfQllfREVGQVVMVCk7CistI2VuZGlmICAvLyBC VUlMREZMQUcoSVNfQ0hST01FT1MpCisgI2VuZGlmICAvLyAhQlVJTERGTEFHKElTX0FORFJPSUQp CisgCisgbmFtZXNwYWNlIHsKCmRpZmYgLS1naXQgYS9jaHJvbWl1bS0xMjAtZWw3LWNsYW5nLWJ1 aWxkLWZhaWx1cmUucGF0Y2ggYi9jaHJvbWl1bS0xMjAtZWw3LWNsYW5nLWJ1aWxkLWZhaWx1cmUu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTYyNThlNgotLS0gL2Rl di9udWxsCisrKyBiL2Nocm9taXVtLTEyMC1lbDctY2xhbmctYnVpbGQtZmFpbHVyZS5wYXRjaApA QCAtMCwwICsxLDIzMCBAQAorY29tbWl0IDU3NTI2YjhkYzQ1YjJlNmM2N2JiYTczMDZmMWRkZTcz YjFmMjkxMGMKK0F1dGhvcjogc2lzaWRvdnNraSA8c2lzaWRvdnNraUBjaHJvbWl1bS5vcmc+CitE YXRlOiAgIFR1ZSBPY3QgMjQgMDk6MzI6NDkgMjAyMyArMDAwMAorCisgICAgUmVtb3ZlIHVudXNl ZCBpdGVtcyBmcm9tIHRoZSBSYWNlTmV0d29ya1JlcXVlc3QgaGFzaG1hcAorICAgIAorICAgIFdo ZW4gdGhlIEF1dG9QcmVsb2FkIG9yIHRoZSByYWNlLW5ldHdvcmstYW5kLWZldGNoLWhhbmRsZXIg b3B0aW9uIGluIHRoZQorICAgIHN0YXRpYyByb3V0aW5nIEFQSSBpcyBlbmFibGVkLCBuZXR3b3Jr IHJlcXVlc3RzIGFyZSBkaXNwYXRjaGVkIGFuZAorICAgIFVSTExvYWRlckZhY3RvcmllcyBhcmUg aGVsZCBpbiBhIGhhc2htYXAgaW4gU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLgorICAgIFRob3Nl IGFyZSBjb25zdW1lZCBpbnNpZGUgdGhlIGZldGNoIGhhbmRsZXIgd2hlbiBmZXRjaChlLnJlcXVl c3QpIGlzCisgICAgY2FsbGVkLiBCdXQgaWYgdGhlIGZldGNoIGhhbmRsZXIgZG9lc24ndCBjYWxs IGZldGNoKCkgZS5nLiBmYWxsYmFjaywKKyAgICB0aG9zZSBoYXNobWFwIGl0ZW1zIGRvZXMgbm90 IGhhdmUgYSBjaGFuY2UgdG8gYmUgcmVtb3ZlZC4KKyAgICAKKyAgICBUaGlzIENMIGNoYW5nZXMg dGhlIGhhc2htYXAgaXRlbXMgdG8gYmUgcmVtb3ZlZCB3aGVuIHRoZSBmZXRjaCBldmVudAorICAg IGZpbmlzaGVzLCBhbmQgdGhlIFVSTExvYWRlckZhY3RvcnkgaXMgc3RpbGwgbm90IGNvbnN1bWVk IGF0IHRoYXQgdGltZS4KKyAgICBUaGlzIG1heSBsb29zZSB0aGUgZGVkdXBlIGNhcGFiaWxpdHkg aWYgZmV0Y2goKSBpcyBjYWxsZWQgbGF0ZXIgZS5nLgorICAgIHNldFRpbWVvdXQoKCkgPT4gZmV0 Y2goKSksIGJ1dCBpdCBtYWtlcyBzZW5zZSB0byBwcmlvcml0aXplIGtlZXBpbmcgdGhlCisgICAg aGFzaG1hcCBzbWFsbC4KKyAgICAKKyAgICBDaGFuZ2UtSWQ6IEk1MWJkYzlkNWViNTE4NWYyYjVi NGRmNmVlNzg1NzE1YjExODBjODQ4CisgICAgQnVnOiAxNDkyNjQwCisgICAgUmV2aWV3ZWQtb246 IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMv Ky80OTY0ODQwCisgICAgUmV2aWV3ZWQtYnk6IE1pbm9ydSBDaGlrYW11bmUgPGNoaWthbXVuZUBj aHJvbWl1bS5vcmc+CisgICAgQ29tbWl0LVF1ZXVlOiBZb3NoaXNhdG8gWWFuYWdpc2F3YSA8eXlh bmFnaXNhd2FAY2hyb21pdW0ub3JnPgorICAgIFJldmlld2VkLWJ5OiBZb3NoaXNhdG8gWWFuYWdp c2F3YSA8eXlhbmFnaXNhd2FAY2hyb21pdW0ub3JnPgorICAgIENyLUNvbW1pdC1Qb3NpdGlvbjog cmVmcy9oZWFkcy9tYWluQHsjMTIxNDA2NH0KKworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2Js aW5rL3JlbmRlcmVyL21vZHVsZXMvc2VydmljZV93b3JrZXIvc2VydmljZV93b3JrZXJfZ2xvYmFs X3Njb3BlLmNjIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvbW9kdWxlcy9zZXJ2aWNlX3dv cmtlci9zZXJ2aWNlX3dvcmtlcl9nbG9iYWxfc2NvcGUuY2MKK2luZGV4IDAyODg3ZWRjMTA4ODMu LmIzNjI0ZmMwMTYyZGYgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9t b2R1bGVzL3NlcnZpY2Vfd29ya2VyL3NlcnZpY2Vfd29ya2VyX2dsb2JhbF9zY29wZS5jYworKysr IGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvbW9kdWxlcy9zZXJ2aWNlX3dvcmtlci9zZXJ2 aWNlX3dvcmtlcl9nbG9iYWxfc2NvcGUuY2MKK0BAIC00Niw2ICs0Niw3IEBACisgI2luY2x1ZGUg InNlcnZpY2VzL25ldHdvcmsvcHVibGljL2NwcC9jcm9zc19vcmlnaW5fZW1iZWRkZXJfcG9saWN5 LmgiCisgI2luY2x1ZGUgInNlcnZpY2VzL25ldHdvcmsvcHVibGljL21vam9tL2Nvb2tpZV9tYW5h Z2VyLm1vam9tLWJsaW5rLmgiCisgI2luY2x1ZGUgInNlcnZpY2VzL25ldHdvcmsvcHVibGljL21v am9tL2Nyb3NzX29yaWdpbl9lbWJlZGRlcl9wb2xpY3kubW9qb20uaCIKKysjaW5jbHVkZSAic2Vy dmljZXMvbmV0d29yay9wdWJsaWMvbW9qb20vdXJsX2xvYWRlcl9mYWN0b3J5Lm1vam9tLWJsaW5r LmgiCisgI2luY2x1ZGUgInRoaXJkX3BhcnR5L2JsaW5rL3B1YmxpYy9jb21tb24vZmVhdHVyZXMu aCIKKyAjaW5jbHVkZSAidGhpcmRfcGFydHkvYmxpbmsvcHVibGljL21vam9tL2ZldGNoL2ZldGNo X2FwaV9yZXF1ZXN0Lm1vam9tLWJsaW5rLmgiCisgI2luY2x1ZGUgInRoaXJkX3BhcnR5L2JsaW5r L3B1YmxpYy9tb2pvbS9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbi5tb2pvbS1ibGluay5oIgor QEAgLTEwOTYsNiArMTA5NywxMCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6RGlk SGFuZGxlRmV0Y2hFdmVudCgKKyAgICAgICBUUkFDRV9JRF9XSVRIX1NDT1BFKGtTZXJ2aWNlV29y a2VyR2xvYmFsU2NvcGVUcmFjZVNjb3BlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJB Q0VfSURfTE9DQUwoZXZlbnRfaWQpKSwKKyAgICAgICBUUkFDRV9FVkVOVF9GTEFHX0ZMT1dfSU4s ICJzdGF0dXMiLCBNb2pvRW51bVRvU3RyaW5nKHN0YXR1cykpOworKworKyAgLy8gRGVsZXRlIHRo ZSBVUkxMb2FkZXJGYWN0b3J5IGZvciB0aGUgUmFjZU5ldHdvcmtSZXF1ZXN0IGlmIGl0J3Mgbm90 IHVzZWQuCisrICBSZW1vdmVJdGVtRnJvbVJhY2VOZXR3b3JrUmVxdWVzdHMoZXZlbnRfaWQpOwor KworICAgaWYgKCFSdW5FdmVudENhbGxiYWNrKCZmZXRjaF9ldmVudF9jYWxsYmFja3NfLCBldmVu dF9xdWV1ZV8uZ2V0KCksIGV2ZW50X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1 cykpIHsKKyAgICAgLy8gVGhlIGV2ZW50IG1heSBoYXZlIGJlZW4gYWJvcnRlZC4gSXRzIHJlc3Bv bnNlIGNhbGxiYWNrIGFsc28gbmVlZHMgdG8gYmUKK0BAIC0xNDk1LDYgKzE1MDAsNyBAQCB2b2lk IFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6QWJvcnRDYWxsYmFja0ZvckZldGNoRXZlbnQoCisg ICAgIHJlc3BvbnNlX2NhbGxiYWNrX2l0ZXItPnZhbHVlLT5UYWtlVmFsdWUoKS5yZXNldCgpOwor ICAgICBmZXRjaF9yZXNwb25zZV9jYWxsYmFja3NfLmVyYXNlKHJlc3BvbnNlX2NhbGxiYWNrX2l0 ZXIpOworICAgfQorKyAgUmVtb3ZlSXRlbUZyb21SYWNlTmV0d29ya1JlcXVlc3RzKGV2ZW50X2lk KTsKKyAKKyAgIC8vIFJ1biB0aGUgZXZlbnQgY2FsbGJhY2sgd2l0aCB0aGUgZXJyb3IgY29kZS4K KyAgIGF1dG8gZXZlbnRfY2FsbGJhY2tfaXRlciA9IGZldGNoX2V2ZW50X2NhbGxiYWNrc18uZmlu ZChldmVudF9pZCk7CitAQCAtMTU1MSw1MiArMTU1NywxMSBAQCB2b2lkIFNlcnZpY2VXb3JrZXJH bG9iYWxTY29wZTo6U3RhcnRGZXRjaEV2ZW50KAorIAorICAgaWYgKHBhcmFtcy0+cmFjZV9uZXR3 b3JrX3JlcXVlc3RfbG9hZGVyX2ZhY3RvcnkgJiYKKyAgICAgICBwYXJhbXMtPnJlcXVlc3QtPnNl cnZpY2Vfd29ya2VyX3JhY2VfbmV0d29ya19yZXF1ZXN0X3Rva2VuKSB7CistICAgIGF1dG8gaW5z ZXJ0X3Jlc3VsdCA9IHJhY2VfbmV0d29ya19yZXF1ZXN0X2xvYWRlcl9mYWN0b3JpZXNfLmluc2Vy dCgKKy0gICAgICAgIFN0cmluZyhwYXJhbXMtPnJlcXVlc3QtPnNlcnZpY2Vfd29ya2VyX3JhY2Vf bmV0d29ya19yZXF1ZXN0X3Rva2VuCistICAgICAgICAgICAgICAgICAgIC0+VG9TdHJpbmcoKSks CistICAgICAgICBzdGQ6Om1vdmUocGFyYW1zLT5yYWNlX25ldHdvcmtfcmVxdWVzdF9sb2FkZXJf ZmFjdG9yeSkpOworLQorLSAgICAvLyBEdW1wV2l0aG91dENyYXNoaW5nIGlmIHRoZSB0b2tlbiBp cyBlbXB0eSwgb3Igbm90IGluc2VydGVkIGFzIGEgbmV3IGVudHJ5CistICAgIC8vIHRvIHxyYWNl X25ldHdvcmtfcmVxdWVzdF9sb2FkZXJfZmFjdG9yaWVzX3wuCistICAgIC8vIFRPRE8oY3JidWcu Y29tLzE0OTI2NDApIFJlbW92ZSBEdW1wV2l0aG91dENyYXNoaW5nIG9uY2Ugd2UgY29sbGVjdCBk YXRhCistICAgIC8vIGFuZCBpZGVudGlmeSB0aGUgY2F1c2UuCistICAgIHN0YXRpYyBib29sIGhh c19kdW1wZWRfd2l0aG91dF9jcmFzaGluZ19mb3JfZW1wdHlfdG9rZW4gPSBmYWxzZTsKKy0gICAg c3RhdGljIGJvb2wgaGFzX2R1bXBlZF93aXRob3V0X2NyYXNoaW5nX2Zvcl9ub3RfbmV3X2VudHJ5 ID0gZmFsc2U7CistICAgIGlmICghaGFzX2R1bXBlZF93aXRob3V0X2NyYXNoaW5nX2Zvcl9lbXB0 eV90b2tlbiAmJgorLSAgICAgICAgcGFyYW1zLT5yZXF1ZXN0LT5zZXJ2aWNlX3dvcmtlcl9yYWNl X25ldHdvcmtfcmVxdWVzdF90b2tlbgorLSAgICAgICAgICAgIC0+aXNfZW1wdHkoKSkgeworLSAg ICAgIGhhc19kdW1wZWRfd2l0aG91dF9jcmFzaGluZ19mb3JfZW1wdHlfdG9rZW4gPSB0cnVlOwor LSAgICAgIFNDT1BFRF9DUkFTSF9LRVlfQk9PTCgKKy0gICAgICAgICAgIlNXR2xvYmFsU2NvcGUi LCAiZW1wdHlfcmFjZV90b2tlbiIsCistICAgICAgICAgIHBhcmFtcy0+cmVxdWVzdC0+c2Vydmlj ZV93b3JrZXJfcmFjZV9uZXR3b3JrX3JlcXVlc3RfdG9rZW4KKy0gICAgICAgICAgICAgIC0+aXNf ZW1wdHkoKSk7CistICAgICAgU0NPUEVEX0NSQVNIX0tFWV9TVFJJTkc2NCgKKy0gICAgICAgICAg IlNXR2xvYmFsU2NvcGUiLCAicmFjZV90b2tlbl9zdHJpbmciLAorLSAgICAgICAgICBwYXJhbXMt PnJlcXVlc3QtPnNlcnZpY2Vfd29ya2VyX3JhY2VfbmV0d29ya19yZXF1ZXN0X3Rva2VuCistICAg ICAgICAgICAgICAtPlRvU3RyaW5nKCkpOworLSAgICAgIFNDT1BFRF9DUkFTSF9LRVlfQk9PTCgi U1dHbG9iYWxTY29wZSIsICJyYWNlX2luc2VydF9uZXdfZW50cnkiLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnNlcnRfcmVzdWx0LmlzX25ld19lbnRyeSk7CistICAgICAgU0NPUEVE X0NSQVNIX0tFWV9TVFJJTkcyNTYoIlNXR2xvYmFsU2NvcGUiLCAicmFjZV9yZXF1ZXN0X3VybCIs CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLT5yZXF1ZXN0LT51cmwu R2V0U3RyaW5nKCkuVXRmOCgpKTsKKy0gICAgICBiYXNlOjpkZWJ1Zzo6RHVtcFdpdGhvdXRDcmFz aGluZygpOworLSAgICB9CistICAgIGlmICghaGFzX2R1bXBlZF93aXRob3V0X2NyYXNoaW5nX2Zv cl9ub3RfbmV3X2VudHJ5ICYmCistICAgICAgICAhaW5zZXJ0X3Jlc3VsdC5pc19uZXdfZW50cnkp IHsKKy0gICAgICBoYXNfZHVtcGVkX3dpdGhvdXRfY3Jhc2hpbmdfZm9yX25vdF9uZXdfZW50cnkg PSB0cnVlOworLSAgICAgIFNDT1BFRF9DUkFTSF9LRVlfQk9PTCgKKy0gICAgICAgICAgIlNXR2xv YmFsU2NvcGUiLCAiZW1wdHlfcmFjZV90b2tlbiIsCistICAgICAgICAgIHBhcmFtcy0+cmVxdWVz dC0+c2VydmljZV93b3JrZXJfcmFjZV9uZXR3b3JrX3JlcXVlc3RfdG9rZW4KKy0gICAgICAgICAg ICAgIC0+aXNfZW1wdHkoKSk7CistICAgICAgU0NPUEVEX0NSQVNIX0tFWV9TVFJJTkc2NCgKKy0g ICAgICAgICAgIlNXR2xvYmFsU2NvcGUiLCAicmFjZV90b2tlbl9zdHJpbmciLAorLSAgICAgICAg ICBwYXJhbXMtPnJlcXVlc3QtPnNlcnZpY2Vfd29ya2VyX3JhY2VfbmV0d29ya19yZXF1ZXN0X3Rv a2VuCistICAgICAgICAgICAgICAtPlRvU3RyaW5nKCkpOworLSAgICAgIFNDT1BFRF9DUkFTSF9L RVlfQk9PTCgiU1dHbG9iYWxTY29wZSIsICJyYWNlX2luc2VydF9uZXdfZW50cnkiLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRfcmVzdWx0LmlzX25ld19lbnRyeSk7CistICAg ICAgU0NPUEVEX0NSQVNIX0tFWV9TVFJJTkcyNTYoIlNXR2xvYmFsU2NvcGUiLCAicmFjZV9yZXF1 ZXN0X3VybCIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLT5yZXF1 ZXN0LT51cmwuR2V0U3RyaW5nKCkuVXRmOCgpKTsKKy0gICAgICBiYXNlOjpkZWJ1Zzo6RHVtcFdp dGhvdXRDcmFzaGluZygpOworLSAgICB9CisrICAgIEluc2VydE5ld0l0ZW1Ub1JhY2VOZXR3b3Jr UmVxdWVzdHMoCisrICAgICAgICBldmVudF9pZCwKKysgICAgICAgIHBhcmFtcy0+cmVxdWVzdC0+ c2VydmljZV93b3JrZXJfcmFjZV9uZXR3b3JrX3JlcXVlc3RfdG9rZW4udmFsdWUoKSwKKysgICAg ICAgIHN0ZDo6bW92ZShwYXJhbXMtPnJhY2VfbmV0d29ya19yZXF1ZXN0X2xvYWRlcl9mYWN0b3J5 KSwKKysgICAgICAgIHBhcmFtcy0+cmVxdWVzdC0+dXJsKTsKKyAgIH0KKyAKKyAgIFJlcXVlc3Qq IHJlcXVlc3QgPSBSZXF1ZXN0OjpDcmVhdGUoCitAQCAtMjgwOCwxMiArMjc3Myw3MSBAQCBib29s IFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6U2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcigKKyBh YnNsOjpvcHRpb25hbDxtb2pvOjpQZW5kaW5nUmVtb3RlPG5ldHdvcms6Om1vam9tOjpibGluazo6 VVJMTG9hZGVyRmFjdG9yeT4+CisgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpGaW5kUmFjZU5l dHdvcmtSZXF1ZXN0VVJMTG9hZGVyRmFjdG9yeSgKKyAgICAgY29uc3QgYmFzZTo6VW5ndWVzc2Fi bGVUb2tlbiYgdG9rZW4pIHsKKy0gIG1vam86OlBlbmRpbmdSZW1vdGU8bmV0d29yazo6bW9qb206 OmJsaW5rOjpVUkxMb2FkZXJGYWN0b3J5PiByZXN1bHQgPQorLSAgICAgIHJhY2VfbmV0d29ya19y ZXF1ZXN0X2xvYWRlcl9mYWN0b3JpZXNfLlRha2UoU3RyaW5nKHRva2VuLlRvU3RyaW5nKCkpKTsK KysgIHN0ZDo6dW5pcXVlX3B0cjxSYWNlTmV0d29ya1JlcXVlc3RJbmZvPiByZXN1bHQgPQorKyAg ICAgIHJhY2VfbmV0d29ya19yZXF1ZXN0c18uVGFrZShTdHJpbmcodG9rZW4uVG9TdHJpbmcoKSkp OworICAgaWYgKHJlc3VsdCkgeworLSAgICByZXR1cm4gcmVzdWx0OworKyAgICByYWNlX25ldHdv cmtfcmVxdWVzdF9mZXRjaF9ldmVudF9pZHNfLmVyYXNlKHJlc3VsdC0+ZmV0Y2hfZXZlbnRfaWQp OworKyAgICByZXR1cm4gYWJzbDo6b3B0aW9uYWw8CisrICAgICAgICBtb2pvOjpQZW5kaW5nUmVt b3RlPG5ldHdvcms6Om1vam9tOjpibGluazo6VVJMTG9hZGVyRmFjdG9yeT4+KAorKyAgICAgICAg c3RkOjptb3ZlKHJlc3VsdC0+dXJsX2xvYWRlcl9mYWN0b3J5KSk7CisgICB9CisgICByZXR1cm4g YWJzbDo6bnVsbG9wdDsKKyB9CisgCisrdm9pZCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6Oklu c2VydE5ld0l0ZW1Ub1JhY2VOZXR3b3JrUmVxdWVzdHMoCisrICAgIGludCBmZXRjaF9ldmVudF9p ZCwKKysgICAgY29uc3QgYmFzZTo6VW5ndWVzc2FibGVUb2tlbiYgdG9rZW4sCisrICAgIG1vam86 OlBlbmRpbmdSZW1vdGU8bmV0d29yazo6bW9qb206OmJsaW5rOjpVUkxMb2FkZXJGYWN0b3J5Pgor KyAgICAgICAgdXJsX2xvYWRlcl9mYWN0b3J5LAorKyAgICBjb25zdCBLVVJMJiByZXF1ZXN0X3Vy bCkgeworKyAgYXV0byByYWNlX25ldHdvcmtfcmVxdWVzdF90b2tlbiA9IFN0cmluZyh0b2tlbi5U b1N0cmluZygpKTsKKysgIGF1dG8gaW5mbyA9IHN0ZDo6bWFrZV91bmlxdWU8UmFjZU5ldHdvcmtS ZXF1ZXN0SW5mbz4oCisrICAgICAgZmV0Y2hfZXZlbnRfaWQsIHJhY2VfbmV0d29ya19yZXF1ZXN0 X3Rva2VuLAorKyAgICAgIHN0ZDo6bW92ZSh1cmxfbG9hZGVyX2ZhY3RvcnkpKTsKKysgIHJhY2Vf bmV0d29ya19yZXF1ZXN0X2ZldGNoX2V2ZW50X2lkc18uaW5zZXJ0KGZldGNoX2V2ZW50X2lkLCBp bmZvLmdldCgpKTsKKysgIGF1dG8gaW5zZXJ0X3Jlc3VsdCA9IHJhY2VfbmV0d29ya19yZXF1ZXN0 c18uaW5zZXJ0KHJhY2VfbmV0d29ya19yZXF1ZXN0X3Rva2VuLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjptb3ZlKGluZm8pKTsKKysK KysgIC8vIER1bXBXaXRob3V0Q3Jhc2hpbmcgaWYgdGhlIHRva2VuIGlzIGVtcHR5LCBvciBub3Qg aW5zZXJ0ZWQgYXMgYSBuZXcgZW50cnkKKysgIC8vIHRvIHxyYWNlX25ldHdvcmtfcmVxdWVzdF9s b2FkZXJfZmFjdG9yaWVzX3wuCisrICAvLyBUT0RPKGNyYnVnLmNvbS8xNDkyNjQwKSBSZW1vdmUg RHVtcFdpdGhvdXRDcmFzaGluZyBvbmNlIHdlIGNvbGxlY3QgZGF0YQorKyAgLy8gYW5kIGlkZW50 aWZ5IHRoZSBjYXVzZS4KKysgIHN0YXRpYyBib29sIGhhc19kdW1wZWRfd2l0aG91dF9jcmFzaGlu Z19mb3JfZW1wdHlfdG9rZW4gPSBmYWxzZTsKKysgIHN0YXRpYyBib29sIGhhc19kdW1wZWRfd2l0 aG91dF9jcmFzaGluZ19mb3Jfbm90X25ld19lbnRyeSA9IGZhbHNlOworKyAgaWYgKCFoYXNfZHVt cGVkX3dpdGhvdXRfY3Jhc2hpbmdfZm9yX2VtcHR5X3Rva2VuICYmIHRva2VuLmlzX2VtcHR5KCkp IHsKKysgICAgaGFzX2R1bXBlZF93aXRob3V0X2NyYXNoaW5nX2Zvcl9lbXB0eV90b2tlbiA9IHRy dWU7CisrICAgIFNDT1BFRF9DUkFTSF9LRVlfQk9PTCgiU1dHbG9iYWxTY29wZSIsICJlbXB0eV9y YWNlX3Rva2VuIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLmlzX2VtcHR5KCkp OworKyAgICBTQ09QRURfQ1JBU0hfS0VZX1NUUklORzY0KCJTV0dsb2JhbFNjb3BlIiwgInJhY2Vf dG9rZW5fc3RyaW5nIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi5Ub1N0 cmluZygpKTsKKysgICAgU0NPUEVEX0NSQVNIX0tFWV9CT09MKCJTV0dsb2JhbFNjb3BlIiwgInJh Y2VfaW5zZXJ0X25ld19lbnRyeSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRf cmVzdWx0LmlzX25ld19lbnRyeSk7CisrICAgIFNDT1BFRF9DUkFTSF9LRVlfU1RSSU5HMjU2KCJT V0dsb2JhbFNjb3BlIiwgInJhY2VfcmVxdWVzdF91cmwiLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXF1ZXN0X3VybC5HZXRTdHJpbmcoKS5VdGY4KCkpOworKyAgICBiYXNlOjpk ZWJ1Zzo6RHVtcFdpdGhvdXRDcmFzaGluZygpOworKyAgfQorKyAgaWYgKCFoYXNfZHVtcGVkX3dp dGhvdXRfY3Jhc2hpbmdfZm9yX25vdF9uZXdfZW50cnkgJiYKKysgICAgICAhaW5zZXJ0X3Jlc3Vs dC5pc19uZXdfZW50cnkpIHsKKysgICAgaGFzX2R1bXBlZF93aXRob3V0X2NyYXNoaW5nX2Zvcl9u b3RfbmV3X2VudHJ5ID0gdHJ1ZTsKKysgICAgU0NPUEVEX0NSQVNIX0tFWV9CT09MKCJTV0dsb2Jh bFNjb3BlIiwgImVtcHR5X3JhY2VfdG9rZW4iLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg dG9rZW4uaXNfZW1wdHkoKSk7CisrICAgIFNDT1BFRF9DUkFTSF9LRVlfU1RSSU5HNjQoIlNXR2xv YmFsU2NvcGUiLCAicmFjZV90b2tlbl9zdHJpbmciLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRva2VuLlRvU3RyaW5nKCkpOworKyAgICBTQ09QRURfQ1JBU0hfS0VZX0JPT0woIlNX R2xvYmFsU2NvcGUiLCAicmFjZV9pbnNlcnRfbmV3X2VudHJ5IiwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgIGluc2VydF9yZXN1bHQuaXNfbmV3X2VudHJ5KTsKKysgICAgU0NPUEVEX0NSQVNI X0tFWV9TVFJJTkcyNTYoIlNXR2xvYmFsU2NvcGUiLCAicmFjZV9yZXF1ZXN0X3VybCIsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RfdXJsLkdldFN0cmluZygpLlV0Zjgo KSk7CisrICAgIGJhc2U6OmRlYnVnOjpEdW1wV2l0aG91dENyYXNoaW5nKCk7CisrICB9CisrfQor KworK3ZvaWQgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpSZW1vdmVJdGVtRnJvbVJhY2VOZXR3 b3JrUmVxdWVzdHMoCisrICAgIGludCBmZXRjaF9ldmVudF9pZCkgeworKyAgUmFjZU5ldHdvcmtS ZXF1ZXN0SW5mbyogaW5mbyA9CisrICAgICAgcmFjZV9uZXR3b3JrX3JlcXVlc3RfZmV0Y2hfZXZl bnRfaWRzXy5UYWtlKGZldGNoX2V2ZW50X2lkKTsKKysgIGlmIChpbmZvKSB7CisrICAgIHJhY2Vf bmV0d29ya19yZXF1ZXN0c18uZXJhc2UoaW5mby0+dG9rZW4pOworKyAgfQorK30KKysKKyB9ICAv LyBuYW1lc3BhY2UgYmxpbmsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJl ci9tb2R1bGVzL3NlcnZpY2Vfd29ya2VyL3NlcnZpY2Vfd29ya2VyX2dsb2JhbF9zY29wZS5oIGIv dGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvbW9kdWxlcy9zZXJ2aWNlX3dvcmtlci9zZXJ2aWNl X3dvcmtlcl9nbG9iYWxfc2NvcGUuaAoraW5kZXggNDZjNDMxYjM5NTgyNS4uYWM0Y2FjMGIxZDhm YiAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL21vZHVsZXMvc2Vydmlj ZV93b3JrZXIvc2VydmljZV93b3JrZXJfZ2xvYmFsX3Njb3BlLmgKKysrKyBiL3RoaXJkX3BhcnR5 L2JsaW5rL3JlbmRlcmVyL21vZHVsZXMvc2VydmljZV93b3JrZXIvc2VydmljZV93b3JrZXJfZ2xv YmFsX3Njb3BlLmgKK0BAIC02MjMsNiArNjIzLDE0IEBAIGNsYXNzIE1PRFVMRVNfRVhQT1JUIFNl cnZpY2VXb3JrZXJHbG9iYWxTY29wZSBmaW5hbAorICAgLy8gU2VydmljZVdvcmtlci5GZXRjaEV2 ZW50LlF1ZXVpbmdUaW1lIGhpc3RvZ3JhbS4KKyAgIHZvaWQgUmVjb3JkUXVldWluZ1RpbWUoYmFz ZTo6VGltZVRpY2tzIGNyZWF0ZWRfdGltZSk7CisgCisrICB2b2lkIEluc2VydE5ld0l0ZW1Ub1Jh Y2VOZXR3b3JrUmVxdWVzdHMoCisrICAgICAgaW50IGZldGNoX2V2ZW50X2lkLAorKyAgICAgIGNv bnN0IGJhc2U6OlVuZ3Vlc3NhYmxlVG9rZW4mIHRva2VuLAorKyAgICAgIG1vam86OlBlbmRpbmdS ZW1vdGU8bmV0d29yazo6bW9qb206OmJsaW5rOjpVUkxMb2FkZXJGYWN0b3J5PgorKyAgICAgICAg ICB1cmxfbG9hZGVyX2ZhY3RvcnksCisrICAgICAgY29uc3QgS1VSTCYgcmVxdWVzdF91cmwpOwor KyAgdm9pZCBSZW1vdmVJdGVtRnJvbVJhY2VOZXR3b3JrUmVxdWVzdHMoaW50IGZldGNoX2V2ZW50 X2lkKTsKKysKKyAgIE1lbWJlcjxTZXJ2aWNlV29ya2VyQ2xpZW50cz4gY2xpZW50c187CisgICBN ZW1iZXI8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbj4gcmVnaXN0cmF0aW9uXzsKKyAgIE1lbWJl cjw6OmJsaW5rOjpTZXJ2aWNlV29ya2VyPiBzZXJ2aWNlX3dvcmtlcl87CitAQCAtNzY4LDEwICs3 NzYsMTcgQEAgY2xhc3MgTU9EVUxFU19FWFBPUlQgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGZp bmFsCisgCisgICBibGluazo6QmxpbmtTdG9yYWdlS2V5IHN0b3JhZ2Vfa2V5XzsKKyAKKysgIHN0 cnVjdCBSYWNlTmV0d29ya1JlcXVlc3RJbmZvIHsKKysgICAgaW50IGZldGNoX2V2ZW50X2lkOwor KyAgICBTdHJpbmcgdG9rZW47CisrICAgIG1vam86OlBlbmRpbmdSZW1vdGU8bmV0d29yazo6bW9q b206OmJsaW5rOjpVUkxMb2FkZXJGYWN0b3J5PgorKyAgICAgICAgdXJsX2xvYWRlcl9mYWN0b3J5 OworKyAgfTsKKyAgIC8vIFRPRE8oY3JidWcuY29tLzkxODcwMikgV1RGOjpIYXNoTWFwIGNhbm5v dCB1c2UgYmFzZTo6VW5ndWVzc2FibGVUb2tlbiBhcyBhCisgICAvLyBrZXkuIEFzIGEgd29ya2Fy b3VuZCB1c2VzIFdURjo6U3RyaW5nIGFzIGEga2V5IGluc3RlYWQuCistICBIYXNoTWFwPFN0cmlu ZywgbW9qbzo6UGVuZGluZ1JlbW90ZTxuZXR3b3JrOjptb2pvbTo6Ymxpbms6OlVSTExvYWRlckZh Y3Rvcnk+PgorLSAgICAgIHJhY2VfbmV0d29ya19yZXF1ZXN0X2xvYWRlcl9mYWN0b3JpZXNfOwor KyAgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxSYWNlTmV0d29ya1JlcXVlc3RJbmZv Pj4KKysgICAgICByYWNlX25ldHdvcmtfcmVxdWVzdHNfOworKyAgSGFzaE1hcDxpbnQsIFJhY2VO ZXR3b3JrUmVxdWVzdEluZm8qPiByYWNlX25ldHdvcmtfcmVxdWVzdF9mZXRjaF9ldmVudF9pZHNf OworIAorICAgSGVhcE1vam9Bc3NvY2lhdGVkUmVtb3RlPG1vam9tOjpibGluazo6QXNzb2NpYXRl ZEludGVyZmFjZVByb3ZpZGVyPgorICAgICAgIHJlbW90ZV9hc3NvY2lhdGVkX2ludGVyZmFjZXNf e3RoaXN9OwoKZGlmZiAtLWdpdCBhL2Nocm9taXVtLTEyMC1lbDctY2xhbmctdmVyc2lvbi13YXJu aW5nLnBhdGNoIGIvY2hyb21pdW0tMTIwLWVsNy1jbGFuZy12ZXJzaW9uLXdhcm5pbmcucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTEyZGE2NQotLS0gL2Rldi9udWxs CisrKyBiL2Nocm9taXVtLTEyMC1lbDctY2xhbmctdmVyc2lvbi13YXJuaW5nLnBhdGNoCkBAIC0w LDAgKzEsMTYgQEAKK2RpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkv bGliYysrL3NyYy9pbmNsdWRlL19fY29uZmlnLm1lIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhp cmRfcGFydHkvbGliYysrL3NyYy9pbmNsdWRlL19fY29uZmlnCistLS0gY2hyb21pdW0tMTIwLjAu NjA5OS41Ni90aGlyZF9wYXJ0eS9saWJjKysvc3JjL2luY2x1ZGUvX19jb25maWcubWUJMjAyMy0x Mi0wMyAwMDowNTo1MS4yNTQ0ODM0NzQgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2 L3RoaXJkX3BhcnR5L2xpYmMrKy9zcmMvaW5jbHVkZS9fX2NvbmZpZwkyMDIzLTEyLTAzIDAwOjA2 OjA1Ljg3Mjg2MzE2OCArMDEwMAorQEAgLTMyLDExICszMiw3IEBACisgCisgLy8gV2FybiBpZiBh IGNvbXBpbGVyIHZlcnNpb24gaXMgdXNlZCB0aGF0IGlzIG5vdCBzdXBwb3J0ZWQgYW55bW9yZQor IC8vIExMVk0gUkVMRUFTRSBVcGRhdGUgdGhlIG1pbmltdW0gY29tcGlsZXIgdmVyc2lvbnMKKy0j ICBpZiBkZWZpbmVkKF9MSUJDUFBfQ0xBTkdfVkVSKQorLSMgICAgaWYgX0xJQkNQUF9DTEFOR19W RVIgPCAxNTAwCistIyAgICAgIHdhcm5pbmcgIkxpYmMrKyBvbmx5IHN1cHBvcnRzIENsYW5nIDE1 IGFuZCBsYXRlciIKKy0jICAgIGVuZGlmCistIyAgZWxpZiBkZWZpbmVkKF9MSUJDUFBfQVBQTEVf Q0xBTkdfVkVSKQorKyMgIGlmIGRlZmluZWQoX0xJQkNQUF9BUFBMRV9DTEFOR19WRVIpCisgIyAg ICBpZiBfTElCQ1BQX0FQUExFX0NMQU5HX1ZFUiA8IDE1MDAKKyAjICAgICAgd2FybmluZyAiTGli YysrIG9ubHkgc3VwcG9ydHMgQXBwbGVDbGFuZyAxNSBhbmQgbGF0ZXIiCisgIyAgICBlbmRpZgoK ZGlmZiAtLWdpdCBhL2Nocm9taXVtLTEyMC1lbDctZXh0cmEtb3BlcmF0b3IucGF0Y2ggYi9jaHJv bWl1bS0xMjAtZWw3LWV4dHJhLW9wZXJhdG9yLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjk2NmU4NWYKLS0tIC9kZXYvbnVsbAorKysgYi9jaHJvbWl1bS0xMjAtZWw3 LWV4dHJhLW9wZXJhdG9yLnBhdGNoCkBAIC0wLDAgKzEsMjYgQEAKK2RpZmYgLXVwIGNocm9taXVt LTEyMC4wLjYwOTkuMzUvYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci9zcmMvcGFy dGl0aW9uX2FsbG9jL3N0YXJzY2FuL21ldGFkYXRhX2FsbG9jYXRvci5oLm1lIGNocm9taXVtLTEy MC4wLjYwOTkuMzUvYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci9zcmMvcGFydGl0 aW9uX2FsbG9jL3N0YXJzY2FuL21ldGFkYXRhX2FsbG9jYXRvci5oCistLS0gY2hyb21pdW0tMTIw LjAuNjA5OS4zNS9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3NyYy9wYXJ0aXRp b25fYWxsb2Mvc3RhcnNjYW4vbWV0YWRhdGFfYWxsb2NhdG9yLmgubWUJMjAyMy0xMS0yNiAxMzoz MzoxMS41NDc0MDk3MTMgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjM1L2Jhc2UvYWxs b2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3Ivc3JjL3BhcnRpdGlvbl9hbGxvYy9zdGFyc2Nhbi9t ZXRhZGF0YV9hbGxvY2F0b3IuaAkyMDIzLTExLTI2IDEzOjM1OjAyLjY3OTM2MzE2NyArMDEwMAor QEAgLTQwLDYgKzQwLDExIEBAIGNsYXNzIE1ldGFkYXRhQWxsb2NhdG9yIHsKKyAgIH0KKyAKKyAg IHRlbXBsYXRlIDx0eXBlbmFtZSBVPgorKyAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE1ldGFkYXRh QWxsb2NhdG9yPFU+JikgY29uc3QgeworKyAgICByZXR1cm4gdHJ1ZTsKKysgIH0KKysKKysgIHRl bXBsYXRlIDx0eXBlbmFtZSBVPgorICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IE1ldGFkYXRhQWxs b2NhdG9yPFU+JiBvKSB7CisgICAgIHJldHVybiAhb3BlcmF0b3I9PShvKTsKKyAgIH0KK2RpZmYg LXVwIGNocm9taXVtLTEyMC4wLjYwOTkuMzUvdGhpcmRfcGFydHkvcGRmaXVtL2NvcmUvZnhjcnQv ZnhfbWVtb3J5X3dyYXBwZXJzLmgubWUgY2hyb21pdW0tMTIwLjAuNjA5OS4zNS90aGlyZF9wYXJ0 eS9wZGZpdW0vY29yZS9meGNydC9meF9tZW1vcnlfd3JhcHBlcnMuaAorLS0tIGNocm9taXVtLTEy MC4wLjYwOTkuMzUvdGhpcmRfcGFydHkvcGRmaXVtL2NvcmUvZnhjcnQvZnhfbWVtb3J5X3dyYXBw ZXJzLmgubWUJMjAyMy0xMS0yMiAyMDozNDoxMS4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1 bS0xMjAuMC42MDk5LjM1L3RoaXJkX3BhcnR5L3BkZml1bS9jb3JlL2Z4Y3J0L2Z4X21lbW9yeV93 cmFwcGVycy5oCTIwMjMtMTEtMjYgMTM6MzA6MzguOTYxNzI0NjUzICswMTAwCitAQCAtODIsNiAr ODIsNyBAQCBzdHJ1Y3QgRnhQYXJ0aXRpb25BbGxvY0FsbG9jYXRvciB7CisgICB9CisgCisgICAv LyBUaGVyZSdzIG5vIHN0YXRlLCBzbyB0aGV5IGFyZSBhbGwgdGhlIHNhbWUsCisrICBib29sIG9w ZXJhdG9yPT0oY29uc3QgRnhQYXJ0aXRpb25BbGxvY0FsbG9jYXRvciYpIGNvbnN0IHsgcmV0dXJu IHRydWU7IH0KKyAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBGeFBhcnRpdGlvbkFsbG9jQWxsb2Nh dG9yJiB0aGF0KSB7IHJldHVybiB0cnVlOyB9CisgICBib29sIG9wZXJhdG9yIT0oY29uc3QgRnhQ YXJ0aXRpb25BbGxvY0FsbG9jYXRvciYgdGhhdCkgeyByZXR1cm4gZmFsc2U7IH0KKyB9OwoKZGlm ZiAtLWdpdCBhL2Nocm9taXVtLTEyMC1lbDctb2xkLWxpYmRybS5wYXRjaCBiL2Nocm9taXVtLTEy MC1lbDctb2xkLWxpYmRybS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5kYjZiOGRkCi0tLSAvZGV2L251bGwKKysrIGIvY2hyb21pdW0tMTIwLWVsNy1vbGQtbGliZHJt LnBhdGNoCkBAIC0wLDAgKzEsMTggQEAKK2RpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYv dWkvZ2Z4L2xpbnV4L2RybV91dGlsX2xpbnV4LmNjLmVsNy1vbGQtbGliZHJtIGNocm9taXVtLTEy MC4wLjYwOTkuNTYvdWkvZ2Z4L2xpbnV4L2RybV91dGlsX2xpbnV4LmNjCistLS0gY2hyb21pdW0t MTIwLjAuNjA5OS41Ni91aS9nZngvbGludXgvZHJtX3V0aWxfbGludXguY2MuZWw3LW9sZC1saWJk cm0JMjAyMy0xMS0yOSAyMjo0MDo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAu MC42MDk5LjU2L3VpL2dmeC9saW51eC9kcm1fdXRpbF9saW51eC5jYwkyMDIzLTEyLTAzIDEwOjMz OjM1LjQ2ODQ5MjI5OCArMDEwMAorQEAgLTYsNiArNiwxNCBAQAorIAorICNpbmNsdWRlIDxkcm1f Zm91cmNjLmg+CisgCisrLy8gdGhlIGxpYmRybSBpbiBFTC03IGlzIHRvbyBvbGQgdG8gaGF2ZSB0 aGlzIGRlZmluZQorKyNpZm5kZWYgRFJNX0ZPUk1BVF9QMDEwCisrI2RlZmluZSBEUk1fRk9STUFU X1AwMTAgZm91cmNjX2NvZGUoJ1AnLCAnMCcsICcxJywgJzAnKQorKyNlbmRpZgorKyNpZm5kZWYg RFJNX0ZPUk1BVF9BQkdSMTYxNjE2MTZGCisrI2RlZmluZSBEUk1fRk9STUFUX0FCR1IxNjE2MTYx NkYgZm91cmNjX2NvZGUoJ0EnLCAnQicsICc0JywgJ0gnKQorKyNlbmRpZgorKworICNpbmNsdWRl ICJiYXNlL25vdHJlYWNoZWQuaCIKKyAKKyBuYW1lc3BhY2UgdWkgewoKZGlmZiAtLWdpdCBhL2No cm9taXVtLTEyMC1nbi13b3JrYXJvdW5kLWF0c3BpLnBhdGNoIGIvY2hyb21pdW0tMTIwLWduLXdv cmthcm91bmQtYXRzcGkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NzJjN2I3ZQotLS0gL2Rldi9udWxsCisrKyBiL2Nocm9taXVtLTEyMC1nbi13b3JrYXJvdW5kLWF0 c3BpLnBhdGNoCkBAIC0wLDAgKzEsMTMgQEAKK2RpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTku MzUvYnVpbGQvY29uZmlnL2xpbnV4L2F0c3BpMi9CVUlMRC5nbi5tZSBjaHJvbWl1bS0xMjAuMC42 MDk5LjM1L2J1aWxkL2NvbmZpZy9saW51eC9hdHNwaTIvQlVJTEQuZ24KKy0tLSBjaHJvbWl1bS0x MjAuMC42MDk5LjM1L2J1aWxkL2NvbmZpZy9saW51eC9hdHNwaTIvQlVJTEQuZ24ubWUJMjAyMy0x MS0yNiAxNjoxNDoxNS4zNjQwNjQxMjYgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjM1 L2J1aWxkL2NvbmZpZy9saW51eC9hdHNwaTIvQlVJTEQuZ24JMjAyMy0xMS0yNiAxNjo0MToxNi44 NzczMjE5OTAgKzAxMDAKK0BAIC0yMSw2ICsyMSw5IEBAIGlmICh1c2VfYXRrKSB7CisgICAgIG1p bm9yID0gYXRzcGlfdmVyc2lvblsxXQorICAgICBtaWNybyA9IGF0c3BpX3ZlcnNpb25bMl0KKyAK KysgICAgIyBnbiB3b3JrYXJvdW5kIGZvciB0aGUgZXJyb3I6IEFzc2lnbm1lbnQgaGFkIG5vIGVm ZmVjdAorKyAgICBwcmludCgiQVRTUEkgVmVyc2lvbjogJG1ham9yLiRtaW5vci4kbWljcm8iKQor KworICAgICAjIEFUU1BJIDIuNDkuOTAgbm93IGRlZmluZXMgdGhlc2UgZm9yIHVzIGFuZCBpdCdz IGFuIGVycm9yIGZvciB1cyB0bworICAgICAjIHJlZGVmaW5lIHRoZW0gb24gdGhlIGNvbXBpbGVy IGNvbW1hbmQgbGluZS4KKyAgICAgIyBTZWUgQVRTUEkgOTI3MzQ0YTM0Y2Q1YmY4MWZjNjRkYTQ5 NjgyNDE3MzVlY2I0ZjAzYgoKZGlmZiAtLWdpdCBhL2Nocm9taXVtLTEyMC1taXNzaW5nLWhlYWRl ci1maWxlcy5wYXRjaCBiL2Nocm9taXVtLTEyMC1taXNzaW5nLWhlYWRlci1maWxlcy5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNzdkZTBkCi0tLSAvZGV2L251bGwK KysrIGIvY2hyb21pdW0tMTIwLW1pc3NpbmctaGVhZGVyLWZpbGVzLnBhdGNoCkBAIC0wLDAgKzEs NDU5IEBACitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9iYXNlL2NoZWNrX29wLmgu bWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvYmFzZS9jaGVja19v cC5oCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvYmFzZS9jaGVja19vcC5oLm1pc3Npbmct aGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6MDUuMDAwMDAwMDAwICswMTAwCisrKysgY2hy b21pdW0tMTE5LjAuNjA0NS4xMDUvYmFzZS9jaGVja19vcC5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEu ODA4ODY4OTgyICswMTAwCitAQCAtNSw2ICs1LDcgQEAKKyAjaWZuZGVmIEJBU0VfQ0hFQ0tfT1Bf SF8KKyAjZGVmaW5lIEJBU0VfQ0hFQ0tfT1BfSF8KKyAKKysjaW5jbHVkZSA8Y3N0ZGludD4KKyAj aW5jbHVkZSA8Y3N0ZGRlZj4KKyAjaW5jbHVkZSA8c3RyaW5nPgorICNpbmNsdWRlIDxzdHJpbmdf dmlldz4KK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Jhc2UvY29udGFpbmVycy9m bGF0X21hcC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Jh c2UvY29udGFpbmVycy9mbGF0X21hcC5oCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvYmFz ZS9jb250YWluZXJzL2ZsYXRfbWFwLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAx OToxMDowNS4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9iYXNl L2NvbnRhaW5lcnMvZmxhdF9tYXAuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxMzg2OTA4OSArMDEw MAorQEAgLTUsNiArNSw3IEBACisgI2lmbmRlZiBCQVNFX0NPTlRBSU5FUlNfRkxBVF9NQVBfSF8K KyAjZGVmaW5lIEJBU0VfQ09OVEFJTkVSU19GTEFUX01BUF9IXworIAorKyNpbmNsdWRlIDxjc3Rk aW50PgorICNpbmNsdWRlIDxmdW5jdGlvbmFsPgorICNpbmNsdWRlIDx0dXBsZT4KKyAjaW5jbHVk ZSA8dHlwZV90cmFpdHM+CitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9iYXNlL2Rl YnVnL3Byb2ZpbGVyLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4x MDUvYmFzZS9kZWJ1Zy9wcm9maWxlci5oCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvYmFz ZS9kZWJ1Zy9wcm9maWxlci5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6 MDUuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvYmFzZS9kZWJ1 Zy9wcm9maWxlci5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODA5ODY5MDA0ICswMTAwCitAQCAtOCw2 ICs4LDcgQEAKKyAjaW5jbHVkZSA8c3RkZGVmLmg+CisgI2luY2x1ZGUgPHN0ZGludC5oPgorIAor KyNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxzdHJpbmc+CisgCisgI2luY2x1ZGUgImJh c2UvYmFzZV9leHBvcnQuaCIKK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Jhc2Uv bWVtb3J5L3JlZl9jb3VudGVkLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAu NjA0NS4xMDUvYmFzZS9tZW1vcnkvcmVmX2NvdW50ZWQuaAorLS0tIGNocm9taXVtLTExOS4wLjYw NDUuMTA1L2Jhc2UvbWVtb3J5L3JlZl9jb3VudGVkLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAy My0xMS0wMSAxOToxMDowNS4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1 LjEwNS9iYXNlL21lbW9yeS9yZWZfY291bnRlZC5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODA4ODY4 OTgyICswMTAwCitAQCAtNiw2ICs2LDcgQEAKKyAjZGVmaW5lIEJBU0VfTUVNT1JZX1JFRl9DT1VO VEVEX0hfCisgCisgI2luY2x1ZGUgPHN0ZGRlZi5oPgorKyNpbmNsdWRlIDxsaW1pdHM+CisgCisg I2luY2x1ZGUgPGxpbWl0cz4KKyAjaW5jbHVkZSA8dXRpbGl0eT4KK2RpZmYgLXVwIGNocm9taXVt LTExOS4wLjYwNDUuMTA1L2Nocm9tZS9icm93c2VyL3ByaXZhY3lfYnVkZ2V0L2VuY291bnRlcmVk X3N1cmZhY2VfdHJhY2tlci5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYw NDUuMTA1L2Nocm9tZS9icm93c2VyL3ByaXZhY3lfYnVkZ2V0L2VuY291bnRlcmVkX3N1cmZhY2Vf dHJhY2tlci5oCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY2hyb21lL2Jyb3dzZXIvcHJp dmFjeV9idWRnZXQvZW5jb3VudGVyZWRfc3VyZmFjZV90cmFja2VyLmgubWlzc2luZy1oZWFkZXIt ZmlsZXMJMjAyMy0xMS0wMSAxOToxMDoxMy4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0x MTkuMC42MDQ1LjEwNS9jaHJvbWUvYnJvd3Nlci9wcml2YWN5X2J1ZGdldC9lbmNvdW50ZXJlZF9z dXJmYWNlX3RyYWNrZXIuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxNDg2OTExMCArMDEwMAorQEAg LTcsNiArNyw3IEBACisgCisgI2luY2x1ZGUgPHN0ZGludC5oPgorIAorKyNpbmNsdWRlIDxjc3Rk aW50PgorICNpbmNsdWRlIDxtYXA+CisgCisgI2luY2x1ZGUgImJhc2UvY29udGFpbmVycy9mbGF0 X3NldC5oIgorZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY2hyb21lL2Jyb3dzZXIv d2ViYXV0aG4vYXV0aGVudGljYXRvcl9yZXF1ZXN0X2RpYWxvZ19tb2RlbC5oLm1pc3NpbmctaGVh ZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Nocm9tZS9icm93c2VyL3dlYmF1dGhu L2F1dGhlbnRpY2F0b3JfcmVxdWVzdF9kaWFsb2dfbW9kZWwuaAorLS0tIGNocm9taXVtLTExOS4w LjYwNDUuMTA1L2Nocm9tZS9icm93c2VyL3dlYmF1dGhuL2F1dGhlbnRpY2F0b3JfcmVxdWVzdF9k aWFsb2dfbW9kZWwuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEwOjE2LjAw MDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Nocm9tZS9icm93c2Vy L3dlYmF1dGhuL2F1dGhlbnRpY2F0b3JfcmVxdWVzdF9kaWFsb2dfbW9kZWwuaAkyMDIzLTExLTA2 IDE0OjM0OjAxLjgxNzg2OTE3NCArMDEwMAorQEAgLTgsNiArOCw3IEBACisgI2luY2x1ZGUgPG1l bW9yeT4KKyAjaW5jbHVkZSA8c3RyaW5nPgorICNpbmNsdWRlIDx2ZWN0b3I+CisrI2luY2x1ZGUg PHZhcmlhbnQ+CisgCisgI2luY2x1ZGUgImJhc2UvY29udGFpbmVycy9zcGFuLmgiCisgI2luY2x1 ZGUgImJhc2UvZnVuY3Rpb25hbC9jYWxsYmFja19mb3J3YXJkLmgiCitkaWZmIC11cCBjaHJvbWl1 bS0xMTkuMC42MDQ1LjEwNS9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvY2hyb21lL3dlYl92aWV3 X2ltcGwuY2MubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY2hy b21lL3Rlc3QvY2hyb21lZHJpdmVyL2Nocm9tZS93ZWJfdmlld19pbXBsLmNjCistLS0gY2hyb21p dW0tMTE5LjAuNjA0NS4xMDUvY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL2Nocm9tZS93ZWJfdmll d19pbXBsLmNjLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6MTYuMDAwMDAw MDAwICswMTAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY2hyb21lL3Rlc3QvY2hyb21l ZHJpdmVyL2Nocm9tZS93ZWJfdmlld19pbXBsLmNjCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODE4ODY5 MTk2ICswMTAwCitAQCAtMTEsNiArMTEsNyBAQAorICNpbmNsdWRlIDxxdWV1ZT4KKyAjaW5jbHVk ZSA8dXRpbGl0eT4KKyAjaW5jbHVkZSA8dmVjdG9yPgorKyNpbmNsdWRlIDxjc3RyaW5nPgorIAor ICNpbmNsdWRlICJiYXNlL2NoZWNrLmgiCisgI2luY2x1ZGUgImJhc2UvZmlsZXMvZmlsZV9wYXRo LmgiCitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL2F1dG9maWxs L2NvcmUvYnJvd3Nlci9hdXRvZmlsbF9hYmxhdGlvbl9zdHVkeS5oLm1pc3NpbmctaGVhZGVyLWZp bGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93 c2VyL2F1dG9maWxsX2FibGF0aW9uX3N0dWR5LmgKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci9hdXRvZmlsbF9hYmxhdGlvbl9zdHVk eS5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6MTkuMDAwMDAwMDAwICsw MTAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9hdXRvZmlsbC9jb3Jl L2Jyb3dzZXIvYXV0b2ZpbGxfYWJsYXRpb25fc3R1ZHkuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgx NTg2OTEzMiArMDEwMAorQEAgLTcsNiArNyw3IEBACisgCisgI2luY2x1ZGUgPHN0ZGludC5oPgor IAorKyNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxzdHJpbmc+CisgCisgY2xhc3MgR1VS TDsKK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvY3Jhc2gvY29y ZS9hcHAvY3Jhc2hfcmVwb3J0ZXJfY2xpZW50LmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21p dW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9jcmFzaC9jb3JlL2FwcC9jcmFzaF9yZXBvcnRl cl9jbGllbnQuaAorLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvY3Jhc2gv Y29yZS9hcHAvY3Jhc2hfcmVwb3J0ZXJfY2xpZW50LmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAy My0xMS0wMSAxOToxMDoyMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1 LjEwNS9jb21wb25lbnRzL2NyYXNoL2NvcmUvYXBwL2NyYXNoX3JlcG9ydGVyX2NsaWVudC5oCTIw MjMtMTEtMDYgMTQ6MzQ6MDEuODEzODY5MDg5ICswMTAwCitAQCAtNyw2ICs3LDcgQEAKKyAKKyAj aW5jbHVkZSA8c3RkaW50Lmg+CisgCisrI2luY2x1ZGUgPGNzdGRpbnQ+CisgI2luY2x1ZGUgPHN0 cmluZz4KKyAKKyAjaW5jbHVkZSAiYnVpbGQvYnVpbGRfY29uZmlnLmgiCitkaWZmIC11cCBjaHJv bWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL2ZlYXR1cmVfZW5nYWdlbWVudC9pbnRlcm5h bC9ldmVudF9zdG9yYWdlX3ZhbGlkYXRvci5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVt LTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvZmVhdHVyZV9lbmdhZ2VtZW50L2ludGVybmFsL2V2 ZW50X3N0b3JhZ2VfdmFsaWRhdG9yLmgKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21w b25lbnRzL2ZlYXR1cmVfZW5nYWdlbWVudC9pbnRlcm5hbC9ldmVudF9zdG9yYWdlX3ZhbGlkYXRv ci5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6MjEuMDAwMDAwMDAwICsw MTAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9mZWF0dXJlX2VuZ2Fn ZW1lbnQvaW50ZXJuYWwvZXZlbnRfc3RvcmFnZV92YWxpZGF0b3IuaAkyMDIzLTExLTA2IDE0OjM0 OjAxLjgxNDg2OTExMCArMDEwMAorQEAgLTcsNiArNyw3IEBACisgCisgI2luY2x1ZGUgPHN0ZGlu dC5oPgorIAorKyNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxzdHJpbmc+CisgCisgbmFt ZXNwYWNlIGZlYXR1cmVfZW5nYWdlbWVudCB7CitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1 LjEwNS9jb21wb25lbnRzL2ZlYXR1cmVfZW5nYWdlbWVudC9pbnRlcm5hbC9uZXZlcl9ldmVudF9z dG9yYWdlX3ZhbGlkYXRvci5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYw NDUuMTA1L2NvbXBvbmVudHMvZmVhdHVyZV9lbmdhZ2VtZW50L2ludGVybmFsL25ldmVyX2V2ZW50 X3N0b3JhZ2VfdmFsaWRhdG9yLmgKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25l bnRzL2ZlYXR1cmVfZW5nYWdlbWVudC9pbnRlcm5hbC9uZXZlcl9ldmVudF9zdG9yYWdlX3ZhbGlk YXRvci5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6MjEuMDAwMDAwMDAw ICswMTAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9mZWF0dXJlX2Vu Z2FnZW1lbnQvaW50ZXJuYWwvbmV2ZXJfZXZlbnRfc3RvcmFnZV92YWxpZGF0b3IuaAkyMDIzLTEx LTA2IDE0OjM0OjAxLjgxNDg2OTExMCArMDEwMAorQEAgLTUsNiArNSw3IEBACisgI2lmbmRlZiBD T01QT05FTlRTX0ZFQVRVUkVfRU5HQUdFTUVOVF9JTlRFUk5BTF9ORVZFUl9FVkVOVF9TVE9SQUdF X1ZBTElEQVRPUl9IXworICNkZWZpbmUgQ09NUE9ORU5UU19GRUFUVVJFX0VOR0FHRU1FTlRfSU5U RVJOQUxfTkVWRVJfRVZFTlRfU1RPUkFHRV9WQUxJREFUT1JfSF8KKyAKKysjaW5jbHVkZSA8Y3N0 ZGludD4KKyAjaW5jbHVkZSA8c3RyaW5nPgorIAorICNpbmNsdWRlICJjb21wb25lbnRzL2ZlYXR1 cmVfZW5nYWdlbWVudC9pbnRlcm5hbC9ldmVudF9zdG9yYWdlX3ZhbGlkYXRvci5oIgorZGlmZiAt dXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9vbW5pYm94L2Jyb3dzZXIvb25f ZGV2aWNlX2hlYWRfbW9kZWwuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42 MDQ1LjEwNS9jb21wb25lbnRzL29tbmlib3gvYnJvd3Nlci9vbl9kZXZpY2VfaGVhZF9tb2RlbC5o CistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9vbW5pYm94L2Jyb3dzZXIv b25fZGV2aWNlX2hlYWRfbW9kZWwuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5 OjEwOjIxLjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBv bmVudHMvb21uaWJveC9icm93c2VyL29uX2RldmljZV9oZWFkX21vZGVsLmgJMjAyMy0xMS0wNiAx NDozNDowMS44MTU4NjkxMzIgKzAxMDAKK0BAIC03LDYgKzcsNyBAQAorIAorICNpbmNsdWRlIDxz dGRpbnQuaD4KKyAKKysjaW5jbHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8c3RyaW5nPgorICNp bmNsdWRlIDx1dGlsaXR5PgorICNpbmNsdWRlIDx2ZWN0b3I+CitkaWZmIC11cCBjaHJvbWl1bS0x MTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL3Bhc3N3b3JkX21hbmFnZXIvY29yZS9icm93c2VyL2dl bmVyYXRpb24vcGFzc3dvcmRfZ2VuZXJhdG9yLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21p dW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9wYXNzd29yZF9tYW5hZ2VyL2NvcmUvYnJvd3Nl ci9nZW5lcmF0aW9uL3Bhc3N3b3JkX2dlbmVyYXRvci5oCistLS0gY2hyb21pdW0tMTE5LjAuNjA0 NS4xMDUvY29tcG9uZW50cy9wYXNzd29yZF9tYW5hZ2VyL2NvcmUvYnJvd3Nlci9nZW5lcmF0aW9u L3Bhc3N3b3JkX2dlbmVyYXRvci5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6 MTA6MjEuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29tcG9u ZW50cy9wYXNzd29yZF9tYW5hZ2VyL2NvcmUvYnJvd3Nlci9nZW5lcmF0aW9uL3Bhc3N3b3JkX2dl bmVyYXRvci5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODE0ODY5MTEwICswMTAwCitAQCAtNyw2ICs3 LDcgQEAKKyAKKyAjaW5jbHVkZSA8c3RkaW50Lmg+CisgCisrI2luY2x1ZGUgPGNzdGRpbnQ+Cisg I2luY2x1ZGUgPHN0cmluZz4KKyAKKyAKK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1 L2NvbXBvbmVudHMvcGF5bWVudHMvY29udGVudC91dGlsaXR5L2ZpbmdlcnByaW50X3BhcnNlci5o Lm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMv cGF5bWVudHMvY29udGVudC91dGlsaXR5L2ZpbmdlcnByaW50X3BhcnNlci5oCistLS0gY2hyb21p dW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9wYXltZW50cy9jb250ZW50L3V0aWxpdHkvZmlu Z2VycHJpbnRfcGFyc2VyLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMDoy MS4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRz L3BheW1lbnRzL2NvbnRlbnQvdXRpbGl0eS9maW5nZXJwcmludF9wYXJzZXIuaAkyMDIzLTExLTA2 IDE0OjM0OjAxLjgxNTg2OTEzMiArMDEwMAorQEAgLTUsNiArNSw3IEBACisgI2lmbmRlZiBDT01Q T05FTlRTX1BBWU1FTlRTX0NPTlRFTlRfVVRJTElUWV9GSU5HRVJQUklOVF9QQVJTRVJfSF8KKyAj ZGVmaW5lIENPTVBPTkVOVFNfUEFZTUVOVFNfQ09OVEVOVF9VVElMSVRZX0ZJTkdFUlBSSU5UX1BB UlNFUl9IXworIAorKyNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxzdGRkZWYuaD4KKyAj aW5jbHVkZSA8c3RkaW50Lmg+CisgCitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9n aW4vdGltZV9jbGFtcGVyLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0 NS4xMDUvZ2luL3RpbWVfY2xhbXBlci5oCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvZ2lu L3RpbWVfY2xhbXBlci5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6Mjgu MDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvZ2luL3RpbWVfY2xh bXBlci5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODE4ODY5MTk2ICswMTAwCitAQCAtNDgsNyArNDgs NyBAQCBjbGFzcyBHSU5fRVhQT1JUIFRpbWVDbGFtcGVyIHsKKyAgICAgY29uc3QgaW50NjRfdCBt aWNyb3MgPSBub3dfbWljcm9zICUgMTAwMDsKKyAgICAgLy8gYWJzKCkgaXMgbmVjZXNzYXJ5IGZv ciBkZXZpY2VzIHdpdGggdGltZXMgYmVmb3JlIHVuaXgtZXBvY2ggKG1vc3QgbGlrZWx5CisgICAg IC8vIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkpLgorLSAgICBpZiAoYWJzKG1pY3JvcykgKyBrUmVz b2x1dGlvbk1pY3JvcyA8IDEwMDApIHsKKysgICAgaWYgKHN0ZDo6YWJzKG1pY3JvcykgKyBrUmVz b2x1dGlvbk1pY3JvcyA8IDEwMDApIHsKKyAgICAgICByZXR1cm4gbm93X21pY3JvcyAvIDEwMDA7 CisgICAgIH0KKyAgICAgcmV0dXJuIENsYW1wVGltZVJlc29sdXRpb24obm93X21pY3JvcykgLyAx MDAwOworZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvZ3B1L2NvbmZpZy9ncHVfZmVh dHVyZV9pbmZvLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUv Z3B1L2NvbmZpZy9ncHVfZmVhdHVyZV9pbmZvLmgKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS9ncHUvY29uZmlnL2dwdV9mZWF0dXJlX2luZm8uaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIz LTExLTAxIDE5OjEwOjI4LjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUu MTA1L2dwdS9jb25maWcvZ3B1X2ZlYXR1cmVfaW5mby5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODA5 ODY5MDA0ICswMTAwCitAQCAtNyw2ICs3LDcgQEAKKyAKKyAjaW5jbHVkZSA8c3RkaW50Lmg+Cisg CisrI2luY2x1ZGUgPGNzdGRpbnQ+CisgI2luY2x1ZGUgPHN0cmluZz4KKyAjaW5jbHVkZSA8dmVj dG9yPgorIAorZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvbmV0L2Jhc2UvbmV0X2V4 cG9ydC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L25ldC9i YXNlL25ldF9leHBvcnQuaAorLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L25ldC9iYXNlL25l dF9leHBvcnQuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEwOjMyLjAwMDAw MDAwMCArMDEwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L25ldC9iYXNlL25ldF9leHBv cnQuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgwOTg2OTAwNCArMDEwMAorQEAgLTUsNiArNSw4IEBA CisgI2lmbmRlZiBORVRfQkFTRV9ORVRfRVhQT1JUX0hfCisgI2RlZmluZSBORVRfQkFTRV9ORVRf RVhQT1JUX0hfCisgCisrI2luY2x1ZGUgPGNzdGRpbnQ+CisrCisgLy8gRGVmaW5lcyBORVRfRVhQ T1JUIHNvIHRoYXQgZnVuY3Rpb25hbGl0eSBpbXBsZW1lbnRlZCBieSB0aGUgbmV0IG1vZHVsZSBj YW4KKyAvLyBiZSBleHBvcnRlZCB0byBjb25zdW1lcnMsIGFuZCBORVRfRVhQT1JUX1BSSVZBVEUg dGhhdCBhbGxvd3MgdW5pdCB0ZXN0cyB0bworIC8vIGFjY2VzcyBmZWF0dXJlcyBub3QgaW50ZW5k ZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBieSByZWFsIGNvbnN1bWVycy4KK2RpZmYgLXVwIGNocm9t aXVtLTExOS4wLjYwNDUuMTA1L3BkZi9kb2N1bWVudF9hdHRhY2htZW50X2luZm8uaC5taXNzaW5n LWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9wZGYvZG9jdW1lbnRfYXR0YWNo bWVudF9pbmZvLmgKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9wZGYvZG9jdW1lbnRfYXR0 YWNobWVudF9pbmZvLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMDozNC4w MDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9wZGYvZG9jdW1lbnRf YXR0YWNobWVudF9pbmZvLmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTU4NjkxMzIgKzAxMDAKK0BA IC03LDYgKzcsNyBAQAorIAorICNpbmNsdWRlIDxzdGRpbnQuaD4KKyAKKysjaW5jbHVkZSA8Y3N0 ZGludD4KKyAjaW5jbHVkZSA8c3RyaW5nPgorIAorIAorZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAu NjA0NS4xMDUvc2FuZGJveC9saW51eC9zeXNjYWxsX2Jyb2tlci9icm9rZXJfZmlsZV9wZXJtaXNz aW9uLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvc2FuZGJv eC9saW51eC9zeXNjYWxsX2Jyb2tlci9icm9rZXJfZmlsZV9wZXJtaXNzaW9uLmgKKy0tLSBjaHJv bWl1bS0xMTkuMC42MDQ1LjEwNS9zYW5kYm94L2xpbnV4L3N5c2NhbGxfYnJva2VyL2Jyb2tlcl9m aWxlX3Blcm1pc3Npb24uaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEwOjM0 LjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3NhbmRib3gvbGlu dXgvc3lzY2FsbF9icm9rZXIvYnJva2VyX2ZpbGVfcGVybWlzc2lvbi5oCTIwMjMtMTEtMDYgMTQ6 MzQ6MDEuODA5ODY5MDA0ICswMTAwCitAQCAtNSw2ICs1LDcgQEAKKyAjaWZuZGVmIFNBTkRCT1hf TElOVVhfU1lTQ0FMTF9CUk9LRVJfQlJPS0VSX0ZJTEVfUEVSTUlTU0lPTl9IXworICNkZWZpbmUg U0FOREJPWF9MSU5VWF9TWVNDQUxMX0JST0tFUl9CUk9LRVJfRklMRV9QRVJNSVNTSU9OX0hfCisg CisrI2luY2x1ZGUgPGNzdGRpbnQ+CisgI2luY2x1ZGUgPGJpdHNldD4KKyAjaW5jbHVkZSA8Y3N0 ZGludD4KKyAjaW5jbHVkZSA8c3RyaW5nPgorZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4x MDUvc2VydmljZXMvZGV2aWNlL3B1YmxpYy9jcHAvZ2VuZXJpY19zZW5zb3Ivc2Vuc29yX3JlYWRp bmcuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9zZXJ2aWNl cy9kZXZpY2UvcHVibGljL2NwcC9nZW5lcmljX3NlbnNvci9zZW5zb3JfcmVhZGluZy5oCistLS0g Y2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvc2VydmljZXMvZGV2aWNlL3B1YmxpYy9jcHAvZ2VuZXJp Y19zZW5zb3Ivc2Vuc29yX3JlYWRpbmcuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAx IDE5OjEwOjM1LjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3Nl cnZpY2VzL2RldmljZS9wdWJsaWMvY3BwL2dlbmVyaWNfc2Vuc29yL3NlbnNvcl9yZWFkaW5nLmgJ MjAyMy0xMS0wNiAxNDozNDowMS44MjA4NjkyMzggKzAxMDAKK0BAIC04LDYgKzgsOSBAQAorICNp bmNsdWRlIDxzdGRkZWYuaD4KKyAjaW5jbHVkZSA8c3RkaW50Lmg+CisgCisrI2luY2x1ZGUgPGNz dGRkZWY+CisrI2luY2x1ZGUgPGNzdGRpbnQ+CisrCisgI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgor IAorIG5hbWVzcGFjZSBkZXZpY2UgeworZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUv c2tpYS9leHQvc2tjb2xvcnNwYWNlX3RyZm4uY2MubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21p dW0tMTE5LjAuNjA0NS4xMDUvc2tpYS9leHQvc2tjb2xvcnNwYWNlX3RyZm4uY2MKKy0tLSBjaHJv bWl1bS0xMTkuMC42MDQ1LjEwNS9za2lhL2V4dC9za2NvbG9yc3BhY2VfdHJmbi5jYy5taXNzaW5n LWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEwOjM1LjAwMDAwMDAwMCArMDEwMAorKysrIGNo cm9taXVtLTExOS4wLjYwNDUuMTA1L3NraWEvZXh0L3NrY29sb3JzcGFjZV90cmZuLmNjCTIwMjMt MTEtMDYgMTQ6MzQ6MDEuODE4ODY5MTk2ICswMTAwCitAQCAtMyw2ICszLDcgQEAKKyAvLyBmb3Vu ZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorIAorICNpbmNsdWRlICJza2lhL2V4dC9za2NvbG9yc3Bh Y2VfdHJmbi5oIgorKyNpbmNsdWRlIDxjbWF0aD4KKyAKKyAjaW5jbHVkZSA8Y21hdGg+CisgCitk aWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fi c2wvc3RyaW5ncy9zdHJpbmdfdmlldy5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTEx OS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9zdHJpbmdzL3N0cmluZ192 aWV3LmgKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9hYnNlaWwtY3Bw L2Fic2wvc3RyaW5ncy9zdHJpbmdfdmlldy5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEt MDEgMTk6MTA6MzYuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUv dGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL3N0cmluZ3Mvc3RyaW5nX3ZpZXcuaAkyMDIzLTEx LTA2IDE0OjM0OjAxLjgwOTg2OTAwNCArMDEwMAorQEAgLTI3LDYgKzI3LDcgQEAKKyAjaWZuZGVm IEFCU0xfU1RSSU5HU19TVFJJTkdfVklFV19IXworICNkZWZpbmUgQUJTTF9TVFJJTkdTX1NUUklO R19WSUVXX0hfCisgCisrI2luY2x1ZGUgPGNzdGRpbnQ+CisgI2luY2x1ZGUgPGFsZ29yaXRobT4K KyAjaW5jbHVkZSA8Y2Fzc2VydD4KKyAjaW5jbHVkZSA8Y3N0ZGRlZj4KK2RpZmYgLXVwIGNocm9t aXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L2FuZ2xlL2luY2x1ZGUvR0xTTEFORy9TaGFk ZXJWYXJzLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhp cmRfcGFydHkvYW5nbGUvaW5jbHVkZS9HTFNMQU5HL1NoYWRlclZhcnMuaAorLS0tIGNocm9taXVt LTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L2FuZ2xlL2luY2x1ZGUvR0xTTEFORy9TaGFkZXJW YXJzLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMTo1OS4wMDAwMDAwMDAg KzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9hbmdsZS9pbmNs dWRlL0dMU0xBTkcvU2hhZGVyVmFycy5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODEwODY5MDI1ICsw MTAwCitAQCAtMTAsNiArMTAsNyBAQAorICNpZm5kZWYgR0xTTEFOR19TSEFERVJWQVJTX0hfCisg I2RlZmluZSBHTFNMQU5HX1NIQURFUlZBUlNfSF8KKyAKKysjaW5jbHVkZSA8Y3N0ZGludD4KKyAj aW5jbHVkZSA8YWxnb3JpdGhtPgorICNpbmNsdWRlIDxhcnJheT4KKyAjaW5jbHVkZSA8Y3N0ZGlu dD4KK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L2JsaW5rL3B1 YmxpYy9jb21tb24vYmx1ZXRvb3RoL3dlYl9ibHVldG9vdGhfZGV2aWNlX2lkLmgubWlzc2luZy1o ZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvYmxpbmsvcHVi bGljL2NvbW1vbi9ibHVldG9vdGgvd2ViX2JsdWV0b290aF9kZXZpY2VfaWQuaAorLS0tIGNocm9t aXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L2JsaW5rL3B1YmxpYy9jb21tb24vYmx1ZXRv b3RoL3dlYl9ibHVldG9vdGhfZGV2aWNlX2lkLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0x MS0wMSAxOToxMDozNy4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS90aGlyZF9wYXJ0eS9ibGluay9wdWJsaWMvY29tbW9uL2JsdWV0b290aC93ZWJfYmx1ZXRvb3Ro X2RldmljZV9pZC5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODEwODY5MDI1ICswMTAwCitAQCAtNyw2 ICs3LDcgQEAKKyAKKyAjaW5jbHVkZSA8c3RkaW50Lmg+CisgCisrI2luY2x1ZGUgPGNzdGRpbnQ+ CisgI2luY2x1ZGUgPGFycmF5PgorICNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxmdW5j dGlvbmFsPgorZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvZGF3 bi9zcmMvdGludC9sYW5nL3NwaXJ2L3JlYWRlci9hc3RfcGFyc2VyL25hbWVyLmgubWlzc2luZy1o ZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvZGF3bi9zcmMv dGludC9sYW5nL3NwaXJ2L3JlYWRlci9hc3RfcGFyc2VyL25hbWVyLmgKKy0tLSBjaHJvbWl1bS0x MTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9kYXduL3NyYy90aW50L2xhbmcvc3BpcnYvcmVhZGVy L2FzdF9wYXJzZXIvbmFtZXIuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEz OjUwLjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3Bh cnR5L2Rhd24vc3JjL3RpbnQvbGFuZy9zcGlydi9yZWFkZXIvYXN0X3BhcnNlci9uYW1lci5oCTIw MjMtMTEtMDYgMTQ6MzQ6MDEuODEwODY5MDI1ICswMTAwCitAQCAtMTUsNiArMTUsNyBAQAorICNp Zm5kZWYgU1JDX1RJTlRfTEFOR19TUElSVl9SRUFERVJfQVNUX1BBUlNFUl9OQU1FUl9IXworICNk ZWZpbmUgU1JDX1RJTlRfTEFOR19TUElSVl9SRUFERVJfQVNUX1BBUlNFUl9OQU1FUl9IXworIAor KyNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxzdHJpbmc+CisgI2luY2x1ZGUgPHVub3Jk ZXJlZF9tYXA+CisgI2luY2x1ZGUgPHZlY3Rvcj4KK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYw NDUuMTA1L3RoaXJkX3BhcnR5L2lwY3ovc3JjL2lwY3ovcm91dGVyX2xpbmsuaC5taXNzaW5nLWhl YWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9pcGN6L3NyYy9p cGN6L3JvdXRlcl9saW5rLmgKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0 eS9pcGN6L3NyYy9pcGN6L3JvdXRlcl9saW5rLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0x MS0wMSAxOToxMToyMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS90aGlyZF9wYXJ0eS9pcGN6L3NyYy9pcGN6L3JvdXRlcl9saW5rLmgJMjAyMy0xMS0wNiAxNDoz NDowMS44MTk4NjkyMTcgKzAxMDAKK0BAIC01LDYgKzUsNyBAQAorICNpZm5kZWYgSVBDWl9TUkNf SVBDWl9ST1VURVJfTElOS19IXworICNkZWZpbmUgSVBDWl9TUkNfSVBDWl9ST1VURVJfTElOS19I XworIAorKyNpbmNsdWRlIDxtZW1vcnk+CisgI2luY2x1ZGUgPGNzdGRkZWY+CisgI2luY2x1ZGUg PGZ1bmN0aW9uYWw+CisgI2luY2x1ZGUgPG1lbW9yeT4KK2RpZmYgLXVwIGNocm9taXVtLTExOS4w LjYwNDUuMTA1L3RoaXJkX3BhcnR5L21hdGVyaWFsX2NvbG9yX3V0aWxpdGllcy9zcmMvY3BwL3Bh bGV0dGVzL3RvbmVzLmNjLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUu MTA1L3RoaXJkX3BhcnR5L21hdGVyaWFsX2NvbG9yX3V0aWxpdGllcy9zcmMvY3BwL3BhbGV0dGVz L3RvbmVzLmNjCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvbWF0ZXJp YWxfY29sb3JfdXRpbGl0aWVzL3NyYy9jcHAvcGFsZXR0ZXMvdG9uZXMuY2MubWlzc2luZy1oZWFk ZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMTo1My4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1 bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9tYXRlcmlhbF9jb2xvcl91dGlsaXRpZXMvc3Jj L2NwcC9wYWxldHRlcy90b25lcy5jYwkyMDIzLTExLTA2IDE0OjM0OjAxLjgxOTg2OTIxNyArMDEw MAorQEAgLTE0LDYgKzE0LDcgQEAKKyAgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4K KyAgKi8KKyAKKysjaW5jbHVkZSA8Y21hdGg+CisgI2luY2x1ZGUgImNwcC9wYWxldHRlcy90b25l cy5oIgorIAorICNpbmNsdWRlICJjcHAvY2FtL2NhbS5oIgorZGlmZiAtdXAgY2hyb21pdW0tMTE5 LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvb3BlbnNjcmVlbi9zcmMvZGlzY292ZXJ5L2Ruc3NkL3B1 YmxpYy9kbnNfc2RfdHh0X3JlY29yZC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTEx OS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L29wZW5zY3JlZW4vc3JjL2Rpc2NvdmVyeS9kbnNzZC9w dWJsaWMvZG5zX3NkX3R4dF9yZWNvcmQuaAorLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3Ro aXJkX3BhcnR5L29wZW5zY3JlZW4vc3JjL2Rpc2NvdmVyeS9kbnNzZC9wdWJsaWMvZG5zX3NkX3R4 dF9yZWNvcmQuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjExOjU5LjAwMDAw MDAwMCArMDEwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L29wZW5z Y3JlZW4vc3JjL2Rpc2NvdmVyeS9kbnNzZC9wdWJsaWMvZG5zX3NkX3R4dF9yZWNvcmQuaAkyMDIz LTExLTA2IDE0OjM0OjAxLjgxMDg2OTAyNSArMDEwMAorQEAgLTcsNiArNyw3IEBACisgCisgI2lu Y2x1ZGUgPHN0ZGludC5oPgorIAorKyNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxmdW5j dGlvbmFsPgorICNpbmNsdWRlIDxtYXA+CisgI2luY2x1ZGUgPHNldD4KK2RpZmYgLXVwIGNocm9t aXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3BkZml1bS9jb25zdGFudHMvYW5ub3RhdGlv bl9mbGFncy5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3Ro aXJkX3BhcnR5L3BkZml1bS9jb25zdGFudHMvYW5ub3RhdGlvbl9mbGFncy5oCistLS0gY2hyb21p dW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvcGRmaXVtL2NvbnN0YW50cy9hbm5vdGF0aW9u X2ZsYWdzLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxNDo0OC4wMDAwMDAw MDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9wZGZpdW0v Y29uc3RhbnRzL2Fubm90YXRpb25fZmxhZ3MuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxNTg2OTEz MiArMDEwMAorQEAgLTcsNiArNyw4IEBACisgCisgI2luY2x1ZGUgPHN0ZGludC5oPgorIAorKyNp bmNsdWRlIDxjc3RkaW50PgorKworIG5hbWVzcGFjZSBwZGZpdW0geworIG5hbWVzcGFjZSBhbm5v dGF0aW9uX2ZsYWdzIHsKKyAKK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJk X3BhcnR5L3J1eS9zcmMvcnV5L3Byb2ZpbGVyL2luc3RydW1lbnRhdGlvbi5oLm1pc3NpbmctaGVh ZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3J1eS9zcmMvcnV5 L3Byb2ZpbGVyL2luc3RydW1lbnRhdGlvbi5oCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUv dGhpcmRfcGFydHkvcnV5L3NyYy9ydXkvcHJvZmlsZXIvaW5zdHJ1bWVudGF0aW9uLmgubWlzc2lu Zy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMjowMi4wMDAwMDAwMDAgKzAxMDAKKysrKyBj aHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9ydXkvc3JjL3J1eS9wcm9maWxlci9p bnN0cnVtZW50YXRpb24uaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxMzg2OTA4OSArMDEwMAorQEAg LTE3LDYgKzE3LDcgQEAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgI2RlZmluZSBS VVlfUlVZX1BST0ZJTEVSX0lOU1RSVU1FTlRBVElPTl9IXworIAorICNpZmRlZiBSVVlfUFJPRklM RVIKKysjaW5jbHVkZSA8c3RyaW5nPgorICNpbmNsdWRlIDxjc3RkaW8+CisgI2luY2x1ZGUgPG11 dGV4PgorICNpbmNsdWRlIDx2ZWN0b3I+CitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci9zcmMvU3lzdGVtL0xSVUNhY2hlLmhwcC5taXNzaW5n LWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9zd2lmdHNo YWRlci9zcmMvU3lzdGVtL0xSVUNhY2hlLmhwcAorLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1 L3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3NyYy9TeXN0ZW0vTFJVQ2FjaGUuaHBwLm1pc3Npbmct aGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTI6MTUuMDAwMDAwMDAwICswMTAwCisrKysgY2hy b21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvc3JjL1N5c3RlbS9M UlVDYWNoZS5ocHAJMjAyMy0xMS0wNiAxNDozNDowMS44MTA4NjkwMjUgKzAxMDAKK0BAIC0xNyw2 ICsxNyw3IEBACisgCisgI2luY2x1ZGUgIlN5c3RlbS9EZWJ1Zy5ocHAiCisgCisrI2luY2x1ZGUg PGNzdGRpbnQ+CisgI2luY2x1ZGUgPGNzdGRkZWY+CisgI2luY2x1ZGUgPGNzdGRpbnQ+CisgI2lu Y2x1ZGUgPGZ1bmN0aW9uYWw+CitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGly ZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLTEwLjAvbGx2bS9saWIvU3VwcG9y dC9Vbml4L1NpZ25hbHMuaW5jLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYw NDUuMTA1L3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tMTAuMC9sbHZt L2xpYi9TdXBwb3J0L1VuaXgvU2lnbmFscy5pbmMKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLTEwLjAvbGx2bS9saWIv U3VwcG9ydC9Vbml4L1NpZ25hbHMuaW5jLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEg MTk6MTI6NDIuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhp cmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS0xMC4wL2xsdm0vbGliL1N1cHBv cnQvVW5peC9TaWduYWxzLmluYwkyMDIzLTExLTA2IDE0OjM0OjAxLjgxNDg2OTExMCArMDEwMAor QEAgLTQ1LDYgKzQ1LDcgQEAKKyAjaW5jbHVkZSAibGx2bS9TdXBwb3J0L1NhdmVBbmRSZXN0b3Jl LmgiCisgI2luY2x1ZGUgImxsdm0vU3VwcG9ydC9yYXdfb3N0cmVhbS5oIgorICNpbmNsdWRlIDxh bGdvcml0aG0+CisrI2luY2x1ZGUgPGNzdGRpbnQ+CisgI2luY2x1ZGUgPHN0cmluZz4KKyAjaW5j bHVkZSA8c3lzZXhpdHMuaD4KKyAjaWZkZWYgSEFWRV9CQUNLVFJBQ0UKK2RpZmYgLXVwIGNocm9t aXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3RmbGl0ZS9zcmMvdGVuc29yZmxvdy9saXRl L2tlcm5lbHMvaW50ZXJuYWwvc3BlY3Ryb2dyYW0uaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJv bWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS90ZmxpdGUvc3JjL3RlbnNvcmZsb3cvbGl0 ZS9rZXJuZWxzL2ludGVybmFsL3NwZWN0cm9ncmFtLmgKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1 LjEwNS90aGlyZF9wYXJ0eS90ZmxpdGUvc3JjL3RlbnNvcmZsb3cvbGl0ZS9rZXJuZWxzL2ludGVy bmFsL3NwZWN0cm9ncmFtLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMzoy MC4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0 eS90ZmxpdGUvc3JjL3RlbnNvcmZsb3cvbGl0ZS9rZXJuZWxzL2ludGVybmFsL3NwZWN0cm9ncmFt LmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTM4NjkwODkgKzAxMDAKK0BAIC0zMSw2ICszMSw3IEBA IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICNpZm5kZWYgVEVOU09SRkxPV19MSVRF X0tFUk5FTFNfSU5URVJOQUxfU1BFQ1RST0dSQU1fSF8KKyAjZGVmaW5lIFRFTlNPUkZMT1dfTElU RV9LRVJORUxTX0lOVEVSTkFMX1NQRUNUUk9HUkFNX0hfCisgCisrI2luY2x1ZGUgPGNzdGRpbnQ+ CisgI2luY2x1ZGUgPGNvbXBsZXg+CisgI2luY2x1ZGUgPGRlcXVlPgorICNpbmNsdWRlIDx2ZWN0 b3I+CitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS92dWxrYW4t ZGVwcy92dWxrYW4tdmFsaWRhdGlvbi1sYXllcnMvc3JjL2xheWVycy9leHRlcm5hbC92bWEvdmtf bWVtX2FsbG9jLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUv dGhpcmRfcGFydHkvdnVsa2FuLWRlcHMvdnVsa2FuLXZhbGlkYXRpb24tbGF5ZXJzL3NyYy9sYXll cnMvZXh0ZXJuYWwvdm1hL3ZrX21lbV9hbGxvYy5oCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4x MDUvdGhpcmRfcGFydHkvdnVsa2FuLWRlcHMvdnVsa2FuLXZhbGlkYXRpb24tbGF5ZXJzL3NyYy9s YXllcnMvZXh0ZXJuYWwvdm1hL3ZrX21lbV9hbGxvYy5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIw MjMtMTEtMDEgMTk6MTI6NDUuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0 NS4xMDUvdGhpcmRfcGFydHkvdnVsa2FuLWRlcHMvdnVsa2FuLXZhbGlkYXRpb24tbGF5ZXJzL3Ny Yy9sYXllcnMvZXh0ZXJuYWwvdm1hL3ZrX21lbV9hbGxvYy5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEu ODE3ODY5MTc0ICswMTAwCitAQCAtMjg4NCw2ICsyODg0LDcgQEAgc3RhdGljIHZvaWQgdm1hX2Fs aWduZWRfZnJlZSh2b2lkKiBWTUFfTgorIAorIC8vIERlZmluZSB0aGlzIG1hY3JvIHRvIDEgdG8g ZW5hYmxlIGZ1bmN0aW9uczogdm1hQnVpbGRTdGF0c1N0cmluZywgdm1hRnJlZVN0YXRzU3RyaW5n LgorICNpZiBWTUFfU1RBVFNfU1RSSU5HX0VOQUJMRUQKKysjaW5jbHVkZSA8c3RkaW8uaD4KKyAg ICAgc3RhdGljIGlubGluZSB2b2lkIFZtYVVpbnQzMlRvU3RyKGNoYXIqIFZNQV9OT1RfTlVMTCBv dXRTdHIsIHNpemVfdCBzdHJMZW4sIHVpbnQzMl90IG51bSkKKyAgICAgeworICAgICAgICAgc25w cmludGYob3V0U3RyLCBzdHJMZW4sICIldSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4obnVt KSk7CitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS93ZWJydGMv YXVkaW8vdXRpbGl0eS9jaGFubmVsX21peGVyLmNjLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9t aXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3dlYnJ0Yy9hdWRpby91dGlsaXR5L2NoYW5u ZWxfbWl4ZXIuY2MKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS93ZWJy dGMvYXVkaW8vdXRpbGl0eS9jaGFubmVsX21peGVyLmNjLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIw MjMtMTEtMDEgMTk6MTQ6MDUuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0 NS4xMDUvdGhpcmRfcGFydHkvd2VicnRjL2F1ZGlvL3V0aWxpdHkvY2hhbm5lbF9taXhlci5jYwky MDIzLTExLTA2IDE0OjM0OjAxLjgxOTg2OTIxNyArMDEwMAorQEAgLTgsNiArOCw4IEBACisgICog IGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0 cmVlLgorICAqLworIAorKyNpbmNsdWRlIDxjc3RyaW5nPgorKworICNpbmNsdWRlICJhdWRpby91 dGlsaXR5L2NoYW5uZWxfbWl4ZXIuaCIKKyAKKyAjaW5jbHVkZSAiYXVkaW8vdXRpbGl0eS9jaGFu bmVsX21peGluZ19tYXRyaXguaCIKK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3Ro aXJkX3BhcnR5L3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NC9zcHNfcGFyc2VyLmgubWlzc2luZy1o ZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvd2VicnRjL2Nv bW1vbl92aWRlby9oMjY0L3Nwc19wYXJzZXIuaAorLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1 L3RoaXJkX3BhcnR5L3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NC9zcHNfcGFyc2VyLmgubWlzc2lu Zy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxNDowNi4wMDAwMDAwMDAgKzAxMDAKKysrKyBj aHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS93ZWJydGMvY29tbW9uX3ZpZGVvL2gy NjQvc3BzX3BhcnNlci5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODE5ODY5MjE3ICswMTAwCitAQCAt MTEsNiArMTEsNyBAQAorICNpZm5kZWYgQ09NTU9OX1ZJREVPX0gyNjRfU1BTX1BBUlNFUl9IXwor ICNkZWZpbmUgQ09NTU9OX1ZJREVPX0gyNjRfU1BTX1BBUlNFUl9IXworIAorKyNpbmNsdWRlIDxj c3RkaW50PgorICNpbmNsdWRlICJhYnNsL3R5cGVzL29wdGlvbmFsLmgiCisgI2luY2x1ZGUgInJ0 Y19iYXNlL2JpdHN0cmVhbV9yZWFkZXIuaCIKKyAKK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYw NDUuMTA1L3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90 eXBlc19wdWJsaWMuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9pbmNsdWRlL21vZHVsZV9jb21tb25fdHlwZXNf cHVibGljLmgKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS93ZWJydGMv bW9kdWxlcy9pbmNsdWRlL21vZHVsZV9jb21tb25fdHlwZXNfcHVibGljLmgubWlzc2luZy1oZWFk ZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxNDoxMS4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1 bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9pbmNsdWRlL21vZHVs ZV9jb21tb25fdHlwZXNfcHVibGljLmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTk4NjkyMTcgKzAx MDAKK0BAIC0xMSw2ICsxMSw3IEBACisgI2lmbmRlZiBNT0RVTEVTX0lOQ0xVREVfTU9EVUxFX0NP TU1PTl9UWVBFU19QVUJMSUNfSF8KKyAjZGVmaW5lIE1PRFVMRVNfSU5DTFVERV9NT0RVTEVfQ09N TU9OX1RZUEVTX1BVQkxJQ19IXworIAorKyNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxs aW1pdHM+CisgCisgI2luY2x1ZGUgImFic2wvdHlwZXMvb3B0aW9uYWwuaCIKK2RpZmYgLXVwIGNo cm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2Nv ZGluZy91dGlsaXR5L2l2Zl9maWxlX3JlYWRlci5jYy5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJv bWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rp bmcvdXRpbGl0eS9pdmZfZmlsZV9yZWFkZXIuY2MKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvdXRpbGl0eS9pdmZfZmls ZV9yZWFkZXIuY2MubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxNDoxMi4wMDAw MDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS93ZWJy dGMvbW9kdWxlcy92aWRlb19jb2RpbmcvdXRpbGl0eS9pdmZfZmlsZV9yZWFkZXIuY2MJMjAyMy0x MS0wNiAxNDozNDowMS44MTk4NjkyMTcgKzAxMDAKK0BAIC0xMCw2ICsxMCw3IEBACisgCisgI2lu Y2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL3V0aWxpdHkvaXZmX2ZpbGVfcmVhZGVyLmgiCisg CisrI2luY2x1ZGUgPGNzdHJpbmc+CisgI2luY2x1ZGUgPHN0cmluZz4KKyAjaW5jbHVkZSA8dmVj dG9yPgorIAorZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdWkvYmFzZS9wcmVkaWN0 aW9uL2thbG1hbl9maWx0ZXIuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42 MDQ1LjEwNS91aS9iYXNlL3ByZWRpY3Rpb24va2FsbWFuX2ZpbHRlci5oCistLS0gY2hyb21pdW0t MTE5LjAuNjA0NS4xMDUvdWkvYmFzZS9wcmVkaWN0aW9uL2thbG1hbl9maWx0ZXIuaC5taXNzaW5n LWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjExOjI4LjAwMDAwMDAwMCArMDEwMAorKysrIGNo cm9taXVtLTExOS4wLjYwNDUuMTA1L3VpL2Jhc2UvcHJlZGljdGlvbi9rYWxtYW5fZmlsdGVyLmgJ MjAyMy0xMS0wNiAxNDozNDowMS44MTQ4NjkxMTAgKzAxMDAKK0BAIC03LDYgKzcsOCBAQAorIAor ICNpbmNsdWRlIDxzdGRpbnQuaD4KKyAKKysjaW5jbHVkZSA8Y3N0ZGludD4KKysKKyAjaW5jbHVk ZSAiYmFzZS9jb21wb25lbnRfZXhwb3J0LmgiCisgI2luY2x1ZGUgInVpL2dmeC9nZW9tZXRyeS9t YXRyaXgzX2YuaCIKKyAKK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3VpL2dmeC9n ZW9tZXRyeS9saW5lYXJfZ3JhZGllbnQuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0x MTkuMC42MDQ1LjEwNS91aS9nZngvZ2VvbWV0cnkvbGluZWFyX2dyYWRpZW50LmgKKy0tLSBjaHJv bWl1bS0xMTkuMC42MDQ1LjEwNS91aS9nZngvZ2VvbWV0cnkvbGluZWFyX2dyYWRpZW50LmgubWlz c2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMToyOC4wMDAwMDAwMDAgKzAxMDAKKysr KyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS91aS9nZngvZ2VvbWV0cnkvbGluZWFyX2dyYWRpZW50 LmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTI4NjkwNjggKzAxMDAKK0BAIC03LDYgKzcsNyBAQAor IAorICNpbmNsdWRlIDxzdGRpbnQuaD4KKyAKKysjaW5jbHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVk ZSA8YXJyYXk+CisgI2luY2x1ZGUgPGNzdGRkZWY+CisgI2luY2x1ZGUgPGNzdGRpbnQ+CitkaWZm IC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS91aS9nZngvbGludXgvZHJtX3V0aWxfbGludXgu aC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS91aS9nZngvbGlu dXgvZHJtX3V0aWxfbGludXguaAorLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3VpL2dmeC9s aW51eC9kcm1fdXRpbF9saW51eC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6 MTE6MjguMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdWkvZ2Z4 L2xpbnV4L2RybV91dGlsX2xpbnV4LmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTk4NjkyMTcgKzAx MDAKK0BAIC05LDYgKzksOCBAQAorIAorICNpbmNsdWRlICJ1aS9nZngvYnVmZmVyX3R5cGVzLmgi CisgCisrI2luY2x1ZGUgPGNzdGRpbnQ+CisrCisgbmFtZXNwYWNlIHVpIHsKKyAKKyBpbnQgR2V0 Rm91ckNDRm9ybWF0RnJvbUJ1ZmZlckZvcm1hdChnZng6OkJ1ZmZlckZvcm1hdCBmb3JtYXQpOwoK ZGlmZiAtLWdpdCBhL2Nocm9taXVtLTEyMC1ub19tYXRjaGluZ19jb25zdHJ1Y3Rvci5wYXRjaCBi L2Nocm9taXVtLTEyMC1ub19tYXRjaGluZ19jb25zdHJ1Y3Rvci5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMWQ5ODdhCi0tLSAvZGV2L251bGwKKysrIGIvY2hyb21p dW0tMTIwLW5vX21hdGNoaW5nX2NvbnN0cnVjdG9yLnBhdGNoCkBAIC0wLDAgKzEsNzQyIEBACitk aWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Jhc2UvbWV0cmljcy9wZXJzaXN0ZW50X2hp c3RvZ3JhbV9hbGxvY2F0b3IuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIw LjAuNjA5OS41Ni9iYXNlL21ldHJpY3MvcGVyc2lzdGVudF9oaXN0b2dyYW1fYWxsb2NhdG9yLmNj CistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9iYXNlL21ldHJpY3MvcGVyc2lzdGVudF9oaXN0 b2dyYW1fYWxsb2NhdG9yLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6 Mzk6NDAuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9iYXNlL21l dHJpY3MvcGVyc2lzdGVudF9oaXN0b2dyYW1fYWxsb2NhdG9yLmNjCTIwMjMtMTItMDMgMTc6MzE6 MjUuNzQ4NDIwMTg5ICswMTAwCitAQCAtMjE4LDEzICsyMTgsMTMgQEAgUGVyc2lzdGVudFNwYXJz ZUhpc3RvZ3JhbURhdGFNYW5hZ2VyOjpMbworICAgICAvLyBUaGUgc2FtcGxlLXJlY29yZCBjb3Vs ZCBiZSBmb3IgYW55IHNwYXJzZSBoaXN0b2dyYW0uIEFkZCB0aGUgcmVmZXJlbmNlCisgICAgIC8v IHRvIHRoZSBhcHByb3ByaWF0ZSBjb2xsZWN0aW9uIGZvciBsYXRlciB1c2UuCisgICAgIGlmIChm b3VuZF9pZCA9PSBtYXRjaF9pZCkgeworLSAgICAgIGZvdW5kX3JlY29yZHMuZW1wbGFjZV9iYWNr KHJlZiwgdmFsdWUpOworKyAgICAgIGZvdW5kX3JlY29yZHMuZW1wbGFjZV9iYWNrKCkgPSB7cmVm LCB2YWx1ZX07CisgICAgICAgZm91bmQgPSB0cnVlOworICAgICB9IGVsc2UgeworICAgICAgIHN0 ZDo6dmVjdG9yPFJlZmVyZW5jZUFuZFNhbXBsZT4qIHNhbXBsZXMgPQorICAgICAgICAgICBHZXRT YW1wbGVNYXBSZWNvcmRzV2hpbGVMb2NrZWQoZm91bmRfaWQpOworICAgICAgIENIRUNLKHNhbXBs ZXMpOworLSAgICAgIHNhbXBsZXMtPmVtcGxhY2VfYmFjayhyZWYsIHZhbHVlKTsKKysgICAgICBz YW1wbGVzLT5lbXBsYWNlX2JhY2soKSA9IHtyZWYsIHZhbHVlfTsKKyAgICAgfQorICAgfQorIAor ZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9iYXNlL3RyYWNlX2V2ZW50L3RyYWNlX2xv Zy5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Jhc2Uv dHJhY2VfZXZlbnQvdHJhY2VfbG9nLmNjCistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9iYXNl L3RyYWNlX2V2ZW50L3RyYWNlX2xvZy5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTEx LTI5IDIyOjM5OjQwLjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYv YmFzZS90cmFjZV9ldmVudC90cmFjZV9sb2cuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NDk0MjAy MDggKzAxMDAKK0BAIC0yMTkxLDggKzIxOTEsOCBAQCB2b2lkIFRyYWNlTG9nOjpTZXRUcmFjZUJ1 ZmZlckZvclRlc3RpbmcoCisgI2lmIEJVSUxERkxBRyhVU0VfUEVSRkVUVE9fQ0xJRU5UX0xJQlJB UlkpCisgdm9pZCBUcmFjZUxvZzo6T25TZXR1cChjb25zdCBwZXJmZXR0bzo6RGF0YVNvdXJjZUJh c2U6OlNldHVwQXJncyYgYXJncykgeworICAgQXV0b0xvY2sgbG9jayh0cmFja19ldmVudF9sb2Nr Xyk7CistICB0cmFja19ldmVudF9zZXNzaW9uc18uZW1wbGFjZV9iYWNrKGFyZ3MuaW50ZXJuYWxf aW5zdGFuY2VfaW5kZXgsICphcmdzLmNvbmZpZywKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXJncy5iYWNrZW5kX3R5cGUpOworKyAgdHJhY2tfZXZlbnRfc2Vzc2lvbnNf LmVtcGxhY2VfYmFjaygpID0ge2FyZ3MuaW50ZXJuYWxfaW5zdGFuY2VfaW5kZXgsICphcmdzLmNv bmZpZywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncy5iYWNrZW5k X3R5cGV9OworIH0KKyAKKyB2b2lkIFRyYWNlTG9nOjpPblN0YXJ0KGNvbnN0IHBlcmZldHRvOjpE YXRhU291cmNlQmFzZTo6U3RhcnRBcmdzJikgeworZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5 OS41Ni9jaHJvbWUvYnJvd3Nlci9jb250ZW50X3NldHRpbmdzL29uZV90aW1lX3Blcm1pc3Npb25f cHJvdmlkZXIuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41 Ni9jaHJvbWUvYnJvd3Nlci9jb250ZW50X3NldHRpbmdzL29uZV90aW1lX3Blcm1pc3Npb25fcHJv dmlkZXIuY2MKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL2NvbnRl bnRfc2V0dGluZ3Mvb25lX3RpbWVfcGVybWlzc2lvbl9wcm92aWRlci5jYy5ub19tYXRjaGluZ19j b25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjM5OjQ3LjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9t aXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvY29udGVudF9zZXR0aW5ncy9vbmVfdGlt ZV9wZXJtaXNzaW9uX3Byb3ZpZGVyLmNjCTIwMjMtMTItMDMgMTc6MzE6MjUuNzQ5NDIwMjA4ICsw MTAwCitAQCAtMjI2LDggKzIyNiw4IEBAIHZvaWQgT25lVGltZVBlcm1pc3Npb25Qcm92aWRlcjo6 T25TdXNwZW4KKyAKKyAgICAgICB3aGlsZSAocnVsZV9pdGVyYXRvciAmJiBydWxlX2l0ZXJhdG9y LT5IYXNOZXh0KCkpIHsKKyAgICAgICAgIGF1dG8gcnVsZSA9IHJ1bGVfaXRlcmF0b3ItPk5leHQo KTsKKy0gICAgICAgIHBhdHRlcm5zX3RvX2RlbGV0ZS5lbXBsYWNlX2JhY2soc2V0dGluZ190eXBl LCBydWxlLT5wcmltYXJ5X3BhdHRlcm4sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJ1bGUtPnNlY29uZGFyeV9wYXR0ZXJuKTsKKysgICAgICAgIHBhdHRlcm5zX3Rv X2RlbGV0ZS5lbXBsYWNlX2JhY2soKSA9IHtzZXR0aW5nX3R5cGUsIHJ1bGUtPnByaW1hcnlfcGF0 dGVybiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZS0+c2Vj b25kYXJ5X3BhdHRlcm59OworICAgICAgICAgcGVybWlzc2lvbnM6OlBlcm1pc3Npb25VbWFVdGls OjpSZWNvcmRPbmVUaW1lUGVybWlzc2lvbkV2ZW50KAorICAgICAgICAgICAgIHNldHRpbmdfdHlw ZSwKKyAgICAgICAgICAgICBwZXJtaXNzaW9uczo6T25lVGltZVBlcm1pc3Npb25FdmVudDo6RVhQ SVJFRF9PTl9TVVNQRU5EKTsKK0BAIC0zMjksOCArMzI5LDggQEAgdm9pZCBPbmVUaW1lUGVybWlz c2lvblByb3ZpZGVyOjpEZWxldGVFbgorICAgICBhdXRvIHJ1bGUgPSBydWxlX2l0ZXJhdG9yLT5O ZXh0KCk7CisgICAgIGlmIChydWxlLT5wcmltYXJ5X3BhdHRlcm4uTWF0Y2hlcyhvcmlnaW5fZ3Vy bCkgJiYKKyAgICAgICAgIHJ1bGUtPnNlY29uZGFyeV9wYXR0ZXJuLk1hdGNoZXMob3JpZ2luX2d1 cmwpKSB7CistICAgICAgcGF0dGVybnNfdG9fZGVsZXRlLmVtcGxhY2VfYmFjaygKKy0gICAgICAg ICAgY29udGVudF9zZXR0aW5nX3R5cGUsIHJ1bGUtPnByaW1hcnlfcGF0dGVybiwgcnVsZS0+c2Vj b25kYXJ5X3BhdHRlcm4pOworKyAgICAgIHBhdHRlcm5zX3RvX2RlbGV0ZS5lbXBsYWNlX2JhY2so KSA9IHsKKysgICAgICAgICAgY29udGVudF9zZXR0aW5nX3R5cGUsIHJ1bGUtPnByaW1hcnlfcGF0 dGVybiwgcnVsZS0+c2Vjb25kYXJ5X3BhdHRlcm59OworICAgICAgIHBlcm1pc3Npb25zOjpQZXJt aXNzaW9uVW1hVXRpbDo6UmVjb3JkT25lVGltZVBlcm1pc3Npb25FdmVudCgKKyAgICAgICAgICAg Y29udGVudF9zZXR0aW5nX3R5cGUsIHRyaWdnZXJfZXZlbnQpOworICAgICB9CitkaWZmIC11cCBj aHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL2VudGVycHJpc2UvcHJvZmlsZV9t YW5hZ2VtZW50L3Byb2ZpbGVfbWFuYWdlbWVudF9uYXZpZ2F0aW9uX3Rocm90dGxlLmNjLm5vX21h dGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIv ZW50ZXJwcmlzZS9wcm9maWxlX21hbmFnZW1lbnQvcHJvZmlsZV9tYW5hZ2VtZW50X25hdmlnYXRp b25fdGhyb3R0bGUuY2MKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2Vy L2VudGVycHJpc2UvcHJvZmlsZV9tYW5hZ2VtZW50L3Byb2ZpbGVfbWFuYWdlbWVudF9uYXZpZ2F0 aW9uX3Rocm90dGxlLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6Mzk6 NDguMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJv d3Nlci9lbnRlcnByaXNlL3Byb2ZpbGVfbWFuYWdlbWVudC9wcm9maWxlX21hbmFnZW1lbnRfbmF2 aWdhdGlvbl90aHJvdHRsZS5jYwkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc0OTQyMDIwOCArMDEwMAor QEAgLTY3LDggKzY3LDggQEAgYmFzZTo6ZmxhdF9tYXA8c3RkOjpzdHJpbmcsIFNBTUxQcm9maWxl QQorICAgLy8gVE9ETyhjcmJ1Zy5jb20vMTQ0NTA3Mik6IEFkZCBhY3R1YWwgZG9tYWlucyB3aXRo IGF0dHJpYnV0ZSBuYW1lcy4KKyAgIHByb2ZpbGVfYXR0cmlidXRlcy0+aW5zZXJ0KHN0ZDo6bWFr ZV9wYWlyKAorICAgICAgICJzdXBwb3J0ZWQudGVzdCIsCistICAgICAgU0FNTFByb2ZpbGVBdHRy aWJ1dGVzKCJwbGFjZWhvbGRlck5hbWUiLCAicGxhY2Vob2xkZXJEb21haW4iLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAicGxhY2Vob2xkZXJUb2tlbiIpKSk7CisrICAgICAgU0FNTFBy b2ZpbGVBdHRyaWJ1dGVzeyJwbGFjZWhvbGRlck5hbWUiLCAicGxhY2Vob2xkZXJEb21haW4iLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGxhY2Vob2xkZXJUb2tlbiJ9KSk7CisgCisg ICAvLyBFeHRyYWN0IGRvbWFpbnMgYW5kIGF0dHJpYnV0ZXMgZnJvbSB0aGUgY29tbWFuZCBsaW5l IHN3aXRjaC4KKyAgIGNvbnN0IGJhc2U6OkNvbW1hbmRMaW5lJiBjb21tYW5kX2xpbmUgPQorZGlm ZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS9vbW5pYm94L2No cm9tZV9vbW5pYm94X2NsaWVudC5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0x MjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL29tbmlib3gvY2hyb21lX29tbmlib3hfY2xp ZW50LmNjCistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS9vbW5p Ym94L2Nocm9tZV9vbW5pYm94X2NsaWVudC5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIz LTExLTI5IDIyOjM5OjUyLjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTEyMC4wLjYwOTku NTYvY2hyb21lL2Jyb3dzZXIvdWkvb21uaWJveC9jaHJvbWVfb21uaWJveF9jbGllbnQuY2MJMjAy My0xMi0wMyAxNzozMToyNS43NDk0MjAyMDggKzAxMDAKK0BAIC00NzQsMTAgKzQ3NCwxMCBAQCB2 b2lkIENocm9tZU9tbmlib3hDbGllbnQ6Ok9uQXV0b2NvbXBsZXRlCisgICAgICAgICAgICAgICBh bHRlcm5hdGl2ZV9uYXZfbWF0Y2gpOworIAorICAgLy8gU3RvcmUgdGhlIGRldGFpbHMgbmVjZXNz YXJ5IHRvIG9wZW4gdGhlIG9tbmlib3ggbWF0Y2ggdmlhIGJyb3dzZXIgY29tbWFuZHMuCistICBs b2NhdGlvbl9iYXJfLT5zZXRfbmF2aWdhdGlvbl9wYXJhbXMoTG9jYXRpb25CYXI6Ok5hdmlnYXRp b25QYXJhbXMoCisrICBsb2NhdGlvbl9iYXJfLT5zZXRfbmF2aWdhdGlvbl9wYXJhbXMoTG9jYXRp b25CYXI6Ok5hdmlnYXRpb25QYXJhbXN7CisgICAgICAgZGVzdGluYXRpb25fdXJsLCBkaXNwb3Np dGlvbiwgdHJhbnNpdGlvbiwgbWF0Y2hfc2VsZWN0aW9uX3RpbWVzdGFtcCwKKyAgICAgICBkZXN0 aW5hdGlvbl91cmxfZW50ZXJlZF93aXRob3V0X3NjaGVtZSwKKy0gICAgICBkZXN0aW5hdGlvbl91 cmxfZW50ZXJlZF93aXRoX2h0dHBfc2NoZW1lKSk7CisrICAgICAgZGVzdGluYXRpb25fdXJsX2Vu dGVyZWRfd2l0aF9odHRwX3NjaGVtZX0pOworIAorICAgaWYgKGJyb3dzZXJfKSB7CisgICAgIGF1 dG8gbmF2aWdhdGlvbiA9IGNocm9tZTo6T3BlbkN1cnJlbnRVUkwoYnJvd3Nlcl8pOworZGlmZiAt dXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS9zYWZldHlfaHViL21l bnVfbm90aWZpY2F0aW9uX3NlcnZpY2UuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21p dW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS9zYWZldHlfaHViL21lbnVfbm90aWZp Y2F0aW9uX3NlcnZpY2UuY2MKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93 c2VyL3VpL3NhZmV0eV9odWIvbWVudV9ub3RpZmljYXRpb25fc2VydmljZS5jYy5ub19tYXRjaGlu Z19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjM5OjUyLjAwMDAwMDAwMCArMDEwMAorKysrIGNo cm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvc2FmZXR5X2h1Yi9tZW51X25v dGlmaWNhdGlvbl9zZXJ2aWNlLmNjCTIwMjMtMTItMDMgMTc6MzE6MjUuNzU2NDIwMzQyICswMTAw CitAQCAtMTQ4LDggKzE0OCw4IEBAIFNhZmV0eUh1Yk1lbnVOb3RpZmljYXRpb25TZXJ2aWNlOjpH ZXROb3QKKyAgIC8vIFRoZSBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIHNob3dpbmcgdGhlIG5vdGlm aWNhdGlvbiBuZWVkcyB0byBiZSBwZXJzaXN0ZWQKKyAgIC8vIGFzIHdlbGwuCisgICBTYXZlTm90 aWZpY2F0aW9uc1RvUHJlZnMoKTsKKy0gIHJldHVybiBNZW51Tm90aWZpY2F0aW9uRW50cnkobm90 aWZpY2F0aW9uX3RvX3Nob3ctPkdldE5vdGlmaWNhdGlvbkNvbW1hbmRJZCgpLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb25fdG9fc2hvdy0+R2V0Tm90aWZpY2F0 aW9uU3RyaW5nKCkpOworKyAgcmV0dXJuIE1lbnVOb3RpZmljYXRpb25FbnRyeXtub3RpZmljYXRp b25fdG9fc2hvdy0+R2V0Tm90aWZpY2F0aW9uQ29tbWFuZElkKCksCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbl90b19zaG93LT5HZXROb3RpZmljYXRpb25TdHJp bmcoKX07CisgfQorIAorIGFic2w6Om9wdGlvbmFsPFJlc3VsdE1hcD4KK2RpZmYgLXVwIGNocm9t aXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1i ZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfYXNrX3ZpZXcuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0 b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNz aW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9hc2tfdmlldy5jYworLS0tIGNocm9taXVt LTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRk ZWRfcGVybWlzc2lvbl9wcm9tcHRfYXNrX3ZpZXcuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJ MjAyMy0xMS0yOSAyMjozOTo1My4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42 MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1p c3Npb25fcHJvbXB0X2Fza192aWV3LmNjCTIwMjMtMTItMDMgMTc6MzE6MjUuNzQ5NDIwMjA4ICsw MTAwCitAQCAtNTUsMTIgKzU1LDEyIEBAIHN0ZDo6dmVjdG9yPEVtYmVkZGVkUGVybWlzc2lvblBy b21wdEFza1YKKyBFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRBc2tWaWV3OjpHZXRCdXR0b25zQ29u ZmlndXJhdGlvbigpIGNvbnN0IHsKKyAgIHN0ZDo6dmVjdG9yPEJ1dHRvbkNvbmZpZ3VyYXRpb24+ IGJ1dHRvbnM7CisgICBpZiAoYmFzZTo6RmVhdHVyZUxpc3Q6OklzRW5hYmxlZChwZXJtaXNzaW9u czo6ZmVhdHVyZXM6OmtPbmVUaW1lUGVybWlzc2lvbikpIHsKKy0gICAgYnV0dG9ucy5lbXBsYWNl X2JhY2soCisrICAgIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKCkgPSB7CisgICAgICAgICBsMTBuX3V0 aWw6OkdldFN0cmluZ1VURjE2KElEU19QRVJNSVNTSU9OX0FMTE9XX1RISVNfVElNRSksCistICAg ICAgICBCdXR0b25UeXBlOjprQWxsb3dUaGlzVGltZSwgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWwp OworKyAgICAgICAgQnV0dG9uVHlwZTo6a0FsbG93VGhpc1RpbWUsIHVpOjpCdXR0b25TdHlsZTo6 a1RvbmFsfTsKKyAgIH0KKy0gIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKGwxMG5fdXRpbDo6R2V0U3Ry aW5nVVRGMTYoSURTX1BFUk1JU1NJT05fQUxMT1cpLAorLSAgICAgICAgICAgICAgICAgICAgICAg QnV0dG9uVHlwZTo6a0FsbG93LCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbCk7CisrICBidXR0b25z LmVtcGxhY2VfYmFjaygpID0ge2wxMG5fdXRpbDo6R2V0U3RyaW5nVVRGMTYoSURTX1BFUk1JU1NJ T05fQUxMT1cpLAorKyAgICAgICAgICAgICAgICAgICAgICAgQnV0dG9uVHlwZTo6a0FsbG93LCB1 aTo6QnV0dG9uU3R5bGU6OmtUb25hbH07CisgICByZXR1cm4gYnV0dG9uczsKKyB9CisgCitkaWZm IC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1p c3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X2Jhc2Vfdmlldy5oLm5vX21hdGNoaW5n X2NvbnN0cnVjdG9yIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvdmll d3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfYmFzZV92aWV3LmgKKy0t LSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Np b25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X2Jhc2Vfdmlldy5oLm5vX21hdGNoaW5nX2Nv bnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6Mzk6NTMuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21p dW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJl ZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9iYXNlX3ZpZXcuaAkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc1 MDQyMDIyNyArMDEwMAorQEAgLTg2LDYgKzg2LDcgQEAgY2xhc3MgRW1iZWRkZWRQZXJtaXNzaW9u UHJvbXB0QmFzZVZpZXcgOgorICAgc3RydWN0IFJlcXVlc3RMaW5lQ29uZmlndXJhdGlvbiB7Cisg ICAgIGNvbnN0IHJhd19wdHI8Y29uc3QgZ2Z4OjpWZWN0b3JJY29uPiBpY29uOworICAgICBzdGQ6 OnUxNnN0cmluZyBtZXNzYWdlOworKyAgICBSZXF1ZXN0TGluZUNvbmZpZ3VyYXRpb24oYXV0byBp LCBhdXRvIG0pIDogaWNvbihpKSwgbWVzc2FnZShtKSB7IH0KKyAgIH07CisgCisgICBzdHJ1Y3Qg QnV0dG9uQ29uZmlndXJhdGlvbiB7CitkaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2No cm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJv bXB0X3BvbGljeV92aWV3LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTEyMC4w LjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVy bWlzc2lvbl9wcm9tcHRfcG9saWN5X3ZpZXcuY2MKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2 L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25f cHJvbXB0X3BvbGljeV92aWV3LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkg MjI6Mzk6NTMuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJv bWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21w dF9wb2xpY3lfdmlldy5jYwkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc1MDQyMDIyNyArMDEwMAorQEAg LTQ4LDggKzQ4LDggQEAgRW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0UG9saWN5Vmlldzo6R2V0Ugor IHN0ZDo6dmVjdG9yPEVtYmVkZGVkUGVybWlzc2lvblByb21wdFBvbGljeVZpZXc6OkJ1dHRvbkNv bmZpZ3VyYXRpb24+CisgRW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0UG9saWN5Vmlldzo6R2V0QnV0 dG9uc0NvbmZpZ3VyYXRpb24oKSBjb25zdCB7CisgICBzdGQ6OnZlY3RvcjxCdXR0b25Db25maWd1 cmF0aW9uPiBidXR0b25zOworLSAgYnV0dG9ucy5lbXBsYWNlX2JhY2sobDEwbl91dGlsOjpHZXRT dHJpbmdVVEYxNihJRFNfRU1CRURERURfUFJPTVBUX09LX0xBQkVMKSwKKy0gICAgICAgICAgICAg ICAgICAgICAgIEJ1dHRvblR5cGU6OmtQb2xpY3lPSywgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWwp OworKyAgYnV0dG9ucy5lbXBsYWNlX2JhY2soKSA9IHtsMTBuX3V0aWw6OkdldFN0cmluZ1VURjE2 KElEU19FTUJFRERFRF9QUk9NUFRfT0tfTEFCRUwpLAorKyAgICAgICAgICAgICAgICAgICAgICAg QnV0dG9uVHlwZTo6a1BvbGljeU9LLCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbH07CisgICByZXR1 cm4gYnV0dG9uczsKKyB9CisgCitkaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9t ZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0 X3ByZXZpb3VzbHlfZGVuaWVkX3ZpZXcuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21p dW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJl ZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9wcmV2aW91c2x5X2RlbmllZF92aWV3LmNjCistLS0gY2hy b21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9l bWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9wcmV2aW91c2x5X2RlbmllZF92aWV3LmNjLm5vX21h dGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6Mzk6NTMuMDAwMDAwMDAwICswMTAwCisr KysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNz aW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9wcmV2aW91c2x5X2RlbmllZF92aWV3LmNj CTIwMjMtMTItMDMgMTc6MzE6MjUuNzU2NDIwMzQyICswMTAwCitAQCAtNjMsMTggKzYzLDE4IEBA IEVtYmVkZGVkUGVybWlzc2lvblByb21wdFByZXZpb3VzbHlEZW5pZWQKKyBzdGQ6OnZlY3RvcjxF bWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRQcmV2aW91c2x5RGVuaWVkVmlldzo6QnV0dG9uQ29uZmln dXJhdGlvbj4KKyBFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRQcmV2aW91c2x5RGVuaWVkVmlldzo6 R2V0QnV0dG9uc0NvbmZpZ3VyYXRpb24oKSBjb25zdCB7CisgICBzdGQ6OnZlY3RvcjxCdXR0b25D b25maWd1cmF0aW9uPiBidXR0b25zOworLSAgYnV0dG9ucy5lbXBsYWNlX2JhY2soCisrICBidXR0 b25zLmVtcGxhY2VfYmFjaygpID0geworICAgICAgIGwxMG5fdXRpbDo6R2V0U3RyaW5nVVRGMTYo SURTX0VNQkVEREVEX1BST01QVF9DT05USU5VRV9OT1RfQUxMT1dJTkcpLAorLSAgICAgIEJ1dHRv blR5cGU6OmtDb250aW51ZU5vdEFsbG93aW5nLCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbCk7Cisr ICAgICAgQnV0dG9uVHlwZTo6a0NvbnRpbnVlTm90QWxsb3dpbmcsIHVpOjpCdXR0b25TdHlsZTo6 a1RvbmFsfTsKKyAKKyAgIGlmIChiYXNlOjpGZWF0dXJlTGlzdDo6SXNFbmFibGVkKHBlcm1pc3Np b25zOjpmZWF0dXJlczo6a09uZVRpbWVQZXJtaXNzaW9uKSkgeworLSAgICBidXR0b25zLmVtcGxh Y2VfYmFjaygKKysgICAgYnV0dG9ucy5lbXBsYWNlX2JhY2soKSA9IHsKKyAgICAgICAgIGwxMG5f dXRpbDo6R2V0U3RyaW5nVVRGMTYoSURTX1BFUk1JU1NJT05fQUxMT1dfVEhJU19USU1FKSwKKy0g ICAgICAgIEJ1dHRvblR5cGU6OmtBbGxvd1RoaXNUaW1lLCB1aTo6QnV0dG9uU3R5bGU6OmtUb25h bCk7CisrICAgICAgICBCdXR0b25UeXBlOjprQWxsb3dUaGlzVGltZSwgdWk6OkJ1dHRvblN0eWxl OjprVG9uYWx9OworICAgfSBlbHNlIHsKKy0gICAgYnV0dG9ucy5lbXBsYWNlX2JhY2soCisrICAg IGJ1dHRvbnMuZW1wbGFjZV9iYWNrKCkgPSB7CisgICAgICAgICBsMTBuX3V0aWw6OkdldFN0cmlu Z1VURjE2KElEU19QRVJNSVNTSU9OX0FMTE9XX1RISVNfVElNRSksCistICAgICAgICBCdXR0b25U eXBlOjprQWxsb3csIHVpOjpCdXR0b25TdHlsZTo6a1RvbmFsKTsKKysgICAgICAgIEJ1dHRvblR5 cGU6OmtBbGxvdywgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWx9OworICAgfQorICAgcmV0dXJuIGJ1 dHRvbnM7CisgfQorZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nl ci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9wcmV2aW91 c2x5X2dyYW50ZWRfdmlldy5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAu MC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Bl cm1pc3Npb25fcHJvbXB0X3ByZXZpb3VzbHlfZ3JhbnRlZF92aWV3LmNjCistLS0gY2hyb21pdW0t MTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRl ZF9wZXJtaXNzaW9uX3Byb21wdF9wcmV2aW91c2x5X2dyYW50ZWRfdmlldy5jYy5ub19tYXRjaGlu Z19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjM5OjUzLjAwMDAwMDAwMCArMDEwMAorKysrIGNo cm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMv ZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfcHJldmlvdXNseV9ncmFudGVkX3ZpZXcuY2MJMjAy My0xMi0wMyAxNzozMToyNS43NTA0MjAyMjcgKzAxMDAKK0BAIC01NywxMyArNTcsMTMgQEAgRW1i ZWRkZWRQZXJtaXNzaW9uUHJvbXB0UHJldmlvdXNseUdyYW50ZQorIHN0ZDo6dmVjdG9yPEVtYmVk ZGVkUGVybWlzc2lvblByb21wdFByZXZpb3VzbHlHcmFudGVkVmlldzo6QnV0dG9uQ29uZmlndXJh dGlvbj4KKyBFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRQcmV2aW91c2x5R3JhbnRlZFZpZXc6Okdl dEJ1dHRvbnNDb25maWd1cmF0aW9uKCkgY29uc3QgeworICAgc3RkOjp2ZWN0b3I8QnV0dG9uQ29u ZmlndXJhdGlvbj4gYnV0dG9uczsKKy0gIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKAorKyAgYnV0dG9u cy5lbXBsYWNlX2JhY2soKSA9IHsKKyAgICAgICBsMTBuX3V0aWw6OkdldFN0cmluZ1VURjE2KElE U19FTUJFRERFRF9QUk9NUFRfQ09OVElOVUVfQUxMT1dJTkcpLAorLSAgICAgIEJ1dHRvblR5cGU6 OmtDb250aW51ZUFsbG93aW5nLCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbCk7CisrICAgICAgQnV0 dG9uVHlwZTo6a0NvbnRpbnVlQWxsb3dpbmcsIHVpOjpCdXR0b25TdHlsZTo6a1RvbmFsfTsKKyAK Ky0gIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKAorKyAgYnV0dG9ucy5lbXBsYWNlX2JhY2soKSA9IHsK KyAgICAgICBsMTBuX3V0aWw6OkdldFN0cmluZ1VURjE2KElEU19FTUJFRERFRF9QUk9NUFRfU1RP UF9BTExPV0lORyksCistICAgICAgQnV0dG9uVHlwZTo6a1N0b3BBbGxvd2luZywgdWk6OkJ1dHRv blN0eWxlOjprVG9uYWwpOworKyAgICAgIEJ1dHRvblR5cGU6OmtTdG9wQWxsb3dpbmcsIHVpOjpC dXR0b25TdHlsZTo6a1RvbmFsfTsKKyAgIHJldHVybiBidXR0b25zOworIH0KKyAKK2RpZmYgLXVw IGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL2NhcGFiaWxp dGllcy5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2No cm9tZS90ZXN0L2Nocm9tZWRyaXZlci9jYXBhYmlsaXRpZXMuY2MKKy0tLSBjaHJvbWl1bS0xMjAu MC42MDk5LjU2L2Nocm9tZS90ZXN0L2Nocm9tZWRyaXZlci9jYXBhYmlsaXRpZXMuY2Mubm9fbWF0 Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjozOTo1NC4wMDAwMDAwMDAgKzAxMDAKKysr KyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS90ZXN0L2Nocm9tZWRyaXZlci9jYXBhYmls aXRpZXMuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTA0MjAyMjcgKzAxMDAKK0BAIC0zNDYsNyAr MzQ2LDcgQEAgU3RhdHVzIFBhcnNlTW9iaWxlRW11bGF0aW9uKGNvbnN0IGJhc2U6OgorICAgICAg ICAgICAgICAgICAgICAgICAgICIndmVyc2lvbicgZmllbGQgb2YgdHlwZSBzdHJpbmciKTsKKyAg ICAgICAgIH0KKyAKKy0gICAgICAgIGJyYW5kcy5lbXBsYWNlX2JhY2soKmJyYW5kLCAqdmVyc2lv bik7CisrICAgICAgICBicmFuZHMuZW1wbGFjZV9iYWNrKCkgPSB7KmJyYW5kLCAqdmVyc2lvbn07 CisgICAgICAgfQorIAorICAgICAgIGNsaWVudF9oaW50cy5icmFuZHMgPSBzdGQ6Om1vdmUoYnJh bmRzKTsKK0BAIC0zODQsNyArMzg0LDcgQEAgU3RhdHVzIFBhcnNlTW9iaWxlRW11bGF0aW9uKGNv bnN0IGJhc2U6OgorICAgICAgICAgICAgICAgICAgICAgICAgICJhICd2ZXJzaW9uJyBmaWVsZCBv ZiB0eXBlIHN0cmluZyIpOworICAgICAgICAgfQorIAorLSAgICAgICAgZnVsbF92ZXJzaW9uX2xp c3QuZW1wbGFjZV9iYWNrKCpicmFuZCwgKnZlcnNpb24pOworKyAgICAgICAgZnVsbF92ZXJzaW9u X2xpc3QuZW1wbGFjZV9iYWNrKCkgPSB7KmJyYW5kLCAqdmVyc2lvbn07CisgICAgICAgfQorIAor ICAgICAgIGNsaWVudF9oaW50cy5mdWxsX3ZlcnNpb25fbGlzdCA9IHN0ZDo6bW92ZShmdWxsX3Zl cnNpb25fbGlzdCk7CitkaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbXBvbmVudHMv YXV0b2ZpbGwvY29yZS9icm93c2VyL2NvbnRhY3RfaW5mb19zeW5jX3V0aWwuY2Mubm9fbWF0Y2hp bmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb21wb25lbnRzL2F1dG9maWxs L2NvcmUvYnJvd3Nlci9jb250YWN0X2luZm9fc3luY191dGlsLmNjCistLS0gY2hyb21pdW0tMTIw LjAuNjA5OS41Ni9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci9jb250YWN0X2luZm9f c3luY191dGlsLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6Mzk6NTcu MDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb21wb25lbnRzL2F1 dG9maWxsL2NvcmUvYnJvd3Nlci9jb250YWN0X2luZm9fc3luY191dGlsLmNjCTIwMjMtMTItMDMg MTc6MzE6MjUuNzUwNDIwMjI3ICswMTAwCitAQCAtMTk3LDkgKzE5Nyw5IEBAIGNsYXNzIENvbnRh Y3RJbmZvUHJvZmlsZVNldHRlciB7CisgICAgICAgQ0hFQ0sob2JzZXJ2YXRpb25zLmVtcHR5KCkp OworICAgICAgIGZvciAoY29uc3Qgc3luY19wYjo6Q29udGFjdEluZm9TcGVjaWZpY3M6Ok9ic2Vy dmF0aW9uJiBwcm90b19vYnNlcnZhdGlvbiA6CisgICAgICAgICAgICBtZXRhZGF0YS5vYnNlcnZh dGlvbnMoKSkgeworLSAgICAgICAgb2JzZXJ2YXRpb25zLmVtcGxhY2VfYmFjayhwcm90b19vYnNl cnZhdGlvbi50eXBlKCksCisrICAgICAgICBvYnNlcnZhdGlvbnMuZW1wbGFjZV9iYWNrKCkgPSB7 c3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4ocHJvdG9fb2JzZXJ2YXRpb24udHlwZSgpKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvZmlsZVRva2VuUXVhbGl0eTo6Rm9y bVNpZ25hdHVyZUhhc2goCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw cm90b19vYnNlcnZhdGlvbi5mb3JtX2hhc2goKSkpOworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcHJvdG9fb2JzZXJ2YXRpb24uZm9ybV9oYXNoKCkpfTsKKyAgICAgICB9 CisgICAgIH0KKyAgIH0KK2RpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29tcG9uZW50 cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvd2ViZGF0YS9hdXRvZmlsbF90YWJsZS5jYy5ub19tYXRj aGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbXBvbmVudHMvYXV0b2Zp bGwvY29yZS9icm93c2VyL3dlYmRhdGEvYXV0b2ZpbGxfdGFibGUuY2MKKy0tLSBjaHJvbWl1bS0x MjAuMC42MDk5LjU2L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL3dlYmRhdGEvYXV0 b2ZpbGxfdGFibGUuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjozOTo1 Ny4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbXBvbmVudHMv YXV0b2ZpbGwvY29yZS9icm93c2VyL3dlYmRhdGEvYXV0b2ZpbGxfdGFibGUuY2MJMjAyMy0xMi0w MyAxNzozMToyNS43NTE0MjAyNDYgKzAxMDAKK0BAIC0xNzYzLDEwICsxNzYzLDEwIEBAIHN0ZDo6 dW5pcXVlX3B0cjxBdXRvZmlsbFByb2ZpbGU+IEF1dG9maWwKKyAgICAgfQorIAorICAgICBiYXNl OjpzcGFuPGNvbnN0IHVpbnQ4X3Q+IG9ic2VydmF0aW9uc19kYXRhID0gcy5Db2x1bW5CbG9iKDMp OworLSAgICBmaWVsZF90eXBlX3ZhbHVlcy5lbXBsYWNlX2JhY2soCisrICAgIGZpZWxkX3R5cGVf dmFsdWVzLmVtcGxhY2VfYmFjaygpID0geworICAgICAgICAgdHlwZSwgcy5Db2x1bW5TdHJpbmcx NigxKSwgcy5Db2x1bW5JbnQoMiksCisgICAgICAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PihvYnNl cnZhdGlvbnNfZGF0YS5iZWdpbigpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Jz ZXJ2YXRpb25zX2RhdGEuZW5kKCkpKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9i c2VydmF0aW9uc19kYXRhLmVuZCgpKX07CisgCisgICAgIGlmICh0eXBlID09IEFERFJFU1NfSE9N RV9DT1VOVFJZKSB7CisgICAgICAgY291bnRyeV9jb2RlID0gYmFzZTo6VVRGMTZUb1VURjgocy5D b2x1bW5TdHJpbmcxNigxKSk7CitkaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbXBv bmVudHMvcGFzc3dvcmRfbWFuYWdlci9jb3JlL2Jyb3dzZXIvcGFzc3dvcmRfbWFuYWdlci5jYy5u b19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbXBvbmVudHMv cGFzc3dvcmRfbWFuYWdlci9jb3JlL2Jyb3dzZXIvcGFzc3dvcmRfbWFuYWdlci5jYworLS0tIGNo cm9taXVtLTEyMC4wLjYwOTkuNTYvY29tcG9uZW50cy9wYXNzd29yZF9tYW5hZ2VyL2NvcmUvYnJv d3Nlci9wYXNzd29yZF9tYW5hZ2VyLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEt MjkgMjI6Mzk6NTguMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9j b21wb25lbnRzL3Bhc3N3b3JkX21hbmFnZXIvY29yZS9icm93c2VyL3Bhc3N3b3JkX21hbmFnZXIu Y2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTE0MjAyNDYgKzAxMDAKK0BAIC02MzAsNyArNjMwLDcg QEAgdm9pZCBQYXNzd29yZE1hbmFnZXI6Ok9uVXNlck1vZGlmaWVkTm9uUAorICAgLy8gfGRyaXZl cnwgbWlnaHQgYmUgZW1wdHkgb24gaU9TIG9yIGluIHRlc3RzLgorICAgaW50IGRyaXZlcl9pZCA9 IGRyaXZlciA/IGRyaXZlci0+R2V0SWQoKSA6IDA7CisgICBwb3NzaWJsZV91c2VybmFtZXNfLlB1 dCgKKy0gICAgICBQb3NzaWJsZVVzZXJuYW1lRmllbGRJZGVudGlmaWVyKGRyaXZlcl9pZCwgcmVu ZGVyZXJfaWQpLAorKyAgICAgIFBvc3NpYmxlVXNlcm5hbWVGaWVsZElkZW50aWZpZXJ7ZHJpdmVy X2lkLCByZW5kZXJlcl9pZH0sCisgICAgICAgUG9zc2libGVVc2VybmFtZURhdGEoR2V0U2lnbm9u UmVhbG0oZHJpdmVyLT5HZXRMYXN0Q29tbWl0dGVkVVJMKCkpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJlbmRlcmVyX2lkLCB2YWx1ZSwgYmFzZTo6VGltZTo6Tm93KCksIGRyaXZlcl9p ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGVfYXR0cmlidXRlX2hh c191c2VybmFtZSwgaXNfbGlrZWx5X290cCkpOworZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5 OS41Ni9jb21wb25lbnRzL3Zpei9zZXJ2aWNlL2Rpc3BsYXlfZW1iZWRkZXIvc2tpYV9vdXRwdXRf c3VyZmFjZV9pbXBsX29uX2dwdS5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0x MjAuMC42MDk5LjU2L2NvbXBvbmVudHMvdml6L3NlcnZpY2UvZGlzcGxheV9lbWJlZGRlci9za2lh X291dHB1dF9zdXJmYWNlX2ltcGxfb25fZ3B1LmNjCistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41 Ni9jb21wb25lbnRzL3Zpei9zZXJ2aWNlL2Rpc3BsYXlfZW1iZWRkZXIvc2tpYV9vdXRwdXRfc3Vy ZmFjZV9pbXBsX29uX2dwdS5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIy OjQwOjAxLjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29tcG9u ZW50cy92aXovc2VydmljZS9kaXNwbGF5X2VtYmVkZGVyL3NraWFfb3V0cHV0X3N1cmZhY2VfaW1w bF9vbl9ncHUuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTE0MjAyNDYgKzAxMDAKK0BAIC0xNTY3 LDcgKzE1NjcsNyBAQCB2b2lkIFNraWFPdXRwdXRTdXJmYWNlSW1wbE9uR3B1OjpDb3B5T3V0Cisg CisgICAgICAgLy8gSXNzdWUgcmVhZGJhY2tzIGZyb20gdGhlIHN1cmZhY2VzOgorICAgICAgIGZv ciAoc2l6ZV90IGkgPSAwOyBpIDwgQ29weU91dHB1dFJlc3VsdDo6a05WMTJNYXhQbGFuZXM7ICsr aSkgeworLSAgICAgICAgU2tJU2l6ZSBzaXplKHBsYW5lX3N1cmZhY2VzW2ldLT53aWR0aCgpLCBw bGFuZV9zdXJmYWNlc1tpXS0+aGVpZ2h0KCkpOworKyAgICAgICAgU2tJU2l6ZSBzaXple3BsYW5l X3N1cmZhY2VzW2ldLT53aWR0aCgpLCBwbGFuZV9zdXJmYWNlc1tpXS0+aGVpZ2h0KCl9OworICAg ICAgICAgU2tJbWFnZUluZm8gZHN0X2luZm8gPSBTa0ltYWdlSW5mbzo6TWFrZSgKKyAgICAgICAg ICAgICBzaXplLCAoaSA9PSAwKSA/IGtBbHBoYV84X1NrQ29sb3JUeXBlIDoga1I4RzhfdW5vcm1f U2tDb2xvclR5cGUsCisgICAgICAgICAgICAga1VucHJlbXVsX1NrQWxwaGFUeXBlKTsKK2RpZmYg LXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29udGVudC9icm93c2VyL2Rvd25sb2FkL3NhdmVf cGFja2FnZS5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2 L2NvbnRlbnQvYnJvd3Nlci9kb3dubG9hZC9zYXZlX3BhY2thZ2UuY2MKKy0tLSBjaHJvbWl1bS0x MjAuMC42MDk5LjU2L2NvbnRlbnQvYnJvd3Nlci9kb3dubG9hZC9zYXZlX3BhY2thZ2UuY2Mubm9f bWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjo0MDowMS4wMDAwMDAwMDAgKzAxMDAK KysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbnRlbnQvYnJvd3Nlci9kb3dubG9hZC9zYXZl X3BhY2thZ2UuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTI0MjAyNjUgKzAxMDAKK0BAIC03Njcs OCArNzY3LDggQEAgdm9pZCBTYXZlUGFja2FnZTo6RmluaXNoKCkgeworICAgaWYgKGRvd25sb2Fk XykgeworICAgICBzdGQ6OnZlY3Rvcjxkb3dubG9hZDo6RG93bmxvYWRTYXZlSXRlbURhdGE6Okl0 ZW1JbmZvPiBmaWxlczsKKyAgICAgZm9yIChhdXRvJiBpdGVtIDogc2F2ZWRfc3VjY2Vzc19pdGVt c18pIHsKKy0gICAgICBmaWxlcy5lbXBsYWNlX2JhY2soaXRlbS5zZWNvbmQtPmZ1bGxfcGF0aCgp LCBpdGVtLnNlY29uZC0+dXJsKCksCistICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uc2Vj b25kLT5yZWZlcnJlcigpLnVybCk7CisrICAgICAgZmlsZXMuZW1wbGFjZV9iYWNrKCkgPSB7aXRl bS5zZWNvbmQtPmZ1bGxfcGF0aCgpLCBpdGVtLnNlY29uZC0+dXJsKCksCisrICAgICAgICAgICAg ICAgICAgICAgICAgIGl0ZW0uc2Vjb25kLT5yZWZlcnJlcigpLnVybH07CisgICAgIH0KKyAgICAg ZG93bmxvYWQ6OkRvd25sb2FkU2F2ZUl0ZW1EYXRhOjpBdHRhY2hJdGVtRGF0YShkb3dubG9hZF8s IHN0ZDo6bW92ZShmaWxlcykpOworICAgfQorZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41 Ni9jb250ZW50L2Jyb3dzZXIvaW50ZXJlc3RfZ3JvdXAvaW50ZXJlc3RfZ3JvdXBfc3RvcmFnZS5j Yy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbnRlbnQv YnJvd3Nlci9pbnRlcmVzdF9ncm91cC9pbnRlcmVzdF9ncm91cF9zdG9yYWdlLmNjCistLS0gY2hy b21pdW0tMTIwLjAuNjA5OS41Ni9jb250ZW50L2Jyb3dzZXIvaW50ZXJlc3RfZ3JvdXAvaW50ZXJl c3RfZ3JvdXBfc3RvcmFnZS5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIy OjQwOjAxLjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29udGVu dC9icm93c2VyL2ludGVyZXN0X2dyb3VwL2ludGVyZXN0X2dyb3VwX3N0b3JhZ2UuY2MJMjAyMy0x Mi0wMyAxNzozMToyNS43NTI0MjAyNjUgKzAxMDAKK0BAIC0zMDAyLDEwICszMDAyLDEwIEBAIERv R2V0S0Fub255bWl0eURhdGEoc3FsOjpEYXRhYmFzZSYgZGIsCisgCisgICBzdGQ6OnZlY3RvcjxT dG9yYWdlSW50ZXJlc3RHcm91cDo6S0Fub255bWl0eURhdGE+IGtfYW5vbl9kYXRhOworICAgd2hp bGUgKGludGVyZXN0X2dyb3VwX2thbm9uX3F1ZXJ5LlN0ZXAoKSkgeworLSAgICBrX2Fub25fZGF0 YS5lbXBsYWNlX2JhY2soCisrICAgIGtfYW5vbl9kYXRhLmVtcGxhY2VfYmFjaygpID0geworICAg ICAgICAgLyprZXk9Ki9pbnRlcmVzdF9ncm91cF9rYW5vbl9xdWVyeS5Db2x1bW5TdHJpbmcoMCks CisgICAgICAgICAvKmlzX2tfYW5vbnltb3VzPSovaW50ZXJlc3RfZ3JvdXBfa2Fub25fcXVlcnku Q29sdW1uQm9vbCgxKSwKKy0gICAgICAgIC8qbGFzdF91cGRhdGVkPSovaW50ZXJlc3RfZ3JvdXBf a2Fub25fcXVlcnkuQ29sdW1uVGltZSgyKSk7CisrICAgICAgICAvKmxhc3RfdXBkYXRlZD0qL2lu dGVyZXN0X2dyb3VwX2thbm9uX3F1ZXJ5LkNvbHVtblRpbWUoMil9OworICAgfQorICAgaWYgKCFp bnRlcmVzdF9ncm91cF9rYW5vbl9xdWVyeS5TdWNjZWVkZWQoKSkgeworICAgICByZXR1cm4gYWJz bDo6bnVsbG9wdDsKK2RpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29udGVudC9icm93 c2VyL3JlbmRlcmVyX2hvc3QvcmVuZGVyX2ZyYW1lX2hvc3RfaW1wbC5jYy5ub19tYXRjaGluZ19j b25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbnRlbnQvYnJvd3Nlci9yZW5kZXJl cl9ob3N0L3JlbmRlcl9mcmFtZV9ob3N0X2ltcGwuY2MKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5 LjU2L2NvbnRlbnQvYnJvd3Nlci9yZW5kZXJlcl9ob3N0L3JlbmRlcl9mcmFtZV9ob3N0X2ltcGwu Y2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjo0MDowMS4wMDAwMDAwMDAg KzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbnRlbnQvYnJvd3Nlci9yZW5kZXJl cl9ob3N0L3JlbmRlcl9mcmFtZV9ob3N0X2ltcGwuY2MJMjAyMy0xMi0wMyAyMDo0OToyOC4wNTkw NDI2NzIgKzAxMDAKK0BAIC04Njg1LDcgKzg2ODUsNyBAQCB2b2lkIFJlbmRlckZyYW1lSG9zdElt cGw6OlNlbmRGZW5jZWRGcmFtCisgICBmb3IgKGNvbnN0IGJsaW5rOjpGZW5jZWRGcmFtZTo6UmVw b3J0aW5nRGVzdGluYXRpb24mIGRlc3RpbmF0aW9uIDoKKyAgICAgICAgZGVzdGluYXRpb25zKSB7 CisgICAgIFNlbmRGZW5jZWRGcmFtZVJlcG9ydGluZ0JlYWNvbkludGVybmFsKAorLSAgICAgICAg RGVzdGluYXRpb25FbnVtRXZlbnQoZXZlbnRfdHlwZSwgZXZlbnRfZGF0YSksIGRlc3RpbmF0aW9u LAorKyAgICAgICAgRGVzdGluYXRpb25FbnVtRXZlbnR7ZXZlbnRfdHlwZSwgZXZlbnRfZGF0YX0s IGRlc3RpbmF0aW9uLAorICAgICAgICAgLypmcm9tX3JlbmRlcmVyPSovdHJ1ZSwgYXR0cmlidXRp b25fcmVwb3J0aW5nX3J1bnRpbWVfZmVhdHVyZXMpOworICAgfQorIH0KK0BAIC04NzIwLDcgKzg3 MjAsNyBAQCB2b2lkIFJlbmRlckZyYW1lSG9zdEltcGw6OlNlbmRGZW5jZWRGcmFtCisgICB9Cisg CisgICBTZW5kRmVuY2VkRnJhbWVSZXBvcnRpbmdCZWFjb25JbnRlcm5hbCgKKy0gICAgICBEZXN0 aW5hdGlvblVSTEV2ZW50KGRlc3RpbmF0aW9uX3VybCksCisrICAgICAgRGVzdGluYXRpb25VUkxF dmVudHtkZXN0aW5hdGlvbl91cmx9LAorICAgICAgIGJsaW5rOjpGZW5jZWRGcmFtZTo6UmVwb3J0 aW5nRGVzdGluYXRpb246OmtCdXllciwKKyAgICAgICAvKmZyb21fcmVuZGVyZXI9Ki90cnVlLCBh dHRyaWJ1dGlvbl9yZXBvcnRpbmdfcnVudGltZV9mZWF0dXJlcyk7CisgfQorQEAgLTg4MjAsNyAr ODgyMCw3IEBAIHZvaWQgUmVuZGVyRnJhbWVIb3N0SW1wbDo6TWF5YmVTZW5kRmVuY2UKKyAgICAg ICAgIGRhdGEgPSBpbmZvLT5kYXRhOworICAgICAgIH0KKyAgICAgICBpbml0aWF0b3JfcmZoLT5T ZW5kRmVuY2VkRnJhbWVSZXBvcnRpbmdCZWFjb25JbnRlcm5hbCgKKy0gICAgICAgICAgQXV0b21h dGljQmVhY29uRXZlbnQoZXZlbnRfdHlwZSwgZGF0YSksIGRlc3RpbmF0aW9uLAorKyAgICAgICAg ICBBdXRvbWF0aWNCZWFjb25FdmVudHtldmVudF90eXBlLCBkYXRhfSwgZGVzdGluYXRpb24sCisg ICAgICAgICAgIC8qZnJvbV9yZW5kZXJlcj0qL2ZhbHNlLCBhdHRyaWJ1dGlvbl9yZXBvcnRpbmdf ZmVhdHVyZXMsCisgICAgICAgICAgIG5hdmlnYXRpb25fcmVxdWVzdC5HZXROYXZpZ2F0aW9uSWQo KSk7CisgICAgIH0KK0BAIC04ODMyLDcgKzg4MzIsNyBAQCB2b2lkIFJlbmRlckZyYW1lSG9zdElt cGw6Ok1heWJlU2VuZEZlbmNlCisgICAgIGZvciAoYmxpbms6OkZlbmNlZEZyYW1lOjpSZXBvcnRp bmdEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiA6CisgICAgICAgICAgaW5mby0+ZGVzdGluYXRpb25z KSB7CisgICAgICAgaW5pdGlhdG9yX3JmaC0+U2VuZEZlbmNlZEZyYW1lUmVwb3J0aW5nQmVhY29u SW50ZXJuYWwoCistICAgICAgICAgIEF1dG9tYXRpY0JlYWNvbkV2ZW50KGV2ZW50X3R5cGUsIGlu Zm8tPmRhdGEpLCBkZXN0aW5hdGlvbiwKKysgICAgICAgICAgQXV0b21hdGljQmVhY29uRXZlbnR7 ZXZlbnRfdHlwZSwgaW5mby0+ZGF0YX0sIGRlc3RpbmF0aW9uLAorICAgICAgICAgICAvKmZyb21f cmVuZGVyZXI9Ki9mYWxzZSwgaW5mby0+YXR0cmlidXRpb25fcmVwb3J0aW5nX3J1bnRpbWVfZmVh dHVyZXMsCisgICAgICAgICAgIG5hdmlnYXRpb25fcmVxdWVzdC5HZXROYXZpZ2F0aW9uSWQoKSk7 CisgICAgIH0KK2RpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvbmV0L2Rucy9ob3N0X3Jl c29sdmVyX2NhY2hlLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTEyMC4wLjYw OTkuNTYvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX2NhY2hlLmNjCistLS0gY2hyb21pdW0tMTIwLjAu NjA5OS41Ni9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfY2FjaGUuY2Mubm9fbWF0Y2hpbmdfY29uc3Ry dWN0b3IJMjAyMy0xMS0yOSAyMjo0MDowNy4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0x MjAuMC42MDk5LjU2L25ldC9kbnMvaG9zdF9yZXNvbHZlcl9jYWNoZS5jYwkyMDIzLTEyLTAzIDE3 OjMxOjI1Ljc1NDQyMDMwMyArMDEwMAorQEAgLTM2OCw3ICszNjgsNyBAQCB2b2lkIEhvc3RSZXNv bHZlckNhY2hlOjpTZXQoCisgCisgICBzdGQ6OnN0cmluZyBkb21haW5fbmFtZSA9IHJlc3VsdC0+ ZG9tYWluX25hbWUoKTsKKyAgIGVudHJpZXNfLmVtcGxhY2UoCistICAgICAgS2V5KHN0ZDo6bW92 ZShkb21haW5fbmFtZSksIG5ldHdvcmtfYW5vbnltaXphdGlvbl9rZXkpLAorKyAgICAgIEtleXtz dGQ6Om1vdmUoZG9tYWluX25hbWUpLCBuZXR3b3JrX2Fub255bWl6YXRpb25fa2V5fSwKKyAgICAg ICBFbnRyeShzdGQ6Om1vdmUocmVzdWx0KSwgc291cmNlLCBzZWN1cmUsIHN0YWxlbmVzc19nZW5l cmF0aW9uKSk7CisgCisgICBpZiAoZW50cmllc18uc2l6ZSgpID4gbWF4X2VudHJpZXNfKSB7Citk aWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVy L3BsYXRmb3JtL2ZvbnRzL2ZvbnRfcGFsZXR0ZS5oLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNo cm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0v Zm9udHMvZm9udF9wYWxldHRlLmgKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3Bh cnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL2ZvbnRfcGFsZXR0ZS5oLm5vX21hdGNo aW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6NDA6MTIuMDAwMDAwMDAwICswMTAwCisrKysg Y2hyb21pdW0tMTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9y bS9mb250cy9mb250X3BhbGV0dGUuaAkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc1NDQyMDMwMyArMDEw MAorQEAgLTk2LDcgKzk2LDcgQEAgY2xhc3MgUExBVEZPUk1fRVhQT1JUIEZvbnRQYWxldHRlIDog cHVibAorICAgICAgIENvbG9yOjpDb2xvclNwYWNlIGNvbG9yX2ludGVycG9sYXRpb25fc3BhY2Us CisgICAgICAgYWJzbDo6b3B0aW9uYWw8Q29sb3I6Okh1ZUludGVycG9sYXRpb25NZXRob2Q+IGh1 ZV9pbnRlcnBvbGF0aW9uX21ldGhvZCkgeworICAgICByZXR1cm4gYmFzZTo6QWRvcHRSZWYobmV3 IEZvbnRQYWxldHRlKAorLSAgICAgICAgc3RhcnQsIGVuZCwgTm9uTm9ybWFsaXplZFBlcmNlbnRh Z2VzKHN0YXJ0X3BlcmNlbnRhZ2UsIGVuZF9wZXJjZW50YWdlKSwKKysgICAgICAgIHN0YXJ0LCBl bmQsIE5vbk5vcm1hbGl6ZWRQZXJjZW50YWdlc3tzdGFydF9wZXJjZW50YWdlLCBlbmRfcGVyY2Vu dGFnZX0sCisgICAgICAgICBub3JtYWxpemVkX3BlcmNlbnRhZ2UsIGFscGhhX211bHRpcGxpZXIs IGNvbG9yX2ludGVycG9sYXRpb25fc3BhY2UsCisgICAgICAgICBodWVfaW50ZXJwb2xhdGlvbl9t ZXRob2QpKTsKKyAgIH0KK0BAIC0xNzAsNyArMTcwLDcgQEAgY2xhc3MgUExBVEZPUk1fRVhQT1JU IEZvbnRQYWxldHRlIDogcHVibAorICAgICAgIGRvdWJsZSBub3JtYWxpemVkX3BlcmNlbnRhZ2Up IHsKKyAgICAgZG91YmxlIGVuZF9wZXJjZW50YWdlID0gbm9ybWFsaXplZF9wZXJjZW50YWdlICog MTAwLjA7CisgICAgIGRvdWJsZSBzdGFydF9wZXJjZW50YWdlID0gMTAwLjAgLSBlbmRfcGVyY2Vu dGFnZTsKKy0gICAgcmV0dXJuIE5vbk5vcm1hbGl6ZWRQZXJjZW50YWdlcyhzdGFydF9wZXJjZW50 YWdlLCBlbmRfcGVyY2VudGFnZSk7CisrICAgIHJldHVybiBOb25Ob3JtYWxpemVkUGVyY2VudGFn ZXN7c3RhcnRfcGVyY2VudGFnZSwgZW5kX3BlcmNlbnRhZ2V9OworICAgfQorIAorICAgZG91Ymxl IEdldEFscGhhTXVsdGlwbGllcigpIGNvbnN0IHsKK2RpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYw OTkuNTYvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvcGFsZXR0ZV9p bnRlcnBvbGF0aW9uLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTEyMC4wLjYw OTkuNTYvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvcGFsZXR0ZV9p bnRlcnBvbGF0aW9uLmNjCistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9i bGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9wYWxldHRlX2ludGVycG9sYXRpb24uY2Mubm9f bWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjo0MDoxMi4wMDAwMDAwMDAgKzAxMDAK KysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3Bs YXRmb3JtL2ZvbnRzL3BhbGV0dGVfaW50ZXJwb2xhdGlvbi5jYwkyMDIzLTEyLTAzIDE3OjMxOjI1 Ljc1NTQyMDMyMyArMDEwMAorQEAgLTMxLDcgKzMxLDcgQEAgVmVjdG9yPEZvbnRQYWxldHRlOjpG b250UGFsZXR0ZU92ZXJyaWRlPgorICAgICAgICAgY29sb3JfaW50ZXJwb2xhdGlvbl9zcGFjZSwg aHVlX2ludGVycG9sYXRpb25fbWV0aG9kLCBzdGFydF9jb2xvciwKKyAgICAgICAgIGVuZF9jb2xv ciwgcGVyY2VudGFnZSwgYWxwaGFfbXVsdGlwbGllcik7CisgCistICAgIEZvbnRQYWxldHRlOjpG b250UGFsZXR0ZU92ZXJyaWRlIHJlc3VsdF9jb2xvcl9yZWNvcmQoaSwgcmVzdWx0X2NvbG9yKTsK KysgICAgRm9udFBhbGV0dGU6OkZvbnRQYWxldHRlT3ZlcnJpZGUgcmVzdWx0X2NvbG9yX3JlY29y ZHtzdGF0aWNfY2FzdDxpbnQ+KGkpLCByZXN1bHRfY29sb3J9OworICAgICByZXN1bHRfY29sb3Jf cmVjb3Jkcy5wdXNoX2JhY2socmVzdWx0X2NvbG9yX3JlY29yZCk7CisgICB9CisgICByZXR1cm4g cmVzdWx0X2NvbG9yX3JlY29yZHM7CitkaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3Ro aXJkX3BhcnR5L3BkZml1bS9jb3JlL2ZwZGZhcGkvcmVuZGVyL2NwZGZfcmVuZGVyc3RhdHVzLmNw cC5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3Bh cnR5L3BkZml1bS9jb3JlL2ZwZGZhcGkvcmVuZGVyL2NwZGZfcmVuZGVyc3RhdHVzLmNwcAorLS0t IGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkvcGRmaXVtL2NvcmUvZnBkZmFwaS9y ZW5kZXIvY3BkZl9yZW5kZXJzdGF0dXMuY3BwLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMt MTEtMjkgMjI6NDE6NDYuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41 Ni90aGlyZF9wYXJ0eS9wZGZpdW0vY29yZS9mcGRmYXBpL3JlbmRlci9jcGRmX3JlbmRlcnN0YXR1 cy5jcHAJMjAyMy0xMi0wMyAxNzozMToyNS43NTY0MjAzNDIgKzAxMDAKK0BAIC00OTEsNyArNDkx LDcgQEAgdm9pZCBDUERGX1JlbmRlclN0YXR1czo6UHJvY2Vzc0NsaXBQYXRoKAorICAgICB9IGVs c2UgeworICAgICAgIG1fcERldmljZS0+U2V0Q2xpcF9QYXRoRmlsbCgKKyAgICAgICAgICAgKnBQ YXRoLCAmbXRPYmoyRGV2aWNlLAorLSAgICAgICAgICBDRlhfRmlsbFJlbmRlck9wdGlvbnMoQ2xp cFBhdGguR2V0Q2xpcFR5cGUoaSkpKTsKKysgICAgICAgICAgQ0ZYX0ZpbGxSZW5kZXJPcHRpb25z e0NsaXBQYXRoLkdldENsaXBUeXBlKGkpfSk7CisgICAgIH0KKyAgIH0KKyAKK2RpZmYgLXVwIGNo cm9taXVtLTEyMC4wLjYwOTkuNTYvdWkvYmFzZS93YXlsYW5kL2NvbG9yX21hbmFnZXJfdXRpbC5o Lm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdWkvYmFzZS93 YXlsYW5kL2NvbG9yX21hbmFnZXJfdXRpbC5oCistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni91 aS9iYXNlL3dheWxhbmQvY29sb3JfbWFuYWdlcl91dGlsLmgubm9fbWF0Y2hpbmdfY29uc3RydWN0 b3IJMjAyMy0xMS0yOSAyMjo0MDo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAu MC42MDk5LjU2L3VpL2Jhc2Uvd2F5bGFuZC9jb2xvcl9tYW5hZ2VyX3V0aWwuaAkyMDIzLTEyLTAz IDE3OjMxOjI1Ljc1NTQyMDMyMyArMDEwMAorQEAgLTUyLDUzICs1Miw1MyBAQCBjb25zdGV4cHIg YXV0byBrQ2hyb21hdGljaXR5TWFwID0gYmFzZTo6CisgICAgIHpjcl9jb2xvcl9tYW5hZ2VyX3Yx X2Nocm9tYXRpY2l0eV9uYW1lcywKKyAgICAgUHJpbWFyeVZlcnNpb24+KAorICAgICB7e1pDUl9D T0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19CVDYwMV81MjVfTElORSwKKy0gICAg ICBQcmltYXJ5VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6U01QVEUxNzBNLAor LSAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCisrICAgICAgUHJp bWFyeVZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OlNNUFRFMTcwTSwKKysgICAg ICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAorICAgICAge1pDUl9DT0xP Ul9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19CVDYwMV82MjVfTElORSwKKy0gICAgICBQ cmltYXJ5VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6QlQ0NzBCRywKKy0gICAg ICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAorKyAgICAgIFByaW1hcnlW ZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpCVDQ3MEJHLAorKyAgICAgICAgICAg ICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCisgICAgICB7WkNSX0NPTE9SX01BTkFH RVJfVjFfQ0hST01BVElDSVRZX05BTUVTX1NNUFRFMTcwTSwKKy0gICAgICBQcmltYXJ5VmVyc2lv bihnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6U01QVEUxNzBNLAorLSAgICAgICAgICAgICAg ICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCisrICAgICAgUHJpbWFyeVZlcnNpb257Z2Z4 OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OlNNUFRFMTcwTSwKKysgICAgICAgICAgICAgICAgICAg ICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAorICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0NI Uk9NQVRJQ0lUWV9OQU1FU19CVDcwOSwKKy0gICAgICBQcmltYXJ5VmVyc2lvbihnZng6OkNvbG9y U3BhY2U6OlByaW1hcnlJRDo6QlQ3MDksIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCisrICAgICAg UHJpbWFyeVZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OkJUNzA5LCBrRGVmYXVs dFNpbmNlVmVyc2lvbn19LAorICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lU WV9OQU1FU19CVDIwMjAsCistICAgICAgUHJpbWFyeVZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpQ cmltYXJ5SUQ6OkJUMjAyMCwga0RlZmF1bHRTaW5jZVZlcnNpb24pfSwKKysgICAgICBQcmltYXJ5 VmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6QlQyMDIwLCBrRGVmYXVsdFNpbmNl VmVyc2lvbn19LAorICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1F U19TUkdCLAorLSAgICAgIFByaW1hcnlWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlE OjpCVDcwOSwga0RlZmF1bHRTaW5jZVZlcnNpb24pfSwKKysgICAgICBQcmltYXJ5VmVyc2lvbntn Zng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6QlQ3MDksIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0s CisgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX0RJU1BMQVlQ MywKKy0gICAgICBQcmltYXJ5VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6UDMs IGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCisrICAgICAgUHJpbWFyeVZlcnNpb257Z2Z4OjpDb2xv clNwYWNlOjpQcmltYXJ5SUQ6OlAzLCBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAorICAgICAge1pD Ul9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19BRE9CRVJHQiwKKy0gICAgICBQ cmltYXJ5VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6QURPQkVfUkdCLAorLSAg ICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCisrICAgICAgUHJpbWFy eVZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OkFET0JFX1JHQiwKKysgICAgICAg ICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAorICAgICAge1pDUl9DT0xPUl9N QU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19XSURFX0dBTVVUX0NPTE9SX1NQSU4sCistICAg ICAgUHJpbWFyeVZlcnNpb24oCisrICAgICAgUHJpbWFyeVZlcnNpb257CisgICAgICAgICAgIGdm eDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpXSURFX0dBTVVUX0NPTE9SX1NQSU4sCistICAgICAg ICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19XSURFX0dBTVVUX0NP TE9SX1NQSU5fU0lOQ0VfVkVSU0lPTil9LAorKyAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9W MV9DSFJPTUFUSUNJVFlfTkFNRVNfV0lERV9HQU1VVF9DT0xPUl9TUElOX1NJTkNFX1ZFUlNJT059 fSwKKyAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfQlQ0NzBN LAorLSAgICAgIFByaW1hcnlWZXJzaW9uKAorKyAgICAgIFByaW1hcnlWZXJzaW9ueworICAgICAg ICAgICBnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6QlQ0NzBNLAorLSAgICAgICAgICBaQ1Jf Q09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfQlQ0NzBNX1NJTkNFX1ZFUlNJT04p fSwKKysgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX0JU NDcwTV9TSU5DRV9WRVJTSU9OfX0sCisgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01B VElDSVRZX05BTUVTX1NNUFRFMjQwTSwKKy0gICAgICBQcmltYXJ5VmVyc2lvbigKKysgICAgICBQ cmltYXJ5VmVyc2lvbnsKKyAgICAgICAgICAgZ2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OlNN UFRFMjQwTSwKKy0gICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05B TUVTX1NNUFRFMjQwTV9TSU5DRV9WRVJTSU9OKX0sCisrICAgICAgICAgIFpDUl9DT0xPUl9NQU5B R0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19TTVBURTI0ME1fU0lOQ0VfVkVSU0lPTn19LAorICAg ICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19YWVpfRDUwLAorLSAg ICAgIFByaW1hcnlWZXJzaW9uKAorKyAgICAgIFByaW1hcnlWZXJzaW9ueworICAgICAgICAgICBn Zng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6WFlaX0Q1MCwKKy0gICAgICAgICAgWkNSX0NPTE9S X01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX1hZWl9ENTBfU0lOQ0VfVkVSU0lPTil9LAor KyAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfWFlaX0Q1 MF9TSU5DRV9WRVJTSU9OfX0sCisgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElD SVRZX05BTUVTX1NNUFRFU1Q0MjhfMSwKKy0gICAgICBQcmltYXJ5VmVyc2lvbigKKysgICAgICBQ cmltYXJ5VmVyc2lvbnsKKyAgICAgICAgICAgZ2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OlNN UFRFU1Q0MjhfMSwKKy0gICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZ X05BTUVTX1NNUFRFU1Q0MjhfMV9TSU5DRV9WRVJTSU9OKX0sCisrICAgICAgICAgIFpDUl9DT0xP Ul9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19TTVBURVNUNDI4XzFfU0lOQ0VfVkVSU0lP Tn19LAorICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19TTVBU RVNUNDMxXzIsCistICAgICAgUHJpbWFyeVZlcnNpb24oCisrICAgICAgUHJpbWFyeVZlcnNpb257 CisgICAgICAgICAgIGdmeDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpTTVBURVNUNDMxXzIsCist ICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19TTVBURVNU NDMxXzJfU0lOQ0VfVkVSU0lPTil9LAorKyAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9D SFJPTUFUSUNJVFlfTkFNRVNfU01QVEVTVDQzMV8yX1NJTkNFX1ZFUlNJT059fSwKKyAgICAgIHta Q1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfRklMTSwKKy0gICAgICBQcmlt YXJ5VmVyc2lvbigKKysgICAgICBQcmltYXJ5VmVyc2lvbnsKKyAgICAgICAgICAgZ2Z4OjpDb2xv clNwYWNlOjpQcmltYXJ5SUQ6OkZJTE0sCistICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1Yx X0NIUk9NQVRJQ0lUWV9OQU1FU19GSUxNX1NJTkNFX1ZFUlNJT04pfX0pOworKyAgICAgICAgICBa Q1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfRklMTV9TSU5DRV9WRVJTSU9O fX19KTsKKyAKKyAvLyBBIG1hcCBmcm9tIHRoZSB6Y3JfY29sb3JfbWFuYWdlcl92MSBlb3RmX25h bWVzIGVudW0gdmFsdWVzCisgLy8gcmVwcmVzZW50aW5nIHdlbGwta25vd24gRU9URnMsIHRvIHRo ZWlyIGVxdWl2YWxlbnQgVHJhbnNmZXJJRHMuCitAQCAtMTA3LDY4ICsxMDcsNjggQEAgY29uc3Rl eHByIGF1dG8ga0VvdGZNYXAgPSBiYXNlOjpNYWtlRml4ZQorICAgICB6Y3JfY29sb3JfbWFuYWdl cl92MV9lb3RmX25hbWVzLAorICAgICBUcmFuc2ZlclZlcnNpb24+KHsKKyAgICAge1pDUl9DT0xP Ul9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfTElORUFSLAorLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdm eDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6TElORUFSLAorLSAgICAgICAgICAgICAgICAgICAg IGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCisrICAgICBUcmFuc2ZlclZlcnNpb257Z2Z4OjpDb2xv clNwYWNlOjpUcmFuc2ZlcklEOjpMSU5FQVIsCisrICAgICAgICAgICAgICAgICAgICAga0RlZmF1 bHRTaW5jZVZlcnNpb259fSwKKyAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNf U1JHQiwKKy0gICAgIFRyYW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6 OlNSR0IsIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCisrICAgICBUcmFuc2ZlclZlcnNpb257Z2Z4 OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpTUkdCLCBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAor ICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19TUkdCX0hEUiwKKy0gICAgIFRy YW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OlNSR0JfSERSLAorLSAg ICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU1JHQl9I RFJfU0lOQ0VfVkVSU0lPTil9LAorKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFj ZTo6VHJhbnNmZXJJRDo6U1JHQl9IRFIsCisrICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9S X01BTkFHRVJfVjFfRU9URl9OQU1FU19TUkdCX0hEUl9TSU5DRV9WRVJTSU9OfX0sCisgICAgIHta Q1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUNzA5LAorLSAgICAgVHJhbnNmZXJWZXJz aW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6QlQ3MDksCistICAgICAgICAgICAgICAg ICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19CVDcwOV9TSU5DRV9WRVJTSU9O KX0sCisrICAgICBUcmFuc2ZlclZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpC VDcwOSwKKysgICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05B TUVTX0JUNzA5X1NJTkNFX1ZFUlNJT059fSwKKyAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VP VEZfTkFNRVNfQlQyMDg3LAorLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6 VHJhbnNmZXJJRDo6R0FNTUEyNCwKKy0gICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNl VmVyc2lvbil9LAorKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNm ZXJJRDo6R0FNTUEyNCwKKysgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lv bn19LAorICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19BRE9CRVJHQiwKKyAg ICAgIC8vIFRoaXMgaXMgZXZlciBzbyBzbGlnaHRseSBpbmFjY3VyYXRlLiBUaGUgbnVtYmVyIG91 Z2h0IHRvIGJlCisgICAgICAvLyAyLjE5OTIxODc1Ziwgbm90IDIuMgorLSAgICAgVHJhbnNmZXJW ZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6R0FNTUEyMiwKKy0gICAgICAgICAg ICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAorKyAgICAgVHJhbnNmZXJWZXJzaW9u e2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6R0FNTUEyMiwKKysgICAgICAgICAgICAgICAg ICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAorICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFf RU9URl9OQU1FU19QUSwKKy0gICAgIFRyYW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRy YW5zZmVySUQ6OlBRLCBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAorKyAgICAgVHJhbnNmZXJWZXJz aW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6UFEsIGtEZWZhdWx0U2luY2VWZXJzaW9u fX0sCisgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0hMRywKKy0gICAgIFRy YW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkhMRywKKy0gICAgICAg ICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0hMR19TSU5DRV9W RVJTSU9OKX0sCisrICAgICBUcmFuc2ZlclZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpUcmFuc2Zl cklEOjpITEcsCisrICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9U Rl9OQU1FU19ITEdfU0lOQ0VfVkVSU0lPTn19LAorICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFf RU9URl9OQU1FU19TTVBURTE3ME0sCistICAgICBUcmFuc2ZlclZlcnNpb24oZ2Z4OjpDb2xvclNw YWNlOjpUcmFuc2ZlcklEOjpTTVBURTE3ME0sCistICAgICAgICAgICAgICAgICAgICAgWkNSX0NP TE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19TTVBURTE3ME1fU0lOQ0VfVkVSU0lPTil9LAorKyAg ICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6U01QVEUxNzBN LAorKyAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNf U01QVEUxNzBNX1NJTkNFX1ZFUlNJT059fSwKKyAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VP VEZfTkFNRVNfU01QVEUyNDBNLAorLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFj ZTo6VHJhbnNmZXJJRDo6U01QVEUyNDBNLAorLSAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xP Ul9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU01QVEUyNDBNX1NJTkNFX1ZFUlNJT04pfSwKKysgICAg IFRyYW5zZmVyVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OlNNUFRFMjQwTSwK KysgICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NN UFRFMjQwTV9TSU5DRV9WRVJTSU9OfX0sCisgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RG X05BTUVTX1NNUFRFU1Q0MjhfMSwKKy0gICAgIFRyYW5zZmVyVmVyc2lvbigKKysgICAgIFRyYW5z ZmVyVmVyc2lvbnsKKyAgICAgICAgICBnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OlNNUFRF U1Q0MjhfMSwKKy0gICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NNUFRF U1Q0MjhfMV9TSU5DRV9WRVJTSU9OKX0sCisrICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFf RU9URl9OQU1FU19TTVBURVNUNDI4XzFfU0lOQ0VfVkVSU0lPTn19LAorICAgICB7WkNSX0NPTE9S X01BTkFHRVJfVjFfRU9URl9OQU1FU19MT0csCistICAgICBUcmFuc2ZlclZlcnNpb24oZ2Z4OjpD b2xvclNwYWNlOjpUcmFuc2ZlcklEOjpMT0csCistICAgICAgICAgICAgICAgICAgICAgWkNSX0NP TE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19MT0dfU0lOQ0VfVkVSU0lPTil9LAorKyAgICAgVHJh bnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6TE9HLAorKyAgICAgICAg ICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfTE9HX1NJTkNFX1ZF UlNJT059fSwKKyAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfTE9HX1NRUlQs CistICAgICBUcmFuc2ZlclZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpMT0df U1FSVCwKKy0gICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05B TUVTX0xPR19TUVJUX1NJTkNFX1ZFUlNJT04pfSwKKysgICAgIFRyYW5zZmVyVmVyc2lvbntnZng6 OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkxPR19TUVJULAorKyAgICAgICAgICAgICAgICAgICAg IFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfTE9HX1NRUlRfU0lOQ0VfVkVSU0lPTn19 LAorICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19JRUM2MTk2Nl8yXzQsCist ICAgICBUcmFuc2ZlclZlcnNpb24oCisrICAgICBUcmFuc2ZlclZlcnNpb257CisgICAgICAgICAg Z2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpJRUM2MTk2Nl8yXzQsCistICAgICAgICAgWkNS X0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19JRUM2MTk2Nl8yXzRfU0lOQ0VfVkVSU0lPTil9 LAorKyAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfSUVDNjE5NjZfMl80 X1NJTkNFX1ZFUlNJT059fSwKKyAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNf QlQxMzYxX0VDRywKKy0gICAgIFRyYW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5z ZmVySUQ6OkJUMTM2MV9FQ0csCistICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFH RVJfVjFfRU9URl9OQU1FU19CVDEzNjFfRUNHX1NJTkNFX1ZFUlNJT04pfSwKKysgICAgIFRyYW5z ZmVyVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkJUMTM2MV9FQ0csCisrICAg ICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19CVDEzNjFf RUNHX1NJTkNFX1ZFUlNJT059fSwKKyAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFN RVNfQlQyMDIwXzEwLAorLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJh bnNmZXJJRDo6QlQyMDIwXzEwLAorLSAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5B R0VSX1YxX0VPVEZfTkFNRVNfQlQyMDIwXzEwX1NJTkNFX1ZFUlNJT04pfSwKKysgICAgIFRyYW5z ZmVyVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkJUMjAyMF8xMCwKKysgICAg ICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUMjAyMF8x MF9TSU5DRV9WRVJTSU9OfX0sCisgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVT X0JUMjAyMF8xMiwKKy0gICAgIFRyYW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5z ZmVySUQ6OkJUMjAyMF8xMiwKKy0gICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdF Ul9WMV9FT1RGX05BTUVTX0JUMjAyMF8xMl9TSU5DRV9WRVJTSU9OKX0sCisrICAgICBUcmFuc2Zl clZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpCVDIwMjBfMTIsCisrICAgICAg ICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19CVDIwMjBfMTJf U0lOQ0VfVkVSU0lPTn19LAorICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19T Q1JHQl9MSU5FQVJfODBfTklUUywKKy0gICAgIFRyYW5zZmVyVmVyc2lvbigKKysgICAgIFRyYW5z ZmVyVmVyc2lvbnsKKyAgICAgICAgICBnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OlNDUkdC X0xJTkVBUl84MF9OSVRTLAorLSAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFN RVNfU0NSR0JfTElORUFSXzgwX05JVFNfU0lOQ0VfVkVSU0lPTil9LAorKyAgICAgICAgIFpDUl9D T0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU0NSR0JfTElORUFSXzgwX05JVFNfU0lOQ0VfVkVS U0lPTn19LAorICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19HQU1NQTE4LAor LSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6R0FNTUEx OCwKKy0gICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVT X0dBTU1BMThfU0lOQ0VfVkVSU0lPTil9LAorKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29s b3JTcGFjZTo6VHJhbnNmZXJJRDo6R0FNTUExOCwKKysgICAgICAgICAgICAgICAgICAgICBaQ1Jf Q09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0dBTU1BMThfU0lOQ0VfVkVSU0lPTn19LAorICAg ICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19HQU1NQTI4LAorLSAgICAgVHJhbnNm ZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6R0FNTUEyOCwKKy0gICAgICAg ICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0dBTU1BMjhfU0lO Q0VfVkVSU0lPTil9LAorKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJh bnNmZXJJRDo6R0FNTUEyOCwKKysgICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdF Ul9WMV9FT1RGX05BTUVTX0dBTU1BMjhfU0lOQ0VfVkVSU0lPTn19LAorIH0pOworIAorIC8vIEEg bWFwIGZyb20gdGhlIFNEUiB6Y3JfY29sb3JfbWFuYWdlcl92MSBlb3RmX25hbWVzIGVudW0gdmFs dWVzCitAQCAtMTc3LDE4ICsxNzcsMTggQEAgY29uc3RleHByIGF1dG8ga0VvdGZNYXAgPSBiYXNl OjpNYWtlRml4ZQorIGNvbnN0ZXhwciBhdXRvIGtUcmFuc2Zlck1hcCA9CisgICAgIGJhc2U6Ok1h a2VGaXhlZEZsYXRNYXA8emNyX2NvbG9yX21hbmFnZXJfdjFfZW90Zl9uYW1lcywgVHJhbnNmZXJG blZlcnNpb24+KHsKKyAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0xJ TkVBUiwKKy0gICAgICAgICBUcmFuc2ZlckZuVmVyc2lvbihTa05hbWVkVHJhbnNmZXJGbjo6a0xp bmVhciwga0RlZmF1bHRTaW5jZVZlcnNpb24pfSwKKysgICAgICAgICBUcmFuc2ZlckZuVmVyc2lv bntTa05hbWVkVHJhbnNmZXJGbjo6a0xpbmVhciwga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKKyAg ICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NSR0IsCistICAgICAgICAg VHJhbnNmZXJGblZlcnNpb24oU2tOYW1lZFRyYW5zZmVyRm5FeHQ6OmtTUkdCLCBrRGVmYXVsdFNp bmNlVmVyc2lvbil9LAorKyAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9ue1NrTmFtZWRUcmFuc2Zl ckZuRXh0OjprU1JHQiwga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKKyAgICAgICAgIHtaQ1JfQ09M T1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUNzA5LAorLSAgICAgICAgIFRyYW5zZmVyRm5WZXJz aW9uKAorKyAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9ueworICAgICAgICAgICAgICBTa05hbWVk VHJhbnNmZXJGbkV4dDo6a1JlYzcwOSwKKy0gICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJf VjFfRU9URl9OQU1FU19CVDcwOV9TSU5DRV9WRVJTSU9OKX0sCisrICAgICAgICAgICAgIFpDUl9D T0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfQlQ3MDlfU0lOQ0VfVkVSU0lPTn19LAorICAgICAg ICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfQlQyMDg3LAorLSAgICAgICAgIFRy YW5zZmVyRm5WZXJzaW9uKGdhbW1hMjQsIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCisrICAgICAg ICAgVHJhbnNmZXJGblZlcnNpb257Z2FtbWEyNCwga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKKyAg ICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0FET0JFUkdCLAorLSAgICAg ICAgIFRyYW5zZmVyRm5WZXJzaW9uKFNrTmFtZWRUcmFuc2ZlckZuRXh0OjprQTk4UkdCLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCisrICAgICAg ICAgVHJhbnNmZXJGblZlcnNpb257U2tOYW1lZFRyYW5zZmVyRm5FeHQ6OmtBOThSR0IsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKKyAgICAgfSk7 CisgCisgLy8gQSBtYXAgZnJvbSB0aGUgSERSIHpjcl9jb2xvcl9tYW5hZ2VyX3YxIGVvdGZfbmFt ZXMgZW51bSB2YWx1ZXMKK0BAIC0xOTcsNzAgKzE5Nyw3MCBAQCBjb25zdGV4cHIgYXV0byBrVHJh bnNmZXJNYXAgPQorIGNvbnN0ZXhwciBhdXRvIGtIRFJUcmFuc2Zlck1hcCA9CisgICAgIGJhc2U6 Ok1ha2VGaXhlZEZsYXRNYXA8emNyX2NvbG9yX21hbmFnZXJfdjFfZW90Zl9uYW1lcywgVHJhbnNm ZXJGblZlcnNpb24+KAorICAgICAgICAge3taQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVT X0xJTkVBUiwKKy0gICAgICAgICAgVHJhbnNmZXJGblZlcnNpb24oU2tOYW1lZFRyYW5zZmVyRm46 OmtMaW5lYXIsIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCisrICAgICAgICAgIFRyYW5zZmVyRm5W ZXJzaW9ue1NrTmFtZWRUcmFuc2ZlckZuOjprTGluZWFyLCBrRGVmYXVsdFNpbmNlVmVyc2lvbn19 LAorICAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NSR0JfSERSLAor LSAgICAgICAgICBUcmFuc2ZlckZuVmVyc2lvbigKKysgICAgICAgICAgVHJhbnNmZXJGblZlcnNp b257CisgICAgICAgICAgICAgICBTa05hbWVkVHJhbnNmZXJGbkV4dDo6a1NSR0IsCistICAgICAg ICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NSR0JfSERSX1NJTkNFX1ZF UlNJT04pfSwKKysgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNf U1JHQl9IRFJfU0lOQ0VfVkVSU0lPTn19LAorICAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9W MV9FT1RGX05BTUVTX1BRLAorLSAgICAgICAgICBUcmFuc2ZlckZuVmVyc2lvbihTa05hbWVkVHJh bnNmZXJGbjo6a1BRLCBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAorKyAgICAgICAgICBUcmFuc2Zl ckZuVmVyc2lvbntTa05hbWVkVHJhbnNmZXJGbjo6a1BRLCBrRGVmYXVsdFNpbmNlVmVyc2lvbn19 LAorICAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0hMRywKKy0gICAg ICAgICAgVHJhbnNmZXJGblZlcnNpb24oU2tOYW1lZFRyYW5zZmVyRm46OmtITEcsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfSExH X1NJTkNFX1ZFUlNJT04pfSwKKysgICAgICAgICAgVHJhbnNmZXJGblZlcnNpb257U2tOYW1lZFRy YW5zZmVyRm46OmtITEcsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9N QU5BR0VSX1YxX0VPVEZfTkFNRVNfSExHX1NJTkNFX1ZFUlNJT059fSwKKyAgICAgICAgICB7WkNS X0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19FWFRFTkRFRFNSR0IxMCwKKy0gICAgICAgICAg VHJhbnNmZXJGblZlcnNpb24oCisrICAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9ueworICAgICAg ICAgICAgICAgU2tOYW1lZFRyYW5zZmVyRm5FeHQ6OmtTUkdCRXh0ZW5kZWQxMDIzT3ZlcjUxMCwK Ky0gICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfRVhURU5ERURT UkdCMTBfU0lOQ0VfVkVSU0lPTil9fSk7CisrICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdF Ul9WMV9FT1RGX05BTUVTX0VYVEVOREVEU1JHQjEwX1NJTkNFX1ZFUlNJT059fX0pOworIAorIC8v IEEgbWFwIGZyb20gemNyX2NvbG9yX21hbmFnZXJfdjEgbWF0cml4X25hbWVzIGVudW0gdmFsdWVz IHRvCisgLy8gZ2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJRHMuCisgY29uc3RleHByIGF1dG8ga01h dHJpeE1hcCA9CisgICAgIGJhc2U6Ok1ha2VGaXhlZEZsYXRNYXA8emNyX2NvbG9yX21hbmFnZXJf djFfbWF0cml4X25hbWVzLCBNYXRyaXhWZXJzaW9uPigKKyAgICAgICAgIHt7WkNSX0NPTE9SX01B TkFHRVJfVjFfTUFUUklYX05BTUVTX1JHQiwKKy0gICAgICAgICAgTWF0cml4VmVyc2lvbihnZng6 OkNvbG9yU3BhY2U6Ok1hdHJpeElEOjpSR0IsIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCisrICAg ICAgICAgIE1hdHJpeFZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJRDo6UkdCLCBrRGVm YXVsdFNpbmNlVmVyc2lvbn19LAorICAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRS SVhfTkFNRVNfQlQ3MDksCistICAgICAgICAgIE1hdHJpeFZlcnNpb24oZ2Z4OjpDb2xvclNwYWNl OjpNYXRyaXhJRDo6QlQ3MDksCistICAgICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5j ZVZlcnNpb24pfSwKKysgICAgICAgICAgTWF0cml4VmVyc2lvbntnZng6OkNvbG9yU3BhY2U6Ok1h dHJpeElEOjpCVDcwOSwKKysgICAgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVy c2lvbn19LAorICAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfQlQ0 NzBCRywKKy0gICAgICAgICAgTWF0cml4VmVyc2lvbigKKysgICAgICAgICAgTWF0cml4VmVyc2lv bnsKKyAgICAgICAgICAgICAgIGdmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OkJUNDcwQkcsCist ICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfQlQ0NzBCR19T SU5DRV9WRVJTSU9OKX0sCisrICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRS SVhfTkFNRVNfQlQ0NzBCR19TSU5DRV9WRVJTSU9OfX0sCisgICAgICAgICAge1pDUl9DT0xPUl9N QU5BR0VSX1YxX01BVFJJWF9OQU1FU19CVDIwMjBfTkNMLAorLSAgICAgICAgICBNYXRyaXhWZXJz aW9uKGdmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OkJUMjAyMF9OQ0wsCistICAgICAgICAgICAg ICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb24pfSwKKysgICAgICAgICAgTWF0cml4VmVy c2lvbntnZng6OkNvbG9yU3BhY2U6Ok1hdHJpeElEOjpCVDIwMjBfTkNMLAorKyAgICAgICAgICAg ICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCisgICAgICAgICAge1pDUl9DT0xP Ul9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19CVDIwMjBfQ0wsCistICAgICAgICAgIE1hdHJpeFZl cnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJRDo6QlQyMDIwX0NMLAorLSAgICAgICAgICAg ICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCisrICAgICAgICAgIE1hdHJpeFZl cnNpb257Z2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJRDo6QlQyMDIwX0NMLAorKyAgICAgICAgICAg ICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCisgICAgICAgICAge1pDUl9DT0xP Ul9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19GQ0MsCistICAgICAgICAgIE1hdHJpeFZlcnNpb24o Z2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJRDo6RkNDLCBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAor KyAgICAgICAgICBNYXRyaXhWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OkZDQywg a0RlZmF1bHRTaW5jZVZlcnNpb259fSwKKyAgICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFf TUFUUklYX05BTUVTX1lDT0NHLAorLSAgICAgICAgICBNYXRyaXhWZXJzaW9uKGdmeDo6Q29sb3JT cGFjZTo6TWF0cml4SUQ6OllDT0NHLAorLSAgICAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xP Ul9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19ZQ09DR19TSU5DRV9WRVJTSU9OKX0sCisrICAgICAg ICAgIE1hdHJpeFZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJRDo6WUNPQ0csCisrICAg ICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfTUFUUklYX05BTUVTX1lD T0NHX1NJTkNFX1ZFUlNJT059fSwKKyAgICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfTUFU UklYX05BTUVTX1lEWkRYLAorLSAgICAgICAgICBNYXRyaXhWZXJzaW9uKGdmeDo6Q29sb3JTcGFj ZTo6TWF0cml4SUQ6OllEWkRYLAorLSAgICAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9N QU5BR0VSX1YxX01BVFJJWF9OQU1FU19ZRFpEWF9TSU5DRV9WRVJTSU9OKX0sCisrICAgICAgICAg IE1hdHJpeFZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJRDo6WURaRFgsCisrICAgICAg ICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfTUFUUklYX05BTUVTX1lEWkRY X1NJTkNFX1ZFUlNJT059fSwKKyAgICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfTUFUUklY X05BTUVTX0dCUiwKKy0gICAgICAgICAgTWF0cml4VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6Ok1h dHJpeElEOjpHQlIsCistICAgICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJf VjFfTUFUUklYX05BTUVTX0dCUl9TSU5DRV9WRVJTSU9OKX0sCisrICAgICAgICAgIE1hdHJpeFZl cnNpb257Z2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJRDo6R0JSLAorKyAgICAgICAgICAgICAgICAg ICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19HQlJfU0lOQ0VfVkVSU0lP Tn19LAorICAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfU01QVEUx NzBNLAorLSAgICAgICAgICBNYXRyaXhWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6 OlNNUFRFMTcwTSwKKy0gICAgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lv bil9LAorKyAgICAgICAgICBNYXRyaXhWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6 OlNNUFRFMTcwTSwKKysgICAgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lv bn19LAorICAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfU01QVEUy NDBNLAorLSAgICAgICAgICBNYXRyaXhWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6 OlNNUFRFMjQwTSwKKy0gICAgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lv bil9fSk7CisrICAgICAgICAgIE1hdHJpeFZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJ RDo6U01QVEUyNDBNLAorKyAgICAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJz aW9ufX19KTsKKyAKKyAvLyBBIG1hcCBmcm9tIHpjcl9jb2xvcl9tYW5hZ2VyX3YxIHJhbmdlX25h bWVzIGVudW0gdmFsdWVzIHRvCisgLy8gZ2Z4OjpDb2xvclNwYWNlOjpSYW5nZUlEcy4KKyBjb25z dGV4cHIgYXV0byBrUmFuZ2VNYXAgPQorICAgICBiYXNlOjpNYWtlRml4ZWRGbGF0TWFwPHpjcl9j b2xvcl9tYW5hZ2VyX3YxX3JhbmdlX25hbWVzLCBSYW5nZVZlcnNpb24+KAorICAgICAgICAge3ta Q1JfQ09MT1JfTUFOQUdFUl9WMV9SQU5HRV9OQU1FU19MSU1JVEVELAorLSAgICAgICAgICBSYW5n ZVZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpSYW5nZUlEOjpMSU1JVEVELAorLSAgICAgICAgICAg ICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb24pfSwKKysgICAgICAgICAgUmFuZ2VWZXJz aW9ue2dmeDo6Q29sb3JTcGFjZTo6UmFuZ2VJRDo6TElNSVRFRCwKKysgICAgICAgICAgICAgICAg ICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCisgICAgICAgICAge1pDUl9DT0xPUl9NQU5B R0VSX1YxX1JBTkdFX05BTUVTX0ZVTEwsCistICAgICAgICAgIFJhbmdlVmVyc2lvbihnZng6OkNv bG9yU3BhY2U6OlJhbmdlSUQ6OkZVTEwsIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCisrICAgICAg ICAgIFJhbmdlVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlJhbmdlSUQ6OkZVTEwsIGtEZWZhdWx0 U2luY2VWZXJzaW9ufX0sCisgICAgICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX1JBTkdFX05B TUVTX0RFUklWRUQsCistICAgICAgICAgIFJhbmdlVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlJh bmdlSUQ6OkRFUklWRUQsCistICAgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVy c2lvbil9fSk7CisrICAgICAgICAgIFJhbmdlVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlJhbmdl SUQ6OkRFUklWRUQsCisrICAgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lv bn19fSk7CisgCisgemNyX2NvbG9yX21hbmFnZXJfdjFfY2hyb21hdGljaXR5X25hbWVzIFRvQ29s b3JNYW5hZ2VyQ2hyb21hdGljaXR5KAorICAgICBnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRCBw cmltYXJ5SUQsCitAQCAtMjgzLDQgKzI4Myw0IEBAIHpjcl9jb2xvcl9tYW5hZ2VyX3YxX2VvdGZf bmFtZXMgVG9Db2xvck0KKyAKKyB9ICAvLyBuYW1lc3BhY2UgdWk6OndheWxhbmQKKyAKKy0jZW5k aWYgIC8vIFVJX0JBU0VfV0FZTEFORF9DT0xPUl9NQU5BR0VSX1VUSUxfSF8KK1wgS2VpbiBaZWls ZW51bWJydWNoIGFtIERhdGVpZW5kZS4KKysjZW5kaWYgIC8vIFVJX0JBU0VfV0FZTEFORF9DT0xP Ul9NQU5BR0VSX1VUSUxfSF8KK2RpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdWkvZ3Rr L2d0a191aS5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2 L3VpL2d0ay9ndGtfdWkuY2MKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3VpL2d0ay9ndGtf dWkuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjo0MDo0NC4wMDAwMDAw MDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3VpL2d0ay9ndGtfdWkuY2MJMjAy My0xMi0wMyAxNzozMToyNS43NTY0MjAzNDIgKzAxMDAKK0BAIC0xMDEzLDExICsxMDEzLDExIEBA IHVpOjpEaXNwbGF5Q29uZmlnIEd0a1VpOjpHZXREaXNwbGF5Q29uZmkKKyAgICAgR2RrUmVjdGFu Z2xlIGdlb21ldHJ5OworICAgICBnZGtfbW9uaXRvcl9nZXRfZ2VvbWV0cnkobW9uaXRvciwgJmdl b21ldHJ5KTsKKyAgICAgaW50IG1vbml0b3Jfc2NhbGUgPSBzdGQ6Om1heCgxLCBnZGtfbW9uaXRv cl9nZXRfc2NhbGVfZmFjdG9yKG1vbml0b3IpKTsKKy0gICAgY29uZmlnLmRpc3BsYXlfZ2VvbWV0 cmllcy5lbXBsYWNlX2JhY2soCisrICAgIGNvbmZpZy5kaXNwbGF5X2dlb21ldHJpZXMuZW1wbGFj ZV9iYWNrKCkgPSB7CisgICAgICAgICBnZng6OlJlY3QobW9uaXRvcl9zY2FsZSAqIGdlb21ldHJ5 LngsIG1vbml0b3Jfc2NhbGUgKiBnZW9tZXRyeS55LAorICAgICAgICAgICAgICAgICAgIG1vbml0 b3Jfc2NhbGUgKiBnZW9tZXRyeS53aWR0aCwKKyAgICAgICAgICAgICAgICAgICBtb25pdG9yX3Nj YWxlICogZ2VvbWV0cnkuaGVpZ2h0KSwKKy0gICAgICAgIG1vbml0b3Jfc2NhbGUgKiBmb250X3Nj YWxlKTsKKysgICAgICAgIHN0YXRpY19jYXN0PGZsb2F0Pihtb25pdG9yX3NjYWxlICogZm9udF9z Y2FsZSl9OworICAgfQorICAgcmV0dXJuIGNvbmZpZzsKKyB9CgpkaWZmIC0tZ2l0IGEvY2hyb21p dW0tMTIwLW51bGxwdHJfdC13aXRob3V0LW5hbWVzcGFjZS1zdGQucGF0Y2ggYi9jaHJvbWl1bS0x MjAtbnVsbHB0cl90LXdpdGhvdXQtbmFtZXNwYWNlLXN0ZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi40MDQzZDZmCi0tLSAvZGV2L251bGwKKysrIGIvY2hyb21pdW0t MTIwLW51bGxwdHJfdC13aXRob3V0LW5hbWVzcGFjZS1zdGQucGF0Y2gKQEAgLTAsMCArMSwyNCBA QAorZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS4zNS9iYXNlL2FsbG9jYXRvci9wYXJ0aXRp b25fYWxsb2NhdG9yL3NyYy9wYXJ0aXRpb25fYWxsb2MvcGFydGl0aW9uX2FsbG9jX2Jhc2Uvc3Ry aW5ncy9zYWZlX3NwcmludGYuaC50aGFuIGNocm9taXVtLTEyMC4wLjYwOTkuMzUvYmFzZS9hbGxv Y2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci9zcmMvcGFydGl0aW9uX2FsbG9jL3BhcnRpdGlvbl9h bGxvY19iYXNlL3N0cmluZ3Mvc2FmZV9zcHJpbnRmLmgKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5 LjM1L2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3Ivc3JjL3BhcnRpdGlvbl9hbGxv Yy9wYXJ0aXRpb25fYWxsb2NfYmFzZS9zdHJpbmdzL3NhZmVfc3ByaW50Zi5oLnRoYW4JMjAyMy0x MS0yNiAxODoxOToxMS4zNTUxMTcxNzYgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjM1 L2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3Ivc3JjL3BhcnRpdGlvbl9hbGxvYy9w YXJ0aXRpb25fYWxsb2NfYmFzZS9zdHJpbmdzL3NhZmVfc3ByaW50Zi5oCTIwMjMtMTEtMjYgMTg6 MjA6MjEuMDkwMzY2MDM2ICswMTAwCitAQCAtMTg0LDcgKzE4NCw3IEBAIHN0cnVjdCBBcmcgewor ICAgLy8KKyAgIC8vIFdhcm5pbmc6IGRvbid0IGp1c3QgZG8gQXJnKE5VTEwpIGhlcmUgYmVjYXVz ZSBpbiBzb21lIGxpYmNzLCBOVUxMIGlzIGFuCisgICAvLyBhbGlhcyBmb3IgbnVsbHB0ciEKKy0g IEFyZyhudWxscHRyX3QgcCkgOiB0eXBlKElOVCkgeworKyAgQXJnKHN0ZDo6bnVsbHB0cl90IHAp IDogdHlwZShJTlQpIHsKKyAgICAgaW50ZWdlci5pID0gMDsKKyAgICAgLy8gSW50ZXJuYWxseSwg U2FmZVNwcmludGYgZXhwZWN0cyB0byByZXByZXNlbnQgbnVsbHMgYXMgaW50ZWdlcnMgd2hvc2UK KyAgICAgLy8gd2lkdGggaXMgZXF1YWwgdG8gc2l6ZW9mKE5VTEwpLCB3aGljaCBpcyBub3QgbmVj ZXNzYXJpbHkgZXF1YWwgdG8KK2RpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRf cGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9wYWludC9mcmFnbWVudF9kYXRhX2l0ZXJhdG9yLmgu dGhhbiBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2Nv cmUvcGFpbnQvZnJhZ21lbnRfZGF0YV9pdGVyYXRvci5oCistLS0gY2hyb21pdW0tMTIwLjAuNjA5 OS41Ni90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL3BhaW50L2ZyYWdtZW50X2RhdGFf aXRlcmF0b3IuaC50aGFuCTIwMjMtMTItMDQgMTA6MjA6NDUuMzUwNTQwODk3ICswMTAwCisrKysg Y2hyb21pdW0tMTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL3Bh aW50L2ZyYWdtZW50X2RhdGFfaXRlcmF0b3IuaAkyMDIzLTEyLTA0IDEwOjIzOjE3LjMzNTMzOTY3 MCArMDEwMAorQEAgLTIxLDcgKzIxLDcgQEAgY2xhc3MgRnJhZ21lbnREYXRhSXRlcmF0b3JCYXNl IHsKKyAKKyAgcHVibGljOgorICAgZXhwbGljaXQgRnJhZ21lbnREYXRhSXRlcmF0b3JCYXNlKEhl YWQmIGhlYWQpIDogZnJhZ21lbnRfaGVhZF8oaGVhZCkge30KKy0gIGV4cGxpY2l0IEZyYWdtZW50 RGF0YUl0ZXJhdG9yQmFzZShudWxscHRyX3QpIHt9CisrICBleHBsaWNpdCBGcmFnbWVudERhdGFJ dGVyYXRvckJhc2Uoc3RkOjpudWxscHRyX3QpIHt9CisgCisgICBEYXRhKiBHZXRGcmFnbWVudERh dGEoKSBjb25zdCB7CisgICAgIHJldHVybiAhSXNEb25lKCkgPyAmZnJhZ21lbnRfaGVhZF8uYXQo aWR4XykgOiBudWxscHRyOwoKZGlmZiAtLWdpdCBhL2Nocm9taXVtLTEyMC1zcGxpdC10aHJlc2hv bGQtZm9yLXJlZy13aXRoLWhpbnQucGF0Y2ggYi9jaHJvbWl1bS0xMjAtc3BsaXQtdGhyZXNob2xk LWZvci1yZWctd2l0aC1oaW50LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmU4MGVkNzEKLS0tIC9kZXYvbnVsbAorKysgYi9jaHJvbWl1bS0xMjAtc3BsaXQtdGhyZXNo b2xkLWZvci1yZWctd2l0aC1oaW50LnBhdGNoCkBAIC0wLDAgKzEsMjggQEAKK2RpZmYgLXVwIGNo cm9taXVtLTEyMC4wLjYwOTkuMzUvYnVpbGQvY29uZmlnL2NvbXBpbGVyL0JVSUxELmduLnRoYW4g Y2hyb21pdW0tMTIwLjAuNjA5OS4zNS9idWlsZC9jb25maWcvY29tcGlsZXIvQlVJTEQuZ24KKy0t LSBjaHJvbWl1bS0xMjAuMC42MDk5LjM1L2J1aWxkL2NvbmZpZy9jb21waWxlci9CVUlMRC5nbi50 aGFuCTIwMjMtMTEtMjYgMTc6MDI6MjUuNjQ3MDIyNzQ2ICswMTAwCisrKysgY2hyb21pdW0tMTIw LjAuNjA5OS4zNS9idWlsZC9jb25maWcvY29tcGlsZXIvQlVJTEQuZ24JMjAyMy0xMS0yNiAxNzox NTo1OC4wMjU1ODUzNTggKzAxMDAKK0BAIC02MTYsMjQgKzYxNiw2IEBAIGNvbmZpZygiY29tcGls ZXIiKSB7CisgICAgICAgfQorICAgICB9CisgCistICAgICMgVE9ETyhjcmJ1Zy5jb20vMTQ4ODM3 NCk6IFRoaXMgY2F1c2VzIGJpbmFyeSBzaXplIGdyb3d0aCBhbmQgcG90ZW50aWFsbHkKKy0gICAg IyBvdGhlciBwcm9ibGVtcy4KKy0gICAgIyBUT0RPKGNyYnVnLmNvbS8xNDkxMDM2KTogVGhpcyBp c24ndCBzdXBwb3J0ZWQgYnkgQ3JvbmV0J3MgbWFpbmxpbmUgbGx2bSB2ZXJzaW9uLgorLSAgICBp ZiAoZGVmYXVsdF90b29sY2hhaW4gIT0gIi8vYnVpbGQvdG9vbGNoYWluL2Nyb3M6dGFyZ2V0IiAm JgorLSAgICAgICAgIWxsdm1fYW5kcm9pZF9tYWlubGluZSkgeworLSAgICAgIGNmbGFncyArPSBb CistICAgICAgICAiLW1sbHZtIiwKKy0gICAgICAgICItc3BsaXQtdGhyZXNob2xkLWZvci1yZWct d2l0aC1oaW50PTAiLAorLSAgICAgIF0KKy0gICAgICBpZiAodXNlX3RoaW5fbHRvICYmIGlzX2Ff dGFyZ2V0X3Rvb2xjaGFpbikgeworLSAgICAgICAgaWYgKGlzX3dpbikgeworLSAgICAgICAgICBs ZGZsYWdzICs9IFsgIi1tbGx2bTotc3BsaXQtdGhyZXNob2xkLWZvci1yZWctd2l0aC1oaW50PTAi IF0KKy0gICAgICAgIH0gZWxzZSB7CistICAgICAgICAgIGxkZmxhZ3MgKz0gWyAiLVdsLC1tbGx2 bSwtc3BsaXQtdGhyZXNob2xkLWZvci1yZWctd2l0aC1oaW50PTAiIF0KKy0gICAgICAgIH0KKy0g ICAgICB9CistICAgIH0KKy0KKyAgICAgIyBUT0RPKGNyYnVnLmNvbS8xMjM1MTQ1KTogSW52ZXN0 aWdhdGUgd2h5L2lmIHRoaXMgc2hvdWxkIGJlIG5lZWRlZC4KKyAgICAgaWYgKGlzX3dpbikgewor ICAgICAgIGNmbGFncyArPSBbICIvY2xhbmc6LWZmcC1jb250cmFjdD1vZmYiIF0KCmRpZmYgLS1n aXQgYS9jaHJvbWl1bS0xMjAtc3lzdGVtLWxpYnVzYi5wYXRjaCBiL2Nocm9taXVtLTEyMC1zeXN0 ZW0tbGlidXNiLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjNWJk NTkKLS0tIC9kZXYvbnVsbAorKysgYi9jaHJvbWl1bS0xMjAtc3lzdGVtLWxpYnVzYi5wYXRjaApA QCAtMCwwICsxLDQyIEBACitkaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjM1L2J1aWxkL2xp bnV4L3VuYnVuZGxlL2xpYnVzYi5nbi5zeXN0ZW0tbGlidXNiIGNocm9taXVtLTEyMC4wLjYwOTku MzUvYnVpbGQvbGludXgvdW5idW5kbGUvbGlidXNiLmduCistLS0gY2hyb21pdW0tMTIwLjAuNjA5 OS4zNS9idWlsZC9saW51eC91bmJ1bmRsZS9saWJ1c2IuZ24uc3lzdGVtLWxpYnVzYgkyMDIzLTEx LTIyIDIwOjMxOjMyLjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTEyMC4wLjYwOTkuMzUv YnVpbGQvbGludXgvdW5idW5kbGUvbGlidXNiLmduCTIwMjMtMTEtMjYgMTE6NDY6MTQuNTU5MjYz NjY4ICswMTAwCitAQCAtMSwzICsxLDI3IEBACisrIyBDb3B5cmlnaHQgMjAxNiBUaGUgQ2hyb21p dW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysjIFVzZSBvZiB0aGlzIHNvdXJjZSBj b2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysjIGZv dW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisraW1wb3J0KCIvL2J1aWxkL2NvbmZpZy9saW51 eC9wa2dfY29uZmlnLmduaSIpCisraW1wb3J0KCIvL2J1aWxkL3NoaW1faGVhZGVycy5nbmkiKQor KworK3BrZ19jb25maWcoInN5c3RlbV9saWJ1c2IiKSB7CisrICBwYWNrYWdlcyA9IFsgImxpYnVz Yi0xLjAiIF0KKyt9CisrCisrc2hpbV9oZWFkZXJzKCJsaWJ1c2Jfc2hpbSIpIHsKKysgIHJvb3Rf cGF0aCA9ICJzcmMvbGlidXNiIgorKyAgaGVhZGVycyA9IFsKKysgICAgImxpYnVzYi5oIiwKKysg IF0KKyt9CisrCisrc291cmNlX3NldCgibGlidXNiIikgeworKyAgZGVwcyA9IFsKKysgICAgIjps aWJ1c2Jfc2hpbSIsCisrICBdCisrICBwdWJsaWNfY29uZmlncyA9IFsgIjpzeXN0ZW1fbGlidXNi IiBdCisrfQorIGltcG9ydCgiLy9idWlsZC9jb25maWcvbGludXgvcGtnX2NvbmZpZy5nbmkiKQor IGltcG9ydCgiLy9idWlsZC9zaGltX2hlYWRlcnMuZ25pIikKKyAKK2RpZmYgLXVwIGNocm9taXVt LTEyMC4wLjYwOTkuMzUvYnVpbGQvbGludXgvdW5idW5kbGUvcmVwbGFjZV9nbl9maWxlcy5weS5z eXN0ZW0tbGlidXNiIGNocm9taXVtLTEyMC4wLjYwOTkuMzUvYnVpbGQvbGludXgvdW5idW5kbGUv cmVwbGFjZV9nbl9maWxlcy5weQorLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuMzUvYnVpbGQvbGlu dXgvdW5idW5kbGUvcmVwbGFjZV9nbl9maWxlcy5weS5zeXN0ZW0tbGlidXNiCTIwMjMtMTEtMjYg MTE6NDY6MTQuNTU5MjYzNjY4ICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS4zNS9idWls ZC9saW51eC91bmJ1bmRsZS9yZXBsYWNlX2duX2ZpbGVzLnB5CTIwMjMtMTEtMjYgMTI6MDU6MjAu NTQyNjY1ODc3ICswMTAwCitAQCAtNTYsNiArNTYsNyBAQCBSRVBMQUNFTUVOVFMgPSB7CisgICAn bGliZXZlbnQnOiAndGhpcmRfcGFydHkvbGliZXZlbnQvQlVJTEQuZ24nLAorICAgJ2xpYmpwZWcn OiAndGhpcmRfcGFydHkvbGlianBlZy5nbmknLAorICAgJ2xpYnBuZyc6ICd0aGlyZF9wYXJ0eS9s aWJwbmcvQlVJTEQuZ24nLAorKyAgJ2xpYnVzYic6ICd0aGlyZF9wYXJ0eS9saWJ1c2IvQlVJTEQu Z24nLAorICAgJ2xpYnNlY3JldCcgOiAndGhpcmRfcGFydHkvbGlic2VjcmV0L0JVSUxELmduJywK KyAgICdsaWJ1c2InOiAndGhpcmRfcGFydHkvbGlidXNiL0JVSUxELmduJywKKyAgICdsaWJ2cHgn OiAndGhpcmRfcGFydHkvbGlidnB4L0JVSUxELmduJywKCmRpZmYgLS1naXQgYS9jaHJvbWl1bS0x MjAtdHlwZW5hbWUucGF0Y2ggYi9jaHJvbWl1bS0xMjAtdHlwZW5hbWUucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWEyZDg3OAotLS0gL2Rldi9udWxsCisrKyBiL2No cm9taXVtLTEyMC10eXBlbmFtZS5wYXRjaApAQCAtMCwwICsxLDIwNSBAQAorLS0tIGNocm9taXVt LTEyMC4wLjYwOTkuNTYvYmFzZS9jb250YWluZXJzL21hcF91dGlsLmgubWUJMjAyMy0xMi0wMiAx OTowMDoxOS42OTY4MDE1NjMgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Jhc2Uv Y29udGFpbmVycy9tYXBfdXRpbC5oCTIwMjMtMTItMDIgMTk6MDA6NDcuMDQ5MzM3NTQ3ICswMTAw CitAQCAtNDIsNyArNDIsNyBAQAorIHRlbXBsYXRlIDx0eXBlbmFtZSBNYXAsCisgICAgICAgICAg IHR5cGVuYW1lIEtleSwKKyAgICAgICAgICAgdHlwZW5hbWUgTWFwcGVkRWxlbWVudFR5cGUgPQor LSAgICAgICAgICAgICAgc3RkOjpwb2ludGVyX3RyYWl0czxpbnRlcm5hbDo6TWFwcGVkVHlwZTxN YXA+Pjo6ZWxlbWVudF90eXBlPgorKyAgICAgICAgICAgICAgdHlwZW5hbWUgc3RkOjpwb2ludGVy X3RyYWl0czxpbnRlcm5hbDo6TWFwcGVkVHlwZTxNYXA+Pjo6ZWxlbWVudF90eXBlPgorIGNvbnN0 ZXhwciBjb25zdCBNYXBwZWRFbGVtZW50VHlwZSogRmluZFB0ck9yTnVsbChjb25zdCBNYXAmIG1h cCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgS2V5JiBrZXkpIHsKKyAgIGF1dG8gaXQgPSBtYXAuZmluZChrZXkpOworQEAgLTU4LDcgKzU4 LDcgQEAKKyB0ZW1wbGF0ZSA8dHlwZW5hbWUgTWFwLAorICAgICAgICAgICB0eXBlbmFtZSBLZXks CisgICAgICAgICAgIHR5cGVuYW1lIE1hcHBlZEVsZW1lbnRUeXBlID0KKy0gICAgICAgICAgICAg IHN0ZDo6cG9pbnRlcl90cmFpdHM8aW50ZXJuYWw6Ok1hcHBlZFR5cGU8TWFwPj46OmVsZW1lbnRf dHlwZT4KKysgICAgICAgICAgICAgIHR5cGVuYW1lIHN0ZDo6cG9pbnRlcl90cmFpdHM8aW50ZXJu YWw6Ok1hcHBlZFR5cGU8TWFwPj46OmVsZW1lbnRfdHlwZT4KKyBjb25zdGV4cHIgTWFwcGVkRWxl bWVudFR5cGUqIEZpbmRQdHJPck51bGwoTWFwJiBtYXAsIGNvbnN0IEtleSYga2V5KSB7CisgICBh dXRvIGl0ID0gbWFwLmZpbmQoa2V5KTsKKyAgIHJldHVybiBpdCAhPSBtYXAuZW5kKCkgPyBzdGQ6 OnRvX2FkZHJlc3MoaXQtPnNlY29uZCkgOiBudWxscHRyOworZGlmZiAtdXAgY2hyb21pdW0tMTE1 LjAuNTc5MC4yNC9jaHJvbWUvYnJvd3Nlci9kb3dubG9hZC9idWJibGUvZG93bmxvYWRfYnViYmxl X3VwZGF0ZV9zZXJ2aWNlLmNjLm1lIGNocm9taXVtLTExNS4wLjU3OTAuMjQvY2hyb21lL2Jyb3dz ZXIvZG93bmxvYWQvYnViYmxlL2Rvd25sb2FkX2J1YmJsZV91cGRhdGVfc2VydmljZS5jYworLS0t IGNocm9taXVtLTExNS4wLjU3OTAuMjQvY2hyb21lL2Jyb3dzZXIvZG93bmxvYWQvYnViYmxlL2Rv d25sb2FkX2J1YmJsZV91cGRhdGVfc2VydmljZS5jYy5tZQkyMDIzLTA2LTE3IDE0OjUwOjU2LjM0 MjU5MTcwMiArMDIwMAorKysrIGNocm9taXVtLTExNS4wLjU3OTAuMjQvY2hyb21lL2Jyb3dzZXIv ZG93bmxvYWQvYnViYmxlL2Rvd25sb2FkX2J1YmJsZV91cGRhdGVfc2VydmljZS5jYwkyMDIzLTA2 LTE3IDE0OjU3OjQ4LjAyNDM3NzM3NSArMDIwMAorQEAgLTkxLDcgKzkxLDcgQEAgSXRlbVNvcnRL ZXkgR2V0U29ydEtleShjb25zdCBJdGVtJiBpdGVtKQorIC8vIEhlbHBlciB0byBnZXQgYW4gaXRl cmF0b3IgdG8gdGhlIGxhc3QgZWxlbWVudCBpbiB0aGUgY2FjaGUuIFRoZSBjYWNoZQorIC8vIG11 c3Qgbm90IGJlIGVtcHR5LgorIHRlbXBsYXRlIDx0eXBlbmFtZSBJdGVtPgorLVNvcnRlZEl0ZW1z PEl0ZW0+Ojpjb25zdF9pdGVyYXRvciBHZXRMYXN0SXRlcihjb25zdCBTb3J0ZWRJdGVtczxJdGVt PiYgY2FjaGUpIHsKKyt0eXBlbmFtZSBTb3J0ZWRJdGVtczxJdGVtPjo6Y29uc3RfaXRlcmF0b3Ig R2V0TGFzdEl0ZXIoY29uc3QgU29ydGVkSXRlbXM8SXRlbT4mIGNhY2hlKSB7CisgICBDSEVDSygh Y2FjaGUuZW1wdHkoKSk7CisgICBhdXRvIGl0ID0gY2FjaGUuZW5kKCk7CisgICByZXR1cm4gc3Rk OjpwcmV2KGl0KTsKK0BAIC05NjcsOSArOTY3LDkgQEAgYm9vbCBEb3dubG9hZEJ1YmJsZVVwZGF0 ZVNlcnZpY2U6OkNhY2hlTQorIH0KKyAKKyB0ZW1wbGF0ZSA8dHlwZW5hbWUgSWQsIHR5cGVuYW1l IEl0ZW0+CistU29ydGVkSXRlbXM8SXRlbT46Oml0ZXJhdG9yCisrdHlwZW5hbWUgU29ydGVkSXRl bXM8SXRlbT46Oml0ZXJhdG9yCisgRG93bmxvYWRCdWJibGVVcGRhdGVTZXJ2aWNlOjpDYWNoZU1h bmFnZXI6OlJlbW92ZUl0ZW1Gcm9tQ2FjaGVCeUl0ZXIoCistICAgIFNvcnRlZEl0ZW1zPEl0ZW0+ OjppdGVyYXRvciBpdGVyLAorKyAgICB0eXBlbmFtZSBTb3J0ZWRJdGVtczxJdGVtPjo6aXRlcmF0 b3IgaXRlciwKKyAgICAgU29ydGVkSXRlbXM8SXRlbT4mIGNhY2hlLAorICAgICBJdGVyTWFwPElk LCBJdGVtPiYgaXRlcl9tYXApIHsKKyAgIENIRUNLKGl0ZXIgIT0gY2FjaGUuZW5kKCkpOworZGlm ZiAtdXAgY2hyb21pdW0tMTE1LjAuNTc5MC4zMi9jb21wb25lbnRzL29wdGltaXphdGlvbl9ndWlk ZS9jb3JlL3RmbGl0ZV9tb2RlbF9leGVjdXRvci5oLm1lIGNocm9taXVtLTExNS4wLjU3OTAuMzIv Y29tcG9uZW50cy9vcHRpbWl6YXRpb25fZ3VpZGUvY29yZS90ZmxpdGVfbW9kZWxfZXhlY3V0b3Iu aAorLS0tIGNocm9taXVtLTExNS4wLjU3OTAuMzIvY29tcG9uZW50cy9vcHRpbWl6YXRpb25fZ3Vp ZGUvY29yZS90ZmxpdGVfbW9kZWxfZXhlY3V0b3IuaC5tZQkyMDIzLTA2LTE4IDIxOjUyOjUzLjUx NTYyNTIzNyArMDIwMAorKysrIGNocm9taXVtLTExNS4wLjU3OTAuMzIvY29tcG9uZW50cy9vcHRp bWl6YXRpb25fZ3VpZGUvY29yZS90ZmxpdGVfbW9kZWxfZXhlY3V0b3IuaAkyMDIzLTA2LTE4IDIx OjUzOjA2Ljg4MTg4MTI5MyArMDIwMAorQEAgLTE4OSw3ICsxODksNyBAQCBjbGFzcyBURkxpdGVN b2RlbEV4ZWN1dG9yIDogcHVibGljIE1vZGVsCisgICB2b2lkIFNlbmRGb3JCYXRjaEV4ZWN1dGlv bigKKyAgICAgICBCYXRjaEV4ZWN1dGlvbkNhbGxiYWNrIGNhbGxiYWNrX29uX2NvbXBsZXRlLAor ICAgICAgIGJhc2U6OlRpbWVUaWNrcyBzdGFydF90aW1lLAorLSAgICAgIE1vZGVsRXhlY3V0b3I8 T3V0cHV0VHlwZSwgSW5wdXRUeXBlPjo6Q29uc3RSZWZJbnB1dFZlY3RvciBpbnB1dHMpCisrICAg ICAgdHlwZW5hbWUgTW9kZWxFeGVjdXRvcjxPdXRwdXRUeXBlLCBJbnB1dFR5cGU+OjpDb25zdFJl ZklucHV0VmVjdG9yIGlucHV0cykKKyAgICAgICBvdmVycmlkZSB7CisgICAgIERDSEVDSyhleGVj dXRpb25fdGFza19ydW5uZXJfLT5SdW5zVGFza3NJbkN1cnJlbnRTZXF1ZW5jZSgpKTsKKyAgICAg RENIRUNLX0NBTExFRF9PTl9WQUxJRF9TRVFVRU5DRShzZXF1ZW5jZV9jaGVja2VyXyk7CitkaWZm IC11cCBjaHJvbWl1bS0xMTUuMC41NzkwLjMyL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2Nv cmUvaHRtbC9wYXJzZXIvaHRtbF9kb2N1bWVudF9wYXJzZXJfZmFzdHBhdGguY2MubWUgY2hyb21p dW0tMTE1LjAuNTc5MC4zMi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL2h0bWwvcGFy c2VyL2h0bWxfZG9jdW1lbnRfcGFyc2VyX2Zhc3RwYXRoLmNjCistLS0gY2hyb21pdW0tMTE1LjAu NTc5MC4zMi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL2h0bWwvcGFyc2VyL2h0bWxf ZG9jdW1lbnRfcGFyc2VyX2Zhc3RwYXRoLmNjLm1lCTIwMjMtMDYtMTkgMTA6MDM6MzIuMzE5MjE4 Njc4ICswMjAwCisrKysgY2hyb21pdW0tMTE1LjAuNTc5MC4zMi90aGlyZF9wYXJ0eS9ibGluay9y ZW5kZXJlci9jb3JlL2h0bWwvcGFyc2VyL2h0bWxfZG9jdW1lbnRfcGFyc2VyX2Zhc3RwYXRoLmNj CTIwMjMtMDYtMTkgMTA6MDQ6MTIuMDIzOTQyMjMyICswMjAwCitAQCAtMTY5LDcgKzE2OSw3IEBA IGNsYXNzIEhUTUxGYXN0UGF0aFBhcnNlciB7CisgICB1c2luZyBTcGFuID0gYmFzZTo6c3Bhbjxj b25zdCBDaGFyPjsKKyAgIHVzaW5nIFVTcGFuID0gYmFzZTo6c3Bhbjxjb25zdCBVQ2hhcj47Cisg ICAvLyAzMiBtYXRjaGVzIHRoYXQgdXNlZCBieSBIVE1MVG9rZW46OkF0dHJpYnV0ZS4KKy0gIHR5 cGVkZWYgc3RkOjpjb25kaXRpb25hbDxzdGQ6OmlzX3NhbWVfdjxDaGFyLCBVQ2hhcj4sCisrICB0 eXBlZGVmIHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9uYWw8c3RkOjppc19zYW1lX3Y8Q2hhciwgVUNo YXI+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyTGl0ZXJhbEJ1ZmZlcjwzMj4s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTENoYXJMaXRlcmFsQnVmZmVyPDMyPj46OnR5 cGUgTGl0ZXJhbEJ1ZmZlclR5cGU7CisgICB0eXBlZGVmIFVDaGFyTGl0ZXJhbEJ1ZmZlcjwzMj4g VUNoYXJMaXRlcmFsQnVmZmVyVHlwZTsKK2RpZmYgLXVwIGNocm9taXVtLTExNi4wLjU4NDUuNTAv Y29udGVudC9wdWJsaWMvYnJvd3Nlci93ZWJfdWlfYnJvd3Nlcl9pbnRlcmZhY2VfYnJva2VyX3Jl Z2lzdHJ5LmgubWUgY2hyb21pdW0tMTE2LjAuNTg0NS41MC9jb250ZW50L3B1YmxpYy9icm93c2Vy L3dlYl91aV9icm93c2VyX2ludGVyZmFjZV9icm9rZXJfcmVnaXN0cnkuaAorLS0tIGNocm9taXVt LTExNi4wLjU4NDUuNTAvY29udGVudC9wdWJsaWMvYnJvd3Nlci93ZWJfdWlfYnJvd3Nlcl9pbnRl cmZhY2VfYnJva2VyX3JlZ2lzdHJ5LmgubWUJMjAyMy0wOC0wMiAxNjoxODozMC4zODAxMDgxMjUg KzAyMDAKKysrKyBjaHJvbWl1bS0xMTYuMC41ODQ1LjUwL2NvbnRlbnQvcHVibGljL2Jyb3dzZXIv d2ViX3VpX2Jyb3dzZXJfaW50ZXJmYWNlX2Jyb2tlcl9yZWdpc3RyeS5oCTIwMjMtMDgtMDIgMTY6 MjA6NTkuNjYwMDI0NTc4ICswMjAwCitAQCAtMTI3LDEwICsxMjcsMTAgQEAgY2xhc3MgQ09OVEVO VF9FWFBPUlQgV2ViVUlCcm93c2VySW50ZXJmYQorICAgLy8KKyAgIC8vIFRPRE8oY3JidWcuY29t LzE0MDc5MzYpOiBQb2ludCB0byBXZWJVSUpzQnJpZGdlIGRvY3VtZW50YXRpb24uCisgICB0ZW1w bGF0ZSA8dHlwZW5hbWUgQ29udHJvbGxlclR5cGU+CistICBKc0JyaWRnZVRyYWl0czxDb250cm9s bGVyVHlwZT46OkJpbmRlckluaXRpYWxpemVyJiBGb3JXZWJVSVdpdGhKc0JyaWRnZSgpIHsKKysg IHR5cGVuYW1lIEpzQnJpZGdlVHJhaXRzPENvbnRyb2xsZXJUeXBlPjo6QmluZGVySW5pdGlhbGl6 ZXImIEZvcldlYlVJV2l0aEpzQnJpZGdlKCkgeworICAgICB1c2luZyBUcmFpdHMgPSBKc0JyaWRn ZVRyYWl0czxDb250cm9sbGVyVHlwZT47CistICAgIHVzaW5nIEludGVyZmFjZSA9IFRyYWl0czo6 SW50ZXJmYWNlOworLSAgICB1c2luZyBKc0JyaWRnZUJpbmRlckluaXRpYWxpemVyID0gVHJhaXRz OjpCaW5kZXJJbml0aWFsaXplcjsKKysgICAgdXNpbmcgSW50ZXJmYWNlID0gdHlwZW5hbWUgVHJh aXRzOjpJbnRlcmZhY2U7CisrICAgIHVzaW5nIEpzQnJpZGdlQmluZGVySW5pdGlhbGl6ZXIgPSB0 eXBlbmFtZSBUcmFpdHM6OkJpbmRlckluaXRpYWxpemVyOworIAorICAgICAvLyBXZWJVSUNvbnRy b2xsZXI6OkdldFR5cGUoKSByZXF1aXJlcyBhbiBpbnN0YW50aWF0ZWQgV2ViVUlDb250cm9sbGVy CisgICAgIC8vIChiZWNhdXNlIGl0J3MgYSB2aXJ0dWFsIG1ldGhvZCBhbmQgY2FuJ3QgYmUgc3Rh dGljKS4gSGVyZSB3ZSBvbmx5IGhhdmUKK2RpZmYgLXVwIGNocm9taXVtLTExNi4wLjU4NDUuNTAv dGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9wYWludC9vYmplY3RfcGFpbnRfcHJvcGVy dGllc19zcGFyc2UuaC5tZSBjaHJvbWl1bS0xMTYuMC41ODQ1LjUwL3RoaXJkX3BhcnR5L2JsaW5r L3JlbmRlcmVyL2NvcmUvcGFpbnQvb2JqZWN0X3BhaW50X3Byb3BlcnRpZXNfc3BhcnNlLmgKKy0t LSBjaHJvbWl1bS0xMTYuMC41ODQ1LjUwL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUv cGFpbnQvb2JqZWN0X3BhaW50X3Byb3BlcnRpZXNfc3BhcnNlLmgubWUJMjAyMy0wOC0wMiAyMDo0 MToyMy45ODQ3Mjk0NjIgKzAyMDAKKysrKyBjaHJvbWl1bS0xMTYuMC41ODQ1LjUwL3RoaXJkX3Bh cnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvcGFpbnQvb2JqZWN0X3BhaW50X3Byb3BlcnRpZXNfc3Bh cnNlLmgJMjAyMy0wOC0wMiAyMDo0MTo1My43Mzc1ODMwOTMgKzAyMDAKK0BAIC0yNzAsOCArMjcw LDggQEAgY2xhc3MgQ09SRV9FWFBPUlQgT2JqZWN0UGFpbnRQcm9wZXJ0aWVzUworICAgICAgIE5v ZGVMaXN0JiBub2RlcywKKyAgICAgICBOb2RlSWQgbm9kZV9pZCwKKyAgICAgICBjb25zdCBQYXJl bnRUeXBlJiBwYXJlbnQsCistICAgICAgTm9kZVR5cGU6OlN0YXRlJiYgc3RhdGUsCistICAgICAg Y29uc3QgTm9kZVR5cGU6OkFuaW1hdGlvblN0YXRlJiBhbmltYXRpb25fc3RhdGUgPQorKyAgICAg IHR5cGVuYW1lIE5vZGVUeXBlOjpTdGF0ZSYmIHN0YXRlLAorKyAgICAgIGNvbnN0IHR5cGVuYW1l IE5vZGVUeXBlOjpBbmltYXRpb25TdGF0ZSYgYW5pbWF0aW9uX3N0YXRlID0KKyAgICAgICAgICAg Tm9kZVR5cGU6OkFuaW1hdGlvblN0YXRlKCkpIHsKKyAgICAgLy8gRmlyc3QsIGNoZWNrIGlmIHdl IG5lZWQgdG8gYWRkIGEgbmV3IG5vZGUuCisgICAgIGlmICghbm9kZXMuSGFzRmllbGQobm9kZV9p ZCkpIHsKK2RpZmYgLXVwIGNocm9taXVtLTExNy4wLjU5MzguNjIvY29tcG9uZW50cy9vcHRpbWl6 YXRpb25fZ3VpZGUvY29yZS90ZmxpdGVfbW9kZWxfZXhlY3V0b3IuaC5tZSBjaHJvbWl1bS0xMTcu MC41OTM4LjYyL2NvbXBvbmVudHMvb3B0aW1pemF0aW9uX2d1aWRlL2NvcmUvdGZsaXRlX21vZGVs X2V4ZWN1dG9yLmgKKy0tLSBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL2NvbXBvbmVudHMvb3B0aW1p emF0aW9uX2d1aWRlL2NvcmUvdGZsaXRlX21vZGVsX2V4ZWN1dG9yLmgubWUJMjAyMy0wOS0xNSAx MDoyMjo1MS44ODk2OTg0MDIgKzAyMDAKKysrKyBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL2NvbXBv bmVudHMvb3B0aW1pemF0aW9uX2d1aWRlL2NvcmUvdGZsaXRlX21vZGVsX2V4ZWN1dG9yLmgJMjAy My0wOS0xNSAxMDoyODoyNi43MDI3MTYyMjQgKzAyMDAKK0BAIC0yMzQsNyArMjM0LDcgQEAgY2xh c3MgVEZMaXRlTW9kZWxFeGVjdXRvciA6IHB1YmxpYyBNb2RlbAorICAgLy8gU3RhcnRzIHRoZSBz eW5jaHJvbm91cyBleGVjdXRpb24gb2YgdGhlIG1vZGVsLiBSZXR1cm5zIG1vZGVsIG91dHB1dHMu CisgICAvLyBNb2RlbCBuZWVkcyB0byBiZSBsb2FkZWQuIFN5bmNocm9ub3VzIGNhbGxzIGRvIG5v dCBsb2FkIG9yIHVubG9hZCBtb2RlbC4KKyAgIHN0ZDo6dmVjdG9yPGFic2w6Om9wdGlvbmFsPE91 dHB1dFR5cGU+PiBTZW5kRm9yQmF0Y2hFeGVjdXRpb25TeW5jKAorLSAgICAgIE1vZGVsRXhlY3V0 b3I8T3V0cHV0VHlwZSwgSW5wdXRUeXBlPjo6Q29uc3RSZWZJbnB1dFZlY3RvciBpbnB1dHMpCisr ICAgICAgdHlwZW5hbWUgTW9kZWxFeGVjdXRvcjxPdXRwdXRUeXBlLCBJbnB1dFR5cGU+OjpDb25z dFJlZklucHV0VmVjdG9yIGlucHV0cykKKyAgICAgICBvdmVycmlkZSB7CisgICAgIERDSEVDSyhl eGVjdXRpb25fdGFza19ydW5uZXJfLT5SdW5zVGFza3NJbkN1cnJlbnRTZXF1ZW5jZSgpKTsKKyAg ICAgRENIRUNLX0NBTExFRF9PTl9WQUxJRF9TRVFVRU5DRShzZXF1ZW5jZV9jaGVja2VyXyk7CitA QCAtMzg5LDcgKzM4OSw3IEBAIGNsYXNzIFRGTGl0ZU1vZGVsRXhlY3V0b3IgOiBwdWJsaWMgTW9k ZWwKKyAgIC8vIGV4ZWN1dGVzIGl0IG9uIHRoZSBtb2RlbCBleGVjdXRpb24gdGhyZWFkLgorICAg dm9pZCBMb2FkTW9kZWxGaWxlQW5kQmF0Y2hFeGVjdXRlKAorICAgICAgIEJhdGNoRXhlY3V0aW9u Q2FsbGJhY2sgY2FsbGJhY2tfb25fY29tcGxldGUsCistICAgICAgTW9kZWxFeGVjdXRvcjxPdXRw dXRUeXBlLCBJbnB1dFR5cGU+OjpDb25zdFJlZklucHV0VmVjdG9yIGlucHV0cykgeworKyAgICAg IHR5cGVuYW1lIE1vZGVsRXhlY3V0b3I8T3V0cHV0VHlwZSwgSW5wdXRUeXBlPjo6Q29uc3RSZWZJ bnB1dFZlY3RvciBpbnB1dHMpIHsKKyAgICAgRENIRUNLKGV4ZWN1dGlvbl90YXNrX3J1bm5lcl8t PlJ1bnNUYXNrc0luQ3VycmVudFNlcXVlbmNlKCkpOworICAgICBEQ0hFQ0tfQ0FMTEVEX09OX1ZB TElEX1NFUVVFTkNFKHNlcXVlbmNlX2NoZWNrZXJfKTsKKyAKK0BAIC00MDYsNyArNDA2LDcgQEAg Y2xhc3MgVEZMaXRlTW9kZWxFeGVjdXRvciA6IHB1YmxpYyBNb2RlbAorIAorICAgLy8gQmF0Y2gg ZXhlY3V0ZXMgdGhlIGxvYWRlZCBtb2RlbCBmb3IgaW5wdXRzLgorICAgdm9pZCBCYXRjaEV4ZWN1 dGVMb2FkZWRNb2RlbCgKKy0gICAgICBNb2RlbEV4ZWN1dG9yPE91dHB1dFR5cGUsIElucHV0VHlw ZT46OkNvbnN0UmVmSW5wdXRWZWN0b3IgaW5wdXRzLAorKyAgICAgIHR5cGVuYW1lIE1vZGVsRXhl Y3V0b3I8T3V0cHV0VHlwZSwgSW5wdXRUeXBlPjo6Q29uc3RSZWZJbnB1dFZlY3RvciBpbnB1dHMs CisgICAgICAgc3RkOjp2ZWN0b3I8YWJzbDo6b3B0aW9uYWw8T3V0cHV0VHlwZT4+KiBvdXRwdXRz KSB7CisgICAgIERDSEVDSyhleGVjdXRpb25fdGFza19ydW5uZXJfLT5SdW5zVGFza3NJbkN1cnJl bnRTZXF1ZW5jZSgpKTsKKyAgICAgRENIRUNLX0NBTExFRF9PTl9WQUxJRF9TRVFVRU5DRShzZXF1 ZW5jZV9jaGVja2VyXyk7CitAQCAtNDY2LDcgKzQ2Niw3IEBAIGNsYXNzIFRGTGl0ZU1vZGVsRXhl Y3V0b3IgOiBwdWJsaWMgTW9kZWwKKyAgIC8vIFVubG9hZHMgdGhlIG1vZGVsIGlmIG5lZWRlZC4K KyAgIHZvaWQgQmF0Y2hFeGVjdXRlTG9hZGVkTW9kZWxBbmRSdW5DYWxsYmFjaygKKyAgICAgICBC YXRjaEV4ZWN1dGlvbkNhbGxiYWNrIGNhbGxiYWNrX29uX2NvbXBsZXRlLAorLSAgICAgIE1vZGVs RXhlY3V0b3I8T3V0cHV0VHlwZSwgSW5wdXRUeXBlPjo6Q29uc3RSZWZJbnB1dFZlY3RvciBpbnB1 dHMsCisrICAgICAgdHlwZW5hbWUgTW9kZWxFeGVjdXRvcjxPdXRwdXRUeXBlLCBJbnB1dFR5cGU+ OjpDb25zdFJlZklucHV0VmVjdG9yIGlucHV0cywKKyAgICAgICBFeGVjdXRpb25TdGF0dXMgZXhl Y3V0aW9uX3N0YXR1cykgeworICAgICBEQ0hFQ0soZXhlY3V0aW9uX3Rhc2tfcnVubmVyXy0+UnVu c1Rhc2tzSW5DdXJyZW50U2VxdWVuY2UoKSk7CisgICAgIERDSEVDS19DQUxMRURfT05fVkFMSURf U0VRVUVOQ0Uoc2VxdWVuY2VfY2hlY2tlcl8pOworZGlmZiAtdXAgY2hyb21pdW0tMTE3LjAuNTkz OC42Mi9jb21wb25lbnRzL3N1cGVydmlzZWRfdXNlci9jb3JlL2Jyb3dzZXIvcHJvdG9fZmV0Y2hl ci5jYy5tZSBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL2NvbXBvbmVudHMvc3VwZXJ2aXNlZF91c2Vy L2NvcmUvYnJvd3Nlci9wcm90b19mZXRjaGVyLmNjCistLS0gY2hyb21pdW0tMTE3LjAuNTkzOC42 Mi9jb21wb25lbnRzL3N1cGVydmlzZWRfdXNlci9jb3JlL2Jyb3dzZXIvcHJvdG9fZmV0Y2hlci5j Yy5tZQkyMDIzLTA5LTE1IDE3OjIwOjIyLjU1MDY1NzU4NiArMDIwMAorKysrIGNocm9taXVtLTEx Ny4wLjU5MzguNjIvY29tcG9uZW50cy9zdXBlcnZpc2VkX3VzZXIvY29yZS9icm93c2VyL3Byb3Rv X2ZldGNoZXIuY2MJMjAyMy0wOS0xNSAxNzoyNDoxMS4zOTY3MTY3MzQgKzAyMDAKK0BAIC0zOTks NyArMzk5LDcgQEAgY2xhc3MgUmV0cnlpbmdGZXRjaGVySW1wbCBmaW5hbCA6IHB1YmxpYworICAg UmV0cnlpbmdGZXRjaGVySW1wbChjb25zdCBSZXRyeWluZ0ZldGNoZXJJbXBsJikgPSBkZWxldGU7 CisgICBSZXRyeWluZ0ZldGNoZXJJbXBsJiBvcGVyYXRvcj0oY29uc3QgUmV0cnlpbmdGZXRjaGVy SW1wbCYpID0gZGVsZXRlOworIAorLSAgdm9pZCBTdGFydChQcm90b0ZldGNoZXI8UmVzcG9uc2U+ OjpDYWxsYmFjayBjYWxsYmFjaykgb3ZlcnJpZGUgeworKyAgdm9pZCBTdGFydCh0eXBlbmFtZSBQ cm90b0ZldGNoZXI8UmVzcG9uc2U+OjpDYWxsYmFjayBjYWxsYmFjaykgb3ZlcnJpZGUgeworICAg ICBjYWxsYmFja18gPSBzdGQ6Om1vdmUoY2FsbGJhY2spOworICAgICBSZXRyeSgpOworICAgfQor QEAgLTQzNSw3ICs0MzUsNyBAQCBjbGFzcyBSZXRyeWluZ0ZldGNoZXJJbXBsIGZpbmFsIDogcHVi bGljCisgICB9CisgCisgICAvLyBDbGllbnQgY2FsbGJhY2suCistICBQcm90b0ZldGNoZXI8UmVz cG9uc2U+OjpDYWxsYmFjayBjYWxsYmFja187CisrICB0eXBlbmFtZSBQcm90b0ZldGNoZXI8UmVz cG9uc2U+OjpDYWxsYmFjayBjYWxsYmFja187CisgCisgICAvLyBSZXRyeSBjb250cm9scy4KKyAg IGJhc2U6Ok9uZVNob3RUaW1lciB0aW1lcl87CitAQCAtNTc4LDcgKzU3OCw3IEBAIFBhcmFsbGVs RmV0Y2hNYW5hZ2VyPFJlcXVlc3QsIFJlc3BvbnNlPjoKKyB0ZW1wbGF0ZSA8dHlwZW5hbWUgUmVx dWVzdCwgdHlwZW5hbWUgUmVzcG9uc2U+Cisgdm9pZCBQYXJhbGxlbEZldGNoTWFuYWdlcjxSZXF1 ZXN0LCBSZXNwb25zZT46OkZldGNoKAorICAgICBjb25zdCBSZXF1ZXN0JiByZXF1ZXN0LAorLSAg ICBGZXRjaGVyOjpDYWxsYmFjayBjYWxsYmFjaykgeworKyAgICB0eXBlbmFtZSBGZXRjaGVyOjpD YWxsYmFjayBjYWxsYmFjaykgeworICAgQ0hFQ0soY2FsbGJhY2spIDw8ICJVc2UgYmFzZTo6RG9O b3RoaW5nKCkgaW5zdGVhZCBvZiBlbXB0eSBjYWxsYmFjay4iOworICAgS2V5VHlwZSBrZXkgPSBy ZXF1ZXN0c19pbl9mbGlnaHRfLkFkZChNYWtlRmV0Y2hlcihyZXF1ZXN0KSk7CisgICByZXF1ZXN0 c19pbl9mbGlnaHRfLkxvb2t1cChrZXkpLT5TdGFydCgKK2RpZmYgLXVwIGNocm9taXVtLTExNy4w LjU5MzguNjIvY29tcG9uZW50cy9zdXBlcnZpc2VkX3VzZXIvY29yZS9icm93c2VyL3Byb3RvX2Zl dGNoZXIuaC5tZSBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL2NvbXBvbmVudHMvc3VwZXJ2aXNlZF91 c2VyL2NvcmUvYnJvd3Nlci9wcm90b19mZXRjaGVyLmgKKy0tLSBjaHJvbWl1bS0xMTcuMC41OTM4 LjYyL2NvbXBvbmVudHMvc3VwZXJ2aXNlZF91c2VyL2NvcmUvYnJvd3Nlci9wcm90b19mZXRjaGVy LmgubWUJMjAyMy0wOS0xNSAxNzoyMDo1Ni41NDA0NjAzOTEgKzAyMDAKKysrKyBjaHJvbWl1bS0x MTcuMC41OTM4LjYyL2NvbXBvbmVudHMvc3VwZXJ2aXNlZF91c2VyL2NvcmUvYnJvd3Nlci9wcm90 b19mZXRjaGVyLmgJMjAyMy0wOS0xNSAxNzoyMjoxOC4yNDYyMzc4MTcgKzAyMDAKK0BAIC0xNjUs MTAgKzE2NSwxMCBAQCBjbGFzcyBQYXJhbGxlbEZldGNoTWFuYWdlciB7CisgCisgICAvLyBTdGFy dHMgdGhlIGZldGNoLiBVbmRlcmx5aW5nIGZldGNoZXIgaXMgc3RvcmVkIGludGVybmFsbHksIGFu ZCB3aWxsIGJlCisgICAvLyBjbGVhbmVkIHVwIGFmdGVyIGZpbmlzaCBvciB3aGVuIHRoaXMgbWFu YWdlciBpcyBkZXN0cm95ZWQuCistICB2b2lkIEZldGNoKGNvbnN0IFJlcXVlc3QmIHJlcXVlc3Qs IEZldGNoZXI6OkNhbGxiYWNrIGNhbGxiYWNrKTsKKysgIHZvaWQgRmV0Y2goY29uc3QgUmVxdWVz dCYgcmVxdWVzdCwgdHlwZW5hbWUgRmV0Y2hlcjo6Q2FsbGJhY2sgY2FsbGJhY2spOworIAorICBw cml2YXRlOgorLSAgdXNpbmcgS2V5VHlwZSA9IGJhc2U6OklETWFwPHN0ZDo6dW5pcXVlX3B0cjxG ZXRjaGVyPj46OktleVR5cGU7CisrICB1c2luZyBLZXlUeXBlID0gdHlwZW5hbWUgYmFzZTo6SURN YXA8c3RkOjp1bmlxdWVfcHRyPEZldGNoZXI+Pjo6S2V5VHlwZTsKKyAKKyAgIC8vIFJlbW92ZSBm ZXRjaGVyIHVuZGVyIGtleSBmcm9tIHJlcXVlc3RzX2luX2ZsaWdodF8uCisgICB2b2lkIFJlbW92 ZShLZXlUeXBlIGtleSk7CitkaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3Bh cnR5L2JsaW5rL3JlbmRlcmVyL2JpbmRpbmdzL2NvcmUvdjgvYXN5bmNfaXRlcmFibGUuaC5tZSBj aHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2JpbmRpbmdz L2NvcmUvdjgvYXN5bmNfaXRlcmFibGUuaAorLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhp cmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvYmluZGluZ3MvY29yZS92OC9hc3luY19pdGVyYWJsZS5o Lm1lCTIwMjMtMTItMDQgMDA6Mjk6MzUuMTk3MjA5NTM4ICswMTAwCisrKysgY2hyb21pdW0tMTIw LjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9iaW5kaW5ncy9jb3JlL3Y4L2Fz eW5jX2l0ZXJhYmxlLmgJMjAyMy0xMi0wNCAwMDozMDoyNC40MzYyMzMyNDkgKzAxMDAKK0BAIC0y MjAsNyArMjIwLDcgQEAgY2xhc3MgUGFpckFzeW5jSXRlcmFibGUgeworICBwcml2YXRlOgorICAg dmlydHVhbCBJdGVyYXRpb25Tb3VyY2UqIENyZWF0ZUl0ZXJhdGlvblNvdXJjZSgKKyAgICAgICBT Y3JpcHRTdGF0ZSogc2NyaXB0X3N0YXRlLAorLSAgICAgIEl0ZXJhdGlvblNvdXJjZTo6S2luZCBr aW5kLAorKyAgICAgIHR5cGVuYW1lIEl0ZXJhdGlvblNvdXJjZTo6S2luZCBraW5kLAorICAgICAg IEV4Y2VwdGlvblN0YXRlJiBleGNlcHRpb25fc3RhdGUpID0gMDsKKyB9OworIAorQEAgLTI2Miw3 ICsyNjIsNyBAQCBjbGFzcyBWYWx1ZUFzeW5jSXRlcmFibGUgeworICBwcml2YXRlOgorICAgdmly dHVhbCBJdGVyYXRpb25Tb3VyY2UqIENyZWF0ZUl0ZXJhdGlvblNvdXJjZSgKKyAgICAgICBTY3Jp cHRTdGF0ZSogc2NyaXB0X3N0YXRlLAorLSAgICAgIEl0ZXJhdGlvblNvdXJjZTo6S2luZCBraW5k LAorKyAgICAgIHR5cGVuYW1lIEl0ZXJhdGlvblNvdXJjZTo6S2luZCBraW5kLAorICAgICAgIEV4 Y2VwdGlvblN0YXRlJiBleGNlcHRpb25fc3RhdGUpID0gMDsKKyB9OworIAoKZGlmZiAtLWdpdCBh L2Nocm9taXVtLTEyMC13b3JrYXJvdW5kX2NsYW5nX2J1Zy1zdHJ1Y3R1cmVkX2JpbmRpbmcucGF0 Y2ggYi9jaHJvbWl1bS0xMjAtd29ya2Fyb3VuZF9jbGFuZ19idWctc3RydWN0dXJlZF9iaW5kaW5n LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwNmUyOWYKLS0tIC9k ZXYvbnVsbAorKysgYi9jaHJvbWl1bS0xMjAtd29ya2Fyb3VuZF9jbGFuZ19idWctc3RydWN0dXJl ZF9iaW5kaW5nLnBhdGNoCkBAIC0wLDAgKzEsNTEgQEAKK2RpZmYgLXVwIGNocm9taXVtLTExNS4w LjU3OTAuMjQvbWVkaWEvYmFzZS9jZG1fcHJvbWlzZV9hZGFwdGVyLmNjLndvcmthcm91bmRfY2xh bmdfYnVnLXN0cnVjdHVyZWRfYmluZGluZyBjaHJvbWl1bS0xMTUuMC41NzkwLjI0L21lZGlhL2Jh c2UvY2RtX3Byb21pc2VfYWRhcHRlci5jYworLS0tIGNocm9taXVtLTExNS4wLjU3OTAuMjQvbWVk aWEvYmFzZS9jZG1fcHJvbWlzZV9hZGFwdGVyLmNjLndvcmthcm91bmRfY2xhbmdfYnVnLXN0cnVj dHVyZWRfYmluZGluZwkyMDIzLTA2LTA3IDIxOjQ4OjM3LjAwMDAwMDAwMCArMDIwMAorKysrIGNo cm9taXVtLTExNS4wLjU3OTAuMjQvbWVkaWEvYmFzZS9jZG1fcHJvbWlzZV9hZGFwdGVyLmNjCTIw MjMtMDYtMTcgMTY6NTM6MjAuMjE2NjI4NTU3ICswMjAwCitAQCAtOTQsNyArOTQsOSBAQCB2b2lk IENkbVByb21pc2VBZGFwdGVyOjpSZWplY3RQcm9taXNlKHVpCisgdm9pZCBDZG1Qcm9taXNlQWRh cHRlcjo6Q2xlYXIoQ2xlYXJSZWFzb24gcmVhc29uKSB7CisgICAvLyBSZWplY3QgYWxsIG91dHN0 YW5kaW5nIHByb21pc2VzLgorICAgRENIRUNLKHRocmVhZF9jaGVja2VyXy5DYWxsZWRPblZhbGlk VGhyZWFkKCkpOworLSAgZm9yIChhdXRvJiBbcHJvbWlzZV9pZCwgcHJvbWlzZV0gOiBwcm9taXNl c18pIHsKKysgIGZvciAoYXV0byYgW3BfaSwgcF9lXSA6IHByb21pc2VzXykgeworKyAgICBhdXRv JiBwcm9taXNlX2lkID0gcF9pOworKyAgICBhdXRvJiBwcm9taXNlID0gcF9lOworICAgICBUUkFD RV9FVkVOVF9ORVNUQUJMRV9BU1lOQ19FTkQxKAorICAgICAgICAgIm1lZGlhIiwgIkNkbVByb21p c2UiLCBUUkFDRV9JRF9XSVRIX1NDT1BFKCJDZG1Qcm9taXNlIiwgcHJvbWlzZV9pZCksCisgICAg ICAgICAic3RhdHVzIiwgImNsZWFyZWQiKTsKK2RpZmYgLXVwIGNocm9taXVtLTExNS4wLjU3OTAu MzIvY29udGVudC9icm93c2VyL3NlcnZpY2Vfd29ya2VyL3NlcnZpY2Vfd29ya2VyX2NvbnRleHRf d3JhcHBlci5jYy5tZSBjaHJvbWl1bS0xMTUuMC41NzkwLjMyL2NvbnRlbnQvYnJvd3Nlci9zZXJ2 aWNlX3dvcmtlci9zZXJ2aWNlX3dvcmtlcl9jb250ZXh0X3dyYXBwZXIuY2MKKy0tLSBjaHJvbWl1 bS0xMTUuMC41NzkwLjMyL2NvbnRlbnQvYnJvd3Nlci9zZXJ2aWNlX3dvcmtlci9zZXJ2aWNlX3dv cmtlcl9jb250ZXh0X3dyYXBwZXIuY2MubWUJMjAyMy0wNi0xOSAwODowNDowMi4yODcwNzI3MjIg KzAyMDAKKysrKyBjaHJvbWl1bS0xMTUuMC41NzkwLjMyL2NvbnRlbnQvYnJvd3Nlci9zZXJ2aWNl X3dvcmtlci9zZXJ2aWNlX3dvcmtlcl9jb250ZXh0X3dyYXBwZXIuY2MJMjAyMy0wNi0xOSAwODox ODoyNC41NzY4MTQ5NTAgKzAyMDAKK0BAIC0xMzkzLDcgKzEzOTMsOCBAQCB2b2lkIFNlcnZpY2VX b3JrZXJDb250ZXh0V3JhcHBlcjo6TWF5YmVQCisgICAgIHJldHVybjsKKyAgIH0KKyAKKy0gIGF1 dG8gW2RvY3VtZW50X3VybCwga2V5LCBjYWxsYmFja10gPSBzdGQ6Om1vdmUoKnJlcXVlc3QpOwor KyAgYXV0byBbZF91LCBrZXksIGNhbGxiYWNrXSA9IHN0ZDo6bW92ZSgqcmVxdWVzdCk7CisrICBh dXRvIGRvY3VtZW50X3VybCA9IGRfdTsKKyAKKyAgIERDSEVDSyhkb2N1bWVudF91cmwuaXNfdmFs aWQoKSk7CisgICBUUkFDRV9FVkVOVDEoIlNlcnZpY2VXb3JrZXIiLAorZGlmZiAtdXAgY2hyb21p dW0tMTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL2xheW91dC9n cmlkL2dyaWRfbGF5b3V0X2FsZ29yaXRobS5jYy5tZSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3Ro aXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvbGF5b3V0L2dyaWQvZ3JpZF9sYXlvdXRfYWxn b3JpdGhtLmNjCistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9ibGluay9y ZW5kZXJlci9jb3JlL2xheW91dC9ncmlkL2dyaWRfbGF5b3V0X2FsZ29yaXRobS5jYy5tZQkyMDIz LTEyLTAzIDIyOjE3OjUwLjkyMjA4MzIwMCArMDEwMAorKysrIGNocm9taXVtLTEyMC4wLjYwOTku NTYvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9sYXlvdXQvZ3JpZC9ncmlkX2xheW91 dF9hbGdvcml0aG0uY2MJMjAyMy0xMi0wMyAyMjoyMjo1NS40Mzc0ODQzNDMgKzAxMDAKK0BAIC0z NDQ3LDcgKzM0NDcsOCBAQCB2b2lkIEdyaWRMYXlvdXRBbGdvcml0aG06OlBsYWNlR3JpZEl0ZW1z CisgICBEQ0hFQ0sob3V0X3Jvd19icmVha19iZXR3ZWVuKTsKKyAKKyAgIGNvbnN0IGF1dG8mIGNv bnRhaW5lcl9zcGFjZSA9IENvbnN0cmFpbnRTcGFjZSgpOworLSAgY29uc3QgYXV0byYgW2dyaWRf aXRlbXMsIGxheW91dF9kYXRhLCB0cmVlX3NpemVdID0gc2l6aW5nX3RyZWUuVHJlZVJvb3REYXRh KCk7CisrICBjb25zdCBhdXRvJiBbZ3JpZF9pdGVtcywgbF9kLCB0cmVlX3NpemVdID0gc2l6aW5n X3RyZWUuVHJlZVJvb3REYXRhKCk7CisrICBjb25zdCBhdXRvJiBsYXlvdXRfZGF0YSA9IGxfZDsK KyAKKyAgIGNvbnN0IGF1dG8qIGNhY2hlZF9sYXlvdXRfc3VidHJlZSA9IGNvbnRhaW5lcl9zcGFj ZS5HZXRHcmlkTGF5b3V0U3VidHJlZSgpOworICAgY29uc3QgYXV0byBjb250YWluZXJfd3JpdGlu Z19kaXJlY3Rpb24gPQorQEAgLTM2MTEsNyArMzYxMiw5IEBAIHZvaWQgR3JpZExheW91dEFsZ29y aXRobTo6UGxhY2VHcmlkSXRlbXMKKyAKKyAgIC8vIFRPRE8oaWtpbHBhdHJpY2spOiBVcGRhdGUg fFNldEhhc1NlZW5BbGxDaGlsZHJlbnwgYW5kIGVhcmx5IGV4aXQgaWYgdHJ1ZS4KKyAgIGNvbnN0 IGF1dG8mIGNvbnN0cmFpbnRfc3BhY2UgPSBDb25zdHJhaW50U3BhY2UoKTsKKy0gIGNvbnN0IGF1 dG8mIFtncmlkX2l0ZW1zLCBsYXlvdXRfZGF0YSwgdHJlZV9zaXplXSA9IHNpemluZ190cmVlLlRy ZWVSb290RGF0YSgpOworKyAgY29uc3QgYXV0byYgW2dfaSwgbF9kLCB0cmVlX3NpemVdID0gc2l6 aW5nX3RyZWUuVHJlZVJvb3REYXRhKCk7CisrICBjb25zdCBhdXRvJiBncmlkX2l0ZW1zID0gZ19p OworKyAgY29uc3QgYXV0byYgbGF5b3V0X2RhdGEgPSBsX2Q7CisgCisgICBjb25zdCBhdXRvKiBj YWNoZWRfbGF5b3V0X3N1YnRyZWUgPSBjb25zdHJhaW50X3NwYWNlLkdldEdyaWRMYXlvdXRTdWJ0 cmVlKCk7CisgICBjb25zdCBhdXRvIGNvbnRhaW5lcl93cml0aW5nX2RpcmVjdGlvbiA9CgpkaWZm IC0tZ2l0IGEvY2hyb21pdW0tODUuMC40MTgzLjgzLWVsNy1vbGQtbGliZHJtLnBhdGNoIGIvY2hy b21pdW0tODUuMC40MTgzLjgzLWVsNy1vbGQtbGliZHJtLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCBkN2Q3ZjZlLi4wMDAwMDAwCi0tLSBhL2Nocm9taXVtLTg1LjAuNDE4My44 My1lbDctb2xkLWxpYmRybS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLWRp ZmYgLXVwIGNocm9taXVtLTg1LjAuNDE4My44My91aS9nZngvbGludXgvZHJtX3V0aWxfbGludXgu Y2MuZWw3LW9sZC1saWJkcm0gY2hyb21pdW0tODUuMC40MTgzLjgzL3VpL2dmeC9saW51eC9kcm1f dXRpbF9saW51eC5jYwotLS0tIGNocm9taXVtLTg1LjAuNDE4My44My91aS9nZngvbGludXgvZHJt X3V0aWxfbGludXguY2MuZWw3LW9sZC1saWJkcm0JMjAyMC0wOC0zMSAwOTozODo0Ni4wNDM5OTM4 ODIgLTA0MDAKLSsrKyBjaHJvbWl1bS04NS4wLjQxODMuODMvdWkvZ2Z4L2xpbnV4L2RybV91dGls X2xpbnV4LmNjCTIwMjAtMDgtMzEgMDk6Mzk6MjEuNTk5OTA2MzE4IC0wNDAwCi1AQCAtNiw2ICs2 LDExIEBACi0gCi0gI2luY2x1ZGUgPGRybV9mb3VyY2MuaD4KLSAKLSsvLyB0aGUgbGliZHJtIGlu IEVMLTcgaXMgdG9vIG9sZCB0byBoYXZlIHRoaXMgZGVmaW5lCi0rI2lmbmRlZiBEUk1fRk9STUFU X1AwMTAKLSsjZGVmaW5lIERSTV9GT1JNQVRfUDAxMCBEUk1fRk9STUFUX0lOVkFMSUQKLSsjZW5k aWYKLSsKLSAjaW5jbHVkZSAiYmFzZS9ub3RyZWFjaGVkLmgiCi0gCi0gbmFtZXNwYWNlIHVpIHsK CmRpZmYgLS1naXQgYS9jaHJvbWl1bS05OS4wLjQ4NDQuNTEtZWw3LWV4dHJhLW9wZXJhdG9yLnBh dGNoIGIvY2hyb21pdW0tOTkuMC40ODQ0LjUxLWVsNy1leHRyYS1vcGVyYXRvci5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzRjODlkMC4uMDAwMDAwMAotLS0gYS9jaHJvbWl1 bS05OS4wLjQ4NDQuNTEtZWw3LWV4dHJhLW9wZXJhdG9yLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMjYgKzAsMCBAQAotZGlmZiAtdXAgY2hyb21pdW0tOTkuMC40ODQ0LjUxL2Jhc2UvYWxsb2Nh dG9yL3BhcnRpdGlvbl9hbGxvY2F0b3Ivc3RhcnNjYW4vbWV0YWRhdGFfYWxsb2NhdG9yLmguZWw3 LWV4dHJhLW9wZXJhdG9yLWVxdWFsZXF1YWwgY2hyb21pdW0tOTkuMC40ODQ0LjUxL2Jhc2UvYWxs b2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3Ivc3RhcnNjYW4vbWV0YWRhdGFfYWxsb2NhdG9yLmgK LS0tLSBjaHJvbWl1bS05OS4wLjQ4NDQuNTEvYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9j YXRvci9zdGFyc2Nhbi9tZXRhZGF0YV9hbGxvY2F0b3IuaC5lbDctZXh0cmEtb3BlcmF0b3ItZXF1 YWxlcXVhbAkyMDIyLTAzLTA1IDE4OjM3OjI1Ljk3OTI0MTc1NCAtMDUwMAotKysrIGNocm9taXVt LTk5LjAuNDg0NC41MS9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3N0YXJzY2Fu L21ldGFkYXRhX2FsbG9jYXRvci5oCTIwMjItMDMtMDUgMTg6Mzc6MjUuOTc5MjQxNzU0IC0wNTAw Ci1AQCAtMzksNiArMzksMTEgQEAgY2xhc3MgTWV0YWRhdGFBbGxvY2F0b3IgewotICAgfQotIAot ICAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+Ci0rICBib29sIG9wZXJhdG9yPT0oY29uc3QgTWV0YWRh dGFBbGxvY2F0b3I8VT4mKSBjb25zdCB7Ci0rICAgIHJldHVybiB0cnVlOwotKyAgfQotKwotKyAg dGVtcGxhdGUgPHR5cGVuYW1lIFU+Ci0gICBib29sIG9wZXJhdG9yIT0oY29uc3QgTWV0YWRhdGFB bGxvY2F0b3I8VT4mIG8pIHsKLSAgICAgcmV0dXJuICFvcGVyYXRvcj09KG8pOwotICAgfQotZGlm ZiAtdXAgY2hyb21pdW0tOTkuMC40ODQ0LjUxL3RoaXJkX3BhcnR5L3BkZml1bS9jb3JlL2Z4Y3J0 L2Z4X21lbW9yeV93cmFwcGVycy5oLmVsNy1leHRyYS1vcGVyYXRvci1lcXVhbGVxdWFsIGNocm9t aXVtLTk5LjAuNDg0NC41MS90aGlyZF9wYXJ0eS9wZGZpdW0vY29yZS9meGNydC9meF9tZW1vcnlf d3JhcHBlcnMuaAotLS0tIGNocm9taXVtLTk5LjAuNDg0NC41MS90aGlyZF9wYXJ0eS9wZGZpdW0v Y29yZS9meGNydC9meF9tZW1vcnlfd3JhcHBlcnMuaC5lbDctZXh0cmEtb3BlcmF0b3ItZXF1YWxl cXVhbAkyMDIyLTAzLTA2IDE5OjE0OjIwLjg5MjUxMzQ0MiAtMDUwMAotKysrIGNocm9taXVtLTk5 LjAuNDg0NC41MS90aGlyZF9wYXJ0eS9wZGZpdW0vY29yZS9meGNydC9meF9tZW1vcnlfd3JhcHBl cnMuaAkyMDIyLTAzLTA2IDE5OjE1OjQwLjQxMjA2MDU3NCAtMDUwMAotQEAgLTcwLDYgKzcwLDcg QEAgc3RydWN0IEZ4UGFydGl0aW9uQWxsb2NBbGxvY2F0b3IgewotICAgfQotIAotICAgLy8gVGhl cmUncyBubyBzdGF0ZSwgc28gdGhleSBhcmUgYWxsIHRoZSBzYW1lLAotKyAgYm9vbCBvcGVyYXRv cj09KGNvbnN0IEZ4UGFydGl0aW9uQWxsb2NBbGxvY2F0b3ImKSBjb25zdCB7IHJldHVybiB0cnVl OyB9Ci0gICBib29sIG9wZXJhdG9yPT0oY29uc3QgRnhQYXJ0aXRpb25BbGxvY0FsbG9jYXRvciYg dGhhdCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEZ4UGFydGl0 aW9uQWxsb2NBbGxvY2F0b3ImIHRoYXQpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gfTsKCmRpZmYgLS1n aXQgYS9jaHJvbWl1bS5zcGVjIGIvY2hyb21pdW0uc3BlYwppbmRleCBlNWY5MjhhLi4zOGE4NjM3 IDEwMDY0NAotLS0gYS9jaHJvbWl1bS5zcGVjCisrKyBiL2Nocm9taXVtLnNwZWMKQEAgLTEyMiw2 ICsxMjIsMTIgQEAKIAogIyBlbmFibGV8ZGlzYWJsZSBkZWJ1Z2luZm8KICVnbG9iYWwgZW5hYmxl X2RlYnVnIDEKKyMgZGlzYWJsZSBkZWJ1Z2luZm8gZHVlIHRvIGEgYnVnIGluIGRlYnVnZWRpdCBv biBlbDcKKyMgZXJyb3I6IGNhbm9uaWNhbGl6YXRpb24gdW5leHBlY3RlZGx5IHNocmFuayBieSBv bmUgY2hhcmFjdGVyCisjIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/ aWQ9MzA0MTIxCislaWYgMCV7P3JoZWx9ID09IDcKKyVnbG9iYWwgZW5hYmxlX2RlYnVnIDAKKyVl bmRpZgogJWlmICEgJXtlbmFibGVfZGVidWd9CiAlZ2xvYmFsIGRlYnVnX3BhY2thZ2UgJXtuaWx9 CiAlZ2xvYmFsIGRlYnVnX2xldmVsIDAKQEAgLTE1MCw5ICsxNTYsMjAgQEAKICVnbG9iYWwgX19w cm92aWRlc19leGNsdWRlX2Zyb20gXigle2Nocm9taXVtX3BhdGh9Ly4qXFwuc298JXtjaHJvbWl1 bV9wYXRofS8uKlxcLnNvLiopJAogJWdsb2JhbCBfX3JlcXVpcmVzX2V4Y2x1ZGUgXigle2Nocm9t aXVtX3BhdGh9Ly4qXFwuc298JXtjaHJvbWl1bV9wYXRofS8uKlxcLnNvLiopJAogCisjIGVuYWJs ZXxkaXNhYmxlIHVzZV9jdXN0b21fbGliY3h4CislZ2xvYmFsIHVzZV9jdXN0b21fbGliY3h4IDEK KwogIyBlbmFibGUgY2xhbmcgYnkgZGVmYXVsdAogJWdsb2JhbCBjbGFuZyAxCiAKKyMgZW5hYmxl fGRpc2FibGUgY29udHJvbCBmbG93IGludGVncml0eSBzdXBwb3J0CislZ2xvYmFsIGNmaSAwCisl aWYgJXtjbGFuZ30KKyVpZiAwJXs/ZmVkb3JhfSB8fCAwJXs/cmhlbH0gPiA3CislZ2xvYmFsIGNm aSAxCislZW5kaWYKKyVlbmRpZgorCiAjIHNldCBjb3JyZWN0IHRvb2xjaGFpbgogJWlmICV7Y2xh bmd9CiAlZ2xvYmFsIHRvb2xjaGFpbiBjbGFuZwpAQCAtMTgxLDYgKzE5OCw3IEBACiAKICMgUkhF TCA3LjkgZHJvcHBlZCBtaW5pemlwLgogIyBlbmFibGUgYnVuZGxlbWluaXppcCBmb3IgRmVkb3Jh ID4gMzkgZHVlIHRvIHN3aXRjaCB0byBtaW5pemlwLW5nCisjIHdoaWNoIGJyZWFrcyB0aGUgYnVp bGQKICVnbG9iYWwgYnVuZGxlbWluaXppcCAwCiAlaWYgMCV7P3JoZWx9ID09IDcgfHwgMCV7P2Zl ZG9yYX0gPiAzOQogJWdsb2JhbCBidW5kbGVtaW5pemlwIDEKQEAgLTE5Myw3ICsyMTEsNyBAQAog JWdsb2JhbCB1c2VfcXQgMAogJWVuZGlmCiAKLSVpZiAwJXs/cmhlbH0gPjkgfHwgMCV7P2ZlZG9y YX0KKyVpZiAwJXs/cmhlbH0gPiA5IHx8IDAlez9mZWRvcmF9CiAlZ2xvYmFsIHVzZV9xdDYgMQog JWVsc2UKICVnbG9iYWwgdXNlX3F0NiAwCkBAIC0yNzIsOCArMjkwLDggQEAKICVlbmRpZgogCiBO YW1lOgljaHJvbWl1bSV7Y2hyb21pdW1fY2hhbm5lbH0KLVZlcnNpb246IDExOS4wLjYwNDUuMTk5 Ci1SZWxlYXNlOiAyJXs/ZGlzdH0KK1ZlcnNpb246IDEyMC4wLjYwOTkuNjIKK1JlbGVhc2U6IDEl ez9kaXN0fQogU3VtbWFyeTogQSBXZWJLaXQgKEJsaW5rKSBwb3dlcmVkIHdlYiBicm93c2VyIHRo YXQgR29vZ2xlIGRvZXNuJ3Qgd2FudCB5b3UgdG8gdXNlCiBVcmw6IGh0dHA6Ly93d3cuY2hyb21p dW0ub3JnL0hvbWUKIExpY2Vuc2U6IEJTRC0zLUNsYXVzZSBBTkQgTEdQTC0yLjEtb3ItbGF0ZXIg QU5EIEFwYWNoZS0yLjAgQU5EIElKRyBBTkQgTUlUIEFORCBHUEwtMi4wLW9yLWxhdGVyIEFORCBJ U0MgQU5EIE9wZW5TU0wgQU5EIChNUEwtMS4xIE9SIEdQTC0yLjAtb25seSBPUiBMR1BMLTIuMC1v bmx5KQpAQCAtMjg1LDcgKzMwMyw3IEBAIFBhdGNoMDogY2hyb21pdW0tNzAuMC4zNTM4LjY3LXNh bmRib3gtcGllLnBhdGNoCiBQYXRjaDE6IGNocm9taXVtLTExNS1pbml0aWFsX3ByZWZzLWV0Yy1w YXRoLnBhdGNoCiAKICMgc3lzdGVtIGxpYnVzYgotUGF0Y2gyOiBjaHJvbWl1bS0xMTktc3lzdGVt LWxpYnVzYi5wYXRjaAorUGF0Y2gyOiBjaHJvbWl1bS0xMjAtc3lzdGVtLWxpYnVzYi5wYXRjaAog CiAjIERvIG5vdCBtYW5nbGUgemxpYgogUGF0Y2g1OiBjaHJvbWl1bS03Ny4wLjM4NjUuNzUtbm8t emxpYi1tYW5nbGUucGF0Y2gKQEAgLTMyOSw3ICszNDcsOCBAQCBQYXRjaDg5OiBjaHJvbWl1bS0x MTYtc3lzdGVtLWJyb3RsaS5wYXRjaAogCiAjIGRpc2FibGUgR2xvYmFsTWVkaWFDb250cm9sc0Nh c3RTdGFydFN0b3AgdG8gYXZvaWQgY3Jhc2gKICMgd2hlbiB1c2luZyB0aGUgYWRkcmVzcyBiYXIg bWVkaWEgcGxheWVyIGJ1dHRvbgotUGF0Y2g5MDogY2hyb21pdW0tMTE5LWRpc2FibGUtR2xvYmFs TWVkaWFDb250cm9sc0Nhc3RTdGFydFN0b3AucGF0Y2gKKyMgaXQgd29ya3Mgd2l0aCB1c2VfY3Vz dG9tX2xpYmN4eD10cnVlCitQYXRjaDkwOiBjaHJvbWl1bS0xMjAtZGlzYWJsZS1HbG9iYWxNZWRp YUNvbnRyb2xzQ2FzdFN0YXJ0U3RvcC5wYXRjaAogCiAjIHBhdGNoIGZvciB1c2luZyBzeXN0ZW0g b3B1cwogUGF0Y2g5MTogY2hyb21pdW0tMTA4LXN5c3RlbS1vcHVzLnBhdGNoCkBAIC0zNDksNyAr MzY4LDcgQEAgUGF0Y2gxMDQ6IGNocm9taXVtLTk5LjAuNDg0NC41MS1lcGVsNy1vbGQtY3Vwcy5w YXRjaAogCiAjIGxpYmRybSBvbiBFTDcgaXMgcmF0aGVyIG9sZCBhbmQgY2hyb21pdW0gYXNzdW1l cyBuZXdlcgogIyBUaGlzIGdldHMgdXMgYnkgZm9yIG5vdwotUGF0Y2gxMDU6IGNocm9taXVtLTg1 LjAuNDE4My44My1lbDctb2xkLWxpYmRybS5wYXRjaAorUGF0Y2gxMDU6IGNocm9taXVtLTEyMC1l bDctb2xkLWxpYmRybS5wYXRjaAogCiAjIGVycm9yOiBubyBtYXRjaGluZyBmdW5jdGlvbiBmb3Ig Y2FsbCB0byAnc3RkOjpiYXNpY19zdHJpbmc8Y2hhcj46OmVyYXNlKHN0ZDo6YmFzaWNfc3RyaW5n PGNoYXI+Ojpjb25zdF9pdGVyYXRvciwgX19nbnVfY3h4OjpfX25vcm1hbF9pdGVyYXRvcjxjb25z dCBjaGFyKiwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcj4gPiYpJwogIyAgIDMzIHwgICBwcm9wZXJ0 eV9uYW1lLmVyYXNlKHByb3BlcnR5X25hbWUuY2JlZ2luKCksIGN1cik7CkBAIC0zNTcsNyArMzc2 LDcgQEAgUGF0Y2gxMDU6IGNocm9taXVtLTg1LjAuNDE4My44My1lbDctb2xkLWxpYmRybS5wYXRj aAogUGF0Y2gxMDY6IGNocm9taXVtLTk4LjAuNDc1OC44MC1lcGVsNy1lcmFzZS1maXgucGF0Y2gK IAogIyBBZGQgYWRkaXRpb25hbCBvcGVyYXRvcj09IHRvIG1ha2UgZWw3IGhhcHB5LgotUGF0Y2gx MDc6IGNocm9taXVtLTk5LjAuNDg0NC41MS1lbDctZXh0cmEtb3BlcmF0b3IucGF0Y2gKK1BhdGNo MTA3OiBjaHJvbWl1bS0xMjAtZWw3LWV4dHJhLW9wZXJhdG9yLnBhdGNoCiAjIG9sZCB2NGwyIG9u IGVsNwogUGF0Y2gxMDg6IGNocm9taXVtLTExOC1lbDdfdjRsMl9xdWFudGl6YXRpb24ucGF0Y2gg CiAjIHdvcmthcm91bmQgZm9yIGNsYW5nIGJ1ZyBvbiBlbDcKQEAgLTM2NSwxMiArMzg0LDE2IEBA IFBhdGNoMTA5OiBjaHJvbWl1bS0xMTQtd2lyZWxlc3MtZWw3LnBhdGNoCiBQYXRjaDExMDogY2hy b21pdW0tMTE1LWJ1aWxkZmxhZy1lbDcucGF0Y2gKIFBhdGNoMTExOiBjaHJvbWl1bS0xMTYtY29u c3RleHByLnBhdGNoCiBQYXRjaDExMjogY2hyb21pdW0tMTE3LWVsNy1kZWZhdWx0X2NvbnN0cnVj dG9yLnBhdGNoCisjIG9sZCBjbGFuZyBvbiBlbDcKKworUGF0Y2gxMTM6IGNocm9taXVtLTEyMC1l bDctY2xhbmctdmVyc2lvbi13YXJuaW5nLnBhdGNoCitQYXRjaDExNDogY2hyb21pdW0tMTIwLWVs Ny1jbGFuZy1idWlsZC1mYWlsdXJlLnBhdGNoCiAKICMgc3lzdGVtIGZmbXBlZwogIyBuZWVkIGZv ciBvbGQgZmZtcGVnIDUueCBvbiBlcGVsOSBhbmQgZmVkb3JhIDM3Ci1QYXRjaDExNDogY2hyb21p dW0tMTA3LWZmbXBlZy01LngtZHVyYXRpb24ucGF0Y2gKK1BhdGNoMTE1OiBjaHJvbWl1bS0xMDct ZmZtcGVnLTUueC1kdXJhdGlvbi5wYXRjaAogIyBkaXNhYmxlIHRoZSBjaGVjawotUGF0Y2gxMTU6 IGNocm9taXVtLTEwNy1wcm9wcmlldGFyeS1jb2RlY3MucGF0Y2gKK1BhdGNoMTE2OiBjaHJvbWl1 bS0xMDctcHJvcHJpZXRhcnktY29kZWNzLnBhdGNoCiAjIGZpeCB0YWIgY3Jhc2ggd2l0aCBTSUdU UkFQIGVycm9yIHdoZW4gdXNpbmcgc3lzdGVtIGZmbXBlZwogUGF0Y2gxMTc6IGNocm9taXVtLTEx OC1zaWd0cmFwX3N5c3RlbV9mZm1wZWcucGF0Y2gKIApAQCAtMzgyLDM1ICs0MDUsMzIgQEAgUGF0 Y2gxNDA6IGNocm9taXVtLTExOC1kbWFfYnVmX2V4cG9ydF9zeW5jX2ZpbGUtY29uZmxpY3QucGF0 Y2gKIAogIyBmaXhlcyBmb3Igb2xkIGNsYW5nIHZlcnNpb24gaW4gZmVkb3JhIDwgMzggZW5kIGVw ZWwgPCA4IChvbGQgY2xhbmcgPD0gMTUpCiAjIGNvbXBpbGVyIGJ1aWxkIGVycm9ycywgbm8gbWF0 Y2hpbmcgY29uc3RydWN0b3IgZm9yIGluaXRpYWxpemF0aW9uCi1QYXRjaDMwMDogY2hyb21pdW0t MTE5LW5vX21hdGNoaW5nX2NvbnN0cnVjdG9yLnBhdGNoCitQYXRjaDMwMDogY2hyb21pdW0tMTIw LW5vX21hdGNoaW5nX2NvbnN0cnVjdG9yLnBhdGNoCiBQYXRjaDMwMTogY2hyb21pdW0tMTE1LWNv bXBpbGVyLVNrQ29sb3I0Zi5wYXRjaAogCiAjIHdvcmthcm91bmQgZm9yIGNsYW5nIGJ1ZywgaHR0 cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L2lzc3Vlcy81NzgyNgotUGF0Y2gzMDI6 IGNocm9taXVtLTExOC13b3JrYXJvdW5kX2NsYW5nX2J1Zy1zdHJ1Y3R1cmVkX2JpbmRpbmcucGF0 Y2gKK1BhdGNoMzAyOiBjaHJvbWl1bS0xMjAtd29ya2Fyb3VuZF9jbGFuZ19idWctc3RydWN0dXJl ZF9iaW5kaW5nLnBhdGNoCiAKICMgbWlzc2luZyB0eXBlbmFtZQotUGF0Y2gzMDM6IGNocm9taXVt LTExNy10eXBlbmFtZS5wYXRjaAorUGF0Y2gzMDM6IGNocm9taXVtLTEyMC10eXBlbmFtZS5wYXRj aAogCiAjIGVycm9yOiBpbnZhbGlkIG9wZXJhbmRzIHRvIGJpbmFyeSBleHByZXNzaW9uCiBQYXRj aDMwNDogY2hyb21pdW0tMTE3LXN0cmluZy1jb252ZXJ0LnBhdGNoCiAKLSMgZXJyb3I6IGNvbnN0 ZXhwciBjb25zdHJ1Y3RvcidzIDNyZCBwYXJhbWV0ZXIgdHlwZSAnc3RkOjpzdHJpbmcnIChha2Eg J2Jhc2ljX3N0cmluZzxjaGFyPicpIGlzIG5vdCBhIGxpdGVyYWwgdHlwZQotUGF0Y2gzMDU6IGNo cm9taXVtLTExOS1jb25zdGV4cHIucGF0Y2gKLQogUGF0Y2gzMDY6IGNocm9taXVtLTExOS1hc3Nl cnQucGF0Y2gKIAogIyBkaXNhYmxlIG1lbW9yeSB0YWdnaW5nIGluIGVwZWw3IGFuZCBlcGVsOCBv biBhYXJjaDY0IGR1ZSB0byBuZXcgZmVhdHVyZSBJRlVOQy1SZXNvbHZlcgogIyBub3Qgc3VwcG9y dGVkIGluIG9sZCBnbGliYyA8IDIuMzAsIGVycm9yOiBmYXRhbCBlcnJvcjogJ3N5cy9pZnVuYy5o JyBmaWxlIG5vdCBmb3VuZAotUGF0Y2gzMDc6IGNocm9taXVtLTExOC1hcm02NC1tZW1vcnlfdGFn Z2luZy5wYXRjaAorUGF0Y2gzMDc6IGNocm9taXVtLTEyMC1hcm02NC1tZW1vcnlfdGFnZ2luZy5w YXRjaAogCiAjIG1pc3NpbmcgaW5jbHVkZSBoZWFkZXIgZmlsZXMKLVBhdGNoMzEwOiBjaHJvbWl1 bS0xMTktbWlzc2luZy1oZWFkZXItZmlsZXMucGF0Y2gKK1BhdGNoMzEwOiBjaHJvbWl1bS0xMjAt bWlzc2luZy1oZWFkZXItZmlsZXMucGF0Y2gKIAogIyBjbGFuZyB3YXJuaW5ncwogUGF0Y2gzMTE6 IGNocm9taXVtLTExNS1jbGFuZy13YXJuaW5ncy5wYXRjaAogCi0jIGltcCBtb2R1bGUgaXMgcmVt b3ZlZCBpbiBweXRob24tMy4xMiBpbiBmZWRvcmEgMzkgYW5kIG5ld2VyCi1QYXRjaDMxMjogY2hy b21pdW0tMTE4LXB5dGhvbi0zLjEyLWRlcHJlY2F0ZWQucGF0Y2gKKyMgZW5hYmxlIGZzdGFjay1w cm90ZWN0b3Itc3Ryb25nCitQYXRjaDMxMjogY2hyb21pdW0tMTE5LWZzdGFjay1wcm90ZWN0b3It c3Ryb25nLnBhdGNoCiAKICMgYnVpbGQgZXJyb3IKIFBhdGNoMzUxOiBjaHJvbWl1bS0xMTctbW5l bW9uaWMtZXJyb3IucGF0Y2gKQEAgLTQxOSwxOSArNDM5LDE3IEBAIFBhdGNoMzUxOiBjaHJvbWl1 bS0xMTctbW5lbW9uaWMtZXJyb3IucGF0Y2gKICMgaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9w L2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTE0NTU4MSNjNjAKICMgRGlzYWJsZSBCVEkgdW50 aWwgdGhpcyBpcyBmaXhlZCB1cHN0cmVhbS4KIFBhdGNoMzUyOiBjaHJvbWl1bS0xMTctd29ya2Fy b3VuZF9mb3JfY3Jhc2hfb25fQlRJX2NhcGFibGVfc3lzdGVtLnBhdGNoCi0jIGVuYWJsZSBmc3Rh Y2stcHJvdGVjdG9yLXN0cm9uZwotUGF0Y2gzNTM6IGNocm9taXVtLTExOS1mc3RhY2stcHJvdGVj dG9yLXN0cm9uZy5wYXRjaAorCisjIGduIHdvcmthcm91bmQgZm9yIHRoZSBlcnJvcjogQXNzaWdu bWVudCBoYWQgbm8gZWZmZWN0CitQYXRjaDM1MzogY2hyb21pdW0tMTIwLWduLXdvcmthcm91bmQt YXRzcGkucGF0Y2gKKyMgcmVtb3ZlIGZsYWcgc3BsaXQtdGhyZXNob2xkLWZvci1yZWctd2l0aC1o aW50LCBpdCcgbm90IHN1cHBvcnRlZCBpbiBjbGFuZyA8PSAxNworUGF0Y2gzNTQ6IGNocm9taXVt LTEyMC1zcGxpdC10aHJlc2hvbGQtZm9yLXJlZy13aXRoLWhpbnQucGF0Y2gKKyMgZXJyb3I6IHVu a25vd24gdHlwZSBuYW1lICdudWxscHRyX3QnCitQYXRjaDM1NTogY2hyb21pdW0tMTIwLW51bGxw dHJfdC13aXRob3V0LW5hbWVzcGFjZS1zdGQucGF0Y2gKKyMgZGlzYWJsZSBGRm1wZWdBbGxvd0xp c3RzIGJ5IGRlZmF1bHQgdG8gYWxsb3cgZXh0ZXJuYWwgZmZtcGVnCitwYXRjaDM1NjogY2hyb21p dW0tMTIwLWRpc2FibGUtRkZtcGVnQWxsb3dMaXN0cy5wYXRjaAogCiAjIHVwc3RyZWFtIHBhdGNo ZXMKLSMgcmV2ZXJ0IGR1ZSB0byBidWlsZCBlcnJvciByZWRlZmluZSBBVFNQSSB2ZXJzaW9uIG1h Y3JvcwotUGF0Y2g0MDA6IGNocm9taXVtLTExOS1kb250LXJlZGVmaW5lLUFUU1BJLXZlcnNpb24t bWFjcm9zLnBhdGNoCi0jIGZpeCBidWlsZCBlcnJvciwgbnVsbHB0cl90IHdpdGhvdXQgbmFtZXNw YWNlIHN0ZDo6Ci1QYXRjaDQwMTogY2hyb21pdW0tMTE5LW51bGxwdHJfdC13aXRob3V0LW5hbWVz cGFjZS1zdGQucGF0Y2gKLSMgd29ya2Fyb3VuZCBmb3IgYnVnZ3kgTnZpZGlhIGRyaXZlcnMgZmFp bCB0byByZXR1cm4gRkRzIGZvciBwbGFuZXMKLSMgb2YgYSBCTyB3aGljaCBoYWQgYWxyZWFkeSBh biBpbXBvcnRlZCBCTyBkZXN0cm95ZWQgYmVmb3JlLgotUGF0Y2g0MDI6IGNocm9taXVtLTExOS1u dmlkaWEtdXNlLXNlcGFyYXRlLWJvLXRvLXZlcmlmeS1tb2RpZmllci5wYXRjaAotIyBoaWRlIFVz ZUNocm9tZU9TRGlyZWN0VmlkZW9EZWNvZGVyIGZsYWcgb24gVkEtQVBJIGRldmljZXMgdG8gYXZv aWQgY3Jhc2hlcwotUGF0Y2g0MDM6IGNocm9taXVtLTExOS1oaWRlLVVzZUNocm9tZU9TRGlyZWN0 VmlkZW9EZWNvZGVyLWZsYWctb24tVkEtQVBJLWRldmljZXMucGF0Y2gKIAogIyBVc2UgY2hyb21p dW0tbGF0ZXN0LnB5IHRvIGdlbmVyYXRlIGNsZWFuIHRhcmJhbGwgZnJvbSByZWxlYXNlZCBidWls ZCB0YXJiYWxscywgZm91bmQgaGVyZToKICMgaHR0cDovL2J1aWxkLmNocm9taXVtLm9yZy9idWls ZGJvdC9vZmZpY2lhbC8KQEAgLTQ4Niw3ICs1MDQsNyBAQCBCdWlsZFJlcXVpcmVzOiAle3Rvb2xz ZXR9LSV7ZHRzX3ZlcnNpb259LWxpYmF0b21pYy1kZXZlbAogJWVuZGlmCiAlZWxzZQogJWlmIDAl ez9yaGVsfSA9PSA3IHx8IDAlez9yaGVsfSA9PSA4Ci1CdWlsZFJlcXVpcmVzOiAle3Rvb2xzZXR9 LSV7ZHRzX3ZlcnNpb259LXRvb2xjaGFpbiwgJXt0b29sc2V0fS0le2R0c192ZXJzaW9ufS1saWJh dG9taWMtZGV2ZWwKK0J1aWxkUmVxdWlyZXM6ICV7dG9vbHNldH0tJXtkdHNfdmVyc2lvbn0tYmlu dXRpbHMsICV7dG9vbHNldH0tJXtkdHNfdmVyc2lvbn0tbGliYXRvbWljLWRldmVsCiAlZW5kaWYK ICVpZiAwJXs/ZmVkb3JhfSB8fCAwJXs/cmhlbH0gPiA4CiBCdWlsZFJlcXVpcmVzOiBnY2MtYysr CkBAIC01NDAsNiArNTU4LDEwIEBAIEJ1aWxkUmVxdWlyZXM6IHBrZ2NvbmZpZyhRdDZDb3JlKQog QnVpbGRSZXF1aXJlczogcGtnY29uZmlnKFF0NldpZGdldHMpCiAlZW5kaWYKIAorJWlmICV7Y2Zp fQorQnVpbGRSZXF1aXJlczogY29tcGlsZXItcnQKKyVlbmRpZgorCiAlaWYgISAle2J1bmRsZWhh cmZidXp6fQogQnVpbGRSZXF1aXJlczoJaGFyZmJ1enotZGV2ZWwgPj0gMi40LjAKICVlbmRpZgpA QCAtOTQ4LDggKzk3MCw4IEBAIHVkZXYuCiAlcGF0Y2ggLVAyMCAtcDEgLWIgLmRpc2FibGUtZm9u dC10ZXN0CiAKICVpZiAhICV7YnVuZGxlbWluaXppcH0KLSVwYXRjaCAtUDYxIC1wMSAtYiAuc3lz dGVtLW1pbml6aXAKICVwYXRjaCAtUDUyIC1wMSAtYiAudW5idW5kbGUtemxpYgorJXBhdGNoIC1Q NjEgLXAxIC1iIC5zeXN0ZW0tbWluaXppcAogJWVuZGlmCiAKICVwYXRjaCAtUDY1IC1wMSAtYiAu amF2YS1vbmx5LWFsbG93ZWQKQEAgLTk2MSw3ICs5ODMsOSBAQCB1ZGV2LgogJXBhdGNoIC1QODkg LXAxIC1iIC5zeXN0ZW0tYnJvdGxpCiAlZW5kaWYKIAorJWlmICEgJXt1c2VfY3VzdG9tX2xpYmN4 eH0KICVwYXRjaCAtUDkwIC1wMSAtYiAuZGlzYWJsZS1HbG9iYWxNZWRpYUNvbnRyb2xzQ2FzdFN0 YXJ0U3RvcAorJWVuZGlmCiAKICVpZiAhICV7YnVuZGxlb3B1c30KICVwYXRjaCAtUDkxIC1wMSAt YiAuc3lzdGVtLW9wdXMKQEAgLTk3NCw5ICs5OTgsOSBAQCB1ZGV2LgogCiAlaWYgISAle2J1bmRs ZWZmbXBlZ2ZyZWV9CiAlaWYgMCV7P3JoZWx9ID09IDkgfHwgMCV7P2ZlZG9yYX0gPT0gMzcKLSVw YXRjaCAtUDExNCAtcDEgLWIgLmZmbXBlZy01LngtZHVyYXRpb24KKyVwYXRjaCAtUDExNSAtcDEg LWIgLmZmbXBlZy01LngtZHVyYXRpb24KICVlbmRpZgotJXBhdGNoIC1QMTE1IC1wMSAtYiAucHJv cC1jb2RlY3MKKyVwYXRjaCAtUDExNiAtcDEgLWIgLnByb3AtY29kZWNzCiAlcGF0Y2ggLVAxMTcg LXAxIC1iIC5zaWd0cmFwX3N5c3RlbV9mZm1wZWcKICVlbmRpZgogCkBAIC05OTQsNiArMTAxOCw4 IEBAIHVkZXYuCiAlcGF0Y2ggLVAxMTAgLXAxIC1iIC5idWlsZGZsYWctZWw3CiAlcGF0Y2ggLVAx MTEgLXAxIC1iIC5jb25zdGV4cHIKICVwYXRjaCAtUDExMiAtcDEgLWIgLmRlZmF1bHRfY29uc3Ry dWN0b3IKKyVwYXRjaCAtUDExMyAtcDEgLWIgLmVsNy1jbGFuZy12ZXJzaW9uLXdhcm5pbmcKKyVw YXRjaCAtUDExNCAtcDEgLVIgLWIgLmNsYW5nLWJ1aWxkLWZhaWx1cmUKICVlbmRpZgogCiAlaWYg MCV7P3JoZWx9ID09IDggfHwgMCV7P3JoZWx9ID09IDkKQEAgLTEwMTEsNyArMTAzNyw2IEBAIHVk ZXYuCiAlcGF0Y2ggLVAzMDIgLXAxIC1iIC53b3JrYXJvdW5kX2NsYW5nX2J1Zy1zdHJ1Y3R1cmVk X2JpbmRpbmcKICVwYXRjaCAtUDMwMyAtcDEgLWIgLnR5cGVuYW1lCiAlcGF0Y2ggLVAzMDQgLXAx IC1iIC5zdHJpbmctY29udmVydAotJXBhdGNoIC1QMzA1IC1wMSAtYiAuY29uc3RleHByCiAlcGF0 Y2ggLVAzMDYgLXAxIC1iIC5hc3NlcnQKICVlbmRpZgogJWVuZGlmCkBAIC0xMDI0LDEwICsxMDQ5 LDcgQEAgdWRldi4KIAogJXBhdGNoIC1QMzEwIC1wMSAtYiAubWlzc2luZy1oZWFkZXItZmlsZXMK ICVwYXRjaCAtUDMxMSAtcDEgLWIgLmNsYW5nLXdhcm5pbmdzCi0KLSVpZiAwJXs/cmhlbH0gPiA5 IHx8IDAlez9mZWRvcmF9ID4gMzgKLSVwYXRjaCAtUDMxMiAtcDEgLWIgLnB5dGhvbi0zLjEyLWRl cHJlY2F0ZWQKLSVlbmRpZgorJXBhdGNoIC1QMzEyIC1wMSAtYiAuZnN0YWNrLXByb3RlY3Rvci1z dHJvbmcKIAogJXBhdGNoIC1QMzUxIC1wMSAtYiAubW5lbW9uaWMtZXJyb3IKIApAQCAtMTAzNSwx MSArMTA1NywxMiBAQCB1ZGV2LgogJXBhdGNoIC1QMzUyIC1wMSAtYiAud29ya2Fyb3VuZF9mb3Jf Y3Jhc2hfb25fQlRJX2NhcGFibGVfc3lzdGVtCiAlZW5kaWYKIAotJXBhdGNoIC1QMzUzIC1wMSAt YiAuZnN0YWNrLXByb3RlY3Rvci1zdHJvbmcKLSVwYXRjaCAtUDQwMCAtcDEgLVIgLWIgLnJldmVy dC1kb250LXJlZGVmaW5lLUFUU1BJLXZlcnNpb24tbWFjcm9zLnBhdGNoCi0lcGF0Y2ggLVA0MDEg LXAxIC1iIC5udWxscHRyX3Qtd2l0aG91dC1uYW1lc3BhY2Utc3RkCi0lcGF0Y2ggLVA0MDIgLXAx IC1iIC5udmlkaWEtdXNlLXNlcGFyYXRlLWJvLXRvLXZlcmlmeS1tb2RpZmllcnMKLSVwYXRjaCAt UDQwMyAtcDEgLWIgLlVzZUNocm9tZU9TRGlyZWN0VmlkZW9EZWNvZGVyLWZsYWctb24tVkEtQVBJ LWRldmljZXMKKyVwYXRjaCAtUDM1MyAtcDEgLWIgLmduLXdvcmthcm91bmQtYXRzcGkKKyVwYXRj aCAtUDM1NCAtcDEgLWIgLnJldmVydC1zcGxpdC10aHJlc2hvbGQtZm9yLXJlZy13aXRoLWhpbnQK KyVpZiAhICV7dXNlX2N1c3RvbV9saWJjeHh9CislcGF0Y2ggLVAzNTUgLXAxIC1iIC5udWxscHRy X3Qtd2l0aG91dC1uYW1lc3BhY2Utc3RkCislZW5kaWYKKyVwYXRjaCAtUDM1NiAtcDEgLWIgLmRp c2FibGUtRkZtcGVnQWxsb3dMaXN0cwogCiAjIENoYW5nZSBzaGViYW5nIGluIGFsbCByZWxldmFu dCBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeSBhbmQgYWxsIHN1YmRpcmVjdG9yaWVzCiAjIFNlZSBg bWFuIGZpbmRgIGZvciBob3cgdGhlIGAtZXhlYyBjb21tYW5kIHt9ICtgIHN5bnRheCB3b3JrcwpA QCAtMTE2NywxMCArMTE5MCwxNiBAQCBDSFJPTUlVTV9DT1JFX0dOX0RFRklORVMrPScgZW5hYmxl X25hY2w9ZmFsc2UnCiBDSFJPTUlVTV9DT1JFX0dOX0RFRklORVMrPScgc3lzdGVtX2xpYmRpcj0i JXtfbGlifSInCiAKICVpZiAle29mZmljaWFsX2J1aWxkfQotQ0hST01JVU1fQ09SRV9HTl9ERUZJ TkVTKz0nIGlzX29mZmljaWFsX2J1aWxkPXRydWUgdXNlX3RoaW5fbHRvPWZhbHNlIGlzX2NmaT1m YWxzZSBjaHJvbWVfcGdvX3BoYXNlPTAgdXNlX2RlYnVnX2Zpc3Npb249dHJ1ZScKK0NIUk9NSVVN X0NPUkVfR05fREVGSU5FUys9JyBpc19vZmZpY2lhbF9idWlsZD10cnVlIGNocm9tZV9wZ29fcGhh c2U9MCB1c2VfZGVidWdfZmlzc2lvbj10cnVlJwogc2VkIC1pICdzfE9GRklDSUFMX0JVSUxEfEdP T0dMRV9DSFJPTUVfQlVJTER8ZycgdG9vbHMvZ2VuZXJhdGVfc2hpbV9oZWFkZXJzL2dlbmVyYXRl X3NoaW1faGVhZGVycy5weQogJWVuZGlmCiAKKyVpZiAle2NmaX0KK0NIUk9NSVVNX0NPUkVfR05f REVGSU5FUys9JyB1c2VfdGhpbl9sdG89dHJ1ZSBpc19jZmk9dHJ1ZScKKyVlbHNlCitDSFJPTUlV TV9DT1JFX0dOX0RFRklORVMrPScgdXNlX3RoaW5fbHRvPWZhbHNlIGlzX2NmaT1mYWxzZScKKyVl bmRpZgorCiAlaWYgJXt1c2VhcGlrZXl9CiBDSFJPTUlVTV9DT1JFX0dOX0RFRklORVMrPScgZ29v Z2xlX2FwaV9rZXk9IiV7YXBpX2tleX0iJwogJWVuZGlmCkBAIC0xMjA5LDcgKzEyMzgsMTEgQEAg Q0hST01JVU1fQ09SRV9HTl9ERUZJTkVTKz0nIGljdV91c2VfZGF0YV9maWxlPXRydWUnCiBDSFJP TUlVTV9DT1JFX0dOX0RFRklORVMrPScgdGFyZ2V0X29zPSJsaW51eCInCiBDSFJPTUlVTV9DT1JF X0dOX0RFRklORVMrPScgY3VycmVudF9vcz0ibGludXgiJwogQ0hST01JVU1fQ09SRV9HTl9ERUZJ TkVTKz0nIHRyZWF0X3dhcm5pbmdzX2FzX2Vycm9ycz1mYWxzZScKKyVpZiAle3VzZV9jdXN0b21f bGliY3h4fQorQ0hST01JVU1fQ09SRV9HTl9ERUZJTkVTKz0nIHVzZV9jdXN0b21fbGliY3h4PXRy dWUnCislZWxzZQogQ0hST01JVU1fQ09SRV9HTl9ERUZJTkVTKz0nIHVzZV9jdXN0b21fbGliY3h4 PWZhbHNlJworJWVuZGlmCiBDSFJPTUlVTV9DT1JFX0dOX0RFRklORVMrPScgZW5hYmxlX2l0ZXJh dG9yX2RlYnVnZ2luZz1mYWxzZScKIENIUk9NSVVNX0NPUkVfR05fREVGSU5FUys9JyBlbmFibGVf dnI9ZmFsc2UnCiBDSFJPTUlVTV9DT1JFX0dOX0RFRklORVMrPScgYnVpbGRfZGF3bl90ZXN0cz1m YWxzZSBlbmFibGVfcGVyZmV0dG9fdW5pdHRlc3RzPWZhbHNlJwpAQCAtMTczMyw4ICsxNzY2LDE1 IEBAIGdldGVudCBncm91cCBjaHJvbWUtcmVtb3RlLWRlc2t0b3AgPi9kZXYvbnVsbCB8fCBncm91 cGFkZCAtciBjaHJvbWUtcmVtb3RlLWRlc2t0CiAle2Nocm9taXVtX3BhdGh9L2Nocm9tZWRyaXZl cgogCiAlY2hhbmdlbG9nCisqIFR1ZSBEZWMgMDUgMjAyMyBUaGFuIE5nbyA8dGhhbkByZWRoYXQu Y29tPiAtIDEyMC4wLjYwOTkuNjItMQorLSB1cGRhdGUgdG8gMTIwLjAuNjA5OS42MgorLSBmaXhl ZCBieiMyMjUyODc0LCBidWlsdCB3aXRoIGNvbnRyb2wgZmxvdyBpbnRlZ3JpdHkgKENGSSkgc3Vw cG9ydAorCisqIFNhdCBEZWMgMDIgMjAyMyBUaGFuIE5nbyA8dGhhbkByZWRoYXQuY29tPiAtIDEy MC4wLjYwOTkuNTYtMQorLSB1cGRhdGUgdG8gMTIwLjAuNjA5OS41NiAKKy0gZW5hYmxlIHF0NiBV SSBiYWNrZW5kCisKICogU2F0IERlYyAwMiAyMDIzIFRoYW4gTmdvIDx0aGFuQHJlZGhhdC5jb20+ IC0gMTE5LjAuNjA0NS4xOTktMgotLSBlbmFibGUgYnVpbGQgZmxhZyAtZnN0YWNrLXByb3RlY3Rv ci1zdHJvbmcgZm9yIGltcHJvdmVkIHNlY3VyaXR5CiAtIGZpeGVkIGJ6IzIyNDIyNzEsIGJ1aWx0 IHdpdGggYnVuZGxlbWluaXppcCBpbiBmZWRvcmEgPiAzOQogLSBmaXhlZCBieiMyMjUxODg0LCBi dWlsdCB3aXRoIGZzdGFjay1wcm90ZWN0b3Itc3Ryb25nIGZvciBpbXByb3ZlZCBzZWN1cml0eQog CgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggY2VhZmM3Zi4uYTgxMmNjZiAx MDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0yLDQgKzIsNCBAQCBTSEE1MTIg KG5vZGUtdjIwLjYuMS1saW51eC1hcm02NC50YXIueHopID0gYWRmY2FmMmMyMjYxNDc5N2ZkNjlm YjQ2ZDk0YzFjYmY2NGRlYQogU0hBNTEyIChub2RlLXYyMC42LjEtbGludXgteDY0LnRhci54eikg PSA3ZTE1YzA1MDQxYTlhNTBmMDA0NjI2NmFhZGIyZTA5MmE1YWVmYmVjMTliZTFjN2M4MDk0NzFh ZGQ1MjBjYjU3YzdkZjNjNDdkODhiMTg4OGIyOWJmMjk3OWRjYTNjOTJhZGRkZmQ5NjUzNzBmYTJh OWRhNGVhMDIxODY0NjRmZAogU0hBNTEyIChsaW51eC1hcm02NC0wLjE5LjIudGd6KSA9IDhhMGQ4 ZmVjNjc4NmZmZmNkNjk1NGQwMDgyMDAzN2E1NWQ2MWU2MDc2MmM3NDMwMGRmMDgwMWY4ZGIyNzA1 NzU2MmMyMjFhMDYzYmVkZmI4ZGY1NmFmOWJhODBhYmIzNjYzMzY5ODdlODgxNzgyYzU5OTZlNmY4 NzFhYmQzZGM2CiBTSEE1MTIgKGxpbnV4LXg2NC0wLjE5LjIudGd6KSA9IGEzMWNjNzRjNGJmYTU0 ZjliNzVkNzM1YTFjZmM5NDRkM2I1ZWZiN2MwNmJmYmE5NTQyZGE5YTY0MmFlMGIyZDIzNWVhMDBh ZTg0ZDNhZDA1NzJjNDA2NDA1MTEwZmU3YjYxMzc3YWYwZmQxNTgwMzgwNmVmNzhkMjBmYzZmMDVk Ci1TSEE1MTIgKGNocm9taXVtLTExOS4wLjYwNDUuMTk5LWNsZWFuLnRhci54eikgPSA2NDQyYjQ5 MGZiOTE2MTcyZjRhM2M0ZGZhYzhiZjNjZGEyM2UyYzU3ODEwODFiZjZjYTVkM2Y0NzczOWU0ZTgz NTU3OTQzMzgyYWJkMjM3M2Y4NGY4M2RhZmM2YTNkZWYzYTk2ODAwZWFkMzJhNGY5YTQyMjZkMzE2 YWUzOTNlZQorU0hBNTEyIChjaHJvbWl1bS0xMjAuMC42MDk5LjYyLWNsZWFuLnRhci54eikgPSA1 OTJhYWUzYWVhM2U5NmRhYjM1NzUxNWNhZjdlZmQzNGIyYzQwNmJmY2E1ZDhiZjg2N2QzNDYwM2Rl NWM5MjI0MWRmYTA4Y2ZmM2JiZWJjMTcxMjJmZTRlMzBjMzMwYTJiZDE1MzkxNDYzNGY3YmNjNmYz MTE4YTBiMGQxNmM0NAo=