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] epel10.3: Fix FTBFS (patch from ungoogled chromium) Date: Thu, 24 Sep 2026 13:47:52 GMT Message-ID: <179025767286.1.3203145451816339984.rpms-chromium-096978acb1c3@fedoraproject.org> List-ID: X-Git-Repo: rpms/chromium X-Git-Branch: epel10.3 X-Git-Rev: 096978acb1c3d82d1049e00d4dbf9f4457e6c817 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvY2hyb21pdW0KQnJh bmNoIDogZXBlbDEwLjMKQ29tbWl0IDogMDk2OTc4YWNiMWMzZDgyZDEwNDllMDBkNGRiZjlmNDQ1 N2U2YzgxNwpBdXRob3IgOiBUaGFuIE5nbyA8dGhhbkByZWRoYXQuY29tPgpEYXRlICAgOiAyMDI2 LTA5LTIzVDIwOjE3OjQzKzAyOjAwClN0YXRzICA6ICs5OTQvLTE1MyBpbiAzIGZpbGUocykKVVJM ICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9jaHJvbWl1bS9jLzA5Njk3 OGFjYjFjM2Q4MmQxMDQ5ZTAwZDRkYmY5ZjQ0NTdlNmM4MTc/YnJhbmNoPWVwZWwxMC4zCgpMb2c6 CkZpeCBGVEJGUyAocGF0Y2ggZnJvbSB1bmdvb2dsZWQgY2hyb21pdW0pCgotLS0KZGlmZiAtLWdp dCBhL2Nocm9taXVtLTE1NC1mdGJmcy1jcnViaXQucGF0Y2ggYi9jaHJvbWl1bS0xNTQtZnRiZnMt Y3J1Yml0LnBhdGNoCmluZGV4IGI0MTM3ZjUuLmJjZGVkZjMgMTAwNjQ0Ci0tLSBhL2Nocm9taXVt LTE1NC1mdGJmcy1jcnViaXQucGF0Y2gKKysrIGIvY2hyb21pdW0tMTU0LWZ0YmZzLWNydWJpdC5w YXRjaApAQCAtMSwxNjkgKzEsNzExIEBACi1jb21taXQgNDkzZTZjMzkxMWUzM2NjMzU2ODU2YmFm YmZmYzZjZjk1NTIxMjY2YgotQXV0aG9yOiBEb21pbmlrIFLDtnR0c2NoZXMgPGRyb3R0QGNocm9t aXVtLm9yZz4KLURhdGU6ICAgVGh1IEF1ZyAxMyAwODo0MjoxNSAyMDI2IC0wNzAwCit1bmdvb2ds ZSBjaHJvbWl1bSBwYXRjaCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS91bmdvb2dsZWQtc29mdHdh cmUvdW5nb29nbGVkLWNocm9taXVtL3B1bGwvMzk2NgogCi0gICAgTWlncmF0ZSBPcGVuVHlwZSBm b3JtYXQgY2hlY2sgYmluZGluZ3MgdG8gQ3J1Yml0Ci0gICAgCi0gICAgV2UgY2FuIHJlbW92ZSB0 aGUgQm94PD4gd3JhcHBlZCB0eXBpbmcgb2YgRm9udEZvcm1hdEluZm8gYWxvbmcgdGhlIHdheS4K LSAgICAKLSAgICBERVBTIGNoZWNrcyBmb3IgdGhlIGdlbmVyYXRlZCBvdXRwdXQgaGVhZGVyIGZp bGVzIHJlcXVpcmVzIHVzIHRvIG1vdmUKLSAgICB0aGUgZm9ybWF0X2NoZWNrIHRhcmdldCBpbnRv IHRoZSBmb250cyBzdWJkaXJlY3RvcnkuIFRoaXMgaXMgYSBnb29kCi0gICAgb3Bwb3J0dW5pdHkg dG8gbW92ZSBtb3JlIGZvbnQgc3BlY2lmaWMgYnVpbGQgcnVsZXMgdG8gdGhlIGZvbnQgc3ViZGly IGluCi0gICAgdGhlIGZ1dHVyZSBhbmQgcmVkdWNlIHRoZSB3ZWlnaHQgb2YgdGhlIHBsYXRmb3Jt L0JVSUxELmduIGJ1aWxkIGRpci4KLSAgICAKLSAgICBFeGVyY2lzZSBpbiB1c2luZyB0aGUgQ3J1 Yml0IGJpbmRpbmdzIG1lY2hhbmlzbS4KLSAgICAKLSAgICBObyBmdW5jdGlvbmFsIGNoYW5nZS4K LSAgICAKLSAgICBDaGFuZ2UtSWQ6IEk5NDQwYzcyODViYjcwN2IzMjViODBlZTA3NGRlNTFlNzE0 ZWU0ODg0Ci0gICAgUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNv dXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy84MjQ0MjQ4Ci0gICAgUmV2aWV3ZWQtYnk6IMWBdWth c3ogQW5mb3Jvd2ljeiA8bHVrYXN6YUBjaHJvbWl1bS5vcmc+Ci0gICAgQ29tbWl0LVF1ZXVlOiBE b21pbmlrIFLDtnR0c2NoZXMgPGRyb3R0QGNocm9taXVtLm9yZz4KLSAgICBDci1Db21taXQtUG9z aXRpb246IHJlZnMvaGVhZHMvbWFpbkB7IzE2Nzg4NTh9Ci0KLWRpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9CVUlMRC5nbiBiL3RoaXJkX3BhcnR5L2JsaW5r L3JlbmRlcmVyL3BsYXRmb3JtL0JVSUxELmduCi1pbmRleCBkNWU4MWEzZjA3YTNjLi42YTVkMjc1 NDYwMTIyIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0v QlVJTEQuZ24KLSsrKyBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL0JVSUxE LmduCi1AQCAtMTg2LDE4ICsxODYsNiBAQCBncm91cCgibWFrZV9wbGF0Zm9ybV9nZW5lcmF0ZWQi KSB7CistLS0gYS9jb21wb25lbnRzL2Nib3IvQlVJTEQuZ24KKysrKyBiL2NvbXBvbmVudHMvY2Jv ci9CVUlMRC5nbgorQEAgLTEyLDcgKzEyLDcgQEAgYnVpbGRmbGFnX2hlYWRlcigiYnVpbGRmbGFn cyIpIHsKKyAgICMgVE9ETyhjcmJ1Zy5jb20vNTM1NjgyMzM1KTogUmVtb3ZlIGBVU0VfQ0JPUl9S VVNUYCBidWlsZGZsYWcgZW50aXJlbHksCisgICAjIHVuY29uZGl0aW9uYWxseSBlbmFibGUgUnVz dCBDQk9SIHBhcnNlciwgYW5kIGRyb3AgYGlzX2Nyb25ldF9idWlsZGAgY2hlY2sKKyAgICMgb25j ZSBDcm9uZXQgc3VwcG9ydHMgQ3J1Yml0IGRlcGVuZGVuY2llcy4KKy0gIGZsYWdzID0gWyAiVVNF X0NCT1JfUlVTVD0hJGlzX2Nyb25ldF9idWlsZCIgXQorKyAgZmxhZ3MgPSBbICJVU0VfQ0JPUl9S VVNUPSRlbmFibGVfY3BwX2FwaV9mcm9tX3J1c3QiIF0KKyB9CisgCisgY29tcG9uZW50KCJjYm9y IikgeworQEAgLTM1LDcgKzM1LDcgQEAgY29tcG9uZW50KCJjYm9yIikgeworICAgICAiLy9iYXNl IiwKKyAgIF0KKyAKKy0gIGlmICghaXNfY3JvbmV0X2J1aWxkKSB7CisrICBpZiAoZW5hYmxlX2Nw cF9hcGlfZnJvbV9ydXN0KSB7CisgICAgIHB1YmxpY19kZXBzID0gWworICAgICAgICIvL2J1aWxk L3J1c3QvY3J1Yml0IiwKKyAgICAgICAiLy9jb21wb25lbnRzL2Nib3IvcnVzdDpjYm9yX3J1c3Rf YmluZGluZ3MiLAorQEAgLTYyLDcgKzYyLDcgQEAgc291cmNlX3NldCgidW5pdF90ZXN0cyIpIHsK KyAgICAgIi8vdGVzdGluZy9ndGVzdCIsCisgICAgICIvL3RoaXJkX3BhcnR5L2Z1enp0ZXN0IiwK KyAgIF0KKy0gIGlmICghaXNfY3JvbmV0X2J1aWxkKSB7CisrICBpZiAoZW5hYmxlX2NwcF9hcGlf ZnJvbV9ydXN0KSB7CisgICAgIGRlcHMgKz0gWyAiLy9jb21wb25lbnRzL2Nib3IvcnVzdDpjYm9y X3J1c3RfdW5pdHRlc3RzIiBdCisgICB9CisgCistLS0gYS9jb21wb25lbnRzL3dlYl9wYWNrYWdl L0JVSUxELmduCisrKysgYi9jb21wb25lbnRzL3dlYl9wYWNrYWdlL0JVSUxELmduCitAQCAtNDAs NyArNDAsNiBAQCBzdGF0aWNfbGlicmFyeSgid2ViX3BhY2thZ2UiKSB7CisgICAgICIvL2Jhc2Ui LAorICAgICAiLy9jb21wb25lbnRzL2Jhc2UzMiIsCisgICAgICIvL2NvbXBvbmVudHMvY2JvciIs CistICAgICIvL2NvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3J1c3Q6 c2lnbmVkX3dlYl9idW5kbGVzX3J1c3RfYmluZGluZ3MiLAorICAgICAiLy9tb2pvL3B1YmxpYy9j cHAvYmluZGluZ3MiLAorICAgICAiLy9uZXQiLAorICAgICAiLy9zZXJ2aWNlcy9uZXR3b3JrL3B1 YmxpYy9tb2pvbSIsCitAQCAtNzAsNyArNjksNiBAQCBzb3VyY2Vfc2V0KCJtb2pvbV9tYXBwZWRf dHlwZXMiKSB7CisgCisgICBkZXBzID0gWworICAgICAiLy9iYXNlIiwKKy0gICAgIi8vY29tcG9u ZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvcnVzdDpzaWduZWRfd2ViX2J1bmRs ZXNfcnVzdF9iaW5kaW5ncyIsCisgICAgICIvL2NyeXB0byIsCisgICAgICIvL21vam8vcHVibGlj L2NwcC9iaW5kaW5ncyIsCiAgICBdCitAQCAtOTgsNyArOTYsNiBAQCBzb3VyY2Vfc2V0KCJ1bml0 X3Rlc3RzIikgeworICAgICAiOndlYl9wYWNrYWdlIiwKKyAgICAgIi8vYmFzZS90ZXN0OnRlc3Rf c3VwcG9ydCIsCisgICAgICIvL2NvbXBvbmVudHMvY2JvciIsCistICAgICIvL2NvbXBvbmVudHMv d2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3J1c3Q6c2lnbmVkX3dlYl9idW5kbGVzX3J1 c3RfdW5pdHRlc3RzIiwKKyAgICAgIi8vY29tcG9uZW50cy93ZWJfcGFja2FnZS90ZXN0X3N1cHBv cnQiLAorICAgICAiLy9tb2pvL3B1YmxpYy9jcHAvYmluZGluZ3MiLAorICAgICAiLy9tb2pvL3B1 YmxpYy9jcHAvdGVzdF9zdXBwb3J0OnRlc3RfdXRpbHMiLAorLS0tIGEvY29tcG9uZW50cy93ZWJf cGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvZWNkc2FfcDI1Nl9zaGEyNTZfc2lnbmF0dXJlLmNj CisrKysgYi9jb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9lY2RzYV9w MjU2X3NoYTI1Nl9zaWduYXR1cmUuY2MKK0BAIC05LDcgKzksOCBAQAorICNpbmNsdWRlICJiYXNl L3N0cmluZ3Mvc3RyaW5ncHJpbnRmLmgiCisgI2luY2x1ZGUgImJhc2UvdHlwZXMvZXhwZWN0ZWQu aCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMv ZWNkc2FfcDI1Nl9wdWJsaWNfa2V5LmgiCistI2luY2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2th Z2Uvc2lnbmVkX3dlYl9idW5kbGVzL3J1c3Qvc2lnbmVkX3dlYl9idW5kbGVzX3J1c3QuaCIKKysj aW5jbHVkZSAiY3J5cHRvL2tleXBhaXIuaCIKKysjaW5jbHVkZSAiY3J5cHRvL3NpZ24uaCIKKyAK KyBuYW1lc3BhY2Ugd2ViX3BhY2thZ2UgeworIAorQEAgLTUwLDggKzUxLDkgQEAgRWNkc2FQMjU2 U0hBMjU2U2lnbmF0dXJlOjpFY2RzYVAyNTZTSEEyNQorIFtbbm9kaXNjYXJkXV0gYm9vbCBFY2Rz YVAyNTZTSEEyNTZTaWduYXR1cmU6OlZlcmlmeSgKKyAgICAgYmFzZTo6c3Bhbjxjb25zdCB1aW50 OF90PiBtZXNzYWdlLAorICAgICBjb25zdCBFY2RzYVAyNTZQdWJsaWNLZXkmIHB1YmxpY19rZXkp IGNvbnN0IHsKKy0gIHJldHVybiBzaWduZWRfd2ViX2J1bmRsZXM6OnJ1c3Q6OnZlcmlmeV9lY2Rz YV9wMjU2X3NpZ25hdHVyZSgKKy0gICAgICBwdWJsaWNfa2V5LmJ5dGVzKCksIGJ5dGVzKCksIG1l c3NhZ2UpOworKyAgYXV0byBrZXkgPSBjcnlwdG86OmtleXBhaXI6OlB1YmxpY0tleTo6RnJvbUVj UDI1NlBvaW50KHB1YmxpY19rZXkuYnl0ZXMoKSk7CisrICByZXR1cm4gY3J5cHRvOjpzaWduOjpW ZXJpZnkoY3J5cHRvOjpzaWduOjpFQ0RTQV9TSEEyNTYsICprZXksIG1lc3NhZ2UsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXMoKSk7CiAgfQogIAotLXJ1c3Rfc3RhdGljX2xp YnJhcnkoImZvbnRfZm9ybWF0X2NoZWNrIikgewotLSAgYWxsb3dfdW5zYWZlID0gdHJ1ZSAgIyBO ZWVkZWQgZm9yIEZGSSB0aGF0IHVuZGVycGlucyB0aGUgYGN4eGAgY3JhdGUuCi0tICBjcmF0ZV9y b290ID0gImZvbnRzL29wZW50eXBlL2Zvcm1hdF9jaGVjay5ycyIKLS0gIHNvdXJjZXMgPSBbIGNy YXRlX3Jvb3QgXQotLSAgY3h4X2JpbmRpbmdzID0gWyBjcmF0ZV9yb290IF0KLS0gIGRlcHMgPSBb Ci0tICAgICIvL3RoaXJkX3BhcnR5L3J1c3QvZm9udF90eXBlcy92MF8xMjpsaWIiLAotLSAgICAi Ly90aGlyZF9wYXJ0eS9ydXN0L3JlYWRfZm9udHMvdjBfNDE6bGliIiwKLS0gICAgIi8vdGhpcmRf cGFydHkvcnVzdC9za3JpZmEvdjBfNDQ6bGliIiwKLS0gIF0KKyB9ICAvLyBuYW1lc3BhY2Ugd2Vi X3BhY2thZ2UKKy0tLSBhL2NvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVz L2VkMjU1MTlfc2lnbmF0dXJlLmNjCisrKysgYi9jb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25l ZF93ZWJfYnVuZGxlcy9lZDI1NTE5X3NpZ25hdHVyZS5jYworQEAgLTcsNyArNyw2IEBACisgI2lu Y2x1ZGUgPGFsZ29yaXRobT4KKyAKKyAjaW5jbHVkZSAiYmFzZS9zdHJpbmdzL3N0cmluZ3ByaW50 Zi5oIgorLSNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxl cy9ydXN0L3NpZ25lZF93ZWJfYnVuZGxlc19ydXN0LmgiCisgI2luY2x1ZGUgInRoaXJkX3BhcnR5 L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL2N1cnZlMjU1MTkuaCIKKyAKKyBuYW1lc3Bh Y2Ugd2ViX3BhY2thZ2UgeworQEAgLTQzLDggKzQyLDExIEBAIEVkMjU1MTlTaWduYXR1cmU6OkVk MjU1MTlTaWduYXR1cmUoc3RkOjoKKyBbW25vZGlzY2FyZF1dIGJvb2wgRWQyNTUxOVNpZ25hdHVy ZTo6VmVyaWZ5KAorICAgICBiYXNlOjpzcGFuPGNvbnN0IHVpbnQ4X3Q+IG1lc3NhZ2UsCisgICAg IGNvbnN0IEVkMjU1MTlQdWJsaWNLZXkmIHB1YmxpY19rZXkpIGNvbnN0IHsKKy0gIHJldHVybiBz aWduZWRfd2ViX2J1bmRsZXM6OnJ1c3Q6OnZlcmlmeV9lZDI1NTE5X3NpZ25hdHVyZShwdWJsaWNf a2V5LmJ5dGVzKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYnl0ZXMoKSwgbWVzc2FnZSk7CisrICBjb25zdCBzdGQ6OmFycmF5 PHVpbnQ4X3QsIEVEMjU1MTlfUFVCTElDX0tFWV9MRU4+JiBwdWJsaWNfa2V5X2J5dGVzID0KKysg ICAgICBwdWJsaWNfa2V5LmJ5dGVzKCk7CisrICBjb25zdCBzdGQ6OmFycmF5PHVpbnQ4X3QsIEVE MjU1MTlfU0lHTkFUVVJFX0xFTj4mIHNpZ25hdHVyZV9ieXRlcyA9IGJ5dGVzKCk7CisrICByZXR1 cm4gRUQyNTUxOV92ZXJpZnkobWVzc2FnZS5kYXRhKCksIG1lc3NhZ2Uuc2l6ZSgpLCBzaWduYXR1 cmVfYnl0ZXMuZGF0YSgpLAorKyAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY19rZXlfYnl0 ZXMuZGF0YSgpKTsKKyB9CisgCisgfSAgLy8gbmFtZXNwYWNlIHdlYl9wYWNrYWdlCistLS0gYS9j b21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9pbnRlZ3JpdHlfYmxvY2tf cGFyc2VyLmNjCisrKysgYi9jb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxl cy9pbnRlZ3JpdHlfYmxvY2tfcGFyc2VyLmNjCitAQCAtNCwxNyArNCwxOSBAQAorIAorICNpbmNs dWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9pbnRlZ3JpdHlf YmxvY2tfcGFyc2VyLmgiCisgCisrI2luY2x1ZGUgPGFsZ29yaXRobT4KKyAjaW5jbHVkZSA8c3Ry aW5nPgorLSNpbmNsdWRlIDxzdHJpbmdfdmlldz4KKyAjaW5jbHVkZSA8dmVjdG9yPgorIAorLSNp bmNsdWRlICJiYXNlL2NoZWNrLmgiCistI2luY2x1ZGUgImJhc2UvY29udGFpbmVycy9zcGFuLmgi CisrI2luY2x1ZGUgImJhc2UvY29udGFpbmVycy9tYXBfdXRpbC5oIgorICNpbmNsdWRlICJiYXNl L2Z1bmN0aW9uYWwvYmluZC5oIgorICNpbmNsdWRlICJiYXNlL3N0cmluZ3Mvc3RyaW5ncHJpbnRm LmgiCisrI2luY2x1ZGUgImJhc2Uvc3RyaW5ncy90b19zdHJpbmcuaCIKKyAjaW5jbHVkZSAiYmFz ZS90eXBlcy9leHBlY3RlZC5oIgorICNpbmNsdWRlICJiYXNlL3R5cGVzL2V4cGVjdGVkX21hY3Jv cy5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL2Nib3IvcmVhZGVyLmgiCisrI2luY2x1ZGUgImNv bXBvbmVudHMvY2Jvci93cml0ZXIuaCIKKysjaW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2Fn ZS9tb2pvbS93ZWJfYnVuZGxlX3BhcnNlci5tb2pvbS1mb3J3YXJkLmgiCisgI2luY2x1ZGUgImNv bXBvbmVudHMvd2ViX3BhY2thZ2UvbW9qb20vd2ViX2J1bmRsZV9wYXJzZXIubW9qb20uaCIKKyAj aW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvY29uc3Rh bnRzLmgiCisgI2luY2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5k bGVzL2VjZHNhX3AyNTZfcHVibGljX2tleS5oIgorQEAgLTIyLDU2ICsyNCwxMSBAQAorICNpbmNs dWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9lZDI1NTE5X3B1 YmxpY19rZXkuaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2Vi X2J1bmRsZXMvZWQyNTUxOV9zaWduYXR1cmUuaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy93ZWJf cGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvaW50ZWdyaXR5X2Jsb2NrX2F0dHJpYnV0ZXMuaCIK Ky0jaW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvcnVz dC9zaWduZWRfd2ViX2J1bmRsZXNfcnVzdC5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9w YWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9zaWduZWRfd2ViX2J1bmRsZV9pZC5oIgorICNpbmNs dWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy90eXBlcy5oIgor IAorIG5hbWVzcGFjZSB3ZWJfcGFja2FnZSB7CisgCistbmFtZXNwYWNlIHsKKy0KKy11c2luZyBT aWduYXR1cmVUeXBlID0gc2lnbmVkX3dlYl9idW5kbGVzOjpydXN0OjpTaWduYXR1cmVUeXBlOjpU YWc7CistdXNpbmcgc2lnbmVkX3dlYl9idW5kbGVzOjpydXN0OjpwYXJzZV9pbnRlZ3JpdHlfYmxv Y2s7CistCistYmFzZTo6ZXhwZWN0ZWQ8bW9qb206OkJ1bmRsZUludGVncml0eUJsb2NrU2lnbmF0 dXJlU3RhY2tFbnRyeVB0ciwgc3RkOjpzdHJpbmc+CistQ3JlYXRlU2lnbmF0dXJlU3RhY2tFbnRy eSgKKy0gICAgY29uc3Qgc2lnbmVkX3dlYl9idW5kbGVzOjpydXN0OjpTaWduYXR1cmVTdGFja0Vu dHJ5JiBlbnRyeSkgeworLSAgYXV0byBwYXJzZWRfc2lnID0gbW9qb206OkJ1bmRsZUludGVncml0 eUJsb2NrU2lnbmF0dXJlU3RhY2tFbnRyeTo6TmV3KCk7CistCistICBzd2l0Y2ggKGVudHJ5LnNp Z25hdHVyZV90eXBlLnRhZykgeworLSAgICBjYXNlIFNpZ25hdHVyZVR5cGU6OkVkMjU1MTk6IHsK Ky0gICAgICBBU1NJR05fT1JfUkVUVVJOKGF1dG8gcHVibGljX2tleSwKKy0gICAgICAgICAgICAg ICAgICAgICAgIEVkMjU1MTlQdWJsaWNLZXk6OkNyZWF0ZShlbnRyeS5wdWJsaWNfa2V5LnRvX3Nw YW4oKSkpOworLSAgICAgIEFTU0lHTl9PUl9SRVRVUk4oYXV0byBzaWduYXR1cmUsCistICAgICAg ICAgICAgICAgICAgICAgICBFZDI1NTE5U2lnbmF0dXJlOjpDcmVhdGUoZW50cnkuc2lnbmF0dXJl LnRvX3NwYW4oKSkpOworLSAgICAgIHBhcnNlZF9zaWctPnNpZ25hdHVyZV9pbmZvID0gbW9qb206 OlNpZ25hdHVyZUluZm86Ok5ld0VkMjU1MTkoCistICAgICAgICAgIG1vam9tOjpTaWduYXR1cmVJ bmZvRWQyNTUxOTo6TmV3KHB1YmxpY19rZXksIHNpZ25hdHVyZSkpOworLSAgICAgIGJyZWFrOwor LSAgICB9CistICAgIGNhc2UgU2lnbmF0dXJlVHlwZTo6RWNkc2FQMjU2U0hBMjU2OiB7CistICAg ICAgQVNTSUdOX09SX1JFVFVSTihhdXRvIHB1YmxpY19rZXksCistICAgICAgICAgICAgICAgICAg ICAgICBFY2RzYVAyNTZQdWJsaWNLZXk6OkNyZWF0ZShlbnRyeS5wdWJsaWNfa2V5LnRvX3NwYW4o KSkpOworLSAgICAgIEFTU0lHTl9PUl9SRVRVUk4oYXV0byBzaWduYXR1cmUsIEVjZHNhUDI1NlNI QTI1NlNpZ25hdHVyZTo6Q3JlYXRlKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBlbnRyeS5zaWduYXR1cmUudG9fc3BhbigpKSk7CistICAgICAgcGFyc2VkX3Np Zy0+c2lnbmF0dXJlX2luZm8gPSBtb2pvbTo6U2lnbmF0dXJlSW5mbzo6TmV3RWNkc2FQMjU2U2hh MjU2KAorLSAgICAgICAgICBtb2pvbTo6U2lnbmF0dXJlSW5mb0VjZHNhUDI1NlNIQTI1Njo6TmV3 KHB1YmxpY19rZXksIHNpZ25hdHVyZSkpOworLSAgICAgIGJyZWFrOworLSAgICB9CistICAgIGNh c2UgU2lnbmF0dXJlVHlwZTo6VW5rbm93bjogeworLSAgICAgIHBhcnNlZF9zaWctPnNpZ25hdHVy ZV9pbmZvID0KKy0gICAgICAgICAgbW9qb206OlNpZ25hdHVyZUluZm86Ok5ld1Vua25vd24obW9q b206OlNpZ25hdHVyZUluZm9Vbmtub3duOjpOZXcoKSk7CistICAgICAgYnJlYWs7CistICAgIH0K Ky0gIH0KKy0KKy0gIHBhcnNlZF9zaWctPmF0dHJpYnV0ZXNfY2JvciA9CistICAgICAgQmluYXJ5 RGF0YShlbnRyeS5hdHRyaWJ1dGVzX2Nib3IuYmVnaW4oKSwgZW50cnkuYXR0cmlidXRlc19jYm9y LmVuZCgpKTsKKy0KKy0gIHJldHVybiBwYXJzZWRfc2lnOwogLX0KIC0KKy19ICAvLyBuYW1lc3Bh Y2UKKy0KKyBJbnRlZ3JpdHlCbG9ja1BhcnNlcjo6SW50ZWdyaXR5QmxvY2tQYXJzZXIoCisgICAg IG1vam9tOjpCdW5kbGVEYXRhU291cmNlJiBkYXRhX3NvdXJjZSwKKyAgICAgV2ViQnVuZGxlUGFy c2VyOjpQYXJzZUludGVncml0eUJsb2NrQ2FsbGJhY2sgY2FsbGJhY2spCitAQCAtMTAzLDM3ICs2 MCwxMDMgQEAgdm9pZCBJbnRlZ3JpdHlCbG9ja1BhcnNlcjo6T25JbnRlZ3JpdHlCbAorICAgICBS dW5FcnJvckNhbGxiYWNrKCJFcnJvciByZWFkaW5nIHRoZSBpbnRlZ3JpdHkgYmxvY2suIik7Cisg ICAgIHJldHVybjsKKyAgIH0KKysgIC8vIFRoaXMgc3RydWN0dXJlIGlzIGJ1aWx0IGR1cmluZyBw YXJzaW5nIGFuZCByZXR1cm5lZCBieSB0aGUgZmluYWwgY2FsbGJhY2sKKysgIG1vam9tOjpCdW5k bGVJbnRlZ3JpdHlCbG9ja1B0ciBpbnRlZ3JpdHlfYmxvY2sgPQorKyAgICAgIG1vam9tOjpCdW5k bGVJbnRlZ3JpdHlCbG9jazo6TmV3KCk7CisrCisrICBzaXplX3QgY29uc3VtZWRfYnl0ZXMgPSAw OworKyAgY2Jvcjo6UmVhZGVyOjpEZWNvZGVyRXJyb3IgZXJyb3I7CisrICBjYm9yOjpSZWFkZXI6 OkNvbmZpZyBjb25maWc7CisrICBjb25maWcubnVtX2J5dGVzX2NvbnN1bWVkID0gJmNvbnN1bWVk X2J5dGVzOworKyAgY29uZmlnLmVycm9yX2NvZGVfb3V0ID0gJmVycm9yOworKworKyAgLy8gV2hl biBjb25maWcgYGJ5dGVzX2NvbnN1bWVkYCBhcmUgYXNzaWduZWQgdGhlIENCT1IgcGFyc2VyIHJl YWRzIG9ubHkgdG8gdGhlCisrICAvLyBlbmQgb2YgYSBzdHJ1Y3R1cmUuIEl0IHBhcnNlcyBvbmx5 IEludGVncml0eSBCbG9jayBldmVuIGlmIFdlYiBCdW5kbGUgcGFydAorKyAgLy8gc3RhcnRzIGp1 c3QgYWZ0ZXIuCisrICBzdGQ6Om9wdGlvbmFsPGNib3I6OlZhbHVlPiB2YWx1ZSA9IGNib3I6OlJl YWRlcjo6UmVhZCgqZGF0YSwgY29uZmlnKTsKKysgIGlmICghdmFsdWUpIHsKKysgICAgUnVuRXJy b3JDYWxsYmFjaygiRXJyb3IgcGFyc2luZyBpbnRlZ3JpdHkgYmxvY2sgYXMgQ0JPUjogIiArCisr ICAgICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcoY2Jvcjo6UmVhZGVyOjpFcnJvckNvZGVU b1N0cmluZyhlcnJvcikpKTsKKysgICAgcmV0dXJuOworKyAgfQorKyAgaW50ZWdyaXR5X2Jsb2Nr LT5zaXplID0gY29uc3VtZWRfYnl0ZXM7CisrCisrICBpZiAoIXZhbHVlLT5pc19hcnJheSgpKSB7 CisrICAgIFJ1bkVycm9yQ2FsbGJhY2soIkludGVncml0eSBibG9jayBpcyBub3QgYSBDQk9SIGFy cmF5LiIpOworKyAgICByZXR1cm47CisrICB9CisgCistICBjb25zdCBhdXRvIHBhcnNlX3JlcyA9 IHBhcnNlX2ludGVncml0eV9ibG9jaygqZGF0YSk7CistICBpZiAoIXBhcnNlX3Jlcy5oYXNfdmFs dWUoKSkgeworLSAgICBjb25zdCBhdXRvJiBlcnJvciA9IHBhcnNlX3Jlcy5lcnJvcigpOworLSAg ICBSdW5FcnJvckNhbGxiYWNrKHN0ZDo6c3RyaW5nKGVycm9yLm1lc3NhZ2UuYXNfc3RyKCkpLAor LSAgICAgICAgICAgICAgICAgICAgIGVycm9yLmlzX3ZlcnNpb25fZXJyb3IKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgPyBtb2pvbTo6QnVuZGxlUGFyc2VFcnJvclR5cGU6OmtWZXJzaW9uRXJy b3IKKy0gICAgICAgICAgICAgICAgICAgICAgICAgOiBtb2pvbTo6QnVuZGxlUGFyc2VFcnJvclR5 cGU6OmtGb3JtYXRFcnJvcik7CisrICBjb25zdCBjYm9yOjpWYWx1ZTo6QXJyYXlWYWx1ZSYgdG9w X2FycmF5ID0gdmFsdWUtPkdldEFycmF5KCk7CisrICBpZiAodG9wX2FycmF5LnNpemUoKSAhPSBr SW50ZWdyaXR5QmxvY2tWMlRvcExldmVsQXJyYXlMZW5ndGgpIHsKKysgICAgUnVuRXJyb3JDYWxs YmFjayhiYXNlOjpTdHJpbmdQcmludGYoCisrICAgICAgICAiSW52YWxpZCBpbnRlZ3JpdHkgYmxv Y2sgYXJyYXkgbGVuZ3RoOiBleHBlY3RlZCAldSwgZ290ICV6dS4iLAorKyAgICAgICAga0ludGVn cml0eUJsb2NrVjJUb3BMZXZlbEFycmF5TGVuZ3RoLCB0b3BfYXJyYXkuc2l6ZSgpKSk7CisgICAg IHJldHVybjsKKyAgIH0KKyAKKy0gIGNvbnN0IGF1dG8mIHBhcnNlZF9pYiA9ICpwYXJzZV9yZXM7 CistICBhdXRvIGludGVncml0eV9ibG9jayA9IG1vam9tOjpCdW5kbGVJbnRlZ3JpdHlCbG9jazo6 TmV3KCk7CistICBpbnRlZ3JpdHlfYmxvY2stPnNpemUgPSBwYXJzZWRfaWIuc2l6ZTsKKy0KKy0g IGNvbnN0IHN0ZDo6c3RyaW5nX3ZpZXcgd2ViX2J1bmRsZV9pZF9zdHIgPQorLSAgICAgIHBhcnNl ZF9pYi53ZWJfYnVuZGxlX2lkLnRvX3N0cmluZ192aWV3KCk7CistICBSRVRVUk5fSUZfRVJST1Io CistICAgICAgU2lnbmVkV2ViQnVuZGxlSWQ6OkNyZWF0ZSh3ZWJfYnVuZGxlX2lkX3N0ciksCist ICAgICAgWyZdKHN0ZDo6c3RyaW5nIGVycm9yKSB7IFJ1bkVycm9yQ2FsbGJhY2soc3RkOjptb3Zl KGVycm9yKSk7IH0pOworLQorLSAgaW50ZWdyaXR5X2Jsb2NrLT5hdHRyaWJ1dGVzID0KKy0gICAg ICBJbnRlZ3JpdHlCbG9ja0F0dHJpYnV0ZXMoc3RkOjpzdHJpbmcod2ViX2J1bmRsZV9pZF9zdHIp LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCaW5hcnlEYXRhKHBhcnNlZF9pYi5h dHRyaWJ1dGVzX2Nib3IuYmVnaW4oKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwYXJzZWRfaWIuYXR0cmlidXRlc19jYm9yLmVuZCgpKSk7CisrICAvLyAxLiBN YWdpYyBieXRlcworKyAgaWYgKCF0b3BfYXJyYXlbMF0uaXNfYnl0ZXN0cmluZygpIHx8CisrICAg ICAgIXN0ZDo6cmFuZ2VzOjplcXVhbCh0b3BfYXJyYXlbMF0uR2V0Qnl0ZXN0cmluZygpLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAga0ludGVncml0eUJsb2NrTWFnaWNCeXRlcykpIHsKKysg ICAgUnVuRXJyb3JDYWxsYmFjaygiVW5leHBlY3RlZCBtYWdpYyBieXRlcy4iKTsKKysgICAgcmV0 dXJuOworKyAgfQorKworKyAgLy8gMi4gVmVyc2lvbgorKyAgaWYgKCF0b3BfYXJyYXlbMV0uaXNf Ynl0ZXN0cmluZygpIHx8CisrICAgICAgIXN0ZDo6cmFuZ2VzOjplcXVhbCh0b3BfYXJyYXlbMV0u R2V0Qnl0ZXN0cmluZygpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAga0ludGVncml0eUJs b2NrVjJWZXJzaW9uQnl0ZXMpKSB7CisrICAgIFJ1bkVycm9yQ2FsbGJhY2soIlVuZXhwZWN0ZWQg dmVyc2lvbiBieXRlcy4iLAorKyAgICAgICAgICAgICAgICAgICAgIG1vam9tOjpCdW5kbGVQYXJz ZUVycm9yVHlwZTo6a1ZlcnNpb25FcnJvcik7CisrICAgIHJldHVybjsKKysgIH0KKyAKKy0gIGZv ciAoY29uc3QgYXV0byYgZW50cnkgOiBwYXJzZWRfaWIuc2lnbmF0dXJlX3N0YWNrKSB7CisrICAv LyAzLiBBdHRyaWJ1dGVzCisrICBpZiAoIXRvcF9hcnJheVsyXS5pc19tYXAoKSkgeworKyAgICBS dW5FcnJvckNhbGxiYWNrKCJJbnRlZ3JpdHkgYmxvY2sgYXR0cmlidXRlcyBtdXN0IGJlIGEgbWFw LiIpOworKyAgICByZXR1cm47CisrICB9CisrICBjb25zdCBjYm9yOjpWYWx1ZTo6TWFwVmFsdWUm IGF0dHJpYnV0ZXNfbWFwID0gdG9wX2FycmF5WzJdLkdldE1hcCgpOworKyAgY29uc3QgY2Jvcjo6 VmFsdWUqIHdlYl9idW5kbGVfaWQgPQorKyAgICAgIGJhc2U6OkZpbmRPck51bGwoYXR0cmlidXRl c19tYXAsIGNib3I6OlZhbHVlKGtXZWJCdW5kbGVJZEF0dHJpYnV0ZU5hbWUpKTsKKysgIGlmICgh d2ViX2J1bmRsZV9pZCB8fCAhd2ViX2J1bmRsZV9pZC0+aXNfc3RyaW5nKCkpIHsKKysgICAgUnVu RXJyb3JDYWxsYmFjaygKKysgICAgICAgICJgd2ViQnVuZGxlSWRgIGludGVncml0eSBibG9jayBh dHRyaWJ1dGUgaXMgbWlzc2luZyBvciBtYWxmb3JtZWQuIik7CisrICAgIHJldHVybjsKKysgIH0K KysKKysgIC8vIENoZWNrIGlmIHdlYl9idW5kbGVfaWQgaXMgY29ycmVjdAorKyAgUkVUVVJOX0lG X0VSUk9SKFNpZ25lZFdlYkJ1bmRsZUlkOjpDcmVhdGUod2ViX2J1bmRsZV9pZC0+R2V0U3RyaW5n KCkpLAorKyAgICAgICAgICAgICAgICAgIFsmXShjb25zdCBzdGQ6OnN0cmluZyYgZXJyb3IpIHsg UnVuRXJyb3JDYWxsYmFjayhlcnJvcik7IH0pOworKworKyAgQmluYXJ5RGF0YSBhdHRyaWJ1dGVz X2Nib3IgPSAqY2Jvcjo6V3JpdGVyOjpXcml0ZSh0b3BfYXJyYXlbMl0pOworKyAgaW50ZWdyaXR5 X2Jsb2NrLT5hdHRyaWJ1dGVzID0gSW50ZWdyaXR5QmxvY2tBdHRyaWJ1dGVzKAorKyAgICAgIHdl Yl9idW5kbGVfaWQtPkdldFN0cmluZygpLCBzdGQ6Om1vdmUoYXR0cmlidXRlc19jYm9yKSk7Cisr CisrICAvLyA0LiBTaWduYXR1cmUgU3RhY2sKKysgIGlmICghdG9wX2FycmF5WzNdLmlzX2FycmF5 KCkpIHsKKysgICAgUnVuRXJyb3JDYWxsYmFjaygiU2lnbmF0dXJlIHN0YWNrIG11c3QgYmUgYW4g YXJyYXkuIik7CisrICAgIHJldHVybjsKKysgIH0KKysgIGNvbnN0IGNib3I6OlZhbHVlOjpBcnJh eVZhbHVlJiBzaWduYXR1cmVzID0gdG9wX2FycmF5WzNdLkdldEFycmF5KCk7CisrICBpZiAoc2ln bmF0dXJlcy5lbXB0eSgpKSB7CisrICAgIFJ1bkVycm9yQ2FsbGJhY2soCisrICAgICAgICAiVGhl IHNpZ25hdHVyZSBzdGFjayBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIHNpZ25hdHVyZS4iKTsK KysgICAgcmV0dXJuOworKyAgfQorKworKyAgZm9yIChjb25zdCBhdXRvJiBzaWduYXR1cmVfaW5m b19yYXcgOiBzaWduYXR1cmVzKSB7CisgICAgIEFTU0lHTl9PUl9SRVRVUk4oCistICAgICAgICBh dXRvIHBhcnNlZF9zaWcsIENyZWF0ZVNpZ25hdHVyZVN0YWNrRW50cnkoZW50cnkpLAorLSAgICAg ICAgWyZdKHN0ZDo6c3RyaW5nIGVycm9yKSB7IFJ1bkVycm9yQ2FsbGJhY2soc3RkOjptb3ZlKGVy cm9yKSk7IH0pOworLSAgICBpbnRlZ3JpdHlfYmxvY2stPnNpZ25hdHVyZV9zdGFjay5wdXNoX2Jh Y2soc3RkOjptb3ZlKHBhcnNlZF9zaWcpKTsKKysgICAgICAgIGF1dG8gcGFyc2VkX3NpZ25hdHVy ZV9pbmZvLCBQYXJzZVNpZ25hdHVyZUluZm8oc2lnbmF0dXJlX2luZm9fcmF3KSwKKysgICAgICAg IFsmXShjb25zdCBzdGQ6OnN0cmluZyYgZXJyb3IpIHsgdGhpcy0+UnVuRXJyb3JDYWxsYmFjayhl cnJvcik7IH0pOworKworKyAgICBpZiAoaW50ZWdyaXR5X2Jsb2NrLT5zaWduYXR1cmVfc3RhY2su ZW1wdHkoKSAmJgorKyAgICAgICAgcGFyc2VkX3NpZ25hdHVyZV9pbmZvLT5zaWduYXR1cmVfaW5m by0+aXNfdW5rbm93bigpKSB7CisrICAgICAgUnVuRXJyb3JDYWxsYmFjaygiVW5rbm93biBjaXBo ZXIgdHlwZSBvZiB0aGUgZmlyc3Qgc2lnbmF0dXJlLiIpOworKyAgICAgIHJldHVybjsKKysgICAg fQorKyAgICBpbnRlZ3JpdHlfYmxvY2stPnNpZ25hdHVyZV9zdGFjay5wdXNoX2JhY2soCisrICAg ICAgICBzdGQ6Om1vdmUocGFyc2VkX3NpZ25hdHVyZV9pbmZvKSk7CisgICB9CisgCisgICBzdGQ6 Om1vdmUoY29tcGxldGVfY2FsbGJhY2tfKQorQEAgLTE0MSwxMyArMTY0LDc0IEBAIHZvaWQgSW50 ZWdyaXR5QmxvY2tQYXJzZXI6Ok9uSW50ZWdyaXR5QmwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0ZDo6bW92ZShpbnRlZ3JpdHlfYmxvY2spLCBudWxscHRyKSk7CisgfQorIAorK2Jhc2U6 OmV4cGVjdGVkPG1vam9tOjpCdW5kbGVJbnRlZ3JpdHlCbG9ja1NpZ25hdHVyZVN0YWNrRW50cnlQ dHIsIHN0ZDo6c3RyaW5nPgorK0ludGVncml0eUJsb2NrUGFyc2VyOjpQYXJzZVNpZ25hdHVyZUlu Zm8oCisrICAgIGNvbnN0IGNib3I6OlZhbHVlJiBzaWduYXR1cmVfaW5mb19yYXcpIHsKKysgIGlm ICghc2lnbmF0dXJlX2luZm9fcmF3LmlzX2FycmF5KCkgfHwKKysgICAgICBzaWduYXR1cmVfaW5m b19yYXcuR2V0QXJyYXkoKS5zaXplKCkgIT0gMikgeworKyAgICByZXR1cm4gYmFzZTo6dW5leHBl Y3RlZCgKKysgICAgICAgICJFYWNoIHNpZ25hdHVyZSBzdGFjayBlbnRyeSBtdXN0IGNvbnRhaW4g ZXhhY3RseSB0d28gZWxlbWVudHMuIik7CisrICB9CisrCisrICBjb25zdCBjYm9yOjpWYWx1ZTo6 QXJyYXlWYWx1ZSYgc2lnbmF0dXJlX2luZm9fYXJyYXkgPQorKyAgICAgIHNpZ25hdHVyZV9pbmZv X3Jhdy5HZXRBcnJheSgpOworKyAgaWYgKCFzaWduYXR1cmVfaW5mb19hcnJheVswXS5pc19tYXAo KSB8fAorKyAgICAgICFzaWduYXR1cmVfaW5mb19hcnJheVsxXS5pc19ieXRlc3RyaW5nKCkpIHsK KysgICAgcmV0dXJuIGJhc2U6OnVuZXhwZWN0ZWQoIk1hbGZvcm1lZCBzaWduYXR1cmUgc3RhY2sg ZW50cnkuIik7CisrICB9CisrCisrICBtb2pvbTo6QnVuZGxlSW50ZWdyaXR5QmxvY2tTaWduYXR1 cmVTdGFja0VudHJ5UHRyIHBhcnNlZF9zaWduYXR1cmVfaW5mbyA9CisrICAgICAgbW9qb206OkJ1 bmRsZUludGVncml0eUJsb2NrU2lnbmF0dXJlU3RhY2tFbnRyeTo6TmV3KCk7CisrICBwYXJzZWRf c2lnbmF0dXJlX2luZm8tPmF0dHJpYnV0ZXNfY2JvciA9CisrICAgICAgKmNib3I6OldyaXRlcjo6 V3JpdGUoc2lnbmF0dXJlX2luZm9fYXJyYXlbMF0pOworKworKyAgY29uc3QgY2Jvcjo6VmFsdWU6 Ok1hcFZhbHVlJiBzaWduYXR1cmVfYXR0cmlidXRlcyA9CisrICAgICAgc2lnbmF0dXJlX2luZm9f YXJyYXlbMF0uR2V0TWFwKCk7CisrICBjb25zdCBCaW5hcnlEYXRhJiBzaWduYXR1cmVfYnl0ZXMg PSBzaWduYXR1cmVfaW5mb19hcnJheVsxXS5HZXRCeXRlc3RyaW5nKCk7CisrCisrICBjb25zdCBj Ym9yOjpWYWx1ZSogZWQyNTUxOV9rZXkgPSBiYXNlOjpGaW5kT3JOdWxsKAorKyAgICAgIHNpZ25h dHVyZV9hdHRyaWJ1dGVzLCBjYm9yOjpWYWx1ZShrRWQyNTUxOVB1YmxpY0tleUF0dHJpYnV0ZU5h bWUpKTsKKysgIGNvbnN0IGNib3I6OlZhbHVlKiBlY2RzYV9rZXkgPSBiYXNlOjpGaW5kT3JOdWxs KAorKyAgICAgIHNpZ25hdHVyZV9hdHRyaWJ1dGVzLCBjYm9yOjpWYWx1ZShrRWNkc2FQMjU2UHVi bGljS2V5QXR0cmlidXRlTmFtZSkpOworKworKyAgaWYgKGVkMjU1MTlfa2V5ICYmIGVjZHNhX2tl eSkgeworKyAgICByZXR1cm4gYmFzZTo6dW5leHBlY3RlZCgiTXVsdGlwbGUga2V5IHR5cGVzIGZv ciBvbmUgc2lnbmF0dXJlLiIpOworKyAgfSBlbHNlIGlmIChlZDI1NTE5X2tleSAmJiAhZWQyNTUx OV9rZXktPmlzX2J5dGVzdHJpbmcoKSkgeworKyAgICByZXR1cm4gYmFzZTo6dW5leHBlY3RlZCgi SW52YWxpZCBFRDI1NTE5IGtleS4iKTsKKysgIH0gZWxzZSBpZiAoZWNkc2Ffa2V5ICYmICFlY2Rz YV9rZXktPmlzX2J5dGVzdHJpbmcoKSkgeworKyAgICByZXR1cm4gYmFzZTo6dW5leHBlY3RlZCgi SW52YWxpZCBFQ0RTQSBrZXkuIik7CisrCisrICB9IGVsc2UgaWYgKGVkMjU1MTlfa2V5ICYmIGVk MjU1MTlfa2V5LT5pc19ieXRlc3RyaW5nKCkpIHsKKysgICAgQVNTSUdOX09SX1JFVFVSTihhdXRv IHB1YmxpY19rZXksCisrICAgICAgICAgICAgICAgICAgICAgRWQyNTUxOVB1YmxpY0tleTo6Q3Jl YXRlKGVkMjU1MTlfa2V5LT5HZXRCeXRlc3RyaW5nKCkpKTsKKysgICAgQVNTSUdOX09SX1JFVFVS TihhdXRvIHNpZ25hdHVyZSwgRWQyNTUxOVNpZ25hdHVyZTo6Q3JlYXRlKHNpZ25hdHVyZV9ieXRl cykpOworKyAgICBwYXJzZWRfc2lnbmF0dXJlX2luZm8tPnNpZ25hdHVyZV9pbmZvID0gbW9qb206 OlNpZ25hdHVyZUluZm86Ok5ld0VkMjU1MTkoCisrICAgICAgICBtb2pvbTo6U2lnbmF0dXJlSW5m b0VkMjU1MTk6Ok5ldyhwdWJsaWNfa2V5LCBzaWduYXR1cmUpKTsKKysKKysgIH0gZWxzZSBpZiAo ZWNkc2Ffa2V5ICYmIGVjZHNhX2tleS0+aXNfYnl0ZXN0cmluZygpKSB7CisrICAgIEFTU0lHTl9P Ul9SRVRVUk4oYXV0byBwdWJsaWNfa2V5LAorKyAgICAgICAgICAgICAgICAgICAgIEVjZHNhUDI1 NlB1YmxpY0tleTo6Q3JlYXRlKGVjZHNhX2tleS0+R2V0Qnl0ZXN0cmluZygpKSk7CisrICAgIEFT U0lHTl9PUl9SRVRVUk4oYXV0byBzaWduYXR1cmUsCisrICAgICAgICAgICAgICAgICAgICAgRWNk c2FQMjU2U0hBMjU2U2lnbmF0dXJlOjpDcmVhdGUoc2lnbmF0dXJlX2J5dGVzKSk7CisrICAgIHBh cnNlZF9zaWduYXR1cmVfaW5mby0+c2lnbmF0dXJlX2luZm8gPQorKyAgICAgICAgbW9qb206OlNp Z25hdHVyZUluZm86Ok5ld0VjZHNhUDI1NlNoYTI1NigKKysgICAgICAgICAgICBtb2pvbTo6U2ln bmF0dXJlSW5mb0VjZHNhUDI1NlNIQTI1Njo6TmV3KHB1YmxpY19rZXksIHNpZ25hdHVyZSkpOwor KworKyAgfSBlbHNlIHsKKysgICAgcGFyc2VkX3NpZ25hdHVyZV9pbmZvLT5zaWduYXR1cmVfaW5m byA9CisrICAgICAgICBtb2pvbTo6U2lnbmF0dXJlSW5mbzo6TmV3VW5rbm93bihtb2pvbTo6U2ln bmF0dXJlSW5mb1Vua25vd246Ok5ldygpKTsKKysgIH0KKysKKysgIHJldHVybiBwYXJzZWRfc2ln bmF0dXJlX2luZm87CisrfQorKworIHZvaWQgSW50ZWdyaXR5QmxvY2tQYXJzZXI6OlJ1bkVycm9y Q2FsbGJhY2soCistICAgIHN0ZDo6c3RyaW5nIG1lc3NhZ2UsCisrICAgIGNvbnN0IHN0ZDo6c3Ry aW5nJiBtZXNzYWdlLAorICAgICBtb2pvbTo6QnVuZGxlUGFyc2VFcnJvclR5cGUgZXJyb3JfdHlw ZSkgeworICAgc3RkOjptb3ZlKGNvbXBsZXRlX2NhbGxiYWNrXykKKy0gICAgICAuUnVuKGJhc2U6 OkJpbmRPbmNlKHN0ZDo6bW92ZShyZXN1bHRfY2FsbGJhY2tfKSwgbnVsbHB0ciwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgIG1vam9tOjpCdW5kbGVJbnRlZ3JpdHlCbG9ja1BhcnNlRXJyb3I6 Ok5ldygKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl90eXBlLCBzdGQ6Om1v dmUobWVzc2FnZSkpKSk7CisrICAgICAgLlJ1bihiYXNlOjpCaW5kT25jZSgKKysgICAgICAgICAg c3RkOjptb3ZlKHJlc3VsdF9jYWxsYmFja18pLCBudWxscHRyLAorKyAgICAgICAgICBtb2pvbTo6 QnVuZGxlSW50ZWdyaXR5QmxvY2tQYXJzZUVycm9yOjpOZXcoZXJyb3JfdHlwZSwgbWVzc2FnZSkp KTsKKyB9CisgCisgfSAgLy8gbmFtZXNwYWNlIHdlYl9wYWNrYWdlCistLS0gYS9jb21wb25lbnRz L3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9pbnRlZ3JpdHlfYmxvY2tfcGFyc2VyLmgK KysrKyBiL2NvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL2ludGVncml0 eV9ibG9ja19wYXJzZXIuaAorQEAgLTUsMTMgKzUsOCBAQAorICNpZm5kZWYgQ09NUE9ORU5UU19X RUJfUEFDS0FHRV9TSUdORURfV0VCX0JVTkRMRVNfSU5URUdSSVRZX0JMT0NLX1BBUlNFUl9IXwor ICNkZWZpbmUgQ09NUE9ORU5UU19XRUJfUEFDS0FHRV9TSUdORURfV0VCX0JVTkRMRVNfSU5URUdS SVRZX0JMT0NLX1BBUlNFUl9IXworIAorLSNpbmNsdWRlIDxvcHRpb25hbD4KKy0jaW5jbHVkZSA8 c3RyaW5nPgorLQorLSNpbmNsdWRlICJiYXNlL2NvbXBpbGVyX3NwZWNpZmljLmgiCistI2luY2x1 ZGUgImJhc2UvbWVtb3J5L3Jhd19yZWYuaCIKKy0jaW5jbHVkZSAiYmFzZS9tZW1vcnkvd2Vha19w dHIuaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9tb2pvbS93ZWJfYnVuZGxl X3BhcnNlci5tb2pvbS1mb3J3YXJkLmgiCisrI2luY2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2th Z2Uvc2lnbmVkX3dlYl9idW5kbGVzL2ludGVncml0eV9ibG9ja19hdHRyaWJ1dGVzLmgiCisgI2lu Y2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3R5cGVzLmgi CisgI2luY2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvd2ViX2J1bmRsZV9wYXJzZXIuaCIK KyAKK0BAIC0yMCw3ICsxNSw3IEBAIG5hbWVzcGFjZSB3ZWJfcGFja2FnZSB7CisgY2xhc3MgSW50 ZWdyaXR5QmxvY2tQYXJzZXIgOiBwdWJsaWMgV2ViQnVuZGxlUGFyc2VyOjpXZWJCdW5kbGVTZWN0 aW9uUGFyc2VyIHsKKyAgcHVibGljOgorICAgZXhwbGljaXQgSW50ZWdyaXR5QmxvY2tQYXJzZXIo CistICAgICAgbW9qb206OkJ1bmRsZURhdGFTb3VyY2UmIGRhdGFfc291cmNlIExJRkVUSU1FX0JP VU5ELAorKyAgICAgIG1vam9tOjpCdW5kbGVEYXRhU291cmNlJiBkYXRhX3NvdXJjZSwKKyAgICAg ICBXZWJCdW5kbGVQYXJzZXI6OlBhcnNlSW50ZWdyaXR5QmxvY2tDYWxsYmFjayBjYWxsYmFjayk7 CisgCisgICBJbnRlZ3JpdHlCbG9ja1BhcnNlcihjb25zdCBJbnRlZ3JpdHlCbG9ja1BhcnNlciYp ID0gZGVsZXRlOworQEAgLTM1LDcgKzMwLDEwIEBAIGNsYXNzIEludGVncml0eUJsb2NrUGFyc2Vy IDogcHVibGljIFdlYkIKKyAgcHJpdmF0ZToKKyAgIHZvaWQgT25JbnRlZ3JpdHlCbG9ja1JlYWQo Y29uc3Qgc3RkOjpvcHRpb25hbDxCaW5hcnlEYXRhPiYgZGF0YSk7CisgCistICB2b2lkIFJ1bkVy cm9yQ2FsbGJhY2soc3RkOjpzdHJpbmcgbWVzc2FnZSwKKysgIGJhc2U6OmV4cGVjdGVkPG1vam9t OjpCdW5kbGVJbnRlZ3JpdHlCbG9ja1NpZ25hdHVyZVN0YWNrRW50cnlQdHIsIHN0ZDo6c3RyaW5n PgorKyAgUGFyc2VTaWduYXR1cmVJbmZvKGNvbnN0IGNib3I6OlZhbHVlJiBhdHRyaWJ1dGVzX21h cCk7CisrCisrICB2b2lkIFJ1bkVycm9yQ2FsbGJhY2soY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3Nh Z2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgbW9qb206OkJ1bmRsZVBhcnNlRXJyb3JUeXBl IGVycm9yX3R5cGUgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2pvbTo6QnVuZGxl UGFyc2VFcnJvclR5cGU6OmtGb3JtYXRFcnJvcik7CisgCistLS0gYS9jb21wb25lbnRzL3dlYl9w YWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9ydXN0L0JVSUxELmduCisrKysgYi9jb21wb25lbnRz L3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9ydXN0L0JVSUxELmduCitAQCAtMTAsNyAr MTAsNiBAQCBydXN0X3N0YXRpY19saWJyYXJ5KCJzaWduZWRfd2ViX2J1bmRsZXNfCisgICBzb3Vy Y2VzID0gWworICAgICAiY29uc3RhbnRzLnJzIiwKKyAgICAgImludGVncml0eV9ibG9jay5ycyIs CistICAgICJzaWduYXR1cmVfdmVyaWZpZXIucnMiLAorICAgICAidHlwZXMucnMiLAorICAgICBj cmF0ZV9yb290LAorICAgXQorLS0tIGEvY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2Vi X2J1bmRsZXMvc2lnbmVkX3dlYl9idW5kbGVfc2lnbmF0dXJlX3ZlcmlmaWVyLmNjCisrKysgYi9j b21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9zaWduZWRfd2ViX2J1bmRs ZV9zaWduYXR1cmVfdmVyaWZpZXIuY2MKK0BAIC0yMCwxNCArMjAsMTcgQEAKKyAjaW5jbHVkZSAi YmFzZS90YXNrL3RocmVhZF9wb29sLmgiCisgI2luY2x1ZGUgImJhc2UvdHlwZXMvZXhwZWN0ZWQu aCIKKyAjaW5jbHVkZSAiYmFzZS90eXBlcy9leHBlY3RlZF9tYWNyb3MuaCIKKysjaW5jbHVkZSAi Y29tcG9uZW50cy9jYm9yL3ZhbHVlcy5oIgorKyNpbmNsdWRlICJjb21wb25lbnRzL2Nib3Ivd3Jp dGVyLmgiCisrI2luY2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5k bGVzL2NvbnN0YW50cy5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25l ZF93ZWJfYnVuZGxlcy9pZGVudGl0eV92YWxpZGF0b3IuaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50 cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvaW50ZWdyaXR5X2Jsb2NrX3BhcnNlci5o IgorLSNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9y dXN0L3NpZ25lZF93ZWJfYnVuZGxlc19ydXN0LmgiCisgI2luY2x1ZGUgImNvbXBvbmVudHMvd2Vi X3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3NpZ25lZF93ZWJfYnVuZGxlX2lkLmgiCisgI2lu Y2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3NpZ25lZF93 ZWJfYnVuZGxlX2ludGVncml0eV9ibG9jay5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9w YWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9zaWduZWRfd2ViX2J1bmRsZV9zaWduYXR1cmVfc3Rh Y2suaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRs ZXMvc2lnbmVkX3dlYl9idW5kbGVfc2lnbmF0dXJlX3N0YWNrX2VudHJ5LmgiCisgI2luY2x1ZGUg ImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3NpZ25lZF93ZWJfYnVu ZGxlX3V0aWxzLmgiCisrI2luY2x1ZGUgImNyeXB0by9oYXNoLmgiCisgI2luY2x1ZGUgInRoaXJk X3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9mdW5jdGlvbmFsL292ZXJsb2FkLmgiCisgI2luY2x1ZGUg InRoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL3NoYS5oIgorIAorQEAg LTM3LDEwICs0MCwzMiBAQCBuYW1lc3BhY2UgeworIAorIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IENy ZWF0ZUludGVncml0eUJsb2NrQ2JvcigKKyAgICAgY29uc3QgU2lnbmVkV2ViQnVuZGxlSW50ZWdy aXR5QmxvY2smIGludGVncml0eV9ibG9jaykgeworLSAgYXV0byBpYl9jYm9yX3J1c3QgPQorLSAg ICAgIHNpZ25lZF93ZWJfYnVuZGxlczo6cnVzdDo6Y3JlYXRlX2VtcHR5X2ludGVncml0eV9ibG9j a19jYm9yKAorLSAgICAgICAgICBpbnRlZ3JpdHlfYmxvY2suYXR0cmlidXRlc19jYm9yKCkpOwor LSAgcmV0dXJuIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KGliX2Nib3JfcnVzdC5iZWdpbigpLCBpYl9j Ym9yX3J1c3QuZW5kKCkpOworKyAgLy8gVGhpcyBmdW5jdGlvbiBsb29rcyBsaWtlIGl0IHNob3Vs ZCB1c2UgYSBjYm9yOjpWYWx1ZTo6QXJyYXlWYWx1ZSB0byBidWlsZAorKyAgLy8gdGhlIG91dGVy IGFycmF5LCBidXQgaXQgY2FuJ3Q6IG9uZSBvZiB0aGUgZWxlbWVudHMgaXMgYSBwcmUtZW5jb2Rl ZCBDQk9SCisrICAvLyB2YWx1ZSB3aGljaCB3ZSBjYW4ndCBzYWZlbHkgZGVjb2RlIGJlY2F1c2Ug aXQncyB1bnRydXN0ZWQgaW5wdXQuIFRoaXMgaXMKKysgIC8vIG9idmlvdXNseSB1bmRlc2lyYWJs ZSwgYmVjYXVzZSB0aGVyZSdzIG5vIGd1YXJhbnRlZSBhdCBhbGwgdGhhdCB0aGUKKysgIC8vIHBy ZS1lbmNvZGVkIHZhbHVlIGlzIGFjdHVhbGx5IHZhbGlkIENCT1IuCisrICAvLworKyAgLy8gVE9E TyhodHRwczovL2NyYnVnLmNvbS80NTQ0ODU5MDEpOiBvbmNlIHRoZXJlJ3MgYSBtZW1vcnktc2Fm ZSBDQk9SIHBhcnNlciwKKysgIC8vIHJlLXBhcnNlIHRoZSBwcmUtZW5jb2RlZCB2YWx1ZSwgdGhl biByZS1lbmNvZGUgaXQgaGVyZSBpbnN0ZWFkIG9mCisrICAvLyBjb25zdHJ1Y3RpbmcgYSBDQk9S IGFycmF5IGJ5IGhhbmQgc28gdGhhdCB3ZSdyZSBndWFyYW50ZWVkIHRoYXQgdGhlIHJlc3VsdAor KyAgLy8gb2YgdGhpcyBmdW5jdGlvbiBpcyB2YWxpZC4KKysgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+ IGliX2Nib3I7CisrCisrICAvLyAweDg0IGlzIHRoZSBlbmNvZGluZyBieXRlIGZvciBhbiBhcnJh eSBvZiBsZW5ndGggNC4KKysgIGliX2Nib3IucHVzaF9iYWNrKDB4ODQpOworKyAgYmFzZTo6RXh0 ZW5kKGliX2Nib3IsCisrICAgICAgICAgICAgICAgKmNib3I6OldyaXRlcjo6V3JpdGUoY2Jvcjo6 VmFsdWUoa0ludGVncml0eUJsb2NrTWFnaWNCeXRlcykpKTsKKysgIGJhc2U6OkV4dGVuZChpYl9j Ym9yLCAqY2Jvcjo6V3JpdGVyOjpXcml0ZSgKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2Jvcjo6VmFsdWUoa0ludGVncml0eUJsb2NrVjJWZXJzaW9uQnl0ZXMpKSk7CisrICAvLyBXZSBj YW5ub3QgcGFyc2UgYGF0dHJpYnV0ZXMoKS5jYm9yKClgIGJhY2sgdG8gYSBjYm9yOjpWYWx1ZSBh cyB0aGV5CisrICAvLyB0ZWNobmljYWxseSByZXByZXNlbnQgdW50cnVzdGVkIGlucHV0LgorKyAg YmFzZTo6RXh0ZW5kKGliX2Nib3IsIGludGVncml0eV9ibG9jay5hdHRyaWJ1dGVzX2Nib3IoKSk7 CisrICAvLyBFbmNvZGUgYW4gZW1wdHkgc2lnbmF0dXJlIGFycmF5LgorKyAgYmFzZTo6RXh0ZW5k KGliX2Nib3IsCisrICAgICAgICAgICAgICAgKmNib3I6OldyaXRlcjo6V3JpdGUoY2Jvcjo6VmFs dWUoY2Jvcjo6VmFsdWU6OkFycmF5VmFsdWUoKSkpKTsKKysKKysgIHJldHVybiBpYl9jYm9yOwor IH0KKyAKKyBiYXNlOjpleHBlY3RlZDx2b2lkLCBTaWduZWRXZWJCdW5kbGVTaWduYXR1cmVWZXJp Zmllcjo6RXJyb3I+CitAQCAtMTA0LDcgKzEyOSw3IEBAIFNpZ25lZFdlYkJ1bmRsZVNpZ25hdHVy ZVZlcmlmaWVyOjpDYWxjdWwKKyAgICAgcmV0dXJuIGJhc2U6OnVuZXhwZWN0ZWQoYmFzZTo6Rmls ZTo6RXJyb3JUb1N0cmluZyhmaWxlLkdldExhc3RGaWxlRXJyb3IoKSkpOworICAgfQorIAorLSAg c2lnbmVkX3dlYl9idW5kbGVzOjpydXN0OjpTaGE1MTJIYXNoZXIgaGFzaGVyOworKyAgY3J5cHRv OjpoYXNoOjpIYXNoZXIgaGFzaChjcnlwdG86Omhhc2g6OmtTaGE1MTIpOworIAorICAgLy8gQ2Fs Y3VsYXRlIHRoZSBoYXNoIG9mIHRoZSBTaWduZWQgV2ViIEJ1bmRsZSBleGNsdWRpbmcgaXRzIGlu dGVncml0eSBibG9jay4KKyAgIC8vIFRoZSBmaWxlIG1pZ2h0IGJlIHRvbyBiaWcgdG8gcmVhZCBp dCBpbnRvIG1lbW9yeSBhbGwgYXQgb25jZSwgd2hpY2ggaXMgd2h5CitAQCAtMTIxLDE0ICsxNDYs MTUgQEAgU2lnbmVkV2ViQnVuZGxlU2lnbmF0dXJlVmVyaWZpZXI6OkNhbGN1bAorICAgICAgICAg ICBiYXNlOjpGaWxlOjpFcnJvclRvU3RyaW5nKGZpbGUuR2V0TGFzdEZpbGVFcnJvcigpKSk7Cisg ICAgIH0KKyAgICAgZGF0YS5yZXNpemUoKmJ5dGVzX3JlYWQpOworLSAgICBoYXNoZXIudXBkYXRl KGRhdGEpOworKyAgICBoYXNoLlVwZGF0ZShkYXRhKTsKKyAKKyAgICAgaWYgKCFiYXNlOjpDaGVj a0FkZChvZmZzZXQsICpieXRlc19yZWFkKS5Bc3NpZ25JZlZhbGlkKCZvZmZzZXQpKSB7CisgICAg ICAgcmV0dXJuIGJhc2U6OnVuZXhwZWN0ZWQoIlRoZSBTaWduZWQgV2ViIEJ1bmRsZSBpcyB0b28g bGFyZ2UuIik7CisgICAgIH0KKyAgIH0KKyAKKy0gIFNIQTUxMkRpZ2VzdCBkaWdlc3QgPSBzdGQ6 Om1vdmUoaGFzaGVyKS5maW5pc2goKTsKKysgIFNIQTUxMkRpZ2VzdCBkaWdlc3Q7CisrICBoYXNo LkZpbmlzaChkaWdlc3QpOworICAgcmV0dXJuIGRpZ2VzdDsKKyB9CisgCistLS0gYS9jb21wb25l bnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9zaWduZWRfd2ViX2J1bmRsZV91dGls cy5jYworKysrIGIvY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvc2ln bmVkX3dlYl9idW5kbGVfdXRpbHMuY2MKK0BAIC01LDE4ICs1LDM3IEBACisgI2luY2x1ZGUgImNv bXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3NpZ25lZF93ZWJfYnVuZGxl X3V0aWxzLmgiCisgCisgI2luY2x1ZGUgPGNzdGRpbnQ+CistI2luY2x1ZGUgPHZlY3Rvcj4KKyAK Ky0jaW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvcnVz dC9zaWduZWRfd2ViX2J1bmRsZXNfcnVzdC5oIgorKyNpbmNsdWRlICJiYXNlL2NvbnRhaW5lcnMv ZXh0ZW5kLmgiCisrI2luY2x1ZGUgImJhc2UvY29udGFpbmVycy9zcGFuLmgiCisrI2luY2x1ZGUg ImJhc2UvY29udGFpbmVycy9zcGFuX3dyaXRlci5oIgorIAorIG5hbWVzcGFjZSB3ZWJfcGFja2Fn ZSB7CisgCisrbmFtZXNwYWNlIHsKKysKKyt2b2lkIEFkZEl0ZW1Ub1BheWxvYWQoc3RkOjp2ZWN0 b3I8dWludDhfdD4mIHBheWxvYWQsCisrICAgICAgICAgICAgICAgICAgICAgIGJhc2U6OnNwYW48 Y29uc3QgdWludDhfdD4gaXRlbSkgeworKyAgLy8gRWFjaCBpdGVtIHRoYXQgaXMgcGFydCBvZiB0 aGUgcGF5bG9hZCBpcyBwcmVmaXhlZCB3aXRoIGl0cyBsZW5ndGggZW5jb2RlZAorKyAgLy8gYXMg YSA2NCBiaXQgdW5zaWduZWQgaW50ZWdlci4KKysgIHN0ZDo6YXJyYXk8dWludDhfdCwgc2l6ZW9m KHVpbnQ2NF90KT4gbGVuZ3RoOworKyAgYXV0byB3cml0ZXIgPSBiYXNlOjpTcGFuV3JpdGVyKGJh c2U6OnNwYW4obGVuZ3RoKSk7CisrICBDSEVDSyh3cml0ZXIuV3JpdGVVNjRCaWdFbmRpYW4oaXRl bS5zaXplKCkpKTsKKysKKysgIGJhc2U6OkV4dGVuZChwYXlsb2FkLCBiYXNlOjpzcGFuKGxlbmd0 aCkpOworKyAgYmFzZTo6RXh0ZW5kKHBheWxvYWQsIGl0ZW0pOworK30KKysKKyt9ICAvLyBuYW1l c3BhY2UKKysKKyBzdGQ6OnZlY3Rvcjx1aW50OF90PiBDcmVhdGVTaWduYXR1cmVQYXlsb2FkKAor ICAgICBjb25zdCBTaWduZWRXZWJCdW5kbGVTaWduYXR1cmVEYXRhJiBkYXRhKSB7CistICBhdXRv IHBheWxvYWRfcnVzdCA9IHNpZ25lZF93ZWJfYnVuZGxlczo6cnVzdDo6Y3JlYXRlX3NpZ25hdHVy ZV9wYXlsb2FkKAorLSAgICAgIGRhdGEudW5zaWduZWRfd2ViX2J1bmRsZV9oYXNoLCBkYXRhLmlu dGVncml0eV9ibG9ja19jYm9yLAorLSAgICAgIGRhdGEuYXR0cmlidXRlc19jYm9yKTsKKy0gIHJl dHVybiBzdGQ6OnZlY3Rvcjx1aW50OF90PihwYXlsb2FkX3J1c3QuYmVnaW4oKSwgcGF5bG9hZF9y dXN0LmVuZCgpKTsKKysgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHBheWxvYWQ7CisrICBBZGRJdGVt VG9QYXlsb2FkKHBheWxvYWQsIGRhdGEudW5zaWduZWRfd2ViX2J1bmRsZV9oYXNoKTsKKysgIEFk ZEl0ZW1Ub1BheWxvYWQocGF5bG9hZCwgZGF0YS5pbnRlZ3JpdHlfYmxvY2tfY2Jvcik7CisrICBB ZGRJdGVtVG9QYXlsb2FkKHBheWxvYWQsIGRhdGEuYXR0cmlidXRlc19jYm9yKTsKKysKKysgIHJl dHVybiBwYXlsb2FkOworIH0KKyAKKyB9ICAvLyBuYW1lc3BhY2Ugd2ViX3BhY2thZ2UKKy0tLSBh L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL0JVSUxELmduCisrKysgYi90aGly ZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9CVUlMRC5nbgorQEAgLTE4Niw2ICsxODYs MTggQEAgZ3JvdXAoIm1ha2VfcGxhdGZvcm1fZ2VuZXJhdGVkIikgeworICAgXQorIH0KKyAKKyty dXN0X3N0YXRpY19saWJyYXJ5KCJmb250X2Zvcm1hdF9jaGVjayIpIHsKKysgIGFsbG93X3Vuc2Fm ZSA9IHRydWUgICMgTmVlZGVkIGZvciBGRkkgdGhhdCB1bmRlcnBpbnMgdGhlIGBjeHhgIGNyYXRl LgorKyAgY3JhdGVfcm9vdCA9ICJmb250cy9vcGVudHlwZS9mb3JtYXRfY2hlY2sucnMiCisrICBz b3VyY2VzID0gWyBjcmF0ZV9yb290IF0KKysgIGN4eF9iaW5kaW5ncyA9IFsgY3JhdGVfcm9vdCBd CisrICBkZXBzID0gWworKyAgICAiLy90aGlyZF9wYXJ0eS9ydXN0L2ZvbnRfdHlwZXMvdjBfMTI6 bGliIiwKKysgICAgIi8vdGhpcmRfcGFydHkvcnVzdC9yZWFkX2ZvbnRzL3YwXzQzOmxpYiIsCisr ICAgICIvL3RoaXJkX3BhcnR5L3J1c3Qvc2tyaWZhL3YwXzQ2OmxpYiIsCisrICBdCisrfQorKwog IHJ1c3Rfc3RhdGljX2xpYnJhcnkoInJ1c3RmZnRfZmZpIikgewogICAgYWxsb3dfdW5zYWZlID0g dHJ1ZSAgIyBOZWVkZWQgZm9yIEZGSSB0aGF0IHVuZGVycGlucyB0aGUgYGN4eGAgY3JhdGUuCiAg ICBjcmF0ZV9yb290ID0gImF1ZGlvL3J1c3RmZnRfZmZpLnJzIgotQEAgLTE4MDYsNiArMTc5NCw3 IEBAIGNvbXBvbmVudCgicGxhdGZvcm0iKSB7CitAQCAtMTc5Miw3ICsxODA0LDYgQEAgY29tcG9u ZW50KCJwbGF0Zm9ybSIpIHsKICAgICAgIjphbGxvd19kaXNjb3VyYWdlZF90eXBlIiwKICAgICAg IjpibGlua19wbGF0Zm9ybV9wdWJsaWNfZGVwcyIsCiAgICAgICI6cGxhdGZvcm1fZXhwb3J0IiwK LSsgICAgIi8vYnVpbGQvcnVzdC9jcnViaXQiLAorLSAgICAiLy9idWlsZC9ydXN0L2NydWJpdCIs CiAgICAgICIvL2dwdS9jb21tYW5kX2J1ZmZlci9jbGllbnQ6cmFzdGVyX2ludGVyZmFjZSIsCiAg ICAgICIvL21lZGlhL2NhcHR1cmU6Y2FwdHVyZV9saWIiLAogICAgICAiLy9tb2pvL3B1YmxpYy9j cHAvYmFzZSIsCi1AQCAtMTgzMiw4ICsxODIxLDggQEAgY29tcG9uZW50KCJwbGF0Zm9ybSIpIHsK K0BAIC0xODE5LDggKzE4MzAsOCBAQCBjb21wb25lbnQoInBsYXRmb3JtIikgewogICAgICAiLy91 aS9uYXRpdmVfdGhlbWUvZmVhdHVyZXMiLAogICAgXQogICAgZGVwcyA9IFsKLS0gICAgIjpmb250 X2Zvcm1hdF9jaGVjayIsCisrICAgICI6Zm9udF9mb3JtYXRfY2hlY2siLAogICAgICAiOnJ1c3Rm ZnRfZmZpIiwKLSsgICAgImZvbnRzOmZvbnRfZm9ybWF0X2JpbmRpbmdzIiwKKy0gICAgImZvbnRz OmZvbnRfZm9ybWF0X2JpbmRpbmdzIiwKICAgICAgIi8vYmFzZTpiYXNlX3N0YXRpYyIsCiAgICAg ICIvL2Jhc2UvYWxsb2NhdG9yOmJ1aWxkZmxhZ3MiLAogICAgICAiLy9idWlsZDpjaHJvbWVjYXN0 X2J1aWxkZmxhZ3MiLAotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3Bs YXRmb3JtL2ZvbnRzL0JVSUxELmduIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZv cm0vZm9udHMvQlVJTEQuZ24KLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMDAw MDAwLi41MWI5YjAzYmE3Yzg1Ci0tLS0gL2Rldi9udWxsCi0rKysgYi90aGlyZF9wYXJ0eS9ibGlu ay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9CVUlMRC5nbgotQEAgLTAsMCArMSwxOSBAQAotKyMg Q29weXJpZ2h0IDIwMjYgVGhlIENocm9taXVtIEF1dGhvcnMKLSsjIFVzZSBvZiB0aGlzIHNvdXJj ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSsj IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0rCi0raW1wb3J0KCIvL2J1aWxkL3J1c3QvcnVz dF9zdGF0aWNfbGlicmFyeS5nbmkiKQotKwotK3J1c3Rfc3RhdGljX2xpYnJhcnkoImZvbnRfZm9y bWF0IikgewotKyAgY3JhdGVfcm9vdCA9ICJvcGVudHlwZS9mb3JtYXRfY2hlY2sucnMiCi0rICBz b3VyY2VzID0gWyBjcmF0ZV9yb290IF0KLSsgIGNwcF9hcGlfZnJvbV9ydXN0ID0gewotKyAgICB0 YXJnZXRfbmFtZSA9ICJmb250X2Zvcm1hdF9iaW5kaW5ncyIKLSsgICAgY3BwX25hbWVzcGFjZSA9 ICJmb250X2Zvcm1hdCIKLSsgIH0KLSsgIGRlcHMgPSBbCi0rICAgICIvL3RoaXJkX3BhcnR5L3J1 c3QvZm9udF90eXBlcy92MF8xMjpsaWIiLAotKyAgICAiLy90aGlyZF9wYXJ0eS9ydXN0L3JlYWRf Zm9udHMvdjBfNDM6bGliIiwKLSsgICAgIi8vdGhpcmRfcGFydHkvcnVzdC9za3JpZmEvdjBfNDY6 bGliIiwKLSsgIF0KLSt9Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIv cGxhdGZvcm0vZm9udHMvb3BlbnR5cGUvZm9udF9mb3JtYXRfY2hlY2suY2MgYi90aGlyZF9wYXJ0 eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9vcGVudHlwZS9mb250X2Zvcm1hdF9jaGVj ay5jYwotaW5kZXggYjlkMjYzOTgyMmJjMC4uZjU4ZTk0MzNkMzlmNCAxMDA2NDQKKy0tLSBhL3Ro aXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL0JVSUxELmduCisrKysgL2Rl di9udWxsCitAQCAtMSwxOSArMCwwIEBACistIyBDb3B5cmlnaHQgMjAyNiBUaGUgQ2hyb21pdW0g QXV0aG9ycworLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qt c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLSMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4K Ky0KKy1pbXBvcnQoIi8vYnVpbGQvcnVzdC9ydXN0X3N0YXRpY19saWJyYXJ5LmduaSIpCistCist cnVzdF9zdGF0aWNfbGlicmFyeSgiZm9udF9mb3JtYXQiKSB7CistICBjcmF0ZV9yb290ID0gIm9w ZW50eXBlL2Zvcm1hdF9jaGVjay5ycyIKKy0gIHNvdXJjZXMgPSBbIGNyYXRlX3Jvb3QgXQorLSAg Y3BwX2FwaV9mcm9tX3J1c3QgPSB7CistICAgIHRhcmdldF9uYW1lID0gImZvbnRfZm9ybWF0X2Jp bmRpbmdzIgorLSAgICBjcHBfbmFtZXNwYWNlID0gImZvbnRfZm9ybWF0IgorLSAgfQorLSAgZGVw cyA9IFsKKy0gICAgIi8vdGhpcmRfcGFydHkvcnVzdC9mb250X3R5cGVzL3YwXzEyOmxpYiIsCist ICAgICIvL3RoaXJkX3BhcnR5L3J1c3QvcmVhZF9mb250cy92MF80MzpsaWIiLAorLSAgICAiLy90 aGlyZF9wYXJ0eS9ydXN0L3NrcmlmYS92MF80NjpsaWIiLAorLSAgXQorLX0KIC0tLSBhL3RoaXJk X3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL29wZW50eXBlL2ZvbnRfZm9ybWF0 X2NoZWNrLmNjCiArKysgYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250 cy9vcGVudHlwZS9mb250X2Zvcm1hdF9jaGVjay5jYwotQEAgLTcsNyArNyw2IEBACitAQCAtNyw2 ICs3LDcgQEAKICAjaW5jbHVkZSAiYmFzZS9jb250YWluZXJzL3NwYW4uaCIKICAjaW5jbHVkZSAi YmFzZS9jb250YWluZXJzL3NwYW5fcnVzdC5oIgogICNpbmNsdWRlICJiYXNlL251bWVyaWNzL2J5 dGVfY29udmVyc2lvbnMuaCIKLS0jaW5jbHVkZSAidGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIv cGxhdGZvcm0vZm9udHMvb3BlbnR5cGUvZm9ybWF0X2NoZWNrLnJzLmgiCisrI2luY2x1ZGUgInRo aXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL29wZW50eXBlL2Zvcm1hdF9j aGVjay5ycy5oIgogICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9y bS9ydW50aW1lX2VuYWJsZWRfZmVhdHVyZXMuaCIKICAjaW5jbHVkZSAidGhpcmRfcGFydHkvYmxp bmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3ZlY3Rvci5oIgogICNpbmNsdWRlICJ0aGlyZF9wYXJ0 eS9za2lhL2luY2x1ZGUvY29yZS9Ta1R5cGVmYWNlLmgiCi1AQCAtMTUsMzUgKzE0LDM3IEBACitA QCAtMTQsMzcgKzE1LDM1IEBACiAgbmFtZXNwYWNlIGJsaW5rIHsKICAKICBGb250Rm9ybWF0Q2hl Y2s6OkZvbnRGb3JtYXRDaGVjayhza19zcDxTa0RhdGE+IHNrX2RhdGEpCi0tICAgIDogZm9ybWF0 X2luZm9fKGZvbnRfZm9ybWF0X2NoZWNrOjpnZXRfZm9udF9mb3JtYXRfaW5mbygKLSsgICAgOiBm b3JtYXRfaW5mb18oZm9udF9mb3JtYXQ6OmdldF9mb250X2Zvcm1hdF9pbmZvKAorLSAgICA6IGZv cm1hdF9pbmZvXyhmb250X2Zvcm1hdDo6Z2V0X2ZvbnRfZm9ybWF0X2luZm8oCisrICAgIDogZm9y bWF0X2luZm9fKGZvbnRfZm9ybWF0X2NoZWNrOjpnZXRfZm9udF9mb3JtYXRfaW5mbygKICAgICAg ICAgICAgYmFzZTo6U3BhblRvUnVzdFNsaWNlKHNrX2RhdGEtPmJ5dGVTcGFuKCkpKSkge30KICAK LStGb250Rm9ybWF0Q2hlY2s6On5Gb250Rm9ybWF0Q2hlY2soKSA9IGRlZmF1bHQ7Ci0rCistRm9u dEZvcm1hdENoZWNrOjp+Rm9udEZvcm1hdENoZWNrKCkgPSBkZWZhdWx0OworLQogIGJvb2wgRm9u dEZvcm1hdENoZWNrOjpJc1ZhcmlhYmxlRm9udCgpIGNvbnN0IHsKLS0gIHJldHVybiBmb250X2Zv cm1hdF9jaGVjazo6aXNfdmFyaWFibGUoKmZvcm1hdF9pbmZvXyk7Ci0rICByZXR1cm4gZm9udF9m b3JtYXQ6OmlzX3ZhcmlhYmxlKGZvcm1hdF9pbmZvXyk7CistICByZXR1cm4gZm9udF9mb3JtYXQ6 OmlzX3ZhcmlhYmxlKGZvcm1hdF9pbmZvXyk7CisrICByZXR1cm4gZm9udF9mb3JtYXRfY2hlY2s6 OmlzX3ZhcmlhYmxlKCpmb3JtYXRfaW5mb18pOwogIH0KICAKICBib29sIEZvbnRGb3JtYXRDaGVj azo6SXNDYmR0Q2JsY0NvbG9yRm9udCgpIGNvbnN0IHsKLS0gIHJldHVybiBmb250X2Zvcm1hdF9j aGVjazo6aXNfY2JkdF9jYmxjKCpmb3JtYXRfaW5mb18pOwotKyAgcmV0dXJuIGZvbnRfZm9ybWF0 Ojppc19jYmR0X2NibGMoZm9ybWF0X2luZm9fKTsKKy0gIHJldHVybiBmb250X2Zvcm1hdDo6aXNf Y2JkdF9jYmxjKGZvcm1hdF9pbmZvXyk7CisrICByZXR1cm4gZm9udF9mb3JtYXRfY2hlY2s6Omlz X2NiZHRfY2JsYygqZm9ybWF0X2luZm9fKTsKICB9CiAgCiAgYm9vbCBGb250Rm9ybWF0Q2hlY2s6 OklzRWJkdEVibGNNb25vY2hyb21lRm9udCgpIGNvbnN0IHsKLS0gIHJldHVybiBmb250X2Zvcm1h dF9jaGVjazo6aXNfZWJkdF9lYmxjKCpmb3JtYXRfaW5mb18pOwotKyAgcmV0dXJuIGZvbnRfZm9y bWF0Ojppc19lYmR0X2VibGMoZm9ybWF0X2luZm9fKTsKKy0gIHJldHVybiBmb250X2Zvcm1hdDo6 aXNfZWJkdF9lYmxjKGZvcm1hdF9pbmZvXyk7CisrICByZXR1cm4gZm9udF9mb3JtYXRfY2hlY2s6 OmlzX2ViZHRfZWJsYygqZm9ybWF0X2luZm9fKTsKICB9CiAgCiAgYm9vbCBGb250Rm9ybWF0Q2hl Y2s6OklzQ29sckNwYWxDb2xvckZvbnRWMCgpIGNvbnN0IHsKLS0gIHJldHVybiBmb250X2Zvcm1h dF9jaGVjazo6aXNfY29scnYwKCpmb3JtYXRfaW5mb18pOwotKyAgcmV0dXJuIGZvbnRfZm9ybWF0 Ojppc19jb2xydjAoZm9ybWF0X2luZm9fKTsKKy0gIHJldHVybiBmb250X2Zvcm1hdDo6aXNfY29s cnYwKGZvcm1hdF9pbmZvXyk7CisrICByZXR1cm4gZm9udF9mb3JtYXRfY2hlY2s6OmlzX2NvbHJ2 MCgqZm9ybWF0X2luZm9fKTsKICB9CiAgCiAgYm9vbCBGb250Rm9ybWF0Q2hlY2s6OklzQ29sckNw YWxDb2xvckZvbnRWMSgpIGNvbnN0IHsKLS0gIHJldHVybiBmb250X2Zvcm1hdF9jaGVjazo6aXNf Y29scnYxKCpmb3JtYXRfaW5mb18pOwotKyAgcmV0dXJuIGZvbnRfZm9ybWF0Ojppc19jb2xydjEo Zm9ybWF0X2luZm9fKTsKKy0gIHJldHVybiBmb250X2Zvcm1hdDo6aXNfY29scnYxKGZvcm1hdF9p bmZvXyk7CisrICByZXR1cm4gZm9udF9mb3JtYXRfY2hlY2s6OmlzX2NvbHJ2MSgqZm9ybWF0X2lu Zm9fKTsKICB9CiAgCiAgYm9vbCBGb250Rm9ybWF0Q2hlY2s6OklzU2JpeENvbG9yRm9udCgpIGNv bnN0IHsKLS0gIHJldHVybiBmb250X2Zvcm1hdF9jaGVjazo6aXNfc2JpeCgqZm9ybWF0X2luZm9f KTsKLSsgIHJldHVybiBmb250X2Zvcm1hdDo6aXNfc2JpeChmb3JtYXRfaW5mb18pOworLSAgcmV0 dXJuIGZvbnRfZm9ybWF0Ojppc19zYml4KGZvcm1hdF9pbmZvXyk7CisrICByZXR1cm4gZm9udF9m b3JtYXRfY2hlY2s6OmlzX3NiaXgoKmZvcm1hdF9pbmZvXyk7CiAgfQogIAogIGJvb2wgRm9udEZv cm1hdENoZWNrOjpJc0NmZjJPdXRsaW5lRm9udCgpIGNvbnN0IHsKLS0gIHJldHVybiBmb250X2Zv cm1hdF9jaGVjazo6aXNfY2ZmMigqZm9ybWF0X2luZm9fKTsKLSsgIHJldHVybiBmb250X2Zvcm1h dDo6aXNfY2ZmMihmb3JtYXRfaW5mb18pOworLSAgcmV0dXJuIGZvbnRfZm9ybWF0Ojppc19jZmYy KGZvcm1hdF9pbmZvXyk7CisrICByZXR1cm4gZm9udF9mb3JtYXRfY2hlY2s6OmlzX2NmZjIoKmZv cm1hdF9pbmZvXyk7CiAgfQogIAogIGJvb2wgRm9udEZvcm1hdENoZWNrOjpJc1ZhcmlhYmxlQ29s clYwRm9udCgpIGNvbnN0IHsKLUBAIC01Nyw3ICs1OCw3IEBAIGJvb2wgRm9udEZvcm1hdENoZWNr OjpJc0NvbG9yRm9udCgpIGNvbnN0IHsKK0BAIC01OCw3ICs1Nyw3IEBAIGJvb2wgRm9udEZvcm1h dENoZWNrOjpJc0NvbG9yRm9udCgpIGNvbnMKICAKICBib29sIEZvbnRGb3JtYXRDaGVjazo6SXNB dmFyMkZvbnQoKSBjb25zdCB7CiAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6Rm9u dEZvcm1hdEF2YXIyRW5hYmxlZCgpICYmCi0tICAgICAgICAgZm9udF9mb3JtYXRfY2hlY2s6Omlz X2F2YXIyKCpmb3JtYXRfaW5mb18pOwotKyAgICAgICAgIGZvbnRfZm9ybWF0Ojppc19hdmFyMihm b3JtYXRfaW5mb18pOworLSAgICAgICAgIGZvbnRfZm9ybWF0Ojppc19hdmFyMihmb3JtYXRfaW5m b18pOworKyAgICAgICAgIGZvbnRfZm9ybWF0X2NoZWNrOjppc19hdmFyMigqZm9ybWF0X2luZm9f KTsKICB9CiAgCiAgRm9udEZvcm1hdENoZWNrOjpWYXJpYWJsZUZvbnRTdWJUeXBlIEZvbnRGb3Jt YXRDaGVjazo6UHJvYmVWYXJpYWJsZUZvbnQoCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYmxp bmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvb3BlbnR5cGUvZm9udF9mb3JtYXRfY2hlY2suaCBi L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL29wZW50eXBlL2ZvbnRf Zm9ybWF0X2NoZWNrLmgKLWluZGV4IDE5ZDI2MzkyMzNiMDcuLmFmNTBkYmRmNzRkMDAgMTAwNjQ0 CiAtLS0gYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9vcGVudHlw ZS9mb250X2Zvcm1hdF9jaGVjay5oCiArKysgYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9w bGF0Zm9ybS9mb250cy9vcGVudHlwZS9mb250X2Zvcm1hdF9jaGVjay5oCiBAQCAtNSw3ICs1LDcg QEAKICAjaWZuZGVmIFRISVJEX1BBUlRZX0JMSU5LX1JFTkRFUkVSX1BMQVRGT1JNX0ZPTlRTX09Q RU5UWVBFX0ZPTlRfRk9STUFUX0NIRUNLX0hfCiAgI2RlZmluZSBUSElSRF9QQVJUWV9CTElOS19S RU5ERVJFUl9QTEFURk9STV9GT05UU19PUEVOVFlQRV9GT05UX0ZPUk1BVF9DSEVDS19IXwogIAot LSNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9vcGVu dHlwZS9mb3JtYXRfY2hlY2sucnMuaCIKLSsjaW5jbHVkZSAidGhpcmRfcGFydHkvYmxpbmsvcmVu ZGVyZXIvcGxhdGZvcm0vZm9udHMvZm9udF9mb3JtYXQuaCIKKy0jaW5jbHVkZSAidGhpcmRfcGFy dHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvZm9udF9mb3JtYXQuaCIKKysjaW5jbHVk ZSAidGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvb3BlbnR5cGUvZm9y bWF0X2NoZWNrLnJzLmgiCiAgI2luY2x1ZGUgInRoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3Bs YXRmb3JtL3BsYXRmb3JtX2V4cG9ydC5oIgogICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9y ZW5kZXJlci9wbGF0Zm9ybS93dGYvYWxsb2NhdG9yL2FsbG9jYXRvci5oIgogICNpbmNsdWRlICJ0 aGlyZF9wYXJ0eS9za2lhL2luY2x1ZGUvY29yZS9Ta0RhdGEuaCIKQEAgLTE3MSw4ICs3MTMsOCBA QCBpbmRleCAxOWQyNjM5MjMzYjA3Li5hZjUwZGJkZjc0ZDAwIDEwMDY0NAogIAogICBwdWJsaWM6 CiAgICBleHBsaWNpdCBGb250Rm9ybWF0Q2hlY2soc2tfc3A8U2tEYXRhPik7Ci0tICB2aXJ0dWFs IH5Gb250Rm9ybWF0Q2hlY2soKSA9IGRlZmF1bHQ7Ci0rICB2aXJ0dWFsIH5Gb250Rm9ybWF0Q2hl Y2soKTsKKy0gIHZpcnR1YWwgfkZvbnRGb3JtYXRDaGVjaygpOworKyAgdmlydHVhbCB+Rm9udEZv cm1hdENoZWNrKCkgPSBkZWZhdWx0OwogICAgdmlydHVhbCBib29sIElzVmFyaWFibGVGb250KCkg Y29uc3Q7CiAgICB2aXJ0dWFsIGJvb2wgSXNDYmR0Q2JsY0NvbG9yRm9udCgpIGNvbnN0OwogICAg dmlydHVhbCBib29sIElzRWJkdEVibGNNb25vY2hyb21lRm9udCgpIGNvbnN0OwpAQCAtMTgwLDEw MyArNzIyLDEwMSBAQCBpbmRleCAxOWQyNjM5MjMzYjA3Li5hZjUwZGJkZjc0ZDAwIDEwMDY0NAog ICAgZW51bSBjbGFzcyBDT0xSVmVyc2lvbiB7IGtDT0xSVjAsIGtDT0xSVjEsIGtOb0NPTFIgfTsK ICAKICAgcHJpdmF0ZToKLS0gIHJ1c3Q6OkJveDxmb250X2Zvcm1hdF9jaGVjazo6Rm9udEZvcm1h dEluZm8+IGZvcm1hdF9pbmZvXzsKLSsgIGZvbnRfZm9ybWF0OjpGb250Rm9ybWF0SW5mbyBmb3Jt YXRfaW5mb187CistICBmb250X2Zvcm1hdDo6Rm9udEZvcm1hdEluZm8gZm9ybWF0X2luZm9fOwor KyAgcnVzdDo6Qm94PGZvbnRfZm9ybWF0X2NoZWNrOjpGb250Rm9ybWF0SW5mbz4gZm9ybWF0X2lu Zm9fOwogIH07CiAgCiAgfSAgLy8gbmFtZXNwYWNlIGJsaW5rCi1kaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvb3BlbnR5cGUvZm9ybWF0X2NoZWNr LnJzIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvb3BlbnR5cGUv Zm9ybWF0X2NoZWNrLnJzCi1pbmRleCBlZGE4ZTZiMmI4MTg4Li5iOTlmMGVjODY1NWU2IDEwMDY0 NAogLS0tIGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvb3BlbnR5 cGUvZm9ybWF0X2NoZWNrLnJzCiArKysgYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0 Zm9ybS9mb250cy9vcGVudHlwZS9mb3JtYXRfY2hlY2sucnMKIEBAIC0yMyw3ICsyMyw3IEBAIHB1 YiBzdHJ1Y3QgRm9udEZvcm1hdEluZm8gewogICAgICBmb3JtYXRfZmxhZ3M6IE9wdGlvbjxGb250 Rm9ybWF0RmxhZ3M+LAogIH0KICAKLS1wdWIgZm4gZ2V0X2ZvbnRfZm9ybWF0X2luZm8oZm9udF9i eXRlczogJlt1OF0pIC0+IEJveDxGb250Rm9ybWF0SW5mbz4gewotK3B1YiBmbiBnZXRfZm9udF9m b3JtYXRfaW5mbyhmb250X2J5dGVzOiAmW3U4XSkgLT4gRm9udEZvcm1hdEluZm8geworLXB1YiBm biBnZXRfZm9udF9mb3JtYXRfaW5mbyhmb250X2J5dGVzOiAmW3U4XSkgLT4gRm9udEZvcm1hdElu Zm8geworK3B1YiBmbiBnZXRfZm9udF9mb3JtYXRfaW5mbyhmb250X2J5dGVzOiAmW3U4XSkgLT4g Qm94PEZvbnRGb3JtYXRJbmZvPiB7CiAgICAgIGxldCBmaWxlX3JlZiA9IG1ha2VfZm9udF9yZWZf aW50ZXJuYWwoZm9udF9ieXRlcywgMCk7CiAgCiAgICAgIG1hdGNoIGZpbGVfcmVmIHsKLUBAIC0z MiwxMSArMzIsMTEgQEAgcHViIGZuIGdldF9mb250X2Zvcm1hdF9pbmZvKGZvbnRfYnl0ZXM6ICZb dThdKSAtPiBCb3g8Rm9udEZvcm1hdEluZm8+IHsKK0BAIC0zMiwxMSArMzIsMTEgQEAgcHViIGZu IGdldF9mb250X2Zvcm1hdF9pbmZvKGZvbnRfYnl0ZXM6CiAgICAgICAgICAgICAgICAgIGZvbnQu dGFibGVfZGlyZWN0b3J5KCkudGFibGVfcmVjb3JkcygpLml0ZXIoKS5tYXAofGV8IGUudGFnKCkp LmNvbGxlY3QoKTsKICAgICAgICAgICAgICBsZXQgY29sb3JfdmVyc2lvbiA9IGdldF9jb2xyX3Zl cnNpb24oJmZvbnQpOwogICAgICAgICAgICAgIGxldCBhdmFyX3ZlcnNpb24gPSBnZXRfYXZhcl92 ZXJzaW9uKCZmb250KTsKLS0gICAgICAgICAgICBCb3g6Om5ldyhGb250Rm9ybWF0SW5mbyB7Ci0r ICAgICAgICAgICAgRm9udEZvcm1hdEluZm8geworLSAgICAgICAgICAgIEZvbnRGb3JtYXRJbmZv IHsKKysgICAgICAgICAgICBCb3g6Om5ldyhGb250Rm9ybWF0SW5mbyB7CiAgICAgICAgICAgICAg ICAgIGZvcm1hdF9mbGFnczogU29tZShGb250Rm9ybWF0RmxhZ3MgeyB0YWJsZV90YWdzLCBjb2xv cl92ZXJzaW9uLCBhdmFyX3ZlcnNpb24gfSksCi0tICAgICAgICAgICAgfSkKLSsgICAgICAgICAg ICB9CistICAgICAgICAgICAgfQorKyAgICAgICAgICAgIH0pCiAgICAgICAgICB9Ci0tICAgICAg ICBfID0+IEJveDo6bmV3KEZvbnRGb3JtYXRJbmZvOjpkZWZhdWx0KCkpLAotKyAgICAgICAgXyA9 PiBGb250Rm9ybWF0SW5mbzo6ZGVmYXVsdCgpLAorLSAgICAgICAgXyA9PiBGb250Rm9ybWF0SW5m bzo6ZGVmYXVsdCgpLAorKyAgICAgICAgXyA9PiBCb3g6Om5ldyhGb250Rm9ybWF0SW5mbzo6ZGVm YXVsdCgpKSwKICAgICAgfQogIH0KICAKLUBAIC00NCwxMCArNDQsMTAgQEAgZm4gZ2V0X2NvbHJf dmVyc2lvbihmb250X3JlZjogJkZvbnRSZWYpIC0+IE9wdGlvbjx1MTY+IHsKK0BAIC00NCwxMCAr NDQsMTAgQEAgZm4gZ2V0X2NvbHJfdmVyc2lvbihmb250X3JlZjogJkZvbnRSZWYpCiAgICAgIFNv bWUoZm9udF9yZWYuY29scigpLm9rKCk/LnZlcnNpb24oKSkKICB9CiAgCi0tZm4gaXNfY29scnYx KGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2wgewotK3B1YiBmbiBpc19jb2xy djEoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbCB7CistcHViIGZuIGlzX2Nv bHJ2MShmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKKytmbiBpc19jb2xy djEoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbCB7CiAgICAgIG1hdGNoZXMh KCZmb3JtYXRfaW5mby5mb3JtYXRfZmxhZ3MsIFNvbWUoRm9udEZvcm1hdEZsYWdzIHsgY29sb3Jf dmVyc2lvbjogU29tZSgxKSwgLi4gfSksKQogIH0KLS1mbiBpc19jb2xydjAoZm9ybWF0X2luZm86 ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbCB7Ci0rcHViIGZuIGlzX2NvbHJ2MChmb3JtYXRfaW5m bzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKKy1wdWIgZm4gaXNfY29scnYwKGZvcm1hdF9p bmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2wgeworK2ZuIGlzX2NvbHJ2MChmb3JtYXRfaW5m bzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKICAgICAgbWF0Y2hlcyEoJmZvcm1hdF9pbmZv LmZvcm1hdF9mbGFncywgU29tZShGb250Rm9ybWF0RmxhZ3MgeyBjb2xvcl92ZXJzaW9uOiBTb21l KDApLCAuLiB9KSwpCiAgfQogIAotQEAgLTU2LDcgKzU2LDcgQEAgZm4gZ2V0X2F2YXJfdmVyc2lv bihmb250X3JlZjogJkZvbnRSZWYpIC0+IE9wdGlvbjwodTE2LCB1MTYpPiB7CitAQCAtNTYsNyAr NTYsNyBAQCBmbiBnZXRfYXZhcl92ZXJzaW9uKGZvbnRfcmVmOiAmRm9udFJlZikKICAgICAgU29t ZSgodmVyc2lvbi5tYWpvciwgdmVyc2lvbi5taW5vcikpCiAgfQogIAotLWZuIGlzX2F2YXIyKGZv cm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2wgewotK3B1YiBmbiBpc19hdmFyMihm b3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKKy1wdWIgZm4gaXNfYXZhcjIo Zm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbCB7CisrZm4gaXNfYXZhcjIoZm9y bWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbCB7CiAgICAgIG1hdGNoZXMhKCZmb3Jt YXRfaW5mby5mb3JtYXRfZmxhZ3MsIFNvbWUoRm9udEZvcm1hdEZsYWdzIHsgYXZhcl92ZXJzaW9u OiBTb21lKCgyLCBfKSksIC4uIH0pLCkKICB9CiAgCi1AQCAtNjksMzkgKzY5LDIyIEBAIGZuIGhh c190YWdzKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8sIHF1ZXJ5OiAmW1RhZ10pIC0+IGJv b2wgeworQEAgLTY5LDIyICs2OSwzOSBAQCBmbiBoYXNfdGFncyhmb3JtYXRfaW5mbzogJkZvbnRG b3JtYXRJbmZvCiAgICAgIH0KICB9CiAgCi0tZm4gaXNfdmFyaWFibGUoZm9ybWF0X2luZm86ICZG b250Rm9ybWF0SW5mbykgLT4gYm9vbCB7Ci0rcHViIGZuIGlzX3ZhcmlhYmxlKGZvcm1hdF9pbmZv OiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2wgeworLXB1YiBmbiBpc192YXJpYWJsZShmb3JtYXRf aW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKKytmbiBpc192YXJpYWJsZShmb3JtYXRf aW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKICAgICAgaGFzX3RhZ3MoZm9ybWF0X2lu Zm8sICZbVGFnOjpuZXcoYiJmdmFyIildKQogIH0KICAKLS1mbiBpc19zYml4KGZvcm1hdF9pbmZv OiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2wgewotK3B1YiBmbiBpc19zYml4KGZvcm1hdF9pbmZv OiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2wgeworLXB1YiBmbiBpc19zYml4KGZvcm1hdF9pbmZv OiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2wgeworK2ZuIGlzX3NiaXgoZm9ybWF0X2luZm86ICZG b250Rm9ybWF0SW5mbykgLT4gYm9vbCB7CiAgICAgIGhhc190YWdzKGZvcm1hdF9pbmZvLCAmW1Rh Zzo6bmV3KGIic2JpeCIpXSkKICB9CiAgCi0tZm4gaXNfY2JkdF9jYmxjKGZvcm1hdF9pbmZvOiAm Rm9udEZvcm1hdEluZm8pIC0+IGJvb2wgewotK3B1YiBmbiBpc19jYmR0X2NibGMoZm9ybWF0X2lu Zm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbCB7CistcHViIGZuIGlzX2NiZHRfY2JsYyhmb3Jt YXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKKytmbiBpc19jYmR0X2NibGMoZm9y bWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbCB7CiAgICAgIGhhc190YWdzKGZvcm1h dF9pbmZvLCAmW1RhZzo6bmV3KGIiQ0JEVCIpLCBUYWc6Om5ldyhiIkNCTEMiKV0pCiAgfQogIAot LWZuIGlzX2ViZHRfZWJsYyhmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsK LStwdWIgZm4gaXNfZWJkdF9lYmxjKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJv b2wgeworLXB1YiBmbiBpc19lYmR0X2VibGMoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykg LT4gYm9vbCB7CisrZm4gaXNfZWJkdF9lYmxjKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8p IC0+IGJvb2wgewogICAgICBoYXNfdGFncyhmb3JtYXRfaW5mbywgJltUYWc6Om5ldyhiIkVCRFQi KSwgVGFnOjpuZXcoYiJFQkxDIildKQogIH0KICAKLS1mbiBpc19jZmYyKGZvcm1hdF9pbmZvOiAm Rm9udEZvcm1hdEluZm8pIC0+IGJvb2wgewotK3B1YiBmbiBpc19jZmYyKGZvcm1hdF9pbmZvOiAm Rm9udEZvcm1hdEluZm8pIC0+IGJvb2wgeworLXB1YiBmbiBpc19jZmYyKGZvcm1hdF9pbmZvOiAm Rm9udEZvcm1hdEluZm8pIC0+IGJvb2wgeworK2ZuIGlzX2NmZjIoZm9ybWF0X2luZm86ICZGb250 Rm9ybWF0SW5mbykgLT4gYm9vbCB7CiAgICAgIGhhc190YWdzKGZvcm1hdF9pbmZvLCAmW1RhZzo6 bmV3KGIiQ0ZGMiIpXSkKICB9Ci0tCi0tI1tjeHg6OmJyaWRnZShuYW1lc3BhY2UgPSAiZm9udF9m b3JtYXRfY2hlY2siKV0KLS1wdWIgbW9kIGZmaSB7Ci0tICAgIGV4dGVybiAiUnVzdCIgewotLSAg ICAgICAgdHlwZSBGb250Rm9ybWF0SW5mbzsKLS0KLS0gICAgICAgIGZuIGdldF9mb250X2Zvcm1h dF9pbmZvKGZvbnRfYnl0ZXM6ICZbdThdKSAtPiBCb3g8Rm9udEZvcm1hdEluZm8+OwotLSAgICAg ICAgZm4gaXNfY29scnYxKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2w7Ci0t ICAgICAgICBmbiBpc19jb2xydjAoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9v bDsKLS0gICAgICAgIGZuIGlzX2NiZHRfY2JsYyhmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZv KSAtPiBib29sOwotLSAgICAgICAgZm4gaXNfZWJkdF9lYmxjKGZvcm1hdF9pbmZvOiAmRm9udEZv cm1hdEluZm8pIC0+IGJvb2w7Ci0tICAgICAgICBmbiBpc192YXJpYWJsZShmb3JtYXRfaW5mbzog JkZvbnRGb3JtYXRJbmZvKSAtPiBib29sOwotLSAgICAgICAgZm4gaXNfc2JpeChmb3JtYXRfaW5m bzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sOwotLSAgICAgICAgZm4gaXNfY2ZmMihmb3JtYXRf aW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sOwotLSAgICAgICAgZm4gaXNfYXZhcjIoZm9y bWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbDsKLS0gICAgfQotLX0KKysKKysjW2N4 eDo6YnJpZGdlKG5hbWVzcGFjZSA9ICJmb250X2Zvcm1hdF9jaGVjayIpXQorK3B1YiBtb2QgZmZp IHsKKysgICAgZXh0ZXJuICJSdXN0IiB7CisrICAgICAgICB0eXBlIEZvbnRGb3JtYXRJbmZvOwor KworKyAgICAgICAgZm4gZ2V0X2ZvbnRfZm9ybWF0X2luZm8oZm9udF9ieXRlczogJlt1OF0pIC0+ IEJveDxGb250Rm9ybWF0SW5mbz47CisrICAgICAgICBmbiBpc19jb2xydjEoZm9ybWF0X2luZm86 ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbDsKKysgICAgICAgIGZuIGlzX2NvbHJ2MChmb3JtYXRf aW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sOworKyAgICAgICAgZm4gaXNfY2JkdF9jYmxj KGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2w7CisrICAgICAgICBmbiBpc19l YmR0X2VibGMoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbDsKKysgICAgICAg IGZuIGlzX3ZhcmlhYmxlKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2w7Cisr ICAgICAgICBmbiBpc19zYml4KGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2w7 CisrICAgICAgICBmbiBpc19jZmYyKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJv b2w7CisrICAgICAgICBmbiBpc19hdmFyMihmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAt PiBib29sOworKyAgICB9CisrfQoKZGlmZiAtLWdpdCBhL2Nocm9taXVtLTE1NC1mdGJmcy1wcml2 YXRlLXZlcmlmaWNhdGlvbi10b2tlbnMucGF0Y2ggYi9jaHJvbWl1bS0xNTQtZnRiZnMtcHJpdmF0 ZS12ZXJpZmljYXRpb24tdG9rZW5zLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjkwYmZkNjEKLS0tIC9kZXYvbnVsbAorKysgYi9jaHJvbWl1bS0xNTQtZnRiZnMtcHJp dmF0ZS12ZXJpZmljYXRpb24tdG9rZW5zLnBhdGNoCkBAIC0wLDAgKzEsMjk3IEBACit1bmdvb2ds ZWQgY2hyb21pdW0gcGF0Y2ggZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdW5nb29nbGVkLXNvZnR3 YXJlL3VuZ29vZ2xlZC1jaHJvbWl1bS9wdWxsLzM5NjYKKworLS0tIGEvY2hyb21lL2Jyb3dzZXIv QlVJTEQuZ24KKysrKyBiL2Nocm9tZS9icm93c2VyL0JVSUxELmduCitAQCAtMTAyMiw3ICsxMDIy LDYgQEAgc291cmNlX3NldCgiY29yZSIpIHsKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJlbG9h ZGluZy9zZWFyY2hfcHJlbG9hZDpmZWF0dXJlIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJp dmFjeV9zYW5kYm94OmhlYWRlcnMiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcml2YXRlX2Fp IiwKKy0gICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zIiwK KyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJvZmlsZXM6bWlzYyIsCisgICAgICIvL2Nocm9tZS9i cm93c2VyL3Byb2ZpbGVzOnByb2ZpbGVfaW9fZGF0YSIsCisgICAgICIvL2Nocm9tZS9icm93c2Vy L3Byb2ZpbGVzOnByb2ZpbGVzX2V4dHJhX3BhcnRzIiwKK0BAIC0yMjE1LDcgKzIyMTQsNiBAQCBz b3VyY2Vfc2V0KCJicm93c2VyIikgeworICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcmVsb2FkaW5n L3NlYXJjaF9wcmVsb2FkIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJpdmFjeSIsCisgICAg ICIvL2Nocm9tZS9icm93c2VyL3ByaXZhY3lfc2FuZGJveDppbXBsIiwKKy0gICAgIi8vY2hyb21l L2Jyb3dzZXIvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zIiwKKyAgICAgIi8vY2hyb21lL2Jy b3dzZXIvcHJvZmlsZXM6bWlzYyIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3Byb2ZpbGVzOnBy b2ZpbGVfdXRpbF9pbXBsIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJvZmlsZXM6cHJvZmls ZXNfZXh0cmFfcGFydHNfaW1wbCIsCistLS0gYS9jaHJvbWUvYnJvd3Nlci9icm93c2luZ19kYXRh L0JVSUxELmduCisrKysgYi9jaHJvbWUvYnJvd3Nlci9icm93c2luZ19kYXRhL0JVSUxELmduCitA QCAtMTI1LDcgKzEyNSw2IEBAIHNvdXJjZV9zZXQoImltcGwiKSB7CisgICAgICIvL2Nocm9tZS9i cm93c2VyL3ByZWxvYWRpbmcvcHJlZmV0Y2gvbm9fc3RhdGVfcHJlZmV0Y2giLAorICAgICAiLy9j aHJvbWUvYnJvd3Nlci9wcmVsb2FkaW5nL3ByZWZldGNoL3NlYXJjaF9wcmVmZXRjaCIsCisgICAg ICIvL2Nocm9tZS9icm93c2VyL3ByaXZhY3lfc2FuZGJveDpoZWFkZXJzIiwKKy0gICAgIi8vY2hy b21lL2Jyb3dzZXIvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zIiwKKyAgICAgIi8vY2hyb21l L2Jyb3dzZXIvcHJvZmlsZXMva2VlcF9hbGl2ZSIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3Jl YWRpbmdfbGlzdCIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3NhZmVfYnJvd3NpbmciLAorQEAg LTI2Nyw3ICsyNjYsNiBAQCBzb3VyY2Vfc2V0KCJ1bml0X3Rlc3RzIikgeworICAgICAiLy9jaHJv bWUvYnJvd3Nlci9wYXltZW50cy9icm93c2VyX2JpbmRpbmc6YnJvd3Nlcl9ib3VuZF9rZXlfZGVs ZXRlciIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3BheW1lbnRzL2Jyb3dzZXJfYmluZGluZzp0 ZXN0X3N1cHBvcnQiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wZXJtaXNzaW9ucyIsCistICAg ICIvL2Nocm9tZS9icm93c2VyL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2VucyIsCisgICAgICIv L2Nocm9tZS9icm93c2VyL3JlYWRpbmdfbGlzdCIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3Nh ZmVfYnJvd3Npbmc6dmVyZGljdF9jYWNoZV9tYW5hZ2VyX2ZhY3RvcnkiLAorICAgICAiLy9jaHJv bWUvYnJvd3Nlci9zZWdtZW50YXRpb25fcGxhdGZvcm0iLAorQEAgLTI5NSw3ICsyOTMsNiBAQCBz b3VyY2Vfc2V0KCJ1bml0X3Rlc3RzIikgeworICAgICAiLy9jb21wb25lbnRzL3ByaXZhY3lfc2Fu ZGJveDpwcml2YWN5X3NhbmRib3hfc2V0dGluZ3NfaGVhZGVycyIsCisgICAgICIvL2NvbXBvbmVu dHMvcHJpdmFjeV9zYW5kYm94L3ByaXZhY3lfc2FuZGJveF9hdHRlc3RhdGlvbnMiLAorICAgICAi Ly9jb21wb25lbnRzL3ByaXZhY3lfc2FuZGJveC9wcml2YWN5X3NhbmRib3hfYXR0ZXN0YXRpb25z OnRlc3Rfc3VwcG9ydCIsCistICAgICIvL2NvbXBvbmVudHMvcHJpdmF0ZV92ZXJpZmljYXRpb25f dG9rZW5zL2NvbW1vbjpwcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnNfZGF0YWJhc2UiLAorICAg ICAiLy9jb21wb25lbnRzL3JlYWRpbmdfbGlzdC9jb3JlOnRlc3Rfc3VwcG9ydCIsCisgICAgICIv L2NvbXBvbmVudHMvc2FmZV9icm93c2luZy9jb3JlL2Jyb3dzZXI6dmVyZGljdF9jYWNoZV9tYW5h Z2VyIiwKKyAgICAgIi8vY29tcG9uZW50cy9zaXRlX2VuZ2FnZW1lbnQvY29udGVudCIsCistLS0g YS9jaHJvbWUvYnJvd3Nlci9icm93c2luZ19kYXRhL2Nocm9tZV9icm93c2luZ19kYXRhX21vZGVs X2RlbGVnYXRlLmNjCisrKysgYi9jaHJvbWUvYnJvd3Nlci9icm93c2luZ19kYXRhL2Nocm9tZV9i cm93c2luZ19kYXRhX21vZGVsX2RlbGVnYXRlLmNjCitAQCAtMTI3LDE1ICsxMjcsNiBAQCB2b2lk IENocm9tZUJyb3dzaW5nRGF0YU1vZGVsRGVsZWdhdGU6OkdlCisgCisgICBHZXRBbGxNZWRpYURl dmljZVNhbHREYXRhS2V5cyhjb25jdXJyZW50LkNyZWF0ZUNhbGxiYWNrKCksIHt9KTsKKyAKKy0g IGlmIChiYXNlOjpGZWF0dXJlTGlzdDo6SXNFbmFibGVkKAorLSAgICAgICAgICBuZXQ6OmZlYXR1 cmVzOjprRW5hYmxlUHJpdmF0ZVZlcmlmaWNhdGlvblRva2VucykpIHsKKy0gICAgaWYgKGF1dG8q IHB2dF9zZXJ2aWNlID0KKy0gICAgICAgICAgICBQcml2YXRlVmVyaWZpY2F0aW9uVG9rZW5zU2Vy dmljZUZhY3Rvcnk6OkdldEZvclByb2ZpbGUocHJvZmlsZV8pKSB7CistICAgICAgcHZ0X3NlcnZp Y2UtPkdldFRva2VuSXNzdWVycygKKy0gICAgICAgICAgYmFzZTo6QmluZE9uY2UoJlByaXZhdGVW ZXJpZmljYXRpb25Ub2tlbkJyb3dzaW5nRGF0YVRvRGVsZWdhdGVFbnRyaWVzKQorLSAgICAgICAg ICAgICAgLlRoZW4oY29uY3VycmVudC5DcmVhdGVDYWxsYmFjaygpKSk7CistICAgIH0KKy0gIH0K KyAKKyAgIC8vIFRPRE8oY3JidWcuY29tLzQwMjA1NjAzKTogSW1wbGVtZW50IGRhdGEgcmV0cmll dmFsIGZvciByZW1haW5pbmcgZGF0YQorICAgLy8gdHlwZXMuCitAQCAtMTgwLDIwICsxNzEsNiBA QCB2b2lkIENocm9tZUJyb3dzaW5nRGF0YU1vZGVsRGVsZWdhdGU6OlJlCisgICB9CisgI2VuZGlm ICAvLyAhQlVJTERGTEFHKElTX0FORFJPSUQpCisgCistICBpZiAoYmFzZTo6RmVhdHVyZUxpc3Q6 OklzRW5hYmxlZCgKKy0gICAgICAgICAgbmV0OjpmZWF0dXJlczo6a0VuYWJsZVByaXZhdGVWZXJp ZmljYXRpb25Ub2tlbnMpICYmCistICAgICAgc3RvcmFnZV90eXBlcy5IYXMoc3RhdGljX2Nhc3Q8 QnJvd3NpbmdEYXRhTW9kZWw6OlN0b3JhZ2VUeXBlPigKKy0gICAgICAgICAgU3RvcmFnZVR5cGU6 OmtQcml2YXRlVmVyaWZpY2F0aW9uVG9rZW5zKSkpIHsKKy0gICAgaWYgKGNvbnN0IHVybDo6T3Jp Z2luKiBvcmlnaW4gPSBzdGQ6OmdldF9pZjx1cmw6Ok9yaWdpbj4oJmRhdGFfa2V5KSkgeworLSAg ICAgIGlmIChhdXRvKiBwdnRfc2VydmljZSA9CistICAgICAgICAgICAgICBQcml2YXRlVmVyaWZp Y2F0aW9uVG9rZW5zU2VydmljZUZhY3Rvcnk6OkdldEZvclByb2ZpbGUoCistICAgICAgICAgICAg ICAgICAgcHJvZmlsZV8pKSB7CistICAgICAgICBwdnRfc2VydmljZS0+RGVsZXRlVG9rZW5zKGJh c2U6OlRpbWUoKSwgYmFzZTo6VGltZTo6TWF4KCksCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbmN1cnJlbnQuQ3JlYXRlQ2xvc3VyZSgpLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdGQ6OnZlY3Rvcjx1cmw6Ok9yaWdpbj57Km9yaWdpbn0pOworLSAg ICAgIH0KKy0gICAgfQorLSAgfQorIAorICAgc3RkOjptb3ZlKGNvbmN1cnJlbnQpLkRvbmUoc3Rk Ojptb3ZlKGNhbGxiYWNrKSk7CisgfQorLS0tIGEvY2hyb21lL2Jyb3dzZXIvYnJvd3NpbmdfZGF0 YS9jaHJvbWVfYnJvd3NpbmdfZGF0YV9yZW1vdmVyX2RlbGVnYXRlLmNjCisrKysgYi9jaHJvbWUv YnJvd3Nlci9icm93c2luZ19kYXRhL2Nocm9tZV9icm93c2luZ19kYXRhX3JlbW92ZXJfZGVsZWdh dGUuY2MKK0BAIC03MjAsMjkgKzcyMCw2IEBAIHZvaWQgQ2hyb21lQnJvd3NpbmdEYXRhUmVtb3Zl ckRlbGVnYXRlOjoKKyAjZW5kaWYgIC8vIEJVSUxERkxBRyhJU19DSFJPTUVPUykKKyAgIH0KKyAK Ky0gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLSAgLy8gREFUQV9UWVBFX1BSSVZBVEVfVkVSSUZJ Q0FUSU9OX1RPS0VOUworLSAgaWYgKHJlbW92ZV9tYXNrICYgY29uc3RhbnRzOjpEQVRBX1RZUEVf UFJJVkFURV9WRVJJRklDQVRJT05fVE9LRU5TKSB7CistICAgIGlmIChiYXNlOjpGZWF0dXJlTGlz dDo6SXNFbmFibGVkKAorLSAgICAgICAgICAgIG5ldDo6ZmVhdHVyZXM6OmtFbmFibGVQcml2YXRl VmVyaWZpY2F0aW9uVG9rZW5zKSkgeworLSAgICAgIGlmIChhdXRvKiBwdnRfc2VydmljZSA9Cist ICAgICAgICAgICAgICBQcml2YXRlVmVyaWZpY2F0aW9uVG9rZW5zU2VydmljZUZhY3Rvcnk6Okdl dEZvclByb2ZpbGUoCistICAgICAgICAgICAgICAgICAgcHJvZmlsZV8pKSB7CistICAgICAgICBh dXRvIGRvbmVfY2xvc3VyZSA9IENyZWF0ZVRhc2tDb21wbGV0aW9uQ2xvc3VyZSgKKy0gICAgICAg ICAgICBUcmFjaW5nRGF0YVR5cGU6OmtQcml2YXRlVmVyaWZpY2F0aW9uVG9rZW5zKTsKKy0KKy0g ICAgICAgIGlmIChmaWx0ZXJfYnVpbGRlci0+TWF0Y2hlc0FsbE9yaWdpbnNBbmREb21haW5zKCkp IHsKKy0gICAgICAgICAgcHZ0X3NlcnZpY2UtPkRlbGV0ZVRva2VucyhkZWxldGVfYmVnaW5fLCBk ZWxldGVfZW5kXywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6Om1v dmUoZG9uZV9jbG9zdXJlKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv Kmlzc3VlcnM9Ki9zdGQ6Om51bGxvcHQpOworLSAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAg cHZ0X3NlcnZpY2UtPkRlbGV0ZVRva2Vuc0J5RmlsdGVyKAorLSAgICAgICAgICAgICAgZGVsZXRl X2JlZ2luXywgZGVsZXRlX2VuZF8sCistICAgICAgICAgICAgICBmaWx0ZXJfYnVpbGRlci0+QnVp bGRTdG9yYWdlS2V5RmlsdGVyKCksIHN0ZDo6bW92ZShkb25lX2Nsb3N1cmUpKTsKKy0gICAgICAg IH0KKy0gICAgICB9CistICAgIH0KKy0gIH0KKyAKKyAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwor ICAgLy8gREFUQV9UWVBFX0NPTlRFTlRfU0VUVElOR1MKKy0tLSBhL2Nocm9tZS9icm93c2VyL2No cm9tZV9jb250ZW50X2Jyb3dzZXJfY2xpZW50LmNjCisrKysgYi9jaHJvbWUvYnJvd3Nlci9jaHJv bWVfY29udGVudF9icm93c2VyX2NsaWVudC5jYworQEAgLTYwMDksMjEgKzYwMDksNiBAQCBDaHJv bWVDb250ZW50QnJvd3NlckNsaWVudDo6Q3JlYXRlVVJMTG9hCisgICAgIHJlc3VsdC5wdXNoX2Jh Y2soc3RkOjptb3ZlKHNpZ25pbl90aHJvdHRsZSkpOworICAgfQorIAorLSAgaWYgKGJhc2U6OkZl YXR1cmVMaXN0OjpJc0VuYWJsZWQoCistICAgICAgICAgIG5ldDo6ZmVhdHVyZXM6OmtFbmFibGVQ cml2YXRlVmVyaWZpY2F0aW9uVG9rZW5zKSAmJgorLSAgICAgIHJlcXVlc3QuaXNfb3V0ZXJtb3N0 X21haW5fZnJhbWUpIHsKKy0gICAgaWYgKGF1dG8qIHB2dF9zZXJ2aWNlID0KKy0gICAgICAgICAg ICBQcml2YXRlVmVyaWZpY2F0aW9uVG9rZW5zU2VydmljZUZhY3Rvcnk6OkdldEZvclByb2ZpbGUo cHJvZmlsZSkpIHsKKy0gICAgICBhdXRvIHVybF9sb2FkZXJfZmFjdG9yeSA9IHByb2ZpbGUtPkdl dERlZmF1bHRTdG9yYWdlUGFydGl0aW9uKCkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAtPkdldFVSTExvYWRlckZhY3RvcnlGb3JCcm93c2VyUHJvY2VzcygpOworLSAgICAg IGlmIChhdXRvIHB2dF90aHJvdHRsZSA9CistICAgICAgICAgICAgICBQcml2YXRlVmVyaWZpY2F0 aW9uVG9rZW5zVVJMTG9hZGVyVGhyb3R0bGU6OkNyZWF0ZSgKKy0gICAgICAgICAgICAgICAgICBw dnRfc2VydmljZSwgcHJvZmlsZS0+SXNPZmZUaGVSZWNvcmQoKSwKKy0gICAgICAgICAgICAgICAg ICBzdGQ6Om1vdmUodXJsX2xvYWRlcl9mYWN0b3J5KSkpIHsKKy0gICAgICAgIHJlc3VsdC5wdXNo X2JhY2soc3RkOjptb3ZlKHB2dF90aHJvdHRsZSkpOworLSAgICAgIH0KKy0gICAgfQorLSAgfQor IAorICAgaWYgKGF1dG8gY29udGV4dHVhbF90YXNrc190aHJvdHRsZSA9CisgICAgICAgICAgIGNv bnRleHR1YWxfdGFza3M6OkNvbnRleHR1YWxUYXNrc1VSTExvYWRlclRocm90dGxlOjpNYXliZUNy ZWF0ZSgKKy0tLSBhL2Nocm9tZS9icm93c2VyL2NvbXBvbmVudF91cGRhdGVyL0JVSUxELmduCisr KysgYi9jaHJvbWUvYnJvd3Nlci9jb21wb25lbnRfdXBkYXRlci9CVUlMRC5nbgorQEAgLTE0Nyw3 ICsxNDcsNiBAQCBzb3VyY2Vfc2V0KCJpbXBsIikgeworICAgICAiLy9jaHJvbWUvYnJvd3Nlci9u ZXQiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wYWdlX2xvYWRfbWV0cmljcyIsCisgICAgICIv L2Nocm9tZS9icm93c2VyL3Blcm1pc3Npb25zIiwKKy0gICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJp dmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJvZmls ZXM6cHJvZmlsZSIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3VwZGF0ZV9jbGllbnQiLAorICAg ICAiLy9jaHJvbWUvY29tbW9uIiwKK0BAIC0xNjMsNyArMTYyLDYgQEAgc291cmNlX3NldCgiaW1w bCIpIHsKKyAgICAgIi8vY29tcG9uZW50cy9wZXJtaXNzaW9ucyIsCisgICAgICIvL2NvbXBvbmVu dHMvcHJpdmFjeV9zYW5kYm94OmZlYXR1cmVzIiwKKyAgICAgIi8vY29tcG9uZW50cy9wcml2YWN5 X3NhbmRib3gvcHJpdmFjeV9zYW5kYm94X2F0dGVzdGF0aW9ucyIsCistICAgICIvL2NvbXBvbmVu dHMvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zL2NvbW1vbjpwcml2YXRlX3ZlcmlmaWNhdGlv bl90b2tlbnNfaXNzdWVyX2NvbmZpZyIsCisgICAgICIvL2NvbXBvbmVudHMvc2FmZV9icm93c2lu Zy9jb3JlL2NvbW1vbjpmZWF0dXJlcyIsCisgICAgICIvL2NvbXBvbmVudHMvc2VhcmNoIiwKKyAg ICAgIi8vY29tcG9uZW50cy9zZWN1cml0eV9pbnRlcnN0aXRpYWxzL2NvbnRlbnQ6c2VjdXJpdHlf aW50ZXJzdGl0aWFsX3BhZ2UiLAorLS0tIGEvY2hyb21lL2Jyb3dzZXIvY29tcG9uZW50X3VwZGF0 ZXIvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zX2luc3RhbGxlci5jYworKysrIGIvY2hyb21l L2Jyb3dzZXIvY29tcG9uZW50X3VwZGF0ZXIvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zX2lu c3RhbGxlci5jYworQEAgLTI1LDMyICsyNSw2IEBAIG5hbWVzcGFjZSBjb21wb25lbnRfdXBkYXRl ciB7CisgCisgdm9pZCBSZWdpc3RlclByaXZhdGVWZXJpZmljYXRpb25Ub2tlbnNDb21wb25lbnRJ ZkVuYWJsZWQoCisgICAgIENvbXBvbmVudFVwZGF0ZVNlcnZpY2UqIGN1cykgeworLSAgaWYgKCFi YXNlOjpGZWF0dXJlTGlzdDo6SXNFbmFibGVkKAorLSAgICAgICAgICBuZXQ6OmZlYXR1cmVzOjpr RW5hYmxlUHJpdmF0ZVZlcmlmaWNhdGlvblRva2VucykpIHsKKy0gICAgcmV0dXJuOworLSAgfQor LQorLSAgYXV0byBpbnN0YWxsZXIgPSBiYXNlOjpNYWtlUmVmQ291bnRlZDxDb21wb25lbnRJbnN0 YWxsZXI+KAorLSAgICAgIHN0ZDo6bWFrZV91bmlxdWU8UHJpdmF0ZVZlcmlmaWNhdGlvblRva2Vu c0luc3RhbGxlclBvbGljeT4oCistICAgICAgICAgIGJhc2U6OkJpbmRSZXBlYXRpbmcoCistICAg ICAgICAgICAgICBbXShzY29wZWRfcmVmcHRyPHByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vuczo6 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcml2YXRlVmVyaWZpY2F0aW9u VG9rZW5zSXNzdWVyQ29uZmlnPgorLSAgICAgICAgICAgICAgICAgICAgIGlzc3Vlcl9jb25maWcp IHsKKy0gICAgICAgICAgICAgICAgUHJpdmF0ZVZlcmlmaWNhdGlvblRva2Vuc1NlcnZpY2VGYWN0 b3J5OjpTZXRHbG9iYWxJc3N1ZXJDb25maWcoCistICAgICAgICAgICAgICAgICAgICBpc3N1ZXJf Y29uZmlnKTsKKy0gICAgICAgICAgICAgICAgaWYgKGdfYnJvd3Nlcl9wcm9jZXNzICYmIGdfYnJv d3Nlcl9wcm9jZXNzLT5wcm9maWxlX21hbmFnZXIoKSkgeworLSAgICAgICAgICAgICAgICAgIGZv ciAoUHJvZmlsZSogcHJvZmlsZSA6IGdfYnJvd3Nlcl9wcm9jZXNzLT5wcm9maWxlX21hbmFnZXIo KQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPkdldExv YWRlZFByb2ZpbGVzKCkpIHsKKy0gICAgICAgICAgICAgICAgICAgIGlmIChQcml2YXRlVmVyaWZp Y2F0aW9uVG9rZW5zU2VydmljZSogc2VydmljZSA9CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFByaXZhdGVWZXJpZmljYXRpb25Ub2tlbnNTZXJ2aWNlRmFjdG9yeTo6CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHZXRGb3JQcm9maWxlSWZFeGlzdHMocHJvZmlsZSkpIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgc2VydmljZS0+U2V0SXNzdWVyQ29uZmlnKGlzc3Vlcl9j b25maWcpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgfSkpKTsKKy0KKy0gIGluc3RhbGxlci0+ UmVnaXN0ZXIoY3VzLCBiYXNlOjpPbmNlQ2xvc3VyZSgpKTsKKyB9CisgCisgfSAgLy8gbmFtZXNw YWNlIGNvbXBvbmVudF91cGRhdGVyCistLS0gYS9jaHJvbWUvYnJvd3Nlci9wcml2YXRlX3Zlcmlm aWNhdGlvbl90b2tlbnMvQlVJTEQuZ24KKysrKyBiL2Nocm9tZS9icm93c2VyL3ByaXZhdGVfdmVy aWZpY2F0aW9uX3Rva2Vucy9CVUlMRC5nbgorQEAgLTI2LDExICsyNiw2IEBAIHN0YXRpY19saWJy YXJ5KCJwcml2YXRlX3ZlcmlmaWNhdGlvbl90b2sKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJv ZmlsZXM6cHJvZmlsZSIsCisgICAgICIvL2NvbXBvbmVudHMvY29udGVudF9zZXR0aW5ncy9jb3Jl L2Jyb3dzZXIiLAorICAgICAiLy9jb21wb25lbnRzL2tleWVkX3NlcnZpY2UvY29yZSIsCistICAg ICIvL2NvbXBvbmVudHMvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zL2NvbW1vbjpwcml2YWN5 X3Bhc3NfYXRobV9iYXRjaF9yZXF1ZXN0IiwKKy0gICAgIi8vY29tcG9uZW50cy9wcml2YXRlX3Zl cmlmaWNhdGlvbl90b2tlbnMvY29tbW9uOnByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vuc19mZXRj aGVyIiwKKy0gICAgIi8vY29tcG9uZW50cy9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMvY29t bW9uOnByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vuc19pc3N1ZXJfY29uZmlnIiwKKy0gICAgIi8v Y29tcG9uZW50cy9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMvY29tbW9uOnByaXZhdGVfdmVy aWZpY2F0aW9uX3Rva2Vuc19wYXJhbWV0ZXJzIiwKKy0gICAgIi8vY29tcG9uZW50cy9wcml2YXRl X3ZlcmlmaWNhdGlvbl90b2tlbnMvY29tbW9uOnByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vuc19z dG9yZSIsCisgICAgICIvL2NvbnRlbnQvcHVibGljL2Jyb3dzZXIiLAorICAgICAiLy9uZXQiLAor ICAgICAiLy9zZXJ2aWNlcy9uZXR3b3JrL3B1YmxpYy9jcHAiLAorQEAgLTQ5LDkgKzQ0LDYgQEAg c291cmNlX3NldCgiYnJvd3Nlcl90ZXN0cyIpIHsKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvY29u dGVudF9zZXR0aW5nczpjb250ZW50X3NldHRpbmdzX2ZhY3RvcnkiLAorICAgICAiLy9jaHJvbWUv dGVzdDp0ZXN0X3N1cHBvcnQiLAorICAgICAiLy9jb21wb25lbnRzL2NvbnRlbnRfc2V0dGluZ3Mv Y29yZS9jb21tb24iLAorLSAgICAiLy9jb21wb25lbnRzL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rv a2Vucy9jb21tb246YXRobV90ZXN0X2lzc3VlciIsCistICAgICIvL2NvbXBvbmVudHMvcHJpdmF0 ZV92ZXJpZmljYXRpb25fdG9rZW5zL2NvbW1vbjpwcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnNf ZGF0YWJhc2UiLAorLSAgICAiLy9jb21wb25lbnRzL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vu cy9jb21tb246cHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zX2lzc3Vlcl9jb25maWciLAorICAg ICAiLy9uZXQ6dGVzdF9zdXBwb3J0IiwKKyAgICAgIi8vc2VydmljZXMvbmV0d29yazp0ZXN0X3N1 cHBvcnQiLAorICAgICAiLy91cmwiLAorQEAgLTcyLDExICs2NCw2IEBAIHNvdXJjZV9zZXQoInVu aXRfdGVzdHMiKSB7CisgICAgICIvL2Nocm9tZS90ZXN0OnRlc3Rfc3VwcG9ydCIsCisgICAgICIv L2NvbXBvbmVudHMvY29udGVudF9zZXR0aW5ncy9jb3JlL2Jyb3dzZXIiLAorICAgICAiLy9jb21w b25lbnRzL2NvbnRlbnRfc2V0dGluZ3MvY29yZS9jb21tb24iLAorLSAgICAiLy9jb21wb25lbnRz L3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vucy9jb21tb246YXRobV90ZXN0X2lzc3VlciIsCist ICAgICIvL2NvbXBvbmVudHMvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zL2NvbW1vbjpwcml2 YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnNfZGF0YWJhc2UiLAorLSAgICAiLy9jb21wb25lbnRzL3By aXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vucy9jb21tb246cHJpdmF0ZV92ZXJpZmljYXRpb25fdG9r ZW5zX2lzc3Vlcl9jb25maWciLAorLSAgICAiLy9jb21wb25lbnRzL3ByaXZhdGVfdmVyaWZpY2F0 aW9uX3Rva2Vucy9jb21tb246cHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zX3BhcmFtZXRlcnMi LAorLSAgICAiLy9jb21wb25lbnRzL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vucy9jb21tb246 dGVzdF9zdXBwb3J0IiwKKyAgICAgIi8vY29udGVudC90ZXN0OnRlc3Rfc3VwcG9ydCIsCisgICAg ICIvL25ldCIsCisgICAgICIvL3NlcnZpY2VzL25ldHdvcms6dGVzdF9zdXBwb3J0IiwKKy0tLSBh L2Nocm9tZS9icm93c2VyL3Byb2ZpbGVzL0JVSUxELmduCisrKysgYi9jaHJvbWUvYnJvd3Nlci9w cm9maWxlcy9CVUlMRC5nbgorQEAgLTgwOSw3ICs4MDksNiBAQCBzb3VyY2Vfc2V0KCJwcm9maWxl c19leHRyYV9wYXJ0c19pbXBsIikKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJpdmFjeV9zYW5k Ym94OmhlYWRlcnMiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcml2YXRlX2FpIiwKKyAgICAg Ii8vY2hyb21lL2Jyb3dzZXIvcHJpdmF0ZV9pbnNpZ2h0cyIsCistICAgICIvL2Nocm9tZS9icm93 c2VyL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2VucyIsCisgICAgICIvL2Nocm9tZS9icm93c2Vy L3B1c2hfbWVzc2FnaW5nIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcmVhZGluZ19saXN0IiwK KyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcmVkdWNlX2FjY2VwdF9sYW5ndWFnZSIsCistLS0gYS9j aHJvbWUvYnJvd3Nlci9wcm9maWxlcy9jaHJvbWVfYnJvd3Nlcl9tYWluX2V4dHJhX3BhcnRzX3By b2ZpbGVzLmNjCisrKysgYi9jaHJvbWUvYnJvd3Nlci9wcm9maWxlcy9jaHJvbWVfYnJvd3Nlcl9t YWluX2V4dHJhX3BhcnRzX3Byb2ZpbGVzLmNjCitAQCAtMTM3MSw3ICsxMzcxLDYgQEAgdm9pZCBD aHJvbWVCcm93c2VyTWFpbkV4dHJhUGFydHNQcm9maWxlcworICAgUHJpdmFjeU1ldHJpY3NTZXJ2 aWNlRmFjdG9yeTo6R2V0SW5zdGFuY2UoKTsKKyAgIFByaXZhY3lTYW5kYm94U2VydmljZUZhY3Rv cnk6OkdldEluc3RhbmNlKCk7CisgICBQcml2YWN5U2FuZGJveFNldHRpbmdzRmFjdG9yeTo6R2V0 SW5zdGFuY2UoKTsKKy0gIFByaXZhdGVWZXJpZmljYXRpb25Ub2tlbnNTZXJ2aWNlRmFjdG9yeTo6 R2V0SW5zdGFuY2UoKTsKKyAgIHByaXZhdGVfYWk6OlByaXZhdGVBaVNlcnZpY2VGYWN0b3J5OjpH ZXRJbnN0YW5jZSgpOworICAgUHJvZmlsZU5ldHdvcmtDb250ZXh0U2VydmljZUZhY3Rvcnk6Okdl dEluc3RhbmNlKCk7CisgICBQcm9maWxlUGFzc3dvcmRTdG9yZUZhY3Rvcnk6OkdldEluc3RhbmNl KCk7CistLS0gYS9jaHJvbWUvdGVzdC9CVUlMRC5nbgorKysrIGIvY2hyb21lL3Rlc3QvQlVJTEQu Z24KK0BAIC0yMTM3LDcgKzIxMzcsNiBAQCBpZiAoIWlzX2FuZHJvaWQpIHsKKyAgICAgICAiLy9j aHJvbWUvYnJvd3Nlci9wcml2YWN5X3NhbmRib3g6aGVhZGVycyIsCisgICAgICAgIi8vY2hyb21l L2Jyb3dzZXIvcHJpdmFjeV9zYW5kYm94OnRlc3Rfc3VwcG9ydCIsCisgICAgICAgIi8vY2hyb21l L2Jyb3dzZXIvcHJpdmF0ZV9haSIsCistICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJpdmF0ZV92 ZXJpZmljYXRpb25fdG9rZW5zOmJyb3dzZXJfdGVzdHMiLAorICAgICAgICIvL2Nocm9tZS9icm93 c2VyL3Byb2ZpbGVfcmVzZXR0ZXIiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3Byb2ZpbGVf cmVzZXR0ZXI6YnJvd3Nlcl90ZXN0cyIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJvZmls ZXMiLAorQEAgLTU0MDEsNyArNTQwMCw2IEBAIHRlc3QoInVuaXRfdGVzdHMiKSB7CisgICAgICIv L2Nocm9tZS9icm93c2VyL3ByZWxvYWRpbmcvcHJlcmVuZGVyOnVuaXRfdGVzdHMiLAorICAgICAi Ly9jaHJvbWUvYnJvd3Nlci9wcml2YWN5X3NhbmRib3g6dW5pdF90ZXN0cyIsCisgICAgICIvL2No cm9tZS9icm93c2VyL3ByaXZhdGVfYWk6dW5pdF90ZXN0cyIsCistICAgICIvL2Nocm9tZS9icm93 c2VyL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vuczp1bml0X3Rlc3RzIiwKKyAgICAgIi8vY2hy b21lL2Jyb3dzZXIvcHJvZmlsZXMiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcm9maWxlczpt aXNjIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJvZmlsZXM6cHJvZmlsZV9kb3dubG9hZGVy IiwKKy0tLSBhL2NvbXBvbmVudHMvQlVJTEQuZ24KKysrKyBiL2NvbXBvbmVudHMvQlVJTEQuZ24K K0BAIC0zMTQsNyArMzE0LDYgQEAgdGVzdCgiY29tcG9uZW50c191bml0dGVzdHMiKSB7CisgICAg ICIvL2NvbXBvbmVudHMvcG93ZXJfbWV0cmljczp1bml0X3Rlc3RzIiwKKyAgICAgIi8vY29tcG9u ZW50cy9wcmVmczp1bml0X3Rlc3RzIiwKKyAgICAgIi8vY29tcG9uZW50cy9wcml2YWN5X3NhbmRi b3g6dW5pdF90ZXN0cyIsCistICAgICIvL2NvbXBvbmVudHMvcHJpdmF0ZV92ZXJpZmljYXRpb25f dG9rZW5zOnVuaXRfdGVzdHMiLAorICAgICAiLy9jb21wb25lbnRzL3Byb2ZpbGVfbWV0cmljczp1 bml0X3Rlc3RzIiwKKyAgICAgIi8vY29tcG9uZW50cy9wcm90b19leHRyYXM6dW5pdF90ZXN0cyIs CisgICAgICIvL2NvbXBvbmVudHMvcHJveHlfY29uZmlnOnVuaXRfdGVzdHMiLAorLS0tIGEvY29t cG9uZW50cy9jb21wb25lbnRfdXBkYXRlci9pbnN0YWxsZXJfcG9saWNpZXMvQlVJTEQuZ24KKysr KyBiL2NvbXBvbmVudHMvY29tcG9uZW50X3VwZGF0ZXIvaW5zdGFsbGVyX3BvbGljaWVzL0JVSUxE LmduCitAQCAtMzgsNyArMzgsNiBAQCBzdGF0aWNfbGlicmFyeSgiaW5zdGFsbGVyX3BvbGljaWVz X25vX2NvCisgICAgICIvL2NvbXBvbmVudHMvbG9va2FsaWtlcy9jb3JlOnByb3RvIiwKKyAgICAg Ii8vY29tcG9uZW50cy9sb29rYWxpa2VzL2NvcmU6c2FmZXR5X3RpcHMiLAorICAgICAiLy9jb21w b25lbnRzL3ByZWZzIiwKKy0gICAgIi8vY29tcG9uZW50cy9wcml2YXRlX3ZlcmlmaWNhdGlvbl90 b2tlbnMvY29tbW9uOnByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vuc19pc3N1ZXJfY29uZmlnIiwK KyAgICAgIi8vY29tcG9uZW50cy91cGRhdGVfY2xpZW50IiwKKyAgICAgIi8vbW9qby9wdWJsaWMv Y3BwL2Jhc2U6cHJvdG9idWZfc3VwcG9ydCIsCisgICAgICIvL3NlcnZpY2VzL25ldHdvcmsvcHVi bGljL2NwcCIsCitAQCAtMTA2LDggKzEwNSw2IEBAIHNvdXJjZV9zZXQoInVuaXRfdGVzdHMiKSB7 CisgICAgICIvL2NvbXBvbmVudHMvaGlzdG9yeV9lbWJlZGRpbmdzL2NvcmUiLAorICAgICAiLy9j b21wb25lbnRzL29wdGltaXphdGlvbl9ndWlkZS9jb3JlIiwKKyAgICAgIi8vY29tcG9uZW50cy9v cHRpbWl6YXRpb25fZ3VpZGUvcHJvdG86b3B0aW1pemF0aW9uX2d1aWRlX3Byb3RvIiwKKy0gICAg Ii8vY29tcG9uZW50cy9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMvY29tbW9uOnByaXZhdGVf dmVyaWZpY2F0aW9uX3Rva2Vuc19pc3N1ZXJfY29uZmlnIiwKKy0gICAgIi8vY29tcG9uZW50cy9w cml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMvY29tbW9uOnRlc3Rfc3VwcG9ydCIsCisgICAgICIv L21vam8vcHVibGljL2NwcC9iYXNlOnByb3RvYnVmX3N1cHBvcnQiLAorICAgICAiLy9zZXJ2aWNl cy9uZXR3b3JrL3B1YmxpYy9jcHAiLAorICAgICAiLy90ZXN0aW5nL2dtb2NrIiwKCmRpZmYgLS1n aXQgYS9jaHJvbWl1bS5zcGVjIGIvY2hyb21pdW0uc3BlYwppbmRleCA0N2VkOWM4Li42ZTcxNDkx IDEwMDY0NAotLS0gYS9jaHJvbWl1bS5zcGVjCisrKyBiL2Nocm9taXVtLnNwZWMKQEAgLTMyNyw4 ICszMjcsNyBAQCBQYXRjaDkzOiBjaHJvbWl1bS0xNDEtY3Nzc19zdHlsZV9zaGVldC5wYXRjaAog CiAjIHJldmVydCB0aGUgcGF0Y2ggdG8gZml4IHRoZSBidWlsZCBlcnJvcjogImxkLmxsZDogZXJy b3I6IHVuZGVmaW5lZCBzeW1ib2w6IF9fc2FuaXRpemVyX3NldF9kZWF0aF9jYWxsYmFjayIKIFBh dGNoOTQ6IGNocm9taXVtLTE0OC12OC1zYW5pdGl6ZS1idWlsZC1lcnJvci5wYXRjaAotIyBGaXgg cnVzdCBidWlsZCBlcnJvcgotUGF0Y2g5NTogY2hyb21pdW0tMTUyLWJ1aWxkLWVycm9yLXJ1c3Qt Y2Jvci5wYXRjaAorCiAjIEZUQkZTIC0gZXJyb3I6IGNhbm5vdCBmaW5kIGF0dHJpYnV0ZSBgc2Fu aXRpemVgIGluIHRoaXMgc2NvcGUKICMgICAgLS0+IC4uLy4uL3RoaXJkX3BhcnR5L2NyYWJieWF2 aWYvc3JjL3NyYy9jYXBpL2lvLnJzOjIxMDo0MQogIyAgICAgfApAQCAtNDAzLDggKzQwMiwxNCBA QCBQYXRjaDMxMTogY2hyb21pdW0tMTIzLWZzdGFjay1wcm90ZWN0b3Itc3Ryb25nLnBhdGNoCiAj IEVSUk9SIGF0IC8vYnVpbGQvcnVzdC9jcnViaXQvQlVJTEQuZ246MTI6NTogCiAjIFVuYWJsZSB0 byBsb2FkIHRoaXJkX3BhcnR5L3J1c3QtdG9vbGNoYWluL2xpYi90aGlyZF9wYXJ0eS9jcnViaXQv c3VwcG9ydC9yc19zdGQvQlVJTEQuZ24KICMgIiRjcnViaXRfc3JjX2Rpci9zdXBwb3J0L3JzX3N0 ZDpyc19zdGRfY3BwIiwKKyMgUGF0Y2ggZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdW5nb29nbGVk LXNvZnR3YXJlL3VuZ29vZ2xlZC1jaHJvbWl1bS9wdWxsLzM5NjYKIFBhdGNoMzEyOiBjaHJvbWl1 bS0xNTQtZnRiZnMtY3J1Yml0LnBhdGNoCiAKKyMgRml4IEZUQkZTOgorIyBFUlJPUiBVbnJlc29s dmVkIGRlcGVuZGVuY2llcworIyBQYXRjaCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS91bmdvb2ds ZWQtc29mdHdhcmUvdW5nb29nbGVkLWNocm9taXVtL3B1bGwvMzk2NgorUGF0Y2gzMTM6IGNocm9t aXVtLTE1NC1mdGJmcy1wcml2YXRlLXZlcmlmaWNhdGlvbi10b2tlbnMucGF0Y2gKKwogIyBvbGQg cnVzdCB2ZXJzaW9uIGNhdXNlcyBidWlsZCBlcnJvciBvbiBlbDg6CiAjIGVycm9yW0UwNTk5XTog bm8gbWV0aG9kIG5hbWVkIGBpc19ub25lX29yYCBmb3VuZCBmb3IgZW51bSBgT3B0aW9uYCBpbiB0 aGUgY3VycmVudCBzY29wZQogUGF0Y2gzMTQ6IGNocm9taXVtLTEzNi1ydXN0LXNrcmlmYS1idWls ZC1lcnJvci5wYXRjaApAQCAtMTEwOCw3ICsxMTEzLDYgQEAgUXQ2IFVJIGZvciBjaHJvbWl1bS4K ICVwYXRjaCAtUDkyIC1wMSAtYiAubm9kZWpzLWNoZWNrdmVyc2lvbgogJXBhdGNoIC1QOTMgLXAx IC1iIC5mdGJmcy1jc3NzX3N0eWxlX3NoZWV0CiAlcGF0Y2ggLVA5NCAtcDEgLVIgLWIgLnY4LXNh bml0aXplLWJ1aWxkLWVycm9yCi0lcGF0Y2ggLVA5NSAtcDEgLWIgLmJ1aWxkLWVycm9yLXJ1c3Qt Y2JvcgogJXBhdGNoIC1QOTYgLXAxIC1iIC5jcmFiYnlhdmlmLWZ0YmZzLW9sZC1ydXN0CiAKICVp ZiAhICV7YnVuZGxlZmZtcGVnZnJlZX0KQEAgLTExNjIsNyArMTE2Niw4IEBAIFF0NiBVSSBmb3Ig Y2hyb21pdW0uCiAlcGF0Y2ggLVAzMTUgLXAxIC1iIC5ydXN0Yy1mdGJmcwogJXBhdGNoIC1QMzEw IC1wMSAtYiAucnVzdC1GVEJGUy1zdXBwcmVzcy13YXJuaW5ncwogJXBhdGNoIC1QMzExIC1wMSAt YiAuZnN0YWNrLXByb3RlY3Rvci1zdHJvbmcKLSVwYXRjaCAtUDMxMiAtcDEgLVIgLWIgLmZ0YmZz LWNydWJpdAorJXBhdGNoIC1QMzEyIC1wMSAtYiAuZnRiZnMtY3J1Yml0CislcGF0Y2ggLVAzMTMg LXAxIC1iIC5mdGJmcy1wcml2YXRlLXZlcmlmaWNhdGlvbi10b2tlbnMKIAogJWlmIDAlez9yaGVs fSAmJiAwJXs/cmhlbH0gPCAxMAogJXBhdGNoIC1QMzU0IC1wMSAtYiAuc3BsaXQtdGhyZXNob2xk LWZvci1yZWctd2l0aC1oaW50CkBAIC0xNDAzLDcgKzE0MDgsNiBAQCBDSFJPTUlVTV9DT1JFX0dO X0RFRklORVMrPScgaG9zdF90b29sY2hhaW49Ii8vYnVpbGQvdG9vbGNoYWluL2xpbnV4L3VuYnVu ZGxlOmRlZgogQ0hST01JVU1fQlJPV1NFUl9HTl9ERUZJTkVTKz0nIHVzZV9jdXN0b21fbGliY3h4 PWZhbHNlJwogJWVuZGlmCiBDSFJPTUlVTV9DT1JFX0dOX0RFRklORVMrPScgaXNfZGVidWc9ZmFs c2UgZGNoZWNrX2Fsd2F5c19vbj1mYWxzZSBkY2hlY2tfaXNfY29uZmlndXJhYmxlPWZhbHNlJwot Q0hST01JVU1fQ09SRV9HTl9ERUZJTkVTKz0nIGVuYWJsZV9lbnRlcnByaXNlX2NvbXBhbmlvbj1m YWxzZScKIENIUk9NSVVNX0NPUkVfR05fREVGSU5FUys9JyBzeXN0ZW1fbGliZGlyPSIle19saWJ9 IicKIAogJWlmICV7b2ZmaWNpYWxfYnVpbGR9Cg==