ZGlmZiAtLWdpdCBhL3J1bnRpbWUvY29tcGlsZXIvY2hlY2tzdHlsZS52aW0gYi9ydW50aW1lL2NvbXBpbGVyL2NoZWNrc3R5bGUudmltCmluZGV4IDhkNjk2ZjAuLjc0YWIzZTQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvY29tcGlsZXIvY2hlY2tzdHlsZS52aW0KKysrIGIvcnVudGltZS9jb21waWxlci9jaGVja3N0eWxlLnZpbQpAQCAtMSw4ICsxLDggQEAKICIgVmltIGNvbXBpbGVyIGZpbGUKICIgQ29tcGlsZXI6CUNoZWNrc3R5bGUKLSIgTWFpbnRhaW5lcjoJRG91ZyBLZWFybnMgPGRqa2VhMkBtdWdjYS5pdHMubW9uYXNoLmVkdS5hdT4KLSIgVVJMOgkJaHR0cDovL211Z2NhLml0cy5tb25hc2guZWR1LmF1L35kamtlYTIvdmltL2NvbXBpbGVyL2NoZWNrc3R5bGUudmltCi0iIExhc3QgQ2hhbmdlOgkyMDA0IE1hciAyNworIiBNYWludGFpbmVyOglEb3VnIEtlYXJucyA8ZGprZWEyQGd1cy5nc2NpdC5tb25hc2guZWR1LmF1PgorIiBVUkw6CQlodHRwOi8vZ3VzLmdzY2l0Lm1vbmFzaC5lZHUuYXUvfmRqa2VhMi92aW0vY29tcGlsZXIvY2hlY2tzdHlsZS52aW0KKyIgTGFzdCBDaGFuZ2U6CTIwMDQgTm92IDI3CiAKIGlmIGV4aXN0cygiY3VycmVudF9jb21waWxlciIpCiAgIGZpbmlzaApkaWZmIC0tZ2l0IGEvcnVudGltZS9jb21waWxlci9qYXZhYy52aW0gYi9ydW50aW1lL2NvbXBpbGVyL2phdmFjLnZpbQppbmRleCAyOTZmNzY2Li4yMzRlMjhiIDEwMDY0NAotLS0gYS9ydW50aW1lL2NvbXBpbGVyL2phdmFjLnZpbQorKysgYi9ydW50aW1lL2NvbXBpbGVyL2phdmFjLnZpbQpAQCAtMSw4ICsxLDggQEAKICIgVmltIGNvbXBpbGVyIGZpbGUKICIgQ29tcGlsZXI6ICAgICBqYXZhYwotIiBNYWludGFpbmVyOiAgIERvdWcgS2Vhcm5zIDxkamtlYTJAbXVnY2EuaXRzLm1vbmFzaC5lZHUuYXU+Ci0iIFVSTDoJCWh0dHA6Ly9tdWdjYS5pdHMubW9uYXNoLmVkdS5hdS9+ZGprZWEyL3ZpbS9jb21waWxlci9qYXZhYy52aW0KLSIgTGFzdCBDaGFuZ2U6ICAyMDA0IEFwciAxNQorIiBNYWludGFpbmVyOiAgIERvdWcgS2Vhcm5zIDxkamtlYTJAZ3VzLmdzY2l0Lm1vbmFzaC5lZHUuYXU+CisiIFVSTDoJCWh0dHA6Ly9ndXMuZ3NjaXQubW9uYXNoLmVkdS5hdS9+ZGprZWEyL3ZpbS9jb21waWxlci9qYXZhYy52aW0KKyIgTGFzdCBDaGFuZ2U6ICAyMDA0IE5vdiAyNwogCiBpZiBleGlzdHMoImN1cnJlbnRfY29tcGlsZXIiKQogICBmaW5pc2gKZGlmZiAtLWdpdCBhL3J1bnRpbWUvY29tcGlsZXIvcGhwLnZpbSBiL3J1bnRpbWUvY29tcGlsZXIvcGhwLnZpbQppbmRleCA1ZGFkMjcxLi4yZjRmMDMyIDEwMDY0NAotLS0gYS9ydW50aW1lL2NvbXBpbGVyL3BocC52aW0KKysrIGIvcnVudGltZS9jb21waWxlci9waHAudmltCkBAIC0xLDggKzEsOCBAQAogIiBWaW0gY29tcGlsZXIgZmlsZQogIiBDb21waWxlcjoJUEhQCi0iIE1haW50YWluZXI6CURvdWcgS2Vhcm5zIDxkamtlYTJAbXVnY2EuaXRzLm1vbmFzaC5lZHUuYXU+Ci0iIFVSTDoJCWh0dHA6Ly9tdWdjYS5pdHMubW9uYXNoLmVkdS5hdS9+ZGprZWEyL3ZpbS9jb21waWxlci9waHAudmltCi0iIExhc3QgQ2hhbmdlOgkyMDA0IFNlcCAwNQorIiBNYWludGFpbmVyOglEb3VnIEtlYXJucyA8ZGprZWEyQGd1cy5nc2NpdC5tb25hc2guZWR1LmF1PgorIiBVUkw6CQlodHRwOi8vZ3VzLmdzY2l0Lm1vbmFzaC5lZHUuYXUvfmRqa2VhMi92aW0vY29tcGlsZXIvcGhwLnZpbQorIiBMYXN0IENoYW5nZToJMjAwNCBOb3YgMjcKIAogaWYgZXhpc3RzKCJjdXJyZW50X2NvbXBpbGVyIikKICAgZmluaXNoCmRpZmYgLS1naXQgYS9ydW50aW1lL2NvbXBpbGVyL3J1YnkudmltIGIvcnVudGltZS9jb21waWxlci9ydWJ5LnZpbQppbmRleCBmMTI0ZWQzLi5iZmI4MzcwIDEwMDY0NAotLS0gYS9ydW50aW1lL2NvbXBpbGVyL3J1YnkudmltCisrKyBiL3J1bnRpbWUvY29tcGlsZXIvcnVieS52aW0KQEAgLTEwLDcgKzEwLDcgQEAKICIKICIgQ29udHJpYnV0b3JzOgogIiAgIEh1Z2ggU2Fzc2UgPGhnc0BkbXUuYWMudWs+Ci0iICAgRG91ZyBLZWFybnMgPGRqa2VhMkBtdWdjYS5pdHMubW9uYXNoLmVkdS5hdT4KKyIgICBEb3VnIEtlYXJucyA8ZGprZWEyQGd1cy5nc2NpdC5tb25hc2guZWR1LmF1PgogIgogIiBUb2RvOgogIiAgIG1hdGNoIGVycm9yIHR5cGUgJW0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvY29tcGlsZXIvc2UudmltIGIvcnVudGltZS9jb21waWxlci9zZS52aW0KaW5kZXggYWMwYWFiOC4uZmJmYTYyZCAxMDA2NDQKLS0tIGEvcnVudGltZS9jb21waWxlci9zZS52aW0KKysrIGIvcnVudGltZS9jb21waWxlci9zZS52aW0KQEAgLTEsOCArMSw4IEBACiAiIFZpbSBjb21waWxlciBmaWxlCiAiIENvbXBpbGVyOglzZSAoU21hcnRFaWZmZWwgQ29tcGlsZXIpCi0iIE1haW50YWluZXI6CURvdWcgS2Vhcm5zIDxkamtlYTJAbXVnY2EuaXRzLm1vbmFzaC5lZHUuYXU+Ci0iIFVSTDoJCWh0dHA6Ly9tdWdjYS5pdHMubW9uYXNoLmVkdS5hdS9+ZGprZWEyL3ZpbS9jb21waWxlci9zZS52aW0KLSIgTGFzdCBDaGFuZ2U6CTIwMDQgTWF5IDE2CisiIE1haW50YWluZXI6CURvdWcgS2Vhcm5zIDxkamtlYTJAZ3VzLmdzY2l0Lm1vbmFzaC5lZHUuYXU+CisiIFVSTDoJCWh0dHA6Ly9ndXMuZ3NjaXQubW9uYXNoLmVkdS5hdS9+ZGprZWEyL3ZpbS9jb21waWxlci9zZS52aW0KKyIgTGFzdCBDaGFuZ2U6CTIwMDQgTm92IDI3CiAKIGlmIGV4aXN0cygiY3VycmVudF9jb21waWxlciIpCiAgIGZpbmlzaApkaWZmIC0tZ2l0IGEvcnVudGltZS9jb21waWxlci90Y2wudmltIGIvcnVudGltZS9jb21waWxlci90Y2wudmltCmluZGV4IDc2ZDNlZGYuLjhiZDZkZTYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvY29tcGlsZXIvdGNsLnZpbQorKysgYi9ydW50aW1lL2NvbXBpbGVyL3RjbC52aW0KQEAgLTEsOCArMSw4IEBACiAiIFZpbSBjb21waWxlciBmaWxlCiAiIENvbXBpbGVyOgl0Y2wKLSIgTWFpbnRhaW5lcjoJRG91ZyBLZWFybnMgPGRqa2VhMkBtdWdjYS5pdHMubW9uYXNoLmVkdS5hdT4KLSIgVVJMOgkJaHR0cDovL211Z2NhLml0cy5tb25hc2guZWR1LmF1L35kamtlYTIvdmltL2NvbXBpbGVyL3RjbC52aW0KLSIgTGFzdCBDaGFuZ2U6CTIwMDQgTWFyIDI3CisiIE1haW50YWluZXI6CURvdWcgS2Vhcm5zIDxkamtlYTJAZ3VzLmdzY2l0Lm1vbmFzaC5lZHUuYXU+CisiIFVSTDoJCWh0dHA6Ly9ndXMuZ3NjaXQubW9uYXNoLmVkdS5hdS9+ZGprZWEyL3ZpbS9jb21waWxlci90Y2wudmltCisiIExhc3QgQ2hhbmdlOgkyMDA0IE5vdiAyNwogCiBpZiBleGlzdHMoImN1cnJlbnRfY29tcGlsZXIiKQogICBmaW5pc2gKZGlmZiAtLWdpdCBhL3J1bnRpbWUvY29tcGlsZXIvdGlkeS52aW0gYi9ydW50aW1lL2NvbXBpbGVyL3RpZHkudmltCmluZGV4IDM2NDE2ZWIuLjUyYmM1MjYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvY29tcGlsZXIvdGlkeS52aW0KKysrIGIvcnVudGltZS9jb21waWxlci90aWR5LnZpbQpAQCAtMSw4ICsxLDggQEAKICIgVmltIGNvbXBpbGVyIGZpbGUKICIgQ29tcGlsZXI6CUhUTUwgVGlkeQotIiBNYWludGFpbmVyOglEb3VnIEtlYXJucyA8ZGprZWEyQG11Z2NhLml0cy5tb25hc2guZWR1LmF1PgotIiBVUkw6CQlodHRwOi8vbXVnY2EuaXRzLm1vbmFzaC5lZHUuYXUvfmRqa2VhMi92aW0vY29tcGlsZXIvdGlkeS52aW0KLSIgTGFzdCBDaGFuZ2U6CTIwMDQgTWFyIDI3CisiIE1haW50YWluZXI6CURvdWcgS2Vhcm5zIDxkamtlYTJAZ3VzLmdzY2l0Lm1vbmFzaC5lZHUuYXU+CisiIFVSTDoJCWh0dHA6Ly9ndXMuZ3NjaXQubW9uYXNoLmVkdS5hdS9+ZGprZWEyL3ZpbS9jb21waWxlci90aWR5LnZpbQorIiBMYXN0IENoYW5nZToJMjAwNCBOb3YgMjcKIAogIiBOT1RFOiBzZXQgJ3RpZHlfY29tcGlsZXJfMDQwODAwJyBpZiB5b3UgYXJlIHVzaW5nIHRoZSA0dGggQXVndXN0IDIwMDAgcmVsZWFzZQogIiAgICAgICBvZiBIVE1MIFRpZHkuCmRpZmYgLS1naXQgYS9ydW50aW1lL2NvbXBpbGVyL3htbGxpbnQudmltIGIvcnVudGltZS9jb21waWxlci94bWxsaW50LnZpbQppbmRleCBiNzExMGM3Li44ZmRlNGUxIDEwMDY0NAotLS0gYS9ydW50aW1lL2NvbXBpbGVyL3htbGxpbnQudmltCisrKyBiL3J1bnRpbWUvY29tcGlsZXIveG1sbGludC52aW0KQEAgLTEsOCArMSw4IEBACiAiIFZpbSBjb21waWxlciBmaWxlCiAiIENvbXBpbGVyOgl4bWxsaW50Ci0iIE1haW50YWluZXI6CURvdWcgS2Vhcm5zIDxkamtlYTJAbXVnY2EuaXRzLm1vbmFzaC5lZHUuYXU+Ci0iIFVSTDoJCWh0dHA6Ly9tdWdjYS5pdHMubW9uYXNoLmVkdS5hdS9+ZGprZWEyL3ZpbS9jb21waWxlci94bWxsaW50LnZpbQotIiBMYXN0IENoYW5nZToJMjAwNCBNYXIgMjcKKyIgTWFpbnRhaW5lcjoJRG91ZyBLZWFybnMgPGRqa2VhMkBndXMuZ3NjaXQubW9uYXNoLmVkdS5hdT4KKyIgVVJMOgkJaHR0cDovL2d1cy5nc2NpdC5tb25hc2guZWR1LmF1L35kamtlYTIvdmltL2NvbXBpbGVyL3htbGxpbnQudmltCisiIExhc3QgQ2hhbmdlOgkyMDA0IE5vdiAyNwogCiBpZiBleGlzdHMoImN1cnJlbnRfY29tcGlsZXIiKQogICBmaW5pc2gKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL01ha2VmaWxlIGIvcnVudGltZS9kb2MvTWFrZWZpbGUKaW5kZXggOGRhNTkyYy4uOTRiZjgwNSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvTWFrZWZpbGUKKysrIGIvcnVudGltZS9kb2MvTWFrZWZpbGUKQEAgLTM2LDYgKzM2LDcgQEAKIAloZWxwLnR4dCBcCiAJaG93dG8udHh0IFwKIAlpZl9jc2NvcC50eHQgXAorCWlmX216c2NoLnR4dCBcCiAJaWZfb2xlLnR4dCBcCiAJaWZfcGVybC50eHQgXAogCWlmX3B5dGgudHh0IFwKQEAgLTE1Niw2ICsxNTcsNyBAQAogCWhlbHAuaHRtbCBcCiAJaG93dG8uaHRtbCBcCiAJaWZfY3Njb3AuaHRtbCBcCisJaWZfbXpzY2guaHRtbCBcCiAJaWZfb2xlLmh0bWwgXAogCWlmX3BlcmwuaHRtbCBcCiAJaWZfcHl0aC5odG1sIFwKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2NoYW5nZS50eHQgYi9ydW50aW1lL2RvYy9jaGFuZ2UudHh0CmluZGV4IDRmMzcxZjkuLjVlNDVlYzcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2NoYW5nZS50eHQKKysrIGIvcnVudGltZS9kb2MvY2hhbmdlLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpjaGFuZ2UudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBPY3QgMTEKKypjaGFuZ2UudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBOb3YgMzAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTM1MCwyMyArMzUwLDI0IEBACiBUaGUgQ1RSTC1BIGFuZCBDVFJMLVggY29tbWFuZHMgd29yayBmb3IgKHNpZ25lZCkgZGVjaW1hbCBudW1iZXJzLCB1bnNpZ25lZAogb2N0YWwgYW5kIGhleGFkZWNpbWFsIG51bWJlcnMgYW5kIGFscGhhYmV0aWMgY2hhcmFjdGVycy4gIFRoaXMgZGVwZW5kcyBvbiB0aGUKICducmZvcm1hdHMnIG9wdGlvbi4KLS0gV2hlbiAnbnJmb3JtYXRzJyBpbmNsdWRlcyAiYWxwaGEiLCBWaW0gd2lsbCBjaGFuZ2UgdGhlIGFscGhhYmV0aWMgY2hhcmFjdGVyCi0gIHVuZGVyIG9yIGFmdGVyIHRoZSBjdXJzb3IuICBUaGlzIGlzIHVzZWZ1bCB0byBtYWtlIGxpc3RzIHdpdGggYW4gYWxwaGFiZXRpYwotICBpbmRleC4KLS0gV2hlbiAnbnJmb3JtYXRzJyBpbmNsdWRlcyAiaGV4IiwgVmltIGFzc3VtZXMgbnVtYmVycyBzdGFydGluZyB3aXRoICcweCcgb3IKLSAgJzBYJyBhcmUgaGV4YWRlY2ltYWwuICBUaGUgY2FzZSBvZiB0aGUgcmlnaHRtb3N0IGxldHRlciBpbiB0aGUgbnVtYmVyCi0gIGRldGVybWluZXMgdGhlIGNhc2Ugb2YgdGhlIHJlc3VsdGluZyBoZXhhZGVjaW1hbCBudW1iZXIuICBJZiB0aGVyZSBpcyBubwotICBsZXR0ZXIgaW4gdGhlIGN1cnJlbnQgbnVtYmVyLCBWaW0gdXNlcyB0aGUgcHJldmlvdXNseSBkZXRlY3RlZCBjYXNlLgogLSBXaGVuICducmZvcm1hdHMnIGluY2x1ZGVzICJvY3RhbCIsIFZpbSBjb25zaWRlcnMgbnVtYmVycyBzdGFydGluZyB3aXRoIGEgJzAnCiAgIHRvIGJlIG9jdGFsLiAgT3RoZXIgbnVtYmVycyBhcmUgZGVjaW1hbCBhbmQgbWF5IGhhdmUgYSBwcmVjZWRpbmcgbWludXMgc2lnbi4KICAgSWYgdGhlIGN1cnNvciBpcyBvbiBhIG51bWJlciwgdGhlIGNvbW1hbmRzIGFwcGx5IHRvIHRoYXQgbnVtYmVyOyBvdGhlcndpc2UKICAgVmltIHVzZXMgdGhlIG51bWJlciB0byB0aGUgcmlnaHQgb2YgdGhlIGN1cnNvci4KKy0gV2hlbiAnbnJmb3JtYXRzJyBpbmNsdWRlcyAiaGV4IiwgVmltIGFzc3VtZXMgbnVtYmVycyBzdGFydGluZyB3aXRoICcweCcgb3IKKyAgJzBYJyBhcmUgaGV4YWRlY2ltYWwuICBUaGUgY2FzZSBvZiB0aGUgcmlnaHRtb3N0IGxldHRlciBpbiB0aGUgbnVtYmVyCisgIGRldGVybWluZXMgdGhlIGNhc2Ugb2YgdGhlIHJlc3VsdGluZyBoZXhhZGVjaW1hbCBudW1iZXIuICBJZiB0aGVyZSBpcyBubworICBsZXR0ZXIgaW4gdGhlIGN1cnJlbnQgbnVtYmVyLCBWaW0gdXNlcyB0aGUgcHJldmlvdXNseSBkZXRlY3RlZCBjYXNlLgorLSBXaGVuICducmZvcm1hdHMnIGluY2x1ZGVzICJhbHBoYSIsIFZpbSB3aWxsIGNoYW5nZSB0aGUgYWxwaGFiZXRpYyBjaGFyYWN0ZXIKKyAgdW5kZXIgb3IgYWZ0ZXIgdGhlIGN1cnNvci4gIFRoaXMgaXMgdXNlZnVsIHRvIG1ha2UgbGlzdHMgd2l0aCBhbiBhbHBoYWJldGljCisgIGluZGV4LgogCiBGb3IgbnVtYmVycyB3aXRoIGxlYWRpbmcgemVyb3MgKGluY2x1ZGluZyBhbGwgb2N0YWwgYW5kIGhleGFkZWNpbWFsIG51bWJlcnMpLAogVmltIHByZXNlcnZlcyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gdGhlIG51bWJlciB3aGVuIHBvc3NpYmxlLiAgQ1RSTC1BIG9uCi0iMDA3NyIgcmVzdWx0cyBpbiAiMDEwMCIsIENUUkwtWCBvbiAiMHgxMDAiIHJlc3VsdHMgaW4gIjB4MGZmIi4gIE5vdGUgdGhhdAotd2hlbiAnbnJmb3JtYXRzJyBpbmNsdWRlcyAib2N0YWwiLCBkZWNpbWFsIG51bWJlcnMgd2l0aCBsZWFkaW5nIHplcm9zIGFyZQotaW1wb3NzaWJsZSBiZWNhdXNlIHRoZXkgYXJlIGluZGlzdGluZ3Vpc2hhYmxlIGZyb20gb2N0YWwgbnVtYmVycy4KKyIwMDc3IiByZXN1bHRzIGluICIwMTAwIiwgQ1RSTC1YIG9uICIweDEwMCIgcmVzdWx0cyBpbiAiMHgwZmYiLgorCitOb3RlIHRoYXQgd2hlbiAnbnJmb3JtYXRzJyBpbmNsdWRlcyAib2N0YWwiLCBkZWNpbWFsIG51bWJlcnMgd2l0aCBsZWFkaW5nCit6ZXJvcyBhcmUgaW1wb3NzaWJsZSBiZWNhdXNlIHRoZXkgYXJlIGluZGlzdGluZ3Vpc2hhYmxlIGZyb20gb2N0YWwgbnVtYmVycy4KIAogVGhlIENUUkwtQSBjb21tYW5kIGlzIHZlcnkgdXNlZnVsIGluIGEgbWFjcm8uICBFeGFtcGxlOiBVc2UgdGhlIGZvbGxvd2luZwogc3RlcHMgdG8gbWFrZSBhIG51bWJlcmVkIGxpc3QuCkBAIC04NjMsOCArODY0LDEwIEBACiAJCQkJCQkJKjxNaWRkbGVNb3VzZT4qCiBbInhdPE1pZGRsZU1vdXNlPglQdXQgdGhlIHRleHQgZnJvbSBhIHJlZ2lzdGVyIGJlZm9yZSB0aGUgY3Vyc29yIFtjb3VudF0KIAkJCXRpbWVzLiAgVXNlcyB0aGUgIiogcmVnaXN0ZXIsIHVubGVzcyBhbm90aGVyIGlzCi0JCQlzcGVjaWZpZWQuICBVc2luZyB0aGUgbW91c2Ugb25seSB3b3JrcyB3aGVuICdtb3VzZScKLQkJCWNvbnRhaW5zICduJyBvciAnYScuCisJCQlzcGVjaWZpZWQuICAKKwkJCUxlYXZlcyB0aGUgY3Vyc29yIGF0IHRoZSBlbmQgb2YgdGhlIG5ldyB0ZXh0LgorCQkJVXNpbmcgdGhlIG1vdXNlIG9ubHkgd29ya3Mgd2hlbiAnbW91c2UnIGNvbnRhaW5zICduJworCQkJb3IgJ2EnLgogCQkJe25vdCBpbiBWaX0KIAkJCUlmIHlvdSBoYXZlIGEgc2Nyb2xsd2hlZWwgYW5kIG9mdGVuIGFjY2lkZW50YWxseSBwYXN0ZQogCQkJdGV4dCwgeW91IGNhbiB1c2UgdGhlc2UgbWFwcGluZ3MgdG8gZGlzYWJsZSB0aGUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2V2aW0taXQuMSBiL3J1bnRpbWUvZG9jL2V2aW0taXQuMQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NDRmNzkzCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9kb2MvZXZpbS1pdC4xCkBAIC0wLDAgKzEsNTQgQEAKKy5USCBFVklNIDEgIjE2IGZlYmJyYWlvIDIwMDIgIgorLlNIIE5PTUUKK2V2aW0gXC0gVmltICJmYWNpbGUiLCBWaW0gaW1wb3N0YXRvIGluIG1vZG8gZGEgcG90ZXIgZXNzZXJlIHVzYXRvCitmYWNpbG1lbnRlIHBlciBtb2RpZmljYXJlIGZpbGUsIGFuY2hlIGRhIGNoaSBub24gYWJiaWEgZmFtaWxpYXJpdOAKK2NvbiBpIGNvbWFuZGkuCisuU0ggU0lOVEFTU0kKKy5icgorLkIgZXZpbQorW29wemlvbmldIFtmaWxlIC4uXQorLmJyCisuQiBldmlldworLlNIIERFU0NSSVpJT05FCisuQiBldmltCitJbml6aWEKKy5CIFZpbQorZSBpbXBvc3RhIGxlIG9wemlvbmkgcGVyIGZhcmxvIGNvbXBvcnRhcmUgY29tZSB1biBlZGl0b3JlICJtb2RlbGVzcyIuCitTdGF0ZSBzZW1wcmUgdXNhbmRvIFZpbSwgbWEgY29tZSB1biBlZGl0b3JlICJwb3NpemlvbmF0aS1lLWNsaWNjYSIuCitTaW1pbGUgYWxsJ3VzbyBkaSBOb3RlcGFkIGluIE1TLVdpbmRvd3MuCisuQiBldmltCityaWNoaWVkZSBsYSBwcmVzZW56YSBkZWxsYSBHVUksIHBlciBhdmVyZSBhIGRpc3Bvc2l6aW9uZSBtZW51IGUgYmFycmEKK3N0cnVtZW50aS4KKy5QUAorRGEgdXNhcnNpIHNvbG8gZGEgcGFydGUgZGkgY2hpIG5vbiDoIGluIGdyYWRvIGRpIGxhdm9yYXJlIGNvbiBWaW0gbmVsbGEKK21hbmllcmEgdXN1YWxlLgorTGEgbW9kaWZpY2EgZmlsZSBzYXLgIG1vbHRvIG1lbm8gZWZmaWNpZW50ZS4KKy5QUAorLkIgZXZpZXcKK2NvbWUgc29wcmEsIG1hIHBhcnRlIGluIG1vZGFsaXTgICJTb2xhIExldHR1cmEiLiAgRnVuemlvbmEgY29tZSBldmltIC1SLgorLlBQCitWZWRlcmUgdmltKDEpIHBlciBkZXR0YWdsaSByaWd1YXJkbyBhIFZpbSwgb3B6aW9uaSwgZXRjLgorLlBQCitMJ29wemlvbmUgJ2luc2VydG1vZGUnIOggaW1wb3N0YXRhIHBlciBwb3RlciBpbW1ldHRlcmUgZGVsIHRlc3RvIGRpcmV0dGFtZW50ZS4KKy5icgorU29ubyBkZWZpbml0ZSBkZWxsZSBtYXBwYXR1cmUgY2hlIGNvbnNlbnRvbm8gZGkgdXNhcmUgQ09QSUEgZSBJTkNPTExBIGNvbiBpCitmYW1pbGlhcmkgdGFzdGkgdXNhdGkgc290dG8gTVMtV2luZG93cy4KK0NUUkwtWCB0YWdsaWEgdGVzdG8sIENUUkwtQyBjb3BpYSB0ZXN0byBlIENUUkwtViBpbmNvbGxhIHRlc3RvLgorVXNhdGUgQ1RSTC1RIHBlciBvdHRlbmVyZSBxdWVsbG8gY2hzIHNpIG90dGllcnJlYmJlIGNvbiBDVFJMLVYgaW4gVmltIG5hdGl2by4KKy5TSCBPUFpJT05JCitWZWRlcmUgdmltKDEpLgorLlNIIEZJTEUKKy5UUCAxNQorL3Vzci9sb2NhbC9saWIvdmltL2V2aW0udmltCitMbyBzY3JpcHQgY2FyaWNhdG8gcGVyIGluaXppYWxpenphcmUgZVZpbS4KKy5TSCBOQUMgW05PVE8gQU5DSEUgQ09NRV0KK05vdG8gQW5jaGUgQ29tZSAiVmltIHBlciBzZW1wbGljaSIuCitRdWFuZG8gdXNhdGUgZXZpbSBzaSBzdXBwb25lIGNoZSBwcmVuZGlhdGUgdW4gZmF6em9sZXR0bywKK2ZhY2NpYXRlIHVuIG5vZG8gYWQgb2duaSBhbmdvbG8gZSB2ZSBsbyBtZXR0aWF0ZSBpbiB0ZXN0YS4KKy5TSCBWRURFUkUgQU5DSEUKK3ZpbSgxKQorLlNIIEFVVE9SRQorQnVvbmEgcGFydGUgZGkKKy5CIFZpbQor6CBzdGF0byBzY3JpdHRvIGRhIEJyYW0gTW9vbGVuYWFyLCBjb24gbW9sdG8gYWl1dG8gZGEgYWx0cmkuCitWZWRlcmUgaWwgTWVudSAiQWl1dG8vQ3JlZGl0aSIuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pZl9vbGUudHh0IGIvcnVudGltZS9kb2MvaWZfb2xlLnR4dAppbmRleCA5Y2VkMzRlLi4wNmU1YjQyIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pZl9vbGUudHh0CisrKyBiL3J1bnRpbWUvZG9jL2lmX29sZS50eHQKQEAgLTEsNCArMSw0IEBACi0qaWZfb2xlLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDMgSnVuIDE5CisqaWZfb2xlLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgRGVjIDA5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IFBhdWwgTW9vcmUKQEAgLTE1OCw1ICsxNTgsNDEgQEAKIHRoZSBPTEUgdmVyc2lvbi4gIFRoZSBkb2N1bWVudGF0aW9uIGNhbiBiZSBmb3VuZCBpbiB0aGUgcnVudGltZSBkaXJlY3RvcnksIHRoZQogUkVBRE1FX1Zpc1ZpbS50eHQgZmlsZS4KIAorCitVc2luZyBWaW0gd2l0aCBWaXN1YWwgU3R1ZGlvIC5OZXR+CisKK1dpdGggLk5ldCB5b3Ugbm8gbG9uZ2VyIHJlYWxseSBuZWVkIFZpc1ZpbSwgc2luY2UgLk5ldCBzdHVkaW8gaGFzIHN1cHBvcnQgZm9yCitleHRlcm5hbCBlZGl0b3JzLiAgRm9sbG93IHRoZXNlIGRpcmVjdGlvbnM6CisKK0luIC5OZXQgU3R1ZGlvIGNob29zZSBmcm9tIHRoZSBtZW51IFRvb2xzLT5FeHRlcm5hbCBUb29scy4uLgorQWRkCisgICAgIFRpdGxlICAgICAtIFZpbQorICAgICBDb21tYW5kICAgLSBjOlx2aW1cdmltNjNcZ3ZpbS5leGUKKyAgICAgQXJndW1lbnRzIC0gLS1zZXJ2ZXJuYW1lIFZTX05FVCAtLXJlbW90ZS1zaWxlbnQgIitjYWxsIGN1cnNvcigkKEN1ckxpbmUpLCAkKEN1ckNvbCkpIiAkKEl0ZW1QYXRoKSAgCisgICAgIEluaXQgRGlyICAtIEVtcHR5CisKK05vdywgd2hlbiB5b3Ugb3BlbiBhIGZpbGUgaW4gLk5ldCwgeW91IGNhbiBjaG9vc2UgZnJvbSB0aGUgLk5ldCBtZW51OgorVG9vbHMtPlZpbQorCitUaGF0IHdpbGwgb3BlbiB0aGUgZmlsZSBpbiBWaW0uCitZb3UgY2FuIHRoZW4gYWRkIHRoaXMgZXh0ZXJuYWwgY29tbWFuZCBhcyBhbiBpY29uIGFuZCBwbGFjZSBpdCBhbnl3aGVyZSB5b3UKK2xpa2UuICBZb3UgbWlnaHQgYWxzbyBiZSBhYmxlIHRvIHNldCB0aGlzIGFzIHlvdXIgZGVmYXVsdCBlZGl0b3IuCisKK0lmIHlvdSByZWZpbmUgdGhpcyBmdXJ0aGVyLCBwbGVhc2UgcG9zdCBiYWNrIHRvIHRoZSBWaW0gbWFpbGxpc3Qgc28gd2UgaGF2ZSBhCityZWNvcmQgb2YgaXQuCisKKy0tc2VydmVybmFtZSBWU19ORVQgCitUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGluc3RhbmNlIG9mIHZpbSBjYWxsZWQgVlNfTkVULiAgU28gaWYgeW91IG9wZW4gbXVsdGlwbGUKK2ZpbGVzIGZyb20gVlMsIHRoZXkgd2lsbCB1c2UgdGhlIHNhbWUgaW5zdGFuY2Ugb2YgVmltLiAgVGhpcyBhbGxvd3MgeW91IHRvCitoYXZlIG11bHRpcGxlIGNvcGllcyBvZiBWaW0gcnVubmluZywgYnV0IHlvdSBjYW4gY29udHJvbCB3aGljaCBvbmUgaGFzIFZTCitmaWxlcyBpbiBpdC4KKworLS1yZW1vdGUtc2lsZW50ICIrY2FsbCBjdXJzb3IoMTAsIDI3KSIgCisgICAgICAgICAgICAgIC0gUGxhY2VzIHRoZSBjdXJzb3Igb24gbGluZSAxMCBjb2x1bW4gMjcKK0luIFZpbSA+CisgICA6aCAtLXJlbW90ZS1zaWxlbnQgZm9yIG1vciBkZXRhaWxzCisKK1suTmV0IHJlbWFya3MgcHJvdmlkZWQgYnkgRGF2ZSBGaXNoYnVybiBhbmQgQnJpYW4gU3R1cmtdCisKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogIHZpbTp0dz03ODp0cz04OmZ0PWhlbHA6bm9ybDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2luZGV4LnR4dCBiL3J1bnRpbWUvZG9jL2luZGV4LnR4dAppbmRleCA2MjU3NGQ0Li44NjcyMWQ1IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pbmRleC50eHQKKysrIGIvcnVudGltZS9kb2MvaW5kZXgudHh0CkBAIC0xLDQgKzEsNCBAQAotKmluZGV4LnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IFNlcCAwNworKmluZGV4LnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IE5vdiAzMAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMzI4LDggKzMyOCw3IEBACiAJCQkJICAgY2hhcmFjdGVycywgcmVwZWF0IHRoZSBlbnRlcmVkIHRleHQgTi0xCiAJCQkJICAgdGltZXMKIHxTfAkJWyJ4XVMJCTIgIGRlbGV0ZSBOIGxpbmVzIFtpbnRvIGJ1ZmZlciB4XSBhbmQgc3RhcnQKLQkJCQkgICBpbnNlcnQ7IHN5bm9ueW0gZm9yICJeY2MiIG9yICIwY2MiLAotCQkJCSAgIGRlcGVuZGluZyBvbiBhdXRvaW5kZW50CisJCQkJICAgaW5zZXJ0OyBzeW5vbnltIGZvciAiY2MiLgogfFR8CQlUe2NoYXJ9CQkxICBjdXJzb3IgdGlsbCBhZnRlciBOdGggb2NjdXJyZW5jZSBvZiB7Y2hhcn0KIAkJCQkgICB0byB0aGUgbGVmdAogfFV8CQlVCQkyICB1bmRvIGFsbCBsYXRlc3QgY2hhbmdlcyBvbiBvbmUgbGluZQpAQCAtNDI1LDcgKzQyNCw3IEBACiB8PEluc2VydD58CTxJbnNlcnQ+CTIgIHNhbWUgYXMgImkiCiB8PExlZnQ+fAk8TGVmdD4JCTEgIHNhbWUgYXMgImgiCiB8PExlZnRNb3VzZT58CTxMZWZ0TW91c2U+CTEgIG1vdmUgY3Vyc29yIHRvIHRoZSBtb3VzZSBjbGljayBwb3NpdGlvbgotfDxNaWRkbGVNb3VzZT58IDxNaWRkbGVNb3VzZT4JMiAgc2FtZSBhcyAiUCIgYXQgdGhlIG1vdXNlIGNsaWNrIHBvc2l0aW9uCit8PE1pZGRsZU1vdXNlPnwgPE1pZGRsZU1vdXNlPgkyICBzYW1lIGFzICJnUCIgYXQgdGhlIG1vdXNlIGNsaWNrIHBvc2l0aW9uCiB8PFBhZ2VEb3duPnwJPFBhZ2VEb3duPgkgICBzYW1lIGFzIENUUkwtRgogfDxQYWdlVXA+fAk8UGFnZVVwPgkgICBzYW1lIGFzIENUUkwtQgogfDxSaWdodD58CTxSaWdodD4JCTEgIHNhbWUgYXMgImwiCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pbnNlcnQudHh0IGIvcnVudGltZS9kb2MvaW5zZXJ0LnR4dAppbmRleCAxYjcwNDQ4Li4wYmJmODY4IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pbnNlcnQudHh0CisrKyBiL3J1bnRpbWUvZG9jL2luc2VydC50eHQKQEAgLTEsNCArMSw0IEBACi0qaW5zZXJ0LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgSnVsIDA0CisqaW5zZXJ0LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgTm92IDE4CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xMjQsNiArMTI0LDkgQEAKIAkJCSctJwl0aGUgbGFzdCBzbWFsbCAobGVzcyB0aGFuIGEgbGluZSkgZGVsZXRlCiAJCQknPScJdGhlIGV4cHJlc3Npb24gcmVnaXN0ZXI6IHlvdSBhcmUgcHJvbXB0ZWQgdG8KIAkJCQllbnRlciBhbiBleHByZXNzaW9uIChzZWUgfGV4cHJlc3Npb258KQorCQkJCU5vdGUgdGhhdCAweDgwICgxMjggZGVjaW1hbCkgaXMgdXNlZCBmb3IKKwkJCQlzcGVjaWFsIGtleXMsIHVzZSBDVFJMLVIgQ1RSTC1SIHRvIGluc2VydCBpdAorCQkJCWxpdGVyYWxseS4KIAkJU2VlIHxyZWdpc3RlcnN8IGFib3V0IHJlZ2lzdGVycy4gIHtub3QgaW4gVml9CiAKIENUUkwtUiBDVFJMLVIgezAtOWEteiIlIyorLzouLT19CQkJKmlfQ1RSTC1SX0NUUkwtUioKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2ludHJvLnR4dCBiL3J1bnRpbWUvZG9jL2ludHJvLnR4dAppbmRleCAwM2Y3MzE1Li4wZDM2MjdjIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pbnRyby50eHQKKysrIGIvcnVudGltZS9kb2MvaW50cm8udHh0CkBAIC0xLDQgKzEsNCBAQAotKmludHJvLnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IE9jdCAwOAorKmludHJvLnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IE5vdiAxOAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMzUwLDcgKzM1MCw3IEBACiAJCWNvbmNhdGVuYXRlZC4gIEZvciBleGFtcGxlLCB7YS16QS1aMC05fSBpcyBhbnkgYWxwaGFudW1lcmljCiAJCWNoYXJhY3Rlci4KIAotCQkJCQkJCSp7bW90aW9ufSoKKwkJCQkJCSp7bW90aW9ufSogKm1vdmVtZW50Kgoge21vdGlvbn0JQSBjb21tYW5kIHRoYXQgbW92ZXMgdGhlIGN1cnNvci4gIFRoZXNlIGFyZSBleHBsYWluZWQgaW4KIAkJfG1vdGlvbi50eHR8LiAgRXhhbXBsZXM6CiAJCQl3CQl0byBzdGFydCBvZiBuZXh0IHdvcmQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL21hcC50eHQgYi9ydW50aW1lL2RvYy9tYXAudHh0CmluZGV4IDhjMDVkZGMuLjhjZDg4NTQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL21hcC50eHQKKysrIGIvcnVudGltZS9kb2MvbWFwLnR4dApAQCAtMSw0ICsxLDQgQEAKLSptYXAudHh0KiAgICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBNYXkgMjEKKyptYXAudHh0KiAgICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBEZWMgMDkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTIzMiw4ICsyMzIsNiBAQAogaXMgdHlwZWQuICBUaGUgc3RhdGUgbGFzdCB1c2VkIGlzIHJlbWVtYmVyZWQgZm9yIEluc2VydCBtb2RlIGFuZCBTZWFyY2gKIHBhdHRlcm5zIHNlcGFyYXRlbHkuICBUaGUgc3RhdGUgZm9yIEluc2VydCBtb2RlIGlzIGFsc28gdXNlZCB3aGVuIHR5cGluZyBhCiBjaGFyYWN0ZXIgYXMgYW4gYXJndW1lbnQgdG8gY29tbWFuZCBsaWtlICJmIiBvciAidCIuCi0gICBXaGVuIGFkZGluZyBhICI6bG1hcCIgbWFwcGluZyB0aGUgdXNlIG9mIHRoZXNlIG1hcHBpbmdzIGluIEluc2VydCBtb2RlIGFuZAotZm9yIFNlYXJjaCBwYXR0ZXJucyB3aWxsIGJlIHN3aXRjaGVkIG9uLgogICAgTGFuZ3VhZ2UgbWFwcGluZ3Mgd2lsbCBuZXZlciBiZSBhcHBsaWVkIHRvIGFscmVhZHkgbWFwcGVkIGNoYXJhY3RlcnMuICBUaGV5CiBhcmUgb25seSB1c2VkIGZvciB0eXBlZCBjaGFyYWN0ZXJzLiAgVGhpcyBhc3N1bWVzIHRoYXQgdGhlIGxhbmd1YWdlIG1hcHBpbmcKIHdhcyBhbHJlYWR5IGRvbmUgd2hlbiB0eXBpbmcgdGhlIG1hcHBpbmcuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9tb3Rpb24udHh0IGIvcnVudGltZS9kb2MvbW90aW9uLnR4dAppbmRleCA5ZDE0OWUwLi40Zjk0MDVmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9tb3Rpb24udHh0CisrKyBiL3J1bnRpbWUvZG9jL21vdGlvbi50eHQKQEAgLTEsNCArMSw0IEBACi0qbW90aW9uLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgU2VwIDA3CisqbW90aW9uLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgTm92IDIzCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC04MTQsOCArODE0LDggQEAKIAkJCWFyZWEgaW4gdGhlIGN1cnJlbnQgYnVmZmVyLiAge25vdCBpbiBWaX0uCiAKIAkJCQkJCQkqJycqICpgYCoKLScnICBgYAkJCVRvIHRoZSBwb3NpdGlvbiBiZWZvcmUgbGF0ZXN0IGp1bXAsIG9yIHdoZXJlIHRoZSBsYXN0Ci0JCQkibSciIG9yICJtYCIgY29tbWFuZCB3YXMgZ2l2ZW4uICBOb3Qgc2V0IHdoZW4gdGhlCisnJyAgYGAJCQlUbyB0aGUgcG9zaXRpb24gYmVmb3JlIHRoZSBsYXRlc3QganVtcCwgb3Igd2hlcmUgdGhlCisJCQlsYXN0ICJtJyIgb3IgIm1gIiBjb21tYW5kIHdhcyBnaXZlbi4gIE5vdCBzZXQgd2hlbiB0aGUKIAkJCXw6a2VlcGp1bXBzfCBjb21tYW5kIG1vZGlmaWVyIHdhcyB1c2VkLgogCQkJQWxzbyBzZWUgfHJlc3RvcmUtcG9zaXRpb258LgogCkBAIC0xMjQwLDcgKzEyNDAsNyBAQAogCQkJQ3Vyc29yIGlzIGFkanVzdGVkIGZvciAnc2Nyb2xsb2ZmJyBvcHRpb24uCiAKIDxMZWZ0TW91c2U+CQlNb3ZlcyB0byB0aGUgcG9zaXRpb24gb24gdGhlIHNjcmVlbiB3aGVyZSB0aGUgbW91c2UKLQkJCWNsaWNrIGlzIHxpbmNsdXNpdmV8LiAgU2VlIGFsc28gfDxMZWZ0TW91c2U+fC4gIElmIHRoZQorCQkJY2xpY2sgaXMgfGV4Y2x1c2l2ZXwuICBTZWUgYWxzbyB8PExlZnRNb3VzZT58LiAgSWYgdGhlCiAJCQlwb3NpdGlvbiBpcyBpbiBhIHN0YXR1cyBsaW5lLCB0aGF0IHdpbmRvdyBpcyBtYWRlIHRoZQogCQkJYWN0aXZlIHdpbmRvdyBhbmQgdGhlIGN1cnNvciBpcyBub3QgbW92ZWQuICB7bm90IGluIFZpfQogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vcHRpb25zLnR4dCBiL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CmluZGV4IDc2OWE0NWMuLmE4ODhkOTIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CisrKyBiL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9wdGlvbnMudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBPY3QgMjEKKypvcHRpb25zLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgRGVjIDA5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTEzOSw2ICsxMzksOSBAQAogKHRoZSBeWyBpcyBhIHJlYWwgPEVzYz4gaGVyZSwgdXNlIENUUkwtViA8RXNjPiB0byBlbnRlciBpdCkKIFRoZSBhZHZhbnRhZ2Ugb3ZlciBhIG1hcHBpbmcgaXMgdGhhdCBpdCB3b3JrcyBpbiBhbGwgc2l0dWF0aW9ucy4KIAorVGhlIHRfeHggb3B0aW9ucyBjYW5ub3QgYmUgc2V0IGZyb20gYSB8bW9kZWxpbmV8IG9yIGluIHRoZSB8c2FuZGJveHwsIGZvcgorc2VjdXJpdHkgcmVhc29ucy4KKwogVGhlIGxpc3RpbmcgZnJvbSAiOnNldCIgbG9va3MgZGlmZmVyZW50IGZyb20gVmkuICBMb25nIHN0cmluZyBvcHRpb25zIGFyZSBwdXQKIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuICBUaGUgbnVtYmVyIG9mIG9wdGlvbnMgaXMgcXVpdGUgbGFyZ2UuICBUaGUgb3V0cHV0IG9mCiAic2V0IGFsbCIgcHJvYmFibHkgZG9lcyBub3QgZml0IG9uIHRoZSBzY3JlZW4sIGNhdXNpbmcgVmltIHRvIGdpdmUgdGhlCkBAIC05NTMsNiArOTU2LDcgQEAKIAlhY2NpZGVudGFsbHkgb3ZlcndyaXRpbmcgZXhpc3RpbmcgZmlsZXMgd2l0aCBhIGJhY2t1cCBmaWxlLiAgWW91IG1pZ2h0CiAJcHJlZmVyIHVzaW5nICIuYmFrIiwgYnV0IG1ha2Ugc3VyZSB0aGF0IHlvdSBkb24ndCBoYXZlIGZpbGVzIHdpdGgKIAkiLmJhayIgdGhhdCB5b3Ugd2FudCB0byBrZWVwLgorCU9ubHkgbm9ybWFsIGZpbGUgbmFtZSBjaGFyYWN0ZXJzIGNhbiBiZSB1c2VkLCAiL1wqP1t8PD4iIGFyZSBpbGxlZ2FsLgogCiAJSWYgeW91IGxpa2UgdG8ga2VlcCBhIGxvdCBvZiBiYWNrdXBzLCB5b3UgY291bGQgdXNlIGEgQnVmV3JpdGVQcmUKIAlhdXRvY29tbWFuZCB0byBjaGFuZ2UgJ2JhY2t1cGV4dCcganVzdCBiZWZvcmUgd3JpdGluZyB0aGUgZmlsZSB0bwpAQCAtMTgzNSw3ICsxODM5LDkgQEAKIAkJCWV2ZXJ5dGhpbmcgaW5zaWRlIHF1b3RlcyBpcyBpZ25vcmVkLiAgV2hlbiBtYXRjaGluZyBhCiAJCQlwYXJlbiBpbnNpZGUgcXVvdGVzLCBpdCB3aWxsIGZpbmQgdGhlIG1hdGNoaW5nIG9uZSAoaWYKIAkJCXRoZXJlIGlzIG9uZSkuICBUaGlzIHdvcmtzIHZlcnkgd2VsbCBmb3IgQyBwcm9ncmFtcy4KLQkJCQkJCQkJKmNwby1zdGFyKgorCQkJVGhpcyBmbGFnIGlzIGFsc28gdXNlZCBmb3Igb3RoZXIgZmVhdHVyZXMsIHN1Y2ggYXMKKwkJCUMtaW5kZW50aW5nLgorCQkJIAkJCQkJY3BvLXN0YXIqCiAJCSoJVXNlICI6KiIgaW4gdGhlIHNhbWUgd2F5IGFzICI6QCIuICBXaGVuIG5vdCBpbmNsdWRlZCwKIAkJCSI6KiIgaXMgYW4gYWxpYXMgZm9yICI6JzwsJz4iLCBzZWxlY3QgdGhlIFZpc3VhbCBhcmVhLgogCQkJCQkJCQkqY3BvLTwqCkBAIC0yNDc5LDYgKzI0ODUsNyBAQAogCXR5cGUgdGhhdCBpcyBhY3R1YWxseSBzdG9yZWQgd2l0aCB0aGUgZmlsZS4KIAlUaGlzIG9wdGlvbiBpcyBub3QgY29waWVkIHRvIGFub3RoZXIgYnVmZmVyLCBpbmRlcGVuZGVudCBvZiB0aGUgJ3MnIG9yCiAJJ1MnIGZsYWcgaW4gJ2Nwb3B0aW9ucycuCisJT25seSBub3JtYWwgZmlsZSBuYW1lIGNoYXJhY3RlcnMgY2FuIGJlIHVzZWQsICIvXCo/W3w8PiIgYXJlIGlsbGVnYWwuCiAKIAkJCQkJCSonZmlsbGNoYXJzJyogKidmY3MnKgogJ2ZpbGxjaGFycycgJ2ZjcycJc3RyaW5nCShkZWZhdWx0ICJ2ZXJ0OnwsZm9sZDotIikKQEAgLTI3MjUsNiArMjczMiwyMCBAQAogCVRoaXMgb3B0aW9uIGNhbm5vdCBiZSBzZXQgZnJvbSBhIHxtb2RlbGluZXwgb3IgaW4gdGhlIHxzYW5kYm94fCwgZm9yCiAJc2VjdXJpdHkgcmVhc29ucy4KIAorCQkJCQkJCSonZnN5bmMnKiAqJ2ZzJyoKKydmc3luYycgJ2ZzJwkJYm9vbGVhbgkoZGVmYXVsdCBvbikKKwkJCWdsb2JhbAorCQkJe25vdCBpbiBWaX0KKwlXaGVuIG9uLCB0aGUgbGlicmFyeSBmdW5jdGlvbiBmc3luYygpIHdpbGwgYmUgY2FsbGVkIGFmdGVyIHdyaXRpbmcgYQorCWZpbGUuICBUaGlzIHdpbGwgZmx1c2ggYSBmaWxlIHRvIGRpc2ssIGVuc3VyaW5nIHRoYXQgaXQgaXMgc2FmZWx5CisJd3JpdHRlbiBldmVuIG9uIGZpbGVzeXN0ZW1zIHdoaWNoIGRvIG1ldGFkYXRhLW9ubHkgam91cm5hbGluZy4gIFRoaXMKKwl3aWxsIGZvcmNlIHRoZSBoYXJkZHJpdmUgdG8gc3BpbiB1cCBvbiBMaW51eCBzeXN0ZW1zIHJ1bm5pbmcgaW4gbGFwdG9wCisJbW9kZSwgc28gaXQgbWF5IGJlIHVuZGVzaXJhYmxlIGluIHNvbWUgc2l0dWF0aW9ucy4gIEJlIHdhcm5lZCB0aGF0CisJdHVybmluZyB0aGlzIG9mZiBpbmNyZWFzZXMgdGhlIGNoYW5jZXMgb2YgZGF0YSBsb3NzIGFmdGVyIGEgY3Jhc2guICBPbgorCXN5c3RlbXMgd2l0aG91dCBhbiBmc3luYygpIGltcGxlbWVudGF0aW9uLCB0aGlzIHZhcmlhYmxlIGlzIGFsd2F5cworCW9mZi4KKwlBbHNvIHNlZSAnc3dhcHN5bmMnIGZvciBjb250cm9sbGluZyBmc3luYygpIG9uIHN3YXAgZmlsZXMuCisKIAkJCQkgICAqJ2dkZWZhdWx0JyogKidnZCcqIConbm9nZGVmYXVsdCcqIConbm9nZCcqCiAnZ2RlZmF1bHQnICdnZCcJCWJvb2xlYW4JKGRlZmF1bHQgb2ZmKQogCQkJZ2xvYmFsCkBAIC0yNzkxLDYgKzI4MTIsNyBAQAogCXRoZSBoZWlnaHQgb2YgdGhlIGN1cnNvciBjYW4gYmUgY2hhbmdlZC4gIFRoaXMgY2FuIGJlIGRvbmUgYnkKIAlzcGVjaWZ5aW5nIGEgYmxvY2sgY3Vyc29yLCBvciBhIHBlcmNlbnRhZ2UgZm9yIGEgdmVydGljYWwgb3IKIAlob3Jpem9udGFsIGN1cnNvci4KKwlGb3IgYSBjb25zb2xlIHRoZSAndF9TSScgYW5kICd0X0VJJyBlc2NhcGUgc2VxdWVuY2VzIGFyZSB1c2VkLgogCiAJVGhlIG9wdGlvbiBpcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHBhcnRzLiAgRWFjaCBwYXJ0IGNvbnNpc3Qgb2YgYQogCW1vZGUtbGlzdCBhbmQgYW4gYXJndW1lbnQtbGlzdDoKQEAgLTM2ODYsNiArMzcwOCw3IEBACiAJU2V0dGluZyB0aGlzIG9wdGlvbiB0byBhIHZhbGlkIGtleW1hcCBuYW1lIGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2YKIAlzZXR0aW5nICdpbWluc2VydCcgdG8gb25lLCBzbyB0aGF0IHRoZSBrZXltYXAgYmVjb21lcyBlZmZlY3RpdmUuCiAJJ2ltc2VhcmNoJyBpcyBhbHNvIHNldCB0byBvbmUsIHVubGVzcyBpdCB3YXMgLTEKKwlPbmx5IG5vcm1hbCBmaWxlIG5hbWUgY2hhcmFjdGVycyBjYW4gYmUgdXNlZCwgIi9cKj9bfDw+IiBhcmUgaWxsZWdhbC4KIAogCQkJCQkqJ2tleW1vZGVsJyogKidrbScqCiAna2V5bW9kZWwnICdrbScJCXN0cmluZwkoZGVmYXVsdCAiIikKQEAgLTM3NzcsNiArMzgwMCw3IEBACiAJbWF0dGVyIHdoYXQgJExBTkcgaXMgc2V0IHRvOiA+CiAJCTpzZXQgbGFuZ21lbnU9bmxfTkwuSVNPXzg4NTktMQogPAlXaGVuICdsYW5nbWVudScgaXMgZW1wdHksIHx2Omxhbmd8IGlzIHVzZWQuCisJT25seSBub3JtYWwgZmlsZSBuYW1lIGNoYXJhY3RlcnMgY2FuIGJlIHVzZWQsICIvXCo/W3w8PiIgYXJlIGlsbGVnYWwuCiAJSWYgeW91ciAkTEFORyBpcyBzZXQgdG8gYSBub24tRW5nbGlzaCBsYW5ndWFnZSBidXQgeW91IGRvIHdhbnQgdG8gdXNlCiAJdGhlIEVuZ2xpc2ggbWVudXM6ID4KIAkJOnNldCBsYW5nbWVudT1ub25lCkBAIC00NDI3LDYgKzQ0NTEsNyBAQAogCVVzaW5nICdwYXRjaG1vZGUnIGZvciBjb21wcmVzc2VkIGZpbGVzIGFwcGVuZHMgdGhlIGV4dGVuc2lvbiBhdCB0aGUKIAllbmQgKGUuZy4sICJmaWxlLmd6Lm9yaWciKSwgdGh1cyB0aGUgcmVzdWx0aW5nIG5hbWUgaXNuJ3QgYWx3YXlzCiAJcmVjb2duaXplZCBhcyBhIGNvbXByZXNzZWQgZmlsZS4KKwlPbmx5IG5vcm1hbCBmaWxlIG5hbWUgY2hhcmFjdGVycyBjYW4gYmUgdXNlZCwgIi9cKj9bfDw+IiBhcmUgaWxsZWdhbC4KIAogCQkJCQkqJ3BhdGgnKiAqJ3BhJyogKkUzNDMqICpFMzQ1KiAqRTM0NyoKICdwYXRoJyAncGEnCQlzdHJpbmcJKGRlZmF1bHQgb24gVW5peDogIi4sL3Vzci9pbmNsdWRlLCwiCkBAIC00NTM3LDYgKzQ1NjIsOCBAQAogCQkJZmVhdHVyZX0KIAlUaGUgbmFtZSBvZiB0aGUgcHJpbnRlciB0byBiZSB1c2VkIGZvciB8OmhhcmRjb3B5fC4KIAlTZWUgfHBkZXYtb3B0aW9ufC4KKwlUaGlzIG9wdGlvbiBjYW5ub3QgYmUgc2V0IGZyb20gYSB8bW9kZWxpbmV8IG9yIGluIHRoZSB8c2FuZGJveHwsIGZvcgorCXNlY3VyaXR5IHJlYXNvbnMuCiAKIAkJCQkJCSoncHJpbnRlbmNvZGluZycqIConcGVuYycqCiAncHJpbnRlbmNvZGluZycgJ3BlbmMnCVN0cmluZwkoZGVmYXVsdCBlbXB0eSwgZXhjZXB0IGZvciBzb21lIHN5c3RlbXMpCkBAIC01NjQ3LDYgKzU2NzQsNyBAQAogCXN5c3RlbXMgdGhlIHN3YXAgZmlsZSB3aWxsIG5vdCBiZSB3cml0dGVuIGF0IGFsbC4gIEZvciBhIHVuaXggc3lzdGVtCiAJc2V0dGluZyBpdCB0byAic3luYyIgd2lsbCB1c2UgdGhlIHN5bmMoKSBjYWxsIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQKIAlmc3luYygpLCB3aGljaCBtYXkgd29yayBiZXR0ZXIgb24gc29tZSBzeXN0ZW1zLgorCVRoZSAnZnN5bmMnIG9wdGlvbiBpcyB1c2VkIGZvciB0aGUgYWN0dWFsIGZpbGUuCiAKIAkJCQkJCSonc3dpdGNoYnVmJyogKidzd2InKgogJ3N3aXRjaGJ1ZicgJ3N3YicJc3RyaW5nCShkZWZhdWx0ICIiKQpAQCAtNTY4Nyw2ICs1NzE1LDcgQEAKIAlTeW50YXggYXV0b2NvbW1hbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHdpdGggdGhlIHZhbHVlIGFzIGFyZ3VtZW50LgogCVRoaXMgb3B0aW9uIGlzIG5vdCBjb3BpZWQgdG8gYW5vdGhlciBidWZmZXIsIGluZGVwZW5kZW50IG9mIHRoZSAncycgb3IKIAknUycgZmxhZyBpbiAnY3BvcHRpb25zJy4KKwlPbmx5IG5vcm1hbCBmaWxlIG5hbWUgY2hhcmFjdGVycyBjYW4gYmUgdXNlZCwgIi9cKj9bfDw+IiBhcmUgaWxsZWdhbC4KIAogCQkJCQkqJ3RhYnN0b3AnKiAqJ3RzJyoKICd0YWJzdG9wJyAndHMnCQludW1iZXIJKGRlZmF1bHQgOCkKQEAgLTYwNjUsNiArNjA5NCw4IEBACiAJVGhpcyBvcHRpb24gd2lsbCBiZSB1c2VkIGZvciB0aGUgd2luZG93IHRpdGxlIHdoZW4gZXhpdGluZyBWaW0gaWYgdGhlCiAJb3JpZ2luYWwgdGl0bGUgY2Fubm90IGJlIHJlc3RvcmVkLiAgT25seSBoYXBwZW5zIGlmICd0aXRsZScgaXMgb24gb3IKIAkndGl0bGVzdHJpbmcnIGlzIG5vdCBlbXB0eS4KKwlUaGlzIG9wdGlvbiBjYW5ub3QgYmUgc2V0IGZyb20gYSB8bW9kZWxpbmV8IG9yIGluIHRoZSB8c2FuZGJveHwsIGZvcgorCXNlY3VyaXR5IHJlYXNvbnMuCiAJCQkJCQkqJ3RpdGxlc3RyaW5nJyoKICd0aXRsZXN0cmluZycJCXN0cmluZwkoZGVmYXVsdCAiIikKIAkJCWdsb2JhbApAQCAtNjY0OSw4ICs2NjgwLDggQEAKIAkJa2V5cyBjYW4gYmUgbWFwcGVkLgogCUlmIHRoZSBtZW51IGlzIGRpc2FibGVkIGJ5IGV4Y2x1ZGluZyAnbScgZnJvbSAnZ3Vpb3B0aW9ucycsIHRoZSBBTFQKIAlrZXkgaXMgbmV2ZXIgdXNlZCBmb3IgdGhlIG1lbnUuCi0JSW4gdGhlIFdpbjMyIHZlcnNpb24sIHRoZSA8RjEwPiBrZXkgaXMgaGFuZGxlZCBsaWtlIHRoaXMgdG9vLCBzaW5jZQotCVdpbmRvd3MgdXNlcyBpdCB0byBzZWxlY3QgYSBtZW51LgorCVRoaXMgb3B0aW9uIGlzIG5vdCB1c2VkIGZvciA8RjEwPjsgb24gV2luMzIgYW5kIHdpdGggR1RLIDxGMTA+IHdpbGwKKwlzZWxlY3QgdGhlIG1lbnUsIHVubGVzcyBpdCBoYXMgYmVlbiBtYXBwZWQuCiAKIAkJCQkJCSond2luaGVpZ2h0JyogKid3aCcqICpFNTkxKgogJ3dpbmhlaWdodCcgJ3doJwludW1iZXIJKGRlZmF1bHQgMSkKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3BpX25ldHJ3LnR4dCBiL3J1bnRpbWUvZG9jL3BpX25ldHJ3LnR4dAppbmRleCA0N2QwZDdlLi40ZTgyNDNkIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9waV9uZXRydy50eHQKKysrIGIvcnVudGltZS9kb2MvcGlfbmV0cncudHh0CkBAIC0xLDQgKzEsNCBAQAotKnBpX25ldHJ3LnR4dCAgRm9yIFZpbSB2ZXJzaW9uIDYuMi4gIExhc3QgY2hhbmdlOiBTZXAgMTMsIDIwMDQKKypwaV9uZXRydy50eHQqICBGb3IgVmltIHZlcnNpb24gNi4zLiAgTGFzdCBjaGFuZ2U6IE9jdCAwOCwgMjAwNAogCiAKIAkJVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuCkBAIC01MzYsMTEgKzUzNiwxMyBAQAogICAgICA8Yy1sPi4uLi4uLlJlZnJlc2hpbmcgdGhlIExpc3RpbmcuLi4uLi4uLi4uLi4uLi4uLi58bmV0cnctY3RybC1sfAogICAgICBvLi4uLi4uLi4uLkJyb3dzaW5nIHdpdGggYSBIb3Jpem9udGFsIFNwbGl0Li4uLi4uLi58bmV0cnctb3wKICAgICAgcC4uLi4uLi4uLi5QcmV2aWV3IFdpbmRvdy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4ufG5ldHJ3LXB8Ci0gICAgIHEuLi4uLi4uLi4uTGlzdGluZyBCb29rbWFya3MuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLnxuZXRydy1xfAorICAgICBxLi4uLi4uLi4uLkxpc3RpbmcgQm9va21hcmtzIGFuZCBIaXN0b3J5Li4uLi4uLi4uLi58bmV0cnctcXwKICAgICAgci4uLi4uLi4uLi5SZXZlcnNpbmcgU29ydGluZyBPcmRlci4uLi4uLi4uLi4uLi4uLi4ufG5ldHJ3LXJ8CiAgICAgIFIuLi4uLi4uLi4uUmVuYW1pbmcgRmlsZXMgb3IgRGlyZWN0b3JpZXMuLi4uLi4uLi4uLnxuZXRydy1SfAogICAgICBzLi4uLi4uLi4uLlNlbGVjdGluZyBTb3J0aW5nIFN0eWxlLi4uLi4uLi4uLi4uLi4uLi58bmV0cnctc3wKICAgICAgUy4uLi4uLi4uLi5FZGl0aW5nIHRoZSBTb3J0aW5nIFNlcXVlbmNlLi4uLi4uLi4uLi4ufG5ldHJ3LVN8CisgICAgIHUuLi4uLi4uLi4uQ2hhbmdpbmcgdG8gYSBQcmVkZWNlc3NvciBEaXJlY3RvcnkuLi4uLnxuZXRydy11fAorICAgICBVLi4uLi4uLi4uLkNoYW5naW5nIHRvIGEgU3VjY2Vzc29yIERpcmVjdG9yeS4uLi4uLi58bmV0cnctVXwKICAgICAgdi4uLi4uLi4uLi5Ccm93c2luZyB3aXRoIGEgVmVydGljYWwgU3BsaXQuLi4uLi4uLi4ufG5ldHJ3LXZ8CiAgICAgIHguLi4uLi4uLi4uQ3VzdG9taXppbmcgQnJvd3NpbmcuLi4uLi4uLi4uLi4uLi4uLi4uLnxuZXRydy14fAogCkBAIC03NTEsNyArNzUzLDcgQEAKIFRoZSAiPGN0cmwtaD4iIG1hcCBicmluZ3MgdXAgYSByZXF1ZXN0b3IgYWxsb3dpbmcgdGhlIHVzZXIgdG8gY2hhbmdlIHRoZQogZmlsZS9kaXJlY3RvcnkgaGlkaW5nIGxpc3QuICBUaGUgaGlkaW5nIGxpc3QgY29uc2lzdHMgb2Ygb25lIG9yIG1vcmUgcGF0dGVybnMKIGRlbGltaXRlZCBieSBjb21tYXMuICBGaWxlcyBhbmQvb3IgZGlyZWN0b3JpZXMgc2F0aXNmeWluZyB0aGVzZSBwYXR0ZXJucyB3aWxsCi1iZSBoaWRkZW4gKGllLiBub3Qgc2hvd24pLgorZWl0aGVyIGJlIGhpZGRlbiAoaWUuIG5vdCBzaG93bikgb3IgYmUgdGhlIG9ubHkgb25lcyBkaXNwbGF5ZWQgKHNlZSB8bmV0cnctYXwpLgogCiAKIEJST1dTSU5HIFdJVEggQSBIT1JJWk9OVEFMTFkgU1BMSVQgV0lORE9XCQkJKm5ldHJ3LW8qCkBAIC04MDIsNiArODA0LDIyIEBACiAiciIga2V5LgogCiAKK0NIQU5HSU5HIFRPIEEgUFJFREVDRVNTT1IgRElSRUNUT1JZCQkJCSpuZXRydy11KgorCitFdmVyeSB0aW1lIHlvdSBjaGFuZ2UgdG8gYSBuZXcgZGlyZWN0b3J5IChuZXcgZm9yIHRoZSBjdXJyZW50IHNlc3Npb24pLAorbmV0cncgd2lsbCBzYXZlIHRoZSBkaXJlY3RvcnkgaW4gYSByZWNlbnRseS12aXNpdGVkIGRpcmVjdG9yeSBoaXN0b3J5CitsaXN0ICh1bmxlc3MgZzpuZXRyd19kaXJoaXN0bWF4IGlzIHplcm87IGJ5IGRlZmF1bHQsIGl0cyB0ZW4pLiAgV2l0aCB0aGUKKyJ1IiBtYXAsIG9uZSBjYW4gY2hhbmdlIHRvIGFuIGVhcmxpZXIgZGlyZWN0b3J5IChwcmVkZWNlc3NvcikuICBUbyBkbwordGhlIG9wcG9zaXRlLCBzZWUgfG5ldHJ3LVV8LgorCisKK0NIQU5HSU5HIFRPIEEgU1VDQ0VTU09SIERJUkVDVE9SWQkJCQkqbmV0cnctVSoKKworV2l0aCB0aGUgIlUiIG1hcCwgb25lIGNhbiBjaGFuZ2UgdG8gYSBsYXRlciBkaXJlY3RvcnkgKHN1Y2Nlc3NvcikuCitUaGlzIG1hcCBpcyB0aGUgb3Bwb3NpdGUgb2YgdGhlICJ1IiBtYXAuIChzZWUgfG5ldHJ3LXV8KSAgVXNlIHRoZQorcSBtYXAgdG8gbGlzdCBib3RoIHRoZSBib29rbWFya3MgYW5kIGhpc3RvcnkuIChzZWUgfG5ldHJ3LXF8KQorCisKIEJST1dTSU5HIFdJVEggQSBWRVJUSUNBTExZIFNQTElUIFdJTkRPVwkJCQkqbmV0cnctdioKIAogTm9ybWFsbHkgb25lIGVudGVycyBhIGZpbGUgb3IgZGlyZWN0b3J5IHVzaW5nIHRoZSA8Y3I+LiAgSG93ZXZlciwgdGhlICJ2IgpAQCAtODU0LDcgKzg3Miw4IEBACiAJe2NudH1iCiAKIEFueSBjb3VudCBtYXkgYmUgdXNlZC4gIE9uZSBtYXkgdXNlIHZpbWluZm8ncyAiISIgb3B0aW9uIHRvIHJldGFpbiBib29rbWFya3MKLWJldHdlZW4gdmltIHNlc3Npb25zLgorYmV0d2VlbiB2aW0gc2Vzc2lvbnMuICBTZWUgfG5ldHJ3LUJ8IGZvciBob3cgdG8gcmV0dXJuIHRvIGEgYm9va21hcmsgYW5kCit8bmV0cnctcXwgZm9yIGhvdyB0byBsaXN0IHRoZW0uCiAKIAogQ0hBTkdJTkcgVE8gQSBCT09LTUFSS0VEIERJUkVDVE9SWQkJCQkqbmV0cnctQioKQEAgLTg2MywxMiArODgyLDE0IEBACiAKIAl7Y250fUIKIAotQW55IGNvdW50IG1heSBiZSB1c2VkLgorQW55IGNvdW50IG1heSBiZSB1c2VkIHRvIHJlZmVyZW5jZSBhbnkgb2YgdGhlIGJvb2ttYXJrcy4gIFNlZSB8bmV0cnctYnwKK2ZvciBob3cgdG8gYm9va21hcmsgYSBkaXJlY3RvcnkgYW5kIHxuZXRydy1xfCBmb3IgaG93IHRvIGxpc3QgdGhlbS4KIAogCi1MSVNUSU5HIEJPT0tNQVJLUwkJCQkJCSpuZXRydy1xKgorTElTVElORyBCT09LTUFSS1MgQU5EIEhJU1RPUlkJCQkJCSpuZXRydy1xKgogCi1QcmVzc2luZyAicSIgd2lsbCBsaXN0IHRoZSBib29rbWFya2VkIGRpcmVjdG9yaWVzLiAocXVlcnkpCitQcmVzc2luZyAicSIgd2lsbCBsaXN0IHRoZSBib29rbWFya2VkIGRpcmVjdG9yaWVzIGFuZCBkaXJlY3RvcnkgdHJhdmVyc2FsCitoaXN0b3J5IChxdWVyeSkuIChzZWUgfG5ldHJ3LWJ8LCB8bmV0cnctQnwsIHxuZXRydy11fCwgYW5kIHxuZXRydy1VfCkKIAogCiBJTVBST1ZJTkcgRElSRUNUT1JZIEJST1dTSU5HCQkJCSpuZXRydy1saXN0LWhhY2sqCkBAIC05OTEsMTEgKzEwMTIsMjYgQEAKIAkgICBhdHRlbXB0aW5nIHRvIHJlYWQvd3JpdGUgeW91ciBmaWxlIG92ZXIgdGhlIG5ldHdvcmsuICBQbGVhc2UKIAkgICBzZW5kIHRoYXQgaW5mb3JtYXRpb24gdG8gPG5ldHJ3LnZpbT4ncyBtYWludGFpbmVyLAogCi0JCWRyY2hpcE5PU1BBTSBhdCBjYW1wYmVsbGZhbWlseS5iaXogLSBOT1NQQU0KKwkJTmRyT2NoaXAgYXQgU2NhbXBiZWxsUGZhbWlseS5BYml6TSAtIE5PU1BBTQogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIDEwLiBIaXN0b3J5CQkJCQkJKm5ldHJ3LWhpc3RvcnkqCiAKKwl2NTI6ICogbm9udW1iZXInaW5nIG5vdyBzZXQgZm9yIGJyb3dzaW5nIGJ1ZmZlcnMKKwkgICAgICogd2hlbiB0aGUgaGlkaW5nIGxpc3QgaGlkIGFsbCBmaWxlcywgZXJyb3IgbWVzc2FnZXMgZW5zdWVkLiBGaXhlZAorCSAgICAgKiB3aGVuIGJyb3dzaW5nLCBzd2YgaXMgc2V0LCBidXQgZGlyZWN0b3J5IGlzIG5vdCBzZXQsIHdoZW4gbmV0cncKKwkgICAgICAgd2FzIGF0dGVtcHRpbmcgdG8gcmVzdG9yZSBvcHRpb25zLCB2aW0gd2FudGVkIHRvIHNhdmUgYSBzd2FwZmlsZQorCSAgICAgICB0byBhIGxvY2FsIGRpcmVjdG9yeSB1c2luZyBhbiB1cmwtc3R5bGUgcGF0aC4gIEZpeGVkCisJdjUxOiAqIGN5Z3dpbiBkZXRlY3Rpb24gbm93IGF1dG9tYXRlZCAodXNpbmcgd2luZG93cyBhbmQgJnNoZWxsIGlzIGJhc2gpCisJICAgICAqIGN1c3RvbWl6YWJsZSBicm93c2VyICJmaWxlIiByZWplY3Rpb24gcGF0dGVybnMKKwkgICAgICogZGlyZWN0b3J5IGhpc3RvcnkKKwkgICAgICogOltyYW5nZV13IHVybCAgbm93IHN1cHBvcnRlZCAoaWUuIG5ldHJ3IGhhcyBhIEZpbGVXcml0ZUNtZCBldmVudCkKKwkgICAgICogZXJyb3IgbWVzc2FnZXMgaGF2ZSBhICJQcmVzcyA8Y3I+IHRvIGNvbnRpbnVlIiB0byBhbGxvdyB0aGVtCisJICAgICAgIHRvIGJlIHNlZW4KKwkgICAgICogZGlyZWN0b3J5IGJyb3dzZXIgZGlzcGxheXMgbm8gbG9uZ2VyIGJvdGhlciB0aGUgc3dhcGZpbGUKKwkgICAgICogdS9VIGNvbW1hbmRzIHRvIGdvIHVwIGFuZCBkb3duIHRoZSBoaXN0b3J5IHN0YWNrCisJICAgICAqIGhpc3Rvcnkgc3RhY2sgbWF5IGJlIHNhdmVkIHdpdGggdmltaW5mbyB3aXRoIGl0cyAiISIgb3B0aW9uCisJICAgICAqIGJ1Z2ZpeGVzIGFzc29jaWF0ZWQgd2l0aCB1bndhbnRlZCBbTm8gRmlsZXNdIGVudHJpZXMKIAl2NTA6ICogZGlyZWN0b3JpZXMgbm93IGRpc3BsYXllZCB1c2luZyBidWZ0eXBlPW5vZmlsZTsgc2hvdWxkIGtlZXAgdGhlCiAJICAgICAgIGRpcmVjdG9yeSBuYW1lcyBhcy1pcwogCSAgICAgKiBhdHRlbXB0cyB0byByZW1vdmUgZW1wdHkgIltObyBGaWxlXSIgYnVmZmVycyBsZWZ0b3ZlcgpAQCAtMTAwMyw4ICsxMDM5LDggQEAKIAkgICAgICogYnVnZml4OiBhICJjYXBzLWxvY2siIGVkaXRpbmcgZGlmZmljdWx0eSBsZWZ0IGluIHY0OSB3YXMgZml4ZWQKIAkgICAgICogc3ludGF4IGhpZ2hsaWdodGluZyBmb3IgIlNob3dpbmc6IiB0aGUgaGlkaW5nIGxpc3QgaW5jbHVkZWQKIAkgICAgICogYm9va21hcmtzIGNhbiBub3cgYmUgcmV0YWluZWQgaWYgIiEiIGlzIGluIHRoZSB2aW1pbmZvIG9wdGlvbgotCXY0OTogKiB3aWxsIHVzZSBmdHAgZm9yIGh0dHA6Ly8uLi4vIGJyb3dzaW5nIHY0ODogKiBPbmUgbWF5IHVzZSBmdHAgdG8KLQkgICAgICAgZG8gcmVtb3RlIGhvc3QgZmlsZSBicm93c2luZworCXY0OTogKiB3aWxsIHVzZSBmdHAgZm9yIGh0dHA6Ly8uLi4vIGJyb3dzaW5nIHY0ODoKKwkgICAgICogT25lIG1heSB1c2UgZnRwIHRvIGRvIHJlbW90ZSBob3N0IGZpbGUgYnJvd3NpbmcKIAkgICAgICogKHdpbmRvd3MgYW5kICFjeWd3aW4pIHJlbW90ZSBicm93c2luZyB3aXRoIGZ0cCBjYW4gbm93IHVzZQogCSAgICAgICB0aGUgImRpciIgY29tbWFuZCBpbnRlcm5hbGx5IHRvIHByb3ZpZGUgbGlzdGluZ3MKIAkgICAgICogZzpuZXRyd19rZWVwZGlyIG5vdyBhbGxvd3Mgb25lIHRvIGtlZXAgdGhlIGluaXRpYWwgY3VycmVudApAQCAtMTAzMiw5ICsxMDY4LDkgQEAKIAkgICAgICAgbGlzdGluZ3MKIAkgICAgICogaW1wcm92ZWQgdW51c3VhbCBmaWxlIGFuZCBkaXJlY3RvcnkgbmFtZSBoYW5kbGluZyBwcmV2aWV3CiAJICAgICAqIHdpbmRvdyBzdXBwb3J0Ci0JdjQ3OiAqIG5vdyBoYW5kbGVzIGxvY2FsIGRpcmVjdG9yeSBicm93c2luZy4gIHY0NjogKiBub3cgaGFuZGxlcwotCXJlbW90ZSBkaXJlY3RvcnkgYnJvd3NpbmcKLQkgICAgICogZzpuZXRyd19zaWxlbnQgKGlmIDEpIHdpbGwgY2F1c2UgYWxsIHRyYW5zZmVycyB0byBiZSBzaWxlbnQnZAorCXY0NzogKiBub3cgaGFuZGxlcyBsb2NhbCBkaXJlY3RvcnkgYnJvd3NpbmcuCisJdjQ2OiAqIG5vdyBoYW5kbGVzIHJlbW90ZSBkaXJlY3RvcnkgYnJvd3NpbmcKKwkgICAgICogZzpuZXRyd19zaWxlbnQgKGlmIDEpIHdpbGwgY2F1c2UgYWxsIHRyYW5zZmVycyB0byBiZSBzaWxlbnQKIAl2NDU6ICogbWFkZSB0aGUgW3VzZXJAXWhvc3RuYW1lOnBhdGggZm9ybSBhIGJpdCBtb3JlIHJlc3RyaWN0aXZlIHRvCiAJICAgICAgIGJldHRlciBoYW5kbGUgZXJyb3JzIGluIHVzaW5nIHByb3RvY29scyAoZS5nLiBzY3A6dXNyQGhvc3Q6ZmlsZQogCSAgICAgICB3YXMgYmVpbmcgcmVjb2duaXplZCBhcyBhbiByY3AgcmVxdWVzdCkgdjQ0OiAqIGNoYW5nZWQgZnJvbQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvc3ludGF4LnR4dCBiL3J1bnRpbWUvZG9jL3N5bnRheC50eHQKaW5kZXggMGUxNDdiNS4uNTgzYTc4NCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvc3ludGF4LnR4dAorKysgYi9ydW50aW1lL2RvYy9zeW50YXgudHh0CkBAIC0xLDQgKzEsNCBAQAotKnN5bnRheC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IE9jdCAxMgorKnN5bnRheC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IERlYyAwOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC02NDAsNiArNjQwLDEwIEBACiBjX25vX2Nmb3JtYXQJCWRvbid0IGhpZ2hsaWdodCAlLWZvcm1hdHMgaW4gc3RyaW5ncwogY19ub19jOTkJCWRvbid0IGhpZ2hsaWdodCBDOTkgc3RhbmRhcmQgaXRlbXMKIAorV2hlbiAnZm9sZG1ldGhvZCcgaXMgc2V0IHRvICJzeW50YXgiIHRoZW4gLyogKi8gY29tbWVudHMgYW5kIHsgfSBibG9ja3Mgd2lsbAorYmVjb21lIGEgZm9sZC4gIElmIHlvdSBkb24ndCB3YW50IGNvbW1lbnRzIHRvIGJlY29tZSBhIGZvbGQgdXNlOiA+CisJOmxldCBjX25vX2NvbW1lbnRfZm9sZCA9IDEKKwogSWYgeW91IG5vdGljZSBoaWdobGlnaHRpbmcgZXJyb3JzIHdoaWxlIHNjcm9sbGluZyBiYWNrd2FyZHMsIHdoaWNoIGFyZSBmaXhlZAogd2hlbiByZWRyYXdpbmcgd2l0aCBDVFJMLUwsIHRyeSBzZXR0aW5nIHRoZSAiY19taW5saW5lcyIgaW50ZXJuYWwgdmFyaWFibGUKIHRvIGEgbGFyZ2VyIG51bWJlcjogPgpAQCAtMjEyOCw2ICsyMTMyLDkgQEAKIAogTXpTY2hlbWUtc3BlY2lmaWMgc3R1ZmYgd2lsbCBiZSB1c2VkIGlmIGI6aXNfbXpzY2hlbWUgb3IgZzppc19tenNjaGVtZQogdmFyaWFibGVzIGFyZSBkZWZpbmVkLgorIAorQWxzbyBzY2hlbWUudmltIHN1cHBvcnRzIGtleXdvcmRzIG9mIHRoZSBDaGlja2VuIFNjaGVtZS0+QyBjb21waWxlci4gIERlZmluZQorYjppc19jaGlja2VuIG9yIGc6aXNfY2hpY2tlbiwgaWYgeW91IG5lZWQgdGhlbS4KIAogCiBTREwJCQkJCQkqc2RsLnZpbSogKnNkbC1zeW50YXgqCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90YWdzIGIvcnVudGltZS9kb2MvdGFncwppbmRleCBiM2VhMGU4Li40YzAyMGExIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90YWdzCisrKyBiL3J1bnRpbWUvZG9jL3RhZ3MKQEAgLTIyOSw2ICsyMjksOCBAQAogJ2Zvcm1hdG9wdGlvbnMnCW9wdGlvbnMudHh0CS8qJ2Zvcm1hdG9wdGlvbnMnKgogJ2Zvcm1hdHByZycJb3B0aW9ucy50eHQJLyonZm9ybWF0cHJnJyoKICdmcCcJb3B0aW9ucy50eHQJLyonZnAnKgorJ2ZzJwlvcHRpb25zLnR4dAkvKidmcycqCisnZnN5bmMnCW9wdGlvbnMudHh0CS8qJ2ZzeW5jJyoKICdmdCcJb3B0aW9ucy50eHQJLyonZnQnKgogJ2djcicJb3B0aW9ucy50eHQJLyonZ2NyJyoKICdnZCcJb3B0aW9ucy50eHQJLyonZ2QnKgpAQCAtNzU2LDYgKzc1OCw3IEBACiAndF9DVicJdGVybS50eHQJLyondF9DVicqCiAndF9DbycJdGVybS50eHQJLyondF9DbycqCiAndF9ETCcJdGVybS50eHQJLyondF9ETCcqCisndF9FSScJdGVybS50eHQJLyondF9FSScqCiAndF9GMScJdGVybS50eHQJLyondF9GMScqCiAndF9GMicJdGVybS50eHQJLyondF9GMicqCiAndF9GMycJdGVybS50eHQJLyondF9GMycqCkBAIC03ODksNiArNzkyLDcgQEAKICd0X0tMJwl0ZXJtLnR4dAkvKid0X0tMJyoKICd0X1JJJwl0ZXJtLnR4dAkvKid0X1JJJyoKICd0X1JWJwl0ZXJtLnR4dAkvKid0X1JWJyoKKyd0X1NJJwl0ZXJtLnR4dAkvKid0X1NJJyoKICd0X1NiJwl0ZXJtLnR4dAkvKid0X1NiJyoKICd0X1NmJwl0ZXJtLnR4dAkvKid0X1NmJyoKICd0X1dQJwl0ZXJtLnR4dAkvKid0X1dQJyoKQEAgLTQyOTgsNyArNDMwMiw2IEBACiBjcG8tcAlvcHRpb25zLnR4dAkvKmNwby1wKgogY3BvLXIJb3B0aW9ucy50eHQJLypjcG8tcioKIGNwby1zCW9wdGlvbnMudHh0CS8qY3BvLXMqCi1jcG8tc3RhcglvcHRpb25zLnR4dAkvKmNwby1zdGFyKgogY3BvLXQJb3B0aW9ucy50eHQJLypjcG8tdCoKIGNwby11CW9wdGlvbnMudHh0CS8qY3BvLXUqCiBjcG8tdglvcHRpb25zLnR4dAkvKmNwby12KgpAQCAtNDkyOSw3ICs0OTMyLDYgQEAKIGhlYnJldy50eHQJaGVicmV3LnR4dAkvKmhlYnJldy50eHQqCiBoZWxwCXZhcmlvdXMudHh0CS8qaGVscCoKIGhlbHAtY29udGV4dAloZWxwLnR4dAkvKmhlbHAtY29udGV4dCoKLWhlbHAtdGFncwl0YWdzCTEKIGhlbHAtdHJhbnNsYXRlZAl2YXJpb3VzLnR4dAkvKmhlbHAtdHJhbnNsYXRlZCoKIGhlbHAteHRlcm0td2luZG93CXZhcmlvdXMudHh0CS8qaGVscC14dGVybS13aW5kb3cqCiBoZWxwLnR4dAloZWxwLnR4dAkvKmhlbHAudHh0KgpAQCAtNTM5MSw2ICs1MzkzLDcgQEAKIG1vdXNlLW92ZXJ2aWV3CXRlcm0udHh0CS8qbW91c2Utb3ZlcnZpZXcqCiBtb3VzZS1zd2FwLWJ1dHRvbnMJdGVybS50eHQJLyptb3VzZS1zd2FwLWJ1dHRvbnMqCiBtb3VzZS11c2luZwl0ZXJtLnR4dAkvKm1vdXNlLXVzaW5nKgorbW92ZW1lbnQJaW50cm8udHh0CS8qbW92ZW1lbnQqCiBtcy1kb3MJb3NfbXNkb3MudHh0CS8qbXMtZG9zKgogbXNkb3MJb3NfbXNkb3MudHh0CS8qbXNkb3MqCiBtc2Rvcy1hcnJvd3MJb3NfbXNkb3MudHh0CS8qbXNkb3MtYXJyb3dzKgpAQCAtNTQ2Miw2ICs1NDY1LDcgQEAKIG5ldHJ3LUQJcGlfbmV0cncudHh0CS8qbmV0cnctRCoKIG5ldHJ3LVIJcGlfbmV0cncudHh0CS8qbmV0cnctUioKIG5ldHJ3LVMJcGlfbmV0cncudHh0CS8qbmV0cnctUyoKK25ldHJ3LVUJcGlfbmV0cncudHh0CS8qbmV0cnctVSoKIG5ldHJ3LWFjdGl2YXRlCXBpX25ldHJ3LnR4dAkvKm5ldHJ3LWFjdGl2YXRlKgogbmV0cnctYglwaV9uZXRydy50eHQJLypuZXRydy1iKgogbmV0cnctYm9va21hcmsJcGlfbmV0cncudHh0CS8qbmV0cnctYm9va21hcmsqCkBAIC01NTA3LDYgKzU1MTEsNyBAQAogbmV0cnctcmVuYW1lCXBpX25ldHJ3LnR4dAkvKm5ldHJ3LXJlbmFtZSoKIG5ldHJ3LXMJcGlfbmV0cncudHh0CS8qbmV0cnctcyoKIG5ldHJ3LXRyYW5zcGFyZW50CXBpX25ldHJ3LnR4dAkvKm5ldHJ3LXRyYW5zcGFyZW50KgorbmV0cnctdQlwaV9uZXRydy50eHQJLypuZXRydy11KgogbmV0cnctdWlkcGFzcwlwaV9uZXRydy50eHQJLypuZXRydy11aWRwYXNzKgogbmV0cnctdXJscwlwaV9uZXRydy50eHQJLypuZXRydy11cmxzKgogbmV0cnctdglwaV9uZXRydy50eHQJLypuZXRydy12KgpAQCAtNTU1Myw2ICs1NTU4LDcgQEAKIG5ldy1pdGVtcy02CXZlcnNpb242LnR4dAkvKm5ldy1pdGVtcy02KgogbmV3LWl0ZW1zLTcJdmVyc2lvbjcudHh0CS8qbmV3LWl0ZW1zLTcqCiBuZXctbGluZS1jb250aW51YXRpb24JdmVyc2lvbjUudHh0CS8qbmV3LWxpbmUtY29udGludWF0aW9uKgorbmV3LW1hbnBhZ2UtdHJhbnMJdmVyc2lvbjcudHh0CS8qbmV3LW1hbnBhZ2UtdHJhbnMqCiBuZXctbXVsdGktYnl0ZQl2ZXJzaW9uNS50eHQJLypuZXctbXVsdGktYnl0ZSoKIG5ldy1tdWx0aS1sYW5nCXZlcnNpb242LnR4dAkvKm5ldy1tdWx0aS1sYW5nKgogbmV3LW5ldHdvcmstZmlsZXMJdmVyc2lvbjYudHh0CS8qbmV3LW5ldHdvcmstZmlsZXMqCkBAIC01NjkwLDYgKzU2OTYsNyBAQAogcGh0bWwudmltCXN5bnRheC50eHQJLypwaHRtbC52aW0qCiBwaV9leHBsLnR4dAlwaV9leHBsLnR4dAkvKnBpX2V4cGwudHh0KgogcGlfZ3ppcC50eHQJcGlfZ3ppcC50eHQJLypwaV9nemlwLnR4dCoKK3BpX25ldHJ3LnR4dAlwaV9uZXRydy50eHQJLypwaV9uZXRydy50eHQqCiBwaV9zcGVjLnR4dAlwaV9zcGVjLnR4dAkvKnBpX3NwZWMudHh0KgogcGx1Z2luCXVzcl8wNS50eHQJLypwbHVnaW4qCiBwbHVnaW4tZGV0YWlscwlmaWxldHlwZS50eHQJLypwbHVnaW4tZGV0YWlscyoKQEAgLTYwODQsNiArNjA5MSw3IEBACiB0X0NWCXRlcm0udHh0CS8qdF9DVioKIHRfQ28JdGVybS50eHQJLyp0X0NvKgogdF9ETAl0ZXJtLnR4dAkvKnRfREwqCit0X0VJCXRlcm0udHh0CS8qdF9FSSoKIHRfRjEJdGVybS50eHQJLyp0X0YxKgogdF9GMgl0ZXJtLnR4dAkvKnRfRjIqCiB0X0YzCXRlcm0udHh0CS8qdF9GMyoKQEAgLTYxMTcsNiArNjEyNSw3IEBACiB0X0tMCXRlcm0udHh0CS8qdF9LTCoKIHRfUkkJdGVybS50eHQJLyp0X1JJKgogdF9SVgl0ZXJtLnR4dAkvKnRfUlYqCit0X1NJCXRlcm0udHh0CS8qdF9TSSoKIHRfU2IJdGVybS50eHQJLyp0X1NiKgogdF9TZgl0ZXJtLnR4dAkvKnRfU2YqCiB0X1dQCXRlcm0udHh0CS8qdF9XUCoKQEAgLTYyOTksNiArNjMwOCw4IEBACiB0ZXJtY2FwCXRlcm0udHh0CS8qdGVybWNhcCoKIHRlcm1jYXAtY2hhbmdlZAl2ZXJzaW9uNC50eHQJLyp0ZXJtY2FwLWNoYW5nZWQqCiB0ZXJtY2FwLWNvbG9ycwl0ZXJtLnR4dAkvKnRlcm1jYXAtY29sb3JzKgordGVybWNhcC1jdXJzb3ItY29sb3IJdGVybS50eHQJLyp0ZXJtY2FwLWN1cnNvci1jb2xvcioKK3Rlcm1jYXAtY3Vyc29yLXNoYXBlCXRlcm0udHh0CS8qdGVybWNhcC1jdXJzb3Itc2hhcGUqCiB0ZXJtY2FwLXN5bnRheAlzeW50YXgudHh0CS8qdGVybWNhcC1zeW50YXgqCiB0ZXJtY2FwLXRpdGxlCXRlcm0udHh0CS8qdGVybWNhcC10aXRsZSoKIHRlcm1pbmFsLWNvbG9ycwlvc191bml4LnR4dAkvKnRlcm1pbmFsLWNvbG9ycyoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Rlcm0udHh0IGIvcnVudGltZS9kb2MvdGVybS50eHQKaW5kZXggYjQxOGU0Yy4uYjkyNTJhOSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdGVybS50eHQKKysrIGIvcnVudGltZS9kb2MvdGVybS50eHQKQEAgLTEsNCArMSw0IEBACi0qdGVybS50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgT2N0IDIwCisqdGVybS50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgRGVjIDA3CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0yNzUsNiArMjc1LDggQEAKIAl0X0lFCXNldCBpY29uIHRleHQgZW5kCQkJCSp0X0lFKiAqJ3RfSUUnKgogCXRfV1AJc2V0IHdpbmRvdyBwb3NpdGlvbiAoWSwgWCkgaW4gcGl4ZWxzCQkqdF9XUCogKid0X1dQJyoKIAl0X1dTCXNldCB3aW5kb3cgc2l6ZSAoaGVpZ2h0LCB3aWR0aCkgaW4gY2hhcmFjdGVycwkqdF9XUyogKid0X1dTJyoKKwl0X1NJICAgIHN0YXJ0IGluc2VydCBtb2RlIChiYXIgY3Vyc29yIHNoYXBlKSAgICAgICAgICAgICp0X1NJKiAqJ3RfU0knKgorCXRfRUkgICAgZW5kIGluc2VydCBtb2RlIChibG9jayBjdXJzb3Igc2hhcGUpICAgICAgICAgICAgKnRfRUkqICondF9FSScqCiAJdF9SVglyZXF1ZXN0IHRlcm1pbmFsIHZlcnNpb24gc3RyaW5nIChmb3IgeHRlcm0pCSp0X1JWKiAqJ3RfUlYnKgogCQl8eHRlcm0tOGJpdHwgfHY6dGVybXJlc3BvbnNlfCB8J3R0eW1vdXNlJ3wgfHh0ZXJtLWNvZGVzfAogCkBAIC0zOTUsNiArMzk3LDE5IEBACiBJZiBvbmUgb2YgdGhlc2UgaXMgbm90IGF2YWlsYWJsZSwgJ3RfU2InIGFuZCAndF9TZicgYXJlIHVzZWQuICAndF9tZScgaXMgdXNlZAogdG8gcmVzZXQgdG8gdGhlIGRlZmF1bHQgY29sb3JzLgogCisJCQkJKnRlcm1jYXAtY3Vyc29yLXNoYXBlKiAqdGVybWNhcC1jdXJzb3ItY29sb3IqCitXaGVuIFZpbSBlbnRlcnMgSW5zZXJ0IG1vZGUgdGhlICd0X1NJJyBlc2NhcGUgc2VxdWVuY2UgaXMgc2VudC4gIFdoZW4gbGVhdmluZworSW5zZXJ0IG1vZGUgJ3RfRUknIGlzIHVzZWQuICBCdXQgb25seSBpZiBib3RoIGFyZSBkZWZpbmVkLiAgVGhpcyBjYW4gYmUgdXNlZAordG8gY2hhbmdlIHRoZSBzaGFwZSBvciBjb2xvciBvZiB0aGUgY3Vyc29yIGluIEluc2VydCBtb2RlLiAgVGhlc2UgYXJlIG5vdAorc3RhbmRhcmQgdGVybWNhcC90ZXJtaW5mbyBlbnRyaWVzLCB5b3UgbmVlZCB0byBzZXQgdGhlbSB5b3Vyc2VsZi4KK0V4YW1wbGUgZm9yIGFuIHh0ZXJtLCB0aGlzIGNoYW5nZXMgdGhlIGNvbG9yIG9mIHRoZSBjdXJzb3I6ID4KKyAgICBpZiAmdGVybSA9fiAieHRlcm0iCisJbGV0ICZ0X1NJID0gIlw8RXNjPl0xMjtwdXJwbGVceDciCisJbGV0ICZ0X0VJID0gIlw8RXNjPl0xMjtibHVlXHg3IgorICAgIGVuZGlmCitOT1RFOiBXaGVuIFZpbSBleGl0cyB0aGUgc2hhcGUgZm9yIE5vcm1hbCBtb2RlIHdpbGwgcmVtYWluLiAgVGhlIHNoYXBlIGZyb20KK2JlZm9yZSBWaW0gc3RhcnRlZCB3aWxsIG5vdCBiZSByZXN0b3JlZC4KKwogCQkJCQkJCSp0ZXJtY2FwLXRpdGxlKgogVGhlICd0X3RzJyBhbmQgJ3RfZnMnIG9wdGlvbnMgYXJlIHVzZWQgdG8gc2V0IHRoZSB3aW5kb3cgdGl0bGUgaWYgdGhlIHRlcm1pbmFsCiBhbGxvd3MgdGl0bGUgc2V0dGluZyB2aWEgc2VuZGluZyBzdHJpbmdzLiAgVGhleSBhcmUgc2VudCBiZWZvcmUgYW5kIGFmdGVyIHRoZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdG9kby50eHQgYi9ydW50aW1lL2RvYy90b2RvLnR4dAppbmRleCBhZDUyMDlhLi5kNmRhNjJmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90b2RvLnR4dAorKysgYi9ydW50aW1lL2RvYy90b2RvLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBPY3QgMjQKKyp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBEZWMgMDkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMzAsNTcgKzMwLDYgQEAKIAkJCQkJCQkqa25vd24tYnVncyoKIC0tLS0tLS0tLS0tLS0tLS0tLS0tIEtub3duIGJ1Z3MgYW5kIGN1cnJlbnQgd29yayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1JbmNsdWRlIE5ldEJlYW5zIHBhdGNoZXMgKEdvcmRvbiBQcmlldXIsIE9jdCAyMCkKLSAgICBTZWUgdHdvIG1lc3NhZ2VzIGZvciBsaXN0IG9mIGNoYW5nZWQgZmlsZXMuICBBZGRpdGlvbmFsbHk6Ci0JZG9jL2V2YWwudHh0Ci0gICAgRG9jcyBmb3IgbWVzc2FnZSBFNjgwLgotCi1MaW5lIG51bWJlciBub3QgdXBkYXRlZCB3aGVuIGluc2VydGluZyBhIGxpbmUgaW4gYW5vdGhlIHdpbmRvdy4gKEhpdGllcgotU3lsdmFpbiwgT2N0IDI0KQotCi1BYm9ydGluZyBhdCB0aGUgQVRURU5USU9OIHByb21wdCBjYXVzZXMgdHJvdWJsZToKLSAgICBidWZmZXIgcmVtYWlucyBhY3RpdmUsIG53aW5kb3dzIGlzbid0IGNsb3NlZCAoZml4ZWQgaW4gYnVmZmVyLmMpCi0gICAgYWx0ZXJuYXRlIGJ1ZmZlciBnZXRzICJyZWFkIGVycm9yIiBmbGFnLgotICAgICI6c2J1ZiIgYW5kICI6YmFsbCIgbGVhdmUgYW4gZW1wdHkgd2luZG93IGJlaGluZC4KLUNoYW5nZSBpbiBoYW5kbGVfc3dhcF9leGlzdHMoKSBhbHNvIGluIDYuMz8KLUFkZCBlbnRlcl9jbGVhbnVwKCkgYW5kIGxlYXZlX2NsZWFudXAoKSBhbHNvIGluIDYuMz8KLSAgICBidWZmZXIuYwotICAgIGV4X2V2YWwuYwotICAgIHByb3RvL2V4X2V2YWwucHJvCi0gICAgc3RydWN0cy5oCi0gICAgdmltLmgKLQotV2luMzI6IFdoZW4gdGhlIHBhdGggdG8gYSBmaWxlIGhhcyBSdXNzaWFuIGNoYXJhY3RlcnMsICI6Y2QgJTpwOmgiIGRvZXNuJ3QKLXdvcmsuIChWYWxlcnkgS29uZGFrb2ZmKQotU29sdmVkIGluIG9zX21zd2luLmMuICBBZGQgdG8gNi4zPwotCi1QYXRjaCBmb3IgV2luMzIgdGV4dGRvbWFpbjogTkFLQURBSVJBIFl1a2loaXJvLCBTZXB0IDE3LgotCi1IYW5kbGluZyBkZWNpbWFsIHBvaW50IG9uIGtleXBhZDogdXNlIE1hcFZpcnR1YWxLZXkuIChWaW5jZSBOZWdyaSwgT2N0IDIwKQotCi1WYWxlbmNpYTogZXhlY3V0YWJsZSgieHhkLmV4ZSIpIHJldHVybnMgdHJ1ZSB3aGlsZSAiIXh4ZCIgZG9lc24ndCB3b3JrLgotV29ya3MgZmluZSBmb3IgbWUuICBPbmx5IGluIHNwZWNpZmljIGVudmlyb25tZW50PwotCi1uZXRydyBwbHVnaW46IFdoZW4gY29taW5nIGJhY2sgdG8gdGhlIHNhbWUgZGlyZWN0b3J5IGEgc2NyYXRjaCBidWZmZXIgYXBwZWFycy4KLU9ubHkgb24gV2luMzIuIChDaGFybGVzIENhbXBiZWxsLCBTZXB0IDE1KQotCi1OZXcgRWlmZmVsIGluZGVudCBzY3JpcHQgZnJvbSBKb2NlbHluIEZpYXQuICBPSyB3aXRoIERhdmlkIENsYXJrZS4KLQotV2luMzI6IG5vdCB1c2luZyAndGVuYycgaW4gR1VJIGNhdXNlcyBwcm9ibGVtcyBvbiBXaW4gOTg/ICAoSmlyaSBKZXpkaW5za3kpCi1Ucnkgb3V0IHdpdGggUnVzc2lhbiBpbnB1dCBtZXRob2QuCi0KLUFmdGVyICJZIiAnWyBhbmQgJ10gYXJlIG5vdCBhdCBzdGFydC9lbmQgb2YgdGhlIHlhbmtlZCB0ZXh0LiAoS2VuIENsYXJrKQotCi1QYXRjaCBmb3IgYWRkaW5nICdmc3luYycgb3B0aW9uOiBkaXNhYmxlIHVzaW5nIGZzeW5jKCkgb24gZmlsZSB3cml0ZS4gKFNlcHQuCi0yNiwgQ2lhcmFuIE1jQ3JlZXNoKQotCi1Gb2xkaW5nIGZvciBDIHN5bnRheDogKE9sYWYgRGFicnVueiAyNyBzZXB0IDIwMDQpCi0KLUFkZCByZW1hcmsgYWJvdXQgdXNpbmcgVmltIHdpdGggVlMgLm5ldCB0byBWaXN2aW0gZG9jcy4gKERhdmlkIEZpc2hidXJuLCBTZXB0Ci0yNykKLQotVmltIGljb24gZm9yIGRvY3VtZW50cyBhc3NvY2lhdGVkIHdpdGggVmltPyAoUmFodWwgS3Vsa2FybmksIHNlcHQgMjgpCi0KIEFkZCBhIGZ1bmN0aW9uIHRvIHRlc3QgaWYgYSBmb250IG5hbWUgYWN0dWFsbHkgd29ya3MuCiAKIFdoZW4gdXNpbmcgInNldCBsYXN0c3RhdHVzPTIgY21kaGVpZ2h0PTIiIGluIHRoZSAuZ3ZpbXJjIHlvdSBvbmx5IGdldCBvbmUgbGluZQpAQCAtODksNiArMzgsMzAgQEAKIAogIjplIDxjZmlsZT4iIGRvZXMgbm90IGV4cGFuZCB+L2ZpbGUsIHZlcnkgY29uZnVzaW5nIGNvbXBhcmVkIHRvICI6ZSB+L2ZpbGUiLgogCitTSUdIVVAgaXMgZGVsYXllZCB1bnRpbCB3YWl0aW5nIGZvciBhIGNoYXJhY3Rlci4gIENhbiB0aGUgc2FtZSB0aGluZyBiZSBkb25lCitmb3IgU0lHSU5UPyAgVGhlbiBhbHNvIGNoZWNrIHdoZW4gd2FpdGluZyBmb3IgYSBzaG9ydCB0aW1lLgorCitXaGVuIG5vIHRlcm1jYXAvdGVybWxpYiBsaWJyYXJ5IGlzIGZvdW5kLCBjaGVjayB0aGF0IGNvbXBpbGluZyBWaW0gd29ya3MgaW4KK2NvbmZpZ3VyZS4gIEdpdmUgYW4gY2xlYXIgZXJyb3IgbWVzc2FnZSAoImluc3RhbGwgdGVybWNhcCBvciBuY3Vyc2VzLWRldgorcGFja2FnZSIpIHdoZW4gaXQgZG9lc24ndC4KKworV2hlbiBkb2luZyAiOncgZmlsZSIgJ21vZGlmaWVkJyBpcyByZXNldCwgYnV0ICJ1IiBzZXRzIGl0LCB3aGlsZSB0aGUgZmlsZSBpcworYWN0dWFsbHkgdW5jaGFuZ2VkLiAgRG9uJ3QgcmVzZXQgJ21vZGlmaWVkJyB3aGVuICdub2NwJyBpcyBzZXQuCisKK1dpbjMyOiAiZ3ZpbSAtVjEwMCIgc2hvdWxkIHVzZSBkaWFsb2cgd2l0aCBzY3JvbGxiYXIuCisKK1VzaW5nIENUUkwtQSBvbiAiMDgiIHNob3VsZCBub3Qgd29yayBsaWtlIG9jdGFsLiAoTWF0dGhldyBEdWdnYW4pCisKK0N1cnNvciBvbmRlciBsYWF0c3RlIHJlZ2VsIG5hICI6Zy9wYXQvcy8vPiIgY29tbWFuZG8gd2FhcmRvb3IgcmVnZWxzIG5pZXQgbWVlcgord3JhcHBlbi4gKEFkcmkgVmVyaG9lZiwgRGVjIDEpCisKK0luY2x1ZGVkIE5ldEJlYW5zIHBhdGNoZXMgKEdvcmRvbiBQcmlldXIsIE9jdCAyMCkKKyAgICBTZWUgdHdvIG1lc3NhZ2VzIGZvciBsaXN0IG9mIGNoYW5nZWQgZmlsZXMuICBBZGRpdGlvbmFsbHk6CisJZG9jL2V2YWwudHh0CisgICAgRG9jcyBmb3IgbWVzc2FnZSBFNjgwLgorICAgIERvY3MgZm9yICI6bmJrZXkiLgorICAgIEFza2VkIEdvcmRvbiB0byBzZW5kIHRoZSBkaWZmZXJlbmNlcyBhZ2Fpbiwgc29tZSBwYXJ0cyBhcHBhcmVudGx5IGFyZQorICAgIG1pc3NpbmcuCiAKIEZvciB2ZXJzaW9uIDcuMDoKIApAQCAtMTcyLDYgKzE0NSw4IEBACiAJCQkJVGNsIGltcGxlbWVudGF0aW9uIH4vdmltL0hpZXJBc3Npc3QvICkKICAgICA3ICAgQWRkIHBhdGNoIGZyb20gQmVub2l0IENlcnJpbmEgdG8gaW50ZWdyYXRlIFZpbSBhbmQgUGVybCBmdW5jdGlvbnMKIAliZXR0ZXIuICBOb3cgYWxzbyB3b3JrcyBmb3IgUnVieSAoMjAwMSBOb3YgMTApCisgICAgLSAgIFBhdGNoIGZyb20gSGVyY3VsYW5vIGRlIExpbWEgRWlubG9mdCBOZXRvIGZvciBiZXR0ZXIgZm9ybWF0dGluZyBvZiB0aGUKKwlxdWlja2ZpeCB3aW5kb3cgKDIwMDQgZGVjIDIpCiAgICAgNyAgIE1vdGlmOiB1c2UgdGhlIG1lbnUgZm9udCBjb25zaXN0ZW50bHkuICBQYXRjaCBmcm9tIE1hcnRpbiBEYWxlY2tpIDIwMDIKIAlKYW4gMTEuCiAgICAgLSAgIE1vdGlmOiBhZGQgM0Qgc2hhZGluZyBmb3IgdGhlIG1lbnUgZW50cmllcz8gIFBhdGNoIGZyb20gTWFydGluIERhbGVja2kuCkBAIC0yMDQsMTMgKzE3OSwzMiBAQAogCXJ1bnRpbWUgZmlsZXM/CiAJQWxzbzogd2hlbiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgZXhpc3RzLCB1c2UgaXQuICBJZiBpdCBkb2Vzbid0CiAJZXhpc3QsIHNldCBpdC4gIFJlcXVpcmVzIGdvb2QgbmFtZXM6ICRWSU1fVVNFUl9WSU1SQyAgJFZJTV9VU0VSX0RJUgorICAgIC0JQWRkIHRoZSAiOmNidWZmZXIiIGNvbW1hbmQ6IHJlYWQgbGlzdCBvZiBlcnJvcnMgZnJvbSBhIGJ1ZmZlciBpbnN0ZWFkCisJb2YgZnJvbSBhIGZpbGUuIChZZWdhcHBhbiBMYWtzaG1hbmFuLCBPY3QgMzEsIGJ1dCBhdm9pZCB0aGUgdGVtcCBmaWxlKQorCVBlcmhhcHMgIjpjZXhwciIgY291bGQgcmVhZCBmcm9tIGEgbGlzdD8KKwlBZGQgJWIgdG8gJ2Vycm9yZm9ybWF0JzogYnVmZmVyIG51bWJlci4gKFllZ2FwcGFuIExha3NobWFuYW4gLyBTdXJlc2gKKwlHb3ZpbmRhY2hhcikKKyAgICAtCVRoZSBSZXBsYWNlIGRpYWxvZyB0YWtlcyAiXHIiIGxpdGVyYWwsIHVubGVzcyAicmVwbGFjZSBhbGwiIGlzIHVzZWQuCisJTmVlZCB0byBlc2NhcGUgYmFja3NsYXNoZXMuCisgICAgICAgIFdpbjMyOiB0aGUgdGV4dCB0byByZXBsYWNlIHdpdGggaXNuJ3QgcmVtZW1iZXJlZC4KKyAgICAtCUZvciBHVUkgRmluZC9SZXBsYWNlIGRpYWxvZyBzdXBwb3J0IHVzaW5nIGEgcmVnZXhwLiAgUGF0Y2ggZm9yIE1vdGlmCisJYW5kIEdUSyBieSBkZWdyZW5laXIgKG5vdiAxMCBhbmQgbm92IDE4KS4KKy0gICBVc2UgYSBidWlsdGluIGdyZXAgY29tbWFuZCBmb3IgIjpncmVwIj8gIE1ha2VzIGl0IHBvc3NpYmxlIHRvIGFkZCB0aGUKKyAgICBjb2x1bW4gbnVtYmVyLiAgQ2FuIHVzZSB0aGUgY29kZSBvZiAiOmhlbHBncmVwIi4KKyAgICBQYXRjaCBmcm9tIFllZ2FwcGFuIExha3NobWFuYW4sIE5vdiA0LiAgT3IgdXNlICI6Z3JlcCIgYW5kIHNldCAnZ3JlcHByZycKKyAgICB0byBzb21ldGhpbmcgc3BlY2lhbD8gIENvdWxkIGFsc28gZG8gYm90aC4KKyAgICBBbHNvIHN1cHBvcnQgdXNpbmcgIioqIiBpbiBmaWxlbmFtZSwgc28gdGhhdCBhIGRpcmVjdG9yeSB0cmVlIGNhbiBiZQorICAgIHNlYXJjaGVkLgorICAgIEFsc28gc2VlIHRoZSAibWluaWdyZXAudmltIiBzY3JpcHQgb24gd3d3LnZpbS5vcmcuCiAKIAogLSAgIEVkaXQgc2FtZSBmaWxlIG9uIFVuaXggYW5kIGZyb20gTVMtV2luZG93czogbm8gd2FybmluZyBmb3Igc3dhcCBmaWxlLgorLSAgIERyb3AgdGhlIGt2aW0gc3VwcG9ydD8gIFRoZXJlIGlzIG5vIG1haW50ZW5hbmNlIGFuZCAieXppcyIgaXMgc3VwcG9zZWQgdG8KKyAgICByZXBsYWNlIGl0LgogLSAgIEluIHRoZSBrdmltL0tERSBzb3VyY2UgZmlsZXMgZml4IHRoZSBmb3JtYXR0aW5nLgogLSAgIEtERSB2ZXJzaW9uIGlzIGNhbGxlZCAia3ZpbSIuICBNYWtlIGl0ICJndmltIiwgbGlrZSB0aGUgb3RoZXJzPwogLSAgIEJldHRlciBjb25maWd1cmUgY2hlY2sgZm9yIEtERSBpbmNsdWRlIGZpbGVzIGZyb20gRGFuIFNoYXJwLgotLSAgIEtERSBJbnB1dCBtZXRob2QgcGF0Y2guIChZYXN1aGlybyBNYXRzdW1vdG8pCistICAgS0RFIEdVSSBJbnB1dCBtZXRob2QgcGF0Y2guIChZYXN1aGlybyBNYXRzdW1vdG8pICh1cGQuIE9jdCAyNSAyMDA0KQogLSAgIENoYW5nZSBnYV9yb29tIGludG8gZ2FfbWF4bGVuLCBzbyB0aGF0IGl0IGRvZXNuJ3QgbmVlZCB0byBiZQogICAgIGluY3JlbWVudGVkL2RlY3JlbWVudGVkIGVhY2ggdGltZS4KIC0gICBGb3Igc3RyaW5nIHZhcmlhYmxlcywgdXNlIGxlbmd0aCBpbnN0ZWFkIG9mIE5VTCB0ZXJtaW5hdGlvbi4KQEAgLTI3OSw5ICsyNzMsMTEgQEAKICAgICBTaG91bGQgc3RvcmUgdGhlIHZhbHVlcyBpbiBibG9jayAwIG9mIHRoZSBzd2FwIGZpbGUsIGJ1dCB0aGF0IGlzIGFuCiAgICAgaW5jb21wYXRpYmxlIGNoYW5nZS4KIDcgICBTdXBwb3J0IFdJTkRPVyBUQUJTLiAgV29ya3MgbGlrZSBzZXZlcmFsIHBhZ2VzLCBlYWNoIHdpdGggdGhlaXIgb3duCi0gICAgc3BsaXQgd2luZG93cy4gIFBhdGNoIGZvciBHVEsgMS4yIGZyb20gQ2hyaXN0aWFuIE1pY2hvbiwgMjAwNCBKYW4gNi4KLSAgICBBbHNvIGZvciB0aGUgY29uc29sZSEgIEluIEVtYWNzIHRoZXNlIGFyZSBjYWxsZWQgZnJhbWVzLgorICAgIHNwbGl0IHdpbmRvd3MuICBQYXRjaCBmb3IgR1RLIDEuMiBwYXNzZWQgb24gYnkgQ2hyaXN0aWFuIE1pY2hvbiwgMjAwNCBKYW4gNi4KKyAgICBBbHNvIGZvciB0aGUgY29uc29sZSEKKyAgICBJbiBFbWFjcyB0aGVzZSBhcmUgY2FsbGVkIGZyYW1lcy4gIENvdWxkIGFsc28gY2FsbCB0aGVtICJwYWdlcyIuCiAgICAgVXNlICIxZ3QiIC0gIjk5Z3QiIHRvIHN3aXRjaCB0byBhIHRhYj8KKyAgICBTaW1wbGUgcGF0Y2ggZm9yIEdUSyBieSBMdWlzIE0gKG5vdiA3KS4KIC0gICBFTUJFRERJTkc6IE1ha2UgaXQgcG9zc2libGUgdG8gcnVuIFZpbSBpbnNpZGUgYSB3aW5kb3cgb2YgYW5vdGhlciBwcm9ncmFtLgogICAgIEZvciBYd2luZG93cyB0aGlzIGNhbiBiZSBkb25lIHdpdGggWFJlcGFyZW50V2luZG93KCkuCiAgICAgRm9yIEdUSyBOZWlsIEJpcmQgaGFzIGEgcGF0Y2ggdG8gdXNlIFZpbSBsaWtlIGEgd2lkZ2V0LgpAQCAtMzM3LDE0ICszMzMsMTggQEAKIC0gICAib25lbW9yZSIgZmxhZyBpbiAndmlydHVhbGVkaXQnOiBtb3ZlIGN1cnNvciBwYXN0IGVuZCBvZiBsaW5lLiAgUGF0Y2ggYnkKICAgICBNYXR0aWFzIEZsb2RpbiAoMjAwNCBKdWwgMzApCiAKLVRoZSBmc3luYygpIGluIGJ1Zl93cml0ZSgpIGNhdXNlcyBsYXB0b3AgaGFyZGRpc2sgc3BpbnVwLiAgQWRkIGFuIG9wdGlvbiB0bwotYXZvaWQgaXQ/CitXaW4zMjogV2hlbiBzZXR0aW5nICdlbmNvZGluZycgaW4gYSBWaW0gc2VydmVyIHRvICJ1dGYtOCIsIGFuZCB1c2luZyAidmltCistLXJlbW90ZSBydXNzaWFuIiBpbiBhIGNvbnNvbGUsICJydXNzaWFuIiBzaG91bGQgYmUgY29udmVydGVkIGZyb20gdGhlIGNvbnNvbGUKK2VuY29kaW5nIHRvIHV0Zi04LiAgU2VuZCBhbGwgcmVtb3RlIG1lc3NhZ2VzIGluIHV0Zi04PyAgT25seSBvbiBXaW4zMj8KIAogU3VwcG9ydCAiOnNldCBzeW50YXg9Y3BwLmRveHlnZW4iPyAgU3VnZ2VzdGVkIHBhdGNoIGJ5IE1pY2hhZWwgR2VkZGVzICg5IEF1ZwogMjAwNCkuICBTaG91bGQgYWxzbyB3b3JrIGZvciAnZmlsZXR5cGUnLgogCiBQYXRjaCBmb3IgJ2JyZWFraW5kZW50JyBvcHRpb246IHJlcGVhdCBpbmRlbnQgZm9yIHdyYXBwZWQgbGluZS4gKFZhY2xhdgotU21pbGF1ZXIsIDIwMDQgU2VwIDEzKQorU21pbGF1ZXIsIDIwMDQgU2VwIDEzLCBmaXggT2N0IDMxKQorCisiOmJ1ZmRvIGcvc29tZXRoaW5nL3AiIGhhcyB0aGUgbGFzdCBtYXRjaCBvdmVyd3JpdHRlbiBieSB0aGUgZmlsZSBpbmZvLgorRXhhbXBsZSBieSBDZXNhciBBbmRhbG91IChOb3YgMykuCiAKIFdpbjMyOiBJbiAnZmlsZWVuY29kaW5ncycgYWxsb3cgdXNpbmcgImFjcCIgZm9yIHRoZSBhY3RpdmUgY29kZXBhZ2UuICBVc2VmdWwKIHZhbHVlOiAidWNzLWJvbSx1dGYtOCxhY3AsbGF0aW4xIgpAQCAtMzc1LDcgKzM3NSwxMyBAQAogCiBBZGQgZ3VpX21jaF9icm93c2VkaXIoKSBmb3IgTW90aWYsIEtERSBhbmQgTWFjIE9TL1guCiAKLUluc3RhbGwgdmltLWl0LjEgbWFudWFsIHBhZ2UgaW4gLi4uL21hbi9pdC9tYW4xL3ZpbS4xCitBZGQgTWFrZWZpbGUgY29kZSB0byBpbnN0YWxsICotaXQuMSBtYW51YWwgcGFnZXMgaW4gLi4uL21hbi9pdC9tYW4xLyouMQorCitIVE1MIGluZGVudGluZyBjYW4gYmUgc2xvdywgZmluZCBvdXQgd2h5LiAgQW55IHdheSB0byBkbyBzb21lIGtpbmQgb2YKK3Byb2ZpbGluZyBmb3IgVmltIHNjcmlwdD8KKworTWFjOiBwcm9ibGVtIHdpdGggWGNvZGUsIFZpbSBkb2Vzbid0IGNvbnRpbnVlIHVudGlsIHRoZSBuZXh0IGNsaWNrLgorQXBwYXJlbnRseSBoYW5nZXMgaW4gaGFuZGxlX2Ryb3AoKS4gIEEgUG9zdEV2ZW50KCkgYXZvaWRzIGl0LiAoRGEgV29vbiBKdW5nKQogCiAKIFZpIGluY29tcGF0aWJpbGl0eToKQEAgLTEyMTgsNiArMTIyNCw4IEBACiAJCQkJCQkgICAgKmV4dGVuc2lvbnMtaW1wcm92ZW1lbnRzKgogCiBEb2N1bWVudGF0aW9uOgorOCAgIFRoZSBHVUkgaGVscCBzaG91bGQgZXhwbGFpbiB0aGUgRmluZCBhbmQgRmluZC9SZXBsYWNlIGRpYWxvZ3MuICBBZGQgYSBsaW5rCisgICAgdG8gaXQgZnJvbSAiOnByb21wdHJlcGwiIGFuZCAiOnByb21wdGZpbmQiLgogOCAgIExpc3Qgb2Ygb3B0aW9ucyBzaG91bGQgbWVudGlvbiB3aGV0aGVyIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgZXhwYW5kZWQKICAgICBvciBub3QuCiA4ICAgRXh0ZW5kIHVzcl8yNy50eHQgYSBiaXQuIChBZGFtIFNleWZhcnRoKQpAQCAtMTMwOCw4ICsxMzE2LDEwIEBACiA4ICAgIkgiIGFuZCAiTCIgY291bnQgYnVmZmVyIGxpbmVzIGluc3RlYWQgb2Ygd2luZG93IGxpbmVzLiAoU2VydmF0aXVzIEJyYW5kdCkKIDggICBBZGQgYSB3YXkgdG8gYWRkIGZvbGQtcGx1Z2lucy4gIEpvaGFubmVzIFplbGxuZXIgaGFzIG9uZSBmb3IgVkIuCiA3ICAgV2hlbiB1c2luZyBtYW51YWwgZm9sZGluZywgdGhlIHVuZG8gY29tbWFuZCBzaG91bGQgYWxzbyByZXN0b3JlIGZvbGRzLgotLSAgIEFsbG93IGNvbXBsZXRlbHkgaGlkaW5nIGEgY2xvc2VkIGZvbGQuICBSZXF1aXJlIHNob3dpbmcgYSBjaGFyYWN0ZXIgaW4KLSAgICAnZm9sZGNvbHVtbicgdG8gYXZvaWQgdGhlIG1pc3NpbmcgbGluZSBnb2VzIHVubm90aWNlZC4KKy0gICBBbGxvdyBjb21wbGV0ZWx5IGhpZGluZyBhIGNsb3NlZCBmb2xkLiAgRS5nLiwgYnkgc2V0dGluZyAnZm9sZHRleHQnIHRvIGFuCisgICAgZW1wdHkgc3RyaW5nLiAgUmVxdWlyZSBzaG93aW5nIGEgY2hhcmFjdGVyIGluICdmb2xkY29sdW1uJyB0byBhdm9pZCB0aGUKKyAgICBtaXNzaW5nIGxpbmUgZ29lcyB1bm5vdGljZWQuCisgICAgSG93IHRvIGltcGxlbWVudCB0aGlzPwogLSAgIFdoZW4gcHJlc3NpbmcgdGhlIGRvd24gYXJyb3cgb2YgYSBzY3JvbGxiYXIsIGEgY2xvc2VkIGZvbGQgZG9lc24ndCBzY3JvbGwKICAgICB1bnRpbCBhZnRlciBhIGxvbmcgdGltZS4gIEhvdyB0byBtYWtlIHNjcm9sbGluZyB3aXRoIGNsb3NlZCBmb2xkcwogICAgIHNtb290aGVyPwpAQCAtMTMxNywxNSArMTMyNywxNCBAQAogICAgIHVzaW5nIHRoZSB3aW5pbmZvIGluIHdpX2ZvbGRzLgogLSAgICdmb2xkbWV0aG9kJyAidGV4dG9iamVjdCI6IGZvbGQgb24gc2VjdGlvbnMgYW5kIHBhcmFncmFwaCB0ZXh0IG9iamVjdHMuCiAtICAgQWRkICdoaWRlY29tbWVudCcgb3B0aW9uOiBkb24ndCBkaXNwbGF5IGNvbW1lbnRzIGluIC8qICovIGFuZCBhZnRlciAvLy4KKyAgICBPciBpcyB0aGUgY29uY2VhbCBwYXRjaCBmcm9tIFZpbmNlIE5lZ3JpIGEgbW9yZSBnZW5lcmljIHNvbHV0aW9uPwogLSAgICJ6dSI6IHVuZG8gY2hhbmdlIGluIG1hbnVhbCBmb2xkLiAielUiIHJlZG8gY2hhbmdlIGluIG1hbnVhbCBmb2xkLiAgSG93IHRvCiAgICAgaW1wbGVtZW50IHRoaXM/CiAtICAgInpKIiBjb21tYW5kOiBhZGQgdGhlIGxpbmUgb3IgZm9sZCBiZWxvdyB0aGUgZm9sZCBpbiB0aGUgZm9sZCB1bmRlciB0aGUKICAgICBjdXJzb3IuCiAtICAgJ2ZvbGRtZXRob2QnICJzeW50YXgiOiAiZm9sZD0zIjogc2V0IGZvbGQgbGV2ZWwgZm9yIGEgcmVnaW9uLgotLSAgIENhbiBzZXQgJ2ZvbGR0ZXh0JyB0byBlbXB0eSBzdHJpbmc6IGRvbid0IGRpc3BsYXkgYW55IGxpbmUuICBIb3cgdG8KLSAgICBpbXBsZW1lbnQgdGhpcz8KIC0gICBBcHBseSBhIG5ldyBmb2xkbGV2ZWwgdG8gYSByYW5nZSBvZiBsaW5lcy4gKFN0ZXZlIExpdHQpCi0tICAgSGF2ZSBzb21lIHdheSB0byByZXN0cmljdCBjb21tYW5kcyB0byBub3QgZm9sZGVkIHRleHQuICBBbHNvIGNvbW1hbmRzIGxpa2UKKzggICBIYXZlIHNvbWUgd2F5IHRvIHJlc3RyaWN0IGNvbW1hbmRzIHRvIG5vdCBmb2xkZWQgdGV4dC4gIEFsc28gY29tbWFuZHMgbGlrZQogICAgIHNlYXJjaGVzLgogCiAKQEAgLTEzNDQsNyArMTM1Myw3IEBACiAgICAgdGhlIGVuY29kaW5nLiA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PiAgT3IgImNoYXJzZXQ9VVRGLTgiPwogOCAgIFRoZSBxdWlja2ZpeCBmaWxlIGlzIHJlYWQgd2l0aG91dCBjb252ZXJzaW9uLCB0aHVzIGluICdlbmNvZGluZycuICBBZGQgYW4KICAgICBvcHRpb24gdG8gc3BlY2lmeSB0aGUgZW5jb2Rpbmcgb2YgdGhlIGVycm9yZmlsZSBhbmQgY29udmVydCBpdC4gIEFsc28gZm9yCi0gICAgIjpncmVwIi4KKyAgICAiOmdyZXAiIGFuZCAiOmhlbHBncmVwIi4KIDggICBXaGVuIGEgZmlsZSB3YXMgY29udmVydGVkIGZyb20gJ2ZpbGVlbmNvZGluZycgdG8gJ2VuY29kaW5nJywgYSB0YWcgc2VhcmNoCiAgICAgc2hvdWxkIGFsc28gZG8gdGhpcyBvbiB0aGUgc2VhcmNoIHBhdHRlcm4uIChBbmRyemVqIE0uIE9zdHJ1c3prYSkKIDcgICBXaGVuIGNvbnZlcnRpbmcgYSBmaWxlIGZhaWxzLCBtZW50aW9uIHdoaWNoIGJ5dGUgY291bGQgbm90IGJlIGNvbnZlcnRlZCwKQEAgLTE3MTcsOCArMTcyNiw4IEBACiAgICAgdGhpcyBiZSBpbXByb3ZlZD8KIDggICBTZXQgZGVmYXVsdCBmb3IgJ3R0eXNjcm9sbCcgdG8gaGFsZiBhIHNjcmVlbiBoZWlnaHQ/ICBTaG91bGQgc3BlZWQgdXAKICAgICBNUy1ET1MgdmVyc2lvbi4gKE5lZ3JpKQotNyAgIEMgc3ludGF4IGhpZ2hsaWdodGluZyBnZXRzIGEgbG90IHNsb3dlciB3aGVuIGFkZGluZyBhIHJlZ2lvbiBmb3IgZm9sZGluZwotICAgIGZyb20geyB0byB9LiAoQ2hhcmxlcyBDYW1wYmVsbCkgIEluc2VydGluZyBhICJ7IiBpcyB2ZXJ5IHNsb3cuIChkbWFuKQorNyAgIEMgc3ludGF4IGhpZ2hsaWdodGluZyBnZXRzIGEgbG90IHNsb3dlciBhZnRlciAiOnNldCBmb2xkbWV0aG9kPXN5bnRheCIuCisgICAgKENoYXJsZXMgQ2FtcGJlbGwpICBJbnNlcnRpbmcgYSAieyIgaXMgdmVyeSBzbG93LiAoZG1hbikKIDcgICBIVE1MIHN5bnRheCBoaWdobGlnaHRpbmcgaXMgc2xvdyBmb3IgbG9uZyBsaW5lcy4gIFRyeSBkaXNwbGF5aW5nCiAgICAgaHR0cDovL3d3dy50aGVyZWdpc3Rlci5jby51ay9jb250ZW50LzQvMjI5MDguaHRtbC4gKEFuZHJlIFBhbmcpCiA3ICAgQ2hlY2sgaG93IHBlcmZvcm1hbmNlIG9mIGxvYWRpbmcgdGhlIHdvcmRsaXN0IGNhbiBiZSBpbXByb3ZlZCAoYWRkaW5nIGEKQEAgLTIwNjQsNyArMjA3Myw3IEBACiA3ICAgTW90aWY6IEZvciBhIGNvbmZpcm0oKSBkaWFsb2cgPEVudGVyPiBzaG91bGQgYmUgaWdub3JlZCB3aGVuIG5vIGRlZmF1bHQKICAgICBidXR0b24gc2VsZWN0ZWQsIDxFc2M+IHNob3VsZCBjbG9zZSB0aGUgZGlhbG9nLgogLSAgIE1vdGlmIHN0ZWFscyA8RjEwPiBmcm9tIHVzLCB0byBwb3AgdXAgbWVudXMgd2l0aCB0aGUga2V5Ym9hcmQuICBIb3cgZG8gd2UKLSAgICBnZXQgaXQgYmFjayBpZiB3ZSB3YW50IGl0PworICAgIGdldCBpdCBiYWNrIGlmIHdlIHdhbnQgaXQ/ICBJdCdzIGFscmVhZHkgc29sdmVkIGZvciBHVEsuCiAtICAgUGFzdGUgaW4gSW5zZXJ0IG1vZGUgc2hvdWxkIG5vdCBkbyBhdXRvd3JhcCBldGMuICBPciBtYXliZSB0aGlzIHNob3VsZCBiZQogICAgIGNoYW5nZWFibGUgd2l0aCBhbiBvcHRpb24/CiAtICAgUHV0IGEgbmljZSBwaWN0dXJlIGluIHRoZSBpY29uIChidXQgaG93IGRvIHdlIGRvIHRoYXQ/KS4KQEAgLTMzNDAsMTEgKzMzNDksNiBAQAogICAgIHN1ZmZpY2llbnQuICAiOnNldGZsdXNoIiByZXNldHMgdGhlIG9wdGlvbiBzdGFjaz8KICAgICBIb3cgdG8gaGFuZGxlIGFuIGFib3J0ZWQgbWFwcGluZz8gIFJlbWVtYmVyIHBvc2l0aW9uIGluIHRhZyBzdGFjayB3aGVuCiAgICAgbWFwcGluZyBzdGFydHMsIHJlc3RvcmUgaXQgd2hlbiBhbiBlcnJvciBhYm9ydHMgdGhlIG1hcHBpbmc/Ci0tICAgVXNlIGEgYnVpbHRpbiBncmVwIGNvbW1hbmQgZm9yICI6Z3JlcCI/ICBNYWtlcyBpdCBwb3NzaWJsZSB0byBhZGQgdGhlCi0gICAgY29sdW1uIG51bWJlci4gIENhbiB1c2UgdGhlIGNvZGUgb2YgIjpoZWxwZ3JlcCIuCi0gICAgQWxzbyBzdXBwb3J0IHVzaW5nICIqKiIgaW4gZmlsZW5hbWUsIHNvIHRoYXQgYSBkaXJlY3RvcnkgdHJlZSBjYW4gYmUKLSAgICBzZWFyY2hlZC4KLSAgICBBbHNvIHNlZSB0aGUgIm1pbmlncmVwLnZpbSIgc2NyaXB0IG9uIHd3dy52aW0ub3JnLgogLSAgIENoYW5nZSAiOmZpeGRlbCIgaW50byBvcHRpb24gJ2ZpeGRlbCcsIHRfZGVsIHdpbGwgYmUgYWRqdXN0ZWQgZWFjaCB0aW1lCiAgICAgdF9icyBpcyBzZXQ/IChXZWJiKQogLSAgICJnYyI6IGdvdG8gY2hhcmFjdGVyLCBtb3ZlIGFic29sdXRlIGNoYXJhY3RlciBwb3NpdGlvbnMgZm9yd2FyZCwgYWxzbwpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0IGIvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0CmluZGV4IDNiMGEwNmMuLmNkZmIxYTAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dAorKysgYi9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQKQEAgLTEsNCArMSw0IEBACi0qdmVyc2lvbjcudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgT2N0IDEyCisqdmVyc2lvbjcudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgRGVjIDA5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xOSw2ICsxOSw3IEBACiAKIE5ldyBkYXRhIHR5cGVzCQkJCXxuZXctZGF0YS10eXBlc3wKIEtERSBzdXBwb3J0CQkJCXxuZXctS0RFfAorVHJhbnNsYXRlZCBtYW51YWwgcGFnZXMJCQl8bmV3LW1hbnBhZ2UtdHJhbnN8CiBWYXJpb3VzIG5ldyBpdGVtcwkJCXxuZXctaXRlbXMtN3wKIAogSU1QUk9WRU1FTlRTCQkJCXxpbXByb3ZlbWVudHMtN3wKQEAgLTU2LDYgKzU3LDEwIEBACiBmb2xkcyBzaG91bGQgYXBwZWFyIGluIHRoZSBIVE1MLiAocGFydGx5IGJ5IENhcmwgT3N0ZXJ3aXNjaCkKIERpZmYgbW9kZSBub3cgaXMgYWxzbyBjb252ZXJ0ZWQgYXMgaXQgaXMgZGlzcGxheWVkLgogCitXaW4zMjogVGhlIGVmZmVjdCBvZiB0aGUgPEYxMD4ga2V5IGRlcGVuZGVkIG9uICd3aW5hbHRrZXlzJy4gIE5vdyBpdCBkZXBlbmRzCitvbiB3aGV0aGVyIDxGMTA+IGhhcyBiZWVuIG1hcHBlZCBvciBub3QuICBUaGlzIGFsbG93cyBtYXBwaW5nIDxGMTA+IHdpdGhvdXQKK2NoYW5naW5nICd3aW5hbHRrZXlzJy4KKwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBORVcgRkVBVFVSRVMJCQkJCQkqbmV3LTcqCiAKQEAgLTk1LDYgKzEwMCwxMyBAQAogQWxzbyBzZWUgfHBvc3RzY3JpcHQtY2prLXByaW50aW5nfC4gIChNaWtlIFdpbGxpYW1zKQogCiAKK1RyYW5zbGF0ZWQgbWFudWFsIHBhZ2VzCQkJCQkqbmV3LW1hbnBhZ2UtdHJhbnMqCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgbWFudWFsIHBhZ2Ugb2YgVmltIGFuZCBhc3NvY2lhdGVkIHByb2dyYW1zIGlzIG5vdyBhbHNvIGF2YWlsYWJsZSBpbgorSXRhbGlhbiAodHJhbnNsYXRlZCBieSBBbnRvbmlvIENvbG9tYm8pLiAgTW9yZSBsYW5ndWFnZXMgd2lsbCBmb2xsb3cuCisKKwogVmFyaW91cyBuZXcgaXRlbXMJCQkJCSpuZXctaXRlbXMtNyoKIC0tLS0tLS0tLS0tLS0tLS0tCiAKQEAgLTExNSw2ICsxMjcsOCBAQAogJ216cXVhbnR1bScJCVRpbWUgaW4gbXNlYyB0byBzY2hlZHVsZSBNelNjaGVtZSB0aHJlYWRzLgogJ3ByaW50bWJjaGFyc2V0JwlDSksgY2hhcmFjdGVyIHNldCB0byBiZSB1c2VkIGZvciA6aGFyZGNvcHkKICdwcmludG1iZm9udCcJCWZvbnQgbmFtZXMgdG8gYmUgdXNlZCBmb3IgQ0pLIG91dHB1dCBvZiA6aGFyZGNvcHkKKydmc3luYycJCQlXaGV0aGVyIGZzeW5jKCkgaXMgY2FsbGVkIGFmdGVyIHdyaXRpbmcgYSBmaWxlLgorCQkJKENpYXJhbiBNY0NyZWVzaCkKIAogCiBFeCBjb21tYW5kczogfgpAQCAtMTg3LDYgKzIwMSw4IEBACiAKIFBIUCBjb21waWxlciBwbHVnaW4uIChEb3VnIEtlYXJucykKIAorU2l2ZSBzeW50YXggZmlsZS4gKE5pa29sYWkgV2VpYnVsbCkKKwogCiBOZXcgS2V5bWFwczogfgogCkBAIC0yMTAsNiArMjI2LDEwIEBACiBUaGUgbmV0cncgcGx1Z2luIG5vdyBhbHNvIHN1cHBvcnRzIHZpZXdpbmcgYSBkaXJlY3RvcnksIHdoZW4gInNjcDovLyIgaXMgdXNlZC4KIERlbGV0aW5nIGFuZCByZW5hbWluZyBmaWxlcyBpcyBwb3NzaWJsZS4gIChDaGFybGVzIENhbXBiZWxsKQogCitBZGRlZCB0aGUgdF9TSSBhbmQgdF9FSSBlc2NhcGUgc2VxdWVuY2VzIGZvciBzdGFydGluZyBhbmQgZW5kaW5nIEluc2VydCBtb2RlLgorVG8gYmUgdXNlZCB0byBzZXQgdGhlIGN1cnNvciBzaGFwZSB0byBhIGJhciBvciBhIGJsb2NrLiAgTm8gZGVmYXVsdCB2YWx1ZXMsCit0aGV5IGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHRlcm1jYXAvdGVybWluZm8uCisKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogSU1QUk9WRU1FTlRTCQkJCQkJKmltcHJvdmVtZW50cy03KgogCkBAIC0yNjcsNiArMjg3LDE3IEBACiBTdXBwb3J0IGNvbnZlcnNpb24gYmV0d2VlbiB1dGYtOCBhbmQgbGF0aW45IChpc28tODg1OS0xNSkgaW50ZXJuYWxseSwgc28gdGhhdAogZGlncmFwaHMgc3RpbGwgd29yayB3aGVuIGljb252IGlzIG5vdCBhdmFpbGFibGUuCiAKK1doZW4gYSBzZXNzaW9uIGZpbGUgaXMgbG9hZGVkIHdoaWxlIGVkaXRpbmcgYW4gdW5uYW1lZCwgZW1wdHkgYnVmZmVyIHRoYXQKK2J1ZmZlciBpcyB3aXBlZCBvdXQuICBBdm9pZHMgdGhhdCB0aGVyZSBpcyBhbiB1bnVzZWQgYnVmZmVyIGluIHRoZSBidWZmZXIKK2xpc3QuCisKK1dpbjMyOiBXaGVuIGxpYmludGwuZGxsIHN1cHBvcnRzIGJpbmRfdGV4dGRvbWFpbl9jb2Rlc2V0KCksIHVzZSBpdC4KKyhOQUtBREFJUkEgWXVraWhpcm8pCisKK1doZW4gZm9sZHRleHQoKSBmaW5kcyBubyB0ZXh0IGFmdGVyIHJlbW92aW5nIHRoZSBjb21tZW50IGxlYWRlciwgdXNlIHRoZQorc2Vjb25kIGxpbmUgb2YgdGhlIGZvbGQuICBIZWxwcyBmb3IgQy1zdHlsZSAvKiAqLyBjb21tZW50cyB3aGVyZSB0aGUgZmlyc3QKK2xpbmUgaXMganVzdCAiLyoiLgorCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIENPTVBJTEUgVElNRSBDSEFOR0VTCQkJCQkqY29tcGlsZS1jaGFuZ2VzLTcqCiAKQEAgLTQyMSw0ICs0NTIsNDkgQEAKIFdpdGggdGhlIEdVSSBmaW5kL3JlcGxhY2UgZGlhbG9nIGEgcmVwbGFjZSBvbmx5IHdvcmtlZCBpZiB0aGUgcGF0dGVybiB3YXMKIGxpdGVyYWwgdGV4dC4gIE5vdyBpdCB3b3JrcyBmb3IgYW55IHBhdHRlcm4uCiAKK1doZW4gJ2VxdWFsYWx3YXlzJyBpcyBzZXQgYW5kICdlYWRpcmVjdGlvbicgaXMgImhvciIsICI6cXVpdCIgd291bGQgc3RpbGwKK2NhdXNlIGVxdWFsaXppbmcgd2luZG93IGhlaWdodHMgaW4gdGhlIHZlcnRpY2FsIGRpcmVjdGlvbi4KKworV2hlbiAiOmVtZW51IiBpcyB1c2VkIGluIGEgc3RhcnR1cCBzY3JpcHQgdGhlIGNvbW1hbmQgd2FzIHB1dCBpbiB0aGUgdHlwZWFoZWFkCitidWZmZXIsIGNhdXNpbmcgYSBwcm9tcHQgZm9yIHRoZSBjcnlwdCBrZXkgdG8gYmUgbWVzc2VkIHVwLgorCitNYWMgT1MvWDogVGhlIGRlZmF1bHQgZm9yICdpc3ByaW50JyBpbmNsdWRlZCBjaGFyYWN0ZXJzIDEyOC0xNjAsIGNhdXNlcworcHJvYmxlbXMgZm9yIFRlcm1pbmFsLmFwcC4KKworV2hlbiBhIHN5bnRheCBpdGVtIHdpdGggImNvbnRhaW5lZGluIiBpcyB1c2VkLCBpdCBtYXkgbWF0Y2ggaW4gdGhlIHN0YXJ0IG9yCitlbmQgb2YgYSByZWdpb24gd2l0aCBhIG1hdGNoZ3JvdXAsIHdoaWxlIHRoaXMgZG9lc24ndCBoYXBwZW4gZm9yIGEgImNvbnRhaW5zIgorYXJndW1lbnQuCisKK1doZW4gYSB0cmFuc3BhcmVudCBzeW50YXggaXRlbXMgbWF0Y2hlcyBpbiBhbm90aGVyIGl0ZW0gd2hlcmUgdGhlIGhpZ2hsaWdodGluZworaGFzIGFscmVhZHkgc3RvcHBlZCAoYmVjYXVzZSBvZiBhIGhlPSBhcmd1bWVudCksIHRoZSBoaWdobGlnaHRpbmcgd291bGQgY29tZQorYmFjay4KKworV2hlbiBjc2NvcGUgaXMgdXNlZCB0byBzZXQgdGhlIHF1aWNrZml4IGVycm9yIGxpc3QsIGl0IGRpZG4ndCBnZXQgc2V0IGlmIHRoZXJlCit3YXMgb25seSBvbmUgbWF0Y2guIChTZXJnZXkgS2hvcmV2KQorCitXaGVuICdjb25maXJtJyBpcyBzZXQgYW5kIHVzaW5nICI6YmRlbCIgaW4gYSBtb2RpZmllZCBidWZmZXIsIHRoZW4gc2VsZWN0aW5nCisiY2FuY2VsIiwgd291bGQgc3RpbGwgZ2l2ZSBhbiBlcnJvciBtZXNzYWdlLgorCitUaGUgUG9wVXAgbWVudSBpdGVtcyB0aGF0IHN0YXJ0ZWQgVmlzdWFsIG1vZGUgZGlkbid0IHdvcmsgd2hlbiBub3QgaW4gTm9ybWFsCittb2RlLiAgU3dpdGNoaW5nIGJldHdlZW4gc2VsZWN0aW5nIGEgd29yZCBhbmQgYSBsaW5lIHdhcyBub3QgcG9zc2libGUuCisKK1dpbjMyOiBUaGUga2V5cGFkIGRlY2ltYWwgcG9pbnQgYWx3YXlzIHJlc3VsdGVkIGluIGEgJy4nLCB3aGlsZSBvbiBzb21lCitrZXlib2FyZHMgaXQncyBhICcsJy4gIFVzZSBNYXBWaXJ0dWFsS2V5KFZLX0RFQ0lNQUwsIDIpLgorCitSZW1vdmVkIHVudXNlZCBmdW5jdGlvbiBEaXNwbGF5Q29tcFN0cmluZ09wYXF1ZSgpIGZyb20gZ3VpX3czMi5jCisKK0luIFZpc3VhbCBtb2RlIHRoZXJlIGlzIG5vdCBhbHdheXMgYW4gaW5kaWNhdGlvbiB3aGV0aGVyIHRoZSBsaW5lIGJyZWFrIGlzCitzZWxlY3RlZCBvciBub3QuICBIaWdobGlnaHQgdGhlIGNoYXJhY3RlciBhZnRlciB0aGUgbGluZSB3aGVuIHRoZSBsaW5lIGJyZWFrCitpcyBpbmNsdWRlZCwgZS5nLiwgYWZ0ZXIgInYkbyIuCisKK0dUSzogVGhlIDxGMTA+IGtleSBjYW4ndCBiZSBtYXBwZWQsIGl0IHNlbGVjdHMgdGhlIG1lbnUuICBEaXNhYmxlIHRoYXQgd2l0aCBhCitHVEsgc2V0dGluZyBhbmQgZG8gc2VsZWN0IHRoZSBtZW51IHdoZW4gPEYxMD4gaXNuJ3QgbWFwcGVkLiAoRGF2aWQgTmVjYXMpCisKK0FmdGVyICJZIiAnWyBhbmQgJ10gd2VyZSBub3QgYXQgc3RhcnQvZW5kIG9mIHRoZSB5YW5rZWQgdGV4dC4KKworV2hlbiBhIHRlbG5ldCBjb25uZWN0aW9uIGlzIGRyb3BwZWQgVmltIHByZXNlcnZlcyBmaWxlcyBhbmQgZXhpdHMuICBXaGlsZQorZG9pbmcgdGhhdCBhIFNJR0hVUCBtYXkgYXJyaXZlIGFuZCBkaXN0dXJiZSB1cywgdGh1cyBpZ25vcmUgaXQuIChTY290dAorQW5kZXJzb24pICBBbHNvIHBvc3Rwb25lIFNJR0hVUCB1bnRpbCBpdCdzIHNhZmUgdG8gaGFuZGxlLiAgQWRkZWQKK2hhbmRsZV9zaWdodXAoKS4KKwogIHZpbTp0dz03ODp0cz04OmZ0PWhlbHA6bm9ybDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ZpbS1pdC4xIGIvcnVudGltZS9kb2MvdmltLWl0LjEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjBmYjhhYwotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvZG9jL3ZpbS1pdC4xCkBAIC0wLDAgKzEsNTU4IEBACisuVEggVklNIDEgIjIyIGZlYmJyYWlvIDIwMDIiCisuU0ggTk9NRQordmltIFwtIFZJIE1pZ2xpb3JhdG8sIHVuIGVkaXRvciBkaSB0ZXN0aSBwZXIgcHJvZ3JhbW1hdG9yaQorLlNIIFNJTlRBU1NJCisuYnIKKy5CIHZpbQorW29wemlvbmldIFtmaWxlIC4uXQorLmJyCisuQiB2aW0KK1tvcHppb25pXSAtCisuYnIKKy5CIHZpbQorW29wemlvbmldIFwtdCB0YWcKKy5icgorLkIgdmltCitbb3B6aW9uaV0gXC1xIFtmaWxlX2Vycm9yaV0KKy5QUAorLmJyCisuQiBleAorLmJyCisuQiB2aWV3CisuYnIKKy5CIGd2aW0KKy5CIGd2aWV3CisuQiBldmltCisuQiBldmlldworLmJyCisuQiBydmltCisuQiBydmlldworLkIgcmd2aW0KKy5CIHJndmlldworLlNIIERFU0NSSVpJT05FCisuQiBWaW0KK1VuIGVkaXRvcmUgZGkgdGVzdGksIGNvbXBhdGliaWxlIGNvbiwgZSBtaWdsaW9yZSBkaSwgVmkuCitQdfIgZXNzZXJlIHVzYXRvIHBlciBlZGl0YXJlIHF1YWxzaWFzaSBmaWxlIGRpIHRlc3RvLgorUGFydGljb2xhcm1lbnRlIHV0aWxlIHBlciBlZGl0YXJlIHByb2dyYW1taS4KKy5QUAorQ2kgc29ubyBwYXJlY2NoaSBtaWdsaW9yYW1lbnRpIHJpc3BldHRvIGEgVmk6IHVuZG8gbXVsdGlwbGksCitmaW5lc3RyZSBlIGJ1ZmZlciBtdWx0aXBsaSwgZXZpZGVuemlhemlvbmUgc2ludGF0dGljYSwgcG9zc2liaWxpdOAKK2RpIG1vZGlmaWNhcmUgbGEgbGluZWEgZGkgY29tYW5kbywgY29tcGxldGFtZW50byBub21pIGZpbGUsIGhlbHAKK2luIGxpbmVhLCBzZWxlemlvbmUgdGVzdGkgaW4gbW9kYWxpdOAgdmlzdWFsZSwgZXRjLi4KK1ZlZGVyZSAiOmhlbHAgdmlfZGlmZi50eHQiIHBlciB1biBzb21tYXJpbyBkZWxsZSBkaWZmZXJlbnplIGZyYQorLkIgVmltCitlIFZpLgorLlBQCitNZW50cmUgdXNhdGUKKy5CIFZpbQorcG90ZXRlIHJpY2V2ZXJlIG1vbHRvIGFpdXRvIGRhbCBzaXN0ZW1hIGRpIGhlbHAgb25saW5lLCBjb2wgY29tYW5kbyAiOmhlbHAiLgorVmVkZXJlIHF1aSBzb3R0byBsYSBzZXppb25lIEFJVVRPIE9OTElORS4KKy5QUAorUXVhc2kgc2VtcHJlCisuQiBWaW0KK3ZpZW5lIGludm9jYXRvLCBwZXIgbW9kaWZpY2FyZSB1biBmaWxlLCBjb2wgY29tYW5kbworLlBQCisJdmltIGZpbGUKKy5QUAorUGn5IGluIGdlbmVyYWxlCisuQiBWaW0KK3ZpZW5lIGludm9jYXRvIGNvbjoKKy5QUAorCXZpbSBbb3B6aW9uaV0gW2xpc3RhX2ZpbGVdCisuUFAKK1NlIGxpc3RhX2ZpbGUgbm9uIOggcHJlc2VudGUsIGwnZWRpdG9yIGluaXppYSBhcHJlbmRvIHVuIGJ1ZmZlciB2dW90by4KK0FsdHJpbWVudGksIHVuYSBlIHVuYSBzb2xhIGRlbGxlIHF1YXR0cm8gbWFuaWVyZSBpbmRpY2F0ZSBxdWkgc290dG8gcHXyCitlc3NlcmUgdXNhdGEgcGVyIHNjZWdsaWVyZSB1bm8gbyBwafkgZmlsZSBkYSBtb2RpZmljYXJlLgorLlRQIDEyCitmaWxlIC4uCitVbmEgbGlzdGEgZGkgbm9taSBkaSBmaWxlLgorSWwgcHJpbW8gZGkgcXVlc3RpIHNhcuAgaWwgZmlsZSBjb3JyZW50ZSwgZSB2ZXJy4CBsZXR0byBuZWwgYnVmZmVyLgorSWwgY3Vyc29yZSBzYXLgIHBvc2l6aW9uYXRvIHN1bGxhIHByaW1hIGxpbmVhIGRlbCBidWZmZXIuCitQb3RldGUgYXJyaXZhcmUgYWdsaSBhbHRyaSBmaWxlIGNvbCBjb21hbmRvICI6bmV4dCIuCitQZXIgZWRpdGFyZSB1biBmaWxlIGlsIGN1aSBub21lIGluaXppYSBwZXIgIi0iIHByZW1ldHRldGUgIi0tIiBhbGxhCitsaXN0YV9maWxlLgorLlRQCistCitJbCBmaWxlIGRhIGVkaXRhcmUg6CBsZXR0byBkYWxsbyAic3RkaW4iIFtkaSBzb2xpdG8sIG1hIG5vbgorbmVjZXNzcmlhbWVudGUsIGlsIHRlcm1pbmFsZSAtIE5kVF0uICBJIGNvbWFuZGkgc29ubyBsZXR0aSBkYSAic3RkZXJyIiwKK2NoZSBkb3ZyZWJiZSBlc3NlcmUgdW4gdGVybWluYWxlIFt0dHldLgorLlRQCistdCB7dGFnfQorSWwgZmlsZSBkYSBlZGl0YXJlIGUgbGEgcG9zaXppb25lIGluaXppYWxlIGRlbCBjdXJzb3JlIGRpcGVuZG9ubyBkYSAidGFnIiwKK3VuYSBzcGVjaWUgZGkgImV0aWNoZXR0YSIgYSBjdWkgc2FsdGFyZS4KK3t0YWd9IHZpZW5lIGNlcmNhdGEgbmVsIGZpbGUgdGFncywgZWQgaWwgZmlsZSBhZCBlc3NhIGFzc29jaWF0byBkaXZlbnRhCitxdWVsbG8gY29ycmVudGUsIGVkIGlsIGNvbWFuZG8gYWQgZXNzYSBhc3NvY2lhdG8gdmllbmUgZXNlZ3VpdG8uCitEaSBzb2xpdG8gc2kgdXNhIHBlciBwcm9ncmFtbWkgQywgbmVsIHF1YWwgY2FzbyB7dGFnfSBwb3RyZWJiZSBlc3NlcmUgdW4KK25vbWUgZGkgZnVuemlvbmUuCitMJ2VmZmV0dG8g6CBjaGUgaWwgZmlsZSBjb250ZW5lbnRlIHF1ZWxsYSBmdW56aW9uZSBkaXZlbnRhIGlsIGZpbGUgY29ycmVudGUKK2UgaWwgY3Vyc29yZSDoIHBvc2l6aW9uYXRvIGFsbCdpbml6aW8gZGVsbGEgZnVuemlvbmUuCitWZWRlcmUgIjpoZWxwIHRhZy1jb21tYW5kcyIuCisuVFAKKy1xIFtmaWxlX2Vycm9yaV0KK0luaXppYSBuZWxsYSBtb2RhbGl04CBxdWlja0ZpeCBbY29ycmV6aW9uZSB2ZWxvY2VdLgorSWwgZmlsZSBbZmlsZV9lcnJvcmldIOggbGV0dG8gZSBpbCBwcmltbyBlcnJvcmUg6CB2aXN1YWxpenphdG8uCitTZSBbZmlsZV9lcnJvcmldIG5vbiDoIGluZGljYXRvLCBpbCBzdW8gbm9tZSDoIG90dGVudXRvIGRhbCB2YWxvcmUKK2RlbGwnb3B6aW9uZSAnZXJyb3JmaWxlJyAoY2hlLCBzZSBub24gc3BlY2lmaWNhdGEsIHZhbGUgIkF6dGVjQy5FcnIiCitwZXIgbCdBbWlnYSwgImVycm9ycy5lcnIiIHN1IGFsdHJpIHNpc3RlbWkpLgorU2kgcHXyIHNhbHRhcmUgYWxsJ2Vycm9yZSBzdWNjZXNzaXZvIGNvbCBjb21hbmRvICI6Y24iLgorVmVkZXJlICI6aGVscCBxdWlja2ZpeCIuCisuUFAKKy5CIFZpbQorc2kgY29tcG9ydGEgaW4gbW9kbyBkaXZlcnNvIHNlIGludm9jYXRvIGNvbiBub21pIGRpZmZlcmVudGkgKGlsIHByb2dyYW1tYQorZXNlZ3VpYmlsZSAic290dG9zdGFudGUiIHB18iBlc3NlcmUgc2VtcHJlIGxvIHN0ZXNzbykuCisuVFAgMTAKK3ZpbQorTW9kYWxpdOAgIk5vcm1hbCIsIGNvbXBvcnRhbWVudG8gbm9ybWFsZS4KKy5UUAorZXgKK0luaXppYSBpbiBtb2RhbGl04CAiRXgiLgorU2kgcHXyIHBhc3NhcmUgaW4gbW9kYWxpdOAgIk5vcm1hbCIgY29sIGNvbWFuZGkgIjp2aSIuCitTaSBwdfIgaW52b2NhcmUgbGEgbW9kYWxpdOAgIkV4IiBhbmNoZSBjb24gbCdhcmdvbWVudG8gIi1lIi4KKy5UUAordmlldworSW5pemlhIGluIG1vZGFsaXTgICJTb2xhIExldHR1cmEiLiAgTm9uIHBvdGV0ZSBtb2RpZmljYXJlIGkgZmlsZS4KK1NpIHB18iBpbnZvY2FyZSBsYSBtb2RhbGl04CAiU29sYSBMZXR0dXJhIiBhbmNoZSBjb24gbCdhcmdvbWVudG8gIi1SIi4KKy5UUAorZ3ZpbSBndmlldworTGEgdmVyc2lvbmUgR1VJIFtHcmFwaGljYWwgVXNlciBJbnRlcmZhY2VdLgorQXByZSB1bmEgbnVvdmEgZmluZXN0cmEuCitTaSBwdfIgaW52b2NhcmUgbGEgbW9kYWxpdOAgIkdVSSIgYW5jaGUgY29uIGwnYXJnb21lbnRvICItZyIuCisuVFAKK2V2aW0gZXZpZXcKK0xhIHZlcnNpb25lIEdVSSBpbiBtb2RhbGl04CAiRmFjaWxlIiAoc2VtcGxpZmljYXRhKS4KK0FwcmUgdW5hIG51b3ZhIGZpbmVzdHJhLgorU2kgcHXyIGludm9jYXJlIGxhIG1vZGFsaXTgICJGYWNpbGUiIGFuY2hlIGNvbiBsJ2FyZ29tZW50byAiLXkiLgorLlRQCitydmltIHJ2aWV3IHJndmltIHJndmlldworQ29tZSBzb3ByYSwgbWEgY29uIHJlc3RyaXppb25pIGFpIGNvbWFuZGkuICBOb24gc2kgcG90cm5ubyBlc2VndWlyZSBjb21hbmRpCitkZWxsbyBzaGVsbCBvIHNvc3BlbmRlcmUKKy5CIFZpbS4KK1NpIHB18iBpbnZvY2FyZSBsYSBtb2RhbGl04CAiUmlzdHJldHRhIiBhbmNoZSBjb24gbCdhcmdvbWVudG8gIi1aIi4KKy5TSCBPUFpJT05JCitMZSBvcHppb25pIHBvc3Nvbm8gZXNzZXJlIGluIHVuIG9yZGluZSBxdWFsc2lhc2ksIHByaW1hIG8gZG9wbyBpIG5vbWkgZGkKK2ZpbGUuICBPcHppb25pIGNoZSBub24gbmVjZXNzaXRhbm8gdW4gYXJnb21lbnRvIHBvc3Nvbm8gZXNzZXJlIHJhZ2dydXBwYXRlCitkaWV0cm8gYSB1biBzb2xvICItIi4KKy5UUCAxMgorK1tudW1lcm9dCitQZXIgaWwgcHJpbW8gZmlsZSBpbCBjdXJzb3JlIHNhcuAgcG9zaXppb25hdG8gc3VsbGEgbGluZWEgIm51bWVybyIuCitTZSAibnVtZXJvIiBtYW5jYSwgaWwgY3Vyc29yZSBzYXLgIHBvc2l6aW9uYXRvIHN1bGwndWx0aW1hIGxpbmVhIGRlbCBmaWxlLgorLlRQCisrL3tlc3ByZXNzaW9uZX0KK1BlciBpbCBwcmltbyBmaWxlIGlsIGN1cnNvcmUgc2Fy4CBwb3NpemlvbmF0byBhbGxhCitwcmltYSBvY2NvcnJlbnphIGRpIHtlc3ByZXNzaW9uZX0uCitWZWRlcmUgIjpoZWxwIHNlYXJjaC1wYXR0ZXJuIiBwZXIgY29tZSBzcGVjaWZpY2FyZSBsJ2VzcHJlc3Npb25lLgorLlRQCisre2NvbWFuZG99CisuVFAKKy1jIHtjb21hbmRvfQore2NvbWFuZG99IHNhcuAgZXNlZ3VpdG8gZG9wbyBjaGUgaWwKK3ByaW1vIGZpbGUg6CBzdGF0byBsZXR0by4KK3tjb21hbmRvfSDoIGludGVycHJldGF0byBjb21lIHVuIGNvbWFuZG8gRXguCitTZSBpbCB7Y29tYW5kb30gY29udGllbmUgc3BhemkgZGV2ZSBlc3NlcmUgaW5jbHVzbyBmcmEgZG9wcGkgYXBpY2kKKyhvIGFsdHJvIGRlbGltaXRhdG9yZSwgYSBzZWNvbmRhIGRlbGxvIHNoZWxsIGNoZSBzaSBzdGEgdXNhbmRvKS4KK0VzZW1waW86IFZpbSAiK3NldCBzaSIgbWFpbi5jCisuYnIKK05vdGU6IFNpIHBvc3Nvbm8gYXZlcmUgZmlubyBhIDEwIGNvbWFuZGkgIisiIG8gIi1jIi4KKy5UUAorLVMge2ZpbGV9CitJIGNvbWFuZGkgY29udGVudXRpIGluIHtmaWxlfSBzb25vIGVzZWd1aXRpIGRvcG8gbGEgbGV0dHVyYSBkZWwgcHJpbW8gZmlsZS4KK0VxdWl2YWxlbnRlIGEgLWMgInNvdXJjZSB7ZmlsZX0iLgore2ZpbGV9IG5vbiBwdfIgYXZlcmUgdW4gbm9tZSBjaGUgaW5pemlhIHBlciAnLScuCitTZSB7ZmlsZX0g6CBvbWVzc28gc2kgdXNhICJTZXNzaW9uLnZpbSIgKGZ1bnppb25hIHNvbG8gc2UgLVMg6CBsJ3VsdGltbworYXJnb21lbnRvIHNwZWNpZmljYXRvKS4KKy5UUAorLS1jbWQge2NvbWFuZG99CitDb21lICItYyIsIG1hIGlsIGNvbWFuZG8g6CBlc2VndWl0byBQUklNQQorZGkgZXNlZ3VpcmUgcXVhbHNpYXNpIGZpbGUgdmltcmMuCitTaSBwb3Nzb25vIHVzYXJlIGZpbm8gYSAxMCBkaSBxdWVzdGkgY29tYW5kaSwgaW5kaXBlbmRlbnRlbWVudGUgZGFpIGNvbWFuZGkKKyItYyIuCisuVFAKKy1BCitTZQorLkIgVmltCivoIHN0YXRvIGNvbXBpbGF0byBjb24gc3VwcG9ydG8gQVJBQklDIHBlciBlZGl0YXJlIGZpbGUgY29uIG9yaWVudGFtZW50bworZGVzdHJhLXNpbmlzdHJhIGUgdGFzdGllcmEgY29uIG1hcHBhdHVyYSBBcmFiYSwgcXVlc3RhIG9wemlvbmUgaW5pemlhCisuQiBWaW0KK2luIG1vZGFsaXTgICJBcmFiaWMiLCBjaW/oIGltcG9zdGFuZG8gJ2FyYWJpYycuCitBbHRyaW1lbnRpIHZpZW5lIGRhdG8gdW4gbWVzc2FnZ2lvIGRpIGVycm9yZSBlCisuQiBWaW0KK3Rlcm1pbmEgaW4gbW9kbyBhbm9ybWFsZS4KKy5UUAorLWIKK01vZGFsaXTgICJCaW5hcmlhIi4KK1Zlbmdvbm8gaW1wb3N0YXRlIGFsY3VuZSBvcHppb25pIGNoZSBwZXJtZXR0b25vIGRpIG1vZGlmaWNhcmUgdW4gZmlsZQorYmluYXJpbyBvIHVuIHByb2dyYW1tYSBlc2VndWliaWxlLgorLlRQCistQworQ29tcGF0aWJpbGUuICBJbXBvc3RhIGwnb3B6aW9uZSAnY29tcGF0aWJsZScuCitJbiBxdWVzdG8gbW9kbworLkIgVmltCitoYSBxdWFzaSBsbyBzdGVzc28gY29tcG9ydGFtZW50byBkaSBWaSwgYW5jaGUgaW4gcHJlc2VuemEgZGkgdW4gZmlsZQorZGkgY29uZmlndXJhemlvbmUgLnZpbXJjIFtwcm9wcmlvIGRpIFZpbSAtIE5kVF0uCisuVFAKKy1kCitJbml6aWEgaW4gbW9kYWxpdOAgIkRpZmYiIFtkaWZmZXJlbnplXS4KK0RvdnJlYmJlcm8gZXNzZXJjaSBjb21lIGFyZ29tZW50aSBkdWUgbyB0cmUgbm9taSBkaSBmaWxlLgorLkIgVmltCithcHJpcuAgdHV0dGkgaSBmaWxlIGV2aWRlbnppYW5kbyBsZSBkaWZmZXJlbnplIGZyYSBnbGkgc3Rlc3NpLgorRnVuemlvbmEgY29tZSB2aW1kaWZmKDEpLgorLlRQCistZCB7ZGlzcG9zaXRpdm99CitBcHJlIHtkaXNwb3NpdGl2b30gcGVyIHVzYXJsbyBjb21lIHRlcm1pbmFsZS4KK1NvbG8gcGVyIGwnQW1pZ2EuCitFc2VtcGlvOgorIlwtZCBjb246MjAvMzAvNjAwLzE1MCIuCisuVFAKKy1ECitEZWJ1Z2dpbmcuICBWaW0gc2kgbWV0dGUgaW4gbW9kYWxpdOAgImRlYnVnZ2luZyIgYSBwYXJ0aXJlCitkYWxsJ2VzZWN1emlvbmUgZGVsIHByaW1vIGNvbWFuZG8gZGEgdW5vIHNjcmlwdC4KKy5UUAorLWUKK0VzZWd1aXJlCisuQiBWaW0KK2luIG1vZGFsaXTgICJFeCIsIGNvbWUgc2UgaWwgcHJvZ3JhbW1hIGVzZWd1aXRvIHNpYSAiZXgiLgorLlRQCistRQorRXNlZ3VpcmUKKy5CIFZpbQoraW4gbW9kYWxpdOAgIkV4IiBtaWdsaW9yYXRhLCBjb21lIHNlIGlsIHByb2dyYW1tYSBlc2VndWl0byBzaWEgImV4aW0iLgorLlRQCistZgorRGlyZXR0YW1lbnRlIFtGb3JlZ3JvdW5kXS4gIFBlciBsYSB2ZXJzaW9uZSBHVUksCisuQiBWaW0KK25vbiBjcmVhIFtmb3JrXSB1bmEgbnVvdmEgZmluZXN0cmEsIGluZGlwZW5kZW50ZSBkYWxsbyBzaGVsbCBkaSBpbnZvY2F6aW9uZS4KK1BlciBsJ0FtaWdhLAorLkIgVmltCitub24g6CBmYXR0byByaXBhcnRpcmUgcGVyIGFwcmlyZSB1bmEgbnVvdmEgZmluZXN0cmEuCitPcHppb25lIGRhIHVzYXJlIHF1YW5kbworLkIgVmltCivoIGVzZWd1aXRvIGRhIHVuIHByb2dyYW1tYSBjaGUgYXR0ZW5kZSBsYSBmaW5lIGRlbGxhCitzZXNzaW9uZSBkaSBlZGl0IChhZCBlcy4gbWFpbCkuCitTdWxsJ0FtaWdhIGkgY29tYW5kaSAiOnNoIiBlICI6ISIgbm9uIHNvbm8gZGlzcG9uaWJpbGkuCisuVFAKKy0tbm9mb3JrCitEaXJldHRhbWVudGUgW0ZvcmVncm91bmRdLiAgUGVyIGxhIHZlcnNpb25lIEdVSSwKKy5CIFZpbQorbm9uIGNyZWEgW2ZvcmtdIHVuYSBudW92YSBmaW5lc3RyYSwgaW5kaXBlbmRlbnRlIGRhbGxvIHNoZWxsIGRpIGludm9jYXppb25lLgorLlRQCistRgorU2UKKy5CIFZpbQor6CBzdGF0byBjb21waWxhdG8gY29uIHN1cHBvcnRvIEZLTUFQIHBlciBlZGl0YXJlIGZpbGUgY29uIG9yaWVudGFtZW50bworZGVzdHJhLXNpbmlzdHJhIGUgdGFzdGllcmEgY29uIG1hcHBhdHVyYSBGYXJzaSwgcXVlc3RhIG9wemlvbmUgaW5pemlhCisuQiBWaW0KK2luIG1vZGFsaXTgICJGYXJzaSIsIGNpb+ggaW1wb3N0YW5kbyAnZmttYXAnIGUgJ3JpZ2h0bGVmdCcuCitBbHRyaW1lbnRpIHZpZW5lIGRhdG8gdW4gbWVzc2FnZ2lvIGRpIGVycm9yZSBlCisuQiBWaW0KK3Rlcm1pbmEgaW4gbW9kbyBhbm9ybWFsZS4KKy5UUAorLWcKK1NlCisuQiBWaW0KK+ggc3RhdG8gY29tcGlsYXRvIGNvbiBzdXBwb3J0byBHVUksIHF1ZXN0YSBvcHppb25lIGNoaWVkZSBkaSB1c2FybGEuCitTZSBWaW0g6CBzdGF0byBjb21waWxhdG8gc2VuemEgc3VwcG9ydG8gR1VJIHZpZW5lIGRhdG8gdW4gbWVzc2FnZ2lvIGRpIGVycm9yZSBlCisuQiBWaW0KK3Rlcm1pbmEgaW4gbW9kbyBhbm9ybWFsZS4KKy5UUAorLWgKK1VuIHBvJyBkaSBhaXV0byBzdSBvcHppb25pIGUgYXJnb21lbnRpIGNoZSBzaSBwb3Nzb25vIGRhcmUgaW52b2NhbmRvIFZpbS4KK1N1Yml0byBkb3BvCisuQiBWaW0KK2VzY2UuCisuVFAKKy1ICitTZQorLkIgVmltCivoIHN0YXRvIGNvbXBpbGF0byBjb2wgc3VwcG9ydG8gUklHSFRMRUZUIHBlciBlZGl0YXJlIGZpbGUgY29uIG9yaWVudGFtZW50bworZGVzdHJhLXNpbmlzdHJhIGUgdGFzdGllcmEgY29uIG1hcHBhdHVyYSBFYnJhaWNhLCBxdWVzdGEgb3B6aW9uZSBpbml6aWEKKy5CIFZpbQoraW4gbW9kYWxpdOAgIkVicmFpY2EiLCBjaW/oIGltcG9zdGFuZG8gJ2hrbWFwJyBlICdyaWdodGxlZnQnLgorQWx0cmltZW50aSB2aWVuZSBkYXRvIHVuIG1lc3NhZ2dpbyBkaSBlcnJvcmUgZQorLkIgVmltCit0ZXJtaW5hIGluIG1vZG8gYW5vcm1hbGUuCisuVFAKKy1pIHt2aW1pbmZvfQorU2Ug6CBhYmlsaXRhdG8gbCd1c28gZGkgdW4gZmlsZSB2aW1pbmZvLCBxdWVzdGEgb3B6aW9uZSBpbmRpY2EgaWwgbm9tZQorZGVsIGZpbGUgZGEgdXNhcmUgaW52ZWNlIGRpIHF1ZWxsbyBwcmVkZWZpbml0byAifi8udmltaW5mbyIuCitTaSBwdfIgYW5jaGUgZXZpdGFyZSBsJ3VzbyBkaSB1biBmaWxlIC52aW1pbmZvLCBkYW5kbyBjb21lIG5vbWUgIk5PTkUiLgorLlRQCistTAorRXF1aXZhbGVudGUgYSAtci4KKy5UUAorLWwKK01vZGFsaXTgIExpc3AuCitJbXBvc3RhIGxlIG9wemluaSAnbGlzcCcgZSAnc2hvd21hdGNoJy4KKy5UUAorLW0KK0luaWJpc2NlIG1vZGlmaWNhIGZpbGUuCitBbm51bGxhIGwnb3B6aW9uZSAnd3JpdGUnLgorRScgYW5jb3JhIHBvc3NpYmlsZSBtb2RpZmljYXJlIHVuIGJ1ZmZlciBbaW4gbWVtb3JpYSAtIE5kdF0sIG1hIG5vbiBzY3JpdmVybG8uCisuVFAKKy1NCitNb2RpZmljaGUgbm9uIHBlcm1lc3NlLiAgTGUgb3B6aW9uaSAnbW9kaWZpYWJsZScgZSAnd3JpdGUnIHNvbm8gYW5udWxsYXRlLAoraW4gbW9kbyBkYSBpbXBlZGlyZSBzaWEgbW9kaWZpY2hlIGNoZSByaXNjcml0dHVyZS4gIERhIG5vdGFyZSBjaGUgcXVlc3RlCitvcHppb25pIHBvc3Nvbm8gZXNzZXJlIGFiaWxpdGF0ZSBpbiBzZWd1aXRvLCBwZXJtZXR0ZW5kbyBjb3PsIG1vZGlmaWNoZS4KKy5UUAorLU4KK01vZGFsaXTgICJOb24tY29tcGF0aWJpbGUiLiAgQW5udWxsYSBsJ29wemlvbmUgJ2NvbXBhdGlibGUnLgorQ29z7AorLkIgVmltCit2YSB1biBwbycgbWVnbGlvLCBtYSDoIG1lbm8gY29tcGF0aWJpbGUgY29uIFZpLCBhbmNoZSBpbiBhc3NlbnphIGRpIHVuCitmaWxlIC52aW1yYy4KKy5UUAorLW4KK0luaWJpc2NlIGwndXNvIGRpIHVuIGZpbGUgZGkgc3dhcC4KK0lsIHJlY3VwZXJvIGRvcG8gdW5hIGNhZHV0YSBkaSBtYWNjaGluYSBkaXZlbnRhIGltcG9zc2liaWxlLgorVXRpbGUgcGVyIGVkaXRhcmUgdW4gZmlsZSBzdSB1biBzdXBwb3J0byBtb2x0byBsZW50byAoYWQgZXMuIGZsb3BweSkuCitJbCBjb21hbmRvICI6c2V0IHVjPTAiIGhhIGxvIHN0ZXNzbyBlZmZldHRvLgorUGVyIGFiaWxpdGFyZSBpbCByZWN1cGVybyB1c2FyZSAiOnNldCB1Yz0yMDAiLgorLlRQCistbmIKK0RpdmllbmUgdW4gRWRpdG9yIHNlcnZlciBwZXIgTmV0QmVhbnMuICBWZWRlcmUgbGEgZG9jdW1lbnRhemlvbmUgcGVyIGRldHRhZ2xpLgorLlRQCistb1tOXQorQXByaSBOIGZpbmVzdHJlIGluIG9yaXp6b250YWxlLgorU2UgTiBtYW5jYSwgYXByaSB1bmEgZmluZXN0cmEgcGVyIGNpYXNjdW4gZmlsZS4KKy5UUAorLU9bTl0KK0FwcmkgTiBmaW5lc3RyZSwgaW4gdmVydGljYWxlLgorU2UgTiBtYW5jYSwgYXByaSB1bmEgZmluZXN0cmEgcGVyIGNpYXNjdW4gZmlsZS4KKy5UUAorLVIKK01vZGFsaXTgICJTb2xhIExldHR1cmEiLgorSW1wb3N0YSBsJ29wemlvbmUgJ3JlYWRvbmx5Jy4KK1NpIHB18iBhbmNvcmEgbW9kaWZpY2FyZSBpbCBidWZmZXIsIG1hIHNpZXRlIHByb3RldHRpIGRhIHVuYSByaXNjcml0dHVyYQoraW52b2xvbnRhcmlhLgorU2Ugdm9sZXRlIGRhdnZlcm8gcmlzY3JpdmVyZSBpbCBmaWxlLCBhZ2dpdW5nZXRlIHVuIHB1bnRvIGVzY2xhbWF0aXZvCithbCBjb21hbmRvICJFeCIsIGNvbWUgaW4gIjp3ISIuCitMJ29wemlvbmUgLVIgaW1wbGljYSBhbmNoZSBsJ29wemlvbmUgLW4gKHZlZGVyZSBzb3R0bykuCitMJ29wemlvbmUgJ3JlYWRvbmx5JyBwdfIgZXNzZXJlIGFubnVsbGF0YSBjb24gIjpzZXQgbm9ybyIuCitWZWRlcmUgIjpoZWxwICdyZWFkb25seSciLgorLlRQCistcgorTGlzdGEgZmlsZSBkaSBzd2FwLCBhc3NpZW1lIGEgZGF0aSB1dGlsaSBwZXIgdW4gcmVjdXBlcm8uCisuVFAKKy1yIHtmaWxlfQorTW9kYWxpdOAgIlJlY292ZXJ5Ii4KK0lsIGZpbGUgZGkgc3dhcCDoIHVzYXRvIHBlciByZWN1cGVyYXJlIHVuYSBzZXNzaW9uZSBkaSBlZGl0IGZpbml0YSBtYWxlLgorSWwgZmlsZSBkaSBzd2FwIOggdW4gZmlsZSBjb24gbG8gc3Rlc3NvIG5vbWUgZmlsZSBkZWwgZmlsZSBkaSB0ZXN0bworZWRpdGF0bywgY29sIHN1ZmZpc3NvICIuc3dwIi4KK1ZlZGVyZSAiOmhlbHAgcmVjb3ZlcnkiLgorLlRQCistcworTW9kYWxpdOAgc2lsZW56aW9zYS4gIFNvbG8gcXVhbmRvIGludm9jYXRvIGNvbWUgIkV4IiBvIHF1YW5kbyBsJ29wemlvbmUKKyItZSIg6CBzdGF0YSBkYXRhIHByaW1hIGRlbGwnb3B6aW9uZSAiLXMiLgorLlRQCistcyB7c2NyaXB0aW59CitMbyBzY3JpcHQgZmlsZSB7c2NyaXB0aW59IOggbGV0dG8uCitJIGNhcmF0dGVyaSBuZWwgZmlsZSBzb25vIGludGVycHJldGF0aSBjb21lIHNlIGltbWVzc2kgZGEgdm9pLgorTG8gc3Rlc3NvIHNpIHB18iBvdHRlbmVyZSBjb2wgY29tYW5kbyAiOnNvdXJjZSEge3NjcmlwdGlufSIuCitTZSBsYSBmaW5lIGRlbCBmaWxlIGRpIGlucHV0IHZpZW5lIHJhZ2dpdW50YSBwcmltYSBjaGUgVmltIHRlcm1pbmksCitsJ3VsdGVyaW9yZSBpbnB1dCB2aWVuZSBwcmVzbyBkYWxsYSB0YXN0aWVyYS4KKy5UUAorLVQge3Rlcm1pbmFsZX0KK0RpY2UgYQorLkIgVmltCitxdWFsZSB0aXBvIGRpIHRlcm1pbmFsZSBzdGF0ZSB1c2FuZG8uCitVdGlsZSBzb2xvIHNlIGlsIHRlcm1pbmFsZSBub24gdmllbmUgcmljb25vc2NpdXRvIGNvcnJldHRhbWVudGUgZGEgVmltLgorRG92cmViYmUgZXNzZXJlIHVuIHRlcm1pbmFsZSBub3RvIGEKKy5CIFZpbQorKGludGVybmFtZW50ZSkgbyBkZWZpbml0byBuZWwgZmlsZSB0ZXJtY2FwIG8gdGVybWluZm8uCisuVFAKKy11IHt2aW1yY30KK1VzYSBpIGNvbWFuZGkgbmVsIGZpbGUge3ZpbXJjfSBwZXIgaW5pemlhbGl6emF6aW9uaS4KK1R1dHRlIGxlIGFsdHJlIGluaXppYWxpenphemlvbmkgbm9uIHNvbm8gZXNlZ3VpdGUuCitVc2F0ZSBxdWVzdGEgb3B6aW9uZSBwZXIgZWRpdGFyZSBxdWFsY2hlIGZpbGUgZGkgdGlwbyBzcGVjaWFsZS4KK1B18iBhbmNoZSBlc3NlcmUgdXNhdG8gcGVyIG5vbiBmYXJlIGFsY3VuYSBpbml6aWFsaXp6YXppb25lIGRhbmRvIAorY29tZSBub21lICJOT05FIi4KK1ZlZGVyZSAiOmhlbHAgaW5pdGlhbGl6YXRpb24iIGRhIHZpbSBwZXIgdWx0ZXJpb3JpIGRldHRhZ2xpLgorLlRQCistVSB7Z3ZpbXJjfQorVXNhIGkgY29tYW5kaSBuZWwgZmlsZSB7Z3ZpbXJjfSBwZXIgaW5pemlhbGl6emF6aW9uaSBHVUkuCitUdXR0ZSBsZSBhbHRyZSBpbml6aWFsaXp6YXppb25pIEdVSSBub24gc29ubyBlc2VndWl0ZS4KK1B18iBhbmNoZSBlc3NlcmUgdXNhdGEgcGVyIG5vbiBmYXJlIGFsY3VuYSBpbml6aWFsaXp6YXppb25lIEdVSSBkYW5kbyAKK2NvbWUgbm9tZSAiTk9ORSIuCitWZWRlcmUgIjpoZWxwIGd1aS1pbml0IiBkYSB2aW0gcGVyIHVsdGVyaW9yaSBkZXR0YWdsaS4KKy5UUAorLVZbTl0KK1ZlcmJvc28uICBWaW0gbWFuZGEgbWVzc2FnZ2kgcmVsYXRpdmkgYWdsaSBzY3JpcHQgZmlsZSBjaGUgZXNlZ3VlCitlIHF1YW5kbyBsZWdnZSBvIHNjcml2ZSB1biBmaWxlIHZpbWluZm8uICBJbCBudW1lcm8gb3B6aW9uYWxlIE4g6CBpbCB2YWxvcmUKK2RlbGwnb3B6aW9uZSAndmVyYm9zZScuCitJbCB2YWxvcmUgcHJlZGVmaW5pdG8g6CAxMC4KKy5UUAorLXYKK0luaXppYQorLkIgVmltCitpbiBtb2RhbGl04CAiVmkiLCBjb21lIHNlIGlsIHByb2dyYW1tYSBlc2VndWliaWxlIGZvc3NlICJ2aSIuICBRdWVzdG8gaGEKK2VmZmV0dG8gc29sbyBxdWFuZG8gVmltIHZpZW5lIGludm9jYXRvIGNvbiBpbCBub21lICJleCIuCisuVFAKKy13IHtzY3JpcHRvdXR9CitPZ25pIGNhcmF0dGVyZSBpbW1lc3NvIHZpZW5lIHJlZ2lzdHJhdG8gbmVsIGZpbGUge3NjcmlwdG91dH0sCitmaW5jaOkgbm9uIHVzY2l0ZSBkYQorLkIgVmltLgorVXRpbGUgc2Ugc2kgdnVvbGUgY3JlYXJlIHVubyBzY3JpcHQgZmlsZSBkYSB1c2FyZSBjb24gInZpbSAtcyIgbworIjpzb3VyY2UhIi4KK1NlIGlsIGZpbGUge3NjcmlwdG91dH0gZXNpc3RlLCBxdWVsIGNoZSBpbW1ldHRldGUgdmllbmUgYWdnaXVudG8gaW4gZm9uZG8uCisuVFAKKy1XIHtzY3JpcHRvdXR9CitDb21lIC13LCBtYSB1bm8gc2NyaXB0IGZpbGUgZXNpc3RlbnRlIHZpZW5lIHNvdnJhc2NyaXR0by4KKy5UUAorLXgKK1VzbyBkaSBjaWZyYXR1cmEgbmVsbGEgc2NyaXR0dXJhIGRlaSBmaWxlLiAgRScgbmVjZXNzYXJpbyBpbW1ldHRlcmUKK3VuYSBjaGlhdmUgZGkgY2lmcmF0dXJhLgorLlRQCistWAorTm9uIGNvbm5ldHRlcnRpIGFsIHNlcnZlciBYLiAgVmltIHBhcnRlIHBp+SByYXBpZGFtZW50ZSwKK21hIGlsIHRpdG9sbyBkZWxsYSBmaW5lc3RyYSBlIGxhIGNsaXBib2FyZCBub24gc29ubyBkaXNwb25pYmlsaS4KKy5UUAorLXkKK0VzZWd1aXJlCisuQiBWaW0KK2luIG1vZGFsaXTgICJGYWNpbGUiIChzZW1wbGlmaWNhdGEpLCBjb21lIHNlIGwnZXNlZ3VpYmlsZSBpbnZvY2F0bworc2lhICJldmltIiBvICJldmlldyIuCitGYSBz7CBjaGUKKy5CIFZpbQorc2kgY29tcG9ydGkgY29tZSB1biBlZGl0b3IgY2hlIHVzYSBzb2xvIGlsIG1vdXNlIGUgaSBjYXJhdHRlcmkuCisuVFAKKy1aCitNb2RhbGl04CAiUmlzdHJldHRhIi4gIFZpbSBzaSBjb21wb3J0YSBjb21lIHNlIGludm9jYXRvIGNvbiB1biBub21lCitjaGUgaW5pemlhIHBlciAiciIuCisuVFAKKy0tCitTcGVjaWZpY2EgbGEgZmluZSBkZWxsZSBvcHppb25pLgorQXJnb21lbnRpIHNwZWNpZmljYXRpIGRvcG8gcXVlc3RvIHNvbm8gY29uc2lkZXJhdGkgbm9taSBmaWxlLgorU2kgcHXyIHVzYXJlIHBlciBlZGl0YXJlIHVuIGZpbGUgaWwgY3VpIG5vbWUgaW5pemkgcGVyICctJy4KKy5UUAorLS1lY2hvLXdpZAorU29sbyBjb24gR1VJIEdUSzogVmlzdWFsaXp6YSBXaW5kb3cgSUQgc3UgInN0ZG91dCIuCisuVFAKKy0taGVscAorVmltIGTgIHVuIG1lc3NhZ2dpbyBlZCBlc2NlLCBjb21lIGNvbiBsJ2FyZ29tZW50byAiLWgiLgorLlRQCistLWxpdGVyYWwKK0NvbnNpZGVyYSBpIG5vbWkgcGFzc2F0aSBjb21lIGFyZ29tZW50aSBsZXR0ZXJhaSwgc2VuemEgZXNwYW5kZXJlCittZXRhY2FyYXR0ZXJpLiAgTm9uIG5lY2Vzc2FyaW8gaW4gVW5peCwgbG8gc2hlbGwgZXNwYW5kZSBpIG1ldGFjYXJhdHRlcmkuCisuVFAKKy0tbm9wbHVnaW4KK05vbiBjYXJpY2FyZSBwbHVnaW4uICBJbXBsaWNpdG8gc2Ugc2kgc3BlY2lmaWNhIC11IE5PTkUuCisuVFAKKy0tcmVtb3RlCitDb25uZXR0ZXJzaSBhIHVuIHNlcnZlciBWaW0gZSBjaGllZGVyZSBkaSBlZGl0YXJlIGkgZmlsZSBlbGVuY2F0aSBjb21lIGFsdHJpCithcmdvbWVudGkuICBTZSBub24gc2kgdHJvdmEgdW4gc2VydmVyIHZpZW5lIGRhdG8gdW4gbWVzc2FnZ2lvIGUgaSBmaWxlIHNvbm8KK2VkaXRhdGkgbmVsIFZpbSBjb3JyZW50ZS4KKy5UUAorLS1yZW1vdGUtZXhwciB7ZXhwcn0KK0Nvbm5ldHRlcnNpIGEgdW4gc2VydmVyIFZpbSwgdmFsdXRhcmUgaXZpIHtleHByfSBlIHN0YW1wYXJlIGlsIHJpc3VsdGF0b2kKK3N1ICJzdGRvdXQiLgorLlRQCistLXJlbW90ZS1zZW5kIHtjaGlhdml9CitDb25uZXR0ZXJzaSBhIHVuIHNlcnZlciBWaW0gZSBzcGVkaXJnbGkge2NoaWF2aX0uCisuVFAKKy0tcmVtb3RlLXNpbGVudAorQ29tZSAtLXJlbW90ZSwgbWEgc2VuemEgYXZ2aXNhcmUgc2Ugbm9uIHNpIHRyb3ZhIHVuIHNlcnZlci4KKy5UUAorLS1yZW1vdGUtd2FpdAorQ29tZSAtLXJlbW90ZSwgbWEgVmltIG5vbiB0ZXJtaW5hIGZpbmNo6SBpIGZpbGUgbm9uIHNvbm8gc3RhdGkgZWRpdGF0aS4KKy5UUAorLS1yZW1vdGUtd2FpdC1zaWxlbnQKK0NvbWUgLS1yZW1vdGUtd2FpdCwgbWEgc2VuemEgYXZ2aXNhcmUgc2Ugbm9uIHNpIHRyb3ZhIHVuIHNlcnZlci4KKy5UUAorLS1zZXJ2ZXJsaXN0CitMaXN0YSBpIG5vbWkgZGkgdHV0dGkgaSBzZXJ2ZXIgVmltIGRpc3BvbmliaWxpLgorLlRQCistLXNlcnZlcm5hbWUge25vbWV9CitVc2Ege25vbWV9IGNvbWUgbm9tZSBzZXJ2ZXIuICBVc2F0byBwZXIgaWwgVmltIGNvcnJlbnRlLCBhIG1lbm8gY2hlIHNpYQordXNhdG8gY29uIGwnYXJnb21lbnRvIC0tcmVtb3RlLCBuZWwgcXVhbCBjYXNvIGluZGljYSBpbCBzZXJ2ZXIgYSBjdWkKK2Nvbm5ldHRlcnNpLgorLlRQCistLXNvY2tldGlkIHtpZH0KK1NvbG8gY29uIEdVSSBHVEs6IFVzYSBpbCBtZWNjYW5pc21vIEd0a1BsdWcgcGVyIGVzZWd1aXJlIGd2aW0gaW4gdW4nYWx0cmEKK2ZpbmVzdHJhLgorLlRQCistLXZlcnNpb24KK1N0YW1wYSBsYSB2ZXJzaW9uZSBkaSBWaW0gZWQgZXNjaS4KKy5TSCBBSVVUTyBPTkxJTkUKK0JhdHRlcmUgIjpoZWxwIiBpbgorLkIgVmltCitwZXIgaW5pemlhcmUuCitCYXR0ZXJlICI6aGVscCBhcmdvbWVudG8iIHBlciByaWNldmVyZSBhaXV0byBzdSB1bm8gc3BlY2lmaWNvIGFyZ29tZW50by4KK1BlciBlc2VtcGlvOiAiOmhlbHAgWloiIHBlciByaWNldmVyZSBhaXV0byBzdWwgY29tYW5kbyAiWloiLgorVXNhcmUgPFRhYj4gZSBDVFJMLUQgcGVyIGNvbXBsZXRhcmUgZ2xpIGFyZ29tZW50aQorKCI6aGVscCBjbWRsaW5lLWNvbXBsZXRpb24iKS4KK0NpIHNvbm8gInRhZyIgbmVpIGZpbGUgZGkgaGVscCBwZXIgc2FsdGFyZSBkYSB1biBhcmdvbWVudG8gYSB1biBhbHRybworKHNpbWlsaSBhIGxlZ2FtaSBpcGVydGVzdHVhbGksIHZlZGVyZSAiOmhlbHAiKS4KK1R1dHRpIGkgZmlsZSBkaSBkb2N1bWVudGF6aW9uZSBwb3Nzb25vIGVzc2VyZSBuYXZpZ2F0aSBjb3PsLiAgQWQgZXMuOgorIjpoZWxwIHN5bnRheC50eHQiLgorLlNIIEZJTEUKKy5UUCAxNQorL3Vzci9sb2NhbC9saWIvdmltL2RvYy8qLnR4dAorSSBmaWxlIGRpIGNvY3VtZW50YXppb25hIGRpCisuQiBWaW0KKy4KK1VzYXRlICI6aGVscCBkb2MtZmlsZS1saXN0IiBwZXIgYXZlcmUgbGEgbGlzdGEgY29tcGxldGEuCisuVFAKKy91c3IvbG9jYWwvbGliL3ZpbS9kb2MvdGFncworSWwgZmlsZSBkaSB0YWdzIHVzYXRvIHBlciB0cm92YXJlIGluZm9ybWF6aW9uaSBuZWkgZmlsZSBkaSBkb2N1bWVudGF6aW9uZS4KKy5UUAorL3Vzci9sb2NhbC9saWIvdmltL3N5bnRheC9zeW50YXgudmltCitJbml6aWFsaXp6YXppb25pIHNpbnRhdHRpY2hlIGEgbGl2ZWxsbyBkaSBzaXN0ZW1hLgorLlRQCisvdXNyL2xvY2FsL2xpYi92aW0vc3ludGF4LyoudmltCitGaWxlIGRpIGNvbG9yYXppb25lIHNpbnRhdHRpY2EgcGVyIHZhcmkgbGluZ3VhZ2dpLgorLlRQCisvdXNyL2xvY2FsL2xpYi92aW0vdmltcmMKK0luaXppYWxpenphemlvbmkKKy5CIFZpbQorYSBsaXZlbGxvIGRpIHNpc3RlbWEuCisuVFAKKy91c3IvbG9jYWwvbGliL3ZpbS9ndmltcmMKK0luaXppYWxpenphemlvbmkgZ3ZpbSBhIGxpdmVsbG8gZGkgc2lzdGVtYS4KKy5UUAorL3Vzci9sb2NhbC9saWIvdmltL29wdHdpbi52aW0KK1NjcmlwdCBWaW0gdXNhdG8gZGFsIGNvbWFuZG8gIjpvcHRpb25zIiwgdW4gbW9kbyBzZW1wbGljZQorcGVyIHZpc3VhbGl6emFyZSBlIGltcG9zdGFyZSBvcHppb25pLgorLlRQCisvdXNyL2xvY2FsL2xpYi92aW0vbWVudS52aW0KK0luemlhbGl6emF6aW9uaSBkZWwgbWVudSBndmltIGEgbGl2ZWxsbyBkaSBzaXN0ZW1hLgorLlRQCisvdXNyL2xvY2FsL2xpYi92aW0vYnVncmVwb3J0LnZpbQorU2NyaXB0IFZpbSBwZXIgZ2VuZXJhcmUgdW5hIHNlZ25hbGF6aW9uZSBkaSBlcnJvcmUuICBWZWRlcmUgIjpoZWxwIGJ1Z3MiLgorLlRQCisvdXNyL2xvY2FsL2xpYi92aW0vZmlsZXR5cGUudmltCitTY3JpcHQgVmltIHBlciBkZXRlcm1pbmFyZSBpbCB0aXBvIGRpIHVuIGZpbGUgYSBwYXJ0aXJlIGRhbCBzdW8gbm9tZS4KK1ZlZGVyZSAiOmhlbHAgJ2ZpbGV0eXBlJyIuCisuVFAKKy91c3IvbG9jYWwvbGliL3ZpbS9zY3JpcHRzLnZpbQorU2NyaXB0IFZpbSBwZXIgZGV0ZXJtaW5hcmUgaWwgdGlwbyBkaSB1biBmaWxlIGEgcGFydGlyZSBkYWwgc3VvIGNvbnRlbnV0by4KK1ZlZGVyZSAiOmhlbHAgJ2ZpbGV0eXBlJyIuCisuVFAKKy91c3IvbG9jYWwvbGliL3ZpbS8qLnBzCitGaWxlIHVzYXRpIHBlciBzdGFtcGEgUG9zdFNjcmlwdC4KKy5QUAorUGVyIGluZm9ybWF6aW9uaSBhZ2dpb3JuYXRlIFtpbiBpbmdsZXNlIC0gTmRUXSB2ZWRlcmUgbGEgaG9tZSBwYWdlIGRpIFZpbToKKy5icgorPFVSTDpodHRwOi8vd3d3LnZpbS5vcmcvPgorLlNIIFZFREVSRSBBTkNIRQordmltdHV0b3IoMSkKKy5TSCBBVVRPUkUKK0J1b25hIHBhcnRlIGRpCisuQiBWaW0KK+ggc3RhdG8gc2NyaXR0byBkYSBCcmFtIE1vb2xlbmFhciwgY29uIG1vbHRvIGFpdXRvIGRhIGFsdHJpLgorVmVkZXJlICI6aGVscCBjcmVkaXRzIiBpbgorLkIgVmltLgorLmJyCisuQiBWaW0KK+ggYmFzYXRvIHN1IFN0ZXZpZSwgc2NyaXR0byBkYTogVGltIFRob21wc29uLAorVG9ueSBBbmRyZXdzIGUgRy5SLiAoRnJlZCkgV2FsdGVyLgorSW4gdmVyaXTgLCBwb2NvIG8gbnVsbGEg6CByaW1hc3RvIGRlbCBsb3JvIGNvZGljZSBvcmlnaW5hbGUuCisuU0ggQkFDSEkKK1Byb2JhYmlsaS4KK1ZlZGVyZSAiOmhlbHAgdG9kbyIgcGVyIHVuYSBsaXN0YSBkaSBwcm9ibGVtaSBub3RpLgorLlBQCitTaSBub3RpIGNoZSB1biBjZXJ0byBudW1lcm8gZGkgY29tcG9ydGFtZW50aSBjaGUgcG9zc29ubyBlc3NlcmUgY29uc2lkZXJhdGkKK2Vycm9yaSBkYSBxdWFsY3Vubywgc29ubyBpbiBlZmZldHRpIGNhdXNhdGkgZGEgdW5hIHJpcHJvZHV6aW9uZSBmaW4gdHJvcHBvCitmZWRlbGUgZGVsIGNvbXBvcnRhbWVudG8gZGkgVmkuCitTZSByaXRlbmV0ZSBjaGUgYWx0cmUgY29zZSBzaWFubyBlcnJvcmkgInBlcmNo6SBWaSBzaSBjb21wb3J0YSBkaXZlcnNhbWVudGUiLAorZGF0ZSBwcmltYSB1bidvY2NoaWF0YSBhbCBmaWxlIHZpX2RpZmYudHh0CisobyBiYXR0ZXJlIDpoZWxwIHZpX2RpZmYudHh0IGRhIFZpbSkuCitEYXRlIGFuY2hlIHVuJ29jY2hpYXRhIGFsbGUgb3B6aW9uaSAnY29tcGF0aWJsZScgZSAnY3BvcHRpb25zLgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmltLm1hbiBiL3J1bnRpbWUvZG9jL3ZpbS5tYW4KaW5kZXggNTkzOTI2ZC4uZmY5MjVjNiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmltLm1hbgorKysgYi9ydW50aW1lL2RvYy92aW0ubWFuCkBAIC0yNzksOCArMjc5LDggQEAKICAgICAgICAtVyB7c2NyaXB0b3V0fQogICAgICAgICAgICAgICAgICAgIExpa2UgLXcsIGJ1dCBhbiBleGlzdGluZyBmaWxlIGlzIG92ZXJ3cml0dGVuLgogCi0gICAgICAgLXggICAgICAgICAgVXNlICBlbmNyeXB0aW9uICB3aGVuICB3cml0aW5nICBmaWxlcy4gICAgV2lsbCBwcm9tcHQgZm9yIGEKLSAgICAgICAgICAgICAgICAgICBjcnlwdCBrZXkuCisgICAgICAgLXggICAgICAgICAgVXNlIGVuY3J5cHRpb24gd2hlbiB3cml0aW5nIGZpbGVzLiAgV2lsbCBwcm9tcHQgZm9yIGEgY3J5cHQKKyAgICAgICAgICAgICAgICAgICBrZXkuCiAKICAgICAgICAtWCAgICAgICAgICBEb24ndCBjb25uZWN0IHRvIHRoZSBYIHNlcnZlci4gIFNob3J0ZW5zIHN0YXJ0dXAgdGltZSBpbiAgYQogICAgICAgICAgICAgICAgICAgIHRlcm1pbmFsLCAgYnV0ICB0aGUgIHdpbmRvdyB0aXRsZSBhbmQgY2xpcGJvYXJkIHdpbGwgbm90IGJlCkBAIC0yOTcsMTIgKzI5NywxMyBAQAogICAgICAgICAgICAgICAgICAgIGJlIGhhbmRsZWQgYXMgYSBmaWxlIG5hbWUuICBUaGlzIGNhbiAgYmUgIHVzZWQgIHRvICBlZGl0ICBhCiAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUgdGhhdCBzdGFydHMgd2l0aCBhICctJy4KIAotICAgICAgIC0tZWNoby13aWQgIEdUSyBHVUkgb25seTogRWNobyB0aGUgV2luZG93IElEIG9uIHN0ZG91dAorICAgICAgIC0tZWNoby13aWQgIEdUSyBHVUkgb25seTogRWNobyB0aGUgV2luZG93IElEIG9uIHN0ZG91dC4KIAogICAgICAgIC0taGVscCAgICAgIEdpdmUgYSBoZWxwIG1lc3NhZ2UgYW5kIGV4aXQsIGp1c3QgbGlrZSAiLWgiLgogCiAgICAgICAgLS1saXRlcmFsICAgVGFrZSAgZmlsZSAgbmFtZSAgYXJndW1lbnRzICBsaXRlcmFsbHksIGRvIG5vdCBleHBhbmQgd2lsZC0KLSAgICAgICAgICAgICAgICAgICBjYXJkcy4gIE5vdCBuZWVkZWQgb24gVW5peCwgdGhlIHNoZWxsIGV4cGFuZCB3aWxkY2FyZHMuCisgICAgICAgICAgICAgICAgICAgY2FyZHMuICBUaGlzIGhhcyBubyBlZmZlY3Qgb24gVW5peCB3aGVyZSB0aGUgc2hlbGwgIGV4cGFuZHMKKyAgICAgICAgICAgICAgICAgICB3aWxkY2FyZHMuCiAKICAgICAgICAtLW5vcGx1Z2luICBTa2lwIGxvYWRpbmcgcGx1Z2lucy4gIEltcGxpZWQgYnkgLXUgTk9ORS4KIApAQCAtMzExLDE4ICszMTIsMTggQEAKICAgICAgICAgICAgICAgICAgICBpcyBnaXZlbiBhbmQgdGhlIGZpbGVzIGFyZSBlZGl0ZWQgaW4gdGhlIGN1cnJlbnQgVmltLgogCiAgICAgICAgLS1yZW1vdGUtZXhwciB7ZXhwcn0KLSAgICAgICAgICAgICAgICAgICBDb25uZWN0IHRvIGEgVmltIHNlcnZlciwgZXZhbHVhdGUge2V4cHJ9IGluICBpdCAgYW5kICBwcmludAorICAgICAgICAgICAgICAgICAgIENvbm5lY3QgIHRvICBhICBWaW0gc2VydmVyLCBldmFsdWF0ZSB7ZXhwcn0gaW4gaXQgYW5kIHByaW50CiAgICAgICAgICAgICAgICAgICAgdGhlIHJlc3VsdCBvbiBzdGRvdXQuCiAKICAgICAgICAtLXJlbW90ZS1zZW5kIHtrZXlzfQogICAgICAgICAgICAgICAgICAgIENvbm5lY3QgdG8gYSBWaW0gc2VydmVyIGFuZCBzZW5kIHtrZXlzfSB0byBpdC4KIAogICAgICAgIC0tcmVtb3RlLXNpbGVudAotICAgICAgICAgICAgICAgICAgIEFzICAtLXJlbW90ZSwgIGJ1dCAgd2l0aG91dCAgdGhlICB3YXJuaW5nIHdoZW4gbm8gc2VydmVyIGlzCisgICAgICAgICAgICAgICAgICAgQXMgLS1yZW1vdGUsIGJ1dCB3aXRob3V0IHRoZSAgd2FybmluZyAgd2hlbiAgbm8gIHNlcnZlciAgaXMKICAgICAgICAgICAgICAgICAgICBmb3VuZC4KIAogICAgICAgIC0tcmVtb3RlLXdhaXQKLSAgICAgICAgICAgICAgICAgICBBcyAtLXJlbW90ZSwgYnV0IFZpbSBkb2VzIG5vdCBleGl0ICB1bnRpbCAgdGhlICBmaWxlcyAgaGF2ZQorICAgICAgICAgICAgICAgICAgIEFzICAtLXJlbW90ZSwgIGJ1dCAgVmltICBkb2VzIG5vdCBleGl0IHVudGlsIHRoZSBmaWxlcyBoYXZlCiAgICAgICAgICAgICAgICAgICAgYmVlbiBlZGl0ZWQuCiAKICAgICAgICAtLXJlbW90ZS13YWl0LXNpbGVudApAQCAtMzMzLDMxICszMzQsMzEgQEAKICAgICAgICAgICAgICAgICAgICBMaXN0IHRoZSBuYW1lcyBvZiBhbGwgVmltIHNlcnZlcnMgdGhhdCBjYW4gYmUgZm91bmQuCiAKICAgICAgICAtLXNlcnZlcm5hbWUge25hbWV9Ci0gICAgICAgICAgICAgICAgICAgVXNlIHtuYW1lfSBhcyB0aGUgc2VydmVyIG5hbWUuICBVc2VkIGZvciB0aGUgIGN1cnJlbnQgIFZpbSwKKyAgICAgICAgICAgICAgICAgICBVc2UgIHtuYW1lfSAgYXMgdGhlIHNlcnZlciBuYW1lLiAgVXNlZCBmb3IgdGhlIGN1cnJlbnQgVmltLAogICAgICAgICAgICAgICAgICAgIHVubGVzcyB1c2VkIHdpdGggYSAtLXJlbW90ZSBhcmd1bWVudCwgdGhlbiBpdCdzIHRoZSBuYW1lIG9mCiAgICAgICAgICAgICAgICAgICAgdGhlIHNlcnZlciB0byBjb25uZWN0IHRvLgogCiAgICAgICAgLS1zb2NrZXRpZCB7aWR9Ci0gICAgICAgICAgICAgICAgICAgR1RLIEdVSSBvbmx5OiBVc2UgdGhlIEd0a1BsdWcgIG1lY2hhbmlzbSAgdG8gIHJ1biAgZ3ZpbSAgaW4KKyAgICAgICAgICAgICAgICAgICBHVEsgIEdVSSAgb25seTogIFVzZSAgdGhlICBHdGtQbHVnIG1lY2hhbmlzbSB0byBydW4gZ3ZpbSBpbgogICAgICAgICAgICAgICAgICAgIGFub3RoZXIgd2luZG93LgogCiAgICAgICAgLS12ZXJzaW9uICAgUHJpbnQgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdC4KIAogT04tTElORSBIRUxQCi0gICAgICAgVHlwZSAgIjpoZWxwIiAgaW4gVmltIHRvIGdldCBzdGFydGVkLiAgVHlwZSAiOmhlbHAgc3ViamVjdCIgdG8gZ2V0IGhlbHAKLSAgICAgICBvbiBhIHNwZWNpZmljIHN1YmplY3QuICBGb3IgZXhhbXBsZTogIjpoZWxwIFpaIiB0byAgZ2V0ICBoZWxwICBmb3IgIHRoZQotICAgICAgICJaWiIgIGNvbW1hbmQuICAgVXNlIDxUYWI+IGFuZCBDVFJMLUQgdG8gY29tcGxldGUgc3ViamVjdHMgKCI6aGVscCBjbWQtCi0gICAgICAgbGluZS1jb21wbGV0aW9uIikuICBUYWdzIGFyZSBwcmVzZW50IHRvIGp1bXAgZnJvbSBvbmUgcGxhY2UgdG8gIGFub3RoZXIKKyAgICAgICBUeXBlICI6aGVscCIgaW4gVmltIHRvIGdldCBzdGFydGVkLiAgVHlwZSAiOmhlbHAgc3ViamVjdCIgdG8gIGdldCAgaGVscAorICAgICAgIG9uICBhICBzcGVjaWZpYyAgc3ViamVjdC4gICBGb3IgZXhhbXBsZTogIjpoZWxwIFpaIiB0byBnZXQgaGVscCBmb3IgdGhlCisgICAgICAgIlpaIiBjb21tYW5kLiAgVXNlIDxUYWI+IGFuZCBDVFJMLUQgdG8gY29tcGxldGUgc3ViamVjdHMgICgiOmhlbHAgIGNtZC0KKyAgICAgICBsaW5lLWNvbXBsZXRpb24iKS4gICBUYWdzIGFyZSBwcmVzZW50IHRvIGp1bXAgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlcgogICAgICAgIChzb3J0IG9mIGh5cGVydGV4dCBsaW5rcywgc2VlICI6aGVscCIpLiAgQWxsIGRvY3VtZW50YXRpb24gZmlsZXMgY2FuIGJlCiAgICAgICAgdmlld2VkIGluIHRoaXMgd2F5LCBmb3IgZXhhbXBsZSAiOmhlbHAgc3ludGF4LnR4dCIuCiAKIEZJTEVTCiAgICAgICAgL3Vzci9sb2NhbC9saWIvdmltL2RvYy8qLnR4dAotICAgICAgICAgICAgICAgICAgICAgIFRoZSBWaW0gZG9jdW1lbnRhdGlvbiBmaWxlcy4gIFVzZSAiOmhlbHAgIGRvYy1maWxlLWxpc3QiCisgICAgICAgICAgICAgICAgICAgICAgVGhlICBWaW0gZG9jdW1lbnRhdGlvbiBmaWxlcy4gIFVzZSAiOmhlbHAgZG9jLWZpbGUtbGlzdCIKICAgICAgICAgICAgICAgICAgICAgICB0byBnZXQgdGhlIGNvbXBsZXRlIGxpc3QuCiAKICAgICAgICAvdXNyL2xvY2FsL2xpYi92aW0vZG9jL3RhZ3MKLSAgICAgICAgICAgICAgICAgICAgICBUaGUgIHRhZ3MgZmlsZSB1c2VkIGZvciBmaW5kaW5nIGluZm9ybWF0aW9uIGluIHRoZSBkb2N1LQorICAgICAgICAgICAgICAgICAgICAgIFRoZSB0YWdzIGZpbGUgdXNlZCBmb3IgZmluZGluZyBpbmZvcm1hdGlvbiBpbiB0aGUgIGRvY3UtCiAgICAgICAgICAgICAgICAgICAgICAgbWVudGF0aW9uIGZpbGVzLgogCiAgICAgICAgL3Vzci9sb2NhbC9saWIvdmltL3N5bnRheC9zeW50YXgudmltCkBAIC0zNzMsNyArMzc0LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0gd2lkZSBndmltIGluaXRpYWxpemF0aW9ucy4KIAogICAgICAgIC91c3IvbG9jYWwvbGliL3ZpbS9vcHR3aW4udmltCi0gICAgICAgICAgICAgICAgICAgICAgU2NyaXB0IHVzZWQgZm9yIHRoZSAiOm9wdGlvbnMiIGNvbW1hbmQsIGEgIG5pY2UgIHdheSAgdG8KKyAgICAgICAgICAgICAgICAgICAgICBTY3JpcHQgIHVzZWQgIGZvciAgdGhlICI6b3B0aW9ucyIgY29tbWFuZCwgYSBuaWNlIHdheSB0bwogICAgICAgICAgICAgICAgICAgICAgIHZpZXcgYW5kIHNldCBvcHRpb25zLgogCiAgICAgICAgL3Vzci9sb2NhbC9saWIvdmltL21lbnUudmltCkBAIC0zODMsMTEgKzM4NCwxMSBAQAogICAgICAgICAgICAgICAgICAgICAgIFNjcmlwdCB0byBnZW5lcmF0ZSBhIGJ1ZyByZXBvcnQuICBTZWUgIjpoZWxwIGJ1Z3MiLgogCiAgICAgICAgL3Vzci9sb2NhbC9saWIvdmltL2ZpbGV0eXBlLnZpbQotICAgICAgICAgICAgICAgICAgICAgIFNjcmlwdCAgdG8gIGRldGVjdCAgdGhlIHR5cGUgb2YgYSBmaWxlIGJ5IGl0cyBuYW1lLiAgU2VlCisgICAgICAgICAgICAgICAgICAgICAgU2NyaXB0IHRvIGRldGVjdCB0aGUgdHlwZSBvZiBhIGZpbGUgYnkgIGl0cyAgbmFtZS4gICBTZWUKICAgICAgICAgICAgICAgICAgICAgICAiOmhlbHAgJ2ZpbGV0eXBlJyIuCiAKICAgICAgICAvdXNyL2xvY2FsL2xpYi92aW0vc2NyaXB0cy52aW0KLSAgICAgICAgICAgICAgICAgICAgICBTY3JpcHQgdG8gZGV0ZWN0IHRoZSB0eXBlIG9mIGEgIGZpbGUgIGJ5ICBpdHMgIGNvbnRlbnRzLgorICAgICAgICAgICAgICAgICAgICAgIFNjcmlwdCAgdG8gIGRldGVjdCAgdGhlICB0eXBlIG9mIGEgZmlsZSBieSBpdHMgY29udGVudHMuCiAgICAgICAgICAgICAgICAgICAgICAgU2VlICI6aGVscCAnZmlsZXR5cGUnIi4KIAogICAgICAgIC91c3IvbG9jYWwvbGliL3ZpbS8qLnBzCkBAIC00MDIsMTcgKzQwMywxNyBAQAogQVVUSE9SCiAgICAgICAgTW9zdCBvZiBWaW0gd2FzIG1hZGUgYnkgQnJhbSBNb29sZW5hYXIsIHdpdGggYSBsb3Qgb2YgaGVscCBmcm9tIG90aGVycy4KICAgICAgICBTZWUgIjpoZWxwIGNyZWRpdHMiIGluIFZpbS4KLSAgICAgICBWaW0gaXMgYmFzZWQgb24gU3RldmllLCB3b3JrZWQgb24gYnk6IFRpbSBUaG9tcHNvbiwgIFRvbnkgIEFuZHJld3MgIGFuZAotICAgICAgIEcuUi4gIChGcmVkKSBXYWx0ZXIuICBBbHRob3VnaCBoYXJkbHkgYW55IG9mIHRoZSBvcmlnaW5hbCBjb2RlIHJlbWFpbnMuCisgICAgICAgVmltICBpcyAgYmFzZWQgIG9uIFN0ZXZpZSwgd29ya2VkIG9uIGJ5OiBUaW0gVGhvbXBzb24sIFRvbnkgQW5kcmV3cyBhbmQKKyAgICAgICBHLlIuIChGcmVkKSBXYWx0ZXIuICBBbHRob3VnaCBoYXJkbHkgYW55IG9mIHRoZSBvcmlnaW5hbCBjb2RlICByZW1haW5zLgogCiBCVUdTCiAgICAgICAgUHJvYmFibHkuICBTZWUgIjpoZWxwIHRvZG8iIGZvciBhIGxpc3Qgb2Yga25vd24gcHJvYmxlbXMuCiAKLSAgICAgICBOb3RlIHRoYXQgYSBudW1iZXIgb2YgdGhpbmdzIHRoYXQgbWF5IGJlIHJlZ2FyZGVkIGFzIGJ1Z3MgYnkgc29tZSwgIGFyZQotICAgICAgIGluICBmYWN0ICBjYXVzZWQgYnkgYSB0b28tZmFpdGhmdWwgcmVwcm9kdWN0aW9uIG9mIFZpJ3MgYmVoYXZpb3VyLiAgQW5kCi0gICAgICAgaWYgeW91IHRoaW5rIG90aGVyIHRoaW5ncyBhcmUgYnVncyAiYmVjYXVzZSBWaSAgZG9lcyAgaXQgIGRpZmZlcmVudGx5IiwKLSAgICAgICB5b3UgIHNob3VsZCAgdGFrZSAgYSBjbG9zZXIgbG9vayBhdCB0aGUgdmlfZGlmZi50eHQgZmlsZSAob3IgdHlwZSA6aGVscAotICAgICAgIHZpX2RpZmYudHh0IHdoZW4gaW4gVmltKS4gIEFsc28gaGF2ZSBhIGxvb2sgIGF0ICB0aGUgICdjb21wYXRpYmxlJyAgYW5kCisgICAgICAgTm90ZSAgdGhhdCBhIG51bWJlciBvZiB0aGluZ3MgdGhhdCBtYXkgYmUgcmVnYXJkZWQgYXMgYnVncyBieSBzb21lLCBhcmUKKyAgICAgICBpbiBmYWN0IGNhdXNlZCBieSBhIHRvby1mYWl0aGZ1bCByZXByb2R1Y3Rpb24gb2YgVmkncyAgYmVoYXZpb3VyLiAgIEFuZAorICAgICAgIGlmICB5b3UgIHRoaW5rICBvdGhlciB0aGluZ3MgYXJlIGJ1Z3MgImJlY2F1c2UgVmkgZG9lcyBpdCBkaWZmZXJlbnRseSIsCisgICAgICAgeW91IHNob3VsZCB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgdGhlIHZpX2RpZmYudHh0IGZpbGUgIChvciAgdHlwZSAgOmhlbHAKKyAgICAgICB2aV9kaWZmLnR4dCAgd2hlbiAgaW4gIFZpbSkuICAgQWxzbyBoYXZlIGEgbG9vayBhdCB0aGUgJ2NvbXBhdGlibGUnIGFuZAogICAgICAgICdjcG9wdGlvbnMnIG9wdGlvbnMuCiAKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmltZGktaXQuMSBiL3J1bnRpbWUvZG9jL3ZpbWRpLWl0LjEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTQxN2I5MAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvZG9jL3ZpbWRpLWl0LjEKQEAgLTAsMCArMSw0OCBAQAorLlRIIFZJTURJRkYgMSAiMzAgbWFyem8gMjAwMSIKKy5TSCBOT01FCit2aW1kaWZmIFwtIG1vZGlmaWNhIGR1ZSBvIHRyZSB2ZXJzaW9uaSBkaSB1biBmaWxlIGNvbiBWaW0sIHZpc3VhbGl6emFuZG8gbGUKK2RpZmZlcmVuemUKKy5TSCBTSU5UQVNTSQorLmJyCisuQiB2aW1kaWZmCitbb3B6aW9uaV0gZmlsZTEgZmlsZTIgW2ZpbGUzXQorLlBQCisuQiBndmltZGlmZgorLlNIIERFU0NSSVpJT05FCisuQiBWaW1kaWZmCitpbml6aWEKKy5CIFZpbQorcGVyIGR1ZSAobyB0cmUpIGZpbGUuCitPZ25pIGZpbGUgaGEgdW5hIHN1YSBmaW5lc3RyYS4KK0xlIGRpZmZlcmVuemUgZnJhIGZpbGUgc29ubyBldmlkZW56aWF0ZS4KK0UnIHVuYSBtYW5pZXJhIGVsZWdhbnRlIHBlciBjb250cm9sbGFyZSBtb2RpZmljaGUgZSBwb3J0YXJlIG1vZGlmaWNoZQordmVyc28gdW4nYWx0cmEgdmVyc2lvbmUgZGVsbG8gc3Rlc3NvIGZpbGUuCisuUFAKK1ZlZGVyZSB2aW0oMSkgcGVyIGRldHRhZ2xpIHN1IFZpbSBpbiBnZW5lcmFsZS4KKy5QUAorU2UgaW5pemlhdG8gY29uCisuQiBndmltZGlmZgorbGEgR1VJIHNhcuAgdXRpbGl6emF0YSwgc2UgZGlzcG9uaWJpbGUuCisuUFAKK0luIG9nbmkgZmluZXN0cmEgbCdvcHppb25lICdkaWZmJyDoIGltcG9zdGF0YSwgZXZpZGVuemlhbmRvIGNvc+wgbGUKK2RpZmZlcmVuemUuCisuYnIKK0xlIG9wemlvbmkgJ3dyYXAnIGUgJ3Njcm9sbGJpbmQnIHNvbm8gaW1wb3N0YXRlIHBlciBtaWdsaW9yYXJlIGxhCit2aXNpYmlsaXTgIGRlbCB0ZXN0by4KKy5icgorTCdvcHppb25lICdmb2xkbWV0aG9kJyDoIGltcG9zdGF0YSBhbCB2YWxvcmUgImRpZmYiLCBjaGUgbWV0dGUgZ3J1cHBpIGRpCitsaW5lZSB1Z3VhbGkgZnJhIGkgZGl2ZXJzaSBmaWxlIGluIHVuYSBwaWVnYXR1cmEuICdmb2xkY29sdW1uJyDoIGltcG9zdGF0bworYSBkdWUgcGVyIHBvdGVyIGZhY2lsbWVudGUgdmlzdWFsaXp6YXJlIGxlIHBpZWdhdHVyZSwgYXByaXJsZSBlIGNoaXVkZXJsZS4KKy5TSCBPUFpJT05JCitMbyBzY2hlcm1vIOggZGl2aXNvIHZlcnRpY2FsbWVudGUsIGNvbWUgc2UgYXZlc3RlIHVzYXRvIGwnb3B6aW9uZSAiLU8iLgorUGVyIGRpdmlkZXJsbyBvcml6em9udGFsbWVudGUsIHVzYXJlIGwnb3B6aW9uZSAiLW8iLgorLlBQCitQZXIgdHV0dGUgbGUgYWx0cmUgb3B6aW9uaSwgdmVkZXJlIHZpbSgxKS4KKy5TSCBWRURFUkUgQU5DSEUKK3ZpbSgxKQorLlNIIEFVVE9SRQorQnVvbmEgcGFydGUgZGkKKy5CIFZpbQor6CBzdGF0byBzY3JpdHRvIGRhIEJyYW0gTW9vbGVuYWFyLCBjb24gbW9sdG8gYWl1dG8gZGEgYWx0cmkuCitWZWRlcmUgIjpoZWxwIGNyZWRpdHMiIGluCisuQiBWaW0uCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92aW10dS1pdC4xIGIvcnVudGltZS9kb2MvdmltdHUtaXQuMQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xYTI4Njg4Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9kb2MvdmltdHUtaXQuMQpAQCAtMCwwICsxLDU0IEBACisuVEggVklNVFVUT1IgMSAiMjAwMSBBcHJpbCAyIgorLlNIIE5PTUUKK3ZpbXR1dG9yIFwtIHRoZSBWaW0gdHV0b3IKKy5TSCBTSU5UQVNTSQorLmJyCisuQiB2aW10dXRvciBbbGluZ3VhXQorLlNIIERFU0NSSVpJT05FCisuQiBWaW10dXRvcgoraW5pemlhIGlsCisuQiBWaW0KK3R1dG9yLgorSXQgY29waWVzIHRoZSB0dXRvciBmaWxlIGZpcnN0LCBzbyB0aGF0IGl0IGNhbiBiZSBtb2RpZmllZCB3aXRob3V0IGNoYW5naW5nCit0aGUgb3JpZ2luYWwgZmlsZS4KKy5QUAorVGhlCisuQiBWaW10dXRvcgoraXMgdXNlZnVsIGZvciBwZW9wbGUgdGhhdCB3YW50IHRvIGxlYXJuIHRoZWlyIGZpcnN0CisuQiBWaW0KK2NvbW1hbmRzLgorLlBQCitUaGUgb3B0aW9uYWwgW2xhbmd1YWdlXSBhcmd1bWVudCBpcyB0aGUgdHdvLWxldHRlciBuYW1lIG9mIGEgbGFuZ3VhZ2UsIGxpa2UKKyJpdCIgb3IgImVzIi4KK0lmIHRoZSBbbGFuZ3VhZ2VdIGFyZ3VtZW50IGlzIG1pc3NpbmcsIHRoZSBsYW5ndWFnZSBvZiB0aGUgY3VycmVudCBsb2NhbGUgd2lsbAorYmUgdXNlZC4KK0lmIGEgdHV0b3IgaW4gdGhpcyBsYW5ndWFnZSBpcyBhdmFpbGFibGUsIGl0IHdpbGwgYmUgdXNlZC4KK090aGVyd2lzZSB0aGUgRW5nbGlzaCB2ZXJzaW9uIHdpbGwgYmUgdXNlZC4KKy5QUAorLkIgVmltCitpcyBhbHdheXMgc3RhcnRlZCBpbiBWaSBjb21wYXRpYmxlIG1vZGUuCisuU0ggRklMRQorLlRQIDE1CisvdXNyL2xvY2FsL2xpYi92aW0vdHV0b3IvdHV0b3JbLmxhbmd1YWdlXQorVGhlCisuQiBWaW10dXRvcgordGV4dCBmaWxlKHMpLgorLlRQIDE1CisvdXNyL2xvY2FsL2xpYi92aW0vdHV0b3IvdHV0b3IudmltCitUaGUgVmltIHNjcmlwdCB1c2VkIHRvIGNvcHkgdGhlCisuQiBWaW10dXRvcgordGV4dCBmaWxlLgorLlNIIEFVVE9SRQorVGhlCisuQiBWaW10dXRvcgor6CBzdGF0byBzY3JpdHRvIGluIG9yaWdpbmUgcGVyIFZpIGRhIE1pY2hhZWwgQy4gUGllcmNlIGUgUm9iZXJ0IEsuIFdhcmUsCitDb2xvcmFkbyBTY2hvb2wgb2YgTWluZXMsIHVzYW5kbyBpZGVlIGZvcm5pdGUgZGEgQ2hhcmxlcyBTbWl0aCwKK0NvbG9yYWRvIFN0YXRlIFVuaXZlcnNpdHkuCitFLW1haWw6IGJ3YXJlQG1pbmVzLmNvbG9yYWRvLmVkdS4KKy5icgorRScgc3RhdG8gbW9kaWZpY2F0byBwZXIKKy5CIFZpbQorZGEgQnJhbSBNb29sZW5hYXIuCitQZXIgaSBub21pIGRlaSB0cmFkdXR0b3JpLCB2ZWRlcmUgaSBmaWxlIHVzYXRpIG5lbGxlIHJpc3BldHRpdmUgbGluZ3VlLgorLlNIIFZFREVSRSBBTkNIRQordmltKDEpCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy94eGQtaXQuMSBiL3J1bnRpbWUvZG9jL3h4ZC1pdC4xCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjllNmJjNWYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL2RvYy94eGQtaXQuMQpAQCAtMCwwICsxLDQwMiBAQAorLlRIIFhYRCAxICJBZ29zdG8gMTk5NiIgIlBhZ2luYSBkaSBtYW51YWxlIHBlciB4eGQiCisuXCIKKy5cIiAyMSBNYWdnaW8gMTk5NgorLlwiIEF1dG9yZSBkZWxsYSBwYWdpbmEgZGkgbWFudWFsZToKKy5cIiAgICBUb255IE51Z2VudCA8dG9ueUBzY3RudWdlbi5wcHAuZ3UuZWR1LmF1PiA8VC5OdWdlbnRAc2N0Lmd1LmVkdS5hdT4KKy5cIiAgICBNb2RpZmljYXRvIGRhIEJyYW0gTW9vbGVuYWFyIDxCcmFtQHZpbS5vcmc+CisuU0ggTk9NRQorLkkgeHhkCitcLSBQcm9kdWNlIGVzYWRlY2ltYWxlIGRhIHVuIGZpbGUgYmluYXJpbyBvIHZpY2V2ZXJzYS4KKy5TSCBTSU5UQVNTSQorLkIgeHhkCitcLWhbZWxwXQorLmJyCisuQiB4eGQKK1tvcHppb25pXSBbaW5wdXRfZmlsZSBbb3V0cHV0X2ZpbGVdXQorLmJyCisuQiB4eGQKK1wtcltldmVydF0gW29wemlvbmldIFtpbnB1dF9maWxlIFtvdXRwdXRfZmlsZV1dCisuU0ggREVTQ1JJWklPTkUKKy5JIHh4ZAorY3JlYSB1bidpbW1hZ2luZSBlc2FkZWNpbWFsZSBkaSB1biBkYXRvIGZpbGUgbyBkZWxsbyAic3RhbmRhcmQgaW5wdXQiLgorUHXyIGFuY2hlIG90dGVuZXJlIGRhIHVuJ2ltbWFnaW5lIGVzYWRlY2ltYWxlIGlsIGZpbGUgYmluYXJpbyBvcmlnaW5hbGUuCitDb21lCisuQlIgdXVlbmNvZGUoMSkKK2UKKy5CUiB1dWRlY29kZSgxKQorcGVybWV0dGUgZGkgdHJhc21ldHRlcmUgZGF0aSBiaW5hcmkgaW4gdW5hIHJhcHJlc2VudGF6aW9uZSBBU0NJSSAiYSBwcm92YQorZGkgZW1haWwiLCBtYSBoYSBhbmNoZSBpbCB2YW50YWdnaW8gZGkgcG90ZXIgZGVjb2RpZmljYXJlIHN1bGxvICJzdGFuZGFyZAorb3V0cHV0Ii4gIElub2x0cmUsIHB18iBlc3NlcmUgdXNhdG8gcGVyIGVmZmV0dHVhcmUgZGVsbGUgbW9kaWZpY2hlIChwYXRjaCkKK2EgZmlsZSBiaW5hcmkuCisuU0ggT1BaSU9OSQorU2Ugbm9uIHNpIHNwZWNpZmljYSB1bgorLkkgaW5wdXRfZmlsZQoraWwgcHJvZ3JhbW1hIGxlZ2dlIGRhbGxvICJzdGFuZGFyZCBpbnB1dCIuCitTZQorLkkgaW5wdXRfZmlsZQor6CBzcGVjaWZpY2F0byBjb21lIGlsIGNhcmF0dGVyZQorLlJCIFxgIFwtICcKKywgbCdpbnB1dCDoIGxldHRvIGRhbGxvICJzdGFuZGFyZCBpbnB1dCIuCitTZSBub24gc2kgc3BlY2lmaWNhIHVuCisuSSBvdXRwdXRfZmlsZQorKG8gc2kgbWV0dGUgYWwgc3VvIHBvc3RvIGlsIGNhcmF0dGVyZQorLlJCIFxgIFwtICcKKyksIGkgcmlzdWx0YXRpIHNvbm8gaW52aWF0aSBhbGxvICJzdGFuZGFyZCBvdXRwdXQiLgorLlBQCitTaSBub3RpIGNoZSBsYSBzY2Fuc2lvbmUgZGVpIGNhcmF0dGVyaSDoICJwaWdyYSIsIGUgbm9uIGNvbnRyb2xsYSBvbHRyZQorbGEgcHJpbWEgbGV0dGVyYSBkZWxsJ29wemlvbmUsIGEgbWVubyBjaGUgbCdvcHppb25lIHNpYSBzZWd1aXRhIGRhIHVuCitwYXJhbWV0cm8uCitHbGkgc3BhemkgZnJhIHVuYSBzaW5nb2xhIGxldHRlcmEgZGkgb3B6aW9uZSBlIGlsIGNvcnJpc3BvbmRlbnRlIHBhcmFtZXRybworZG9wbyBkaSBlc3NhIHNvbm8gZmFjb2x0YXRpdmkuCitJIHBhcmFtZXRyaSBkZWxsZSBvcHppb25pIHBvc3Nvbm8gZXNzZXJlIHNwZWNpZmljYXRpIHVzYW5kbyBsYSBub3RhemlvbmUKK2RlY2ltYWxlLCBlc2FkZWNpbWFsZSBvcHB1cmUgb3R0YWxlLgorUGVydGFudG8KKy5CUiBcLWM4ICwKKy5CUiAiXC1jIDgiICwKKy5CIFwtYyAwMTAKK2UKKy5CIFwtY29scyA4Citzb25vIG5vdGF6aW9uaSBlcXVpdmFsZW50aSBmcmEgbG9yby4KKy5QUAorLlRQCisuSVIgXC1hICIgfCAiIFwtYXV0b3NraXAKK1JpY2hpZXN0YSBkaSBhdXRvc2tpcDogVW4gc2luZ29sbyAnKicgcmltcGlhenphIGxpbmVlIGRpIHplcmkgYmluYXJpLgorVmFsb3JlIHByZWRlZmluaXRvOiBvZmYuCisuVFAKKy5JUiBcLWIgIiB8ICIgXC1iaXRzCitSaWNoaWVzdGEgZGkgdW5hIGltbWFnaW5lIGJpbmFyaWEgKGNpZnJlIGJpbmFyaWUpLCBpbnZlY2UgY2hlIGVzYWRlY2ltYWxlLgorUXVlc3RhIG9wemlvbmUgc2NyaXZlIHVuIGJ5dGUgY29tZSBvdHRvIGNpZnJlICIxIiBlICIwIiBpbnZlY2UgZGkgdXNhcmUgaQorbnVtZXJpIGVzYWRlY2ltYWxpLiBPZ25pIGxpbmVhIOggcHJlY2VkdXRhIGRhIHVuIGluZGlyaXp6byBpbiBlc2FkZWNpbWFsZSBlCitzZWd1aXRhIGRhIHVuYSBkZWNvZGlmaWNhIGFzY2lpIChvIGViY2RpYykuIExlIG9wemlvbmkgc3BlY2lmaWNhYmlsaSBkYWxsYQorbGluZWEgY29tYW5kbyBcLXIsIFwtcCwgXC1pIG5vbiBmdW56aW9uYW5vIGluIHF1ZXN0byBtb2RvLgorLlRQCisuSVIgIlwtYyBjb2xvbm5lICIgfCAiIFwtY29scyBjb2xvbm5lIgorLklSICJcLWMgY29sb25uZSAiIHwgIiBcLWNvbHMgY29sb25uZSIKK0luIG9nbmkgbGluZWEgc29ubyBmb3JtYXR0YXRlCisuUkkgPCBjb2xvbm5lID4KK2NvbG9ubmUuIFZhbG9yZSBwcmVkZWZpbml0byAxNiAoXC1pOiAxMiwgXC1wczogMzAsIFwtYjogNikuCitWYWxvcmUgbWFzc2ltbyAyNTYuCisuVFAKKy5JUiBcLUUgIiB8ICIgXC1FQkNESUMKK0NhbWJpYSBsYSBjb2RpZmljYSBkZWxsYSBjb2xvbm5hIGRpIGRlc3RyYSBkYSBBU0NJSSBhIEVCQ0RJQy4KK1F1ZXN0byBub24gbW9kaWZpY2EgbGEgcmFwcHJlc2VudGF6aW9uZSBlc2FkZWNpbWFsZS4gTm9uIGhhIHNlbnNvCitzcGVjaWZpY2FyZSBxdWVzdGEgb3B6aW9uZSBpbiBjb21iaW5hemlvbmUgY29uIFwtciwgXC1wIG8gXC1pLgorLlRQCisuSVIgIlwtZyBieXRlcyAiIHwgIiBcLWdyb3Vwc2l6ZSBieXRlcyIKK0luc2VyaXNjaSBvZ25pCisuUkkgPCBieXRlcyA+CitieXRlcyBkaSBvdXRwdXQgKGRpIGR1ZSBjYXJhdHRlcmkgZXNhZGVjaW1hbGkgbyBvdHRvIG51bWVyaSBiaW5hcmkgb2dudW5vKQordW5vIHNwYXppbyBiaWFuY28uCitTcGVjaWZpY2FuZG8KKy5JIFwtZyAwCitpIGJ5dGVzIGRpIG91dHB1dCBub24gc29ubyBzZXBhcmF0aSBkYSBhbGN1bm8gc3BhemlvLgorLlJJIDwgQnl0ZXMgIj4gaGEgY29tZSB2YWxvcmUgcHJlZGVmaW5pdG8gIiAyCitpbiBtb2RhbGl04CBub3JtYWxlIFtlc2FkZWNpbWFsZV0gZSBcZkkxXGZQIGluIG1vZGFsaXTgIGJpbmFyaWEuCitJbCByYWdncnVwcGFtZW50byBub24gc2kgYXBwbGljYSBhZ2xpIHN0aWxpICJQb3N0U2NyaXB0IiBlICJpbmNsdWRlIi4KKy5UUAorLklSIFwtaCAiIHwgIiBcLWhlbHAKK3N0YW1wYSB1biBzb21tYXJpbyBkZWkgY29tYW5kaSBkaXNwb25pYmlsaSBlZCBlc2NlLiAgTm9uIHZpZW5lIGZhdHRvCitudWxsJ2FsdHJvLgorLlRQCisuSVIgXC1pICIgfCAiIFwtaW5jbHVkZQorTCdvdXRwdXQg6CBuZWxsbyBzdGlsZSBkZWkgZmlsZSAiaW5jbHVkZSIgaW4gQy4gIFZpZW5lIHByZXBhcmF0YSBsYQorZGVmaW5pemlvbmUgY29tcGxldGEgZGkgdW4gImFycmF5IiBbdmV0dG9yZV0sIGRhbmRvZ2xpIGlsIG5vbWUgZGVsCitmaWxlIGRpIGlucHV0KSwgdHJhbm5lIGNoZSBuZWwgY2FzbyBpbiBjdWkgeHhkIGxlZ2dhIGRhbGxvICJzdGFuZGFyZCBpbnB1dCIuCisuVFAKKy5JUiAiXC1sIGx1bmdoZXp6YSAiIHwgIiBcLWxlbiBsdW5naGV6emEiCitJbCBwcm9ncmFtbWEgZXNjZSBkb3BvIGF2ZXIgc2NyaXR0bworLlJJICA8IGx1bmdoZXp6YSA+CitieXRlcy4KKy5UUAorLklSIFwtcCAiIHwgIiBcLXBzICIgfCAiIFwtcG9zdHNjcmlwdCAiIHwgIiBcLXBsYWluCitMJ291dHB1dCDoIG5lbGxvIHN0aWxlIGRpIHVuIGR1bXAgY29udGludW8gc290dG8gcG9zdHNjcmlwdC4KK05vdG8gYW5jaGUgY29tZSBzdGlsZSBlc2FkZWNpbWFsZSBzZW1wbGljZSBbcGxhaW5dLgorLlRQCisuSVIgXC1yICIgfCAiIFwtcmV2ZXJ0CityaWNvc3RydXppb25lOiBjb252ZXJ0ZSAobyBtZXR0ZSB1bmEgcGF0Y2gpIGEgcGFydGlyZSBkYWxsJ2ltbWFnaW5lCitlc2FkZWNpbWFsZSwgY3JlYW5kbyBbbyBtb2RpZmljYW5kb10gaWwgZmlsZSBiaW5hcmlvLgorU2Ugbm9uIGRpcmV0dG8gYWxsbyAic3RhbmRhcmQgb3V0cHV0IiwgeHhkIHNjcml2ZSBuZWwgc3VvIGZpbGUgZGkgb3V0cHV0CitpbiBtYW5pZXJhIGNvbnRpbnVhLCBzZW56YSBpbnRlcnJ1emlvbmkuICBVc2FyZSBsYSBjb21iaW5hemlvbmUKKy5JIFwtciBcLXAKK3BlciBsZWdnZXJlIGR1bXAgaW4gc3RpbGUgZXNhZGVjaW1hbGUgc2VtcGxpY2UgW3BsYWluXSwgc2VuemEgbCdpbmZvcm1hemlvbmUKK2RpIG51bWVybyBkaSBsaW5lYSBlIHNlbnphIHVuIHBhcnRpY29sYXJlIHRyYWNjaWF0byBkaSBjb2xvbm5hLiAgRGVnbGkgc3BhemkKK28gZGVsbGUgbGluZWUgdnVvdGUgcG9zc29ubyBlc3NlcmUgaW5zZXJpdGUgYSBwaWFjZXJlIFtlIHZlbmdvbm8gaW5nb3JhdGVdLgorLlRQCisuSSBcLXNlZWsgZGlzdGFuemEKK1VzYXRvIGNvbiBsJ29wemlvbmUKKy5JIFwtcgorOiAocmljb3N0cnV6aW9uZSksCisuUkkgPCBkaXN0YW56YSA+Cit2aWVuZSBhZ2dpdW50YSBhbGxhIHBvc2l6aW9uZSBuZWwgZmlsZSB0cm92YXRhIG5lbGxhIGltbWFnaW5lCitlc2FkZWNpbWFsZS4KKy5UUAorLkkgXC1zIFtcK11bXC1dc2VlaworSW5pemlhIGEKKy5SSSA8IHNlZWsgPgorYnl0ZXMgYXNzb2x1dGkgKG8gcmVsYXRpdmkpIGRpIGRpc3RhbnphIGFsbCdpbnRlcm5vIGRpIGlucHV0X2ZpbGUuCitcZklcKyBcZlJpbmRpY2EgY2hlIGlsICJzZWVrIiDoIHJlbGF0aXZvIGFsbGEgcG9zaXppb25lIGNvcnJlbnRlIG5lbCBmaWxlCisic3RhbmRhcmQgaW5wdXQiIChub24gc2lnbmlmaWNhdGl2YSBxdWFuZG8gbm9uIHNpIGxlZ2dlIGRhICJzdGFuZGFyZCBpbnB1dCIpLgorXGZJXC0gXGZSaW5kaWNhIGNoZSBpbCAic2VlayIgZG92cmViYmUgcG9zaXppb25hcnNpIGFkIHF1ZWwgbnVtZXJvIGRpCitjYXJhdHRlcmkgZGFsbGEgZmluZSBkZWxsJ2lucHV0IChvIHNlIGluIGNvbWJpbmF6aW9uZSBjb24KK1xmSSBcKyBcZlI6IHByaW1lIGRlbGxhIHBvc2l6aW9uZSBjb3JyZW50ZSBuZWwgZmlsZSAic3RhbmRhcmQgaW5wdXQiKS4KK1NlIG5vbiBzaSBzcGVjaWZpY2EgdW5hIG9wemlvbmUgXC1zIG9wdGlvbiwgeHhkIGluaXppYSBhbGxhIHBvc2l6aW9uZQorY29ycmVudGUgYWxsJ2ludGVybm8gZGVsIGZpbGUuCisuVFAKKy5JIFwtdQordXNhIGxldHRlcmUgZXNhZGVjaW1hbGkgbWFpdXNjb2xlLiBJbCB2YWxvcmUgcHJlZGVmaW5pdG8g6CBkaSB1c2FyZQorbGV0dGVyZSBtaW51c2NvbGUuCisuVFAKKy5JUiBcLXYgIiB8ICIgXC12ZXJzaW9uCit2aXN1YWxpenphIGxhIHN0cmluZ2EgY29udGVuZW50ZSBsYSB2ZXJzaW9uZSBkZWwgcHJvZ3JhbW1hLgorLlNIIEFUVEVOWklPTkUKKy5QUAorLkkgeHhkIFwtcgor6CBjYXBhY2UgZGkgb3BlcmFyZSAibWFnaWUiIG5lbGwndXRpbGl6emFyZSBsJ2luZm9ybWF6aW9uZSAibnVtZXJvIGRpIGxpbmVhIi4KK1NlIHN1bCBmaWxlIGRpIG91dHB1dCBjaSBzaSBwdfIgcG9zaXppb25hcmUgdXNhbmRvIGxhICJzZWVrIiwgaWwgbnVtZXJvIGRpCitsaW5lYSBhbGwnaW5pemlvIGRpIG9nbmkgcmlnYSBlc2FkZWNpbWFsZSBwdfIgZXNzZXJlIG5vbiBvcmRpbmF0bywgZGVsbGUKK2xpbmVlIHBvc3Nvbm8gbWFuY2FyZSBkZWxsZSBsaW5lZSwgb3BwdXJlIGVzc2VyY2kgZGVsbGUgc292cmFwcG9zaXppb25pLgorSW4gc2ltaWxpIGNhc2kgeHhkIHVzZXLgIGxzZWVrKDIpIHBlciByYWdnaXVuZ2VyZSBsYSBwb3NpemlvbmUgZCdpbml6aW8uCitTZSBpbCBmaWxlIGRpIG91dHB1dCBub24gY29uc2VudGUgZGkgdXNhcmUgInNlZWsiLCBzb25vIHBlcm1lc3NpIHNvbG8gZGVpCisiYnVjaGkiLCBjaGUgc2FyYW5ubyByaWVtcGl0aSBjb24gemVyaSBiaW5hcmkuCisuUFAKKy5JIHh4ZCBcLXIKK25vbiBnZW5lcmEgbWFpIGVycm9yaSBkaSBzcGVjaWZpY2EgcGFyYW1ldHJpLiBJIHBhcmFtZXRyaSBub24gcmljb25vc2NpdXRpCitzb25vIHNpbGVuemlvc2FtZW50ZSBpZ25vcmF0aS4KKy5QUAorTmVsIG1vZGlmaWNhcmUgaW1tYWdpbmkgZXNhZGVjaW1hbGksIHRlbmV0ZSBjb250byBjaGUKKy5JIHh4ZCBcLXIKK3NhbHRhIGlsIHJlc3RvIGRlbGxhIGxpbmVhLCBkb3BvIGF2ZXIgbGV0dG8gYWJiYXN0YW56YSBjYXJhdHRlcmkgY29udGVuZW50aQorZGF0aSBlc2FkZWNpbWFsaSAodmVkZXJlIG9wemlvbmUgXC1jKS4gQ2nyIGltcGxpY2EgcHVyZSBjaGUgbGUgbW9kaWZpY2hlIGFsbGUKK2NvbG9ubmUgZGkgY2FyYXR0ZXJpIHN0YW1wYWJpbGkgYXNjaWkgKG8gZWJjZGljKSBzb25vIHNlbXByZSBpZ25vcmF0ZS4KK0xhIHJpY29zdHJ1emlvbmUgZGEgdW4gZmlsZSBpbW1hZ2luZSBlc2FkZWNpbWFsZSBpbiBzdGlsZSBzZW1wbGljZQorKHBvc3RzY3JpcHQpIGNvbiB4eGQgXC1yIFwtcCBub24gZGlwZW5kZSBkYWwgbnVtZXJvIGNvcnJyZXR0byBkaSBjb2xvbm5lLiAKK0lOIHF1ZXN0byBjYXNvLCBxdWFsc2lhc2kgY29zYSBhc3NvbWlnbGkgYSB1bmEgY29wcGlhIGRpIGNpZnJlIGVzYWRlY2ltYWxpCivoIGludGVycHJldGF0YSBbZSB1dGlsaXp6YXRhXS4KKy5QUAorTm90YXJlIGxhIGRpZmZlcmVuemEgZnJhCisuYnIKK1xmSSUgeHhkIFwtaSBmaWxlXGZSCisuYnIKK2UKKy5icgorXGZJJSB4eGQgXC1pIFw8IGZpbGVcZlIKKy5QUAorLkkgeHhkIFwtcyBcK3NlZWsKK3B18iBjb21wb3J0YXJzaSBpbiBtb2RvIGRpdmVyc28gZGEKKy5JIHh4ZCBcLXMgc2VlaworLCBwZXJjaOkgbHNlZWsoMikg6CB1c2F0YSBwZXIgdG9ybmFyZSBpbmRpZXRybyBuZWwgZmlsZSBkaSBpbnB1dC4gIElsICcrJworZmEgZGlmZmVyZW56YSBzZSBpbCBmaWxlIGRpIGlucHV0IOggbG8gInN0YW5kYXJkIGlucHV0IiwgZSBzZSBsYSBwb3ppb25lIG5lbAorZmlsZSBkaSAic3RhbmRhcmQgaW5wdXQiIG5vbiDoIGFsbCdpbml6aW8gZGVsIGZpbGUgcXVhbmRvIHh4ZCDoIGVzZWd1aXRvLAorY29uIHF1ZXN0byBpbnB1dC4KK0kgc2VndWVudGkgZXNlbXBpIHBvc3Nvbm8gY29udHJpYnVpcmUgYSBjaGlhcmlyZSBpbCBjb25jZXR0bworKG8gYWQgb3NjdXJhcmxvISkuLi4KKy5QUAorUmlhdnZvbGdlIGxvICJzdGFuZGFyZCBpbnB1dCIgcHJpbWEgZGkgbGVnZ2VyZTsgbmVjZXNzYXJpbyBwZXJjaOkgYGNhdCcKK2hhIGdp4CBsZXR0byBsbyBzdGVzc28gZmlsZSBbImZpbGUiXSBmaW5vIGFsbGEgZmluZSBkZWxsbyAic3RhbmRhcmQgaW5wdXQiLgorLmJyCitcZkklIHNoIFwtYyAnY2F0ID4gY29waWFfbm9ybWFsZTsgeHhkIFwtcyAwID4gY29waWFfZXNhZGVjaW1hbGUnIDwgZmlsZQorLlBQCitTdGFtcGEgaW1tYWdpbmUgZXNhZGVjaW1hbGUgZGFsbGEgcG9zaXppb25lIGZpbGUgMHg0ODAgKD0xMDI0KzEyOCkgaW4gcG9pLgorSWwgc2Vnbm8gYCsnIHZ1b2wgZGlyZSAicmlzcGV0dG8gYWxsYSBwb3NpemlvbmUgY29ycmVudGUiLCBxdWluZGkgaWwgYDEyOCcKK3NpIGFnZ2l1bmdlIGEgMWsgKDEwMjQpIGRvdmUgYGRkJyBzaSBlcmEgZmVybWF0by4KKy5icgorXGZJJSBzaCBcLWMgJ2RkIG9mPW5vcm1hbGUgYnM9MWsgY291bnQ9MTsgeHhkIFwtcyArMTI4ID4gZXNhZGVjaW1hbGUnIDwgZmlsZQorLlBQCitJbW1hZ2luZSBlc2FkZWNpbWFsZSBkYWxsYSBwb3NpemlvbmUgMHgxMDAgKCA9IDEwMjQtNzY4ICkgZGVsIGZpbGUgaW4gYXZhbnRpLgorLmJyCitcZkklIHNoIFwtYyAnZGQgb2Y9bm9ybWFsZSBicz0xayBjb3VudD0xOyB4eGQgXC1zICstNzY4ID4gZXNhZGVjaW1hbGUnIDwgZmlsZQorLlBQCitDb211bnF1ZSwgcXVlc3RvIGNhcGl0YSByYXJhbWVudGUsIGUgbCd1c28gZGVsIGArJyBkaSByYWRvLgorTCdhdXRvcmUgcHJlZmVyaXNjZSBtb25pdG9yYXJlIGlsIGNvbXBvcnRhbWVudG8gZGkgeHhkIGNvbiBzdHJhY2UoMSkgbwordHJ1c3MoMSksIHF1YW5kbyBzaSB1c2EgbCdvcHppb25lIFwtcy4KKy5TSCBFU0VNUEkKKy5QUAorLmJyCitTdGFtcGEgdHV0dG8gdHJhbm5lIGxlIHByaW1lIHRyZSBsaW5lZSAoMHgzMCBieXRlcyBlc2FkZWNpbWFsaSkgZGkKKy5CIGZpbGUKK1wuCisuYnIKK1xmSSUgeHhkIFwtcyAweDMwIGZpbGUKKy5QUAorLmJyCitTdGFtcGEgMyBsaW5lZSAoMHgzMCBieXRlcyBlc2FkZWNpbWFsaSkgYWxsYSBmaW5lIGRpCisuQiBmaWxlCitcLgorLmJyCitcZkklIHh4ZCBcLXMgXC0weDMwIGZpbGUKKy5QUAorLmJyCitTdGFtcGEgMTIwIGJ5dGVzIGNvbWUgaW1tYWdpbmUgZXNhZGVjaW1hbGUgY29udGludWEgY29uIDQwIGJ5dGVzIHBlciBsaW5lYS4KKy5icgorXGZJJSB4eGQgXC1sIDEyMCBcLXBzIFwtYyAyMCB4eGQuMVxmUgorCisuYnIKKzJlNTQ0ODIwNTg1ODQ0MjAzMTIwMjI0MTc1Njc3NTczNzQyMDMxMzkKKy5icgorMzkzNjIyMjAyMjRkNjE2ZTc1NjE2YzIwNzA2MTY3NjUyMDY2NmY3MgorLmJyCisyMDc4Nzg2NDIyMGEyZTVjMjIwYTJlNWMyMjIwMzIzMTczNzQyMDRkCisuYnIKKzYxNzkyMDMxMzkzOTM2MGEyZTVjMjIyMDRkNjE2ZTIwNzA2MTY3NjUKKy5icgorMjA2MTc1NzQ2ODZmNzIzYTBhMmU1YzIyMjAyMDIwMjA1NDZmNmU3OQorLmJyCisyMDRlNzU2NzY1NmU3NDIwM2M3NDZmNmU3OTQwNzM2Mzc0NmU3NTY3CisuYnIKKworLmJyCitTdGFtcGEgaSBwcmltaSAxMjAgYnl0ZXMgZGVsbGEgcGFnaW5hIGRpIG1hbnVhbGUgdmltLjEgYSAxMiBieXRlcyBwZXIgbGluZWEuCisuYnIKK1xmSSUgeHhkIFwtbCAxMjAgXC1jIDEyIHh4ZC4xXGZSCisKKworLmJyCiswMDAwMDAwOiAyZTU0IDQ4MjAgNTg1OCA0NDIwIDMxMjAgMjI0MSAgLlRIIFhYRCAxICJBCisuYnIKKzAwMDAwMGM6IDc1NjcgNzU3MyA3NDIwIDMxMzkgMzkzNiAyMjIwICB1Z3VzdCAxOTk2IiAKKy5icgorMDAwMDAxODogMjI0ZCA2MTZlIDc1NjEgNmMyMCA3MDYxIDY3NjUgICJNYW51YWwgcGFnZQorLmJyCiswMDAwMDI0OiAyMDY2IDZmNzIgMjA3OCA3ODY0IDIyMGEgMmU1YyAgIGZvciB4eGQiLi5cCisuYnIKKzAwMDAwMzA6IDIyMGEgMmU1YyAyMjIwIDMyMzEgNzM3NCAyMDRkICAiLi5cIiAyMXN0IE0KKy5icgorMDAwMDAzYzogNjE3OSAyMDMxIDM5MzkgMzYwYSAyZTVjIDIyMjAgIGF5IDE5OTYuLlwiIAorLmJyCiswMDAwMDQ4OiA0ZDYxIDZlMjAgNzA2MSA2NzY1IDIwNjEgNzU3NCAgTWFuIHBhZ2UgYXV0CisuYnIKKzAwMDAwNTQ6IDY4NmYgNzIzYSAwYTJlIDVjMjIgMjAyMCAyMDIwICBob3I6Li5cIiAgICAKKy5icgorMDAwMDA2MDogNTQ2ZiA2ZTc5IDIwNGUgNzU2NyA2NTZlIDc0MjAgIFRvbnkgTnVnZW50IAorLmJyCiswMDAwMDZjOiAzYzc0IDZmNmUgNzk0MCA3MzYzIDc0NmUgNzU2NyAgPHRvbnlAc2N0bnVnCisuUFAKKy5icgorVmlzdWFsaXp6YSBsYSBkYXRhIGRhbCBmaWxlIHh4ZC4xCisuYnIKK1xmSSUgeHhkIFwtcyAweDM2IFwtbCAxMyBcLWMgMTMgeHhkLjFcZlIKKy5icgorMDAwMDAzNjogMzIzMSA3Mzc0IDIwNGQgNjE3OSAyMDMxIDM5MzkgMzYgIDIxc3QgTWF5IDE5OTYKKy5QUAorLmJyCitDb3BpYXJlCisuQiBpbnB1dF9maWxlCitzdQorLkIgb3V0cHV0X2ZpbGUKK3ByZW1ldHRlbmRvZ2xpIDEwMCBieXRlcyBhIDB4MDAuCisuYnIKK1xmSSUgeHhkIGlucHV0X2ZpbGUgfCB4eGQgXC1yIFwtcyAxMDAgXD4gb3V0cHV0X2ZpbGVcZlIKKy5icgorCisuYnIKK01vZGlmaWNhcmUgKHBhdGNoKSBsYSBkYXRhIG5lbCBmaWxlIHh4ZC4xCisuYnIKK1xmSSUgZWNobyAnMDAwMDAzNzogMzU3NCA2OCcgfCB4eGQgXC1yIFwtIHh4ZC4xXGZSCisuYnIKK1xmSSUgeHhkIFwtcyAweDM2IFwtbCAxMyBcLWMgMTMgeHhkLjFcZlIKKy5icgorMDAwMDAzNjogMzIzNSA3NDY4IDIwNGQgNjE3OSAyMDMxIDM5MzkgMzYgIDI1dGggTWF5IDE5OTYKKy5QUAorLmJyCitDcmVhcmUgdW4gZmlsZSBkaSA2NTUzNyB0dXR0byBhIDB4MDAsCit0cmFubmUgY2hlIGwndWx0aW1vIGNhcmF0dGVyZSBjaGUg6CB1bmEgJ0EnIChlc2FkZWNpbWFsZSAweDQxKS4KKy5icgorXGZJJSBlY2hvICcwMTAwMDA6IDQxJyB8IHh4ZCBcLXIgXD4gZmlsZVxmUgorLlBQCisuYnIKK1N0YW1wYSB1bmEgaW1tYWdpbmUgZXNhZGVjaW1hbGUgZGVsIGZpbGUgIGRpIGN1aSBzb3ByYSBjb24gb3B6aW9uZSBhdXRvc2tpcC4KKy5icgorXGZJJSB4eGQgXC1hIFwtYyAxMiBmaWxlXGZSCisuYnIKKzAwMDAwMDA6IDAwMDAgMDAwMCAwMDAwIDAwMDAgMDAwMCAwMDAwICAuLi4uLi4uLi4uLi4KKy5icgorKgorLmJyCiswMDBmZmZjOiAwMDAwIDAwMDAgNDAgICAgICAgICAgICAgICAgICAgLi4uLkEKKy5QUAorQ3JlYSB1biBmaWxlIGRpIDEgYnl0ZSBjaGUgY29udGllbmUgaWwgc29sbyBjYXJhdHRlcmUgJ0EnLgorSWwgbnVtZXJvIGRvcG8gJ1wtciBcLXMnIHZpZW5lIGFnZ2l1bnRvIGEgcXVlbGxvIHRyb3ZhdG8gbmVsIGZpbGU7CitpbiBwcmF0aWNhLCBpIGJ5dGVzIHByZWNlZGVudGkgbm9uIHNvbm8gc3RhbXBhdGkuCisuYnIKK1xmSSUgZWNobyAnMDEwMDAwOiA0MScgfCB4eGQgXC1yIFwtcyBcLTB4MTAwMDAgXD4gZmlsZVxmUgorLlBQCitVc2FyZSB4eGQgY29tZSBmaWx0cm8gYWxsJ2ludGVybm8gZGkgdW4gZWRpdG9yIGNvbWUKKy5CIHZpbSgxKQorcGVyIG90dGVuZXJlIHVuYSBpbW1hZ2luZSBlc2FkZWNpbWFsZSBkaSB1bmEgcGFydGUgZGkgZmlsZQorZGVsaW1pdGF0YSBkYWkgbWFyayBgYScgZSBgeicuCisuYnIKK1xmSTonYSwneiF4eGRcZlIKKy5QUAorVXNhcmUgeHhkIGNvbWUgZmlsdHJvIGFsbCdpbnRlcm5vIGRpIHVuIGVkaXRvciBjb21lCisuQiB2aW0oMSkKK3BlciByaWNvc3RydWlyZSB1biBwZXp6byBkaSBmaWxlIGJpbmFyaW8gZGEgdW5hIGltbWFnaW5lIGVzYWRlY2ltYWxlCitkZWxpbWl0YXRhIGRhaSBtYXJrIGBhJyBlIGB6Jy4KKy5icgorXGZJOidhLCd6IXh4ZCBcLXJcZlIKKy5QUAorVXNhcmUgeHhkIGNvbWUgZmlsdHJvIGFsbCdpbnRlcm5vIGRpIHVuIGVkaXRvciBjb21lCisuQiB2aW0oMSkKK3BlciByaWNvc3RydWlyZSB1bmEgc29sYSBsaW5lYSBkaSBmaWxlIGJpbmFyaW8gZGEgdW5hIGltbWFnaW5lIGVzYWRlY2ltYWxlLAorUG9ydGFyZSBpbCBjdXJzb3JlIHNvcHJhIGxhIGxpbmVhIGUgYmF0dGVyZToKKy5icgorXGZJISF4eGQgXC1yXGZSCisuUFAKK1BlciBsZWdnZXJlIHNpbmdvbGkgY2hhcmF0dGVyaSBkYSB1bmEgbGluZWEgc2VyaWFsZQorLmJyCitcZkklIHh4ZCBcLWMxIDwgL2Rldi90ZXJtL2IgJlxmUgorLmJyCitcZkklIHN0dHkgPCAvZGV2L3Rlcm0vYiBcLWVjaG8gXC1vcG9zdCBcLWlzaWcgXC1pY2Fub24gbWluIDFcZlIKKy5icgorXGZJJSBlY2hvIFwtbiBmb28gPiAvZGV2L3Rlcm0vYlxmUgorLlBQCisuU0ggQ09ESUNJIERJIFJJVE9STk8KK0lsIHByb2dyYW1tYSBwdfIgcmVzdGl0dWlyZSBxdWVzdGkgY29kaWNpIGRpIGVycm9yZToKKy5UUAorMAorbmVzc3VuIGVycm9yZSByaWxldmF0by4KKy5UUAorXC0xCitvcGVyYXppb25lIG5vbiBzdXBwb3J0YXRhICgKKy5JIHh4ZCBcLXIgXC1pCitub24gYW5jb3JhIHBvc3NpYmxlKS4KKy5UUAorMQorZXJyb3JlIGR1cmFudGUgbGEgc2NhbnNpb25lIHBhcmFtZXRyaS4KKy5UUAorMgorcHJvYmxlbWkgY29uIGlsIGZpbGUgZGkgaW5wdXQuCisuVFAKKzMKK3Byb2JsZW1pIGNvbiBpbCBmaWxlIGRpIG91dHB1dC4KKy5UUAorNCw1Citwb3NpemlvbmUgInNlZWsiIHNwZWNpZmljYXRhIG5vbiByYWdnaXVuZ2liaWxlIGFsbCdpbnRlcm5vIGRlbCBmaWxlLgorLlNIIFZFREVSRSBBTkNIRQordXVlbmNvZGUoMSksIHV1ZGVjb2RlKDEpLCBwYXRjaCgxKQorLmJyCisuU0ggQVZWRVJUSU1FTlRJCitMYSBzdHJhbmV6emEgZGVsbG8gc3RydW1lbnRvIHJpc3BlY2NoaWEgbGEgbWVudGUgZGVsIHN1byBjcmVhdG9yZS4KK1VzYXRlIGEgdm9zdHJvIHJpc2NoaW8gZSBwZXJpY29sby4gQ29waWF0ZSBpIGZpbGUuIFRyYWNjaWF0ZSBsJ2VzZWN1emlvbmUuCitEaXZlbnRhdGUgdW4gbWFnby4KKy5icgorLlNIIFZFUlNJT05FCitRdWVzdGEgcGFnaW5hIGRpIG1hbnVhbGUgZG9jdW1lbnRhIGxhIHZlcnNpb25lIDEuNyBkaSB4eGQuCisuU0ggQVVUT1JFCisuYnIKKyhjKSAxOTkwLTE5OTcgSnVlcmdlbiBXZWlnZXJ0CisuYnIKKzxqbndlaWdlckBpbmZvcm1hdGlrLnVuaS1lcmxhbmdlbi5kZT4KKy5MUAorRGlzdHJpYnVpdGUgbGliZXJhbWVudGUgZWQgYXR0cmlidWl0ZW1pIGlsIGNyZWRpdG8sCisuYnIKK2ZhdGUgc29sZGkgZSBjb25kaXZpZGV0ZWxpIGNvbiBtZQorLmJyCitwZXJkZXRlIHNvbGRpIGUgbm9uIHZlbml0ZSBhIGNoaWVkZXJsaSBhIG1lLgorLlBQCitQYWdpbmEgZGkgbWFudWFsZSBtZXNzYSBpbiBwaWVkaSBkYSBUb255IE51Z2VudAorLmJyCis8dG9ueUBzY3RudWdlbi5wcHAuZ3UuZWR1LmF1PiA8VC5OdWdlbnRAc2N0Lmd1LmVkdS5hdT4KKy5icgorUGljY29sZSBtb2RpZmljaGUgZGkgQnJhbSBNb29sZW5hYXIuCitNb2RpZmljYXRvIGRhIEp1ZXJnZW4gV2VpZ2VydC4KKy5QUApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MveHhkLjEgYi9ydW50aW1lL2RvYy94eGQuMQppbmRleCBmYmEwNTIxLi5jY2FlYjIyIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy94eGQuMQorKysgYi9ydW50aW1lL2RvYy94eGQuMQpAQCAtNjIsMTIgKzYyLDExIEBACiAuSVIgXC1iICIgfCAiIFwtYml0cwogU3dpdGNoIHRvIGJpdHMgKGJpbmFyeSBkaWdpdHMpIGR1bXAsIHJhdGhlciB0aGFuIGhleGR1bXAuCiBUaGlzIG9wdGlvbiB3cml0ZXMgb2N0ZXRzIGFzIGVpZ2h0IGRpZ2l0cyAiMSJzIGFuZCAiMCJzIGluc3RlYWQgb2YgYSBub3JtYWwKLWhleGFjZWNpbWFsIGR1bXAuIEVhY2ggbGluZSBpcyBwcmVjZWRlZCBieSBhIGxpbmUgbnVtYmVyIGluIGhleGFkZWNpbWFsIGFuZAoraGV4YWRlY2ltYWwgZHVtcC4gRWFjaCBsaW5lIGlzIHByZWNlZGVkIGJ5IGEgbGluZSBudW1iZXIgaW4gaGV4YWRlY2ltYWwgYW5kCiBmb2xsb3dlZCBieSBhbiBhc2NpaSAob3IgZWJjZGljKSByZXByZXNlbnRhdGlvbi4gVGhlIGNvbW1hbmQgbGluZSBzd2l0Y2hlcwogXC1yLCBcLXAsIFwtaSBkbyBub3Qgd29yayB3aXRoIHRoaXMgbW9kZS4KIC5UUAogLklSICJcLWMgY29scyAiIHwgIiBcLWNvbHMgY29scyIKLS5JUiAiXC1jIGNvbHMgIiB8ICIgXC1jb2xzIGNvbHMiCiBmb3JtYXQKIC5SSSA8IGNvbHMgPgogb2N0ZXRzIHBlciBsaW5lLiBEZWZhdWx0IDE2IChcLWk6IDEyLCBcLXBzOiAzMCwgXC1iOiA2KS4gTWF4IDI1Ni4KQEAgLTc4LDcgKzc3LDcgQEAKIG1lYW5pbmdsZXNzIGluIGNvbWJpbmF0aW9ucyB3aXRoIFwtciwgXC1wIG9yIFwtaS4KIC5UUAogLklSICJcLWcgYnl0ZXMgIiB8ICIgXC1ncm91cHNpemUgYnl0ZXMiCi1zZXBlcmF0ZSB0aGUgb3V0cHV0IG9mIGV2ZXJ5CitzZXBhcmF0ZSB0aGUgb3V0cHV0IG9mIGV2ZXJ5CiAuUkkgPCBieXRlcyA+CiBieXRlcyAodHdvIGhleCBjaGFyYWN0ZXJzIG9yIGVpZ2h0IGJpdC1kaWdpdHMgZWFjaCkgYnkgYSB3aGl0ZXNwYWNlLgogU3BlY2lmeQpAQCAtMTM5LDcgKzEzOCw3IEBACiAuUFAKIC5JIHh4ZCBcLXIKIGhhcyBzb21lIGJ1aWx0aW4gbWFnaWMgd2hpbGUgZXZhbHVhdGluZyBsaW5lIG51bWJlciBpbmZvcm1hdGlvbi4KLUlmIHRoZSBvdXB1dCBmaWxlIGlzIHNlZWthYmxlLCB0aGVuIHRoZSBsaW5lbnVtYmVycyBhdCB0aGUgc3RhcnQgb2YgZWFjaAorSWYgdGhlIG91dHB1dCBmaWxlIGlzIHNlZWthYmxlLCB0aGVuIHRoZSBsaW5lbnVtYmVycyBhdCB0aGUgc3RhcnQgb2YgZWFjaAogaGV4ZHVtcCBsaW5lIG1heSBiZSBvdXQgb2Ygb3JkZXIsIGxpbmVzIG1heSBiZSBtaXNzaW5nLCBvciBvdmVybGFwcGluZy4gSW4KIHRoZXNlIGNhc2VzIHh4ZCB3aWxsIGxzZWVrKDIpIHRvIHRoZSBuZXh0IHBvc2l0aW9uLiBJZiB0aGUgb3V0cHV0IGZpbGUgaXMgbm90CiBzZWVrYWJsZSwgb25seSBnYXBzIGFyZSBhbGxvd2VkLCB3aGljaCB3aWxsIGJlIGZpbGxlZCBieSBudWxsLWJ5dGVzLgpAQCAtMTUyLDcgKzE1MSw3IEBACiBza2lwcyBldmVyeXRoaW5nIG9uIHRoZSBpbnB1dCBsaW5lIGFmdGVyIHJlYWRpbmcgZW5vdWdoIGNvbHVtbnMgb2YgaGV4YWRlY2ltYWwKIGRhdGEgKHNlZSBvcHRpb24gXC1jKS4gVGhpcyBhbHNvIG1lYW5zLCB0aGF0IGNoYW5nZXMgdG8gdGhlIHByaW50YWJsZSBhc2NpaSAob3IKIGViY2RpYykgY29sdW1ucyBhcmUgYWx3YXlzIGlnbm9yZWQuIFJldmVydGluZyBhIHBsYWluIChvciBwb3N0c2NyaXB0KSBzdHlsZQotaGV4ZHVtcCB3aXRoIHh4ZCBcLXIgXC1wIGRvZXMgbm90IGRlcGVuZCBvbiB0aGUgY29ycmVjdCBudW1iZXIgb2YgY29sdW1ucy4gSGVyZSBhbiB0aGluZyB0aGF0IGxvb2tzIGxpa2UgYSBwYWlyIG9mIGhleC1kaWdpdHMgaXMgaW50ZXJwcmV0ZWQuCitoZXhkdW1wIHdpdGggeHhkIFwtciBcLXAgZG9lcyBub3QgZGVwZW5kIG9uIHRoZSBjb3JyZWN0IG51bWJlciBvZiBjb2x1bW5zLiBIZXJlIGFueXRoaW5nIHRoYXQgbG9va3MgbGlrZSBhIHBhaXIgb2YgaGV4LWRpZ2l0cyBpcyBpbnRlcnByZXRlZC4KIC5QUAogTm90ZSB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuCiAuYnIKQEAgLTE4Niw3ICsxODUsNyBAQAogXGZJJSBzaCBcLWMgJ2RkIG9mPXBsYWluX3NuaXBwZXQgYnM9MWsgY291bnQ9MTsgeHhkIFwtcyArLTc2OCA+IGhleF9zbmlwcGV0JyA8IGZpbGUKIC5QUAogSG93ZXZlciwgdGhpcyBpcyBhIHJhcmUgc2l0dWF0aW9uIGFuZCB0aGUgdXNlIG9mIGArJyBpcyByYXJlbHkgbmVlZGVkLgotdGhlIGF1dGhvciBwcmVmZXJzIHRvIG1vbml0b3IgdGhlIGVmZmVjdCBvZiB4eGQgd2l0aCBzdHJhY2UoMSkgb3IgdHJ1c3MoMSksIHdoZW5ldmVyIFwtcyBpcyB1c2VkLgorVGhlIGF1dGhvciBwcmVmZXJzIHRvIG1vbml0b3IgdGhlIGVmZmVjdCBvZiB4eGQgd2l0aCBzdHJhY2UoMSkgb3IgdHJ1c3MoMSksIHdoZW5ldmVyIFwtcyBpcyB1c2VkLgogLlNIIEVYQU1QTEVTCiAuUFAKIC5icgpAQCAtMjA4LDE3ICsyMDcsMTcgQEAKIC5icgogXGZJJSB4eGQgXC1sIDEyMCBcLXBzIFwtYyAyMCB4eGQuMVxmUgogLmJyCi0yZTU0NDgyMDU4NTg0NDIwMzEyMDIyNGQ2MTZlNzU2MTZjMjA3MDYxCisyZTU0NDgyMDU4NTg0NDIwMzEyMDIyNDE3NTY3NzU3Mzc0MjAzMTM5CiAuYnIKLTY3NjUyMDY2NmY3MjIwNzg3ODY0MjIwYTJlNWMyMjBhMmU1YzIyMjAKKzM5MzYyMjIwMjI0ZDYxNmU3NTYxNmMyMDcwNjE2NzY1MjA2NjZmNzIKIC5icgotMzIzMTczNzQyMDRkNjE3OTIwMzEzOTM5MzYwYTJlNWMyMjIwNGQ2MQorMjA3ODc4NjQyMjBhMmU1YzIyMGEyZTVjMjIyMDMyMzE3Mzc0MjA0ZAogLmJyCi02ZTIwNzA2MTY3NjUyMDYxNzU3NDY4NmY3MjNhMGEyZTVjMjIyMDIwCis2MTc5MjAzMTM5MzkzNjBhMmU1YzIyMjA0ZDYxNmUyMDcwNjE2NzY1CiAuYnIKLTIwMjA1NDZmNmU3OTIwNGU3NTY3NjU2ZTc0MjAzYzc0NmY2ZTc5NDAKKzIwNjE3NTc0Njg2ZjcyM2EwYTJlNWMyMjIwMjAyMDIwNTQ2ZjZlNzkKIC5icgotNzM2Mzc0NmU3NTY3NjU2ZTJlNzA3MDcwMmU2Nzc1MmU2NTY0NzUyZQorMjA0ZTc1Njc2NTZlNzQyMDNjNzQ2ZjZlNzk0MDczNjM3NDZlNzU2NwogLmJyCiAKIC5icgpAQCAtMjI2LDMyICsyMjUsMzIgQEAKIC5icgogXGZJJSB4eGQgXC1sIDEyMCBcLWMgMTIgeHhkLjFcZlIKIC5icgotMDAwMDAwMDogMmU1NCA0ODIwIDU4NTggNDQyMCAzMTIwIDIyNGQgIC5USCBYWEQgMSAiTQorMDAwMDAwMDogMmU1NCA0ODIwIDU4NTggNDQyMCAzMTIwIDIyNDEgIC5USCBYWEQgMSAiQQogLmJyCi0wMDAwMDBjOiA2MTZlIDc1NjEgNmMyMCA3MDYxIDY3NjUgMjA2NiAgYW51YWwgcGFnZSBmCiswMDAwMDBjOiA3NTY3IDc1NzMgNzQyMCAzMTM5IDM5MzYgMjIyMCAgdWd1c3QgMTk5NiIgCiAuYnIKLTAwMDAwMTg6IDZmNzIgMjA3OCA3ODY0IDIyMGEgMmU1YyAyMjBhICBvciB4eGQiLi5cXCIuCiswMDAwMDE4OiAyMjRkIDYxNmUgNzU2MSA2YzIwIDcwNjEgNjc2NSAgIk1hbnVhbCBwYWdlCiAuYnIKLTAwMDAwMjQ6IDJlNWMgMjIyMCAzMjMxIDczNzQgMjA0ZCA2MTc5ICAuXFwiIDIxc3QgTWF5CiswMDAwMDI0OiAyMDY2IDZmNzIgMjA3OCA3ODY0IDIyMGEgMmU1YyAgIGZvciB4eGQiLi5cXAogLmJyCi0wMDAwMDMwOiAyMDMxIDM5MzkgMzYwYSAyZTVjIDIyMjAgNGQ2MSAgIDE5OTYuLlxcIiBNYQorMDAwMDAzMDogMjIwYSAyZTVjIDIyMjAgMzIzMSA3Mzc0IDIwNGQgICIuLlxcIiAyMXN0IE0KIC5icgotMDAwMDAzYzogNmUyMCA3MDYxIDY3NjUgMjA2MSA3NTc0IDY4NmYgIG4gcGFnZSBhdXRobworMDAwMDAzYzogNjE3OSAyMDMxIDM5MzkgMzYwYSAyZTVjIDIyMjAgIGF5IDE5OTYuLlxcIiAKIC5icgotMDAwMDA0ODogNzIzYSAwYTJlIDVjMjIgMjAyMCAyMDIwIDU0NmYgIHI6Li5cXCIgICAgVG8KKzAwMDAwNDg6IDRkNjEgNmUyMCA3MDYxIDY3NjUgMjA2MSA3NTc0ICBNYW4gcGFnZSBhdXQKIC5icgotMDAwMDA1NDogNmU3OSAyMDRlIDc1NjcgNjU2ZSA3NDIwIDNjNzQgIG55IE51Z2VudCA8dAorMDAwMDA1NDogNjg2ZiA3MjNhIDBhMmUgNWMyMiAyMDIwIDIwMjAgIGhvcjouLlxcIiAgICAKIC5icgotMDAwMDA2MDogNmY2ZSA3OTQwIDczNjMgNzQ2ZSA3NTY3IDY1NmUgIG9ueUBzY3RudWdlbgorMDAwMDA2MDogNTQ2ZiA2ZTc5IDIwNGUgNzU2NyA2NTZlIDc0MjAgIFRvbnkgTnVnZW50IAogLmJyCi0wMDAwMDZjOiAyZTcwIDcwNzAgMmU2NyA3NTJlIDY1NjQgNzUyZSAgLnBwcC5ndS5lZHUuCiswMDAwMDZjOiAzYzc0IDZmNmUgNzk0MCA3MzYzIDc0NmUgNzU2NyAgPHRvbnlAc2N0bnVnCiAuUFAKIC5icgogRGlzcGxheSBqdXN0IHRoZSBkYXRlIGZyb20gdGhlIGZpbGUgeHhkLjEKIC5icgotXGZJJSB4eGQgXC1zIDB4MjggXC1sIDEyIFwtYyAxMiB4eGQuMVxmUgorXGZJJSB4eGQgXC1zIDB4MzYgXC1sIDEzIFwtYyAxMyB4eGQuMVxmUgogLmJyCi0wMDAwMDI4OiAzMjMxIDczNzQgMjA0ZCA2MTc5IDIwMzEgMzkzOSAgMjFzdCBNYXkgMTk5CiswMDAwMDM2OiAzMjMxIDczNzQgMjA0ZCA2MTc5IDIwMzEgMzkzOSAzNiAgMjFzdCBNYXkgMTk5NgogLlBQCiAuYnIKIENvcHkKQEAgLTI2NiwxMSArMjY1LDExIEBACiAuYnIKIFBhdGNoIHRoZSBkYXRlIGluIHRoZSBmaWxlIHh4ZC4xCiAuYnIKLVxmSSUgZWNobyAnMDAwMDAyOTogMzU3NCA2OCcgfCB4eGQgXC1yIFwtIHh4ZC4xXGZSCitcZkklIGVjaG8gJzAwMDAwMzc6IDM1NzQgNjgnIHwgeHhkIFwtciBcLSB4eGQuMVxmUgogLmJyCi1cZkklIHh4ZCBcLXMgMHgyOCBcLWwgMTIgXC1jIDEyIHh4ZC4xXGZSCitcZkklIHh4ZCBcLXMgMHgzNiBcLWwgMTMgXC1jIDEzIHh4ZC4xXGZSCiAuYnIKLTAwMDAwMjg6IDMyMzUgNzQ2OCAyMDRkIDYxNzkgMjAzMSAzOTM5ICAyNXRoIE1heSAxOTkKKzAwMDAwMzY6IDMyMzUgNzQ2OCAyMDRkIDYxNzkgMjAzMSAzOTM5IDM2ICAyNXRoIE1heSAxOTk2CiAuUFAKIC5icgogQ3JlYXRlIGEgNjU1MzcgYnl0ZSBmaWxlIHdpdGggYWxsIGJ5dGVzIDB4MDAsCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy94eGQubWFuIGIvcnVudGltZS9kb2MveHhkLm1hbgppbmRleCAzN2IyMmQ2Li4wMGQ3NWRhIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy94eGQubWFuCisrKyBiL3J1bnRpbWUvZG9jL3h4ZC5tYW4KQEAgLTEsOSArMSw3IEBACitYWEQoMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYWEQoMSkKIAogCiAKLVhYRCgxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWFhEKDEpCi0KLQogTkFNRQogICAgICAgIHh4ZCAtIG1ha2UgYSBoZXhkdW1wIG9yIGRvIHRoZSByZXZlcnNlLgogCkBAIC0xMywyMzkgKzExLDE4NCBAQAogICAgICAgIHh4ZCAtcltldmVydF0gW29wdGlvbnNdIFtpbmZpbGUgW291dGZpbGVdXQogCiBERVNDUklQVElPTgotICAgICAgIHh4ZCAgY3JlYXRlcyBhIGhleCBkdW1wIG9mIGEgZ2l2ZW4gZmlsZSBvciBzdGFuZGFyZCBpbnB1dC4KLSAgICAgICBJdCBjYW4gYWxzbyBjb252ZXJ0IGEgaGV4IGR1bXAgYmFjayB0byBpdHMgb3JpZ2luYWwgYmluYXJ5Ci0gICAgICAgZm9ybS4gICBMaWtlICB1dWVuY29kZSgxKSAgYW5kICB1dWRlY29kZSgxKSAgaXQgYWxsb3dzIHRoZQotICAgICAgIHRyYW5zbWlzc2lvbiBvZiBiaW5hcnkgZGF0YSBpbiBhIGBtYWlsLXNhZmUnIEFTQ0lJICByZXByZS0KLSAgICAgICBzZW50YXRpb24sICBidXQgIGhhcyB0aGUgYWR2YW50YWdlIG9mIGRlY29kaW5nIHRvIHN0YW5kYXJkCi0gICAgICAgb3V0cHV0LiAgTW9yZW92ZXIsIGl0IGNhbiBiZSB1c2VkIHRvIHBlcmZvcm0gIGJpbmFyeSAgZmlsZQotICAgICAgIHBhdGNoaW5nLgorICAgICAgIHh4ZCAgY3JlYXRlcyBhIGhleCBkdW1wIG9mIGEgZ2l2ZW4gZmlsZSBvciBzdGFuZGFyZCBpbnB1dC4gIEl0IGNhbiBhbHNvCisgICAgICAgY29udmVydCBhIGhleCBkdW1wIGJhY2sgdG8gaXRzIG9yaWdpbmFsIGJpbmFyeSBmb3JtLiAgTGlrZSAgdXVlbmNvZGUoMSkKKyAgICAgICBhbmQgIHV1ZGVjb2RlKDEpICBpdCBhbGxvd3MgdGhlIHRyYW5zbWlzc2lvbiBvZiBiaW5hcnkgZGF0YSBpbiBhIGBtYWlsLQorICAgICAgIHNhZmUnIEFTQ0lJIHJlcHJlc2VudGF0aW9uLCBidXQgaGFzIHRoZSBhZHZhbnRhZ2Ugb2YgZGVjb2RpbmcgdG8gIHN0YW4tCisgICAgICAgZGFyZCBvdXRwdXQuICBNb3Jlb3ZlciwgaXQgY2FuIGJlIHVzZWQgdG8gcGVyZm9ybSBiaW5hcnkgZmlsZSBwYXRjaGluZy4KIAogT1BUSU9OUwotICAgICAgIElmICBubyBpbmZpbGUgaXMgZ2l2ZW4sIHN0YW5kYXJkIGlucHV0IGlzIHJlYWQuICBJZiBpbmZpbGUKLSAgICAgICBpcyBzcGVjaWZpZWQgYXMgYSBgLScgY2hhcmFjdGVyLCB0aGVuIGlucHV0IGlzIHRha2VuICBmcm9tCi0gICAgICAgc3RhbmRhcmQgIGlucHV0LiAgSWYgbm8gb3V0ZmlsZSBpcyBnaXZlbiAob3IgYSBgLScgY2hhcmFjLQotICAgICAgIHRlciBpcyBpbiBpdHMgcGxhY2UpLCByZXN1bHRzIGFyZSBzZW50IHRvIHN0YW5kYXJkIG91dHB1dC4KKyAgICAgICBJZiBubyBpbmZpbGUgaXMgZ2l2ZW4sIHN0YW5kYXJkIGlucHV0IGlzIHJlYWQuICBJZiBpbmZpbGUgaXMgIHNwZWNpZmllZAorICAgICAgIGFzICBhICBgLScgIGNoYXJhY3RlciwgIHRoZW4gaW5wdXQgaXMgdGFrZW4gZnJvbSBzdGFuZGFyZCBpbnB1dC4gIElmIG5vCisgICAgICAgb3V0ZmlsZSBpcyBnaXZlbiAob3IgYSBgLScgY2hhcmFjdGVyIGlzIGluIGl0cyBwbGFjZSksIHJlc3VsdHMgYXJlIHNlbnQKKyAgICAgICB0byBzdGFuZGFyZCBvdXRwdXQuCiAKLSAgICAgICBOb3RlIHRoYXQgYSAibGF6eSIgcGFyc2VyIGlzIHVzZWQgd2hpY2ggZG9lcyBub3QgY2hlY2sgZm9yCi0gICAgICAgbW9yZSB0aGFuIHRoZSBmaXJzdCBvcHRpb24gbGV0dGVyLCB1bmxlc3MgIHRoZSAgb3B0aW9uICBpcwotICAgICAgIGZvbGxvd2VkICBieSAgYSBwYXJhbWV0ZXIuICBTcGFjZXMgYmV0d2VlbiBhIHNpbmdsZSBvcHRpb24KLSAgICAgICBsZXR0ZXIgYW5kIGl0cyAgcGFyYW1ldGVyICBhcmUgIG9wdGlvbmFsLiAgIFBhcmFtZXRlcnMgIHRvCi0gICAgICAgb3B0aW9ucyAgY2FuIGJlIHNwZWNpZmllZCBpbiBkZWNpbWFsLCBoZXhhZGVjaW1hbCBvciBvY3RhbAotICAgICAgIG5vdGF0aW9uLiAgVGh1cyAtYzgsIC1jIDgsIC1jIDAxMCAgYW5kICAtY29scyAgOCAgYXJlICBhbGwKLSAgICAgICBlcXVpdmFsZW50LgorICAgICAgIE5vdGUgIHRoYXQgIGEgICJsYXp5IiBwYXJzZXIgaXMgdXNlZCB3aGljaCBkb2VzIG5vdCBjaGVjayBmb3IgbW9yZSB0aGFuCisgICAgICAgdGhlIGZpcnN0IG9wdGlvbiBsZXR0ZXIsIHVubGVzcyB0aGUgb3B0aW9uIGlzIGZvbGxvd2VkIGJ5IGEgIHBhcmFtZXRlci4KKyAgICAgICBTcGFjZXMgIGJldHdlZW4gIGEgc2luZ2xlIG9wdGlvbiBsZXR0ZXIgYW5kIGl0cyBwYXJhbWV0ZXIgYXJlIG9wdGlvbmFsLgorICAgICAgIFBhcmFtZXRlcnMgdG8gb3B0aW9ucyBjYW4gYmUgc3BlY2lmaWVkIGluIGRlY2ltYWwsIGhleGFkZWNpbWFsIG9yIG9jdGFsCisgICAgICAgbm90YXRpb24uICBUaHVzIC1jOCwgLWMgOCwgLWMgMDEwIGFuZCAtY29scyA4IGFyZSBhbGwgZXF1aXZhbGVudC4KIAogCiAgICAgICAgLWEgfCAtYXV0b3NraXAKLSAgICAgICAgICAgICAgdG9nZ2xlICBhdXRvc2tpcDogIEEgc2luZ2xlICcqJyByZXBsYWNlcyBudWwtbGluZXMuCi0gICAgICAgICAgICAgIERlZmF1bHQgb2ZmLgorICAgICAgICAgICAgICB0b2dnbGUgIGF1dG9za2lwOiBBIHNpbmdsZSAnKicgcmVwbGFjZXMgbnVsLWxpbmVzLiAgRGVmYXVsdCBvZmYuCiAKICAgICAgICAtYiB8IC1iaXRzCi0gICAgICAgICAgICAgIFN3aXRjaCB0byBiaXRzIChiaW5hcnkgZGlnaXRzKSAgZHVtcCwgIHJhdGhlciAgdGhhbgotICAgICAgICAgICAgICBoZXhkdW1wLiAgVGhpcyBvcHRpb24gd3JpdGVzIG9jdGV0cyBhcyBlaWdodCBkaWdpdHMKLSAgICAgICAgICAgICAgIjEicyBhbmQgIjAicyBpbnN0ZWFkIG9mIGEgbm9ybWFsIGhleGFjZWNpbWFsIGR1bXAuCi0gICAgICAgICAgICAgIEVhY2ggbGluZSBpcyBwcmVjZWRlZCBieSBhIGxpbmUgbnVtYmVyIGluIGhleGFkZWNpLQotICAgICAgICAgICAgICBtYWwgYW5kIGZvbGxvd2VkIGJ5IGFuIGFzY2lpIChvciBlYmNkaWMpICByZXByZXNlbi0KLSAgICAgICAgICAgICAgdGF0aW9uLiBUaGUgY29tbWFuZCBsaW5lIHN3aXRjaGVzIC1yLCAtcCwgLWkgZG8gbm90Ci0gICAgICAgICAgICAgIHdvcmsgd2l0aCB0aGlzIG1vZGUuCisgICAgICAgICAgICAgIFN3aXRjaCB0byBiaXRzIChiaW5hcnkgZGlnaXRzKSBkdW1wLCByYXRoZXIgdGhhbiBoZXhkdW1wLiAgIFRoaXMKKyAgICAgICAgICAgICAgb3B0aW9uICB3cml0ZXMgb2N0ZXRzIGFzIGVpZ2h0IGRpZ2l0cyAiMSJzIGFuZCAiMCJzIGluc3RlYWQgb2YgYQorICAgICAgICAgICAgICBub3JtYWwgaGV4YWRlY2ltYWwgZHVtcC4gRWFjaCBsaW5lIGlzIHByZWNlZGVkIGJ5IGEgbGluZSAgbnVtYmVyCisgICAgICAgICAgICAgIGluICBoZXhhZGVjaW1hbCBhbmQgZm9sbG93ZWQgYnkgYW4gYXNjaWkgKG9yIGViY2RpYykgcmVwcmVzZW50YS0KKyAgICAgICAgICAgICAgdGlvbi4gVGhlIGNvbW1hbmQgbGluZSBzd2l0Y2hlcyAtciwgLXAsIC1pIGRvIG5vdCB3b3JrIHdpdGggdGhpcworICAgICAgICAgICAgICBtb2RlLgogCiAgICAgICAgLWMgY29scyB8IC1jb2xzIGNvbHMKLSAgICAgICAgICAgICAgLWMgY29scyB8IC1jb2xzIGNvbHMgZm9ybWF0IDxjb2xzPiBvY3RldHMgcGVyIGxpbmUuCi0gICAgICAgICAgICAgIERlZmF1bHQgMTYgKC1pOiAxMiwgLXBzOiAzMCwgLWI6IDYpLiBNYXggMjU2LgorICAgICAgICAgICAgICBmb3JtYXQgIDxjb2xzPiBvY3RldHMgcGVyIGxpbmUuIERlZmF1bHQgMTYgKC1pOiAxMiwgLXBzOiAzMCwgLWI6CisgICAgICAgICAgICAgIDYpLiBNYXggMjU2LgogCiAgICAgICAgLUUgfCAtRUJDRElDCi0gICAgICAgICAgICAgIENoYW5nZSB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIGluIHRoZSByaWdodGhhbmQgY29sLQotICAgICAgICAgICAgICB1bW4gZnJvbSBBU0NJSSB0byBFQkNESUMuICBUaGlzIGRvZXMgbm90IGNoYW5nZSB0aGUKLSAgICAgICAgICAgICAgaGV4YWRlY2ltYWwgIHJlcHJlc2VudGF0aW9uLiBUaGUgb3B0aW9uIGlzIG1lYW5pbmctCi0gICAgICAgICAgICAgIGxlc3MgaW4gY29tYmluYXRpb25zIHdpdGggLXIsIC1wIG9yIC1pLgotCi0KLQotTWFudWFsIHBhZ2UgZm9yIHh4ZCAgICAgICAgQXVndXN0IDE5OTYgICAgICAgICAgICAgICAgICAgICAgICAgIDEKLQotCi0KLQotCi1YWEQoMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhYRCgxKQotCisgICAgICAgICAgICAgIENoYW5nZSB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIGluIHRoZSByaWdodGhhbmQgY29sdW1uIGZyb20gQVNDSUkKKyAgICAgICAgICAgICAgdG8gRUJDRElDLiAgVGhpcyBkb2VzIG5vdCBjaGFuZ2UgdGhlIGhleGFkZWNpbWFsIHJlcHJlc2VudGF0aW9uLgorICAgICAgICAgICAgICBUaGUgb3B0aW9uIGlzIG1lYW5pbmdsZXNzIGluIGNvbWJpbmF0aW9ucyB3aXRoIC1yLCAtcCBvciAtaS4KIAogICAgICAgIC1nIGJ5dGVzIHwgLWdyb3Vwc2l6ZSBieXRlcwotICAgICAgICAgICAgICBzZXBlcmF0ZSB0aGUgb3V0cHV0IG9mIGV2ZXJ5IDxieXRlcz4gYnl0ZXMgKHR3byBoZXgKLSAgICAgICAgICAgICAgY2hhcmFjdGVycyAgb3IgIGVpZ2h0IGJpdC1kaWdpdHMgZWFjaCkgYnkgYSB3aGl0ZXMtCi0gICAgICAgICAgICAgIHBhY2UuICBTcGVjaWZ5IC1nIDAgdG8gc3VwcHJlc3MgZ3JvdXBpbmcuICAgPEJ5dGVzPgotICAgICAgICAgICAgICBkZWZhdWx0cyAgdG8gIDIgIGluIG5vcm1hbCBtb2RlIGFuZCAxIGluIGJpdHMgbW9kZS4KLSAgICAgICAgICAgICAgR3JvdXBpbmcgZG9lcyBub3QgYXBwbHkgdG8gIHBvc3RzY3JpcHQgIG9yICBpbmNsdWRlCisgICAgICAgICAgICAgIHNlcGFyYXRlIHRoZSBvdXRwdXQgb2YgZXZlcnkgPGJ5dGVzPiBieXRlcyAodHdvICBoZXggIGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgb3IgZWlnaHQgYml0LWRpZ2l0cyBlYWNoKSBieSBhIHdoaXRlc3BhY2UuICBTcGVjaWZ5IC1nIDAgdG8gc3VwLQorICAgICAgICAgICAgICBwcmVzcyBncm91cGluZy4gIDxCeXRlcz4gZGVmYXVsdHMgdG8gMiBpbiBub3JtYWwgbW9kZSBhbmQgIDEgIGluCisgICAgICAgICAgICAgIGJpdHMgIG1vZGUuICAgR3JvdXBpbmcgIGRvZXMgIG5vdCBhcHBseSB0byBwb3N0c2NyaXB0IG9yIGluY2x1ZGUKICAgICAgICAgICAgICAgc3R5bGUuCiAKICAgICAgICAtaCB8IC1oZWxwCi0gICAgICAgICAgICAgIHByaW50IGEgc3VtbWFyeSBvZiBhdmFpbGFibGUgY29tbWFuZHMgYW5kIGV4aXQuICBObwotICAgICAgICAgICAgICBoZXggZHVtcGluZyBpcyBwZXJmb3JtZWQuCisgICAgICAgICAgICAgIHByaW50IGEgc3VtbWFyeSBvZiBhdmFpbGFibGUgY29tbWFuZHMgYW5kIGV4aXQuICBObyBoZXggIGR1bXBpbmcKKyAgICAgICAgICAgICAgaXMgcGVyZm9ybWVkLgogCiAgICAgICAgLWkgfCAtaW5jbHVkZQotICAgICAgICAgICAgICBvdXRwdXQgaW4gQyBpbmNsdWRlIGZpbGUgc3R5bGUuIEEgIGNvbXBsZXRlICBzdGF0aWMKLSAgICAgICAgICAgICAgYXJyYXkgIGRlZmluaXRpb24gaXMgd3JpdHRlbiAobmFtZWQgYWZ0ZXIgdGhlIGlucHV0Ci0gICAgICAgICAgICAgIGZpbGUpLCB1bmxlc3MgeHhkIHJlYWRzIGZyb20gc3RkaW4uCisgICAgICAgICAgICAgIG91dHB1dCAgaW4gQyBpbmNsdWRlIGZpbGUgc3R5bGUuIEEgY29tcGxldGUgc3RhdGljIGFycmF5IGRlZmluaS0KKyAgICAgICAgICAgICAgdGlvbiBpcyB3cml0dGVuIChuYW1lZCBhZnRlciB0aGUgaW5wdXQgZmlsZSksIHVubGVzcyAgeHhkICByZWFkcworICAgICAgICAgICAgICBmcm9tIHN0ZGluLgogCiAgICAgICAgLWwgbGVuIHwgLWxlbiBsZW4KICAgICAgICAgICAgICAgc3RvcCBhZnRlciB3cml0aW5nIDxsZW4+IG9jdGV0cy4KIAogICAgICAgIC1wIHwgLXBzIHwgLXBvc3RzY3JpcHQgfCAtcGxhaW4KLSAgICAgICAgICAgICAgb3V0cHV0IGluIHBvc3RzY3JpcHQgY29udGludW91cyBoZXhkdW1wIHN0eWxlLiBBbHNvCi0gICAgICAgICAgICAgIGtub3duIGFzIHBsYWluIGhleGR1bXAgc3R5bGUuCisgICAgICAgICAgICAgIG91dHB1dCAgaW4gIHBvc3RzY3JpcHQgIGNvbnRpbnVvdXMgIGhleGR1bXAgc3R5bGUuIEFsc28ga25vd24gYXMKKyAgICAgICAgICAgICAgcGxhaW4gaGV4ZHVtcCBzdHlsZS4KIAogICAgICAgIC1yIHwgLXJldmVydAotICAgICAgICAgICAgICByZXZlcnNlICBvcGVyYXRpb246IGNvbnZlcnQgKG9yIHBhdGNoKSBoZXhkdW1wIGludG8KLSAgICAgICAgICAgICAgYmluYXJ5LiAgSWYgbm90IHdyaXRpbmcgdG8gc3Rkb3V0LCB4eGQgd3JpdGVzICBpbnRvCi0gICAgICAgICAgICAgIGl0cyBvdXRwdXQgZmlsZSB3aXRob3V0IHRydW5jYXRpbmcgaXQuIFVzZSB0aGUgY29tLQotICAgICAgICAgICAgICBiaW5hdGlvbiAtciAtcCAgdG8gIHJlYWQgIHBsYWluICBoZXhhZGVjaW1hbCAgZHVtcHMKLSAgICAgICAgICAgICAgd2l0aG91dCAgbGluZSBudW1iZXIgaW5mb3JtYXRpb24gYW5kIHdpdGhvdXQgYSBwYXItCi0gICAgICAgICAgICAgIHRpY3VsYXIgY29sdW1uIGxheW91dC4gIEFkZGl0aW9uYWwgIFdoaXRlc3BhY2UgIGFuZAotICAgICAgICAgICAgICBsaW5lLWJyZWFrcyBhcmUgYWxsb3dlZCBhbnl3aGVyZS4KKyAgICAgICAgICAgICAgcmV2ZXJzZSBvcGVyYXRpb246IGNvbnZlcnQgKG9yIHBhdGNoKSBoZXhkdW1wIGludG8gIGJpbmFyeS4gICBJZgorICAgICAgICAgICAgICBub3QgIHdyaXRpbmcgIHRvIHN0ZG91dCwgeHhkIHdyaXRlcyBpbnRvIGl0cyBvdXRwdXQgZmlsZSB3aXRob3V0CisgICAgICAgICAgICAgIHRydW5jYXRpbmcgaXQuIFVzZSB0aGUgY29tYmluYXRpb24gLXIgLXAgdG8gcmVhZCBwbGFpbiBoZXhhZGVjaS0KKyAgICAgICAgICAgICAgbWFsIGR1bXBzIHdpdGhvdXQgbGluZSBudW1iZXIgaW5mb3JtYXRpb24gYW5kIHdpdGhvdXQgYSBwYXJ0aWN1LQorICAgICAgICAgICAgICBsYXIgY29sdW1uIGxheW91dC4gQWRkaXRpb25hbCAgV2hpdGVzcGFjZSAgYW5kICBsaW5lLWJyZWFrcyAgYXJlCisgICAgICAgICAgICAgIGFsbG93ZWQgYW55d2hlcmUuCiAKICAgICAgICAtc2VlayBvZmZzZXQKLSAgICAgICAgICAgICAgV2hlbiAgdXNlZCBhZnRlciAtciA6IHJldmVydCB3aXRoIDxvZmZzZXQ+IGFkZGVkIHRvCi0gICAgICAgICAgICAgIGZpbGUgcG9zaXRpb25zIGZvdW5kIGluIGhleGR1bXAuCisgICAgICAgICAgICAgIFdoZW4gIHVzZWQgIGFmdGVyICAtciA6IHJldmVydCB3aXRoIDxvZmZzZXQ+IGFkZGVkIHRvIGZpbGUgcG9zaS0KKyAgICAgICAgICAgICAgdGlvbnMgZm91bmQgaW4gaGV4ZHVtcC4KIAogICAgICAgIC1zIFsrXVstXXNlZWsKLSAgICAgICAgICAgICAgc3RhcnQgYXQgPHNlZWs+IGJ5dGVzIGFicy4gKG9yIHJlbC4pIGluZmlsZSBvZmZzZXQuCi0gICAgICAgICAgICAgICsgIGluZGljYXRlcyAgdGhhdCB0aGUgc2VlayBpcyByZWxhdGl2ZSB0byB0aGUgY3VyLQotICAgICAgICAgICAgICByZW50IHN0ZGluICBmaWxlICBwb3NpdGlvbiAgKG1lYW5pbmdsZXNzICB3aGVuICBub3QKLSAgICAgICAgICAgICAgcmVhZGluZyAgZnJvbSAgc3RkaW4pLiAgIC0gIGluZGljYXRlcyB0aGF0IHRoZSBzZWVrCi0gICAgICAgICAgICAgIHNob3VsZCBiZSB0aGF0IG1hbnkgY2hhcmFjdGVycyBmcm9tIHRoZSBlbmQgb2YgIHRoZQotICAgICAgICAgICAgICBpbnB1dCAob3IgaWYgY29tYmluZWQgd2l0aAotICAgICAgICAgICAgICAgKyAgOiAgYmVmb3JlICB0aGUgIGN1cnJlbnQgIHN0ZGluICBmaWxlIHBvc2l0aW9uKS4KLSAgICAgICAgICAgICAgV2l0aG91dCAtcyBvcHRpb24sIHh4ZCBzdGFydHMgYXQgdGhlICBjdXJyZW50ICBmaWxlCi0gICAgICAgICAgICAgIHBvc2l0aW9uLgorICAgICAgICAgICAgICBzdGFydCBhdCA8c2Vlaz4gYnl0ZXMgYWJzLiAob3IgcmVsLikgaW5maWxlIG9mZnNldC4gICsgaW5kaWNhdGVzCisgICAgICAgICAgICAgIHRoYXQgIHRoZSAgc2VlayAgaXMgIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHN0ZGluIGZpbGUgcG9zaXRpb24KKyAgICAgICAgICAgICAgKG1lYW5pbmdsZXNzIHdoZW4gbm90IHJlYWRpbmcgZnJvbSBzdGRpbikuICAtIGluZGljYXRlcyB0aGF0IHRoZQorICAgICAgICAgICAgICBzZWVrICBzaG91bGQgIGJlICB0aGF0IG1hbnkgY2hhcmFjdGVycyBmcm9tIHRoZSBlbmQgb2YgdGhlIGlucHV0CisgICAgICAgICAgICAgIChvciBpZiBjb21iaW5lZCB3aXRoCisgICAgICAgICAgICAgICArIDogYmVmb3JlICB0aGUgIGN1cnJlbnQgIHN0ZGluICBmaWxlICBwb3NpdGlvbikuICAgV2l0aG91dCAgLXMKKyAgICAgICAgICAgICAgb3B0aW9uLCB4eGQgc3RhcnRzIGF0IHRoZSBjdXJyZW50IGZpbGUgcG9zaXRpb24uCiAKLSAgICAgICAtdSAgICAgdXNlICB1cHBlciBjYXNlIGhleCBsZXR0ZXJzLiBEZWZhdWx0IGlzIGxvd2VyIGNhc2UuCisgICAgICAgLXUgICAgIHVzZSB1cHBlciBjYXNlIGhleCBsZXR0ZXJzLiBEZWZhdWx0IGlzIGxvd2VyIGNhc2UuCiAKICAgICAgICAtdiB8IC12ZXJzaW9uCiAgICAgICAgICAgICAgIHNob3cgdmVyc2lvbiBzdHJpbmcuCiAKLQotCi0KLQotTWFudWFsIHBhZ2UgZm9yIHh4ZCAgICAgICAgQXVndXN0IDE5OTYgICAgICAgICAgICAgICAgICAgICAgICAgIDIKLQotCi0KLQotCi1YWEQoMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhYRCgxKQotCi0KIENBVkVBVFMKLSAgICAgICB4eGQgLXIgaGFzIHNvbWUgYnVpbHRpbiBtYWdpYyB3aGlsZSBldmFsdWF0aW5nIGxpbmUgbnVtYmVyCi0gICAgICAgaW5mb3JtYXRpb24uICAgSWYgIHRoZSAgb3VwdXQgIGZpbGUgIGlzIHNlZWthYmxlLCB0aGVuIHRoZQotICAgICAgIGxpbmVudW1iZXJzIGF0IHRoZSBzdGFydCBvZiBlYWNoIGhleGR1bXAgbGluZSBtYXkgIGJlICBvdXQKLSAgICAgICBvZiAgb3JkZXIsICBsaW5lcyBtYXkgYmUgbWlzc2luZywgb3Igb3ZlcmxhcHBpbmcuIEluIHRoZXNlCi0gICAgICAgY2FzZXMgeHhkIHdpbGwgbHNlZWsoMikgdG8gdGhlIG5leHQgcG9zaXRpb24uIElmIHRoZSAgb3V0LQotICAgICAgIHB1dCAgZmlsZSAgaXMgIG5vdCAgc2Vla2FibGUsIG9ubHkgZ2FwcyBhcmUgYWxsb3dlZCwgd2hpY2gKLSAgICAgICB3aWxsIGJlIGZpbGxlZCBieSBudWxsLWJ5dGVzLgorICAgICAgIHh4ZCAtciBoYXMgc29tZSBidWlsdGluIG1hZ2ljIHdoaWxlIGV2YWx1YXRpbmcgbGluZSBudW1iZXIgaW5mb3JtYXRpb24uCisgICAgICAgSWYgdGhlIG91dHB1dCBmaWxlIGlzIHNlZWthYmxlLCB0aGVuIHRoZSBsaW5lbnVtYmVycyBhdCAgdGhlICBzdGFydCAgb2YKKyAgICAgICBlYWNoICBoZXhkdW1wICBsaW5lIG1heSBiZSBvdXQgb2Ygb3JkZXIsIGxpbmVzIG1heSBiZSBtaXNzaW5nLCBvciBvdmVyLQorICAgICAgIGxhcHBpbmcuIEluIHRoZXNlIGNhc2VzIHh4ZCB3aWxsIGxzZWVrKDIpIHRvIHRoZSBuZXh0IHBvc2l0aW9uLiBJZiAgdGhlCisgICAgICAgb3V0cHV0ICBmaWxlICBpcyAgbm90ICBzZWVrYWJsZSwgIG9ubHkgIGdhcHMgYXJlIGFsbG93ZWQsIHdoaWNoIHdpbGwgYmUKKyAgICAgICBmaWxsZWQgYnkgbnVsbC1ieXRlcy4KIAotICAgICAgIHh4ZCAtciBuZXZlciBnZW5lcmF0ZXMgcGFyc2UgZXJyb3JzLiBHYXJiYWdlICBpcyAgc2lsZW50bHkKLSAgICAgICBza2lwcGVkLgorICAgICAgIHh4ZCAtciBuZXZlciBnZW5lcmF0ZXMgcGFyc2UgZXJyb3JzLiBHYXJiYWdlIGlzIHNpbGVudGx5IHNraXBwZWQuCiAKLSAgICAgICBXaGVuICBlZGl0aW5nICBoZXhkdW1wcywgIHBsZWFzZSAgbm90ZSAgdGhhdCAgeHhkIC1yIHNraXBzCi0gICAgICAgZXZlcnl0aGluZyBvbiB0aGUgaW5wdXQgbGluZSBhZnRlciByZWFkaW5nIGVub3VnaCAgY29sdW1ucwotICAgICAgIG9mIGhleGFkZWNpbWFsIGRhdGEgKHNlZSBvcHRpb24gLWMpLiBUaGlzIGFsc28gbWVhbnMsIHRoYXQKLSAgICAgICBjaGFuZ2VzIHRvIHRoZSBwcmludGFibGUgYXNjaWkgIChvciAgZWJjZGljKSAgY29sdW1ucyAgYXJlCi0gICAgICAgYWx3YXlzICBpZ25vcmVkLiAgUmV2ZXJ0aW5nICBhIHBsYWluIChvciBwb3N0c2NyaXB0KSBzdHlsZQotICAgICAgIGhleGR1bXAgd2l0aCB4eGQgLXIgLXAgZG9lcyBub3QgZGVwZW5kIG9uIHRoZSBjb3JyZWN0IG51bS0KLSAgICAgICBiZXIgIG9mICBjb2x1bW5zLiAgSGVyZSBhbiB0aGluZyB0aGF0IGxvb2tzIGxpa2UgYSBwYWlyIG9mCi0gICAgICAgaGV4LWRpZ2l0cyBpcyBpbnRlcnByZXRlZC4KKyAgICAgICBXaGVuIGVkaXRpbmcgaGV4ZHVtcHMsIHBsZWFzZSBub3RlIHRoYXQgeHhkIC1yIHNraXBzIGV2ZXJ5dGhpbmcgb24gIHRoZQorICAgICAgIGlucHV0IGxpbmUgYWZ0ZXIgcmVhZGluZyBlbm91Z2ggY29sdW1ucyBvZiBoZXhhZGVjaW1hbCBkYXRhIChzZWUgb3B0aW9uCisgICAgICAgLWMpLiBUaGlzIGFsc28gbWVhbnMsIHRoYXQgY2hhbmdlcyB0byB0aGUgcHJpbnRhYmxlIGFzY2lpICAob3IgIGViY2RpYykKKyAgICAgICBjb2x1bW5zICBhcmUgIGFsd2F5cyAgaWdub3JlZC4gIFJldmVydGluZyBhIHBsYWluIChvciBwb3N0c2NyaXB0KSBzdHlsZQorICAgICAgIGhleGR1bXAgd2l0aCB4eGQgLXIgLXAgZG9lcyBub3QgZGVwZW5kIG9uIHRoZSBjb3JyZWN0ICBudW1iZXIgIG9mICBjb2wtCisgICAgICAgdW1ucy4gIEhlcmUgIGFueXRoaW5nICB0aGF0ICBsb29rcyAgbGlrZSBhIHBhaXIgb2YgaGV4LWRpZ2l0cyBpcyBpbnRlci0KKyAgICAgICBwcmV0ZWQuCiAKICAgICAgICBOb3RlIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4KICAgICAgICAlIHh4ZCAtaSBmaWxlCiAgICAgICAgYW5kCiAgICAgICAgJSB4eGQgLWkgPCBmaWxlCiAKLSAgICAgICB4eGQgLXMgK3NlZWsgbWF5IGJlICBkaWZmZXJlbnQgIGZyb20gIHh4ZCAgLXMgIHNlZWsgICwgIGFzCi0gICAgICAgbHNlZWsoMikgaXMgdXNlZCB0byAicmV3aW5kIiBpbnB1dC4gIEEgJysnIG1ha2VzIGEgZGlmZmVyLQotICAgICAgIGVuY2UgaWYgdGhlIGlucHV0IHNvdXJjZSBpcyBzdGRpbiwgIGFuZCAgaWYgIHN0ZGluJ3MgIGZpbGUKLSAgICAgICBwb3NpdGlvbiAgaXMgIG5vdCBhdCB0aGUgc3RhcnQgb2YgdGhlIGZpbGUgYnkgdGhlIHRpbWUgeHhkCi0gICAgICAgaXMgc3RhcnRlZCBhbmQgZ2l2ZW4gaXRzIGlucHV0LiAgIFRoZSAgZm9sbG93aW5nICBleGFtcGxlcwotICAgICAgIG1heSBoZWxwIHRvIGNsYXJpZnkgKG9yIGZ1cnRoZXIgY29uZnVzZSEpLi4uCisgICAgICAgeHhkIC1zICtzZWVrIG1heSBiZSBkaWZmZXJlbnQgZnJvbSB4eGQgLXMgc2VlayAsIGFzIGxzZWVrKDIpIGlzIHVzZWQgdG8KKyAgICAgICAicmV3aW5kIiBpbnB1dC4gIEEgJysnIG1ha2VzIGEgZGlmZmVyZW5jZSBpZiB0aGUgaW5wdXQgc291cmNlIGlzIHN0ZGluLAorICAgICAgIGFuZCBpZiBzdGRpbidzIGZpbGUgcG9zaXRpb24gaXMgbm90IGF0IHRoZSBzdGFydCBvZiAgdGhlICBmaWxlICBieSAgdGhlCisgICAgICAgdGltZSAgeHhkICBpcyAgc3RhcnRlZCBhbmQgZ2l2ZW4gaXRzIGlucHV0LiAgVGhlIGZvbGxvd2luZyBleGFtcGxlcyBtYXkKKyAgICAgICBoZWxwIHRvIGNsYXJpZnkgKG9yIGZ1cnRoZXIgY29uZnVzZSEpLi4uCiAKLSAgICAgICBSZXdpbmQgIHN0ZGluIGJlZm9yZSByZWFkaW5nOyBuZWVkZWQgYmVjYXVzZSB0aGUgYGNhdCcgaGFzCi0gICAgICAgYWxyZWFkeSByZWFkIHRvIHRoZSBlbmQgb2Ygc3RkaW4uCisgICAgICAgUmV3aW5kIHN0ZGluIGJlZm9yZSByZWFkaW5nOyBuZWVkZWQgYmVjYXVzZSB0aGUgYGNhdCcgaGFzIGFscmVhZHkgIHJlYWQKKyAgICAgICB0byB0aGUgZW5kIG9mIHN0ZGluLgogICAgICAgICUgc2ggLWMgJ2NhdCA+IHBsYWluX2NvcHk7IHh4ZCAtcyAwID4gaGV4X2NvcHknIDwgZmlsZQogCi0gICAgICAgSGV4ZHVtcCBmcm9tIGZpbGUgcG9zaXRpb24gMHg0ODAgKD0xMDI0KzEyOCkgb253YXJkcy4gIFRoZQotICAgICAgIGArJyAgc2lnbiAgbWVhbnMgICJyZWxhdGl2ZSB0byB0aGUgY3VycmVudCBwb3NpdGlvbiIsIHRodXMKLSAgICAgICB0aGUgYDEyOCcgYWRkcyB0byB0aGUgMWsgd2hlcmUgZGQgbGVmdCBvZmYuCi0gICAgICAgJSBzaCAtYyAnZGQgb2Y9cGxhaW5fc25pcHBldCBicz0xayBjb3VudD0xOyB4eGQgLXMgKzEyOCAgPgotICAgICAgIGhleF9zbmlwcGV0JyA8IGZpbGUKKyAgICAgICBIZXhkdW1wICBmcm9tICBmaWxlICBwb3NpdGlvbiAgMHg0ODAgKD0xMDI0KzEyOCkgb253YXJkcy4gIFRoZSBgKycgc2lnbgorICAgICAgIG1lYW5zICJyZWxhdGl2ZSB0byB0aGUgY3VycmVudCBwb3NpdGlvbiIsIHRodXMgdGhlIGAxMjgnIGFkZHMgdG8gdGhlIDFrCisgICAgICAgd2hlcmUgZGQgbGVmdCBvZmYuCisgICAgICAgJSAgc2ggLWMgJ2RkIG9mPXBsYWluX3NuaXBwZXQgYnM9MWsgY291bnQ9MTsgeHhkIC1zICsxMjggPiBoZXhfc25pcHBldCcKKyAgICAgICA8IGZpbGUKIAogICAgICAgIEhleGR1bXAgZnJvbSBmaWxlIHBvc2l0aW9uIDB4MTAwICggPSAxMDI0LTc2OCkgb24uCi0gICAgICAgJSBzaCAtYyAnZGQgb2Y9cGxhaW5fc25pcHBldCBicz0xayBjb3VudD0xOyB4eGQgLXMgKy03NjggPgotICAgICAgIGhleF9zbmlwcGV0JyA8IGZpbGUKKyAgICAgICAlIHNoIC1jICdkZCBvZj1wbGFpbl9zbmlwcGV0IGJzPTFrIGNvdW50PTE7IHh4ZCAtcyArLTc2OCA+IGhleF9zbmlwcGV0JworICAgICAgIDwgZmlsZQogCi0gICAgICAgSG93ZXZlciwgdGhpcyBpcyBhIHJhcmUgc2l0dWF0aW9uIGFuZCB0aGUgdXNlICBvZiAgYCsnICBpcwotICAgICAgIHJhcmVseSAgbmVlZGVkLiAgIHRoZSBhdXRob3IgcHJlZmVycyB0byBtb25pdG9yIHRoZSBlZmZlY3QKLSAgICAgICBvZiB4eGQgd2l0aCBzdHJhY2UoMSkgb3IgdHJ1c3MoMSksIHdoZW5ldmVyIC1zIGlzIHVzZWQuCisgICAgICAgSG93ZXZlciwgIHRoaXMgaXMgYSByYXJlIHNpdHVhdGlvbiBhbmQgdGhlIHVzZSBvZiBgKycgaXMgcmFyZWx5IG5lZWRlZC4KKyAgICAgICBUaGUgYXV0aG9yIHByZWZlcnMgdG8gbW9uaXRvciB0aGUgIGVmZmVjdCAgb2YgIHh4ZCAgd2l0aCAgc3RyYWNlKDEpICBvcgorICAgICAgIHRydXNzKDEpLCB3aGVuZXZlciAtcyBpcyB1c2VkLgogCiBFWEFNUExFUwotICAgICAgIFByaW50IGV2ZXJ5dGhpbmcgYnV0ICB0aGUgIGZpcnN0ICB0aHJlZSAgbGluZXMgIChoZXggIDB4MzAKLSAgICAgICBieXRlcykgb2YgZmlsZQotCi0KLQotTWFudWFsIHBhZ2UgZm9yIHh4ZCAgICAgICAgQXVndXN0IDE5OTYgICAgICAgICAgICAgICAgICAgICAgICAgIDMKLQotCi0KLQotCi1YWEQoMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhYRCgxKQotCi0KKyAgICAgICBQcmludCBldmVyeXRoaW5nIGJ1dCB0aGUgZmlyc3QgdGhyZWUgbGluZXMgKGhleCAweDMwIGJ5dGVzKSBvZiBmaWxlCiAgICAgICAgJSB4eGQgLXMgMHgzMCBmaWxlCiAKICAgICAgICBQcmludCAzIGxpbmVzIChoZXggMHgzMCBieXRlcykgZnJvbSB0aGUgZW5kIG9mIGZpbGUKICAgICAgICAlIHh4ZCAtcyAtMHgzMCBmaWxlCiAKLSAgICAgICBQcmludCAgMTIwICBieXRlcyBhcyBjb250aW51b3VzIGhleGR1bXAgd2l0aCA0MCBvY3RldHMgcGVyCi0gICAgICAgbGluZS4KKyAgICAgICBQcmludCAxMjAgYnl0ZXMgYXMgY29udGludW91cyBoZXhkdW1wIHdpdGggNDAgb2N0ZXRzIHBlciBsaW5lLgogICAgICAgICUgeHhkIC1sIDEyMCAtcHMgLWMgMjAgeHhkLjEKLSAgICAgICAyZTU0NDgyMDU4NTg0NDIwMzEyMDIyNGQ2MTZlNzU2MTZjMjA3MDYxCi0gICAgICAgNjc2NTIwNjY2ZjcyMjA3ODc4NjQyMjBhMmU1YzIyMGEyZTVjMjIyMAotICAgICAgIDMyMzE3Mzc0MjA0ZDYxNzkyMDMxMzkzOTM2MGEyZTVjMjIyMDRkNjEKLSAgICAgICA2ZTIwNzA2MTY3NjUyMDYxNzU3NDY4NmY3MjNhMGEyZTVjMjIyMDIwCi0gICAgICAgMjAyMDU0NmY2ZTc5MjA0ZTc1Njc2NTZlNzQyMDNjNzQ2ZjZlNzk0MAotICAgICAgIDczNjM3NDZlNzU2NzY1NmUyZTcwNzA3MDJlNjc3NTJlNjU2NDc1MmUKKyAgICAgICAyZTU0NDgyMDU4NTg0NDIwMzEyMDIyNDE3NTY3NzU3Mzc0MjAzMTM5CisgICAgICAgMzkzNjIyMjAyMjRkNjE2ZTc1NjE2YzIwNzA2MTY3NjUyMDY2NmY3MgorICAgICAgIDIwNzg3ODY0MjIwYTJlNWMyMjBhMmU1YzIyMjAzMjMxNzM3NDIwNGQKKyAgICAgICA2MTc5MjAzMTM5MzkzNjBhMmU1YzIyMjA0ZDYxNmUyMDcwNjE2NzY1CisgICAgICAgMjA2MTc1NzQ2ODZmNzIzYTBhMmU1YzIyMjAyMDIwMjA1NDZmNmU3OQorICAgICAgIDIwNGU3NTY3NjU2ZTc0MjAzYzc0NmY2ZTc5NDA3MzYzNzQ2ZTc1NjcKIAotICAgICAgIEhleGR1bXAgdGhlIGZpcnN0IDEyMCBieXRlcyAgb2YgIHRoaXMgIG1hbiAgcGFnZSAgd2l0aCAgMTIKLSAgICAgICBvY3RldHMgcGVyIGxpbmUuCisgICAgICAgSGV4ZHVtcCB0aGUgZmlyc3QgMTIwIGJ5dGVzIG9mIHRoaXMgbWFuIHBhZ2Ugd2l0aCAxMiBvY3RldHMgcGVyIGxpbmUuCiAgICAgICAgJSB4eGQgLWwgMTIwIC1jIDEyIHh4ZC4xCi0gICAgICAgMDAwMDAwMDogMmU1NCA0ODIwIDU4NTggNDQyMCAzMTIwIDIyNGQgIC5USCBYWEQgMSAiTQotICAgICAgIDAwMDAwMGM6IDYxNmUgNzU2MSA2YzIwIDcwNjEgNjc2NSAyMDY2ICBhbnVhbCBwYWdlIGYKLSAgICAgICAwMDAwMDE4OiA2ZjcyIDIwNzggNzg2NCAyMjBhIDJlNWMgMjIwYSAgb3IgeHhkIi4uXCIuCi0gICAgICAgMDAwMDAyNDogMmU1YyAyMjIwIDMyMzEgNzM3NCAyMDRkIDYxNzkgIC5cIiAyMXN0IE1heQotICAgICAgIDAwMDAwMzA6IDIwMzEgMzkzOSAzNjBhIDJlNWMgMjIyMCA0ZDYxICAgMTk5Ni4uXCIgTWEKLSAgICAgICAwMDAwMDNjOiA2ZTIwIDcwNjEgNjc2NSAyMDYxIDc1NzQgNjg2ZiAgbiBwYWdlIGF1dGhvCi0gICAgICAgMDAwMDA0ODogNzIzYSAwYTJlIDVjMjIgMjAyMCAyMDIwIDU0NmYgIHI6Li5cIiAgICBUbwotICAgICAgIDAwMDAwNTQ6IDZlNzkgMjA0ZSA3NTY3IDY1NmUgNzQyMCAzYzc0ICBueSBOdWdlbnQgPHQKLSAgICAgICAwMDAwMDYwOiA2ZjZlIDc5NDAgNzM2MyA3NDZlIDc1NjcgNjU2ZSAgb255QHNjdG51Z2VuCi0gICAgICAgMDAwMDA2YzogMmU3MCA3MDcwIDJlNjcgNzUyZSA2NTY0IDc1MmUgIC5wcHAuZ3UuZWR1LgorICAgICAgIDAwMDAwMDA6IDJlNTQgNDgyMCA1ODU4IDQ0MjAgMzEyMCAyMjQxICAuVEggWFhEIDEgIkEKKyAgICAgICAwMDAwMDBjOiA3NTY3IDc1NzMgNzQyMCAzMTM5IDM5MzYgMjIyMCAgdWd1c3QgMTk5NiIKKyAgICAgICAwMDAwMDE4OiAyMjRkIDYxNmUgNzU2MSA2YzIwIDcwNjEgNjc2NSAgIk1hbnVhbCBwYWdlCisgICAgICAgMDAwMDAyNDogMjA2NiA2ZjcyIDIwNzggNzg2NCAyMjBhIDJlNWMgICBmb3IgeHhkIi4uXAorICAgICAgIDAwMDAwMzA6IDIyMGEgMmU1YyAyMjIwIDMyMzEgNzM3NCAyMDRkICAiLi5cIiAyMXN0IE0KKyAgICAgICAwMDAwMDNjOiA2MTc5IDIwMzEgMzkzOSAzNjBhIDJlNWMgMjIyMCAgYXkgMTk5Ni4uXCIKKyAgICAgICAwMDAwMDQ4OiA0ZDYxIDZlMjAgNzA2MSA2NzY1IDIwNjEgNzU3NCAgTWFuIHBhZ2UgYXV0CisgICAgICAgMDAwMDA1NDogNjg2ZiA3MjNhIDBhMmUgNWMyMiAyMDIwIDIwMjAgIGhvcjouLlwiCisgICAgICAgMDAwMDA2MDogNTQ2ZiA2ZTc5IDIwNGUgNzU2NyA2NTZlIDc0MjAgIFRvbnkgTnVnZW50CisgICAgICAgMDAwMDA2YzogM2M3NCA2ZjZlIDc5NDAgNzM2MyA3NDZlIDc1NjcgIDx0b255QHNjdG51ZwogCiAgICAgICAgRGlzcGxheSBqdXN0IHRoZSBkYXRlIGZyb20gdGhlIGZpbGUgeHhkLjEKLSAgICAgICAlIHh4ZCAtcyAweDI4IC1sIDEyIC1jIDEyIHh4ZC4xCi0gICAgICAgMDAwMDAyODogMzIzMSA3Mzc0IDIwNGQgNjE3OSAyMDMxIDM5MzkgIDIxc3QgTWF5IDE5OQorICAgICAgICUgeHhkIC1zIDB4MzYgLWwgMTMgLWMgMTMgeHhkLjEKKyAgICAgICAwMDAwMDM2OiAzMjMxIDczNzQgMjA0ZCA2MTc5IDIwMzEgMzkzOSAzNiAgMjFzdCBNYXkgMTk5NgogCi0gICAgICAgQ29weSAgaW5wdXRfZmlsZSAgdG8gIG91dHB1dF9maWxlIGFuZCBwcmVwZW5kIDEwMCBieXRlcyBvZgotICAgICAgIHZhbHVlIDB4MDAuCisgICAgICAgQ29weSBpbnB1dF9maWxlIHRvIG91dHB1dF9maWxlIGFuZCBwcmVwZW5kIDEwMCBieXRlcyBvZiB2YWx1ZSAweDAwLgogICAgICAgICUgeHhkIGlucHV0X2ZpbGUgfCB4eGQgLXIgLXMgMTAwID4gb3V0cHV0X2ZpbGUKIAogICAgICAgIFBhdGNoIHRoZSBkYXRlIGluIHRoZSBmaWxlIHh4ZC4xCi0gICAgICAgJSBlY2hvICcwMDAwMDI5OiAzNTc0IDY4JyB8IHh4ZCAtciAtIHh4ZC4xCi0gICAgICAgJSB4eGQgLXMgMHgyOCAtbCAxMiAtYyAxMiB4eGQuMQotICAgICAgIDAwMDAwMjg6IDMyMzUgNzQ2OCAyMDRkIDYxNzkgMjAzMSAzOTM5ICAyNXRoIE1heSAxOTkKKyAgICAgICAlIGVjaG8gJzAwMDAwMzc6IDM1NzQgNjgnIHwgeHhkIC1yIC0geHhkLjEKKyAgICAgICAlIHh4ZCAtcyAweDM2IC1sIDEzIC1jIDEzIHh4ZC4xCisgICAgICAgMDAwMDAzNjogMzIzNSA3NDY4IDIwNGQgNjE3OSAyMDMxIDM5MzkgMzYgIDI1dGggTWF5IDE5OTYKIAotICAgICAgIENyZWF0ZSBhIDY1NTM3IGJ5dGUgZmlsZSB3aXRoIGFsbCBieXRlcyAweDAwLCAgZXhjZXB0ICBmb3IKLSAgICAgICB0aGUgbGFzdCBvbmUgd2hpY2ggaXMgJ0EnIChoZXggMHg0MSkuCisgICAgICAgQ3JlYXRlICBhICA2NTUzNyBieXRlIGZpbGUgd2l0aCBhbGwgYnl0ZXMgMHgwMCwgZXhjZXB0IGZvciB0aGUgbGFzdCBvbmUKKyAgICAgICB3aGljaCBpcyAnQScgKGhleCAweDQxKS4KICAgICAgICAlIGVjaG8gJzAxMDAwMDogNDEnIHwgeHhkIC1yID4gZmlsZQogCiAgICAgICAgSGV4ZHVtcCB0aGlzIGZpbGUgd2l0aCBhdXRvc2tpcC4KQEAgLTI1NCwzNCArMTk3LDIxIEBACiAgICAgICAgKgogICAgICAgIDAwMGZmZmM6IDAwMDAgMDAwMCA0MCAgICAgICAgICAgICAgICAgICAuLi4uQQogCi0gICAgICAgQ3JlYXRlICBhICAxICBieXRlIGZpbGUgY29udGFpbmluZyBhIHNpbmdsZSAnQScgY2hhcmFjdGVyLgotICAgICAgIFRoZSBudW1iZXIgYWZ0ZXIgJy1yIC1zJyBhZGRzIHRvIHRoZSBsaW5lbnVtYmVycyBmb3VuZCAgaW4KLQotCi0KLU1hbnVhbCBwYWdlIGZvciB4eGQgICAgICAgIEF1Z3VzdCAxOTk2ICAgICAgICAgICAgICAgICAgICAgICAgICA0Ci0KLQotCi0KLQotWFhEKDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYWEQoMSkKLQotCi0gICAgICAgdGhlIGZpbGU7IGluIGVmZmVjdCwgdGhlIGxlYWRpbmcgYnl0ZXMgYXJlIHN1cHByZXNzZWQuCisgICAgICAgQ3JlYXRlIGEgMSBieXRlIGZpbGUgY29udGFpbmluZyBhIHNpbmdsZSAgJ0EnICBjaGFyYWN0ZXIuICAgVGhlICBudW1iZXIKKyAgICAgICBhZnRlciAnLXIgLXMnIGFkZHMgdG8gdGhlIGxpbmVudW1iZXJzIGZvdW5kIGluIHRoZSBmaWxlOyBpbiBlZmZlY3QsIHRoZQorICAgICAgIGxlYWRpbmcgYnl0ZXMgYXJlIHN1cHByZXNzZWQuCiAgICAgICAgJSBlY2hvICcwMTAwMDA6IDQxJyB8IHh4ZCAtciAtcyAtMHgxMDAwMCA+IGZpbGUKIAotICAgICAgIFVzZSAgeHhkICBhcyAgYSAgZmlsdGVyIHdpdGhpbiBhbiBlZGl0b3Igc3VjaCBhcyB2aW0oMSkgdG8KLSAgICAgICBoZXhkdW1wIGEgcmVnaW9uIG1hcmtlZCBiZXR3ZWVuIGBhJyBhbmQgYHonLgorICAgICAgIFVzZSB4eGQgYXMgYSBmaWx0ZXIgd2l0aGluIGFuIGVkaXRvciBzdWNoIGFzIHZpbSgxKSB0byBoZXhkdW1wIGEgcmVnaW9uCisgICAgICAgbWFya2VkIGJldHdlZW4gYGEnIGFuZCBgeicuCiAgICAgICAgOidhLCd6IXh4ZAogCi0gICAgICAgVXNlIHh4ZCBhcyBhIGZpbHRlciB3aXRoaW4gYW4gZWRpdG9yICBzdWNoICBhcyAgdmltKDEpICB0bwotICAgICAgIHJlY292ZXIgYSBiaW5hcnkgaGV4ZHVtcCBtYXJrZWQgYmV0d2VlbiBgYScgYW5kIGB6Jy4KKyAgICAgICBVc2UgeHhkIGFzIGEgZmlsdGVyIHdpdGhpbiBhbiBlZGl0b3Igc3VjaCBhcyB2aW0oMSkgdG8gcmVjb3ZlciBhIGJpbmFyeQorICAgICAgIGhleGR1bXAgbWFya2VkIGJldHdlZW4gYGEnIGFuZCBgeicuCiAgICAgICAgOidhLCd6IXh4ZCAtcgogCi0gICAgICAgVXNlICB4eGQgIGFzICBhICBmaWx0ZXIgd2l0aGluIGFuIGVkaXRvciBzdWNoIGFzIHZpbSgxKSB0bwotICAgICAgIHJlY292ZXIgb25lIGxpbmUgb2YgYSBoZXhkdW1wLiAgTW92ZSB0aGUgY3Vyc29yICBvdmVyICB0aGUKLSAgICAgICBsaW5lIGFuZCB0eXBlOgorICAgICAgIFVzZSB4eGQgYXMgYSBmaWx0ZXIgd2l0aGluIGFuIGVkaXRvciBzdWNoIGFzIHZpbSgxKSB0byByZWNvdmVyIG9uZSBsaW5lCisgICAgICAgb2YgYSBoZXhkdW1wLiAgTW92ZSB0aGUgY3Vyc29yIG92ZXIgdGhlIGxpbmUgYW5kIHR5cGU6CiAgICAgICAgISF4eGQgLXIKIAogICAgICAgIFJlYWQgc2luZ2xlIGNoYXJhY3RlcnMgZnJvbSBhIHNlcmlhbCBsaW5lCkBAIC0yOTUsOCArMjI1LDcgQEAKIAogICAgICAgIDAgICAgICBubyBlcnJvcnMgZW5jb3VudGVyZWQuCiAKLSAgICAgICAtMSAgICAgb3BlcmF0aW9uICBub3Qgc3VwcG9ydGVkICggeHhkIC1yIC1pIHN0aWxsIGltcG9zc2ktCi0gICAgICAgICAgICAgIGJsZSkuCisgICAgICAgLTEgICAgIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkICggeHhkIC1yIC1pIHN0aWxsIGltcG9zc2libGUpLgogCiAgICAgICAgMSAgICAgIGVycm9yIHdoaWxlIHBhcnNpbmcgb3B0aW9ucy4KIApAQCAtMzEwLDkgKzIzOSw4IEBACiAgICAgICAgdXVlbmNvZGUoMSksIHV1ZGVjb2RlKDEpLCBwYXRjaCgxKQogCiBXQVJOSU5HUwotICAgICAgIFRoZSB0b29scyAgd2VpcmRuZXNzICBtYXRjaGVzICBpdHMgIGNyZWF0b3JzICBicmFpbi4gICBVc2UKLSAgICAgICBlbnRpcmVseSAgYXQgeW91ciBvd24gcmlzay4gQ29weSBmaWxlcy4gVHJhY2UgaXQuIEJlY29tZSBhCi0gICAgICAgd2l6YXJkLgorICAgICAgIFRoZSAgdG9vbHMgIHdlaXJkbmVzcyBtYXRjaGVzIGl0cyBjcmVhdG9ycyBicmFpbi4gIFVzZSBlbnRpcmVseSBhdCB5b3VyCisgICAgICAgb3duIHJpc2suIENvcHkgZmlsZXMuIFRyYWNlIGl0LiBCZWNvbWUgYSB3aXphcmQuCiAKIFZFUlNJT04KICAgICAgICBUaGlzIG1hbnVhbCBwYWdlIGRvY3VtZW50cyB4eGQgdmVyc2lvbiAxLjcKQEAgLTMyMiw3NSArMjUwLDE0IEBACiAgICAgICAgPGpud2VpZ2VyQGluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPgogCiAgICAgICAgRGlzdHJpYnV0ZSBmcmVlbHkgYW5kIGNyZWRpdCBtZSwKLQotCi0KLU1hbnVhbCBwYWdlIGZvciB4eGQgICAgICAgIEF1Z3VzdCAxOTk2ICAgICAgICAgICAgICAgICAgICAgICAgICA1Ci0KLQotCi0KLQotWFhEKDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYWEQoMSkKLQotCiAgICAgICAgbWFrZSBtb25leSBhbmQgc2hhcmUgd2l0aCBtZSwKICAgICAgICBsb3NlIG1vbmV5IGFuZCBkb24ndCBhc2sgbWUuCiAKICAgICAgICBNYW51YWwgcGFnZSBzdGFydGVkIGJ5IFRvbnkgTnVnZW50CiAgICAgICAgPHRvbnlAc2N0bnVnZW4ucHBwLmd1LmVkdS5hdT4gPFQuTnVnZW50QHNjdC5ndS5lZHUuYXU+Ci0gICAgICAgU21hbGwgIGNoYW5nZXMgIGJ5ICBCcmFtICBNb29sZW5hYXIuICAgRWRpdGVkICBieSAgSnVlcmdlbgotICAgICAgIFdlaWdlcnQuCisgICAgICAgU21hbGwgY2hhbmdlcyBieSBCcmFtIE1vb2xlbmFhci4gIEVkaXRlZCBieSBKdWVyZ2VuIFdlaWdlcnQuCiAKIAogCiAKLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotTWFudWFsIHBhZ2UgZm9yIHh4ZCAgICAgICAgQXVndXN0IDE5OTYgICAgICAgICAgICAgICAgICAgICAgICAgIDYKLQotCitNYW51YWwgcGFnZSBmb3IgeHhkICAgICAgICAgICAgICAgQXVndXN0IDE5OTYgICAgICAgICAgICAgICAgICAgICAgICAgICBYWEQoMSkKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZmlsZXR5cGUudmltIGIvcnVudGltZS9maWxldHlwZS52aW0KaW5kZXggYzEwNTc5ZS4uOTQ2NTAyNiAxMDA2NDQKLS0tIGEvcnVudGltZS9maWxldHlwZS52aW0KKysrIGIvcnVudGltZS9maWxldHlwZS52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBzdXBwb3J0IGZpbGUgdG8gZGV0ZWN0IGZpbGUgdHlwZXMKICIKICIgTWFpbnRhaW5lcjoJQnJhbSBNb29sZW5hYXIgPEJyYW1AdmltLm9yZz4KLSIgTGFzdCBDaGFuZ2U6CTIwMDQgT2N0IDE0CisiIExhc3QgQ2hhbmdlOgkyMDA0IE5vdiAxOAogCiAiIExpc3RlbiB2ZXJ5IGNhcmVmdWxseSwgSSB3aWxsIHNheSB0aGlzIG9ubHkgb25jZQogaWYgZXhpc3RzKCJkaWRfbG9hZF9maWxldHlwZXMiKQpAQCAtMTI4MSw2ICsxMjgxLDkgQEAKICIgc2VkCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5zZWQJCQlzZXRmIHNlZAogCisiIFNpZXZlIChSRkMgMzAyOCkKK2F1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnNpdgkJCXNldGYgc2lldmUKKwogIiBTZW5kbWFpbAogYXUgQnVmTmV3RmlsZSxCdWZSZWFkIHNlbmRtYWlsLmNmCQlzZXRmIHNtCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4udmltIGIvcnVudGltZS9mdHBsdWdpbi52aW0KaW5kZXggMmM2NDU1MC4uZDA4MTMyNiAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBzdXBwb3J0IGZpbGUgdG8gc3dpdGNoIG9uIGxvYWRpbmcgcGx1Z2lucyBmb3IgZmlsZSB0eXBlcwogIgogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgotIiBMYXN0IGNoYW5nZToJMjAwMyBNYXkgMTAKKyIgTGFzdCBjaGFuZ2U6CTIwMDQgTm92IDIyCiAKIGlmIGV4aXN0cygiZGlkX2xvYWRfZnRwbHVnaW4iKQogICBmaW5pc2gKQEAgLTE0LDcgKzE0LDcgQEAKICAgICBpZiBleHBhbmQoIjxhbWF0Y2g+IikgIT0gIiIKICAgICAgIGlmIGV4aXN0cygiYjp1bmRvX2Z0cGx1Z2luIikKIAlleGUgYjp1bmRvX2Z0cGx1Z2luCi0JdW5sZXQgYjp1bmRvX2Z0cGx1Z2luIGI6ZGlkX2Z0cGx1Z2luCisJdW5sZXQhIGI6dW5kb19mdHBsdWdpbiBiOmRpZF9mdHBsdWdpbgogICAgICAgZW5kaWYKICAgICAgIGlmICZjcG8gPX4jICJTIiAmJiBleGlzdHMoImI6ZGlkX2Z0cGx1Z2luIikKIAkiIEluIGNvbXBhdGlibGUgbW9kZSBvcHRpb25zIGFyZSByZXNldCB0byB0aGUgZ2xvYmFsIHZhbHVlcywgbmVlZCB0bwpkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi9saXNwLnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vbGlzcC52aW0KaW5kZXggNWJjMjVhZi4uOTQ4MjgzMyAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi9saXNwLnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL2xpc3AudmltCkBAIC0xLDggKzEsMTAgQEAKICIgVmltIGZpbGV0eXBlIHBsdWdpbgogIiBMYW5ndWFnZTogICAgICBMaXNwCi0iIE1haW50YWluZXI6ICAgIERvcmFpIFNpdGFyYW0gPGRzMjZAZ3RlLmNvbT4KLSIgVVJMOgkJIGh0dHA6Ly93d3cuY2NzLm5ldS5lZHUvfmRvcmFpL3ZpbXBsdWdpbnMvdmltcGx1Z2lucy5odG1sCi0iIExhc3QgQ2hhbmdlOiAgIE1heSAxNSwgMjAwMworIiBNYWludGFpbmVyOiAgICBTZXJnZXkgS2hvcmV2IDxzZXJnZXkua2hvcmV2QGdtYWlsLmNvbT4KKyIgVVJMOgkJIGh0dHA6Ly9pYW1waGV0Lm5tLnJ1L3ZpbQorIiBPcmlnaW5hbCBhdXRob3I6ICAgIERvcmFpIFNpdGFyYW0gPGRzMjZAZ3RlLmNvbT4KKyIgT3JpZ2luYWwgVVJMOgkJIGh0dHA6Ly93d3cuY2NzLm5ldS5lZHUvfmRvcmFpL3ZpbXBsdWdpbnMvdmltcGx1Z2lucy5odG1sCisiIExhc3QgQ2hhbmdlOiAgIE5vdiA4LCAyMDA0CiAKICIgT25seSBkbyB0aGlzIHdoZW4gbm90IGRvbmUgeWV0IGZvciB0aGlzIGJ1ZmZlcgogaWYgZXhpc3RzKCJiOmRpZF9mdHBsdWdpbiIpCkBAIC0xOCwzICsyMCwxMSBAQAogc2V0bCBmb3JtYXRvcHRpb25zLT10CiBzZXRsIGlza2V5d29yZCs9KywtLCosLywlLDwsPSw+LDosJCw/LCEsQC1ALDk0CiBzZXRsIGxpc3AKKworIiBtYWtlIGNvbW1lbnRzIGJlaGF2aW91ciBsaWtlIGluIGMudmltCisiIGUuZy4gaW5zZXJ0aW9uIG9mIDs7OyBhbmQgOzsgb24gbm9ybWFsICJPIiBvciAibyIgd2hlbiBzdGF5aW5nIGluIGNvbW1lbnQKK3NldGwgY29tbWVudHNePTo7OzssOjs7LHNyOiNcfCxtYjpcfCxleDpcfCMKK3NldGwgZm9ybWF0b3B0aW9ucys9Y3JvcWwKKyIgd2l0aCBzbWFydGluZGVudCAjIGNhdXNlIGxlZnQgYWxpZ25tZW50CitzZXRsIG5vc21hcnRpbmRlbnQKKwpkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi9wZXJsLnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vcGVybC52aW0KaW5kZXggOWY3MTRhOS4uZThjODAxZiAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi9wZXJsLnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL3BlcmwudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gZmlsZXR5cGUgcGx1Z2luIGZpbGUKICIgTGFuZ3VhZ2U6CVBlcmwKICIgTWFpbnRhaW5lcjoJRGFuIFNoYXJwIDxkd3NoYXJwIGF0IGhvdG1haWwgZG90IGNvbT4KLSIgTGFzdCBDaGFuZ2U6ICAyMDA0IE1heSAxNgorIiBMYXN0IENoYW5nZTogIDIwMDQgRGVjIDA2CiAiIFVSTDoJCWh0dHA6Ly9teXdlYnBhZ2UubmV0c2NhcGUuY29tL3NoYXJwcGVvcGxlL3ZpbS9mdHBsdWdpbgogCiBpZiBleGlzdHMoImI6ZGlkX2Z0cGx1Z2luIikgfCBmaW5pc2ggfCBlbmRpZgpAQCAtMjcsNyArMjcsNyBAQAogCiAiIFByb3ZpZGVkIGJ5IE5lZCBLb256IDxuZWQgYXQgYmlrZS1ub21hZCBkb3QgY29tPgogIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotc2V0bG9jYWwgaW5jbHVkZT1cXDxcXCh1c2VcfHJlcXVpcmVcXClcXD4KK3NldGxvY2FsIGluY2x1ZGU9XFw8XFwodXNlXFx8cmVxdWlyZVxcKVxcPgogc2V0bG9jYWwgaW5jbHVkZWV4cHI9c3Vic3RpdHV0ZShzdWJzdGl0dXRlKHY6Zm5hbWUsJzo6JywnLycsJ2cnKSwnJCcsJy5wbScsJycpCiBzZXRsb2NhbCBkZWZpbmU9W15BLVphLXpfXQogCmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL3NjaGVtZS52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL3NjaGVtZS52aW0KaW5kZXggN2QzNGY3Mi4uMDIxYzIzYSAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi9zY2hlbWUudmltCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vc2NoZW1lLnZpbQpAQCAtMSw3ICsxLDI2IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4KICIgTGFuZ3VhZ2U6ICAgICAgU2NoZW1lCi0iIE1haW50YWluZXI6ICAgIERvcmFpIFNpdGFyYW0gPGRzMjZAZ3RlLmNvbT4KLSIgVVJMOgkJIGh0dHA6Ly93d3cuY2NzLm5ldS5lZHUvfmRvcmFpL3ZpbXBsdWdpbnMvdmltcGx1Z2lucy5odG1sCi0iIExhc3QgQ2hhbmdlOiAgIEFwciAyLCAyMDAzCisiIE1haW50YWluZXI6ICAgIFNlcmdleSBLaG9yZXYgPHNlcmdleS5raG9yZXZAZ21haWwuY29tPgorIiBVUkw6CQkgaHR0cDovL2lhbXBoZXQubm0ucnUvdmltIAorIiBPcmlnaW5hbCBhdXRob3I6ICAgIERvcmFpIFNpdGFyYW0gPGRzMjZAZ3RlLmNvbT4KKyIgT3JpZ2luYWwgVVJMOgkJIGh0dHA6Ly93d3cuY2NzLm5ldS5lZHUvfmRvcmFpL3ZpbXBsdWdpbnMvdmltcGx1Z2lucy5odG1sCisiIExhc3QgQ2hhbmdlOiAgIE5vdiAyMiwgMjAwNAogCi1ydW4gZnRwbHVnaW4vbGlzcC52aW0KK3J1bnRpbWUhIGZ0cGx1Z2luL2xpc3AudmltIGZ0cGx1Z2luL2xpc3BfKi52aW0gZnRwbHVnaW4vbGlzcC8qLnZpbQorCitpZiBleGlzdHMoImI6aXNfbXpzY2hlbWUiKSB8fCBleGlzdHMoImlzX216c2NoZW1lIikKKyAgICAiIGltcHJvdmUgaW5kZW50aW5nCisgICAgc2V0bCBpc2tleXdvcmQrPSMsJSxeCisgICAgc2V0bCBsaXNwd29yZHMrPW1vZHVsZSxwYXJhbWV0ZXJpemUsbGV0LXZhbHVlcyxsZXQqLXZhbHVlcyxsZXRyZWMtdmFsdWVzCisgICAgc2V0bCBsaXNwd29yZHMrPWRlZmluZS12YWx1ZXMsb3B0LWxhbWJkYSxjYXNlLWxhbWJkYSxzeW50YXgtcnVsZXMsd2l0aC1zeW50YXgsc3ludGF4LWNhc2UKKyAgICBzZXRsIGxpc3B3b3Jkcys9ZGVmaW5lLXNpZ25hdHVyZSx1bml0LHVuaXQvc2lnLGNvbXB1bmQtdW5pdC9zaWcsZGVmaW5lLXZhbHVlcy9pbnZva2UtdW5pdC9zaWcKK2VuZGlmCisKK2lmIGV4aXN0cygiYjppc19jaGlja2VuIikgfHwgZXhpc3RzKCJpc19jaGlja2VuIikKKyAgICAiIGltcHJvdmUgaW5kZW50aW5nCisgICAgc2V0bCBpc2tleXdvcmQrPSMsJSxeCisgICAgc2V0bCBsaXNwd29yZHMrPWxldC1vcHRpb25hbHMsbGV0LW9wdGlvbmFscyosZGVjbGFyZQorICAgIHNldGwgbGlzcHdvcmRzKz1sZXQtdmFsdWVzLGxldCotdmFsdWVzLGxldHJlYy12YWx1ZXMKKyAgICBzZXRsIGxpc3B3b3Jkcys9ZGVmaW5lLXZhbHVlcyxvcHQtbGFtYmRhLGNhc2UtbGFtYmRhLHN5bnRheC1ydWxlcyx3aXRoLXN5bnRheCxzeW50YXgtY2FzZQorICAgIHNldGwgbGlzcHdvcmRzKz1jb25kLWV4cGFuZCxhbmQtbGV0Kixmb3JlaWduLWxhbWJkYSxmb3JlaWduLWxhbWJkYSoKK2VuZGlmCmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC9HZW5lcmljSW5kZW50LnZpbSBiL3J1bnRpbWUvaW5kZW50L0dlbmVyaWNJbmRlbnQudmltCmluZGV4IDA5YWQ5MjcuLjgzNTIzZGYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvaW5kZW50L0dlbmVyaWNJbmRlbnQudmltCisrKyBiL3J1bnRpbWUvaW5kZW50L0dlbmVyaWNJbmRlbnQudmltCkBAIC0xLDMyMiArMSwzMjIgQEAKLSIgVmltIGluZGVudCBmaWxlIGdlbmVyaWMgdXRpbGl0eSBmdW5jdGlvbnMNCi0iIExhbmd1YWdlOiAgICAqICh2YXJpb3VzKQ0KLSIgTWFpbnRhaW5lcjogIERhdmUgU2lsdmlhIDxkc2lsdmlhQG1jaHNpLmNvbT4NCi0iIERhdGU6ICAgICAgICA2LzMwLzIwMDQNCi0NCi0iIFNVTU1BUlk6ICBUbyB1c2UgR2VuZXJpY0luZGVudCwgaW5kZW50Lzx5b3VyX2ZpbGVuYW1lPi52aW0gd291bGQgaGF2ZSB0aGUNCi0iICAgICAgICAgICBmb2xsb3dpbmcgZ2VuZXJhbCBmb3JtYXQ6DQotIg0KLSIgICAgICBpZiBleGlzdHMoImI6ZGlkX2luZGVudCIpIHwgZmluaXNoIHwgZW5kaWYNCi0iICAgICAgbGV0IGI6ZGlkX2luZGVudCA9IDENCi0iICAgICAgcnVudGltZSBpbmRlbnQvR2VuZXJpY0luZGVudC52aW0NCi0iICAgICAgbGV0IGI6aW5kZW50U3RtdHM9JycNCi0iICAgICAgbGV0IGI6ZGVkZW50U3RtdHM9JycNCi0iICAgICAgbGV0IGI6YWxsU3RtdHM9JycNCi0iICAgICAgc2V0bG9jYWwgaW5kZW50ZXhwcj1HZW5lcmljSW5kZW50KCkNCi0iICAgICAgc2V0bG9jYWwgaW5kZW50a2V5cz08eW91cl9rZXlzPg0KLSIgICAgICBjYWxsIEdlbmVyaWNJbmRlbnRTdG10cyg8eW91cl9zdG10cz4pDQotIiAgICAgIGNhbGwgR2VuZXJpY0RlZGVudFN0bXRzKDx5b3VyX3N0bXRzPikNCi0iICAgICAgY2FsbCBHZW5lcmljQWxsU3RtdHMoKQ0KLSINCi0iIEVORCBTVU1NQVJZOg0KLQ0KLSIgTk9URTogIGI6aW5kZW50U3RtdHMsIGI6ZGVkZW50U3RtdHMsIGFuZCBiOmFsbFN0bXRzIG5lZWQgdG8gYmUgaW5pdGlhbGl6ZWQNCi0iICAgICAgICB0byAnJyBiZWZvcmUgY2FsbGluIHRoZSBmdW5jdGlvbnMgYmVjYXVzZSAnaW5kZW50LnZpbScgZXhwbGljaXRseQ0KLSIgICAgICAgICd1bmxldCdzIGI6ZGlkX2luZGVudC4gIFRoaXMgbWVhbnMgdGhhdCB0aGUgbGlzdHMgd2lsbCBjb21wb3VuZCBpZg0KLSIgICAgICAgIHlvdSBjaGFuZ2UgYmFjayBhbmQgZm9ydGggYmV0d2VlbiBidWZmZXJzLiAgVGhpcyBpcyB0cnVlIGFzIG9mDQotIiAgICAgICAgdmVyc2lvbiA2LjMsIDYvMjMvMjAwNC4NCi0iDQotIiBOT1RFOiAgQnkgZGVmYXVsdCwgR2VuZXJpY0luZGVudCBpcyBjYXNlIHNlbnNpdGl2ZS4NCi0iICAgICAgICBsZXQgYjpjYXNlX2luc2Vuc2l0aXZlPTEgaWYgeW91IHdhbnQgdG8gaWdub3JlIGNhc2UsIGUuZy4gRE9TIGJhdGNoIGZpbGVzDQotDQotIiBUaGUgZnVuY3Rpb24gJ0dlbmVyaWNJbmRlbnQnIGlzIGRhdGEgZHJpdmVuIGFuZCBoYW5kbGVzIG1vc3QgYWxsIGNhc2VzIG9mDQotIiBpbmRlbnQgY2hlY2tpbmcgaWYgeW91IGZpcnN0IHNldCB1cCB0aGUgZGF0YS4gIFRvIHVzZSB0aGlzIGZ1bmN0aW9uIGZvbGxvdw0KLSIgdGhlIGV4YW1wbGUgYmVsb3cgKHRha2VuIGZyb20gdGhlIGZpbGUgaW5kZW50L011UEFEX3NvdXJjZS52aW0pDQotIg0KLSIgQmVmb3JlIHlvdSBzdGFydCwgc291cmNlIHRoaXMgZmlsZSBpbiBpbmRlbnQvPHlvdXJfc2NyaXB0Pi52aW0gdG8gaGF2ZSBpdA0KLSIgZGVmaW5lIGZ1bmN0aW9ucyBmb3IgeW91ciB1c2UuDQotIg0KLSJydW50aW1lIGluZGVudC9HZW5lcmljSW5kZW50LnZpbQ0KLSINCi0iIFRoZSBkYXRhIGlzIGluIDUgc2V0czoNCi0iDQotIiBGaXJzdCwgc2V0IHRoZSBkYXRhIHNldCAnaW5kZW50ZXhwcicgdG8gR2VuZXJpY0luZGVudCgpLg0KLSINCi0ic2V0bG9jYWwgaW5kZW50ZXhwcj1HZW5lcmljSW5kZW50KCkNCi0iDQotIiBTZWNvbmQsIHNldCB0aGUgZGF0YSBzZXQgJ2luZGVudGtleXMnIHRvIHRoZSBrZXl3b3Jkcy9leHByZXNzaW9ucyB0aGF0IG5lZWQNCi0iIHRvIGJlIGNoZWNrZWQgZm9yICdpbmRlbnRpbmcnIF9hc18gdGhleSB0eXBlZC4NCi0iDQotInNldGxvY2FsIGluZGVudGtleXM9PWVuZF9wcm9jLD1lbHNlLD10aGVuLD1lbGlmLD1lbmRfaWYsPWVuZF9jYXNlLD11bnRpbCw9ZW5kX3JlcGVhdCw9ZW5kX2RvbWFpbiw9ZW5kX2Zvciw9ZW5kX3doaWxlLD1lbmQsbyxPDQotIg0KLSIgTk9URTogJ28sTycgYXQgdGhlIGVuZCBvZiB0aGUgcHJldmlvdXMgbGluZSBzYXlzIHlvdSB3aXNoIHRvIGJlIGNhbGxlZA0KLSIgd2hlbmV2ZXIgYSBuZXdsaW5lIGlzIHBsYWNlZCBpbiB0aGUgYnVmZmVyLiAgVGhpcyBhbGxvd3MgdGhlIHByZXZpb3VzIGxpbmUNCi0iIHRvIGJlIGNoZWNrZWQgZm9yIGluZGVudGF0aW9uIHBhcmFtZXRlcnMuDQotIg0KLSIgVGhpcmQsIHNldCB0aGUgZGF0YSBzZXQgJ2I6aW5kZW50U3RtdHMnIHRvIHRoZSBrZXl3b3Jkcy9leHByZXNzaW9ucyB0aGF0LCB3aGVuDQotIiB0aGV5IGFyZSBvbiBhIGxpbmUgIF93aGVuXyAgeW91ICBfcHJlc3NfICB0aGUgIF88RW50ZXI+XyAga2V5LA0KLSIgeW91IHdpc2ggdG8gaGF2ZSB0aGUgbmV4dCBsaW5lIGluZGVudGVkLg0KLSINCi0iY2FsbCBHZW5lcmljSW5kZW50U3RtdHMoJ2JlZ2luLGlmLHRoZW4sZWxzZSxlbGlmLGNhc2UscmVwZWF0LHVudGlsLGRvbWFpbixkbycpDQotIg0KLSIgRm91cnRoLCBzZXQgdGhlIGRhdGEgc2V0ICdiOmRlZGVudFN0bXRzJyB0byB0aGUga2V5d29yZHMvZXhwcmVzc2lvbnMgdGhhdCwgd2hlbg0KLSIgdGhleSBhcmUgb24gYSBsaW5lIHlvdSBhcmUgY3VycmVudGx5IHR5cGluZywgeW91IHdpc2ggdG8gaGF2ZSB0aGF0IGxpbmUNCi0iICdkZWRlbnRlZCcgKGhhdmluZyBhbHJlYWR5IGJlZW4gaW5kZW50ZWQgYmVjYXVzZSBvZiB0aGUgcHJldmlvdXMgbGluZSdzDQotIiBpbmRlbnRhdGlvbikuDQotIg0KLSJjYWxsIEdlbmVyaWNEZWRlbnRTdG10cygnZW5kX3Byb2MsdGhlbixlbHNlLGVsaWYsZW5kX2lmLGVuZF9jYXNlLHVudGlsLGVuZF9yZXBlYXQsZW5kX2RvbWFpbixlbmRfZm9yLGVuZF93aGlsZSxlbmQnKQ0KLSINCi0iIEZpZnRoLCBzZXQgdGhlIGRhdGEgc2V0ICdiOmFsbFN0bXRzJyB0byB0aGUgY29uY2F0ZW5hdGlvbiBvZiB0aGUgdGhpcmQgYW5kDQotIiBmb3VydGggZGF0YSBzZXRzLCB1c2VkIGZvciBjaGVja2luZyB3aGVuIG1vcmUgdGhhbiBvbmUga2V5d29yZC9leHByZXNzaW9uDQotIiBpcyBvbiBhIGxpbmUuDQotIg0KLSJjYWxsIEdlbmVyaWNBbGxTdG10cygpDQotIg0KLSIgTk9URTogIEdlbmVyaWNJbmRlbnRTdG10cyB1c2VzIHR3byB2YXJpYWJsZXM6ICdiOmluZGVudFN0bXRPcGVuJyBhbmQNCi0iICdiOmluZGVudFN0bXRDbG9zZScgd2hpY2ggZGVmYXVsdCB0byAnXDwnIGFuZCAnXD4nIHJlc3BlY3RpdmVseS4gIFlvdSBjYW4NCi0iIHNldCAobGV0KSB0aGVzZSB0byBhbnkgdmFsdWUgeW91IHdpc2ggYmVmb3JlIGNhbGxpbmcgR2VuZXJpY0luZGVudFN0bXRzIHdpdGgNCi0iIHlvdXIgbGlzdC4gIFNpbWlsYXJseSwgR2VuZXJpY0RlZGVudFN0bXRzIHVzZXMgJ2I6ZGVkZW50U3RtdE9wZW4nIGFuZA0KLSIgJ2I6ZGVkZW50U3RtdENsb3NlJy4NCi0iDQotIiBOT1RFOiAgUGF0dGVybnMgbWF5IGJlIHVzZWQgaW4gdGhlIGxpc3RzIHBhc3NlZCB0byBHZW5lcmljW0lufERlXWRlbnRTdG10cw0KLSIgc2luY2UgZWFjaCBlbGVtZW50IGluIHRoZSBsaXN0IGlzIGNvcGllZCB2ZXJiYXRpbS4NCi0iDQotIiBPcHRpb25hbGx5LCB5b3UgY2FuIHNldCB0aGUgREVCVUdHSU5HIGZsYWcgd2l0aGluIHlvdXIgc2NyaXB0IHRvIGhhdmUgdGhlDQotIiBkZWJ1Z2dpbmcgbWVzc2FnZXMgb3V0cHV0LiAgU2VlIGJlbG93IGZvciBkZXNjcmlwdGlvbi4gIFRoaXMgY2FuIGFsc28gYmUgc2V0DQotIiAobGV0KSBmcm9tIHRoZSBjb21tYW5kIGxpbmUgd2l0aGluIHlvdXIgZWRpdGluZyBidWZmZXIuDQotIg0KLSJsZXQgYjpERUJVR0dJTkc9MQ0KLSINCi0iIFNlZToNCi0iICAgICAgOmggcnVudGltZQ0KLSIgICAgICA6c2V0IHJ1bnRpbWVwYXRoID8NCi0iIHRvIGZhbWlsaWFyaXplIHlvdXJzZWxmIHdpdGggaG93IHRoaXMgd29ya3MgYW5kIHdoZXJlIHlvdSBzaG91bGQgaGF2ZSB0aGlzDQotIiBmaWxlIGFuZCB5b3VyIGZpbGUocykgaW5zdGFsbGVkLg0KLSINCi0iIEZvciBoZWxwIHdpdGggc2V0dGluZyAnaW5kZW50a2V5cycgc2VlOg0KLSIgICAgICA6aCBpbmRlbnRrZXlzDQotIiBBbHNvLCBmb3Igc29tZSBnb29kIGV4YW1wbGVzIHNlZSAnaW5kZW50L3NoLnZpbScgYW5kICdpbmRlbnQvdmltLnZpbScgYXMNCi0iIHdlbGwgYXMgZmlsZXMgZm9yIG90aGVyIGxhbmd1YWdlcyB5b3UgbWF5IGJlIGZhbWlsaWFyIHdpdGguDQotIg0KLSINCi0iIEFsdGVybmF0aXZlbHksIGlmIHlvdSdkIHJhdGhlciBzcGVjaWZ5IHlvdXJzZWxmLCB5b3UgY2FuIGVudGVyDQotIiAnYjppbmRlbnRTdG10cycsICdiOmRlZGVudFN0bXRzJywgYW5kICdiOmFsbFN0bXRzJyAnbGl0ZXJhbGx5JzoNCi0iDQotImxldCBiOmluZGVudFN0bXRzPSdcPGJlZ2luXD5cfFw8aWZcPlx8XDx0aGVuXD5cfFw8ZWxzZVw+XHxcPGVsaWZcPlx8XDxjYXNlXD5cfFw8cmVwZWF0XD5cfFw8dW50aWxcPlx8XDxkb21haW5cPlx8XDxkb1w+Jw0KLSJsZXQgYjpkZWRlbnRTdG10cz0nXDxlbmRfcHJvY1w+XHxcPGVsc2VcPlx8XDxlbGlmXD5cfFw8ZW5kX2lmXD5cfFw8ZW5kX2Nhc2VcPlx8XDx1bnRpbFw+XHxcPGVuZF9yZXBlYXRcPlx8XDxlbmRfZG9tYWluXD5cfFw8ZW5kX2Zvclw+XHxcPGVuZF93aGlsZVw+XHxcPGVuZFw+Jw0KLSJsZXQgYjphbGxTdG10cz1iOmluZGVudFN0bXRzLidcfCcuYjpkZWRlbnRTdG10cw0KLSINCi0iIFRoaXMgaXMgb25seSB1c2VmdWwgaWYgeW91IGhhdmUgcGFydGljdWxhcmx5IGRpZmZlcmVudCBwYXJhbWV0ZXJzIGZvcg0KLSIgbWF0Y2hpbmcgZWFjaCBzdGF0ZW1lbnQuDQotDQotIiBSRUNBUDogIEZyb20gaW5kZW50L011UEFEX3NvdXJjZS52aW0NCi0iDQotImlmIGV4aXN0cygiYjpkaWRfaW5kZW50IikgfCBmaW5pc2ggfCBlbmRpZg0KLSINCi0ibGV0IGI6ZGlkX2luZGVudCA9IDENCi0iDQotInJ1bnRpbWUgaW5kZW50L0dlbmVyaWNJbmRlbnQudmltDQotIg0KLSJzZXRsb2NhbCBpbmRlbnRleHByPUdlbmVyaWNJbmRlbnQoKQ0KLSJzZXRsb2NhbCBpbmRlbnRrZXlzPT1lbmRfcHJvYyw9dGhlbiw9ZWxzZSw9ZWxpZiw9ZW5kX2lmLD1lbmRfY2FzZSw9dW50aWwsPWVuZF9yZXBlYXQsPWVuZF9kb21haW4sPWVuZF9mb3IsPWVuZF93aGlsZSw9ZW5kLG8sTw0KLSJjYWxsIEdlbmVyaWNJbmRlbnRTdG10cygnYmVnaW4saWYsdGhlbixlbHNlLGVsaWYsY2FzZSxyZXBlYXQsdW50aWwsZG9tYWluLGRvJykNCi0iY2FsbCBHZW5lcmljRGVkZW50U3RtdHMoJ2VuZF9wcm9jLHRoZW4sZWxzZSxlbGlmLGVuZF9pZixlbmRfY2FzZSx1bnRpbCxlbmRfcmVwZWF0LGVuZF9kb21haW4sZW5kX2ZvcixlbmRfd2hpbGUsZW5kJykNCi0iY2FsbCBHZW5lcmljQWxsU3RtdHMoKQ0KLSINCi0iIEVORCBSRUNBUDoNCi0NCi1sZXQgczpoaXQ9MA0KLWxldCBzOmxhc3RWbG51bT0wDQotbGV0IHM6bXlTY3JpcHROYW1lPWV4cGFuZCgiPHNmaWxlPjp0IikNCi0NCi1pZiBleGlzdHMoIipHZW5lcmljSW5kZW50IikNCi0JZmluaXNoDQotZW5kaWYNCi0NCi1mdW5jdGlvbiBHZW5lcmljQWxsU3RtdHMoKQ0KLQlsZXQgYjphbGxTdG10cz1iOmluZGVudFN0bXRzLidcfCcuYjpkZWRlbnRTdG10cw0KLQljYWxsIERlYnVnR2VuZXJpY0luZGVudChleHBhbmQoIjxzZmlsZT4iKS4iOiAiLiJiOmluZGVudFN0bXRzOiAiLmI6aW5kZW50U3RtdHMuIiwgYjpkZWRlbnRTdG10czogIi5iOmRlZGVudFN0bXRzLiIsIGI6YWxsU3RtdHM6ICIuYjphbGxTdG10cykNCi1lbmRmdW5jdGlvbg0KLQ0KLWZ1bmN0aW9uIEdlbmVyaWNJbmRlbnRTdG10cyhzdG10cykNCi0JbGV0IFN0bXRzPWE6c3RtdHMNCi0JbGV0IENvbW1hPW1hdGNoKFN0bXRzLCcsJykNCi0JaWYgQ29tbWEgPT0gLTEgfHwgQ29tbWEgPT0gc3RybGVuKFN0bXRzKS0xDQotCQllY2hvZXJyICJNdXN0IHN1cHBseSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGF0IGxlYXN0IDIgZW50cmllcy4iDQotCQllY2hvZXJyICJTdXBwbGllZCBsaXN0OiA8Ii5TdG10cy4iPiINCi0JCXJldHVybg0KLQllbmRpZg0KLQ0KLQlpZiAhZXhpc3RzKCJiOmluZGVudFN0bXRPcGVuIikNCi0JCWxldCBiOmluZGVudFN0bXRPcGVuPSdcPCcNCi0JZW5kaWYNCi0JaWYgIWV4aXN0cygiYjppbmRlbnRTdG10Q2xvc2UiKQ0KLQkJbGV0IGI6aW5kZW50U3RtdENsb3NlPSdcPicNCi0JZW5kaWYNCi0JaWYgIWV4aXN0cygiYjppbmRlbnRTdG10cyIpDQotCQlsZXQgYjppbmRlbnRTdG10cz0nJw0KLQllbmRpZg0KLQlpZiBiOmluZGVudFN0bXRzICE9ICcnDQotCQlsZXQgYjppbmRlbnRTdG10cz1iOmluZGVudFN0bXRzLidcfCcNCi0JZW5kaWYNCi0JY2FsbCBEZWJ1Z0dlbmVyaWNJbmRlbnQoZXhwYW5kKCI8c2ZpbGU+IikuIjogIi4iYjppbmRlbnRTdG10T3BlbjogIi5iOmluZGVudFN0bXRPcGVuLiIsIGI6aW5kZW50U3RtdENsb3NlOiAiLmI6aW5kZW50U3RtdENsb3NlLiIsIGI6aW5kZW50U3RtdHM6ICIuYjppbmRlbnRTdG10cy4iLCBTdG10czogIi5TdG10cykNCi0JbGV0IHN0bXRFbnRyeUJlZ2luPTANCi0JbGV0IHN0bXRFbnRyeUVuZD1Db21tYQ0KLQlsZXQgc3RtdEVudHJ5PXN0cnBhcnQoU3RtdHMsc3RtdEVudHJ5QmVnaW4sc3RtdEVudHJ5RW5kLXN0bXRFbnRyeUJlZ2luKQ0KLQlsZXQgU3RtdHM9c3RycGFydChTdG10cyxDb21tYSsxKQ0KLQlsZXQgQ29tbWE9bWF0Y2goU3RtdHMsJywnKQ0KLQlsZXQgYjppbmRlbnRTdG10cz1iOmluZGVudFN0bXRzLmI6aW5kZW50U3RtdE9wZW4uc3RtdEVudHJ5LmI6aW5kZW50U3RtdENsb3NlDQotCXdoaWxlIENvbW1hICE9IC0xDQotCQlsZXQgc3RtdEVudHJ5RW5kPUNvbW1hDQotCQlsZXQgc3RtdEVudHJ5PXN0cnBhcnQoU3RtdHMsc3RtdEVudHJ5QmVnaW4sc3RtdEVudHJ5RW5kLXN0bXRFbnRyeUJlZ2luKQ0KLQkJbGV0IFN0bXRzPXN0cnBhcnQoU3RtdHMsQ29tbWErMSkNCi0JCWxldCBDb21tYT1tYXRjaChTdG10cywnLCcpDQotCQlsZXQgYjppbmRlbnRTdG10cz1iOmluZGVudFN0bXRzLidcfCcuYjppbmRlbnRTdG10T3Blbi5zdG10RW50cnkuYjppbmRlbnRTdG10Q2xvc2UNCi0JZW5kd2hpbGUNCi0JbGV0IHN0bXRFbnRyeT1TdG10cw0KLQlsZXQgYjppbmRlbnRTdG10cz1iOmluZGVudFN0bXRzLidcfCcuYjppbmRlbnRTdG10T3Blbi5zdG10RW50cnkuYjppbmRlbnRTdG10Q2xvc2UNCi1lbmRmdW5jdGlvbg0KLQ0KLWZ1bmN0aW9uIEdlbmVyaWNEZWRlbnRTdG10cyhzdG10cykNCi0JbGV0IFN0bXRzPWE6c3RtdHMNCi0JbGV0IENvbW1hPW1hdGNoKFN0bXRzLCcsJykNCi0JaWYgQ29tbWEgPT0gLTEgfHwgQ29tbWEgPT0gc3RybGVuKFN0bXRzKS0xDQotCQllY2hvZXJyICJNdXN0IHN1cHBseSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGF0IGxlYXN0IDIgZW50cmllcy4iDQotCQllY2hvZXJyICJTdXBwbGllZCBsaXN0OiA8Ii5TdG10cy4iPiINCi0JCXJldHVybg0KLQllbmRpZg0KLQ0KLQlpZiAhZXhpc3RzKCJiOmRlZGVudFN0bXRPcGVuIikNCi0JCWxldCBiOmRlZGVudFN0bXRPcGVuPSdcPCcNCi0JZW5kaWYNCi0JaWYgIWV4aXN0cygiYjpkZWRlbnRTdG10Q2xvc2UiKQ0KLQkJbGV0IGI6ZGVkZW50U3RtdENsb3NlPSdcPicNCi0JZW5kaWYNCi0JaWYgIWV4aXN0cygiYjpkZWRlbnRTdG10cyIpDQotCQlsZXQgYjpkZWRlbnRTdG10cz0nJw0KLQllbmRpZg0KLQlpZiBiOmRlZGVudFN0bXRzICE9ICcnDQotCQlsZXQgYjpkZWRlbnRTdG10cz1iOmRlZGVudFN0bXRzLidcfCcNCi0JZW5kaWYNCi0JY2FsbCBEZWJ1Z0dlbmVyaWNJbmRlbnQoZXhwYW5kKCI8c2ZpbGU+IikuIjogIi4iYjpkZWRlbnRTdG10T3BlbjogIi5iOmRlZGVudFN0bXRPcGVuLiIsIGI6ZGVkZW50U3RtdENsb3NlOiAiLmI6ZGVkZW50U3RtdENsb3NlLiIsIGI6ZGVkZW50U3RtdHM6ICIuYjpkZWRlbnRTdG10cy4iLCBTdG10czogIi5TdG10cykNCi0JbGV0IHN0bXRFbnRyeUJlZ2luPTANCi0JbGV0IHN0bXRFbnRyeUVuZD1Db21tYQ0KLQlsZXQgc3RtdEVudHJ5PXN0cnBhcnQoU3RtdHMsc3RtdEVudHJ5QmVnaW4sc3RtdEVudHJ5RW5kLXN0bXRFbnRyeUJlZ2luKQ0KLQlsZXQgU3RtdHM9c3RycGFydChTdG10cyxDb21tYSsxKQ0KLQlsZXQgQ29tbWE9bWF0Y2goU3RtdHMsJywnKQ0KLQlsZXQgYjpkZWRlbnRTdG10cz1iOmRlZGVudFN0bXRzLmI6ZGVkZW50U3RtdE9wZW4uc3RtdEVudHJ5LmI6ZGVkZW50U3RtdENsb3NlDQotCXdoaWxlIENvbW1hICE9IC0xDQotCQlsZXQgc3RtdEVudHJ5RW5kPUNvbW1hDQotCQlsZXQgc3RtdEVudHJ5PXN0cnBhcnQoU3RtdHMsc3RtdEVudHJ5QmVnaW4sc3RtdEVudHJ5RW5kLXN0bXRFbnRyeUJlZ2luKQ0KLQkJbGV0IFN0bXRzPXN0cnBhcnQoU3RtdHMsQ29tbWErMSkNCi0JCWxldCBDb21tYT1tYXRjaChTdG10cywnLCcpDQotCQlsZXQgYjpkZWRlbnRTdG10cz1iOmRlZGVudFN0bXRzLidcfCcuYjpkZWRlbnRTdG10T3Blbi5zdG10RW50cnkuYjpkZWRlbnRTdG10Q2xvc2UNCi0JZW5kd2hpbGUNCi0JbGV0IHN0bXRFbnRyeT1TdG10cw0KLQlsZXQgYjpkZWRlbnRTdG10cz1iOmRlZGVudFN0bXRzLidcfCcuYjpkZWRlbnRTdG10T3Blbi5zdG10RW50cnkuYjpkZWRlbnRTdG10Q2xvc2UNCi1lbmRmdW5jdGlvbg0KLQ0KLSIgRGVidWdnaW5nIGZ1bmN0aW9uLiAgRGlzcGxheXMgbWVzc2FnZXMgaW4gdGhlIGNvbW1hbmQgYXJlYSB3aGljaCBjYW4gYmUNCi0iIHJldmlld2VkIHVzaW5nICc6bWVzc2FnZXMnLiAgVG8gdHVybiBpdCBvbiB1c2UgJzpsZXQgYjpERUJVR0dJTkc9MScuICBPbmNlDQotIiBvbiwgdHVybiBvZmYgYnkgdXNpbmcgJzpsZXQgYjpERUJVR0dJTkc9MC4gIElmIHlvdSBkb24ndCB3YW50IGl0IGF0IGFsbCBhbmQNCi0iIGZlZWwgaXQncyBzbG93aW5nIGRvd24geW91ciBlZGl0aW5nICh5b3UgbXVzdCBoYXZlIGFuIF9hd2Z1bGx5XyBzbG93DQotIiBtYWNoaW5lITstPiApLCB5b3UgY2FuIGp1c3QgY29tbWVudCBvdXQgdGhlIGNhbGxzIHRvIGl0IGZyb20gJ0dlbmVyaWNJbmRlbnQnDQotIiBiZWxvdy4gIE5vIG5lZWQgdG8gcmVtb3ZlIHRoZSBmdW5jdGlvbiBvciB0aGUgY2FsbHMsIHRobycsIGFzIHlvdSBuZXZlciBjYW4NCi0iIHRlbGwgd2hlbiB0aGV5IG1pZ2h0IGNvbWUgaW4gaGFuZHkhOy0pDQotZnVuY3Rpb24gRGVidWdHZW5lcmljSW5kZW50KG1zZykNCi0gIGlmIGV4aXN0cygiYjpERUJVR0dJTkciKSAmJiBiOkRFQlVHR0lORw0KLQkJZWNob21zZyAnWycuczpoaXQuJ10nLnM6bXlTY3JpcHROYW1lLiI6OiIuYTptc2cNCi0JZW5kaWYNCi1lbmRmdW5jdGlvbg0KLQ0KLWZ1bmN0aW9uIEdlbmVyaWNJbmRlbnQoKQ0KLQkiIHNhdmUgaWdub3JlIGNhc2Ugb3B0aW9uLiAgSGF2ZSB0byBzZXQgbm9pZ25vcmVjYXNlIGZvciB0aGUgbWF0Y2gNCi0JIiBmdW5jdGlvbnMgdG8gZG8gdGhlaXIgam9iIHRoZSB3YXkgd2Ugd2FudCB0aGVtIHRvIQ0KLQkiIE5PVEU6IGlmIHlvdSBhZGQgYSByZXR1cm4gdG8gdGhpcyBmdW5jdGlvbiBiZSBzdXJlIHlvdSBkbw0KLQkiICAgICAgICAgICBpZiBJZ25vcmVDYXNlIHwgc2V0IGlnbm9yZWNhc2UgfCBlbmRpZg0KLQkiICAgICAgIGJlZm9yZSByZXR1cm5pbmcuICBZb3UgY2FuIGp1c3QgY3V0IGFuZCBwYXN0ZSBmcm9tIGhlcmUuDQotCWxldCBJZ25vcmVDYXNlPSZpZ25vcmVjYXNlDQotCSIgbGV0IGI6Y2FzZV9pbnNlbnNpdGl2ZT0xIGlmIHlvdSB3YW50IHRvIGlnbm9yZSBjYXNlLCBlLmcuIERPUyBiYXRjaCBmaWxlcw0KLQlpZiAhZXhpc3RzKCJiOmNhc2VfaW5zZW5zaXRpdmUiKQ0KLQkJc2V0IG5vaWdub3JlY2FzZQ0KLQllbmRpZg0KLQkiIHRoaXMgaXMgdXNlZCB0byBsZXQgRGVidWdHZW5lcmljSW5kZW50IGRpc3BsYXkgd2hpY2ggaW52b2NhdGlvbiBvZiB0aGUNCi0JIiBmdW5jdGlvbiBnb2VzIHdpdGggd2hpY2ggbWVzc2FnZXMuDQotCWxldCBzOmhpdD1zOmhpdCsxDQotICBsZXQgbG51bT12OmxudW0NCi0JbGV0IGNsaW5lPWdldGxpbmUobG51bSkNCi0JbGV0IGxudW09cHJldm5vbmJsYW5rKGxudW0pDQotCWlmIGxudW09PTAgfCBpZiBJZ25vcmVDYXNlIHwgc2V0IGlnbm9yZWNhc2UgfCBlbmRpZiB8IHJldHVybiAwIHwgZW5kaWYNCi0JbGV0IHBsaW5lPWdldGxpbmUobG51bSkNCi0gIGxldCBuZG50PWluZGVudChsbnVtKQ0KLQlpZiAhZXhpc3RzKCJiOmFsbFN0bXRzIikNCi0JCWNhbGwgR2VuZXJpY0FsbFN0bXRzKCkNCi0JZW5kaWYNCi0NCi0JY2FsbCBEZWJ1Z0dlbmVyaWNJbmRlbnQoZXhwYW5kKCI8c2ZpbGU+IikuIjogIi4iY2xpbmU9PCIuY2xpbmUuIj4sIHBsaW5lPTwiLnBsaW5lLiI+LCBsbnVtPSIubG51bS4iLCB2OmxudW09Ii52OmxudW0uIiwgbmRudD0iLm5kbnQpDQotCWlmIGxudW09PXY6bG51bQ0KLQkJIiBjdXJyZW50IGxpbmUsIG9ubHkgY2hlY2sgZGVkZW50DQotCQkiDQotCQkiIGp1c3QgZGVkZW50ZWQgdGhpcyBsaW5lLCBkb24ndCBuZWVkIHRvIGRvIGl0IGFnYWluLg0KLQkJIiBhbm90aGVyIGRlZGVudFN0bXRzIHdhcyBhZGRlZCBvciBhbiBlbmQlW18qXSB3YXMgY29tcGxldGVkLg0KLQkJaWYgczpsYXN0VmxudW09PXY6bG51bQ0KLSAJCQlpZiBJZ25vcmVDYXNlIHwgc2V0IGlnbm9yZWNhc2UgfCBlbmRpZg0KLQkJCXJldHVybiBuZG50DQotCQllbmRpZg0KLQkJbGV0IHM6bGFzdFZsbnVtPXY6bG51bQ0KLQkJY2FsbCBEZWJ1Z0dlbmVyaWNJbmRlbnQoZXhwYW5kKCI8c2ZpbGU+IikuIjogIi4iQ2hlY2tpbmcgZGVkZW50IikNCi0JCWxldCBzcmNTdHI9Y2xpbmUNCi0JCWxldCBkZWRlbnRLZXlCZWdpbj1tYXRjaChzcmNTdHIsYjpkZWRlbnRTdG10cykNCi0JCWlmIGRlZGVudEtleUJlZ2luICE9IC0xDQotCQkJbGV0IGRlZGVudEtleUVuZD1tYXRjaGVuZChzcmNTdHIsYjpkZWRlbnRTdG10cykNCi0JCQlsZXQgZGVkZW50S2V5U3RyPXN0cnBhcnQoc3JjU3RyLGRlZGVudEtleUJlZ2luLGRlZGVudEtleUVuZC1kZWRlbnRLZXlCZWdpbikNCi0JCQkib25seSBkZWRlbnQgaWYgaXQncyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lDQotCQkJaWYgbWF0Y2goc3JjU3RyLCdeXHMqXDwnLmRlZGVudEtleVN0ci4nXD4nKSAhPSAtMQ0KLQkJCQljYWxsIERlYnVnR2VuZXJpY0luZGVudChleHBhbmQoIjxzZmlsZT4iKS4iOiAiLiJJdCdzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUsIGRlZGVudCIpDQotCQkJCWxldCBuZG50PW5kbnQtJnNoaWZ0d2lkdGgNCi0JCQllbmRpZg0KLQkJZW5kaWYNCi0JCWNhbGwgRGVidWdHZW5lcmljSW5kZW50KGV4cGFuZCgiPHNmaWxlPiIpLiI6ICIuImRlZGVudCAtIHJldHVybmluZyBuZG50PSIubmRudCkNCi0JZWxzZQ0KLQkJIiBwcmV2aW91cyBsaW5lLCBvbmx5IGNoZWNrIGluZGVudA0KLQkJY2FsbCBEZWJ1Z0dlbmVyaWNJbmRlbnQoZXhwYW5kKCI8c2ZpbGU+IikuIjogIi4iQ2hlY2tpbmcgaW5kZW50IikNCi0JCWxldCBzcmNTdHI9cGxpbmUNCi0JCWxldCBpbmRlbnRLZXlCZWdpbj1tYXRjaChzcmNTdHIsYjppbmRlbnRTdG10cykNCi0JCWlmIGluZGVudEtleUJlZ2luICE9IC0xDQotCQkJIiBvbmx5IGluZGVudCBpZiBpdCdzIHRoZSBsYXN0IGluZGVudFN0bXRzIGluIHRoZSBsaW5lDQotCQkJbGV0IGFsbEtleUJlZ2luPW1hdGNoKHNyY1N0cixiOmFsbFN0bXRzKQ0KLQkJCWxldCBhbGxLZXlFbmQ9bWF0Y2hlbmQoc3JjU3RyLGI6YWxsU3RtdHMpDQotCQkJbGV0IGFsbEtleVN0cj1zdHJwYXJ0KHNyY1N0cixhbGxLZXlCZWdpbixhbGxLZXlFbmQtYWxsS2V5QmVnaW4pDQotCQkJbGV0IHNyY1N0cj1zdHJwYXJ0KHNyY1N0cixhbGxLZXlFbmQpDQotCQkJbGV0IGFsbEtleUJlZ2luPW1hdGNoKHNyY1N0cixiOmFsbFN0bXRzKQ0KLQkJCWlmIGFsbEtleUJlZ2luICE9IC0xDQotCQkJCSIgbm90IHRoZSBlbmQgb2YgdGhlIGxpbmUsIGNoZWNrIHdoYXQgaXMgYW5kIG9ubHkgaW5kZW50IGlmDQotCQkJCSIgaXQncyBhbiBpbmRlbnRTdG10cw0KLQkJCQljYWxsIERlYnVnR2VuZXJpY0luZGVudChleHBhbmQoIjxzZmlsZT4iKS4iOiAiLiJNdWx0aXBsZSB3b3JkcyBpbiBsaW5lLCBjaGVja2luZyBpZiBsYXN0IGlzIGluZGVudCIpDQotCQkJCXdoaWxlIGFsbEtleUJlZ2luICE9IC0xDQotCQkJCQlsZXQgYWxsS2V5RW5kPW1hdGNoZW5kKHNyY1N0cixiOmFsbFN0bXRzKQ0KLQkJCQkJbGV0IGFsbEtleVN0cj1zdHJwYXJ0KHNyY1N0cixhbGxLZXlCZWdpbixhbGxLZXlFbmQtYWxsS2V5QmVnaW4pDQotCQkJCQlsZXQgc3JjU3RyPXN0cnBhcnQoc3JjU3RyLGFsbEtleUVuZCkNCi0JCQkJCWxldCBhbGxLZXlCZWdpbj1tYXRjaChzcmNTdHIsYjphbGxTdG10cykNCi0JCQkJZW5kd2hpbGUNCi0JCQkJaWYgbWF0Y2goYjppbmRlbnRTdG10cyxhbGxLZXlTdHIpICE9IC0xDQotCQkJCQljYWxsIERlYnVnR2VuZXJpY0luZGVudChleHBhbmQoIjxzZmlsZT4iKS4iOiAiLiJMYXN0IHdvcmQgaW4gbGluZSBpcyBpbmRlbnQiKQ0KLQkJCQkJbGV0IG5kbnQ9bmRudCsmc2hpZnR3aWR0aA0KLQkJCQllbmRpZg0KLQkJCWVsc2UNCi0JCQkJIiBpdCdzIHRoZSBsYXN0IGluZGVudFN0bXRzIGluIHRoZSBsaW5lLCBnbyBhaGVhZCBhbmQgaW5kZW50DQotCQkJCWxldCBuZG50PW5kbnQrJnNoaWZ0d2lkdGgNCi0JCQllbmRpZg0KLQkJZW5kaWYNCi0JCWNhbGwgRGVidWdHZW5lcmljSW5kZW50KGV4cGFuZCgiPHNmaWxlPiIpLiI6ICIuImluZGVudCAtIHJldHVybmluZyBuZG50PSIubmRudCkNCi0JZW5kaWYNCi0JaWYgSWdub3JlQ2FzZSB8IHNldCBpZ25vcmVjYXNlIHwgZW5kaWYNCi0JcmV0dXJuIG5kbnQNCi1lbmRmdW5jdGlvbg0KLQ0KLQ0KLSIgVE9ETzogIEknbSBvcGVuIQ0KLSINCi0iIEJVR1M6ICBZb3UgdGVsbCBtZSEgIFByb2JhYmx5LiAgSSBqdXN0IGhhdmVuJ3QgZm91bmQgb25lIHlldCBvciBoYXZlbid0IGJlZW4NCi0iICAgICAgICB0b2xkIGFib3V0IG9uZS4NCi0iICAgICAgICANCisiIFZpbSBpbmRlbnQgZmlsZSBnZW5lcmljIHV0aWxpdHkgZnVuY3Rpb25zCisiIExhbmd1YWdlOiAgICAqICh2YXJpb3VzKQorIiBNYWludGFpbmVyOiAgRGF2ZSBTaWx2aWEgPGRzaWx2aWFAbWNoc2kuY29tPgorIiBEYXRlOiAgICAgICAgNi8zMC8yMDA0CisKKyIgU1VNTUFSWTogIFRvIHVzZSBHZW5lcmljSW5kZW50LCBpbmRlbnQvPHlvdXJfZmlsZW5hbWU+LnZpbSB3b3VsZCBoYXZlIHRoZQorIiAgICAgICAgICAgZm9sbG93aW5nIGdlbmVyYWwgZm9ybWF0OgorIgorIiAgICAgIGlmIGV4aXN0cygiYjpkaWRfaW5kZW50IikgfCBmaW5pc2ggfCBlbmRpZgorIiAgICAgIGxldCBiOmRpZF9pbmRlbnQgPSAxCisiICAgICAgcnVudGltZSBpbmRlbnQvR2VuZXJpY0luZGVudC52aW0KKyIgICAgICBsZXQgYjppbmRlbnRTdG10cz0nJworIiAgICAgIGxldCBiOmRlZGVudFN0bXRzPScnCisiICAgICAgbGV0IGI6YWxsU3RtdHM9JycKKyIgICAgICBzZXRsb2NhbCBpbmRlbnRleHByPUdlbmVyaWNJbmRlbnQoKQorIiAgICAgIHNldGxvY2FsIGluZGVudGtleXM9PHlvdXJfa2V5cz4KKyIgICAgICBjYWxsIEdlbmVyaWNJbmRlbnRTdG10cyg8eW91cl9zdG10cz4pCisiICAgICAgY2FsbCBHZW5lcmljRGVkZW50U3RtdHMoPHlvdXJfc3RtdHM+KQorIiAgICAgIGNhbGwgR2VuZXJpY0FsbFN0bXRzKCkKKyIKKyIgRU5EIFNVTU1BUlk6CisKKyIgTk9URTogIGI6aW5kZW50U3RtdHMsIGI6ZGVkZW50U3RtdHMsIGFuZCBiOmFsbFN0bXRzIG5lZWQgdG8gYmUgaW5pdGlhbGl6ZWQKKyIgICAgICAgIHRvICcnIGJlZm9yZSBjYWxsaW4gdGhlIGZ1bmN0aW9ucyBiZWNhdXNlICdpbmRlbnQudmltJyBleHBsaWNpdGx5CisiICAgICAgICAndW5sZXQncyBiOmRpZF9pbmRlbnQuICBUaGlzIG1lYW5zIHRoYXQgdGhlIGxpc3RzIHdpbGwgY29tcG91bmQgaWYKKyIgICAgICAgIHlvdSBjaGFuZ2UgYmFjayBhbmQgZm9ydGggYmV0d2VlbiBidWZmZXJzLiAgVGhpcyBpcyB0cnVlIGFzIG9mCisiICAgICAgICB2ZXJzaW9uIDYuMywgNi8yMy8yMDA0LgorIgorIiBOT1RFOiAgQnkgZGVmYXVsdCwgR2VuZXJpY0luZGVudCBpcyBjYXNlIHNlbnNpdGl2ZS4KKyIgICAgICAgIGxldCBiOmNhc2VfaW5zZW5zaXRpdmU9MSBpZiB5b3Ugd2FudCB0byBpZ25vcmUgY2FzZSwgZS5nLiBET1MgYmF0Y2ggZmlsZXMKKworIiBUaGUgZnVuY3Rpb24gJ0dlbmVyaWNJbmRlbnQnIGlzIGRhdGEgZHJpdmVuIGFuZCBoYW5kbGVzIG1vc3QgYWxsIGNhc2VzIG9mCisiIGluZGVudCBjaGVja2luZyBpZiB5b3UgZmlyc3Qgc2V0IHVwIHRoZSBkYXRhLiAgVG8gdXNlIHRoaXMgZnVuY3Rpb24gZm9sbG93CisiIHRoZSBleGFtcGxlIGJlbG93ICh0YWtlbiBmcm9tIHRoZSBmaWxlIGluZGVudC9NdVBBRF9zb3VyY2UudmltKQorIgorIiBCZWZvcmUgeW91IHN0YXJ0LCBzb3VyY2UgdGhpcyBmaWxlIGluIGluZGVudC88eW91cl9zY3JpcHQ+LnZpbSB0byBoYXZlIGl0CisiIGRlZmluZSBmdW5jdGlvbnMgZm9yIHlvdXIgdXNlLgorIgorInJ1bnRpbWUgaW5kZW50L0dlbmVyaWNJbmRlbnQudmltCisiCisiIFRoZSBkYXRhIGlzIGluIDUgc2V0czoKKyIKKyIgRmlyc3QsIHNldCB0aGUgZGF0YSBzZXQgJ2luZGVudGV4cHInIHRvIEdlbmVyaWNJbmRlbnQoKS4KKyIKKyJzZXRsb2NhbCBpbmRlbnRleHByPUdlbmVyaWNJbmRlbnQoKQorIgorIiBTZWNvbmQsIHNldCB0aGUgZGF0YSBzZXQgJ2luZGVudGtleXMnIHRvIHRoZSBrZXl3b3Jkcy9leHByZXNzaW9ucyB0aGF0IG5lZWQKKyIgdG8gYmUgY2hlY2tlZCBmb3IgJ2luZGVudGluZycgX2FzXyB0aGV5IHR5cGVkLgorIgorInNldGxvY2FsIGluZGVudGtleXM9PWVuZF9wcm9jLD1lbHNlLD10aGVuLD1lbGlmLD1lbmRfaWYsPWVuZF9jYXNlLD11bnRpbCw9ZW5kX3JlcGVhdCw9ZW5kX2RvbWFpbiw9ZW5kX2Zvciw9ZW5kX3doaWxlLD1lbmQsbyxPCisiCisiIE5PVEU6ICdvLE8nIGF0IHRoZSBlbmQgb2YgdGhlIHByZXZpb3VzIGxpbmUgc2F5cyB5b3Ugd2lzaCB0byBiZSBjYWxsZWQKKyIgd2hlbmV2ZXIgYSBuZXdsaW5lIGlzIHBsYWNlZCBpbiB0aGUgYnVmZmVyLiAgVGhpcyBhbGxvd3MgdGhlIHByZXZpb3VzIGxpbmUKKyIgdG8gYmUgY2hlY2tlZCBmb3IgaW5kZW50YXRpb24gcGFyYW1ldGVycy4KKyIKKyIgVGhpcmQsIHNldCB0aGUgZGF0YSBzZXQgJ2I6aW5kZW50U3RtdHMnIHRvIHRoZSBrZXl3b3Jkcy9leHByZXNzaW9ucyB0aGF0LCB3aGVuCisiIHRoZXkgYXJlIG9uIGEgbGluZSAgX3doZW5fICB5b3UgIF9wcmVzc18gIHRoZSAgXzxFbnRlcj5fICBrZXksCisiIHlvdSB3aXNoIHRvIGhhdmUgdGhlIG5leHQgbGluZSBpbmRlbnRlZC4KKyIKKyJjYWxsIEdlbmVyaWNJbmRlbnRTdG10cygnYmVnaW4saWYsdGhlbixlbHNlLGVsaWYsY2FzZSxyZXBlYXQsdW50aWwsZG9tYWluLGRvJykKKyIKKyIgRm91cnRoLCBzZXQgdGhlIGRhdGEgc2V0ICdiOmRlZGVudFN0bXRzJyB0byB0aGUga2V5d29yZHMvZXhwcmVzc2lvbnMgdGhhdCwgd2hlbgorIiB0aGV5IGFyZSBvbiBhIGxpbmUgeW91IGFyZSBjdXJyZW50bHkgdHlwaW5nLCB5b3Ugd2lzaCB0byBoYXZlIHRoYXQgbGluZQorIiAnZGVkZW50ZWQnIChoYXZpbmcgYWxyZWFkeSBiZWVuIGluZGVudGVkIGJlY2F1c2Ugb2YgdGhlIHByZXZpb3VzIGxpbmUncworIiBpbmRlbnRhdGlvbikuCisiCisiY2FsbCBHZW5lcmljRGVkZW50U3RtdHMoJ2VuZF9wcm9jLHRoZW4sZWxzZSxlbGlmLGVuZF9pZixlbmRfY2FzZSx1bnRpbCxlbmRfcmVwZWF0LGVuZF9kb21haW4sZW5kX2ZvcixlbmRfd2hpbGUsZW5kJykKKyIKKyIgRmlmdGgsIHNldCB0aGUgZGF0YSBzZXQgJ2I6YWxsU3RtdHMnIHRvIHRoZSBjb25jYXRlbmF0aW9uIG9mIHRoZSB0aGlyZCBhbmQKKyIgZm91cnRoIGRhdGEgc2V0cywgdXNlZCBmb3IgY2hlY2tpbmcgd2hlbiBtb3JlIHRoYW4gb25lIGtleXdvcmQvZXhwcmVzc2lvbgorIiBpcyBvbiBhIGxpbmUuCisiCisiY2FsbCBHZW5lcmljQWxsU3RtdHMoKQorIgorIiBOT1RFOiAgR2VuZXJpY0luZGVudFN0bXRzIHVzZXMgdHdvIHZhcmlhYmxlczogJ2I6aW5kZW50U3RtdE9wZW4nIGFuZAorIiAnYjppbmRlbnRTdG10Q2xvc2UnIHdoaWNoIGRlZmF1bHQgdG8gJ1w8JyBhbmQgJ1w+JyByZXNwZWN0aXZlbHkuICBZb3UgY2FuCisiIHNldCAobGV0KSB0aGVzZSB0byBhbnkgdmFsdWUgeW91IHdpc2ggYmVmb3JlIGNhbGxpbmcgR2VuZXJpY0luZGVudFN0bXRzIHdpdGgKKyIgeW91ciBsaXN0LiAgU2ltaWxhcmx5LCBHZW5lcmljRGVkZW50U3RtdHMgdXNlcyAnYjpkZWRlbnRTdG10T3BlbicgYW5kCisiICdiOmRlZGVudFN0bXRDbG9zZScuCisiCisiIE5PVEU6ICBQYXR0ZXJucyBtYXkgYmUgdXNlZCBpbiB0aGUgbGlzdHMgcGFzc2VkIHRvIEdlbmVyaWNbSW58RGVdZGVudFN0bXRzCisiIHNpbmNlIGVhY2ggZWxlbWVudCBpbiB0aGUgbGlzdCBpcyBjb3BpZWQgdmVyYmF0aW0uCisiCisiIE9wdGlvbmFsbHksIHlvdSBjYW4gc2V0IHRoZSBERUJVR0dJTkcgZmxhZyB3aXRoaW4geW91ciBzY3JpcHQgdG8gaGF2ZSB0aGUKKyIgZGVidWdnaW5nIG1lc3NhZ2VzIG91dHB1dC4gIFNlZSBiZWxvdyBmb3IgZGVzY3JpcHRpb24uICBUaGlzIGNhbiBhbHNvIGJlIHNldAorIiAobGV0KSBmcm9tIHRoZSBjb21tYW5kIGxpbmUgd2l0aGluIHlvdXIgZWRpdGluZyBidWZmZXIuCisiCisibGV0IGI6REVCVUdHSU5HPTEKKyIKKyIgU2VlOgorIiAgICAgIDpoIHJ1bnRpbWUKKyIgICAgICA6c2V0IHJ1bnRpbWVwYXRoID8KKyIgdG8gZmFtaWxpYXJpemUgeW91cnNlbGYgd2l0aCBob3cgdGhpcyB3b3JrcyBhbmQgd2hlcmUgeW91IHNob3VsZCBoYXZlIHRoaXMKKyIgZmlsZSBhbmQgeW91ciBmaWxlKHMpIGluc3RhbGxlZC4KKyIKKyIgRm9yIGhlbHAgd2l0aCBzZXR0aW5nICdpbmRlbnRrZXlzJyBzZWU6CisiICAgICAgOmggaW5kZW50a2V5cworIiBBbHNvLCBmb3Igc29tZSBnb29kIGV4YW1wbGVzIHNlZSAnaW5kZW50L3NoLnZpbScgYW5kICdpbmRlbnQvdmltLnZpbScgYXMKKyIgd2VsbCBhcyBmaWxlcyBmb3Igb3RoZXIgbGFuZ3VhZ2VzIHlvdSBtYXkgYmUgZmFtaWxpYXIgd2l0aC4KKyIKKyIKKyIgQWx0ZXJuYXRpdmVseSwgaWYgeW91J2QgcmF0aGVyIHNwZWNpZnkgeW91cnNlbGYsIHlvdSBjYW4gZW50ZXIKKyIgJ2I6aW5kZW50U3RtdHMnLCAnYjpkZWRlbnRTdG10cycsIGFuZCAnYjphbGxTdG10cycgJ2xpdGVyYWxseSc6CisiCisibGV0IGI6aW5kZW50U3RtdHM9J1w8YmVnaW5cPlx8XDxpZlw+XHxcPHRoZW5cPlx8XDxlbHNlXD5cfFw8ZWxpZlw+XHxcPGNhc2VcPlx8XDxyZXBlYXRcPlx8XDx1bnRpbFw+XHxcPGRvbWFpblw+XHxcPGRvXD4nCisibGV0IGI6ZGVkZW50U3RtdHM9J1w8ZW5kX3Byb2NcPlx8XDxlbHNlXD5cfFw8ZWxpZlw+XHxcPGVuZF9pZlw+XHxcPGVuZF9jYXNlXD5cfFw8dW50aWxcPlx8XDxlbmRfcmVwZWF0XD5cfFw8ZW5kX2RvbWFpblw+XHxcPGVuZF9mb3JcPlx8XDxlbmRfd2hpbGVcPlx8XDxlbmRcPicKKyJsZXQgYjphbGxTdG10cz1iOmluZGVudFN0bXRzLidcfCcuYjpkZWRlbnRTdG10cworIgorIiBUaGlzIGlzIG9ubHkgdXNlZnVsIGlmIHlvdSBoYXZlIHBhcnRpY3VsYXJseSBkaWZmZXJlbnQgcGFyYW1ldGVycyBmb3IKKyIgbWF0Y2hpbmcgZWFjaCBzdGF0ZW1lbnQuCisKKyIgUkVDQVA6ICBGcm9tIGluZGVudC9NdVBBRF9zb3VyY2UudmltCisiCisiaWYgZXhpc3RzKCJiOmRpZF9pbmRlbnQiKSB8IGZpbmlzaCB8IGVuZGlmCisiCisibGV0IGI6ZGlkX2luZGVudCA9IDEKKyIKKyJydW50aW1lIGluZGVudC9HZW5lcmljSW5kZW50LnZpbQorIgorInNldGxvY2FsIGluZGVudGV4cHI9R2VuZXJpY0luZGVudCgpCisic2V0bG9jYWwgaW5kZW50a2V5cz09ZW5kX3Byb2MsPXRoZW4sPWVsc2UsPWVsaWYsPWVuZF9pZiw9ZW5kX2Nhc2UsPXVudGlsLD1lbmRfcmVwZWF0LD1lbmRfZG9tYWluLD1lbmRfZm9yLD1lbmRfd2hpbGUsPWVuZCxvLE8KKyJjYWxsIEdlbmVyaWNJbmRlbnRTdG10cygnYmVnaW4saWYsdGhlbixlbHNlLGVsaWYsY2FzZSxyZXBlYXQsdW50aWwsZG9tYWluLGRvJykKKyJjYWxsIEdlbmVyaWNEZWRlbnRTdG10cygnZW5kX3Byb2MsdGhlbixlbHNlLGVsaWYsZW5kX2lmLGVuZF9jYXNlLHVudGlsLGVuZF9yZXBlYXQsZW5kX2RvbWFpbixlbmRfZm9yLGVuZF93aGlsZSxlbmQnKQorImNhbGwgR2VuZXJpY0FsbFN0bXRzKCkKKyIKKyIgRU5EIFJFQ0FQOgorCitsZXQgczpoaXQ9MAorbGV0IHM6bGFzdFZsbnVtPTAKK2xldCBzOm15U2NyaXB0TmFtZT1leHBhbmQoIjxzZmlsZT46dCIpCisKK2lmIGV4aXN0cygiKkdlbmVyaWNJbmRlbnQiKQorCWZpbmlzaAorZW5kaWYKKworZnVuY3Rpb24gR2VuZXJpY0FsbFN0bXRzKCkKKwlsZXQgYjphbGxTdG10cz1iOmluZGVudFN0bXRzLidcfCcuYjpkZWRlbnRTdG10cworCWNhbGwgRGVidWdHZW5lcmljSW5kZW50KGV4cGFuZCgiPHNmaWxlPiIpLiI6ICIuImI6aW5kZW50U3RtdHM6ICIuYjppbmRlbnRTdG10cy4iLCBiOmRlZGVudFN0bXRzOiAiLmI6ZGVkZW50U3RtdHMuIiwgYjphbGxTdG10czogIi5iOmFsbFN0bXRzKQorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24gR2VuZXJpY0luZGVudFN0bXRzKHN0bXRzKQorCWxldCBTdG10cz1hOnN0bXRzCisJbGV0IENvbW1hPW1hdGNoKFN0bXRzLCcsJykKKwlpZiBDb21tYSA9PSAtMSB8fCBDb21tYSA9PSBzdHJsZW4oU3RtdHMpLTEKKwkJZWNob2VyciAiTXVzdCBzdXBwbHkgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhdCBsZWFzdCAyIGVudHJpZXMuIgorCQllY2hvZXJyICJTdXBwbGllZCBsaXN0OiA8Ii5TdG10cy4iPiIKKwkJcmV0dXJuCisJZW5kaWYKKworCWlmICFleGlzdHMoImI6aW5kZW50U3RtdE9wZW4iKQorCQlsZXQgYjppbmRlbnRTdG10T3Blbj0nXDwnCisJZW5kaWYKKwlpZiAhZXhpc3RzKCJiOmluZGVudFN0bXRDbG9zZSIpCisJCWxldCBiOmluZGVudFN0bXRDbG9zZT0nXD4nCisJZW5kaWYKKwlpZiAhZXhpc3RzKCJiOmluZGVudFN0bXRzIikKKwkJbGV0IGI6aW5kZW50U3RtdHM9JycKKwllbmRpZgorCWlmIGI6aW5kZW50U3RtdHMgIT0gJycKKwkJbGV0IGI6aW5kZW50U3RtdHM9YjppbmRlbnRTdG10cy4nXHwnCisJZW5kaWYKKwljYWxsIERlYnVnR2VuZXJpY0luZGVudChleHBhbmQoIjxzZmlsZT4iKS4iOiAiLiJiOmluZGVudFN0bXRPcGVuOiAiLmI6aW5kZW50U3RtdE9wZW4uIiwgYjppbmRlbnRTdG10Q2xvc2U6ICIuYjppbmRlbnRTdG10Q2xvc2UuIiwgYjppbmRlbnRTdG10czogIi5iOmluZGVudFN0bXRzLiIsIFN0bXRzOiAiLlN0bXRzKQorCWxldCBzdG10RW50cnlCZWdpbj0wCisJbGV0IHN0bXRFbnRyeUVuZD1Db21tYQorCWxldCBzdG10RW50cnk9c3RycGFydChTdG10cyxzdG10RW50cnlCZWdpbixzdG10RW50cnlFbmQtc3RtdEVudHJ5QmVnaW4pCisJbGV0IFN0bXRzPXN0cnBhcnQoU3RtdHMsQ29tbWErMSkKKwlsZXQgQ29tbWE9bWF0Y2goU3RtdHMsJywnKQorCWxldCBiOmluZGVudFN0bXRzPWI6aW5kZW50U3RtdHMuYjppbmRlbnRTdG10T3Blbi5zdG10RW50cnkuYjppbmRlbnRTdG10Q2xvc2UKKwl3aGlsZSBDb21tYSAhPSAtMQorCQlsZXQgc3RtdEVudHJ5RW5kPUNvbW1hCisJCWxldCBzdG10RW50cnk9c3RycGFydChTdG10cyxzdG10RW50cnlCZWdpbixzdG10RW50cnlFbmQtc3RtdEVudHJ5QmVnaW4pCisJCWxldCBTdG10cz1zdHJwYXJ0KFN0bXRzLENvbW1hKzEpCisJCWxldCBDb21tYT1tYXRjaChTdG10cywnLCcpCisJCWxldCBiOmluZGVudFN0bXRzPWI6aW5kZW50U3RtdHMuJ1x8Jy5iOmluZGVudFN0bXRPcGVuLnN0bXRFbnRyeS5iOmluZGVudFN0bXRDbG9zZQorCWVuZHdoaWxlCisJbGV0IHN0bXRFbnRyeT1TdG10cworCWxldCBiOmluZGVudFN0bXRzPWI6aW5kZW50U3RtdHMuJ1x8Jy5iOmluZGVudFN0bXRPcGVuLnN0bXRFbnRyeS5iOmluZGVudFN0bXRDbG9zZQorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24gR2VuZXJpY0RlZGVudFN0bXRzKHN0bXRzKQorCWxldCBTdG10cz1hOnN0bXRzCisJbGV0IENvbW1hPW1hdGNoKFN0bXRzLCcsJykKKwlpZiBDb21tYSA9PSAtMSB8fCBDb21tYSA9PSBzdHJsZW4oU3RtdHMpLTEKKwkJZWNob2VyciAiTXVzdCBzdXBwbHkgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhdCBsZWFzdCAyIGVudHJpZXMuIgorCQllY2hvZXJyICJTdXBwbGllZCBsaXN0OiA8Ii5TdG10cy4iPiIKKwkJcmV0dXJuCisJZW5kaWYKKworCWlmICFleGlzdHMoImI6ZGVkZW50U3RtdE9wZW4iKQorCQlsZXQgYjpkZWRlbnRTdG10T3Blbj0nXDwnCisJZW5kaWYKKwlpZiAhZXhpc3RzKCJiOmRlZGVudFN0bXRDbG9zZSIpCisJCWxldCBiOmRlZGVudFN0bXRDbG9zZT0nXD4nCisJZW5kaWYKKwlpZiAhZXhpc3RzKCJiOmRlZGVudFN0bXRzIikKKwkJbGV0IGI6ZGVkZW50U3RtdHM9JycKKwllbmRpZgorCWlmIGI6ZGVkZW50U3RtdHMgIT0gJycKKwkJbGV0IGI6ZGVkZW50U3RtdHM9YjpkZWRlbnRTdG10cy4nXHwnCisJZW5kaWYKKwljYWxsIERlYnVnR2VuZXJpY0luZGVudChleHBhbmQoIjxzZmlsZT4iKS4iOiAiLiJiOmRlZGVudFN0bXRPcGVuOiAiLmI6ZGVkZW50U3RtdE9wZW4uIiwgYjpkZWRlbnRTdG10Q2xvc2U6ICIuYjpkZWRlbnRTdG10Q2xvc2UuIiwgYjpkZWRlbnRTdG10czogIi5iOmRlZGVudFN0bXRzLiIsIFN0bXRzOiAiLlN0bXRzKQorCWxldCBzdG10RW50cnlCZWdpbj0wCisJbGV0IHN0bXRFbnRyeUVuZD1Db21tYQorCWxldCBzdG10RW50cnk9c3RycGFydChTdG10cyxzdG10RW50cnlCZWdpbixzdG10RW50cnlFbmQtc3RtdEVudHJ5QmVnaW4pCisJbGV0IFN0bXRzPXN0cnBhcnQoU3RtdHMsQ29tbWErMSkKKwlsZXQgQ29tbWE9bWF0Y2goU3RtdHMsJywnKQorCWxldCBiOmRlZGVudFN0bXRzPWI6ZGVkZW50U3RtdHMuYjpkZWRlbnRTdG10T3Blbi5zdG10RW50cnkuYjpkZWRlbnRTdG10Q2xvc2UKKwl3aGlsZSBDb21tYSAhPSAtMQorCQlsZXQgc3RtdEVudHJ5RW5kPUNvbW1hCisJCWxldCBzdG10RW50cnk9c3RycGFydChTdG10cyxzdG10RW50cnlCZWdpbixzdG10RW50cnlFbmQtc3RtdEVudHJ5QmVnaW4pCisJCWxldCBTdG10cz1zdHJwYXJ0KFN0bXRzLENvbW1hKzEpCisJCWxldCBDb21tYT1tYXRjaChTdG10cywnLCcpCisJCWxldCBiOmRlZGVudFN0bXRzPWI6ZGVkZW50U3RtdHMuJ1x8Jy5iOmRlZGVudFN0bXRPcGVuLnN0bXRFbnRyeS5iOmRlZGVudFN0bXRDbG9zZQorCWVuZHdoaWxlCisJbGV0IHN0bXRFbnRyeT1TdG10cworCWxldCBiOmRlZGVudFN0bXRzPWI6ZGVkZW50U3RtdHMuJ1x8Jy5iOmRlZGVudFN0bXRPcGVuLnN0bXRFbnRyeS5iOmRlZGVudFN0bXRDbG9zZQorZW5kZnVuY3Rpb24KKworIiBEZWJ1Z2dpbmcgZnVuY3Rpb24uICBEaXNwbGF5cyBtZXNzYWdlcyBpbiB0aGUgY29tbWFuZCBhcmVhIHdoaWNoIGNhbiBiZQorIiByZXZpZXdlZCB1c2luZyAnOm1lc3NhZ2VzJy4gIFRvIHR1cm4gaXQgb24gdXNlICc6bGV0IGI6REVCVUdHSU5HPTEnLiAgT25jZQorIiBvbiwgdHVybiBvZmYgYnkgdXNpbmcgJzpsZXQgYjpERUJVR0dJTkc9MC4gIElmIHlvdSBkb24ndCB3YW50IGl0IGF0IGFsbCBhbmQKKyIgZmVlbCBpdCdzIHNsb3dpbmcgZG93biB5b3VyIGVkaXRpbmcgKHlvdSBtdXN0IGhhdmUgYW4gX2F3ZnVsbHlfIHNsb3cKKyIgbWFjaGluZSE7LT4gKSwgeW91IGNhbiBqdXN0IGNvbW1lbnQgb3V0IHRoZSBjYWxscyB0byBpdCBmcm9tICdHZW5lcmljSW5kZW50JworIiBiZWxvdy4gIE5vIG5lZWQgdG8gcmVtb3ZlIHRoZSBmdW5jdGlvbiBvciB0aGUgY2FsbHMsIHRobycsIGFzIHlvdSBuZXZlciBjYW4KKyIgdGVsbCB3aGVuIHRoZXkgbWlnaHQgY29tZSBpbiBoYW5keSE7LSkKK2Z1bmN0aW9uIERlYnVnR2VuZXJpY0luZGVudChtc2cpCisgIGlmIGV4aXN0cygiYjpERUJVR0dJTkciKSAmJiBiOkRFQlVHR0lORworCQllY2hvbXNnICdbJy5zOmhpdC4nXScuczpteVNjcmlwdE5hbWUuIjo6Ii5hOm1zZworCWVuZGlmCitlbmRmdW5jdGlvbgorCitmdW5jdGlvbiBHZW5lcmljSW5kZW50KCkKKwkiIHNhdmUgaWdub3JlIGNhc2Ugb3B0aW9uLiAgSGF2ZSB0byBzZXQgbm9pZ25vcmVjYXNlIGZvciB0aGUgbWF0Y2gKKwkiIGZ1bmN0aW9ucyB0byBkbyB0aGVpciBqb2IgdGhlIHdheSB3ZSB3YW50IHRoZW0gdG8hCisJIiBOT1RFOiBpZiB5b3UgYWRkIGEgcmV0dXJuIHRvIHRoaXMgZnVuY3Rpb24gYmUgc3VyZSB5b3UgZG8KKwkiICAgICAgICAgICBpZiBJZ25vcmVDYXNlIHwgc2V0IGlnbm9yZWNhc2UgfCBlbmRpZgorCSIgICAgICAgYmVmb3JlIHJldHVybmluZy4gIFlvdSBjYW4ganVzdCBjdXQgYW5kIHBhc3RlIGZyb20gaGVyZS4KKwlsZXQgSWdub3JlQ2FzZT0maWdub3JlY2FzZQorCSIgbGV0IGI6Y2FzZV9pbnNlbnNpdGl2ZT0xIGlmIHlvdSB3YW50IHRvIGlnbm9yZSBjYXNlLCBlLmcuIERPUyBiYXRjaCBmaWxlcworCWlmICFleGlzdHMoImI6Y2FzZV9pbnNlbnNpdGl2ZSIpCisJCXNldCBub2lnbm9yZWNhc2UKKwllbmRpZgorCSIgdGhpcyBpcyB1c2VkIHRvIGxldCBEZWJ1Z0dlbmVyaWNJbmRlbnQgZGlzcGxheSB3aGljaCBpbnZvY2F0aW9uIG9mIHRoZQorCSIgZnVuY3Rpb24gZ29lcyB3aXRoIHdoaWNoIG1lc3NhZ2VzLgorCWxldCBzOmhpdD1zOmhpdCsxCisgIGxldCBsbnVtPXY6bG51bQorCWxldCBjbGluZT1nZXRsaW5lKGxudW0pCisJbGV0IGxudW09cHJldm5vbmJsYW5rKGxudW0pCisJaWYgbG51bT09MCB8IGlmIElnbm9yZUNhc2UgfCBzZXQgaWdub3JlY2FzZSB8IGVuZGlmIHwgcmV0dXJuIDAgfCBlbmRpZgorCWxldCBwbGluZT1nZXRsaW5lKGxudW0pCisgIGxldCBuZG50PWluZGVudChsbnVtKQorCWlmICFleGlzdHMoImI6YWxsU3RtdHMiKQorCQljYWxsIEdlbmVyaWNBbGxTdG10cygpCisJZW5kaWYKKworCWNhbGwgRGVidWdHZW5lcmljSW5kZW50KGV4cGFuZCgiPHNmaWxlPiIpLiI6ICIuImNsaW5lPTwiLmNsaW5lLiI+LCBwbGluZT08Ii5wbGluZS4iPiwgbG51bT0iLmxudW0uIiwgdjpsbnVtPSIudjpsbnVtLiIsIG5kbnQ9Ii5uZG50KQorCWlmIGxudW09PXY6bG51bQorCQkiIGN1cnJlbnQgbGluZSwgb25seSBjaGVjayBkZWRlbnQKKwkJIgorCQkiIGp1c3QgZGVkZW50ZWQgdGhpcyBsaW5lLCBkb24ndCBuZWVkIHRvIGRvIGl0IGFnYWluLgorCQkiIGFub3RoZXIgZGVkZW50U3RtdHMgd2FzIGFkZGVkIG9yIGFuIGVuZCVbXypdIHdhcyBjb21wbGV0ZWQuCisJCWlmIHM6bGFzdFZsbnVtPT12OmxudW0KKyAJCQlpZiBJZ25vcmVDYXNlIHwgc2V0IGlnbm9yZWNhc2UgfCBlbmRpZgorCQkJcmV0dXJuIG5kbnQKKwkJZW5kaWYKKwkJbGV0IHM6bGFzdFZsbnVtPXY6bG51bQorCQljYWxsIERlYnVnR2VuZXJpY0luZGVudChleHBhbmQoIjxzZmlsZT4iKS4iOiAiLiJDaGVja2luZyBkZWRlbnQiKQorCQlsZXQgc3JjU3RyPWNsaW5lCisJCWxldCBkZWRlbnRLZXlCZWdpbj1tYXRjaChzcmNTdHIsYjpkZWRlbnRTdG10cykKKwkJaWYgZGVkZW50S2V5QmVnaW4gIT0gLTEKKwkJCWxldCBkZWRlbnRLZXlFbmQ9bWF0Y2hlbmQoc3JjU3RyLGI6ZGVkZW50U3RtdHMpCisJCQlsZXQgZGVkZW50S2V5U3RyPXN0cnBhcnQoc3JjU3RyLGRlZGVudEtleUJlZ2luLGRlZGVudEtleUVuZC1kZWRlbnRLZXlCZWdpbikKKwkJCSJvbmx5IGRlZGVudCBpZiBpdCdzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUKKwkJCWlmIG1hdGNoKHNyY1N0ciwnXlxzKlw8Jy5kZWRlbnRLZXlTdHIuJ1w+JykgIT0gLTEKKwkJCQljYWxsIERlYnVnR2VuZXJpY0luZGVudChleHBhbmQoIjxzZmlsZT4iKS4iOiAiLiJJdCdzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUsIGRlZGVudCIpCisJCQkJbGV0IG5kbnQ9bmRudC0mc2hpZnR3aWR0aAorCQkJZW5kaWYKKwkJZW5kaWYKKwkJY2FsbCBEZWJ1Z0dlbmVyaWNJbmRlbnQoZXhwYW5kKCI8c2ZpbGU+IikuIjogIi4iZGVkZW50IC0gcmV0dXJuaW5nIG5kbnQ9Ii5uZG50KQorCWVsc2UKKwkJIiBwcmV2aW91cyBsaW5lLCBvbmx5IGNoZWNrIGluZGVudAorCQljYWxsIERlYnVnR2VuZXJpY0luZGVudChleHBhbmQoIjxzZmlsZT4iKS4iOiAiLiJDaGVja2luZyBpbmRlbnQiKQorCQlsZXQgc3JjU3RyPXBsaW5lCisJCWxldCBpbmRlbnRLZXlCZWdpbj1tYXRjaChzcmNTdHIsYjppbmRlbnRTdG10cykKKwkJaWYgaW5kZW50S2V5QmVnaW4gIT0gLTEKKwkJCSIgb25seSBpbmRlbnQgaWYgaXQncyB0aGUgbGFzdCBpbmRlbnRTdG10cyBpbiB0aGUgbGluZQorCQkJbGV0IGFsbEtleUJlZ2luPW1hdGNoKHNyY1N0cixiOmFsbFN0bXRzKQorCQkJbGV0IGFsbEtleUVuZD1tYXRjaGVuZChzcmNTdHIsYjphbGxTdG10cykKKwkJCWxldCBhbGxLZXlTdHI9c3RycGFydChzcmNTdHIsYWxsS2V5QmVnaW4sYWxsS2V5RW5kLWFsbEtleUJlZ2luKQorCQkJbGV0IHNyY1N0cj1zdHJwYXJ0KHNyY1N0cixhbGxLZXlFbmQpCisJCQlsZXQgYWxsS2V5QmVnaW49bWF0Y2goc3JjU3RyLGI6YWxsU3RtdHMpCisJCQlpZiBhbGxLZXlCZWdpbiAhPSAtMQorCQkJCSIgbm90IHRoZSBlbmQgb2YgdGhlIGxpbmUsIGNoZWNrIHdoYXQgaXMgYW5kIG9ubHkgaW5kZW50IGlmCisJCQkJIiBpdCdzIGFuIGluZGVudFN0bXRzCisJCQkJY2FsbCBEZWJ1Z0dlbmVyaWNJbmRlbnQoZXhwYW5kKCI8c2ZpbGU+IikuIjogIi4iTXVsdGlwbGUgd29yZHMgaW4gbGluZSwgY2hlY2tpbmcgaWYgbGFzdCBpcyBpbmRlbnQiKQorCQkJCXdoaWxlIGFsbEtleUJlZ2luICE9IC0xCisJCQkJCWxldCBhbGxLZXlFbmQ9bWF0Y2hlbmQoc3JjU3RyLGI6YWxsU3RtdHMpCisJCQkJCWxldCBhbGxLZXlTdHI9c3RycGFydChzcmNTdHIsYWxsS2V5QmVnaW4sYWxsS2V5RW5kLWFsbEtleUJlZ2luKQorCQkJCQlsZXQgc3JjU3RyPXN0cnBhcnQoc3JjU3RyLGFsbEtleUVuZCkKKwkJCQkJbGV0IGFsbEtleUJlZ2luPW1hdGNoKHNyY1N0cixiOmFsbFN0bXRzKQorCQkJCWVuZHdoaWxlCisJCQkJaWYgbWF0Y2goYjppbmRlbnRTdG10cyxhbGxLZXlTdHIpICE9IC0xCisJCQkJCWNhbGwgRGVidWdHZW5lcmljSW5kZW50KGV4cGFuZCgiPHNmaWxlPiIpLiI6ICIuIkxhc3Qgd29yZCBpbiBsaW5lIGlzIGluZGVudCIpCisJCQkJCWxldCBuZG50PW5kbnQrJnNoaWZ0d2lkdGgKKwkJCQllbmRpZgorCQkJZWxzZQorCQkJCSIgaXQncyB0aGUgbGFzdCBpbmRlbnRTdG10cyBpbiB0aGUgbGluZSwgZ28gYWhlYWQgYW5kIGluZGVudAorCQkJCWxldCBuZG50PW5kbnQrJnNoaWZ0d2lkdGgKKwkJCWVuZGlmCisJCWVuZGlmCisJCWNhbGwgRGVidWdHZW5lcmljSW5kZW50KGV4cGFuZCgiPHNmaWxlPiIpLiI6ICIuImluZGVudCAtIHJldHVybmluZyBuZG50PSIubmRudCkKKwllbmRpZgorCWlmIElnbm9yZUNhc2UgfCBzZXQgaWdub3JlY2FzZSB8IGVuZGlmCisJcmV0dXJuIG5kbnQKK2VuZGZ1bmN0aW9uCisKKworIiBUT0RPOiAgSSdtIG9wZW4hCisiCisiIEJVR1M6ICBZb3UgdGVsbCBtZSEgIFByb2JhYmx5LiAgSSBqdXN0IGhhdmVuJ3QgZm91bmQgb25lIHlldCBvciBoYXZlbid0IGJlZW4KKyIgICAgICAgIHRvbGQgYWJvdXQgb25lLgorIiAgICAgICAgCmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC9hZGEudmltIGIvcnVudGltZS9pbmRlbnQvYWRhLnZpbQppbmRleCA3MmUyZTgwLi45NjAxMTgxIDEwMDY0NAotLS0gYS9ydW50aW1lL2luZGVudC9hZGEudmltCisrKyBiL3J1bnRpbWUvaW5kZW50L2FkYS52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBpbmRlbnQgZmlsZQogIiBMYW5ndWFnZToJQWRhCiAiIE1haW50YWluZXI6CU5laWwgQmlyZCA8bmVpbEBmbnh3ZWIuY29tPgotIiBMYXN0IENoYW5nZToJMjAwMyBNYXkgMjAKKyIgTGFzdCBDaGFuZ2U6CTIwMDQgTm92IDIzCiAiIFZlcnNpb246CSRJZCQKICIgTG9vayBmb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIGF0IGh0dHA6Ly92aW0uc291cmNlZm9yZ2UubmV0LwogIgpAQCAtMjUsMTEgKzI1LDExIEBACiAgICBmaW5pc2gKIGVuZGlmCiAKLWxldCBzOkFkYUJsb2NrU3RhcnQgPSAnXlxzKlwoaWZcPlx8d2hpbGVcPlx8ZWxzZVw+XHxlbHNpZlw+XHxsb29wXD5cfGZvclw+LipcPGxvb3BcPlx8ZGVjbGFyZVw+XHxiZWdpblw+XHx0eXBlXD4uKlw8aXNccyokXHxcKHR5cGVcPi4qXClcPVw8cmVjb3JkXD5cfHByb2NlZHVyZVw+XHxmdW5jdGlvblw+XHxhY2NlcHRcPlx8ZG9cPlx8dGFza1w+XHxwYWNrYWdlXD5cfHRoZW5cPlx8d2hlblw+XHxpc1w+XCknCitsZXQgczpBZGFCbG9ja1N0YXJ0ID0gJ15ccypcKGlmXD5cfHdoaWxlXD5cfGVsc2VcPlx8ZWxzaWZcPlx8bG9vcFw+XHxmb3JcPi4qXDxcKGxvb3BcfHVzZVwpXD5cfGRlY2xhcmVcPlx8YmVnaW5cPlx8dHlwZVw+LipcPGlzXD5bXjtdKiRcfFwodHlwZVw+LipcKVw9XDxyZWNvcmRcPlx8cHJvY2VkdXJlXD5cfGZ1bmN0aW9uXD5cfGFjY2VwdFw+XHxkb1w+XHx0YXNrXD5cfHBhY2thZ2VcPlx8dGhlblw+XHx3aGVuXD5cfGlzXD5cKScKIGxldCBzOkFkYUNvbW1lbnQgPSAiXFx2XihcIlteXCJdKlwifCcuJ3xbXlwiJ10pey19XFx6c1xccyotLS4qIgogCiAKLSIgVHJ5IHRvIGZpbmQgaW5kZW50IG9mIHRoZSBibG9jayB3ZSdyZSBpbiAoYW5kIGFib3V0IHRvIGNvbXBsZXRlKQorIiBUcnkgdG8gZmluZCBpbmRlbnQgb2YgdGhlIGJsb2NrIHdlJ3JlIGluCiAiIHByZXZfaW5kZW50ID0gdGhlIHByZXZpb3VzIGxpbmUncyBpbmRlbnQKICIgcHJldl9sbnVtICAgPSBwcmV2aW91cyBsaW5lICh0byBzdGFydCBsb29raW5nIG9uKQogIiBibG9ja3N0YXJ0ICA9IGV4cHIuIHRoYXQgaW5kaWNhdGVzIGEgcG9zc2libGUgc3RhcnQgb2YgdGhpcyBibG9jawpAQCAtNDQsNyArNDQsNyBAQAogICAgbGV0IGxpbmUgPSBzdWJzdGl0dXRlKCBnZXRsaW5lKGxudW0pLCBzOkFkYUNvbW1lbnQsICcnLCAnJyApCiAgICB3aGlsZSBsbnVtID4gMQogICAgICAgaWYgYTpzdG9wX2F0ICE9ICcnICAmJiAgbGluZSA9fiAnXlxzKicgLiBhOnN0b3BfYXQgICYmICBpbmRlbnQobG51bSkgPCBhOnByZXZfaW5kZW50Ci0gICAgICAgICByZXR1cm4gLTEKKyAgICAgICAgIHJldHVybiBhOnByZXZfaW5kZW50CiAgICAgICBlbHNlaWYgbGluZSA9fiAnXlxzKicgLiBhOmJsb2Nrc3RhcnQKICAgICAgICAgIGxldCBpbmQgPSBpbmRlbnQobG51bSkKICAgICAgICAgIGlmIGluZCA8IGE6cHJldl9pbmRlbnQKQEAgLTExMSw3ICsxMTEsNyBAQAogICAgcmV0dXJuIGE6cHJldl9pbmRlbnQgLSAmc3cKIGVuZGZ1bmN0aW9uCiAKLSIgQXMgcGVyIE1haW5CbG9ja0luZGVudCwgYnV0IHJldHVybiBpbmRlbnQgb2YgcHJldmlvdXMgc3RhdGVtZW50LXN0YXJ0CisiIFJldHVybiBpbmRlbnQgb2YgcHJldmlvdXMgc3RhdGVtZW50LXN0YXJ0CiAiIChhZnRlciB3ZSd2ZSBpbmRlbnRlZCBkdWUgdG8gbXVsdGktbGluZSBzdGF0ZW1lbnRzKS4KICIgVGhpcyB0aW1lLCB3ZSBzdGFydCBzZWFyY2hpbmcgb24gdGhlIGxpbmUgKmJlZm9yZSogdGhlIG9uZSBnaXZlbiAod2hpY2ggaXMKICIgdGhlIGVuZCBvZiBhIHN0YXRlbWVudCAtIHdlIHdhbnQgdGhlIHByZXZpb3VzIGJlZ2lubmluZykuCkBAIC0xNjksNiArMTY5LDcgQEAKIAogICAgIiBHZXQgZGVmYXVsdCBpbmRlbnQgKGZyb20gcHJldi4gbGluZSkKICAgIGxldCBpbmQgPSBpbmRlbnQobG51bSkKKyAgIGxldCBpbml0aW5kID0gaW5kCiAKICAgICIgTm93IGNoZWNrIHdoYXQncyBvbiB0aGUgcHJldmlvdXMgbGluZQogICAgaWYgbGluZSA9fiBzOkFkYUJsb2NrU3RhcnQgIHx8ICBsaW5lID1+ICcoXHMqJCcKQEAgLTIxMCw3ICsyMTEsNyBAQAogICAgICAgIiBNdWx0aXBsZSBsaW5lIGdlbmVyaWMgaW5zdGFudGlhdGlvbiAoJ3BhY2thZ2UgYmxhaCBpc1xubmV3IHRoaW5neScpCiAgICAgICBsZXQgaW5kID0gczpTdGF0ZW1lbnRJbmRlbnQoIGluZCAtICZzdywgbG51bSApCiAgICBlbHNlaWYgbGluZSA9fiAnO1xzKiQnCi0gICAgICAiIFN0YXRlbWVudCBlbmQgLSB0cnkgdG8gZmluZCBjdXJyZW50IHN0YXRlbWVudC1zdGFydCBpbmRlbnQKKyAgICAgICIgU3RhdGVtZW50IGVuZCAoYnV0IG5vdCAnZW5kJyApIC0gdHJ5IHRvIGZpbmQgY3VycmVudCBzdGF0ZW1lbnQtc3RhcnQgaW5kZW50CiAgICAgICBsZXQgaW5kID0gczpTdGF0ZW1lbnRJbmRlbnQoIGluZCwgbG51bSApCiAgICBlbmRpZgogCkBAIC0yMjQsMTEgKzIyNSwxNCBAQAogICAgICAgIiBTdGFydCBvZiBsaW5lIGZvciBhZGEtcHAKICAgICAgIGxldCBpbmQgPSAwCiAgICBlbHNlaWYgY29udGludWF0aW9uICYmIGxpbmUgPX4gJ15ccyooJwotICAgICAgbGV0IGluZCA9IGluZCArICZzdworICAgICAgIiBEb24ndCBkbyB0aGlzIGlmIHdlJ3ZlIGFscmVhZHkgaW5kZW50ZWQgZHVlIHRvIHRoZSBwcmV2aW91cyBsaW5lCisgICAgICBpZiBpbmQgPT0gaW5pdGluZAorICAgICAgICAgbGV0IGluZCA9IGluZCArICZzdworICAgICAgZW5kaWYKICAgIGVsc2VpZiBsaW5lID1+ICdeXHMqXChiZWdpblx8aXNcKVw+JwogICAgICAgbGV0IGluZCA9IHM6TWFpbkJsb2NrSW5kZW50KCBpbmQsIGxudW0sICdcKHByb2NlZHVyZVx8ZnVuY3Rpb25cfGRlY2xhcmVcfHBhY2thZ2VcfHRhc2tcKVw+JywgJ2JlZ2luXD4nICkKICAgIGVsc2VpZiBsaW5lID1+ICdeXHMqcmVjb3JkXD4nCi0gICAgICBsZXQgaW5kID0gczpNYWluQmxvY2tJbmRlbnQoIGluZCwgbG51bSwgJ3R5cGVcPicsICcnICkgKyAmc3cKKyAgICAgIGxldCBpbmQgPSBzOk1haW5CbG9ja0luZGVudCggaW5kLCBsbnVtLCAndHlwZVw+XHxmb3JcPi4qXDx1c2VcPicsICcnICkgKyAmc3cKICAgIGVsc2VpZiBsaW5lID1+ICdeXHMqXChlbHNlXHxlbHNpZlwpXD4nCiAgICAgICBsZXQgaW5kID0gczpNYWluQmxvY2tJbmRlbnQoIGluZCwgbG51bSwgJ2lmXD4nLCAnJyApCiAgICBlbHNlaWYgbGluZSA9fiAnXlxzKndoZW5cPicKQEAgLTI1MSw3ICsyNTUsNyBAQAogICAgICAgbGV0IGluZCA9IHM6RW5kQmxvY2tJbmRlbnQoIGluZCwgbG51bSwgJ2Nhc2VcPi4qXDxpc1w+JywgJ2VuZFw+XHMqXDxjYXNlXD4nICkKICAgIGVsc2VpZiBsaW5lID1+ICdeXHMqZW5kXD4nCiAgICAgICAiIEdlbmVyYWwgY2FzZSBmb3IgZW5kCi0gICAgICBsZXQgaW5kID0gczpNYWluQmxvY2tJbmRlbnQoIGluZCwgbG51bSwgJ1woaWZcfHdoaWxlXHxmb3JcfGxvb3BcfGFjY2VwdFx8YmVnaW5cfHJlY29yZFx8Y2FzZVx8ZXhjZXB0aW9uXClcPicsICcnICkKKyAgICAgIGxldCBpbmQgPSBzOk1haW5CbG9ja0luZGVudCggaW5kLCBsbnVtLCAnXChpZlx8d2hpbGVcfGZvclx8bG9vcFx8YWNjZXB0XHxiZWdpblx8cmVjb3JkXHxjYXNlXHxleGNlcHRpb25cfHBhY2thZ2VcKVw+JywgJycgKQogICAgZWxzZWlmIGxpbmUgPX4gJ15ccypleGNlcHRpb25cPicKICAgICAgIGxldCBpbmQgPSBzOk1haW5CbG9ja0luZGVudCggaW5kLCBsbnVtLCAnYmVnaW5cPicsICcnICkKICAgIGVsc2VpZiBsaW5lID1+ICdeXHMqdGhlblw+JwpkaWZmIC0tZ2l0IGEvcnVudGltZS9pbmRlbnQvZWlmZmVsLnZpbSBiL3J1bnRpbWUvaW5kZW50L2VpZmZlbC52aW0KaW5kZXggMjJiOTMyYS4uODk1OTQ1OSAxMDA2NDQKLS0tIGEvcnVudGltZS9pbmRlbnQvZWlmZmVsLnZpbQorKysgYi9ydW50aW1lL2luZGVudC9laWZmZWwudmltCkBAIC01LDcgKzUsNyBAQAogIiAkRGF0ZSQKICIgJFJldmlzaW9uJAogIiBVUkw6IGh0dHA6Ly93d3cuZGpvY2UubmV0L3BhZ2UvdmltLwotIiBMYXN0IENoYW5nZToJMjAwNCBTZXAgMTQKKyIgTGFzdCBDaGFuZ2U6CTIwMDQgU2VwdCAxNCA6IHJlbW92ZWQgc3BlY2lmaWMgdmFsdWUgZm9yIHRhYiAoc3cpCiAKICIgT25seSBsb2FkIHRoaXMgaW5kZW50IGZpbGUgd2hlbiBubyBvdGhlciB3YXMgbG9hZGVkLgogaWYgZXhpc3RzKCJiOmRpZF9pbmRlbnQiKQpkaWZmIC0tZ2l0IGEvcnVudGltZS9rZXltYXAvc2luaGFsYS1waG9uZXRpY191dGYtOC52aW0gYi9ydW50aW1lL2tleW1hcC9zaW5oYWxhLXBob25ldGljX3V0Zi04LnZpbQppbmRleCAxZjc3MThhLi40M2RjYzYzIDEwMDY0NAotLS0gYS9ydW50aW1lL2tleW1hcC9zaW5oYWxhLXBob25ldGljX3V0Zi04LnZpbQorKysgYi9ydW50aW1lL2tleW1hcC9zaW5oYWxhLXBob25ldGljX3V0Zi04LnZpbQpAQCAtMSw2ICsxLDYgQEAKICIgVmltIEtleW1hcCBmaWxlIGZvciBTaW5oYWxhIChTcmkgTGFua2EpICgyMDAzLTExLTAyKQogIiBNYWludGFpbmVyICA6IEhhcnNodWxhIEpheWFzdXJpeWEgPGhhc2hAamF5YXNvbHV0aW9ucy5jamIubmV0PgotIiBMYXN0IFVwZGF0ZWQ6IDIwMDQtMTAtMTAKKyIgTGFzdCBVcGRhdGVkOiAyMDA0LTExLTE0CiAiIFRoaXMgaXMgYSBzdGF0aWMgcGhvbmV0aWMgbWFwcGluZyBmb3IgYSBzdGFuZGFyZCBVUy1FbmdsaXNoIGtleWJvYXJkCiAiIChxd2VydHkpCiAiIGh0dHA6Ly93d3cubm9uZ251Lm9yZy9zaW5oYWxhL2RvYy9rZXltYXBzL3NpbmhhbGEta2V5Ym9hcmRfMy5odG1sCkBAIC0xMiw2ICsxMiw3IEBACiAiIFNlbGVjdCB0aGUgbmV3IGtleW1hcAogIiAgIHNldCBrZXltYXA9c2luaGFsYS1waG9uZXRpY191dGYtOAogCitsZXQgYjprZXltYXBfbmFtZSA9ICJzaW5oYWxhIgogCiBsb2Fka2V5bWFwCiBWCTxjaGFyLTB4MGQ4Mj4JIiAg4LaCIC0gYW51c3ZhcmF5YSAoYW51c3ZhcmEpCkBAIC00Myw3ICs0NCw3IEBACiBjCTxjaGFyLTB4MGRhMD4JIiDgtqAgLSBhbHBhcHJhYW5hIGNheWFubmEgKGNhKQogQwk8Y2hhci0weDBkYTE+CSIg4LahIC0gbWFoYWFwcmFhbmEgY2F5YW5uYSAoY2hhKQogagk8Y2hhci0weDBkYTI+CSIg4LaiIC0gYWxwYXByYWFuYSBqYXlhbm5hIChqYSkKLUoJPGNoYXItMHgwZGEzPgkiIOC2oyAtIG1haGFhcHJhYW5hIGpoYXlhbm5hIChqaGEpCitKCTxjaGFyLTB4MGRhMz4JIiDgtqMgLSBtYWhhYXByYWFuYSBqYXlhbm5hIChqaGEpCiB6CTxjaGFyLTB4MGRhND4JIiDgtqQgLSB0YWFsdWphIG5hYXNpa3lheWEgKG55YSkKIFoJPGNoYXItMHgwZGE1PgkiIOC2pSAtIHRhYWx1amEgc2FueW9vZ2EgbmFhc2lreWF5YSAoam55YSkKIDxBLWo+CTxjaGFyLTB4MGRhNj4JIiDgtqYgLSBzYW55YWthIGpheWFubmEgKG55amEpCkBAIC01MiwxMyArNTMsMTMgQEAKIGQJPGNoYXItMHgwZGE5PgkiIOC2qSAtIGFscGFwcmFhbmEgZGRheWFubmEgKGRkYSkKIEQJPGNoYXItMHgwZGFhPgkiIOC2qiAtIG1haGFhcHJhYW5hIGRkYXlhbm5hIChkZGhhKQogTgk8Y2hhci0weDBkYWI+CSIg4LarIC0gbXV1cmRoYWphIG5heWFubmEgKG5uYSkKLTxBLWQ+CTxjaGFyLTB4MGRhYz4JIiDgtqwgLSBzYW55YWthIGRkYXlhbm5hIChubmRkYSkKK3gJPGNoYXItMHgwZGFjPgkiIOC2rCAtIHNhbnlha2EgZGRheWFubmEgKG5uZGRhKQogPEEtdD4JPGNoYXItMHgwZGFkPgkiIOC2rSAtIGFscGFwcmFhbmEgdGF5YW5uYSAodGEpCiA8QS1UPgk8Y2hhci0weDBkYWU+CSIg4LauIC0gbWFoYWFwcmFhbmEgdGF5YW5uYSAodGhhKQoteAk8Y2hhci0weDBkYWY+CSIg4LavIC0gYWxwYXByYWFuYSBkYXlhbm5hIChkYSkKLVgJPGNoYXItMHgwZGIwPgkiIOC2sCAtIG1haGFhcHJhYW5hIGRheWFubmEgKGRoYSkKKzxBLWQ+CTxjaGFyLTB4MGRhZj4JIiDgtq8gLSBhbHBhcHJhYW5hIGRheWFubmEgKGRhKQorPEEtRD4JPGNoYXItMHgwZGIwPgkiIOC2sCAtIG1haGFhcHJhYW5hIGRheWFubmEgKGRoYSkKIG4JPGNoYXItMHgwZGIxPgkiIOC2sSAtIGRhbnRhamEgbmF5YW5uYSAobmEpCi08QS14Pgk8Y2hhci0weDBkYjM+CSIg4LazIC0gc2FueWFrYSBkYXlhbm5hIChuZGEpCitYCTxjaGFyLTB4MGRiMz4JIiDgtrMgLSBzYW55YWthIGRheWFubmEgKG5kYSkKIHAJPGNoYXItMHgwZGI0PgkiIOC2tCAtIGFscGFwcmFhbmEgcGF5YW5uYSAocGEpCiBQCTxjaGFyLTB4MGRiNT4JIiDgtrUgLSBtYWhhYXByYWFuYSBwYXlhbm5hIChwaGEpCiBiCTxjaGFyLTB4MGRiNj4JIiDgtrYgLSBhbHBhcHJhYW5hIGJheWFubmEgKGJhKQpAQCAtMTAyLDUgKzEwMyw1IEBACiA8QS1cPgk8Y2hhci0weDBkY2E+PGNoYXItMHgyMDBkPgkiIGpvaW4gLSBjb25qdW5jdCBsZXR0ZXJzIGNvbnMgMERDQSAyMDBEIGNvbnMKIDxBLXw+CTxjaGFyLTB4MjAwZD4JIiB0b3VjaCAtIFpXSgogCi0iPFMtc3BhY2U+CTxjaGFyLTB4MDBhMD4JIiAtIG5vLWJyZWFrIHNwYWNlLiA8Uy1zcGFjZT4gZGlkbid0IHdvcmsuCis8Uy1zcGFjZT4JPGNoYXItMHgwMGEwPgkiIC0gbm8tYnJlYWsgc3BhY2UuIDxTLXNwYWNlPiBkaWRuJ3Qgd29yay4KIDxDLXNwYWNlPgk8Y2hhci0weDIwMGM+CSIgLSBaV05KLiA8QS1zcGFjZT4gZG9lc24ndCB3b3JrIQpkaWZmIC0tZ2l0IGEvcnVudGltZS9rZXltYXAvc2luaGFsYS52aW0gYi9ydW50aW1lL2tleW1hcC9zaW5oYWxhLnZpbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NjA5MWI0Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9rZXltYXAvc2luaGFsYS52aW0KQEAgLTAsMCArMSwzIEBACisiIFZpbSBLZXltYXAgZmlsZSBmb3IgU2luaGFsYSAoU3JpIExhbmthKQorIgorc291cmNlIDxzZmlsZT46cDpoL3NpbmhhbGEtcGhvbmV0aWNfdXRmLTgudmltCmRpZmYgLS1naXQgYS9ydW50aW1lL21ha2VtZW51LnZpbSBiL3J1bnRpbWUvbWFrZW1lbnUudmltCmluZGV4IGJkZjk5OTIuLmM5ODkwMDcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvbWFrZW1lbnUudmltCisrKyBiL3J1bnRpbWUvbWFrZW1lbnUudmltCkBAIC0xLDYgKzEsNiBAQAogIiBTY3JpcHQgdG8gZGVmaW5lIHRoZSBzeW50YXggbWVudSBpbiBzeW5tZW51LnZpbQogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgotIiBMYXN0IENoYW5nZToJMjAwNCBTZXAgMTEKKyIgTGFzdCBDaGFuZ2U6CTIwMDQgTm92IDIwCiAKICIgVGhpcyBpcyB1c2VkIGJ5ICJtYWtlIG1lbnUiIGluIHRoZSBzcmMgZGlyZWN0b3J5LgogZWRpdCA8c2ZpbGU+OnA6aC9zeW5tZW51LnZpbQpAQCAtMzY2LDYgKzM2Niw3IEBACiBTeW5NZW51IFNoLVMuU2hlbGxcIHNjcmlwdC50Y3NoOnRjc2gKIFN5bk1lbnUgU2gtUy5TaGVsbFwgc2NyaXB0LnpzaDp6c2gKIFN5bk1lbnUgU2gtUy5TaUNBRDpzaWNhZAorU3luTWVudSBTaC1TLlNpZXZlOnNpZXZlCiBTeW5NZW51IFNoLVMuU2ltdWxhOnNpbXVsYQogU3luTWVudSBTaC1TLlNpbmRhLlNpbmRhXCBjb21wYXJlOnNpbmRhY21wCiBTeW5NZW51IFNoLVMuU2luZGEuU2luZGFcIGlucHV0OnNpbmRhCkBAIC00MjMsNiArNDI0LDcgQEAKIFN5bk1lbnUgVFVWLlRGXCBtdWRcIGNsaWVudDp0ZgogU3luTWVudSBUVVYuVGlkeVwgY29uZmlndXJhdGlvbjp0aWR5CiBTeW5NZW51IFRVVi5UaWxkZTp0aWxkZQorU3luTWVudSBUVVYuVFBQOnRwcAogU3luTWVudSBUVVYuVHJhc3lzXCBpbnB1dDp0cmFzeXMKIFN5bk1lbnUgVFVWLlRTUy5Db21tYW5kXCBMaW5lOnRzc2NsCiBTeW5NZW51IFRVVi5UU1MuR2VvbWV0cnk6dHNzZ20KZGlmZiAtLWdpdCBhL3J1bnRpbWUvbWVudS52aW0gYi9ydW50aW1lL21lbnUudmltCmluZGV4IGI1MDRmZjguLjBmMDMxN2QgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvbWVudS52aW0KKysrIGIvcnVudGltZS9tZW51LnZpbQpAQCAtMiw3ICsyLDcgQEAKICIgWW91IGNhbiBhbHNvIHVzZSB0aGlzIGFzIGEgc3RhcnQgZm9yIHlvdXIgb3duIHNldCBvZiBtZW51cy4KICIKICIgTWFpbnRhaW5lcjoJQnJhbSBNb29sZW5hYXIgPEJyYW1AdmltLm9yZz4KLSIgTGFzdCBDaGFuZ2U6CTIwMDQgU2VwIDE2CisiIExhc3QgQ2hhbmdlOgkyMDA0IERlYyAwNAogCiAiIE5vdGUgdGhhdCAiOmFuIiAoc2hvcnQgZm9yICI6YW5vcmVtZW51IikgaXMgb2Z0ZW4gdXNlZCB0byBtYWtlIGEgbWVudSB3b3JrCiAiIGluIGFsbCBtb2RlcyBhbmQgYXZvaWQgc2lkZSBlZmZlY3RzIGZyb20gbWFwcGluZ3MgZGVmaW5lZCBieSB0aGUgdXNlci4KQEAgLTc4NSw5ICs3ODUsMzcgQEAKIHZub3JlbWVudSAxLjUwIFBvcFVwLiZEZWxldGUJCXgKIGFuIDEuNTUgUG9wVXAuLVNFUDItCQkJPE5vcD4KIHZub3JlbWVudSAxLjYwIFBvcFVwLlNlbGVjdFwgQmxvY2t3aXNlCTxDLVY+Ci1hbiAxLjcwIFBvcFVwLlNlbGVjdFwgJldvcmQJCXZhdwotYW4gMS44MCBQb3BVcC5TZWxlY3RcICZMaW5lCQlWCi1hbiAxLjkwIFBvcFVwLlNlbGVjdFwgJkJsb2NrCQk8Qy1WPgorCitubm9yZW1lbnUgMS43MCBQb3BVcC5TZWxlY3RcICZXb3JkCXZhdworb25vcmVtZW51IDEuNzAgUG9wVXAuU2VsZWN0XCAmV29yZAlhdwordm5vcmVtZW51IDEuNzAgUG9wVXAuU2VsZWN0XCAmV29yZAk8Qy1DPnZhdworaW5vcmVtZW51IDEuNzAgUG9wVXAuU2VsZWN0XCAmV29yZAk8Qy1PPnZhdworY25vcmVtZW51IDEuNzAgUG9wVXAuU2VsZWN0XCAmV29yZAk8Qy1DPnZhdworCitubm9yZW1lbnUgMS43MyBQb3BVcC5TZWxlY3RcICZTZW50ZW5jZQl2YXMKK29ub3JlbWVudSAxLjczIFBvcFVwLlNlbGVjdFwgJlNlbnRlbmNlCWFzCit2bm9yZW1lbnUgMS43MyBQb3BVcC5TZWxlY3RcICZTZW50ZW5jZQk8Qy1DPnZhcworaW5vcmVtZW51IDEuNzMgUG9wVXAuU2VsZWN0XCAmU2VudGVuY2UJPEMtTz52YXMKK2Nub3JlbWVudSAxLjczIFBvcFVwLlNlbGVjdFwgJlNlbnRlbmNlCTxDLUM+dmFzCisKK25ub3JlbWVudSAxLjc3IFBvcFVwLlNlbGVjdFwgUGEmcmFncmFwaAl2YXAKK29ub3JlbWVudSAxLjc3IFBvcFVwLlNlbGVjdFwgUGEmcmFncmFwaAlhcAordm5vcmVtZW51IDEuNzcgUG9wVXAuU2VsZWN0XCBQYSZyYWdyYXBoCTxDLUM+dmFwCitpbm9yZW1lbnUgMS43NyBQb3BVcC5TZWxlY3RcIFBhJnJhZ3JhcGgJPEMtTz52YXAKK2Nub3JlbWVudSAxLjc3IFBvcFVwLlNlbGVjdFwgUGEmcmFncmFwaAk8Qy1DPnZhcAorCitubm9yZW1lbnUgMS44MCBQb3BVcC5TZWxlY3RcICZMaW5lCVYKK29ub3JlbWVudSAxLjgwIFBvcFVwLlNlbGVjdFwgJkxpbmUJPEMtQz5WCit2bm9yZW1lbnUgMS44MCBQb3BVcC5TZWxlY3RcICZMaW5lCTxDLUM+VgoraW5vcmVtZW51IDEuODAgUG9wVXAuU2VsZWN0XCAmTGluZQk8Qy1PPlYKK2Nub3JlbWVudSAxLjgwIFBvcFVwLlNlbGVjdFwgJkxpbmUJPEMtQz5WCisKK25ub3JlbWVudSAxLjkwIFBvcFVwLlNlbGVjdFwgJkJsb2NrCTxDLVY+Citvbm9yZW1lbnUgMS45MCBQb3BVcC5TZWxlY3RcICZCbG9jawk8Qy1DPjxDLVY+Cit2bm9yZW1lbnUgMS45MCBQb3BVcC5TZWxlY3RcICZCbG9jawk8Qy1DPjxDLVY+Citpbm9yZW1lbnUgMS45MCBQb3BVcC5TZWxlY3RcICZCbG9jawk8Qy1PPjxDLVY+Citjbm9yZW1lbnUgMS45MCBQb3BVcC5TZWxlY3RcICZCbG9jawk8Qy1DPjxDLVY+CisKIG5vcmVtZW51ICA8c2NyaXB0PiA8c2lsZW50PiAxLjEwMCBQb3BVcC5TZWxlY3RcICZBbGwJOjxDLVU+Y2FsbCA8U0lEPlNlbGVjdEFsbCgpPENSPgogaW5vcmVtZW51IDxzY3JpcHQ+IDxzaWxlbnQ+IDEuMTAwIFBvcFVwLlNlbGVjdFwgJkFsbAk8Qy1PPjpjYWxsIDxTSUQ+U2VsZWN0QWxsKCk8Q1I+CiBjbm9yZW1lbnUgPHNjcmlwdD4gPHNpbGVudD4gMS4xMDAgUG9wVXAuU2VsZWN0XCAmQWxsCTxDLVU+Y2FsbCA8U0lEPlNlbGVjdEFsbCgpPENSPgpkaWZmIC0tZ2l0IGEvcnVudGltZS9vcHR3aW4udmltIGIvcnVudGltZS9vcHR3aW4udmltCmluZGV4IDg1ZTIwMWMuLmY2ZGJmMzUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb3B0d2luLnZpbQorKysgYi9ydW50aW1lL29wdHdpbi52aW0KQEAgLTEsNyArMSw3IEBACiAiIFRoZXNlIGNvbW1hbmRzIGNyZWF0ZSB0aGUgb3B0aW9uIHdpbmRvdy4KICIKICIgTWFpbnRhaW5lcjoJQnJhbSBNb29sZW5hYXIgPEJyYW1AdmltLm9yZz4KLSIgTGFzdCBDaGFuZ2U6CTIwMDQgSnVsIDA1CisiIExhc3QgQ2hhbmdlOgkyMDA0IERlYyAwOQogCiAiIElmIHRoZXJlIGFscmVhZHkgaXMgYW4gb3B0aW9uIHdpbmRvdywganVtcCB0byB0aGF0IG9uZS4KIGlmIGJ1Zndpbm5yKCJvcHRpb24td2luZG93IikgPiAwCkBAIC04ODksNiArODg5LDggQEAKIGNhbGwgPFNJRD5CaW5PcHRpb25HKCJhciIsICZhcikKIGNhbGwgYXBwZW5kKCIkIiwgInBhdGNobW9kZVx0a2VlcCBvbGRlc3QgdmVyc2lvbiBvZiBhIGZpbGU7IHNwZWNpZmllcyBmaWxlIG5hbWUgZXh0ZW5zaW9uIikKIGNhbGwgPFNJRD5PcHRpb25HKCJwbSIsICZwbSkKK2NhbGwgYXBwZW5kKCIkIiwgImZzeW5jXHRmb3JjaWJseSBzeW5jIHRoZSBmaWxlIHRvIGRpc2sgYWZ0ZXIgd3JpdGluZyBpdCIpCitjYWxsIDxTSUQ+QmluT3B0aW9uRygiZnMiLCAmZnMpCiBpZiAhaGFzKCJtc2RvcyIpCiAgIGNhbGwgYXBwZW5kKCIkIiwgInNob3J0bmFtZVx0dXNlIDguMyBmaWxlIG5hbWVzIikKICAgY2FsbCBhcHBlbmQoIiQiLCAiXHQobG9jYWwgdG8gYnVmZmVyKSIpCmRpZmYgLS1naXQgYS9ydW50aW1lL3BsdWdpbi9OZXRyd0ZpbGVIYW5kbGVycy52aW0gYi9ydW50aW1lL3BsdWdpbi9OZXRyd0ZpbGVIYW5kbGVycy52aW0KaW5kZXggNmVkZWI1MS4uMzVkZjZkZCAxMDA2NDQKLS0tIGEvcnVudGltZS9wbHVnaW4vTmV0cndGaWxlSGFuZGxlcnMudmltCisrKyBiL3J1bnRpbWUvcGx1Z2luL05ldHJ3RmlsZUhhbmRsZXJzLnZpbQpAQCAtMiwxNCArMiwxNCBAQAogIiAgICAgICAgICAgICAgICAgICAgbmV0cncncyBicm93c2VycycgeCBjb21tYW5kICgiZVhlY3V0ZSBsYXVuY2hlciIpCiAiIEF1dGhvcjoJQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuCiAiIERhdGU6CQlBdWcgMzEsIDIwMDQKLSIgVmVyc2lvbjoJM2EJTk9UIFJFTEVBU0VECisiIFZlcnNpb246CTMKIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgUHJldmVudCBSZWxvYWRpbmc6IHt7ezEKIGlmIGV4aXN0cygiZzpsb2FkZWRfbmV0cndmaWxlaGFuZGxlcnMiKSB8fCAmY3AKICBmaW5pc2gKIGVuZGlmCi1sZXQgZzpsb2FkZWRfbmV0cndmaWxlaGFuZGxlcnM9ICJ2M2EiCitsZXQgZzpsb2FkZWRfbmV0cndmaWxlaGFuZGxlcnM9ICJ2MyIKIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgTmV0cndGaWxlSGFuZGxlcl9odG1sOiBoYW5kbGVzIGh0bWwgd2hlbiB0aGUgdXNlciBoaXRzICJ4IiB3aGVuIHRoZSB7e3sxCkBAIC0xNTMsNyArMTUzLDcgQEAKIGZ1biEgTmV0cndGaWxlSGFuZGxlcl9wZGYocGRmKQogIiAgIiBjYWxsIERmdW5jKCJOZXRyd0ZpbGVIYW5kbGVyX3BkZihwZGY8Ii5hOnBkZi4iPikiKQogICBpZiBleGVjdXRhYmxlKCJncyIpCi0gICBleGUgInNpbGVudCEgIWdzICIuYTpwZGYKKyAgIGV4ZSAnc2lsZW50ISAhZ3MgIicuYTpwZGYuJyInCiAgIGVsc2UKICIgICAiIGNhbGwgRHJldCgiTmV0cndGaWxlSGFuZGxlcl9wZGYgMCIpCiAgICByZXR1cm4gMApAQCAtMTY4LDcgKzE2OCw3IEBACiBmdW4hIE5ldHJ3RmlsZUhhbmRsZXJfc3h3KHN4dykKICIgICIgY2FsbCBEZnVuYygiTmV0cndGaWxlSGFuZGxlcl9zeHcoc3h3PCIuYTpzeHcuIj4pIikKICAgaWYgZXhlY3V0YWJsZSgiZ3MiKQotICAgZXhlICJzaWxlbnQhICFncyAiLmE6c3h3CisgICBleGUgJ3NpbGVudCEgIWdzICInLmE6c3h3LiciJwogICBlbHNlCiAiICAgIiBjYWxsIERyZXQoIk5ldHJ3RmlsZUhhbmRsZXJfc3h3IDAiKQogICAgcmV0dXJuIDAKQEAgLTE4NCw3ICsxODQsNyBAQAogIiAgIiBjYWxsIERmdW5jKCJOZXRyd0ZpbGVIYW5kbGVyX2RvYyhkb2M8Ii5hOmRvYy4iPikiKQogCiAgIGlmIGV4ZWN1dGFibGUoIm9vd3JpdGVyIikKLSAgIGV4ZSAic2lsZW50ISAhb293cml0ZXIgIi5hOmRvYworICAgZXhlICdzaWxlbnQhICFvb3dyaXRlciAiJy5hOmRvYy4nIicKICAgIHJlZHJhdyEKICAgZWxzZQogIiAgICIgY2FsbCBEcmV0KCJOZXRyd0ZpbGVIYW5kbGVyX2RvYyAwIikKQEAgLTIwMSw3ICsyMDEsNyBAQAogIiAgIiBjYWxsIERmdW5jKCJOZXRyd0ZpbGVIYW5kbGVyX3N4dyhzeHc8Ii5hOnN4dy4iPikiKQogCiAgIGlmIGV4ZWN1dGFibGUoIm9vd3JpdGVyIikKLSAgIGV4ZSAic2lsZW50ISAhb293cml0ZXIgIi5hOnN4dworICAgZXhlICdzaWxlbnQhICFvb3dyaXRlciAiJy5hOnN4dy4nIicKICAgIHJlZHJhdyEKICAgZWxzZQogIiAgICIgY2FsbCBEcmV0KCJOZXRyd0ZpbGVIYW5kbGVyX3N4dyAwIikKQEAgLTIxOCw3ICsyMTgsNyBAQAogIiAgIiBjYWxsIERmdW5jKCJOZXRyd0ZpbGVIYW5kbGVyX3hscyh4bHM8Ii5hOnhscy4iPikiKQogCiAgIGlmIGV4ZWN1dGFibGUoIm9vY2FsYyIpCi0gICBleGUgInNpbGVudCEgIW9vY2FsYyAiLmE6eGxzCisgICBleGUgJ3NpbGVudCEgIW9vY2FsYyAiJy5hOnhscy4nIicKICAgIHJlZHJhdyEKICAgZWxzZQogIiAgICIgY2FsbCBEcmV0KCJOZXRyd0ZpbGVIYW5kbGVyX3hscyAwIikKZGlmZiAtLWdpdCBhL3J1bnRpbWUvcGx1Z2luL25ldHJ3LnZpbSBiL3J1bnRpbWUvcGx1Z2luL25ldHJ3LnZpbQppbmRleCA2MDhjYzdkLi5lNDg2OGEzIDEwMDY0NAotLS0gYS9ydW50aW1lL3BsdWdpbi9uZXRydy52aW0KKysrIGIvcnVudGltZS9wbHVnaW4vbmV0cncudmltCkBAIC0xLDcgKzEsNyBAQAogIiBuZXRydy52aW06IEhhbmRsZXMgZmlsZSB0cmFuc2ZlciBhbmQgcmVtb3RlIGRpcmVjdG9yeSBsaXN0aW5nIGFjcm9zcyBhIG5ldHdvcmsKLSIgTGFzdCBDaGFuZ2U6CVNlcCAxNCwgMjAwNAotIiBNYWludGFpbmVyOglDaGFybGVzIEUuIENhbXBiZWxsLCBKci4gUGhEICAgPGRyY2hpcE5PU1BBTSBhdCBjYW1wYmVsbGZhbWlseS5iaXo+Ci0iIFZlcnNpb246CTUxYQlOT1QgUkVMRUFTRUQKKyIgbGFzdCBjaGFuZ2U6CURlYyAwNiwgMjAwNAorIiBNYWludGFpbmVyOglDaGFybGVzIEUgQ2FtcGJlbGwsIEpyIDxkcmNoaXBOT1NQQU0gYXQgY2FtcGJlbGxmYW1pbHkgZG90IGJpej4KKyIgVmVyc2lvbjoJNTMKICIgTGljZW5zZToJVmltIExpY2Vuc2UgIChzZWUgdmltJ3MgOmhlbHAgbGljZW5zZSkKICIKICIgIEJ1dCBiZSBkb2VycyBvZiB0aGUgV29yZCwgYW5kIG5vdCBvbmx5IGhlYXJlcnMsIGRlbHVkaW5nIHlvdXIgb3duIHNlbHZlcwpAQCAtMTQsNyArMTQsNyBAQAogaWYgZXhpc3RzKCJnOmxvYWRlZF9uZXRydyIpIHx8ICZjcAogICBmaW5pc2gKIGVuZGlmCi1sZXQgZzpsb2FkZWRfbmV0cncgID0gInY1MWEiCitsZXQgZzpsb2FkZWRfbmV0cncgID0gInY1MyIKIGxldCBzOnNhdmVfY3BvICAgICAgPSAmY3BvCiBsZXQgbG9hZGVkX2V4cGxvcmVyID0gMQogc2V0IGNwbyZ2aW0KQEAgLTI5LDcgKzI5LDExIEBACiBlbmRpZgogaWYgIWV4aXN0cygiZzpuZXRyd19jeWd3aW4iKQogIGlmIGhhcygid2luMzIiKSB8fCBoYXMoIndpbjk1IikgfHwgaGFzKCJ3aW42NCIpIHx8IGhhcygid2luMTYiKQotICBsZXQgZzpuZXRyd19jeWd3aW49IDEKKyAgaWYgJnNoZWxsID09ICJiYXNoIgorICAgbGV0IGc6bmV0cndfY3lnd2luPSAxCisgIGVsc2UKKyAgIGxldCBnOm5ldHJ3X2N5Z3dpbj0gMAorICBlbmRpZgogIGVsc2UKICAgbGV0IGc6bmV0cndfY3lnd2luPSAwCiAgZW5kaWYKQEAgLTc4LDcgKzgyLDcgQEAKICBsZXQgZzpuZXRyd19zb3J0X2J5PSAibmFtZSIKIGVuZGlmCiBpZiAhZXhpc3RzKCJnOm5ldHJ3X3NvcnRfc2VxdWVuY2UiKQotIGxldCBnOm5ldHJ3X3NvcnRfc2VxdWVuY2U9ICcvJCwqLFwuYmFrJCxcLm8kLFwuaCQsXC5pbmZvJCxcLnN3cCQsXC5vYmokJworIGxldCBnOm5ldHJ3X3NvcnRfc2VxdWVuY2U9ICdbXC9dJCwqLFwuYmFrJCxcLm8kLFwuaCQsXC5pbmZvJCxcLnN3cCQsXC5vYmokJwogZW5kaWYKIGlmICFleGlzdHMoImc6bmV0cndfc29ydF9kaXJlY3Rpb24iKQogICIgYWx0ZXJuYXRpdmU6IHJldmVyc2UgICh6IHkgeCAuLi4pCkBAIC0xMTcsNiArMTIxLDkgQEAKIGlmICFleGlzdHMoImc6bmV0cndfZnRwX2Jyb3dzZV9yZWplY3QiKQogIGxldCBnOm5ldHJ3X2Z0cF9icm93c2VfcmVqZWN0PSdedG90YWxcc1wrXGRcKyRcfF5Ucnlpbmdcc1wrXGRcKy4qJFx8XktFUkJFUk9TX1ZcZCByZWplY3RlZFx8XlNlY3VyaXR5IGV4dGVuc2lvbnMgbm90XHxObyBzdWNoIGZpbGVcfDogY29ubmVjdCB0byBhZGRyZXNzIFswLTlhLWZBLUY6XSo6IE5vIHJvdXRlIHRvIGhvc3QkJwogZW5kaWYKK2lmICFleGlzdHMoImc6bmV0cndfc3NoX2Jyb3dzZV9yZWplY3QiKQorICBsZXQgZzpuZXRyd19zc2hfYnJvd3NlX3JlamVjdD0nXnRvdGFsXHNcK1xkXCskJworZW5kaWYKIGlmICFleGlzdHMoImc6bmV0cndfa2VlcGRpciIpCiAgbGV0IGc6bmV0cndfa2VlcGRpcj0gMQogZW5kaWYKQEAgLTE0Myw2ICsxNTAsMTIgQEAKIGlmICFleGlzdHMoImc6bmV0cndfbWF4ZmlsZW5hbWVsZW4iKQogIGxldCBnOm5ldHJ3X21heGZpbGVuYW1lbGVuPSAzMgogZW5kaWYKK2lmICFleGlzdHMoImc6bmV0cndfZGlyaGlzdG1heCIpCisgbGV0IGc6bmV0cndfZGlyaGlzdG1heD0gMTAKK2VuZGlmCitpZiAhZXhpc3RzKCJnOk5FVFJXX0RJUkhJU1RfQ05UIikKKyBsZXQgZzpORVRSV19ESVJISVNUX0NOVD0gMAorZW5kaWYKIAogIiBCdWZFbnRlciBldmVudCBpZ25vcmVkIGJ5IGRlY2hvIHdoZW4gZm9sbG93aW5nIHZhcmlhYmxlIGlzIHRydWUKICIgIEhhcyBhIHNpZGUgZWZmZWN0IHRoYXQgZG9hdSBCdWZSZWFkUG9zdCBkb2Vzbid0IHdvcmssIHNvCkBAIC0yMTgsNyArMjMxLDYgQEAKICAgYXUgRmlsZVJlYWRDbWQgIGZ0cDovLyoscmNwOi8vKixzY3A6Ly8qLGh0dHA6Ly8qLGRhdjovLyoscnN5bmM6Ly8qLHNmdHA6Ly8qCWV4ZSAic2lsZW50IGRvYXUgQnVmUmVhZFByZSAiLmV4cGFuZCgiPGFmaWxlPiIpfGV4ZSAiTnJlYWQgIiAgIC5leHBhbmQoIjxhZmlsZT4iKXxleGUgInNpbGVudCBkb2F1IEJ1ZlJlYWRQb3N0ICIuZXhwYW5kKCI8YWZpbGU+IikKICAgYXUgQnVmV3JpdGVDbWQgIGZ0cDovLyoscmNwOi8vKixzY3A6Ly8qLGRhdjovLyoscnN5bmM6Ly8qLHNmdHA6Ly8qICAgIAlleGUgInNpbGVudCBkb2F1IEJ1ZldyaXRlUHJlICIuZXhwYW5kKCI8YWZpbGU+Iil8ZXhlICJOd3JpdGUgIiAuZXhwYW5kKCI8YWZpbGU+Iil8ZXhlICJzaWxlbnQgZG9hdSBCdWZXcml0ZVBvc3QgIi5leHBhbmQoIjxhZmlsZT4iKQogICBhdSBGaWxlV3JpdGVDbWQgZnRwOi8vKixyY3A6Ly8qLHNjcDovLyosZGF2Oi8vKixyc3luYzovLyosc2Z0cDovLyogICAgCWV4ZSAic2lsZW50IGRvYXUgQnVmV3JpdGVQcmUgIi5leHBhbmQoIjxhZmlsZT4iKXxleGUgIidbLCddTndyaXRlICIgLmV4cGFuZCgiPGFmaWxlPiIpfGV4ZSAic2lsZW50IGRvYXUgQnVmV3JpdGVQb3N0ICIuZXhwYW5kKCI8YWZpbGU+IikKLSIgIGF1IEZpbGVXcml0ZUNtZCBmdHA6Ly8qLHJjcDovLyosc2NwOi8vKixkYXY6Ly8qLHJzeW5jOi8vKixzZnRwOi8vKiAgICAJaWYgZXhpc3RzKCJ2Y291bnQiKXxjYWxsIERlY2hvKCJ2Y291bnQ9Ii52Y291bnQpfGVsc2V8Y2FsbCBEZWNobygibm8gdmNvdW50Iil8ZW5kaWYKICBhdWdyb3VwIEVORAogZW5kaWYKIApAQCAtMzM1LDYgKzM0Nyw3IEBACiAgICAgICAgaWYgaWNob2ljZSA+IGE6MAogICAgICAgIAlpZiAhZXhpc3RzKCJnOm5ldHJ3X3F1aWV0IikKICAgICAgICAgIGVjaG9lcnIgIlVuYmFsYW5jZWQgc3RyaW5nIGluIGZpbGVuYW1lICciLiB3aG9sZWNob2ljZSAuIiciCisgICAgICAgICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCiAJZW5kaWYKICIgICAgICAgIGNhbGwgRHJldCgiTmV0UmVhZCIpCiAgICAgICAgIHJldHVybgpAQCAtMzYzLDcgKzM3Niw3IEBACiAgCiAgICAiIENoZWNrIGlmIE5ldEJyb3dzZSgpIHNob3VsZCBiZSBoYW5kbGluZyB0aGlzIHJlcXVlc3QKICIgICBjYWxsIERlY2hvKCJjaGVja2luZyBpZiBuZXRsaXN0OiBjaG9pY2U8Ii5jaG9pY2UuIj4gbmV0cndfbGlzdF9jbWQ8Ii5nOm5ldHJ3X2xpc3RfY21kLiI+IikKLSAgIGlmIGNob2ljZSA9fiAiXi4qLyQiCisgICBpZiBjaG9pY2UgPX4gIl4uKltcL10kIgogICAgIGtlZXBqdW1wcyBjYWxsIHM6TmV0QnJvd3NlKGNob2ljZSkKICIgICAgY2FsbCBEcmV0KCJOZXRSZWFkIikKICAgICByZXR1cm4KQEAgLTQyMSw2ICs0MzQsNyBAQAogICAgICAgbGV0IGRlYnVna2VlcD0gJmRlYnVnCiAgICAgICBzZXQgZGVidWc9bXNnCiAgICAgICBlY2hvZXJyIGdldGxpbmUoMSkKKyAgICAgIGNhbGwgaW5wdXRzYXZlKCl8Y2FsbCBpbnB1dCgiUHJlc3MgPGNyPiB0byBjb250aW51ZSIpfGNhbGwgaW5wdXRyZXN0b3JlKCkKICAgICAgIGxldCAmZGVidWc9IGRlYnVna2VlcAogICAgICBlbmRpZgogICAgICBiZCEKQEAgLTQ2Niw2ICs0ODAsNyBAQAogIiAgICAgY2FsbCBEZWNobygiZXJyb3I8Ii5nZXRsaW5lKDEpLiI+IikKICAgICAgaWYgIWV4aXN0cygiZzpuZXRyd19xdWlldCIpCiAgICAgICBlY2hvZXJyIGdldGxpbmUoMSkKKyAgICAgIGNhbGwgaW5wdXRzYXZlKCl8Y2FsbCBpbnB1dCgiUHJlc3MgPGNyPiB0byBjb250aW51ZSIpfGNhbGwgaW5wdXRyZXN0b3JlKCkKICAgICAgZW5kaWYKICAgICBlbmRpZgogICAgIGJkIQpAQCAtNDk4LDYgKzUxMyw3IEBACiAgICAgaWYgZzpuZXRyd19odHRwX2NtZCA9PSAiIgogICAgICBpZiAhZXhpc3RzKCJnOm5ldHJ3X3F1aWV0IikKICAgICAgIGVjaG9lcnIgIm5laXRoZXIgd2dldCBub3IgZmV0Y2ggY29tbWFuZCBpcyBhdmFpbGFibGUiCisgICAgICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCiAgICAgIGVuZGlmCiAgICAgIGV4aXQKICAgICBlbmRpZgpAQCAtNTc1LDYgKzU5MSw3IEBACiAgICAgaWYgZzpuZXRyd19mZXRjaF9jbWQgPT0gIiIKICAgICAgaWYgIWV4aXN0cygiZzpuZXRyd19xdWlldCIpCiAgICAgICBlY2hvZXJyICJmZXRjaCBjb21tYW5kIG5vdCBhdmFpbGFibGUiCisgICAgICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCiAgICAgIGVuZGlmCiAgICAgIGV4aXQKICAgICBlbmRpZgpAQCAtNjM5LDE0ICs2NTYsMTQgQEAKICAgIGxldCBsaW5lMj0gbGluZSgiJCIpCiAgIGVuZGlmCiAgCi0gICIgdHJhbnNmb3JtIHBhdGhzIGZyb20gLyB0byBcIGZvciBXaW5kb3dzLCB1bmxlc3MgdGhlIHNoZWxsIGlzIGJhc2gKKyAgIiB0cmFuc2Zvcm0gcGF0aHMgZnJvbSAvIHRvIFwgZm9yIFdpbmRvd3MgKGV4Y2VwdCBmb3IgY3lnd2luKQogICBpZiAmdGVybSA9PSAid2luMzIiCi0gICBpZiAmc2hlbGwgPT0gImJhc2giCi0gICAgbGV0IGZuYW1lPWE6Zm5hbWUKLSIgICAgY2FsbCBEZWNobygiKHdpbjMyICYmIGJhc2gpIGZuYW1lPCIuZm5hbWUuIj4iKQorICAgaWYgZzpuZXRyd19jeWd3aW4KKyAgICBsZXQgZm5hbWU9IGE6Zm5hbWUKKyIgICAgY2FsbCBEZWNobygiKHdpbjMyICYmIGN5Z3dpbikgZm5hbWU8Ii5mbmFtZS4iPiIpCiAgICBlbHNlCi0gICAgbGV0IGZuYW1lPXN1YnN0aXR1dGUoYTpmbmFtZSwnLycsJ1xcXFwnLCdnZScpCi0iICAgIGNhbGwgRGVjaG8oIih3aW4zMiAmJiAhYmFzaCkgZm5hbWU8Ii5mbmFtZS4iPiIpCisgICAgbGV0IGZuYW1lPSBzdWJzdGl0dXRlKGE6Zm5hbWUsJy8nLCdcXFxcJywnZ2UnKQorIiAgICBjYWxsIERlY2hvKCIod2luMzIgJiYgIWN5Z3dpbikgZm5hbWU8Ii5mbmFtZS4iPiIpCiAgICBlbmRpZgogICBlbHNlCiAgICBsZXQgZm5hbWU9IGE6Zm5hbWUKQEAgLTgwMiw2ICs4MTksNyBAQAogICAgICAgIGlmIGNob2ljZSA+IGE6MAogICAgICAgIAlpZiAhZXhpc3RzKCJnOm5ldHJ3X3F1aWV0IikKICAgICAgICAgIGVjaG9lcnIgIlVuYmFsYW5jZWQgc3RyaW5nIGluIGZpbGVuYW1lICciLiB3aG9sZWNob2ljZSAuIiciCisgICAgICAgICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCiAJZW5kaWYKICIgICAgICAgIGNhbGwgRHJldCgiTmV0V3JpdGUiKQogICAgICAgICByZXR1cm4KQEAgLTg3Miw2ICs4OTAsNyBAQAogICAgIGlmIGdldGxpbmUoMSkgIX4gIl4kIgogICAgICBpZiAhZXhpc3RzKCJnOm5ldHJ3X3F1aWV0IikKICAgICAgIGVjaG9lcnIgZ2V0bGluZSgxKQorICAgICAgY2FsbCBpbnB1dHNhdmUoKXxjYWxsIGlucHV0KCJQcmVzcyA8Y3I+IHRvIGNvbnRpbnVlIil8Y2FsbCBpbnB1dHJlc3RvcmUoKQogICAgICBlbmRpZgogICAgICBsZXQgbW9kPTEKICAgICBlbmRpZgpAQCAtOTExLDYgKzkzMCw3IEBACiAgICAgaWYgZ2V0bGluZSgxKSAhfiAiXiQiCiAgICAgIGlmICAhZXhpc3RzKCJnOm5ldHJ3X3F1aWV0IikKICAgICAgIGVjaG9lcnIgZ2V0bGluZSgxKQorICAgICAgY2FsbCBpbnB1dHNhdmUoKXxjYWxsIGlucHV0KCJQcmVzcyA8Y3I+IHRvIGNvbnRpbnVlIil8Y2FsbCBpbnB1dHJlc3RvcmUoKQogICAgICBlbmRpZgogICAgICBsZXQgbW9kPTEKICAgICBlbmRpZgpAQCAtOTM5LDYgKzk1OSw3IEBACiAgICBlbHNlaWYgICAgIGI6bmV0cndfbWV0aG9kID09IDUKICAgICBpZiAhZXhpc3RzKCJnOm5ldHJ3X3F1aWV0IikKICAgICAgZWNob2VyciAiKioqd2FybmluZyoqKiBjdXJyZW50bHkgPG5ldHJ3LnZpbT4gZG9lcyBub3Qgc3VwcG9ydCB3cml0aW5nIHVzaW5nIGh0dHA6IgorICAgICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCiAgICAgZW5kaWYKICAKICAgICIuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgpAQCAtMTAzNSw2ICsxMDU2LDcgQEAKICAgIGlmICFleGVjdXRhYmxlKCJmdHAiKQogICAgIGlmICFleGlzdHMoImc6bmV0cndfcXVpZXQiKQogICAgICBlY2hvZXJyICIqKipuZXRydyoqKiB0aGlzIHN5c3RlbSBkb2Vzbid0IHN1cHBvcnQgcmVtb3RlIGRpcmVjdG9yeSBsaXN0aW5nIHZpYSBmdHAiCisgICAgIGNhbGwgaW5wdXRzYXZlKCl8Y2FsbCBpbnB1dCgiUHJlc3MgPGNyPiB0byBjb250aW51ZSIpfGNhbGwgaW5wdXRyZXN0b3JlKCkKICAgICBlbmRpZgogIiAgICBjYWxsIERyZXQoIk5ldEJyb3dzZSIpCiAgICAgcmV0dXJuCkBAIC0xMDQyLDYgKzEwNjQsNyBAQAogICBlbHNlaWYgIWV4aXN0cygiZzpuZXRyd19saXN0X2NtZCIpIHx8IGc6bmV0cndfbGlzdF9jbWQgPT0gJycKICAgIGlmICFleGlzdHMoImc6bmV0cndfcXVpZXQiKQogICAgIGVjaG9lcnIgIioqKm5ldHJ3KioqIHRoaXMgc3lzdGVtIGRvZXNuJ3Qgc3VwcG9ydCByZW1vdGUgZGlyZWN0b3J5IGxpc3RpbmcgdmlhIHNzaCIKKyAgICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCiAgICBlbmRpZgogIiAgIGNhbGwgRHJldCgiTmV0QnJvd3NlIikKICAgIHJldHVybgpAQCAtMTA1MiwyMCArMTA3NSwyMiBAQAogCiAgICIgYW5hbHl6ZSBhOmRpcm5hbWUgYW5kIGc6bmV0cndfbGlzdF9jbWQKICAgbGV0IGRpcnBhdCAgPSAnXlwoXHdcey19XCk6Ly9cKFx3XCtAXClcPVwoW14vXVwrXCkvXCguKlwpJCcKKyAgbGV0IGRpcm5hbWUgPSBzdWJzdGl0dXRlKGE6ZGlybmFtZSwnXFwnLCcvJywnZ2UnKQogIiAgY2FsbCBEZWNobygiZGlycGF0PCIuZGlycGF0LiI+IikKLSAgaWYgYTpkaXJuYW1lICF+IGRpcnBhdAorICBpZiBkaXJuYW1lICF+IGRpcnBhdAogICAgaWYgIWV4aXN0cygiZzpuZXRyd19xdWlldCIpCi0gICAgZWNob2VyciAiTmV0QnJvd3NlOiBJIGRvbid0IHVuZGVyc3RhbmQgeW91ciBkaXJuYW1lPCIuYTpkaXJuYW1lLiI+IgorICAgIGVjaG9lcnIgIk5ldEJyb3dzZTogSSBkb24ndCB1bmRlcnN0YW5kIHlvdXIgZGlybmFtZTwiLmRpcm5hbWUuIj4iCisgICAgY2FsbCBpbnB1dHNhdmUoKXxjYWxsIGlucHV0KCJQcmVzcyA8Y3I+IHRvIGNvbnRpbnVlIil8Y2FsbCBpbnB1dHJlc3RvcmUoKQogICAgZW5kaWYKLSIgICBjYWxsIERyZXQoIk5ldEJyb3dzZSA6IGJhZGx5IGZvcm1hdHRlZCBkaXJuYW1lPCIuYTpkaXJuYW1lLiI+IikKKyIgICBjYWxsIERyZXQoIk5ldEJyb3dzZSA6IGJhZGx5IGZvcm1hdHRlZCBkaXJuYW1lPCIuZGlybmFtZS4iPiIpCiAgICByZXR1cm4KICAgZW5kaWYKIAotICBsZXQgbWV0aG9kICA9IHN1YnN0aXR1dGUoYTpkaXJuYW1lLGRpcnBhdCwnXDEnLCcnKQotICBsZXQgdXNlciAgICA9IHN1YnN0aXR1dGUoYTpkaXJuYW1lLGRpcnBhdCwnXDInLCcnKQotICBsZXQgbWFjaGluZSA9IHN1YnN0aXR1dGUoYTpkaXJuYW1lLGRpcnBhdCwnXDMnLCcnKQotICBsZXQgcGF0aCAgICA9IHN1YnN0aXR1dGUoYTpkaXJuYW1lLGRpcnBhdCwnXDQnLCcnKQotICBsZXQgZm5hbWUgICA9IHN1YnN0aXR1dGUoYTpkaXJuYW1lLCdeLiovXHplLicsJycsJycpCisgIGxldCBtZXRob2QgID0gc3Vic3RpdHV0ZShkaXJuYW1lLGRpcnBhdCwnXDEnLCcnKQorICBsZXQgdXNlciAgICA9IHN1YnN0aXR1dGUoZGlybmFtZSxkaXJwYXQsJ1wyJywnJykKKyAgbGV0IG1hY2hpbmUgPSBzdWJzdGl0dXRlKGRpcm5hbWUsZGlycGF0LCdcMycsJycpCisgIGxldCBwYXRoICAgID0gc3Vic3RpdHV0ZShkaXJuYW1lLGRpcnBhdCwnXDQnLCcnKQorICBsZXQgZm5hbWUgICA9IHN1YnN0aXR1dGUoZGlybmFtZSwnXi4qL1x6ZS4nLCcnLCcnKQogIiAgY2FsbCBEZWNobygic2V0IHVwIG1ldGhvZCA8Ii5tZXRob2QgLiI+IikKICIgIGNhbGwgRGVjaG8oInNldCB1cCB1c2VyICAgPCIudXNlciAgIC4iPiIpCiAiICBjYWxsIERlY2hvKCJzZXQgdXAgbWFjaGluZTwiLm1hY2hpbmUuIj4iKQpAQCAtMTA4Nyw2ICsxMTEyLDcgQEAKICAgIiBvcHRpb25hbGx5IHNvcnQgYnkgdGltZSAoLXQpIG9yIGJ5IHNpemUgKC1TKQogICBpZiBsaXN0Y21kID09ICJkaXIiICYmIGc6bmV0cndfc29ydF9ieSA9fiAiXlt0c10iCiAgICBlY2hvZXJyICIqKip3YXJuaW5nKioqIHdpbmRvd3MnIGZ0cCBkb2Vzbid0IHN1cHBvcnQgdGltZS9zaXplIHNvcnRzIChnZXQgY3lnd2luLCBzZXQgZzpuZXRyd19jeWd3aW4pIgorICAgY2FsbCBpbnB1dHNhdmUoKXxjYWxsIGlucHV0KCJQcmVzcyA8Y3I+IHRvIGNvbnRpbnVlIil8Y2FsbCBpbnB1dHJlc3RvcmUoKQogICBlbHNlCiAgICBpZiBnOm5ldHJ3X3NvcnRfYnkgPX4gIl50IgogICAgIGxldCBsaXN0Y21kPSBsaXN0Y21kLiJ0IgpAQCAtMTEwMiwxNCArMTEyOCwxNCBAQAogIiAgY2FsbCBEZWNobygic2V0IHVwIGxpc3RjbWQ8Ii5saXN0Y21kLiI+IikKICAgaWYgZm5hbWUgPX4gJ0AkJyAmJiBmbmFtZSAhfiAnXiInCiAiICAgY2FsbCBEZWNobygiYXR0ZW1wdCB0cmFuc2ZlciBvZiBzeW1saW5rIGFzIGZpbGUiKQotICAgY2FsbCBzOk5ldEJyb3dzZShzdWJzdGl0dXRlKGE6ZGlybmFtZSwnQCQnLCcnLCdlJykpCisgICBjYWxsIHM6TmV0QnJvd3NlKHN1YnN0aXR1dGUoZGlybmFtZSwnQCQnLCcnLCdlJykpCiAgICByZWRyYXchCiAiICAgY2FsbCBEcmV0KCJOZXRCcm93c2UgOiBzeW1saW5rIikKICAgIHJldHVybgogCi0gIGVsc2VpZiBmbmFtZSAhfiAnLyQnICYmIGZuYW1lICF+ICdeIicKKyAgZWxzZWlmIGZuYW1lICF+ICdbXC9dJCcgJiYgZm5hbWUgIX4gJ14iJwogICAgIiBsb29rcyBsaWtlIGEgcmVndWxhciBmaWxlLCBhdHRlbXB0IHRyYW5zZmVyCi0iICAgY2FsbCBEZWNobygiYXR0ZW1wdCB0cmFuc2ZlciBhcyByZWd1bGFyIGZpbGU8Ii5hOmRpcm5hbWUuIj4iKQorIiAgIGNhbGwgRGVjaG8oImF0dGVtcHQgdHJhbnNmZXIgYXMgcmVndWxhciBmaWxlPCIuZGlybmFtZS4iPiIpCiAKICAgICIgcmVtb3ZlIGFueSBmaWxldHlwZSBpbmRpY2F0b3IgZnJvbSBlbmQgb2YgZGlybmFtZSwgZXhjZXB0IGZvciB0aGUKICAgICIgInRoaXMgaXMgYSBkaXJlY3RvcnkiIGluZGljYXRvciAoLykuICBUaGVyZSBzaG91bGRuJ3QgYmUgb25lIG9mIHRob3NlLApAQCAtMTE1Nyw3ICsxMTgzLDEwIEBACiAiICBjYWxsIERlY2hvKCJleGUgZmlsZSAiLmVzY2FwZShidWZuYW1lLHM6bmV0cndfY2RfZXNjYXBlKSkKICAgZXhlICdmaWxlICcuZXNjYXBlKGJ1Zm5hbWUsczpuZXRyd19jZF9lc2NhcGUpCiAiICBjYWxsIERlY2hvKCJyZW5hbWluZyBmaWxlIHRvIGJ1Zm5hbWU8Ii5idWZuYW1lLiI+IikKLSAgc2V0bG9jYWwgYmg9aGlkZSBub2JsCisgIHNldGxvY2FsIGJoPWhpZGUgbm9ibCBub251CisKKyAgIiBzYXZlIGN1cnJlbnQgZGlyZWN0b3J5IG9uIGRpcmVjdG9yeSBoaXN0b3J5IGxpc3QKKyAgY2FsbCA8U0lEPk5ldEJvb2ttYXJrRGlyKDMsZXhwYW5kKCIlIikpCiAKICAgIiBzZXQgdXAgYnVmZmVyLWxvY2FsIG1hcHBpbmdzCiAiICBjYWxsIERlY2hvKCJzZXQgdXAgYnVmZmVyLWxvY2FsIG1hcHBpbmdzIikKQEAgLTExNzQsNiArMTIwMyw4IEBACiAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IHIJCTpsZXQgZzpuZXRyd19zb3J0X2RpcmVjdGlvbj0gKGc6bmV0cndfc29ydF9kaXJlY3Rpb24gPX4gJ24nKT8gJ3InIDogJ24nPGJhcj5leGUgIm5vcm0hIDAiPGJhcj5jYWxsIDxTSUQ+TmV0QnJvd3NlKDxTSUQ+TmV0QnJvd3NlQ2hnRGlyKGV4cGFuZCgiJSIpLCcuLycpKTxjcj4KICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gcwkJOmNhbGwgPFNJRD5OZXRTYXZlV29yZFBvc24oKTxiYXI+bGV0IGc6bmV0cndfc29ydF9ieT0gKGc6bmV0cndfc29ydF9ieSA9fiAnbicpPyAndGltZScgOiAoZzpuZXRyd19zb3J0X2J5ID1+ICd0Jyk/ICdzaXplJyA6ICduYW1lJzxiYXI+ZXhlICJub3JtISAwIjxiYXI+Y2FsbCA8U0lEPk5ldEJyb3dzZSg8U0lEPk5ldEJyb3dzZUNoZ0RpcihleHBhbmQoIiUiKSwnLi8nKSk8YmFyPmNhbGwgPFNJRD5OZXRSZXN0b3JlV29yZFBvc24oKTxjcj4KICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gUwkJOmNhbGwgPFNJRD5OZXRTb3J0U2VxdWVuY2UoMCk8Y3I+CisgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IHUJCTo8Yy11PmNhbGwgPFNJRD5OZXRCb29rbWFya0Rpcig0LGV4cGFuZCgiJSIpKTxjcj4KKyAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gVQkJOjxjLXU+Y2FsbCA8U0lEPk5ldEJvb2ttYXJrRGlyKDUsZXhwYW5kKCIlIikpPGNyPgogICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiB2CQk6ZXhlIChnOm5ldHJ3X2FsdHY/ICJyaWdodGIgIiA6ICJsZWZ0YSAiKS5nOm5ldHJ3X3dpbnNpemUuIndpbmNtZCB2IjxiYXI+ZXhlICJub3JtISAwIjxiYXI+Y2FsbCA8U0lEPk5ldEJyb3dzZSg8U0lEPk5ldEJyb3dzZUNoZ0RpcihleHBhbmQoIiUiKSw8U0lEPk5ldEdldFdvcmQoKSkpPGNyPgogICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiB4CQk6ZXhlICJub3JtISAwIjxiYXI+Y2FsbCA8U0lEPk5ldEJyb3dzZVgoPFNJRD5OZXRCcm93c2VDaGdEaXIoZXhwYW5kKCIlIiksPFNJRD5OZXRHZXRXb3JkKCkpLDEpPGNyPgogICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiA8Mi1sZWZ0bW91c2U+IDpleGUgIm5vcm0hIDAiPGJhcj5jYWxsIDxTSUQ+TmV0QnJvd3NlKDxTSUQ+TmV0QnJvd3NlQ2hnRGlyKGV4cGFuZCgiJSIpLDxTSUQ+TmV0R2V0V29yZCgpKSk8Y3I+CkBAIC0xMTg1LDcgKzEyMTYsNyBAQAogICBleGUgJ25ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IFIJOmV4ZSAibm9ybSEgMCI8YmFyPmNhbGwgPFNJRD5OZXRCcm93c2VSZW5hbWUoIicudXNlci5tYWNoaW5lLiciLCInLnBhdGguJyIpPGNyPicKICAgZXhlICd2bm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBSCTpjYWxsIDxTSUQ+TmV0QnJvd3NlUmVuYW1lKCInLnVzZXIubWFjaGluZS4nIiwiJy5wYXRoLiciKTxjcj4nCiAgIG5ub3JlbWFwIDxidWZmZXI+ID8JCQk6aGUgbmV0cnctYnJvd3NlLWNtZHM8Y3I+Ci0gIHNldGxvY2FsIG1hCisgIHNldGxvY2FsIG1hIG5vbnUKIAogICAiIFNldCB1cCB0aGUgYmFubmVyCiAiICBjYWxsIERlY2hvKCJzZXQgdXAgdGhlIGJhbm5lcjogc29ydGJ5PCIuZzpuZXRyd19zb3J0X2J5LiI+IG1ldGhvZDwiLm1ldGhvZC4iPiIpCkBAIC0xMjA5LDkgKzEyNDAsOSBAQAogICBlbmRpZgogICBpZiBnOm5ldHJ3X2xpc3RfaGlkZSAhPSAiIiAmJiBnOm5ldHJ3X2hpZGUKICAgIGlmIGc6bmV0cndfaGlkZSA9PSAxCi0gICAga2VlcGp1bXBzIHB1dCA9J1wiICAgSGlkaW5nOiAnLmc6bmV0cndfbGlzdF9oaWRlCisgICAga2VlcGp1bXBzIHB1dCA9J1wiICAgSGlkaW5nOiAgICAgICAgJy5nOm5ldHJ3X2xpc3RfaGlkZQogICAgZWxzZQotICAgIGtlZXBqdW1wcyBwdXQgPSdcIiAgIFNob3dpbmc6ICcuZzpuZXRyd19saXN0X2hpZGUKKyAgICBrZWVwanVtcHMgcHV0ID0nXCIgICBTaG93aW5nOiAgICAgICAnLmc6bmV0cndfbGlzdF9oaWRlCiAgICBlbmRpZgogICAgbGV0IHM6bmV0cndfYmFubmVyY250PSBzOm5ldHJ3X2Jhbm5lcmNudCArIDEKICAgZW5kaWYKQEAgLTEyMzIsMTAgKzEyNjMsMTEgQEAKICAgICAiIHNob3J0ZW4gdGhlIGxpc3RpbmcKICIgICAgY2FsbCBEZWNobygiZ2VuZXJhdGUgc2hvcnQgbGlzdGluZyIpCiAgICAgZXhlICJrZWVwanVtcHMgIi5zOm5ldHJ3X2Jhbm5lcmNudAorCiAgICAgIiBjbGVhbnVwCi0gICAgd2hpbGUgZ2V0bGluZSgiLiIpID1+IGc6bmV0cndfZnRwX2Jyb3dzZV9yZWplY3QKLSAgICAga2VlcGp1bXBzIGQKLSAgICBlbmR3aGlsZQorICAgIGlmIGc6bmV0cndfZnRwX2Jyb3dzZV9yZWplY3QgIT0gIiIKKyAgICAgZXhlICJzaWxlbnQhIGcvIi5nOm5ldHJ3X2Z0cF9icm93c2VfcmVqZWN0LiIva2VlcGp1bXBzIGQiCisgICAgZW5kaWYKIAogICAgICIgaWYgdGhlcmUncyBubyAuLi8gbGlzdGVkLCB0aGVuIHB1dCAuLyBhbmQgLi4vIGluCiAgICAgbGV0IGxpbmUxPSBsaW5lKCIuIikKQEAgLTEyNjIsNiArMTI5NCwxMCBAQAogIiAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQgciEgIi5saXN0Y21kLiIgIi5zaHEuZXNjYXBlKHBhdGgsczpuZXRyd19jZF9lc2NhcGUpLnNocSkKICAgIGV4ZSAic2lsZW50IHIhICIubGlzdGNtZC4iICIuc2hxLmVzY2FwZShwYXRoLHM6bmV0cndfY2RfZXNjYXBlKS5zaHEKICAgIGtlZXBqdW1wcyAxZAorICAgIiBjbGVhbnVwCisgICBpZiBnOm5ldHJ3X2Z0cF9icm93c2VfcmVqZWN0ICE9ICIiCisgICAgZXhlICJzaWxlbnQhIGcvIi5nOm5ldHJ3X3NzaF9icm93c2VfcmVqZWN0LiIva2VlcGp1bXBzIGQiCisgICAgZW5kaWYKICAgZW5kaWYKIAogICAiIG1hbmlwdWxhdGUgdGhlIGRpcmVjdG9yeSBsaXN0aW5nIChoaWRlLCBzb3J0KQpAQCAtMTI5OSwxOSArMTMzNSwyMiBAQAogICAgIGV4ZSBzOm5ldHJ3X2Jhbm5lcmNudAogICAgZW5kaWYKIAotICAgaWYgZzpuZXRyd19zb3J0X2J5ID1+ICJebiIKLSAgICBjYWxsIHM6U2V0U29ydCgpCi0gICAgZXhlICdrZWVwanVtcHMgc2lsZW50ICcuczpuZXRyd19iYW5uZXJjbnQuJywkY2FsbCBzOk5ldFNvcnQoKScKLSAgICBleGUgJ2tlZXBqdW1wcyBzaWxlbnQgJy5zOm5ldHJ3X2Jhbm5lcmNudC4nLCRzL15cZFx7M31cLy8vZScKLSAgIGVuZGlmCi0gICBpZiBnOm5ldHJ3X2xvbmdsaXN0Ci0gICAgIiBzaG9ydGVuIHRoZSBsaXN0IHRvIGtlZXAgaXRzIHdpZHRoIDw9IDgwIGNoYXJhY3RlcnMKLSAgICBleGUgImtlZXBqdW1wcyBzaWxlbnQgIi5zOm5ldHJ3X2Jhbm5lcmNudC4nLCRzL1x0Wy1kc3Ryd3hdXCsvXHQvZScKKyAgIGlmIGxpbmUoIiQiKSA+PSBzOm5ldHJ3X2Jhbm5lcmNudAorICAgIGlmIGc6bmV0cndfc29ydF9ieSA9fiAiXm4iCisgICAgIGNhbGwgczpTZXRTb3J0KCkKKyAgICAgZXhlICdrZWVwanVtcHMgc2lsZW50ICcuczpuZXRyd19iYW5uZXJjbnQuJywkY2FsbCBzOk5ldFNvcnQoKScKKyAgICAgZXhlICdrZWVwanVtcHMgc2lsZW50ICcuczpuZXRyd19iYW5uZXJjbnQuJywkcy9eXGRcezN9XC8vL2UnCisgICAgZW5kaWYKKyAgICBpZiBnOm5ldHJ3X2xvbmdsaXN0CisgICAgICIgc2hvcnRlbiB0aGUgbGlzdCB0byBrZWVwIGl0cyB3aWR0aCA8PSA4MCBjaGFyYWN0ZXJzCisgICAgIGV4ZSAia2VlcGp1bXBzIHNpbGVudCAiLnM6bmV0cndfYmFubmVyY250LicsJHMvXHRbLWRzdHJ3eF1cKy9cdC9lJworICAgIGVuZGlmCiAgICBlbmRpZgogICBlbmRpZgogICBleGUgImtlZXBqdW1wcyAiLnM6bmV0cndfYmFubmVyY250CiAgIHNldGxvY2FsIG5vbW9kCiAgIHNldGxvY2FsIG5vbWEKKyAgc2V0bG9jYWwgbm9udQogCiAiICBjYWxsIERyZXQoIk5ldEJyb3dzZSIpCiAgIHJldHVybgpAQCAtMTMyNSw3ICsxMzY0LDcgQEAKICAgbGV0IGRpcm5hbWU9IGE6ZGlybmFtZQogICBsZXQgbmV3ZGlyID0gYTpuZXdkaXIKIAotICBpZiBuZXdkaXIgIX4gJy8kJworICBpZiBuZXdkaXIgIX4gJ1tcL10kJwogICAgIiBoYW5kbGluZyBhIGZpbGUKICAgIGxldCBkaXJuYW1lPSBkaXJuYW1lLm5ld2RpcgogIiAgIGNhbGwgRGVjaG8oImhhbmRsaW5nIGEgZmlsZTogZGlybmFtZTwiLmRpcm5hbWUuIj4iKQpAQCAtMTM5NCw3ICsxNDMzLDcgQEAKICAgIGxldCBybWZpbGU9IHM6TmV0R2V0V29yZCgpCiAiICAgY2FsbCBEZWNobygicm1maWxlPCIucm1maWxlLiI+IikKIAotICAgaWYgcm1maWxlICF+ICdeIicgJiYgKHJtZmlsZSA9fiAnQCQnIHx8IHJtZmlsZSAhfiAnLyQnKQorICAgaWYgcm1maWxlICF+ICdeIicgJiYgKHJtZmlsZSA9fiAnQCQnIHx8IHJtZmlsZSAhfiAnW1wvXSQnKQogICAgICIgYXR0ZW1wdCB0byByZW1vdmUgZmlsZQogICAgIGlmICFhbGwKICAgICAgZWNob2hsIFN0YXRlbWVudApAQCAtMTQ0NSwxMyArMTQ4NCwxNCBAQAogIiAgICAgIGNhbGwgRGVjaG8oInJldHVybmVkPSIucmV0LiIgZXJyY29kZT0iLnY6c2hlbGxfZXJyb3IpCiAKICAgICAgIGlmIHY6c2hlbGxfZXJyb3IgIT0gMAotICAgICAgIGxldCBuZXRyd19ybWZfY21kPSBzdWJzdGl0dXRlKGc6bmV0cndfcm1mX2NtZCwnSE9TVE5BTUUnLGE6dXNyaG9zdCwnJykuJyAnLnN1YnN0aXR1dGUocm1maWxlLCcvJCcsJycsJ2UnKQorICAgICAgIGxldCBuZXRyd19ybWZfY21kPSBzdWJzdGl0dXRlKGc6bmV0cndfcm1mX2NtZCwnSE9TVE5BTUUnLGE6dXNyaG9zdCwnJykuJyAnLnN1YnN0aXR1dGUocm1maWxlLCdbXC9dJCcsJycsJ2UnKQogIiAgICAgICBjYWxsIERlY2hvKCIybmQgYXR0ZW1wdCB0byByZW1vdmUgZGlyOiBzeXN0ZW0oIi5uZXRyd19ybWZfY21kLiIpIikKICAgICAgICBsZXQgcmV0PSBzeXN0ZW0obmV0cndfcm1mX2NtZCkKICIgICAgICAgY2FsbCBEZWNobygicmV0dXJuZWQ9Ii5yZXQuIiBlcnJjb2RlPSIudjpzaGVsbF9lcnJvcikKICAgICAgCiAgICAgICAgaWYgdjpzaGVsbF9lcnJvciAhPSAwICYmICFleGlzdHMoImc6bmV0cndfcXVpZXQiKQogICAgICAgICBlY2hvZXJyICJ1bmFibGUgdG8gcmVtb3ZlIGRpcmVjdG9yeTwiLnJtZmlsZS4iPiAtLSBpcyBpdCBlbXB0eT8iCisgICAgICAgIGNhbGwgaW5wdXRzYXZlKCl8Y2FsbCBpbnB1dCgiUHJlc3MgPGNyPiB0byBjb250aW51ZSIpfGNhbGwgaW5wdXRyZXN0b3JlKCkKICAgICAgICBlbmRpZgogICAgICAgZW5kaWYKICAgICAgZW5kaWYKQEAgLTE4MTcsNiArMTg1Nyw3IEBACiAgICBpZiBpc2RpcmVjdG9yeShmdWxsbmV3ZGlyKQogICAgIGlmICFleGlzdHMoImc6bmV0cndfcXVpZXQiKQogICAgICBlY2hvZXJyICIqKip3YXJuaW5nKioqIDwiLm5ld2Rpcm5hbWUuIj4gaXMgYWxyZWFkeSBhIGRpcmVjdG9yeSEiCisgICAgIGNhbGwgaW5wdXRzYXZlKCl8Y2FsbCBpbnB1dCgiUHJlc3MgPGNyPiB0byBjb250aW51ZSIpfGNhbGwgaW5wdXRyZXN0b3JlKCkKICAgICBlbmRpZgogIiAgICBjYWxsIERyZXQoIk5ldE1ha2VEaXIgOiBkaXJlY3Rvcnk8Ii5uZXdkaXJuYW1lLiI+IGV4aXN0cyBwcmV2aW91c2x5IikKICAgICByZXR1cm4KQEAgLTE4MjQsNiArMTg2NSw3IEBACiAgICBpZiBmaWxlcmVhZGFibGUoZnVsbG5ld2RpcikKICAgICBpZiAhZXhpc3RzKCJnOm5ldHJ3X3F1aWV0IikKICAgICAgZWNob2VyciAiKioqd2FybmluZyoqKiA8Ii5uZXdkaXJuYW1lLiI+IGlzIGFscmVhZHkgYSBmaWxlISIKKyAgICAgY2FsbCBpbnB1dHNhdmUoKXxjYWxsIGlucHV0KCJQcmVzcyA8Y3I+IHRvIGNvbnRpbnVlIil8Y2FsbCBpbnB1dHJlc3RvcmUoKQogICAgIGVuZGlmCiAiICAgIGNhbGwgRHJldCgiTmV0TWFrZURpciA6IGZpbGU8Ii5uZXdkaXJuYW1lLiI+IGV4aXN0cyBwcmV2aW91c2x5IikKICAgICByZXR1cm4KQEAgLTE4NDYsNiArMTg4OCw3IEBACiAgICAgZXhlIGxpbmVudW0KICAgIGVsc2VpZiAhZXhpc3RzKCJnOm5ldHJ3X3F1aWV0IikKICAgICBlY2hvZXJyICIqKip3YXJuaW5nKioqIHVuYWJsZSB0byBtYWtlIGRpcmVjdG9yeTwiLm5ld2Rpcm5hbWUuIj4iCisgICAgY2FsbCBpbnB1dHNhdmUoKXxjYWxsIGlucHV0KCJQcmVzcyA8Y3I+IHRvIGNvbnRpbnVlIil8Y2FsbCBpbnB1dHJlc3RvcmUoKQogICAgZW5kaWYKICAgIHJlZHJhdyEKIApAQCAtMTg2NSw2ICsxOTA4LDcgQEAKICAgICBleGUgbGluZW51bQogICAgZWxzZWlmICFleGlzdHMoImc6bmV0cndfcXVpZXQiKQogICAgIGVjaG9lcnIgIioqKndhcm5pbmcqKiogdW5hYmxlIHRvIG1ha2UgZGlyZWN0b3J5PCIubmV3ZGlybmFtZS4iPiIKKyAgICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCiAgICBlbmRpZgogICAgcmVkcmF3IQogICBlbmRpZgpAQCAtMTg5NiwxNyArMTk0MCw3MSBAQAogICAgIGVjaG9tc2cgIlNvcnJ5LCBib29rbWFyayMiLnY6Y291bnQuIiBkb2Vzbid0IGV4aXN0ISIKICAgIGVuZGlmCiAKLSAgZWxzZWlmIGV4aXN0cygiZzpORVRSV19CT09LTUFSS01BWCIpCi0gICAiIGxpc3QgYm9va21hcmtzCi0iICAgY2FsbCBEZWNobygibGlzdCBib29rbWFya3MgWzAsIi5nOk5FVFJXX0JPT0tNQVJLTUFYLiJdIikKLSAgIGxldCBjbnQ9IDAKLSAgIHdoaWxlIGNudCA8PSBnOk5FVFJXX0JPT0tNQVJLTUFYCi0gICAgaWYgZXhpc3RzKCJnOk5FVFJXX0JPT0tNQVJLRElSX3tjbnR9IikKLSAgICAgZWNobyAiTmV0cncgQm9va21hcmsjIi5jbnQuIjogIi5nOk5FVFJXX0JPT0tNQVJLRElSX3tjbnR9Ci0iICAgICBjYWxsIERlY2hvKCJOZXRydyBCb29rbWFyayMiLmNudC4iOiAiLmc6TkVUUldfQk9PS01BUktESVJfe2NudH0pCisgIGVsc2VpZiBhOmNoZyA9PSAyCisgICBpZiBleGlzdHMoImc6TkVUUldfQk9PS01BUktNQVgiKQorICAgICIgbGlzdCB1c2VyJ3MgYm9va21hcmtzCisiICAgIGNhbGwgRGVjaG8oImxpc3QgYm9va21hcmtzIFswLCIuZzpORVRSV19CT09LTUFSS01BWC4iXSIpCisgICAgbGV0IGNudD0gMAorICAgIHdoaWxlIGNudCA8PSBnOk5FVFJXX0JPT0tNQVJLTUFYCisgICAgIGlmIGV4aXN0cygiZzpORVRSV19CT09LTUFSS0RJUl97Y250fSIpCisiICAgICAgY2FsbCBEZWNobygiTmV0cncgQm9va21hcmsjIi5jbnQuIjogIi5nOk5FVFJXX0JPT0tNQVJLRElSX3tjbnR9KQorICAgICAgZWNobyAiTmV0cncgQm9va21hcmsjIi5jbnQuIjogIi5nOk5FVFJXX0JPT0tNQVJLRElSX3tjbnR9CisgICAgIGVuZGlmCisgICAgIGxldCBjbnQ9IGNudCArIDEKKyAgICBlbmR3aGlsZQorICAgZW5kaWYKKworICAgIiBsaXN0IGRpcmVjdG9yeSBoaXN0b3J5CisgICBsZXQgY250ICAgICA9IGc6TkVUUldfRElSSElTVF9DTlQKKyAgIGxldCBmaXJzdCAgID0gMQorICAgbGV0IGhpc3RjbnQgPSAwCisgICB3aGlsZSAoIGZpcnN0IHx8IGNudCAhPSBnOk5FVFJXX0RJUkhJU1RfQ05UICkKKyIgICAgY2FsbCBEZWNobygiZmlyc3Q9Ii5maXJzdC4iIGNudD0iLmNudC4iIGRpcmhpc3RfY250PSIuZzpORVRSV19ESVJISVNUX0NOVCkKKyAgICBsZXQgaGlzdGNudD0gaGlzdGNudCArIDEKKyAgICBpZiBleGlzdHMoImc6TkVUUldfRElSSElTVF97Y250fSIpCisiICAgICBjYWxsIERlY2hvKCJOZXRydyAgSGlzdG9yeSMiLmhpc3RjbnQuIjogIi5nOk5FVFJXX0RJUkhJU1Rfe2NudH0pCisgICAgIGVjaG8gIk5ldHJ3ICBIaXN0b3J5IyIuaGlzdGNudC4iOiAiLmc6TkVUUldfRElSSElTVF97Y250fQogICAgIGVuZGlmCi0gICAgbGV0IGNudD0gY250ICsgMQorICAgIGxldCBmaXJzdCA9IDAKKyAgICBsZXQgY250ICAgPSAoIGNudCAtIDEgKSAlIGc6bmV0cndfZGlyaGlzdG1heAorICAgIGlmIGNudCA8IDAKKyAgICAgbGV0IGNudD0gY250ICsgZzpuZXRyd19kaXJoaXN0bWF4CisgICAgZW5kaWYKICAgIGVuZHdoaWxlCisKKyAgZWxzZWlmIGE6Y2hnID09IDMKKyAgICIgc2F2ZXMgbW9zdCByZWNlbnRseSB2aXNpdGVkIGRpcmVjdG9yaWVzCisgICBsZXQgZzpORVRSV19ESVJISVNUX0NOVD0gKCBnOk5FVFJXX0RJUkhJU1RfQ05UICsgMSApICUgZzpuZXRyd19kaXJoaXN0bWF4CisgICBsZXQgZzpORVRSV19ESVJISVNUX3tnOk5FVFJXX0RJUkhJU1RfQ05UfT0gc3Vic3RpdHV0ZShhOmN1cmRpciwnWy9cXF0kJywnJywnZScpCisiICAgY2FsbCBEZWNobygic2F2ZSBkaXJoaXN0IyIuZzpORVRSV19ESVJISVNUX0NOVC4iPCIuZzpORVRSV19ESVJISVNUX3tnOk5FVFJXX0RJUkhJU1RfQ05UfS4iPiIpCisKKyAgZWxzZWlmIGE6Y2hnID09IDQKKyAgICIgdTogY2hhbmdlIHRvIHRoZSBwcmV2aW91cyBkaXJlY3Rvcnkgc3RvcmVkIG9uIHRoZSBoaXN0b3J5IGxpc3QKKyAgIGxldCBnOk5FVFJXX0RJUkhJU1RfQ05UPSAoIGc6TkVUUldfRElSSElTVF9DTlQgLSAxICkgJSBnOm5ldHJ3X2Rpcmhpc3RtYXgKKyAgIGlmIGc6TkVUUldfRElSSElTVF9DTlQgPCAwCisgICAgbGV0IGc6TkVUUldfRElSSElTVF9DTlQ9IGc6TkVUUldfRElSSElTVF9DTlQgKyBnOm5ldHJ3X2Rpcmhpc3RtYXgKKyAgIGVuZGlmCisgICBpZiBleGlzdHMoImc6TkVUUldfRElSSElTVF97ZzpORVRSV19ESVJISVNUX0NOVH0iKQorIiAgICBjYWxsIERlY2hvKCJjaGFuZ2VkaXIgdSMiLmc6TkVUUldfRElSSElTVF9DTlQuIjwiLmc6TkVUUldfRElSSElTVF97ZzpORVRSV19ESVJISVNUX0NOVH0uIj4iKQorICAgIGV4ZSAiZSAiLmc6TkVUUldfRElSSElTVF97ZzpORVRSV19ESVJISVNUX0NOVH0KKyAgIGVsc2UKKyAgICBsZXQgZzpORVRSV19ESVJISVNUX0NOVD0gKCBnOk5FVFJXX0RJUkhJU1RfQ05UICsgMSApICUgZzpuZXRyd19kaXJoaXN0bWF4CisgICAgZWNobyAiU29ycnksIG5vIHByZWRlY2Vzc29yIGRpcmVjdG9yeSBleGlzdHMgeWV0IgorICAgZW5kaWYKKworICBlbHNlaWYgYTpjaGcgPT0gNQorICAgIiBVOiBjaGFuZ2UgdG8gdGhlIHN1YnNlcXVlbnQgZGlyZWN0b3J5IHN0b3JlZCBvbiB0aGUgaGlzdG9yeSBsaXN0CisgICBsZXQgZzpORVRSV19ESVJISVNUX0NOVD0gKCBnOk5FVFJXX0RJUkhJU1RfQ05UICsgMSApICUgZzpuZXRyd19kaXJoaXN0bWF4CisgICBpZiBleGlzdHMoImc6TkVUUldfRElSSElTVF97ZzpORVRSV19ESVJISVNUX0NOVH0iKQorIiAgICBjYWxsIERlY2hvKCJjaGFuZ2VkaXIgVSMiLmc6TkVUUldfRElSSElTVF9DTlQuIjwiLmc6TkVUUldfRElSSElTVF97ZzpORVRSV19ESVJISVNUX0NOVH0uIj4iKQorICAgIGV4ZSAiZSAiLmc6TkVUUldfRElSSElTVF97ZzpORVRSV19ESVJISVNUX0NOVH0KKyAgIGVsc2UKKyAgICBsZXQgZzpORVRSV19ESVJISVNUX0NOVD0gKCBnOk5FVFJXX0RJUkhJU1RfQ05UIC0gMSApICUgZzpuZXRyd19kaXJoaXN0bWF4CisgICAgaWYgZzpORVRSV19ESVJISVNUX0NOVCA8IDAKKyAgICAgbGV0IGc6TkVUUldfRElSSElTVF9DTlQ9IGc6TkVUUldfRElSSElTVF9DTlQgKyBnOm5ldHJ3X2Rpcmhpc3RtYXgKKyAgICBlbmRpZgorICAgIGVjaG8gIlNvcnJ5LCBubyBzdWNjZXNzb3IgZGlyZWN0b3J5IGV4aXN0cyB5ZXQiCisgICBlbmRpZgogICBlbmRpZgogIiAgY2FsbCBEcmV0KCJOZXRCb29rbWFya0RpciIpCiBlbmRmdW4KQEAgLTE5MzMsNiArMjAzMSw3IEBACiAgIGlmIHY6dmVyc2lvbiA8IDYwMwogICAgaWYgIWV4aXN0cygiZzpuZXRyd19xdWlldCIpCiAgICAgZWNob2VyciAidmltIHZlcnNpb248Ii52OnZlcnNpb24uIj4gdG9vIG9sZCBmb3IgYnJvd3Npbmcgd2l0aCBuZXRydyIKKyAgICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCiAgICBlbmRpZgogIiAgIGNhbGwgRHJldCgiTG9jYWxCcm93c2UgOiB2aW0gdmVyc2lvbjwiLnY6dmVyc2lvbi4iPiB0b28gb2xkIikKICAgIHJldHVybgpAQCAtMTk0MSw4ICsyMDQwLDcgQEAKICAgIiByZWNvcmQgYW5kIGNoYW5nZSBjdXJyZW50IGRpcmVjdG9yeQogICBsZXQgbmV0cndfb3JpZ2Rpcj0gczpOZXRHZXRjd2QoMSkKICAgZXhlICdjZCAnLmVzY2FwZShzdWJzdGl0dXRlKGE6ZGlybmFtZSwnXFwnLCcvJywnZ2UnKSxzOm5ldHJ3X2NkX2VzY2FwZSkKLSAgbGV0IGRpcm5hbWU9IHM6TmV0R2V0Y3dkKDApCi0iICBjYWxsIERlY2hvKCJkaXJuYW1lPCIuZGlybmFtZS4iPiBidWYjIi5idWZucigiJSIpLiIgd2lubnI9Ii53aW5ucigpKQorIiAgY2FsbCBEZWNobygiZGlybmFtZTwiLmE6ZGlybmFtZS4iPiBidWYjIi5idWZucigiJSIpLiIgd2lubnI9Ii53aW5ucigpKQogCiAgICIgbWFrZSB0aGlzIGJ1ZmZlciBtb2RpZmlhYmxlCiAgIHNldGxvY2FsIG1hCkBAIC0xOTUxLDEyICsyMDQ5LDE3IEBACiAgICIgIFBlcmZvcm0gRGlyZWN0b3J5IExpc3Rpbmc6CiAiICBjYWxsIERlY2hvKCJQZXJmb3JtIGRpcmVjdG9yeSBsaXN0aW5nLi4uIikKICAgIiBzZXQgdXAgbmV3IGJ1ZmZlciBhbmQgbWFwCi0gICIgcmVtb3ZlIHRoZSB0cmFpbGluZyAiLyIKLSAgbGV0IGRpcm5hbWVucz0gc3Vic3RpdHV0ZShkaXJuYW1lLCcvJCcsJycsJ2UnKQotICBsZXQgZGlybmFtZW5yPSBidWZucihkaXJuYW1lbnMuJyQnKQorICAiIGRpcm5hbWUgICA6IGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnksIG5vIGVzY2FwZXMsIGhhcyB0cmFpbGluZyAvCisgICIgZGlybmFtZW5zIDogZGlybmFtZSwgYnV0IHdpdGggbm8gdHJhaWxpbmcgc2xhc2gKKyAgIiBkaXJuYW1lbnIgOiBidWZmZXIgbnVtYmVyIGNvbnRhaW5pbmcgZGlybmFtZW5zCisgICIgZGlybmFtZWJ1ZjogYnVmZmVyJ3MgaWRlYSBvZiBkaXJuYW1lLCB3aXRoIGFsbCBcIC0+IC8KKyAgbGV0IGRpcm5hbWUgICAgPSBzOk5ldEdldGN3ZCgwKQorICBsZXQgZGlybmFtZW5zICA9IHN1YnN0aXR1dGUoZGlybmFtZSwnW1wvXSQnLCcnLCdlJykKKyAgbGV0IGRpcm5hbWVuciAgPSBidWZucihkaXJuYW1lbnMuJyQnKQorICBsZXQgZGlybmFtZWJ1ZiA9IHN1YnN0aXR1dGUoYnVmbmFtZShkaXJuYW1lbnIpLCdcXCcsJy8nLCdnZScpCiAiICBjYWxsIERlY2hvKCJkaXJuYW1lbnI9IGJ1Zm5yKCIuZGlybmFtZW5zLiIpPSIuZGlybmFtZW5yLiIgYnVmbmFtZSgiLmRpcm5hbWVuci4iKT0iLmJ1Zm5hbWUoZGlybmFtZW5yKSkKIAotICBpZiBkaXJuYW1lbnIgIT0gMCAmJiBidWZuYW1lKGRpcm5hbWVucikgIT0gZGlybmFtZW5zCisgIGlmIGRpcm5hbWVuciAhPSAwICYmIGRpcm5hbWVidWYgIT0gZGlybmFtZW5zCiAgICAiIHRyeSBrZWVwaW5nIHRoZSB0cmFpbGluZyBzbGFzaAogICAgbGV0IGRpcm5hbWVuciA9IGJ1Zm5yKGRpcm5hbWUuJyQnKQogIiAgIGNhbGwgRGVjaG8oImRpcm5hbWVucj0gYnVmbnIoIi5kaXJuYW1lLiIpPSIuZGlybmFtZW5yLiIgYnVmbmFtZSgiLmRpcm5hbWVuci4iKT0iLmJ1Zm5hbWUoZGlybmFtZW5yKS4iIChyZXRyeSB3aXRoIC8pIikKQEAgLTE5NjcsNyArMjA3MCw3IEBACiAiICAgY2FsbCBEZWNobygiYnVmZmVyIGFscmVhZHkgZXhpc3RzOiBkaXJuYW1lbnI9Ii5kaXJuYW1lbnIuIiBkaXJuYW1lPCIuZGlybmFtZS4iPiBwcmUtZXhpc3RzIikKICIgICBjYWxsIERyZWRpcigibHMhIikKICAgIGV4ZSAiYiAiLmRpcm5hbWVucgotICAgZXhlICdzaWxlbnQhIGNkICcuZXNjYXBlKHN1YnN0aXR1dGUoYTpkaXJuYW1lLCdcXCcsJy8nLCdnZScpLHM6bmV0cndfY2RfZXNjYXBlKQorICAgZXhlICdzaWxlbnQhIGNkICcuZXNjYXBlKGRpcm5hbWUsczpuZXRyd19jZF9lc2NhcGUpCiAiICAgY2FsbCBEZWNobygiY2hhbmdlZCBkaXJlY3RvcnkgdG88Ii5kaXJuYW1lLiI+IikKICAgIGlmIGE6ZGlybmFtZSAhPSAiLiIgJiYgbGluZSgiJCIpID49IDUgJiYgZXhpc3RzKCJiOm5ldHJ3X2N1cmRpciIpCiAgICAgaWYgYjpuZXRyd19jdXJkaXIgPT0gZGlybmFtZQpAQCAtMTk4MCwxMSArMjA4MywxMyBAQAogIiAgIGNhbGwgRGVjaG8oImJ1ZmZlciBuYW1lPCIuYnVmbmFtZSgiJSIpLiI+IGRpcm5hbWU8Ii5kaXJuYW1lLiI+IikKICAgIHNldGxvY2FsIG1hCiAgICBrZWVwanVtcHMgJWQKLSAgIGlmIGV4cGFuZCgiJSIpICE9IGRpcm5hbWUKKyAgIGxldCBjdXJkaXI9IHN1YnN0aXR1dGUoc3Vic3RpdHV0ZShleHBhbmQoIiUiKSwnXFwnLCcvJywnZ2UnKSwnW14vXSQnLCcmLycsJ2UnKQorICAgaWYgY3VyZGlyICE9IGRpcm5hbWUKICAgICAiIHNldCBzdGFuZGFyZCBicm93c2VyIG9wdGlvbnMgb24gYnVmZmVyCiAgICAgc2V0bG9jYWwgYnQ9bm9maWxlIGJoPWhpZGUgbm9ibCBub3N3ZgogICAgIGV4ZSAic2V0bG9jYWwgdHM9Ii5nOm5ldHJ3X21heGZpbGVuYW1lbGVuCi0gICAgZXhlICdzaWxlbnQhIGZpbGUgJy5lc2NhcGUoZGlybmFtZSxzOm5ldHJ3X2NkX2VzY2FwZSkKKyAgICBleGUgJ3NpbGVudCBmaWxlICcuZXNjYXBlKGRpcm5hbWUsczpuZXRyd19jZF9lc2NhcGUpCisiICAgIGNhbGwgRGVjaG8oImVycm1zZzE8Ii52OmVycm1zZy4iPiIpCiAiICAgIGNhbGwgRGVjaG8oInJlbmFtZWQgYnVmZmVyIHRvPCIuZXNjYXBlKGRpcm5hbWUsczpuZXRyd19jZF9lc2NhcGUpLiI+IikKICIgICAgY2FsbCBEZWNobygieWllbGRpbmcgYWN0dWFsIGJ1Zm5hbWU8Ii5idWZuYW1lKCIlIikuIj4iKQogICAgZW5kaWYKQEAgLTE5OTIsMTAgKzIwOTcsMTEgQEAKICIgICBjYWxsIERlY2hvKCJnZW5lcmF0ZSBuZXcgYnVmZmVyIG5hbWVkPCIuZXNjYXBlKGRpcm5hbWUsJyAjJykuIj4iKQogICAgc2lsZW50ISBlbmV3IQogICAgIiBzZXQgc3RhbmRhcmQgYnJvd3NlciBvcHRpb25zIG9uIGJ1ZmZlcgotICAgc2V0bG9jYWwgYnQ9bm9maWxlIGJoPWhpZGUgbm9ibCBub3N3ZgorICAgc2V0bG9jYWwgYnQ9bm9maWxlIGJoPWhpZGUgbm9ibCBub3N3ZiBub251CiAgICBleGUgInNldGxvY2FsIHRzPSIuZzpuZXRyd19tYXhmaWxlbmFtZWxlbgotICAgZXhlICdzaWxlbnQhIGZpbGUgJy5zdWJzdGl0dXRlKGVzY2FwZShkaXJuYW1lLHM6bmV0cndfY2RfZXNjYXBlKSwnLyQnLCcnLCdlJykKLSIgICBjYWxsIERlY2hvKCJyZW5hbWVkIGJ1ZmZlciB0bzwiLnN1YnN0aXR1dGUoZXNjYXBlKGRpcm5hbWUsczpuZXRyd19jZF9lc2NhcGUpLCcvJCcsJycsJ2UnKS4iPiIpCisgICBleGUgJ3NpbGVudCBmaWxlICcuc3Vic3RpdHV0ZShlc2NhcGUoZGlybmFtZSxzOm5ldHJ3X2NkX2VzY2FwZSksJ1tcL10kJywnJywnZScpCisiICAgY2FsbCBEZWNobygiZXJybXNnMjwiLnY6ZXJybXNnLiI+IikKKyIgICBjYWxsIERlY2hvKCJyZW5hbWVkIGJ1ZmZlciB0bzwiLnN1YnN0aXR1dGUoZXNjYXBlKGRpcm5hbWUsczpuZXRyd19jZF9lc2NhcGUpLCdbXC9dJCcsJycsJ2UnKS4iPiIpCiAiICAgY2FsbCBEZWNobygieWllbGRpbmcgYWN0dWFsIGJ1Zm5hbWU8Ii5idWZuYW1lKCIlIikuIj4iKQogICBlbmRpZgogICBpZiBidWZuYW1lKCIjIikgPT0gIiIgJiYgYnVmbnIoIiMiKSAhPSAtMQpAQCAtMjAwNCw2ICsyMTEwLDkgQEAKICAgIGV4ZSBidWZucigiIyIpLiJid2lwZSIKICAgZW5kaWYKIAorICAiIHNhdmUgY3VycmVudCBkaXJlY3Rvcnkgb24gZGlyZWN0b3J5IGhpc3RvcnkgbGlzdAorICBjYWxsIDxTSUQ+TmV0Qm9va21hcmtEaXIoMyxzOk5ldEdldGN3ZCgwKSkKKwogICAiIHNldCB1cCBhbGwgdGhlIG1hcHMKICIgIGNhbGwgRGVjaG8oIlNldHRpbmcgdXAgbG9jYWwgYnJvd3NlciBtYXBzIikKICAgbGV0IGI6bmV0cndfY3VyZGlyPSBzOk5ldEdldGN3ZCgxKQpAQCAtMjAyMyw2ICsyMTMyLDggQEAKICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gcgkJOmxldCBnOm5ldHJ3X3NvcnRfZGlyZWN0aW9uPSAoZzpuZXRyd19zb3J0X2RpcmVjdGlvbiA9fiAnbicpPyAncicgOiAnbic8YmFyPmV4ZSAibm9ybSEgMCI8YmFyPmNhbGwgPFNJRD5Mb2NhbEJyb3dzZSg8U0lEPkxvY2FsQnJvd3NlQ2hnRGlyKGI6bmV0cndfY3VyZGlyLCcuLycpKTxjcj4KICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gcwkJOmNhbGwgPFNJRD5OZXRTYXZlV29yZFBvc24oKTxiYXI+bGV0IGc6bmV0cndfc29ydF9ieT0gKGc6bmV0cndfc29ydF9ieSA9fiAnbicpPyAndGltZScgOiAoZzpuZXRyd19zb3J0X2J5ID1+ICd0Jyk/ICdzaXplJyA6ICduYW1lJzxiYXI+ZXhlICJub3JtISAwIjxiYXI+Y2FsbCA8U0lEPkxvY2FsQnJvd3NlKDxTSUQ+TG9jYWxCcm93c2VDaGdEaXIoYjpuZXRyd19jdXJkaXIsJy4vJykpPGJhcj5jYWxsIDxTSUQ+TmV0UmVzdG9yZVdvcmRQb3NuKCk8Y3I+CiAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IFMJCTpjYWxsIDxTSUQ+TmV0U29ydFNlcXVlbmNlKDEpPGNyPgorICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiB1CQk6PGMtdT5jYWxsIDxTSUQ+TmV0Qm9va21hcmtEaXIoNCxleHBhbmQoIiUiKSk8Y3I+CisgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IFUJCTo8Yy11PmNhbGwgPFNJRD5OZXRCb29rbWFya0Rpcig1LGV4cGFuZCgiJSIpKTxjcj4KICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gdgkJOmV4ZSAoZzpuZXRyd19hbHR2PyAicmlnaHRiICIgOiAibGVmdGEgIikuZzpuZXRyd193aW5zaXplLiJ3aW5jbWQgdiI8YmFyPmV4ZSAibm9ybSEgMCI8YmFyPmNhbGwgPFNJRD5Mb2NhbEJyb3dzZSg8U0lEPkxvY2FsQnJvd3NlQ2hnRGlyKGI6bmV0cndfY3VyZGlyLDxTSUQ+TmV0R2V0V29yZCgpKSk8Y3I+CiAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IHgJCTpleGUgIm5vcm0hIDAiPGJhcj5jYWxsIDxTSUQ+TmV0QnJvd3NlWCg8U0lEPkxvY2FsQnJvd3NlQ2hnRGlyKGI6bmV0cndfY3VyZGlyLDxTSUQ+TmV0R2V0V29yZCgpLDApLDApPGNyPgogICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiA8Mi1sZWZ0bW91c2U+IDpleGUgIm5vcm0hIDAiPGJhcj5jYWxsIDxTSUQ+TG9jYWxCcm93c2UoPFNJRD5Mb2NhbEJyb3dzZUNoZ0RpcihiOm5ldHJ3X2N1cmRpciw8U0lEPk5ldEdldFdvcmQoKSkpPGNyPgpAQCAtMjA0MSwzNCArMjE1Miw0MyBAQAogICBrZWVwanVtcHMgMWQKICAga2VlcGp1bXBzIHB1dCA9J1wiIERpcmVjdG9yeSBMaXN0aW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZXRydyAnLmc6bG9hZGVkX25ldHJ3LicpJwogICBrZWVwanVtcHMgcHV0ID0nXCIgICAnLmRpcm5hbWUKLSAgbGV0IHM6bmV0cndfYmFubmVyY250PSA3CisgIGxldCBzOm5ldHJ3X2Jhbm5lcmNudD0gMwogCiAgIGxldCBzb3J0Ynk9IGc6bmV0cndfc29ydF9ieQogICBpZiBnOm5ldHJ3X3NvcnRfZGlyZWN0aW9uID1+ICJeciIKICAgIGxldCBzb3J0Ynk9IHNvcnRieS4iIHJldmVyc2VkIgogICBlbmRpZgogCisgICIgU29ydGVkIGJ5Li4uCiAgIGlmIGc6bmV0cndfc29ydF9ieSA9fiAiXm4iCiAiICAgY2FsbCBEZWNobygiZGlyZWN0b3JpZXMgd2lsbCBiZSBzb3J0ZWQgYnkgbmFtZSIpCiAgICAiIHNvcnRlZCBieSBuYW1lCi0gICBsZXQgczpuZXRyd19iYW5uZXJjbnQ9IHM6bmV0cndfYmFubmVyY250ICsgMQogICAga2VlcGp1bXBzIHB1dCA9J1wiICAgU29ydGVkIGJ5ICAgICAgJy5zb3J0YnkKICAgIGtlZXBqdW1wcyBwdXQgPSdcIiAgIFNvcnQgc2VxdWVuY2U6ICcuZzpuZXRyd19zb3J0X3NlcXVlbmNlCisgICBsZXQgczpuZXRyd19iYW5uZXJjbnQ9IHM6bmV0cndfYmFubmVyY250ICsgMgogICBlbHNlCiAiICAgY2FsbCBEZWNobygiZGlyZWN0b3JpZXMgd2lsbCBiZSBzb3J0ZWQgYnkgc2l6ZSBvciBkYXRlIikKICAgICIgc29ydGVkIGJ5IHNpemUgb3IgZGF0ZQogICAga2VlcGp1bXBzIHB1dCA9J1wiICAgU29ydGVkIGJ5ICcuc29ydGJ5CisgICBsZXQgczpuZXRyd19iYW5uZXJjbnQ9IHM6bmV0cndfYmFubmVyY250ICsgMQogICBlbmRpZgorCisgICIgSGlkaW5nLi4uICAtb3ItICBTaG93aW5nLi4uCiAgIGlmIGc6bmV0cndfbGlzdF9oaWRlICE9ICIiICYmIGc6bmV0cndfaGlkZQogICAgaWYgZzpuZXRyd19oaWRlID09IDEKLSAgICBrZWVwanVtcHMgcHV0ID0nXCIgICBIaWRpbmc6ICcuZzpuZXRyd19saXN0X2hpZGUKKyAgICBrZWVwanVtcHMgcHV0ID0nXCIgICBIaWRpbmc6ICAgICAgICAnLmc6bmV0cndfbGlzdF9oaWRlCiAgICBlbHNlCi0gICAga2VlcGp1bXBzIHB1dCA9J1wiICAgU2hvd2luZzogJy5nOm5ldHJ3X2xpc3RfaGlkZQorICAgIGtlZXBqdW1wcyBwdXQgPSdcIiAgIFNob3dpbmc6ICAgICAgICcuZzpuZXRyd19saXN0X2hpZGUKICAgIGVuZGlmCiAgICBsZXQgczpuZXRyd19iYW5uZXJjbnQ9IHM6bmV0cndfYmFubmVyY250ICsgMQogICBlbmRpZgogICBrZWVwanVtcHMgcHV0ID0nXCIgICBRdWljayBIZWxwOiAgICA/OmhlbHAgIC06Z28gdXAgZGlyICBEOmRlbGV0ZSAgUjpyZW5hbWUgIHM6c29ydC1ieSAgeDpleGVjJwogICBrZWVwanVtcHMgcHV0ID0nXCIgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PScKKyAgbGV0IHM6bmV0cndfYmFubmVyY250PSBzOm5ldHJ3X2Jhbm5lcmNudCArIDIKKworICAiIGJhbm5lcmNudCBzaG91bGQgaW5kZXggdGhlIGxpbmUganVzdCBhZnRlciB0aGUgYmFubmVyCisgIGxldCBzOm5ldHJ3X2Jhbm5lcmNudD0gczpuZXRyd19iYW5uZXJjbnQgKyAxCisiICBjYWxsIERlY2hvKCJiYW5uZXJjbnQ9Ii5zOm5ldHJ3X2Jhbm5lcmNudCkKIAogICAiIGdlbmVyYXRlIHRoZSByZXF1ZXN0ZWQgZGlyZWN0b3J5IGxpc3RpbmcKICAgY2FsbCBMb2NhbEJyb3dzZUxpc3QoZGlybmFtZSkKQEAgLTIwNzksMTggKzIxOTksMjAgQEAKICAgIGlmIGc6bmV0cndfaGlkZSAmJiBnOm5ldHJ3X2xpc3RfaGlkZSAhPSAiIgogICAgIGNhbGwgczpOZXRyd0xpc3RIaWRlKCkKICAgIGVuZGlmCi0gICBpZiBnOm5ldHJ3X3NvcnRfYnkgPX4gIl5uIgotICAgIGNhbGwgczpTZXRTb3J0KCkKLSAgICBleGUgJ2tlZXBqdW1wcyBzaWxlbnQgJy5zOm5ldHJ3X2Jhbm5lcmNudC4nLCRjYWxsIHM6TmV0U29ydCgpJwotICAgIGV4ZSAna2VlcGp1bXBzIHNpbGVudCAnLnM6bmV0cndfYmFubmVyY250LicsJHMvXlxkXHszfVwvLy9lJwotICAgZWxzZQotICAgIGV4ZSAna2VlcGp1bXBzIHNpbGVudCAnLnM6bmV0cndfYmFubmVyY250LicsJGNhbGwgczpOZXRTb3J0KCknCi0gICAgZXhlICdrZWVwanVtcHMgc2lsZW50ICcuczpuZXRyd19iYW5uZXJjbnQuJywkcy9eXGRcey19XC8vL2UnCisgICBpZiBsaW5lKCIkIikgPj0gczpuZXRyd19iYW5uZXJjbnQKKyAgICBpZiBnOm5ldHJ3X3NvcnRfYnkgPX4gIl5uIgorICAgICBjYWxsIHM6U2V0U29ydCgpCisgICAgIGV4ZSAna2VlcGp1bXBzIHNpbGVudCAnLnM6bmV0cndfYmFubmVyY250LicsJGNhbGwgczpOZXRTb3J0KCknCisgICAgIGV4ZSAna2VlcGp1bXBzIHNpbGVudCAnLnM6bmV0cndfYmFubmVyY250LicsJHMvXlxkXHszfVwvLy9lJworICAgIGVsc2UKKyAgICAgZXhlICdrZWVwanVtcHMgc2lsZW50ICcuczpuZXRyd19iYW5uZXJjbnQuJywkY2FsbCBzOk5ldFNvcnQoKScKKyAgICAgZXhlICdrZWVwanVtcHMgc2lsZW50ICcuczpuZXRyd19iYW5uZXJjbnQuJywkcy9eXGRcey19XC8vL2UnCisgICAgZW5kaWYKICAgIGVuZGlmCiAgIGVuZGlmCiAgIGV4ZSBzOm5ldHJ3X2Jhbm5lcmNudAogCi0gIHNldGxvY2FsIG5vbWEgbm9tb2QKKyAgc2V0bG9jYWwgbm9tYSBub21vZCBub251CiAgIGlmIGc6bmV0cndfa2VlcGRpciB8IGV4ZSAna2VlcGp1bXBzIGNkICcubmV0cndfb3JpZ2RpciB8IGVuZGlmCiAKICIgIGNhbGwgRHJldCgiTG9jYWxCcm93c2UgOiBmaWxlPCIuZXhwYW5kKCIlOnAiKS4iPiBidWZuYW1lPCIuYnVmbmFtZSgiJSIpLiI+IikKQEAgLTIxOTMsMTQgKzIzMTUsMTQgQEAKICAgbGV0IGRpcm5hbWU9IHN1YnN0aXR1dGUoYTpkaXJuYW1lLCdcXCcsJycsJ2dlJykKICAgbGV0IG5ld2RpciA9IGE6bmV3ZGlyCiAKLSAgaWYgZGlybmFtZSAhfiAnLyQnCisgIGlmIGRpcm5hbWUgIX4gJ1tcL10kJwogICAgIiBhcHBhcmVudGx5IHZpbSBpcyAicmVjb2duaXppbmciIHRoYXQgaXQgaXMgaW4gdGhlIGhvbWUgZGlyZWN0b3J5IGFuZAogICAgIiBpcyByZW1vdmluZyB0aGUgIi8iLiAgQmFkIGlkZWEsIHNvIEkgaGF2ZSB0byBwdXQgaXQgYmFjay4KICAgIGxldCBkaXJuYW1lPSBkaXJuYW1lLicvJwogIiAgIGNhbGwgRGVjaG8oImFkanVzdGluZyBkaXJuYW1lPCIuZGlybmFtZS4iPiIpCiAgIGVuZGlmCiAKLSAgaWYgbmV3ZGlyICF+ICcvJCcKKyAgaWYgbmV3ZGlyICF+ICdbXC9dJCcKICAgICIgaGFuZGxpbmcgYSBmaWxlCiAgICBsZXQgZGlybmFtZT0gZGlybmFtZS5uZXdkaXIKICIgICBjYWxsIERlY2hvKCJoYW5kbGluZyBhIGZpbGU6IGRpcm5hbWU8Ii5kaXJuYW1lLiI+IikKQEAgLTIyMTcsNyArMjMzOSw3IEBACiAKICAgZWxzZWlmIG5ld2RpciA9PSAnLi4vJwogICAgIiBnbyB1cCBvbmUgZGlyZWN0b3J5Ci0gICBsZXQgZGlybmFtZT0gc3Vic3RpdHV0ZShkaXJuYW1lLCdeXCguKi9cKVwoW14vXVwrLyRcKScsJ1wxJywnZScpCisgICBsZXQgZGlybmFtZT0gc3Vic3RpdHV0ZShkaXJuYW1lLCdeXCguKi9cKVwoW14vXVwrW1wvXSRcKScsJ1wxJywnZScpCiAiICAgY2FsbCBEZWNobygiZ28gdXAgb25lIGRpcjogZGlybmFtZTwiLmRpcm5hbWUuIj4iKQogCiAgIGVsc2UKQEAgLTIyNjIsNyArMjM4NCw3IEBACiAgICBsZXQgcm1maWxlPSBhOnBhdGguY3Vyd29yZAogIiAgIGNhbGwgRGVjaG8oInJtZmlsZTwiLnJtZmlsZS4iPiIpCiAKLSAgIGlmIHJtZmlsZSAhfiAnXiInICYmIChybWZpbGUgPX4gJ0AkJyB8fCBybWZpbGUgIX4gJy8kJykKKyAgIGlmIHJtZmlsZSAhfiAnXiInICYmIChybWZpbGUgPX4gJ0AkJyB8fCBybWZpbGUgIX4gJ1tcL10kJykKICAgICAiIGF0dGVtcHQgdG8gcmVtb3ZlIGZpbGUKICAgICBpZiAhYWxsCiAgICAgIGVjaG9obCBTdGF0ZW1lbnQKQEAgLTIyOTUsNyArMjQxNyw3IEBACiAgICAgICBsZXQgYWxsPSAxCiAgICAgIGVuZGlmCiAgICAgZW5kaWYKLSAgICBsZXQgcm1maWxlPSBzdWJzdGl0dXRlKHJtZmlsZSwnLyQnLCcnLCdlJykKKyAgICBsZXQgcm1maWxlPSBzdWJzdGl0dXRlKHJtZmlsZSwnW1wvXSQnLCcnLCdlJykKIAogICAgIGlmIGFsbCB8fCBvayA9fiAneVwlW2VzXScgfHwgb2sgPT0gIiIKICIgICAgIGNhbGwgRGVjaG8oIjFzdCBhdHRlbXB0OiBzeXN0ZW0oIi5nOm5ldHJ3X2xvY2FsX3JtZGlyLicgIicucm1maWxlLiciKScpCkBAIC0yMzEzLDkgKzI0MzUsMTEgQEAKIAljYWxsIHN5c3RlbSgicm0gIi5ybWZpbGUpCiAgICAgICAgIGlmIHY6c2hlbGxfZXJyb3IgIT0gMCAmJiAhZXhpc3RzKCJnOm5ldHJ3X3F1aWV0IikKICAgICAgICAgIGVjaG9lcnIgInVuYWJsZSB0byByZW1vdmUgZGlyZWN0b3J5PCIucm1maWxlLiI+IC0tIGlzIGl0IGVtcHR5PyIKKyAgICAgICAgIGNhbGwgaW5wdXRzYXZlKCl8Y2FsbCBpbnB1dCgiUHJlc3MgPGNyPiB0byBjb250aW51ZSIpfGNhbGwgaW5wdXRyZXN0b3JlKCkKIAllbmRpZgotICAgICAgIGVsc2VpZiAhZXhpc3QoImc6bmV0cndfcXVpZXQiKXMKKyAgICAgICBlbHNlaWYgIWV4aXN0cygiZzpuZXRyd19xdWlldCIpCiAgICAgICAgIGVjaG9lcnIgInVuYWJsZSB0byByZW1vdmUgZGlyZWN0b3J5PCIucm1maWxlLiI+IC0tIGlzIGl0IGVtcHR5PyIKKyAgICAgICAgY2FsbCBpbnB1dHNhdmUoKXxjYWxsIGlucHV0KCJQcmVzcyA8Y3I+IHRvIGNvbnRpbnVlIil8Y2FsbCBpbnB1dHJlc3RvcmUoKQogICAgICAgIGVuZGlmCiAgICAgICBlbmRpZgogICAgICBlbmRpZgpAQCAtMjM5MCwxMSArMjUxNCwxMyBAQAogICBpZiBoYXMoInF1aWNrZml4IikKICAgIGlmICFpc2RpcmVjdG9yeShhOnBhdGgpCiAgICAgZXhlICJwZWRpdCAiLmE6cGF0aAotICAgZWxzZWlmICFleGlzdCgiZzpuZXRyd19xdWlldCIpcworICAgZWxzZWlmICFleGlzdHMoImc6bmV0cndfcXVpZXQiKQogICAgIGVjaG9lcnIgInNvcnJ5LCBjYW5ub3QgcHJldmlldyBhIGRpcmVjdG9yeSBzdWNoIGFzIDwiLmE6cGF0aC4iPiIKKyAgICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCiAgICBlbmRpZgotICBlbHNlaWYgIWV4aXN0KCJnOm5ldHJ3X3F1aWV0IilzCisgIGVsc2VpZiAhZXhpc3RzKCJnOm5ldHJ3X3F1aWV0IikKICAgIGVjaG9lcnIgInNvcnJ5LCB0byBwcmV2aWV3IHlvdXIgdmltIG5lZWRzIHRoZSBxdWlja2ZpeCBmZWF0dXJlIGNvbXBpbGVkIGluIgorICAgY2FsbCBpbnB1dHNhdmUoKXxjYWxsIGlucHV0KCJQcmVzcyA8Y3I+IHRvIGNvbnRpbnVlIil8Y2FsbCBpbnB1dHJlc3RvcmUoKQogICBlbmRpZgogIiAgY2FsbCBEcmV0KCJMb2NhbFByZXZpZXciKQogZW5kZnVuCkBAIC0yNDA2LDcgKzI1MzIsNyBAQAogZnVuISA8U0lEPk5ldEdldGN3ZChkb2VzYykKICIgIGNhbGwgRGZ1bmMoIk5ldEdldGN3ZChkb2VzYz0iLmE6ZG9lc2MuIikiKQogICBsZXQgY3VyZGlyPSBzdWJzdGl0dXRlKGdldGN3ZCgpLCdcXCcsJy8nLCdnZScpCi0gIGlmIGN1cmRpciAhfiAnLyQnCisgIGlmIGN1cmRpciAhfiAnW1wvXSQnCiAgICBsZXQgY3VyZGlyPSBjdXJkaXIuJy8nCiAgIGVuZGlmCiAgIGlmIGE6ZG9lc2MKQEAgLTI1OTUsNiArMjcyMSw3IEBACiAgIGVsc2UKICAgIGlmICFleGlzdHMoImc6bmV0cndfcXVpZXQiKQogICAgIGVjaG9lcnIgIioqKmVycm9yKioqIGNhbm5vdCBkZXRlcm1pbmUgbWV0aG9kIgorICAgIGNhbGwgaW5wdXRzYXZlKCl8Y2FsbCBpbnB1dCgiUHJlc3MgPGNyPiB0byBjb250aW51ZSIpfGNhbGwgaW5wdXRyZXN0b3JlKCkKICAgIGVuZGlmCiAgICBsZXQgYjpuZXRyd19tZXRob2QgID0gLTEKICAgZW5kaWYKQEAgLTI2ODUsNyArMjgxMiwxNiBAQAogICBsZXQgJmdkCT0gczpnZGtlZXAKICAgbGV0ICZ0dwk9IHM6dHdrZWVwCiAgIGlmIGV4aXN0cygiczpzd2ZrZWVwIikKLSAgIGxldCAmc3dmPSBzOnN3ZmtlZXAKKyAgIGlmICZkaXJlY3RvcnkgPT0gIiIKKyAgICAiIHVzZXIgaGFzbid0IHNwZWNpZmllZCBhIHN3YXBmaWxlIGRpcmVjdG9yeTsKKyAgICAiIG5ldHJ3IHdpbGwgdGVtcG9yYXJpbHkgbWFrZSB0aGUgc3dhcGZpbGUKKyAgICAiIGRpcmVjdG9yeSB0aGUgY3VycmVudCBsb2NhbCBvbmUuCisgICAgbGV0ICZkaXJlY3RvcnkgICA9IGdldGN3ZCgpCisgICAgc2lsZW50ISBsZXQgJnN3ZiA9IHM6c3dma2VlcAorICAgIHNldCBkaXJlY3Rvcnk9CisgICBlbHNlCisgICAgbGV0ICZzd2Y9IHM6c3dma2VlcAorICAgZW5kaWYKICAgIHVubGV0IHM6c3dma2VlcAogICBlbmRpZgogICB1bmxldCBzOmFpa2VlcApAQCAtMjc5OSw2ICsyOTM1LDEyIEBACiAgICBlbmRpZgogIiAgIGNhbGwgRGVjaG8oInByaW9yaXR5PSIucHJpb3JpdHkuIiBzcHJpb3JpdHk8Ii5zcHJpb3JpdHkuIj4gc2VxPCIuc2VxLiI+IHNlcWxpc3Q8Ii5zZXFsaXN0LiI+IikKIAorICAgIiBzYW5pdHkgY2hlY2sKKyAgIGlmIHM6bmV0cndfYmFubmVyY250ID4gbGluZSgiJCIpCisgICAgIiBhcHBhcmVudGx5IG5vIGZpbGVzIHdlcmUgbGVmdCBhZnRlciBhIEhpZGluZyBwYXR0ZXJuIHdhcyB1c2VkCisiICAgIGNhbGwgRHJldCgiU2V0U29ydCA6IG5vIGZpbGVzIGxlZnQgYWZ0ZXIgaGlkaW5nIikKKyAgICByZXR1cm4KKyAgIGVuZGlmCiAgICBpZiBzZXEgPT0gJyonCiAgICAgZXhlICdrZWVwanVtcHMgc2lsZW50ICcuczpuZXRyd19iYW5uZXJjbnQuJywkdi9eXGRcezN9XC8vcy9eLycuc3ByaW9yaXR5LicvJwogICAgZWxzZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW5tZW51LnZpbSBiL3J1bnRpbWUvc3lubWVudS52aW0KaW5kZXggMDg5YTZmZS4uYTM5NzNhYyAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW5tZW51LnZpbQorKysgYi9ydW50aW1lL3N5bm1lbnUudmltCkBAIC0zOSw0NiArMzksNDcgQEAKIGFuIDUwLjEwLjE1MCAmU3ludGF4LkFCLkFjZURCXCBtb2RlbCA6Y2FsIFNldFN5bigiYWNlZGIiKTxDUj4KIGFuIDUwLjEwLjE2MCAmU3ludGF4LkFCLkFkYSA6Y2FsIFNldFN5bigiYWRhIik8Q1I+CiBhbiA1MC4xMC4xNzAgJlN5bnRheC5BQi5BZkxleCA6Y2FsIFNldFN5bigiYWZsZXgiKTxDUj4KLWFuIDUwLjEwLjE4MCAmU3ludGF4LkFCLkFsdGVyYVwgQUhETCA6Y2FsIFNldFN5bigiYWhkbCIpPENSPgotYW4gNTAuMTAuMTkwICZTeW50YXguQUIuQW1pZ2FcIERPUyA6Y2FsIFNldFN5bigiYW1pZ2EiKTxDUj4KLWFuIDUwLjEwLjIwMCAmU3ludGF4LkFCLkFNUEwgOmNhbCBTZXRTeW4oImFtcGwiKTxDUj4KLWFuIDUwLjEwLjIxMCAmU3ludGF4LkFCLkFudFwgYnVpbGRcIGZpbGUgOmNhbCBTZXRTeW4oImFudCIpPENSPgotYW4gNTAuMTAuMjIwICZTeW50YXguQUIuQU5UTFIgOmNhbCBTZXRTeW4oImFudGxyIik8Q1I+Ci1hbiA1MC4xMC4yMzAgJlN5bnRheC5BQi5BcGFjaGVcIGNvbmZpZyA6Y2FsIFNldFN5bigiYXBhY2hlIik8Q1I+Ci1hbiA1MC4xMC4yNDAgJlN5bnRheC5BQi5BcGFjaGUtc3R5bGVcIGNvbmZpZyA6Y2FsIFNldFN5bigiYXBhY2hlc3R5bGUiKTxDUj4KLWFuIDUwLjEwLjI1MCAmU3ludGF4LkFCLkFwcGxpeFwgRUxGIDpjYWwgU2V0U3luKCJlbGYiKTxDUj4KLWFuIDUwLjEwLjI2MCAmU3ludGF4LkFCLkFyY1wgTWFjcm9cIExhbmd1YWdlIDpjYWwgU2V0U3luKCJhbWwiKTxDUj4KLWFuIDUwLjEwLjI3MCAmU3ludGF4LkFCLkFyY2hcIGludmVudG9yeSA6Y2FsIFNldFN5bigiYXJjaCIpPENSPgotYW4gNTAuMTAuMjgwICZTeW50YXguQUIuQVJUIDpjYWwgU2V0U3luKCJhcnQiKTxDUj4KLWFuIDUwLjEwLjI5MCAmU3ludGF4LkFCLkFTUFwgd2l0aFwgVkJTY3JpcHQgOmNhbCBTZXRTeW4oImFzcHZicyIpPENSPgotYW4gNTAuMTAuMzAwICZTeW50YXguQUIuQVNQXCB3aXRoXCBQZXJsIDpjYWwgU2V0U3luKCJhc3BwZXJsIik8Q1I+Ci1hbiA1MC4xMC4zMTAgJlN5bnRheC5BQi5Bc3NlbWJseS42ODB4MCA6Y2FsIFNldFN5bigiYXNtNjhrIik8Q1I+Ci1hbiA1MC4xMC4zMjAgJlN5bnRheC5BQi5Bc3NlbWJseS5GbGF0IDpjYWwgU2V0U3luKCJmYXNtIik8Q1I+Ci1hbiA1MC4xMC4zMzAgJlN5bnRheC5BQi5Bc3NlbWJseS5HTlUgOmNhbCBTZXRTeW4oImFzbSIpPENSPgotYW4gNTAuMTAuMzQwICZTeW50YXguQUIuQXNzZW1ibHkuR05VXCBILTgzMDAgOmNhbCBTZXRTeW4oImFzbWg4MzAwIik8Q1I+Ci1hbiA1MC4xMC4zNTAgJlN5bnRheC5BQi5Bc3NlbWJseS5JbnRlbFwgSUEtNjQgOmNhbCBTZXRTeW4oImlhNjQiKTxDUj4KLWFuIDUwLjEwLjM2MCAmU3ludGF4LkFCLkFzc2VtYmx5Lk1pY3Jvc29mdCA6Y2FsIFNldFN5bigibWFzbSIpPENSPgotYW4gNTAuMTAuMzcwICZTeW50YXguQUIuQXNzZW1ibHkuTmV0d2lkZSA6Y2FsIFNldFN5bigibmFzbSIpPENSPgotYW4gNTAuMTAuMzgwICZTeW50YXguQUIuQXNzZW1ibHkuUElDIDpjYWwgU2V0U3luKCJwaWMiKTxDUj4KLWFuIDUwLjEwLjM5MCAmU3ludGF4LkFCLkFzc2VtYmx5LlR1cmJvIDpjYWwgU2V0U3luKCJ0YXNtIik8Q1I+Ci1hbiA1MC4xMC40MDAgJlN5bnRheC5BQi5Bc3NlbWJseS5WQVhcIE1hY3JvXCBBc3NlbWJseSA6Y2FsIFNldFN5bigidm1hc20iKTxDUj4KLWFuIDUwLjEwLjQxMCAmU3ludGF4LkFCLkFzc2VtYmx5LlotODAgOmNhbCBTZXRTeW4oIno4YSIpPENSPgotYW4gNTAuMTAuNDIwICZTeW50YXguQUIuQXNzZW1ibHkueGFcIDY1MDJcIGNyb3NzXCBhc3NlbWJlciA6Y2FsIFNldFN5bigiYTY1Iik8Q1I+Ci1hbiA1MC4xMC40MzAgJlN5bnRheC5BQi5BU05cLjEgOmNhbCBTZXRTeW4oImFzbiIpPENSPgotYW4gNTAuMTAuNDQwICZTeW50YXguQUIuQXRsYXMgOmNhbCBTZXRTeW4oImF0bGFzIik8Q1I+Ci1hbiA1MC4xMC40NTAgJlN5bnRheC5BQi5BdXRvbWFrZSA6Y2FsIFNldFN5bigiYXV0b21ha2UiKTxDUj4KLWFuIDUwLjEwLjQ2MCAmU3ludGF4LkFCLkF2ZW51ZSA6Y2FsIFNldFN5bigiYXZlIik8Q1I+Ci1hbiA1MC4xMC40NzAgJlN5bnRheC5BQi5Bd2sgOmNhbCBTZXRTeW4oImF3ayIpPENSPgotYW4gNTAuMTAuNDgwICZTeW50YXguQUIuQVlhY2MgOmNhbCBTZXRTeW4oImF5YWNjIik8Q1I+Ci1hbiA1MC4xMC41MDAgJlN5bnRheC5BQi5CIDpjYWwgU2V0U3luKCJiIik8Q1I+Ci1hbiA1MC4xMC41MTAgJlN5bnRheC5BQi5CYWFuIDpjYWwgU2V0U3luKCJiYWFuIik8Q1I+Ci1hbiA1MC4xMC41MjAgJlN5bnRheC5BQi5CQVNJQyA6Y2FsIFNldFN5bigiYmFzaWMiKTxDUj4KLWFuIDUwLjEwLjUzMCAmU3ludGF4LkFCLkJDXCBjYWxjdWxhdG9yIDpjYWwgU2V0U3luKCJiYyIpPENSPgotYW4gNTAuMTAuNTQwICZTeW50YXguQUIuQkRGXCBmb250IDpjYWwgU2V0U3luKCJiZGYiKTxDUj4KLWFuIDUwLjEwLjU1MCAmU3ludGF4LkFCLkJpYlRlWCA6Y2FsIFNldFN5bigiYmliIik8Q1I+Ci1hbiA1MC4xMC41NjAgJlN5bnRheC5BQi5CSU5ELkJJTkRcIGNvbmZpZyA6Y2FsIFNldFN5bigibmFtZWQiKTxDUj4KLWFuIDUwLjEwLjU3MCAmU3ludGF4LkFCLkJJTkQuQklORFwgem9uZSA6Y2FsIFNldFN5bigiYmluZHpvbmUiKTxDUj4KLWFuIDUwLjEwLjU4MCAmU3ludGF4LkFCLkJsYW5rIDpjYWwgU2V0U3luKCJibGFuayIpPENSPgorYW4gNTAuMTAuMTgwICZTeW50YXguQUIuQUxTQVwgY29uZmlnIDpjYWwgU2V0U3luKCJhbHNhY29uZiIpPENSPgorYW4gNTAuMTAuMTkwICZTeW50YXguQUIuQWx0ZXJhXCBBSERMIDpjYWwgU2V0U3luKCJhaGRsIik8Q1I+CithbiA1MC4xMC4yMDAgJlN5bnRheC5BQi5BbWlnYVwgRE9TIDpjYWwgU2V0U3luKCJhbWlnYSIpPENSPgorYW4gNTAuMTAuMjEwICZTeW50YXguQUIuQU1QTCA6Y2FsIFNldFN5bigiYW1wbCIpPENSPgorYW4gNTAuMTAuMjIwICZTeW50YXguQUIuQW50XCBidWlsZFwgZmlsZSA6Y2FsIFNldFN5bigiYW50Iik8Q1I+CithbiA1MC4xMC4yMzAgJlN5bnRheC5BQi5BTlRMUiA6Y2FsIFNldFN5bigiYW50bHIiKTxDUj4KK2FuIDUwLjEwLjI0MCAmU3ludGF4LkFCLkFwYWNoZVwgY29uZmlnIDpjYWwgU2V0U3luKCJhcGFjaGUiKTxDUj4KK2FuIDUwLjEwLjI1MCAmU3ludGF4LkFCLkFwYWNoZS1zdHlsZVwgY29uZmlnIDpjYWwgU2V0U3luKCJhcGFjaGVzdHlsZSIpPENSPgorYW4gNTAuMTAuMjYwICZTeW50YXguQUIuQXBwbGl4XCBFTEYgOmNhbCBTZXRTeW4oImVsZiIpPENSPgorYW4gNTAuMTAuMjcwICZTeW50YXguQUIuQXJjXCBNYWNyb1wgTGFuZ3VhZ2UgOmNhbCBTZXRTeW4oImFtbCIpPENSPgorYW4gNTAuMTAuMjgwICZTeW50YXguQUIuQXJjaFwgaW52ZW50b3J5IDpjYWwgU2V0U3luKCJhcmNoIik8Q1I+CithbiA1MC4xMC4yOTAgJlN5bnRheC5BQi5BUlQgOmNhbCBTZXRTeW4oImFydCIpPENSPgorYW4gNTAuMTAuMzAwICZTeW50YXguQUIuQVNQXCB3aXRoXCBWQlNjcmlwdCA6Y2FsIFNldFN5bigiYXNwdmJzIik8Q1I+CithbiA1MC4xMC4zMTAgJlN5bnRheC5BQi5BU1BcIHdpdGhcIFBlcmwgOmNhbCBTZXRTeW4oImFzcHBlcmwiKTxDUj4KK2FuIDUwLjEwLjMyMCAmU3ludGF4LkFCLkFzc2VtYmx5LjY4MHgwIDpjYWwgU2V0U3luKCJhc202OGsiKTxDUj4KK2FuIDUwLjEwLjMzMCAmU3ludGF4LkFCLkFzc2VtYmx5LkZsYXQgOmNhbCBTZXRTeW4oImZhc20iKTxDUj4KK2FuIDUwLjEwLjM0MCAmU3ludGF4LkFCLkFzc2VtYmx5LkdOVSA6Y2FsIFNldFN5bigiYXNtIik8Q1I+CithbiA1MC4xMC4zNTAgJlN5bnRheC5BQi5Bc3NlbWJseS5HTlVcIEgtODMwMCA6Y2FsIFNldFN5bigiYXNtaDgzMDAiKTxDUj4KK2FuIDUwLjEwLjM2MCAmU3ludGF4LkFCLkFzc2VtYmx5LkludGVsXCBJQS02NCA6Y2FsIFNldFN5bigiaWE2NCIpPENSPgorYW4gNTAuMTAuMzcwICZTeW50YXguQUIuQXNzZW1ibHkuTWljcm9zb2Z0IDpjYWwgU2V0U3luKCJtYXNtIik8Q1I+CithbiA1MC4xMC4zODAgJlN5bnRheC5BQi5Bc3NlbWJseS5OZXR3aWRlIDpjYWwgU2V0U3luKCJuYXNtIik8Q1I+CithbiA1MC4xMC4zOTAgJlN5bnRheC5BQi5Bc3NlbWJseS5QSUMgOmNhbCBTZXRTeW4oInBpYyIpPENSPgorYW4gNTAuMTAuNDAwICZTeW50YXguQUIuQXNzZW1ibHkuVHVyYm8gOmNhbCBTZXRTeW4oInRhc20iKTxDUj4KK2FuIDUwLjEwLjQxMCAmU3ludGF4LkFCLkFzc2VtYmx5LlZBWFwgTWFjcm9cIEFzc2VtYmx5IDpjYWwgU2V0U3luKCJ2bWFzbSIpPENSPgorYW4gNTAuMTAuNDIwICZTeW50YXguQUIuQXNzZW1ibHkuWi04MCA6Y2FsIFNldFN5bigiejhhIik8Q1I+CithbiA1MC4xMC40MzAgJlN5bnRheC5BQi5Bc3NlbWJseS54YVwgNjUwMlwgY3Jvc3NcIGFzc2VtYmVyIDpjYWwgU2V0U3luKCJhNjUiKTxDUj4KK2FuIDUwLjEwLjQ0MCAmU3ludGF4LkFCLkFTTlwuMSA6Y2FsIFNldFN5bigiYXNuIik8Q1I+CithbiA1MC4xMC40NTAgJlN5bnRheC5BQi5BdGxhcyA6Y2FsIFNldFN5bigiYXRsYXMiKTxDUj4KK2FuIDUwLjEwLjQ2MCAmU3ludGF4LkFCLkF1dG9tYWtlIDpjYWwgU2V0U3luKCJhdXRvbWFrZSIpPENSPgorYW4gNTAuMTAuNDcwICZTeW50YXguQUIuQXZlbnVlIDpjYWwgU2V0U3luKCJhdmUiKTxDUj4KK2FuIDUwLjEwLjQ4MCAmU3ludGF4LkFCLkF3ayA6Y2FsIFNldFN5bigiYXdrIik8Q1I+CithbiA1MC4xMC40OTAgJlN5bnRheC5BQi5BWWFjYyA6Y2FsIFNldFN5bigiYXlhY2MiKTxDUj4KK2FuIDUwLjEwLjUxMCAmU3ludGF4LkFCLkIgOmNhbCBTZXRTeW4oImIiKTxDUj4KK2FuIDUwLjEwLjUyMCAmU3ludGF4LkFCLkJhYW4gOmNhbCBTZXRTeW4oImJhYW4iKTxDUj4KK2FuIDUwLjEwLjUzMCAmU3ludGF4LkFCLkJBU0lDIDpjYWwgU2V0U3luKCJiYXNpYyIpPENSPgorYW4gNTAuMTAuNTQwICZTeW50YXguQUIuQkNcIGNhbGN1bGF0b3IgOmNhbCBTZXRTeW4oImJjIik8Q1I+CithbiA1MC4xMC41NTAgJlN5bnRheC5BQi5CREZcIGZvbnQgOmNhbCBTZXRTeW4oImJkZiIpPENSPgorYW4gNTAuMTAuNTYwICZTeW50YXguQUIuQmliVGVYIDpjYWwgU2V0U3luKCJiaWIiKTxDUj4KK2FuIDUwLjEwLjU3MCAmU3ludGF4LkFCLkJJTkQuQklORFwgY29uZmlnIDpjYWwgU2V0U3luKCJuYW1lZCIpPENSPgorYW4gNTAuMTAuNTgwICZTeW50YXguQUIuQklORC5CSU5EXCB6b25lIDpjYWwgU2V0U3luKCJiaW5kem9uZSIpPENSPgorYW4gNTAuMTAuNTkwICZTeW50YXguQUIuQmxhbmsgOmNhbCBTZXRTeW4oImJsYW5rIik8Q1I+CiBhbiA1MC4yMC4xMDAgJlN5bnRheC5DLkMgOmNhbCBTZXRTeW4oImMiKTxDUj4KIGFuIDUwLjIwLjExMCAmU3ludGF4LkMuQysrIDpjYWwgU2V0U3luKCJjcHAiKTxDUj4KIGFuIDUwLjIwLjEyMCAmU3ludGF4LkMuQyMgOmNhbCBTZXRTeW4oImNzIik8Q1I+CkBAIC0zMzYsNDYgKzMzNyw0NyBAQAogYW4gNTAuMTAwLjEyMCAmU3ludGF4LlNoLVMuU2hlbGxcIHNjcmlwdC50Y3NoIDpjYWwgU2V0U3luKCJ0Y3NoIik8Q1I+CiBhbiA1MC4xMDAuMTMwICZTeW50YXguU2gtUy5TaGVsbFwgc2NyaXB0LnpzaCA6Y2FsIFNldFN5bigienNoIik8Q1I+CiBhbiA1MC4xMDAuMTQwICZTeW50YXguU2gtUy5TaUNBRCA6Y2FsIFNldFN5bigic2ljYWQiKTxDUj4KLWFuIDUwLjEwMC4xNTAgJlN5bnRheC5TaC1TLlNpbXVsYSA6Y2FsIFNldFN5bigic2ltdWxhIik8Q1I+Ci1hbiA1MC4xMDAuMTYwICZTeW50YXguU2gtUy5TaW5kYS5TaW5kYVwgY29tcGFyZSA6Y2FsIFNldFN5bigic2luZGFjbXAiKTxDUj4KLWFuIDUwLjEwMC4xNzAgJlN5bnRheC5TaC1TLlNpbmRhLlNpbmRhXCBpbnB1dCA6Y2FsIFNldFN5bigic2luZGEiKTxDUj4KLWFuIDUwLjEwMC4xODAgJlN5bnRheC5TaC1TLlNpbmRhLlNpbmRhXCBvdXRwdXQgOmNhbCBTZXRTeW4oInNpbmRhb3V0Iik8Q1I+Ci1hbiA1MC4xMDAuMTkwICZTeW50YXguU2gtUy5TS0lMTC5TS0lMTCA6Y2FsIFNldFN5bigic2tpbGwiKTxDUj4KLWFuIDUwLjEwMC4yMDAgJlN5bnRheC5TaC1TLlNLSUxMLlNLSUxMXCBmb3JcIERpdmEgOmNhbCBTZXRTeW4oImRpdmEiKTxDUj4KLWFuIDUwLjEwMC4yMTAgJlN5bnRheC5TaC1TLlNsaWNlIDpjYWwgU2V0U3luKCJzbGljZSIpPENSPgotYW4gNTAuMTAwLjIyMCAmU3ludGF4LlNoLVMuU0xSTi5TbHJuXCByYyA6Y2FsIFNldFN5bigic2xybnJjIik8Q1I+Ci1hbiA1MC4xMDAuMjMwICZTeW50YXguU2gtUy5TTFJOLlNscm5cIHNjb3JlIDpjYWwgU2V0U3luKCJzbHJuc2MiKTxDUj4KLWFuIDUwLjEwMC4yNDAgJlN5bnRheC5TaC1TLlNtYWxsVGFsayA6Y2FsIFNldFN5bigic3QiKTxDUj4KLWFuIDUwLjEwMC4yNTAgJlN5bnRheC5TaC1TLlNtYXJ0eVwgVGVtcGxhdGVzIDpjYWwgU2V0U3luKCJzbWFydHkiKTxDUj4KLWFuIDUwLjEwMC4yNjAgJlN5bnRheC5TaC1TLlNNSUwgOmNhbCBTZXRTeW4oInNtaWwiKTxDUj4KLWFuIDUwLjEwMC4yNzAgJlN5bnRheC5TaC1TLlNNSVRIIDpjYWwgU2V0U3luKCJzbWl0aCIpPENSPgotYW4gNTAuMTAwLjI4MCAmU3ludGF4LlNoLVMuU05NUFwgTUlCIDpjYWwgU2V0U3luKCJtaWIiKTxDUj4KLWFuIDUwLjEwMC4yOTAgJlN5bnRheC5TaC1TLlNOTlMuU05OU1wgbmV0d29yayA6Y2FsIFNldFN5bigic25uc25ldCIpPENSPgotYW4gNTAuMTAwLjMwMCAmU3ludGF4LlNoLVMuU05OUy5TTk5TXCBwYXR0ZXJuIDpjYWwgU2V0U3luKCJzbm5zcGF0Iik8Q1I+Ci1hbiA1MC4xMDAuMzEwICZTeW50YXguU2gtUy5TTk5TLlNOTlNcIHJlc3VsdCA6Y2FsIFNldFN5bigic25uc3JlcyIpPENSPgotYW4gNTAuMTAwLjMyMCAmU3ludGF4LlNoLVMuU25vYm9sNCA6Y2FsIFNldFN5bigic25vYm9sNCIpPENSPgotYW4gNTAuMTAwLjMzMCAmU3ludGF4LlNoLVMuU25vcnRcIENvbmZpZ3VyYXRpb24gOmNhbCBTZXRTeW4oImhvZyIpPENSPgotYW4gNTAuMTAwLjM0MCAmU3ludGF4LlNoLVMuU1BFQ1wgKExpbnV4XCBSUE0pIDpjYWwgU2V0U3luKCJzcGVjIik8Q1I+Ci1hbiA1MC4xMDAuMzUwICZTeW50YXguU2gtUy5TcGVjbWFuIDpjYWwgU2V0U3luKCJzcGVjbWFuIik8Q1I+Ci1hbiA1MC4xMDAuMzYwICZTeW50YXguU2gtUy5TcGljZSA6Y2FsIFNldFN5bigic3BpY2UiKTxDUj4KLWFuIDUwLjEwMC4zNzAgJlN5bnRheC5TaC1TLlNweWNlIDpjYWwgU2V0U3luKCJzcHljZSIpPENSPgotYW4gNTAuMTAwLjM4MCAmU3ludGF4LlNoLVMuU3BlZWR1cCA6Y2FsIFNldFN5bigic3B1cCIpPENSPgotYW4gNTAuMTAwLjM5MCAmU3ludGF4LlNoLVMuU3BsaW50IDpjYWwgU2V0U3luKCJzcGxpbnQiKTxDUj4KLWFuIDUwLjEwMC40MDAgJlN5bnRheC5TaC1TLlNxdWlkXCBjb25maWcgOmNhbCBTZXRTeW4oInNxdWlkIik8Q1I+Ci1hbiA1MC4xMDAuNDEwICZTeW50YXguU2gtUy5TUUwuRVNRTC1DIDpjYWwgU2V0U3luKCJlc3FsYyIpPENSPgotYW4gNTAuMTAwLjQyMCAmU3ludGF4LlNoLVMuU1FMLk15U1FMIDpjYWwgU2V0U3luKCJteXNxbCIpPENSPgotYW4gNTAuMTAwLjQzMCAmU3ludGF4LlNoLVMuU1FMLlBML1NRTCA6Y2FsIFNldFN5bigicGxzcWwiKTxDUj4KLWFuIDUwLjEwMC40NDAgJlN5bnRheC5TaC1TLlNRTC5TUUxcIChPcmFjbGUpIDpjYWwgU2V0U3luKCJzcWwiKTxDUj4KLWFuIDUwLjEwMC40NTAgJlN5bnRheC5TaC1TLlNRTC5TUUxcIEZvcm1zIDpjYWwgU2V0U3luKCJzcWxmb3JtcyIpPENSPgotYW4gNTAuMTAwLjQ2MCAmU3ludGF4LlNoLVMuU1FMLlNRTEogOmNhbCBTZXRTeW4oInNxbGoiKTxDUj4KLWFuIDUwLjEwMC40NzAgJlN5bnRheC5TaC1TLlNRTC5TUUwtSW5mb3JtaXggOmNhbCBTZXRTeW4oInNxbGluZm9ybWl4Iik8Q1I+Ci1hbiA1MC4xMDAuNDgwICZTeW50YXguU2gtUy5TUVIgOmNhbCBTZXRTeW4oInNxciIpPENSPgotYW4gNTAuMTAwLjQ5MCAmU3ludGF4LlNoLVMuU3NoLnNzaF9jb25maWcgOmNhbCBTZXRTeW4oInNzaGNvbmZpZyIpPENSPgotYW4gNTAuMTAwLjUwMCAmU3ludGF4LlNoLVMuU3NoLnNzaGRfY29uZmlnIDpjYWwgU2V0U3luKCJzc2hkY29uZmlnIik8Q1I+Ci1hbiA1MC4xMDAuNTEwICZTeW50YXguU2gtUy5TdGFuZGFyZFwgTUwgOmNhbCBTZXRTeW4oInNtbCIpPENSPgotYW4gNTAuMTAwLjUyMCAmU3ludGF4LlNoLVMuU3RvcmVkXCBQcm9jZWR1cmVzIDpjYWwgU2V0U3luKCJzdHAiKTxDUj4KLWFuIDUwLjEwMC41MzAgJlN5bnRheC5TaC1TLlN0cmFjZSA6Y2FsIFNldFN5bigic3RyYWNlIik8Q1I+Ci1hbiA1MC4xMDAuNTQwICZTeW50YXguU2gtUy5TdWJ2ZXJzaW9uXCBjb21taXQgOmNhbCBTZXRTeW4oInN2biIpPENSPgorYW4gNTAuMTAwLjE1MCAmU3ludGF4LlNoLVMuU2lldmUgOmNhbCBTZXRTeW4oInNpZXZlIik8Q1I+CithbiA1MC4xMDAuMTYwICZTeW50YXguU2gtUy5TaW11bGEgOmNhbCBTZXRTeW4oInNpbXVsYSIpPENSPgorYW4gNTAuMTAwLjE3MCAmU3ludGF4LlNoLVMuU2luZGEuU2luZGFcIGNvbXBhcmUgOmNhbCBTZXRTeW4oInNpbmRhY21wIik8Q1I+CithbiA1MC4xMDAuMTgwICZTeW50YXguU2gtUy5TaW5kYS5TaW5kYVwgaW5wdXQgOmNhbCBTZXRTeW4oInNpbmRhIik8Q1I+CithbiA1MC4xMDAuMTkwICZTeW50YXguU2gtUy5TaW5kYS5TaW5kYVwgb3V0cHV0IDpjYWwgU2V0U3luKCJzaW5kYW91dCIpPENSPgorYW4gNTAuMTAwLjIwMCAmU3ludGF4LlNoLVMuU0tJTEwuU0tJTEwgOmNhbCBTZXRTeW4oInNraWxsIik8Q1I+CithbiA1MC4xMDAuMjEwICZTeW50YXguU2gtUy5TS0lMTC5TS0lMTFwgZm9yXCBEaXZhIDpjYWwgU2V0U3luKCJkaXZhIik8Q1I+CithbiA1MC4xMDAuMjIwICZTeW50YXguU2gtUy5TbGljZSA6Y2FsIFNldFN5bigic2xpY2UiKTxDUj4KK2FuIDUwLjEwMC4yMzAgJlN5bnRheC5TaC1TLlNMUk4uU2xyblwgcmMgOmNhbCBTZXRTeW4oInNscm5yYyIpPENSPgorYW4gNTAuMTAwLjI0MCAmU3ludGF4LlNoLVMuU0xSTi5TbHJuXCBzY29yZSA6Y2FsIFNldFN5bigic2xybnNjIik8Q1I+CithbiA1MC4xMDAuMjUwICZTeW50YXguU2gtUy5TbWFsbFRhbGsgOmNhbCBTZXRTeW4oInN0Iik8Q1I+CithbiA1MC4xMDAuMjYwICZTeW50YXguU2gtUy5TbWFydHlcIFRlbXBsYXRlcyA6Y2FsIFNldFN5bigic21hcnR5Iik8Q1I+CithbiA1MC4xMDAuMjcwICZTeW50YXguU2gtUy5TTUlMIDpjYWwgU2V0U3luKCJzbWlsIik8Q1I+CithbiA1MC4xMDAuMjgwICZTeW50YXguU2gtUy5TTUlUSCA6Y2FsIFNldFN5bigic21pdGgiKTxDUj4KK2FuIDUwLjEwMC4yOTAgJlN5bnRheC5TaC1TLlNOTVBcIE1JQiA6Y2FsIFNldFN5bigibWliIik8Q1I+CithbiA1MC4xMDAuMzAwICZTeW50YXguU2gtUy5TTk5TLlNOTlNcIG5ldHdvcmsgOmNhbCBTZXRTeW4oInNubnNuZXQiKTxDUj4KK2FuIDUwLjEwMC4zMTAgJlN5bnRheC5TaC1TLlNOTlMuU05OU1wgcGF0dGVybiA6Y2FsIFNldFN5bigic25uc3BhdCIpPENSPgorYW4gNTAuMTAwLjMyMCAmU3ludGF4LlNoLVMuU05OUy5TTk5TXCByZXN1bHQgOmNhbCBTZXRTeW4oInNubnNyZXMiKTxDUj4KK2FuIDUwLjEwMC4zMzAgJlN5bnRheC5TaC1TLlNub2JvbDQgOmNhbCBTZXRTeW4oInNub2JvbDQiKTxDUj4KK2FuIDUwLjEwMC4zNDAgJlN5bnRheC5TaC1TLlNub3J0XCBDb25maWd1cmF0aW9uIDpjYWwgU2V0U3luKCJob2ciKTxDUj4KK2FuIDUwLjEwMC4zNTAgJlN5bnRheC5TaC1TLlNQRUNcIChMaW51eFwgUlBNKSA6Y2FsIFNldFN5bigic3BlYyIpPENSPgorYW4gNTAuMTAwLjM2MCAmU3ludGF4LlNoLVMuU3BlY21hbiA6Y2FsIFNldFN5bigic3BlY21hbiIpPENSPgorYW4gNTAuMTAwLjM3MCAmU3ludGF4LlNoLVMuU3BpY2UgOmNhbCBTZXRTeW4oInNwaWNlIik8Q1I+CithbiA1MC4xMDAuMzgwICZTeW50YXguU2gtUy5TcHljZSA6Y2FsIFNldFN5bigic3B5Y2UiKTxDUj4KK2FuIDUwLjEwMC4zOTAgJlN5bnRheC5TaC1TLlNwZWVkdXAgOmNhbCBTZXRTeW4oInNwdXAiKTxDUj4KK2FuIDUwLjEwMC40MDAgJlN5bnRheC5TaC1TLlNwbGludCA6Y2FsIFNldFN5bigic3BsaW50Iik8Q1I+CithbiA1MC4xMDAuNDEwICZTeW50YXguU2gtUy5TcXVpZFwgY29uZmlnIDpjYWwgU2V0U3luKCJzcXVpZCIpPENSPgorYW4gNTAuMTAwLjQyMCAmU3ludGF4LlNoLVMuU1FMLkVTUUwtQyA6Y2FsIFNldFN5bigiZXNxbGMiKTxDUj4KK2FuIDUwLjEwMC40MzAgJlN5bnRheC5TaC1TLlNRTC5NeVNRTCA6Y2FsIFNldFN5bigibXlzcWwiKTxDUj4KK2FuIDUwLjEwMC40NDAgJlN5bnRheC5TaC1TLlNRTC5QTC9TUUwgOmNhbCBTZXRTeW4oInBsc3FsIik8Q1I+CithbiA1MC4xMDAuNDUwICZTeW50YXguU2gtUy5TUUwuU1FMXCAoT3JhY2xlKSA6Y2FsIFNldFN5bigic3FsIik8Q1I+CithbiA1MC4xMDAuNDYwICZTeW50YXguU2gtUy5TUUwuU1FMXCBGb3JtcyA6Y2FsIFNldFN5bigic3FsZm9ybXMiKTxDUj4KK2FuIDUwLjEwMC40NzAgJlN5bnRheC5TaC1TLlNRTC5TUUxKIDpjYWwgU2V0U3luKCJzcWxqIik8Q1I+CithbiA1MC4xMDAuNDgwICZTeW50YXguU2gtUy5TUUwuU1FMLUluZm9ybWl4IDpjYWwgU2V0U3luKCJzcWxpbmZvcm1peCIpPENSPgorYW4gNTAuMTAwLjQ5MCAmU3ludGF4LlNoLVMuU1FSIDpjYWwgU2V0U3luKCJzcXIiKTxDUj4KK2FuIDUwLjEwMC41MDAgJlN5bnRheC5TaC1TLlNzaC5zc2hfY29uZmlnIDpjYWwgU2V0U3luKCJzc2hjb25maWciKTxDUj4KK2FuIDUwLjEwMC41MTAgJlN5bnRheC5TaC1TLlNzaC5zc2hkX2NvbmZpZyA6Y2FsIFNldFN5bigic3NoZGNvbmZpZyIpPENSPgorYW4gNTAuMTAwLjUyMCAmU3ludGF4LlNoLVMuU3RhbmRhcmRcIE1MIDpjYWwgU2V0U3luKCJzbWwiKTxDUj4KK2FuIDUwLjEwMC41MzAgJlN5bnRheC5TaC1TLlN0b3JlZFwgUHJvY2VkdXJlcyA6Y2FsIFNldFN5bigic3RwIik8Q1I+CithbiA1MC4xMDAuNTQwICZTeW50YXguU2gtUy5TdHJhY2UgOmNhbCBTZXRTeW4oInN0cmFjZSIpPENSPgorYW4gNTAuMTAwLjU1MCAmU3ludGF4LlNoLVMuU3VidmVyc2lvblwgY29tbWl0IDpjYWwgU2V0U3luKCJzdm4iKTxDUj4KIGFuIDUwLjExMC4xMDAgJlN5bnRheC5UVVYuVEFEUyA6Y2FsIFNldFN5bigidGFkcyIpPENSPgogYW4gNTAuMTEwLjExMCAmU3ludGF4LlRVVi5UYWdzIDpjYWwgU2V0U3luKCJ0YWdzIik8Q1I+CiBhbiA1MC4xMTAuMTIwICZTeW50YXguVFVWLlRBSy5UQUtcIGNvbXBhcmUgOmNhbCBTZXRTeW4oInRha2NtcCIpPENSPgpAQCAtMzkyLDIzICszOTQsMjQgQEAKIGFuIDUwLjExMC4yMzAgJlN5bnRheC5UVVYuVEZcIG11ZFwgY2xpZW50IDpjYWwgU2V0U3luKCJ0ZiIpPENSPgogYW4gNTAuMTEwLjI0MCAmU3ludGF4LlRVVi5UaWR5XCBjb25maWd1cmF0aW9uIDpjYWwgU2V0U3luKCJ0aWR5Iik8Q1I+CiBhbiA1MC4xMTAuMjUwICZTeW50YXguVFVWLlRpbGRlIDpjYWwgU2V0U3luKCJ0aWxkZSIpPENSPgotYW4gNTAuMTEwLjI2MCAmU3ludGF4LlRVVi5UcmFzeXNcIGlucHV0IDpjYWwgU2V0U3luKCJ0cmFzeXMiKTxDUj4KLWFuIDUwLjExMC4yNzAgJlN5bnRheC5UVVYuVFNTLkNvbW1hbmRcIExpbmUgOmNhbCBTZXRTeW4oInRzc2NsIik8Q1I+Ci1hbiA1MC4xMTAuMjgwICZTeW50YXguVFVWLlRTUy5HZW9tZXRyeSA6Y2FsIFNldFN5bigidHNzZ20iKTxDUj4KLWFuIDUwLjExMC4yOTAgJlN5bnRheC5UVVYuVFNTLk9wdGljcyA6Y2FsIFNldFN5bigidHNzb3AiKTxDUj4KLWFuIDUwLjExMC4zMTAgJlN5bnRheC5UVVYuVUlUL1VJTCA6Y2FsIFNldFN5bigidWlsIik8Q1I+Ci1hbiA1MC4xMTAuMzIwICZTeW50YXguVFVWLlVucmVhbFNjcmlwdCA6Y2FsIFNldFN5bigidWMiKTxDUj4KLWFuIDUwLjExMC4zNDAgJlN5bnRheC5UVVYuVmFsZ3JpbmQgOmNhbCBTZXRTeW4oInZhbGdyaW5kIik8Q1I+Ci1hbiA1MC4xMTAuMzUwICZTeW50YXguVFVWLlZlcmlsb2dcIEhETCA6Y2FsIFNldFN5bigidmVyaWxvZyIpPENSPgotYW4gNTAuMTEwLjM2MCAmU3ludGF4LlRVVi5WZ3JpbmRlZnMgOmNhbCBTZXRTeW4oInZncmluZGVmcyIpPENSPgotYW4gNTAuMTEwLjM3MCAmU3ludGF4LlRVVi5WSERMIDpjYWwgU2V0U3luKCJ2aGRsIik8Q1I+Ci1hbiA1MC4xMTAuMzgwICZTeW50YXguVFVWLlZpbS5WaW1cIGhlbHBcIGZpbGUgOmNhbCBTZXRTeW4oImhlbHAiKTxDUj4KLWFuIDUwLjExMC4zOTAgJlN5bnRheC5UVVYuVmltLlZpbVwgc2NyaXB0IDpjYWwgU2V0U3luKCJ2aW0iKTxDUj4KLWFuIDUwLjExMC40MDAgJlN5bnRheC5UVVYuVmltLlZpbWluZm9cIGZpbGUgOmNhbCBTZXRTeW4oInZpbWluZm8iKTxDUj4KLWFuIDUwLjExMC40MTAgJlN5bnRheC5UVVYuVmlyYXRhXCBjb25maWcgOmNhbCBTZXRTeW4oInZpcmF0YSIpPENSPgotYW4gNTAuMTEwLjQyMCAmU3ludGF4LlRVVi5WaXN1YWxcIEJhc2ljIDpjYWwgU2V0U3luKCJ2YiIpPENSPgotYW4gNTAuMTEwLjQzMCAmU3ludGF4LlRVVi5WUk1MIDpjYWwgU2V0U3luKCJ2cm1sIik8Q1I+Ci1hbiA1MC4xMTAuNDQwICZTeW50YXguVFVWLlZTRVwgSkNMIDpjYWwgU2V0U3luKCJ2c2VqY2wiKTxDUj4KK2FuIDUwLjExMC4yNjAgJlN5bnRheC5UVVYuVFBQIDpjYWwgU2V0U3luKCJ0cHAiKTxDUj4KK2FuIDUwLjExMC4yNzAgJlN5bnRheC5UVVYuVHJhc3lzXCBpbnB1dCA6Y2FsIFNldFN5bigidHJhc3lzIik8Q1I+CithbiA1MC4xMTAuMjgwICZTeW50YXguVFVWLlRTUy5Db21tYW5kXCBMaW5lIDpjYWwgU2V0U3luKCJ0c3NjbCIpPENSPgorYW4gNTAuMTEwLjI5MCAmU3ludGF4LlRVVi5UU1MuR2VvbWV0cnkgOmNhbCBTZXRTeW4oInRzc2dtIik8Q1I+CithbiA1MC4xMTAuMzAwICZTeW50YXguVFVWLlRTUy5PcHRpY3MgOmNhbCBTZXRTeW4oInRzc29wIik8Q1I+CithbiA1MC4xMTAuMzIwICZTeW50YXguVFVWLlVJVC9VSUwgOmNhbCBTZXRTeW4oInVpbCIpPENSPgorYW4gNTAuMTEwLjMzMCAmU3ludGF4LlRVVi5VbnJlYWxTY3JpcHQgOmNhbCBTZXRTeW4oInVjIik8Q1I+CithbiA1MC4xMTAuMzUwICZTeW50YXguVFVWLlZhbGdyaW5kIDpjYWwgU2V0U3luKCJ2YWxncmluZCIpPENSPgorYW4gNTAuMTEwLjM2MCAmU3ludGF4LlRVVi5WZXJpbG9nXCBIREwgOmNhbCBTZXRTeW4oInZlcmlsb2ciKTxDUj4KK2FuIDUwLjExMC4zNzAgJlN5bnRheC5UVVYuVmdyaW5kZWZzIDpjYWwgU2V0U3luKCJ2Z3JpbmRlZnMiKTxDUj4KK2FuIDUwLjExMC4zODAgJlN5bnRheC5UVVYuVkhETCA6Y2FsIFNldFN5bigidmhkbCIpPENSPgorYW4gNTAuMTEwLjM5MCAmU3ludGF4LlRVVi5WaW0uVmltXCBoZWxwXCBmaWxlIDpjYWwgU2V0U3luKCJoZWxwIik8Q1I+CithbiA1MC4xMTAuNDAwICZTeW50YXguVFVWLlZpbS5WaW1cIHNjcmlwdCA6Y2FsIFNldFN5bigidmltIik8Q1I+CithbiA1MC4xMTAuNDEwICZTeW50YXguVFVWLlZpbS5WaW1pbmZvXCBmaWxlIDpjYWwgU2V0U3luKCJ2aW1pbmZvIik8Q1I+CithbiA1MC4xMTAuNDIwICZTeW50YXguVFVWLlZpcmF0YVwgY29uZmlnIDpjYWwgU2V0U3luKCJ2aXJhdGEiKTxDUj4KK2FuIDUwLjExMC40MzAgJlN5bnRheC5UVVYuVmlzdWFsXCBCYXNpYyA6Y2FsIFNldFN5bigidmIiKTxDUj4KK2FuIDUwLjExMC40NDAgJlN5bnRheC5UVVYuVlJNTCA6Y2FsIFNldFN5bigidnJtbCIpPENSPgorYW4gNTAuMTEwLjQ1MCAmU3ludGF4LlRVVi5WU0VcIEpDTCA6Y2FsIFNldFN5bigidnNlamNsIik8Q1I+CiBhbiA1MC4xMjAuMTAwICZTeW50YXguV1hZWi5XRUIuQ1dFQiA6Y2FsIFNldFN5bigiY3dlYiIpPENSPgogYW4gNTAuMTIwLjExMCAmU3ludGF4LldYWVouV0VCLldFQiA6Y2FsIFNldFN5bigid2ViIik8Q1I+CiBhbiA1MC4xMjAuMTIwICZTeW50YXguV1hZWi5XRUIuV0VCXCBDaGFuZ2VzIDpjYWwgU2V0U3luKCJjaGFuZ2UiKTxDUj4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2MudmltIGIvcnVudGltZS9zeW50YXgvYy52aW0KaW5kZXggNzU5YmViYi4uZWU3MzliOSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvYy52aW0KKysrIGIvcnVudGltZS9zeW50YXgvYy52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZToJQwogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgotIiBMYXN0IENoYW5nZToJMjAwNCBGZWIgMDQKKyIgTGFzdCBDaGFuZ2U6CTIwMDQgRGVjIDA5CiAKICIgRm9yIHZlcnNpb24gNS54OiBDbGVhciBhbGwgc3ludGF4IGl0ZW1zCiAiIEZvciB2ZXJzaW9uIDYueDogUXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCkBAIC0xMjQsMTUgKzEyNCwyNSBAQAogICBzeW50YXggcmVnaW9uIGNDb21tZW50U3RyaW5nCWNvbnRhaW5lZCBzdGFydD0rTFw9XFxcQDwhIisgc2tpcD0rXFxcXFx8XFwiKyBlbmQ9KyIrIGVuZD0rXCovK21lPXMtMSBjb250YWlucz1jU3BlY2lhbCxjQ29tbWVudFNraXAKICAgc3ludGF4IHJlZ2lvbiBjQ29tbWVudDJTdHJpbmcJY29udGFpbmVkIHN0YXJ0PStMXD1cXFxAPCEiKyBza2lwPStcXFxcXHxcXCIrIGVuZD0rIisgZW5kPSIkIiBjb250YWlucz1jU3BlY2lhbAogICBzeW50YXggcmVnaW9uICBjQ29tbWVudEwJc3RhcnQ9Ii8vIiBza2lwPSJcXCQiIGVuZD0iJCIga2VlcGVuZCBjb250YWlucz1AY0NvbW1lbnRHcm91cCxjQ29tbWVudDJTdHJpbmcsY0NoYXJhY3RlcixjTnVtYmVyc0NvbSxjU3BhY2VFcnJvcixAU3BlbGwKLSAgc3ludGF4IHJlZ2lvbiBjQ29tbWVudAltYXRjaGdyb3VwPWNDb21tZW50U3RhcnQgc3RhcnQ9Ii9cKiIgZW5kPSJcKi8iIGNvbnRhaW5zPUBjQ29tbWVudEdyb3VwLGNDb21tZW50U3RhcnRFcnJvcixjQ29tbWVudFN0cmluZyxjQ2hhcmFjdGVyLGNOdW1iZXJzQ29tLGNTcGFjZUVycm9yLEBTcGVsbAorICBpZiBleGlzdHMoImNfbm9fY29tbWVudF9mb2xkIikKKyAgICBzeW50YXggcmVnaW9uIGNDb21tZW50CW1hdGNoZ3JvdXA9Y0NvbW1lbnRTdGFydCBzdGFydD0iL1wqIiBlbmQ9IlwqLyIgY29udGFpbnM9QGNDb21tZW50R3JvdXAsY0NvbW1lbnRTdGFydEVycm9yLGNDb21tZW50U3RyaW5nLGNDaGFyYWN0ZXIsY051bWJlcnNDb20sY1NwYWNlRXJyb3IsQFNwZWxsCisgIGVsc2UKKyAgICBzeW50YXggcmVnaW9uIGNDb21tZW50CW1hdGNoZ3JvdXA9Y0NvbW1lbnRTdGFydCBzdGFydD0iL1wqIiBlbmQ9IlwqLyIgY29udGFpbnM9QGNDb21tZW50R3JvdXAsY0NvbW1lbnRTdGFydEVycm9yLGNDb21tZW50U3RyaW5nLGNDaGFyYWN0ZXIsY051bWJlcnNDb20sY1NwYWNlRXJyb3IsQFNwZWxsIGZvbGQKKyAgZW5kaWYKIGVsc2UKICAgc3luIHJlZ2lvbgljQ29tbWVudEwJc3RhcnQ9Ii8vIiBza2lwPSJcXCQiIGVuZD0iJCIga2VlcGVuZCBjb250YWlucz1AY0NvbW1lbnRHcm91cCxjU3BhY2VFcnJvcixAU3BlbGwKLSAgc3luIHJlZ2lvbgljQ29tbWVudAltYXRjaGdyb3VwPWNDb21tZW50U3RhcnQgc3RhcnQ9Ii9cKiIgZW5kPSJcKi8iIGNvbnRhaW5zPUBjQ29tbWVudEdyb3VwLGNDb21tZW50U3RhcnRFcnJvcixjU3BhY2VFcnJvcixAU3BlbGwKKyAgaWYgZXhpc3RzKCJjX25vX2NvbW1lbnRfZm9sZCIpCisgICAgc3luIHJlZ2lvbgljQ29tbWVudAltYXRjaGdyb3VwPWNDb21tZW50U3RhcnQgc3RhcnQ9Ii9cKiIgZW5kPSJcKi8iIGNvbnRhaW5zPUBjQ29tbWVudEdyb3VwLGNDb21tZW50U3RhcnRFcnJvcixjU3BhY2VFcnJvcixAU3BlbGwKKyAgZWxzZQorICAgIHN5biByZWdpb24JY0NvbW1lbnQJbWF0Y2hncm91cD1jQ29tbWVudFN0YXJ0IHN0YXJ0PSIvXCoiIGVuZD0iXCovIiBjb250YWlucz1AY0NvbW1lbnRHcm91cCxjQ29tbWVudFN0YXJ0RXJyb3IsY1NwYWNlRXJyb3IsQFNwZWxsIGZvbGQKKyAgZW5kaWYKIGVuZGlmCiAiIGtlZXAgYSAvLyBjb21tZW50IHNlcGFyYXRlbHksIGl0IHRlcm1pbmF0ZXMgYSBwcmVwcm9jLiBjb25kaXRpb25hbAogc3ludGF4IG1hdGNoCWNDb21tZW50RXJyb3IJZGlzcGxheSAiXCovIgogc3ludGF4IG1hdGNoCWNDb21tZW50U3RhcnRFcnJvciBkaXNwbGF5ICIvXCoibWU9ZS0xIGNvbnRhaW5lZAogCitzeW50YXggcmVnaW9uCWNCbG9jawkJc3RhcnQ9InsiIGVuZD0ifSIgdHJhbnNwYXJlbnQgZm9sZAorCiBzeW4ga2V5d29yZAljT3BlcmF0b3IJc2l6ZW9mCiBpZiBleGlzdHMoImNfZ251IikKICAgc3luIGtleXdvcmQJY1N0YXRlbWVudAlfX2FzbV9fCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9jc3MudmltIGIvcnVudGltZS9zeW50YXgvY3NzLnZpbQppbmRleCA5NTNmMjI0Li5jMjRiMjk5IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9jc3MudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2Nzcy52aW0KQEAgLTIsNyArMiw3IEBACiAiIExhbmd1YWdlOglDYXNjYWRpbmcgU3R5bGUgU2hlZXRzCiAiIE1haW50YWluZXI6CUNsYXVkaW8gRmxlaW5lciA8Y2xhdWRpb0BmbGVpbmVyLmNvbT4KICIgVVJMOgkJaHR0cDovL3d3dy5mbGVpbmVyLmNvbS92aW0vc3ludGF4L2Nzcy52aW0KLSIgTGFzdCBDaGFuZ2U6CTIwMDIgT2N0IDE5CisiIExhc3QgQ2hhbmdlOgkyMDA0IE1hciAzMAogIiBDU1MyIGJ5IE5pa29sYWkgV2VpYnVsbAogIiBGdWxsIENTUzIsIEhUTUw0IHN1cHBvcnQgYnkgWWV0aQogCkBAIC0zOCw3ICszOCw3IEBACiBzeW4gbWF0Y2ggY3NzU2VsZWN0b3JPcDIgIlt+fF1cPz0iIGNvbnRhaW5lZAogc3luIHJlZ2lvbiBjc3NBdHRyaWJ1dGVTZWxlY3RvciBtYXRjaGdyb3VwPWNzc1NlbGVjdG9yT3Agc3RhcnQ9IlxbIiBlbmQ9Il0iIHRyYW5zcGFyZW50IGNvbnRhaW5zPWNzc1VuaWNvZGVFc2NhcGUsY3NzU2VsZWN0b3JPcDIsY3NzU3RyaW5nUSxjc3NTdHJpbmdRUQogCi1zeW4gbWF0Y2ggY3NzSWRlbnRpZmllciAiI1xpXCsiCitzeW4gbWF0Y2ggY3NzSWRlbnRpZmllciAiI1tBLVphLXrALf9fQF1bQS1aYS16wC3/MC05X0AtXSoiCiAKIHN5biBtYXRjaCBjc3NNZWRpYSAiQG1lZGlhXD4iIG5leHRncm91cD1jc3NNZWRpYVR5cGUgc2tpcHdoaXRlIHNraXBubAogc3luIGtleXdvcmQgY3NzTWVkaWFUeXBlIGNvbnRhaW5lZCBzY3JlZW4gcHJpbnQgYXVyYWwgYnJhaWxlIGVtYm9zZWQgaGFuZGhlbGQgcHJvamVjdGlvbiB0eSB0diBhbGwgbmV4dGdyb3VwPWNzc01lZGlhQ29tbWEsY3NzTWVkaWFCbG9jayBza2lwd2hpdGUgc2tpcG5sCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9kZWJjb250cm9sLnZpbSBiL3J1bnRpbWUvc3ludGF4L2RlYmNvbnRyb2wudmltCmluZGV4IGQ1ODBmZGIuLjNlMjZiNGMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2RlYmNvbnRyb2wudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2RlYmNvbnRyb2wudmltCkBAIC0xLDcgKzEsMTQgQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOglEZWJpYW4gY29udHJvbCBmaWxlcwotIiBNYWludGFpbmVyOglXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotIiBMYXN0IENoYW5nZToJT2N0b2JlciAyOCwgMjAwMQorIiBNYWludGFpbmVyOglHZXJmcmllZCBGdWNocyA8YWxmaWVAZGViaWFuLm9yZz4KKyIgTGFzdCBDaGFuZ2U6ICAyOSBPY3QgMjAwNAorIiBVUkw6ICAgICAgICAgIGh0dHA6Ly9hbGZpZS5pc3Qub3JnL3NvZnR3YXJlL3ZpbS9zeW50YXgvZGViY29udHJvbC52aW0KKyIKKyIgT3JpZ2luYWwgVmVyc2lvbjogV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworIiBDb21tZW50cyBhcmUgdmVyeSB3ZWxjb21lIC0gYnV0IHBsZWFzZSBtYWtlIHN1cmUgdGhhdCB5b3UgYXJlIGNvbW1lbnRpbmcgb24KKyIgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgZmlsZS4KKyIgU1BBTSBpcyBfTk9UXyB3ZWxjb21lIC0gYmUgcmVhZHkgdG8gYmUgcmVwb3J0ZWQhCiAKICIgU3RhbmRhcmQgc3ludGF4IGluaXRpYWxpemF0aW9uCiBpZiB2ZXJzaW9uIDwgNjAwCkBAIC0xOCwxMCArMjUsMTAgQEAKIHN5biBtYXRjaCBkZWJDb250cm9sU3BhY2UgIiAiCiAKICIgRGVmaW5lIHNvbWUgY29tbW9uIGV4cHJlc3Npb25zIHdlIGNhbiB1c2UgbGF0ZXIgb24KLXN5biBtYXRjaCBkZWJjb250cm9sQXJjaGl0ZWN0dXJlIGNvbnRhaW5lZCAiXChhbGxcfGFueVx8YWxwaGFcfGFybVx8aHBwYVx8aWE2NFx8aTM4Nlx8bTY4a1x8bWlwc2VsXHxtaXBzXHxwb3dlcnBjXHxzaFx8c2hlYlx8c3BhcmNcfGh1cmQtaTM4NlwpIgorc3luIG1hdGNoIGRlYmNvbnRyb2xBcmNoaXRlY3R1cmUgY29udGFpbmVkICJcKGFsbFx8YW55XHxhbHBoYVx8YW1kNjRcfGFybVx8aHBwYVx8aTM4Nlx8aWE2NFx8bTY4a1x8bWlwc2VsXHxtaXBzXHxwb3dlcnBjXHxzMzkwXHxzaGViXHxzaFx8c3BhcmM2NFx8c3BhcmNcfGh1cmQtaTM4Nlx8a2ZyZWVic2QtaTM4Nlx8a25ldGJzZC1pMzg2XHxuZXRic2QtaTM4NlwpIgogc3luIG1hdGNoIGRlYmNvbnRyb2xOYW1lIGNvbnRhaW5lZCAiW2Etel1bYS16MC05Ky1dKiIKIHN5biBtYXRjaCBkZWJjb250cm9sUHJpb3JpdHkgY29udGFpbmVkICJcKGV4dHJhXHxpbXBvcnRhbnRcfG9wdGlvbmFsXHxyZXF1aXJlZFx8c3RhbmRhcmRcKSIKLXN5biBtYXRjaCBkZWJjb250cm9sU2VjdGlvbiBjb250YWluZWQgIlwoXChjb250cmliXHxub24tZnJlZVx8bm9uLVVTL21haW5cfG5vbi1VUy9jb250cmliXHxub24tVVMvbm9uLWZyZWVcKS9cKVw9XChhZG1pblx8YmFzZVx8Y29tbVx8ZGV2ZWxcfGRvY1x8ZWRpdG9yc1x8ZWxlY3Ryb25pY3NcfGdhbWVzXHxncmFwaGljc1x8aGFtcmFkaW9cfGludGVycHJldGVyc1x8bGlic1x8bWFpbFx8bWF0aFx8bWlzY1x8bmV0XHxuZXdzXHxvbGRsaWJzXHxvdGhlcm9zZnNcfHNjaWVuY2VcfHNoZWxsc1x8c291bmRcfHRleHRcfHRleFx8dXRpbHNcfHdlYlx8eDExXHxkZWJpYW4taW5zdGFsbGVyXCkiCitzeW4gbWF0Y2ggZGViY29udHJvbFNlY3Rpb24gY29udGFpbmVkICJcKFwoY29udHJpYlx8bm9uLWZyZWVcfG5vbi1VUy9tYWluXHxub24tVVMvY29udHJpYlx8bm9uLVVTL25vbi1mcmVlXCkvXClcPVwoYWRtaW5cfGJhc2VcfGNvbW1cfGRldmVsXHxkb2NcfGVkaXRvcnNcfGVsZWN0cm9uaWNzXHxlbWJlZGRlZFx8Z2FtZXNcfGdub21lXHxncmFwaGljc1x8aGFtcmFkaW9cfGludGVycHJldGVyc1x8a2RlXHxsaWJzXHxsaWJkZXZlbFx8bWFpbFx8bWF0aFx8bWlzY1x8bmV0XHxuZXdzXHxvbGRsaWJzXHxvdGhlcm9zZnNcfHBlcmxcfHB5dGhvblx8c2NpZW5jZVx8c2hlbGxzXHxzb3VuZFx8dGV4dFx8dGV4XHx1dGlsc1x8d2ViXHx4MTFcfGRlYmlhbi1pbnN0YWxsZXJcKSIKIHN5biBtYXRjaCBkZWJjb250cm9sVmFyaWFibGUgY29udGFpbmVkICJcJHsuXHstfX0iCiAKICIgQW4gZW1haWwgYWRkcmVzcwpAQCAtMjksNyArMzYsNyBAQAogc3luIG1hdGNoCWRlYmNvbnRyb2xFbWFpbAkiPC5cey19PiIKIAogIiBMaXN0IG9mIGFsbCBsZWdhbCBrZXlzCi1zeW4gbWF0Y2ggZGViY29udHJvbEtleSBjb250YWluZWQgIl5cKFNvdXJjZVx8UGFja2FnZVx8U2VjdGlvblx8UHJpb3JpdHlcfE1haW50YWluZXJcfFVwbG9hZGVyc1x8QnVpbGQtRGVwZW5kc1x8QnVpbGQtQ29uZmxpY3RzXHxCdWlsZC1EZXBlbmRzLUluZGVwXHxCdWlsZC1Db25mbGljdHMtSW5kZXBcfFN0YW5kYXJkcy1WZXJzaW9uXHxQcmUtRGVwZW5kc1x8RGVwZW5kc1x8UmVjb21tZW5kc1x8U3VnZ2VzdHNcfFByb3ZpZGVzXHxSZXBsYWNlc1x8Q29uZmxpY3RzXHxFc3NlbnRpYWxcfEFyY2hpdGVjdHVyZVx8RGVzY3JpcHRpb25cfEJ1Z3NcfE9yaWdpblwpOiAqIgorc3luIG1hdGNoIGRlYmNvbnRyb2xLZXkgY29udGFpbmVkICJeXChTb3VyY2VcfFBhY2thZ2VcfFNlY3Rpb25cfFByaW9yaXR5XHxNYWludGFpbmVyXHxVcGxvYWRlcnNcfEJ1aWxkLURlcGVuZHNcfEJ1aWxkLUNvbmZsaWN0c1x8QnVpbGQtRGVwZW5kcy1JbmRlcFx8QnVpbGQtQ29uZmxpY3RzLUluZGVwXHxTdGFuZGFyZHMtVmVyc2lvblx8UHJlLURlcGVuZHNcfERlcGVuZHNcfFJlY29tbWVuZHNcfFN1Z2dlc3RzXHxQcm92aWRlc1x8UmVwbGFjZXNcfENvbmZsaWN0c1x8RXNzZW50aWFsXHxBcmNoaXRlY3R1cmVcfERlc2NyaXB0aW9uXHxCdWdzXHxPcmlnaW5cfEVuaGFuY2VzXCk6ICoiCiAKICIgRmllbGRzIGZvciB3aGljaCB3ZSBkbyBzdHJpY3Qgc3ludGF4IGNoZWNraW5nCiBzeW4gcmVnaW9uIGRlYmNvbnRyb2xTdHJpY3RGaWVsZCBzdGFydD0iXkFyY2hpdGVjdHVyZSIgZW5kPSIkIiBjb250YWlucz1kZWJjb250cm9sS2V5LGRlYmNvbnRyb2xBcmNoaXRlY3R1cmUsZGViY29udHJvbFNwYWNlIG9uZWxpbmUKQEAgLTM4LDcgKzQ1LDcgQEAKIHN5biByZWdpb24gZGViY29udHJvbFN0cmljdEZpZWxkIHN0YXJ0PSJeU2VjdGlvbiIgZW5kPSIkIiBjb250YWlucz1kZWJjb250cm9sS2V5LGRlYmNvbnRyb2xTZWN0aW9uIG9uZWxpbmUKIAogIiBDYXRjaC1hbGwgZm9yIHRoZSBvdGhlciBsZWdhbCBmaWVsZHMKLXN5biByZWdpb24gZGViY29udHJvbEZpZWxkIHN0YXJ0PSJeXChNYWludGFpbmVyXHxCdWlsZC1EZXBlbmRzXHxCdWlsZC1Db25mbGljdHNcfEJ1aWxkLURlcGVuZHMtSW5kZXBcfEJ1aWxkLUNvbmZsaWN0cy1JbmRlcFx8U3RhbmRhcmRzLVZlcnNpb25cfFByZS1EZXBlbmRzXHxEZXBlbmRzXHxSZWNvbW1lbmRzXHxTdWdnZXN0c1x8UHJvdmlkZXNcfFJlcGxhY2VzXHxDb25mbGljdHNcfEVzc2VudGlhbFx8QnVnc1x8T3JpZ2luXCk6IiBlbmQ9IiQiIGNvbnRhaW5zPWRlYmNvbnRyb2xLZXksZGViY29udHJvbFZhcmlhYmxlLGRlYmNvbnRyb2xFbWFpbCBvbmVsaW5lCitzeW4gcmVnaW9uIGRlYmNvbnRyb2xGaWVsZCBzdGFydD0iXlwoTWFpbnRhaW5lclx8QnVpbGQtRGVwZW5kc1x8QnVpbGQtQ29uZmxpY3RzXHxCdWlsZC1EZXBlbmRzLUluZGVwXHxCdWlsZC1Db25mbGljdHMtSW5kZXBcfFN0YW5kYXJkcy1WZXJzaW9uXHxQcmUtRGVwZW5kc1x8RGVwZW5kc1x8UmVjb21tZW5kc1x8U3VnZ2VzdHNcfFByb3ZpZGVzXHxSZXBsYWNlc1x8Q29uZmxpY3RzXHxFc3NlbnRpYWxcfEJ1Z3NcfE9yaWdpblx8RW5oYW5jZXNcKToiIGVuZD0iJCIgY29udGFpbnM9ZGViY29udHJvbEtleSxkZWJjb250cm9sVmFyaWFibGUsZGViY29udHJvbEVtYWlsIG9uZWxpbmUKIHN5biByZWdpb24gZGViY29udHJvbE11bHRpRmllbGQgc3RhcnQ9Il5cKFVwbG9hZGVyc1x8RGVzY3JpcHRpb25cKToiIHNraXA9Il4gIiBlbmQ9Il4kIm1lPXMtMSBlbmQ9Il5bXiBdIm1lPXMtMSBjb250YWlucz1kZWJjb250cm9sS2V5LGRlYmNvbnRyb2xFbWFpbCxkZWJjb250cm9sVmFyaWFibGUKIAogIiBBc3NvY2lhdGUgb3VyIG1hdGNoZXMgYW5kIHJlZ2lvbnMgd2l0aCBwcmV0dHkgY29sb3VycwpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvamF2YS52aW0gYi9ydW50aW1lL3N5bnRheC9qYXZhLnZpbQppbmRleCBiNDdjMTdlLi4wMzBlOWVjIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9qYXZhLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9qYXZhLnZpbQpAQCAtMiw3ICsyLDcgQEAKICIgTGFuZ3VhZ2U6ICAgICBKYXZhCiAiIE1haW50YWluZXI6ICAgQ2xhdWRpbyBGbGVpbmVyIDxjbGF1ZGlvQGZsZWluZXIuY29tPgogIiBVUkw6CQlodHRwOi8vd3d3LmZsZWluZXIuY29tL3ZpbS9zeW50YXgvamF2YS52aW0KLSIgTGFzdCBDaGFuZ2U6ICAyMDA0IEFwciAyMworIiBMYXN0IENoYW5nZTogIDIwMDQgTm92IDEyCiAKICIgUGxlYXNlIGNoZWNrIDpoZWxwIGphdmEudmltIGZvciBjb21tZW50cyBvbiBzb21lIG9mIHRoZSBvcHRpb25zIGF2YWlsYWJsZS4KIApAQCAtMzcsNyArMzcsNyBAQAogCiAiIGtleXdvcmQgZGVmaW5pdGlvbnMKIHN5biBrZXl3b3JkIGphdmFFeHRlcm5hbAluYXRpdmUgcGFja2FnZQotc3luIG1hdGNoIGphdmFFeHRlcm5hbAkJIlw8aW1wb3J0XChcc1wrc3RhdGljXD5cKVw/Igorc3luIG1hdGNoIGphdmFFeHRlcm5hbCAgICAgICAgICAiXDxpbXBvcnRcPlwoXHNcK3N0YXRpY1w+XClcPyIKIHN5biBrZXl3b3JkIGphdmFFcnJvcgkJZ290byBjb25zdAogc3luIGtleXdvcmQgamF2YUNvbmRpdGlvbmFsCWlmIGVsc2Ugc3dpdGNoCiBzeW4ga2V5d29yZCBqYXZhUmVwZWF0CQl3aGlsZSBmb3IgZG8KQEAgLTIyOCw2ICsyMjgsNyBAQAogCiAgICIgdG8gbWFrZSB0aGlzIHdvcmsgeW91IG11c3QgZGVmaW5lIHRoZSBoaWdobGlnaHRpbmcgZm9yIHRoZXNlIGdyb3VwcwogICBzeW4gbWF0Y2ggamF2YURlYnVnICJcPFN5c3RlbVwuXChvdXRcfGVyclwpXC5wcmludFwobG5cKSpccyooIm1lPWUtMSBjb250YWlucz1qYXZhRGVidWcuKiBuZXh0Z3JvdXA9amF2YURlYnVnUGFyZW4KKyAgc3luIG1hdGNoIGphdmFEZWJ1ZyAiXDxwXHMqKCJtZT1lLTEgY29udGFpbnM9amF2YURlYnVnLiogbmV4dGdyb3VwPWphdmFEZWJ1Z1BhcmVuCiAgIHN5biBtYXRjaCBqYXZhRGVidWcgIltBLVphLXpdW2EtekEtWjAtOV9dKlwucHJpbnRTdGFja1RyYWNlXHMqKCJtZT1lLTEgY29udGFpbnM9amF2YURlYnVnLiogbmV4dGdyb3VwPWphdmFEZWJ1Z1BhcmVuCiAgIHN5biBtYXRjaCBqYXZhRGVidWcgIlw8dHJhY2VbU0xdXD1ccyooIm1lPWUtMSBjb250YWlucz1qYXZhRGVidWcuKiBuZXh0Z3JvdXA9amF2YURlYnVnUGFyZW4KIApAQCAtMjYzLDYgKzI2NCwxMiBAQAogc3luIHJlZ2lvbiAgamF2YVBhcmVuVDEgdHJhbnNwYXJlbnQgbWF0Y2hncm91cD1qYXZhUGFyZW4xIHN0YXJ0PSIoIiBlbmQ9IikiIGNvbnRhaW5zPUBqYXZhVG9wLGphdmFQYXJlblQyIGNvbnRhaW5lZAogc3luIHJlZ2lvbiAgamF2YVBhcmVuVDIgdHJhbnNwYXJlbnQgbWF0Y2hncm91cD1qYXZhUGFyZW4yIHN0YXJ0PSIoIiBlbmQ9IikiIGNvbnRhaW5zPUBqYXZhVG9wLGphdmFQYXJlblQgIGNvbnRhaW5lZAogc3luIG1hdGNoICAgamF2YVBhcmVuRXJyb3IgICAgICAgIikiCisiIGNhdGNoIGVycm9ycyBjYXVzZWQgYnkgd3Jvbmcgc3F1YXJlIHBhcmVudGhlc2lzCitzeW4gcmVnaW9uICBqYXZhUGFyZW5UICB0cmFuc3BhcmVudCBtYXRjaGdyb3VwPWphdmFQYXJlbiAgc3RhcnQ9IlxbIiAgZW5kPSJcXSIgY29udGFpbnM9QGphdmFUb3AsamF2YVBhcmVuVDEKK3N5biByZWdpb24gIGphdmFQYXJlblQxIHRyYW5zcGFyZW50IG1hdGNoZ3JvdXA9amF2YVBhcmVuMSBzdGFydD0iXFsiIGVuZD0iXF0iIGNvbnRhaW5zPUBqYXZhVG9wLGphdmFQYXJlblQyIGNvbnRhaW5lZAorc3luIHJlZ2lvbiAgamF2YVBhcmVuVDIgdHJhbnNwYXJlbnQgbWF0Y2hncm91cD1qYXZhUGFyZW4yIHN0YXJ0PSJcWyIgZW5kPSJcXSIgY29udGFpbnM9QGphdmFUb3AsamF2YVBhcmVuVCAgY29udGFpbmVkCitzeW4gbWF0Y2ggICBqYXZhUGFyZW5FcnJvciAgICAgICAiXF0iCisKIEphdmFIaUxpbmsgamF2YVBhcmVuRXJyb3IgICAgICAgamF2YUVycm9yCiAKIGlmICFleGlzdHMoImphdmFfbWlubGluZXMiKQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvamF2YXNjcmlwdC52aW0gYi9ydW50aW1lL3N5bnRheC9qYXZhc2NyaXB0LnZpbQppbmRleCBhMDM3NDk2Li5jMjJhZWZhIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9qYXZhc2NyaXB0LnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9qYXZhc2NyaXB0LnZpbQpAQCAtMiw3ICsyLDcgQEAKICIgTGFuZ3VhZ2U6CUphdmFTY3JpcHQKICIgTWFpbnRhaW5lcjoJQ2xhdWRpbyBGbGVpbmVyIDxjbGF1ZGlvQGZsZWluZXIuY29tPgogIiBVUkw6CQlodHRwOi8vd3d3LmZsZWluZXIuY29tL3ZpbS9zeW50YXgvamF2YXNjcmlwdC52aW0KLSIgTGFzdCBDaGFuZ2U6CTIwMDQgTWF5IDE2CisiIExhc3QgQ2hhbmdlOgkyMDA0IE5vdiAyMAogCiAiIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcwogIiBGb3IgdmVyc2lvbiA2Lng6IFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZApAQCAtMzUsMTQgKzM1LDE1IEBACiBzeW4gcmVnaW9uICBqYXZhU2NyaXB0U3RyaW5nUwkgICAgICAgc3RhcnQ9KycrICBza2lwPStcXFxcXHxcXCcrICBlbmQ9KycrICBjb250YWlucz1qYXZhU2NyaXB0U3BlY2lhbCxAaHRtbFByZXByb2MKIHN5biBtYXRjaCAgIGphdmFTY3JpcHRTcGVjaWFsQ2hhcmFjdGVyICInXFwuJyIKIHN5biBtYXRjaCAgIGphdmFTY3JpcHROdW1iZXIJICAgICAgICItXD1cPFxkXCtMXD1cPlx8MFt4WF1bMC05YS1mQS1GXVwrXD4iCi1zeW4gcmVnaW9uICBqYXZhU2NyaXB0UmVnZXhwU3RyaW5nICAgICBzdGFydD0rLysgc2tpcD0rXFxcXFx8XFwvKyBlbmQ9Ky9bZ2ldXD9ccyokKyBlbmQ9Ky9bZ2ldXD9ccypbOywpXSttZT1lLTEgY29udGFpbnM9QGh0bWxQcmVwcm9jIG9uZWxpbmUKLXN5biBrZXl3b3JkIGphdmFTY3JpcHRDb25kaXRpb25hbCAgICAgIGlmIGVsc2UKLXN5biBrZXl3b3JkIGphdmFTY3JpcHRSZXBlYXQJICAgICAgIHdoaWxlIGZvcgotc3luIGtleXdvcmQgamF2YVNjcmlwdEJyYW5jaAkgICAgICAgYnJlYWsgY29udGludWUgc3dpdGNoIGNhc2UgZGVmYXVsdAotc3luIGtleXdvcmQgamF2YVNjcmlwdE9wZXJhdG9yCSAgICAgICBuZXcgaW4KLXN5biBrZXl3b3JkIGphdmFTY3JpcHRUeXBlCSAgICAgICB0aGlzIHZhciBjb25zdAotc3luIGtleXdvcmQgamF2YVNjcmlwdFN0YXRlbWVudCAgICAgICAgcmV0dXJuIHdpdGgKLXN5biBrZXl3b3JkIGphdmFTY3JpcHRCb29sZWFuCSAgICAgICB0cnVlIGZhbHNlCitzeW4gcmVnaW9uICBqYXZhU2NyaXB0UmVnZXhwU3RyaW5nICAgICBzdGFydD0rL1teLypdK21lPWUtMSBza2lwPStcXFxcXHxcXC8rIGVuZD0rL1tnaV1cP1xzKiQrIGVuZD0rL1tnaV1cP1xzKls7LiwpXSttZT1lLTEgY29udGFpbnM9QGh0bWxQcmVwcm9jIG9uZWxpbmUKK3N5biBrZXl3b3JkIGphdmFTY3JpcHRDb25kaXRpb25hbAlpZiBlbHNlCitzeW4ga2V5d29yZCBqYXZhU2NyaXB0UmVwZWF0CQl3aGlsZSBmb3IKK3N5biBrZXl3b3JkIGphdmFTY3JpcHRCcmFuY2gJCWJyZWFrIGNvbnRpbnVlIHN3aXRjaCBjYXNlIGRlZmF1bHQKK3N5biBrZXl3b3JkIGphdmFTY3JpcHRPcGVyYXRvcgkJbmV3IGluCitzeW4ga2V5d29yZCBqYXZhU2NyaXB0VHlwZQkJdGhpcyB2YXIgY29uc3QKK3N5biBrZXl3b3JkIGphdmFTY3JpcHRTdGF0ZW1lbnQJCXJldHVybiB3aXRoCitzeW4ga2V5d29yZCBqYXZhU2NyaXB0Qm9vbGVhbgkJdHJ1ZSBmYWxzZQorc3luIGtleXdvcmQgamF2YVNjcmlwdE51bGwJCW51bGwKIAogaWYgZXhpc3RzKCJqYXZhU2NyaXB0X2ZvbGQiKQogICAgIHN5biBtYXRjaAlqYXZhU2NyaXB0RnVuY3Rpb24gICAgICAiXDxmdW5jdGlvblw+IgpAQCAtNjIsNyArNjMsOCBAQAogc3luIHN5bmMgbWF4bGluZXM9MTAwCiAKICIgY2F0Y2ggZXJyb3JzIGNhdXNlZCBieSB3cm9uZyBwYXJlbnRoZXNpcwotc3luIHJlZ2lvbiAgamF2YVNjcmlwdFBhcmVuICAgICAgIHRyYW5zcGFyZW50IHN0YXJ0PSIoIiBlbmQ9IikiIGNvbnRhaW5zPWphdmFTY3JpcHRQYXJlbixqYXZhU2NyaXB0Q29tbWVudCxqYXZhU2NyaXB0U3BlY2lhbCxqYXZhU2NyaXB0U3RyaW5nRCxqYXZhU2NyaXB0U3RyaW5nUyxqYXZhU2NyaXB0U3BlY2lhbENoYXJhY3RlcixqYXZhU2NyaXB0TnVtYmVyLGphdmFTY3JpcHRSZWdleHBTdHJpbmcsamF2YVNjcmlwdEJvb2xlYW4samF2YVNjcmlwdEJyYWNlcworc3luIHJlZ2lvbiAgamF2YVNjcmlwdFBhcmVuICAgICAgIHRyYW5zcGFyZW50IHN0YXJ0PSIoIiBlbmQ9IikiIGNvbnRhaW5zPWphdmFTY3JpcHRQYXJlbixqYXZhU2NyaXB0Q29tbWVudCxqYXZhU2NyaXB0U3BlY2lhbCxqYXZhU2NyaXB0U3RyaW5nRCxqYXZhU2NyaXB0U3RyaW5nUyxqYXZhU2NyaXB0U3BlY2lhbENoYXJhY3RlcixqYXZhU2NyaXB0TnVtYmVyLGphdmFTY3JpcHRSZWdleHBTdHJpbmcsamF2YVNjcmlwdEJvb2xlYW4samF2YVNjcmlwdEJyYWNlcyxqYXZhU2NyaXB0RnVuY3Rpb24samF2YVNjcmlwdEZ1bmN0aW9uRm9sZCxqYXZhU2NyaXB0Q29uZGl0aW9uYWwsamF2YVNjcmlwdFJlcGVhdCxqYXZhU2NyaXB0QnJhbmNoLGphdmFTY3JpcHRPcGVyYXRvcixqYXZhU2NyaXB0VHlwZSxqYXZhU2NyaXB0U3RhdGVtZW50LGphdmFTY3JpcHRCb29sZWFuLGphdmFTY3JpcHRDb25zdGFudAorIHN5biByZWdpb24gIGphdmFTY3JpcHRQYXJlbiAgICAgICB0cmFuc3BhcmVudCBzdGFydD0iKCIgZW5kPSIpIiBjb250YWlucz1qYXZhU2NyaXB0UGFyZW4samF2YVNjcmlwdENvbW1lbnQsamF2YVNjcmlwdFNwZWNpYWwsamF2YVNjcmlwdFN0cmluZ0QsamF2YVNjcmlwdFN0cmluZ1MsamF2YVNjcmlwdFNwZWNpYWxDaGFyYWN0ZXIsamF2YVNjcmlwdE51bWJlcixqYXZhU2NyaXB0UmVnZXhwU3RyaW5nLGphdmFTY3JpcHRCb29sZWFuLGphdmFTY3JpcHRCcmFjZXMKIHN5biBtYXRjaCAgIGphdmFTY3JQYXJlbkVycm9yICAiKSIKIAogaWYgbWFpbl9zeW50YXggPT0gImphdmFzY3JpcHQiCkBAIC03OSwyNyArODEsMjggQEAKICAgZWxzZQogICAgIGNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGRlZiBsaW5rIDxhcmdzPgogICBlbmRpZgotICBIaUxpbmsgamF2YVNjcmlwdENvbW1lbnQJICAgICBDb21tZW50Ci0gIEhpTGluayBqYXZhU2NyaXB0TGluZUNvbW1lbnQJICAgICBDb21tZW50Ci0gIEhpTGluayBqYXZhU2NyaXB0Q29tbWVudFRvZG8JICAgICBUb2RvCi0gIEhpTGluayBqYXZhU2NyaXB0U3BlY2lhbAkgICAgIFNwZWNpYWwKLSAgSGlMaW5rIGphdmFTY3JpcHRTdHJpbmdTCSAgICAgU3RyaW5nCi0gIEhpTGluayBqYXZhU2NyaXB0U3RyaW5nRAkgICAgIFN0cmluZwotICBIaUxpbmsgamF2YVNjcmlwdENoYXJhY3RlcgkgICAgIENoYXJhY3RlcgotICBIaUxpbmsgamF2YVNjcmlwdFNwZWNpYWxDaGFyYWN0ZXIgIGphdmFTY3JpcHRTcGVjaWFsCi0gIEhpTGluayBqYXZhU2NyaXB0TnVtYmVyCSAgICAgamF2YVNjcmlwdFZhbHVlCi0gIEhpTGluayBqYXZhU2NyaXB0Q29uZGl0aW9uYWwJICAgICBDb25kaXRpb25hbAotICBIaUxpbmsgamF2YVNjcmlwdFJlcGVhdAkgICAgIFJlcGVhdAotICBIaUxpbmsgamF2YVNjcmlwdEJyYW5jaAkgICAgIENvbmRpdGlvbmFsCi0gIEhpTGluayBqYXZhU2NyaXB0T3BlcmF0b3IJICAgICBPcGVyYXRvcgotICBIaUxpbmsgamF2YVNjcmlwdFR5cGUJCSAgICAgVHlwZQotICBIaUxpbmsgamF2YVNjcmlwdFN0YXRlbWVudAkgICAgIFN0YXRlbWVudAotICBIaUxpbmsgamF2YVNjcmlwdEZ1bmN0aW9uCSAgICAgRnVuY3Rpb24KLSAgSGlMaW5rIGphdmFTY3JpcHRCcmFjZXMJICAgICBGdW5jdGlvbgotICBIaUxpbmsgamF2YVNjcmlwdEVycm9yCSAgICAgRXJyb3IKLSAgSGlMaW5rIGphdmFTY3JQYXJlbkVycm9yCSAgICAgamF2YVNjcmlwdEVycm9yCi0gIEhpTGluayBqYXZhU2NyaXB0Qm9vbGVhbgkgICAgIEJvb2xlYW4KLSAgSGlMaW5rIGphdmFTY3JpcHRSZWdleHBTdHJpbmcgICAgICBTdHJpbmcKKyAgSGlMaW5rIGphdmFTY3JpcHRDb21tZW50CQlDb21tZW50CisgIEhpTGluayBqYXZhU2NyaXB0TGluZUNvbW1lbnQJCUNvbW1lbnQKKyAgSGlMaW5rIGphdmFTY3JpcHRDb21tZW50VG9kbwkJVG9kbworICBIaUxpbmsgamF2YVNjcmlwdFNwZWNpYWwJCVNwZWNpYWwKKyAgSGlMaW5rIGphdmFTY3JpcHRTdHJpbmdTCQlTdHJpbmcKKyAgSGlMaW5rIGphdmFTY3JpcHRTdHJpbmdECQlTdHJpbmcKKyAgSGlMaW5rIGphdmFTY3JpcHRDaGFyYWN0ZXIJCUNoYXJhY3RlcgorICBIaUxpbmsgamF2YVNjcmlwdFNwZWNpYWxDaGFyYWN0ZXIJamF2YVNjcmlwdFNwZWNpYWwKKyAgSGlMaW5rIGphdmFTY3JpcHROdW1iZXIJCWphdmFTY3JpcHRWYWx1ZQorICBIaUxpbmsgamF2YVNjcmlwdENvbmRpdGlvbmFsCQlDb25kaXRpb25hbAorICBIaUxpbmsgamF2YVNjcmlwdFJlcGVhdAkJUmVwZWF0CisgIEhpTGluayBqYXZhU2NyaXB0QnJhbmNoCQlDb25kaXRpb25hbAorICBIaUxpbmsgamF2YVNjcmlwdE9wZXJhdG9yCQlPcGVyYXRvcgorICBIaUxpbmsgamF2YVNjcmlwdFR5cGUJCQlUeXBlCisgIEhpTGluayBqYXZhU2NyaXB0U3RhdGVtZW50CQlTdGF0ZW1lbnQKKyAgSGlMaW5rIGphdmFTY3JpcHRGdW5jdGlvbgkJRnVuY3Rpb24KKyAgSGlMaW5rIGphdmFTY3JpcHRCcmFjZXMJCUZ1bmN0aW9uCisgIEhpTGluayBqYXZhU2NyaXB0RXJyb3IJCUVycm9yCisgIEhpTGluayBqYXZhU2NyUGFyZW5FcnJvcgkJamF2YVNjcmlwdEVycm9yCisgIEhpTGluayBqYXZhU2NyaXB0TnVsbAkJCUtleXdvcmQKKyAgSGlMaW5rIGphdmFTY3JpcHRCb29sZWFuCQlCb29sZWFuCisgIEhpTGluayBqYXZhU2NyaXB0UmVnZXhwU3RyaW5nCQlTdHJpbmcKICAgZGVsY29tbWFuZCBIaUxpbmsKIGVuZGlmCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2xleC52aW0gYi9ydW50aW1lL3N5bnRheC9sZXgudmltCmluZGV4IDZjNjEyMWUuLjlhZGMzODggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2xleC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvbGV4LnZpbQpAQCAtMSw4ICsxLDggQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOglMZXgKICIgTWFpbnRhaW5lcjoJRHIuIENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiA8TmRyT2NoaXBTQFBjYW1wYmVsbEFmYW1pbHkuTWJpej4KLSIgTGFzdCBDaGFuZ2U6CUp1bCAyOCwgMjAwNAotIiBWZXJzaW9uOgk1CisiIExhc3QgQ2hhbmdlOglOb3YgMjYsIDIwMDQKKyIgVmVyc2lvbjoJNgogIiBVUkw6CWh0dHA6Ly93d3cuZXJvbHMuY29tL2FzdHJvbmF1dC92aW0vaW5kZXguaHRtbCN2aW1saW5rc19zeW50YXgKICIKICIgT3B0aW9uOgpAQCAtNTYsNyArNTYsNyBAQAogc3luIHJlZ2lvbiBsZXhQYXRTdHJpbmcJbWF0Y2hncm91cD1TdHJpbmcgc3RhcnQ9KyIrCXNraXA9K1xcXFxcfFxcIisJbWF0Y2hncm91cD1TdHJpbmcgZW5kPSsiKwljb250YWluZWQKIHN5biBtYXRjaCAgbGV4UGF0VGFnCSJePFxJXGkqXCgsXElcaSpcKSo+KiIJCQljb250YWluZWQgbmV4dGdyb3VwPWxleFBhdCxsZXhQYXRUYWcsbGV4TW9yZVBhdCxsZXhQYXRTZXAKIHN5biBtYXRjaCAgbGV4UGF0VGFnCStePFxJXGkqXCgsXElcaSpcKSo+KlwoXFxcXFwpKlxcIisJCWNvbnRhaW5lZCBuZXh0Z3JvdXA9bGV4UGF0LGxleFBhdFRhZyxsZXhNb3JlUGF0LGxleFBhdFNlcAotc3luIHJlZ2lvbiBsZXhQYXRDb21tZW50CXN0YXJ0PSJeXHMqL1wqIiBlbmQ9IlwqLyIJCXNraXBubAljb250YWluZWQgY29udGFpbnM9Y1RvZG8gbmV4dGdyb3VwPWxleFBhdENvbW1lbnQsbGV4UGF0LGxleFBhdFN0cmluZyxsZXhQYXRUYWcsQFNwZWxsCitzeW4gcmVnaW9uIGxleFBhdENvbW1lbnQJc3RhcnQ9Il5ccyovXCoiIGVuZD0iXCovIgkJc2tpcG5sCWNvbnRhaW5lZCBjb250YWlucz1jVG9kbyBza2lwd2hpdGUgbmV4dGdyb3VwPWxleFBhdENvbW1lbnQsbGV4UGF0LEBTcGVsbAogc3luIG1hdGNoICBsZXhQYXRDb2RlTGluZQkiLiokIgkJCQkJY29udGFpbmVkIGNvbnRhaW5zPUFMTEJVVCxAbGV4TGlzdEdyb3VwCiBzeW4gbWF0Y2ggIGxleE1vcmVQYXQJIlxzKnxccyokIgkJCXNraXBubAljb250YWluZWQgbmV4dGdyb3VwPWxleFBhdCxsZXhQYXRUYWcsbGV4UGF0Q29tbWVudAogc3luIG1hdGNoICBsZXhQYXRTZXAJIlxzXCsiCQkJCQljb250YWluZWQgbmV4dGdyb3VwPWxleE1vcmVQYXQsbGV4UGF0Q29kZSxsZXhQYXRDb2RlTGluZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvbHlueC52aW0gYi9ydW50aW1lL3N5bnRheC9seW54LnZpbQppbmRleCAxZGVlMWVmLi40NzFkNzA4IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9seW54LnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9seW54LnZpbQpAQCAtMSw5ICsxLDkgQEAKICIgTHlueCBzeW50YXggZmlsZQogIiBGaWxlbmFtZToJbHlueC52aW0KICIgTGFuZ3VhZ2U6CUx5bnggY29uZmlndXJhdGlvbiBmaWxlICggbHlueC5jZmcgKQotIiBNYWludGFpbmVyOglEb3VnIEtlYXJucyA8ZGprZWEyQG11Z2NhLml0cy5tb25hc2guZWR1LmF1PgotIiBVUkw6CQlodHRwOi8vbXVnY2EuaXRzLm1vbmFzaC5lZHUuYXUvfmRqa2VhMi92aW0vc3ludGF4L2x5bngudmltCi0iIExhc3QgQ2hhbmdlOgkyMDAzIE1heSAxMQorIiBNYWludGFpbmVyOglEb3VnIEtlYXJucyA8ZGprZWEyQGd1cy5nc2NpdC5tb25hc2guZWR1LmF1PgorIiBVUkw6CQlodHRwOi8vZ3VzLmdzY2l0Lm1vbmFzaC5lZHUuYXUvfmRqa2VhMi92aW0vc3ludGF4L2x5bngudmltCisiIExhc3QgQ2hhbmdlOgkyMDA0IE5vdiAyNwogCiAiIFRPRE86IG1vcmUgaW50ZWxsaWdlbnQgYW5kIGNvbXBsZXRlIGFyZ3VtZW50IGhpZ2hsaWdodGluZwogCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9tYWlsY2FwLnZpbSBiL3J1bnRpbWUvc3ludGF4L21haWxjYXAudmltCmluZGV4IDZkNjI3MDcuLjU0N2RiNzMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L21haWxjYXAudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L21haWxjYXAudmltCkBAIC0xLDggKzEsOCBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CU1haWxjYXAgY29uZmlndXJhdGlvbiBmaWxlCi0iIE1haW50YWluZXI6CURvdWcgS2Vhcm5zCi0iIExhc3QgQ2hhbmdlOgkyMDAyIE5vdmVtYmVyIDI0Ci0iIFVSTDoJCWh0dHA6Ly9tdWdjYS5pdHMubW9uYXNoLmVkdS5hdS9+ZGprZWEyL3ZpbS9zeW50YXgvbWFpbGNhcC52aW0KKyIgTWFpbnRhaW5lcjoJRG91ZyBLZWFybnMgPGRqa2VhMkBndXMuZ3NjaXQubW9uYXNoLmVkdS5hdT4KKyIgTGFzdCBDaGFuZ2U6CTIwMDQgTm92IDI3CisiIFVSTDoJCWh0dHA6Ly9ndXMuZ3NjaXQubW9uYXNoLmVkdS5hdS9+ZGprZWEyL3ZpbS9zeW50YXgvbWFpbGNhcC52aW0KIAogIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKICIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L21hcGxlLnZpbSBiL3J1bnRpbWUvc3ludGF4L21hcGxlLnZpbQppbmRleCAyZmEwNDU3Li41OTQwNzkyIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9tYXBsZS52aW0KKysrIGIvcnVudGltZS9zeW50YXgvbWFwbGUudmltCkBAIC0xLDggKzEsOCBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CU1hcGxlIFYgKGJhc2VkIG9uIHJlbGVhc2UgNCkKICIgTWFpbnRhaW5lcjoJRHIuIENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiA8TmRyT2NoaXBTQFBjYW1wYmVsbEFmYW1pbHkuTWJpej4KLSIgTGFzdCBDaGFuZ2U6CUF1ZyAxOSwgMjAwNAotIiBWZXJzaW9uOgk1CisiIExhc3QgQ2hhbmdlOglPY3QgMTIsIDIwMDQKKyIgVmVyc2lvbjoJNgogIiBVUkw6CWh0dHA6Ly93d3cuZXJvbHMuY29tL2FzdHJvbmF1dC92aW0vaW5kZXguaHRtbCN2aW1saW5rc19zeW50YXgKICIKICIgUGFja2FnZSBGdW5jdGlvbiBTZWxlY3Rpb246IHt7ezEKQEAgLTExNiwxMSArMTE2LDEyIEBACiBzeW4ga2V5d29yZCBtdlRvZG8JY29udGFpbmVkCVRPRE8KIGlmIGV4aXN0cygiZzptYXBsZXZlcnNpb24iKSAmJiBnOm1hcGxldmVyc2lvbiA8IDkKICBzeW4gcmVnaW9uICBtdlN0cmluZwlzdGFydD0rYCsgc2tpcD0rYGArIGVuZD0rYCsJa2VlcGVuZAljb250YWlucz1tdlRvZG8KKyBzeW4gcmVnaW9uICBtdlN0cmluZwlzdGFydD0rIisgc2tpcD0rIiIrIGVuZD0rIisJa2VlcGVuZAogIHN5biByZWdpb24gIG12RGVsYXlFdmFsCXN0YXJ0PSsnKyBlbmQ9KycrCWtlZXBlbmQgY29udGFpbnM9QUxMQlVULG12RXJyb3IsbXZCcmFjZUVycm9yLG12Q3VybHlFcnJvcixtdlBhcmVuRXJyb3IsbXZTZW1pRXJyb3IKICBzeW4gbWF0Y2ggICBtdlZhckFzc2lnbgkiW2EtekEtWl9dW2EtekEtWl8wLTldKlsgXHRdKjo9IiBjb250YWlucz1tdkFzc2lnbgogIHN5biBtYXRjaCAgIG12QXNzaWduCSI6PSIJY29udGFpbmVkCiBlbHNlCi0gc3luIHJlZ2lvbiAgbXZOYW1lCXN0YXJ0PStgKyBza2lwPStgYCsgZW5kPStgKwlrZWVwZW5kCWNvbnRhaW5zPW12VG9kbworIHN5biByZWdpb24gIG12TmFtZQkJc3RhcnQ9K2ArIHNraXA9K2BgKyBlbmQ9K2ArCWtlZXBlbmQJY29udGFpbnM9bXZUb2RvCiAgc3luIHJlZ2lvbiAgbXZTdHJpbmcJc3RhcnQ9KyIrIHNraXA9KyIiKyBlbmQ9KyIrCWtlZXBlbmQKICBzeW4gcmVnaW9uICBtdkRlbGF5RXZhbAlzdGFydD0rJysgZW5kPSsnKwlrZWVwZW5kIGNvbnRhaW5zPUFMTEJVVCxtdkVycm9yLG12QnJhY2VFcnJvcixtdkN1cmx5RXJyb3IsbXZQYXJlbkVycm9yCiAgc3luIG1hdGNoICAgbXZEZWxpbQkJIls7Ol0iCWRpc3BsYXkKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3JhdHBvaXNvbi52aW0gYi9ydW50aW1lL3N5bnRheC9yYXRwb2lzb24udmltCmluZGV4IDM5MDk0ZmMuLjAyYTBhOTIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3JhdHBvaXNvbi52aW0KKysrIGIvcnVudGltZS9zeW50YXgvcmF0cG9pc29uLnZpbQpAQCAtMSw5ICsxLDkgQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIEZpbGVuYW1lOglyYXRwb2lzb24udmltCiAiIExhbmd1YWdlOglSYXRwb2lzb24gY29uZmlndXJhdGlvbi9jb21tYW5kcyBmaWxlICggL2V0Yy9yYXRwb2lzb25yYyB+Ly5yYXRwb2lzb25yYyApCi0iIE1haW50YWluZXI6CURvdWcgS2Vhcm5zIDxkamtlYTJAbXVnY2EuaXRzLm1vbmFzaC5lZHUuYXU+Ci0iIFVSTDoJCWh0dHA6Ly9tdWdjYS5pdHMubW9uYXNoLmVkdS5hdS9+ZGprZWEyL3ZpbS9zeW50YXgvcmF0cG9pc29uLnZpbQotIiBMYXN0IENoYW5nZToJMjAwNCBBcHIgMjcKKyIgTWFpbnRhaW5lcjoJRG91ZyBLZWFybnMgPGRqa2VhMkBndXMuZ3NjaXQubW9uYXNoLmVkdS5hdT4KKyIgVVJMOgkJaHR0cDovL2d1cy5nc2NpdC5tb25hc2guZWR1LmF1L35kamtlYTIvdmltL3N5bnRheC9yYXRwb2lzb24udmltCisiIExhc3QgQ2hhbmdlOgkyMDA0IE5vdiAyNwogCiAiIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcwogIiBGb3IgdmVyc2lvbiA2Lng6IFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvcnVieS52aW0gYi9ydW50aW1lL3N5bnRheC9ydWJ5LnZpbQppbmRleCAwMmYxNzhkLi43MzJiNDcwIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9ydWJ5LnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9ydWJ5LnZpbQpAQCAtMSw5ICsxLDkgQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOgkJUnVieQotIiBNYWludGFpbmVyOgkJRG91ZyBLZWFybnMKKyIgTWFpbnRhaW5lcjoJCURvdWcgS2Vhcm5zIDxkamtlYTJAZ3VzLmdzY2l0Lm1vbmFzaC5lZHUuYXU+CiAiIFByZXZpb3VzIE1haW50YWluZXI6CU1pcmtvIE5hc2F0bwotIiBMYXN0IENoYW5nZToJCTIwMDMgTWF5IDMxCi0iIFVSTDoJCQlodHRwOi8vbXVnY2EuaXRzLm1vbmFzaC5lZHUuYXUvfmRqa2VhMi92aW0vc3ludGF4L3J1YnkudmltCisiIExhc3QgQ2hhbmdlOgkJMjAwNCBOb3YgMjcKKyIgVVJMOgkJCWh0dHA6Ly9ndXMuZ3NjaXQubW9uYXNoLmVkdS5hdS9+ZGprZWEyL3ZpbS9zeW50YXgvcnVieS52aW0KIAogIiAkSWQkCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3NjaGVtZS52aW0gYi9ydW50aW1lL3N5bnRheC9zY2hlbWUudmltCmluZGV4IDQxZDQ5MWMuLjkzZDQxODcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3NjaGVtZS52aW0KKysrIGIvcnVudGltZS9zeW50YXgvc2NoZW1lLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOglTY2hlbWUgKFI1UlMpCi0iIExhc3QgQ2hhbmdlOglKdWx5IDE0LCAyMDA0Ci0iIE1haW50YWluZXI6CVNlcmdleSBLaG9yZXYgPGlhbXBoZXRAbm0ucnU+CisiIExhc3QgQ2hhbmdlOglOb3YgMjgsIDIwMDQKKyIgTWFpbnRhaW5lcjoJU2VyZ2V5IEtob3JldiA8c2VyZ2V5Lmtob3JldkBnbWFpbC5jb20+CiAiIE9yaWdpbmFsIGF1dGhvcjoJRGlyayB2YW4gRGV1biA8ZGlya0BpZ3dlLnZ1Yi5hYy5iZT4KIAogIiBUaGlzIHNjcmlwdCBpbmNvcnJlY3RseSByZWNvZ25pemVzIHNvbWUganVuayBpbnB1dCBhcyBudW1lcmFsczoKQEAgLTE0Myw3ICsxNDMsNyBAQAogc3luIHJlZ2lvbiBzY2hlbWVTdHJ1YyBtYXRjaGdyb3VwPURlbGltaXRlciBzdGFydD0iI1xbIiBtYXRjaGdyb3VwPURlbGltaXRlciBlbmQ9IlxdIiBjb250YWlucz1BTEwKIAogIiBTaW1wbGUgbGl0ZXJhbHM6Ci1zeW4gcmVnaW9uCXNjaGVtZVN0cmluZwlzdGFydD0rIisgIHNraXA9K1xcW1xcIl0rIGVuZD0rIisKK3N5biByZWdpb24gc2NoZW1lU3RyaW5nIHN0YXJ0PStcJShcXFwpXEA8ISIrIHNraXA9K1xcW1xcIl0rIGVuZD0rIisKIAogIiBDb21tZW50czoKIApAQCAtMTcyLDE1ICsxNzIsMTYgQEAKIHN5biBtYXRjaAlzY2hlbWVFcnJvcglvbmVsaW5lICAgICEjXFxuZXdsaW5lW14gXHRcW1xdKCkiO11cKyEKIAogaWYgZXhpc3RzKCJiOmlzX216c2NoZW1lIikgfHwgZXhpc3RzKCJpc19tenNjaGVtZSIpCi0gICAgIiBNelNjaGVtZSBleHRlbnNpb25zIGFkZGVkIGJ5IFNlcmdleSBLaG9yZXYKKyAgICAiIE16U2NoZW1lIGV4dGVuc2lvbnMKICAgICAiIG11bHRpbGluZSBjb21tZW50Ci0gICAgc3ludGF4IHJlZ2lvbiBzY2hlbWVNdWx0aWxpbmVDb21tZW50IHN0YXJ0PS8jfC8gZW5kPS98Iy8KKyAgICBzeW4gcmVnaW9uCXNjaGVtZUNvbW1lbnQgc3RhcnQ9IiN8IiBlbmQ9InwjIgorCiAgICAgIiAjJXh4eCBhcmUgdGhlIHNwZWNpYWwgTXpTY2hlbWUgaWRlbnRpZmllcnMKICAgICBzeW4gbWF0Y2ggc2NoZW1lT3RoZXIgb25lbGluZSAgICAiIyVbLWEteiEkJSYqLzo8PT4/Xl9+MC05Ky5AIyVdXCsiCiAgICAgIiBhbnl0aGluZyBsaW1pdGVkIGJ5IHwncyBpcyBpZGVudGlmaWVyCiAgICAgc3luIG1hdGNoIHNjaGVtZU90aGVyIG9uZWxpbmUgICAgInxbXnxdXCt8IgogCi0gICAgc3luIG1hdGNoCXNjaGVtZUNoYXIJb25lbGluZSAgICAiI1xccmV0dXJuIgorICAgIHN5biBtYXRjaAlzY2hlbWVDaGFyCW9uZWxpbmUgICAgIiNcXFwlKHJldHVyblx8dGFiXCkiCiAKICAgICAiIE1vZHVsZXMgcmVxdWlyZSBzdG10CiAgICAgc3luIGtleXdvcmQgc2NoZW1lRXh0U3ludGF4IG1vZHVsZSByZXF1aXJlIGR5bmFtaWMtcmVxdWlyZSBsaWIgcHJlZml4IGFsbC1leGNlcHQgcHJlZml4LWFsbC1leGNlcHQgcmVuYW1lCkBAIC0yMzAsMTIgKzIzMSwxOSBAQAogCiAKIGlmIGV4aXN0cygiYjppc19jaGlja2VuIikgfHwgZXhpc3RzKCJpc19jaGlja2VuIikKKyAgICAiIG11bHRpbGluZSBjb21tZW50CisgICAgc3ludGF4IHJlZ2lvbiBzY2hlbWVNdWx0aWxpbmVDb21tZW50IHN0YXJ0PS8jfC8gZW5kPS98Iy8gY29udGFpbnM9c2NoZW1lTXVsdGlsaW5lQ29tbWVudAorCiAgICAgc3luIG1hdGNoIHNjaGVtZU90aGVyIG9uZWxpbmUgICAgIiMjWy1hLXohJCUmKi86PD0+P15ffjAtOSsuQCMlXVwrIgogICAgIHN5biBtYXRjaCBzY2hlbWVFeHRTeW50YXggb25lbGluZSAgICAiIzpbLWEteiEkJSYqLzo8PT4/Xl9+MC05Ky5AIyVdXCsiCiAKICAgICBzeW4ga2V5d29yZCBzY2hlbWVFeHRTeW50YXggdW5pdCB1c2VzIGRlY2xhcmUgaGlkZSBmb3JlaWduLWRlY2xhcmUgZm9yZWlnbi1wYXJzZSBmb3JlaWduLXBhcnNlL3NwZWMKLSAgICBzeW4ga2V5d29yZCBzY2hlbWVFeHRTeW50YXggZm9yZWlnbi1sYW1iZGEgZm9yZWlnbi1sYW1iZGEqIAotICAgIHN5biBrZXl3b3JkIHNjaGVtZUV4dFN5bnRheCBsZXQtb3B0aW9uYWxzIGxldC1vcHRpb25hbHMqIGRlZmluZS1mb3JlaWduLXZhcmlhYmxlCisgICAgc3luIGtleXdvcmQgc2NoZW1lRXh0U3ludGF4IGZvcmVpZ24tbGFtYmRhIGZvcmVpZ24tbGFtYmRhKiBkZWZpbmUtZXh0ZXJuYWwgZGVmaW5lLW1hY3JvIGxvYWQtbGlicmFyeQorICAgIHN5biBrZXl3b3JkIHNjaGVtZUV4dFN5bnRheCBsZXQtdmFsdWVzIGxldCotdmFsdWVzIGxldHJlYy12YWx1ZXMgLT5zdHJpbmcgcmVxdWlyZS1leHRlbnNpb24KKyAgICBzeW4ga2V5d29yZCBzY2hlbWVFeHRTeW50YXggbGV0LW9wdGlvbmFscyBsZXQtb3B0aW9uYWxzKiBkZWZpbmUtZm9yZWlnbi12YXJpYWJsZSBkZWZpbmUtcmVjb3JkCisgICAgc3luIGtleXdvcmQgc2NoZW1lRXh0U3ludGF4IHBvaW50ZXIgdGFnLXBvaW50ZXIgdGFnZ2VkLXBvaW50ZXI/IGRlZmluZS1mb3JlaWduLXR5cGUKKyAgICBzeW4ga2V5d29yZCBzY2hlbWVFeHRTeW50YXggcmVxdWlyZSByZXF1aXJlLWZvci1zeW50YXggY29uZC1leHBhbmQgYW5kLWxldCogcmVjZWl2ZSBhcmdjK2FyZ3YKKyAgICBzeW4ga2V5d29yZCBzY2hlbWVFeHRTeW50YXggZml4bnVtPyBmeD0gZng+IGZ4PCBmeD49IGZ4PD0gZnhtaW4gZnhtYXgKICAgICBzeW4ga2V5d29yZCBzY2hlbWVFeHRGdW5jICMjY29yZSNpbmxpbmUgIyNzeXMjZXJyb3IgIyNzeXMjdXBkYXRlLWVycm5vCiAKICAgICAiIGhlcmUtc3RyaW5nCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9zaC52aW0gYi9ydW50aW1lL3N5bnRheC9zaC52aW0KaW5kZXggZjg2MjRhZS4uMjdmZjc3NSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvc2gudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3NoLnZpbQpAQCAtMiw4ICsyLDggQEAKICIgTGFuZ3VhZ2U6CQlzaGVsbCAoc2gpIEtvcm4gc2hlbGwgKGtzaCkgYmFzaCAoc2gpCiAiIE1haW50YWluZXI6CQlEci4gQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuICA8TmRyT2NoaXBTQFBjYW1wYmVsbEFmYW1pbHkuTWJpej4KICIgUHJldmlvdXMgTWFpbnRhaW5lcjoJTGVubmFydCBTY2h1bHR6IDxMZW5uYXJ0LlNjaHVsdHpAZWNtd2YuaW50PgotIiBMYXN0IENoYW5nZToJCUp1bCAyNiwgMjAwNAotIiBWZXJzaW9uOgkJNjkKKyIgTGFzdCBDaGFuZ2U6CQlPY3QgMTcsIDIwMDQKKyIgVmVyc2lvbjoJCTcwCiAiIFVSTDoJCWh0dHA6Ly93d3cuZXJvbHMuY29tL2FzdHJvbmF1dC92aW0vaW5kZXguaHRtbCN2aW1saW5rc19zeW50YXgKICIKICIgVXNpbmcgdGhlIGZvbGxvd2luZyBWSU0gdmFyaWFibGVzOiB7e3sxCkBAIC01Myw2ICs1Myw5IEBACiAKIGlmICFleGlzdHMoImc6c2hfZm9sZF9lbmFibGVkIikKICBsZXQgZzpzaF9mb2xkX2VuYWJsZWQ9IDAKK2Vsc2VpZiBnOnNoX2ZvbGRfZW5hYmxlZCAhPSAwICYmICFoYXMoImZvbGRpbmciKQorIGxldCBnOnNoX2ZvbGRfZW5hYmxlZD0gMAorIGVjaG9tc2cgIklnbm9yaW5nIGc6c2hfZm9sZF9lbmFibGVkPSIuZzpzaF9mb2xkX2VuYWJsZWQuIjsgcmUtY29tcGlsZSB2aW0gZm9yICtmb2xkIHN1cHBvcnQiCiBlbmRpZgogCiAiIHNoIHN5bnRheCBpcyBjYXNlIHNlbnNpdGl2ZQpAQCAtMzQ0LDcgKzM0Nyw3IEBACiAKICIgUGFyYW1ldGVyIERlcmVmZXJlbmNpbmc6IHt7ezEKICIgPT09PT09PT09PT09PT09PT09PT09PT09Ci1zeW4gbWF0Y2ggIHNoRGVyZWZTaW1wbGUJIlwkXHdcKyIKK3N5biBtYXRjaCAgc2hEZXJlZlNpbXBsZQkiXCRcJShcaFx3Klx8XGRcKSIKIHN5biByZWdpb24gc2hEZXJlZgltYXRjaGdyb3VwPVByZVByb2Mgc3RhcnQ9IlwkeyIgZW5kPSJ9Igljb250YWlucz1Ac2hEZXJlZkxpc3Qsc2hEZXJlZlZhckFycmF5CiBzeW4gbWF0Y2ggIHNoRGVyZWZXb3JkRXJyb3IJIltefSRbXSIJY29udGFpbmVkCiBzeW4gbWF0Y2ggIHNoRGVyZWZTaW1wbGUJIlwkWy0jKkAhP10iCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9zaWV2ZS52aW0gYi9ydW50aW1lL3N5bnRheC9zaWV2ZS52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjkyM2Y0NAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3ludGF4L3NpZXZlLnZpbQpAQCAtMCwwICsxLDcwIEBACisiIFZpbSBzeW50YXggZmlsZQorIiBNYWludGFpbmVyOgkgICAgTmlrb2xhaSBXZWlidWxsIDxzb3VyY2VAcGNwcG9wcGVyLm9yZz4KKyIgVVJMOgkJICAgIGh0dHA6Ly93d3cucGNwcG9wcGVyLm9yZy8KKyIgTGF0ZXN0IFJldmlzaW9uOiAgMjAwNC0xMS0xMQorIiBhcmNoLXRhZzoJICAgIDM1NmZhZDZkLWZmNmItNDUzYy1iZDI1LTdmYzYzYzQ3NThiYworCitpZiB2ZXJzaW9uIDwgNjAwCisgIHN5bnRheCBjbGVhcgorZWxzZWlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCisgIGZpbmlzaAorZW5kaWYKKworIiBUb2RvCitzeW4ga2V5d29yZCBzaWV2ZVRvZG8JICBjb250YWluZWQgVE9ETyBGSVhNRSBYWFggTk9URQorCisiIENvbW1lbnRzCitzeW4gcmVnaW9uICBzaWV2ZUNvbW1lbnQgIG1hdGNoZ3JvdXA9c2lldmVDb21tZW50IHN0YXJ0PScvXConIGVuZD0nXCovJyBjb250YWlucz1zaWV2ZVRvZG8KK3N5biByZWdpb24gIHNpZXZlQ29tbWVudCAgbWF0Y2hncm91cD1zaWV2ZUNvbW1lbnQgc3RhcnQ9JyMnIGVuZD0nJCcgY29udGFpbnM9c2lldmVUb2RvCisKK3N5biBjYXNlIGlnbm9yZQorCisiIFRhZ3MKK3N5biBtYXRjaCAgIHNpZXZlVGFnCSAgJzpcaFx3KicKKworIiBOdW1iZXJzCitzeW4gbWF0Y2ggICBzaWV2ZU51bWJlcgkgICdcZFwrW0tNR11cPScKKworIiBTcGVjaWFscworc3luIG1hdGNoICAgc2lldmVTcGVjaWFsICAnXFxbIlxcXScKKworIiBTdHJpbmdzCitzeW4gcmVnaW9uICBzaWV2ZVN0cmluZwkgIG1hdGNoZ3JvdXA9c2lldmVTdHJpbmcgc3RhcnQ9KyIrIHNraXA9K1xcXFxcfFxcIisgZW5kPSsiKyBjb250YWlucz1zaWV2ZVNwZWNpYWwKK3N5biByZWdpb24gIHNpZXZlU3RyaW5nCSAgbWF0Y2hncm91cD1zaWV2ZVN0cmluZyBzdGFydD0ndGV4dDonIGVuZD0nXG4uXG4nCisKKyIgS2V5d29yZHMKK3N5biBrZXl3b3JkIHNpZXZlQ29uZGl0aW9uYWwgIGlmIGVsc2lmIGVsc2UKK3N5biBrZXl3b3JkIHNpZXZlVGVzdAkgICAgICBhZGRyZXNzIGFsbG9mIGFueW9mIGVudmVsb3BlIGV4aXN0cyBmYWxzZSBoZWFkZXIgbm90IHNpemUgdHJ1ZQorc3luIGtleXdvcmQgc2lldmVQcmVQcm9jICAgICAgcmVxdWlyZSBzdG9wCitzeW4ga2V5d29yZCBzaWV2ZUFjdGlvbgkgICAgICByZWplY3QgZmlsZWludG8gcmVkaXJlY3Qga2VlcCBkaXNjYXJkCitzeW4gbWF0Y2ggICBzaWV2ZUtleXdvcmQgICAgICAnXDxcaFx3Klw+JworCisiIERlZmluZSB0aGUgZGVmYXVsdCBoaWdobGlnaHRpbmcuCisiIEZvciB2ZXJzaW9uIDUuNyBhbmQgZWFybGllcjogb25seSB3aGVuIG5vdCBkb25lIGFscmVhZHkKKyIgRm9yIHZlcnNpb24gNS44IGFuZCBsYXRlcjogb25seSB3aGVuIGFuIGl0ZW0gZG9lc24ndCBoYXZlIGhpZ2hsaWdodGluZyB5ZXQKK2lmIHZlcnNpb24gPj0gNTA4IHx8ICFleGlzdHMoImRpZF9zaWV2ZV9zeW5faW5pdHMiKQorICBpZiB2ZXJzaW9uIDwgNTA4CisgICAgbGV0IGRpZF9zaWV2ZV9zeW5faW5pdHMgPSAxCisgICAgY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgbGluayA8YXJncz4KKyAgZWxzZQorICAgIGNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGRlZiBsaW5rIDxhcmdzPgorICBlbmRpZgorCisgIEhpTGluayBzaWV2ZVRvZG8JICBUb2RvCisgIEhpTGluayBzaWV2ZUNvbW1lbnQJICBDb21tZW50CisgIEhpTGluayBzaWV2ZVRhZwkgIFR5cGUKKyAgSGlMaW5rIHNpZXZlTnVtYmVyCSAgTnVtYmVyCisgIEhpTGluayBzaWV2ZVNwZWNpYWwJICBTcGVjaWFsCisgIEhpTGluayBzaWV2ZVN0cmluZwkgIFN0cmluZworICBIaUxpbmsgc2lldmVDb25kaXRpb25hbCBDb25kaXRpb25hbAorICBIaUxpbmsgc2lldmVUZXN0CSAgS2V5d29yZAorICBIaUxpbmsgc2lldmVQcmVQcm9jCSAgUHJlUHJvYworICBIaUxpbmsgc2lldmVBY3Rpb24JICBLZXl3b3JkCisgIEhpTGluayBzaWV2ZUtleXdvcmQJICBLZXl3b3JkCisKKyAgZGVsY29tbWFuZCBIaUxpbmsKK2VuZGlmCisKK2xldCBiOmN1cnJlbnRfc3ludGF4ID0gInNpZXZlIgorCisiIHZpbTogc2V0IHN0cz0yIHN3PTI6CmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC90ZXgudmltIGIvcnVudGltZS9zeW50YXgvdGV4LnZpbQppbmRleCBkYzM1MmZkLi5hN2M2ZWUxIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC90ZXgudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3RleC52aW0KQEAgLTEsOCArMSw4IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZToJVGVYCiAiIE1haW50YWluZXI6CURyLiBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4gPE5kck9jaGlwU0BQY2FtcGJlbGxBZmFtaWx5Lk1iaXo+Ci0iIExhc3QgQ2hhbmdlOglKdW4gMTUsIDIwMDQKLSIgVmVyc2lvbjoJMjUKKyIgTGFzdCBDaGFuZ2U6CU9jdCAxMywgMjAwNAorIiBWZXJzaW9uOgkyNgogIiBVUkw6CQlodHRwOi8vd3d3LmVyb2xzLmNvbS9hc3Ryb25hdXQvdmltL2luZGV4Lmh0bWwjdmltbGlua3Nfc3ludGF4CiAiCiAiIE5vdGVzOiB7e3sxCkBAIC0xMTIsNyArMTEyLDcgQEAKICBzeW4gcmVnaW9uIHRleE1hdGNoZXIJCW1hdGNoZ3JvdXA9RGVsaW1pdGVyIHN0YXJ0PSJ7IiBza2lwPSJcXFxcXHxcXFt7fV0iCWVuZD0ifSIJCWNvbnRhaW5zPUB0ZXhNYXRjaEdyb3VwCiAgc3luIHJlZ2lvbiB0ZXhNYXRjaGVyCQltYXRjaGdyb3VwPURlbGltaXRlciBzdGFydD0iXFsiCQkJCWVuZD0iXSIJCWNvbnRhaW5zPUB0ZXhNYXRjaEdyb3VwCiBlbmRpZgotc3luIHJlZ2lvbiB0ZXhQYXJlbgkJc3RhcnQ9IigiCQkJCQkJZW5kPSIpIgkJY29udGFpbnM9QHRleE1hdGNoR3JvdXAKK3N5biByZWdpb24gdGV4UGFyZW4JCXN0YXJ0PSIoIgkJCQkJCWVuZD0iKSIJCWNvbnRhaW5zPUB0ZXhNYXRjaEdyb3VwLEBTcGVsbAogaWYgIWV4aXN0cygiZzp0ZXhfbm9fZXJyb3IiKQogIHN5biBtYXRjaCAgdGV4RXJyb3IJCSJbfVxdKV0iCiBlbmRpZgpAQCAtMjMzLDkgKzIzMywyNCBAQAogc3luIG1hdGNoIHRleFNwYWNlQ29kZUNoYXIgICAgImBcXFw9LlwoXF4uXClcPT1cKFxkXHxcIlx4XHsxLDZ9XHxgLlwpIgljb250YWluZWQKIAogIiBTZWN0aW9ucywgc3Vic2VjdGlvbnMsIGV0Yzoge3t7MQotc3luIG1hdGNoIHRleFNlY3Rpb24JCSJcXFwoc3ViXCkqc2VjdGlvblwqXD1cPiIKLXN5biBtYXRjaCB0ZXhTZWN0aW9uCQkiXFxcKHRpdGxlXHxhdXRob3JcfHBhcnRcfGNoYXB0ZXJcfHBhcmFncmFwaFx8c3VicGFyYWdyYXBoXClcPiIKLXN5biBtYXRjaCB0ZXhTZWN0aW9uCQkiXFxiZWdpblxzKntccyphYnN0cmFjdFxzKn1cfFxcZW5kXHMqe1xzKmFic3RyYWN0XHMqfSIKK2lmIGV4aXN0cygidGV4X2Rvc3luZm9sZHMiKSAmJiBoYXMoImZvbGRpbmciKQorICIgQ09NQkFLIC0tIHRoaXMgZm9sZGluZyBkb2Vzbid0IHdvcmsgYXMgZXhwZWN0ZWQgYXMgeWV0Cisgc3luIHJlZ2lvbiBSZWQJbWF0Y2hncm91cD10ZXhTZWN0aW9uIHN0YXJ0PSJcXHNlY3Rpb25cKlw9XD4iCQkJZW5kPSJcXFwlKHN1YlwpKlwlKGFic3RyYWN0XHxzZWN0aW9uXHxhdXRob3JcfHBhcnRcfGNoYXB0ZXJcfHBhcmFncmFwaFx8c3VicGFyYWdyYXBoXClcKlw9XD4ibWU9cyBlbmQ9IiVccypzdG9wem9uZVw+IiBmb2xkCisiIHN5biByZWdpb24gUmVkCW1hdGNoZ3JvdXA9dGV4U2VjdGlvbiBzdGFydD0iXFxzZWN0aW9uXCpcPVw+IgkJCWVuZD0iXHplXFxcKHN1YlwpKlwoYWJzdHJhY3RcfHNlY3Rpb25cfGF1dGhvclx8cGFydFx8Y2hhcHRlclx8cGFyYWdyYXBoXHxzdWJwYXJhZ3JhcGhcKVwqXD1cPiIgZW5kPSIlXHMqc3RvcHpvbmVcPiIgY29udGFpbnM9VE9QIGZvbGQKKyIgc3luIHJlZ2lvbiBCbHVlCW1hdGNoZ3JvdXA9dGV4U2VjdGlvbiBzdGFydD0iXFxzdWJzZWN0aW9uXCpcPVw+IgkJZW5kPSJcemVcXFwoc3ViXCkqXChhYnN0cmFjdFx8c2VjdGlvblx8YXV0aG9yXHxwYXJ0XHxjaGFwdGVyXHxwYXJhZ3JhcGhcfHN1YnBhcmFncmFwaFwpXCpcPVw+IiBjb250YWlucz1UT1AgZm9sZAorIiBzeW4gcmVnaW9uIHRleFNlY3Rpb25ab25lCW1hdGNoZ3JvdXA9dGV4U2VjdGlvbiBzdGFydD0iXFxzdWJzdWJzZWN0aW9uXCpcPVw+IgkJZW5kPSJcemVcXFwoc3ViXCkqXChhYnN0cmFjdFx8c2VjdGlvblx8YXV0aG9yXHxwYXJ0XHxjaGFwdGVyXHxwYXJhZ3JhcGhcfHN1YnBhcmFncmFwaFwpXCpcPVw+IiBjb250YWlucz1UT1AgZm9sZAorIiBzeW4gcmVnaW9uIHRleFNlY3Rpb25ab25lCW1hdGNoZ3JvdXA9dGV4U2VjdGlvbiBzdGFydD0iXFx0aXRsZVwqXD1cPiIJCQllbmQ9Ilx6ZVxcXChzdWJcKSpcKGFic3RyYWN0XHxzZWN0aW9uXHxhdXRob3JcfHBhcnRcfGNoYXB0ZXJcfHBhcmFncmFwaFx8c3VicGFyYWdyYXBoXClcKlw9XD4iIGNvbnRhaW5zPVRPUCBmb2xkCisiIHN5biByZWdpb24gdGV4U2VjdGlvblpvbmUJbWF0Y2hncm91cD10ZXhTZWN0aW9uIHN0YXJ0PSJcXGF1dGhvclwqXD1cPiIJCQllbmQ9Ilx6ZVxcXChzdWJcKSpcKGFic3RyYWN0XHxzZWN0aW9uXHxhdXRob3JcfHBhcnRcfGNoYXB0ZXJcfHBhcmFncmFwaFx8c3VicGFyYWdyYXBoXClcKlw9XD4iIGNvbnRhaW5zPVRPUCBmb2xkCisiIHN5biByZWdpb24gdGV4U2VjdGlvblpvbmUJbWF0Y2hncm91cD10ZXhTZWN0aW9uIHN0YXJ0PSJcXHBhcnRcKlw9XD4iCQkJZW5kPSJcemVcXFwoc3ViXCkqXChhYnN0cmFjdFx8c2VjdGlvblx8YXV0aG9yXHxwYXJ0XHxjaGFwdGVyXHxwYXJhZ3JhcGhcfHN1YnBhcmFncmFwaFwpXCpcPVw+IiBjb250YWlucz1UT1AgZm9sZAorIiBzeW4gcmVnaW9uIHRleFNlY3Rpb25ab25lCW1hdGNoZ3JvdXA9dGV4U2VjdGlvbiBzdGFydD0iXFxjaGFwdGVyXCpcPVw+IgkJCWVuZD0iXHplXFxcKHN1YlwpKlwoYWJzdHJhY3RcfHNlY3Rpb25cfGF1dGhvclx8cGFydFx8Y2hhcHRlclx8cGFyYWdyYXBoXHxzdWJwYXJhZ3JhcGhcKVwqXD1cPiIgY29udGFpbnM9VE9QIGZvbGQKKyIgc3luIHJlZ2lvbiB0ZXhTZWN0aW9uWm9uZQltYXRjaGdyb3VwPXRleFNlY3Rpb24gc3RhcnQ9IlxccGFyYWdyYXBoXCpcPVw+IgkJZW5kPSJcemVcXFwoc3ViXCkqXChhYnN0cmFjdFx8c2VjdGlvblx8YXV0aG9yXHxwYXJ0XHxjaGFwdGVyXHxwYXJhZ3JhcGhcfHN1YnBhcmFncmFwaFwpXCpcPVw+IiBjb250YWlucz1UT1AgZm9sZAorIiBzeW4gcmVnaW9uIHRleFNlY3Rpb25ab25lCW1hdGNoZ3JvdXA9dGV4U2VjdGlvbiBzdGFydD0iXFxzdWJwYXJhZ3JhcGhcKlw9XD4iCQllbmQ9Ilx6ZVxcXChzdWJcKSpcKGFic3RyYWN0XHxzZWN0aW9uXHxhdXRob3JcfHBhcnRcfGNoYXB0ZXJcfHBhcmFncmFwaFx8c3VicGFyYWdyYXBoXClcKlw9XD4iIGNvbnRhaW5zPVRPUCBmb2xkCisiIHN5biByZWdpb24gdGV4U2VjdGlvblpvbmUJbWF0Y2hncm91cD10ZXhTZWN0aW9uIHN0YXJ0PSJcXGJlZ2luXHMqe1xzKmFic3RyYWN0XHMqfSIJZW5kPSJcXGVuZFxzKntccyphYnN0cmFjdFxzKn0iICBjb250YWlucz1UT1AgZm9sZAorZWxzZQorIHN5biBtYXRjaCB0ZXhTZWN0aW9uCQkiXFxcKHN1YlwpKnNlY3Rpb25cKlw9XD4iCisgc3luIG1hdGNoIHRleFNlY3Rpb24JCSJcXFwodGl0bGVcfGF1dGhvclx8cGFydFx8Y2hhcHRlclx8cGFyYWdyYXBoXHxzdWJwYXJhZ3JhcGhcKVw+IgorIHN5biBtYXRjaCB0ZXhTZWN0aW9uCQkiXFxiZWdpblxzKntccyphYnN0cmFjdFxzKn1cfFxcZW5kXHMqe1xzKmFic3RyYWN0XHMqfSIKK2VuZGlmCiAKICIgQmFkIE1hdGggKG1pc21hdGNoZWQpOiB7e3sxCiBpZiAhZXhpc3RzKCJ0ZXhfbm9fbWF0aCIpCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC90aWR5LnZpbSBiL3J1bnRpbWUvc3ludGF4L3RpZHkudmltCmluZGV4IDA2NTE4MDMuLmJmZmI2MTcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3RpZHkudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3RpZHkudmltCkBAIC0xLDkgKzEsOSBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgRmlsZW5hbWU6CXRpZHkudmltCiAiIExhbmd1YWdlOglITVRMIFRpZHkgY29uZmlndXJhdGlvbiBmaWxlICggL2V0Yy90aWR5cmMgfi8udGlkeXJjICkKLSIgTWFpbnRhaW5lcjoJRG91ZyBLZWFybnMgPGRqa2VhMkBtdWdjYS5pdHMubW9uYXNoLmVkdS5hdT4KLSIgVVJMOgkJaHR0cDovL211Z2NhLml0cy5tb25hc2guZWR1LmF1L35kamtlYTIvdmltL3N5bnRheC90aWR5LnZpbQotIiBMYXN0IENoYW5nZToJMjAwMiBPY3QgMjQKKyIgTWFpbnRhaW5lcjoJRG91ZyBLZWFybnMgPGRqa2VhMkBndXMuZ3NjaXQubW9uYXNoLmVkdS5hdT4KKyIgVVJMOgkJaHR0cDovL2d1cy5nc2NpdC5tb25hc2guZWR1LmF1L35kamtlYTIvdmltL3N5bnRheC90aWR5LnZpbQorIiBMYXN0IENoYW5nZToJMjAwNCBOb3YgMjcKIAogIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKICIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3RwcC52aW0gYi9ydW50aW1lL3N5bnRheC90cHAudmltCmluZGV4IDI4YTJjNmIuLjhlYjc0ODAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3RwcC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvdHBwLnZpbQpAQCAtMiw3ICsyLDcgQEAKICIgTGFuZ3VhZ2U6CXRwcCAtIFRleHQgUHJlc2VudGF0aW9uIFByb2dyYW0KICIgTWFpbnRhaW5lcjoJR2VyZnJpZWQgRnVjaHMgPGFsZmllQGlzdC5vcmc+CiAiIEZpbGVuYW1lczoJKi50cHAKLSIgTGFzdCBDaGFuZ2U6CTEzLiBPY3RvYmVyIDIwMDQKKyIgTGFzdCBDaGFuZ2U6CTI4LiBPY3RvYmVyIDIwMDQKICIgVVJMOgkJaHR0cDovL2FsZmllLmlzdC5vcmcvcHJvamVjdHMvdmltL3N5bnRheC90cHAudmltCiAiIExpY2Vuc2U6CUJTRAogIgpAQCAtMjUsNyArMjUsNyBAQAogCiAiIiBsaXN0IG9mIHRoZSBsZWdhbCBzd2l0Y2hlcy9vcHRpb25zCiBzeW4gbWF0Y2ggdHBwQWJzdHJhY3RPcHRpb25LZXkgY29udGFpbmVkICJeLS1cJShhdXRob3JcfHRpdGxlXHxkYXRlXCkgKiIgbmV4dGdyb3VwPXRwcFZhbHVlCi1zeW4gbWF0Y2ggdHBwUGFnZUxvY2FsT3B0aW9uS2V5IGNvbnRhaW5lZCAiXi0tXCUoaGVhZGluZ1x8Y2VudGVyXHxyaWdodFx8c2xlZXBcfGh1Z2VcfGV4ZWNcKSAqIiBuZXh0Z3JvdXA9dHBwVmFsdWUKK3N5biBtYXRjaCB0cHBQYWdlTG9jYWxPcHRpb25LZXkgY29udGFpbmVkICJeLS1cJShoZWFkaW5nXHxjZW50ZXJcfHJpZ2h0XHxodWdlXHxzZXRodWdlZm9udFx8ZXhlY1wpICoiIG5leHRncm91cD10cHBWYWx1ZQogc3luIG1hdGNoIHRwcFBhZ2VMb2NhbFN3aXRjaEtleSBjb250YWluZWQgIl4tLVwlKGhvcmxpbmVcfC1cfFwlKGJlZ2luXHxlbmRcKVwlKFwlKHNoZWxsXClcP291dHB1dFx8c2xpZGVcJShsZWZ0XHxyaWdodFx8dG9wXHxib3R0b21cKVwpXHxcJShib2xkXHxyZXZcfHVsXClcJShvblx8b2ZmXClcfHdpdGhib3JkZXJcKSIKIHN5biBtYXRjaCB0cHBOZXdQYWdlT3B0aW9uS2V5IGNvbnRhaW5lZCAiXi0tbmV3cGFnZSAqIiBuZXh0Z3JvdXA9dHBwVmFsdWUKIHN5biBtYXRjaCB0cHBDb2xvck9wdGlvbktleSBjb250YWluZWQgIl4tLVwlKFwlKGJnXHxmZ1wpXD9jb2xvclwpICoiCkBAIC0zOSw3ICszOSw3IEBACiBzeW4gcmVnaW9uIHRwcENvbG9yT3B0aW9uIHN0YXJ0PSJeLS1cJShcJShiZ1x8ZmdcKVw/Y29sb3JcKSIgZW5kPSIkIiBjb250YWlucz10cHBDb2xvck9wdGlvbktleSx0cHBDb2xvciBvbmVsaW5lCiBzeW4gcmVnaW9uIHRwcFRpbWVPcHRpb24gc3RhcnQ9Il4tLXNsZWVwIiBlbmQ9IiQiIGNvbnRhaW5zPXRwcFRpbWVPcHRpb25LZXksdHBwVGltZSBvbmVsaW5lCiBzeW4gcmVnaW9uIHRwcE5ld1BhZ2VPcHRpb24gc3RhcnQ9Il4tLW5ld3BhZ2UiIGVuZD0iJCIgY29udGFpbnM9dHBwTmV3UGFnZU9wdGlvbktleSBvbmVsaW5lCi1zeW4gcmVnaW9uIHRwcFBhZ2VMb2NhbE9wdGlvbiBzdGFydD0iXi0tXCUoaGVhZGluZ1x8Y2VudGVyXHxyaWdodFx8c2xlZXBcfGh1Z2VcfGV4ZWNcKSIgZW5kPSIkIiBjb250YWlucz10cHBQYWdlTG9jYWxPcHRpb25LZXkgb25lbGluZQorc3luIHJlZ2lvbiB0cHBQYWdlTG9jYWxPcHRpb24gc3RhcnQ9Il4tLVwlKGhlYWRpbmdcfGNlbnRlclx8cmlnaHRcfGh1Z2VcfHNldGh1Z2Vmb250XHxleGVjXCkiIGVuZD0iJCIgY29udGFpbnM9dHBwUGFnZUxvY2FsT3B0aW9uS2V5IG9uZWxpbmUKIHN5biByZWdpb24gdHBwQWJzdHJhY3RPcHRpb24gc3RhcnQ9Il4tLVwlKGF1dGhvclx8dGl0bGVcfGRhdGVcKSIgZW5kPSIkIiBjb250YWlucz10cHBBYnN0cmFjdE9wdGlvbktleSBvbmVsaW5lCiAKIGlmIG1haW5fc3ludGF4ICE9ICdzaCcKQEAgLTU1LDYgKzU1LDcgQEAKIAogZW5kaWYKIAorc3luIG1hdGNoIHRwcENvbW1lbnQgIl4tLSMjLiokIgogCiAiIERlZmluZSB0aGUgZGVmYXVsdCBoaWdobGlnaHRpbmcuCiAiIEZvciB2ZXJzaW9uIDUuNyBhbmQgZWFybGllcjogb25seSB3aGVuIG5vdCBkb25lIGFscmVhZHkKQEAgLTc2LDYgKzc3LDcgQEAKICAgSGlMaW5rIHRwcFZhbHVlCQkJU3RyaW5nCiAgIEhpTGluayB0cHBDb2xvcgkJCVN0cmluZwogICBIaUxpbmsgdHBwVGltZQkJCU51bWJlcgorICBIaUxpbmsgdHBwQ29tbWVudAkJCUNvbW1lbnQKICAgSGlMaW5rIHRwcEFic3RyYWN0T3B0aW9uCQlFcnJvcgogICBIaUxpbmsgdHBwUGFnZUxvY2FsT3B0aW9uCQlFcnJvcgogICBIaUxpbmsgdHBwUGFnZUxvY2FsU3dpdGNoCQlFcnJvcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvdmltLnZpbSBiL3J1bnRpbWUvc3ludGF4L3ZpbS52aW0KaW5kZXggOTc3ZWNjNi4uYmQxNjI5ZSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvdmltLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC92aW0udmltCkBAIC0xLDggKzEsOCBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CVZpbSA3LjAgc2NyaXB0CiAiIE1haW50YWluZXI6CURyLiBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4gPE5kck9jaGlwU0BQY2FtcGJlbGxBZmFtaWx5Lk1iaXo+Ci0iIExhc3QgQ2hhbmdlOglKdWx5IDEyLCAyMDA0Ci0iIFZlcnNpb246CTcuMC0wMQlOT1QgUkVMRUFTRUQKKyIgTGFzdCBDaGFuZ2U6CURlY2VtYmVyIDA3LCAyMDA0CisiIFZlcnNpb246CTcuMC0wMglOT1QgUkVMRUFTRUQKICIgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQga2V5d29yZCBsaXN0czoge3t7MQogCiAiIFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZCB7e3syCkBAIC0xNiw3ICsxNiw3IEBACiBzeW4gY2x1c3RlciB2aW1Db21tZW50R3JvdXAJY29udGFpbnM9dmltVG9kbwogCiAiIHJlZ3VsYXIgdmltIGNvbW1hbmRzIHt7ezIKLXN5biBrZXl3b3JkIHZpbUNvbW1hbmQgY29udGFpbmVkCWFiW2JyZXZpYXRlXSBhYmNbbGVhcl0gYWJvW3ZlbGVmdF0gYWxbbF0gYXJnYVtkZF0gYXJnZFtlbGV0ZV0gYXJnZG8gYXJnZVtkaXRdIGFyZ2dbbG9iYWxdIGFyZ2xbb2NhbF0gYXJbZ3NdIGFyZ3VbbWVudF0gYXNbY2lpXSBiYWRbZF0gYmFbbGxdIGJkW2VsZXRlXSBiZSBiZWxbb3dyaWdodF0gYmZbaXJzdF0gYmxbYXN0XSBibVtvZGlmaWVkXSBibltleHRdIGJOW2V4dF0gYm9bdHJpZ2h0XSBicFtyZXZpb3VzXSBicmVhW2tdIGJyZWFrYVtkZF0gYnJlYWtkW2VsXSBicmVha2xbaXN0XSBicltld2luZF0gYnJvW3dzZV0gYnVmZG8gYlt1ZmZlcl0gYnVmZmVycyBidW5bbG9hZF0gYndbaXBlb3V0XSBjYVtiYnJldl0gY2FiY1tsZWFyXSBjYWxbbF0gY2F0W2NoXSBjYyBjY2xbb3NlXSBjZCBjZVtudGVyXSBjZltpbGVdIGNmaXJbc3RdIGNnW2V0ZmlsZV0gY1toYW5nZV0gY2hhbmdlcyBjaGRbaXJdIGNoZVtja3BhdGhdIGNoZWNrdFtpbWVdIGNsYVtzdF0gY2xbaXN0XSBjbG9bc2VdIGNtYXBjW2xlYXJdIGNuZXdbZXJdIGNuW2V4dF0gY05bZXh0XSBjbmZbaWxlXSBjTmZbaWxlXSBjbm9yZWFbYmJyZXZdIGNvbFtkZXJdIGNvbG9bcnNjaGVtZV0gY29tY1tsZWFyXSBjb21wW2lsZXJdIGNvbmZbaXJtXSBjb25bdGludWVdIGNvcGVbbl0gY29bcHldIGNwZltpbGVdIGNwW3JldmlvdXNdIGNxW3VpdF0gY3JbZXdpbmRdIGN1bmFbYmJyZXZdIGN1W25tYXBdIGN3W2luZG93XSBkZWJ1Z2dbcmVlZHldIGRlbGNbb21tYW5kXSBkW2VsZXRlXSBEZWxldGVGaXJzdCBkZWxmW3VuY3Rpb25dIGRpZmZnW2V0XSBkaWZmcGF0Y2ggZGlmZnB1W3RdIGRpZmZzcGxpdCBkaWZmdGhpcyBkaWdbcmFwaHNdIGRpW3NwbGF5XSBkalt1bXBdIGRsW2lzdF0gZHJbb3BdIGRzW2VhcmNoXSBkc3BbbGl0XSBlY2hvZVtycl0gZWNob21bc2ddIGVjaG9uIGVbZGl0XSBlbFtzZV0gZWxzZWlbZl0gZW1bZW51XSBlbWVudSogZW5kZlt1bmN0aW9uXSBlbltkaWZdIGVuZHRbcnldIGVuZHdbaGlsZV0gZW5lW3ddIGV4IGV4aVt0XSBmW2lsZV0gZmlsZXMgZmlsZXR5cGUgZmluYVtsbHldIGZpbltkXSBmaW5pW3NoXSBmaXJbc3RdIGZpeFtkZWxdIGZvW2xkXSBmb2xkY1tsb3NlXSBmb2xkZG9jW2xvc2VkXSBmb2xkZFtvb3Blbl0gZm9sZG9bcGVuXSBmdVtuY3Rpb25dIGdbbG9iYWxdIGdvW3RvXSBncltlcF0gZ3JlcGFbZGRdIGhhW3JkY29weV0gaFtlbHBdIGhlbHBmW2luZF0gaGVscGdbcmVwXSBoZWxwdFthZ3NdIGhpZFtlXSBoaXNbdG9yeV0gSSBpYVtiYnJldl0gaWFiY1tsZWFyXSBpZiBpalt1bXBdIGlsW2lzdF0gaW1hcGNbbGVhcl0gaW5vcmVhW2JicmV2XSBpc1tlYXJjaF0gaXNwW2xpdF0gaXVuYVtiYnJldl0gaXVbbm1hcF0galtvaW5dIGp1W21wc10gayBrZWVwalt1bXBzXSBrZWVbcG1hcmtzXSBsYW5bZ3VhZ2VdIGxhW3N0XSBsY1tkXSBsY2hbZGlyXSBsZVtmdF0gbGVmdGFbYm92ZV0gbFtpc3RdIGxtW2FwXSBsbWFwY1tsZWFyXSBsbltvcmVtYXBdIGxvW2Fkdmlld10gbG9jW2ttYXJrc10gbHMgbHVbbm1hcF0gbWFrW2VdIG1hW3JrXSBtYXJrcyBtYXRbY2hdIG1lbnV0W3JhbnNsYXRlXSBta1tleHJjXSBta3NbZXNzaW9uXSBta3ZpZVt3XSBta3ZbaW1yY10gbW9kW2VdIG1bb3ZlXSBtemZbaWxlXSBteltzY2hlbWVdIG5ldyBuW2V4dF0gTltleHRdIG5tYXBjW2xlYXJdIG5vaFtsc2VhcmNoXSBub3JlYVtiYnJldl0gbm9ybVthbF0gTnJlYWQgbnVbbWJlcl0gbnVuW21hcF0gTncgb21hcGNbbGVhcl0gb25bbHldIG9bcGVuXSBvcHRbaW9uc10gb3Vbbm1hcF0gcGNbbG9zZV0gcGVkW2l0XSBwZVtybF0gcGVybGRbb10gcG9bcF0gcG9wdSBwb3B1W3BdIHBwW29wXSBwcmVbc2VydmVdIHByZXZbaW91c10gcFtyaW50XSBQW3JpbnRdIHByb21wdCBwcm9tcHRmW2luZF0gcHJvbXB0cltlcGxdIHBzW2VhcmNoXSBwdGFbZ10gcHRmW2lyc3RdIHB0alt1bXBdIHB0bFthc3RdIHB0bltleHRdIHB0TltleHRdIHB0cFtyZXZpb3VzXSBwdHJbZXdpbmRdIHB0c1tlbGVjdF0gcHVbdF0gcHdbZF0gcHlmW2lsZV0gcHlbdGhvbl0gcWFbbGxdIHFbdWl0XSBxdWl0YVtsbF0gcltlYWRdIHJlY1tvdmVyXSByZWRpW3JdIHJlZFtvXSByZWRyW2F3XSByZWRyYXdzW3RhdHVzXSByZWdbaXN0ZXJzXSByZXNbaXplXSByZXRbYWJdIHJldHVbcm5dIHJld1tpbmRdIHJpW2dodF0gcmlnaHRiW2Vsb3ddIHJ1Ylt5XSBydWJ5ZFtvXSBydWJ5ZltpbGVdIHJ1W250aW1lXSBydltpbWluZm9dIHNhbFtsXSBzYVtyZ3VtZW50XSBzYXZbZWFzXSBzYmFbbGxdIHNiZltpcnN0XSBzYmxbYXN0XSBzYm1bb2RpZmllZF0gc2JuW2V4dF0gc2JOW2V4dF0gc2JwW3JldmlvdXNdIHNicltld2luZF0gc2JbdWZmZXJdIHNjcmlwdGVbbmNvZGluZ10gc2NyaXBbdG5hbWVzXSBzZVt0XSBzZXRmW2lsZXR5cGVdIHNldGdbbG9iYWxdIHNldGxbb2NhbF0gc2ZbaW5kXSBzZmlyW3N0IHNoW2VsbF0gc2lnbiBzaWxbZW50XSBzaW1bYWx0XSBzbGFbc3RdIHNsW2VlcF0gc21bYWdpY10gc25bZXh0XSBzTltleHRdIHNuaVtmZl0gc25vW21hZ2ljXSBzb1t1cmNlXSBzcFtsaXRdIHNwcltldmlvdXNdIHNyZVt3aW5kXSBzdGFbZ10gc3Rhclt0aW5zZXJ0XSBzdGFydHJbZXBsYWNlXSBzdGpbdW1wXSBzdFtvcF0gc3RvcGlbbnNlcnRdIHN0c1tlbGVjdF0gc3VuW2hpZGVdIHN1c1twZW5kXSBzdltpZXddIHN5biBzeW5jYmluZCB0IHRhW2ddIHRhZ3MgdGNbbF0gdGNsZFtvXSB0Y2xmW2lsZV0gdGVbYXJvZmZdIHRmW2lyc3RdIHRoZSB0aFtyb3ddIHRqW3VtcF0gdGxbYXN0XSB0bSB0bVtlbnVdIHRuW2V4dF0gdE5bZXh0XSB0b1twbGVmdF0gdHBbcmV2aW91c10gdHJbZXdpbmRdIHRyeSB0c1tlbGVjdF0gdHUgdHVbbm1lbnVdIHVuYVtiYnJldmlhdGVdIHVbbmRvXSB1bmhbaWRlXSB1bm1bYXBdIHVwW2RhdGVdIHZlcmJbb3NlXSB2ZVtyc2lvbl0gdmVydFtpY2FsXSB2W2dsb2JhbF0gdmllW3ddIHZpW3N1YWxdIHZtYXBjW2xlYXJdIHZuZVt3XSB2c1twbGl0XSB2dVtubWFwXSB3YVtsbF0gd2hbaWxlXSB3aW5jW21kXSB3aW5kbyB3aW5wW29zXSB3aW5wb3MqIHdpbltzaXplXSB3bltleHRdIHdOW2V4dF0gd3BbcmV2b3VzXSB3cSB3cWFbbGxdIHdbcml0ZV0gd3NbdmVyYl0gd3ZbaW1pbmZvXSBYIHhhW2xsXSB4W2l0XSB5W2Fua10gCitzeW4ga2V5d29yZCB2aW1Db21tYW5kIGNvbnRhaW5lZAlhYlticmV2aWF0ZV0gYWJjW2xlYXJdIGFib1t2ZWxlZnRdIGFsW2xdIGFyZ2FbZGRdIGFyZ2RbZWxldGVdIGFyZ2RvIGFyZ2VbZGl0XSBhcmdnW2xvYmFsXSBhcmdsW29jYWxdIGFyW2dzXSBhcmd1W21lbnRdIGFzW2NpaV0gYmFkW2RdIGJhW2xsXSBiZFtlbGV0ZV0gYmUgYmVsW293cmlnaHRdIGJmW2lyc3RdIGJsW2FzdF0gYm1bb2RpZmllZF0gYm5bZXh0XSBiTltleHRdIGJvW3RyaWdodF0gYnBbcmV2aW91c10gYnJlYVtrXSBicmVha2FbZGRdIGJyZWFrZFtlbF0gYnJlYWtsW2lzdF0gYnJbZXdpbmRdIGJyb1t3c2VdIGJ1ZmRvIGJbdWZmZXJdIGJ1ZmZlcnMgYnVuW2xvYWRdIGJ3W2lwZW91dF0gY2FbYmJyZXZdIGNhYmNbbGVhcl0gY2FsW2xdIGNhdFtjaF0gY2MgY2NsW29zZV0gY2QgY2VbbnRlcl0gY2ZbaWxlXSBjZmlyW3N0XSBjZ1tldGZpbGVdIGNbaGFuZ2VdIGNoYW5nZXMgY2hkW2lyXSBjaGVbY2twYXRoXSBjaGVja3RbaW1lXSBjbGFbc3RdIGNsW2lzdF0gY2xvW3NlXSBjbWFwY1tsZWFyXSBjbmV3W2VyXSBjbltleHRdIGNOW2V4dF0gY25mW2lsZV0gY05mW2lsZV0gY25vcmVhW2JicmV2XSBjb2xbZGVyXSBjb2xvW3JzY2hlbWVdIGNvbWNbbGVhcl0gY29tcFtpbGVyXSBjb25mW2lybV0gY29uW3RpbnVlXSBjb3BlW25dIGNvW3B5XSBjcGZbaWxlXSBjcFtyZXZpb3VzXSBjcVt1aXRdIGNyW2V3aW5kXSBjdW5hW2JicmV2XSBjdVtubWFwXSBjd1tpbmRvd10gZGVidWdnW3JlZWR5XSBkZWxjW29tbWFuZF0gZFtlbGV0ZV0gRGVsZXRlRmlyc3QgZGVsZlt1bmN0aW9uXSBkZWxtW2Fya3NdIGRpZmZnW2V0XSBkaWZmb2ZmIGRpZmZwYXRjaCBkaWZmcHVbdF0gZGlmZnNwbGl0IGRpZmZ0aGlzIGRpZ1tyYXBoc10gZGlbc3BsYXldIGRqW3VtcF0gZGxbaXN0XSBkcltvcF0gZHNbZWFyY2hdIGRzcFtsaXRdIGVjaG9lW3JyXSBlY2hvbVtzZ10gZWNob24gZVtkaXRdIGVsW3NlXSBlbHNlaVtmXSBlbVtlbnVdIGVtZW51KiBlbmRmW3VuY3Rpb25dIGVuW2RpZl0gZW5kdFtyeV0gZW5kd1toaWxlXSBlbmVbd10gZXggZXhpW3RdIGZbaWxlXSBmaWxlcyBmaWxldHlwZSBmaW5hW2xseV0gZmluW2RdIGZpbmlbc2hdIGZpcltzdF0gZml4W2RlbF0gZm9bbGRdIGZvbGRjW2xvc2VdIGZvbGRkb2NbbG9zZWRdIGZvbGRkW29vcGVuXSBmb2xkb1twZW5dIGZ1W25jdGlvbl0gZ1tsb2JhbF0gZ29bdG9dIGdyW2VwXSBncmVwYVtkZF0gaGFbcmRjb3B5XSBoW2VscF0gaGVscGZbaW5kXSBoZWxwZ1tyZXBdIGhlbHB0W2Fnc10gaGlkW2VdIGhpc1t0b3J5XSBJIGlhW2JicmV2XSBpYWJjW2xlYXJdIGlmIGlqW3VtcF0gaWxbaXN0XSBpbWFwY1tsZWFyXSBpbm9yZWFbYmJyZXZdIGlzW2VhcmNoXSBpc3BbbGl0XSBpdW5hW2JicmV2XSBpdVtubWFwXSBqW29pbl0ganVbbXBzXSBrIGtlZXBhbHQga2VlcGpbdW1wc10ga2VlW3BtYXJrc10gbGFuW2d1YWdlXSBsYVtzdF0gbGNbZF0gbGNoW2Rpcl0gbGVbZnRdIGxlZnRhW2JvdmVdIGxbaXN0XSBsbVthcF0gbG1hcGNbbGVhcl0gbG5bb3JlbWFwXSBsb1thZHZpZXddIGxvY1trbWFya3NdIGxzIGx1W25tYXBdIG1ha1tlXSBtYVtya10gbWFya3MgbWF0W2NoXSBtZW51dFtyYW5zbGF0ZV0gbWtbZXhyY10gbWtzW2Vzc2lvbl0gbWt2aWVbd10gbWt2W2ltcmNdIG1vZFtlXSBtW292ZV0gbXpmW2lsZV0gbXpbc2NoZW1lXSBuZXcgbltleHRdIE5bZXh0XSBubWFwY1tsZWFyXSBub2hbbHNlYXJjaF0gbm9yZWFbYmJyZXZdIE5yZWFkIG51W21iZXJdIG51blttYXBdIE53IG9tYXBjW2xlYXJdIG9uW2x5XSBvW3Blbl0gb3B0W2lvbnNdIG91W25tYXBdIHBjW2xvc2VdIHBlZFtpdF0gcGVbcmxdIHBlcmxkW29dIHBvW3BdIHBvcHUgcG9wdVtwXSBwcFtvcF0gcHJlW3NlcnZlXSBwcmV2W2lvdXNdIHBbcmludF0gUFtyaW50XSBwcm9tcHQgcHJvbXB0ZltpbmRdIHByb21wdHJbZXBsXSBwc1tlYXJjaF0gcHRhW2ddIHB0ZltpcnN0XSBwdGpbdW1wXSBwdGxbYXN0XSBwdG5bZXh0XSBwdE5bZXh0XSBwdHBbcmV2aW91c10gcHRyW2V3aW5kXSBwdHNbZWxlY3RdIHB1W3RdIHB3W2RdIHB5ZltpbGVdIHB5W3Rob25dIHFhW2xsXSBxW3VpdF0gcXVpdGFbbGxdIHJbZWFkXSByZWNbb3Zlcl0gcmVkaVtyXSByZWRbb10gcmVkclthd10gcmVkcmF3c1t0YXR1c10gcmVnW2lzdGVyc10gcmVzW2l6ZV0gcmV0W2FiXSByZXR1W3JuXSByZXdbaW5kXSByaVtnaHRdIHJpZ2h0YltlbG93XSBydWJbeV0gcnVieWRbb10gcnVieWZbaWxlXSBydVtudGltZV0gcnZbaW1pbmZvXSBzYWxbbF0gc2FuZGJveCBzYVtyZ3VtZW50XSBzYXZbZWFzXSBzYmFbbGxdIHNiZltpcnN0XSBzYmxbYXN0XSBzYm1bb2RpZmllZF0gc2JuW2V4dF0gc2JOW2V4dF0gc2JwW3JldmlvdXNdIHNicltld2luZF0gc2JbdWZmZXJdIHNjcmlwdGVbbmNvZGluZ10gc2NyaXBbdG5hbWVzXSBzZVt0XSBzZXRmW2lsZXR5cGVdIHNldGdbbG9iYWxdIHNldGxbb2NhbF0gc2ZbaW5kXSBzZmlyW3N0IHNoW2VsbF0gc2lnbiBzaWxbZW50XSBzaW1bYWx0XSBzbGFbc3RdIHNsW2VlcF0gc21bYWdpY10gc25bZXh0XSBzTltleHRdIHNuaVtmZl0gc25vW21hZ2ljXSBzb1t1cmNlXSBzcFtsaXRdIHNwcltldmlvdXNdIHNyZVt3aW5kXSBzdGFbZ10gc3Rhclt0aW5zZXJ0XSBzdGFydHJbZXBsYWNlXSBzdGpbdW1wXSBzdFtvcF0gc3RvcGlbbnNlcnRdIHN0c1tlbGVjdF0gc3VuW2hpZGVdIHN1c1twZW5kXSBzdltpZXddIHN5bmNiaW5kIHQgdGFbZ10gdGFncyB0Y1tsXSB0Y2xkW29dIHRjbGZbaWxlXSB0ZVthcm9mZl0gdGZbaXJzdF0gdGhlIHRoW3Jvd10gdGpbdW1wXSB0bFthc3RdIHRtIHRtW2VudV0gdG5bZXh0XSB0TltleHRdIHRvW3BsZWZ0XSB0cFtyZXZpb3VzXSB0cltld2luZF0gdHJ5IHRzW2VsZWN0XSB0dSB0dVtubWVudV0gdW5hW2JicmV2aWF0ZV0gdVtuZG9dIHVuaFtpZGVdIHVubVthcF0gdXBbZGF0ZV0gdmVyYltvc2VdIHZlW3JzaW9uXSB2ZXJ0W2ljYWxdIHZbZ2xvYmFsXSB2aWVbd10gdmlbc3VhbF0gdm1hcGNbbGVhcl0gdm5lW3ddIHZzW3BsaXRdIHZ1W25tYXBdIHdhW2xsXSB3aFtpbGVdIHdpbmNbbWRdIHdpbmRvIHdpbnBbb3NdIHdpbnBvcyogd2luW3NpemVdIHduW2V4dF0gd05bZXh0XSB3cFtyZXZvdXNdIHdxIHdxYVtsbF0gd1tyaXRlXSB3c1t2ZXJiXSB3dltpbWluZm9dIFggeGFbbGxdIHhbaXRdIHlbYW5rXSAKIHN5biBtYXRjaCAgIHZpbUNvbW1hbmQgY29udGFpbmVkCSJcPHpbLSteLj1dIgogCiAiIHZpbU9wdGlvbnMgYXJlIGNhdWdodCBvbmx5IHdoZW4gY29udGFpbmVkIGluIGEgdmltU2V0IHt7ezIKQEAgLTUxLDEyICs1MSwxNCBAQAogCiAiIERlZmF1bHQgaGlnaGxpZ2h0aW5nIGdyb3VwcyB7e3syCiBzeW4ga2V5d29yZCB2aW1ITEdyb3VwIGNvbnRhaW5lZAlDdXJzb3IgQ3Vyc29ySU0gRGlmZkFkZCBEaWZmQ2hhbmdlIERpZmZEZWxldGUgRGlmZlRleHQgRGlyZWN0b3J5IEVycm9yTXNnIEZvbGRDb2x1bW4gRm9sZGVkIEluY1NlYXJjaCBMaW5lTnIgTWVudSBNb2RlTXNnIE1vcmVNc2cgTm9uVGV4dCBOb3JtYWwgUXVlc3Rpb24gU2Nyb2xsYmFyIFNlYXJjaCBTaWduQ29sdW1uIFNwZWNpYWxLZXkgU3RhdHVzTGluZSBTdGF0dXNMaW5lTkMgVGl0bGUgVG9vbHRpcCBWZXJ0U3BsaXQgVmlzdWFsIFZpc3VhbE5PUyBXYXJuaW5nTXNnIFdpbGRNZW51IAorc3luIG1hdGNoIHZpbUhMR3JvdXAgY29udGFpbmVkCSJDb25jZWFsIgogc3luIGNhc2UgbWF0Y2gKIAogIiBGdW5jdGlvbiBOYW1lcyB7e3syCi1zeW4ga2V5d29yZCB2aW1GdW5jTmFtZSBjb250YWluZWQJYXBwZW5kIGFyZ2MgYXJnaWR4IGFyZ3YgYnJvd3NlIGJ1ZmV4aXN0cyBidWZsaXN0ZWQgYnVmbG9hZGVkIGJ1Zm5hbWUgYnVmbnIgYnVmd2lubnIgYnl0ZTJsaW5lIGNoYXIybnIgY2luZGVudCBjb2wgY29uZmlybSBjc2NvcGVfY29ubmVjdGlvbiBjdXJzb3IgZGVsZXRlIGRpZF9maWxldHlwZSBlc2NhcGUgZXZlbnRoYW5kbGVyIGV4ZWN1dGFibGUgZXhpc3RzIGV4cGFuZCBmaWxlcmVhZGFibGUgZmlsZXdyaXRhYmxlIGZuYW1lbW9kaWZ5IGZvbGRjbG9zZWQgZm9sZGNsb3NlZGVuZCBmb2xkbGV2ZWwgZm9sZHRleHQgZm9yZWdyb3VuZCBmdW5jdGlvbiBnZXRidWZ2YXIgZ2V0Y2hhciBnZXRjaGFybW9kIGdldGNtZGxpbmUgZ2V0Y21kcG9zIGdldGN3ZCBnZXRmc2l6ZSBnZXRmdGltZSBnZXRsaW5lIGdldHJlZyBnZXRyZWd0eXBlIGdldHdpbnBvc3ggZ2V0d2lucG9zeSBnZXR3aW52YXIgZ2xvYiBnbG9icGF0aCBoYXMgaGFzbWFwdG8gaGlzdGFkZCBoaXN0ZGVsIGhpc3RnZXQgaGlzdG5yIGhsZXhpc3RzIGhsSUQgaG9zdG5hbWUgaWNvbnYgaW5kZW50IGlucHV0IGlucHV0ZGlhbG9nIGlucHV0cmVzdG9yZSBpbnB1dHNhdmUgaW5wdXRzZWNyZXQgaXNkaXJlY3RvcnkgbGliY2FsbCBsaWJjYWxsbnIgbGluZSBsaW5lMmJ5dGUgbGlzcGluZGVudCBsb2NhbHRpbWUgbWFwYXJnIG1hcGNoZWNrIG1hdGNoIG1hdGNoZW5kIG1hdGNoc3RyIG1vZGUgbmV4dG5vbmJsYW5rIG5yMmNoYXIgcHJldm5vbmJsYW5rIHJlbW90ZV9leHByIHJlbW90ZV9mb3JlZ3JvdW5kIHJlbW90ZV9wZWVrIHJlbW90ZV9yZWFkIHJlbW90ZV9zZW5kIHJlbmFtZSByZXNvbHZlIHNlYXJjaCBzZWFyY2hwYWlyIHNlcnZlcjJjbGllbnQgc2VydmVybGlzdCBzZXRidWZ2YXIgc2V0Y21kcG9zIHNldGxpbmUgc2V0cmVnIHNldHdpbnZhciBzaW1wbGlmeSBzdHJmdGltZSBzdHJpZHggc3RybGVuIHN0cnBhcnQgc3RycmlkeCBzdHJ0cmFucyBzdWJtYXRjaCBzdWJzdGl0dXRlIHN5bklEIHN5bklEYXR0ciBzeW5JRHRyYW5zIHN5c3RlbSB0ZW1wbmFtZSB0b2xvd2VyIHRvdXBwZXIgdHIgdHlwZSB2aXJ0Y29sIHZpc3VhbG1vZGUgd2luYnVmbnIgd2luY29sIHdpbmhlaWdodCB3aW5saW5lIHdpbm5yIHdpbnJlc3RjbWQgd2lud2lkdGggCitzeW4ga2V5d29yZCB2aW1GdW5jTmFtZSBjb250YWluZWQJYXBwZW5kIGFyZ2MgYXJnaWR4IGFyZ3YgYnJvd3NlIGJyb3dzZWRpciBidWZleGlzdHMgYnVmbGlzdGVkIGJ1ZmxvYWRlZCBidWZuYW1lIGJ1Zm5yIGJ1Zndpbm5yIGJ5dGUybGluZSBieXRlaWR4IGNoYXIybnIgY2luZGVudCBjb2wgY29uZmlybSBjc2NvcGVfY29ubmVjdGlvbiBjdXJzb3IgZGVsZXRlIGRpZF9maWxldHlwZSBkaWZmX2ZpbGxlciBkaWZmX2hsSUQgZXNjYXBlIGV2ZW50aGFuZGxlciBleGVjdXRhYmxlIGV4aXN0cyBleHBhbmQgZmlsZXJlYWRhYmxlIGZpbGV3cml0YWJsZSBmaW5kZGlyIGZpbmRmaWxlIGZuYW1lbW9kaWZ5IGZvbGRjbG9zZWQgZm9sZGNsb3NlZGVuZCBmb2xkbGV2ZWwgZm9sZHRleHQgZm9sZHRleHRyZXN1bHQgZm9yZWdyb3VuZCBmdW5jdGlvbiBnZXRidWZ2YXIgZ2V0Y2hhciBnZXRjaGFybW9kIGdldGNtZGxpbmUgZ2V0Y21kcG9zIGdldGN3ZCBnZXRmcGVybSBnZXRmc2l6ZSBnZXRmdGltZSBnZXRmdHlwZSBnZXRsaW5lIGdldHJlZyBnZXRyZWd0eXBlIGdldHdpbnBvc3ggZ2V0d2lucG9zeSBnZXR3aW52YXIgZ2xvYiBnbG9icGF0aCBoYXMgaGFzbWFwdG8gaGlzdGFkZCBoaXN0ZGVsIGhpc3RnZXQgaGlzdG5yIGhsZXhpc3RzIGhsSUQgaG9zdG5hbWUgaWNvbnYgaW5kZW50IGlucHV0IGlucHV0ZGlhbG9nIGlucHV0cmVzdG9yZSBpbnB1dHNhdmUgaW5wdXRzZWNyZXQgaXNkaXJlY3RvcnkgbGliY2FsbCBsaWJjYWxsbnIgbGluZSBsaW5lMmJ5dGUgbGlzcGluZGVudCBsb2NhbHRpbWUgbWFwYXJnIG1hcGNoZWNrIG1hdGNoIG1hdGNoZW5kIG1hdGNoc3RyIG1vZGUgbmV4dG5vbmJsYW5rIG5yMmNoYXIgcHJldm5vbmJsYW5rIHJlbW90ZV9leHByIHJlbW90ZV9mb3JlZ3JvdW5kIHJlbW90ZV9wZWVrIHJlbW90ZV9yZWFkIHJlbW90ZV9zZW5kIHJlbmFtZSByZXBlYXQgcmVzb2x2ZSBzZWFyY2ggc2VhcmNocGFpciBzZXJ2ZXIyY2xpZW50IHNlcnZlcmxpc3Qgc2V0YnVmdmFyIHNldGNtZHBvcyBzZXRsaW5lIHNldHJlZyBzZXR3aW52YXIgc2ltcGxpZnkgc3RyZnRpbWUgc3RyaWR4IHN0cmxlbiBzdHJwYXJ0IHN0cnJpZHggc3RydHJhbnMgc3VibWF0Y2ggc3Vic3RpdHV0ZSBzeW5JRCBzeW5JRGF0dHIgc3luSUR0cmFucyBzeXN0ZW0gdGVtcG5hbWUgdG9sb3dlciB0b3VwcGVyIHRyIHR5cGUgdmlydGNvbCB2aXN1YWxtb2RlIHdpbmJ1Zm5yIHdpbmNvbCB3aW5oZWlnaHQgd2lubGluZSB3aW5uciB3aW5yZXN0Y21kIHdpbndpZHRoIAogCiAiLS0tIHN5bnRheCBhYm92ZSBnZW5lcmF0ZWQgYnkgbWt2aW12aW0gLS0tCisiLS0tIHN5bnRheCBhYm92ZSBnZW5lcmF0ZWQgYnkgbWt2aW12aW0gLS0tCiAiIFNwZWNpYWwgVmltIEhpZ2hsaWdodGluZyAobm90IGF1dG9tYXRpYykge3t7MQogCiAiIE51bWJlcnMge3t7MgpAQCAtNjgsNyArNzAsNyBAQAogCiAiIEFsbCB2aW1Db21tYW5kcyBhcmUgY29udGFpbmVkIGJ5IHZpbUlzQ29tbWFuZHMuIHt7ezIKIHN5biBtYXRjaCB2aW1DbWRTZXAJIls6fF1cKyIJc2tpcHdoaXRlIG5leHRncm91cD12aW1BZGRyZXNzLHZpbUF1dG9DbWQsdmltQ29tbWFuZCx2aW1FeHRDbWQsdmltRmlsdGVyLHZpbUxldCx2aW1NYXAsdmltTWFyayx2aW1TZXQsdmltU3ludGF4LHZpbVVzZXJDbWQKLXN5biBtYXRjaCB2aW1Jc0NvbW1hbmQJIlw8XGFcK1w+Igljb250YWlucz12aW1Db21tYW5kCitzeW4gbWF0Y2ggdmltSXNDb21tYW5kCSJcPFxoXHcqXD4iCWNvbnRhaW5zPXZpbUNvbW1hbmQKIHN5biBtYXRjaCB2aW1WYXIJCSJcPFtid2dsc2F2XTpcS1xrKlw+Igogc3luIG1hdGNoIHZpbVZhciBjb250YWluZWQJIlw8XEtcaypcPiIKIApAQCAtODgsNyArOTAsNyBAQAogCiAiIEZpbGV0eXBlcyB7e3syCiAiID09PT09PT09PQotc3luIG1hdGNoICAgdmltRmlsZXR5cGUJIlw8ZmlsZXRcJVt5cGVdXChcc1wrXElcaSpcKSpcKHxcfCRcKSIJc2tpcHdoaXRlIGNvbnRhaW5zPXZpbUZUQ21kLHZpbUZUT3B0aW9uLHZpbUZURXJyb3IKK3N5biBtYXRjaCAgIHZpbUZpbGV0eXBlCSJcPGZpbGV0XCVbeXBlXVwoXHNcK1xJXGkqXCkqIglza2lwd2hpdGUgY29udGFpbnM9dmltRlRDbWQsdmltRlRPcHRpb24sdmltRlRFcnJvcgogaWYgIWV4aXN0cygiZzp2aW1zeW50YXhfbm9lcnJvciIpCiAgc3luIG1hdGNoICAgdmltRlRFcnJvciAgY29udGFpbmVkCSJcSVxpKiIKIGVuZGlmCkBAIC0xMjYsNiArMTI4LDcgQEAKIHN5biBtYXRjaCAgdmltT3BlcgkiXCg9PVx8IT1cfD49XHw8PVx8PVx+XHwhXH5cfD5cfDxcfD1cKVs/I11cezAsMn0iCXNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltU3RyaW5nLHZpbVNwZWNGaWxlCiBzeW4gbWF0Y2ggIHZpbU9wZXIJInx8XHwmJlx8Wy0rLl0iCXNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltU3RyaW5nLHZpbVNwZWNGaWxlCiBzeW4gcmVnaW9uIHZpbU9wZXJQYXJlbiBvbmVsaW5lCW1hdGNoZ3JvdXA9dmltT3BlciBzdGFydD0iKCIgZW5kPSIpIiBjb250YWlucz1AdmltT3Blckdyb3VwCitzeW4gcmVnaW9uIHZpbU9wZXJQYXJlbiBvbmVsaW5lCW1hdGNoZ3JvdXA9dmltU2VwICBzdGFydD0ieyIgZW5kPSJ9IiBjb250YWlucz1AdmltT3Blckdyb3VwIG5leHRncm91cD12aW1WYXIKIHN5biBtYXRjaCAgdmltT3Blck9rCSJcPFthaUFJclJdWygpXSIKIGlmICFleGlzdHMoImc6dmltc3ludGF4X25vZXJyb3IiKQogIHN5biBtYXRjaCAgdmltT3BlckVycm9yCSIpIgpAQCAtMjQyLDcgKzI0NSw3IEBACiBzeW4gbWF0Y2ggIHZpbUZpbHRlciBjb250YWluZWQJIlxBIS5cey19XCh8XHwkXCkibXM9cysxCWNvbnRhaW5zPXZpbVNwZWNGaWxlCiAKICIgQ29tcGxleCByZXBlYXRzICg6aCBjb21wbGV4LXJlcGVhdCkge3t7Mgotc3luIG1hdGNoICB2aW1DbXBseFJlcGVhdAknW15hLXpBLVpfL1xcXXFbMC05YS16QS1aIl0nbGM9MQorc3luIG1hdGNoICB2aW1DbXBseFJlcGVhdAknW15hLXpBLVpfL1xcKCldcVswLTlhLXpBLVoiXSdsYz0xCiBzeW4gbWF0Y2ggIHZpbUNtcGx4UmVwZWF0CSdAWzAtOWEteiIuPUA6XVx6ZVwoJFx8W15hLXpBLVpdXCknCiAKICIgU2V0IGNvbW1hbmQgYW5kIGFzc29jaWF0ZWQgc2V0LW9wdGlvbnMgKHZpbU9wdGlvbnMpIHdpdGggY29tbWVudCB7e3syCkBAIC0yNjYsNyArMjY5LDcgQEAKICIgRWNobyBhbmQgRXhlY3V0ZSAtLSBwcmVmZXIgc3RyaW5ncyEge3t7MgogIiA9PT09PT09PT09PT09PT09CiBzeW4gcmVnaW9uICB2aW1FY2hvCW9uZWxpbmUgZXhjbHVkZW5sIG1hdGNoZ3JvdXA9dmltQ29tbWFuZCBzdGFydD0iXDxlY1wlW2hvXVw+IiBza2lwPSJcKFxcXFxcKSpcXHwiIGVuZD0iJFx8fCIgY29udGFpbnM9dmltRnVuYyx2aW1TdHJpbmcsdmFyVmFyCi1zeW4gcmVnaW9uICB2aW1FeGVjdXRlCW9uZWxpbmUgZXhjbHVkZW5sIG1hdGNoZ3JvdXA9dmltQ29tbWFuZCBzdGFydD0iXDxleGVcJVtjdXRlXVw+IiBza2lwPSJcKFxcXFxcKSpcXHwiIGVuZD0iJFx8fFx8PFtjQ11bclJdPiIgY29udGFpbnM9dmltSXNDb21tYW5kLHZpbVN0cmluZyx2aW1PcGVyLHZpbVZhcix2aW1Ob3RhdGlvbgorc3luIHJlZ2lvbiAgdmltRXhlY3V0ZQlvbmVsaW5lIGV4Y2x1ZGVubCBtYXRjaGdyb3VwPXZpbUNvbW1hbmQgc3RhcnQ9Ilw8ZXhlXCVbY3V0ZV1cPiIgc2tpcD0iXChcXFxcXCkqXFx8IiBlbmQ9IiRcfHxcfDxbY0NdW3JSXT4iIGNvbnRhaW5zPXZpbUlzQ29tbWFuZCx2aW1TdHJpbmcsdmltT3Blcix2aW1WYXIsdmltTm90YXRpb24sdmltT3BlclBhcmVuCiBzeW4gbWF0Y2ggICB2aW1FY2hvSEwJImVjaG9obFw9Iglza2lwd2hpdGUgbmV4dGdyb3VwPXZpbUdyb3VwLHZpbUhMR3JvdXAsdmltRWNob0hMTm9uZQogc3luIGNhc2UgaWdub3JlCiBzeW4ga2V5d29yZCB2aW1FY2hvSExOb25lCW5vbmUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3dnZXQudmltIGIvcnVudGltZS9zeW50YXgvd2dldC52aW0KaW5kZXggODAxZjc2ZC4uODhkZjY5MCAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvd2dldC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvd2dldC52aW0KQEAgLTEsOSArMSw5IEBACiAiIFdnZXQgc3ludGF4IGZpbGUKICIgRmlsZW5hbWU6ICAgICB3Z2V0LnZpbQogIiBMYW5ndWFnZTogICAgIFdnZXQgY29uZmlndXJhdGlvbiBmaWxlICggL2V0Yy93Z2V0cmMgfi8ud2dldHJjICkKLSIgTWFpbnRhaW5lcjogICBEb3VnIEtlYXJucyA8ZGprZWEyQG11Z2NhLml0cy5tb25hc2guZWR1LmF1PgotIiBVUkw6CQlodHRwOi8vbXVnY2EuaXRzLm1vbmFzaC5lZHUuYXUvfmRqa2VhMi92aW0vc3ludGF4L3dnZXQudmltCi0iIExhc3QgQ2hhbmdlOiAgMjAwMyBNYXkgMTEKKyIgTWFpbnRhaW5lcjogICBEb3VnIEtlYXJucyA8ZGprZWEyQGd1cy5nc2NpdC5tb25hc2guZWR1LmF1PgorIiBVUkw6CQlodHRwOi8vZ3VzLmdzY2l0Lm1vbmFzaC5lZHUuYXUvfmRqa2VhMi92aW0vc3ludGF4L3dnZXQudmltCisiIExhc3QgQ2hhbmdlOiAgMjAwNCBOb3YgMjcKIAogIiBUT0RPOiBhbGwgY29tbWFuZHMgYXJlIGFjdHVhbGx5IHVuZGVyc2NvcmUgYW5kIGh5cGhlbiBpbnNlbnNpdGl2ZSwgdGhvdWdoCiAiICAgICAgIHRoZXkgYXJlIG5vcm1hbGx5IG5hbWVkIGFzIGxpc3RlZCBiZWxvdwpkaWZmIC0tZ2l0IGEvcnVudGltZS90dXRvci90dXRvci5kZSBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuZGUKaW5kZXggMmE4ZjA5MC4uZDIwNzYyMSAxMDA2NDQKLS0tIGEvcnVudGltZS90dXRvci90dXRvci5kZQorKysgYi9ydW50aW1lL3R1dG9yL3R1dG9yLmRlCkBAIC02Nyw3ICs2Nyw3IEBACiAgICAgIFdlbm4gRHUgZGllIMRuZGVydW5nZW4gc3BlaWNoZXJuIHVuZCBiZWVuZGVuIHdpbGxzdCwgdGlwcGU6CiAJCQkJOndxICA8RU5URVI+CiAKLSAgMy4gV2VubiBEdSBkaWUgRWluZ2FiZWF1ZmZvcmRlcnVuZyBzaWVoc3QsIHRpcHBlIGRhcyBLb21tYW5kbywgZGFzcyBEaWNoIHp1CisgIDMuIFdlbm4gRHUgZGllIEVpbmdhYmVhdWZmb3JkZXJ1bmcgc2llaHN0LCB0aXBwZSBkYXMgS29tbWFuZG8sIGRhcyBEaWNoIHp1CiAgICAgIGRpZXNlbSBUdXRvciBnZWb8aHJ0IGhhdC4gRGFzIGv2bm50ZSBzZWluOiB2aW10dXRvciA8RU5URVI+CiAgICAgIEltIE5vcm1hbGZhbGwgd/xyZGVzdCBEdSBlaW5nZWJlbgkJCVZpbSB0dXRvciA8RU5URVI+CiAKQEAgLTI5OSwxMSArMjk5LDExIEBACiAJCQkgICBMZWt0aW9uIDMuMTogQU5G3EdFTiAoUFVUKQogCiAKLSAgICAgICAqKiBUaXBwZSBwICx1bSBkYXMgenVsZXR6dCBHZWz2c2NodGUgbmFjaCBkZW0gQ3Vyc29yIGFuenVm/Gdlbi4gKioKKyAgICAgICAqKiBUaXBwZSBwICwgdW0gZGFzIHp1bGV0enQgR2Vs9nNjaHRlIG5hY2ggZGVtIEN1cnNvciBhbnp1ZvxnZW4uICoqCiAKICAgMS4gQmV3ZWdlIGRlbiBDdXJzb3IgenVyIGVyc3RlbiBaZWlsZSBkZXMgdW50ZW4gc3RlaGVuZGVuIFNpbm5zcHJ1Y2hzLgogCi0gIDIuIFRpcHBlICBkZCAgLCB1bSBkaWUgWmVpbGUgenUgbPZzY2hlbiB1bmQgc2llIGltIFZpbXMgUHVmZmVyIHp1IHNwZWljaGVybi4KKyAgMi4gVGlwcGUgIGRkICAsIHVtIGRpZSBaZWlsZSB6dSBs9nNjaGVuIHVuZCBzaWUgaW4gVmltcyBQdWZmZXIgenUgc3BlaWNoZXJuLgogCiAgIDMuIEJld2VnZSBkZW4gQ3Vyc29yIHp1ciBaZWlsZSDcQkVSIGRlcmplbmlnZW4sCiAgICAgIHdvIGRpZSBnZWz2c2NodGUgWmVpbGUgcGxhdHppZXJ0IHdlcmRlbiBzb2xsLgpAQCAtMzUwLDcgKzM1MCw3IEBACiAKICAgMS4gQmV3ZWdlIGRlbiBDdXJzb3IgenVyIGVyc3RlbiB1bnRlbiBzdGVoZW5kZW4sIG1pdCAtLS0+IG1hcmtpZXJ0ZW4gWmVpbGUuCiAKLSAgMi4gUGxhemllcmUgZGVuIEN1cnNvciBhdWYgZGFzIHMgdm9uIFdzdHdyLgorICAyLiBQbGF0emllcmUgZGVuIEN1cnNvciBhdWYgZGFzIHMgdm9uIFdzdHdyLgogCiAgIDMuIFRpcHBlICBjdyAgdW5kIGRpZSBXb3J0a29ycmVrdHVyIGVpbiAoaW4gZGllc2VtIEZhbGwsIHRpcHBlICAn9nJ0ZXInLikKIApAQCAtMzcyLDcgKzM3Miw3IEBACiAKICAgICAgKiogRGFzIGNoYW5nZS1Lb21tYW5kbyBhcmJlaXRldCBtaXQgZGVuc2VsYmVuIE9iamVrdGVuIHdpZSBkZWxldGUgICoqCiAKLSAgMS4gRGFzIGNoYW5nZSBLb21tYW5kbyBhcmJlaXRldCBnbGVpY2hlciBXZWlzZSB3aWUgZGVsZXRlLiBEYXMgRm9ybWF0IGlzdDoKKyAgMS4gRGFzIGNoYW5nZSBLb21tYW5kbyBhcmJlaXRldCBpbiBnbGVpY2hlciBXZWlzZSB3aWUgZGVsZXRlLiBEYXMgRm9ybWF0IGlzdDoKIAogICAgICAgIFtOdW1tZXJdICAgYyAgIE9iamVrdCAgICAgICBPREVSICAgICAgIGMgICBbTnVtbWVyXSAgIE9iamVrdAogCkBAIC0zOTMsNyArMzkzLDcgQEAKIAkJCSAgIFpVU0FNTUVORkFTU1VORyBWT04gTEVLVElPTiAzCiAKIAotICAxLiBVbSBlaW5lbiB2b3JoZXIgZ2Vs9nNjaHRlbiBUZXh0IGFuenVm/GdlbiwgdGlwcGUgIHAgIC4gRGllc2UgZvxndCBkZW4KKyAgMS4gVW0gZWluZW4gdm9yaGVyIGdlbPZzY2h0ZW4gVGV4dCBhbnp1ZvxnZW4sIHRpcHBlICBwICAuIERpZXMgZvxndCBkZW4KICAgICAgZ2Vs9nNjaHRlbiBUZXh0IE5BQ0ggZGVtIEN1cnNvciBhbiAod2VubiBlcyBzaWNoIHVtIGVpbmUgZ2FuemUgWmVpbGUKICAgICAgaGFuZGVsdCwgd2lyZCBhYiBkZXIgWmVpbGUgdW50ZXIgZGVtIEN1cnNvciBlaW5nZWb8Z3QpLgogCkBAIC00NjMsNyArNDYzLDcgQEAKIAogICAgKiogVGlwcGUgICUgLCB1bSBlaW5lIGtvcnJlc3BvbmRpZXJlbmRlIEtsYW1tZXIgKSxdLCBvZGVyIH0genUgZmluZGVuLiAqKgogCi0gIDEuIFBsYXppZXJlIGRlbiBDdXJzb3IgYXVmIGlyZ2VuZGVpbmVtIGRlciBaZWljaGVuICgsIFssIG9kZXIgeworICAxLiBQbGF0emllcmUgZGVuIEN1cnNvciBhdWYgaXJnZW5kZWluZW0gZGVyIFplaWNoZW4gKCwgWywgb2RlciB7CiAgICAgIGluIGRlciB1bnRlbiBzdGVoZW5kZW4gWmVpbGUsIGRpZSBtaXQgLS0tPiBtYXJraWVydCBpc3QuCiAKICAgMi4gTnVuIHRpcHBlIGRhcyAgJSAgWmVpY2hlbi4KQEAgLTYxMiw3ICs2MTIsNyBAQAogICAxLiBUaXBwZSAgIDohbHMgICBiencuICAgIWRpciAsICB1bSBzaWNoZXJ6dXN0ZWxsZW4sIGRhc3MgRGVpbmUgRGF0ZWkgVEVTVAogICAgICB2b24gdm9yaGluIHZvcmhhbmRlbiBpc3QuCiAKLSAgMi4gUGxhemllcmUgZGVuIEN1cnNvciBhdWYgZGVyIGVyc3RlbiBaZWlsZSBkaWVzZXMgS2FwaXRlbHMuCisgIDIuIFBsYXR6aWVyZSBkZW4gQ3Vyc29yIGF1ZiBkZXIgZXJzdGVuIFplaWxlIGRpZXNlcyBLYXBpdGVscy4KIAogQkVBQ0hURTogIE5hY2hkZW0gRHUgU2Nocml0dCAzIGF1c2dlZvxocnQgaGFzdCwgd2lyc3QgRHUgTGVrdGlvbiA1LjMgIHNlaGVuLgogCSAgQW4gZGllc2VtIFB1bmt0IGJld2VnZSBEaWNoIHdpZWRlciBBQlfEUlRTIHp1IGRpZXNlciBMZWt0aW9uLgpAQCAtNzA2LDcgKzcwNiw3IEBACiAKICAgMS4gQmV3ZWdlIGRlbiBDdXJzb3IgenVyIGVyc3RlbiB1bnRlbiBzdGVoZW5kZW4sIG1pdCAtLS0+IG1hcmtpZXJ0ZW4gWmVpbGUuCiAKLSAgMi4gUGxhemllcmUgZGVuIEN1cnNvciBhdWYgZGVuIEFuZmFuZyBkZXMgZXJzdGVuIFdvcnRlcywgd2VsY2hlcyBzaWNoIHZvbgorICAyLiBQbGF0emllcmUgZGVuIEN1cnNvciBhdWYgZGVuIEFuZmFuZyBkZXMgZXJzdGVuIFdvcnRlcywgd2VsY2hlcyBzaWNoIHZvbgogICAgICBkZXIgendlaXRlbiBtaXQgLS0tPiBtYXJraWVydGVuIFplaWxlIHVudGVyc2NoZWlkZXQgKGRhcyBXb3J0ICdiZW51dHplJykuCiAKICAgMy4gTnVuIGdpYiBlaW4gUiAgZWluLCB1bmQgZXJzZXR6ZSBkZW4gUmVzdCBkZXMgVGV4dGVzIGF1ZiBkZXIgZXJzdGVuCkBAIC04MjUsMTEgKzgyNSwxOSBAQAogICBG/HIgd2VpdGVyZXMgTGVzZW4gdW5kIExlcm5lbiBrYW5uIGZvbGdlbmRlcyBCdWNoIGVtcGZvaGxlbiB3ZXJkZW46CiAJVmltIC0gVmkgSW1wcm92ZWQgLSB2b24gU3RldmUgT3VhbGxpbmUKIAlWZXJsYWc6IE5ldyBSaWRlcnMKLSAgRGFzIGVyc3RlIEJ1Y2gsIGRhc3MgZHVyY2hn5G5naWcgVmltIGdld2lkbWV0IGlzdC4gIEJlc29uZGVycyBu/HR6bGljaAorICBEYXMgZXJzdGUgQnVjaCwgZGFzIGR1cmNoZ+RuZ2lnIFZpbSBnZXdpZG1ldCBpc3QuICBCZXNvbmRlcnMgbvx0emxpY2gKICAgZvxyIEFuZuRuZ2VyLgogICBWaWVsZSBCZWlzcGllbGUgdW5kIEJpbGRlciBzaW5kIGVudGhhbHRlbi4KICAgU2llaGUgaHR0cDovL3d3dy5pY2NmLm5sL2NsaWNrNS5odG1sCiAKKyAgQWxzIGFrdHVlbGxlIFJlZmVyZW56IGbvv71yIFZlcnNpb24gNi4yIHVuZCBrbmFwcGUgRWluZu+/vWhydW5nIGRpZW50IGRhcworICBmb2xnZW5kZSBCdWNoOgorICAgICAgICB2aW0gZ2UtcGFja3Qgdm9uIFJlaW5oYXJkIFdvYnN0CisJbWl0cC1WZXJsYWcsIElTQk4gMy04MjY2LTE0MjUtOQorICBUcm90eiBkZXIga29tcGFrdGVuIERhcnN0ZWxsdW5nIGlzdCBlcyBkdXJjaCB2aWVsZSBu77+9dHpsaWNoZSBCZWlzcGllbGUgYXVjaAorICBm77+9ciBFaW5zdGVpZ2VyIGVtcGZlaGxlbnN3ZXJ0LiAgUHJvYmVrYXBpdGVsIHVuZCBkaWUgQmVpc3BpZWxza3JpcHRlIHNpbmQKKyAgb25saW5lIGVyaO+/vWx0bGljaC4gIFNpZWhlIGh0dHA6Ly93d3cuaWNjZi5ubC9jbGljazUuaHRtbAorCiAgIEZvbGdlbmRlcyBCdWNoIGlzdCDkbHRlciB1bmQgbWVociD8YmVyIFZpIGFscyBWaW0sIGFiZXIgYXVjaCBlbXBmZWhsZW5zd2VydDoKIAlMaW5kYSBMYW1iIHVuZCBBcm5vbGQgUm9iYmlucwogCVRleHRiZWFyYmVpdHVuZyBtaXQgZGVtIHZpLUVkaXRvcgo=