MyJAV

MyJAV:提供中文详情体验,并联动个人 JAV 管理与磁力资源查询

Vous devrez installer une extension telle que Tampermonkey, Greasemonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Userscripts pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey pour installer ce script.

Vous devrez installer une extension de gestionnaire de script utilisateur pour installer ce script.

(J'ai déjà un gestionnaire de scripts utilisateur, laissez-moi l'installer !)

Advertisement:

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

(J'ai déjà un gestionnaire de style utilisateur, laissez-moi l'installer!)

Advertisement:

// ==UserScript==
// @name         MyJAV
// @author       thinkernicholas
// @namespace    https://myav.men/
// @version      0.1.9
// @description  MyJAV:提供中文详情体验,并联动个人 JAV 管理与磁力资源查询
// @match        https://www.javbus.com/*
// @match        https://javdb.com/*
// @match        https://www.javdb.com/*
// @match        https://myav.men/v/*
// @match        http://localhost:3456/v/*
// @match        https://subtitlecat.com/*
// @run-at       document-idle
// @require      https://update.greasyfork.org/scripts/515994/1478507/gh_2215_make_GM_xhr_more_parallel_again.js
// @grant        GM_getValue
// @grant        GM_setValue
// @grant        GM_registerMenuCommand
// @grant        GM_xmlhttpRequest
// @connect      localhost
// @connect      127.0.0.1
// @connect      myav.men
// @connect      btdig.com
// @connect      www.btdig.com
// @connect      sukebei.nyaa.si
// @connect      xunlei.com
// @connect      api-shoulei-ssl.xunlei.com
// @connect      subtitlecat.com
// @connect      *
// ==/UserScript==

// Compiled from tampermonkey/src/main.ts. Do not edit this file directly.
(() => {
  const payload = 'InVzZSBzdHJpY3QiO3ZhciBNeUpBVlVzZXJzY3JpcHQ9KCgpPT57dmFyIG90PSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IixpdD0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktXy4iLGVlPSJqYXZzdGFzaC1wdWJsaWMtdmlldyI7ZnVuY3Rpb24gc3QodCl7dmFyIGUscjtyZXR1cm4ocj0oZT1nbG9iYWxUaGlzLnByb2Nlc3MpPT1udWxsP3ZvaWQgMDplLmVudik9PW51bGw/dm9pZCAwOnJbdF19ZnVuY3Rpb24gbmUoKXtyZXR1cm4gc3QoIk5FWFRfUFVCTElDX1BVQkxJQ19DT0RFX09CRlVTQ0FUSU9OX0tFWSIpfHxzdCgiUFVCTElDX0NPREVfT0JGVVNDQVRJT05fS0VZIil8fGVlfWZ1bmN0aW9uIHJlKHQpe2xldCBuPTIxNjYxMzYyNjE7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKz0xKW5ePXQuY2hhckNvZGVBdChlKSxuPU1hdGguaW11bChuLDE2Nzc3NjE5KTtyZXR1cm4gbj4+PjB9ZnVuY3Rpb24gb2UodCl7bGV0IG49dHx8MTgzMTU2NTgxMztyZXR1cm4oKT0+KG49TWF0aC5pbXVsKG5ebj4+PjE1LG58MSksbl49bitNYXRoLmltdWwobl5uPj4+NyxufDYxKSwoKG5ebj4+PjE0KT4+PjApLzQyOTQ5NjcyOTYpfWZ1bmN0aW9uIHNlKCl7bGV0IHQ9W107Zm9yKGxldCBlIG9mIG90KWZvcihsZXQgciBvZiBvdCl0LnB1c2goYCR7ZX0ke3J9YCk7bGV0IG49b2UocmUoYCR7bmUoKX06cGFpcnNgKSk7Zm9yKGxldCBlPXQubGVuZ3RoLTE7ZT4wO2UtPTEpe2xldCByPU1hdGguZmxvb3IobigpKihlKzEpKTtbdFtlXSx0W3JdXT1bdFtyXSx0W2VdXX1yZXR1cm4gdH12YXIgbHQ9c2UoKSxpZT1uZXcgTWFwKGl0LnNwbGl0KCIiKS5tYXAoKHQsbik9Plt0LGx0W25dXSkpLGxlPW5ldyBNYXAoaXQuc3BsaXQoIiIpLm1hcCgodCxuKT0+W2x0W25dLHRdKSk7ZnVuY3Rpb24gYXQodCl7cmV0dXJuIHQuc3BsaXQoIiIpLm1hcChuPT57dmFyIGU7cmV0dXJuKGU9aWUuZ2V0KG4pKSE9bnVsbD9lOm59KS5qb2luKCIiKX1mdW5jdGlvbiBjdCh0KXtpZighdC50cmltKCl8fHQubGVuZ3RoJTIhPT0wfHwvW15BLVphLXpdLy50ZXN0KHQpKXJldHVybiBudWxsO2xldCBuPSIiO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSs9Mil7bGV0IHI9dC5zbGljZShlLGUrMiksbz1sZS5nZXQocik7aWYoIW8pcmV0dXJuIG51bGw7bis9b31yZXR1cm4gbn12YXIgZj0iaHR0cHM6Ly9teWF2Lm1lbiIsej0iaHR0cDovL2xvY2FsaG9zdDozNDU2IixkdD0iamF2c3Rhc2hfbG9va3VwX2NhY2hlX3YxOiIsdXQ9MTAwODAqNjAqMWUzLHB0PSIvYXBpL3RyYW5zbGF0aW9ucyIsbXQ9Ii9hcGkvYnJvd3Nlci9tYWduZXRzIix5dD0iL2FwaS9hZG1pbi9pdGVtLXRhZ3MiO3ZhciBhZT0vXGIoW0EtWmEtejAtOV17MiwxMH0tXGR7Miw2fSlcYi8sY2U9L15odHRwcz86XC9cLyg/Om15YXZcLm1lbnxsb2NhbGhvc3Q6MzQ1NilcL3ZcL1tBLVphLXowLTldKyg/OlsvPyNdLiopPyQvaTtmdW5jdGlvbiBwKHQpe3JldHVybiBTdHJpbmcodHx8IiIpLnRyaW0oKS50b1VwcGVyQ2FzZSgpfWZ1bmN0aW9uIHEodCl7cmV0dXJuIFN0cmluZyh0fHwiIikudHJpbSgpLnJlcGxhY2UoL1wvKyQvLCIiKX1mdW5jdGlvbiBqKHQsbj1mKXtsZXQgZT1xKHQpO2lmKGUpcmV0dXJuW2VdO2xldCByPXEobik7cmV0dXJuIHI9PT16fHxyPT09Zj9bcl06W3osZl19ZnVuY3Rpb24gZ3QodCl7bGV0IG49U3RyaW5nKHQpLm1hdGNoKC9eaHR0cHM/OlwvXC93d3dcLmphdmJ1c1wuY29tXC8oW0EtWmEtejAtOV17MiwxMH0tXGR7Miw2fSkoPzpbLz8jXS4qKT8kL2kpO3JldHVybiBuP3AoblsxXSk6bnVsbH1mdW5jdGlvbiBEKHQpe3JldHVybi9eaHR0cHM/OlwvXC8oPzp3d3dcLik/amF2ZGJcLmNvbVwvdlwvW0EtWmEtejAtOV0rKD86Wy8/I10uKik/JC9pLnRlc3QoU3RyaW5nKHQpKX1mdW5jdGlvbiB3KHQpe3JldHVybiBjZS50ZXN0KFN0cmluZyh0KSl9ZnVuY3Rpb24gZnQodCl7aWYoIXcodCkpcmV0dXJuIG51bGw7bGV0IG49U3RyaW5nKHQpLm1hdGNoKC9cL3ZcLyhbQS1aYS16MC05XSspKD86Wy8/I10uKik/JC9pKSxlPW4hPW51bGwmJm5bMV0/Y3QoblsxXSk6bnVsbDtyZXR1cm4gZT9wKGUpOm51bGx9ZnVuY3Rpb24gRyh0KXtyZXR1cm4gdyh0KX1mdW5jdGlvbiB4KHQpe2xldCBuPVN0cmluZyh0fHwiIikubWF0Y2goYWUpO3JldHVybiBuP3AoblsxXSk6bnVsbH1mdW5jdGlvbiBIKHQsbil7cmV0dXJuIG5ldyBVUkwoYCR7cHR9LyR7ZW5jb2RlVVJJQ29tcG9uZW50KHAobikpfWAsdCkudG9TdHJpbmcoKX1mdW5jdGlvbiBGKHQsbil7bGV0IGU9bmV3IFVSTChtdCx0KTtyZXR1cm4gbiYmZS5zZWFyY2hQYXJhbXMuc2V0KCJjb2RlIixwKG4pKSxlLnRvU3RyaW5nKCl9ZnVuY3Rpb24gdih0LG4pe2xldCBlPW5ldyBVUkwoeXQsdCk7cmV0dXJuIG4mJmUuc2VhcmNoUGFyYW1zLnNldCgiY29kZSIscChuKSksZS50b1N0cmluZygpfWZ1bmN0aW9uIEkodCl7cmV0dXJuIGR0K3AodCl9ZnVuY3Rpb24geHQodCxuPURhdGUubm93KCkpe3JldHVybntjb2RlOnAodC5jb2RlKSx0aXRsZTp0LnRpdGxlLGRlc2NyaXB0aW9uOnQuZGVzY3JpcHRpb24sY2FjaGVkQXQ6bixleHBpcmVzQXQ6bit1dH19ZnVuY3Rpb24gaHQodCxuPURhdGUubm93KCkpe2lmKCF0fHx0eXBlb2YgdCE9Im9iamVjdCIpcmV0dXJuIG51bGw7bGV0IGU9dDtyZXR1cm4gdHlwZW9mIGUuY29kZSE9InN0cmluZyJ8fHR5cGVvZiBlLnRpdGxlIT0ic3RyaW5nInx8dHlwZW9mIGUuZGVzY3JpcHRpb24hPSJzdHJpbmcifHx0eXBlb2YgZS5jYWNoZWRBdCE9Im51bWJlciJ8fHR5cGVvZiBlLmV4cGlyZXNBdCE9Im51bWJlciJ8fGUuZXhwaXJlc0F0PD1uP251bGw6e2NvZGU6cChlLmNvZGUpLHRpdGxlOmUudGl0bGUsZGVzY3JpcHRpb246ZS5kZXNjcmlwdGlvbixjYWNoZWRBdDplLmNhY2hlZEF0LGV4cGlyZXNBdDplLmV4cGlyZXNBdH19ZnVuY3Rpb24gYnQoKXtsZXQgdD1BcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi52aWRlby1kZXRhaWwgLm1vdmllLXBhbmVsLWluZm8gLnBhbmVsLWJsb2NrIikpO2ZvcihsZXQgbiBvZiB0KXtsZXQgZT1uLnF1ZXJ5U2VsZWN0b3IoInN0cm9uZyIpLHI9U3RyaW5nKChlPT1udWxsP3ZvaWQgMDplLnRleHRDb250ZW50KXx8IiIpLnRyaW0oKTtpZihyIT09Ilx1NzU2QVx1ODY1RjoiJiZyIT09Ilx1NzU2QVx1NTNGNzoiJiZyIT09Ilx1NzU2QVx1NTNGNyIpY29udGludWU7bGV0IG89bi5xdWVyeVNlbGVjdG9yKCIudmFsdWUiKTtpZihvKXJldHVybiBvfXJldHVybiBudWxsfWZ1bmN0aW9uIGRlKCl7bGV0IHQ9YnQoKTtyZXR1cm4gdD94KHQudGV4dENvbnRlbnR8fCIiKTpudWxsfWZ1bmN0aW9uIHVlKHQpe2xldCBuPVN0cmluZyh0fHwiIikudHJpbSgpLnJlcGxhY2UoL1vvvJo6XSskLywiIik7cmV0dXJuIG49PT0iXHU4QjU4XHU1MjI1XHU3OEJDInx8bj09PSJcdThCQzZcdTUyMkJcdTc4MDEifWZ1bmN0aW9uIHBlKHQsbil7cmV0dXJuIEFycmF5LmZyb20odC5xdWVyeVNlbGVjdG9yQWxsKCIqIikpLmZpbmQocj0+eChyLnRleHRDb250ZW50fHwiIik9PT1uKXx8bnVsbH1mdW5jdGlvbiBMKCl7cmV0dXJuIEQod2luZG93LmxvY2F0aW9uLmhyZWYpP2RlKCl8fHgoZG9jdW1lbnQuYm9keS5pbm5lclRleHR8fCIiKTp3KHdpbmRvdy5sb2NhdGlvbi5ocmVmKT9mdCh3aW5kb3cubG9jYXRpb24uaHJlZil8fHgoZG9jdW1lbnQuYm9keS5pbm5lclRleHR8fCIiKTpndCh3aW5kb3cubG9jYXRpb24uaHJlZil8fHgoZG9jdW1lbnQuYm9keS5pbm5lclRleHR8fCIiKX1mdW5jdGlvbiBSKHQpe2lmKEQod2luZG93LmxvY2F0aW9uLmhyZWYpKXtsZXQgbz1idCgpO2lmKG8mJnAoby50ZXh0Q29udGVudHx8IiIpLmluY2x1ZGVzKHQpKXJldHVybiBvfWlmKHcod2luZG93LmxvY2F0aW9uLmhyZWYpKXtsZXQgcz1BcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvblt0aXRsZT0iXHU3MEI5XHU1MUZCXHU1OTBEXHU1MjM2XHU3NTZBXHU1M0Y3Il0nKSkuZmluZChpPT5wKGkudGV4dENvbnRlbnR8fCIiKT09PXQpO2lmKHMpcmV0dXJuIHN9bGV0IG49QXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuaW5mbyBwIikpO2ZvcihsZXQgbyBvZiBuKXtsZXQgcz1vLnF1ZXJ5U2VsZWN0b3IoInNwYW4uaGVhZGVyIiksaT1TdHJpbmcoKHM9PW51bGw/dm9pZCAwOnMudGV4dENvbnRlbnQpfHwiIikudHJpbSgpO2lmKCF1ZShpKSljb250aW51ZTtsZXQgbD1BcnJheS5mcm9tKG8ucXVlcnlTZWxlY3RvckFsbCgic3BhbiIpKS5maW5kKHU9PngodS50ZXh0Q29udGVudHx8IiIpPT09dCk7aWYobClyZXR1cm4gbH1mb3IobGV0IG8gb2YgbilpZih4KG8udGV4dENvbnRlbnR8fCIiKT09PXQpcmV0dXJuIHBlKG8sdCl8fG87bGV0IHI9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudC5ib2R5LE5vZGVGaWx0ZXIuU0hPV19URVhULHthY2NlcHROb2RlKG8pe2xldCBzPVN0cmluZyhvLnRleHRDb250ZW50fHwiIik7aWYoIXN8fCFzLmluY2x1ZGVzKHQpKXJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9TS0lQO2xldCBpPW8ucGFyZW50RWxlbWVudDtpZighaSlyZXR1cm4gTm9kZUZpbHRlci5GSUxURVJfU0tJUDtsZXQgYT1pLnRhZ05hbWU7cmV0dXJuIGE9PT0iU0NSSVBUInx8YT09PSJTVFlMRSJ8fGE9PT0iTk9TQ1JJUFQiP05vZGVGaWx0ZXIuRklMVEVSX1NLSVA6Tm9kZUZpbHRlci5GSUxURVJfQUNDRVBUfX0pLm5leHROb2RlKCk7cmV0dXJuIHI/ci5wYXJlbnRFbGVtZW50Om51bGx9dmFyIE09ImphdnN0YXNoX3BlcnNvbmFsX2FwaV9rZXkiO3ZhciBLPSJqYXZzdGFzaC1sb29rdXAtYnV0dG9uIixnPSJqYXZzdGFzaC1sb29rdXAtcGFuZWwiLEN0PS/kuK3mlod85a2X5bmVfOS4reWtl3woLXxfKWMoPyFkKS9pLEV0PS9eRkMyLS9pO2Z1bmN0aW9uIEMoKXtyZXR1cm4gU3RyaW5nKEdNX2dldFZhbHVlKE0sIiIpfHwiIikudHJpbSgpfWZ1bmN0aW9uIFN0KCl7cmV0dXJuIGZ9ZnVuY3Rpb24gVHQoKXtyZXR1cm4gaihmLGYpfWZ1bmN0aW9uIHd0KHQpe2xldCBuPUkodCksZT1HTV9nZXRWYWx1ZShuLG51bGwpLHI9aHQoZSk7cmV0dXJuIHJ8fChlIT09bnVsbCYmR01fc2V0VmFsdWUobixudWxsKSxudWxsKX1mdW5jdGlvbiB2dCh0KXtsZXQgbj14dCh0KTtyZXR1cm4gR01fc2V0VmFsdWUoSShuLmNvZGUpLG4pLG59dmFyIFg9IjAuMS45Ijt2YXIgQXQ9ImxvY2FsaG9zdCwgMTI3LjAuMC4xLCBteWF2Lm1lbiwgYnRkaWcuY29tLCB3d3cuYnRkaWcuY29tLCBzdWtlYmVpLm55YWEuc2ksIHh1bmxlaS5jb20sIGFwaS1zaG91bGVpLXNzbC54dW5sZWkuY29tLCBzdWJ0aXRsZWNhdC5jb20sICoiLEtlPWAvLyA9PVVzZXJTY3JpcHQ9PQovLyBAbmFtZSAgICAgICAgIE15SkFWCi8vIEBhdXRob3IgICAgICAgdGhpbmtlcm5pY2hvbGFzCi8vIEBuYW1lc3BhY2UgICAgaHR0cHM6Ly9teWF2Lm1lbi8KLy8gQHZlcnNpb24gICAgICAke1h9Ci8vIEBkZXNjcmlwdGlvbiAgTXlKQVZcdUZGMUFcdTYzRDBcdTRGOUJcdTRFMkRcdTY1ODdcdThCRTZcdTYwQzVcdTRGNTNcdTlBOENcdUZGMENcdTVFNzZcdTgwNTRcdTUyQThcdTRFMkFcdTRFQkEgSkFWIFx1N0JBMVx1NzQwNlx1NEUwRVx1NzhDMVx1NTI5Qlx1OEQ0NFx1NkU5MFx1NjdFNVx1OEJFMgovLyBAbWF0Y2ggICAgICAgIGh0dHBzOi8vd3d3LmphdmJ1cy5jb20vKgovLyBAbWF0Y2ggICAgICAgIGh0dHBzOi8vamF2ZGIuY29tLyoKLy8gQG1hdGNoICAgICAgICBodHRwczovL3d3dy5qYXZkYi5jb20vKgovLyBAbWF0Y2ggICAgICAgIGh0dHBzOi8vbXlhdi5tZW4vdi8qCi8vIEBtYXRjaCAgICAgICAgaHR0cDovL2xvY2FsaG9zdDozNDU2L3YvKgovLyBAbWF0Y2ggICAgICAgIGh0dHBzOi8vc3VidGl0bGVjYXQuY29tLyoKLy8gQHJ1bi1hdCAgICAgICBkb2N1bWVudC1pZGxlCi8vIEByZXF1aXJlICAgICAgaHR0cHM6Ly91cGRhdGUuZ3JlYXN5Zm9yay5vcmcvc2NyaXB0cy81MTU5OTQvMTQ3ODUwNy9naF8yMjE1X21ha2VfR01feGhyX21vcmVfcGFyYWxsZWxfYWdhaW4uanMKLy8gQGdyYW50ICAgICAgICBHTV9nZXRWYWx1ZQovLyBAZ3JhbnQgICAgICAgIEdNX3NldFZhbHVlCi8vIEBncmFudCAgICAgICAgR01fcmVnaXN0ZXJNZW51Q29tbWFuZAovLyBAZ3JhbnQgICAgICAgIEdNX3htbGh0dHBSZXF1ZXN0Ci8vIEBjb25uZWN0ICAgICAgbG9jYWxob3N0Ci8vIEBjb25uZWN0ICAgICAgMTI3LjAuMC4xCi8vIEBjb25uZWN0ICAgICAgbXlhdi5tZW4KLy8gQGNvbm5lY3QgICAgICBidGRpZy5jb20KLy8gQGNvbm5lY3QgICAgICB3d3cuYnRkaWcuY29tCi8vIEBjb25uZWN0ICAgICAgc3VrZWJlaS5ueWFhLnNpCi8vIEBjb25uZWN0ICAgICAgeHVubGVpLmNvbQovLyBAY29ubmVjdCAgICAgIGFwaS1zaG91bGVpLXNzbC54dW5sZWkuY29tCi8vIEBjb25uZWN0ICAgICAgc3VidGl0bGVjYXQuY29tCi8vIEBjb25uZWN0ICAgICAgKgovLyA9PS9Vc2VyU2NyaXB0PT1gO3ZhciBrdD0iamF2c3Rhc2gtZGlhZ25vc3RpY3MtZGlhbG9nIjtmdW5jdGlvbiB5ZSgpe3ZhciBzLGksYSxsO2xldCB0PUwoKSxuPUFycmF5LmlzQXJyYXkoKHM9R01faW5mbz09bnVsbD92b2lkIDA6R01faW5mby5zY3JpcHQpPT1udWxsP3ZvaWQgMDpzLmNvbm5lY3RzKT9HTV9pbmZvLnNjcmlwdC5jb25uZWN0czpbXSxlPUFycmF5LmlzQXJyYXkoKGk9R01faW5mbz09bnVsbD92b2lkIDA6R01faW5mby5zY3JpcHQpPT1udWxsP3ZvaWQgMDppLm1hdGNoZXMpP0dNX2luZm8uc2NyaXB0Lm1hdGNoZXM6W10scj1BcnJheS5pc0FycmF5KChhPUdNX2luZm89PW51bGw/dm9pZCAwOkdNX2luZm8uc2NyaXB0KT09bnVsbD92b2lkIDA6YS5ncmFudHMpP0dNX2luZm8uc2NyaXB0LmdyYW50czpbXSxvPXQ/Uih0KTpudWxsO3JldHVybltgXHU2RTkwXHU3ODAxXHU3MjQ4XHU2NzJDOiAke1h9YCxgXHU4RkQwXHU4ODRDXHU2NUY2XHU3MjQ4XHU2NzJDOiAkeygobD1HTV9pbmZvPT1udWxsP3ZvaWQgMDpHTV9pbmZvLnNjcmlwdCk9PW51bGw/dm9pZCAwOmwudmVyc2lvbil8fCJcdTY3MkFcdTc3RTUifWAsYEdNX3hoclx1ODg2NVx1NEUwMTogJHsiXHU1REYyXHU1MTg1XHU3RjZFIn1gLGBcdTVGNTNcdTUyNERcdTk4NzVcdTk3NjI6ICR7d2luZG93LmxvY2F0aW9uLmhyZWZ9YCxgXHU1RjUzXHU1MjREXHU0RUUzXHU3NDA2XHU1NzMwXHU1NzQwOiAke1N0KCl9YCxgXHU2RTkwXHU3ODAxQGNvbm5lY3Q6ICR7QXR9YCxgXHU4RkQwXHU4ODRDXHU2NUY2QGNvbm5lY3Q6ICR7bi5qb2luKCIsICIpfHwiXHU3QTdBIn1gLGBcdThGRDBcdTg4NENcdTY1RjZAbWF0Y2g6ICR7ZS5qb2luKCIsICIpfHwiXHU3QTdBIn1gLGBcdThGRDBcdTg4NENcdTY1RjZAZ3JhbnQ6ICR7ci5qb2luKCIsICIpfHwiXHU3QTdBIn1gLGBcdThCQzZcdTUyMkJcdTc1NkFcdTUzRjc6ICR7dHx8Ilx1NjcyQVx1OEJDNlx1NTIyQiJ9YCxgXHU2Q0U4XHU1MTY1XHU3NkVFXHU2ODA3OiAke28/YCR7by50YWdOYW1lfSR7by50ZXh0Q29udGVudD9gICgke1N0cmluZyhvLnRleHRDb250ZW50KS50cmltKCkuc2xpY2UoMCw0MCl9KWA6IiJ9YDoiXHU2NzJBXHU2MjdFXHU1MjMwIn1gXS5qb2luKGAKYCl9YXN5bmMgZnVuY3Rpb24gZ2UodCl7dmFyIHI7aWYoKHI9bmF2aWdhdG9yLmNsaXBib2FyZCkhPW51bGwmJnIud3JpdGVUZXh0KXthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0KTtyZXR1cm59bGV0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTtuLnZhbHVlPXQsbi5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwidHJ1ZSIpLG4uc3R5bGUucG9zaXRpb249ImZpeGVkIixuLnN0eWxlLm9wYWNpdHk9IjAiLG4uc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChuKSxuLnNlbGVjdCgpO2xldCBlPWRvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5Iik7aWYoZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChuKSwhZSl0aHJvdyBuZXcgRXJyb3IoIlx1NUY1M1x1NTI0RFx1NzNBRlx1NTg4M1x1NEUwRFx1NjUyRlx1NjMwMVx1NTkwRFx1NTIzNlx1NTIzMFx1NTI2QVx1OEQzNFx1Njc3RiIpfWZ1bmN0aW9uIFAoKXt2YXIgdDsodD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChrdCkpPT1udWxsfHx0LnJlbW92ZSgpfWZ1bmN0aW9uIF90KHQ9eWUoKSl7UCgpO2xldCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uaWQ9a3Qsbi5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLG4uc3R5bGUuaW5zZXQ9IjAiLG4uc3R5bGUuekluZGV4PSIyMTQ3NDgzNjQ3IixuLnN0eWxlLmRpc3BsYXk9ImZsZXgiLG4uc3R5bGUuYWxpZ25JdGVtcz0iY2VudGVyIixuLnN0eWxlLmp1c3RpZnlDb250ZW50PSJjZW50ZXIiLG4uc3R5bGUucGFkZGluZz0iMjBweCIsbi5zdHlsZS5iYWNrZ3JvdW5kPSJyZ2JhKDAsIDAsIDAsIDAuNTUpIjtsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtlLnN0eWxlLndpZHRoPSJtaW4oNzIwcHgsIGNhbGMoMTAwdncgLSAyNHB4KSkiLGUuc3R5bGUubWF4SGVpZ2h0PSJtaW4oODB2aCwgNzIwcHgpIixlLnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iLGUuc3R5bGUuYm9yZGVyUmFkaXVzPSIxNHB4IixlLnN0eWxlLmJvcmRlcj0iMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIsZS5zdHlsZS5iYWNrZ3JvdW5kPSIjMTExNDE4IixlLnN0eWxlLmJveFNoYWRvdz0iMCAyNHB4IDY0cHggcmdiYSgwLCAwLCAwLCAwLjQ1KSIsZS5zdHlsZS5jb2xvcj0iI2YzZjRmNiIsZS5zdHlsZS5kaXNwbGF5PSJmbGV4IixlLnN0eWxlLmZsZXhEaXJlY3Rpb249ImNvbHVtbiIsbi5hcHBlbmRDaGlsZChlKTtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyLnN0eWxlLmRpc3BsYXk9ImZsZXgiLHIuc3R5bGUuYWxpZ25JdGVtcz0iY2VudGVyIixyLnN0eWxlLmp1c3RpZnlDb250ZW50PSJzcGFjZS1iZXR3ZWVuIixyLnN0eWxlLmdhcD0iMTJweCIsci5zdHlsZS5wYWRkaW5nPSIxNHB4IDE2cHgiLHIuc3R5bGUuYm9yZGVyQm90dG9tPSIxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIsZS5hcHBlbmRDaGlsZChyKTtsZXQgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHJvbmciKTtvLnRleHRDb250ZW50PSJcdTgxMUFcdTY3MkNcdThCQ0FcdTY1QURcdTRGRTFcdTYwNkYiLG8uc3R5bGUuZm9udFNpemU9IjE0cHgiLHIuYXBwZW5kQ2hpbGQobyk7bGV0IHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cy5zdHlsZS5kaXNwbGF5PSJmbGV4IixzLnN0eWxlLmFsaWduSXRlbXM9ImNlbnRlciIscy5zdHlsZS5nYXA9IjhweCIsci5hcHBlbmRDaGlsZChzKTtsZXQgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTtpLnR5cGU9ImJ1dHRvbiIsaS50ZXh0Q29udGVudD0iXHU1OTBEXHU1MjM2XHU4QkNBXHU2NUFEXHU0RkUxXHU2MDZGIixpLnN0eWxlLmJvcmRlcj0iMXB4IHNvbGlkIHJnYmEoMjUxLCAxOTEsIDM2LCAwLjI4KSIsaS5zdHlsZS5ib3JkZXJSYWRpdXM9IjhweCIsaS5zdHlsZS5iYWNrZ3JvdW5kPSJyZ2JhKDI1MSwgMTkxLCAzNiwgMC4xKSIsaS5zdHlsZS5jb2xvcj0iI2ZkZTY4YSIsaS5zdHlsZS5jdXJzb3I9InBvaW50ZXIiLGkuc3R5bGUuZm9udFNpemU9IjEycHgiLGkuc3R5bGUucGFkZGluZz0iNXB4IDlweCIscy5hcHBlbmRDaGlsZChpKTtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTthLnR5cGU9ImJ1dHRvbiIsYS50ZXh0Q29udGVudD0iXHU1MTczXHU5NUVEIixhLnN0eWxlLmJvcmRlcj0iMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikiLGEuc3R5bGUuYm9yZGVyUmFkaXVzPSI4cHgiLGEuc3R5bGUuYmFja2dyb3VuZD0icmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KSIsYS5zdHlsZS5jb2xvcj0iI2YzZjRmNiIsYS5zdHlsZS5jdXJzb3I9InBvaW50ZXIiLGEuc3R5bGUuZm9udFNpemU9IjEycHgiLGEuc3R5bGUucGFkZGluZz0iNXB4IDlweCIscy5hcHBlbmRDaGlsZChhKTtsZXQgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtsLnN0eWxlLnBhZGRpbmc9IjE2cHgiLGUuYXBwZW5kQ2hpbGQobCk7bGV0IHU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dS5zdHlsZS5taW5IZWlnaHQ9IjIwcHgiLHUuc3R5bGUubWFyZ2luQm90dG9tPSI4cHgiLHUuc3R5bGUuY29sb3I9IiM5Y2EzYWYiLHUuc3R5bGUuZm9udFNpemU9IjEycHgiLGwuYXBwZW5kQ2hpbGQodSk7bGV0IGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicHJlIik7Yy50ZXh0Q29udGVudD10LGMuc3R5bGUubWFyZ2luPSIwIixjLnN0eWxlLm1heEhlaWdodD0iY2FsYyg4MHZoIC0gMTQwcHgpIixjLnN0eWxlLm92ZXJmbG93PSJhdXRvIixjLnN0eWxlLndoaXRlU3BhY2U9InByZS13cmFwIixjLnN0eWxlLndvcmRCcmVhaz0iYnJlYWstd29yZCIsYy5zdHlsZS5mb250U2l6ZT0iMTJweCIsYy5zdHlsZS5saW5lSGVpZ2h0PSIxLjY1IixjLnN0eWxlLnBhZGRpbmc9IjEycHgiLGMuc3R5bGUuYm9yZGVyUmFkaXVzPSIxMHB4IixjLnN0eWxlLmJhY2tncm91bmQ9InJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCkiLGMuc3R5bGUuYm9yZGVyPSIxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIsbC5hcHBlbmRDaGlsZChjKSxpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2kuZGlzYWJsZWQ9ITAsZ2UodCkudGhlbigoKT0+e3Uuc3R5bGUuY29sb3I9IiM4NmVmYWMiLHUudGV4dENvbnRlbnQ9Ilx1OEJDQVx1NjVBRFx1NEZFMVx1NjA2Rlx1NURGMlx1NTkwRFx1NTIzNiJ9KS5jYXRjaChkPT57dS5zdHlsZS5jb2xvcj0iI2ZjYTVhNSIsdS50ZXh0Q29udGVudD1kIGluc3RhbmNlb2YgRXJyb3I/ZC5tZXNzYWdlOiJcdTU5MERcdTUyMzZcdThCQ0FcdTY1QURcdTRGRTFcdTYwNkZcdTU5MzFcdThEMjUifSkuZmluYWxseSgoKT0+e3dpbmRvdy5zZXRUaW1lb3V0KCgpPT57aS5kaXNhYmxlZD0hMX0sMjAwKX0pfSksYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsUCksbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZD0+e2QudGFyZ2V0PT09biYmUCgpfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZD0+e2Qua2V5PT09IkVzY2FwZSImJlAoKX0se29uY2U6ITB9KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG4pfWZ1bmN0aW9uIEl0KHQsbil7bGV0IGU9W3Q9PW51bGw/dm9pZCAwOnQubWVzc2FnZSx0PT1udWxsP3ZvaWQgMDp0LmVycm9yLHQ9PW51bGw/dm9pZCAwOnQuZGV0YWlscyx0eXBlb2YodD09bnVsbD92b2lkIDA6dC5zdGF0dXMpPT0ibnVtYmVyIj9gc3RhdHVzPSR7dC5zdGF0dXN9YDoiIix0IT1udWxsJiZ0LnN0YXR1c1RleHQ/YHN0YXR1c1RleHQ9JHt0LnN0YXR1c1RleHR9YDoiIix0IT1udWxsJiZ0LmZpbmFsVXJsP2BmaW5hbFVybD0ke3QuZmluYWxVcmx9YDoiIix0eXBlb2YodD09bnVsbD92b2lkIDA6dC5yZWFkeVN0YXRlKT09Im51bWJlciI/YHJlYWR5U3RhdGU9JHt0LnJlYWR5U3RhdGV9YDoiIl0uZmlsdGVyKEJvb2xlYW4pO3JldHVybiBlLmxlbmd0aD4wP2BcdTdGNTFcdTdFRENcdThCRjdcdTZDNDJcdTU5MzFcdThEMjU6ICR7ZS5qb2luKCIsICIpfWA6YFx1N0Y1MVx1N0VEQ1x1OEJGN1x1NkM0Mlx1NTkzMVx1OEQyNTogJHtufWB9ZnVuY3Rpb24gZmUodCxuKXtsZXQgZT10LnJlc3BvbnNlVGV4dHx8Int9IjtpZihlLnRyaW0oKS5zdGFydHNXaXRoKCI8IikpdGhyb3cgbmV3IEVycm9yKGBNeUpBViBcdTYzQTVcdTUzRTNcdThGRDRcdTU2REVcdTRFODYgSFRNTCBcdTk4NzVcdTk3NjJcdUZGMUEke259XHUzMDAyXHU4QkY3XHU2OEMwXHU2N0U1XHU2NzBEXHU1MkExXHU1NzMwXHU1NzQwXHU2NjJGXHU1NDI2XHU2QjYzXHU3ODZFXHU2MjE2XHU2NUIwXHU2M0E1XHU1M0UzXHU2NjJGXHU1NDI2XHU1REYyXHU5MEU4XHU3RjcyXHUzMDAyYCk7dHJ5e3JldHVybiBKU09OLnBhcnNlKGUpfWNhdGNoKHIpe3Rocm93IG5ldyBFcnJvcihgTXlKQVYgXHU2M0E1XHU1M0UzXHU4RkQ0XHU1NkRFXHU0RTg2XHU5NzVFIEpTT04gXHU1MTg1XHU1QkI5XHVGRjFBJHtufWApfX1mdW5jdGlvbiB4ZSh0KXtyZXR1cm4vTWlzc2luZyBKYXZTdGFzaCBBcGlLZXkvaS50ZXN0KHQpPyJcdTVGNTNcdTUyNERcdThGREVcdTYzQTVcdTc2ODQgTXlKQVYgXHU2NzBEXHU1MkExXHU0RUNEXHU1NzI4XHU0RjdGXHU3NTI4XHU2NUU3XHU3MjQ4XHU5Mjc0XHU2NzQzXHU5MDNCXHU4RjkxXHVGRjBDXHU4QkY3XHU2OEMwXHU2N0U1XHU2Q0I5XHU3MzM0XHU0RTJEXHU3Njg0XHUyMDFDTXlKQVYgXHU2NzBEXHU1MkExXHU1NzMwXHU1NzQwXHUyMDFEXHU2NjJGXHU1NDI2XHU2MzA3XHU1NDExXHU2NzAwXHU2NUIwXHU2NzBEXHU1MkExXHUzMDAyIjp0fWZ1bmN0aW9uIEUoe21ldGhvZDp0LHVybDpuLGhlYWRlcnM6ZSxkYXRhOnIsdGltZW91dDpvPTE1ZTN9KXtyZXR1cm4gbmV3IFByb21pc2UoKHMsaSk9PntHTV94bWxodHRwUmVxdWVzdCh7bWV0aG9kOnQsdXJsOm4saGVhZGVyczplLGRhdGE6cix0aW1lb3V0Om8sb25sb2FkKGEpe3RyeXtsZXQgbD1mZShhLG4pO2lmKGEuc3RhdHVzPj00MDB8fGwub2s9PT0hMXx8dHlwZW9mIGwucmNvZGU9PSJudW1iZXIiJiZsLnJjb2RlIT09MCl7aShuZXcgRXJyb3IoeGUobC5tZXNzYWdlfHxsLmVycm9yfHxsLm1zZ3x8bC5jb2RlfHwiXHU4QkY3XHU2QzQyXHU1OTMxXHU4RDI1IikpKTtyZXR1cm59cyhsKX1jYXRjaChsKXtpKGwgaW5zdGFuY2VvZiBFcnJvcj9sOm5ldyBFcnJvcigiXHU4OUUzXHU2NzkwXHU1NENEXHU1RTk0XHU1OTMxXHU4RDI1IikpfX0sb250aW1lb3V0KCl7aShuZXcgRXJyb3IoIlx1OEJGN1x1NkM0Mlx1OEQ4NVx1NjVGNlx1RkYwQ1x1OEJGN1x1N0EwRFx1NTQwRVx1OTFDRFx1OEJENSIpKX0sb25lcnJvcihhKXtpKG5ldyBFcnJvcihJdChhLG4pKSl9fSl9KX1mdW5jdGlvbiBMdCh0KXtyZXR1cm4gbmV3IFByb21pc2UoKG4sZSk9PntHTV94bWxodHRwUmVxdWVzdCh7bWV0aG9kOiJHRVQiLHVybDp0LHRpbWVvdXQ6M2U0LG9ubG9hZChyKXtpZihyLnN0YXR1cz49NDAwKXtlKG5ldyBFcnJvcigiXHU4QkY3XHU2QzQyXHU1OTMxXHU4RDI1XHVGRjFBIityLnN0YXR1cykpO3JldHVybn1sZXQgbz1TdHJpbmcoci5yZXNwb25zZVRleHR8fHIucmVzcG9uc2V8fCIiKS50cmltKCk7aWYoIW8pe2UobmV3IEVycm9yKCJcdThGRDRcdTU2REVcdTRFODZcdTdBN0FcdTk4NzVcdTk3NjIiKSk7cmV0dXJufW4obmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhvLCJ0ZXh0L2h0bWwiKSl9LG9udGltZW91dCgpe2UobmV3IEVycm9yKCJcdThCRjdcdTZDNDJcdThEODVcdTY1RjYiKSl9LG9uZXJyb3Iocil7ZShuZXcgRXJyb3IoSXQocix0KSkpfX0pfSl9ZnVuY3Rpb24gUnQodCl7bGV0IG49QygpO3JldHVybiBuP0EoZT0+RSh7bWV0aG9kOiJHRVQiLHVybDpIKGUsdCksaGVhZGVyczp7QXV0aG9yaXphdGlvbjpgQmVhcmVyICR7bn1gfX0pLnRoZW4ocj0+e2xldCBvPXIudHJhbnNsYXRpb247aWYoIW8pdGhyb3cgbmV3IEVycm9yKHIubXNnfHwiTXlKQVYgXHU4QkU2XHU2MEM1XHU1NENEXHU1RTk0XHU3RjNBXHU1QzExIHRyYW5zbGF0aW9uIik7cmV0dXJue29rOiEwLGNvZGU6cChvLmNvZGV8fHIuY29kZXx8dCksdGl0bGU6by50aXRsZVpofHwiIixkZXNjcmlwdGlvbjpvLnN1bW1hcnlaaHx8IiIsdHJhbnNsYXRlZDpvLmxvY2FsaXplZCE9PSExLHNvdXJjZTpvLnByb3ZlbmFuY2V9fSkpOlByb21pc2UucmVqZWN0KG5ldyBFcnJvcigiXHU4QkY3XHU1MTQ4XHU4QkJFXHU3RjZFXHU0RTJBXHU0RUJBXHU4QkJGXHU5NUVFXHU1QkM2XHU5NEE1IikpfWZ1bmN0aW9uIEoodCxuKXtyZXR1cm4gQShlPT5FKHttZXRob2Q6IlBPU1QiLHVybDpGKGUpLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sZGF0YTpKU09OLnN0cmluZ2lmeSh7Y29kZTpwKHQpLHNvdXJjZXM6bn0pfSkpfWZ1bmN0aW9uIE10KHQsbil7cmV0dXJuIEEoZT0+RSh7bWV0aG9kOiJHRVQiLHVybDp2KGUsdCksaGVhZGVyczp7QXV0aG9yaXphdGlvbjpgQmVhcmVyICR7bn1gfX0pKX1mdW5jdGlvbiBQdCh0LG4sZSl7cmV0dXJuIEEocj0+RSh7bWV0aG9kOiJQVVQiLHVybDp2KHIpLGhlYWRlcnM6e0F1dGhvcml6YXRpb246YEJlYXJlciAke2V9YCwiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGRhdGE6SlNPTi5zdHJpbmdpZnkoe2NvZGU6cCh0KSx0YWc6bn0pfSkpfWZ1bmN0aW9uIFV0KHQsbixlKXtyZXR1cm4gQShyPT5FKHttZXRob2Q6IkRFTEVURSIsdXJsOnYociksaGVhZGVyczp7QXV0aG9yaXphdGlvbjpgQmVhcmVyICR7ZX1gLCJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sZGF0YTpKU09OLnN0cmluZ2lmeSh7Y29kZTpwKHQpLHRhZzpufSl9KSl9YXN5bmMgZnVuY3Rpb24gQSh0KXtsZXQgbj1UdCgpLGUscj1bXTtmb3IobGV0IG8gb2Ygbil0cnl7cmV0dXJuIGF3YWl0IHQobyl9Y2F0Y2gocyl7ZT1zLHIucHVzaChgJHtvfSA9PiAke3MgaW5zdGFuY2VvZiBFcnJvcj9zLm1lc3NhZ2U6Ik15SkFWIFx1OEJGN1x1NkM0Mlx1NTkzMVx1OEQyNSJ9YCl9dGhyb3cgZSBpbnN0YW5jZW9mIEVycm9yP25ldyBFcnJvcihgJHtlLm1lc3NhZ2V9JHtyLmxlbmd0aD4wP2AgfCBcdTVDMURcdThCRDVcdTk0RkVcdThERUY6ICR7ci5qb2luKCIgOyAiKX1gOiIifWApOm5ldyBFcnJvcihyLmxlbmd0aD4wP2BNeUpBViBcdThCRjdcdTZDNDJcdTU5MzFcdThEMjUgfCBcdTVDMURcdThCRDVcdTk0RkVcdThERUY6ICR7ci5qb2luKCIgOyAiKX1gOiJNeUpBViBcdThCRjdcdTZDNDJcdTU5MzFcdThEMjUiKX1mdW5jdGlvbiBPdCh0KXtsZXQgbj1FdC50ZXN0KHQpPyJ8XyI6IiIsZT10LnRyaW0oKS50b1VwcGVyQ2FzZSgpLnNwbGl0KCItIikubWFwKChyLG8pPT5vP3IucmVwbGFjZSgvXjAvLCIiKTpyKTtyZXR1cm4gbmV3IFJlZ0V4cCgiKD88IVthLXpdKSIrZS5qb2luKCJcXHM/KDB8LSIrbisiKXswLDR9XFxzPyIpKyIoPyFcXGQpIiwiaSIpfWZ1bmN0aW9uICR0KHQ9IiIpe2xldCBuPVN0cmluZyh0KS5tYXRjaCgvXGQrXC4/XGQqLyksZT1uP051bWJlcihuWzBdKTowO3JldHVybiFOdW1iZXIuaXNGaW5pdGUoZSl8fGU8PTA/MDovZ2liL2kudGVzdCh0KT9lKjEwMjQqKjM6L21pYi9pLnRlc3QodCk/ZSoxMDI0KioyOi9raWIvaS50ZXN0KHQpP2UqMTAyNDovZ2IvaS50ZXN0KHQpP2UqMWUzKiozOi9tYi9pLnRlc3QodCk/ZSoxZTMqKjI6L2tiL2kudGVzdCh0KT9lKjFlMzovYnl0ZS9pLnRlc3QodCk/ZTowfWZ1bmN0aW9uIGhlKHQsbil7bGV0IGU9QXJyYXkuaXNBcnJheShuKT9uOltuXTtmb3IobGV0IHIgb2YgZSl7bGV0IG89QXJyYXkuZnJvbSh0LnF1ZXJ5U2VsZWN0b3JBbGwocikpO2lmKG8ubGVuZ3RoPjApcmV0dXJuIG99cmV0dXJuW119ZnVuY3Rpb24gQnQodCxuLGUscixvLHMpe2xldCBpPW5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtyZXR1cm4gTHQoZStyKS50aGVuKGE9PntsZXQgbD1iZShhLHQsZSxvLHMpO3JldHVybntzb3VyY2U6bixzdGF0dXM6bC5sZW5ndGg/InN1Y2Nlc3MiOiJlbXB0eSIsaXRlbXM6bCxjaGVja2VkQXQ6aX19KS5jYXRjaChhPT4oe3NvdXJjZTpuLHN0YXR1czoiZXJyb3IiLGl0ZW1zOltdLGNoZWNrZWRBdDppLGVycm9yOmEgaW5zdGFuY2VvZiBFcnJvcj9hLm1lc3NhZ2U6Ilx1NjdFNVx1OEJFMlx1NTkzMVx1OEQyNSJ9KSl9ZnVuY3Rpb24gYmUodCxuLGUscixvKXtsZXQgcz1PdChuKTtyZXR1cm4gaGUodCxyKS5yZWR1Y2UoKGksYSk9PntsZXQgbD1TdHJpbmcoby5uYW1lKGEpfHwiIikucmVwbGFjZSgvW1x1MjAwQi1cdTIwMERcdUZFRkZdL2csIiIpLnRyaW0oKTtpZighbHx8IXMudGVzdChsKSlyZXR1cm4gaTtsZXQgdT1TdHJpbmcoby5saW5rKGEpfHwiIikuc3BsaXQoIiYiKVswXTtpZighdS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoIm1hZ25ldDo/eHQ9IikpcmV0dXJuIGk7bGV0IGM9U3RyaW5nKG8uc2l6ZShhKXx8IiIpLnRyaW0oKSxkPVN0cmluZyhvLmhyZWYoYSl8fCIiKS50cmltKCk7cmV0dXJuIGQmJiFkLmluY2x1ZGVzKCIvLyIpJiYoZD1lK2QucmVwbGFjZSgvXlwvLywiIikpLGkucHVzaCh7bmFtZTpsLGxpbms6dSxzaXplOmMsYnl0ZXM6JHQoYyksZGF0ZTpTdHJpbmcoby5kYXRlKGEpfHwiIikudHJpbSgpLGhyZWY6ZHx8dm9pZCAwLHpoOkN0LnRlc3QobCl9KSxpfSxbXSl9ZnVuY3Rpb24gVih0KXtyZXR1cm4gQnQodCwic3VrZWJlaSIsImh0dHBzOi8vc3VrZWJlaS5ueWFhLnNpLyIsIj9mPTAmYz0wXzAmcT0iK2VuY29kZVVSSUNvbXBvbmVudCh0KSxbIi50b3JyZW50LWxpc3QgdGJvZHkgdHIiLCIudGFibGUtcmVzcG9uc2l2ZSB0YWJsZSB0Ym9keSB0ciJdLHtuYW1lOm49Pnt2YXIgZSxyO3JldHVybigoZT1uLnF1ZXJ5U2VsZWN0b3IoInRkOm50aC1jaGlsZCgyKSBhW3RpdGxlXSIpKT09bnVsbD92b2lkIDA6ZS5nZXRBdHRyaWJ1dGUoInRpdGxlIikpfHwoKHI9bi5xdWVyeVNlbGVjdG9yKCJ0ZDpudGgtY2hpbGQoMikgYSIpKT09bnVsbD92b2lkIDA6ci50ZXh0Q29udGVudCl9LGxpbms6bj0+e3ZhciBlLHI7cmV0dXJuKChlPW4ucXVlcnlTZWxlY3RvcigidGQ6bnRoLWNoaWxkKDMpIGFbaHJlZl49J21hZ25ldDonXSIpKT09bnVsbD92b2lkIDA6ZS5ocmVmKXx8KChyPW4ucXVlcnlTZWxlY3RvcigidGQ6bnRoLWNoaWxkKDMpIGE6bGFzdC1jaGlsZCIpKT09bnVsbD92b2lkIDA6ci5ocmVmKX0sc2l6ZTpuPT57dmFyIGU7cmV0dXJuKGU9bi5xdWVyeVNlbGVjdG9yKCJ0ZDpudGgtY2hpbGQoNCkiKSk9PW51bGw/dm9pZCAwOmUudGV4dENvbnRlbnR9LGRhdGU6bj0+e3ZhciBlO3JldHVybiBTdHJpbmcoKChlPW4ucXVlcnlTZWxlY3RvcigidGQ6bnRoLWNoaWxkKDUpIikpPT1udWxsP3ZvaWQgMDplLnRleHRDb250ZW50KXx8IiIpLnNwbGl0KCIgIilbMF19LGhyZWY6bj0+e3ZhciBlLHI7cmV0dXJuKChlPW4ucXVlcnlTZWxlY3RvcigidGQ6bnRoLWNoaWxkKDIpIGFbdGl0bGVdIikpPT1udWxsP3ZvaWQgMDplLmdldEF0dHJpYnV0ZSgiaHJlZiIpKXx8KChyPW4ucXVlcnlTZWxlY3RvcigidGQ6bnRoLWNoaWxkKDIpIGEiKSk9PW51bGw/dm9pZCAwOnIuZ2V0QXR0cmlidXRlKCJocmVmIikpfX0pfWZ1bmN0aW9uIFUodCxuPSExKXtsZXQgZT0iaHR0cHM6Ly8iKyhuPyJ3d3cuIjoiIikrImJ0ZGlnLmNvbS8iO3JldHVybiBCdCh0LCJidGRpZyIsZSwic2VhcmNoP29yZGVyPTAmcT0iK2VuY29kZVVSSUNvbXBvbmVudCh0KSwiLm9uZV9yZXN1bHQiLHtuYW1lOnI9Pnt2YXIgbztyZXR1cm4obz1yLnF1ZXJ5U2VsZWN0b3IoIi50b3JyZW50X25hbWUiKSk9PW51bGw/dm9pZCAwOm8udGV4dENvbnRlbnR9LGxpbms6cj0+e3ZhciBvO3JldHVybihvPXIucXVlcnlTZWxlY3RvcigiLnRvcnJlbnRfbWFnbmV0IGEiKSk9PW51bGw/dm9pZCAwOm8uaHJlZn0sc2l6ZTpyPT57dmFyIG87cmV0dXJuKG89ci5xdWVyeVNlbGVjdG9yKCIudG9ycmVudF9zaXplIikpPT1udWxsP3ZvaWQgMDpvLnRleHRDb250ZW50fSxkYXRlOnI9Pnt2YXIgbztyZXR1cm4obz1yLnF1ZXJ5U2VsZWN0b3IoIi50b3JyZW50X2FnZSIpKT09bnVsbD92b2lkIDA6by50ZXh0Q29udGVudH0saHJlZjpyPT57dmFyIG87cmV0dXJuKG89ci5xdWVyeVNlbGVjdG9yKCIudG9ycmVudF9uYW1lIGEiKSk9PW51bGw/dm9pZCAwOm8uaHJlZn19KS50aGVuKHI9PiFuJiYoci5zdGF0dXM9PT0iZW1wdHkifHxyLnN0YXR1cz09PSJlcnJvciIpP1UodCwhMCk6cil9ZnVuY3Rpb24genQodCxuKXtyZXR1cm5bdD09bnVsbD92b2lkIDA6dC5tZXNzYWdlLHQ9PW51bGw/dm9pZCAwOnQuZXJyb3IsdD09bnVsbD92b2lkIDA6dC5zdGF0dXNUZXh0LHR5cGVvZih0PT1udWxsP3ZvaWQgMDp0LnN0YXR1cyk9PSJudW1iZXIiP2BzdGF0dXM9JHt0LnN0YXR1c31gOiIiXS5maWx0ZXIoQm9vbGVhbikuam9pbigiLCAiKXx8bn1mdW5jdGlvbiBDZSh0LG4pe3ZhciBvO2xldCBlPXR5cGVvZiBuPT0ic3RyaW5nIj9uLnRyaW0oKS5yZXBsYWNlKC9eXC4vLCIiKToiIjtyZXR1cm4gZT9lLnRvTG93ZXJDYXNlKCk6KCgobz10Lm1hdGNoKC9cLihbYS16MC05XSspKD86JHxcPykvaSkpPT1udWxsP3ZvaWQgMDpvWzFdKXx8IiIpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gTnQodCl7cmV0dXJuIHQudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bXHNfLV0rL2csIiIpfWZ1bmN0aW9uIHF0KHQsbil7bGV0IGU9TnQobik7cmV0dXJuIGU/dC5tYXAocj0+TnQocikuaW5jbHVkZXMoZSkpOnQubWFwKCgpPT4hMCl9ZnVuY3Rpb24gRWUodCl7bGV0IG49dD09bnVsbD92b2lkIDA6dC5kYXRhO3JldHVybiBBcnJheS5pc0FycmF5KG4pP24uZmxhdE1hcChlPT57bGV0IHI9dHlwZW9mIGUubmFtZT09InN0cmluZyI/ZS5uYW1lLnRyaW0oKToiIixvPXR5cGVvZiBlLnVybD09InN0cmluZyImJmUudXJsLnRyaW0oKT9lLnVybC50cmltKCk6dHlwZW9mIGUuc2NpZD09InN0cmluZyI/ZS5zY2lkLnRyaW0oKToiIixzPUNlKHIsZS5leHQpO3JldHVybiFvfHwhcz9bXTpbe25hbWU6cixleHQ6cyx1cmw6b31dfSk6W119ZnVuY3Rpb24gTyh0LG4pe2xldCBlPXQubmFtZS50cmltKCk7aWYoL1wuW2EtejAtOV17Miw1fSQvaS50ZXN0KGUpKXJldHVybiBlO2xldCByPXQuZXh0LnJlcGxhY2UoL15cLi8sIiIpLnRvTG93ZXJDYXNlKCl8fCJzcnQiO3JldHVybmAke3Aobil9LiR7cn1gfWZ1bmN0aW9uIGp0KHQpe2xldCBuPXQuZXh0LnRvTG93ZXJDYXNlKCk7cmV0dXJuIG49PT0iYXNzInx8bj09PSJzcnQifWZ1bmN0aW9uIER0KHQpe3JldHVybmBodHRwczovL3N1YnRpdGxlY2F0LmNvbS9pbmRleC5waHA/c2VhcmNoPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHAodCkpfWB9ZnVuY3Rpb24gR3QodCl7bGV0IG49YGh0dHBzOi8vYXBpLXNob3VsZWktc3NsLnh1bmxlaS5jb20vb3JhY2xlL3N1YnRpdGxlP2djaWQ9JmNpZD0mbmFtZT0ke2VuY29kZVVSSUNvbXBvbmVudChwKHQpKX1gO3JldHVybiBuZXcgUHJvbWlzZSgoZSxyKT0+e0dNX3htbGh0dHBSZXF1ZXN0KHttZXRob2Q6IkdFVCIsdXJsOm4sdGltZW91dDoxNWUzLG9ubG9hZChvKXt0cnl7aWYoby5zdGF0dXM+PTQwMCl7cihuZXcgRXJyb3IoYFx1OEZDNVx1OTZGN1x1NUI1N1x1NUU1NVx1OEJGN1x1NkM0Mlx1NTkzMVx1OEQyNVx1RkYxQSR7by5zdGF0dXN9YCkpO3JldHVybn1sZXQgcz1KU09OLnBhcnNlKFN0cmluZyhvLnJlc3BvbnNlVGV4dHx8Int9IikpO2UoRWUocykpfWNhdGNoKHMpe3IobmV3IEVycm9yKCJcdThGQzVcdTk2RjdcdTVCNTdcdTVFNTVcdTYzQTVcdTUzRTNcdThGRDRcdTU2REVcdTRFODZcdTY1RTBcdTZDRDVcdTg5RTNcdTY3OTBcdTc2ODRcdTUxODVcdTVCQjkiKSl9fSxvbnRpbWVvdXQoKXtyKG5ldyBFcnJvcigiXHU4RkM1XHU5NkY3XHU1QjU3XHU1RTU1XHU4QkY3XHU2QzQyXHU4RDg1XHU2NUY2IikpfSxvbmVycm9yKG8pe3IobmV3IEVycm9yKHp0KG8sIlx1OEZDNVx1OTZGN1x1NUI1N1x1NUU1NVx1OEJGN1x1NkM0Mlx1NTkzMVx1OEQyNSIpKSl9fSl9KX1mdW5jdGlvbiBZKHQpe3JldHVybiBuZXcgUHJvbWlzZSgobixlKT0+e0dNX3htbGh0dHBSZXF1ZXN0KHttZXRob2Q6IkdFVCIsdXJsOnQsdGltZW91dDoxNWUzLG9ubG9hZChyKXtpZihyLnN0YXR1cz49NDAwKXtlKG5ldyBFcnJvcihgXHU1QjU3XHU1RTU1XHU2NTg3XHU0RUY2XHU4QkY3XHU2QzQyXHU1OTMxXHU4RDI1XHVGRjFBJHtyLnN0YXR1c31gKSk7cmV0dXJufW4oU3RyaW5nKHIucmVzcG9uc2VUZXh0fHxyLnJlc3BvbnNlfHwiIikpfSxvbnRpbWVvdXQoKXtlKG5ldyBFcnJvcigiXHU1QjU3XHU1RTU1XHU2NTg3XHU0RUY2XHU4QkY3XHU2QzQyXHU4RDg1XHU2NUY2IikpfSxvbmVycm9yKHIpe2UobmV3IEVycm9yKHp0KHIsIlx1NUI1N1x1NUU1NVx1NjU4N1x1NEVGNlx1OEJGN1x1NkM0Mlx1NTkzMVx1OEQyNSIpKSl9fSl9KX1mdW5jdGlvbiBXKHQsbil7bGV0IGU9bmV3IEJsb2IoW3RdLHt0eXBlOiJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgifSkscj1VUkwuY3JlYXRlT2JqZWN0VVJMKGUpLG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO28uaHJlZj1yLG8uZG93bmxvYWQ9bixvLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobyksby5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobyksd2luZG93LnNldFRpbWVvdXQoKCk9PlVSTC5yZXZva2VPYmplY3RVUkwociksMCl9dmFyIFNlPVsid2F0Y2hfbGF0ZXIiLCJmYXZvcml0ZSIsImRpc2xpa2UiXSxTPXt3YXRjaF9sYXRlcjoiXHU3QTBEXHU1NDBFXHU3NzBCIixmYXZvcml0ZToiXHU2NTM2XHU4NUNGIixkaXNsaWtlOiJkaXNsaWtlIn0sSHQ9ImphdnN0YXNoLWxvb2t1cC1wYW5lbC1zdHlsZSIsRnQ9ImphdnN0YXNoLWlubGluZS1tYWduZXQtYWN0aW9ucyIsSnQ9ImphdnN0YXNoLXN1YnRpdGxlLWRpYWxvZyIsaD1udWxsLGs9bnVsbDtmdW5jdGlvbiBUZSh0KXtyZXR1cm4gdD9gJHtmfS92LyR7YXQocCh0KSl9YDpudWxsfWZ1bmN0aW9uIEt0KHQsbil7dmFyIGUscjtyZXR1cm4ocj0oZT10Lmdyb3VwZWRUYWdzKT09bnVsbD92b2lkIDA6ZVtwKG4pXSkhPW51bGw/cjpbXX1mdW5jdGlvbiBOKHQ9W10pe3JldHVybiB0Lm1hcChuPT57bGV0IGU9bi5sYWJlbHx8bi5zb3VyY2U7cmV0dXJuIG4uc3RhdHVzPT09InN1Y2Nlc3MiP2Ake2V9IFx1NjIxMFx1NTI5RmA6bi5zdGF0dXM9PT0iZW1wdHkiP2Ake2V9IFx1NjVFMFx1N0VEM1x1Njc5Q2A6YCR7ZX0gXHU1OTMxXHU4RDI1JHtuLmVycm9yP2A6ICR7bi5lcnJvcn1gOiIifWB9KS5qb2luKCJcdUZGMUIiKX1mdW5jdGlvbiBWdCgpe2lmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKEh0KSlyZXR1cm47bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTt0LmlkPUh0LHQudGV4dENvbnRlbnQ9YAogICAgLmphdnN0YXNoLXNjcm9sbGFibGUsCiAgICAjJHtnfS5qYXZzdGFzaC1zY3JvbGxhYmxlLAogICAgIyR7Z30gLmphdnN0YXNoLXNjcm9sbGFibGUgewogICAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47CiAgICAgIHNjcm9sbGJhci1jb2xvcjogcmdiYSgyNTEsIDE5MSwgMzYsIDAuMzUpIHRyYW5zcGFyZW50OwogICAgfQoKICAgIC5qYXZzdGFzaC1zY3JvbGxhYmxlOjotd2Via2l0LXNjcm9sbGJhciwKICAgICMke2d9LmphdnN0YXNoLXNjcm9sbGFibGU6Oi13ZWJraXQtc2Nyb2xsYmFyLAogICAgIyR7Z30gLmphdnN0YXNoLXNjcm9sbGFibGU6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgd2lkdGg6IDhweDsKICAgICAgaGVpZ2h0OiA4cHg7CiAgICB9CgogICAgLmphdnN0YXNoLXNjcm9sbGFibGU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLAogICAgIyR7Z30uamF2c3Rhc2gtc2Nyb2xsYWJsZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssCiAgICAjJHtnfSAuamF2c3Rhc2gtc2Nyb2xsYWJsZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIH0KCiAgICAuamF2c3Rhc2gtc2Nyb2xsYWJsZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsCiAgICAjJHtnfS5qYXZzdGFzaC1zY3JvbGxhYmxlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiwKICAgICMke2d9IC5qYXZzdGFzaC1zY3JvbGxhYmxlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjUxLCAxOTEsIDM2LCAwLjM4KSwgcmdiYSgyNDUsIDE1OCwgMTEsIDAuMjYpKTsKICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94OwogICAgfQoKICAgIC5qYXZzdGFzaC1zY3JvbGxhYmxlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciwKICAgICMke2d9LmphdnN0YXNoLXNjcm9sbGFibGU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLAogICAgIyR7Z30gLmphdnN0YXNoLXNjcm9sbGFibGU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTEsIDE5MSwgMzYsIDAuNTIpLCByZ2JhKDI0NSwgMTU4LCAxMSwgMC40KSk7CiAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDsKICAgIH0KICBgLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodCl9ZnVuY3Rpb24gd2UoKXtWdCgpO2xldCB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGcpO3JldHVybiB0fHwodD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhc2lkZSIpLHQuaWQ9Zyx0LmNsYXNzTmFtZT0iamF2c3Rhc2gtc2Nyb2xsYWJsZSIsdC5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHQuc3R5bGUucmlnaHQ9IjI0cHgiLHQuc3R5bGUuYm90dG9tPSIyNHB4Iix0LnN0eWxlLndpZHRoPSIzNjBweCIsdC5zdHlsZS5tYXhXaWR0aD0iY2FsYygxMDB2dyAtIDMycHgpIix0LnN0eWxlLm1heEhlaWdodD0iNzB2aCIsdC5zdHlsZS5vdmVyZmxvd1g9ImhpZGRlbiIsdC5zdHlsZS5vdmVyZmxvd1k9ImF1dG8iLHQuc3R5bGUuc2Nyb2xsYmFyR3V0dGVyPSJzdGFibGUiLHQuc3R5bGUuekluZGV4PSIyMTQ3NDgzNjQ3Iix0LnN0eWxlLmJhY2tncm91bmQ9ImxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjUxLCAxOTEsIDM2LCAwLjA4KSwgcmdiYSgyNTEsIDE5MSwgMzYsIDApIDcycHgpLCAjMTExNDE4Iix0LnN0eWxlLmNvbG9yPSIjZjNmNGY2Iix0LnN0eWxlLmJvcmRlcj0iMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiLHQuc3R5bGUuYm9yZGVyUmFkaXVzPSIxMnB4Iix0LnN0eWxlLmJveFNoYWRvdz0iMCAyMHB4IDQ4cHggcmdiYSgwLCAwLCAwLCAwLjQ1KSIsdC5zdHlsZS5wYWRkaW5nPSIxNHB4IDE0cHggMTJweCIsdC5zdHlsZS5mb250U2l6ZT0iMTRweCIsdC5zdHlsZS5saW5lSGVpZ2h0PSIxLjciLHQuc3R5bGUuZGlzcGxheT0ibm9uZSIsdC5zdHlsZS5iYWNrZHJvcEZpbHRlcj0iYmx1cigxMHB4KSIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0KSx0KX1mdW5jdGlvbiBUKHQpe2xldCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO3JldHVybiBuLnR5cGU9ImJ1dHRvbiIsbi50ZXh0Q29udGVudD10LG4uc3R5bGUuYm9yZGVyPSIxcHggc29saWQgcmdiYSgyNTEsIDE5MSwgMzYsIDAuMjgpIixuLnN0eWxlLmJvcmRlclJhZGl1cz0iOHB4IixuLnN0eWxlLmJhY2tncm91bmQ9InJnYmEoMjUxLCAxOTEsIDM2LCAwLjEpIixuLnN0eWxlLmNvbG9yPSIjZmRlNjhhIixuLnN0eWxlLmN1cnNvcj0icG9pbnRlciIsbi5zdHlsZS5mb250U2l6ZT0iMTJweCIsbi5zdHlsZS5wYWRkaW5nPSI1cHggOXB4IixufWZ1bmN0aW9uIHZlKCl7bGV0IHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZyk7cmV0dXJuISEodCYmdC5zdHlsZS5kaXNwbGF5IT09Im5vbmUiKX1mdW5jdGlvbiBldCgpe2xldCB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGcpO3QmJih0LnN0eWxlLmRpc3BsYXk9Im5vbmUiKX1mdW5jdGlvbiAkKCl7dmFyIHQ7KHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoSnQpKT09bnVsbHx8dC5yZW1vdmUoKX1mdW5jdGlvbiBZdCh0KXtWdCgpLCQoKTtsZXQgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtuLmlkPUp0LG4uc3R5bGUucG9zaXRpb249ImZpeGVkIixuLnN0eWxlLmluc2V0PSIwIixuLnN0eWxlLnpJbmRleD0iMjE0NzQ4MzY0NyIsbi5zdHlsZS5kaXNwbGF5PSJmbGV4IixuLnN0eWxlLmFsaWduSXRlbXM9ImNlbnRlciIsbi5zdHlsZS5qdXN0aWZ5Q29udGVudD0iY2VudGVyIixuLnN0eWxlLnBhZGRpbmc9IjIwcHgiLG4uc3R5bGUuYmFja2dyb3VuZD0icmdiYSgwLCAwLCAwLCAwLjU1KSI7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5zdHlsZS53aWR0aD0ibWluKDgyMHB4LCBjYWxjKDEwMHZ3IC0gMjRweCkpIixlLnN0eWxlLm1heEhlaWdodD0ibWluKDgydmgsIDc2MHB4KSIsZS5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIixlLnN0eWxlLmJvcmRlclJhZGl1cz0iMTRweCIsZS5zdHlsZS5ib3JkZXI9IjFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiLGUuc3R5bGUuYmFja2dyb3VuZD0iIzExMTQxOCIsZS5zdHlsZS5ib3hTaGFkb3c9IjAgMjRweCA2NHB4IHJnYmEoMCwgMCwgMCwgMC40NSkiLGUuc3R5bGUuY29sb3I9IiNmM2Y0ZjYiLGUuc3R5bGUuZGlzcGxheT0iZmxleCIsZS5zdHlsZS5mbGV4RGlyZWN0aW9uPSJjb2x1bW4iLG4uYXBwZW5kQ2hpbGQoZSk7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ci5zdHlsZS5kaXNwbGF5PSJmbGV4IixyLnN0eWxlLmFsaWduSXRlbXM9ImNlbnRlciIsci5zdHlsZS5qdXN0aWZ5Q29udGVudD0ic3BhY2UtYmV0d2VlbiIsci5zdHlsZS5nYXA9IjEycHgiLHIuc3R5bGUucGFkZGluZz0iMTRweCAxNnB4IixyLnN0eWxlLmJvcmRlckJvdHRvbT0iMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiLGUuYXBwZW5kQ2hpbGQocik7bGV0IG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3Ryb25nIik7by50ZXh0Q29udGVudD10LG8uc3R5bGUuZm9udFNpemU9IjE0cHgiLHIuYXBwZW5kQ2hpbGQobyk7bGV0IHM9VCgiXHU1MTczXHU5NUVEIik7cy5zdHlsZS5ib3JkZXI9IjFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpIixzLnN0eWxlLmJhY2tncm91bmQ9InJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCkiLHMuc3R5bGUuY29sb3I9IiNmM2Y0ZjYiLHMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCQpLHIuYXBwZW5kQ2hpbGQocyk7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5jbGFzc05hbWU9ImphdnN0YXNoLXNjcm9sbGFibGUiLGkuc3R5bGUucGFkZGluZz0iMTZweCIsaS5zdHlsZS5vdmVyZmxvd1k9ImF1dG8iLGkuc3R5bGUubWF4SGVpZ2h0PSJjYWxjKG1pbig4MnZoLCA3NjBweCkgLSA1NnB4KSIsZS5hcHBlbmRDaGlsZChpKTtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gYS5zdHlsZS5taW5IZWlnaHQ9IjIwcHgiLGEuc3R5bGUubWFyZ2luQm90dG9tPSIxMHB4IixhLnN0eWxlLmNvbG9yPSIjOWNhM2FmIixhLnN0eWxlLmZvbnRTaXplPSIxMnB4IixpLmFwcGVuZENoaWxkKGEpLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGw9PntsLnRhcmdldD09PW4mJiQoKX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGw9PntsLmtleT09PSJFc2NhcGUiJiYkKCl9LHtvbmNlOiEwfSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChuKSx7Ym9keTppLHN0YXR1czphfX1mdW5jdGlvbiBBZSh0LG4pe2xldCBlPU8odCxuKSx7Ym9keTpyLHN0YXR1czpvfT1ZdChgJHt0LmV4dC50b1VwcGVyQ2FzZSgpfSBcdTVCNTdcdTVFNTVcdTk4ODRcdTg5QzggLSAke2V9YCk7by50ZXh0Q29udGVudD0iXHU2QjYzXHU1NzI4XHU1MkEwXHU4RjdEXHU1QjU3XHU1RTU1XHU2NTg3XHU0RUY2Li4uIixZKHQudXJsKS50aGVuKHM9PntvLnRleHRDb250ZW50PSIiO2xldCBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuc3R5bGUuZGlzcGxheT0iZmxleCIsaS5zdHlsZS5qdXN0aWZ5Q29udGVudD0iZmxleC1lbmQiLGkuc3R5bGUubWFyZ2luQm90dG9tPSIxMHB4IixyLmFwcGVuZENoaWxkKGkpO2xldCBhPVQoIlx1NEUwQlx1OEY3RCIpO2EuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5XKHMsZSkpLGkuYXBwZW5kQ2hpbGQoYSk7bGV0IGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicHJlIik7bC5jbGFzc05hbWU9ImphdnN0YXNoLXNjcm9sbGFibGUiLGwuc3R5bGUubWFyZ2luPSIwIixsLnN0eWxlLm1heEhlaWdodD0iY2FsYyhtaW4oODJ2aCwgNzYwcHgpIC0gMTMycHgpIixsLnN0eWxlLm92ZXJmbG93PSJhdXRvIixsLnN0eWxlLndoaXRlU3BhY2U9InByZS13cmFwIixsLnN0eWxlLndvcmRCcmVhaz0iYnJlYWstd29yZCIsbC5zdHlsZS5mb250U2l6ZT0iMTJweCIsbC5zdHlsZS5saW5lSGVpZ2h0PSIxLjY1IixsLnN0eWxlLnBhZGRpbmc9IjEycHgiLGwuc3R5bGUuYm9yZGVyUmFkaXVzPSIxMHB4IixsLnN0eWxlLmJhY2tncm91bmQ9IiMxZTFlMWUiLGwuc3R5bGUuYm9yZGVyPSIxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIsbC5zdHlsZS5jb2xvcj0iI2YzZjRmNiIsbC50ZXh0Q29udGVudD1zLnNwbGl0KGAKYCkubWFwKCh1LGMsZCk9PmAke1N0cmluZyhjKzEpLnBhZFN0YXJ0KFN0cmluZyhkLmxlbmd0aCkubGVuZ3RoLCIgIil9LiAke3V9YCkuam9pbihgCmApLHIuYXBwZW5kQ2hpbGQobCl9KS5jYXRjaChzPT57by5zdHlsZS5jb2xvcj0iI2ZjYTVhNSIsby50ZXh0Q29udGVudD1zIGluc3RhbmNlb2YgRXJyb3I/cy5tZXNzYWdlOiJcdTVCNTdcdTVFNTVcdTk4ODRcdTg5QzhcdTU5MzFcdThEMjUifSl9ZnVuY3Rpb24gV3QodCl7bGV0e2JvZHk6bixzdGF0dXM6ZX09WXQoYFx1OEZDNVx1OTZGN1x1NUI1N1x1NUU1NSAtICR7cCh0KX1gKTtlLnRleHRDb250ZW50PSJcdTZCNjNcdTU3MjhcdTY3RTVcdThCRTJcdThGQzVcdTk2RjdcdTVCNTdcdTVFNTUuLi4iLEd0KHQpLnRoZW4ocj0+e2lmKCFyLmxlbmd0aCl7ZS5zdHlsZS5jb2xvcj0iI2ZjZDM0ZCIsZS50ZXh0Q29udGVudD0iXHU4RkM1XHU5NkY3XHU0RTJEXHU2MjdFXHU0RTBEXHU1MjMwXHU3NkY4XHU1MTczXHU1QjU3XHU1RTU1XHUzMDAyIjtyZXR1cm59ZS5zdHlsZS5jb2xvcj0iIzg2ZWZhYyIsZS50ZXh0Q29udGVudD1gXHU2MjdFXHU1MjMwICR7ci5sZW5ndGh9IFx1Njc2MVx1NUI1N1x1NUU1NVx1MzAwMmA7bGV0IG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7by5zdHlsZS5kaXNwbGF5PSJncmlkIixvLnN0eWxlLmdhcD0iOHB4IixuLmFwcGVuZENoaWxkKG8pLHIuZm9yRWFjaChzPT57bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5zdHlsZS5kaXNwbGF5PSJncmlkIixpLnN0eWxlLmdyaWRUZW1wbGF0ZUNvbHVtbnM9Im1pbm1heCgwLCAxZnIpIGF1dG8iLGkuc3R5bGUuZ2FwPSIxMHB4IixpLnN0eWxlLmFsaWduSXRlbXM9ImNlbnRlciIsaS5zdHlsZS5wYWRkaW5nPSIxMHB4IDAiLGkuc3R5bGUuYm9yZGVyVG9wPSIxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSIsby5hcHBlbmRDaGlsZChpKTtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTthLnN0eWxlLm1pbldpZHRoPSIwIixpLmFwcGVuZENoaWxkKGEpO2xldCBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2wudGV4dENvbnRlbnQ9cy5uYW1lfHxPKHMsdCksbC50aXRsZT1sLnRleHRDb250ZW50LGwuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsbC5zdHlsZS50ZXh0T3ZlcmZsb3c9ImVsbGlwc2lzIixsLnN0eWxlLndoaXRlU3BhY2U9Im5vd3JhcCIsbC5zdHlsZS5jb2xvcj0iI2ZmZmZmZiIsbC5zdHlsZS5mb250U2l6ZT0iMTNweCIsYS5hcHBlbmRDaGlsZChsKTtsZXQgdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt1LnRleHRDb250ZW50PXMuZXh0LnRvVXBwZXJDYXNlKCksdS5zdHlsZS5tYXJnaW5Ub3A9IjJweCIsdS5zdHlsZS5jb2xvcj0iIzljYTNhZiIsdS5zdHlsZS5mb250U2l6ZT0iMTJweCIsYS5hcHBlbmRDaGlsZCh1KTtsZXQgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtjLnN0eWxlLmRpc3BsYXk9ImZsZXgiLGMuc3R5bGUuZ2FwPSI4cHgiLGMuc3R5bGUuYWxpZ25JdGVtcz0iY2VudGVyIixpLmFwcGVuZENoaWxkKGMpO2xldCBkPVQoIlx1OTg4NFx1ODlDOCIpO2QuZGlzYWJsZWQ9IWp0KHMpLGQuc3R5bGUub3BhY2l0eT1kLmRpc2FibGVkPyIwLjUiOiIxIixkLnN0eWxlLmN1cnNvcj1kLmRpc2FibGVkPyJub3QtYWxsb3dlZCI6InBvaW50ZXIiLGQudGl0bGU9ZC5kaXNhYmxlZD8iXHU0RUM1XHU2NTJGXHU2MzAxXHU5ODg0XHU4OUM4IEFTUyBcdTU0OEMgU1JUIFx1NUI1N1x1NUU1NSI6Ilx1OTg4NFx1ODlDOFx1NUI1N1x1NUU1NSIsZC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntkLmRpc2FibGVkfHxBZShzLHQpfSksYy5hcHBlbmRDaGlsZChkKTtsZXQgeT1UKCJcdTRFMEJcdThGN0QiKTt5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3kuZGlzYWJsZWQ9ITAseS50ZXh0Q29udGVudD0iXHU0RTBCXHU4RjdEXHU0RTJELi4uIixZKHMudXJsKS50aGVuKG09PntXKG0sTyhzLHQpKSx5LnRleHRDb250ZW50PSJcdTVERjJcdTRFMEJcdThGN0QifSkuY2F0Y2gobT0+e3kudGV4dENvbnRlbnQ9Ilx1NTkzMVx1OEQyNSIseS50aXRsZT1tIGluc3RhbmNlb2YgRXJyb3I/bS5tZXNzYWdlOiJcdTVCNTdcdTVFNTVcdTRFMEJcdThGN0RcdTU5MzFcdThEMjUifSkuZmluYWxseSgoKT0+e3dpbmRvdy5zZXRUaW1lb3V0KCgpPT57eS5kaXNhYmxlZD0hMSx5LnRleHRDb250ZW50PSJcdTRFMEJcdThGN0QifSwxMjAwKX0pfSksYy5hcHBlbmRDaGlsZCh5KX0pfSkuY2F0Y2gocj0+e2Uuc3R5bGUuY29sb3I9IiNmY2E1YTUiLGUudGV4dENvbnRlbnQ9ciBpbnN0YW5jZW9mIEVycm9yP3IubWVzc2FnZToiXHU4RkM1XHU5NkY3XHU1QjU3XHU1RTU1XHU2N0U1XHU4QkUyXHU1OTMxXHU4RDI1In0pfWZ1bmN0aW9uIFp0KHQpe3dpbmRvdy5vcGVuKER0KHQpLCJfYmxhbmsiLCJub29wZW5lcixub3JlZmVycmVyIil9ZnVuY3Rpb24ga2UoKXtsZXQgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChnKTtyZXR1cm4gdCE9bnVsbCYmdC5kYXRhc2V0LmNvZGU/cCh0LmRhdGFzZXQuY29kZSk6bnVsbH1mdW5jdGlvbiBaKHQsbil7aWYoIW4pcmV0dXJuO2xldCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2Uuc3R5bGUubWFyZ2luVG9wPSIxNHB4IixlLnN0eWxlLnBhZGRpbmdUb3A9IjEycHgiLGUuc3R5bGUuYm9yZGVyVG9wPSIxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSI7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ci5zdHlsZS5kaXNwbGF5PSJmbGV4IixyLnN0eWxlLmFsaWduSXRlbXM9ImNlbnRlciIsci5zdHlsZS5qdXN0aWZ5Q29udGVudD0ic3BhY2UtYmV0d2VlbiIsci5zdHlsZS5nYXA9IjEwcHgiLHIuc3R5bGUubWFyZ2luQm90dG9tPSIxMHB4IixlLmFwcGVuZENoaWxkKHIpO2xldCBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0cm9uZyIpO28udGV4dENvbnRlbnQ9Ilx1NzhDMVx1NTI5Qlx1OEQ0NFx1NkU5MCIsby5zdHlsZS5jb2xvcj0iI2YzZjRmNiIsby5zdHlsZS5mb250U2l6ZT0iMTNweCIsby5zdHlsZS5mb250V2VpZ2h0PSI2MDAiLHIuYXBwZW5kQ2hpbGQobyk7bGV0IHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7cy50eXBlPSJidXR0b24iLHMudGV4dENvbnRlbnQ9Ilx1NjdFNVx1OEJFMlx1NzhDMVx1NTI5Qlx1OEQ0NFx1NkU5MCIscy5zdHlsZS5ib3JkZXI9IjFweCBzb2xpZCByZ2JhKDI1MSwgMTkxLCAzNiwgMC4yOCkiLHMuc3R5bGUuYm9yZGVyUmFkaXVzPSI4cHgiLHMuc3R5bGUuYmFja2dyb3VuZD0icmdiYSgyNTEsIDE5MSwgMzYsIDAuMSkiLHMuc3R5bGUuY29sb3I9IiNmZGU2OGEiLHMuc3R5bGUuY3Vyc29yPSJwb2ludGVyIixzLnN0eWxlLmZvbnRTaXplPSIxMnB4IixzLnN0eWxlLnBhZGRpbmc9IjVweCA5cHgiLHIuYXBwZW5kQ2hpbGQocyk7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5zdHlsZS5jb2xvcj0iIzljYTNhZiIsaS5zdHlsZS5mb250U2l6ZT0iMTJweCIsaS50ZXh0Q29udGVudD0iXHU2N0U1XHU4QkUyXHU1NDBFXHU0RjFBXHU1MTk5XHU1MTY1IE15SkFWIFx1NzhDMVx1NTI5Qlx1OEQ0NFx1NkU5MFx1N0YxM1x1NUI1OFx1MzAwMiIsZS5hcHBlbmRDaGlsZChpKTtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTthLmNsYXNzTmFtZT0iamF2c3Rhc2gtc2Nyb2xsYWJsZSBqYXZzdGFzaC1tYWduZXQtbGlzdCIsYS5zdHlsZS5kaXNwbGF5PSJub25lIixhLnN0eWxlLm1hcmdpblRvcD0iMTBweCIsYS5zdHlsZS5tYXhIZWlnaHQ9IjI0MHB4IixhLnN0eWxlLm92ZXJmbG93WD0iaGlkZGVuIixhLnN0eWxlLm92ZXJmbG93WT0iYXV0byIsYS5zdHlsZS5wYWRkaW5nUmlnaHQ9IjJweCIsZS5hcHBlbmRDaGlsZChhKSxzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3MuZGlzYWJsZWQ9ITAscy50ZXh0Q29udGVudD0iXHU2N0U1XHU4QkUyXHU0RTJELi4uIixpLnN0eWxlLmNvbG9yPSIjOWNhM2FmIixpLnRleHRDb250ZW50PSJcdTZCNjNcdTU3MjhcdTc1MzFcdTY3MkNcdTY3M0FcdTY3RTVcdThCRTIgQlREaWdnIFx1NTQ4QyBTdWtlYmVpLi4uIixhLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGEuaW5uZXJIVE1MPSIiLFByb21pc2UuYWxsKFtVKG4pLFYobildKS50aGVuKGw9PkoobixsKSkudGhlbihsPT57bGV0IHU9QXJyYXkuaXNBcnJheShsLml0ZW1zKT9sLml0ZW1zOltdLGM9QXJyYXkuaXNBcnJheShsLnNvdXJjZXMpP2wuc291cmNlczpbXSxkPWMuc29tZShtPT5tLnN0YXR1cz09PSJlcnJvciIpLHk9Yy5zb21lKG09Pm0uc3RhdHVzPT09InN1Y2Nlc3MiKTtpLnN0eWxlLmNvbG9yPWQmJiF5PyIjZmNhNWE1IjpkPyIjZmNkMzRkIjoiIzg2ZWZhYyIsaS50ZXh0Q29udGVudD11Lmxlbmd0aD4wP2BcdTVERjJcdTUxOTlcdTUxNjVcdTdGMTNcdTVCNThcdUZGMENcdTUxNzEgJHt1Lmxlbmd0aH0gXHU2NzYxXHUzMDAyJHtjLmxlbmd0aD8iICIrTihjKToiIn1gOmMubGVuZ3RoP04oYyk6Ilx1NURGMlx1NTE5OVx1NTE2NVx1N0YxM1x1NUI1OFx1RkYwQ1x1NTE3MSAwIFx1Njc2MVx1MzAwMiIsTGUoYSx1KSx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImphdnN0YXNoOm1hZ25ldHMtdXBkYXRlZCIse2RldGFpbDp7Y29kZTpwKG4pfX0pKX0pLmNhdGNoKGw9PntpLnN0eWxlLmNvbG9yPSIjZmNhNWE1IixpLnRleHRDb250ZW50PWwgaW5zdGFuY2VvZiBFcnJvcj9sLm1lc3NhZ2U6Ilx1NzhDMVx1NTI5Qlx1OEQ0NFx1NkU5MFx1NjdFNVx1OEJFMlx1NTkzMVx1OEQyNSJ9KS5maW5hbGx5KCgpPT57cy5kaXNhYmxlZD0hMSxzLnRleHRDb250ZW50PSJcdTY3RTVcdThCRTJcdTc4QzFcdTUyOUJcdThENDRcdTZFOTAifSl9KSx0LmFwcGVuZENoaWxkKGUpfWZ1bmN0aW9uIFEodCxuKXtpZighbilyZXR1cm47bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5zdHlsZS5tYXJnaW5Ub3A9IjE0cHgiLGUuc3R5bGUucGFkZGluZ1RvcD0iMTJweCIsZS5zdHlsZS5ib3JkZXJUb3A9IjFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIjtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHJvbmciKTtyLnRleHRDb250ZW50PSJcdTVCNTdcdTVFNTVcdThENDRcdTZFOTAiLHIuc3R5bGUuZGlzcGxheT0iYmxvY2siLHIuc3R5bGUuY29sb3I9IiNmM2Y0ZjYiLHIuc3R5bGUuZm9udFNpemU9IjEzcHgiLHIuc3R5bGUuZm9udFdlaWdodD0iNjAwIixyLnN0eWxlLm1hcmdpbkJvdHRvbT0iMTBweCIsZS5hcHBlbmRDaGlsZChyKTtsZXQgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtvLnN0eWxlLmRpc3BsYXk9ImZsZXgiLG8uc3R5bGUuZmxleFdyYXA9IndyYXAiLG8uc3R5bGUuZ2FwPSI4cHgiLGUuYXBwZW5kQ2hpbGQobyk7bGV0IHM9VCgiXHU4RkM1XHU5NkY3XHU1QjU3XHU1RTU1Iik7cy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pld0KG4pKSxvLmFwcGVuZENoaWxkKHMpO2xldCBpPVQoIlN1YlRpdGxlQ2F0Iik7aS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Plp0KG4pKSxvLmFwcGVuZENoaWxkKGkpLHQuYXBwZW5kQ2hpbGQoZSl9ZnVuY3Rpb24gX2UoKXt2YXIgcixvLHMsaTtsZXQgdD1BcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImgzIikpLmZpbmQoYT0+U3RyaW5nKGEudGV4dENvbnRlbnR8fCIiKS50cmltKCk9PT0iXHU3OEMxXHU1MjlCXHU4RDQ0XHU2RTkwIik7aWYodClyZXR1cm4obz0ocj10LmNsb3Nlc3QoInNlY3Rpb24iKSkhPW51bGw/cjp0LnBhcmVudEVsZW1lbnQpIT1udWxsP286bnVsbDtsZXQgbj1BcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInNlY3Rpb24iKSkuZmluZChhPT5TdHJpbmcoYS50ZXh0Q29udGVudHx8IiIpLmluY2x1ZGVzKCJcdTc4QzFcdTUyOUJcdThENDRcdTZFOTAiKSk7aWYobilyZXR1cm4gbjtsZXQgZT1BcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImgxLCBoMiwgaDQsIGg1LCBoNiwgc3Ryb25nLCBzcGFuLCBkaXYiKSkuZmluZChhPT5TdHJpbmcoYS50ZXh0Q29udGVudHx8IiIpLnRyaW0oKT09PSJcdTc4QzFcdTUyOUJcdThENDRcdTZFOTAiKTtyZXR1cm4oaT0ocz1lPT1udWxsP3ZvaWQgMDplLmNsb3Nlc3QoInNlY3Rpb24iKSkhPW51bGw/czplPT1udWxsP3ZvaWQgMDplLnBhcmVudEVsZW1lbnQpIT1udWxsP2k6bnVsbH1mdW5jdGlvbiBudCgpe2g9PW51bGx8fGguZGlzY29ubmVjdCgpLGg9bnVsbH1mdW5jdGlvbiBydCgpe2shPT1udWxsJiYod2luZG93LmNsZWFyVGltZW91dChrKSxrPW51bGwpfWZ1bmN0aW9uIHR0KHQpe2lmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKEZ0KSlyZXR1cm4hMDtpZighX2UoKSlyZXR1cm4hMTtsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtlLmlkPUZ0LGUuc3R5bGUucG9zaXRpb249ImZpeGVkIixlLnN0eWxlLnJpZ2h0PSIyNHB4IixlLnN0eWxlLmJvdHRvbT0iMjRweCIsZS5zdHlsZS53aWR0aD0iNTJweCIsZS5zdHlsZS5ib3JkZXI9IjFweCBzb2xpZCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xMikiLGUuc3R5bGUuYm9yZGVyUmFkaXVzPSIxNnB4IixlLnN0eWxlLmJhY2tncm91bmQ9InJnYmEoMTcsIDIwLCAyNCwgMC45KSIsZS5zdHlsZS5iYWNrZHJvcEZpbHRlcj0iYmx1cigxMHB4KSIsZS5zdHlsZS5ib3hTaGFkb3c9IjAgMTRweCAzNHB4IHJnYmEoMCwgMCwgMCwgMC4yNCkiLGUuc3R5bGUuekluZGV4PSIyMTQ3NDgzNjQ2IixlLnN0eWxlLmRpc3BsYXk9ImZsZXgiLGUuc3R5bGUuZmxleERpcmVjdGlvbj0iY29sdW1uIixlLnN0eWxlLmFsaWduSXRlbXM9ImNlbnRlciIsZS5zdHlsZS5qdXN0aWZ5Q29udGVudD0iY2VudGVyIixlLnN0eWxlLmdhcD0iNnB4IixlLnN0eWxlLnBhZGRpbmc9IjZweCI7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7ci50eXBlPSJidXR0b24iLHIudGV4dENvbnRlbnQ9Ilx1NzhDMVx1NTI5QiIsci50aXRsZT1gXHU0RTNBICR7dH0gXHU2N0U1XHU4QkUyXHU3OEMxXHU1MjlCXHU4RDQ0XHU2RTkwYCxyLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsYFx1NEUzQSAke3R9IFx1NjdFNVx1OEJFMlx1NzhDMVx1NTI5Qlx1OEQ0NFx1NkU5MGApLHIuc3R5bGUuYm9yZGVyPSIwIixyLnN0eWxlLndpZHRoPSI0MHB4IixyLnN0eWxlLmhlaWdodD0iNDBweCIsci5zdHlsZS5ib3JkZXJSYWRpdXM9IjEycHgiLHIuc3R5bGUuYmFja2dyb3VuZD0icmdiYSgyNTEsIDE5MSwgMzYsIDAuMTQpIixyLnN0eWxlLmNvbG9yPSIjZmRlNjhhIixyLnN0eWxlLmN1cnNvcj0icG9pbnRlciIsci5zdHlsZS5mb250U2l6ZT0iMTFweCIsci5zdHlsZS5mb250V2VpZ2h0PSI2MDAiLHIuc3R5bGUubGV0dGVyU3BhY2luZz0iMC4wOGVtIixlLmFwcGVuZENoaWxkKHIpLHIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ci5kaXNhYmxlZD0hMCxyLnRleHRDb250ZW50PSJcdTY3RTVcdThCRTJcdTRFMkQiLFByb21pc2UuYWxsKFtVKHQpLFYodCldKS50aGVuKGk9PkoodCxpKSkudGhlbihpPT57bGV0IGE9QXJyYXkuaXNBcnJheShpLml0ZW1zKT9pLml0ZW1zOltdLGw9QXJyYXkuaXNBcnJheShpLnNvdXJjZXMpP2kuc291cmNlczpbXSx1PWwuc29tZShkPT5kLnN0YXR1cz09PSJlcnJvciIpLGM9bC5zb21lKGQ9PmQuc3RhdHVzPT09InN1Y2Nlc3MiKTtyLnRleHRDb250ZW50PXUmJiFjPyJcdTU5MzFcdThEMjUiOmEubGVuZ3RoPjA/Ilx1NURGMlx1NjZGNFx1NjVCMCI6Ilx1NjVFMFx1N0VEM1x1Njc5QyIsci5zdHlsZS5jb2xvcj11JiYhYz8iI2ZjYTVhNSI6dT8iI2ZjZDM0ZCI6IiM4NmVmYWMiLHIudGl0bGU9YS5sZW5ndGg+MD9gXHU1REYyXHU1MTk5XHU1MTY1XHU3RjEzXHU1QjU4XHVGRjBDXHU1MTcxICR7YS5sZW5ndGh9IFx1Njc2MVx1MzAwMiR7bC5sZW5ndGg/IiAiK04obCk6IiJ9YDpsLmxlbmd0aD9OKGwpOiJcdTVERjJcdTUxOTlcdTUxNjVcdTdGMTNcdTVCNThcdUZGMENcdTUxNzEgMCBcdTY3NjFcdTMwMDIiLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiamF2c3Rhc2g6bWFnbmV0cy11cGRhdGVkIix7ZGV0YWlsOntjb2RlOnAodCl9fSkpfSkuY2F0Y2goaT0+e3IudGV4dENvbnRlbnQ9Ilx1NTkzMVx1OEQyNSIsci5zdHlsZS5jb2xvcj0iI2ZjYTVhNSIsci50aXRsZT1pIGluc3RhbmNlb2YgRXJyb3I/aS5tZXNzYWdlOiJcdTc4QzFcdTUyOUJcdThENDRcdTZFOTBcdTY3RTVcdThCRTJcdTU5MzFcdThEMjUifSkuZmluYWxseSgoKT0+e3dpbmRvdy5zZXRUaW1lb3V0KCgpPT57ci5kaXNhYmxlZD0hMSxyLnRleHRDb250ZW50PSJcdTc4QzFcdTUyOUIiLHIuc3R5bGUuY29sb3I9IiNmZGU2OGEiLHIudGl0bGU9YFx1NEUzQSAke3R9IFx1NjdFNVx1OEJFMlx1NzhDMVx1NTI5Qlx1OEQ0NFx1NkU5MGB9LDE2MDApfSl9KTtsZXQgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTtvLnR5cGU9ImJ1dHRvbiIsby50ZXh0Q29udGVudD0iXHU4RkM1XHU5NkY3IixvLnRpdGxlPWBcdTRFM0EgJHt0fSBcdTY3RTVcdThCRTJcdThGQzVcdTk2RjdcdTVCNTdcdTVFNTVgLG8uc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixgXHU0RTNBICR7dH0gXHU2N0U1XHU4QkUyXHU4RkM1XHU5NkY3XHU1QjU3XHU1RTU1YCksby5zdHlsZS5ib3JkZXI9IjAiLG8uc3R5bGUud2lkdGg9IjQwcHgiLG8uc3R5bGUuaGVpZ2h0PSI0MHB4IixvLnN0eWxlLmJvcmRlclJhZGl1cz0iMTJweCIsby5zdHlsZS5iYWNrZ3JvdW5kPSJyZ2JhKDk2LCAxNjUsIDI1MCwgMC4xNCkiLG8uc3R5bGUuY29sb3I9IiNiZmRiZmUiLG8uc3R5bGUuY3Vyc29yPSJwb2ludGVyIixvLnN0eWxlLmZvbnRTaXplPSIxMXB4IixvLnN0eWxlLmZvbnRXZWlnaHQ9IjYwMCIsby5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pld0KHQpKSxlLmFwcGVuZENoaWxkKG8pO2xldCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO3JldHVybiBzLnR5cGU9ImJ1dHRvbiIscy50ZXh0Q29udGVudD0iQ2F0IixzLnRpdGxlPWBcdTRFM0EgJHt0fSBcdTYyNTNcdTVGMDAgU3ViVGl0bGVDYXRgLHMuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixgXHU0RTNBICR7dH0gXHU2MjUzXHU1RjAwIFN1YlRpdGxlQ2F0YCkscy5zdHlsZS5ib3JkZXI9IjAiLHMuc3R5bGUud2lkdGg9IjQwcHgiLHMuc3R5bGUuaGVpZ2h0PSI0MHB4IixzLnN0eWxlLmJvcmRlclJhZGl1cz0iMTJweCIscy5zdHlsZS5iYWNrZ3JvdW5kPSJyZ2JhKDI0OCwgMTEzLCAxMTMsIDAuMTQpIixzLnN0eWxlLmNvbG9yPSIjZmVjYWNhIixzLnN0eWxlLmN1cnNvcj0icG9pbnRlciIscy5zdHlsZS5mb250U2l6ZT0iMTFweCIscy5zdHlsZS5mb250V2VpZ2h0PSI2MDAiLHMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5adCh0KSksZS5hcHBlbmRDaGlsZChzKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpLG50KCkscnQoKSwhMH1mdW5jdGlvbiBJZSh0KXtpZih0dCh0KXx8aHx8IWRvY3VtZW50LmJvZHkpcmV0dXJuO2g9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCk9Pnt0dCh0KX0pLGgub2JzZXJ2ZShkb2N1bWVudC5ib2R5LHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pO2xldCBuPTAsZT0oKT0+e2lmKCF0dCh0KSl7aWYobis9MSxuPj0xNil7cnQoKSxudCgpO3JldHVybn1rPXdpbmRvdy5zZXRUaW1lb3V0KGUsNTAwKX19O2s9d2luZG93LnNldFRpbWVvdXQoZSw1MDApLHdpbmRvdy5zZXRUaW1lb3V0KCgpPT57cnQoKSxudCgpfSw4ZTMpfWZ1bmN0aW9uIExlKHQsbil7aWYoIW4ubGVuZ3RoKXt0LnN0eWxlLmRpc3BsYXk9Im5vbmUiO3JldHVybn10LnN0eWxlLmRpc3BsYXk9ImJsb2NrIix0LmlubmVySFRNTD0iIjtsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTtlLnR5cGU9ImJ1dHRvbiIsZS50ZXh0Q29udGVudD0iXHU1OTBEXHU1MjM2XHU1MTY4XHU5MEU4IixlLnN0eWxlLm1hcmdpbkJvdHRvbT0iOHB4IixlLnN0eWxlLmJvcmRlcj0iMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiLGUuc3R5bGUuYm9yZGVyUmFkaXVzPSI4cHgiLGUuc3R5bGUuYmFja2dyb3VuZD0icmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KSIsZS5zdHlsZS5jb2xvcj0iI2YzZjRmNiIsZS5zdHlsZS5jdXJzb3I9InBvaW50ZXIiLGUuc3R5bGUuZm9udFNpemU9IjEycHgiLGUuc3R5bGUucGFkZGluZz0iNXB4IDlweCIsZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChuLm1hcChyPT5yLmxpbmspLmpvaW4oYApgKSksZS50ZXh0Q29udGVudD0iXHU1REYyXHU1OTBEXHU1MjM2Iix3aW5kb3cuc2V0VGltZW91dCgoKT0+e2UudGV4dENvbnRlbnQ9Ilx1NTkwRFx1NTIzNlx1NTE2OFx1OTBFOCJ9LDEyMDApfSksdC5hcHBlbmRDaGlsZChlKSxuLnNsaWNlKDAsMzApLmZvckVhY2gocj0+e2xldCBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO28uc3R5bGUuZGlzcGxheT0iZ3JpZCIsby5zdHlsZS5ncmlkVGVtcGxhdGVDb2x1bW5zPSJtaW5tYXgoMCwgMWZyKSBhdXRvIixvLnN0eWxlLmdhcD0iOHB4IixvLnN0eWxlLnBhZGRpbmc9IjhweCAwIixvLnN0eWxlLmJvcmRlclRvcD0iMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiO2xldCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3Muc3R5bGUubWluV2lkdGg9IjAiO2xldCBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtpLmhyZWY9ci5saW5rLGkudGV4dENvbnRlbnQ9ci5uYW1lfHxyLmxpbmssaS50aXRsZT1yLm5hbWV8fHIubGluayxpLnN0eWxlLmRpc3BsYXk9ImJsb2NrIixpLnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iLGkuc3R5bGUudGV4dE92ZXJmbG93PSJlbGxpcHNpcyIsaS5zdHlsZS53aGl0ZVNwYWNlPSJub3dyYXAiLGkuc3R5bGUuY29sb3I9IiNmZmZmZmYiLGkuc3R5bGUudGV4dERlY29yYXRpb249Im5vbmUiLGkuc3R5bGUuZm9udFNpemU9IjEzcHgiLHMuYXBwZW5kQ2hpbGQoaSk7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5zdHlsZS5tYXJnaW5Ub3A9IjJweCIsYS5zdHlsZS5jb2xvcj0iIzljYTNhZiIsYS5zdHlsZS5mb250U2l6ZT0iMTJweCIsYS50ZXh0Q29udGVudD1bci5zaXplfHwiLSIsci56aD8iXHU0RTJEXHU1QjU3IjoiIixBcnJheS5pc0FycmF5KHIuc291cmNlcyk/ci5zb3VyY2VzLmpvaW4oIiwgIik6ci5zb3VyY2V8fCIiXS5maWx0ZXIoQm9vbGVhbikuam9pbigiIFx4QjcgIikscy5hcHBlbmRDaGlsZChhKTtsZXQgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTtsLnR5cGU9ImJ1dHRvbiIsbC50ZXh0Q29udGVudD0iXHU1OTBEXHU1MjM2IixsLnN0eWxlLmFsaWduU2VsZj0iY2VudGVyIixsLnN0eWxlLmJvcmRlcj0iMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiLGwuc3R5bGUuYm9yZGVyUmFkaXVzPSI3cHgiLGwuc3R5bGUuYmFja2dyb3VuZD0icmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KSIsbC5zdHlsZS5jb2xvcj0iI2QxZDVkYiIsbC5zdHlsZS5jdXJzb3I9InBvaW50ZXIiLGwuc3R5bGUuZm9udFNpemU9IjEycHgiLGwuc3R5bGUucGFkZGluZz0iNHB4IDhweCIsbC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChyLmxpbmspLGwudGV4dENvbnRlbnQ9Ilx1NURGMlx1NTkwRFx1NTIzNiIsd2luZG93LnNldFRpbWVvdXQoKCk9PntsLnRleHRDb250ZW50PSJcdTU5MERcdTUyMzYifSwxMjAwKX0pLG8uYXBwZW5kQ2hpbGQocyksby5hcHBlbmRDaGlsZChsKSx0LmFwcGVuZENoaWxkKG8pfSl9ZnVuY3Rpb24gWHQodCxuKXtpZighbilyZXR1cm47bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5zdHlsZS5tYXJnaW5Ub3A9IjE0cHgiLGUuc3R5bGUucGFkZGluZ1RvcD0iMTJweCIsZS5zdHlsZS5ib3JkZXJUb3A9IjFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIjtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyLnN0eWxlLmRpc3BsYXk9ImZsZXgiLHIuc3R5bGUuYWxpZ25JdGVtcz0iY2VudGVyIixyLnN0eWxlLmp1c3RpZnlDb250ZW50PSJzcGFjZS1iZXR3ZWVuIixyLnN0eWxlLmdhcD0iMTBweCIsci5zdHlsZS5tYXJnaW5Cb3R0b209IjEwcHgiLGUuYXBwZW5kQ2hpbGQocik7bGV0IG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3Ryb25nIik7by50ZXh0Q29udGVudD0iXHU0RTJBXHU0RUJBXHU3MkI2XHU2MDAxIixvLnN0eWxlLmNvbG9yPSIjZjNmNGY2IixvLnN0eWxlLmZvbnRTaXplPSIxM3B4IixvLnN0eWxlLmZvbnRXZWlnaHQ9IjYwMCIsci5hcHBlbmRDaGlsZChvKTtsZXQgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtzLnN0eWxlLmNvbG9yPSIjOWNhM2FmIixzLnN0eWxlLmZvbnRTaXplPSIxMnB4IixzLnN0eWxlLmZsZXg9IjEgMSBhdXRvIixzLnN0eWxlLnRleHRBbGlnbj0icmlnaHQiLHMudGV4dENvbnRlbnQ9Ilx1NkI2M1x1NTcyOFx1NTQwQ1x1NkI2NVx1NEUyQVx1NEVCQVx1NzJCNlx1NjAwMS4uLiIsci5hcHBlbmRDaGlsZChzKTtsZXQgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpLnN0eWxlLmRpc3BsYXk9ImZsZXgiLGkuc3R5bGUuZmxleFdyYXA9IndyYXAiLGkuc3R5bGUuZ2FwPSI4cHgiLGkuc3R5bGUubWFyZ2luVG9wPSIxMHB4IixlLmFwcGVuZENoaWxkKGkpO2xldCBhPUMoKSxsPVtdLHU9ITEsYz0oKT0+e2kuaW5uZXJIVE1MPSIiLFNlLmZvckVhY2goZD0+e2xldCB5PWwuaW5jbHVkZXMoZCksbT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTttLnR5cGU9ImJ1dHRvbiIsbS50ZXh0Q29udGVudD1TW2RdLG0uZGlzYWJsZWQ9dXx8IWEsbS5zdHlsZS5ib3JkZXI9eT8iMXB4IHNvbGlkIHJnYmEoMjUxLCAxOTEsIDM2LCAwLjU1KSI6IjFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIixtLnN0eWxlLmJvcmRlclJhZGl1cz0iOTk5cHgiLG0uc3R5bGUuYmFja2dyb3VuZD15PyJyZ2JhKDI1MSwgMTkxLCAzNiwgMC4xNikiOiJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpIixtLnN0eWxlLmNvbG9yPXk/IiNmZGU2OGEiOiIjZDFkNWRiIixtLnN0eWxlLmN1cnNvcj1tLmRpc2FibGVkPyJub3QtYWxsb3dlZCI6InBvaW50ZXIiLG0uc3R5bGUuZm9udFNpemU9IjEycHgiLG0uc3R5bGUucGFkZGluZz0iNnB4IDEwcHgiLG0uc3R5bGUub3BhY2l0eT1tLmRpc2FibGVkPyIwLjU1IjoiMSIsbS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntpZihtLmRpc2FibGVkfHx1KXJldHVybjtsZXQgYj1sLmluY2x1ZGVzKGQpO3U9ITAscy5zdHlsZS5jb2xvcj0iIzljYTNhZiIscy50ZXh0Q29udGVudD1iP2BcdTZCNjNcdTU3MjhcdTUzRDZcdTZEODgke1NbZF19Li4uYDpgXHU2QjYzXHU1NzI4XHU2NkY0XHU2NUIwJHtTW2RdfS4uLmAsYygpLChiP1V0KG4sZCxhKTpQdChuLGQsYSkpLnRoZW4oXz0+e2w9S3QoXyxuKSxzLnN0eWxlLmNvbG9yPSIjODZlZmFjIixzLnRleHRDb250ZW50PWI/YFx1NURGMlx1NTNENlx1NkQ4OCR7U1tkXX1gOmBcdTVERjJcdTU0MENcdTZCNjUke1NbZF19YH0pLmNhdGNoKF89PntzLnN0eWxlLmNvbG9yPSIjZmNhNWE1IixzLnRleHRDb250ZW50PV8gaW5zdGFuY2VvZiBFcnJvcj9fLm1lc3NhZ2U6Ilx1NEUyQVx1NEVCQVx1NzJCNlx1NjAwMVx1NTQwQ1x1NkI2NVx1NTkzMVx1OEQyNSJ9KS5maW5hbGx5KCgpPT57dT0hMSxjKCl9KX0pLGkuYXBwZW5kQ2hpbGQobSl9KX07aWYoYygpLCFhKXtzLnRleHRDb250ZW50PSJcdTY3MkFcdTkxNERcdTdGNkVcdTRFMkFcdTRFQkFcdThCQkZcdTk1RUVcdTVCQzZcdTk0QTVcdUZGMENcdThCRjdcdTRFQ0VcdTZDQjlcdTczMzRcdTgzRENcdTUzNTVcdTRFMkRcdThCQkVcdTdGNkVcdTU0MEVcdTU0MENcdTZCNjVcdTdBMERcdTU0MEVcdTc3MEIgLyBcdTY1MzZcdTg1Q0YgLyBkaXNsaWtlXHUzMDAyIix0LmFwcGVuZENoaWxkKGUpO3JldHVybn1NdChuLGEpLnRoZW4oZD0+e2w9S3QoZCxuKSxzLnN0eWxlLmNvbG9yPSIjOWNhM2FmIixzLnRleHRDb250ZW50PWwubGVuZ3RoPjA/YFx1NURGMlx1NTQwQ1x1NkI2NSAke2wubWFwKHk9PlNbeV0pLmpvaW4oIiAvICIpfWA6Ilx1NUY1M1x1NTI0RFx1NUY3MVx1NzI0N1x1NjY4Mlx1NjVFMFx1NEUyQVx1NEVCQVx1NzJCNlx1NjAwMVx1MzAwMiIsYygpfSkuY2F0Y2goZD0+e3Muc3R5bGUuY29sb3I9IiNmY2E1YTUiLHMudGV4dENvbnRlbnQ9ZCBpbnN0YW5jZW9mIEVycm9yP2QubWVzc2FnZToiXHU0RTJBXHU0RUJBXHU3MkI2XHU2MDAxXHU4QkZCXHU1M0Q2XHU1OTMxXHU4RDI1In0pLHQuYXBwZW5kQ2hpbGQoZSl9ZnVuY3Rpb24gQih0KXtsZXQgbj13ZSgpO24uaW5uZXJIVE1MPSIiLG4uc3R5bGUuZGlzcGxheT0iYmxvY2siLG4uZGF0YXNldC5jb2RlPXQuY29kZT9wKHQuY29kZSk6IiI7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5zdHlsZS5kaXNwbGF5PSJmbGV4IixlLnN0eWxlLmp1c3RpZnlDb250ZW50PSJzcGFjZS1iZXR3ZWVuIixlLnN0eWxlLmFsaWduSXRlbXM9ImZsZXgtc3RhcnQiLGUuc3R5bGUubWFyZ2luQm90dG9tPSIxMnB4IixlLnN0eWxlLmdhcD0iMTJweCIsZS5zdHlsZS5wYWRkaW5nQm90dG9tPSIxMHB4IixlLnN0eWxlLmJvcmRlckJvdHRvbT0iMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiLGUuc3R5bGUuY3Vyc29yPSJwb2ludGVyIixlLm9uY2xpY2s9KCk9PmV0KCk7bGV0IHI9VGUodC5jb2RlKSxvPXI/ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpOmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0cm9uZyIpO28udGV4dENvbnRlbnQ9dC5jb2RlPyJcdTc1NkFcdTUzRjcgIit0LmNvZGUrIiBcdTc2ODRcdThCRTZcdTYwQzVcdTk4NzUiOiJcdTRFMkRcdTY1ODdcdTUxODVcdTVCQjlcdTY3RTVcdThCRTIiLG8uc3R5bGUuZm9udFdlaWdodD0iNTAwIixvLnN0eWxlLmZvbnRTaXplPSIxM3B4IixvLnN0eWxlLmxpbmVIZWlnaHQ9IjEuNSIsby5zdHlsZS5jb2xvcj0iIzljYTNhZiIsbyBpbnN0YW5jZW9mIEhUTUxBbmNob3JFbGVtZW50JiZyJiYoby5ocmVmPXIsby50YXJnZXQ9Il9ibGFuayIsby5yZWw9Im5vcmVmZXJyZXIgbm9vcGVuZXIiLG8uc3R5bGUudGV4dERlY29yYXRpb249Im5vbmUiKSxlLmFwcGVuZENoaWxkKG8pO2xldCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO3MudHlwZT0iYnV0dG9uIixzLnRleHRDb250ZW50PSJceEQ3IixzLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsIlx1NTE3M1x1OTVFRFx1NEUyRFx1NjU4N1x1OEJFNlx1NjBDNSIpLHMuc3R5bGUuYm9yZGVyPSIwIixzLnN0eWxlLmJhY2tncm91bmQ9InRyYW5zcGFyZW50IixzLnN0eWxlLmNvbG9yPSIjOWNhM2FmIixzLnN0eWxlLmN1cnNvcj0icG9pbnRlciIscy5zdHlsZS5mb250U2l6ZT0iMThweCIscy5zdHlsZS5saW5lSGVpZ2h0PSIxIixzLnN0eWxlLnBhZGRpbmc9IjAiLHMuc3R5bGUuZmxleD0iMCAwIGF1dG8iLHMub25jbGljaz0oKT0+ZXQoKSxlLmFwcGVuZENoaWxkKHMpLG4uYXBwZW5kQ2hpbGQoZSk7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aWYoaS5zdHlsZS5tYXJnaW5Ub3A9IjEycHgiLG4uYXBwZW5kQ2hpbGQoaSksdC5zdGF0ZT09PSJsb2FkaW5nIil7bGV0IGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZC5zdHlsZS5jb2xvcj0iI2QxZDVkYiIsZC50ZXh0Q29udGVudD0iXHU2QjYzXHU1NzI4XHU2N0U1XHU4QkUyXHU0RTJEXHU2NTg3XHU1MTg1XHU1QkI5Li4uIixpLmFwcGVuZENoaWxkKGQpLFEoaSx0LmNvZGUpLFooaSx0LmNvZGUpO3JldHVybn1pZih0LnN0YXRlPT09ImVycm9yIil7aS50ZXh0Q29udGVudD10Lm1lc3NhZ2V8fCJcdTY3RTVcdThCRTJcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTdBMERcdTU0MEVcdTkxQ0RcdThCRDVcdTMwMDIiLFh0KGksdC5jb2RlKSxRKGksdC5jb2RlKSxaKGksdC5jb2RlKTtyZXR1cm59bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5zdHlsZS5tYXJnaW5Cb3R0b209IjE0cHgiO2xldCBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2wuc3R5bGUuZm9udFNpemU9IjE2cHgiLGwuc3R5bGUuZm9udFdlaWdodD0iNjAwIixsLnN0eWxlLmNvbG9yPSIjZmZmZmZmIixsLnN0eWxlLmxldHRlclNwYWNpbmc9IjAuMDFlbSIsbC5zdHlsZS5saW5lSGVpZ2h0PSIxLjU1IixsLnRleHRDb250ZW50PXQudGl0bGV8fCJcdTY2ODJcdTY1RTBcdTY4MDdcdTk4OTgiLGEuYXBwZW5kQ2hpbGQobCksaS5hcHBlbmRDaGlsZChhKTtsZXQgdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt1LnN0eWxlLnBhZGRpbmc9IjEwcHggMTJweCIsdS5zdHlsZS5iYWNrZ3JvdW5kPSJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDMpIix1LnN0eWxlLmJvcmRlckxlZnQ9IjJweCBzb2xpZCByZ2JhKDI1MSwgMTkxLCAzNiwgMC40NSkiLHUuc3R5bGUuYm9yZGVyUmFkaXVzPSI4cHgiO2xldCBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2Muc3R5bGUuY29sb3I9IiNkMWQ1ZGIiLGMuc3R5bGUud2hpdGVTcGFjZT0icHJlLXdyYXAiLGMudGV4dENvbnRlbnQ9dC5kZXNjcmlwdGlvbnx8Ilx1NjY4Mlx1NjVFMFx1N0I4MFx1NEVDQiIsdS5hcHBlbmRDaGlsZChjKSxpLmFwcGVuZENoaWxkKHUpLFh0KGksdC5jb2RlKSxRKGksdC5jb2RlKSxaKGksdC5jb2RlKX1mdW5jdGlvbiBRdCh0KXtpZighdClyZXR1cm47aWYoRyh3aW5kb3cubG9jYXRpb24uaHJlZikpe0llKHQpO3JldHVybn1pZihkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuIitLKSlyZXR1cm47bGV0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7bi50eXBlPSJidXR0b24iLG4uY2xhc3NOYW1lPUssbi50ZXh0Q29udGVudD0iXHU0RTJEXHU2NTg3XHU4QkU2XHU2MEM1IixuLnN0eWxlLm1hcmdpbkxlZnQ9IjhweCIsbi5zdHlsZS5wYWRkaW5nPSI1cHggMTBweCIsbi5zdHlsZS5ib3JkZXI9IjFweCBzb2xpZCByZ2JhKDI1MSwgMTkxLCAzNiwgMC4zMikiLG4uc3R5bGUuYm9yZGVyUmFkaXVzPSI5OTlweCIsbi5zdHlsZS5iYWNrZ3JvdW5kPSIjMTcxYjIxIixuLnN0eWxlLmNvbG9yPSIjZjNmNGY2IixuLnN0eWxlLmN1cnNvcj0icG9pbnRlciIsbi5zdHlsZS5mb250U2l6ZT0iMTJweCIsbi5zdHlsZS5ib3hTaGFkb3c9IjAgNnB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjE4KSIsbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntpZih2ZSgpJiZrZSgpPT09cCh0KSl7ZXQoKTtyZXR1cm59bGV0IHI9d3QodCk7aWYocil7Qih7c3RhdGU6InN1Y2Nlc3MiLGNvZGU6ci5jb2RlLHRpdGxlOnIudGl0bGUsZGVzY3JpcHRpb246ci5kZXNjcmlwdGlvbixzb3VyY2U6ImNhY2hlIn0pO3JldHVybn1CKHtzdGF0ZToibG9hZGluZyIsY29kZTp0fSksUnQodCkudGhlbihvPT57bGV0IHM9dnQoe2NvZGU6by5jb2RlfHx0LHRpdGxlOm8udGl0bGV8fCIiLGRlc2NyaXB0aW9uOm8uZGVzY3JpcHRpb258fCIifSk7Qih7c3RhdGU6InN1Y2Nlc3MiLGNvZGU6cy5jb2RlLHRpdGxlOnMudGl0bGUsZGVzY3JpcHRpb246cy5kZXNjcmlwdGlvbixzb3VyY2U6Im5ldHdvcmsifSl9KS5jYXRjaChvPT57Qih7c3RhdGU6ImVycm9yIixjb2RlOnQsbWVzc2FnZTpvIGluc3RhbmNlb2YgRXJyb3I/by5tZXNzYWdlOiJcdTY3RTVcdThCRTJcdTU5MzFcdThEMjUifSl9KX0pO2xldCBlPVIodCk7aWYoZSl7ZS5wYXJlbnROb2RlP2UucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobixlLm5leHRTaWJsaW5nKTplLmFwcGVuZENoaWxkKG4pO3JldHVybn1uLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsbi5zdHlsZS50b3A9IjI0cHgiLG4uc3R5bGUucmlnaHQ9IjI0cHgiLG4uc3R5bGUuekluZGV4PSIyMTQ3NDgzNjQ2Iixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG4pfWZ1bmN0aW9uIFJlKCl7R01fcmVnaXN0ZXJNZW51Q29tbWFuZCgiXHU4QkJFXHU3RjZFXHU0RTJBXHU0RUJBXHU4QkJGXHU5NUVFXHU1QkM2XHU5NEE1IiwoKT0+e2xldCB0PUMoKSxuPXdpbmRvdy5wcm9tcHQoIlx1OEJGN1x1OEY5M1x1NTE2NVx1OEQyNlx1NjIzN1x1OTg3NVx1NzUxRlx1NjIxMFx1NzY4NFx1NEUyQVx1NEVCQVx1OEJCRlx1OTVFRVx1NUJDNlx1OTRBNVx1RkYwQ1x1NzUyOFx1NEU4RVx1NTQwQ1x1NkI2NVx1N0EwRFx1NTQwRVx1NzcwQiAvIFx1NjUzNlx1ODVDRiAvIGRpc2xpa2UiLHQpO3R5cGVvZiBuPT0ic3RyaW5nIiYmR01fc2V0VmFsdWUoTSxuLnRyaW0oKSl9KSxHTV9yZWdpc3Rlck1lbnVDb21tYW5kKCJcdTY3RTVcdTc3MEJcdTgxMUFcdTY3MkNcdThCQ0FcdTY1QURcdTRGRTFcdTYwNkYiLCgpPT57X3QoKX0pfWZ1bmN0aW9uIE1lKCl7dmFyIHMsaSxhLGwsdTtpZighd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLmluY2x1ZGVzKCJzdWJ0aXRsZWNhdC5jb20iKSlyZXR1cm4hMTtsZXQgdD0ocz1uZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpLmdldCgic2VhcmNoIikpPT1udWxsP3ZvaWQgMDpzLnRyaW0oKTtpZighdClyZXR1cm4hMDsoaT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC1iYW5uZXItaW5uZXIiKSk9PW51bGx8fGkuc3R5bGUuc2V0UHJvcGVydHkoImRpc3BsYXkiLCJub25lIiksKGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI25hdmJhciIpKT09bnVsbHx8YS5zdHlsZS5zZXRQcm9wZXJ0eSgiZGlzcGxheSIsIm5vbmUiKTtsZXQgbj1BcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zdWItdGFibGUgdHIgdGQgYSIpKSxlPXF0KG4ubWFwKGM9PmMudGV4dENvbnRlbnR8fCIiKSx0KSxyPTA7bi5mb3JFYWNoKChjLGQpPT57dmFyIGI7aWYoKGI9ZVtkXSkhPW51bGw/YjohMSl7cis9MTtyZXR1cm59bGV0IG09Yy5jbG9zZXN0KCJ0ciIpO20mJihtLnN0eWxlLmRpc3BsYXk9Im5vbmUiKX0pO2xldCBvPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zZWMtdGl0bGUiKTtpZihvIT1udWxsJiZvLmlubmVySFRNTCYmKG8uaW5uZXJIVE1MPW8uaW5uZXJIVE1MLnJlcGxhY2UoL15ccypcZCsvLFN0cmluZyhyKSkpLHI9PT0wKXtsZXQgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtjLnRleHRDb250ZW50PSJcdThCRTVcdTc1NkFcdTUzRjdcdTY1RTBcdTVCNTdcdTVFNTUiLGMuc3R5bGUubWFyZ2luPSIxNnB4IDAiLGMuc3R5bGUucGFkZGluZz0iMTBweCAxMnB4IixjLnN0eWxlLmJvcmRlclJhZGl1cz0iOHB4IixjLnN0eWxlLmJhY2tncm91bmQ9InJnYmEoMjQ4LCAxMTMsIDExMywgMC4xMikiLGMuc3R5bGUuY29sb3I9IiNiOTFjMWMiLGMuc3R5bGUuZm9udFNpemU9IjE0cHgiLCh1PShsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zdWItdGFibGUiKSk9PW51bGw/dm9pZCAwOmwucGFyZW50RWxlbWVudCk9PW51bGx8fHUucHJlcGVuZChjKX1yZXR1cm4hMH1mdW5jdGlvbiB0ZSgpe2lmKFJlKCksTWUoKSlyZXR1cm47bGV0IHQ9TCgpO3QmJlF0KHQpfWRvY3VtZW50LnJlYWR5U3RhdGU9PT0ibG9hZGluZyI/ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsdGUse29uY2U6ITB9KTp0ZSgpO30pKCk7Cg==';
  Function(globalThis.atob(payload))();
})();