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: Tulio Magno Quites Machado Filho To: git-commits@fedoraproject.org Subject: [rpms/clazy] epel8: Backport patches for LLVM 22 Date: Fri, 14 Aug 2026 07:36:03 GMT Message-ID: <178669296366.1.1947263655476984133.rpms-clazy-dc9f383a3824@fedoraproject.org> List-ID: X-Git-Repo: rpms/clazy X-Git-Branch: epel8 X-Git-Rev: dc9f383a3824f57b3d9e2b15fbf7e85158b28623 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvY2xhenkKICAgICAgICAgICAgQnJhbmNoIDogZXBlbDgKICAgICAgICAgICAg Q29tbWl0IDogZGM5ZjM4M2EzODI0ZjU3YjNkOWUyYjE1ZmJmN2U4NTE1OGIyODYyMwogICAgICAg ICAgICBBdXRob3IgOiBUdWxpbyBNYWdubyBRdWl0ZXMgTWFjaGFkbyBGaWxobyA8dHVsaW9tQHJl ZGhhdC5jb20+CiAgICAgICAgICAgIERhdGUgICA6IDIwMjYtMDItMDlUMTQ6Mzc6NTItMDM6MDAK ICAgICAgICAgICAgU3RhdHMgIDogKzQxOS8tMSBpbiA1IGZpbGUocykKICAgICAgICAgICAgVVJM ICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9jbGF6eS9jL2RjOWYzODNh MzgyNGY1N2IzZDllMmIxNWZiZjdlODUxNThiMjg2MjM/YnJhbmNoPWVwZWw4CgogICAgICAgICAg ICBMb2c6CiAgICAgICAgICAgIEJhY2twb3J0IHBhdGNoZXMgZm9yIExMVk0gMjIKCkFkZCA0IHBh dGNoZXMgZnJvbSB1cHN0cmVhbSB0aGF0IGFyZSByZXF1aXJlZCB0byBidWlsZCBjbGF6eSB3aXRo CkxMVk0gMjIuCgotLS0KZGlmZiAtLWdpdCBhLzc2MjEyODg1NzI5YmY5ZGNmZWE3YzE5OGQzMmEx NTY1MTMxMGFjZWIucGF0Y2ggYi83NjIxMjg4NTcyOWJmOWRjZmVhN2MxOThkMzJhMTU2NTEzMTBh Y2ViLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyZjdlNjEKLS0t IC9kZXYvbnVsbAorKysgYi83NjIxMjg4NTcyOWJmOWRjZmVhN2MxOThkMzJhMTU2NTEzMTBhY2Vi LnBhdGNoCkBAIC0wLDAgKzEsNjQgQEAKK0Zyb20gNzYyMTI4ODU3MjliZjlkY2ZlYTdjMTk4ZDMy YTE1NjUxMzEwYWNlYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFsZXhhbmRlciBM b2huYXUgPGFsZXhhbmRlci5sb2huYXVAZ214LmRlPgorRGF0ZTogU3VuLCAyIE5vdiAyMDI1IDA4 OjMwOjI4ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIEZpeCBxaGFzaC1uYW1lc3BhY2UgdGVzdCB3 aXRoIGxsdm0yMgorCistLS0KKyBzcmMvY2hlY2tzL2xldmVsMS9xaGFzaC1uYW1lc3BhY2UuY3Bw IHwgMTYgKysrKysrKysrKysrLS0tLQorIHNyYy9jaGVja3MvbGV2ZWwxL3FoYXNoLW5hbWVzcGFj ZS5oICAgfCAgMyArKysKKyAyIGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDQgZGVs ZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvY2hlY2tzL2xldmVsMS9xaGFzaC1uYW1lc3Bh Y2UuY3BwIGIvc3JjL2NoZWNrcy9sZXZlbDEvcWhhc2gtbmFtZXNwYWNlLmNwcAoraW5kZXggZWYy OTcxMWIuLjRiMzk3ZmMzIDEwMDY0NAorLS0tIGEvc3JjL2NoZWNrcy9sZXZlbDEvcWhhc2gtbmFt ZXNwYWNlLmNwcAorKysrIGIvc3JjL2NoZWNrcy9sZXZlbDEvcWhhc2gtbmFtZXNwYWNlLmNwcAor QEAgLTE4LDYgKzE4LDE1IEBACisgCisgdXNpbmcgbmFtZXNwYWNlIGNsYW5nOworIAorK3N0ZDo6 c3RyaW5nIFFIYXNoTmFtZXNwYWNlOjpmdWxseVF1YWxpZmllZFBhcmFtTmFtZShjbGFuZzo6UGFy bVZhckRlY2wgKmZpcnN0QXJnKQorK3sKKysgICAgaWYgKGF1dG8gKnR5cGVQdHIgPSBmaXJzdEFy Zy0+Z2V0VHlwZSgpLmdldFR5cGVQdHIoKS0+Z2V0QXNUYWdEZWNsKCkpIHsKKysgICAgICAgIHJl dHVybiB0eXBlUHRyLT5nZXRRdWFsaWZpZWROYW1lQXNTdHJpbmcoKTsKKysgICAgfQorKyAgICAv LyBGYWxsYmFjaywgc2hvdWxkIG5vdCBoYXBwZW4KKysgICAgcmV0dXJuIGZpcnN0QXJnLT5nZXRU eXBlKCkuZ2V0QXNTdHJpbmcoKTsKKyt9CisrCisgdm9pZCBRSGFzaE5hbWVzcGFjZTo6VmlzaXRE ZWNsKGNsYW5nOjpEZWNsICpkZWNsKQorIHsKKyAgICAgYXV0byAqZnVuYyA9IGR5bl9jYXN0PEZ1 bmN0aW9uRGVjbD4oZGVjbCk7CitAQCAtMzQsMTMgKzQzLDEyIEBAIHZvaWQgUUhhc2hOYW1lc3Bh Y2U6OlZpc2l0RGVjbChjbGFuZzo6RGVjbCAqZGVjbCkKKyAgICAgICAgIGNvbnN0IHN0ZDo6c3Ry aW5nIGFyZ3VtZW50TlNzdHIgPSBhcmd1bWVudE5TLT5nZXRRdWFsaWZpZWROYW1lQXNTdHJpbmco KTsKKyAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIHFoYXNoTlNzdHIgPSBxSGFzaE5TLT5nZXRR dWFsaWZpZWROYW1lQXNTdHJpbmcoKTsKKyAgICAgICAgIGlmIChhcmd1bWVudE5Tc3RyICE9IHFo YXNoTlNzdHIpIHsKKy0gICAgICAgICAgICBtc2cgPSAiTW92ZSBxSGFzaCgiICsgY2xhenk6OnNp bXBsZVR5cGVOYW1lKGZpcnN0QXJnLT5nZXRUeXBlKCksIGxvKCkpICsgIikgdG8gIiArIGFyZ3Vt ZW50TlNzdHIgKyAiIG5hbWVzcGFjZSBmb3IgQURMIGxvb2t1cCI7CisrICAgICAgICAgICAgbXNn ID0gIk1vdmUgcUhhc2goIiArIGZ1bGx5UXVhbGlmaWVkUGFyYW1OYW1lKGZpcnN0QXJnKSArICIp IHRvICIgKyBhcmd1bWVudE5Tc3RyICsgIiBuYW1lc3BhY2UgZm9yIEFETCBsb29rdXAiOworICAg ICAgICAgfQorICAgICB9IGVsc2UgaWYgKHFIYXNoTlMgJiYgIWFyZ3VtZW50TlMpIHsKKy0gICAg ICAgIG1zZyA9ICJNb3ZlIHFIYXNoKCIgKyBjbGF6eTo6c2ltcGxlVHlwZU5hbWUoZmlyc3RBcmct PmdldFR5cGUoKSwgbG8oKSkgKyAiKSBvdXQgb2YgbmFtZXNwYWNlICIgKyBxSGFzaE5TLT5nZXRR dWFsaWZpZWROYW1lQXNTdHJpbmcoKTsKKysgICAgICAgIG1zZyA9ICJNb3ZlIHFIYXNoKCIgKyBm dWxseVF1YWxpZmllZFBhcmFtTmFtZShmaXJzdEFyZykgKyAiKSBvdXQgb2YgbmFtZXNwYWNlICIg KyBxSGFzaE5TLT5nZXRRdWFsaWZpZWROYW1lQXNTdHJpbmcoKTsKKyAgICAgfSBlbHNlIGlmICgh cUhhc2hOUyAmJiBhcmd1bWVudE5TKSB7CistICAgICAgICBtc2cgPQorLSAgICAgICAgICAgICJN b3ZlIHFIYXNoKCIgKyBjbGF6eTo6c2ltcGxlVHlwZU5hbWUoZmlyc3RBcmctPmdldFR5cGUoKSwg bG8oKSkgKyAiKSBpbnRvICIgKyBhcmd1bWVudE5TLT5nZXRRdWFsaWZpZWROYW1lQXNTdHJpbmco KSArICIgbmFtZXNwYWNlIGZvciBBREwgbG9va3VwIjsKKysgICAgICAgIG1zZyA9ICJNb3ZlIHFI YXNoKCIgKyBmdWxseVF1YWxpZmllZFBhcmFtTmFtZShmaXJzdEFyZykgKyAiKSBpbnRvICIgKyBh cmd1bWVudE5TLT5nZXRRdWFsaWZpZWROYW1lQXNTdHJpbmcoKSArICIgbmFtZXNwYWNlIGZvciBB REwgbG9va3VwIjsKKyAgICAgfQorIAorICAgICBpZiAoIW1zZy5lbXB0eSgpKSB7CitkaWZmIC0t Z2l0IGEvc3JjL2NoZWNrcy9sZXZlbDEvcWhhc2gtbmFtZXNwYWNlLmggYi9zcmMvY2hlY2tzL2xl dmVsMS9xaGFzaC1uYW1lc3BhY2UuaAoraW5kZXggMGJlZGQ1MGMuLmMzMGFkYjI1IDEwMDY0NAor LS0tIGEvc3JjL2NoZWNrcy9sZXZlbDEvcWhhc2gtbmFtZXNwYWNlLmgKKysrKyBiL3NyYy9jaGVj a3MvbGV2ZWwxL3FoYXNoLW5hbWVzcGFjZS5oCitAQCAtMTcsNiArMTcsOSBAQCBjbGFzcyBRSGFz aE5hbWVzcGFjZSA6IHB1YmxpYyBDaGVja0Jhc2UKKyBwdWJsaWM6CisgICAgIHVzaW5nIENoZWNr QmFzZTo6Q2hlY2tCYXNlOworICAgICB2b2lkIFZpc2l0RGVjbChjbGFuZzo6RGVjbCAqZGVjbCkg b3ZlcnJpZGU7CisrCisrcHJpdmF0ZToKKysgICAgc3RkOjpzdHJpbmcgZnVsbHlRdWFsaWZpZWRQ YXJhbU5hbWUoY2xhbmc6OlBhcm1WYXJEZWNsICpmaXJzdEFyZyk7CisgfTsKKyAKKyAjZW5kaWYK Ky0tIAorR2l0TGFiCisKCmRpZmYgLS1naXQgYS84MWI3Y2YzOGE0NDRmNmNhN2E1MzljZWI1MWFk YTA1MDIxNGYzYjQ3LnBhdGNoIGIvODFiN2NmMzhhNDQ0ZjZjYTdhNTM5Y2ViNTFhZGEwNTAyMTRm M2I0Ny5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTI2NjU1Ci0t LSAvZGV2L251bGwKKysrIGIvODFiN2NmMzhhNDQ0ZjZjYTdhNTM5Y2ViNTFhZGEwNTAyMTRmM2I0 Ny5wYXRjaApAQCAtMCwwICsxLDgxIEBACitGcm9tIDgxYjdjZjM4YTQ0NGY2Y2E3YTUzOWNlYjUx YWRhMDUwMjE0ZjNiNDcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbGV4YW5kZXIg TG9obmF1IDxhbGV4YW5kZXIubG9obmF1QGdteC5kZT4KK0RhdGU6IEZyaSwgMzEgT2N0IDIwMjUg MDg6MDI6NTMgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gQWRkICNpZiBzdGF0ZW1lbnRzIHRvIGF2 b2lkIHVzaW5nIEVsYWJvcmF0ZWRUeXBlIHRoYXQgaXMKKyByZW1vdmVkIGluIExMVk0gMjIKKwor U3RhcnRpbmcgdG8gbWFrZSBpdCBjb21wYXRpYmxlIHdpdGggTExWTTIyOgoraHR0cHM6Ly9pbnZl bnQua2RlLm9yZy9zZGsvY2xhenkvLS9pc3N1ZXMvMzIKKy0tLQorIHNyYy9TdHJpbmdVdGlscy5o ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNCArKysrCisgc3JjL1R5cGVVdGlscy5o ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICsrCisgc3JjL2NoZWNrcy9sZXZl bDAvZnVsbHktcXVhbGlmaWVkLW1vYy10eXBlcy5jcHAgfCAyICsrCisgMyBmaWxlcyBjaGFuZ2Vk LCA4IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL3NyYy9TdHJpbmdVdGlscy5oIGIvc3Jj L1N0cmluZ1V0aWxzLmgKK2luZGV4IDFkMmYzMDFiLi4wM2M3OWE2MCAxMDA2NDQKKy0tLSBhL3Ny Yy9TdHJpbmdVdGlscy5oCisrKysgYi9zcmMvU3RyaW5nVXRpbHMuaAorQEAgLTkzLDkgKzkzLDEx IEBAIGlubGluZSBzdGQ6OnN0cmluZyBjbGFzc05hbWVGb3IoY2xhbmc6OlF1YWxUeXBlIHF0KQor ICAgICAgICAgcmV0dXJuIHt9OworICAgICB9CisgCisrI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA8 IDIyCisgICAgIGlmIChjbGFuZzo6RWxhYm9yYXRlZFR5cGU6OmNsYXNzb2YodCkpIHsKKyAgICAg ICAgIHJldHVybiBjbGFzc05hbWVGb3Ioc3RhdGljX2Nhc3Q8Y29uc3QgY2xhbmc6OkVsYWJvcmF0 ZWRUeXBlICo+KHQpLT5nZXROYW1lZFR5cGUoKSk7CisgICAgIH0KKysjZW5kaWYKKyAKKyAgICAg Y29uc3QgY2xhbmc6OkNYWFJlY29yZERlY2wgKnJlY29yZCA9IHQtPmlzUmVjb3JkVHlwZSgpID8g dC0+Z2V0QXNDWFhSZWNvcmREZWNsKCkgOiB0LT5nZXRQb2ludGVlQ1hYUmVjb3JkRGVjbCgpOwor ICAgICByZXR1cm4gY2xhc3NOYW1lRm9yKHJlY29yZCk7CitAQCAtMjU2LDkgKzI1OCwxMSBAQCBp bmxpbmUgc3RkOjpzdHJpbmcgc2ltcGxlVHlwZU5hbWUoY2xhbmc6OlF1YWxUeXBlIHF0LCBjb25z dCBjbGFuZzo6TGFuZ09wdGlvbnMgJgorICAgICAgICAgcmV0dXJuIHt9OworICAgICB9CisgCisr I2lmIExMVk1fVkVSU0lPTl9NQUpPUiA8IDIyCisgICAgIGlmIChjbGFuZzo6RWxhYm9yYXRlZFR5 cGU6OmNsYXNzb2YodCkpIHsKKyAgICAgICAgIHF0ID0gc3RhdGljX2Nhc3Q8Y29uc3QgY2xhbmc6 OkVsYWJvcmF0ZWRUeXBlICo+KHQpLT5nZXROYW1lZFR5cGUoKTsKKyAgICAgfQorKyNlbmRpZgor IAorICAgICByZXR1cm4gcXQuZ2V0Tm9uUmVmZXJlbmNlVHlwZSgpLmdldFVucXVhbGlmaWVkVHlw ZSgpLmdldEFzU3RyaW5nKGNsYW5nOjpQcmludGluZ1BvbGljeShsbykpOworIH0KK2RpZmYgLS1n aXQgYS9zcmMvVHlwZVV0aWxzLmggYi9zcmMvVHlwZVV0aWxzLmgKK2luZGV4IDQ5ZjM3M2QwLi5j OTNmNTQyZCAxMDA2NDQKKy0tLSBhL3NyYy9UeXBlVXRpbHMuaAorKysrIGIvc3JjL1R5cGVVdGls cy5oCitAQCAtMjExLDkgKzIxMSwxMSBAQCBpbmxpbmUgY2xhbmc6OkNYWFJlY29yZERlY2wgKnBh cmVudFJlY29yZEZvclR5cGVkZWYoY29uc3QgY2xhbmc6OlF1YWxUeXBlIHF0KQorIHsKKyAgICAg YXV0byAqdCA9IHF0LmdldFR5cGVQdHJPck51bGwoKTsKKyAKKysjaWYgTExWTV9WRVJTSU9OX01B Sk9SIDwgMjIKKyAgICAgaWYgKGNvbnN0IGF1dG8gKmVsYWIgPSBsbHZtOjpkeW5fY2FzdDxjbGFu Zzo6RWxhYm9yYXRlZFR5cGU+KHQpKSB7CisgICAgICAgICB0ID0gZWxhYi0+ZGVzdWdhcigpLmdl dFR5cGVQdHJPck51bGwoKTsKKyAgICAgfQorKyNlbmRpZgorIAorICAgICBpZiAoY29uc3QgYXV0 byAqdGR0ID0gbGx2bTo6ZHluX2Nhc3Q8Y2xhbmc6OlR5cGVkZWZUeXBlPih0KSkgeworICAgICAg ICAgY2xhbmc6OlR5cGVkZWZOYW1lRGVjbCAqdGRuZCA9IHRkdC0+Z2V0RGVjbCgpOworZGlmZiAt LWdpdCBhL3NyYy9jaGVja3MvbGV2ZWwwL2Z1bGx5LXF1YWxpZmllZC1tb2MtdHlwZXMuY3BwIGIv c3JjL2NoZWNrcy9sZXZlbDAvZnVsbHktcXVhbGlmaWVkLW1vYy10eXBlcy5jcHAKK2luZGV4IDdm OWQ2YWI1Li40MGQ3ZjZjYiAxMDA2NDQKKy0tLSBhL3NyYy9jaGVja3MvbGV2ZWwwL2Z1bGx5LXF1 YWxpZmllZC1tb2MtdHlwZXMuY3BwCisrKysgYi9zcmMvY2hlY2tzL2xldmVsMC9mdWxseS1xdWFs aWZpZWQtbW9jLXR5cGVzLmNwcAorQEAgLTg2LDYgKzg2LDcgQEAgdm9pZCBGdWxseVF1YWxpZmll ZE1vY1R5cGVzOjpWaXNpdERlY2woY2xhbmc6OkRlY2wgKmRlY2wpCisgCisgc3RkOjpzdHJpbmcg RnVsbHlRdWFsaWZpZWRNb2NUeXBlczo6Z2V0UXVhbGlmaWVkTmFtZU9mVHlwZShjb25zdCBUeXBl ICpwdHIsIGJvb2wgY2hlY2tFbGFiVHlwZSkgY29uc3QKKyB7CisrI2lmIExMVk1fVkVSU0lPTl9N QUpPUiA8IDIyCisgICAgIGlmIChhdXRvICplbGFiVHlwZSA9IGR5bl9jYXN0PEVsYWJvcmF0ZWRU eXBlPihwdHIpOyBlbGFiVHlwZSAmJiBjaGVja0VsYWJUeXBlKSB7CisgICAgICAgICBpZiAoYXV0 byAqc3BlY1R5cGUgPSBkeW5fY2FzdDxUZW1wbGF0ZVNwZWNpYWxpemF0aW9uVHlwZT4oZWxhYlR5 cGUtPmdldE5hbWVkVHlwZSgpLmdldFR5cGVQdHJPck51bGwoKSk7IHNwZWNUeXBlICYmICFwdHIt PmdldEFzPFR5cGVkZWZUeXBlPigpKSB7CisgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVUZW1w bGF0ZVR5cGUoc3BlY1R5cGUsIGZhbHNlKTsKK0BAIC05NCw2ICs5NSw3IEBAIHN0ZDo6c3RyaW5n IEZ1bGx5UXVhbGlmaWVkTW9jVHlwZXM6OmdldFF1YWxpZmllZE5hbWVPZlR5cGUoY29uc3QgVHlw ZSAqcHRyLCBib29sCisgICAgICAgICAgICAgcmV0dXJuIGVsYWJUeXBlLT5nZXRBczxFbnVtVHlw ZT4oKS0+Z2V0RGVjbCgpLT5nZXRRdWFsaWZpZWROYW1lQXNTdHJpbmcoKTsKKyAgICAgICAgIH0K KyAgICAgfQorKyNlbmRpZgorICAgICBpZiAoYXV0byAqdHlwZWRlZkRlY2wgPSBwdHItPmdldEFz PFR5cGVkZWZUeXBlPigpOyB0eXBlZGVmRGVjbCAmJiB0eXBlZGVmRGVjbC0+Z2V0RGVjbCgpKSB7 CisgICAgICAgICByZXR1cm4gdHlwZWRlZkRlY2wtPmdldERlY2woKS0+Z2V0UXVhbGlmaWVkTmFt ZUFzU3RyaW5nKCk7CisgICAgIH0gZWxzZSBpZiAoYXV0byB0ZW1wbGF0ZVNwZWMgPSBwdHItPmdl dEFzPFRlbXBsYXRlU3BlY2lhbGl6YXRpb25UeXBlPigpKSB7CistLSAKK0dpdExhYgorCgpkaWZm IC0tZ2l0IGEvOWNmNjhkYmU4NmMwMmQ3YjRlNTkxM2JlMWY2MzdiYTEyMDAwYWM4ZC5wYXRjaCBi LzljZjY4ZGJlODZjMDJkN2I0ZTU5MTNiZTFmNjM3YmExMjAwMGFjOGQucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTkxNjA4MQotLS0gL2Rldi9udWxsCisrKyBiLzlj ZjY4ZGJlODZjMDJkN2I0ZTU5MTNiZTFmNjM3YmExMjAwMGFjOGQucGF0Y2gKQEAgLTAsMCArMSw0 MiBAQAorRnJvbSA5Y2Y2OGRiZTg2YzAyZDdiNGU1OTEzYmUxZjYzN2JhMTIwMDBhYzhkIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQWxleGFuZGVyIExvaG5hdSA8YWxleGFuZGVyLmxv aG5hdUBnbXguZGU+CitEYXRlOiBNb24sIDE3IE5vdiAyMDI1IDIwOjQ3OjMyICswMTAwCitTdWJq ZWN0OiBbUEFUQ0hdIEZpeCBvbGQtc3R5bGUtY29ubmVjdCBjaGVjayBub3Qgd29ya2luZyB3aXRo IExMVk0yMgorCitUaGUgZGVjbGVyYXRpb24gZGlkIG5vdCBjb250YWluIHRoZSBpbmZvIHdlIG5l ZWRlZC4KKworQ1hYUmVjb3JkRGVjbCAweDdmMGY3YzRmMjkzMCBwcmV2IDB4MzhmMzVkMTggPC91 c3IvaW5jbHVkZS9xdDUvUXREQnVzL3FkYnVzY29ubmVjdGlvbi5oOjc0OjEsIGNvbDo3PiBjb2w6 NyByZWZlcmVuY2VkIGNsYXNzIFFPYmplY3QKK2AtVmlzaWJpbGl0eUF0dHIgMHg3ZjBmN2M0ZjI5 ZjAgPC91c3IvaW5jbHVkZS9xdDUvUXRDb3JlL3Fjb21waWxlcmRldGVjdGlvbi5oOjIzNjo0Niwg Y29sOjY2PiBJbmhlcml0ZWQgRGVmYXVsdAorCitDb21wYXJlZCB0byBiZWZvcmUsIHdoZXJlIHdl IGhhZCBhbGwgdGhlIG1ldGhvZHMgYW5kIHNvIG9uLgorVG8gZml4IHRoaXMsIGdldCB0aGUgZGVj bGVyYXRpb24gb2YgdGhlIGNsYXNzCistLS0KKyBzcmMvY2hlY2tzL2xldmVsMi9vbGQtc3R5bGUt Y29ubmVjdC5jcHAgfCA1ICsrKy0tCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9jaGVja3MvbGV2ZWwyL29sZC1zdHls ZS1jb25uZWN0LmNwcCBiL3NyYy9jaGVja3MvbGV2ZWwyL29sZC1zdHlsZS1jb25uZWN0LmNwcAor aW5kZXggZDViODJmZDQuLjc0NjFhMjdmIDEwMDY0NAorLS0tIGEvc3JjL2NoZWNrcy9sZXZlbDIv b2xkLXN0eWxlLWNvbm5lY3QuY3BwCisrKysgYi9zcmMvY2hlY2tzL2xldmVsMi9vbGQtc3R5bGUt Y29ubmVjdC5jcHAKK0BAIC0zNTAsNyArMzUwLDcgQEAgc3RkOjp2ZWN0b3I8Rml4SXRIaW50PiBP bGRTdHlsZUNvbm5lY3Q6OmZpeGl0cyhpbnQgY2xhc3NpZmljYXRpb24sIFQgKmNhbGxPckN0b3IK KyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKyAKKy0gICAgICAgICAgICBpZiAo IWxhc3RSZWNvcmREZWNsKSB7CisrICAgICAgICAgICAgaWYgKCFsYXN0UmVjb3JkRGVjbCB8fCAh bGFzdFJlY29yZERlY2wtPmhhc0RlZmluaXRpb24oKSkgeworICAgICAgICAgICAgICAgICBzdGQ6 OnN0cmluZyBtc2cgPSAiRmFpbGVkIHRvIGdldCBjbGFzcyBuYW1lIGZvciBleHBsaWNpdCByZWNl aXZlciI7CisgICAgICAgICAgICAgICAgIHF1ZXVlTWFudWFsRml4aXRXYXJuaW5nKHMsIG1zZyk7 CisgICAgICAgICAgICAgICAgIHJldHVybiB7fTsKK0BAIC0zNTgsNyArMzU4LDggQEAgc3RkOjp2 ZWN0b3I8Rml4SXRIaW50PiBPbGRTdHlsZUNvbm5lY3Q6OmZpeGl0cyhpbnQgY2xhc3NpZmljYXRp b24sIFQgKmNhbGxPckN0b3IKKyAKKyAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyBtZXRo b2ROYW1lID0gc2lnbmFsT3JTbG90TmFtZUZyb21NYWNybyhzKTsKKyAKKy0gICAgICAgICAgICBh dXRvIG1ldGhvZHMgPSBVdGlsczo6bWV0aG9kc0Zyb21TdHJpbmcobGFzdFJlY29yZERlY2wsIG1l dGhvZE5hbWUpOworKyAgICAgICAgICAgIC8vIFdpdGggTExWTTIyLCB3ZSBuZWVkIHRvIGV4cGxp Y2l0bHkgYXNrIGZvciB0aGUgZGVmaW5pdGlvbgorKyAgICAgICAgICAgIGF1dG8gbWV0aG9kcyA9 IFV0aWxzOjptZXRob2RzRnJvbVN0cmluZyhsYXN0UmVjb3JkRGVjbC0+Z2V0RGVmaW5pdGlvbigp LCBtZXRob2ROYW1lKTsKKyAgICAgICAgICAgICBpZiAobWV0aG9kcy5lbXB0eSgpKSB7CisgICAg ICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIG1zZzsKKyAgICAgICAgICAgICAgICAgaWYgKGlzUHJp dmF0ZVNsb3QobWV0aG9kTmFtZSkpIHsKKy0tIAorR2l0TGFiCisKCmRpZmYgLS1naXQgYS9jY2Zm Yzg2OTU0NzdkOWY0ODZlNTA5ODc0NDQwYzdjNjNlMmVjNTk5LnBhdGNoIGIvY2NmZmM4Njk1NDc3 ZDlmNDg2ZTUwOTg3NDQ0MGM3YzYzZTJlYzU5OS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi4yZWMyYWZjCi0tLSAvZGV2L251bGwKKysrIGIvY2NmZmM4Njk1NDc3ZDlm NDg2ZTUwOTg3NDQ0MGM3YzYzZTJlYzU5OS5wYXRjaApAQCAtMCwwICsxLDIyNiBAQAorRnJvbSBj Y2ZmYzg2OTU0NzdkOWY0ODZlNTA5ODc0NDQwYzdjNjNlMmVjNTk5IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogQWxleGFuZGVyIExvaG5hdSA8YWxleGFuZGVyLmxvaG5hdUBnbXguZGU+ CitEYXRlOiBTdW4sIDE2IE5vdiAyMDI1IDE5OjQzOjUxICswMTAwCitTdWJqZWN0OiBbUEFUQ0hd IEZpeCBmdWxseS1mdWFsaWZpZWQtbW9jLXR5cGVzIG5vdCB3b3JraW5nIHdpdGggbGx2bTIyCisK K1RoZSBjb3JlIGNoYW5nZSBpczogVXNlIHRoZSBsZXhlciB0byBnZXQgdGhlIHNvdXJjZSB0ZXh0 IGRpcmVjdGx5LCBub3JtYWxpemUgaXQgYW5kIGF2b2lkIHNoZW5hbmlnYW5zIHRoYXQgYXJlIHRv byBmcmFnaWxlCistLS0KKyBDaGFuZ2Vsb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDEgKworIC4uLi9sZXZlbDAvZnVsbHktcXVhbGlmaWVkLW1vYy10eXBlcy5jcHAg ICAgICB8IDExNiArKysrKysrKysrKysrKy0tLS0KKyBzcmMvY2hlY2tzL2xldmVsMC9mdWxseS1x dWFsaWZpZWQtbW9jLXR5cGVzLmggfCAgIDggKy0KKyAzIGZpbGVzIGNoYW5nZWQsIDEwMSBpbnNl cnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9jaGVja3MvbGV2 ZWwwL2Z1bGx5LXF1YWxpZmllZC1tb2MtdHlwZXMuY3BwIGIvc3JjL2NoZWNrcy9sZXZlbDAvZnVs bHktcXVhbGlmaWVkLW1vYy10eXBlcy5jcHAKK2luZGV4IDQwZDdmNmNiLi41NzZjOTk2OCAxMDA2 NDQKKy0tLSBhL3NyYy9jaGVja3MvbGV2ZWwwL2Z1bGx5LXF1YWxpZmllZC1tb2MtdHlwZXMuY3Bw CisrKysgYi9zcmMvY2hlY2tzL2xldmVsMC9mdWxseS1xdWFsaWZpZWQtbW9jLXR5cGVzLmNwcAor QEAgLTI4LDYgKzI4LDczIEBACisgCisgdXNpbmcgbmFtZXNwYWNlIGNsYW5nOworIAorKy8qCisr ICogV2hlbiB3ZSBnZXQgdGhlIHJhdyBzdHJpbmcgZnJvbSB0aGUgbGV4ZXIsIGVuc3VyZSB3ZSBy ZW1vdmUgdW5uZWVkZWQgd2hpdGVzcGFjZXMgdG8gZ2V0IGEgcHJvcGVyIHJlcHJlc2VudGF0aW9u IG9mIHRoZSBleHByZXNzaW9uCisrICovCisrc3RhdGljIHN0ZDo6c3RyaW5nIG5vcm1hbGl6ZVR5 cGUoY29uc3Qgc3RkOjpzdHJpbmcgJnR5cGUpCisreworKyAgICBzdGQ6OnN0cmluZyBvdXQ7Cisr ICAgIGJvb2wgbGFzdFdhc1NwYWNlID0gZmFsc2U7CisrCisrICAgIGZvciAoc2l6ZV90IGkgPSAw OyBpIDwgdHlwZS5zaXplKCk7ICsraSkgeworKyAgICAgICAgY29uc3QgY2hhciBjID0gdHlwZVtp XTsKKysKKysgICAgICAgIGlmIChpc3NwYWNlKHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGMp KSkgeworKyAgICAgICAgICAgIGxhc3RXYXNTcGFjZSA9IHRydWU7CisrICAgICAgICAgICAgY29u dGludWU7IC8vIHNraXAgbm93LCBkZWNpZGUgbGF0ZXIKKysgICAgICAgIH0KKysKKysgICAgICAg IC8vIFJlbW92ZSBzcGFjZSBiZWZvcmUgY2VydGFpbiBwdW5jdHVhdGlvbiB0aGF0IGlzIHJlbGV2 YW50IGhlcmUKKysgICAgICAgIGlmICgoYyA9PSAnPCcgfHwgYyA9PSAnPicgfHwgYyA9PSAnLCcp ICYmICFvdXQuZW1wdHkoKSAmJiBvdXQuYmFjaygpID09ICcgJykgeworKyAgICAgICAgICAgIG91 dC5wb3BfYmFjaygpOworKyAgICAgICAgfQorKworKyAgICAgICAgLy8gQWRkIGEgc3BhY2UgaWYg bmVlZGVkIChtYW5kYXRvcnkgc3BhY2UgYmV0d2VlbiBrZXl3b3Jkcy9pZGVudGlmaWVycykKKysg ICAgICAgIGlmIChsYXN0V2FzU3BhY2UpIHsKKysgICAgICAgICAgICBpZiAoIW91dC5lbXB0eSgp KSB7CisrICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgcHJldiA9IG91dC5iYWNrKCk7CisrICAg ICAgICAgICAgICAgIC8vIGluc2VydCBhIHNwYWNlIGlmIHByZXZpb3VzIGFuZCBjdXJyZW50IGNo YXJzIGFyZSBhbHBoYW51bWVyaWMgb3IgdW5kZXJzY29yZXMKKysgICAgICAgICAgICAgICAgaWYg KChpc2FsbnVtKHByZXYpIHx8IHByZXYgPT0gJ18nKSAmJiAoaXNhbG51bShjKSB8fCBjID09ICdf JykpIHsKKysgICAgICAgICAgICAgICAgICAgIG91dCArPSAnICc7CisrICAgICAgICAgICAgICAg IH0KKysgICAgICAgICAgICB9CisrICAgICAgICB9CisrCisrICAgICAgICBvdXQgKz0gYzsKKysK KysgICAgICAgIC8vIEFkZCBleGFjdGx5IG9uZSBzcGFjZSBhZnRlciBjb21tYQorKyAgICAgICAg aWYgKGMgPT0gJywnKSB7CisrICAgICAgICAgICAgb3V0ICs9ICcgJzsKKysgICAgICAgIH0KKysK KysgICAgICAgIGxhc3RXYXNTcGFjZSA9IGZhbHNlOworKyAgICB9CisrCisrICAgIHJldHVybiBv dXQ7CisrfQorKworK3N0ZDo6c3RyaW5nIEZ1bGx5UXVhbGlmaWVkTW9jVHlwZXM6OndyaXR0ZW5U eXBlKGNvbnN0IFBhcm1WYXJEZWNsICpwYXJhbSkgY29uc3QKKyt7CisrICAgIFR5cGVTb3VyY2VJ bmZvICpUU0kgPSBwYXJhbS0+Z2V0VHlwZVNvdXJjZUluZm8oKTsKKysgICAgaWYgKCFUU0kpCisr ICAgICAgICByZXR1cm4ge307CisrCisrICAgIFR5cGVMb2MgVEwgPSBUU0ktPmdldFR5cGVMb2Mo KTsKKysgICAgd2hpbGUgKHRydWUpIHsKKysgICAgICAgIGlmIChhdXRvIFB0ckxvYyA9IFRMLmdl dEFzPFBvaW50ZXJUeXBlTG9jPigpKSB7CisrICAgICAgICAgICAgVEwgPSBQdHJMb2MuZ2V0UG9p bnRlZUxvYygpOworKyAgICAgICAgfSBlbHNlIGlmIChhdXRvIFJlZkxvYyA9IFRMLmdldEFzPFJl ZmVyZW5jZVR5cGVMb2M+KCkpIHsKKysgICAgICAgICAgICBUTCA9IFJlZkxvYy5nZXRQb2ludGVl TG9jKCk7CisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAgIGJyZWFrOyAvLyByZWFjaGVk IHVuZGVybHlpbmcgdHlwZQorKyAgICAgICAgfQorKyAgICB9CisrCisrICAgIENoYXJTb3VyY2VS YW5nZSBDU1IgPSBDaGFyU291cmNlUmFuZ2U6OmdldFRva2VuUmFuZ2UoVEwuZ2V0U291cmNlUmFu Z2UoKSk7CisrICAgIFN0cmluZ1JlZiB0ZXh0ID0gTGV4ZXI6OmdldFNvdXJjZVRleHQoQ1NSLCBz bSgpLCBsbygpKTsKKysgICAgcmV0dXJuIG5vcm1hbGl6ZVR5cGUodGV4dC5zdHIoKSk7CisrfQor KworIHZvaWQgRnVsbHlRdWFsaWZpZWRNb2NUeXBlczo6VmlzaXREZWNsKGNsYW5nOjpEZWNsICpk ZWNsKQorIHsKKyAgICAgYXV0byAqbWV0aG9kID0gZHluX2Nhc3Q8Q1hYTWV0aG9kRGVjbD4oZGVj bCk7CitAQCAtNTQsMTAgKzEyMSwxMCBAQCB2b2lkIEZ1bGx5UXVhbGlmaWVkTW9jVHlwZXM6OlZp c2l0RGVjbChjbGFuZzo6RGVjbCAqZGVjbCkKKyAgICAgfQorIAorICAgICBzdGQ6OnN0cmluZyBx dWFsaWZpZWRUeXBlTmFtZTsKKy0gICAgc3RkOjpzdHJpbmcgdHlwZU5hbWU7CisgICAgIGZvciAo YXV0byAqcGFyYW0gOiBtZXRob2QtPnBhcmFtZXRlcnMoKSkgeworICAgICAgICAgUXVhbFR5cGUg dCA9IGNsYXp5Ojpwb2ludGVlUXVhbFR5cGUocGFyYW0tPmdldFR5cGUoKSk7CistICAgICAgICBp ZiAoIXR5cGVJc0Z1bGx5UXVhbGlmaWVkKHQsIC8qYnktcmVmKi8gcXVhbGlmaWVkVHlwZU5hbWUs IC8qYnktcmVmKi8gdHlwZU5hbWUpKSB7CisrICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyB0eXBl TmFtZSA9IHdyaXR0ZW5UeXBlKHBhcmFtKTsKKysgICAgICAgIGlmICghdHlwZUlzRnVsbHlRdWFs aWZpZWQodCwgLypieS1yZWYqLyBxdWFsaWZpZWRUeXBlTmFtZSwgdHlwZU5hbWUpKSB7CisgICAg ICAgICAgICAgU291cmNlUmFuZ2UgZml4aXRSYW5nZSA9IHBhcmFtLT5nZXRUeXBlU291cmNlSW5m bygpLT5nZXRUeXBlTG9jKCkuZ2V0U291cmNlUmFuZ2UoKTsKKyAgICAgICAgICAgICAvLyBXZSBk b24ndCB3YW50IHRvIGluY2x1ZGUgdGhlICYgb3IgKiBjaGFyYWN0ZXJzIGZvciB0aGUgZml4aXQg cmFuZ2UKKyAgICAgICAgICAgICBpZiAocGFyYW0tPmdldFR5cGUoKS0+aXNSZWZlcmVuY2VUeXBl KCkgfHwgcGFyYW0tPmdldFR5cGUoKS0+aXNQb2ludGVyVHlwZSgpKSB7CitAQCAtNzAsOCArMTM3 LDE4IEBAIHZvaWQgRnVsbHlRdWFsaWZpZWRNb2NUeXBlczo6VmlzaXREZWNsKGNsYW5nOjpEZWNs ICpkZWNsKQorICAgICB9CisgCisgICAgIGlmIChxc3QgPT0gUXRBY2Nlc3NTcGVjaWZpZXJfU2xv dCB8fCBxc3QgPT0gUXRBY2Nlc3NTcGVjaWZpZXJfSW52b2thYmxlKSB7CisrICAgICAgICBzdGQ6 OnN0cmluZyB0eXBlTmFtZTsKKyAgICAgICAgIFF1YWxUeXBlIHJldHVyblQgPSBjbGF6eTo6cG9p bnRlZVF1YWxUeXBlKG1ldGhvZC0+Z2V0UmV0dXJuVHlwZSgpKTsKKy0gICAgICAgIGlmICghdHlw ZUlzRnVsbHlRdWFsaWZpZWQocmV0dXJuVCwgLypieS1yZWYqLyBxdWFsaWZpZWRUeXBlTmFtZSwg LypieS1yZWYqLyB0eXBlTmFtZSkpIHsKKysgICAgICAgIGlmIChhdXRvICpUU0kgPSBtZXRob2Qt PmdldFR5cGVTb3VyY2VJbmZvKCkpIHsKKysgICAgICAgICAgICBGdW5jdGlvblR5cGVMb2MgRlRM ID0gVFNJLT5nZXRUeXBlTG9jKCkuY2FzdEFzPEZ1bmN0aW9uVHlwZUxvYz4oKTsKKysgICAgICAg ICAgICBTb3VyY2VSYW5nZSBTUiA9IEZUTC5nZXRSZXR1cm5Mb2MoKS5nZXRTb3VyY2VSYW5nZSgp OworKyAgICAgICAgICAgIGlmIChTUi5pc1ZhbGlkKCkpIHsKKysgICAgICAgICAgICAgICAgU3Ry aW5nUmVmIHJldHVyblRleHQgPSBMZXhlcjo6Z2V0U291cmNlVGV4dChDaGFyU291cmNlUmFuZ2U6 OmdldFRva2VuUmFuZ2UoU1IpLCBzbSgpLCBsbygpKTsKKysgICAgICAgICAgICAgICAgdHlwZU5h bWUgPSBub3JtYWxpemVUeXBlKHJldHVyblRleHQuc3RyKCkpOworKyAgICAgICAgICAgIH0KKysg ICAgICAgIH0KKysKKysgICAgICAgIGlmICghdHlwZU5hbWUuZW1wdHkoKSAmJiAhdHlwZUlzRnVs bHlRdWFsaWZpZWQocmV0dXJuVCwgLypieS1yZWYqLyBxdWFsaWZpZWRUeXBlTmFtZSwgdHlwZU5h bWUpKSB7CisgICAgICAgICAgICAgU291cmNlUmFuZ2UgcmV0dXJuVHlwZVNvdXJjZVJhbmdlID0g bWV0aG9kLT5nZXRSZXR1cm5UeXBlU291cmNlUmFuZ2UoKTsKKyAgICAgICAgICAgICAvLyBXZSBk b24ndCB3YW50IHRvIGluY2x1ZGUgdGhlICYgb3IgKiBjaGFyYWN0ZXJzIGZvciB0aGUgZml4aXQg cmFuZ2UKKyAgICAgICAgICAgICBpZiAobWV0aG9kLT5nZXRSZXR1cm5UeXBlKCktPmlzUmVmZXJl bmNlVHlwZSgpIHx8IG1ldGhvZC0+Z2V0UmV0dXJuVHlwZSgpLT5pc1BvaW50ZXJUeXBlKCkpIHsK K0BAIC04NCwyNSArMTYxLDIzIEBAIHZvaWQgRnVsbHlRdWFsaWZpZWRNb2NUeXBlczo6VmlzaXRE ZWNsKGNsYW5nOjpEZWNsICpkZWNsKQorICAgICB9CisgfQorIAorLXN0ZDo6c3RyaW5nIEZ1bGx5 UXVhbGlmaWVkTW9jVHlwZXM6OmdldFF1YWxpZmllZE5hbWVPZlR5cGUoY29uc3QgVHlwZSAqcHRy LCBib29sIGNoZWNrRWxhYlR5cGUpIGNvbnN0Cisrc3RkOjpzdHJpbmcgRnVsbHlRdWFsaWZpZWRN b2NUeXBlczo6Z2V0UXVhbGlmaWVkTmFtZU9mVHlwZShjb25zdCBUeXBlICpwdHIsIGJvb2wgcmVz b2x2ZVRlbXBsYXRlQXJncykgY29uc3QKKyB7CistI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA8IDIy CistICAgIGlmIChhdXRvICplbGFiVHlwZSA9IGR5bl9jYXN0PEVsYWJvcmF0ZWRUeXBlPihwdHIp OyBlbGFiVHlwZSAmJiBjaGVja0VsYWJUeXBlKSB7CistICAgICAgICBpZiAoYXV0byAqc3BlY1R5 cGUgPSBkeW5fY2FzdDxUZW1wbGF0ZVNwZWNpYWxpemF0aW9uVHlwZT4oZWxhYlR5cGUtPmdldE5h bWVkVHlwZSgpLmdldFR5cGVQdHJPck51bGwoKSk7IHNwZWNUeXBlICYmICFwdHItPmdldEFzPFR5 cGVkZWZUeXBlPigpKSB7CistICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVUZW1wbGF0ZVR5cGUo c3BlY1R5cGUsIGZhbHNlKTsKKy0gICAgICAgIH0KKy0gICAgICAgIGlmIChlbGFiVHlwZS0+aXNF bnVtZXJhbFR5cGUoKSAmJiBlbGFiVHlwZS0+Z2V0QXM8RW51bVR5cGU+KCkpIHsKKy0gICAgICAg ICAgICByZXR1cm4gZWxhYlR5cGUtPmdldEFzPEVudW1UeXBlPigpLT5nZXREZWNsKCktPmdldFF1 YWxpZmllZE5hbWVBc1N0cmluZygpOworLSAgICAgICAgfQorKyAgICBpZiAocHRyLT5pc0VudW1l cmFsVHlwZSgpICYmIHB0ci0+Z2V0QXM8RW51bVR5cGU+KCkpIHsKKysgICAgICAgIHJldHVybiBw dHItPmdldEFzPEVudW1UeXBlPigpLT5nZXREZWNsKCktPmdldFF1YWxpZmllZE5hbWVBc1N0cmlu ZygpOworICAgICB9CistI2VuZGlmCisgICAgIGlmIChhdXRvICp0eXBlZGVmRGVjbCA9IHB0ci0+ Z2V0QXM8VHlwZWRlZlR5cGU+KCk7IHR5cGVkZWZEZWNsICYmIHR5cGVkZWZEZWNsLT5nZXREZWNs KCkpIHsKKyAgICAgICAgIHJldHVybiB0eXBlZGVmRGVjbC0+Z2V0RGVjbCgpLT5nZXRRdWFsaWZp ZWROYW1lQXNTdHJpbmcoKTsKKysgICAgfQorKworKyAgICBlbHNlIGlmIChhdXRvIHRlbXBsYXRl U3BlYyA9IHB0ci0+Z2V0QXM8VGVtcGxhdGVTcGVjaWFsaXphdGlvblR5cGU+KCk7IHRlbXBsYXRl U3BlYyAmJiByZXNvbHZlVGVtcGxhdGVBcmdzKSB7CisrICAgICAgICByZXR1cm4gcmVzb2x2ZVRl bXBsYXRlVHlwZSh0ZW1wbGF0ZVNwZWMsIGZhbHNlKTsKKyAgICAgfSBlbHNlIGlmIChhdXRvIHRl bXBsYXRlU3BlYyA9IHB0ci0+Z2V0QXM8VGVtcGxhdGVTcGVjaWFsaXphdGlvblR5cGU+KCkpIHsK KyAgICAgICAgIC8vIEluIGNhc2Ugb25lIHVzZXMgYSB0eXBlZGVmIHdpdGggZ2VuZXJpY3MsIGxp a2UgUVZlY3RvcjxRU3RyaW5nPiBpbiBRdDYKKyAgICAgICAgIC8vIFRoZSBkb2NzIGluZGljYXRl IGdldEFzVGVtcGxhdGVEZWNsIG1pZ2h0IGJlIG51bGwgLSBzbyBiZSBwcmVwYXJlZCBmb3IgdGhh dAorICAgICAgICAgaWYgKGF1dG8gKmRlY2wgPSB0ZW1wbGF0ZVNwZWMtPmdldFRlbXBsYXRlTmFt ZSgpLmdldEFzVGVtcGxhdGVEZWNsKCkpIHsKKyAgICAgICAgICAgICByZXR1cm4gZGVjbC0+Z2V0 UXVhbGlmaWVkTmFtZUFzU3RyaW5nKCk7CisrICAgICAgICB9IGVsc2UgeworICAgICAgICAgfQor ICAgICB9IGVsc2UgaWYgKGF1dG8gcmVjb3JkRGVjbCA9IHB0ci0+Z2V0QXNSZWNvcmREZWNsKCkp IHsKKyAgICAgICAgIHJldHVybiByZWNvcmREZWNsLT5nZXRRdWFsaWZpZWROYW1lQXNTdHJpbmco KTsKK0BAIC0xMzIsMzAgKzIwNywyNyBAQCBzdGQ6OnN0cmluZyBGdWxseVF1YWxpZmllZE1vY1R5 cGVzOjpyZXNvbHZlVGVtcGxhdGVUeXBlKGNvbnN0IGNsYW5nOjpUZW1wbGF0ZVNwZQorICAgICAg ICAgICAgIGlmIChhcmdUeXBlLmlzQ29uc3RRdWFsaWZpZWQoKSkgeworICAgICAgICAgICAgICAg ICBzdHIgKz0gImNvbnN0ICI7CisgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIHN0ciArPSBn ZXRRdWFsaWZpZWROYW1lT2ZUeXBlKGFyZ1R5cGUuZ2V0VHlwZVB0cigpKTsKKysgICAgICAgICAg ICBzdHIgKz0gZ2V0UXVhbGlmaWVkTmFtZU9mVHlwZShhcmdUeXBlLmdldFR5cGVQdHIoKSwgdHJ1 ZSk7CisgICAgICAgICB9CisgICAgIH0KKyAgICAgc3RyICs9ICI+IjsKKyAgICAgcmV0dXJuIHN0 cjsKKyB9CisgCistYm9vbCBGdWxseVF1YWxpZmllZE1vY1R5cGVzOjp0eXBlSXNGdWxseVF1YWxp ZmllZChRdWFsVHlwZSB0LCBzdGQ6OnN0cmluZyAmcXVhbGlmaWVkVHlwZU5hbWUsIHN0ZDo6c3Ry aW5nICZ0eXBlTmFtZSkgY29uc3QKKytib29sIEZ1bGx5UXVhbGlmaWVkTW9jVHlwZXM6OnR5cGVJ c0Z1bGx5UXVhbGlmaWVkKFF1YWxUeXBlIHQsIHN0ZDo6c3RyaW5nICZxdWFsaWZpZWRUeXBlTmFt ZSwgY29uc3Qgc3RkOjpzdHJpbmcgJnR5cGVOYW1lKSBjb25zdAorIHsKKyAgICAgcXVhbGlmaWVk VHlwZU5hbWUuY2xlYXIoKTsKKy0gICAgdHlwZU5hbWUuY2xlYXIoKTsKKy0KKyAgICAgaWYgKGF1 dG8gKnB0ciA9IHQuZ2V0VHlwZVB0ck9yTnVsbCgpOyBwdHIgJiYgKHB0ci0+aXNSZWNvcmRUeXBl KCkgfHwgcHRyLT5pc0VudW1lcmFsVHlwZSgpKSkgeworLSAgICAgICAgdHlwZU5hbWUgPSBjbGF6 eTo6bmFtZSh0LmdldFVucXVhbGlmaWVkVHlwZSgpLCBsbygpLCAvKmFzV3JpdHRlbj0qL3RydWUp OyAvLyBJZ25vcmUgcXVhbGlmaWVycyBsaWtlIGNvbnN0IGhlcmUKKyAgICAgICAgIGlmICh0eXBl TmFtZSA9PSAiUVByaXZhdGVTaWduYWwiKSB7CisgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg ICAgICAgICB9CisgCisgICAgICAgICBpZiAoYXV0byBzcGVjVHlwZSA9IHB0ci0+Z2V0QXM8VGVt cGxhdGVTcGVjaWFsaXphdGlvblR5cGU+KCk7IHNwZWNUeXBlICYmICFwdHItPmdldEFzPFR5cGVk ZWZUeXBlPigpKSB7CistICAgICAgICAgICAgcXVhbGlmaWVkVHlwZU5hbWUgPSByZXNvbHZlVGVt cGxhdGVUeXBlKHNwZWNUeXBlKTsKKysgICAgICAgICAgICBxdWFsaWZpZWRUeXBlTmFtZSA9IHJl c29sdmVUZW1wbGF0ZVR5cGUoc3BlY1R5cGUsIGZhbHNlKTsKKyAgICAgICAgIH0gZWxzZSBpZiAo YXV0byByZWNvcmREZWNsID0gcHRyLT5nZXRBc1JlY29yZERlY2woKTsgcmVjb3JkRGVjbCAmJiBy ZWNvcmREZWNsLT5pc0luQW5vbnltb3VzTmFtZXNwYWNlKCkpIHsKKyAgICAgICAgICAgICByZXR1 cm4gdHJ1ZTsKKyAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgcXVhbGlmaWVkVHlwZU5h bWUgPSBnZXRRdWFsaWZpZWROYW1lT2ZUeXBlKHB0cik7CisrICAgICAgICAgICAgcXVhbGlmaWVk VHlwZU5hbWUgPSBnZXRRdWFsaWZpZWROYW1lT2ZUeXBlKHB0ciwgdHJ1ZSk7CisgICAgICAgICB9 CisgICAgICAgICByZXR1cm4gcXVhbGlmaWVkVHlwZU5hbWUuZW1wdHkoKSB8fCB0eXBlTmFtZSA9 PSBxdWFsaWZpZWRUeXBlTmFtZTsKKyAgICAgfQorQEAgLTIxMiw4ICsyODQsMTAgQEAgYm9vbCBG dWxseVF1YWxpZmllZE1vY1R5cGVzOjpoYW5kbGVRX1BST1BFUlRZKENYWE1ldGhvZERlY2wgKm1l dGhvZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg ICAgICAgICAgICAgICAgfQorIAorLSAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5n IG5hbWVBc1dyaXR0ZW47CisrICAgICAgICAgICAgICAgICAgICAgICAgUXVhbFR5cGUgY2FzdFR5 cGUgPSBjbGF6eTo6cG9pbnRlZVF1YWxUeXBlKHJlaW50ZXJwcmV0LT5nZXRUeXBlQXNXcml0dGVu KCkpLmdldFVucXVhbGlmaWVkVHlwZSgpOworKyAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6 c3RyaW5nIG5hbWVBc1dyaXR0ZW4gPSBjYXN0VHlwZS5nZXRVbnF1YWxpZmllZFR5cGUoKS5nZXRB c1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIHF1YWxpZmll ZE5hbWU7CisrCisgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0eXBlSXNGdWxseVF1YWxp ZmllZChxdCwgcXVhbGlmaWVkTmFtZSwgbmFtZUFzV3JpdHRlbikpIHsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gd2FybiBpbiB0aGUgY3h4cmVjb3JkZGVjbCwgc2luY2Ugd2UgZG9u J3Qgd2FudCB0byB3YXJuIGluIHRoZSAubW9jIGZpbGVzLgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBJZGVhbGx5IHdlIHdvdWxkIGRvIHNvbWUgY3Jvc3MgY2hlY2tpbmcgd2l0aCB0 aGUgUV9QUk9QRVJUSUVTLCBidXQgdGhhdCdzIG5vdCBpbiB0aGUgQVNUCitkaWZmIC0tZ2l0IGEv c3JjL2NoZWNrcy9sZXZlbDAvZnVsbHktcXVhbGlmaWVkLW1vYy10eXBlcy5oIGIvc3JjL2NoZWNr cy9sZXZlbDAvZnVsbHktcXVhbGlmaWVkLW1vYy10eXBlcy5oCitpbmRleCAzYjc5MTY2Ny4uN2Iz NGE5OWMgMTAwNjQ0CistLS0gYS9zcmMvY2hlY2tzL2xldmVsMC9mdWxseS1xdWFsaWZpZWQtbW9j LXR5cGVzLmgKKysrKyBiL3NyYy9jaGVja3MvbGV2ZWwwL2Z1bGx5LXF1YWxpZmllZC1tb2MtdHlw ZXMuaAorQEAgLTMyLDkgKzMyLDExIEBAIHByaXZhdGU6CisgICAgIGJvb2wgaGFuZGxlUV9QUk9Q RVJUWShjbGFuZzo6Q1hYTWV0aG9kRGVjbCAqKTsKKyAgICAgdm9pZCBWaXNpdE1hY3JvRXhwYW5k cyhjb25zdCBjbGFuZzo6VG9rZW4gJk1hY3JvTmFtZVRvaywgY29uc3QgY2xhbmc6OlNvdXJjZVJh bmdlICZyYW5nZSwgY29uc3QgY2xhbmc6Ok1hY3JvSW5mbyAqbWluZm8gPSBudWxscHRyKSBvdmVy cmlkZTsKKyAgICAgdm9pZCByZWdpc3RlclFfR0FER0VUKGNsYW5nOjpTb3VyY2VMb2NhdGlvbik7 CistICAgIGJvb2wgdHlwZUlzRnVsbHlRdWFsaWZpZWQoY2xhbmc6OlF1YWxUeXBlIHQsIHN0ZDo6 c3RyaW5nICZxdWFsaWZpZWRUeXBlTmFtZSwgc3RkOjpzdHJpbmcgJnR5cGVOYW1lKSBjb25zdDsK Ky0gICAgc3RkOjpzdHJpbmcgZ2V0UXVhbGlmaWVkTmFtZU9mVHlwZShjb25zdCBjbGFuZzo6VHlw ZSAqcHRyLCBib29sIGNoZWNrRWxhYlR5cGUgPSB0cnVlKSBjb25zdDsKKy0gICAgc3RkOjpzdHJp bmcgcmVzb2x2ZVRlbXBsYXRlVHlwZShjb25zdCBjbGFuZzo6VGVtcGxhdGVTcGVjaWFsaXphdGlv blR5cGUgKnB0ciwgYm9vbCBjaGVja0VsYWJUeXBlID0gdHJ1ZSkgY29uc3Q7CisrICAgIGJvb2wg dHlwZUlzRnVsbHlRdWFsaWZpZWQoY2xhbmc6OlF1YWxUeXBlIHQsIHN0ZDo6c3RyaW5nICZxdWFs aWZpZWRUeXBlTmFtZSwgY29uc3Qgc3RkOjpzdHJpbmcgJnR5cGVOYW1lKSBjb25zdDsKKysgICAg c3RkOjpzdHJpbmcgZ2V0UXVhbGlmaWVkTmFtZU9mVHlwZShjb25zdCBjbGFuZzo6VHlwZSAqcHRy LCBib29sIHJlc29sdmVUZW1wbGF0ZUFyZ3MpIGNvbnN0OworKyAgICBzdGQ6OnN0cmluZyByZXNv bHZlVGVtcGxhdGVUeXBlKGNvbnN0IGNsYW5nOjpUZW1wbGF0ZVNwZWNpYWxpemF0aW9uVHlwZSAq cHRyLCBib29sIHJlc29sdmVUZW1wbGF0ZUFyZ3MpIGNvbnN0OworKworKyAgICBzdGQ6OnN0cmlu ZyB3cml0dGVuVHlwZShjb25zdCBjbGFuZzo6UGFybVZhckRlY2wgKnBhcmFtKSBjb25zdDsKKyAK KyAgICAgc3RkOjp2ZWN0b3I8Y2xhbmc6OlNvdXJjZUxvY2F0aW9uPiBtX3FnYWRnZXRNYWNyb0xv Y2F0aW9uczsKKyB9OworLS0gCitHaXRMYWIKKwoKZGlmZiAtLWdpdCBhL2NsYXp5LnNwZWMgYi9j bGF6eS5zcGVjCmluZGV4IDJiMTU1MDQuLmNhYTE1Y2MgMTAwNjQ0Ci0tLSBhL2NsYXp5LnNwZWMK KysrIGIvY2xhenkuc3BlYwpAQCAtMSw3ICsxLDcgQEAKIE5hbWU6ICAgICAgICAgICBjbGF6eQog U3VtbWFyeTogICAgICAgIFF0IG9yaWVudGVkIGNvZGUgY2hlY2tlciBiYXNlZCBvbiBjbGFuZyBm cmFtZXdvcmsKIFZlcnNpb246ICAgICAgICAxLjE2Ci1SZWxlYXNlOiAgICAgICAgNCV7P2Rpc3R9 CitSZWxlYXNlOiAgICAgICAgNSV7P2Rpc3R9CiBMaWNlbnNlOiAgICAgICAgTEdQTC0yLjAtb3It bGF0ZXIKIFVSTDogICAgICAgICAgICBodHRwczovL2ludmVudC5rZGUub3JnL3Nkay8le25hbWV9 CiAKQEAgLTEyLDYgKzEyLDExIEBAIFNvdXJjZTA6ICAgICAgICBodHRwczovL2Rvd25sb2FkLmtk ZS5vcmcvc3RhYmxlLyV7bmFtZX0vJXt2ZXJzaW9ufS9zcmMvJXtuYW1lfS12CiAlZW5kaWYKIAog UGF0Y2gwOiAgICAgICAgIGNsYXp5LW5vLXJwYXRoLnBhdGNoCisjIFBhdGNoZXMgcmVxdWlyZWQg Zm9yIExMVk0gMjIuCitQYXRjaDE6ICAgICAgICAgODFiN2NmMzhhNDQ0ZjZjYTdhNTM5Y2ViNTFh ZGEwNTAyMTRmM2I0Ny5wYXRjaAorUGF0Y2gyOiAgICAgICAgIDc2MjEyODg1NzI5YmY5ZGNmZWE3 YzE5OGQzMmExNTY1MTMxMGFjZWIucGF0Y2gKK1BhdGNoMzogICAgICAgICBjY2ZmYzg2OTU0Nzdk OWY0ODZlNTA5ODc0NDQwYzdjNjNlMmVjNTk5LnBhdGNoCitQYXRjaDQ6ICAgICAgICAgOWNmNjhk YmU4NmMwMmQ3YjRlNTkxM2JlMWY2MzdiYTEyMDAwYWM4ZC5wYXRjaAogCiBCdWlsZFJlcXVpcmVz OiBjbWFrZQogQnVpbGRSZXF1aXJlczogZ2NjLWMrKwo=