Ly8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLyAqCi8vICogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwovLyAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi8vICoKLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLyAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KLy8gIDExLzE3Lzk5ICAgIGFsaXUgICAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIHRyYW5zbGl0ZXJhdG9ycy4KCi8vIFBsZWFzZSBzZWFyY2ggZm9yICdEVVAgRklYTUUnIC0gZHVwbGljYXRlIGxhbmcvY291bnRyeSBuYW1lcyBjb21tZW50ZWQgb3V0CgoKCnJvb3QgewogICAgVmVyc2lvbiB7ICIzIiB9CiAgICAiJSVFVVJPIiB7ICJFdXJvIiB9ICAgICAgICAgLy8gRXVybyB2YXJpYW50IGRpc3BsYXkgbmFtZQogICAgIiUlQiIgICAgeyAiQm9rbVx1MDBlNWwiIH0gIC8vIE5vcndlZ2lhbiB2YXJpYW50IGRpc3BsYXkgbmFtZQogICAgIiUlTlkiICAgeyAiTnlub3JzayIgfSAgICAgIC8vIE5vcndlZ2lhbiB2YXJpYW50IGRpc3BsYXkgbmFtZQogICAgIiUlQUwiIHsgIlx1MDBDNUxBTkQiIH0gLy8gQWxhbmQgdmFyaWFudCBkaXNwbGF5IG5hbWUKICAgIC8vIEZvcm1hdHMgZm9yIHRoZSBkaXNwbGF5IG5hbWUgb2YgYSBsb2NhbGUsIGZvciBhIGxpc3Qgb2YKICAgIC8vIGl0ZW1zLCBhbmQgZm9yIGNvbXBvc2luZyB0d28gaXRlbXMgaW4gYSBsaXN0IGludG8gb25lIGl0ZW0uCiAgICAvLyBUaGUgbGlzdCBwYXR0ZXJucyBhcmUgdXNlZCBpbiB0aGUgdmFyaWFudCBuYW1lIGFuZCBpbiB0aGUKICAgIC8vIGZ1bGwgZGlzcGxheSBuYW1lLgogICAgLy8KICAgIC8vIFRoaXMgaXMgdGhlIGxhbmd1YWdlLW5ldXRyYWwgZm9ybSBvZiB0aGlzIHJlc291cmNlLgogICAgLy8KICAgIExvY2FsZU5hbWVQYXR0ZXJucyB7CiAgICAgICAgIHsKICAgICAgICAgICAgInswLGNob2ljZSwwI3wxI3sxfXwyI3sxfSAoezJ9KX0iLCAvLyBEaXNwbGF5IG5hbWUKICAgICAgICAgICAgInswLGNob2ljZSwwI3wxI3sxfXwyI3sxfSx7Mn18MyN7MX0sezJ9LHszfX0iLCAvLyBMaXN0CiAgICAgICAgICAgICJ7MH0sezF9IiAvLyBMaXN0IGNvbXBvc2l0aW9uCiAgICAgICAgIH0KICAgIH0KCiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgLy8gQkVHSU4gVHJhbnNsaXRlcmF0b3Igc3VwcG9ydAogICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAKICAgIC8vIFNlZSBhbHNvIGljdS9kYXRhL3RyYW5zbGl0L2luZGV4LnR4dAoKICAgIFRyYW5zbGl0ZXJhdG9yTmFtZVBhdHRlcm4gewogICAgICAgIC8vIEZvcm1hdCBmb3IgdGhlIGRpc3BsYXkgbmFtZSBvZiBhIFRyYW5zbGl0ZXJhdG9yLgogICAgICAgIC8vIFRoaXMgaXMgdGhlIGxhbmd1YWdlLW5ldXRyYWwgZm9ybSBvZiB0aGlzIHJlc291cmNlLgogICAgICAgICJ7MCxjaG9pY2UsMCN8MSN7MX18MiN7MX0tezJ9fSIgLy8gRGlzcGxheSBuYW1lCiAgICB9CgogICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIC8vIEVORCBUcmFuc2xpdGVyYXRvciBzdXBwb3J0CiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAvLyBCRUdJTiBCcmVha0l0ZXJhdG9yIHN1cHBvcnQKICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgQ2hhcmFjdGVyQnJlYWtSdWxlcyB7CiAgICAgICAgLy8gaWdub3JlIG5vbi1zcGFjaW5nIG1hcmtzIGFuZCBlbmNsb3NpbmcgbWFya3MgKHNpbmNlIHdlIG5ldmVyCiAgICAgICAgLy8gcHV0IGEgYnJlYWsgYmVmb3JlIGlnbm9yZSBjaGFyYWN0ZXJzLCB0aGlzIGtlZXBzIGNvbWJpbmluZwogICAgICAgIC8vIGFjY2VudHMgd2l0aCB0aGUgYmFzZSBjaGFyYWN0ZXJzIHRoZXkgbW9kaWZ5KQogICAgICAgICIkaWdub3JlPVtbOk1uOl1bOk1lOl1dOyIKCiAgICAgICAgLy8gb3RoZXIgY2F0ZWdvcnkgZGVmaW5pdGlvbnMKICAgICAgICAiY2hvc2Vvbmc9W1x1MTEwMC1cdTExNWZdOyIKICAgICAgICAianVuZ3Nlb25nPVtcdTExNjAtXHUxMWE3XTsiCiAgICAgICAgImpvbmdzZW9uZz1bXHUxMWE4LVx1MTFmZl07IgogICAgICAgICJzdXJyLWhpPVtcdWQ4MDAtXHVkYmZmXTsiCiAgICAgICAgInN1cnItbG89W1x1ZGMwMC1cdWRmZmZdOyIKCiAgICAgICAgLy8gYnJlYWsgYWZ0ZXIgZXZlcnkgY2hhcmFjdGVyLCBleGNlcHQgYXMgZm9sbG93czoKICAgICAgICAiLjsiCgogICAgICAgIC8vIGtlZXAgQ1JMRiBzZXF1ZW5jZXMgdG9nZXRoZXIKICAgICAgICAiXHJcbjsiCgogICAgICAgIC8vIGtlZXAgc3Vycm9nYXRlIHBhaXJzIHRvZ2V0aGVyCiAgICAgICAgIntzdXJyLWhpfXtzdXJyLWxvfTsiCgogICAgICAgIC8vIGtlZXAgSGFuZ3VsIHN5bGxhYmxlcyBzcGVsbGVkIG91dCB1c2luZyBjb25qb2luaW5nIGphbW8gdG9nZXRoZXIKICAgICAgICAie2Nob3Nlb25nfSp7anVuZ3Nlb25nfSp7am9uZ3Nlb25nfSo7IgoKICAgICAgICAvLyB2YXJpb3VzIGFkZGl0aW9ucyBmb3IgSGluZGkgc3VwcG9ydAogICAgICAgICJudWt0YT1bXHUwOTNjXTsiCiAgICAgICAgImRhbmRhPVtcdTA5NjRcdTA5NjVdOyIKICAgICAgICAidmlyYW1hPVtcdTA5NGRdOyIKICAgICAgICAiZGV2Vm93ZWxTaWduPVtcdTA5M2UtXHUwOTRjXHUwOTYyXHUwOTYzXTsiCiAgICAgICAgImRldkNvbnNvbmFudD1bXHUwOTE1LVx1MDkzOV07IgogICAgICAgICJkZXZOdWt0YUNvbnNvbmFudD1bXHUwOTU4LVx1MDk1Zl07IgogICAgICAgICJkZXZDaGFyRW5kPVtcdTA5MDJcdTA5MDNcdTA5NTEtXHUwOTU0XTsiCiAgICAgICAgInp3aj1bXHUyMDBkXTsiCiAgICAgICAgCiAgICAgICAgImRldkNBTU49KHtkZXZDb25zb25hbnR9e251a3RhfT8pOyIKICAgICAgICAiZGV2Q29uc29uYW50MT0oe2Rldk51a3RhQ29uc29uYW50fXx7ZGV2Q0FNTn0pOyIKICAgICAgICAiZGV2Q29uanVuY3Q9KCh7ZGV2Q29uc29uYW50MX17dmlyYW1hfXt6d2p9Pyk/e2RldkNvbnNvbmFudDF9KTsiCgogICAgICAgICJ7ZGV2Q29uanVuY3R9e2RldlZvd2VsU2lnbn0/e2RldkNoYXJFbmR9PzsiCiAgICAgICAgIntkYW5kYX17bnVrdGF9OyIKICAgIH0KCiAgICAvLyBkZWZhdWx0IHJ1bGVzIGZvciBmaW5kaW5nIHdvcmQgYm91bmRhcmllcwogICAgV29yZEJyZWFrUnVsZXMgewogICAgICAgIC8vIGlnbm9yZSBub24tc3BhY2luZyBtYXJrcywgZW5jbG9zaW5nIG1hcmtzLCBhbmQgZm9ybWF0IGNoYXJhY3RlcnMsCiAgICAgICAgLy8gYWxsIG9mIHdoaWNoIHNob3VsZCBub3QgaW5mbHVlbmNlIHRoZSBhbGdvcml0aG0KICAgICAgICAiJGlnbm9yZT1bWzpNbjpdWzpNZTpdWzpDZjpdXTsiCgogICAgICAgIC8vIEhpbmRpIHBocmFzZSBzZXBhcmF0b3IsIGthbmppLCBrYXRha2FuYSwgaGlyYWdhbmEsIENKSyBkaWFjcml0aWNhbHMsCiAgICAgICAgLy8gb3RoZXIgbGV0dGVycywgYW5kIGRpZ2l0cwogICAgICAgICJkYW5kYT1bXHUwOTY0XHUwOTY1XTsiCiAgICAgICAgImthbmppPVtcdTMwMDVcdTRlMDAtXHU5ZmE1XHVmOTAwLVx1ZmEyZF07IgogICAgICAgICJrYXRhPVtcdTMwOTktXHUzMDljXHUzMGExLVx1MzBmZV07IgogICAgICAgICJoaXJhPVtcdTMwNDEtXHUzMDllXHUzMGZjXTsiCiAgICAgICAgImxldD1bW1s6TDpdWzpNYzpdXS1be2thbmppfXtrYXRhfXtoaXJhfV1dOyIKICAgICAgICAiZGd0PVs6TjpdOyIKCiAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgaW4gdGhlIG1pZGRsZSBvZiBhIHdvcmQ6IGN1cnJlbnRseQogICAgICAgIC8vIGRhc2hlcywgYXBvc3Ryb3BoZXMsIHF1b3RhdGlvbiBtYXJrcywgYW5kIHBlcmlvZHMKICAgICAgICAibWlkLXdvcmQ9W1s6UGQ6XVx1MDBhZFx1MjAyN1xcXCJcXFwnXFwuXTsiCgogICAgICAgIC8vIHB1bmN0dWF0aW9uIHRoYXQgY2FuIG9jY3VyIGluIHRoZSBtaWRkbGUgb2YgYSBudW1iZXI6IGN1cnJlbnRseQogICAgICAgIC8vIGFwb3N0cm9waGVzLCBxb3V0YXRpb24gbWFya3MsIHBlcmlvZHMsIGNvbW1hcywgYW5kIHRoZSBBcmFiaWMKICAgICAgICAvLyBkZWNpbWFsIHBvaW50CiAgICAgICAgIm1pZC1udW09W1xcXCJcXFwnXFwsXHUwNjZiXFwuXTsiCgogICAgICAgIC8vIHB1bmN0dWF0aW9uIHRoYXQgY2FuIG9jY3VyIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBudW1iZXI6IGN1cnJlbnRseQogICAgICAgIC8vIHRoZSBwZXJpb2QsIHRoZSBudW1iZXIgc2lnbiwgYW5kIGFsbCBjdXJyZW5jeSBzeW1ib2xzIGV4Y2VwdCB0aGUgY2VudHMgc2lnbgogICAgICAgICJwcmUtbnVtPVtbWzpTYzpdLVtcdTAwYTJdXVxcI1xcLl07IgoKICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBhdCB0aGUgZW5kIG9mIGEgbnVtYmVyOiBjdXJyZW50bHkKICAgICAgICAvLyB0aGUgcGVyY2VudCwgcGVyLXRob3VzYW5kLCBwZXItdGVuLXRob3VzYW5kLCBhbmQgQXJhYmljIHBlcmNlbnQKICAgICAgICAvLyBzaWducywgdGhlIGNlbnRzIHNpZ24sIGFuZCB0aGUgYW1wZXJzYW5kCiAgICAgICAgInBvc3QtbnVtPVtcXCVcXCZcdTAwYTJcdTA2NmFcdTIwMzBcdTIwMzFdOyIKCiAgICAgICAgLy8gbGluZSBzZXBhcmF0b3JzOiBjdXJyZW50bHkgTEYsIEZGLCBQUywgYW5kIExTCiAgICAgICAgImxzPVtcblx1MDAwY1x1MjAyOFx1MjAyOV07IgoKICAgICAgICAvLyB3aGl0ZXNwYWNlOiBhbGwgc3BhY2Ugc2VwYXJhdG9ycyBhbmQgdGhlIHRhYiBjaGFyYWN0ZXIKICAgICAgICAid3M9W1s6WnM6XVx0XTsiCgogICAgICAgIC8vIGEgd29yZCBpcyBhIHNlcXVlbmNlIG9mIGxldHRlcnMgdGhhdCBtYXkgY29udGFpbiBpbnRlcm5hbAogICAgICAgIC8vIHB1bmN0dWF0aW9uLCBhcyBsb25nIGFzIGl0IGJlZ2lucyBhbmQgZW5kcyB3aXRoIGEgbGV0dGVyIGFuZAogICAgICAgIC8vIG5ldmVyIGNvbnRhaW5zIHR3byBwdW5jdHVhdGlvbiBtYXJrcyBpbiBhIHJvdwogICAgICAgICJ3b3JkPSh7bGV0fSsoe21pZC13b3JkfXtsZXR9Kykqe2RhbmRhfT8pOyIKCiAgICAgICAgLy8gYSBudW1iZXIgaXMgYSBzZXF1ZW5jZSBvZiBkaWdpdHMgdGhhdCBtYXkgY29udGFpbiBpbnRlcm5hbAogICAgICAgIC8vIHB1bmN0dWF0aW9uLCBhcyBsb25nIGFzIGl0IGJlZ2lucyBhbmQgZW5kcyB3aXRoIGEgZGlnaXQgYW5kCiAgICAgICAgLy8gbmV2ZXIgY29udGFpbnMgdHdvIHB1bmN0dWF0aW9uIG1hcmtzIGluIGEgcm93LgogICAgICAgICJudW1iZXI9KHtkZ3R9Kyh7bWlkLW51bX17ZGd0fSspKik7IgoKICAgICAgICAvLyBicmVhayBhZnRlciBldmVyeSBjaGFyYWN0ZXIsIHdpdGggdGhlIGZvbGxvd2luZyBleGNlcHRpb25zCiAgICAgICAgLy8gKHRoaXMgd2lsbCBjYXVzZSBwdW5jdHVhdGlvbiBtYXJrcyB0aGF0IGFyZW4ndCBjb25zaWRlcmVkCiAgICAgICAgLy8gcGFydCBvZiB3b3JkcyBvciBudW1iZXJzIHRvIGJlIHRyZWF0ZWQgYXMgd29yZHMgdW50byB0aGVtc2VsdmVzKQogICAgICAgICIuOyIKCiAgICAgICAgLy8ga2VlcCB0b2dldGhlciBhbnkgc2VxdWVuY2Ugb2YgY29udGlndW91cyB3b3JkcyBhbmQgbnVtYmVycwogICAgICAgIC8vIChpbmNsdWRpbmcganVzdCBvbmUgb2YgZWl0aGVyKSwgcGx1cyBhbiBvcHRpb25hbCB0cmFpbGluZwogICAgICAgIC8vIG51bWJlci1zdWZmaXggY2hhcmFjdGVyCiAgICAgICAgInt3b3JkfT8oe251bWJlcn17d29yZH0pKih7bnVtYmVyfXtwb3N0LW51bX0/KT87IgoKICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIGFuZCBzZXF1ZW5jZSBvZiBjb250aWd1b3VzIHdvcmRzIGFuZCBudW1iZXJzCiAgICAgICAgLy8gdGhhdCBzdGFydHMgd2l0aCBhIG51bWJlci1wcmVmaXggY2hhcmFjdGVyIGFuZCBhIG51bWJlciwKICAgICAgICAvLyBhbmQgbWF5IGVuZCB3aXRoIGEgbnVtYmVyLXN1ZmZpeCBjaGFyYWN0ZXIKICAgICAgICAie3ByZS1udW19KHtudW1iZXJ9e3dvcmR9KSooe251bWJlcn17cG9zdC1udW19Pyk/OyIKCiAgICAgICAgLy8ga2VlcCB0b2dldGhlciBydW5zIG9mIHdoaXRlc3BhY2UgKG9wdGlvbmFsbHkgd2l0aCBhIHNpbmdsZSB0cmFpbGluZwogICAgICAgIC8vIGxpbmUgc2VwYXJhdG9yIG9yIENSTEYgc2VxdWVuY2UpCiAgICAgICAgInt3c30qXHI/e2xzfT87IgoKICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIHJ1bnMgb2YgS2F0YWthbmEKICAgICAgICAie2thdGF9KjsiCgogICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiBIaXJhZ2FuYQogICAgICAgICJ7aGlyYX0qOyIKCiAgICAgICAgLy8ga2VlcCB0b2dldGhlciBydW5zIG9mIEthbmppCiAgICAgICAgIntrYW5qaX0qOyIKICAgIH0KCiAgICAvLyBkZWZhdWx0IHJ1bGVzIGZvciBkZXRlcm1pbmluZyBsZWdhbCBsaW5lLWJyZWFraW5nIHBvc2l0aW9ucwogICAgTGluZUJyZWFrUnVsZXMgewogICAgICAgIC8vIGlnbm9yZSBub24tc3BhY2luZyBtYXJrcywgZW5jbG9zaW5nIG1hcmtzLCBhbmQgZm9ybWF0IGNoYXJhY3RlcnMKICAgICAgICAiJGlnbm9yZT1bWzpNbjpdWzpNZTpdWzpDZjpdXTsiCgogICAgICAgIC8vIEhpbmRpIHBocmFzZSBzZXBhcmF0b3JzCiAgICAgICAgImRhbmRhPVtcdTA5NjRcdTA5NjVdOyIKCiAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IGFsd2F5cyBjYXVzZSBhIGJyZWFrOiBFVFgsIHRhYiwgTEYsIEZGLCBMUywgYW5kIFBTCiAgICAgICAgImJyZWFrPVtcdTAwMDNcdFxuXGZcdTIwMjhcdTIwMjldOyIKCiAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IGFsd2F5cyBwcmV2ZW50IGEgYnJlYWs6IHRoZSBub24tYnJlYWtpbmcgc3BhY2UKICAgICAgICAvLyBhbmQgc2ltaWxhciBjaGFyYWN0ZXJzCiAgICAgICAgIm5ic3A9W1x1MDBhMFx1MjAwN1x1MjAxMVx1ZmVmZl07IgoKICAgICAgICAvLyB3aGl0ZXNwYWNlOiBzcGFjZSBzZXBhcmF0b3JzIGFuZCBjb250cm9sIGNoYXJhY3RlcnMsIGV4Y2VwdCBmb3IKICAgICAgICAvLyBDUiBhbmQgdGhlIG90aGVyIGNoYXJhY3RlcnMgbWVudGlvbmVkIGFib3ZlCiAgICAgICAgInNwYWNlPVtbWzpaczpdWzpDYzpdXS1be25ic3B9e2JyZWFrfVxyXV07IgoKICAgICAgICAvLyBkYXNoZXM6IGRhc2ggcHVuY3R1YXRpb24gYW5kIHRoZSBkaXNjcmV0aW9uYXJ5IGh5cGhlbiwgZXhjZXB0IGZvcgogICAgICAgIC8vIG5vbi1icmVha2luZyBoeXBoZW5zCiAgICAgICAgImRhc2g9W1tbOlBkOl1cdTAwYWRdLVt7bmJzcH1dXTsiCgogICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBzdGljayB0byBhIHdvcmQgaWYgdGhleSBwcmVjZWRlIGl0OiBjdXJyZW5jeSBzeW1ib2xzCiAgICAgICAgLy8gKGV4Y2VwdCB0aGUgY2VudHMgc2lnbikgYW5kIHN0YXJ0aW5nIHB1bmN0dWF0aW9uCiAgICAgICAgInByZS13b3JkPVtbWzpTYzpdLVtcdTAwYTJdXVs6UHM6XVxcXCJcXFwnXTsiCgogICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBzdGljayB0byBhIHdvcmQgaWYgdGhleSBmb2xsb3cgaXQ6IGVuZGluZyBwdW5jdHVhdGlvbiwKICAgICAgICAvLyBvdGhlciBwdW5jdHVhdGlvbiB0aGF0IHVzdWFsbHkgb2NjdXJzIGF0IHRoZSBlbmQgb2YgYSBzZW50ZW5jZSwKICAgICAgICAvLyBzbWFsbCBLYW5hIGNoYXJhY3RlcnMsIHNvbWUgQ0pLIGRpYWNyaXRpY3MsIGV0Yy4KICAgICAgICAicG9zdC13b3JkPVtbOlBlOl1cXCFcXFwiXFxcJ1xcJVxcLlxcLFxcOlxcO1xcP1x1MDBhMlx1MDBiMFx1MDY2YVx1MjAzMC1cdTIwMzQiCiAgICAgICAgICAgICAgICAiXHUyMTAzXHUyMTA1XHUyMTA5XHUzMDAxXHUzMDAyXHUzMDA1XHUzMDQxXHUzMDQzXHUzMDQ1XHUzMDQ3XHUzMDQ5XHUzMDYzIgogICAgICAgICAgICAgICAgIlx1MzA4M1x1MzA4NVx1MzA4N1x1MzA4ZVx1MzA5OS1cdTMwOWVcdTMwYTFcdTMwYTNcdTMwYTVcdTMwYTdcdTMwYTkiCiAgICAgICAgICAgICAgICAiXHUzMGMzXHUzMGUzXHUzMGU1XHUzMGU3XHUzMGVlXHUzMGY1XHUzMGY2XHUzMGZjLVx1MzBmZVx1ZmYwMVx1ZmYwYyIKICAgICAgICAgICAgICAgICJcdWZmMGVcdWZmMWZdOyIKCiAgICAgICAgLy8gS2Fuamk6IGFjdHVhbGx5IGluY2x1ZGVzIGJvdGggS2FuamkgYW5kIEthbmEsIGV4Y2VwdCBmb3Igc21hbGwgS2FuYSBhbmQKICAgICAgICAvLyBDSksgZGlhY3JpdGljcwogICAgICAgICJrYW5qaT1bW1x1NGUwMC1cdTlmYTVcdWY5MDAtXHVmYTJkXHUzMDQxLVx1MzA5NFx1MzBhMS1cdTMwZmFdLVt7cG9zdC13b3JkfXskaWdub3JlfV1dOyIKCiAgICAgICAgLy8gZGlnaXRzCiAgICAgICAgImRpZ2l0PVtbOk5kOl1bOk5vOl1dOyIKCiAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgaW4gdGhlIG1pZGRsZSBvZiBhIG51bWJlcjogcGVyaW9kcyBhbmQgY29tbWFzCiAgICAgICAgIm1pZC1udW09W1xcLlxcLF07IgoKICAgICAgICAvLyBldmVyeXRoaW5nIG5vdCBtZW50aW9uZWQgYWJvdmUsIHBsdXMgdGhlIHF1b3RlIG1hcmtzICh3aGljaCBhcmUgYm90aAogICAgICAgIC8vIDxwcmUtd29yZD4sIDxwb3N0LXdvcmQ+LCBhbmQgPGNoYXI+KQogICAgICAgICJjaGFyPVtee2JyZWFrfXtzcGFjZX17ZGFzaH17a2Fuaml9e25ic3B9eyRpZ25vcmV9e3ByZS13b3JkfXtwb3N0LXdvcmR9e21pZC1udW19e2RhbmRhfVxyXFxcIlxcXCddOyIKCiAgICAgICAgLy8gYSAibnVtYmVyIiBpcyBhIHJ1biBvZiBwcmVmaXggY2hhcmFjdGVycyBhbmQgZGFzaGVzLCBmb2xsb3dlZCBieSBvbmUgb3IKICAgICAgICAvLyBtb3JlIGRpZ2l0cyB3aXRoIGlzb2xhdGVkIG51bWJlci1wdW5jdHVhdGlvbiBjaGFyYWN0ZXJzIGludGVyc3BlcnNlZAogICAgICAgICJudW1iZXI9KFt7cHJlLXdvcmR9e2Rhc2h9XSp7ZGlnaXR9Kyh7bWlkLW51bX17ZGlnaXR9KykqKTsiCgogICAgICAgIC8vIHRoZSBiYXNpYyBjb3JlIG9mIGEgd29yZCBjYW4gYmUgZWl0aGVyIGEgIm51bWJlciIgYXMgZGVmaW5lZCBhYm92ZSwgYSBzaW5nbGUKICAgICAgICAvLyAiS2FuamkiIGNoYXJhY3Rlciwgb3IgYSBydW4gb2YgYW55IG51bWJlciBvZiBub3QtZXhwbGljaXRseS1tZW50aW9uZWQKICAgICAgICAvLyBjaGFyYWN0ZXJzICh0aGlzIGluY2x1ZGVzIExhdGluIGxldHRlcnMpCiAgICAgICAgIndvcmQtY29yZT0oW3twcmUtd29yZH17Y2hhcn1dKnx7a2Fuaml9fHtudW1iZXJ9KTsiCgogICAgICAgIC8vIGEgd29yZCBtYXkgZW5kIHdpdGggYW4gb3B0aW9uYWwgc3VmZml4IHRoYXQgYmUgZWl0aGVyIGEgcnVuIG9mIG9uZSBvcgogICAgICAgIC8vIG1vcmUgZGFzaGVzIG9yIGEgcnVuIG9mIHdvcmQtc3VmZml4IGNoYXJhY3RlcnMsIGZvbGxvd2VkIGJ5IGFuIG9wdGlvbmFsCiAgICAgICAgLy8gcnVuIG9mIHdoaXRlc3BhY2UKICAgICAgICAid29yZC1zdWZmaXg9KCh7ZGFzaH0rfHtwb3N0LXdvcmR9Kil7c3BhY2V9Kik7IgoKICAgICAgICAvLyBhIHdvcmQsIHRodXMsIGlzIGFuIG9wdGlvbmFsIHJ1biBvZiB3b3JkLXByZWZpeCBjaGFyYWN0ZXJzLCBmb2xsb3dlZCBieQogICAgICAgIC8vIGEgd29yZCBjb3JlIGFuZCBhIHdvcmQgc3VmZml4ICh0aGUgc3ludGF4IG9mIDx3b3JkLWNvcmU+IGFuZCA8d29yZC1zdWZmaXg+CiAgICAgICAgLy8gYWN0dWFsbHkgYWxsb3dzIGVpdGhlciBvZiB0aGVtIHRvIG1hdGNoIHRoZSBlbXB0eSBzdHJpbmcsIHB1dHRpbmcgYSBicmVhawogICAgICAgIC8vIGJldHdlZW4gdGhpbmdzIGxpa2UgIikoIiBvciAiYWFhKGFhYSIKICAgICAgICAid29yZD0oe3ByZS13b3JkfSp7d29yZC1jb3JlfXt3b3JkLXN1ZmZpeH0pOyIKCiAgICAgICAgLy8gZmluYWxseSwgdGhlIHJ1bGUgdGhhdCBkb2VzIHRoZSB3b3JrOiBLZWVwIHRvZ2V0aGVyIGFueSBydW4gb2Ygd29yZHMgdGhhdAogICAgICAgIC8vIGFyZSBqb2luZWQgYnkgcnVucyBvZiBvbmUgb2YgbW9yZSBub24tc3BhY2luZyBtYXJrLiAgQWxzbyBrZWVwIGEgdHJhaWxpbmcKICAgICAgICAvLyBsaW5lLWJyZWFrIGNoYXJhY3RlciBvciBDUkxGIGNvbWJpbmF0aW9uIHdpdGggdGhlIHdvcmQuICAobGluZSBzZXBhcmF0b3JzCiAgICAgICAgLy8gIndpbiIgb3ZlciBuYnNwJ3MpCiAgICAgICAgInt3b3JkfSh7bmJzcH0re3dvcmR9KSpccj97YnJlYWt9PzsiCiAgICB9CgogICAgLy8gZGVmYXVsdCBydWxlcyBmb3IgZmluZGluZyBzZW50ZW5jZSBib3VuZGFyaWVzCiAgICBTZW50ZW5jZUJyZWFrUnVsZXMgewogICAgICAgIC8vIGlnbm9yZSBub24tc3BhY2luZyBtYXJrcywgZW5jbG9zaW5nIG1hcmtzLCBhbmQgZm9ybWF0IGNoYXJhY3RlcnMKICAgICAgICAiJGlnbm9yZT1bWzpNbjpdWzpNZTpdWzpDZjpdXTsiCgogICAgICAgIC8vIGxvd2VyY2FzZSBsZXR0ZXJzCiAgICAgICAgImxjPVs6TGw6XTsiCiAgICAgICAgCiAgICAgICAgLy8gdXBwZXJjYXNlIExhdGluIGxldHRlcnMKICAgICAgICAidWNMYXRpbj1bQS1aXTsiCgogICAgICAgIC8vIHdoaXRlc3BhY2UgKGxpbmUgc2VwYXJhdG9ycyBhcmUgdHJlYXRlZCBhcyB3aGl0ZXNwYWNlKQogICAgICAgICJzcGFjZT1bXHRcclxmXG5cdTIwMjhbOlpzOl1dOyIKCiAgICAgICAgLy8gcHVuY3R1YXRpb24gd2hpY2ggbWF5IG9jY3VyIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBzZW50ZW5jZTogInN0YXJ0aW5nCiAgICAgICAgLy8gcHVuY3R1YXRpb24iIGFuZCBxdW90YXRpb24gbWFya3MKICAgICAgICAic3RhcnQ9W1s6UHM6XVxcXCJcXFwnXTsiCgogICAgICAgIC8vIHB1bmN0dWF0aW9uIHdpdGggbWF5IG9jY3VyIGF0IHRoZSBlbmQgb2YgYSBzZW50ZW5jZTogImVuZGluZyBwdW5jdHVhdGlvbiIKICAgICAgICAvLyBhbmQgcXVvdGF0aW9uIG1hcmtzCiAgICAgICAgImVuZD1bWzpQZTpdXFxcIlxcXCddOyIKCiAgICAgICAgLy8gZGlnaXRzCiAgICAgICAgImRpZ2l0PVs6TjpdOyIKCiAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IHVuYW1iaWd1b3VzbHkgc2lnbmFsIHRoZSBlbmQgb2YgYSBzZW50ZW5jZQogICAgICAgICJ0ZXJtPVtcXCFcXD9cdTMwMDJcdWZmMDFcdWZmMWZdOyIKCiAgICAgICAgLy8gcGVyaW9kcywgd2hpY2ggTUFZIHNpZ25hbCB0aGUgZW5kIG9mIGEgc2VudGVuY2UKICAgICAgICAicGVyaW9kPVtcXC5cdWZmMGVdOyIKCiAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IG1heSBvY2N1ciBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgc2VudGVuY2U6IGJhc2ljYWxseSBhbnl0aGluZwogICAgICAgIC8vIG5vdCBtZW50aW9uZWQgYWJvdmUgKGxvd2VyY2FzZSBsZXR0ZXJzIGFuZCBkaWdpdHMgYXJlIHNwZWNpZmljYWxseSBleGNsdWRlZCkKICAgICAgICAic2VudC1zdGFydD1bXntsY317dWNMYXRpbn17c3BhY2V9e3N0YXJ0fXtlbmR9e2RpZ2l0fXt0ZXJtfXtwZXJpb2R9XHUyMDI5eyRpZ25vcmV9XTsiCgogICAgICAgIC8vIEhpbmRpIHBocmFzZSBzZXBhcmF0b3IKICAgICAgICAiZGFuZGE9W1x1MDk2NFx1MDk2NV07IgoKICAgICAgICAvLyBhbHdheXMgYnJlYWsgc2VudGVuY2VzIGFmdGVyIHBhcmFncmFwaCBzZXBhcmF0b3JzCiAgICAgICAgIi4qP1x1MjAyOT87IgoKICAgICAgICAvLyBhbHdheXMgYnJlYWsgYWZ0ZXIgYSBkYW5kYSwgaWYgaXQncyBmb2xsb3dlZCBieSB3aGl0ZXNwYWNlCiAgICAgICAgIi4qP3tkYW5kYX17c3BhY2V9KjsiCgogICAgICAgIC8vIGlmIHlvdSBzZWUgYSBwZXJpb2QsIHNraXAgb3ZlciBhZGRpdGlvbmFsIHBlcmlvZHMgYW5kIGVuZGluZyBwdW5jdHVhdGlvbgogICAgICAgIC8vIGFuZCBpZiB0aGUgbmV4dCBjaGFyYWN0ZXIgaXMgYSBwYXJhZ3JhcGggc2VwYXJhdG9yLCBicmVhayBhZnRlciB0aGUKICAgICAgICAvLyBwYXJhZ3JhcGggc2VwYXJhdG9yCiAgICAgICAgIi4qP3twZXJpb2R9W3twZXJpb2R9e2VuZH1dKntzcGFjZX0qXHUyMDI5OyIKCiAgICAgICAgLy8gaWYgeW91IHNlZSBhIHBlcmlvZCwgc2tpcCBvdmVyIGFkZGl0aW9uYWwgcGVyaW9kcyBhbmQgZW5kaW5nIHB1bmN0dWF0aW9uLAogICAgICAgIC8vIGZvbGxvd2VkIGJ5IG9wdGlvbmFsIHdoaXRlc3BhY2UsIGZvbGxvd2VkIGJ5IG9wdGlvbmFsIHN0YXJ0aW5nIHB1bmN0dWF0aW9uLAogICAgICAgIC8vIGFuZCBpZiB0aGUgbmV4dCBjaGFyYWN0ZXIgaXMgc29tZXRoaW5nIHRoYXQgY2FuIHN0YXJ0IGEgc2VudGVuY2UKICAgICAgICAvLyAoYmFzaWNhbGx5LCBhIGNhcGl0YWwgbGV0dGVyKSwgdGhlbiBwdXQgdGhlIHNlbnRlbmNlIGJyZWFrIGJldHdlZW4gdGhlCiAgICAgICAgLy8gd2hpdGVzcGFjZSBhbmQgdGhlIG9wZW5pbmcgcHVuY3R1YXRpb24KICAgICAgICAiLio/e3BlcmlvZH1be3BlcmlvZH17ZW5kfV0qe3NwYWNlfSovKHtzdGFydH0qe3NlbnQtc3RhcnR9fHtzdGFydH0re3VjTGF0aW59KTsiCiAgICAgICAgCiAgICAgICAgLy8gc2FtZSBhcyBhYm92ZSwgZXhjZXB0IHRoYXQgdGhlcmUncyBhIHNlbnRlbmNlIGJyZWFrIGJlZm9yZSBhIExhdGluIGNhcGl0YWwKICAgICAgICAvLyBsZXR0ZXIgb25seSBpZiB0aGVyZSdzIGF0IGxlYXN0IG9uZSBzcGFjZSBhZnRlciB0aGUgcGVyaW9kCiAgICAgICAgIi4qP3twZXJpb2R9W3twZXJpb2R9e2VuZH1dKntzcGFjZX0rL3t1Y0xhdGlufTsiCgogICAgICAgIC8vIGlmIHlvdSBzZWUgYSBzZW50ZW5jZS10ZXJtaW5hdGluZyBjaGFyYWN0ZXIsIHNraXAgb3ZlciBhbnkgYWRkaXRpb25hbAogICAgICAgIC8vIHRlcm1pbmF0b3JzLCBwZXJpb2RzLCBvciBlbmRpbmcgcHVuY3R1YXRpb24sIGZvbGxvd2VkIGJ5IGFueSB3aGl0ZXNwYWNlLAogICAgICAgIC8vIGZvbGxvd2VkIGJ5IGEgU0lOR0xFIG9wdGlvbmFsIHBhcmFncmFwaCBzZXBhcmF0b3IsIGFuZCBwdXQgdGhlIGJyZWFrIHRoZXJlCiAgICAgICAgIi4qP3t0ZXJtfVt7dGVybX17cGVyaW9kfXtlbmR9XSp7c3BhY2V9Klx1MjAyOT87IgoKICAgICAgICAvLyBUaGUgZm9sbG93aW5nIHJ1bGVzIGFyZSBoZXJlIHRvIGFpZCBpbiBiYWNrd2FyZHMgaXRlcmF0aW9uLiAgVGhlIGF1dG9tYXRpY2FsbHkKICAgICAgICAvLyBnZW5lcmF0ZWQgYmFja3dhcmRzIHN0YXRlIHRhYmxlIHdpbGwgcmV3aW5kIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlCiAgICAgICAgLy8gcGFyYWdyYXBoIGFsbCB0aGUgdGltZSAob3IgYWxsIHRoZSB3YXkgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgZG9jdW1lbnQKICAgICAgICAvLyBpZiB0aGUgZG9jdW1lbnQgZG9lc24ndCB1c2UgdGhlIFVuaWNvZGUgUFMgY2hhcmFjdGVyKSBiZWNhdXNlIHRoZSBvbmx5CiAgICAgICAgLy8gdW5hbWJpZ3VvdXMgY2hhcmFjdGVyIHBhaXJzIGFyZSB0aG9zZSBpbnZvbHZpbmcgcGFyYWdyYXBoIHNlcGFyYXRvcnMuCiAgICAgICAgLy8gVGhlc2Ugc3BlY2lmeSBhIGZldyBtb3JlIHVuYW1iaWd1b3VzIGJyZWFraW5nIHNpdHVhdGlvbnMuCgogICAgICAgIC8vIGlmIHlvdSBzZWUgYSBzZW50ZW5jZS1zdGFydGluZyBjaGFyYWN0ZXIsIGZvbGxvd2VkIGJ5IHN0YXJ0aW5nIHB1bmN0dWF0aW9uCiAgICAgICAgLy8gKHJlbWVtYmVyLCB3ZSdyZSBpdGVyYXRpbmcgYmFja3dhcmRzKSwgZm9sbG93ZWQgYnkgYW4gb3B0aW9uYWwgcnVuIG9mCiAgICAgICAgLy8gd2hpdGVzcGFjZSwgZm9sbG93ZWQgYnkgYW4gb3B0aW9uYWwgcnVuIG9mIGVuZGluZyBwdW5jdHVhdGlvbiwgZm9sbG93ZWQKICAgICAgICAvLyBieSBhIHBlcmlvZCwgdGhpcyBpcyBhIHNhZmUgcGxhY2UgdG8gdHVybiBhcm91bmQKICAgICAgICAiIVt7c2VudC1zdGFydH17dWNMYXRpbn1de3N0YXJ0fSp7c3BhY2V9K3tlbmR9KntwZXJpb2R9OyIKCiAgICAgICAgLy8gaWYgeW91IHNlZSBhIGxldHRlciBvciBhIGRpZ2l0LCBmb2xsb3dlZCBieSBhbiBvcHRpb25hbCBydW4gb2YKICAgICAgICAvLyBzdGFydGluZyBwdW5jdHVhdGlvbiwgZm9sbG93ZWQgYnkgYW4gb3B0aW9uYWwgcnVuIG9mIHdoaXRlc3BhY2UsCiAgICAgICAgLy8gZm9sbG93ZWQgYnkgYW4gb3B0aW9uYWwgcnVuIG9mIGVuZGluZyBwdW5jdHVhdGlvbiwgZm9sbG93ZWQgYnkKICAgICAgICAvLyBhIHNlbnRlbmNlIHRlcm1pbmF0b3IsIHRoaXMgaXMgYSBzYWZlIHBsYWNlIHRvIHR1cm4gYXJvdW5kCiAgICAgICAgIiFbe3NlbnQtc3RhcnR9e2xjfXtkaWdpdH1de3N0YXJ0fSp7c3BhY2V9KntlbmR9Knt0ZXJtfTsiCiAgICB9CgogICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIC8vIEVORCBCcmVha0l0ZXJhdG9yIHN1cHBvcnQKICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgQW1QbU1hcmtlcnMgeyAKICAgICAgICAgICAgIkFNIiwKICAgICAgICAgICAgIlBNIiwKICAgIH0KICAgIENvdW50cmllcyB7IAogICAgICAgIEFGIHsgIkFmZ2hhbmlzdGFuIiB9CiAgICAgICAgQUwgeyAiQWxiYW5pYSIgfQogICAgICAgIERaIHsgIkFsZ2VyaWEiIH0KICAgICAgICBBRCB7ICJBbmRvcnJhIiB9CiAgICAgICAgQU8geyAiQW5nb2xhIiB9CiAgICAgICAgQUkgeyAiQW5ndWlsbGEiIH0KICAgICAgICBBUiB7ICJBcmdlbnRpbmEiIH0KICAgICAgICBBTSB7ICJBcm1lbmlhIiB9CiAgICAgICAgQVcgeyAiQXJ1YmEiIH0KICAgICAgICBBVSB7ICJBdXN0cmFsaWEiIH0KICAgICAgICBBVCB7ICJBdXN0cmlhIiB9CiAgICAgICAgQVogeyAiQXplcmJhaWphbiIgfQogICAgICAgIEJTIHsgIkJhaGFtYXMiIH0KICAgICAgICBCSCB7ICJCYWhyYWluIiB9CiAgICAgICAgQkQgeyAiQmFuZ2xhZGVzaCIgfQogICAgICAgIEJCIHsgIkJhcmJhZG9zIiB9CiAgICAgICAgQlkgeyAiQmVsYXJ1cyIgfQogICAgICAgIEJFIHsgIkJlbGdpdW0iIH0KICAgICAgICBCWiB7ICJCZWxpemUiIH0KICAgICAgICBCSiB7ICJCZW5pbiIgfQogICAgICAgIEJNIHsgIkJlcm11ZGEiIH0KICAgICAgICBCVCB7ICJCaHV0YW4iIH0KICAgICAgICBCTyB7ICJCb2xpdmlhIiB9CiAgICAgICAgQkEgeyAiQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYSIgfQogICAgICAgIEJXIHsgIkJvdHN3YW5hIiB9CiAgICAgICAgQlIgeyAiQnJhemlsIiB9CiAgICAgICAgQk4geyAiQnJ1bmVpIiB9CiAgICAgICAgQkcgeyAiQnVsZ2FyaWEiIH0KICAgICAgICBCRiB7ICJCdXJraW5hIEZhc28iIH0KICAgICAgICBCSSB7ICJCdXJ1bmRpIiB9CiAgICAgICAgS0ggeyAiQ2FtYm9kaWEiIH0KICAgICAgICBDTSB7ICJDYW1lcm9vbiIgfQogICAgICAgIENBIHsgIkNhbmFkYSIgfQogICAgICAgIENWIHsgIkNhcGUgVmVyZGUiIH0KICAgICAgICBDRiB7ICJDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMiIH0KICAgICAgICBURCB7ICJDaGFkIiB9CiAgICAgICAgQ0wgeyAiQ2hpbGUiIH0KICAgICAgICBDTiB7ICJDaGluYSIgfQogICAgICAgIENPIHsgIkNvbG9tYmlhIiB9CiAgICAgICAgS00geyAiQ29tb3JvcyIgfQogICAgICAgIENHIHsgIkNvbmdvIiB9CiAgICAgICAgQ1IgeyAiQ29zdGEgUmljYSIgfQogICAgICAgIENJIHsgIkNcdTAwRjR0ZSBkJ0l2b2lyZSIgfQogICAgICAgIEhSIHsgIkNyb2F0aWEiIH0KICAgICAgICBDVSB7ICJDdWJhIiB9CiAgICAgICAgQ1kgeyAiQ3lwcnVzIiB9CiAgICAgICAgQ1ogeyAiQ3plY2ggUmVwdWJsaWMiIH0KICAgICAgICBESyB7ICJEZW5tYXJrIiB9CiAgICAgICAgREogeyAiRGppYm91dGkiIH0KICAgICAgICBETSB7ICJEb21pbmljYSIgfQogICAgICAgIERPIHsgIkRvbWluaWNhbiBSZXB1YmxpYyIgfQogICAgICAgIFRQIHsgIkVhc3QgVGltb3IiIH0KICAgICAgICBFQyB7ICJFY3VhZG9yIiB9CiAgICAgICAgRUcgeyAiRWd5cHQiIH0KICAgICAgICBTViB7ICJFbCBTYWx2YWRvciIgfQogICAgICAgIEdRIHsgIkVxdWF0b3JpYWwgR3VpbmVhIiB9CiAgICAgICAgRVIgeyAiRXJpdHJlYSIgfQogICAgICAgIEVFIHsgIkVzdG9uaWEiIH0KICAgICAgICBFVCB7ICJFdGhpb3BpYSIgfQogICAgICAgIEZKIHsgIkZpamkiIH0KICAgICAgICBGSSB7ICJGaW5sYW5kIiB9CiAgICAgICAgRlIgeyAiRnJhbmNlIiB9CiAgICAgICAgR0YgeyAiRnJlbmNoIEd1aWFuYSIgfQogICAgICAgIFBGIHsgIkZyZW5jaCBQb2x5bmVzaWEiIH0KICAgICAgICBURiB7ICJGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXMiIH0KICAgICAgICBHQSB7ICJHYWJvbiIgfQogICAgICAgIEdNIHsgIkdhbWJpYSIgfQogICAgICAgIEdFIHsgIkdlb3JnaWEiIH0KICAgICAgICBERSB7ICJHZXJtYW55IiB9CiAgICAgICAgR0ggeyAiR2hhbmEiIH0KICAgICAgICBHUiB7ICJHcmVlY2UiIH0KICAgICAgICBHUCB7ICJHdWFkZWxvdXBlIiB9CiAgICAgICAgR1QgeyAiR3VhdGVtYWxhIiB9CiAgICAgICAgR04geyAiR3VpbmVhIiB9CiAgICAgICAgR1cgeyAiR3VpbmVhLUJpc3NhdSIgfQogICAgICAgIEdZIHsgIkd1eWFuYSIgfQogICAgICAgIEhUIHsgIkhhaXRpIiB9CiAgICAgICAgSE4geyAiSG9uZHVyYXMiIH0KICAgICAgICBISyB7ICJIb25nIEtvbmciIH0KICAgICAgICBIVSB7ICJIdW5nYXJ5IiB9CiAgICAgICAgSVMgeyAiSWNlbGFuZCIgfQogICAgICAgIElOIHsgIkluZGlhIiB9CiAgICAgICAgSUQgeyAiSW5kb25lc2lhIiB9CiAgICAgICAgSVIgeyAiSXJhbiIgfQogICAgICAgIElRIHsgIklyYXEiIH0KICAgICAgICBJRSB7ICJJcmVsYW5kIiB9CiAgICAgICAgSUwgeyAiSXNyYWVsIiB9CiAgICAgICAgSVQgeyAiSXRhbHkiIH0KICAgICAgICBKTSB7ICJKYW1haWNhIiB9CiAgICAgICAgSlAgeyAiSmFwYW4iIH0KICAgICAgICBKTyB7ICJKb3JkYW4iIH0KICAgICAgICBLWiB7ICJLYXpha2hzdGFuIiB9CiAgICAgICAgS0UgeyAiS2VueWEiIH0KICAgICAgICBLSSB7ICJLaXJpYmF0aSIgfQogICAgICAgIEtQIHsgIk5vcnRoIEtvcmVhIiB9CiAgICAgICAgS1IgeyAiU291dGggS29yZWEiIH0KICAgICAgICBLVyB7ICJLdXdhaXQiIH0KICAgICAgICBLRyB7ICJLeXJneXpzdGFuIiB9CiAgICAgICAgTEEgeyAiTGFvcyIgfQogICAgICAgIExWIHsgIkxhdHZpYSIgfQogICAgICAgIExCIHsgIkxlYmFub24iIH0KICAgICAgICBMUyB7ICJMZXNvdGhvIiB9CiAgICAgICAgTFIgeyAiTGliZXJpYSIgfQogICAgICAgIExZIHsgIkxpYnlhIiB9CiAgICAgICAgTEkgeyAiTGllY2h0ZW5zdGVpbiIgfQogICAgICAgIExUIHsgIkxpdGh1YW5pYSIgfQogICAgICAgIExVIHsgIkx1eGVtYm91cmciIH0KICAgICAgICBNSyB7ICJNYWNlZG9uaWEiIH0KICAgICAgICBNRyB7ICJNYWRhZ2FzY2FyIiB9CiAgICAgICAgTVkgeyAiTWFsYXlzaWEiIH0KICAgICAgICBNTCB7ICJNYWxpIiB9CiAgICAgICAgTVQgeyAiTWFsdGEiIH0KICAgICAgICBNUSB7ICJNYXJ0aW5pcXVlIiB9CiAgICAgICAgTVIgeyAiTWF1cml0YW5pYSIgfQogICAgICAgIE1VIHsgIk1hdXJpdGl1cyIgfQogICAgICAgIFlUIHsgIk1heW90dGUiIH0KICAgICAgICBNWCB7ICJNZXhpY28iIH0KICAgICAgICBGTSB7ICJNaWNyb25lc2lhIiB9CiAgICAgICAgTUQgeyAiTW9sZG92YSIgfQogICAgICAgIE1DIHsgIk1vbmFjbyIgfQogICAgICAgIE1OIHsgIk1vbmdvbGlhIiB9CiAgICAgICAgTVMgeyAiTW9udHNlcnJhdCIgfQogICAgICAgIE1BIHsgIk1vcm9jY28iIH0KICAgICAgICBNWiB7ICJNb3phbWJpcXVlIiB9CiAgICAgICAgTU0geyAiTXlhbm1hciIgfQogICAgICAgIE5BIHsgIk5hbWliaWEiIH0KICAgICAgICBOUCB7ICJOZXBhbCIgfQogICAgICAgIE5MIHsgIk5ldGhlcmxhbmRzIiB9CiAgICAgICAgQU4geyAiTmV0aGVybGFuZHMgQW50aWxsZXMiIH0KICAgICAgICBOQyB7ICJOZXcgQ2FsZWRvbmlhIiB9CiAgICAgICAgTlogeyAiTmV3IFplYWxhbmQiIH0KICAgICAgICBOSSB7ICJOaWNhcmFndWEiIH0KICAgICAgICBORSB7ICJOaWdlciIgfQogICAgICAgIE5HIHsgIk5pZ2VyaWEiIH0KICAgICAgICBOVSB7ICJOaXVlIiB9CiAgICAgICAgTk8geyAiTm9yd2F5IiB9CiAgICAgICAgT00geyAiT21hbiIgfQogICAgICAgIFBLIHsgIlBha2lzdGFuIiB9CiAgICAgICAgUEEgeyAiUGFuYW1hIiB9CiAgICAgICAgUEcgeyAiUGFwdWEgTmV3IEd1aW5lYSIgfQogICAgICAgIFBZIHsgIlBhcmFndWF5IiB9CiAgICAgICAgUEUgeyAiUGVydSIgfQogICAgICAgIFBIIHsgIlBoaWxpcHBpbmVzIiB9CiAgICAgICAgUEwgeyAiUG9sYW5kIiB9CiAgICAgICAgUFQgeyAiUG9ydHVnYWwiIH0KICAgICAgICBQUiB7ICJQdWVydG8gUmljbyIgfQogICAgICAgIFFBIHsgIlFhdGFyIiB9CiAgICAgICAgUk8geyAiUm9tYW5pYSIgfQogICAgICAgIFJVIHsgIlJ1c3NpYSIgfQogICAgICAgIFJXIHsgIlJ3YW5kYSIgfQogICAgICAgIFNBIHsgIlNhdWRpIEFyYWJpYSIgfQogICAgICAgIFNOIHsgIlNlbmVnYWwiIH0KICAgICAgICBTUCB7ICJTZXJiaWEiIH0KICAgICAgICBTQyB7ICJTZXljaGVsbGVzIiB9CiAgICAgICAgU0wgeyAiU2llcnJhIExlb25lIiB9CiAgICAgICAgU0cgeyAiU2luZ2Fwb3JlIiB9CiAgICAgICAgU0sgeyAiU2xvdmFraWEiIH0KICAgICAgICBTSSB7ICJTbG92ZW5pYSIgfQogICAgICAgIFNPIHsgIlNvbWFsaWEiIH0KICAgICAgICBaQSB7ICJTb3V0aCBBZnJpY2EiIH0KICAgICAgICBFUyB7ICJTcGFpbiIgfQogICAgICAgIExLIHsgIlNyaSBMYW5rYSIgfQogICAgICAgIFNEIHsgIlN1ZGFuIiB9CiAgICAgICAgU1IgeyAiU3VyaW5hbWUiIH0KICAgICAgICBTWiB7ICJTd2F6aWxhbmQiIH0KICAgICAgICBTRSB7ICJTd2VkZW4iIH0KICAgICAgICBDSCB7ICJTd2l0emVybGFuZCIgfQogICAgICAgIFNZIHsgIlN5cmlhIiB9CiAgICAgICAgVFcgeyAiVGFpd2FuIiB9CiAgICAgICAgVEogeyAiVGFqaWtpc3RhbiIgfQogICAgICAgIFRaIHsgIlRhbnphbmlhIiB9CiAgICAgICAgVEggeyAiVGhhaWxhbmQiIH0KICAgICAgICBURyB7ICJUb2dvIiB9CiAgICAgICAgVEsgeyAiVG9rZWxhdSIgfQogICAgICAgIFRPIHsgIlRvbmdhIiB9CiAgICAgICAgVFQgeyAiVHJpbmlkYWQgYW5kIFRvYmFnbyIgfQogICAgICAgIFROIHsgIlR1bmlzaWEiIH0KICAgICAgICBUUiB7ICJUdXJrZXkiIH0KICAgICAgICBUTSB7ICJUdXJrbWVuaXN0YW4iIH0KICAgICAgICBVRyB7ICJVZ2FuZGEiIH0KICAgICAgICBVQSB7ICJVa3JhaW5lIiB9CiAgICAgICAgQUUgeyAiVW5pdGVkIEFyYWIgRW1pcmF0ZXMiIH0KICAgICAgICBHQiB7ICJVbml0ZWQgS2luZ2RvbSIgfQogICAgICAgIFVTIHsgIlVuaXRlZCBTdGF0ZXMiIH0KICAgICAgICBVWSB7ICJVcnVndWF5IiB9CiAgICAgICAgVVogeyAiVXpiZWtpc3RhbiIgfQogICAgICAgIFZVIHsgIlZhbnVhdHUiIH0KICAgICAgICBWQSB7ICJWYXRpY2FuIiB9CiAgICAgICAgVkUgeyAiVmVuZXp1ZWxhIiB9CiAgICAgICAgVk4geyAiVmlldG5hbSIgfQogICAgICAgIFZHIHsgIkJyaXRpc2ggVmlyZ2luIElzbGFuZHMiIH0KICAgICAgICBWSSB7ICJVLlMuIFZpcmdpbiBJc2xhbmRzIiB9CiAgICAgICAgRUggeyAiV2VzdGVybiBTYWhhcmEiIH0KICAgICAgICBZRSB7ICJZZW1lbiIgfQogICAgICAgIFlVIHsgIll1Z29zbGF2aWEiIH0KICAgICAgICBaUiB7ICJaYWlyZSIgfQogICAgICAgIFpNIHsgIlphbWJpYSIgfQogICAgICAgIFpXIHsgIlppbWJhYndlIiB9CiAgICB9CiAgICBDdXJyZW5jeUVsZW1lbnRzIHsgCiAgICAgICAgICAgICJcdTAwQTQiLAogICAgICAgICAgICAiWFhYIiwKICAgICAgICAgICAgIiIsCiAgICB9CiAgICBEYXRlVGltZUVsZW1lbnRzIHsgCiAgICAgICAgICAgICIxIiwKICAgICAgICAgICAgIjEiLAogICAgfQogICAgRGF0ZVRpbWVQYXR0ZXJucyB7IAogICAgICAgICAgICAiaDptbTpzcyBhIHoiLAogICAgICAgICAgICAiaDptbTpzcyBhIHoiLAogICAgICAgICAgICAiaDptbTpzcyBhIiwKICAgICAgICAgICAgImg6bW0gYSIsCiAgICAgICAgICAgICJFRUVFLCBNTU1NIGQsIHl5eXkiLAogICAgICAgICAgICAiTU1NTSBkLCB5eXl5IiwKICAgICAgICAgICAgIk1NTSBkLCB5eXl5IiwKICAgICAgICAgICAgIk0vZC95eSIsCiAgICAgICAgICAgICJ7MX0gezB9IiwKICAgIH0KICAgIERheUFiYnJldmlhdGlvbnMgeyAKICAgICAgICAgICAgIlN1biIsCiAgICAgICAgICAgICJNb24iLAogICAgICAgICAgICAiVHVlIiwKICAgICAgICAgICAgIldlZCIsCiAgICAgICAgICAgICJUaHUiLAogICAgICAgICAgICAiRnJpIiwKICAgICAgICAgICAgIlNhdCIsCiAgICB9CiAgICBEYXlOYW1lcyB7IAogICAgICAgICAgICAiU3VuZGF5IiwKICAgICAgICAgICAgIk1vbmRheSIsCiAgICAgICAgICAgICJUdWVzZGF5IiwKICAgICAgICAgICAgIldlZG5lc2RheSIsCiAgICAgICAgICAgICJUaHVyc2RheSIsCiAgICAgICAgICAgICJGcmlkYXkiLAogICAgICAgICAgICAiU2F0dXJkYXkiLAogICAgfQogICAgRXJhcyB7IAogICAgICAgICAgICAiQkMiLAogICAgICAgICAgICAiQUQiLAogICAgfQogICAgTGFuZ3VhZ2VzIHsgCiAgICAgICAgYWEgIHsgIkFmYXIiIH0KICAgICAgICBhYiAgeyAiQWJraGF6aWFuIiB9CiAgICAgICAgYWNlIHsgIkFjaGluZXNlIiB9CiAgICAgICAgYWNoIHsgIkFjb2xpIiB9IAogICAgICAgIGFkYSB7ICJBZGFuZ21lIiB9ICAgICAgCiAgICAgICAgYWUgIHsgIkF2ZXN0YW4iIH0gIAogICAgICAgIGFmICB7ICJBZnJpa2FhbnMiIH0KICAgICAgICBhZmEgeyAiQWZyby1Bc2lhdGljIChPdGhlcikiIH0KICAgICAgICBhZmggeyAiQWZyaWhpbGkiIH0gICAgICAgICAgICAgICAKICAgICAgICBha2EgeyAiQWthbiIgfQogICAgICAgIGFrayB7ICJBa2thZGllbiIgfSAgICAgICAgICAKICAgICAgICBhbGUgeyAiQWxldXQiIH0gCiAgICAgICAgYWxnIHsgICJBbGdvbnF1aWFuIExhbmd1YWdlcyIgfQogICAgICAgIGFtICB7ICJBbWhhcmljIiB9CiAgICAgICAgYW5nIHsgIkVuZ2xpc2gsIE9sZCAoY2EuNDUwLTExMDApIiB9ICAgICAgICAKICAgICAgICBhcGEgeyAiQXBhY2hlIExhbmd1YWdlcyJ9ICAgICAgICAgICAgCiAgICAgICAgYXIgIHsgIkFyYWJpYyIgfQogICAgICAgIGFyYyB7ICJBcmFtYWljIiB9CiAgICAgICAgYXJuIHsgIkFyYXVjYW5pYW4iIH0KICAgICAgICBhcnAgeyAiQXJhcGFobyIgfQogICAgICAgIGFydCB7ICJBcnRpZmljaWFsIChPdGhlcikiIH0gICAgICAgICAgIAogICAgICAgIGFydyB7ICJBcmF3YWsiIH0gICAgICAgICAgICAgCiAgICAgICAgYXMgIHsgIkFzc2FtZXNlIiB9ICAgIAogICAgICAgIGF0aCB7ICJBdGhhcGFza2FuIExhbmd1YWdlcyIgfQogICAgICAgIGF1cyB7ICJBdXN0cmFsaWFuIExhbmd1YWdlcyIgfQogICAgICAgIGF2YSB7ICJBdmFyaWMiIH0gICAgICAgCiAgICAgICAgYXdhIHsgIkF3YWRoaSIgfSAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICBheSAgeyAiQXltYXJhIiB9ICAgICAgICAgICAgIAogICAgICAgIGF6ICB7ICJBemVyYmFpamFuaSIgfSAgICAgICAgCiAgICAgICAgYmEgIHsgIkJhc2hraXIiIH0KICAgICAgICBiYWQgeyAiQmFuZGEiIH0KICAgICAgICBiYWkgeyAiQmFtaWxla2UgTGFuZ3VhZ2VzIiB9CiAgICAgICAgYmFsIHsgIkJhbHV1Y2hpIiB9CiAgICAgICAgYmFtIHsgIkJhbWJhcmEiIH0KICAgICAgICBiYW4geyAiQmFsaW5lc2UiIH0KICAgICAgICBiYXMgeyAiQmFzYSIgfQogICAgICAgIGJhdCB7ICJCYWx0aWMgKE90aGVyKSIgfQogICAgICAgIGJlICB7ICJCZWxhcnVzaWFuIiB9CiAgICAgICAgYmVqIHsgIkJlamEiIH0KICAgICAgICBiZW0geyAiQmVtYmEiIH0gICAgICAgICAgICAgCiAgICAgICAgYmVyIHsgIkJlYmVyIiB9CiAgICAgICAgYmcgIHsgIkJ1bGdhcmlhbiIgfSAgICAgICAgICAgICAgIAogICAgICAgIGJoICB7ICJCaWhhcmkiIH0gICAKICAgICAgICBiaG8geyAiQmhvanB1cmkiIH0KICAgICAgICBiaSAgeyAiQmlzbGFtYSIgfQogICAgICAgIGJpayB7ICJCaWtvbCIgfQogICAgICAgIGJpbiB7ICJCaW5pIiB9CiAgICAgICAgYmxhIHsgIlNpa3Npa2EiIH0KICAgICAgICBibiAgeyAiQmVuZ2FsaSIgfQogICAgICAgIGJudCB7ICJCYW50dSIgfQogICAgICAgIGJvICB7ICJUaWJldGFuIiB9CiAgICAgICAgYnIgIHsgIkJyZW50b24iIH0KICAgICAgICBicmEgeyAiQnJhaiIgfQogICAgICAgIGJzICB7ICJCb3NuaWFuIn0KICAgICAgICBidGsgeyAiQmF0YWsiIH0KICAgICAgICBidWEgeyAiQnVyaWF0IiB9ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgYnVnIHsgIkJ1Z2luZXNlIiB9CiAgICAgICAgY2EgIHsgIkNhdGFsYW4iIH0KICAgICAgICBjYWQgeyAiQ2FkZG8iIH0KICAgICAgICBjYWkgeyAiQ2VudHJhbCBBbWVyaWNhbiBJbmRpYW4gKE90aGVyKSIgfQogICAgICAgIGNhciB7ICJDYXJpYiIgfQogICAgICAgIGNhdSB7ICJDYXVjYXNpYW4gKE90aGVyKSAiIH0gICAgICAgICAgICAgIAogICAgICAgIGNlICB7ICJDaGVjaGVuIiB9CiAgICAgICAgY2ViIHsgIkNlYnVhbm8iIH0KICAgICAgICBjZWwgeyAiQ2VsdGljIChPdGhlcikiIH0gCiAgICAgICAgY2ggIHsgIkNoYW1vcnJvIiB9CiAgICAgICAgY2hiIHsgIkNoaWJjaGEiIH0gICAKICAgICAgICBjaGcgeyAiQ2hhZ2F0YWkiIH0KICAgICAgICBjaGsgeyAiQ2h1dWtlc2UiIH0KICAgICAgICBjaG0geyAiTWFyaSIgfSAgICAgICAgCiAgICAgICAgY2huIHsgIkNoaW5vb2sgSmFyZ29uIiB9CiAgICAgICAgY2hvIHsgIkNob2N0YXciIH0KICAgICAgICBjaHAgeyAiQ2hpcGV3eWFuIiB9CiAgICAgICAgY2hyIHsgIkNoZXJva2VlIiB9CiAgICAgICAgY2h5IHsgIkNoZXllbm5lIiB9CiAgICAgICAgY21jIHsgIkNoYW1pYyBMYW5ndWFnZXMiIH0KICAgICAgICBjbyAgeyAiQ29yc2ljYW4iIH0KICAgICAgICBjb3AgeyAiQ29wdGljIiB9CiAgICAgICAgY3BlIHsgIkNyZW9sZXMgYW5kIFBpZGdpbnMsIEVuZ2xpc2gtYmFzZWQgKE90aGVyKSIgfQogICAgICAgIGNwZiB7ICJDcmVvbGVzIGFuZCBQaWRnaW5zLCBGcmVuY2gtYmFzZWQgKE90aGVyKSIgfSAgICAgICAgICAgCiAgICAgICAgY3JlIHsgIkNyZWUiIH0KICAgICAgICBjcnAgeyAiQ3Jlb2xlcyBhbmQgUGlkZ2lucyAoT3RoZXIpIiB9CiAgICAgICAgY3MgIHsgIkN6ZWNoIiB9CiAgICAgICAgY3UgIHsgIkNodXJjaCBTbGF2aWMiIH0KICAgICAgICBjdXMgeyAiQ3VzaGl0aWMgKE90aGVyKSIgfSAgICAgICAgICAgCiAgICAgICAgY3YgIHsgIkNodXZhc2giIH0KICAgICAgICBjeSAgeyAiV2Vsc2giIH0gICAgICAgICAgICAgIAogICAgICAgIGRhICB7ICJEYW5pc2giIH0gCiAgICAgICAgZGFrIHsgIkRha290YSIgfSAgICAgICAgICAgICAgCiAgICAgICAgZGF5IHsgIkRheWFrIiB9CiAgICAgICAgZGUgIHsgIkdlcm1hbiIgfQogICAgICAgIGRlbCB7ICJEZWxhd2FyZSIgfQogICAgICAgIGRlbiB7ICJTbGF2ZSIgfQogICAgICAgIGRnciB7ICJEb2dyaWIiIH0KICAgICAgICBkaW4geyAiRGlua2EiIH0KICAgICAgICBkaXYgeyAiRGl2ZWhpIiB9CiAgICAgICAgZG9pIHsgIkRvZ3JpIiB9CiAgICAgICAgZHJhIHsgIkRyYXZpZGlhbiAoT3RoZXIpIiB9CiAgICAgICAgZHVhIHsgIkR1YWxhIiB9ICAgICAgICAgICAgCiAgICAgICAgZHVtIHsgIkR1dGNoLCBNaWRkbGUgKGNhLiAxMDUwLTEzNTApIiB9CiAgICAgICAgZHl1IHsgIkR5dWxhIiB9CiAgICAgICAgZHogIHsgIkJodXRhbmkiIH0gCiAgICAgICAgZHpvIHsgIkR6b25na2hhIiB9CiAgICAgICAgZWZpIHsgIkVmaWsiIH0KICAgICAgICBlZ3kgeyAiRWd5cHRpYW4gKEFuY2llbnQpIiB9CiAgICAgICAgZWthIHsgIkVrYWp1ayIgfQogICAgICAgIGVsICB7ICJHcmVlayIgfSAvLyAgTW9kZXJuICgxNDUzLSkKICAgICAgICBlbHggeyAiRWxhbWl0ZSIgfQogICAgICAgIGVuICB7ICJFbmdsaXNoIiB9CiAgICAgICAgZW5tIHsgIkVuZ2xpc2gsIE1pZGRsZSggMTEwMCAtMTUwMCkiIH0KICAgICAgICBlbyAgeyAiRXNwZXJhbnRvIiB9ICAgICAgICAgIAogICAgICAgIGVzICB7ICJTcGFuaXNoIiB9ICAgICAgICAgICAgCiAgICAgICAgZXQgIHsgIkVzdG9uaWFuIiB9CiAgICAgICAgZXUgIHsgIkJhc3F1ZSIgfQogICAgICAgIGV3ZSB7ICJFd2UiIH0KICAgICAgICBld28geyAiRXdvbmRvIiB9CiAgICAgICAgZmEgIHsgIlBlcnNpYW4iIH0gCiAgICAgICAgZmFuIHsgIkZhbmciIH0KICAgICAgICBmYXQgeyAiRmFudGkiIH0gICAgICAgICAgCiAgICAgICAgZmkgIHsgIkZpbm5pc2giIH0KICAgICAgICBmaXUgeyAiRmlubm8gLSBVZ3JpYW4iIH0KICAgICAgICBmaiAgeyAiRmlqaSIgfSAgICAgICAgICAgICAgIAogICAgICAgIGZvICB7ICJGYWVyb2VzZSIgfSAgICAgICAgICAgCiAgICAgICAgZm9uIHsgIkZvbiIgfSAgICAgICAgICAgIAogICAgICAgIGZyICB7ICJGcmVuY2giIH0KICAgICAgICBmcm0geyAiRnJlbmNoLCBNaWRkbGUgKGNhLjE0MDAtMTYwMCkiIH0KICAgICAgICBmcm8geyAiRnJlbmNoLCBPbGQgKDg0Mi1jYS4xNDAwKSIgfQogICAgICAgIGZ1bCB7ICJGdWxhaCIgfQogICAgICAgIGZ1ciB7ICJGcml1bGlhbiIgfQogICAgICAgIGZ5ICB7ICJGcmlzaWFuIiB9IAogICAgICAgIGdhICB7ICJJcmlzaCIgfQogICAgICAgIGdhYSB7ICJHYSIgfQogICAgICAgIGdheSB7ICJHYXlvIiB9CiAgICAgICAgZ2JhIHsiR2JheWEiIH0gICAgICAgICAgIAogICAgICAgIGdkICB7ICJTY290cyBHYWVsaWMiIH0gIAogICAgICAgIGdlbSB7ICJHZXJtYW5pYyAoT3RoZXIpIiB9CiAgICAgICAgZ2lsIHsgIkdpbGJlcnRlc2UiIH0KCQlnbCAgeyAiR2FsbGVnYW4iIH0gCiAgICAgICAgZ2xhIHsgIkdhZWxpYyAoU2NvdHMpIiB9ICAKICAgICAgICBnbWggeyAiR2VybWFuLCBNaWRkbGUgSGlnaCAoY2EuMTA1MC0xNTAwKSIgfQogICAgICAgIGduICB7ICJHdWFyYW5pIiB9ICAgICAgICAgICAgCiAgICAgICAgZ29oIHsgIiBHZXJtYW4sIE9sZCBIaWdoIChjYS43NTAtMTA1MCkiIH0KICAgICAgICBnb24geyAiR29uZGkiIH0KICAgICAgICBnb3IgeyAiR29yb250YWxvIiB9CiAgICAgICAgZ290IHsgIkdvdGhpYyIgfQogICAgICAgIGdyYiB7ICJHZXJibyIgfQogICAgICAgIGdyYyB7ICJHcmVlaywgQW5jaWVudCAodG8gMTQ1MykiIH0KICAgICAgICBndSAgeyAiR3VqYXJhdGkiIH0KICAgICAgICBndiAgeyAiTWFueCIgfSAgICAgICAgICAgCiAgICAgICAgZ3dpIHsgIkd3aWNoJ2luIiB9CiAgICAgICAgaGFpIHsgIkhhaWRhIiB9CiAgICAgICAgaGF1IHsgIkhhdXNhIiB9CiAgICAgICAgaGF3IHsgIkhhd2FpaWFuIiB9ICAgICAgICAgICAgCiAgICAgICAgaGUgIHsgIkhlYnJldyIgfQogICAgICAgIGhpICB7ICJIaW5kaSIgfSAKICAgICAgICBoaW0geyAiSGltYWNoYWxpIiB9ICAgICAgICAgICAgIAogICAgICAgIGhpdCB7ICJIaXR0aXRlIiB9CiAgICAgICAgaG1uIHsgIkhtb25nIiB9ICAgICAgICAgICAgIAogICAgICAgIGhvICB7ICJIaXJpIE1vdHUiIH0KICAgICAgICBociAgeyAiQ3JvYXRpYW4iIH0KICAgICAgICBodSAgeyAiSHVuZ2FyaWFuIiB9CiAgICAgICAgaHVwIHsgIkh1cGEiIH0KICAgICAgICBoeSAgeyAiQXJtZW5pYW4iIH0KICAgICAgICBoeiAgeyAiSGVyZXJvIiB9CiAgICAgICAgaWEgIHsgIkludGVybGluZ3VhIiB9ICAgICAgICAKICAgICAgICBpYmEgeyAiSWJhbiIgfSAgICAgICAgICAKICAgICAgICBpYm8geyAiSWdibyIgfQogICAgICAgIGlkICB7ICJJbmRvbmVzaWFuIiB9ICAgICAgICAgICAgICAgCiAgICAgICAgaWUgIHsgIkludGVybGluZ3VlIiB9ICAgICAgICAKICAgICAgICBpam8geyAiSWpvIiB9CiAgICAgICAgaWsgIHsgIkludXBpYWsiIH0KICAgICAgICBpbG8geyAiSWxva28iIH0KICAgICAgICBpbmMgeyAiSW5kaWMgKE90aGVyKSIgfQogICAgICAgIGluZSB7ICJJbmRvLUV1cm9wZWFuIiB9ICAgICAgICAgIAogICAgICAgIGlyYSB7ICJJcmFuaWFuICIgfSAgICAgICAgICAgIAogICAgICAgIGlybyB7ICJJcm9ndW9pYW4gIExhbmd1YWdlcyIgfSAgICAgICAgICAgICAgCiAgICAgICAgaXMgIHsgIkljZWxhbmRpYyIgfQogICAgICAgIGl0ICB7ICJJdGFsaWFuIiB9ICAgICAgICAgICAgCiAgICAgICAgaXUgIHsgIkludWtpdHV0IiB9ICAgICAgICAgICAKICAgICAgICBpdyAgeyAiSGVicmV3IiB9ICAgICAgICAgICAgIAogICAgICAgIGphICB7ICJKYXBhbmVzZSIgfSAgICAgICAgICAgCiAgICAgICAganByIHsgIkp1ZGVvLVBlcnNpYW4iIH0KICAgICAgICBqcmIgeyAiSnVkZW8tQXJhYmljIiB9CiAgICAgICAgancgIHsgIkphdmFuZXNlIiB9ICAgICAgICAgICAKICAgICAgICBrYSAgeyAiR2VvcmdpYW4iIH0gICAgICAgICAgIAogICAgICAgIGthYSB7ICJLYXJhLUthbHBhayIgfQogICAgICAgIGthYiB7ICJLYWJ5bGUiIH0KICAgICAgICBrYWMgeyAiS2FjaGluIiB9CiAgICAgICAga2FtIHsgIkthbWJhIiB9CiAgICAgICAga2FyIHsgIkthcmVuIiB9ICAgICAgICAgICAgCiAgICAgICAga2F1IHsgIkthbnVyaSIgfQogICAgICAgIGthdyB7ICJLYXdpIiB9ICAgICAgICAgICAKICAgICAgICBraGEgeyAiS2hhc2kiIH0KICAgICAgICBraGkgeyAiS2hvaXNhbiIgfQogICAgICAgIGtobyB7ICJLaG90YW5lc2UiIH0KICAgICAgICBraSAgeyAiS2lrdXl1IiB9ICAgCiAgICAgICAga2sgIHsgIkthemFraCIgfQogICAgICAgIGtsICB7ICJLYWxhYWxsaXN1dCIgfSAgIAogICAgICAgIGttICB7ICJLaG1lciIgfSAgCiAgICAgICAga21iIHsgIktpbWJ1bmR1IiB9ICAgICAgICAgCiAgICAgICAga24gIHsgIkthbm5hZGEiIH0KICAgICAgICBrbyAgeyAiS29yZWFuIiB9ICAgCiAgICAgICAga29rIHsgIktvbmthbmkiIH0gICAgICAgICAgICAKICAgICAgICBrb24geyAiS29uZ28iIH0KICAgICAgICBrb3MgeyAiS29zcmVhbiIgfQogICAgICAgIGtwZSB7ICJLcGVsbGUiIH0KICAgICAgICBrcm8geyAiS3J1IiB9CiAgICAgICAga3J1IHsgIkt1cnVja2giIH0KICAgICAgICBrcyAgeyAiS2FzaG1pcmkiIH0KICAgICAgICBrdSAgeyAiS3VyZGlzaCIgfQogICAgICAgIGt1bSB7ICJLdW15ayIgfSAgICAgIAogICAgICAgIGt1dCB7ICJLdXRlbmFpIiB9CiAgICAgICAga3YgIHsgIktvbWkiIH0KICAgICAgICBrdyAgeyAiQ29ybmlzaCIgfSAgICAgICAgICAgIAogICAgICAgIGt5ICB7ICJLaXJnaGl6IiB9CiAgICAgICAgbGEgIHsgIkxhdGluIiB9ICAgICAgICAgICAgICAKICAgICAgICBsYWQgeyAiTGFkaW5vIiB9CiAgICAgICAgbGFoIHsgIkxhaG5kYSIgfQogICAgICAgIGxhbSB7ICJMYW1iYSIgfQogICAgICAgIGxiICB7ICJMZXR6ZWJ1cmdlc2NoIiB9IAogICAgICAgIGxleiB7ICJMZXpnaGlhbiIgfQogICAgICAgIGxpbiB7ICJMaW5nYWxhIiB9CiAgICAgICAgbGl0IHsgIkxpdGh1YW5pYW4iIH0KICAgICAgICBsbiAgeyAiTGluZ2FsYSIgfSAgICAgICAgICAgIAogICAgICAgIGxvICB7ICJMYW8iIH0KICAgICAgICBsb2wgeyAiTW9uZ28iIH0gICAgICAgICAgCiAgICAgICAgbG96IHsgIkxvemkiIH0KICAgICAgICBsdCAgeyAiTGl0aHVhbmlhbiIgfSAgICAgICAgIAogICAgICAgIGx1YSB7ICJMdWJhLUx1bHVhIiB9CiAgICAgICAgbHViIHsgIkx1YmEtS2F0YW5nYSIgfQogICAgICAgIGx1ZyB7ICJHYW5kYSIgfQogICAgICAgIGx1aSB7ICJMdWlzZWVubyIgfQogICAgICAgIGx1biB7ICJMdW5kYSIgfQogICAgICAgIGx1byB7ICJMdWEiIH0KICAgICAgICBsdXMgeyAiTHVzaGFpIiB9CiAgICAgICAgbHYgIHsgIkxhdHZpYW4gKExldHRpc2gpIiB9CiAgICAgICAgbWFkIHsgIk1hZHVyZXNlIiB9CiAgICAgICAgbWFnIHsgIk1hZ2FoaSIgfQogICAgICAgIG1haSB7ICJNYWl0aGlsaSIgfQogICAgICAgIG1hayB7ICJNYWthc2FyIiB9ICAgICAgICAKICAgICAgICBtYW4geyAiTWFuZGluZ3VlIiB9CiAgICAgICAgbWFwIHsgIkF1c3Ryb25lc2lhbiIgfQogICAgICAgIG1hcyB7ICJNYXNhaSIgfQogICAgICAgIG1kciB7ICJNYW5kYXIiIH0KICAgICAgICBtZW4geyAiTWVuZGUiIH0KICAgICAgICBtZyAgeyAiTWFsYWdhc3kiIH0gICAgICAgICAgIAogICAgICAgIG1nYSB7ICJJcmlzaCwgTWlkZGxlICg5MDAtMTIwMCkiIH0KICAgICAgICBtaAl7ICJNYXJzaGFsbCJ9CiAgICAgICAgbWkgIHsgIk1hb3JpIiB9ICAgICAgICAgICAgICAKICAgICAgICBtaWMgeyAiTWljLU1hYyIgfQogICAgICAgIG1pbiB7ICJNaW5hbmdrYWJhdSIgfQogICAgICAgIG1pcyB7ICJNaXNjZWxsYW5lb3VzIExhbmd1YWdlcyIgfQogICAgICAgIG1rICB7ICJNYWNlZG9uaWFuIiB9ICAgICAKICAgICAgICBta2ggeyAiTW9uLUtobWVyIChPaHRlcikiIH0KICAgICAgICBtbCAgeyAiTWFsYXlhbGFtIiB9ICAgICAgICAgIAogICAgICAgIG1uICB7ICJNb25nb2xpYW4iIH0KICAgICAgICBtbmMgeyAiTWFuY2h1IiB9CiAgICAgICAgbW5pIHsgIk1hbmlwdXJpIiB9CiAgICAgICAgbW5vIHsgIk1hbm9ibyBMYW5ndWFnZXMiIH0KICAgICAgICBtbyAgeyAiTW9sZGF2aWFuIiB9CiAgICAgICAgbW9oIHsgIk1vaGF3ayIgfSAgICAgICAgICAKICAgICAgICBtb3MgeyAiTW9zc2kiIH0KICAgICAgICBtciAgeyAiTWFyYXRoaSIgfSAKICAgICAgICBtcyAgeyAiTWFsYXkiIH0gICAgICAgICAgICAgIAogICAgICAgIG10ICB7ICJNYWx0ZXNlIiB9IAogICAgICAgIG11bCB7ICJNdWx0aXBsZSBMYW5ndWFnZXMiIH0KICAgICAgICBtdW4geyAiTXVuZGEgTGFuZ3VhZ2VzIiB9CiAgICAgICAgbXVzIHsgIkNyZWVrIiB9CiAgICAgICAgbXdyIHsgIk1hcndhcmkiIH0gCiAgICAgICAgbXkgIHsgIkJ1cm1lc2UiIH0KICAgICAgICBteW4geyAiTWF5YW4iIH0KICAgICAgICBuYSAgeyAiTmF1cnUiIH0gCiAgICAgICAgbmFoIHsgIk5haHVhdGwiIH0KICAgICAgICBuYWkgeyAiTm9ydGggQW1lcmljYW4gSW5kaWFuIChPaHRlcikiIH0KICAgICAgICBuYiAgeyAiTm9yd2VnaWFuIEJva21cdTAwZTVsIiB9ICAgIAogICAgICAgIG5kICB7ICJOZGViZWxlLCBOb3J0aCIgfSAgIAogICAgICAgIG5kcyB7ICJMb3cgR2VybWFuOyBMb3cgU2F4b24iIH0gCiAgICAgICAgbmUgIHsgIk5lcGFsaSIgfSAgCiAgICAgICAgbmV3IHsgIk5ld2FyaSIgfSAgICAKICAgICAgICBuZyAgeyAiTmRvbmdhIiB9ICAgCiAgICAgICAgbmlhIHsgIk5pYXMiIH0KICAgICAgICBuaWMgeyAiTmlnZXIgLSBLb3Jkb2ZhbmlhbiIgfQogICAgICAgIG5pdSB7ICJOaXVlYW4iIH0KICAgICAgICBubCAgeyAiRHV0Y2giIH0gIAogICAgICAgIG5uICB7ICJOb3J3ZWdpYW4gTnlub3JzayIgfQogICAgICAgIG5vICB7ICJOb3J3ZWdpYW4iIH0KICAgICAgICBub24geyAiTm9yc2UsIE9sZCIgfSAKICAgICAgICBuciAgeyAiTmRlYmVsZSwgU291dGgiIH0KICAgICAgICBuc28geyAiU290aG8sIE5vcnRoZXJuIiB9CiAgICAgICAgbnViIHsgIk51YmlhbiBMYW5ndWFnZXMiIH0KICAgICAgICBudiAgeyJOYXZham8ifQogICAgICAgIG55ICB7ICIgQ2hpY2hld2E7IE55YW5qYSIgfSAgICAgICAgICAgCiAgICAgICAgbnltIHsgIk55YW13ZXppIiB9CiAgICAgICAgbnlvIHsgIk55b3JvIiB9IAogICAgICAgIG56aSB7ICJOemltYSIgfQogICAgICAgIG9jICB7ICJQcm92ZW5cdTAwRTdhbDsgT2NjaXRhbiAocG9zdCAxNTAwKSJ9CiAgICAgICAgb2ppIHsgIk9qaWJ3YSIgfSAgICAgICAgICAKICAgICAgICBvbSAgeyAiT3JvbW8gKEFmYW4pIiB9CiAgICAgICAgb3IgIHsgIk9yaXlhIiB9ICAgICAgICAgICAgICAKICAgICAgICBvcyAgeyAiT3NzZXRpYyIgfQogICAgICAgIG9zYSB7ICJPc2FnZSIgfSAgICAgCiAgICAgICAgb3RhIHsgIlR1cmtpc2ggKE90dG9tYW4gRW1waXJlKSIgfSAgICAgIAogICAgICAgIG90byB7ICJPdG9taWFuIExhbmd1YWdlcyIgfQogICAgICAgIHBhICB7ICJQdW5qYWJpIiB9ICAgICAgICAgICAgCiAgICAgICAgcGFhIHsgIlBhcHVhbiAoT2h0ZXIpIiB9CiAgICAgICAgcGFnIHsgIlBhbmdhc2luYW4iIH0KICAgICAgICBwYWwgeyAiUGFobGF2aSIgfQogICAgICAgIHBhbSB7ICJwYW1wYW1nYSIgfQogICAgICAgIHBhcCB7ICJQYXBpYW1lbnRvIiB9CiAgICAgICAgcGF1IHsgIlBhbGF1YW4iIH0KICAgICAgICBwZW8geyAiUGVyc2lhbiBPbGQgKGNhLjYwMC00MDAgQi5DLikiICB9ICAgIAogICAgICAgIHBoaSB7ICJQaGlsaXBwaW5lIChPdGhlcikiIH0KICAgICAgICBwaG4geyAiUGhvZW5pY2lhbiIgfSAgICAKICAgICAgICBwaSAgeyAiUGFsaSIgfSAgCiAgICAgICAgcGwgIHsgIlBvbGlzaCIgfSAgICAgICAgICAgICAKICAgICAgICBwb24geyAiUG9obnBlaWFuIiB9CiAgICAgICAgcHJhIHsgIlByYWtyaXQgTGFuZ3VhZ2VzIiB9CiAgICAgICAgcHJvIHsgICJQcm92ZW7nYWwsIE9sZCAodG8gMTUwMCkiIH0gICAgIAogICAgICAgIHBzICB7ICJQYXNodG8gKFB1c2h0bykiIH0gIAogICAgICAgIHB0ICB7ICJQb3J0dWd1ZXNlIiB9CiAgICAgICAgcXUgIHsgIlF1ZWNodWEiIH0gICAgICAgICAgICAKICAgICAgICByYWogeyAiUmFqYXN0YW5pIiB9CiAgICAgICAgcmFwIHsgIlJhcGFudWkiIH0KICAgICAgICByYXIgeyAiUmFyb3RvbmdhbiIgfQogICAgICAgIHJtICB7ICJSaGFldG8tUm9tYW5jZSIgfQogICAgICAgIHJuICB7ICJSdW5kaSIgfSAgICAgICAgCiAgICAgICAgcm8gIHsgIlJvbWFuaWFuIiB9ICAgCiAgICAgICAgcm9hIHsgIlJvbWFuY2UgKE90aGVyKSIgfQogICAgICAgIHJvbSB7ICJSb21hbnkiIH0gICAgCiAgICAgICAgcnUgIHsgIlJ1c3NpYW4iIH0gICAgIAogICAgICAgIHJ3ICB7ICJLaW55YXJ3YW5kYSIgfSAgICAgICAgCiAgICAgICAgc2EgIHsgIlNhbnNrcml0IiB9CiAgICAgICAgc2FkIHsgIlNhbmRhd2UiIH0gICAKICAgICAgICBzYWggeyAiWWFrdXQiIH0KICAgICAgICBzYWkgeyAiU291dGggQW1lcmljYW4gSW5kaWFuIChPaHRlcikiIH0gICAgICAgICAgIAogICAgICAgIHNhbCB7ICJTYWxpc2hhbiIgfQogICAgICAgIHNhbSB7ICJTYW1yaXRhbiIgfQogICAgICAgIHNhcyB7ICJTYXNrYSIgfQogICAgICAgIHNhdCB7ICJTYW50YWxpIiB9CiAgICAgICAgc2MgIHsgIlNhcmRpbmlhbiIgfSAgCiAgICAgICAgc2NvIHsgIlNjb3RzIiB9CiAgICAgICAgc2QgIHsgIlNpbmRoaSIgfQogICAgICAgIHNlICB7ICJOb3J0aGVybiBTYW1pIiB9Ci8vIGh0dHA6Ly9sY3dlYi5sb2MuZ292L3N0YW5kYXJkcy9pc282MzktMi9lbmdsYW5nbi5odG1sIAovLyBzaG91bGQgcHJvdmlkZSB0aGUgY29ycmVjdCBsYW5ndWFnZSBjb2RlIHNvb24gCi8vICAgICAgICBzZSB7ICJTYW1pIExhbmd1YWdlcyIgfSAgICAgICAgLy8gRFVQIEZJWE1FCiAgICAgICAgc2VsIHsgIlNlbGt1cCIgfQogICAgICAgIHNlbSB7ICJTZW1pdGljIiB9ICAgICAgICAgCiAgICAgICAgc2cgIHsgIlNhbmdvIiB9CiAgICAgICAgc2dhIHsgIklyaXNoLCBPbGQgKHRvIDkwMCkiIH0KICAgICAgICBzZ24geyAiU2lnbiBMYW5ndWFnZXMiIH0KICAgICAgICBzaCAgeyAiU2VyYm8tQ3JvYXRpYW4iIH0gICAgIAogICAgICAgIHNobiB7ICJTaGFuIiB9ICAgCiAgICAgICAgc2kgIHsgIlNpbmhhbGVzZSIgfQogICAgICAgIHNpZCB7ICJTaWRhbW8iIH0KICAgICAgICBzaW8geyAiU2lvdWFuIExhbmd1YWdlcyIgfQogICAgICAgIHNpdCB7ICJTaW5vLVRpYmV0YW4gKE90aGVyKSIgfQogICAgICAgIHNrICB7ICJTbG92YWsiIH0gICAgICAgICAgICAgCiAgICAgICAgc2wgIHsgIlNsb3ZlbmlhbiIgfSAgIAogICAgICAgIHNtICB7ICJTYW1vYW4iIH0gICAgICAgICAgCiAgICAgICAgc24gIHsgIlNob25hIiB9CiAgICAgICAgc25rIHsgIlNvbmlua2UiIH0KICAgICAgICBzbyAgeyAiU29tYWxpIiB9CiAgICAgICAgc29nIHsgIlNvZ2RpZW4iIH0gICAgICAgCiAgICAgICAgc29uIHsgIlNvbmdoYWkiIH0KICAgICAgICBzcSAgeyAiQWxiYW5pYW4iIH0KICAgICAgICBzciAgeyAiU2VyYmlhbiIgfSAgIAogICAgICAgIHNyciB7ICJTZXJlciIgfSAgICAgCiAgICAgICAgc3MgIHsgIlN3YXRpIiB9ICAgCiAgICAgICAgc3NhIHsgIk5pbG8tU2FoYXJhbSIgfSAgICAgICAgICAgICAgIAogICAgICAgIHN0ICB7ICJTb3RobywgU291dGhlcm4iIH0KICAgICAgICBzdSAgeyAiU3VuZGFuZXNlIiB9CiAgICAgICAgc3VrIHsgIlN1a3VtYSIgfQogICAgICAgIHN1cyB7ICJTdXN1IiB9ICAgICAgICAgIAogICAgICAgIHN1eCB7ICJTdW1lcmlhbiJ9CiAgICAgICAgc3YgIHsgIlN3ZWRpc2giIH0KICAgICAgICBzdyAgeyAiU3dhaGlsaSIgfSAgICAgICAgICAgIAogICAgICAgIHN5ciB7ICJTeXJpYWMiIH0KICAgICAgICB0YSAgeyAiVGFtaWwiIH0gICAgICAgICAgICAgIAogICAgICAgIHRhaSB7ICJUYWkgKE90aGVyKSIgfSAgICAgICAgICAgIAogICAgICAgIHRlICB7ICJUZWx1Z3UiIH0gICAgIAogICAgICAgIHRlbSB7ICJUaW1uZSIgfQogICAgICAgIHRlciB7ICJUZXJlbm8iIH0KICAgICAgICB0ZXQgeyAiVGV0dW0iIH0gICAgICAgIAogICAgICAgIHRnICB7ICJUYWppayIgfSAgICAgICAgCiAgICAgICAgdGggIHsgIlRoYWkiIH0gICAgICAgICAgICAgICAKICAgICAgICB0aWcgeyAiVGlncmUiIH0gICAgICAgICAgICAKICAgICAgICB0aXIgeyAiVGlncmlueWEiIH0gCiAgICAgICAgdGl2IHsgIlRpdiIgfQogICAgICAgIHRrICB7ICJUdXJrbWVuIiB9IAogICAgICAgIHRsICB7ICJUYWdhbG9nIiB9CiAgICAgICAgdGxpIHsgIlRsaW5naXQiIH0gICAgICAgICAgCiAgICAgICAgdG1oIHsgIlRhbWFzaGVrIiB9ICAgICAgCiAgICAgICAgdG4gIHsgIlRzd2FuYSIgfQogICAgICAgIHRvZyB7ICJUb25nYSAoTnlhc2EpIiB9CiAgICAgICAgdG9uIHsgIlRvbmdhbiAoVG9uZ2EgSXNsYW5kcykiIH0KICAgICAgICB0ciAgeyAiVHVya2lzaCIgfSAgICAgICAgICAgIAogICAgICAgIHRzICB7ICJUc29uZ2EiIH0gICAgCiAgICAgICAgdHNpIHsgIlRzaW1zaGlhbiIgfSAgICAgICAgICAgCiAgICAgICAgdHQgIHsgIlRhdGFyIiB9ICAgICAgICAgICAgICAKICAgICAgICB0dW0geyAiVHVtYnVrYSIgfQogICAgICAgIHR1ciB7ICJUdXJraXNoIiB9CiAgICAgICAgdHV0IHsgIkFsdGFpYyAoT3RoZXIpIiB9ICAgICAgICAgIAogICAgICAgIHR2bCB7ICJUdXZhbHUiIH0KICAgICAgICB0dyAgeyAiVHdpIiB9ICAgIAogICAgICAgIHR5ICB7ICJUYWhpdGlhbiIgfSAgICAgICAgICAKICAgICAgICB0eXYgeyAiVHV2aW5pYW4iIH0gICAgICAgICAgIAogICAgICAgIHVnICB7ICJVaWdodXIiIH0gICAgICAgICAgICAgCiAgICAgICAgdWdhIHsgIlVnYXJpdGljIiB9ICAgICAgICAgICAgCiAgICAgICAgdWsgIHsgIlVrcmFpbmlhbiIgfSAgIAogICAgICAgIHVtYiB7ICJVbWJ1bmR1IiB9CiAgICAgICAgdW5kIHsgIlVuZGV0ZXJtaW5lZCIgfSAgICAgICAKICAgICAgICB1ciAgeyAiVXJkdSIgfSAgICAgICAgICAgICAgIAogICAgICAgIHV6ICB7ICJVemJlayIgfSAgICAgICAgICAgIAogICAgICAgIHZhaSB7ICJWYWkiIH0KICAgICAgICB2ZW4geyAiVmVuZGEiIH0gIAogICAgICAgIHZpICB7ICJWaWV0bmFtZXNlIiB9ICAgICAgICAgCiAgICAgICAgdm8gIHsgIlZvbGFwdWsiIH0gICAgCiAgICAgICAgdm90ICB7ICJWb3RpYyIgfQogICAgICAgIHdhayB7ICJXYWthc2hhbiBMYW5ndWFnZXMiIH0KICAgICAgICB3YWwgeyAiV2FsYW1vIiB9CiAgICAgICAgd2FyIHsgIldhcmF5IiB9CiAgICAgICAgd2FzIHsgIldhc2hvIiB9ICAgICAgICAKICAgICAgICB3ZW4geyAiU29yYmlhbiBMYW5ndWFnZXMiIH0KICAgICAgICB3byAgeyAiV29sb2YiIH0gICAgICAgICAgICAgIAogICAgICAgIHhoICB7ICJYaG9zYSIgfQogICAgICAgIHlhbyB7ICJZYW8iIH0KICAgICAgICB5YXAgeyAiWWFwZXNlIiB9ICAgICAgICAgICAgICAKICAgICAgICB5aSAgeyAiWWlkZGlzaCIgfSAgICAgICAgICAgIAogICAgICAgIHlvciAgeyAiWW9ydWJhIiB9ICAgICAgIAogICAgICAgIHlwayB7ICJZdXBpayBMYW5ndWFnZXMiIH0KICAgICAgICB6YSAgeyAiWmh1YW5nIiB9ICAgICAgICAgICAgIAogICAgICAgIHphcCB7ICJaYXBvdGVjIiB9CiAgICAgICAgemVuIHsgIlplbmFnYSIgfSAgICAgIAogICAgICAgIHpoICB7ICJDaGluZXNlIiB9CiAgICAgICAgem5kIHsgIlphbmRlIiB9CiAgICAgICAgenUgIHsgIlp1bHUiIH0gICAgIAogICAgICAgIHp1biB7ICJadW5pIiB9ICAgICAgICAgIAogICAgfQogICAgTG9jYWxlSUQgeyAiMDQwOSIgfQogICAgTG9jYWxlU3RyaW5nIHsgImVuIiB9CiAgICBNb250aEFiYnJldmlhdGlvbnMgeyAKICAgICAgICAgICAgIkphbiIsCiAgICAgICAgICAgICJGZWIiLAogICAgICAgICAgICAiTWFyIiwKICAgICAgICAgICAgIkFwciIsCiAgICAgICAgICAgICJNYXkiLAogICAgICAgICAgICAiSnVuIiwKICAgICAgICAgICAgIkp1bCIsCiAgICAgICAgICAgICJBdWciLAogICAgICAgICAgICAiU2VwIiwKICAgICAgICAgICAgIk9jdCIsCiAgICAgICAgICAgICJOb3YiLAogICAgICAgICAgICAiRGVjIiwKICAgICAgICAgICAgIiIsCiAgICB9CiAgICBNb250aE5hbWVzIHsgCiAgICAgICAgICAgICJKYW51YXJ5IiwKICAgICAgICAgICAgIkZlYnJ1YXJ5IiwKICAgICAgICAgICAgIk1hcmNoIiwKICAgICAgICAgICAgIkFwcmlsIiwKICAgICAgICAgICAgIk1heSIsCiAgICAgICAgICAgICJKdW5lIiwKICAgICAgICAgICAgIkp1bHkiLAogICAgICAgICAgICAiQXVndXN0IiwKICAgICAgICAgICAgIlNlcHRlbWJlciIsCiAgICAgICAgICAgICJPY3RvYmVyIiwKICAgICAgICAgICAgIk5vdmVtYmVyIiwKICAgICAgICAgICAgIkRlY2VtYmVyIiwKICAgICAgICAgICAgIiIsCiAgICB9CiAgICBOdW1iZXJFbGVtZW50cyB7IAogICAgICAgICAgICAiLiIsCiAgICAgICAgICAgICIsIiwKICAgICAgICAgICAgIjsiLAogICAgICAgICAgICAiJSIsCiAgICAgICAgICAgICIwIiwKICAgICAgICAgICAgIiMiLAogICAgICAgICAgICAiLSIsCiAgICAgICAgICAgICJFIiwKICAgICAgICAgICAgIlx1MjAzMCIsCiAgICAgICAgICAgICJcdTIyMUUiLAogICAgICAgICAgICAiXHVGRkZEIiwKICAgIH0KICAgIE51bWJlclBhdHRlcm5zIHsgCiAgICAgICAgICAgICIjLCMjMC4jIyM7LSMsIyMwLiMjIyIsCiAgICAgICAgICAgICJcdTAwQTQgIywjIzAuMDA7LVx1MDBBNCAjLCMjMC4wMCIsCiAgICAgICAgICAgICIjLCMjMCUiLAogICAgfQogICAgU2hvcnRDb3VudHJ5IHsgIiIgfQogICAgU2hvcnRMYW5ndWFnZSB7ICJlbmciIH0KICAgIGxvY2FsUGF0dGVybkNoYXJzIHsgIkd5TWRrSG1zU0VERndXYWhLelllIiB9CiAgICB6b25lU3RyaW5ncyB7IAogICAgICAgIHsKICAgICAgICAgICAgICAgICJQU1QiLAogICAgICAgICAgICAgICAgIlBhY2lmaWMgU3RhbmRhcmQgVGltZSIsCiAgICAgICAgICAgICAgICAiUFNUIiwKICAgICAgICAgICAgICAgICJQYWNpZmljIERheWxpZ2h0IFRpbWUiLAogICAgICAgICAgICAgICAgIlBEVCIsCiAgICAgICAgICAgICAgICAiU2FuIEZyYW5jaXNjbyIsCiAgICAgICAgfQogICAgICAgIHsKICAgICAgICAgICAgICAgICJNU1QiLAogICAgICAgICAgICAgICAgIk1vdW50YWluIFN0YW5kYXJkIFRpbWUiLAogICAgICAgICAgICAgICAgIk1TVCIsCiAgICAgICAgICAgICAgICAiTW91bnRhaW4gRGF5bGlnaHQgVGltZSIsCiAgICAgICAgICAgICAgICAiTURUIiwKICAgICAgICAgICAgICAgICJEZW52ZXIiLAogICAgICAgIH0KICAgICAgICB7CiAgICAgICAgICAgICAgICAiUE5UIiwKICAgICAgICAgICAgICAgICJNb3VudGFpbiBTdGFuZGFyZCBUaW1lIiwKICAgICAgICAgICAgICAgICJNU1QiLAogICAgICAgICAgICAgICAgIk1vdW50YWluIFN0YW5kYXJkIFRpbWUiLAogICAgICAgICAgICAgICAgIk1TVCIsCiAgICAgICAgICAgICAgICAiUGhvZW5peCIsCiAgICAgICAgfQogICAgICAgIHsKICAgICAgICAgICAgICAgICJDU1QiLAogICAgICAgICAgICAgICAgIkNlbnRyYWwgU3RhbmRhcmQgVGltZSIsCiAgICAgICAgICAgICAgICAiQ1NUIiwKICAgICAgICAgICAgICAgICJDZW50cmFsIERheWxpZ2h0IFRpbWUiLAogICAgICAgICAgICAgICAgIkNEVCIsCiAgICAgICAgICAgICAgICAiQ2hpY2FnbyIsCiAgICAgICAgfQogICAgICAgIHsKICAgICAgICAgICAgICAgICJFU1QiLAogICAgICAgICAgICAgICAgIkVhc3Rlcm4gU3RhbmRhcmQgVGltZSIsCiAgICAgICAgICAgICAgICAiRVNUIiwKICAgICAgICAgICAgICAgICJFYXN0ZXJuIERheWxpZ2h0IFRpbWUiLAogICAgICAgICAgICAgICAgIkVEVCIsCiAgICAgICAgICAgICAgICAiTmV3IFlvcmsiLAogICAgICAgIH0KICAgICAgICB7CiAgICAgICAgICAgICAgICAiSUVUIiwKICAgICAgICAgICAgICAgICJFYXN0ZXJuIFN0YW5kYXJkIFRpbWUiLAogICAgICAgICAgICAgICAgIkVTVCIsCiAgICAgICAgICAgICAgICAiRWFzdGVybiBTdGFuZGFyZCBUaW1lIiwKICAgICAgICAgICAgICAgICJFU1QiLAogICAgICAgICAgICAgICAgIkluZGlhbmFwb2xpcyIsCiAgICAgICAgfQogICAgICAgIHsKICAgICAgICAgICAgICAgICJQUlQiLAogICAgICAgICAgICAgICAgIkF0bGFudGljIFN0YW5kYXJkIFRpbWUiLAogICAgICAgICAgICAgICAgIkFTVCIsCiAgICAgICAgICAgICAgICAiQXRsYW50aWMgRGF5bGlnaHQgVGltZSIsCiAgICAgICAgICAgICAgICAiQURUIiwKICAgICAgICAgICAgICAgICJIYWxpZmF4IiwKICAgICAgICB9CiAgICAgICAgewogICAgICAgICAgICAgICAgIkhTVCIsCiAgICAgICAgICAgICAgICAiSGF3YWlpIFN0YW5kYXJkIFRpbWUiLAogICAgICAgICAgICAgICAgIkhTVCIsCiAgICAgICAgICAgICAgICAiSGF3YWlpIERheWxpZ2h0IFRpbWUiLAogICAgICAgICAgICAgICAgIkhEVCIsCiAgICAgICAgICAgICAgICAiSG9ub2x1bHUiLAogICAgICAgIH0KICAgICAgICB7CiAgICAgICAgICAgICAgICAiQVNUIiwKICAgICAgICAgICAgICAgICJBbGFza2EgU3RhbmRhcmQgVGltZSIsCiAgICAgICAgICAgICAgICAiQVNUIiwKICAgICAgICAgICAgICAgICJBbGFza2EgRGF5bGlnaHQgVGltZSIsCiAgICAgICAgICAgICAgICAiQURUIiwKICAgICAgICAgICAgICAgICJBbmNob3JhZ2UiLAogICAgICAgIH0KICAgIH0KfQoK