3N2rk3yzChsJp4wCS5VLo5Q3ifLmDChfbzQ · data · qwe?content.js?6?0
{
    "qwe?content.js?6?0": "base64:KHdpbmRvdy53ZWJwYWNrSnNvbnA9d2luZG93LndlYnBhY2tKc29ucHx8W10pLnB1c2goW1szXSx7Iisyb1AiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiaGgxdiIpLGk9bigiNkxXQSIpLGE9bigiSTh2aCIpLGM9bigiVU1TUSIpLHU9bigiL0dxVSIpLHM9bigiaEJqTiIpLGY9bigiSGQ1ZiIpLGw9bigidGlLcCIpKCJzcGVjaWVzIikscD1bXS5zbGljZSxoPU1hdGgubWF4O3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohZigic2xpY2UiKX0se3NsaWNlOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixmLHY9dSh0aGlzKSxkPWModi5sZW5ndGgpLGc9YSh0LGQpLHk9YSh2b2lkIDA9PT1lP2Q6ZSxkKTtpZihpKHYpJiYoImZ1bmN0aW9uIiE9dHlwZW9mKG49di5jb25zdHJ1Y3Rvcil8fG4hPT1BcnJheSYmIWkobi5wcm90b3R5cGUpP28obikmJm51bGw9PT0obj1uW2xdKSYmKG49dm9pZCAwKTpuPXZvaWQgMCxuPT09QXJyYXl8fHZvaWQgMD09PW4pKXJldHVybiBwLmNhbGwodixnLHkpO2ZvcihyPW5ldyh2b2lkIDA9PT1uP0FycmF5Om4pKGgoeS1nLDApKSxmPTA7Zzx5O2crKyxmKyspZyBpbiB2JiZzKHIsZix2W2ddKTtyZXR1cm4gci5sZW5ndGg9ZixyfX0pfSwiK01MeCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkhBdU0iKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4pe2lmKHIodCksdm9pZCAwPT09ZSlyZXR1cm4gdDtzd2l0Y2gobil7Y2FzZSAwOnJldHVybiBmdW5jdGlvbigpe3JldHVybiB0LmNhbGwoZSl9O2Nhc2UgMTpyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQuY2FsbChlLG4pfTtjYXNlIDI6cmV0dXJuIGZ1bmN0aW9uKG4scil7cmV0dXJuIHQuY2FsbChlLG4scil9O2Nhc2UgMzpyZXR1cm4gZnVuY3Rpb24obixyLG8pe3JldHVybiB0LmNhbGwoZSxuLHIsbyl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiB0LmFwcGx5KGUsYXJndW1lbnRzKX19fSwiLzV6bSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPW4oImpyVXYiKSxpPU1hdGguY29zaCxhPU1hdGguYWJzLGM9TWF0aC5FO3Ioe3RhcmdldDoiTWF0aCIsc3RhdDohMCxmb3JjZWQ6IWl8fGkoNzEwKT09PTEvMH0se2Nvc2g6ZnVuY3Rpb24odCl7dmFyIGU9byhhKHQpLTEpKzE7cmV0dXJuKGUrMS8oZSpjKmMpKSooYy8yKX19KX0sIi9HcVUiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJSSzN0Iiksbz1uKCJIWUFGIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiByKG8odCkpfX0sIi9ieXQiOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPXtDU1NSdWxlTGlzdDowLENTU1N0eWxlRGVjbGFyYXRpb246MCxDU1NWYWx1ZUxpc3Q6MCxDbGllbnRSZWN0TGlzdDowLERPTVJlY3RMaXN0OjAsRE9NU3RyaW5nTGlzdDowLERPTVRva2VuTGlzdDoxLERhdGFUcmFuc2Zlckl0ZW1MaXN0OjAsRmlsZUxpc3Q6MCxIVE1MQWxsQ29sbGVjdGlvbjowLEhUTUxDb2xsZWN0aW9uOjAsSFRNTEZvcm1FbGVtZW50OjAsSFRNTFNlbGVjdEVsZW1lbnQ6MCxNZWRpYUxpc3Q6MCxNaW1lVHlwZUFycmF5OjAsTmFtZWROb2RlTWFwOjAsTm9kZUxpc3Q6MSxQYWludFJlcXVlc3RMaXN0OjAsUGx1Z2luOjAsUGx1Z2luQXJyYXk6MCxTVkdMZW5ndGhMaXN0OjAsU1ZHTnVtYmVyTGlzdDowLFNWR1BhdGhTZWdMaXN0OjAsU1ZHUG9pbnRMaXN0OjAsU1ZHU3RyaW5nTGlzdDowLFNWR1RyYW5zZm9ybUxpc3Q6MCxTb3VyY2VCdWZmZXJMaXN0OjAsU3R5bGVTaGVldExpc3Q6MCxUZXh0VHJhY2tDdWVMaXN0OjAsVGV4dFRyYWNrTGlzdDowLFRvdWNoTGlzdDowfX0sIi9xbW4iOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyb1JvIik7dC5leHBvcnRzPXIuUHJvbWlzZX0sIjA3ZDciOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJidXNFIiksbz1uKCJzRUZYIiksaT1PYmplY3QucHJvdG90eXBlO28hPT1pLnRvU3RyaW5nJiZyKGksInRvU3RyaW5nIixvLHt1bnNhZmU6ITB9KX0sIjBCSzIiOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPXt9fSwiMERreSI6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiEhdCgpfWNhdGNoKGUpe3JldHVybiEwfX19LCIwR2JZIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiUW85bCIpLG89bigiMm9SbyIpLGk9ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDp2b2lkIDB9O3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI/aShyW3RdKXx8aShvW3RdKTpyW3RdJiZyW3RdW2VdfHxvW3RdJiZvW3RdW2VdfX0sIjBUV3AiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJtclNHIikuX192YWx1ZXM7IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiOyFmdW5jdGlvbih0KXt2YXIgZT10LnBlcmZvcm1hbmNlO2Z1bmN0aW9uIG4odCl7ZSYmZS5tYXJrJiZlLm1hcmsodCl9ZnVuY3Rpb24gcih0LG4pe2UmJmUubWVhc3VyZSYmZS5tZWFzdXJlKHQsbil9bigiWm9uZSIpO3ZhciBvPSEwPT09dC5fX3pvbmVfc3ltYm9sX19mb3JjZUR1cGxpY2F0ZVpvbmVDaGVjaztpZih0LlpvbmUpe2lmKG98fCJmdW5jdGlvbiIhPXR5cGVvZiB0LlpvbmUuX19zeW1ib2xfXyl0aHJvdyBuZXcgRXJyb3IoIlpvbmUgYWxyZWFkeSBsb2FkZWQuIik7cmV0dXJuIHQuWm9uZX12YXIgaSxhPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LGUpe3RoaXMuX3BhcmVudD10LHRoaXMuX25hbWU9ZT9lLm5hbWV8fCJ1bm5hbWVkIjoiPHJvb3Q+Iix0aGlzLl9wcm9wZXJ0aWVzPWUmJmUucHJvcGVydGllc3x8e30sdGhpcy5fem9uZURlbGVnYXRlPW5ldyB1KHRoaXMsdGhpcy5fcGFyZW50JiZ0aGlzLl9wYXJlbnQuX3pvbmVEZWxlZ2F0ZSxlKX1yZXR1cm4gZS5hc3NlcnRab25lUGF0Y2hlZD1mdW5jdGlvbigpe2lmKHQuUHJvbWlzZSE9PVQuWm9uZUF3YXJlUHJvbWlzZSl0aHJvdyBuZXcgRXJyb3IoIlpvbmUuanMgaGFzIGRldGVjdGVkIHRoYXQgWm9uZUF3YXJlUHJvbWlzZSBgKHdpbmRvd3xnbG9iYWwpLlByb21pc2VgIGhhcyBiZWVuIG92ZXJ3cml0dGVuLlxuTW9zdCBsaWtlbHkgY2F1c2UgaXMgdGhhdCBhIFByb21pc2UgcG9seWZpbGwgaGFzIGJlZW4gbG9hZGVkIGFmdGVyIFpvbmUuanMgKFBvbHlmaWxsaW5nIFByb21pc2UgYXBpIGlzIG5vdCBuZWNlc3Nhcnkgd2hlbiB6b25lLmpzIGlzIGxvYWRlZC4gSWYgeW91IG11c3QgbG9hZCBvbmUsIGRvIHNvIGJlZm9yZSBsb2FkaW5nIHpvbmUuanMuKSIpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicm9vdCIse2dldDpmdW5jdGlvbigpe2Zvcih2YXIgdD1lLmN1cnJlbnQ7dC5wYXJlbnQ7KXQ9dC5wYXJlbnQ7cmV0dXJuIHR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImN1cnJlbnQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gai56b25lfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJjdXJyZW50VGFzayIse2dldDpmdW5jdGlvbigpe3JldHVybiBNfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUuX19sb2FkX3BhdGNoPWZ1bmN0aW9uKGksYSl7aWYoVC5oYXNPd25Qcm9wZXJ0eShpKSl7aWYobyl0aHJvdyBFcnJvcigiQWxyZWFkeSBsb2FkZWQgcGF0Y2g6ICIraSl9ZWxzZSBpZighdFsiX19ab25lX2Rpc2FibGVfIitpXSl7dmFyIGM9IlpvbmU6IitpO24oYyksVFtpXT1hKHQsZSxJKSxyKGMsYyl9fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInBhcmVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wYXJlbnR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJuYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25hbWV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ2V0Wm9uZVdpdGgodCk7aWYoZSlyZXR1cm4gZS5fcHJvcGVydGllc1t0XX0sZS5wcm90b3R5cGUuZ2V0Wm9uZVdpdGg9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXM7ZTspe2lmKGUuX3Byb3BlcnRpZXMuaGFzT3duUHJvcGVydHkodCkpcmV0dXJuIGU7ZT1lLl9wYXJlbnR9cmV0dXJuIG51bGx9LGUucHJvdG90eXBlLmZvcms9ZnVuY3Rpb24odCl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJab25lU3BlYyByZXF1aXJlZCEiKTtyZXR1cm4gdGhpcy5fem9uZURlbGVnYXRlLmZvcmsodGhpcyx0KX0sZS5wcm90b3R5cGUud3JhcD1mdW5jdGlvbih0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiRXhwZWN0aW5nIGZ1bmN0aW9uIGdvdDogIit0KTt2YXIgbj10aGlzLl96b25lRGVsZWdhdGUuaW50ZXJjZXB0KHRoaXMsdCxlKSxyPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHIucnVuR3VhcmRlZChuLHRoaXMsYXJndW1lbnRzLGUpfX0sZS5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKHQsZSxuLHIpe2o9e3BhcmVudDpqLHpvbmU6dGhpc307dHJ5e3JldHVybiB0aGlzLl96b25lRGVsZWdhdGUuaW52b2tlKHRoaXMsdCxlLG4scil9ZmluYWxseXtqPWoucGFyZW50fX0sZS5wcm90b3R5cGUucnVuR3VhcmRlZD1mdW5jdGlvbih0LGUsbixyKXt2b2lkIDA9PT1lJiYoZT1udWxsKSxqPXtwYXJlbnQ6aix6b25lOnRoaXN9O3RyeXt0cnl7cmV0dXJuIHRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnZva2UodGhpcyx0LGUsbixyKX1jYXRjaChvKXtpZih0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxvKSl0aHJvdyBvfX1maW5hbGx5e2o9ai5wYXJlbnR9fSxlLnByb3RvdHlwZS5ydW5UYXNrPWZ1bmN0aW9uKHQsZSxuKXtpZih0LnpvbmUhPXRoaXMpdGhyb3cgbmV3IEVycm9yKCJBIHRhc2sgY2FuIG9ubHkgYmUgcnVuIGluIHRoZSB6b25lIG9mIGNyZWF0aW9uISAoQ3JlYXRpb246ICIrKHQuem9uZXx8eSkubmFtZSsiOyBFeGVjdXRpb246ICIrdGhpcy5uYW1lKyIpIik7aWYodC5zdGF0ZSE9PWJ8fHQudHlwZSE9PU8mJnQudHlwZSE9PUUpe3ZhciByPXQuc3RhdGUhPV87ciYmdC5fdHJhbnNpdGlvblRvKF8sayksdC5ydW5Db3VudCsrO3ZhciBvPU07TT10LGo9e3BhcmVudDpqLHpvbmU6dGhpc307dHJ5e3QudHlwZT09RSYmdC5kYXRhJiYhdC5kYXRhLmlzUGVyaW9kaWMmJih0LmNhbmNlbEZuPXZvaWQgMCk7dHJ5e3JldHVybiB0aGlzLl96b25lRGVsZWdhdGUuaW52b2tlVGFzayh0aGlzLHQsZSxuKX1jYXRjaChpKXtpZih0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxpKSl0aHJvdyBpfX1maW5hbGx5e3Quc3RhdGUhPT1iJiZ0LnN0YXRlIT09eCYmKHQudHlwZT09T3x8dC5kYXRhJiZ0LmRhdGEuaXNQZXJpb2RpYz9yJiZ0Ll90cmFuc2l0aW9uVG8oayxfKToodC5ydW5Db3VudD0wLHRoaXMuX3VwZGF0ZVRhc2tDb3VudCh0LC0xKSxyJiZ0Ll90cmFuc2l0aW9uVG8oYixfLGIpKSksaj1qLnBhcmVudCxNPW99fX0sZS5wcm90b3R5cGUuc2NoZWR1bGVUYXNrPWZ1bmN0aW9uKHQpe2lmKHQuem9uZSYmdC56b25lIT09dGhpcylmb3IodmFyIGU9dGhpcztlOyl7aWYoZT09PXQuem9uZSl0aHJvdyBFcnJvcigiY2FuIG5vdCByZXNjaGVkdWxlIHRhc2sgdG8gIit0aGlzLm5hbWUrIiB3aGljaCBpcyBkZXNjZW5kYW50cyBvZiB0aGUgb3JpZ2luYWwgem9uZSAiK3Quem9uZS5uYW1lKTtlPWUucGFyZW50fXQuX3RyYW5zaXRpb25UbyhtLGIpO3ZhciBuPVtdO3QuX3pvbmVEZWxlZ2F0ZXM9bix0Ll96b25lPXRoaXM7dHJ5e3Q9dGhpcy5fem9uZURlbGVnYXRlLnNjaGVkdWxlVGFzayh0aGlzLHQpfWNhdGNoKHIpe3Rocm93IHQuX3RyYW5zaXRpb25Ubyh4LG0sYiksdGhpcy5fem9uZURlbGVnYXRlLmhhbmRsZUVycm9yKHRoaXMscikscn1yZXR1cm4gdC5fem9uZURlbGVnYXRlcz09PW4mJnRoaXMuX3VwZGF0ZVRhc2tDb3VudCh0LDEpLHQuc3RhdGU9PW0mJnQuX3RyYW5zaXRpb25UbyhrLG0pLHR9LGUucHJvdG90eXBlLnNjaGVkdWxlTWljcm9UYXNrPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB0aGlzLnNjaGVkdWxlVGFzayhuZXcgcyhTLHQsZSxuLHIsdm9pZCAwKSl9LGUucHJvdG90eXBlLnNjaGVkdWxlTWFjcm9UYXNrPWZ1bmN0aW9uKHQsZSxuLHIsbyl7cmV0dXJuIHRoaXMuc2NoZWR1bGVUYXNrKG5ldyBzKEUsdCxlLG4scixvKSl9LGUucHJvdG90eXBlLnNjaGVkdWxlRXZlbnRUYXNrPWZ1bmN0aW9uKHQsZSxuLHIsbyl7cmV0dXJuIHRoaXMuc2NoZWR1bGVUYXNrKG5ldyBzKE8sdCxlLG4scixvKSl9LGUucHJvdG90eXBlLmNhbmNlbFRhc2s9ZnVuY3Rpb24odCl7aWYodC56b25lIT10aGlzKXRocm93IG5ldyBFcnJvcigiQSB0YXNrIGNhbiBvbmx5IGJlIGNhbmNlbGxlZCBpbiB0aGUgem9uZSBvZiBjcmVhdGlvbiEgKENyZWF0aW9uOiAiKyh0LnpvbmV8fHkpLm5hbWUrIjsgRXhlY3V0aW9uOiAiK3RoaXMubmFtZSsiKSIpO3QuX3RyYW5zaXRpb25Ubyh3LGssXyk7dHJ5e3RoaXMuX3pvbmVEZWxlZ2F0ZS5jYW5jZWxUYXNrKHRoaXMsdCl9Y2F0Y2goZSl7dGhyb3cgdC5fdHJhbnNpdGlvblRvKHgsdyksdGhpcy5fem9uZURlbGVnYXRlLmhhbmRsZUVycm9yKHRoaXMsZSksZX1yZXR1cm4gdGhpcy5fdXBkYXRlVGFza0NvdW50KHQsLTEpLHQuX3RyYW5zaXRpb25UbyhiLHcpLHQucnVuQ291bnQ9MCx0fSxlLnByb3RvdHlwZS5fdXBkYXRlVGFza0NvdW50PWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5fem9uZURlbGVnYXRlczstMT09ZSYmKHQuX3pvbmVEZWxlZ2F0ZXM9bnVsbCk7Zm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspbltyXS5fdXBkYXRlVGFza0NvdW50KHQudHlwZSxlKX0sZS5fX3N5bWJvbF9fPVIsZX0oKSxjPXtuYW1lOiIiLG9uSGFzVGFzazpmdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdC5oYXNUYXNrKG4scil9LG9uU2NoZWR1bGVUYXNrOmZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB0LnNjaGVkdWxlVGFzayhuLHIpfSxvbkludm9rZVRhc2s6ZnVuY3Rpb24odCxlLG4scixvLGkpe3JldHVybiB0Lmludm9rZVRhc2sobixyLG8saSl9LG9uQ2FuY2VsVGFzazpmdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdC5jYW5jZWxUYXNrKG4scil9fSx1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbil7dGhpcy5fdGFza0NvdW50cz17bWljcm9UYXNrOjAsbWFjcm9UYXNrOjAsZXZlbnRUYXNrOjB9LHRoaXMuem9uZT10LHRoaXMuX3BhcmVudERlbGVnYXRlPWUsdGhpcy5fZm9ya1pTPW4mJihuJiZuLm9uRm9yaz9uOmUuX2ZvcmtaUyksdGhpcy5fZm9ya0RsZ3Q9biYmKG4ub25Gb3JrP2U6ZS5fZm9ya0RsZ3QpLHRoaXMuX2ZvcmtDdXJyWm9uZT1uJiYobi5vbkZvcms/dGhpcy56b25lOmUuem9uZSksdGhpcy5faW50ZXJjZXB0WlM9biYmKG4ub25JbnRlcmNlcHQ/bjplLl9pbnRlcmNlcHRaUyksdGhpcy5faW50ZXJjZXB0RGxndD1uJiYobi5vbkludGVyY2VwdD9lOmUuX2ludGVyY2VwdERsZ3QpLHRoaXMuX2ludGVyY2VwdEN1cnJab25lPW4mJihuLm9uSW50ZXJjZXB0P3RoaXMuem9uZTplLnpvbmUpLHRoaXMuX2ludm9rZVpTPW4mJihuLm9uSW52b2tlP246ZS5faW52b2tlWlMpLHRoaXMuX2ludm9rZURsZ3Q9biYmKG4ub25JbnZva2U/ZTplLl9pbnZva2VEbGd0KSx0aGlzLl9pbnZva2VDdXJyWm9uZT1uJiYobi5vbkludm9rZT90aGlzLnpvbmU6ZS56b25lKSx0aGlzLl9oYW5kbGVFcnJvclpTPW4mJihuLm9uSGFuZGxlRXJyb3I/bjplLl9oYW5kbGVFcnJvclpTKSx0aGlzLl9oYW5kbGVFcnJvckRsZ3Q9biYmKG4ub25IYW5kbGVFcnJvcj9lOmUuX2hhbmRsZUVycm9yRGxndCksdGhpcy5faGFuZGxlRXJyb3JDdXJyWm9uZT1uJiYobi5vbkhhbmRsZUVycm9yP3RoaXMuem9uZTplLnpvbmUpLHRoaXMuX3NjaGVkdWxlVGFza1pTPW4mJihuLm9uU2NoZWR1bGVUYXNrP246ZS5fc2NoZWR1bGVUYXNrWlMpLHRoaXMuX3NjaGVkdWxlVGFza0RsZ3Q9biYmKG4ub25TY2hlZHVsZVRhc2s/ZTplLl9zY2hlZHVsZVRhc2tEbGd0KSx0aGlzLl9zY2hlZHVsZVRhc2tDdXJyWm9uZT1uJiYobi5vblNjaGVkdWxlVGFzaz90aGlzLnpvbmU6ZS56b25lKSx0aGlzLl9pbnZva2VUYXNrWlM9biYmKG4ub25JbnZva2VUYXNrP246ZS5faW52b2tlVGFza1pTKSx0aGlzLl9pbnZva2VUYXNrRGxndD1uJiYobi5vbkludm9rZVRhc2s/ZTplLl9pbnZva2VUYXNrRGxndCksdGhpcy5faW52b2tlVGFza0N1cnJab25lPW4mJihuLm9uSW52b2tlVGFzaz90aGlzLnpvbmU6ZS56b25lKSx0aGlzLl9jYW5jZWxUYXNrWlM9biYmKG4ub25DYW5jZWxUYXNrP246ZS5fY2FuY2VsVGFza1pTKSx0aGlzLl9jYW5jZWxUYXNrRGxndD1uJiYobi5vbkNhbmNlbFRhc2s/ZTplLl9jYW5jZWxUYXNrRGxndCksdGhpcy5fY2FuY2VsVGFza0N1cnJab25lPW4mJihuLm9uQ2FuY2VsVGFzaz90aGlzLnpvbmU6ZS56b25lKSx0aGlzLl9oYXNUYXNrWlM9bnVsbCx0aGlzLl9oYXNUYXNrRGxndD1udWxsLHRoaXMuX2hhc1Rhc2tEbGd0T3duZXI9bnVsbCx0aGlzLl9oYXNUYXNrQ3VyclpvbmU9bnVsbDt2YXIgcj1uJiZuLm9uSGFzVGFzazsocnx8ZSYmZS5faGFzVGFza1pTKSYmKHRoaXMuX2hhc1Rhc2taUz1yP246Yyx0aGlzLl9oYXNUYXNrRGxndD1lLHRoaXMuX2hhc1Rhc2tEbGd0T3duZXI9dGhpcyx0aGlzLl9oYXNUYXNrQ3VyclpvbmU9dCxuLm9uU2NoZWR1bGVUYXNrfHwodGhpcy5fc2NoZWR1bGVUYXNrWlM9Yyx0aGlzLl9zY2hlZHVsZVRhc2tEbGd0PWUsdGhpcy5fc2NoZWR1bGVUYXNrQ3VyclpvbmU9dGhpcy56b25lKSxuLm9uSW52b2tlVGFza3x8KHRoaXMuX2ludm9rZVRhc2taUz1jLHRoaXMuX2ludm9rZVRhc2tEbGd0PWUsdGhpcy5faW52b2tlVGFza0N1cnJab25lPXRoaXMuem9uZSksbi5vbkNhbmNlbFRhc2t8fCh0aGlzLl9jYW5jZWxUYXNrWlM9Yyx0aGlzLl9jYW5jZWxUYXNrRGxndD1lLHRoaXMuX2NhbmNlbFRhc2tDdXJyWm9uZT10aGlzLnpvbmUpKX1yZXR1cm4gdC5wcm90b3R5cGUuZm9yaz1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9mb3JrWlM/dGhpcy5fZm9ya1pTLm9uRm9yayh0aGlzLl9mb3JrRGxndCx0aGlzLnpvbmUsdCxlKTpuZXcgYSh0LGUpfSx0LnByb3RvdHlwZS5pbnRlcmNlcHQ9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0aGlzLl9pbnRlcmNlcHRaUz90aGlzLl9pbnRlcmNlcHRaUy5vbkludGVyY2VwdCh0aGlzLl9pbnRlcmNlcHREbGd0LHRoaXMuX2ludGVyY2VwdEN1cnJab25lLHQsZSxuKTplfSx0LnByb3RvdHlwZS5pbnZva2U9ZnVuY3Rpb24odCxlLG4scixvKXtyZXR1cm4gdGhpcy5faW52b2tlWlM/dGhpcy5faW52b2tlWlMub25JbnZva2UodGhpcy5faW52b2tlRGxndCx0aGlzLl9pbnZva2VDdXJyWm9uZSx0LGUsbixyLG8pOmUuYXBwbHkobixyKX0sdC5wcm90b3R5cGUuaGFuZGxlRXJyb3I9ZnVuY3Rpb24odCxlKXtyZXR1cm4hdGhpcy5faGFuZGxlRXJyb3JaU3x8dGhpcy5faGFuZGxlRXJyb3JaUy5vbkhhbmRsZUVycm9yKHRoaXMuX2hhbmRsZUVycm9yRGxndCx0aGlzLl9oYW5kbGVFcnJvckN1cnJab25lLHQsZSl9LHQucHJvdG90eXBlLnNjaGVkdWxlVGFzaz1mdW5jdGlvbih0LGUpe3ZhciBuPWU7aWYodGhpcy5fc2NoZWR1bGVUYXNrWlMpdGhpcy5faGFzVGFza1pTJiZuLl96b25lRGVsZWdhdGVzLnB1c2godGhpcy5faGFzVGFza0RsZ3RPd25lciksKG49dGhpcy5fc2NoZWR1bGVUYXNrWlMub25TY2hlZHVsZVRhc2sodGhpcy5fc2NoZWR1bGVUYXNrRGxndCx0aGlzLl9zY2hlZHVsZVRhc2tDdXJyWm9uZSx0LGUpKXx8KG49ZSk7ZWxzZSBpZihlLnNjaGVkdWxlRm4pZS5zY2hlZHVsZUZuKGUpO2Vsc2V7aWYoZS50eXBlIT1TKXRocm93IG5ldyBFcnJvcigiVGFzayBpcyBtaXNzaW5nIHNjaGVkdWxlRm4uIik7ZChlKX1yZXR1cm4gbn0sdC5wcm90b3R5cGUuaW52b2tlVGFzaz1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdGhpcy5faW52b2tlVGFza1pTP3RoaXMuX2ludm9rZVRhc2taUy5vbkludm9rZVRhc2sodGhpcy5faW52b2tlVGFza0RsZ3QsdGhpcy5faW52b2tlVGFza0N1cnJab25lLHQsZSxuLHIpOmUuY2FsbGJhY2suYXBwbHkobixyKX0sdC5wcm90b3R5cGUuY2FuY2VsVGFzaz1mdW5jdGlvbih0LGUpe3ZhciBuO2lmKHRoaXMuX2NhbmNlbFRhc2taUyluPXRoaXMuX2NhbmNlbFRhc2taUy5vbkNhbmNlbFRhc2sodGhpcy5fY2FuY2VsVGFza0RsZ3QsdGhpcy5fY2FuY2VsVGFza0N1cnJab25lLHQsZSk7ZWxzZXtpZighZS5jYW5jZWxGbil0aHJvdyBFcnJvcigiVGFzayBpcyBub3QgY2FuY2VsYWJsZSIpO249ZS5jYW5jZWxGbihlKX1yZXR1cm4gbn0sdC5wcm90b3R5cGUuaGFzVGFzaz1mdW5jdGlvbih0LGUpe3RyeXt0aGlzLl9oYXNUYXNrWlMmJnRoaXMuX2hhc1Rhc2taUy5vbkhhc1Rhc2sodGhpcy5faGFzVGFza0RsZ3QsdGhpcy5faGFzVGFza0N1cnJab25lLHQsZSl9Y2F0Y2gobil7dGhpcy5oYW5kbGVFcnJvcih0LG4pfX0sdC5wcm90b3R5cGUuX3VwZGF0ZVRhc2tDb3VudD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX3Rhc2tDb3VudHMscj1uW3RdLG89blt0XT1yK2U7aWYobzwwKXRocm93IG5ldyBFcnJvcigiTW9yZSB0YXNrcyBleGVjdXRlZCB0aGVuIHdlcmUgc2NoZWR1bGVkLiIpOzAhPXImJjAhPW98fHRoaXMuaGFzVGFzayh0aGlzLnpvbmUse21pY3JvVGFzazpuLm1pY3JvVGFzaz4wLG1hY3JvVGFzazpuLm1hY3JvVGFzaz4wLGV2ZW50VGFzazpuLmV2ZW50VGFzaz4wLGNoYW5nZTp0fSl9LHR9KCkscz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUobixyLG8saSxhLGMpe3RoaXMuX3pvbmU9bnVsbCx0aGlzLnJ1bkNvdW50PTAsdGhpcy5fem9uZURlbGVnYXRlcz1udWxsLHRoaXMuX3N0YXRlPSJub3RTY2hlZHVsZWQiLHRoaXMudHlwZT1uLHRoaXMuc291cmNlPXIsdGhpcy5kYXRhPWksdGhpcy5zY2hlZHVsZUZuPWEsdGhpcy5jYW5jZWxGbj1jLHRoaXMuY2FsbGJhY2s9bzt2YXIgdT10aGlzO3RoaXMuaW52b2tlPW49PT1PJiZpJiZpLnVzZUc/ZS5pbnZva2VUYXNrOmZ1bmN0aW9uKCl7cmV0dXJuIGUuaW52b2tlVGFzay5jYWxsKHQsdSx0aGlzLGFyZ3VtZW50cyl9fXJldHVybiBlLmludm9rZVRhc2s9ZnVuY3Rpb24odCxlLG4pe3R8fCh0PXRoaXMpLFArKzt0cnl7cmV0dXJuIHQucnVuQ291bnQrKyx0LnpvbmUucnVuVGFzayh0LGUsbil9ZmluYWxseXsxPT1QJiZnKCksUC0tfX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ6b25lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3pvbmV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJzdGF0ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdGF0ZX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5jYW5jZWxTY2hlZHVsZVJlcXVlc3Q9ZnVuY3Rpb24oKXt0aGlzLl90cmFuc2l0aW9uVG8oYixtKX0sZS5wcm90b3R5cGUuX3RyYW5zaXRpb25Ubz1mdW5jdGlvbih0LGUsbil7aWYodGhpcy5fc3RhdGUhPT1lJiZ0aGlzLl9zdGF0ZSE9PW4pdGhyb3cgbmV3IEVycm9yKHRoaXMudHlwZSsiICciK3RoaXMuc291cmNlKyInOiBjYW4gbm90IHRyYW5zaXRpb24gdG8gJyIrdCsiJywgZXhwZWN0aW5nIHN0YXRlICciK2UrIiciKyhuPyIgb3IgJyIrbisiJyI6IiIpKyIsIHdhcyAnIit0aGlzLl9zdGF0ZSsiJy4iKTt0aGlzLl9zdGF0ZT10LHQ9PWImJih0aGlzLl96b25lRGVsZWdhdGVzPW51bGwpfSxlLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGEmJnZvaWQgMCE9PXRoaXMuZGF0YS5oYW5kbGVJZD90aGlzLmRhdGEuaGFuZGxlSWQudG9TdHJpbmcoKTpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGhpcyl9LGUucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnt0eXBlOnRoaXMudHlwZSxzdGF0ZTp0aGlzLnN0YXRlLHNvdXJjZTp0aGlzLnNvdXJjZSx6b25lOnRoaXMuem9uZS5uYW1lLHJ1bkNvdW50OnRoaXMucnVuQ291bnR9fSxlfSgpLGY9Uigic2V0VGltZW91dCIpLGw9UigiUHJvbWlzZSIpLHA9UigidGhlbiIpLGg9W10sdj0hMTtmdW5jdGlvbiBkKGUpe2lmKDA9PT1QJiYwPT09aC5sZW5ndGgpaWYoaXx8dFtsXSYmKGk9dFtsXS5yZXNvbHZlKDApKSxpKXt2YXIgbj1pW3BdO258fChuPWkudGhlbiksbi5jYWxsKGksZyl9ZWxzZSB0W2ZdKGcsMCk7ZSYmaC5wdXNoKGUpfWZ1bmN0aW9uIGcoKXtpZighdil7Zm9yKHY9ITA7aC5sZW5ndGg7KXt2YXIgdD1oO2g9W107Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciBuPXRbZV07dHJ5e24uem9uZS5ydW5UYXNrKG4sbnVsbCxudWxsKX1jYXRjaChyKXtJLm9uVW5oYW5kbGVkRXJyb3Iocil9fX1JLm1pY3JvdGFza0RyYWluRG9uZSgpLHY9ITF9fXZhciB5PXtuYW1lOiJOTyBaT05FIn0sYj0ibm90U2NoZWR1bGVkIixtPSJzY2hlZHVsaW5nIixrPSJzY2hlZHVsZWQiLF89InJ1bm5pbmciLHc9ImNhbmNlbGluZyIseD0idW5rbm93biIsUz0ibWljcm9UYXNrIixFPSJtYWNyb1Rhc2siLE89ImV2ZW50VGFzayIsVD17fSxJPXtzeW1ib2w6UixjdXJyZW50Wm9uZUZyYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIGp9LG9uVW5oYW5kbGVkRXJyb3I6RCxtaWNyb3Rhc2tEcmFpbkRvbmU6RCxzY2hlZHVsZU1pY3JvVGFzazpkLHNob3dVbmNhdWdodEVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIWFbUigiaWdub3JlQ29uc29sZUVycm9yVW5jYXVnaHRFcnJvciIpXX0scGF0Y2hFdmVudFRhcmdldDpmdW5jdGlvbigpe3JldHVybltdfSxwYXRjaE9uUHJvcGVydGllczpELHBhdGNoTWV0aG9kOmZ1bmN0aW9uKCl7cmV0dXJuIER9LGJpbmRBcmd1bWVudHM6ZnVuY3Rpb24oKXtyZXR1cm5bXX0scGF0Y2hUaGVuOmZ1bmN0aW9uKCl7cmV0dXJuIER9LHBhdGNoTWFjcm9UYXNrOmZ1bmN0aW9uKCl7cmV0dXJuIER9LHNldE5hdGl2ZVByb21pc2U6ZnVuY3Rpb24odCl7dCYmImZ1bmN0aW9uIj09dHlwZW9mIHQucmVzb2x2ZSYmKGk9dC5yZXNvbHZlKDApKX0scGF0Y2hFdmVudFByb3RvdHlwZTpmdW5jdGlvbigpe3JldHVybiBEfSxpc0lFT3JFZGdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9LGdldEdsb2JhbE9iamVjdHM6ZnVuY3Rpb24oKXt9LE9iamVjdERlZmluZVByb3BlcnR5OmZ1bmN0aW9uKCl7cmV0dXJuIER9LE9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcjpmdW5jdGlvbigpe30sT2JqZWN0Q3JlYXRlOmZ1bmN0aW9uKCl7fSxBcnJheVNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuW119LHBhdGNoQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm4gRH0sd3JhcFdpdGhDdXJyZW50Wm9uZTpmdW5jdGlvbigpe3JldHVybiBEfSxmaWx0ZXJQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7cmV0dXJuW119LGF0dGFjaE9yaWdpblRvUGF0Y2hlZDpmdW5jdGlvbigpe3JldHVybiBEfSxfcmVkZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbigpe3JldHVybiBEfSxwYXRjaENhbGxiYWNrczpmdW5jdGlvbigpe3JldHVybiBEfX0saj17cGFyZW50Om51bGwsem9uZTpuZXcgYShudWxsLG51bGwpfSxNPW51bGwsUD0wO2Z1bmN0aW9uIEQoKXt9ZnVuY3Rpb24gUih0KXtyZXR1cm4iX196b25lX3N5bWJvbF9fIit0fXIoIlpvbmUiLCJab25lIiksdC5ab25lPWF9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3d8fCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZnx8Z2xvYmFsKSxab25lLl9fbG9hZF9wYXRjaCgiWm9uZUF3YXJlUHJvbWlzZSIsKGZ1bmN0aW9uKHQsZSxuKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGk9T2JqZWN0LmRlZmluZVByb3BlcnR5LGE9bi5zeW1ib2wsYz1bXSx1PWEoIlByb21pc2UiKSxzPWEoInRoZW4iKSxmPSJfX2NyZWF0aW9uVHJhY2VfXyI7bi5vblVuaGFuZGxlZEVycm9yPWZ1bmN0aW9uKHQpe2lmKG4uc2hvd1VuY2F1Z2h0RXJyb3IoKSl7dmFyIGU9dCYmdC5yZWplY3Rpb247ZT9jb25zb2xlLmVycm9yKCJVbmhhbmRsZWQgUHJvbWlzZSByZWplY3Rpb246IixlIGluc3RhbmNlb2YgRXJyb3I/ZS5tZXNzYWdlOmUsIjsgWm9uZToiLHQuem9uZS5uYW1lLCI7IFRhc2s6Iix0LnRhc2smJnQudGFzay5zb3VyY2UsIjsgVmFsdWU6IixlLGUgaW5zdGFuY2VvZiBFcnJvcj9lLnN0YWNrOnZvaWQgMCk6Y29uc29sZS5lcnJvcih0KX19LG4ubWljcm90YXNrRHJhaW5Eb25lPWZ1bmN0aW9uKCl7Zm9yKDtjLmxlbmd0aDspZm9yKHZhciB0PWZ1bmN0aW9uKCl7dmFyIHQ9Yy5zaGlmdCgpO3RyeXt0LnpvbmUucnVuR3VhcmRlZCgoZnVuY3Rpb24oKXt0aHJvdyB0fSkpfWNhdGNoKGUpe3AoZSl9fTtjLmxlbmd0aDspdCgpfTt2YXIgbD1hKCJ1bmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uSGFuZGxlciIpO2Z1bmN0aW9uIHAodCl7bi5vblVuaGFuZGxlZEVycm9yKHQpO3RyeXt2YXIgcj1lW2xdO3ImJiJmdW5jdGlvbiI9PXR5cGVvZiByJiZyLmNhbGwodGhpcyx0KX1jYXRjaChvKXt9fWZ1bmN0aW9uIGgodCl7cmV0dXJuIHQmJnQudGhlbn1mdW5jdGlvbiB2KHQpe3JldHVybiB0fWZ1bmN0aW9uIGQodCl7cmV0dXJuIE4ucmVqZWN0KHQpfXZhciBnPWEoInN0YXRlIikseT1hKCJ2YWx1ZSIpLGI9YSgiZmluYWxseSIpLG09YSgicGFyZW50UHJvbWlzZVZhbHVlIiksaz1hKCJwYXJlbnRQcm9taXNlU3RhdGUiKSxfPSJQcm9taXNlLnRoZW4iLHc9bnVsbCx4PSEwLFM9ITEsRT0wO2Z1bmN0aW9uIE8odCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dHJ5e00odCxlLG4pfWNhdGNoKHIpe00odCwhMSxyKX19fXZhciBUPWZ1bmN0aW9uKCl7dmFyIHQ9ITE7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3R8fCh0PSEwLGUuYXBwbHkobnVsbCxhcmd1bWVudHMpKX19fSxJPSJQcm9taXNlIHJlc29sdmVkIHdpdGggaXRzZWxmIixqPWEoImN1cnJlbnRUYXNrVHJhY2UiKTtmdW5jdGlvbiBNKHQscixvKXt2YXIgYSx1PVQoKTtpZih0PT09byl0aHJvdyBuZXcgVHlwZUVycm9yKEkpO2lmKHRbZ109PT13KXt2YXIgcz1udWxsO3RyeXsib2JqZWN0IiE9dHlwZW9mIG8mJiJmdW5jdGlvbiIhPXR5cGVvZiBvfHwocz1vJiZvLnRoZW4pfWNhdGNoKGQpe3JldHVybiB1KChmdW5jdGlvbigpe00odCwhMSxkKX0pKSgpLHR9aWYociE9PVMmJm8gaW5zdGFuY2VvZiBOJiZvLmhhc093blByb3BlcnR5KGcpJiZvLmhhc093blByb3BlcnR5KHkpJiZvW2ddIT09dylEKG8pLE0odCxvW2ddLG9beV0pO2Vsc2UgaWYociE9PVMmJiJmdW5jdGlvbiI9PXR5cGVvZiBzKXRyeXtzLmNhbGwobyx1KE8odCxyKSksdShPKHQsITEpKSl9Y2F0Y2goZCl7dSgoZnVuY3Rpb24oKXtNKHQsITEsZCl9KSkoKX1lbHNle3RbZ109cjt2YXIgbD10W3ldO2lmKHRbeV09byx0W2JdPT09YiYmcj09PXgmJih0W2ddPXRba10sdFt5XT10W21dKSxyPT09UyYmbyBpbnN0YW5jZW9mIEVycm9yKXt2YXIgcD1lLmN1cnJlbnRUYXNrJiZlLmN1cnJlbnRUYXNrLmRhdGEmJmUuY3VycmVudFRhc2suZGF0YVtmXTtwJiZpKG8saix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsdmFsdWU6cH0pfWZvcih2YXIgaD0wO2g8bC5sZW5ndGg7KVIodCxsW2grK10sbFtoKytdLGxbaCsrXSxsW2grK10pO2lmKDA9PWwubGVuZ3RoJiZyPT1TKXt0W2ddPUU7dHJ5e3Rocm93IG5ldyBFcnJvcigiVW5jYXVnaHQgKGluIHByb21pc2UpOiAiKygoYT1vKSYmYS50b1N0cmluZz09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc/KGEuY29uc3RydWN0b3ImJmEuY29uc3RydWN0b3IubmFtZXx8IiIpKyI6ICIrSlNPTi5zdHJpbmdpZnkoYSk6YT9hLnRvU3RyaW5nKCk6T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpKSsobyYmby5zdGFjaz8iXG4iK28uc3RhY2s6IiIpKX1jYXRjaChkKXt2YXIgdj1kO3YucmVqZWN0aW9uPW8sdi5wcm9taXNlPXQsdi56b25lPWUuY3VycmVudCx2LnRhc2s9ZS5jdXJyZW50VGFzayxjLnB1c2godiksbi5zY2hlZHVsZU1pY3JvVGFzaygpfX19fXJldHVybiB0fXZhciBQPWEoInJlamVjdGlvbkhhbmRsZWRIYW5kbGVyIik7ZnVuY3Rpb24gRCh0KXtpZih0W2ddPT09RSl7dHJ5e3ZhciBuPWVbUF07biYmImZ1bmN0aW9uIj09dHlwZW9mIG4mJm4uY2FsbCh0aGlzLHtyZWplY3Rpb246dFt5XSxwcm9taXNlOnR9KX1jYXRjaChvKXt9dFtnXT1TO2Zvcih2YXIgcj0wO3I8Yy5sZW5ndGg7cisrKXQ9PT1jW3JdLnByb21pc2UmJmMuc3BsaWNlKHIsMSl9fWZ1bmN0aW9uIFIodCxlLG4scixvKXtEKHQpO3ZhciBpPXRbZ10sYT1pPyJmdW5jdGlvbiI9PXR5cGVvZiByP3I6djoiZnVuY3Rpb24iPT10eXBlb2Ygbz9vOmQ7ZS5zY2hlZHVsZU1pY3JvVGFzayhfLChmdW5jdGlvbigpe3RyeXt2YXIgcj10W3ldLG89biYmYj09PW5bYl07byYmKG5bbV09cixuW2tdPWkpO3ZhciBjPWUucnVuKGEsdm9pZCAwLG8mJmEhPT1kJiZhIT09dj9bXTpbcl0pO00obiwhMCxjKX1jYXRjaCh1KXtNKG4sITEsdSl9fSksbil9dmFyIE49ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBFcnJvcigiTXVzdCBiZSBhbiBpbnN0YW5jZW9mIFByb21pc2UuIik7dGhpc1tnXT13LHRoaXNbeV09W107dHJ5e2UmJmUoTyh0aGlzLHgpLE8odGhpcyxTKSl9Y2F0Y2gobil7TSh0aGlzLCExLG4pfX1yZXR1cm4gdC50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJmdW5jdGlvbiBab25lQXdhcmVQcm9taXNlKCkgeyBbbmF0aXZlIGNvZGVdIH0ifSx0LnJlc29sdmU9ZnVuY3Rpb24odCl7cmV0dXJuIE0obmV3IHRoaXMobnVsbCkseCx0KX0sdC5yZWplY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIE0obmV3IHRoaXMobnVsbCksUyx0KX0sdC5yYWNlPWZ1bmN0aW9uKHQpe3ZhciBlLG4sbyxpLGE9bmV3IHRoaXMoKGZ1bmN0aW9uKHQsZSl7bz10LGk9ZX0pKTtmdW5jdGlvbiBjKHQpe28odCl9ZnVuY3Rpb24gdSh0KXtpKHQpfXRyeXtmb3IodmFyIHM9cih0KSxmPXMubmV4dCgpOyFmLmRvbmU7Zj1zLm5leHQoKSl7dmFyIGw9Zi52YWx1ZTtoKGwpfHwobD10aGlzLnJlc29sdmUobCkpLGwudGhlbihjLHUpfX1jYXRjaChwKXtlPXtlcnJvcjpwfX1maW5hbGx5e3RyeXtmJiYhZi5kb25lJiYobj1zLnJldHVybikmJm4uY2FsbChzKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19cmV0dXJuIGF9LHQuYWxsPWZ1bmN0aW9uKHQpe3ZhciBlLG4sbyxpLGE9bmV3IHRoaXMoKGZ1bmN0aW9uKHQsZSl7bz10LGk9ZX0pKSxjPTIsdT0wLHM9W10sZj1mdW5jdGlvbih0KXtoKHQpfHwodD1sLnJlc29sdmUodCkpO3ZhciBlPXU7dC50aGVuKChmdW5jdGlvbih0KXtzW2VdPXQsMD09LS1jJiZvKHMpfSksaSksYysrLHUrK30sbD10aGlzO3RyeXtmb3IodmFyIHA9cih0KSx2PXAubmV4dCgpOyF2LmRvbmU7dj1wLm5leHQoKSlmKHYudmFsdWUpfWNhdGNoKGQpe2U9e2Vycm9yOmR9fWZpbmFsbHl7dHJ5e3YmJiF2LmRvbmUmJihuPXAucmV0dXJuKSYmbi5jYWxsKHApfWZpbmFsbHl7aWYoZSl0aHJvdyBlLmVycm9yfX1yZXR1cm4gMD09KGMtPTIpJiZvKHMpLGF9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxTeW1ib2wudG9TdHJpbmdUYWcse2dldDpmdW5jdGlvbigpe3JldHVybiJQcm9taXNlIn0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKHQsbil7dmFyIHI9bmV3IHRoaXMuY29uc3RydWN0b3IobnVsbCksbz1lLmN1cnJlbnQ7cmV0dXJuIHRoaXNbZ109PXc/dGhpc1t5XS5wdXNoKG8scix0LG4pOlIodGhpcyxvLHIsdCxuKSxyfSx0LnByb3RvdHlwZS5jYXRjaD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50aGVuKG51bGwsdCl9LHQucHJvdG90eXBlLmZpbmFsbHk9ZnVuY3Rpb24odCl7dmFyIG49bmV3IHRoaXMuY29uc3RydWN0b3IobnVsbCk7bltiXT1iO3ZhciByPWUuY3VycmVudDtyZXR1cm4gdGhpc1tnXT09dz90aGlzW3ldLnB1c2gocixuLHQsdCk6Uih0aGlzLHIsbix0LHQpLG59LHR9KCk7Ti5yZXNvbHZlPU4ucmVzb2x2ZSxOLnJlamVjdD1OLnJlamVjdCxOLnJhY2U9Ti5yYWNlLE4uYWxsPU4uYWxsO3ZhciBBPXRbdV09dC5Qcm9taXNlLEw9ZS5fX3N5bWJvbF9fKCJab25lQXdhcmVQcm9taXNlIiksRj1vKHQsIlByb21pc2UiKTtGJiYhRi5jb25maWd1cmFibGV8fChGJiZkZWxldGUgRi53cml0YWJsZSxGJiZkZWxldGUgRi52YWx1ZSxGfHwoRj17Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITB9KSxGLmdldD1mdW5jdGlvbigpe3JldHVybiB0W0xdP3RbTF06dFt1XX0sRi5zZXQ9ZnVuY3Rpb24oZSl7ZT09PU4/dFtMXT1lOih0W3VdPWUsZS5wcm90b3R5cGVbc118fEMoZSksbi5zZXROYXRpdmVQcm9taXNlKGUpKX0saSh0LCJQcm9taXNlIixGKSksdC5Qcm9taXNlPU47dmFyIHosWj1hKCJ0aGVuUGF0Y2hlZCIpO2Z1bmN0aW9uIEModCl7dmFyIGU9dC5wcm90b3R5cGUsbj1vKGUsInRoZW4iKTtpZighbnx8ITEhPT1uLndyaXRhYmxlJiZuLmNvbmZpZ3VyYWJsZSl7dmFyIHI9ZS50aGVuO2Vbc109cix0LnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztyZXR1cm4gbmV3IE4oKGZ1bmN0aW9uKHQsZSl7ci5jYWxsKG4sdCxlKX0pKS50aGVuKHQsZSl9LHRbWl09ITB9fWlmKG4ucGF0Y2hUaGVuPUMsQSl7QyhBKTt2YXIgVz10LmZldGNoOyJmdW5jdGlvbiI9PXR5cGVvZiBXJiYodFtuLnN5bWJvbCgiZmV0Y2giKV09Vyx0LmZldGNoPSh6PVcsZnVuY3Rpb24oKXt2YXIgdD16LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZih0IGluc3RhbmNlb2YgTilyZXR1cm4gdDt2YXIgZT10LmNvbnN0cnVjdG9yO3JldHVybiBlW1pdfHxDKGUpLHR9KSl9cmV0dXJuIFByb21pc2VbZS5fX3N5bWJvbF9fKCJ1bmNhdWdodFByb21pc2VFcnJvcnMiKV09YyxOfSkpO3ZhciB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsZT1PYmplY3QuZGVmaW5lUHJvcGVydHksbj1PYmplY3QuZ2V0UHJvdG90eXBlT2Ysbz1PYmplY3QuY3JlYXRlLGk9QXJyYXkucHJvdG90eXBlLnNsaWNlLGE9ImFkZEV2ZW50TGlzdGVuZXIiLGM9InJlbW92ZUV2ZW50TGlzdGVuZXIiLHU9Wm9uZS5fX3N5bWJvbF9fKGEpLHM9Wm9uZS5fX3N5bWJvbF9fKGMpLGY9InRydWUiLGw9ImZhbHNlIixwPSJfX3pvbmVfc3ltYm9sX18iO2Z1bmN0aW9uIGgodCxlKXtyZXR1cm4gWm9uZS5jdXJyZW50LndyYXAodCxlKX1mdW5jdGlvbiB2KHQsZSxuLHIsbyl7cmV0dXJuIFpvbmUuY3VycmVudC5zY2hlZHVsZU1hY3JvVGFzayh0LGUsbixyLG8pfXZhciBkPVpvbmUuX19zeW1ib2xfXyxnPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LHk9Zz93aW5kb3c6dm9pZCAwLGI9ZyYmeXx8Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmfHxnbG9iYWwsbT0icmVtb3ZlQXR0cmlidXRlIixrPVtudWxsXTtmdW5jdGlvbiBfKHQsZSl7Zm9yKHZhciBuPXQubGVuZ3RoLTE7bj49MDtuLS0pImZ1bmN0aW9uIj09dHlwZW9mIHRbbl0mJih0W25dPWgodFtuXSxlKyJfIituKSk7cmV0dXJuIHR9ZnVuY3Rpb24gdyh0KXtyZXR1cm4hdHx8ITEhPT10LndyaXRhYmxlJiYhKCJmdW5jdGlvbiI9PXR5cGVvZiB0LmdldCYmdm9pZCAwPT09dC5zZXQpfXZhciB4PSJ1bmRlZmluZWQiIT10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSxTPSEoIm53ImluIGIpJiZ2b2lkIDAhPQ=="
}

Changelog:

{
    "2019.12.04 14:00": "base64:KHdpbmRvdy53ZWJwYWNrSnNvbnA9d2luZG93LndlYnBhY2tKc29ucHx8W10pLnB1c2goW1szXSx7Iisyb1AiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiaGgxdiIpLGk9bigiNkxXQSIpLGE9bigiSTh2aCIpLGM9bigiVU1TUSIpLHU9bigiL0dxVSIpLHM9bigiaEJqTiIpLGY9bigiSGQ1ZiIpLGw9bigidGlLcCIpKCJzcGVjaWVzIikscD1bXS5zbGljZSxoPU1hdGgubWF4O3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohZigic2xpY2UiKX0se3NsaWNlOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixmLHY9dSh0aGlzKSxkPWModi5sZW5ndGgpLGc9YSh0LGQpLHk9YSh2b2lkIDA9PT1lP2Q6ZSxkKTtpZihpKHYpJiYoImZ1bmN0aW9uIiE9dHlwZW9mKG49di5jb25zdHJ1Y3Rvcil8fG4hPT1BcnJheSYmIWkobi5wcm90b3R5cGUpP28obikmJm51bGw9PT0obj1uW2xdKSYmKG49dm9pZCAwKTpuPXZvaWQgMCxuPT09QXJyYXl8fHZvaWQgMD09PW4pKXJldHVybiBwLmNhbGwodixnLHkpO2ZvcihyPW5ldyh2b2lkIDA9PT1uP0FycmF5Om4pKGgoeS1nLDApKSxmPTA7Zzx5O2crKyxmKyspZyBpbiB2JiZzKHIsZix2W2ddKTtyZXR1cm4gci5sZW5ndGg9ZixyfX0pfSwiK01MeCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkhBdU0iKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4pe2lmKHIodCksdm9pZCAwPT09ZSlyZXR1cm4gdDtzd2l0Y2gobil7Y2FzZSAwOnJldHVybiBmdW5jdGlvbigpe3JldHVybiB0LmNhbGwoZSl9O2Nhc2UgMTpyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQuY2FsbChlLG4pfTtjYXNlIDI6cmV0dXJuIGZ1bmN0aW9uKG4scil7cmV0dXJuIHQuY2FsbChlLG4scil9O2Nhc2UgMzpyZXR1cm4gZnVuY3Rpb24obixyLG8pe3JldHVybiB0LmNhbGwoZSxuLHIsbyl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiB0LmFwcGx5KGUsYXJndW1lbnRzKX19fSwiLzV6bSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPW4oImpyVXYiKSxpPU1hdGguY29zaCxhPU1hdGguYWJzLGM9TWF0aC5FO3Ioe3RhcmdldDoiTWF0aCIsc3RhdDohMCxmb3JjZWQ6IWl8fGkoNzEwKT09PTEvMH0se2Nvc2g6ZnVuY3Rpb24odCl7dmFyIGU9byhhKHQpLTEpKzE7cmV0dXJuKGUrMS8oZSpjKmMpKSooYy8yKX19KX0sIi9HcVUiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJSSzN0Iiksbz1uKCJIWUFGIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiByKG8odCkpfX0sIi9ieXQiOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPXtDU1NSdWxlTGlzdDowLENTU1N0eWxlRGVjbGFyYXRpb246MCxDU1NWYWx1ZUxpc3Q6MCxDbGllbnRSZWN0TGlzdDowLERPTVJlY3RMaXN0OjAsRE9NU3RyaW5nTGlzdDowLERPTVRva2VuTGlzdDoxLERhdGFUcmFuc2Zlckl0ZW1MaXN0OjAsRmlsZUxpc3Q6MCxIVE1MQWxsQ29sbGVjdGlvbjowLEhUTUxDb2xsZWN0aW9uOjAsSFRNTEZvcm1FbGVtZW50OjAsSFRNTFNlbGVjdEVsZW1lbnQ6MCxNZWRpYUxpc3Q6MCxNaW1lVHlwZUFycmF5OjAsTmFtZWROb2RlTWFwOjAsTm9kZUxpc3Q6MSxQYWludFJlcXVlc3RMaXN0OjAsUGx1Z2luOjAsUGx1Z2luQXJyYXk6MCxTVkdMZW5ndGhMaXN0OjAsU1ZHTnVtYmVyTGlzdDowLFNWR1BhdGhTZWdMaXN0OjAsU1ZHUG9pbnRMaXN0OjAsU1ZHU3RyaW5nTGlzdDowLFNWR1RyYW5zZm9ybUxpc3Q6MCxTb3VyY2VCdWZmZXJMaXN0OjAsU3R5bGVTaGVldExpc3Q6MCxUZXh0VHJhY2tDdWVMaXN0OjAsVGV4dFRyYWNrTGlzdDowLFRvdWNoTGlzdDowfX0sIi9xbW4iOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyb1JvIik7dC5leHBvcnRzPXIuUHJvbWlzZX0sIjA3ZDciOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJidXNFIiksbz1uKCJzRUZYIiksaT1PYmplY3QucHJvdG90eXBlO28hPT1pLnRvU3RyaW5nJiZyKGksInRvU3RyaW5nIixvLHt1bnNhZmU6ITB9KX0sIjBCSzIiOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPXt9fSwiMERreSI6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiEhdCgpfWNhdGNoKGUpe3JldHVybiEwfX19LCIwR2JZIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiUW85bCIpLG89bigiMm9SbyIpLGk9ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDp2b2lkIDB9O3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI/aShyW3RdKXx8aShvW3RdKTpyW3RdJiZyW3RdW2VdfHxvW3RdJiZvW3RdW2VdfX0sIjBUV3AiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJtclNHIikuX192YWx1ZXM7IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiOyFmdW5jdGlvbih0KXt2YXIgZT10LnBlcmZvcm1hbmNlO2Z1bmN0aW9uIG4odCl7ZSYmZS5tYXJrJiZlLm1hcmsodCl9ZnVuY3Rpb24gcih0LG4pe2UmJmUubWVhc3VyZSYmZS5tZWFzdXJlKHQsbil9bigiWm9uZSIpO3ZhciBvPSEwPT09dC5fX3pvbmVfc3ltYm9sX19mb3JjZUR1cGxpY2F0ZVpvbmVDaGVjaztpZih0LlpvbmUpe2lmKG98fCJmdW5jdGlvbiIhPXR5cGVvZiB0LlpvbmUuX19zeW1ib2xfXyl0aHJvdyBuZXcgRXJyb3IoIlpvbmUgYWxyZWFkeSBsb2FkZWQuIik7cmV0dXJuIHQuWm9uZX12YXIgaSxhPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LGUpe3RoaXMuX3BhcmVudD10LHRoaXMuX25hbWU9ZT9lLm5hbWV8fCJ1bm5hbWVkIjoiPHJvb3Q+Iix0aGlzLl9wcm9wZXJ0aWVzPWUmJmUucHJvcGVydGllc3x8e30sdGhpcy5fem9uZURlbGVnYXRlPW5ldyB1KHRoaXMsdGhpcy5fcGFyZW50JiZ0aGlzLl9wYXJlbnQuX3pvbmVEZWxlZ2F0ZSxlKX1yZXR1cm4gZS5hc3NlcnRab25lUGF0Y2hlZD1mdW5jdGlvbigpe2lmKHQuUHJvbWlzZSE9PVQuWm9uZUF3YXJlUHJvbWlzZSl0aHJvdyBuZXcgRXJyb3IoIlpvbmUuanMgaGFzIGRldGVjdGVkIHRoYXQgWm9uZUF3YXJlUHJvbWlzZSBgKHdpbmRvd3xnbG9iYWwpLlByb21pc2VgIGhhcyBiZWVuIG92ZXJ3cml0dGVuLlxuTW9zdCBsaWtlbHkgY2F1c2UgaXMgdGhhdCBhIFByb21pc2UgcG9seWZpbGwgaGFzIGJlZW4gbG9hZGVkIGFmdGVyIFpvbmUuanMgKFBvbHlmaWxsaW5nIFByb21pc2UgYXBpIGlzIG5vdCBuZWNlc3Nhcnkgd2hlbiB6b25lLmpzIGlzIGxvYWRlZC4gSWYgeW91IG11c3QgbG9hZCBvbmUsIGRvIHNvIGJlZm9yZSBsb2FkaW5nIHpvbmUuanMuKSIpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicm9vdCIse2dldDpmdW5jdGlvbigpe2Zvcih2YXIgdD1lLmN1cnJlbnQ7dC5wYXJlbnQ7KXQ9dC5wYXJlbnQ7cmV0dXJuIHR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImN1cnJlbnQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gai56b25lfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJjdXJyZW50VGFzayIse2dldDpmdW5jdGlvbigpe3JldHVybiBNfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUuX19sb2FkX3BhdGNoPWZ1bmN0aW9uKGksYSl7aWYoVC5oYXNPd25Qcm9wZXJ0eShpKSl7aWYobyl0aHJvdyBFcnJvcigiQWxyZWFkeSBsb2FkZWQgcGF0Y2g6ICIraSl9ZWxzZSBpZighdFsiX19ab25lX2Rpc2FibGVfIitpXSl7dmFyIGM9IlpvbmU6IitpO24oYyksVFtpXT1hKHQsZSxJKSxyKGMsYyl9fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInBhcmVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wYXJlbnR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJuYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25hbWV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ2V0Wm9uZVdpdGgodCk7aWYoZSlyZXR1cm4gZS5fcHJvcGVydGllc1t0XX0sZS5wcm90b3R5cGUuZ2V0Wm9uZVdpdGg9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXM7ZTspe2lmKGUuX3Byb3BlcnRpZXMuaGFzT3duUHJvcGVydHkodCkpcmV0dXJuIGU7ZT1lLl9wYXJlbnR9cmV0dXJuIG51bGx9LGUucHJvdG90eXBlLmZvcms9ZnVuY3Rpb24odCl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJab25lU3BlYyByZXF1aXJlZCEiKTtyZXR1cm4gdGhpcy5fem9uZURlbGVnYXRlLmZvcmsodGhpcyx0KX0sZS5wcm90b3R5cGUud3JhcD1mdW5jdGlvbih0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiRXhwZWN0aW5nIGZ1bmN0aW9uIGdvdDogIit0KTt2YXIgbj10aGlzLl96b25lRGVsZWdhdGUuaW50ZXJjZXB0KHRoaXMsdCxlKSxyPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHIucnVuR3VhcmRlZChuLHRoaXMsYXJndW1lbnRzLGUpfX0sZS5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKHQsZSxuLHIpe2o9e3BhcmVudDpqLHpvbmU6dGhpc307dHJ5e3JldHVybiB0aGlzLl96b25lRGVsZWdhdGUuaW52b2tlKHRoaXMsdCxlLG4scil9ZmluYWxseXtqPWoucGFyZW50fX0sZS5wcm90b3R5cGUucnVuR3VhcmRlZD1mdW5jdGlvbih0LGUsbixyKXt2b2lkIDA9PT1lJiYoZT1udWxsKSxqPXtwYXJlbnQ6aix6b25lOnRoaXN9O3RyeXt0cnl7cmV0dXJuIHRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnZva2UodGhpcyx0LGUsbixyKX1jYXRjaChvKXtpZih0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxvKSl0aHJvdyBvfX1maW5hbGx5e2o9ai5wYXJlbnR9fSxlLnByb3RvdHlwZS5ydW5UYXNrPWZ1bmN0aW9uKHQsZSxuKXtpZih0LnpvbmUhPXRoaXMpdGhyb3cgbmV3IEVycm9yKCJBIHRhc2sgY2FuIG9ubHkgYmUgcnVuIGluIHRoZSB6b25lIG9mIGNyZWF0aW9uISAoQ3JlYXRpb246ICIrKHQuem9uZXx8eSkubmFtZSsiOyBFeGVjdXRpb246ICIrdGhpcy5uYW1lKyIpIik7aWYodC5zdGF0ZSE9PWJ8fHQudHlwZSE9PU8mJnQudHlwZSE9PUUpe3ZhciByPXQuc3RhdGUhPV87ciYmdC5fdHJhbnNpdGlvblRvKF8sayksdC5ydW5Db3VudCsrO3ZhciBvPU07TT10LGo9e3BhcmVudDpqLHpvbmU6dGhpc307dHJ5e3QudHlwZT09RSYmdC5kYXRhJiYhdC5kYXRhLmlzUGVyaW9kaWMmJih0LmNhbmNlbEZuPXZvaWQgMCk7dHJ5e3JldHVybiB0aGlzLl96b25lRGVsZWdhdGUuaW52b2tlVGFzayh0aGlzLHQsZSxuKX1jYXRjaChpKXtpZih0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxpKSl0aHJvdyBpfX1maW5hbGx5e3Quc3RhdGUhPT1iJiZ0LnN0YXRlIT09eCYmKHQudHlwZT09T3x8dC5kYXRhJiZ0LmRhdGEuaXNQZXJpb2RpYz9yJiZ0Ll90cmFuc2l0aW9uVG8oayxfKToodC5ydW5Db3VudD0wLHRoaXMuX3VwZGF0ZVRhc2tDb3VudCh0LC0xKSxyJiZ0Ll90cmFuc2l0aW9uVG8oYixfLGIpKSksaj1qLnBhcmVudCxNPW99fX0sZS5wcm90b3R5cGUuc2NoZWR1bGVUYXNrPWZ1bmN0aW9uKHQpe2lmKHQuem9uZSYmdC56b25lIT09dGhpcylmb3IodmFyIGU9dGhpcztlOyl7aWYoZT09PXQuem9uZSl0aHJvdyBFcnJvcigiY2FuIG5vdCByZXNjaGVkdWxlIHRhc2sgdG8gIit0aGlzLm5hbWUrIiB3aGljaCBpcyBkZXNjZW5kYW50cyBvZiB0aGUgb3JpZ2luYWwgem9uZSAiK3Quem9uZS5uYW1lKTtlPWUucGFyZW50fXQuX3RyYW5zaXRpb25UbyhtLGIpO3ZhciBuPVtdO3QuX3pvbmVEZWxlZ2F0ZXM9bix0Ll96b25lPXRoaXM7dHJ5e3Q9dGhpcy5fem9uZURlbGVnYXRlLnNjaGVkdWxlVGFzayh0aGlzLHQpfWNhdGNoKHIpe3Rocm93IHQuX3RyYW5zaXRpb25Ubyh4LG0sYiksdGhpcy5fem9uZURlbGVnYXRlLmhhbmRsZUVycm9yKHRoaXMscikscn1yZXR1cm4gdC5fem9uZURlbGVnYXRlcz09PW4mJnRoaXMuX3VwZGF0ZVRhc2tDb3VudCh0LDEpLHQuc3RhdGU9PW0mJnQuX3RyYW5zaXRpb25UbyhrLG0pLHR9LGUucHJvdG90eXBlLnNjaGVkdWxlTWljcm9UYXNrPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB0aGlzLnNjaGVkdWxlVGFzayhuZXcgcyhTLHQsZSxuLHIsdm9pZCAwKSl9LGUucHJvdG90eXBlLnNjaGVkdWxlTWFjcm9UYXNrPWZ1bmN0aW9uKHQsZSxuLHIsbyl7cmV0dXJuIHRoaXMuc2NoZWR1bGVUYXNrKG5ldyBzKEUsdCxlLG4scixvKSl9LGUucHJvdG90eXBlLnNjaGVkdWxlRXZlbnRUYXNrPWZ1bmN0aW9uKHQsZSxuLHIsbyl7cmV0dXJuIHRoaXMuc2NoZWR1bGVUYXNrKG5ldyBzKE8sdCxlLG4scixvKSl9LGUucHJvdG90eXBlLmNhbmNlbFRhc2s9ZnVuY3Rpb24odCl7aWYodC56b25lIT10aGlzKXRocm93IG5ldyBFcnJvcigiQSB0YXNrIGNhbiBvbmx5IGJlIGNhbmNlbGxlZCBpbiB0aGUgem9uZSBvZiBjcmVhdGlvbiEgKENyZWF0aW9uOiAiKyh0LnpvbmV8fHkpLm5hbWUrIjsgRXhlY3V0aW9uOiAiK3RoaXMubmFtZSsiKSIpO3QuX3RyYW5zaXRpb25Ubyh3LGssXyk7dHJ5e3RoaXMuX3pvbmVEZWxlZ2F0ZS5jYW5jZWxUYXNrKHRoaXMsdCl9Y2F0Y2goZSl7dGhyb3cgdC5fdHJhbnNpdGlvblRvKHgsdyksdGhpcy5fem9uZURlbGVnYXRlLmhhbmRsZUVycm9yKHRoaXMsZSksZX1yZXR1cm4gdGhpcy5fdXBkYXRlVGFza0NvdW50KHQsLTEpLHQuX3RyYW5zaXRpb25UbyhiLHcpLHQucnVuQ291bnQ9MCx0fSxlLnByb3RvdHlwZS5fdXBkYXRlVGFza0NvdW50PWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5fem9uZURlbGVnYXRlczstMT09ZSYmKHQuX3pvbmVEZWxlZ2F0ZXM9bnVsbCk7Zm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspbltyXS5fdXBkYXRlVGFza0NvdW50KHQudHlwZSxlKX0sZS5fX3N5bWJvbF9fPVIsZX0oKSxjPXtuYW1lOiIiLG9uSGFzVGFzazpmdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdC5oYXNUYXNrKG4scil9LG9uU2NoZWR1bGVUYXNrOmZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB0LnNjaGVkdWxlVGFzayhuLHIpfSxvbkludm9rZVRhc2s6ZnVuY3Rpb24odCxlLG4scixvLGkpe3JldHVybiB0Lmludm9rZVRhc2sobixyLG8saSl9LG9uQ2FuY2VsVGFzazpmdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdC5jYW5jZWxUYXNrKG4scil9fSx1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbil7dGhpcy5fdGFza0NvdW50cz17bWljcm9UYXNrOjAsbWFjcm9UYXNrOjAsZXZlbnRUYXNrOjB9LHRoaXMuem9uZT10LHRoaXMuX3BhcmVudERlbGVnYXRlPWUsdGhpcy5fZm9ya1pTPW4mJihuJiZuLm9uRm9yaz9uOmUuX2ZvcmtaUyksdGhpcy5fZm9ya0RsZ3Q9biYmKG4ub25Gb3JrP2U6ZS5fZm9ya0RsZ3QpLHRoaXMuX2ZvcmtDdXJyWm9uZT1uJiYobi5vbkZvcms/dGhpcy56b25lOmUuem9uZSksdGhpcy5faW50ZXJjZXB0WlM9biYmKG4ub25JbnRlcmNlcHQ/bjplLl9pbnRlcmNlcHRaUyksdGhpcy5faW50ZXJjZXB0RGxndD1uJiYobi5vbkludGVyY2VwdD9lOmUuX2ludGVyY2VwdERsZ3QpLHRoaXMuX2ludGVyY2VwdEN1cnJab25lPW4mJihuLm9uSW50ZXJjZXB0P3RoaXMuem9uZTplLnpvbmUpLHRoaXMuX2ludm9rZVpTPW4mJihuLm9uSW52b2tlP246ZS5faW52b2tlWlMpLHRoaXMuX2ludm9rZURsZ3Q9biYmKG4ub25JbnZva2U/ZTplLl9pbnZva2VEbGd0KSx0aGlzLl9pbnZva2VDdXJyWm9uZT1uJiYobi5vbkludm9rZT90aGlzLnpvbmU6ZS56b25lKSx0aGlzLl9oYW5kbGVFcnJvclpTPW4mJihuLm9uSGFuZGxlRXJyb3I/bjplLl9oYW5kbGVFcnJvclpTKSx0aGlzLl9oYW5kbGVFcnJvckRsZ3Q9biYmKG4ub25IYW5kbGVFcnJvcj9lOmUuX2hhbmRsZUVycm9yRGxndCksdGhpcy5faGFuZGxlRXJyb3JDdXJyWm9uZT1uJiYobi5vbkhhbmRsZUVycm9yP3RoaXMuem9uZTplLnpvbmUpLHRoaXMuX3NjaGVkdWxlVGFza1pTPW4mJihuLm9uU2NoZWR1bGVUYXNrP246ZS5fc2NoZWR1bGVUYXNrWlMpLHRoaXMuX3NjaGVkdWxlVGFza0RsZ3Q9biYmKG4ub25TY2hlZHVsZVRhc2s/ZTplLl9zY2hlZHVsZVRhc2tEbGd0KSx0aGlzLl9zY2hlZHVsZVRhc2tDdXJyWm9uZT1uJiYobi5vblNjaGVkdWxlVGFzaz90aGlzLnpvbmU6ZS56b25lKSx0aGlzLl9pbnZva2VUYXNrWlM9biYmKG4ub25JbnZva2VUYXNrP246ZS5faW52b2tlVGFza1pTKSx0aGlzLl9pbnZva2VUYXNrRGxndD1uJiYobi5vbkludm9rZVRhc2s/ZTplLl9pbnZva2VUYXNrRGxndCksdGhpcy5faW52b2tlVGFza0N1cnJab25lPW4mJihuLm9uSW52b2tlVGFzaz90aGlzLnpvbmU6ZS56b25lKSx0aGlzLl9jYW5jZWxUYXNrWlM9biYmKG4ub25DYW5jZWxUYXNrP246ZS5fY2FuY2VsVGFza1pTKSx0aGlzLl9jYW5jZWxUYXNrRGxndD1uJiYobi5vbkNhbmNlbFRhc2s/ZTplLl9jYW5jZWxUYXNrRGxndCksdGhpcy5fY2FuY2VsVGFza0N1cnJab25lPW4mJihuLm9uQ2FuY2VsVGFzaz90aGlzLnpvbmU6ZS56b25lKSx0aGlzLl9oYXNUYXNrWlM9bnVsbCx0aGlzLl9oYXNUYXNrRGxndD1udWxsLHRoaXMuX2hhc1Rhc2tEbGd0T3duZXI9bnVsbCx0aGlzLl9oYXNUYXNrQ3VyclpvbmU9bnVsbDt2YXIgcj1uJiZuLm9uSGFzVGFzazsocnx8ZSYmZS5faGFzVGFza1pTKSYmKHRoaXMuX2hhc1Rhc2taUz1yP246Yyx0aGlzLl9oYXNUYXNrRGxndD1lLHRoaXMuX2hhc1Rhc2tEbGd0T3duZXI9dGhpcyx0aGlzLl9oYXNUYXNrQ3VyclpvbmU9dCxuLm9uU2NoZWR1bGVUYXNrfHwodGhpcy5fc2NoZWR1bGVUYXNrWlM9Yyx0aGlzLl9zY2hlZHVsZVRhc2tEbGd0PWUsdGhpcy5fc2NoZWR1bGVUYXNrQ3VyclpvbmU9dGhpcy56b25lKSxuLm9uSW52b2tlVGFza3x8KHRoaXMuX2ludm9rZVRhc2taUz1jLHRoaXMuX2ludm9rZVRhc2tEbGd0PWUsdGhpcy5faW52b2tlVGFza0N1cnJab25lPXRoaXMuem9uZSksbi5vbkNhbmNlbFRhc2t8fCh0aGlzLl9jYW5jZWxUYXNrWlM9Yyx0aGlzLl9jYW5jZWxUYXNrRGxndD1lLHRoaXMuX2NhbmNlbFRhc2tDdXJyWm9uZT10aGlzLnpvbmUpKX1yZXR1cm4gdC5wcm90b3R5cGUuZm9yaz1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9mb3JrWlM/dGhpcy5fZm9ya1pTLm9uRm9yayh0aGlzLl9mb3JrRGxndCx0aGlzLnpvbmUsdCxlKTpuZXcgYSh0LGUpfSx0LnByb3RvdHlwZS5pbnRlcmNlcHQ9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0aGlzLl9pbnRlcmNlcHRaUz90aGlzLl9pbnRlcmNlcHRaUy5vbkludGVyY2VwdCh0aGlzLl9pbnRlcmNlcHREbGd0LHRoaXMuX2ludGVyY2VwdEN1cnJab25lLHQsZSxuKTplfSx0LnByb3RvdHlwZS5pbnZva2U9ZnVuY3Rpb24odCxlLG4scixvKXtyZXR1cm4gdGhpcy5faW52b2tlWlM/dGhpcy5faW52b2tlWlMub25JbnZva2UodGhpcy5faW52b2tlRGxndCx0aGlzLl9pbnZva2VDdXJyWm9uZSx0LGUsbixyLG8pOmUuYXBwbHkobixyKX0sdC5wcm90b3R5cGUuaGFuZGxlRXJyb3I9ZnVuY3Rpb24odCxlKXtyZXR1cm4hdGhpcy5faGFuZGxlRXJyb3JaU3x8dGhpcy5faGFuZGxlRXJyb3JaUy5vbkhhbmRsZUVycm9yKHRoaXMuX2hhbmRsZUVycm9yRGxndCx0aGlzLl9oYW5kbGVFcnJvckN1cnJab25lLHQsZSl9LHQucHJvdG90eXBlLnNjaGVkdWxlVGFzaz1mdW5jdGlvbih0LGUpe3ZhciBuPWU7aWYodGhpcy5fc2NoZWR1bGVUYXNrWlMpdGhpcy5faGFzVGFza1pTJiZuLl96b25lRGVsZWdhdGVzLnB1c2godGhpcy5faGFzVGFza0RsZ3RPd25lciksKG49dGhpcy5fc2NoZWR1bGVUYXNrWlMub25TY2hlZHVsZVRhc2sodGhpcy5fc2NoZWR1bGVUYXNrRGxndCx0aGlzLl9zY2hlZHVsZVRhc2tDdXJyWm9uZSx0LGUpKXx8KG49ZSk7ZWxzZSBpZihlLnNjaGVkdWxlRm4pZS5zY2hlZHVsZUZuKGUpO2Vsc2V7aWYoZS50eXBlIT1TKXRocm93IG5ldyBFcnJvcigiVGFzayBpcyBtaXNzaW5nIHNjaGVkdWxlRm4uIik7ZChlKX1yZXR1cm4gbn0sdC5wcm90b3R5cGUuaW52b2tlVGFzaz1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdGhpcy5faW52b2tlVGFza1pTP3RoaXMuX2ludm9rZVRhc2taUy5vbkludm9rZVRhc2sodGhpcy5faW52b2tlVGFza0RsZ3QsdGhpcy5faW52b2tlVGFza0N1cnJab25lLHQsZSxuLHIpOmUuY2FsbGJhY2suYXBwbHkobixyKX0sdC5wcm90b3R5cGUuY2FuY2VsVGFzaz1mdW5jdGlvbih0LGUpe3ZhciBuO2lmKHRoaXMuX2NhbmNlbFRhc2taUyluPXRoaXMuX2NhbmNlbFRhc2taUy5vbkNhbmNlbFRhc2sodGhpcy5fY2FuY2VsVGFza0RsZ3QsdGhpcy5fY2FuY2VsVGFza0N1cnJab25lLHQsZSk7ZWxzZXtpZighZS5jYW5jZWxGbil0aHJvdyBFcnJvcigiVGFzayBpcyBub3QgY2FuY2VsYWJsZSIpO249ZS5jYW5jZWxGbihlKX1yZXR1cm4gbn0sdC5wcm90b3R5cGUuaGFzVGFzaz1mdW5jdGlvbih0LGUpe3RyeXt0aGlzLl9oYXNUYXNrWlMmJnRoaXMuX2hhc1Rhc2taUy5vbkhhc1Rhc2sodGhpcy5faGFzVGFza0RsZ3QsdGhpcy5faGFzVGFza0N1cnJab25lLHQsZSl9Y2F0Y2gobil7dGhpcy5oYW5kbGVFcnJvcih0LG4pfX0sdC5wcm90b3R5cGUuX3VwZGF0ZVRhc2tDb3VudD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX3Rhc2tDb3VudHMscj1uW3RdLG89blt0XT1yK2U7aWYobzwwKXRocm93IG5ldyBFcnJvcigiTW9yZSB0YXNrcyBleGVjdXRlZCB0aGVuIHdlcmUgc2NoZWR1bGVkLiIpOzAhPXImJjAhPW98fHRoaXMuaGFzVGFzayh0aGlzLnpvbmUse21pY3JvVGFzazpuLm1pY3JvVGFzaz4wLG1hY3JvVGFzazpuLm1hY3JvVGFzaz4wLGV2ZW50VGFzazpuLmV2ZW50VGFzaz4wLGNoYW5nZTp0fSl9LHR9KCkscz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUobixyLG8saSxhLGMpe3RoaXMuX3pvbmU9bnVsbCx0aGlzLnJ1bkNvdW50PTAsdGhpcy5fem9uZURlbGVnYXRlcz1udWxsLHRoaXMuX3N0YXRlPSJub3RTY2hlZHVsZWQiLHRoaXMudHlwZT1uLHRoaXMuc291cmNlPXIsdGhpcy5kYXRhPWksdGhpcy5zY2hlZHVsZUZuPWEsdGhpcy5jYW5jZWxGbj1jLHRoaXMuY2FsbGJhY2s9bzt2YXIgdT10aGlzO3RoaXMuaW52b2tlPW49PT1PJiZpJiZpLnVzZUc/ZS5pbnZva2VUYXNrOmZ1bmN0aW9uKCl7cmV0dXJuIGUuaW52b2tlVGFzay5jYWxsKHQsdSx0aGlzLGFyZ3VtZW50cyl9fXJldHVybiBlLmludm9rZVRhc2s9ZnVuY3Rpb24odCxlLG4pe3R8fCh0PXRoaXMpLFArKzt0cnl7cmV0dXJuIHQucnVuQ291bnQrKyx0LnpvbmUucnVuVGFzayh0LGUsbil9ZmluYWxseXsxPT1QJiZnKCksUC0tfX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ6b25lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3pvbmV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJzdGF0ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdGF0ZX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5jYW5jZWxTY2hlZHVsZVJlcXVlc3Q9ZnVuY3Rpb24oKXt0aGlzLl90cmFuc2l0aW9uVG8oYixtKX0sZS5wcm90b3R5cGUuX3RyYW5zaXRpb25Ubz1mdW5jdGlvbih0LGUsbil7aWYodGhpcy5fc3RhdGUhPT1lJiZ0aGlzLl9zdGF0ZSE9PW4pdGhyb3cgbmV3IEVycm9yKHRoaXMudHlwZSsiICciK3RoaXMuc291cmNlKyInOiBjYW4gbm90IHRyYW5zaXRpb24gdG8gJyIrdCsiJywgZXhwZWN0aW5nIHN0YXRlICciK2UrIiciKyhuPyIgb3IgJyIrbisiJyI6IiIpKyIsIHdhcyAnIit0aGlzLl9zdGF0ZSsiJy4iKTt0aGlzLl9zdGF0ZT10LHQ9PWImJih0aGlzLl96b25lRGVsZWdhdGVzPW51bGwpfSxlLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGEmJnZvaWQgMCE9PXRoaXMuZGF0YS5oYW5kbGVJZD90aGlzLmRhdGEuaGFuZGxlSWQudG9TdHJpbmcoKTpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGhpcyl9LGUucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnt0eXBlOnRoaXMudHlwZSxzdGF0ZTp0aGlzLnN0YXRlLHNvdXJjZTp0aGlzLnNvdXJjZSx6b25lOnRoaXMuem9uZS5uYW1lLHJ1bkNvdW50OnRoaXMucnVuQ291bnR9fSxlfSgpLGY9Uigic2V0VGltZW91dCIpLGw9UigiUHJvbWlzZSIpLHA9UigidGhlbiIpLGg9W10sdj0hMTtmdW5jdGlvbiBkKGUpe2lmKDA9PT1QJiYwPT09aC5sZW5ndGgpaWYoaXx8dFtsXSYmKGk9dFtsXS5yZXNvbHZlKDApKSxpKXt2YXIgbj1pW3BdO258fChuPWkudGhlbiksbi5jYWxsKGksZyl9ZWxzZSB0W2ZdKGcsMCk7ZSYmaC5wdXNoKGUpfWZ1bmN0aW9uIGcoKXtpZighdil7Zm9yKHY9ITA7aC5sZW5ndGg7KXt2YXIgdD1oO2g9W107Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciBuPXRbZV07dHJ5e24uem9uZS5ydW5UYXNrKG4sbnVsbCxudWxsKX1jYXRjaChyKXtJLm9uVW5oYW5kbGVkRXJyb3Iocil9fX1JLm1pY3JvdGFza0RyYWluRG9uZSgpLHY9ITF9fXZhciB5PXtuYW1lOiJOTyBaT05FIn0sYj0ibm90U2NoZWR1bGVkIixtPSJzY2hlZHVsaW5nIixrPSJzY2hlZHVsZWQiLF89InJ1bm5pbmciLHc9ImNhbmNlbGluZyIseD0idW5rbm93biIsUz0ibWljcm9UYXNrIixFPSJtYWNyb1Rhc2siLE89ImV2ZW50VGFzayIsVD17fSxJPXtzeW1ib2w6UixjdXJyZW50Wm9uZUZyYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIGp9LG9uVW5oYW5kbGVkRXJyb3I6RCxtaWNyb3Rhc2tEcmFpbkRvbmU6RCxzY2hlZHVsZU1pY3JvVGFzazpkLHNob3dVbmNhdWdodEVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIWFbUigiaWdub3JlQ29uc29sZUVycm9yVW5jYXVnaHRFcnJvciIpXX0scGF0Y2hFdmVudFRhcmdldDpmdW5jdGlvbigpe3JldHVybltdfSxwYXRjaE9uUHJvcGVydGllczpELHBhdGNoTWV0aG9kOmZ1bmN0aW9uKCl7cmV0dXJuIER9LGJpbmRBcmd1bWVudHM6ZnVuY3Rpb24oKXtyZXR1cm5bXX0scGF0Y2hUaGVuOmZ1bmN0aW9uKCl7cmV0dXJuIER9LHBhdGNoTWFjcm9UYXNrOmZ1bmN0aW9uKCl7cmV0dXJuIER9LHNldE5hdGl2ZVByb21pc2U6ZnVuY3Rpb24odCl7dCYmImZ1bmN0aW9uIj09dHlwZW9mIHQucmVzb2x2ZSYmKGk9dC5yZXNvbHZlKDApKX0scGF0Y2hFdmVudFByb3RvdHlwZTpmdW5jdGlvbigpe3JldHVybiBEfSxpc0lFT3JFZGdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9LGdldEdsb2JhbE9iamVjdHM6ZnVuY3Rpb24oKXt9LE9iamVjdERlZmluZVByb3BlcnR5OmZ1bmN0aW9uKCl7cmV0dXJuIER9LE9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcjpmdW5jdGlvbigpe30sT2JqZWN0Q3JlYXRlOmZ1bmN0aW9uKCl7fSxBcnJheVNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuW119LHBhdGNoQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm4gRH0sd3JhcFdpdGhDdXJyZW50Wm9uZTpmdW5jdGlvbigpe3JldHVybiBEfSxmaWx0ZXJQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7cmV0dXJuW119LGF0dGFjaE9yaWdpblRvUGF0Y2hlZDpmdW5jdGlvbigpe3JldHVybiBEfSxfcmVkZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbigpe3JldHVybiBEfSxwYXRjaENhbGxiYWNrczpmdW5jdGlvbigpe3JldHVybiBEfX0saj17cGFyZW50Om51bGwsem9uZTpuZXcgYShudWxsLG51bGwpfSxNPW51bGwsUD0wO2Z1bmN0aW9uIEQoKXt9ZnVuY3Rpb24gUih0KXtyZXR1cm4iX196b25lX3N5bWJvbF9fIit0fXIoIlpvbmUiLCJab25lIiksdC5ab25lPWF9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3d8fCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZnx8Z2xvYmFsKSxab25lLl9fbG9hZF9wYXRjaCgiWm9uZUF3YXJlUHJvbWlzZSIsKGZ1bmN0aW9uKHQsZSxuKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGk9T2JqZWN0LmRlZmluZVByb3BlcnR5LGE9bi5zeW1ib2wsYz1bXSx1PWEoIlByb21pc2UiKSxzPWEoInRoZW4iKSxmPSJfX2NyZWF0aW9uVHJhY2VfXyI7bi5vblVuaGFuZGxlZEVycm9yPWZ1bmN0aW9uKHQpe2lmKG4uc2hvd1VuY2F1Z2h0RXJyb3IoKSl7dmFyIGU9dCYmdC5yZWplY3Rpb247ZT9jb25zb2xlLmVycm9yKCJVbmhhbmRsZWQgUHJvbWlzZSByZWplY3Rpb246IixlIGluc3RhbmNlb2YgRXJyb3I/ZS5tZXNzYWdlOmUsIjsgWm9uZToiLHQuem9uZS5uYW1lLCI7IFRhc2s6Iix0LnRhc2smJnQudGFzay5zb3VyY2UsIjsgVmFsdWU6IixlLGUgaW5zdGFuY2VvZiBFcnJvcj9lLnN0YWNrOnZvaWQgMCk6Y29uc29sZS5lcnJvcih0KX19LG4ubWljcm90YXNrRHJhaW5Eb25lPWZ1bmN0aW9uKCl7Zm9yKDtjLmxlbmd0aDspZm9yKHZhciB0PWZ1bmN0aW9uKCl7dmFyIHQ9Yy5zaGlmdCgpO3RyeXt0LnpvbmUucnVuR3VhcmRlZCgoZnVuY3Rpb24oKXt0aHJvdyB0fSkpfWNhdGNoKGUpe3AoZSl9fTtjLmxlbmd0aDspdCgpfTt2YXIgbD1hKCJ1bmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uSGFuZGxlciIpO2Z1bmN0aW9uIHAodCl7bi5vblVuaGFuZGxlZEVycm9yKHQpO3RyeXt2YXIgcj1lW2xdO3ImJiJmdW5jdGlvbiI9PXR5cGVvZiByJiZyLmNhbGwodGhpcyx0KX1jYXRjaChvKXt9fWZ1bmN0aW9uIGgodCl7cmV0dXJuIHQmJnQudGhlbn1mdW5jdGlvbiB2KHQpe3JldHVybiB0fWZ1bmN0aW9uIGQodCl7cmV0dXJuIE4ucmVqZWN0KHQpfXZhciBnPWEoInN0YXRlIikseT1hKCJ2YWx1ZSIpLGI9YSgiZmluYWxseSIpLG09YSgicGFyZW50UHJvbWlzZVZhbHVlIiksaz1hKCJwYXJlbnRQcm9taXNlU3RhdGUiKSxfPSJQcm9taXNlLnRoZW4iLHc9bnVsbCx4PSEwLFM9ITEsRT0wO2Z1bmN0aW9uIE8odCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dHJ5e00odCxlLG4pfWNhdGNoKHIpe00odCwhMSxyKX19fXZhciBUPWZ1bmN0aW9uKCl7dmFyIHQ9ITE7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3R8fCh0PSEwLGUuYXBwbHkobnVsbCxhcmd1bWVudHMpKX19fSxJPSJQcm9taXNlIHJlc29sdmVkIHdpdGggaXRzZWxmIixqPWEoImN1cnJlbnRUYXNrVHJhY2UiKTtmdW5jdGlvbiBNKHQscixvKXt2YXIgYSx1PVQoKTtpZih0PT09byl0aHJvdyBuZXcgVHlwZUVycm9yKEkpO2lmKHRbZ109PT13KXt2YXIgcz1udWxsO3RyeXsib2JqZWN0IiE9dHlwZW9mIG8mJiJmdW5jdGlvbiIhPXR5cGVvZiBvfHwocz1vJiZvLnRoZW4pfWNhdGNoKGQpe3JldHVybiB1KChmdW5jdGlvbigpe00odCwhMSxkKX0pKSgpLHR9aWYociE9PVMmJm8gaW5zdGFuY2VvZiBOJiZvLmhhc093blByb3BlcnR5KGcpJiZvLmhhc093blByb3BlcnR5KHkpJiZvW2ddIT09dylEKG8pLE0odCxvW2ddLG9beV0pO2Vsc2UgaWYociE9PVMmJiJmdW5jdGlvbiI9PXR5cGVvZiBzKXRyeXtzLmNhbGwobyx1KE8odCxyKSksdShPKHQsITEpKSl9Y2F0Y2goZCl7dSgoZnVuY3Rpb24oKXtNKHQsITEsZCl9KSkoKX1lbHNle3RbZ109cjt2YXIgbD10W3ldO2lmKHRbeV09byx0W2JdPT09YiYmcj09PXgmJih0W2ddPXRba10sdFt5XT10W21dKSxyPT09UyYmbyBpbnN0YW5jZW9mIEVycm9yKXt2YXIgcD1lLmN1cnJlbnRUYXNrJiZlLmN1cnJlbnRUYXNrLmRhdGEmJmUuY3VycmVudFRhc2suZGF0YVtmXTtwJiZpKG8saix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsdmFsdWU6cH0pfWZvcih2YXIgaD0wO2g8bC5sZW5ndGg7KVIodCxsW2grK10sbFtoKytdLGxbaCsrXSxsW2grK10pO2lmKDA9PWwubGVuZ3RoJiZyPT1TKXt0W2ddPUU7dHJ5e3Rocm93IG5ldyBFcnJvcigiVW5jYXVnaHQgKGluIHByb21pc2UpOiAiKygoYT1vKSYmYS50b1N0cmluZz09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc/KGEuY29uc3RydWN0b3ImJmEuY29uc3RydWN0b3IubmFtZXx8IiIpKyI6ICIrSlNPTi5zdHJpbmdpZnkoYSk6YT9hLnRvU3RyaW5nKCk6T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpKSsobyYmby5zdGFjaz8iXG4iK28uc3RhY2s6IiIpKX1jYXRjaChkKXt2YXIgdj1kO3YucmVqZWN0aW9uPW8sdi5wcm9taXNlPXQsdi56b25lPWUuY3VycmVudCx2LnRhc2s9ZS5jdXJyZW50VGFzayxjLnB1c2godiksbi5zY2hlZHVsZU1pY3JvVGFzaygpfX19fXJldHVybiB0fXZhciBQPWEoInJlamVjdGlvbkhhbmRsZWRIYW5kbGVyIik7ZnVuY3Rpb24gRCh0KXtpZih0W2ddPT09RSl7dHJ5e3ZhciBuPWVbUF07biYmImZ1bmN0aW9uIj09dHlwZW9mIG4mJm4uY2FsbCh0aGlzLHtyZWplY3Rpb246dFt5XSxwcm9taXNlOnR9KX1jYXRjaChvKXt9dFtnXT1TO2Zvcih2YXIgcj0wO3I8Yy5sZW5ndGg7cisrKXQ9PT1jW3JdLnByb21pc2UmJmMuc3BsaWNlKHIsMSl9fWZ1bmN0aW9uIFIodCxlLG4scixvKXtEKHQpO3ZhciBpPXRbZ10sYT1pPyJmdW5jdGlvbiI9PXR5cGVvZiByP3I6djoiZnVuY3Rpb24iPT10eXBlb2Ygbz9vOmQ7ZS5zY2hlZHVsZU1pY3JvVGFzayhfLChmdW5jdGlvbigpe3RyeXt2YXIgcj10W3ldLG89biYmYj09PW5bYl07byYmKG5bbV09cixuW2tdPWkpO3ZhciBjPWUucnVuKGEsdm9pZCAwLG8mJmEhPT1kJiZhIT09dj9bXTpbcl0pO00obiwhMCxjKX1jYXRjaCh1KXtNKG4sITEsdSl9fSksbil9dmFyIE49ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBFcnJvcigiTXVzdCBiZSBhbiBpbnN0YW5jZW9mIFByb21pc2UuIik7dGhpc1tnXT13LHRoaXNbeV09W107dHJ5e2UmJmUoTyh0aGlzLHgpLE8odGhpcyxTKSl9Y2F0Y2gobil7TSh0aGlzLCExLG4pfX1yZXR1cm4gdC50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJmdW5jdGlvbiBab25lQXdhcmVQcm9taXNlKCkgeyBbbmF0aXZlIGNvZGVdIH0ifSx0LnJlc29sdmU9ZnVuY3Rpb24odCl7cmV0dXJuIE0obmV3IHRoaXMobnVsbCkseCx0KX0sdC5yZWplY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIE0obmV3IHRoaXMobnVsbCksUyx0KX0sdC5yYWNlPWZ1bmN0aW9uKHQpe3ZhciBlLG4sbyxpLGE9bmV3IHRoaXMoKGZ1bmN0aW9uKHQsZSl7bz10LGk9ZX0pKTtmdW5jdGlvbiBjKHQpe28odCl9ZnVuY3Rpb24gdSh0KXtpKHQpfXRyeXtmb3IodmFyIHM9cih0KSxmPXMubmV4dCgpOyFmLmRvbmU7Zj1zLm5leHQoKSl7dmFyIGw9Zi52YWx1ZTtoKGwpfHwobD10aGlzLnJlc29sdmUobCkpLGwudGhlbihjLHUpfX1jYXRjaChwKXtlPXtlcnJvcjpwfX1maW5hbGx5e3RyeXtmJiYhZi5kb25lJiYobj1zLnJldHVybikmJm4uY2FsbChzKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19cmV0dXJuIGF9LHQuYWxsPWZ1bmN0aW9uKHQpe3ZhciBlLG4sbyxpLGE9bmV3IHRoaXMoKGZ1bmN0aW9uKHQsZSl7bz10LGk9ZX0pKSxjPTIsdT0wLHM9W10sZj1mdW5jdGlvbih0KXtoKHQpfHwodD1sLnJlc29sdmUodCkpO3ZhciBlPXU7dC50aGVuKChmdW5jdGlvbih0KXtzW2VdPXQsMD09LS1jJiZvKHMpfSksaSksYysrLHUrK30sbD10aGlzO3RyeXtmb3IodmFyIHA9cih0KSx2PXAubmV4dCgpOyF2LmRvbmU7dj1wLm5leHQoKSlmKHYudmFsdWUpfWNhdGNoKGQpe2U9e2Vycm9yOmR9fWZpbmFsbHl7dHJ5e3YmJiF2LmRvbmUmJihuPXAucmV0dXJuKSYmbi5jYWxsKHApfWZpbmFsbHl7aWYoZSl0aHJvdyBlLmVycm9yfX1yZXR1cm4gMD09KGMtPTIpJiZvKHMpLGF9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxTeW1ib2wudG9TdHJpbmdUYWcse2dldDpmdW5jdGlvbigpe3JldHVybiJQcm9taXNlIn0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKHQsbil7dmFyIHI9bmV3IHRoaXMuY29uc3RydWN0b3IobnVsbCksbz1lLmN1cnJlbnQ7cmV0dXJuIHRoaXNbZ109PXc/dGhpc1t5XS5wdXNoKG8scix0LG4pOlIodGhpcyxvLHIsdCxuKSxyfSx0LnByb3RvdHlwZS5jYXRjaD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50aGVuKG51bGwsdCl9LHQucHJvdG90eXBlLmZpbmFsbHk9ZnVuY3Rpb24odCl7dmFyIG49bmV3IHRoaXMuY29uc3RydWN0b3IobnVsbCk7bltiXT1iO3ZhciByPWUuY3VycmVudDtyZXR1cm4gdGhpc1tnXT09dz90aGlzW3ldLnB1c2gocixuLHQsdCk6Uih0aGlzLHIsbix0LHQpLG59LHR9KCk7Ti5yZXNvbHZlPU4ucmVzb2x2ZSxOLnJlamVjdD1OLnJlamVjdCxOLnJhY2U9Ti5yYWNlLE4uYWxsPU4uYWxsO3ZhciBBPXRbdV09dC5Qcm9taXNlLEw9ZS5fX3N5bWJvbF9fKCJab25lQXdhcmVQcm9taXNlIiksRj1vKHQsIlByb21pc2UiKTtGJiYhRi5jb25maWd1cmFibGV8fChGJiZkZWxldGUgRi53cml0YWJsZSxGJiZkZWxldGUgRi52YWx1ZSxGfHwoRj17Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITB9KSxGLmdldD1mdW5jdGlvbigpe3JldHVybiB0W0xdP3RbTF06dFt1XX0sRi5zZXQ9ZnVuY3Rpb24oZSl7ZT09PU4/dFtMXT1lOih0W3VdPWUsZS5wcm90b3R5cGVbc118fEMoZSksbi5zZXROYXRpdmVQcm9taXNlKGUpKX0saSh0LCJQcm9taXNlIixGKSksdC5Qcm9taXNlPU47dmFyIHosWj1hKCJ0aGVuUGF0Y2hlZCIpO2Z1bmN0aW9uIEModCl7dmFyIGU9dC5wcm90b3R5cGUsbj1vKGUsInRoZW4iKTtpZighbnx8ITEhPT1uLndyaXRhYmxlJiZuLmNvbmZpZ3VyYWJsZSl7dmFyIHI9ZS50aGVuO2Vbc109cix0LnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztyZXR1cm4gbmV3IE4oKGZ1bmN0aW9uKHQsZSl7ci5jYWxsKG4sdCxlKX0pKS50aGVuKHQsZSl9LHRbWl09ITB9fWlmKG4ucGF0Y2hUaGVuPUMsQSl7QyhBKTt2YXIgVz10LmZldGNoOyJmdW5jdGlvbiI9PXR5cGVvZiBXJiYodFtuLnN5bWJvbCgiZmV0Y2giKV09Vyx0LmZldGNoPSh6PVcsZnVuY3Rpb24oKXt2YXIgdD16LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZih0IGluc3RhbmNlb2YgTilyZXR1cm4gdDt2YXIgZT10LmNvbnN0cnVjdG9yO3JldHVybiBlW1pdfHxDKGUpLHR9KSl9cmV0dXJuIFByb21pc2VbZS5fX3N5bWJvbF9fKCJ1bmNhdWdodFByb21pc2VFcnJvcnMiKV09YyxOfSkpO3ZhciB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsZT1PYmplY3QuZGVmaW5lUHJvcGVydHksbj1PYmplY3QuZ2V0UHJvdG90eXBlT2Ysbz1PYmplY3QuY3JlYXRlLGk9QXJyYXkucHJvdG90eXBlLnNsaWNlLGE9ImFkZEV2ZW50TGlzdGVuZXIiLGM9InJlbW92ZUV2ZW50TGlzdGVuZXIiLHU9Wm9uZS5fX3N5bWJvbF9fKGEpLHM9Wm9uZS5fX3N5bWJvbF9fKGMpLGY9InRydWUiLGw9ImZhbHNlIixwPSJfX3pvbmVfc3ltYm9sX18iO2Z1bmN0aW9uIGgodCxlKXtyZXR1cm4gWm9uZS5jdXJyZW50LndyYXAodCxlKX1mdW5jdGlvbiB2KHQsZSxuLHIsbyl7cmV0dXJuIFpvbmUuY3VycmVudC5zY2hlZHVsZU1hY3JvVGFzayh0LGUsbixyLG8pfXZhciBkPVpvbmUuX19zeW1ib2xfXyxnPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LHk9Zz93aW5kb3c6dm9pZCAwLGI9ZyYmeXx8Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmfHxnbG9iYWwsbT0icmVtb3ZlQXR0cmlidXRlIixrPVtudWxsXTtmdW5jdGlvbiBfKHQsZSl7Zm9yKHZhciBuPXQubGVuZ3RoLTE7bj49MDtuLS0pImZ1bmN0aW9uIj09dHlwZW9mIHRbbl0mJih0W25dPWgodFtuXSxlKyJfIituKSk7cmV0dXJuIHR9ZnVuY3Rpb24gdyh0KXtyZXR1cm4hdHx8ITEhPT10LndyaXRhYmxlJiYhKCJmdW5jdGlvbiI9PXR5cGVvZiB0LmdldCYmdm9pZCAwPT09dC5zZXQpfXZhciB4PSJ1bmRlZmluZWQiIT10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSxTPSEoIm53ImluIGIpJiZ2b2lkIDAhPQ=="
}

github/deemru/w8io/169f3d6 
3.42 ms