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: Disable AI (patch from ungoogle chromium) Date: Fri, 07 Aug 2026 16:09:01 GMT Message-ID: <178611894140.1.7924746032902079676.rpms-chromium-44c0f09115c3@fedoraproject.org> List-ID: X-Git-Repo: rpms/chromium X-Git-Branch: epel9-next X-Git-Rev: 44c0f09115c3c743d45b42e325bade8642f625bd QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvY2hyb21pdW0KQnJh bmNoIDogZXBlbDktbmV4dApDb21taXQgOiA0NGMwZjA5MTE1YzNjNzQzZDQ1YjQyZTMyNWJhZGU4 NjQyZjYyNWJkCkF1dGhvciA6IFRoYW4gTmdvIDx0aGFuQHJlZGhhdC5jb20+CkRhdGUgICA6IDIw MjYtMDUtMDhUMTc6MTI6NTYrMDI6MDAKU3RhdHMgIDogKzEzMDkvLTAgaW4gMiBmaWxlKHMpClVS TCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvY2hyb21pdW0vYy80NGMw ZjA5MTE1YzNjNzQzZDQ1YjQyZTMyNWJhZGU4NjQyZjYyNWJkP2JyYW5jaD1lcGVsOS1uZXh0CgpM b2c6CkRpc2FibGUgQUkgKHBhdGNoIGZyb20gdW5nb29nbGUgY2hyb21pdW0pCgotLS0KZGlmZiAt LWdpdCBhL2Nocm9taXVtLnNwZWMgYi9jaHJvbWl1bS5zcGVjCmluZGV4IGQyNDNjZWUuLmJmMmQ4 NjYgMTAwNjQ0Ci0tLSBhL2Nocm9taXVtLnNwZWMKKysrIGIvY2hyb21pdW0uc3BlYwpAQCAtNTIw LDYgKzUyMCw3IEBAIFBhdGNoNTExOiAwMDAxLWZpcHMtZGlzYWJsZS1vcHRpb25zLnBhdGNoCiAj IFBhdGNoZXMgZnJvbSB1bmdvb2dsZSBjaHJvbWl1bSwgaHR0cHM6Ly9naXRodWIuY29tL3VuZ29v Z2xlZC1zb2Z0d2FyZS91bmdvb2dsZWQtY2hyb21pdW0KICMgcmVtb3ZlIHJvbGx1cCBiaW5hcnks IGJ1aWxkIHdpdGggd2FzbS1yb2xsdXAgCiBQYXRjaDUyMDogYnVpbGQtd2l0aC13YXNtLXJvbGx1 cC5wYXRjaAorUGF0Y2g1MjE6IGRpc2FibGUtYWkucGF0Y2gKIAogIyB1cHN0cmVhbSBwYXRjaGVz CiAKQEAgLTEyMzEsNiArMTIzMiw3IEBAIFF0NiBVSSBmb3IgY2hyb21pdW0uCiAlZW5kaWYKIAog JXBhdGNoIC1QNTIwIC1wMSAtYiAuYnVpbGQtd2l0aC13YXNtLXJvbGx1cAorJXBhdGNoIC1QNTIx IC1wMSAtYiAuZGlzYWJsZS1haQogCiAjIFVwc3RyZWFtIHBhdGNoZXMKIAoKZGlmZiAtLWdpdCBh L2Rpc2FibGUtYWkucGF0Y2ggYi9kaXNhYmxlLWFpLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjU2N2UxZGIKLS0tIC9kZXYvbnVsbAorKysgYi9kaXNhYmxlLWFpLnBh dGNoCkBAIC0wLDAgKzEsMTMwNyBAQAorIyBEaXNhYmxlIEdsaWMgKCJHZW1pbmkgTGl2ZSBpbiBD aHJvbWUiKSwgU2NyZWVuQUksIGFuZCBhc3NvY2lhdGVkIEFJLWJhc2VkCisjIGZlYXR1cmVzLgor CistLS0gYS9jaHJvbWUvYnJvd3Nlci9CVUlMRC5nbgorKysrIGIvY2hyb21lL2Jyb3dzZXIvQlVJ TEQuZ24KK0BAIC0zMzk2LDEwICszMzk2LDYgQEAgc3RhdGljX2xpYnJhcnkoImJyb3dzZXIiKSB7 CisgICAgIGFsbG93X2NpcmN1bGFyX2luY2x1ZGVzX2Zyb20gKz0gWyAiLy9jaHJvbWUvYnJvd3Nl ci9wYXltZW50czppbXBsIiBdCisgCisgICAgIHNvdXJjZXMgKz0gWworLSAgICAgICJhY2Nlc3Np YmlsaXR5L2F4X21haW5fbm9kZV9hbm5vdGF0b3JfY29udHJvbGxlci5jYyIsCistICAgICAgImFj Y2Vzc2liaWxpdHkvYXhfbWFpbl9ub2RlX2Fubm90YXRvcl9jb250cm9sbGVyLmgiLAorLSAgICAg ICJhY2Nlc3NpYmlsaXR5L2F4X21haW5fbm9kZV9hbm5vdGF0b3JfY29udHJvbGxlcl9mYWN0b3J5 LmNjIiwKKy0gICAgICAiYWNjZXNzaWJpbGl0eS9heF9tYWluX25vZGVfYW5ub3RhdG9yX2NvbnRy b2xsZXJfZmFjdG9yeS5oIiwKKyAgICAgICAiYWNjZXNzaWJpbGl0eS9jYXB0aW9uX2J1YmJsZV9j b250ZXh0X2Jyb3dzZXIuaCIsCisgICAgICAgImFjY2Vzc2liaWxpdHkvZW1iZWRkZWRfYTExeV9l eHRlbnNpb25fbG9hZGVyLmNjIiwKKyAgICAgICAiYWNjZXNzaWJpbGl0eS9lbWJlZGRlZF9hMTF5 X2V4dGVuc2lvbl9sb2FkZXIuaCIsCitAQCAtMzgyOSw4ICszODI1LDYgQEAgc3RhdGljX2xpYnJh cnkoImJyb3dzZXIiKSB7CisgICAgICAgIi8vY2hyb21lL2FwcDpjb21tYW5kX2lkcyIsCisgICAg ICAgIi8vY2hyb21lL2FwcC90aGVtZTpjaHJvbWVfdW5zY2FsZWRfcmVzb3VyY2VzX2dyaXQiLAor ICAgICAgICIvL2Nocm9tZS9hcHAvdmVjdG9yX2ljb25zIiwKKy0gICAgICAiLy9jaHJvbWUvYnJv d3Nlci9hY2Nlc3NpYmlsaXR5L3RyZWVfZml4aW5nOnByZWZzIiwKKy0gICAgICAiLy9jaHJvbWUv YnJvd3Nlci9hY2Nlc3NpYmlsaXR5L3RyZWVfZml4aW5nOnNlcnZpY2UiLAorICAgICAgICIvL2No cm9tZS9icm93c2VyL2FjY2Vzc2liaWxpdHlfYW5ub3RhdG9yL2NvbnRlbnRfYW5ub3RhdG9yIiwK KyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci9hY3Rvci91aSIsCisgICAgICAgIi8vY2hyb21lL2Jy b3dzZXIvYWN0b3IvdWk6YWN0b3Jfb3ZlcmxheSIsCitAQCAtMzg4MCwxMCArMzg3NCw2IEBAIHN0 YXRpY19saWJyYXJ5KCJicm93c2VyIikgeworICAgICAgICIvL2Nocm9tZS9icm93c2VyL3JlY29y ZF9yZXBsYXkiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3JlY29yZF9yZXBsYXk6aW1wbCIs CisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcmVzb3VyY2VfY29vcmRpbmF0b3IiLAorLSAgICAg ICIvL2Nocm9tZS9icm93c2VyL3NjcmVlbl9haTpwcmVmcyIsCistICAgICAgIi8vY2hyb21lL2Jy b3dzZXIvc2NyZWVuX2FpOnNjcmVlbl9haV9pbnN0YWxsX3N0YXRlIiwKKy0gICAgICAiLy9jaHJv bWUvYnJvd3Nlci9zY3JlZW5fYWk6c2NyZWVuX2FpX3NlcnZpY2Vfcm91dGVyX2ZhY3RvcnkiLAor LSAgICAgICIvL2Nocm9tZS9icm93c2VyL3NjcmVlbl9haS9wdWJsaWM6b3B0aWNhbF9jaGFyYWN0 ZXJfcmVjb2duaXplciIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvc2hhcmluZ19odWIiLAor ICAgICAgICIvL2Nocm9tZS9icm93c2VyL3NoYXJpbmdfaHViOmltcGwiLAorICAgICAgICIvL2No cm9tZS9icm93c2VyL3NtYXJ0X2NhcmQiLAorQEAgLTM5NjAsNyArMzk1MCw2IEBAIHN0YXRpY19s aWJyYXJ5KCJicm93c2VyIikgeworICAgICAgICIvL2Nocm9tZS9icm93c2VyL3VpL3dlYnVpOndl YnVpX3V0aWwiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3VpL3dlYnVpL2FjY2Vzc19jb2Rl X2Nhc3QiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3VpL3dlYnVpL2FwcF9zZXJ2aWNlX2lu dGVybmFscyIsCistICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvdWkvd2VidWkvYXV0b2ZpbGxfbWxf aW50ZXJuYWxzIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci91aS93ZWJ1aS9jb2xvcl9waXBl bGluZV9pbnRlcm5hbHMiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3VpL3dlYnVpL2NvbW1l cmNlIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci91aS93ZWJ1aS9jb21tZXJjZTppbXBsIiwK K0BAIC00MDY1LDkgKzQwNTQsNiBAQCBzdGF0aWNfbGlicmFyeSgiYnJvd3NlciIpIHsKKyAgICAg ICAiLy9jb21wb25lbnRzL3dlYmF1dGhuL2NvcmUvYnJvd3NlciIsCisgICAgICAgIi8vY29tcG9u ZW50cy93ZWJhdXRobi9jb3JlL2Jyb3dzZXI6cGFzc2tleV9tb2RlbCIsCisgICAgICAgIi8vc2Vy dmljZXMvZGV2aWNlL3B1YmxpYy9jcHAvaGlkIiwKKy0gICAgICAiLy9zZXJ2aWNlcy9zY3JlZW5f YWkiLAorLSAgICAgICIvL3NlcnZpY2VzL3NjcmVlbl9haS9wdWJsaWMvY3BwOnV0aWxpdGllcyIs CistICAgICAgIi8vc2VydmljZXMvc2NyZWVuX2FpL3B1YmxpYy9tb2pvbSIsCisgICAgICAgIi8v dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY2xpZW50OmNvbW1vbiIsCisgICAgICAgIi8v dGhpcmRfcGFydHkvenhjdmJuLWNwcCIsCisgICAgICAgIi8vdWkvdmlld3MiLAorQEAgLTQyNjQs OCArNDI1MCw2IEBAIHN0YXRpY19saWJyYXJ5KCJicm93c2VyIikgeworICAgICAgIHNvdXJjZXMg Kz0gWworICAgICAgICAgImFjY2Vzc2liaWxpdHkvc29kYV9pbnN0YWxsZXJfaW1wbC5jYyIsCisg ICAgICAgICAiYWNjZXNzaWJpbGl0eS9zb2RhX2luc3RhbGxlcl9pbXBsLmgiLAorLSAgICAgICAg ImNvbXBvbmVudF91cGRhdGVyL3NjcmVlbl9haV9jb21wb25lbnRfaW5zdGFsbGVyLmNjIiwKKy0g ICAgICAgICJjb21wb25lbnRfdXBkYXRlci9zY3JlZW5fYWlfY29tcG9uZW50X2luc3RhbGxlci5o IiwKKyAgICAgICAgICJkb3dubG9hZC9idWJibGUvZG93bmxvYWRfYnViYmxlX2FjY2Vzc2libGVf YWxlcnRzX21hcC5jYyIsCisgICAgICAgICAiZG93bmxvYWQvYnViYmxlL2Rvd25sb2FkX2J1YmJs ZV9hY2Nlc3NpYmxlX2FsZXJ0c19tYXAuaCIsCisgICAgICAgICAiZG93bmxvYWQvYnViYmxlL2Rv d25sb2FkX2J1YmJsZV9kaXNwbGF5X2luZm8uY2MiLAorQEAgLTQzMTMsOCArNDI5Nyw2IEBAIHN0 YXRpY19saWJyYXJ5KCJicm93c2VyIikgeworICAgICAgICAgInByb2ZpbGVzL3Byb2ZpbGVfYWN0 aXZpdHlfbWV0cmljc19yZWNvcmRlci5oIiwKKyAgICAgICAgICJwcm9maWxlcy9wcm9maWxlX2xp c3RfZGVza3RvcC5jYyIsCisgICAgICAgICAicHJvZmlsZXMvcHJvZmlsZV9saXN0X2Rlc2t0b3Au aCIsCistICAgICAgICAic2NyZWVuX2FpL3NjcmVlbl9haV9kb3dubG9hZGVyX25vbl9jaHJvbWVv cy5jYyIsCistICAgICAgICAic2NyZWVuX2FpL3NjcmVlbl9haV9kb3dubG9hZGVyX25vbl9jaHJv bWVvcy5oIiwKKyAgICAgICAgICJzaWduaW4vZm9yY2Vfc2lnbmluX3ZlcmlmaWVyLmNjIiwKKyAg ICAgICAgICJzaWduaW4vZm9yY2Vfc2lnbmluX3ZlcmlmaWVyLmgiLAorICAgICAgIF0KK0BAIC01 MTE3LDcgKzUwOTksNiBAQCBzdGF0aWNfbGlicmFyeSgiYnJvd3NlciIpIHsKKyAgICAgICAiLy9j aHJvbWUvYnJvd3Nlci9wb2xpY3k6c3lzdGVtX2ZlYXR1cmVzX2Rpc2FibGVfbGlzdCIsCisgICAg ICAgIi8vY2hyb21lL2Jyb3dzZXIvcHVzaF9ub3RpZmljYXRpb24iLAorICAgICAgICIvL2Nocm9t ZS9icm93c2VyL3Jlc291cmNlczphcHBfaWNvbl9yZXNvdXJjZXMiLAorLSAgICAgICIvL2Nocm9t ZS9icm93c2VyL3NjcmVlbl9haTpzY3JlZW5fYWlfZGxjX2luc3RhbGxlciIsCisgICAgICAgIi8v Y2hyb21lL2Jyb3dzZXIvc2hhcmVzaGVldCIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvc3Vw cG9ydF90b29sL2FzaCIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvdWkvYXNoL2FjY2VsZXJh dG9yIiwKK0BAIC01MzgxLDcgKzUzNjIsNiBAQCBzdGF0aWNfbGlicmFyeSgiYnJvd3NlciIpIHsK KyAgICAgICAiLy9yZW1vdGluZy9ob3N0L2Nocm9tZW9zOmJyb3dzZXJfaW50ZXJvcCIsCisgICAg ICAgIi8vcmVtb3RpbmcvaG9zdC9jaHJvbWVvczpmZWF0dXJlcyIsCisgICAgICAgIi8vc2Vydmlj ZXMvZGV2aWNlL3B1YmxpYy9jcHAvZ2VvbG9jYXRpb24iLAorLSAgICAgICIvL3NlcnZpY2VzL3Nj cmVlbl9haS9wdWJsaWMvY3BwOm1ldHJpY3MiLAorICAgICAgICIvL3RoaXJkX3BhcnR5L25lYXJi eTpycGNfcmVzb3VyY2VzX3Byb3RvIiwKKyAgICAgICAiLy90aGlyZF9wYXJ0eS9uZWFyYnk6d2ly ZV9mb3JtYXRfcHJvdG8iLAorICAgICAgICIvL3VpL2Nocm9tZW9zIiwKKy0tLSBhL2Nocm9tZS9i cm93c2VyL2FjY2Vzc2liaWxpdHkvdHJlZV9maXhpbmcvQlVJTEQuZ24KKysrKyBiL2Nocm9tZS9i cm93c2VyL2FjY2Vzc2liaWxpdHkvdHJlZV9maXhpbmcvQlVJTEQuZ24KK0BAIC02MywxMSArNjMs OSBAQCBzb3VyY2Vfc2V0KCJpbnRlcm5hbCIpIHsKKyAgIGRlcHMgPSBbCisgICAgICIvL2Jhc2Ui LAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcm9maWxlczpwcm9maWxlIiwKKy0gICAgIi8vY2hy b21lL2Jyb3dzZXIvc2NyZWVuX2FpOnNjcmVlbl9haV9zZXJ2aWNlX3JvdXRlcl9mYWN0b3J5IiwK KyAgICAgIi8vY29tcG9uZW50cy9wYWludF9wcmV2aWV3L2Jyb3dzZXIiLAorICAgICAiLy9jb21w b25lbnRzL3BhaW50X3ByZXZpZXcvY29tbW9uIiwKKyAgICAgIi8vY29tcG9uZW50cy9wYWludF9w cmV2aWV3L3B1YmxpYyIsCisgICAgICIvL2NvbnRlbnQvcHVibGljL2Jyb3dzZXIiLAorLSAgICAi Ly9zZXJ2aWNlcy9zY3JlZW5fYWkvcHVibGljL21vam9tIiwKKyAgIF0KKyB9CistLS0gYS9jaHJv bWUvYnJvd3Nlci9hY3Rvci9hY3Rvcl9rZXllZF9zZXJ2aWNlLmNjCisrKysgYi9jaHJvbWUvYnJv d3Nlci9hY3Rvci9hY3Rvcl9rZXllZF9zZXJ2aWNlLmNjCitAQCAtNjE2LDEzICs2MTYsNiBAQCBi b29sIEFjdG9yS2V5ZWRTZXJ2aWNlOjpJc0FjdGl2ZU9uVGFiKGNvCisgCisgQWN0b3JUYXNrKiBB Y3RvcktleWVkU2VydmljZTo6R2V0VGFza0Zyb21UYWIoCisgICAgIGNvbnN0IHRhYnM6OlRhYklu dGVyZmFjZSYgdGFiKSBjb25zdCB7CistICB0YWJzOjpUYWJIYW5kbGUgaGFuZGxlID0gdGFiLkdl dEhhbmRsZSgpOworLSAgZm9yIChjb25zdCBhdXRvJiBbdGFza19pZCwgdGFza10gOiBhY3RpdmVf dGFza3NfKSB7CistICAgIGlmICh0YXNrLT5IYXNUYWIoaGFuZGxlKSkgeworLSAgICAgIHJldHVy biB0YXNrLmdldCgpOworLSAgICB9CistICB9CistCisgICByZXR1cm4gbnVsbHB0cjsKKyB9Cisg CistLS0gYS9jaHJvbWUvYnJvd3Nlci9hY3Rvci91aS9hY3Rvcl91aV90YWJfY29udHJvbGxlci5j YworKysrIGIvY2hyb21lL2Jyb3dzZXIvYWN0b3IvdWkvYWN0b3JfdWlfdGFiX2NvbnRyb2xsZXIu Y2MKK0BAIC00OSw3ICs0OSw2IEBAIEFjdG9yVWlUYWJDb250cm9sbGVyOjpBY3RvclVpVGFiQ29u dHJvbGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOjpVbnJldGFpbmVkKHRo aXMpKSksCisgICAgICAgc2NvcGVkX3Vub3duZWRfdXNlcl9kYXRhXyh0YWIuR2V0VW5vd25lZFVz ZXJEYXRhSG9zdCgpLCAqdGhpcykgeworICAgQ0hFQ0soYmFzZTo6RmVhdHVyZUxpc3Q6OklzRW5h YmxlZChmZWF0dXJlczo6a0dsaWNBY3RvcikpOworLSAgQ0hFQ0soYWN0b3Jfa2V5ZWRfc2Vydmlj ZV8pOworIH0KKyAKKyBBY3RvclVpVGFiQ29udHJvbGxlcjo6fkFjdG9yVWlUYWJDb250cm9sbGVy KCkgPSBkZWZhdWx0OworLS0tIGEvY2hyb21lL2Jyb3dzZXIvYnJvd3Nlcl9wcm9jZXNzX2ltcGwu Y2MKKysrKyBiL2Nocm9tZS9icm93c2VyL2Jyb3dzZXJfcHJvY2Vzc19pbXBsLmNjCitAQCAtMjU5 LDEyICsyNTksMTAgQEAgdm9pZCBPbkxvY2FsU3RhdGVQcmVmc0xvYWRlZCgpOworICNpZiBCVUlM REZMQUcoSVNfQ0hST01FT1MpCisgI2luY2x1ZGUgImNocm9tZS9icm93c2VyL2Nocm9tZW9zL2V4 dGVuc2lvbnMvdGVsZW1ldHJ5L2Nocm9tZW9zX3RlbGVtZXRyeV9leHRlbnNpb25zX2Jyb3dzZXJf YXBpX3Byb3ZpZGVyLmgiCisgI2luY2x1ZGUgImNocm9tZS9icm93c2VyL2hpZC9oaWRfcGlubmVk X25vdGlmaWNhdGlvbi5oIgorLSNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9zY3JlZW5fYWkvc2Ny ZWVuX2FpX2Rvd25sb2FkZXJfY2hyb21lb3MuaCIKKyAjaW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIv dXNiL3VzYl9waW5uZWRfbm90aWZpY2F0aW9uLmgiCisgI2luY2x1ZGUgImNvbXBvbmVudHMvY3Jh c2gvY29yZS9hcHAvY3Jhc2hwYWQuaCIKKyAjZWxpZiAhQlVJTERGTEFHKElTX0FORFJPSUQpCisg I2luY2x1ZGUgImNocm9tZS9icm93c2VyL2hpZC9oaWRfc3RhdHVzX2ljb24uaCIKKy0jaW5jbHVk ZSAiY2hyb21lL2Jyb3dzZXIvc2NyZWVuX2FpL3NjcmVlbl9haV9kb3dubG9hZGVyX25vbl9jaHJv bWVvcy5oIgorICNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci91c2IvdXNiX3N0YXR1c19pY29uLmgi CisgI2luY2x1ZGUgImNvbXBvbmVudHMvZW50ZXJwcmlzZS9icm93c2VyL2NvbnRyb2xsZXIvY2hy b21lX2Jyb3dzZXJfY2xvdWRfbWFuYWdlbWVudF9jb250cm9sbGVyLmgiCisgI2VuZGlmCitAQCAt MTY0MSw5ICsxNjM5LDYgQEAgdm9pZCBCcm93c2VyUHJvY2Vzc0ltcGw6OlByZU1haW5NZXNzYWdl TAorICAgc29kYV9pbnN0YWxsZXJfaW1wbF8gPSBzdGQ6Om1ha2VfdW5pcXVlPHNwZWVjaDo6U29k YUluc3RhbGxlckltcGxDaHJvbWVPUz4oKTsKKyAjZW5kaWYgIC8vIEJVSUxERkxBRyhJU19DSFJP TUVPUykKKyAKKy0jaWYgIUJVSUxERkxBRyhJU19BTkRST0lEKQorLSAgc2NyZWVuX2FpX2Rvd25s b2FkXyA9IHNjcmVlbl9haTo6U2NyZWVuQUlJbnN0YWxsU3RhdGU6OkNyZWF0ZSgpOworLSNlbmRp ZgorIAorICAgYmFzZTo6RmlsZVBhdGggdXNlcl9kYXRhX2RpcjsKKyAgIGJvb2wgcmVzdWx0ID0g YmFzZTo6UGF0aFNlcnZpY2U6OkdldChjaHJvbWU6OkRJUl9VU0VSX0RBVEEsICZ1c2VyX2RhdGFf ZGlyKTsKKy0tLSBhL2Nocm9tZS9icm93c2VyL2Jyb3dzZXJfcHJvY2Vzc19pbXBsLmgKKysrKyBi L2Nocm9tZS9icm93c2VyL2Jyb3dzZXJfcHJvY2Vzc19pbXBsLmgKK0BAIC05NSw5ICs5NSw2IEBA IG5hbWVzcGFjZSBzcGVlY2ggeworIGNsYXNzIFNvZGFJbnN0YWxsZXI7CisgfSAgLy8gbmFtZXNw YWNlIHNwZWVjaAorIAorLW5hbWVzcGFjZSBzY3JlZW5fYWkgeworLWNsYXNzIFNjcmVlbkFJSW5z dGFsbFN0YXRlOworLX0gIC8vIG5hbWVzcGFjZSBzY3JlZW5fYWkKKyAKKyBuYW1lc3BhY2Ugc3Vw ZXJ2aXNlZF91c2VyIHsKKyBjbGFzcyBEZXZpY2VQYXJlbnRhbENvbnRyb2xzOworQEAgLTQ1Nyw5 ICs0NTQsNiBAQCBjbGFzcyBCcm93c2VyUHJvY2Vzc0ltcGwgOiBwdWJsaWMgQnJvd3NlCisgICAv LyB0byBlbnN1cmUgdGhhdCBTb2RhSW5zdGFsbGVySW1wbCBnZXRzIGRlc3RydWN0ZWQgZmlyc3Qu CisgICBzdGQ6OnVuaXF1ZV9wdHI8c3BlZWNoOjpTb2RhSW5zdGFsbGVyPiBzb2RhX2luc3RhbGxl cl9pbXBsXzsKKyAKKy0gIC8vIFVzZWQgdG8gZG93bmxvYWQgU2NyZWVuIEFJIG9uIGRlbWFuZCBh bmQga2VlcCB0cmFjayBvZiB0aGUgbGlicmFyeQorLSAgLy8gYXZhaWxhYmlsaXR5LgorLSAgc3Rk Ojp1bmlxdWVfcHRyPHNjcmVlbl9haTo6U2NyZWVuQUlJbnN0YWxsU3RhdGU+IHNjcmVlbl9haV9k b3dubG9hZF87CisgI2VuZGlmCisgCisgICBzdGQ6OnVuaXF1ZV9wdHI8QnJvd3NlclByb2Nlc3NQ bGF0Zm9ybVBhcnQ+IHBsYXRmb3JtX3BhcnRfOworLS0tIGEvY2hyb21lL2Jyb3dzZXIvY2hyb21l X2Jyb3dzZXJfaW50ZXJmYWNlX2JpbmRlcnMuY2MKKysrKyBiL2Nocm9tZS9icm93c2VyL2Nocm9t ZV9icm93c2VyX2ludGVyZmFjZV9iaW5kZXJzLmNjCitAQCAtODUsOCArODUsNiBAQAorIAorICNp ZiBCVUlMREZMQUcoSVNfV0lOKSB8fCBCVUlMREZMQUcoSVNfTUFDKSB8fCBCVUlMREZMQUcoSVNf TElOVVgpIHx8IFwKKyAgICAgQlVJTERGTEFHKElTX0NIUk9NRU9TKQorLSNpbmNsdWRlICJjaHJv bWUvYnJvd3Nlci9zY3JlZW5fYWkvc2NyZWVuX2FpX3NlcnZpY2Vfcm91dGVyLmgiCistI2luY2x1 ZGUgImNocm9tZS9icm93c2VyL3NjcmVlbl9haS9zY3JlZW5fYWlfc2VydmljZV9yb3V0ZXJfZmFj dG9yeS5oIgorICNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci93ZWJfYXBwbGljYXRpb25zL3N1Yl9h cHBzX3NlcnZpY2VfaW1wbC5oIgorICNlbmRpZgorIAorQEAgLTM3MywyNyArMzcxLDYgQEAgdm9p ZCBCaW5kTWVkaWFGb3VuZGF0aW9uUHJlZmVyZW5jZXMoCisgfQorICNlbmRpZiAgLy8gQlVJTERG TEFHKElTX1dJTikKKyAKKy0jaWYgQlVJTERGTEFHKElTX0NIUk9NRU9TKSB8fCBCVUlMREZMQUco SVNfTElOVVgpIHx8IEJVSUxERkxBRyhJU19NQUMpIHx8IFwKKy0gICAgQlVJTERGTEFHKElTX1dJ TikKKy12b2lkIEJpbmRTY3JlZW5BSUFubm90YXRvcigKKy0gICAgY29udGVudDo6UmVuZGVyRnJh bWVIb3N0KiBmcmFtZV9ob3N0LAorLSAgICBtb2pvOjpQZW5kaW5nUmVjZWl2ZXI8c2NyZWVuX2Fp Ojptb2pvbTo6U2NyZWVuQUlBbm5vdGF0b3I+IHJlY2VpdmVyKSB7CistICBjb250ZW50OjpCcm93 c2VyQ29udGV4dCogYnJvd3Nlcl9jb250ZXh0ID0KKy0gICAgICBmcmFtZV9ob3N0LT5HZXRQcm9j ZXNzKCktPkdldEJyb3dzZXJDb250ZXh0KCk7CistCistICBzY3JlZW5fYWk6OlNjcmVlbkFJU2Vy dmljZVJvdXRlckZhY3Rvcnk6OkdldEZvckJyb3dzZXJDb250ZXh0KGJyb3dzZXJfY29udGV4dCkK Ky0gICAgICAtPkJpbmRTY3JlZW5BSUFubm90YXRvcihzdGQ6Om1vdmUocmVjZWl2ZXIpKTsKKy19 CistCistdm9pZCBCaW5kU2NyZWVuMnhNYWluQ29udGVudEV4dHJhY3RvcigKKy0gICAgY29udGVu dDo6UmVuZGVyRnJhbWVIb3N0KiBmcmFtZV9ob3N0LAorLSAgICBtb2pvOjpQZW5kaW5nUmVjZWl2 ZXI8c2NyZWVuX2FpOjptb2pvbTo6U2NyZWVuMnhNYWluQ29udGVudEV4dHJhY3Rvcj4KKy0gICAg ICAgIHJlY2VpdmVyKSB7CistICBzY3JlZW5fYWk6OlNjcmVlbkFJU2VydmljZVJvdXRlckZhY3Rv cnk6OkdldEZvckJyb3dzZXJDb250ZXh0KAorLSAgICAgIGZyYW1lX2hvc3QtPkdldFByb2Nlc3Mo KS0+R2V0QnJvd3NlckNvbnRleHQoKSkKKy0gICAgICAtPkJpbmRNYWluQ29udGVudEV4dHJhY3Rv cihzdGQ6Om1vdmUocmVjZWl2ZXIpKTsKKy19CistI2VuZGlmCisgCisgdm9pZCBCaW5kTW9kZWxC cm9rZXIoCisgICAgIGNvbnRlbnQ6OlJlbmRlckZyYW1lSG9zdCogZnJhbWVfaG9zdCwKK0BAIC01 NTgsMTAgKzUzNSw2IEBAIHZvaWQgUG9wdWxhdGVDaHJvbWVGcmFtZUJpbmRlcnMoCisgICAgICAg ICAmd2ViX2FwcDo6U3ViQXBwc1NlcnZpY2VJbXBsOjpDcmVhdGVJZkFsbG93ZWQpOworICAgfQor IAorLSAgbWFwLT5BZGQ8c2NyZWVuX2FpOjptb2pvbTo6U2NyZWVuQUlBbm5vdGF0b3I+KCZCaW5k U2NyZWVuQUlBbm5vdGF0b3IpOworLQorLSAgbWFwLT5BZGQ8c2NyZWVuX2FpOjptb2pvbTo6U2Ny ZWVuMnhNYWluQ29udGVudEV4dHJhY3Rvcj4oCistICAgICAgJkJpbmRTY3JlZW4yeE1haW5Db250 ZW50RXh0cmFjdG9yKTsKKyAjZW5kaWYKKyAKKyAjaWYgQlVJTERGTEFHKElTX1dJTikKKy0tLSBh L2Nocm9tZS9icm93c2VyL2Nocm9tZV9icm93c2VyX2ludGVyZmFjZV9iaW5kZXJzX3dlYnVpX3Bh cnRzX2Rlc2t0b3AuY2MKKysrKyBiL2Nocm9tZS9icm93c2VyL2Nocm9tZV9icm93c2VyX2ludGVy ZmFjZV9iaW5kZXJzX3dlYnVpX3BhcnRzX2Rlc2t0b3AuY2MKK0BAIC01MTEsOCArNTExLDYgQEAg dm9pZCBQb3B1bGF0ZUNocm9tZVdlYlVJRnJhbWVCaW5kZXJzUGFydAorICAgICAgIDo6bW9qb206 OmFwcF9zZXJ2aWNlX2ludGVybmFsczo6QXBwU2VydmljZUludGVybmFsc1BhZ2VIYW5kbGVyLAor ICAgICAgIEFwcFNlcnZpY2VJbnRlcm5hbHNVST4obWFwKTsKKyAKKy0gIFJlZ2lzdGVyV2ViVUlD b250cm9sbGVySW50ZXJmYWNlQmluZGVyPAorLSAgICAgIDo6YXV0b2ZpbGxfbWxfaW50ZXJuYWxz Ojptb2pvbTo6UGFnZUhhbmRsZXIsIEF1dG9maWxsTWxJbnRlcm5hbHNVST4obWFwKTsKKyAKKyAg IFJlZ2lzdGVyV2ViVUlDb250cm9sbGVySW50ZXJmYWNlQmluZGVyPAorICAgICAgIGFjY2Vzc19j b2RlX2Nhc3Q6Om1vam9tOjpQYWdlSGFuZGxlckZhY3RvcnksCistLS0gYS9jaHJvbWUvYnJvd3Nl ci9jb21wb25lbnRfdXBkYXRlci9yZWdpc3RyYXRpb24uY2MKKysrKyBiL2Nocm9tZS9icm93c2Vy L2NvbXBvbmVudF91cGRhdGVyL3JlZ2lzdHJhdGlvbi5jYworQEAgLTUzLDggKzUzLDYgQEAKKyAK KyAjaWYgQlVJTERGTEFHKElTX0FORFJPSUQpCisgI2luY2x1ZGUgImNocm9tZS9icm93c2VyL2Nv bXBvbmVudF91cGRhdGVyL3JlYWxfdGltZV91cmxfY2hlY2tzX2FsbG93bGlzdF9jb21wb25lbnRf aW5zdGFsbGVyLmgiCistI2Vsc2UKKy0jaW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIvY29tcG9uZW50 X3VwZGF0ZXIvc2NyZWVuX2FpX2NvbXBvbmVudF9pbnN0YWxsZXIuaCIKKyAjZW5kaWYgIC8vIEJV SUxERkxBRyhJU19BTkRST0lEKQorIAorICNpZiAhQlVJTERGTEFHKElTX0FORFJPSUQpCitAQCAt MjA5LDkgKzIwNyw2IEBAIHZvaWQgUmVnaXN0ZXJDb21wb25lbnRzRm9yVXBkYXRlKCkgeworICAg UmVnaXN0ZXJSZWFsVGltZVVybENoZWNrc0FsbG93bGlzdENvbXBvbmVudChjdXMpOworICNlbmRp ZiAgLy8gQlVJRExGTEFHKElTX0FORFJPSUQpCisgCistI2lmICFCVUlMREZMQUcoSVNfQU5EUk9J RCkgJiYgIUJVSUxERkxBRyhJU19DSFJPTUVPUykKKy0gIE1hbmFnZVNjcmVlbkFJQ29tcG9uZW50 UmVnaXN0cmF0aW9uKGN1cywgZ19icm93c2VyX3Byb2Nlc3MtPmxvY2FsX3N0YXRlKCkpOworLSNl bmRpZiAgLy8gIUJVSUxERkxBRyhJU19BTkRST0lEKSAmJiAhQlVJTERGTEFHKElTX0NIUk9NRU9T KQorIAorICAgUmVnaXN0ZXJDb21tZXJjZUhldXJpc3RpY3NDb21wb25lbnQoY3VzKTsKKyAKKy0t LSBhL2Nocm9tZS9icm93c2VyL2dsaWMvaG9zdC9nbGljX3NraWxsc19tYW5hZ2VyX2ltcGwuY2MK KysrKyBiL2Nocm9tZS9icm93c2VyL2dsaWMvaG9zdC9nbGljX3NraWxsc19tYW5hZ2VyX2ltcGwu Y2MKK0BAIC0zNywzNSArMzcsNiBAQCBHbGljU2tpbGxzTWFuYWdlckltcGw6On5HbGljU2tpbGxz TWFuYWdlCisgCisgdm9pZCBHbGljU2tpbGxzTWFuYWdlckltcGw6OlVwZGF0ZVNraWxsUHJldmll d3MoCisgICAgIHN0ZDo6b3B0aW9uYWw8dGFiczo6VGFiSW50ZXJmYWNlKj4gdXBkYXRlZF90YWIp IHsKKy0gIGlmICghaG9zdF8tPklzV2ViQ2xpZW50Q29ubmVjdGVkKCkpIHsKKy0gICAgcmV0dXJu OworLSAgfQorLSAgYXV0byogZm9jdXNlZF90YWIgPSBob3N0Xy0+c2hhcmluZ19tYW5hZ2VyKCku R2V0Rm9jdXNlZFRhYkRhdGEoKS5mb2N1cygpOworLSAgaWYgKCFmb2N1c2VkX3RhYikgeworLSAg ICBob3N0Xy0+Tm90aWZ5Q29udGV4dHVhbFNraWxsc0NoYW5nZWQoe30pOworLSAgICBjb250ZXh0 dWFsX3NraWxsX3ByZXZpZXdzXy5jbGVhcigpOworLSAgICByZXR1cm47CistICB9CistICBpZiAo dXBkYXRlZF90YWIgJiYgZm9jdXNlZF90YWIgIT0gKnVwZGF0ZWRfdGFiKSB7CistICAgIC8vIFRo ZSB1cGRhdGUgZG9lcyBub3QgYXBwbHkgdG8gdGhlIGZvY3VzZWQgdGFiLgorLSAgICByZXR1cm47 CistICB9CistICBhdXRvKiBvYnNlcnZlciA9IHNraWxsczo6U2tpbGxzVXBkYXRlT2JzZXJ2ZXI6 OkZyb20oZm9jdXNlZF90YWIpOworLSAgaWYgKCFvYnNlcnZlcikgeworLSAgICByZXR1cm47Cist ICB9CistICBhdXRvIG5ld19za2lsbF9wcmV2aWV3cyA9IG9ic2VydmVyLT5HZXRDb250ZXh0dWFs U2tpbGxQcmV2aWV3cygpOworLQorLSAgaWYgKG1vam86OkVxdWFscyhjb250ZXh0dWFsX3NraWxs X3ByZXZpZXdzXywgbmV3X3NraWxsX3ByZXZpZXdzKSkgeworLSAgICByZXR1cm47CistICB9Cist ICBjb250ZXh0dWFsX3NraWxsX3ByZXZpZXdzXyA9IHN0ZDo6bW92ZShuZXdfc2tpbGxfcHJldmll d3MpOworLQorLSAgc3RkOjp2ZWN0b3I8bW9qb206OlNraWxsUHJldmlld1B0cj4gc2tpbGxfcHJl dmlld3M7CistICBmb3IgKGNvbnN0IGF1dG8mIHByZXZpZXcgOiBjb250ZXh0dWFsX3NraWxsX3By ZXZpZXdzXykgeworLSAgICBza2lsbF9wcmV2aWV3cy5wdXNoX2JhY2socHJldmlldy5DbG9uZSgp KTsKKy0gIH0KKy0gIGhvc3RfLT5Ob3RpZnlDb250ZXh0dWFsU2tpbGxzQ2hhbmdlZChzdGQ6Om1v dmUoc2tpbGxfcHJldmlld3MpKTsKKyB9CisgCisgdGFiczo6VGFiSW50ZXJmYWNlKiBHbGljU2tp bGxzTWFuYWdlckltcGw6OkVuc3VyZVRhYkZvclNraWxscygpIHsKKy0tLSBhL2Nocm9tZS9icm93 c2VyL25hdmlnYXRpb25fcHJlZGljdG9yL25hdmlnYXRpb25fcHJlZGljdG9yLmNjCisrKysgYi9j aHJvbWUvYnJvd3Nlci9uYXZpZ2F0aW9uX3ByZWRpY3Rvci9uYXZpZ2F0aW9uX3ByZWRpY3Rvci5j YworQEAgLTE4LDggKzE4LDYgQEAKKyAjaW5jbHVkZSAiYmFzZS90aW1lL2RlZmF1bHRfdGlja19j bG9jay5oIgorICNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9uYXZpZ2F0aW9uX3ByZWRpY3Rvci9u YXZpZ2F0aW9uX3ByZWRpY3Rvcl9rZXllZF9zZXJ2aWNlLmgiCisgI2luY2x1ZGUgImNocm9tZS9i cm93c2VyL25hdmlnYXRpb25fcHJlZGljdG9yL25hdmlnYXRpb25fcHJlZGljdG9yX2tleWVkX3Nl cnZpY2VfZmFjdG9yeS5oIgorLSNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9uYXZpZ2F0aW9uX3By ZWRpY3Rvci9wcmVsb2FkaW5nX21vZGVsX2tleWVkX3NlcnZpY2UuaCIKKy0jaW5jbHVkZSAiY2hy b21lL2Jyb3dzZXIvbmF2aWdhdGlvbl9wcmVkaWN0b3IvcHJlbG9hZGluZ19tb2RlbF9rZXllZF9z ZXJ2aWNlX2ZhY3RvcnkuaCIKKyAjaW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIvcHJlbG9hZGluZy9w cmVsb2FkaW5nX3ByZWZzLmgiCisgI2luY2x1ZGUgImNocm9tZS9icm93c2VyL3Byb2ZpbGVzL3By b2ZpbGUuaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy9ub19zdGF0ZV9wcmVmZXRjaC9icm93c2Vy L25vX3N0YXRlX3ByZWZldGNoX21hbmFnZXIuaCIKK0BAIC0xMDUsMTAgKzEwMyw2IEBAIGJhc2U6 OlRpbWVEZWx0YSBNTE1vZGVsRXhlY3V0aW9uVGltZXJTdGEKKyAgICAgICBibGluazo6ZmVhdHVy ZXM6OmtQcmVsb2FkaW5nTW9kZWxUaW1lclN0YXJ0RGVsYXkuR2V0KCkpOworIH0KKyAKKy1iYXNl OjpUaW1lRGVsdGEgTUxNb2RlbEV4ZWN1dGlvblRpbWVySW50ZXJ2YWwoKSB7CistICByZXR1cm4g YmFzZTo6TWlsbGlzZWNvbmRzKAorLSAgICAgIGJsaW5rOjpmZWF0dXJlczo6a1ByZWxvYWRpbmdN b2RlbFRpbWVySW50ZXJ2YWwuR2V0KCkpOworLX0KKyAKKyBiYXNlOjpUaW1lRGVsdGEgTUxNb2Rl bE1heEhvdmVyVGltZSgpIHsKKyAgIHJldHVybiBibGluazo6ZmVhdHVyZXM6OmtQcmVsb2FkaW5n TW9kZWxNYXhIb3ZlclRpbWUuR2V0KCk7CitAQCAtNDE1LDgwICs0MDksNiBAQCB2b2lkIE5hdmln YXRpb25QcmVkaWN0b3I6OlByb2Nlc3NQb2ludGVyCisgfQorIAorIHZvaWQgTmF2aWdhdGlvblBy ZWRpY3Rvcjo6T25NTE1vZGVsRXhlY3V0aW9uVGltZXJGaXJlZCgpIHsKKy0gIC8vIENoZWNrIHdo ZXRoZXIgcHJlbG9hZGluZyBpcyBlbmFibGVkIG9yIG5vdC4KKy0gIFByb2ZpbGUqIHByb2ZpbGUg PQorLSAgICAgIFByb2ZpbGU6OkZyb21Ccm93c2VyQ29udGV4dChyZW5kZXJfZnJhbWVfaG9zdCgp LkdldEJyb3dzZXJDb250ZXh0KCkpOworLSAgaWYgKHByZWZldGNoOjpJc1NvbWVQcmVsb2FkaW5n RW5hYmxlZCgqcHJvZmlsZS0+R2V0UHJlZnMoKSkgIT0KKy0gICAgICBjb250ZW50OjpQcmVsb2Fk aW5nRWxpZ2liaWxpdHk6OmtFbGlnaWJsZSkgeworLSAgICByZXR1cm47CistICB9CistCistICAv LyBFeGVjdXRlIHRoZSBtb2RlbC4KKy0gIFByZWxvYWRpbmdNb2RlbEtleWVkU2VydmljZSogbW9k ZWxfc2VydmljZSA9CistICAgICAgUHJlbG9hZGluZ01vZGVsS2V5ZWRTZXJ2aWNlRmFjdG9yeTo6 R2V0Rm9yUHJvZmlsZShwcm9maWxlKTsKKy0gIGlmICghbW9kZWxfc2VydmljZSkgeworLSAgICBy ZXR1cm47CistICB9CistCistICBpZiAoIW1sX21vZGVsX2NhbmRpZGF0ZV8uaGFzX3ZhbHVlKCkp IHsKKy0gICAgcmV0dXJuOworLSAgfQorLSAgYXV0byBpdCA9IGFuY2hvcnNfLmZpbmQobWxfbW9k ZWxfY2FuZGlkYXRlXy52YWx1ZSgpKTsKKy0gIGlmIChpdCA9PSBhbmNob3JzXy5lbmQoKSkgewor LSAgICByZXR1cm47CistICB9CistCistICBBbmNob3JFbGVtZW50RGF0YSYgYW5jaG9yID0gaXQt PnNlY29uZDsKKy0KKy0gIFByZWxvYWRpbmdNb2RlbEtleWVkU2VydmljZTo6SW5wdXRzIGlucHV0 czsKKy0gIGlucHV0cy5jb250YWluc19pbWFnZSA9IGFuY2hvci5jb250YWluc19pbWFnZTsKKy0g IGlucHV0cy5mb250X3NpemUgPSBhbmNob3IuZm9udF9zaXplOworLSAgaW5wdXRzLmhhc190ZXh0 X3NpYmxpbmcgPSBhbmNob3IuaGFzX3RleHRfc2libGluZzsKKy0gIGlucHV0cy5pc19ib2xkID0g YW5jaG9yLmlzX2JvbGRfZm9udDsKKy0gIGlucHV0cy5pc19pbl9pZnJhbWUgPSBhbmNob3IuaXNf aW5faWZyYW1lOworLSAgaW5wdXRzLmlzX3VybF9pbmNyZW1lbnRlZF9ieV9vbmUgPSBhbmNob3Iu aXNfdXJsX2luY3JlbWVudGVkX2J5X29uZTsKKy0gIGlucHV0cy5uYXZpZ2F0aW9uX3N0YXJ0X3Rv X2xpbmtfbG9nZ2VkID0KKy0gICAgICBhbmNob3IuZmlyc3RfcmVwb3J0X3RpbWVzdGFtcCAtIG5h dmlnYXRpb25fc3RhcnRfOworLSAgYXV0byBwYXRoX2luZm8gPSBHZXRVcmxQYXRoTGVuZ3RoRGVw dGhBbmRIYXNoKGFuY2hvci50YXJnZXRfdXJsKTsKKy0gIGlucHV0cy5wYXRoX2xlbmd0aCA9IHBh dGhfaW5mby5wYXRoX2xlbmd0aDsKKy0gIGlucHV0cy5wYXRoX2RlcHRoID0gcGF0aF9pbmZvLnBh dGhfZGVwdGg7CistICBpbnB1dHMucGVyY2VudF9jbGlja2FibGVfYXJlYSA9IGFuY2hvci5yYXRp b19hcmVhOworLSAgaW5wdXRzLnBlcmNlbnRfdmVydGljYWxfZGlzdGFuY2UgPQorLSAgICAgIHN0 YXRpY19jYXN0PGludD4oYW5jaG9yLnJhdGlvX2Rpc3RhbmNlX3Jvb3RfdG9wICogMTAwKTsKKy0K Ky0gIGlucHV0cy5pc19zYW1lX2hvc3QgPSBhbmNob3IuaXNfc2FtZV9ob3N0OworLSAgYXV0byB0 b190aW1lZGVsdGEgPSBbdGhpc10oc3RkOjpvcHRpb25hbDxiYXNlOjpUaW1lVGlja3M+IHRzKSB7 CistICAgIHJldHVybiB0cy5oYXNfdmFsdWUoKSA/IE5vd1RpY2tzKCkgLSB0cy52YWx1ZSgpIDog YmFzZTo6VGltZURlbHRhKCk7CistICB9OworLSAgLy8gVE9ETygzMjk2OTE2MzQpOiBVc2luZyB0 aGUgcmVhbCB2aWV3cG9ydCBlbnRyeSB0aW1lIGZvcgorLSAgLy8gYGVudGVyZWRfdmlld3BvcnRf dG9fbGVmdF92aWV3cG9ydGAgcHJvZHVjZXMgbG93IHF1YWxpdHkgcmVzdWx0cy4KKy0gIC8vIFdl IGNvdWxkIHJlbW92ZSBpdCBmcm9tIHRoZSBtb2RlbCwgaWYgd2UgY2FuJ3QgZ2V0IHRoaXMgdG8g YmUgdXNlZnVsLgorLSAgaW5wdXRzLmVudGVyZWRfdmlld3BvcnRfdG9fbGVmdF92aWV3cG9ydCA9 IGJhc2U6OlRpbWVEZWx0YSgpOworLSAgaW5wdXRzLmhvdmVyX2R3ZWxsX3RpbWUgPSB0b190aW1l ZGVsdGEoYW5jaG9yLnBvaW50ZXJfb3Zlcl90aW1lc3RhbXApOworLSAgaW5wdXRzLnBvaW50ZXJf aG92ZXJpbmdfb3Zlcl9jb3VudCA9IGFuY2hvci5wb2ludGVyX2hvdmVyaW5nX292ZXJfY291bnQ7 CistICBpZiAobW9kZWxfc2NvcmVfY2FsbGJhY2tfKSB7CistICAgIHN0ZDo6bW92ZShtb2RlbF9z Y29yZV9jYWxsYmFja18pLlJ1bihpbnB1dHMpOworLSAgfQorLQorLSAgY29udGVudDo6UHJlbG9h ZGluZ0RhdGEqIHByZWxvYWRpbmdfZGF0YSA9CistICAgICAgY29udGVudDo6UHJlbG9hZGluZ0Rh dGE6OkdldE9yQ3JlYXRlRm9yV2ViQ29udGVudHMoCistICAgICAgICAgIGNvbnRlbnQ6OldlYkNv bnRlbnRzOjpGcm9tUmVuZGVyRnJhbWVIb3N0KCZyZW5kZXJfZnJhbWVfaG9zdCgpKSk7CistICBw cmVsb2FkaW5nX2RhdGEtPk9uUHJlbG9hZGluZ0hldXJpc3RpY3NNb2RlbElucHV0KAorLSAgICAg IGFuY2hvci50YXJnZXRfdXJsLAorLSAgICAgIGJhc2U6OkJpbmRPbmNlKCZSZWNvcmRNZXRyaWNz Rm9yTW9kZWxUcmFpbmluZywgaW5wdXRzLAorLSAgICAgICAgICAgICAgICAgICAgIHJlbmRlcl9m cmFtZV9ob3N0KCkuR2V0UGFnZVVrbVNvdXJjZUlkKCkpKTsKKy0gIG1vZGVsX3NlcnZpY2UtPlNj b3JlKAorLSAgICAgICZzY29yaW5nX21vZGVsX3Rhc2tfdHJhY2tlcl8sIGlucHV0cywKKy0gICAg ICBiYXNlOjpCaW5kT25jZSgmTmF2aWdhdGlvblByZWRpY3Rvcjo6T25QcmVsb2FkaW5nSGV1cmlz dGljc01vZGVsRG9uZSwKKy0gICAgICAgICAgICAgICAgICAgICB3ZWFrX3B0cl9mYWN0b3J5Xy5H ZXRXZWFrUHRyKCksIGFuY2hvci50YXJnZXRfdXJsKSk7CistCistICBpZiAoaW5wdXRzLmhvdmVy X2R3ZWxsX3RpbWUgPCBNTE1vZGVsTWF4SG92ZXJUaW1lKCkgJiYKKy0gICAgICAhbWxfbW9kZWxf ZXhlY3V0aW9uX3RpbWVyXy5Jc1J1bm5pbmcoKSkgeworLSAgICBtbF9tb2RlbF9leGVjdXRpb25f dGltZXJfLlN0YXJ0KAorLSAgICAgICAgRlJPTV9IRVJFLCBNTE1vZGVsRXhlY3V0aW9uVGltZXJJ bnRlcnZhbCgpLAorLSAgICAgICAgYmFzZTo6QmluZE9uY2UoJk5hdmlnYXRpb25QcmVkaWN0b3I6 Ok9uTUxNb2RlbEV4ZWN1dGlvblRpbWVyRmlyZWQsCistICAgICAgICAgICAgICAgICAgICAgICBi YXNlOjpVbnJldGFpbmVkKHRoaXMpKSk7CistICB9CisgfQorIAorIHZvaWQgTmF2aWdhdGlvblBy ZWRpY3Rvcjo6U2V0TW9kZWxTY29yZUNhbGxiYWNrRm9yVGVzdGluZygKKy0tLSBhL2Nocm9tZS9i cm93c2VyL3BhZ2VfY29udGVudF9hbm5vdGF0aW9ucy9wYWdlX2NvbnRlbnRfYW5ub3RhdGlvbnNf c2VydmljZV9mYWN0b3J5LmNjCisrKysgYi9jaHJvbWUvYnJvd3Nlci9wYWdlX2NvbnRlbnRfYW5u b3RhdGlvbnMvcGFnZV9jb250ZW50X2Fubm90YXRpb25zX3NlcnZpY2VfZmFjdG9yeS5jYworQEAg LTExOCw2MiArMTE4LDYgQEAgUGFnZUNvbnRlbnRBbm5vdGF0aW9uc1NlcnZpY2VGYWN0b3J5Ojp+ UAorIHN0ZDo6dW5pcXVlX3B0cjxLZXllZFNlcnZpY2U+CisgUGFnZUNvbnRlbnRBbm5vdGF0aW9u c1NlcnZpY2VGYWN0b3J5OjpCdWlsZFNlcnZpY2VJbnN0YW5jZUZvckJyb3dzZXJDb250ZXh0KAor ICAgICBjb250ZW50OjpCcm93c2VyQ29udGV4dCogY29udGV4dCkgY29uc3QgeworLSAgUHJvZmls ZSogcHJvZmlsZSA9IFByb2ZpbGU6OkZyb21Ccm93c2VyQ29udGV4dChjb250ZXh0KTsKKy0KKy0g IGlmICghU2hvdWxkRW5hYmxlUGFnZUNvbnRlbnRBbm5vdGF0aW9ucyhwcm9maWxlKSkKKy0gICAg cmV0dXJuIG51bGxwdHI7CistCistICBhdXRvKiBwcm90b19kYl9wcm92aWRlciA9IHByb2ZpbGUt PkdldE9yaWdpbmFsUHJvZmlsZSgpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAt PkdldERlZmF1bHRTdG9yYWdlUGFydGl0aW9uKCkKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC0+R2V0UHJvdG9EYXRhYmFzZVByb3ZpZGVyKCk7CistICBiYXNlOjpGaWxlUGF0aCBw cm9maWxlX3BhdGggPSBwcm9maWxlLT5HZXRPcmlnaW5hbFByb2ZpbGUoKS0+R2V0UGF0aCgpOwor LQorLSAgLy8gVGhlIG9wdGltaXphdGlvbiBndWlkZSBhbmQgaGlzdG9yeSBzZXJ2aWNlcyBtdXN0 IGJlIGF2YWlsYWJsZSBmb3IgdGhlIHBhZ2UKKy0gIC8vIGNvbnRlbnQgYW5ub3RhdGlvbnMgc2Vy dmljZSB0byB3b3JrLgorLSAgT3B0aW1pemF0aW9uR3VpZGVLZXllZFNlcnZpY2UqIG9wdGltaXph dGlvbl9ndWlkZV9rZXllZF9zZXJ2aWNlID0KKy0gICAgICBPcHRpbWl6YXRpb25HdWlkZUtleWVk U2VydmljZUZhY3Rvcnk6OkdldEZvclByb2ZpbGUocHJvZmlsZSk7CistICBoaXN0b3J5OjpIaXN0 b3J5U2VydmljZSogaGlzdG9yeV9zZXJ2aWNlID0KKy0gICAgICBIaXN0b3J5U2VydmljZUZhY3Rv cnk6OkdldEZvclByb2ZpbGUocHJvZmlsZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU2VydmljZUFjY2Vzc1R5cGU6OklNUExJQ0lUX0FDQ0VTUyk7CistICBU ZW1wbGF0ZVVSTFNlcnZpY2UqIHRlbXBsYXRlX3VybF9zZXJ2aWNlID0KKy0gICAgICBUZW1wbGF0 ZVVSTFNlcnZpY2VGYWN0b3J5OjpHZXRGb3JQcm9maWxlKHByb2ZpbGUpOworLSAgWmVyb1N1Z2dl c3RDYWNoZVNlcnZpY2UqIHplcm9fc3VnZ2VzdF9jYWNoZV9zZXJ2aWNlID0KKy0gICAgICBaZXJv U3VnZ2VzdENhY2hlU2VydmljZUZhY3Rvcnk6OkdldEZvclByb2ZpbGUocHJvZmlsZSk7CistCist ICBpZiAob3B0aW1pemF0aW9uX2d1aWRlX2tleWVkX3NlcnZpY2UgJiYgaGlzdG9yeV9zZXJ2aWNl KSB7CistICAgIHN0ZDo6c3RyaW5nIGNvdW50cnlfY29kZSA9CistICAgICAgICBHZXRDdXJyZW50 Q291bnRyeUNvZGUoZ19icm93c2VyX3Byb2Nlc3MtPnZhcmlhdGlvbnNfc2VydmljZSgpKTsKKy0K Ky0gICAgcGFnZV9jb250ZW50X2Fubm90YXRpb25zOjpQYWdlRW1iZWRkaW5nc1NlcnZpY2UqIHBh Z2VfZW1iZWRkaW5nc19zZXJ2aWNlID0KKy0gICAgICAgIHBhZ2VfY29udGVudF9hbm5vdGF0aW9u czo6UGFnZUVtYmVkZGluZ3NTZXJ2aWNlRmFjdG9yeTo6R2V0Rm9yUHJvZmlsZSgKKy0gICAgICAg ICAgICBwcm9maWxlKTsKKy0gICAgcGFzc2FnZV9lbWJlZGRpbmdzOjpFbWJlZGRlck1ldGFkYXRh UHJvdmlkZXIqIGVtYmVkZGVyX21ldGFkYXRhX3Byb3ZpZGVyID0KKy0gICAgICAgIHBhZ2VfZW1i ZWRkaW5nc19zZXJ2aWNlCistICAgICAgICAgICAgPyBwYWdlX2VtYmVkZGluZ3Nfc2VydmljZS0+ R2V0RW1iZWRkZXJNZXRhZGF0YVByb3ZpZGVyKCkKKy0gICAgICAgICAgICA6IG51bGxwdHI7Cist CistICAgIGF1dG8gc2VydmljZSA9IHN0ZDo6bWFrZV91bmlxdWU8CistICAgICAgICBwYWdlX2Nv bnRlbnRfYW5ub3RhdGlvbnM6OlBhZ2VDb250ZW50QW5ub3RhdGlvbnNTZXJ2aWNlPigKKy0gICAg ICAgIGdfYnJvd3Nlcl9wcm9jZXNzLT5HZXRBcHBsaWNhdGlvbkxvY2FsZSgpLCBjb3VudHJ5X2Nv ZGUsCistICAgICAgICBvcHRpbWl6YXRpb25fZ3VpZGVfa2V5ZWRfc2VydmljZSwgaGlzdG9yeV9z ZXJ2aWNlLCB0ZW1wbGF0ZV91cmxfc2VydmljZSwKKy0gICAgICAgIHplcm9fc3VnZ2VzdF9jYWNo ZV9zZXJ2aWNlLCBwcm90b19kYl9wcm92aWRlciwgcHJvZmlsZV9wYXRoLAorLSAgICAgICAgb3B0 aW1pemF0aW9uX2d1aWRlX2tleWVkX3NlcnZpY2UtPkdldE9wdGltaXphdGlvbkd1aWRlTG9nZ2Vy KCksCistICAgICAgICBvcHRpbWl6YXRpb25fZ3VpZGVfa2V5ZWRfc2VydmljZSwgZW1iZWRkZXJf bWV0YWRhdGFfcHJvdmlkZXIsCistICAgICAgICBiYXNlOjpUaHJlYWRQb29sOjpDcmVhdGVTZXF1 ZW5jZWRUYXNrUnVubmVyKAorLSAgICAgICAgICAgIHtiYXNlOjpNYXlCbG9jaygpLCBiYXNlOjpU YXNrUHJpb3JpdHk6OkJFU1RfRUZGT1JUfSkpOworLQorLSAgICBwYWdlX2NvbnRlbnRfYW5ub3Rh dGlvbnM6Ok9uRGV2aWNlQ2F0ZWdvcnlDbGFzc2lmaWVyKiBjYXRlZ29yeV9jbGFzc2lmaWVyID0K Ky0gICAgICAgIHNlcnZpY2UtPm9uX2RldmljZV9jYXRlZ29yeV9jbGFzc2lmaWVyKCk7CistICAg IGlmIChjYXRlZ29yeV9jbGFzc2lmaWVyICYmIHBhZ2VfZW1iZWRkaW5nc19zZXJ2aWNlKSB7Cist ICAgICAgc2VydmljZS0+U2V0UGFnZUNhdGVnb3J5Q2xhc3NpZmllckJyaWRnZSgKKy0gICAgICAg ICAgc3RkOjptYWtlX3VuaXF1ZTwKKy0gICAgICAgICAgICAgIHBhZ2VfY29udGVudF9hbm5vdGF0 aW9uczo6UGFnZUNhdGVnb3J5Q2xhc3NpZmllckJyaWRnZUltcGw+KAorLSAgICAgICAgICAgICAg KnBhZ2VfZW1iZWRkaW5nc19zZXJ2aWNlLCAqY2F0ZWdvcnlfY2xhc3NpZmllciwKKy0gICAgICAg ICAgICAgIG9wdGltaXphdGlvbl9ndWlkZV9rZXllZF9zZXJ2aWNlLT5HZXRPcHRpbWl6YXRpb25H dWlkZUxvZ2dlcigpKSk7CistICAgIH0KKy0KKy0gICAgcmV0dXJuIHNlcnZpY2U7CistICB9Cisg ICByZXR1cm4gbnVsbHB0cjsKKyB9CisgCistLS0gYS9jaHJvbWUvYnJvd3Nlci9wYXNzd29yZF9t YW5hZ2VyL3Bhc3N3b3JkX2NoYW5nZV9kZWxlZ2F0ZV9pbXBsLmNjCisrKysgYi9jaHJvbWUvYnJv d3Nlci9wYXNzd29yZF9tYW5hZ2VyL3Bhc3N3b3JkX2NoYW5nZV9kZWxlZ2F0ZV9pbXBsLmNjCitA QCAtMzM4LDE2ICszMzgsNiBAQCB2b2lkIFBhc3N3b3JkQ2hhbmdlRGVsZWdhdGVJbXBsOjpTdGFy dFBhCisgICAgICAgYmFzZTo6QmluZFJlcGVhdGluZygmUGFzc3dvcmRDaGFuZ2VEZWxlZ2F0ZUlt cGw6Ok9uTG9naW5TdGF0ZUNoZWNrUmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg d2Vha19wdHJfZmFjdG9yeV8uR2V0V2Vha1B0cigpKSk7CisgCistICAvLyBUaGlzIGNyZWF0ZXMg RmllbGRDbGFzc2lmaWNhdGlvbk1vZGVsSGFuZGxlciBhbmQgc2hvdWxkIHRyaWdnZXIgZG93bmxv YWQgb2YKKy0gIC8vIGEgbG9jYWwgTUwgbW9kZWwgZm9yIGZpZWxkIGNsYXNzaWZpY2F0aW9uLgor LSAgLy8gVE9ETyg0NTI4ODMyMzkpOiBDbGVhbiB0aGlzIHVwIHdoZW4gbW9kZWwgaXMgZG93bmxv YWRlZCBvbiBzdGFydC11cCBmb3IKKy0gIC8vIGV2ZXJ5Ym9keS4KKy0gIGlmIChiYXNlOjpGZWF0 dXJlTGlzdDo6SXNFbmFibGVkKAorLSAgICAgICAgICBwYXNzd29yZF9tYW5hZ2VyOjpmZWF0dXJl czo6CistICAgICAgICAgICAgICBrUHJvYWN0aXZlbHlEb3dubG9hZE1vZGVsRm9yUGFzc3dvcmRD aGFuZ2UpKSB7CistICAgIFBhc3N3b3JkRmllbGRDbGFzc2lmaWNhdGlvbk1vZGVsSGFuZGxlckZh Y3Rvcnk6OkdldEZvckJyb3dzZXJDb250ZXh0KAorLSAgICAgICAgb3JpZ2luYXRvcl8tPkdldEJy b3dzZXJDb250ZXh0KCkpOworLSAgfQorIH0KKyAKKyB2b2lkIFBhc3N3b3JkQ2hhbmdlRGVsZWdh dGVJbXBsOjpPbkxvZ2luU3RhdGVDaGVja1Jlc3VsdCgKKy0tLSBhL2Nocm9tZS9icm93c2VyL3Bk Zi9wZGZfZXh0ZW5zaW9uX3V0aWwuY2MKKysrKyBiL2Nocm9tZS9icm93c2VyL3BkZi9wZGZfZXh0 ZW5zaW9uX3V0aWwuY2MKK0BAIC0xMjgsNyArMTI4LDYgQEAgYmFzZTo6RGljdFZhbHVlIEdldFBk ZlZpZXdlclN0cmluZ3MoKSB7CisgICAgICAgeyJyb3RhdGlvblN0YXRlTGFiZWw5MCIsIElEU19Q REZfUk9UQVRJT05fU1RBVEVfTEFCRUxfOTB9LAorICAgICAgIHsicm90YXRpb25TdGF0ZUxhYmVs MTgwIiwgSURTX1BERl9ST1RBVElPTl9TVEFURV9MQUJFTF8xODB9LAorICAgICAgIHsicm90YXRp b25TdGF0ZUxhYmVsMjcwIiwgSURTX1BERl9ST1RBVElPTl9TVEFURV9MQUJFTF8yNzB9LAorLSAg ICAgIHsic2VhcmNoaWZ5SW5Qcm9ncmVzcyIsIElEU19QREZfU0VBUkNISUZZX0lOX1BST0dSRVNT fSwKKyAgICAgICB7InNpZGViYXJMYWJlbCIsIElEU19QREZfU0lERUJBUl9MQUJFTH0sCisgICAg ICAgeyJ0aHVtYm5haWxQYWdlQXJpYUxhYmVsIiwgSURTX1BERl9USFVNQk5BSUxfUEFHRV9BUklB X0xBQkVMfSwKKyAgICAgICB7InRvb2x0aXBBdHRhY2htZW50cyIsIElEU19QREZfVE9PTFRJUF9B VFRBQ0hNRU5UU30sCistLS0gYS9jaHJvbWUvYnJvd3Nlci9wZXJtaXNzaW9ucy9CVUlMRC5nbgor KysrIGIvY2hyb21lL2Jyb3dzZXIvcGVybWlzc2lvbnMvQlVJTEQuZ24KK0BAIC00MywxMiArNDMs NiBAQCBzb3VyY2Vfc2V0KCJwZXJtaXNzaW9ucyIpIHsKKyAgICAgInByZWRpY3Rpb25fc2Vydmlj ZS9sYW5ndWFnZV9kZXRlY3Rpb25fb2JzZXJ2ZXIuaCIsCisgICAgICJwcmVkaWN0aW9uX3NlcnZp Y2UvcGFzc2FnZV9lbWJlZGRlcl9kZWxlZ2F0ZS5jYyIsCisgICAgICJwcmVkaWN0aW9uX3NlcnZp Y2UvcGFzc2FnZV9lbWJlZGRlcl9kZWxlZ2F0ZS5oIiwKKy0gICAgInByZWRpY3Rpb25fc2Vydmlj ZS9wZXJtaXNzaW9uc19haV91aV9zZWxlY3Rvci5jYyIsCistICAgICJwcmVkaWN0aW9uX3NlcnZp Y2UvcGVybWlzc2lvbnNfYWlfdWlfc2VsZWN0b3IuaCIsCistICAgICJwcmVkaWN0aW9uX3NlcnZp Y2UvcHJlZGljdGlvbl9tb2RlbF9oYW5kbGVyX3Byb3ZpZGVyLmNjIiwKKy0gICAgInByZWRpY3Rp b25fc2VydmljZS9wcmVkaWN0aW9uX21vZGVsX2hhbmRsZXJfcHJvdmlkZXIuaCIsCistICAgICJw cmVkaWN0aW9uX3NlcnZpY2UvcHJlZGljdGlvbl9tb2RlbF9oYW5kbGVyX3Byb3ZpZGVyX2ZhY3Rv cnkuY2MiLAorLSAgICAicHJlZGljdGlvbl9zZXJ2aWNlL3ByZWRpY3Rpb25fbW9kZWxfaGFuZGxl cl9wcm92aWRlcl9mYWN0b3J5LmgiLAorICAgICAicHJlZGljdGlvbl9zZXJ2aWNlL3ByZWRpY3Rp b25fc2VydmljZV9mYWN0b3J5LmNjIiwKKyAgICAgInByZWRpY3Rpb25fc2VydmljZS9wcmVkaWN0 aW9uX3NlcnZpY2VfZmFjdG9yeS5oIiwKKyAgICAgInByZWRpY3Rpb25fc2VydmljZS9wcmVkaWN0 aW9uX3NlcnZpY2VfcmVxdWVzdC5jYyIsCistLS0gYS9jaHJvbWUvYnJvd3Nlci9wZXJtaXNzaW9u cy9jaHJvbWVfcGVybWlzc2lvbnNfY2xpZW50LmNjCisrKysgYi9jaHJvbWUvYnJvd3Nlci9wZXJt aXNzaW9ucy9jaHJvbWVfcGVybWlzc2lvbnNfY2xpZW50LmNjCitAQCAtMjksNyArMjksNiBAQAor ICNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9wZXJtaXNzaW9ucy9wZXJtaXNzaW9uX2FjdGlvbnNf aGlzdG9yeV9mYWN0b3J5LmgiCisgI2luY2x1ZGUgImNocm9tZS9icm93c2VyL3Blcm1pc3Npb25z L3Blcm1pc3Npb25fZGVjaXNpb25fYXV0b19ibG9ja2VyX2ZhY3RvcnkuaCIKKyAjaW5jbHVkZSAi Y2hyb21lL2Jyb3dzZXIvcGVybWlzc2lvbnMvcGVybWlzc2lvbl9yZXZvY2F0aW9uX3JlcXVlc3Qu aCIKKy0jaW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIvcGVybWlzc2lvbnMvcHJlZGljdGlvbl9zZXJ2 aWNlL3Blcm1pc3Npb25zX2FpX3VpX3NlbGVjdG9yLmgiCisgI2luY2x1ZGUgImNocm9tZS9icm93 c2VyL3Blcm1pc3Npb25zL3ByZWZfYmFzZWRfcXVpZXRfcGVybWlzc2lvbl91aV9zZWxlY3Rvci5o IgorICNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9wZXJtaXNzaW9ucy9xdWlldF9ub3RpZmljYXRp b25fcGVybWlzc2lvbl91aV9jb25maWcuaCIKKyAjaW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIvcGVy bWlzc2lvbnMvc3lzdGVtL3N5c3RlbV9wZXJtaXNzaW9uX3NldHRpbmdzLmgiCitAQCAtNDc1LDgg KzQ3NCw2IEBAIENocm9tZVBlcm1pc3Npb25zQ2xpZW50OjpDcmVhdGVQZXJtaXNzaW8KKyAjZW5k aWYKKyAgIHNlbGVjdG9ycy5lbXBsYWNlX2JhY2soc3RkOjptYWtlX3VuaXF1ZTxQcmVmQmFzZWRR dWlldFBlcm1pc3Npb25VaVNlbGVjdG9yPigKKyAgICAgICBQcm9maWxlOjpGcm9tQnJvd3NlckNv bnRleHQoYnJvd3Nlcl9jb250ZXh0KSkpOworLSAgc2VsZWN0b3JzLmVtcGxhY2VfYmFjayhzdGQ6 Om1ha2VfdW5pcXVlPFBlcm1pc3Npb25zQWlVaVNlbGVjdG9yPigKKy0gICAgICBQcm9maWxlOjpG cm9tQnJvd3NlckNvbnRleHQoYnJvd3Nlcl9jb250ZXh0KSkpOworICAgcmV0dXJuIHNlbGVjdG9y czsKKyB9CisgCitAQCAtNDk4LDggKzQ5NSw2IEBAIHZvaWQgQ2hyb21lUGVybWlzc2lvbnNDbGll bnQ6Ok9uUHJvbXB0UmUKKyAKKyAgIFByb2ZpbGUqIHByb2ZpbGUgPQorICAgICAgIFByb2ZpbGU6 OkZyb21Ccm93c2VyQ29udGV4dCh3ZWJfY29udGVudHMtPkdldEJyb3dzZXJDb250ZXh0KCkpOwor LSAgUGVybWlzc2lvbkFjdGlvbnNIaXN0b3J5RmFjdG9yeTo6R2V0Rm9yUHJvZmlsZShwcm9maWxl KS0+UmVjb3JkQWN0aW9uKAorLSAgICAgIGFjdGlvbiwgcmVxdWVzdF90eXBlLCBwcm9tcHRfZGlz cG9zaXRpb24pOworIAorICAgaWYgKHJlcXVlc3RfdHlwZSA9PSBwZXJtaXNzaW9uczo6UmVxdWVz dFR5cGU6OmtOb3RpZmljYXRpb25zKSB7CisgICAgIGlmIChhY3Rpb24gPT0gcGVybWlzc2lvbnM6 OlBlcm1pc3Npb25BY3Rpb246OkdSQU5URUQgJiYKKy0tLSBhL2Nocm9tZS9icm93c2VyL3Blcm1p c3Npb25zL3ByZWRpY3Rpb25fc2VydmljZS9wYXNzYWdlX2VtYmVkZGVyX2RlbGVnYXRlLmNjCisr KysgYi9jaHJvbWUvYnJvd3Nlci9wZXJtaXNzaW9ucy9wcmVkaWN0aW9uX3NlcnZpY2UvcGFzc2Fn ZV9lbWJlZGRlcl9kZWxlZ2F0ZS5jYworQEAgLTI2LDE4ICsyNiw2IEBAIFBhc3NhZ2VFbWJlZGRl ckRlbGVnYXRlOjpQYXNzYWdlRW1iZWRkZXIKKyAgICAgOiBwcm9maWxlXyhwcm9maWxlKSB7fQor IAorIEVtYmVkZGVyKiBQYXNzYWdlRW1iZWRkZXJEZWxlZ2F0ZTo6R2V0UGFzc2FnZUVtYmVkZGVy KCkgeworLSAgaWYgKGF1dG8qIHByZWRpY3Rpb25fbW9kZWxfaGFuZGxlcl9wcm92aWRlciA9Cist ICAgICAgICAgIFByZWRpY3Rpb25Nb2RlbEhhbmRsZXJQcm92aWRlckZhY3Rvcnk6OkdldEZvckJy b3dzZXJDb250ZXh0KAorLSAgICAgICAgICAgICAgcHJvZmlsZV8pKSB7CistICAgIGJvb2wgaXNf cmVhZHkgPSBwcmVkaWN0aW9uX21vZGVsX2hhbmRsZXJfcHJvdmlkZXItPklzUGFzc2FnZUVtYmVk ZGVyUmVhZHkoKTsKKy0gICAgUGVybWlzc2lvblVtYVV0aWw6OlJlY29yZFBhc3NhZ2VFbWJlZGRl ck1ldGFkYXRhVmFsaWQoaXNfcmVhZHkpOworLSAgICBpZiAoIWlzX3JlYWR5KSB7CistICAgICAg VkxPRygxKSA8PCAiW1Blcm1pc3Npb25zQUl2NF0gIgorLSAgICAgICAgICAgICAgICAgIlBhc3Nh Z2VFbWJlZGRlckRlbGVnYXRlOjpHZXRQYXNzYWdlRW1iZWRkZXIgaXMgbm90IHJlYWR5LiI7Cist ICAgICAgcmV0dXJuIG51bGxwdHI7CistICAgIH0KKy0gICAgcmV0dXJuIHByZWRpY3Rpb25fbW9k ZWxfaGFuZGxlcl9wcm92aWRlci0+R2V0UGFzc2FnZUVtYmVkZGVyKCk7CistICB9CisgICBQZXJt aXNzaW9uVW1hVXRpbDo6UmVjb3JkUGFzc2FnZUVtYmVkZGVyTWV0YWRhdGFWYWxpZChmYWxzZSk7 CisgICByZXR1cm4gbnVsbHB0cjsKKyB9CistLS0gYS9jaHJvbWUvYnJvd3Nlci9wZXJtaXNzaW9u cy9wcmVkaWN0aW9uX3NlcnZpY2UvcGVybWlzc2lvbnNfYWlfdWlfc2VsZWN0b3IuY2MKKysrKyBi L2Nocm9tZS9icm93c2VyL3Blcm1pc3Npb25zL3ByZWRpY3Rpb25fc2VydmljZS9wZXJtaXNzaW9u c19haV91aV9zZWxlY3Rvci5jYworQEAgLTc5Nyw3ICs3OTcsNyBAQCB2b2lkIFBlcm1pc3Npb25z QWlVaVNlbGVjdG9yOjpFeGVjdXRlT25ECisgICAgIE1vZGVsRXhlY3V0aW9uRGF0YSBtb2RlbF9k YXRhKSB7CisgICBWTE9HKDEpIDw8ICJbUGVybWlzc2lvbnNBSV0gRXhlY3V0ZU9uRGV2aWNlQWl2 WE1vZGVsIjsKKyAgIFByZWRpY3Rpb25Nb2RlbEhhbmRsZXJQcm92aWRlciogcHJlZGljdGlvbl9t b2RlbF9oYW5kbGVyX3Byb3ZpZGVyID0KKy0gICAgICBQcmVkaWN0aW9uTW9kZWxIYW5kbGVyUHJv dmlkZXJGYWN0b3J5OjpHZXRGb3JCcm93c2VyQ29udGV4dChwcm9maWxlXyk7CisrICAgICAgbnVs bHB0cjsKKyAgIGlmIChwcmVkaWN0aW9uX21vZGVsX2hhbmRsZXJfcHJvdmlkZXIpIHsKKyAgICAg cGVybWlzc2lvbnM6OlJlcXVlc3RUeXBlIHJlcXVlc3RfdHlwZSA9CisgICAgICAgICBtb2RlbF9k YXRhLnJlcXVlc3RfbWV0YWRhdGEucmVxdWVzdF90eXBlOworLS0tIGEvY2hyb21lL2Jyb3dzZXIv cHJlZnMvQlVJTEQuZ24KKysrKyBiL2Nocm9tZS9icm93c2VyL3ByZWZzL0JVSUxELmduCitAQCAt MzM5LDcgKzMzOSw2IEBAIHNvdXJjZV9zZXQoImltcGwiKSB7CisgICAgICAgIi8vY2hyb21lL2Jy b3dzZXIvYWN0b3IvdWkiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL2Rlc2t0b3BfdG9fbW9i aWxlX3Byb21vczp1dGlscyIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvZGV2aWNlX2lkZW50 aXR5IiwKKy0gICAgICAiLy9jaHJvbWUvYnJvd3Nlci9zY3JlZW5fYWk6cHJlZnMiLAorICAgICAg ICIvL2Nocm9tZS9icm93c2VyL3NlYXJjaF9lbmdpbmVfY2hvaWNlIiwKKyAgICAgICAiLy9jaHJv bWUvYnJvd3Nlci9zZWFyY2hfZW5naW5lcyIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvc2hh cmluZ19odWIiLAorLS0tIGEvY2hyb21lL2Jyb3dzZXIvcHJlZnMvYnJvd3Nlcl9wcmVmcy5jYwor KysrIGIvY2hyb21lL2Jyb3dzZXIvcHJlZnMvYnJvd3Nlcl9wcmVmcy5jYworQEAgLTE2MDUsOSAr MTYwNSw2IEBAIHZvaWQgUmVnaXN0ZXJMb2NhbFN0YXRlKFByZWZSZWdpc3RyeVNpbXAKKyAgIERl dmljZU9BdXRoMlRva2VuU3RvcmVEZXNrdG9wOjpSZWdpc3RlclByZWZzKHJlZ2lzdHJ5KTsKKyAj ZW5kaWYKKyAKKy0jaWYgIUJVSUxERkxBRyhJU19BTkRST0lEKQorLSAgc2NyZWVuX2FpOjpSZWdp c3RlckxvY2FsU3RhdGVQcmVmcyhyZWdpc3RyeSk7CistI2VuZGlmICAvLyAhQlVJTERGTEFHKElT X0FORFJPSUQpCisgCisgI2lmIEJVSUxERkxBRyhJU19XSU4pIHx8IEJVSUxERkxBRyhJU19NQUMp IHx8IEJVSUxERkxBRyhJU19BTkRST0lEKQorICAgUGxhdGZvcm1BdXRoUG9saWN5T2JzZXJ2ZXI6 OlJlZ2lzdGVyUHJlZnMocmVnaXN0cnkpOworLS0tIGEvY2hyb21lL2Jyb3dzZXIvcHJvZmlsZXMv QlVJTEQuZ24KKysrKyBiL2Nocm9tZS9icm93c2VyL3Byb2ZpbGVzL0JVSUxELmduCitAQCAtNTI1 LDcgKzUyNSw2IEBAIHNvdXJjZV9zZXQoInByb2ZpbGVzX2V4dHJhX3BhcnRzX2ltcGwiKQorICAg fSBlbHNlIHsKKyAgICAgZGVwcyArPSBbCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvYWNjZXNz aWJpbGl0eS9waHJhc2Vfc2VnbWVudGF0aW9uIiwKKy0gICAgICAiLy9jaHJvbWUvYnJvd3Nlci9h Y2Nlc3NpYmlsaXR5L3RyZWVfZml4aW5nOnNlcnZpY2UiLAorICAgICAgICIvL2Nocm9tZS9icm93 c2VyL2FjY2Vzc2liaWxpdHlfYW5ub3RhdG9yL2NvbnRlbnRfYW5ub3RhdG9yIiwKKyAgICAgICAi Ly9jaHJvbWUvYnJvd3Nlci9hcHBzL2FwcF9zZXJ2aWNlIiwKKyAgICAgICAiLy9jaHJvbWUvYnJv d3Nlci9hdXRvZmlsbCIsCitAQCAtNTQwLDcgKzUzOSw2IEBAIHNvdXJjZV9zZXQoInByb2ZpbGVz X2V4dHJhX3BhcnRzX2ltcGwiKQorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3ByaXZhdGVfYWki LAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3Byb2ZpbGVfcmVzZXR0ZXIiLAorICAgICAgICIv L2Nocm9tZS9icm93c2VyL3JlY29yZF9yZXBsYXkiLAorLSAgICAgICIvL2Nocm9tZS9icm93c2Vy L3NjcmVlbl9haTpzY3JlZW5fYWlfc2VydmljZV9yb3V0ZXJfZmFjdG9yeSIsCisgICAgICAgIi8v Y2hyb21lL2Jyb3dzZXIvc2VhcmNoIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci9zZWFyY2hf ZW5naW5lX2Nob2ljZSIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvc2hhcmluZ19odWIiLAor LS0tIGEvY2hyb21lL2Jyb3dzZXIvcHJvZmlsZXMvY2hyb21lX2Jyb3dzZXJfbWFpbl9leHRyYV9w YXJ0c19wcm9maWxlcy5jYworKysrIGIvY2hyb21lL2Jyb3dzZXIvcHJvZmlsZXMvY2hyb21lX2Jy b3dzZXJfbWFpbl9leHRyYV9wYXJ0c19wcm9maWxlcy5jYworQEAgLTEyOSw3ICsxMjksNiBAQAor ICNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9tZXRyaWNzL3ZhcmlhdGlvbnMvZ29vZ2xlX2dyb3Vw c19tYW5hZ2VyX2ZhY3RvcnkuaCIKKyAjaW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIvbXVsdGlzdGVw X2ZpbHRlci9jb3JlL211bHRpc3RlcF9maWx0ZXJfc2VydmljZV9mYWN0b3J5LmgiCisgI2luY2x1 ZGUgImNocm9tZS9icm93c2VyL25hdmlnYXRpb25fcHJlZGljdG9yL25hdmlnYXRpb25fcHJlZGlj dG9yX2tleWVkX3NlcnZpY2VfZmFjdG9yeS5oIgorLSNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9u YXZpZ2F0aW9uX3ByZWRpY3Rvci9wcmVsb2FkaW5nX21vZGVsX2tleWVkX3NlcnZpY2VfZmFjdG9y eS5oIgorICNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9uYXZpZ2F0aW9uX3ByZWRpY3Rvci9zZWFy Y2hfZW5naW5lX3ByZWNvbm5lY3Rvci5oIgorICNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9uYXZp Z2F0aW9uX3ByZWRpY3Rvci9zZWFyY2hfZW5naW5lX3ByZWNvbm5lY3Rvcl9rZXllZF9zZXJ2aWNl X2ZhY3RvcnkuaCIKKyAjaW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIvbmV0L2Ruc19wcm9iZV9zZXJ2 aWNlX2ZhY3RvcnkuaCIKK0BAIC0zNjUsNyArMzY0LDYgQEAKKyAjaW5jbHVkZSAiY2hyb21lL2Jy b3dzZXIvcHJpdmF0ZV9haS9wcml2YXRlX2FpX3NlcnZpY2VfZmFjdG9yeS5oIgorICNpbmNsdWRl ICJjaHJvbWUvYnJvd3Nlci9wcm9maWxlX3Jlc2V0dGVyL3Jlc2V0X3JlcG9ydF91cGxvYWRlcl9m YWN0b3J5LmgiCisgI2luY2x1ZGUgImNocm9tZS9icm93c2VyL3JlY29yZF9yZXBsYXkvcmVjb3Jk aW5nX2RhdGFfbWFuYWdlcl9mYWN0b3J5LmgiCistI2luY2x1ZGUgImNocm9tZS9icm93c2VyL3Nj cmVlbl9haS9zY3JlZW5fYWlfc2VydmljZV9yb3V0ZXJfZmFjdG9yeS5oIgorICNpbmNsdWRlICJj aHJvbWUvYnJvd3Nlci9zZWFyY2gvaW5zdGFudF9zZXJ2aWNlX2ZhY3RvcnkuaCIKKyAjaW5jbHVk ZSAiY2hyb21lL2Jyb3dzZXIvc2VhcmNoX2VuZ2luZV9jaG9pY2Uvc2VhcmNoX2VuZ2luZV9jaG9p Y2VfZGlhbG9nX3NlcnZpY2VfZmFjdG9yeS5oIgorICNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9z cGVlY2gvc3BlZWNoX3JlY29nbml0aW9uX2NsaWVudF9icm93c2VyX2ludGVyZmFjZV9mYWN0b3J5 LmgiCitAQCAtMTEyMiw3ICsxMTIwLDYgQEAgdm9pZCBDaHJvbWVCcm93c2VyTWFpbkV4dHJhUGFy dHNQcm9maWxlcworICNpZiBCVUlMREZMQUcoQ0hST01FX1JPT1RfU1RPUkVfQ0VSVF9NQU5BR0VN RU5UX1VJKQorICAgbmV0OjpTZXJ2ZXJDZXJ0aWZpY2F0ZURhdGFiYXNlU2VydmljZUZhY3Rvcnk6 OkdldEluc3RhbmNlKCk7CisgI2VuZGlmCistICBQcmVsb2FkaW5nTW9kZWxLZXllZFNlcnZpY2VG YWN0b3J5OjpHZXRJbnN0YW5jZSgpOworICNpZiBCVUlMREZMQUcoRU5BQkxFX0RJQ0VfU1VQUE9S VCkKKyAgIEhpc3RvcnlTeW5jT3B0aW5TZXJ2aWNlRmFjdG9yeTo6R2V0SW5zdGFuY2UoKTsKKyAg IFByb2ZpbGVNYW5hZ2VtZW50RGlzY2xhaW1lclNlcnZpY2VGYWN0b3J5OjpHZXRJbnN0YW5jZSgp OworQEAgLTExNjksOSArMTE2Niw2IEBAIHZvaWQgQ2hyb21lQnJvd3Nlck1haW5FeHRyYVBhcnRz UHJvZmlsZXMKKyAgIE9uZUdvb2dsZUJhclNlcnZpY2VGYWN0b3J5OjpHZXRJbnN0YW5jZSgpOwor ICAgT25lVGltZVBlcm1pc3Npb25zVHJhY2tlckZhY3Rvcnk6OkdldEluc3RhbmNlKCk7CisgI2Vu ZGlmCistICBpZiAob3B0aW1pemF0aW9uX2d1aWRlOjpTaG91bGRTdGFydE1vZGVsVmFsaWRhdG9y KCkpIHsKKy0gICAgb3B0aW1pemF0aW9uX2d1aWRlOjpNb2RlbFZhbGlkYXRvcktleWVkU2Vydmlj ZUZhY3Rvcnk6OkdldEluc3RhbmNlKCk7CistICB9CisgICBPcHRpbWl6YXRpb25HdWlkZUdsb2Jh bFN0YXRlSG9sZGVyS2V5ZWRTZXJ2aWNlRmFjdG9yeTo6R2V0SW5zdGFuY2UoKTsKKyAgIE9wdGlt aXphdGlvbkd1aWRlS2V5ZWRTZXJ2aWNlRmFjdG9yeTo6R2V0SW5zdGFuY2UoKTsKKyAgIE9yaWdp bktleWVkUGVybWlzc2lvbkFjdGlvblNlcnZpY2VGYWN0b3J5OjpHZXRJbnN0YW5jZSgpOworQEAg LTEyNTYsNyArMTI1MCw2IEBAIHZvaWQgQ2hyb21lQnJvd3Nlck1haW5FeHRyYVBhcnRzUHJvZmls ZXMKKyAjaWYgQlVJTERGTEFHKElTX0xJTlVYKSB8fCBCVUlMREZMQUcoSVNfTUFDKSB8fCBCVUlM REZMQUcoSVNfV0lOKQorICAgcG9saWN5OjpVc2VyUG9saWN5T2lkY1NpZ25pblNlcnZpY2VGYWN0 b3J5OjpHZXRJbnN0YW5jZSgpOworICNlbmRpZgorLSAgUHJlZGljdGlvbk1vZGVsSGFuZGxlclBy b3ZpZGVyRmFjdG9yeTo6R2V0SW5zdGFuY2UoKTsKKyAgIFByZWRpY3Rpb25TZXJ2aWNlRmFjdG9y eTo6R2V0SW5zdGFuY2UoKTsKKyAgIHByZWRpY3RvcnM6OkF1dG9jb21wbGV0ZUFjdGlvblByZWRp Y3RvckZhY3Rvcnk6OkdldEluc3RhbmNlKCk7CisgICBwcmVkaWN0b3JzOjpMb2FkaW5nUHJlZGlj dG9yRmFjdG9yeTo6R2V0SW5zdGFuY2UoKTsKK0BAIC0xMzMzLDEwICsxMzI2LDYgQEAgdm9pZCBD aHJvbWVCcm93c2VyTWFpbkV4dHJhUGFydHNQcm9maWxlcworICAgU2FmZXR5SHViTWVudU5vdGlm aWNhdGlvblNlcnZpY2VGYWN0b3J5OjpHZXRJbnN0YW5jZSgpOworICNpZiAhQlVJTERGTEFHKElT X0FORFJPSUQpCisgICBTYWZldHlIdWJIYXRzU2VydmljZUZhY3Rvcnk6OkdldEluc3RhbmNlKCk7 CistICBpZiAoZmVhdHVyZXM6OklzTWFpbk5vZGVBbm5vdGF0aW9uc0VuYWJsZWQoKSkgeworLSAg ICBzY3JlZW5fYWk6OkFYTWFpbk5vZGVBbm5vdGF0b3JDb250cm9sbGVyRmFjdG9yeTo6R2V0SW5z dGFuY2UoKTsKKy0gIH0KKy0gIHNjcmVlbl9haTo6U2NyZWVuQUlTZXJ2aWNlUm91dGVyRmFjdG9y eTo6RW5zdXJlRmFjdG9yeUJ1aWx0KCk7CisgI2VuZGlmCisgI2lmIEJVSUxERkxBRyhJU19DSFJP TUVPUykKKyAgIGlmIChhc2g6OmZlYXR1cmVzOjpJc1NjYW5uZXJFbmFibGVkKCkpIHsKK0BAIC0x NDUwLDcgKzE0MzksNiBAQCB2b2lkIENocm9tZUJyb3dzZXJNYWluRXh0cmFQYXJ0c1Byb2ZpbGVz CisgICBUb3BTaXRlc0ZhY3Rvcnk6OkdldEluc3RhbmNlKCk7CisgICB0cmFuc2xhdGU6OlRyYW5z bGF0ZVJhbmtlckZhY3Rvcnk6OkdldEluc3RhbmNlKCk7CisgI2lmICFCVUlMREZMQUcoSVNfQU5E Uk9JRCkKKy0gIHRyZWVfZml4aW5nOjpBWFRyZWVGaXhpbmdTZXJ2aWNlc1JvdXRlckZhY3Rvcnk6 OkdldEluc3RhbmNlKCk7CisgICBUcmlnZ2VyZWRQcm9maWxlUmVzZXR0ZXJGYWN0b3J5OjpHZXRJ bnN0YW5jZSgpOworICNlbmRpZgorICNpZiAhQlVJTERGTEFHKElTX0NIUk9NRU9TKSAmJiAhQlVJ TERGTEFHKElTX0FORFJPSUQpCistLS0gYS9jaHJvbWUvYnJvd3Nlci9wcm9maWxlcy9vZmZfdGhl X3JlY29yZF9wcm9maWxlX2ltcGwuY2MKKysrKyBiL2Nocm9tZS9icm93c2VyL3Byb2ZpbGVzL29m Zl90aGVfcmVjb3JkX3Byb2ZpbGVfaW1wbC5jYworQEAgLTIyMCwxMSArMjIwLDYgQEAgdm9pZCBP ZmZUaGVSZWNvcmRQcm9maWxlSW1wbDo6SW5pdCgpIHsKKyAgIC8vIEFjY2Vzc2liaWxpdHlMYWJl bHNTZXJ2aWNlIGhhcyBhIGRlZmF1bHQgcHJlZnMgYmVoYXZpb3IgaW4gaW5jb2duaXRvLgorICAg QWNjZXNzaWJpbGl0eUxhYmVsc1NlcnZpY2U6OkluaXRPZmZUaGVSZWNvcmRQcmVmcyh0aGlzKTsK KyAKKy0jaWYgIUJVSUxERkxBRyhJU19BTkRST0lEKQorLSAgLy8gVG8gYXZvaWQgdXNpbmcgYW55 IHNlcnZlci1zaWRlIHRyZWUgZml4aW5nIHNlcnZpY2UsIGl0IGlzIGRpc2FibGVkIGluCistICAv LyBJbmNvZ25pdG8gcHJvZmlsZXMuCistICB0cmVlX2ZpeGluZzo6SW5pdE9mZlRoZVJlY29yZFBy ZWZzKHRoaXMpOworLSNlbmRpZiAgLy8gIUJVSUxERkxBRyhJU19BTkRST0lEKQorIAorICAgLy8g VGhlIGFkIHNlcnZpY2UgbWlnaHQgbm90IGJlIGF2YWlsYWJsZSBmb3Igc29tZSBpcnJlZ3VsYXIg cHJvZmlsZXMsIGxpa2UgdGhlCisgICAvLyBTeXN0ZW0gUHJvZmlsZS4KKy0tLSBhL2Nocm9tZS9i cm93c2VyL3Byb2ZpbGVzL3Byb2ZpbGVfaW1wbC5jYworKysrIGIvY2hyb21lL2Jyb3dzZXIvcHJv ZmlsZXMvcHJvZmlsZV9pbXBsLmNjCitAQCAtODU5LDExICs4NTksNiBAQCB2b2lkIFByb2ZpbGVJ bXBsOjpEb0ZpbmFsSW5pdChDcmVhdGVNb2RlCisgICAvLyBUaGUgcGFzc3dvcmQgc2V0dGluZ3Mg c2VydmljZSBuZWVkcyB0byBzdGFydCBsaXN0ZW5pbmcgdG8gc2V0dGluZ3MKKyAgIC8vIGNoYW5n ZXMgZnJvbSBHb29nbGUgTW9iaWxlIFNlcnZpY2VzLCBhcyBlYXJseSBhcyBwb3NzaWJsZS4KKyAg IFBhc3N3b3JkTWFuYWdlclNldHRpbmdzU2VydmljZUZhY3Rvcnk6OkdldEZvclByb2ZpbGUodGhp cyk7CistI2Vsc2UKKy0KKy0gIGlmIChmZWF0dXJlczo6SXNNYWluTm9kZUFubm90YXRpb25zRW5h YmxlZCgpKSB7CistICAgIHNjcmVlbl9haTo6QVhNYWluTm9kZUFubm90YXRvckNvbnRyb2xsZXJG YWN0b3J5OjpHZXRGb3JQcm9maWxlKHRoaXMpOworLSAgfQorICNlbmRpZiAgLy8gQlVJTERGTEFH KElTX0FORFJPSUQpCisgCisgICAvLyBUaGUgYW5ub3VuY2VtZW50IG5vdGlmaWNhdGlvbiAgc2Vy dmljZSBtaWdodCBub3QgYmUgYXZhaWxhYmxlIGZvciBzb21lCistLS0gYS9jaHJvbWUvYnJvd3Nl ci9wcm9maWxlcy9wcm9maWxlX21hbmFnZXIuY2MKKysrKyBiL2Nocm9tZS9icm93c2VyL3Byb2Zp bGVzL3Byb2ZpbGVfbWFuYWdlci5jYworQEAgLTUxLDcgKzUxLDYgQEAKKyAjaW5jbHVkZSAiY2hy b21lL2Jyb3dzZXIvYnVpbGRmbGFncy5oIgorICNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9saWZl dGltZS9hcHBsaWNhdGlvbl9saWZldGltZS5oIgorICNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9u YXZpZ2F0aW9uX3ByZWRpY3Rvci9uYXZpZ2F0aW9uX3ByZWRpY3Rvcl9rZXllZF9zZXJ2aWNlX2Zh Y3RvcnkuaCIKKy0jaW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIvbmF2aWdhdGlvbl9wcmVkaWN0b3Iv cHJlbG9hZGluZ19tb2RlbF9rZXllZF9zZXJ2aWNlX2ZhY3RvcnkuaCIKKyAjaW5jbHVkZSAiY2hy b21lL2Jyb3dzZXIvcHJlZnMvaW5jb2duaXRvX21vZGVfcHJlZnMuaCIKKyAjaW5jbHVkZSAiY2hy b21lL2Jyb3dzZXIvcHJvZmlsZXMvZGVsZXRlX3Byb2ZpbGVfaGVscGVyLmgiCisgI2luY2x1ZGUg ImNocm9tZS9icm93c2VyL3Byb2ZpbGVzL2tlZXBfYWxpdmUvcHJvZmlsZV9rZWVwX2FsaXZlX3R5 cGVzLmgiCitAQCAtMTYyNSw5ICsxNjI0LDYgQEAgdm9pZCBQcm9maWxlTWFuYWdlcjo6RG9GaW5h bEluaXRGb3JTZXJ2aQorICAgLy8gRW5zdXJlIE5hdmlnYXRpb25QcmVkaWN0b3JLZXllZFNlcnZp Y2UgaXMgc3RhcnRlZC4KKyAgIE5hdmlnYXRpb25QcmVkaWN0b3JLZXllZFNlcnZpY2VGYWN0b3J5 OjpHZXRGb3JQcm9maWxlKHByb2ZpbGUpOworIAorLSAgLy8gRW5zdXJlIFByZWxvYWRpbmdNb2Rl bEtleWVkU2VydmljZSBpcyBzdGFydGVkLgorLSAgUHJlbG9hZGluZ01vZGVsS2V5ZWRTZXJ2aWNl RmFjdG9yeTo6R2V0Rm9yUHJvZmlsZShwcm9maWxlKTsKKy0KKyAgIElkZW50aXR5TWFuYWdlckZh Y3Rvcnk6OkdldEZvclByb2ZpbGUocHJvZmlsZSktPk9uTmV0d29ya0luaXRpYWxpemVkKCk7Cisg ICBBY2NvdW50UmVjb25jaWxvckZhY3Rvcnk6OkdldEZvclByb2ZpbGUocHJvZmlsZSk7CisgI2lm IEJVSUxERkxBRyhJU19BTkRST0lEKQorLS0tIGEvY2hyb21lL2Jyb3dzZXIvcmVzb3VyY2VzL3Bk Zi9wZGZfdmlld2VyLmh0bWwKKysrKyBiL2Nocm9tZS9icm93c2VyL3Jlc291cmNlcy9wZGYvcGRm X3ZpZXdlci5odG1sCitAQCAtMTA2LDEwICsxMDYsNiBAQCBpbXBvcnQge0Fubm90YXRpb25Nb2Rl fSBmcm9tICcuL2NvbnN0YW50CisgICAgICAgPC9jci1wYWdlLXNlbGVjdG9yPgorICAgICBgIDog Jyd9CisgICA8L2lmPgorLSAgPGNyLXRvYXN0IGlkPSJzZWFyY2hpZnlQcm9ncmVzcyI+CistICAg IDxkaXYgY2xhc3M9InNwaW5uZXIiPjwvZGl2PgorLSAgICA8c3Bhbj4kaTE4bntzZWFyY2hpZnlJ blByb2dyZXNzfTwvc3Bhbj4KKy0gIDwvY3ItdG9hc3Q+CisgPC9kaXY+CisgCisgJHt0aGlzLnNo b3dFcnJvckRpYWxvZyA/IGh0bWxgPHZpZXdlci1lcnJvci1kaWFsb2cgaWQ9ImVycm9yLWRpYWxv ZyI+CistLS0gYS9jaHJvbWUvYnJvd3Nlci9za2lsbHMvQlVJTEQuZ24KKysrKyBiL2Nocm9tZS9i cm93c2VyL3NraWxscy9CVUlMRC5nbgorQEAgLTU5LDEzICs1OSw5IEBAIHNvdXJjZV9zZXQoInB1 YmxpYyIpIHsKKyBzb3VyY2Vfc2V0KCJ1aSIpIHsKKyAgIHNvdXJjZXMgPSBbCisgICAgICJza2ls bHNfZGlhbG9nX2xhdW5jaGVyLmNjIiwKKy0gICAgInNraWxsc191cGRhdGVfb2JzZXJ2ZXIuY2Mi LAorLSAgICAic2tpbGxzX3VwZGF0ZV9vYnNlcnZlci5oIiwKKyAgIF0KKyAgIGlmICghaXNfYW5k cm9pZCkgeworICAgICBzb3VyY2VzICs9IFsKKy0gICAgICAic2tpbGxzX3VpX3RhYl9jb250cm9s bGVyLmNjIiwKKy0gICAgICAic2tpbGxzX3VpX3RhYl9jb250cm9sbGVyLmgiLAorICAgICAgICJz a2lsbHNfdWlfd2luZG93X2NvbnRyb2xsZXIuY2MiLAorICAgICBdCisgICB9CistLS0gYS9jaHJv bWUvYnJvd3Nlci91aS9CVUlMRC5nbgorKysrIGIvY2hyb21lL2Jyb3dzZXIvdWkvQlVJTEQuZ24K K0BAIC0xNTk1LDggKzE1OTUsNiBAQCBzdGF0aWNfbGlicmFyeSgidWkiKSB7CisgICAgICAgIi8v Y2hyb21lL2Jyb3dzZXIvcmVnaW9uYWxfY2FwYWJpbGl0aWVzIiwKKyAgICAgICAiLy9jaHJvbWUv YnJvd3Nlci9zYWZlX2Jyb3dzaW5nIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci9zYWZlX2Jy b3dzaW5nOmFkdmFuY2VkX3Byb3RlY3Rpb24iLAorLSAgICAgICIvL2Nocm9tZS9icm93c2VyL3Nj cmVlbl9haTpzY3JlZW5fYWlfaW5zdGFsbF9zdGF0ZSIsCistICAgICAgIi8vY2hyb21lL2Jyb3dz ZXIvc2NyZWVuX2FpOnNjcmVlbl9haV9zZXJ2aWNlX3JvdXRlcl9mYWN0b3J5IiwKKyAgICAgICAi Ly9jaHJvbWUvYnJvd3Nlci9zbWFydF9jYXJkIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci90 YWJfZ3JvdXBfc3luYzp1dGlscyIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvdGhlbWVzIiwK K0BAIC0yNDE0LDcgKzI0MTIsNiBAQCBzdGF0aWNfbGlicmFyeSgidWkiKSB7CisgICAgICAgIi8v Y2hyb21lL2Jyb3dzZXIvcG9saWN5Om9uYyIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcG9s aWN5OnN5c3RlbV9mZWF0dXJlc19kaXNhYmxlX2xpc3QiLAorICAgICAgICIvL2Nocm9tZS9icm93 c2VyL3B1c2hfbm90aWZpY2F0aW9uIiwKKy0gICAgICAiLy9jaHJvbWUvYnJvd3Nlci9zY3JlZW5f YWkvcHVibGljOm9wdGljYWxfY2hhcmFjdGVyX3JlY29nbml6ZXIiLAorICAgICAgICIvL2Nocm9t ZS9icm93c2VyL3VpL2FzaC9hcHBfYWNjZXNzIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci91 aS9hc2gvYXJjIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci91aS9hc2gvYXJjL2FyY19hcHBf ZGlhbG9nX3ZpZXciLAorQEAgLTQ5MTIsNyArNDkwOSw2IEBAIHN0YXRpY19saWJyYXJ5KCJ1aSIp IHsKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci91aS93YWFwOndhYXBfdXRpbHMiLAorICAgICAg ICIvL2Nocm9tZS9icm93c2VyL3VpL3dlYmF1dGhuOmltcGwiLAorICAgICAgICIvL2Nocm9tZS9i cm93c2VyL3VpL3dlYnVpL2FwcF9zZXJ2aWNlX2ludGVybmFscyIsCistICAgICAgIi8vY2hyb21l L2Jyb3dzZXIvdWkvd2VidWkvYXV0b2ZpbGxfbWxfaW50ZXJuYWxzIiwKKyAgICAgICAiLy9jaHJv bWUvYnJvd3Nlci91aS93ZWJ1aS9jb250ZW50X2Fubm90YXRvcl9pbnRlcm5hbHMiLAorICAgICAg ICIvL2Nocm9tZS9icm93c2VyL3VpL3dlYnVpL3NpZGVfcGFuZWwvY3VzdG9taXplX2Nocm9tZSIs CisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvdWkvd2luZG93X25hbWVfcHJvbXB0IiwKKy0tLSBh L2Nocm9tZS9icm93c2VyL3VpL3BkZi9CVUlMRC5nbgorKysrIGIvY2hyb21lL2Jyb3dzZXIvdWkv cGRmL0JVSUxELmduCitAQCAtNiw3ICs2LDYgQEAgaW1wb3J0KCIvL3BkZi9mZWF0dXJlcy5nbmki KQorIGltcG9ydCgiLy9zZXJ2aWNlcy9zY3JlZW5fYWkvYnVpbGRmbGFncy9mZWF0dXJlcy5nbmki KQorIAorIGFzc2VydChlbmFibGVfcGRmKQorLWFzc2VydChlbmFibGVfc2NyZWVuX2FpX3NlcnZp Y2UpCisgCisgc291cmNlX3NldCgicGRmIikgeworICAgc291cmNlcyA9IFsKK0BAIC0xNyw3ICsx Niw2IEBAIHNvdXJjZV9zZXQoInBkZiIpIHsKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvZG93bmxv YWQiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9nbGljIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dz ZXIvcGRmIiwKKy0gICAgIi8vY2hyb21lL2Jyb3dzZXIvc2NyZWVuX2FpOnNjcmVlbl9haV9pbnN0 YWxsX3N0YXRlIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvdWkvdGFiX2NvbnRlbnRzIiwKKyAg ICAgIi8vY2hyb21lL2Jyb3dzZXIvdWkvdXNlcl9lZHVjYXRpb24iLAorICAgICAiLy9jaHJvbWUv Y29tbW9uIiwKKy0tLSBhL2Nocm9tZS9icm93c2VyL3VpL3BkZi9jaHJvbWVfcGRmX2RvY3VtZW50 X2hlbHBlcl9jbGllbnQuY2MKKysrKyBiL2Nocm9tZS9icm93c2VyL3VpL3BkZi9jaHJvbWVfcGRm X2RvY3VtZW50X2hlbHBlcl9jbGllbnQuY2MKK0BAIC0xNDcsMjIgKzE0NywzIEBAIHZvaWQgQ2hy b21lUERGRG9jdW1lbnRIZWxwZXJDbGllbnQ6OlNldFAKKyAgIH0KKyB9CisgCistdm9pZCBDaHJv bWVQREZEb2N1bWVudEhlbHBlckNsaWVudDo6T25TZWFyY2hpZnlTdGFydGVkKAorLSAgICBjb250 ZW50OjpSZW5kZXJGcmFtZUhvc3QqIHJlbmRlcl9mcmFtZV9ob3N0KSB7CistICAvLyBTaG93IHRo ZSBwcm9tbyBvbmx5IHdoZW4gU2NyZWVuQUkgY29tcG9uZW50IGlzIGF2YWlsYWJsZSBhbmQgT0NS IGNhbiBiZQorLSAgLy8gZG9uZS4KKy0gIGlmICghc2NyZWVuX2FpOjpTY3JlZW5BSUluc3RhbGxT dGF0ZTo6R2V0SW5zdGFuY2UoKS0+SXNDb21wb25lbnRBdmFpbGFibGUoKSkgeworLSAgICByZXR1 cm47CistICB9CistICBjb250ZW50OjpXZWJDb250ZW50cyogd2ViX2NvbnRlbnRzID0gR2V0V2Vi Q29udGVudHNUb1VzZShyZW5kZXJfZnJhbWVfaG9zdCk7CistICBpZiAoIU1heWJlU2hvd0ZlYXR1 cmVQcm9tbyhmZWF0dXJlX2VuZ2FnZW1lbnQ6OmtJUEhQZGZTZWFyY2hpZnlGZWF0dXJlLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2ViX2NvbnRlbnRzKSkgeworLSAgICByZXR1cm47 CistICB9CistICBhdXRvKiBjb25zdCB0YWIgPSB0YWJzOjpUYWJJbnRlcmZhY2U6Ok1heWJlR2V0 RnJvbUNvbnRlbnRzKHdlYl9jb250ZW50cyk7CistICBpZiAoIXRhYikgeworLSAgICByZXR1cm47 CistICB9CistICB0YWJfc3Vic2NyaXB0aW9uc18ucHVzaF9iYWNrKHRhYi0+UmVnaXN0ZXJXaWxs RGVhY3RpdmF0ZSgKKy0gICAgICBiYXNlOjpCaW5kUmVwZWF0aW5nKCZNYXliZUhpZGVTZWFyY2hp ZnlGZWF0dXJlUHJvbW8pKSk7CistfQorLS0tIGEvY2hyb21lL2Jyb3dzZXIvdWkvcGRmL2Nocm9t ZV9wZGZfZG9jdW1lbnRfaGVscGVyX2NsaWVudC5oCisrKysgYi9jaHJvbWUvYnJvd3Nlci91aS9w ZGYvY2hyb21lX3BkZl9kb2N1bWVudF9oZWxwZXJfY2xpZW50LmgKK0BAIC0yNyw3ICsyNyw2IEBA IGNsYXNzIENocm9tZVBERkRvY3VtZW50SGVscGVyQ2xpZW50IDogcHUKKyAgIHZvaWQgT25TYXZl VVJMKCkgb3ZlcnJpZGU7CisgICB2b2lkIFNldFBsdWdpbkNhblNhdmUoY29udGVudDo6UmVuZGVy RnJhbWVIb3N0KiByZW5kZXJfZnJhbWVfaG9zdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBi b29sIGNhbl9zYXZlKSBvdmVycmlkZTsKKy0gIHZvaWQgT25TZWFyY2hpZnlTdGFydGVkKGNvbnRl bnQ6OlJlbmRlckZyYW1lSG9zdCogcmVuZGVyX2ZyYW1lX2hvc3QpIG92ZXJyaWRlOworIAorICAg Ly8gSG9sZHMgc3Vic2NyaXB0aW9ucyBmb3IgVGFiSW50ZXJmYWNlIGNhbGxiYWNrcy4KKyAgIHN0 ZDo6dmVjdG9yPGJhc2U6OkNhbGxiYWNrTGlzdFN1YnNjcmlwdGlvbj4gdGFiX3N1YnNjcmlwdGlv bnNfOworLS0tIGEvY2hyb21lL2Jyb3dzZXIvdWkvdGFicy90YWJfZmVhdHVyZXMuY2MKKysrKyBi L2Nocm9tZS9icm93c2VyL3VpL3RhYnMvdGFiX2ZlYXR1cmVzLmNjCitAQCAtMzk0LDExICszOTQs NiBAQCB2b2lkIFRhYkZlYXR1cmVzOjpJbml0KFRhYkludGVyZmFjZSYgdGFiCisgICAgIGFjdG9y X3RhYl9kYXRhXyA9CisgICAgICAgICBHZXRVc2VyRGF0YUZhY3RvcnkoKS5DcmVhdGVJbnN0YW5j ZTxhY3Rvcjo6QWN0b3JUYWJEYXRhPih0YWIsICZ0YWIpOworIAorLSAgICBpZiAoYmFzZTo6RmVh dHVyZUxpc3Q6OklzRW5hYmxlZChmZWF0dXJlczo6a1NraWxsc0VuYWJsZWQpKSB7CistICAgICAg c2tpbGxzX3VpX3RhYl9jb250cm9sbGVyXyA9CistICAgICAgICAgIEdldFVzZXJEYXRhRmFjdG9y eSgpLkNyZWF0ZUluc3RhbmNlPHNraWxsczo6U2tpbGxzVWlUYWJDb250cm9sbGVyPigKKy0gICAg ICAgICAgICAgIHRhYiwgdGFiKTsKKy0gICAgfQorIAorICAgICBpZiAoYWNjZXNzaWJpbGl0eV9h bm5vdGF0b3I6OgorICAgICAgICAgICAgIENvbnRlbnRBbm5vdGF0b3JTZXJ2aWNlKiBjb250ZW50 X2Fubm90YXRvcl9zZXJ2aWNlID0KK0BAIC01NzQsMTAgKzU2OSw2IEBAIHZvaWQgVGFiRmVhdHVy ZXM6OkluaXQoVGFiSW50ZXJmYWNlJiB0YWIKKyAjZW5kaWYKKyAKKyAjaWYgIUJVSUxERkxBRyhJ U19BTkRST0lEKQorLSAgaWYgKGJhc2U6OkZlYXR1cmVMaXN0OjpJc0VuYWJsZWQoZmVhdHVyZXM6 OmtTa2lsbHNFbmFibGVkKSkgeworLSAgICBza2lsbHNfdXBkYXRlX29ic2VydmVyXyA9CistICAg ICAgICBzdGQ6Om1ha2VfdW5pcXVlPHNraWxsczo6U2tpbGxzVXBkYXRlT2JzZXJ2ZXI+KHRhYik7 CistICB9CisgICBpZiAoYmFzZTo6RmVhdHVyZUxpc3Q6OklzRW5hYmxlZChmZWF0dXJlczo6a0lu ZGlnbykpIHsKKyAgICAgaW5kaWdvX3BhZ2VfYWN0aW9uX2NvbnRyb2xsZXJfID0KKyAgICAgICAg IHN0ZDo6bWFrZV91bmlxdWU8aW5kaWdvOjpJbmRpZ29QYWdlQWN0aW9uQ29udHJvbGxlcj4oCist LS0gYS9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy91c2VyX2VkdWNhdGlvbi9icm93c2VyX3VzZXJf ZWR1Y2F0aW9uX3NlcnZpY2UuY2MKKysrKyBiL2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3VzZXJf ZWR1Y2F0aW9uL2Jyb3dzZXJfdXNlcl9lZHVjYXRpb25fc2VydmljZS5jYworQEAgLTkwNyw0MCAr OTA3LDYgQEAgdm9pZCBNYXliZVJlZ2lzdGVyQ2hyb21lRmVhdHVyZVByb21vcygKKyAgICAgICAg ICAgICAgICAgICAgICAgICJUcmlnZ2VyZWQgd2hlbiB0aGUgUERGIFZpZXdlciBvcGVucy4iKSkp OworICNlbmRpZgorIAorLSAgLy8ga0lQSFBkZlNlYXJjaGlmeUZlYXR1cmU6CistICByZWdpc3Ry eS5SZWdpc3RlckZlYXR1cmUoc3RkOjptb3ZlKAorLSAgICAgIEZlYXR1cmVQcm9tb1NwZWNpZmlj YXRpb246OkNyZWF0ZUZvclRvYXN0UHJvbW8oCistICAgICAgICAgIGZlYXR1cmVfZW5nYWdlbWVu dDo6a0lQSFBkZlNlYXJjaGlmeUZlYXR1cmUsCistICAgICAgICAgIGtCcm93c2VyRGlhbG9nQW5j aG9yRWxlbWVudElkLCBJRFNfUERGX1NFQVJDSElGWV9JUEhfQk9EWSwKKy0gICAgICAgICAgSURT X1BERl9TRUFSQ0hJRllfSVBIX0JPRFlfU0NSRUVOX1JFQURFUiwKKy0gICAgICAgICAgRmVhdHVy ZVByb21vU3BlY2lmaWNhdGlvbjo6QWNjZWxlcmF0b3JJbmZvKCkpCistICAgICAgICAgIC5TZXRC dWJibGVBcnJvdyhIZWxwQnViYmxlQXJyb3c6OmtOb25lKQorLSAgICAgICAgICAuU2V0QnViYmxl VGl0bGVUZXh0KElEU19QREZfU0VBUkNISUZZX0lQSF9USVRMRSkKKy0gICAgICAgICAgLlNldE1l dGFkYXRhKDEzMiwgInJoYWxhdmF0aUBjaHJvbWl1bS5vcmciLAorLSAgICAgICAgICAgICAgICAg ICAgICAgIlRyaWdnZXJlZCBvbmNlIHdoZW4gdXNlciBvcGVucyBhIFBERiB3aGljaCBnZXRzIE9D UmVkLiIpCistICAgICAgICAgIC5TZXRBbmNob3JFbGVtZW50RmlsdGVyKGJhc2U6OkJpbmRSZXBl YXRpbmcoCistICAgICAgICAgICAgICBbXShjb25zdCB1aTo6RWxlbWVudFRyYWNrZXI6OkVsZW1l bnRMaXN0JiBlbGVtZW50cykKKy0gICAgICAgICAgICAgICAgICAtPiB1aTo6VHJhY2tlZEVsZW1l bnQqIHsKKy0gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRzLmVtcHR5KCkpIHsKKy0gICAgICAg ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICAvLyBFbnN1cmUgYSBzZWFyY2hpZmllZCBQREYgaXMgdmlzaWJsZSBiZWZvcmUgc2hv d2luZyB0aGUgSVBILgorLSAgICAgICAgICAgICAgICBhdXRvKiBjb25zdCBicm93c2VyX3ZpZXcg PQorLSAgICAgICAgICAgICAgICAgICAgdmlld3M6OkVsZW1lbnRUcmFja2VyVmlld3M6OkdldElu c3RhbmNlKCkKKy0gICAgICAgICAgICAgICAgICAgICAgICAtPkdldEZpcnN0TWF0Y2hpbmdWaWV3 QXM8QnJvd3NlclZpZXc+KAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBrQnJvd3NlclZp ZXdFbGVtZW50SWQsIGVsZW1lbnRzWzBdLT5jb250ZXh0KCkpOworLSAgICAgICAgICAgICAgICBz dGQ6OnZlY3RvcjxDb250ZW50c1dlYlZpZXcqPiBjb250ZW50c193ZWJfdmlld3MgPQorLSAgICAg ICAgICAgICAgICAgICAgYnJvd3Nlcl92aWV3LT5HZXRBbGxWaXNpYmxlQ29udGVudHNXZWJWaWV3 cygpOworLSAgICAgICAgICAgICAgICBmb3IgKGF1dG8qIGNvbnRlbnRzX3dlYl92aWV3IDogY29u dGVudHNfd2ViX3ZpZXdzKSB7CistICAgICAgICAgICAgICAgICAgYXV0byogcGRmX2RvY19oZWxw ZXIgPQorLSAgICAgICAgICAgICAgICAgICAgICBwZGY6OlBERkRvY3VtZW50SGVscGVyOjpNYXli ZUdldEZvcldlYkNvbnRlbnRzKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHNf d2ViX3ZpZXctPkdldFdlYkNvbnRlbnRzKCkpOworLSAgICAgICAgICAgICAgICAgIGlmIChwZGZf ZG9jX2hlbHBlciAmJiBwZGZfZG9jX2hlbHBlci0+U2VhcmNoaWZ5U3RhcnRlZCgpKSB7CistICAg ICAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudHNbMF07CistICAgICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwor LSAgICAgICAgICAgICAgfSkpKSk7CisgCisgICAvLyBrSVBITGVuc092ZXJsYXlGZWF0dXJlOgor ICAgcmVnaXN0cnkuUmVnaXN0ZXJGZWF0dXJlKHN0ZDo6bW92ZSgKKy0tLSBhL2Nocm9tZS9icm93 c2VyL3VpL3dlYnVpL0JVSUxELmduCisrKysgYi9jaHJvbWUvYnJvd3Nlci91aS93ZWJ1aS9CVUlM RC5nbgorQEAgLTc4LDcgKzc4LDYgQEAgc291cmNlX3NldCgiY29uZmlncyIpIHsKKyAgICAgICAi Ly9jaHJvbWUvYnJvd3Nlci9nbGljL3NlbGVjdGlvbiIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dz ZXIvdWkvd2VidWkvYWNjZXNzX2NvZGVfY2FzdCIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIv dWkvd2VidWkvYXBwX3NlcnZpY2VfaW50ZXJuYWxzIiwKKy0gICAgICAiLy9jaHJvbWUvYnJvd3Nl ci91aS93ZWJ1aS9hdXRvZmlsbF9tbF9pbnRlcm5hbHMiLAorICAgICAgICIvL2Nocm9tZS9icm93 c2VyL3VpL3dlYnVpL2NvbG9yX3BpcGVsaW5lX2ludGVybmFscyIsCisgICAgICAgIi8vY2hyb21l L2Jyb3dzZXIvdWkvd2VidWkvY29udGVudF9hbm5vdGF0b3JfaW50ZXJuYWxzIiwKKyAgICAgICAi Ly9jaHJvbWUvYnJvd3Nlci91aS93ZWJ1aS9kYXRhX3NoYXJpbmciLAorLS0tIGEvY2hyb21lL2Jy b3dzZXIvdWkvd2VidWkvY2hyb21lX3dlYl91aV9jb25maWdzLmNjCisrKysgYi9jaHJvbWUvYnJv d3Nlci91aS93ZWJ1aS9jaHJvbWVfd2ViX3VpX2NvbmZpZ3MuY2MKK0BAIC0zMjQsNyArMzI0LDYg QEAgdm9pZCBSZWdpc3RlckNocm9tZVdlYlVJQ29uZmlncygpIHsKKyAgICAgICAgICAgY29udGVu dF9hbm5vdGF0b3JfaW50ZXJuYWxzOjpDb250ZW50QW5ub3RhdG9ySW50ZXJuYWxzVUlDb25maWc+ KCkpOworICAgbWFwLkFkZFdlYlVJQ29uZmlnKHN0ZDo6bWFrZV91bmlxdWU8YWN0b3I6OnVpOjpB Y3Rvck92ZXJsYXlVSUNvbmZpZz4oKSk7CisgICBtYXAuQWRkV2ViVUlDb25maWcoc3RkOjptYWtl X3VuaXF1ZTxBcHBTZXJ2aWNlSW50ZXJuYWxzVUlDb25maWc+KCkpOworLSAgbWFwLkFkZFdlYlVJ Q29uZmlnKHN0ZDo6bWFrZV91bmlxdWU8QXV0b2ZpbGxNbEludGVybmFsc1VJQ29uZmlnPigpKTsK KyAgIG1hcC5BZGRXZWJVSUNvbmZpZyhzdGQ6Om1ha2VfdW5pcXVlPG1lZGlhX3JvdXRlcjo6QWNj ZXNzQ29kZUNhc3RVSUNvbmZpZz4oKSk7CisgICBtYXAuQWRkV2ViVUlDb25maWcoc3RkOjptYWtl X3VuaXF1ZTxCb29rbWFya3NTaWRlUGFuZWxVSUNvbmZpZz4oKSk7CisgICBtYXAuQWRkV2ViVUlD b25maWcoc3RkOjptYWtlX3VuaXF1ZTxCb29rbWFya3NVSUNvbmZpZz4oKSk7CistLS0gYS9jaHJv bWUvYnJvd3Nlci91aS93ZWJ1aS9zZXR0aW5ncy9hY2Nlc3NpYmlsaXR5X21haW5faGFuZGxlci5j YworKysrIGIvY2hyb21lL2Jyb3dzZXIvdWkvd2VidWkvc2V0dGluZ3MvYWNjZXNzaWJpbGl0eV9t YWluX2hhbmRsZXIuY2MKK0BAIC0zNSwxMSArMzUsNiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlNYWlu SGFuZGxlcjo6UmVnaXN0ZXJNCisgICAgICAgYmFzZTo6QmluZFJlcGVhdGluZygKKyAgICAgICAg ICAgJkFjY2Vzc2liaWxpdHlNYWluSGFuZGxlcjo6SGFuZGxlQ2hlY2tBY2Nlc3NpYmlsaXR5SW1h Z2VMYWJlbHMsCisgICAgICAgICAgIGJhc2U6OlVucmV0YWluZWQodGhpcykpKTsKKy0gIHdlYl91 aSgpLT5SZWdpc3Rlck1lc3NhZ2VDYWxsYmFjaygKKy0gICAgICAiZ2V0U2NyZWVuQWlJbnN0YWxs U3RhdGUiLAorLSAgICAgIGJhc2U6OkJpbmRSZXBlYXRpbmcoCistICAgICAgICAgICZBY2Nlc3Np YmlsaXR5TWFpbkhhbmRsZXI6OkhhbmRsZUdldFNjcmVlbkFJSW5zdGFsbFN0YXRlLAorLSAgICAg ICAgICBiYXNlOjpVbnJldGFpbmVkKHRoaXMpKSk7CisgfQorIAorIHZvaWQgQWNjZXNzaWJpbGl0 eU1haW5IYW5kbGVyOjpPbkphdmFzY3JpcHRBbGxvd2VkKCkgeworQEAgLTUwLDExICs0NSw2IEBA IHZvaWQgQWNjZXNzaWJpbGl0eU1haW5IYW5kbGVyOjpPbkphdmFzY3IKKyAgICAgICAgICAgYmFz ZTo6VW5yZXRhaW5lZCh0aGlzKSkpOworICNlbmRpZiAgLy8gQlVJTERGTEFHKElTX0NIUk9NRU9T KQorIAorLSAgaWYgKGZlYXR1cmVzOjpJc01haW5Ob2RlQW5ub3RhdGlvbnNFbmFibGVkKCkpIHsK Ky0gICAgQ0hFQ0soIWNvbXBvbmVudF9yZWFkeV9vYnNlcnZlcl8uSXNPYnNlcnZpbmcoKSk7Cist ICAgIGNvbXBvbmVudF9yZWFkeV9vYnNlcnZlcl8uT2JzZXJ2ZSgKKy0gICAgICAgIHNjcmVlbl9h aTo6U2NyZWVuQUlJbnN0YWxsU3RhdGU6OkdldEluc3RhbmNlKCkpOworLSAgfQorIH0KKyAKKyB2 b2lkIEFjY2Vzc2liaWxpdHlNYWluSGFuZGxlcjo6T25KYXZhc2NyaXB0RGlzYWxsb3dlZCgpIHsK K0BAIC02MiwzNSArNTIsNiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlNYWluSGFuZGxlcjo6T25KYXZh c2NyCisgICBhY2Nlc3NpYmlsaXR5X3N1YnNjcmlwdGlvbl8gPSB7fTsKKyAjZW5kaWYgIC8vIEJV SUxERkxBRyhJU19DSFJPTUVPUykKKyAKKy0gIGlmIChmZWF0dXJlczo6SXNNYWluTm9kZUFubm90 YXRpb25zRW5hYmxlZCgpKSB7CistICAgIGNvbXBvbmVudF9yZWFkeV9vYnNlcnZlcl8uUmVzZXQo KTsKKy0gIH0KKy19CistCistdm9pZCBBY2Nlc3NpYmlsaXR5TWFpbkhhbmRsZXI6OkRvd25sb2Fk UHJvZ3Jlc3NDaGFuZ2VkKGRvdWJsZSBwcm9ncmVzcykgeworLSAgQ0hFQ0tfR0UocHJvZ3Jlc3Ms IDAuMCk7CistICBDSEVDS19MRShwcm9ncmVzcywgMS4wKTsKKy0gIGNvbnN0IGludCBwcm9ncmVz c19udW0gPSBwcm9ncmVzcyAqIDEwMDsKKy0gIEZpcmVXZWJVSUxpc3RlbmVyKCJzY3JlZW4tYWkt ZG93bmxvYWRpbmctcHJvZ3Jlc3MtY2hhbmdlZCIsCistICAgICAgICAgICAgICAgICAgICBiYXNl OjpWYWx1ZShwcm9ncmVzc19udW0pKTsKKy19CistCistdm9pZCBBY2Nlc3NpYmlsaXR5TWFpbkhh bmRsZXI6OlN0YXRlQ2hhbmdlZCgKKy0gICAgc2NyZWVuX2FpOjpTY3JlZW5BSUluc3RhbGxTdGF0 ZTo6U3RhdGUgc3RhdGUpIHsKKy0gIGJhc2U6OlZhbHVlIHN0YXRlX3ZhbHVlID0gYmFzZTo6VmFs dWUoc3RhdGljX2Nhc3Q8aW50PihzdGF0ZSkpOworLSAgRmlyZVdlYlVJTGlzdGVuZXIoInNjcmVl bi1haS1zdGF0ZS1jaGFuZ2VkIiwgc3RhdGVfdmFsdWUpOworLX0KKy0KKy12b2lkIEFjY2Vzc2li aWxpdHlNYWluSGFuZGxlcjo6SGFuZGxlR2V0U2NyZWVuQUlJbnN0YWxsU3RhdGUoCistICAgIGNv bnN0IGJhc2U6Okxpc3RWYWx1ZSYgYXJncykgeworLSAgQ0hFQ0tfRVEoMVUsIGFyZ3Muc2l6ZSgp KTsKKy0gIGNvbnN0IGJhc2U6OlZhbHVlJiBjYWxsYmFja19pZCA9IGFyZ3NbMF07CistICBBbGxv d0phdmFzY3JpcHQoKTsKKy0gIC8vIEdldCB0aGUgY3VycmVudCBpbnN0YWxsIHN0YXRlIGFuZCBz ZW5kIGl0IGJhY2sgdG8gYSBVSSBjYWxsYmFjay4KKy0gIHNjcmVlbl9haTo6U2NyZWVuQUlJbnN0 YWxsU3RhdGU6OlN0YXRlIGN1cnJlbnRfaW5zdGFsbF9zdGF0ZSA9CistICAgICAgc2NyZWVuX2Fp OjpTY3JlZW5BSUluc3RhbGxTdGF0ZTo6R2V0SW5zdGFuY2UoKS0+Z2V0X3N0YXRlKCk7CistICBS ZXNvbHZlSmF2YXNjcmlwdENhbGxiYWNrKAorLSAgICAgIGNhbGxiYWNrX2lkLCBiYXNlOjpWYWx1 ZShzdGF0aWNfY2FzdDxpbnQ+KGN1cnJlbnRfaW5zdGFsbF9zdGF0ZSkpKTsKKyB9CisgCisgdm9p ZCBBY2Nlc3NpYmlsaXR5TWFpbkhhbmRsZXI6OkhhbmRsZUdldFNjcmVlblJlYWRlclN0YXRlKAor LS0tIGEvY2hyb21lL2Jyb3dzZXIvdWkvd2VidWkvc2V0dGluZ3MvYWNjZXNzaWJpbGl0eV9tYWlu X2hhbmRsZXIuaAorKysrIGIvY2hyb21lL2Jyb3dzZXIvdWkvd2VidWkvc2V0dGluZ3MvYWNjZXNz aWJpbGl0eV9tYWluX2hhbmRsZXIuaAorQEAgLTE5LDggKzE5LDcgQEAgbmFtZXNwYWNlIHNldHRp bmdzIHsKKyAvLyBTZXR0aW5ncyBoYW5kbGVyIGZvciB0aGUgbWFpbiBhY2Nlc3NpYmlsaXR5IHNl dHRpbmdzIHBhZ2UsCisgLy8gY2hyb21lOi8vc2V0dGluZ3MvYWNjZXNzaWJpbGl0eS4KKyBjbGFz cyBBY2Nlc3NpYmlsaXR5TWFpbkhhbmRsZXIKKy0gICAgOiBwdWJsaWMgOjpzZXR0aW5nczo6U2V0 dGluZ3NQYWdlVUlIYW5kbGVyLAorLSAgICAgIHB1YmxpYyBzY3JlZW5fYWk6OlNjcmVlbkFJSW5z dGFsbFN0YXRlOjpPYnNlcnZlciB7CisrICAgIDogcHVibGljIDo6c2V0dGluZ3M6OlNldHRpbmdz UGFnZVVJSGFuZGxlciB7CisgIHB1YmxpYzoKKyAgIEFjY2Vzc2liaWxpdHlNYWluSGFuZGxlcigp OworICAgfkFjY2Vzc2liaWxpdHlNYWluSGFuZGxlcigpIG92ZXJyaWRlOworQEAgLTMyLDkgKzMx LDYgQEAgY2xhc3MgQWNjZXNzaWJpbGl0eU1haW5IYW5kbGVyCisgICB2b2lkIE9uSmF2YXNjcmlw dEFsbG93ZWQoKSBvdmVycmlkZTsKKyAgIHZvaWQgT25KYXZhc2NyaXB0RGlzYWxsb3dlZCgpIG92 ZXJyaWRlOworIAorLSAgLy8gc2NyZWVuX2FpOjpTY3JlZW5BSUluc3RhbGxTdGF0ZTo6T2JzZXJ2 ZXI6CistICB2b2lkIERvd25sb2FkUHJvZ3Jlc3NDaGFuZ2VkKGRvdWJsZSBwcm9ncmVzcykgb3Zl cnJpZGU7CistICB2b2lkIFN0YXRlQ2hhbmdlZChzY3JlZW5fYWk6OlNjcmVlbkFJSW5zdGFsbFN0 YXRlOjpTdGF0ZSBzdGF0ZSkgb3ZlcnJpZGU7CisgCisgIHByaXZhdGU6CisgICB2b2lkIEhhbmRs ZUdldFNjcmVlblJlYWRlclN0YXRlKGNvbnN0IGJhc2U6Okxpc3RWYWx1ZSYgYXJncyk7CitAQCAt NTEsOSArNDcsNiBAQCBjbGFzcyBBY2Nlc3NpYmlsaXR5TWFpbkhhbmRsZXIKKyAgIGJhc2U6OkNh bGxiYWNrTGlzdFN1YnNjcmlwdGlvbiBhY2Nlc3NpYmlsaXR5X3N1YnNjcmlwdGlvbl87CisgI2Vu ZGlmICAvLyBCVUlMREZMQUcoSVNfQ0hST01FT1MpCisgCistICBiYXNlOjpTY29wZWRPYnNlcnZh dGlvbjxzY3JlZW5fYWk6OlNjcmVlbkFJSW5zdGFsbFN0YXRlLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgc2NyZWVuX2FpOjpTY3JlZW5BSUluc3RhbGxTdGF0ZTo6T2JzZXJ2ZXI+CistICAg ICAgY29tcG9uZW50X3JlYWR5X29ic2VydmVyX3t0aGlzfTsKKyB9OworIAorIH0gIC8vIG5hbWVz cGFjZSBzZXR0aW5ncworLS0tIGEvY2hyb21lL2Jyb3dzZXIvdWkvd2VidWkvc2lkZV9wYW5lbC9y ZWFkX2FueXRoaW5nL3JlYWRfYW55dGhpbmdfdW50cnVzdGVkX3BhZ2VfaGFuZGxlci5jYworKysr IGIvY2hyb21lL2Jyb3dzZXIvdWkvd2VidWkvc2lkZV9wYW5lbC9yZWFkX2FueXRoaW5nL3JlYWRf YW55dGhpbmdfdW50cnVzdGVkX3BhZ2VfaGFuZGxlci5jYworQEAgLTI0LDggKzI0LDYgQEAKKyAj aW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIvZG9tX2Rpc3RpbGxlci9kb21fZGlzdGlsbGVyX3NlcnZp Y2VfZmFjdG9yeS5oIgorICNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9sYW5ndWFnZS9sYW5ndWFn ZV9tb2RlbF9tYW5hZ2VyX2ZhY3RvcnkuaCIKKyAjaW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIvcHJv ZmlsZXMvcHJvZmlsZS5oIgorLSNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9zY3JlZW5fYWkvc2Ny ZWVuX2FpX3NlcnZpY2Vfcm91dGVyLmgiCistI2luY2x1ZGUgImNocm9tZS9icm93c2VyL3NjcmVl bl9haS9zY3JlZW5fYWlfc2VydmljZV9yb3V0ZXJfZmFjdG9yeS5oIgorICNpbmNsdWRlICJjaHJv bWUvYnJvd3Nlci9zcGVlY2gvZXh0ZW5zaW9uX2FwaS90dHNfZW5naW5lX2V4dGVuc2lvbl9hcGku aCIKKyAjaW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIvdHJhbnNsYXRlL2Nocm9tZV90cmFuc2xhdGVf Y2xpZW50LmgiCisgI2luY2x1ZGUgImNocm9tZS9icm93c2VyL3VpL2Jyb3dzZXIuaCIKK0BAIC00 MzAsMTQgKzQyOCw2IEBAIFJlYWRBbnl0aGluZ1VudHJ1c3RlZFBhZ2VIYW5kbGVyOjpSZWFkQW4K KyAgIHByZWZzX2xhbmcgPSBsYW5ndWFnZTo6RXh0cmFjdEJhc2VMYW5ndWFnZShwcmVmc19sYW5n KTsKKyAgIFNldERlZmF1bHRMYW5ndWFnZUNvZGUocHJlZnNfbGFuZyk7CisgCistICBpZiAodXNl X3NjcmVlbl9haV9zZXJ2aWNlXykgeworLSAgICBzY3JlZW5fYWk6OlNjcmVlbkFJU2VydmljZVJv dXRlckZhY3Rvcnk6OkdldEZvckJyb3dzZXJDb250ZXh0KHByb2ZpbGVfKQorLSAgICAgICAgLT5H ZXRTZXJ2aWNlU3RhdGVBc3luYygKKy0gICAgICAgICAgICBzY3JlZW5fYWk6OlNjcmVlbkFJU2Vy dmljZVJvdXRlcjo6U2VydmljZTo6a01haW5Db250ZW50RXh0cmFjdGlvbiwKKy0gICAgICAgICAg ICBiYXNlOjpCaW5kT25jZSgKKy0gICAgICAgICAgICAgICAgJlJlYWRBbnl0aGluZ1VudHJ1c3Rl ZFBhZ2VIYW5kbGVyOjpPblNjcmVlbkFJU2VydmljZUluaXRpYWxpemVkLAorLSAgICAgICAgICAg ICAgICB3ZWFrX2ZhY3RvcnlfLkdldFdlYWtQdHIoKSkpOworLSAgfQorIAorICAgaWYgKGZlYXR1 cmVzOjpJc1JlYWRBbnl0aGluZ1dpdGhSZWFkYWJpbGl0eUVuYWJsZWQoKSAmJgorICAgICAgICFm ZWF0dXJlczo6SXNSZWFkQW55dGhpbmdSZWFkQWxvdWRQaHJhc2VIaWdobGlnaHRpbmdFbmFibGVk KCkpIHsKKy0tLSBhL2Nocm9tZS9yZW5kZXJlci9CVUlMRC5nbgorKysrIGIvY2hyb21lL3JlbmRl cmVyL0JVSUxELmduCitAQCAtMzU1LDggKzM1NSw2IEBAIHN0YXRpY19saWJyYXJ5KCJyZW5kZXJl ciIpIHsKKyAgICAgXQorICAgfSBlbHNlIHsKKyAgICAgc291cmNlcyArPSBbCistICAgICAgImFj Y2Vzc2liaWxpdHkvYXhfdHJlZV9kaXN0aWxsZXIuY2MiLAorLSAgICAgICJhY2Nlc3NpYmlsaXR5 L2F4X3RyZWVfZGlzdGlsbGVyLmgiLAorICAgICAgICJhY2Nlc3NpYmlsaXR5L3BocmFzZV9zZWdt ZW50YXRpb24vYmFzZV9waHJhc2Vfc2VnbWVudGVyLmNjIiwKKyAgICAgICAiYWNjZXNzaWJpbGl0 eS9waHJhc2Vfc2VnbWVudGF0aW9uL2Jhc2VfcGhyYXNlX3NlZ21lbnRlci5oIiwKKyAgICAgICAi YWNjZXNzaWJpbGl0eS9waHJhc2Vfc2VnbWVudGF0aW9uL2RlcGVuZGVuY3lfcGFyc2VyX21vZGVs LmNjIiwKK0BAIC0zNzMsMTYgKzM3MSw2IEBAIHN0YXRpY19saWJyYXJ5KCJyZW5kZXJlciIpIHsK KyAgICAgICAiYWNjZXNzaWJpbGl0eS9waHJhc2Vfc2VnbWVudGF0aW9uL3Rva2VuaXplZF9zZW50 ZW5jZS5oIiwKKyAgICAgICAiYWNjZXNzaWJpbGl0eS9waHJhc2Vfc2VnbWVudGF0aW9uL3Rva2Vu aXplci5jYyIsCisgICAgICAgImFjY2Vzc2liaWxpdHkvcGhyYXNlX3NlZ21lbnRhdGlvbi90b2tl bml6ZXIuaCIsCistICAgICAgImFjY2Vzc2liaWxpdHkvcmVhZF9hbnl0aGluZy9yZWFkX2Fsb3Vk X2FwcF9tb2RlbC5jYyIsCistICAgICAgImFjY2Vzc2liaWxpdHkvcmVhZF9hbnl0aGluZy9yZWFk X2Fsb3VkX2FwcF9tb2RlbC5oIiwKKy0gICAgICAiYWNjZXNzaWJpbGl0eS9yZWFkX2FueXRoaW5n L3JlYWRfYWxvdWRfdHJhdmVyc2FsX3V0aWxzLmNjIiwKKy0gICAgICAiYWNjZXNzaWJpbGl0eS9y ZWFkX2FueXRoaW5nL3JlYWRfYWxvdWRfdHJhdmVyc2FsX3V0aWxzLmgiLAorLSAgICAgICJhY2Nl c3NpYmlsaXR5L3JlYWRfYW55dGhpbmcvcmVhZF9hbnl0aGluZ19hcHBfY29udHJvbGxlci5jYyIs CistICAgICAgImFjY2Vzc2liaWxpdHkvcmVhZF9hbnl0aGluZy9yZWFkX2FueXRoaW5nX2FwcF9j b250cm9sbGVyLmgiLAorLSAgICAgICJhY2Nlc3NpYmlsaXR5L3JlYWRfYW55dGhpbmcvcmVhZF9h bnl0aGluZ19hcHBfbW9kZWwuY2MiLAorLSAgICAgICJhY2Nlc3NpYmlsaXR5L3JlYWRfYW55dGhp bmcvcmVhZF9hbnl0aGluZ19hcHBfbW9kZWwuaCIsCistICAgICAgImFjY2Vzc2liaWxpdHkvcmVh ZF9hbnl0aGluZy9yZWFkX2FueXRoaW5nX25vZGVfdXRpbHMuY2MiLAorLSAgICAgICJhY2Nlc3Np YmlsaXR5L3JlYWRfYW55dGhpbmcvcmVhZF9hbnl0aGluZ19ub2RlX3V0aWxzLmgiLAorICAgICAg ICJtZWRpYS9jaHJvbWVfc3BlZWNoX3JlY29nbml0aW9uX2NsaWVudC5jYyIsCisgICAgICAgIm1l ZGlhL2Nocm9tZV9zcGVlY2hfcmVjb2duaXRpb25fY2xpZW50LmgiLAorICAgICAgICJzZWFyY2hi b3gvc2VhcmNoYm94LmNjIiwKK0BAIC0zOTksNyArMzg3LDYgQEAgc3RhdGljX2xpYnJhcnkoInJl bmRlcmVyIikgeworICAgICAgICIvL2NvbXBvbmVudHMvY3J4X2ZpbGUiLAorICAgICAgICIvL2Nv bXBvbmVudHMvdHJ1c3RlZF92YXVsdCIsCisgICAgICAgIi8vc2VydmljZXMvc2NyZWVuX2FpL2J1 aWxkZmxhZ3MiLAorLSAgICAgICIvL3NlcnZpY2VzL3NjcmVlbl9haS9wdWJsaWMvbW9qb20iLAor ICAgICAgICIvL3NlcnZpY2VzL3N0cmluZ3MiLAorICAgICAgICIvL3RoaXJkX3BhcnR5L3JlMiIs CisgICAgICAgIi8vdGhpcmRfcGFydHkvdGVuc29yZmxvdy10ZXh0IiwKKy0tLSBhL2Nocm9tZS9y ZW5kZXJlci9jaHJvbWVfcmVuZGVyX2ZyYW1lX29ic2VydmVyLmNjCisrKysgYi9jaHJvbWUvcmVu ZGVyZXIvY2hyb21lX3JlbmRlcl9mcmFtZV9vYnNlcnZlci5jYworQEAgLTc3LDcgKzc3LDYgQEAK KyAjaW5jbHVkZSAidXJsL2d1cmwuaCIKKyAKKyAjaWYgIUJVSUxERkxBRyhJU19BTkRST0lEKQor LSNpbmNsdWRlICJjaHJvbWUvcmVuZGVyZXIvYWNjZXNzaWJpbGl0eS9yZWFkX2FueXRoaW5nL3Jl YWRfYW55dGhpbmdfYXBwX2NvbnRyb2xsZXIuaCIKKyAjaW5jbHVkZSAiY2hyb21lL3JlbmRlcmVy L3NlYXJjaGJveC9zZWFyY2hib3hfZXh0ZW5zaW9uLmgiCisgI2VuZGlmICAvLyAhQlVJTERGTEFH KElTX0FORFJPSUQpCisgCitAQCAtMzQwLDE0ICszMzksNiBAQCB2b2lkIENocm9tZVJlbmRlckZy YW1lT2JzZXJ2ZXI6OkRpZENsZWFyCisgICAgIFNlYXJjaEJveEV4dGVuc2lvbjo6SW5zdGFsbChy ZW5kZXJfZnJhbWUoKS0+R2V0V2ViRnJhbWUoKSk7CisgICB9CisgCistICAvLyBJbnN0YWxsIFJl YWRBbnl0aGluZ0FwcENvbnRyb2xsZXIgb24gcmVuZGVyIGZyYW1lcyB3aXRoIHRoZSBSZWFkIEFu eXRoaW5nCistICAvLyB1cmwsIHdoaWNoIGlzIGNocm9tZS11bnRydXN0ZWQuIFJlYWRBbnl0aGlu Z0FwcENvbnRyb2xsZXIgaW5zdGFsbHMgdjgKKy0gIC8vIGJpbmRpbmdzIGluIHRoZSBjaHJvbWUu cmVhZGluZ01vZGUgbmFtZXNwYWNlIHdoaWNoIGFyZSBjb25zdW1lZCBieQorLSAgLy8gcmVhZF9h bnl0aGluZy9hcHAudHMsIHRoZSByZXNvdXJjZSBvZiB0aGUgUmVhZCBBbnl0aGluZyBXZWJVSS4K Ky0gIGlmIChyZW5kZXJfZnJhbWUoKS0+R2V0V2ViRnJhbWUoKS0+R2V0RG9jdW1lbnQoKS5Vcmwo KSA9PQorLSAgICAgIGNocm9tZTo6a0Nocm9tZVVJVW50cnVzdGVkUmVhZEFueXRoaW5nU2lkZVBh bmVsVVJMKSB7CistICAgIFJlYWRBbnl0aGluZ0FwcENvbnRyb2xsZXI6Okluc3RhbGwocmVuZGVy X2ZyYW1lKCkpOworLSAgfQorICNlbmRpZiAgLy8gIUJVSUxERkxBRyhJU19BTkRST0lEKQorICNp ZiBCVUlMREZMQUcoRU5BQkxFX0dVRVNUX1ZJRVcpICYmICFCVUlMREZMQUcoRU5BQkxFX0VYVEVO U0lPTlNfQ09SRSkKKyAgIGd1ZXN0X3ZpZXc6OlNsaW1XZWJWaWV3QmluZGluZ3M6Ok1heWJlSW5z dGFsbCgqcmVuZGVyX2ZyYW1lKCkpOworLS0tIGEvY2hyb21lL3Rlc3QvQlVJTEQuZ24KKysrKyBi L2Nocm9tZS90ZXN0L0JVSUxELmduCitAQCAtMjczNiw5ICsyNzM2LDYgQEAgaWYgKCFpc19hbmRy b2lkKSB7CisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcmVzb3VyY2VfY29vcmRpbmF0b3I6bW9q b19iaW5kaW5ncyIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvc2FmZV9icm93c2luZzphZHZh bmNlZF9wcm90ZWN0aW9uIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci9zYWZlX2Jyb3dzaW5n OnZlcmRpY3RfY2FjaGVfbWFuYWdlcl9mYWN0b3J5IiwKKy0gICAgICAiLy9jaHJvbWUvYnJvd3Nl ci9zY3JlZW5fYWk6c2NyZWVuX2FpX2luc3RhbGxfc3RhdGUiLAorLSAgICAgICIvL2Nocm9tZS9i cm93c2VyL3NjcmVlbl9haTpzY3JlZW5fYWlfc2VydmljZV9yb3V0ZXJfZmFjdG9yeSIsCistICAg ICAgIi8vY2hyb21lL2Jyb3dzZXIvc2NyZWVuX2FpL3B1YmxpYzp0ZXN0X3N1cHBvcnQiLAorICAg ICAgICIvL2Nocm9tZS9icm93c2VyL3NlYXJjaCIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIv c2VhcmNoX2VuZ2luZXMiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3NlZ21lbnRhdGlvbl9w bGF0Zm9ybTp0ZXN0X3V0aWxzIiwKK0BAIC0zMjI4LDggKzMyMjUsNiBAQCBpZiAoIWlzX2FuZHJv aWQpIHsKKyAgICAgICAiLy9zZXJ2aWNlcy9wcmVmZXJlbmNlcy9wdWJsaWMvY3BwIiwKKyAgICAg ICAiLy9zZXJ2aWNlcy9wcmVmZXJlbmNlcy9wdWJsaWMvY3BwL3RyYWNrZWQiLAorICAgICAgICIv L3NlcnZpY2VzL3ByZWZlcmVuY2VzL3RyYWNrZWQ6ZmVhdHVyZXMiLAorLSAgICAgICIvL3NlcnZp Y2VzL3NjcmVlbl9haS9wdWJsaWMvY3BwOnV0aWxpdGllcyIsCistICAgICAgIi8vc2VydmljZXMv c2NyZWVuX2FpL3B1YmxpYy9tb2pvbSIsCisgICAgICAgIi8vc2VydmljZXMvc2VydmljZV9tYW5h Z2VyL3B1YmxpYy9jcHAiLAorICAgICAgICIvL3NlcnZpY2VzL3N0cmluZ3MiLAorICAgICAgICIv L3NlcnZpY2VzL3Rlc3QvZWNoby9wdWJsaWMvbW9qb20iLAorQEAgLTg3NjksNyArODc2NCw2IEBA IHRlc3QoInVuaXRfdGVzdHMiKSB7CisgICAgICMKKyAgICAgIyBUT0RPKGNyYnVnLmNvbS80MTc1 MTMwODgpOiBNYXliZSBtZXJnZSB3aXRoIHRoZSBub24tYW5kcm9pZCBgZGVwc2AgZGVjbGFyYXRp b24gYWJvdmU/CisgICAgIGRlcHMgKz0gWworLSAgICAgICIuLi9icm93c2VyL3NjcmVlbl9haTpz Y3JlZW5fYWlfaW5zdGFsbF9zdGF0ZSIsCisgICAgICAgIi8vY2hyb21lOnBhY2tlZF9yZXNvdXJj ZXMiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL2FwcHM6aWNvbl9zdGFuZGFyZGl6ZXIiLAor ICAgICAgICIvL2Nocm9tZS9icm93c2VyL2FwcHMvYXBwX3NlcnZpY2UiLAorQEAgLTg4MDYsNyAr ODgwMCw2IEBAIHRlc3QoInVuaXRfdGVzdHMiKSB7CisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIv cHJvZmlsZV9yZXNldHRlcjpmYWtlX3Byb2ZpbGVfcmVzZXR0ZXIiLAorICAgICAgICIvL2Nocm9t ZS9icm93c2VyL3Byb2ZpbGVfcmVzZXR0ZXI6dW5pdF90ZXN0cyIsCisgICAgICAgIi8vY2hyb21l L2Jyb3dzZXIvcmVzb3VyY2VzL25ld190YWJfcGFnZV9pbnN0YW50OnJlc291cmNlc19ncml0IiwK Ky0gICAgICAiLy9jaHJvbWUvYnJvd3Nlci9zY3JlZW5fYWk6dW5pdF90ZXN0cyIsCisgICAgICAg Ii8vY2hyb21lL2Jyb3dzZXIvc2VhcmNoL2JhY2tncm91bmQiLAorICAgICAgICIvL2Nocm9tZS9i cm93c2VyL3NlYXJjaC9iYWNrZ3JvdW5kOmNvbnN0YW50cyIsCisgICAgICAgIi8vY2hyb21lL2Jy b3dzZXIvc2VhcmNoX2VuZ2luZV9jaG9pY2U6dW5pdF90ZXN0cyIsCistLS0gYS9jaHJvbWUvdXRp bGl0eS9CVUlMRC5nbgorKysrIGIvY2hyb21lL3V0aWxpdHkvQlVJTEQuZ24KK0BAIC0xNDcsNyAr MTQ3LDYgQEAgc3RhdGljX2xpYnJhcnkoInV0aWxpdHkiKSB7CisgICAgICAgIi8vY29tcG9uZW50 cy91c2VyX2RhdGFfaW1wb3J0ZXIvY29udGVudCIsCisgICAgICAgIi8vY29tcG9uZW50cy91c2Vy X2RhdGFfaW1wb3J0ZXIvdXRpbGl0eTpib29rbWFya3MiLAorICAgICAgICIvL3NlcnZpY2VzL3By b3h5X3Jlc29sdmVyOmxpYiIsCistICAgICAgIi8vc2VydmljZXMvc2NyZWVuX2FpIiwKKyAgICAg XQorICAgfQorIAorLS0tIGEvY2hyb21lL3V0aWxpdHkvc2VydmljZXMuY2MKKysrKyBiL2Nocm9t ZS91dGlsaXR5L3NlcnZpY2VzLmNjCitAQCAtNjIsOCArNjIsNiBAQAorICNpbmNsdWRlICJjb21w b25lbnRzL3ByaXZhdGVfYWkvb2FrX3Nlc3Npb25fc2VydmljZS9vYWtfc2Vzc2lvbl9zZXJ2aWNl LmgiICAvLyBub2duY2hlY2sKKyAjaW5jbHVkZSAic2VydmljZXMvcHJveHlfcmVzb2x2ZXIvcHJv eHlfcmVzb2x2ZXJfZmFjdG9yeV9pbXBsLmgiICAvLyBub2duY2hlY2sKKyAjaW5jbHVkZSAic2Vy dmljZXMvcHJveHlfcmVzb2x2ZXIvcHVibGljL21vam9tL3Byb3h5X3Jlc29sdmVyLm1vam9tLmgi CistI2luY2x1ZGUgInNlcnZpY2VzL3NjcmVlbl9haS9wdWJsaWMvbW9qb20vc2NyZWVuX2FpX2Zh Y3RvcnkubW9qb20uaCIgIC8vIG5vZ25jaGVjaworLSNpbmNsdWRlICJzZXJ2aWNlcy9zY3JlZW5f YWkvc2NyZWVuX2FpX3NlcnZpY2VfaW1wbC5oIiAgLy8gbm9nbmNoZWNrCisgI2VuZGlmICAvLyAh QlVJTERGTEFHKElTX0FORFJPSUQpCisgCisgI2lmIEJVSUxERkxBRyhFTkFCTEVfQlJPV1NFUl9T UEVFQ0hfU0VSVklDRSkKK0BAIC0yNjYsMTIgKzI2NCw2IEBAIGF1dG8gUnVuU3BlZWNoUmVjb2du aXRpb25TZXJ2aWNlKAorIH0KKyAjZW5kaWYgIC8vICFCVUlMREZMQUcoRU5BQkxFX0JST1dTRVJf U1BFRUNIX1NFUlZJQ0UpCisgCistI2lmICFCVUlMREZMQUcoSVNfQU5EUk9JRCkKKy1hdXRvIFJ1 blNjcmVlbkFJU2VydmljZUZhY3RvcnkoCistICAgIG1vam86OlBlbmRpbmdSZWNlaXZlcjxzY3Jl ZW5fYWk6Om1vam9tOjpTY3JlZW5BSVNlcnZpY2VGYWN0b3J5PiByZWNlaXZlcikgeworLSAgcmV0 dXJuIHN0ZDo6bWFrZV91bmlxdWU8c2NyZWVuX2FpOjpTY3JlZW5BSVNlcnZpY2U+KHN0ZDo6bW92 ZShyZWNlaXZlcikpOworLX0KKy0jZW5kaWYKKyAKKyAjaWYgKEJVSUxERkxBRyhTQUZFX0JST1dT SU5HX0RPV05MT0FEX1BST1RFQ1RJT04pICYmIFwKKyAgICAgICFCVUlMREZMQUcoSVNfQU5EUk9J RCkpIHx8ICAgICAgICAgICAgICAgICAgICAgIFwKK0BAIC00NTEsNyArNDQzLDYgQEAgdm9pZCBS ZWdpc3Rlck1haW5UaHJlYWRTZXJ2aWNlcyhtb2pvOjpTZQorICAgc2VydmljZXMuQWRkKFJ1bk9h a1Nlc3Npb25TZXJ2aWNlKTsKKyAgIHNlcnZpY2VzLkFkZChSdW5Qcm9maWxlSW1wb3J0ZXIpOwor ICAgc2VydmljZXMuQWRkKFJ1bk1pcnJvcmluZ1NlcnZpY2UpOworLSAgc2VydmljZXMuQWRkKFJ1 blNjcmVlbkFJU2VydmljZUZhY3RvcnkpOworICNlbmRpZiAgLy8gIUJVSUxERkxBRyhJU19BTkRS T0lEKQorIAorICNpZiBCVUlMREZMQUcoRU5BQkxFX0JST1dTRVJfU1BFRUNIX1NFUlZJQ0UpCist LS0gYS9jb21wb25lbnRzL0JVSUxELmduCisrKysgYi9jb21wb25lbnRzL0JVSUxELmduCitAQCAt NjM5LDcgKzYzOSw2IEBAIHRlc3QoImNvbXBvbmVudHNfdW5pdHRlc3RzIikgeworICAgICAgICIv L2NvbXBvbmVudHMvb25lX3RpbWVfdG9rZW5zL2NvcmUvYnJvd3Nlcjp1bml0X3Rlc3RzIiwKKyAg ICAgICAiLy9jb21wb25lbnRzL3BhZ2VfaW5mbzp1bml0X3Rlc3RzIiwKKyAgICAgICAiLy9jb21w b25lbnRzL3Bhc3N3b3JkX21hbmFnZXIvY29yZS9icm93c2VyL2FjdG9yX2xvZ2luOnVuaXRfdGVz dHMiLAorLSAgICAgICIvL2NvbXBvbmVudHMvcGVybWlzc2lvbnMvcHJlZGljdGlvbl9zZXJ2aWNl OnVuaXRfdGVzdHMiLAorICAgICAgICIvL2NvbXBvbmVudHMvcHJpdmFjeV9zYW5kYm94L3ByaXZh Y3lfc2FuZGJveF9hdHRlc3RhdGlvbnM6dW5pdF90ZXN0cyIsCisgICAgICAgIi8vY29tcG9uZW50 cy9zYWZldHlfY2hlY2s6dW5pdF90ZXN0cyIsCisgICAgICAgIi8vY29tcG9uZW50cy9zZWN1cml0 eV9pbnRlcnN0aXRpYWxzL2NvbnRlbnQ6dW5pdF90ZXN0cyIsCistLS0gYS9jb21wb25lbnRzL2F1 dG9maWxsL2NvcmUvYnJvd3Nlci9hdXRvZmlsbF9maWVsZC5jYworKysrIGIvY29tcG9uZW50cy9h dXRvZmlsbC9jb3JlL2Jyb3dzZXIvYXV0b2ZpbGxfZmllbGQuY2MKK0BAIC0yNSw3ICsyNSw2IEBA CisgI2luY2x1ZGUgImNvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL2ZpZWxkX3R5cGVf dXRpbHMuaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvZmll bGRfdHlwZXMuaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIv aGV1cmlzdGljX3NvdXJjZS5oIgorLSNpbmNsdWRlICJjb21wb25lbnRzL2F1dG9maWxsL2NvcmUv YnJvd3Nlci9tbF9tb2RlbC9maWVsZF9jbGFzc2lmaWNhdGlvbl9tb2RlbF9oYW5kbGVyLmgiCisg I2luY2x1ZGUgImNvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL3Byb3RvL2FwaV92MS5w Yi5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci9wcm90by9z ZXJ2ZXIucGIuaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2NvbW1vbi9h dXRvZmlsbF9jb25zdGFudHMuaCIKKy0tLSBhL2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93 c2VyL2ZvdW5kYXRpb25zL2F1dG9maWxsX21hbmFnZXIuY2MKKysrKyBiL2NvbXBvbmVudHMvYXV0 b2ZpbGwvY29yZS9icm93c2VyL2ZvdW5kYXRpb25zL2F1dG9maWxsX21hbmFnZXIuY2MKK0BAIC0x MzcsOCArMTM3LDYgQEAgc3RydWN0IEF1dG9maWxsTWFuYWdlcjo6QXN5bmNDb250ZXh0IHsKKyAK KyAgIHN0ZDo6dmVjdG9yPEZvcm1EYXRhPiBmb3JtczsKKyAgIHN0ZDo6dmVjdG9yPFJlZ2V4UHJl ZGljdGlvbnM+IHJlZ2V4X3ByZWRpY3Rpb25zOworLSAgc3RkOjp2ZWN0b3I8TW9kZWxQcmVkaWN0 aW9ucz4gYXV0b2ZpbGxfcHJlZGljdGlvbnM7CistICBzdGQ6OnZlY3RvcjxNb2RlbFByZWRpY3Rp b25zPiBwYXNzd29yZF9tYW5hZ2VyX3ByZWRpY3Rpb25zOworICAgR2VvSXBDb3VudHJ5Q29kZSBj b3VudHJ5X2NvZGU7CisgICBMYW5ndWFnZUNvZGUgY3VycmVudF9wYWdlX2xhbmd1YWdlOworICAg c3RkOjp1bmlxdWVfcHRyPEJ1ZmZlcmluZ0xvZ01hbmFnZXI+IGxvZ19tYW5hZ2VyOworQEAgLTgz MywxMCArODMxLDggQEAgdm9pZCBBdXRvZmlsbE1hbmFnZXI6OlJ1bk1sTW9kZWxzKAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpOworICAgICAgICAgc3dpdGNoIChzb3Vy Y2UpIHsKKyAgICAgICAgICAgY2FzZSBIZXVyaXN0aWNTb3VyY2U6OmtBdXRvZmlsbE1hY2hpbmVM ZWFybmluZzoKKy0gICAgICAgICAgICBjb250ZXh0LmF1dG9maWxsX3ByZWRpY3Rpb25zID0gc3Rk Ojptb3ZlKG1vZGVsX3ByZWRpY3Rpb25zKTsKKyAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg ICAgY2FzZSBIZXVyaXN0aWNTb3VyY2U6OmtQYXNzd29yZE1hbmFnZXJNYWNoaW5lTGVhcm5pbmc6 CistICAgICAgICAgICAgY29udGV4dC5wYXNzd29yZF9tYW5hZ2VyX3ByZWRpY3Rpb25zID0gc3Rk Ojptb3ZlKG1vZGVsX3ByZWRpY3Rpb25zKTsKKyAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg ICAgY2FzZSBIZXVyaXN0aWNTb3VyY2U6OmtSZWdleGVzOgorICAgICAgICAgICAgIE5PVFJFQUNI RUQoKTsKK0BAIC0xMDQzLDEyICsxMDM5LDYgQEAgdm9pZCBBdXRvZmlsbE1hbmFnZXI6OlVwZGF0 ZUZvcm1DYWNoZSgKKyAKKyAgIGF1dG8gYXBwbHlfcHJlZGljdGlvbnMgPSBbXShGb3JtU3RydWN0 dXJlJiBmb3JtX3N0cnVjdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBBc3luY0NvbnRleHQmIGNvbnRleHQsIHNpemVfdCBpKSB7CistICAgIGlmICghY29udGV4dC5h dXRvZmlsbF9wcmVkaWN0aW9ucy5lbXB0eSgpKSB7CistICAgICAgY29udGV4dC5hdXRvZmlsbF9w cmVkaWN0aW9uc1tpXS5BcHBseVRvKGZvcm1fc3RydWN0dXJlLmZpZWxkcygpKTsKKy0gICAgfQor LSAgICBpZiAoIWNvbnRleHQucGFzc3dvcmRfbWFuYWdlcl9wcmVkaWN0aW9ucy5lbXB0eSgpKSB7 CistICAgICAgY29udGV4dC5wYXNzd29yZF9tYW5hZ2VyX3ByZWRpY3Rpb25zW2ldLkFwcGx5VG8o Zm9ybV9zdHJ1Y3R1cmUuZmllbGRzKCkpOworLSAgICB9CisgICAgIGlmICghY29udGV4dC5yZWdl eF9wcmVkaWN0aW9ucy5lbXB0eSgpKSB7CisgICAgICAgY29udGV4dC5yZWdleF9wcmVkaWN0aW9u c1tpXS5BcHBseVRvKGZvcm1fc3RydWN0dXJlLmZpZWxkcygpKTsKKyAgICAgfQorQEAgLTExNjYs MjYgKzExNTYsNiBAQCB2b2lkIEF1dG9maWxsTWFuYWdlcjo6TG9nQ3VycmVudEZpZWxkVHlwCisg Cisgdm9pZCBBdXRvZmlsbE1hbmFnZXI6OlN1YnNjcmliZVRvTWxNb2RlbENoYW5nZXMoCisgICAg IEZpZWxkQ2xhc3NpZmljYXRpb25Nb2RlbEhhbmRsZXImIGhhbmRsZXIpIHsKKy0gIHN3aXRjaCAo aGFuZGxlci5vcHRpbWl6YXRpb25fdGFyZ2V0KCkpIHsKKy0gICAgY2FzZSBvcHRpbWl6YXRpb25f Z3VpZGU6OnByb3RvOjpPcHRpbWl6YXRpb25UYXJnZXQ6OgorLSAgICAgICAgT1BUSU1JWkFUSU9O X1RBUkdFVF9BVVRPRklMTF9GSUVMRF9DTEFTU0lGSUNBVElPTjoKKy0gICAgICBpZiAoIWF1dG9m aWxsX21vZGVsX2NoYW5nZV9zdWJzY3JpcHRpb25fKSB7CistICAgICAgICBhdXRvZmlsbF9tb2Rl bF9jaGFuZ2Vfc3Vic2NyaXB0aW9uXyA9CistICAgICAgICAgICAgaGFuZGxlci5SZWdpc3Rlck1v ZGVsQ2hhbmdlQ2FsbGJhY2soYmFzZTo6QmluZFJlcGVhdGluZygKKy0gICAgICAgICAgICAgICAg JkF1dG9maWxsTWFuYWdlcjo6UmVwYXJzZUtub3duRm9ybXMsIGJhc2U6OlVucmV0YWluZWQodGhp cykpKTsKKy0gICAgICB9CistICAgICAgYnJlYWs7CistICAgIGNhc2Ugb3B0aW1pemF0aW9uX2d1 aWRlOjpwcm90bzo6T3B0aW1pemF0aW9uVGFyZ2V0OjoKKy0gICAgICAgIE9QVElNSVpBVElPTl9U QVJHRVRfUEFTU1dPUkRfTUFOQUdFUl9GT1JNX0NMQVNTSUZJQ0FUSU9OOgorLSAgICAgIGlmICgh cGFzc3dvcmRfbWFuYWdlcl9tb2RlbF9jaGFuZ2Vfc3Vic2NyaXB0aW9uXykgeworLSAgICAgICAg cGFzc3dvcmRfbWFuYWdlcl9tb2RlbF9jaGFuZ2Vfc3Vic2NyaXB0aW9uXyA9CistICAgICAgICAg ICAgaGFuZGxlci5SZWdpc3Rlck1vZGVsQ2hhbmdlQ2FsbGJhY2soYmFzZTo6QmluZFJlcGVhdGlu ZygKKy0gICAgICAgICAgICAgICAgJkF1dG9maWxsTWFuYWdlcjo6UmVwYXJzZUtub3duRm9ybXMs IGJhc2U6OlVucmV0YWluZWQodGhpcykpKTsKKy0gICAgICB9CistICAgICAgYnJlYWs7CistICAg IGRlZmF1bHQ6CistICAgICAgTk9UUkVBQ0hFRCgpOworLSAgfQorIH0KKyAKKyB9ICAvLyBuYW1l c3BhY2UgYXV0b2ZpbGwKKy0tLSBhL2NvbXBvbmVudHMvcGFnZV9jb250ZW50X2Fubm90YXRpb25z L2NvbnRlbnQvQlVJTEQuZ24KKysrKyBiL2NvbXBvbmVudHMvcGFnZV9jb250ZW50X2Fubm90YXRp b25zL2NvbnRlbnQvQlVJTEQuZ24KK0BAIC01Nyw4ICs1Nyw2IEBAIHNvdXJjZV9zZXQoInBhZ2Vf ZW1iZWRkaW5ncyIpIHsKKyAgIHNvdXJjZXMgPSBbCisgICAgICJlbWJlZGRpbmdzX2NhbmRpZGF0 ZV9nZW5lcmF0b3IuY2MiLAorICAgICAiZW1iZWRkaW5nc19jYW5kaWRhdGVfZ2VuZXJhdG9yLmgi LAorLSAgICAicGFnZV9jYXRlZ29yeV9jbGFzc2lmaWVyX2JyaWRnZV9pbXBsLmNjIiwKKy0gICAg InBhZ2VfY2F0ZWdvcnlfY2xhc3NpZmllcl9icmlkZ2VfaW1wbC5oIiwKKyAgICAgInBhZ2VfZW1i ZWRkaW5nc19zZXJ2aWNlLmNjIiwKKyAgICAgInBhZ2VfZW1iZWRkaW5nc19zZXJ2aWNlLmgiLAor ICAgXQorLS0tIGEvY29tcG9uZW50cy9wZGYvcmVuZGVyZXIvcGRmX3ZpZXdfd2ViX3BsdWdpbl9j bGllbnQuaAorKysrIGIvY29tcG9uZW50cy9wZGYvcmVuZGVyZXIvcGRmX3ZpZXdfd2ViX3BsdWdp bl9jbGllbnQuaAorQEAgLTEyLDcgKzEyLDYgQEAKKyAjaW5jbHVkZSAiYmFzZS9tZW1vcnkvd2Vh a19wdHIuaCIKKyAjaW5jbHVkZSAibW9qby9wdWJsaWMvY3BwL2JpbmRpbmdzL3JlbW90ZS5oIgor ICNpbmNsdWRlICJwZGYvcGRmX3ZpZXdfd2ViX3BsdWdpbi5oIgorLSNpbmNsdWRlICJzZXJ2aWNl cy9zY3JlZW5fYWkvcHVibGljL21vam9tL3NjcmVlbl9haV9zZXJ2aWNlLm1vam9tLmgiCisgCisg bmFtZXNwYWNlIGJsaW5rIHsKKyBjbGFzcyBXZWJMb2NhbEZyYW1lOworQEAgLTExMCw4ICsxMDks NiBAQCBjbGFzcyBQZGZWaWV3V2ViUGx1Z2luQ2xpZW50IDogcHVibGljIGNoCisgCisgICByYXdf cHRyPGJsaW5rOjpXZWJQbHVnaW5Db250YWluZXI+IHBsdWdpbl9jb250YWluZXJfOworIAorLSAg bW9qbzo6UmVtb3RlPHNjcmVlbl9haTo6bW9qb206OlNjcmVlbkFJQW5ub3RhdG9yPiBzY3JlZW5f YWlfYW5ub3RhdG9yXzsKKy0gIGJhc2U6OlJlcGVhdGluZ0Nsb3N1cmUgb2NyX2Rpc2Nvbm5lY3Rf Y2FsbGJhY2tfOworIAorICAgYmFzZTo6V2Vha1B0ckZhY3Rvcnk8UGRmVmlld1dlYlBsdWdpbkNs aWVudD4gd2Vha19mYWN0b3J5X3t0aGlzfTsKKyB9OworLS0tIGEvc2VydmljZXMvc2NyZWVuX2Fp L2J1aWxkZmxhZ3MvZmVhdHVyZXMuZ25pCisrKysgYi9zZXJ2aWNlcy9zY3JlZW5fYWkvYnVpbGRm bGFncy9mZWF0dXJlcy5nbmkKK0BAIC02LDE0ICs2LDEzIEBAIGltcG9ydCgiLy9idWlsZC9jb25m aWcvc2FuaXRpemVycy9zYW5pdGkKKyAKKyBkZWNsYXJlX2FyZ3MoKSB7CisgICAjIFNjcmVlbiBB SSBzZXJ2aWNlIGlzIG9ubHkgc3VwcG9ydGVkIG9uIGRlc2t0b3AgcGxhdGZvcm1zLgorLSAgZW5h YmxlX3NjcmVlbl9haV9zZXJ2aWNlID0gaXNfbGludXggfHwgaXNfbWFjIHx8IGlzX2Nocm9tZW9z IHx8IGlzX3dpbgorKyAgZW5hYmxlX3NjcmVlbl9haV9zZXJ2aWNlID0gZmFsc2UKKyAKKyAgICMg U2NyZWVuIEFJIGxpYnJhcnkgaXMgbm90IGF2YWlsYWJsZSBmb3IgYnJvd3NlciB0ZXN0cyBvbiBD aHJvbWVPUy4gVGFzdCB0ZXN0cworICAgIyBjb3ZlciBsaWJyYXJ5J3MgT0NSIGZ1bmN0aW9uYWxp dHkgb24gQ2hyb21lT1MuCisgICBlbmFibGVfc2NyZWVuX2FpX2Jyb3dzZXJ0ZXN0cyA9CistICAg ICAgaXNfbGludXggfHwgKGlzX21hYyAmJiAodGFyZ2V0X2NwdSA9PSAiYXJtNjQiIHx8IHRhcmdl dF9jcHUgPT0gIng2NCIpKSB8fAorLSAgICAgIChpc193aW4gJiYgKHRhcmdldF9jcHUgPT0gIng2 NCIgfHwgdGFyZ2V0X2NwdSA9PSAieDg2IikpCisrICAgICAgZmFsc2UKKyAKKyAgICMgU2NyZWVu IEFJIGxpYnJhcnkgaXMgbm90IGF2YWlsYWJsZSBmb3IgTVNBTiBhbmQgVUJTQU4uCistICB1c2Vf ZmFrZV9zY3JlZW5fYWkgPSBpc19tc2FuIHx8IGlzX3Vic2FuIHx8IGlzX3Vic2FuX3ZwdHIgfHwg aXNfdWJzYW5fc2VjdXJpdHkKKysgIHVzZV9mYWtlX3NjcmVlbl9haSA9IGZhbHNlCisgfQo=