PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiCnhtbG5zOm89InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIKeG1sbnM6cD0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6cG93ZXJwb2ludCIKeG1sbnM6b2E9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOmFjdGl2YXRpb24iCnhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4KCjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PUNvbnRlbnQtVHlwZSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUyIj4KPG1ldGEgbmFtZT1Qcm9nSWQgY29udGVudD1Qb3dlclBvaW50LlNsaWRlPgo8bWV0YSBuYW1lPUdlbmVyYXRvciBjb250ZW50PSJNaWNyb3NvZnQgUG93ZXJQb2ludCAxMiI+CjxsaW5rIHJlbD1GaWxlLUxpc3QgaHJlZj0iRWNsaXBzZUNvbjIwMDhfU2hvcnRUYWxrX2ZpbGVzL2ZpbGVsaXN0LnhtbCI+CjxsaW5rIHJlbD1QcmV2aWV3IGhyZWY9IkVjbGlwc2VDb24yMDA4X1Nob3J0VGFsa19maWxlcy9wcmV2aWV3LndtZiI+CjxsaW5rIHJlbD1FZGl0LVRpbWUtRGF0YSBocmVmPSJFY2xpcHNlQ29uMjAwOF9TaG9ydFRhbGtfZmlsZXMvZWRpdGRhdGEubXNvIj4KPHRpdGxlPldoYXQncyBOZXcgaW4gTURUPzwvdGl0bGU+CjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPgogPG86RG9jdW1lbnRQcm9wZXJ0aWVzPgogIDxvOlN1YmplY3Q+U2hvcnQgVGFsazwvbzpTdWJqZWN0PgogIDxvOkF1dGhvcj5LZW5uIEh1c3NleTwvbzpBdXRob3I+CiAgPG86TGFzdEF1dGhvcj5LZW5uIEh1c3NleTwvbzpMYXN0QXV0aG9yPgogIDxvOlJldmlzaW9uPjIwPC9vOlJldmlzaW9uPgogIDxvOlRvdGFsVGltZT4xODE2PC9vOlRvdGFsVGltZT4KICA8bzpDcmVhdGVkPjIwMDctMTItMTJUMTc6NTk6MzBaPC9vOkNyZWF0ZWQ+CiAgPG86TGFzdFNhdmVkPjIwMDgtMDMtMTlUMTg6MjE6MTFaPC9vOkxhc3RTYXZlZD4KICA8bzpDYXRlZ29yeT5Nb2RlbGluZzwvbzpDYXRlZ29yeT4KICA8bzpQcmVzZW50YXRpb25Gb3JtYXQ+T24tc2NyZWVuIFNob3cgKDQ6Myk8L286UHJlc2VudGF0aW9uRm9ybWF0PgogIDxvOkNvbXBhbnk+RW1iYXJjYWRlcm8gVGVjaG5vbG9naWVzPC9vOkNvbXBhbnk+CiAgPG86U2xpZGVzPjIzPC9vOlNsaWRlcz4KICA8bzpOb3Rlcz4yMzwvbzpOb3Rlcz4KICA8bzpWZXJzaW9uPjEyLjAwPC9vOlZlcnNpb24+CiA8L286RG9jdW1lbnRQcm9wZXJ0aWVzPgogPG86T2ZmaWNlRG9jdW1lbnRTZXR0aW5ncz4KICA8bzpQaXhlbHNQZXJJbmNoPjgwPC9vOlBpeGVsc1BlckluY2g+CiA8L286T2ZmaWNlRG9jdW1lbnRTZXR0aW5ncz4KPC94bWw+PCFbZW5kaWZdLS0+CjxsaW5rIHJlbD1QcmVzZW50YXRpb24tWE1MIGhyZWY9IkVjbGlwc2VDb24yMDA4X1Nob3J0VGFsa19maWxlcy9wcmVzLnhtbCI+CjxtZXRhIG5hbWU9RGVzY3JpcHRpb24gY29udGVudD0iMy8xOS8yMDA4OiBXaGF0knMgTmV3IGluIE1EVD8iPgo8bWV0YSBodHRwLWVxdWl2PWV4cGlyZXMgY29udGVudD0wPgo8IVtpZiAhcHB0XT48c2NyaXB0Pgo8IS0tCgl2YXIgdmVyID0gMCwgYXBwVmVyID0gbmF2aWdhdG9yLmFwcFZlcnNpb24sIG1zaWUgPSBhcHBWZXIuaW5kZXhPZiggIk1TSUUgIiApCgl2YXIgbXNpZVdpbjMxID0gKGFwcFZlci5pbmRleE9mKCAiV2luZG93cyAzLjEiICkgPj0gMCksIGlzTWFjID0gKGFwcFZlci5pbmRleE9mKCJNYWNpbnRvc2giKSA+PSAwKQoJaWYoIG1zaWUgPj0gMCApCgkJdmVyID0gcGFyc2VGbG9hdCggYXBwVmVyLnN1YnN0cmluZyggbXNpZSs1LCBhcHBWZXIuaW5kZXhPZiAoICI7IiwgbXNpZSApICkgKQoJZWxzZQoJCXZlciA9IHBhcnNlSW50KCBhcHBWZXIgKQoJYnJvd3NlclN1cHBvcnRlZD0wCglpZiggIWlzTWFjICYmIHZlciA+PSA0ICYmIG1zaWUgPj0gMCApIHsKCQlicm93c2VyU3VwcG9ydGVkPTEKCQl3aW5kb3cubG9jYXRpb24ucmVwbGFjZSggJ0VjbGlwc2VDb24yMDA4X1Nob3J0VGFsa19maWxlcy9mcmFtZS5odG1sJytkb2N1bWVudC5sb2NhdGlvbi5oYXNoICkKCX0KLy8tLT4KPC9zY3JpcHQ+CjwhW2VuZGlmXT4KPC9oZWFkPgoKPGJvZHk+CjxzY3JpcHQ+PCEtLQoKaWYoIGJyb3dzZXJTdXBwb3J0ZWQgKQoJZG9jdW1lbnQud3JpdGVsbignPGRpdiBzdHlsZT0idmlzaWJpbGl0eTpoaWRkZW4iPicpOwoKLy8tLT48L3NjcmlwdD48Zm9udCBmYWNlPUFyaWFsIHNpemU9Mj48Yj4KCjxwPlRoaXMgcHJlc2VudGF0aW9uIGNvbnRhaW5zIGNvbnRlbnQgdGhhdCB5b3VyIGJyb3dzZXIgbWF5IG5vdCBiZSBhYmxlIHRvIHNob3cKcHJvcGVybHkuPC9wPgoKPHA+SWYgeW91IHdvdWxkIGxpa2UgdG8gcHJvY2VlZCBhbnl3YXksIGNsaWNrIDxhCmhyZWY9IkVjbGlwc2VDb24yMDA4X1Nob3J0VGFsa19maWxlcy9mcmFtZS5odG1sIj5oZXJlPC9hPi48L3A+Cgo8L2I+PC9mb250PjxzY3JpcHQ+PCEtLQoKaWYoIGJyb3dzZXJTdXBwb3J0ZWQgKQoJZG9jdW1lbnQud3JpdGVsbignPC9kaXY+Jyk7CgovLy0tPjwvc2NyaXB0Pgo8L2JvZHk+Cgo8L2h0bWw+Cg==