3N4XMPXxEs6eZsy78Fgo4butfcAiwoDtG9P · data · 2.7c767379.chunk.js_61
{
    "2.7c767379.chunk.js_61": "base64:K2EtMV0sdVtmKy0tYV09cztlbHNlIGlmKDghPWMpcmV0dXJuO3JldHVybiB1fSxMPWZ1bmN0aW9uKGUpe3ZhciB0LHIsbixpO2lmKCJudW1iZXIiPT10eXBlb2YgZSl7Zm9yKHQ9W10scj0wO3I8NDtyKyspdC51bnNoaWZ0KGUlMjU2KSxlPU1hdGguZmxvb3IoZS8yNTYpO3JldHVybiB0LmpvaW4oIi4iKX1pZigib2JqZWN0Ij09dHlwZW9mIGUpe2Zvcih0PSIiLG49ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PW51bGwscj0xLG49bnVsbCxpPTAsbz0wO288ODtvKyspMCE9PWVbb10/KGk+ciYmKHQ9bixyPWkpLG49bnVsbCxpPTApOihudWxsPT09biYmKG49byksKytpKTtyZXR1cm4gaT5yJiYodD1uLHI9aSksdH0oZSkscj0wO3I8ODtyKyspaSYmMD09PWVbcl18fChpJiYoaT0hMSksbj09PXI/KHQrPXI/IjoiOiI6OiIsaT0hMCk6KHQrPWVbcl0udG9TdHJpbmcoMTYpLHI8NyYmKHQrPSI6IikpKTtyZXR1cm4iWyIrdCsiXSJ9cmV0dXJuIGV9LEQ9e30saj1sKHt9LEQseyIgIjoxLCciJzoxLCI8IjoxLCI+IjoxLCJgIjoxfSksVT1sKHt9LGoseyIjIjoxLCI/IjoxLCJ7IjoxLCJ9IjoxfSksRj1sKHt9LFUseyIvIjoxLCI6IjoxLCI7IjoxLCI9IjoxLCJAIjoxLCJbIjoxLCJcXCI6MSwiXSI6MSwiXiI6MSwifCI6MX0pLFY9ZnVuY3Rpb24oZSx0KXt2YXIgcj1wKGUsMCk7cmV0dXJuIHI+MzImJnI8MTI3JiYhZih0LGUpP2U6ZW5jb2RlVVJJQ29tcG9uZW50KGUpfSxxPXtmdHA6MjEsZmlsZTpudWxsLGdvcGhlcjo3MCxodHRwOjgwLGh0dHBzOjQ0Myx3czo4MCx3c3M6NDQzfSxLPWZ1bmN0aW9uKGUpe3JldHVybiBmKHEsZS5zY2hlbWUpfSx6PWZ1bmN0aW9uKGUpe3JldHVybiIiIT1lLnVzZXJuYW1lfHwiIiE9ZS5wYXNzd29yZH0sRz1mdW5jdGlvbihlKXtyZXR1cm4hZS5ob3N0fHxlLmNhbm5vdEJlQUJhc2VVUkx8fCJmaWxlIj09ZS5zY2hlbWV9LEg9ZnVuY3Rpb24oZSx0KXt2YXIgcjtyZXR1cm4gMj09ZS5sZW5ndGgmJkUudGVzdChlLmNoYXJBdCgwKSkmJigiOiI9PShyPWUuY2hhckF0KDEpKXx8IXQmJiJ8Ij09cil9LFc9ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIGUubGVuZ3RoPjEmJkgoZS5zbGljZSgwLDIpKSYmKDI9PWUubGVuZ3RofHwiLyI9PT0odD1lLmNoYXJBdCgyKSl8fCJcXCI9PT10fHwiPyI9PT10fHwiIyI9PT10KX0sWT1mdW5jdGlvbihlKXt2YXIgdD1lLnBhdGgscj10Lmxlbmd0aDshcnx8ImZpbGUiPT1lLnNjaGVtZSYmMT09ciYmSCh0WzBdLCEwKXx8dC5wb3AoKX0sWD1mdW5jdGlvbihlKXtyZXR1cm4iLiI9PT1lfHwiJTJlIj09PWUudG9Mb3dlckNhc2UoKX0sUT17fSwkPXt9LFo9e30sSj17fSxlZT17fSx0ZT17fSxyZT17fSxuZT17fSxpZT17fSxvZT17fSxhZT17fSxzZT17fSx1ZT17fSxjZT17fSxmZT17fSxsZT17fSxoZT17fSxwZT17fSxkZT17fSx5ZT17fSxnZT17fSx2ZT1mdW5jdGlvbihlLHQscixpKXt2YXIgbyxhLHMsdSxjLGw9cnx8USxwPTAsZD0iIix5PSExLGc9ITEsdj0hMTtmb3Iocnx8KGUuc2NoZW1lPSIiLGUudXNlcm5hbWU9IiIsZS5wYXNzd29yZD0iIixlLmhvc3Q9bnVsbCxlLnBvcnQ9bnVsbCxlLnBhdGg9W10sZS5xdWVyeT1udWxsLGUuZnJhZ21lbnQ9bnVsbCxlLmNhbm5vdEJlQUJhc2VVUkw9ITEsdD10LnJlcGxhY2UoTiwiIikpLHQ9dC5yZXBsYWNlKFAsIiIpLG89aCh0KTtwPD1vLmxlbmd0aDspe3N3aXRjaChhPW9bcF0sbCl7Y2FzZSBROmlmKCFhfHwhRS50ZXN0KGEpKXtpZihyKXJldHVybiJJbnZhbGlkIHNjaGVtZSI7bD1aO2NvbnRpbnVlfWQrPWEudG9Mb3dlckNhc2UoKSxsPSQ7YnJlYWs7Y2FzZSAkOmlmKGEmJih3LnRlc3QoYSl8fCIrIj09YXx8Ii0iPT1hfHwiLiI9PWEpKWQrPWEudG9Mb3dlckNhc2UoKTtlbHNle2lmKCI6IiE9YSl7aWYocilyZXR1cm4iSW52YWxpZCBzY2hlbWUiO2Q9IiIsbD1aLHA9MDtjb250aW51ZX1pZihyJiYoSyhlKSE9ZihxLGQpfHwiZmlsZSI9PWQmJih6KGUpfHxudWxsIT09ZS5wb3J0KXx8ImZpbGUiPT1lLnNjaGVtZSYmIWUuaG9zdCkpcmV0dXJuO2lmKGUuc2NoZW1lPWQscilyZXR1cm4gdm9pZChLKGUpJiZxW2Uuc2NoZW1lXT09ZS5wb3J0JiYoZS5wb3J0PW51bGwpKTtkPSIiLCJmaWxlIj09ZS5zY2hlbWU/bD1jZTpLKGUpJiZpJiZpLnNjaGVtZT09ZS5zY2hlbWU/bD1KOksoZSk/bD1uZToiLyI9PW9bcCsxXT8obD1lZSxwKyspOihlLmNhbm5vdEJlQUJhc2VVUkw9ITAsZS5wYXRoLnB1c2goIiIpLGw9ZGUpfWJyZWFrO2Nhc2UgWjppZighaXx8aS5jYW5ub3RCZUFCYXNlVVJMJiYiIyIhPWEpcmV0dXJuIkludmFsaWQgc2NoZW1lIjtpZihpLmNhbm5vdEJlQUJhc2VVUkwmJiIjIj09YSl7ZS5zY2hlbWU9aS5zY2hlbWUsZS5wYXRoPWkucGF0aC5zbGljZSgpLGUucXVlcnk9aS5xdWVyeSxlLmZyYWdtZW50PSIiLGUuY2Fubm90QmVBQmFzZVVSTD0hMCxsPWdlO2JyZWFrfWw9ImZpbGUiPT1pLnNjaGVtZT9jZTp0ZTtjb250aW51ZTtjYXNlIEo6aWYoIi8iIT1hfHwiLyIhPW9bcCsxXSl7bD10ZTtjb250aW51ZX1sPWllLHArKzticmVhaztjYXNlIGVlOmlmKCIvIj09YSl7bD1vZTticmVha31sPXBlO2NvbnRpbnVlO2Nhc2UgdGU6aWYoZS5zY2hlbWU9aS5zY2hlbWUsYT09billLnVzZXJuYW1lPWkudXNlcm5hbWUsZS5wYXNzd29yZD1pLnBhc3N3b3JkLGUuaG9zdD1pLmhvc3QsZS5wb3J0PWkucG9ydCxlLnBhdGg9aS5wYXRoLnNsaWNlKCksZS5xdWVyeT1pLnF1ZXJ5O2Vsc2UgaWYoIi8iPT1hfHwiXFwiPT1hJiZLKGUpKWw9cmU7ZWxzZSBpZigiPyI9PWEpZS51c2VybmFtZT1pLnVzZXJuYW1lLGUucGFzc3dvcmQ9aS5wYXNzd29yZCxlLmhvc3Q9aS5ob3N0LGUucG9ydD1pLnBvcnQsZS5wYXRoPWkucGF0aC5zbGljZSgpLGUucXVlcnk9IiIsbD15ZTtlbHNle2lmKCIjIiE9YSl7ZS51c2VybmFtZT1pLnVzZXJuYW1lLGUucGFzc3dvcmQ9aS5wYXNzd29yZCxlLmhvc3Q9aS5ob3N0LGUucG9ydD1pLnBvcnQsZS5wYXRoPWkucGF0aC5zbGljZSgpLGUucGF0aC5wb3AoKSxsPXBlO2NvbnRpbnVlfWUudXNlcm5hbWU9aS51c2VybmFtZSxlLnBhc3N3b3JkPWkucGFzc3dvcmQsZS5ob3N0PWkuaG9zdCxlLnBvcnQ9aS5wb3J0LGUucGF0aD1pLnBhdGguc2xpY2UoKSxlLnF1ZXJ5PWkucXVlcnksZS5mcmFnbWVudD0iIixsPWdlfWJyZWFrO2Nhc2UgcmU6aWYoIUsoZSl8fCIvIiE9YSYmIlxcIiE9YSl7aWYoIi8iIT1hKXtlLnVzZXJuYW1lPWkudXNlcm5hbWUsZS5wYXNzd29yZD1pLnBhc3N3b3JkLGUuaG9zdD1pLmhvc3QsZS5wb3J0PWkucG9ydCxsPXBlO2NvbnRpbnVlfWw9b2V9ZWxzZSBsPWllO2JyZWFrO2Nhc2UgbmU6aWYobD1pZSwiLyIhPWF8fCIvIiE9ZC5jaGFyQXQocCsxKSljb250aW51ZTtwKys7YnJlYWs7Y2FzZSBpZTppZigiLyIhPWEmJiJcXCIhPWEpe2w9b2U7Y29udGludWV9YnJlYWs7Y2FzZSBvZTppZigiQCI9PWEpe3kmJihkPSIlNDAiK2QpLHk9ITAscz1oKGQpO2Zvcih2YXIgbT0wO208cy5sZW5ndGg7bSsrKXt2YXIgYj1zW21dO2lmKCI6IiE9Ynx8dil7dmFyIF89VihiLEYpO3Y/ZS5wYXNzd29yZCs9XzplLnVzZXJuYW1lKz1ffWVsc2Ugdj0hMH1kPSIifWVsc2UgaWYoYT09bnx8Ii8iPT1hfHwiPyI9PWF8fCIjIj09YXx8IlxcIj09YSYmSyhlKSl7aWYoeSYmIiI9PWQpcmV0dXJuIkludmFsaWQgYXV0aG9yaXR5IjtwLT1oKGQpLmxlbmd0aCsxLGQ9IiIsbD1hZX1lbHNlIGQrPWE7YnJlYWs7Y2FzZSBhZTpjYXNlIHNlOmlmKHImJiJmaWxlIj09ZS5zY2hlbWUpe2w9bGU7Y29udGludWV9aWYoIjoiIT1hfHxnKXtpZihhPT1ufHwiLyI9PWF8fCI/Ij09YXx8IiMiPT1hfHwiXFwiPT1hJiZLKGUpKXtpZihLKGUpJiYiIj09ZClyZXR1cm4iSW52YWxpZCBob3N0IjtpZihyJiYiIj09ZCYmKHooZSl8fG51bGwhPT1lLnBvcnQpKXJldHVybjtpZih1PVIoZSxkKSlyZXR1cm4gdTtpZihkPSIiLGw9aGUscilyZXR1cm47Y29udGludWV9IlsiPT1hP2c9ITA6Il0iPT1hJiYoZz0hMSksZCs9YX1lbHNle2lmKCIiPT1kKXJldHVybiJJbnZhbGlkIGhvc3QiO2lmKHU9UihlLGQpKXJldHVybiB1O2lmKGQ9IiIsbD11ZSxyPT1zZSlyZXR1cm59YnJlYWs7Y2FzZSB1ZTppZighVC50ZXN0KGEpKXtpZihhPT1ufHwiLyI9PWF8fCI/Ij09YXx8IiMiPT1hfHwiXFwiPT1hJiZLKGUpfHxyKXtpZigiIiE9ZCl7dmFyIFM9cGFyc2VJbnQoZCwxMCk7aWYoUz42NTUzNSlyZXR1cm4iSW52YWxpZCBwb3J0IjtlLnBvcnQ9SyhlKSYmUz09PXFbZS5zY2hlbWVdP251bGw6UyxkPSIifWlmKHIpcmV0dXJuO2w9aGU7Y29udGludWV9cmV0dXJuIkludmFsaWQgcG9ydCJ9ZCs9YTticmVhaztjYXNlIGNlOmlmKGUuc2NoZW1lPSJmaWxlIiwiLyI9PWF8fCJcXCI9PWEpbD1mZTtlbHNle2lmKCFpfHwiZmlsZSIhPWkuc2NoZW1lKXtsPXBlO2NvbnRpbnVlfWlmKGE9PW4pZS5ob3N0PWkuaG9zdCxlLnBhdGg9aS5wYXRoLnNsaWNlKCksZS5xdWVyeT1pLnF1ZXJ5O2Vsc2UgaWYoIj8iPT1hKWUuaG9zdD1pLmhvc3QsZS5wYXRoPWkucGF0aC5zbGljZSgpLGUucXVlcnk9IiIsbD15ZTtlbHNle2lmKCIjIiE9YSl7VyhvLnNsaWNlKHApLmpvaW4oIiIpKXx8KGUuaG9zdD1pLmhvc3QsZS5wYXRoPWkucGF0aC5zbGljZSgpLFkoZSkpLGw9cGU7Y29udGludWV9ZS5ob3N0PWkuaG9zdCxlLnBhdGg9aS5wYXRoLnNsaWNlKCksZS5xdWVyeT1pLnF1ZXJ5LGUuZnJhZ21lbnQ9IiIsbD1nZX19YnJlYWs7Y2FzZSBmZTppZigiLyI9PWF8fCJcXCI9PWEpe2w9bGU7YnJlYWt9aSYmImZpbGUiPT1pLnNjaGVtZSYmIVcoby5zbGljZShwKS5qb2luKCIiKSkmJihIKGkucGF0aFswXSwhMCk/ZS5wYXRoLnB1c2goaS5wYXRoWzBdKTplLmhvc3Q9aS5ob3N0KSxsPXBlO2NvbnRpbnVlO2Nhc2UgbGU6aWYoYT09bnx8Ii8iPT1hfHwiXFwiPT1hfHwiPyI9PWF8fCIjIj09YSl7aWYoIXImJkgoZCkpbD1wZTtlbHNlIGlmKCIiPT1kKXtpZihlLmhvc3Q9IiIscilyZXR1cm47bD1oZX1lbHNle2lmKHU9UihlLGQpKXJldHVybiB1O2lmKCJsb2NhbGhvc3QiPT1lLmhvc3QmJihlLmhvc3Q9IiIpLHIpcmV0dXJuO2Q9IiIsbD1oZX1jb250aW51ZX1kKz1hO2JyZWFrO2Nhc2UgaGU6aWYoSyhlKSl7aWYobD1wZSwiLyIhPWEmJiJcXCIhPWEpY29udGludWV9ZWxzZSBpZihyfHwiPyIhPWEpaWYocnx8IiMiIT1hKXtpZihhIT1uJiYobD1wZSwiLyIhPWEpKWNvbnRpbnVlfWVsc2UgZS5mcmFnbWVudD0iIixsPWdlO2Vsc2UgZS5xdWVyeT0iIixsPXllO2JyZWFrO2Nhc2UgcGU6aWYoYT09bnx8Ii8iPT1hfHwiXFwiPT1hJiZLKGUpfHwhciYmKCI/Ij09YXx8IiMiPT1hKSl7aWYoIi4uIj09PShjPShjPWQpLnRvTG93ZXJDYXNlKCkpfHwiJTJlLiI9PT1jfHwiLiUyZSI9PT1jfHwiJTJlJTJlIj09PWM/KFkoZSksIi8iPT1hfHwiXFwiPT1hJiZLKGUpfHxlLnBhdGgucHVzaCgiIikpOlgoZCk/Ii8iPT1hfHwiXFwiPT1hJiZLKGUpfHxlLnBhdGgucHVzaCgiIik6KCJmaWxlIj09ZS5zY2hlbWUmJiFlLnBhdGgubGVuZ3RoJiZIKGQpJiYoZS5ob3N0JiYoZS5ob3N0PSIiKSxkPWQuY2hhckF0KDApKyI6IiksZS5wYXRoLnB1c2goZCkpLGQ9IiIsImZpbGUiPT1lLnNjaGVtZSYmKGE9PW58fCI/Ij09YXx8IiMiPT1hKSlmb3IoO2UucGF0aC5sZW5ndGg+MSYmIiI9PT1lLnBhdGhbMF07KWUucGF0aC5zaGlmdCgpOyI/Ij09YT8oZS5xdWVyeT0iIixsPXllKToiIyI9PWEmJihlLmZyYWdtZW50PSIiLGw9Z2UpfWVsc2UgZCs9VihhLFUpO2JyZWFrO2Nhc2UgZGU6Ij8iPT1hPyhlLnF1ZXJ5PSIiLGw9eWUpOiIjIj09YT8oZS5mcmFnbWVudD0iIixsPWdlKTphIT1uJiYoZS5wYXRoWzBdKz1WKGEsRCkpO2JyZWFrO2Nhc2UgeWU6cnx8IiMiIT1hP2EhPW4mJigiJyI9PWEmJksoZSk/ZS5xdWVyeSs9IiUyNyI6ZS5xdWVyeSs9IiMiPT1hPyIlMjMiOlYoYSxEKSk6KGUuZnJhZ21lbnQ9IiIsbD1nZSk7YnJlYWs7Y2FzZSBnZTphIT1uJiYoZS5mcmFnbWVudCs9VihhLGopKX1wKyt9fSxtZT1mdW5jdGlvbihlKXt2YXIgdCxyLG49Yyh0aGlzLG1lLCJVUkwiKSxvPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLGE9U3RyaW5nKGUpLHM9YihuLHt0eXBlOiJVUkwifSk7aWYodm9pZCAwIT09bylpZihvIGluc3RhbmNlb2YgbWUpdD1fKG8pO2Vsc2UgaWYocj12ZSh0PXt9LFN0cmluZyhvKSkpdGhyb3cgVHlwZUVycm9yKHIpO2lmKHI9dmUocyxhLG51bGwsdCkpdGhyb3cgVHlwZUVycm9yKHIpO3ZhciB1PXMuc2VhcmNoUGFyYW1zPW5ldyBnLGY9dih1KTtmLnVwZGF0ZVNlYXJjaFBhcmFtcyhzLnF1ZXJ5KSxmLnVwZGF0ZVVSTD1mdW5jdGlvbigpe3MucXVlcnk9U3RyaW5nKHUpfHxudWxsfSxpfHwobi5ocmVmPV9lLmNhbGwobiksbi5vcmlnaW49U2UuY2FsbChuKSxuLnByb3RvY29sPUVlLmNhbGwobiksbi51c2VybmFtZT13ZS5jYWxsKG4pLG4ucGFzc3dvcmQ9VGUuY2FsbChuKSxuLmhvc3Q9QWUuY2FsbChuKSxuLmhvc3RuYW1lPUNlLmNhbGwobiksbi5wb3J0PXhlLmNhbGwobiksbi5wYXRobmFtZT1JZS5jYWxsKG4pLG4uc2VhcmNoPWtlLmNhbGwobiksbi5zZWFyY2hQYXJhbXM9T2UuY2FsbChuKSxuLmhhc2g9TmUuY2FsbChuKSl9LGJlPW1lLnByb3RvdHlwZSxfZT1mdW5jdGlvbigpe3ZhciBlPV8odGhpcyksdD1lLnNjaGVtZSxyPWUudXNlcm5hbWUsbj1lLnBhc3N3b3JkLGk9ZS5ob3N0LG89ZS5wb3J0LGE9ZS5wYXRoLHM9ZS5xdWVyeSx1PWUuZnJhZ21lbnQsYz10KyI6IjtyZXR1cm4gbnVsbCE9PWk/KGMrPSIvLyIseihlKSYmKGMrPXIrKG4/IjoiK246IiIpKyJAIiksYys9TChpKSxudWxsIT09byYmKGMrPSI6IitvKSk6ImZpbGUiPT10JiYoYys9Ii8vIiksYys9ZS5jYW5ub3RCZUFCYXNlVVJMP2FbMF06YS5sZW5ndGg/Ii8iK2Euam9pbigiLyIpOiIiLG51bGwhPT1zJiYoYys9Ij8iK3MpLG51bGwhPT11JiYoYys9IiMiK3UpLGN9LFNlPWZ1bmN0aW9uKCl7dmFyIGU9Xyh0aGlzKSx0PWUuc2NoZW1lLHI9ZS5wb3J0O2lmKCJibG9iIj09dCl0cnl7cmV0dXJuIG5ldyBVUkwodC5wYXRoWzBdKS5vcmlnaW59Y2F0Y2gobil7cmV0dXJuIm51bGwifXJldHVybiJmaWxlIiE9dCYmSyhlKT90KyI6Ly8iK0woZS5ob3N0KSsobnVsbCE9PXI/IjoiK3I6IiIpOiJudWxsIn0sRWU9ZnVuY3Rpb24oKXtyZXR1cm4gXyh0aGlzKS5zY2hlbWUrIjoifSx3ZT1mdW5jdGlvbigpe3JldHVybiBfKHRoaXMpLnVzZXJuYW1lfSxUZT1mdW5jdGlvbigpe3JldHVybiBfKHRoaXMpLnBhc3N3b3JkfSxBZT1mdW5jdGlvbigpe3ZhciBlPV8odGhpcyksdD1lLmhvc3Qscj1lLnBvcnQ7cmV0dXJuIG51bGw9PT10PyIiOm51bGw9PT1yP0wodCk6TCh0KSsiOiIrcn0sQ2U9ZnVuY3Rpb24oKXt2YXIgZT1fKHRoaXMpLmhvc3Q7cmV0dXJuIG51bGw9PT1lPyIiOkwoZSl9LHhlPWZ1bmN0aW9uKCl7dmFyIGU9Xyh0aGlzKS5wb3J0O3JldHVybiBudWxsPT09ZT8iIjpTdHJpbmcoZSl9LEllPWZ1bmN0aW9uKCl7dmFyIGU9Xyh0aGlzKSx0PWUucGF0aDtyZXR1cm4gZS5jYW5ub3RCZUFCYXNlVVJMP3RbMF06dC5sZW5ndGg/Ii8iK3Quam9pbigiLyIpOiIifSxrZT1mdW5jdGlvbigpe3ZhciBlPV8odGhpcykucXVlcnk7cmV0dXJuIGU/Ij8iK2U6IiJ9LE9lPWZ1bmN0aW9uKCl7cmV0dXJuIF8odGhpcykuc2VhcmNoUGFyYW1zfSxOZT1mdW5jdGlvbigpe3ZhciBlPV8odGhpcykuZnJhZ21lbnQ7cmV0dXJuIGU/IiMiK2U6IiJ9LFBlPWZ1bmN0aW9uKGUsdCl7cmV0dXJue2dldDplLHNldDp0LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfX07aWYoaSYmcyhiZSx7aHJlZjpQZShfZSxmdW5jdGlvbihlKXt2YXIgdD1fKHRoaXMpLHI9U3RyaW5nKGUpLG49dmUodCxyKTtpZihuKXRocm93IFR5cGVFcnJvcihuKTt2KHQuc2VhcmNoUGFyYW1zKS51cGRhdGVTZWFyY2hQYXJhbXModC5xdWVyeSl9KSxvcmlnaW46UGUoU2UpLHByb3RvY29sOlBlKEVlLGZ1bmN0aW9uKGUpe3ZhciB0PV8odGhpcyk7dmUodCxTdHJpbmcoZSkrIjoiLFEpfSksdXNlcm5hbWU6UGUod2UsZnVuY3Rpb24oZSl7dmFyIHQ9Xyh0aGlzKSxyPWgoU3RyaW5nKGUpKTtpZighRyh0KSl7dC51c2VybmFtZT0iIjtmb3IodmFyIG49MDtuPHIubGVuZ3RoO24rKyl0LnVzZXJuYW1lKz1WKHJbbl0sRil9fSkscGFzc3dvcmQ6UGUoVGUsZnVuY3Rpb24oZSl7dmFyIHQ9Xyh0aGlzKSxyPWgoU3RyaW5nKGUpKTtpZighRyh0KSl7dC5wYXNzd29yZD0iIjtmb3IodmFyIG49MDtuPHIubGVuZ3RoO24rKyl0LnBhc3N3b3JkKz1WKHJbbl0sRil9fSksaG9zdDpQZShBZSxmdW5jdGlvbihlKXt2YXIgdD1fKHRoaXMpO3QuY2Fubm90QmVBQmFzZVVSTHx8dmUodCxTdHJpbmcoZSksYWUpfSksaG9zdG5hbWU6UGUoQ2UsZnVuY3Rpb24oZSl7dmFyIHQ9Xyh0aGlzKTt0LmNhbm5vdEJlQUJhc2VVUkx8fHZlKHQsU3RyaW5nKGUpLHNlKX0pLHBvcnQ6UGUoeGUsZnVuY3Rpb24oZSl7dmFyIHQ9Xyh0aGlzKTtHKHQpfHwoIiI9PShlPVN0cmluZyhlKSk/dC5wb3J0PW51bGw6dmUodCxlLHVlKSl9KSxwYXRobmFtZTpQZShJZSxmdW5jdGlvbihlKXt2YXIgdD1fKHRoaXMpO3QuY2Fubm90QmVBQmFzZVVSTHx8KHQucGF0aD1bXSx2ZSh0LGUrIiIsaGUpKX0pLHNlYXJjaDpQZShrZSxmdW5jdGlvbihlKXt2YXIgdD1fKHRoaXMpOyIiPT0oZT1TdHJpbmcoZSkpP3QucXVlcnk9bnVsbDooIj8iPT1lLmNoYXJBdCgwKSYmKGU9ZS5zbGljZSgxKSksdC5xdWVyeT0iIix2ZSh0LGUseWUpKSx2KHQuc2VhcmNoUGFyYW1zKS51cGRhdGVTZWFyY2hQYXJhbXModC5xdWVyeSl9KSxzZWFyY2hQYXJhbXM6UGUoT2UpLGhhc2g6UGUoTmUsZnVuY3Rpb24oZSl7dmFyIHQ9Xyh0aGlzKTsiIiE9KGU9U3RyaW5nKGUpKT8oIiMiPT1lLmNoYXJBdCgwKSYmKGU9ZS5zbGljZSgxKSksdC5mcmFnbWVudD0iIix2ZSh0LGUsZ2UpKTp0LmZyYWdtZW50PW51bGx9KX0pLHUoYmUsInRvSlNPTiIsZnVuY3Rpb24oKXtyZXR1cm4gX2UuY2FsbCh0aGlzKX0se2VudW1lcmFibGU6ITB9KSx1KGJlLCJ0b1N0cmluZyIsZnVuY3Rpb24oKXtyZXR1cm4gX2UuY2FsbCh0aGlzKX0se2VudW1lcmFibGU6ITB9KSxhKXt2YXIgUmU9YS5jcmVhdGVPYmplY3RVUkwsQmU9YS5yZXZva2VPYmplY3RVUkw7UmUmJnUobWUsImNyZWF0ZU9iamVjdFVSTCIsZnVuY3Rpb24oZSl7cmV0dXJuIFJlLmFwcGx5KGEsYXJndW1lbnRzKX0pLEJlJiZ1KG1lLCJyZXZva2VPYmplY3RVUkwiLGZ1bmN0aW9uKGUpe3JldHVybiBCZS5hcHBseShhLGFyZ3VtZW50cyl9KX1yKDE3NykobWUsIlVSTCIpLHIoMTQzKSh7Z2xvYmFsOiEwLGZvcmNlZDohbyxzaGFtOiFpfSx7VVJMOm1lfSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig0MTgpLGk9cigxNDIpLG89cig0MTApLGE9aS5zZXQscz1pLmdldHRlckZvcigiU3RyaW5nIEl0ZXJhdG9yIik7byhTdHJpbmcsIlN0cmluZyIsZnVuY3Rpb24oZSl7YSh0aGlzLHt0eXBlOiJTdHJpbmcgSXRlcmF0b3IiLHN0cmluZzpTdHJpbmcoZSksaW5kZXg6MH0pfSxmdW5jdGlvbigpe3ZhciBlLHQ9cyh0aGlzKSxyPXQuc3RyaW5nLGk9dC5pbmRleDtyZXR1cm4gaT49ci5sZW5ndGg/e3ZhbHVlOnZvaWQgMCxkb25lOiEwfTooZT1uKHIsaSwhMCksdC5pbmRleCs9ZS5sZW5ndGgse3ZhbHVlOmUsZG9uZTohMX0pfSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig0MDYpLGk9cig0MTIpLG89cig0MTEpLGE9cigxNzIpLHM9cigyMzgpLHU9T2JqZWN0LmFzc2lnbjtlLmV4cG9ydHM9IXV8fHIoNjgpKGZ1bmN0aW9uKCl7dmFyIGU9e30sdD17fSxyPVN5bWJvbCgpO3JldHVybiBlW3JdPTcsImFiY2RlZmdoaWprbG1ub3BxcnN0Ii5zcGxpdCgiIikuZm9yRWFjaChmdW5jdGlvbihlKXt0W2VdPWV9KSw3IT11KHt9LGUpW3JdfHwiYWJjZGVmZ2hpamtsbW5vcHFyc3QiIT1uKHUoe30sdCkpLmpvaW4oIiIpfSk/ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9YShlKSx1PWFyZ3VtZW50cy5sZW5ndGgsYz0xLGY9aS5mLGw9by5mO3U+YzspZm9yKHZhciBoLHA9cyhhcmd1bWVudHNbYysrXSksZD1mP24ocCkuY29uY2F0KGYocCkpOm4ocCkseT1kLmxlbmd0aCxnPTA7eT5nOylsLmNhbGwocCxoPWRbZysrXSkmJihyW2hdPXBbaF0pO3JldHVybiByfTp1fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMTcxKSxpPXIoMTcyKSxvPXIoNzQ2KSxhPXIoNzQ3KSxzPXIoMjQwKSx1PXIoNzQ4KSxjPXIoMjUyKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQscixmLGwsaD1pKGUpLHA9ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXM/dGhpczpBcnJheSxkPWFyZ3VtZW50cy5sZW5ndGgseT1kPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxnPXZvaWQgMCE9PXksdj0wLG09YyhoKTtpZihnJiYoeT1uKHksZD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsMikpLHZvaWQgMD09bXx8cD09QXJyYXkmJmEobSkpZm9yKHI9bmV3IHAodD1zKGgubGVuZ3RoKSk7dD52O3YrKyl1KHIsdixnP3koaFt2XSx2KTpoW3ZdKTtlbHNlIGZvcihsPW0uY2FsbChoKSxyPW5ldyBwOyEoZj1sLm5leHQoKSkuZG9uZTt2KyspdShyLHYsZz9vKGwseSxbZi52YWx1ZSx2XSwhMCk6Zi52YWx1ZSk7cmV0dXJuIHIubGVuZ3RoPXYscn19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDgxKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LHIsaSl7dHJ5e3JldHVybiBpP3QobihyKVswXSxyWzFdKTp0KHIpfWNhdGNoKGEpe3ZhciBvPWUucmV0dXJuO3Rocm93IHZvaWQgMCE9PW8mJm4oby5jYWxsKGUpKSxhfX19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDE0MSksaT1yKDUzKSgiaXRlcmF0b3IiKSxvPUFycmF5LnByb3RvdHlwZTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PWUmJihuLkFycmF5PT09ZXx8b1tpXT09PWUpfX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDI0NCksaT1yKDE0MCksbz1yKDE3NCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyKXt2YXIgYT1uKHQpO2EgaW4gZT9pLmYoZSxhLG8oMCxyKSk6ZVthXT1yfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTA3KSxpPXIoNTMpKCJ0b1N0cmluZ1RhZyIpLG89IkFyZ3VtZW50cyI9PW4oZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQscixhO3JldHVybiB2b2lkIDA9PT1lPyJVbmRlZmluZWQiOm51bGw9PT1lPyJOdWxsIjoic3RyaW5nIj09dHlwZW9mKHI9ZnVuY3Rpb24oZSx0KXt0cnl7cmV0dXJuIGVbdF19Y2F0Y2gocil7fX0odD1PYmplY3QoZSksaSkpP3I6bz9uKHQpOiJPYmplY3QiPT0oYT1uKHQpKSYmImZ1bmN0aW9uIj09dHlwZW9mIHQuY2FsbGVlPyJBcmd1bWVudHMiOmF9fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPS9bXlwwLVx1MDA3RV0vLGk9L1tcdTAwMkVcdTMwMDJcdUZGMEVcdUZGNjFdL2csbz0iT3ZlcmZsb3c6IGlucHV0IG5lZWRzIHdpZGVyIGludGVnZXJzIHRvIHByb2Nlc3MiLGE9TWF0aC5mbG9vcixzPVN0cmluZy5mcm9tQ2hhckNvZGUsdT1mdW5jdGlvbihlKXtyZXR1cm4gZSsyMis3NSooZTwyNil9LGM9ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPTA7Zm9yKGU9cj9hKGUvNzAwKTplPj4xLGUrPWEoZS90KTtlPjQ1NTtuKz0zNillPWEoZS8zNSk7cmV0dXJuIGEobiszNiplLyhlKzM4KSl9LGY9ZnVuY3Rpb24oZSl7dmFyIHQscixuPVtdLGk9KGU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLHI9MCxuPWUubGVuZ3RoO3I8bjspe3ZhciBpPWUuY2hhckNvZGVBdChyKyspO2lmKGk+PTU1Mjk2JiZpPD01NjMxOSYmcjxuKXt2YXIgbz1lLmNoYXJDb2RlQXQocisrKTs1NjMyMD09KDY0NTEyJm8pP3QucHVzaCgoKDEwMjMmaSk8PDEwKSsoMTAyMyZvKSs2NTUzNik6KHQucHVzaChpKSxyLS0pfWVsc2UgdC5wdXNoKGkpfXJldHVybiB0fShlKSkubGVuZ3RoLGY9MTI4LGw9MCxoPTcyO2Zvcih0PTA7dDxlLmxlbmd0aDt0KyspKHI9ZVt0XSk8MTI4JiZuLnB1c2gocyhyKSk7dmFyIHA9bi5sZW5ndGgsZD1wO2ZvcihwJiZuLnB1c2goIi0iKTtkPGk7KXt2YXIgeT0yMTQ3NDgzNjQ3O2Zvcih0PTA7dDxlLmxlbmd0aDt0KyspKHI9ZVt0XSk+PWYmJnI8eSYmKHk9cik7dmFyIGc9ZCsxO2lmKHktZj5hKCgyMTQ3NDgzNjQ3LWwpL2cpKXRocm93IFJhbmdlRXJyb3Iobyk7Zm9yKGwrPSh5LWYpKmcsZj15LHQ9MDt0PGUubGVuZ3RoO3QrKyl7aWYoKHI9ZVt0XSk8ZiYmKytsPjIxNDc0ODM2NDcpdGhyb3cgUmFuZ2VFcnJvcihvKTtpZihyPT1mKXtmb3IodmFyIHY9bCxtPTM2OzttKz0zNil7dmFyIGI9bTw9aD8xOm0+PWgrMjY/MjY6bS1oO2lmKHY8YilicmVhazt2YXIgXz12LWIsUz0zNi1iO24ucHVzaChzKHUoYitfJVMpKSksdj1hKF8vUyl9bi5wdXNoKHModSh2KSkpLGg9YyhsLGcsZD09cCksbD0wLCsrZH19KytsLCsrZn1yZXR1cm4gbi5qb2luKCIiKX07ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0LHIsbz1bXSxhPWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKGksIi4iKS5zcGxpdCgiLiIpO2Zvcih0PTA7dDxhLmxlbmd0aDt0Kyspcj1hW3RdLG8ucHVzaChuLnRlc3Qocik/InhuLS0iK2Yocik6cik7cmV0dXJuIG8uam9pbigiLiIpfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTQ0KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaSBpbiB0KW4oZSxpLHRbaV0scik7cmV0dXJuIGV9fSxmdW5jdGlvbihlLHQscil7dmFyIG49cig4MSksaT1yKDI1Mik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PWkoZSk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgVHlwZUVycm9yKFN0cmluZyhlKSsiIGlzIG5vdCBpdGVyYWJsZSIpO3JldHVybiBuKHQuY2FsbChlKSl9fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IoMTQzKSh7dGFyZ2V0OiJVUkwiLHByb3RvOiEwLGVudW1lcmFibGU6ITB9LHt0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm4gVVJMLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRoaXMpfX0pfSxmdW5jdGlvbihlLHQscil7cig3NTUpLHIoNzU3KSxyKDc1OCkscig3NTkpLHIoNzYwKSxyKDc2MSkscig3NjIpLHIoNzYzKSxyKDc2NCkscig3NjUpLHIoNzY2KSxyKDc2Nykscig3NjgpLHIoNzY5KSxyKDc3MCkscig3NzEpLHIoNzcyKSxyKDc3Mykscig3NzQpLHIoNzc1KSxyKDc3Nikscig3NzcpLHIoNzc4KSxyKDc3OSkscig3ODApLHIoNzgxKSxyKDc4Mikscig3ODMpLHIoNzg0KSxyKDc4NSkscig3ODYpLHIoNzg3KSxyKDc4OCkscig3ODkpLHIoNzkwKSxyKDc5MSkscig3OTIpLHIoNzkzKSxyKDc5NCkscig3OTUpLHIoNzk2KSxyKDc5Nykscig3OTgpLHIoODAwKSxyKDgwMSkscig4MDIpLHIoODAzKSxyKDgwNCkscig4MDUpLHIoODA2KSxyKDgwNykscig4MDgpLHIoODA5KSxyKDgxMCkscig4MTEpLHIoODEyKSxyKDgxMykscig4MTQpLHIoODE1KSxyKDgxNikscig4MTcpLHIoODE4KSxyKDgxOSkscig4MjApLHIoODIxKSxyKDgyMikscig4MjMpLHIoODI0KSxyKDgyNSkscig4MjYpLHIoODI3KSxyKDgyOCkscig4MjkpLHIoODMwKSxyKDgzMSkscig4MzIpLHIoODMzKSxyKDgzNSkscig4MzYpLHIoODM4KSxyKDgzOSkscig4NDApLHIoODQxKSxyKDg0Mikscig4NDMpLHIoODQ0KSxyKDg0Nikscig4NDcpLHIoODQ4KSxyKDg0OSkscig4NTApLHIoODUxKSxyKDg1Mikscig4NTMpLHIoODU0KSxyKDg1NSkscig4NTYpLHIoODU3KSxyKDg1OCkscig0MzkpLHIoODU5KSxyKDQ0MSkscig4NjApLHIoNDQyKSxyKDg2MSkscig4NjIpLHIoODYzKSxyKDg2NCkscig0NDMpLHIoODY3KSxyKDg2OCkscig4NjkpLHIoODcwKSxyKDg3MSkscig4NzIpLHIoODczKSxyKDg3NCkscig4NzUpLHIoODc2KSxyKDg3Nykscig4NzgpLHIoODc5KSxyKDg4MCkscig4ODEpLHIoODgyKSxyKDg4Mykscig4ODQpLHIoODg1KSxyKDg4Nikscig4ODcpLHIoODg4KSxyKDg4OSkscig4OTApLHIoODkxKSxyKDg5Mikscig4OTMpLHIoODk0KSxyKDg5NSksZS5leHBvcnRzPXIoMjcpfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMTcpLGk9cig1MCksbz1yKDI5KSxhPXIoMikscz1yKDQ5KSx1PXIoODMpLktFWSxjPXIoMTQpLGY9cigxNzgpLGw9cigxMDkpLGg9cig5NCkscD1yKDIxKSxkPXIoMjUzKSx5PXIoNDIyKSxnPXIoNzU2KSx2PXIoMTgxKSxtPXIoMTIpLGI9cigxMyksXz1yKDM2KSxTPXIoNTEpLEU9cig4Miksdz1yKDkzKSxUPXIoOTcpLEE9cig0MjUpLEM9cig2MSkseD1yKDE4MCksST1yKDI4KSxrPXIoMTEwKSxPPUMuZixOPUkuZixQPUEuZixSPW4uU3ltYm9sLEI9bi5KU09OLE09QiYmQi5zdHJpbmdpZnksTD1wKCJfaGlkZGVuIiksRD1wKCJ0b1ByaW1pdGl2ZSIpLGo9e30ucHJvcGVydHlJc0VudW1lcmFibGUsVT1mKCJzeW1ib2wtcmVnaXN0cnkiKSxGPWYoInN5bWJvbHMiKSxWPWYoIm9wLXN5bWJvbHMiKSxxPU9iamVjdC5wcm90b3R5cGUsSz0iZnVuY3Rpb24iPT10eXBlb2YgUiYmISF4LmYsej1uLlFPYmplY3QsRz0henx8IXoucHJvdG90eXBlfHwhei5wcm90b3R5cGUuZmluZENoaWxkLEg9byYmYyhmdW5jdGlvbigpe3JldHVybiA3IT1UKE4oe30sImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTih0aGlzLCJhIix7dmFsdWU6N30pLmF9fSkpLmF9KT9mdW5jdGlvbihlLHQscil7dmFyIG49TyhxLHQpO24mJmRlbGV0ZSBxW3RdLE4oZSx0LHIpLG4mJmUhPT1xJiZOKHEsdCxuKX06TixXPWZ1bmN0aW9uKGUpe3ZhciB0PUZbZV09VChSLnByb3RvdHlwZSk7cmV0dXJuIHQuX2s9ZSx0fSxZPUsmJiJzeW1ib2wiPT10eXBlb2YgUi5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgUn0sWD1mdW5jdGlvbihlLHQscil7cmV0dXJuIGU9PT1xJiZYKFYsdCxyKSxtKGUpLHQ9RSh0LCEwKSxtKHIpLGkoRix0KT8oci5lbnVtZXJhYmxlPyhpKGUsTCkmJmVbTF1bdF0mJihlW0xdW3RdPSExKSxyPVQocix7ZW51bWVyYWJsZTp3KDAsITEpfSkpOihpKGUsTCl8fE4oZSxMLHcoMSx7fSkpLGVbTF1bdF09ITApLEgoZSx0LHIpKTpOKGUsdCxyKX0sUT1mdW5jdGlvbihlLHQpe20oZSk7Zm9yKHZhciByLG49Zyh0PVModCkpLGk9MCxvPW4ubGVuZ3RoO28+aTspWChlLHI9bltpKytdLHRbcl0pO3JldHVybiBlfSwkPWZ1bmN0aW9uKGUpe3ZhciB0PWouY2FsbCh0aGlzLGU9RShlLCEwKSk7cmV0dXJuISh0aGlzPT09cSYmaShGLGUpJiYhaShWLGUpKSYmKCEodHx8IWkodGhpcyxlKXx8IWkoRixlKXx8aSh0aGlzLEwpJiZ0aGlzW0xdW2VdKXx8dCl9LFo9ZnVuY3Rpb24oZSx0KXtpZihlPVMoZSksdD1FKHQsITApLGUhPT1xfHwhaShGLHQpfHxpKFYsdCkpe3ZhciByPU8oZSx0KTtyZXR1cm4hcnx8IWkoRix0KXx8aShlLEwpJiZlW0xdW3RdfHwoci5lbnVtZXJhYmxlPSEwKSxyfX0sSj1mdW5jdGlvbihlKXtmb3IodmFyIHQscj1QKFMoZSkpLG49W10sbz0wO3IubGVuZ3RoPm87KWkoRix0PXJbbysrXSl8fHQ9PUx8fHQ9PXV8fG4ucHVzaCh0KTtyZXR1cm4gbn0sZWU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LHI9ZT09PXEsbj1QKHI/VjpTKGUpKSxvPVtdLGE9MDtuLmxlbmd0aD5hOykhaShGLHQ9blthKytdKXx8ciYmIWkocSx0KXx8by5wdXNoKEZbdF0pO3JldHVybiBvfTtLfHwocygoUj1mdW5jdGlvbigpe2lmKHRoaXMgaW5zdGFuY2VvZiBSKXRocm93IFR5cGVFcnJvcigiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yISIpO3ZhciBlPWgoYXJndW1lbnRzLmxlbmd0aD4wP2FyZ3VtZW50c1swXTp2b2lkIDApO3JldHVybiBvJiZHJiZIKHEsZSx7Y29uZmlndXJhYmxlOiEwLHNldDpmdW5jdGlvbiB0KHIpe3RoaXM9PT1xJiZ0LmNhbGwoVixyKSxpKHRoaXMsTCkmJmkodGhpc1tMXSxlKSYmKHRoaXNbTF1bZV09ITEpLEgodGhpcyxlLHcoMSxyKSl9fSksVyhlKX0pLnByb3RvdHlwZSwidG9TdHJpbmciLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2t9KSxDLmY9WixJLmY9WCxyKDk4KS5mPUEuZj1KLHIoMTQ2KS5mPSQseC5mPWVlLG8mJiFyKDk1KSYmcyhxLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsJCwhMCksZC5mPWZ1bmN0aW9uKGUpe3JldHVybiBXKHAoZSkpfSksYShhLkcrYS5XK2EuRiohSyx7U3ltYm9sOlJ9KTtmb3IodmFyIHRlPSJoYXNJbnN0YW5jZSxpc0NvbmNhdFNwcmVhZGFibGUsaXRlcmF0b3IsbWF0Y2gscmVwbGFjZSxzZWFyY2gsc3BlY2llcyxzcGxpdCx0b1ByaW1pdGl2ZSx0b1N0cmluZ1RhZyx1bnNjb3BhYmxlcyIuc3BsaXQoIiwiKSxyZT0wO3RlLmxlbmd0aD5yZTspcCh0ZVtyZSsrXSk7Zm9yKHZhciBuZT1rKHAuc3RvcmUpLGllPTA7bmUubGVuZ3RoPmllOyl5KG5lW2llKytdKTthKGEuUythLkYqIUssIlN5bWJvbCIse2ZvcjpmdW5jdGlvbihlKXtyZXR1cm4gaShVLGUrPSIiKT9VW2VdOlVbZV09UihlKX0sa2V5Rm9yOmZ1bmN0aW9uKGUpe2lmKCFZKGUpKXRocm93IFR5cGVFcnJvcihlKyIgaXMgbm90IGEgc3ltYm9sISIpO2Zvcih2YXIgdCBpbiBVKWlmKFVbdF09PT1lKXJldHVybiB0fSx1c2VTZXR0ZXI6ZnVuY3Rpb24oKXtHPSEwfSx1c2VTaW1wbGU6ZnVuY3Rpb24oKXtHPSExfX0pLGEoYS5TK2EuRiohSywiT2JqZWN0Iix7Y3JlYXRlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQ/VChlKTpRKFQoZSksdCl9LGRlZmluZVByb3BlcnR5OlgsZGVmaW5lUHJvcGVydGllczpRLGdldE93blByb3BlcnR5RGVzY3JpcHRvcjpaLGdldE93blByb3BlcnR5TmFtZXM6SixnZXRPd25Qcm9wZXJ0eVN5bWJvbHM6ZWV9KTt2YXIgb2U9YyhmdW5jdGlvbigpe3guZigxKX0pO2EoYS5TK2EuRipvZSwiT2JqZWN0Iix7Z2V0T3duUHJvcGVydHlTeW1ib2xzOmZ1bmN0aW9uKGUpe3JldHVybiB4LmYoXyhlKSl9fSksQiYmYShhLlMrYS5GKighS3x8YyhmdW5jdGlvbigpe3ZhciBlPVIoKTtyZXR1cm4iW251bGxdIiE9TShbZV0pfHwie30iIT1NKHthOmV9KXx8Int9IiE9TShPYmplY3QoZSkpfSkpLCJKU09OIix7c3RyaW5naWZ5OmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxyLG49W2VdLGk9MTthcmd1bWVudHMubGVuZ3RoPmk7KW4ucHVzaChhcmd1bWVudHNbaSsrXSk7aWYocj10PW5bMV0sKGIodCl8fHZvaWQgMCE9PWUpJiYhWShlKSlyZXR1cm4gdih0KXx8KHQ9ZnVuY3Rpb24oZSx0KXtpZigiZnVuY3Rpb24iPT10eXBlb2YgciYmKHQ9ci5jYWxsKHRoaXMsZSx0KSksIVkodCkpcmV0dXJuIHR9KSxuWzFdPXQsTS5hcHBseShCLG4pfX0pLFIucHJvdG90eXBlW0RdfHxyKDU0KShSLnByb3RvdHlwZSxELFIucHJvdG90eXBlLnZhbHVlT2YpLGwoUiwiU3ltYm9sIiksbChNYXRoLCJNYXRoIiwhMCksbChuLkpTT04sIkpTT04iLCEwKX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTEwKSxpPXIoMTgwKSxvPXIoMTQ2KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9bihlKSxyPWkuZjtpZihyKWZvcih2YXIgYSxzPXIoZSksdT1vLmYsYz0wO3MubGVuZ3RoPmM7KXUuY2FsbChlLGE9c1tjKytdKSYmdC5wdXNoKGEpO3JldHVybiB0fX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk9iamVjdCIse2NyZWF0ZTpyKDk3KX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKTtuKG4uUytuLkYqIXIoMjkpLCJPYmplY3QiLHtkZWZpbmVQcm9wZXJ0eTpyKDI4KS5mfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5TK24uRiohcigyOSksIk9iamVjdCIse2RlZmluZVByb3BlcnRpZXM6cig0MjQpfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDUxKSxpPXIoNjEpLmY7cig2MikoImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXtyZXR1cm4gaShuKGUpLHQpfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigzNiksaT1yKDk5KTtyKDYyKSgiZ2V0UHJvdG90eXBlT2YiLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBpKG4oZSkpfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigzNiksaT1yKDExMCk7cig2MikoImtleXMiLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBpKG4oZSkpfX0pfSxmdW5jdGlvbihlLHQscil7cig2MikoImdldE93blByb3BlcnR5TmFtZXMiLGZ1bmN0aW9uKCl7cmV0dXJuIHIoNDI1KS5mfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDEzKSxpPXIoODMpLm9uRnJlZXplO3IoNjIpKCJmcmVlemUiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZSYmbih0KT9lKGkodCkpOnR9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDEzKSxpPXIoODMpLm9uRnJlZXplO3IoNjIpKCJzZWFsIixmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUmJm4odCk/ZShpKHQpKTp0fX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxMyksaT1yKDgzKS5vbkZyZWV6ZTtyKDYyKSgicHJldmVudEV4dGVuc2lvbnMiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZSYmbih0KT9lKGkodCkpOnR9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDEzKTtyKDYyKSgiaXNGcm96ZW4iLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4hbih0KXx8ISFlJiZlKHQpfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxMyk7cig2MikoImlzU2VhbGVkIixmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIW4odCl8fCEhZSYmZSh0KX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTMpO3IoNjIpKCJpc0V4dGVuc2libGUiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4hIW4odCkmJighZXx8ZSh0KSl9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5TK24uRiwiT2JqZWN0Iix7YXNzaWduOnIoNDI2KX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKTtuKG4uUywiT2JqZWN0Iix7aXM6cig0MjcpfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5TLCJPYmplY3QiLHtzZXRQcm90b3R5cGVPZjpyKDI1Nikuc2V0fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigxNDcpLGk9e307aVtyKDIxKSgidG9TdHJpbmdUYWciKV09InoiLGkrIiIhPSJbb2JqZWN0IHpdIiYmcig0OSkoT2JqZWN0LnByb3RvdHlwZSwidG9TdHJpbmciLGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgIituKHRoaXMpKyJdIn0sITApfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKTtuKG4uUCwiRnVuY3Rpb24iLHtiaW5kOnIoNDI4KX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyOCkuZixpPUZ1bmN0aW9uLnByb3RvdHlwZSxvPS9eXHMqZnVuY3Rpb24gKFteIChdKikvOyJuYW1lImluIGl8fHIoMjkpJiZuKGksIm5hbWUiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dHJ5e3JldHVybigiIit0aGlzKS5tYXRjaChvKVsxXX1jYXRjaChlKXtyZXR1cm4iIn19fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigxMyksaT1yKDk5KSxvPXIoMjEpKCJoYXNJbnN0YW5jZSIpLGE9RnVuY3Rpb24ucHJvdG90eXBlO28gaW4gYXx8cigyOCkuZihhLG8se3ZhbHVlOmZ1bmN0aW9uKGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0aGlzfHwhbihlKSlyZXR1cm4hMTtpZighbih0aGlzLnByb3RvdHlwZSkpcmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzO2Zvcig7ZT1pKGUpOylpZih0aGlzLnByb3RvdHlwZT09PWUpcmV0dXJuITA7cmV0dXJuITF9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cig0MjkpO24obi5HK24uRioocGFyc2VJbnQhPWkpLHtwYXJzZUludDppfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cig0MzApO24obi5HK24uRioocGFyc2VGbG9hdCE9aSkse3BhcnNlRmxvYXQ6aX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMTcpLGk9cig1MCksbz1yKDcwKSxhPXIoMjU4KSxzPXIoODIpLHU9cigxNCksYz1yKDk4KS5mLGY9cig2MSkuZixsPXIoMjgpLmYsaD1yKDExMSkudHJpbSxwPW4uTnVtYmVyLGQ9cCx5PXAucHJvdG90eXBlLGc9Ik51bWJlciI9PW8ocig5NykoeSkpLHY9InRyaW0iaW4gU3RyaW5nLnByb3RvdHlwZSxtPWZ1bmN0aW9uKGUpe3ZhciB0PXMoZSwhMSk7aWYoInN0cmluZyI9PXR5cGVvZiB0JiZ0Lmxlbmd0aD4yKXt2YXIgcixuLGksbz0odD12P3QudHJpbSgpOmgodCwzKSkuY2hhckNvZGVBdCgwKTtpZig0Mz09PW98fDQ1PT09byl7aWYoODg9PT0ocj10LmNoYXJDb2RlQXQoMikpfHwxMjA9PT1yKXJldHVybiBOYU59ZWxzZSBpZig0OD09PW8pe3N3aXRjaCh0LmNoYXJDb2RlQXQoMSkpe2Nhc2UgNjY6Y2FzZSA5ODpuPTIsaT00OTticmVhaztjYXNlIDc5OmNhc2UgMTExOm49OCxpPTU1O2JyZWFrO2RlZmF1bHQ6cmV0dXJuK3R9Zm9yKHZhciBhLHU9dC5zbGljZSgyKSxjPTAsZj11Lmxlbmd0aDtjPGY7YysrKWlmKChhPXUuY2hhckNvZGVBdChjKSk8NDh8fGE+aSlyZXR1cm4gTmFOO3JldHVybiBwYXJzZUludCh1LG4pfX1yZXR1cm4rdH07aWYoIXAoIiAwbzEiKXx8IXAoIjBiMSIpfHxwKCIrMHgxIikpe3A9ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aDwxPzA6ZSxyPXRoaXM7cmV0dXJuIHIgaW5zdGFuY2VvZiBwJiYoZz91KGZ1bmN0aW9uKCl7eS52YWx1ZU9mLmNhbGwocil9KToiTnVtYmVyIiE9byhyKSk/YShuZXcgZChtKHQpKSxyLHApOm0odCl9O2Zvcih2YXIgYixfPXIoMjkpP2MoZCk6Ik1BWF9WQUxVRSxNSU5fVkFMVUUsTmFOLE5FR0FUSVZFX0lORklOSVRZLFBPU0lUSVZFX0lORklOSVRZLEVQU0lMT04saXNGaW5pdGUsaXNJbnRlZ2VyLGlzTmFOLGlzU2FmZUludGVnZXIsTUFYX1NBRkVfSU5URUdFUixNSU5fU0FGRV9JTlRFR0VSLHBhcnNlRmxvYXQscGFyc2VJbnQsaXNJbnRlZ2VyIi5zcGxpdCgiLCIpLFM9MDtfLmxlbmd0aD5TO1MrKylpKGQsYj1fW1NdKSYmIWkocCxiKSYmbChwLGIsZihkLGIpKTtwLnByb3RvdHlwZT15LHkuY29uc3RydWN0b3I9cCxyKDQ5KShuLCJOdW1iZXIiLHApfX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIpLGk9cig2MCksbz1yKDQzMSksYT1yKDI1OSkscz0xLi50b0ZpeGVkLHU9TWF0aC5mbG9vcixjPVswLDAsMCwwLDAsMF0sZj0iTnVtYmVyLnRvRml4ZWQ6IGluY29ycmVjdCBpbnZvY2F0aW9uISIsbD1mdW5jdGlvbihlLHQpe2Zvcih2YXIgcj0tMSxuPXQ7KytyPDY7KW4rPWUqY1tyXSxjW3JdPW4lMWU3LG49dShuLzFlNyl9LGg9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTYscj0wOy0tdD49MDspcis9Y1t0XSxjW3RdPXUoci9lKSxyPXIlZSoxZTd9LHA9ZnVuY3Rpb24oKXtmb3IodmFyIGU9Nix0PSIiOy0tZT49MDspaWYoIiIhPT10fHwwPT09ZXx8MCE9PWNbZV0pe3ZhciByPVN0cmluZyhjW2VdKTt0PSIiPT09dD9yOnQrYS5jYWxsKCIwIiw3LXIubGVuZ3RoKStyfXJldHVybiB0fSxkPWZ1bmN0aW9uIGUodCxyLG4pe3JldHVybiAwPT09cj9uOnIlMj09PTE/ZSh0LHItMSxuKnQpOmUodCp0LHIvMixuKX07bihuLlArbi5GKighIXMmJigiMC4wMDAiIT09OGUtNS50b0ZpeGVkKDMpfHwiMSIhPT0uOS50b0ZpeGVkKDApfHwiMS4yNSIhPT0xLjI1NS50b0ZpeGVkKDIpfHwiMTAwMDAwMDAwMDAwMDAwMDEyOCIhPT0oMHhkZTBiNmIzYTc2NDAwODApLnRvRml4ZWQoMCkpfHwhcigxNCkoZnVuY3Rpb24oKXtzLmNhbGwoe30pfSkpLCJOdW1iZXIiLHt0b0ZpeGVkOmZ1bmN0aW9uKGUpe3ZhciB0LHIsbixzLHU9byh0aGlzLGYpLGM9aShlKSx5PSIiLGc9IjAiO2lmKGM8MHx8Yz4yMCl0aHJvdyBSYW5nZUVycm9yKGYpO2lmKHUhPXUpcmV0dXJuIk5hTiI7aWYodTw9LTFlMjF8fHU+PTFlMjEpcmV0dXJuIFN0cmluZyh1KTtpZih1PDAmJih5PSItIix1PS11KSx1PjFlLTIxKWlmKHI9KHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAscj1lO3I+PTQwOTY7KXQrPTEyLHIvPTQwOTY7Zm9yKDtyPj0yOyl0Kz0xLHIvPTI7cmV0dXJuIHR9KHUqZCgyLDY5LDEpKS02OSk8MD91KmQoMiwtdCwxKTp1L2QoMix0LDEpLHIqPTQ1MDM1OTk2MjczNzA0OTYsKHQ9NTItdCk+MCl7Zm9yKGwoMCxyKSxuPWM7bj49NzspbCgxZTcsMCksbi09Nztmb3IobChkKDEwLG4sMSksMCksbj10LTE7bj49MjM7KWgoMTw8MjMpLG4tPTIzO2goMTw8biksbCgxLDEpLGgoMiksZz1wKCl9ZWxzZSBsKDAsciksbCgxPDwtdCwwKSxnPXAoKSthLmNhbGwoIg=="
}

Changelog:

{
    "2020.03.29 15:17": "base64:K2EtMV0sdVtmKy0tYV09cztlbHNlIGlmKDghPWMpcmV0dXJuO3JldHVybiB1fSxMPWZ1bmN0aW9uKGUpe3ZhciB0LHIsbixpO2lmKCJudW1iZXIiPT10eXBlb2YgZSl7Zm9yKHQ9W10scj0wO3I8NDtyKyspdC51bnNoaWZ0KGUlMjU2KSxlPU1hdGguZmxvb3IoZS8yNTYpO3JldHVybiB0LmpvaW4oIi4iKX1pZigib2JqZWN0Ij09dHlwZW9mIGUpe2Zvcih0PSIiLG49ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PW51bGwscj0xLG49bnVsbCxpPTAsbz0wO288ODtvKyspMCE9PWVbb10/KGk+ciYmKHQ9bixyPWkpLG49bnVsbCxpPTApOihudWxsPT09biYmKG49byksKytpKTtyZXR1cm4gaT5yJiYodD1uLHI9aSksdH0oZSkscj0wO3I8ODtyKyspaSYmMD09PWVbcl18fChpJiYoaT0hMSksbj09PXI/KHQrPXI/IjoiOiI6OiIsaT0hMCk6KHQrPWVbcl0udG9TdHJpbmcoMTYpLHI8NyYmKHQrPSI6IikpKTtyZXR1cm4iWyIrdCsiXSJ9cmV0dXJuIGV9LEQ9e30saj1sKHt9LEQseyIgIjoxLCciJzoxLCI8IjoxLCI+IjoxLCJgIjoxfSksVT1sKHt9LGoseyIjIjoxLCI/IjoxLCJ7IjoxLCJ9IjoxfSksRj1sKHt9LFUseyIvIjoxLCI6IjoxLCI7IjoxLCI9IjoxLCJAIjoxLCJbIjoxLCJcXCI6MSwiXSI6MSwiXiI6MSwifCI6MX0pLFY9ZnVuY3Rpb24oZSx0KXt2YXIgcj1wKGUsMCk7cmV0dXJuIHI+MzImJnI8MTI3JiYhZih0LGUpP2U6ZW5jb2RlVVJJQ29tcG9uZW50KGUpfSxxPXtmdHA6MjEsZmlsZTpudWxsLGdvcGhlcjo3MCxodHRwOjgwLGh0dHBzOjQ0Myx3czo4MCx3c3M6NDQzfSxLPWZ1bmN0aW9uKGUpe3JldHVybiBmKHEsZS5zY2hlbWUpfSx6PWZ1bmN0aW9uKGUpe3JldHVybiIiIT1lLnVzZXJuYW1lfHwiIiE9ZS5wYXNzd29yZH0sRz1mdW5jdGlvbihlKXtyZXR1cm4hZS5ob3N0fHxlLmNhbm5vdEJlQUJhc2VVUkx8fCJmaWxlIj09ZS5zY2hlbWV9LEg9ZnVuY3Rpb24oZSx0KXt2YXIgcjtyZXR1cm4gMj09ZS5sZW5ndGgmJkUudGVzdChlLmNoYXJBdCgwKSkmJigiOiI9PShyPWUuY2hhckF0KDEpKXx8IXQmJiJ8Ij09cil9LFc9ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIGUubGVuZ3RoPjEmJkgoZS5zbGljZSgwLDIpKSYmKDI9PWUubGVuZ3RofHwiLyI9PT0odD1lLmNoYXJBdCgyKSl8fCJcXCI9PT10fHwiPyI9PT10fHwiIyI9PT10KX0sWT1mdW5jdGlvbihlKXt2YXIgdD1lLnBhdGgscj10Lmxlbmd0aDshcnx8ImZpbGUiPT1lLnNjaGVtZSYmMT09ciYmSCh0WzBdLCEwKXx8dC5wb3AoKX0sWD1mdW5jdGlvbihlKXtyZXR1cm4iLiI9PT1lfHwiJTJlIj09PWUudG9Mb3dlckNhc2UoKX0sUT17fSwkPXt9LFo9e30sSj17fSxlZT17fSx0ZT17fSxyZT17fSxuZT17fSxpZT17fSxvZT17fSxhZT17fSxzZT17fSx1ZT17fSxjZT17fSxmZT17fSxsZT17fSxoZT17fSxwZT17fSxkZT17fSx5ZT17fSxnZT17fSx2ZT1mdW5jdGlvbihlLHQscixpKXt2YXIgbyxhLHMsdSxjLGw9cnx8USxwPTAsZD0iIix5PSExLGc9ITEsdj0hMTtmb3Iocnx8KGUuc2NoZW1lPSIiLGUudXNlcm5hbWU9IiIsZS5wYXNzd29yZD0iIixlLmhvc3Q9bnVsbCxlLnBvcnQ9bnVsbCxlLnBhdGg9W10sZS5xdWVyeT1udWxsLGUuZnJhZ21lbnQ9bnVsbCxlLmNhbm5vdEJlQUJhc2VVUkw9ITEsdD10LnJlcGxhY2UoTiwiIikpLHQ9dC5yZXBsYWNlKFAsIiIpLG89aCh0KTtwPD1vLmxlbmd0aDspe3N3aXRjaChhPW9bcF0sbCl7Y2FzZSBROmlmKCFhfHwhRS50ZXN0KGEpKXtpZihyKXJldHVybiJJbnZhbGlkIHNjaGVtZSI7bD1aO2NvbnRpbnVlfWQrPWEudG9Mb3dlckNhc2UoKSxsPSQ7YnJlYWs7Y2FzZSAkOmlmKGEmJih3LnRlc3QoYSl8fCIrIj09YXx8Ii0iPT1hfHwiLiI9PWEpKWQrPWEudG9Mb3dlckNhc2UoKTtlbHNle2lmKCI6IiE9YSl7aWYocilyZXR1cm4iSW52YWxpZCBzY2hlbWUiO2Q9IiIsbD1aLHA9MDtjb250aW51ZX1pZihyJiYoSyhlKSE9ZihxLGQpfHwiZmlsZSI9PWQmJih6KGUpfHxudWxsIT09ZS5wb3J0KXx8ImZpbGUiPT1lLnNjaGVtZSYmIWUuaG9zdCkpcmV0dXJuO2lmKGUuc2NoZW1lPWQscilyZXR1cm4gdm9pZChLKGUpJiZxW2Uuc2NoZW1lXT09ZS5wb3J0JiYoZS5wb3J0PW51bGwpKTtkPSIiLCJmaWxlIj09ZS5zY2hlbWU/bD1jZTpLKGUpJiZpJiZpLnNjaGVtZT09ZS5zY2hlbWU/bD1KOksoZSk/bD1uZToiLyI9PW9bcCsxXT8obD1lZSxwKyspOihlLmNhbm5vdEJlQUJhc2VVUkw9ITAsZS5wYXRoLnB1c2goIiIpLGw9ZGUpfWJyZWFrO2Nhc2UgWjppZighaXx8aS5jYW5ub3RCZUFCYXNlVVJMJiYiIyIhPWEpcmV0dXJuIkludmFsaWQgc2NoZW1lIjtpZihpLmNhbm5vdEJlQUJhc2VVUkwmJiIjIj09YSl7ZS5zY2hlbWU9aS5zY2hlbWUsZS5wYXRoPWkucGF0aC5zbGljZSgpLGUucXVlcnk9aS5xdWVyeSxlLmZyYWdtZW50PSIiLGUuY2Fubm90QmVBQmFzZVVSTD0hMCxsPWdlO2JyZWFrfWw9ImZpbGUiPT1pLnNjaGVtZT9jZTp0ZTtjb250aW51ZTtjYXNlIEo6aWYoIi8iIT1hfHwiLyIhPW9bcCsxXSl7bD10ZTtjb250aW51ZX1sPWllLHArKzticmVhaztjYXNlIGVlOmlmKCIvIj09YSl7bD1vZTticmVha31sPXBlO2NvbnRpbnVlO2Nhc2UgdGU6aWYoZS5zY2hlbWU9aS5zY2hlbWUsYT09billLnVzZXJuYW1lPWkudXNlcm5hbWUsZS5wYXNzd29yZD1pLnBhc3N3b3JkLGUuaG9zdD1pLmhvc3QsZS5wb3J0PWkucG9ydCxlLnBhdGg9aS5wYXRoLnNsaWNlKCksZS5xdWVyeT1pLnF1ZXJ5O2Vsc2UgaWYoIi8iPT1hfHwiXFwiPT1hJiZLKGUpKWw9cmU7ZWxzZSBpZigiPyI9PWEpZS51c2VybmFtZT1pLnVzZXJuYW1lLGUucGFzc3dvcmQ9aS5wYXNzd29yZCxlLmhvc3Q9aS5ob3N0LGUucG9ydD1pLnBvcnQsZS5wYXRoPWkucGF0aC5zbGljZSgpLGUucXVlcnk9IiIsbD15ZTtlbHNle2lmKCIjIiE9YSl7ZS51c2VybmFtZT1pLnVzZXJuYW1lLGUucGFzc3dvcmQ9aS5wYXNzd29yZCxlLmhvc3Q9aS5ob3N0LGUucG9ydD1pLnBvcnQsZS5wYXRoPWkucGF0aC5zbGljZSgpLGUucGF0aC5wb3AoKSxsPXBlO2NvbnRpbnVlfWUudXNlcm5hbWU9aS51c2VybmFtZSxlLnBhc3N3b3JkPWkucGFzc3dvcmQsZS5ob3N0PWkuaG9zdCxlLnBvcnQ9aS5wb3J0LGUucGF0aD1pLnBhdGguc2xpY2UoKSxlLnF1ZXJ5PWkucXVlcnksZS5mcmFnbWVudD0iIixsPWdlfWJyZWFrO2Nhc2UgcmU6aWYoIUsoZSl8fCIvIiE9YSYmIlxcIiE9YSl7aWYoIi8iIT1hKXtlLnVzZXJuYW1lPWkudXNlcm5hbWUsZS5wYXNzd29yZD1pLnBhc3N3b3JkLGUuaG9zdD1pLmhvc3QsZS5wb3J0PWkucG9ydCxsPXBlO2NvbnRpbnVlfWw9b2V9ZWxzZSBsPWllO2JyZWFrO2Nhc2UgbmU6aWYobD1pZSwiLyIhPWF8fCIvIiE9ZC5jaGFyQXQocCsxKSljb250aW51ZTtwKys7YnJlYWs7Y2FzZSBpZTppZigiLyIhPWEmJiJcXCIhPWEpe2w9b2U7Y29udGludWV9YnJlYWs7Y2FzZSBvZTppZigiQCI9PWEpe3kmJihkPSIlNDAiK2QpLHk9ITAscz1oKGQpO2Zvcih2YXIgbT0wO208cy5sZW5ndGg7bSsrKXt2YXIgYj1zW21dO2lmKCI6IiE9Ynx8dil7dmFyIF89VihiLEYpO3Y/ZS5wYXNzd29yZCs9XzplLnVzZXJuYW1lKz1ffWVsc2Ugdj0hMH1kPSIifWVsc2UgaWYoYT09bnx8Ii8iPT1hfHwiPyI9PWF8fCIjIj09YXx8IlxcIj09YSYmSyhlKSl7aWYoeSYmIiI9PWQpcmV0dXJuIkludmFsaWQgYXV0aG9yaXR5IjtwLT1oKGQpLmxlbmd0aCsxLGQ9IiIsbD1hZX1lbHNlIGQrPWE7YnJlYWs7Y2FzZSBhZTpjYXNlIHNlOmlmKHImJiJmaWxlIj09ZS5zY2hlbWUpe2w9bGU7Y29udGludWV9aWYoIjoiIT1hfHxnKXtpZihhPT1ufHwiLyI9PWF8fCI/Ij09YXx8IiMiPT1hfHwiXFwiPT1hJiZLKGUpKXtpZihLKGUpJiYiIj09ZClyZXR1cm4iSW52YWxpZCBob3N0IjtpZihyJiYiIj09ZCYmKHooZSl8fG51bGwhPT1lLnBvcnQpKXJldHVybjtpZih1PVIoZSxkKSlyZXR1cm4gdTtpZihkPSIiLGw9aGUscilyZXR1cm47Y29udGludWV9IlsiPT1hP2c9ITA6Il0iPT1hJiYoZz0hMSksZCs9YX1lbHNle2lmKCIiPT1kKXJldHVybiJJbnZhbGlkIGhvc3QiO2lmKHU9UihlLGQpKXJldHVybiB1O2lmKGQ9IiIsbD11ZSxyPT1zZSlyZXR1cm59YnJlYWs7Y2FzZSB1ZTppZighVC50ZXN0KGEpKXtpZihhPT1ufHwiLyI9PWF8fCI/Ij09YXx8IiMiPT1hfHwiXFwiPT1hJiZLKGUpfHxyKXtpZigiIiE9ZCl7dmFyIFM9cGFyc2VJbnQoZCwxMCk7aWYoUz42NTUzNSlyZXR1cm4iSW52YWxpZCBwb3J0IjtlLnBvcnQ9SyhlKSYmUz09PXFbZS5zY2hlbWVdP251bGw6UyxkPSIifWlmKHIpcmV0dXJuO2w9aGU7Y29udGludWV9cmV0dXJuIkludmFsaWQgcG9ydCJ9ZCs9YTticmVhaztjYXNlIGNlOmlmKGUuc2NoZW1lPSJmaWxlIiwiLyI9PWF8fCJcXCI9PWEpbD1mZTtlbHNle2lmKCFpfHwiZmlsZSIhPWkuc2NoZW1lKXtsPXBlO2NvbnRpbnVlfWlmKGE9PW4pZS5ob3N0PWkuaG9zdCxlLnBhdGg9aS5wYXRoLnNsaWNlKCksZS5xdWVyeT1pLnF1ZXJ5O2Vsc2UgaWYoIj8iPT1hKWUuaG9zdD1pLmhvc3QsZS5wYXRoPWkucGF0aC5zbGljZSgpLGUucXVlcnk9IiIsbD15ZTtlbHNle2lmKCIjIiE9YSl7VyhvLnNsaWNlKHApLmpvaW4oIiIpKXx8KGUuaG9zdD1pLmhvc3QsZS5wYXRoPWkucGF0aC5zbGljZSgpLFkoZSkpLGw9cGU7Y29udGludWV9ZS5ob3N0PWkuaG9zdCxlLnBhdGg9aS5wYXRoLnNsaWNlKCksZS5xdWVyeT1pLnF1ZXJ5LGUuZnJhZ21lbnQ9IiIsbD1nZX19YnJlYWs7Y2FzZSBmZTppZigiLyI9PWF8fCJcXCI9PWEpe2w9bGU7YnJlYWt9aSYmImZpbGUiPT1pLnNjaGVtZSYmIVcoby5zbGljZShwKS5qb2luKCIiKSkmJihIKGkucGF0aFswXSwhMCk/ZS5wYXRoLnB1c2goaS5wYXRoWzBdKTplLmhvc3Q9aS5ob3N0KSxsPXBlO2NvbnRpbnVlO2Nhc2UgbGU6aWYoYT09bnx8Ii8iPT1hfHwiXFwiPT1hfHwiPyI9PWF8fCIjIj09YSl7aWYoIXImJkgoZCkpbD1wZTtlbHNlIGlmKCIiPT1kKXtpZihlLmhvc3Q9IiIscilyZXR1cm47bD1oZX1lbHNle2lmKHU9UihlLGQpKXJldHVybiB1O2lmKCJsb2NhbGhvc3QiPT1lLmhvc3QmJihlLmhvc3Q9IiIpLHIpcmV0dXJuO2Q9IiIsbD1oZX1jb250aW51ZX1kKz1hO2JyZWFrO2Nhc2UgaGU6aWYoSyhlKSl7aWYobD1wZSwiLyIhPWEmJiJcXCIhPWEpY29udGludWV9ZWxzZSBpZihyfHwiPyIhPWEpaWYocnx8IiMiIT1hKXtpZihhIT1uJiYobD1wZSwiLyIhPWEpKWNvbnRpbnVlfWVsc2UgZS5mcmFnbWVudD0iIixsPWdlO2Vsc2UgZS5xdWVyeT0iIixsPXllO2JyZWFrO2Nhc2UgcGU6aWYoYT09bnx8Ii8iPT1hfHwiXFwiPT1hJiZLKGUpfHwhciYmKCI/Ij09YXx8IiMiPT1hKSl7aWYoIi4uIj09PShjPShjPWQpLnRvTG93ZXJDYXNlKCkpfHwiJTJlLiI9PT1jfHwiLiUyZSI9PT1jfHwiJTJlJTJlIj09PWM/KFkoZSksIi8iPT1hfHwiXFwiPT1hJiZLKGUpfHxlLnBhdGgucHVzaCgiIikpOlgoZCk/Ii8iPT1hfHwiXFwiPT1hJiZLKGUpfHxlLnBhdGgucHVzaCgiIik6KCJmaWxlIj09ZS5zY2hlbWUmJiFlLnBhdGgubGVuZ3RoJiZIKGQpJiYoZS5ob3N0JiYoZS5ob3N0PSIiKSxkPWQuY2hhckF0KDApKyI6IiksZS5wYXRoLnB1c2goZCkpLGQ9IiIsImZpbGUiPT1lLnNjaGVtZSYmKGE9PW58fCI/Ij09YXx8IiMiPT1hKSlmb3IoO2UucGF0aC5sZW5ndGg+MSYmIiI9PT1lLnBhdGhbMF07KWUucGF0aC5zaGlmdCgpOyI/Ij09YT8oZS5xdWVyeT0iIixsPXllKToiIyI9PWEmJihlLmZyYWdtZW50PSIiLGw9Z2UpfWVsc2UgZCs9VihhLFUpO2JyZWFrO2Nhc2UgZGU6Ij8iPT1hPyhlLnF1ZXJ5PSIiLGw9eWUpOiIjIj09YT8oZS5mcmFnbWVudD0iIixsPWdlKTphIT1uJiYoZS5wYXRoWzBdKz1WKGEsRCkpO2JyZWFrO2Nhc2UgeWU6cnx8IiMiIT1hP2EhPW4mJigiJyI9PWEmJksoZSk/ZS5xdWVyeSs9IiUyNyI6ZS5xdWVyeSs9IiMiPT1hPyIlMjMiOlYoYSxEKSk6KGUuZnJhZ21lbnQ9IiIsbD1nZSk7YnJlYWs7Y2FzZSBnZTphIT1uJiYoZS5mcmFnbWVudCs9VihhLGopKX1wKyt9fSxtZT1mdW5jdGlvbihlKXt2YXIgdCxyLG49Yyh0aGlzLG1lLCJVUkwiKSxvPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLGE9U3RyaW5nKGUpLHM9YihuLHt0eXBlOiJVUkwifSk7aWYodm9pZCAwIT09bylpZihvIGluc3RhbmNlb2YgbWUpdD1fKG8pO2Vsc2UgaWYocj12ZSh0PXt9LFN0cmluZyhvKSkpdGhyb3cgVHlwZUVycm9yKHIpO2lmKHI9dmUocyxhLG51bGwsdCkpdGhyb3cgVHlwZUVycm9yKHIpO3ZhciB1PXMuc2VhcmNoUGFyYW1zPW5ldyBnLGY9dih1KTtmLnVwZGF0ZVNlYXJjaFBhcmFtcyhzLnF1ZXJ5KSxmLnVwZGF0ZVVSTD1mdW5jdGlvbigpe3MucXVlcnk9U3RyaW5nKHUpfHxudWxsfSxpfHwobi5ocmVmPV9lLmNhbGwobiksbi5vcmlnaW49U2UuY2FsbChuKSxuLnByb3RvY29sPUVlLmNhbGwobiksbi51c2VybmFtZT13ZS5jYWxsKG4pLG4ucGFzc3dvcmQ9VGUuY2FsbChuKSxuLmhvc3Q9QWUuY2FsbChuKSxuLmhvc3RuYW1lPUNlLmNhbGwobiksbi5wb3J0PXhlLmNhbGwobiksbi5wYXRobmFtZT1JZS5jYWxsKG4pLG4uc2VhcmNoPWtlLmNhbGwobiksbi5zZWFyY2hQYXJhbXM9T2UuY2FsbChuKSxuLmhhc2g9TmUuY2FsbChuKSl9LGJlPW1lLnByb3RvdHlwZSxfZT1mdW5jdGlvbigpe3ZhciBlPV8odGhpcyksdD1lLnNjaGVtZSxyPWUudXNlcm5hbWUsbj1lLnBhc3N3b3JkLGk9ZS5ob3N0LG89ZS5wb3J0LGE9ZS5wYXRoLHM9ZS5xdWVyeSx1PWUuZnJhZ21lbnQsYz10KyI6IjtyZXR1cm4gbnVsbCE9PWk/KGMrPSIvLyIseihlKSYmKGMrPXIrKG4/IjoiK246IiIpKyJAIiksYys9TChpKSxudWxsIT09byYmKGMrPSI6IitvKSk6ImZpbGUiPT10JiYoYys9Ii8vIiksYys9ZS5jYW5ub3RCZUFCYXNlVVJMP2FbMF06YS5sZW5ndGg/Ii8iK2Euam9pbigiLyIpOiIiLG51bGwhPT1zJiYoYys9Ij8iK3MpLG51bGwhPT11JiYoYys9IiMiK3UpLGN9LFNlPWZ1bmN0aW9uKCl7dmFyIGU9Xyh0aGlzKSx0PWUuc2NoZW1lLHI9ZS5wb3J0O2lmKCJibG9iIj09dCl0cnl7cmV0dXJuIG5ldyBVUkwodC5wYXRoWzBdKS5vcmlnaW59Y2F0Y2gobil7cmV0dXJuIm51bGwifXJldHVybiJmaWxlIiE9dCYmSyhlKT90KyI6Ly8iK0woZS5ob3N0KSsobnVsbCE9PXI/IjoiK3I6IiIpOiJudWxsIn0sRWU9ZnVuY3Rpb24oKXtyZXR1cm4gXyh0aGlzKS5zY2hlbWUrIjoifSx3ZT1mdW5jdGlvbigpe3JldHVybiBfKHRoaXMpLnVzZXJuYW1lfSxUZT1mdW5jdGlvbigpe3JldHVybiBfKHRoaXMpLnBhc3N3b3JkfSxBZT1mdW5jdGlvbigpe3ZhciBlPV8odGhpcyksdD1lLmhvc3Qscj1lLnBvcnQ7cmV0dXJuIG51bGw9PT10PyIiOm51bGw9PT1yP0wodCk6TCh0KSsiOiIrcn0sQ2U9ZnVuY3Rpb24oKXt2YXIgZT1fKHRoaXMpLmhvc3Q7cmV0dXJuIG51bGw9PT1lPyIiOkwoZSl9LHhlPWZ1bmN0aW9uKCl7dmFyIGU9Xyh0aGlzKS5wb3J0O3JldHVybiBudWxsPT09ZT8iIjpTdHJpbmcoZSl9LEllPWZ1bmN0aW9uKCl7dmFyIGU9Xyh0aGlzKSx0PWUucGF0aDtyZXR1cm4gZS5jYW5ub3RCZUFCYXNlVVJMP3RbMF06dC5sZW5ndGg/Ii8iK3Quam9pbigiLyIpOiIifSxrZT1mdW5jdGlvbigpe3ZhciBlPV8odGhpcykucXVlcnk7cmV0dXJuIGU/Ij8iK2U6IiJ9LE9lPWZ1bmN0aW9uKCl7cmV0dXJuIF8odGhpcykuc2VhcmNoUGFyYW1zfSxOZT1mdW5jdGlvbigpe3ZhciBlPV8odGhpcykuZnJhZ21lbnQ7cmV0dXJuIGU/IiMiK2U6IiJ9LFBlPWZ1bmN0aW9uKGUsdCl7cmV0dXJue2dldDplLHNldDp0LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfX07aWYoaSYmcyhiZSx7aHJlZjpQZShfZSxmdW5jdGlvbihlKXt2YXIgdD1fKHRoaXMpLHI9U3RyaW5nKGUpLG49dmUodCxyKTtpZihuKXRocm93IFR5cGVFcnJvcihuKTt2KHQuc2VhcmNoUGFyYW1zKS51cGRhdGVTZWFyY2hQYXJhbXModC5xdWVyeSl9KSxvcmlnaW46UGUoU2UpLHByb3RvY29sOlBlKEVlLGZ1bmN0aW9uKGUpe3ZhciB0PV8odGhpcyk7dmUodCxTdHJpbmcoZSkrIjoiLFEpfSksdXNlcm5hbWU6UGUod2UsZnVuY3Rpb24oZSl7dmFyIHQ9Xyh0aGlzKSxyPWgoU3RyaW5nKGUpKTtpZighRyh0KSl7dC51c2VybmFtZT0iIjtmb3IodmFyIG49MDtuPHIubGVuZ3RoO24rKyl0LnVzZXJuYW1lKz1WKHJbbl0sRil9fSkscGFzc3dvcmQ6UGUoVGUsZnVuY3Rpb24oZSl7dmFyIHQ9Xyh0aGlzKSxyPWgoU3RyaW5nKGUpKTtpZighRyh0KSl7dC5wYXNzd29yZD0iIjtmb3IodmFyIG49MDtuPHIubGVuZ3RoO24rKyl0LnBhc3N3b3JkKz1WKHJbbl0sRil9fSksaG9zdDpQZShBZSxmdW5jdGlvbihlKXt2YXIgdD1fKHRoaXMpO3QuY2Fubm90QmVBQmFzZVVSTHx8dmUodCxTdHJpbmcoZSksYWUpfSksaG9zdG5hbWU6UGUoQ2UsZnVuY3Rpb24oZSl7dmFyIHQ9Xyh0aGlzKTt0LmNhbm5vdEJlQUJhc2VVUkx8fHZlKHQsU3RyaW5nKGUpLHNlKX0pLHBvcnQ6UGUoeGUsZnVuY3Rpb24oZSl7dmFyIHQ9Xyh0aGlzKTtHKHQpfHwoIiI9PShlPVN0cmluZyhlKSk/dC5wb3J0PW51bGw6dmUodCxlLHVlKSl9KSxwYXRobmFtZTpQZShJZSxmdW5jdGlvbihlKXt2YXIgdD1fKHRoaXMpO3QuY2Fubm90QmVBQmFzZVVSTHx8KHQucGF0aD1bXSx2ZSh0LGUrIiIsaGUpKX0pLHNlYXJjaDpQZShrZSxmdW5jdGlvbihlKXt2YXIgdD1fKHRoaXMpOyIiPT0oZT1TdHJpbmcoZSkpP3QucXVlcnk9bnVsbDooIj8iPT1lLmNoYXJBdCgwKSYmKGU9ZS5zbGljZSgxKSksdC5xdWVyeT0iIix2ZSh0LGUseWUpKSx2KHQuc2VhcmNoUGFyYW1zKS51cGRhdGVTZWFyY2hQYXJhbXModC5xdWVyeSl9KSxzZWFyY2hQYXJhbXM6UGUoT2UpLGhhc2g6UGUoTmUsZnVuY3Rpb24oZSl7dmFyIHQ9Xyh0aGlzKTsiIiE9KGU9U3RyaW5nKGUpKT8oIiMiPT1lLmNoYXJBdCgwKSYmKGU9ZS5zbGljZSgxKSksdC5mcmFnbWVudD0iIix2ZSh0LGUsZ2UpKTp0LmZyYWdtZW50PW51bGx9KX0pLHUoYmUsInRvSlNPTiIsZnVuY3Rpb24oKXtyZXR1cm4gX2UuY2FsbCh0aGlzKX0se2VudW1lcmFibGU6ITB9KSx1KGJlLCJ0b1N0cmluZyIsZnVuY3Rpb24oKXtyZXR1cm4gX2UuY2FsbCh0aGlzKX0se2VudW1lcmFibGU6ITB9KSxhKXt2YXIgUmU9YS5jcmVhdGVPYmplY3RVUkwsQmU9YS5yZXZva2VPYmplY3RVUkw7UmUmJnUobWUsImNyZWF0ZU9iamVjdFVSTCIsZnVuY3Rpb24oZSl7cmV0dXJuIFJlLmFwcGx5KGEsYXJndW1lbnRzKX0pLEJlJiZ1KG1lLCJyZXZva2VPYmplY3RVUkwiLGZ1bmN0aW9uKGUpe3JldHVybiBCZS5hcHBseShhLGFyZ3VtZW50cyl9KX1yKDE3NykobWUsIlVSTCIpLHIoMTQzKSh7Z2xvYmFsOiEwLGZvcmNlZDohbyxzaGFtOiFpfSx7VVJMOm1lfSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig0MTgpLGk9cigxNDIpLG89cig0MTApLGE9aS5zZXQscz1pLmdldHRlckZvcigiU3RyaW5nIEl0ZXJhdG9yIik7byhTdHJpbmcsIlN0cmluZyIsZnVuY3Rpb24oZSl7YSh0aGlzLHt0eXBlOiJTdHJpbmcgSXRlcmF0b3IiLHN0cmluZzpTdHJpbmcoZSksaW5kZXg6MH0pfSxmdW5jdGlvbigpe3ZhciBlLHQ9cyh0aGlzKSxyPXQuc3RyaW5nLGk9dC5pbmRleDtyZXR1cm4gaT49ci5sZW5ndGg/e3ZhbHVlOnZvaWQgMCxkb25lOiEwfTooZT1uKHIsaSwhMCksdC5pbmRleCs9ZS5sZW5ndGgse3ZhbHVlOmUsZG9uZTohMX0pfSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig0MDYpLGk9cig0MTIpLG89cig0MTEpLGE9cigxNzIpLHM9cigyMzgpLHU9T2JqZWN0LmFzc2lnbjtlLmV4cG9ydHM9IXV8fHIoNjgpKGZ1bmN0aW9uKCl7dmFyIGU9e30sdD17fSxyPVN5bWJvbCgpO3JldHVybiBlW3JdPTcsImFiY2RlZmdoaWprbG1ub3BxcnN0Ii5zcGxpdCgiIikuZm9yRWFjaChmdW5jdGlvbihlKXt0W2VdPWV9KSw3IT11KHt9LGUpW3JdfHwiYWJjZGVmZ2hpamtsbW5vcHFyc3QiIT1uKHUoe30sdCkpLmpvaW4oIiIpfSk/ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9YShlKSx1PWFyZ3VtZW50cy5sZW5ndGgsYz0xLGY9aS5mLGw9by5mO3U+YzspZm9yKHZhciBoLHA9cyhhcmd1bWVudHNbYysrXSksZD1mP24ocCkuY29uY2F0KGYocCkpOm4ocCkseT1kLmxlbmd0aCxnPTA7eT5nOylsLmNhbGwocCxoPWRbZysrXSkmJihyW2hdPXBbaF0pO3JldHVybiByfTp1fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMTcxKSxpPXIoMTcyKSxvPXIoNzQ2KSxhPXIoNzQ3KSxzPXIoMjQwKSx1PXIoNzQ4KSxjPXIoMjUyKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQscixmLGwsaD1pKGUpLHA9ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXM/dGhpczpBcnJheSxkPWFyZ3VtZW50cy5sZW5ndGgseT1kPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxnPXZvaWQgMCE9PXksdj0wLG09YyhoKTtpZihnJiYoeT1uKHksZD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsMikpLHZvaWQgMD09bXx8cD09QXJyYXkmJmEobSkpZm9yKHI9bmV3IHAodD1zKGgubGVuZ3RoKSk7dD52O3YrKyl1KHIsdixnP3koaFt2XSx2KTpoW3ZdKTtlbHNlIGZvcihsPW0uY2FsbChoKSxyPW5ldyBwOyEoZj1sLm5leHQoKSkuZG9uZTt2KyspdShyLHYsZz9vKGwseSxbZi52YWx1ZSx2XSwhMCk6Zi52YWx1ZSk7cmV0dXJuIHIubGVuZ3RoPXYscn19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDgxKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LHIsaSl7dHJ5e3JldHVybiBpP3QobihyKVswXSxyWzFdKTp0KHIpfWNhdGNoKGEpe3ZhciBvPWUucmV0dXJuO3Rocm93IHZvaWQgMCE9PW8mJm4oby5jYWxsKGUpKSxhfX19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDE0MSksaT1yKDUzKSgiaXRlcmF0b3IiKSxvPUFycmF5LnByb3RvdHlwZTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PWUmJihuLkFycmF5PT09ZXx8b1tpXT09PWUpfX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDI0NCksaT1yKDE0MCksbz1yKDE3NCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyKXt2YXIgYT1uKHQpO2EgaW4gZT9pLmYoZSxhLG8oMCxyKSk6ZVthXT1yfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTA3KSxpPXIoNTMpKCJ0b1N0cmluZ1RhZyIpLG89IkFyZ3VtZW50cyI9PW4oZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQscixhO3JldHVybiB2b2lkIDA9PT1lPyJVbmRlZmluZWQiOm51bGw9PT1lPyJOdWxsIjoic3RyaW5nIj09dHlwZW9mKHI9ZnVuY3Rpb24oZSx0KXt0cnl7cmV0dXJuIGVbdF19Y2F0Y2gocil7fX0odD1PYmplY3QoZSksaSkpP3I6bz9uKHQpOiJPYmplY3QiPT0oYT1uKHQpKSYmImZ1bmN0aW9uIj09dHlwZW9mIHQuY2FsbGVlPyJBcmd1bWVudHMiOmF9fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPS9bXlwwLVx1MDA3RV0vLGk9L1tcdTAwMkVcdTMwMDJcdUZGMEVcdUZGNjFdL2csbz0iT3ZlcmZsb3c6IGlucHV0IG5lZWRzIHdpZGVyIGludGVnZXJzIHRvIHByb2Nlc3MiLGE9TWF0aC5mbG9vcixzPVN0cmluZy5mcm9tQ2hhckNvZGUsdT1mdW5jdGlvbihlKXtyZXR1cm4gZSsyMis3NSooZTwyNil9LGM9ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPTA7Zm9yKGU9cj9hKGUvNzAwKTplPj4xLGUrPWEoZS90KTtlPjQ1NTtuKz0zNillPWEoZS8zNSk7cmV0dXJuIGEobiszNiplLyhlKzM4KSl9LGY9ZnVuY3Rpb24oZSl7dmFyIHQscixuPVtdLGk9KGU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLHI9MCxuPWUubGVuZ3RoO3I8bjspe3ZhciBpPWUuY2hhckNvZGVBdChyKyspO2lmKGk+PTU1Mjk2JiZpPD01NjMxOSYmcjxuKXt2YXIgbz1lLmNoYXJDb2RlQXQocisrKTs1NjMyMD09KDY0NTEyJm8pP3QucHVzaCgoKDEwMjMmaSk8PDEwKSsoMTAyMyZvKSs2NTUzNik6KHQucHVzaChpKSxyLS0pfWVsc2UgdC5wdXNoKGkpfXJldHVybiB0fShlKSkubGVuZ3RoLGY9MTI4LGw9MCxoPTcyO2Zvcih0PTA7dDxlLmxlbmd0aDt0KyspKHI9ZVt0XSk8MTI4JiZuLnB1c2gocyhyKSk7dmFyIHA9bi5sZW5ndGgsZD1wO2ZvcihwJiZuLnB1c2goIi0iKTtkPGk7KXt2YXIgeT0yMTQ3NDgzNjQ3O2Zvcih0PTA7dDxlLmxlbmd0aDt0KyspKHI9ZVt0XSk+PWYmJnI8eSYmKHk9cik7dmFyIGc9ZCsxO2lmKHktZj5hKCgyMTQ3NDgzNjQ3LWwpL2cpKXRocm93IFJhbmdlRXJyb3Iobyk7Zm9yKGwrPSh5LWYpKmcsZj15LHQ9MDt0PGUubGVuZ3RoO3QrKyl7aWYoKHI9ZVt0XSk8ZiYmKytsPjIxNDc0ODM2NDcpdGhyb3cgUmFuZ2VFcnJvcihvKTtpZihyPT1mKXtmb3IodmFyIHY9bCxtPTM2OzttKz0zNil7dmFyIGI9bTw9aD8xOm0+PWgrMjY/MjY6bS1oO2lmKHY8YilicmVhazt2YXIgXz12LWIsUz0zNi1iO24ucHVzaChzKHUoYitfJVMpKSksdj1hKF8vUyl9bi5wdXNoKHModSh2KSkpLGg9YyhsLGcsZD09cCksbD0wLCsrZH19KytsLCsrZn1yZXR1cm4gbi5qb2luKCIiKX07ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0LHIsbz1bXSxhPWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKGksIi4iKS5zcGxpdCgiLiIpO2Zvcih0PTA7dDxhLmxlbmd0aDt0Kyspcj1hW3RdLG8ucHVzaChuLnRlc3Qocik/InhuLS0iK2Yocik6cik7cmV0dXJuIG8uam9pbigiLiIpfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTQ0KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaSBpbiB0KW4oZSxpLHRbaV0scik7cmV0dXJuIGV9fSxmdW5jdGlvbihlLHQscil7dmFyIG49cig4MSksaT1yKDI1Mik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PWkoZSk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgVHlwZUVycm9yKFN0cmluZyhlKSsiIGlzIG5vdCBpdGVyYWJsZSIpO3JldHVybiBuKHQuY2FsbChlKSl9fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IoMTQzKSh7dGFyZ2V0OiJVUkwiLHByb3RvOiEwLGVudW1lcmFibGU6ITB9LHt0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm4gVVJMLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRoaXMpfX0pfSxmdW5jdGlvbihlLHQscil7cig3NTUpLHIoNzU3KSxyKDc1OCkscig3NTkpLHIoNzYwKSxyKDc2MSkscig3NjIpLHIoNzYzKSxyKDc2NCkscig3NjUpLHIoNzY2KSxyKDc2Nykscig3NjgpLHIoNzY5KSxyKDc3MCkscig3NzEpLHIoNzcyKSxyKDc3Mykscig3NzQpLHIoNzc1KSxyKDc3Nikscig3NzcpLHIoNzc4KSxyKDc3OSkscig3ODApLHIoNzgxKSxyKDc4Mikscig3ODMpLHIoNzg0KSxyKDc4NSkscig3ODYpLHIoNzg3KSxyKDc4OCkscig3ODkpLHIoNzkwKSxyKDc5MSkscig3OTIpLHIoNzkzKSxyKDc5NCkscig3OTUpLHIoNzk2KSxyKDc5Nykscig3OTgpLHIoODAwKSxyKDgwMSkscig4MDIpLHIoODAzKSxyKDgwNCkscig4MDUpLHIoODA2KSxyKDgwNykscig4MDgpLHIoODA5KSxyKDgxMCkscig4MTEpLHIoODEyKSxyKDgxMykscig4MTQpLHIoODE1KSxyKDgxNikscig4MTcpLHIoODE4KSxyKDgxOSkscig4MjApLHIoODIxKSxyKDgyMikscig4MjMpLHIoODI0KSxyKDgyNSkscig4MjYpLHIoODI3KSxyKDgyOCkscig4MjkpLHIoODMwKSxyKDgzMSkscig4MzIpLHIoODMzKSxyKDgzNSkscig4MzYpLHIoODM4KSxyKDgzOSkscig4NDApLHIoODQxKSxyKDg0Mikscig4NDMpLHIoODQ0KSxyKDg0Nikscig4NDcpLHIoODQ4KSxyKDg0OSkscig4NTApLHIoODUxKSxyKDg1Mikscig4NTMpLHIoODU0KSxyKDg1NSkscig4NTYpLHIoODU3KSxyKDg1OCkscig0MzkpLHIoODU5KSxyKDQ0MSkscig4NjApLHIoNDQyKSxyKDg2MSkscig4NjIpLHIoODYzKSxyKDg2NCkscig0NDMpLHIoODY3KSxyKDg2OCkscig4NjkpLHIoODcwKSxyKDg3MSkscig4NzIpLHIoODczKSxyKDg3NCkscig4NzUpLHIoODc2KSxyKDg3Nykscig4NzgpLHIoODc5KSxyKDg4MCkscig4ODEpLHIoODgyKSxyKDg4Mykscig4ODQpLHIoODg1KSxyKDg4Nikscig4ODcpLHIoODg4KSxyKDg4OSkscig4OTApLHIoODkxKSxyKDg5Mikscig4OTMpLHIoODk0KSxyKDg5NSksZS5leHBvcnRzPXIoMjcpfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMTcpLGk9cig1MCksbz1yKDI5KSxhPXIoMikscz1yKDQ5KSx1PXIoODMpLktFWSxjPXIoMTQpLGY9cigxNzgpLGw9cigxMDkpLGg9cig5NCkscD1yKDIxKSxkPXIoMjUzKSx5PXIoNDIyKSxnPXIoNzU2KSx2PXIoMTgxKSxtPXIoMTIpLGI9cigxMyksXz1yKDM2KSxTPXIoNTEpLEU9cig4Miksdz1yKDkzKSxUPXIoOTcpLEE9cig0MjUpLEM9cig2MSkseD1yKDE4MCksST1yKDI4KSxrPXIoMTEwKSxPPUMuZixOPUkuZixQPUEuZixSPW4uU3ltYm9sLEI9bi5KU09OLE09QiYmQi5zdHJpbmdpZnksTD1wKCJfaGlkZGVuIiksRD1wKCJ0b1ByaW1pdGl2ZSIpLGo9e30ucHJvcGVydHlJc0VudW1lcmFibGUsVT1mKCJzeW1ib2wtcmVnaXN0cnkiKSxGPWYoInN5bWJvbHMiKSxWPWYoIm9wLXN5bWJvbHMiKSxxPU9iamVjdC5wcm90b3R5cGUsSz0iZnVuY3Rpb24iPT10eXBlb2YgUiYmISF4LmYsej1uLlFPYmplY3QsRz0henx8IXoucHJvdG90eXBlfHwhei5wcm90b3R5cGUuZmluZENoaWxkLEg9byYmYyhmdW5jdGlvbigpe3JldHVybiA3IT1UKE4oe30sImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTih0aGlzLCJhIix7dmFsdWU6N30pLmF9fSkpLmF9KT9mdW5jdGlvbihlLHQscil7dmFyIG49TyhxLHQpO24mJmRlbGV0ZSBxW3RdLE4oZSx0LHIpLG4mJmUhPT1xJiZOKHEsdCxuKX06TixXPWZ1bmN0aW9uKGUpe3ZhciB0PUZbZV09VChSLnByb3RvdHlwZSk7cmV0dXJuIHQuX2s9ZSx0fSxZPUsmJiJzeW1ib2wiPT10eXBlb2YgUi5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgUn0sWD1mdW5jdGlvbihlLHQscil7cmV0dXJuIGU9PT1xJiZYKFYsdCxyKSxtKGUpLHQ9RSh0LCEwKSxtKHIpLGkoRix0KT8oci5lbnVtZXJhYmxlPyhpKGUsTCkmJmVbTF1bdF0mJihlW0xdW3RdPSExKSxyPVQocix7ZW51bWVyYWJsZTp3KDAsITEpfSkpOihpKGUsTCl8fE4oZSxMLHcoMSx7fSkpLGVbTF1bdF09ITApLEgoZSx0LHIpKTpOKGUsdCxyKX0sUT1mdW5jdGlvbihlLHQpe20oZSk7Zm9yKHZhciByLG49Zyh0PVModCkpLGk9MCxvPW4ubGVuZ3RoO28+aTspWChlLHI9bltpKytdLHRbcl0pO3JldHVybiBlfSwkPWZ1bmN0aW9uKGUpe3ZhciB0PWouY2FsbCh0aGlzLGU9RShlLCEwKSk7cmV0dXJuISh0aGlzPT09cSYmaShGLGUpJiYhaShWLGUpKSYmKCEodHx8IWkodGhpcyxlKXx8IWkoRixlKXx8aSh0aGlzLEwpJiZ0aGlzW0xdW2VdKXx8dCl9LFo9ZnVuY3Rpb24oZSx0KXtpZihlPVMoZSksdD1FKHQsITApLGUhPT1xfHwhaShGLHQpfHxpKFYsdCkpe3ZhciByPU8oZSx0KTtyZXR1cm4hcnx8IWkoRix0KXx8aShlLEwpJiZlW0xdW3RdfHwoci5lbnVtZXJhYmxlPSEwKSxyfX0sSj1mdW5jdGlvbihlKXtmb3IodmFyIHQscj1QKFMoZSkpLG49W10sbz0wO3IubGVuZ3RoPm87KWkoRix0PXJbbysrXSl8fHQ9PUx8fHQ9PXV8fG4ucHVzaCh0KTtyZXR1cm4gbn0sZWU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LHI9ZT09PXEsbj1QKHI/VjpTKGUpKSxvPVtdLGE9MDtuLmxlbmd0aD5hOykhaShGLHQ9blthKytdKXx8ciYmIWkocSx0KXx8by5wdXNoKEZbdF0pO3JldHVybiBvfTtLfHwocygoUj1mdW5jdGlvbigpe2lmKHRoaXMgaW5zdGFuY2VvZiBSKXRocm93IFR5cGVFcnJvcigiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yISIpO3ZhciBlPWgoYXJndW1lbnRzLmxlbmd0aD4wP2FyZ3VtZW50c1swXTp2b2lkIDApO3JldHVybiBvJiZHJiZIKHEsZSx7Y29uZmlndXJhYmxlOiEwLHNldDpmdW5jdGlvbiB0KHIpe3RoaXM9PT1xJiZ0LmNhbGwoVixyKSxpKHRoaXMsTCkmJmkodGhpc1tMXSxlKSYmKHRoaXNbTF1bZV09ITEpLEgodGhpcyxlLHcoMSxyKSl9fSksVyhlKX0pLnByb3RvdHlwZSwidG9TdHJpbmciLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2t9KSxDLmY9WixJLmY9WCxyKDk4KS5mPUEuZj1KLHIoMTQ2KS5mPSQseC5mPWVlLG8mJiFyKDk1KSYmcyhxLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsJCwhMCksZC5mPWZ1bmN0aW9uKGUpe3JldHVybiBXKHAoZSkpfSksYShhLkcrYS5XK2EuRiohSyx7U3ltYm9sOlJ9KTtmb3IodmFyIHRlPSJoYXNJbnN0YW5jZSxpc0NvbmNhdFNwcmVhZGFibGUsaXRlcmF0b3IsbWF0Y2gscmVwbGFjZSxzZWFyY2gsc3BlY2llcyxzcGxpdCx0b1ByaW1pdGl2ZSx0b1N0cmluZ1RhZyx1bnNjb3BhYmxlcyIuc3BsaXQoIiwiKSxyZT0wO3RlLmxlbmd0aD5yZTspcCh0ZVtyZSsrXSk7Zm9yKHZhciBuZT1rKHAuc3RvcmUpLGllPTA7bmUubGVuZ3RoPmllOyl5KG5lW2llKytdKTthKGEuUythLkYqIUssIlN5bWJvbCIse2ZvcjpmdW5jdGlvbihlKXtyZXR1cm4gaShVLGUrPSIiKT9VW2VdOlVbZV09UihlKX0sa2V5Rm9yOmZ1bmN0aW9uKGUpe2lmKCFZKGUpKXRocm93IFR5cGVFcnJvcihlKyIgaXMgbm90IGEgc3ltYm9sISIpO2Zvcih2YXIgdCBpbiBVKWlmKFVbdF09PT1lKXJldHVybiB0fSx1c2VTZXR0ZXI6ZnVuY3Rpb24oKXtHPSEwfSx1c2VTaW1wbGU6ZnVuY3Rpb24oKXtHPSExfX0pLGEoYS5TK2EuRiohSywiT2JqZWN0Iix7Y3JlYXRlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQ/VChlKTpRKFQoZSksdCl9LGRlZmluZVByb3BlcnR5OlgsZGVmaW5lUHJvcGVydGllczpRLGdldE93blByb3BlcnR5RGVzY3JpcHRvcjpaLGdldE93blByb3BlcnR5TmFtZXM6SixnZXRPd25Qcm9wZXJ0eVN5bWJvbHM6ZWV9KTt2YXIgb2U9YyhmdW5jdGlvbigpe3guZigxKX0pO2EoYS5TK2EuRipvZSwiT2JqZWN0Iix7Z2V0T3duUHJvcGVydHlTeW1ib2xzOmZ1bmN0aW9uKGUpe3JldHVybiB4LmYoXyhlKSl9fSksQiYmYShhLlMrYS5GKighS3x8YyhmdW5jdGlvbigpe3ZhciBlPVIoKTtyZXR1cm4iW251bGxdIiE9TShbZV0pfHwie30iIT1NKHthOmV9KXx8Int9IiE9TShPYmplY3QoZSkpfSkpLCJKU09OIix7c3RyaW5naWZ5OmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxyLG49W2VdLGk9MTthcmd1bWVudHMubGVuZ3RoPmk7KW4ucHVzaChhcmd1bWVudHNbaSsrXSk7aWYocj10PW5bMV0sKGIodCl8fHZvaWQgMCE9PWUpJiYhWShlKSlyZXR1cm4gdih0KXx8KHQ9ZnVuY3Rpb24oZSx0KXtpZigiZnVuY3Rpb24iPT10eXBlb2YgciYmKHQ9ci5jYWxsKHRoaXMsZSx0KSksIVkodCkpcmV0dXJuIHR9KSxuWzFdPXQsTS5hcHBseShCLG4pfX0pLFIucHJvdG90eXBlW0RdfHxyKDU0KShSLnByb3RvdHlwZSxELFIucHJvdG90eXBlLnZhbHVlT2YpLGwoUiwiU3ltYm9sIiksbChNYXRoLCJNYXRoIiwhMCksbChuLkpTT04sIkpTT04iLCEwKX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTEwKSxpPXIoMTgwKSxvPXIoMTQ2KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9bihlKSxyPWkuZjtpZihyKWZvcih2YXIgYSxzPXIoZSksdT1vLmYsYz0wO3MubGVuZ3RoPmM7KXUuY2FsbChlLGE9c1tjKytdKSYmdC5wdXNoKGEpO3JldHVybiB0fX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk9iamVjdCIse2NyZWF0ZTpyKDk3KX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKTtuKG4uUytuLkYqIXIoMjkpLCJPYmplY3QiLHtkZWZpbmVQcm9wZXJ0eTpyKDI4KS5mfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5TK24uRiohcigyOSksIk9iamVjdCIse2RlZmluZVByb3BlcnRpZXM6cig0MjQpfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDUxKSxpPXIoNjEpLmY7cig2MikoImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXtyZXR1cm4gaShuKGUpLHQpfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigzNiksaT1yKDk5KTtyKDYyKSgiZ2V0UHJvdG90eXBlT2YiLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBpKG4oZSkpfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigzNiksaT1yKDExMCk7cig2MikoImtleXMiLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBpKG4oZSkpfX0pfSxmdW5jdGlvbihlLHQscil7cig2MikoImdldE93blByb3BlcnR5TmFtZXMiLGZ1bmN0aW9uKCl7cmV0dXJuIHIoNDI1KS5mfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDEzKSxpPXIoODMpLm9uRnJlZXplO3IoNjIpKCJmcmVlemUiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZSYmbih0KT9lKGkodCkpOnR9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDEzKSxpPXIoODMpLm9uRnJlZXplO3IoNjIpKCJzZWFsIixmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUmJm4odCk/ZShpKHQpKTp0fX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxMyksaT1yKDgzKS5vbkZyZWV6ZTtyKDYyKSgicHJldmVudEV4dGVuc2lvbnMiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZSYmbih0KT9lKGkodCkpOnR9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDEzKTtyKDYyKSgiaXNGcm96ZW4iLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4hbih0KXx8ISFlJiZlKHQpfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxMyk7cig2MikoImlzU2VhbGVkIixmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIW4odCl8fCEhZSYmZSh0KX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTMpO3IoNjIpKCJpc0V4dGVuc2libGUiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4hIW4odCkmJighZXx8ZSh0KSl9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5TK24uRiwiT2JqZWN0Iix7YXNzaWduOnIoNDI2KX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKTtuKG4uUywiT2JqZWN0Iix7aXM6cig0MjcpfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5TLCJPYmplY3QiLHtzZXRQcm90b3R5cGVPZjpyKDI1Nikuc2V0fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigxNDcpLGk9e307aVtyKDIxKSgidG9TdHJpbmdUYWciKV09InoiLGkrIiIhPSJbb2JqZWN0IHpdIiYmcig0OSkoT2JqZWN0LnByb3RvdHlwZSwidG9TdHJpbmciLGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgIituKHRoaXMpKyJdIn0sITApfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKTtuKG4uUCwiRnVuY3Rpb24iLHtiaW5kOnIoNDI4KX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyOCkuZixpPUZ1bmN0aW9uLnByb3RvdHlwZSxvPS9eXHMqZnVuY3Rpb24gKFteIChdKikvOyJuYW1lImluIGl8fHIoMjkpJiZuKGksIm5hbWUiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dHJ5e3JldHVybigiIit0aGlzKS5tYXRjaChvKVsxXX1jYXRjaChlKXtyZXR1cm4iIn19fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigxMyksaT1yKDk5KSxvPXIoMjEpKCJoYXNJbnN0YW5jZSIpLGE9RnVuY3Rpb24ucHJvdG90eXBlO28gaW4gYXx8cigyOCkuZihhLG8se3ZhbHVlOmZ1bmN0aW9uKGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0aGlzfHwhbihlKSlyZXR1cm4hMTtpZighbih0aGlzLnByb3RvdHlwZSkpcmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzO2Zvcig7ZT1pKGUpOylpZih0aGlzLnByb3RvdHlwZT09PWUpcmV0dXJuITA7cmV0dXJuITF9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cig0MjkpO24obi5HK24uRioocGFyc2VJbnQhPWkpLHtwYXJzZUludDppfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cig0MzApO24obi5HK24uRioocGFyc2VGbG9hdCE9aSkse3BhcnNlRmxvYXQ6aX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMTcpLGk9cig1MCksbz1yKDcwKSxhPXIoMjU4KSxzPXIoODIpLHU9cigxNCksYz1yKDk4KS5mLGY9cig2MSkuZixsPXIoMjgpLmYsaD1yKDExMSkudHJpbSxwPW4uTnVtYmVyLGQ9cCx5PXAucHJvdG90eXBlLGc9Ik51bWJlciI9PW8ocig5NykoeSkpLHY9InRyaW0iaW4gU3RyaW5nLnByb3RvdHlwZSxtPWZ1bmN0aW9uKGUpe3ZhciB0PXMoZSwhMSk7aWYoInN0cmluZyI9PXR5cGVvZiB0JiZ0Lmxlbmd0aD4yKXt2YXIgcixuLGksbz0odD12P3QudHJpbSgpOmgodCwzKSkuY2hhckNvZGVBdCgwKTtpZig0Mz09PW98fDQ1PT09byl7aWYoODg9PT0ocj10LmNoYXJDb2RlQXQoMikpfHwxMjA9PT1yKXJldHVybiBOYU59ZWxzZSBpZig0OD09PW8pe3N3aXRjaCh0LmNoYXJDb2RlQXQoMSkpe2Nhc2UgNjY6Y2FzZSA5ODpuPTIsaT00OTticmVhaztjYXNlIDc5OmNhc2UgMTExOm49OCxpPTU1O2JyZWFrO2RlZmF1bHQ6cmV0dXJuK3R9Zm9yKHZhciBhLHU9dC5zbGljZSgyKSxjPTAsZj11Lmxlbmd0aDtjPGY7YysrKWlmKChhPXUuY2hhckNvZGVBdChjKSk8NDh8fGE+aSlyZXR1cm4gTmFOO3JldHVybiBwYXJzZUludCh1LG4pfX1yZXR1cm4rdH07aWYoIXAoIiAwbzEiKXx8IXAoIjBiMSIpfHxwKCIrMHgxIikpe3A9ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aDwxPzA6ZSxyPXRoaXM7cmV0dXJuIHIgaW5zdGFuY2VvZiBwJiYoZz91KGZ1bmN0aW9uKCl7eS52YWx1ZU9mLmNhbGwocil9KToiTnVtYmVyIiE9byhyKSk/YShuZXcgZChtKHQpKSxyLHApOm0odCl9O2Zvcih2YXIgYixfPXIoMjkpP2MoZCk6Ik1BWF9WQUxVRSxNSU5fVkFMVUUsTmFOLE5FR0FUSVZFX0lORklOSVRZLFBPU0lUSVZFX0lORklOSVRZLEVQU0lMT04saXNGaW5pdGUsaXNJbnRlZ2VyLGlzTmFOLGlzU2FmZUludGVnZXIsTUFYX1NBRkVfSU5URUdFUixNSU5fU0FGRV9JTlRFR0VSLHBhcnNlRmxvYXQscGFyc2VJbnQsaXNJbnRlZ2VyIi5zcGxpdCgiLCIpLFM9MDtfLmxlbmd0aD5TO1MrKylpKGQsYj1fW1NdKSYmIWkocCxiKSYmbChwLGIsZihkLGIpKTtwLnByb3RvdHlwZT15LHkuY29uc3RydWN0b3I9cCxyKDQ5KShuLCJOdW1iZXIiLHApfX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIpLGk9cig2MCksbz1yKDQzMSksYT1yKDI1OSkscz0xLi50b0ZpeGVkLHU9TWF0aC5mbG9vcixjPVswLDAsMCwwLDAsMF0sZj0iTnVtYmVyLnRvRml4ZWQ6IGluY29ycmVjdCBpbnZvY2F0aW9uISIsbD1mdW5jdGlvbihlLHQpe2Zvcih2YXIgcj0tMSxuPXQ7KytyPDY7KW4rPWUqY1tyXSxjW3JdPW4lMWU3LG49dShuLzFlNyl9LGg9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTYscj0wOy0tdD49MDspcis9Y1t0XSxjW3RdPXUoci9lKSxyPXIlZSoxZTd9LHA9ZnVuY3Rpb24oKXtmb3IodmFyIGU9Nix0PSIiOy0tZT49MDspaWYoIiIhPT10fHwwPT09ZXx8MCE9PWNbZV0pe3ZhciByPVN0cmluZyhjW2VdKTt0PSIiPT09dD9yOnQrYS5jYWxsKCIwIiw3LXIubGVuZ3RoKStyfXJldHVybiB0fSxkPWZ1bmN0aW9uIGUodCxyLG4pe3JldHVybiAwPT09cj9uOnIlMj09PTE/ZSh0LHItMSxuKnQpOmUodCp0LHIvMixuKX07bihuLlArbi5GKighIXMmJigiMC4wMDAiIT09OGUtNS50b0ZpeGVkKDMpfHwiMSIhPT0uOS50b0ZpeGVkKDApfHwiMS4yNSIhPT0xLjI1NS50b0ZpeGVkKDIpfHwiMTAwMDAwMDAwMDAwMDAwMDEyOCIhPT0oMHhkZTBiNmIzYTc2NDAwODApLnRvRml4ZWQoMCkpfHwhcigxNCkoZnVuY3Rpb24oKXtzLmNhbGwoe30pfSkpLCJOdW1iZXIiLHt0b0ZpeGVkOmZ1bmN0aW9uKGUpe3ZhciB0LHIsbixzLHU9byh0aGlzLGYpLGM9aShlKSx5PSIiLGc9IjAiO2lmKGM8MHx8Yz4yMCl0aHJvdyBSYW5nZUVycm9yKGYpO2lmKHUhPXUpcmV0dXJuIk5hTiI7aWYodTw9LTFlMjF8fHU+PTFlMjEpcmV0dXJuIFN0cmluZyh1KTtpZih1PDAmJih5PSItIix1PS11KSx1PjFlLTIxKWlmKHI9KHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAscj1lO3I+PTQwOTY7KXQrPTEyLHIvPTQwOTY7Zm9yKDtyPj0yOyl0Kz0xLHIvPTI7cmV0dXJuIHR9KHUqZCgyLDY5LDEpKS02OSk8MD91KmQoMiwtdCwxKTp1L2QoMix0LDEpLHIqPTQ1MDM1OTk2MjczNzA0OTYsKHQ9NTItdCk+MCl7Zm9yKGwoMCxyKSxuPWM7bj49NzspbCgxZTcsMCksbi09Nztmb3IobChkKDEwLG4sMSksMCksbj10LTE7bj49MjM7KWgoMTw8MjMpLG4tPTIzO2goMTw8biksbCgxLDEpLGgoMiksZz1wKCl9ZWxzZSBsKDAsciksbCgxPDwtdCwwKSxnPXAoKSthLmNhbGwoIg==",
    "2020.03.29 15:16": "base64:K2EtMV0sdVtmKy0tYV09cztlbHNlIGlmKDghPWMpcmV0dXJuO3JldHVybiB1fSxMPWZ1bmN0aW9uKGUpe3ZhciB0LHIsbixpO2lmKCJudW1iZXIiPT10eXBlb2YgZSl7Zm9yKHQ9W10scj0wO3I8NDtyKyspdC51bnNoaWZ0KGUlMjU2KSxlPU1hdGguZmxvb3IoZS8yNTYpO3JldHVybiB0LmpvaW4oIi4iKX1pZigib2JqZWN0Ij09dHlwZW9mIGUpe2Zvcih0PSIiLG49ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PW51bGwscj0xLG49bnVsbCxpPTAsbz0wO288ODtvKyspMCE9PWVbb10/KGk+ciYmKHQ9bixyPWkpLG49bnVsbCxpPTApOihudWxsPT09biYmKG49byksKytpKTtyZXR1cm4gaT5yJiYodD1uLHI9aSksdH0oZSkscj0wO3I8ODtyKyspaSYmMD09PWVbcl18fChpJiYoaT0hMSksbj09PXI/KHQrPXI/IjoiOiI6OiIsaT0hMCk6KHQrPWVbcl0udG9TdHJpbmcoMTYpLHI8NyYmKHQrPSI6IikpKTtyZXR1cm4iWyIrdCsiXSJ9cmV0dXJuIGV9LEQ9e30saj1sKHt9LEQseyIgIjoxLCciJzoxLCI8IjoxLCI+IjoxLCJgIjoxfSksVT1sKHt9LGoseyIjIjoxLCI/IjoxLCJ7IjoxLCJ9IjoxfSksRj1sKHt9LFUseyIvIjoxLCI6IjoxLCI7IjoxLCI9IjoxLCJAIjoxLCJbIjoxLCJcXCI6MSwiXSI6MSwiXiI6MSwifCI6MX0pLFY9ZnVuY3Rpb24oZSx0KXt2YXIgcj1wKGUsMCk7cmV0dXJuIHI+MzImJnI8MTI3JiYhZih0LGUpP2U6ZW5jb2RlVVJJQ29tcG9uZW50KGUpfSxxPXtmdHA6MjEsZmlsZTpudWxsLGdvcGhlcjo3MCxodHRwOjgwLGh0dHBzOjQ0Myx3czo4MCx3c3M6NDQzfSxLPWZ1bmN0aW9uKGUpe3JldHVybiBmKHEsZS5zY2hlbWUpfSx6PWZ1bmN0aW9uKGUpe3JldHVybiIiIT1lLnVzZXJuYW1lfHwiIiE9ZS5wYXNzd29yZH0sRz1mdW5jdGlvbihlKXtyZXR1cm4hZS5ob3N0fHxlLmNhbm5vdEJlQUJhc2VVUkx8fCJmaWxlIj09ZS5zY2hlbWV9LEg9ZnVuY3Rpb24oZSx0KXt2YXIgcjtyZXR1cm4gMj09ZS5sZW5ndGgmJkUudGVzdChlLmNoYXJBdCgwKSkmJigiOiI9PShyPWUuY2hhckF0KDEpKXx8IXQmJiJ8Ij09cil9LFc9ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIGUubGVuZ3RoPjEmJkgoZS5zbGljZSgwLDIpKSYmKDI9PWUubGVuZ3RofHwiLyI9PT0odD1lLmNoYXJBdCgyKSl8fCJcXCI9PT10fHwiPyI9PT10fHwiIyI9PT10KX0sWT1mdW5jdGlvbihlKXt2YXIgdD1lLnBhdGgscj10Lmxlbmd0aDshcnx8ImZpbGUiPT1lLnNjaGVtZSYmMT09ciYmSCh0WzBdLCEwKXx8dC5wb3AoKX0sWD1mdW5jdGlvbihlKXtyZXR1cm4iLiI9PT1lfHwiJTJlIj09PWUudG9Mb3dlckNhc2UoKX0sUT17fSwkPXt9LFo9e30sSj17fSxlZT17fSx0ZT17fSxyZT17fSxuZT17fSxpZT17fSxvZT17fSxhZT17fSxzZT17fSx1ZT17fSxjZT17fSxmZT17fSxsZT17fSxoZT17fSxwZT17fSxkZT17fSx5ZT17fSxnZT17fSx2ZT1mdW5jdGlvbihlLHQscixpKXt2YXIgbyxhLHMsdSxjLGw9cnx8USxwPTAsZD0iIix5PSExLGc9ITEsdj0hMTtmb3Iocnx8KGUuc2NoZW1lPSIiLGUudXNlcm5hbWU9IiIsZS5wYXNzd29yZD0iIixlLmhvc3Q9bnVsbCxlLnBvcnQ9bnVsbCxlLnBhdGg9W10sZS5xdWVyeT1udWxsLGUuZnJhZ21lbnQ9bnVsbCxlLmNhbm5vdEJlQUJhc2VVUkw9ITEsdD10LnJlcGxhY2UoTiwiIikpLHQ9dC5yZXBsYWNlKFAsIiIpLG89aCh0KTtwPD1vLmxlbmd0aDspe3N3aXRjaChhPW9bcF0sbCl7Y2FzZSBROmlmKCFhfHwhRS50ZXN0KGEpKXtpZihyKXJldHVybiJJbnZhbGlkIHNjaGVtZSI7bD1aO2NvbnRpbnVlfWQrPWEudG9Mb3dlckNhc2UoKSxsPSQ7YnJlYWs7Y2FzZSAkOmlmKGEmJih3LnRlc3QoYSl8fCIrIj09YXx8Ii0iPT1hfHwiLiI9PWEpKWQrPWEudG9Mb3dlckNhc2UoKTtlbHNle2lmKCI6IiE9YSl7aWYocilyZXR1cm4iSW52YWxpZCBzY2hlbWUiO2Q9IiIsbD1aLHA9MDtjb250aW51ZX1pZihyJiYoSyhlKSE9ZihxLGQpfHwiZmlsZSI9PWQmJih6KGUpfHxudWxsIT09ZS5wb3J0KXx8ImZpbGUiPT1lLnNjaGVtZSYmIWUuaG9zdCkpcmV0dXJuO2lmKGUuc2NoZW1lPWQscilyZXR1cm4gdm9pZChLKGUpJiZxW2Uuc2NoZW1lXT09ZS5wb3J0JiYoZS5wb3J0PW51bGwpKTtkPSIiLCJmaWxlIj09ZS5zY2hlbWU/bD1jZTpLKGUpJiZpJiZpLnNjaGVtZT09ZS5zY2hlbWU/bD1KOksoZSk/bD1uZToiLyI9PW9bcCsxXT8obD1lZSxwKyspOihlLmNhbm5vdEJlQUJhc2VVUkw9ITAsZS5wYXRoLnB1c2goIiIpLGw9ZGUpfWJyZWFrO2Nhc2UgWjppZighaXx8aS5jYW5ub3RCZUFCYXNlVVJMJiYiIyIhPWEpcmV0dXJuIkludmFsaWQgc2NoZW1lIjtpZihpLmNhbm5vdEJlQUJhc2VVUkwmJiIjIj09YSl7ZS5zY2hlbWU9aS5zY2hlbWUsZS5wYXRoPWkucGF0aC5zbGljZSgpLGUucXVlcnk9aS5xdWVyeSxlLmZyYWdtZW50PSIiLGUuY2Fubm90QmVBQmFzZVVSTD0hMCxsPWdlO2JyZWFrfWw9ImZpbGUiPT1pLnNjaGVtZT9jZTp0ZTtjb250aW51ZTtjYXNlIEo6aWYoIi8iIT1hfHwiLyIhPW9bcCsxXSl7bD10ZTtjb250aW51ZX1sPWllLHArKzticmVhaztjYXNlIGVlOmlmKCIvIj09YSl7bD1vZTticmVha31sPXBlO2NvbnRpbnVlO2Nhc2UgdGU6aWYoZS5zY2hlbWU9aS5zY2hlbWUsYT09billLnVzZXJuYW1lPWkudXNlcm5hbWUsZS5wYXNzd29yZD1pLnBhc3N3b3JkLGUuaG9zdD1pLmhvc3QsZS5wb3J0PWkucG9ydCxlLnBhdGg9aS5wYXRoLnNsaWNlKCksZS5xdWVyeT1pLnF1ZXJ5O2Vsc2UgaWYoIi8iPT1hfHwiXFwiPT1hJiZLKGUpKWw9cmU7ZWxzZSBpZigiPyI9PWEpZS51c2VybmFtZT1pLnVzZXJuYW1lLGUucGFzc3dvcmQ9aS5wYXNzd29yZCxlLmhvc3Q9aS5ob3N0LGUucG9ydD1pLnBvcnQsZS5wYXRoPWkucGF0aC5zbGljZSgpLGUucXVlcnk9IiIsbD15ZTtlbHNle2lmKCIjIiE9YSl7ZS51c2VybmFtZT1pLnVzZXJuYW1lLGUucGFzc3dvcmQ9aS5wYXNzd29yZCxlLmhvc3Q9aS5ob3N0LGUucG9ydD1pLnBvcnQsZS5wYXRoPWkucGF0aC5zbGljZSgpLGUucGF0aC5wb3AoKSxsPXBlO2NvbnRpbnVlfWUudXNlcm5hbWU9aS51c2VybmFtZSxlLnBhc3N3b3JkPWkucGFzc3dvcmQsZS5ob3N0PWkuaG9zdCxlLnBvcnQ9aS5wb3J0LGUucGF0aD1pLnBhdGguc2xpY2UoKSxlLnF1ZXJ5PWkucXVlcnksZS5mcmFnbWVudD0iIixsPWdlfWJyZWFrO2Nhc2UgcmU6aWYoIUsoZSl8fCIvIiE9YSYmIlxcIiE9YSl7aWYoIi8iIT1hKXtlLnVzZXJuYW1lPWkudXNlcm5hbWUsZS5wYXNzd29yZD1pLnBhc3N3b3JkLGUuaG9zdD1pLmhvc3QsZS5wb3J0PWkucG9ydCxsPXBlO2NvbnRpbnVlfWw9b2V9ZWxzZSBsPWllO2JyZWFrO2Nhc2UgbmU6aWYobD1pZSwiLyIhPWF8fCIvIiE9ZC5jaGFyQXQocCsxKSljb250aW51ZTtwKys7YnJlYWs7Y2FzZSBpZTppZigiLyIhPWEmJiJcXCIhPWEpe2w9b2U7Y29udGludWV9YnJlYWs7Y2FzZSBvZTppZigiQCI9PWEpe3kmJihkPSIlNDAiK2QpLHk9ITAscz1oKGQpO2Zvcih2YXIgbT0wO208cy5sZW5ndGg7bSsrKXt2YXIgYj1zW21dO2lmKCI6IiE9Ynx8dil7dmFyIF89VihiLEYpO3Y/ZS5wYXNzd29yZCs9XzplLnVzZXJuYW1lKz1ffWVsc2Ugdj0hMH1kPSIifWVsc2UgaWYoYT09bnx8Ii8iPT1hfHwiPyI9PWF8fCIjIj09YXx8IlxcIj09YSYmSyhlKSl7aWYoeSYmIiI9PWQpcmV0dXJuIkludmFsaWQgYXV0aG9yaXR5IjtwLT1oKGQpLmxlbmd0aCsxLGQ9IiIsbD1hZX1lbHNlIGQrPWE7YnJlYWs7Y2FzZSBhZTpjYXNlIHNlOmlmKHImJiJmaWxlIj09ZS5zY2hlbWUpe2w9bGU7Y29udGludWV9aWYoIjoiIT1hfHxnKXtpZihhPT1ufHwiLyI9PWF8fCI/Ij09YXx8IiMiPT1hfHwiXFwiPT1hJiZLKGUpKXtpZihLKGUpJiYiIj09ZClyZXR1cm4iSW52YWxpZCBob3N0IjtpZihyJiYiIj09ZCYmKHooZSl8fG51bGwhPT1lLnBvcnQpKXJldHVybjtpZih1PVIoZSxkKSlyZXR1cm4gdTtpZihkPSIiLGw9aGUscilyZXR1cm47Y29udGludWV9IlsiPT1hP2c9ITA6Il0iPT1hJiYoZz0hMSksZCs9YX1lbHNle2lmKCIiPT1kKXJldHVybiJJbnZhbGlkIGhvc3QiO2lmKHU9UihlLGQpKXJldHVybiB1O2lmKGQ9IiIsbD11ZSxyPT1zZSlyZXR1cm59YnJlYWs7Y2FzZSB1ZTppZighVC50ZXN0KGEpKXtpZihhPT1ufHwiLyI9PWF8fCI/Ij09YXx8IiMiPT1hfHwiXFwiPT1hJiZLKGUpfHxyKXtpZigiIiE9ZCl7dmFyIFM9cGFyc2VJbnQoZCwxMCk7aWYoUz42NTUzNSlyZXR1cm4iSW52YWxpZCBwb3J0IjtlLnBvcnQ9SyhlKSYmUz09PXFbZS5zY2hlbWVdP251bGw6UyxkPSIifWlmKHIpcmV0dXJuO2w9aGU7Y29udGludWV9cmV0dXJuIkludmFsaWQgcG9ydCJ9ZCs9YTticmVhaztjYXNlIGNlOmlmKGUuc2NoZW1lPSJmaWxlIiwiLyI9PWF8fCJcXCI9PWEpbD1mZTtlbHNle2lmKCFpfHwiZmlsZSIhPWkuc2NoZW1lKXtsPXBlO2NvbnRpbnVlfWlmKGE9PW4pZS5ob3N0PWkuaG9zdCxlLnBhdGg9aS5wYXRoLnNsaWNlKCksZS5xdWVyeT1pLnF1ZXJ5O2Vsc2UgaWYoIj8iPT1hKWUuaG9zdD1pLmhvc3QsZS5wYXRoPWkucGF0aC5zbGljZSgpLGUucXVlcnk9IiIsbD15ZTtlbHNle2lmKCIjIiE9YSl7VyhvLnNsaWNlKHApLmpvaW4oIiIpKXx8KGUuaG9zdD1pLmhvc3QsZS5wYXRoPWkucGF0aC5zbGljZSgpLFkoZSkpLGw9cGU7Y29udGludWV9ZS5ob3N0PWkuaG9zdCxlLnBhdGg9aS5wYXRoLnNsaWNlKCksZS5xdWVyeT1pLnF1ZXJ5LGUuZnJhZ21lbnQ9IiIsbD1nZX19YnJlYWs7Y2FzZSBmZTppZigiLyI9PWF8fCJcXCI9PWEpe2w9bGU7YnJlYWt9aSYmImZpbGUiPT1pLnNjaGVtZSYmIVcoby5zbGljZShwKS5qb2luKCIiKSkmJihIKGkucGF0aFswXSwhMCk/ZS5wYXRoLnB1c2goaS5wYXRoWzBdKTplLmhvc3Q9aS5ob3N0KSxsPXBlO2NvbnRpbnVlO2Nhc2UgbGU6aWYoYT09bnx8Ii8iPT1hfHwiXFwiPT1hfHwiPyI9PWF8fCIjIj09YSl7aWYoIXImJkgoZCkpbD1wZTtlbHNlIGlmKCIiPT1kKXtpZihlLmhvc3Q9IiIscilyZXR1cm47bD1oZX1lbHNle2lmKHU9UihlLGQpKXJldHVybiB1O2lmKCJsb2NhbGhvc3QiPT1lLmhvc3QmJihlLmhvc3Q9IiIpLHIpcmV0dXJuO2Q9IiIsbD1oZX1jb250aW51ZX1kKz1hO2JyZWFrO2Nhc2UgaGU6aWYoSyhlKSl7aWYobD1wZSwiLyIhPWEmJiJcXCIhPWEpY29udGludWV9ZWxzZSBpZihyfHwiPyIhPWEpaWYocnx8IiMiIT1hKXtpZihhIT1uJiYobD1wZSwiLyIhPWEpKWNvbnRpbnVlfWVsc2UgZS5mcmFnbWVudD0iIixsPWdlO2Vsc2UgZS5xdWVyeT0iIixsPXllO2JyZWFrO2Nhc2UgcGU6aWYoYT09bnx8Ii8iPT1hfHwiXFwiPT1hJiZLKGUpfHwhciYmKCI/Ij09YXx8IiMiPT1hKSl7aWYoIi4uIj09PShjPShjPWQpLnRvTG93ZXJDYXNlKCkpfHwiJTJlLiI9PT1jfHwiLiUyZSI9PT1jfHwiJTJlJTJlIj09PWM/KFkoZSksIi8iPT1hfHwiXFwiPT1hJiZLKGUpfHxlLnBhdGgucHVzaCgiIikpOlgoZCk/Ii8iPT1hfHwiXFwiPT1hJiZLKGUpfHxlLnBhdGgucHVzaCgiIik6KCJmaWxlIj09ZS5zY2hlbWUmJiFlLnBhdGgubGVuZ3RoJiZIKGQpJiYoZS5ob3N0JiYoZS5ob3N0PSIiKSxkPWQuY2hhckF0KDApKyI6IiksZS5wYXRoLnB1c2goZCkpLGQ9IiIsImZpbGUiPT1lLnNjaGVtZSYmKGE9PW58fCI/Ij09YXx8IiMiPT1hKSlmb3IoO2UucGF0aC5sZW5ndGg+MSYmIiI9PT1lLnBhdGhbMF07KWUucGF0aC5zaGlmdCgpOyI/Ij09YT8oZS5xdWVyeT0iIixsPXllKToiIyI9PWEmJihlLmZyYWdtZW50PSIiLGw9Z2UpfWVsc2UgZCs9VihhLFUpO2JyZWFrO2Nhc2UgZGU6Ij8iPT1hPyhlLnF1ZXJ5PSIiLGw9eWUpOiIjIj09YT8oZS5mcmFnbWVudD0iIixsPWdlKTphIT1uJiYoZS5wYXRoWzBdKz1WKGEsRCkpO2JyZWFrO2Nhc2UgeWU6cnx8IiMiIT1hP2EhPW4mJigiJyI9PWEmJksoZSk/ZS5xdWVyeSs9IiUyNyI6ZS5xdWVyeSs9IiMiPT1hPyIlMjMiOlYoYSxEKSk6KGUuZnJhZ21lbnQ9IiIsbD1nZSk7YnJlYWs7Y2FzZSBnZTphIT1uJiYoZS5mcmFnbWVudCs9VihhLGopKX1wKyt9fSxtZT1mdW5jdGlvbihlKXt2YXIgdCxyLG49Yyh0aGlzLG1lLCJVUkwiKSxvPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLGE9U3RyaW5nKGUpLHM9YihuLHt0eXBlOiJVUkwifSk7aWYodm9pZCAwIT09bylpZihvIGluc3RhbmNlb2YgbWUpdD1fKG8pO2Vsc2UgaWYocj12ZSh0PXt9LFN0cmluZyhvKSkpdGhyb3cgVHlwZUVycm9yKHIpO2lmKHI9dmUocyxhLG51bGwsdCkpdGhyb3cgVHlwZUVycm9yKHIpO3ZhciB1PXMuc2VhcmNoUGFyYW1zPW5ldyBnLGY9dih1KTtmLnVwZGF0ZVNlYXJjaFBhcmFtcyhzLnF1ZXJ5KSxmLnVwZGF0ZVVSTD1mdW5jdGlvbigpe3MucXVlcnk9U3RyaW5nKHUpfHxudWxsfSxpfHwobi5ocmVmPV9lLmNhbGwobiksbi5vcmlnaW49U2UuY2FsbChuKSxuLnByb3RvY29sPUVlLmNhbGwobiksbi51c2VybmFtZT13ZS5jYWxsKG4pLG4ucGFzc3dvcmQ9VGUuY2FsbChuKSxuLmhvc3Q9QWUuY2FsbChuKSxuLmhvc3RuYW1lPUNlLmNhbGwobiksbi5wb3J0PXhlLmNhbGwobiksbi5wYXRobmFtZT1JZS5jYWxsKG4pLG4uc2VhcmNoPWtlLmNhbGwobiksbi5zZWFyY2hQYXJhbXM9T2UuY2FsbChuKSxuLmhhc2g9TmUuY2FsbChuKSl9LGJlPW1lLnByb3RvdHlwZSxfZT1mdW5jdGlvbigpe3ZhciBlPV8odGhpcyksdD1lLnNjaGVtZSxyPWUudXNlcm5hbWUsbj1lLnBhc3N3b3JkLGk9ZS5ob3N0LG89ZS5wb3J0LGE9ZS5wYXRoLHM9ZS5xdWVyeSx1PWUuZnJhZ21lbnQsYz10KyI6IjtyZXR1cm4gbnVsbCE9PWk/KGMrPSIvLyIseihlKSYmKGMrPXIrKG4/IjoiK246IiIpKyJAIiksYys9TChpKSxudWxsIT09byYmKGMrPSI6IitvKSk6ImZpbGUiPT10JiYoYys9Ii8vIiksYys9ZS5jYW5ub3RCZUFCYXNlVVJMP2FbMF06YS5sZW5ndGg/Ii8iK2Euam9pbigiLyIpOiIiLG51bGwhPT1zJiYoYys9Ij8iK3MpLG51bGwhPT11JiYoYys9IiMiK3UpLGN9LFNlPWZ1bmN0aW9uKCl7dmFyIGU9Xyh0aGlzKSx0PWUuc2NoZW1lLHI9ZS5wb3J0O2lmKCJibG9iIj09dCl0cnl7cmV0dXJuIG5ldyBVUkwodC5wYXRoWzBdKS5vcmlnaW59Y2F0Y2gobil7cmV0dXJuIm51bGwifXJldHVybiJmaWxlIiE9dCYmSyhlKT90KyI6Ly8iK0woZS5ob3N0KSsobnVsbCE9PXI/IjoiK3I6IiIpOiJudWxsIn0sRWU9ZnVuY3Rpb24oKXtyZXR1cm4gXyh0aGlzKS5zY2hlbWUrIjoifSx3ZT1mdW5jdGlvbigpe3JldHVybiBfKHRoaXMpLnVzZXJuYW1lfSxUZT1mdW5jdGlvbigpe3JldHVybiBfKHRoaXMpLnBhc3N3b3JkfSxBZT1mdW5jdGlvbigpe3ZhciBlPV8odGhpcyksdD1lLmhvc3Qscj1lLnBvcnQ7cmV0dXJuIG51bGw9PT10PyIiOm51bGw9PT1yP0wodCk6TCh0KSsiOiIrcn0sQ2U9ZnVuY3Rpb24oKXt2YXIgZT1fKHRoaXMpLmhvc3Q7cmV0dXJuIG51bGw9PT1lPyIiOkwoZSl9LHhlPWZ1bmN0aW9uKCl7dmFyIGU9Xyh0aGlzKS5wb3J0O3JldHVybiBudWxsPT09ZT8iIjpTdHJpbmcoZSl9LEllPWZ1bmN0aW9uKCl7dmFyIGU9Xyh0aGlzKSx0PWUucGF0aDtyZXR1cm4gZS5jYW5ub3RCZUFCYXNlVVJMP3RbMF06dC5sZW5ndGg/Ii8iK3Quam9pbigiLyIpOiIifSxrZT1mdW5jdGlvbigpe3ZhciBlPV8odGhpcykucXVlcnk7cmV0dXJuIGU/Ij8iK2U6IiJ9LE9lPWZ1bmN0aW9uKCl7cmV0dXJuIF8odGhpcykuc2VhcmNoUGFyYW1zfSxOZT1mdW5jdGlvbigpe3ZhciBlPV8odGhpcykuZnJhZ21lbnQ7cmV0dXJuIGU/IiMiK2U6IiJ9LFBlPWZ1bmN0aW9uKGUsdCl7cmV0dXJue2dldDplLHNldDp0LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfX07aWYoaSYmcyhiZSx7aHJlZjpQZShfZSxmdW5jdGlvbihlKXt2YXIgdD1fKHRoaXMpLHI9U3RyaW5nKGUpLG49dmUodCxyKTtpZihuKXRocm93IFR5cGVFcnJvcihuKTt2KHQuc2VhcmNoUGFyYW1zKS51cGRhdGVTZWFyY2hQYXJhbXModC5xdWVyeSl9KSxvcmlnaW46UGUoU2UpLHByb3RvY29sOlBlKEVlLGZ1bmN0aW9uKGUpe3ZhciB0PV8odGhpcyk7dmUodCxTdHJpbmcoZSkrIjoiLFEpfSksdXNlcm5hbWU6UGUod2UsZnVuY3Rpb24oZSl7dmFyIHQ9Xyh0aGlzKSxyPWgoU3RyaW5nKGUpKTtpZighRyh0KSl7dC51c2VybmFtZT0iIjtmb3IodmFyIG49MDtuPHIubGVuZ3RoO24rKyl0LnVzZXJuYW1lKz1WKHJbbl0sRil9fSkscGFzc3dvcmQ6UGUoVGUsZnVuY3Rpb24oZSl7dmFyIHQ9Xyh0aGlzKSxyPWgoU3RyaW5nKGUpKTtpZighRyh0KSl7dC5wYXNzd29yZD0iIjtmb3IodmFyIG49MDtuPHIubGVuZ3RoO24rKyl0LnBhc3N3b3JkKz1WKHJbbl0sRil9fSksaG9zdDpQZShBZSxmdW5jdGlvbihlKXt2YXIgdD1fKHRoaXMpO3QuY2Fubm90QmVBQmFzZVVSTHx8dmUodCxTdHJpbmcoZSksYWUpfSksaG9zdG5hbWU6UGUoQ2UsZnVuY3Rpb24oZSl7dmFyIHQ9Xyh0aGlzKTt0LmNhbm5vdEJlQUJhc2VVUkx8fHZlKHQsU3RyaW5nKGUpLHNlKX0pLHBvcnQ6UGUoeGUsZnVuY3Rpb24oZSl7dmFyIHQ9Xyh0aGlzKTtHKHQpfHwoIiI9PShlPVN0cmluZyhlKSk/dC5wb3J0PW51bGw6dmUodCxlLHVlKSl9KSxwYXRobmFtZTpQZShJZSxmdW5jdGlvbihlKXt2YXIgdD1fKHRoaXMpO3QuY2Fubm90QmVBQmFzZVVSTHx8KHQucGF0aD1bXSx2ZSh0LGUrIiIsaGUpKX0pLHNlYXJjaDpQZShrZSxmdW5jdGlvbihlKXt2YXIgdD1fKHRoaXMpOyIiPT0oZT1TdHJpbmcoZSkpP3QucXVlcnk9bnVsbDooIj8iPT1lLmNoYXJBdCgwKSYmKGU9ZS5zbGljZSgxKSksdC5xdWVyeT0iIix2ZSh0LGUseWUpKSx2KHQuc2VhcmNoUGFyYW1zKS51cGRhdGVTZWFyY2hQYXJhbXModC5xdWVyeSl9KSxzZWFyY2hQYXJhbXM6UGUoT2UpLGhhc2g6UGUoTmUsZnVuY3Rpb24oZSl7dmFyIHQ9Xyh0aGlzKTsiIiE9KGU9U3RyaW5nKGUpKT8oIiMiPT1lLmNoYXJBdCgwKSYmKGU9ZS5zbGljZSgxKSksdC5mcmFnbWVudD0iIix2ZSh0LGUsZ2UpKTp0LmZyYWdtZW50PW51bGx9KX0pLHUoYmUsInRvSlNPTiIsZnVuY3Rpb24oKXtyZXR1cm4gX2UuY2FsbCh0aGlzKX0se2VudW1lcmFibGU6ITB9KSx1KGJlLCJ0b1N0cmluZyIsZnVuY3Rpb24oKXtyZXR1cm4gX2UuY2FsbCh0aGlzKX0se2VudW1lcmFibGU6ITB9KSxhKXt2YXIgUmU9YS5jcmVhdGVPYmplY3RVUkwsQmU9YS5yZXZva2VPYmplY3RVUkw7UmUmJnUobWUsImNyZWF0ZU9iamVjdFVSTCIsZnVuY3Rpb24oZSl7cmV0dXJuIFJlLmFwcGx5KGEsYXJndW1lbnRzKX0pLEJlJiZ1KG1lLCJyZXZva2VPYmplY3RVUkwiLGZ1bmN0aW9uKGUpe3JldHVybiBCZS5hcHBseShhLGFyZ3VtZW50cyl9KX1yKDE3NykobWUsIlVSTCIpLHIoMTQzKSh7Z2xvYmFsOiEwLGZvcmNlZDohbyxzaGFtOiFpfSx7VVJMOm1lfSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig0MTgpLGk9cigxNDIpLG89cig0MTApLGE9aS5zZXQscz1pLmdldHRlckZvcigiU3RyaW5nIEl0ZXJhdG9yIik7byhTdHJpbmcsIlN0cmluZyIsZnVuY3Rpb24oZSl7YSh0aGlzLHt0eXBlOiJTdHJpbmcgSXRlcmF0b3IiLHN0cmluZzpTdHJpbmcoZSksaW5kZXg6MH0pfSxmdW5jdGlvbigpe3ZhciBlLHQ9cyh0aGlzKSxyPXQuc3RyaW5nLGk9dC5pbmRleDtyZXR1cm4gaT49ci5sZW5ndGg/e3ZhbHVlOnZvaWQgMCxkb25lOiEwfTooZT1uKHIsaSwhMCksdC5pbmRleCs9ZS5sZW5ndGgse3ZhbHVlOmUsZG9uZTohMX0pfSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig0MDYpLGk9cig0MTIpLG89cig0MTEpLGE9cigxNzIpLHM9cigyMzgpLHU9T2JqZWN0LmFzc2lnbjtlLmV4cG9ydHM9IXV8fHIoNjgpKGZ1bmN0aW9uKCl7dmFyIGU9e30sdD17fSxyPVN5bWJvbCgpO3JldHVybiBlW3JdPTcsImFiY2RlZmdoaWprbG1ub3BxcnN0Ii5zcGxpdCgiIikuZm9yRWFjaChmdW5jdGlvbihlKXt0W2VdPWV9KSw3IT11KHt9LGUpW3JdfHwiYWJjZGVmZ2hpamtsbW5vcHFyc3QiIT1uKHUoe30sdCkpLmpvaW4oIiIpfSk/ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9YShlKSx1PWFyZ3VtZW50cy5sZW5ndGgsYz0xLGY9aS5mLGw9by5mO3U+YzspZm9yKHZhciBoLHA9cyhhcmd1bWVudHNbYysrXSksZD1mP24ocCkuY29uY2F0KGYocCkpOm4ocCkseT1kLmxlbmd0aCxnPTA7eT5nOylsLmNhbGwocCxoPWRbZysrXSkmJihyW2hdPXBbaF0pO3JldHVybiByfTp1fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMTcxKSxpPXIoMTcyKSxvPXIoNzQ2KSxhPXIoNzQ3KSxzPXIoMjQwKSx1PXIoNzQ4KSxjPXIoMjUyKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQscixmLGwsaD1pKGUpLHA9ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXM/dGhpczpBcnJheSxkPWFyZ3VtZW50cy5sZW5ndGgseT1kPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxnPXZvaWQgMCE9PXksdj0wLG09YyhoKTtpZihnJiYoeT1uKHksZD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsMikpLHZvaWQgMD09bXx8cD09QXJyYXkmJmEobSkpZm9yKHI9bmV3IHAodD1zKGgubGVuZ3RoKSk7dD52O3YrKyl1KHIsdixnP3koaFt2XSx2KTpoW3ZdKTtlbHNlIGZvcihsPW0uY2FsbChoKSxyPW5ldyBwOyEoZj1sLm5leHQoKSkuZG9uZTt2KyspdShyLHYsZz9vKGwseSxbZi52YWx1ZSx2XSwhMCk6Zi52YWx1ZSk7cmV0dXJuIHIubGVuZ3RoPXYscn19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDgxKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LHIsaSl7dHJ5e3JldHVybiBpP3QobihyKVswXSxyWzFdKTp0KHIpfWNhdGNoKGEpe3ZhciBvPWUucmV0dXJuO3Rocm93IHZvaWQgMCE9PW8mJm4oby5jYWxsKGUpKSxhfX19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDE0MSksaT1yKDUzKSgiaXRlcmF0b3IiKSxvPUFycmF5LnByb3RvdHlwZTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PWUmJihuLkFycmF5PT09ZXx8b1tpXT09PWUpfX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDI0NCksaT1yKDE0MCksbz1yKDE3NCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyKXt2YXIgYT1uKHQpO2EgaW4gZT9pLmYoZSxhLG8oMCxyKSk6ZVthXT1yfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTA3KSxpPXIoNTMpKCJ0b1N0cmluZ1RhZyIpLG89IkFyZ3VtZW50cyI9PW4oZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQscixhO3JldHVybiB2b2lkIDA9PT1lPyJVbmRlZmluZWQiOm51bGw9PT1lPyJOdWxsIjoic3RyaW5nIj09dHlwZW9mKHI9ZnVuY3Rpb24oZSx0KXt0cnl7cmV0dXJuIGVbdF19Y2F0Y2gocil7fX0odD1PYmplY3QoZSksaSkpP3I6bz9uKHQpOiJPYmplY3QiPT0oYT1uKHQpKSYmImZ1bmN0aW9uIj09dHlwZW9mIHQuY2FsbGVlPyJBcmd1bWVudHMiOmF9fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPS9bXlwwLVx1MDA3RV0vLGk9L1tcdTAwMkVcdTMwMDJcdUZGMEVcdUZGNjFdL2csbz0iT3ZlcmZsb3c6IGlucHV0IG5lZWRzIHdpZGVyIGludGVnZXJzIHRvIHByb2Nlc3MiLGE9TWF0aC5mbG9vcixzPVN0cmluZy5mcm9tQ2hhckNvZGUsdT1mdW5jdGlvbihlKXtyZXR1cm4gZSsyMis3NSooZTwyNil9LGM9ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPTA7Zm9yKGU9cj9hKGUvNzAwKTplPj4xLGUrPWEoZS90KTtlPjQ1NTtuKz0zNillPWEoZS8zNSk7cmV0dXJuIGEobiszNiplLyhlKzM4KSl9LGY9ZnVuY3Rpb24oZSl7dmFyIHQscixuPVtdLGk9KGU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLHI9MCxuPWUubGVuZ3RoO3I8bjspe3ZhciBpPWUuY2hhckNvZGVBdChyKyspO2lmKGk+PTU1Mjk2JiZpPD01NjMxOSYmcjxuKXt2YXIgbz1lLmNoYXJDb2RlQXQocisrKTs1NjMyMD09KDY0NTEyJm8pP3QucHVzaCgoKDEwMjMmaSk8PDEwKSsoMTAyMyZvKSs2NTUzNik6KHQucHVzaChpKSxyLS0pfWVsc2UgdC5wdXNoKGkpfXJldHVybiB0fShlKSkubGVuZ3RoLGY9MTI4LGw9MCxoPTcyO2Zvcih0PTA7dDxlLmxlbmd0aDt0KyspKHI9ZVt0XSk8MTI4JiZuLnB1c2gocyhyKSk7dmFyIHA9bi5sZW5ndGgsZD1wO2ZvcihwJiZuLnB1c2goIi0iKTtkPGk7KXt2YXIgeT0yMTQ3NDgzNjQ3O2Zvcih0PTA7dDxlLmxlbmd0aDt0KyspKHI9ZVt0XSk+PWYmJnI8eSYmKHk9cik7dmFyIGc9ZCsxO2lmKHktZj5hKCgyMTQ3NDgzNjQ3LWwpL2cpKXRocm93IFJhbmdlRXJyb3Iobyk7Zm9yKGwrPSh5LWYpKmcsZj15LHQ9MDt0PGUubGVuZ3RoO3QrKyl7aWYoKHI9ZVt0XSk8ZiYmKytsPjIxNDc0ODM2NDcpdGhyb3cgUmFuZ2VFcnJvcihvKTtpZihyPT1mKXtmb3IodmFyIHY9bCxtPTM2OzttKz0zNil7dmFyIGI9bTw9aD8xOm0+PWgrMjY/MjY6bS1oO2lmKHY8YilicmVhazt2YXIgXz12LWIsUz0zNi1iO24ucHVzaChzKHUoYitfJVMpKSksdj1hKF8vUyl9bi5wdXNoKHModSh2KSkpLGg9YyhsLGcsZD09cCksbD0wLCsrZH19KytsLCsrZn1yZXR1cm4gbi5qb2luKCIiKX07ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0LHIsbz1bXSxhPWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKGksIi4iKS5zcGxpdCgiLiIpO2Zvcih0PTA7dDxhLmxlbmd0aDt0Kyspcj1hW3RdLG8ucHVzaChuLnRlc3Qocik/InhuLS0iK2Yocik6cik7cmV0dXJuIG8uam9pbigiLiIpfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTQ0KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaSBpbiB0KW4oZSxpLHRbaV0scik7cmV0dXJuIGV9fSxmdW5jdGlvbihlLHQscil7dmFyIG49cig4MSksaT1yKDI1Mik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PWkoZSk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgVHlwZUVycm9yKFN0cmluZyhlKSsiIGlzIG5vdCBpdGVyYWJsZSIpO3JldHVybiBuKHQuY2FsbChlKSl9fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IoMTQzKSh7dGFyZ2V0OiJVUkwiLHByb3RvOiEwLGVudW1lcmFibGU6ITB9LHt0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm4gVVJMLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRoaXMpfX0pfSxmdW5jdGlvbihlLHQscil7cig3NTUpLHIoNzU3KSxyKDc1OCkscig3NTkpLHIoNzYwKSxyKDc2MSkscig3NjIpLHIoNzYzKSxyKDc2NCkscig3NjUpLHIoNzY2KSxyKDc2Nykscig3NjgpLHIoNzY5KSxyKDc3MCkscig3NzEpLHIoNzcyKSxyKDc3Mykscig3NzQpLHIoNzc1KSxyKDc3Nikscig3NzcpLHIoNzc4KSxyKDc3OSkscig3ODApLHIoNzgxKSxyKDc4Mikscig3ODMpLHIoNzg0KSxyKDc4NSkscig3ODYpLHIoNzg3KSxyKDc4OCkscig3ODkpLHIoNzkwKSxyKDc5MSkscig3OTIpLHIoNzkzKSxyKDc5NCkscig3OTUpLHIoNzk2KSxyKDc5Nykscig3OTgpLHIoODAwKSxyKDgwMSkscig4MDIpLHIoODAzKSxyKDgwNCkscig4MDUpLHIoODA2KSxyKDgwNykscig4MDgpLHIoODA5KSxyKDgxMCkscig4MTEpLHIoODEyKSxyKDgxMykscig4MTQpLHIoODE1KSxyKDgxNikscig4MTcpLHIoODE4KSxyKDgxOSkscig4MjApLHIoODIxKSxyKDgyMikscig4MjMpLHIoODI0KSxyKDgyNSkscig4MjYpLHIoODI3KSxyKDgyOCkscig4MjkpLHIoODMwKSxyKDgzMSkscig4MzIpLHIoODMzKSxyKDgzNSkscig4MzYpLHIoODM4KSxyKDgzOSkscig4NDApLHIoODQxKSxyKDg0Mikscig4NDMpLHIoODQ0KSxyKDg0Nikscig4NDcpLHIoODQ4KSxyKDg0OSkscig4NTApLHIoODUxKSxyKDg1Mikscig4NTMpLHIoODU0KSxyKDg1NSkscig4NTYpLHIoODU3KSxyKDg1OCkscig0MzkpLHIoODU5KSxyKDQ0MSkscig4NjApLHIoNDQyKSxyKDg2MSkscig4NjIpLHIoODYzKSxyKDg2NCkscig0NDMpLHIoODY3KSxyKDg2OCkscig4NjkpLHIoODcwKSxyKDg3MSkscig4NzIpLHIoODczKSxyKDg3NCkscig4NzUpLHIoODc2KSxyKDg3Nykscig4NzgpLHIoODc5KSxyKDg4MCkscig4ODEpLHIoODgyKSxyKDg4Mykscig4ODQpLHIoODg1KSxyKDg4Nikscig4ODcpLHIoODg4KSxyKDg4OSkscig4OTApLHIoODkxKSxyKDg5Mikscig4OTMpLHIoODk0KSxyKDg5NSksZS5leHBvcnRzPXIoMjcpfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMTcpLGk9cig1MCksbz1yKDI5KSxhPXIoMikscz1yKDQ5KSx1PXIoODMpLktFWSxjPXIoMTQpLGY9cigxNzgpLGw9cigxMDkpLGg9cig5NCkscD1yKDIxKSxkPXIoMjUzKSx5PXIoNDIyKSxnPXIoNzU2KSx2PXIoMTgxKSxtPXIoMTIpLGI9cigxMyksXz1yKDM2KSxTPXIoNTEpLEU9cig4Miksdz1yKDkzKSxUPXIoOTcpLEE9cig0MjUpLEM9cig2MSkseD1yKDE4MCksST1yKDI4KSxrPXIoMTEwKSxPPUMuZixOPUkuZixQPUEuZixSPW4uU3ltYm9sLEI9bi5KU09OLE09QiYmQi5zdHJpbmdpZnksTD1wKCJfaGlkZGVuIiksRD1wKCJ0b1ByaW1pdGl2ZSIpLGo9e30ucHJvcGVydHlJc0VudW1lcmFibGUsVT1mKCJzeW1ib2wtcmVnaXN0cnkiKSxGPWYoInN5bWJvbHMiKSxWPWYoIm9wLXN5bWJvbHMiKSxxPU9iamVjdC5wcm90b3R5cGUsSz0iZnVuY3Rpb24iPT10eXBlb2YgUiYmISF4LmYsej1uLlFPYmplY3QsRz0henx8IXoucHJvdG90eXBlfHwhei5wcm90b3R5cGUuZmluZENoaWxkLEg9byYmYyhmdW5jdGlvbigpe3JldHVybiA3IT1UKE4oe30sImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTih0aGlzLCJhIix7dmFsdWU6N30pLmF9fSkpLmF9KT9mdW5jdGlvbihlLHQscil7dmFyIG49TyhxLHQpO24mJmRlbGV0ZSBxW3RdLE4oZSx0LHIpLG4mJmUhPT1xJiZOKHEsdCxuKX06TixXPWZ1bmN0aW9uKGUpe3ZhciB0PUZbZV09VChSLnByb3RvdHlwZSk7cmV0dXJuIHQuX2s9ZSx0fSxZPUsmJiJzeW1ib2wiPT10eXBlb2YgUi5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgUn0sWD1mdW5jdGlvbihlLHQscil7cmV0dXJuIGU9PT1xJiZYKFYsdCxyKSxtKGUpLHQ9RSh0LCEwKSxtKHIpLGkoRix0KT8oci5lbnVtZXJhYmxlPyhpKGUsTCkmJmVbTF1bdF0mJihlW0xdW3RdPSExKSxyPVQocix7ZW51bWVyYWJsZTp3KDAsITEpfSkpOihpKGUsTCl8fE4oZSxMLHcoMSx7fSkpLGVbTF1bdF09ITApLEgoZSx0LHIpKTpOKGUsdCxyKX0sUT1mdW5jdGlvbihlLHQpe20oZSk7Zm9yKHZhciByLG49Zyh0PVModCkpLGk9MCxvPW4ubGVuZ3RoO28+aTspWChlLHI9bltpKytdLHRbcl0pO3JldHVybiBlfSwkPWZ1bmN0aW9uKGUpe3ZhciB0PWouY2FsbCh0aGlzLGU9RShlLCEwKSk7cmV0dXJuISh0aGlzPT09cSYmaShGLGUpJiYhaShWLGUpKSYmKCEodHx8IWkodGhpcyxlKXx8IWkoRixlKXx8aSh0aGlzLEwpJiZ0aGlzW0xdW2VdKXx8dCl9LFo9ZnVuY3Rpb24oZSx0KXtpZihlPVMoZSksdD1FKHQsITApLGUhPT1xfHwhaShGLHQpfHxpKFYsdCkpe3ZhciByPU8oZSx0KTtyZXR1cm4hcnx8IWkoRix0KXx8aShlLEwpJiZlW0xdW3RdfHwoci5lbnVtZXJhYmxlPSEwKSxyfX0sSj1mdW5jdGlvbihlKXtmb3IodmFyIHQscj1QKFMoZSkpLG49W10sbz0wO3IubGVuZ3RoPm87KWkoRix0PXJbbysrXSl8fHQ9PUx8fHQ9PXV8fG4ucHVzaCh0KTtyZXR1cm4gbn0sZWU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LHI9ZT09PXEsbj1QKHI/VjpTKGUpKSxvPVtdLGE9MDtuLmxlbmd0aD5hOykhaShGLHQ9blthKytdKXx8ciYmIWkocSx0KXx8by5wdXNoKEZbdF0pO3JldHVybiBvfTtLfHwocygoUj1mdW5jdGlvbigpe2lmKHRoaXMgaW5zdGFuY2VvZiBSKXRocm93IFR5cGVFcnJvcigiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yISIpO3ZhciBlPWgoYXJndW1lbnRzLmxlbmd0aD4wP2FyZ3VtZW50c1swXTp2b2lkIDApO3JldHVybiBvJiZHJiZIKHEsZSx7Y29uZmlndXJhYmxlOiEwLHNldDpmdW5jdGlvbiB0KHIpe3RoaXM9PT1xJiZ0LmNhbGwoVixyKSxpKHRoaXMsTCkmJmkodGhpc1tMXSxlKSYmKHRoaXNbTF1bZV09ITEpLEgodGhpcyxlLHcoMSxyKSl9fSksVyhlKX0pLnByb3RvdHlwZSwidG9TdHJpbmciLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2t9KSxDLmY9WixJLmY9WCxyKDk4KS5mPUEuZj1KLHIoMTQ2KS5mPSQseC5mPWVlLG8mJiFyKDk1KSYmcyhxLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsJCwhMCksZC5mPWZ1bmN0aW9uKGUpe3JldHVybiBXKHAoZSkpfSksYShhLkcrYS5XK2EuRiohSyx7U3ltYm9sOlJ9KTtmb3IodmFyIHRlPSJoYXNJbnN0YW5jZSxpc0NvbmNhdFNwcmVhZGFibGUsaXRlcmF0b3IsbWF0Y2gscmVwbGFjZSxzZWFyY2gsc3BlY2llcyxzcGxpdCx0b1ByaW1pdGl2ZSx0b1N0cmluZ1RhZyx1bnNjb3BhYmxlcyIuc3BsaXQoIiwiKSxyZT0wO3RlLmxlbmd0aD5yZTspcCh0ZVtyZSsrXSk7Zm9yKHZhciBuZT1rKHAuc3RvcmUpLGllPTA7bmUubGVuZ3RoPmllOyl5KG5lW2llKytdKTthKGEuUythLkYqIUssIlN5bWJvbCIse2ZvcjpmdW5jdGlvbihlKXtyZXR1cm4gaShVLGUrPSIiKT9VW2VdOlVbZV09UihlKX0sa2V5Rm9yOmZ1bmN0aW9uKGUpe2lmKCFZKGUpKXRocm93IFR5cGVFcnJvcihlKyIgaXMgbm90IGEgc3ltYm9sISIpO2Zvcih2YXIgdCBpbiBVKWlmKFVbdF09PT1lKXJldHVybiB0fSx1c2VTZXR0ZXI6ZnVuY3Rpb24oKXtHPSEwfSx1c2VTaW1wbGU6ZnVuY3Rpb24oKXtHPSExfX0pLGEoYS5TK2EuRiohSywiT2JqZWN0Iix7Y3JlYXRlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQ/VChlKTpRKFQoZSksdCl9LGRlZmluZVByb3BlcnR5OlgsZGVmaW5lUHJvcGVydGllczpRLGdldE93blByb3BlcnR5RGVzY3JpcHRvcjpaLGdldE93blByb3BlcnR5TmFtZXM6SixnZXRPd25Qcm9wZXJ0eVN5bWJvbHM6ZWV9KTt2YXIgb2U9YyhmdW5jdGlvbigpe3guZigxKX0pO2EoYS5TK2EuRipvZSwiT2JqZWN0Iix7Z2V0T3duUHJvcGVydHlTeW1ib2xzOmZ1bmN0aW9uKGUpe3JldHVybiB4LmYoXyhlKSl9fSksQiYmYShhLlMrYS5GKighS3x8YyhmdW5jdGlvbigpe3ZhciBlPVIoKTtyZXR1cm4iW251bGxdIiE9TShbZV0pfHwie30iIT1NKHthOmV9KXx8Int9IiE9TShPYmplY3QoZSkpfSkpLCJKU09OIix7c3RyaW5naWZ5OmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxyLG49W2VdLGk9MTthcmd1bWVudHMubGVuZ3RoPmk7KW4ucHVzaChhcmd1bWVudHNbaSsrXSk7aWYocj10PW5bMV0sKGIodCl8fHZvaWQgMCE9PWUpJiYhWShlKSlyZXR1cm4gdih0KXx8KHQ9ZnVuY3Rpb24oZSx0KXtpZigiZnVuY3Rpb24iPT10eXBlb2YgciYmKHQ9ci5jYWxsKHRoaXMsZSx0KSksIVkodCkpcmV0dXJuIHR9KSxuWzFdPXQsTS5hcHBseShCLG4pfX0pLFIucHJvdG90eXBlW0RdfHxyKDU0KShSLnByb3RvdHlwZSxELFIucHJvdG90eXBlLnZhbHVlT2YpLGwoUiwiU3ltYm9sIiksbChNYXRoLCJNYXRoIiwhMCksbChuLkpTT04sIkpTT04iLCEwKX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTEwKSxpPXIoMTgwKSxvPXIoMTQ2KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9bihlKSxyPWkuZjtpZihyKWZvcih2YXIgYSxzPXIoZSksdT1vLmYsYz0wO3MubGVuZ3RoPmM7KXUuY2FsbChlLGE9c1tjKytdKSYmdC5wdXNoKGEpO3JldHVybiB0fX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk9iamVjdCIse2NyZWF0ZTpyKDk3KX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKTtuKG4uUytuLkYqIXIoMjkpLCJPYmplY3QiLHtkZWZpbmVQcm9wZXJ0eTpyKDI4KS5mfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5TK24uRiohcigyOSksIk9iamVjdCIse2RlZmluZVByb3BlcnRpZXM6cig0MjQpfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDUxKSxpPXIoNjEpLmY7cig2MikoImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXtyZXR1cm4gaShuKGUpLHQpfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigzNiksaT1yKDk5KTtyKDYyKSgiZ2V0UHJvdG90eXBlT2YiLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBpKG4oZSkpfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigzNiksaT1yKDExMCk7cig2MikoImtleXMiLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBpKG4oZSkpfX0pfSxmdW5jdGlvbihlLHQscil7cig2MikoImdldE93blByb3BlcnR5TmFtZXMiLGZ1bmN0aW9uKCl7cmV0dXJuIHIoNDI1KS5mfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDEzKSxpPXIoODMpLm9uRnJlZXplO3IoNjIpKCJmcmVlemUiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZSYmbih0KT9lKGkodCkpOnR9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDEzKSxpPXIoODMpLm9uRnJlZXplO3IoNjIpKCJzZWFsIixmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUmJm4odCk/ZShpKHQpKTp0fX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxMyksaT1yKDgzKS5vbkZyZWV6ZTtyKDYyKSgicHJldmVudEV4dGVuc2lvbnMiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZSYmbih0KT9lKGkodCkpOnR9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDEzKTtyKDYyKSgiaXNGcm96ZW4iLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4hbih0KXx8ISFlJiZlKHQpfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxMyk7cig2MikoImlzU2VhbGVkIixmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIW4odCl8fCEhZSYmZSh0KX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTMpO3IoNjIpKCJpc0V4dGVuc2libGUiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4hIW4odCkmJighZXx8ZSh0KSl9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5TK24uRiwiT2JqZWN0Iix7YXNzaWduOnIoNDI2KX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKTtuKG4uUywiT2JqZWN0Iix7aXM6cig0MjcpfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5TLCJPYmplY3QiLHtzZXRQcm90b3R5cGVPZjpyKDI1Nikuc2V0fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigxNDcpLGk9e307aVtyKDIxKSgidG9TdHJpbmdUYWciKV09InoiLGkrIiIhPSJbb2JqZWN0IHpdIiYmcig0OSkoT2JqZWN0LnByb3RvdHlwZSwidG9TdHJpbmciLGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgIituKHRoaXMpKyJdIn0sITApfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKTtuKG4uUCwiRnVuY3Rpb24iLHtiaW5kOnIoNDI4KX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyOCkuZixpPUZ1bmN0aW9uLnByb3RvdHlwZSxvPS9eXHMqZnVuY3Rpb24gKFteIChdKikvOyJuYW1lImluIGl8fHIoMjkpJiZuKGksIm5hbWUiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dHJ5e3JldHVybigiIit0aGlzKS5tYXRjaChvKVsxXX1jYXRjaChlKXtyZXR1cm4iIn19fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigxMyksaT1yKDk5KSxvPXIoMjEpKCJoYXNJbnN0YW5jZSIpLGE9RnVuY3Rpb24ucHJvdG90eXBlO28gaW4gYXx8cigyOCkuZihhLG8se3ZhbHVlOmZ1bmN0aW9uKGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0aGlzfHwhbihlKSlyZXR1cm4hMTtpZighbih0aGlzLnByb3RvdHlwZSkpcmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzO2Zvcig7ZT1pKGUpOylpZih0aGlzLnByb3RvdHlwZT09PWUpcmV0dXJuITA7cmV0dXJuITF9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cig0MjkpO24obi5HK24uRioocGFyc2VJbnQhPWkpLHtwYXJzZUludDppfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cig0MzApO24obi5HK24uRioocGFyc2VGbG9hdCE9aSkse3BhcnNlRmxvYXQ6aX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMTcpLGk9cig1MCksbz1yKDcwKSxhPXIoMjU4KSxzPXIoODIpLHU9cigxNCksYz1yKDk4KS5mLGY9cig2MSkuZixsPXIoMjgpLmYsaD1yKDExMSkudHJpbSxwPW4uTnVtYmVyLGQ9cCx5PXAucHJvdG90eXBlLGc9Ik51bWJlciI9PW8ocig5NykoeSkpLHY9InRyaW0iaW4gU3RyaW5nLnByb3RvdHlwZSxtPWZ1bmN0aW9uKGUpe3ZhciB0PXMoZSwhMSk7aWYoInN0cmluZyI9PXR5cGVvZiB0JiZ0Lmxlbmd0aD4yKXt2YXIgcixuLGksbz0odD12P3QudHJpbSgpOmgodCwzKSkuY2hhckNvZGVBdCgwKTtpZig0Mz09PW98fDQ1PT09byl7aWYoODg9PT0ocj10LmNoYXJDb2RlQXQoMikpfHwxMjA9PT1yKXJldHVybiBOYU59ZWxzZSBpZig0OD09PW8pe3N3aXRjaCh0LmNoYXJDb2RlQXQoMSkpe2Nhc2UgNjY6Y2FzZSA5ODpuPTIsaT00OTticmVhaztjYXNlIDc5OmNhc2UgMTExOm49OCxpPTU1O2JyZWFrO2RlZmF1bHQ6cmV0dXJuK3R9Zm9yKHZhciBhLHU9dC5zbGljZSgyKSxjPTAsZj11Lmxlbmd0aDtjPGY7YysrKWlmKChhPXUuY2hhckNvZGVBdChjKSk8NDh8fGE+aSlyZXR1cm4gTmFOO3JldHVybiBwYXJzZUludCh1LG4pfX1yZXR1cm4rdH07aWYoIXAoIiAwbzEiKXx8IXAoIjBiMSIpfHxwKCIrMHgxIikpe3A9ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aDwxPzA6ZSxyPXRoaXM7cmV0dXJuIHIgaW5zdGFuY2VvZiBwJiYoZz91KGZ1bmN0aW9uKCl7eS52YWx1ZU9mLmNhbGwocil9KToiTnVtYmVyIiE9byhyKSk/YShuZXcgZChtKHQpKSxyLHApOm0odCl9O2Zvcih2YXIgYixfPXIoMjkpP2MoZCk6Ik1BWF9WQUxVRSxNSU5fVkFMVUUsTmFOLE5FR0FUSVZFX0lORklOSVRZLFBPU0lUSVZFX0lORklOSVRZLEVQU0lMT04saXNGaW5pdGUsaXNJbnRlZ2VyLGlzTmFOLGlzU2FmZUludGVnZXIsTUFYX1NBRkVfSU5URUdFUixNSU5fU0FGRV9JTlRFR0VSLHBhcnNlRmxvYXQscGFyc2VJbnQsaXNJbnRlZ2VyIi5zcGxpdCgiLCIpLFM9MDtfLmxlbmd0aD5TO1MrKylpKGQsYj1fW1NdKSYmIWkocCxiKSYmbChwLGIsZihkLGIpKTtwLnByb3RvdHlwZT15LHkuY29uc3RydWN0b3I9cCxyKDQ5KShuLCJOdW1iZXIiLHApfX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIpLGk9cig2MCksbz1yKDQzMSksYT1yKDI1OSkscz0xLi50b0ZpeGVkLHU9TWF0aC5mbG9vcixjPVswLDAsMCwwLDAsMF0sZj0iTnVtYmVyLnRvRml4ZWQ6IGluY29ycmVjdCBpbnZvY2F0aW9uISIsbD1mdW5jdGlvbihlLHQpe2Zvcih2YXIgcj0tMSxuPXQ7KytyPDY7KW4rPWUqY1tyXSxjW3JdPW4lMWU3LG49dShuLzFlNyl9LGg9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTYscj0wOy0tdD49MDspcis9Y1t0XSxjW3RdPXUoci9lKSxyPXIlZSoxZTd9LHA9ZnVuY3Rpb24oKXtmb3IodmFyIGU9Nix0PSIiOy0tZT49MDspaWYoIiIhPT10fHwwPT09ZXx8MCE9PWNbZV0pe3ZhciByPVN0cmluZyhjW2VdKTt0PSIiPT09dD9yOnQrYS5jYWxsKCIwIiw3LXIubGVuZ3RoKStyfXJldHVybiB0fSxkPWZ1bmN0aW9uIGUodCxyLG4pe3JldHVybiAwPT09cj9uOnIlMj09PTE/ZSh0LHItMSxuKnQpOmUodCp0LHIvMixuKX07bihuLlArbi5GKighIXMmJigiMC4wMDAiIT09OGUtNS50b0ZpeGVkKDMpfHwiMSIhPT0uOS50b0ZpeGVkKDApfHwiMS4yNSIhPT0xLjI1NS50b0ZpeGVkKDIpfHwiMTAwMDAwMDAwMDAwMDAwMDEyOCIhPT0oMHhkZTBiNmIzYTc2NDAwODApLnRvRml4ZWQoMCkpfHwhcigxNCkoZnVuY3Rpb24oKXtzLmNhbGwoe30pfSkpLCJOdW1iZXIiLHt0b0ZpeGVkOmZ1bmN0aW9uKGUpe3ZhciB0LHIsbixzLHU9byh0aGlzLGYpLGM9aShlKSx5PSIiLGc9IjAiO2lmKGM8MHx8Yz4yMCl0aHJvdyBSYW5nZUVycm9yKGYpO2lmKHUhPXUpcmV0dXJuIk5hTiI7aWYodTw9LTFlMjF8fHU+PTFlMjEpcmV0dXJuIFN0cmluZyh1KTtpZih1PDAmJih5PSItIix1PS11KSx1PjFlLTIxKWlmKHI9KHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAscj1lO3I+PTQwOTY7KXQrPTEyLHIvPTQwOTY7Zm9yKDtyPj0yOyl0Kz0xLHIvPTI7cmV0dXJuIHR9KHUqZCgyLDY5LDEpKS02OSk8MD91KmQoMiwtdCwxKTp1L2QoMix0LDEpLHIqPTQ1MDM1OTk2MjczNzA0OTYsKHQ9NTItdCk+MCl7Zm9yKGwoMCxyKSxuPWM7bj49NzspbCgxZTcsMCksbi09Nztmb3IobChkKDEwLG4sMSksMCksbj10LTE7bj49MjM7KWgoMTw8MjMpLG4tPTIzO2goMTw8biksbCgxLDEpLGgoMiksZz1wKCl9ZWxzZSBsKDAsciksbCgxPDwtdCwwKSxnPXAoKSthLmNhbGwoIg=="
}

github/deemru/w8io/169f3d6 
2.57 ms