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] f44: Fix FTBFS (patch from ungoogled chromium) Date: Wed, 23 Sep 2026 18:21:01 GMT Message-ID: <179018766118.1.13362589634028210780.rpms-chromium-096978acb1c3@fedoraproject.org> List-ID: X-Git-Repo: rpms/chromium X-Git-Branch: f44 X-Git-Rev: 096978acb1c3d82d1049e00d4dbf9f4457e6c817 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvY2hyb21pdW0KQnJh bmNoIDogZjQ0CkNvbW1pdCA6IDA5Njk3OGFjYjFjM2Q4MmQxMDQ5ZTAwZDRkYmY5ZjQ0NTdlNmM4 MTcKQXV0aG9yIDogVGhhbiBOZ28gPHRoYW5AcmVkaGF0LmNvbT4KRGF0ZSAgIDogMjAyNi0wOS0y M1QyMDoxNzo0MyswMjowMApTdGF0cyAgOiArOTk0Ly0xNTMgaW4gMyBmaWxlKHMpClVSTCAgICA6 IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvY2hyb21pdW0vYy8wOTY5NzhhY2Ix YzNkODJkMTA0OWUwMGQ0ZGJmOWY0NDU3ZTZjODE3P2JyYW5jaD1mNDQKCkxvZzoKRml4IEZUQkZT IChwYXRjaCBmcm9tIHVuZ29vZ2xlZCBjaHJvbWl1bSkKCi0tLQpkaWZmIC0tZ2l0IGEvY2hyb21p dW0tMTU0LWZ0YmZzLWNydWJpdC5wYXRjaCBiL2Nocm9taXVtLTE1NC1mdGJmcy1jcnViaXQucGF0 Y2gKaW5kZXggYjQxMzdmNS4uYmNkZWRmMyAxMDA2NDQKLS0tIGEvY2hyb21pdW0tMTU0LWZ0YmZz LWNydWJpdC5wYXRjaAorKysgYi9jaHJvbWl1bS0xNTQtZnRiZnMtY3J1Yml0LnBhdGNoCkBAIC0x LDE2OSArMSw3MTEgQEAKLWNvbW1pdCA0OTNlNmMzOTExZTMzY2MzNTY4NTZiYWZiZmZjNmNmOTU1 MjEyNjZiCi1BdXRob3I6IERvbWluaWsgUsO2dHRzY2hlcyA8ZHJvdHRAY2hyb21pdW0ub3JnPgot RGF0ZTogICBUaHUgQXVnIDEzIDA4OjQyOjE1IDIwMjYgLTA3MDAKK3VuZ29vZ2xlIGNocm9taXVt IHBhdGNoIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3VuZ29vZ2xlZC1zb2Z0d2FyZS91bmdvb2ds ZWQtY2hyb21pdW0vcHVsbC8zOTY2CiAKLSAgICBNaWdyYXRlIE9wZW5UeXBlIGZvcm1hdCBjaGVj ayBiaW5kaW5ncyB0byBDcnViaXQKLSAgICAKLSAgICBXZSBjYW4gcmVtb3ZlIHRoZSBCb3g8PiB3 cmFwcGVkIHR5cGluZyBvZiBGb250Rm9ybWF0SW5mbyBhbG9uZyB0aGUgd2F5LgotICAgIAotICAg IERFUFMgY2hlY2tzIGZvciB0aGUgZ2VuZXJhdGVkIG91dHB1dCBoZWFkZXIgZmlsZXMgcmVxdWly ZXMgdXMgdG8gbW92ZQotICAgIHRoZSBmb3JtYXRfY2hlY2sgdGFyZ2V0IGludG8gdGhlIGZvbnRz IHN1YmRpcmVjdG9yeS4gVGhpcyBpcyBhIGdvb2QKLSAgICBvcHBvcnR1bml0eSB0byBtb3ZlIG1v cmUgZm9udCBzcGVjaWZpYyBidWlsZCBydWxlcyB0byB0aGUgZm9udCBzdWJkaXIgaW4KLSAgICB0 aGUgZnV0dXJlIGFuZCByZWR1Y2UgdGhlIHdlaWdodCBvZiB0aGUgcGxhdGZvcm0vQlVJTEQuZ24g YnVpbGQgZGlyLgotICAgIAotICAgIEV4ZXJjaXNlIGluIHVzaW5nIHRoZSBDcnViaXQgYmluZGlu Z3MgbWVjaGFuaXNtLgotICAgIAotICAgIE5vIGZ1bmN0aW9uYWwgY2hhbmdlLgotICAgIAotICAg IENoYW5nZS1JZDogSTk0NDBjNzI4NWJiNzA3YjMyNWI4MGVlMDc0ZGU1MWU3MTRlZTQ4ODQKLSAg ICBSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9j L2Nocm9taXVtL3NyYy8rLzgyNDQyNDgKLSAgICBSZXZpZXdlZC1ieTogxYF1a2FzeiBBbmZvcm93 aWN6IDxsdWthc3phQGNocm9taXVtLm9yZz4KLSAgICBDb21taXQtUXVldWU6IERvbWluaWsgUsO2 dHRzY2hlcyA8ZHJvdHRAY2hyb21pdW0ub3JnPgotICAgIENyLUNvbW1pdC1Qb3NpdGlvbjogcmVm cy9oZWFkcy9tYWluQHsjMTY3ODg1OH0KLQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JsaW5r L3JlbmRlcmVyL3BsYXRmb3JtL0JVSUxELmduIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIv cGxhdGZvcm0vQlVJTEQuZ24KLWluZGV4IGQ1ZTgxYTNmMDdhM2MuLjZhNWQyNzU0NjAxMjIgMTAw NjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9CVUlMRC5nbgot KysrIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vQlVJTEQuZ24KLUBAIC0x ODYsMTggKzE4Niw2IEBAIGdyb3VwKCJtYWtlX3BsYXRmb3JtX2dlbmVyYXRlZCIpIHsKKy0tLSBh L2NvbXBvbmVudHMvY2Jvci9CVUlMRC5nbgorKysrIGIvY29tcG9uZW50cy9jYm9yL0JVSUxELmdu CitAQCAtMTIsNyArMTIsNyBAQCBidWlsZGZsYWdfaGVhZGVyKCJidWlsZGZsYWdzIikgeworICAg IyBUT0RPKGNyYnVnLmNvbS81MzU2ODIzMzUpOiBSZW1vdmUgYFVTRV9DQk9SX1JVU1RgIGJ1aWxk ZmxhZyBlbnRpcmVseSwKKyAgICMgdW5jb25kaXRpb25hbGx5IGVuYWJsZSBSdXN0IENCT1IgcGFy c2VyLCBhbmQgZHJvcCBgaXNfY3JvbmV0X2J1aWxkYCBjaGVjaworICAgIyBvbmNlIENyb25ldCBz dXBwb3J0cyBDcnViaXQgZGVwZW5kZW5jaWVzLgorLSAgZmxhZ3MgPSBbICJVU0VfQ0JPUl9SVVNU PSEkaXNfY3JvbmV0X2J1aWxkIiBdCisrICBmbGFncyA9IFsgIlVTRV9DQk9SX1JVU1Q9JGVuYWJs ZV9jcHBfYXBpX2Zyb21fcnVzdCIgXQorIH0KKyAKKyBjb21wb25lbnQoImNib3IiKSB7CitAQCAt MzUsNyArMzUsNyBAQCBjb21wb25lbnQoImNib3IiKSB7CisgICAgICIvL2Jhc2UiLAorICAgXQor IAorLSAgaWYgKCFpc19jcm9uZXRfYnVpbGQpIHsKKysgIGlmIChlbmFibGVfY3BwX2FwaV9mcm9t X3J1c3QpIHsKKyAgICAgcHVibGljX2RlcHMgPSBbCisgICAgICAgIi8vYnVpbGQvcnVzdC9jcnVi aXQiLAorICAgICAgICIvL2NvbXBvbmVudHMvY2Jvci9ydXN0OmNib3JfcnVzdF9iaW5kaW5ncyIs CitAQCAtNjIsNyArNjIsNyBAQCBzb3VyY2Vfc2V0KCJ1bml0X3Rlc3RzIikgeworICAgICAiLy90 ZXN0aW5nL2d0ZXN0IiwKKyAgICAgIi8vdGhpcmRfcGFydHkvZnV6enRlc3QiLAorICAgXQorLSAg aWYgKCFpc19jcm9uZXRfYnVpbGQpIHsKKysgIGlmIChlbmFibGVfY3BwX2FwaV9mcm9tX3J1c3Qp IHsKKyAgICAgZGVwcyArPSBbICIvL2NvbXBvbmVudHMvY2Jvci9ydXN0OmNib3JfcnVzdF91bml0 dGVzdHMiIF0KKyAgIH0KKyAKKy0tLSBhL2NvbXBvbmVudHMvd2ViX3BhY2thZ2UvQlVJTEQuZ24K KysrKyBiL2NvbXBvbmVudHMvd2ViX3BhY2thZ2UvQlVJTEQuZ24KK0BAIC00MCw3ICs0MCw2IEBA IHN0YXRpY19saWJyYXJ5KCJ3ZWJfcGFja2FnZSIpIHsKKyAgICAgIi8vYmFzZSIsCisgICAgICIv L2NvbXBvbmVudHMvYmFzZTMyIiwKKyAgICAgIi8vY29tcG9uZW50cy9jYm9yIiwKKy0gICAgIi8v Y29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvcnVzdDpzaWduZWRfd2Vi X2J1bmRsZXNfcnVzdF9iaW5kaW5ncyIsCisgICAgICIvL21vam8vcHVibGljL2NwcC9iaW5kaW5n cyIsCisgICAgICIvL25ldCIsCisgICAgICIvL3NlcnZpY2VzL25ldHdvcmsvcHVibGljL21vam9t IiwKK0BAIC03MCw3ICs2OSw2IEBAIHNvdXJjZV9zZXQoIm1vam9tX21hcHBlZF90eXBlcyIpIHsK KyAKKyAgIGRlcHMgPSBbCisgICAgICIvL2Jhc2UiLAorLSAgICAiLy9jb21wb25lbnRzL3dlYl9w YWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9ydXN0OnNpZ25lZF93ZWJfYnVuZGxlc19ydXN0X2Jp bmRpbmdzIiwKKyAgICAgIi8vY3J5cHRvIiwKKyAgICAgIi8vbW9qby9wdWJsaWMvY3BwL2JpbmRp bmdzIiwKICAgIF0KK0BAIC05OCw3ICs5Niw2IEBAIHNvdXJjZV9zZXQoInVuaXRfdGVzdHMiKSB7 CisgICAgICI6d2ViX3BhY2thZ2UiLAorICAgICAiLy9iYXNlL3Rlc3Q6dGVzdF9zdXBwb3J0IiwK KyAgICAgIi8vY29tcG9uZW50cy9jYm9yIiwKKy0gICAgIi8vY29tcG9uZW50cy93ZWJfcGFja2Fn ZS9zaWduZWRfd2ViX2J1bmRsZXMvcnVzdDpzaWduZWRfd2ViX2J1bmRsZXNfcnVzdF91bml0dGVz dHMiLAorICAgICAiLy9jb21wb25lbnRzL3dlYl9wYWNrYWdlL3Rlc3Rfc3VwcG9ydCIsCisgICAg ICIvL21vam8vcHVibGljL2NwcC9iaW5kaW5ncyIsCisgICAgICIvL21vam8vcHVibGljL2NwcC90 ZXN0X3N1cHBvcnQ6dGVzdF91dGlscyIsCistLS0gYS9jb21wb25lbnRzL3dlYl9wYWNrYWdlL3Np Z25lZF93ZWJfYnVuZGxlcy9lY2RzYV9wMjU2X3NoYTI1Nl9zaWduYXR1cmUuY2MKKysrKyBiL2Nv bXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL2VjZHNhX3AyNTZfc2hhMjU2 X3NpZ25hdHVyZS5jYworQEAgLTksNyArOSw4IEBACisgI2luY2x1ZGUgImJhc2Uvc3RyaW5ncy9z dHJpbmdwcmludGYuaCIKKyAjaW5jbHVkZSAiYmFzZS90eXBlcy9leHBlY3RlZC5oIgorICNpbmNs dWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9lY2RzYV9wMjU2 X3B1YmxpY19rZXkuaCIKKy0jaW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRf d2ViX2J1bmRsZXMvcnVzdC9zaWduZWRfd2ViX2J1bmRsZXNfcnVzdC5oIgorKyNpbmNsdWRlICJj cnlwdG8va2V5cGFpci5oIgorKyNpbmNsdWRlICJjcnlwdG8vc2lnbi5oIgorIAorIG5hbWVzcGFj ZSB3ZWJfcGFja2FnZSB7CisgCitAQCAtNTAsOCArNTEsOSBAQCBFY2RzYVAyNTZTSEEyNTZTaWdu YXR1cmU6OkVjZHNhUDI1NlNIQTI1CisgW1tub2Rpc2NhcmRdXSBib29sIEVjZHNhUDI1NlNIQTI1 NlNpZ25hdHVyZTo6VmVyaWZ5KAorICAgICBiYXNlOjpzcGFuPGNvbnN0IHVpbnQ4X3Q+IG1lc3Nh Z2UsCisgICAgIGNvbnN0IEVjZHNhUDI1NlB1YmxpY0tleSYgcHVibGljX2tleSkgY29uc3Qgewor LSAgcmV0dXJuIHNpZ25lZF93ZWJfYnVuZGxlczo6cnVzdDo6dmVyaWZ5X2VjZHNhX3AyNTZfc2ln bmF0dXJlKAorLSAgICAgIHB1YmxpY19rZXkuYnl0ZXMoKSwgYnl0ZXMoKSwgbWVzc2FnZSk7Cisr ICBhdXRvIGtleSA9IGNyeXB0bzo6a2V5cGFpcjo6UHVibGljS2V5OjpGcm9tRWNQMjU2UG9pbnQo cHVibGljX2tleS5ieXRlcygpKTsKKysgIHJldHVybiBjcnlwdG86OnNpZ246OlZlcmlmeShjcnlw dG86OnNpZ246OkVDRFNBX1NIQTI1NiwgKmtleSwgbWVzc2FnZSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBieXRlcygpKTsKICB9CiAgCi0tcnVzdF9zdGF0aWNfbGlicmFyeSgiZm9u dF9mb3JtYXRfY2hlY2siKSB7Ci0tICBhbGxvd191bnNhZmUgPSB0cnVlICAjIE5lZWRlZCBmb3Ig RkZJIHRoYXQgdW5kZXJwaW5zIHRoZSBgY3h4YCBjcmF0ZS4KLS0gIGNyYXRlX3Jvb3QgPSAiZm9u dHMvb3BlbnR5cGUvZm9ybWF0X2NoZWNrLnJzIgotLSAgc291cmNlcyA9IFsgY3JhdGVfcm9vdCBd Ci0tICBjeHhfYmluZGluZ3MgPSBbIGNyYXRlX3Jvb3QgXQotLSAgZGVwcyA9IFsKLS0gICAgIi8v dGhpcmRfcGFydHkvcnVzdC9mb250X3R5cGVzL3YwXzEyOmxpYiIsCi0tICAgICIvL3RoaXJkX3Bh cnR5L3J1c3QvcmVhZF9mb250cy92MF80MTpsaWIiLAotLSAgICAiLy90aGlyZF9wYXJ0eS9ydXN0 L3NrcmlmYS92MF80NDpsaWIiLAotLSAgXQorIH0gIC8vIG5hbWVzcGFjZSB3ZWJfcGFja2FnZQor LS0tIGEvY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvZWQyNTUxOV9z aWduYXR1cmUuY2MKKysrKyBiL2NvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5k bGVzL2VkMjU1MTlfc2lnbmF0dXJlLmNjCitAQCAtNyw3ICs3LDYgQEAKKyAjaW5jbHVkZSA8YWxn b3JpdGhtPgorIAorICNpbmNsdWRlICJiYXNlL3N0cmluZ3Mvc3RyaW5ncHJpbnRmLmgiCistI2lu Y2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3J1c3Qvc2ln bmVkX3dlYl9idW5kbGVzX3J1c3QuaCIKKyAjaW5jbHVkZSAidGhpcmRfcGFydHkvYm9yaW5nc3Ns L3NyYy9pbmNsdWRlL29wZW5zc2wvY3VydmUyNTUxOS5oIgorIAorIG5hbWVzcGFjZSB3ZWJfcGFj a2FnZSB7CitAQCAtNDMsOCArNDIsMTEgQEAgRWQyNTUxOVNpZ25hdHVyZTo6RWQyNTUxOVNpZ25h dHVyZShzdGQ6OgorIFtbbm9kaXNjYXJkXV0gYm9vbCBFZDI1NTE5U2lnbmF0dXJlOjpWZXJpZnko CisgICAgIGJhc2U6OnNwYW48Y29uc3QgdWludDhfdD4gbWVzc2FnZSwKKyAgICAgY29uc3QgRWQy NTUxOVB1YmxpY0tleSYgcHVibGljX2tleSkgY29uc3QgeworLSAgcmV0dXJuIHNpZ25lZF93ZWJf YnVuZGxlczo6cnVzdDo6dmVyaWZ5X2VkMjU1MTlfc2lnbmF0dXJlKHB1YmxpY19rZXkuYnl0ZXMo KSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBieXRlcygpLCBtZXNzYWdlKTsKKysgIGNvbnN0IHN0ZDo6YXJyYXk8dWludDhfdCwg RUQyNTUxOV9QVUJMSUNfS0VZX0xFTj4mIHB1YmxpY19rZXlfYnl0ZXMgPQorKyAgICAgIHB1Ymxp Y19rZXkuYnl0ZXMoKTsKKysgIGNvbnN0IHN0ZDo6YXJyYXk8dWludDhfdCwgRUQyNTUxOV9TSUdO QVRVUkVfTEVOPiYgc2lnbmF0dXJlX2J5dGVzID0gYnl0ZXMoKTsKKysgIHJldHVybiBFRDI1NTE5 X3ZlcmlmeShtZXNzYWdlLmRhdGEoKSwgbWVzc2FnZS5zaXplKCksIHNpZ25hdHVyZV9ieXRlcy5k YXRhKCksCisrICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljX2tleV9ieXRlcy5kYXRhKCkp OworIH0KKyAKKyB9ICAvLyBuYW1lc3BhY2Ugd2ViX3BhY2thZ2UKKy0tLSBhL2NvbXBvbmVudHMv d2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL2ludGVncml0eV9ibG9ja19wYXJzZXIuY2MK KysrKyBiL2NvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL2ludGVncml0 eV9ibG9ja19wYXJzZXIuY2MKK0BAIC00LDE3ICs0LDE5IEBACisgCisgI2luY2x1ZGUgImNvbXBv bmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL2ludGVncml0eV9ibG9ja19wYXJz ZXIuaCIKKyAKKysjaW5jbHVkZSA8YWxnb3JpdGhtPgorICNpbmNsdWRlIDxzdHJpbmc+CistI2lu Y2x1ZGUgPHN0cmluZ192aWV3PgorICNpbmNsdWRlIDx2ZWN0b3I+CisgCistI2luY2x1ZGUgImJh c2UvY2hlY2suaCIKKy0jaW5jbHVkZSAiYmFzZS9jb250YWluZXJzL3NwYW4uaCIKKysjaW5jbHVk ZSAiYmFzZS9jb250YWluZXJzL21hcF91dGlsLmgiCisgI2luY2x1ZGUgImJhc2UvZnVuY3Rpb25h bC9iaW5kLmgiCisgI2luY2x1ZGUgImJhc2Uvc3RyaW5ncy9zdHJpbmdwcmludGYuaCIKKysjaW5j bHVkZSAiYmFzZS9zdHJpbmdzL3RvX3N0cmluZy5oIgorICNpbmNsdWRlICJiYXNlL3R5cGVzL2V4 cGVjdGVkLmgiCisgI2luY2x1ZGUgImJhc2UvdHlwZXMvZXhwZWN0ZWRfbWFjcm9zLmgiCisgI2lu Y2x1ZGUgImNvbXBvbmVudHMvY2Jvci9yZWFkZXIuaCIKKysjaW5jbHVkZSAiY29tcG9uZW50cy9j Ym9yL3dyaXRlci5oIgorKyNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL21vam9tL3dl Yl9idW5kbGVfcGFyc2VyLm1vam9tLWZvcndhcmQuaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy93 ZWJfcGFja2FnZS9tb2pvbS93ZWJfYnVuZGxlX3BhcnNlci5tb2pvbS5oIgorICNpbmNsdWRlICJj b21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9jb25zdGFudHMuaCIKKyAj aW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvZWNkc2Ff cDI1Nl9wdWJsaWNfa2V5LmgiCitAQCAtMjIsNTYgKzI0LDExIEBACisgI2luY2x1ZGUgImNvbXBv bmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL2VkMjU1MTlfcHVibGljX2tleS5o IgorICNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9l ZDI1NTE5X3NpZ25hdHVyZS5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3Np Z25lZF93ZWJfYnVuZGxlcy9pbnRlZ3JpdHlfYmxvY2tfYXR0cmlidXRlcy5oIgorLSNpbmNsdWRl ICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9ydXN0L3NpZ25lZF93 ZWJfYnVuZGxlc19ydXN0LmgiCisgI2luY2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2ln bmVkX3dlYl9idW5kbGVzL3NpZ25lZF93ZWJfYnVuZGxlX2lkLmgiCisgI2luY2x1ZGUgImNvbXBv bmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3R5cGVzLmgiCisgCisgbmFtZXNw YWNlIHdlYl9wYWNrYWdlIHsKKyAKKy1uYW1lc3BhY2UgeworLQorLXVzaW5nIFNpZ25hdHVyZVR5 cGUgPSBzaWduZWRfd2ViX2J1bmRsZXM6OnJ1c3Q6OlNpZ25hdHVyZVR5cGU6OlRhZzsKKy11c2lu ZyBzaWduZWRfd2ViX2J1bmRsZXM6OnJ1c3Q6OnBhcnNlX2ludGVncml0eV9ibG9jazsKKy0KKy1i YXNlOjpleHBlY3RlZDxtb2pvbTo6QnVuZGxlSW50ZWdyaXR5QmxvY2tTaWduYXR1cmVTdGFja0Vu dHJ5UHRyLCBzdGQ6OnN0cmluZz4KKy1DcmVhdGVTaWduYXR1cmVTdGFja0VudHJ5KAorLSAgICBj b25zdCBzaWduZWRfd2ViX2J1bmRsZXM6OnJ1c3Q6OlNpZ25hdHVyZVN0YWNrRW50cnkmIGVudHJ5 KSB7CistICBhdXRvIHBhcnNlZF9zaWcgPSBtb2pvbTo6QnVuZGxlSW50ZWdyaXR5QmxvY2tTaWdu YXR1cmVTdGFja0VudHJ5OjpOZXcoKTsKKy0KKy0gIHN3aXRjaCAoZW50cnkuc2lnbmF0dXJlX3R5 cGUudGFnKSB7CistICAgIGNhc2UgU2lnbmF0dXJlVHlwZTo6RWQyNTUxOTogeworLSAgICAgIEFT U0lHTl9PUl9SRVRVUk4oYXV0byBwdWJsaWNfa2V5LAorLSAgICAgICAgICAgICAgICAgICAgICAg RWQyNTUxOVB1YmxpY0tleTo6Q3JlYXRlKGVudHJ5LnB1YmxpY19rZXkudG9fc3BhbigpKSk7Cist ICAgICAgQVNTSUdOX09SX1JFVFVSTihhdXRvIHNpZ25hdHVyZSwKKy0gICAgICAgICAgICAgICAg ICAgICAgIEVkMjU1MTlTaWduYXR1cmU6OkNyZWF0ZShlbnRyeS5zaWduYXR1cmUudG9fc3Bhbigp KSk7CistICAgICAgcGFyc2VkX3NpZy0+c2lnbmF0dXJlX2luZm8gPSBtb2pvbTo6U2lnbmF0dXJl SW5mbzo6TmV3RWQyNTUxOSgKKy0gICAgICAgICAgbW9qb206OlNpZ25hdHVyZUluZm9FZDI1NTE5 OjpOZXcocHVibGljX2tleSwgc2lnbmF0dXJlKSk7CistICAgICAgYnJlYWs7CistICAgIH0KKy0g ICAgY2FzZSBTaWduYXR1cmVUeXBlOjpFY2RzYVAyNTZTSEEyNTY6IHsKKy0gICAgICBBU1NJR05f T1JfUkVUVVJOKGF1dG8gcHVibGljX2tleSwKKy0gICAgICAgICAgICAgICAgICAgICAgIEVjZHNh UDI1NlB1YmxpY0tleTo6Q3JlYXRlKGVudHJ5LnB1YmxpY19rZXkudG9fc3BhbigpKSk7CistICAg ICAgQVNTSUdOX09SX1JFVFVSTihhdXRvIHNpZ25hdHVyZSwgRWNkc2FQMjU2U0hBMjU2U2lnbmF0 dXJlOjpDcmVhdGUoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGVudHJ5LnNpZ25hdHVyZS50b19zcGFuKCkpKTsKKy0gICAgICBwYXJzZWRfc2lnLT5zaWduYXR1 cmVfaW5mbyA9IG1vam9tOjpTaWduYXR1cmVJbmZvOjpOZXdFY2RzYVAyNTZTaGEyNTYoCistICAg ICAgICAgIG1vam9tOjpTaWduYXR1cmVJbmZvRWNkc2FQMjU2U0hBMjU2OjpOZXcocHVibGljX2tl eSwgc2lnbmF0dXJlKSk7CistICAgICAgYnJlYWs7CistICAgIH0KKy0gICAgY2FzZSBTaWduYXR1 cmVUeXBlOjpVbmtub3duOiB7CistICAgICAgcGFyc2VkX3NpZy0+c2lnbmF0dXJlX2luZm8gPQor LSAgICAgICAgICBtb2pvbTo6U2lnbmF0dXJlSW5mbzo6TmV3VW5rbm93bihtb2pvbTo6U2lnbmF0 dXJlSW5mb1Vua25vd246Ok5ldygpKTsKKy0gICAgICBicmVhazsKKy0gICAgfQorLSAgfQorLQor LSAgcGFyc2VkX3NpZy0+YXR0cmlidXRlc19jYm9yID0KKy0gICAgICBCaW5hcnlEYXRhKGVudHJ5 LmF0dHJpYnV0ZXNfY2Jvci5iZWdpbigpLCBlbnRyeS5hdHRyaWJ1dGVzX2Nib3IuZW5kKCkpOwor LQorLSAgcmV0dXJuIHBhcnNlZF9zaWc7CiAtfQogLQorLX0gIC8vIG5hbWVzcGFjZQorLQorIElu dGVncml0eUJsb2NrUGFyc2VyOjpJbnRlZ3JpdHlCbG9ja1BhcnNlcigKKyAgICAgbW9qb206OkJ1 bmRsZURhdGFTb3VyY2UmIGRhdGFfc291cmNlLAorICAgICBXZWJCdW5kbGVQYXJzZXI6OlBhcnNl SW50ZWdyaXR5QmxvY2tDYWxsYmFjayBjYWxsYmFjaykKK0BAIC0xMDMsMzcgKzYwLDEwMyBAQCB2 b2lkIEludGVncml0eUJsb2NrUGFyc2VyOjpPbkludGVncml0eUJsCisgICAgIFJ1bkVycm9yQ2Fs bGJhY2soIkVycm9yIHJlYWRpbmcgdGhlIGludGVncml0eSBibG9jay4iKTsKKyAgICAgcmV0dXJu OworICAgfQorKyAgLy8gVGhpcyBzdHJ1Y3R1cmUgaXMgYnVpbHQgZHVyaW5nIHBhcnNpbmcgYW5k IHJldHVybmVkIGJ5IHRoZSBmaW5hbCBjYWxsYmFjaworKyAgbW9qb206OkJ1bmRsZUludGVncml0 eUJsb2NrUHRyIGludGVncml0eV9ibG9jayA9CisrICAgICAgbW9qb206OkJ1bmRsZUludGVncml0 eUJsb2NrOjpOZXcoKTsKKysKKysgIHNpemVfdCBjb25zdW1lZF9ieXRlcyA9IDA7CisrICBjYm9y OjpSZWFkZXI6OkRlY29kZXJFcnJvciBlcnJvcjsKKysgIGNib3I6OlJlYWRlcjo6Q29uZmlnIGNv bmZpZzsKKysgIGNvbmZpZy5udW1fYnl0ZXNfY29uc3VtZWQgPSAmY29uc3VtZWRfYnl0ZXM7Cisr ICBjb25maWcuZXJyb3JfY29kZV9vdXQgPSAmZXJyb3I7CisrCisrICAvLyBXaGVuIGNvbmZpZyBg Ynl0ZXNfY29uc3VtZWRgIGFyZSBhc3NpZ25lZCB0aGUgQ0JPUiBwYXJzZXIgcmVhZHMgb25seSB0 byB0aGUKKysgIC8vIGVuZCBvZiBhIHN0cnVjdHVyZS4gSXQgcGFyc2VzIG9ubHkgSW50ZWdyaXR5 IEJsb2NrIGV2ZW4gaWYgV2ViIEJ1bmRsZSBwYXJ0CisrICAvLyBzdGFydHMganVzdCBhZnRlci4K KysgIHN0ZDo6b3B0aW9uYWw8Y2Jvcjo6VmFsdWU+IHZhbHVlID0gY2Jvcjo6UmVhZGVyOjpSZWFk KCpkYXRhLCBjb25maWcpOworKyAgaWYgKCF2YWx1ZSkgeworKyAgICBSdW5FcnJvckNhbGxiYWNr KCJFcnJvciBwYXJzaW5nIGludGVncml0eSBibG9jayBhcyBDQk9SOiAiICsKKysgICAgICAgICAg ICAgICAgICAgICBzdGQ6OnN0cmluZyhjYm9yOjpSZWFkZXI6OkVycm9yQ29kZVRvU3RyaW5nKGVy cm9yKSkpOworKyAgICByZXR1cm47CisrICB9CisrICBpbnRlZ3JpdHlfYmxvY2stPnNpemUgPSBj b25zdW1lZF9ieXRlczsKKysKKysgIGlmICghdmFsdWUtPmlzX2FycmF5KCkpIHsKKysgICAgUnVu RXJyb3JDYWxsYmFjaygiSW50ZWdyaXR5IGJsb2NrIGlzIG5vdCBhIENCT1IgYXJyYXkuIik7Cisr ICAgIHJldHVybjsKKysgIH0KKyAKKy0gIGNvbnN0IGF1dG8gcGFyc2VfcmVzID0gcGFyc2VfaW50 ZWdyaXR5X2Jsb2NrKCpkYXRhKTsKKy0gIGlmICghcGFyc2VfcmVzLmhhc192YWx1ZSgpKSB7Cist ICAgIGNvbnN0IGF1dG8mIGVycm9yID0gcGFyc2VfcmVzLmVycm9yKCk7CistICAgIFJ1bkVycm9y Q2FsbGJhY2soc3RkOjpzdHJpbmcoZXJyb3IubWVzc2FnZS5hc19zdHIoKSksCistICAgICAgICAg ICAgICAgICAgICAgZXJyb3IuaXNfdmVyc2lvbl9lcnJvcgorLSAgICAgICAgICAgICAgICAgICAg ICAgICA/IG1vam9tOjpCdW5kbGVQYXJzZUVycm9yVHlwZTo6a1ZlcnNpb25FcnJvcgorLSAgICAg ICAgICAgICAgICAgICAgICAgICA6IG1vam9tOjpCdW5kbGVQYXJzZUVycm9yVHlwZTo6a0Zvcm1h dEVycm9yKTsKKysgIGNvbnN0IGNib3I6OlZhbHVlOjpBcnJheVZhbHVlJiB0b3BfYXJyYXkgPSB2 YWx1ZS0+R2V0QXJyYXkoKTsKKysgIGlmICh0b3BfYXJyYXkuc2l6ZSgpICE9IGtJbnRlZ3JpdHlC bG9ja1YyVG9wTGV2ZWxBcnJheUxlbmd0aCkgeworKyAgICBSdW5FcnJvckNhbGxiYWNrKGJhc2U6 OlN0cmluZ1ByaW50ZigKKysgICAgICAgICJJbnZhbGlkIGludGVncml0eSBibG9jayBhcnJheSBs ZW5ndGg6IGV4cGVjdGVkICV1LCBnb3QgJXp1LiIsCisrICAgICAgICBrSW50ZWdyaXR5QmxvY2tW MlRvcExldmVsQXJyYXlMZW5ndGgsIHRvcF9hcnJheS5zaXplKCkpKTsKKyAgICAgcmV0dXJuOwor ICAgfQorIAorLSAgY29uc3QgYXV0byYgcGFyc2VkX2liID0gKnBhcnNlX3JlczsKKy0gIGF1dG8g aW50ZWdyaXR5X2Jsb2NrID0gbW9qb206OkJ1bmRsZUludGVncml0eUJsb2NrOjpOZXcoKTsKKy0g IGludGVncml0eV9ibG9jay0+c2l6ZSA9IHBhcnNlZF9pYi5zaXplOworLQorLSAgY29uc3Qgc3Rk OjpzdHJpbmdfdmlldyB3ZWJfYnVuZGxlX2lkX3N0ciA9CistICAgICAgcGFyc2VkX2liLndlYl9i dW5kbGVfaWQudG9fc3RyaW5nX3ZpZXcoKTsKKy0gIFJFVFVSTl9JRl9FUlJPUigKKy0gICAgICBT aWduZWRXZWJCdW5kbGVJZDo6Q3JlYXRlKHdlYl9idW5kbGVfaWRfc3RyKSwKKy0gICAgICBbJl0o c3RkOjpzdHJpbmcgZXJyb3IpIHsgUnVuRXJyb3JDYWxsYmFjayhzdGQ6Om1vdmUoZXJyb3IpKTsg fSk7CistCistICBpbnRlZ3JpdHlfYmxvY2stPmF0dHJpYnV0ZXMgPQorLSAgICAgIEludGVncml0 eUJsb2NrQXR0cmlidXRlcyhzdGQ6OnN0cmluZyh3ZWJfYnVuZGxlX2lkX3N0ciksCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEJpbmFyeURhdGEocGFyc2VkX2liLmF0dHJpYnV0ZXNf Y2Jvci5iZWdpbigpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBhcnNlZF9pYi5hdHRyaWJ1dGVzX2Nib3IuZW5kKCkpKTsKKysgIC8vIDEuIE1hZ2ljIGJ5dGVz CisrICBpZiAoIXRvcF9hcnJheVswXS5pc19ieXRlc3RyaW5nKCkgfHwKKysgICAgICAhc3RkOjpy YW5nZXM6OmVxdWFsKHRvcF9hcnJheVswXS5HZXRCeXRlc3RyaW5nKCksCisrICAgICAgICAgICAg ICAgICAgICAgICAgICBrSW50ZWdyaXR5QmxvY2tNYWdpY0J5dGVzKSkgeworKyAgICBSdW5FcnJv ckNhbGxiYWNrKCJVbmV4cGVjdGVkIG1hZ2ljIGJ5dGVzLiIpOworKyAgICByZXR1cm47CisrICB9 CisrCisrICAvLyAyLiBWZXJzaW9uCisrICBpZiAoIXRvcF9hcnJheVsxXS5pc19ieXRlc3RyaW5n KCkgfHwKKysgICAgICAhc3RkOjpyYW5nZXM6OmVxdWFsKHRvcF9hcnJheVsxXS5HZXRCeXRlc3Ry aW5nKCksCisrICAgICAgICAgICAgICAgICAgICAgICAgICBrSW50ZWdyaXR5QmxvY2tWMlZlcnNp b25CeXRlcykpIHsKKysgICAgUnVuRXJyb3JDYWxsYmFjaygiVW5leHBlY3RlZCB2ZXJzaW9uIGJ5 dGVzLiIsCisrICAgICAgICAgICAgICAgICAgICAgbW9qb206OkJ1bmRsZVBhcnNlRXJyb3JUeXBl OjprVmVyc2lvbkVycm9yKTsKKysgICAgcmV0dXJuOworKyAgfQorIAorLSAgZm9yIChjb25zdCBh dXRvJiBlbnRyeSA6IHBhcnNlZF9pYi5zaWduYXR1cmVfc3RhY2spIHsKKysgIC8vIDMuIEF0dHJp YnV0ZXMKKysgIGlmICghdG9wX2FycmF5WzJdLmlzX21hcCgpKSB7CisrICAgIFJ1bkVycm9yQ2Fs bGJhY2soIkludGVncml0eSBibG9jayBhdHRyaWJ1dGVzIG11c3QgYmUgYSBtYXAuIik7CisrICAg IHJldHVybjsKKysgIH0KKysgIGNvbnN0IGNib3I6OlZhbHVlOjpNYXBWYWx1ZSYgYXR0cmlidXRl c19tYXAgPSB0b3BfYXJyYXlbMl0uR2V0TWFwKCk7CisrICBjb25zdCBjYm9yOjpWYWx1ZSogd2Vi X2J1bmRsZV9pZCA9CisrICAgICAgYmFzZTo6RmluZE9yTnVsbChhdHRyaWJ1dGVzX21hcCwgY2Jv cjo6VmFsdWUoa1dlYkJ1bmRsZUlkQXR0cmlidXRlTmFtZSkpOworKyAgaWYgKCF3ZWJfYnVuZGxl X2lkIHx8ICF3ZWJfYnVuZGxlX2lkLT5pc19zdHJpbmcoKSkgeworKyAgICBSdW5FcnJvckNhbGxi YWNrKAorKyAgICAgICAgImB3ZWJCdW5kbGVJZGAgaW50ZWdyaXR5IGJsb2NrIGF0dHJpYnV0ZSBp cyBtaXNzaW5nIG9yIG1hbGZvcm1lZC4iKTsKKysgICAgcmV0dXJuOworKyAgfQorKworKyAgLy8g Q2hlY2sgaWYgd2ViX2J1bmRsZV9pZCBpcyBjb3JyZWN0CisrICBSRVRVUk5fSUZfRVJST1IoU2ln bmVkV2ViQnVuZGxlSWQ6OkNyZWF0ZSh3ZWJfYnVuZGxlX2lkLT5HZXRTdHJpbmcoKSksCisrICAg ICAgICAgICAgICAgICAgWyZdKGNvbnN0IHN0ZDo6c3RyaW5nJiBlcnJvcikgeyBSdW5FcnJvckNh bGxiYWNrKGVycm9yKTsgfSk7CisrCisrICBCaW5hcnlEYXRhIGF0dHJpYnV0ZXNfY2JvciA9ICpj Ym9yOjpXcml0ZXI6OldyaXRlKHRvcF9hcnJheVsyXSk7CisrICBpbnRlZ3JpdHlfYmxvY2stPmF0 dHJpYnV0ZXMgPSBJbnRlZ3JpdHlCbG9ja0F0dHJpYnV0ZXMoCisrICAgICAgd2ViX2J1bmRsZV9p ZC0+R2V0U3RyaW5nKCksIHN0ZDo6bW92ZShhdHRyaWJ1dGVzX2Nib3IpKTsKKysKKysgIC8vIDQu IFNpZ25hdHVyZSBTdGFjaworKyAgaWYgKCF0b3BfYXJyYXlbM10uaXNfYXJyYXkoKSkgeworKyAg ICBSdW5FcnJvckNhbGxiYWNrKCJTaWduYXR1cmUgc3RhY2sgbXVzdCBiZSBhbiBhcnJheS4iKTsK KysgICAgcmV0dXJuOworKyAgfQorKyAgY29uc3QgY2Jvcjo6VmFsdWU6OkFycmF5VmFsdWUmIHNp Z25hdHVyZXMgPSB0b3BfYXJyYXlbM10uR2V0QXJyYXkoKTsKKysgIGlmIChzaWduYXR1cmVzLmVt cHR5KCkpIHsKKysgICAgUnVuRXJyb3JDYWxsYmFjaygKKysgICAgICAgICJUaGUgc2lnbmF0dXJl IHN0YWNrIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgc2lnbmF0dXJlLiIpOworKyAgICByZXR1 cm47CisrICB9CisrCisrICBmb3IgKGNvbnN0IGF1dG8mIHNpZ25hdHVyZV9pbmZvX3JhdyA6IHNp Z25hdHVyZXMpIHsKKyAgICAgQVNTSUdOX09SX1JFVFVSTigKKy0gICAgICAgIGF1dG8gcGFyc2Vk X3NpZywgQ3JlYXRlU2lnbmF0dXJlU3RhY2tFbnRyeShlbnRyeSksCistICAgICAgICBbJl0oc3Rk OjpzdHJpbmcgZXJyb3IpIHsgUnVuRXJyb3JDYWxsYmFjayhzdGQ6Om1vdmUoZXJyb3IpKTsgfSk7 CistICAgIGludGVncml0eV9ibG9jay0+c2lnbmF0dXJlX3N0YWNrLnB1c2hfYmFjayhzdGQ6Om1v dmUocGFyc2VkX3NpZykpOworKyAgICAgICAgYXV0byBwYXJzZWRfc2lnbmF0dXJlX2luZm8sIFBh cnNlU2lnbmF0dXJlSW5mbyhzaWduYXR1cmVfaW5mb19yYXcpLAorKyAgICAgICAgWyZdKGNvbnN0 IHN0ZDo6c3RyaW5nJiBlcnJvcikgeyB0aGlzLT5SdW5FcnJvckNhbGxiYWNrKGVycm9yKTsgfSk7 CisrCisrICAgIGlmIChpbnRlZ3JpdHlfYmxvY2stPnNpZ25hdHVyZV9zdGFjay5lbXB0eSgpICYm CisrICAgICAgICBwYXJzZWRfc2lnbmF0dXJlX2luZm8tPnNpZ25hdHVyZV9pbmZvLT5pc191bmtu b3duKCkpIHsKKysgICAgICBSdW5FcnJvckNhbGxiYWNrKCJVbmtub3duIGNpcGhlciB0eXBlIG9m IHRoZSBmaXJzdCBzaWduYXR1cmUuIik7CisrICAgICAgcmV0dXJuOworKyAgICB9CisrICAgIGlu dGVncml0eV9ibG9jay0+c2lnbmF0dXJlX3N0YWNrLnB1c2hfYmFjaygKKysgICAgICAgIHN0ZDo6 bW92ZShwYXJzZWRfc2lnbmF0dXJlX2luZm8pKTsKKyAgIH0KKyAKKyAgIHN0ZDo6bW92ZShjb21w bGV0ZV9jYWxsYmFja18pCitAQCAtMTQxLDEzICsxNjQsNzQgQEAgdm9pZCBJbnRlZ3JpdHlCbG9j a1BhcnNlcjo6T25JbnRlZ3JpdHlCbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpt b3ZlKGludGVncml0eV9ibG9jayksIG51bGxwdHIpKTsKKyB9CisgCisrYmFzZTo6ZXhwZWN0ZWQ8 bW9qb206OkJ1bmRsZUludGVncml0eUJsb2NrU2lnbmF0dXJlU3RhY2tFbnRyeVB0ciwgc3RkOjpz dHJpbmc+CisrSW50ZWdyaXR5QmxvY2tQYXJzZXI6OlBhcnNlU2lnbmF0dXJlSW5mbygKKysgICAg Y29uc3QgY2Jvcjo6VmFsdWUmIHNpZ25hdHVyZV9pbmZvX3JhdykgeworKyAgaWYgKCFzaWduYXR1 cmVfaW5mb19yYXcuaXNfYXJyYXkoKSB8fAorKyAgICAgIHNpZ25hdHVyZV9pbmZvX3Jhdy5HZXRB cnJheSgpLnNpemUoKSAhPSAyKSB7CisrICAgIHJldHVybiBiYXNlOjp1bmV4cGVjdGVkKAorKyAg ICAgICAgIkVhY2ggc2lnbmF0dXJlIHN0YWNrIGVudHJ5IG11c3QgY29udGFpbiBleGFjdGx5IHR3 byBlbGVtZW50cy4iKTsKKysgIH0KKysKKysgIGNvbnN0IGNib3I6OlZhbHVlOjpBcnJheVZhbHVl JiBzaWduYXR1cmVfaW5mb19hcnJheSA9CisrICAgICAgc2lnbmF0dXJlX2luZm9fcmF3LkdldEFy cmF5KCk7CisrICBpZiAoIXNpZ25hdHVyZV9pbmZvX2FycmF5WzBdLmlzX21hcCgpIHx8CisrICAg ICAgIXNpZ25hdHVyZV9pbmZvX2FycmF5WzFdLmlzX2J5dGVzdHJpbmcoKSkgeworKyAgICByZXR1 cm4gYmFzZTo6dW5leHBlY3RlZCgiTWFsZm9ybWVkIHNpZ25hdHVyZSBzdGFjayBlbnRyeS4iKTsK KysgIH0KKysKKysgIG1vam9tOjpCdW5kbGVJbnRlZ3JpdHlCbG9ja1NpZ25hdHVyZVN0YWNrRW50 cnlQdHIgcGFyc2VkX3NpZ25hdHVyZV9pbmZvID0KKysgICAgICBtb2pvbTo6QnVuZGxlSW50ZWdy aXR5QmxvY2tTaWduYXR1cmVTdGFja0VudHJ5OjpOZXcoKTsKKysgIHBhcnNlZF9zaWduYXR1cmVf aW5mby0+YXR0cmlidXRlc19jYm9yID0KKysgICAgICAqY2Jvcjo6V3JpdGVyOjpXcml0ZShzaWdu YXR1cmVfaW5mb19hcnJheVswXSk7CisrCisrICBjb25zdCBjYm9yOjpWYWx1ZTo6TWFwVmFsdWUm IHNpZ25hdHVyZV9hdHRyaWJ1dGVzID0KKysgICAgICBzaWduYXR1cmVfaW5mb19hcnJheVswXS5H ZXRNYXAoKTsKKysgIGNvbnN0IEJpbmFyeURhdGEmIHNpZ25hdHVyZV9ieXRlcyA9IHNpZ25hdHVy ZV9pbmZvX2FycmF5WzFdLkdldEJ5dGVzdHJpbmcoKTsKKysKKysgIGNvbnN0IGNib3I6OlZhbHVl KiBlZDI1NTE5X2tleSA9IGJhc2U6OkZpbmRPck51bGwoCisrICAgICAgc2lnbmF0dXJlX2F0dHJp YnV0ZXMsIGNib3I6OlZhbHVlKGtFZDI1NTE5UHVibGljS2V5QXR0cmlidXRlTmFtZSkpOworKyAg Y29uc3QgY2Jvcjo6VmFsdWUqIGVjZHNhX2tleSA9IGJhc2U6OkZpbmRPck51bGwoCisrICAgICAg c2lnbmF0dXJlX2F0dHJpYnV0ZXMsIGNib3I6OlZhbHVlKGtFY2RzYVAyNTZQdWJsaWNLZXlBdHRy aWJ1dGVOYW1lKSk7CisrCisrICBpZiAoZWQyNTUxOV9rZXkgJiYgZWNkc2Ffa2V5KSB7CisrICAg IHJldHVybiBiYXNlOjp1bmV4cGVjdGVkKCJNdWx0aXBsZSBrZXkgdHlwZXMgZm9yIG9uZSBzaWdu YXR1cmUuIik7CisrICB9IGVsc2UgaWYgKGVkMjU1MTlfa2V5ICYmICFlZDI1NTE5X2tleS0+aXNf Ynl0ZXN0cmluZygpKSB7CisrICAgIHJldHVybiBiYXNlOjp1bmV4cGVjdGVkKCJJbnZhbGlkIEVE MjU1MTkga2V5LiIpOworKyAgfSBlbHNlIGlmIChlY2RzYV9rZXkgJiYgIWVjZHNhX2tleS0+aXNf Ynl0ZXN0cmluZygpKSB7CisrICAgIHJldHVybiBiYXNlOjp1bmV4cGVjdGVkKCJJbnZhbGlkIEVD RFNBIGtleS4iKTsKKysKKysgIH0gZWxzZSBpZiAoZWQyNTUxOV9rZXkgJiYgZWQyNTUxOV9rZXkt PmlzX2J5dGVzdHJpbmcoKSkgeworKyAgICBBU1NJR05fT1JfUkVUVVJOKGF1dG8gcHVibGljX2tl eSwKKysgICAgICAgICAgICAgICAgICAgICBFZDI1NTE5UHVibGljS2V5OjpDcmVhdGUoZWQyNTUx OV9rZXktPkdldEJ5dGVzdHJpbmcoKSkpOworKyAgICBBU1NJR05fT1JfUkVUVVJOKGF1dG8gc2ln bmF0dXJlLCBFZDI1NTE5U2lnbmF0dXJlOjpDcmVhdGUoc2lnbmF0dXJlX2J5dGVzKSk7CisrICAg IHBhcnNlZF9zaWduYXR1cmVfaW5mby0+c2lnbmF0dXJlX2luZm8gPSBtb2pvbTo6U2lnbmF0dXJl SW5mbzo6TmV3RWQyNTUxOSgKKysgICAgICAgIG1vam9tOjpTaWduYXR1cmVJbmZvRWQyNTUxOTo6 TmV3KHB1YmxpY19rZXksIHNpZ25hdHVyZSkpOworKworKyAgfSBlbHNlIGlmIChlY2RzYV9rZXkg JiYgZWNkc2Ffa2V5LT5pc19ieXRlc3RyaW5nKCkpIHsKKysgICAgQVNTSUdOX09SX1JFVFVSTihh dXRvIHB1YmxpY19rZXksCisrICAgICAgICAgICAgICAgICAgICAgRWNkc2FQMjU2UHVibGljS2V5 OjpDcmVhdGUoZWNkc2Ffa2V5LT5HZXRCeXRlc3RyaW5nKCkpKTsKKysgICAgQVNTSUdOX09SX1JF VFVSTihhdXRvIHNpZ25hdHVyZSwKKysgICAgICAgICAgICAgICAgICAgICBFY2RzYVAyNTZTSEEy NTZTaWduYXR1cmU6OkNyZWF0ZShzaWduYXR1cmVfYnl0ZXMpKTsKKysgICAgcGFyc2VkX3NpZ25h dHVyZV9pbmZvLT5zaWduYXR1cmVfaW5mbyA9CisrICAgICAgICBtb2pvbTo6U2lnbmF0dXJlSW5m bzo6TmV3RWNkc2FQMjU2U2hhMjU2KAorKyAgICAgICAgICAgIG1vam9tOjpTaWduYXR1cmVJbmZv RWNkc2FQMjU2U0hBMjU2OjpOZXcocHVibGljX2tleSwgc2lnbmF0dXJlKSk7CisrCisrICB9IGVs c2UgeworKyAgICBwYXJzZWRfc2lnbmF0dXJlX2luZm8tPnNpZ25hdHVyZV9pbmZvID0KKysgICAg ICAgIG1vam9tOjpTaWduYXR1cmVJbmZvOjpOZXdVbmtub3duKG1vam9tOjpTaWduYXR1cmVJbmZv VW5rbm93bjo6TmV3KCkpOworKyAgfQorKworKyAgcmV0dXJuIHBhcnNlZF9zaWduYXR1cmVfaW5m bzsKKyt9CisrCisgdm9pZCBJbnRlZ3JpdHlCbG9ja1BhcnNlcjo6UnVuRXJyb3JDYWxsYmFjaygK Ky0gICAgc3RkOjpzdHJpbmcgbWVzc2FnZSwKKysgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3Nh Z2UsCisgICAgIG1vam9tOjpCdW5kbGVQYXJzZUVycm9yVHlwZSBlcnJvcl90eXBlKSB7CisgICBz dGQ6Om1vdmUoY29tcGxldGVfY2FsbGJhY2tfKQorLSAgICAgIC5SdW4oYmFzZTo6QmluZE9uY2Uo c3RkOjptb3ZlKHJlc3VsdF9jYWxsYmFja18pLCBudWxscHRyLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgbW9qb206OkJ1bmRsZUludGVncml0eUJsb2NrUGFyc2VFcnJvcjo6TmV3KAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX3R5cGUsIHN0ZDo6bW92ZShtZXNzYWdl KSkpKTsKKysgICAgICAuUnVuKGJhc2U6OkJpbmRPbmNlKAorKyAgICAgICAgICBzdGQ6Om1vdmUo cmVzdWx0X2NhbGxiYWNrXyksIG51bGxwdHIsCisrICAgICAgICAgIG1vam9tOjpCdW5kbGVJbnRl Z3JpdHlCbG9ja1BhcnNlRXJyb3I6Ok5ldyhlcnJvcl90eXBlLCBtZXNzYWdlKSkpOworIH0KKyAK KyB9ICAvLyBuYW1lc3BhY2Ugd2ViX3BhY2thZ2UKKy0tLSBhL2NvbXBvbmVudHMvd2ViX3BhY2th Z2Uvc2lnbmVkX3dlYl9idW5kbGVzL2ludGVncml0eV9ibG9ja19wYXJzZXIuaAorKysrIGIvY29t cG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvaW50ZWdyaXR5X2Jsb2NrX3Bh cnNlci5oCitAQCAtNSwxMyArNSw4IEBACisgI2lmbmRlZiBDT01QT05FTlRTX1dFQl9QQUNLQUdF X1NJR05FRF9XRUJfQlVORExFU19JTlRFR1JJVFlfQkxPQ0tfUEFSU0VSX0hfCisgI2RlZmluZSBD T01QT05FTlRTX1dFQl9QQUNLQUdFX1NJR05FRF9XRUJfQlVORExFU19JTlRFR1JJVFlfQkxPQ0tf UEFSU0VSX0hfCisgCistI2luY2x1ZGUgPG9wdGlvbmFsPgorLSNpbmNsdWRlIDxzdHJpbmc+Cist CistI2luY2x1ZGUgImJhc2UvY29tcGlsZXJfc3BlY2lmaWMuaCIKKy0jaW5jbHVkZSAiYmFzZS9t ZW1vcnkvcmF3X3JlZi5oIgorLSNpbmNsdWRlICJiYXNlL21lbW9yeS93ZWFrX3B0ci5oIgorICNp bmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL21vam9tL3dlYl9idW5kbGVfcGFyc2VyLm1v am9tLWZvcndhcmQuaCIKKysjaW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRf d2ViX2J1bmRsZXMvaW50ZWdyaXR5X2Jsb2NrX2F0dHJpYnV0ZXMuaCIKKyAjaW5jbHVkZSAiY29t cG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvdHlwZXMuaCIKKyAjaW5jbHVk ZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS93ZWJfYnVuZGxlX3BhcnNlci5oIgorIAorQEAgLTIw LDcgKzE1LDcgQEAgbmFtZXNwYWNlIHdlYl9wYWNrYWdlIHsKKyBjbGFzcyBJbnRlZ3JpdHlCbG9j a1BhcnNlciA6IHB1YmxpYyBXZWJCdW5kbGVQYXJzZXI6OldlYkJ1bmRsZVNlY3Rpb25QYXJzZXIg eworICBwdWJsaWM6CisgICBleHBsaWNpdCBJbnRlZ3JpdHlCbG9ja1BhcnNlcigKKy0gICAgICBt b2pvbTo6QnVuZGxlRGF0YVNvdXJjZSYgZGF0YV9zb3VyY2UgTElGRVRJTUVfQk9VTkQsCisrICAg ICAgbW9qb206OkJ1bmRsZURhdGFTb3VyY2UmIGRhdGFfc291cmNlLAorICAgICAgIFdlYkJ1bmRs ZVBhcnNlcjo6UGFyc2VJbnRlZ3JpdHlCbG9ja0NhbGxiYWNrIGNhbGxiYWNrKTsKKyAKKyAgIElu dGVncml0eUJsb2NrUGFyc2VyKGNvbnN0IEludGVncml0eUJsb2NrUGFyc2VyJikgPSBkZWxldGU7 CitAQCAtMzUsNyArMzAsMTAgQEAgY2xhc3MgSW50ZWdyaXR5QmxvY2tQYXJzZXIgOiBwdWJsaWMg V2ViQgorICBwcml2YXRlOgorICAgdm9pZCBPbkludGVncml0eUJsb2NrUmVhZChjb25zdCBzdGQ6 Om9wdGlvbmFsPEJpbmFyeURhdGE+JiBkYXRhKTsKKyAKKy0gIHZvaWQgUnVuRXJyb3JDYWxsYmFj ayhzdGQ6OnN0cmluZyBtZXNzYWdlLAorKyAgYmFzZTo6ZXhwZWN0ZWQ8bW9qb206OkJ1bmRsZUlu dGVncml0eUJsb2NrU2lnbmF0dXJlU3RhY2tFbnRyeVB0ciwgc3RkOjpzdHJpbmc+CisrICBQYXJz ZVNpZ25hdHVyZUluZm8oY29uc3QgY2Jvcjo6VmFsdWUmIGF0dHJpYnV0ZXNfbWFwKTsKKysKKysg IHZvaWQgUnVuRXJyb3JDYWxsYmFjayhjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICBtb2pvbTo6QnVuZGxlUGFyc2VFcnJvclR5cGUgZXJyb3JfdHlw ZSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vam9tOjpCdW5kbGVQYXJzZUVycm9y VHlwZTo6a0Zvcm1hdEVycm9yKTsKKyAKKy0tLSBhL2NvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2ln bmVkX3dlYl9idW5kbGVzL3J1c3QvQlVJTEQuZ24KKysrKyBiL2NvbXBvbmVudHMvd2ViX3BhY2th Z2Uvc2lnbmVkX3dlYl9idW5kbGVzL3J1c3QvQlVJTEQuZ24KK0BAIC0xMCw3ICsxMCw2IEBAIHJ1 c3Rfc3RhdGljX2xpYnJhcnkoInNpZ25lZF93ZWJfYnVuZGxlc18KKyAgIHNvdXJjZXMgPSBbCisg ICAgICJjb25zdGFudHMucnMiLAorICAgICAiaW50ZWdyaXR5X2Jsb2NrLnJzIiwKKy0gICAgInNp Z25hdHVyZV92ZXJpZmllci5ycyIsCisgICAgICJ0eXBlcy5ycyIsCisgICAgIGNyYXRlX3Jvb3Qs CisgICBdCistLS0gYS9jb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9z aWduZWRfd2ViX2J1bmRsZV9zaWduYXR1cmVfdmVyaWZpZXIuY2MKKysrKyBiL2NvbXBvbmVudHMv d2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3NpZ25lZF93ZWJfYnVuZGxlX3NpZ25hdHVy ZV92ZXJpZmllci5jYworQEAgLTIwLDE0ICsyMCwxNyBAQAorICNpbmNsdWRlICJiYXNlL3Rhc2sv dGhyZWFkX3Bvb2wuaCIKKyAjaW5jbHVkZSAiYmFzZS90eXBlcy9leHBlY3RlZC5oIgorICNpbmNs dWRlICJiYXNlL3R5cGVzL2V4cGVjdGVkX21hY3Jvcy5oIgorKyNpbmNsdWRlICJjb21wb25lbnRz L2Nib3IvdmFsdWVzLmgiCisrI2luY2x1ZGUgImNvbXBvbmVudHMvY2Jvci93cml0ZXIuaCIKKysj aW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvY29uc3Rh bnRzLmgiCisgI2luY2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5k bGVzL2lkZW50aXR5X3ZhbGlkYXRvci5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNr YWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9pbnRlZ3JpdHlfYmxvY2tfcGFyc2VyLmgiCistI2luY2x1 ZGUgImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3J1c3Qvc2lnbmVk X3dlYl9idW5kbGVzX3J1c3QuaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9z aWduZWRfd2ViX2J1bmRsZXMvc2lnbmVkX3dlYl9idW5kbGVfaWQuaCIKKyAjaW5jbHVkZSAiY29t cG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvc2lnbmVkX3dlYl9idW5kbGVf aW50ZWdyaXR5X2Jsb2NrLmgiCisgI2luY2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2ln bmVkX3dlYl9idW5kbGVzL3NpZ25lZF93ZWJfYnVuZGxlX3NpZ25hdHVyZV9zdGFjay5oIgorICNp bmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9zaWduZWRf d2ViX2J1bmRsZV9zaWduYXR1cmVfc3RhY2tfZW50cnkuaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50 cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvc2lnbmVkX3dlYl9idW5kbGVfdXRpbHMu aCIKKysjaW5jbHVkZSAiY3J5cHRvL2hhc2guaCIKKyAjaW5jbHVkZSAidGhpcmRfcGFydHkvYWJz ZWlsLWNwcC9hYnNsL2Z1bmN0aW9uYWwvb3ZlcmxvYWQuaCIKKyAjaW5jbHVkZSAidGhpcmRfcGFy dHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvc2hhLmgiCisgCitAQCAtMzcsMTAgKzQw LDMyIEBAIG5hbWVzcGFjZSB7CisgCisgc3RkOjp2ZWN0b3I8dWludDhfdD4gQ3JlYXRlSW50ZWdy aXR5QmxvY2tDYm9yKAorICAgICBjb25zdCBTaWduZWRXZWJCdW5kbGVJbnRlZ3JpdHlCbG9jayYg aW50ZWdyaXR5X2Jsb2NrKSB7CistICBhdXRvIGliX2Nib3JfcnVzdCA9CistICAgICAgc2lnbmVk X3dlYl9idW5kbGVzOjpydXN0OjpjcmVhdGVfZW1wdHlfaW50ZWdyaXR5X2Jsb2NrX2Nib3IoCist ICAgICAgICAgIGludGVncml0eV9ibG9jay5hdHRyaWJ1dGVzX2Nib3IoKSk7CistICByZXR1cm4g c3RkOjp2ZWN0b3I8dWludDhfdD4oaWJfY2Jvcl9ydXN0LmJlZ2luKCksIGliX2Nib3JfcnVzdC5l bmQoKSk7CisrICAvLyBUaGlzIGZ1bmN0aW9uIGxvb2tzIGxpa2UgaXQgc2hvdWxkIHVzZSBhIGNi b3I6OlZhbHVlOjpBcnJheVZhbHVlIHRvIGJ1aWxkCisrICAvLyB0aGUgb3V0ZXIgYXJyYXksIGJ1 dCBpdCBjYW4ndDogb25lIG9mIHRoZSBlbGVtZW50cyBpcyBhIHByZS1lbmNvZGVkIENCT1IKKysg IC8vIHZhbHVlIHdoaWNoIHdlIGNhbid0IHNhZmVseSBkZWNvZGUgYmVjYXVzZSBpdCdzIHVudHJ1 c3RlZCBpbnB1dC4gVGhpcyBpcworKyAgLy8gb2J2aW91c2x5IHVuZGVzaXJhYmxlLCBiZWNhdXNl IHRoZXJlJ3Mgbm8gZ3VhcmFudGVlIGF0IGFsbCB0aGF0IHRoZQorKyAgLy8gcHJlLWVuY29kZWQg dmFsdWUgaXMgYWN0dWFsbHkgdmFsaWQgQ0JPUi4KKysgIC8vCisrICAvLyBUT0RPKGh0dHBzOi8v Y3JidWcuY29tLzQ1NDQ4NTkwMSk6IG9uY2UgdGhlcmUncyBhIG1lbW9yeS1zYWZlIENCT1IgcGFy c2VyLAorKyAgLy8gcmUtcGFyc2UgdGhlIHByZS1lbmNvZGVkIHZhbHVlLCB0aGVuIHJlLWVuY29k ZSBpdCBoZXJlIGluc3RlYWQgb2YKKysgIC8vIGNvbnN0cnVjdGluZyBhIENCT1IgYXJyYXkgYnkg aGFuZCBzbyB0aGF0IHdlJ3JlIGd1YXJhbnRlZWQgdGhhdCB0aGUgcmVzdWx0CisrICAvLyBvZiB0 aGlzIGZ1bmN0aW9uIGlzIHZhbGlkLgorKyAgc3RkOjp2ZWN0b3I8dWludDhfdD4gaWJfY2JvcjsK KysKKysgIC8vIDB4ODQgaXMgdGhlIGVuY29kaW5nIGJ5dGUgZm9yIGFuIGFycmF5IG9mIGxlbmd0 aCA0LgorKyAgaWJfY2Jvci5wdXNoX2JhY2soMHg4NCk7CisrICBiYXNlOjpFeHRlbmQoaWJfY2Jv ciwKKysgICAgICAgICAgICAgICAqY2Jvcjo6V3JpdGVyOjpXcml0ZShjYm9yOjpWYWx1ZShrSW50 ZWdyaXR5QmxvY2tNYWdpY0J5dGVzKSkpOworKyAgYmFzZTo6RXh0ZW5kKGliX2Nib3IsICpjYm9y OjpXcml0ZXI6OldyaXRlKAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYm9yOjpWYWx1 ZShrSW50ZWdyaXR5QmxvY2tWMlZlcnNpb25CeXRlcykpKTsKKysgIC8vIFdlIGNhbm5vdCBwYXJz ZSBgYXR0cmlidXRlcygpLmNib3IoKWAgYmFjayB0byBhIGNib3I6OlZhbHVlIGFzIHRoZXkKKysg IC8vIHRlY2huaWNhbGx5IHJlcHJlc2VudCB1bnRydXN0ZWQgaW5wdXQuCisrICBiYXNlOjpFeHRl bmQoaWJfY2JvciwgaW50ZWdyaXR5X2Jsb2NrLmF0dHJpYnV0ZXNfY2JvcigpKTsKKysgIC8vIEVu Y29kZSBhbiBlbXB0eSBzaWduYXR1cmUgYXJyYXkuCisrICBiYXNlOjpFeHRlbmQoaWJfY2JvciwK KysgICAgICAgICAgICAgICAqY2Jvcjo6V3JpdGVyOjpXcml0ZShjYm9yOjpWYWx1ZShjYm9yOjpW YWx1ZTo6QXJyYXlWYWx1ZSgpKSkpOworKworKyAgcmV0dXJuIGliX2Nib3I7CisgfQorIAorIGJh c2U6OmV4cGVjdGVkPHZvaWQsIFNpZ25lZFdlYkJ1bmRsZVNpZ25hdHVyZVZlcmlmaWVyOjpFcnJv cj4KK0BAIC0xMDQsNyArMTI5LDcgQEAgU2lnbmVkV2ViQnVuZGxlU2lnbmF0dXJlVmVyaWZpZXI6 OkNhbGN1bAorICAgICByZXR1cm4gYmFzZTo6dW5leHBlY3RlZChiYXNlOjpGaWxlOjpFcnJvclRv U3RyaW5nKGZpbGUuR2V0TGFzdEZpbGVFcnJvcigpKSk7CisgICB9CisgCistICBzaWduZWRfd2Vi X2J1bmRsZXM6OnJ1c3Q6OlNoYTUxMkhhc2hlciBoYXNoZXI7CisrICBjcnlwdG86Omhhc2g6Okhh c2hlciBoYXNoKGNyeXB0bzo6aGFzaDo6a1NoYTUxMik7CisgCisgICAvLyBDYWxjdWxhdGUgdGhl IGhhc2ggb2YgdGhlIFNpZ25lZCBXZWIgQnVuZGxlIGV4Y2x1ZGluZyBpdHMgaW50ZWdyaXR5IGJs b2NrLgorICAgLy8gVGhlIGZpbGUgbWlnaHQgYmUgdG9vIGJpZyB0byByZWFkIGl0IGludG8gbWVt b3J5IGFsbCBhdCBvbmNlLCB3aGljaCBpcyB3aHkKK0BAIC0xMjEsMTQgKzE0NiwxNSBAQCBTaWdu ZWRXZWJCdW5kbGVTaWduYXR1cmVWZXJpZmllcjo6Q2FsY3VsCisgICAgICAgICAgIGJhc2U6OkZp bGU6OkVycm9yVG9TdHJpbmcoZmlsZS5HZXRMYXN0RmlsZUVycm9yKCkpKTsKKyAgICAgfQorICAg ICBkYXRhLnJlc2l6ZSgqYnl0ZXNfcmVhZCk7CistICAgIGhhc2hlci51cGRhdGUoZGF0YSk7Cisr ICAgIGhhc2guVXBkYXRlKGRhdGEpOworIAorICAgICBpZiAoIWJhc2U6OkNoZWNrQWRkKG9mZnNl dCwgKmJ5dGVzX3JlYWQpLkFzc2lnbklmVmFsaWQoJm9mZnNldCkpIHsKKyAgICAgICByZXR1cm4g YmFzZTo6dW5leHBlY3RlZCgiVGhlIFNpZ25lZCBXZWIgQnVuZGxlIGlzIHRvbyBsYXJnZS4iKTsK KyAgICAgfQorICAgfQorIAorLSAgU0hBNTEyRGlnZXN0IGRpZ2VzdCA9IHN0ZDo6bW92ZShoYXNo ZXIpLmZpbmlzaCgpOworKyAgU0hBNTEyRGlnZXN0IGRpZ2VzdDsKKysgIGhhc2guRmluaXNoKGRp Z2VzdCk7CisgICByZXR1cm4gZGlnZXN0OworIH0KKyAKKy0tLSBhL2NvbXBvbmVudHMvd2ViX3Bh Y2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3NpZ25lZF93ZWJfYnVuZGxlX3V0aWxzLmNjCisrKysg Yi9jb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9zaWduZWRfd2ViX2J1 bmRsZV91dGlscy5jYworQEAgLTUsMTggKzUsMzcgQEAKKyAjaW5jbHVkZSAiY29tcG9uZW50cy93 ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvc2lnbmVkX3dlYl9idW5kbGVfdXRpbHMuaCIK KyAKKyAjaW5jbHVkZSA8Y3N0ZGludD4KKy0jaW5jbHVkZSA8dmVjdG9yPgorIAorLSNpbmNsdWRl ICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9ydXN0L3NpZ25lZF93 ZWJfYnVuZGxlc19ydXN0LmgiCisrI2luY2x1ZGUgImJhc2UvY29udGFpbmVycy9leHRlbmQuaCIK KysjaW5jbHVkZSAiYmFzZS9jb250YWluZXJzL3NwYW4uaCIKKysjaW5jbHVkZSAiYmFzZS9jb250 YWluZXJzL3NwYW5fd3JpdGVyLmgiCisgCisgbmFtZXNwYWNlIHdlYl9wYWNrYWdlIHsKKyAKKytu YW1lc3BhY2UgeworKworK3ZvaWQgQWRkSXRlbVRvUGF5bG9hZChzdGQ6OnZlY3Rvcjx1aW50OF90 PiYgcGF5bG9hZCwKKysgICAgICAgICAgICAgICAgICAgICAgYmFzZTo6c3Bhbjxjb25zdCB1aW50 OF90PiBpdGVtKSB7CisrICAvLyBFYWNoIGl0ZW0gdGhhdCBpcyBwYXJ0IG9mIHRoZSBwYXlsb2Fk IGlzIHByZWZpeGVkIHdpdGggaXRzIGxlbmd0aCBlbmNvZGVkCisrICAvLyBhcyBhIDY0IGJpdCB1 bnNpZ25lZCBpbnRlZ2VyLgorKyAgc3RkOjphcnJheTx1aW50OF90LCBzaXplb2YodWludDY0X3Qp PiBsZW5ndGg7CisrICBhdXRvIHdyaXRlciA9IGJhc2U6OlNwYW5Xcml0ZXIoYmFzZTo6c3Bhbihs ZW5ndGgpKTsKKysgIENIRUNLKHdyaXRlci5Xcml0ZVU2NEJpZ0VuZGlhbihpdGVtLnNpemUoKSkp OworKworKyAgYmFzZTo6RXh0ZW5kKHBheWxvYWQsIGJhc2U6OnNwYW4obGVuZ3RoKSk7CisrICBi YXNlOjpFeHRlbmQocGF5bG9hZCwgaXRlbSk7CisrfQorKworK30gIC8vIG5hbWVzcGFjZQorKwor IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IENyZWF0ZVNpZ25hdHVyZVBheWxvYWQoCisgICAgIGNvbnN0 IFNpZ25lZFdlYkJ1bmRsZVNpZ25hdHVyZURhdGEmIGRhdGEpIHsKKy0gIGF1dG8gcGF5bG9hZF9y dXN0ID0gc2lnbmVkX3dlYl9idW5kbGVzOjpydXN0OjpjcmVhdGVfc2lnbmF0dXJlX3BheWxvYWQo CistICAgICAgZGF0YS51bnNpZ25lZF93ZWJfYnVuZGxlX2hhc2gsIGRhdGEuaW50ZWdyaXR5X2Js b2NrX2Nib3IsCistICAgICAgZGF0YS5hdHRyaWJ1dGVzX2Nib3IpOworLSAgcmV0dXJuIHN0ZDo6 dmVjdG9yPHVpbnQ4X3Q+KHBheWxvYWRfcnVzdC5iZWdpbigpLCBwYXlsb2FkX3J1c3QuZW5kKCkp OworKyAgc3RkOjp2ZWN0b3I8dWludDhfdD4gcGF5bG9hZDsKKysgIEFkZEl0ZW1Ub1BheWxvYWQo cGF5bG9hZCwgZGF0YS51bnNpZ25lZF93ZWJfYnVuZGxlX2hhc2gpOworKyAgQWRkSXRlbVRvUGF5 bG9hZChwYXlsb2FkLCBkYXRhLmludGVncml0eV9ibG9ja19jYm9yKTsKKysgIEFkZEl0ZW1Ub1Bh eWxvYWQocGF5bG9hZCwgZGF0YS5hdHRyaWJ1dGVzX2Nib3IpOworKworKyAgcmV0dXJuIHBheWxv YWQ7CisgfQorIAorIH0gIC8vIG5hbWVzcGFjZSB3ZWJfcGFja2FnZQorLS0tIGEvdGhpcmRfcGFy dHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vQlVJTEQuZ24KKysrKyBiL3RoaXJkX3BhcnR5L2Js aW5rL3JlbmRlcmVyL3BsYXRmb3JtL0JVSUxELmduCitAQCAtMTg2LDYgKzE4NiwxOCBAQCBncm91 cCgibWFrZV9wbGF0Zm9ybV9nZW5lcmF0ZWQiKSB7CisgICBdCisgfQorIAorK3J1c3Rfc3RhdGlj X2xpYnJhcnkoImZvbnRfZm9ybWF0X2NoZWNrIikgeworKyAgYWxsb3dfdW5zYWZlID0gdHJ1ZSAg IyBOZWVkZWQgZm9yIEZGSSB0aGF0IHVuZGVycGlucyB0aGUgYGN4eGAgY3JhdGUuCisrICBjcmF0 ZV9yb290ID0gImZvbnRzL29wZW50eXBlL2Zvcm1hdF9jaGVjay5ycyIKKysgIHNvdXJjZXMgPSBb IGNyYXRlX3Jvb3QgXQorKyAgY3h4X2JpbmRpbmdzID0gWyBjcmF0ZV9yb290IF0KKysgIGRlcHMg PSBbCisrICAgICIvL3RoaXJkX3BhcnR5L3J1c3QvZm9udF90eXBlcy92MF8xMjpsaWIiLAorKyAg ICAiLy90aGlyZF9wYXJ0eS9ydXN0L3JlYWRfZm9udHMvdjBfNDM6bGliIiwKKysgICAgIi8vdGhp cmRfcGFydHkvcnVzdC9za3JpZmEvdjBfNDY6bGliIiwKKysgIF0KKyt9CisrCiAgcnVzdF9zdGF0 aWNfbGlicmFyeSgicnVzdGZmdF9mZmkiKSB7CiAgICBhbGxvd191bnNhZmUgPSB0cnVlICAjIE5l ZWRlZCBmb3IgRkZJIHRoYXQgdW5kZXJwaW5zIHRoZSBgY3h4YCBjcmF0ZS4KICAgIGNyYXRlX3Jv b3QgPSAiYXVkaW8vcnVzdGZmdF9mZmkucnMiCi1AQCAtMTgwNiw2ICsxNzk0LDcgQEAgY29tcG9u ZW50KCJwbGF0Zm9ybSIpIHsKK0BAIC0xNzkyLDcgKzE4MDQsNiBAQCBjb21wb25lbnQoInBsYXRm b3JtIikgewogICAgICAiOmFsbG93X2Rpc2NvdXJhZ2VkX3R5cGUiLAogICAgICAiOmJsaW5rX3Bs YXRmb3JtX3B1YmxpY19kZXBzIiwKICAgICAgIjpwbGF0Zm9ybV9leHBvcnQiLAotKyAgICAiLy9i dWlsZC9ydXN0L2NydWJpdCIsCistICAgICIvL2J1aWxkL3J1c3QvY3J1Yml0IiwKICAgICAgIi8v Z3B1L2NvbW1hbmRfYnVmZmVyL2NsaWVudDpyYXN0ZXJfaW50ZXJmYWNlIiwKICAgICAgIi8vbWVk aWEvY2FwdHVyZTpjYXB0dXJlX2xpYiIsCiAgICAgICIvL21vam8vcHVibGljL2NwcC9iYXNlIiwK LUBAIC0xODMyLDggKzE4MjEsOCBAQCBjb21wb25lbnQoInBsYXRmb3JtIikgeworQEAgLTE4MTks OCArMTgzMCw4IEBAIGNvbXBvbmVudCgicGxhdGZvcm0iKSB7CiAgICAgICIvL3VpL25hdGl2ZV90 aGVtZS9mZWF0dXJlcyIsCiAgICBdCiAgICBkZXBzID0gWwotLSAgICAiOmZvbnRfZm9ybWF0X2No ZWNrIiwKKysgICAgIjpmb250X2Zvcm1hdF9jaGVjayIsCiAgICAgICI6cnVzdGZmdF9mZmkiLAot KyAgICAiZm9udHM6Zm9udF9mb3JtYXRfYmluZGluZ3MiLAorLSAgICAiZm9udHM6Zm9udF9mb3Jt YXRfYmluZGluZ3MiLAogICAgICAiLy9iYXNlOmJhc2Vfc3RhdGljIiwKICAgICAgIi8vYmFzZS9h bGxvY2F0b3I6YnVpbGRmbGFncyIsCiAgICAgICIvL2J1aWxkOmNocm9tZWNhc3RfYnVpbGRmbGFn cyIsCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9u dHMvQlVJTEQuZ24gYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9C VUlMRC5nbgotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwMDAwMDAuLjUxYjli MDNiYTdjODUKLS0tLSAvZGV2L251bGwKLSsrKyBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVy L3BsYXRmb3JtL2ZvbnRzL0JVSUxELmduCi1AQCAtMCwwICsxLDE5IEBACi0rIyBDb3B5cmlnaHQg MjAyNiBUaGUgQ2hyb21pdW0gQXV0aG9ycwotKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg Z292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotKyMgZm91bmQgaW4g dGhlIExJQ0VOU0UgZmlsZS4KLSsKLStpbXBvcnQoIi8vYnVpbGQvcnVzdC9ydXN0X3N0YXRpY19s aWJyYXJ5LmduaSIpCi0rCi0rcnVzdF9zdGF0aWNfbGlicmFyeSgiZm9udF9mb3JtYXQiKSB7Ci0r ICBjcmF0ZV9yb290ID0gIm9wZW50eXBlL2Zvcm1hdF9jaGVjay5ycyIKLSsgIHNvdXJjZXMgPSBb IGNyYXRlX3Jvb3QgXQotKyAgY3BwX2FwaV9mcm9tX3J1c3QgPSB7Ci0rICAgIHRhcmdldF9uYW1l ID0gImZvbnRfZm9ybWF0X2JpbmRpbmdzIgotKyAgICBjcHBfbmFtZXNwYWNlID0gImZvbnRfZm9y bWF0IgotKyAgfQotKyAgZGVwcyA9IFsKLSsgICAgIi8vdGhpcmRfcGFydHkvcnVzdC9mb250X3R5 cGVzL3YwXzEyOmxpYiIsCi0rICAgICIvL3RoaXJkX3BhcnR5L3J1c3QvcmVhZF9mb250cy92MF80 MzpsaWIiLAotKyAgICAiLy90aGlyZF9wYXJ0eS9ydXN0L3NrcmlmYS92MF80NjpsaWIiLAotKyAg XQotK30KLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9m b250cy9vcGVudHlwZS9mb250X2Zvcm1hdF9jaGVjay5jYyBiL3RoaXJkX3BhcnR5L2JsaW5rL3Jl bmRlcmVyL3BsYXRmb3JtL2ZvbnRzL29wZW50eXBlL2ZvbnRfZm9ybWF0X2NoZWNrLmNjCi1pbmRl eCBiOWQyNjM5ODIyYmMwLi5mNThlOTQzM2QzOWY0IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkv YmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvQlVJTEQuZ24KKysrKyAvZGV2L251bGwKK0BA IC0xLDE5ICswLDAgQEAKKy0jIENvcHlyaWdodCAyMDI2IFRoZSBDaHJvbWl1bSBBdXRob3JzCist IyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNl bnNlIHRoYXQgY2FuIGJlCistIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLQorLWltcG9y dCgiLy9idWlsZC9ydXN0L3J1c3Rfc3RhdGljX2xpYnJhcnkuZ25pIikKKy0KKy1ydXN0X3N0YXRp Y19saWJyYXJ5KCJmb250X2Zvcm1hdCIpIHsKKy0gIGNyYXRlX3Jvb3QgPSAib3BlbnR5cGUvZm9y bWF0X2NoZWNrLnJzIgorLSAgc291cmNlcyA9IFsgY3JhdGVfcm9vdCBdCistICBjcHBfYXBpX2Zy b21fcnVzdCA9IHsKKy0gICAgdGFyZ2V0X25hbWUgPSAiZm9udF9mb3JtYXRfYmluZGluZ3MiCist ICAgIGNwcF9uYW1lc3BhY2UgPSAiZm9udF9mb3JtYXQiCistICB9CistICBkZXBzID0gWworLSAg ICAiLy90aGlyZF9wYXJ0eS9ydXN0L2ZvbnRfdHlwZXMvdjBfMTI6bGliIiwKKy0gICAgIi8vdGhp cmRfcGFydHkvcnVzdC9yZWFkX2ZvbnRzL3YwXzQzOmxpYiIsCistICAgICIvL3RoaXJkX3BhcnR5 L3J1c3Qvc2tyaWZhL3YwXzQ2OmxpYiIsCistICBdCistfQogLS0tIGEvdGhpcmRfcGFydHkvYmxp bmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvb3BlbnR5cGUvZm9udF9mb3JtYXRfY2hlY2suY2MK ICsrKyBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL29wZW50eXBl L2ZvbnRfZm9ybWF0X2NoZWNrLmNjCi1AQCAtNyw3ICs3LDYgQEAKK0BAIC03LDYgKzcsNyBAQAog ICNpbmNsdWRlICJiYXNlL2NvbnRhaW5lcnMvc3Bhbi5oIgogICNpbmNsdWRlICJiYXNlL2NvbnRh aW5lcnMvc3Bhbl9ydXN0LmgiCiAgI2luY2x1ZGUgImJhc2UvbnVtZXJpY3MvYnl0ZV9jb252ZXJz aW9ucy5oIgotLSNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9m b250cy9vcGVudHlwZS9mb3JtYXRfY2hlY2sucnMuaCIKKysjaW5jbHVkZSAidGhpcmRfcGFydHkv YmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvb3BlbnR5cGUvZm9ybWF0X2NoZWNrLnJzLmgi CiAgI2luY2x1ZGUgInRoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3J1bnRpbWVf ZW5hYmxlZF9mZWF0dXJlcy5oIgogICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJl ci9wbGF0Zm9ybS93dGYvdmVjdG9yLmgiCiAgI2luY2x1ZGUgInRoaXJkX3BhcnR5L3NraWEvaW5j bHVkZS9jb3JlL1NrVHlwZWZhY2UuaCIKLUBAIC0xNSwzNSArMTQsMzcgQEAKK0BAIC0xNCwzNyAr MTUsMzUgQEAKICBuYW1lc3BhY2UgYmxpbmsgewogIAogIEZvbnRGb3JtYXRDaGVjazo6Rm9udEZv cm1hdENoZWNrKHNrX3NwPFNrRGF0YT4gc2tfZGF0YSkKLS0gICAgOiBmb3JtYXRfaW5mb18oZm9u dF9mb3JtYXRfY2hlY2s6OmdldF9mb250X2Zvcm1hdF9pbmZvKAotKyAgICA6IGZvcm1hdF9pbmZv Xyhmb250X2Zvcm1hdDo6Z2V0X2ZvbnRfZm9ybWF0X2luZm8oCistICAgIDogZm9ybWF0X2luZm9f KGZvbnRfZm9ybWF0OjpnZXRfZm9udF9mb3JtYXRfaW5mbygKKysgICAgOiBmb3JtYXRfaW5mb18o Zm9udF9mb3JtYXRfY2hlY2s6OmdldF9mb250X2Zvcm1hdF9pbmZvKAogICAgICAgICAgICBiYXNl OjpTcGFuVG9SdXN0U2xpY2Uoc2tfZGF0YS0+Ynl0ZVNwYW4oKSkpKSB7fQogIAotK0ZvbnRGb3Jt YXRDaGVjazo6fkZvbnRGb3JtYXRDaGVjaygpID0gZGVmYXVsdDsKLSsKKy1Gb250Rm9ybWF0Q2hl Y2s6On5Gb250Rm9ybWF0Q2hlY2soKSA9IGRlZmF1bHQ7CistCiAgYm9vbCBGb250Rm9ybWF0Q2hl Y2s6OklzVmFyaWFibGVGb250KCkgY29uc3QgewotLSAgcmV0dXJuIGZvbnRfZm9ybWF0X2NoZWNr Ojppc192YXJpYWJsZSgqZm9ybWF0X2luZm9fKTsKLSsgIHJldHVybiBmb250X2Zvcm1hdDo6aXNf dmFyaWFibGUoZm9ybWF0X2luZm9fKTsKKy0gIHJldHVybiBmb250X2Zvcm1hdDo6aXNfdmFyaWFi bGUoZm9ybWF0X2luZm9fKTsKKysgIHJldHVybiBmb250X2Zvcm1hdF9jaGVjazo6aXNfdmFyaWFi bGUoKmZvcm1hdF9pbmZvXyk7CiAgfQogIAogIGJvb2wgRm9udEZvcm1hdENoZWNrOjpJc0NiZHRD YmxjQ29sb3JGb250KCkgY29uc3QgewotLSAgcmV0dXJuIGZvbnRfZm9ybWF0X2NoZWNrOjppc19j YmR0X2NibGMoKmZvcm1hdF9pbmZvXyk7Ci0rICByZXR1cm4gZm9udF9mb3JtYXQ6OmlzX2NiZHRf Y2JsYyhmb3JtYXRfaW5mb18pOworLSAgcmV0dXJuIGZvbnRfZm9ybWF0Ojppc19jYmR0X2NibGMo Zm9ybWF0X2luZm9fKTsKKysgIHJldHVybiBmb250X2Zvcm1hdF9jaGVjazo6aXNfY2JkdF9jYmxj KCpmb3JtYXRfaW5mb18pOwogIH0KICAKICBib29sIEZvbnRGb3JtYXRDaGVjazo6SXNFYmR0RWJs Y01vbm9jaHJvbWVGb250KCkgY29uc3QgewotLSAgcmV0dXJuIGZvbnRfZm9ybWF0X2NoZWNrOjpp c19lYmR0X2VibGMoKmZvcm1hdF9pbmZvXyk7Ci0rICByZXR1cm4gZm9udF9mb3JtYXQ6OmlzX2Vi ZHRfZWJsYyhmb3JtYXRfaW5mb18pOworLSAgcmV0dXJuIGZvbnRfZm9ybWF0Ojppc19lYmR0X2Vi bGMoZm9ybWF0X2luZm9fKTsKKysgIHJldHVybiBmb250X2Zvcm1hdF9jaGVjazo6aXNfZWJkdF9l YmxjKCpmb3JtYXRfaW5mb18pOwogIH0KICAKICBib29sIEZvbnRGb3JtYXRDaGVjazo6SXNDb2xy Q3BhbENvbG9yRm9udFYwKCkgY29uc3QgewotLSAgcmV0dXJuIGZvbnRfZm9ybWF0X2NoZWNrOjpp c19jb2xydjAoKmZvcm1hdF9pbmZvXyk7Ci0rICByZXR1cm4gZm9udF9mb3JtYXQ6OmlzX2NvbHJ2 MChmb3JtYXRfaW5mb18pOworLSAgcmV0dXJuIGZvbnRfZm9ybWF0Ojppc19jb2xydjAoZm9ybWF0 X2luZm9fKTsKKysgIHJldHVybiBmb250X2Zvcm1hdF9jaGVjazo6aXNfY29scnYwKCpmb3JtYXRf aW5mb18pOwogIH0KICAKICBib29sIEZvbnRGb3JtYXRDaGVjazo6SXNDb2xyQ3BhbENvbG9yRm9u dFYxKCkgY29uc3QgewotLSAgcmV0dXJuIGZvbnRfZm9ybWF0X2NoZWNrOjppc19jb2xydjEoKmZv cm1hdF9pbmZvXyk7Ci0rICByZXR1cm4gZm9udF9mb3JtYXQ6OmlzX2NvbHJ2MShmb3JtYXRfaW5m b18pOworLSAgcmV0dXJuIGZvbnRfZm9ybWF0Ojppc19jb2xydjEoZm9ybWF0X2luZm9fKTsKKysg IHJldHVybiBmb250X2Zvcm1hdF9jaGVjazo6aXNfY29scnYxKCpmb3JtYXRfaW5mb18pOwogIH0K ICAKICBib29sIEZvbnRGb3JtYXRDaGVjazo6SXNTYml4Q29sb3JGb250KCkgY29uc3QgewotLSAg cmV0dXJuIGZvbnRfZm9ybWF0X2NoZWNrOjppc19zYml4KCpmb3JtYXRfaW5mb18pOwotKyAgcmV0 dXJuIGZvbnRfZm9ybWF0Ojppc19zYml4KGZvcm1hdF9pbmZvXyk7CistICByZXR1cm4gZm9udF9m b3JtYXQ6OmlzX3NiaXgoZm9ybWF0X2luZm9fKTsKKysgIHJldHVybiBmb250X2Zvcm1hdF9jaGVj azo6aXNfc2JpeCgqZm9ybWF0X2luZm9fKTsKICB9CiAgCiAgYm9vbCBGb250Rm9ybWF0Q2hlY2s6 OklzQ2ZmMk91dGxpbmVGb250KCkgY29uc3QgewotLSAgcmV0dXJuIGZvbnRfZm9ybWF0X2NoZWNr Ojppc19jZmYyKCpmb3JtYXRfaW5mb18pOwotKyAgcmV0dXJuIGZvbnRfZm9ybWF0Ojppc19jZmYy KGZvcm1hdF9pbmZvXyk7CistICByZXR1cm4gZm9udF9mb3JtYXQ6OmlzX2NmZjIoZm9ybWF0X2lu Zm9fKTsKKysgIHJldHVybiBmb250X2Zvcm1hdF9jaGVjazo6aXNfY2ZmMigqZm9ybWF0X2luZm9f KTsKICB9CiAgCiAgYm9vbCBGb250Rm9ybWF0Q2hlY2s6OklzVmFyaWFibGVDb2xyVjBGb250KCkg Y29uc3QgewotQEAgLTU3LDcgKzU4LDcgQEAgYm9vbCBGb250Rm9ybWF0Q2hlY2s6OklzQ29sb3JG b250KCkgY29uc3QgeworQEAgLTU4LDcgKzU3LDcgQEAgYm9vbCBGb250Rm9ybWF0Q2hlY2s6Oklz Q29sb3JGb250KCkgY29ucwogIAogIGJvb2wgRm9udEZvcm1hdENoZWNrOjpJc0F2YXIyRm9udCgp IGNvbnN0IHsKICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpGb250Rm9ybWF0QXZh cjJFbmFibGVkKCkgJiYKLS0gICAgICAgICBmb250X2Zvcm1hdF9jaGVjazo6aXNfYXZhcjIoKmZv cm1hdF9pbmZvXyk7Ci0rICAgICAgICAgZm9udF9mb3JtYXQ6OmlzX2F2YXIyKGZvcm1hdF9pbmZv Xyk7CistICAgICAgICAgZm9udF9mb3JtYXQ6OmlzX2F2YXIyKGZvcm1hdF9pbmZvXyk7CisrICAg ICAgICAgZm9udF9mb3JtYXRfY2hlY2s6OmlzX2F2YXIyKCpmb3JtYXRfaW5mb18pOwogIH0KICAK ICBGb250Rm9ybWF0Q2hlY2s6OlZhcmlhYmxlRm9udFN1YlR5cGUgRm9udEZvcm1hdENoZWNrOjpQ cm9iZVZhcmlhYmxlRm9udCgKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJl ci9wbGF0Zm9ybS9mb250cy9vcGVudHlwZS9mb250X2Zvcm1hdF9jaGVjay5oIGIvdGhpcmRfcGFy dHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvb3BlbnR5cGUvZm9udF9mb3JtYXRfY2hl Y2suaAotaW5kZXggMTlkMjYzOTIzM2IwNy4uYWY1MGRiZGY3NGQwMCAxMDA2NDQKIC0tLSBhL3Ro aXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL29wZW50eXBlL2ZvbnRfZm9y bWF0X2NoZWNrLmgKICsrKyBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2Zv bnRzL29wZW50eXBlL2ZvbnRfZm9ybWF0X2NoZWNrLmgKIEBAIC01LDcgKzUsNyBAQAogICNpZm5k ZWYgVEhJUkRfUEFSVFlfQkxJTktfUkVOREVSRVJfUExBVEZPUk1fRk9OVFNfT1BFTlRZUEVfRk9O VF9GT1JNQVRfQ0hFQ0tfSF8KICAjZGVmaW5lIFRISVJEX1BBUlRZX0JMSU5LX1JFTkRFUkVSX1BM QVRGT1JNX0ZPTlRTX09QRU5UWVBFX0ZPTlRfRk9STUFUX0NIRUNLX0hfCiAgCi0tI2luY2x1ZGUg InRoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL29wZW50eXBlL2Zvcm1h dF9jaGVjay5ycy5oIgotKyNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0 Zm9ybS9mb250cy9mb250X2Zvcm1hdC5oIgorLSNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9y ZW5kZXJlci9wbGF0Zm9ybS9mb250cy9mb250X2Zvcm1hdC5oIgorKyNpbmNsdWRlICJ0aGlyZF9w YXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9vcGVudHlwZS9mb3JtYXRfY2hlY2su cnMuaCIKICAjaW5jbHVkZSAidGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vcGxh dGZvcm1fZXhwb3J0LmgiCiAgI2luY2x1ZGUgInRoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3Bs YXRmb3JtL3d0Zi9hbGxvY2F0b3IvYWxsb2NhdG9yLmgiCiAgI2luY2x1ZGUgInRoaXJkX3BhcnR5 L3NraWEvaW5jbHVkZS9jb3JlL1NrRGF0YS5oIgpAQCAtMTcxLDggKzcxMyw4IEBAIGluZGV4IDE5 ZDI2MzkyMzNiMDcuLmFmNTBkYmRmNzRkMDAgMTAwNjQ0CiAgCiAgIHB1YmxpYzoKICAgIGV4cGxp Y2l0IEZvbnRGb3JtYXRDaGVjayhza19zcDxTa0RhdGE+KTsKLS0gIHZpcnR1YWwgfkZvbnRGb3Jt YXRDaGVjaygpID0gZGVmYXVsdDsKLSsgIHZpcnR1YWwgfkZvbnRGb3JtYXRDaGVjaygpOworLSAg dmlydHVhbCB+Rm9udEZvcm1hdENoZWNrKCk7CisrICB2aXJ0dWFsIH5Gb250Rm9ybWF0Q2hlY2so KSA9IGRlZmF1bHQ7CiAgICB2aXJ0dWFsIGJvb2wgSXNWYXJpYWJsZUZvbnQoKSBjb25zdDsKICAg IHZpcnR1YWwgYm9vbCBJc0NiZHRDYmxjQ29sb3JGb250KCkgY29uc3Q7CiAgICB2aXJ0dWFsIGJv b2wgSXNFYmR0RWJsY01vbm9jaHJvbWVGb250KCkgY29uc3Q7CkBAIC0xODAsMTAzICs3MjIsMTAx IEBAIGluZGV4IDE5ZDI2MzkyMzNiMDcuLmFmNTBkYmRmNzRkMDAgMTAwNjQ0CiAgICBlbnVtIGNs YXNzIENPTFJWZXJzaW9uIHsga0NPTFJWMCwga0NPTFJWMSwga05vQ09MUiB9OwogIAogICBwcml2 YXRlOgotLSAgcnVzdDo6Qm94PGZvbnRfZm9ybWF0X2NoZWNrOjpGb250Rm9ybWF0SW5mbz4gZm9y bWF0X2luZm9fOwotKyAgZm9udF9mb3JtYXQ6OkZvbnRGb3JtYXRJbmZvIGZvcm1hdF9pbmZvXzsK Ky0gIGZvbnRfZm9ybWF0OjpGb250Rm9ybWF0SW5mbyBmb3JtYXRfaW5mb187CisrICBydXN0OjpC b3g8Zm9udF9mb3JtYXRfY2hlY2s6OkZvbnRGb3JtYXRJbmZvPiBmb3JtYXRfaW5mb187CiAgfTsK ICAKICB9ICAvLyBuYW1lc3BhY2UgYmxpbmsKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ibGlu ay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9vcGVudHlwZS9mb3JtYXRfY2hlY2sucnMgYi90aGly ZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9vcGVudHlwZS9mb3JtYXRfY2hl Y2sucnMKLWluZGV4IGVkYThlNmIyYjgxODguLmI5OWYwZWM4NjU1ZTYgMTAwNjQ0CiAtLS0gYS90 aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9vcGVudHlwZS9mb3JtYXRf Y2hlY2sucnMKICsrKyBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRz L29wZW50eXBlL2Zvcm1hdF9jaGVjay5ycwogQEAgLTIzLDcgKzIzLDcgQEAgcHViIHN0cnVjdCBG b250Rm9ybWF0SW5mbyB7CiAgICAgIGZvcm1hdF9mbGFnczogT3B0aW9uPEZvbnRGb3JtYXRGbGFn cz4sCiAgfQogIAotLXB1YiBmbiBnZXRfZm9udF9mb3JtYXRfaW5mbyhmb250X2J5dGVzOiAmW3U4 XSkgLT4gQm94PEZvbnRGb3JtYXRJbmZvPiB7Ci0rcHViIGZuIGdldF9mb250X2Zvcm1hdF9pbmZv KGZvbnRfYnl0ZXM6ICZbdThdKSAtPiBGb250Rm9ybWF0SW5mbyB7CistcHViIGZuIGdldF9mb250 X2Zvcm1hdF9pbmZvKGZvbnRfYnl0ZXM6ICZbdThdKSAtPiBGb250Rm9ybWF0SW5mbyB7CisrcHVi IGZuIGdldF9mb250X2Zvcm1hdF9pbmZvKGZvbnRfYnl0ZXM6ICZbdThdKSAtPiBCb3g8Rm9udEZv cm1hdEluZm8+IHsKICAgICAgbGV0IGZpbGVfcmVmID0gbWFrZV9mb250X3JlZl9pbnRlcm5hbChm b250X2J5dGVzLCAwKTsKICAKICAgICAgbWF0Y2ggZmlsZV9yZWYgewotQEAgLTMyLDExICszMiwx MSBAQCBwdWIgZm4gZ2V0X2ZvbnRfZm9ybWF0X2luZm8oZm9udF9ieXRlczogJlt1OF0pIC0+IEJv eDxGb250Rm9ybWF0SW5mbz4geworQEAgLTMyLDExICszMiwxMSBAQCBwdWIgZm4gZ2V0X2ZvbnRf Zm9ybWF0X2luZm8oZm9udF9ieXRlczoKICAgICAgICAgICAgICAgICAgZm9udC50YWJsZV9kaXJl Y3RvcnkoKS50YWJsZV9yZWNvcmRzKCkuaXRlcigpLm1hcCh8ZXwgZS50YWcoKSkuY29sbGVjdCgp OwogICAgICAgICAgICAgIGxldCBjb2xvcl92ZXJzaW9uID0gZ2V0X2NvbHJfdmVyc2lvbigmZm9u dCk7CiAgICAgICAgICAgICAgbGV0IGF2YXJfdmVyc2lvbiA9IGdldF9hdmFyX3ZlcnNpb24oJmZv bnQpOwotLSAgICAgICAgICAgIEJveDo6bmV3KEZvbnRGb3JtYXRJbmZvIHsKLSsgICAgICAgICAg ICBGb250Rm9ybWF0SW5mbyB7CistICAgICAgICAgICAgRm9udEZvcm1hdEluZm8geworKyAgICAg ICAgICAgIEJveDo6bmV3KEZvbnRGb3JtYXRJbmZvIHsKICAgICAgICAgICAgICAgICAgZm9ybWF0 X2ZsYWdzOiBTb21lKEZvbnRGb3JtYXRGbGFncyB7IHRhYmxlX3RhZ3MsIGNvbG9yX3ZlcnNpb24s IGF2YXJfdmVyc2lvbiB9KSwKLS0gICAgICAgICAgICB9KQotKyAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICB9CisrICAgICAgICAgICAgfSkKICAgICAgICAgIH0KLS0gICAgICAgIF8gPT4gQm94 OjpuZXcoRm9udEZvcm1hdEluZm86OmRlZmF1bHQoKSksCi0rICAgICAgICBfID0+IEZvbnRGb3Jt YXRJbmZvOjpkZWZhdWx0KCksCistICAgICAgICBfID0+IEZvbnRGb3JtYXRJbmZvOjpkZWZhdWx0 KCksCisrICAgICAgICBfID0+IEJveDo6bmV3KEZvbnRGb3JtYXRJbmZvOjpkZWZhdWx0KCkpLAog ICAgICB9CiAgfQogIAotQEAgLTQ0LDEwICs0NCwxMCBAQCBmbiBnZXRfY29scl92ZXJzaW9uKGZv bnRfcmVmOiAmRm9udFJlZikgLT4gT3B0aW9uPHUxNj4geworQEAgLTQ0LDEwICs0NCwxMCBAQCBm biBnZXRfY29scl92ZXJzaW9uKGZvbnRfcmVmOiAmRm9udFJlZikKICAgICAgU29tZShmb250X3Jl Zi5jb2xyKCkub2soKT8udmVyc2lvbigpKQogIH0KICAKLS1mbiBpc19jb2xydjEoZm9ybWF0X2lu Zm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbCB7Ci0rcHViIGZuIGlzX2NvbHJ2MShmb3JtYXRf aW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKKy1wdWIgZm4gaXNfY29scnYxKGZvcm1h dF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2wgeworK2ZuIGlzX2NvbHJ2MShmb3JtYXRf aW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKICAgICAgbWF0Y2hlcyEoJmZvcm1hdF9p bmZvLmZvcm1hdF9mbGFncywgU29tZShGb250Rm9ybWF0RmxhZ3MgeyBjb2xvcl92ZXJzaW9uOiBT b21lKDEpLCAuLiB9KSwpCiAgfQotLWZuIGlzX2NvbHJ2MChmb3JtYXRfaW5mbzogJkZvbnRGb3Jt YXRJbmZvKSAtPiBib29sIHsKLStwdWIgZm4gaXNfY29scnYwKGZvcm1hdF9pbmZvOiAmRm9udEZv cm1hdEluZm8pIC0+IGJvb2wgeworLXB1YiBmbiBpc19jb2xydjAoZm9ybWF0X2luZm86ICZGb250 Rm9ybWF0SW5mbykgLT4gYm9vbCB7CisrZm4gaXNfY29scnYwKGZvcm1hdF9pbmZvOiAmRm9udEZv cm1hdEluZm8pIC0+IGJvb2wgewogICAgICBtYXRjaGVzISgmZm9ybWF0X2luZm8uZm9ybWF0X2Zs YWdzLCBTb21lKEZvbnRGb3JtYXRGbGFncyB7IGNvbG9yX3ZlcnNpb246IFNvbWUoMCksIC4uIH0p LCkKICB9CiAgCi1AQCAtNTYsNyArNTYsNyBAQCBmbiBnZXRfYXZhcl92ZXJzaW9uKGZvbnRfcmVm OiAmRm9udFJlZikgLT4gT3B0aW9uPCh1MTYsIHUxNik+IHsKK0BAIC01Niw3ICs1Niw3IEBAIGZu IGdldF9hdmFyX3ZlcnNpb24oZm9udF9yZWY6ICZGb250UmVmKQogICAgICBTb21lKCh2ZXJzaW9u Lm1ham9yLCB2ZXJzaW9uLm1pbm9yKSkKICB9CiAgCi0tZm4gaXNfYXZhcjIoZm9ybWF0X2luZm86 ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbCB7Ci0rcHViIGZuIGlzX2F2YXIyKGZvcm1hdF9pbmZv OiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2wgeworLXB1YiBmbiBpc19hdmFyMihmb3JtYXRfaW5m bzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKKytmbiBpc19hdmFyMihmb3JtYXRfaW5mbzog JkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKICAgICAgbWF0Y2hlcyEoJmZvcm1hdF9pbmZvLmZv cm1hdF9mbGFncywgU29tZShGb250Rm9ybWF0RmxhZ3MgeyBhdmFyX3ZlcnNpb246IFNvbWUoKDIs IF8pKSwgLi4gfSksKQogIH0KICAKLUBAIC02OSwzOSArNjksMjIgQEAgZm4gaGFzX3RhZ3MoZm9y bWF0X2luZm86ICZGb250Rm9ybWF0SW5mbywgcXVlcnk6ICZbVGFnXSkgLT4gYm9vbCB7CitAQCAt NjksMjIgKzY5LDM5IEBAIGZuIGhhc190YWdzKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8K ICAgICAgfQogIH0KICAKLS1mbiBpc192YXJpYWJsZShmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJ bmZvKSAtPiBib29sIHsKLStwdWIgZm4gaXNfdmFyaWFibGUoZm9ybWF0X2luZm86ICZGb250Rm9y bWF0SW5mbykgLT4gYm9vbCB7CistcHViIGZuIGlzX3ZhcmlhYmxlKGZvcm1hdF9pbmZvOiAmRm9u dEZvcm1hdEluZm8pIC0+IGJvb2wgeworK2ZuIGlzX3ZhcmlhYmxlKGZvcm1hdF9pbmZvOiAmRm9u dEZvcm1hdEluZm8pIC0+IGJvb2wgewogICAgICBoYXNfdGFncyhmb3JtYXRfaW5mbywgJltUYWc6 Om5ldyhiImZ2YXIiKV0pCiAgfQogIAotLWZuIGlzX3NiaXgoZm9ybWF0X2luZm86ICZGb250Rm9y bWF0SW5mbykgLT4gYm9vbCB7Ci0rcHViIGZuIGlzX3NiaXgoZm9ybWF0X2luZm86ICZGb250Rm9y bWF0SW5mbykgLT4gYm9vbCB7CistcHViIGZuIGlzX3NiaXgoZm9ybWF0X2luZm86ICZGb250Rm9y bWF0SW5mbykgLT4gYm9vbCB7CisrZm4gaXNfc2JpeChmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJ bmZvKSAtPiBib29sIHsKICAgICAgaGFzX3RhZ3MoZm9ybWF0X2luZm8sICZbVGFnOjpuZXcoYiJz Yml4IildKQogIH0KICAKLS1mbiBpc19jYmR0X2NibGMoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0 SW5mbykgLT4gYm9vbCB7Ci0rcHViIGZuIGlzX2NiZHRfY2JsYyhmb3JtYXRfaW5mbzogJkZvbnRG b3JtYXRJbmZvKSAtPiBib29sIHsKKy1wdWIgZm4gaXNfY2JkdF9jYmxjKGZvcm1hdF9pbmZvOiAm Rm9udEZvcm1hdEluZm8pIC0+IGJvb2wgeworK2ZuIGlzX2NiZHRfY2JsYyhmb3JtYXRfaW5mbzog JkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKICAgICAgaGFzX3RhZ3MoZm9ybWF0X2luZm8sICZb VGFnOjpuZXcoYiJDQkRUIiksIFRhZzo6bmV3KGIiQ0JMQyIpXSkKICB9CiAgCi0tZm4gaXNfZWJk dF9lYmxjKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2wgewotK3B1YiBmbiBp c19lYmR0X2VibGMoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbCB7CistcHVi IGZuIGlzX2ViZHRfZWJsYyhmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsK KytmbiBpc19lYmR0X2VibGMoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbCB7 CiAgICAgIGhhc190YWdzKGZvcm1hdF9pbmZvLCAmW1RhZzo6bmV3KGIiRUJEVCIpLCBUYWc6Om5l dyhiIkVCTEMiKV0pCiAgfQogIAotLWZuIGlzX2NmZjIoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0 SW5mbykgLT4gYm9vbCB7Ci0rcHViIGZuIGlzX2NmZjIoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0 SW5mbykgLT4gYm9vbCB7CistcHViIGZuIGlzX2NmZjIoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0 SW5mbykgLT4gYm9vbCB7CisrZm4gaXNfY2ZmMihmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZv KSAtPiBib29sIHsKICAgICAgaGFzX3RhZ3MoZm9ybWF0X2luZm8sICZbVGFnOjpuZXcoYiJDRkYy IildKQogIH0KLS0KLS0jW2N4eDo6YnJpZGdlKG5hbWVzcGFjZSA9ICJmb250X2Zvcm1hdF9jaGVj ayIpXQotLXB1YiBtb2QgZmZpIHsKLS0gICAgZXh0ZXJuICJSdXN0IiB7Ci0tICAgICAgICB0eXBl IEZvbnRGb3JtYXRJbmZvOwotLQotLSAgICAgICAgZm4gZ2V0X2ZvbnRfZm9ybWF0X2luZm8oZm9u dF9ieXRlczogJlt1OF0pIC0+IEJveDxGb250Rm9ybWF0SW5mbz47Ci0tICAgICAgICBmbiBpc19j b2xydjEoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbDsKLS0gICAgICAgIGZu IGlzX2NvbHJ2MChmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sOwotLSAgICAg ICAgZm4gaXNfY2JkdF9jYmxjKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2w7 Ci0tICAgICAgICBmbiBpc19lYmR0X2VibGMoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykg LT4gYm9vbDsKLS0gICAgICAgIGZuIGlzX3ZhcmlhYmxlKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1h dEluZm8pIC0+IGJvb2w7Ci0tICAgICAgICBmbiBpc19zYml4KGZvcm1hdF9pbmZvOiAmRm9udEZv cm1hdEluZm8pIC0+IGJvb2w7Ci0tICAgICAgICBmbiBpc19jZmYyKGZvcm1hdF9pbmZvOiAmRm9u dEZvcm1hdEluZm8pIC0+IGJvb2w7Ci0tICAgICAgICBmbiBpc19hdmFyMihmb3JtYXRfaW5mbzog JkZvbnRGb3JtYXRJbmZvKSAtPiBib29sOwotLSAgICB9Ci0tfQorKworKyNbY3h4OjpicmlkZ2Uo bmFtZXNwYWNlID0gImZvbnRfZm9ybWF0X2NoZWNrIildCisrcHViIG1vZCBmZmkgeworKyAgICBl eHRlcm4gIlJ1c3QiIHsKKysgICAgICAgIHR5cGUgRm9udEZvcm1hdEluZm87CisrCisrICAgICAg ICBmbiBnZXRfZm9udF9mb3JtYXRfaW5mbyhmb250X2J5dGVzOiAmW3U4XSkgLT4gQm94PEZvbnRG b3JtYXRJbmZvPjsKKysgICAgICAgIGZuIGlzX2NvbHJ2MShmb3JtYXRfaW5mbzogJkZvbnRGb3Jt YXRJbmZvKSAtPiBib29sOworKyAgICAgICAgZm4gaXNfY29scnYwKGZvcm1hdF9pbmZvOiAmRm9u dEZvcm1hdEluZm8pIC0+IGJvb2w7CisrICAgICAgICBmbiBpc19jYmR0X2NibGMoZm9ybWF0X2lu Zm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbDsKKysgICAgICAgIGZuIGlzX2ViZHRfZWJsYyhm b3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sOworKyAgICAgICAgZm4gaXNfdmFy aWFibGUoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbDsKKysgICAgICAgIGZu IGlzX3NiaXgoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbDsKKysgICAgICAg IGZuIGlzX2NmZjIoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbDsKKysgICAg ICAgIGZuIGlzX2F2YXIyKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2w7Cisr ICAgIH0KKyt9CgpkaWZmIC0tZ2l0IGEvY2hyb21pdW0tMTU0LWZ0YmZzLXByaXZhdGUtdmVyaWZp Y2F0aW9uLXRva2Vucy5wYXRjaCBiL2Nocm9taXVtLTE1NC1mdGJmcy1wcml2YXRlLXZlcmlmaWNh dGlvbi10b2tlbnMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTBi ZmQ2MQotLS0gL2Rldi9udWxsCisrKyBiL2Nocm9taXVtLTE1NC1mdGJmcy1wcml2YXRlLXZlcmlm aWNhdGlvbi10b2tlbnMucGF0Y2gKQEAgLTAsMCArMSwyOTcgQEAKK3VuZ29vZ2xlZCBjaHJvbWl1 bSBwYXRjaCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS91bmdvb2dsZWQtc29mdHdhcmUvdW5nb29n bGVkLWNocm9taXVtL3B1bGwvMzk2NgorCistLS0gYS9jaHJvbWUvYnJvd3Nlci9CVUlMRC5nbgor KysrIGIvY2hyb21lL2Jyb3dzZXIvQlVJTEQuZ24KK0BAIC0xMDIyLDcgKzEwMjIsNiBAQCBzb3Vy Y2Vfc2V0KCJjb3JlIikgeworICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcmVsb2FkaW5nL3NlYXJj aF9wcmVsb2FkOmZlYXR1cmUiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcml2YWN5X3NhbmRi b3g6aGVhZGVycyIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3ByaXZhdGVfYWkiLAorLSAgICAi Ly9jaHJvbWUvYnJvd3Nlci9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMiLAorICAgICAiLy9j aHJvbWUvYnJvd3Nlci9wcm9maWxlczptaXNjIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJv ZmlsZXM6cHJvZmlsZV9pb19kYXRhIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJvZmlsZXM6 cHJvZmlsZXNfZXh0cmFfcGFydHMiLAorQEAgLTIyMTUsNyArMjIxNCw2IEBAIHNvdXJjZV9zZXQo ImJyb3dzZXIiKSB7CisgICAgICIvL2Nocm9tZS9icm93c2VyL3ByZWxvYWRpbmcvc2VhcmNoX3By ZWxvYWQiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcml2YWN5IiwKKyAgICAgIi8vY2hyb21l L2Jyb3dzZXIvcHJpdmFjeV9zYW5kYm94OmltcGwiLAorLSAgICAiLy9jaHJvbWUvYnJvd3Nlci9w cml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcm9m aWxlczptaXNjIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJvZmlsZXM6cHJvZmlsZV91dGls X2ltcGwiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcm9maWxlczpwcm9maWxlc19leHRyYV9w YXJ0c19pbXBsIiwKKy0tLSBhL2Nocm9tZS9icm93c2VyL2Jyb3dzaW5nX2RhdGEvQlVJTEQuZ24K KysrKyBiL2Nocm9tZS9icm93c2VyL2Jyb3dzaW5nX2RhdGEvQlVJTEQuZ24KK0BAIC0xMjUsNyAr MTI1LDYgQEAgc291cmNlX3NldCgiaW1wbCIpIHsKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJl bG9hZGluZy9wcmVmZXRjaC9ub19zdGF0ZV9wcmVmZXRjaCIsCisgICAgICIvL2Nocm9tZS9icm93 c2VyL3ByZWxvYWRpbmcvcHJlZmV0Y2gvc2VhcmNoX3ByZWZldGNoIiwKKyAgICAgIi8vY2hyb21l L2Jyb3dzZXIvcHJpdmFjeV9zYW5kYm94OmhlYWRlcnMiLAorLSAgICAiLy9jaHJvbWUvYnJvd3Nl ci9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9w cm9maWxlcy9rZWVwX2FsaXZlIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcmVhZGluZ19saXN0 IiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvc2FmZV9icm93c2luZyIsCitAQCAtMjY3LDcgKzI2 Niw2IEBAIHNvdXJjZV9zZXQoInVuaXRfdGVzdHMiKSB7CisgICAgICIvL2Nocm9tZS9icm93c2Vy L3BheW1lbnRzL2Jyb3dzZXJfYmluZGluZzpicm93c2VyX2JvdW5kX2tleV9kZWxldGVyIiwKKyAg ICAgIi8vY2hyb21lL2Jyb3dzZXIvcGF5bWVudHMvYnJvd3Nlcl9iaW5kaW5nOnRlc3Rfc3VwcG9y dCIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3Blcm1pc3Npb25zIiwKKy0gICAgIi8vY2hyb21l L2Jyb3dzZXIvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zIiwKKyAgICAgIi8vY2hyb21lL2Jy b3dzZXIvcmVhZGluZ19saXN0IiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvc2FmZV9icm93c2lu Zzp2ZXJkaWN0X2NhY2hlX21hbmFnZXJfZmFjdG9yeSIsCisgICAgICIvL2Nocm9tZS9icm93c2Vy L3NlZ21lbnRhdGlvbl9wbGF0Zm9ybSIsCitAQCAtMjk1LDcgKzI5Myw2IEBAIHNvdXJjZV9zZXQo InVuaXRfdGVzdHMiKSB7CisgICAgICIvL2NvbXBvbmVudHMvcHJpdmFjeV9zYW5kYm94OnByaXZh Y3lfc2FuZGJveF9zZXR0aW5nc19oZWFkZXJzIiwKKyAgICAgIi8vY29tcG9uZW50cy9wcml2YWN5 X3NhbmRib3gvcHJpdmFjeV9zYW5kYm94X2F0dGVzdGF0aW9ucyIsCisgICAgICIvL2NvbXBvbmVu dHMvcHJpdmFjeV9zYW5kYm94L3ByaXZhY3lfc2FuZGJveF9hdHRlc3RhdGlvbnM6dGVzdF9zdXBw b3J0IiwKKy0gICAgIi8vY29tcG9uZW50cy9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMvY29t bW9uOnByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vuc19kYXRhYmFzZSIsCisgICAgICIvL2NvbXBv bmVudHMvcmVhZGluZ19saXN0L2NvcmU6dGVzdF9zdXBwb3J0IiwKKyAgICAgIi8vY29tcG9uZW50 cy9zYWZlX2Jyb3dzaW5nL2NvcmUvYnJvd3Nlcjp2ZXJkaWN0X2NhY2hlX21hbmFnZXIiLAorICAg ICAiLy9jb21wb25lbnRzL3NpdGVfZW5nYWdlbWVudC9jb250ZW50IiwKKy0tLSBhL2Nocm9tZS9i cm93c2VyL2Jyb3dzaW5nX2RhdGEvY2hyb21lX2Jyb3dzaW5nX2RhdGFfbW9kZWxfZGVsZWdhdGUu Y2MKKysrKyBiL2Nocm9tZS9icm93c2VyL2Jyb3dzaW5nX2RhdGEvY2hyb21lX2Jyb3dzaW5nX2Rh dGFfbW9kZWxfZGVsZWdhdGUuY2MKK0BAIC0xMjcsMTUgKzEyNyw2IEBAIHZvaWQgQ2hyb21lQnJv d3NpbmdEYXRhTW9kZWxEZWxlZ2F0ZTo6R2UKKyAKKyAgIEdldEFsbE1lZGlhRGV2aWNlU2FsdERh dGFLZXlzKGNvbmN1cnJlbnQuQ3JlYXRlQ2FsbGJhY2soKSwge30pOworIAorLSAgaWYgKGJhc2U6 OkZlYXR1cmVMaXN0OjpJc0VuYWJsZWQoCistICAgICAgICAgIG5ldDo6ZmVhdHVyZXM6OmtFbmFi bGVQcml2YXRlVmVyaWZpY2F0aW9uVG9rZW5zKSkgeworLSAgICBpZiAoYXV0byogcHZ0X3NlcnZp Y2UgPQorLSAgICAgICAgICAgIFByaXZhdGVWZXJpZmljYXRpb25Ub2tlbnNTZXJ2aWNlRmFjdG9y eTo6R2V0Rm9yUHJvZmlsZShwcm9maWxlXykpIHsKKy0gICAgICBwdnRfc2VydmljZS0+R2V0VG9r ZW5Jc3N1ZXJzKAorLSAgICAgICAgICBiYXNlOjpCaW5kT25jZSgmUHJpdmF0ZVZlcmlmaWNhdGlv blRva2VuQnJvd3NpbmdEYXRhVG9EZWxlZ2F0ZUVudHJpZXMpCistICAgICAgICAgICAgICAuVGhl bihjb25jdXJyZW50LkNyZWF0ZUNhbGxiYWNrKCkpKTsKKy0gICAgfQorLSAgfQorIAorICAgLy8g VE9ETyhjcmJ1Zy5jb20vNDAyMDU2MDMpOiBJbXBsZW1lbnQgZGF0YSByZXRyaWV2YWwgZm9yIHJl bWFpbmluZyBkYXRhCisgICAvLyB0eXBlcy4KK0BAIC0xODAsMjAgKzE3MSw2IEBAIHZvaWQgQ2hy b21lQnJvd3NpbmdEYXRhTW9kZWxEZWxlZ2F0ZTo6UmUKKyAgIH0KKyAjZW5kaWYgIC8vICFCVUlM REZMQUcoSVNfQU5EUk9JRCkKKyAKKy0gIGlmIChiYXNlOjpGZWF0dXJlTGlzdDo6SXNFbmFibGVk KAorLSAgICAgICAgICBuZXQ6OmZlYXR1cmVzOjprRW5hYmxlUHJpdmF0ZVZlcmlmaWNhdGlvblRv a2VucykgJiYKKy0gICAgICBzdG9yYWdlX3R5cGVzLkhhcyhzdGF0aWNfY2FzdDxCcm93c2luZ0Rh dGFNb2RlbDo6U3RvcmFnZVR5cGU+KAorLSAgICAgICAgICBTdG9yYWdlVHlwZTo6a1ByaXZhdGVW ZXJpZmljYXRpb25Ub2tlbnMpKSkgeworLSAgICBpZiAoY29uc3QgdXJsOjpPcmlnaW4qIG9yaWdp biA9IHN0ZDo6Z2V0X2lmPHVybDo6T3JpZ2luPigmZGF0YV9rZXkpKSB7CistICAgICAgaWYgKGF1 dG8qIHB2dF9zZXJ2aWNlID0KKy0gICAgICAgICAgICAgIFByaXZhdGVWZXJpZmljYXRpb25Ub2tl bnNTZXJ2aWNlRmFjdG9yeTo6R2V0Rm9yUHJvZmlsZSgKKy0gICAgICAgICAgICAgICAgICBwcm9m aWxlXykpIHsKKy0gICAgICAgIHB2dF9zZXJ2aWNlLT5EZWxldGVUb2tlbnMoYmFzZTo6VGltZSgp LCBiYXNlOjpUaW1lOjpNYXgoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uY3VycmVudC5DcmVhdGVDbG9zdXJlKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0ZDo6dmVjdG9yPHVybDo6T3JpZ2luPnsqb3JpZ2lufSk7CistICAgICAgfQorLSAg ICB9CistICB9CisgCisgICBzdGQ6Om1vdmUoY29uY3VycmVudCkuRG9uZShzdGQ6Om1vdmUoY2Fs bGJhY2spKTsKKyB9CistLS0gYS9jaHJvbWUvYnJvd3Nlci9icm93c2luZ19kYXRhL2Nocm9tZV9i cm93c2luZ19kYXRhX3JlbW92ZXJfZGVsZWdhdGUuY2MKKysrKyBiL2Nocm9tZS9icm93c2VyL2Jy b3dzaW5nX2RhdGEvY2hyb21lX2Jyb3dzaW5nX2RhdGFfcmVtb3Zlcl9kZWxlZ2F0ZS5jYworQEAg LTcyMCwyOSArNzIwLDYgQEAgdm9pZCBDaHJvbWVCcm93c2luZ0RhdGFSZW1vdmVyRGVsZWdhdGU6 OgorICNlbmRpZiAgLy8gQlVJTERGTEFHKElTX0NIUk9NRU9TKQorICAgfQorIAorLSAgLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vCistICAvLyBEQVRBX1RZUEVfUFJJVkFURV9WRVJJRklDQVRJT05fVE9L RU5TCistICBpZiAocmVtb3ZlX21hc2sgJiBjb25zdGFudHM6OkRBVEFfVFlQRV9QUklWQVRFX1ZF UklGSUNBVElPTl9UT0tFTlMpIHsKKy0gICAgaWYgKGJhc2U6OkZlYXR1cmVMaXN0OjpJc0VuYWJs ZWQoCistICAgICAgICAgICAgbmV0OjpmZWF0dXJlczo6a0VuYWJsZVByaXZhdGVWZXJpZmljYXRp b25Ub2tlbnMpKSB7CistICAgICAgaWYgKGF1dG8qIHB2dF9zZXJ2aWNlID0KKy0gICAgICAgICAg ICAgIFByaXZhdGVWZXJpZmljYXRpb25Ub2tlbnNTZXJ2aWNlRmFjdG9yeTo6R2V0Rm9yUHJvZmls ZSgKKy0gICAgICAgICAgICAgICAgICBwcm9maWxlXykpIHsKKy0gICAgICAgIGF1dG8gZG9uZV9j bG9zdXJlID0gQ3JlYXRlVGFza0NvbXBsZXRpb25DbG9zdXJlKAorLSAgICAgICAgICAgIFRyYWNp bmdEYXRhVHlwZTo6a1ByaXZhdGVWZXJpZmljYXRpb25Ub2tlbnMpOworLQorLSAgICAgICAgaWYg KGZpbHRlcl9idWlsZGVyLT5NYXRjaGVzQWxsT3JpZ2luc0FuZERvbWFpbnMoKSkgeworLSAgICAg ICAgICBwdnRfc2VydmljZS0+RGVsZXRlVG9rZW5zKGRlbGV0ZV9iZWdpbl8sIGRlbGV0ZV9lbmRf LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6bW92ZShkb25lX2Ns b3N1cmUpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qaXNzdWVycz0q L3N0ZDo6bnVsbG9wdCk7CistICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICBwdnRfc2Vydmlj ZS0+RGVsZXRlVG9rZW5zQnlGaWx0ZXIoCistICAgICAgICAgICAgICBkZWxldGVfYmVnaW5fLCBk ZWxldGVfZW5kXywKKy0gICAgICAgICAgICAgIGZpbHRlcl9idWlsZGVyLT5CdWlsZFN0b3JhZ2VL ZXlGaWx0ZXIoKSwgc3RkOjptb3ZlKGRvbmVfY2xvc3VyZSkpOworLSAgICAgICAgfQorLSAgICAg IH0KKy0gICAgfQorLSAgfQorIAorICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAvLyBEQVRB X1RZUEVfQ09OVEVOVF9TRVRUSU5HUworLS0tIGEvY2hyb21lL2Jyb3dzZXIvY2hyb21lX2NvbnRl bnRfYnJvd3Nlcl9jbGllbnQuY2MKKysrKyBiL2Nocm9tZS9icm93c2VyL2Nocm9tZV9jb250ZW50 X2Jyb3dzZXJfY2xpZW50LmNjCitAQCAtNjAwOSwyMSArNjAwOSw2IEBAIENocm9tZUNvbnRlbnRC cm93c2VyQ2xpZW50OjpDcmVhdGVVUkxMb2EKKyAgICAgcmVzdWx0LnB1c2hfYmFjayhzdGQ6Om1v dmUoc2lnbmluX3Rocm90dGxlKSk7CisgICB9CisgCistICBpZiAoYmFzZTo6RmVhdHVyZUxpc3Q6 OklzRW5hYmxlZCgKKy0gICAgICAgICAgbmV0OjpmZWF0dXJlczo6a0VuYWJsZVByaXZhdGVWZXJp ZmljYXRpb25Ub2tlbnMpICYmCistICAgICAgcmVxdWVzdC5pc19vdXRlcm1vc3RfbWFpbl9mcmFt ZSkgeworLSAgICBpZiAoYXV0byogcHZ0X3NlcnZpY2UgPQorLSAgICAgICAgICAgIFByaXZhdGVW ZXJpZmljYXRpb25Ub2tlbnNTZXJ2aWNlRmFjdG9yeTo6R2V0Rm9yUHJvZmlsZShwcm9maWxlKSkg eworLSAgICAgIGF1dG8gdXJsX2xvYWRlcl9mYWN0b3J5ID0gcHJvZmlsZS0+R2V0RGVmYXVsdFN0 b3JhZ2VQYXJ0aXRpb24oKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ R2V0VVJMTG9hZGVyRmFjdG9yeUZvckJyb3dzZXJQcm9jZXNzKCk7CistICAgICAgaWYgKGF1dG8g cHZ0X3Rocm90dGxlID0KKy0gICAgICAgICAgICAgIFByaXZhdGVWZXJpZmljYXRpb25Ub2tlbnNV UkxMb2FkZXJUaHJvdHRsZTo6Q3JlYXRlKAorLSAgICAgICAgICAgICAgICAgIHB2dF9zZXJ2aWNl LCBwcm9maWxlLT5Jc09mZlRoZVJlY29yZCgpLAorLSAgICAgICAgICAgICAgICAgIHN0ZDo6bW92 ZSh1cmxfbG9hZGVyX2ZhY3RvcnkpKSkgeworLSAgICAgICAgcmVzdWx0LnB1c2hfYmFjayhzdGQ6 Om1vdmUocHZ0X3Rocm90dGxlKSk7CistICAgICAgfQorLSAgICB9CistICB9CisgCisgICBpZiAo YXV0byBjb250ZXh0dWFsX3Rhc2tzX3Rocm90dGxlID0KKyAgICAgICAgICAgY29udGV4dHVhbF90 YXNrczo6Q29udGV4dHVhbFRhc2tzVVJMTG9hZGVyVGhyb3R0bGU6Ok1heWJlQ3JlYXRlKAorLS0t IGEvY2hyb21lL2Jyb3dzZXIvY29tcG9uZW50X3VwZGF0ZXIvQlVJTEQuZ24KKysrKyBiL2Nocm9t ZS9icm93c2VyL2NvbXBvbmVudF91cGRhdGVyL0JVSUxELmduCitAQCAtMTQ3LDcgKzE0Nyw2IEBA IHNvdXJjZV9zZXQoImltcGwiKSB7CisgICAgICIvL2Nocm9tZS9icm93c2VyL25ldCIsCisgICAg ICIvL2Nocm9tZS9icm93c2VyL3BhZ2VfbG9hZF9tZXRyaWNzIiwKKyAgICAgIi8vY2hyb21lL2Jy b3dzZXIvcGVybWlzc2lvbnMiLAorLSAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcml2YXRlX3Zlcmlm aWNhdGlvbl90b2tlbnMiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcm9maWxlczpwcm9maWxl IiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvdXBkYXRlX2NsaWVudCIsCisgICAgICIvL2Nocm9t ZS9jb21tb24iLAorQEAgLTE2Myw3ICsxNjIsNiBAQCBzb3VyY2Vfc2V0KCJpbXBsIikgeworICAg ICAiLy9jb21wb25lbnRzL3Blcm1pc3Npb25zIiwKKyAgICAgIi8vY29tcG9uZW50cy9wcml2YWN5 X3NhbmRib3g6ZmVhdHVyZXMiLAorICAgICAiLy9jb21wb25lbnRzL3ByaXZhY3lfc2FuZGJveC9w cml2YWN5X3NhbmRib3hfYXR0ZXN0YXRpb25zIiwKKy0gICAgIi8vY29tcG9uZW50cy9wcml2YXRl X3ZlcmlmaWNhdGlvbl90b2tlbnMvY29tbW9uOnByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vuc19p c3N1ZXJfY29uZmlnIiwKKyAgICAgIi8vY29tcG9uZW50cy9zYWZlX2Jyb3dzaW5nL2NvcmUvY29t bW9uOmZlYXR1cmVzIiwKKyAgICAgIi8vY29tcG9uZW50cy9zZWFyY2giLAorICAgICAiLy9jb21w b25lbnRzL3NlY3VyaXR5X2ludGVyc3RpdGlhbHMvY29udGVudDpzZWN1cml0eV9pbnRlcnN0aXRp YWxfcGFnZSIsCistLS0gYS9jaHJvbWUvYnJvd3Nlci9jb21wb25lbnRfdXBkYXRlci9wcml2YXRl X3ZlcmlmaWNhdGlvbl90b2tlbnNfaW5zdGFsbGVyLmNjCisrKysgYi9jaHJvbWUvYnJvd3Nlci9j b21wb25lbnRfdXBkYXRlci9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnNfaW5zdGFsbGVyLmNj CitAQCAtMjUsMzIgKzI1LDYgQEAgbmFtZXNwYWNlIGNvbXBvbmVudF91cGRhdGVyIHsKKyAKKyB2 b2lkIFJlZ2lzdGVyUHJpdmF0ZVZlcmlmaWNhdGlvblRva2Vuc0NvbXBvbmVudElmRW5hYmxlZCgK KyAgICAgQ29tcG9uZW50VXBkYXRlU2VydmljZSogY3VzKSB7CistICBpZiAoIWJhc2U6OkZlYXR1 cmVMaXN0OjpJc0VuYWJsZWQoCistICAgICAgICAgIG5ldDo6ZmVhdHVyZXM6OmtFbmFibGVQcml2 YXRlVmVyaWZpY2F0aW9uVG9rZW5zKSkgeworLSAgICByZXR1cm47CistICB9CistCistICBhdXRv IGluc3RhbGxlciA9IGJhc2U6Ok1ha2VSZWZDb3VudGVkPENvbXBvbmVudEluc3RhbGxlcj4oCist ICAgICAgc3RkOjptYWtlX3VuaXF1ZTxQcml2YXRlVmVyaWZpY2F0aW9uVG9rZW5zSW5zdGFsbGVy UG9saWN5PigKKy0gICAgICAgICAgYmFzZTo6QmluZFJlcGVhdGluZygKKy0gICAgICAgICAgICAg IFtdKHNjb3BlZF9yZWZwdHI8cHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zOjoKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaXZhdGVWZXJpZmljYXRpb25Ub2tlbnNJc3N1 ZXJDb25maWc+CistICAgICAgICAgICAgICAgICAgICAgaXNzdWVyX2NvbmZpZykgeworLSAgICAg ICAgICAgICAgICBQcml2YXRlVmVyaWZpY2F0aW9uVG9rZW5zU2VydmljZUZhY3Rvcnk6OlNldEds b2JhbElzc3VlckNvbmZpZygKKy0gICAgICAgICAgICAgICAgICAgIGlzc3Vlcl9jb25maWcpOwor LSAgICAgICAgICAgICAgICBpZiAoZ19icm93c2VyX3Byb2Nlc3MgJiYgZ19icm93c2VyX3Byb2Nl c3MtPnByb2ZpbGVfbWFuYWdlcigpKSB7CistICAgICAgICAgICAgICAgICAgZm9yIChQcm9maWxl KiBwcm9maWxlIDogZ19icm93c2VyX3Byb2Nlc3MtPnByb2ZpbGVfbWFuYWdlcigpCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+R2V0TG9hZGVkUHJvZmls ZXMoKSkgeworLSAgICAgICAgICAgICAgICAgICAgaWYgKFByaXZhdGVWZXJpZmljYXRpb25Ub2tl bnNTZXJ2aWNlKiBzZXJ2aWNlID0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpdmF0 ZVZlcmlmaWNhdGlvblRva2Vuc1NlcnZpY2VGYWN0b3J5OjoKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEdldEZvclByb2ZpbGVJZkV4aXN0cyhwcm9maWxlKSkgeworLSAgICAgICAg ICAgICAgICAgICAgICBzZXJ2aWNlLT5TZXRJc3N1ZXJDb25maWcoaXNzdWVyX2NvbmZpZyk7Cist ICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgICB9KSkpOworLQorLSAgaW5zdGFsbGVyLT5SZWdpc3Rlcihj dXMsIGJhc2U6Ok9uY2VDbG9zdXJlKCkpOworIH0KKyAKKyB9ICAvLyBuYW1lc3BhY2UgY29tcG9u ZW50X3VwZGF0ZXIKKy0tLSBhL2Nocm9tZS9icm93c2VyL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rv a2Vucy9CVUlMRC5nbgorKysrIGIvY2hyb21lL2Jyb3dzZXIvcHJpdmF0ZV92ZXJpZmljYXRpb25f dG9rZW5zL0JVSUxELmduCitAQCAtMjYsMTEgKzI2LDYgQEAgc3RhdGljX2xpYnJhcnkoInByaXZh dGVfdmVyaWZpY2F0aW9uX3RvaworICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcm9maWxlczpwcm9m aWxlIiwKKyAgICAgIi8vY29tcG9uZW50cy9jb250ZW50X3NldHRpbmdzL2NvcmUvYnJvd3NlciIs CisgICAgICIvL2NvbXBvbmVudHMva2V5ZWRfc2VydmljZS9jb3JlIiwKKy0gICAgIi8vY29tcG9u ZW50cy9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMvY29tbW9uOnByaXZhY3lfcGFzc19hdGht X2JhdGNoX3JlcXVlc3QiLAorLSAgICAiLy9jb21wb25lbnRzL3ByaXZhdGVfdmVyaWZpY2F0aW9u X3Rva2Vucy9jb21tb246cHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zX2ZldGNoZXIiLAorLSAg ICAiLy9jb21wb25lbnRzL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vucy9jb21tb246cHJpdmF0 ZV92ZXJpZmljYXRpb25fdG9rZW5zX2lzc3Vlcl9jb25maWciLAorLSAgICAiLy9jb21wb25lbnRz L3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vucy9jb21tb246cHJpdmF0ZV92ZXJpZmljYXRpb25f dG9rZW5zX3BhcmFtZXRlcnMiLAorLSAgICAiLy9jb21wb25lbnRzL3ByaXZhdGVfdmVyaWZpY2F0 aW9uX3Rva2Vucy9jb21tb246cHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zX3N0b3JlIiwKKyAg ICAgIi8vY29udGVudC9wdWJsaWMvYnJvd3NlciIsCisgICAgICIvL25ldCIsCisgICAgICIvL3Nl cnZpY2VzL25ldHdvcmsvcHVibGljL2NwcCIsCitAQCAtNDksOSArNDQsNiBAQCBzb3VyY2Vfc2V0 KCJicm93c2VyX3Rlc3RzIikgeworICAgICAiLy9jaHJvbWUvYnJvd3Nlci9jb250ZW50X3NldHRp bmdzOmNvbnRlbnRfc2V0dGluZ3NfZmFjdG9yeSIsCisgICAgICIvL2Nocm9tZS90ZXN0OnRlc3Rf c3VwcG9ydCIsCisgICAgICIvL2NvbXBvbmVudHMvY29udGVudF9zZXR0aW5ncy9jb3JlL2NvbW1v biIsCistICAgICIvL2NvbXBvbmVudHMvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zL2NvbW1v bjphdGhtX3Rlc3RfaXNzdWVyIiwKKy0gICAgIi8vY29tcG9uZW50cy9wcml2YXRlX3ZlcmlmaWNh dGlvbl90b2tlbnMvY29tbW9uOnByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vuc19kYXRhYmFzZSIs CistICAgICIvL2NvbXBvbmVudHMvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zL2NvbW1vbjpw cml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnNfaXNzdWVyX2NvbmZpZyIsCisgICAgICIvL25ldDp0 ZXN0X3N1cHBvcnQiLAorICAgICAiLy9zZXJ2aWNlcy9uZXR3b3JrOnRlc3Rfc3VwcG9ydCIsCisg ICAgICIvL3VybCIsCitAQCAtNzIsMTEgKzY0LDYgQEAgc291cmNlX3NldCgidW5pdF90ZXN0cyIp IHsKKyAgICAgIi8vY2hyb21lL3Rlc3Q6dGVzdF9zdXBwb3J0IiwKKyAgICAgIi8vY29tcG9uZW50 cy9jb250ZW50X3NldHRpbmdzL2NvcmUvYnJvd3NlciIsCisgICAgICIvL2NvbXBvbmVudHMvY29u dGVudF9zZXR0aW5ncy9jb3JlL2NvbW1vbiIsCistICAgICIvL2NvbXBvbmVudHMvcHJpdmF0ZV92 ZXJpZmljYXRpb25fdG9rZW5zL2NvbW1vbjphdGhtX3Rlc3RfaXNzdWVyIiwKKy0gICAgIi8vY29t cG9uZW50cy9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMvY29tbW9uOnByaXZhdGVfdmVyaWZp Y2F0aW9uX3Rva2Vuc19kYXRhYmFzZSIsCistICAgICIvL2NvbXBvbmVudHMvcHJpdmF0ZV92ZXJp ZmljYXRpb25fdG9rZW5zL2NvbW1vbjpwcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnNfaXNzdWVy X2NvbmZpZyIsCistICAgICIvL2NvbXBvbmVudHMvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5z L2NvbW1vbjpwcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnNfcGFyYW1ldGVycyIsCistICAgICIv L2NvbXBvbmVudHMvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zL2NvbW1vbjp0ZXN0X3N1cHBv cnQiLAorICAgICAiLy9jb250ZW50L3Rlc3Q6dGVzdF9zdXBwb3J0IiwKKyAgICAgIi8vbmV0IiwK KyAgICAgIi8vc2VydmljZXMvbmV0d29yazp0ZXN0X3N1cHBvcnQiLAorLS0tIGEvY2hyb21lL2Jy b3dzZXIvcHJvZmlsZXMvQlVJTEQuZ24KKysrKyBiL2Nocm9tZS9icm93c2VyL3Byb2ZpbGVzL0JV SUxELmduCitAQCAtODA5LDcgKzgwOSw2IEBAIHNvdXJjZV9zZXQoInByb2ZpbGVzX2V4dHJhX3Bh cnRzX2ltcGwiKQorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcml2YWN5X3NhbmRib3g6aGVhZGVy cyIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3ByaXZhdGVfYWkiLAorICAgICAiLy9jaHJvbWUv YnJvd3Nlci9wcml2YXRlX2luc2lnaHRzIiwKKy0gICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJpdmF0 ZV92ZXJpZmljYXRpb25fdG9rZW5zIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHVzaF9tZXNz YWdpbmciLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9yZWFkaW5nX2xpc3QiLAorICAgICAiLy9j aHJvbWUvYnJvd3Nlci9yZWR1Y2VfYWNjZXB0X2xhbmd1YWdlIiwKKy0tLSBhL2Nocm9tZS9icm93 c2VyL3Byb2ZpbGVzL2Nocm9tZV9icm93c2VyX21haW5fZXh0cmFfcGFydHNfcHJvZmlsZXMuY2MK KysrKyBiL2Nocm9tZS9icm93c2VyL3Byb2ZpbGVzL2Nocm9tZV9icm93c2VyX21haW5fZXh0cmFf cGFydHNfcHJvZmlsZXMuY2MKK0BAIC0xMzcxLDcgKzEzNzEsNiBAQCB2b2lkIENocm9tZUJyb3dz ZXJNYWluRXh0cmFQYXJ0c1Byb2ZpbGVzCisgICBQcml2YWN5TWV0cmljc1NlcnZpY2VGYWN0b3J5 OjpHZXRJbnN0YW5jZSgpOworICAgUHJpdmFjeVNhbmRib3hTZXJ2aWNlRmFjdG9yeTo6R2V0SW5z dGFuY2UoKTsKKyAgIFByaXZhY3lTYW5kYm94U2V0dGluZ3NGYWN0b3J5OjpHZXRJbnN0YW5jZSgp OworLSAgUHJpdmF0ZVZlcmlmaWNhdGlvblRva2Vuc1NlcnZpY2VGYWN0b3J5OjpHZXRJbnN0YW5j ZSgpOworICAgcHJpdmF0ZV9haTo6UHJpdmF0ZUFpU2VydmljZUZhY3Rvcnk6OkdldEluc3RhbmNl KCk7CisgICBQcm9maWxlTmV0d29ya0NvbnRleHRTZXJ2aWNlRmFjdG9yeTo6R2V0SW5zdGFuY2Uo KTsKKyAgIFByb2ZpbGVQYXNzd29yZFN0b3JlRmFjdG9yeTo6R2V0SW5zdGFuY2UoKTsKKy0tLSBh L2Nocm9tZS90ZXN0L0JVSUxELmduCisrKysgYi9jaHJvbWUvdGVzdC9CVUlMRC5nbgorQEAgLTIx MzcsNyArMjEzNyw2IEBAIGlmICghaXNfYW5kcm9pZCkgeworICAgICAgICIvL2Nocm9tZS9icm93 c2VyL3ByaXZhY3lfc2FuZGJveDpoZWFkZXJzIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci9w cml2YWN5X3NhbmRib3g6dGVzdF9zdXBwb3J0IiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci9w cml2YXRlX2FpIiwKKy0gICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcml2YXRlX3ZlcmlmaWNhdGlv bl90b2tlbnM6YnJvd3Nlcl90ZXN0cyIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJvZmls ZV9yZXNldHRlciIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJvZmlsZV9yZXNldHRlcjpi cm93c2VyX3Rlc3RzIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcm9maWxlcyIsCitAQCAt NTQwMSw3ICs1NDAwLDYgQEAgdGVzdCgidW5pdF90ZXN0cyIpIHsKKyAgICAgIi8vY2hyb21lL2Jy b3dzZXIvcHJlbG9hZGluZy9wcmVyZW5kZXI6dW5pdF90ZXN0cyIsCisgICAgICIvL2Nocm9tZS9i cm93c2VyL3ByaXZhY3lfc2FuZGJveDp1bml0X3Rlc3RzIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dz ZXIvcHJpdmF0ZV9haTp1bml0X3Rlc3RzIiwKKy0gICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJpdmF0 ZV92ZXJpZmljYXRpb25fdG9rZW5zOnVuaXRfdGVzdHMiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nl ci9wcm9maWxlcyIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3Byb2ZpbGVzOm1pc2MiLAorICAg ICAiLy9jaHJvbWUvYnJvd3Nlci9wcm9maWxlczpwcm9maWxlX2Rvd25sb2FkZXIiLAorLS0tIGEv Y29tcG9uZW50cy9CVUlMRC5nbgorKysrIGIvY29tcG9uZW50cy9CVUlMRC5nbgorQEAgLTMxNCw3 ICszMTQsNiBAQCB0ZXN0KCJjb21wb25lbnRzX3VuaXR0ZXN0cyIpIHsKKyAgICAgIi8vY29tcG9u ZW50cy9wb3dlcl9tZXRyaWNzOnVuaXRfdGVzdHMiLAorICAgICAiLy9jb21wb25lbnRzL3ByZWZz OnVuaXRfdGVzdHMiLAorICAgICAiLy9jb21wb25lbnRzL3ByaXZhY3lfc2FuZGJveDp1bml0X3Rl c3RzIiwKKy0gICAgIi8vY29tcG9uZW50cy9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnM6dW5p dF90ZXN0cyIsCisgICAgICIvL2NvbXBvbmVudHMvcHJvZmlsZV9tZXRyaWNzOnVuaXRfdGVzdHMi LAorICAgICAiLy9jb21wb25lbnRzL3Byb3RvX2V4dHJhczp1bml0X3Rlc3RzIiwKKyAgICAgIi8v Y29tcG9uZW50cy9wcm94eV9jb25maWc6dW5pdF90ZXN0cyIsCistLS0gYS9jb21wb25lbnRzL2Nv bXBvbmVudF91cGRhdGVyL2luc3RhbGxlcl9wb2xpY2llcy9CVUlMRC5nbgorKysrIGIvY29tcG9u ZW50cy9jb21wb25lbnRfdXBkYXRlci9pbnN0YWxsZXJfcG9saWNpZXMvQlVJTEQuZ24KK0BAIC0z OCw3ICszOCw2IEBAIHN0YXRpY19saWJyYXJ5KCJpbnN0YWxsZXJfcG9saWNpZXNfbm9fY28KKyAg ICAgIi8vY29tcG9uZW50cy9sb29rYWxpa2VzL2NvcmU6cHJvdG8iLAorICAgICAiLy9jb21wb25l bnRzL2xvb2thbGlrZXMvY29yZTpzYWZldHlfdGlwcyIsCisgICAgICIvL2NvbXBvbmVudHMvcHJl ZnMiLAorLSAgICAiLy9jb21wb25lbnRzL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vucy9jb21t b246cHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zX2lzc3Vlcl9jb25maWciLAorICAgICAiLy9j b21wb25lbnRzL3VwZGF0ZV9jbGllbnQiLAorICAgICAiLy9tb2pvL3B1YmxpYy9jcHAvYmFzZTpw cm90b2J1Zl9zdXBwb3J0IiwKKyAgICAgIi8vc2VydmljZXMvbmV0d29yay9wdWJsaWMvY3BwIiwK K0BAIC0xMDYsOCArMTA1LDYgQEAgc291cmNlX3NldCgidW5pdF90ZXN0cyIpIHsKKyAgICAgIi8v Y29tcG9uZW50cy9oaXN0b3J5X2VtYmVkZGluZ3MvY29yZSIsCisgICAgICIvL2NvbXBvbmVudHMv b3B0aW1pemF0aW9uX2d1aWRlL2NvcmUiLAorICAgICAiLy9jb21wb25lbnRzL29wdGltaXphdGlv bl9ndWlkZS9wcm90bzpvcHRpbWl6YXRpb25fZ3VpZGVfcHJvdG8iLAorLSAgICAiLy9jb21wb25l bnRzL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vucy9jb21tb246cHJpdmF0ZV92ZXJpZmljYXRp b25fdG9rZW5zX2lzc3Vlcl9jb25maWciLAorLSAgICAiLy9jb21wb25lbnRzL3ByaXZhdGVfdmVy aWZpY2F0aW9uX3Rva2Vucy9jb21tb246dGVzdF9zdXBwb3J0IiwKKyAgICAgIi8vbW9qby9wdWJs aWMvY3BwL2Jhc2U6cHJvdG9idWZfc3VwcG9ydCIsCisgICAgICIvL3NlcnZpY2VzL25ldHdvcmsv cHVibGljL2NwcCIsCisgICAgICIvL3Rlc3RpbmcvZ21vY2siLAoKZGlmZiAtLWdpdCBhL2Nocm9t aXVtLnNwZWMgYi9jaHJvbWl1bS5zcGVjCmluZGV4IDQ3ZWQ5YzguLjZlNzE0OTEgMTAwNjQ0Ci0t LSBhL2Nocm9taXVtLnNwZWMKKysrIGIvY2hyb21pdW0uc3BlYwpAQCAtMzI3LDggKzMyNyw3IEBA IFBhdGNoOTM6IGNocm9taXVtLTE0MS1jc3NzX3N0eWxlX3NoZWV0LnBhdGNoCiAKICMgcmV2ZXJ0 IHRoZSBwYXRjaCB0byBmaXggdGhlIGJ1aWxkIGVycm9yOiAibGQubGxkOiBlcnJvcjogdW5kZWZp bmVkIHN5bWJvbDogX19zYW5pdGl6ZXJfc2V0X2RlYXRoX2NhbGxiYWNrIgogUGF0Y2g5NDogY2hy b21pdW0tMTQ4LXY4LXNhbml0aXplLWJ1aWxkLWVycm9yLnBhdGNoCi0jIEZpeCBydXN0IGJ1aWxk IGVycm9yCi1QYXRjaDk1OiBjaHJvbWl1bS0xNTItYnVpbGQtZXJyb3ItcnVzdC1jYm9yLnBhdGNo CisKICMgRlRCRlMgLSBlcnJvcjogY2Fubm90IGZpbmQgYXR0cmlidXRlIGBzYW5pdGl6ZWAgaW4g dGhpcyBzY29wZQogIyAgICAtLT4gLi4vLi4vdGhpcmRfcGFydHkvY3JhYmJ5YXZpZi9zcmMvc3Jj L2NhcGkvaW8ucnM6MjEwOjQxCiAjICAgICB8CkBAIC00MDMsOCArNDAyLDE0IEBAIFBhdGNoMzEx OiBjaHJvbWl1bS0xMjMtZnN0YWNrLXByb3RlY3Rvci1zdHJvbmcucGF0Y2gKICMgRVJST1IgYXQg Ly9idWlsZC9ydXN0L2NydWJpdC9CVUlMRC5nbjoxMjo1OiAKICMgVW5hYmxlIHRvIGxvYWQgdGhp cmRfcGFydHkvcnVzdC10b29sY2hhaW4vbGliL3RoaXJkX3BhcnR5L2NydWJpdC9zdXBwb3J0L3Jz X3N0ZC9CVUlMRC5nbgogIyAiJGNydWJpdF9zcmNfZGlyL3N1cHBvcnQvcnNfc3RkOnJzX3N0ZF9j cHAiLAorIyBQYXRjaCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS91bmdvb2dsZWQtc29mdHdhcmUv dW5nb29nbGVkLWNocm9taXVtL3B1bGwvMzk2NgogUGF0Y2gzMTI6IGNocm9taXVtLTE1NC1mdGJm cy1jcnViaXQucGF0Y2gKIAorIyBGaXggRlRCRlM6CisjIEVSUk9SIFVucmVzb2x2ZWQgZGVwZW5k ZW5jaWVzCisjIFBhdGNoIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3VuZ29vZ2xlZC1zb2Z0d2Fy ZS91bmdvb2dsZWQtY2hyb21pdW0vcHVsbC8zOTY2CitQYXRjaDMxMzogY2hyb21pdW0tMTU0LWZ0 YmZzLXByaXZhdGUtdmVyaWZpY2F0aW9uLXRva2Vucy5wYXRjaAorCiAjIG9sZCBydXN0IHZlcnNp b24gY2F1c2VzIGJ1aWxkIGVycm9yIG9uIGVsODoKICMgZXJyb3JbRTA1OTldOiBubyBtZXRob2Qg bmFtZWQgYGlzX25vbmVfb3JgIGZvdW5kIGZvciBlbnVtIGBPcHRpb25gIGluIHRoZSBjdXJyZW50 IHNjb3BlCiBQYXRjaDMxNDogY2hyb21pdW0tMTM2LXJ1c3Qtc2tyaWZhLWJ1aWxkLWVycm9yLnBh dGNoCkBAIC0xMTA4LDcgKzExMTMsNiBAQCBRdDYgVUkgZm9yIGNocm9taXVtLgogJXBhdGNoIC1Q OTIgLXAxIC1iIC5ub2RlanMtY2hlY2t2ZXJzaW9uCiAlcGF0Y2ggLVA5MyAtcDEgLWIgLmZ0YmZz LWNzc3Nfc3R5bGVfc2hlZXQKICVwYXRjaCAtUDk0IC1wMSAtUiAtYiAudjgtc2FuaXRpemUtYnVp bGQtZXJyb3IKLSVwYXRjaCAtUDk1IC1wMSAtYiAuYnVpbGQtZXJyb3ItcnVzdC1jYm9yCiAlcGF0 Y2ggLVA5NiAtcDEgLWIgLmNyYWJieWF2aWYtZnRiZnMtb2xkLXJ1c3QKIAogJWlmICEgJXtidW5k bGVmZm1wZWdmcmVlfQpAQCAtMTE2Miw3ICsxMTY2LDggQEAgUXQ2IFVJIGZvciBjaHJvbWl1bS4K ICVwYXRjaCAtUDMxNSAtcDEgLWIgLnJ1c3RjLWZ0YmZzCiAlcGF0Y2ggLVAzMTAgLXAxIC1iIC5y dXN0LUZUQkZTLXN1cHByZXNzLXdhcm5pbmdzCiAlcGF0Y2ggLVAzMTEgLXAxIC1iIC5mc3RhY2st cHJvdGVjdG9yLXN0cm9uZwotJXBhdGNoIC1QMzEyIC1wMSAtUiAtYiAuZnRiZnMtY3J1Yml0Cisl cGF0Y2ggLVAzMTIgLXAxIC1iIC5mdGJmcy1jcnViaXQKKyVwYXRjaCAtUDMxMyAtcDEgLWIgLmZ0 YmZzLXByaXZhdGUtdmVyaWZpY2F0aW9uLXRva2VucwogCiAlaWYgMCV7P3JoZWx9ICYmIDAlez9y aGVsfSA8IDEwCiAlcGF0Y2ggLVAzNTQgLXAxIC1iIC5zcGxpdC10aHJlc2hvbGQtZm9yLXJlZy13 aXRoLWhpbnQKQEAgLTE0MDMsNyArMTQwOCw2IEBAIENIUk9NSVVNX0NPUkVfR05fREVGSU5FUys9 JyBob3N0X3Rvb2xjaGFpbj0iLy9idWlsZC90b29sY2hhaW4vbGludXgvdW5idW5kbGU6ZGVmCiBD SFJPTUlVTV9CUk9XU0VSX0dOX0RFRklORVMrPScgdXNlX2N1c3RvbV9saWJjeHg9ZmFsc2UnCiAl ZW5kaWYKIENIUk9NSVVNX0NPUkVfR05fREVGSU5FUys9JyBpc19kZWJ1Zz1mYWxzZSBkY2hlY2tf YWx3YXlzX29uPWZhbHNlIGRjaGVja19pc19jb25maWd1cmFibGU9ZmFsc2UnCi1DSFJPTUlVTV9D T1JFX0dOX0RFRklORVMrPScgZW5hYmxlX2VudGVycHJpc2VfY29tcGFuaW9uPWZhbHNlJwogQ0hS T01JVU1fQ09SRV9HTl9ERUZJTkVTKz0nIHN5c3RlbV9saWJkaXI9IiV7X2xpYn0iJwogCiAlaWYg JXtvZmZpY2lhbF9idWlsZH0K