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: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: Import 5 upstream gdb-7.8 branch fixes (async fix by Pedro Alves). Date: Sat, 27 Jun 2026 23:56:50 GMT Message-ID: <178260461097.1.10883093325934765092.rpms-gdb-8a983520e39c@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 8a983520e39c3919c58a7b2dbbf7453d75c6853e QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGdkYi0xNy4yLXJlYmFzZS1mNDQKQ29tbWl0IDogOGE5ODM1MjBlMzljMzkxOWM1OGE3YjJkYmJm NzQ1M2Q3NWM2ODUzZQpBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVk aGF0LmNvbT4KRGF0ZSAgIDogMjAxNC0xMC0xOVQxODo0NDoyMCswMjowMApTdGF0cyAgOiArMTcy OS8tMjEgaW4gNCBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3Jn L3JwbXMvZ2RiL2MvOGE5ODM1MjBlMzljMzkxOWM1OGE3YjJkYmJmNzQ1M2Q3NWM2ODUzZT9icmFu Y2g9Z2RiLTE3LjItcmViYXNlLWY0NAoKTG9nOgpJbXBvcnQgNSB1cHN0cmVhbSBnZGItNy44IGJy YW5jaCBmaXhlcyAoYXN5bmMgZml4IGJ5IFBlZHJvIEFsdmVzKS4KCi0tLQpkaWZmIC0tZ2l0IGEv Z2RiLWFyY2hlci5wYXRjaCBiL2dkYi1hcmNoZXIucGF0Y2gKaW5kZXggNDhmMGI4Yy4uZDZjOGUz OCAxMDA2NDQKLS0tIGEvZ2RiLWFyY2hlci5wYXRjaAorKysgYi9nZGItYXJjaGVyLnBhdGNoCkBA IC0zNSwyMSArMzUsMjEgQEAgSW5kZXg6IGdkYi03LjgvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2Vm aWxlLmluCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLS0gZ2RiLTcuOC5vcmlnL2dkYi9kYXRhLWRpcmVjdG9yeS9N YWtlZmlsZS5pbgkyMDE0LTA3LTI5IDE5OjI5OjAyLjY2NTk3OTY1NSArMDIwMAogKysrIGdkYi03 LjgvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCTIwMTQtMDctMjkgMTk6Mjk6MzMuMDUz MDIyNDg2ICswMjAwCi1AQCAtNjYsNiArNjYsOCBAQCBQWVRIT05fRklMRV9MSVNUID0gXAorQEAg LTY1LDYgKzY1LDggQEAgUFlUSE9OX0ZJTEVfTElTVCA9IFwKKyAJZ2RiL3Byb21wdC5weSBcCiAg CWdkYi94bWV0aG9kLnB5IFwKLSAJZ2RiL2NvbW1hbmQvYm91bmRfcmVnaXN0ZXJzLnB5IFwKICAJ Z2RiL2NvbW1hbmQvX19pbml0X18ucHkgXAogKwlnZGIvY29tbWFuZC9pZ25vcmVfZXJyb3JzLnB5 IFwKICsJZ2RiL2NvbW1hbmQvcGFob2xlLnB5IFwKICAJZ2RiL2NvbW1hbmQveG1ldGhvZHMucHkg XAogIAlnZGIvY29tbWFuZC9mcmFtZV9maWx0ZXJzLnB5IFwKICAJZ2RiL2NvbW1hbmQvdHlwZV9w cmludGVycy5weSBcCi1AQCAtNzMsNyArNzUsMTAgQEAgUFlUSE9OX0ZJTEVfTElTVCA9IFwKLSAJ Z2RiL2NvbW1hbmQvcHJvbXB0LnB5IFwKLSAJZ2RiL2NvbW1hbmQvZXhwbG9yZS5weSBcCitAQCAt NzQsNyArNzYsMTAgQEAgUFlUSE9OX0ZJTEVfTElTVCA9IFwKICAJZ2RiL2Z1bmN0aW9uL19faW5p dF9fLnB5IFwKLS0JZ2RiL2Z1bmN0aW9uL3N0cmZucy5weQotKwlnZGIvZnVuY3Rpb24vc3RyZm5z LnB5IFwKKyAJZ2RiL2Z1bmN0aW9uL3N0cmZucy5weSBcCisgCWdkYi9wcmludGVyL19faW5pdF9f LnB5IFwKKy0JZ2RiL3ByaW50ZXIvYm91bmRfcmVnaXN0ZXJzLnB5CisrCWdkYi9wcmludGVyL2Jv dW5kX3JlZ2lzdGVycy5weSBcCiArCWdkYi9mdW5jdGlvbi9jYWxsZXJfaXMucHkgXAogKwlnZGIv ZnVuY3Rpb24vaW5fc2NvcGUucHkgXAogKwlnZGIvdHlwZXMucHkKCmRpZmYgLS1naXQgYS9nZGIt ZHRzLXJoZWw2LXB5dGhvbi1jb21wYXQucGF0Y2ggYi9nZGItZHRzLXJoZWw2LXB5dGhvbi1jb21w YXQucGF0Y2gKaW5kZXggMzY4ODcxMy4uYTgxZTk0MiAxMDA2NDQKLS0tIGEvZ2RiLWR0cy1yaGVs Ni1weXRob24tY29tcGF0LnBhdGNoCisrKyBiL2dkYi1kdHMtcmhlbDYtcHl0aG9uLWNvbXBhdC5w YXRjaApAQCAtMSwxMCArMSwxMCBAQAogaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3df YnVnLmNnaT9pZD0xMDIwMDA0CiAKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9kYXRh LWRpcmVjdG9yeS9NYWtlZmlsZS5pbgorSW5kZXg6IGdkYi03LjgvZ2RiL2RhdGEtZGlyZWN0b3J5 L01ha2VmaWxlLmluCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dk Yi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgkyMDE0LTA2LTEzIDIzOjAyOjM3LjU5NzExNTc4 NyArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2Vm aWxlLmluCTIwMTQtMDYtMTMgMjM6MDM6MjEuMjg1MTYzOTA5ICswMjAwCi1AQCAtNjAsNiArNjAs OCBAQCBQWVRIT05fRklMRVMgPSBcCistLS0gZ2RiLTcuOC5vcmlnL2dkYi9kYXRhLWRpcmVjdG9y eS9NYWtlZmlsZS5pbgkyMDE0LTEwLTE5IDE4OjI1OjM0LjE4NzExMDI2MSArMDIwMAorKysrIGdk Yi03LjgvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCTIwMTQtMTAtMTkgMTg6MjU6NTEu MDkyMTIxNzA2ICswMjAwCitAQCAtNjAsNiArNjAsOCBAQCBQWVRIT05fRklMRV9MSVNUID0gXAog IAlnZGIvZnJhbWVzLnB5IFwKICAJZ2RiL0ZyYW1lSXRlcmF0b3IucHkgXAogIAlnZGIvRnJhbWVE ZWNvcmF0b3IucHkgXApAQCAtMTMsMTggKzEzLDE4IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQw NjEzL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgogIAlnZGIvdHlwZXMucHkgXAogIAln ZGIvcHJpbnRpbmcucHkgXAogIAlnZGIvcHJvbXB0LnB5IFwKLUBAIC03NCw2ICs3Niw3IEBAIFBZ VEhPTl9GSUxFUyA9IFwKK0BAIC03Myw2ICs3NSw3IEBAIFBZVEhPTl9GSUxFX0xJU1QgPSBcCiAg CWdkYi9jb21tYW5kL3ByZXR0eV9wcmludGVycy5weSBcCiAgCWdkYi9jb21tYW5kL3Byb21wdC5w eSBcCiAgCWdkYi9jb21tYW5kL2V4cGxvcmUucHkgXAogKwlnZGIvY29tbWFuZC9iYWNrdHJhY2Uu cHkgXAogIAlnZGIvZnVuY3Rpb24vX19pbml0X18ucHkgXAogIAlnZGIvZnVuY3Rpb24vc3RyZm5z LnB5IFwKLSAJZ2RiL2Z1bmN0aW9uL2NhbGxlcl9pcy5weSBcCi1JbmRleDogZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvcHl0aG9uL2xpYi9nZGIvRnJhbWVXcmFwcGVyLnB5CisgCWdkYi9wcmludGVy L19faW5pdF9fLnB5IFwKK0luZGV4OiBnZGItNy44L2dkYi9weXRob24vbGliL2dkYi9GcmFtZVdy YXBwZXIucHkKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9weXRob24vbGliL2dk Yi9GcmFtZVdyYXBwZXIucHkJMjAxNC0wNi0xMyAyMzowMjozNy41OTgxMTU3ODggKzAyMDAKKysr KyBnZGItNy44L2dkYi9weXRob24vbGliL2dkYi9GcmFtZVdyYXBwZXIucHkJMjAxNC0xMC0xOSAx ODoyNTozNi44MDgxMTIwMzEgKzAyMDAKIEBAIC0wLDAgKzEsMTIyIEBACiArIyBXcmFwcGVyIEFQ SSBmb3IgZnJhbWVzLgogKwpAQCAtMTQ4LDEwICsxNDgsMTAgQEAgSW5kZXg6IGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL3B5dGhvbi9saWIvZ2RiL0ZyYW1lV3JhcHBlci5weQogKwogKyAgICBkZWYg X19nZXRhdHRyX18gKHNlbGYsIG5hbWUpOgogKyAgICAgICAgcmV0dXJuIGdldGF0dHIgKHNlbGYu ZnJhbWUsIG5hbWUpCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvcHl0aG9uL2xpYi9n ZGIvYmFja3RyYWNlLnB5CitJbmRleDogZ2RiLTcuOC9nZGIvcHl0aG9uL2xpYi9nZGIvYmFja3Ry YWNlLnB5CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAw MDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvcHl0aG9uL2xpYi9nZGIv YmFja3RyYWNlLnB5CTIwMTQtMDYtMTMgMjM6MDI6MzcuNTk4MTE1Nzg4ICswMjAwCisrKysgZ2Ri LTcuOC9nZGIvcHl0aG9uL2xpYi9nZGIvYmFja3RyYWNlLnB5CTIwMTQtMTAtMTkgMTg6MjU6MzYu ODA4MTEyMDMxICswMjAwCiBAQCAtMCwwICsxLDQyIEBACiArIyBGaWx0ZXJpbmcgYmFja3RyYWNl LgogKwpAQCAtMTk1LDEwICsxOTUsMTAgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L3B5dGhvbi9saWIvZ2RiL2JhY2t0cmFjZS5weQogKyAgICAgICAgcmV0dXJuIGl0ZXIKICsgICAg cmV0dXJuIG9sZF9mcmFtZV9maWx0ZXIgKGl0ZXIpCiArCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0 MDYxMy9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkKK0luZGV4OiBnZGIt Ny44L2dkYi9weXRob24vbGliL2dkYi9jb21tYW5kL2JhY2t0cmFjZS5weQogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog LS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5 CTIwMTQtMDYtMTMgMjM6MDI6MzcuNTk4MTE1Nzg4ICswMjAwCisrKysgZ2RiLTcuOC9nZGIvcHl0 aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkJMjAxNC0xMC0xOSAxODoyNTozNi44MDgx MTIwMzEgKzAyMDAKIEBAIC0wLDAgKzEsMTA2IEBACiArIyBOZXcgYmFja3RyYWNlIGNvbW1hbmQu CiArCgpkaWZmIC0tZ2l0IGEvZ2RiLXVwc3RyZWFtLnBhdGNoIGIvZ2RiLXVwc3RyZWFtLnBhdGNo CmluZGV4IDAyOGZlN2EuLjlkMmJhYzggMTAwNjQ0Ci0tLSBhL2dkYi11cHN0cmVhbS5wYXRjaAor KysgYi9nZGItdXBzdHJlYW0ucGF0Y2gKQEAgLTY1LDMgKzY1LDE3MDggQEAgaW5kZXggMGUwMjAy ZC4uZDg0OWI0YyAxMDA2NDQKICAjIGdkYnNlcnZlciBkb2VzIG5vdCBoYXZlIHRoaXMgaXNzdWUu CiAgaWYgIVtpc19yZW1vdGUgdGFyZ2V0XSB7CiAgICAgIHNldHVwX2tmYWlsICIqLSotKiIgZ2Ri LzE1OTM0CitGcm9tIDYzZmNjOGJjZDk4YThjZDk2NzJkZDg2NzJmNjYzNjYyZjhjYWE4MTEgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQZWRybyBBbHZlcyA8cGFsdmVzQHJlZGhhdC5j b20+CitEYXRlOiBXZWQsIDEgT2N0IDIwMTQgMTA6NDQ6MDggKzAxMDAKK1N1YmplY3Q6IFtQQVRD SCAxMy8zN10gQWFyY2g2NDogTWFrZSBDUFNSIGEgMzItYml0IHJlZ2lzdGVyIGFnYWluIGluIHRo ZQorIHRhcmdldCBkZXNjcmlwdGlvbgorCitUaGlzIHJldmVydHMgY29tbWl0IGE0ZDliYTg1IC0g J0FBUkNINjQ6IENoYW5nZSBjcHNyIHR5cGUgdG8gYmUKKzY0Yml0LicuCisKK0V2ZW4gdGhvdWdo IExpbnV4J3MgcHRyYWNlIGV4cG9zZXMgQ1BTUiBhcyA2NC1iaXQsIENQU1IgaXMgcmVhbGx5Cisz Mi1iaXQsIGFuZCBiYXNpbmcgR0RCJ3MgZnVuZGFtZW50YWxzIG9uIGEgcGFydGljdWxhciBPUydz IHB0cmFjZSgyKQoraW1wbGVtZW50YXRpb24gaXMgYSBiYWQgaWRlYS4KKworSW4gYWRkaXRpb24s IHdoaWxlIHRoYXQgY29tbWl0IGludGVuZGVkIHRvIGZpeCBiaWcgZW5kaWFuIEFhcmNoNjQsIGl0 CitlbmRlZCB1cCBicmVha2luZyBmbG9hdGluZyBwb2ludCBkZWJ1Z2dpbmcgYWdhaW5zdCBHREJz ZXJ2ZXIsIGZvciBib3RoCitiaWcgYW5kIGxpdHRsZSBlbmRpYW4sIGJlY2F1c2UgaXQgY2hhbmdl ZCB0aGUgQ1BTUiB0byBiZSA2NC1iaXQgaW4gdGhlCitmZWF0dXJlcy9hYXJjaDY0LWNvcmUueG1s IGZpbGUsIGJ1dCBtaXNzZWQgcmVnZW5lcmF0aW5nIHRoZQorcmVnZm9ybWF0cy9hYXJjaDY0LmRh dCBmaWxlLiAgSWYgd2UgZ2VuZXJhdGUgaXQgbm93LCB3ZSBzZWUgdGhpczoKKworICBkaWZmIC0t Z2l0IGMvZ2RiL3JlZ2Zvcm1hdHMvYWFyY2g2NC5kYXQgdy9nZGIvcmVnZm9ybWF0cy9hYXJjaDY0 LmRhdAorICBpbmRleCBhZmUxMDI4Li4wZDMyMTgzIDEwMDY0NAorICAtLS0gYy9nZGIvcmVnZm9y bWF0cy9hYXJjaDY0LmRhdAorICArKysgdy9nZGIvcmVnZm9ybWF0cy9hYXJjaDY0LmRhdAorICBA QCAtMzUsNyArMzUsNyBAQCBleHBlZGl0ZTp4Mjksc3AscGMKKyAgIDY0OngzMAorICAgNjQ6c3AK KyAgIDY0OnBjCisgIC0zMjpjcHNyCisgICs2NDpjcHNyCisgICAxMjg6djAKKyAgIDEyODp2MQor ICAgMTI4OnYyCisKK0lPVywgdGhhdCBjb21taXQgbGVmdCByZWdmb3JtYXRzL2FhcmNoNjQuZGF0 IHN0aWxsIGNvbnNpZGVyaW5nIENQU1IgYXMKKzMyLWJpdHMuICByZWdmb3JtYXRzL2FhcmNoNjQu ZGF0IGlzIHVzZWQgYnkgR0RCc2VydmVyIGZvciBpdHMgaW50ZXJuYWwKK3JlZ2NhY2hlIGxheW91 dCwgYW5kIGZvciB0aGUgZy9HIHBhY2tldCByZWdpc3RlciBibG9jay4gIFNlZSB0aGUKK2dlbmVy YXRlZCBhYXJjaDY0LmMgZmlsZSBpbiBHREJzZXJ2ZXIncyBidWlsZCBkaXIuCisKK1NvIHRoZSB0 YXJnZXQgZGVzY3JpcHRpb24geG1sIGZpbGUgdGhhdCBHREJzZXJ2ZXIgcmVwb3J0cyB0byBHREIg aXMKK25vdyBjbGFpbWluZyB0aGF0IENQU1IgaXMgNjQtYml0LCBidXQgd2hhdCBHREJzZXJ2ZXIg YWN0dWFsbHkgcHV0cyBpbgordGhlIGcvRyByZWdpc3RlciBwYWNrZXRzIGlzIDMyLWJpdHMuICBC ZWNhdXNlIEdEQiB0aGlua3MgQ1BTUiBpcworNjQtYml0IChiZWNhdXNlIHRoYXQncyB3aGF0IHRo ZSBYTUwgZGVzY3JpcHRpb24gc2F5cyksIEdEQiB3aWxsIGJlCityZWFkaW5nIHRoZSByZW1haW5p bmcgMzItYml0IGJpdHMgb2YgQ1BTUiBvdXQgb2YgdjAgKHRoZSByZWdpc3RlcgoraW1tZWRpYXRl bHkgYWZ0ZXJ3YXJkcyksIGFuZCB0aGVuIGFsbCB0aGUgcmVnaXN0ZXJzIHRoYXQgZm9sbG93IENQ U1IKK2luIHRoZSByZWdpc3RlciBwYWNrZXQgZW5kIHVwIHdyb25nIGluIEdEQiwgYmVjYXVzZSB0 aGV5J3JlIGJlaW5nIHJlYWQKK2Zyb20gdGhlIHdyb25nIG9mZnNldHMuLi4KKworZ2RiLworMjAx NC0xMC0wMSAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KKworCSogZmVhdHVyZXMv YWFyY2g2NC1jb3JlLnhtbCAoY3Bzcik6IENoYW5nZSBiYWNrIHRvIDMyLWJpdC4KKwkqIGZlYXR1 cmVzL2FhcmNoNjQuYzogUmVnZW5lcmF0ZS4KKy0tLQorIGdkYi9DaGFuZ2VMb2cgICAgICAgICAg ICAgICAgIHwgNSArKysrKworIGdkYi9mZWF0dXJlcy9hYXJjaDY0LWNvcmUueG1sIHwgMiArLQor IGdkYi9mZWF0dXJlcy9hYXJjaDY0LmMgICAgICAgIHwgMiArLQorIDMgZmlsZXMgY2hhbmdlZCwg NyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCisjIyMgYS9nZGIvQ2hhbmdlTG9nCisj IyMgYi9nZGIvQ2hhbmdlTG9nCisjIyAtMSwzICsxLDggQEAKKysyMDE0LTEwLTAxICBQZWRybyBB bHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgorKworKwkqIGZlYXR1cmVzL2FhcmNoNjQtY29yZS54 bWwgKGNwc3IpOiBDaGFuZ2UgYmFjayB0byAzMi1iaXQuCisrCSogZmVhdHVyZXMvYWFyY2g2NC5j OiBSZWdlbmVyYXRlLgorKworIDIwMTQtMDktMTEgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhh dC5jb20+CisgCisgCVBSIGdkYi8xNzM0NworLS0tIGEvZ2RiL2ZlYXR1cmVzL2FhcmNoNjQtY29y ZS54bWwKKysrKyBiL2dkYi9mZWF0dXJlcy9hYXJjaDY0LWNvcmUueG1sCitAQCAtNDIsNSArNDIs NSBAQAorICAgPHJlZyBuYW1lPSJzcCIgYml0c2l6ZT0iNjQiIHR5cGU9ImRhdGFfcHRyIi8+Cisg CisgICA8cmVnIG5hbWU9InBjIiBiaXRzaXplPSI2NCIgdHlwZT0iY29kZV9wdHIiLz4KKy0gIDxy ZWcgbmFtZT0iY3BzciIgYml0c2l6ZT0iNjQiLz4KKysgIDxyZWcgbmFtZT0iY3BzciIgYml0c2l6 ZT0iMzIiLz4KKyA8L2ZlYXR1cmU+CistLS0gYS9nZGIvZmVhdHVyZXMvYWFyY2g2NC5jCisrKysg Yi9nZGIvZmVhdHVyZXMvYWFyY2g2NC5jCitAQCAtNTAsNyArNTAsNyBAQCBpbml0aWFsaXplX3Rk ZXNjX2FhcmNoNjQgKHZvaWQpCisgICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieDMwIiwg MzAsIDEsIE5VTEwsIDY0LCAiaW50Iik7CisgICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAi c3AiLCAzMSwgMSwgTlVMTCwgNjQsICJkYXRhX3B0ciIpOworICAgdGRlc2NfY3JlYXRlX3JlZyAo ZmVhdHVyZSwgInBjIiwgMzIsIDEsIE5VTEwsIDY0LCAiY29kZV9wdHIiKTsKKy0gIHRkZXNjX2Ny ZWF0ZV9yZWcgKGZlYXR1cmUsICJjcHNyIiwgMzMsIDEsIE5VTEwsIDY0LCAiaW50Iik7CisrICB0 ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiY3BzciIsIDMzLCAxLCBOVUxMLCAzMiwgImludCIp OworIAorICAgZmVhdHVyZSA9IHRkZXNjX2NyZWF0ZV9mZWF0dXJlIChyZXN1bHQsICJvcmcuZ251 LmdkYi5hYXJjaDY0LmZwdSIpOworICAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZl YXR1cmUsICJpZWVlX2RvdWJsZSIpOworLS0gCisxLjkuMworCitGcm9tIDI0NGZlODJiOWM2NTQy NTU3YTFjMmQ0ZDIxYWYxMDkyNjkyZDM3N2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiBEb3VnIEV2YW5zIDxkamVAZ29vZ2xlLmNvbT4KK0RhdGU6IFdlZCwgMTUgT2N0IDIwMTQgMTM6 MjM6MjMgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSCAyOS8zN10gUFIgcHl0aG9uLzE3MzY0CisKK2dk Yi9DaGFuZ2VMb2c6CisKKwkqIHB5dGhvbi9saWIvZ2RiL19faW5pdF9fLnB5IChwYWNrYWdlcyk6 IEFkZCAicHJpbnRlciIuCisJKiBweXRob24vbGliL2dkYi9jb21tYW5kL2JvdW5kX3JlZ2lzdGVy cy5weTogTW92ZWQgdG8gLi4uCisJKiBweXRob24vbGliL2dkYi9wcmludGVyL2JvdW5kX3JlZ2lz dGVycy5weTogLi4uIGhlcmUuCisJQWRkIHByaW50ZXIgdG8gZ2xvYmFsIHNldCBvZiBidWlsdGlu IHByaW50ZXJzLiAgUmVuYW1lIHByaW50ZXIgZnJvbQorCSJib3VuZCIgdG8gIm1weF9ib3VuZDEy OCIuCisJKiBweXRob24vbGliL2dkYi9wcmludGluZy5weSAoX2J1aWx0aW5fcHJldHR5X3ByaW50 ZXJzKTogTmV3IGdsb2JhbCwKKwlyZWdpc3RlcmVkIGFzIGdsb2JhbCAiYnVpbHRpbiIgcHJpbnRl ci4KKwkoYWRkX2J1aWx0aW5fcHJldHR5X3ByaW50ZXIpOiBOZXcgZnVuY3Rpb24uCisJKiBkYXRh LWRpcmVjdG9yeS9NYWtlZmlsZS5pbiAoUFlUSE9OX0ZJTEVfTElTVCk6IFVwZGF0ZSwgYW5kIGFk ZAorCWdkYi9wcmludGVyL19faW5pdF9fLnB5LgorLS0tCisgZ2RiL0NoYW5nZUxvZyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTUgKysrKysrKysrCisgZ2RiL2RhdGEtZGlyZWN0 b3J5L01ha2VmaWxlLmluICAgICAgICAgICAgICAgIHwgIDUgKy0tCisgZ2RiL3B5dGhvbi9saWIv Z2RiL19faW5pdF9fLnB5ICAgICAgICAgICAgICAgIHwgIDMgKy0KKyBnZGIvcHl0aG9uL2xpYi9n ZGIvY29tbWFuZC9ib3VuZF9yZWdpc3RlcnMucHkgfCA0NSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBnZGIvcHl0aG9uL2xpYi9nZGIvcHJpbnRlci9fX2luaXRfXy5weSAgICAgICAgfCAx NCArKysrKysrKysKKyBnZGIvcHl0aG9uL2xpYi9nZGIvcHJpbnRlci9ib3VuZF9yZWdpc3RlcnMu cHkgfCAzNiArKysrKysrKysrKysrKysrKysrKysKKyBnZGIvcHl0aG9uL2xpYi9nZGIvcHJpbnRp bmcucHkgICAgICAgICAgICAgICAgfCAxNCArKysrKysrKysKKyA3IGZpbGVzIGNoYW5nZWQsIDg0 IGluc2VydGlvbnMoKyksIDQ4IGRlbGV0aW9ucygtKQorIGRlbGV0ZSBtb2RlIDEwMDY0NCBnZGIv cHl0aG9uL2xpYi9nZGIvY29tbWFuZC9ib3VuZF9yZWdpc3RlcnMucHkKKyBjcmVhdGUgbW9kZSAx MDA2NDQgZ2RiL3B5dGhvbi9saWIvZ2RiL3ByaW50ZXIvX19pbml0X18ucHkKKyBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2RiL3B5dGhvbi9saWIvZ2RiL3ByaW50ZXIvYm91bmRfcmVnaXN0ZXJzLnB5CisK KyMjIyBhL2dkYi9DaGFuZ2VMb2cKKyMjIyBiL2dkYi9DaGFuZ2VMb2cKKyMjIC0xLDMgKzEsMTgg QEAKKysyMDE0LTEwLTE1ICBEb3VnIEV2YW5zICA8ZGplQGdvb2dsZS5jb20+CisrCSAgICBXYWxm cmVkIFRlZGVzY2hpICA8d2FsZnJlZC50ZWRlc2NoaUBpbnRlbC5jb20+CisrCisrCVBSIHB5dGhv bi8xNzM2NAorKwkqIHB5dGhvbi9saWIvZ2RiL19faW5pdF9fLnB5IChwYWNrYWdlcyk6IEFkZCAi cHJpbnRlciIuCisrCSogcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9ib3VuZF9yZWdpc3RlcnMucHk6 IE1vdmVkIHRvIC4uLgorKwkqIHB5dGhvbi9saWIvZ2RiL3ByaW50ZXIvYm91bmRfcmVnaXN0ZXJz LnB5OiAuLi4gaGVyZS4KKysJQWRkIHByaW50ZXIgdG8gZ2xvYmFsIHNldCBvZiBidWlsdGluIHBy aW50ZXJzLiAgUmVuYW1lIHByaW50ZXIgZnJvbQorKwkiYm91bmQiIHRvICJtcHhfYm91bmQxMjgi LgorKwkqIHB5dGhvbi9saWIvZ2RiL3ByaW50aW5nLnB5IChfYnVpbHRpbl9wcmV0dHlfcHJpbnRl cnMpOiBOZXcgZ2xvYmFsLAorKwlyZWdpc3RlcmVkIGFzIGdsb2JhbCAiYnVpbHRpbiIgcHJpbnRl ci4KKysJKGFkZF9idWlsdGluX3ByZXR0eV9wcmludGVyKTogTmV3IGZ1bmN0aW9uLgorKwkqIGRh dGEtZGlyZWN0b3J5L01ha2VmaWxlLmluIChQWVRIT05fRklMRV9MSVNUKTogVXBkYXRlLCBhbmQg YWRkCisrCWdkYi9wcmludGVyL19faW5pdF9fLnB5LgorKworIDIwMTQtMTAtMDEgIFBlZHJvIEFs dmVzICA8cGFsdmVzQHJlZGhhdC5jb20+CisgCisgCSogZmVhdHVyZXMvYWFyY2g2NC1jb3JlLnht bCAoY3Bzcik6IENoYW5nZSBiYWNrIHRvIDMyLWJpdC4KKy0tLSBhL2dkYi9kYXRhLWRpcmVjdG9y eS9NYWtlZmlsZS5pbgorKysrIGIvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCitAQCAt NjQsNyArNjQsNiBAQCBQWVRIT05fRklMRV9MSVNUID0gXAorIAlnZGIvcHJpbnRpbmcucHkgXAor IAlnZGIvcHJvbXB0LnB5IFwKKyAJZ2RiL3htZXRob2QucHkgXAorLQlnZGIvY29tbWFuZC9ib3Vu ZF9yZWdpc3RlcnMucHkgXAorIAlnZGIvY29tbWFuZC9fX2luaXRfXy5weSBcCisgCWdkYi9jb21t YW5kL3htZXRob2RzLnB5IFwKKyAJZ2RiL2NvbW1hbmQvZnJhbWVfZmlsdGVycy5weSBcCitAQCAt NzMsNyArNzIsOSBAQCBQWVRIT05fRklMRV9MSVNUID0gXAorIAlnZGIvY29tbWFuZC9wcm9tcHQu cHkgXAorIAlnZGIvY29tbWFuZC9leHBsb3JlLnB5IFwKKyAJZ2RiL2Z1bmN0aW9uL19faW5pdF9f LnB5IFwKKy0JZ2RiL2Z1bmN0aW9uL3N0cmZucy5weQorKwlnZGIvZnVuY3Rpb24vc3RyZm5zLnB5 IFwKKysJZ2RiL3ByaW50ZXIvX19pbml0X18ucHkgXAorKwlnZGIvcHJpbnRlci9ib3VuZF9yZWdp c3RlcnMucHkKKyAKKyBASEFWRV9QWVRIT05fVFJVRUBQWVRIT05fRklMRVMgPSAkKFBZVEhPTl9G SUxFX0xJU1QpCisgQEhBVkVfUFlUSE9OX0ZBTFNFQFBZVEhPTl9GSUxFUyA9CistLS0gYS9nZGIv cHl0aG9uL2xpYi9nZGIvX19pbml0X18ucHkKKysrKyBiL2dkYi9weXRob24vbGliL2dkYi9fX2lu aXRfXy5weQorQEAgLTgxLDcgKzgxLDggQEAgUFlUSE9ORElSID0gb3MucGF0aC5kaXJuYW1lKG9z LnBhdGguZGlybmFtZShfX2ZpbGVfXykpCisgCisgcGFja2FnZXMgPSBbCisgICAgICdmdW5jdGlv bicsCistICAgICdjb21tYW5kJworKyAgICAnY29tbWFuZCcsCisrICAgICdwcmludGVyJworIF0K KyAKKyAjIHBrZ3V0aWwuaXRlcl9tb2R1bGVzIGlzIG5vdCBhdmFpbGFibGUgcHJpb3IgdG8gUHl0 aG9uIDIuNi4gIEluc3RlYWQsCistLS0gYS9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9ib3Vu ZF9yZWdpc3RlcnMucHkKKysrKyAvZGV2L251bGwKK0BAIC0xLDQ1ICswLDAgQEAKKy0jIFByZXR0 eS1wcmludGVyIHV0aWxpdGllcy4KKy0jIENvcHlyaWdodCAoQykgMjAxMy0yMDE0IEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorLQorLSMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKy0jIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 CistIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRo ZSBMaWNlbnNlLCBvcgorLSMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKy0j CistIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKy0jIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCistIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCistIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorLSMKKy0jIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCistIyBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4K Ky0KKy1pbXBvcnQgZ2RiLnByaW50aW5nCistCistY2xhc3MgQm91bmRQcmludGVyOgorLSAgICAi IiJBZGRzIHNpemUgZmllbGQgdG8gYSBfcmF3Ym91bmQxMjggdHlwZS4iIiIKKy0KKy0gICAgZGVm IF9faW5pdF9fIChzZWxmLCB2YWwpOgorLSAgICAgICAgc2VsZi52YWwgPSB2YWwKKy0KKy0gICAg ZGVmIHRvX3N0cmluZyAoc2VsZik6CistICAgICAgICB1cHBlciA9IHNlbGYudmFsWyJ1Ym91bmQi XQorLSAgICAgICAgbG93ZXIgPSBzZWxmLnZhbFsibGJvdW5kIl0KKy0gICAgICAgIHNpemUgID0g KGxvbmcpICgodXBwZXIpIC0gKGxvd2VyKSkKKy0gICAgICAgIGlmIHNpemUgPiAtMToKKy0gICAg ICAgICAgICBzaXplID0gc2l6ZSArIDEKKy0gICAgICAgIHJlc3VsdCA9ICd7bGJvdW5kID0gJXMs IHVib3VuZCA9ICVzfSA6IHNpemUgJXMnICUgKGxvd2VyLCB1cHBlciwgc2l6ZSkKKy0gICAgICAg IHJldHVybiByZXN1bHQKKy0KKy0jIFRoZXJlIGFyZSB0d28gcGF0dGVybiBtYXRjaGluZyB1c2Vk OiBmaXJzdCBvbmUgaXMgcmVsYXRlZCB0byBhIGxpYnJhcnkKKy0jIHNlY29uZCBpcyByZWxhdGVk IHRvIHRoZSB0eXBlLiBTaW5jZSB3ZSBhcmUgZGlzcGxheWluZyBhIHJlZ2lzdGVyIGFsbAorLSMg bGlicmFyaWVzIGFyZSBhY2NlcHRlZC4gVHlwZSB0byBiZSBwcm9jZXNzZWQgaXMgdGhlIHNhbWUg cHJlc2VudAorLSMgaW4gdGhlIHhtbCBmaWxlLgorLQorLWRlZiBidWlsZF9wcmV0dHlfcHJpbnRl ciAoKToKKy0gICAgcHAgPSBnZGIucHJpbnRpbmcuUmVnZXhwQ29sbGVjdGlvblByZXR0eVByaW50 ZXIgKCIuKiIpCistICAgIHBwLmFkZF9wcmludGVyICgnYm91bmQnLCAnXl9fZ2RiX2J1aWx0aW5f dHlwZV9ib3VuZDEyOCcsIEJvdW5kUHJpbnRlcikKKy0gICAgcmV0dXJuIHBwCistCistZ2RiLnBy aW50aW5nLnJlZ2lzdGVyX3ByZXR0eV9wcmludGVyIChnZGIuY3VycmVudF9vYmpmaWxlICgpLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRfcHJldHR5X3ByaW50 ZXIgKCkpCistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvcHl0aG9uL2xpYi9nZGIvcHJpbnRlci9f X2luaXRfXy5weQorQEAgLTAsMCArMSwxNCBAQAorKyMgQ29weXJpZ2h0IChDKSAyMDE0IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9m IHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K KysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4KKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi9weXRob24vbGliL2dkYi9wcmludGVyL2JvdW5k X3JlZ2lzdGVycy5weQorQEAgLTAsMCArMSwzNiBAQAorKyMgUHJldHR5LXByaW50ZXJzIGZvciBi b3VuZHMgcmVnaXN0ZXJzLgorKyMgQ29weXJpZ2h0IChDKSAyMDEzLTIwMTQgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysj IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExp Y2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysj IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKwor K2ltcG9ydCBnZGIucHJpbnRpbmcKKysKKytjbGFzcyBNcHhCb3VuZDEyOFByaW50ZXI6CisrICAg ICIiIkFkZHMgc2l6ZSBmaWVsZCB0byBhIG1weCBfX2dkYl9idWlsdGluX3R5cGVfYm91bmQxMjgg dHlwZS4iIiIKKysKKysgICAgZGVmIF9faW5pdF9fIChzZWxmLCB2YWwpOgorKyAgICAgICAgc2Vs Zi52YWwgPSB2YWwKKysKKysgICAgZGVmIHRvX3N0cmluZyAoc2VsZik6CisrICAgICAgICB1cHBl ciA9IHNlbGYudmFsWyJ1Ym91bmQiXQorKyAgICAgICAgbG93ZXIgPSBzZWxmLnZhbFsibGJvdW5k Il0KKysgICAgICAgIHNpemUgID0gKGxvbmcpICgodXBwZXIpIC0gKGxvd2VyKSkKKysgICAgICAg IGlmIHNpemUgPiAtMToKKysgICAgICAgICAgICBzaXplID0gc2l6ZSArIDEKKysgICAgICAgIHJl c3VsdCA9ICd7bGJvdW5kID0gJXMsIHVib3VuZCA9ICVzfSA6IHNpemUgJXMnICUgKGxvd2VyLCB1 cHBlciwgc2l6ZSkKKysgICAgICAgIHJldHVybiByZXN1bHQKKysKKytnZGIucHJpbnRpbmcuYWRk X2J1aWx0aW5fcHJldHR5X3ByaW50ZXIgKCdtcHhfYm91bmQxMjgnLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ15fX2dkYl9idWlsdGluX3R5cGVfYm91bmQxMjgn LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTXB4Qm91bmQxMjhQ cmludGVyKQorLS0tIGEvZ2RiL3B5dGhvbi9saWIvZ2RiL3ByaW50aW5nLnB5CisrKysgYi9nZGIv cHl0aG9uL2xpYi9nZGIvcHJpbnRpbmcucHkKK0BAIC0yNjMsMyArMjYzLDE3IEBAIGNsYXNzIEZs YWdFbnVtZXJhdGlvblByaW50ZXIoUHJldHR5UHJpbnRlcik6CisgICAgICAgICAgICAgcmV0dXJu IF9FbnVtSW5zdGFuY2Uoc2VsZi5lbnVtZXJhdG9ycywgdmFsKQorICAgICAgICAgZWxzZToKKyAg ICAgICAgICAgICByZXR1cm4gTm9uZQorKworKworKyMgQnVpbHRpbiBwcmV0dHktcHJpbnRlcnMu CisrIyBUaGUgc2V0IGlzIGRlZmluZWQgYXMgZW1wdHksIGFuZCBmaWxlcyBpbiBwcmludGluZy8q LnB5IGFkZCB0aGVpciBwcmludGVycworKyMgdG8gdGhpcyB3aXRoIGFkZF9idWlsdGluX3ByZXR0 eV9wcmludGVyLgorKworK19idWlsdGluX3ByZXR0eV9wcmludGVycyA9IFJlZ2V4cENvbGxlY3Rp b25QcmV0dHlQcmludGVyKCJidWlsdGluIikKKysKKytyZWdpc3Rlcl9wcmV0dHlfcHJpbnRlcihO b25lLCBfYnVpbHRpbl9wcmV0dHlfcHJpbnRlcnMpCisrCisrIyBBZGQgYSBidWlsdGluIHByZXR0 eS1wcmludGVyLgorKworK2RlZiBhZGRfYnVpbHRpbl9wcmV0dHlfcHJpbnRlcihuYW1lLCByZWdl eHAsIHByaW50ZXIpOgorKyAgICBfYnVpbHRpbl9wcmV0dHlfcHJpbnRlcnMuYWRkX3ByaW50ZXIo bmFtZSwgcmVnZXhwLCBwcmludGVyKQorLS0gCisxLjkuMworCitGcm9tIDkyZTA4YzBkMTkxOTA4 YjczMTU2MDM1NTgyMjZjN2NhMGJmYTg2YTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiBQZWRybyBBbHZlcyA8cGFsdmVzQHJlZGhhdC5jb20+CitEYXRlOiBGcmksIDE3IE9jdCAyMDE0 IDEzOjQ5OjI4ICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMzIvMzddIE1ha2UgY29tbW9uIGNvZGUg aGFuZGxlIHRhcmdldF90ZXJtaW5hbF8qIGlkZW1wb3RlbmN5CisKK0kgZm91bmQgYSBwbGFjZSB0 aGF0IHNob3VsZCBiZSBnaXZpbmcgYmFjayB0aGUgdGVybWluYWwgdG8gdGhlIHRhcmdldCwKK2J1 dCBvbmx5IGlmIHRoZSB0YXJnZXQgd2FzIGFscmVhZHkgb3duaW5nIGl0LiAgU28gSSBuZWVkIHRv IGFkZCBhCitnZXR0ZXIgZm9yIHdobyBvd25zIHRoZSB0ZXJtaW5hbC4KKworVGhlIHRyb3VibGUg aXMgdGhhdCBzZXZlcmFsIHBsYWNlcy90YXJnZXQgaGF2ZSB0aGVpciBvd24gZ2xvYmFscyB0bwor dHJhY2sgdGhpcyBzdGF0ZToKKworIC0gaW5mbG93LmM6dGVybWluYWxfaXNfb3VycworIC0gcmVt b3RlLmM6cmVtb3RlX2FzeW5jX3Rlcm1pbmFsX291cnNfcAorIC0gbGludXgtbmF0LmM6YXN5bmNf dGVybWluYWxfaXNfb3VycworIC0gZ28zMi1uYXQuYzp0ZXJtaW5hbF9pc19vdXJzCisKK1doaWxl IG9uZSBtaWdodCB0aGluayBvZiBhZGRpbmcgYSBuZXcgdGFyZ2V0X29wcyBtZXRob2QgdG8gcXVl cnkgdGhpcywKK2NvbmNlcHR1YWxseSwgdGhpcyBzdGF0ZSBpc24ndCByZWFsbHkgcGFydCBvZiBh IHBhcnRpY3VsYXIgdGFyZ2V0X29wcy4KK0NvbnNpZGVyaW5nIG11bHRpLXRhcmdldCwgdGhlIGNv cmUgc2hvdWxkbid0IGhhdmUgdG8gYXNrIGFsbCB0YXJnZXRzCit0byBrbm93IHdoZXRoZXIgaXQn cyBHREIgdGhhdCBvd25zIHRoZSB0ZXJtaW5hbC4gIFRoZXJlJ3Mgb25seSBvbmUgR0RCCisob3Ig cmF0aGVyLCBvbmx5IG9uZSB0b3AgbGV2ZWwgaW50ZXJwcmV0ZXIpLgorCitTbyB3aGF0IHRoaXMg Y29tbWVudCBkb2VzIGlzIGFkZCBhIG5ldyBnbG9iYWwgdGhhdCBpcyB0cmFja2VkIGJ5IHRoZQor Y29yZSBpbnN0ZWFkLiAgQSBzdWJzZXF1ZW50IHBhc3MgbWF5IGxhdGVyIHJlbW92ZSB0aGUgb3Ro ZXIgZ2xvYmFscy4KKworVGVzdGVkIG9uIHg4Nl82NCBGZWRvcmEgMjAsIG5hdGl2ZSBhbmQgZ2Ri c2VydmVyLgorCitnZGIvCisyMDE0LTEwLTE3ICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQu Y29tPgorCisJKiB0YXJnZXQuYyAoZW51bSB0ZXJtaW5hbF9zdGF0ZSk6IE5ldyBlbnVtLgorCSh0 ZXJtaW5hbF9zdGF0ZSk6IE5ldyBnbG9iYWwuCisJKHRhcmdldF90ZXJtaW5hbF9pbml0KTogTmV3 IGZ1bmN0aW9uLgorCSh0YXJnZXRfdGVybWluYWxfaW5mZXJpb3IpOiBTa2lwIGlmIGluZmVyaW9y IGFscmVhZHkgb3ducyB0aGUKKwl0ZXJtaW5hbC4KKwkodGFyZ2V0X3Rlcm1pbmFsX291cnMsIHRh cmdldF90ZXJtaW5hbF9vdXJzX2Zvcl9vdXRwdXQpOiBOZXcKKwlmdW5jdGlvbnMuCisJKiB0YXJn ZXQuaCAodGFyZ2V0X3Rlcm1pbmFsX2luaXQpOiBDb252ZXJ0IHRvIGZ1bmN0aW9uIHByb3RvdHlw ZS4KKwkodGFyZ2V0X3Rlcm1pbmFsX291cnNfZm9yX291dHB1dCk6IENvbnZlcnQgdG8gZnVuY3Rp b24gcHJvdG90eXBlCisJYW5kIHR3ZWFrIGNvbW1lbnQuCisJKHRhcmdldF90ZXJtaW5hbF9vdXJz KTogQ29udmVydCB0byBmdW5jdGlvbiBwcm90b3R5cGUgYW5kIHR3ZWFrCisJY29tbWVudC4KKwkq IHdpbmRvd3MtbmF0LmMgKGRvX2luaXRpYWxfd2luZG93c19zdHVmZik6IENhbGwKKwl0YXJnZXRf dGVybWluYWxfaW5pdCBpbnN0ZWFkIG9mIGNoaWxkX3Rlcm1pbmFsX2luaXRfd2l0aF9wZ3JwLgor LS0tCisgZ2RiL0NoYW5nZUxvZyAgICAgfCAxNyArKysrKysrKysrKysrKysrKworIGdkYi90YXJn ZXQuYyAgICAgIHwgNTYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKworIGdkYi90YXJnZXQuaCAgICAgIHwgMjAgKysrKysrKy0tLS0tLS0tLS0t LS0KKyBnZGIvd2luZG93cy1uYXQuYyB8ICAyICstCisgNCBmaWxlcyBjaGFuZ2VkLCA4MSBpbnNl cnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKKworIyMjIGEvZ2RiL0NoYW5nZUxvZworIyMjIGIv Z2RiL0NoYW5nZUxvZworIyMgLTEsMyArMSwyMCBAQAorKzIwMTQtMTAtMTcgIFBlZHJvIEFsdmVz ICA8cGFsdmVzQHJlZGhhdC5jb20+CisrCisrCSogdGFyZ2V0LmMgKGVudW0gdGVybWluYWxfc3Rh dGUpOiBOZXcgZW51bS4KKysJKHRlcm1pbmFsX3N0YXRlKTogTmV3IGdsb2JhbC4KKysJKHRhcmdl dF90ZXJtaW5hbF9pbml0KTogTmV3IGZ1bmN0aW9uLgorKwkodGFyZ2V0X3Rlcm1pbmFsX2luZmVy aW9yKTogU2tpcCBpZiBpbmZlcmlvciBhbHJlYWR5IG93bnMgdGhlCisrCXRlcm1pbmFsLgorKwko dGFyZ2V0X3Rlcm1pbmFsX291cnMsIHRhcmdldF90ZXJtaW5hbF9vdXJzX2Zvcl9vdXRwdXQpOiBO ZXcKKysJZnVuY3Rpb25zLgorKwkqIHRhcmdldC5oICh0YXJnZXRfdGVybWluYWxfaW5pdCk6IENv bnZlcnQgdG8gZnVuY3Rpb24gcHJvdG90eXBlLgorKwkodGFyZ2V0X3Rlcm1pbmFsX291cnNfZm9y X291dHB1dCk6IENvbnZlcnQgdG8gZnVuY3Rpb24gcHJvdG90eXBlCisrCWFuZCB0d2VhayBjb21t ZW50LgorKwkodGFyZ2V0X3Rlcm1pbmFsX291cnMpOiBDb252ZXJ0IHRvIGZ1bmN0aW9uIHByb3Rv dHlwZSBhbmQgdHdlYWsKKysJY29tbWVudC4KKysJKiB3aW5kb3dzLW5hdC5jIChkb19pbml0aWFs X3dpbmRvd3Nfc3R1ZmYpOiBDYWxsCisrCXRhcmdldF90ZXJtaW5hbF9pbml0IGluc3RlYWQgb2Yg Y2hpbGRfdGVybWluYWxfaW5pdF93aXRoX3BncnAuCisrCisgMjAxNC0xMC0xNSAgRG91ZyBFdmFu cyAgPGRqZUBnb29nbGUuY29tPgorIAkgICAgV2FsZnJlZCBUZWRlc2NoaSAgPHdhbGZyZWQudGVk ZXNjaGlAaW50ZWwuY29tPgorIAorLS0tIGEvZ2RiL3RhcmdldC5jCisrKysgYi9nZGIvdGFyZ2V0 LmMKK0BAIC00ODIsNiArNDgyLDM1IEBAIHRhcmdldF9sb2FkIChjaGFyICphcmcsIGludCBmcm9t X3R0eSkKKyAgICgqY3VycmVudF90YXJnZXQudG9fbG9hZCkgKCZjdXJyZW50X3RhcmdldCwgYXJn LCBmcm9tX3R0eSk7CisgfQorIAorKy8qIFBvc3NpYmxlIHRlcm1pbmFsIHN0YXRlcy4gICovCisr CisrZW51bSB0ZXJtaW5hbF9zdGF0ZQorKyAgeworKyAgICAvKiBUaGUgaW5mZXJpb3IncyB0ZXJt aW5hbCBzZXR0aW5ncyBhcmUgaW4gZWZmZWN0LiAgKi8KKysgICAgdGVybWluYWxfaXNfaW5mZXJp b3IgPSAwLAorKworKyAgICAvKiBTb21lIG9mIG91ciB0ZXJtaW5hbCBzZXR0aW5ncyBhcmUgaW4g ZWZmZWN0LCBlbm91Z2ggdG8gZ2V0CisrICAgICAgIHByb3BlciBvdXRwdXQuICAqLworKyAgICB0 ZXJtaW5hbF9pc19vdXJzX2Zvcl9vdXRwdXQgPSAxLAorKworKyAgICAvKiBPdXIgdGVybWluYWwg c2V0dGluZ3MgYXJlIGluIGVmZmVjdCwgZm9yIG91dHB1dCBhbmQgaW5wdXQuICAqLworKyAgICB0 ZXJtaW5hbF9pc19vdXJzID0gMgorKyAgfTsKKysKKytzdGF0aWMgZW51bSB0ZXJtaW5hbF9zdGF0 ZSB0ZXJtaW5hbF9zdGF0ZTsKKysKKysvKiBTZWUgdGFyZ2V0LmguICAqLworKworK3ZvaWQKKyt0 YXJnZXRfdGVybWluYWxfaW5pdCAodm9pZCkKKyt7CisrICAoKmN1cnJlbnRfdGFyZ2V0LnRvX3Rl cm1pbmFsX2luaXQpICgmY3VycmVudF90YXJnZXQpOworKworKyAgdGVybWluYWxfc3RhdGUgPSB0 ZXJtaW5hbF9pc19vdXJzOworK30KKysKKysvKiBTZWUgdGFyZ2V0LmguICAqLworKworIHZvaWQK KyB0YXJnZXRfdGVybWluYWxfaW5mZXJpb3IgKHZvaWQpCisgeworQEAgLTQ5Miw5ICs1MjEsMzYg QEAgdGFyZ2V0X3Rlcm1pbmFsX2luZmVyaW9yICh2b2lkKQorICAgaWYgKHRhcmdldF9jYW5fYXN5 bmNfcCAoKSAmJiAhc3luY19leGVjdXRpb24pCisgICAgIHJldHVybjsKKyAKKysgIGlmICh0ZXJt aW5hbF9zdGF0ZSA9PSB0ZXJtaW5hbF9pc19pbmZlcmlvcikKKysgICAgcmV0dXJuOworKworICAg LyogSWYgR0RCIGlzIHJlc3VtaW5nIHRoZSBpbmZlcmlvciBpbiB0aGUgZm9yZWdyb3VuZCwgaW5z dGFsbAorICAgICAgaW5mZXJpb3IncyB0ZXJtaW5hbCBtb2Rlcy4gICovCisgICAoKmN1cnJlbnRf dGFyZ2V0LnRvX3Rlcm1pbmFsX2luZmVyaW9yKSAoJmN1cnJlbnRfdGFyZ2V0KTsKKysgIHRlcm1p bmFsX3N0YXRlID0gdGVybWluYWxfaXNfaW5mZXJpb3I7CisrfQorKworKy8qIFNlZSB0YXJnZXQu aC4gICovCisrCisrdm9pZAorK3RhcmdldF90ZXJtaW5hbF9vdXJzICh2b2lkKQorK3sKKysgIGlm ICh0ZXJtaW5hbF9zdGF0ZSA9PSB0ZXJtaW5hbF9pc19vdXJzKQorKyAgICByZXR1cm47CisrCisr ICAoKmN1cnJlbnRfdGFyZ2V0LnRvX3Rlcm1pbmFsX291cnMpICgmY3VycmVudF90YXJnZXQpOwor KyAgdGVybWluYWxfc3RhdGUgPSB0ZXJtaW5hbF9pc19vdXJzOworK30KKysKKysvKiBTZWUgdGFy Z2V0LmguICAqLworKworK3ZvaWQKKyt0YXJnZXRfdGVybWluYWxfb3Vyc19mb3Jfb3V0cHV0ICh2 b2lkKQorK3sKKysgIGlmICh0ZXJtaW5hbF9zdGF0ZSAhPSB0ZXJtaW5hbF9pc19pbmZlcmlvcikK KysgICAgcmV0dXJuOworKyAgKCpjdXJyZW50X3RhcmdldC50b190ZXJtaW5hbF9vdXJzX2Zvcl9v dXRwdXQpICgmY3VycmVudF90YXJnZXQpOworKyAgdGVybWluYWxfc3RhdGUgPSB0ZXJtaW5hbF9p c19vdXJzX2Zvcl9vdXRwdXQ7CisgfQorIAorIHN0YXRpYyB2b2lkCistLS0gYS9nZGIvdGFyZ2V0 LmgKKysrKyBiL2dkYi90YXJnZXQuaAorQEAgLTEzNTksMzEgKzEzNTksMjUgQEAgZXh0ZXJuIGlu dCB0YXJnZXRfcmVtb3ZlX2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorIC8q IEluaXRpYWxpemUgdGhlIHRlcm1pbmFsIHNldHRpbmdzIHdlIHJlY29yZCBmb3IgdGhlIGluZmVy aW9yLAorICAgIGJlZm9yZSB3ZSBhY3R1YWxseSBydW4gdGhlIGluZmVyaW9yLiAgKi8KKyAKKy0j ZGVmaW5lIHRhcmdldF90ZXJtaW5hbF9pbml0KCkgXAorLSAgICAgKCpjdXJyZW50X3RhcmdldC50 b190ZXJtaW5hbF9pbml0KSAoJmN1cnJlbnRfdGFyZ2V0KQorK2V4dGVybiB2b2lkIHRhcmdldF90 ZXJtaW5hbF9pbml0ICh2b2lkKTsKKyAKKyAvKiBQdXQgdGhlIGluZmVyaW9yJ3MgdGVybWluYWwg c2V0dGluZ3MgaW50byBlZmZlY3QuCisgICAgVGhpcyBpcyBwcmVwYXJhdGlvbiBmb3Igc3RhcnRp bmcgb3IgcmVzdW1pbmcgdGhlIGluZmVyaW9yLiAgKi8KKyAKKyBleHRlcm4gdm9pZCB0YXJnZXRf dGVybWluYWxfaW5mZXJpb3IgKHZvaWQpOworIAorLS8qIFB1dCBzb21lIG9mIG91ciB0ZXJtaW5h bCBzZXR0aW5ncyBpbnRvIGVmZmVjdCwKKy0gICBlbm91Z2ggdG8gZ2V0IHByb3BlciByZXN1bHRz IGZyb20gb3VyIG91dHB1dCwKKy0gICBidXQgZG8gbm90IGNoYW5nZSBpbnRvIG9yIG91dCBvZiBS QVcgbW9kZQorLSAgIHNvIHRoYXQgbm8gaW5wdXQgaXMgZGlzY2FyZGVkLgorKy8qIFB1dCBzb21l IG9mIG91ciB0ZXJtaW5hbCBzZXR0aW5ncyBpbnRvIGVmZmVjdCwgZW5vdWdoIHRvIGdldCBwcm9w ZXIKKysgICByZXN1bHRzIGZyb20gb3VyIG91dHB1dCwgYnV0IGRvIG5vdCBjaGFuZ2UgaW50byBv ciBvdXQgb2YgUkFXIG1vZGUKKysgICBzbyB0aGF0IG5vIGlucHV0IGlzIGRpc2NhcmRlZC4gIFRo aXMgaXMgYSBuby1vcCBpZiB0ZXJtaW5hbF9vdXJzCisrICAgd2FzIG1vc3QgcmVjZW50bHkgY2Fs bGVkLiAgKi8KKyAKKy0gICBBZnRlciBkb2luZyB0aGlzLCBlaXRoZXIgdGVybWluYWxfb3VycyBv ciB0ZXJtaW5hbF9pbmZlcmlvcgorLSAgIHNob3VsZCBiZSBjYWxsZWQgdG8gZ2V0IGJhY2sgdG8g YSBub3JtYWwgc3RhdGUgb2YgYWZmYWlycy4gICovCistCistI2RlZmluZSB0YXJnZXRfdGVybWlu YWxfb3Vyc19mb3Jfb3V0cHV0KCkgXAorLSAgICAgKCpjdXJyZW50X3RhcmdldC50b190ZXJtaW5h bF9vdXJzX2Zvcl9vdXRwdXQpICgmY3VycmVudF90YXJnZXQpCisrZXh0ZXJuIHZvaWQgdGFyZ2V0 X3Rlcm1pbmFsX291cnNfZm9yX291dHB1dCAodm9pZCk7CisgCisgLyogUHV0IG91ciB0ZXJtaW5h bCBzZXR0aW5ncyBpbnRvIGVmZmVjdC4KKyAgICBGaXJzdCByZWNvcmQgdGhlIGluZmVyaW9yJ3Mg dGVybWluYWwgc2V0dGluZ3MKKyAgICBzbyB0aGV5IGNhbiBiZSByZXN0b3JlZCBwcm9wZXJseSBs YXRlci4gICovCisgCistI2RlZmluZSB0YXJnZXRfdGVybWluYWxfb3VycygpIFwKKy0gICAgICgq Y3VycmVudF90YXJnZXQudG9fdGVybWluYWxfb3VycykgKCZjdXJyZW50X3RhcmdldCkKKytleHRl cm4gdm9pZCB0YXJnZXRfdGVybWluYWxfb3VycyAodm9pZCk7CisgCisgLyogU2F2ZSBvdXIgdGVy bWluYWwgc2V0dGluZ3MuCisgICAgVGhpcyBpcyBjYWxsZWQgZnJvbSBUVUkgYWZ0ZXIgZW50ZXJp bmcgb3IgbGVhdmluZyB0aGUgY3Vyc2VzCistLS0gYS9nZGIvd2luZG93cy1uYXQuYworKysrIGIv Z2RiL3dpbmRvd3MtbmF0LmMKK0BAIC0xNzQ0LDcgKzE3NDQsNyBAQCBkb19pbml0aWFsX3dpbmRv d3Nfc3R1ZmYgKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMsIERXT1JEIHBpZCwgaW50IGF0dGFjaGlu ZykKKyAgICAgIGN1cnJlbnQgdGhyZWFkIHVudGlsIHdlIHJlcG9ydCBhbiBldmVudCBvdXQgb2Yg d2luZG93c193YWl0LiAgKi8KKyAgIGluZmVyaW9yX3B0aWQgPSBwaWRfdG9fcHRpZCAocGlkKTsK KyAKKy0gIGNoaWxkX3Rlcm1pbmFsX2luaXRfd2l0aF9wZ3JwIChwaWQpOworKyAgdGFyZ2V0X3Rl cm1pbmFsX2luaXQgKCk7CisgICB0YXJnZXRfdGVybWluYWxfaW5mZXJpb3IgKCk7CisgCisgICB3 aW5kb3dzX2luaXRpYWxpemF0aW9uX2RvbmUgPSAwOworLS0gCisxLjkuMworCitGcm9tIDA0ZjA1 MTU3MDJhNmU1NzExZDcxMjAzZmNjMGVhNDg4MTYxYmEwODYgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBQZWRybyBBbHZlcyA8cGFsdmVzQHJlZGhhdC5jb20+CitEYXRlOiBGcmksIDE3 IE9jdCAyMDE0IDEzOjMxOjI1ICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMzMvMzddIFBSIGdkYi8x NzQ3MjogV2l0aCBhbm5vdGF0aW9ucywgaW5wdXQgd2hpbGUgZXhlY3V0aW5nCisgaW4gdGhlIGZv cmVncm91bmQgY3Jhc2hlcyByZWFkbGluZS9HREIKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50 LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rp bmc6IDhiaXQKKworSmFuIGNhdWdodCBhbiBpbnRlcm1pdHRlbnQgR0RCIGNyYXNoIHdpdGggdGhl IGFubm90YTEuZXhwIHRlc3Q6CisKKyBTdGFydGluZyBwcm9ncmFtOiAuLi4vZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9hbm5vdGExIF5NCisgWy4uLl0KKyBGQUlMOiBnZGIuYmFzZS9hbm5vdGExLmV4 cDogcnVuIHVudGlsIG1haW4gYnJlYWtwb2ludCAodGltZW91dCkKKyBbLi4uXQorIHJlYWRsaW5l OiByZWFkbGluZV9jYWxsYmFja19yZWFkX2NoYXIoKSBjYWxsZWQgd2l0aCBubyBoYW5kbGVyIV5N CisgRVJST1I6IFByb2Nlc3Mgbm8gbG9uZ2VyIGV4aXN0cworCitBbGwgd2UgbmVlZCB0byBpcyB0 byBjb250aW51ZSB0aGUgaW5mZXJpb3IgaW4gdGhlIGZvcmVncm91bmQsIGFuZCB0eXBlCithIGNv bW1hbmQgd2hpbGUgdGhlIGluZmVyaW9yIGlzIHJ1bm5pbmcuICBFLmcuOgorCisgKGdkYikgc2V0 IGFubm90YXRlIDIKKworIOKWkuKWknByZS1wcm9tcHQKKyAoZ2RiKQorIOKWkuKWknByb21wdAor IGMKKworIOKWkuKWknBvc3QtcHJvbXB0CisgQ29udGludWluZy4KKworIOKWkuKWknN0YXJ0aW5n CisKKyDilpLilpJmcmFtZXMtaW52YWxpZAorCisgKmluZmVyaW9yIGlzIHJ1bm5pbmcgbm93Kgor CisgcCAxPHJldD4KKworIHJlYWRsaW5lOiByZWFkbGluZV9jYWxsYmFja19yZWFkX2NoYXIoKSBj YWxsZWQgd2l0aCBubyBoYW5kbGVyIQorIEFib3J0ZWQgKGNvcmUgZHVtcGVkKQorICQKKworCitX aGVuIHdlIHJ1biBhIGZvcmVncm91bmQgZXhlY3V0aW9uIGNvbW1hbmQgd2UgY2FsbAordGFyZ2V0 X3Rlcm1pbmFsX2luZmVyaW9yIHRvIHN0b3AgR0RCIGZyb20gcHJvY2Vzc2luZyBpbnB1dCwgYW5k IHRvIHB1dAordGhlIGluZmVyaW9yJ3MgdGVybWluYWwgc2V0dGluZ3MgaW4gZWZmZWN0LiAgVGhl biB3ZSB0ZWxsIHJlYWRsaW5lIHRvCitoaWRlIHRoZSBwcm9tcHQgd2l0aCBkaXNwbGF5X2dkYl9w cm9tcHQsIHdoaWNoIGNsZWFycyByZWFkbGluZSdzIGlucHV0CitjYWxsYmFjayB0b28uICBXaGVu IHRoZSB0YXJnZXQgc3RvcHMsIHdlIGNhbGwgdGFyZ2V0X3Rlcm1pbmFsX291cnMsCit3aGljaCBy ZS1pbnN0YWxscyBzdGRpbiBpbiB0aGUgZXZlbnQgbG9vcCwgYW5kIHRoZW4gd2UgcmVkaXNwbGF5 IHRoZQorcHJvbXB0LCByZWluc3RhbGxpbmcgdGhlIHJlYWRsaW5lIGNhbGxiYWNrcy4KKworSG93 ZXZlciwgd2hlbiBhbm5vdGF0aW9ucyBhcmUgaW4gZWZmZWN0LCB0aGUgImZyYW1lcy1pbnZhbGlk IgorYW5ub3RhdGlvbiBjb2RlIGNhbGxzIHRhcmdldF90ZXJtaW5hbF9vdXJzIGFmdGVyICdyZXN1 bWUnIGhhZCBhbHJlYWR5CitjYWxsZWQgdGFyZ2V0X3Rlcm1pbmFsX2luZmVyaW9yOgorCisgKHRv cC1nZGIpIGJ0CisgIzAgIDB4MDAwMDAwMDAwMDU2YjgyZiBpbiBhbm5vdGF0ZV9mcmFtZXNfaW52 YWxpZCAoKSBhdCBnZGIvYW5ub3RhdGUuYzoyMTkKKyAjMSAgMHgwMDAwMDAwMDAwNzJlNmNjIGlu IHJlaW5pdF9mcmFtZV9jYWNoZSAoKSBhdCBnZGIvZnJhbWUuYzoxNzA1CisgIzIgIDB4MDAwMDAw MDAwMDU5NGJiOSBpbiByZWdpc3RlcnNfY2hhbmdlZF9wdGlkIChwdGlkPS4uLikgYXQgZ2RiL3Jl Z2NhY2hlLmM6NjEyCisgIzMgIDB4MDAwMDAwMDAwMDY0Y2NhMSBpbiB0YXJnZXRfcmVzdW1lIChw dGlkPS4uLiwgc3RlcD0xLCBzaWduYWw9R0RCX1NJR05BTF8wKSBhdCBnZGIvdGFyZ2V0LmM6MjEz NgorICM0ICAweDAwMDAwMDAwMDA1ZjU3YWYgaW4gcmVzdW1lIChzdGVwPTEsIHNpZz1HREJfU0lH TkFMXzApIGF0IGdkYi9pbmZydW4uYzoyMjYzCisgIzUgIDB4MDAwMDAwMDAwMDVmNjA1MSBpbiBw cm9jZWVkIChhZGRyPTE4NDQ2NzQ0MDczNzA5NTUxNjE1LCBzaWdnbmFsPUdEQl9TSUdOQUxfREVG QVVMVCwgc3RlcD0xKSBhdCBnZGIvaW5mcnVuLmM6MjYxMworCitBbmQgdGhlbiBvbmNlIHdlIGhp ZGUgdGhlIHByb21wdCBhbmQgcmVtb3ZlIHJlYWRsaW5lJ3MgaW5wdXQgaGFuZGxlcgorY2FsbGJh Y2ssIHdlJ3JlIGluIGEgYmFkIHN0YXRlLiAgV2UgZW5kIHVwIHdpdGggdGhlIHRhcmdldCBydW5u aW5nCitzdXBwb3NlZGx5IGluIHRoZSBmb3JlZ3JvdW5kLCBidXQgd2l0aCBzdGRpbiBzdGlsbCBp bnN0YWxsZWQgb24gdGhlCitldmVudCBsb29wLiAgQW55IGlucHV0IHRoZW4gY2FsbHMgaW50byBy ZWFkbGluZSwgd2hpY2ggYWJvcnRzIGJlY2F1c2UKK25vIHJsX2xpbmVmdW5jIGNhbGxiYWNrIGhh bmRsZXIgaXMgaW5zdGFsbGVkOgorCisgUHJvZ3JhbSByZWNlaXZlZCBzaWduYWwgU0lHQUJSVCwg QWJvcnRlZC4KKyAweDAwMDAwMDNiMzZhMzU4NzcgaW4gX19HSV9yYWlzZSAoc2lnPXNpZ0BlbnRy eT02KSBhdCAuLi9ucHRsL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3JhaXNlLmM6NTYKKyA1NiAg ICAgICAgcmV0dXJuIElOTElORV9TWVNDQUxMICh0Z2tpbGwsIDMsIHBpZCwgc2VsZnRpZCwgc2ln KTsKKworICh0b3AtZ2RiKSBidAorICMwICAweDAwMDAwMDNiMzZhMzU4NzcgaW4gX19HSV9yYWlz ZSAoc2lnPXNpZ0BlbnRyeT02KSBhdCAuLi9ucHRsL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Jh aXNlLmM6NTYKKyAjMSAgMHgwMDAwMDAzYjM2YTM2ZjY4IGluIF9fR0lfYWJvcnQgKCkgYXQgYWJv cnQuYzo4OQorIER1cmluZyBzeW1ib2wgcmVhZGluZywgZGVidWcgaW5mbyBnaXZlcyBzb3VyY2Ug OSBpbmNsdWRlZCBmcm9tIGZpbGUgYXQgemVybyBsaW5lIDAuCisgRHVyaW5nIHN5bWJvbCByZWFk aW5nLCBkZWJ1ZyBpbmZvIGdpdmVzIGNvbW1hbmQtbGluZSBtYWNybyBkZWZpbml0aW9uIHdpdGgg bm9uLXplcm8gbGluZSAxOTogX1NURENfUFJFREVGX0ggMS4KKyAjMiAgMHgwMDAwMDAwMDAwNzg0 YTI1IGluIHJsX2NhbGxiYWNrX3JlYWRfY2hhciAoKSBhdCBzcmMvcmVhZGxpbmUvY2FsbGJhY2su YzoxMTYKKyAjMyAgMHgwMDAwMDAwMDAwNjE5MTExIGluIHJsX2NhbGxiYWNrX3JlYWRfY2hhcl93 cmFwcGVyIChjbGllbnRfZGF0YT0weDApIGF0IHNyYy9nZGIvZXZlbnQtdG9wLmM6MTY3CisgIzQg IDB4MDAwMDAwMDAwMDYxOTRlNyBpbiBzdGRpbl9ldmVudF9oYW5kbGVyIChlcnJvcj0wLCBjbGll bnRfZGF0YT0weDApIGF0IHNyYy9nZGIvZXZlbnQtdG9wLmM6MzczCisgIzUgIDB4MDAwMDAwMDAw MDYxODBkYSBpbiBoYW5kbGVfZmlsZV9ldmVudCAoZGF0YT0uLi4pIGF0IHNyYy9nZGIvZXZlbnQt bG9vcC5jOjc2MworICM2ICAweDAwMDAwMDAwMDA2MTc1YzEgaW4gcHJvY2Vzc19ldmVudCAoKSBh dCBzcmMvZ2RiL2V2ZW50LWxvb3AuYzozNDAKKyAjNyAgMHgwMDAwMDAwMDAwNjE3Njg4IGluIGdk Yl9kb19vbmVfZXZlbnQgKCkgYXQgc3JjL2dkYi9ldmVudC1sb29wLmM6NDA0CisgIzggIDB4MDAw MDAwMDAwMDYxNzZkOCBpbiBzdGFydF9ldmVudF9sb29wICgpIGF0IHNyYy9nZGIvZXZlbnQtbG9v cC5jOjQyOQorICM5ICAweDAwMDAwMDAwMDA2MTkxNDMgaW4gY2xpX2NvbW1hbmRfbG9vcCAoZGF0 YT0weDApIGF0IHNyYy9nZGIvZXZlbnQtdG9wLmM6MTgyCisgIzEwIDB4MDAwMDAwMDAwMDYwZjRj OCBpbiBjdXJyZW50X2ludGVycF9jb21tYW5kX2xvb3AgKCkgYXQgc3JjL2dkYi9pbnRlcnBzLmM6 MzE4CisgIzExIDB4MDAwMDAwMDAwMDYxMDY5MSBpbiBjYXB0dXJlZF9jb21tYW5kX2xvb3AgKGRh dGE9MHgwKSBhdCBzcmMvZ2RiL21haW4uYzozMjMKKyAjMTIgMHgwMDAwMDAwMDAwNjBjMzg1IGlu IGNhdGNoX2Vycm9ycyAoZnVuYz0weDYxMDY3NiA8Y2FwdHVyZWRfY29tbWFuZF9sb29wPiwgZnVu Y19hcmdzPTB4MCwgZXJyc3RyaW5nPTB4OTAwMjQxICIiLCBtYXNrPVJFVFVSTl9NQVNLX0FMTCkK KyAgICAgYXQgc3JjL2dkYi9leGNlcHRpb25zLmM6MjM3CisgIzEzIDB4MDAwMDAwMDAwMDYxMWI4 ZiBpbiBjYXB0dXJlZF9tYWluIChkYXRhPTB4N2ZmZmZmZmZkN2IwKSBhdCBzcmMvZ2RiL21haW4u YzoxMTUxCisgIzE0IDB4MDAwMDAwMDAwMDYwYzM4NSBpbiBjYXRjaF9lcnJvcnMgKGZ1bmM9MHg2 MTBhOGUgPGNhcHR1cmVkX21haW4+LCBmdW5jX2FyZ3M9MHg3ZmZmZmZmZmQ3YjAsIGVycnN0cmlu Zz0weDkwMDI0MSAiIiwgbWFzaz1SRVRVUk5fTUFTS19BTEwpCisgICAgIGF0IHNyYy9nZGIvZXhj ZXB0aW9ucy5jOjIzNworICMxNSAweDAwMDAwMDAwMDA2MTFiYjggaW4gZ2RiX21haW4gKGFyZ3M9 MHg3ZmZmZmZmZmQ3YjApIGF0IHNyYy9nZGIvbWFpbi5jOjExNTkKKyAjMTYgMHgwMDAwMDAwMDAw NDVlZjU3IGluIG1haW4gKGFyZ2M9MywgYXJndj0weDdmZmZmZmZmZDhiOCkgYXQgc3JjL2dkYi9n ZGIuYzozMgorCitUaGUgZml4IGlzIHRvIG1ha2UgdGhlIGFubm90YXRpb24gY29kZSBjYWxsIHRh cmdldF90ZXJtaW5hbF9pbmZlcmlvcgorYWdhaW4gYWZ0ZXIgcHJpbnRpbmcsIGlmIHRoZSBpbmZl cmlvcidzIHNldHRpbmdzIHdlcmUgaW4gZWZmZWN0LgorCitXaGlsZSBhdCBpdCwgd2hlbiB3ZSdy ZSBkb2luZyBvdXRwdXQgb25seSwgaW5zdGVhZCBvZgordGFyZ2V0X3Rlcm1pbmFsX291cnMsIHdl IHNob3VsZCBjYWxsIHRhcmdldF90ZXJtaW5hbF9vdXJzX2Zvcl9vdXRwdXQuCitUaGUgbGF0dGVy IGRvZXNuJ3QgYWN0dWFsbHkgcmVtb3ZlIHN0ZGluIGZyb20gdGhlIGV2ZW50IGxvb3AsIGFuZCBh bHNvCitsZWF2ZXMgU0lHSU5UIGZvcndhcmRlZCB0byB0aGUgdGFyZ2V0LgorCitOZXcgdGVzdCBp bmNsdWRlZC4KKworVGVzdGVkIG9uIHg4Nl82NCBGZWRvcmEgMjAsIG5hdGl2ZSBhbmQgZ2Ric2Vy dmVyLgorCitnZGIvCisyMDE0LTEwLTE3ICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29t PgorCisJUFIgZ2RiLzE3NDcyCisJKiBhbm5vdGF0ZS5jIChhbm5vdGF0ZV9icmVha3BvaW50c19p bnZhbGlkKTogVXNlCisJdGFyZ2V0X3Rlcm1pbmFsX291cl9mb3Jfb3V0cHV0IGluc3RlYWQgb2Yg dGFyZ2V0X3Rlcm1pbmFsX291cnMuCisJR2l2ZSBiYWNrIHRoZSB0ZXJtaW5hbCB0byB0aGUgdGFy Z2V0LgorCShhbm5vdGF0ZV9mcmFtZXNfaW52YWxpZCk6IExpa2V3aXNlLgorCitnZGIvdGVzdHN1 aXRlLworMjAxNC0xMC0xNyAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KKworCVBS IGdkYi8xNzQ3MgorCSogZ2RiLmJhc2UvYW5ub3RhLWlucHV0LXdoaWxlLXJ1bm5pbmcuYzogTmV3 IGZpbGUuCisJKiBnZGIuYmFzZS9hbm5vdGEtaW5wdXQtd2hpbGUtcnVubmluZy5leHA6IE5ldyBm aWxlLgorLS0tCisgZ2RiL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDggKysKKyBnZGIvYW5ub3RhdGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAyMiArKystCisgZ2RiL3RhcmdldC5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDggKysKKyBnZGIvdGFyZ2V0LmggICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArCisgZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKworIC4uLi9nZGIuYmFzZS9hbm5vdGEt aW5wdXQtd2hpbGUtcnVubmluZy5jICAgICAgICAgIHwgIDI1ICsrKysKKyAuLi4vZ2RiLmJhc2Uv YW5ub3RhLWlucHV0LXdoaWxlLXJ1bm5pbmcuZXhwICAgICAgICB8IDEzMCArKysrKysrKysrKysr KysrKysrKysKKyA3IGZpbGVzIGNoYW5nZWQsIDIwMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Fubm90YS1p bnB1dC13aGlsZS1ydW5uaW5nLmMKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9hbm5vdGEtaW5wdXQtd2hpbGUtcnVubmluZy5leHAKKworIyMjIGEvZ2RiL0NoYW5n ZUxvZworIyMjIGIvZ2RiL0NoYW5nZUxvZworIyMgLTEsNSArMSwxMyBAQAorIDIwMTQtMTAtMTcg IFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+CisgCisrCVBSIGdkYi8xNzQ3MgorKwkq IGFubm90YXRlLmMgKGFubm90YXRlX2JyZWFrcG9pbnRzX2ludmFsaWQpOiBVc2UKKysJdGFyZ2V0 X3Rlcm1pbmFsX291cl9mb3Jfb3V0cHV0IGluc3RlYWQgb2YgdGFyZ2V0X3Rlcm1pbmFsX291cnMu CisrCUdpdmUgYmFjayB0aGUgdGVybWluYWwgdG8gdGhlIHRhcmdldC4KKysJKGFubm90YXRlX2Zy YW1lc19pbnZhbGlkKTogTGlrZXdpc2UuCisrCisrMjAxNC0xMC0xNyAgUGVkcm8gQWx2ZXMgIDxw YWx2ZXNAcmVkaGF0LmNvbT4KKysKKyAJKiB0YXJnZXQuYyAoZW51bSB0ZXJtaW5hbF9zdGF0ZSk6 IE5ldyBlbnVtLgorIAkodGVybWluYWxfc3RhdGUpOiBOZXcgZ2xvYmFsLgorIAkodGFyZ2V0X3Rl cm1pbmFsX2luaXQpOiBOZXcgZnVuY3Rpb24uCistLS0gYS9nZGIvYW5ub3RhdGUuYworKysrIGIv Z2RiL2Fubm90YXRlLmMKK0BAIC03Miw4ICs3MiwxNyBAQCBhbm5vdGF0ZV9icmVha3BvaW50c19p bnZhbGlkICh2b2lkKQorICAgICAgICYmICghYnJlYWtwb2ludHNfaW52YWxpZF9lbWl0dGVkCisg CSAgfHwgYXN5bmNfYmFja2dyb3VuZF9leGVjdXRpb25fcCAoKSkpCisgICAgIHsKKy0gICAgICB0 YXJnZXRfdGVybWluYWxfb3VycyAoKTsKKysgICAgICAvKiBJZiB0aGUgaW5mZXJpb3Igb3ducyB0 aGUgdGVybWluYWwgKGUuZy4sIHdlJ3JlIHJlc3VtaW5nKSwKKysJIG1ha2Ugc3VyZSB0byBsZWF2 ZSB3aXRoIHRoZSBpbmZlcmlvciBzdGlsbCBvd25pbmcgaXQuICAqLworKyAgICAgIGludCB3YXNf aW5mZXJpb3IgPSB0YXJnZXRfdGVybWluYWxfaXNfaW5mZXJpb3IgKCk7CisrCisrICAgICAgdGFy Z2V0X3Rlcm1pbmFsX291cnNfZm9yX291dHB1dCAoKTsKKysKKyAgICAgICBwcmludGZfdW5maWx0 ZXJlZCAoKCJcblwwMzJcMDMyYnJlYWtwb2ludHMtaW52YWxpZFxuIikpOworKworKyAgICAgIGlm ICh3YXNfaW5mZXJpb3IpCisrCXRhcmdldF90ZXJtaW5hbF9pbmZlcmlvciAoKTsKKysKKyAgICAg ICBicmVha3BvaW50c19pbnZhbGlkX2VtaXR0ZWQgPSAxOworICAgICB9CisgfQorQEAgLTIxMCw4 ICsyMTksMTcgQEAgYW5ub3RhdGVfZnJhbWVzX2ludmFsaWQgKHZvaWQpCisgICAgICAgJiYgKCFm cmFtZXNfaW52YWxpZF9lbWl0dGVkCisgCSAgfHwgYXN5bmNfYmFja2dyb3VuZF9leGVjdXRpb25f cCAoKSkpCisgICAgIHsKKy0gICAgICB0YXJnZXRfdGVybWluYWxfb3VycyAoKTsKKysgICAgICAv KiBJZiB0aGUgaW5mZXJpb3Igb3ducyB0aGUgdGVybWluYWwgKGUuZy4sIHdlJ3JlIHJlc3VtaW5n KSwKKysJIG1ha2Ugc3VyZSB0byBsZWF2ZSB3aXRoIHRoZSBpbmZlcmlvciBzdGlsbCBvd25pbmcg aXQuICAqLworKyAgICAgIGludCB3YXNfaW5mZXJpb3IgPSB0YXJnZXRfdGVybWluYWxfaXNfaW5m ZXJpb3IgKCk7CisrCisrICAgICAgdGFyZ2V0X3Rlcm1pbmFsX291cnNfZm9yX291dHB1dCAoKTsK KysKKyAgICAgICBwcmludGZfdW5maWx0ZXJlZCAoKCJcblwwMzJcMDMyZnJhbWVzLWludmFsaWRc biIpKTsKKysKKysgICAgICBpZiAod2FzX2luZmVyaW9yKQorKwl0YXJnZXRfdGVybWluYWxfaW5m ZXJpb3IgKCk7CisrCisgICAgICAgZnJhbWVzX2ludmFsaWRfZW1pdHRlZCA9IDE7CisgICAgIH0K KyB9CistLS0gYS9nZGIvdGFyZ2V0LmMKKysrKyBiL2dkYi90YXJnZXQuYworQEAgLTUxMSw2ICs1 MTEsMTQgQEAgdGFyZ2V0X3Rlcm1pbmFsX2luaXQgKHZvaWQpCisgCisgLyogU2VlIHRhcmdldC5o LiAgKi8KKyAKKytpbnQKKyt0YXJnZXRfdGVybWluYWxfaXNfaW5mZXJpb3IgKHZvaWQpCisrewor KyAgcmV0dXJuICh0ZXJtaW5hbF9zdGF0ZSA9PSB0ZXJtaW5hbF9pc19pbmZlcmlvcik7CisrfQor KworKy8qIFNlZSB0YXJnZXQuaC4gICovCisrCisgdm9pZAorIHRhcmdldF90ZXJtaW5hbF9pbmZl cmlvciAodm9pZCkKKyB7CistLS0gYS9nZGIvdGFyZ2V0LmgKKysrKyBiL2dkYi90YXJnZXQuaAor QEAgLTEzNTYsNiArMTM1NiwxMSBAQCBleHRlcm4gaW50IHRhcmdldF9pbnNlcnRfYnJlYWtwb2lu dCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCisgZXh0ZXJuIGludCB0YXJnZXRfcmVtb3ZlX2Jy ZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorIAkJCQkgICAgIHN0cnVjdCBicF90 YXJnZXRfaW5mbyAqYnBfdGd0KTsKKyAKKysvKiBSZXR1cm5zIHRydWUgaWYgdGhlIHRlcm1pbmFs IHNldHRpbmdzIG9mIHRoZSBpbmZlcmlvciBhcmUgaW4KKysgICBlZmZlY3QuICAqLworKworK2V4 dGVybiBpbnQgdGFyZ2V0X3Rlcm1pbmFsX2lzX2luZmVyaW9yICh2b2lkKTsKKysKKyAvKiBJbml0 aWFsaXplIHRoZSB0ZXJtaW5hbCBzZXR0aW5ncyB3ZSByZWNvcmQgZm9yIHRoZSBpbmZlcmlvciwK KyAgICBiZWZvcmUgd2UgYWN0dWFsbHkgcnVuIHRoZSBpbmZlcmlvci4gICovCisgCisjIyMgYS9n ZGIvdGVzdHN1aXRlL0NoYW5nZUxvZworIyMjIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKyMj IC0xLDMgKzEsOSBAQAorKzIwMTQtMTAtMTcgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5j b20+CisrCisrCVBSIGdkYi8xNzQ3MgorKwkqIGdkYi5iYXNlL2Fubm90YS1pbnB1dC13aGlsZS1y dW5uaW5nLmM6IE5ldyBmaWxlLgorKwkqIGdkYi5iYXNlL2Fubm90YS1pbnB1dC13aGlsZS1ydW5u aW5nLmV4cDogTmV3IGZpbGUuCisrCisgMjAxNC0wOS0xMSAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNA cmVkaGF0LmNvbT4KKyAKKyAJUFIgZ2RiLzE3MzQ3CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2Fubm90YS1pbnB1dC13aGlsZS1ydW5uaW5nLmMKK0BAIC0wLDAg KzEsMjUgQEAKKysvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVn Z2VyLgorKworKyAgIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysgICB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyAg IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCisrICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjaW5j bHVkZSA8dW5pc3RkLmg+CisrCisraW50CisrbWFpbiAodm9pZCkKKyt7CisrICBzbGVlcCAoNSk7 CisrICByZXR1cm4gMDsgLyogc2V0IGJyZWFrIGhlcmUgKi8KKyt9CistLS0gL2Rldi9udWxsCisr KysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Fubm90YS1pbnB1dC13aGlsZS1ydW5uaW5nLmV4 cAorQEAgLTAsMCArMSwxMzAgQEAKKysjIENvcHlyaWdodCAxOTk5LTIwMTQgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysj IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExp Y2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysj IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKwor KyMgVGVzdCB0aGF0IGFubm90YXRpb25zIHN1cHBvcnQgZG9lc24ndCBsZWF2ZSBHREIncyB0ZXJt aW5hbCBzZXR0aW5ncworKyMgaW50byBlZmZlY3Qgd2hlbiB3ZSBydW4gYSBmb3JlZ3JvdW5kIGNv bW1hbmQuCisrCisraWYgW2lzX3JlbW90ZSB0YXJnZXRdIHRoZW4geworKyAgICAjIFdlIGNhbm5v dCB1c2UgcnVudG9fbWFpbiBiZWNhdXNlIG9mIHRoZSBkaWZmZXJlbnQgcHJvbXB0IHdlIGdldAor KyAgICAjIHdoZW4gdXNpbmcgYW5ub3RhdGlvbiBsZXZlbCAyLgorKyAgICByZXR1cm4gMAorK30K KysKKytzdGFuZGFyZF90ZXN0ZmlsZQorKworK2lmIHtbcHJlcGFyZV9mb3JfdGVzdGluZyAiZmFp bGVkIHRvIHByZXBhcmUiICR0ZXN0ZmlsZSAkc3JjZmlsZSBkZWJ1Z10gPT0gLTF9IHsKKysgICAg cmV0dXJuIC0xCisrfQorKworKyMgQnJlYWsgYXQgbWFpbgorKworK2dkYl90ZXN0ICJicmVhayBt YWluIiBcCisrICAgICJCcmVha3BvaW50LiphdC4qIGZpbGUgLiokc3JjZmlsZS4qXFwuIiBcCisr ICAgICJicmVha3BvaW50IG1haW4iCisrCisrIyBOT1RFOiB0aGlzIHByb21wdCBpcyBPSyBvbmx5 IHdoZW4gdGhlIGFubm90YXRpb24gbGV2ZWwgaXMgPiAxCisrIyBOT1RFOiBXaGVuIHRoaXMgcHJv bXB0IGlzIGluIHVzZSB0aGUgZ2RiX3Rlc3QgcHJvY2VkdXJlIGNhbm5vdCBiZQorKyMgdXNlZCBi ZWNhdXNlIGl0IGFzc3VtZXMgdGhhdCB0aGUgbGFzdCBjaGFyIGFmdGVyIHRoZSBnZGJfcHJvbXB0 IGlzIGEKKysjIHdoaXRlIHNwYWNlLiAgVGhpcyBpcyBub3QgdHJ1ZSB3aXRoIHRoaXMgYW5ub3Rh dGVkIHByb21wdC4gIFNvIHdlCisrIyBtdXN0IHVzZSB0aGUgZ2RiX2Fubm90YV90ZXN0IHJlcGxh Y2VtZW50IGJlbG93LCBvcgorKyMgZ2RiX3Rlc3RfbXVsdGlwbGUuCisrCisrc2V0IG9sZF9nZGJf cHJvbXB0ICRnZGJfcHJvbXB0Cisrc2V0IGdkYl9wcm9tcHQgIlxyXG5cMDMyXDAzMnByZS1wcm9t cHRcclxuJGdkYl9wcm9tcHQgXHJcblwwMzJcMDMycHJvbXB0XHJcbiIKKysKKysjIExpa2UgZ2Ri X3Rlc3QsIGJ1dCBjb3BlIHdpdGggdGhlIGFubm90YXRpb24gcHJvbXB0LgorK3Byb2MgZ2RiX2Fu bm90YV90ZXN0IHtjb21tYW5kIHBhdHRlcm4gbWVzc2FnZX0geworKyAgICBnbG9iYWwgZ2RiX3By b21wdAorKworKyAgICBnZGJfdGVzdF9tdWx0aXBsZSAkY29tbWFuZCAkbWVzc2FnZSB7CisrCS1y ZSAiJHBhdHRlcm4kZ2RiX3Byb21wdCQiIHsKKysJICAgIHBhc3MgIiRtZXNzYWdlIgorKwl9Cisr CS1yZSAiJGdkYl9wcm9tcHQkIiB7CisrCSAgICBmYWlsICIkbWVzc2FnZSIKKysJfQorKyAgICB9 CisrfQorKworKyMgU2V0IHRoZSBhbm5vdGF0aW9uIGxldmVsIHRvIDIuCisrCisrc2V0IHRlc3Qg ImFubm90YXRpb24gc2V0IGF0IGxldmVsIDIiCisrZ2RiX2Fubm90YV90ZXN0ICJzZXQgYW5ub3Rh dGUgMiIgIi4qIiAiYW5ub3RhdGlvbiBzZXQgYXQgbGV2ZWwgMiIKKysKKysjIFJ1biB0byBtYWlu LgorKworK2dkYl9hbm5vdGFfdGVzdCAicnVuIiBcCisrICAgICJcclxuXDAzMlwwMzJwb3N0LXBy b21wdC4qXHJcblxyXG5cMDMyXDAzMnN0b3BwZWQuKiIgXAorKyAgICAicnVuIHVudGlsIG1haW4g YnJlYWtwb2ludCIKKysKKytzZXQgdGVzdCAiZGVsZXRlIGJyZWFrcG9pbnRzIgorK2dkYl90ZXN0 X211bHRpcGxlICJkZWxldGUiICR0ZXN0IHsKKysgICAgLXJlICJEZWxldGUgYWxsIGJyZWFrcG9p bnRzLiAueSBvciBuLiIgeworKwlzZW5kX2dkYiAieVxuIgorKwlleHBfY29udGludWUKKysgICAg fQorKyAgICAtcmUgIiRnZGJfcHJvbXB0JCIgeworKwlwYXNzICR0ZXN0CisrICAgIH0KKyt9Cisr CisrIyBTZXQgdGhlIHRhcmdldCBydW5uaW5nLCBhbmQgdGhlbiB0eXBlIHNvbWV0aGluZy4gIEdE QiB1c2VkIHRvIGhhdmUgYQorKyMgYnVnIHdoZXJlIGl0J2QgYmUgYWNjZXB0aW5nIGlucHV0IGV2 ZW4gdGhvdWdoIHRoZSB0YXJnZXQgd2FzCisrIyBzdXBwb3NlZGx5IHJlc3VtZWQgaW4gdGhlIGZv cmVncm91bmQuICBUaGlzIHVsdGltYXRlbHkgcmVzdWx0ZWQgaW4KKysjIHJlYWRsaW5lIGFib3J0 aW5nLgorKworK3NldCBsaW5lbnVtIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJzZXQgYnJlYWsgaGVy ZSJdCisrCisrZ2RiX2Fubm90YV90ZXN0ICJicmVhayAkbGluZW51bSIgXAorKyAgICAiQnJlYWtw b2ludCAuKiRzcmNmaWxlLCBsaW5lIC4qIiBcCisrICAgICJicmVhayBhZnRlciBzbGVlcCIKKysK KysjIENvbnRpbnVlLCBhbmQgd2FpdCBhIGJpdCB0byBtYWtlIHN1cmUgdGhlIGluZmVyaW9yIHJl YWxseSBzdGFydHMKKysjIHJ1bm5pbmcuICBXYWl0IGxlc3MgdGhhbiBtdWNoIHRoZSBwcm9ncmFt IHNsZWVwcywgd2hpY2ggaXMgNQorKyMgc2Vjb25kcywgdGhvdWdoLgorK3NldCBzYXdfY29udGlu dWluZyAwCisrc2V0IHRlc3QgImNvbnRpbnVlIgorK2dkYl90ZXN0X211bHRpcGxlICR0ZXN0ICR0 ZXN0IHsKKysgICAgLXRpbWVvdXQgMgorKyAgICAtcmUgIkNvbnRpbnVpbmdcXC4iIHsKKysJc2V0 IHNhd19jb250aW51aW5nIDEKKysJZXhwX2NvbnRpbnVlCisrICAgIH0KKysgICAgdGltZW91dCB7 CisrCWdkYl9hc3NlcnQgJHNhd19jb250aW51aW5nICR0ZXN0CisrICAgIH0KKyt9CisrCisrIyBU eXBlIHNvbWV0aGluZy4KKytzZW5kX2dkYiAicHJpbnQgMVxuIgorKworKyMgUG9vciBidWdneSBH REIgd291bGQgY3Jhc2ggYmVmb3JlIHRoZSBicmVha3BvaW50IHdhcyBoaXQuCisrc2V0IHRlc3Qg ImJyZWFrcG9pbnQgaGl0IgorK2dkYl90ZXN0X211bHRpcGxlICIiICR0ZXN0IHsKKysgICAgLXJl ICJzdG9wcGVkXHJcbiRnZGJfcHJvbXB0IiB7CisrCXBhc3MgJHRlc3QKKysgICAgfQorK30KKysK KytzZXQgdGVzdCAicHJpbnQgY29tbWFuZCByZXN1bHQiCisrZ2RiX3Rlc3RfbXVsdGlwbGUgIiIg JHRlc3QgeworKyAgICAtcmUgIlxyXG4xXHJcblxyXG5cMDMyXDAzMnZhbHVlLWhpc3RvcnktZW5k XHJcbiRnZGJfcHJvbXB0IiB7CisrCXBhc3MgJHRlc3QKKysgICAgfQorK30KKysKKysjIFJlc3Rv cmUgdGhlIG9yaWdpbmFsIHByb21wdCBmb3IgdGhlIHJlc3Qgb2YgdGhlIHRlc3RzdWl0ZS4KKysK KytzZXQgZ2RiX3Byb21wdCAkb2xkX2dkYl9wcm9tcHQKKy0tIAorMS45LjMKKworRnJvbSBlMzc5 NTFkYzEwZGE2OTQwZWYzNTRmMDYyZmM0M2VlMDM2ODdjNTcxIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogUGVkcm8gQWx2ZXMgPHBhbHZlc0ByZWRoYXQuY29tPgorRGF0ZTogRnJpLCAx NyBPY3QgMjAxNCAxMzozMToyNSArMDEwMAorU3ViamVjdDogW1BBVENIIDM0LzM3XSBQUiBnZGIv MTczMDA6IElucHV0IGFmdGVyICJjIC1hIiBjcmFzaGVzIHJlYWRsaW5lL0dEQgorCitJZiBhbGwg dGhyZWFkcyBpbiB0aGUgdGFyZ2V0IHdlcmUgYWxyZWFkeSBydW5uaW5nIHdoZW4gdGhlIHVzZXIg ZG9lcworImMgLWEiLCBub3RoaW5nIHB1dHMgdGhlIGluZmVyaW9yJ3MgdGVybWluYWwgc2V0dGlu Z3MgaW4gZWZmZWN0IGFuZAorcmVtb3ZlcyBzdGRpbiBmcm9tIHRoZSBldmVudCBsb29wLCB3aGlj aCB3ZSBtdXN0IHdoZW4gcnVubmluZyBhCitmb3JlZ3JvdW5kIGNvbW1hbmQuICBUaGUgcmVzdWx0 IGlzIHRoYXQgdXNlciBpbnB1dCBhZnRlcndhcmRzIGNyYXNoZXMKK3JlYWRsaW5lL2dkYjoKKwor IChnZGIpIHN0YXJ0CisgVGVtcG9yYXJ5IGJyZWFrcG9pbnQgMSBhdCAweDQwMDVkNDogZmlsZSBj b250aW51ZS1hbGwtYWxyZWFkeS1ydW5uaW5nLmMsIGxpbmUgMjMuCisgU3RhcnRpbmcgcHJvZ3Jh bTogY29udGludWUtYWxsLWFscmVhZHktcnVubmluZworCisgVGVtcG9yYXJ5IGJyZWFrcG9pbnQg MSwgbWFpbiAoKSBhdCBjb250aW51ZS1hbGwtYWxyZWFkeS1ydW5uaW5nLmM6MjMKKyAyMyAgICAg ICAgc2xlZXAgKDEwKTsKKyAoZ2RiKSBjIC1hJgorIENvbnRpbnVpbmcuCisgKGdkYikgYyAtYQor IENvbnRpbnVpbmcuCisgcCAxCisgcmVhZGxpbmU6IHJlYWRsaW5lX2NhbGxiYWNrX3JlYWRfY2hh cigpIGNhbGxlZCB3aXRoIG5vIGhhbmRsZXIhCisgQWJvcnRlZCAoY29yZSBkdW1wZWQpCisgJAor CitCYWNrdHJhY2U6CisKKyBQcm9ncmFtIHJlY2VpdmVkIHNpZ25hbCBTSUdBQlJULCBBYm9ydGVk LgorIDB4MDAwMDAwM2IzNmEzNTg3NyBpbiBfX0dJX3JhaXNlIChzaWc9c2lnQGVudHJ5PTYpIGF0 IC4uL25wdGwvc3lzZGVwcy91bml4L3N5c3YvbGludXgvcmFpc2UuYzo1NgorIDU2ICAgICAgICBy ZXR1cm4gSU5MSU5FX1NZU0NBTEwgKHRna2lsbCwgMywgcGlkLCBzZWxmdGlkLCBzaWcpOworICh0 b3AtZ2RiKSBwIDEKKyAkMSA9IDEKKyAodG9wLWdkYikgYnQKKyAjMCAgMHgwMDAwMDAzYjM2YTM1 ODc3IGluIF9fR0lfcmFpc2UgKHNpZz1zaWdAZW50cnk9NikgYXQgLi4vbnB0bC9zeXNkZXBzL3Vu aXgvc3lzdi9saW51eC9yYWlzZS5jOjU2CisgIzEgIDB4MDAwMDAwM2IzNmEzNmY2OCBpbiBfX0dJ X2Fib3J0ICgpIGF0IGFib3J0LmM6ODkKKyAjMiAgMHgwMDAwMDAwMDAwNzg0YWE5IGluIHJsX2Nh bGxiYWNrX3JlYWRfY2hhciAoKSBhdCByZWFkbGluZS9jYWxsYmFjay5jOjExNgorICMzICAweDAw MDAwMDAwMDA2MTkxODEgaW4gcmxfY2FsbGJhY2tfcmVhZF9jaGFyX3dyYXBwZXIgKGNsaWVudF9k YXRhPTB4MCkgYXQgZ2RiL2V2ZW50LXRvcC5jOjE2NworICM0ICAweDAwMDAwMDAwMDA2MTk1NTcg aW4gc3RkaW5fZXZlbnRfaGFuZGxlciAoZXJyb3I9MCwgY2xpZW50X2RhdGE9MHgwKSBhdCBnZGIv ZXZlbnQtdG9wLmM6MzczCisgIzUgIDB4MDAwMDAwMDAwMDYxODE0YSBpbiBoYW5kbGVfZmlsZV9l dmVudCAoZGF0YT0uLi4pIGF0IGdkYi9ldmVudC1sb29wLmM6NzYzCisgIzYgIDB4MDAwMDAwMDAw MDYxNzYzMSBpbiBwcm9jZXNzX2V2ZW50ICgpIGF0IGdkYi9ldmVudC1sb29wLmM6MzQwCisgIzcg IDB4MDAwMDAwMDAwMDYxNzZmOCBpbiBnZGJfZG9fb25lX2V2ZW50ICgpIGF0IGdkYi9ldmVudC1s b29wLmM6NDA0CisgIzggIDB4MDAwMDAwMDAwMDYxNzc0OCBpbiBzdGFydF9ldmVudF9sb29wICgp IGF0IGdkYi9ldmVudC1sb29wLmM6NDI5CisgIzkgIDB4MDAwMDAwMDAwMDYxOTFiMyBpbiBjbGlf Y29tbWFuZF9sb29wIChkYXRhPTB4MCkgYXQgZ2RiL2V2ZW50LXRvcC5jOjE4MgorICMxMCAweDAw MDAwMDAwMDA2MGY1MzggaW4gY3VycmVudF9pbnRlcnBfY29tbWFuZF9sb29wICgpIGF0IGdkYi9p bnRlcnBzLmM6MzE4CisgIzExIDB4MDAwMDAwMDAwMDYxMDcwMSBpbiBjYXB0dXJlZF9jb21tYW5k X2xvb3AgKGRhdGE9MHgwKSBhdCBnZGIvbWFpbi5jOjMyMworICMxMiAweDAwMDAwMDAwMDA2MGMz ZjUgaW4gY2F0Y2hfZXJyb3JzIChmdW5jPTB4NjEwNmU2IDxjYXB0dXJlZF9jb21tYW5kX2xvb3A+ LCBmdW5jX2FyZ3M9MHgwLCBlcnJzdHJpbmc9MHg5MDAyYzEgIiIsIG1hc2s9UkVUVVJOX01BU0tf QUxMKQorICAgICBhdCBnZGIvZXhjZXB0aW9ucy5jOjIzNworICMxMyAweDAwMDAwMDAwMDA2MTFi ZmYgaW4gY2FwdHVyZWRfbWFpbiAoZGF0YT0weDdmZmZmZmZmZDc4MCkgYXQgZ2RiL21haW4uYzox MTUxCisgIzE0IDB4MDAwMDAwMDAwMDYwYzNmNSBpbiBjYXRjaF9lcnJvcnMgKGZ1bmM9MHg2MTBh ZmUgPGNhcHR1cmVkX21haW4+LCBmdW5jX2FyZ3M9MHg3ZmZmZmZmZmQ3ODAsIGVycnN0cmluZz0w eDkwMDJjMSAiIiwgbWFzaz1SRVRVUk5fTUFTS19BTEwpCisgICAgIGF0IGdkYi9leGNlcHRpb25z LmM6MjM3CisgIzE1IDB4MDAwMDAwMDAwMDYxMWMyOCBpbiBnZGJfbWFpbiAoYXJncz0weDdmZmZm ZmZmZDc4MCkgYXQgZ2RiL21haW4uYzoxMTU5CisgIzE2IDB4MDAwMDAwMDAwMDQ1ZWY5NyBpbiBt YWluIChhcmdjPTUsIGFyZ3Y9MHg3ZmZmZmZmZmQ4ODgpIGF0IGdkYi9nZGIuYzozMgorICh0b3At Z2RiKQorCitUZXN0ZWQgb24geDg2XzY0IEZlZG9yYSAyMCwgbmF0aXZlIGFuZCBnZGJzZXJ2ZXIu CisKK2dkYi8KKzIwMTQtMTAtMTcgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+CisK KwlQUiBnZGIvMTczMDAKKwkqIGluZmNtZC5jIChjb250aW51ZV8xKTogSWYgY29udGludWluZyBh bGwgdGhyZWFkcyBpbiB0aGUKKwlmb3JlZ3JvdW5kLCBtYWtlIHN1cmUgdGhlIGluZmVyaW9yJ3Mg dGVybWluYWwgc2V0dGluZ3MgYXJlIHB1dCBpbgorCWVmZmVjdC4KKworZ2RiL3Rlc3RzdWl0ZS8K KzIwMTQtMTAtMTcgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+CisKKwlQUiBnZGIv MTczMDAKKwkqIGdkYi5iYXNlL2NvbnRpbnVlLWFsbC1hbHJlYWR5LXJ1bm5pbmcuYzogTmV3IGZp bGUuCisJKiBnZGIuYmFzZS9jb250aW51ZS1hbGwtYWxyZWFkeS1ydW5uaW5nLmV4cDogTmV3IGZp bGUuCistLS0KKyBnZGIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICA3ICsrCisgZ2RiL2luZmNtZC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAxOCArKysrKworIGdkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDYgKysKKyAuLi4vZ2RiLmJhc2UvY29udGludWUtYWxsLWFscmVh ZHktcnVubmluZy5jICAgICAgICB8IDI1ICsrKysrKysKKyAuLi4vZ2RiLmJhc2UvY29udGludWUt YWxsLWFscmVhZHktcnVubmluZy5leHAgICAgICB8IDc5ICsrKysrKysrKysrKysrKysrKysrKysK KyA1IGZpbGVzIGNoYW5nZWQsIDEzNSBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0 IGdkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29udGludWUtYWxsLWFscmVhZHktcnVubmluZy5jCisg Y3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29udGludWUtYWxsLWFs cmVhZHktcnVubmluZy5leHAKKworIyMjIGEvZ2RiL0NoYW5nZUxvZworIyMjIGIvZ2RiL0NoYW5n ZUxvZworIyMgLTEsNSArMSwxMiBAQAorIDIwMTQtMTAtMTcgIFBlZHJvIEFsdmVzICA8cGFsdmVz QHJlZGhhdC5jb20+CisgCisrCVBSIGdkYi8xNzMwMAorKwkqIGluZmNtZC5jIChjb250aW51ZV8x KTogSWYgY29udGludWluZyBhbGwgdGhyZWFkcyBpbiB0aGUKKysJZm9yZWdyb3VuZCwgbWFrZSBz dXJlIHRoZSBpbmZlcmlvcidzIHRlcm1pbmFsIHNldHRpbmdzIGFyZSBwdXQgaW4KKysJZWZmZWN0 LgorKworKzIwMTQtMTAtMTcgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+CisrCisg CVBSIGdkYi8xNzQ3MgorIAkqIGFubm90YXRlLmMgKGFubm90YXRlX2JyZWFrcG9pbnRzX2ludmFs aWQpOiBVc2UKKyAJdGFyZ2V0X3Rlcm1pbmFsX291cl9mb3Jfb3V0cHV0IGluc3RlYWQgb2YgdGFy Z2V0X3Rlcm1pbmFsX291cnMuCistLS0gYS9nZGIvaW5mY21kLmMKKysrKyBiL2dkYi9pbmZjbWQu YworQEAgLTczOCw2ICs3MzgsMjQgQEAgY29udGludWVfMSAoaW50IGFsbF90aHJlYWRzKQorIAor ICAgICAgIGl0ZXJhdGVfb3Zlcl90aHJlYWRzIChwcm9jZWVkX3RocmVhZF9jYWxsYmFjaywgTlVM TCk7CisgCisrICAgICAgaWYgKHN5bmNfZXhlY3V0aW9uKQorKwl7CisrCSAgLyogSWYgYWxsIHRo cmVhZHMgaW4gdGhlIHRhcmdldCB3ZXJlIGFscmVhZHkgcnVubmluZywKKysJICAgICBwcm9jZWVk X3RocmVhZF9jYWxsYmFjayBlbmRzIHVwIG5ldmVyIGNhbGxpbmcgcHJvY2VlZCwKKysJICAgICBh bmQgc28gbm90aGluZyBjYWxscyB0aGlzIHRvIHB1dCB0aGUgaW5mZXJpb3IncyB0ZXJtaW5hbAor KwkgICAgIHNldHRpbmdzIGluIGVmZmVjdCBhbmQgcmVtb3ZlIHN0ZGluIGZyb20gdGhlIGV2ZW50 IGxvb3AsCisrCSAgICAgd2hpY2ggd2UgbXVzdCB3aGVuIHJ1bm5pbmcgYSBmb3JlZ3JvdW5kIGNv bW1hbmQuICBFLmcuOgorKworKwkgICAgICAoZ2RiKSBjIC1hJgorKwkgICAgICBDb250aW51aW5n LgorKwkgICAgICA8YWxsIHRocmVhZHMgYXJlIHJ1bm5pbmcgbm93PgorKwkgICAgICAoZ2RiKSBj IC1hCisrCSAgICAgIENvbnRpbnVpbmcuCisrCSAgICAgIDxubyB0aHJlYWQgd2FzIHJlc3VtZWQs IGJ1dCB0aGUgaW5mZXJpb3Igbm93IG93bnMgdGhlIHRlcm1pbmFsPgorKwkgICovCisrCSAgdGFy Z2V0X3Rlcm1pbmFsX2luZmVyaW9yICgpOworKwl9CisrCisgICAgICAgLyogUmVzdG9yZSBzZWxl Y3RlZCBwdGlkLiAgKi8KKyAgICAgICBkb19jbGVhbnVwcyAob2xkX2NoYWluKTsKKyAgICAgfQor IyMjIGEvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKyMjIyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdl TG9nCisjIyAtMSw1ICsxLDExIEBACisgMjAxNC0xMC0xNyAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNA cmVkaGF0LmNvbT4KKyAKKysJUFIgZ2RiLzE3MzAwCisrCSogZ2RiLmJhc2UvY29udGludWUtYWxs LWFscmVhZHktcnVubmluZy5jOiBOZXcgZmlsZS4KKysJKiBnZGIuYmFzZS9jb250aW51ZS1hbGwt YWxyZWFkeS1ydW5uaW5nLmV4cDogTmV3IGZpbGUuCisrCisrMjAxNC0xMC0xNyAgUGVkcm8gQWx2 ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KKysKKyAJUFIgZ2RiLzE3NDcyCisgCSogZ2RiLmJhc2Uv YW5ub3RhLWlucHV0LXdoaWxlLXJ1bm5pbmcuYzogTmV3IGZpbGUuCisgCSogZ2RiLmJhc2UvYW5u b3RhLWlucHV0LXdoaWxlLXJ1bm5pbmcuZXhwOiBOZXcgZmlsZS4KKy0tLSAvZGV2L251bGwKKysr KyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29udGludWUtYWxsLWFscmVhZHktcnVubmluZy5j CitAQCAtMCwwICsxLDI1IEBACisrLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhl IEdOVSBkZWJ1Z2dlci4KKysKKysgICBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5z ZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMg cHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICov CisrCisrI2luY2x1ZGUgPHVuaXN0ZC5oPgorKworK2ludAorK21haW4gKHZvaWQpCisreworKyAg c2xlZXAgKDEwKTsKKysgIHJldHVybiAwOyAvKiBzZXQgYnJlYWsgaGVyZSAqLworK30KKy0tLSAv ZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29udGludWUtYWxsLWFscmVh ZHktcnVubmluZy5leHAKK0BAIC0wLDAgKzEsNzkgQEAKKysjIENvcHlyaWdodCAoQykgMjAxNCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcg d2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uCisrCisrIyBUZXN0IHRoYXQgImMgLWEiIGRvZXNuJ3QgbGVhdmUgR0RCIHByb2Nlc3Np bmcgaW5wdXQsIGV2ZW4gaWYgYWxsCisrIyB0aHJlYWRzIHdlcmUgYWxyZWFkeSBydW5uaW5nLiAg UFIgZ2RiLzE3MzAwLgorKworK3N0YW5kYXJkX3Rlc3RmaWxlCisrCisraWYgeyBbcHJlcGFyZV9m b3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHNyY2ZpbGVdIH0geworKyAg ICByZXR1cm4gLTEKKyt9CisrCisrZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgbm9uLXN0b3Agb24i CisrCisraWYgIVtydW50b19tYWluXSB7CisrICAgIHJldHVybgorK30KKysKKytzZXQgbGluZW51 bSBbZ2RiX2dldF9saW5lX251bWJlciAic2V0IGJyZWFrIGhlcmUiXQorK2dkYl9icmVha3BvaW50 ICIkbGluZW51bSIKKysKKytnZGJfdGVzdCAiYyAtYSYiICJDb250aW51aW5nXFwuIgorKworK3Nl dCB0ZXN0ICJubyBzdG9wIgorK2dkYl90ZXN0X211bHRpcGxlICIiICR0ZXN0IHsKKysgICAgLXRp bWVvdXQgMQorKyAgICB0aW1lb3V0IHsKKysJcGFzcyAkdGVzdAorKyAgICB9CisrfQorKworKyMg UGFyYW5vaWEuICBDaGVjayB0aGF0IGlucHV0IHdvcmtzIGFmdGVyIGJnIGNvbW1hbmQuCisrZ2Ri X3Rlc3QgInByaW50IDEiICIgPSAxIgorKworKyMgQ29udGludWUgaW4gdGhlIGZvcmVncm91bmQs IGFuZCB3YWl0IG9uZSBzZWNvbmQgdG8gbWFrZSBzdXJlIHRoZQorKyMgaW5mZXJpb3IgcmVhbGx5 IHN0YXJ0cyBydW5uaW5nLiAgSWYgd2UgZ2V0IGEgcHJvbXB0IHRvIHNvb24gKGUuZy4sCisrIyB0 aGUgcHJvZ3JhbSBzdG9wcyksIHRoaXMgaXNzdWVzIGEgZmFpbC4KKytzZXQgc2F3X2NvbnRpbnVp bmcgMAorK3NldCB0ZXN0ICJjIC1hIgorK2dkYl90ZXN0X211bHRpcGxlICJjIC1hIiAkdGVzdCB7 CisrICAgIC10aW1lb3V0IDEKKysgICAgLXJlICJDb250aW51aW5nXFwuIiB7CisrCXNldCBzYXdf Y29udGludWluZyAxCisrCWV4cF9jb250aW51ZQorKyAgICB9CisrICAgIHRpbWVvdXQgeworKwln ZGJfYXNzZXJ0ICRzYXdfY29udGludWluZyAkdGVzdAorKyAgICB9CisrfQorKworKyMgVHlwZSBz b21ldGhpbmcgd2hpbGUgdGhlIGluZmVyaW9yIGlzIHJ1bm5pbmcgaW4gdGhlIGZvcmVncm91bmQu Cisrc2VuZF9nZGIgInByaW50IDJcbiIKKysKKysjIFBvb3IgYnVnZ3kgR0RCIHdvdWxkIGNyYXNo IGJlZm9yZSB0aGUgYnJlYWtwb2ludCB3YXMgaGl0LgorK3NldCB0ZXN0ICJicmVha3BvaW50IGhp dCIKKytnZGJfdGVzdF9tdWx0aXBsZSAiIiAkdGVzdCB7CisrICAgIC1yZSAic2V0IGJyZWFrIGhl cmUgLi5cclxuJGdkYl9wcm9tcHQgIiB7CisrCXBhc3MgJHRlc3QKKysgICAgfQorK30KKysKKytz ZXQgdGVzdCAicHJpbnQgY29tbWFuZCByZXN1bHQiCisrZ2RiX3Rlc3RfbXVsdGlwbGUgIiIgJHRl c3QgeworKyAgICAtcmUgIiA9IDJcclxuJGdkYl9wcm9tcHQgJCIgeworKwlwYXNzICR0ZXN0Cisr ICAgIH0KKyt9CistLSAKKzEuOS4zCisKK0Zyb20gMzZjNTdhM2NlZWIyMjYwOTEzZjdkMmQzNDll OTk0ZGQ4NDRjYmNhZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBlZHJvIEFsdmVz IDxwYWx2ZXNAcmVkaGF0LmNvbT4KK0RhdGU6IEZyaSwgMTcgT2N0IDIwMTQgMTM6MzE6MjYgKzAx MDAKK1N1YmplY3Q6IFtQQVRDSCAzNS8zN10gUFIgZ2RiLzE3NDcxOiBSZXBlYXRpbmcgYSBiYWNr Z3JvdW5kIGNvbW1hbmQgbWFrZXMgaXQKKyBmb3JlZ3JvdW5kCisKK1doZW4gd2UgcmVwZWF0IGEg Y29tbWFuZCwgYnkganVzdCBwcmVzc2luZyA8cmV0PiwgdGhlIGlucHV0IGZyb20gdGhlCitwcmV2 aW91cyBjb21tYW5kIGlzIHJldXNlZCBmb3IgdGhlIG5ldyBjb21tYW5kIGludm9jYXRpb24uCisK K1doZW4gYW4gZXhlY3V0aW9uIGNvbW1hbmQgc3RyaXBzIHRoZSAiJiIgb3V0IG9mIGl0cyBpbmNv bWluZyBhcmd1bWVudAorc3RyaW5nLCB0byBkZXRlY3QgYmFja2dyb3VuZCBleGVjdXRpb24sIHdl IHBva2UgYSAnXDAnIGRpcmVjdGx5IHRvIHRoZQoraW5jb21pbmcgYXJndW1lbnQgc3RyaW5nLgor CitDb21iaW5lIGJvdGgsIGFuZCBhIHJlcGVhdCBvZiBhIGJhY2tncm91bmQgY29tbWFuZCBsb3Nl cyB0aGUgIiYiLgorCitUaGlzIGlzIGFjdHVhbGx5IG9ubHkgdmlzaWJsZSBpZiBhcmdzIG90aGVy IHRoYW4gIiYiIGFyZSBzcGVjaWZpZWQKKyhlLmcuLCAiYyAxJiIgb3IgIm5leHQgMiYiIG9yICJj IC1hJiIpLCBhcyBpbiB0aGUgc3BlY2lhbCBjYXNlIG9mICImIgorYWxvbmUgKGUuZy4gImMmIikg ZG9lc24ndCBhY3R1YWxseSBjbG9iYmVyIHRoZSBpbmNvbWluZyBzdHJpbmcuCisKK0ZpeCB0aGlz IGJ5IG1ha2luZyBzdHJpcF9iZ19jaGFyIHJldHVybiBhIG5ldyBzdHJpbmcgaW5zdGVhZCBvZiBw b2tpbmcKK2EgaG9sZSBpbiB0aGUgaW5wdXQgc3RyaW5nLgorCitOZXcgdGVzdCBpbmNsdWRlZC4K KworVGVzdGVkIG9uIHg4Nl82NCBGZWRvcmEgMjAsIG5hdGl2ZSBhbmQgZ2Ric2VydmVyLgorCitn ZGIvCisyMDE0LTEwLTE3ICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgorCisJUFIg Z2RiLzE3NDcxCisJKiBpbmZjbWQuYyAoc3RyaXBfYmdfY2hhcik6IENoYW5nZSBwcm90b3R5cGUg YW5kIHJld3JpdGUuICBOb3cKKwlyZXR1cm5zIGEgY29weSBvZiB0aGUgaW5wdXQuCisJKHJ1bl9j b21tYW5kXzEsIGNvbnRpbnVlX2NvbW1hbmQsIHN0ZXBfMSwganVtcF9jb21tYW5kKQorCShzaWdu YWxfY29tbWFuZCwgdW50aWxfY29tbWFuZCwgYWR2YW5jZV9jb21tYW5kLCBmaW5pc2hfY29tbWFu ZCkKKwkoYXR0YWNoX2NvbW1hbmQpOiBBZGp1c3QgYW5kIGluc3RhbGwgYSBjbGVhbnVwIHRvIGZy ZWUgdGhlCisJc3RyaXBwZWQgYXJncy4KKworZ2RiL3Rlc3RzdWl0ZS8KKzIwMTQtMTAtMTcgIFBl ZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+CisKKwlQUiBnZGIvMTc0NzEKKwkqIGdkYi5i YXNlL2JnLWV4ZWN1dGlvbi1yZXBlYXQuYzogTmV3IGZpbGUuCisJKiBnZGIuYmFzZS9iZy1leGVj dXRpb24tcmVwZWF0LmV4cDogTmV3IGZpbGUuCistLS0KKyBnZGIvQ2hhbmdlTG9nICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEwICsrCisgZ2RiL2luZmNtZC5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE0MiArKysrKysrKysrKysrKysrLS0tLS0tLS0t CisgZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiAr KworIGdkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYmctZXhlY3V0aW9uLXJlcGVhdC5jICAgfCAgMzMg KysrKysrCisgZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9iZy1leGVjdXRpb24tcmVwZWF0LmV4cCB8 ICA4NiArKysrKysrKysrKysrKysKKyA1IGZpbGVzIGNoYW5nZWQsIDIyNCBpbnNlcnRpb25zKCsp LCA1MyBkZWxldGlvbnMoLSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9iZy1leGVjdXRpb24tcmVwZWF0LmMKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9iZy1leGVjdXRpb24tcmVwZWF0LmV4cAorCisjIyMgYS9nZGIvQ2hhbmdl TG9nCisjIyMgYi9nZGIvQ2hhbmdlTG9nCisjIyAtMSw1ICsxLDE1IEBACisgMjAxNC0xMC0xNyAg UGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KKyAKKysJUFIgZ2RiLzE3NDcxCisrCSog aW5mY21kLmMgKHN0cmlwX2JnX2NoYXIpOiBDaGFuZ2UgcHJvdG90eXBlIGFuZCByZXdyaXRlLiAg Tm93CisrCXJldHVybnMgYSBjb3B5IG9mIHRoZSBpbnB1dC4KKysJKHJ1bl9jb21tYW5kXzEsIGNv bnRpbnVlX2NvbW1hbmQsIHN0ZXBfMSwganVtcF9jb21tYW5kKQorKwkoc2lnbmFsX2NvbW1hbmQs IHVudGlsX2NvbW1hbmQsIGFkdmFuY2VfY29tbWFuZCwgZmluaXNoX2NvbW1hbmQpCisrCShhdHRh Y2hfY29tbWFuZCk6IEFkanVzdCBhbmQgaW5zdGFsbCBhIGNsZWFudXAgdG8gZnJlZSB0aGUKKysJ c3RyaXBwZWQgYXJncy4KKysKKysyMDE0LTEwLTE3ICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRo YXQuY29tPgorKworIAlQUiBnZGIvMTczMDAKKyAJKiBpbmZjbWQuYyAoY29udGludWVfMSk6IElm IGNvbnRpbnVpbmcgYWxsIHRocmVhZHMgaW4gdGhlCisgCWZvcmVncm91bmQsIG1ha2Ugc3VyZSB0 aGUgaW5mZXJpb3IncyB0ZXJtaW5hbCBzZXR0aW5ncyBhcmUgcHV0IGluCistLS0gYS9nZGIvaW5m Y21kLmMKKysrKyBiL2dkYi9pbmZjbWQuYworQEAgLTEwNyw4ICsxMDcsNiBAQCBzdGF0aWMgdm9p ZCBydW5fbm9fYXJnc19jb21tYW5kIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpOworIAorIHN0 YXRpYyB2b2lkIGdvX2NvbW1hbmQgKGNoYXIgKmxpbmVfbm8sIGludCBmcm9tX3R0eSk7CisgCist c3RhdGljIGludCBzdHJpcF9iZ19jaGFyIChjaGFyICoqKTsKKy0KKyB2b2lkIF9pbml0aWFsaXpl X2luZmNtZCAodm9pZCk7CisgCisgI2RlZmluZSBFUlJPUl9OT19JTkZFUklPUiBcCitAQCAtMzcz LDM1ICszNzEsNDAgQEAgY29uc3RydWN0X2luZmVyaW9yX2FyZ3VtZW50cyAoaW50IGFyZ2MsIGNo YXIgKiphcmd2KQorIH0KKyAMCisgCistLyogVGhpcyBmdW5jdGlvbiBkZXRlY3RzIHdoZXRoZXIg b3Igbm90IGEgJyYnIGNoYXJhY3RlciAoaW5kaWNhdGluZworLSAgIGJhY2tncm91bmQgZXhlY3V0 aW9uKSBoYXMgYmVlbiBhZGRlZCBhcyAqdGhlIGxhc3QqIG9mIHRoZSBhcmd1bWVudHMgQVJHUwor LSAgIG9mIGEgY29tbWFuZC4gIElmIGl0IGhhcywgaXQgcmVtb3ZlcyBpdCBhbmQgcmV0dXJucyAx LiAgT3RoZXJ3aXNlIGl0CistICAgZG9lcyBub3RoaW5nIGFuZCByZXR1cm5zIDAuICAqLworKy8q IFRoaXMgZnVuY3Rpb24gc3RyaXBzIHRoZSAnJicgY2hhcmFjdGVyIChpbmRpY2F0aW5nIGJhY2tn cm91bmQKKysgICBleGVjdXRpb24pIHRoYXQgaXMgYWRkZWQgYXMgKnRoZSBsYXN0KiBvZiB0aGUg YXJndW1lbnRzIEFSR1Mgb2YgYQorKyAgIGNvbW1hbmQuICBBIGNvcHkgb2YgdGhlIGluY29taW5n IEFSR1Mgd2l0aG91dCB0aGUgJyYnIGlzIHJldHVybmVkLAorKyAgIHVubGVzcyB0aGUgcmVzdWx0 aW5nIHN0cmluZyBhZnRlciBzdHJpcHBpbmcgaXMgZW1wdHksIGluIHdoaWNoIGNhc2UKKysgICBO VUxMIGlzIHJldHVybmVkLiAgKkJHX0NIQVJfUCBpcyBhbiBvdXRwdXQgYm9vbGVhbiB0aGF0IGlu ZGljYXRlcworKyAgIHdoZXRoZXIgdGhlICcmJyBjaGFyYWN0ZXIgd2FzIGZvdW5kLiAgKi8KKyAK Ky1zdGF0aWMgaW50Cistc3RyaXBfYmdfY2hhciAoY2hhciAqKmFyZ3MpCisrc3RhdGljIGNoYXIg KgorK3N0cmlwX2JnX2NoYXIgKGNvbnN0IGNoYXIgKmFyZ3MsIGludCAqYmdfY2hhcl9wKQorIHsK Ky0gIGNoYXIgKnAgPSBOVUxMOworKyAgY29uc3QgY2hhciAqcDsKKyAKKy0gIHAgPSBzdHJjaHIg KCphcmdzLCAnJicpOworKyAgaWYgKGFyZ3MgPT0gTlVMTCB8fCAqYXJncyA9PSAnXDAnKQorKyAg ICB7CisrICAgICAgKmJnX2NoYXJfcCA9IDA7CisrICAgICAgcmV0dXJuIE5VTEw7CisrICAgIH0K KyAKKy0gIGlmIChwKQorKyAgcCA9IGFyZ3MgKyBzdHJsZW4gKGFyZ3MpOworKyAgaWYgKHBbLTFd ID09ICcmJykKKyAgICAgeworLSAgICAgIGlmIChwID09ICgqYXJncyArIHN0cmxlbiAoKmFyZ3Mp IC0gMSkpCistCXsKKy0JICBpZiAoc3RybGVuICgqYXJncykgPiAxKQorLQkgICAgeworLQkgICAg ICBkbworLQkJcC0tOworLQkgICAgICB3aGlsZSAoKnAgPT0gJyAnIHx8ICpwID09ICdcdCcpOwor LQkgICAgICAqKHAgKyAxKSA9ICdcMCc7CistCSAgICB9CistCSAgZWxzZQorLQkgICAgKmFyZ3Mg PSAwOworLQkgIHJldHVybiAxOworLQl9CisrICAgICAgcC0tOworKyAgICAgIHdoaWxlIChwID4g YXJncyAmJiBpc3NwYWNlIChwWy0xXSkpCisrCXAtLTsKKysKKysgICAgICAqYmdfY2hhcl9wID0g MTsKKysgICAgICBpZiAocCAhPSBhcmdzKQorKwlyZXR1cm4gc2F2ZXN0cmluZyAoYXJncywgcCAt IGFyZ3MpOworKyAgICAgIGVsc2UKKysJcmV0dXJuIE5VTEw7CisgICAgIH0KKy0gIHJldHVybiAw OworKworKyAgKmJnX2NoYXJfcCA9IDA7CisrICByZXR1cm4geHN0cmR1cCAoYXJncyk7CisgfQor IAorIC8qIENvbW1vbiBhY3Rpb25zIHRvIHRha2UgYWZ0ZXIgY3JlYXRpbmcgYW55IHNvcnQgb2Yg aW5mZXJpb3IsIGJ5IGFueQorQEAgLTUzMCw3ICs1MzMsOCBAQCBydW5fY29tbWFuZF8xIChjaGFy ICphcmdzLCBpbnQgZnJvbV90dHksIGludCB0YnJlYWtfYXRfbWFpbikKKyAgIHB0aWRfdCBwdGlk OworICAgc3RydWN0IHVpX291dCAqdWlvdXQgPSBjdXJyZW50X3Vpb3V0OworICAgc3RydWN0IHRh cmdldF9vcHMgKnJ1bl90YXJnZXQ7CistICBpbnQgYXN5bmNfZXhlYyA9IDA7CisrICBpbnQgYXN5 bmNfZXhlYzsKKysgIHN0cnVjdCBjbGVhbnVwICphcmdzX2NoYWluOworIAorICAgZG9udF9yZXBl YXQgKCk7CisgCitAQCAtNTUzLDggKzU1Nyw4IEBAIHJ1bl9jb21tYW5kXzEgKGNoYXIgKmFyZ3Ms IGludCBmcm9tX3R0eSwgaW50IHRicmVha19hdF9tYWluKQorICAgcmVvcGVuX2V4ZWNfZmlsZSAo KTsKKyAgIHJlcmVhZF9zeW1ib2xzICgpOworIAorLSAgaWYgKGFyZ3MgIT0gTlVMTCkKKy0gICAg YXN5bmNfZXhlYyA9IHN0cmlwX2JnX2NoYXIgKCZhcmdzKTsKKysgIGFyZ3MgPSBzdHJpcF9iZ19j aGFyIChhcmdzLCAmYXN5bmNfZXhlYyk7CisrICBhcmdzX2NoYWluID0gbWFrZV9jbGVhbnVwICh4 ZnJlZSwgYXJncyk7CisgCisgICAvKiBEbyB2YWxpZGF0aW9uIGFuZCBwcmVwYXJhdGlvbiBiZWZv cmUgcG9zc2libHkgY2hhbmdpbmcgYW55dGhpbmcKKyAgICAgIGluIHRoZSBpbmZlcmlvci4gICov CitAQCAtNjAwLDYgKzYwNCw5IEBAIHJ1bl9jb21tYW5kXzEgKGNoYXIgKmFyZ3MsIGludCBmcm9t X3R0eSwgaW50IHRicmVha19hdF9tYWluKQorICAgICAgIHVpX291dF9mbHVzaCAodWlvdXQpOwor ICAgICB9CisgCisrICAvKiBEb25lIHdpdGggQVJHUy4gICovCisrICBkb19jbGVhbnVwcyAoYXJn c19jaGFpbik7CisrCisgICAvKiBXZSBjYWxsIGdldF9pbmZlcmlvcl9hcmdzKCkgYmVjYXVzZSB3 ZSBtaWdodCBuZWVkIHRvIGNvbXB1dGUKKyAgICAgIHRoZSB2YWx1ZSBub3cuICAqLworICAgcnVu X3RhcmdldC0+dG9fY3JlYXRlX2luZmVyaW9yIChydW5fdGFyZ2V0LCBleGVjX2ZpbGUsIGdldF9p bmZlcmlvcl9hcmdzICgpLAorQEAgLTc3MywxMyArNzgwLDE1IEBAIGNvbnRpbnVlXzEgKGludCBh bGxfdGhyZWFkcykKKyBzdGF0aWMgdm9pZAorIGNvbnRpbnVlX2NvbW1hbmQgKGNoYXIgKmFyZ3Ms IGludCBmcm9tX3R0eSkKKyB7CistICBpbnQgYXN5bmNfZXhlYyA9IDA7CisrICBpbnQgYXN5bmNf ZXhlYzsKKyAgIGludCBhbGxfdGhyZWFkcyA9IDA7CisrICBzdHJ1Y3QgY2xlYW51cCAqYXJnc19j aGFpbjsKKysKKyAgIEVSUk9SX05PX0lORkVSSU9SOworIAorICAgLyogRmluZCBvdXQgd2hldGhl ciB3ZSBtdXN0IHJ1biBpbiB0aGUgYmFja2dyb3VuZC4gICovCistICBpZiAoYXJncyAhPSBOVUxM KQorLSAgICBhc3luY19leGVjID0gc3RyaXBfYmdfY2hhciAoJmFyZ3MpOworKyAgYXJncyA9IHN0 cmlwX2JnX2NoYXIgKGFyZ3MsICZhc3luY19leGVjKTsKKysgIGFyZ3NfY2hhaW4gPSBtYWtlX2Ns ZWFudXAgKHhmcmVlLCBhcmdzKTsKKyAKKyAgIHByZXBhcmVfZXhlY3V0aW9uX2NvbW1hbmQgKCZj dXJyZW50X3RhcmdldCwgYXN5bmNfZXhlYyk7CisgCitAQCAtODQzLDYgKzg1Miw5IEBAIGNvbnRp bnVlX2NvbW1hbmQgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKKyAJfQorICAgICB9CisgCisr ICAvKiBEb25lIHdpdGggQVJHUy4gICovCisrICBkb19jbGVhbnVwcyAoYXJnc19jaGFpbik7Cisr CisgICBpZiAoZnJvbV90dHkpCisgICAgIHByaW50Zl9maWx0ZXJlZCAoXygiQ29udGludWluZy5c biIpKTsKKyAKK0BAIC05MDIsMjEgKzkxNCwyNSBAQCBzdGVwXzEgKGludCBza2lwX3N1YnJvdXRp bmVzLCBpbnQgc2luZ2xlX2luc3QsIGNoYXIgKmNvdW50X3N0cmluZykKKyB7CisgICBpbnQgY291 bnQgPSAxOworICAgc3RydWN0IGNsZWFudXAgKmNsZWFudXBzID0gbWFrZV9jbGVhbnVwIChudWxs X2NsZWFudXAsIE5VTEwpOworLSAgaW50IGFzeW5jX2V4ZWMgPSAwOworKyAgaW50IGFzeW5jX2V4 ZWM7CisgICBpbnQgdGhyZWFkID0gLTE7CisrICBzdHJ1Y3QgY2xlYW51cCAqYXJnc19jaGFpbjsK KyAKKyAgIEVSUk9SX05PX0lORkVSSU9SOworICAgZW5zdXJlX25vdF90ZmluZF9tb2RlICgpOwor ICAgZW5zdXJlX3ZhbGlkX3RocmVhZCAoKTsKKyAgIGVuc3VyZV9ub3RfcnVubmluZyAoKTsKKyAK Ky0gIGlmIChjb3VudF9zdHJpbmcpCistICAgIGFzeW5jX2V4ZWMgPSBzdHJpcF9iZ19jaGFyICgm Y291bnRfc3RyaW5nKTsKKysgIGNvdW50X3N0cmluZyA9IHN0cmlwX2JnX2NoYXIgKGNvdW50X3N0 cmluZywgJmFzeW5jX2V4ZWMpOworKyAgYXJnc19jaGFpbiA9IG1ha2VfY2xlYW51cCAoeGZyZWUs IGNvdW50X3N0cmluZyk7CisgCisgICBwcmVwYXJlX2V4ZWN1dGlvbl9jb21tYW5kICgmY3VycmVu dF90YXJnZXQsIGFzeW5jX2V4ZWMpOworIAorICAgY291bnQgPSBjb3VudF9zdHJpbmcgPyBwYXJz ZV9hbmRfZXZhbF9sb25nIChjb3VudF9zdHJpbmcpIDogMTsKKyAKKysgIC8qIERvbmUgd2l0aCBB UkdTLiAgKi8KKysgIGRvX2NsZWFudXBzIChhcmdzX2NoYWluKTsKKysKKyAgIGlmICghc2luZ2xl X2luc3QgfHwgc2tpcF9zdWJyb3V0aW5lcykJCS8qIExlYXZlIHNpIGNvbW1hbmQgYWxvbmUuICAq LworICAgICB7CisgICAgICAgc3RydWN0IHRocmVhZF9pbmZvICp0cCA9IGluZmVyaW9yX3RocmVh ZCAoKTsKK0BAIC0xMTM3LDcgKzExNTMsOCBAQCBqdW1wX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50 IGZyb21fdHR5KQorICAgc3RydWN0IHN5bXRhYl9hbmRfbGluZSBzYWw7CisgICBzdHJ1Y3Qgc3lt Ym9sICpmbjsKKyAgIHN0cnVjdCBzeW1ib2wgKnNmbjsKKy0gIGludCBhc3luY19leGVjID0gMDsK KysgIGludCBhc3luY19leGVjOworKyAgc3RydWN0IGNsZWFudXAgKmFyZ3NfY2hhaW47CisgCisg ICBFUlJPUl9OT19JTkZFUklPUjsKKyAgIGVuc3VyZV9ub3RfdGZpbmRfbW9kZSAoKTsKK0BAIC0x MTQ1LDggKzExNjIsOCBAQCBqdW1wX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQor ICAgZW5zdXJlX25vdF9ydW5uaW5nICgpOworIAorICAgLyogRmluZCBvdXQgd2hldGhlciB3ZSBt dXN0IHJ1biBpbiB0aGUgYmFja2dyb3VuZC4gICovCistICBpZiAoYXJnICE9IE5VTEwpCistICAg IGFzeW5jX2V4ZWMgPSBzdHJpcF9iZ19jaGFyICgmYXJnKTsKKysgIGFyZyA9IHN0cmlwX2JnX2No YXIgKGFyZywgJmFzeW5jX2V4ZWMpOworKyAgYXJnc19jaGFpbiA9IG1ha2VfY2xlYW51cCAoeGZy ZWUsIGFyZyk7CisgCisgICBwcmVwYXJlX2V4ZWN1dGlvbl9jb21tYW5kICgmY3VycmVudF90YXJn ZXQsIGFzeW5jX2V4ZWMpOworIAorQEAgLTExNjIsNiArMTE3OSw5IEBAIGp1bXBfY29tbWFuZCAo Y2hhciAqYXJnLCBpbnQgZnJvbV90dHkpCisgICBzYWwgPSBzYWxzLnNhbHNbMF07CisgICB4ZnJl ZSAoc2Fscy5zYWxzKTsKKyAKKysgIC8qIERvbmUgd2l0aCBBUkdTLiAgKi8KKysgIGRvX2NsZWFu dXBzIChhcmdzX2NoYWluKTsKKysKKyAgIGlmIChzYWwuc3ltdGFiID09IDAgJiYgc2FsLnBjID09 IDApCisgICAgIGVycm9yIChfKCJObyBzb3VyY2UgZmlsZSBoYXMgYmVlbiBzcGVjaWZpZWQuIikp OworIAorQEAgLTEyMzAsNyArMTI1MCw4IEBAIHN0YXRpYyB2b2lkCisgc2lnbmFsX2NvbW1hbmQg KGNoYXIgKnNpZ251bV9leHAsIGludCBmcm9tX3R0eSkKKyB7CisgICBlbnVtIGdkYl9zaWduYWwg b3Vyc2lnOworLSAgaW50IGFzeW5jX2V4ZWMgPSAwOworKyAgaW50IGFzeW5jX2V4ZWM7CisrICBz dHJ1Y3QgY2xlYW51cCAqYXJnc19jaGFpbjsKKyAKKyAgIGRvbnRfcmVwZWF0ICgpOwkJLyogVG9v IGRhbmdlcm91cy4gICovCisgICBFUlJPUl9OT19JTkZFUklPUjsKK0BAIC0xMjM5LDggKzEyNjAs OCBAQCBzaWduYWxfY29tbWFuZCAoY2hhciAqc2lnbnVtX2V4cCwgaW50IGZyb21fdHR5KQorICAg ZW5zdXJlX25vdF9ydW5uaW5nICgpOworIAorICAgLyogRmluZCBvdXQgd2hldGhlciB3ZSBtdXN0 IHJ1biBpbiB0aGUgYmFja2dyb3VuZC4gICovCistICBpZiAoc2lnbnVtX2V4cCAhPSBOVUxMKQor LSAgICBhc3luY19leGVjID0gc3RyaXBfYmdfY2hhciAoJnNpZ251bV9leHApOworKyAgc2lnbnVt X2V4cCA9IHN0cmlwX2JnX2NoYXIgKHNpZ251bV9leHAsICZhc3luY19leGVjKTsKKysgIGFyZ3Nf Y2hhaW4gPSBtYWtlX2NsZWFudXAgKHhmcmVlLCBzaWdudW1fZXhwKTsKKyAKKyAgIHByZXBhcmVf ZXhlY3V0aW9uX2NvbW1hbmQgKCZjdXJyZW50X3RhcmdldCwgYXN5bmNfZXhlYyk7CisgCitAQCAt MTM3Miw3ICsxMzkzLDggQEAgdW50aWxfbmV4dF9jb21tYW5kIChpbnQgZnJvbV90dHkpCisgc3Rh dGljIHZvaWQKKyB1bnRpbF9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKKyB7Cist ICBpbnQgYXN5bmNfZXhlYyA9IDA7CisrICBpbnQgYXN5bmNfZXhlYzsKKysgIHN0cnVjdCBjbGVh bnVwICphcmdzX2NoYWluOworIAorICAgRVJST1JfTk9fSU5GRVJJT1I7CisgICBlbnN1cmVfbm90 X3RmaW5kX21vZGUgKCk7CitAQCAtMTM4MCw4ICsxNDAyLDggQEAgdW50aWxfY29tbWFuZCAoY2hh ciAqYXJnLCBpbnQgZnJvbV90dHkpCisgICBlbnN1cmVfbm90X3J1bm5pbmcgKCk7CisgCisgICAv KiBGaW5kIG91dCB3aGV0aGVyIHdlIG11c3QgcnVuIGluIHRoZSBiYWNrZ3JvdW5kLiAgKi8KKy0g IGlmIChhcmcgIT0gTlVMTCkKKy0gICAgYXN5bmNfZXhlYyA9IHN0cmlwX2JnX2NoYXIgKCZhcmcp OworKyAgYXJnID0gc3RyaXBfYmdfY2hhciAoYXJnLCAmYXN5bmNfZXhlYyk7CisrICBhcmdzX2No YWluID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgYXJnKTsKKyAKKyAgIHByZXBhcmVfZXhlY3V0aW9u X2NvbW1hbmQgKCZjdXJyZW50X3RhcmdldCwgYXN5bmNfZXhlYyk7CisgCitAQCAtMTM4OSwxMiAr MTQxMSwxNiBAQCB1bnRpbF9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKKyAgICAg dW50aWxfYnJlYWtfY29tbWFuZCAoYXJnLCBmcm9tX3R0eSwgMCk7CisgICBlbHNlCisgICAgIHVu dGlsX25leHRfY29tbWFuZCAoZnJvbV90dHkpOworKworKyAgLyogRG9uZSB3aXRoIEFSR1MuICAq LworKyAgZG9fY2xlYW51cHMgKGFyZ3NfY2hhaW4pOworIH0KKyAKKyBzdGF0aWMgdm9pZAorIGFk dmFuY2VfY29tbWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHkpCisgeworLSAgaW50IGFzeW5j X2V4ZWMgPSAwOworKyAgaW50IGFzeW5jX2V4ZWM7CisrICBzdHJ1Y3QgY2xlYW51cCAqYXJnc19j aGFpbjsKKyAKKyAgIEVSUk9SX05PX0lORkVSSU9SOworICAgZW5zdXJlX25vdF90ZmluZF9tb2Rl ICgpOworQEAgLTE0MDUsMTIgKzE0MzEsMTUgQEAgYWR2YW5jZV9jb21tYW5kIChjaGFyICphcmcs IGludCBmcm9tX3R0eSkKKyAgICAgZXJyb3Jfbm9fYXJnIChfKCJhIGxvY2F0aW9uIikpOworIAor ICAgLyogRmluZCBvdXQgd2hldGhlciB3ZSBtdXN0IHJ1biBpbiB0aGUgYmFja2dyb3VuZC4gICov CistICBpZiAoYXJnICE9IE5VTEwpCistICAgIGFzeW5jX2V4ZWMgPSBzdHJpcF9iZ19jaGFyICgm YXJnKTsKKysgIGFyZyA9IHN0cmlwX2JnX2NoYXIgKGFyZywgJmFzeW5jX2V4ZWMpOworKyAgYXJn c19jaGFpbiA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIGFyZyk7CisgCisgICBwcmVwYXJlX2V4ZWN1 dGlvbl9jb21tYW5kICgmY3VycmVudF90YXJnZXQsIGFzeW5jX2V4ZWMpOworIAorICAgdW50aWxf YnJlYWtfY29tbWFuZCAoYXJnLCBmcm9tX3R0eSwgMSk7CisrCisrICAvKiBEb25lIHdpdGggQVJH Uy4gICovCisrICBkb19jbGVhbnVwcyAoYXJnc19jaGFpbik7CisgfQorIAwKKyAvKiBSZXR1cm4g dGhlIHZhbHVlIG9mIHRoZSByZXN1bHQgb2YgYSBmdW5jdGlvbiBhdCB0aGUgZW5kIG9mIGEgJ2Zp bmlzaCcKK0BAIC0xNjg2LDggKzE3MTUsOCBAQCBmaW5pc2hfY29tbWFuZCAoY2hhciAqYXJnLCBp bnQgZnJvbV90dHkpCisgeworICAgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lOworICAgc3RydWN0 IHN5bWJvbCAqZnVuY3Rpb247CistCistICBpbnQgYXN5bmNfZXhlYyA9IDA7CisrICBpbnQgYXN5 bmNfZXhlYzsKKysgIHN0cnVjdCBjbGVhbnVwICphcmdzX2NoYWluOworIAorICAgRVJST1JfTk9f SU5GRVJJT1I7CisgICBlbnN1cmVfbm90X3RmaW5kX21vZGUgKCk7CitAQCAtMTY5NSwxNCArMTcy NCwxNyBAQCBmaW5pc2hfY29tbWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHkpCisgICBlbnN1 cmVfbm90X3J1bm5pbmcgKCk7CisgCisgICAvKiBGaW5kIG91dCB3aGV0aGVyIHdlIG11c3QgcnVu IGluIHRoZSBiYWNrZ3JvdW5kLiAgKi8KKy0gIGlmIChhcmcgIT0gTlVMTCkKKy0gICAgYXN5bmNf ZXhlYyA9IHN0cmlwX2JnX2NoYXIgKCZhcmcpOworKyAgYXJnID0gc3RyaXBfYmdfY2hhciAoYXJn LCAmYXN5bmNfZXhlYyk7CisrICBhcmdzX2NoYWluID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgYXJn KTsKKyAKKyAgIHByZXBhcmVfZXhlY3V0aW9uX2NvbW1hbmQgKCZjdXJyZW50X3RhcmdldCwgYXN5 bmNfZXhlYyk7CisgCisgICBpZiAoYXJnKQorICAgICBlcnJvciAoXygiVGhlIFwiZmluaXNoXCIg Y29tbWFuZCBkb2VzIG5vdCB0YWtlIGFueSBhcmd1bWVudHMuIikpOworIAorKyAgLyogRG9uZSB3 aXRoIEFSR1MuICAqLworKyAgZG9fY2xlYW51cHMgKGFyZ3NfY2hhaW4pOworKworICAgZnJhbWUg PSBnZXRfcHJldl9mcmFtZSAoZ2V0X3NlbGVjdGVkX2ZyYW1lIChfKCJObyBzZWxlY3RlZCBmcmFt ZS4iKSkpOworICAgaWYgKGZyYW1lID09IDApCisgICAgIGVycm9yIChfKCJcImZpbmlzaFwiIG5v dCBtZWFuaW5nZnVsIGluIHRoZSBvdXRlcm1vc3QgZnJhbWUuIikpOworQEAgLTI0NzYsNyArMjUw OCw4IEBAIGF0dGFjaF9jb21tYW5kX2NvbnRpbnVhdGlvbl9mcmVlX2FyZ3MgKHZvaWQgKmFyZ3Mp Cisgdm9pZAorIGF0dGFjaF9jb21tYW5kIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCisgewor LSAgaW50IGFzeW5jX2V4ZWMgPSAwOworKyAgaW50IGFzeW5jX2V4ZWM7CisrICBzdHJ1Y3QgY2xl YW51cCAqYXJnc19jaGFpbjsKKyAgIHN0cnVjdCB0YXJnZXRfb3BzICphdHRhY2hfdGFyZ2V0Owor IAorICAgZG9udF9yZXBlYXQgKCk7CQkvKiBOb3QgZm9yIHRoZSBmYWludCBvZiBoZWFydCAqLwor QEAgLTI0OTcsOCArMjUzMCw4IEBAIGF0dGFjaF9jb21tYW5kIChjaGFyICphcmdzLCBpbnQgZnJv bV90dHkpCisgICAgICB0aGlzIGZ1bmN0aW9uIHNob3VsZCBwcm9iYWJseSBiZSBtb3ZlZCBpbnRv IHRhcmdldF9wcmVfaW5mZXJpb3IuICAqLworICAgdGFyZ2V0X3ByZV9pbmZlcmlvciAoZnJvbV90 dHkpOworIAorLSAgaWYgKGFyZ3MgIT0gTlVMTCkKKy0gICAgYXN5bmNfZXhlYyA9IHN0cmlwX2Jn X2NoYXIgKCZhcmdzKTsKKysgIGFyZ3MgPSBzdHJpcF9iZ19jaGFyIChhcmdzLCAmYXN5bmNfZXhl Yyk7CisrICBhcmdzX2NoYWluID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgYXJncyk7CisgCisgICBh dHRhY2hfdGFyZ2V0ID0gZmluZF9hdHRhY2hfdGFyZ2V0ICgpOworIAorQEAgLTI1MTIsNiArMjU0 NSw5IEBAIGF0dGFjaF9jb21tYW5kIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCisgICAgICBz aG91bGRuJ3QgcmVmZXIgdG8gYXR0YWNoX3RhcmdldCBhZ2Fpbi4gICovCisgICBhdHRhY2hfdGFy Z2V0ID0gTlVMTDsKKyAKKysgIC8qIERvbmUgd2l0aCBBUkdTLiAgKi8KKysgIGRvX2NsZWFudXBz IChhcmdzX2NoYWluKTsKKysKKyAgIC8qIFNldCB1cCB0aGUgInNhdmVkIHRlcm1pbmFsIG1vZGVz IiBvZiB0aGUgaW5mZXJpb3IKKyAgICAgIGJhc2VkIG9uIHdoYXQgbW9kZXMgd2UgYXJlIHN0YXJ0 aW5nIGl0IHdpdGguICAqLworICAgdGFyZ2V0X3Rlcm1pbmFsX2luaXQgKCk7CisjIyMgYS9nZGIv dGVzdHN1aXRlL0NoYW5nZUxvZworIyMjIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKyMjIC0x LDUgKzEsMTEgQEAKKyAyMDE0LTEwLTE3ICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29t PgorIAorKwlQUiBnZGIvMTc0NzEKKysJKiBnZGIuYmFzZS9iZy1leGVjdXRpb24tcmVwZWF0LmM6 IE5ldyBmaWxlLgorKwkqIGdkYi5iYXNlL2JnLWV4ZWN1dGlvbi1yZXBlYXQuZXhwOiBOZXcgZmls ZS4KKysKKysyMDE0LTEwLTE3ICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgorKwor IAlQUiBnZGIvMTczMDAKKyAJKiBnZGIuYmFzZS9jb250aW51ZS1hbGwtYWxyZWFkeS1ydW5uaW5n LmM6IE5ldyBmaWxlLgorIAkqIGdkYi5iYXNlL2NvbnRpbnVlLWFsbC1hbHJlYWR5LXJ1bm5pbmcu ZXhwOiBOZXcgZmlsZS4KKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvYmctZXhlY3V0aW9uLXJlcGVhdC5jCitAQCAtMCwwICsxLDMzIEBACisrLyogVGhpcyB0ZXN0 Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KKysKKysgICBDb3B5cmlnaHQg MjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysgICBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQor KyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy IHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2luY2x1ZGUgPHVuaXN0ZC5oPgorKworK2lu dAorK2ZvbyAodm9pZCkKKyt7CisrICByZXR1cm4gMDsgLyogc2V0IGJyZWFrIGhlcmUgKi8KKyt9 CisrCisraW50CisrbWFpbiAodm9pZCkKKyt7CisrICBmb28gKCk7CisrICBzbGVlcCAoNSk7Cisr ICBmb28gKCk7CisrICByZXR1cm4gMDsKKyt9CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL2JnLWV4ZWN1dGlvbi1yZXBlYXQuZXhwCitAQCAtMCwwICsxLDg2IEBA CisrIyBDb3B5cmlnaHQgKEMpIDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisr CisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysj IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisr IworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworKyMgVGVzdCB0aGF0IHJlcGVhdGlu ZyBhIGJhY2tncm91bmQgY29tbWFuZCBkb2Vzbid0IGxvc2UgdGhlICImIiBpbiB0aGUKKysjIHJl cGVhdCwgdHVybmluZyBhIGJhY2tncm91bmQgY29tbWFuZCBpbnRvIGEgZm9yZWdyb3VuZCBjb21t YW5kLiAgU2VlCisrIyBQUiBnZGIvMTc0NzEuCisrCisrc3RhbmRhcmRfdGVzdGZpbGUKKysKKytp ZiB7IFtidWlsZF9leGVjdXRhYmxlICJmYWlsZWQgdG8gcHJlcGFyZSIgJHt0ZXN0ZmlsZX0gJHNy Y2ZpbGVdIH0geworKyAgICByZXR1cm4gLTEKKyt9CisrCisrc2V0IGxpbmVudW0gW2dkYl9nZXRf bGluZV9udW1iZXIgInNldCBicmVhayBoZXJlIl0KKysKKysjIFJ1biB0aGUgdGVzdCBwcm9wZXIu ICBDT05USU5VRV9DTUQgaXMgdGhlIGJhY2tncm91bmQgY29udGludWUKKysjIGNvbW1hbmQgdG8g aXNzdWUuCisrCisrcHJvYyB0ZXN0IHtjb250aW51ZV9jbWR9IHsKKysgICAgZ2xvYmFsIGdkYl9w cm9tcHQKKysgICAgZ2xvYmFsIGJpbmZpbGUKKysgICAgZ2xvYmFsIGxpbmVudW0KKysKKysgICAg Y2xlYW5fcmVzdGFydCAkYmluZmlsZQorKworKyAgICBpZiAhW3J1bnRvX21haW5dIHsKKysJcmV0 dXJuCisrICAgIH0KKysKKysgICAgZ2RiX2JyZWFrcG9pbnQgIiRsaW5lbnVtIgorKworKyAgICBz ZXQgdGVzdCAkY29udGludWVfY21kCisrICAgIGdkYl90ZXN0X211bHRpcGxlICR0ZXN0ICR0ZXN0 IHsKKysJLXJlICJDb250aW51aW5nXFwuXHJcbiRnZGJfcHJvbXB0ICIgeworKwkgICAgIyBOb3Rl IG5vIGVuZCBhbmNob3IuICBJZiB0aGUgYnJlYWtwb2ludCB0cmlnZ2VycyBzb29uIGVub3VnaAor KwkgICAgIyBlbm91Z2ggd2Ugc2VlIGZ1cnRoZXIgb3V0cHV0IGFmdGVyIHRoZSBwcm9tcHQuCisr CSAgICBwYXNzICR0ZXN0CisrCX0KKysgICAgfQorKworKyAgICAjIFdhaXQgZm9yIHRoZSBzdG9w LiAgRG9uJ3QgZXhwZWN0IGEgcHJvbXB0LCBhcyB3ZSBoYWQgcmVzdW1lZCB0aGUKKysgICAgIyBp bmZlcmlvciBpbiB0aGUgYmFja2dyb3VuZC4KKysgICAgc2V0IHRlc3QgImJyZWFrcG9pbnQgaGl0 IDEiCisrICAgIGdkYl90ZXN0X211bHRpcGxlICIiICR0ZXN0IHsKKysJLXJlICJzZXQgYnJlYWsg aGVyZSIgeworKwkgICAgcGFzcyAkdGVzdAorKwl9CisrICAgIH0KKysKKysgICAgIyBUcmlnZ2Vy IGEgcmVwZWF0LiAgQnVnZ3kgR0RCIHVzZWQgdG8gbG9zZSB0aGUgIiYiLCBtYWtpbmcgdGhpcyBh CisrICAgICMgZm9yZWdyb3VuZCBjb21tYW5kLi4uCisrICAgIHNlbmRfZ2RiICJcbiIKKysgICAg Z2RiX3Rlc3QgIiIgIkNvbnRpbnVpbmdcXC4iICJyZXBlYXQgYmcgY29tbWFuZCIKKysKKysgICAg IyAuLi4gYW5kIHRodXMgZnVydGhlciBpbnB1dCB3b3VsZG4ndCBiZSBwcm9jZXNzZWQgdW50aWwg dGhlIHRhcmdldAorKyAgICAjIHN0b3BwZWQuCisrICAgIGdkYl90ZXN0ICJwcmludCAxIiAiID0g MSIgImlucHV0IHN0aWxsIGFjY2VwdGVkIgorKworKyAgICAjIE1ha2Ugc3VyZSB3ZSBzZWUgYSBz dG9wIGFmdGVyIHRoZSBwcmludCwgYW5kIG5vdCBiZWZvcmUuICBEb24ndAorKyAgICAjIGV4cGVj dCBhIHByb21wdCwgYXMgd2UgaGFkIHJlc3VtZWQgdGhlIGluZmVyaW9yIGluIHRoZSBiYWNrZ3Jv dW5kLgorKyAgICBzZXQgdGVzdCAiYnJlYWtwb2ludCBoaXQgMiIKKysgICAgZ2RiX3Rlc3RfbXVs dGlwbGUgIiIgJHRlc3QgeworKwktcmUgInNldCBicmVhayBoZXJlIC4uXHJcbiIgeworKwkgICAg cGFzcyAkdGVzdAorKwl9CisrICAgIH0KKyt9CisrCisrIyBUZXN0IHdpdGggYW5kIHdpdGhvdXQg ZXh0cmEgYXJndW1lbnRzLgorK2ZvcmVhY2ggY21kIHsiYyYiICJjIDEmIn0geworKyAgICB3aXRo X3Rlc3RfcHJlZml4ICRjbWQgeworKwl0ZXN0ICRjbWQKKysgICAgfQorK30KKy0tIAorMS45LjMK KwoKZGlmZiAtLWdpdCBhL2dkYi5zcGVjIGIvZ2RiLnNwZWMKaW5kZXggNDIwZDE2Ny4uNzg3ZTgz ZSAxMDA2NDQKLS0tIGEvZ2RiLnNwZWMKKysrIGIvZ2RiLnNwZWMKQEAgLTI2LDcgKzI2LDcgQEAg VmVyc2lvbjogNy44CiAKICMgVGhlIHJlbGVhc2UgYWx3YXlzIGNvbnRhaW5zIGEgbGVhZGluZyBy ZXNlcnZlZCBudW1iZXIsIHN0YXJ0IGl0IGF0IDEuCiAjIGB1cHN0cmVhbScgaXMgbm90IGEgcGFy dCBvZiBgbmFtZScgdG8gc3RheSBmdWxseSBycG0gZGVwZW5kZW5jaWVzIGNvbXBhdGlibGUgZm9y IHRoZSB0ZXN0aW5nLgotUmVsZWFzZTogMjUlez9kaXN0fQorUmVsZWFzZTogMjYlez9kaXN0fQog CiBMaWNlbnNlOiBHUEx2MysgYW5kIEdQTHYzKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTHYyKyBh bmQgR1BMdjIrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMKyBhbmQgTEdQTHYyKyBhbmQgQlNEIGFu ZCBQdWJsaWMgRG9tYWluIGFuZCBHRkRMCiBHcm91cDogRGV2ZWxvcG1lbnQvRGVidWdnZXJzCkBA IC03MjIsOCArNzIyLDggQEAgZmluZCAtbmFtZSAiKi5pbmZvKiJ8eGFyZ3Mgcm0gLWYKICMgTWF0 Y2ggdGhlIEZlZG9yYSdzIHZlcnNpb24gaW5mby4KICVwYXRjaDIgLXAxCiAKLSVwYXRjaDM0OSAt cDEKICVwYXRjaDIzMiAtcDEKKyVwYXRjaDM0OSAtcDEKICVwYXRjaDg4OCAtcDEKICVwYXRjaDkx MiAtcDEKICVwYXRjaDg4OSAtcDEKQEAgLTEzMzksNiArMTMzOSw5IEBAIHRoZW4KIGZpCiAKICVj aGFuZ2Vsb2cKKyogU3VuIE9jdCAxOSAyMDE0IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZp bEByZWRoYXQuY29tPiAtIDcuOC0yNi5mYzIxCistIEltcG9ydCA1IHVwc3RyZWFtIGdkYi03Ljgg YnJhbmNoIGZpeGVzIChhc3luYyBmaXggYnkgUGVkcm8gQWx2ZXMpLgorCiAqIEZyaSBPY3QgMDMg MjAxNCBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgPHNlcmdpb2RqQHJlZGhhdC5jb20+IC0gNy44LTI1 LmZjMjEKIC0gRml4ICdTbG93IGdzdGFjayBwZXJmb3JtYW5jZScgKFJIIEJaIDExMDM4OTQsIEph biBLcmF0b2NodmlsKS4KIAo=