PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiCnhtbG5zOm89InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIKeG1sbnM6cD0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6cG93ZXJwb2ludCIKeG1sbnM6b2E9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOmFjdGl2YXRpb24iCnhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4KCjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PUNvbnRlbnQtVHlwZSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUyIj4KPG1ldGEgbmFtZT1Qcm9nSWQgY29udGVudD1Qb3dlclBvaW50LlNsaWRlPgo8bWV0YSBuYW1lPUdlbmVyYXRvciBjb250ZW50PSJNaWNyb3NvZnQgUG93ZXJQb2ludCAxMiI+CjxsaW5rIHJlbD1GaWxlLUxpc3QgaHJlZj0iRWNsaXBzZUNvbjIwMDhfTG9uZ1RhbGtfZmlsZXMvZmlsZWxpc3QueG1sIj4KPGxpbmsgcmVsPVByZXZpZXcgaHJlZj0iRWNsaXBzZUNvbjIwMDhfTG9uZ1RhbGtfZmlsZXMvcHJldmlldy53bWYiPgo8bGluayByZWw9RWRpdC1UaW1lLURhdGEgaHJlZj0iRWNsaXBzZUNvbjIwMDhfTG9uZ1RhbGtfZmlsZXMvZWRpdGRhdGEubXNvIj4KPHRpdGxlPk9wZW4gU291cmNlIE1lZXRzIE9wZW4gU3BlY2lmaWNhdGlvbnM6IEVjbGlwc2UgYW5kIHRoZSBPTUc8L3RpdGxlPgo8IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4KIDxvOkRvY3VtZW50UHJvcGVydGllcz4KICA8bzpTdWJqZWN0PkxvbmcgVGFsazwvbzpTdWJqZWN0PgogIDxvOkF1dGhvcj5LZW5uIEh1c3NleTwvbzpBdXRob3I+CiAgPG86TGFzdEF1dGhvcj5LZW5uIEh1c3NleTwvbzpMYXN0QXV0aG9yPgogIDxvOlJldmlzaW9uPjExOTwvbzpSZXZpc2lvbj4KICA8bzpUb3RhbFRpbWU+NzE4NjwvbzpUb3RhbFRpbWU+CiAgPG86Q3JlYXRlZD4yMDA3LTEyLTEyVDE3OjU5OjMwWjwvbzpDcmVhdGVkPgogIDxvOkxhc3RTYXZlZD4yMDA4LTAzLTE5VDA2OjU2OjE3WjwvbzpMYXN0U2F2ZWQ+CiAgPG86Q2F0ZWdvcnk+TW9kZWxpbmc8L286Q2F0ZWdvcnk+CiAgPG86UHJlc2VudGF0aW9uRm9ybWF0Pk9uLXNjcmVlbiBTaG93ICg0OjMpPC9vOlByZXNlbnRhdGlvbkZvcm1hdD4KICA8bzpDb21wYW55PkVtYmFyY2FkZXJvIFRlY2hub2xvZ2llczwvbzpDb21wYW55PgogIDxvOlNsaWRlcz4xMTI8L286U2xpZGVzPgogIDxvOk5vdGVzPjExMjwvbzpOb3Rlcz4KICA8bzpWZXJzaW9uPjEyLjAwPC9vOlZlcnNpb24+CiA8L286RG9jdW1lbnRQcm9wZXJ0aWVzPgogPG86T2ZmaWNlRG9jdW1lbnRTZXR0aW5ncz4KICA8bzpQaXhlbHNQZXJJbmNoPjgwPC9vOlBpeGVsc1BlckluY2g+CiA8L286T2ZmaWNlRG9jdW1lbnRTZXR0aW5ncz4KPC94bWw+PCFbZW5kaWZdLS0+CjxsaW5rIHJlbD1QcmVzZW50YXRpb24tWE1MIGhyZWY9IkVjbGlwc2VDb24yMDA4X0xvbmdUYWxrX2ZpbGVzL3ByZXMueG1sIj4KPG1ldGEgbmFtZT1EZXNjcmlwdGlvbgpjb250ZW50PSIzLzE5LzIwMDg6IE9wZW4gU291cmNlIE1lZXRzIE9wZW4gU3BlY2lmaWNhdGlvbnM6IEVjbGlwc2UgYW5kIHRoZSBPTUeZIj4KPG1ldGEgaHR0cC1lcXVpdj1leHBpcmVzIGNvbnRlbnQ9MD4KPCFbaWYgIXBwdF0+PHNjcmlwdD4KPCEtLQoJdmFyIHZlciA9IDAsIGFwcFZlciA9IG5hdmlnYXRvci5hcHBWZXJzaW9uLCBtc2llID0gYXBwVmVyLmluZGV4T2YoICJNU0lFICIgKQoJdmFyIG1zaWVXaW4zMSA9IChhcHBWZXIuaW5kZXhPZiggIldpbmRvd3MgMy4xIiApID49IDApLCBpc01hYyA9IChhcHBWZXIuaW5kZXhPZigiTWFjaW50b3NoIikgPj0gMCkKCWlmKCBtc2llID49IDAgKQoJCXZlciA9IHBhcnNlRmxvYXQoIGFwcFZlci5zdWJzdHJpbmcoIG1zaWUrNSwgYXBwVmVyLmluZGV4T2YgKCAiOyIsIG1zaWUgKSApICkKCWVsc2UKCQl2ZXIgPSBwYXJzZUludCggYXBwVmVyICkKCWJyb3dzZXJTdXBwb3J0ZWQ9MAoJaWYoICFpc01hYyAmJiB2ZXIgPj0gNCAmJiBtc2llID49IDAgKSB7CgkJYnJvd3NlclN1cHBvcnRlZD0xCgkJd2luZG93LmxvY2F0aW9uLnJlcGxhY2UoICdFY2xpcHNlQ29uMjAwOF9Mb25nVGFsa19maWxlcy9mcmFtZS5odG1sJytkb2N1bWVudC5sb2NhdGlvbi5oYXNoICkKCX0KLy8tLT4KPC9zY3JpcHQ+CjwhW2VuZGlmXT4KPC9oZWFkPgoKPGJvZHk+CjxzY3JpcHQ+PCEtLQoKaWYoIGJyb3dzZXJTdXBwb3J0ZWQgKQoJZG9jdW1lbnQud3JpdGVsbignPGRpdiBzdHlsZT0idmlzaWJpbGl0eTpoaWRkZW4iPicpOwoKLy8tLT48L3NjcmlwdD48Zm9udCBmYWNlPUFyaWFsIHNpemU9Mj48Yj4KCjxwPlRoaXMgcHJlc2VudGF0aW9uIGNvbnRhaW5zIGNvbnRlbnQgdGhhdCB5b3VyIGJyb3dzZXIgbWF5IG5vdCBiZSBhYmxlIHRvIHNob3cKcHJvcGVybHkuPC9wPgoKPHA+SWYgeW91IHdvdWxkIGxpa2UgdG8gcHJvY2VlZCBhbnl3YXksIGNsaWNrIDxhCmhyZWY9IkVjbGlwc2VDb24yMDA4X0xvbmdUYWxrX2ZpbGVzL2ZyYW1lLmh0bWwiPmhlcmU8L2E+LjwvcD4KCjwvYj48L2ZvbnQ+PHNjcmlwdD48IS0tCgppZiggYnJvd3NlclN1cHBvcnRlZCApCglkb2N1bWVudC53cml0ZWxuKCc8L2Rpdj4nKTsKCi8vLS0+PC9zY3JpcHQ+CjwvYm9keT4KCjwvaHRtbD4K