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: hydai To: git-commits@fedoraproject.org Subject: [rpms/wasmedge] epel8: Update to 0.17.0 Date: Tue, 02 Jun 2026 11:08:59 GMT Message-ID: <178039853949.1.14762016628238583189.rpms-wasmedge-6b8e25c33fc0@fedoraproject.org> List-ID: X-Git-Repo: rpms/wasmedge X-Git-Branch: epel8 X-Git-Rev: 6b8e25c33fc06ba2b5ea2bdb2aa9fa85b67e4de3 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvd2FzbWVkZ2UKICAgICAgICAgICAgQnJhbmNoIDogZXBlbDgKICAgICAgICAg ICAgQ29tbWl0IDogNmI4ZTI1YzMzZmMwNmJhMmI1ZWEyYmRiMmFhOWZhODViNjdlNGRlMwogICAg ICAgICAgICBBdXRob3IgOiBoeWRhaSA8aHlkYWlAaHlkLmFpPgogICAgICAgICAgICBEYXRlICAg OiAyMDI2LTA2LTAyVDEwOjI5OjE1KzAwOjAwCiAgICAgICAgICAgIFN0YXRzICA6ICs1ODcvLTE3 ODggaW4gNyBmaWxlKHMpCiAgICAgICAgICAgIFVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXBy b2plY3Qub3JnL3JwbXMvd2FzbWVkZ2UvYy82YjhlMjVjMzNmYzA2YmEyYjVlYTJiZGIyYWE5ZmE4 NWI2N2U0ZGUzP2JyYW5jaD1lcGVsOAoKICAgICAgICAgICAgTG9nOgogICAgICAgICAgICBVcGRh dGUgdG8gMC4xNy4wCgpBZGQgZm10IDYgLyBzcGRsb2cgMS41IGNvbXBhdGliaWxpdHkgcGF0Y2gg KFBhdGNoMCkgZm9yIEVQRUwgOC4gUkhFTCA4IHNoaXBzIGZtdCA2LjIuMSBhbmQgc3BkbG9nCjEu NS4wLCBvbGRlciB0aGFuIHVwc3RyZWFtIGV4cGVjdHM7IHRoZSBwYXRjaCB1c2VzIGNvbmRpdGlv bmFsIGd1YXJkcyBvbmx5IChGTVRfVkVSU0lPTiAvCl9faGFzX2luY2x1ZGUpIHdpdGggbm8gYmVo YXZpb3IgY2hhbmdlIG9uIG5ld2VyIGZtdC4gRHJvcHMgdGhlIHByZXZpb3VzIHJldmVydC1mbXQg YW5kIExMVk0gMTkvMjAKYmFja3BvcnQgcGF0Y2hlcywgd2hpY2ggMC4xNy4wIG5vIGxvbmdlciBu ZWVkcy4KClNpZ25lZC1vZmYtYnk6IGh5ZGFpIDxoeWRhaUBoeWQuYWk+CgotLS0KZGlmZiAtLWdp dCBhLzAwMDEtTExWTS1MTFZNWDg2X01NWFR5cGVLaW5kLWlzLXJlbW92ZWQtaW4tTExWTTIwLTQw NjQucGF0Y2ggYi8wMDAxLUxMVk0tTExWTVg4Nl9NTVhUeXBlS2luZC1pcy1yZW1vdmVkLWluLUxM Vk0yMC00MDY0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YTk1NzkzLi4w MDAwMDAwCi0tLSBhLzAwMDEtTExWTS1MTFZNWDg2X01NWFR5cGVLaW5kLWlzLXJlbW92ZWQtaW4t TExWTTIwLTQwNjQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1Gcm9tIGI2 M2UyMDFkNDY0NTI0NTNlZTdjMmFjZjA3OTY3Y2QyOTJkN2UzZGEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBoeWRhaSA8aHlkYWlAc2Vjb25kc3RhdGUuaW8+Ci1EYXRlOiBXZWQsIDE5 IE1hciAyMDI1IDEyOjU3OjA2ICswODAwCi1TdWJqZWN0OiBbUEFUQ0hdIFtMTFZNXSBMTFZNWDg2 X01NWFR5cGVLaW5kIGlzIHJlbW92ZWQgaW4gTExWTTIwICgjNDA2NCkKLQotU2lnbmVkLW9mZi1i eTogaHlkYWkgPHo1NDk4MTIyMEBnbWFpbC5jb20+Ci0tLS0KLSBsaWIvbGx2bS9sbHZtLmggfCAy ICsrCi0gMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvbGli L2xsdm0vbGx2bS5oIGIvbGliL2xsdm0vbGx2bS5oCi1pbmRleCA5YjA4ZDk3Yi4uN2IwYmI1M2Ug MTAwNjQ0Ci0tLS0gYS9saWIvbGx2bS9sbHZtLmgKLSsrKyBiL2xpYi9sbHZtL2xsdm0uaAotQEAg LTU1Niw4ICs1NTYsMTAgQEAgcHVibGljOgotICAgICAgIHJldHVybiAxMjg7Ci0gICAgIGNhc2Ug TExWTVBQQ19GUDEyOFR5cGVLaW5kOgotICAgICAgIHJldHVybiAxMjg7Ci0rI2lmIExMVk1fVkVS U0lPTl9NQUpPUiA8IDIwCi0gICAgIGNhc2UgTExWTVg4Nl9NTVhUeXBlS2luZDoKLSAgICAgICBy ZXR1cm4gNjQ7Ci0rI2VuZGlmCi0gICAgIGNhc2UgTExWTUludGVnZXJUeXBlS2luZDoKLSAgICAg ICByZXR1cm4gZ2V0SW50ZWdlckJpdFdpZHRoKCk7Ci0gICAgIGNhc2UgTExWTVZlY3RvclR5cGVL aW5kOgotLS0gCi0yLjQzLjAKLQoKZGlmZiAtLWdpdCBhLzAwMDEtTExWTS1TdXBwb3J0LUxMVk0t MTktMzgwOS5wYXRjaCBiLzAwMDEtTExWTS1TdXBwb3J0LUxMVk0tMTktMzgwOS5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmM5MzdhNS4uMDAwMDAwMAotLS0gYS8wMDAxLUxM Vk0tU3VwcG9ydC1MTFZNLTE5LTM4MDkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCww IEBACi1Gcm9tIDBhZGE1ZGFhMDE1ZjlkNGRlODMxYjg0NTI2NjkzZGJkMWI3YTE5NTEgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiAiU2hlbi1UYSBIc2llaChCZXN0U3RldmUpIiA8aWJt aWJtaWJtLnR3QGdtYWlsLmNvbT4KLURhdGU6IFR1ZSwgMSBPY3QgMjAyNCAxNjowNTo1OCArMDgw MAotU3ViamVjdDogW1BBVENIXSBbTExWTV0gU3VwcG9ydCBMTFZNIDE5ICgjMzgwOSkKLQotKiBS ZW1vdmUgdW51c2VkIGFuZCBkZXByZWNhdGVkIGxsdm0tYyBmdW5jdGlvbnMKLQotU2lnbmVkLW9m Zi1ieTogU2hlbi1UYSBIc2llaCA8YmVzdHN0ZXZlQHNlY29uZHN0YXRlLmlvPgotKGNoZXJyeSBw aWNrZWQgZnJvbSBjb21taXQgNGUwZjlmMTExOGUyNzhiNDFlOWEwMmIwZTdmNDI3MzU5NTU4MTVm NCkKLS0tLQotIGxpYi9sbHZtL2xsdm0uaCB8IDYgLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDYg ZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9saWIvbGx2bS9sbHZtLmggYi9saWIvbGx2bS9s bHZtLmgKLWluZGV4IDMxYWM5NWQ0Li41YjI3ODg0OSAxMDA2NDQKLS0tLSBhL2xpYi9sbHZtL2xs dm0uaAotKysrIGIvbGliL2xsdm0vbGx2bS5oCi1AQCAtMTIyOCwxMiArMTIyOCw2IEBAIHB1Ymxp YzoKLSAgIFZhbHVlIGNyZWF0ZU5lZyhWYWx1ZSBWLCBjb25zdCBjaGFyICpOYW1lID0gIiIpIG5v ZXhjZXB0IHsKLSAgICAgcmV0dXJuIExMVk1CdWlsZE5lZyhSZWYsIFYudW53cmFwKCksIE5hbWUp OwotICAgfQotLSAgVmFsdWUgY3JlYXRlTlNXTmVnKFZhbHVlIFYsIGNvbnN0IGNoYXIgKk5hbWUg PSAiIikgbm9leGNlcHQgewotLSAgICByZXR1cm4gTExWTUJ1aWxkTlNXTmVnKFJlZiwgVi51bndy YXAoKSwgTmFtZSk7Ci0tICB9Ci0tICBWYWx1ZSBjcmVhdGVOVVdOZWcoVmFsdWUgViwgY29uc3Qg Y2hhciAqTmFtZSA9ICIiKSBub2V4Y2VwdCB7Ci0tICAgIHJldHVybiBMTFZNQnVpbGROVVdOZWco UmVmLCBWLnVud3JhcCgpLCBOYW1lKTsKLS0gIH0KLSAgIFZhbHVlIGNyZWF0ZUZOZWcoVmFsdWUg ViwgY29uc3QgY2hhciAqTmFtZSA9ICIiKSBub2V4Y2VwdCB7Ci0gICAgIHJldHVybiBMTFZNQnVp bGRGTmVnKFJlZiwgVi51bndyYXAoKSwgTmFtZSk7Ci0gICB9Ci0tLSAKLTIuNTAuMQotCgpkaWZm IC0tZ2l0IGEvMDAwMS1maXgtcnVudGltZS1yZWZpbmUtdGhlLW92ZXJmbG93LWRldGVjdGlvbi13 aGVuLXdyYXBwLnBhdGNoIGIvMDAwMS1maXgtcnVudGltZS1yZWZpbmUtdGhlLW92ZXJmbG93LWRl dGVjdGlvbi13aGVuLXdyYXBwLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj MzMyYzNlLi4wMDAwMDAwCi0tLSBhLzAwMDEtZml4LXJ1bnRpbWUtcmVmaW5lLXRoZS1vdmVyZmxv dy1kZXRlY3Rpb24td2hlbi13cmFwcC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAg QEAKLUZyb20gMzdjYzlmYTE5YmQyM2VkYmJkYWE5MjUyMDU5YjE3ZjE5MWZhNGQxNyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFlpWWluZyBIZSA8eWl5aW5nQHNlY29uZHN0YXRlLmlv PgotRGF0ZTogV2VkLCAxNyBEZWMgMjAyNSAyMDoyNzozOCArMDgwMAotU3ViamVjdDogW1BBVENI XSBmaXgocnVudGltZSk6IHJlZmluZSB0aGUgb3ZlcmZsb3cgZGV0ZWN0aW9uIHdoZW4gd3JhcHBp bmcKLSBtZW1vcnkgaW5zdGFuY2UKLQotU2lnbmVkLW9mZi1ieTogWWlZaW5nIEhlIDx5aXlpbmdA c2Vjb25kc3RhdGUuaW8+Ci0tLS0KLSBpbmNsdWRlL3J1bnRpbWUvaW5zdGFuY2UvbWVtb3J5Lmgg fCAyNCArKysrKysrKysrKysrKysrKysrLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMTkgaW5zZXJ0 aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2luY2x1ZGUvcnVudGltZS9p bnN0YW5jZS9tZW1vcnkuaCBiL2luY2x1ZGUvcnVudGltZS9pbnN0YW5jZS9tZW1vcnkuaAotaW5k ZXggY2U1MTFhN2IuLjlkODQ5NTk4IDEwMDY0NAotLS0tIGEvaW5jbHVkZS9ydW50aW1lL2luc3Rh bmNlL21lbW9yeS5oCi0rKysgYi9pbmNsdWRlL3J1bnRpbWUvaW5zdGFuY2UvbWVtb3J5LmgKLUBA IC0yNDEsMTQgKzI0MSwyOCBAQCBwdWJsaWM6Ci0gICAgIHJldHVybiByZWludGVycHJldF9jYXN0 PFQ+KCZEYXRhUHRyW09mZnNldF0pOwotICAgfQotIAotLSAgLy8vIEdldCBhcnJheSBvZiBvYmpl Y3QgYXQgc3BlY2lmaWMgb2Zmc2V0IG9mIG1lbW9yeS4KLSsgIC8vLyBHZXQgYXJyYXkgb2Ygb2Jq ZWN0IHdpdGggY291bnQgYXQgc3BlY2lmaWMgb2Zmc2V0IG9mIG1lbW9yeS4KLSAgIHRlbXBsYXRl IDx0eXBlbmFtZSBUPgotLSAgU3BhbjxUPiBnZXRTcGFuKHVpbnQzMl90IE9mZnNldCwgdWludDMy X3QgU2l6ZSkgY29uc3Qgbm9leGNlcHQgewotLSAgICB1aW50MzJfdCBCeXRlU2l6ZSA9IHN0YXRp Y19jYXN0PHVpbnQzMl90PihzaXplb2YoVCkgKiBTaXplKTsKLS0gICAgaWYgKHVubGlrZWx5KCFj aGVja0FjY2Vzc0JvdW5kKE9mZnNldCwgQnl0ZVNpemUpKSkgewotKyAgU3BhbjxUPiBnZXRTcGFu KHVpbnQzMl90IE9mZnNldCwgdWludDMyX3QgQ291bnQpIGNvbnN0IG5vZXhjZXB0IHsKLSsgICAg dWludDMyX3QgU2l6ZTsKLSsjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgIWRlZmluZWQoX19jbGFu Z19fKSAvLyBNU1ZDCi0rICAgIC8vIFNob3VsZCBleHRlbmQgZm9yIG1lbW9yeTY0IHByb3Bvc2Fs LgotKyAgICB1aW50NjRfdCBOdW0gPQotKyAgICAgICAgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHNp emVvZihUKSkgKiBzdGF0aWNfY2FzdDx1aW50NjRfdD4oQ291bnQpOwotKyAgICBpZiAoKE51bSA+ PiAzMikgIT0gMCkgewotKyAgICAgIHJldHVybiBTcGFuPFQ+KCk7Ci0rICAgIH0KLSsgICAgU2l6 ZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihOdW0pOwotKyNlbHNlCi0rICAgIGlmICh1bmxpa2Vs eShfX2J1aWx0aW5fbXVsX292ZXJmbG93KHN0YXRpY19jYXN0PHVpbnQzMl90PihzaXplb2YoVCkp LCBDb3VudCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlNpemUp KSkgewotKyAgICAgIHJldHVybiBTcGFuPFQ+KCk7Ci0rICAgIH0KLSsjZW5kaWYKLSsgICAgaWYg KHVubGlrZWx5KCFjaGVja0FjY2Vzc0JvdW5kKE9mZnNldCwgU2l6ZSkpKSB7Ci0gICAgICAgcmV0 dXJuIFNwYW48VD4oKTsKLSAgICAgfQotLSAgICByZXR1cm4gU3BhbjxUPihyZWludGVycHJldF9j YXN0PFQgKj4oJkRhdGFQdHJbT2Zmc2V0XSksIFNpemUpOwotKyAgICByZXR1cm4gU3BhbjxUPihy ZWludGVycHJldF9jYXN0PFQgKj4oJkRhdGFQdHJbT2Zmc2V0XSksIENvdW50KTsKLSAgIH0KLSAK LSAgIC8vLyBHZXQgYXJyYXkgb2Ygb2JqZWN0IGF0IHNwZWNpZmljIG9mZnNldCBvZiBtZW1vcnku Ci0tLSAKLTIuNDMuMAotCgpkaWZmIC0tZ2l0IGEvMDAwMS1mbXQ2LWNvbXBhdC5wYXRjaCBiLzAw MDEtZm10Ni1jb21wYXQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u OTdhNTNmOQotLS0gL2Rldi9udWxsCisrKyBiLzAwMDEtZm10Ni1jb21wYXQucGF0Y2gKQEAgLTAs MCArMSw1NTkgQEAKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2FzdC90eXBlLmggYi9pbmNsdWRlL2Fz dC90eXBlLmgKK2luZGV4IDAzZmJmNTNlZi4uODEzOTllMGE3IDEwMDY0NAorLS0tIGEvaW5jbHVk ZS9hc3QvdHlwZS5oCisrKysgYi9pbmNsdWRlL2FzdC90eXBlLmgKK0BAIC03OTcsOSArNzk3LDkg QEAgcHJpdmF0ZToKKyB0ZW1wbGF0ZSA8PgorIHN0cnVjdCBmbXQ6OmZvcm1hdHRlcjxXYXNtRWRn ZTo6QVNUOjpGdW5jdGlvblR5cGU+CisgICAgIDogZm10Ojpmb3JtYXR0ZXI8c3RkOjpzdHJpbmdf dmlldz4geworLSAgZm10Ojpmb3JtYXRfY29udGV4dDo6aXRlcmF0b3IKKy0gIGZvcm1hdChjb25z dCBXYXNtRWRnZTo6QVNUOjpGdW5jdGlvblR5cGUgJlR5cGUsCistICAgICAgICAgZm10Ojpmb3Jt YXRfY29udGV4dCAmQ3R4KSBjb25zdCBub2V4Y2VwdCB7CisrICB0ZW1wbGF0ZSA8dHlwZW5hbWUg Rm10Q3R4PgorKyAgYXV0byBmb3JtYXQoY29uc3QgV2FzbUVkZ2U6OkFTVDo6RnVuY3Rpb25UeXBl ICZUeXBlLAorKyAgICAgICAgIEZtdEN0eCAmQ3R4KSBXQVNNRURHRV9GTVRfQ09OU1Qgbm9leGNl cHQgLT4gZGVjbHR5cGUoQ3R4Lm91dCgpKSB7CisgICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ6Omxp dGVyYWxzOworIAorICAgICBmbXQ6Om1lbW9yeV9idWZmZXIgQnVmZmVyOworZGlmZiAtLWdpdCBh L2luY2x1ZGUvY29tbW9uL2VudW1fYXN0LmhwcCBiL2luY2x1ZGUvY29tbW9uL2VudW1fYXN0Lmhw cAoraW5kZXggMjUzNTU1OWExLi5mYWI2YmNhMjcgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2NvbW1v bi9lbnVtX2FzdC5ocHAKKysrKyBiL2luY2x1ZGUvY29tbW9uL2VudW1fYXN0LmhwcAorQEAgLTEz Myw5ICsxMzMsOSBAQCBzdGF0aWMgaW5saW5lIGNvbnN0ZXhwciBjb25zdCBhdXRvIENvbXBvbmVu dENhbm9uT3B0Q29kZVN0ciA9IFtdKCkgY29uc3RleHByIHsKKyB0ZW1wbGF0ZSA8PgorIHN0cnVj dCBmbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6QVNUTm9kZUF0dHI+CisgICAgIDogZm10Ojpmb3Jt YXR0ZXI8c3RkOjpzdHJpbmdfdmlldz4geworLSAgZm10Ojpmb3JtYXRfY29udGV4dDo6aXRlcmF0 b3IKKy0gIGZvcm1hdChjb25zdCBXYXNtRWRnZTo6QVNUTm9kZUF0dHIgJkF0dHIsCistICAgICAg ICAgZm10Ojpmb3JtYXRfY29udGV4dCAmQ3R4KSBjb25zdCBub2V4Y2VwdCB7CisrICB0ZW1wbGF0 ZSA8dHlwZW5hbWUgRm10Q3R4PgorKyAgYXV0byBmb3JtYXQoY29uc3QgV2FzbUVkZ2U6OkFTVE5v ZGVBdHRyICZBdHRyLAorKyAgICAgICAgIEZtdEN0eCAmQ3R4KSBXQVNNRURHRV9GTVRfQ09OU1Qg bm9leGNlcHQgLT4gZGVjbHR5cGUoQ3R4Lm91dCgpKSB7CisgICAgIHJldHVybiBmb3JtYXR0ZXI8 c3RkOjpzdHJpbmdfdmlldz46OmZvcm1hdChXYXNtRWRnZTo6QVNUTm9kZUF0dHJTdHJbQXR0cl0s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdHgpOwor ICAgfQorQEAgLTE0Myw5ICsxNDMsOSBAQCBzdHJ1Y3QgZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6 OkFTVE5vZGVBdHRyPgorIAorIHRlbXBsYXRlIDw+Cisgc3RydWN0IGZtdDo6Zm9ybWF0dGVyPFdh c21FZGdlOjpPcENvZGU+IDogZm10Ojpmb3JtYXR0ZXI8c3RkOjpzdHJpbmdfdmlldz4geworLSAg Zm10Ojpmb3JtYXRfY29udGV4dDo6aXRlcmF0b3IKKy0gIGZvcm1hdChjb25zdCBXYXNtRWRnZTo6 T3BDb2RlICZDb2RlLAorLSAgICAgICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkgY29uc3Qg bm9leGNlcHQgeworKyAgdGVtcGxhdGUgPHR5cGVuYW1lIEZtdEN0eD4KKysgIGF1dG8gZm9ybWF0 KGNvbnN0IFdhc21FZGdlOjpPcENvZGUgJkNvZGUsCisrICAgICAgICAgRm10Q3R4ICZDdHgpIFdB U01FREdFX0ZNVF9DT05TVCBub2V4Y2VwdCAtPiBkZWNsdHlwZShDdHgub3V0KCkpIHsKKyAgICAg cmV0dXJuIGZvcm1hdHRlcjxzdGQ6OnN0cmluZ192aWV3Pjo6Zm9ybWF0KFdhc21FZGdlOjpPcENv ZGVTdHJbQ29kZV0sIEN0eCk7CisgICB9CisgfTsKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2NvbW1v bi9lbnVtX2VycmNvZGUuaHBwIGIvaW5jbHVkZS9jb21tb24vZW51bV9lcnJjb2RlLmhwcAoraW5k ZXggNzFmYTUxMmIwLi5kY2FlYjc3ZDAgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2NvbW1vbi9lbnVt X2VycmNvZGUuaHBwCisrKysgYi9pbmNsdWRlL2NvbW1vbi9lbnVtX2VycmNvZGUuaHBwCitAQCAt MTUxLDkgKzE1MSw5IEBAIHN0YXRpYyBpbmxpbmUgY29uc3RleHByIGNvbnN0IGF1dG8gRXJyQ29k ZVN0ciA9IFtdKCkgY29uc3RleHByIHsKKyAKKyB0ZW1wbGF0ZSA8PgorIHN0cnVjdCBmbXQ6OmZv cm1hdHRlcjxXYXNtRWRnZTo6V2FzbVBoYXNlPiA6IGZtdDo6Zm9ybWF0dGVyPHN0ZDo6c3RyaW5n X3ZpZXc+IHsKKy0gIGZtdDo6Zm9ybWF0X2NvbnRleHQ6Oml0ZXJhdG9yCistICBmb3JtYXQoY29u c3QgV2FzbUVkZ2U6Oldhc21QaGFzZSAmUGhhc2UsCistICAgICAgICAgZm10Ojpmb3JtYXRfY29u dGV4dCAmQ3R4KSBjb25zdCBub2V4Y2VwdCB7CisrICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRm10Q3R4 PgorKyAgYXV0byBmb3JtYXQoY29uc3QgV2FzbUVkZ2U6Oldhc21QaGFzZSAmUGhhc2UsCisrICAg ICAgICAgRm10Q3R4ICZDdHgpIFdBU01FREdFX0ZNVF9DT05TVCBub2V4Y2VwdCAtPiBkZWNsdHlw ZShDdHgub3V0KCkpIHsKKyAgICAgcmV0dXJuIGZvcm1hdHRlcjxzdGQ6OnN0cmluZ192aWV3Pjo6 Zm9ybWF0KFdhc21FZGdlOjpXYXNtUGhhc2VTdHJbUGhhc2VdLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3R4KTsKKyAgIH0KK2RpZmYgLS1naXQgYS9p bmNsdWRlL2NvbW1vbi9lbnVtX2VycmluZm8uaHBwIGIvaW5jbHVkZS9jb21tb24vZW51bV9lcnJp bmZvLmhwcAoraW5kZXggNDhiN2MwOTRmLi4xMzg0N2IwOTAgMTAwNjQ0CistLS0gYS9pbmNsdWRl L2NvbW1vbi9lbnVtX2VycmluZm8uaHBwCisrKysgYi9pbmNsdWRlL2NvbW1vbi9lbnVtX2Vycmlu Zm8uaHBwCitAQCAtMTEwLDkgKzExMCw5IEBAIHN0YXRpYyBpbmxpbmUgY29uc3RleHByIGF1dG8g SW5kZXhDYXRlZ29yeVN0ciA9IFtdKCkgY29uc3RleHByIHsKKyB0ZW1wbGF0ZSA8PgorIHN0cnVj dCBmbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6RXJySW5mbzo6UHRyVHlwZT4KKyAgICAgOiBmbXQ6 OmZvcm1hdHRlcjxzdGQ6OnN0cmluZ192aWV3PiB7CistICBmbXQ6OmZvcm1hdF9jb250ZXh0Ojpp dGVyYXRvcgorLSAgZm9ybWF0KGNvbnN0IFdhc21FZGdlOjpFcnJJbmZvOjpQdHJUeXBlICZUeXBl LAorLSAgICAgICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkgY29uc3Qgbm9leGNlcHQgewor KyAgdGVtcGxhdGUgPHR5cGVuYW1lIEZtdEN0eD4KKysgIGF1dG8gZm9ybWF0KGNvbnN0IFdhc21F ZGdlOjpFcnJJbmZvOjpQdHJUeXBlICZUeXBlLAorKyAgICAgICAgIEZtdEN0eCAmQ3R4KSBXQVNN RURHRV9GTVRfQ09OU1Qgbm9leGNlcHQgLT4gZGVjbHR5cGUoQ3R4Lm91dCgpKSB7CisgICAgIHJl dHVybiBmb3JtYXR0ZXI8c3RkOjpzdHJpbmdfdmlldz46OmZvcm1hdCgKKyAgICAgICAgIFdhc21F ZGdlOjpFcnJJbmZvOjpQdHJUeXBlU3RyW1R5cGVdLCBDdHgpOworICAgfQorQEAgLTEyMSw5ICsx MjEsOSBAQCBzdHJ1Y3QgZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6OkVyckluZm86OlB0clR5cGU+ CisgdGVtcGxhdGUgPD4KKyBzdHJ1Y3QgZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6OkVyckluZm86 Ok1pc21hdGNoQ2F0ZWdvcnk+CisgICAgIDogZm10Ojpmb3JtYXR0ZXI8c3RkOjpzdHJpbmdfdmll dz4geworLSAgZm10Ojpmb3JtYXRfY29udGV4dDo6aXRlcmF0b3IKKy0gIGZvcm1hdChjb25zdCBX YXNtRWRnZTo6RXJySW5mbzo6TWlzbWF0Y2hDYXRlZ29yeSAmQ2F0ZWdvcnksCistICAgICAgICAg Zm10Ojpmb3JtYXRfY29udGV4dCAmQ3R4KSBjb25zdCBub2V4Y2VwdCB7CisrICB0ZW1wbGF0ZSA8 dHlwZW5hbWUgRm10Q3R4PgorKyAgYXV0byBmb3JtYXQoY29uc3QgV2FzbUVkZ2U6OkVyckluZm86 Ok1pc21hdGNoQ2F0ZWdvcnkgJkNhdGVnb3J5LAorKyAgICAgICAgIEZtdEN0eCAmQ3R4KSBXQVNN RURHRV9GTVRfQ09OU1Qgbm9leGNlcHQgLT4gZGVjbHR5cGUoQ3R4Lm91dCgpKSB7CisgICAgIHJl dHVybiBmb3JtYXR0ZXI8c3RkOjpzdHJpbmdfdmlldz46OmZvcm1hdCgKKyAgICAgICAgIFdhc21F ZGdlOjpFcnJJbmZvOjpNaXNtYXRjaENhdGVnb3J5U3RyW0NhdGVnb3J5XSwgQ3R4KTsKKyAgIH0K K0BAIC0xMzIsOSArMTMyLDkgQEAgc3RydWN0IGZtdDo6Zm9ybWF0dGVyPFdhc21FZGdlOjpFcnJJ bmZvOjpNaXNtYXRjaENhdGVnb3J5PgorIHRlbXBsYXRlIDw+Cisgc3RydWN0IGZtdDo6Zm9ybWF0 dGVyPFdhc21FZGdlOjpFcnJJbmZvOjpJbmRleENhdGVnb3J5PgorICAgICA6IGZtdDo6Zm9ybWF0 dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+IHsKKy0gIGZtdDo6Zm9ybWF0X2NvbnRleHQ6Oml0ZXJhdG9y CistICBmb3JtYXQoY29uc3QgV2FzbUVkZ2U6OkVyckluZm86OkluZGV4Q2F0ZWdvcnkgJkNhdGVn b3J5LAorLSAgICAgICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkgY29uc3Qgbm9leGNlcHQg eworKyAgdGVtcGxhdGUgPHR5cGVuYW1lIEZtdEN0eD4KKysgIGF1dG8gZm9ybWF0KGNvbnN0IFdh c21FZGdlOjpFcnJJbmZvOjpJbmRleENhdGVnb3J5ICZDYXRlZ29yeSwKKysgICAgICAgICBGbXRD dHggJkN0eCkgV0FTTUVER0VfRk1UX0NPTlNUIG5vZXhjZXB0IC0+IGRlY2x0eXBlKEN0eC5vdXQo KSkgeworICAgICByZXR1cm4gZm9ybWF0dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+Ojpmb3JtYXQoCisg ICAgICAgICBXYXNtRWRnZTo6RXJySW5mbzo6SW5kZXhDYXRlZ29yeVN0cltDYXRlZ29yeV0sIEN0 eCk7CisgICB9CitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb21tb24vZW51bV90eXBlcy5ocHAgYi9p bmNsdWRlL2NvbW1vbi9lbnVtX3R5cGVzLmhwcAoraW5kZXggYzczZjE1MWIxLi43NjliMGU3MWIg MTAwNjQ0CistLS0gYS9pbmNsdWRlL2NvbW1vbi9lbnVtX3R5cGVzLmhwcAorKysrIGIvaW5jbHVk ZS9jb21tb24vZW51bV90eXBlcy5ocHAKK0BAIC0xMTEsOCArMTExLDggQEAgc3RhdGljIGlubGlu ZSBjb25zdGV4cHIgY29uc3QgYXV0byBDb21wb25lbnRUeXBlQ29kZVN0ciA9IFtdKCkgY29uc3Rl eHByIHsKKyAKKyB0ZW1wbGF0ZSA8PgorIHN0cnVjdCBmbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6 VmFsTXV0PiA6IGZtdDo6Zm9ybWF0dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+IHsKKy0gIGZtdDo6Zm9y bWF0X2NvbnRleHQ6Oml0ZXJhdG9yCistICBmb3JtYXQoY29uc3QgV2FzbUVkZ2U6OlZhbE11dCAm TXV0LCBmbXQ6OmZvcm1hdF9jb250ZXh0ICZDdHgpIGNvbnN0IG5vZXhjZXB0IHsKKysgIHRlbXBs YXRlIDx0eXBlbmFtZSBGbXRDdHg+CisrICBhdXRvIGZvcm1hdChjb25zdCBXYXNtRWRnZTo6VmFs TXV0ICZNdXQsIEZtdEN0eCAmQ3R4KSBXQVNNRURHRV9GTVRfQ09OU1Qgbm9leGNlcHQgLT4gZGVj bHR5cGUoQ3R4Lm91dCgpKSB7CisgICAgIHJldHVybiBmb3JtYXR0ZXI8c3RkOjpzdHJpbmdfdmll dz46OmZvcm1hdChXYXNtRWRnZTo6VmFsTXV0U3RyW011dF0sIEN0eCk7CisgICB9CisgfTsKK0BA IC0xMjAsOSArMTIwLDkgQEAgc3RydWN0IGZtdDo6Zm9ybWF0dGVyPFdhc21FZGdlOjpWYWxNdXQ+ IDogZm10Ojpmb3JtYXR0ZXI8c3RkOjpzdHJpbmdfdmlldz4geworIHRlbXBsYXRlIDw+Cisgc3Ry dWN0IGZtdDo6Zm9ybWF0dGVyPFdhc21FZGdlOjpFeHRlcm5hbFR5cGU+CisgICAgIDogZm10Ojpm b3JtYXR0ZXI8c3RkOjpzdHJpbmdfdmlldz4geworLSAgZm10Ojpmb3JtYXRfY29udGV4dDo6aXRl cmF0b3IKKy0gIGZvcm1hdChjb25zdCBXYXNtRWRnZTo6RXh0ZXJuYWxUeXBlICZUeXBlLAorLSAg ICAgICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkgY29uc3Qgbm9leGNlcHQgeworKyAgdGVt cGxhdGUgPHR5cGVuYW1lIEZtdEN0eD4KKysgIGF1dG8gZm9ybWF0KGNvbnN0IFdhc21FZGdlOjpF eHRlcm5hbFR5cGUgJlR5cGUsCisrICAgICAgICAgRm10Q3R4ICZDdHgpIFdBU01FREdFX0ZNVF9D T05TVCBub2V4Y2VwdCAtPiBkZWNsdHlwZShDdHgub3V0KCkpIHsKKyAgICAgcmV0dXJuIGZvcm1h dHRlcjxzdGQ6OnN0cmluZ192aWV3Pjo6Zm9ybWF0KFdhc21FZGdlOjpFeHRlcm5hbFR5cGVTdHJb VHlwZV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD dHgpOworICAgfQorZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29tbW9uL2VycmNvZGUuaCBiL2luY2x1 ZGUvY29tbW9uL2VycmNvZGUuaAoraW5kZXggMjY2MWM1MjA3Li4yZTVmODY4OGQgMTAwNjQ0Cist LS0gYS9pbmNsdWRlL2NvbW1vbi9lcnJjb2RlLmgKKysrKyBiL2luY2x1ZGUvY29tbW9uL2VycmNv ZGUuaAorQEAgLTYwLDkgKzYwLDkgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBh dXRvIFVuZXhwZWN0KGNvbnN0IEV4cGVjdDxUPiAmVmFsKSB7CisgCisgdGVtcGxhdGUgPD4KKyBz dHJ1Y3QgZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6OkVyckNvZGU+IDogZm10Ojpmb3JtYXR0ZXI8 c3RkOjpzdHJpbmdfdmlldz4geworLSAgZm10Ojpmb3JtYXRfY29udGV4dDo6aXRlcmF0b3IKKy0g IGZvcm1hdChjb25zdCBXYXNtRWRnZTo6RXJyQ29kZSAmQ29kZSwKKy0gICAgICAgICBmbXQ6OmZv cm1hdF9jb250ZXh0ICZDdHgpIGNvbnN0IG5vZXhjZXB0IHsKKysgIHRlbXBsYXRlIDx0eXBlbmFt ZSBGbXRDdHg+CisrICBhdXRvIGZvcm1hdChjb25zdCBXYXNtRWRnZTo6RXJyQ29kZSAmQ29kZSwK KysgICAgICAgICBGbXRDdHggJkN0eCkgV0FTTUVER0VfRk1UX0NPTlNUIG5vZXhjZXB0IC0+IGRl Y2x0eXBlKEN0eC5vdXQoKSkgeworICAgICB1c2luZyBuYW1lc3BhY2Ugc3RkOjpsaXRlcmFsczsK KyAgICAgc3RkOjpzdHJpbmcgT3V0cHV0ID0KKyAgICAgICAgIGZtdDo6Zm9ybWF0KCJ7fSBmYWls ZWQ6IHt9LCBDb2RlOiAweHs6MDN4fSJzdiwgQ29kZS5nZXRFcnJDb2RlUGhhc2UoKSwKK0BAIC03 NCw5ICs3NCw5IEBAIHN0cnVjdCBmbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6RXJyQ29kZT4gOiBm bXQ6OmZvcm1hdHRlcjxzdGQ6OnN0cmluZ192aWV3PiB7CisgdGVtcGxhdGUgPD4KKyBzdHJ1Y3Qg Zm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6OkVyckNvZGU6OlZhbHVlPgorICAgICA6IGZtdDo6Zm9y bWF0dGVyPFdhc21FZGdlOjpFcnJDb2RlPiB7CistICBmbXQ6OmZvcm1hdF9jb250ZXh0OjppdGVy YXRvcgorLSAgZm9ybWF0KGNvbnN0IFdhc21FZGdlOjpFcnJDb2RlOjpWYWx1ZSAmVmFsdWUsCist ICAgICAgICAgZm10Ojpmb3JtYXRfY29udGV4dCAmQ3R4KSBjb25zdCBub2V4Y2VwdCB7CisrICB0 ZW1wbGF0ZSA8dHlwZW5hbWUgRm10Q3R4PgorKyAgYXV0byBmb3JtYXQoY29uc3QgV2FzbUVkZ2U6 OkVyckNvZGU6OlZhbHVlICZWYWx1ZSwKKysgICAgICAgICBGbXRDdHggJkN0eCkgV0FTTUVER0Vf Rk1UX0NPTlNUIG5vZXhjZXB0IC0+IGRlY2x0eXBlKEN0eC5vdXQoKSkgeworICAgICByZXR1cm4g Zm9ybWF0dGVyPFdhc21FZGdlOjpFcnJDb2RlPjo6Zm9ybWF0KFdhc21FZGdlOjpFcnJDb2RlKFZh bHVlKSwgQ3R4KTsKKyAgIH0KKyB9OworZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29tbW9uL2Vycmlu Zm8uaCBiL2luY2x1ZGUvY29tbW9uL2VycmluZm8uaAoraW5kZXggMjUxYTg1MjE1Li4xMTc2YTM5 NDggMTAwNjQ0CistLS0gYS9pbmNsdWRlL2NvbW1vbi9lcnJpbmZvLmgKKysrKyBiL2luY2x1ZGUv Y29tbW9uL2VycmluZm8uaAorQEAgLTI3MCw5NCArMjcwLDk0IEBAIHRlbXBsYXRlIDw+Cisgc3Ry dWN0IGZtdDo6Zm9ybWF0dGVyPFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvRmlsZT4KKyAgICAgOiBm bXQ6OmZvcm1hdHRlcjxzdGQ6OnN0cmluZ192aWV3PiB7CisgICBmbXQ6OmZvcm1hdF9jb250ZXh0 OjppdGVyYXRvciBmb3JtYXQoY29uc3QgV2FzbUVkZ2U6OkVyckluZm86OkluZm9GaWxlICZJbmZv LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZtdDo6Zm9ybWF0X2Nv bnRleHQgJkN0eCkgY29uc3Qgbm9leGNlcHQ7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZm10Ojpmb3JtYXRfY29udGV4dCAmQ3R4KSBXQVNNRURHRV9GTVRfQ09OU1Qg bm9leGNlcHQ7CisgfTsKKyB0ZW1wbGF0ZSA8PgorIHN0cnVjdCBmbXQ6OmZvcm1hdHRlcjxXYXNt RWRnZTo6RXJySW5mbzo6SW5mb0xvYWRpbmc+CisgICAgIDogZm10Ojpmb3JtYXR0ZXI8c3RkOjpz dHJpbmdfdmlldz4geworICAgZm10Ojpmb3JtYXRfY29udGV4dDo6aXRlcmF0b3IKKyAgIGZvcm1h dChjb25zdCBXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0xvYWRpbmcgJkluZm8sCistICAgICAgICAg Zm10Ojpmb3JtYXRfY29udGV4dCAmQ3R4KSBjb25zdCBub2V4Y2VwdDsKKysgICAgICAgICBmbXQ6 OmZvcm1hdF9jb250ZXh0ICZDdHgpIFdBU01FREdFX0ZNVF9DT05TVCBub2V4Y2VwdDsKKyB9Owor IHRlbXBsYXRlIDw+Cisgc3RydWN0IGZtdDo6Zm9ybWF0dGVyPFdhc21FZGdlOjpFcnJJbmZvOjpJ bmZvQVNUPgorICAgICA6IGZtdDo6Zm9ybWF0dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+IHsKKyAgIGZt dDo6Zm9ybWF0X2NvbnRleHQ6Oml0ZXJhdG9yIGZvcm1hdChjb25zdCBXYXNtRWRnZTo6RXJySW5m bzo6SW5mb0FTVCAmSW5mbywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmbXQ6OmZvcm1hdF9jb250ZXh0ICZDdHgpIGNvbnN0IG5vZXhjZXB0OworKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkgV0FT TUVER0VfRk1UX0NPTlNUIG5vZXhjZXB0OworIH07CisgdGVtcGxhdGUgPD4KKyBzdHJ1Y3QgZm10 Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6OkVyckluZm86OkluZm9JbnN0YW5jZUJvdW5kPgorICAgICA6 IGZtdDo6Zm9ybWF0dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+IHsKKyAgIGZtdDo6Zm9ybWF0X2NvbnRl eHQ6Oml0ZXJhdG9yCisgICBmb3JtYXQoY29uc3QgV2FzbUVkZ2U6OkVyckluZm86OkluZm9JbnN0 YW5jZUJvdW5kICZJbmZvLAorLSAgICAgICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkgY29u c3Qgbm9leGNlcHQ7CisrICAgICAgICAgZm10Ojpmb3JtYXRfY29udGV4dCAmQ3R4KSBXQVNNRURH RV9GTVRfQ09OU1Qgbm9leGNlcHQ7CisgfTsKKyB0ZW1wbGF0ZSA8PgorIHN0cnVjdCBmbXQ6OmZv cm1hdHRlcjxXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0ZvcmJpZEluZGV4PgorICAgICA6IGZtdDo6 Zm9ybWF0dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+IHsKKyAgIGZtdDo6Zm9ybWF0X2NvbnRleHQ6Oml0 ZXJhdG9yCisgICBmb3JtYXQoY29uc3QgV2FzbUVkZ2U6OkVyckluZm86OkluZm9Gb3JiaWRJbmRl eCAmSW5mbywKKy0gICAgICAgICBmbXQ6OmZvcm1hdF9jb250ZXh0ICZDdHgpIGNvbnN0IG5vZXhj ZXB0OworKyAgICAgICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkgV0FTTUVER0VfRk1UX0NP TlNUIG5vZXhjZXB0OworIH07CisgdGVtcGxhdGUgPD4KKyBzdHJ1Y3QgZm10Ojpmb3JtYXR0ZXI8 V2FzbUVkZ2U6OkVyckluZm86OkluZm9FeHBvcnRpbmc+CisgICAgIDogZm10Ojpmb3JtYXR0ZXI8 c3RkOjpzdHJpbmdfdmlldz4geworICAgZm10Ojpmb3JtYXRfY29udGV4dDo6aXRlcmF0b3IKKyAg IGZvcm1hdChjb25zdCBXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0V4cG9ydGluZyAmSW5mbywKKy0g ICAgICAgICBmbXQ6OmZvcm1hdF9jb250ZXh0ICZDdHgpIGNvbnN0IG5vZXhjZXB0OworKyAgICAg ICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkgV0FTTUVER0VfRk1UX0NPTlNUIG5vZXhjZXB0 OworIH07CisgdGVtcGxhdGUgPD4KKyBzdHJ1Y3QgZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6OkVy ckluZm86OkluZm9MaW1pdD4KKyAgICAgOiBmbXQ6OmZvcm1hdHRlcjxzdGQ6OnN0cmluZ192aWV3 PiB7CisgICBmbXQ6OmZvcm1hdF9jb250ZXh0OjppdGVyYXRvciBmb3JtYXQoY29uc3QgV2FzbUVk Z2U6OkVyckluZm86OkluZm9MaW1pdCAmSW5mbywKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmbXQ6OmZvcm1hdF9jb250ZXh0ICZDdHgpIGNvbnN0IG5vZXhjZXB0Owor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZtdDo6Zm9ybWF0X2NvbnRl eHQgJkN0eCkgV0FTTUVER0VfRk1UX0NPTlNUIG5vZXhjZXB0OworIH07CisgdGVtcGxhdGUgPD4K KyBzdHJ1Y3QgZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6OkVyckluZm86OkluZm9SZWdpc3Rlcmlu Zz4KKyAgICAgOiBmbXQ6OmZvcm1hdHRlcjxzdGQ6OnN0cmluZ192aWV3PiB7CisgICBmbXQ6OmZv cm1hdF9jb250ZXh0OjppdGVyYXRvcgorICAgZm9ybWF0KGNvbnN0IFdhc21FZGdlOjpFcnJJbmZv OjpJbmZvUmVnaXN0ZXJpbmcgJkluZm8sCistICAgICAgICAgZm10Ojpmb3JtYXRfY29udGV4dCAm Q3R4KSBjb25zdCBub2V4Y2VwdDsKKysgICAgICAgICBmbXQ6OmZvcm1hdF9jb250ZXh0ICZDdHgp IFdBU01FREdFX0ZNVF9DT05TVCBub2V4Y2VwdDsKKyB9OworIHRlbXBsYXRlIDw+Cisgc3RydWN0 IGZtdDo6Zm9ybWF0dGVyPFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvTGlua2luZz4KKyAgICAgOiBm bXQ6OmZvcm1hdHRlcjxzdGQ6OnN0cmluZ192aWV3PiB7CisgICBmbXQ6OmZvcm1hdF9jb250ZXh0 OjppdGVyYXRvcgorICAgZm9ybWF0KGNvbnN0IFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvTGlua2lu ZyAmSW5mbywKKy0gICAgICAgICBmbXQ6OmZvcm1hdF9jb250ZXh0ICZDdHgpIGNvbnN0IG5vZXhj ZXB0OworKyAgICAgICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkgV0FTTUVER0VfRk1UX0NP TlNUIG5vZXhjZXB0OworIH07CisgdGVtcGxhdGUgPD4KKyBzdHJ1Y3QgZm10Ojpmb3JtYXR0ZXI8 V2FzbUVkZ2U6OkVyckluZm86OkluZm9FeGVjdXRpbmc+CisgICAgIDogZm10Ojpmb3JtYXR0ZXI8 c3RkOjpzdHJpbmdfdmlldz4geworICAgZm10Ojpmb3JtYXRfY29udGV4dDo6aXRlcmF0b3IKKyAg IGZvcm1hdChjb25zdCBXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0V4ZWN1dGluZyAmSW5mbywKKy0g ICAgICAgICBmbXQ6OmZvcm1hdF9jb250ZXh0ICZDdHgpIGNvbnN0IG5vZXhjZXB0OworKyAgICAg ICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkgV0FTTUVER0VfRk1UX0NPTlNUIG5vZXhjZXB0 OworIH07CisgdGVtcGxhdGUgPD4KKyBzdHJ1Y3QgZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6OkVy ckluZm86OkluZm9NaXNtYXRjaD4KKyAgICAgOiBmbXQ6OmZvcm1hdHRlcjxzdGQ6OnN0cmluZ192 aWV3PiB7CisgICBmbXQ6OmZvcm1hdF9jb250ZXh0OjppdGVyYXRvcgorICAgZm9ybWF0KGNvbnN0 IFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvTWlzbWF0Y2ggJkluZm8sCistICAgICAgICAgZm10Ojpm b3JtYXRfY29udGV4dCAmQ3R4KSBjb25zdCBub2V4Y2VwdDsKKysgICAgICAgICBmbXQ6OmZvcm1h dF9jb250ZXh0ICZDdHgpIFdBU01FREdFX0ZNVF9DT05TVCBub2V4Y2VwdDsKKyB9OworIHRlbXBs YXRlIDw+Cisgc3RydWN0IGZtdDo6Zm9ybWF0dGVyPFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvSW5z dHJ1Y3Rpb24+CisgICAgIDogZm10Ojpmb3JtYXR0ZXI8c3RkOjpzdHJpbmdfdmlldz4geworICAg Zm10Ojpmb3JtYXRfY29udGV4dDo6aXRlcmF0b3IKKyAgIGZvcm1hdChjb25zdCBXYXNtRWRnZTo6 RXJySW5mbzo6SW5mb0luc3RydWN0aW9uICZJbmZvLAorLSAgICAgICAgIGZtdDo6Zm9ybWF0X2Nv bnRleHQgJkN0eCkgY29uc3Qgbm9leGNlcHQ7CisrICAgICAgICAgZm10Ojpmb3JtYXRfY29udGV4 dCAmQ3R4KSBXQVNNRURHRV9GTVRfQ09OU1Qgbm9leGNlcHQ7CisgfTsKKyB0ZW1wbGF0ZSA8Pgor IHN0cnVjdCBmbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0JvdW5kYXJ5Pgor ICAgICA6IGZtdDo6Zm9ybWF0dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+IHsKKyAgIGZtdDo6Zm9ybWF0 X2NvbnRleHQ6Oml0ZXJhdG9yCisgICBmb3JtYXQoY29uc3QgV2FzbUVkZ2U6OkVyckluZm86Oklu Zm9Cb3VuZGFyeSAmSW5mbywKKy0gICAgICAgICBmbXQ6OmZvcm1hdF9jb250ZXh0ICZDdHgpIGNv bnN0IG5vZXhjZXB0OworKyAgICAgICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkgV0FTTUVE R0VfRk1UX0NPTlNUIG5vZXhjZXB0OworIH07CisgdGVtcGxhdGUgPD4KKyBzdHJ1Y3QgZm10Ojpm b3JtYXR0ZXI8V2FzbUVkZ2U6OkVyckluZm86OkluZm9Qcm9wb3NhbD4KKyAgICAgOiBmbXQ6OmZv cm1hdHRlcjxzdGQ6OnN0cmluZ192aWV3PiB7CisgICBmbXQ6OmZvcm1hdF9jb250ZXh0OjppdGVy YXRvcgorICAgZm9ybWF0KGNvbnN0IFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvUHJvcG9zYWwgJklu Zm8sCistICAgICAgICAgZm10Ojpmb3JtYXRfY29udGV4dCAmQ3R4KSBjb25zdCBub2V4Y2VwdDsK KysgICAgICAgICBmbXQ6OmZvcm1hdF9jb250ZXh0ICZDdHgpIFdBU01FREdFX0ZNVF9DT05TVCBu b2V4Y2VwdDsKKyB9OworZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29tbW9uL2ludDEyOC5oIGIvaW5j bHVkZS9jb21tb24vaW50MTI4LmgKK2luZGV4IDQwZjQ5ZTcyNy4uNzFhMmI3MTMzIDEwMDY0NAor LS0tIGEvaW5jbHVkZS9jb21tb24vaW50MTI4LmgKKysrKyBiL2luY2x1ZGUvY29tbW9uL2ludDEy OC5oCitAQCAtNTU0LDcgKzU1NCwxNCBAQCB1c2luZyB1aW50MTI4X3QgPSB1aW50MTI4OworIAor ICNpbmNsdWRlIDxmbXQvZm9ybWF0Lmg+CisgCisrI2lmIEZNVF9WRVJTSU9OID49IDgwMDAwCisr I2RlZmluZSBXQVNNRURHRV9GTVRfQ09OU1QgY29uc3QKKysjZWxzZQorKyNkZWZpbmUgV0FTTUVE R0VfRk1UX0NPTlNUCisrI2VuZGlmCisrCisgRk1UX0JFR0lOX05BTUVTUEFDRQorKyNpZiBGTVRf VkVSU0lPTiA+PSA5MDAwMAorIG5hbWVzcGFjZSBkZXRhaWwgeworIGlubGluZSBjb25zdGV4cHIg Ym9vbCBvcGVyYXRvcj49KGRldGFpbDo6dWludDEyOF9mYWxsYmFjayBMSFMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IFJIUykgeworQEAgLTY2OCw3ICs2 NzUsOSBAQCBGTVRfQ09OU1RFWFBSMjAgaW5saW5lIGludCBjb3VudF9kaWdpdHMoZGV0YWlsOjp1 aW50MTI4X2ZhbGxiYWNrIE4pIHsKKyB9CisgCisgfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisrI2Vu ZGlmCisgCisrI2lmIEZNVF9WRVJTSU9OID49IDgwMDAwCisgdGVtcGxhdGUgPHR5cGVuYW1lIENo YXI+IHN0cnVjdCBmb3JtYXR0ZXI8V2FzbUVkZ2U6OnVpbnQxMjgsIENoYXI+IHsKKyBwcml2YXRl OgorICAgZGV0YWlsOjpkeW5hbWljX2Zvcm1hdF9zcGVjczxDaGFyPiBTcGVjczsKK0BAIC03MTMs NCArNzIyLDI3IEBAIHB1YmxpYzoKKyAjZW5kaWYKKyAgIH0KKyB9OworKyNlbHNlCisrdGVtcGxh dGUgPHR5cGVuYW1lIENoYXI+IHN0cnVjdCBmb3JtYXR0ZXI8V2FzbUVkZ2U6OnVpbnQxMjgsIENo YXI+IHsKKysgIHRlbXBsYXRlIDx0eXBlbmFtZSBQYXJzZUNvbnRleHQ+CisrICBjb25zdGV4cHIg YXV0byBwYXJzZShQYXJzZUNvbnRleHQgJkN0eCkgLT4gZGVjbHR5cGUoQ3R4LmJlZ2luKCkpIHsK KysgICAgcmV0dXJuIEN0eC5iZWdpbigpOworKyAgfQorKyAgdGVtcGxhdGUgPHR5cGVuYW1lIEZv cm1hdENvbnRleHQ+CisrICBhdXRvIGZvcm1hdChXYXNtRWRnZTo6dWludDEyOCBWLCBGb3JtYXRD b250ZXh0ICZDdHgpIC0+IGRlY2x0eXBlKEN0eC5vdXQoKSkgeworKyAgICBjaGFyIEJ1Zls0MF07 CisrICAgIGNoYXIgKlBvcyA9IEJ1ZiArIHNpemVvZihCdWYpOworKyAgICBjb25zdCBXYXNtRWRn ZTo6dWludDEyOCBUZW4oMTBVKTsKKysgICAgZG8geworKyAgICAgICotLVBvcyA9IHN0YXRpY19j YXN0PGNoYXI+KCcwJyArIChWICUgVGVuKS5sb3coKSk7CisrICAgICAgViAvPSBUZW47CisrICAg IH0gd2hpbGUgKFYgIT0gV2FzbUVkZ2U6OnVpbnQxMjgoMFUpKTsKKysgICAgYXV0byBPdXQgPSBD dHgub3V0KCk7CisrICAgIGZvciAoY29uc3QgY2hhciAqSXQgPSBQb3M7IEl0ICE9IEJ1ZiArIHNp emVvZihCdWYpOyArK0l0KSB7CisrICAgICAgKk91dCsrID0gKkl0OworKyAgICB9CisrICAgIHJl dHVybiBPdXQ7CisrICB9CisrfTsKKysjZW5kaWYKKyBGTVRfRU5EX05BTUVTUEFDRQorZGlmZiAt LWdpdCBhL2luY2x1ZGUvY29tbW9uL3NwZGxvZy5oIGIvaW5jbHVkZS9jb21tb24vc3BkbG9nLmgK K2luZGV4IGM5NDkzMWM1NS4uNWM4MGJlMjY5IDEwMDY0NAorLS0tIGEvaW5jbHVkZS9jb21tb24v c3BkbG9nLmgKKysrKyBiL2luY2x1ZGUvY29tbW9uL3NwZGxvZy5oCitAQCAtNDksOCArNDksOSBA QCB2b2lkIHNldExvZ2dpbmdDYWxsYmFjaygKKyB0ZW1wbGF0ZSA8PgorIHN0cnVjdCBmbXQ6OmZv cm1hdHRlcjxzdGQ6OmZpbGVzeXN0ZW06OnBhdGg+CisgICAgIDogZm10Ojpmb3JtYXR0ZXI8c3Rk OjpzdHJpbmdfdmlldz4geworLSAgZm10Ojpmb3JtYXRfY29udGV4dDo6aXRlcmF0b3IgZm9ybWF0 KGNvbnN0IHN0ZDo6ZmlsZXN5c3RlbTo6cGF0aCAmUGF0aCwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmbXQ6OmZvcm1hdF9jb250ZXh0ICZDdHgpIGNvbnN0IHsKKysg IHRlbXBsYXRlIDx0eXBlbmFtZSBGbXRDdHg+CisrICBhdXRvIGZvcm1hdChjb25zdCBzdGQ6OmZp bGVzeXN0ZW06OnBhdGggJlBhdGgsCisrICAgICAgICAgICAgICBGbXRDdHggJkN0eCkgV0FTTUVE R0VfRk1UX0NPTlNUIC0+IGRlY2x0eXBlKEN0eC5vdXQoKSkgeworICAgICAvLyBtaW1pYyBzdGQ6 OnF1b3RlZAorICAgICBjb25zdGV4cHIgY29uc3QgY2hhciBEZWxpbWl0ZXIgPSAnIic7CisgICAg IGNvbnN0ZXhwciBjb25zdCBjaGFyIEVzY2FwZSA9ICdcXCc7CitkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9jb21tb24vdHlwZXMuaCBiL2luY2x1ZGUvY29tbW9uL3R5cGVzLmgKK2luZGV4IGRlNWQyMzc2 NC4uMTg4YTBhNThhIDEwMDY0NAorLS0tIGEvaW5jbHVkZS9jb21tb24vdHlwZXMuaAorKysrIGIv aW5jbHVkZS9jb21tb24vdHlwZXMuaAorQEAgLTc4OCw5ICs3ODgsOSBAQCBwcml2YXRlOgorIAor IHRlbXBsYXRlIDw+Cisgc3RydWN0IGZtdDo6Zm9ybWF0dGVyPFdhc21FZGdlOjpWYWxUeXBlPiA6 IGZtdDo6Zm9ybWF0dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+IHsKKy0gIGZtdDo6Zm9ybWF0X2NvbnRl eHQ6Oml0ZXJhdG9yCistICBmb3JtYXQoY29uc3QgV2FzbUVkZ2U6OlZhbFR5cGUgJlR5cGUsCist ICAgICAgICAgZm10Ojpmb3JtYXRfY29udGV4dCAmQ3R4KSBjb25zdCBub2V4Y2VwdCB7CisrICB0 ZW1wbGF0ZSA8dHlwZW5hbWUgRm10Q3R4PgorKyAgYXV0byBmb3JtYXQoY29uc3QgV2FzbUVkZ2U6 OlZhbFR5cGUgJlR5cGUsCisrICAgICAgICAgICAgICBGbXRDdHggJkN0eCkgV0FTTUVER0VfRk1U X0NPTlNUIG5vZXhjZXB0IC0+IGRlY2x0eXBlKEN0eC5vdXQoKSkgeworICAgICB1c2luZyBuYW1l c3BhY2Ugc3RkOjpsaXRlcmFsczsKKyAgICAgLy8gRm9yIHRoZSBudW1iZXIgdHlwZXMsIHByaW50 IHRoZSB0eXBlIGRpcmVjdGx5LgorICAgICBpZiAoIVR5cGUuaXNSZWZUeXBlKCkpIHsKK2RpZmYg LS1naXQgYS9pbmNsdWRlL2hvc3Qvd2FzaS9lcnJvci5oIGIvaW5jbHVkZS9ob3N0L3dhc2kvZXJy b3IuaAoraW5kZXggN2ZmMTgxYmUyLi42ZjBiZGExMDIgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2hv c3Qvd2FzaS9lcnJvci5oCisrKysgYi9pbmNsdWRlL2hvc3Qvd2FzaS9lcnJvci5oCitAQCAtMjks OCArMjksOCBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY29uc3RleHByIGF1dG8gV2FzaVVuZXhw ZWN0KGNvbnN0IFdhc2lFeHBlY3Q8VD4gJlZhbCkgeworIAorIHRlbXBsYXRlIDw+Cisgc3RydWN0 IGZtdDo6Zm9ybWF0dGVyPF9fd2FzaV9lcnJub190PiA6IGZtdDo6Zm9ybWF0dGVyPHN0ZDo6c3Ry aW5nX3ZpZXc+IHsKKy0gIGZtdDo6Zm9ybWF0X2NvbnRleHQ6Oml0ZXJhdG9yCistICBmb3JtYXQo X193YXNpX2Vycm5vX3QgRXJyTm8sIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkgY29uc3Qgbm9l eGNlcHQgeworKyAgdGVtcGxhdGUgPHR5cGVuYW1lIEZtdEN0eD4KKysgIGF1dG8gZm9ybWF0KF9f d2FzaV9lcnJub190IEVyck5vLCBGbXRDdHggJkN0eCkgV0FTTUVER0VfRk1UX0NPTlNUIG5vZXhj ZXB0IC0+IGRlY2x0eXBlKEN0eC5vdXQoKSkgeworICAgICBmbXQ6Om1lbW9yeV9idWZmZXIgQnVm ZmVyOworICAgICB1c2luZyBuYW1lc3BhY2Ugc3RkOjpsaXRlcmFsczsKKyAgICAgYXV0byBJdGVy ID0gc3RkOjpiYWNrX2luc2VydGVyKEJ1ZmZlcik7CitkaWZmIC0tZ2l0IGEvbGliL2NvbW1vbi9l cnJpbmZvLmNwcCBiL2xpYi9jb21tb24vZXJyaW5mby5jcHAKK2luZGV4IDcxNDAwNjQyZC4uMjdk NGFhYmQ0IDEwMDY0NAorLS0tIGEvbGliL2NvbW1vbi9lcnJpbmZvLmNwcAorKysrIGIvbGliL2Nv bW1vbi9lcnJpbmZvLmNwcAorQEAgLTcsMTQgKzcsMTggQEAKKyAjaW5jbHVkZSAiY29tbW9uL2lu dDEyOC5oIgorIAorICNpbmNsdWRlIDxzcGRsb2cvZm10L2ZtdC5oPgorKyNpZiBfX2hhc19pbmNs dWRlKDxzcGRsb2cvZm10L3Jhbmdlcy5oPikKKyAjaW5jbHVkZSA8c3BkbG9nL2ZtdC9yYW5nZXMu aD4KKysjZWxzZQorKyNpbmNsdWRlIDxmbXQvcmFuZ2VzLmg+CisrI2VuZGlmCisgCisgdXNpbmcg bmFtZXNwYWNlIHN0ZDo6bGl0ZXJhbHM7CisgCisgZm10Ojpmb3JtYXRfY29udGV4dDo6aXRlcmF0 b3IKKyBmbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0ZpbGU+Ojpmb3JtYXQo CisgICAgIGNvbnN0IFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvRmlsZSAmSW5mbywKKy0gICAgZm10 Ojpmb3JtYXRfY29udGV4dCAmQ3R4KSBjb25zdCBub2V4Y2VwdCB7CisrICAgIGZtdDo6Zm9ybWF0 X2NvbnRleHQgJkN0eCkgV0FTTUVER0VfRk1UX0NPTlNUIG5vZXhjZXB0IHsKKyAgIGZtdDo6bWVt b3J5X2J1ZmZlciBCdWZmZXI7CisgICBmbXQ6OmZvcm1hdF90byhzdGQ6OmJhY2tfaW5zZXJ0ZXIo QnVmZmVyKSwgIiAgICBGaWxlIG5hbWU6IHt9InN2LAorICAgICAgICAgICAgICAgICAgSW5mby5G aWxlTmFtZSk7CitAQCAtMjUsNyArMjksNyBAQCBmbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6RXJy SW5mbzo6SW5mb0ZpbGU+Ojpmb3JtYXQoCisgZm10Ojpmb3JtYXRfY29udGV4dDo6aXRlcmF0b3IK KyBmbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0xvYWRpbmc+Ojpmb3JtYXQo CisgICAgIGNvbnN0IFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvTG9hZGluZyAmSW5mbywKKy0gICAg Zm10Ojpmb3JtYXRfY29udGV4dCAmQ3R4KSBjb25zdCBub2V4Y2VwdCB7CisrICAgIGZtdDo6Zm9y bWF0X2NvbnRleHQgJkN0eCkgV0FTTUVER0VfRk1UX0NPTlNUIG5vZXhjZXB0IHsKKyAgIGZtdDo6 bWVtb3J5X2J1ZmZlciBCdWZmZXI7CisgICBmbXQ6OmZvcm1hdF90byhzdGQ6OmJhY2tfaW5zZXJ0 ZXIoQnVmZmVyKSwgIiAgICBCeXRlY29kZSBvZmZzZXQ6IDB4ezowOHh9InN2LAorICAgICAgICAg ICAgICAgICAgSW5mby5PZmZzZXQpOworQEAgLTM2LDcgKzQwLDcgQEAgZm10Ojpmb3JtYXR0ZXI8 V2FzbUVkZ2U6OkVyckluZm86OkluZm9Mb2FkaW5nPjo6Zm9ybWF0KAorIGZtdDo6Zm9ybWF0X2Nv bnRleHQ6Oml0ZXJhdG9yCisgZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6OkVyckluZm86OkluZm9B U1Q+Ojpmb3JtYXQoCisgICAgIGNvbnN0IFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvQVNUICZJbmZv LAorLSAgICBmbXQ6OmZvcm1hdF9jb250ZXh0ICZDdHgpIGNvbnN0IG5vZXhjZXB0IHsKKysgICAg Zm10Ojpmb3JtYXRfY29udGV4dCAmQ3R4KSBXQVNNRURHRV9GTVRfQ09OU1Qgbm9leGNlcHQgewor ICAgZm10OjptZW1vcnlfYnVmZmVyIEJ1ZmZlcjsKKyAgIGZtdDo6Zm9ybWF0X3RvKHN0ZDo6YmFj a19pbnNlcnRlcihCdWZmZXIpLCAiICAgIEF0IEFTVCBub2RlOiB7fSJzdiwKKyAgICAgICAgICAg ICAgICAgIEluZm8uTm9kZUF0dHIpOworQEAgLTQ3LDcgKzUxLDcgQEAgZm10Ojpmb3JtYXR0ZXI8 V2FzbUVkZ2U6OkVyckluZm86OkluZm9BU1Q+Ojpmb3JtYXQoCisgZm10Ojpmb3JtYXRfY29udGV4 dDo6aXRlcmF0b3IKKyBmbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0luc3Rh bmNlQm91bmQ+Ojpmb3JtYXQoCisgICAgIGNvbnN0IFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvSW5z dGFuY2VCb3VuZCAmSW5mbywKKy0gICAgZm10Ojpmb3JtYXRfY29udGV4dCAmQ3R4KSBjb25zdCBu b2V4Y2VwdCB7CisrICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkgV0FTTUVER0VfRk1UX0NP TlNUIG5vZXhjZXB0IHsKKyAgIGZtdDo6bWVtb3J5X2J1ZmZlciBCdWZmZXI7CisgICBmbXQ6OmZv cm1hdF90byhzdGQ6OmJhY2tfaW5zZXJ0ZXIoQnVmZmVyKSwKKyAgICAgICAgICAgICAgICAgICIg ICAgSW5zdGFuY2Uge30gaGFzIGxpbWl0ZWQgbnVtYmVyIHt9ICwgR290OiB7fSJzdiwKK0BAIC01 OSw3ICs2Myw3IEBAIGZtdDo6Zm9ybWF0dGVyPFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvSW5zdGFu Y2VCb3VuZD46OmZvcm1hdCgKKyBmbXQ6OmZvcm1hdF9jb250ZXh0OjppdGVyYXRvcgorIGZtdDo6 Zm9ybWF0dGVyPFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvRm9yYmlkSW5kZXg+Ojpmb3JtYXQoCisg ICAgIGNvbnN0IFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvRm9yYmlkSW5kZXggJkluZm8sCistICAg IGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkgY29uc3Qgbm9leGNlcHQgeworKyAgICBmbXQ6OmZv cm1hdF9jb250ZXh0ICZDdHgpIFdBU01FREdFX0ZNVF9DT05TVCBub2V4Y2VwdCB7CisgICBmbXQ6 Om1lbW9yeV9idWZmZXIgQnVmZmVyOworICAgYXV0byBJdGVyID0KKyAgICAgICBmbXQ6OmZvcm1h dF90byhzdGQ6OmJhY2tfaW5zZXJ0ZXIoQnVmZmVyKSwKK0BAIC03Nyw3ICs4MSw3IEBAIGZtdDo6 Zm9ybWF0dGVyPFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvRm9yYmlkSW5kZXg+Ojpmb3JtYXQoCisg Zm10Ojpmb3JtYXRfY29udGV4dDo6aXRlcmF0b3IKKyBmbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6 RXJySW5mbzo6SW5mb0V4cG9ydGluZz46OmZvcm1hdCgKKyAgICAgY29uc3QgV2FzbUVkZ2U6OkVy ckluZm86OkluZm9FeHBvcnRpbmcgJkluZm8sCistICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0 eCkgY29uc3Qgbm9leGNlcHQgeworKyAgICBmbXQ6OmZvcm1hdF9jb250ZXh0ICZDdHgpIFdBU01F REdFX0ZNVF9DT05TVCBub2V4Y2VwdCB7CisgICBmbXQ6Om1lbW9yeV9idWZmZXIgQnVmZmVyOwor ICAgZm10Ojpmb3JtYXRfdG8oc3RkOjpiYWNrX2luc2VydGVyKEJ1ZmZlciksCisgICAgICAgICAg ICAgICAgICAiICAgIER1cGxpY2F0ZWQgZXhwb3J0aW5nIG5hbWU6IFwie31cIiJzdiwgSW5mby5F eHROYW1lKTsKK0BAIC04OCw3ICs5Miw3IEBAIGZtdDo6Zm9ybWF0dGVyPFdhc21FZGdlOjpFcnJJ bmZvOjpJbmZvRXhwb3J0aW5nPjo6Zm9ybWF0KAorIGZtdDo6Zm9ybWF0X2NvbnRleHQ6Oml0ZXJh dG9yCisgZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6OkVyckluZm86OkluZm9MaW1pdD46OmZvcm1h dCgKKyAgICAgY29uc3QgV2FzbUVkZ2U6OkVyckluZm86OkluZm9MaW1pdCAmSW5mbywKKy0gICAg Zm10Ojpmb3JtYXRfY29udGV4dCAmQ3R4KSBjb25zdCBub2V4Y2VwdCB7CisrICAgIGZtdDo6Zm9y bWF0X2NvbnRleHQgJkN0eCkgV0FTTUVER0VfRk1UX0NPTlNUIG5vZXhjZXB0IHsKKyAgIGZtdDo6 bWVtb3J5X2J1ZmZlciBCdWZmZXI7CisgICBhdXRvIEl0ZXIgPSBmbXQ6OmZvcm1hdF90byhzdGQ6 OmJhY2tfaW5zZXJ0ZXIoQnVmZmVyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIg ICAgSW4gTGltaXQgdHlwZToge3sgbWluOiB7fSJzdiwgSW5mby5MaW1NaW4pOworQEAgLTEwMyw3 ICsxMDcsNyBAQCBmbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0xpbWl0Pjo6 Zm9ybWF0KAorIGZtdDo6Zm9ybWF0X2NvbnRleHQ6Oml0ZXJhdG9yCisgZm10Ojpmb3JtYXR0ZXI8 V2FzbUVkZ2U6OkVyckluZm86OkluZm9SZWdpc3RlcmluZz46OmZvcm1hdCgKKyAgICAgY29uc3Qg V2FzbUVkZ2U6OkVyckluZm86OkluZm9SZWdpc3RlcmluZyAmSW5mbywKKy0gICAgZm10Ojpmb3Jt YXRfY29udGV4dCAmQ3R4KSBjb25zdCBub2V4Y2VwdCB7CisrICAgIGZtdDo6Zm9ybWF0X2NvbnRl eHQgJkN0eCkgV0FTTUVER0VfRk1UX0NPTlNUIG5vZXhjZXB0IHsKKyAgIGZtdDo6bWVtb3J5X2J1 ZmZlciBCdWZmZXI7CisgICBmbXQ6OmZvcm1hdF90byhzdGQ6OmJhY2tfaW5zZXJ0ZXIoQnVmZmVy KSwgIiAgICBNb2R1bGUgbmFtZTogXCJ7fVwiInN2LAorICAgICAgICAgICAgICAgICAgSW5mby5N b2ROYW1lKTsKK0BAIC0xMTQsNyArMTE4LDcgQEAgZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6OkVy ckluZm86OkluZm9SZWdpc3RlcmluZz46OmZvcm1hdCgKKyBmbXQ6OmZvcm1hdF9jb250ZXh0Ojpp dGVyYXRvcgorIGZtdDo6Zm9ybWF0dGVyPFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvTGlua2luZz46 OmZvcm1hdCgKKyAgICAgY29uc3QgV2FzbUVkZ2U6OkVyckluZm86OkluZm9MaW5raW5nICZJbmZv LAorLSAgICBmbXQ6OmZvcm1hdF9jb250ZXh0ICZDdHgpIGNvbnN0IG5vZXhjZXB0IHsKKysgICAg Zm10Ojpmb3JtYXRfY29udGV4dCAmQ3R4KSBXQVNNRURHRV9GTVRfQ09OU1Qgbm9leGNlcHQgewor ICAgZm10OjptZW1vcnlfYnVmZmVyIEJ1ZmZlcjsKKyAgIGZtdDo6Zm9ybWF0X3RvKHN0ZDo6YmFj a19pbnNlcnRlcihCdWZmZXIpLAorICAgICAgICAgICAgICAgICAgIiAgICBXaGVuIGxpbmtpbmcg bW9kdWxlOiBcInt9XCIgLCB7fSBuYW1lOiBcInt9XCIic3YsCitAQCAtMTI2LDcgKzEzMCw3IEBA IGZtdDo6Zm9ybWF0dGVyPFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvTGlua2luZz46OmZvcm1hdCgK KyBmbXQ6OmZvcm1hdF9jb250ZXh0OjppdGVyYXRvcgorIGZtdDo6Zm9ybWF0dGVyPFdhc21FZGdl OjpFcnJJbmZvOjpJbmZvRXhlY3V0aW5nPjo6Zm9ybWF0KAorICAgICBjb25zdCBXYXNtRWRnZTo6 RXJySW5mbzo6SW5mb0V4ZWN1dGluZyAmSW5mbywKKy0gICAgZm10Ojpmb3JtYXRfY29udGV4dCAm Q3R4KSBjb25zdCBub2V4Y2VwdCB7CisrICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkgV0FT TUVER0VfRk1UX0NPTlNUIG5vZXhjZXB0IHsKKyAgIGZtdDo6bWVtb3J5X2J1ZmZlciBCdWZmZXI7 CisgICBhdXRvIEl0ZXIgPQorICAgICAgIGZtdDo6Zm9ybWF0X3RvKHN0ZDo6YmFja19pbnNlcnRl cihCdWZmZXIpLCAiICAgIFdoZW4gZXhlY3V0aW5nICJzdik7CitAQCAtMTQxLDcgKzE0NSw3IEBA IGZtdDo6Zm9ybWF0dGVyPFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvRXhlY3V0aW5nPjo6Zm9ybWF0 KAorIGZtdDo6Zm9ybWF0X2NvbnRleHQ6Oml0ZXJhdG9yCisgZm10Ojpmb3JtYXR0ZXI8V2FzbUVk Z2U6OkVyckluZm86OkluZm9NaXNtYXRjaD46OmZvcm1hdCgKKyAgICAgY29uc3QgV2FzbUVkZ2U6 OkVyckluZm86OkluZm9NaXNtYXRjaCAmSW5mbywKKy0gICAgZm10Ojpmb3JtYXRfY29udGV4dCAm Q3R4KSBjb25zdCBub2V4Y2VwdCB7CisrICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkgV0FT TUVER0VfRk1UX0NPTlNUIG5vZXhjZXB0IHsKKyAgIGZtdDo6bWVtb3J5X2J1ZmZlciBCdWZmZXI7 CisgICBhdXRvIEl0ZXIgPSBmbXQ6OmZvcm1hdF90byhzdGQ6OmJhY2tfaW5zZXJ0ZXIoQnVmZmVy KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgTWlzbWF0Y2hlZCB7fS4gInN2 LCBJbmZvLkNhdGVnb3J5KTsKK0BAIC0yMjksNyArMjMzLDcgQEAgZm10Ojpmb3JtYXR0ZXI8V2Fz bUVkZ2U6OkVyckluZm86OkluZm9NaXNtYXRjaD46OmZvcm1hdCgKKyBmbXQ6OmZvcm1hdF9jb250 ZXh0OjppdGVyYXRvcgorIGZtdDo6Zm9ybWF0dGVyPFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvSW5z dHJ1Y3Rpb24+Ojpmb3JtYXQoCisgICAgIGNvbnN0IFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvSW5z dHJ1Y3Rpb24gJkluZm8sCistICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkgY29uc3Qgbm9l eGNlcHQgeworKyAgICBmbXQ6OmZvcm1hdF9jb250ZXh0ICZDdHgpIFdBU01FREdFX0ZNVF9DT05T VCBub2V4Y2VwdCB7CisgICB1aW50MTZfdCBQYXlsb2FkID0gc3RhdGljX2Nhc3Q8dWludDE2X3Q+ KEluZm8uQ29kZSk7CisgICBmbXQ6Om1lbW9yeV9idWZmZXIgQnVmZmVyOworICAgYXV0byBJdGVy ID0gZm10Ojpmb3JtYXRfdG8oc3RkOjpiYWNrX2luc2VydGVyKEJ1ZmZlciksCitAQCAtMjk0LDcg KzI5OCw3IEBAIGZtdDo6Zm9ybWF0dGVyPFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvSW5zdHJ1Y3Rp b24+Ojpmb3JtYXQoCisgZm10Ojpmb3JtYXRfY29udGV4dDo6aXRlcmF0b3IKKyBmbXQ6OmZvcm1h dHRlcjxXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0JvdW5kYXJ5Pjo6Zm9ybWF0KAorICAgICBjb25z dCBXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0JvdW5kYXJ5ICZJbmZvLAorLSAgICBmbXQ6OmZvcm1h dF9jb250ZXh0ICZDdHgpIGNvbnN0IG5vZXhjZXB0IHsKKysgICAgZm10Ojpmb3JtYXRfY29udGV4 dCAmQ3R4KSBXQVNNRURHRV9GTVRfQ09OU1Qgbm9leGNlcHQgeworICAgZm10OjptZW1vcnlfYnVm ZmVyIEJ1ZmZlcjsKKyAgIFdhc21FZGdlOjp1aW50MTI4X3QgT2ZmRnJvbSA9IEluZm8uT2Zmc2V0 OworICAgaWYgKEluZm8uSXNPZmZzZXRPdmVyZmxvdykgeworQEAgLTM0Nyw3ICszNTEsNyBAQCBm bXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0JvdW5kYXJ5Pjo6Zm9ybWF0KAor IGZtdDo6Zm9ybWF0X2NvbnRleHQ6Oml0ZXJhdG9yCisgZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6 OkVyckluZm86OkluZm9Qcm9wb3NhbD46OmZvcm1hdCgKKyAgICAgY29uc3QgV2FzbUVkZ2U6OkVy ckluZm86OkluZm9Qcm9wb3NhbCAmSW5mbywKKy0gICAgZm10Ojpmb3JtYXRfY29udGV4dCAmQ3R4 KSBjb25zdCBub2V4Y2VwdCB7CisrICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkgV0FTTUVE R0VfRk1UX0NPTlNUIG5vZXhjZXB0IHsKKyAgIGZtdDo6bWVtb3J5X2J1ZmZlciBCdWZmZXI7Cisg ICBpZiAoYXV0byBJdGVyID0gV2FzbUVkZ2U6OlByb3Bvc2FsU3RyLmZpbmQoSW5mby5QKTsKKyAg ICAgICBJdGVyICE9IFdhc21FZGdlOjpQcm9wb3NhbFN0ci5lbmQoKSkgeworZGlmZiAtLWdpdCBh L2xpYi9jb21tb24vc3BkbG9nLmNwcCBiL2xpYi9jb21tb24vc3BkbG9nLmNwcAoraW5kZXggMzli YTQ3N2JiLi4zOWY2YTdmZjggMTAwNjQ0CistLS0gYS9saWIvY29tbW9uL3NwZGxvZy5jcHAKKysr KyBiL2xpYi9jb21tb24vc3BkbG9nLmNwcAorQEAgLTksNyArOSwzMCBAQAorIC8vIGh0dHBzOi8v Z2l0aHViLmNvbS9nYWJpbWUvc3BkbG9nL3B1bGwvMzE5OAorICNwcmFnbWEgY2xhbmcgZGlhZ25v c3RpYyBpZ25vcmVkICItV2V4dHJhLXNlbWkiCisgI2VuZGlmCisrI2lmIF9faGFzX2luY2x1ZGUo PHNwZGxvZy9zaW5rcy9jYWxsYmFja19zaW5rLmg+KQorICNpbmNsdWRlIDxzcGRsb2cvc2lua3Mv Y2FsbGJhY2tfc2luay5oPgorKyNlbHNlCisrLy8gRmFsbGJhY2sgZm9yIHNwZGxvZyB3aXRob3V0 IGNhbGxiYWNrX3NpbmsuaCAoZS5nLiBSSEVMIDkgLyBFUEVMIDkgc3BkbG9nIDEuMTApLgorKyNp bmNsdWRlIDxzcGRsb2cvc2lua3MvYmFzZV9zaW5rLmg+CisrI2luY2x1ZGUgPGZ1bmN0aW9uYWw+ CisrI2luY2x1ZGUgPG11dGV4PgorK25hbWVzcGFjZSBzcGRsb2c6OnNpbmtzIHsKKyt0ZW1wbGF0 ZSA8dHlwZW5hbWUgTXV0ZXg+IGNsYXNzIGNhbGxiYWNrX3NpbmsgZmluYWwgOiBwdWJsaWMgYmFz ZV9zaW5rPE11dGV4PiB7CisrcHVibGljOgorKyAgZXhwbGljaXQgY2FsbGJhY2tfc2luaygKKysg ICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3QgZGV0YWlsczo6bG9nX21zZyAmKT4gQ2FsbGJh Y2spCisrICAgICAgOiBDYihzdGQ6Om1vdmUoQ2FsbGJhY2spKSB7fQorKworK3Byb3RlY3RlZDoK KysgIHZvaWQgc2lua19pdF8oY29uc3QgZGV0YWlsczo6bG9nX21zZyAmTXNnKSBvdmVycmlkZSB7 IENiKE1zZyk7IH0KKysgIHZvaWQgZmx1c2hfKCkgb3ZlcnJpZGUge30KKysKKytwcml2YXRlOgor KyAgc3RkOjpmdW5jdGlvbjx2b2lkKGNvbnN0IGRldGFpbHM6OmxvZ19tc2cgJik+IENiOworK307 CisrdXNpbmcgY2FsbGJhY2tfc2lua19tdCA9IGNhbGxiYWNrX3Npbms8c3RkOjptdXRleD47Cisr fSAvLyBuYW1lc3BhY2Ugc3BkbG9nOjpzaW5rcworKyNlbmRpZgorICNpZiBkZWZpbmVkKF9fY2xh bmdfbWFqb3JfXykgJiYgX19jbGFuZ19tYWpvcl9fID49IDEwCisgI3ByYWdtYSBjbGFuZyBkaWFn bm9zdGljIHBvcAorICNlbmRpZgoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4 IGIyMmFlNzIuLmQyZjZhNTggMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAt MTAsMyArMTAsNyBAQCBTSEE1MTIgKFdhc21FZGdlLTAuMTMuMy1zcmMudGFyLmd6KSA9IGI4YjJl MTk3NGZkMmNhNWJmYTBiMTAzMTE4MTJiNjlhMmEwZDJiOTg2NAogU0hBNTEyIChXYXNtRWRnZS0w LjEzLjQtc3JjLnRhci5neikgPSBlYzliN2QxZDVlZGRlYjI2M2U0ZmQwMGIxMWUwY2FjOGUxMWU3 M2EwMGRiMGE1M2VmMDFhZGUxMzUxODg0MTgyMzI3NGQ1YWQ4NWJlMDA1YTgyY2Y4YzU4YTViZWM3 YThhZDZlNTQzNThhYmU0YTc4NDQzOTY5MmFmYmU0M2ZjZgogU0hBNTEyIChXYXNtRWRnZS0wLjEz LjUtc3JjLnRhci5neikgPSA5ZDNlY2U0NTg5N2QyYzliYjM4NDg2NjJmYzRhYjM2YzJlMGYxNzg0 NTBiMDBmN2VhN2QxODNiNzE2MmQxNTBkMTMwNmUxNzgxYjI1NDI0NjM5OTNiYWIyZWM2NzMyZGVm OGQ2M2JlMjBlYzE5MmIxOGQ5M2Q5OGM1MzdmYjQ4YQogU0hBNTEyIChXYXNtRWRnZS0wLjE0LjAt c3JjLnRhci5neikgPSBmYTlhYjE0ZjFjNDc3ZTE5MDllZmU4OGQ3NjBhMmFiOTIxMjY4NzMyOGE4 ODUwNTRmMDgzMDI4NGJjNzFkNTU5YWI1MjYzZWVmYmJjNTY0ZDg4MjgwYjM5MDdkNWUzMTQ1ZmZl ZmY4NzgzMGViMTNhZDFmM2ZjNGE1OTllNDM0MAorU0hBNTEyIChXYXNtRWRnZS0wLjE0LjEtc3Jj LnRhci5neikgPSBjZjcwOGFkNzg5YzhkN2NiOGI1ODg1ZDZiMTNkYmIwMTBmYTQzM2U5Mzk3MWZl ZGIwYzA1ZGQyNzk0YWQ2OWQ3OWIwODUzNWM4NTRlYTg3NDQyNDNmZjY1YzYxZjBkZTFiNmUzZmUy YTk4MWI2OWZjOTI3MDFiNDY3NWNjODBkNAorU0hBNTEyIChXYXNtRWRnZS0wLjE1LjAtc3JjLnRh ci5neikgPSAzYTQxZjM2Mjg1MmRkMDRkYzQ0MWViZTEwZmFjMjY2NzAzYmIxNDYxMDBjY2VlYzY0 ZGYzZmNlNzZmNTc5NjBhYzdkYWNmYzljMTI0M2Y0MTc3ODk5YTVjNGQ1MDE2NjE1ODkwOGIwZWM0 ZTg4ZTNmMjI2Y2FkMmZkMzUwZTZjZAorU0hBNTEyIChXYXNtRWRnZS0wLjE2LjEtc3JjLnRhci5n eikgPSBiMDljOGQ4M2UzNjI3MDg1MzgyMTA5ZWEwNzNlY2MwOTliNTdlMTA5YjQxOTE3MWEyOWFi NzgwZWUzNmIzNzFkZTliZDE4NjRkNDc4YzE1MzI0ZjI5YmFhYmQwYzE5ZGRhOGEzMmEzN2Y0NmE3 MzhmMzllNDdlZjZkNTFhMDc3MAorU0hBNTEyIChXYXNtRWRnZS0wLjE3LjAtc3JjLnRhci5neikg PSAzZTBmOTczOWM3Y2Q1YWY0YWQxZTU0ZWQwMDk3MTljOGU0ZDNkNGJmYzgyMTEwM2JkOTU0ZjVi YzY2MjM4MTI3OGY5NzA3OGI0ZDE3N2Y0ZmFlNTk5YjNhMTk5YjU1YjZlMWZkODFjZTc1YWI3NzEx OTIxNzc5ZGIyZTg5ZDU2NwoKZGlmZiAtLWdpdCBhL3dhc21lZGdlLXJldmVydC1mbXQucGF0Y2gg Yi93YXNtZWRnZS1yZXZlcnQtZm10LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCBkYzY3MTZhLi4wMDAwMDAwCi0tLSBhL3dhc21lZGdlLXJldmVydC1mbXQucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwxNjY0ICswLDAgQEAKLWRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbW1vbi9l bnVtX2FzdC5ocHAgYi9pbmNsdWRlL2NvbW1vbi9lbnVtX2FzdC5ocHAKLWluZGV4IGJlNDE4MzNh Li5iN2QwYWNjNiAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvY29tbW9uL2VudW1fYXN0LmhwcAotKysr IGIvaW5jbHVkZS9jb21tb24vZW51bV9hc3QuaHBwCi1AQCAtMTksNyArMTksNiBAQAotIAotICNp bmNsdWRlICJjb21tb24vZGVuc2VfZW51bV9tYXAuaCIKLSAjaW5jbHVkZSAiY29tbW9uL3NwYXJl X2VudW1fbWFwLmgiCi0tI2luY2x1ZGUgImNvbW1vbi9zcGRsb2cuaCIKLSAKLSAjaW5jbHVkZSA8 Y3N0ZGludD4KLSAjaW5jbHVkZSA8c3RyaW5nPgotQEAgLTQ2LDcgKzQ1LDggQEAgc3RhdGljIGlu bGluZSBjb25zdGV4cHIgYXV0byBBU1ROb2RlQXR0clN0ciA9IFtdKCkgY29uc3RleHByIHsKLSAj dW5kZWYgVXNlQVNUTm9kZUF0dHIKLSAgIH07Ci0gICByZXR1cm4gRGVuc2VFbnVtTWFwKEFycmF5 KTsKLS19KCk7Ci0rfQotKygpOwotIAotIC8vLyBJbnN0cnVjdGlvbiBvcGNvZGUgZW51bWVyYXRp b24gY2xhc3MuCi0gZW51bSBjbGFzcyBPcENvZGUgOiB1aW50MzJfdCB7Ci1AQCAtODQsMjYgKzg0 LDcgQEAgc3RhdGljIGlubGluZSBjb25zdGV4cHIgY29uc3QgYXV0byBPcENvZGVTdHIgPSBbXSgp IGNvbnN0ZXhwciB7Ci0gI3VuZGVmIFVzZU9wQ29kZQotICAgfTsKLSAgIHJldHVybiBTcGFyZUVu dW1NYXAoQXJyYXkpOwotLX0oKTsKLSt9Ci0rKCk7Ci0gCi0gfSAvLyBuYW1lc3BhY2UgV2FzbUVk Z2UKLS0KLS10ZW1wbGF0ZSA8PgotLXN0cnVjdCBmbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6QVNU Tm9kZUF0dHI+Ci0tICAgIDogZm10Ojpmb3JtYXR0ZXI8c3RkOjpzdHJpbmdfdmlldz4gewotLSAg Zm10Ojpmb3JtYXRfY29udGV4dDo6aXRlcmF0b3IKLS0gIGZvcm1hdChjb25zdCBXYXNtRWRnZTo6 QVNUTm9kZUF0dHIgJkF0dHIsCi0tICAgICAgICAgZm10Ojpmb3JtYXRfY29udGV4dCAmQ3R4KSBj b25zdCBub2V4Y2VwdCB7Ci0tICAgIHJldHVybiBmb3JtYXR0ZXI8c3RkOjpzdHJpbmdfdmlldz46 OmZvcm1hdChXYXNtRWRnZTo6QVNUTm9kZUF0dHJTdHJbQXR0cl0sCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdHgpOwotLSAgfQotLX07Ci0tCi0tdGVt cGxhdGUgPD4KLS1zdHJ1Y3QgZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6Ok9wQ29kZT4gOiBmbXQ6 OmZvcm1hdHRlcjxzdGQ6OnN0cmluZ192aWV3PiB7Ci0tICBmbXQ6OmZvcm1hdF9jb250ZXh0Ojpp dGVyYXRvcgotLSAgZm9ybWF0KGNvbnN0IFdhc21FZGdlOjpPcENvZGUgJkNvZGUsCi0tICAgICAg ICAgZm10Ojpmb3JtYXRfY29udGV4dCAmQ3R4KSBjb25zdCBub2V4Y2VwdCB7Ci0tICAgIHJldHVy biBmb3JtYXR0ZXI8c3RkOjpzdHJpbmdfdmlldz46OmZvcm1hdChXYXNtRWRnZTo6T3BDb2RlU3Ry W0NvZGVdLCBDdHgpOwotLSAgfQotLX07Ci1kaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb21tb24vZW51 bV9lcnJjb2RlLmhwcCBiL2luY2x1ZGUvY29tbW9uL2VudW1fZXJyY29kZS5ocHAKLWluZGV4IGE1 MGY0OWRmLi44MGYyNGJiZiAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvY29tbW9uL2VudW1fZXJyY29k ZS5ocHAKLSsrKyBiL2luY2x1ZGUvY29tbW9uL2VudW1fZXJyY29kZS5ocHAKLUBAIC0xNiw3ICsx Niw2IEBACi0gCi0gI2luY2x1ZGUgImNvbW1vbi9kZW5zZV9lbnVtX21hcC5oIgotICNpbmNsdWRl ICJjb21tb24vc3BhcmVfZW51bV9tYXAuaCIKLS0jaW5jbHVkZSAiY29tbW9uL3NwZGxvZy5oIgot IAotICNpbmNsdWRlIDxjc3RkaW50PgotICNpbmNsdWRlIDxzdHJpbmdfdmlldz4KLUBAIC00Miw3 ICs0MSw4IEBAIHN0YXRpYyBpbmxpbmUgY29uc3RleHByIGF1dG8gV2FzbVBoYXNlU3RyID0gW10o KSBjb25zdGV4cHIgewotICN1bmRlZiBVc2VXYXNtUGhhc2UKLSAgIH07Ci0gICByZXR1cm4gRGVu c2VFbnVtTWFwKEFycmF5KTsKLS19KCk7Ci0rfQotKygpOwotIAotIC8vLyBFcnJvciBjYXRlZ29y eSBDKysgZW51bWVyYXRpb24gY2xhc3MuCi0gZW51bSBjbGFzcyBFcnJDYXRlZ29yeSA6IHVpbnQ4 X3QgewotQEAgLTc1LDExICs3NSw2IEBAIHB1YmxpYzoKLSAgICAgICAgICAgICAgICA/IEVyckNv ZGU6OlZhbHVlOjpVc2VyRGVmRXJyb3IKLSAgICAgICAgICAgICAgICA6IHN0YXRpY19jYXN0PEVy ckNvZGU6OlZhbHVlPihnZXRDb2RlKCkpOwotICAgfQotLSAgY29uc3RleHByIFdhc21QaGFzZSBn ZXRFcnJDb2RlUGhhc2UoKSBjb25zdCBub2V4Y2VwdCB7Ci0tICAgIHJldHVybiBnZXRDYXRlZ29y eSgpICE9IEVyckNhdGVnb3J5OjpXQVNNCi0tICAgICAgICAgICAgICAgPyBXYXNtUGhhc2U6OlVz ZXJEZWZpbmVkCi0tICAgICAgICAgICAgICAgOiBzdGF0aWNfY2FzdDxXYXNtUGhhc2U+KChnZXRD b2RlKCkgPj4gOCkgJiAweDBGVSk7Ci0tICB9Ci0gCi0gICBjb25zdGV4cHIgRXJyQ29kZSgpIG5v ZXhjZXB0IDogSW5uZXIoMCkge30KLSAgIGNvbnN0ZXhwciBFcnJDb2RlKGNvbnN0IEVyckNvZGUg JkUpIG5vZXhjZXB0IDogSW5uZXIoRS5Jbm5lci5OdW0pIHt9Ci1AQCAtMTM2LDE2ICsxMzEsNyBA QCBzdGF0aWMgaW5saW5lIGNvbnN0ZXhwciBjb25zdCBhdXRvIEVyckNvZGVTdHIgPSBbXSgpIGNv bnN0ZXhwciB7Ci0gI3VuZGVmIFVzZUVyckNvZGUKLSAgIH07Ci0gICByZXR1cm4gU3BhcmVFbnVt TWFwKEFycmF5KTsKLS19KCk7Ci0rfQotKygpOwotIAotIH0gLy8gbmFtZXNwYWNlIFdhc21FZGdl Ci0tCi0tdGVtcGxhdGUgPD4KLS1zdHJ1Y3QgZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6Oldhc21Q aGFzZT4gOiBmbXQ6OmZvcm1hdHRlcjxzdGQ6OnN0cmluZ192aWV3PiB7Ci0tICBmbXQ6OmZvcm1h dF9jb250ZXh0OjppdGVyYXRvcgotLSAgZm9ybWF0KGNvbnN0IFdhc21FZGdlOjpXYXNtUGhhc2Ug JlBoYXNlLAotLSAgICAgICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkgY29uc3Qgbm9leGNl cHQgewotLSAgICByZXR1cm4gZm9ybWF0dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+Ojpmb3JtYXQoV2Fz bUVkZ2U6Oldhc21QaGFzZVN0cltQaGFzZV0sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDdHgpOwotLSAgfQotLX07Ci1kaWZmIC0tZ2l0IGEvaW5jbHVk ZS9jb21tb24vZW51bV9lcnJpbmZvLmhwcCBiL2luY2x1ZGUvY29tbW9uL2VudW1fZXJyaW5mby5o cHAKLWluZGV4IGYzODUwMTBhLi4xNWYzYWIxZiAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvY29tbW9u L2VudW1fZXJyaW5mby5ocHAKLSsrKyBiL2luY2x1ZGUvY29tbW9uL2VudW1fZXJyaW5mby5ocHAK LUBAIC0xMDksMzYgKzEwOSwzIEBAIHN0YXRpYyBpbmxpbmUgY29uc3RleHByIGF1dG8gSW5kZXhD YXRlZ29yeVN0ciA9IFtdKCkgY29uc3RleHByIHsKLSAKLSB9IC8vIG5hbWVzcGFjZSBFcnJJbmZv Ci0gfSAvLyBuYW1lc3BhY2UgV2FzbUVkZ2UKLS0KLS10ZW1wbGF0ZSA8PgotLXN0cnVjdCBmbXQ6 OmZvcm1hdHRlcjxXYXNtRWRnZTo6RXJySW5mbzo6UHRyVHlwZT4KLS0gICAgOiBmbXQ6OmZvcm1h dHRlcjxzdGQ6OnN0cmluZ192aWV3PiB7Ci0tICBmbXQ6OmZvcm1hdF9jb250ZXh0OjppdGVyYXRv cgotLSAgZm9ybWF0KGNvbnN0IFdhc21FZGdlOjpFcnJJbmZvOjpQdHJUeXBlICZUeXBlLAotLSAg ICAgICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkgY29uc3Qgbm9leGNlcHQgewotLSAgICBy ZXR1cm4gZm9ybWF0dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+Ojpmb3JtYXQoCi0tICAgICAgICBXYXNt RWRnZTo6RXJySW5mbzo6UHRyVHlwZVN0cltUeXBlXSwgQ3R4KTsKLS0gIH0KLS19OwotLQotLXRl bXBsYXRlIDw+Ci0tc3RydWN0IGZtdDo6Zm9ybWF0dGVyPFdhc21FZGdlOjpFcnJJbmZvOjpNaXNt YXRjaENhdGVnb3J5PgotLSAgICA6IGZtdDo6Zm9ybWF0dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+IHsK LS0gIGZtdDo6Zm9ybWF0X2NvbnRleHQ6Oml0ZXJhdG9yCi0tICBmb3JtYXQoY29uc3QgV2FzbUVk Z2U6OkVyckluZm86Ok1pc21hdGNoQ2F0ZWdvcnkgJkNhdGVnb3J5LAotLSAgICAgICAgIGZtdDo6 Zm9ybWF0X2NvbnRleHQgJkN0eCkgY29uc3Qgbm9leGNlcHQgewotLSAgICByZXR1cm4gZm9ybWF0 dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+Ojpmb3JtYXQoCi0tICAgICAgICBXYXNtRWRnZTo6RXJySW5m bzo6TWlzbWF0Y2hDYXRlZ29yeVN0cltDYXRlZ29yeV0sIEN0eCk7Ci0tICB9Ci0tfTsKLS0KLS10 ZW1wbGF0ZSA8PgotLXN0cnVjdCBmbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6RXJySW5mbzo6SW5k ZXhDYXRlZ29yeT4KLS0gICAgOiBmbXQ6OmZvcm1hdHRlcjxzdGQ6OnN0cmluZ192aWV3PiB7Ci0t ICBmbXQ6OmZvcm1hdF9jb250ZXh0OjppdGVyYXRvcgotLSAgZm9ybWF0KGNvbnN0IFdhc21FZGdl OjpFcnJJbmZvOjpJbmRleENhdGVnb3J5ICZDYXRlZ29yeSwKLS0gICAgICAgICBmbXQ6OmZvcm1h dF9jb250ZXh0ICZDdHgpIGNvbnN0IG5vZXhjZXB0IHsKLS0gICAgcmV0dXJuIGZvcm1hdHRlcjxz dGQ6OnN0cmluZ192aWV3Pjo6Zm9ybWF0KAotLSAgICAgICAgV2FzbUVkZ2U6OkVyckluZm86Oklu ZGV4Q2F0ZWdvcnlTdHJbQ2F0ZWdvcnldLCBDdHgpOwotLSAgfQotLX07Ci1kaWZmIC0tZ2l0IGEv aW5jbHVkZS9jb21tb24vZW51bV90eXBlcy5ocHAgYi9pbmNsdWRlL2NvbW1vbi9lbnVtX3R5cGVz LmhwcAotaW5kZXggMzQwZThlYzEuLmZmZDVkOWY1IDEwMDY0NAotLS0tIGEvaW5jbHVkZS9jb21t b24vZW51bV90eXBlcy5ocHAKLSsrKyBiL2luY2x1ZGUvY29tbW9uL2VudW1fdHlwZXMuaHBwCi1A QCAtNDIsNyArNDIsOCBAQCBzdGF0aWMgaW5saW5lIGNvbnN0ZXhwciBjb25zdCBhdXRvIFR5cGVD b2RlU3RyID0gW10oKSBjb25zdGV4cHIgewotICN1bmRlZiBVc2VUeXBlQ29kZQotICAgfTsKLSAg IHJldHVybiBTcGFyZUVudW1NYXAoQXJyYXkpOwotLX0oKTsKLSt9Ci0rKCk7Ci0gCi0gLy8vIFdB U00gTXV0YWJpbGl0eSBDKysgZW51bWVyYXRpb24gY2xhc3MuCi0gZW51bSBjbGFzcyBWYWxNdXQg OiB1aW50OF90IHsKLUBAIC02Myw3ICs2NCw4IEBAIHN0YXRpYyBpbmxpbmUgY29uc3RleHByIGF1 dG8gVmFsTXV0U3RyID0gW10oKSBjb25zdGV4cHIgewotICN1bmRlZiBVc2VWYWxNdXQKLSAgIH07 Ci0gICByZXR1cm4gRGVuc2VFbnVtTWFwKEFycmF5KTsKLS19KCk7Ci0rfQotKygpOwotIAotIC8v LyBXQVNNIEV4dGVybmFsIHR5cGUgQysrIGVudW1lcmF0aW9uIGNsYXNzLgotIGVudW0gY2xhc3Mg RXh0ZXJuYWxUeXBlIDogdWludDhfdCB7Ci1AQCAtODQsMjUgKzg2LDcgQEAgc3RhdGljIGlubGlu ZSBjb25zdGV4cHIgYXV0byBFeHRlcm5hbFR5cGVTdHIgPSBbXSgpIGNvbnN0ZXhwciB7Ci0gI3Vu ZGVmIFVzZUV4dGVybmFsVHlwZQotICAgfTsKLSAgIHJldHVybiBEZW5zZUVudW1NYXAoQXJyYXkp OwotLX0oKTsKLSt9Ci0rKCk7Ci0gCi0gfSAvLyBuYW1lc3BhY2UgV2FzbUVkZ2UKLS0KLS10ZW1w bGF0ZSA8PgotLXN0cnVjdCBmbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6VmFsTXV0PiA6IGZtdDo6 Zm9ybWF0dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+IHsKLS0gIGZtdDo6Zm9ybWF0X2NvbnRleHQ6Oml0 ZXJhdG9yCi0tICBmb3JtYXQoY29uc3QgV2FzbUVkZ2U6OlZhbE11dCAmTXV0LCBmbXQ6OmZvcm1h dF9jb250ZXh0ICZDdHgpIGNvbnN0IG5vZXhjZXB0IHsKLS0gICAgcmV0dXJuIGZvcm1hdHRlcjxz dGQ6OnN0cmluZ192aWV3Pjo6Zm9ybWF0KFdhc21FZGdlOjpWYWxNdXRTdHJbTXV0XSwgQ3R4KTsK LS0gIH0KLS19OwotLQotLXRlbXBsYXRlIDw+Ci0tc3RydWN0IGZtdDo6Zm9ybWF0dGVyPFdhc21F ZGdlOjpFeHRlcm5hbFR5cGU+Ci0tICAgIDogZm10Ojpmb3JtYXR0ZXI8c3RkOjpzdHJpbmdfdmll dz4gewotLSAgZm10Ojpmb3JtYXRfY29udGV4dDo6aXRlcmF0b3IKLS0gIGZvcm1hdChjb25zdCBX YXNtRWRnZTo6RXh0ZXJuYWxUeXBlICZUeXBlLAotLSAgICAgICAgIGZtdDo6Zm9ybWF0X2NvbnRl eHQgJkN0eCkgY29uc3Qgbm9leGNlcHQgewotLSAgICByZXR1cm4gZm9ybWF0dGVyPHN0ZDo6c3Ry aW5nX3ZpZXc+Ojpmb3JtYXQoV2FzbUVkZ2U6OkV4dGVybmFsVHlwZVN0cltUeXBlXSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEN0eCk7Ci0tICB9Ci0t fTsKLWRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbW1vbi9lcnJjb2RlLmggYi9pbmNsdWRlL2NvbW1v bi9lcnJjb2RlLmgKLWluZGV4IDRmNzNhMTIxLi5hMGU1ZGQ4OSAxMDA2NDQKLS0tLSBhL2luY2x1 ZGUvY29tbW9uL2VycmNvZGUuaAotKysrIGIvaW5jbHVkZS9jb21tb24vZXJyY29kZS5oCi1AQCAt MzcsNiArMzcsMjAgQEAKLSAKLSBuYW1lc3BhY2UgV2FzbUVkZ2UgewotIAotK3N0YXRpYyBpbmxp bmUgV2FzbVBoYXNlIGdldEVyckNvZGVQaGFzZShjb25zdCBFcnJDb2RlICZDb2RlKSB7Ci0rICBy ZXR1cm4gc3RhdGljX2Nhc3Q8V2FzbVBoYXNlPihDb2RlLmdldENhdGVnb3J5KCkgPT0gRXJyQ2F0 ZWdvcnk6OldBU00KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgoQ29k ZS5nZXRDb2RlKCkgJiAweEYwVSkgPj4gNSkKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA6IDB4MDVVIC8vIFdhc21QaGFzZTo6VXNlckRlZmluZWQKLSsgICk7Ci0rfQotKwot K3N0YXRpYyBpbmxpbmUgc3RkOjpvc3RyZWFtICZvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSAmT1Ms IGNvbnN0IEVyckNvZGUgJkNvZGUpIHsKLSsgIE9TIDw8IFdhc21QaGFzZVN0cltnZXRFcnJDb2Rl UGhhc2UoQ29kZSldCi0rICAgICA8PCAiIGZhaWxlZDogIiA8PCBFcnJDb2RlU3RyW0NvZGUuZ2V0 RW51bSgpXQotKyAgICAgPDwgIiwgQ29kZTogIiA8PCBjb252ZXJ0VUludFRvSGV4U3RyKENvZGUu Z2V0Q29kZSgpLCAyKTsKLSsgIHJldHVybiBPUzsKLSt9Ci0rCi0gc3RhdGljIGlubGluZSBjb25z dGV4cHIgYm9vbCBsaWtlbHkoYm9vbCBWKSBub2V4Y2VwdCB7Ci0gICByZXR1cm4gX19idWlsdGlu X2V4cGVjdChWLCB0cnVlKTsKLSB9Ci1AQCAtNTgsMjUgKzcyLDcgQEAgdGVtcGxhdGUgPHR5cGVu YW1lIFQ+IGNvbnN0ZXhwciBhdXRvIFVuZXhwZWN0KGNvbnN0IEV4cGVjdDxUPiAmVmFsKSB7Ci0g Ci0gfSAvLyBuYW1lc3BhY2UgV2FzbUVkZ2UKLSAKLSsjaWYgRk1UX1ZFUlNJT04gPj0gOTAwMDAK LSB0ZW1wbGF0ZSA8PgotLXN0cnVjdCBmbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6RXJyQ29kZT4g OiBmbXQ6OmZvcm1hdHRlcjxzdGQ6OnN0cmluZ192aWV3PiB7Ci0tICBmbXQ6OmZvcm1hdF9jb250 ZXh0OjppdGVyYXRvcgotLSAgZm9ybWF0KGNvbnN0IFdhc21FZGdlOjpFcnJDb2RlICZDb2RlLAot LSAgICAgICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkgY29uc3Qgbm9leGNlcHQgewotLSAg ICB1c2luZyBuYW1lc3BhY2Ugc3RkOjpsaXRlcmFsczsKLS0gICAgc3RkOjpzdHJpbmcgT3V0cHV0 ID0KLS0gICAgICAgIGZtdDo6Zm9ybWF0KCJ7fSBmYWlsZWQ6IHt9LCBDb2RlOiAweHs6MDN4fSJz diwgQ29kZS5nZXRFcnJDb2RlUGhhc2UoKSwKLS0gICAgICAgICAgICAgICAgICAgIFdhc21FZGdl OjpFcnJDb2RlU3RyW0NvZGUuZ2V0RW51bSgpXSwgQ29kZS5nZXRDb2RlKCkpOwotLSAgICByZXR1 cm4gZm9ybWF0dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+Ojpmb3JtYXQoT3V0cHV0LCBDdHgpOwotLSAg fQotLX07Ci0tCi0tdGVtcGxhdGUgPD4KLS1zdHJ1Y3QgZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6 OkVyckNvZGU6OlZhbHVlPgotLSAgICA6IGZtdDo6Zm9ybWF0dGVyPFdhc21FZGdlOjpFcnJDb2Rl PiB7Ci0tICBmbXQ6OmZvcm1hdF9jb250ZXh0OjppdGVyYXRvcgotLSAgZm9ybWF0KGNvbnN0IFdh c21FZGdlOjpFcnJDb2RlOjpWYWx1ZSAmVmFsdWUsCi0tICAgICAgICAgZm10Ojpmb3JtYXRfY29u dGV4dCAmQ3R4KSBjb25zdCBub2V4Y2VwdCB7Ci0tICAgIHJldHVybiBmb3JtYXR0ZXI8V2FzbUVk Z2U6OkVyckNvZGU+Ojpmb3JtYXQoV2FzbUVkZ2U6OkVyckNvZGUoVmFsdWUpLCBDdHgpOwotLSAg fQotLX07Ci0rc3RydWN0IGZtdDo6Zm9ybWF0dGVyPFdhc21FZGdlOjpFcnJDb2RlOjpWYWx1ZT4g OiBvc3RyZWFtX2Zvcm1hdHRlciB7fTsKLSsjZW5kaWYKLWRpZmYgLS1naXQgYS9pbmNsdWRlL2Nv bW1vbi9lcnJpbmZvLmggYi9pbmNsdWRlL2NvbW1vbi9lcnJpbmZvLmgKLWluZGV4IGExOGJiMWMz Li40NWYzNzYxYyAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvY29tbW9uL2VycmluZm8uaAotKysrIGIv aW5jbHVkZS9jb21tb24vZXJyaW5mby5oCi1AQCAtMzcsNiArMzcsOCBAQCBzdHJ1Y3QgSW5mb0Zp bGUgewotICAgSW5mb0ZpbGUoKSA9IGRlbGV0ZTsKLSAgIEluZm9GaWxlKGNvbnN0IHN0ZDo6Zmls ZXN5c3RlbTo6cGF0aCAmRk5hbWUpIG5vZXhjZXB0IDogRmlsZU5hbWUoRk5hbWUpIHt9Ci0gCi0r ICBmcmllbmQgc3RkOjpvc3RyZWFtICZvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSAmT1MsIGNvbnN0 IHN0cnVjdCBJbmZvRmlsZSAmUmhzKTsKLSsKLSAgIHN0ZDo6ZmlsZXN5c3RlbTo6cGF0aCBGaWxl TmFtZTsKLSB9OwotIAotQEAgLTQ0LDYgKzQ2LDkgQEAgc3RydWN0IEluZm9Mb2FkaW5nIHsKLSAg IEluZm9Mb2FkaW5nKCkgPSBkZWxldGU7Ci0gICBJbmZvTG9hZGluZyhjb25zdCB1aW50NjRfdCBP ZmYpIG5vZXhjZXB0IDogT2Zmc2V0KE9mZikge30KLSAKLSsgIGZyaWVuZCBzdGQ6Om9zdHJlYW0g Jm9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtICZPUywKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3Qgc3RydWN0IEluZm9Mb2FkaW5nICZSaHMpOwotKwotICAgdWludDY0X3Qg T2Zmc2V0OwotIH07Ci0gCi1AQCAtNTEsNiArNTYsOCBAQCBzdHJ1Y3QgSW5mb0FTVCB7Ci0gICBJ bmZvQVNUKCkgPSBkZWxldGU7Ci0gICBJbmZvQVNUKGNvbnN0IEFTVE5vZGVBdHRyIEF0dHIpIG5v ZXhjZXB0IDogTm9kZUF0dHIoQXR0cikge30KLSAKLSsgIGZyaWVuZCBzdGQ6Om9zdHJlYW0gJm9w ZXJhdG9yPDwoc3RkOjpvc3RyZWFtICZPUywgY29uc3Qgc3RydWN0IEluZm9BU1QgJlJocyk7Ci0r Ci0gICBBU1ROb2RlQXR0ciBOb2RlQXR0cjsKLSB9OwotIAotQEAgLTYwLDYgKzY3LDkgQEAgc3Ry dWN0IEluZm9JbnN0YW5jZUJvdW5kIHsKLSAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQz Ml90IExpbSkgbm9leGNlcHQKLSAgICAgICA6IEluc3RhbmNlKEluc3QpLCBOdW1iZXIoTnVtKSwg TGltaXRlZChMaW0pIHt9Ci0gCi0rICBmcmllbmQgc3RkOjpvc3RyZWFtICZvcGVyYXRvcjw8KHN0 ZDo6b3N0cmVhbSAmT1MsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IHN0cnVjdCBJbmZvSW5zdGFuY2VCb3VuZCAmUmhzKTsKLSsKLSAgIEV4dGVybmFsVHlwZSBJbnN0 YW5jZTsKLSAgIHVpbnQzMl90IE51bWJlciwgTGltaXRlZDsKLSB9OwotQEAgLTcwLDYgKzgwLDkg QEAgc3RydWN0IEluZm9Gb3JiaWRJbmRleCB7Ci0gICAgICAgICAgICAgICAgICAgY29uc3QgdWlu dDMyX3QgQm91bmQpIG5vZXhjZXB0Ci0gICAgICAgOiBDYXRlZ29yeShDYXRlKSwgSW5kZXgoSWR4 KSwgQm91bmRhcnkoQm91bmQpIHt9Ci0gCi0rICBmcmllbmQgc3RkOjpvc3RyZWFtICZvcGVyYXRv cjw8KHN0ZDo6b3N0cmVhbSAmT1MsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IHN0cnVjdCBJbmZvRm9yYmlkSW5kZXggJlJocyk7Ci0rCi0gICBJbmRleENhdGVnb3J5 IENhdGVnb3J5OwotICAgdWludDMyX3QgSW5kZXgsIEJvdW5kYXJ5OwotIH07Ci1AQCAtNzgsNiAr OTEsOSBAQCBzdHJ1Y3QgSW5mb0V4cG9ydGluZyB7Ci0gICBJbmZvRXhwb3J0aW5nKCkgPSBkZWxl dGU7Ci0gICBJbmZvRXhwb3J0aW5nKHN0ZDo6c3RyaW5nX3ZpZXcgRXh0KSBub2V4Y2VwdCA6IEV4 dE5hbWUoRXh0KSB7fQotIAotKyAgZnJpZW5kIHN0ZDo6b3N0cmVhbSAmb3BlcmF0b3I8PChzdGQ6 Om9zdHJlYW0gJk9TLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBz dHJ1Y3QgSW5mb0V4cG9ydGluZyAmUmhzKTsKLSsKLSAgIHN0ZDo6c3RyaW5nIEV4dE5hbWU7Ci0g fTsKLSAKLUBAIC04Nyw2ICsxMDMsOSBAQCBzdHJ1Y3QgSW5mb0xpbWl0IHsKLSAgICAgICAgICAg ICBjb25zdCB1aW50MzJfdCBNYXggPSAwKSBub2V4Y2VwdAotICAgICAgIDogTGltSGFzTWF4KEhh c01heCksIExpbU1pbihNaW4pLCBMaW1NYXgoTWF4KSB7fQotIAotKyAgZnJpZW5kIHN0ZDo6b3N0 cmVhbSAmb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0gJk9TLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgSW5mb0xpbWl0ICZSaHMpOwotKwotICAgYm9vbCBM aW1IYXNNYXg7Ci0gICB1aW50MzJfdCBMaW1NaW4sIExpbU1heDsKLSB9OwotQEAgLTk1LDYgKzEx NCw5IEBAIHN0cnVjdCBJbmZvUmVnaXN0ZXJpbmcgewotICAgSW5mb1JlZ2lzdGVyaW5nKCkgPSBk ZWxldGU7Ci0gICBJbmZvUmVnaXN0ZXJpbmcoc3RkOjpzdHJpbmdfdmlldyBNb2QpIG5vZXhjZXB0 IDogTW9kTmFtZShNb2QpIHt9Ci0gCi0rICBmcmllbmQgc3RkOjpvc3RyZWFtICZvcGVyYXRvcjw8 KHN0ZDo6b3N0cmVhbSAmT1MsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHN0cnVjdCBJbmZvUmVnaXN0ZXJpbmcgJlJocyk7Ci0rCi0gICBzdGQ6OnN0cmluZyBNb2RO YW1lOwotIH07Ci0gCi1AQCAtMTA0LDYgKzEyNiw5IEBAIHN0cnVjdCBJbmZvTGlua2luZyB7Ci0g ICAgICAgICAgICAgICBjb25zdCBFeHRlcm5hbFR5cGUgRXh0VCA9IEV4dGVybmFsVHlwZTo6RnVu Y3Rpb24pIG5vZXhjZXB0Ci0gICAgICAgOiBNb2ROYW1lKE1vZCksIEV4dE5hbWUoRXh0KSwgRXh0 VHlwZShFeHRUKSB7fQotIAotKyAgZnJpZW5kIHN0ZDo6b3N0cmVhbSAmb3BlcmF0b3I8PChzdGQ6 Om9zdHJlYW0gJk9TLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBz dHJ1Y3QgSW5mb0xpbmtpbmcgJlJocyk7Ci0rCi0gICBzdGQ6OnN0cmluZyBNb2ROYW1lOwotICAg c3RkOjpzdHJpbmcgRXh0TmFtZTsKLSAgIEV4dGVybmFsVHlwZSBFeHRUeXBlOwotQEAgLTExNSw2 ICsxNDAsOSBAQCBzdHJ1Y3QgSW5mb0V4ZWN1dGluZyB7Ci0gICAgICAgOiBNb2ROYW1lKE1vZCks IEZ1bmNOYW1lKEZ1bmMpIHt9Ci0gICBJbmZvRXhlY3V0aW5nKHN0ZDo6c3RyaW5nX3ZpZXcgRnVu Yykgbm9leGNlcHQgOiBNb2ROYW1lKCIiKSwgRnVuY05hbWUoRnVuYykge30KLSAKLSsgIGZyaWVu ZCBzdGQ6Om9zdHJlYW0gJm9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtICZPUywKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IEluZm9FeGVjdXRpbmcgJlJocyk7 Ci0rCi0gICBzdGQ6OnN0cmluZyBNb2ROYW1lOwotICAgc3RkOjpzdHJpbmcgRnVuY05hbWU7Ci0g fTsKLUBAIC0xOTYsNiArMjI0LDkgQEAgc3RydWN0IEluZm9NaXNtYXRjaCB7Ci0gICAgICAgOiBD YXRlZ29yeShNaXNtYXRjaENhdGVnb3J5OjpWZXJzaW9uKSwgRXhwVmVyc2lvbihFeHBWKSwKLSAg ICAgICAgIEdvdFZlcnNpb24oR290Vikge30KLSAKLSsgIGZyaWVuZCBzdGQ6Om9zdHJlYW0gJm9w ZXJhdG9yPDwoc3RkOjpvc3RyZWFtICZPUywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3Qgc3RydWN0IEluZm9NaXNtYXRjaCAmUmhzKTsKLSsKLSAgIC8vLyBNaXNtYXRj aGVkIGNhdGVnb3J5Ci0gICBNaXNtYXRjaENhdGVnb3J5IENhdGVnb3J5OwotIAotQEAgLTIzNiw2 ICsyNjcsOSBAQCBzdHJ1Y3QgSW5mb0luc3RydWN0aW9uIHsKLSAgICAgICA6IENvZGUoT3ApLCBP ZmZzZXQoT2ZmKSwgQXJncyhBcmdzVmVjKSwgQXJnc1R5cGVzKEFyZ3NUeXBlc1ZlYyksCi0gICAg ICAgICBJc1NpZ25lZChTaWduZWQpIHt9Ci0gCi0rICBmcmllbmQgc3RkOjpvc3RyZWFtICZvcGVy YXRvcjw8KHN0ZDo6b3N0cmVhbSAmT1MsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IHN0cnVjdCBJbmZvSW5zdHJ1Y3Rpb24gJlJocyk7Ci0rCi0gICBPcENvZGUgQ29k ZTsKLSAgIHVpbnQ2NF90IE9mZnNldDsKLSAgIHN0ZDo6dmVjdG9yPFZhbFZhcmlhbnQ+IEFyZ3M7 Ci1AQCAtMjUwLDYgKzI4NCw5IEBAIHN0cnVjdCBJbmZvQm91bmRhcnkgewotICAgICAgIGNvbnN0 IHVpbnQzMl90IExpbSA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSkgbm9l eGNlcHQKLSAgICAgICA6IE9mZnNldChPZmYpLCBTaXplKExlbiksIExpbWl0KExpbSkge30KLSAK LSsgIGZyaWVuZCBzdGQ6Om9zdHJlYW0gJm9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtICZPUywKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IEluZm9Cb3VuZGFy eSAmUmhzKTsKLSsKLSAgIHVpbnQ2NF90IE9mZnNldDsKLSAgIHVpbnQzMl90IFNpemU7Ci0gICB1 aW50MzJfdCBMaW1pdDsKLUBAIC0yNTksMTA0ICsyOTYsNDYgQEAgc3RydWN0IEluZm9Qcm9wb3Nh bCB7Ci0gICBJbmZvUHJvcG9zYWwoKSA9IGRlbGV0ZTsKLSAgIEluZm9Qcm9wb3NhbChQcm9wb3Nh bCBQKSBub2V4Y2VwdCA6IFAoUCkge30KLSAKLSsgIGZyaWVuZCBzdGQ6Om9zdHJlYW0gJm9wZXJh dG9yPDwoc3RkOjpvc3RyZWFtICZPUywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3Qgc3RydWN0IEluZm9Qcm9wb3NhbCAmUmhzKTsKLSsKLSAgIFByb3Bvc2FsIFA7Ci0g fTsKLSAKLSB9IC8vIG5hbWVzcGFjZSBFcnJJbmZvCi0gfSAvLyBuYW1lc3BhY2UgV2FzbUVkZ2UK LSAKLSsjaWYgRk1UX1ZFUlNJT04gPj0gOTAwMDAKLSB0ZW1wbGF0ZSA8PgotLXN0cnVjdCBmbXQ6 OmZvcm1hdHRlcjxXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0ZpbGU+Ci0tICAgIDogZm10Ojpmb3Jt YXR0ZXI8c3RkOjpzdHJpbmdfdmlldz4gewotLSAgZm10Ojpmb3JtYXRfY29udGV4dDo6aXRlcmF0 b3IgZm9ybWF0KGNvbnN0IFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvRmlsZSAmSW5mbywKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbXQ6OmZvcm1hdF9jb250ZXh0ICZD dHgpIGNvbnN0IG5vZXhjZXB0OwotLX07Ci0rc3RydWN0IGZtdDo6Zm9ybWF0dGVyPFdhc21FZGdl OjpFcnJJbmZvOjpJbmZvRmlsZT4gOiBvc3RyZWFtX2Zvcm1hdHRlciB7fTsKLSB0ZW1wbGF0ZSA8 PgotLXN0cnVjdCBmbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0xvYWRpbmc+ Ci0tICAgIDogZm10Ojpmb3JtYXR0ZXI8c3RkOjpzdHJpbmdfdmlldz4gewotLSAgZm10Ojpmb3Jt YXRfY29udGV4dDo6aXRlcmF0b3IKLS0gIGZvcm1hdChjb25zdCBXYXNtRWRnZTo6RXJySW5mbzo6 SW5mb0xvYWRpbmcgJkluZm8sCi0tICAgICAgICAgZm10Ojpmb3JtYXRfY29udGV4dCAmQ3R4KSBj b25zdCBub2V4Y2VwdDsKLS19OwotK3N0cnVjdCBmbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6RXJy SW5mbzo6SW5mb0xvYWRpbmc+IDogb3N0cmVhbV9mb3JtYXR0ZXIge307Ci0gdGVtcGxhdGUgPD4K LS1zdHJ1Y3QgZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6OkVyckluZm86OkluZm9BU1Q+Ci0tICAg IDogZm10Ojpmb3JtYXR0ZXI8c3RkOjpzdHJpbmdfdmlldz4gewotLSAgZm10Ojpmb3JtYXRfY29u dGV4dDo6aXRlcmF0b3IgZm9ybWF0KGNvbnN0IFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvQVNUICZJ bmZvLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZtdDo6Zm9ybWF0 X2NvbnRleHQgJkN0eCkgY29uc3Qgbm9leGNlcHQ7Ci0tfTsKLStzdHJ1Y3QgZm10Ojpmb3JtYXR0 ZXI8V2FzbUVkZ2U6OkVyckluZm86OkluZm9BU1Q+IDogb3N0cmVhbV9mb3JtYXR0ZXIge307Ci0g dGVtcGxhdGUgPD4KLSBzdHJ1Y3QgZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6OkVyckluZm86Oklu Zm9JbnN0YW5jZUJvdW5kPgotLSAgICA6IGZtdDo6Zm9ybWF0dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+ IHsKLS0gIGZtdDo6Zm9ybWF0X2NvbnRleHQ6Oml0ZXJhdG9yCi0tICBmb3JtYXQoY29uc3QgV2Fz bUVkZ2U6OkVyckluZm86OkluZm9JbnN0YW5jZUJvdW5kICZJbmZvLAotLSAgICAgICAgIGZtdDo6 Zm9ybWF0X2NvbnRleHQgJkN0eCkgY29uc3Qgbm9leGNlcHQ7Ci0tfTsKLSsgICAgOiBvc3RyZWFt X2Zvcm1hdHRlciB7fTsKLSB0ZW1wbGF0ZSA8PgotLXN0cnVjdCBmbXQ6OmZvcm1hdHRlcjxXYXNt RWRnZTo6RXJySW5mbzo6SW5mb0ZvcmJpZEluZGV4PgotLSAgICA6IGZtdDo6Zm9ybWF0dGVyPHN0 ZDo6c3RyaW5nX3ZpZXc+IHsKLS0gIGZtdDo6Zm9ybWF0X2NvbnRleHQ6Oml0ZXJhdG9yCi0tICBm b3JtYXQoY29uc3QgV2FzbUVkZ2U6OkVyckluZm86OkluZm9Gb3JiaWRJbmRleCAmSW5mbywKLS0g ICAgICAgICBmbXQ6OmZvcm1hdF9jb250ZXh0ICZDdHgpIGNvbnN0IG5vZXhjZXB0OwotK3N0cnVj dCBmbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0ZvcmJpZEluZGV4PiA6IG9z dHJlYW1fZm9ybWF0dGVyIHsKLSB9OwotIHRlbXBsYXRlIDw+Ci0tc3RydWN0IGZtdDo6Zm9ybWF0 dGVyPFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvRXhwb3J0aW5nPgotLSAgICA6IGZtdDo6Zm9ybWF0 dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+IHsKLS0gIGZtdDo6Zm9ybWF0X2NvbnRleHQ6Oml0ZXJhdG9y Ci0tICBmb3JtYXQoY29uc3QgV2FzbUVkZ2U6OkVyckluZm86OkluZm9FeHBvcnRpbmcgJkluZm8s Ci0tICAgICAgICAgZm10Ojpmb3JtYXRfY29udGV4dCAmQ3R4KSBjb25zdCBub2V4Y2VwdDsKLS19 OwotK3N0cnVjdCBmbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0V4cG9ydGlu Zz4gOiBvc3RyZWFtX2Zvcm1hdHRlciB7fTsKLSB0ZW1wbGF0ZSA8PgotLXN0cnVjdCBmbXQ6OmZv cm1hdHRlcjxXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0xpbWl0PgotLSAgICA6IGZtdDo6Zm9ybWF0 dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+IHsKLS0gIGZtdDo6Zm9ybWF0X2NvbnRleHQ6Oml0ZXJhdG9y IGZvcm1hdChjb25zdCBXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0xpbWl0ICZJbmZvLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0 eCkgY29uc3Qgbm9leGNlcHQ7Ci0tfTsKLStzdHJ1Y3QgZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6 OkVyckluZm86OkluZm9MaW1pdD4gOiBvc3RyZWFtX2Zvcm1hdHRlciB7fTsKLSB0ZW1wbGF0ZSA8 PgotLXN0cnVjdCBmbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6RXJySW5mbzo6SW5mb1JlZ2lzdGVy aW5nPgotLSAgICA6IGZtdDo6Zm9ybWF0dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+IHsKLS0gIGZtdDo6 Zm9ybWF0X2NvbnRleHQ6Oml0ZXJhdG9yCi0tICBmb3JtYXQoY29uc3QgV2FzbUVkZ2U6OkVycklu Zm86OkluZm9SZWdpc3RlcmluZyAmSW5mbywKLS0gICAgICAgICBmbXQ6OmZvcm1hdF9jb250ZXh0 ICZDdHgpIGNvbnN0IG5vZXhjZXB0OwotK3N0cnVjdCBmbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6 RXJySW5mbzo6SW5mb1JlZ2lzdGVyaW5nPiA6IG9zdHJlYW1fZm9ybWF0dGVyIHsKLSB9OwotIHRl bXBsYXRlIDw+Ci0tc3RydWN0IGZtdDo6Zm9ybWF0dGVyPFdhc21FZGdlOjpFcnJJbmZvOjpJbmZv TGlua2luZz4KLS0gICAgOiBmbXQ6OmZvcm1hdHRlcjxzdGQ6OnN0cmluZ192aWV3PiB7Ci0tICBm bXQ6OmZvcm1hdF9jb250ZXh0OjppdGVyYXRvcgotLSAgZm9ybWF0KGNvbnN0IFdhc21FZGdlOjpF cnJJbmZvOjpJbmZvTGlua2luZyAmSW5mbywKLS0gICAgICAgICBmbXQ6OmZvcm1hdF9jb250ZXh0 ICZDdHgpIGNvbnN0IG5vZXhjZXB0OwotLX07Ci0rc3RydWN0IGZtdDo6Zm9ybWF0dGVyPFdhc21F ZGdlOjpFcnJJbmZvOjpJbmZvTGlua2luZz4gOiBvc3RyZWFtX2Zvcm1hdHRlciB7fTsKLSB0ZW1w bGF0ZSA8PgotLXN0cnVjdCBmbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0V4 ZWN1dGluZz4KLS0gICAgOiBmbXQ6OmZvcm1hdHRlcjxzdGQ6OnN0cmluZ192aWV3PiB7Ci0tICBm bXQ6OmZvcm1hdF9jb250ZXh0OjppdGVyYXRvcgotLSAgZm9ybWF0KGNvbnN0IFdhc21FZGdlOjpF cnJJbmZvOjpJbmZvRXhlY3V0aW5nICZJbmZvLAotLSAgICAgICAgIGZtdDo6Zm9ybWF0X2NvbnRl eHQgJkN0eCkgY29uc3Qgbm9leGNlcHQ7Ci0tfTsKLStzdHJ1Y3QgZm10Ojpmb3JtYXR0ZXI8V2Fz bUVkZ2U6OkVyckluZm86OkluZm9FeGVjdXRpbmc+IDogb3N0cmVhbV9mb3JtYXR0ZXIge307Ci0g dGVtcGxhdGUgPD4KLS1zdHJ1Y3QgZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6OkVyckluZm86Oklu Zm9NaXNtYXRjaD4KLS0gICAgOiBmbXQ6OmZvcm1hdHRlcjxzdGQ6OnN0cmluZ192aWV3PiB7Ci0t ICBmbXQ6OmZvcm1hdF9jb250ZXh0OjppdGVyYXRvcgotLSAgZm9ybWF0KGNvbnN0IFdhc21FZGdl OjpFcnJJbmZvOjpJbmZvTWlzbWF0Y2ggJkluZm8sCi0tICAgICAgICAgZm10Ojpmb3JtYXRfY29u dGV4dCAmQ3R4KSBjb25zdCBub2V4Y2VwdDsKLS19OwotK3N0cnVjdCBmbXQ6OmZvcm1hdHRlcjxX YXNtRWRnZTo6RXJySW5mbzo6SW5mb01pc21hdGNoPiA6IG9zdHJlYW1fZm9ybWF0dGVyIHt9Owot IHRlbXBsYXRlIDw+Ci0tc3RydWN0IGZtdDo6Zm9ybWF0dGVyPFdhc21FZGdlOjpFcnJJbmZvOjpJ bmZvSW5zdHJ1Y3Rpb24+Ci0tICAgIDogZm10Ojpmb3JtYXR0ZXI8c3RkOjpzdHJpbmdfdmlldz4g ewotLSAgZm10Ojpmb3JtYXRfY29udGV4dDo6aXRlcmF0b3IKLS0gIGZvcm1hdChjb25zdCBXYXNt RWRnZTo6RXJySW5mbzo6SW5mb0luc3RydWN0aW9uICZJbmZvLAotLSAgICAgICAgIGZtdDo6Zm9y bWF0X2NvbnRleHQgJkN0eCkgY29uc3Qgbm9leGNlcHQ7Ci0rc3RydWN0IGZtdDo6Zm9ybWF0dGVy PFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvSW5zdHJ1Y3Rpb24+IDogb3N0cmVhbV9mb3JtYXR0ZXIg ewotIH07Ci0gdGVtcGxhdGUgPD4KLS1zdHJ1Y3QgZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6OkVy ckluZm86OkluZm9Cb3VuZGFyeT4KLS0gICAgOiBmbXQ6OmZvcm1hdHRlcjxzdGQ6OnN0cmluZ192 aWV3PiB7Ci0tICBmbXQ6OmZvcm1hdF9jb250ZXh0OjppdGVyYXRvcgotLSAgZm9ybWF0KGNvbnN0 IFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvQm91bmRhcnkgJkluZm8sCi0tICAgICAgICAgZm10Ojpm b3JtYXRfY29udGV4dCAmQ3R4KSBjb25zdCBub2V4Y2VwdDsKLS19OwotK3N0cnVjdCBmbXQ6OmZv cm1hdHRlcjxXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0JvdW5kYXJ5PiA6IG9zdHJlYW1fZm9ybWF0 dGVyIHt9OwotIHRlbXBsYXRlIDw+Ci0tc3RydWN0IGZtdDo6Zm9ybWF0dGVyPFdhc21FZGdlOjpF cnJJbmZvOjpJbmZvUHJvcG9zYWw+Ci0tICAgIDogZm10Ojpmb3JtYXR0ZXI8c3RkOjpzdHJpbmdf dmlldz4gewotLSAgZm10Ojpmb3JtYXRfY29udGV4dDo6aXRlcmF0b3IKLS0gIGZvcm1hdChjb25z dCBXYXNtRWRnZTo6RXJySW5mbzo6SW5mb1Byb3Bvc2FsICZJbmZvLAotLSAgICAgICAgIGZtdDo6 Zm9ybWF0X2NvbnRleHQgJkN0eCkgY29uc3Qgbm9leGNlcHQ7Ci0tfTsKLStzdHJ1Y3QgZm10Ojpm b3JtYXR0ZXI8V2FzbUVkZ2U6OkVyckluZm86OkluZm9Qcm9wb3NhbD4gOiBvc3RyZWFtX2Zvcm1h dHRlciB7fTsKLSsjZW5kaWYKLWRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbW1vbi9zcGRsb2cuaCBi L2luY2x1ZGUvY29tbW9uL3NwZGxvZy5oCi1pbmRleCBiNDI5NzBhMS4uYjI5NDBmYjAgMTAwNjQ0 Ci0tLS0gYS9pbmNsdWRlL2NvbW1vbi9zcGRsb2cuaAotKysrIGIvaW5jbHVkZS9jb21tb24vc3Bk bG9nLmgKLUBAIC0xMyw4ICsxMyw4IEBACi0gLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLSAjcHJh Z21hIG9uY2UKLSAKLS0jaW5jbHVkZSAiY29tbW9uL2ZpbGVzeXN0ZW0uaCIKLSAjZGVmaW5lIFNQ RExPR19OT19FWENFUFRJT05TIDEKLSsjaW5jbHVkZSAic3BkbG9nL2ZtdC9vc3RyLmgiCi0gI2lu Y2x1ZGUgInNwZGxvZy9zcGRsb2cuaCIKLSAKLSBuYW1lc3BhY2UgV2FzbUVkZ2UgewotQEAgLTMy LDI2ICszMiwzIEBAIHZvaWQgc2V0RXJyb3JMb2dnaW5nTGV2ZWwoKTsKLSAKLSB9IC8vIG5hbWVz cGFjZSBMb2cKLSB9IC8vIG5hbWVzcGFjZSBXYXNtRWRnZQotLQotLXRlbXBsYXRlIDw+Ci0tc3Ry dWN0IGZtdDo6Zm9ybWF0dGVyPHN0ZDo6ZmlsZXN5c3RlbTo6cGF0aD4KLS0gICAgOiBmbXQ6OmZv cm1hdHRlcjxzdGQ6OnN0cmluZ192aWV3PiB7Ci0tICBmbXQ6OmZvcm1hdF9jb250ZXh0OjppdGVy YXRvciBmb3JtYXQoY29uc3Qgc3RkOjpmaWxlc3lzdGVtOjpwYXRoICZQYXRoLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkg Y29uc3QgewotLSAgICAvLyBtaW1pYyBzdGQ6OnF1b3RlZAotLSAgICBjb25zdGV4cHIgY29uc3Qg Y2hhciBEZWxpbWl0ZXIgPSAnIic7Ci0tICAgIGNvbnN0ZXhwciBjb25zdCBjaGFyIEVzY2FwZSA9 ICdcXCc7Ci0tICAgIGF1dG8gUXVvdGVkID0gZm10OjptZW1vcnlfYnVmZmVyKCk7Ci0tICAgIGF1 dG8gSXRlciA9IHN0ZDo6YmFja19pbnNlcnRlcihRdW90ZWQpOwotLSAgICAqSXRlcisrID0gRGVs aW1pdGVyOwotLSAgICBmb3IgKGNvbnN0IGF1dG8gQyA6IFBhdGgudThzdHJpbmcoKSkgewotLSAg ICAgIGlmIChDID09IERlbGltaXRlciB8fCBDID09IEVzY2FwZSkgewotLSAgICAgICAgKkl0ZXIr KyA9IEVzY2FwZTsKLS0gICAgICB9Ci0tICAgICAgKkl0ZXIrKyA9IEM7Ci0tICAgIH0KLS0gICAg Kkl0ZXIrKyA9IERlbGltaXRlcjsKLS0gICAgcmV0dXJuIGZtdDo6Zm9ybWF0dGVyPHN0ZDo6c3Ry aW5nX3ZpZXc+Ojpmb3JtYXQoCi0tICAgICAgICBzdGQ6OnN0cmluZ192aWV3KFF1b3RlZC5kYXRh KCksIFF1b3RlZC5zaXplKCkpLCBDdHgpOwotLSAgfQotLX07Ci1kaWZmIC0tZ2l0IGEvaW5jbHVk ZS9jb21tb24vdHlwZXMuaCBiL2luY2x1ZGUvY29tbW9uL3R5cGVzLmgKLWluZGV4IGUwNjE0NDg2 Li5iYWViYWVlOCAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvY29tbW9uL3R5cGVzLmgKLSsrKyBiL2lu Y2x1ZGUvY29tbW9uL3R5cGVzLmgKLUBAIC0xNjQsNiArMTY0LDIwIEBAIHB1YmxpYzoKLSAgIGZy aWVuZCBib29sIG9wZXJhdG9yIT0oY29uc3QgVmFsVHlwZSAmTEhTLCBjb25zdCBWYWxUeXBlICZS SFMpIG5vZXhjZXB0IHsKLSAgICAgcmV0dXJuICEoTEhTID09IFJIUyk7Ci0gICB9Ci0rICBmcmll bmQgc3RkOjpvc3RyZWFtICZvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSAmT1MsIGNvbnN0IFZhbFR5 cGUgJlR5cGUpIHsKLSsgICAgLy8gRm9yIHRoZSBudW1iZXIgdHlwZXMsIHByaW50IHRoZSB0eXBl IGRpcmVjdGx5LgotKyAgICBpZiAoIVR5cGUuaXNSZWZUeXBlKCkpIHsKLSsgICAgICBPUyA8PCBU eXBlQ29kZVN0cltUeXBlLmdldENvZGUoKV07Ci0rICAgICAgcmV0dXJuIE9TOwotKyAgICB9Ci0r ICAgIC8vIEZvciB0aGUgcmVmZXJlbmNlIHR5cGVzLCBwcmludCB0aGUgZGV0YWlscy4KLSsgICAg T1MgPDwgV2FzbUVkZ2U6OlR5cGVDb2RlU3RyW1R5cGUuZ2V0Q29kZSgpXSA8PCAiICIKLSsgICAg ICAgPDwgV2FzbUVkZ2U6OlR5cGVDb2RlU3RyW1R5cGUuZ2V0SGVhcFR5cGVDb2RlKCldOwotKyAg ICBpZiAoVHlwZS5nZXRIZWFwVHlwZUNvZGUoKSA9PSBXYXNtRWRnZTo6VHlwZUNvZGU6OlR5cGVJ bmRleCkgewotKyAgICAgIE9TIDw8ICJbIiA8PCBUeXBlLmdldFR5cGVJbmRleCgpIDw8ICJdIjsK LSsgICAgfQotKyAgICByZXR1cm4gT1M7Ci0rICB9Ci0gCi0gICBUeXBlQ29kZSBnZXRDb2RlKCkg Y29uc3Qgbm9leGNlcHQgeyByZXR1cm4gSW5uZXIuRGF0YS5Db2RlOyB9Ci0gICBUeXBlQ29kZSBn ZXRIZWFwVHlwZUNvZGUoKSBjb25zdCBub2V4Y2VwdCB7IHJldHVybiBJbm5lci5EYXRhLkhUQ29k ZTsgfQotQEAgLTYwMSwyNyArNjE1LDMgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSBU ICZyZXRyaWV2ZUV4dGVyblJlZihjb25zdCBSZWZWYXJpYW50ICZWYWwpIHsKLSAvLyA8PDw8PDw8 PCBGdW5jdGlvbnMgdG8gcmV0cmlldmUgcmVmZXJlbmNlIGlubmVycyA8PDw8PDw8PDw8PDw8PDw8 PDw8PDw8PDw8PDw8PAotIAotIH0gLy8gbmFtZXNwYWNlIFdhc21FZGdlCi0tCi0tdGVtcGxhdGUg PD4KLS1zdHJ1Y3QgZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6OlZhbFR5cGU+IDogZm10Ojpmb3Jt YXR0ZXI8c3RkOjpzdHJpbmdfdmlldz4gewotLSAgZm10Ojpmb3JtYXRfY29udGV4dDo6aXRlcmF0 b3IKLS0gIGZvcm1hdChjb25zdCBXYXNtRWRnZTo6VmFsVHlwZSAmVHlwZSwKLS0gICAgICAgICBm bXQ6OmZvcm1hdF9jb250ZXh0ICZDdHgpIGNvbnN0IG5vZXhjZXB0IHsKLS0gICAgdXNpbmcgbmFt ZXNwYWNlIHN0ZDo6bGl0ZXJhbHM7Ci0tICAgIC8vIEZvciB0aGUgbnVtYmVyIHR5cGVzLCBwcmlu dCB0aGUgdHlwZSBkaXJlY3RseS4KLS0gICAgaWYgKCFUeXBlLmlzUmVmVHlwZSgpKSB7Ci0tICAg ICAgcmV0dXJuIGZvcm1hdHRlcjxzdGQ6OnN0cmluZ192aWV3Pjo6Zm9ybWF0KAotLSAgICAgICAg ICBXYXNtRWRnZTo6VHlwZUNvZGVTdHJbVHlwZS5nZXRDb2RlKCldLCBDdHgpOwotLSAgICB9Ci0t ICAgIC8vIEZvciB0aGUgcmVmZXJlbmNlIHR5cGVzLCBwcmludCB0aGUgZGV0YWlscy4KLS0gICAg Zm10OjptZW1vcnlfYnVmZmVyIEJ1ZmZlcjsKLS0gICAgZm10Ojpmb3JtYXRfdG8oc3RkOjpiYWNr X2luc2VydGVyKEJ1ZmZlciksICJ7fSB7fSJzdiwKLS0gICAgICAgICAgICAgICAgICAgV2FzbUVk Z2U6OlR5cGVDb2RlU3RyW1R5cGUuZ2V0Q29kZSgpXSwKLS0gICAgICAgICAgICAgICAgICAgV2Fz bUVkZ2U6OlR5cGVDb2RlU3RyW1R5cGUuZ2V0SGVhcFR5cGVDb2RlKCldKTsKLS0gICAgaWYgKFR5 cGUuZ2V0SGVhcFR5cGVDb2RlKCkgPT0gV2FzbUVkZ2U6OlR5cGVDb2RlOjpUeXBlSW5kZXgpIHsK LS0gICAgICBmbXQ6OmZvcm1hdF90byhzdGQ6OmJhY2tfaW5zZXJ0ZXIoQnVmZmVyKSwgIlt7fV0i c3YsIFR5cGUuZ2V0VHlwZUluZGV4KCkpOwotLSAgICB9Ci0tICAgIHJldHVybiBmb3JtYXR0ZXI8 c3RkOjpzdHJpbmdfdmlldz46OmZvcm1hdCgKLS0gICAgICAgIHN0ZDo6c3RyaW5nX3ZpZXcoQnVm ZmVyLmRhdGEoKSwgQnVmZmVyLnNpemUoKSksIEN0eCk7Ci0tICB9Ci0tfTsKLWRpZmYgLS1naXQg YS9pbmNsdWRlL2hvc3Qvd2FzaS9lcnJvci5oIGIvaW5jbHVkZS9ob3N0L3dhc2kvZXJyb3IuaAot aW5kZXggOWZjODg5NzYuLmNkNzc5ZTk5IDEwMDY0NAotLS0tIGEvaW5jbHVkZS9ob3N0L3dhc2kv ZXJyb3IuaAotKysrIGIvaW5jbHVkZS9ob3N0L3dhc2kvZXJyb3IuaAotQEAgLTQsOSArNCw3IEBA Ci0gI3ByYWdtYSBvbmNlCi0gCi0gI2luY2x1ZGUgImNvbW1vbi9leHBlY3RlZC5oIgotLSNpbmNs dWRlICJjb21tb24vc3BkbG9nLmgiCi0gI2luY2x1ZGUgIndhc2kvYXBpLmhwcCIKLS0jaW5jbHVk ZSA8c3RyaW5nX3ZpZXc+Ci0gCi0gbmFtZXNwYWNlIFdhc21FZGdlIHsKLSBuYW1lc3BhY2UgSG9z dCB7Ci1AQCAtMjYsMjk2ICsyNCwzIEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjb25zdGV4cHIg YXV0byBXYXNpVW5leHBlY3QoY29uc3QgV2FzaUV4cGVjdDxUPiAmVmFsKSB7Ci0gfSAvLyBuYW1l c3BhY2UgV0FTSQotIH0gLy8gbmFtZXNwYWNlIEhvc3QKLSB9IC8vIG5hbWVzcGFjZSBXYXNtRWRn ZQotLQotLXRlbXBsYXRlIDw+Ci0tc3RydWN0IGZtdDo6Zm9ybWF0dGVyPF9fd2FzaV9lcnJub190 PiA6IGZtdDo6Zm9ybWF0dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+IHsKLS0gIGZtdDo6Zm9ybWF0X2Nv bnRleHQ6Oml0ZXJhdG9yCi0tICBmb3JtYXQoX193YXNpX2Vycm5vX3QgRXJyTm8sIGZtdDo6Zm9y bWF0X2NvbnRleHQgJkN0eCkgY29uc3Qgbm9leGNlcHQgewotLSAgICBmbXQ6Om1lbW9yeV9idWZm ZXIgQnVmZmVyOwotLSAgICB1c2luZyBuYW1lc3BhY2Ugc3RkOjpsaXRlcmFsczsKLS0gICAgYXV0 byBJdGVyID0gc3RkOjpiYWNrX2luc2VydGVyKEJ1ZmZlcik7Ci0tICAgIHN3aXRjaCAoRXJyTm8p IHsKLS0gICAgY2FzZSBfX1dBU0lfRVJSTk9fU1VDQ0VTUzoKLS0gICAgICBmbXQ6OmZvcm1hdF90 bygKLS0gICAgICAgICAgSXRlciwgIk5vIGVycm9yIG9jY3VycmVkLiBTeXN0ZW0gY2FsbCBjb21w bGV0ZWQgc3VjY2Vzc2Z1bGx5LiJzdik7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgX19XQVNJ X0VSUk5PXzJCSUc6Ci0tICAgICAgZm10Ojpmb3JtYXRfdG8oSXRlciwgIkFyZ3VtZW50IGxpc3Qg dG9vIGxvbmcuInN2KTsKLS0gICAgICBicmVhazsKLS0gICAgY2FzZSBfX1dBU0lfRVJSTk9fQUND RVM6Ci0tICAgICAgZm10Ojpmb3JtYXRfdG8oSXRlciwgIlBlcm1pc3Npb24gZGVuaWVkLiJzdik7 Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgX19XQVNJX0VSUk5PX0FERFJJTlVTRToKLS0gICAg ICBmbXQ6OmZvcm1hdF90byhJdGVyLCAiQWRkcmVzcyBpbiB1c2UuInN2KTsKLS0gICAgICBicmVh azsKLS0gICAgY2FzZSBfX1dBU0lfRVJSTk9fQUREUk5PVEFWQUlMOgotLSAgICAgIGZtdDo6Zm9y bWF0X3RvKEl0ZXIsICJBZGRyZXNzIG5vdCBhdmFpbGFibGUuInN2KTsKLS0gICAgICBicmVhazsK LS0gICAgY2FzZSBfX1dBU0lfRVJSTk9fQUZOT1NVUFBPUlQ6Ci0tICAgICAgZm10Ojpmb3JtYXRf dG8oSXRlciwgIkFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQuInN2KTsKLS0gICAgICBicmVh azsKLS0gICAgY2FzZSBfX1dBU0lfRVJSTk9fQUdBSU46Ci0tICAgICAgZm10Ojpmb3JtYXRfdG8o SXRlciwgIlJlc291cmNlIHVuYXZhaWxhYmxlLCBvciBvcGVyYXRpb24gd291bGQgYmxvY2suInN2 KTsKLS0gICAgICBicmVhazsKLS0gICAgY2FzZSBfX1dBU0lfRVJSTk9fQUxSRUFEWToKLS0gICAg ICBmbXQ6OmZvcm1hdF90byhJdGVyLCAiQ29ubmVjdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzLiJz dik7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgX19XQVNJX0VSUk5PX0JBREY6Ci0tICAgICAg Zm10Ojpmb3JtYXRfdG8oSXRlciwgIkJhZCBmaWxlIGRlc2NyaXB0b3IuInN2KTsKLS0gICAgICBi cmVhazsKLS0gICAgY2FzZSBfX1dBU0lfRVJSTk9fQkFETVNHOgotLSAgICAgIGZtdDo6Zm9ybWF0 X3RvKEl0ZXIsICJCYWQgbWVzc2FnZS4ic3YpOwotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIF9f V0FTSV9FUlJOT19CVVNZOgotLSAgICAgIGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICJEZXZpY2Ugb3Ig cmVzb3VyY2UgYnVzeS4ic3YpOwotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIF9fV0FTSV9FUlJO T19DQU5DRUxFRDoKLS0gICAgICBmbXQ6OmZvcm1hdF90byhJdGVyLCAiT3BlcmF0aW9uIGNhbmNl bGVkLiJzdik7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgX19XQVNJX0VSUk5PX0NISUxEOgot LSAgICAgIGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICJObyBjaGlsZCBwcm9jZXNzZXMuInN2KTsKLS0g ICAgICBicmVhazsKLS0gICAgY2FzZSBfX1dBU0lfRVJSTk9fQ09OTkFCT1JURUQ6Ci0tICAgICAg Zm10Ojpmb3JtYXRfdG8oSXRlciwgIkNvbm5lY3Rpb24gYWJvcnRlZC4ic3YpOwotLSAgICAgIGJy ZWFrOwotLSAgICBjYXNlIF9fV0FTSV9FUlJOT19DT05OUkVGVVNFRDoKLS0gICAgICBmbXQ6OmZv cm1hdF90byhJdGVyLCAiQ29ubmVjdGlvbiByZWZ1c2VkLiJzdik7Ci0tICAgICAgYnJlYWs7Ci0t ICAgIGNhc2UgX19XQVNJX0VSUk5PX0NPTk5SRVNFVDoKLS0gICAgICBmbXQ6OmZvcm1hdF90byhJ dGVyLCAiQ29ubmVjdGlvbiByZXNldC4ic3YpOwotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIF9f V0FTSV9FUlJOT19ERUFETEs6Ci0tICAgICAgZm10Ojpmb3JtYXRfdG8oSXRlciwgIlJlc291cmNl IGRlYWRsb2NrIHdvdWxkIG9jY3VyLiJzdik7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgX19X QVNJX0VSUk5PX0RFU1RBRERSUkVROgotLSAgICAgIGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICJEZXN0 aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkLiJzdik7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2Ug X19XQVNJX0VSUk5PX0RPTToKLS0gICAgICBmbXQ6OmZvcm1hdF90byhJdGVyLCAiTWF0aGVtYXRp Y3MgYXJndW1lbnQgb3V0IG9mIGRvbWFpbiBvZiBmdW5jdGlvbi4ic3YpOwotLSAgICAgIGJyZWFr OwotLSAgICBjYXNlIF9fV0FTSV9FUlJOT19EUVVPVDoKLS0gICAgICBmbXQ6OmZvcm1hdF90byhJ dGVyLCAiUmVzZXJ2ZWQuInN2KTsKLS0gICAgICBicmVhazsKLS0gICAgY2FzZSBfX1dBU0lfRVJS Tk9fRVhJU1Q6Ci0tICAgICAgZm10Ojpmb3JtYXRfdG8oSXRlciwgIkZpbGUgZXhpc3RzLiJzdik7 Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgX19XQVNJX0VSUk5PX0ZBVUxUOgotLSAgICAgIGZt dDo6Zm9ybWF0X3RvKEl0ZXIsICJCYWQgYWRkcmVzcy4ic3YpOwotLSAgICAgIGJyZWFrOwotLSAg ICBjYXNlIF9fV0FTSV9FUlJOT19GQklHOgotLSAgICAgIGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICJG aWxlIHRvbyBsYXJnZS4ic3YpOwotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIF9fV0FTSV9FUlJO T19IT1NUVU5SRUFDSDoKLS0gICAgICBmbXQ6OmZvcm1hdF90byhJdGVyLCAiSG9zdCBpcyB1bnJl YWNoYWJsZS4ic3YpOwotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIF9fV0FTSV9FUlJOT19JRFJN OgotLSAgICAgIGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICJJZGVudGlmaWVyIHJlbW92ZWQuInN2KTsK LS0gICAgICBicmVhazsKLS0gICAgY2FzZSBfX1dBU0lfRVJSTk9fSUxTRVE6Ci0tICAgICAgZm10 Ojpmb3JtYXRfdG8oSXRlciwgIklsbGVnYWwgYnl0ZSBzZXF1ZW5jZS4ic3YpOwotLSAgICAgIGJy ZWFrOwotLSAgICBjYXNlIF9fV0FTSV9FUlJOT19JTlBST0dSRVNTOgotLSAgICAgIGZtdDo6Zm9y bWF0X3RvKEl0ZXIsICJPcGVyYXRpb24gaW4gcHJvZ3Jlc3MuInN2KTsKLS0gICAgICBicmVhazsK LS0gICAgY2FzZSBfX1dBU0lfRVJSTk9fSU5UUjoKLS0gICAgICBmbXQ6OmZvcm1hdF90byhJdGVy LCAiSW50ZXJydXB0ZWQgZnVuY3Rpb24uInN2KTsKLS0gICAgICBicmVhazsKLS0gICAgY2FzZSBf X1dBU0lfRVJSTk9fSU5WQUw6Ci0tICAgICAgZm10Ojpmb3JtYXRfdG8oSXRlciwgIkludmFsaWQg YXJndW1lbnQuInN2KTsKLS0gICAgICBicmVhazsKLS0gICAgY2FzZSBfX1dBU0lfRVJSTk9fSU86 Ci0tICAgICAgZm10Ojpmb3JtYXRfdG8oSXRlciwgIkkvTyBlcnJvci4ic3YpOwotLSAgICAgIGJy ZWFrOwotLSAgICBjYXNlIF9fV0FTSV9FUlJOT19JU0NPTk46Ci0tICAgICAgZm10Ojpmb3JtYXRf dG8oSXRlciwgIlNvY2tldCBpcyBjb25uZWN0ZWQuInN2KTsKLS0gICAgICBicmVhazsKLS0gICAg Y2FzZSBfX1dBU0lfRVJSTk9fSVNESVI6Ci0tICAgICAgZm10Ojpmb3JtYXRfdG8oSXRlciwgIklz IGEgZGlyZWN0b3J5LiJzdik7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgX19XQVNJX0VSUk5P X0xPT1A6Ci0tICAgICAgZm10Ojpmb3JtYXRfdG8oSXRlciwgIlRvbyBtYW55IGxldmVscyBvZiBz eW1ib2xpYyBsaW5rcy4ic3YpOwotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIF9fV0FTSV9FUlJO T19NRklMRToKLS0gICAgICBmbXQ6OmZvcm1hdF90byhJdGVyLCAiRmlsZSBkZXNjcmlwdG9yIHZh bHVlIHRvbyBsYXJnZS4ic3YpOwotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIF9fV0FTSV9FUlJO T19NTElOSzoKLS0gICAgICBmbXQ6OmZvcm1hdF90byhJdGVyLCAiVG9vIG1hbnkgbGlua3MuInN2 KTsKLS0gICAgICBicmVhazsKLS0gICAgY2FzZSBfX1dBU0lfRVJSTk9fTVNHU0laRToKLS0gICAg ICBmbXQ6OmZvcm1hdF90byhJdGVyLCAiTWVzc2FnZSB0b28gbGFyZ2UuInN2KTsKLS0gICAgICBi cmVhazsKLS0gICAgY2FzZSBfX1dBU0lfRVJSTk9fTVVMVElIT1A6Ci0tICAgICAgZm10Ojpmb3Jt YXRfdG8oSXRlciwgIlJlc2VydmVkLiJzdik7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgX19X QVNJX0VSUk5PX05BTUVUT09MT05HOgotLSAgICAgIGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICJGaWxl bmFtZSB0b28gbG9uZy4ic3YpOwotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIF9fV0FTSV9FUlJO T19ORVRET1dOOgotLSAgICAgIGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICJOZXR3b3JrIGlzIGRvd24u InN2KTsKLS0gICAgICBicmVhazsKLS0gICAgY2FzZSBfX1dBU0lfRVJSTk9fTkVUUkVTRVQ6Ci0t ICAgICAgZm10Ojpmb3JtYXRfdG8oSXRlciwgIkNvbm5lY3Rpb24gYWJvcnRlZCBieSBuZXR3b3Jr LiJzdik7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgX19XQVNJX0VSUk5PX05FVFVOUkVBQ0g6 Ci0tICAgICAgZm10Ojpmb3JtYXRfdG8oSXRlciwgIk5ldHdvcmsgdW5yZWFjaGFibGUuInN2KTsK LS0gICAgICBicmVhazsKLS0gICAgY2FzZSBfX1dBU0lfRVJSTk9fTkZJTEU6Ci0tICAgICAgZm10 Ojpmb3JtYXRfdG8oSXRlciwgIlRvbyBtYW55IGZpbGVzIG9wZW4gaW4gc3lzdGVtLiJzdik7Ci0t ICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgX19XQVNJX0VSUk5PX05PQlVGUzoKLS0gICAgICBmbXQ6 OmZvcm1hdF90byhJdGVyLCAiTm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZS4ic3YpOwotLSAgICAg IGJyZWFrOwotLSAgICBjYXNlIF9fV0FTSV9FUlJOT19OT0RFVjoKLS0gICAgICBmbXQ6OmZvcm1h dF90byhJdGVyLCAiTm8gc3VjaCBkZXZpY2UuInN2KTsKLS0gICAgICBicmVhazsKLS0gICAgY2Fz ZSBfX1dBU0lfRVJSTk9fTk9FTlQ6Ci0tICAgICAgZm10Ojpmb3JtYXRfdG8oSXRlciwgIk5vIHN1 Y2ggZmlsZSBvciBkaXJlY3RvcnkuInN2KTsKLS0gICAgICBicmVhazsKLS0gICAgY2FzZSBfX1dB U0lfRVJSTk9fTk9FWEVDOgotLSAgICAgIGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICJFeGVjdXRhYmxl IGZpbGUgZm9ybWF0IGVycm9yLiJzdik7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgX19XQVNJ X0VSUk5PX05PTENLOgotLSAgICAgIGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICJObyBsb2NrcyBhdmFp bGFibGUuInN2KTsKLS0gICAgICBicmVhazsKLS0gICAgY2FzZSBfX1dBU0lfRVJSTk9fTk9MSU5L OgotLSAgICAgIGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICJSZXNlcnZlZC4ic3YpOwotLSAgICAgIGJy ZWFrOwotLSAgICBjYXNlIF9fV0FTSV9FUlJOT19OT01FTToKLS0gICAgICBmbXQ6OmZvcm1hdF90 byhJdGVyLCAiTm90IGVub3VnaCBzcGFjZS4ic3YpOwotLSAgICAgIGJyZWFrOwotLSAgICBjYXNl IF9fV0FTSV9FUlJOT19OT01TRzoKLS0gICAgICBmbXQ6OmZvcm1hdF90byhJdGVyLCAiTm8gbWVz c2FnZSBvZiB0aGUgZGVzaXJlZCB0eXBlLiJzdik7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2Ug X19XQVNJX0VSUk5PX05PUFJPVE9PUFQ6Ci0tICAgICAgZm10Ojpmb3JtYXRfdG8oSXRlciwgIlBy b3RvY29sIG5vdCBhdmFpbGFibGUuInN2KTsKLS0gICAgICBicmVhazsKLS0gICAgY2FzZSBfX1dB U0lfRVJSTk9fTk9TUEM6Ci0tICAgICAgZm10Ojpmb3JtYXRfdG8oSXRlciwgIk5vIHNwYWNlIGxl ZnQgb24gZGV2aWNlLiJzdik7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgX19XQVNJX0VSUk5P X05PU1lTOgotLSAgICAgIGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICJGdW5jdGlvbiBub3Qgc3VwcG9y dGVkLiJzdik7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgX19XQVNJX0VSUk5PX05PVENPTk46 Ci0tICAgICAgZm10Ojpmb3JtYXRfdG8oSXRlciwgIlRoZSBzb2NrZXQgaXMgbm90IGNvbm5lY3Rl ZC4ic3YpOwotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIF9fV0FTSV9FUlJOT19OT1RESVI6Ci0t ICAgICAgZm10Ojpmb3JtYXRfdG8oSXRlciwKLS0gICAgICAgICAgICAgICAgICAgICAiTm90IGEg ZGlyZWN0b3J5IG9yIGEgc3ltYm9saWMgbGluayB0byBhIGRpcmVjdG9yeS4ic3YpOwotLSAgICAg IGJyZWFrOwotLSAgICBjYXNlIF9fV0FTSV9FUlJOT19OT1RFTVBUWToKLS0gICAgICBmbXQ6OmZv cm1hdF90byhJdGVyLCAiRGlyZWN0b3J5IG5vdCBlbXB0eS4ic3YpOwotLSAgICAgIGJyZWFrOwot LSAgICBjYXNlIF9fV0FTSV9FUlJOT19OT1RSRUNPVkVSQUJMRToKLS0gICAgICBmbXQ6OmZvcm1h dF90byhJdGVyLCAiU3RhdGUgbm90IHJlY292ZXJhYmxlLiJzdik7Ci0tICAgICAgYnJlYWs7Ci0t ICAgIGNhc2UgX19XQVNJX0VSUk5PX05PVFNPQ0s6Ci0tICAgICAgZm10Ojpmb3JtYXRfdG8oSXRl ciwgIk5vdCBhIHNvY2tldC4ic3YpOwotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIF9fV0FTSV9F UlJOT19OT1RTVVA6Ci0tICAgICAgZm10Ojpmb3JtYXRfdG8oSXRlciwKLS0gICAgICAgICAgICAg ICAgICAgICAiTm90IHN1cHBvcnRlZCwgb3Igb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gc29j a2V0LiJzdik7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgX19XQVNJX0VSUk5PX05PVFRZOgot LSAgICAgIGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICJJbmFwcHJvcHJpYXRlIEkvTyBjb250cm9sIG9w ZXJhdGlvbi4ic3YpOwotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIF9fV0FTSV9FUlJOT19OWElP OgotLSAgICAgIGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICJObyBzdWNoIGRldmljZSBvciBhZGRyZXNz LiJzdik7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgX19XQVNJX0VSUk5PX09WRVJGTE9XOgot LSAgICAgIGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICJWYWx1ZSB0b28gbGFyZ2UgdG8gYmUgc3RvcmVk IGluIGRhdGEgdHlwZS4ic3YpOwotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIF9fV0FTSV9FUlJO T19PV05FUkRFQUQ6Ci0tICAgICAgZm10Ojpmb3JtYXRfdG8oSXRlciwgIlByZXZpb3VzIG93bmVy IGRpZWQuInN2KTsKLS0gICAgICBicmVhazsKLS0gICAgY2FzZSBfX1dBU0lfRVJSTk9fUEVSTToK LS0gICAgICBmbXQ6OmZvcm1hdF90byhJdGVyLCAiT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQuInN2 KTsKLS0gICAgICBicmVhazsKLS0gICAgY2FzZSBfX1dBU0lfRVJSTk9fUElQRToKLS0gICAgICBm bXQ6OmZvcm1hdF90byhJdGVyLCAiQnJva2VuIHBpcGUuInN2KTsKLS0gICAgICBicmVhazsKLS0g ICAgY2FzZSBfX1dBU0lfRVJSTk9fUFJPVE86Ci0tICAgICAgZm10Ojpmb3JtYXRfdG8oSXRlciwg IlByb3RvY29sIGVycm9yLiJzdik7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgX19XQVNJX0VS Uk5PX1BST1RPTk9TVVBQT1JUOgotLSAgICAgIGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICJQcm90b2Nv bCBub3Qgc3VwcG9ydGVkLiJzdik7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgX19XQVNJX0VS Uk5PX1BST1RPVFlQRToKLS0gICAgICBmbXQ6OmZvcm1hdF90byhJdGVyLCAiUHJvdG9jb2wgd3Jv bmcgdHlwZSBmb3Igc29ja2V0LiJzdik7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgX19XQVNJ X0VSUk5PX1JBTkdFOgotLSAgICAgIGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICJSZXN1bHQgdG9vIGxh cmdlLiJzdik7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgX19XQVNJX0VSUk5PX1JPRlM6Ci0t ICAgICAgZm10Ojpmb3JtYXRfdG8oSXRlciwgIlJlYWQtb25seSBmaWxlIHN5c3RlbS4ic3YpOwot LSAgICAgIGJyZWFrOwotLSAgICBjYXNlIF9fV0FTSV9FUlJOT19TUElQRToKLS0gICAgICBmbXQ6 OmZvcm1hdF90byhJdGVyLCAiSW52YWxpZCBzZWVrLiJzdik7Ci0tICAgICAgYnJlYWs7Ci0tICAg IGNhc2UgX19XQVNJX0VSUk5PX1NSQ0g6Ci0tICAgICAgZm10Ojpmb3JtYXRfdG8oSXRlciwgIk5v IHN1Y2ggcHJvY2Vzcy4ic3YpOwotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIF9fV0FTSV9FUlJO T19TVEFMRToKLS0gICAgICBmbXQ6OmZvcm1hdF90byhJdGVyLCAiUmVzZXJ2ZWQuInN2KTsKLS0g ICAgICBicmVhazsKLS0gICAgY2FzZSBfX1dBU0lfRVJSTk9fVElNRURPVVQ6Ci0tICAgICAgZm10 Ojpmb3JtYXRfdG8oSXRlciwgIkNvbm5lY3Rpb24gdGltZWQgb3V0LiJzdik7Ci0tICAgICAgYnJl YWs7Ci0tICAgIGNhc2UgX19XQVNJX0VSUk5PX1RYVEJTWToKLS0gICAgICBmbXQ6OmZvcm1hdF90 byhJdGVyLCAiVGV4dCBmaWxlIGJ1c3kuInN2KTsKLS0gICAgICBicmVhazsKLS0gICAgY2FzZSBf X1dBU0lfRVJSTk9fWERFVjoKLS0gICAgICBmbXQ6OmZvcm1hdF90byhJdGVyLCAiQ3Jvc3MtZGV2 aWNlIGxpbmsuInN2KTsKLS0gICAgICBicmVhazsKLS0gICAgY2FzZSBfX1dBU0lfRVJSTk9fTk9U Q0FQQUJMRToKLS0gICAgICBmbXQ6OmZvcm1hdF90byhJdGVyLCAiRXh0ZW5zaW9uOiBDYXBhYmls aXRpZXMgaW5zdWZmaWNpZW50LiJzdik7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgX19XQVNJ X0VSUk5PX0FJQUREUkZBTUlMWToKLS0gICAgICBmbXQ6OmZvcm1hdF90byhJdGVyLAotLSAgICAg ICAgICAgICAgICAgICAgICJUaGUgc3BlY2lmaWVkIG5ldHdvcmsgaG9zdCBkb2VzIG5vdCBoYXZl IGFueSBuZXR3b3JrICIKLS0gICAgICAgICAgICAgICAgICAgICAiYWRkcmVzc2VzIGluIHRoZSBy ZXF1ZXN0ZWQgYWRkcmVzcyBmYW1pbHkuInN2KTsKLS0gICAgICBicmVhazsKLS0gICAgY2FzZSBf X1dBU0lfRVJSTk9fQUlBR0FJTjoKLS0gICAgICBmbXQ6OmZvcm1hdF90byhJdGVyLCAiVHJ5IGFn YWluIGxhdGVyLiJzdik7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgX19XQVNJX0VSUk5PX0FJ QkFERkxBRzoKLS0gICAgICBmbXQ6OmZvcm1hdF90byhJdGVyLCAiSGludHMuYWlfZmxhZ3MgY29u dGFpbnMgaW52YWxpZCBmbGFncyJzdik7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgX19XQVNJ X0VSUk5PX0FJRkFJTDoKLS0gICAgICBmbXQ6OmZvcm1hdF90bygKLS0gICAgICAgICAgSXRlciwg IlRoZSBuYW1lIHNlcnZlciByZXR1cm5lZCBhIHBlcm1hbmVudCBmYWlsdXJlIGluZGljYXRpb24u InN2KTsKLS0gICAgICBicmVhazsKLS0gICAgY2FzZSBfX1dBU0lfRVJSTk9fQUlGQU1JTFk6Ci0t ICAgICAgZm10Ojpmb3JtYXRfdG8oSXRlciwgIlRoZSByZXF1ZXN0ZWQgYWRkcmVzcyBmYW1pbHkg aXMgbm90IHN1cHBvcnRlZC4ic3YpOwotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIF9fV0FTSV9F UlJOT19BSU1FTU9SWToKLS0gICAgICBmbXQ6OmZvcm1hdF90byhJdGVyLCAiQWRkcmluZm8gb3V0 IG9mIG1lbW9yeS4ic3YpOwotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIF9fV0FTSV9FUlJOT19B SU5PREFUQToKLS0gICAgICBmbXQ6OmZvcm1hdF90byhJdGVyLCAiTmV0d29yayBob3N0IGV4aXN0 cywgYnV0IGRvZXMgbm90IGhhdmUgYW55IG5ldHdvcmsgIgotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICJhZGRyZXNzZXMgZGVmaW5lZC4ic3YpOwotLSAgICAgIGJyZWFrOwotLSAgICBjYXNl IF9fV0FTSV9FUlJOT19BSU5PTkFNRToKLS0gICAgICBmbXQ6OmZvcm1hdF90bygKLS0gICAgICAg ICAgSXRlciwKLS0gICAgICAgICAgIk5vZGUgb3Igc2VydmljZSBpcyBub3Qga25vd247IG9yIGJv dGggbm9kZSBhbmQgc2VydmljZSBhcmUgTlVMTC4ic3YpOwotLSAgICAgIGJyZWFrOwotLSAgICBj YXNlIF9fV0FTSV9FUlJOT19BSVNFUlZJQ0U6Ci0tICAgICAgZm10Ojpmb3JtYXRfdG8oCi0tICAg ICAgICAgIEl0ZXIsICJTZXJ2aWNlIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoZSByZXF1ZXN0ZWQg c29ja2V0IHR5cGUuInN2KTsKLS0gICAgICBicmVhazsKLS0gICAgY2FzZSBfX1dBU0lfRVJSTk9f QUlTT0NLVFlQRToKLS0gICAgICBmbXQ6OmZvcm1hdF90byhJdGVyLCAiVGhlIHJlcXVlc3RlZCBz b2NrZXQgdHlwZSBpcyBub3Qgc3VwcG9ydGVkLiJzdik7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNh c2UgX19XQVNJX0VSUk5PX0FJU1lTVEVNOgotLSAgICAgIGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICJP dGhlciBzeXN0ZW0gZXJyb3IuInN2KTsKLS0gICAgICBicmVhazsKLS0gICAgZGVmYXVsdDoKLS0g ICAgICBmbXQ6OmZvcm1hdF90bygKLS0gICAgICAgICAgSXRlciwgIlVua25vd24gZXJyb3IgY29k ZSB7fSJzdiwKLS0gICAgICAgICAgc3RhdGljX2Nhc3Q8c3RkOjp1bmRlcmx5aW5nX3R5cGVfdDxf X3dhc2lfZXJybm9fdD4+KEVyck5vKSk7Ci0tICAgICAgYnJlYWs7Ci0tICAgIH0KLS0gICAgcmV0 dXJuIGZtdDo6Zm9ybWF0dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+Ojpmb3JtYXQoCi0tICAgICAgICBz dGQ6OnN0cmluZ192aWV3KEJ1ZmZlci5kYXRhKCksIEJ1ZmZlci5zaXplKCkpLCBDdHgpOwotLSAg fQotLX07Ci1kaWZmIC0tZ2l0IGEvbGliL2NvbW1vbi9DTWFrZUxpc3RzLnR4dCBiL2xpYi9jb21t b24vQ01ha2VMaXN0cy50eHQKLWluZGV4IGJmMmJmMzdlLi5hM2MyZDg2MSAxMDA2NDQKLS0tLSBh L2xpYi9jb21tb24vQ01ha2VMaXN0cy50eHQKLSsrKyBiL2xpYi9jb21tb24vQ01ha2VMaXN0cy50 eHQKLUBAIC0yNCw3ICsyNCw3IEBAIGVsc2UoKQotICAgRmV0Y2hDb250ZW50X0RlY2xhcmUoCi0g ICAgIHNwZGxvZwotICAgICBHSVRfUkVQT1NJVE9SWSBodHRwczovL2dpdGh1Yi5jb20vZ2FiaW1l L3NwZGxvZy5naXQKLS0gICAgR0lUX1RBRyAgICAgICAgdjEuMTMuMAotKyAgICBHSVRfVEFHICAg ICAgICB2MS45LjAKLSAgICAgR0lUX1NIQUxMT1cgICAgVFJVRQotICAgKQotICAgc2V0KFNQRExP R19CVUlMRF9TSEFSRUQgT0ZGIENBQ0hFIEJPT0wgIkJ1aWxkIHNoYXJlZCBsaWJyYXJ5IiBGT1JD RSkKLWRpZmYgLS1naXQgYS9saWIvY29tbW9uL2VycmluZm8uY3BwIGIvbGliL2NvbW1vbi9lcnJp bmZvLmNwcAotaW5kZXggMTg4YTE4MzYuLjJkZmJmZjA5IDEwMDY0NAotLS0tIGEvbGliL2NvbW1v bi9lcnJpbmZvLmNwcAotKysrIGIvbGliL2NvbW1vbi9lcnJpbmZvLmNwcAotQEAgLTUsMzEzICs1 LDI2NiBAQAotICNpbmNsdWRlICJjb21tb24vZXJyY29kZS5oIgotICNpbmNsdWRlICJjb21tb24v aGV4c3RyLmgiCi0gCi0tdXNpbmcgbmFtZXNwYWNlIHN0ZDo6bGl0ZXJhbHM7Ci0tCi0tZm10Ojpm b3JtYXRfY29udGV4dDo6aXRlcmF0b3IKLS1mbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6RXJySW5m bzo6SW5mb0ZpbGU+Ojpmb3JtYXQoCi0tICAgIGNvbnN0IFdhc21FZGdlOjpFcnJJbmZvOjpJbmZv RmlsZSAmSW5mbywKLS0gICAgZm10Ojpmb3JtYXRfY29udGV4dCAmQ3R4KSBjb25zdCBub2V4Y2Vw dCB7Ci0tICBmbXQ6Om1lbW9yeV9idWZmZXIgQnVmZmVyOwotLSAgZm10Ojpmb3JtYXRfdG8oc3Rk OjpiYWNrX2luc2VydGVyKEJ1ZmZlciksICIgICAgRmlsZSBuYW1lOiB7fSJzdiwKLS0gICAgICAg ICAgICAgICAgIEluZm8uRmlsZU5hbWUpOwotLSAgcmV0dXJuIGZvcm1hdHRlcjxzdGQ6OnN0cmlu Z192aWV3Pjo6Zm9ybWF0KAotLSAgICAgIHN0ZDo6c3RyaW5nX3ZpZXcoQnVmZmVyLmRhdGEoKSwg QnVmZmVyLnNpemUoKSksIEN0eCk7Ci0rbmFtZXNwYWNlIFdhc21FZGdlIHsKLStuYW1lc3BhY2Ug RXJySW5mbyB7Ci0rc3RkOjpvc3RyZWFtICZvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSAmT1MsIGNv bnN0IHN0cnVjdCBJbmZvRmlsZSAmUmhzKSB7Ci0rICBPUyA8PCAiICAgIEZpbGUgbmFtZTogIiA8 PCBSaHMuRmlsZU5hbWU7Ci0rICByZXR1cm4gT1M7Ci0gfQotIAotLWZtdDo6Zm9ybWF0X2NvbnRl eHQ6Oml0ZXJhdG9yCi0tZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6OkVyckluZm86OkluZm9Mb2Fk aW5nPjo6Zm9ybWF0KAotLSAgICBjb25zdCBXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0xvYWRpbmcg JkluZm8sCi0tICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkgY29uc3Qgbm9leGNlcHQgewot LSAgZm10OjptZW1vcnlfYnVmZmVyIEJ1ZmZlcjsKLS0gIGZtdDo6Zm9ybWF0X3RvKHN0ZDo6YmFj a19pbnNlcnRlcihCdWZmZXIpLCAiICAgIEJ5dGVjb2RlIG9mZnNldDogMHh7OjA4eH0ic3YsCi0t ICAgICAgICAgICAgICAgICBJbmZvLk9mZnNldCk7Ci0tICByZXR1cm4gZm9ybWF0dGVyPHN0ZDo6 c3RyaW5nX3ZpZXc+Ojpmb3JtYXQoCi0tICAgICAgc3RkOjpzdHJpbmdfdmlldyhCdWZmZXIuZGF0 YSgpLCBCdWZmZXIuc2l6ZSgpKSwgQ3R4KTsKLStzdGQ6Om9zdHJlYW0gJm9wZXJhdG9yPDwoc3Rk Ojpvc3RyZWFtICZPUywgY29uc3Qgc3RydWN0IEluZm9Mb2FkaW5nICZSaHMpIHsKLSsgIE9TIDw8 ICIgICAgQnl0ZWNvZGUgb2Zmc2V0OiAiIDw8IGNvbnZlcnRVSW50VG9IZXhTdHIoUmhzLk9mZnNl dCk7Ci0rICByZXR1cm4gT1M7Ci0gfQotIAotLWZtdDo6Zm9ybWF0X2NvbnRleHQ6Oml0ZXJhdG9y Ci0tZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6OkVyckluZm86OkluZm9BU1Q+Ojpmb3JtYXQoCi0t ICAgIGNvbnN0IFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvQVNUICZJbmZvLAotLSAgICBmbXQ6OmZv cm1hdF9jb250ZXh0ICZDdHgpIGNvbnN0IG5vZXhjZXB0IHsKLS0gIGZtdDo6bWVtb3J5X2J1ZmZl ciBCdWZmZXI7Ci0tICBmbXQ6OmZvcm1hdF90byhzdGQ6OmJhY2tfaW5zZXJ0ZXIoQnVmZmVyKSwg IiAgICBBdCBBU1Qgbm9kZToge30ic3YsCi0tICAgICAgICAgICAgICAgICBJbmZvLk5vZGVBdHRy KTsKLS0gIHJldHVybiBmb3JtYXR0ZXI8c3RkOjpzdHJpbmdfdmlldz46OmZvcm1hdCgKLS0gICAg ICBzdGQ6OnN0cmluZ192aWV3KEJ1ZmZlci5kYXRhKCksIEJ1ZmZlci5zaXplKCkpLCBDdHgpOwot K3N0ZDo6b3N0cmVhbSAmb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0gJk9TLCBjb25zdCBzdHJ1Y3Qg SW5mb0FTVCAmUmhzKSB7Ci0rICBPUyA8PCAiICAgIEF0IEFTVCBub2RlOiAiIDw8IEFTVE5vZGVB dHRyU3RyW1Jocy5Ob2RlQXR0cl07Ci0rICByZXR1cm4gT1M7Ci0gfQotIAotLWZtdDo6Zm9ybWF0 X2NvbnRleHQ6Oml0ZXJhdG9yCi0tZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6OkVyckluZm86Oklu Zm9JbnN0YW5jZUJvdW5kPjo6Zm9ybWF0KAotLSAgICBjb25zdCBXYXNtRWRnZTo6RXJySW5mbzo6 SW5mb0luc3RhbmNlQm91bmQgJkluZm8sCi0tICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkg Y29uc3Qgbm9leGNlcHQgewotLSAgZm10OjptZW1vcnlfYnVmZmVyIEJ1ZmZlcjsKLS0gIGZtdDo6 Zm9ybWF0X3RvKHN0ZDo6YmFja19pbnNlcnRlcihCdWZmZXIpLAotLSAgICAgICAgICAgICAgICAg IiAgICBJbnN0YW5jZSB7fSBoYXMgbGltaXRlZCBudW1iZXIge30gLCBHb3Q6IHt9InN2LAotLSAg ICAgICAgICAgICAgICAgSW5mby5JbnN0YW5jZSwgSW5mby5MaW1pdGVkLCBJbmZvLk51bWJlcik7 Ci0tICByZXR1cm4gZm9ybWF0dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+Ojpmb3JtYXQoCi0tICAgICAg c3RkOjpzdHJpbmdfdmlldyhCdWZmZXIuZGF0YSgpLCBCdWZmZXIuc2l6ZSgpKSwgQ3R4KTsKLStz dGQ6Om9zdHJlYW0gJm9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtICZPUywKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3Qgc3RydWN0IEluZm9JbnN0YW5jZUJvdW5kICZSaHMpIHsKLSsgIE9T IDw8ICIgICAgSW5zdGFuY2UgIiA8PCBFeHRlcm5hbFR5cGVTdHJbUmhzLkluc3RhbmNlXQotKyAg ICAgPDwgIiBoYXMgbGltaXRlZCBudW1iZXIgIiA8PCBSaHMuTGltaXRlZCA8PCAiICwgR290OiAi IDw8IFJocy5OdW1iZXI7Ci0rICByZXR1cm4gT1M7Ci0gfQotIAotLWZtdDo6Zm9ybWF0X2NvbnRl eHQ6Oml0ZXJhdG9yCi0tZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6OkVyckluZm86OkluZm9Gb3Ji aWRJbmRleD46OmZvcm1hdCgKLS0gICAgY29uc3QgV2FzbUVkZ2U6OkVyckluZm86OkluZm9Gb3Ji aWRJbmRleCAmSW5mbywKLS0gICAgZm10Ojpmb3JtYXRfY29udGV4dCAmQ3R4KSBjb25zdCBub2V4 Y2VwdCB7Ci0tICBmbXQ6Om1lbW9yeV9idWZmZXIgQnVmZmVyOwotLSAgYXV0byBJdGVyID0KLS0g ICAgICBmbXQ6OmZvcm1hdF90byhzdGQ6OmJhY2tfaW5zZXJ0ZXIoQnVmZmVyKSwKLS0gICAgICAg ICAgICAgICAgICAgICAiICAgIFdoZW4gY2hlY2tpbmcge30gaW5kZXg6IHt9ICwgT3V0IG9mIGJv dW5kYXJ5OiAic3YsCi0tICAgICAgICAgICAgICAgICAgICAgSW5mby5DYXRlZ29yeSwgSW5mby5J bmRleCk7Ci0tICBpZiAoSW5mby5Cb3VuZGFyeSA+IDApIHsKLS0gICAgZm10Ojpmb3JtYXRfdG8o SXRlciwgInt9InN2LCBJbmZvLkJvdW5kYXJ5IC0gMSk7Ci0rc3RkOjpvc3RyZWFtICZvcGVyYXRv cjw8KHN0ZDo6b3N0cmVhbSAmT1MsIGNvbnN0IHN0cnVjdCBJbmZvRm9yYmlkSW5kZXggJlJocykg ewotKyAgT1MgPDwgIiAgICBXaGVuIGNoZWNraW5nICIgPDwgSW5kZXhDYXRlZ29yeVN0cltSaHMu Q2F0ZWdvcnldCi0rICAgICA8PCAiIGluZGV4OiAiIDw8IFJocy5JbmRleCA8PCAiICwgT3V0IG9m IGJvdW5kYXJ5OiAiOwotKyAgaWYgKFJocy5Cb3VuZGFyeSA+IDApIHsKLSsgICAgT1MgPDwgKFJo cy5Cb3VuZGFyeSAtIDEpOwotICAgfSBlbHNlIHsKLS0gICAgZm10Ojpmb3JtYXRfdG8oSXRlciwg ImVtcHR5InN2KTsKLSsgICAgT1MgPDwgImVtcHR5IjsKLSAgIH0KLS0gIHJldHVybiBmb3JtYXR0 ZXI8c3RkOjpzdHJpbmdfdmlldz46OmZvcm1hdCgKLS0gICAgICBzdGQ6OnN0cmluZ192aWV3KEJ1 ZmZlci5kYXRhKCksIEJ1ZmZlci5zaXplKCkpLCBDdHgpOwotKyAgcmV0dXJuIE9TOwotIH0KLSAK LS1mbXQ6OmZvcm1hdF9jb250ZXh0OjppdGVyYXRvcgotLWZtdDo6Zm9ybWF0dGVyPFdhc21FZGdl OjpFcnJJbmZvOjpJbmZvRXhwb3J0aW5nPjo6Zm9ybWF0KAotLSAgICBjb25zdCBXYXNtRWRnZTo6 RXJySW5mbzo6SW5mb0V4cG9ydGluZyAmSW5mbywKLS0gICAgZm10Ojpmb3JtYXRfY29udGV4dCAm Q3R4KSBjb25zdCBub2V4Y2VwdCB7Ci0tICBmbXQ6Om1lbW9yeV9idWZmZXIgQnVmZmVyOwotLSAg Zm10Ojpmb3JtYXRfdG8oc3RkOjpiYWNrX2luc2VydGVyKEJ1ZmZlciksCi0tICAgICAgICAgICAg ICAgICAiICAgIER1cGxpY2F0ZWQgZXhwb3J0aW5nIG5hbWU6IFwie31cIiJzdiwgSW5mby5FeHRO YW1lKTsKLS0gIHJldHVybiBmb3JtYXR0ZXI8c3RkOjpzdHJpbmdfdmlldz46OmZvcm1hdCgKLS0g ICAgICBzdGQ6OnN0cmluZ192aWV3KEJ1ZmZlci5kYXRhKCksIEJ1ZmZlci5zaXplKCkpLCBDdHgp OwotK3N0ZDo6b3N0cmVhbSAmb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0gJk9TLCBjb25zdCBzdHJ1 Y3QgSW5mb0V4cG9ydGluZyAmUmhzKSB7Ci0rICBPUyA8PCAiICAgIER1cGxpY2F0ZWQgZXhwb3J0 aW5nIG5hbWU6IFwiIiA8PCBSaHMuRXh0TmFtZSA8PCAiXCIiOwotKyAgcmV0dXJuIE9TOwotIH0K LSAKLS1mbXQ6OmZvcm1hdF9jb250ZXh0OjppdGVyYXRvcgotLWZtdDo6Zm9ybWF0dGVyPFdhc21F ZGdlOjpFcnJJbmZvOjpJbmZvTGltaXQ+Ojpmb3JtYXQoCi0tICAgIGNvbnN0IFdhc21FZGdlOjpF cnJJbmZvOjpJbmZvTGltaXQgJkluZm8sCi0tICAgIGZtdDo6Zm9ybWF0X2NvbnRleHQgJkN0eCkg Y29uc3Qgbm9leGNlcHQgewotLSAgZm10OjptZW1vcnlfYnVmZmVyIEJ1ZmZlcjsKLS0gIGF1dG8g SXRlciA9IGZtdDo6Zm9ybWF0X3RvKHN0ZDo6YmFja19pbnNlcnRlcihCdWZmZXIpLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIiAgICBJbiBMaW1pdCB0eXBlOiB7eyBtaW46IHt9InN2 LCBJbmZvLkxpbU1pbik7Ci0tICBpZiAoSW5mby5MaW1IYXNNYXgpIHsKLS0gICAgSXRlciA9IGZt dDo6Zm9ybWF0X3RvKEl0ZXIsICIgLCBtYXg6IHt9InN2LCBJbmZvLkxpbU1heCk7Ci0rc3RkOjpv c3RyZWFtICZvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSAmT1MsIGNvbnN0IHN0cnVjdCBJbmZvTGlt aXQgJlJocykgewotKyAgT1MgPDwgIiAgICBJbiBMaW1pdCB0eXBlOiB7IG1pbjogIiA8PCBSaHMu TGltTWluOwotKyAgaWYgKFJocy5MaW1IYXNNYXgpIHsKLSsgICAgT1MgPDwgIiAsIG1heDogIiA8 PCBSaHMuTGltTWF4OwotICAgfQotLSAgZm10Ojpmb3JtYXRfdG8oSXRlciwgIiB9fSJzdik7Ci0t ICByZXR1cm4gZm9ybWF0dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+Ojpmb3JtYXQoCi0tICAgICAgc3Rk OjpzdHJpbmdfdmlldyhCdWZmZXIuZGF0YSgpLCBCdWZmZXIuc2l6ZSgpKSwgQ3R4KTsKLSsgIE9T IDw8ICIgfSI7Ci0rICByZXR1cm4gT1M7Ci0gfQotIAotLWZtdDo6Zm9ybWF0X2NvbnRleHQ6Oml0 ZXJhdG9yCi0tZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6OkVyckluZm86OkluZm9SZWdpc3Rlcmlu Zz46OmZvcm1hdCgKLS0gICAgY29uc3QgV2FzbUVkZ2U6OkVyckluZm86OkluZm9SZWdpc3Rlcmlu ZyAmSW5mbywKLS0gICAgZm10Ojpmb3JtYXRfY29udGV4dCAmQ3R4KSBjb25zdCBub2V4Y2VwdCB7 Ci0tICBmbXQ6Om1lbW9yeV9idWZmZXIgQnVmZmVyOwotLSAgZm10Ojpmb3JtYXRfdG8oc3RkOjpi YWNrX2luc2VydGVyKEJ1ZmZlciksICIgICAgTW9kdWxlIG5hbWU6IFwie31cIiJzdiwKLS0gICAg ICAgICAgICAgICAgIEluZm8uTW9kTmFtZSk7Ci0tICByZXR1cm4gZm9ybWF0dGVyPHN0ZDo6c3Ry aW5nX3ZpZXc+Ojpmb3JtYXQoCi0tICAgICAgc3RkOjpzdHJpbmdfdmlldyhCdWZmZXIuZGF0YSgp LCBCdWZmZXIuc2l6ZSgpKSwgQ3R4KTsKLStzdGQ6Om9zdHJlYW0gJm9wZXJhdG9yPDwoc3RkOjpv c3RyZWFtICZPUywgY29uc3Qgc3RydWN0IEluZm9SZWdpc3RlcmluZyAmUmhzKSB7Ci0rICBPUyA8 PCAiICAgIE1vZHVsZSBuYW1lOiBcIiIgPDwgUmhzLk1vZE5hbWUgPDwgIlwiIjsKLSsgIHJldHVy biBPUzsKLSB9Ci0gCi0tZm10Ojpmb3JtYXRfY29udGV4dDo6aXRlcmF0b3IKLS1mbXQ6OmZvcm1h dHRlcjxXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0xpbmtpbmc+Ojpmb3JtYXQoCi0tICAgIGNvbnN0 IFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvTGlua2luZyAmSW5mbywKLS0gICAgZm10Ojpmb3JtYXRf Y29udGV4dCAmQ3R4KSBjb25zdCBub2V4Y2VwdCB7Ci0tICBmbXQ6Om1lbW9yeV9idWZmZXIgQnVm ZmVyOwotLSAgZm10Ojpmb3JtYXRfdG8oc3RkOjpiYWNrX2luc2VydGVyKEJ1ZmZlciksCi0tICAg ICAgICAgICAgICAgICAiICAgIFdoZW4gbGlua2luZyBtb2R1bGU6IFwie31cIiAsIHt9IG5hbWU6 IFwie31cIiJzdiwKLS0gICAgICAgICAgICAgICAgIEluZm8uTW9kTmFtZSwgSW5mby5FeHRUeXBl LCBJbmZvLkV4dE5hbWUpOwotLSAgcmV0dXJuIGZvcm1hdHRlcjxzdGQ6OnN0cmluZ192aWV3Pjo6 Zm9ybWF0KAotLSAgICAgIHN0ZDo6c3RyaW5nX3ZpZXcoQnVmZmVyLmRhdGEoKSwgQnVmZmVyLnNp emUoKSksIEN0eCk7Ci0rc3RkOjpvc3RyZWFtICZvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSAmT1Ms IGNvbnN0IHN0cnVjdCBJbmZvTGlua2luZyAmUmhzKSB7Ci0rICBPUyA8PCAiICAgIFdoZW4gbGlu a2luZyBtb2R1bGU6IFwiIiA8PCBSaHMuTW9kTmFtZSA8PCAiXCIgLCAiCi0rICAgICA8PCBFeHRl cm5hbFR5cGVTdHJbUmhzLkV4dFR5cGVdIDw8ICIgbmFtZTogXCIiIDw8IFJocy5FeHROYW1lIDw8 ICJcIiI7Ci0rICByZXR1cm4gT1M7Ci0gfQotIAotLWZtdDo6Zm9ybWF0X2NvbnRleHQ6Oml0ZXJh dG9yCi0tZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6OkVyckluZm86OkluZm9FeGVjdXRpbmc+Ojpm b3JtYXQoCi0tICAgIGNvbnN0IFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvRXhlY3V0aW5nICZJbmZv LAotLSAgICBmbXQ6OmZvcm1hdF9jb250ZXh0ICZDdHgpIGNvbnN0IG5vZXhjZXB0IHsKLS0gIGZt dDo6bWVtb3J5X2J1ZmZlciBCdWZmZXI7Ci0tICBhdXRvIEl0ZXIgPQotLSAgICAgIGZtdDo6Zm9y bWF0X3RvKHN0ZDo6YmFja19pbnNlcnRlcihCdWZmZXIpLCAiICAgIFdoZW4gZXhlY3V0aW5nICJz dik7Ci0tICBpZiAoIUluZm8uTW9kTmFtZS5lbXB0eSgpKSB7Ci0tICAgIEl0ZXIgPSBmbXQ6OmZv cm1hdF90byhJdGVyLCAibW9kdWxlIG5hbWU6IFwie31cIiAsICJzdiwgSW5mby5Nb2ROYW1lKTsK LStzdGQ6Om9zdHJlYW0gJm9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtICZPUywgY29uc3Qgc3RydWN0 IEluZm9FeGVjdXRpbmcgJlJocykgewotKyAgT1MgPDwgIiAgICBXaGVuIGV4ZWN1dGluZyAiOwot KyAgaWYgKFJocy5Nb2ROYW1lICE9ICIiKSB7Ci0rICAgIE9TIDw8ICJtb2R1bGUgbmFtZTogXCIi IDw8IFJocy5Nb2ROYW1lIDw8ICJcIiAsICI7Ci0gICB9Ci0tICBmbXQ6OmZvcm1hdF90byhJdGVy LCAiZnVuY3Rpb24gbmFtZTogXCJ7fVwiInN2LCBJbmZvLkZ1bmNOYW1lKTsKLS0gIHJldHVybiBm b3JtYXR0ZXI8c3RkOjpzdHJpbmdfdmlldz46OmZvcm1hdCgKLS0gICAgICBzdGQ6OnN0cmluZ192 aWV3KEJ1ZmZlci5kYXRhKCksIEJ1ZmZlci5zaXplKCkpLCBDdHgpOwotKyAgT1MgPDwgImZ1bmN0 aW9uIG5hbWU6IFwiIiA8PCBSaHMuRnVuY05hbWUgPDwgIlwiIjsKLSsgIHJldHVybiBPUzsKLSB9 Ci0gCi0tZm10Ojpmb3JtYXRfY29udGV4dDo6aXRlcmF0b3IKLS1mbXQ6OmZvcm1hdHRlcjxXYXNt RWRnZTo6RXJySW5mbzo6SW5mb01pc21hdGNoPjo6Zm9ybWF0KAotLSAgICBjb25zdCBXYXNtRWRn ZTo6RXJySW5mbzo6SW5mb01pc21hdGNoICZJbmZvLAotLSAgICBmbXQ6OmZvcm1hdF9jb250ZXh0 ICZDdHgpIGNvbnN0IG5vZXhjZXB0IHsKLS0gIGZtdDo6bWVtb3J5X2J1ZmZlciBCdWZmZXI7Ci0t ICBhdXRvIEl0ZXIgPSBmbXQ6OmZvcm1hdF90byhzdGQ6OmJhY2tfaW5zZXJ0ZXIoQnVmZmVyKSwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgTWlzbWF0Y2hlZCB7fS4gInN2LCBJ bmZvLkNhdGVnb3J5KTsKLS0gIGF1dG8gRm9ybWF0TGltaXQgPSBbXShhdXRvIE91dCwgYm9vbCBM aW1IYXNNYXgsIHVpbnQzMl90IExpbU1pbiwKLS0gICAgICAgICAgICAgICAgICAgICAgICB1aW50 MzJfdCBMaW1NYXgpIHsKLS0gICAgT3V0ID0gZm10Ojpmb3JtYXRfdG8oT3V0LCAiTGltaXR7e3t9 InN2LCBMaW1NaW4pOwotLSAgICBpZiAoTGltSGFzTWF4KSB7Ci0tICAgICAgT3V0ID0gZm10Ojpm b3JtYXRfdG8oT3V0LCAiICwge30ic3YsIExpbU1heCk7Ci0tICAgIH0KLS0gICAgT3V0ID0gZm10 Ojpmb3JtYXRfdG8oT3V0LCAifX0ic3YpOwotLSAgICByZXR1cm4gT3V0OwotLSAgfTsKLS0gIHN3 aXRjaCAoSW5mby5DYXRlZ29yeSkgewotLSAgY2FzZSBXYXNtRWRnZTo6RXJySW5mbzo6TWlzbWF0 Y2hDYXRlZ29yeTo6QWxpZ25tZW50OgotLSAgICBmbXQ6OmZvcm1hdF90byhJdGVyLCAiRXhwZWN0 ZWQ6IG5lZWQgdG8gPD0ge30gLCBHb3Q6IHt9InN2LAotLSAgICAgICAgICAgICAgICAgICBzdGF0 aWNfY2FzdDx1aW50MzJfdD4oSW5mby5FeHBBbGlnbm1lbnQpLAotLSAgICAgICAgICAgICAgICAg ICAxVUwgPDwgSW5mby5Hb3RBbGlnbm1lbnQpOwotK3N0ZDo6b3N0cmVhbSAmb3BlcmF0b3I8PChz dGQ6Om9zdHJlYW0gJk9TLCBjb25zdCBzdHJ1Y3QgSW5mb01pc21hdGNoICZSaHMpIHsKLSsgIE9T IDw8ICIgICAgTWlzbWF0Y2hlZCAiIDw8IE1pc21hdGNoQ2F0ZWdvcnlTdHJbUmhzLkNhdGVnb3J5 XSA8PCAiLiAiOwotKyAgc3dpdGNoIChSaHMuQ2F0ZWdvcnkpIHsKLSsgIGNhc2UgTWlzbWF0Y2hD YXRlZ29yeTo6QWxpZ25tZW50OgotKyAgICBPUyA8PCAiRXhwZWN0ZWQ6IG5lZWQgdG8gPD0gIiA8 PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oUmhzLkV4cEFsaWdubWVudCkKLSsgICAgICAgPDwgIiAs IEdvdDogIiA8PCAoMVVMIDw8IFJocy5Hb3RBbGlnbm1lbnQpOwotICAgICBicmVhazsKLS0gIGNh c2UgV2FzbUVkZ2U6OkVyckluZm86Ok1pc21hdGNoQ2F0ZWdvcnk6OlZhbHVlVHlwZToKLS0gICAg Zm10Ojpmb3JtYXRfdG8oSXRlciwgIkV4cGVjdGVkOiB7fSAsIEdvdDoge30ic3YsIEluZm8uRXhw VmFsVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgSW5mby5Hb3RWYWxUeXBlKTsKLSsgIGNhc2Ug TWlzbWF0Y2hDYXRlZ29yeTo6VmFsdWVUeXBlOgotKyAgICBPUyA8PCAiRXhwZWN0ZWQ6ICIgPDwg VHlwZUNvZGVTdHJbUmhzLkV4cFZhbFR5cGUuZ2V0Q29kZSgpXQotKyAgICAgICA8PCAiICwgR290 OiAiIDw8IFR5cGVDb2RlU3RyW1Jocy5Hb3RWYWxUeXBlLmdldENvZGUoKV07Ci0gICAgIGJyZWFr OwotLSAgY2FzZSBXYXNtRWRnZTo6RXJySW5mbzo6TWlzbWF0Y2hDYXRlZ29yeTo6VmFsdWVUeXBl czoKLS0gICAgZm10Ojpmb3JtYXRfdG8oSXRlciwgIkV4cGVjdGVkOiB0eXBlc3t7e319fSAsIEdv dDogdHlwZXN7e3t9fX0ic3YsCi0tICAgICAgICAgICAgICAgICAgIGZtdDo6am9pbihJbmZvLkV4 cFBhcmFtcywgIiAsICJzdiksCi0tICAgICAgICAgICAgICAgICAgIGZtdDo6am9pbihJbmZvLkdv dFBhcmFtcywgIiAsICJzdikpOwotKyAgY2FzZSBNaXNtYXRjaENhdGVnb3J5OjpWYWx1ZVR5cGVz OgotKyAgICBPUyA8PCAiRXhwZWN0ZWQ6IHR5cGVzeyI7Ci0rICAgIGZvciAodWludDMyX3QgSSA9 IDA7IEkgPCBSaHMuRXhwUGFyYW1zLnNpemUoKTsgKytJKSB7Ci0rICAgICAgT1MgPDwgVHlwZUNv ZGVTdHJbUmhzLkV4cFBhcmFtc1tJXS5nZXRDb2RlKCldOwotKyAgICAgIGlmIChJIDwgUmhzLkV4 cFBhcmFtcy5zaXplKCkgLSAxKSB7Ci0rICAgICAgICBPUyA8PCAiICwgIjsKLSsgICAgICB9Ci0r ICAgIH0KLSsgICAgT1MgPDwgIn0gLCBHb3Q6IHR5cGVzeyI7Ci0rICAgIGZvciAodWludDMyX3Qg SSA9IDA7IEkgPCBSaHMuR290UGFyYW1zLnNpemUoKTsgKytJKSB7Ci0rICAgICAgT1MgPDwgVHlw ZUNvZGVTdHJbUmhzLkdvdFBhcmFtc1tJXS5nZXRDb2RlKCldOwotKyAgICAgIGlmIChJIDwgUmhz LkdvdFBhcmFtcy5zaXplKCkgLSAxKSB7Ci0rICAgICAgICBPUyA8PCAiICwgIjsKLSsgICAgICB9 Ci0rICAgIH0KLSsgICAgT1MgPDwgIn0iOwotICAgICBicmVhazsKLS0gIGNhc2UgV2FzbUVkZ2U6 OkVyckluZm86Ok1pc21hdGNoQ2F0ZWdvcnk6Ok11dGF0aW9uOgotLSAgICBmbXQ6OmZvcm1hdF90 byhJdGVyLCAiRXhwZWN0ZWQ6IHt9ICwgR290OiB7fSJzdiwgSW5mby5FeHBWYWxNdXQsCi0tICAg ICAgICAgICAgICAgICAgIEluZm8uR290VmFsTXV0KTsKLSsgIGNhc2UgTWlzbWF0Y2hDYXRlZ29y eTo6TXV0YXRpb246Ci0rICAgIE9TIDw8ICJFeHBlY3RlZDogIiA8PCBWYWxNdXRTdHJbUmhzLkV4 cFZhbE11dF0KLSsgICAgICAgPDwgIiAsIEdvdDogIiA8PCBWYWxNdXRTdHJbUmhzLkdvdFZhbE11 dF07Ci0gICAgIGJyZWFrOwotLSAgY2FzZSBXYXNtRWRnZTo6RXJySW5mbzo6TWlzbWF0Y2hDYXRl Z29yeTo6RXh0ZXJuYWxUeXBlOgotLSAgICBmbXQ6OmZvcm1hdF90byhJdGVyLCAiRXhwZWN0ZWQ6 IHt9ICwgR290OiB7fSIsIEluZm8uRXhwRXh0VHlwZSwKLS0gICAgICAgICAgICAgICAgICAgSW5m by5Hb3RFeHRUeXBlKTsKLSsgIGNhc2UgTWlzbWF0Y2hDYXRlZ29yeTo6RXh0ZXJuYWxUeXBlOgot KyAgICBPUyA8PCAiRXhwZWN0ZWQ6ICIgPDwgRXh0ZXJuYWxUeXBlU3RyW1Jocy5FeHBFeHRUeXBl XQotKyAgICAgICA8PCAiICwgR290OiAiIDw8IEV4dGVybmFsVHlwZVN0cltSaHMuR290RXh0VHlw ZV07Ci0gICAgIGJyZWFrOwotLSAgY2FzZSBXYXNtRWRnZTo6RXJySW5mbzo6TWlzbWF0Y2hDYXRl Z29yeTo6RnVuY3Rpb25UeXBlOgotLSAgICBmbXQ6OmZvcm1hdF90byhJdGVyLAotLSAgICAgICAg ICAgICAgICAgICAiRXhwZWN0ZWQ6IEZ1bmNUeXBlIHt7cGFyYW1ze3t7fX19IHJldHVybnN7e3t9 fX19fSAsICIKLS0gICAgICAgICAgICAgICAgICAgIkdvdDogRnVuY1R5cGUge3twYXJhbXN7e3t9 fX0gcmV0dXJuc3t7e319fX19InN2LAotLSAgICAgICAgICAgICAgICAgICBmbXQ6OmpvaW4oSW5m by5FeHBQYXJhbXMsICIgLCAic3YpLAotLSAgICAgICAgICAgICAgICAgICBmbXQ6OmpvaW4oSW5m by5FeHBSZXR1cm5zLCAiICwgInN2KSwKLS0gICAgICAgICAgICAgICAgICAgZm10Ojpqb2luKElu Zm8uR290UGFyYW1zLCAiICwgInN2KSwKLS0gICAgICAgICAgICAgICAgICAgZm10Ojpqb2luKElu Zm8uR290UmV0dXJucywgIiAsICJzdikpOwotKyAgY2FzZSBNaXNtYXRjaENhdGVnb3J5OjpGdW5j dGlvblR5cGU6Ci0rICAgIE9TIDw8ICJFeHBlY3RlZDogRnVuY1R5cGUge3BhcmFtc3siOwotKyAg ICBmb3IgKHVpbnQzMl90IEkgPSAwOyBJIDwgUmhzLkV4cFBhcmFtcy5zaXplKCk7ICsrSSkgewot KyAgICAgIE9TIDw8IFR5cGVDb2RlU3RyW1Jocy5FeHBQYXJhbXNbSV0uZ2V0Q29kZSgpXTsKLSsg ICAgICBpZiAoSSA8IFJocy5FeHBQYXJhbXMuc2l6ZSgpIC0gMSkgewotKyAgICAgICAgT1MgPDwg IiAsICI7Ci0rICAgICAgfQotKyAgICB9Ci0rICAgIE9TIDw8ICJ9IHJldHVybnN7IjsKLSsgICAg Zm9yICh1aW50MzJfdCBJID0gMDsgSSA8IFJocy5FeHBSZXR1cm5zLnNpemUoKTsgKytJKSB7Ci0r ICAgICAgT1MgPDwgVHlwZUNvZGVTdHJbUmhzLkV4cFJldHVybnNbSV0uZ2V0Q29kZSgpXTsKLSsg ICAgICBpZiAoSSA8IFJocy5FeHBSZXR1cm5zLnNpemUoKSAtIDEpIHsKLSsgICAgICAgIE9TIDw8 ICIgLCAiOwotKyAgICAgIH0KLSsgICAgfQotKyAgICBPUyA8PCAifX0gLCBHb3Q6IEZ1bmNUeXBl IHtwYXJhbXN7IjsKLSsgICAgZm9yICh1aW50MzJfdCBJID0gMDsgSSA8IFJocy5Hb3RQYXJhbXMu c2l6ZSgpOyArK0kpIHsKLSsgICAgICBPUyA8PCBUeXBlQ29kZVN0cltSaHMuR290UGFyYW1zW0ld LmdldENvZGUoKV07Ci0rICAgICAgaWYgKEkgPCBSaHMuR290UGFyYW1zLnNpemUoKSAtIDEpIHsK LSsgICAgICAgIE9TIDw8ICIgLCAiOwotKyAgICAgIH0KLSsgICAgfQotKyAgICBPUyA8PCAifSBy ZXR1cm5zeyI7Ci0rICAgIGZvciAodWludDMyX3QgSSA9IDA7IEkgPCBSaHMuR290UmV0dXJucy5z aXplKCk7ICsrSSkgewotKyAgICAgIE9TIDw8IFR5cGVDb2RlU3RyW1Jocy5Hb3RSZXR1cm5zW0ld LmdldENvZGUoKV07Ci0rICAgICAgaWYgKEkgPCBSaHMuR290UmV0dXJucy5zaXplKCkgLSAxKSB7 Ci0rICAgICAgICBPUyA8PCAiICwgIjsKLSsgICAgICB9Ci0rICAgIH0KLSsgICAgT1MgPDwgIn19 IjsKLSAgICAgYnJlYWs7Ci0tICBjYXNlIFdhc21FZGdlOjpFcnJJbmZvOjpNaXNtYXRjaENhdGVn b3J5OjpUYWJsZToKLS0gICAgSXRlciA9IGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICJFeHBlY3RlZDog VGFibGVUeXBlIHt7UmVmVHlwZXt7e319fSAic3YsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICBzdGF0aWNfY2FzdDxXYXNtRWRnZTo6VmFsVHlwZT4oSW5mby5FeHBWYWxUeXBlKSk7Ci0tICAg IEl0ZXIgPSBGb3JtYXRMaW1pdChJdGVyLCBJbmZvLkV4cExpbUhhc01heCwgSW5mby5FeHBMaW1N aW4sIEluZm8uRXhwTGltTWF4KTsKLS0gICAgSXRlciA9IGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICJ9 fSAsIEdvdDogVGFibGVUeXBlIHt7UmVmVHlwZXt7e319fSAic3YsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICBzdGF0aWNfY2FzdDxXYXNtRWRnZTo6VmFsVHlwZT4oSW5mby5Hb3RWYWxUeXBl KSk7Ci0tICAgIEl0ZXIgPSBGb3JtYXRMaW1pdChJdGVyLCBJbmZvLkdvdExpbUhhc01heCwgSW5m by5Hb3RMaW1NaW4sIEluZm8uR290TGltTWF4KTsKLS0gICAgZm10Ojpmb3JtYXRfdG8oSXRlciwg In19InN2KTsKLSsgIGNhc2UgTWlzbWF0Y2hDYXRlZ29yeTo6VGFibGU6Ci0rICAgIE9TIDw8ICJF eHBlY3RlZDogVGFibGVUeXBlIHtSZWZUeXBleyIKLSsgICAgICAgPDwgVHlwZUNvZGVTdHJbc3Rh dGljX2Nhc3Q8VmFsVHlwZT4oUmhzLkV4cFZhbFR5cGUpLmdldENvZGUoKV0KLSsgICAgICAgPDwg In0gTGltaXR7IiA8PCBSaHMuRXhwTGltTWluOwotKyAgICBpZiAoUmhzLkV4cExpbUhhc01heCkg ewotKyAgICAgIE9TIDw8ICIgLCAiIDw8IFJocy5FeHBMaW1NYXg7Ci0rICAgIH0KLSsgICAgT1Mg PDwgIn19ICwgR290OiBUYWJsZVR5cGUge1JlZlR5cGV7IgotKyAgICAgICA8PCBUeXBlQ29kZVN0 cltzdGF0aWNfY2FzdDxWYWxUeXBlPihSaHMuR290VmFsVHlwZSkuZ2V0Q29kZSgpXQotKyAgICAg ICA8PCAifSBMaW1pdHsiIDw8IFJocy5Hb3RMaW1NaW47Ci0rICAgIGlmIChSaHMuR290TGltSGFz TWF4KSB7Ci0rICAgICAgT1MgPDwgIiAsICIgPDwgUmhzLkdvdExpbU1heDsKLSsgICAgfQotKyAg ICBPUyA8PCAifX0iOwotICAgICBicmVhazsKLS0gIGNhc2UgV2FzbUVkZ2U6OkVyckluZm86Ok1p c21hdGNoQ2F0ZWdvcnk6Ok1lbW9yeToKLS0gICAgSXRlciA9IGZtdDo6Zm9ybWF0X3RvKEl0ZXIs ICJFeHBlY3RlZDogTWVtb3J5VHlwZSB7eyJzdik7Ci0tICAgIEl0ZXIgPSBGb3JtYXRMaW1pdChJ dGVyLCBJbmZvLkV4cExpbUhhc01heCwgSW5mby5FeHBMaW1NaW4sIEluZm8uRXhwTGltTWF4KTsK LS0gICAgSXRlciA9IGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICJ9fSAsIEdvdDogTWVtb3J5VHlwZSB7 eyJzdik7Ci0tICAgIEl0ZXIgPSBGb3JtYXRMaW1pdChJdGVyLCBJbmZvLkdvdExpbUhhc01heCwg SW5mby5Hb3RMaW1NaW4sIEluZm8uR290TGltTWF4KTsKLS0gICAgZm10Ojpmb3JtYXRfdG8oSXRl ciwgIn19InN2KTsKLSsgIGNhc2UgTWlzbWF0Y2hDYXRlZ29yeTo6TWVtb3J5OgotKyAgICBPUyA8 PCAiRXhwZWN0ZWQ6IE1lbW9yeVR5cGUge0xpbWl0eyIgPDwgUmhzLkV4cExpbU1pbjsKLSsgICAg aWYgKFJocy5FeHBMaW1IYXNNYXgpIHsKLSsgICAgICBPUyA8PCAiICwgIiA8PCBSaHMuRXhwTGlt TWF4OwotKyAgICB9Ci0rICAgIE9TIDw8ICJ9fSAsIEdvdDogTWVtb3J5VHlwZSB7TGltaXR7IiA8 PCBSaHMuR290TGltTWluOwotKyAgICBpZiAoUmhzLkdvdExpbUhhc01heCkgewotKyAgICAgIE9T IDw8ICIgLCAiIDw8IFJocy5Hb3RMaW1NYXg7Ci0rICAgIH0KLSsgICAgT1MgPDwgIn19IjsKLSAg ICAgYnJlYWs7Ci0tICBjYXNlIFdhc21FZGdlOjpFcnJJbmZvOjpNaXNtYXRjaENhdGVnb3J5OjpH bG9iYWw6Ci0tICAgIGZtdDo6Zm9ybWF0X3RvKEl0ZXIsCi0tICAgICAgICAgICAgICAgICAgICJF eHBlY3RlZDogR2xvYmFsVHlwZSB7e011dGF0aW9ue3t7fX19IFZhbFR5cGV7e3t9fX19fSAsICIK LS0gICAgICAgICAgICAgICAgICAgIkdvdDogR2xvYmFsVHlwZSB7e011dGF0aW9ue3t7fX19IFZh bFR5cGV7e3t9fX19fSJzdiwKLS0gICAgICAgICAgICAgICAgICAgSW5mby5FeHBWYWxNdXQsIElu Zm8uRXhwVmFsVHlwZSwgSW5mby5Hb3RWYWxNdXQsCi0tICAgICAgICAgICAgICAgICAgIEluZm8u R290VmFsVHlwZSk7Ci0rICBjYXNlIE1pc21hdGNoQ2F0ZWdvcnk6Okdsb2JhbDoKLSsgICAgT1Mg PDwgIkV4cGVjdGVkOiBHbG9iYWxUeXBlIHtNdXRhdGlvbnsiIDw8IFZhbE11dFN0cltSaHMuRXhw VmFsTXV0XQotKyAgICAgICA8PCAifSBWYWxUeXBleyIgPDwgVHlwZUNvZGVTdHJbUmhzLkV4cFZh bFR5cGUuZ2V0Q29kZSgpXQotKyAgICAgICA8PCAifX0gLCBHb3Q6IEdsb2JhbFR5cGUge011dGF0 aW9ueyIgPDwgVmFsTXV0U3RyW1Jocy5Hb3RWYWxNdXRdCi0rICAgICAgIDw8ICJ9IFZhbFR5cGV7 IiA8PCBUeXBlQ29kZVN0cltSaHMuR290VmFsVHlwZS5nZXRDb2RlKCldIDw8ICJ9fSI7Ci0gICAg IGJyZWFrOwotLSAgY2FzZSBXYXNtRWRnZTo6RXJySW5mbzo6TWlzbWF0Y2hDYXRlZ29yeTo6VmVy c2lvbjoKLS0gICAgZm10Ojpmb3JtYXRfdG8oSXRlciwgIkV4cGVjdGVkOiB7fSAsIEdvdDoge30i c3YsIEluZm8uRXhwVmVyc2lvbiwKLS0gICAgICAgICAgICAgICAgICAgSW5mby5Hb3RWZXJzaW9u KTsKLSsgIGNhc2UgTWlzbWF0Y2hDYXRlZ29yeTo6VmVyc2lvbjoKLSsgICAgT1MgPDwgIkV4cGVj dGVkOiAiIDw8IFJocy5FeHBWZXJzaW9uIDw8ICIgLCBHb3Q6ICIgPDwgUmhzLkdvdFZlcnNpb247 Ci0gICAgIGJyZWFrOwotICAgZGVmYXVsdDoKLSAgICAgYnJlYWs7Ci0gICB9Ci0tICByZXR1cm4g Zm9ybWF0dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+Ojpmb3JtYXQoCi0tICAgICAgc3RkOjpzdHJpbmdf dmlldyhCdWZmZXIuZGF0YSgpLCBCdWZmZXIuc2l6ZSgpKSwgQ3R4KTsKLSsgIHJldHVybiBPUzsK LSB9Ci0gCi0tZm10Ojpmb3JtYXRfY29udGV4dDo6aXRlcmF0b3IKLS1mbXQ6OmZvcm1hdHRlcjxX YXNtRWRnZTo6RXJySW5mbzo6SW5mb0luc3RydWN0aW9uPjo6Zm9ybWF0KAotLSAgICBjb25zdCBX YXNtRWRnZTo6RXJySW5mbzo6SW5mb0luc3RydWN0aW9uICZJbmZvLAotLSAgICBmbXQ6OmZvcm1h dF9jb250ZXh0ICZDdHgpIGNvbnN0IG5vZXhjZXB0IHsKLS0gIHVpbnQxNl90IFBheWxvYWQgPSBz dGF0aWNfY2FzdDx1aW50MTZfdD4oSW5mby5Db2RlKTsKLS0gIGZtdDo6bWVtb3J5X2J1ZmZlciBC dWZmZXI7Ci0tICBhdXRvIEl0ZXIgPSBmbXQ6OmZvcm1hdF90byhzdGQ6OmJhY2tfaW5zZXJ0ZXIo QnVmZmVyKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgSW4gaW5zdHJ1Y3Rp b246IHt9ICgic3YsIEluZm8uQ29kZSk7Ci0rc3RkOjpvc3RyZWFtICZvcGVyYXRvcjw8KHN0ZDo6 b3N0cmVhbSAmT1MsIGNvbnN0IHN0cnVjdCBJbmZvSW5zdHJ1Y3Rpb24gJlJocykgewotKyAgdWlu dDE2X3QgUGF5bG9hZCA9IHN0YXRpY19jYXN0PHVpbnQxNl90PihSaHMuQ29kZSk7Ci0rICBPUyA8 PCAiICAgIEluIGluc3RydWN0aW9uOiAiIDw8IE9wQ29kZVN0cltSaHMuQ29kZV0gPDwgIiAoIjsK LSAgIGlmICgoUGF5bG9hZCA+PiA4KSA+PSBzdGF0aWNfY2FzdDx1aW50MTZfdD4oMHhGQ1UpKSB7 Ci0tICAgIEl0ZXIgPSBmbXQ6OmZvcm1hdF90byhJdGVyLCAiMHh7OjAyeH0gInN2LCBQYXlsb2Fk ID4+IDgpOwotKyAgICBPUyA8PCBjb252ZXJ0VUludFRvSGV4U3RyKFBheWxvYWQgPj4gOCwgMikg PDwgIiAiOwotICAgfQotLSAgSXRlciA9IGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICIweHs6MDJ4fSkg LCBCeXRlY29kZSBvZmZzZXQ6IDB4ezowOHh9InN2LAotLSAgICAgICAgICAgICAgICAgICAgICAg IFBheWxvYWQgJiAweEZGVSwgSW5mby5PZmZzZXQpOwotLSAgaWYgKCFJbmZvLkFyZ3MuZW1wdHko KSkgewotLSAgICBJdGVyID0gZm10Ojpmb3JtYXRfdG8oSXRlciwgIiAsIEFyZ3M6IFsic3YpOwot LSAgICBmb3IgKHVpbnQzMl90IEkgPSAwOyBJIDwgSW5mby5BcmdzLnNpemUoKTsgKytJKSB7Ci0t ICAgICAgc3dpdGNoIChJbmZvLkFyZ3NUeXBlc1tJXS5nZXRDb2RlKCkpIHsKLS0gICAgICBjYXNl IFdhc21FZGdlOjpUeXBlQ29kZTo6STMyOgotLSAgICAgICAgaWYgKEluZm8uSXNTaWduZWQpIHsK LS0gICAgICAgICAgSXRlciA9IGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICJ7fSJzdiwgSW5mby5Bcmdz W0ldLmdldDxpbnQzMl90PigpKTsKLSsgIE9TIDw8IGNvbnZlcnRVSW50VG9IZXhTdHIoUGF5bG9h ZCAmIDB4RkZVLCAyKQotKyAgICAgPDwgIikgLCBCeXRlY29kZSBvZmZzZXQ6ICIgPDwgY29udmVy dFVJbnRUb0hleFN0cihSaHMuT2Zmc2V0KTsKLSsgIGlmIChSaHMuQXJncy5zaXplKCkgPiAwKSB7 Ci0rICAgIE9TIDw8ICIgLCBBcmdzOiBbIjsKLSsgICAgZm9yICh1aW50MzJfdCBJID0gMDsgSSA8 IFJocy5BcmdzLnNpemUoKTsgKytJKSB7Ci0rICAgICAgc3dpdGNoIChSaHMuQXJnc1R5cGVzW0ld LmdldENvZGUoKSkgewotKyAgICAgIGNhc2UgVHlwZUNvZGU6OkkzMjoKLSsgICAgICAgIGlmIChS aHMuSXNTaWduZWQpIHsKLSsgICAgICAgICAgT1MgPDwgUmhzLkFyZ3NbSV0uZ2V0PGludDMyX3Q+ KCk7Ci0gICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICBJdGVyID0gZm10Ojpmb3JtYXRfdG8o SXRlciwgInt9InN2LCBJbmZvLkFyZ3NbSV0uZ2V0PHVpbnQzMl90PigpKTsKLSsgICAgICAgICAg T1MgPDwgUmhzLkFyZ3NbSV0uZ2V0PHVpbnQzMl90PigpOwotICAgICAgICAgfQotICAgICAgICAg YnJlYWs7Ci0tICAgICAgY2FzZSBXYXNtRWRnZTo6VHlwZUNvZGU6Okk2NDoKLS0gICAgICAgIGlm IChJbmZvLklzU2lnbmVkKSB7Ci0tICAgICAgICAgIEl0ZXIgPSBmbXQ6OmZvcm1hdF90byhJdGVy LCAie30ic3YsIEluZm8uQXJnc1tJXS5nZXQ8aW50NjRfdD4oKSk7Ci0rICAgICAgY2FzZSBUeXBl Q29kZTo6STY0OgotKyAgICAgICAgaWYgKFJocy5Jc1NpZ25lZCkgewotKyAgICAgICAgICBPUyA8 PCBSaHMuQXJnc1tJXS5nZXQ8aW50NjRfdD4oKTsKLSAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAg ICAgIEl0ZXIgPSBmbXQ6OmZvcm1hdF90byhJdGVyLCAie30ic3YsIEluZm8uQXJnc1tJXS5nZXQ8 dWludDY0X3Q+KCkpOwotKyAgICAgICAgICBPUyA8PCBSaHMuQXJnc1tJXS5nZXQ8dWludDY0X3Q+ KCk7Ci0gICAgICAgICB9Ci0gICAgICAgICBicmVhazsKLS0gICAgICBjYXNlIFdhc21FZGdlOjpU eXBlQ29kZTo6RjMyOgotLSAgICAgICAgSXRlciA9IGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICJ7fSJz diwgSW5mby5BcmdzW0ldLmdldDxmbG9hdD4oKSk7Ci0rICAgICAgY2FzZSBUeXBlQ29kZTo6RjMy OgotKyAgICAgICAgT1MgPDwgUmhzLkFyZ3NbSV0uZ2V0PGZsb2F0PigpOwotICAgICAgICAgYnJl YWs7Ci0tICAgICAgY2FzZSBXYXNtRWRnZTo6VHlwZUNvZGU6OkY2NDoKLS0gICAgICAgIEl0ZXIg PSBmbXQ6OmZvcm1hdF90byhJdGVyLCAie30ic3YsIEluZm8uQXJnc1tJXS5nZXQ8ZG91YmxlPigp KTsKLSsgICAgICBjYXNlIFR5cGVDb2RlOjpGNjQ6Ci0rICAgICAgICBPUyA8PCBSaHMuQXJnc1tJ XS5nZXQ8ZG91YmxlPigpOwotICAgICAgICAgYnJlYWs7Ci0tICAgICAgY2FzZSBXYXNtRWRnZTo6 VHlwZUNvZGU6OlYxMjg6IHsKLS0gICAgICAgIGNvbnN0IGF1dG8gVmFsdWUgPSBJbmZvLkFyZ3Nb SV0uZ2V0PFdhc21FZGdlOjp1aW50NjR4Ml90PigpOwotLSAgICAgICAgSXRlciA9IGZtdDo6Zm9y bWF0X3RvKEl0ZXIsICIweHs6MDh4fXs6MDh4fSJzdiwgVmFsdWVbMV0sIFZhbHVlWzBdKTsKLSsg ICAgICBjYXNlIFR5cGVDb2RlOjpWMTI4OiB7Ci0rICAgICAgICBjb25zdCBhdXRvIFZhbHVlID0g UmhzLkFyZ3NbSV0uZ2V0PHVpbnQ2NHgyX3Q+KCk7Ci0rICAgICAgICBPUyA8PCBzdGQ6OmhleCA8 PCBWYWx1ZVswXSA8PCBWYWx1ZVsxXTsKLSAgICAgICAgIGJyZWFrOwotICAgICAgIH0KLS0gICAg ICBjYXNlIFdhc21FZGdlOjpUeXBlQ29kZTo6UmVmOgotLSAgICAgIGNhc2UgV2FzbUVkZ2U6OlR5 cGVDb2RlOjpSZWZOdWxsOgotLSAgICAgICAgSXRlciA9IGZtdDo6Zm9ybWF0X3RvKEl0ZXIsICJ7 fSJzdiwgSW5mby5BcmdzVHlwZXNbSV0pOwotLSAgICAgICAgaWYgKEluZm8uQXJnc1tJXS5nZXQ8 V2FzbUVkZ2U6OlJlZlZhcmlhbnQ+KCkuaXNOdWxsKCkpIHsKLS0gICAgICAgICAgSXRlciA9IGZt dDo6Zm9ybWF0X3RvKEl0ZXIsICI6bnVsbCJzdik7Ci0rICAgICAgY2FzZSBUeXBlQ29kZTo6RnVu Y1JlZjoKLSsgICAgICAgIE9TIDw8IFR5cGVDb2RlU3RyW1Jocy5BcmdzVHlwZXNbSV0uZ2V0Q29k ZSgpXTsKLSsgICAgICAgIGlmIChSaHMuQXJnc1tJXS5nZXQ8V2FzbUVkZ2U6OlJlZlZhcmlhbnQ+ KCkuaXNOdWxsKCkpIHsKLSsgICAgICAgICAgT1MgPDwgIjpudWxsIjsKLSAgICAgICAgIH0gZWxz ZSB7Ci0tICAgICAgICAgIEl0ZXIgPQotLSAgICAgICAgICAgICAgZm10Ojpmb3JtYXRfdG8oSXRl ciwgIjoweHs6MDh4fSJzdiwgSW5mby5BcmdzW0ldLmdldDx1aW50NjRfdD4oKSk7Ci0rICAgICAg ICAgIE9TIDw8ICI6IiA8PCAmUmhzLkFyZ3NbSV0uZ2V0PHVpbnQ2NF90PigpOwotKyAgICAgICAg fQotKyAgICAgICAgYnJlYWs7Ci0rICAgICAgY2FzZSBUeXBlQ29kZTo6RXh0ZXJuUmVmOgotKyAg ICAgICAgT1MgPDwgVHlwZUNvZGVTdHJbUmhzLkFyZ3NUeXBlc1tJXS5nZXRDb2RlKCldOwotKyAg ICAgICAgaWYgKFJocy5BcmdzW0ldLmdldDxXYXNtRWRnZTo6UmVmVmFyaWFudD4oKS5pc051bGwo KSkgewotKyAgICAgICAgICBPUyA8PCAiOm51bGwiOwotKyAgICAgICAgfSBlbHNlIHsKLSsgICAg ICAgICAgT1MgPDwgIjoiIDw8ICZSaHMuQXJnc1tJXS5nZXQ8dWludDY0X3Q+KCk7Ci0gICAgICAg ICB9Ci0gICAgICAgICBicmVhazsKLSAgICAgICBkZWZhdWx0OgotICAgICAgICAgYnJlYWs7Ci0g ICAgICAgfQotLSAgICAgIGlmIChJIDwgSW5mby5BcmdzLnNpemUoKSAtIDEpIHsKLS0gICAgICAg IEl0ZXIgPSBmbXQ6OmZvcm1hdF90byhJdGVyLCAiICwgInN2KTsKLSsgICAgICBpZiAoSSA8IFJo cy5BcmdzLnNpemUoKSAtIDEpIHsKLSsgICAgICAgIE9TIDw8ICIgLCAiOwotICAgICAgIH0KLSAg ICAgfQotLSAgICBJdGVyID0gZm10Ojpmb3JtYXRfdG8oSXRlciwgIl0ic3YpOwotKyAgICBPUyA8 PCAiXSI7Ci0gICB9Ci0tICByZXR1cm4gZm9ybWF0dGVyPHN0ZDo6c3RyaW5nX3ZpZXc+Ojpmb3Jt YXQoCi0tICAgICAgc3RkOjpzdHJpbmdfdmlldyhCdWZmZXIuZGF0YSgpLCBCdWZmZXIuc2l6ZSgp KSwgQ3R4KTsKLSsgIHJldHVybiBPUzsKLSB9Ci0gCi0tZm10Ojpmb3JtYXRfY29udGV4dDo6aXRl cmF0b3IKLS1mbXQ6OmZvcm1hdHRlcjxXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0JvdW5kYXJ5Pjo6 Zm9ybWF0KAotLSAgICBjb25zdCBXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0JvdW5kYXJ5ICZJbmZv LAotLSAgICBmbXQ6OmZvcm1hdF9jb250ZXh0ICZDdHgpIGNvbnN0IG5vZXhjZXB0IHsKLS0gIGZt dDo6bWVtb3J5X2J1ZmZlciBCdWZmZXI7Ci0tICBmbXQ6OmZvcm1hdF90byhzdGQ6OmJhY2tfaW5z ZXJ0ZXIoQnVmZmVyKSwKLS0gICAgICAgICAgICAgICAgICIgICAgQWNjZXNzaW5nIG9mZnNldCBm cm9tOiAweHs6MDh4fSB0bzogMHh7OjA4eH0gLCBPdXQgb2YgIgotLSAgICAgICAgICAgICAgICAg ImJvdW5kYXJ5OiAweHs6MDh4fSJzdiwKLS0gICAgICAgICAgICAgICAgIEluZm8uT2Zmc2V0LAot LSAgICAgICAgICAgICAgICAgSW5mby5PZmZzZXQgKyAoSW5mby5TaXplID4gMFUgPyBJbmZvLlNp emUgLSAxVSA6IDBVKSwKLS0gICAgICAgICAgICAgICAgIEluZm8uTGltaXQpOwotLSAgcmV0dXJu IGZvcm1hdHRlcjxzdGQ6OnN0cmluZ192aWV3Pjo6Zm9ybWF0KAotLSAgICAgIHN0ZDo6c3RyaW5n X3ZpZXcoQnVmZmVyLmRhdGEoKSwgQnVmZmVyLnNpemUoKSksIEN0eCk7Ci0rc3RkOjpvc3RyZWFt ICZvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSAmT1MsIGNvbnN0IHN0cnVjdCBJbmZvQm91bmRhcnkg JlJocykgewotKyAgT1MgPDwgIiAgICBBY2Nlc3Npbmcgb2Zmc2V0IGZyb206ICIgPDwgY29udmVy dFVJbnRUb0hleFN0cihSaHMuT2Zmc2V0KQotKyAgICAgPDwgIiB0bzogIgotKyAgICAgPDwgY29u dmVydFVJbnRUb0hleFN0cihSaHMuT2Zmc2V0ICsgUmhzLlNpemUgLSAoUmhzLlNpemUgPiAwID8g MSA6IDApKQotKyAgICAgPDwgIiAsIE91dCBvZiBib3VuZGFyeTogIiA8PCBjb252ZXJ0VUludFRv SGV4U3RyKFJocy5MaW1pdCk7Ci0rICByZXR1cm4gT1M7Ci0gfQotIAotLWZtdDo6Zm9ybWF0X2Nv bnRleHQ6Oml0ZXJhdG9yCi0tZm10Ojpmb3JtYXR0ZXI8V2FzbUVkZ2U6OkVyckluZm86OkluZm9Q cm9wb3NhbD46OmZvcm1hdCgKLS0gICAgY29uc3QgV2FzbUVkZ2U6OkVyckluZm86OkluZm9Qcm9w b3NhbCAmSW5mbywKLS0gICAgZm10Ojpmb3JtYXRfY29udGV4dCAmQ3R4KSBjb25zdCBub2V4Y2Vw dCB7Ci0tICBmbXQ6Om1lbW9yeV9idWZmZXIgQnVmZmVyOwotLSAgaWYgKGF1dG8gSXRlciA9IFdh c21FZGdlOjpQcm9wb3NhbFN0ci5maW5kKEluZm8uUCk7Ci0tICAgICAgSXRlciAhPSBXYXNtRWRn ZTo6UHJvcG9zYWxTdHIuZW5kKCkpIHsKLS0gICAgZm10Ojpmb3JtYXRfdG8oCi0tICAgICAgICBz dGQ6OmJhY2tfaW5zZXJ0ZXIoQnVmZmVyKSwKLS0gICAgICAgICIgICAgVGhpcyBpbnN0cnVjdGlv biBvciBzeW50YXggcmVxdWlyZXMgZW5hYmxpbmcge30gcHJvcG9zYWwic3YsCi0tICAgICAgICBJ dGVyLT5zZWNvbmQpOwotK3N0ZDo6b3N0cmVhbSAmb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0gJk9T LCBjb25zdCBzdHJ1Y3QgSW5mb1Byb3Bvc2FsICZSaHMpIHsKLSsgIGlmIChhdXRvIEl0ZXIgPSBQ cm9wb3NhbFN0ci5maW5kKFJocy5QKTsgSXRlciAhPSBQcm9wb3NhbFN0ci5lbmQoKSkgewotKyAg ICBPUyA8PCAiICAgIFRoaXMgaW5zdHJ1Y3Rpb24gb3Igc3ludGF4IHJlcXVpcmVzIGVuYWJsaW5n IHByb3Bvc2FsICIKLSsgICAgICAgPDwgSXRlci0+c2Vjb25kOwotICAgfSBlbHNlIHsKLS0gICAg Zm10Ojpmb3JtYXRfdG8oc3RkOjpiYWNrX2luc2VydGVyKEJ1ZmZlciksCi0tICAgICAgICAgICAg ICAgICAgICIgICAgVW5rbm93biBwcm9wb3NhbCwgQ29kZSAweHs6MDh4fSJzdiwKLS0gICAgICAg ICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KEluZm8uUCkpOwotKyAgICBPUyA8PCAi ICAgIFVua25vd24gcHJvcG9zYWwsIENvZGUgIgotKyAgICAgICA8PCBjb252ZXJ0VUludFRvSGV4 U3RyKHN0YXRpY19jYXN0PHVpbnQzMl90PihSaHMuUCkpOwotICAgfQotLSAgcmV0dXJuIGZvcm1h dHRlcjxzdGQ6OnN0cmluZ192aWV3Pjo6Zm9ybWF0KAotLSAgICAgIHN0ZDo6c3RyaW5nX3ZpZXco QnVmZmVyLmRhdGEoKSwgQnVmZmVyLnNpemUoKSksIEN0eCk7Ci0rICByZXR1cm4gT1M7Ci0gfQot KwotK30gLy8gbmFtZXNwYWNlIEVyckluZm8KLSt9IC8vIG5hbWVzcGFjZSBXYXNtRWRnZQotZGlm ZiAtLWdpdCBhL3Rlc3QvZXJyaW5mby9lcnJpbmZvVGVzdC5jcHAgYi90ZXN0L2VycmluZm8vZXJy aW5mb1Rlc3QuY3BwCi1pbmRleCBkMDc0ODQzYS4uYmZjNjZlZjcgMTAwNjQ0Ci0tLS0gYS90ZXN0 L2VycmluZm8vZXJyaW5mb1Rlc3QuY3BwCi0rKysgYi90ZXN0L2VycmluZm8vZXJyaW5mb1Rlc3Qu Y3BwCi1AQCAtNSw3ICs1LDcgQEAKLSAKLSAjaW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5jbHVkZSA8 Z3Rlc3QvZ3Rlc3QuaD4KLS0jaW5jbHVkZSA8c3RyaW5nX3ZpZXc+Ci0rI2luY2x1ZGUgPGlvc3Ry ZWFtPgotICNpbmNsdWRlIDx2ZWN0b3I+Ci0gCi0gdXNpbmcgbmFtZXNwYWNlIHN0ZDo6bGl0ZXJh bHM7Ci1AQCAtMTQsMTE1ICsxNCwxMTUgQEAgbmFtZXNwYWNlIHsKLSAKLSBURVNUKEVyckluZm9U ZXN0LCBJbmZvX19GaWxlKSB7Ci0gICBXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0ZpbGUgSW5mbzEo ImZpbGUudHh0Iik7Ci0tICBmbXQ6OnByaW50KCJ7fVxuInN2LCBJbmZvMSk7Ci0rICBzdGQ6OmNv dXQgPDwgSW5mbzEgPDwgc3RkOjplbmRsOwotICAgRVhQRUNUX1RSVUUodHJ1ZSk7Ci0gfQotIAot IFRFU1QoRXJySW5mb1Rlc3QsIEluZm9fX0xvYWRpbmcpIHsKLSAgIFdhc21FZGdlOjpFcnJJbmZv OjpJbmZvTG9hZGluZyBJbmZvMSgzMCk7Ci0tICBmbXQ6OnByaW50KCJ7fVxuInN2LCBJbmZvMSk7 Ci0rICBzdGQ6OmNvdXQgPDwgSW5mbzEgPDwgc3RkOjplbmRsOwotICAgRVhQRUNUX1RSVUUodHJ1 ZSk7Ci0gfQotIAotIFRFU1QoRXJySW5mb1Rlc3QsIEluZm9fX0FTVCkgewotICAgV2FzbUVkZ2U6 OkVyckluZm86OkluZm9BU1QgSW5mbzEoV2FzbUVkZ2U6OkFTVE5vZGVBdHRyOjpNb2R1bGUpOwot LSAgZm10OjpwcmludCgie31cbiJzdiwgSW5mbzEpOwotKyAgc3RkOjpjb3V0IDw8IEluZm8xIDw8 IHN0ZDo6ZW5kbDsKLSAgIEVYUEVDVF9UUlVFKHRydWUpOwotIH0KLSAKLSBURVNUKEVyckluZm9U ZXN0LCBJbmZvX19JbnN0YW5jZUJvdW5kKSB7Ci0gICBXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0lu c3RhbmNlQm91bmQgSW5mbzEoV2FzbUVkZ2U6OkV4dGVybmFsVHlwZTo6TWVtb3J5LCAyLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEpOwotLSAgZm10Ojpw cmludCgie31cbiJzdiwgSW5mbzEpOwotKyAgc3RkOjpjb3V0IDw8IEluZm8xIDw8IHN0ZDo6ZW5k bDsKLSAgIEVYUEVDVF9UUlVFKHRydWUpOwotIH0KLSAKLSBURVNUKEVyckluZm9UZXN0LCBJbmZv X19Gb3JiaWRJbmRleCkgewotICAgV2FzbUVkZ2U6OkVyckluZm86OkluZm9Gb3JiaWRJbmRleCBJ bmZvMSgKLSAgICAgICBXYXNtRWRnZTo6RXJySW5mbzo6SW5kZXhDYXRlZ29yeTo6RnVuY3Rpb25U eXBlLCAyLCAxKTsKLS0gIGZtdDo6cHJpbnQoInt9XG4ic3YsIEluZm8xKTsKLSsgIHN0ZDo6Y291 dCA8PCBJbmZvMSA8PCBzdGQ6OmVuZGw7Ci0gICBXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0ZvcmJp ZEluZGV4IEluZm8yKAotICAgICAgIFdhc21FZGdlOjpFcnJJbmZvOjpJbmRleENhdGVnb3J5OjpN ZW1vcnksIDIsIDApOwotLSAgZm10OjpwcmludCgie31cbiJzdiwgSW5mbzIpOwotKyAgc3RkOjpj b3V0IDw8IEluZm8yIDw8IHN0ZDo6ZW5kbDsKLSAgIEVYUEVDVF9UUlVFKHRydWUpOwotIH0KLSAK LSBURVNUKEVyckluZm9UZXN0LCBJbmZvX19FeHBvcnRpbmcpIHsKLSAgIFdhc21FZGdlOjpFcnJJ bmZvOjpJbmZvRXhwb3J0aW5nIEluZm8xKCJleHBvcnQiKTsKLS0gIGZtdDo6cHJpbnQoInt9XG4i c3YsIEluZm8xKTsKLSsgIHN0ZDo6Y291dCA8PCBJbmZvMSA8PCBzdGQ6OmVuZGw7Ci0gICBFWFBF Q1RfVFJVRSh0cnVlKTsKLSB9Ci0gCi0gVEVTVChFcnJJbmZvVGVzdCwgSW5mb19fTGltaXQpIHsK LSAgIFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvTGltaXQgSW5mbzEodHJ1ZSwgMTAsIDIwKTsKLS0g IGZtdDo6cHJpbnQoInt9XG4ic3YsIEluZm8xKTsKLSsgIHN0ZDo6Y291dCA8PCBJbmZvMSA8PCBz dGQ6OmVuZGw7Ci0gICBXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0xpbWl0IEluZm8yKGZhbHNlLCAz MCk7Ci0tICBmbXQ6OnByaW50KCJ7fVxuInN2LCBJbmZvMik7Ci0rICBzdGQ6OmNvdXQgPDwgSW5m bzIgPDwgc3RkOjplbmRsOwotICAgRVhQRUNUX1RSVUUodHJ1ZSk7Ci0gfQotIAotIFRFU1QoRXJy SW5mb1Rlc3QsIEluZm9fX1JlZ2lzdGVyaW5nKSB7Ci0gICBXYXNtRWRnZTo6RXJySW5mbzo6SW5m b1JlZ2lzdGVyaW5nIEluZm8xKCJob3N0X2Z1bmMiKTsKLS0gIGZtdDo6cHJpbnQoInt9XG4ic3Ys IEluZm8xKTsKLSsgIHN0ZDo6Y291dCA8PCBJbmZvMSA8PCBzdGQ6OmVuZGw7Ci0gICBFWFBFQ1Rf VFJVRSh0cnVlKTsKLSB9Ci0gCi0gVEVTVChFcnJJbmZvVGVzdCwgSW5mb19fTGlua2luZykgewot ICAgV2FzbUVkZ2U6OkVyckluZm86OkluZm9MaW5raW5nIEluZm8xKCJtb2R1bGUiLCAiZnVuYyIp OwotLSAgZm10OjpwcmludCgie31cbiJzdiwgSW5mbzEpOwotKyAgc3RkOjpjb3V0IDw8IEluZm8x IDw8IHN0ZDo6ZW5kbDsKLSAgIEVYUEVDVF9UUlVFKHRydWUpOwotIH0KLSAKLSBURVNUKEVycklu Zm9UZXN0LCBJbmZvX19FeGVjdXRpbmcpIHsKLSAgIFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvRXhl Y3V0aW5nIEluZm8xKCIiLCAiZnVuYyIpOwotLSAgZm10OjpwcmludCgie31cbiJzdiwgSW5mbzEp OwotKyAgc3RkOjpjb3V0IDw8IEluZm8xIDw8IHN0ZDo6ZW5kbDsKLSAgIFdhc21FZGdlOjpFcnJJ bmZvOjpJbmZvRXhlY3V0aW5nIEluZm8yKCJtb2R1bGUiLCAiZnVuYyIpOwotLSAgZm10Ojpwcmlu dCgie31cbiJzdiwgSW5mbzIpOwotKyAgc3RkOjpjb3V0IDw8IEluZm8yIDw8IHN0ZDo6ZW5kbDsK LSAgIEVYUEVDVF9UUlVFKHRydWUpOwotIH0KLSAKLSBURVNUKEVyckluZm9UZXN0LCBJbmZvX19N aXNtYXRjaCkgewotICAgV2FzbUVkZ2U6OkVyckluZm86OkluZm9NaXNtYXRjaCBJbmZvMShzdGF0 aWNfY2FzdDx1aW50OF90PigxNiksIDg4ODgpOwotLSAgZm10OjpwcmludCgie31cbiJzdiwgSW5m bzEpOwotKyAgc3RkOjpjb3V0IDw8IEluZm8xIDw8IHN0ZDo6ZW5kbDsKLSAgIFdhc21FZGdlOjpF cnJJbmZvOjpJbmZvTWlzbWF0Y2ggSW5mbzIoV2FzbUVkZ2U6OlR5cGVDb2RlOjpFeHRlcm5SZWYs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdhc21FZGdlOjpUeXBl Q29kZTo6RnVuY1JlZik7Ci0tICBmbXQ6OnByaW50KCJ7fVxuInN2LCBJbmZvMik7Ci0rICBzdGQ6 OmNvdXQgPDwgSW5mbzIgPDwgc3RkOjplbmRsOwotICAgV2FzbUVkZ2U6OkVyckluZm86OkluZm9N aXNtYXRjaCBJbmZvMygKLSAgICAgICB7V2FzbUVkZ2U6OlR5cGVDb2RlOjpJMzIsIFdhc21FZGdl OjpUeXBlQ29kZTo6RnVuY1JlZn0sCi0gICAgICAge1dhc21FZGdlOjpUeXBlQ29kZTo6RjY0LCBX YXNtRWRnZTo6VHlwZUNvZGU6OkV4dGVyblJlZiwKLSAgICAgICAgV2FzbUVkZ2U6OlR5cGVDb2Rl OjpWMTI4fSk7Ci0tICBmbXQ6OnByaW50KCJ7fVxuInN2LCBJbmZvMyk7Ci0rICBzdGQ6OmNvdXQg PDwgSW5mbzMgPDwgc3RkOjplbmRsOwotICAgV2FzbUVkZ2U6OkVyckluZm86OkluZm9NaXNtYXRj aCBJbmZvNChXYXNtRWRnZTo6VmFsTXV0OjpDb25zdCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgV2FzbUVkZ2U6OlZhbE11dDo6VmFyKTsKLS0gIGZtdDo6cHJpbnQo Int9XG4ic3YsIEluZm80KTsKLSsgIHN0ZDo6Y291dCA8PCBJbmZvNCA8PCBzdGQ6OmVuZGw7Ci0g ICBXYXNtRWRnZTo6RXJySW5mbzo6SW5mb01pc21hdGNoIEluZm81KFdhc21FZGdlOjpFeHRlcm5h bFR5cGU6OkZ1bmN0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBXYXNtRWRnZTo6RXh0ZXJuYWxUeXBlOjpHbG9iYWwpOwotLSAgZm10OjpwcmludCgie31cbiJz diwgSW5mbzUpOwotKyAgc3RkOjpjb3V0IDw8IEluZm81IDw8IHN0ZDo6ZW5kbDsKLSAgIFdhc21F ZGdlOjpFcnJJbmZvOjpJbmZvTWlzbWF0Y2ggSW5mbzYoCi0gICAgICAge1dhc21FZGdlOjpUeXBl Q29kZTo6STMyLCBXYXNtRWRnZTo6VHlwZUNvZGU6OkZ1bmNSZWZ9LAotICAgICAgIHtXYXNtRWRn ZTo6VHlwZUNvZGU6Okk2NCwgV2FzbUVkZ2U6OlR5cGVDb2RlOjpGNjR9LAotICAgICAgIHtXYXNt RWRnZTo6VHlwZUNvZGU6OkY2NCwgV2FzbUVkZ2U6OlR5cGVDb2RlOjpFeHRlcm5SZWYsCi0gICAg ICAgIFdhc21FZGdlOjpUeXBlQ29kZTo6VjEyOH0sCi0gICAgICAge1dhc21FZGdlOjpUeXBlQ29k ZTo6VjEyOH0pOwotLSAgZm10OjpwcmludCgie31cbiJzdiwgSW5mbzYpOwotKyAgc3RkOjpjb3V0 IDw8IEluZm82IDw8IHN0ZDo6ZW5kbDsKLSAgIFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvTWlzbWF0 Y2ggSW5mbzcoV2FzbUVkZ2U6OlR5cGVDb2RlOjpFeHRlcm5SZWYsIHRydWUsIDEwLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMCwgV2FzbUVkZ2U6OlR5cGVDb2Rl OjpGdW5jUmVmLCB0cnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAyMCwgNTApOwotLSAgZm10OjpwcmludCgie31cbiJzdiwgSW5mbzcpOwotKyAgc3RkOjpjb3V0 IDw8IEluZm83IDw8IHN0ZDo6ZW5kbDsKLSAgIFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvTWlzbWF0 Y2ggSW5mbzgoV2FzbUVkZ2U6OlR5cGVDb2RlOjpFeHRlcm5SZWYsIGZhbHNlLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCwgMTAsIFdhc21FZGdlOjpUeXBlQ29k ZTo6RnVuY1JlZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFs c2UsIDIwLCAyMCk7Ci0tICBmbXQ6OnByaW50KCJ7fVxuInN2LCBJbmZvOCk7Ci0rICBzdGQ6OmNv dXQgPDwgSW5mbzggPDwgc3RkOjplbmRsOwotICAgV2FzbUVkZ2U6OkVyckluZm86OkluZm9NaXNt YXRjaCBJbmZvOSh0cnVlLCAxMCwgMjAsIHRydWUsIDIwLCA1MCk7Ci0tICBmbXQ6OnByaW50KCJ7 fVxuInN2LCBJbmZvOSk7Ci0rICBzdGQ6OmNvdXQgPDwgSW5mbzkgPDwgc3RkOjplbmRsOwotICAg V2FzbUVkZ2U6OkVyckluZm86OkluZm9NaXNtYXRjaCBJbmZvMTAoZmFsc2UsIDEwLCAxMCwgZmFs c2UsIDIwLCAyMCk7Ci0tICBmbXQ6OnByaW50KCJ7fVxuInN2LCBJbmZvMTApOwotKyAgc3RkOjpj b3V0IDw8IEluZm8xMCA8PCBzdGQ6OmVuZGw7Ci0gICBXYXNtRWRnZTo6RXJySW5mbzo6SW5mb01p c21hdGNoIEluZm8xMSgKLSAgICAgICBXYXNtRWRnZTo6VHlwZUNvZGU6OkkzMiwgV2FzbUVkZ2U6 OlZhbE11dDo6VmFyLCBXYXNtRWRnZTo6VHlwZUNvZGU6Okk2NCwKLSAgICAgICBXYXNtRWRnZTo6 VmFsTXV0OjpDb25zdCk7Ci0tICBmbXQ6OnByaW50KCJ7fVxuInN2LCBJbmZvMTEpOwotKyAgc3Rk Ojpjb3V0IDw8IEluZm8xMSA8PCBzdGQ6OmVuZGw7Ci0gICBXYXNtRWRnZTo6RXJySW5mbzo6SW5m b01pc21hdGNoIEluZm8xMigxMjM0NTY3OFUsIDk4NzY1NDMyVSk7Ci0tICBmbXQ6OnByaW50KCJ7 fVxuInN2LCBJbmZvMTIpOwotKyAgc3RkOjpjb3V0IDw8IEluZm8xMiA8PCBzdGQ6OmVuZGw7Ci0g Ci0gICBFWFBFQ1RfVFJVRSh0cnVlKTsKLSB9Ci1AQCAtMTM3LDU4ICsxMzcsNTggQEAgVEVTVChF cnJJbmZvVGVzdCwgSW5mb19fSW5zdHJ1Y3Rpb24pIHsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAge1dhc21FZGdlOjpUeXBlQ29kZTo6STMyLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2FzbUVkZ2U6OlR5cGVDb2RlOjpJ MzIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXYXNtRWRn ZTo6VHlwZUNvZGU6OkkzMn0pOwotLSAgZm10OjpwcmludCgie31cbiJzdiwgSW5mbzEpOwotKyAg c3RkOjpjb3V0IDw8IEluZm8xIDw8IHN0ZDo6ZW5kbDsKLSAgIFdhc21FZGdlOjpFcnJJbmZvOjpJ bmZvSW5zdHJ1Y3Rpb24gSW5mbzIoV2FzbUVkZ2U6Ok9wQ29kZTo6QmxvY2ssIDI1NSwgQXJncywK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1dhc21FZGdlOjpU eXBlQ29kZTo6STMyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgV2FzbUVkZ2U6OlR5cGVDb2RlOjpJMzIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBXYXNtRWRnZTo6VHlwZUNvZGU6OkkzMn0pOwotLSAgZm10Ojpwcmlu dCgie31cbiJzdiwgSW5mbzIpOwotKyAgc3RkOjpjb3V0IDw8IEluZm8yIDw8IHN0ZDo6ZW5kbDsK LSAgIFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvSW5zdHJ1Y3Rpb24gSW5mbzMoV2FzbUVkZ2U6Ok9w Q29kZTo6QmxvY2ssIDI1NSwgQXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAge1dhc21FZGdlOjpUeXBlQ29kZTo6STY0LAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgV2FzbUVkZ2U6OlR5cGVDb2RlOjpJNjQsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXYXNtRWRnZTo6VHlwZUNv ZGU6Okk2NH0pOwotLSAgZm10OjpwcmludCgie31cbiJzdiwgSW5mbzMpOwotKyAgc3RkOjpjb3V0 IDw8IEluZm8zIDw8IHN0ZDo6ZW5kbDsKLSAgIFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvSW5zdHJ1 Y3Rpb24gSW5mbzQoV2FzbUVkZ2U6Ok9wQ29kZTo6QmxvY2ssIDI1NSwgQXJncywKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1dhc21FZGdlOjpUeXBlQ29kZTo6 RjMyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2FzbUVk Z2U6OlR5cGVDb2RlOjpGMzIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBXYXNtRWRnZTo6VHlwZUNvZGU6OkYzMn0pOwotLSAgZm10OjpwcmludCgie31cbiJz diwgSW5mbzQpOwotKyAgc3RkOjpjb3V0IDw8IEluZm80IDw8IHN0ZDo6ZW5kbDsKLSAgIFdhc21F ZGdlOjpFcnJJbmZvOjpJbmZvSW5zdHJ1Y3Rpb24gSW5mbzUoV2FzbUVkZ2U6Ok9wQ29kZTo6Qmxv Y2ssIDI1NSwgQXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAge1dhc21FZGdlOjpUeXBlQ29kZTo6RjY0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgV2FzbUVkZ2U6OlR5cGVDb2RlOjpGNjQsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXYXNtRWRnZTo6VHlwZUNvZGU6OkY2NH0p OwotLSAgZm10OjpwcmludCgie31cbiJzdiwgSW5mbzUpOwotKyAgc3RkOjpjb3V0IDw8IEluZm81 IDw8IHN0ZDo6ZW5kbDsKLSAgIFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvSW5zdHJ1Y3Rpb24gSW5m bzYoV2FzbUVkZ2U6Ok9wQ29kZTo6QmxvY2ssIDI1NSwgQXJncywKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAge1dhc21FZGdlOjpUeXBlQ29kZTo6VjEyOCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdhc21FZGdlOjpUeXBl Q29kZTo6VjEyOCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFdhc21FZGdlOjpUeXBlQ29kZTo6VjEyOH0pOwotLSAgZm10OjpwcmludCgie31cbiJzdiwgSW5m bzYpOwotKyAgc3RkOjpjb3V0IDw8IEluZm82IDw8IHN0ZDo6ZW5kbDsKLSAgIFdhc21FZGdlOjpF cnJJbmZvOjpJbmZvSW5zdHJ1Y3Rpb24gSW5mbzcoV2FzbUVkZ2U6Ok9wQ29kZTo6QmxvY2ssIDI1 NSwgQXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1dh c21FZGdlOjpUeXBlQ29kZTo6RnVuY1JlZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFdhc21FZGdlOjpUeXBlQ29kZTo6RnVuY1JlZiwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdhc21FZGdlOjpUeXBlQ29kZTo6RnVu Y1JlZn0pOwotLSAgZm10OjpwcmludCgie31cbiJzdiwgSW5mbzcpOwotKyAgc3RkOjpjb3V0IDw8 IEluZm83IDw8IHN0ZDo6ZW5kbDsKLSAgIFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvSW5zdHJ1Y3Rp b24gSW5mbzgoV2FzbUVkZ2U6Ok9wQ29kZTo6QmxvY2ssIDI1NSwgQXJncywKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1dhc21FZGdlOjpUeXBlQ29kZTo6RXh0 ZXJuUmVmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2Fz bUVkZ2U6OlR5cGVDb2RlOjpFeHRlcm5SZWYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBXYXNtRWRnZTo6VHlwZUNvZGU6OkV4dGVyblJlZn0pOwotLSAgZm10 OjpwcmludCgie31cbiJzdiwgSW5mbzgpOwotKyAgc3RkOjpjb3V0IDw8IEluZm84IDw8IHN0ZDo6 ZW5kbDsKLSAgIEVYUEVDVF9UUlVFKHRydWUpOwotIH0KLSAKLSBURVNUKEVyckluZm9UZXN0LCBJ bmZvX19Cb3VuZGFyeSkgewotICAgV2FzbUVkZ2U6OkVyckluZm86OkluZm9Cb3VuZGFyeSBJbmZv MSgzLCA1LCAyKTsKLS0gIGZtdDo6cHJpbnQoInt9XG4ic3YsIEluZm8xKTsKLSsgIHN0ZDo6Y291 dCA8PCBJbmZvMSA8PCBzdGQ6OmVuZGw7Ci0gICBXYXNtRWRnZTo6RXJySW5mbzo6SW5mb0JvdW5k YXJ5IEluZm8yKDMsIDAsIDIpOwotLSAgZm10OjpwcmludCgie31cbiJzdiwgSW5mbzIpOwotKyAg c3RkOjpjb3V0IDw8IEluZm8yIDw8IHN0ZDo6ZW5kbDsKLSAgIEVYUEVDVF9UUlVFKHRydWUpOwot IH0KLSAKLSBURVNUKEVyckluZm9UZXN0LCBJbmZvX19Qcm9wb3NhbCkgewotICAgV2FzbUVkZ2U6 OkVyckluZm86OkluZm9Qcm9wb3NhbCBJbmZvMShXYXNtRWRnZTo6UHJvcG9zYWw6OlNJTUQpOwot LSAgZm10OjpwcmludCgie31cbiJzdiwgSW5mbzEpOwotKyAgc3RkOjpjb3V0IDw8IEluZm8xIDw8 IHN0ZDo6ZW5kbDsKLSAgIFdhc21FZGdlOjpFcnJJbmZvOjpJbmZvUHJvcG9zYWwgSW5mbzIoc3Rh dGljX2Nhc3Q8V2FzbUVkZ2U6OlByb3Bvc2FsPigyNTBVKSk7Ci0tICBmbXQ6OnByaW50KCJ7fVxu InN2LCBJbmZvMik7Ci0rICBzdGQ6OmNvdXQgPDwgSW5mbzIgPDwgc3RkOjplbmRsOwotICAgRVhQ RUNUX1RSVUUodHJ1ZSk7Ci0gfQotIAoKZGlmZiAtLWdpdCBhL3dhc21lZGdlLnNwZWMgYi93YXNt ZWRnZS5zcGVjCmluZGV4IDA5YmQ1MmUuLjA0YmYwYWQgMTAwNjQ0Ci0tLSBhL3dhc21lZGdlLnNw ZWMKKysrIGIvd2FzbWVkZ2Uuc3BlYwpAQCAtMSwyNSArMSwyMSBAQAotJWdsb2JhbCB2ZXJzaW9u IDAuMTQuMAorJWdsb2JhbCB2ZXJzaW9uIDAuMTcuMAogJWdsb2JhbCByZXBvbmFtZSBXYXNtRWRn ZQogJWdsb2JhbCBjYXBpX3NvbmFtZSAwCi0lZ2xvYmFsIGNhcGlfdmVyc2lvbiAwLjEuMAorJWds b2JhbCBjYXBpX3ZlcnNpb24gMC4xLjEKICV1bmRlZmluZSBfYW5ub3RhdGVkX2J1aWxkCiAKIE5h bWU6ICAgIHdhc21lZGdlCiBWZXJzaW9uOiAle3ZlcnNpb259Ci1SZWxlYXNlOiA0JXs/ZGlzdH0K K1JlbGVhc2U6IDElez9kaXN0fQogU3VtbWFyeTogSGlnaCBwZXJmb3JtYW5jZSBXZWJBc3NlbWJs eSBWaXJ0dWFsIE1hY2hpbmUKICMgVGhlIGVudGlyZSBzb3VyY2UgY29kZSBpcyBBU0wgMi4wIGV4 Y2VwdCBMSUNFTlNFLnNwZHggd2hpY2ggaXMgQ0MwCiBMaWNlbnNlOiBBU0wgMi4wIGFuZCBDQzAK IFVSTDogICAgIGh0dHBzOi8vZ2l0aHViLmNvbS8le3JlcG9uYW1lfS8le3JlcG9uYW1lfQogU291 cmNlMDogJXt1cmx9L3JlbGVhc2VzL2Rvd25sb2FkLyV7dmVyc2lvbn0vJXtyZXBvbmFtZX0tJXt2 ZXJzaW9ufS1zcmMudGFyLmd6Ci0jIFJldmVydCBodHRwczovL2dpdGh1Yi5jb20vV2FzbUVkZ2Uv V2FzbUVkZ2UvcHVsbC8yNTExIGZvciBvbGQgZm10IHZlcnNpb24KLVBhdGNoMDogd2FzbWVkZ2Ut cmV2ZXJ0LWZtdC5wYXRjaAotIyBodHRwczovL2dpdGh1Yi5jb20vV2FzbUVkZ2UvV2FzbUVkZ2Uv cHVsbC8zODA5Ci1QYXRjaDE6ICAwMDAxLUxMVk0tU3VwcG9ydC1MTFZNLTE5LTM4MDkucGF0Y2gK LSMgUGF0Y2ggZnJvbSBodHRwczovL2dpdGh1Yi5jb20vV2FzbUVkZ2UvV2FzbUVkZ2UvY29tbWl0 L2I2M2UyMDFkNDY0NTI0NTNlZTdjMmFjZjA3OTY3Y2QyOTJkN2UzZGEKLVBhdGNoMjogIDAwMDEt TExWTS1MTFZNWDg2X01NWFR5cGVLaW5kLWlzLXJlbW92ZWQtaW4tTExWTTIwLTQwNjQucGF0Y2gK LSMgUGF0Y2ggZnJvbSBodHRwczovL2dpdGh1Yi5jb20vV2FzbUVkZ2UvV2FzbUVkZ2UvY29tbWl0 LzM3Y2M5ZmExOWJkMjNlZGJiZGFhOTI1MjA1OWIxN2YxOTFmYTRkMTcKLVBhdGNoMzogIDAwMDEt Zml4LXJ1bnRpbWUtcmVmaW5lLXRoZS1vdmVyZmxvdy1kZXRlY3Rpb24td2hlbi13cmFwcC5wYXRj aAorIyBmbXQgNiAvIHNwZGxvZyAxLjUgY29tcGF0aWJpbGl0eSBmb3IgRVBFTCA4OiBSSEVMIDgg c2hpcHMgZm10IDYuMi4xIGFuZCBzcGRsb2cKKyMgMS41LjAsIG9sZGVyIHRoYW4gdXBzdHJlYW0g ZXhwZWN0cy4gQ29uZGl0aW9uYWwgZ3VhcmRzIG9ubHkgKEZNVF9WRVJTSU9OIGFuZAorIyBfX2hh c19pbmNsdWRlKSwgbm8gYmVoYXZpb3IgY2hhbmdlIG9uIG5ld2VyIGZtdC4gQ2FuZGlkYXRlIGZv ciB1cHN0cmVhbWluZy4KK1BhdGNoMDogIDAwMDEtZm10Ni1jb21wYXQucGF0Y2gKIEJ1aWxkUmVx dWlyZXM6IGNtYWtlCiBCdWlsZFJlcXVpcmVzOiBnY2MtYysrCiBCdWlsZFJlcXVpcmVzOiBnY2Mt dG9vbHNldC0xMS10b29sY2hhaW4KQEAgLTExMSwxMCArMTA3LDI3IEBAIGNkIC4uCiAle19pbmNs dWRlZGlyfS8le25hbWV9L2VudW1fdHlwZXMuaAogJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9pbnQx MjguaAogJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS92ZXJzaW9uLmgKKyV7X2luY2x1ZGVkaXJ9LyV7 bmFtZX0vd2FzbWVkZ2VfYXN0LmgKKyV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vd2FzbWVkZ2VfYmFz aWMuaAorJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS93YXNtZWRnZV9jb21waWxlci5oCisle19pbmNs dWRlZGlyfS8le25hbWV9L3dhc21lZGdlX2NvbmZpZ3VyZS5oCisle19pbmNsdWRlZGlyfS8le25h bWV9L3dhc21lZGdlX2NvbnRleHQuaAorJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS93YXNtZWRnZV9k ZXByZWNhdGVkLmgKKyV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vd2FzbWVkZ2VfZXhlY3V0aW9uLmgK KyV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vd2FzbWVkZ2VfZXhwZXJpbWVudGFsLmgKKyV7X2luY2x1 ZGVkaXJ9LyV7bmFtZX0vd2FzbWVkZ2VfaW5zdGFuY2UuaAorJXtfaW5jbHVkZWRpcn0vJXtuYW1l fS93YXNtZWRnZV9wbHVnaW4uaAorJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS93YXNtZWRnZV90b29s cy5oCisle19pbmNsdWRlZGlyfS8le25hbWV9L3dhc21lZGdlX3ZhbHVlLmgKKyV7X2luY2x1ZGVk aXJ9LyV7bmFtZX0vd2FzbWVkZ2Vfdm0uaAogJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS93YXNtZWRn ZS5oCiAle19saWJkaXJ9L2xpYiV7bmFtZX0uc28KIAogJWNoYW5nZWxvZworKiBUdWUgSnVuIDAy IDIwMjYgaHlkYWkgPHo1NDk4MTIyMEBnbWFpbC5jb20+IC0gMC4xNy4wLTEKKy0gVXBkYXRlIHRv IDAuMTcuMAorLSBBZGQgZm10IDYgLyBzcGRsb2cgMS41IGNvbXBhdGliaWxpdHkgcGF0Y2ggZm9y IEVQRUwgOCAoUGF0Y2gwKQorCiAqIE1vbiBKYW4gMDUgMjAyNiBkbTQgPGRtNEBzZWNvbmRzdGF0 ZS5pbz4gLSAwLjE0LjAtNAogLSBCYWNrcG9ydCBmaXggZm9yIENWRS0yMDI1LTIyOTIxCiAK