3N2rk3yzChsJp4wCS5VLo5Q3ifLmDChfbzQ · data · asdf?polyfills-es5.js?6?2
{
"asdf?polyfills-es5.js?6?2": "base64:YmluZEFyZ3VtZW50cz1fLHUucGF0Y2hNYWNyb1Rhc2s9QTt2YXIgcz1yLl9fc3ltYm9sX18oIkJMQUNLX0xJU1RFRF9FVkVOVFMiKSx2PXIuX19zeW1ib2xfXygiVU5QQVRDSEVEX0VWRU5UUyIpO25bdl0mJihuW3NdPW5bdl0pLG5bc10mJihyW3NdPXJbdl09bltzXSksdS5wYXRjaEV2ZW50UHJvdG90eXBlPXEsdS5wYXRjaEV2ZW50VGFyZ2V0PVgsdS5pc0lFT3JFZGdlPUMsdS5PYmplY3REZWZpbmVQcm9wZXJ0eT1lLHUuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yPXQsdS5PYmplY3RDcmVhdGU9byx1LkFycmF5U2xpY2U9aSx1LnBhdGNoQ2xhc3M9RCx1LndyYXBXaXRoQ3VycmVudFpvbmU9aCx1LmZpbHRlclByb3BlcnRpZXM9eXQsdS5hdHRhY2hPcmlnaW5Ub1BhdGNoZWQ9TCx1Ll9yZWRlZmluZVByb3BlcnR5PXJ0LHUucGF0Y2hDYWxsYmFja3M9USx1LmdldEdsb2JhbE9iamVjdHM9ZnVuY3Rpb24oKXtyZXR1cm57Z2xvYmFsU291cmNlczpCLHpvbmVTeW1ib2xFdmVudE5hbWVzOkgsZXZlbnROYW1lczpndCxpc0Jyb3dzZXI6RSxpc01peDpPLGlzTm9kZTpTLFRSVUVfU1RSOmYsRkFMU0VfU1RSOmwsWk9ORV9TWU1CT0xfUFJFRklYOnAsQUREX0VWRU5UX0xJU1RFTkVSX1NUUjphLFJFTU9WRV9FVkVOVF9MSVNURU5FUl9TVFI6Y319fSkpLGZ1bmN0aW9uKHQpe3QuX196b25lX3N5bWJvbF9fbGVnYWN5UGF0Y2g9ZnVuY3Rpb24oKXt2YXIgZT10LlpvbmU7ZS5fX2xvYWRfcGF0Y2goInJlZ2lzdGVyRWxlbWVudCIsKGZ1bmN0aW9uKHQsZSxuKXshZnVuY3Rpb24odCxlKXt2YXIgbj1lLmdldEdsb2JhbE9iamVjdHMoKTsobi5pc0Jyb3dzZXJ8fG4uaXNNaXgpJiYicmVnaXN0ZXJFbGVtZW50ImluIHQuZG9jdW1lbnQmJmUucGF0Y2hDYWxsYmFja3MoZSxkb2N1bWVudCwiRG9jdW1lbnQiLCJyZWdpc3RlckVsZW1lbnQiLFsiY3JlYXRlZENhbGxiYWNrIiwiYXR0YWNoZWRDYWxsYmFjayIsImRldGFjaGVkQ2FsbGJhY2siLCJhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2siXSl9KHQsbil9KSksZS5fX2xvYWRfcGF0Y2goIkV2ZW50VGFyZ2V0TGVnYWN5IiwoZnVuY3Rpb24odCxlLG4pe2t0KHQsbiksX3Qobix0KX0pKX19KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3d8fCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZnx8Z2xvYmFsKTt2YXIgd3Q9ZCgiem9uZVRhc2siKTtmdW5jdGlvbiB4dCh0LGUsbixyKXt2YXIgbz1udWxsLGk9bnVsbDtuKz1yO3ZhciBhPXt9O2Z1bmN0aW9uIGMoZSl7dmFyIG49ZS5kYXRhO3JldHVybiBuLmFyZ3NbMF09ZnVuY3Rpb24oKXt0cnl7ZS5pbnZva2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZpbmFsbHl7ZS5kYXRhJiZlLmRhdGEuaXNQZXJpb2RpY3x8KCJudW1iZXIiPT10eXBlb2Ygbi5oYW5kbGVJZD9kZWxldGUgYVtuLmhhbmRsZUlkXTpuLmhhbmRsZUlkJiYobi5oYW5kbGVJZFt3dF09bnVsbCkpfX0sbi5oYW5kbGVJZD1vLmFwcGx5KHQsbi5hcmdzKSxlfWZ1bmN0aW9uIHUodCl7cmV0dXJuIGkodC5kYXRhLmhhbmRsZUlkKX1vPU4odCxlKz1yLChmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24obyxpKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgaVswXSl7dmFyIHM9dihlLGlbMF0se2lzUGVyaW9kaWM6IkludGVydmFsIj09PXIsZGVsYXk6IlRpbWVvdXQiPT09cnx8IkludGVydmFsIj09PXI/aVsxXXx8MDp2b2lkIDAsYXJnczppfSxjLHUpO2lmKCFzKXJldHVybiBzO3ZhciBmPXMuZGF0YS5oYW5kbGVJZDtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGY/YVtmXT1zOmYmJihmW3d0XT1zKSxmJiZmLnJlZiYmZi51bnJlZiYmImZ1bmN0aW9uIj09dHlwZW9mIGYucmVmJiYiZnVuY3Rpb24iPT10eXBlb2YgZi51bnJlZiYmKHMucmVmPWYucmVmLmJpbmQoZikscy51bnJlZj1mLnVucmVmLmJpbmQoZikpLCJudW1iZXIiPT10eXBlb2YgZnx8Zj9mOnN9cmV0dXJuIG4uYXBwbHkodCxpKX19KSksaT1OKHQsbiwoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKG4scil7dmFyIG8saT1yWzBdOyJudW1iZXIiPT10eXBlb2YgaT9vPWFbaV06KG89aSYmaVt3dF0pfHwobz1pKSxvJiYic3RyaW5nIj09dHlwZW9mIG8udHlwZT8ibm90U2NoZWR1bGVkIiE9PW8uc3RhdGUmJihvLmNhbmNlbEZuJiZvLmRhdGEuaXNQZXJpb2RpY3x8MD09PW8ucnVuQ291bnQpJiYoIm51bWJlciI9PXR5cGVvZiBpP2RlbGV0ZSBhW2ldOmkmJihpW3d0XT1udWxsKSxvLnpvbmUuY2FuY2VsVGFzayhvKSk6ZS5hcHBseSh0LHIpfX0pKX1mdW5jdGlvbiBTdCh0LGUpe2lmKCFab25lW2Uuc3ltYm9sKCJwYXRjaEV2ZW50VGFyZ2V0IildKXtmb3IodmFyIG49ZS5nZXRHbG9iYWxPYmplY3RzKCkscj1uLmV2ZW50TmFtZXMsbz1uLnpvbmVTeW1ib2xFdmVudE5hbWVzLGk9bi5UUlVFX1NUUixhPW4uRkFMU0VfU1RSLGM9bi5aT05FX1NZTUJPTF9QUkVGSVgsdT0wO3U8ci5sZW5ndGg7dSsrKXt2YXIgcz1yW3VdLGY9YysocythKSxsPWMrKHMraSk7b1tzXT17fSxvW3NdW2FdPWYsb1tzXVtpXT1sfXZhciBwPXQuRXZlbnRUYXJnZXQ7aWYocCYmcC5wcm90b3R5cGUpcmV0dXJuIGUucGF0Y2hFdmVudFRhcmdldCh0LFtwJiZwLnByb3RvdHlwZV0pLCEwfX1ab25lLl9fbG9hZF9wYXRjaCgibGVnYWN5IiwoZnVuY3Rpb24odCl7dmFyIGU9dFtab25lLl9fc3ltYm9sX18oImxlZ2FjeVBhdGNoIildO2UmJmUoKX0pKSxab25lLl9fbG9hZF9wYXRjaCgidGltZXJzIiwoZnVuY3Rpb24odCl7eHQodCwic2V0IiwiY2xlYXIiLCJUaW1lb3V0IikseHQodCwic2V0IiwiY2xlYXIiLCJJbnRlcnZhbCIpLHh0KHQsInNldCIsImNsZWFyIiwiSW1tZWRpYXRlIil9KSksWm9uZS5fX2xvYWRfcGF0Y2goInJlcXVlc3RBbmltYXRpb25GcmFtZSIsKGZ1bmN0aW9uKHQpe3h0KHQsInJlcXVlc3QiLCJjYW5jZWwiLCJBbmltYXRpb25GcmFtZSIpLHh0KHQsIm1velJlcXVlc3QiLCJtb3pDYW5jZWwiLCJBbmltYXRpb25GcmFtZSIpLHh0KHQsIndlYmtpdFJlcXVlc3QiLCJ3ZWJraXRDYW5jZWwiLCJBbmltYXRpb25GcmFtZSIpfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJibG9ja2luZyIsKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPVsiYWxlcnQiLCJwcm9tcHQiLCJjb25maXJtIl0scj0wO3I8bi5sZW5ndGg7cisrKU4odCxuW3JdLChmdW5jdGlvbihuLHIsbyl7cmV0dXJuIGZ1bmN0aW9uKHIsaSl7cmV0dXJuIGUuY3VycmVudC5ydW4obix0LGksbyl9fSkpfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJFdmVudFRhcmdldCIsKGZ1bmN0aW9uKHQsZSxuKXshZnVuY3Rpb24odCxlKXtlLnBhdGNoRXZlbnRQcm90b3R5cGUodCxlKX0odCxuKSxTdCh0LG4pO3ZhciByPXQuWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldDtyJiZyLnByb3RvdHlwZSYmbi5wYXRjaEV2ZW50VGFyZ2V0KHQsW3IucHJvdG90eXBlXSksRCgiTXV0YXRpb25PYnNlcnZlciIpLEQoIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIiKSxEKCJJbnRlcnNlY3Rpb25PYnNlcnZlciIpLEQoIkZpbGVSZWFkZXIiKX0pKSxab25lLl9fbG9hZF9wYXRjaCgib25fcHJvcGVydHkiLChmdW5jdGlvbih0LGUsbil7bXQobix0KSxPYmplY3QuZGVmaW5lUHJvcGVydHk9ZnVuY3Rpb24odCxlLG4pe2lmKG90KHQsZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFzc2lnbiB0byByZWFkIG9ubHkgcHJvcGVydHkgJyIrZSsiJyBvZiAiK3QpO3ZhciByPW4uY29uZmlndXJhYmxlO3JldHVybiJwcm90b3R5cGUiIT09ZSYmKG49aXQodCxlLG4pKSxhdCh0LGUsbixyKX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gT2JqZWN0LmtleXMoZSkuZm9yRWFjaCgoZnVuY3Rpb24obil7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsbixlW25dKX0pKSx0fSxPYmplY3QuY3JlYXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIm9iamVjdCIhPXR5cGVvZiBlfHxPYmplY3QuaXNGcm96ZW4oZSl8fE9iamVjdC5rZXlzKGUpLmZvckVhY2goKGZ1bmN0aW9uKG4pe2Vbbl09aXQodCxuLGVbbl0pfSkpLGV0KHQsZSl9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I9ZnVuY3Rpb24odCxlKXt2YXIgbj10dCh0LGUpO3JldHVybiBuJiZvdCh0LGUpJiYobi5jb25maWd1cmFibGU9ITEpLG59fSkpLFpvbmUuX19sb2FkX3BhdGNoKCJjdXN0b21FbGVtZW50cyIsKGZ1bmN0aW9uKHQsZSxuKXshZnVuY3Rpb24odCxlKXt2YXIgbj1lLmdldEdsb2JhbE9iamVjdHMoKTsobi5pc0Jyb3dzZXJ8fG4uaXNNaXgpJiZ0LmN1c3RvbUVsZW1lbnRzJiYiY3VzdG9tRWxlbWVudHMiaW4gdCYmZS5wYXRjaENhbGxiYWNrcyhlLHQuY3VzdG9tRWxlbWVudHMsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIixbImNvbm5lY3RlZENhbGxiYWNrIiwiZGlzY29ubmVjdGVkQ2FsbGJhY2siLCJhZG9wdGVkQ2FsbGJhY2siLCJhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2siXSl9KHQsbil9KSksWm9uZS5fX2xvYWRfcGF0Y2goIlhIUiIsKGZ1bmN0aW9uKHQsZSl7IWZ1bmN0aW9uKHQpe3ZhciBmPXQuWE1MSHR0cFJlcXVlc3Q7aWYoZil7dmFyIGw9Zi5wcm90b3R5cGUscD1sW3VdLGg9bFtzXTtpZighcCl7dmFyIGc9dC5YTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0O2lmKGcpe3ZhciB5PWcucHJvdG90eXBlO3A9eVt1XSxoPXlbc119fXZhciBiPSJyZWFkeXN0YXRlY2hhbmdlIixtPSJzY2hlZHVsZWQiLGs9TihsLCJvcGVuIiwoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxlKXtyZXR1cm4gdFtyXT0wPT1lWzJdLHRbYV09ZVsxXSxrLmFwcGx5KHQsZSl9fSkpLF89ZCgiZmV0Y2hUYXNrQWJvcnRpbmciKSx3PWQoImZldGNoVGFza1NjaGVkdWxpbmciKSx4PU4obCwic2VuZCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQsbil7aWYoITA9PT1lLmN1cnJlbnRbd10pcmV0dXJuIHguYXBwbHkodCxuKTtpZih0W3JdKXJldHVybiB4LmFwcGx5KHQsbik7dmFyIG89e3RhcmdldDp0LHVybDp0W2FdLGlzUGVyaW9kaWM6ITEsYXJnczpuLGFib3J0ZWQ6ITF9LGk9digiWE1MSHR0cFJlcXVlc3Quc2VuZCIsTyxvLEUsVCk7dCYmITA9PT10W2NdJiYhby5hYm9ydGVkJiZpLnN0YXRlPT09bSYmaS5pbnZva2UoKX19KSksUz1OKGwsImFib3J0IiwoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxyKXt2YXIgbz10W25dO2lmKG8mJiJzdHJpbmciPT10eXBlb2Ygby50eXBlKXtpZihudWxsPT1vLmNhbmNlbEZufHxvLmRhdGEmJm8uZGF0YS5hYm9ydGVkKXJldHVybjtvLnpvbmUuY2FuY2VsVGFzayhvKX1lbHNlIGlmKCEwPT09ZS5jdXJyZW50W19dKXJldHVybiBTLmFwcGx5KHQscil9fSkpfWZ1bmN0aW9uIEUodCl7dmFyIGU9dC5kYXRhLHI9ZS50YXJnZXQ7cltpXT0hMSxyW2NdPSExO3ZhciBhPXJbb107cHx8KHA9clt1XSxoPXJbc10pLGEmJmguY2FsbChyLGIsYSk7dmFyIGY9cltvXT1mdW5jdGlvbigpe2lmKHIucmVhZHlTdGF0ZT09PXIuRE9ORSlpZighZS5hYm9ydGVkJiZyW2ldJiZ0LnN0YXRlPT09bSl7dmFyIG49ci5fX3pvbmVfc3ltYm9sX19sb2FkZmFsc2U7aWYobiYmbi5sZW5ndGg+MCl7dmFyIG89dC5pbnZva2U7dC5pbnZva2U9ZnVuY3Rpb24oKXtmb3IodmFyIG49ci5fX3pvbmVfc3ltYm9sX19sb2FkZmFsc2UsaT0wO2k8bi5sZW5ndGg7aSsrKW5baV09PT10JiZuLnNwbGljZShpLDEpO2UuYWJvcnRlZHx8dC5zdGF0ZSE9PW18fG8uY2FsbCh0KX0sbi5wdXNoKHQpfWVsc2UgdC5pbnZva2UoKX1lbHNlIGUuYWJvcnRlZHx8ITEhPT1yW2ldfHwocltjXT0hMCl9O3JldHVybiBwLmNhbGwocixiLGYpLHJbbl18fChyW25dPXQpLHguYXBwbHkocixlLmFyZ3MpLHJbaV09ITAsdH1mdW5jdGlvbiBPKCl7fWZ1bmN0aW9uIFQodCl7dmFyIGU9dC5kYXRhO3JldHVybiBlLmFib3J0ZWQ9ITAsUy5hcHBseShlLnRhcmdldCxlLmFyZ3MpfX0odCk7dmFyIG49ZCgieGhyVGFzayIpLHI9ZCgieGhyU3luYyIpLG89ZCgieGhyTGlzdGVuZXIiKSxpPWQoInhoclNjaGVkdWxlZCIpLGE9ZCgieGhyVVJMIiksYz1kKCJ4aHJFcnJvckJlZm9yZVNjaGVkdWxlZCIpfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJnZW9sb2NhdGlvbiIsKGZ1bmN0aW9uKGUpe2UubmF2aWdhdG9yJiZlLm5hdmlnYXRvci5nZW9sb2NhdGlvbiYmZnVuY3Rpb24oZSxuKXtmb3IodmFyIHI9ZS5jb25zdHJ1Y3Rvci5uYW1lLG89ZnVuY3Rpb24obyl7dmFyIGk9bltvXSxhPWVbaV07aWYoYSl7aWYoIXcodChlLGkpKSlyZXR1cm4iY29udGludWUiO2VbaV09ZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseSh0aGlzLF8oYXJndW1lbnRzLHIrIi4iK2kpKX07cmV0dXJuIEwoZSx0KSxlfShhKX19LGk9MDtpPG4ubGVuZ3RoO2krKylvKGkpfShlLm5hdmlnYXRvci5nZW9sb2NhdGlvbixbImdldEN1cnJlbnRQb3NpdGlvbiIsIndhdGNoUG9zaXRpb24iXSl9KSksWm9uZS5fX2xvYWRfcGF0Y2goIlByb21pc2VSZWplY3Rpb25FdmVudCIsKGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbihlKXtyZXR1cm4gZnVuY3Rpb24obil7WSh0LGUpLmZvckVhY2goKGZ1bmN0aW9uKHIpe3ZhciBvPXQuUHJvbWlzZVJlamVjdGlvbkV2ZW50O2lmKG8pe3ZhciBpPW5ldyBvKGUse3Byb21pc2U6bi5wcm9taXNlLHJlYXNvbjpuLnJlamVjdGlvbn0pO3IuaW52b2tlKGkpfX0pKX19dC5Qcm9taXNlUmVqZWN0aW9uRXZlbnQmJihlW2QoInVuaGFuZGxlZFByb21pc2VSZWplY3Rpb25IYW5kbGVyIildPW4oInVuaGFuZGxlZHJlamVjdGlvbiIpLGVbZCgicmVqZWN0aW9uSGFuZGxlZEhhbmRsZXIiKV09bigicmVqZWN0aW9uaGFuZGxlZCIpKX0pKX0oKX0sIjBlZWYiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9e30ucHJvcGVydHlJc0VudW1lcmFibGUsbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGk9byYmIXIuY2FsbCh7MToyfSwxKTtlLmY9aT9mdW5jdGlvbih0KXt2YXIgZT1vKHRoaXMsdCk7cmV0dXJuISFlJiZlLmVudW1lcmFibGV9OnJ9LCIwb3VnIjpmdW5jdGlvbih0LGUsbil7bigiZEcvbiIpKCJpdGVyYXRvciIpfSwiMHJ2ciI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImdscmsiKSxvPW4oIk83NDEiKTt0LmV4cG9ydHM9T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoIl9fcHJvdG9fXyJpbnt9P2Z1bmN0aW9uKCl7dmFyIHQsZT0hMSxuPXt9O3RyeXsodD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE9iamVjdC5wcm90b3R5cGUsIl9fcHJvdG9fXyIpLnNldCkuY2FsbChuLFtdKSxlPW4gaW5zdGFuY2VvZiBBcnJheX1jYXRjaChpKXt9cmV0dXJuIGZ1bmN0aW9uKG4saSl7cmV0dXJuIHIobiksbyhpKSxlP3QuY2FsbChuLGkpOm4uX19wcm90b19fPWksbn19KCk6dm9pZCAwKX0sMTpmdW5jdGlvbih0LGUsbil7bigibVJJcSIpLHQuZXhwb3J0cz1uKCJoTi9nIil9LCIxNFNsIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIlgyVSsiKSxvPW4oImJ1c0UiKSxpPW4oIjBEa3kiKSxhPW4oInRpS3AiKSxjPW4oImttTVYiKSx1PWEoInNwZWNpZXMiKSxzPSFpKChmdW5jdGlvbigpe3ZhciB0PS8uLztyZXR1cm4gdC5leGVjPWZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHQuZ3JvdXBzPXthOiI3In0sdH0sIjciIT09IiIucmVwbGFjZSh0LCIkPGE+Iil9KSksZj0haSgoZnVuY3Rpb24oKXt2YXIgdD0vKD86KS8sZT10LmV4ZWM7dC5leGVjPWZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfTt2YXIgbj0iYWIiLnNwbGl0KHQpO3JldHVybiAyIT09bi5sZW5ndGh8fCJhIiE9PW5bMF18fCJiIiE9PW5bMV19KSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuLGwpe3ZhciBwPWEodCksaD0haSgoZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm4gZVtwXT1mdW5jdGlvbigpe3JldHVybiA3fSw3IT0iIlt0XShlKX0pKSx2PWgmJiFpKChmdW5jdGlvbigpe3ZhciBlPSExLG49L2EvO3JldHVybiBuLmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gZT0hMCxudWxsfSwic3BsaXQiPT09dCYmKG4uY29uc3RydWN0b3I9e30sbi5jb25zdHJ1Y3Rvclt1XT1mdW5jdGlvbigpe3JldHVybiBufSksbltwXSgiIiksIWV9KSk7aWYoIWh8fCF2fHwicmVwbGFjZSI9PT10JiYhc3x8InNwbGl0Ij09PXQmJiFmKXt2YXIgZD0vLi9bcF0sZz1uKHAsIiJbdF0sKGZ1bmN0aW9uKHQsZSxuLHIsbyl7cmV0dXJuIGUuZXhlYz09PWM/aCYmIW8/e2RvbmU6ITAsdmFsdWU6ZC5jYWxsKGUsbixyKX06e2RvbmU6ITAsdmFsdWU6dC5jYWxsKG4sZSxyKX06e2RvbmU6ITF9fSkpLHk9Z1sxXTtvKFN0cmluZy5wcm90b3R5cGUsdCxnWzBdKSxvKFJlZ0V4cC5wcm90b3R5cGUscCwyPT1lP2Z1bmN0aW9uKHQsZSl7cmV0dXJuIHkuY2FsbCh0LHRoaXMsZSl9OmZ1bmN0aW9uKHQpe3JldHVybiB5LmNhbGwodCx0aGlzKX0pLGwmJnIoUmVnRXhwLnByb3RvdHlwZVtwXSwic2hhbSIsITApfX19LCIxRTV6IjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigibS9MOCIpLmYsbz1uKCJVVFZTIiksaT1uKCJ0aUtwIikoInRvU3RyaW5nVGFnIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXt0JiYhbyh0PW4/dDp0LnByb3RvdHlwZSxpKSYmcih0LGkse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTplfSl9fSwiMVkvbiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkhBdU0iKSxvPW4oImV3dlciKSxpPW4oIlJLM3QiKSxhPW4oIlVNU1EiKSxjPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLG4sYyx1KXtyKG4pO3ZhciBzPW8oZSksZj1pKHMpLGw9YShzLmxlbmd0aCkscD10P2wtMTowLGg9dD8tMToxO2lmKGM8Milmb3IoOzspe2lmKHAgaW4gZil7dT1mW3BdLHArPWg7YnJlYWt9aWYocCs9aCx0P3A8MDpsPD1wKXRocm93IFR5cGVFcnJvcigiUmVkdWNlIG9mIGVtcHR5IGFycmF5IHdpdGggbm8gaW5pdGlhbCB2YWx1ZSIpfWZvcig7dD9wPj0wOmw+cDtwKz1oKXAgaW4gZiYmKHU9bih1LGZbcF0scCxzKSk7cmV0dXJuIHV9fTt0LmV4cG9ydHM9e2xlZnQ6YyghMSkscmlnaHQ6YyghMCl9fSwiMkErZCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPW4oIi9HcVUiKSxpPW4oIlVNU1EiKTtyKHt0YXJnZXQ6IlN0cmluZyIsc3RhdDohMH0se3JhdzpmdW5jdGlvbih0KXtmb3IodmFyIGU9byh0LnJhdyksbj1pKGUubGVuZ3RoKSxyPWFyZ3VtZW50cy5sZW5ndGgsYT1bXSxjPTA7bj5jOylhLnB1c2goU3RyaW5nKGVbYysrXSkpLGM8ciYmYS5wdXNoKFN0cmluZyhhcmd1bWVudHNbY10pKTtyZXR1cm4gYS5qb2luKCIiKX19KX0sIjJCMVIiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigidHljUiIpLm1hcDtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IW4oIkhkNWYiKSgibWFwIil9LHttYXA6ZnVuY3Rpb24odCl7cmV0dXJuIG8odGhpcyx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sIjJvUm8iOmZ1bmN0aW9uKHQsZSl7dmFyIG49Im9iamVjdCIscj1mdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5NYXRoPT1NYXRoJiZ0fTt0LmV4cG9ydHM9cih0eXBlb2YgZ2xvYmFsVGhpcz09biYmZ2xvYmFsVGhpcyl8fHIodHlwZW9mIHdpbmRvdz09biYmd2luZG93KXx8cih0eXBlb2Ygc2VsZj09biYmc2VsZil8fHIodHlwZW9mIGdsb2JhbD09biYmZ2xvYmFsKXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKX0sIjMzV2giOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJ5b1JnIiksbz1uKCJlRGwrIik7dC5leHBvcnRzPU9iamVjdC5rZXlzfHxmdW5jdGlvbih0KXtyZXR1cm4gcih0LG8pfX0sIjNJMVIiOmZ1bmN0aW9uKHQsZSxuKXtuKCJkRy9uIikoImhhc0luc3RhbmNlIil9LCIzS2dWIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigidXk4MyIpLGk9bigiMERreSIpLGE9bigiaGgxdiIpLGM9bigiOFlPYSIpLm9uRnJlZXplLHU9T2JqZWN0LmZyZWV6ZTtyKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6aSgoZnVuY3Rpb24oKXt1KDEpfSkpLHNoYW06IW99LHtmcmVlemU6ZnVuY3Rpb24odCl7cmV0dXJuIHUmJmEodCk/dShjKHQpKTp0fX0pfSwiM2JCWiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjJvUm8iKSxvPW4oIi9ieXQiKSxpPW4oIjRtRG0iKSxhPW4oIlgyVSsiKSxjPW4oInRpS3AiKSx1PWMoIml0ZXJhdG9yIikscz1jKCJ0b1N0cmluZ1RhZyIpLGY9aS52YWx1ZXM7Zm9yKHZhciBsIGluIG8pe3ZhciBwPXJbbF0saD1wJiZwLnByb3RvdHlwZTtpZihoKXtpZihoW3VdIT09Zil0cnl7YShoLHUsZil9Y2F0Y2goZCl7aFt1XT1mfWlmKGhbc118fGEoaCxzLGwpLG9bbF0pZm9yKHZhciB2IGluIGkpaWYoaFt2XSE9PWlbdl0pdHJ5e2EoaCx2LGlbdl0pfWNhdGNoKGQpe2hbdl09aVt2XX19fX0sIjRCcmYiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiZzZ2LyIpLGk9bigiMm9SbyIpLGE9bigiVVRWUyIpLGM9bigiaGgxdiIpLHU9bigibS9MOCIpLmYscz1uKCI2Sk5xIiksZj1pLlN5bWJvbDtpZihvJiYiZnVuY3Rpb24iPT10eXBlb2YgZiYmKCEoImRlc2NyaXB0aW9uImluIGYucHJvdG90eXBlKXx8dm9pZCAwIT09ZigpLmRlc2NyaXB0aW9uKSl7dmFyIGw9e30scD1mdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg8MXx8dm9pZCAwPT09YXJndW1lbnRzWzBdP3ZvaWQgMDpTdHJpbmcoYXJndW1lbnRzWzBdKSxlPXRoaXMgaW5zdGFuY2VvZiBwP25ldyBmKHQpOnZvaWQgMD09PXQ/ZigpOmYodCk7cmV0dXJuIiI9PT10JiYobFtlXT0hMCksZX07cyhwLGYpO3ZhciBoPXAucHJvdG90eXBlPWYucHJvdG90eXBlO2guY29uc3RydWN0b3I9cDt2YXIgdj1oLnRvU3RyaW5nLGQ9IlN5bWJvbCh0ZXN0KSI9PVN0cmluZyhmKCJ0ZXN0IikpLGc9L15TeW1ib2xcKCguKilcKVteKV0rJC87dShoLCJkZXNjcmlwdGlvbiIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt2YXIgdD1jKHRoaXMpP3RoaXMudmFsdWVPZigpOnRoaXMsZT12LmNhbGwodCk7aWYoYShsLHQpKXJldHVybiIiO3ZhciBuPWQ/ZS5zbGljZSg3LC0xKTplLnJlcGxhY2UoZywiJDEiKTtyZXR1cm4iIj09PW4/dm9pZCAwOm59fSkscih7Z2xvYmFsOiEwLGZvcmNlZDohMH0se1N5bWJvbDpwfSl9fSwiNEhDaSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjBEa3kiKSxvPW4oIldKa0oiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHIoKGZ1bmN0aW9uKCl7cmV0dXJuISFvW3RdKCl8fCLigIvCheGgjiIhPSLigIvCheGgjiJbdF0oKXx8b1t0XS5uYW1lIT09dH0pKX19LCI0V09EIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiVVRWUyIpLG89bigiZXd2VyIpLGk9bigiOTNJMCIpLGE9bigiNFhldCIpLGM9aSgiSUVfUFJPVE8iKSx1PU9iamVjdC5wcm90b3R5cGU7dC5leHBvcnRzPWE/T2JqZWN0LmdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKHQpe3JldHVybiB0PW8odCkscih0LGMpP3RbY106ImZ1bmN0aW9uIj09dHlwZW9mIHQuY29uc3RydWN0b3ImJnQgaW5zdGFuY2VvZiB0LmNvbnN0cnVjdG9yP3QuY29uc3RydWN0b3IucHJvdG90eXBlOnQgaW5zdGFuY2VvZiBPYmplY3Q/dTpudWxsfX0sIjRYZXQiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwRGt5Iik7dC5leHBvcnRzPSFyKChmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPW51bGwsT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyB0KSE9PXQucHJvdG90eXBlfSkpfSwiNGgwWSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPW4oIjBEa3kiKSxpPW4oImhoMXYiKSxhPU9iamVjdC5pc0Zyb3plbjtyKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6bygoZnVuY3Rpb24oKXthKDEpfSkpfSx7aXNGcm96ZW46ZnVuY3Rpb24odCl7cmV0dXJuIWkodCl8fCEhYSYmYSh0KX19KX0sIjRsNjMiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1uKCI1WU9RIik7cih7Z2xvYmFsOiEwLGZvcmNlZDpwYXJzZUludCE9b30se3BhcnNlSW50Om99KX0sIjRtRG0iOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiL0dxVSIpLG89bigiUk5JcyIpLGk9bigiUDR5MSIpLGE9bigiYWZPOCIpLGM9bigiZmRBeSIpLHU9YS5zZXQscz1hLmdldHRlckZvcigiQXJyYXkgSXRlcmF0b3IiKTt0LmV4cG9ydHM9YyhBcnJheSwiQXJyYXkiLChmdW5jdGlvbih0LGUpe3UodGhpcyx7dHlwZToiQXJyYXkgSXRlcmF0b3IiLHRhcmdldDpyKHQpLGluZGV4OjAsa2luZDplfSl9KSwoZnVuY3Rpb24oKXt2YXIgdD1zKHRoaXMpLGU9dC50YXJnZXQsbj10LmtpbmQscj10LmluZGV4Kys7cmV0dXJuIWV8fHI+PWUubGVuZ3RoPyh0LnRhcmdldD12b2lkIDAse3ZhbHVlOnZvaWQgMCxkb25lOiEwfSk6ImtleXMiPT1uP3t2YWx1ZTpyLGRvbmU6ITF9OiJ2YWx1ZXMiPT1uP3t2YWx1ZTplW3JdLGRvbmU6ITF9Ont2YWx1ZTpbcixlW3JdXSxkb25lOiExfX0pLCJ2YWx1ZXMiKSxpLkFyZ3VtZW50cz1pLkFycmF5LG8oImtleXMiKSxvKCJ2YWx1ZXMiKSxvKCJlbnRyaWVzIil9LCI0b1UvIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMm9SbyIpLmlzRmluaXRlO3QuZXhwb3J0cz1OdW1iZXIuaXNGaW5pdGV8fGZ1bmN0aW9uKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmcih0KX19LCI0c3l3IjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiYnVzRSIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciBvIGluIGUpcih0LG8sZVtvXSxuKTtyZXR1cm4gdH19LCI1RDVvIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiMERreSIpLGk9bigiaGgxdiIpLGE9T2JqZWN0LmlzU2VhbGVkO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDpvKChmdW5jdGlvbigpe2EoMSl9KSl9LHtpc1NlYWxlZDpmdW5jdGlvbih0KXtyZXR1cm4haSh0KXx8ISFhJiZhKHQpfX0pfSwiNURtVyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPW4oIjBEa3kiKSxpPW4oIi9HcVUiKSxhPW4oIkJzOFYiKS5mLGM9bigiZzZ2LyIpLHU9bygoZnVuY3Rpb24oKXthKDEpfSkpO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDohY3x8dSxzaGFtOiFjfSx7Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGEoaSh0KSxlKX19KX0sIjVZT1EiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyb1JvIiksbz1uKCJXS2lIIikudHJpbSxpPW4oIldKa0oiKSxhPXIucGFyc2VJbnQsYz0vXlsrLV0/MFtYeF0vLHU9OCE9PWEoaSsiMDgiKXx8MjIhPT1hKGkrIjB4MTYiKTt0LmV4cG9ydHM9dT9mdW5jdGlvbih0LGUpe3ZhciBuPW8oU3RyaW5nKHQpKTtyZXR1cm4gYShuLGU+Pj4wfHwoYy50ZXN0KG4pPzE2OjEwKSl9OmF9LCI1WXorIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIi9HcVUiKSxvPW4oInBwR0IiKSxpPW4oIlVNU1EiKSxhPW4oInN3RkwiKSxjPU1hdGgubWluLHU9W10ubGFzdEluZGV4T2Yscz0hIXUmJjEvWzFdLmxhc3RJbmRleE9mKDEsLTApPDAsZj1hKCJsYXN0SW5kZXhPZiIpO3QuZXhwb3J0cz1zfHxmP2Z1bmN0aW9uKHQpe2lmKHMpcmV0dXJuIHUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHwwO3ZhciBlPXIodGhpcyksbj1pKGUubGVuZ3RoKSxhPW4tMTtmb3IoYXJndW1lbnRzLmxlbmd0aD4xJiYoYT1jKGEsbyhhcmd1bWVudHNbMV0pKSksYTwwJiYoYT1uK2EpO2E+PTA7YS0tKWlmKGEgaW4gZSYmZVthXT09PXQpcmV0dXJuIGF8fDA7cmV0dXJuLTF9OnV9LCI1bWR1IjpmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXt0cnl7cmV0dXJue2Vycm9yOiExLHZhbHVlOnQoKX19Y2F0Y2goZSl7cmV0dXJue2Vycm9yOiEwLHZhbHVlOmV9fX19LCI1cytuIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByLG8saSxhLGM9bigiSStlYiIpLHU9bigieERCUiIpLHM9bigiMm9SbyIpLGY9bigiUW85bCIpLGw9bigiL3FtbiIpLHA9bigiYnVzRSIpLGg9bigiNHN5dyIpLHY9bigiMUU1eiIpLGQ9bigiSmlaYiIpLGc9bigiaGgxdiIpLHk9bigiSEF1TSIpLGI9bigiR2FyVSIpLG09bigieHJZSyIpLGs9bigiSW1aTiIpLF89bigiSEg0byIpLHc9bigiU0VCaCIpLHg9bigiTFBTUyIpLnNldCxTPW4oInRYVWciKSxFPW4oInpmbmQiKSxPPW4oIlJONmMiKSxUPW4oIjhHbEwiKSxJPW4oIjVtZHUiKSxqPW4oInM1cEUiKSxNPW4oImFmTzgiKSxQPW4oImxNcTUiKSxEPW4oInRpS3AiKSgic3BlY2llcyIpLFI9TS5nZXQsTj1NLnNldCxBPU0uZ2V0dGVyRm9yKCJQcm9taXNlIiksTD1sLEY9cy5UeXBlRXJyb3Isej1zLmRvY3VtZW50LFo9cy5wcm9jZXNzLEM9cy5mZXRjaCxXPVomJloudmVyc2lvbnMsRz1XJiZXLnY4fHwiIixVPVQuZixIPVUsQj0icHJvY2VzcyI9PW0oWiksSz0hISh6JiZ6LmNyZWF0ZUV2ZW50JiZzLmRpc3BhdGNoRXZlbnQpLFY9UCgiUHJvbWlzZSIsKGZ1bmN0aW9uKCl7dmFyIHQ9TC5yZXNvbHZlKDEpLGU9ZnVuY3Rpb24oKXt9LG49KHQuY29uc3RydWN0b3I9e30pW0RdPWZ1bmN0aW9uKHQpe3QoZSxlKX07cmV0dXJuISgoQnx8ImZ1bmN0aW9uIj09dHlwZW9mIFByb21pc2VSZWplY3Rpb25FdmVudCkmJighdXx8dC5maW5hbGx5KSYmdC50aGVuKGUpaW5zdGFuY2VvZiBuJiYwIT09Ry5pbmRleE9mKCI2LjYiKSYmLTE9PT1qLmluZGV4T2YoIkNocm9tZS82NiIpKX0pKSxYPVZ8fCFfKChmdW5jdGlvbih0KXtMLmFsbCh0KS5jYXRjaCgoZnVuY3Rpb24oKXt9KSl9KSksWT1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4hKCFnKHQpfHwiZnVuY3Rpb24iIT10eXBlb2YoZT10LnRoZW4pKSYmZX0scT1mdW5jdGlvbih0LGUsbil7aWYoIWUubm90aWZpZWQpe2Uubm90aWZpZWQ9ITA7dmFyIHI9ZS5yZWFjdGlvbnM7UygoZnVuY3Rpb24oKXtmb3IodmFyIG89ZS52YWx1ZSxpPTE9PWUuc3RhdGUsYT0wO3IubGVuZ3RoPmE7KXt2YXIgYyx1LHMsZj1yW2ErK10sbD1pP2Yub2s6Zi5mYWlsLHA9Zi5yZXNvbHZlLGg9Zi5yZWplY3Qsdj1mLmRvbWFpbjt0cnl7bD8oaXx8KDI9PT1lLnJlamVjdGlvbiYmdHQodCxlKSxlLnJlamVjdGlvbj0xKSwhMD09PWw/Yz1vOih2JiZ2LmVudGVyKCksYz1sKG8pLHYmJih2LmV4aXQoKSxzPSEwKSksYz09PWYucHJvbWlzZT9oKEYoIlByb21pc2UtY2hhaW4gY3ljbGUiKSk6KHU9WShjKSk/dS5jYWxsKGMscCxoKTpwKGMpKTpoKG8pfWNhdGNoKGQpe3YmJiFzJiZ2LmV4aXQoKSxoKGQpfX1lLnJlYWN0aW9ucz1bXSxlLm5vdGlmaWVkPSExLG4mJiFlLnJlamVjdGlvbiYmSih0LGUpfSkpfX0sUT1mdW5jdGlvbih0LGUsbil7dmFyIHIsbztLPygocj16LmNyZWF0ZUV2ZW50KCJFdmVudCIpKS5wcm9taXNlPWUsci5yZWFzb249bixyLmluaXRFdmVudCh0LCExLCEwKSxzLmRpc3BhdGNoRXZlbnQocikpOnI9e3Byb21pc2U6ZSxyZWFzb246bn0sKG89c1sib24iK3RdKT9vKHIpOiJ1bmhhbmRsZWRyZWplY3Rpb24iPT09dCYmTygiVW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9uIixuKX0sSj1mdW5jdGlvbih0LGUpe3guY2FsbChzLChmdW5jdGlvbigpe3ZhciBuLHI9ZS52YWx1ZTtpZigkKGUpJiYobj1JKChmdW5jdGlvbigpe0I/Wi5lbWl0KCJ1bmhhbmRsZWRSZWplY3Rpb24iLHIsdCk6USgidW5oYW5kbGVkcmVqZWN0aW9uIix0LHIpfSkpLGUucmVqZWN0aW9uPUJ8fCQoZSk/MjoxLG4uZXJyb3IpKXRocm93IG4udmFsdWV9KSl9LCQ9ZnVuY3Rpb24odCl7cmV0dXJuIDEhPT10LnJlamVjdGlvbiYmIXQucGFyZW50fSx0dD1mdW5jdGlvbih0LGUpe3guY2FsbChzLChmdW5jdGlvbigpe0I/Wi5lbWl0KCJyZWplY3Rpb25IYW5kbGVkIix0KTpRKCJyZWplY3Rpb25oYW5kbGVkIix0LGUudmFsdWUpfSkpfSxldD1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gZnVuY3Rpb24obyl7dChlLG4sbyxyKX19LG50PWZ1bmN0aW9uKHQsZSxuLHIpe2UuZG9uZXx8KGUuZG9uZT0hMCxyJiYoZT1yKSxlLnZhbHVlPW4sZS5zdGF0ZT0yLHEodCxlLCEwKSl9LHJ0PWZ1bmN0aW9uKHQsZSxuLHIpe2lmKCFlLmRvbmUpe2UuZG9uZT0hMCxyJiYoZT1yKTt0cnl7aWYodD09PW4pdGhyb3cgRigiUHJvbWlzZSBjYW4ndCBiZSByZXNvbHZlZCBpdHNlbGYiKTt2YXIgbz1ZKG4pO28/UygoZnVuY3Rpb24oKXt2YXIgcj17ZG9uZTohMX07dHJ5e28uY2FsbChuLGV0KHJ0LHQscixlKSxldChudCx0LHIsZSkpfWNhdGNoKGkpe250KHQscixpLGUpfX0pKTooZS52YWx1ZT1uLGUuc3RhdGU9MSxxKHQsZSwhMSkpfWNhdGNoKGkpe250KHQse2RvbmU6ITF9LGksZSl9fX07ViYmKEw9ZnVuY3Rpb24odCl7Yih0aGlzLEwsIlByb21pc2UiKSx5KHQpLHIuY2FsbCh0aGlzKTt2YXIgZT1SKHRoaXMpO3RyeXt0KGV0KHJ0LHRoaXMsZSksZXQobnQsdGhpcyxlKSl9Y2F0Y2gobil7bnQodGhpcyxlLG4pfX0sKHI9ZnVuY3Rpb24odCl7Tih0aGlzLHt0eXBlOiJQcm9taXNlIixkb25lOiExLG5vdGlmaWVkOiExLHBhcmVudDohMSxyZWFjdGlvbnM6W10scmVqZWN0aW9uOiExLHN0YXRlOjAsdmFsdWU6dm9pZCAwfSl9KS5wcm90b3R5cGU9aChMLnByb3RvdHlwZSx7dGhlbjpmdW5jdGlvbih0LGUpe3ZhciBuPUEodGhpcykscj1VKHcodGhpcyxMKSk7cmV0dXJuIHIub2s9ImZ1bmN0aW9uIiE9dHlwZW9mIHR8fHQsci5mYWlsPSJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlLHIuZG9tYWluPUI/Wi5kb21haW46dm9pZCAwLG4ucGFyZW50PSEwLG4ucmVhY3Rpb25zLnB1c2gociksMCE9bi5zdGF0ZSYmcSh0aGlzLG4sITEpLHIucHJvbWlzZX0sY2F0Y2g6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsdCl9fSksbz1mdW5jdGlvbigpe3ZhciB0PW5ldyByLGU9Uih0KTt0aGlzLnByb21pc2U9dCx0aGlzLnJlc29sdmU9ZXQocnQsdCxlKSx0aGlzLnJlamVjdD1ldChudCx0LGUpfSxULmY9VT1mdW5jdGlvbih0KXtyZXR1cm4gdD09PUx8fHQ9PT1pP25ldyBvKHQpOkgodCl9LHV8fCJmdW5jdGlvbiIhPXR5cGVvZiBsfHwoYT1sLnByb3RvdHlwZS50aGVuLHAobC5wcm90b3R5cGUsInRoZW4iLChmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7cmV0dXJuIG5ldyBMKChmdW5jdGlvbih0LGUpe2EuY2FsbChuLHQsZSl9KSkudGhlbih0LGUpfSkpLCJmdW5jdGlvbiI9PXR5cGVvZiBDJiZjKHtnbG9iYWw6ITAsZW51bWVyYWJsZTohMCxmb3JjZWQ6ITB9LHtmZXRjaDpmdW5jdGlvbih0KXtyZXR1cm4gRShMLEMuYXBwbHkocyxhcmd1bWVudHMpKX19KSkpLGMoe2dsb2JhbDohMCx3cmFwOiEwLGZvcmNlZDpWfSx7UHJvbWlzZTpMfSksdihMLCJQcm9taXNlIiwhMSwhMCksZCgiUHJvbWlzZSIpLGk9Zi5Qcm9taXNlLGMoe3RhcmdldDoiUHJvbWlzZSIsc3RhdDohMCxmb3JjZWQ6Vn0se3JlamVjdDpmdW5jdGlvbih0KXt2YXIgZT1VKHRoaXMpO3JldHVybiBlLnJlamVjdC5jYWxsKHZvaWQgMCx0KSxlLnByb21pc2V9fSksYyh7dGFyZ2V0OiJQcm9taXNlIixzdGF0OiEwLGZvcmNlZDp1fHxWfSx7cmVzb2x2ZTpmdW5jdGlvbih0KXtyZXR1cm4gRSh1JiZ0aGlzPT09aT9MOnRoaXMsdCl9fSksYyh7dGFyZ2V0OiJQcm9taXNlIixzdGF0OiEwLGZvcmNlZDpYfSx7YWxsOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1VKGUpLHI9bi5yZXNvbHZlLG89bi5yZWplY3QsaT1JKChmdW5jdGlvbigpe3ZhciBuPXkoZS5yZXNvbHZlKSxpPVtdLGE9MCxjPTE7ayh0LChmdW5jdGlvbih0KXt2YXIgdT1hKysscz0hMTtpLnB1c2godm9pZCAwKSxjKyssbi5jYWxsKGUsdCkudGhlbigoZnVuY3Rpb24odCl7c3x8KHM9ITAsaVt1XT10LC0tY3x8cihpKSl9KSxvKX0pKSwtLWN8fHIoaSl9KSk7cmV0dXJuIGkuZXJyb3ImJm8oaS52YWx1ZSksbi5wcm9taXNlfSxyYWNlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1VKGUpLHI9bi5yZWplY3Qsbz1JKChmdW5jdGlvbigpe3ZhciBvPXkoZS5yZXNvbHZlKTtrKHQsKGZ1bmN0aW9uKHQpe28uY2FsbChlLHQpLnRoZW4obi5yZXNvbHZlLHIpfSkpfSkpO3JldHVybiBvLmVycm9yJiZyKG8udmFsdWUpLG4ucHJvbWlzZX19KX0sIjV1SDgiOmZ1bmN0aW9uKHQsZSxuKXtuKCJJK2ViIikoe3RhcmdldDoiTnVtYmVyIixzdGF0OiEwfSx7TUlOX1NBRkVfSU5URUdFUjotOTAwNzE5OTI1NDc0MDk5MX0pfSwiNkpOcSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIlVUVlMiKSxvPW4oIlZ1ODEiKSxpPW4oIkJzOFYiKSxhPW4oIm0vTDgiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49byhlKSxjPWEuZix1PWkuZixzPTA7czxuLmxlbmd0aDtzKyspe3ZhciBmPW5bc107cih0LGYpfHxjKHQsZix1KGUsZikpfX19LCI2TFdBIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigieHJZSyIpO3QuZXhwb3J0cz1BcnJheS5pc0FycmF5fHxmdW5jdGlvbih0KXtyZXR1cm4iQXJyYXkiPT1yKHQpfX0sIjZWb0UiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJ0aUtwIiksbz1uKCJQNHkxIiksaT1yKCJpdGVyYXRvciIpLGE9QXJyYXkucHJvdG90eXBlO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwIT09dCYmKG8uQXJyYXk9PT10fHxhW2ldPT09dCl9fSwiNmhwbiI6ZnVuY3Rpb24odCxlLG4pe24oIlV5ZHkiKSxuKCJlYWp2Iiksbigibi9tVSIpLG4oIlBxT0kiKSxuKCJRTm5wIiksbigiLzV6bSIpLG4oIkNzZ0QiKSxuKCI5bVJXIiksbigiUUZjVCIpLG4oInZBRnMiKSxuKCJhNU5LIiksbigieWlHMyIpLG4oImtOY1UiKSxuKCJLdkdpIiksbigiQW1GTyIpLG4oImVKaVIiKSxuKCJJOXhqIiksbigidGwvdSIpO3ZhciByPW4oIlFvOWwiKTt0LmV4cG9ydHM9ci5NYXRofSwiNnVuSyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjBEa3kiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHIoKGZ1bmN0aW9uKCl7dmFyIGU9IiJbdF0oJyInKTtyZXR1cm4gZSE9PWUudG9Mb3dlckNhc2UoKXx8ZS5zcGxpdCgnIicpLmxlbmd0aD4zfSkpfX0sIjcra2QiOmZ1bmN0aW9uKHQsZSxuKXtuKCJkRy9uIikoImlzQ29uY2F0U3ByZWFkYWJsZSIpfSwiNyt6cyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIlgyVSsiKSxvPW4oIlVlc0wiKSxpPW4oInRpS3AiKSgidG9QcmltaXRpdmUiKSxhPURhdGUucHJvdG90eXBlO2kgaW4gYXx8cihhLGksbyl9LCI3c2JEIjpmdW5jdGlvbih0LGUsbil7bigicWVQViIpLG4oIk5iTisiKSxuKCI4QXlKIiksbigiaTZRRiIpLG4oImtTa28iKSxuKCJXRHNSIiksbigici9WcSIpLG4oIjV1SDgiKSxuKCJ3MXJaIiksbigiSmV2QSIpLG4oInRvQWoiKSxuKCJWQzNMIik7dmFyIHI9bigiUW85bCIpO3QuZXhwb3J0cz1yLk51bWJlcn0sIjhBeUoiOmZ1bmN0aW9uKHQsZSxuKXtuKCJJK2ViIikoe3RhcmdldDoiTnVtYmVyIixzdGF0OiEwfSx7aXNGaW5pdGU6bigiNG9VLyIpfSl9LCI4R2xMIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkhBdU0iKSxvPWZ1bmN0aW9uKHQpe3ZhciBlLG47dGhpcy5wcm9taXNlPW5ldyB0KChmdW5jdGlvbih0LHIpe2lmKHZvaWQgMCE9PWV8fHZvaWQgMCE9PW4pdGhyb3cgVHlwZUVycm9yKCJCYWQgUHJvbWlzZSBjb25zdHJ1Y3RvciIpO2U9dCxuPXJ9KSksdGhpcy5yZXNvbHZlPXIoZSksdGhpcy5yZWplY3Q9cihuKX07dC5leHBvcnRzLmY9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBvKHQpfX0sIjhZT2EiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwQksyIiksbz1uKCJoaDF2IiksaT1uKCJVVFZTIiksYT1uKA=="
}
Changelog:
{
"2019.12.05 16:39": "base64:YmluZEFyZ3VtZW50cz1fLHUucGF0Y2hNYWNyb1Rhc2s9QTt2YXIgcz1yLl9fc3ltYm9sX18oIkJMQUNLX0xJU1RFRF9FVkVOVFMiKSx2PXIuX19zeW1ib2xfXygiVU5QQVRDSEVEX0VWRU5UUyIpO25bdl0mJihuW3NdPW5bdl0pLG5bc10mJihyW3NdPXJbdl09bltzXSksdS5wYXRjaEV2ZW50UHJvdG90eXBlPXEsdS5wYXRjaEV2ZW50VGFyZ2V0PVgsdS5pc0lFT3JFZGdlPUMsdS5PYmplY3REZWZpbmVQcm9wZXJ0eT1lLHUuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yPXQsdS5PYmplY3RDcmVhdGU9byx1LkFycmF5U2xpY2U9aSx1LnBhdGNoQ2xhc3M9RCx1LndyYXBXaXRoQ3VycmVudFpvbmU9aCx1LmZpbHRlclByb3BlcnRpZXM9eXQsdS5hdHRhY2hPcmlnaW5Ub1BhdGNoZWQ9TCx1Ll9yZWRlZmluZVByb3BlcnR5PXJ0LHUucGF0Y2hDYWxsYmFja3M9USx1LmdldEdsb2JhbE9iamVjdHM9ZnVuY3Rpb24oKXtyZXR1cm57Z2xvYmFsU291cmNlczpCLHpvbmVTeW1ib2xFdmVudE5hbWVzOkgsZXZlbnROYW1lczpndCxpc0Jyb3dzZXI6RSxpc01peDpPLGlzTm9kZTpTLFRSVUVfU1RSOmYsRkFMU0VfU1RSOmwsWk9ORV9TWU1CT0xfUFJFRklYOnAsQUREX0VWRU5UX0xJU1RFTkVSX1NUUjphLFJFTU9WRV9FVkVOVF9MSVNURU5FUl9TVFI6Y319fSkpLGZ1bmN0aW9uKHQpe3QuX196b25lX3N5bWJvbF9fbGVnYWN5UGF0Y2g9ZnVuY3Rpb24oKXt2YXIgZT10LlpvbmU7ZS5fX2xvYWRfcGF0Y2goInJlZ2lzdGVyRWxlbWVudCIsKGZ1bmN0aW9uKHQsZSxuKXshZnVuY3Rpb24odCxlKXt2YXIgbj1lLmdldEdsb2JhbE9iamVjdHMoKTsobi5pc0Jyb3dzZXJ8fG4uaXNNaXgpJiYicmVnaXN0ZXJFbGVtZW50ImluIHQuZG9jdW1lbnQmJmUucGF0Y2hDYWxsYmFja3MoZSxkb2N1bWVudCwiRG9jdW1lbnQiLCJyZWdpc3RlckVsZW1lbnQiLFsiY3JlYXRlZENhbGxiYWNrIiwiYXR0YWNoZWRDYWxsYmFjayIsImRldGFjaGVkQ2FsbGJhY2siLCJhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2siXSl9KHQsbil9KSksZS5fX2xvYWRfcGF0Y2goIkV2ZW50VGFyZ2V0TGVnYWN5IiwoZnVuY3Rpb24odCxlLG4pe2t0KHQsbiksX3Qobix0KX0pKX19KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3d8fCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZnx8Z2xvYmFsKTt2YXIgd3Q9ZCgiem9uZVRhc2siKTtmdW5jdGlvbiB4dCh0LGUsbixyKXt2YXIgbz1udWxsLGk9bnVsbDtuKz1yO3ZhciBhPXt9O2Z1bmN0aW9uIGMoZSl7dmFyIG49ZS5kYXRhO3JldHVybiBuLmFyZ3NbMF09ZnVuY3Rpb24oKXt0cnl7ZS5pbnZva2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZpbmFsbHl7ZS5kYXRhJiZlLmRhdGEuaXNQZXJpb2RpY3x8KCJudW1iZXIiPT10eXBlb2Ygbi5oYW5kbGVJZD9kZWxldGUgYVtuLmhhbmRsZUlkXTpuLmhhbmRsZUlkJiYobi5oYW5kbGVJZFt3dF09bnVsbCkpfX0sbi5oYW5kbGVJZD1vLmFwcGx5KHQsbi5hcmdzKSxlfWZ1bmN0aW9uIHUodCl7cmV0dXJuIGkodC5kYXRhLmhhbmRsZUlkKX1vPU4odCxlKz1yLChmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24obyxpKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgaVswXSl7dmFyIHM9dihlLGlbMF0se2lzUGVyaW9kaWM6IkludGVydmFsIj09PXIsZGVsYXk6IlRpbWVvdXQiPT09cnx8IkludGVydmFsIj09PXI/aVsxXXx8MDp2b2lkIDAsYXJnczppfSxjLHUpO2lmKCFzKXJldHVybiBzO3ZhciBmPXMuZGF0YS5oYW5kbGVJZDtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGY/YVtmXT1zOmYmJihmW3d0XT1zKSxmJiZmLnJlZiYmZi51bnJlZiYmImZ1bmN0aW9uIj09dHlwZW9mIGYucmVmJiYiZnVuY3Rpb24iPT10eXBlb2YgZi51bnJlZiYmKHMucmVmPWYucmVmLmJpbmQoZikscy51bnJlZj1mLnVucmVmLmJpbmQoZikpLCJudW1iZXIiPT10eXBlb2YgZnx8Zj9mOnN9cmV0dXJuIG4uYXBwbHkodCxpKX19KSksaT1OKHQsbiwoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKG4scil7dmFyIG8saT1yWzBdOyJudW1iZXIiPT10eXBlb2YgaT9vPWFbaV06KG89aSYmaVt3dF0pfHwobz1pKSxvJiYic3RyaW5nIj09dHlwZW9mIG8udHlwZT8ibm90U2NoZWR1bGVkIiE9PW8uc3RhdGUmJihvLmNhbmNlbEZuJiZvLmRhdGEuaXNQZXJpb2RpY3x8MD09PW8ucnVuQ291bnQpJiYoIm51bWJlciI9PXR5cGVvZiBpP2RlbGV0ZSBhW2ldOmkmJihpW3d0XT1udWxsKSxvLnpvbmUuY2FuY2VsVGFzayhvKSk6ZS5hcHBseSh0LHIpfX0pKX1mdW5jdGlvbiBTdCh0LGUpe2lmKCFab25lW2Uuc3ltYm9sKCJwYXRjaEV2ZW50VGFyZ2V0IildKXtmb3IodmFyIG49ZS5nZXRHbG9iYWxPYmplY3RzKCkscj1uLmV2ZW50TmFtZXMsbz1uLnpvbmVTeW1ib2xFdmVudE5hbWVzLGk9bi5UUlVFX1NUUixhPW4uRkFMU0VfU1RSLGM9bi5aT05FX1NZTUJPTF9QUkVGSVgsdT0wO3U8ci5sZW5ndGg7dSsrKXt2YXIgcz1yW3VdLGY9YysocythKSxsPWMrKHMraSk7b1tzXT17fSxvW3NdW2FdPWYsb1tzXVtpXT1sfXZhciBwPXQuRXZlbnRUYXJnZXQ7aWYocCYmcC5wcm90b3R5cGUpcmV0dXJuIGUucGF0Y2hFdmVudFRhcmdldCh0LFtwJiZwLnByb3RvdHlwZV0pLCEwfX1ab25lLl9fbG9hZF9wYXRjaCgibGVnYWN5IiwoZnVuY3Rpb24odCl7dmFyIGU9dFtab25lLl9fc3ltYm9sX18oImxlZ2FjeVBhdGNoIildO2UmJmUoKX0pKSxab25lLl9fbG9hZF9wYXRjaCgidGltZXJzIiwoZnVuY3Rpb24odCl7eHQodCwic2V0IiwiY2xlYXIiLCJUaW1lb3V0IikseHQodCwic2V0IiwiY2xlYXIiLCJJbnRlcnZhbCIpLHh0KHQsInNldCIsImNsZWFyIiwiSW1tZWRpYXRlIil9KSksWm9uZS5fX2xvYWRfcGF0Y2goInJlcXVlc3RBbmltYXRpb25GcmFtZSIsKGZ1bmN0aW9uKHQpe3h0KHQsInJlcXVlc3QiLCJjYW5jZWwiLCJBbmltYXRpb25GcmFtZSIpLHh0KHQsIm1velJlcXVlc3QiLCJtb3pDYW5jZWwiLCJBbmltYXRpb25GcmFtZSIpLHh0KHQsIndlYmtpdFJlcXVlc3QiLCJ3ZWJraXRDYW5jZWwiLCJBbmltYXRpb25GcmFtZSIpfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJibG9ja2luZyIsKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPVsiYWxlcnQiLCJwcm9tcHQiLCJjb25maXJtIl0scj0wO3I8bi5sZW5ndGg7cisrKU4odCxuW3JdLChmdW5jdGlvbihuLHIsbyl7cmV0dXJuIGZ1bmN0aW9uKHIsaSl7cmV0dXJuIGUuY3VycmVudC5ydW4obix0LGksbyl9fSkpfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJFdmVudFRhcmdldCIsKGZ1bmN0aW9uKHQsZSxuKXshZnVuY3Rpb24odCxlKXtlLnBhdGNoRXZlbnRQcm90b3R5cGUodCxlKX0odCxuKSxTdCh0LG4pO3ZhciByPXQuWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldDtyJiZyLnByb3RvdHlwZSYmbi5wYXRjaEV2ZW50VGFyZ2V0KHQsW3IucHJvdG90eXBlXSksRCgiTXV0YXRpb25PYnNlcnZlciIpLEQoIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIiKSxEKCJJbnRlcnNlY3Rpb25PYnNlcnZlciIpLEQoIkZpbGVSZWFkZXIiKX0pKSxab25lLl9fbG9hZF9wYXRjaCgib25fcHJvcGVydHkiLChmdW5jdGlvbih0LGUsbil7bXQobix0KSxPYmplY3QuZGVmaW5lUHJvcGVydHk9ZnVuY3Rpb24odCxlLG4pe2lmKG90KHQsZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFzc2lnbiB0byByZWFkIG9ubHkgcHJvcGVydHkgJyIrZSsiJyBvZiAiK3QpO3ZhciByPW4uY29uZmlndXJhYmxlO3JldHVybiJwcm90b3R5cGUiIT09ZSYmKG49aXQodCxlLG4pKSxhdCh0LGUsbixyKX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gT2JqZWN0LmtleXMoZSkuZm9yRWFjaCgoZnVuY3Rpb24obil7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsbixlW25dKX0pKSx0fSxPYmplY3QuY3JlYXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIm9iamVjdCIhPXR5cGVvZiBlfHxPYmplY3QuaXNGcm96ZW4oZSl8fE9iamVjdC5rZXlzKGUpLmZvckVhY2goKGZ1bmN0aW9uKG4pe2Vbbl09aXQodCxuLGVbbl0pfSkpLGV0KHQsZSl9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I9ZnVuY3Rpb24odCxlKXt2YXIgbj10dCh0LGUpO3JldHVybiBuJiZvdCh0LGUpJiYobi5jb25maWd1cmFibGU9ITEpLG59fSkpLFpvbmUuX19sb2FkX3BhdGNoKCJjdXN0b21FbGVtZW50cyIsKGZ1bmN0aW9uKHQsZSxuKXshZnVuY3Rpb24odCxlKXt2YXIgbj1lLmdldEdsb2JhbE9iamVjdHMoKTsobi5pc0Jyb3dzZXJ8fG4uaXNNaXgpJiZ0LmN1c3RvbUVsZW1lbnRzJiYiY3VzdG9tRWxlbWVudHMiaW4gdCYmZS5wYXRjaENhbGxiYWNrcyhlLHQuY3VzdG9tRWxlbWVudHMsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIixbImNvbm5lY3RlZENhbGxiYWNrIiwiZGlzY29ubmVjdGVkQ2FsbGJhY2siLCJhZG9wdGVkQ2FsbGJhY2siLCJhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2siXSl9KHQsbil9KSksWm9uZS5fX2xvYWRfcGF0Y2goIlhIUiIsKGZ1bmN0aW9uKHQsZSl7IWZ1bmN0aW9uKHQpe3ZhciBmPXQuWE1MSHR0cFJlcXVlc3Q7aWYoZil7dmFyIGw9Zi5wcm90b3R5cGUscD1sW3VdLGg9bFtzXTtpZighcCl7dmFyIGc9dC5YTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0O2lmKGcpe3ZhciB5PWcucHJvdG90eXBlO3A9eVt1XSxoPXlbc119fXZhciBiPSJyZWFkeXN0YXRlY2hhbmdlIixtPSJzY2hlZHVsZWQiLGs9TihsLCJvcGVuIiwoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxlKXtyZXR1cm4gdFtyXT0wPT1lWzJdLHRbYV09ZVsxXSxrLmFwcGx5KHQsZSl9fSkpLF89ZCgiZmV0Y2hUYXNrQWJvcnRpbmciKSx3PWQoImZldGNoVGFza1NjaGVkdWxpbmciKSx4PU4obCwic2VuZCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQsbil7aWYoITA9PT1lLmN1cnJlbnRbd10pcmV0dXJuIHguYXBwbHkodCxuKTtpZih0W3JdKXJldHVybiB4LmFwcGx5KHQsbik7dmFyIG89e3RhcmdldDp0LHVybDp0W2FdLGlzUGVyaW9kaWM6ITEsYXJnczpuLGFib3J0ZWQ6ITF9LGk9digiWE1MSHR0cFJlcXVlc3Quc2VuZCIsTyxvLEUsVCk7dCYmITA9PT10W2NdJiYhby5hYm9ydGVkJiZpLnN0YXRlPT09bSYmaS5pbnZva2UoKX19KSksUz1OKGwsImFib3J0IiwoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxyKXt2YXIgbz10W25dO2lmKG8mJiJzdHJpbmciPT10eXBlb2Ygby50eXBlKXtpZihudWxsPT1vLmNhbmNlbEZufHxvLmRhdGEmJm8uZGF0YS5hYm9ydGVkKXJldHVybjtvLnpvbmUuY2FuY2VsVGFzayhvKX1lbHNlIGlmKCEwPT09ZS5jdXJyZW50W19dKXJldHVybiBTLmFwcGx5KHQscil9fSkpfWZ1bmN0aW9uIEUodCl7dmFyIGU9dC5kYXRhLHI9ZS50YXJnZXQ7cltpXT0hMSxyW2NdPSExO3ZhciBhPXJbb107cHx8KHA9clt1XSxoPXJbc10pLGEmJmguY2FsbChyLGIsYSk7dmFyIGY9cltvXT1mdW5jdGlvbigpe2lmKHIucmVhZHlTdGF0ZT09PXIuRE9ORSlpZighZS5hYm9ydGVkJiZyW2ldJiZ0LnN0YXRlPT09bSl7dmFyIG49ci5fX3pvbmVfc3ltYm9sX19sb2FkZmFsc2U7aWYobiYmbi5sZW5ndGg+MCl7dmFyIG89dC5pbnZva2U7dC5pbnZva2U9ZnVuY3Rpb24oKXtmb3IodmFyIG49ci5fX3pvbmVfc3ltYm9sX19sb2FkZmFsc2UsaT0wO2k8bi5sZW5ndGg7aSsrKW5baV09PT10JiZuLnNwbGljZShpLDEpO2UuYWJvcnRlZHx8dC5zdGF0ZSE9PW18fG8uY2FsbCh0KX0sbi5wdXNoKHQpfWVsc2UgdC5pbnZva2UoKX1lbHNlIGUuYWJvcnRlZHx8ITEhPT1yW2ldfHwocltjXT0hMCl9O3JldHVybiBwLmNhbGwocixiLGYpLHJbbl18fChyW25dPXQpLHguYXBwbHkocixlLmFyZ3MpLHJbaV09ITAsdH1mdW5jdGlvbiBPKCl7fWZ1bmN0aW9uIFQodCl7dmFyIGU9dC5kYXRhO3JldHVybiBlLmFib3J0ZWQ9ITAsUy5hcHBseShlLnRhcmdldCxlLmFyZ3MpfX0odCk7dmFyIG49ZCgieGhyVGFzayIpLHI9ZCgieGhyU3luYyIpLG89ZCgieGhyTGlzdGVuZXIiKSxpPWQoInhoclNjaGVkdWxlZCIpLGE9ZCgieGhyVVJMIiksYz1kKCJ4aHJFcnJvckJlZm9yZVNjaGVkdWxlZCIpfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJnZW9sb2NhdGlvbiIsKGZ1bmN0aW9uKGUpe2UubmF2aWdhdG9yJiZlLm5hdmlnYXRvci5nZW9sb2NhdGlvbiYmZnVuY3Rpb24oZSxuKXtmb3IodmFyIHI9ZS5jb25zdHJ1Y3Rvci5uYW1lLG89ZnVuY3Rpb24obyl7dmFyIGk9bltvXSxhPWVbaV07aWYoYSl7aWYoIXcodChlLGkpKSlyZXR1cm4iY29udGludWUiO2VbaV09ZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseSh0aGlzLF8oYXJndW1lbnRzLHIrIi4iK2kpKX07cmV0dXJuIEwoZSx0KSxlfShhKX19LGk9MDtpPG4ubGVuZ3RoO2krKylvKGkpfShlLm5hdmlnYXRvci5nZW9sb2NhdGlvbixbImdldEN1cnJlbnRQb3NpdGlvbiIsIndhdGNoUG9zaXRpb24iXSl9KSksWm9uZS5fX2xvYWRfcGF0Y2goIlByb21pc2VSZWplY3Rpb25FdmVudCIsKGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbihlKXtyZXR1cm4gZnVuY3Rpb24obil7WSh0LGUpLmZvckVhY2goKGZ1bmN0aW9uKHIpe3ZhciBvPXQuUHJvbWlzZVJlamVjdGlvbkV2ZW50O2lmKG8pe3ZhciBpPW5ldyBvKGUse3Byb21pc2U6bi5wcm9taXNlLHJlYXNvbjpuLnJlamVjdGlvbn0pO3IuaW52b2tlKGkpfX0pKX19dC5Qcm9taXNlUmVqZWN0aW9uRXZlbnQmJihlW2QoInVuaGFuZGxlZFByb21pc2VSZWplY3Rpb25IYW5kbGVyIildPW4oInVuaGFuZGxlZHJlamVjdGlvbiIpLGVbZCgicmVqZWN0aW9uSGFuZGxlZEhhbmRsZXIiKV09bigicmVqZWN0aW9uaGFuZGxlZCIpKX0pKX0oKX0sIjBlZWYiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9e30ucHJvcGVydHlJc0VudW1lcmFibGUsbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGk9byYmIXIuY2FsbCh7MToyfSwxKTtlLmY9aT9mdW5jdGlvbih0KXt2YXIgZT1vKHRoaXMsdCk7cmV0dXJuISFlJiZlLmVudW1lcmFibGV9OnJ9LCIwb3VnIjpmdW5jdGlvbih0LGUsbil7bigiZEcvbiIpKCJpdGVyYXRvciIpfSwiMHJ2ciI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImdscmsiKSxvPW4oIk83NDEiKTt0LmV4cG9ydHM9T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoIl9fcHJvdG9fXyJpbnt9P2Z1bmN0aW9uKCl7dmFyIHQsZT0hMSxuPXt9O3RyeXsodD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE9iamVjdC5wcm90b3R5cGUsIl9fcHJvdG9fXyIpLnNldCkuY2FsbChuLFtdKSxlPW4gaW5zdGFuY2VvZiBBcnJheX1jYXRjaChpKXt9cmV0dXJuIGZ1bmN0aW9uKG4saSl7cmV0dXJuIHIobiksbyhpKSxlP3QuY2FsbChuLGkpOm4uX19wcm90b19fPWksbn19KCk6dm9pZCAwKX0sMTpmdW5jdGlvbih0LGUsbil7bigibVJJcSIpLHQuZXhwb3J0cz1uKCJoTi9nIil9LCIxNFNsIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIlgyVSsiKSxvPW4oImJ1c0UiKSxpPW4oIjBEa3kiKSxhPW4oInRpS3AiKSxjPW4oImttTVYiKSx1PWEoInNwZWNpZXMiKSxzPSFpKChmdW5jdGlvbigpe3ZhciB0PS8uLztyZXR1cm4gdC5leGVjPWZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHQuZ3JvdXBzPXthOiI3In0sdH0sIjciIT09IiIucmVwbGFjZSh0LCIkPGE+Iil9KSksZj0haSgoZnVuY3Rpb24oKXt2YXIgdD0vKD86KS8sZT10LmV4ZWM7dC5leGVjPWZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfTt2YXIgbj0iYWIiLnNwbGl0KHQpO3JldHVybiAyIT09bi5sZW5ndGh8fCJhIiE9PW5bMF18fCJiIiE9PW5bMV19KSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuLGwpe3ZhciBwPWEodCksaD0haSgoZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm4gZVtwXT1mdW5jdGlvbigpe3JldHVybiA3fSw3IT0iIlt0XShlKX0pKSx2PWgmJiFpKChmdW5jdGlvbigpe3ZhciBlPSExLG49L2EvO3JldHVybiBuLmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gZT0hMCxudWxsfSwic3BsaXQiPT09dCYmKG4uY29uc3RydWN0b3I9e30sbi5jb25zdHJ1Y3Rvclt1XT1mdW5jdGlvbigpe3JldHVybiBufSksbltwXSgiIiksIWV9KSk7aWYoIWh8fCF2fHwicmVwbGFjZSI9PT10JiYhc3x8InNwbGl0Ij09PXQmJiFmKXt2YXIgZD0vLi9bcF0sZz1uKHAsIiJbdF0sKGZ1bmN0aW9uKHQsZSxuLHIsbyl7cmV0dXJuIGUuZXhlYz09PWM/aCYmIW8/e2RvbmU6ITAsdmFsdWU6ZC5jYWxsKGUsbixyKX06e2RvbmU6ITAsdmFsdWU6dC5jYWxsKG4sZSxyKX06e2RvbmU6ITF9fSkpLHk9Z1sxXTtvKFN0cmluZy5wcm90b3R5cGUsdCxnWzBdKSxvKFJlZ0V4cC5wcm90b3R5cGUscCwyPT1lP2Z1bmN0aW9uKHQsZSl7cmV0dXJuIHkuY2FsbCh0LHRoaXMsZSl9OmZ1bmN0aW9uKHQpe3JldHVybiB5LmNhbGwodCx0aGlzKX0pLGwmJnIoUmVnRXhwLnByb3RvdHlwZVtwXSwic2hhbSIsITApfX19LCIxRTV6IjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigibS9MOCIpLmYsbz1uKCJVVFZTIiksaT1uKCJ0aUtwIikoInRvU3RyaW5nVGFnIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXt0JiYhbyh0PW4/dDp0LnByb3RvdHlwZSxpKSYmcih0LGkse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTplfSl9fSwiMVkvbiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkhBdU0iKSxvPW4oImV3dlciKSxpPW4oIlJLM3QiKSxhPW4oIlVNU1EiKSxjPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLG4sYyx1KXtyKG4pO3ZhciBzPW8oZSksZj1pKHMpLGw9YShzLmxlbmd0aCkscD10P2wtMTowLGg9dD8tMToxO2lmKGM8Milmb3IoOzspe2lmKHAgaW4gZil7dT1mW3BdLHArPWg7YnJlYWt9aWYocCs9aCx0P3A8MDpsPD1wKXRocm93IFR5cGVFcnJvcigiUmVkdWNlIG9mIGVtcHR5IGFycmF5IHdpdGggbm8gaW5pdGlhbCB2YWx1ZSIpfWZvcig7dD9wPj0wOmw+cDtwKz1oKXAgaW4gZiYmKHU9bih1LGZbcF0scCxzKSk7cmV0dXJuIHV9fTt0LmV4cG9ydHM9e2xlZnQ6YyghMSkscmlnaHQ6YyghMCl9fSwiMkErZCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPW4oIi9HcVUiKSxpPW4oIlVNU1EiKTtyKHt0YXJnZXQ6IlN0cmluZyIsc3RhdDohMH0se3JhdzpmdW5jdGlvbih0KXtmb3IodmFyIGU9byh0LnJhdyksbj1pKGUubGVuZ3RoKSxyPWFyZ3VtZW50cy5sZW5ndGgsYT1bXSxjPTA7bj5jOylhLnB1c2goU3RyaW5nKGVbYysrXSkpLGM8ciYmYS5wdXNoKFN0cmluZyhhcmd1bWVudHNbY10pKTtyZXR1cm4gYS5qb2luKCIiKX19KX0sIjJCMVIiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigidHljUiIpLm1hcDtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IW4oIkhkNWYiKSgibWFwIil9LHttYXA6ZnVuY3Rpb24odCl7cmV0dXJuIG8odGhpcyx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sIjJvUm8iOmZ1bmN0aW9uKHQsZSl7dmFyIG49Im9iamVjdCIscj1mdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5NYXRoPT1NYXRoJiZ0fTt0LmV4cG9ydHM9cih0eXBlb2YgZ2xvYmFsVGhpcz09biYmZ2xvYmFsVGhpcyl8fHIodHlwZW9mIHdpbmRvdz09biYmd2luZG93KXx8cih0eXBlb2Ygc2VsZj09biYmc2VsZil8fHIodHlwZW9mIGdsb2JhbD09biYmZ2xvYmFsKXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKX0sIjMzV2giOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJ5b1JnIiksbz1uKCJlRGwrIik7dC5leHBvcnRzPU9iamVjdC5rZXlzfHxmdW5jdGlvbih0KXtyZXR1cm4gcih0LG8pfX0sIjNJMVIiOmZ1bmN0aW9uKHQsZSxuKXtuKCJkRy9uIikoImhhc0luc3RhbmNlIil9LCIzS2dWIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigidXk4MyIpLGk9bigiMERreSIpLGE9bigiaGgxdiIpLGM9bigiOFlPYSIpLm9uRnJlZXplLHU9T2JqZWN0LmZyZWV6ZTtyKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6aSgoZnVuY3Rpb24oKXt1KDEpfSkpLHNoYW06IW99LHtmcmVlemU6ZnVuY3Rpb24odCl7cmV0dXJuIHUmJmEodCk/dShjKHQpKTp0fX0pfSwiM2JCWiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjJvUm8iKSxvPW4oIi9ieXQiKSxpPW4oIjRtRG0iKSxhPW4oIlgyVSsiKSxjPW4oInRpS3AiKSx1PWMoIml0ZXJhdG9yIikscz1jKCJ0b1N0cmluZ1RhZyIpLGY9aS52YWx1ZXM7Zm9yKHZhciBsIGluIG8pe3ZhciBwPXJbbF0saD1wJiZwLnByb3RvdHlwZTtpZihoKXtpZihoW3VdIT09Zil0cnl7YShoLHUsZil9Y2F0Y2goZCl7aFt1XT1mfWlmKGhbc118fGEoaCxzLGwpLG9bbF0pZm9yKHZhciB2IGluIGkpaWYoaFt2XSE9PWlbdl0pdHJ5e2EoaCx2LGlbdl0pfWNhdGNoKGQpe2hbdl09aVt2XX19fX0sIjRCcmYiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiZzZ2LyIpLGk9bigiMm9SbyIpLGE9bigiVVRWUyIpLGM9bigiaGgxdiIpLHU9bigibS9MOCIpLmYscz1uKCI2Sk5xIiksZj1pLlN5bWJvbDtpZihvJiYiZnVuY3Rpb24iPT10eXBlb2YgZiYmKCEoImRlc2NyaXB0aW9uImluIGYucHJvdG90eXBlKXx8dm9pZCAwIT09ZigpLmRlc2NyaXB0aW9uKSl7dmFyIGw9e30scD1mdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg8MXx8dm9pZCAwPT09YXJndW1lbnRzWzBdP3ZvaWQgMDpTdHJpbmcoYXJndW1lbnRzWzBdKSxlPXRoaXMgaW5zdGFuY2VvZiBwP25ldyBmKHQpOnZvaWQgMD09PXQ/ZigpOmYodCk7cmV0dXJuIiI9PT10JiYobFtlXT0hMCksZX07cyhwLGYpO3ZhciBoPXAucHJvdG90eXBlPWYucHJvdG90eXBlO2guY29uc3RydWN0b3I9cDt2YXIgdj1oLnRvU3RyaW5nLGQ9IlN5bWJvbCh0ZXN0KSI9PVN0cmluZyhmKCJ0ZXN0IikpLGc9L15TeW1ib2xcKCguKilcKVteKV0rJC87dShoLCJkZXNjcmlwdGlvbiIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt2YXIgdD1jKHRoaXMpP3RoaXMudmFsdWVPZigpOnRoaXMsZT12LmNhbGwodCk7aWYoYShsLHQpKXJldHVybiIiO3ZhciBuPWQ/ZS5zbGljZSg3LC0xKTplLnJlcGxhY2UoZywiJDEiKTtyZXR1cm4iIj09PW4/dm9pZCAwOm59fSkscih7Z2xvYmFsOiEwLGZvcmNlZDohMH0se1N5bWJvbDpwfSl9fSwiNEhDaSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjBEa3kiKSxvPW4oIldKa0oiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHIoKGZ1bmN0aW9uKCl7cmV0dXJuISFvW3RdKCl8fCLigIvCheGgjiIhPSLigIvCheGgjiJbdF0oKXx8b1t0XS5uYW1lIT09dH0pKX19LCI0V09EIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiVVRWUyIpLG89bigiZXd2VyIpLGk9bigiOTNJMCIpLGE9bigiNFhldCIpLGM9aSgiSUVfUFJPVE8iKSx1PU9iamVjdC5wcm90b3R5cGU7dC5leHBvcnRzPWE/T2JqZWN0LmdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKHQpe3JldHVybiB0PW8odCkscih0LGMpP3RbY106ImZ1bmN0aW9uIj09dHlwZW9mIHQuY29uc3RydWN0b3ImJnQgaW5zdGFuY2VvZiB0LmNvbnN0cnVjdG9yP3QuY29uc3RydWN0b3IucHJvdG90eXBlOnQgaW5zdGFuY2VvZiBPYmplY3Q/dTpudWxsfX0sIjRYZXQiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwRGt5Iik7dC5leHBvcnRzPSFyKChmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPW51bGwsT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyB0KSE9PXQucHJvdG90eXBlfSkpfSwiNGgwWSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPW4oIjBEa3kiKSxpPW4oImhoMXYiKSxhPU9iamVjdC5pc0Zyb3plbjtyKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6bygoZnVuY3Rpb24oKXthKDEpfSkpfSx7aXNGcm96ZW46ZnVuY3Rpb24odCl7cmV0dXJuIWkodCl8fCEhYSYmYSh0KX19KX0sIjRsNjMiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1uKCI1WU9RIik7cih7Z2xvYmFsOiEwLGZvcmNlZDpwYXJzZUludCE9b30se3BhcnNlSW50Om99KX0sIjRtRG0iOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiL0dxVSIpLG89bigiUk5JcyIpLGk9bigiUDR5MSIpLGE9bigiYWZPOCIpLGM9bigiZmRBeSIpLHU9YS5zZXQscz1hLmdldHRlckZvcigiQXJyYXkgSXRlcmF0b3IiKTt0LmV4cG9ydHM9YyhBcnJheSwiQXJyYXkiLChmdW5jdGlvbih0LGUpe3UodGhpcyx7dHlwZToiQXJyYXkgSXRlcmF0b3IiLHRhcmdldDpyKHQpLGluZGV4OjAsa2luZDplfSl9KSwoZnVuY3Rpb24oKXt2YXIgdD1zKHRoaXMpLGU9dC50YXJnZXQsbj10LmtpbmQscj10LmluZGV4Kys7cmV0dXJuIWV8fHI+PWUubGVuZ3RoPyh0LnRhcmdldD12b2lkIDAse3ZhbHVlOnZvaWQgMCxkb25lOiEwfSk6ImtleXMiPT1uP3t2YWx1ZTpyLGRvbmU6ITF9OiJ2YWx1ZXMiPT1uP3t2YWx1ZTplW3JdLGRvbmU6ITF9Ont2YWx1ZTpbcixlW3JdXSxkb25lOiExfX0pLCJ2YWx1ZXMiKSxpLkFyZ3VtZW50cz1pLkFycmF5LG8oImtleXMiKSxvKCJ2YWx1ZXMiKSxvKCJlbnRyaWVzIil9LCI0b1UvIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMm9SbyIpLmlzRmluaXRlO3QuZXhwb3J0cz1OdW1iZXIuaXNGaW5pdGV8fGZ1bmN0aW9uKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmcih0KX19LCI0c3l3IjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiYnVzRSIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciBvIGluIGUpcih0LG8sZVtvXSxuKTtyZXR1cm4gdH19LCI1RDVvIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiMERreSIpLGk9bigiaGgxdiIpLGE9T2JqZWN0LmlzU2VhbGVkO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDpvKChmdW5jdGlvbigpe2EoMSl9KSl9LHtpc1NlYWxlZDpmdW5jdGlvbih0KXtyZXR1cm4haSh0KXx8ISFhJiZhKHQpfX0pfSwiNURtVyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPW4oIjBEa3kiKSxpPW4oIi9HcVUiKSxhPW4oIkJzOFYiKS5mLGM9bigiZzZ2LyIpLHU9bygoZnVuY3Rpb24oKXthKDEpfSkpO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDohY3x8dSxzaGFtOiFjfSx7Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGEoaSh0KSxlKX19KX0sIjVZT1EiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyb1JvIiksbz1uKCJXS2lIIikudHJpbSxpPW4oIldKa0oiKSxhPXIucGFyc2VJbnQsYz0vXlsrLV0/MFtYeF0vLHU9OCE9PWEoaSsiMDgiKXx8MjIhPT1hKGkrIjB4MTYiKTt0LmV4cG9ydHM9dT9mdW5jdGlvbih0LGUpe3ZhciBuPW8oU3RyaW5nKHQpKTtyZXR1cm4gYShuLGU+Pj4wfHwoYy50ZXN0KG4pPzE2OjEwKSl9OmF9LCI1WXorIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIi9HcVUiKSxvPW4oInBwR0IiKSxpPW4oIlVNU1EiKSxhPW4oInN3RkwiKSxjPU1hdGgubWluLHU9W10ubGFzdEluZGV4T2Yscz0hIXUmJjEvWzFdLmxhc3RJbmRleE9mKDEsLTApPDAsZj1hKCJsYXN0SW5kZXhPZiIpO3QuZXhwb3J0cz1zfHxmP2Z1bmN0aW9uKHQpe2lmKHMpcmV0dXJuIHUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHwwO3ZhciBlPXIodGhpcyksbj1pKGUubGVuZ3RoKSxhPW4tMTtmb3IoYXJndW1lbnRzLmxlbmd0aD4xJiYoYT1jKGEsbyhhcmd1bWVudHNbMV0pKSksYTwwJiYoYT1uK2EpO2E+PTA7YS0tKWlmKGEgaW4gZSYmZVthXT09PXQpcmV0dXJuIGF8fDA7cmV0dXJuLTF9OnV9LCI1bWR1IjpmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXt0cnl7cmV0dXJue2Vycm9yOiExLHZhbHVlOnQoKX19Y2F0Y2goZSl7cmV0dXJue2Vycm9yOiEwLHZhbHVlOmV9fX19LCI1cytuIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByLG8saSxhLGM9bigiSStlYiIpLHU9bigieERCUiIpLHM9bigiMm9SbyIpLGY9bigiUW85bCIpLGw9bigiL3FtbiIpLHA9bigiYnVzRSIpLGg9bigiNHN5dyIpLHY9bigiMUU1eiIpLGQ9bigiSmlaYiIpLGc9bigiaGgxdiIpLHk9bigiSEF1TSIpLGI9bigiR2FyVSIpLG09bigieHJZSyIpLGs9bigiSW1aTiIpLF89bigiSEg0byIpLHc9bigiU0VCaCIpLHg9bigiTFBTUyIpLnNldCxTPW4oInRYVWciKSxFPW4oInpmbmQiKSxPPW4oIlJONmMiKSxUPW4oIjhHbEwiKSxJPW4oIjVtZHUiKSxqPW4oInM1cEUiKSxNPW4oImFmTzgiKSxQPW4oImxNcTUiKSxEPW4oInRpS3AiKSgic3BlY2llcyIpLFI9TS5nZXQsTj1NLnNldCxBPU0uZ2V0dGVyRm9yKCJQcm9taXNlIiksTD1sLEY9cy5UeXBlRXJyb3Isej1zLmRvY3VtZW50LFo9cy5wcm9jZXNzLEM9cy5mZXRjaCxXPVomJloudmVyc2lvbnMsRz1XJiZXLnY4fHwiIixVPVQuZixIPVUsQj0icHJvY2VzcyI9PW0oWiksSz0hISh6JiZ6LmNyZWF0ZUV2ZW50JiZzLmRpc3BhdGNoRXZlbnQpLFY9UCgiUHJvbWlzZSIsKGZ1bmN0aW9uKCl7dmFyIHQ9TC5yZXNvbHZlKDEpLGU9ZnVuY3Rpb24oKXt9LG49KHQuY29uc3RydWN0b3I9e30pW0RdPWZ1bmN0aW9uKHQpe3QoZSxlKX07cmV0dXJuISgoQnx8ImZ1bmN0aW9uIj09dHlwZW9mIFByb21pc2VSZWplY3Rpb25FdmVudCkmJighdXx8dC5maW5hbGx5KSYmdC50aGVuKGUpaW5zdGFuY2VvZiBuJiYwIT09Ry5pbmRleE9mKCI2LjYiKSYmLTE9PT1qLmluZGV4T2YoIkNocm9tZS82NiIpKX0pKSxYPVZ8fCFfKChmdW5jdGlvbih0KXtMLmFsbCh0KS5jYXRjaCgoZnVuY3Rpb24oKXt9KSl9KSksWT1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4hKCFnKHQpfHwiZnVuY3Rpb24iIT10eXBlb2YoZT10LnRoZW4pKSYmZX0scT1mdW5jdGlvbih0LGUsbil7aWYoIWUubm90aWZpZWQpe2Uubm90aWZpZWQ9ITA7dmFyIHI9ZS5yZWFjdGlvbnM7UygoZnVuY3Rpb24oKXtmb3IodmFyIG89ZS52YWx1ZSxpPTE9PWUuc3RhdGUsYT0wO3IubGVuZ3RoPmE7KXt2YXIgYyx1LHMsZj1yW2ErK10sbD1pP2Yub2s6Zi5mYWlsLHA9Zi5yZXNvbHZlLGg9Zi5yZWplY3Qsdj1mLmRvbWFpbjt0cnl7bD8oaXx8KDI9PT1lLnJlamVjdGlvbiYmdHQodCxlKSxlLnJlamVjdGlvbj0xKSwhMD09PWw/Yz1vOih2JiZ2LmVudGVyKCksYz1sKG8pLHYmJih2LmV4aXQoKSxzPSEwKSksYz09PWYucHJvbWlzZT9oKEYoIlByb21pc2UtY2hhaW4gY3ljbGUiKSk6KHU9WShjKSk/dS5jYWxsKGMscCxoKTpwKGMpKTpoKG8pfWNhdGNoKGQpe3YmJiFzJiZ2LmV4aXQoKSxoKGQpfX1lLnJlYWN0aW9ucz1bXSxlLm5vdGlmaWVkPSExLG4mJiFlLnJlamVjdGlvbiYmSih0LGUpfSkpfX0sUT1mdW5jdGlvbih0LGUsbil7dmFyIHIsbztLPygocj16LmNyZWF0ZUV2ZW50KCJFdmVudCIpKS5wcm9taXNlPWUsci5yZWFzb249bixyLmluaXRFdmVudCh0LCExLCEwKSxzLmRpc3BhdGNoRXZlbnQocikpOnI9e3Byb21pc2U6ZSxyZWFzb246bn0sKG89c1sib24iK3RdKT9vKHIpOiJ1bmhhbmRsZWRyZWplY3Rpb24iPT09dCYmTygiVW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9uIixuKX0sSj1mdW5jdGlvbih0LGUpe3guY2FsbChzLChmdW5jdGlvbigpe3ZhciBuLHI9ZS52YWx1ZTtpZigkKGUpJiYobj1JKChmdW5jdGlvbigpe0I/Wi5lbWl0KCJ1bmhhbmRsZWRSZWplY3Rpb24iLHIsdCk6USgidW5oYW5kbGVkcmVqZWN0aW9uIix0LHIpfSkpLGUucmVqZWN0aW9uPUJ8fCQoZSk/MjoxLG4uZXJyb3IpKXRocm93IG4udmFsdWV9KSl9LCQ9ZnVuY3Rpb24odCl7cmV0dXJuIDEhPT10LnJlamVjdGlvbiYmIXQucGFyZW50fSx0dD1mdW5jdGlvbih0LGUpe3guY2FsbChzLChmdW5jdGlvbigpe0I/Wi5lbWl0KCJyZWplY3Rpb25IYW5kbGVkIix0KTpRKCJyZWplY3Rpb25oYW5kbGVkIix0LGUudmFsdWUpfSkpfSxldD1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gZnVuY3Rpb24obyl7dChlLG4sbyxyKX19LG50PWZ1bmN0aW9uKHQsZSxuLHIpe2UuZG9uZXx8KGUuZG9uZT0hMCxyJiYoZT1yKSxlLnZhbHVlPW4sZS5zdGF0ZT0yLHEodCxlLCEwKSl9LHJ0PWZ1bmN0aW9uKHQsZSxuLHIpe2lmKCFlLmRvbmUpe2UuZG9uZT0hMCxyJiYoZT1yKTt0cnl7aWYodD09PW4pdGhyb3cgRigiUHJvbWlzZSBjYW4ndCBiZSByZXNvbHZlZCBpdHNlbGYiKTt2YXIgbz1ZKG4pO28/UygoZnVuY3Rpb24oKXt2YXIgcj17ZG9uZTohMX07dHJ5e28uY2FsbChuLGV0KHJ0LHQscixlKSxldChudCx0LHIsZSkpfWNhdGNoKGkpe250KHQscixpLGUpfX0pKTooZS52YWx1ZT1uLGUuc3RhdGU9MSxxKHQsZSwhMSkpfWNhdGNoKGkpe250KHQse2RvbmU6ITF9LGksZSl9fX07ViYmKEw9ZnVuY3Rpb24odCl7Yih0aGlzLEwsIlByb21pc2UiKSx5KHQpLHIuY2FsbCh0aGlzKTt2YXIgZT1SKHRoaXMpO3RyeXt0KGV0KHJ0LHRoaXMsZSksZXQobnQsdGhpcyxlKSl9Y2F0Y2gobil7bnQodGhpcyxlLG4pfX0sKHI9ZnVuY3Rpb24odCl7Tih0aGlzLHt0eXBlOiJQcm9taXNlIixkb25lOiExLG5vdGlmaWVkOiExLHBhcmVudDohMSxyZWFjdGlvbnM6W10scmVqZWN0aW9uOiExLHN0YXRlOjAsdmFsdWU6dm9pZCAwfSl9KS5wcm90b3R5cGU9aChMLnByb3RvdHlwZSx7dGhlbjpmdW5jdGlvbih0LGUpe3ZhciBuPUEodGhpcykscj1VKHcodGhpcyxMKSk7cmV0dXJuIHIub2s9ImZ1bmN0aW9uIiE9dHlwZW9mIHR8fHQsci5mYWlsPSJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlLHIuZG9tYWluPUI/Wi5kb21haW46dm9pZCAwLG4ucGFyZW50PSEwLG4ucmVhY3Rpb25zLnB1c2gociksMCE9bi5zdGF0ZSYmcSh0aGlzLG4sITEpLHIucHJvbWlzZX0sY2F0Y2g6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsdCl9fSksbz1mdW5jdGlvbigpe3ZhciB0PW5ldyByLGU9Uih0KTt0aGlzLnByb21pc2U9dCx0aGlzLnJlc29sdmU9ZXQocnQsdCxlKSx0aGlzLnJlamVjdD1ldChudCx0LGUpfSxULmY9VT1mdW5jdGlvbih0KXtyZXR1cm4gdD09PUx8fHQ9PT1pP25ldyBvKHQpOkgodCl9LHV8fCJmdW5jdGlvbiIhPXR5cGVvZiBsfHwoYT1sLnByb3RvdHlwZS50aGVuLHAobC5wcm90b3R5cGUsInRoZW4iLChmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7cmV0dXJuIG5ldyBMKChmdW5jdGlvbih0LGUpe2EuY2FsbChuLHQsZSl9KSkudGhlbih0LGUpfSkpLCJmdW5jdGlvbiI9PXR5cGVvZiBDJiZjKHtnbG9iYWw6ITAsZW51bWVyYWJsZTohMCxmb3JjZWQ6ITB9LHtmZXRjaDpmdW5jdGlvbih0KXtyZXR1cm4gRShMLEMuYXBwbHkocyxhcmd1bWVudHMpKX19KSkpLGMoe2dsb2JhbDohMCx3cmFwOiEwLGZvcmNlZDpWfSx7UHJvbWlzZTpMfSksdihMLCJQcm9taXNlIiwhMSwhMCksZCgiUHJvbWlzZSIpLGk9Zi5Qcm9taXNlLGMoe3RhcmdldDoiUHJvbWlzZSIsc3RhdDohMCxmb3JjZWQ6Vn0se3JlamVjdDpmdW5jdGlvbih0KXt2YXIgZT1VKHRoaXMpO3JldHVybiBlLnJlamVjdC5jYWxsKHZvaWQgMCx0KSxlLnByb21pc2V9fSksYyh7dGFyZ2V0OiJQcm9taXNlIixzdGF0OiEwLGZvcmNlZDp1fHxWfSx7cmVzb2x2ZTpmdW5jdGlvbih0KXtyZXR1cm4gRSh1JiZ0aGlzPT09aT9MOnRoaXMsdCl9fSksYyh7dGFyZ2V0OiJQcm9taXNlIixzdGF0OiEwLGZvcmNlZDpYfSx7YWxsOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1VKGUpLHI9bi5yZXNvbHZlLG89bi5yZWplY3QsaT1JKChmdW5jdGlvbigpe3ZhciBuPXkoZS5yZXNvbHZlKSxpPVtdLGE9MCxjPTE7ayh0LChmdW5jdGlvbih0KXt2YXIgdT1hKysscz0hMTtpLnB1c2godm9pZCAwKSxjKyssbi5jYWxsKGUsdCkudGhlbigoZnVuY3Rpb24odCl7c3x8KHM9ITAsaVt1XT10LC0tY3x8cihpKSl9KSxvKX0pKSwtLWN8fHIoaSl9KSk7cmV0dXJuIGkuZXJyb3ImJm8oaS52YWx1ZSksbi5wcm9taXNlfSxyYWNlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1VKGUpLHI9bi5yZWplY3Qsbz1JKChmdW5jdGlvbigpe3ZhciBvPXkoZS5yZXNvbHZlKTtrKHQsKGZ1bmN0aW9uKHQpe28uY2FsbChlLHQpLnRoZW4obi5yZXNvbHZlLHIpfSkpfSkpO3JldHVybiBvLmVycm9yJiZyKG8udmFsdWUpLG4ucHJvbWlzZX19KX0sIjV1SDgiOmZ1bmN0aW9uKHQsZSxuKXtuKCJJK2ViIikoe3RhcmdldDoiTnVtYmVyIixzdGF0OiEwfSx7TUlOX1NBRkVfSU5URUdFUjotOTAwNzE5OTI1NDc0MDk5MX0pfSwiNkpOcSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIlVUVlMiKSxvPW4oIlZ1ODEiKSxpPW4oIkJzOFYiKSxhPW4oIm0vTDgiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49byhlKSxjPWEuZix1PWkuZixzPTA7czxuLmxlbmd0aDtzKyspe3ZhciBmPW5bc107cih0LGYpfHxjKHQsZix1KGUsZikpfX19LCI2TFdBIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigieHJZSyIpO3QuZXhwb3J0cz1BcnJheS5pc0FycmF5fHxmdW5jdGlvbih0KXtyZXR1cm4iQXJyYXkiPT1yKHQpfX0sIjZWb0UiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJ0aUtwIiksbz1uKCJQNHkxIiksaT1yKCJpdGVyYXRvciIpLGE9QXJyYXkucHJvdG90eXBlO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwIT09dCYmKG8uQXJyYXk9PT10fHxhW2ldPT09dCl9fSwiNmhwbiI6ZnVuY3Rpb24odCxlLG4pe24oIlV5ZHkiKSxuKCJlYWp2Iiksbigibi9tVSIpLG4oIlBxT0kiKSxuKCJRTm5wIiksbigiLzV6bSIpLG4oIkNzZ0QiKSxuKCI5bVJXIiksbigiUUZjVCIpLG4oInZBRnMiKSxuKCJhNU5LIiksbigieWlHMyIpLG4oImtOY1UiKSxuKCJLdkdpIiksbigiQW1GTyIpLG4oImVKaVIiKSxuKCJJOXhqIiksbigidGwvdSIpO3ZhciByPW4oIlFvOWwiKTt0LmV4cG9ydHM9ci5NYXRofSwiNnVuSyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjBEa3kiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHIoKGZ1bmN0aW9uKCl7dmFyIGU9IiJbdF0oJyInKTtyZXR1cm4gZSE9PWUudG9Mb3dlckNhc2UoKXx8ZS5zcGxpdCgnIicpLmxlbmd0aD4zfSkpfX0sIjcra2QiOmZ1bmN0aW9uKHQsZSxuKXtuKCJkRy9uIikoImlzQ29uY2F0U3ByZWFkYWJsZSIpfSwiNyt6cyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIlgyVSsiKSxvPW4oIlVlc0wiKSxpPW4oInRpS3AiKSgidG9QcmltaXRpdmUiKSxhPURhdGUucHJvdG90eXBlO2kgaW4gYXx8cihhLGksbyl9LCI3c2JEIjpmdW5jdGlvbih0LGUsbil7bigicWVQViIpLG4oIk5iTisiKSxuKCI4QXlKIiksbigiaTZRRiIpLG4oImtTa28iKSxuKCJXRHNSIiksbigici9WcSIpLG4oIjV1SDgiKSxuKCJ3MXJaIiksbigiSmV2QSIpLG4oInRvQWoiKSxuKCJWQzNMIik7dmFyIHI9bigiUW85bCIpO3QuZXhwb3J0cz1yLk51bWJlcn0sIjhBeUoiOmZ1bmN0aW9uKHQsZSxuKXtuKCJJK2ViIikoe3RhcmdldDoiTnVtYmVyIixzdGF0OiEwfSx7aXNGaW5pdGU6bigiNG9VLyIpfSl9LCI4R2xMIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkhBdU0iKSxvPWZ1bmN0aW9uKHQpe3ZhciBlLG47dGhpcy5wcm9taXNlPW5ldyB0KChmdW5jdGlvbih0LHIpe2lmKHZvaWQgMCE9PWV8fHZvaWQgMCE9PW4pdGhyb3cgVHlwZUVycm9yKCJCYWQgUHJvbWlzZSBjb25zdHJ1Y3RvciIpO2U9dCxuPXJ9KSksdGhpcy5yZXNvbHZlPXIoZSksdGhpcy5yZWplY3Q9cihuKX07dC5leHBvcnRzLmY9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBvKHQpfX0sIjhZT2EiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwQksyIiksbz1uKCJoaDF2IiksaT1uKCJVVFZTIiksYT1uKA=="
}