l8fGEudmVyc2lvbigiV2luZG93cyBNb2JpbGUiKTw9NS4yLCJDIil9LGcuZGV0ZWN0T1M9ZnVuY3Rpb24oYSl7cmV0dXJuIGcuZmluZE1hdGNoKGcubW9iaWxlRGV0ZWN0UnVsZXMub3NzMCxhKXx8Zy5maW5kTWF0Y2goZy5tb2JpbGVEZXRlY3RSdWxlcy5vc3MsYSl9LGcuZ2V0RGV2aWNlU21hbGxlclNpZGU9ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LnNjcmVlbi53aWR0aDx3aW5kb3cuc2NyZWVuLmhlaWdodD93aW5kb3cuc2NyZWVuLndpZHRoOndpbmRvdy5zY3JlZW4uaGVpZ2h0fSxmLnByb3RvdHlwZT17Y29uc3RydWN0b3I6Zixtb2JpbGU6ZnVuY3Rpb24oKXtyZXR1cm4gZy5wcmVwYXJlRGV0ZWN0aW9uQ2FjaGUodGhpcy5fY2FjaGUsdGhpcy51YSx0aGlzLm1heFBob25lV2lkdGgpLHRoaXMuX2NhY2hlLm1vYmlsZX0scGhvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gZy5wcmVwYXJlRGV0ZWN0aW9uQ2FjaGUodGhpcy5fY2FjaGUsdGhpcy51YSx0aGlzLm1heFBob25lV2lkdGgpLHRoaXMuX2NhY2hlLnBob25lfSx0YWJsZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZy5wcmVwYXJlRGV0ZWN0aW9uQ2FjaGUodGhpcy5fY2FjaGUsdGhpcy51YSx0aGlzLm1heFBob25lV2lkdGgpLHRoaXMuX2NhY2hlLnRhYmxldH0sdXNlckFnZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhY2hlLnVzZXJBZ2VudD09PWImJih0aGlzLl9jYWNoZS51c2VyQWdlbnQ9Zy5maW5kTWF0Y2goZy5tb2JpbGVEZXRlY3RSdWxlcy51YXMsdGhpcy51YSkpLHRoaXMuX2NhY2hlLnVzZXJBZ2VudH0sdXNlckFnZW50czpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jYWNoZS51c2VyQWdlbnRzPT09YiYmKHRoaXMuX2NhY2hlLnVzZXJBZ2VudHM9Zy5maW5kTWF0Y2hlcyhnLm1vYmlsZURldGVjdFJ1bGVzLnVhcyx0aGlzLnVhKSksdGhpcy5fY2FjaGUudXNlckFnZW50c30sb3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FjaGUub3M9PT1iJiYodGhpcy5fY2FjaGUub3M9Zy5kZXRlY3RPUyh0aGlzLnVhKSksdGhpcy5fY2FjaGUub3N9LHZlcnNpb246ZnVuY3Rpb24oYSl7cmV0dXJuIGcuZ2V0VmVyc2lvbihhLHRoaXMudWEpfSx2ZXJzaW9uU3RyOmZ1bmN0aW9uKGEpe3JldHVybiBnLmdldFZlcnNpb25TdHIoYSx0aGlzLnVhKX0saXM6ZnVuY3Rpb24oYil7cmV0dXJuIGModGhpcy51c2VyQWdlbnRzKCksYil8fGEoYix0aGlzLm9zKCkpfHxhKGIsdGhpcy5waG9uZSgpKXx8YShiLHRoaXMudGFibGV0KCkpfHxjKGcuZmluZE1hdGNoZXMoZy5tb2JpbGVEZXRlY3RSdWxlcy51dGlscyx0aGlzLnVhKSxiKX0sbWF0Y2g6ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBSZWdFeHB8fChhPW5ldyBSZWdFeHAoYSwiaSIpKSxhLnRlc3QodGhpcy51YSl9LGlzUGhvbmVTaXplZDpmdW5jdGlvbihhKXtyZXR1cm4gZi5pc1Bob25lU2l6ZWQoYXx8dGhpcy5tYXhQaG9uZVdpZHRoKX0sbW9iaWxlR3JhZGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FjaGUuZ3JhZGU9PT1iJiYodGhpcy5fY2FjaGUuZ3JhZGU9Zy5tb2JpbGVHcmFkZSh0aGlzKSksdGhpcy5fY2FjaGUuZ3JhZGV9fSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93LnNjcmVlbj9mLmlzUGhvbmVTaXplZD1mdW5jdGlvbihhKXtyZXR1cm4gYTwwP2I6Zy5nZXREZXZpY2VTbWFsbGVyU2lkZSgpPD1hfTpmLmlzUGhvbmVTaXplZD1mdW5jdGlvbigpe30sZi5faW1wbD1nLGYudmVyc2lvbj0iMS40LjUgMjAyMS0wMy0xMyIsZn0pfShmdW5jdGlvbihhKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHMpcmV0dXJuIGZ1bmN0aW9uKGEpe21vZHVsZS5leHBvcnRzPWEoKX07aWYoImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZClyZXR1cm4gZGVmaW5lO2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93KXJldHVybiBmdW5jdGlvbihhKXt3aW5kb3cuTW9iaWxlRGV0ZWN0PWEoKX07dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGVudmlyb25tZW50Iil9KCkpO3ZhciBhaV9saXN0cz0hMCxhaV9ibG9ja19jbGFzc19kZWY9ImNvZGUtYmxvY2siO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYWlfbGlzdHMpe2Z1bmN0aW9uIFgoYixlKXtmb3IodmFyIG49W107Yj1iLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7KSgidW5kZWZpbmVkIj09dHlwZW9mIGV8fGIubWF0Y2hlcyhlKSkmJm4ucHVzaChiKTtyZXR1cm4gbn1mdW5jdGlvbiBmYShiLGUpe2Zvcih2YXIgbj1bXTtiPWIubmV4dEVsZW1lbnRTaWJsaW5nOykoInVuZGVmaW5lZCI9PXR5cGVvZiBlfHxiLm1hdGNoZXMoZSkpJiZuLnB1c2goYik7cmV0dXJuIG59dmFyIGhvc3RfcmVnZXhwPVJlZ0V4cCgiOlxcL1xcLyguW14vOl0rKSIsImkiKTtmdW5jdGlvbiBoYShiKXtiPWIubWF0Y2goaG9zdF9yZWdleHApO3JldHVybiBudWxsIT1iJiYxPGIubGVuZ3RoJiYic3RyaW5nIj09PXR5cGVvZiBiWzFdJiYwPGJbMV0ubGVuZ3RoP2JbMV0udG9Mb3dlckNhc2UoKTpudWxsfWZ1bmN0aW9uIFEoYil7cmV0dXJuIGIuaW5jbHVkZXMoIjoiKT8oYj1iLnNwbGl0KCI6IiksMUUzKigzNjAwKnBhcnNlSW50KGJbMF0pKwo2MCpwYXJzZUludChiWzFdKStwYXJzZUludChiWzJdKSkpOm51bGx9ZnVuY3Rpb24gWShiKXt0cnl7dmFyIGU9RGF0ZS5wYXJzZShiKTtpc05hTihlKSYmKGU9bnVsbCl9Y2F0Y2gobil7ZT1udWxsfWlmKG51bGw9PWUmJmIuaW5jbHVkZXMoIiAiKSl7Yj1iLnNwbGl0KCIgIik7dHJ5e2U9RGF0ZS5wYXJzZShiWzBdKSxlKz1RKGJbMV0pLGlzTmFOKGUpJiYoZT1udWxsKX1jYXRjaChuKXtlPW51bGx9fXJldHVybiBlfWZ1bmN0aW9uIFooKXtudWxsPT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWktaWFiLXRjZi1iYXIiKSYmbnVsbD09ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmFpLWxpc3QtbWFudWFsIil8fCJmdW5jdGlvbiIhPXR5cGVvZiBfX3RjZmFwaXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGFpX2xvYWRfYmxvY2tzfHwidW5kZWZpbmVkIiE9dHlwZW9mIGFpX2lhYl90Y2ZfY2FsbGJhY2tfaW5zdGFsbGVkfHwoX190Y2ZhcGkoImFkZEV2ZW50TGlzdGVuZXIiLDIsZnVuY3Rpb24oYixlKXtlJiYidXNlcmFjdGlvbmNvbXBsZXRlIj09PWIuZXZlbnRTdGF0dXMmJihhaV90Y0RhdGE9YixhaV9sb2FkX2Jsb2NrcygpLGI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FpLWlhYi10Y2Ytc3RhdHVzIiksbnVsbCE9YiYmKGIudGV4dENvbnRlbnQ9IklBQiBUQ0YgMi4wIERBVEEgTE9BREVEIiksYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWktaWFiLXRjZi1iYXIiKSxudWxsIT1iJiYoYi5jbGFzc0xpc3QucmVtb3ZlKCJzdGF0dXMtZXJyb3IiKSxiLmNsYXNzTGlzdC5hZGQoInN0YXR1cy1vayIpKSl9KSxhaV9pYWJfdGNmX2NhbGxiYWNrX2luc3RhbGxlZD0hMCl9YWlfcHJvY2Vzc19saXN0cz1mdW5jdGlvbihiKXtmdW5jdGlvbiBlKGEsYyxrKXtpZigwPT1hLmxlbmd0aCl7aWYoIiFAISI9PWspcmV0dXJuITA7YyE9ayYmKCJ0cnVlIj09ay50b0xvd2VyQ2FzZSgpP2s9ITA6ImZhbHNlIj09ay50b0xvd2VyQ2FzZSgpJiYoaz0hMSkpO3JldHVybiBjPT1rfWlmKCJvYmplY3QiIT10eXBlb2YgYyYmImFycmF5IiE9dHlwZW9mIGMpcmV0dXJuITE7dmFyIGw9YVswXTthPWEuc2xpY2UoMSk7aWYoIioiPT1sKWZvcihsZXRbLHBdb2YgT2JqZWN0LmVudHJpZXMoYykpe2lmKGUoYSxwLGspKXJldHVybiEwfWVsc2UgaWYobCBpbiBjKXJldHVybiBlKGEsY1tsXSxrKTtyZXR1cm4hMX1mdW5jdGlvbiBuKGEsYyxrKXtpZigib2JqZWN0IiE9dHlwZW9mIGF8fC0xPT1jLmluZGV4T2YoIlsiKSlyZXR1cm4hMTtjPWMucmVwbGFjZSgvXXwgL2dpLCIiKS5zcGxpdCgiWyIpO3JldHVybiBlKGMsYSxrKX1mdW5jdGlvbiB6KCl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIF9fdGNmYXBpKXt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWktaWFiLXRjZi1zdGF0dXMiKSxjPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhaS1pYWItdGNmLWJhciIpO251bGwhPWEmJihhLnRleHRDb250ZW50PSJJQUIgVENGIDIuMCBERVRFQ1RFRCIpO19fdGNmYXBpKCJnZXRUQ0RhdGEiLDIsZnVuY3Rpb24oayxsKXtsPyhudWxsIT1jJiYoYy5jbGFzc0xpc3QucmVtb3ZlKCJzdGF0dXMtZXJyb3IiKSxjLmNsYXNzTGlzdC5hZGQoInN0YXR1cy1vayIpKSwidGNsb2FkZWQiPT1rLmV2ZW50U3RhdHVzfHwidXNlcmFjdGlvbmNvbXBsZXRlIj09ay5ldmVudFN0YXR1cyk/KGFpX3RjRGF0YT1rLGsuZ2RwckFwcGxpZXM/bnVsbCE9YSYmKGEudGV4dENvbnRlbnQ9IklBQiBUQ0YgMi4wIERBVEEgTE9BREVEIik6bnVsbCE9YSYmKGEudGV4dENvbnRlbnQ9IklBQiBUQ0YgMi4wIEdEUFIgRE9FUyBOT1QgQVBQTFkiKSxudWxsIT1jJiYoYy5jbGFzc0xpc3QucmVtb3ZlKCJzdGF0dXMtZXJyb3IiKSxjLmNsYXNzTGlzdC5hZGQoInN0YXR1cy1vayIpKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YWlfcHJvY2Vzc19saXN0cygpfSwxMCkpOiJjbXB1aXNob3duIj09ay5ldmVudFN0YXR1cyYmKGFpX2NtcHVpc2hvd249ITAsbnVsbCE9YSYmKGEudGV4dENvbnRlbnQ9IklBQiBUQ0YgMi4wIENNUCBVSSBTSE9XTiIpLG51bGwhPWMmJihjLmNsYXNzTGlzdC5yZW1vdmUoInN0YXR1cy1lcnJvciIpLGMuY2xhc3NMaXN0LmFkZCgic3RhdHVzLW9rIikpKToobnVsbCE9YSYmKGEudGV4dENvbnRlbnQ9IklBQiBUQ0YgMi4wIF9fdGNmYXBpIGdldFRDRGF0YSBmYWlsZWQiKSxudWxsIT1jJiYoYy5jbGFzc0xpc3QucmVtb3ZlKCJzdGF0dXMtb2siKSxjLmNsYXNzTGlzdC5hZGQoInN0YXR1cy1lcnJvciIpKSl9KX19ZnVuY3Rpb24gQyhhKXsiZnVuY3Rpb24iPT10eXBlb2YgX190Y2ZhcGk/KGFpX3RjZmFwaV9mb3VuZD0hMCwidW5kZWZpbmVkIj09dHlwZW9mIGFpX2lhYl90Y2ZfY2FsbGJhY2tfaW5zdGFsbGVkJiZaKCksInVuZGVmaW5lZCI9PXR5cGVvZiBhaV90Y0RhdGFfcmVxdWVzdGVkJiYoYWlfdGNEYXRhX3JlcXVlc3RlZD0hMCx6KCksY29va2llc19uZWVkX3RjRGF0YT0hMCkpOmEmJigidW5kZWZpbmVkIj09dHlwZW9mIGFpX3RjZmFwaV9mb3VuZCYmKGFpX3RjZmFwaV9mb3VuZD0hMSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YWlfcHJvY2Vzc19saXN0cygpfSwxMCkpLGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FpLWlhYi10Y2Ytc3RhdHVzIiksbnVsbCE9YSYmKGEudGV4dENvbnRlbnQ9IklBQiBUQ0YgMi4wIE1JU1NJTkc6IF9fdGNmYXBpIGZ1bmN0aW9uIG5vdCBmb3VuZCIpLGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FpLWlhYi10Y2YtYmFyIiksbnVsbCE9YSYmKGEuY2xhc3NMaXN0LnJlbW92ZSgic3RhdHVzLW9rIiksYS5jbGFzc0xpc3QuYWRkKCJzdGF0dXMtZXJyb3IiKSkpfWlmKG51bGw9PWIpYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkaXYuYWktbGlzdC1kYXRhLCBtZXRhLmFpLWxpc3QtZGF0YSIpO2Vsc2V7d2luZG93LmpRdWVyeSYmd2luZG93LmpRdWVyeS5mbiYmYiBpbnN0YW5jZW9mIGpRdWVyeSYmKGI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYikpO3ZhciB4PVtdO2IuZm9yRWFjaCgoYSxjKT0+e2EubWF0Y2hlcygiLmFpLWxpc3QtZGF0YSIpP3gucHVzaChhKTooYT1hLnF1ZXJ5U2VsZWN0b3JBbGwoIi5haS1saXN0LWRhdGEiKSxhLmxlbmd0aCYmYS5mb3JFYWNoKChrLGwpPT57eC5wdXNoKGspfSkpfSk7Yj14fWlmKGIubGVuZ3RoKXtiLmZvckVhY2goKGEsYyk9PnthLmNsYXNzTGlzdC5yZW1vdmUoImFpLWxpc3QtZGF0YSIpfSk7dmFyIEw9aWEod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7aWYobnVsbCE9TC5yZWZlcnJlcil2YXIgQT1MLnJlZmVycmVyO2Vsc2UgQT1kb2N1bWVudC5yZWZlcnJlciwiIiE9QSYmKEE9aGEoQSkpO3ZhciBSPXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LFM9Ui50b0xvd2VyQ2FzZSgpLGFhPW5hdmlnYXRvci5sYW5ndWFnZSxNPWFhLnRvTG93ZXJDYXNlKCk7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgTW9iaWxlRGV0ZWN0KXZhciBiYT1uZXcgTW9iaWxlRGV0ZWN0KFIpO2IuZm9yRWFjaCgoYSxjKT0+e3ZhciBrPWRvY3VtZW50LmNvb2tpZS5zcGxpdCgiOyIpO2suZm9yRWFjaChmdW5jdGlvbihmLGgpe2tbaF09Zi50cmltKCl9KTtjPWEuY2xvc2VzdCgiZGl2LiIrYWlfYmxvY2tfY2xhc3NfZGVmKTt2YXIgbD0hMDtpZihhLmhhc0F0dHJpYnV0ZSgicmVmZXJlci1saXN0Iikpe3ZhciBwPWEuZ2V0QXR0cmlidXRlKCJyZWZlcmVyLWxpc3QiKTtwPWI2NGQocCkuc3BsaXQoIiwiKTt2YXIgdj1hLmdldEF0dHJpYnV0ZSgicmVmZXJlci1saXN0LXR5cGUiKSxFPSExO3AuZXZlcnkoKGYsaCk9PntmPWYudHJpbSgpO2lmKCIiPT1mKXJldHVybiEwO2lmKCIqIj09Zi5jaGFyQXQoMCkpaWYoIioiPT1mLmNoYXJBdChmLmxlbmd0aC0xKSl7aWYoZj1mLnN1YnN0cigxLGYubGVuZ3RoLTIpLC0xIT1BLmluZGV4T2YoZikpcmV0dXJuIEU9ITAsITF9ZWxzZXtpZihmPWYuc3Vic3RyKDEpLEEuc3Vic3RyKC1mLmxlbmd0aCk9PWYpcmV0dXJuIEU9ITAsITF9ZWxzZSBpZigiKiI9PWYuY2hhckF0KGYubGVuZ3RoLTEpKXtpZihmPWYuc3Vic3RyKDAsZi5sZW5ndGgtMSksMD09QS5pbmRleE9mKGYpKXJldHVybiBFPSEwLCExfWVsc2UgaWYoIiMiPT1mKXtpZigiIj09QSlyZXR1cm4gRT0hMCwhMX1lbHNlIGlmKGY9PUEpcmV0dXJuIEU9ITAsITE7cmV0dXJuITB9KTt2YXIgcj1FO3N3aXRjaCh2KXtjYXNlIkIiOnImJihsPSExKTticmVhaztjYXNlIlciOnJ8fChsPSExKX19aWYobCYmYS5oYXNBdHRyaWJ1dGUoImNsaWVudC1saXN0IikmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGJhKXN3aXRjaChwPWEuZ2V0QXR0cmlidXRlKCJjbGllbnQtbGlzdCIpLHA9YjY0ZChwKS5zcGxpdCgiLCIpLHY9YS5nZXRBdHRyaWJ1dGUoImNsaWVudC1saXN0LXR5cGUiKSxyPSExLHAuZXZlcnkoKGYsaCk9PntpZigiIj09Zi50cmltKCkpcmV0dXJuITA7Zi5zcGxpdCgiJiYiKS5ldmVyeSgoZCx0KT0+e3Q9ITA7dmFyIHc9ITE7Zm9yKGQ9ZC50cmltKCk7IiEhIj09ZC5zdWJzdHJpbmcoMCwyKTspdD0hdCxkPWQuc3Vic3RyaW5nKDIpOyJsYW5ndWFnZToiPT1kLnN1YnN0cmluZygwLDkpJiYodz0hMCxkPWQuc3Vic3RyaW5nKDkpLnRvTG93ZXJDYXNlKCkpO3ZhciBxPSExO3c/IioiPT1kLmNoYXJBdCgwKT8iKiI9PWQuY2hhckF0KGQubGVuZ3RoLQoxKT8oZD1kLnN1YnN0cigxLGQubGVuZ3RoLTIpLnRvTG93ZXJDYXNlKCksLTEhPU0uaW5kZXhPZihkKSYmKHE9ITApKTooZD1kLnN1YnN0cigxKS50b0xvd2VyQ2FzZSgpLE0uc3Vic3RyKC1kLmxlbmd0aCk9PWQmJihxPSEwKSk6IioiPT1kLmNoYXJBdChkLmxlbmd0aC0xKT8oZD1kLnN1YnN0cigwLGQubGVuZ3RoLTEpLnRvTG93ZXJDYXNlKCksMD09TS5pbmRleE9mKGQpJiYocT0hMCkpOmQ9PU0mJihxPSEwKToiKiI9PWQuY2hhckF0KDApPyIqIj09ZC5jaGFyQXQoZC5sZW5ndGgtMSk/KGQ9ZC5zdWJzdHIoMSxkLmxlbmd0aC0yKS50b0xvd2VyQ2FzZSgpLC0xIT1TLmluZGV4T2YoZCkmJihxPSEwKSk6KGQ9ZC5zdWJzdHIoMSkudG9Mb3dlckNhc2UoKSxTLnN1YnN0cigtZC5sZW5ndGgpPT1kJiYocT0hMCkpOiIqIj09ZC5jaGFyQXQoZC5sZW5ndGgtMSk/KGQ9ZC5zdWJzdHIoMCxkLmxlbmd0aC0xKS50b0xvd2VyQ2FzZSgpLDA9PVMuaW5kZXhPZihkKSYmKHE9ITApKTpiYS5pcyhkKSYmKHE9ITApO3JldHVybihyPXE/dDohdCk/ITA6ITF9KTtyZXR1cm4gcj8hMTohMH0pLHYpe2Nhc2UiQiI6ciYmKGw9ITEpO2JyZWFrO2Nhc2UiVyI6cnx8KGw9ITEpfXZhciBOPXA9ITE7Zm9yKHY9MTsyPj12O3YrKylpZihsKXtzd2l0Y2godil7Y2FzZSAxOnZhciBnPWEuZ2V0QXR0cmlidXRlKCJjb29raWUtbGlzdCIpO2JyZWFrO2Nhc2UgMjpnPWEuZ2V0QXR0cmlidXRlKCJwYXJhbWV0ZXItbGlzdCIpfWlmKG51bGwhPWcpe2c9YjY0ZChnKTtzd2l0Y2godil7Y2FzZSAxOnZhciB5PWEuZ2V0QXR0cmlidXRlKCJjb29raWUtbGlzdC10eXBlIik7YnJlYWs7Y2FzZSAyOnk9YS5nZXRBdHRyaWJ1dGUoInBhcmFtZXRlci1saXN0LXR5cGUiKX1nPWcucmVwbGFjZSgidGNmLWdkcHIiLCJ0Y2YtdjJbZ2RwckFwcGxpZXNdPXRydWUiKTtnPWcucmVwbGFjZSgidGNmLW5vLWdkcHIiLCJ0Y2YtdjJbZ2RwckFwcGxpZXNdPWZhbHNlIik7Zz1nLnJlcGxhY2UoInRjZi1nb29nbGUiLCJ0Y2YtdjJbdmVuZG9yXVtjb25zZW50c11bNzU1XT10cnVlICYmIHRjZi12MltwdXJwb3NlXVtjb25zZW50c11bMV09dHJ1ZSIpO2c9Zy5yZXBsYWNlKCJ0Y2Ytbm8tZ29vZ2xlIiwiISF0Y2YtdjJbdmVuZG9yXVtjb25zZW50c11bNzU1XSIpO2c9Zy5yZXBsYWNlKCJ0Y2YtbWVkaWEubmV0IiwidGNmLXYyW3ZlbmRvcl1bY29uc2VudHNdWzE0Ml09dHJ1ZSAmJiB0Y2YtdjJbcHVycG9zZV1bY29uc2VudHNdWzFdPXRydWUiKTtnPWcucmVwbGFjZSgidGNmLW5vLW1lZGlhLm5ldCIsIiEhdGNmLXYyW3ZlbmRvcl1bY29uc2VudHNdWzE0Ml0iKTtnPWcucmVwbGFjZSgidGNmLWFtYXpvbiIsInRjZi12Mlt2ZW5kb3JdW2NvbnNlbnRzXVs3OTNdPXRydWUgJiYgdGNmLXYyW3B1cnBvc2VdW2NvbnNlbnRzXVsxXT10cnVlIik7Zz1nLnJlcGxhY2UoInRjZi1uby1hbWF6b24iLCIhIXRjZi12Mlt2ZW5kb3JdW2NvbnNlbnRzXVs3OTNdIik7Zz1nLnJlcGxhY2UoInRjZi1lem9pYyIsInRjZi12Mlt2ZW5kb3JdW2NvbnNlbnRzXVszNDddPXRydWUgJiYgdGNmLXYyW3B1cnBvc2VdW2NvbnNlbnRzXVsxXT10cnVlIik7Zz1nLnJlcGxhY2UoInRjZi1uby1lem9pYyIsIiEhdGNmLXYyW3ZlbmRvcl1bY29uc2VudHNdWzM0N10iKTt2YXIgRj1nLnNwbGl0KCIsIiksY2E9W107ay5mb3JFYWNoKGZ1bmN0aW9uKGYpe2Y9Zi5zcGxpdCgiPSIpO3RyeXt2YXIgaD1KU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudChmWzFdKSl9Y2F0Y2goZCl7aD1kZWNvZGVVUklDb21wb25lbnQoZlsxXSl9Y2FbZlswXV09aH0pO3I9ITE7dmFyIEk9YTtGLmV2ZXJ5KChmLGgpPT57Zi5zcGxpdCgiJiYiKS5ldmVyeSgoZCx0KT0+e3Q9ITA7Zm9yKGQ9ZC50cmltKCk7IiEhIj09ZC5zdWJzdHJpbmcoMCwyKTspdD0hdCxkPWQuc3Vic3RyaW5nKDIpO3ZhciB3PWQscT0iIUAhIixUPSJ0Y2YtdjIiPT13JiYiIUAhIj09cSxCPS0xIT1kLmluZGV4T2YoIlsiKSxKPTA9PWQuaW5kZXhPZigidGNmLXYyIil8fDA9PWQuaW5kZXhPZigiZXVjb25zZW50LXYyIik7Sj1KJiYoQnx8VCk7LTEhPWQuaW5kZXhPZigiPSIpJiYocT1kLnNwbGl0KCI9Iiksdz1xWzBdLHE9cVsxXSxCPS0xIT13LmluZGV4T2YoIlsiKSxKPShKPTA9PXcuaW5kZXhPZigidGNmLXYyIil8fDA9PXcuaW5kZXhPZigiZXVjb25zZW50LXYyIikpJiYoQnx8VCkpO2lmKEopZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FpLWlhYi10Y2Ytc3RhdHVzIiksQj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWktaWFiLXRjZi1iYXIiKSxudWxsIT1CJiYoQi5zdHlsZS5kaXNwbGF5PSJibG9jayIpLFQmJiJib29sZWFuIj09dHlwZW9mIGFpX3RjZmFwaV9mb3VuZD9yPWFpX3RjZmFwaV9mb3VuZD90OiF0OiJvYmplY3QiPT10eXBlb2YgYWlfdGNEYXRhPyhudWxsIT1CJiYoQi5jbGFzc0xpc3QucmVtb3ZlKCJzdGF0dXMtZXJyb3IiKSxCLmNsYXNzTGlzdC5hZGQoInN0YXR1cy1vayIpKSx3PXcucmVwbGFjZSgvXXwgL2dpLCIiKS5zcGxpdCgiWyIpLHcuc2hpZnQoKSxyPSh3PWUodyxhaV90Y0RhdGEscSkpP3Q6IXQpOiJ1bmRlZmluZWQiPT10eXBlb2YgYWlfdGNmYXBpX2ZvdW5kJiYoSS5jbGFzc0xpc3QuYWRkKCJhaS1saXN0LWRhdGEiKSxOPSEwLCJmdW5jdGlvbiI9PXR5cGVvZiBfX3RjZmFwaT9DKCExKToidW5kZWZpbmVkIj09dHlwZW9mIGFpX3RjRGF0YV9yZXRyeWluZyYmKGFpX3RjRGF0YV9yZXRyeWluZz0hMCxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ImZ1bmN0aW9uIj09dHlwZW9mIF9fdGNmYXBpP0MoITEpOnNldFRpbWVvdXQoZnVuY3Rpb24oKXsiZnVuY3Rpb24iPT10eXBlb2YgX190Y2ZhcGk/QyghMSk6c2V0VGltZW91dChmdW5jdGlvbigpe0MoITApfSwzRTMpfSwxRTMpfSw2MDApKSk7ZWxzZSBpZihCKXI9KHc9bihjYSx3LHEpKT90OiF0O2Vsc2V7dmFyIFU9ITE7IiFAISI9PXE/ay5ldmVyeShmdW5jdGlvbihqYSl7cmV0dXJuIGphLnNwbGl0KCI9IilbMF09PWQ/KFU9ITAsITEpOiEwfSk6VT0tMSE9ay5pbmRleE9mKGQpO3I9VT90OiF0fXJldHVybiByPyEwOiExfSk7cmV0dXJuIHI/ITE6ITB9KTtyJiYoTj0hMSxJLmNsYXNzTGlzdC5yZW1vdmUoImFpLWxpc3QtZGF0YSIpKTtzd2l0Y2goeSl7Y2FzZSJCIjpyJiYobD0hMSk7YnJlYWs7Y2FzZSJXIjpyfHwobD0hMSl9fX1hLmNsYXNzTGlzdC5jb250YWlucygiYWktbGlzdC1tYW51YWwiKSYmKGw/KEkuY2xhc3NMaXN0LnJlbW92ZSgiYWktbGlzdC1kYXRhIiksSS5jbGFzc0xpc3QucmVtb3ZlKCJhaS1saXN0LW1hbnVhbCIpKToocD0hMCxJLmNsYXNzTGlzdC5hZGQoImFpLWxpc3QtZGF0YSIpKSk7KGx8fCFwJiYhTikmJmEuaGFzQXR0cmlidXRlKCJkYXRhLWRlYnVnLWluZm8iKSYmKGc9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLiIrYS5kYXRhc2V0LmRlYnVnSW5mbyksbnVsbCE9ZyYmKGc9Zy5wYXJlbnRFbGVtZW50LG51bGwhPWcmJmcuY2xhc3NMaXN0LmNvbnRhaW5zKCJhaS1kZWJ1Zy1pbmZvIikmJmcucmVtb3ZlKCkpKTt5PVgoYSwiLmFpLWRlYnVnLWJhci5haS1kZWJ1Zy1saXN0cyIpO3ZhciBrYT0iIj09QT8iIyI6QTswIT15Lmxlbmd0aCYmeS5mb3JFYWNoKChmLGgpPT57aD1mLnF1ZXJ5U2VsZWN0b3IoIi5haS1kZWJ1Zy1uYW1lLmFpLWxpc3QtaW5mbyIpO251bGwhPWgmJihoLnRleHRDb250ZW50PWthLGgudGl0bGU9UisiXG4iK2FhKTtoPWYucXVlcnlTZWxlY3RvcigiLmFpLWRlYnVnLW5hbWUuYWktbGlzdC1zdGF0dXMiKTtudWxsIT1oJiYoaC50ZXh0Q29udGVudD1sP2FpX2Zyb250LnZpc2libGU6YWlfZnJvbnQuaGlkZGVuKX0pO2c9ITE7aWYobCYmYS5oYXNBdHRyaWJ1dGUoInNjaGVkdWxpbmctc3RhcnQiKSYmYS5oYXNBdHRyaWJ1dGUoInNjaGVkdWxpbmctZW5kIikmJmEuaGFzQXR0cmlidXRlKCJzY2hlZHVsaW5nLWRheXMiKSl7dmFyIHU9YS5nZXRBdHRyaWJ1dGUoInNjaGVkdWxpbmctc3RhcnQiKTt2PWEuZ2V0QXR0cmlidXRlKCJzY2hlZHVsaW5nLWVuZCIpO3k9YS5nZXRBdHRyaWJ1dGUoInNjaGVkdWxpbmctZGF5cyIpO2c9ITA7dT1iNjRkKHUpO0Y9YjY0ZCh2KTt2YXIgVj1wYXJzZUludChhLmdldEF0dHJpYnV0ZSgic2NoZWR1bGluZy1mYWxsYmFjayIpKSxPPXBhcnNlSW50KGEuZ2V0QXR0cmlidXRlKCJnbXQiKSk7aWYodS5pbmNsdWRlcygiLSIpfHxGLmluY2x1ZGVzKCItIikpUD1ZKHUpK08sSz1ZKEYpK087ZWxzZSB2YXIgUD1RKHUpLEs9UShGKTtQPz89MDtLPz89MDt2YXIgVz1iNjRkKHkpLnNwbGl0KCIsIik7eT1hLmdldEF0dHJpYnV0ZSgic2NoZWR1bGluZy10eXBlIik7dmFyIEQ9KG5ldyBEYXRlKS5nZXRUaW1lKCkrTzt2PW5ldyBEYXRlKEQpO3ZhciBHPXYuZ2V0RGF5KCk7MD09Rz9HPTY6Ry0tO3UuaW5jbHVkZXMoIi0iKXx8Ri5pbmNsdWRlcygiLSIpfHwodT0obmV3IERhdGUodi5nZXRGdWxsWWVhcigpLHYuZ2V0TW9udGgoKSx2LmdldERhdGUoKSkpLmdldFRpbWUoKStPLEQtPXUsMD5EJiYoRCs9ODY0RTUpKTtzY2hlZHVsaW5nX3N0YXJ0X2RhdGVfb2s9RD49UDtzY2hlZHVsaW5nX2VuZF9kYXRlX29rPTA9PUt8fEQ8Szt1PXNjaGVkdWxpbmdfc3RhcnRfZGF0ZV9vayYmc2NoZWR1bGluZ19lbmRfZGF0ZV9vayYmVy5pbmNsdWRlcyhHLnRvU3RyaW5nKCkpO3N3aXRjaCh5KXtjYXNlIkIiOnU9IXV9dXx8KGw9ITEpO3ZhciBsYT12LnRvSVNPU3RyaW5nKCkuc3BsaXQoIi4iKVswXS5yZXBsYWNlKCJUIiwiICIpO3k9WChhLCIuYWktZGVidWctYmFyLmFpLWRlYnVnLXNjaGVkdWxpbmciKTswIT15Lmxlbmd0aCYmeS5mb3JFYWNoKChmLGgpPT57aD1mLnF1ZXJ5U2VsZWN0b3IoIi5haS1kZWJ1Zy1uYW1lLmFpLXNjaGVkdWxpbmctaW5mbyIpO251bGwhPWgmJihoLnRleHRDb250ZW50PWxhKyIgIitHKyIgY3VycmVudF90aW1lOiAiK01hdGguZmxvb3IoRC50b1N0cmluZygpLzFFMykrIiAgc3RhcnRfZGF0ZToiK01hdGguZmxvb3IoUC8xRTMpLnRvU3RyaW5nKCkrIj0+IitzY2hlZHVsaW5nX3N0YXJ0X2RhdGVfb2sudG9TdHJpbmcoKSsiIGVuZF9kYXRlOiIrTWF0aC5mbG9vcihLLzFFMykudG9TdHJpbmcoKSsiPT4iK3NjaGVkdWxpbmdfZW5kX2RhdGVfb2sudG9TdHJpbmcoKSsiIGRheXM6IitXLnRvU3RyaW5nKCkrIj0+IitXLmluY2x1ZGVzKEcudG9TdHJpbmcoKSkudG9TdHJpbmcoKSk7aD1mLnF1ZXJ5U2VsZWN0b3IoIi5haS1kZWJ1Zy1uYW1lLmFpLXNjaGVkdWxpbmctc3RhdHVzIik7bnVsbCE9aCYmKGgudGV4dENvbnRlbnQ9bD9haV9mcm9udC52aXNpYmxlOmFpX2Zyb250LmhpZGRlbik7bHx8MD09Vnx8KGYuY2xhc3NMaXN0LnJlbW92ZSgiYWktZGVidWctc2NoZWR1bGluZyIpLGYuY2xhc3NMaXN0LmFkZCgiYWktZGVidWctZmFsbGJhY2siKSxoPWYucXVlcnlTZWxlY3RvcigiLmFpLWRlYnVnLW5hbWUuYWktc2NoZWR1bGluZy1zdGF0dXMiKSxudWxsIT1oJiYoaC50ZXh0Q29udGVudD1haV9mcm9udC5mYWxsYmFjaysiID0gIitWKSl9KX1pZihwfHwhbCYmTilyZXR1cm4hMDthLnN0eWxlLnZpc2liaWxpdHk9IiI7YS5zdHlsZS5wb3NpdGlvbj0iIjthLnN0eWxlLndpZHRoPSIiO2Euc3R5bGUuaGVpZ2h0PSIiO2Euc3R5bGUuekluZGV4PSIiO2lmKGwpe2lmKG51bGwhPWMmJihjLnN0eWxlLnZpc2liaWxpdHk9IiIsYy5jbGFzc0xpc3QuY29udGFpbnMoImFpLXJlbW92ZS1wb3NpdGlvbiIpJiYoYy5zdHlsZS5wb3NpdGlvbj0iIikpLGEuaGFzQXR0cmlidXRlKCJkYXRhLWNvZGUiKSl7cD1iNjRkKGEuZGF0YXNldC5jb2RlKTt1PWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7Zz0hMDt0cnl7SD11LmNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChwKX1jYXRjaChmKXtnPSExfWcmJihudWxsIT1hLmNsb3Nlc3QoImhlYWQiKT8oYS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShILGEubmV4dFNpYmxpbmcpLGEucmVtb3ZlKCkpOmEuYXBwZW5kKEgpKTtkYShhKX19ZWxzZSBpZihnJiYhdSYmMCE9Vil7bnVsbCE9YyYmKGMuc3R5bGUudmlzaWJpbGl0eT0iIixjLmNsYXNzTGlzdC5jb250YWlucygiYWktcmVtb3ZlLXBvc2l0aW9uIikmJmMuY3NzKHtwb3NpdGlvbjoiIn0pKTtwPWZhKGEsIi5haS1mYWxsYmFjayIpOzAhPXAubGVuZ3RoJiZwLmZvckVhY2goKGYsaCk9PntmLmNsYXNzTGlzdC5yZW1vdmUoImFpLWZhbGxiYWNrIil9KTtpZihhLmhhc0F0dHJpYnV0ZSgiZGF0YS1mYWxsYmFjay1jb2RlIikpe3A9YjY0ZChhLmRhdGFzZXQuZmFsbGJhY2tDb2RlKTt1PWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7Zz0hMDt0cnl7dmFyIEg9dS5jcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQocCl9Y2F0Y2goZil7Zz0hMX1nJiZhLmFwcGVuZChIKTtkYShhKX1lbHNlIGEuc3R5bGUuZGlzcGxheT0ibm9uZSIsbnVsbCE9YyYmbnVsbD09Yy5xdWVyeVNlbGVjdG9yKCIuYWktZGVidWctYmxvY2siKSYmYy5oYXNBdHRyaWJ1dGUoInN0eWxlIikmJi0xPT1jLmdldEF0dHJpYnV0ZSgic3R5bGUiKS5pbmRleE9mKCJoZWlnaHQ6IikmJihjLnN0eWxlLmRpc3BsYXk9Im5vbmUiKTtudWxsIT1jJiZjLmhhc0F0dHJpYnV0ZSgiZGF0YS1haSIpJiYoYy5nZXRBdHRyaWJ1dGUoImRhdGEtYWkiKSxhLmhhc0F0dHJpYnV0ZSgiZmFsbGJhY2stdHJhY2tpbmciKSYmKEg9YS5nZXRBdHRyaWJ1dGUoImZhbGxiYWNrLXRyYWNraW5nIiksYy5zZXRBdHRyaWJ1dGUoImRhdGEtYWktIithLmdldEF0dHJpYnV0ZSgiZmFsbGJhY2tfbGV2ZWwiKSxIKSkpfWVsc2UgYS5zdHlsZS5kaXNwbGF5PSJub25lIixudWxsIT1jJiYoYy5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtYWkiKSxjLmNsYXNzTGlzdC5yZW1vdmUoImFpLXRyYWNrIiksbnVsbCE9Yy5xdWVyeVNlbGVjdG9yKCIuYWktZGVidWctYmxvY2siKT8oYy5zdHlsZS52aXNpYmlsaXR5PSIiLGMuY2xhc3NMaXN0LnJlbW92ZSgiYWktY2xvc2UiKSxjLmNsYXNzTGlzdC5jb250YWlucygiYWktcmVtb3ZlLXBvc2l0aW9uIikmJihjLnN0eWxlLnBvc2l0aW9uPSIiKSk6Yy5oYXNBdHRyaWJ1dGUoInN0eWxlIikmJi0xPT1jLmdldEF0dHJpYnV0ZSgic3R5bGUiKS5pbmRleE9mKCJoZWlnaHQ6IikmJihjLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSk7YS5zZXRBdHRyaWJ1dGUoImRhdGEtY29kZSIsIiIpO2Euc2V0QXR0cmlidXRlKCJkYXRhLWZhbGxiYWNrLWNvZGUiLCIiKTtudWxsIT1jJiZjLmNsYXNzTGlzdC5yZW1vdmUoImFpLWxpc3QtYmxvY2siKX0pfX07ZnVuY3Rpb24gZWEoYil7Yj1gOyAke2RvY3VtZW50LmNvb2tpZX1gLnNwbGl0KGA7ICR7Yn09YCk7aWYoMj09PWIubGVuZ3RoKXJldHVybiBiLnBvcCgpLnNwbGl0KCI7Iikuc2hpZnQoKX0KZnVuY3Rpb24gbWEoYixlLG4pe2VhKGIpJiYoZG9jdW1lbnQuY29va2llPWIrIj0iKyhlPyI7cGF0aD0iK2U6IiIpKyhuPyI7ZG9tYWluPSIrbjoiIikrIjtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDEgR01UIil9ZnVuY3Rpb24gbShiKXtlYShiKSYmKG1hKGIsIi8iLHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSksZG9jdW1lbnQuY29va2llPWIrIj07IFBhdGg9LzsgRXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAxIEdNVDsiKX0oZnVuY3Rpb24oYil7ImNvbXBsZXRlIj09PWRvY3VtZW50LnJlYWR5U3RhdGV8fCJsb2FkaW5nIiE9PWRvY3VtZW50LnJlYWR5U3RhdGUmJiFkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGw/YigpOmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGIpfSkoZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YWlfcHJvY2Vzc19saXN0cygpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtaKCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGFpX2xvYWRfYmxvY2tzKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbXBsekVuYWJsZVNjcmlwdHMiLGUpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNtcGx6X2V2ZW50X21hcmtldGluZyIsZSk7ZnVuY3Rpb24gZShuKXsiY21wbHpFbmFibGVTY3JpcHRzIiE9bi50eXBlJiYiYWxsIiE9PW4uY29uc2VudExldmVsfHxhaV9sb2FkX2Jsb2NrcygpfWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNtcGx6X2VuYWJsZV9jYXRlZ29yeSIsZnVuY3Rpb24obil7Im1hcmtldGluZyI9PT1uLmRldGFpbC5jYXRlZ29yeSYmYWlfbG9hZF9ibG9ja3MoKX0pfX0sNTApO3ZhciBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5haS1kZWJ1Zy1wYWdlLXR5cGUiKTtudWxsIT1iJiZiLmFkZEV2ZW50TGlzdGVuZXIoImRibGNsaWNrIixlPT57ZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWktaWFiLXRjZi1zdGF0dXMiKTtudWxsIT1lJiYoZS50ZXh0Q29udGVudD0iQ09OU0VOVCBDT09LSUVTIik7ZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWktaWFiLXRjZi1iYXIiKTtudWxsIT1lJiYoZS5zdHlsZS5kaXNwbGF5PSJibG9jayIpfSk7Yj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWktaWFiLXRjZi1iYXIiKTtudWxsIT1iJiZiLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixlPT57bSgiZXVjb25zZW50LXYyIik7bSgiX19seEdfX2NvbnNlbnRfX3YyIik7bSgiX19seEdfX2NvbnNlbnRfX3YyX2RhaXN5Yml0Iik7bSgiX19seEdfX2NvbnNlbnRfX3YyX2dkYWlzeWJpdCIpO20oIkNvb2tpZUxhd0luZm9Db25zZW50Iik7bSgiY29va2llbGF3aW5mby1jaGVja2JveC1hZHZlcnRpc2VtZW50Iik7bSgiY29va2llbGF3aW5mby1jaGVja2JveC1hbmFseXRpY3MiKTttKCJjb29raWVsYXdpbmZvLWNoZWNrYm94LW5lY2Vzc2FyeSIpO20oImNvbXBsaWFuel9wb2xpY3lfaWQiKTttKCJjb21wbGlhbnpfY29uc2VudF9zdGF0dXMiKTttKCJjbXBsel9tYXJrZXRpbmciKTttKCJjbXBsel9jb25zZW50X3N0YXR1cyIpO20oImNtcGx6X3ByZWZlcmVuY2VzIik7bSgiY21wbHpfc3RhdGlzdGljcy1hbm9ueW1vdXMiKTttKCJjbXBsel9jaG9pY2UiKTttKCJjbXBsel9iYW5uZXItc3RhdHVzIik7bSgiY21wbHpfZnVuY3Rpb25hbCIpO20oImNtcGx6X3BvbGljeV9pZCIpO20oImNtcGx6X3N0YXRpc3RpY3MiKTttKCJtb292ZV9nZHByX3BvcHVwIik7bSgicmVhbF9jb29raWVfYmFubmVyLWJsb2c6MS10Y2YiKTttKCJyZWFsX2Nvb2tpZV9iYW5uZXItYmxvZzoxIik7ZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWktaWFiLXRjZi1zdGF0dXMiKTtudWxsIT1lJiYoZS50ZXh0Q29udGVudD0iQ09OU0VOVCBDT09LSUVTIERFTEVURUQiKX0pfSw1KX0pO2Z1bmN0aW9uIGRhKGIpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXsiZnVuY3Rpb24iPT10eXBlb2YgYWlfcHJvY2Vzc19yb3RhdGlvbnNfaW5fZWxlbWVudCYmYWlfcHJvY2Vzc19yb3RhdGlvbnNfaW5fZWxlbWVudChiKTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfcHJvY2Vzc19saXN0cyYmYWlfcHJvY2Vzc19saXN0cygpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9wcm9jZXNzX2lwX2FkZHJlc3NlcyYmYWlfcHJvY2Vzc19pcF9hZGRyZXNzZXMoKTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfcHJvY2Vzc19maWx0ZXJfaG9va3MmJmFpX3Byb2Nlc3NfZmlsdGVyX2hvb2tzKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX2FkYl9wcm9jZXNzX2Jsb2NrcyYmYWlfYWRiX3Byb2Nlc3NfYmxvY2tzKGIpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9wcm9jZXNzX2ltcHJlc3Npb25zJiYxPT1haV90cmFja2luZ19maW5pc2hlZCYmYWlfcHJvY2Vzc19pbXByZXNzaW9ucygpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9pbnN0YWxsX2NsaWNrX3RyYWNrZXJzJiYxPT1haV90cmFja2luZ19maW5pc2hlZCYmYWlfaW5zdGFsbF9jbGlja190cmFja2VycygpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9pbnN0YWxsX2Nsb3NlX2J1dHRvbnMmJmFpX2luc3RhbGxfY2xvc2VfYnV0dG9ucyhkb2N1bWVudCl9LDUpfWZ1bmN0aW9uIGlhKGIpe3ZhciBlPWI/Yi5zcGxpdCgiPyIpWzFdOndpbmRvdy5sb2NhdGlvbi5zZWFyY2guc2xpY2UoMSk7Yj17fTtpZihlKXtlPWUuc3BsaXQoIiMiKVswXTtlPWUuc3BsaXQoIiYiKTtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHo9ZVtuXS5zcGxpdCgiPSIpLEM9dm9pZCAwLHg9elswXS5yZXBsYWNlKC9cW1xkKlxdLyxmdW5jdGlvbihMKXtDPUwuc2xpY2UoMSwtMSk7cmV0dXJuIiJ9KTt6PSJ1bmRlZmluZWQiPT09dHlwZW9mIHpbMV0/IiI6elsxXTt4PXgudG9Mb3dlckNhc2UoKTt6PXoudG9Mb3dlckNhc2UoKTtiW3hdPygic3RyaW5nIj09PXR5cGVvZiBiW3hdJiYoYlt4XT1bYlt4XV0pLCJ1bmRlZmluZWQiPT09dHlwZW9mIEM/Ylt4XS5wdXNoKHopOmJbeF1bQ109eik6Ylt4XT16fX1yZXR1cm4gYn19O2FpX2pzX2NvZGU9dHJ1ZTs=">