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: Guinevere Larsen To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: remove gdb-6.5-BEA-testsuite.patch Date: Thu, 23 Jul 2026 18:35:37 GMT Message-ID: <178483173799.1.10390189703688957606.rpms-gdb-ce2a1b8ca476@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: ce2a1b8ca476995b98fbaf5a02cd42c52618f0ab ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogY2UyYTFiOGNhNDc2OTk1Yjk4ZmJhZjVhMDJjZDQyYzUyNjE4ZjBhYgog ICAgICAgICAgICBBdXRob3IgOiBHdWluZXZlcmUgTGFyc2VuIDxibGFyc2VuQHJlZGhhdC5jb20+ CiAgICAgICAgICAgIERhdGUgICA6IDIwMjQtMDEtMjVUMTk6Mjc6MzArMDE6MDAKICAgICAgICAg ICAgU3RhdHMgIDogKzQ4Ly05ODggaW4gNSBmaWxlKHMpCiAgICAgICAgICAgIFVSTCAgICA6IGh0 dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2RiL2MvY2UyYTFiOGNhNDc2OTk1Yjk4 ZmJhZjVhMDJjZDQyYzUyNjE4ZjBhYj9icmFuY2g9Zml4LWR1cC1wYXRjaAoKICAgICAgICAgICAg TG9nOgogICAgICAgICAgICByZW1vdmUgZ2RiLTYuNS1CRUEtdGVzdHN1aXRlLnBhdGNoCgpBIHNp bWlsYXIgdmVyc2lvbiB3YXMgYWNjZXB0ZWQgdXBzdHJlYW0gYW5kIHdpbGwgbWFrZSBpdHMgd2F5 IGJhY2sgaGVyZQp3aXRoIHRoZSBuZXh0IHJlYmFzZS4KCi0tLQpkaWZmIC0tZ2l0IGEvX2dkYi5z cGVjLlBhdGNoLmluY2x1ZGUgYi9fZ2RiLnNwZWMuUGF0Y2guaW5jbHVkZQppbmRleCA5YmQ0YWQ2 Li5jYjllOWQ4IDEwMDY0NAotLS0gYS9fZ2RiLnNwZWMuUGF0Y2guaW5jbHVkZQorKysgYi9fZ2Ri LnNwZWMuUGF0Y2guaW5jbHVkZQpAQCAtMTAsMTQ4ICsxMCwxNDQgQEAgUGF0Y2gwMDI6IGdkYi02 LjMtZ3N0YWNrLTIwMDUwNDExLnBhdGNoCiAjPXB1c2gramFuOiBJdCBzaG91bGQgYmUgcmVwbGFj ZWQgYnkgSW5maW5pdHkgcHJvamVjdC4KIFBhdGNoMDAzOiBnZGItNi41LWJ6MTg1MzM3LXJlc29s dmUtdGxzLXdpdGhvdXQtZGVidWdpbmZvLXYyLnBhdGNoCiAKLSMgSW1wcm92ZWQgdGVzdHN1aXRl IHJlc3VsdHMgYnkgdGhlIHRlc3RzdWl0ZSBwcm92aWRlZCBieSB0aGUgY291cnRlc3kgb2YgQkVB LgotIz1mZWRvcmF0ZXN0OiBGb3IgdXBzdHJlYW0gaXQgc2hvdWxkIGJlIHJld3JpdHRlbiBhcyBh IGRlamFnbnUgdGVzdCwgdGhlIHRlc3Qgb2Ygbm8gIj8/IiB3YXMgdXNlZnVsLgotUGF0Y2gwMDQ6 IGdkYi02LjUtQkVBLXRlc3RzdWl0ZS5wYXRjaAotCiAjIFRlc3Qgc2lkZWVmZmVjdHMgb2Ygc2tp cHBpbmcgcHBjIC5zbyBsaWJzIHRyYW1wb2xpbmVzIChCWiAyMTgzNzkpLgogIz1mZWRvcmF0ZXN0 Ci1QYXRjaDAwNTogZ2RiLTYuNS1iejIxODM3OS1wcGMtc29saWItdHJhbXBvbGluZS10ZXN0LnBh dGNoCitQYXRjaDAwNDogZ2RiLTYuNS1iejIxODM3OS1wcGMtc29saWItdHJhbXBvbGluZS10ZXN0 LnBhdGNoCiAKICMgQWxsb3cgcnVubmluZyBgL3Vzci9iaW4vZ2NvcmUnIHdpdGggcHJvdmlkZWQg YnV0IGluYWNjZXNzaWJsZSB0dHkgKEJaIDIyOTUxNykuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDA2 OiBnZGItNi42LWJ6MjI5NTE3LWdjb3JlLXdpdGhvdXQtdGVybWluYWwucGF0Y2gKK1BhdGNoMDA1 OiBnZGItNi42LWJ6MjI5NTE3LWdjb3JlLXdpdGhvdXQtdGVybWluYWwucGF0Y2gKIAogIyBBdm9p ZCB0b28gbG9uZyB0aW1lb3V0cyBvbiBmYWlsaW5nIGNhc2VzIG9mICJhbm5vdGExLmV4cCBhbm5v dGEzLmV4cCIuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDA3OiBnZGItNi42LXRlc3RzdWl0ZS10aW1l b3V0cy5wYXRjaAorUGF0Y2gwMDY6IGdkYi02LjYtdGVzdHN1aXRlLXRpbWVvdXRzLnBhdGNoCiAK ICMgU3VwcG9ydCBmb3Igc3RlcHBpbmcgb3ZlciBQUEMgYXRvbWljIGluc3RydWN0aW9uIHNlcXVl bmNlcyAoQlogMjM3NTcyKS4KICM9ZmVkb3JhdGVzdAotUGF0Y2gwMDg6IGdkYi02LjYtYnoyMzc1 NzItcHBjLWF0b21pYy1zZXF1ZW5jZS10ZXN0LnBhdGNoCitQYXRjaDAwNzogZ2RiLTYuNi1iejIz NzU3Mi1wcGMtYXRvbWljLXNlcXVlbmNlLXRlc3QucGF0Y2gKIAogIyBUZXN0IGtlcm5lbCBWRFNP IGRlY29kaW5nIHdoaWxlIGF0dGFjaGluZyB0byBhbiBpMzg2IHByb2Nlc3MuCiAjPWZlZG9yYXRl c3QKLVBhdGNoMDA5OiBnZGItNi4zLWF0dGFjaC1zZWUtdmRzby10ZXN0LnBhdGNoCitQYXRjaDAw ODogZ2RiLTYuMy1hdHRhY2gtc2VlLXZkc28tdGVzdC5wYXRjaAogCiAjIFRlc3QgbGVmdG92ZXIg em9tYmllIHByb2Nlc3MgKEJaIDI0Mzg0NSkuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDEwOiBnZGIt Ni41LWJ6MjQzODQ1LXN0YWxlLXRlc3Rpbmctem9tYmllLXRlc3QucGF0Y2gKK1BhdGNoMDA5OiBn ZGItNi41LWJ6MjQzODQ1LXN0YWxlLXRlc3Rpbmctem9tYmllLXRlc3QucGF0Y2gKIAogIyBOZXcg bG9jYXRpbmcgb2YgdGhlIG1hdGNoaW5nIGJpbmFyaWVzIGZyb20gdGhlIHB1cmUgY29yZSBmaWxl IChidWlsZC1pZCkuCiAjPXB1c2gramFuCi1QYXRjaDAxMTogZ2RiLTYuNi1idWlsZGlkLWxvY2F0 ZS5wYXRjaAorUGF0Y2gwMTA6IGdkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2gKIAogIyBGaXgg bG9hZGluZyBvZiBjb3JlIGZpbGVzIHdpdGhvdXQgYnVpbGQtaWRzIGJ1dCB3aXRoIGJ1aWxkLWlk cyBpbiBleGVjdXRhYmxlcy4KICMgTG9hZCBzdHJpY3RseSBidWlsZC1pZC1jaGVja2VkIGNvcmUg ZmlsZXMgb25seSBpZiBubyBleGVjdXRhYmxlIGlzIHNwZWNpZmllZAogIyAoSmFuIEtyYXRvY2h2 aWwsIFJIIEJaIDEzMzk4NjIpLgogIz1wdXNoK2phbgotUGF0Y2gwMTI6IGdkYi02LjYtYnVpbGRp ZC1sb2NhdGUtc29saWItbWlzc2luZy1pZHMucGF0Y2gKK1BhdGNoMDExOiBnZGItNi42LWJ1aWxk aWQtbG9jYXRlLXNvbGliLW1pc3NpbmctaWRzLnBhdGNoCiAKICM9cHVzaCtqYW4KLVBhdGNoMDEz OiBnZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaAorUGF0Y2gwMTI6IGdkYi02LjYtYnVp bGRpZC1sb2NhdGUtcnBtLnBhdGNoCiAKICMgVGVzdCBQUEMgaGlkaW5nIG9mIGNhbGwtdm9sYXRp bGUgcGFyYW1ldGVyIHJlZ2lzdGVyLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDAxNDogZ2RiLTYuNy1w cGMtY2xvYmJlcmVkLXJlZ2lzdGVycy1PMi10ZXN0LnBhdGNoCitQYXRjaDAxMzogZ2RiLTYuNy1w cGMtY2xvYmJlcmVkLXJlZ2lzdGVycy1PMi10ZXN0LnBhdGNoCiAKICMgVGVzdCBnY29yZSBtZW1v cnkgYW5kIHRpbWUgcmVxdWlyZW1lbnRzIGZvciBsYXJnZSBpbmZlcmlvcnMuCiAjPWZlZG9yYXRl c3QKLVBhdGNoMDE1OiBnZGItNi41LWdjb3JlLWJ1ZmZlci1saW1pdC10ZXN0LnBhdGNoCitQYXRj aDAxNDogZ2RiLTYuNS1nY29yZS1idWZmZXItbGltaXQtdGVzdC5wYXRjaAogCiAjIFRlc3QgR0NP UkUgZm9yIHNobWlkIDAgc2hhcmVkIG1lbW9yeSBtYXBwaW5ncy4KICM9ZmVkb3JhdGVzdDogQnV0 IGl0IGlzIGJyb2tlbiBhbnl3YXksIHNvbWV0aW1lcyB0aGUgY2FzZSBiZWluZyB0ZXN0ZWQgaXMg bm90IHJlcHJvZHVjaWJsZS4KLVBhdGNoMDE2OiBnZGItNi4zLW1hcHBpbmctemVyby1pbm9kZS10 ZXN0LnBhdGNoCitQYXRjaDAxNTogZ2RiLTYuMy1tYXBwaW5nLXplcm8taW5vZGUtdGVzdC5wYXRj aAogCiAjIFRlc3QgYSBjcmFzaCBvbiBsaWJyYXJpZXMgbWlzc2luZyB0aGUgLnRleHQgc2VjdGlv bi4KICM9ZmVkb3JhdGVzdAotUGF0Y2gwMTc6IGdkYi02LjUtc2VjdGlvbi1udW0tZml4dXAtdGVz dC5wYXRjaAorUGF0Y2gwMTY6IGdkYi02LjUtc2VjdGlvbi1udW0tZml4dXAtdGVzdC5wYXRjaAog CiAjIEZpeCByZXNvbHZpbmcgb2YgdmFyaWFibGVzIGF0IGxvY2F0aW9ucyBsaXN0cyBpbiBwcmVs aW5rZWQgbGlicyAoQlogNDY2OTAxKS4KICM9ZmVkb3JhdGVzdAotUGF0Y2gwMTg6IGdkYi02Ljgt Yno0NjY5MDEtYmFja3RyYWNlLWZ1bGwtcHJlbGlua2VkLnBhdGNoCitQYXRjaDAxNzogZ2RiLTYu OC1iejQ2NjkwMS1iYWNrdHJhY2UtZnVsbC1wcmVsaW5rZWQucGF0Y2gKIAogIyBOZXcgdGVzdCBm b3Igc3RlcC1yZXN1bWUgYnJlYWtwb2ludCBwbGFjZWQgaW4gbXVsdGlwbGUgdGhyZWFkcyBhdCBv bmNlLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDAxOTogZ2RiLXNpbXVsdGFuZW91cy1zdGVwLXJlc3Vt ZS1icmVha3BvaW50LXRlc3QucGF0Y2gKK1BhdGNoMDE4OiBnZGItc2ltdWx0YW5lb3VzLXN0ZXAt cmVzdW1lLWJyZWFrcG9pbnQtdGVzdC5wYXRjaAogCiAjIEZpeCBHTlUvTGludXggY29yZSBvcGVu OiBDYW4ndCByZWFkIHBhdGhuYW1lIGZvciBsb2FkIG1hcDogSW5wdXQvb3V0cHV0IGVycm9yLgog IyBGaXggcmVncmVzc2lvbiBvZiB1bmRpc3BsYXllZCBtaXNzaW5nIHNoYXJlZCBsaWJyYXJpZXMg Y2F1c2VkIGJ5IGEgZml4IGZvci4KICM9ZmVkb3JhdGVzdDogSXQgc2hvdWxkIGJlIGluIGdsaWJj OiBsaWJjLWFscGhhOiA8MjAwOTEwMDQxNjE3MDYuR0EyNzQ1MEAuKj4KLVBhdGNoMDIwOiBnZGIt Y29yZS1vcGVuLXZkc28td2FybmluZy5wYXRjaAorUGF0Y2gwMTk6IGdkYi1jb3JlLW9wZW4tdmRz by13YXJuaW5nLnBhdGNoCiAKICMgRml4IGZvbGxvdy1leGVjIGZvciBDKysgcHJvZ3JhbXMgKGJ1 Z3JlcG9ydGVkIGJ5IE1hcnRpbiBTdHJhbnNreSkuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDIxOiBn ZGItYXJjaGVyLW5leHQtb3Zlci10aHJvdy1jeHgtZXhlYy5wYXRjaAorUGF0Y2gwMjA6IGdkYi1h cmNoZXItbmV4dC1vdmVyLXRocm93LWN4eC1leGVjLnBhdGNoCiAKICMgV29ya2Fyb3VuZCBsaWJy cG0gQlogNjQzMDMxIGR1ZSB0byBpdHMgdW5leHBlY3RlZCBleGl0KCkgY2FsbHMgKEJaIDY0Mjg3 OSkuCiAjPXB1c2gramFuCi1QYXRjaDAyMjogZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0tbGli cnBtLXdvcmthcm91bmQucGF0Y2gKK1BhdGNoMDIxOiBnZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJw bS1saWJycG0td29ya2Fyb3VuZC5wYXRjaAogCiAjIFtkZWxheWVkLXN5bWZpbGVdIFRlc3QgYSBi YWNrdHJhY2UgcmVncmVzc2lvbiBvbiBDRklzIHdpdGhvdXQgRElFIChCWiA2MTQ2MDQpLgogIz1m ZWRvcmF0ZXN0Ci1QYXRjaDAyMzogZ2RiLXRlc3QtYnQtY2ZpLXdpdGhvdXQtZGllLnBhdGNoCitQ YXRjaDAyMjogZ2RiLXRlc3QtYnQtY2ZpLXdpdGhvdXQtZGllLnBhdGNoCiAKICMgVmVyaWZ5IEdE QiBQeXRob24gYnVpbHQtaW4gZnVuY3Rpb24gZ2RiLnNvbGliX2FkZHJlc3MgZXhpc3RzIChCWiAj IDYzNDEwOCkuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDI0OiBnZGItYno2MzQxMDgtc29saWJfYWRk cmVzcy5wYXRjaAorUGF0Y2gwMjM6IGdkYi1iejYzNDEwOC1zb2xpYl9hZGRyZXNzLnBhdGNoCiAK ICMgW2FyY2hlci10cm9tZXktZGVsYXllZC1zeW1maWxlXSBOZXcgdGVzdCBnZGIuZHdhcmYyL2R3 Mi1hcmFuZ2VzLmV4cC4KICM9ZmVkb3JhdGVzdAotUGF0Y2gwMjU6IGdkYi10ZXN0LWR3Mi1hcmFu Z2VzLnBhdGNoCitQYXRjaDAyNDogZ2RiLXRlc3QtZHcyLWFyYW5nZXMucGF0Y2gKIAogIyBXb3Jr YXJvdW5kIFBSIGxpYmMvMTQxNjYgZm9yIGluZmVyaW9yIGNhbGxzIG9mIHN0cnN0ci4KICM9ZmVk b3JhdGVzdDogQ29tcGF0aWJpbGl0eSB3aXRoIFJIRUxzICh1bmNoZWNrZWQgd2hpY2ggb25lcyku Ci1QYXRjaDAyNjogZ2RiLWdsaWJjLXN0cnN0ci13b3JrYXJvdW5kLnBhdGNoCitQYXRjaDAyNTog Z2RiLWdsaWJjLXN0cnN0ci13b3JrYXJvdW5kLnBhdGNoCiAKICMgVGVzdGNhc2UgZm9yIGBTZXR0 aW5nIHNvbGliLWFic29sdXRlLXByZWZpeCBicmVha3MgdkRTTycgKEJaIDgxODM0MykuCiAjPWZl ZG9yYXRlc3QKLVBhdGNoMDI3OiBnZGItcmhiei04MTgzNDMtc2V0LXNvbGliLWFic29sdXRlLXBy ZWZpeC10ZXN0Y2FzZS5wYXRjaAorUGF0Y2gwMjY6IGdkYi1yaGJ6LTgxODM0My1zZXQtc29saWIt YWJzb2x1dGUtcHJlZml4LXRlc3RjYXNlLnBhdGNoCiAKICMgSW1wb3J0IHJlZ3Jlc3Npb24gdGVz dCBmb3IgYGdkYi9maW5kdmFyLmM6NDE3OiBpbnRlcm5hbC1lcnJvcjoKICMgcmVhZF92YXJfdmFs dWU6IEFzc2VydGlvbiBgZnJhbWUnIGZhaWxlZC4nIChSSCBCWiA5NDc1NjQpIGZyb20gUkhFTCA2 LjUuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDI4OiBnZGItcmhiejk0NzU2NC1maW5kdmFyLWFzc2Vy dGlvbi1mcmFtZS1mYWlsZWQtdGVzdGNhc2UucGF0Y2gKK1BhdGNoMDI3OiBnZGItcmhiejk0NzU2 NC1maW5kdmFyLWFzc2VydGlvbi1mcmFtZS1mYWlsZWQtdGVzdGNhc2UucGF0Y2gKIAogIyBGaXgg J21lbW9yeSBsZWFrIGluIGluZnB5X3JlYWRfbWVtb3J5KCknIChSSCBCWiAxMDA3NjE0KQogIz1m ZWRvcmF0ZXN0Ci1QYXRjaDAyOTogZ2RiLXJoYnoxMDA3NjE0LW1lbWxlYWstaW5mcHlfcmVhZF9t ZW1vcnktdGVzdC5wYXRjaAorUGF0Y2gwMjg6IGdkYi1yaGJ6MTAwNzYxNC1tZW1sZWFrLWluZnB5 X3JlYWRfbWVtb3J5LXRlc3QucGF0Y2gKIAogIyBGaXggJ2dkYiBnaXZlcyBoaWdobHkgbWlzbGVh ZGluZyBlcnJvciB3aGVuIGRlYnVnaW5mbyBwa2cgaXMgcHJlc2VudCwKICMgYnV0IG5vdCBjb3Jy ZXNwb25kaW5nIGJpbmFyeSBwa2cnIChSSCBCWiA5ODExNTQpLgogIz1wdXNoK2phbgotUGF0Y2gw MzA6IGdkYi02LjYtYnVpbGRpZC1sb2NhdGUtbWlzbGVhZGluZy13YXJuaW5nLW1pc3NpbmctZGVi dWdpbmZvLXJoYno5ODExNTQucGF0Y2gKK1BhdGNoMDI5OiBnZGItNi42LWJ1aWxkaWQtbG9jYXRl LW1pc2xlYWRpbmctd2FybmluZy1taXNzaW5nLWRlYnVnaW5mby1yaGJ6OTgxMTU0LnBhdGNoCiAK ICMgVGVzdGNhc2UgZm9yICdbU0FQXSBSZWN1cnNpdmUgZGxvcGVuIGNhdXNlcyBTQVAgSEFOQSBp bnN0YWxsZXIgdG8KICMgY3Jhc2guJyAoUkggQlogMTE1NjE5MikuCiAjPWZlZG9yYXRlc3QKLVBh dGNoMDMxOiBnZGItcmhiejExNTYxOTItcmVjdXJzaXZlLWRsb3Blbi10ZXN0LnBhdGNoCitQYXRj aDAzMDogZ2RiLXJoYnoxMTU2MTkyLXJlY3Vyc2l2ZS1kbG9wZW4tdGVzdC5wYXRjaAogCiAjIEZp eCAnYGNhdGNoIHN5c2NhbGwnIGRvZXNuJ3Qgd29yayBmb3IgcGFyZW50IGFmdGVyIGBmb3JrJyBp cyBjYWxsZWQnCiAjIChQaGlsaXBwZSBXYXJvcXVpZXJzLCBSSCBCWiAxMTQ5MjA1KS4KICM9ZmVk b3JhdGVzdAotUGF0Y2gwMzI6IGdkYi1yaGJ6MTE0OTIwNS1jYXRjaC1zeXNjYWxsLWFmdGVyLWZv cmstdGVzdC5wYXRjaAorUGF0Y2gwMzE6IGdkYi1yaGJ6MTE0OTIwNS1jYXRjaC1zeXNjYWxsLWFm dGVyLWZvcmstdGVzdC5wYXRjaAogCiAjIEZpeCAnW3BwYzY0XSBhbmQgW3MzOTB4XSB3cm9uZyBw cm9sb2d1ZSBza2lwIG9uIC1PMiAtZyBjb2RlJyAoSmFuCiAjIEtyYXRvY2h2aWwsIFJIIEJaIDEw ODQ0MDQpLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDAzMzogZ2RiLXJoYnoxMDg0NDA0LXBwYzY0LXMz OTB4LXdyb25nLXByb2xvZ3VlLXNraXAtTzItZy0zb2YzLnBhdGNoCitQYXRjaDAzMjogZ2RiLXJo YnoxMDg0NDA0LXBwYzY0LXMzOTB4LXdyb25nLXByb2xvZ3VlLXNraXAtTzItZy0zb2YzLnBhdGNo CiAKICMgRm9yY2UgbGlibmN1cnNlc3cgb3ZlciBsaWJuY3Vyc2VzIHRvIG1hdGNoIHRoZSBpbmNs dWRlcyAoUkggQlogMTI3MDUzNCkuCiAjPXB1c2gramFuCi1QYXRjaDAzNDogZ2RiLWZlZG9yYS1s aWJuY3Vyc2Vzdy5wYXRjaAorUGF0Y2gwMzM6IGdkYi1mZWRvcmEtbGlibmN1cnNlc3cucGF0Y2gK IAogIyBbYWFyY2g2NF0gRml4IGhhcmR3YXJlIHdhdGNocG9pbnRzIChSSCBCWiAxMjYxNTY0KS4K ICM9ZmVkb3JhdGVzdAotUGF0Y2gwMzU6IGdkYi1yaGJ6MTI2MTU2NC1hYXJjaDY0LWh3LXdhdGNo cG9pbnQtdGVzdC5wYXRjaAorUGF0Y2gwMzQ6IGdkYi1yaGJ6MTI2MTU2NC1hYXJjaDY0LWh3LXdh dGNocG9pbnQtdGVzdC5wYXRjaAogCiAjIEFkZCBtZXNzYWdlcyBzdWdnZXN0aW5nIG1vcmUgcmVj ZW50IFJIRUwgZ2Ric2VydmVyIChSSCBCWiAxMzIxMTE0KS4KICM9ZmVkb3JhCi1QYXRjaDAzNjog Z2RiLWNvbnRhaW5lci1yaC1wa2cucGF0Y2gKK1BhdGNoMDM1OiBnZGItY29udGFpbmVyLXJoLXBr Zy5wYXRjaAogCiAjIFtkdHMrZWw3XSBbeDg2Kl0gQnVuZGxlIGxpbnV4X3BlcmYuaCBmb3IgbGli aXB0IChSSCBCWiAxMjU2NTEzKS4KICM9ZmVkb3JhCi1QYXRjaDAzNzogZ2RiLWxpbnV4X3BlcmYt YnVuZGxlLnBhdGNoCitQYXRjaDAzNjogZ2RiLWxpbnV4X3BlcmYtYnVuZGxlLnBhdGNoCiAKICMg VXBkYXRlIGdkYi1hZGQtaW5kZXguc2ggc3VjaCB0aGF0LCB3aGVuIHRoZSBHREIgZW52aXJvbm1l bnQKICMgdmFyaWFibGUgaXMgbm90IHNldCwgdGhlIHNjcmlwdCBpcyBzbWFydGVyIHRoYW4ganVz dCBsb29raW5nIGZvcgpAQCAtMTY1LDQwICsxNjEsNDAgQEAgUGF0Y2gwMzc6IGdkYi1saW51eF9w ZXJmLWJ1bmRsZS5wYXRjaAogIyAgIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9DaGFu Z2VzL01pbmltYWxfR0RCX2luX2J1aWxkcm9vdAogIwogIz1mZWRvcmEKLVBhdGNoMDM4OiBnZGIt YWRkLWluZGV4LnBhdGNoCitQYXRjaDAzNzogZ2RiLWFkZC1pbmRleC5wYXRjaAogCiAjIEJhY2st cG9ydCB1cHN0cmVhbSBjb21taXQgMWYwZmFiN2ZmODYgYXMgcGFydCBvZiBhIGZpeCBmb3IKICMg bm9uLWRldGVybWluaXN0aWMgZ2RiLWluZGV4IGdlbmVyYXRpb24gKFJIIEJaIDIyMzIwODYpLgot UGF0Y2gwMzk6IGdkYi1yaGJ6MjIzMjA4Ni1yZWZhY3Rvci1zZWxmdGVzdC1zdXBwb3J0LnBhdGNo CitQYXRjaDAzODogZ2RiLXJoYnoyMjMyMDg2LXJlZmFjdG9yLXNlbGZ0ZXN0LXN1cHBvcnQucGF0 Y2gKIAogIyBCYWNrLXBvcnQgdXBzdHJlYW0gY29tbWl0IGFhMTliYzFkMjU5IGFzIHBhcnQgb2Yg YSBmaXggZm9yCiAjIG5vbi1kZXRlcm1pbmlzdGljIGdkYi1pbmRleCBnZW5lcmF0aW9uIChSSCBC WiAyMjMyMDg2KS4KLVBhdGNoMDQwOiBnZGItcmhiei0yMjMyMDg2LXJlZHVjZS1zaXplLW9mLWdk Yi1pbmRleC5wYXRjaAorUGF0Y2gwMzk6IGdkYi1yaGJ6LTIyMzIwODYtcmVkdWNlLXNpemUtb2Yt Z2RiLWluZGV4LnBhdGNoCiAKICMgQmFjay1wb3J0IHVwc3RyZWFtIGNvbW1pdCBhY2MxMTdiNTdm NyBhcyBwYXJ0IG9mIGEgZml4IGZvcgogIyBub24tZGV0ZXJtaW5pc3RpYyBnZGItaW5kZXggZ2Vu ZXJhdGlvbiAoUkggQlogMjIzMjA4NikuCi1QYXRjaDA0MTogZ2RiLXJoYnotMjIzMjA4Ni1jcHAt aWZ5LW1hcHBlZC1zeW10YWIucGF0Y2gKK1BhdGNoMDQwOiBnZGItcmhiei0yMjMyMDg2LWNwcC1p ZnktbWFwcGVkLXN5bXRhYi5wYXRjaAogCiAjIEJhY2stcG9ydCB1cHN0cmVhbSBjb21taXQgYWZm MjUwMTQ1YWYgYXMgcGFydCBvZiBhIGZpeCBmb3IKICMgbm9uLWRldGVybWluaXN0aWMgZ2RiLWlu ZGV4IGdlbmVyYXRpb24gKFJIIEJaIDIyMzIwODYpLgotUGF0Y2gwNDI6IGdkYi1yaGJ6LTIyMzIw ODYtZ2VuZXJhdGUtZ2RiLWluZGV4LWNvbnNpc3RlbnRseS5wYXRjaAorUGF0Y2gwNDE6IGdkYi1y aGJ6LTIyMzIwODYtZ2VuZXJhdGUtZ2RiLWluZGV4LWNvbnNpc3RlbnRseS5wYXRjaAogCiAjIEJh Y2stcG9ydCB1cHN0cmVhbSBjb21taXQgMzY0NGY0MWRjODAgYXMgcGFydCBvZiBhIGZpeCBmb3IK ICMgbm9uLWRldGVybWluaXN0aWMgZ2RiLWluZGV4IGdlbmVyYXRpb24gKFJIIEJaIDIyMzIwODYp LgotUGF0Y2gwNDM6IGdkYi1yaGJ6LTIyMzIwODYtZ2VuZXJhdGUtZHdhcmYtNS1pbmRleC1jb25z aXN0ZW50bHkucGF0Y2gKK1BhdGNoMDQyOiBnZGItcmhiei0yMjMyMDg2LWdlbmVyYXRlLWR3YXJm LTUtaW5kZXgtY29uc2lzdGVudGx5LnBhdGNoCiAKIAotUGF0Y2gwNDQ6IGdkYi1yaGJ6MjI1MDY1 Mi1nZGJweV9naWwucGF0Y2gKK1BhdGNoMDQzOiBnZGItcmhiejIyNTA2NTItZ2RicHlfZ2lsLnBh dGNoCiAKIAotUGF0Y2gwNDU6IGdkYi1yaGJ6MjI1MDY1Mi1hdm9pZC1QeU9TX1JlYWRsaW5lVFN0 YXRlLnBhdGNoCitQYXRjaDA0NDogZ2RiLXJoYnoyMjUwNjUyLWF2b2lkLVB5T1NfUmVhZGxpbmVU U3RhdGUucGF0Y2gKIAogIyBCYWNrcG9ydCBwb3RlbnRpYWwgZml4IGZvciBSSCBCWiAyMjU3NTYy LgotUGF0Y2gwNDY6IGdkYi1yaGJ6MjI1NzU2Mi1jcC1uYW1lc3BhY2UtbnVsbC1wdHItY2hlY2su cGF0Y2gKK1BhdGNoMDQ1OiBnZGItcmhiejIyNTc1NjItY3AtbmFtZXNwYWNlLW51bGwtcHRyLWNo ZWNrLnBhdGNoCiAKIAotUGF0Y2gwNDc6IGdkYi1mdGJzLXN3YXBwZWQtY2FsbG9jLWFyZ3MucGF0 Y2gKK1BhdGNoMDQ2OiBnZGItZnRicy1zd2FwcGVkLWNhbGxvYy1hcmdzLnBhdGNoCiAKICMgQmFj a3BvcnQgZ2RiOiBmaXggImxpc3QgLiIgcmVsYXRlZCBjcmFzaAotUGF0Y2gwNDg6IGdkYi1yaGJ6 MjI1OTg1MC1saXN0LXBlcmlvZC1jcmFzaC1maXgucGF0Y2gKK1BhdGNoMDQ3OiBnZGItcmhiejIy NTk4NTAtbGlzdC1wZXJpb2QtY3Jhc2gtZml4LnBhdGNoCiAKCmRpZmYgLS1naXQgYS9fZ2RiLnNw ZWMucGF0Y2guaW5jbHVkZSBiL19nZGIuc3BlYy5wYXRjaC5pbmNsdWRlCmluZGV4IGVmNTVkZDAu LjgyNThkYzkgMTAwNjQ0Ci0tLSBhL19nZGIuc3BlYy5wYXRjaC5pbmNsdWRlCisrKyBiL19nZGIu c3BlYy5wYXRjaC5pbmNsdWRlCkBAIC00NSw0ICs0NSwzIEBACiAlcGF0Y2ggLXAxIC1QMDQ1CiAl cGF0Y2ggLXAxIC1QMDQ2CiAlcGF0Y2ggLXAxIC1QMDQ3Ci0lcGF0Y2ggLXAxIC1QMDQ4CgpkaWZm IC0tZ2l0IGEvX3BhdGNoX29yZGVyIGIvX3BhdGNoX29yZGVyCmluZGV4IGMwNTc5ZDcuLjZiN2U5 NTIgMTAwNjQ0Ci0tLSBhL19wYXRjaF9vcmRlcgorKysgYi9fcGF0Y2hfb3JkZXIKQEAgLTEsNyAr MSw2IEBACiBnZGItNi4zLXJoLXRlc3R2ZXJzaW9uLTIwMDQxMjAyLnBhdGNoCiBnZGItNi4zLWdz dGFjay0yMDA1MDQxMS5wYXRjaAogZ2RiLTYuNS1iejE4NTMzNy1yZXNvbHZlLXRscy13aXRob3V0 LWRlYnVnaW5mby12Mi5wYXRjaAotZ2RiLTYuNS1CRUEtdGVzdHN1aXRlLnBhdGNoCiBnZGItNi41 LWJ6MjE4Mzc5LXBwYy1zb2xpYi10cmFtcG9saW5lLXRlc3QucGF0Y2gKIGdkYi02LjYtYnoyMjk1 MTctZ2NvcmUtd2l0aG91dC10ZXJtaW5hbC5wYXRjaAogZ2RiLTYuNi10ZXN0c3VpdGUtdGltZW91 dHMucGF0Y2gKCmRpZmYgLS1naXQgYS9nZGItNi41LUJFQS10ZXN0c3VpdGUucGF0Y2ggYi9nZGIt Ni41LUJFQS10ZXN0c3VpdGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEx NWNlYzIuLjAwMDAwMDAKLS0tIGEvZ2RiLTYuNS1CRUEtdGVzdHN1aXRlLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsOTM4ICswLDAgQEAKLUZyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBGZWRvcmEgR0RCIHBhdGNoZXMgPGludmFsaWRAZW1haWwuY29t PgotRGF0ZTogRnJpLCAyNyBPY3QgMjAxNyAyMTowNzo1MCArMDIwMAotU3ViamVjdDogZ2RiLTYu NS1CRUEtdGVzdHN1aXRlLnBhdGNoCi0KLTs7IEltcHJvdmVkIHRlc3RzdWl0ZSByZXN1bHRzIGJ5 IHRoZSB0ZXN0c3VpdGUgcHJvdmlkZWQgYnkgdGhlIGNvdXJ0ZXN5IG9mIEJFQS4KLTs7PWZlZG9y YXRlc3Q6IEZvciB1cHN0cmVhbSBpdCBzaG91bGQgYmUgcmV3cml0dGVuIGFzIGEgZGVqYWdudSB0 ZXN0LCB0aGUgdGVzdCBvZiBubyAiPz8iIHdhcyB1c2VmdWwuCi0KLWRpZmYgLS1naXQgYS9nZGIv dGVzdHN1aXRlL2dkYi50aHJlYWRzL3RocmVhZGNyYXNoLmMgYi9nZGIvdGVzdHN1aXRlL2dkYi50 aHJlYWRzL3RocmVhZGNyYXNoLmMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci0tLS0gL2Rldi9udWxs Ci0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3RocmVhZGNyYXNoLmMKLUBAIC0wLDAg KzEsMzAxIEBACi0rLyoKLSsgKiBUaGUgcG9pbnQgb2YgdGhpcyBwcm9ncmFtIGlzIHRvIGNyYXNo IGluIGEgbXVsdGktdGhyZWFkZWQgYXBwLgotKyAqIFRoZXJlIGFyZSBzZXZlbiB0aHJlYWRzLCBk b2luZyB0aGUgZm9sbG93aW5nIHRoaW5nczoKLSsgKiAqIFNwaW5uaW5nCi0rICogKiBTcGlubmlu ZyBpbnNpZGUgYSBzaWduYWwgaGFuZGxlcgotKyAqICogU3Bpbm5pbmcgaW5zaWRlIGEgc2lnbmFs IGhhbmRsZXIgZXhlY3V0aW5nIG9uIHRoZSBhbHRzdGFjawotKyAqICogSW4gYSBzeXNjYWxsCi0r ICogKiBJbiBhIHN5c2NhbGwgaW5zaWRlIGEgc2lnbmFsIGhhbmRsZXIKLSsgKiAqIEluIGEgc3lz Y2FsbCBpbnNpZGUgYSBzaWduYWwgaGFuZGxlciBleGVjdXRpbmcgb24gdGhlIGFsdHN0YWNrCi0r ICogKiBGaW5hbGx5LCB0aGUgbWFpbiB0aHJlYWQgY3Jhc2hlcyBpbiBtYWluLCB3aXRoIG5vIGZy aWxscy4KLSsgKgotKyAqIFRoZXNlIGFyZSB0aGUgdGhpbmdzIHRocmVhZHMgaW4gSlJvY2tpdCB0 ZW5kIHRvIGJlIGRvaW5nLiAgSWYgZ2RiCi0rICogY2FuIGhhbmRsZSB0aG9zZSB0aGluZ3MsIGJv dGggaW4gY29yZSBmaWxlcyBhbmQgZHVyaW5nIGxpdmUKLSsgKiBkZWJ1Z2dpbmcsIHRoYXQgd2ls bCBoZWxwIChhdCBsZWFzdCkgSlJvY2tpdCBkZXZlbG9wbWVudC4KLSsgKgotKyAqIExldCB0aGUg cHJvZ3JhbSBjcmVhdGUgYSBjb3JlIGZpbGUsIHRoZW4gbG9hZCB0aGUgY29yZSBmaWxlIGludG8K LSsgKiBnZGIuICBJbnNpZGUgZ2RiLCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gZG8gc29tZXRoaW5n IGxpa2UgdGhpczoKLSsgKgotKyAqIChnZGIpIHQgYSBhIGJ0Ci0rICoKLSsgKiBUaHJlYWQgNyAo cHJvY2VzcyA0MzUyKToKLSsgKiAjMCAgMHgwMDFiYTdkYyBpbiBfX25hbm9zbGVlcF9ub2NhbmNl bCAoKSBmcm9tIC9saWIvdGxzL2xpYmMuc28uNgotKyAqICMxICAweDAwMWJhNWZmIGluIHNsZWVw ICgpIGZyb20gL2xpYi90bHMvbGliYy5zby42Ci0rICogIzIgIDB4MDgwNDg4YTIgaW4gbWFrZVN5 c2NhbGwgKGlnbm9yZWQ9MHgwKSBhdCB0aHJlYWRjcmFzaC5jOjExOAotKyAqICMzICAweDAwNmFh ZGVjIGluIHN0YXJ0X3RocmVhZCAoKSBmcm9tIC9saWIvdGxzL2xpYnB0aHJlYWQuc28uMAotKyAq ICM0ICAweDAwMWVkMTlhIGluIGNsb25lICgpIGZyb20gL2xpYi90bHMvbGliYy5zby42Ci0rICoK LSsgKiBUaHJlYWQgNiAocHJvY2VzcyA0MzUzKToKLSsgKiAjMCAgMHgwMDFiYTdkYyBpbiBfX25h bm9zbGVlcF9ub2NhbmNlbCAoKSBmcm9tIC9saWIvdGxzL2xpYmMuc28uNgotKyAqICMxICAweDAw MWJhNWZmIGluIHNsZWVwICgpIGZyb20gL2xpYi90bHMvbGliYy5zby42Ci0rICogIzIgIDB4MDgw NDg5OGYgaW4gc3lzY2FsbGluZ1NpZ2hhbmRsZXIgKHNpZ25vPTEwLCBpbmZvPTB4YjZiZTc2ZjAs IGNvbnRleHQ9MHhiNmJlNzc3MCkKLSsgKiAgICAgYXQgdGhyZWFkY3Jhc2guYzoxNjgKLSsgKiAj MyAgPHNpZ25hbCBoYW5kbGVyIGNhbGxlZD4KLSsgKiAjNCAgMHgwMDZhZGY1ZSBpbiBwdGhyZWFk X2tpbGwgKCkgZnJvbSAvbGliL3Rscy9saWJwdGhyZWFkLnNvLjAKLSsgKiAjNSAgMHgwODA0OGE1 MSBpbiBtYWtlU3lzY2FsbEZyb21TaWdoYW5kbGVyIChpZ25vcmVkPTB4MCkgYXQgdGhyZWFkY3Jh c2guYzoyMDQKLSsgKiAjNiAgMHgwMDZhYWRlYyBpbiBzdGFydF90aHJlYWQgKCkgZnJvbSAvbGli L3Rscy9saWJwdGhyZWFkLnNvLjAKLSsgKiAjNyAgMHgwMDFlZDE5YSBpbiBjbG9uZSAoKSBmcm9t IC9saWIvdGxzL2xpYmMuc28uNgotKyAqCi0rICogVGhyZWFkIDUgKHByb2Nlc3MgNDM1NCk6Ci0r ICogIzAgIDB4MDAxYmE3ZGMgaW4gX19uYW5vc2xlZXBfbm9jYW5jZWwgKCkgZnJvbSAvbGliL3Rs cy9saWJjLnNvLjYKLSsgKiAjMSAgMHgwMDFiYTVmZiBpbiBzbGVlcCAoKSBmcm9tIC9saWIvdGxz L2xpYmMuc28uNgotKyAqICMyICAweDA4MDQ4OTM2IGluIHN5c2NhbGxpbmdBbHRTaWdoYW5kbGVy IChzaWdubz0zLCBpbmZvPTB4OTU5Y2Q3MCwgY29udGV4dD0weDk1OWNkZjApCi0rICogICAgIGF0 IHRocmVhZGNyYXNoLmM6MTQ0Ci0rICogIzMgIDxzaWduYWwgaGFuZGxlciBjYWxsZWQ+Ci0rICog IzQgIDB4MDA2YWRmNWUgaW4gcHRocmVhZF9raWxsICgpIGZyb20gL2xpYi90bHMvbGlicHRocmVh ZC5zby4wCi0rICogIzUgIDB4MDgwNDg5ZTIgaW4gbWFrZVN5c2NhbGxGcm9tQWx0U2lnaGFuZGxl ciAoaWdub3JlZD0weDApIGF0IHRocmVhZGNyYXNoLmM6MTkwCi0rICogIzYgIDB4MDA2YWFkZWMg aW4gc3RhcnRfdGhyZWFkICgpIGZyb20gL2xpYi90bHMvbGlicHRocmVhZC5zby4wCi0rICogIzcg IDB4MDAxZWQxOWEgaW4gY2xvbmUgKCkgZnJvbSAvbGliL3Rscy9saWJjLnNvLjYKLSsgKgotKyAq IFRocmVhZCA0IChwcm9jZXNzIDQzNTUpOgotKyAqICMwICBzcGluIChpZ25vcmVkPTB4MCkgYXQg dGhyZWFkY3Jhc2guYzoyNDIKLSsgKiAjMSAgMHgwMDZhYWRlYyBpbiBzdGFydF90aHJlYWQgKCkg ZnJvbSAvbGliL3Rscy9saWJwdGhyZWFkLnNvLjAKLSsgKiAjMiAgMHgwMDFlZDE5YSBpbiBjbG9u ZSAoKSBmcm9tIC9saWIvdGxzL2xpYmMuc28uNgotKyAqCi0rICogVGhyZWFkIDMgKHByb2Nlc3Mg NDM1Nik6Ci0rICogIzAgIHNwaW5uaW5nU2lnaGFuZGxlciAoc2lnbm89MTIsIGluZm89MHhiNGRl NDZmMCwgY29udGV4dD0weGI0ZGU0NzcwKSBhdCB0aHJlYWRjcmFzaC5jOjE4MAotKyAqICMxICA8 c2lnbmFsIGhhbmRsZXIgY2FsbGVkPgotKyAqICMyICAweDAwNmFkZjVlIGluIHB0aHJlYWRfa2ls bCAoKSBmcm9tIC9saWIvdGxzL2xpYnB0aHJlYWQuc28uMAotKyAqICMzICAweDA4MDQ4YjJmIGlu IHNwaW5Gcm9tU2lnaGFuZGxlciAoaWdub3JlZD0weDApIGF0IHRocmVhZGNyYXNoLmM6MjMyCi0r ICogIzQgIDB4MDA2YWFkZWMgaW4gc3RhcnRfdGhyZWFkICgpIGZyb20gL2xpYi90bHMvbGlicHRo cmVhZC5zby4wCi0rICogIzUgIDB4MDAxZWQxOWEgaW4gY2xvbmUgKCkgZnJvbSAvbGliL3Rscy9s aWJjLnNvLjYKLSsgKgotKyAqIFRocmVhZCAyIChwcm9jZXNzIDQzNTcpOgotKyAqICMwICBzcGlu bmluZ0FsdFNpZ2hhbmRsZXIgKHNpZ25vPTE0LCBpbmZvPTB4OTU5ZWU1MCwgY29udGV4dD0weDk1 OWVlZDApIGF0IHRocmVhZGNyYXNoLmM6MTU2Ci0rICogIzEgIDxzaWduYWwgaGFuZGxlciBjYWxs ZWQ+Ci0rICogIzIgIDB4MDA2YWRmNWUgaW4gcHRocmVhZF9raWxsICgpIGZyb20gL2xpYi90bHMv bGlicHRocmVhZC5zby4wCi0rICogIzMgIDB4MDgwNDhhYzAgaW4gc3BpbkZyb21BbHRTaWdoYW5k bGVyIChpZ25vcmVkPTB4MCkgYXQgdGhyZWFkY3Jhc2guYzoyMTgKLSsgKiAjNCAgMHgwMDZhYWRl YyBpbiBzdGFydF90aHJlYWQgKCkgZnJvbSAvbGliL3Rscy9saWJwdGhyZWFkLnNvLjAKLSsgKiAj NSAgMHgwMDFlZDE5YSBpbiBjbG9uZSAoKSBmcm9tIC9saWIvdGxzL2xpYmMuc28uNgotKyAqCi0r ICogVGhyZWFkIDEgKHByb2Nlc3MgNDM1MSk6Ci0rICogIzAgIDB4MDgwNDhjZjMgaW4gbWFpbiAo YXJnYz0xLCBhcmd2PTB4YmZmZjlkNzQpIGF0IHRocmVhZGNyYXNoLmM6MjczCi0rICogKGdkYikK LSsgKi8KLSsKLSsjaW5jbHVkZSA8cHRocmVhZC5oPgotKyNpbmNsdWRlIDxzaWduYWwuaD4KLSsj aW5jbHVkZSA8YXNzZXJ0Lmg+Ci0rI2luY2x1ZGUgPHVuaXN0ZC5oPgotKyNpbmNsdWRlIDxzdGRp by5oPgotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsjaW5jbHVkZSA8c3RyaW5nLmg+Ci0rCi0rI2Rl ZmluZSBTSUdTWVNDQUxMX0FMVCBTSUdRVUlUCi0rI2RlZmluZSBTSUdTWVNDQUxMIFNJR1VTUjEK LSsjZGVmaW5lIFNJR1NQSU5fQUxUIFNJR0FMUk0KLSsjZGVmaW5lIFNJR1NQSU4gU0lHVVNSMgot KwotK3R5cGVkZWYgdm9pZCAoKnNpZ2FjdGlvbl90KShpbnQsIHNpZ2luZm9fdCAqLCB2b2lkICop OwotKwotK3N0YXRpYyB2b2lkIGluc3RhbGxIYW5kbGVyKGludCBzaWdubywgc2lnYWN0aW9uX3Qg aGFuZGxlciwgaW50IG9uQWx0c3RhY2spIHsKLSsgICBzdHJ1Y3Qgc2lnYWN0aW9uIGFjdGlvbjsK LSsgICBzaWdzZXRfdCBzaWdzZXQ7Ci0rICAgaW50IHJlc3VsdDsKLSsgICBzdGFja190IGFsdHN0 YWNrOwotKyAgIHN0YWNrX3Qgb2xkYWx0c3RhY2s7Ci0rCi0rICAgbWVtc2V0KCZhY3Rpb24sIDAs IHNpemVvZihhY3Rpb24pKTsKLSsgICBtZW1zZXQoJmFsdHN0YWNrLCAwLCBzaXplb2YoYWx0c3Rh Y2spKTsKLSsgICBtZW1zZXQoJm9sZGFsdHN0YWNrLCAwLCBzaXplb2Yob2xkYWx0c3RhY2spKTsK LSsKLSsgICBpZiAob25BbHRzdGFjaykgewotKyAgICAgIGFsdHN0YWNrLnNzX3NwID0gbWFsbG9j KFNJR1NUS1NaKTsKLSsgICAgICBhc3NlcnQoYWx0c3RhY2suc3Nfc3AgIT0gTlVMTCk7Ci0rICAg ICAgYWx0c3RhY2suc3Nfc2l6ZSA9IFNJR1NUS1NaOwotKyAgICAgIGFsdHN0YWNrLnNzX2ZsYWdz ID0gMDsKLSsgICAgICByZXN1bHQgPSBzaWdhbHRzdGFjaygmYWx0c3RhY2ssICZvbGRhbHRzdGFj ayk7Ci0rICAgICAgYXNzZXJ0KHJlc3VsdCA9PSAwKTsKLSsgICAgICBhc3NlcnQob2xkYWx0c3Rh Y2suc3NfZmxhZ3MgPT0gU1NfRElTQUJMRSk7Ci0rICAgfQotKwotKyAgIHNpZ2VtcHR5c2V0KCZz aWdzZXQpOwotKwotKyAgIGFjdGlvbi5zYV9oYW5kbGVyID0gTlVMTDsKLSsgICBhY3Rpb24uc2Ff c2lnYWN0aW9uID0gaGFuZGxlcjsKLSsgICBhY3Rpb24uc2FfbWFzayA9IHNpZ3NldDsKLSsgICBh Y3Rpb24uc2FfZmxhZ3MgPSBTQV9TSUdJTkZPOwotKyAgIGlmIChvbkFsdHN0YWNrKSB7Ci0rICAg ICAgYWN0aW9uLnNhX2ZsYWdzIHw9IFNBX09OU1RBQ0s7Ci0rICAgfQotKwotKyAgIHJlc3VsdCA9 IHNpZ2FjdGlvbihzaWdubywgJmFjdGlvbiwgTlVMTCk7Ci0rICAgYXNzZXJ0KHJlc3VsdCA9PSAw KTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQgaW5zdGFsbE5vcm1hbEhhbmRsZXIoaW50IHNpZ25vLCBz aWdhY3Rpb25fdCBoYW5kbGVyKSB7Ci0rICAgaW5zdGFsbEhhbmRsZXIoc2lnbm8sIGhhbmRsZXIs IDApOwotK30KLSsKLStzdGF0aWMgdm9pZCBpbnN0YWxsQWx0aGFuZGxlcihpbnQgc2lnbm8sIHNp Z2FjdGlvbl90IGhhbmRsZXIpIHsKLSsgICBpbnN0YWxsSGFuZGxlcihzaWdubywgaGFuZGxlciwg MSk7Ci0rfQotKwotK3N0YXRpYyB2b2lkICptYWtlU3lzY2FsbCh2b2lkICppZ25vcmVkKSB7Ci0r ICAgKHZvaWQpaWdub3JlZDsKLSsKLSsgICBzbGVlcCg0Mik7Ci0rCi0rICAgZnByaW50ZihzdGRl cnIsICIlczogcmV0dXJuaW5nXG4iLCBfX0ZVTkNUSU9OX18pOwotKyAgIHJldHVybiBOVUxMOwot K30KLSsKLSsvKiBSZXR1cm4gdHJ1ZSBpZiB3ZSdyZSBjdXJyZW50bHkgZXhlY3V0aW5nIG9uIHRo ZSBhbHRzdGFjayAqLwotK3N0YXRpYyBpbnQgb25BbHRzdGFjayh2b2lkKSB7Ci0rICAgc3RhY2tf dCBzdGFjazsKLSsgICBpbnQgcmVzdWx0OwotKwotKyAgIHJlc3VsdCA9IHNpZ2FsdHN0YWNrKE5V TEwsICZzdGFjayk7Ci0rICAgYXNzZXJ0KHJlc3VsdCA9PSAwKTsKLSsKLSsgICByZXR1cm4gc3Rh Y2suc3NfZmxhZ3MgJiBTU19PTlNUQUNLOwotK30KLSsKLStzdGF0aWMgdm9pZCBzeXNjYWxsaW5n QWx0U2lnaGFuZGxlcihpbnQgc2lnbm8sIHNpZ2luZm9fdCAqaW5mbywgdm9pZCAqY29udGV4dCkg ewotKyAgICh2b2lkKXNpZ25vOwotKyAgICh2b2lkKWluZm87Ci0rICAgKHZvaWQpY29udGV4dDsK LSsKLSsgICBpZiAoIW9uQWx0c3RhY2soKSkgewotKyAgICAgIHByaW50ZigiJXMoKSBub3QgcnVu bmluZyBvbiBhbHRzdGFjayFcbiIsIF9fRlVOQ1RJT05fXyk7Ci0rICAgfQotKwotKyAgIHNsZWVw KDQyKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQgc3Bpbm5pbmdBbHRTaWdoYW5kbGVyKGludCBzaWdu bywgc2lnaW5mb190ICppbmZvLCB2b2lkICpjb250ZXh0KSB7Ci0rICAgKHZvaWQpc2lnbm87Ci0r ICAgKHZvaWQpaW5mbzsKLSsgICAodm9pZCljb250ZXh0OwotKwotKyAgIGlmICghb25BbHRzdGFj aygpKSB7Ci0rICAgICAgcHJpbnRmKCIlcygpIG5vdCBydW5uaW5nIG9uIGFsdHN0YWNrIVxuIiwg X19GVU5DVElPTl9fKTsKLSsgICB9Ci0rCi0rICAgd2hpbGUgKDEpOwotK30KLSsKLStzdGF0aWMg dm9pZCBzeXNjYWxsaW5nU2lnaGFuZGxlcihpbnQgc2lnbm8sIHNpZ2luZm9fdCAqaW5mbywgdm9p ZCAqY29udGV4dCkgewotKyAgICh2b2lkKXNpZ25vOwotKyAgICh2b2lkKWluZm87Ci0rICAgKHZv aWQpY29udGV4dDsKLSsKLSsgICBpZiAob25BbHRzdGFjaygpKSB7Ci0rICAgICAgcHJpbnRmKCIl cygpIHJ1bm5pbmcgb24gYWx0c3RhY2shXG4iLCBfX0ZVTkNUSU9OX18pOwotKyAgIH0KLSsKLSsg ICBzbGVlcCg0Mik7Ci0rfQotKwotK3N0YXRpYyB2b2lkIHNwaW5uaW5nU2lnaGFuZGxlcihpbnQg c2lnbm8sIHNpZ2luZm9fdCAqaW5mbywgdm9pZCAqY29udGV4dCkgewotKyAgICh2b2lkKXNpZ25v OwotKyAgICh2b2lkKWluZm87Ci0rICAgKHZvaWQpY29udGV4dDsKLSsKLSsgICBpZiAob25BbHRz dGFjaygpKSB7Ci0rICAgICAgcHJpbnRmKCIlcygpIHJ1bm5pbmcgb24gYWx0c3RhY2shXG4iLCBf X0ZVTkNUSU9OX18pOwotKyAgIH0KLSsKLSsgICB3aGlsZSAoMSk7Ci0rfQotKwotK3N0YXRpYyB2 b2lkICptYWtlU3lzY2FsbEZyb21BbHRTaWdoYW5kbGVyKHZvaWQgKmlnbm9yZWQpIHsKLSsgICAo dm9pZClpZ25vcmVkOwotKwotKyAgIGludCByZXN1bHQ7Ci0rCi0rICAgaW5zdGFsbEFsdGhhbmRs ZXIoU0lHU1lTQ0FMTF9BTFQsIHN5c2NhbGxpbmdBbHRTaWdoYW5kbGVyKTsKLSsKLSsgICByZXN1 bHQgPSBwdGhyZWFkX2tpbGwocHRocmVhZF9zZWxmKCksIFNJR1NZU0NBTExfQUxUKTsKLSsgICBh c3NlcnQocmVzdWx0ID09IDApOwotKwotKyAgIGZwcmludGYoc3RkZXJyLCAiJXM6IHJldHVybmlu Z1xuIiwgX19GVU5DVElPTl9fKTsKLSsgICByZXR1cm4gTlVMTDsKLSt9Ci0rCi0rc3RhdGljIHZv aWQgKm1ha2VTeXNjYWxsRnJvbVNpZ2hhbmRsZXIodm9pZCAqaWdub3JlZCkgewotKyAgICh2b2lk KWlnbm9yZWQ7Ci0rCi0rICAgaW50IHJlc3VsdDsKLSsKLSsgICBpbnN0YWxsTm9ybWFsSGFuZGxl cihTSUdTWVNDQUxMLCBzeXNjYWxsaW5nU2lnaGFuZGxlcik7Ci0rCi0rICAgcmVzdWx0ID0gcHRo cmVhZF9raWxsKHB0aHJlYWRfc2VsZigpLCBTSUdTWVNDQUxMKTsKLSsgICBhc3NlcnQocmVzdWx0 ID09IDApOwotKwotKyAgIGZwcmludGYoc3RkZXJyLCAiJXM6IHJldHVybmluZ1xuIiwgX19GVU5D VElPTl9fKTsKLSsgICByZXR1cm4gTlVMTDsKLSt9Ci0rCi0rc3RhdGljIHZvaWQgKnNwaW5Gcm9t QWx0U2lnaGFuZGxlcih2b2lkICppZ25vcmVkKSB7Ci0rICAgKHZvaWQpaWdub3JlZDsKLSsKLSsg ICBpbnQgcmVzdWx0OwotKwotKyAgIGluc3RhbGxBbHRoYW5kbGVyKFNJR1NQSU5fQUxULCBzcGlu bmluZ0FsdFNpZ2hhbmRsZXIpOwotKwotKyAgIHJlc3VsdCA9IHB0aHJlYWRfa2lsbChwdGhyZWFk X3NlbGYoKSwgU0lHU1BJTl9BTFQpOwotKyAgIGFzc2VydChyZXN1bHQgPT0gMCk7Ci0rCi0rICAg ZnByaW50ZihzdGRlcnIsICIlczogcmV0dXJuaW5nXG4iLCBfX0ZVTkNUSU9OX18pOwotKyAgIHJl dHVybiBOVUxMOwotK30KLSsKLStzdGF0aWMgdm9pZCAqc3BpbkZyb21TaWdoYW5kbGVyKHZvaWQg Kmlnbm9yZWQpIHsKLSsgICAodm9pZClpZ25vcmVkOwotKwotKyAgIGludCByZXN1bHQ7Ci0rCi0r ICAgaW5zdGFsbE5vcm1hbEhhbmRsZXIoU0lHU1BJTiwgc3Bpbm5pbmdTaWdoYW5kbGVyKTsKLSsK LSsgICByZXN1bHQgPSBwdGhyZWFkX2tpbGwocHRocmVhZF9zZWxmKCksIFNJR1NQSU4pOwotKyAg IGFzc2VydChyZXN1bHQgPT0gMCk7Ci0rCi0rICAgZnByaW50ZihzdGRlcnIsICIlczogcmV0dXJu aW5nXG4iLCBfX0ZVTkNUSU9OX18pOwotKyAgIHJldHVybiBOVUxMOwotK30KLSsKLStzdGF0aWMg dm9pZCAqc3Bpbih2b2lkICppZ25vcmVkKSB7Ci0rICAgKHZvaWQpaWdub3JlZDsKLSsKLSsgICB3 aGlsZSAoMSk7Ci0rCi0rICAgZnByaW50ZihzdGRlcnIsICIlczogcmV0dXJuaW5nXG4iLCBfX0ZV TkNUSU9OX18pOwotKyAgIHJldHVybiBOVUxMOwotK30KLSsKLStpbnQgbWFpbihpbnQgYXJnYywg Y2hhciAqYXJndltdKSB7Ci0rICAgaW50IHJlc3VsdDsKLSsgICBwdGhyZWFkX3QgdGhyZWFkOwot KyAgIHZvbGF0aWxlIGludCBiYWQ7Ci0rCi0rICAgcmVzdWx0ID0gcHRocmVhZF9jcmVhdGUoJnRo cmVhZCwgTlVMTCwgbWFrZVN5c2NhbGwsIE5VTEwpOwotKyAgIGFzc2VydChyZXN1bHQgPT0gMCk7 Ci0rICAgcmVzdWx0ID0gcHRocmVhZF9jcmVhdGUoJnRocmVhZCwgTlVMTCwgbWFrZVN5c2NhbGxG cm9tU2lnaGFuZGxlciwgTlVMTCk7Ci0rICAgYXNzZXJ0KHJlc3VsdCA9PSAwKTsKLSsgICByZXN1 bHQgPSBwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkLCBOVUxMLCBtYWtlU3lzY2FsbEZyb21BbHRTaWdo YW5kbGVyLCBOVUxMKTsKLSsgICBhc3NlcnQocmVzdWx0ID09IDApOwotKyAgIHJlc3VsdCA9IHB0 aHJlYWRfY3JlYXRlKCZ0aHJlYWQsIE5VTEwsIHNwaW4sIE5VTEwpOwotKyAgIGFzc2VydChyZXN1 bHQgPT0gMCk7Ci0rICAgcmVzdWx0ID0gcHRocmVhZF9jcmVhdGUoJnRocmVhZCwgTlVMTCwgc3Bp bkZyb21TaWdoYW5kbGVyLCBOVUxMKTsKLSsgICBhc3NlcnQocmVzdWx0ID09IDApOwotKyAgIHJl c3VsdCA9IHB0aHJlYWRfY3JlYXRlKCZ0aHJlYWQsIE5VTEwsIHNwaW5Gcm9tQWx0U2lnaGFuZGxl ciwgTlVMTCk7Ci0rICAgYXNzZXJ0KHJlc3VsdCA9PSAwKTsKLSsKLSsgICAvLyBHaXZlIHRocmVh ZHMgc29tZSB0aW1lIHRvIGdldCBnb2luZwotKyAgIHNsZWVwKDMpOwotKwotKyAgIC8vIENyYXNo Ci0rICAgYmFkID0gKihpbnQqKTc7Ci0rCi0rICAgLyogV29ya2Fyb3VuZDogaHR0cDovL2djYy5n bnUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yOTYyOAotKyAgICAgIFNpbXVsYXRlIHVz ZSB0byBlbnN1cmUgYERXX0FUX2xvY2F0aW9uJyBmb3IgdGhlbToKLSsgICAgICByZWFkZWxmIC1h IC0tZGVidWcgdGhyZWFkY3Jhc2h8Z3JlcCAtQTUgLXcgYXJnYwotKyAgICAgIC0tPiBEV19BVF9s b2NhdGlvbiAgICA6IDIgYnl0ZSBibG9jazogNzEgMCAgICAgKERXX09QX2JyZWcxOiAwKQotKyAg ICAgIFRoaXMgY2FzZSB2ZXJpZmllZCBvbjogZ2NjLTQuMS4xLTMwLmkzODYKLSsgICAgICBLZWVw IGl0IGxhdGUgdG8gZW5zdXJlIHBlcnNpc3RlbmN5IGluIHRoZSByZWdpc3RlcnMuICAqLwotKyAg IGJhZCA9IChpbnQpIGFyZ2M7Ci0rICAgYmFkID0gKHVuc2lnbmVkIGxvbmcpIGFyZ3Y7Ci0rCi0r ICAgcmV0dXJuIDA7Ci0rfQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMv dGhyZWFkY3Jhc2guZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy90aHJlYWRjcmFzaC5l eHAKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1 aXRlL2dkYi50aHJlYWRzL3RocmVhZGNyYXNoLmV4cAotQEAgLTAsMCArMSwzNyBAQAotKyMgdGhy ZWFkY3Jhc2guZXhwIC0gVGhlIHBvaW50IG9mIHRoaXMgcHJvZ3JhbSBpcyB0byBjcmFzaCBpbiBh IG11bHRpLXRocmVhZGVkIGFwcC4KLSsKLSsKLStzZXQgdGVzdGZpbGUgdGhyZWFkY3Jhc2gKLStz ZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5jCi0rc2V0IHNoZWxsZmlsZSAke3NyY2Rpcn0vJHtzdWJk aXJ9LyR7dGVzdGZpbGV9LnNoCi0rc2V0IGJpbmZpbGUgW3N0YW5kYXJkX291dHB1dF9maWxlICR7 dGVzdGZpbGV9XQotKwotK3NldCBHREJfYWJzICR7R0RCfQotK2lmIFtyZWdleHAgIl5cW14vXF0i ICR7R0RCX2Fic31dIHsKLSsgICAgc2V0IEdEQl9hYnMgJGVudihQV0QpLyR7R0RCX2Fic30KLSt9 Ci0rCi0raWYgW2lzdGFyZ2V0ICIqLSotbGludXgiXSB0aGVuIHsKLSsgICAgc2V0IHRhcmdldF9j ZmxhZ3MgIi1EX01JVF9QT1NJWF9USFJFQURTIgotK30gZWxzZSB7Ci0rICAgIHNldCB0YXJnZXRf Y2ZsYWdzICIiCi0rfQotKwotK2lmIHtbZ2RiX2NvbXBpbGVfcHRocmVhZHMgIiR7c3JjZGlyfS8k e3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIGV4ZWN1dGFibGUge2RlYnVnfV0gIT0g IiIgfSB7Ci0rICAgIHJldHVybiAtMQotK30KLSsKLSsjICR7c2hlbGxmaWxlfSBhcmd1bWVudCBt dXN0IG5vdCBjb250YWluIGFueSBkaXJlY3Rvcmllcy4KLStzZXQgZmQgW29wZW4gInxiYXNoICR7 c2hlbGxmaWxlfSAke2JpbmZpbGV9ICRHREIgJElOVEVSTkFMX0dEQkZMQUdTICRHREJGTEFHUyBb aG9zdF9pbmZvIGdkYl9vcHRzXSIgcl0KLSt3aGlsZSB7IFtnZXRzICRmZCBsaW5lXSA+PSAwIH0g ewotKyAgICBpZiBbcmVnZXhwICIgUEFTUzogKC4qKSQiICRsaW5lIHRyYXNoIG1lc3NhZ2VdIHsK LSsJcGFzcyAkbWVzc2FnZQotKyAgICB9IGVsc2VpZiBbcmVnZXhwICIgRkFJTDogKC4qKSQiICRs aW5lIHRyYXNoIG1lc3NhZ2VdIHsKLSsJZmFpbCAkbWVzc2FnZQotKyAgICB9Ci0rfQotK2NhdGNo IHsKLSsgICAgY2xvc2UgJGZkCi0rfQotKwotK3JldHVybiAwCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rl c3RzdWl0ZS9nZGIudGhyZWFkcy90aHJlYWRjcmFzaC5zaCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnRo cmVhZHMvdGhyZWFkY3Jhc2guc2gKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci0tLS0gL2Rldi9udWxs Ci0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3RocmVhZGNyYXNoLnNoCi1AQCAtMCww ICsxLDMyNCBAQAotKyMhIC9iaW4vYmFzaAotKwotKyMgTk9URTogdGhyZWFkY3Jhc2guYyAqbXVz dCogYmUgYnVpbHQgd2l0aCBkZWJ1Z2dpbmcgc3ltYm9scwotKyMKLSsjIFRoZSBwb2ludCBvZiB0 aGlzIHNoZWxsIHNjcmlwdCBpcyB0byBjcmFzaCB0cmVhZGNyYXNoLmMsIGxvYWQgdGhlCi0rIyBy ZXN1bHRpbmcgY29yZSBmaWxlIGludG8gZ2RiIGFuZCB2ZXJpZnkgdGhhdCBnZGIgY2FuIGV4dHJh Y3QgZW5vdWdoCi0rIyBpbmZvcm1hdGlvbiBmcm9tIHRoZSBjb3JlIGZpbGUuCi0rIwotKyMgVGhl IHJldHVybiBjb2RlIGZyb20gdGhpcyBzY3JpcHQgaXMgdGhlIG51bWJlciBvZiBmYWlsZWQgdGVz dHMuCi0rCi0rTE9HPWdkYnJlc3VsdC5sb2cKLSsKLStpZiBbICQjID0gMCBdIDsgdGhlbgotKyAg ICBlY2hvID4mMiBTeW50YXg6ICQwIFw8bmFtZSBvZiB0aHJlYWRjcmFzaCBiaW5hcnlcPiBbXDxn ZGIgYmluYXJ5XD4gXDxhcmdzLi4uXD5dCi0rICAgIGV4aXQgMQotK2ZpCi0rUlVOTUU9IiQxIgot K3NoaWZ0Ci0rR0RCPSIkeyo6LWdkYn0iCi0rCi0rCi0rcGZfcHJlZml4PSIiCi0rZnVuY3Rpb24g cGZfcHJlZml4KCkgewotKwlwZl9wcmVmaXg9IiQqIgotK30KLSsKLStzZXRfdGVzdD0iIgotK2Z1 bmN0aW9uIHNldF90ZXN0KCkgewotKwlpZiBbIC1uICIkc2V0X3Rlc3QiIF0gOyB0aGVuCi0rCQll Y2hvID4mMiAiREVKQUdOVS1CQVNIIEVSUk9SOiBzZXRfdGVzdCBhbHJlYWR5IHNldCIKLSsJCWV4 aXQgMQotKwlmaQotKwlzZXRfdGVzdD0iJCoiCi0rCWlmIFsgLW4gIiRwZl9wcmVmaXgiIF0gOyB0 aGVuCi0rCQlzZXRfdGVzdD0iJHBmX3ByZWZpeDogJHNldF90ZXN0IgotKwlmaQotK30KLSsKLSsj IElOVEVSTkFMCi0rZnVuY3Rpb24gcmVjb3JkX3Rlc3QgewotKwlpZiBbIC16ICIkc2V0X3Rlc3Qi IF0gOyB0aGVuCi0rCQllY2hvID4mMiAiREVKQUdOVS1CQVNIIEVSUk9SOiBzZXRfdGVzdCBub3Qg c2V0IgotKwkJZXhpdCAxCi0rCWZpCi0rCSMgUHJvdmlkZSB0aGUgbGVhZGluZyB3aGl0ZXNwYWNl IGRlbGltaXRlcjoKLSsJZWNobyAiICQxOiAkc2V0X3Rlc3QiCi0rCXNldF90ZXN0PSIiCi0rfQot KwotK2Z1bmN0aW9uIHBhc3MoKSB7Ci0rCXJlY29yZF90ZXN0IFBBU1MKLSt9Ci0rZnVuY3Rpb24g ZmFpbCgpIHsKLSsJcmVjb3JkX3Rlc3QgRkFJTAotK30KLSsKLSsKLSsjIFZlcmlmeSB0aGF0IHRo ZSBnZGIgb3V0cHV0IGRvZXNuJ3QgY29udGFpbiAkMS4KLStmdW5jdGlvbiBtdXN0Tm90SGF2ZSgp IHsKLSsgICAgbG9jYWwgQkFEV09SRD0kMQotKyAgICBzZXRfdGVzdCBnZGIgb3V0cHV0IGNvbnRh aW5zICIkQkFEV09SRCIKLSsgICAgaWYgZ3JlcCAtcSAiJEJBRFdPUkQiICRMT0cgOyB0aGVuCi0r ICAgICAgICBmYWlsCi0rICAgICAgICByZXR1cm4gMQotKyAgICBmaQotKyAgICBwYXNzCi0rICAg IHJldHVybiAwCi0rfQotKwotKyMgVmVyaWZ5IHRoYXQgdGhlIGdkYiBvdXRwdXQgY29udGFpbnMg ZXhhY3RseSAkMSAkMnMuCi0rZnVuY3Rpb24gbXVzdEhhdmVDb3JyZWN0QW1vdW50KCkgewotKyAg ICBsb2NhbCBXQU5URUROVU1CRVI9JDEKLSsgICAgbG9jYWwgR09PRFdPUkQ9JDIKLSsgICAgbG9j YWwgQUNUVUFMTlVNQkVSPSQoZ3JlcCAiJEdPT0RXT1JEIiAkTE9HIHwgd2MgLWwpCi0rICAgIHNl dF90ZXN0IGdkYiBvdXRwdXQgY29udGFpbmVkICRBQ1RVQUxOVU1CRVIgXCIiJEdPT0RXT1JEIlwi LCBub3QgJFdBTlRFRE5VTUJFUiBhcyBleHBlY3RlZAotKyAgICBpZiBbICRBQ1RVQUxOVU1CRVIg IT0gJFdBTlRFRE5VTUJFUiBdIDsgdGhlbgotKyAgICAgICAgZmFpbAotKyAgICAgICAgcmV0dXJu IDEKLSsgICAgZmkKLSsgICAgcGFzcwotKyAgICByZXR1cm4gMAotK30KLSsKLSsjIFZlcmlmeSB0 aGF0IHRoZSBnZGIgb3V0cHV0IGNvbnRhaW5zIHNldmVuIHRocmVhZHMKLStmdW5jdGlvbiBtdXN0 SGF2ZVNldmVuVGhyZWFkcygpIHsKLSsgICAgTlRIUkVBRFM9JChlZ3JlcCAiXlRocmVhZCBbMS03 XSBcKCIgJExPRyB8IHdjIC1sKQotKyAgICBzZXRfdGVzdCBnZGIgb3V0cHV0IGNvbnRhaW5zICRO VEhSRUFEUyB0aHJlYWRzLCBub3QgNyBhcyBleHBlY3RlZAotKyAgICBpZiBbICROVEhSRUFEUyAh PSA3IF0gOyB0aGVuCi0rICAgICAgICBmYWlsCi0rICAgICAgICByZXR1cm4gMQotKyAgICBmaQot KyAgICBwYXNzCi0rICAgIHJldHVybiAwCi0rfQotKwotKyMgVmVyaWZ5IHRoYXQgdGhlIGdkYiBv dXRwdXQgaGFzIGFsbCBwYXJhbWV0ZXJzIG9uIGNvbnNlY3V0aXZlIGxpbmVzCi0rZnVuY3Rpb24g bXVzdEhhdmVTZXF1ZW5jZSgpIHsKLSsgICAgU0VRVUVOQ0U9IiQqIgotKyAgICBOUEFSVFM9JCMK LSsgICAgZ3JlcCAiJDEiIC1BJCgoTlBBUlRTIC0gMSkpICRMT0cgPiBtYXRjaGVzLmxvZwotKwot KyAgICB3aGlsZSBbICQjIC1ndCAxIF0gOyBkbwotKyAgICAgICAgc2hpZnQKLSsgICAgICAgICgo TlBBUlRTLS0pKQotKyAgICAgICAgZ3JlcCAiJDEiIC1BJCgoTlBBUlRTIC0gMSkpIG1hdGNoZXMu bG9nID4gdGVtcC5sb2cKLSsgICAgICAgIG12IHRlbXAubG9nIG1hdGNoZXMubG9nCi0rICAgIGRv bmUKLSsgICAgTEFTVFBBUlQ9JDEKLSsKLSsgICAgc2V0X3Rlc3QgZ2RiIG91dHB1dCBkb2VzIG5v dCBjb250YWluIHRoZSBzZXF1ZW5jZTogJFNFUVVFTkNFCi0rICAgIGlmICEgZ3JlcCAtcSAiJExB U1RQQVJUIiBtYXRjaGVzLmxvZyA7IHRoZW4KLSsgICAgICAgIGZhaWwKLSsgICAgICAgIHJldHVy biAxCi0rICAgIGZpCi0rICAgIHBhc3MKLSsgICAgcmV0dXJuIDAKLSt9Ci0rCi0rIyBWZXJpZnkg dGhhdCAkTE9HIGNvbnRhaW5zIGFsbCBpbmZvcm1hdGlvbiB3ZSB3YW50Ci0rZnVuY3Rpb24gdmVy aWZ5TG9nKCkgewotKyAgICBsb2NhbCBGQUlMVVJFUz0wCi0rCi0rICAgIG11c3ROb3RIYXZlICc/ PycgfHwgKChGQUlMVVJFUysrKSkKLSsgICAgbXVzdEhhdmVDb3JyZWN0QW1vdW50IDExIHRocmVh ZGNyYXNoLmM6IHx8ICgoRkFJTFVSRVMrKykpCi0rCi0rICAgIG11c3RIYXZlU2V2ZW5UaHJlYWRz IHx8ICgoRkFJTFVSRVMrKykpCi0rICAgIG11c3RIYXZlU2VxdWVuY2Ugc2xlZXAgIm1ha2VTeXNj YWxsIChpZ25vcmVkPSIgfHwgKChGQUlMVVJFUysrKSkKLSsKLSsgICAgbXVzdEhhdmVTZXF1ZW5j ZSBzbGVlcCAic3lzY2FsbGluZ1NpZ2hhbmRsZXIgKHNpZ25vPSIgInNpZ25hbCBoYW5kbGVyIGNh bGxlZCIgMHggfHwgKChGQUlMVVJFUysrKSkKLSsgICAgbXVzdEhhdmVTZXF1ZW5jZSBwdGhyZWFk X2tpbGwgIm1ha2VTeXNjYWxsRnJvbVNpZ2hhbmRsZXIgKGlnbm9yZWQ9IiB8fCAoKEZBSUxVUkVT KyspKQotKwotKyAgICBtdXN0SGF2ZVNlcXVlbmNlIHNsZWVwICJzeXNjYWxsaW5nQWx0U2lnaGFu ZGxlciAoc2lnbm89IiAic2lnbmFsIGhhbmRsZXIgY2FsbGVkIiAweCB8fCAoKEZBSUxVUkVTKysp KQotKyAgICBtdXN0SGF2ZVNlcXVlbmNlIHB0aHJlYWRfa2lsbCAibWFrZVN5c2NhbGxGcm9tQWx0 U2lnaGFuZGxlciAoaWdub3JlZD0iIHx8ICgoRkFJTFVSRVMrKykpCi0rCi0rICAgIG11c3RIYXZl U2VxdWVuY2UgVGhyZWFkICJzcGluIChpZ25vcmVkPSIgfHwgKChGQUlMVVJFUysrKSkKLSsKLSsg ICAgbXVzdEhhdmVTZXF1ZW5jZSAic3Bpbm5pbmdTaWdoYW5kbGVyIChzaWdubz0iICJzaWduYWwg aGFuZGxlciBjYWxsZWQiIDB4IHx8ICgoRkFJTFVSRVMrKykpCi0rICAgIG11c3RIYXZlU2VxdWVu Y2UgcHRocmVhZF9raWxsICJzcGluRnJvbVNpZ2hhbmRsZXIgKGlnbm9yZWQ9IiB8fCAoKEZBSUxV UkVTKyspKQotKwotKyAgICBtdXN0SGF2ZVNlcXVlbmNlICJzcGlubmluZ0FsdFNpZ2hhbmRsZXIg KHNpZ25vPSIgInNpZ25hbCBoYW5kbGVyIGNhbGxlZCIgMHggfHwgKChGQUlMVVJFUysrKSkKLSsg ICAgbXVzdEhhdmVTZXF1ZW5jZSBwdGhyZWFkX2tpbGwgInNwaW5Gcm9tQWx0U2lnaGFuZGxlciAo aWdub3JlZD0iIHx8ICgoRkFJTFVSRVMrKykpCi0rCi0rICAgIG11c3RIYXZlU2VxdWVuY2UgVGhy ZWFkICJtYWluIChhcmdjPTEsIGFyZ3Y9IiB8fCAoKEZBSUxVUkVTKyspKQotKwotKyAgICByZXR1 cm4gJEZBSUxVUkVTCi0rfQotKwotKyMgUHV0IHJlc3VsdCBvZiBkZWJ1Z2dpbmcgYSBjb3JlIGZp bGUgaW4gJExPRwotK2Z1bmN0aW9uIGdldExvZ0Zyb21Db3JlKCkgewotKyAgICAjIE1ha2Ugc3Vy ZSB3ZSBnZXQgYSBjb3JlIGZpbGUKLSsgICAgc2V0X3Rlc3QgTWFrZSBzdXJlIHdlIGdldCBhIGNv cmUgZmlsZQotKyAgICBpZiAhIHVsaW1pdCAtYyB1bmxpbWl0ZWQgOyB0aGVuCi0rICAgICAgICBm YWlsCi0rICAgICAgICBleGl0IDEKLSsgICAgZmkKLSsgICAgcGFzcwotKwotKyAgICAjIFJ1biB0 aGUgY3Jhc2hlcgotKyAgICAuLyQoYmFzZW5hbWUgIiRSVU5NRSIpCi0rICAgIEVYSVRDT0RFPSQ/ Ci0rCi0rICAgICMgVmVyaWZ5IHRoYXQgd2UgYWN0dWFsbHkgY3Jhc2hlZAotKyAgICBzZXRfdGVz dCAkUlVOTUUgc2hvdWxkIGhhdmUgYmVlbiBraWxsZWQgYnkgYSBzaWduYWwsIGdvdCBub24tc2ln bmFsIGV4aXQgY29kZSAkRVhJVENPREUKLSsgICAgaWYgWyAkRVhJVENPREUgLWx0IDEyOCBdIDsg dGhlbgotKyAgICAgICAgZmFpbAotKyAgICAgICAgZXhpdCAxCi0rICAgIGZpCi0rICAgIHBhc3MK LSsKLSsgICAgIyBWZXJpZnkgdGhhdCB3ZSBnb3QgYSBjb3JlIGZpbGUKLSsgICAgc2V0X3Rlc3Qg JFJVTk1FIGRpZCBub3QgY3JlYXRlIGEgY29yZSBmaWxlCi0rICAgIGlmIFsgISAtciBjb3JlKiBd IDsgdGhlbgotKyAgICAgICAgZmFpbAotKyAgICAgICAgZXhpdCAxCi0rICAgIGZpCi0rICAgIHBh c3MKLSsKLSsgICAgIyBSdW4gZ2RiCi0rICAgIGNhdCA+IGdkYnNjcmlwdC5nZGIgPDxFT0YKLStz ZXQgd2lkdGggMAotK3QgYSBhIGJ0IDEwMAotK3F1aXQKLStFT0YKLSsgICAgY2F0IGdkYnNjcmlw dC5nZGIgL2Rldi96ZXJvIHwgJEdEQiAtbnggIi4vJChiYXNlbmFtZSAiJFJVTk1FIikiIGNvcmUq ID4gJExPRwotKyAgICBFWElUQ09ERT0kPwotKwotKyAgICBzZXRfdGVzdCBnZGIgZXhpdGVkIHdp dGggZXJyb3IgY29kZQotKyAgICBpZiBbICRFWElUQ09ERSAhPSAwIF0gOyB0aGVuCi0rICAgICAg ICAoKEZBSUxVUkVTKyspKQotKyAgICAgICAgZWNobyA+JjIgZ2RiIGV4aXRlZCB3aXRoIGVycm9y IGNvZGUgJEVYSVRDT0RFCi0rCWZhaWwKLSsgICAgZmkKLSsgICAgcGFzcwotK30KLSsKLSsjIFB1 dCByZXN1bHQgb2YgZGVidWdnaW5nIGEgZ2NvcmUgZmlsZSBpbiAkTE9HCi0rZnVuY3Rpb24gZ2V0 TG9nRnJvbUdjb3JlKCkgewotKyAgICAjIENyZWF0ZSB0aGUgY29yZSBmaWxlCi0rICAgIHJtIC1m IGNvcmUqCi0rICAgIGNhdCA+IGdkYnNjcmlwdC5nZGIgPDxFT0YKLStoYW5kbGUgU0lHUVVJVCBw YXNzIG5vcHJpbnQgbm9zdG9wCi0raGFuZGxlIFNJR1VTUjEgcGFzcyBub3ByaW50IG5vc3RvcAot K2hhbmRsZSBTSUdVU1IyIHBhc3Mgbm9wcmludCBub3N0b3AKLStoYW5kbGUgU0lHQUxSTSBwYXNz IG5vcHJpbnQgbm9zdG9wCi0rcnVuCi0rZ2NvcmUKLStxdWl0Ci0rRU9GCi0rICAgIGNhdCBnZGJz Y3JpcHQuZ2RiIC9kZXYvemVybyB8ICRHREIgLW54ICIuLyQoYmFzZW5hbWUgIiRSVU5NRSIpIiA+ IC9kZXYvbnVsbAotKyAgICBFWElUQ09ERT0kPwotKwotKyAgICBzZXRfdGVzdCBnZGIgZXhpdGVk IHdpdGggZXJyb3IgY29kZSB3aGVuIGNyZWF0aW5nIGdjb3JlIGZpbGUKLSsgICAgaWYgWyAkRVhJ VENPREUgIT0gMCBdIDsgdGhlbgotKyAgICAgICAgKChGQUlMVVJFUysrKSkKLSsgICAgICAgIGVj aG8gPiYyIGdkYiBleGl0ZWQgd2l0aCBlcnJvciBjb2RlICRFWElUQ09ERSB3aGVuIGNyZWF0aW5n IGdjb3JlIGZpbGUKLSsJZmFpbAotKyAgICBmaQotKyAgICBwYXNzCi0rCi0rICAgICMgVmVyaWZ5 IHRoYXQgd2UgZ290IGEgY29yZSBmaWxlIGZyb20gZ2NvcmUKLSsgICAgc2V0X3Rlc3QgZ2RiIGdj b3JlIGRpZCBub3QgY3JlYXRlIGEgY29yZSBmaWxlCi0rICAgIGlmIFsgISAtciBjb3JlKiBdIDsg dGhlbgotKyAgICAgICAgZmFpbAotKyAgICAgICAgZXhpdCAxCi0rICAgIGZpCi0rICAgIHBhc3MK LSsKLSsgICAgIyBSdW4gZ2RiIG9uIHRoZSBnY29yZSBmaWxlCi0rICAgIGNhdCA+IGdkYnNjcmlw dC5nZGIgPDxFT0YKLStzZXQgd2lkdGggMAotK3QgYSBhIGJ0IDEwMAotK3F1aXQKLStFT0YKLSsg ICAgY2F0IGdkYnNjcmlwdC5nZGIgL2Rldi96ZXJvIHwgJEdEQiAtbnggIi4vJChiYXNlbmFtZSAi JFJVTk1FIikiIGNvcmUqID4gJExPRwotKyAgICBFWElUQ09ERT0kPwotKwotKyAgICBzZXRfdGVz dCBnZGIgZXhpdGVkIHdpdGggZXJyb3IgY29kZSB3aGVuIGV4YW1pbmluZyBnY29yZSBmaWxlCi0r ICAgIGlmIFsgJEVYSVRDT0RFICE9IDAgXSA7IHRoZW4KLSsgICAgICAgICgoRkFJTFVSRVMrKykp Ci0rICAgICAgICBlY2hvID4mMiBnZGIgZXhpdGVkIHdpdGggZXJyb3IgY29kZSAkRVhJVENPREUg d2hlbiBleGFtaW5pbmcgZ2NvcmUgZmlsZQotKwlmYWlsCi0rICAgIGZpCi0rICAgIHBhc3MKLSt9 Ci0rCi0rIyBQdXQgcmVzdWx0IG9mIGRlYnVnZ2luZyBhIGNvcmUgZmlsZSBpbiAkTE9HCi0rZnVu Y3Rpb24gZ2V0TG9nRnJvbUxpdmVQcm9jZXNzKCkgewotKyAgICAjIFJ1biBnZGIKLSsgICAgY2F0 ID4gZ2Ric2NyaXB0LmdkYiA8PEVPRgotK2hhbmRsZSBTSUdRVUlUIHBhc3Mgbm9wcmludCBub3N0 b3AKLStoYW5kbGUgU0lHVVNSMSBwYXNzIG5vcHJpbnQgbm9zdG9wCi0raGFuZGxlIFNJR1VTUjIg cGFzcyBub3ByaW50IG5vc3RvcAotK2hhbmRsZSBTSUdBTFJNIHBhc3Mgbm9wcmludCBub3N0b3AK LStzZXQgd2lkdGggMAotK3J1bgotK3QgYSBhIGJ0IDEwMAotK3F1aXQKLStFT0YKLSsgICAgY2F0 IGdkYnNjcmlwdC5nZGIgL2Rldi96ZXJvIHwgJEdEQiAtbnggIi4vJChiYXNlbmFtZSAiJFJVTk1F IikiID4gJExPRwotKyAgICBFWElUQ09ERT0kPwotKwotKyAgICBzZXRfdGVzdCBnZGIgZXhpdGVk IHdpdGggZXJyb3IgY29kZQotKyAgICBpZiBbICRFWElUQ09ERSAhPSAwIF0gOyB0aGVuCi0rICAg ICAgICAoKEZBSUxVUkVTKyspKQotKyAgICAgICAgZWNobyA+JjIgZ2RiIGV4aXRlZCB3aXRoIGVy cm9yIGNvZGUgJEVYSVRDT0RFCi0rCWZhaWwKLSsgICAgZmkKLSsgICAgcGFzcwotK30KLSsKLSsj IyMjIyMjIE1haW4gcHJvZ3JhbSBmb2xsb3dzICMjIyMjIyMjIyMjIyMjIyMjIyMjIwotKwotKyMg TWFrZSBzdXJlIHdlIGRvbid0IGNsb2JiZXIgYW55Ym9keSBlbHNlJ3MgKGNvcmUpIGZpbGUocykK LStXT1JLRElSPS90bXAvJFBQSUQKLStta2RpciAtcCAkV09SS0RJUgotK2NwICIkUlVOTUUiICRX T1JLRElSCi0rY2QgJFdPUktESVIKLSsKLSsjIENvdW50IHByb2JsZW1zCi0rRkFJTFVSRVM9MAot KwotK2VjaG8gPT09IFRlc3RpbmcgZ2RiIHZzIGNvcmUgZmlsZS4uLgotK3BmX3ByZWZpeCBjb3Jl IGZpbGUKLStnZXRMb2dGcm9tQ29yZQotK3ZlcmlmeUxvZwotKygoRkFJTFVSRVMrPSQ/KSkKLStw Zl9wcmVmaXgKLStlY2hvID09PSBDb3JlIGZpbGUgdGVzdHMgZG9uZS4KLSsKLStlY2hvCi0rCi0r ZWNobyA9PT0gVGVzdGluZyBnZGIgdnMgZ2NvcmUgZmlsZS4uLgotK3BmX3ByZWZpeCBnY29yZSBm aWxlCi0rZ2V0TG9nRnJvbUdjb3JlCi0rdmVyaWZ5TG9nCi0rKChGQUlMVVJFUys9JD8pKQotK3Bm X3ByZWZpeAotK2VjaG8gPT09IEdjb3JlIGZpbGUgdGVzdHMgZG9uZS4KLSsKLStlY2hvCi0rCi0r ZWNobyA9PT0gVGVzdGluZyBnZGIgdnMgbGl2ZSBwcm9jZXNzLi4uCi0rcGZfcHJlZml4IGxpdmUg cHJvY2VzcwotK2dldExvZ0Zyb21MaXZlUHJvY2VzcwotK3ZlcmlmeUxvZwotKygoRkFJTFVSRVMr PSQ/KSkKLStwZl9wcmVmaXgKLStlY2hvID09PSBMaXZlIHByb2Nlc3MgdGVzdHMgZG9uZS4KLSsK LSsjIEV4ZWN1dGl2ZSBzdW1tYXJ5Ci0rZWNobwotK2lmIFsgJEZBSUxVUkVTID09IDAgXSA7IHRo ZW4KLSsgICAgZWNobyBBbGwgdGVzdHMgcGFzc2VkIQotK2Vsc2UKLSsgICAgZWNobyAkRkFJTFVS RVMgdGVzdHMgZmFpbGVkIQotKyAgICBlY2hvCi0rICAgIGVjaG8gTWFrZSBzdXJlIHRoZSB0aHJl YWRjcmFzaCBiaW5hcnkgY29udGFpbnMgZGVidWdnaW5nIGluZm9ybWF0aW9uIFwoYnVpbGQgd2l0 aCBcImdjYyAtZ1wiXCkuCi0rZmkKLSsKLSsjIENsZWFuIHVwCi0rY2QgLwotK3JtIC1yZiAkV09S S0RJUgotKwotK2V4aXQgJEZBSUxVUkVTCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu dGhyZWFkcy90aHJlYWRjcmFzaC5zaC1vcmlnIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy90 aHJlYWRjcmFzaC5zaC1vcmlnCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotLS0tIC9kZXYvbnVsbAot KysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy90aHJlYWRjcmFzaC5zaC1vcmlnCi1AQCAt MCwwICsxLDI0OCBAQAotKyMhIC9iaW4vYmFzaAotKwotKyMgTk9URTogdGhyZWFkY3Jhc2guYyAq bXVzdCogYmUgYnVpbHQgd2l0aCBkZWJ1Z2dpbmcgc3ltYm9scwotKyMKLSsjIFRoZSBwb2ludCBv ZiB0aGlzIHNoZWxsIHNjcmlwdCBpcyB0byBjcmFzaCB0cmVhZGNyYXNoLmMsIGxvYWQgdGhlCi0r IyByZXN1bHRpbmcgY29yZSBmaWxlIGludG8gZ2RiIGFuZCB2ZXJpZnkgdGhhdCBnZGIgY2FuIGV4 dHJhY3QgZW5vdWdoCi0rIyBpbmZvcm1hdGlvbiBmcm9tIHRoZSBjb3JlIGZpbGUuCi0rIwotKyMg VGhlIHJldHVybiBjb2RlIGZyb20gdGhpcyBzY3JpcHQgaXMgdGhlIG51bWJlciBvZiBmYWlsZWQg dGVzdHMuCi0rCi0rTE9HPWdkYnJlc3VsdC5sb2cKLSsKLStpZiBbICQjICE9IDEgXSA7IHRoZW4K LSsgICAgZWNobyA+IC9kZXYvc3RkZXJyIFN5bnRheDogJDAgXDxuYW1lIG9mIHRocmVhZGNyYXNo IGJpbmFyeVw+Ci0rICAgIGV4aXQgMQotK2ZpCi0rUlVOTUU9IiQxIgotKwotKyMgVmVyaWZ5IHRo YXQgdGhlIGdkYiBvdXRwdXQgZG9lc24ndCBjb250YWluICQxLgotK2Z1bmN0aW9uIG11c3ROb3RI YXZlKCkgewotKyAgICBsb2NhbCBCQURXT1JEPSQxCi0rICAgIGlmIGdyZXAgLXEgIiRCQURXT1JE IiAkTE9HIDsgdGhlbgotKyAgICAgICAgZWNobyA+PiAvZGV2L3N0ZGVyciBXQVJOSU5HOiBnZGIg b3V0cHV0IGNvbnRhaW5zICIkQkFEV09SRCIKLSsgICAgICAgIHJldHVybiAxCi0rICAgIGZpCi0r ICAgIHJldHVybiAwCi0rfQotKwotKyMgVmVyaWZ5IHRoYXQgdGhlIGdkYiBvdXRwdXQgY29udGFp bnMgZXhhY3RseSAkMSAkMnMuCi0rZnVuY3Rpb24gbXVzdEhhdmVDb3JyZWN0QW1vdW50KCkgewot KyAgICBsb2NhbCBXQU5URUROVU1CRVI9JDEKLSsgICAgbG9jYWwgR09PRFdPUkQ9JDIKLSsgICAg bG9jYWwgQUNUVUFMTlVNQkVSPSQoZ3JlcCAiJEdPT0RXT1JEIiAkTE9HIHwgd2MgLWwpCi0rICAg IGlmIFsgJEFDVFVBTE5VTUJFUiAhPSAkV0FOVEVETlVNQkVSIF0gOyB0aGVuCi0rICAgICAgICBl Y2hvID4+IC9kZXYvc3RkZXJyIFdBUk5JTkc6IGdkYiBvdXRwdXQgY29udGFpbmVkICRBQ1RVQUxO VU1CRVIgXCIiJEdPT0RXT1JEIlwiLCBub3QgJFdBTlRFRE5VTUJFUiBhcyBleHBlY3RlZAotKyAg ICAgICAgcmV0dXJuIDEKLSsgICAgZmkKLSsgICAgcmV0dXJuIDAKLSt9Ci0rCi0rIyBWZXJpZnkg dGhhdCB0aGUgZ2RiIG91dHB1dCBjb250YWlucyBzZXZlbiB0aHJlYWRzCi0rZnVuY3Rpb24gbXVz dEhhdmVTZXZlblRocmVhZHMoKSB7Ci0rICAgIE5USFJFQURTPSQoZWdyZXAgIl5UaHJlYWQgWzEt N10gXCgiICRMT0cgfCB3YyAtbCkKLSsgICAgaWYgWyAkTlRIUkVBRFMgIT0gNyBdIDsgdGhlbgot KyAgICAgICAgZWNobyA+PiAvZGV2L3N0ZGVyciBXQVJOSU5HOiBnZGIgb3V0cHV0IGNvbnRhaW5z ICROVEhSRUFEUyB0aHJlYWRzLCBub3QgNyBhcyBleHBlY3RlZAotKyAgICAgICAgcmV0dXJuIDEK LSsgICAgZmkKLSsgICAgcmV0dXJuIDAKLSt9Ci0rCi0rIyBWZXJpZnkgdGhhdCB0aGUgZ2RiIG91 dHB1dCBoYXMgYWxsIHBhcmFtZXRlcnMgb24gY29uc2VjdXRpdmUgbGluZXMKLStmdW5jdGlvbiBt dXN0SGF2ZVNlcXVlbmNlKCkgewotKyAgICBTRVFVRU5DRT0iJCoiCi0rICAgIE5QQVJUUz0kIwot KyAgICBncmVwICIkMSIgLUEkKChOUEFSVFMgLSAxKSkgJExPRyA+IG1hdGNoZXMubG9nCi0rCi0r ICAgIHdoaWxlIFsgJCMgLWd0IDEgXSA7IGRvCi0rICAgICAgICBzaGlmdAotKyAgICAgICAgKChO UEFSVFMtLSkpCi0rICAgICAgICBncmVwICIkMSIgLUEkKChOUEFSVFMgLSAxKSkgbWF0Y2hlcy5s b2cgPiB0ZW1wLmxvZwotKyAgICAgICAgbXYgdGVtcC5sb2cgbWF0Y2hlcy5sb2cKLSsgICAgZG9u ZQotKyAgICBMQVNUUEFSVD0kMQotKwotKyAgICBpZiAhIGdyZXAgLXEgIiRMQVNUUEFSVCIgbWF0 Y2hlcy5sb2cgOyB0aGVuCi0rICAgICAgICBlY2hvID4+IC9kZXYvc3RkZXJyIFdBUk5JTkc6IGdk YiBvdXRwdXQgZG9lcyBub3QgY29udGFpbiB0aGUgc2VxdWVuY2U6ICRTRVFVRU5DRQotKyAgICAg ICAgcmV0dXJuIDEKLSsgICAgZmkKLSsgICAgcmV0dXJuIDAKLSt9Ci0rCi0rIyBWZXJpZnkgdGhh dCAkTE9HIGNvbnRhaW5zIGFsbCBpbmZvcm1hdGlvbiB3ZSB3YW50Ci0rZnVuY3Rpb24gdmVyaWZ5 TG9nKCkgewotKyAgICBsb2NhbCBGQUlMVVJFUz0wCi0rCi0rICAgIG11c3ROb3RIYXZlICc/Pycg fHwgKChGQUlMVVJFUysrKSkKLSsgICAgbXVzdEhhdmVDb3JyZWN0QW1vdW50IDEyIHRocmVhZGNy YXNoLmM6IHx8ICgoRkFJTFVSRVMrKykpCi0rCi0rICAgIG11c3RIYXZlU2V2ZW5UaHJlYWRzIHx8 ICgoRkFJTFVSRVMrKykpCi0rICAgIG11c3RIYXZlU2VxdWVuY2Ugc2xlZXAgIm1ha2VTeXNjYWxs IChpZ25vcmVkPSIgfHwgKChGQUlMVVJFUysrKSkKLSsKLSsgICAgbXVzdEhhdmVTZXF1ZW5jZSBz bGVlcCAic3lzY2FsbGluZ1NpZ2hhbmRsZXIgKHNpZ25vPSIgInNpZ25hbCBoYW5kbGVyIGNhbGxl ZCIgMHggfHwgKChGQUlMVVJFUysrKSkKLSsgICAgbXVzdEhhdmVTZXF1ZW5jZSBwdGhyZWFkX2tp bGwgIm1ha2VTeXNjYWxsRnJvbVNpZ2hhbmRsZXIgKGlnbm9yZWQ9IiB8fCAoKEZBSUxVUkVTKysp KQotKwotKyAgICBtdXN0SGF2ZVNlcXVlbmNlIHNsZWVwICJzeXNjYWxsaW5nQWx0U2lnaGFuZGxl ciAoc2lnbm89IiAic2lnbmFsIGhhbmRsZXIgY2FsbGVkIiAweCB8fCAoKEZBSUxVUkVTKyspKQot KyAgICBtdXN0SGF2ZVNlcXVlbmNlIHB0aHJlYWRfa2lsbCAibWFrZVN5c2NhbGxGcm9tQWx0U2ln aGFuZGxlciAoaWdub3JlZD0iIHx8ICgoRkFJTFVSRVMrKykpCi0rCi0rICAgIG11c3RIYXZlU2Vx dWVuY2UgVGhyZWFkICJzcGluIChpZ25vcmVkPSIgfHwgKChGQUlMVVJFUysrKSkKLSsKLSsgICAg bXVzdEhhdmVTZXF1ZW5jZSAic3Bpbm5pbmdTaWdoYW5kbGVyIChzaWdubz0iICJzaWduYWwgaGFu ZGxlciBjYWxsZWQiIDB4IHx8ICgoRkFJTFVSRVMrKykpCi0rICAgIG11c3RIYXZlU2VxdWVuY2Ug cHRocmVhZF9raWxsICJzcGluRnJvbVNpZ2hhbmRsZXIgKGlnbm9yZWQ9IiB8fCAoKEZBSUxVUkVT KyspKQotKwotKyAgICBtdXN0SGF2ZVNlcXVlbmNlICJzcGlubmluZ0FsdFNpZ2hhbmRsZXIgKHNp Z25vPSIgInNpZ25hbCBoYW5kbGVyIGNhbGxlZCIgMHggfHwgKChGQUlMVVJFUysrKSkKLSsgICAg bXVzdEhhdmVTZXF1ZW5jZSBwdGhyZWFkX2tpbGwgInNwaW5Gcm9tQWx0U2lnaGFuZGxlciAoaWdu b3JlZD0iIHx8ICgoRkFJTFVSRVMrKykpCi0rCi0rICAgIG11c3RIYXZlU2VxdWVuY2UgVGhyZWFk ICJtYWluIChhcmdjPTEsIGFyZ3Y9IiB8fCAoKEZBSUxVUkVTKyspKQotKwotKyAgICByZXR1cm4g JEZBSUxVUkVTCi0rfQotKwotKyMgUHV0IHJlc3VsdCBvZiBkZWJ1Z2dpbmcgYSBjb3JlIGZpbGUg aW4gJExPRwotK2Z1bmN0aW9uIGdldExvZ0Zyb21Db3JlKCkgewotKyAgICAjIE1ha2Ugc3VyZSB3 ZSBnZXQgYSBjb3JlIGZpbGUKLSsgICAgdWxpbWl0IC1jIHVubGltaXRlZCB8fCBleGl0IDEKLSsK LSsgICAgIyBSdW4gdGhlIGNyYXNoZXIKLSsgICAgLi8kKGJhc2VuYW1lICIkUlVOTUUiKQotKyAg ICBFWElUQ09ERT0kPwotKwotKyAgICAjIFZlcmlmeSB0aGF0IHdlIGFjdHVhbGx5IGNyYXNoZWQK LSsgICAgaWYgWyAkRVhJVENPREUgLWx0IDEyOCBdIDsgdGhlbgotKyAgICAgICAgZWNobyA+PiAv ZGV2L3N0ZGVyciBFUlJPUjogJFJVTk1FIHNob3VsZCBoYXZlIGJlZW4ga2lsbGVkIGJ5IGEgc2ln bmFsLCBnb3Qgbm9uLXNpZ25hbCBleGl0IGNvZGUgJEVYSVRDT0RFCi0rICAgICAgICBleGl0IDEK LSsgICAgZmkKLSsKLSsgICAgIyBWZXJpZnkgdGhhdCB3ZSBnb3QgYSBjb3JlIGZpbGUKLSsgICAg aWYgWyAhIC1yIGNvcmUqIF0gOyB0aGVuCi0rICAgICAgICBlY2hvID4+IC9kZXYvc3RkZXJyIEVS Uk9SOiAkUlVOTUUgZGlkIG5vdCBjcmVhdGUgYSBjb3JlIGZpbGUKLSsgICAgICAgIGV4aXQgMQot KyAgICBmaQotKwotKyAgICAjIFJ1biBnZGIKLSsgICAgY2F0ID4gZ2Ric2NyaXB0LmdkYiA8PEVP RgotK3NldCB3aWR0aCAwCi0rdCBhIGEgYnQgMTAwCi0rcXVpdAotK0VPRgotKyAgICBjYXQgZ2Ri c2NyaXB0LmdkYiAvZGV2L3plcm8gfCBnZGIgLW54ICIuLyQoYmFzZW5hbWUgIiRSVU5NRSIpIiBj b3JlKiA+ICRMT0cKLSsgICAgRVhJVENPREU9JD8KLSsKLSsgICAgaWYgWyAkRVhJVENPREUgIT0g MCBdIDsgdGhlbgotKyAgICAgICAgKChGQUlMVVJFUysrKSkKLSsgICAgICAgIGVjaG8gPj4gL2Rl di9zdGRlcnIgV0FSTklORzogZ2RiIGV4aXRlZCB3aXRoIGVycm9yIGNvZGUgJEVYSVRDT0RFCi0r ICAgIGZpCi0rfQotKwotKyMgUHV0IHJlc3VsdCBvZiBkZWJ1Z2dpbmcgYSBnY29yZSBmaWxlIGlu ICRMT0cKLStmdW5jdGlvbiBnZXRMb2dGcm9tR2NvcmUoKSB7Ci0rICAgICMgQ3JlYXRlIHRoZSBj b3JlIGZpbGUKLSsgICAgcm0gLWYgY29yZSoKLSsgICAgY2F0ID4gZ2Ric2NyaXB0LmdkYiA8PEVP RgotK2hhbmRsZSBTSUdRVUlUIHBhc3Mgbm9wcmludCBub3N0b3AKLStoYW5kbGUgU0lHVVNSMSBw YXNzIG5vcHJpbnQgbm9zdG9wCi0raGFuZGxlIFNJR1VTUjIgcGFzcyBub3ByaW50IG5vc3RvcAot K2hhbmRsZSBTSUdBTFJNIHBhc3Mgbm9wcmludCBub3N0b3AKLStydW4KLStnY29yZQotK3F1aXQK LStFT0YKLSsgICAgY2F0IGdkYnNjcmlwdC5nZGIgL2Rldi96ZXJvIHwgZ2RiIC1ueCAiLi8kKGJh c2VuYW1lICIkUlVOTUUiKSIgPiAvZGV2L251bGwKLSsgICAgRVhJVENPREU9JD8KLSsKLSsgICAg aWYgWyAkRVhJVENPREUgIT0gMCBdIDsgdGhlbgotKyAgICAgICAgKChGQUlMVVJFUysrKSkKLSsg ICAgICAgIGVjaG8gPj4gL2Rldi9zdGRlcnIgV0FSTklORzogZ2RiIGV4aXRlZCB3aXRoIGVycm9y IGNvZGUgJEVYSVRDT0RFIHdoZW4gY3JlYXRpbmcgZ2NvcmUgZmlsZQotKyAgICBmaQotKwotKyAg ICAjIFZlcmlmeSB0aGF0IHdlIGdvdCBhIGNvcmUgZmlsZSBmcm9tIGdjb3JlCi0rICAgIGlmIFsg ISAtciBjb3JlKiBdIDsgdGhlbgotKyAgICAgICAgZWNobyA+PiAvZGV2L3N0ZGVyciBFUlJPUjog Z2RiIGdjb3JlIGRpZCBub3QgY3JlYXRlIGEgY29yZSBmaWxlCi0rICAgICAgICBleGl0IDEKLSsg ICAgZmkKLSsKLSsgICAgIyBSdW4gZ2RiIG9uIHRoZSBnY29yZSBmaWxlCi0rICAgIGNhdCA+IGdk YnNjcmlwdC5nZGIgPDxFT0YKLStzZXQgd2lkdGggMAotK3QgYSBhIGJ0IDEwMAotK3F1aXQKLStF T0YKLSsgICAgY2F0IGdkYnNjcmlwdC5nZGIgL2Rldi96ZXJvIHwgZ2RiIC1ueCAiLi8kKGJhc2Vu YW1lICIkUlVOTUUiKSIgY29yZSogPiAkTE9HCi0rICAgIEVYSVRDT0RFPSQ/Ci0rCi0rICAgIGlm IFsgJEVYSVRDT0RFICE9IDAgXSA7IHRoZW4KLSsgICAgICAgICgoRkFJTFVSRVMrKykpCi0rICAg ICAgICBlY2hvID4+IC9kZXYvc3RkZXJyIFdBUk5JTkc6IGdkYiBleGl0ZWQgd2l0aCBlcnJvciBj b2RlICRFWElUQ09ERSB3aGVuIGV4YW1pbmluZyBnY29yZSBmaWxlCi0rICAgIGZpCi0rfQotKwot KyMgUHV0IHJlc3VsdCBvZiBkZWJ1Z2dpbmcgYSBjb3JlIGZpbGUgaW4gJExPRwotK2Z1bmN0aW9u IGdldExvZ0Zyb21MaXZlUHJvY2VzcygpIHsKLSsgICAgIyBSdW4gZ2RiCi0rICAgIGNhdCA+IGdk YnNjcmlwdC5nZGIgPDxFT0YKLStoYW5kbGUgU0lHUVVJVCBwYXNzIG5vcHJpbnQgbm9zdG9wCi0r aGFuZGxlIFNJR1VTUjEgcGFzcyBub3ByaW50IG5vc3RvcAotK2hhbmRsZSBTSUdVU1IyIHBhc3Mg bm9wcmludCBub3N0b3AKLStoYW5kbGUgU0lHQUxSTSBwYXNzIG5vcHJpbnQgbm9zdG9wCi0rc2V0 IHdpZHRoIDAKLStydW4KLSt0IGEgYSBidCAxMDAKLStxdWl0Ci0rRU9GCi0rICAgIGNhdCBnZGJz Y3JpcHQuZ2RiIC9kZXYvemVybyB8IGdkYiAtbnggIi4vJChiYXNlbmFtZSAiJFJVTk1FIikiID4g JExPRwotKyAgICBFWElUQ09ERT0kPwotKwotKyAgICBpZiBbICRFWElUQ09ERSAhPSAwIF0gOyB0 aGVuCi0rICAgICAgICAoKEZBSUxVUkVTKyspKQotKyAgICAgICAgZWNobyA+PiAvZGV2L3N0ZGVy ciBXQVJOSU5HOiBnZGIgZXhpdGVkIHdpdGggZXJyb3IgY29kZSAkRVhJVENPREUKLSsgICAgZmkK LSt9Ci0rCi0rIyMjIyMjIyBNYWluIHByb2dyYW0gZm9sbG93cyAjIyMjIyMjIyMjIyMjIyMjIyMj IyMKLSsKLSsjIE1ha2Ugc3VyZSB3ZSBkb24ndCBjbG9iYmVyIGFueWJvZHkgZWxzZSdzIChjb3Jl KSBmaWxlKHMpCi0rV09SS0RJUj0vdG1wLyRQUElECi0rbWtkaXIgLXAgJFdPUktESVIKLStjcCAi JFJVTk1FIiAkV09SS0RJUgotK2NkICRXT1JLRElSCi0rCi0rIyBDb3VudCBwcm9ibGVtcwotK0ZB SUxVUkVTPTAKLSsKLStlY2hvID09PSBUZXN0aW5nIGdkYiB2cyBjb3JlIGZpbGUuLi4KLStnZXRM b2dGcm9tQ29yZQotK3ZlcmlmeUxvZwotKygoRkFJTFVSRVMrPSQ/KSkKLStlY2hvID09PSBDb3Jl IGZpbGUgdGVzdHMgZG9uZS4KLSsKLStlY2hvCi0rCi0rZWNobyA9PT0gVGVzdGluZyBnZGIgdnMg Z2NvcmUgZmlsZS4uLgotK2dldExvZ0Zyb21HY29yZQotK3ZlcmlmeUxvZwotKygoRkFJTFVSRVMr PSQ/KSkKLStlY2hvID09PSBHY29yZSBmaWxlIHRlc3RzIGRvbmUuCi0rCi0rZWNobwotKwotK2Vj aG8gPT09IFRlc3RpbmcgZ2RiIHZzIGxpdmUgcHJvY2Vzcy4uLgotK2dldExvZ0Zyb21MaXZlUHJv Y2VzcwotK3ZlcmlmeUxvZwotKygoRkFJTFVSRVMrPSQ/KSkKLStlY2hvID09PSBMaXZlIHByb2Nl c3MgdGVzdHMgZG9uZS4KLSsKLSsjIEV4ZWN1dGl2ZSBzdW1tYXJ5Ci0rZWNobwotK2lmIFsgJEZB SUxVUkVTID09IDAgXSA7IHRoZW4KLSsgICAgZWNobyBBbGwgdGVzdHMgcGFzc2VkIQotK2Vsc2UK LSsgICAgZWNobyAkRkFJTFVSRVMgdGVzdHMgZmFpbGVkIQotKyAgICBlY2hvCi0rICAgIGVjaG8g TWFrZSBzdXJlIHRoZSB0aHJlYWRjcmFzaCBiaW5hcnkgY29udGFpbnMgZGVidWdnaW5nIGluZm9y bWF0aW9uIFwoYnVpbGQgd2l0aCBcImdjYyAtZ1wiXCkuCi0rZmkKLSsKLSsjIENsZWFuIHVwCi0r Y2QgLwotK3JtIC1yZiAkV09SS0RJUgotKwotK2V4aXQgJEZBSUxVUkVTCgpkaWZmIC0tZ2l0IGEv Z2RiLnNwZWMgYi9nZGIuc3BlYwppbmRleCBiMGRjMjJiLi45MWI2MjdiIDEwMDY0NAotLS0gYS9n ZGIuc3BlYworKysgYi9nZGIuc3BlYwpAQCAtMTI1MCw2ICsxMjUwLDEwIEBAIGZpCiAlZW5kaWYK IAogJWNoYW5nZWxvZworKiBUaHUgSmFuIDI1IDIwMjQgR3VpbmV2ZXJlIExhcnNlbiA8YmxhcnNl bkByZWRoYXQuY29tPgorLSBSZW1vdmUgZ2RiLTYuNS1CRUEtdGVzdHN1aXRlLnBhdGNoLCBhcyBp dCB3YXMgdXBzdHJlYW1lZCBhbmQKKyAgd2lsbCBtYWtlIGl0cyB3YXkgYmFjayB3aXRoIHRoZSBu ZXh0IHJlYmFzZS4KKwogKiBUaHUgSmFuIDI1IDIwMjQgR3VpbmV2ZXJlIExhcnNlbiA8YmxhcnNl bkByZWRoYXQuY29tPiAtIDE0LjEtNwogLSBCYWNrcG9ydCAiZ2RiOiBmaXggbGlzdCAuIHJlbGF0 ZWQgY3Jhc2giCiAK