CINXE.COM

Курсы МИФа

<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <base href="https://www.mann-ivanov-ferber.ru/" /> <title>Курсы МИФа </title> <meta name="description" content="Мы в МИФе любим учиться. Особенно по книгам, которые сами издаем. В какой-то момент мы поняли, что нам самим есть чему научить. Для этого мы запустили курсы"> <meta name="keywords" content="Курсы МИФа, курсы по саморазвитию, soft skills"> <meta property="og:type" content="article"/> <meta property="og:title" content="Курсы МИФа"/> <meta property="og:description" content="Мы в МИФе любим учиться. Особенно по книгам, которые сами издаем. В какой-то момент мы поняли, что нам самим есть чему научить. Для этого мы запустили курсы"/> <meta property="og:image" content="https://www.mann-ivanov-ferber.ru/assets/images/courses/courses-1200x667.png"/> <meta property="og:site_name" content="Издательство &amp;laquo;МИФ&amp;raquo;"/> <meta property="og:url" content="https://www.mann-ivanov-ferber.ru/courses/"/> <meta name='yandex-verification' content='439047a0861cf992' /> <meta property="fb:admins" content="1093864394" /> <link rel="icon" href="/favicon.ico" sizes="any"> <link rel="apple-touch-icon" href="/favicon_180.png"> <link rel="manifest" href="/manifest.json"> <link rel="search" href="https://www.mann-ivanov-ferber.ru/assets/opensearch.xml" type="application/opensearchdescription+xml" title="Издательство &amp;laquo;МИФ&amp;raquo;"/> <link href="https://fonts.googleapis.com/css?family=PT+Sans:400,400i,700,700i%7CPT+Serif:400,400i,700,700i&amp;subset=cyrillic" rel="stylesheet"> <link rel="stylesheet" href="/assets/new/build/page-list.css?31381d5b6ea6"/> <style> #react-header .fdFfJc { display: none!important; } /*Правки по формам*/ .nkk-subscribe-form * { box-sizing: border-box!important; } .nkk-subscribe-form { background: #fff; } .nkk-subscribe-form__figure { max-width: 420px; } @media (max-width: 1108px) { .nkk-subscribe-form__figure { max-width: 400px; margin-left: -140px; }} @media (max-width: 757px) { .nkk-subscribe-form__figure { max-width: 450px; width: 100%; margin-left: 10px; }} .nkk-subscribe-form__description { color: #000; margin-top: 8px!important; margin-bottom: 10px!important; } .nkk-subscribe-form__title { font-size: 32px; color: #000; line-height: 1.1; font-weight: 600; font-family: 'Circe', Arial, sans-serif; } .nkk-subscribe-form__data { padding-bottom: 50px; } .nkk-subscribe-form__button[disabled] { background-color: rgba(73, 96, 227); } button:disabled { color: rgba(255, 255, 255); } .nkk-subscribe-form__button { background: 50% 50% no-repeat #4960e3; height: 54px; font-family: circe, arial; } .nkk-subscribe-form__button:hover { background: 50% 50% no-repeat #4960e3; } .nkk-subscribe-form__input input { font-size: 17px; color: #363636; height: 54px; line-height: 42px; border: 1px solid #e4e4e4; outline: 0!important; padding: 0 13px; width: 100%; font-family: circe, arial; } .nkk-subscribe-form { background: none; } @media (max-width: 758px) { .nkk-subscribe-form__button { background-image: url(/assets/new/img/c-book-page/nkk-subscribe-arrow.png)!important; }} .nkk-subscribe-form__description { color: #000; margin-top: 8px!important; margin-bottom: 10px!important; } .nkk-subscribe-form__title { font-size: 32px; color: #000; line-height: 1.3; font-weight: 600; font-family: 'Circe',Arial,sans-serif; } .nkk-subscribe-form__data { padding-bottom: 50px; } /*Форма подписки на все курсы*/ .mif-tilda { display: block!important; } .fixed-cart { display: none; } .nkk-subscribe-form * { box-sizing: border-box!important; } .nkk-subscribe-form__figure { max-width: 440px; } @media (max-width: 1108px) { .nkk-subscribe-form__figure { max-width: 400px; margin-left: -140px; }} @media (max-width: 757px) { .nkk-subscribe-form__figure { max-width: 450px; width: 100%; margin-left: 10px; }} .nkk-subscribe-form__description { color: #000; margin-top: 8px!important; margin-bottom: 10px!important; } .nkk-subscribe-form__title { font-size: 32px; color: #000; line-height: 1.3; font-weight: 600; font-family: 'Circe',Arial,sans-serif; } .nkk-subscribe-form__data { padding-bottom: 50px; } </style> <script type="text/javascript" id="advcakeAsync"> (function ( a ) { var b = a.createElement("script"); b.async = 1; b.src = "//code.sfr7ag.ru/"; a=a.getElementsByTagName("script")[0]; a.parentNode.insertBefore(b,a) })(document); </script> <!--Подключение библиотеки для инициализации виджета ЮKassa--> <script src="https://yookassa.ru/checkout-widget/v1/checkout-widget.js"></script> </head> <body ng-controller="global" data-ng-class="{'is-opened-auth-popup': isOpenedAuthPopup}"> <div class="c-page-wrap"> <div id="react-header" style="position: relative; z-index:1004;" data-header='{"menu":[{"id":1,"title":"\u041a\u043d\u0438\u0433\u0438","shortTitle":"\u041a\u043d\u0438\u0433\u0438","longTitle":"\u041a\u043d\u0438\u0433\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/","active":false,"centerSection":2,"rightSection":3,"template":"books","count":null,"items":[{"id":4,"title":"\u041f\u0440\u043e\u0437\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/fiction\/","active":false,"count":722,"rightSection":null,"items":[{"id":1,"title":"\u041e\u0441\u0442\u0440\u043e\u0441\u044e\u0436\u0435\u0442\u043d\u0430\u044f \u043f\u0440\u043e\u0437\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/fiction\/?shelf=0","active":false,"rightSection":null},{"id":2,"title":"\u041c\u043e\u043b\u043e\u0434\u0451\u0436\u043d\u0430\u044f \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/fiction\/?shelf=1","active":false,"rightSection":null},{"id":3,"title":"\u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0437\u0430\u0440\u0443\u0431\u0435\u0436\u043d\u0430\u044f \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/fiction\/?shelf=2","active":false,"rightSection":null},{"id":4,"title":"\u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/fiction\/?shelf=3","active":false,"rightSection":null},{"id":5,"title":"\u0418\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0437\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/fiction\/?shelf=4","active":false,"rightSection":null},{"id":6,"title":"\u0420\u043e\u043c\u0430\u043d\u044b \u0432\u0437\u0440\u043e\u0441\u043b\u0435\u043d\u0438\u044f","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/fiction\/?shelf=5","active":false,"rightSection":null}]},{"id":3,"title":"\u0414\u0435\u0442\u0441\u0442\u0432\u043e","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/children-books\/","active":false,"count":1684,"rightSection":null,"items":[{"id":37,"title":"\u0425\u0443\u0434\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u0430 \u0434\u043b\u044f \u0434\u0435\u0442\u0435\u0439","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/children-books\/?shelf=0","active":false,"rightSection":null},{"id":38,"title":"\u041d\u0430\u0443\u0447\u043d\u043e-\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043d\u0438\u0433\u0438 \u0434\u043b\u044f \u0434\u0435\u0442\u0435\u0439","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/children-books\/?shelf=1","active":false,"rightSection":null},{"id":39,"title":"KUMON","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/children-books\/?shelf=2","active":false,"rightSection":null},{"id":40,"title":"\u0427\u0435\u0432\u043e\u0441\u0442\u0438\u043a","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/children-books\/?shelf=3","active":false,"rightSection":null},{"id":41,"title":"\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0434\u0435\u0442\u0435\u0439","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/children-books\/?shelf=4","active":false,"rightSection":null},{"id":42,"title":"\u0414\u043e\u0441\u0443\u0433 \u0438 \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0435\u0442\u0435\u0439","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/children-books\/?shelf=5","active":false,"rightSection":null},{"id":43,"title":"\u041a\u043d\u0438\u0433\u0438 \u0434\u043b\u044f \u043f\u043e\u0434\u0440\u043e\u0441\u0442\u043a\u043e\u0432","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/children-books\/?shelf=6","active":false,"rightSection":null},{"id":44,"title":"\u0414\u043b\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/children-books\/?shelf=7","active":false,"rightSection":null},{"id":45,"title":"\u041a\u043e\u043c\u0438\u043a\u0441\u044b \u0434\u043b\u044f \u0434\u0435\u0442\u0435\u0439","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/children-books\/?shelf=8","active":false,"rightSection":null},{"id":46,"title":"\u0414\u0435\u0442\u0441\u043a\u043e\u0435 \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u043e","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/children-books\/?shelf=9","active":false,"rightSection":null},{"id":47,"title":"\u0423\u043c\u043d\u044b\u0435 \u043a\u043d\u0438\u0436\u043a\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/children-books\/?shelf=10","active":false,"rightSection":null},{"id":48,"title":"\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043a \u0448\u043a\u043e\u043b\u0435","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/children-books\/?shelf=11","active":false,"rightSection":null},{"id":49,"title":"\u041d\u0435\u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/children-books\/?shelf=12","active":false,"rightSection":null},{"id":50,"title":"\u041f\u043e\u0434\u0430\u0440\u043e\u0447\u043d\u044b\u0435","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/children-books\/?shelf=13","active":false,"rightSection":null}]},{"id":2,"title":"\u041f\u0441\u0438\u0445\u043e\u043b\u043e\u0433\u0438\u044f","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/psychology-books\/","active":false,"count":825,"rightSection":null,"items":[{"id":51,"title":"\u041f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430\u044f \u043f\u0441\u0438\u0445\u043e\u043b\u043e\u0433\u0438\u044f","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/psychology-books\/?shelf=0","active":false,"rightSection":null},{"id":52,"title":"\u0421\u0442\u0440\u0435\u0441\u0441 \u0438 \u044d\u043c\u043e\u0446\u0438\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/psychology-books\/?shelf=1","active":false,"rightSection":null},{"id":53,"title":"\u041b\u044e\u0431\u043e\u0432\u044c \u0438 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/psychology-books\/?shelf=2","active":false,"rightSection":null},{"id":54,"title":"\u041e\u0441\u043e\u0437\u043d\u0430\u043d\u043d\u043e\u0441\u0442\u044c \u0438 \u043c\u0435\u0434\u0438\u0442\u0430\u0446\u0438\u044f","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/psychology-books\/?shelf=3","active":false,"rightSection":null},{"id":55,"title":"\u041a\u043d\u0438\u0433\u0438 \u0434\u043b\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/psychology-books\/?shelf=4","active":false,"rightSection":null},{"id":56,"title":"\u0411\u044b\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0441\u0442\u043a\u043e\u043c","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/psychology-books\/?shelf=5","active":false,"rightSection":null},{"id":57,"title":"\u0417\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 \u0442\u043e\u043a\u0441\u0438\u0447\u043d\u043e\u0441\u0442\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/psychology-books\/?shelf=6","active":false,"rightSection":null}]},{"id":5,"title":"\u0411\u0438\u0437\u043d\u0435\u0441","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/business-books\/","active":false,"count":884,"rightSection":null,"items":[{"id":58,"title":"\u0410\u0443\u0434\u0438\u043e\u043a\u043d\u0438\u0433\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/business-books\/?shelf=0","active":false,"rightSection":null},{"id":59,"title":"\u041c\u0435\u043d\u0435\u0434\u0436\u043c\u0435\u043d\u0442","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/business-books\/?shelf=1","active":false,"rightSection":null},{"id":60,"title":"\u041f\u0440\u043e\u0434\u0430\u0436\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/business-books\/?shelf=2","active":false,"rightSection":null},{"id":61,"title":"\u0418\u0441\u0442\u043e\u0440\u0438\u0438 \u0443\u0441\u043f\u0435\u0445\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/business-books\/?shelf=3","active":false,"rightSection":null},{"id":62,"title":"\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u043e\u0432","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/business-books\/?shelf=4","active":false,"rightSection":null},{"id":63,"title":"\u041f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044e","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/business-books\/?shelf=5","active":false,"rightSection":null},{"id":64,"title":"\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0435\u0439","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/business-books\/?shelf=6","active":false,"rightSection":null},{"id":65,"title":"\u0421\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/business-books\/?shelf=7","active":false,"rightSection":null},{"id":66,"title":"\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/business-books\/?shelf=8","active":false,"rightSection":null},{"id":67,"title":"\u041f\u0435\u0440\u0435\u0433\u043e\u0432\u043e\u0440\u044b","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/business-books\/?shelf=9","active":false,"rightSection":null},{"id":68,"title":"\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/business-books\/?shelf=10","active":false,"rightSection":null},{"id":69,"title":"HR","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/business-books\/?shelf=11","active":false,"rightSection":null},{"id":70,"title":"\u0420\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0431\u0438\u0437\u043d\u0435\u0441","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/business-books\/?shelf=12","active":false,"rightSection":null},{"id":71,"title":"IT","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/business-books\/?shelf=13","active":false,"rightSection":null}]},{"id":6,"title":"\u041a\u0443\u043b\u044c\u0442\u0443\u0440\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/culture-books\/","active":false,"count":490,"rightSection":null,"items":[{"id":72,"title":"\u0410\u0432\u0442\u043e\u0444\u0438\u043a\u0448\u043d \u0438 \u0431\u0438\u043e\u0433\u0440\u0430\u0444\u0438\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/culture-books\/?shelf=0","active":false,"rightSection":null},{"id":73,"title":"\u0421\u0435\u0440\u0438\u044f \u00ab\u0422\u0430\u0440\u043e \u041c\u0418\u0424\u00bb","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/culture-books\/?shelf=1","active":false,"rightSection":null},{"id":74,"title":"\u0421\u0435\u0440\u0438\u044f \u00ab\u041c\u0438\u0444\u044b \u043e\u0442 \u0438 \u0434\u043e\u00bb","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/culture-books\/?shelf=2","active":false,"rightSection":null},{"id":75,"title":"\u041f\u043e\u0434\u0430\u0440\u043e\u0447\u043d\u044b\u0435 \u043a\u043d\u0438\u0433\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/culture-books\/?shelf=3","active":false,"rightSection":null},{"id":76,"title":"\u041a\u0443\u043b\u044c\u0442\u0443\u0440\u043d\u044b\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0438, \u0441\u0442\u0440\u0430\u043d\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/culture-books\/?shelf=4","active":false,"rightSection":null},{"id":77,"title":"\u0418\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u043e \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/culture-books\/?shelf=5","active":false,"rightSection":null},{"id":78,"title":"\u0422\u0435\u0430\u0442\u0440 \u0438 \u043a\u0438\u043d\u043e, \u043c\u0443\u0437\u044b\u043a\u0430, \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/culture-books\/?shelf=6","active":false,"rightSection":null},{"id":79,"title":"\u0421\u0435\u0440\u0438\u044f \u00ab\u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u0438\u00bb","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/culture-books\/?shelf=7","active":false,"rightSection":null}]},{"id":1,"title":"\u0421\u0430\u043c\u043e\u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/samorazvitie-books\/","active":false,"count":1208,"rightSection":null,"items":[{"id":22,"title":"\u0421\u043f\u043e\u043a\u043e\u0439\u0441\u0442\u0432\u0438\u0435 \u0438 \u0434\u0443\u0448\u0435\u0432\u043d\u043e\u0435 \u0440\u0430\u0432\u043d\u043e\u0432\u0435\u0441\u0438\u0435","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/samorazvitie-books\/?shelf=0","active":false,"rightSection":null},{"id":23,"title":"\u0410\u0443\u0434\u0438\u043e\u043a\u043d\u0438\u0433\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/samorazvitie-books\/?shelf=1","active":false,"rightSection":null},{"id":24,"title":"\u041c\u0435\u0447\u0442\u044b \u0438 \u0446\u0435\u043b\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/samorazvitie-books\/?shelf=2","active":false,"rightSection":null},{"id":25,"title":"\u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/samorazvitie-books\/?shelf=3","active":false,"rightSection":null},{"id":26,"title":"\u041c\u043e\u0437\u0433 \u0438 \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/samorazvitie-books\/?shelf=4","active":false,"rightSection":null},{"id":27,"title":"\u041f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/samorazvitie-books\/?shelf=5","active":false,"rightSection":null},{"id":28,"title":"\u041f\u0441\u0438\u0445\u043e\u043b\u043e\u0433\u0438\u044f","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/samorazvitie-books\/?shelf=6","active":false,"rightSection":null},{"id":29,"title":"\u041e\u0431\u0449\u0435\u043d\u0438\u0435","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/samorazvitie-books\/?shelf=7","active":false,"rightSection":null},{"id":30,"title":"\u0421\u0438\u043b\u0430 \u0432\u043e\u043b\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/samorazvitie-books\/?shelf=8","active":false,"rightSection":null},{"id":31,"title":"\u0422\u0430\u0439\u043c-\u043c\u0435\u043d\u0435\u0434\u0436\u043c\u0435\u043d\u0442","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/samorazvitie-books\/?shelf=9","active":false,"rightSection":null},{"id":32,"title":"\u0414\u0435\u043d\u044c\u0433\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/samorazvitie-books\/?shelf=10","active":false,"rightSection":null},{"id":33,"title":"\u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/samorazvitie-books\/?shelf=11","active":false,"rightSection":null},{"id":34,"title":"\u0412\u044b\u0431\u043e\u0440 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/samorazvitie-books\/?shelf=12","active":false,"rightSection":null},{"id":35,"title":"\u041f\u0440\u0438\u043d\u044f\u0442\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0439","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/samorazvitie-books\/?shelf=12","active":false,"rightSection":null},{"id":36,"title":"\u041e\u0441\u043e\u0437\u043d\u0430\u043d\u043d\u043e\u0441\u0442\u044c","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/samorazvitie-books\/?shelf=14","active":false,"rightSection":null}]},{"id":7,"title":"\u041b\u0430\u0439\u0444\u0441\u0442\u0430\u0439\u043b","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/lifestyle-books\/","active":false,"count":136,"rightSection":null,"items":[{"id":80,"title":"\u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043c\u0430\u0433\u0438\u044f","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/lifestyle-books\/?shelf=0","active":false,"rightSection":null},{"id":81,"title":"\u0414\u043e\u043c \u0438 \u0441\u0430\u0434","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/lifestyle-books\/?shelf=1","active":false,"rightSection":null},{"id":82,"title":"\u041a\u0443\u043b\u0438\u043d\u0430\u0440\u0438\u044f","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/lifestyle-books\/?shelf=2","active":false,"rightSection":null},{"id":83,"title":"\u0412\u0435\u043b\u043d\u0435\u0441, \u043a\u0440\u0430\u0441\u043e\u0442\u0430, \u043c\u043e\u0434\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/lifestyle-books\/?shelf=3","active":false,"rightSection":null}]},{"id":8,"title":"\u0422\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u043e","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/creativity-books\/","active":false,"count":675,"rightSection":null,"items":[{"id":84,"title":"\u0412\u0434\u043e\u0445\u043d\u043e\u0432\u0435\u043d\u0438\u0435 \u0438 \u043c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/creativity-books\/?shelf=0","active":false,"rightSection":null},{"id":85,"title":"Handmade \u0438 \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u043a\u0438\u0439 \u0431\u0438\u0437\u043d\u0435\u0441","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/creativity-books\/?shelf=1","active":false,"rightSection":null},{"id":86,"title":"\u0420\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/creativity-books\/?shelf=2","active":false,"rightSection":null},{"id":87,"title":"\u0420\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0449\u0438\u0445","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/creativity-books\/?shelf=3","active":false,"rightSection":null},{"id":88,"title":"\u041b\u0435\u0442\u0442\u0435\u0440\u0438\u043d\u0433 \u0438 \u043a\u0430\u043b\u043b\u0438\u0433\u0440\u0430\u0444\u0438\u044f","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/creativity-books\/?shelf=4","active":false,"rightSection":null},{"id":89,"title":"\u041f\u0438\u0441\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/creativity-books\/?shelf=5","active":false,"rightSection":null},{"id":90,"title":"\u0424\u043e\u0442\u043e\u043c\u0430\u0441\u0442\u0435\u0440\u0441\u043a\u0430\u044f","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/creativity-books\/?shelf=6","active":false,"rightSection":null},{"id":91,"title":"\u0410\u043a\u0442\u0438\u0432\u0438\u0442\u0438 \u0434\u043b\u044f \u0432\u0437\u0440\u043e\u0441\u043b\u044b\u0445","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/creativity-books\/?shelf=7","active":false,"rightSection":null},{"id":92,"title":"\u041b\u0435\u0433\u0435\u043d\u0434\u0430\u0440\u043d\u0430\u044f \u0441\u0435\u0440\u0438\u044f \u0411\u0430\u0440\u0431\u0430\u0440\u044b \u0428\u0435\u0440","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/creativity-books\/?shelf=8","active":false,"rightSection":null},{"id":93,"title":"\u041f\u0441\u0438\u0445\u043e\u043b\u043e\u0433\u0438\u044f \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/creativity-books\/?shelf=9","active":false,"rightSection":null},{"id":94,"title":"\u0414\u0438\u0437\u0430\u0439\u043d","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/creativity-books\/?shelf=10","active":false,"rightSection":null},{"id":95,"title":"\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/creativity-books\/?shelf=11","active":false,"rightSection":null},{"id":96,"title":"\u0422\u0432\u043e\u0440\u0447\u0435\u0441\u043a\u0438\u0439 \u0431\u0438\u0437\u043d\u0435\u0441","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/creativity-books\/?shelf=12","active":false,"rightSection":null},{"id":97,"title":"\u0412\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0435","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/creativity-books\/?shelf=13","active":false,"rightSection":null},{"id":98,"title":"\u0422\u0432\u043e\u0440\u0447\u0435\u0441\u043a\u043e\u0435 \u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0435","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/creativity-books\/?shelf=14","active":false,"rightSection":null},{"id":99,"title":"\u041c\u0410\u041a \u041c\u0418\u0424","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/creativity-books\/?shelf=15","active":false,"rightSection":null}]},{"id":9,"title":"\u041a\u043e\u043c\u0438\u043a\u0441\u044b","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/comic-books\/","active":false,"count":312,"rightSection":null,"items":[{"id":100,"title":"\u0414\u0435\u0442\u0441\u043a\u0438\u0435 \u043a\u043e\u043c\u0438\u043a\u0441\u044b","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/comic-books\/?shelf=0","active":false,"rightSection":null},{"id":101,"title":"\u0412\u0437\u0440\u043e\u0441\u043b\u044b\u0435 \u043a\u043e\u043c\u0438\u043a\u0441\u044b","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/comic-books\/?shelf=1","active":false,"rightSection":null},{"id":102,"title":"\u041c\u043e\u043b\u043e\u0434\u0435\u0436\u043d\u044b\u0435 \u043a\u043e\u043c\u0438\u043a\u0441\u044b","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/comic-books\/?shelf=2","active":false,"rightSection":null},{"id":103,"title":"\u0421\u0435\u0440\u0438\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/comic-books\/?shelf=3","active":false,"rightSection":null},{"id":104,"title":"\u041f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043c\u0438\u043a\u0441\u044b","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/comic-books\/?shelf=4","active":false,"rightSection":null}]},{"id":10,"title":"\u0417\u0434\u043e\u0440\u043e\u0432\u044c\u0435 \u0438 \u043c\u0435\u0434\u0438\u0446\u0438\u043d\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/health-books\/","active":false,"count":255,"rightSection":null,"items":[{"id":105,"title":"\u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u043f\u0438\u0442\u0430\u043d\u0438\u0435","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/health-books\/?shelf=0","active":false,"rightSection":null},{"id":106,"title":"\u0421\u043f\u043e\u0440\u0442","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/health-books\/?shelf=1","active":false,"rightSection":null},{"id":107,"title":"\u0414\u043e\u043b\u0433\u043e\u043b\u0435\u0442\u0438\u0435","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/health-books\/?shelf=2","active":false,"rightSection":null},{"id":108,"title":"\u0411\u0435\u0433","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/health-books\/?shelf=3","active":false,"rightSection":null},{"id":109,"title":"\u0424\u0438\u0442\u043d\u0435\u0441","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/health-books\/?shelf=4","active":false,"rightSection":null},{"id":110,"title":"\u041c\u0435\u0434\u0438\u0442\u0430\u0446\u0438\u044f","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/health-books\/?shelf=5","active":false,"rightSection":null},{"id":111,"title":"\u0417\u0434\u043e\u0440\u043e\u0432\u044b\u0439 \u0441\u043e\u043d","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/health-books\/?shelf=6","active":false,"rightSection":null},{"id":112,"title":"\u0414\u0438\u0435\u0442\u044b","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/health-books\/?shelf=7","active":false,"rightSection":null}]},{"id":11,"title":"\u041d\u0430\u0443\u0447\u043f\u043e\u043f","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/science-books\/","active":false,"count":254,"rightSection":null,"items":[{"id":113,"title":"\u0424\u0438\u0437\u0438\u043a\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/science-books\/?shelf=0","active":false,"rightSection":null},{"id":114,"title":"\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/science-books\/?shelf=1","active":false,"rightSection":null},{"id":115,"title":"\u042d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/science-books\/?shelf=2","active":false,"rightSection":null},{"id":116,"title":"\u0417\u0434\u043e\u0440\u043e\u0432\u044c\u0435 \u0438 \u043c\u0435\u0434\u0438\u0446\u0438\u043d\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/science-books\/?shelf=3","active":false,"rightSection":null},{"id":117,"title":"\u041c\u044b\u0448\u043b\u0435\u043d\u0438\u0435 \u0438 \u043f\u0441\u0438\u0445\u043e\u043b\u043e\u0433\u0438\u044f","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/science-books\/?shelf=4","active":false,"rightSection":null},{"id":118,"title":"\u0422\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/science-books\/?shelf=5","active":false,"rightSection":null}]},{"id":12,"title":"\u041f\u043e\u0434\u0430\u0440\u043e\u0447\u043d\u044b\u0435 \u043a\u043d\u0438\u0433\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/gift-books\/","active":false,"count":509,"rightSection":null,"items":[{"id":119,"title":"\u0418\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u043e, \u043a\u0443\u043b\u044c\u0442\u0443\u0440\u0430 \u0438 \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u044f","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/gift-books\/?shelf=0","active":false,"rightSection":null},{"id":120,"title":"\u0414\u043b\u044f \u0434\u0435\u0442\u0435\u0439","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/gift-books\/?shelf=1","active":false,"rightSection":null},{"id":121,"title":"\u0420\u0430\u0431\u043e\u0442\u0430 \u0438 \u0431\u0438\u0437\u043d\u0435\u0441","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/gift-books\/?shelf=2","active":false,"rightSection":null},{"id":122,"title":"\u0414\u043b\u044f \u0434\u0443\u0448\u0438 \u0438 \u0443\u044e\u0442\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/gift-books\/?shelf=3","active":false,"rightSection":null},{"id":123,"title":"\u0417\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/gift-books\/?shelf=4","active":false,"rightSection":null},{"id":124,"title":"\u0412\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0441\u0435\u0431\u044f","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/gift-books\/?shelf=5","active":false,"rightSection":null}]},{"id":13,"title":"\u041c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/marketing-books\/","active":false,"count":220,"rightSection":null,"items":[{"id":125,"title":"\u041c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433 \u0438 \u0431\u0440\u0435\u043d\u0434\u0438\u043d\u0433","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/marketing-books\/?shelf=0","active":false,"rightSection":null},{"id":126,"title":"\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0438\u0434\u0435\u0439","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/marketing-books\/?shelf=1","active":false,"rightSection":null},{"id":127,"title":"\u041a\u043e\u043f\u0438\u0440\u0430\u0439\u0442\u0438\u043d\u0433, \u0431\u043b\u043e\u0433\u0438\u043d\u0433, \u0421\u041c\u0418","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/marketing-books\/?shelf=2","active":false,"rightSection":null},{"id":128,"title":"\u0421\u0435\u0440\u0438\u044f \u00ab\u0414\u0443\u043c\u0430\u0439 \u0438\u043d\u0430\u0447\u0435\u00bb","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/category\/marketing-books\/?shelf=3","active":false,"rightSection":null}]},{"id":42,"title":"\u041d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u044b\u0435 \u0438\u0433\u0440\u044b","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/tag\/nastolniye-igry\/","active":false,"count":29,"rightSection":null,"items":[]}]},{"id":2,"title":"\u041a\u0443\u0440\u0441\u044b \u0438 \u043c\u0435\u0440\u043e\u043f\u0440\u0438\u044f\u0442\u0438\u044f","shortTitle":"\u041a\u0443\u0440\u0441\u044b","longTitle":"\u041a\u0443\u0440\u0441\u044b \u0438 \u043c\u0435\u0440\u043e\u043f\u0440\u0438\u044f\u0442\u0438\u044f","url":"https:\/\/www.mann-ivanov-ferber.ru\/courses\/","active":true,"centerSection":4,"rightSection":5,"template":"courses","count":null,"items":[{"id":14,"title":"\u00ab\u041a\u043d\u0438\u0436\u043d\u044b\u0435\u00bb \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/courses\/books-and-texts\/","active":false,"count":23,"rightSection":null,"items":[]},{"id":16,"title":"\u0414\u0443\u0448\u0430, \u0443\u043c \u0438 \u0442\u0435\u043b\u043e","url":"https:\/\/www.mann-ivanov-ferber.ru\/courses\/psychology-and-health","active":false,"count":78,"rightSection":null,"items":[]},{"id":17,"title":"\u041a\u0430\u0440\u044c\u0435\u0440\u0430 \u0438 \u0431\u0438\u0437\u043d\u0435\u0441","url":"https:\/\/www.mann-ivanov-ferber.ru\/courses\/career-and-business","active":false,"count":34,"rightSection":null,"items":[]},{"id":15,"title":"\u041b\u0435\u043a\u0442\u043e\u0440\u0438\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/courses\/lectures","active":false,"count":44,"rightSection":null,"items":[]},{"id":30,"title":"\u041f\u0440\u0430\u043a\u0442\u0438\u043a\u0443\u043c\u044b: hard skills","url":"https:\/\/www.mann-ivanov-ferber.ru\/courses\/hardskills","active":false,"count":23,"rightSection":null,"items":[]},{"id":31,"title":"\u0411\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e","url":"https:\/\/www.mann-ivanov-ferber.ru\/courses\/free","active":false,"count":52,"rightSection":null,"items":[]},{"id":28,"title":"\u041a\u0443\u0440\u0441\u044b \u043c\u0435\u0441\u044f\u0446\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/courses\/bestsellers","active":false,"count":null,"rightSection":null,"items":[]},{"id":29,"title":"\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044e","url":"https:\/\/www.mann-ivanov-ferber.ru\/courses\/professions","active":false,"count":null,"rightSection":null,"items":[]},{"id":43,"title":"\u0412\u0441\u0435 \u043a\u0443\u0440\u0441\u044b","url":"https:\/\/www.mann-ivanov-ferber.ru\/courses\/all","active":false,"count":null,"rightSection":null,"items":[]}]},{"id":3,"title":"\u0414\u043b\u044f \u0431\u0438\u0437\u043d\u0435\u0441\u0430","shortTitle":"\u0411\u0438\u0437\u043d\u0435\u0441\u0443","longTitle":"\u0414\u043b\u044f \u0431\u0438\u0437\u043d\u0435\u0441\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/business\/","active":false,"centerSection":null,"rightSection":7,"template":"business","count":null,"items":[{"id":19,"title":"\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/business\/elibrary\/","active":false,"count":null,"rightSection":null,"items":[]},{"id":20,"title":"\u041e\u0444\u0438\u0441\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/b2b\/library\/","active":false,"count":null,"rightSection":null,"items":[]},{"id":21,"title":"\u0414\u0435\u0442\u0441\u043a\u0438\u0435 \u043f\u043e\u0434\u0430\u0440\u043a\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/giftsforkids\/","active":false,"count":null,"rightSection":null,"items":[]},{"id":22,"title":"\u041f\u043e\u0434\u0430\u0440\u043a\u0438 \u043f\u0430\u0440\u0442\u043d\u0435\u0440\u0430\u043c","url":"https:\/\/www.mann-ivanov-ferber.ru\/corpgifts\/","active":false,"count":null,"rightSection":null,"items":[]},{"id":23,"title":"\u041f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0431\u0440\u0435\u043d\u0434\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/sponsorship\/","active":false,"count":null,"rightSection":null,"items":[]},{"id":24,"title":"\u041a\u0443\u0440\u0441\u044b \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439","url":"https:\/\/www.mann-ivanov-ferber.ru\/corpcourses\/","active":false,"count":null,"rightSection":null,"items":[]},{"id":34,"title":"\u0418\u0437\u0434\u0430\u0442\u044c \u043a\u043d\u0438\u0433\u0443","url":"https:\/\/www.mann-ivanov-ferber.ru\/corpbooks\/","active":false,"count":null,"rightSection":null,"items":[]}]},{"id":4,"title":"\u0418\u0437\u0434\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e","shortTitle":"\u0418\u0437\u0434\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e","longTitle":"\u0418\u0437\u0434\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e","url":"https:\/\/www.mann-ivanov-ferber.ru\/about\/","active":false,"centerSection":null,"rightSection":null,"template":"about","count":null,"items":[{"id":35,"title":"\u0420\u0430\u0431\u043e\u0442\u0430 \u0443 \u043d\u0430\u0441","url":"https:\/\/www.mann-ivanov-ferber.ru\/about\/job\/","active":false,"count":null,"rightSection":null,"items":[]},{"id":45,"title":"\u041c\u0418\u0424 & \u041a\u043d\u0438\u0436\u043d\u044b\u0435 \u043a\u043b\u0443\u0431\u044b","url":"https:\/\/www.mann-ivanov-ferber.ru\/bookclubs\/","active":false,"count":null,"rightSection":null,"items":[]},{"id":37,"title":"\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0442\u044c \u043a\u043d\u0438\u0433\u0443","url":"https:\/\/www.mann-ivanov-ferber.ru\/about\/predlojite-nam-knigu\/","active":false,"count":null,"rightSection":null,"items":[]},{"id":39,"title":"\u0410\u0432\u0442\u043e\u0440\u0430\u043c","url":"https:\/\/www.mann-ivanov-ferber.ru\/about\/dlja-avtorov\/","active":false,"count":null,"rightSection":null,"items":[]},{"id":36,"title":"\u041b\u043e\u0433\u043e\u0442\u0438\u043f","url":"https:\/\/www.mann-ivanov-ferber.ru\/about\/logo\/","active":false,"count":null,"rightSection":null,"items":[]},{"id":40,"title":"\u0412\u043e\u043f\u0440\u043e\u0441\u044b \u0438 \u043e\u0442\u0432\u0435\u0442\u044b","url":"https:\/\/www.mann-ivanov-ferber.ru\/about\/faq\/","active":false,"count":null,"rightSection":null,"items":[]},{"id":44,"title":"\u0411\u043b\u0430\u0433\u043e\u0442\u0432\u043e\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c","url":"https:\/\/www.mann-ivanov-ferber.ru\/about\/philanthropy\/","active":false,"count":null,"rightSection":null,"items":[]},{"id":41,"title":"\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f","url":"https:\/\/www.mann-ivanov-ferber.ru\/about\/contact\/","active":false,"count":null,"rightSection":null,"items":[]}]},{"id":5,"title":"\u0411\u043b\u043e\u0433\u0438","shortTitle":"\u0411\u043b\u043e\u0433\u0438","longTitle":"\u0411\u043b\u043e\u0433\u0438","url":"https:\/\/blog.mann-ivanov-ferber.ru\/","active":false,"centerSection":6,"rightSection":null,"template":"blog","count":null,"items":[{"id":25,"title":"\u0411\u043b\u043e\u0433 \u041c\u0418\u0424\u0430","url":"https:\/\/blog.mann-ivanov-ferber.ru\/","active":false,"count":null,"rightSection":null,"items":[{"id":16,"title":"\u041f\u0441\u0438\u0445\u043e\u043b\u043e\u0433\u0438\u044f \u0438 \u0441\u0430\u043c\u043e\u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435","url":"https:\/\/blog.mann-ivanov-ferber.ru\/category\/mif-samorazvitie\/","active":false,"rightSection":null},{"id":18,"title":"\u0422\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u043e","url":"https:\/\/blog.mann-ivanov-ferber.ru\/category\/tvorchestvo\/","active":false,"rightSection":null},{"id":19,"title":"\u041f\u0440\u043e\u0437\u0430","url":"https:\/\/blog.mann-ivanov-ferber.ru\/category\/proza\/","active":false,"rightSection":null},{"id":144,"title":"\u041a\u0440\u0443\u0433\u043e\u0437\u043e\u0440","url":"https:\/\/blog.mann-ivanov-ferber.ru\/category\/krugozor\/","active":false,"rightSection":null},{"id":142,"title":"\u041a\u043d\u0438\u0436\u043d\u044b\u0439 \u043a\u043b\u0443\u0431 \u041c\u0418\u0424\u0430","url":"https:\/\/blog.mann-ivanov-ferber.ru\/category\/u-nas-v-mife\/","active":false,"rightSection":null},{"id":145,"title":"\u041a\u043e\u043c\u0438\u043a\u0441\u044b","url":"https:\/\/blog.mann-ivanov-ferber.ru\/category\/komiksy\/","active":false,"rightSection":null}]},{"id":26,"title":"\u0411\u0438\u0437\u043d\u0435\u0441-\u0431\u043b\u043e\u0433","url":"https:\/\/biz.mann-ivanov-ferber.ru\/","active":false,"count":null,"rightSection":null,"items":[{"id":9,"title":"\u0411\u0438\u0437\u043d\u0435\u0441\u0445\u0430\u043a \u0438 \u043c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433","url":"https:\/\/biz.mann-ivanov-ferber.ru\/category\/bizneshak\/","active":false,"rightSection":null},{"id":10,"title":"\u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u043c\u0435\u043d\u0435\u0434\u0436\u043c\u0435\u043d\u0442\u0430","url":"https:\/\/biz.mann-ivanov-ferber.ru\/category\/formula-menedzhmenta\/","active":false,"rightSection":null},{"id":11,"title":"\u0421\u0430\u043c\u043e\u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435","url":"https:\/\/biz.mann-ivanov-ferber.ru\/category\/samorazvitie\/","active":false,"rightSection":null},{"id":14,"title":"\u041a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043a\u0443\u043b\u044c\u0442\u0443\u0440\u0430","url":"https:\/\/biz.mann-ivanov-ferber.ru\/category\/korporativnaya-kultura\/","active":false,"rightSection":null},{"id":8,"title":"\u041e\u043f\u044b\u0442 \u041c\u0418\u0424\u0430","url":"https:\/\/biz.mann-ivanov-ferber.ru\/category\/opyt-mifa\/","active":false,"rightSection":null},{"id":7,"title":"\u041e\u0431\u0437\u043e\u0440\u044b \u043a\u043d\u0438\u0433","url":"https:\/\/biz.mann-ivanov-ferber.ru\/category\/obzory-knig\/","active":false,"rightSection":null}]},{"id":27,"title":"\u041f\u0430\u043f\u0430\u043c\u0430\u043c\u0430\u043c","url":"https:\/\/deti.mann-ivanov-ferber.ru\/","active":false,"count":null,"rightSection":null,"items":[{"id":140,"title":"\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0440\u0435\u0431\u0435\u043d\u043a\u0430","url":"https:\/\/deti.mann-ivanov-ferber.ru\/category\/razvitie-rebenka\/","active":false,"rightSection":null},{"id":139,"title":"\u041f\u0441\u0438\u0445\u043e\u043b\u043e\u0433\u0438\u044f","url":"https:\/\/deti.mann-ivanov-ferber.ru\/category\/psihologija\/","active":false,"rightSection":null},{"id":130,"title":"\u0412\u043e\u0442 \u0442\u0430\u043a \u043a\u043d\u0438\u0433\u0430!","url":"https:\/\/deti.mann-ivanov-ferber.ru\/category\/vot-tak-kniga\/","active":false,"rightSection":null},{"id":134,"title":"\u0418\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u043e \u0443\u0447\u0438\u0442\u044c\u0441\u044f","url":"https:\/\/deti.mann-ivanov-ferber.ru\/category\/iskusstvo-uchitsja\/","active":false,"rightSection":null}]}]}],"centerSection":[{"id":2,"bannerLine":[{"title":"\u041f\u043e\u0434\u0430\u0440\u043e\u0447\u043d\u044b\u0435 \u043a\u0430\u0440\u0442\u044b","type":"common","url":"https:\/\/www.mann-ivanov-ferber.ru\/promoprojects\/present-cards\/","src":"https:\/\/www.mann-ivanov-ferber.ru\/assets\/media\/head-menu\/giftcards.png","count":18,"not_show_title":null},{"title":"\u0421\u0435\u0440\u0438\u044f \u00ab\u041c\u0438\u0444\u044b \u043e\u0442 \u0438 \u0434\u043e\u00bb","type":"common","url":"https:\/\/www.mann-ivanov-ferber.ru\/mify-ot-i-do","src":"https:\/\/www.mann-ivanov-ferber.ru\/assets\/media\/head-menu\/menu-mifi.png","count":null,"not_show_title":null},{"title":"\u041f\u043e\u0434\u0430\u0440\u043a\u0438, \u043c\u0435\u0440\u0447 \u0438 \u043a\u043d\u0438\u0436\u043d\u044b\u0435 \u0431\u043e\u043a\u0441\u044b","type":"common","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/group\/milye-priyatnosti-ot-mifa\/","src":"https:\/\/www.mann-ivanov-ferber.ru\/assets\/media\/head-menu\/boxes.png","count":null,"not_show_title":null}],"shelves":[{"title":"\u0411\u0435\u0441\u0442\u0441\u0435\u043b\u043b\u0435\u0440\u044b","url":"https:\/\/www.mann-ivanov-ferber.ru\/books\/bestsellers\/","type":"best","products":[{"id":32336,"title":"\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0435\u0442\u0435\u0439 \u0432 \u0441\u0435\u043c\u044c\u0435","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/product\/vospitanie-neskolkix-detei-v-seme\/","src":"\/assets\/media\/book-images5\/vospitanie-neskolkix-detei-v-seme\/Neskolko_detei_v_semye-cover3D-142-transp-min.png"},{"id":31974,"title":"\u0414\u0435\u043a\u043e\u0440 \u0438 \u0441\u0442\u0438\u043b\u044c \u0431\u0435\u0437 \u0441\u0442\u0440\u043e\u0433\u0438\u0445 \u043f\u0440\u0430\u0432\u0438\u043b","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/product\/the-new-design-rules\/","src":"\/assets\/media\/book-images5\/the-new-design-rules\/Dekor_i_stil-cover3D-142-transp-min.png"},{"id":32509,"title":"\u0412\u0435\u043d\u0447\u0443\u0440\u043d\u043e\u0435 \u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0435","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/product\/the-venture-mindset\/","src":"\/assets\/media\/book-images5\/the-venture-mindset\/Venchurnoye_Myshleniye-cover3D-142-transp.png"},{"id":33473,"title":"\u0418\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442. \u0414\u0435\u0442\u0441\u043a\u0430\u044f \u044d\u043d\u0446\u0438\u043a\u043b\u043e\u043f\u0435\u0434\u0438\u044f (\u0427\u0435\u0432\u043e\u0441\u0442\u0438\u043a)","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/product\/cto-takoe-ii-detskaia-enciklopediia\/","src":"\/assets\/media\/book-images5\/cto-takoe-ii-detskaia-enciklopediia\/Chevostik_AI-cover3D-142-transp-min.png"},{"id":20287,"title":"\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0435 \u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0435","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/product\/azbuka-sistemnogo-myishleniya\/","src":"\/assets\/media\/book-images5\/azbuka-sistemnogo-myishleniya\/Sistemnoe_myshlenie-cover3D-142-transp.png"},{"id":33815,"title":"\u041c\u0440\u0430\u0447\u043d\u044b\u0439 \u0432\u0437\u0432\u043e\u0434. \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u0438\u0437\u0434\u0430\u043d\u0438\u0435","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/product\/mracnyi-vzvod-specialnoe-izdanie\/","src":"\/assets\/media\/book-images5\/mracnyi-vzvod-specialnoe-izdanie\/Mrachniy_vzvod_Spec-cover3D-142-transp-min.png"},{"id":30745,"title":"\u0411\u0430\u0446\u0437\u044b \u043f\u043e-\u0440\u0443\u0441\u0441\u043a\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/product\/ba-czy-po-russki\/","src":"\/assets\/media\/book-images5\/ba-czy-po-russki\/Batzi-cover3D-142-transp-min.png"}]},{"title":"\u041d\u043e\u0432\u0438\u043d\u043a\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/new\/","type":"new","products":[{"id":31881,"title":"\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u043c: \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0430\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/product\/upravlenie-produktom-rossiiskii-opyt\/","src":"\/assets\/media\/book-images5\/upravlenie-produktom-rossiiskii-opyt\/Upravlenie_produktom-cover3D-142-transp.png"},{"id":32654,"title":"\u0428\u043a\u043e\u043b\u0430 \u00ab\u0413\u043b\u043e\u0431\u0443\u0441\u00bb","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/product\/skola-globus\/","src":"\/assets\/media\/book-images4\/skola-globus\/Shkola_Globus-cover3D-142-transp-min.png"},{"id":32263,"title":"\u0421\u043f\u0430\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0432\u043d\u043e\u0432\u0435\u0441\u0438\u0435","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/product\/the-bipolar-disorder-survival-guide\/","src":"\/assets\/media\/book-images4\/the-bipolar-disorder-survival-guide\/Spasitelnoe_ravnovesie-cover3D-142-transp-min.png"},{"id":31640,"title":"\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0447\u0442\u0435\u043d\u0438\u0435","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/product\/kniga-pro-obrabotku-informacii\/","src":"\/assets\/media\/book-images5\/kniga-pro-obrabotku-informacii\/Effektivnoe_chtenie-cover3D-142-transp-min.png"},{"id":32590,"title":"\u0413\u0440\u0430\u043d\u0430\u0442\u043e\u0432\u044b\u0439 \u0431\u0440\u0430\u0441\u043b\u0435\u0442. \u0412\u0435\u0447\u043d\u044b\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0438","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/product\/granatovyi-braslet-vecnye-istorii\/","src":"\/assets\/media\/book-images5\/granatovyi-braslet-vecnye-istorii\/Granatoviy_braslet-cover3D-142-transp-min.png"},{"id":32830,"title":"\u041d\u0435\u043c\u0438\u043b\u0430\u044f. \u0422\u043e\u043c 5","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/product\/nemilaia-tom-5\/","src":"\/assets\/media\/book-images5\/nemilaia-tom-5\/Nemilaya_T5-cover3D-142-transp-min.png"},{"id":31845,"title":"\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439, \u0442\u044b \u0441\u043c\u043e\u0436\u0435\u0448\u044c!","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/product\/middle-school-superpowers\/","src":"\/assets\/media\/book-images5\/middle-school-superpowers\/Poprobuj_ty_smozhesh-cover3D-142-transp-min.png"}]},{"title":"\u041f\u0440\u0435\u0434\u0437\u0430\u043a\u0430\u0437","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/tag\/predzakaz\/","type":"soon","products":[{"id":33454,"title":"\u041f\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0435. \u041a\u043d\u0438\u0433\u0430 3","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/product\/predannye-kniga-3\/","src":"\/assets\/images\/books\/p-small.png"},{"id":35130,"title":"\u0418\u043c\u043f\u0435\u0440\u0441\u043a\u0438\u0439 \u0441\u044b\u0449\u0438\u043a","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/product\/imperskii-syshhik","src":"\/assets\/images\/books\/p-small.png"},{"id":33036,"title":"\u041f\u043e\u0441\u043e\u0431\u0438\u0435 \u043f\u043e \u0432\u044b\u0436\u0438\u0432\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u043e\u0431\u043e\u0440\u043e\u0442\u043d\u0435\u0439","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/product\/volci-sledy\/","src":"\/assets\/media\/book-images5\/volci-sledy\/Posobie_po_vyzhivaniyu-cover3D-142-transp-min.png"},{"id":35090,"title":"\u041f\u0442\u0438\u0446\u044b \u041a\u0430\u043c\u0447\u0430\u0442\u043a\u0438 \u0438 \u041a\u043e\u043c\u0430\u043d\u0434\u043e\u0440\u0441\u043a\u0438\u0445 \u043e\u0441\u0442\u0440\u043e\u0432\u043e\u0432","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/product\/pticy-kamcatki-i-komandorskix-ostrovov\/","src":"\/assets\/media\/book-images5\/pticy-kamcatki-i-komandorskix-ostrovov\/Ptisi_Kamchatki-cover3D-142-transp-min.png"},{"id":35081,"title":"\u0417\u0434\u043e\u0440\u043e\u0432\u0430\u044f \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c. \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0431\u0435\u0437 \u0432\u044b\u0433\u043e\u0440\u0430\u043d\u0438\u044f. NEON Pocketbooks","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/product\/zdorovaia-produktivnost-maksimalnye-rezultaty-bez-vygoraniia-neon-pocketbooks\/","src":"\/assets\/media\/book-images5\/zdorovaia-produktivnost-maksimalnye-rezultaty-bez-vygoraniia-neon-pocketbooks\/Zdorovaya_produktivnost-cover3D-142-transp-min.png"}]}],"oneBanner":{"title":"\u0410\u0412\u0422\u041e\u0420\u0410\u041c","type":"common","url":"https:\/\/www.mann-ivanov-ferber.ru\/about\/dlja-avtorov\/","src":"https:\/\/www.mann-ivanov-ferber.ru\/assets\/media\/head-menu\/authors.png","count":null,"not_show_title":null}},{"id":4,"bannerLine":[{"title":"\u041b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u043d\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0443\u0440\u0430","type":"common","url":"https:\/\/www.mann-ivanov-ferber.ru\/courses\/litred\/","src":"https:\/\/www.mann-ivanov-ferber.ru\/assets\/media\/banners2025\/litred-1200.png","count":null,"not_show_title":null},{"title":"\u041a\u0443\u0440\u0441 \u00ab\u0426\u0415\u0425 \u21165\u00bb","type":"common","url":"https:\/\/www.mann-ivanov-ferber.ru\/courses\/tseh\/","src":"https:\/\/www.mann-ivanov-ferber.ru\/assets\/media\/banners2024\/head-menu\/tseh.png","count":null,"not_show_title":null},{"title":"\u0421\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u043c\u0438\u0440\u044b","type":"common","url":"https:\/\/www.mann-ivanov-ferber.ru\/courses\/world\/","src":"https:\/\/www.mann-ivanov-ferber.ru\/assets\/media\/banners2025\/sozd-miry.png","count":null,"not_show_title":null}],"shelves":[],"oneBanner":null},{"id":6,"bannerLine":[{"title":"\u0412\u0434\u043e\u0445\u043d\u043e\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u043e\u0431\u043e\u0438 \u0441 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044f\u043c\u0438 \u0438 \u0446\u0438\u0442\u0430\u0442\u0430\u043c\u0438 \u043d\u0430 \u0430\u043f\u0440\u0435\u043b\u044c 2025 \u0433\u043e\u0434\u0430","type":"article","url":"https:\/\/blog.mann-ivanov-ferber.ru\/2025\/03\/31\/vdoxnovlyayushhie-oboi-s-kalendaryami-i-citatami-na-aprel-2025-goda\/","src":"https:\/\/www.mann-ivanov-ferber.ru\/assets\/media\/blog\/header\/vdoxnovlyayushhie-oboi-aprel-2025-goda.jpg","duration":"3 \u043c\u0438\u043d","views":10000,"not_show_title":null},{"title":"\u0421\u0435\u043a\u0440\u0435\u0442\u044b \u0443\u0434\u0430\u043b\u0435\u043d\u043a\u0438: 33 \u043b\u0430\u0439\u0444\u0445\u0430\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0438\u0437 \u0434\u043e\u043c\u0430","type":"article","url":"https:\/\/biz.mann-ivanov-ferber.ru\/2025\/02\/27\/sekrety-udalenki-33-lajfxaka-dlya-raboty-iz-doma\/","src":"https:\/\/www.mann-ivanov-ferber.ru\/assets\/media\/blog\/header\/sekrety-udalenki-33-lajfxaka.jpg","duration":"5 \u043c\u0438\u043d","views":8500,"not_show_title":null},{"title":"\u0421\u0432\u0435\u0436\u0438\u0435 \u043a\u0430\u043a \u043c\u043e\u0440\u0441\u043a\u043e\u0439 \u0431\u0440\u0438\u0437. \u041e\u0431\u043e\u0438 \u0441 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044f\u043c\u0438 \u0438 \u0446\u0438\u0442\u0430\u0442\u0430\u043c\u0438 \u043d\u0430 \u0430\u043f\u0440\u0435\u043b\u044c 2025 \u0433\u043e\u0434\u0430","type":"article","url":"https:\/\/deti.mann-ivanov-ferber.ru\/2025\/03\/31\/svezhie-kak-morskoj-briz-oboi-s-kalendaryami-i-citatami-na-aprel-2025-goda\/","src":"https:\/\/www.mann-ivanov-ferber.ru\/assets\/media\/blog\/header\/oboi-s-kalendaryami-i-citatami-aprel-2025.jpg","duration":"5 \u043c\u0438\u043d","views":7000,"not_show_title":null}],"shelves":[],"oneBanner":null}],"rightSection":[{"id":3,"headers":[{"title":"\u0410\u041a\u0426\u0418\u0418","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/tag\/new-2025\/"},{"title":"\u0421\u041a\u0418\u0414\u041a\u0418","url":"https:\/\/www.mann-ivanov-ferber.ru\/discounts\/"}],"banner":{"title":"","type":"common","url":"https:\/\/www.mann-ivanov-ferber.ru\/catalog\/tag\/new-2025\/","src":"https:\/\/www.mann-ivanov-ferber.ru\/assets\/media\/banners2025\/1april\/1080x1920-min.jpg","count":null,"not_show_title":true},"links":[{"title":"\u041c\u0430\u0441\u0442\u0435\u0440\u0441\u043a\u0430\u044f \u043f\u043e\u0434\u0430\u0440\u043a\u043e\u0432","url":"https:\/\/www.mann-ivanov-ferber.ru\/present-shop-go\/","iconType":"gift-shop"}]},{"id":5,"headers":[{"title":"\u041c\u0415\u0420\u041e\u041f\u0420\u0418\u042f\u0422\u0418\u042f","url":"https:\/\/www.mann-ivanov-ferber.ru\/events\/"}],"banner":{"title":"","type":"common","url":"https:\/\/www.mann-ivanov-ferber.ru\/events\/","src":"https:\/\/www.mann-ivanov-ferber.ru\/assets\/media\/banners2025\/header\/izhevsk.jpg","count":null,"not_show_title":true},"links":[]},{"id":7,"headers":[],"banner":{"title":"","type":"common","url":"https:\/\/www.mann-ivanov-ferber.ru\/business\/elibrary\/","src":"https:\/\/www.mann-ivanov-ferber.ru\/assets\/media\/banners2024\/300x250.jpg","count":null,"not_show_title":true},"links":[]}]}' data-is-blog="0" > <script src="/_next/static/widgets/header.js"></script> <div style="display: none;"> <span> <a href="https://www.mann-ivanov-ferber.ru/catalog/">Книги</a> <span> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/fiction/">Проза</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/fiction/?shelf=0">Остросюжетная проза</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/fiction/?shelf=1">Молодёжная литература</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/fiction/?shelf=2">Современная зарубежная литература</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/fiction/?shelf=3">Классическая литература</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/fiction/?shelf=4">Интеллектуальная проза</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/fiction/?shelf=5">Романы взросления</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/children-books/">Детство</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/children-books/?shelf=0">Художественная литература для детей</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/children-books/?shelf=1">Научно-познавательные книги для детей</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/children-books/?shelf=2">KUMON</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/children-books/?shelf=3">Чевостик</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/children-books/?shelf=4">Развитие и обучение детей</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/children-books/?shelf=5">Досуг и творчество детей</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/children-books/?shelf=6">Книги для подростков</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/children-books/?shelf=7">Для родителей</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/children-books/?shelf=8">Комиксы для детей</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/children-books/?shelf=9">Детское творчество</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/children-books/?shelf=10">Умные книжки</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/children-books/?shelf=11">Подготовка к школе</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/children-books/?shelf=12">Необычный формат</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/children-books/?shelf=13">Подарочные</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/psychology-books/">Психология</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/psychology-books/?shelf=0">Популярная психология</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/psychology-books/?shelf=1">Стресс и эмоции</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/psychology-books/?shelf=2">Любовь и отношения</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/psychology-books/?shelf=3">Осознанность и медитация</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/psychology-books/?shelf=4">Книги для родителей</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/psychology-books/?shelf=5">Быть подростком</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/psychology-books/?shelf=6">Защита от токсичности</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/business-books/">Бизнес</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/business-books/?shelf=0">Аудиокниги</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/business-books/?shelf=1">Менеджмент</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/business-books/?shelf=2">Продажи</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/business-books/?shelf=3">Истории успеха</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/business-books/?shelf=4">Развитие сотрудников</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/business-books/?shelf=5">Предпринимателю</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/business-books/?shelf=6">Управление компанией</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/business-books/?shelf=7">Стратегия</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/business-books/?shelf=8">Управление проектами</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/business-books/?shelf=9">Переговоры</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/business-books/?shelf=10">Публичные выступления</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/business-books/?shelf=11">HR</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/business-books/?shelf=12">Российский бизнес</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/business-books/?shelf=13">IT</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/culture-books/">Культура</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/culture-books/?shelf=0">Автофикшн и биографии</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/culture-books/?shelf=1">Серия «Таро МИФ»</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/culture-books/?shelf=2">Серия «Мифы от и до»</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/culture-books/?shelf=3">Подарочные книги</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/culture-books/?shelf=4">Культурные истории, страноведение</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/culture-books/?shelf=5">Искусство и архитектура</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/culture-books/?shelf=6">Театр и кино, музыка, литература</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/culture-books/?shelf=7">Серия «Главное в истории»</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/samorazvitie-books/">Саморазвитие</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/samorazvitie-books/?shelf=0">Спокойствие и душевное равновесие</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/samorazvitie-books/?shelf=1">Аудиокниги</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/samorazvitie-books/?shelf=2">Мечты и цели</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/samorazvitie-books/?shelf=3">Мотивация</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/samorazvitie-books/?shelf=4">Мозг и интеллект</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/samorazvitie-books/?shelf=5">Продуктивность</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/samorazvitie-books/?shelf=6">Психология</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/samorazvitie-books/?shelf=7">Общение</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/samorazvitie-books/?shelf=8">Сила воли</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/samorazvitie-books/?shelf=9">Тайм-менеджмент</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/samorazvitie-books/?shelf=10">Деньги</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/samorazvitie-books/?shelf=11">Обучение</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/samorazvitie-books/?shelf=12">Выбор профессии</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/samorazvitie-books/?shelf=12">Принятие решений</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/samorazvitie-books/?shelf=14">Осознанность</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/lifestyle-books/">Лайфстайл</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/lifestyle-books/?shelf=0">Современная магия</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/lifestyle-books/?shelf=1">Дом и сад</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/lifestyle-books/?shelf=2">Кулинария</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/lifestyle-books/?shelf=3">Велнес, красота, мода</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/creativity-books/">Творчество</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/creativity-books/?shelf=0">Вдохновение и мотивация</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/creativity-books/?shelf=1">Handmade и творческий бизнес</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/creativity-books/?shelf=2">Рисование для начинающих</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/creativity-books/?shelf=3">Рисование для продолжающих</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/creativity-books/?shelf=4">Леттеринг и каллиграфия</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/creativity-books/?shelf=5">Писательство</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/creativity-books/?shelf=6">Фотомастерская</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/creativity-books/?shelf=7">Активити для взрослых</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/creativity-books/?shelf=8">Легендарная серия Барбары Шер</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/creativity-books/?shelf=9">Психология творчества</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/creativity-books/?shelf=10">Дизайн</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/creativity-books/?shelf=11">Развитие творчества</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/creativity-books/?shelf=12">Творческий бизнес</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/creativity-books/?shelf=13">Визуальное мышление</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/creativity-books/?shelf=14">Творческое мышление</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/creativity-books/?shelf=15">МАК МИФ</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/comic-books/">Комиксы</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/comic-books/?shelf=0">Детские комиксы</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/comic-books/?shelf=1">Взрослые комиксы</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/comic-books/?shelf=2">Молодежные комиксы</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/comic-books/?shelf=3">Серии</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/comic-books/?shelf=4">Познавательные комиксы</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/health-books/">Здоровье и медицина</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/health-books/?shelf=0">Правильное питание</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/health-books/?shelf=1">Спорт</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/health-books/?shelf=2">Долголетие</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/health-books/?shelf=3">Бег</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/health-books/?shelf=4">Фитнес</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/health-books/?shelf=5">Медитация</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/health-books/?shelf=6">Здоровый сон</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/health-books/?shelf=7">Диеты</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/science-books/">Научпоп</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/science-books/?shelf=0">Физика</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/science-books/?shelf=1">Математика</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/science-books/?shelf=2">Экономика</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/science-books/?shelf=3">Здоровье и медицина</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/science-books/?shelf=4">Мышление и психология</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/science-books/?shelf=5">Технологии</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/gift-books/">Подарочные книги</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/gift-books/?shelf=0">Искусство, культура и путешествия</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/gift-books/?shelf=1">Для детей</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/gift-books/?shelf=2">Работа и бизнес</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/gift-books/?shelf=3">Для души и уюта</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/gift-books/?shelf=4">Захватывающие истории</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/gift-books/?shelf=5">Время для себя</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/marketing-books/">Маркетинг</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/marketing-books/?shelf=0">Маркетинг и брендинг</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/marketing-books/?shelf=1">Генерация идей</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/marketing-books/?shelf=2">Копирайтинг, блогинг, СМИ</a> <a href="https://www.mann-ivanov-ferber.ru/catalog/category/marketing-books/?shelf=3">Серия «Думай иначе»</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/catalog/tag/nastolniye-igry/">Настольные игры</a> </span> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/courses/">Курсы и мероприятия</a> <span> <a href="https://www.mann-ivanov-ferber.ru/courses/books-and-texts/">«Книжные» профессии</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/courses/psychology-and-health">Душа, ум и тело</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/courses/career-and-business">Карьера и бизнес</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/courses/lectures">Лектории</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/courses/hardskills">Практикумы: hard skills</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/courses/free">Бесплатно</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/courses/bestsellers">Курсы месяца</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/courses/professions">Получить профессию</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/courses/all">Все курсы</a> </span> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/business/">Для бизнеса</a> <span> <a href="https://www.mann-ivanov-ferber.ru/business/elibrary/">Электронная библиотека</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/b2b/library/">Офисная библиотека</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/giftsforkids/">Детские подарки</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/corpgifts/">Подарки партнерам</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/sponsorship/">Продвижение бренда</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/corpcourses/">Курсы для компаний</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/corpbooks/">Издать книгу</a> </span> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/about/">Издательство</a> <span> <a href="https://www.mann-ivanov-ferber.ru/about/job/">Работа у нас</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/bookclubs/">МИФ &amp; Книжные клубы</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/about/predlojite-nam-knigu/">Предложить книгу</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/about/dlja-avtorov/">Авторам</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/about/logo/">Логотип</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/about/faq/">Вопросы и ответы</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/about/philanthropy/">Благотворительность</a> </span> <span> <a href="https://www.mann-ivanov-ferber.ru/about/contact/">Контактная информация</a> </span> </span> <span> <a href="https://blog.mann-ivanov-ferber.ru/">Блоги</a> <span> <a href="https://blog.mann-ivanov-ferber.ru/">Блог МИФа</a> <a href="https://blog.mann-ivanov-ferber.ru/category/mif-samorazvitie/">Психология и саморазвитие</a> <a href="https://blog.mann-ivanov-ferber.ru/category/tvorchestvo/">Творчество</a> <a href="https://blog.mann-ivanov-ferber.ru/category/proza/">Проза</a> <a href="https://blog.mann-ivanov-ferber.ru/category/krugozor/">Кругозор</a> <a href="https://blog.mann-ivanov-ferber.ru/category/u-nas-v-mife/">Книжный клуб МИФа</a> <a href="https://blog.mann-ivanov-ferber.ru/category/komiksy/">Комиксы</a> </span> <span> <a href="https://biz.mann-ivanov-ferber.ru/">Бизнес-блог</a> <a href="https://biz.mann-ivanov-ferber.ru/category/bizneshak/">Бизнесхак и маркетинг</a> <a href="https://biz.mann-ivanov-ferber.ru/category/formula-menedzhmenta/">Формула менеджмента</a> <a href="https://biz.mann-ivanov-ferber.ru/category/samorazvitie/">Саморазвитие</a> <a href="https://biz.mann-ivanov-ferber.ru/category/korporativnaya-kultura/">Корпоративная культура</a> <a href="https://biz.mann-ivanov-ferber.ru/category/opyt-mifa/">Опыт МИФа</a> <a href="https://biz.mann-ivanov-ferber.ru/category/obzory-knig/">Обзоры книг</a> </span> <span> <a href="https://deti.mann-ivanov-ferber.ru/">Папамамам</a> <a href="https://deti.mann-ivanov-ferber.ru/category/razvitie-rebenka/">Развитие ребенка</a> <a href="https://deti.mann-ivanov-ferber.ru/category/psihologija/">Психология</a> <a href="https://deti.mann-ivanov-ferber.ru/category/vot-tak-kniga/">Вот так книга!</a> <a href="https://deti.mann-ivanov-ferber.ru/category/iskusstvo-uchitsja/">Искусство учиться</a> </span> </span> </div> </div> <script src="/assets/new/src/js/cookie-consent.js" async></script> <div class="promo-page promo-page_type_about"> <h1 class="promo-page__title promo-page__title_weight_normal">Курсы МИФа</h1> <div class="promo-page__content" > <style>.mif-tilda *,.mif-tilda *:before,.mif-tilda *:after{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.mif-tilda div,.mif-tilda span,.mif-tilda h1,.mif-tilda h2,.mif-tilda h3,.mif-tilda h4,.mif-tilda h5,.mif-tilda h6,.mif-tilda p,.mif-tilda blockquote,.mif-tilda pre,.mif-tilda a,.mif-tilda code,.mif-tilda img,.mif-tilda b,.mif-tilda u,.mif-tilda i,.mif-tilda center,.mif-tilda table,.mif-tilda tr,.mif-tilda th,.mif-tilda td,.mif-tilda video{margin:0;padding:0;border:0}.mif-tilda sup{line-height:0;font-size:smaller;vertical-align:super}.mif-tilda sub{line-height:0;font-size:smaller;vertical-align:sub}.mif-tilda .t-clear{clear:both}.mif-tilda .t-row{margin:0}.mif-tilda .t-container{margin-left:auto;margin-right:auto;width:100%;max-width:1200px;padding:0}.mif-tilda .t-container.flexx{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.mif-tilda .t-container_flex{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.mif-tilda .t-container_100{width:100%;padding:0}.mif-tilda .t-container_10{margin-left:auto;margin-right:auto;width:100%;max-width:1000px;padding:0}.mif-tilda .t-container_8{margin-left:auto;margin-right:auto;width:100%;max-width:800px;padding:0}.mif-tilda .t-container:before,.mif-tilda .t-container:after,.mif-tilda .t-container_10:before,.mif-tilda .t-container_10:after,.mif-tilda .t-container_8:before,.mif-tilda .t-container_8:after,.mif-tilda .t-container_100:before,.mif-tilda .t-container_100:after{display:table;content:" ";width:0}.mif-tilda .t-container:after,.mif-tilda .t-container_10:after,.mif-tilda .t-container_8:after,.mif-tilda .t-container_100:after{clear:both}.mif-tilda .t-col{display:inline;float:left;margin-left:20px;margin-right:20px;width:100%}.mif-tilda .t-col.flexx{align-items:stretch;height:inherit;margin-top:auto;margin-bottom:auto}.mif-tilda .t-col_flex{align-items:stretch;height:inherit;margin-top:auto;margin-bottom:auto}.mif-tilda .t-col_1{max-width:60px}.mif-tilda .t-col_2{max-width:160px}.mif-tilda .t-col_3{max-width:260px}.mif-tilda .t-col_4{max-width:360px}.mif-tilda .t-col_5{max-width:460px}.mif-tilda .t-col_6{max-width:560px}.mif-tilda .t-col_7{max-width:660px}.mif-tilda .t-col_8{max-width:760px}.mif-tilda .t-col_9{max-width:860px}.mif-tilda .t-col_10{max-width:960px}.mif-tilda .t-col_11{max-width:1060px}.mif-tilda .t-col_12{max-width:1160px}.mif-tilda .t-col_100{max-width:100vw}.mif-tilda .t-prefix_1{padding-left:100px}.mif-tilda .t-prefix_2{padding-left:200px}.mif-tilda .t-prefix_3{padding-left:300px}.mif-tilda .t-prefix_4{padding-left:400px}.mif-tilda .t-prefix_5{padding-left:500px}.mif-tilda .t-prefix_6{padding-left:600px}.mif-tilda .t-prefix_7{padding-left:700px}.mif-tilda .t-prefix_8{padding-left:800px}.mif-tilda .t-prefix_9{padding-left:900px}.mif-tilda .t-prefix_10{padding-left:1000px}.mif-tilda .t-prefix_11{padding-left:1100px}.mif-tilda .t-prefix_12{padding-left:1200px}.mif-tilda .t-width{width:100%}.mif-tilda .t-width_1{max-width:60px}.mif-tilda .t-width_2{max-width:160px}.mif-tilda .t-width_3{max-width:260px}.mif-tilda .t-width_4{max-width:360px}.mif-tilda .t-width_5{max-width:460px}.mif-tilda .t-width_6{max-width:560px}.mif-tilda .t-width_7{max-width:660px}.mif-tilda .t-width_8{max-width:760px}.mif-tilda .t-width_9{max-width:860px}.mif-tilda .t-width_10{max-width:960px}.mif-tilda .t-width_11{max-width:1060px}.mif-tilda .t-width_12{max-width:1160px}.mif-tilda .t-width_100{max-width:100%}.mif-tilda .t-cell{display:table-cell;vertical-align:middle;height:100%;margin-left:0;margin-right:0}.mif-tilda .t-cell_25{width:25vw}.mif-tilda .t-cell_33{width:33.3333333vw}.mif-tilda .t-cell_50{width:50vw}.mif-tilda .t-cell_100{width:100vw}@media screen and (max-width:1200px){.mif-tilda .t-container{max-width:960px;padding:0}.mif-tilda .t-container_10{max-width:780px}.mif-tilda .t-container_8{max-width:640px}.mif-tilda .t-col{display:inline;float:left;margin-left:10px;margin-right:10px;width:100%}.mif-tilda .t-col_1{max-width:60px}.mif-tilda .t-col_2{max-width:140px}.mif-tilda .t-col_3{max-width:220px}.mif-tilda .t-col_4{max-width:300px}.mif-tilda .t-col_5{max-width:380px}.mif-tilda .t-col_6{max-width:460px}.mif-tilda .t-col_7{max-width:540px}.mif-tilda .t-col_8{max-width:620px}.mif-tilda .t-col_9{max-width:700px}.mif-tilda .t-col_10{max-width:780px}.mif-tilda .t-col_11{max-width:860px}.mif-tilda .t-col_12{max-width:940px}.mif-tilda .t-prefix_1{padding-left:80px}.mif-tilda .t-prefix_2{padding-left:160px}.mif-tilda .t-prefix_3{padding-left:240px}.mif-tilda .t-prefix_4{padding-left:320px}.mif-tilda .t-prefix_5{padding-left:400px}.mif-tilda .t-prefix_6{padding-left:480px}.mif-tilda .t-prefix_7{padding-left:560px}.mif-tilda .t-prefix_8{padding-left:640px}.mif-tilda .t-prefix_9{padding-left:720px}.mif-tilda .t-prefix_10{padding-left:800px}.mif-tilda .t-prefix_11{padding-left:880px}.mif-tilda .t-prefix_12{padding-left:960px}.mif-tilda .t-width_1{max-width:60px}.mif-tilda .t-width_2{max-width:140px}.mif-tilda .t-width_3{max-width:220px}.mif-tilda .t-width_4{max-width:300px}.mif-tilda .t-width_5{max-width:380px}.mif-tilda .t-width_6{max-width:460px}.mif-tilda .t-width_7{max-width:540px}.mif-tilda .t-width_8{max-width:620px}.mif-tilda .t-width_9{max-width:700px}.mif-tilda .t-width_10{max-width:780px}.mif-tilda .t-width_11{max-width:860px}.mif-tilda .t-width_12{max-width:940px}.mif-tilda .t-width_100{max-width:100%}}@media screen and (max-width:960px){.mif-tilda .t-container{max-width:640px}.mif-tilda .t-container.flexx{display:block}.mif-tilda .t-container_flex{display:block}.mif-tilda .t-col{display:block;float:none;padding-left:20px;padding-right:20px;margin:0;width:100%;max-width:100%;box-sizing:border-box}.mif-tilda .t-col_1,.mif-tilda .t-col_2,.mif-tilda .t-col_3,.mif-tilda .t-col_4,.mif-tilda .t-col_5,.mif-tilda .t-col_6,.mif-tilda .t-col_7,.mif-tilda .t-col_8,.mif-tilda .t-col_9,.mif-tilda .t-col_10,.mif-tilda .t-col_11,.mif-tilda .t-col_12{width:100%;max-width:100%}.mif-tilda .t-prefix_1,.mif-tilda .t-prefix_2,.mif-tilda .t-prefix_3,.mif-tilda .t-prefix_4,.mif-tilda .t-prefix_5,.mif-tilda .t-prefix_6,.mif-tilda .t-prefix_7,.mif-tilda .t-prefix_8,.mif-tilda .t-prefix_9,.mif-tilda .t-prefix_10,.mif-tilda .t-prefix_11,.mif-tilda .t-prefix_12{padding-left:none}} .mif-tilda .csssize{height:10253px}.mif-tilda .t-body{margin:0}.mif-tilda #allrecords{-webkit-font-smoothing:antialiased;background-color:none}.mif-tilda #allrecords a{color:#1b64a6;text-decoration:none}.mif-tilda #allrecords a,.mif-tilda #allrecords button,.mif-tilda #allrecords .t-radio,.mif-tilda #allrecords .t-checkbox,.mif-tilda #allrecords .t-img-select{outline:none}.mif-tilda #allrecords a:focus-visible,.mif-tilda #allrecords button:focus-visible,.mif-tilda #allrecords .t-focusable,.mif-tilda #allrecords .t-focusable .t-btn,.mif-tilda #allrecords .t-focusable .t-btntext,.mif-tilda #allrecords .t-img-select:focus-visible+.t-img-select__indicator,.mif-tilda #allrecords .t-img-select:focus-visible+.t-img-select__indicator:after,.mif-tilda #allrecords .t-radio:focus-visible+.t-radio__indicator,.mif-tilda #allrecords .t-checkbox:focus-visible+.t-checkbox__indicator{outline-color:#2015FF;outline-offset:4px;outline-style:auto}.mif-tilda #allrecords .t-descr a:focus-visible,.mif-tilda #allrecords .t-sociallinks a:focus-visible,.mif-tilda #allrecords .ya-share2__link:focus-visible{outline-offset:2px}.mif-tilda #allrecords a[href^=tel]{color:inherit;text-decoration:none}.mif-tilda #allrecords ol{padding-left:22px}.mif-tilda #allrecords ul{padding-left:20px}.mif-tilda #allrecords b,.mif-tilda #allrecords strong{font-weight:700}@media print{.mif-tilda body,.mif-tilda html{min-width:1200px;max-width:1200px;padding:0;margin:0 auto;border:none}}.mif-tilda .t-records{-webkit-font_smoothing:antialiased;background-color:none}.mif-tilda .t-records a{color:#1b64a6;text-decoration:none}.mif-tilda .t-records a[href^=tel]{color:inherit;text-decoration:none}.mif-tilda .t-records ol{padding-left:22px;margin-top:0;margin-bottom:10px}.mif-tilda .t-records ul{padding-left:20px;margin-top:0;margin-bottom:10px}.mif-tilda .t-mbfix{opacity:.01;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);position:fixed;width:100%;height:500px;background-color:white;top:0;left:0;z-index:10000;-webkit-transition:all 0.1s ease;transition:all 0.1s ease}.mif-tilda .t-mbfix_hide{-webkit-transform:translateX(3000px);-ms-transform:translateX(3000px);transform:translateX(3000px)}.mif-tilda img:not([src]){visibility:hidden}.mif-tilda .t-body_scroll-locked{position:fixed;left:0;width:100%;height:100%;overflow:hidden}.mif-tilda .r_anim{-webkit-transition:opacity 0.5s;transition:opacity 0.5s}.mif-tilda .r_hidden{opacity:0}.mif-tilda .r_showed{opacity:1}@media screen and (max-width:1024px){.mif-tilda a:active,.mif-tilda button:active{-webkit-tap-highlight-color:rgba(255,255,255,.1)}}.mif-tilda .t-text{font-family:'Cormorant',Arial,sans-serif;font-weight:400;color:#494949}.mif-tilda .t-text_xs{font-size:15px;line-height:1.55}.mif-tilda .t-text_sm{font-size:18px;line-height:1.55}.mif-tilda .t-text_md{font-size:20px;line-height:1.55}.mif-tilda .t-name{font-family:'Circe',Arial,sans-serif;font-weight:600;color:#000000}.mif-tilda .t-name_xs{font-size:16px;line-height:1.35}.mif-tilda .t-name_md{font-size:20px;line-height:1.35}.mif-tilda .t-name_xl{font-size:24px;line-height:1.35}.mif-tilda .t-heading{font-family:'Circe',Arial,sans-serif;font-weight:600;color:#000000}.mif-tilda .t-heading_xs{font-size:26px;line-height:1.23}.mif-tilda .t-heading_lg{font-size:32px;line-height:1.17}.mif-tilda .t-title{font-family:'Circe',Arial,sans-serif;font-weight:600;color:#000000}.mif-tilda .t-title_xxs{font-size:36px;line-height:1.23}.mif-tilda .t-title_xs{font-size:42px;line-height:1.23}.mif-tilda .t-descr{font-family:'Circe',Arial,sans-serif;font-weight:400;color:#494949}.mif-tilda .t-descr_xxs{font-size:14px;line-height:1.55}.mif-tilda .t-descr_xs{font-size:16px;line-height:1.55}.mif-tilda .t-descr_sm{font-size:18px;line-height:1.55}.mif-tilda .t-descr_md{font-size:20px;line-height:1.55}.mif-tilda .t-descr_xl{font-size:24px;line-height:1.5}.mif-tilda .t-btn{display:inline-block;font-family:'Circe',Arial,sans-serif;border:0 none;text-align:center;white-space:nowrap;vertical-align:middle;font-weight:700;background-image:none;cursor:pointer;-webkit-appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mif-tilda .t-btn td{vertical-align:middle}.mif-tilda .t-btn_sending{opacity:.5}.mif-tilda .t-btn_xs{height:35px;font-size:13px;padding-left:15px;padding-right:15px}.mif-tilda .t-btn_sm{height:45px;font-size:14px;padding-left:30px;padding-right:30px}.mif-tilda .t-btntext{font-family:'Circe',Arial,sans-serif;color:#000000;font-size:20px;line-height:1.55;font-weight:700;text-decoration:none;cursor:pointer;display:inline-block}.mif-tilda .t-btntext:after{content:"\00a0→";font-family:Arial,Helvetica,sans-serif}.mif-tilda .t-uppercase.t-btntext{font-size:16px}.mif-tilda .t-align_center{text-align:center}.mif-tilda .t-align_left{text-align:left}.mif-tilda .t-margin_auto{margin-left:auto;margin-right:auto}.mif-tilda .t-tildalabel{background-color:#000;color:#fff;width:100%;height:70px;font-family:Arial;font-size:14px}.mif-tilda .t-tildalabel:hover .t-tildalabel__wrapper{opacity:1}.mif-tilda .t-tildalabel__wrapper{display:table;height:30px;width:270px;margin:0 auto;padding-top:20px;opacity:.4}.mif-tilda .t-tildalabel__txtleft{display:table-cell;width:120px;height:30px;vertical-align:middle;text-align:right;padding-right:12px;font-weight:300;font-size:12px}.mif-tilda .t-tildalabel__wrapimg{display:table-cell;width:30px;height:30px;vertical-align:middle}.mif-tilda .t-tildalabel__img{width:30px;height:30px;vertical-align:middle}.mif-tilda .t-tildalabel__txtright{display:table-cell;width:120px;height:30px;vertical-align:middle;padding-left:12px;font-weight:500;letter-spacing:2px}.mif-tilda .t-tildalabel__link{color:#fff;text-decoration:none;vertical-align:middle}.mif-tilda .t-popup{display:none}.mif-tilda .t-submit{font-family:'Circe',Arial,sans-serif}.mif-tilda .t-input{font-family:'Circe',Arial,sans-serif}.mif-tilda .t-input__vis-ph{font-family:'Circe',Arial,sans-serif}.mif-tilda .t-select{font-family:'Circe',Arial,sans-serif}.mif-tilda .t-input-error{font-family:'Cormorant',Arial,sans-serif}.mif-tilda .t-form__errorbox-wrapper{font-family:'Cormorant',Arial,sans-serif}.mif-tilda .t-form__errorbox-text{font-family:'Cormorant',Arial,sans-serif}.mif-tilda .t-form__errorbox-item{font-family:'Cormorant',Arial,sans-serif}.mif-tilda .t-form__successbox{font-family:'Cormorant',Arial,sans-serif}.mif-tilda .t-rec_pt_0{padding-top:0}.mif-tilda .t-rec_pt_15{padding-top:15px}.mif-tilda .t-rec_pt_30{padding-top:30px}.mif-tilda .t-rec_pt_45{padding-top:45px}.mif-tilda .t-rec_pt_75{padding-top:75px}.mif-tilda .t-rec_pb_0{padding-bottom:0}.mif-tilda .t-rec_pb_15{padding-bottom:15px}.mif-tilda .t-rec_pb_45{padding-bottom:45px}.mif-tilda .t-rec_pb_60{padding-bottom:60px}.mif-tilda .t-rec_pb_75{padding-bottom:75px}.mif-tilda .t-rec_pb_90{padding-bottom:90px}@media screen and (max-width:1200px){.mif-tilda .t-text_xs{font-size:14px}.mif-tilda .t-text_sm{font-size:16px}.mif-tilda .t-text_md{font-size:18px}.mif-tilda .t-descr_xxs{font-size:12px}.mif-tilda .t-descr_xs{font-size:14px}.mif-tilda .t-descr_sm{font-size:16px}.mif-tilda .t-descr_md{font-size:18px}.mif-tilda .t-descr_xl{font-size:22px}.mif-tilda .t-title_xxs{font-size:32px}.mif-tilda .t-title_xs{font-size:38px}.mif-tilda .t-name_xs{font-size:14px}.mif-tilda .t-name_md{font-size:18px}.mif-tilda .t-name_xl{font-size:22px}.mif-tilda .t-heading_xs{font-size:24px}.mif-tilda .t-heading_lg{font-size:30px}}@media screen and (max-width:640px){.mif-tilda .t-text_xs{font-size:12px;line-height:1.45}.mif-tilda .t-text_sm{font-size:14px;line-height:1.45}.mif-tilda .t-text_md{font-size:16px;line-height:1.45}.mif-tilda .t-descr_xs{font-size:12px;line-height:1.45}.mif-tilda .t-descr_sm{font-size:14px;line-height:1.45}.mif-tilda .t-descr_md{font-size:16px;line-height:1.45}.mif-tilda .t-descr_xl{font-size:20px;line-height:1.4}.mif-tilda .t-title_xxs{font-size:28px}.mif-tilda .t-title_xs{font-size:30px}.mif-tilda .t-name_xs{font-size:12px}.mif-tilda .t-name_md{font-size:16px}.mif-tilda .t-name_xl{font-size:20px}.mif-tilda .t-heading_xs{font-size:22px}.mif-tilda .t-heading_lg{font-size:26px}.mif-tilda .t-btn{white-space:normal}.mif-tilda .t-btn_sm{padding-left:20px;padding-right:20px}}@media screen and (max-width:480px){.mif-tilda .t-rec_pt_0{padding-top:0}.mif-tilda .t-rec_pt_15{padding-top:15px}.mif-tilda .t-rec_pt_30{padding-top:30px}.mif-tilda .t-rec_pt_45{padding-top:45px}.mif-tilda .t-rec_pt_75{padding-top:75px}.mif-tilda .t-rec_pb_0{padding-bottom:0}.mif-tilda .t-rec_pb_15{padding-bottom:15px}.mif-tilda .t-rec_pb_45{padding-bottom:45px}.mif-tilda .t-rec_pb_60{padding-bottom:60px}.mif-tilda .t-rec_pb_75{padding-bottom:75px}.mif-tilda .t-rec_pb_90{padding-bottom:90px}.mif-tilda .t-rec_pt-res-480_0{padding-top:0!important}.mif-tilda .t-rec_pt-res-480_15{padding-top:15px!important}.mif-tilda .t-rec_pb-res-480_0{padding-bottom:0!important}.mif-tilda .t-rec_pb-res-480_15{padding-bottom:15px!important}.mif-tilda .t-rec_pb-res-480_30{padding-bottom:30px!important}.mif-tilda .t-rec_pb-res-480_60{padding-bottom:60px!important}.mif-tilda .t-btn_xs{height:40px}.mif-tilda .t-btn_sm{height:50px}}@media screen and (max-width:1200px){.mif-tilda .t-screenmin-1200px{display:none}}@media screen and (max-width:980px){.mif-tilda .t-screenmin-980px{display:none}}@media screen and (max-width:640px){.mif-tilda .t-screenmin-640px{display:none}}@media screen and (max-width:480px){.mif-tilda .t-screenmin-480px{display:none}}@media screen and (max-width:320px){.mif-tilda .t-screenmin-320px{display:none}}@media screen and (min-width:321px){.mif-tilda .t-screenmax-320px{display:none}}@media screen and (min-width:481px){.mif-tilda .t-screenmax-480px{display:none}}@media screen and (min-width:641px){.mif-tilda .t-screenmax-640px{display:none}}@media screen and (min-width:981px){.mif-tilda .t-screenmax-980px{display:none}}@media screen and (min-width:1201px){.mif-tilda .t-screenmax-1200px{display:none}}.mif-tilda .t396{-webkit-text-size-adjust:100%}.mif-tilda .t396__iframe{z-index:10000;background-color:#fff;width:100vw;height:100vh;position:fixed;top:0;left:0;border:0}.mif-tilda .t396__body_overflow_hidden{overflow:hidden}.mif-tilda .t396__display_none{display:none}.mif-tilda .t396__artboard{position:relative;width:100%;height:100vh;overflow:hidden}.mif-tilda .t396__artboard .t396__artboard_scale{overflow:visible}.mif-tilda .t396__artboard.t396__artboard_scale .t396__elem[data-elem-type="text"] .tn-atom{word-break:normal;-moz-osx-font-smoothing:grayscale}.mif-tilda .t396__artboard_scale .t396__carrier,.mif-tilda .t396__artboard_scale .t396__filter{transform-origin:top left}.mif-tilda .tn-atom__scale-wrapper{width:inherit;height:inherit}.mif-tilda .t396__elem .tn-atom__scale-wrapper .tn-atom{width:inherit;height:inherit!important;box-sizing:border-box}.mif-tilda .t396__artboard.rendering .tn-elem{visibility:hidden}.mif-tilda .t396__artboard.rendered .tn-elem{visibility:visible}.mif-tilda .t396__carrier{position:absolute;left:0;top:0;z-index:0;width:100%;height:100vh;-moz-transform:unset}.mif-tilda .t396__filter{position:absolute;left:0;top:0;z-index:1;width:100%;height:100vh;transform:translateZ(0)}.mif-tilda .t396__elem{position:absolute;box-sizing:border-box;display:table}.mif-tilda .t396 .tn-atom{display:table-cell;vertical-align:middle;width:100%;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%}@media screen and (max-width:959px){.mif-tilda .t396_safari .t396__artboard_scale .tn-atom{-webkit-text-size-adjust:auto;-moz-text-size-adjust:auto;-ms-text-size-adjust:auto}}.mif-tilda .t396 .tn-atom ul,.mif-tilda .t396 .tn-atom ol{margin-bottom:0}.mif-tilda .t396_safari .tn-atom:not(.tn-atom__form){transform:translateZ(0)}.mif-tilda .t396 a.tn-atom{text-decoration:none}.mif-tilda .t396 .tn-atom__img{width:100%;display:block}.mif-tilda .t396 .tn-atom__html{vertical-align:top}.mif-tilda .t396 .tn-atom__pin{border-radius:1000px;border-style:solid}.mif-tilda .t396 .tn-atom__pin_onclick{cursor:pointer}.mif-tilda .t396 .tn-atom__tip{position:absolute;box-sizing:border-box;width:300px;max-width:90vw;padding:15px;display:none}.mif-tilda .t396 .tn-atom__pin:hover .tn-atom__tip{display:none}.mif-tilda .t396 .tn-atom__tip-img{width:100%;display:block;margin-bottom:10px}.mif-tilda .t396 .tn-atom__tip[data-tip-pos=top]{bottom:100%;margin-bottom:15px;left:50%;transform:translateX(-50%)}.mif-tilda .t396 .tn-atom__tip[data-tip-pos=bottom]{top:100%;margin-top:15px;left:50%;transform:translateX(-50%)}.mif-tilda .t396 .tn-atom__tip[data-tip-pos=left]{right:100%;margin-right:15px;top:50%;transform:translateY(-50%)}.mif-tilda .t396 .tn-atom__tip[data-tip-pos=right]{left:100%;margin-left:15px;top:50%;transform:translateY(-50%)}.mif-tilda .t396__ui{position:absolute;top:16px;left:196px;background-color:#fa876b;color:#000!important;height:30px;line-height:30px;width:100px;z-index:1000;text-align:center;border-radius:3px;display:none;font-size:14px}.mif-tilda .t396__artboard.t396__artboard-fixed-active{transform:none!important;opacity:1!important}.mif-tilda .t396__artboard-fixed-no-bg,.mif-tilda .t396__artboard-fixed-innactive,.mif-tilda .t396__artboard-fixed-innactive .t396__elem,.mif-tilda .t396__artboard-fixed-no-bg.t396__artboard-fixed-innactive .t396__elem{pointer-events:none}.mif-tilda .t396__artboard-fixed-no-bg .t396__elem{pointer-events:auto}.mif-tilda .t396__elem-flex{position:relative!important;left:initial!important;top:initial!important;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;-ms-flex-negative:0;flex-shrink:0}.mif-tilda .t396__artboard-flex>.t396__elem,.mif-tilda .t396__artboard-flex>.t396__group{position:relative!important;left:initial!important;top:initial!important;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;-ms-flex-negative:0;flex-shrink:0}.mif-tilda .t107{text-align:center}.mif-tilda #allrecords a.t107__link_width100:focus-visible{outline-offset:-2px}.mif-tilda .t107__width{vertical-align:middle}.mif-tilda .t107__widthauto{display:block;width:auto;max-width:100%;margin:0 auto}.mif-tilda .t107__title{padding-top:28px;padding-bottom:28px;font-size:14px;line-height:28px}@media screen and (max-width:640px){.mif-tilda #allrecords a.t107__link:focus-visible{outline-offset:-2px}}@media screen and (max-width:480px){.mif-tilda .t107__mobpadding{padding-left:20px;padding-right:20px;box-sizing:border-box}}.mif-tilda .t868__code-wrap{display:none}.mif-tilda .t868__fullwidth iframe{display:block}@media screen and (max-width:640px){.mif-tilda .t868__fullwidth .t868__mainblock{padding:0}}.mif-tilda .t300{display:none}.mif-tilda .t300__tooltipster-noir{border-radius:0;background:#000;color:#fff;max-width:300px}.mif-tilda .t300__tooltipster-noir .tooltipster-content{padding:18px 18px}.mif-tilda .t300__content-text a{color:inherit;text-decoration:inherit}.mif-tilda .t300__content-img img{width:100%;padding-bottom:16px}.mif-tilda .t300__content-text{font-family:'Cormorant',Arial,sans-serif;font-size:14px;line-height:20px}.mif-tilda .t300__content-title{font-family:'Circe',Arial,sans-serif;font-size:20px;line-height:28px;padding-bottom:4px;margin-top:-4px}.mif-tilda .t786 .t-store__card__btns-wrapper{margin-top:20px}.mif-tilda .t786__container{font-size:0;box-sizing:border-box}.mif-tilda .t786__col{display:inline-block;vertical-align:top;box-sizing:border-box;font-size:initial}.mif-tilda .t786__container_indent.t786__container_clgap-0px{padding:0 40px 0 40px}.mif-tilda .t786__container_indent.t786__container_clgap-10px{padding:0 35px 0 35px}.mif-tilda .t786__container_indent.t786__container_clgap-20px{padding:0 30px 0 30px}.mif-tilda .t786__container_indent.t786__container_clgap-40px{padding:0 20px 0 20px}.mif-tilda .t-container_100.t786__container_clgap-10px{padding:0 5px 0 5px}.mif-tilda .t-container_100.t786__container_clgap-20px{padding:0 10px 0 10px}.mif-tilda .t-container_100.t786__container_clgap-40px{padding:0 20px 0 20px}.mif-tilda .t-container.t786__container_clgap-0px{padding:0 20px 0 20px}.mif-tilda .t-container.t786__container_clgap-10px{padding:0 15px 0 15px}.mif-tilda .t-container.t786__container_clgap-20px{padding:0 10px 0 10px}.mif-tilda .t786__container_clgap-10px .t786__col{padding:0 5px 0 5px}.mif-tilda .t786__container_clgap-20px .t786__col{padding:0 10px 0 10px}.mif-tilda .t786__container_clgap-40px .t786__col{padding:0 20px 0 20px}@media screen and (max-width:1200px){.mif-tilda .t-container.t786__container_clgap-0px{padding:0 10px 0 10px}.mif-tilda .t-container.t786__container_clgap-10px{padding:0 5px 0 5px}.mif-tilda .t-container.t786__container_clgap-20px,.mif-tilda .t-container.t786__container_clgap-40px{padding:0 0 0 0}.mif-tilda .t-container.t786__container_clgap-40px .t786__col{padding:0 10px 0 10px}}@media screen and (max-width:960px){.mif-tilda .t-container_100.t786__container_clgap-0px{padding:0 0 0 0}.mif-tilda .t-container_100.t786__container_clgap-10px{padding:0 5px 0 5px}.mif-tilda .t-container_100.t786__container_clgap-20px{padding:0 5px 0 5px}.mif-tilda .t-container_100.t786__container_clgap-40px{padding:0 10px 0 10px}.mif-tilda .t-container.t786__container_clgap-0px,.mif-tilda .t786__container_indent.t786__container_clgap-0px{padding:0 20px 0 20px}.mif-tilda .t-container.t786__container_clgap-10px,.mif-tilda .t786__container_indent.t786__container_clgap-10px{padding:0 15px 0 15px}.mif-tilda .t-container.t786__container_clgap-20px,.mif-tilda .t786__container_indent.t786__container_clgap-20px{padding:0 15px 0 15px}.mif-tilda .t-container.t786__container_clgap-40px,.mif-tilda .t786__container_indent.t786__container_clgap-40px{padding:0 10px 0 10px}.mif-tilda .t786__container_clgap-20px .t786__col{padding:0 5px 0 5px}.mif-tilda .t786__container_clgap-40px .t786__col{padding:0 10px 0 10px}}.mif-tilda .t786__col_25{width:25%}.mif-tilda .t786__col_33{width:33.333%}.mif-tilda .t786__col_50{width:50%}.mif-tilda .t786__col_100{width:100%}.mif-tilda .t786__separator{margin-bottom:90px}.mif-tilda .t706__body_cartwinshowed .t786__imgwrapper{z-index:0}.mif-tilda .t786__imgwrapper{position:relative;width:100%;margin-bottom:20px;padding-bottom:110%}.mif-tilda .t786__imgwrapper_16-9{padding-bottom:56%}.mif-tilda .t786__imgwrapper_4-3{padding-bottom:75%}.mif-tilda .t786__imgwrapper_3-2{padding-bottom:66%}.mif-tilda .t786__imgwrapper_1-1{padding-bottom:100%}.mif-tilda .t786__imgwrapper_2-3{padding-bottom:150%}.mif-tilda .t786__imgwrapper_3-4{padding-bottom:133%}.mif-tilda .t786__imgwrapper_9-16{padding-bottom:177%}.mif-tilda .t786__bgimg{background-position:center;background-repeat:no-repeat;background-size:cover;position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;-webkit-transition:opacity 0.1s linear;transition:opacity 0.1s linear}.mif-tilda .t786__img{max-width:100%;max-height:100%;position:absolute;margin:auto;top:0;bottom:0;right:0;left:0;z-index:2;-webkit-transition:opacity 0.1s linear;transition:opacity 0.1s linear}.mif-tilda .t786__bgimg_second,.mif-tilda .t786__img_second{z-index:1;opacity:0}.mif-tilda .t786__markwrapper{position:absolute;right:10px;top:10px;z-index:5;display:table}.mif-tilda .t786__mark{font-weight:400;font-size:12px;font-family:'Circe',Arial,sans-serif;display:table-cell;width:50px;height:50px;text-align:center;vertical-align:middle;border-radius:50px;background-color:#111;color:#fff;box-sizing:border-box;padding:0 10px}.mif-tilda .t786__uptitle{margin-bottom:8px;color:#ff8562}.mif-tilda .t786__descr{margin-top:8px}.mif-tilda .t786__price-wrapper{margin-top:12px}.mif-tilda .t786__price-wrapper_above-title{margin-top:0;margin-bottom:12px}.mif-tilda .t786__price-item{display:inline-block;vertical-align:middle}.mif-tilda .t786__price-value,.mif-tilda .t786__price-currency{display:inline-block;vertical-align:middle;float:left}.mif-tilda .t786__price-value+div.t786__price-currency:before{content:' ';white-space:pre}.mif-tilda .t786__price,.mif-tilda .t786__price_old{white-space:nowrap}.mif-tilda .t786__price_old{position:relative;color:#bdbdbd}.mif-tilda .t786__price_old:after{content:'';position:absolute;top:50%;right:-1px;left:-1px;border-top:1px solid;width:100%}.mif-tilda .t786__buttons{margin-top:19px}.mif-tilda .t786__scroll-icon-wrapper{display:none}.mif-tilda .t786__buttonwrapper{padding:0 20px;text-align:center}.mif-tilda .t786__col .t-store__prod__quantity+a[href="#order"],.mif-tilda .t786__col .t-store__prod__quantity~.t1002__addBtn{margin-bottom:8px}.mif-tilda .t786__showmore{margin-top:50px}.mif-tilda .t786__separator_hide{display:none}@media screen and (max-width:980px){.mif-tilda .t786__showmore{margin-top:40px}}@media screen and (max-width:640px){.mif-tilda .t786__showmore{margin-top:30px}}@media screen and (max-width:480px){.mif-tilda .t786__showmore{margin-top:20px}}.mif-tilda .t786 .t-popup{padding:0;-webkit-overflow-scrolling:touch}.mif-tilda .t786 .t-popup__container{max-width:1240px;right:0;left:0}.mif-tilda .t786 .t-popup__container.t786__popup-container_8-cols{max-width:760px}.mif-tilda .t-popup .t786__container{display:block;padding:40px 20px}.mif-tilda .t786__popup-container_8-cols .t786__container{padding:40px!important}.mif-tilda .t786__popup-container_8-cols .t786__wrapper{padding-top:40px}.mif-tilda .t-popup .t786__container:after{content:'';display:block;height:0;clear:both}.mif-tilda .t786 .t-popup__close{z-index:999}.mif-tilda .t786__close-text-wrapper{z-index:999;position:fixed;left:20px;top:20px}.mif-tilda .t786__close-text{margin-bottom:20px;cursor:pointer;display:inline-block;opacity:.8;font-weight:400}.mif-tilda .t786__close-text:before{content:"←\a0";font-family:Arial,Helvetica,sans-serif}@media screen and (max-width:1240px){.mif-tilda .t786 .t-popup__container{max-width:1200px}.mif-tilda .t-popup .t786__container{padding:30px 10px}.mif-tilda .t786__col_left{margin-right:10px}.mif-tilda .t786__col_right{margin-left:10px}}@media screen and (max-width:1200px){.mif-tilda .t786 .t-popup__container{max-width:1000px}.mif-tilda .t-popup .t786__container{padding:30px 20px}.mif-tilda .t786 .t-popup__container.t786__popup-container_8-cols{max-width:620px}}@media screen and (max-width:1000px){.mif-tilda .t786 .t-popup__container{max-width:980px}.mif-tilda .t-popup .t786__container{padding:20px 10px}}@media screen and (max-width:980px){.mif-tilda .t786 .t-popup{padding:0 20px}.mif-tilda .t786 .t-popup__container{max-width:640px}.mif-tilda .t-popup .t786__container{padding:30px}.mif-tilda .t786__col_left,.mif-tilda .t786__col_right{margin:0;display:block;max-width:100%}.mif-tilda .t786__col_left{padding:0}.mif-tilda .t786__col_right{padding:25px 0 0 0}}@media screen and (max-width:670px){.mif-tilda .t786__btn{display:block;width:100%}.mif-tilda .t786__btn:last-child{margin-top:10px}.mif-tilda .t786 .t-popup__container{right:20px;left:20px}}@media screen and (max-width:560px){.mif-tilda .t786 .t-popup_show .t-popup__container{max-width:100%;right:0;left:0;top:50px;bottom:0;-webkit-transform:translateY(0);transform:translateY(0)}.mif-tilda .t786 .t-popup_show .t-popup__container.t-popup__container-static{max-width:100%;min-height:100vh;top:0;margin:50px 0 0}.mif-tilda .t786__popup-container_8-cols .t786__container{padding:20px!important}.mif-tilda .t786__popup-container_8-cols .t786__wrapper{padding-top:30px}.mif-tilda .t786 .t-popup{padding:0}.mif-tilda .t786 .t-popup__close{width:100%;height:50px;background:#000;position:fixed;display:table;z-index:2;left:0;right:0;top:0}.mif-tilda .t786 .t-popup__close-wrapper{display:table-cell;vertical-align:middle;text-align:right;width:100%;padding-right:20px;font-size:0}.mif-tilda .t786 .t-popup__close-icon{width:16px}.mif-tilda .t786 .t-popup__close-icon g{fill:#fff}.mif-tilda .t786__close-text-wrapper{display:none}.mif-tilda .t-popup .t786__container{padding:20px}.mif-tilda .t786__col_right{padding-top:30px}.mif-tilda .t786 .t-popup__container{transform:translateX(100%) translateY(0) scale(1)!important;padding-bottom:40px}.mif-tilda .t786 .t-popup_show .t-popup__container{transform:translateX(0) translateY(0)!important;transition:transform ease-in-out .3s}.mif-tilda .t786 .t-popup .t-popup__close{transform:translateX(100%) scale(1);transition:transform ease-in-out .3s}.mif-tilda .t786 .t-popup.t-popup_show .t-popup__close{transform:translateX(0%) scale(1);transition:transform ease-in-out .3s}.mif-tilda .t786 .t-popup__close-wrapper{position:relative;border-bottom:1px solid rgba(0,0,0,.1)}.mif-tilda .t786 .t-popup__close-wrapper .t-popup__close-icon_arrow{width:26px;position:absolute;left:12px;top:12px}.mif-tilda .t786 .t-popup__close-wrapper .t-popup__close-icon_cross{display:none}.mif-tilda .t786 .t-popup .t-popup__close{position:fixed}}@media screen and (min-width:560px){.mif-tilda .t786 .t-popup__close-wrapper .t-popup__close-icon_arrow{display:none}.mif-tilda .t786 .t-popup__close{background-color:transparent!important}}.mif-tilda .t-popup .t786__title-wrapper{margin-bottom:18px}.mif-tilda .t-popup .t786__title_small{margin-top:4px;color:#777}.mif-tilda .t-popup .t786__descr{margin-top:20px}.mif-tilda .t-popup .t786__price-wrapper{margin-top:0}.mif-tilda .t-popup .t-align_center .t786__price-wrapper{margin-bottom:10px}.mif-tilda .t-popup .t786__btn-wrapper{margin-top:20px;margin-bottom:30px}.mif-tilda .t786 .t-product__option{margin-top:10px;margin-bottom:10px}.mif-tilda .t786 .t-product__option-title{padding-bottom:3px}.mif-tilda .t786 .t-product__option-variants{position:relative;display:table;min-width:150px}.mif-tilda .t786 .t-align_center .t-product__option{display:inline-table}.mif-tilda .t786 .t-align_center .t-product__option~.t-product__option{padding-left:10px}.mif-tilda .t786 .t-align_center .t-product__option-title,.mif-tilda .t786__popup-container_8-cols .t-product__option-title{display:table-cell;padding-right:5px;padding-bottom:0}.mif-tilda .t786 .t-align_center .t-product__option-variants,.mif-tilda .t786__popup-container_8-cols .t-product__option-variants{display:table-cell}.mif-tilda .t786 .t-product__option-variants:after{content:' ';width:0;height:0;border-style:solid;border-width:6px 5px 0 5px;border-color:#000 transparent transparent transparent;position:absolute;right:10px;top:0;bottom:0;margin:auto;pointer-events:none}.mif-tilda .t786 .t-product__option-select{width:100%;border:1px #ddd solid;background:#f8f8f8;color:#000;box-sizing:border-box;cursor:pointer;padding:2px 30px 2px 10px;border-radius:5px;-webkit-appearance:none;appearance:none;-moz-appearance:none}.mif-tilda .t786 .t-product__option-select::-ms-expand{width:0;height:0;opacity:0}@media screen and (max-width:960px){.mif-tilda .t786 .t-align_center .t-product__option{display:table;padding:0px!important;margin-left:auto;margin-right:auto}}@media screen and (max-width:640px){.mif-tilda .t786 .t-product__option-select{font-size:16px}}.mif-tilda .t786 .t-slds__wrapper{padding:0!important}.mif-tilda .t786 .t-slds__arrow_wrapper{height:auto!important}@media screen and (min-width:960px){.mif-tilda .t786__imgwrapper:hover .t786__bgimg_first_hover,.mif-tilda .t786__imgwrapper:hover .t786__img_first_hover{opacity:0}.mif-tilda .t786__imgwrapper:hover .t786__bgimg_second,.mif-tilda .t786__imgwrapper:hover .t786__img_second{z-index:3;opacity:1}}@media screen and (max-width:960px){.mif-tilda .t786__separator{display:none}.mif-tilda .t786__container_mobile-grid{padding:0 10px}.mif-tilda .t786__col_mobile-grid{width:50%;display:inline-block;vertical-align:top}.mif-tilda .t786__col{margin-bottom:60px}.mif-tilda .t-col_8 .t786__imgwrapper_mobile-nopadding{padding-bottom:0px!important;font-size:0}.mif-tilda .t-col_8 .t786__imgwrapper_mobile-nopadding .t786__img{position:initial}.mif-tilda .t786__img_second{display:none}.mif-tilda .t786__container_mobile-flex{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;overflow-x:scroll;-webkit-overflow-scrolling:touch;max-width:100%;box-sizing:border-box;padding:0 0 10px!important;-ms-overflow-style:none;scrollbar-width:none}.mif-tilda .t786__container_mobile-flex::-webkit-scrollbar{display:none}.mif-tilda .t786__container_mobile-flex .t786__col{min-width:38%;max-width:38%;margin-bottom:0px!important}.mif-tilda .t786__container_mobile-flex.t786__container_clgap-0px .t786__col:first-child{margin-left:20px}.mif-tilda .t786__container_mobile-flex.t786__container_clgap-10px .t786__col:first-child,.mif-tilda .t786__container_mobile-flex.t786__container_clgap-20px .t786__col:first-child{margin-left:15px}.mif-tilda .t786__container_mobile-flex.t786__container_clgap-40px .t786__col:first-child{margin-left:10px}.mif-tilda .t786__container_clgap-0px .t786__mobile-flex-gap{width:20px;min-width:20px;height:inherit}.mif-tilda .t786__container_clgap-10px .t786__mobile-flex-gap,.mif-tilda .t786__container_clgap-20px .t786__mobile-flex-gap{width:15px;min-width:15px;height:inherit}.mif-tilda .t786__container_clgap-40px .t786__mobile-flex-gap{width:10px;min-width:10px;height:inherit}.mif-tilda .t786__scroll-icon-wrapper{display:block;padding:0 40px 20px 0;color:#a1a1a1;text-align:right;font-size:0}@-webkit-keyframes t786__icon-anim{0%{-webkit-transform:translate3d(-20px,0,0);opacity:0}10%{-webkit-transform:translate3d(-20px,0,0);opacity:0}20%{-webkit-transform:translate3d(-20px,0,0);opacity:1}70%{-webkit-transform:translate3d(0,0,0);opacity:1}80%{-webkit-transform:translate3d(0,0,0);opacity:1}81%{-webkit-transform:translate3d(0,0,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);opacity:0}}@keyframes t786__icon-anim{0%{transform:translate3d(-20px,0,0);opacity:0}10%{transform:translate3d(-20px,0,0);opacity:0}20%{transform:translate3d(-20px,0,0);opacity:1}70%{transform:translate3d(0,0,0);opacity:1}80%{transform:translate3d(0,0,0);opacity:1}81%{transform:translate3d(0,0,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:0}}.mif-tilda .t786__scroll-icon{-webkit-animation:t786__icon-anim 1.5s infinite;animation:t786__icon-anim 1.5s infinite}}@media screen and (max-width:640px){.mif-tilda .t786__container_mobile-grid{box-sizing:border-box}.mif-tilda .t786__container_mobile-flex .t786__col:first-child{margin-left:0}.mif-tilda .t786__container_mobile-flex .t786__col{min-width:70%;max-width:70%}.mif-tilda .t786__scroll-icon-wrapper{padding:0 20px 10px 0}}@media screen and (max-width:480px){.mif-tilda .t786__imgwrapper_mobile-nopadding{padding-bottom:0px!important;font-size:0}.mif-tilda .t786__imgwrapper_mobile-nopadding .t786__img{position:initial}.mif-tilda .t786__col_mobile-grid{width:100%;display:block}.mif-tilda .t786__container_mobile-flex .t786__col{min-width:80%;max-width:80%;box-sizing:content-box}.mif-tilda .t786__container_mobile-flex .t786__col:first-child{padding-right:10px}.mif-tilda .t786__container_mobile-flex .t786__col:last-child{padding-left:10px}.mif-tilda .t786__container_mobile-flex .t786__col:not(:first-child,:last-child){padding-right:10px;padding-left:10px}.mif-tilda .t786 .mobile-two-columns .t-item{width:50%;display:inline-block;vertical-align:top}.mif-tilda .t786 .mobile-two-columns .t786__title.t-name,.mif-tilda .t786 .t786__container_mobile-flex .t786__title.t-name{font-size:14px;word-break:break-word}.mif-tilda .t786 .mobile-two-columns .t786__btn.t-btn{font-size:12px;padding:0 10px}.mif-tilda .t786 .mobile-two-columns .t786__btn.t786__btn_second.t-btn{font-size:12px;padding:0 10px}.mif-tilda .t786 .t786__col_mobile-grid:last-child{margin-bottom:0}}.mif-tilda .t786__one_col_img{width:100%;vertical-align:middle;margin-bottom:4px}.mif-tilda .t786__two_col_img{width:calc(50% - 2px);vertical-align:middle;margin-bottom:4px}.mif-tilda .t786__col_fixed{position:-webkit-sticky;position:sticky;top:10px}.mif-tilda .t786__col_fixed .t786__two_col_img:nth-child(2n-1){margin-right:4px}.mif-tilda .t786__popup-container_8-cols .t786__col_fixed{position:static;margin-left:0;margin-right:0;margin-bottom:20px;max-width:100%}@media screen and (min-width:980px){.mif-tilda .t786__col_left.t786__col_fixed+.t786__col_left{display:none}}@media screen and (max-width:980px){.mif-tilda .t786__col_left.t786__col_fixed{display:none}}@media screen and (max-width:561px){.mif-tilda .t-popup .t-popup__container .t786__btn-wrapper-fixed{position:fixed;bottom:0;left:0;right:0;padding:20px;box-sizing:border-box;background:white;margin:0;border-radius:5px;box-shadow:0 -8px 12px 0 rgba(0,0,0,.07)}.mif-tilda .t-popup .t786__btn-wrapper-fixed .t786__btn{flex:1 1 auto}}.mif-tilda .t958 .t-section__bottomwrapper{margin-top:105px}.mif-tilda .t958__gallery{position:relative;margin:0;overflow:hidden}.mif-tilda .t958__scroll-icon-wrapper{display:none}.mif-tilda .t958__wrapper{position:relative;z-index:1;margin:0 auto}.mif-tilda .t958__slider{position:relative;margin:auto}.mif-tilda .t958 .t-slds__container{overflow:visible}.mif-tilda .t958__slidecontainer{width:100%;height:100%;list-style:none;transition:transform ease-in-out 0.3s;padding:0!important;margin:0!important;-webkit-transform:translate(0,0);transform:translate(0,0);cursor:-moz-grab;display:-webkit-flex;display:-ms-flexbox;display:flex}.mif-tilda .t958__slidecontainer li ul{list-style-type:disc}.mif-tilda .t958__item{float:none!important;position:relative;width:100%;height:100%;box-sizing:border-box;-webkit-transform:translate(0,0);transform:translate(0,0);-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.mif-tilda .t958__item .t-slds__wrapper{padding-right:40px;overflow:hidden;position:relative}.mif-tilda .t958__card-wrapper{overflow:hidden;position:relative;border-radius:4px}.mif-tilda .t958__card{padding:40px;width:100%;box-sizing:border-box;background-color:white;height:440px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-start}.mif-tilda .t958__more-wrapper{display:none;position:absolute;bottom:0;left:0;width:100%;height:115px;background-image:linear-gradient(0deg,#ffffff 40px,rgba(255,255,255,0) 110%);pointer-events:none;margin-top:auto}.mif-tilda .t958__card_preview.t958__card_fade+.t958__more-wrapper{display:flex;justify-content:center;align-items:flex-end}.mif-tilda .t958__more{display:flex;margin-bottom:25px;opacity:.5;transition:all ease .3s}.mif-tilda .t958__more-dot{width:2px;height:2px;margin:0 2px;border-radius:50%;background:#000;display:inline-block}.mif-tilda .t958__card_fade:hover .t958__more{opacity:1}.mif-tilda .t958__card_fade{cursor:pointer}.mif-tilda .t958__card_popup{height:auto!important}.mif-tilda .t958__author{width:100%;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;text-align:left}.mif-tilda .t958__avatar{margin-right:32px;-ms-flex-negative:0;-webkit-flex-shrink:0;flex-shrink:0;width:100px;height:100px;background-repeat:no-repeat;background-size:cover;background-position:center}.mif-tilda .t958__occupation{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.mif-tilda .t958__author-name{color:#000000;margin-bottom:7px}.mif-tilda .t958__author-descr{color:#777777}.mif-tilda .t958__review{margin-top:35px;text-align:left}.mif-tilda .t958__valign_top{-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.mif-tilda .t958__valign_middle{-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.mif-tilda .t958__valign_bottom{-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.mif-tilda .t958__control{position:absolute;top:0;bottom:0;cursor:pointer;background:transparent}.mif-tilda .t958__next{right:0;z-index:2;width:15%}.mif-tilda .t958__previous{left:0;z-index:3;width:15%}.mif-tilda .t958__height.t-width_6{width:560px!important;max-width:560px!important}.mif-tilda .t958__height.t-width_7{width:660px!important;max-width:660px!important}.mif-tilda .t958__height.t-width_8{width:760px!important;max-width:760px!important}.mif-tilda .t958__height.t-width_9{width:860px!important;max-width:860px!important}.mif-tilda .t958__height.t-width_10{width:960px!important;max-width:960px!important}.mif-tilda .t958__height.t-width_11{width:1060px!important;max-width:1060px!important}.mif-tilda .t958__height.t-width_12{width:1160px!important;max-width:1160px!important}.mif-tilda .t958 .t-popup__container{background-color:transparent}.mif-tilda .t958 .t958__close{top:10px;right:10px;width:43px;height:43px}.mif-tilda .t958__close-button{width:23px;padding:10px;font-size:0;border:none;background-color:transparent;cursor:pointer}@media screen and (max-width:960px){.mif-tilda .t958__previous,.mif-tilda .t958__next{width:50px!important}}@media screen and (max-width:640px){.mif-tilda .t958__gallery{padding:0 20px}.mif-tilda .t958__slider{margin:unset}.mif-tilda .t958__item{width:auto;max-width:100%}.mif-tilda .t958 .t958__item .t-slds__wrapper{padding:0;padding-right:20px}.mif-tilda .t958__card_preview{padding:30px;padding-top:40px;height:390px}.mif-tilda .t958__card_preview.t958__card_fade:after{background-image:linear-gradient(0deg,#ffffff 27%,rgba(255,255,255,0) 110%)}.mif-tilda .t958__card_preview .t958__avatar{margin-right:9px;width:50px;height:50px}.mif-tilda .t958__author-name{font-size:16px}.mif-tilda .t958__review{margin-top:25px}.mif-tilda .t958__review-text{font-size:16px}.mif-tilda .t958 .t-popup{position:fixed;top:0;left:0;height:100%;width:100%;padding:0}.mif-tilda .t958__popup-item,.mif-tilda .t958__card_popup{min-height:100%;height:100%;width:100%;max-width:unset!important}.mif-tilda .t958 .t-popup__container{right:0;left:0;height:100%}.mif-tilda .t958__card_popup{border-radius:0;padding-top:65px}.mif-tilda .t958__card_popup .t958__avatar{margin-right:9px;width:64px;height:64px}.mif-tilda .t958__card_popup .t958__review{margin-top:40px}.mif-tilda .t958 .t-popup_show .t-popup__container.t-popup__container-static{max-width:100%;min-height:100vh;top:0;margin:0}.mif-tilda .t958__height.t-width{width:660px!important;max-width:660px!important}}.mif-tilda .t849__header{position:relative;cursor:pointer;border-top:1px solid #eeeeee}.mif-tilda .t849__trigger-button{position:relative;width:100%;padding:27px 50px 27px 0;text-align:left;background-color:transparent;border:none;box-sizing:border-box;cursor:pointer}.mif-tilda .t849__trigger-button_left{padding:27px 0 27px 50px}.mif-tilda #allrecords button.t849__trigger-button:focus-visible{outline-offset:2px}.mif-tilda .t849__title{display:inline-block}.mif-tilda .t849__icon{position:absolute;right:0;top:50%;transform:translateY(-50%);display:inline-block;width:40px;height:40px;stroke:#222222;fill:transparent;transition-property:fill,stroke;transition-duration:.2s;transition-timing-function:ease-in-out}.mif-tilda .t849__trigger-button_left .t849__icon{right:auto;left:0}.mif-tilda .t849__lines{transition:transform .3s ease-in-out;transform-origin:center}.mif-tilda .t849__opened .t849__lines{transform:rotate(-45deg)}.mif-tilda .t849__content{display:none;overflow:hidden;-webkit-transition:max-height ease-in-out .3s,opacity ease-in-out .3s;-o-transition:max-height ease-in-out .3s,opacity ease-in-out .3s;transition:max-height ease-in-out .3s,opacity ease-in-out .3s}.mif-tilda .t849 .t849__content ol{padding-left:30px!important;list-style-position:outside;text-indent:0}.mif-tilda .t849__textwrapper{padding:0 0 20px}.mif-tilda .t849__text{margin-bottom:20px}.mif-tilda #allrecords .t849__text>ul,.mif-tilda #allrecords .t849__text>ol{-webkit-padding-start:26px}.mif-tilda .t849__img{display:block;width:100%;margin-bottom:14px}.mif-tilda .t849__border{width:100%;height:1px;background-color:#eeeeee}.mif-tilda .t849__divider{float:left;width:100%}@media screen and (max-width:960px){.mif-tilda .t849{-webkit-text-size-adjust:100%}}@media screen and (max-width:650px){.mif-tilda .t849__trigger-button{padding-top:15px;padding-bottom:14px}.mif-tilda .t849__text{margin-bottom:15px}.mif-tilda .t849__textwrapper{padding:0 0 10px}}.mif-tilda .t397__col{margin:0 auto}.mif-tilda .t397__wrapper{display:table;width:100%}.mif-tilda #allrecords .t397__wrapper{margin-bottom:0;padding-left:0;list-style:none}.mif-tilda .t-rec[role="tabpanel"]{outline:none}.mif-tilda .t397__tab{display:table-cell;cursor:pointer;border-bottom-color:#eee;min-width:fit-content}.mif-tilda .t397__tab_active{border-bottom:1px solid #1b64a6;cursor:default}.mif-tilda .t397__title{width:100%;padding:0 10px;padding-bottom:18px;box-sizing:border-box;color:#777;background-color:transparent;border:none;transition:font-weight,color 0.3s ease;text-align:inherit;cursor:pointer}.mif-tilda .t397__tab_active .t397__title{color:#1b64a6;padding-bottom:18px}.mif-tilda .t397 .t-align_left .t397__title{padding-left:0}.mif-tilda .t397 .t-align_right .t397__title{padding-right:0}.mif-tilda #allrecords button.t397__title:focus-visible{outline-offset:1px}.mif-tilda .t397__width_12{width:12.5%}.mif-tilda .t397__width_14{width:14.28%}.mif-tilda .t397__width_16{width:16.66%}.mif-tilda .t397__width_20{width:20%}.mif-tilda .t397__width_25{width:25%}.mif-tilda .t397__width_33{width:33.3%}.mif-tilda .t397__width_50{width:50%}.mif-tilda .t397__width_100{width:100%}.mif-tilda .t379__off,.mif-tilda .t397__off:not([data-record-type="396"]){display:none!important}.mif-tilda .t397__off[data-record-type="396"]{opacity:0!important;height:0!important;max-height:0!important;min-height:0!important;pointer-events:none!important;overflow:hidden!important;padding-top:0!important;padding-bottom:0!important}.mif-tilda .t397__select{-webkit-appearance:none;padding:16px 20px;width:100%;box-sizing:border-box;background-color:transparent;border-radius:0;border:1px solid;outline:none;margin:0;font-size:16px}.mif-tilda .t397__wrapper_mobile{position:relative;display:none}.mif-tilda .t397__wrapper_mobile:after{content:' ';width:0;height:0;border-style:solid;border-width:5px 4px 0 4px;position:absolute;top:50%;right:20px;-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);-webkit-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%)}.mif-tilda .t397__firefoxfix{width:16px;position:absolute;top:1px;right:1px;bottom:1px;pointer-events:none}.mif-tilda .t397 .t-align_left .t397__tab_active{position:relative}.mif-tilda .t397__separator_mobile{display:none}@media screen and (max-width:960px){.mif-tilda .t397__col{padding:0 20px;box-sizing:border-box}.mif-tilda .t397__col.t-width_8{max-width:640px}.mif-tilda .t397__wrapper_mobile{display:block}.mif-tilda .t397__wrapper{display:none}.mif-tilda .t397__select{padding-right:40px}.mif-tilda .t397__col_mobile-flex{width:100%;padding:0 0 10px;display:flex;display:-webkit-box;display:-ms-flexbox;overflow-x:auto;overflow-y:hidden}.mif-tilda .t397__wrapper_mobile-flex{display:-webkit-box;display:-ms-flexbox;display:flex}.mif-tilda .t397__wrapper_mobile-flex+.t397__wrapper_mobile{display:none}}@media screen and (max-width:640px){.mif-tilda .t397__col_mobile-flex{max-width:100%;width:100%;margin-right:0}.mif-tilda #allrecords .t397__wrapper_mobile-flex{padding-left:20px;box-sizing:border-box}.mif-tilda .t397__separator_mobile{display:table-cell;min-width:20px;width:20px;height:100%}.mif-tilda .t397__wrapper_mobile-flex .t397__title{padding:0 20px 18px}}.mif-tilda .uploadcare-dialog.uploadcare-active{z-index:9999999}.mif-tilda .t702__body_popupshowed{-webkit-overflow-scrolling:touch!important}.mif-tilda .t702 .t702__wrapper{padding:40px 45px}.mif-tilda .t702 .t702__title{margin-bottom:11px}.mif-tilda .t702 .t702__text-wrapper{margin-bottom:24px}.mif-tilda .t702 .t702__text{margin-top:20px}.mif-tilda .t702 .t702__img{width:100%;display:block;margin-top:-1px}.mif-tilda .t702 .t-submit{transform:translateZ(0)}@media screen and (max-width:960px){.mif-tilda .t-input-block:has(.t-contact-method__types-container){--contact-method-padding-h:45px}}@media screen and (max-width:640px){.mif-tilda .t702 .t702__title{margin-bottom:6px}.mif-tilda .t702 .t702__text-wrapper{margin-bottom:14px}.mif-tilda .t702 .t702__wrapper{padding:20px}.mif-tilda .t-input-block:has(.t-contact-method__types-container){--contact-method-padding-h:20px}}.mif-tilda .t702 .t-form__errorbox-item{word-break:break-word}.mif-tilda .t702 .t-form__inputsbox_flex .t-form__errorbox-wrapper{margin-bottom:25px}.mif-tilda .t702 .t-form__inputsbox{-webkit-transition:max-height 0.3s cubic-bezier(.19,1,.22,1);transition:max-height 0.3s cubic-bezier(.19,1,.22,1);max-height:20000px}.mif-tilda .t702 .t702__inputsbox_hidden.t-form__inputsbox{overflow:hidden;max-height:0;opacity:0}.mif-tilda .t702 .t-input-group{margin-bottom:25px}.mif-tilda .t702 .t-input{background-color:transparent;-webkit-appearance:none}.mif-tilda .t702 .t-input::-ms-clear{width:0;height:0}.mif-tilda .t702 .t-input-block textarea{padding-top:17px;background-color:transparent}.mif-tilda .t702 .t-input-block textarea.t-input_pvis{padding-top:26px}.mif-tilda .t702 .t-input-title{padding-bottom:5px}.mif-tilda .t702 .t-input-subtitle{padding-bottom:15px}.mif-tilda .t702 .t-input-group_rd .t-input-subtitle{padding-bottom:5px}.mif-tilda .t702 .t-inputtime,.mif-tilda .t702 .t-datepicker__wrapper{max-width:245px}.mif-tilda .t702 .t-input-group_inrow .t-inputtime,.mif-tilda .t702 .t-input-group_inrow .t-datepicker__wrapper{max-width:100%}.mif-tilda .t702 .t-form__submit{display:block;text-align:center;vertical-align:middle;height:100%;width:100%;margin-top:25px}.mif-tilda .t702 .t-form__inputsbox_flex .t-form__submit{margin-top:0}.mif-tilda .t702 .t-form_bbonly .t-form__inputsbox_flex .t-form__submit{margin-top:0}.mif-tilda .t702 .t-submit{width:100%;height:54px;-webkit-appearance:none}.mif-tilda .t702 .t-form_bbonly .t-input-title{padding-bottom:0;margin-bottom:0}.mif-tilda .t702 .t-form_bbonly .t-input-subtitle{padding-bottom:0;padding-top:5px}.mif-tilda .t702 .t-form__inputsbox .t-input-group_st .t-input-block{display:none;margin-bottom:0}.mif-tilda .t702 .t702__form-bottom-text{margin-top:20px}@media screen and (max-width:640px){.mif-tilda .t702 .t-input-group{margin-bottom:20px}.mif-tilda .t702 .t-input-block textarea{padding-top:12px}.mif-tilda .t702 .t-submit,.mif-tilda .t702 .t-input,.mif-tilda .t702 .t-select{height:50px;font-size:16px}.mif-tilda .t702 .t-input{padding:0 14px}.mif-tilda .t702 .t-input__vis-ph{top:17px}.mif-tilda .t702 .t-input_pvis{padding:22px 20px 10px 20px}.mif-tilda .t702 .t-input-block textarea.t-input_pvis{padding-top:22px}}@media screen and (max-width:480px){.mif-tilda .t702 .t-inputtime,.mif-tilda .t702 .t-datepicker__wrapper{max-width:100%}}@media screen and (max-width:560px){.mif-tilda .t702 .t-popup_show .t-popup__container{max-width:100%;right:0;left:0;top:0;bottom:0;padding-top:50px;margin:0;box-sizing:border-box;min-height:100vh;-webkit-transform:translateY(0);transform:translateY(0);position:relative}.mif-tilda .t702 .t-popup{padding:0}.mif-tilda .t702 .t-popup__block-close{position:fixed;top:0;right:0;left:0;z-index:2;display:flex;justify-content:flex-end;align-items:center;width:100%;height:50px;background:#000}.mif-tilda .t702 .t-popup__block-close-button{display:table-cell;vertical-align:middle;width:16px;margin-right:10px;padding:10px;font-size:0;text-align:right}.mif-tilda .t702 .t-popup__close-icon{width:16px;height:16px}}.mif-tilda .t123__centeredContainer{text-align:center} .mif-tilda .t396 .t-animate[data-animate-style=fadein],.mif-tilda .t396 .t-animate[data-animate-style=fadeindown],.mif-tilda .t396 .t-animate[data-animate-style=fadeinleft],.mif-tilda .t396 .t-animate[data-animate-style=fadeinright],.mif-tilda .t396 .t-animate[data-animate-style=fadeinup],.mif-tilda .t396 .t-animate[data-animate-style=zoomin],.mif-tilda .t396 .t-animate[data-animate-style=zoomout]{opacity:0}@media screen and (min-width:980px){.mif-tilda .t-animate[data-animate-style=fadein],.mif-tilda .t-animate[data-animate-style=fadeindown],.mif-tilda .t-animate[data-animate-style=fadeinleft],.mif-tilda .t-animate[data-animate-style=fadeinright],.mif-tilda .t-animate[data-animate-style=fadeinup],.mif-tilda .t-animate[data-animate-style=zoomin],.mif-tilda .t-animate[data-animate-style=zoomout]{opacity:0;-webkit-transition-property:opacity,transform;transition-property:opacity,transform;-webkit-transition-duration:1s;transition-duration:1s;-webkit-transition-timing-function:cubic-bezier(.19,1,.22,1);transition-timing-function:cubic-bezier(.19,1,.22,1);-webkit-backface-visibility:hidden;backface-visibility:hidden}.mif-tilda .t-title.t-animate{-webkit-transition-duration:1.2s;transition-duration:1.2s}.mif-tilda .t-descr.t-animate,.mif-tilda .t-subtitle.t-animate,.mif-tilda .t-text.t-animate,.mif-tilda .t-uptitle.t-animate{-webkit-transition-duration:.7s;transition-duration:.7s}.mif-tilda .t-item.t-animate{-webkit-transition-duration:.5s;transition-duration:.5s}.mif-tilda .t-animate_started[data-animate-style=fadein]{opacity:1}.mif-tilda .t-animate[data-animate-style=fadeinup]{-webkit-transform:translate(0,100px);transform:translate(0,100px)}.mif-tilda .t-animate_started[data-animate-style=fadeinup]{opacity:1;-webkit-transform:none;transform:none}.mif-tilda .t-animate[data-animate-style=fadeindown]{-webkit-transform:translate(0,-100px);transform:translate(0,-100px)}.mif-tilda .t-animate_started[data-animate-style=fadeindown]{opacity:1;-webkit-transform:none;transform:none}.mif-tilda .t-animate[data-animate-style=fadeinleft]{-webkit-transform:translate(100px,0);transform:translate(100px,0)}.mif-tilda .t-animate_started[data-animate-style=fadeinleft]{opacity:1;-webkit-transform:none;transform:none}.mif-tilda .t-animate[data-animate-style=fadeinright]{-webkit-transform:translate(-100px,0);transform:translate(-100px,0)}.mif-tilda .t-animate_started[data-animate-style=fadeinright]{opacity:1;-webkit-transform:none;transform:none}.mif-tilda .t-animate[data-animate-style=zoomin]{-webkit-transform:scale(.9);transform:scale(.9)}.mif-tilda .t-animate_started[data-animate-style=zoomin]{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.mif-tilda .t-animate[data-animate-style=zoomout]{-webkit-transform:scale(1.2);transform:scale(1.2)}.mif-tilda .t-animate_started[data-animate-style=zoomout]{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.mif-tilda .t-animate_started[data-animate-distance],.mif-tilda .t-animate_started[data-animate-scale]{-webkit-transform:none!important;transform:none!important}}.mif-tilda .t-animate-for-wrapper .t-animate:not(.t-animate_started){opacity:0!important;transition-duration:0s!important} .mif-tilda .t-body_popupshowed{height:100vh;min-height:100vh;overflow:hidden}.mif-tilda .t-popup{position:fixed;top:0;right:0;bottom:0;left:0;overflow-y:auto;opacity:0;-webkit-transition:opacity ease-in-out .3s;-moz-transition:opacity ease-in-out .3s;-o-transition:opacity ease-in-out .3s;transition:opacity ease-in-out .3s;width:100%;height:100%;box-sizing:border-box;cursor:pointer;padding:0 20px;background-color:rgba(0,0,0,.6);z-index:9999999;display:none;outline:0}.mif-tilda .t-popup.t-popup_show{opacity:1}.mif-tilda .t-popup__container{background:#fff;margin:0 auto;width:auto;position:absolute;top:50%;right:20px;left:20px;z-index:1;cursor:default;-moz-transform:translateY(-30%) scale(.9);-ms-transform:translateY(-30%) scale(.9);-webkit-transform:translateY(-30%) scale(.9);-o-transform:translateY(-30%) scale(.9);transform:translateY(-30%) scale(.9)}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.mif-tilda .t-popup__container{width:100%}}.mif-tilda .t-popup__container-animated{-webkit-transition:transform ease-in-out .3s;-moz-transition:transform ease-in-out .3s;-o-transition:transform ease-in-out .3s;transition:transform ease-in-out .3s}.mif-tilda .t-popup_show .t-popup__container{-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);-webkit-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%)}.mif-tilda .t-popup__container.t-popup__container-static{margin:65px auto;top:0;position:relative;left:auto;right:auto;width:100%;-moz-transform:translateY(30%) scale(.9);-ms-transform:translateY(30%) scale(.9);-webkit-transform:translateY(30%) scale(.9);-o-transform:translateY(30%) scale(.9);transform:translateY(30%) scale(.9)}.mif-tilda .t-popup_show .t-popup__container.t-popup__container-static{-moz-transform:translateY(0);-ms-transform:translateY(0);-webkit-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}.mif-tilda .t-popup__close{position:fixed;right:20px;top:20px;width:23px;height:23px;cursor:pointer;-webkit-transition:opacity ease-in-out .3s;-moz-transition:opacity ease-in-out .3s;-o-transition:opacity ease-in-out .3s;transition:opacity ease-in-out .3s;z-index:9}@media (min-width:429px) and (hover),(min-width:0\0){.mif-tilda .t-popup__close:hover{opacity:.7}}.mif-tilda .t-popup__block-close{top:10px;right:10px;width:43px;height:43px}.mif-tilda .t-popup__block-close-button{width:23px;padding:10px;font-size:0;border:none;background-color:transparent;cursor:pointer}.mif-tilda .t-body_scroll-locked{position:fixed;left:0;width:100%} .mif-tilda .tooltipster-fall,.mif-tilda .tooltipster-grow-show{-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1);-moz-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-ms-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-o-transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.mif-tilda .tooltipster-default{border-radius:5px;border:2px solid #000;background:#4c4c4c;color:#fff}.mif-tilda .tooltipster-default .tooltipster-content{font-family:Arial,sans-serif;font-size:14px;line-height:16px;padding:8px 10px;overflow:hidden}.mif-tilda .tooltipster-icon{cursor:help;margin-left:4px}.mif-tilda .tooltipster-base{padding:0;font-size:0;line-height:0;position:absolute;left:0;top:0;z-index:9999998;pointer-events:none;width:auto;overflow:visible}.mif-tilda .tooltipster-base .tooltipster-content{overflow:hidden}.mif-tilda .tooltipster-arrow{display:block;text-align:center;width:100%;height:100%;position:absolute;top:0;left:0;z-index:-1}.mif-tilda .tooltipster-arrow span,.mif-tilda .tooltipster-arrow-border{display:block;width:0;height:0;position:absolute}.mif-tilda .tooltipster-arrow-top span,.mif-tilda .tooltipster-arrow-top-left span,.mif-tilda .tooltipster-arrow-top-right span{border-left:8px solid transparent!important;border-right:8px solid transparent!important;border-top:8px solid;bottom:-7px}.mif-tilda .tooltipster-arrow-top .tooltipster-arrow-border,.mif-tilda .tooltipster-arrow-top-left .tooltipster-arrow-border,.mif-tilda .tooltipster-arrow-top-right .tooltipster-arrow-border{border-left:9px solid transparent!important;border-right:9px solid transparent!important;border-top:9px solid;bottom:-7px}.mif-tilda .tooltipster-arrow-bottom span,.mif-tilda .tooltipster-arrow-bottom-left span,.mif-tilda .tooltipster-arrow-bottom-right span{border-left:8px solid transparent!important;border-right:8px solid transparent!important;border-bottom:8px solid;top:-7px}.mif-tilda .tooltipster-arrow-bottom .tooltipster-arrow-border,.mif-tilda .tooltipster-arrow-bottom-left .tooltipster-arrow-border,.mif-tilda .tooltipster-arrow-bottom-right .tooltipster-arrow-border{border-left:9px solid transparent!important;border-right:9px solid transparent!important;border-bottom:9px solid;top:-7px}.mif-tilda .tooltipster-arrow-bottom .tooltipster-arrow-border,.mif-tilda .tooltipster-arrow-bottom span,.mif-tilda .tooltipster-arrow-top .tooltipster-arrow-border,.mif-tilda .tooltipster-arrow-top span{left:0;right:0;margin:0 auto}.mif-tilda .tooltipster-arrow-bottom-left span,.mif-tilda .tooltipster-arrow-top-left span{left:6px}.mif-tilda .tooltipster-arrow-bottom-left .tooltipster-arrow-border,.mif-tilda .tooltipster-arrow-top-left .tooltipster-arrow-border{left:5px}.mif-tilda .tooltipster-arrow-bottom-right span,.mif-tilda .tooltipster-arrow-top-right span{right:6px}.mif-tilda .tooltipster-arrow-bottom-right .tooltipster-arrow-border,.mif-tilda .tooltipster-arrow-top-right .tooltipster-arrow-border{right:5px}.mif-tilda .tooltipster-arrow-left .tooltipster-arrow-border,.mif-tilda .tooltipster-arrow-left span{border-top:8px solid transparent!important;border-bottom:8px solid transparent!important;border-left:8px solid;top:50%;margin-top:-7px;right:-7px}.mif-tilda .tooltipster-arrow-left .tooltipster-arrow-border{border-top:9px solid transparent!important;border-bottom:9px solid transparent!important;border-left:9px solid;margin-top:-8px}.mif-tilda .tooltipster-arrow-right .tooltipster-arrow-border,.mif-tilda .tooltipster-arrow-right span{border-top:8px solid transparent!important;border-bottom:8px solid transparent!important;border-right:8px solid;top:50%;margin-top:-7px;left:-7px}.mif-tilda .tooltipster-arrow-right .tooltipster-arrow-border{border-top:9px solid transparent!important;border-bottom:9px solid transparent!important;border-right:9px solid;margin-top:-8px}.mif-tilda .tooltipster-fade{opacity:0;-webkit-transition-property:opacity;-moz-transition-property:opacity;-o-transition-property:opacity;-ms-transition-property:opacity;transition-property:opacity}.mif-tilda .tooltipster-fade-show{opacity:1}.mif-tilda .tooltipster-grow{-webkit-transform:scale(0,0);-moz-transform:scale(0,0);-o-transform:scale(0,0);-ms-transform:scale(0,0);transform:scale(0,0);-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform;-webkit-backface-visibility:hidden}.mif-tilda .tooltipster-grow-show{-webkit-transform:scale(1,1);-moz-transform:scale(1,1);-o-transform:scale(1,1);-ms-transform:scale(1,1);transform:scale(1,1);-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.mif-tilda .tooltipster-swing{opacity:0;-webkit-transform:rotateZ(4deg);-moz-transform:rotateZ(4deg);-o-transform:rotateZ(4deg);-ms-transform:rotateZ(4deg);transform:rotateZ(4deg);-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform}.mif-tilda .tooltipster-swing-show{opacity:1;-webkit-transform:rotateZ(0);-moz-transform:rotateZ(0);-o-transform:rotateZ(0);-ms-transform:rotateZ(0);transform:rotateZ(0);-webkit-transition-timing-function:cubic-bezier(.23,.635,.495,1);-webkit-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-moz-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-ms-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-o-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);transition-timing-function:cubic-bezier(.23,.635,.495,2.4)}.mif-tilda .tooltipster-fall{top:0;-webkit-transition-property:top;-moz-transition-property:top;-o-transition-property:top;-ms-transition-property:top;transition-property:top;-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.mif-tilda .tooltipster-fall.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;top:0!important;opacity:0}.mif-tilda .tooltipster-slide{left:-40px;-webkit-transition-property:left;-moz-transition-property:left;-o-transition-property:left;-ms-transition-property:left;transition-property:left;-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-moz-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-ms-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-o-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.mif-tilda .tooltipster-slide.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;left:0!important;opacity:0}.mif-tilda .tooltipster-content-changing{opacity:.5;-webkit-transform:scale(1.1,1.1);-moz-transform:scale(1.1,1.1);-o-transform:scale(1.1,1.1);-ms-transform:scale(1.1,1.1);transform:scale(1.1,1.1)} .mif-tilda .t-slds{overflow:hidden;position:relative}.mif-tilda .t-slds__bgimg{background-position:50%;background-repeat:no-repeat;background-size:cover}.mif-tilda .t-slds__bgimg-contain{background-size:contain}.mif-tilda .t-slds__iframe{position:relative}.mif-tilda .t-slds__iframe__body{bottom:0;left:0;position:absolute;right:0;top:0}.mif-tilda .t-slds__img{display:block;width:100%}.mif-tilda .t-slds__container,.mif-tilda .t-slds__items-wrapper{overflow:hidden;position:relative}.mif-tilda .t-store__relevants-grid-cont.t-store__valign-buttons .t-slds__items-wrapper{display:-ms-flexbox;display:-webkit-flex;display:flex}.mif-tilda .t-slds__nocycle .t-slds__item:not(.js-feed-post):first-child,.mif-tilda .t-slds__nocycle .t-slds__item:not(.js-feed-post):not(.t-slds__item_dummy):last-child{opacity:0!important}.mif-tilda .t-slds__nocycle .t-slds__arrow_wrapper-left{display:none}.mif-tilda .t-slds__items-wrapper:after,.mif-tilda .t-slds__items-wrapper:before{clear:both;content:"";display:table}.mif-tilda .t-slds_animated.t-slds_animated-fast,.mif-tilda .t-slds_animated.t-slds_animated-none{transition:height .3s ease-in-out,-webkit-transform .3s ease-in-out;transition:height .3s ease-in-out,transform .3s ease-in-out;transition:height .3s ease-in-out,transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.mif-tilda .t-slds_animated.t-slds_animated-slow{transition:height .5s ease-in-out,-webkit-transform .5s ease-in-out;transition:height .5s ease-in-out,transform .5s ease-in-out;transition:height .5s ease-in-out,transform .5s ease-in-out,-webkit-transform .5s ease-in-out}.mif-tilda .t-slds_animated.t-slds_animated-cancel{transition:height .3s ease-in-out,-webkit-transform 0s;transition:height .3s ease-in-out,transform 0s;transition:height .3s ease-in-out,transform 0s,-webkit-transform 0s}.mif-tilda .t-slds__item{-webkit-backface-visibility:hidden;backface-visibility:hidden;float:left;overflow:hidden}.mif-tilda #allrecords li.t-slds__item{list-style:none}.mif-tilda .t-slds_ie .t-slds__item{display:none!important}.mif-tilda .t-slds_ie .t-slds__item_active{display:block!important}.mif-tilda .t-slds__item-innactive:not(.t-slds__item_active){display:block;height:1px}.mif-tilda .t-slds__item-innactive:not(.t-slds__item_active) div{display:none}.mif-tilda #allrecords ul.t-slds__arrow_container{margin:0 auto;padding-left:0}.mif-tilda .t-slds__arrow_container-outside{left:0;margin:0 auto;position:absolute;right:0;top:0;width:100%}.mif-tilda .t-slds__arrow_container.t-slds__arrow_container-outside{box-sizing:border-box;margin:0 auto}.mif-tilda .t-slds__arrow_wrapper{bottom:0;cursor:pointer;list-style:none;position:absolute;top:0;transition:height .3s ease-in-out;width:1%;z-index:9}.mif-tilda .t-slds__arrow_wrapper-left{left:0}.mif-tilda .t-slds__arrow_wrapper-right{right:0}.mif-tilda .t-slds__arrow{background-color:transparent;border:none;cursor:pointer;display:inline-block;outline-offset:5px;padding:0;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}@media screen and (max-width:640px){.mif-tilda .t-store__relevants__container .t-slds__arrow{padding:20px}.mif-tilda .t-store__relevants__container .t-slds__arrow-left{-webkit-transform:translateY(-50%) translateX(-20px);transform:translateY(-50%) translateX(-20px)}.mif-tilda .t-store__relevants__container .t-slds__arrow-right{-webkit-transform:translateY(-50%) translateX(20px);transform:translateY(-50%) translateX(20px)}.mif-tilda .t-store__relevants__container .t-slds__arrow.t-slds__arrow-withbg{padding:0}.mif-tilda .t-slds__arrow_wrapper{width:45px}}.mif-tilda .t-slds__arrow-left{left:30px}.mif-tilda .t-slds__arrow-right{right:30px}@media screen and (min-width:960px){.mif-tilda .t-slds__arrow-nearpic .t-slds__arrow-left{left:auto;right:40px;-webkit-transform:translate(50%,-50%);transform:translate(50%,-50%)}.mif-tilda .t-slds__arrow-nearpic .t-slds__arrow-right{left:40px;right:auto;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.mif-tilda .t-slds__arrow-inpic .t-slds__arrow-left{left:auto;right:-40px;-webkit-transform:translate(50%,-50%);transform:translate(50%,-50%)}.mif-tilda .t-slds__arrow-inpic .t-slds__arrow-right{left:-40px;right:auto;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}}@media screen and (min-width:1200px){.mif-tilda .t-slds__arrow-nearpic .t-slds__arrow-left{right:50px}.mif-tilda .t-slds__arrow-nearpic .t-slds__arrow-right{left:50px}.mif-tilda .t-slds__arrow-inpic .t-slds__arrow-left{right:-50px}.mif-tilda .t-slds__arrow-inpic .t-slds__arrow-right{left:-50px}}.mif-tilda .t-slds__arrow-withbg{background-color:#eee;border-radius:100px;transition:background-color .2s ease-in-out,border-color .2s ease-in-out}.mif-tilda .t-slds__arrow-withbg .t-slds__arrow_body{left:50%;position:absolute;top:50%}.mif-tilda .t-slds__arrow-withbg .t-slds__arrow_body-left{-webkit-transform:translate(-55%,-50%) rotate(180deg);transform:translate(-55%,-50%) rotate(180deg)}.mif-tilda .t-slds__arrow-withbg .t-slds__arrow_body-right{-webkit-transform:translate(-45%,-50%);transform:translate(-45%,-50%)}.mif-tilda .t-slds__arrow_body-left{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.mif-tilda #allrecords ul.t-slds__items-wrapper{margin:0!important;padding:0!important}.mif-tilda #allrecords ul.t-slds__bullet_wrapper{margin:0!important;padding-left:0!important}.mif-tilda .t-slds__bullet_wrapper,.mif-tilda ul.t-slds__bullet_wrapper{font-size:0;list-style:none;padding:16px 0 0;position:relative;text-align:center;width:100%;z-index:10}.mif-tilda .t-slds__container .t-slds__bullet_wrapper{bottom:0;left:0;position:absolute;right:0}.mif-tilda .t-slds__container .t-slds__bullet_wrapper,.mif-tilda .t-slds__container ul.t-slds__bullet_wrapper{padding-bottom:16px}.mif-tilda .t-slds__bullet{cursor:pointer;display:inline-block;padding:10px 5px}.mif-tilda .t-slds__bullet_body{background-color:#eee;border:none;border-radius:100px;box-sizing:border-box;cursor:pointer;height:8px;padding:0;transition:background-color .2s ease-in-out;width:8px}.mif-tilda .t-slds__caption__container{margin-top:16px;position:relative}.mif-tilda .t-slds__caption_wrapper{border-top:1px solid #eee;padding:14px 0}.mif-tilda .t-slds__caption{left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease-in-out}.mif-tilda .t-slds__caption-active{left:auto;opacity:1;position:relative;right:auto;top:auto}.mif-tilda .t-slds__descr{color:#777;margin-top:5px}@media screen and (max-width:960px){.mif-tilda .t-width .t-slds__wrapper{padding:0 20px}.mif-tilda .t-col_12 .t-slds__witharrows .t-slds__wrapper{padding:0}.mif-tilda .t-width_12 .t-slds__witharrows .t-slds__wrapper{padding:0 20px}.mif-tilda .t-slds__arrow-left{left:20px}.mif-tilda .t-slds__arrow-right{right:20px}}@media screen and (max-width:640px){.mif-tilda .t-slds__arrow-left{left:5px}.mif-tilda .t-slds__arrow-right{right:5px}.mif-tilda .t-store__relevants__container .t-slds__arrow-withbg{height:40px!important;width:40px!important}.mif-tilda .t-slds__arrow-withbg{height:24px!important;width:24px!important}.mif-tilda .t-slds__arrow_body{width:10px!important}.mif-tilda .t-slds__arrow-withbg .t-slds__arrow_body{width:6px!important}.mif-tilda .t-col .t-slds__witharrows .t-slds__wrapper{padding:0 15px}.mif-tilda .t-width .t-slds__witharrows .t-slds__wrapper{padding:0 35px}.mif-tilda .t-col_12 .t-slds__witharrows .t-slds__wrapper{padding:0 15px}.mif-tilda .t-width_12 .t-slds__witharrows .t-slds__wrapper{padding:0 35px}}.mif-tilda .t-slds__play{bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;z-index:2}.mif-tilda .t-slds__play_icon{height:70px;left:0;margin:0 auto;position:absolute;right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);transition:all .2s ease-in-out;width:70px}.mif-tilda .t-slds__play:hover .t-slds__play_icon{-webkit-transform:translateY(-50%) scale(1.15);transform:translateY(-50%) scale(1.15)}.mif-tilda .t-slds__frame{bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}.mif-tilda .t-slds__thumbsbullet-wrapper{font-size:0}.mif-tilda .t-slds__thumbsbullets-with-gallery .t-slds__thumbs_gallery:after,.mif-tilda .t-slds__thumbsbullets-with-gallery .t-slds__thumbs_gallery:before{bottom:0;left:0;opacity:1;position:absolute;right:0;top:0;transition:.2s}.mif-tilda .t-slds__thumbsbullets-with-gallery .t-slds__thumbs_gallery:before{background:rgba(0,0,0,.1);content:""}.mif-tilda .t-slds__thumbsbullets-with-gallery .t-slds__thumbs_gallery:after{color:#fff;content:"+ "attr(data-gallery-length);font-family:Roboto,Arial,sans-serif;font-size:36px;font-weight:700;height:30px;letter-spacing:-4px;line-height:30px;margin:auto;text-align:center}.mif-tilda .t-slds__thumbsbullets-with-gallery.t-slds{-webkit-box-pack:justify;-ms-flex-pack:justify;display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}.mif-tilda .t-slds__thumbsbullets-with-gallery .t-slds__main{-ms-flex-order:2;-webkit-order:2;order:2;width:calc(100% - 70px)}.mif-tilda .t-slds__thumbsbullets-with-gallery .t-slds__thumbsbullet.t-slds__bullet{margin:0 0 10px;width:100%}.mif-tilda .t-slds__thumbsbullets-with-gallery .t-slds__thumbsbullet.t-slds__bullet:last-child{margin-bottom:0}.mif-tilda .t-slds__thumbsbullets-with-gallery .t-slds__thumbsbullet-wrapper{-ms-flex-pack:justify;-ms-flex-order:1;display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;-webkit-justify-content:flex-start;justify-content:flex-start;margin-right:10px;-webkit-order:1;order:1;width:60px}@media screen and (max-width:640px){.mif-tilda .t-slds__thumbsbullets-with-gallery .t-slds__main{width:100%}.mif-tilda .t-slds__thumbsbullets-with-gallery .t-slds__thumbsbullet-wrapper{-ms-flex-order:2;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;margin-right:0;margin-top:10px;-webkit-order:2;order:2;width:100%}.mif-tilda .t-slds__thumbsbullets-with-gallery .t-slds__thumbsbullet.t-slds__bullet{margin-bottom:0;margin-right:10px;width:60px}.mif-tilda .t-slds__thumbsbullets-with-gallery.t-slds{-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.mif-tilda .t-slds__thumbsbullets-with-gallery .t-slds__thumbs_gallery:after{font-size:32px}}.mif-tilda .t-slds__thumbsbullet.t-slds__bullet{margin-right:5px;margin-top:4px;padding:0;position:relative;transition:opacity .3s ease-in-out;width:60px}.mif-tilda .t-slds__thumbsbullet.t-slds__bullet:not(.t-slds__bullet_active):hover{opacity:.7}.mif-tilda .t-slds__thumbsbullet-border{border:2px solid transparent;bottom:0;left:0;position:absolute;right:0;top:0;transition:border-color .3s ease-in-out}.mif-tilda .t-slds__thumbsbullet.t-slds__bullet_active .t-slds__thumbsbullet-border{border-color:rgba(0,0,0,.15)}@media screen and (max-width:640px){.mif-tilda .t-slds__thumbsbullet.t-slds__bullet{margin-right:4px;margin-top:3px;width:40px}}@media screen and (max-width:480px){.mif-tilda .t-slds__arrow{outline-offset:3px}} .mif-tilda .t-store__empty-part-msg-cont,.mif-tilda .t-store__error-msg-cont{width:100%}.mif-tilda .t-store__empty-part-msg-wrapper,.mif-tilda .t-store__error-msg-wrapper{border:1px solid hsla(0,0%,51%,.5);box-sizing:border-box;color:hsla(0,0%,51%,.7);display:table;min-height:40vh;padding:40px 40px 50px;text-align:center;width:100%}.mif-tilda .t-store__empty-part-msg,.mif-tilda .t-store__error-msg{display:table-cell;vertical-align:middle}.mif-tilda .t-store__grid-cont_col-width_stretch{box-sizing:border-box;font-size:0}.mif-tilda .t-store__grid-cont_col-width_stretch.t-store__grid-cont_indent[data-col-gap="0"]{padding:0 40px}.mif-tilda .t-store__grid-cont_col-width_stretch.t-store__grid-cont_indent[data-col-gap="10"]{padding:0 35px}.mif-tilda .t-store__grid-cont_col-width_stretch.t-store__grid-cont_indent[data-col-gap="20"]{padding:0 30px}.mif-tilda .t-store__grid-cont_col-width_stretch.t-store__grid-cont_indent[data-col-gap="40"]{padding:0 20px}.mif-tilda .t-store__grid-cont_col-width_stretch.t-container_100[data-col-gap="10"]{padding:0 5px}.mif-tilda .t-store__grid-cont_col-width_stretch.t-container_100[data-col-gap="20"]{padding:0 10px}.mif-tilda .t-store__grid-cont_col-width_stretch.t-container_100[data-col-gap="40"],.mif-tilda .t-store__grid-cont_col-width_stretch[data-col-gap="0"]{padding:0 20px}.mif-tilda .js-store-grid-cont.t-store__grid-cont_col-width_stretch[data-col-gap="0"]:not(.t-store__grid-cont_indent){padding:0}.mif-tilda .t-store__grid-cont_col-width_stretch[data-col-gap="10"]{padding:0 15px}.mif-tilda .t-store__grid-cont_col-width_stretch[data-col-gap="20"]{padding:0 10px}.mif-tilda .t-store__stretch-col{box-sizing:border-box;display:inline-block;font-size:medium;vertical-align:top}.mif-tilda .t-store__stretch-col_25{width:25%}.mif-tilda .t-store__stretch-col_33{width:33.333%}.mif-tilda .t-store__stretch-col_50{width:50%}.mif-tilda .t-store__stretch-col_100{width:100%}.mif-tilda [data-col-gap="10"] .t-store__stretch-col{padding:0 5px}.mif-tilda [data-col-gap="20"] .t-store__stretch-col{padding:0 10px}.mif-tilda [data-col-gap="40"] .t-store__stretch-col{padding:0 20px}.mif-tilda .t-store__grid-cont_col-width_stretch .t-store__card__imgwrapper{padding-bottom:110%;position:relative;width:100%}.mif-tilda .t-store__grid-cont_col-width_stretch .t-store__card__imgwrapper_16-9{padding-bottom:56%}.mif-tilda .t-store__grid-cont_col-width_stretch .t-store__card__imgwrapper_4-3{padding-bottom:75%}.mif-tilda .t-store__grid-cont_col-width_stretch .t-store__card__imgwrapper_3-2{padding-bottom:66%}.mif-tilda .t-store__grid-cont_col-width_stretch .t-store__card__imgwrapper_1-1,.mif-tilda .t-store__grid-cont_col-width_stretch .t-store__card__imgwrapper_original-ratio.t-store__card__imgwrapper_1-1{padding-bottom:100%}.mif-tilda .t-store__grid-cont_col-width_stretch .t-store__card__imgwrapper_2-3{padding-bottom:150%}.mif-tilda .t-store__grid-cont_col-width_stretch .t-store__card__imgwrapper_3-4{padding-bottom:133%}.mif-tilda .t-store__grid-cont_col-width_stretch .t-store__card__imgwrapper_9-16{padding-bottom:177%}@media screen and (max-width:1200px){.mif-tilda .t-store__grid-cont_col-width_stretch[data-col-gap="0"]{padding:0 10px}.mif-tilda .t-store__grid-cont_col-width_stretch[data-col-gap="10"]{padding:0 5px}.mif-tilda .t-store__grid-cont_col-width_stretch[data-col-gap="20"],.mif-tilda .t-store__grid-cont_col-width_stretch[data-col-gap="40"]{padding:0}.mif-tilda .t-store__grid-cont_col-width_stretch[data-col-gap="40"] .t-store__stretch-col{padding:0 10px}}@media screen and (max-width:960px){.mif-tilda .t-store__grid-cont_col-width_stretch.t-container_100[data-col-gap="0"]{padding:0}.mif-tilda .t-store__grid-cont_col-width_stretch.t-container_100[data-col-gap="10"],.mif-tilda .t-store__grid-cont_col-width_stretch.t-container_100[data-col-gap="20"]{padding:0 5px}.mif-tilda .t-store__grid-cont_col-width_stretch.t-container_100[data-col-gap="40"]{padding:0 10px}.mif-tilda .t-store__grid-cont_col-width_stretch.t-store__grid-cont_indent[data-col-gap="0"],.mif-tilda .t-store__grid-cont_col-width_stretch[data-col-gap="0"]{padding:0 20px}.mif-tilda .t-store__grid-cont_col-width_stretch.t-store__grid-cont_indent[data-col-gap="10"],.mif-tilda .t-store__grid-cont_col-width_stretch.t-store__grid-cont_indent[data-col-gap="20"],.mif-tilda .t-store__grid-cont_col-width_stretch[data-col-gap="10"],.mif-tilda .t-store__grid-cont_col-width_stretch[data-col-gap="20"]{padding:0 15px}.mif-tilda .t-store__grid-cont_col-width_stretch.t-store__grid-cont_indent[data-col-gap="40"],.mif-tilda .t-store__grid-cont_col-width_stretch[data-col-gap="40"]{padding:0 10px}.mif-tilda [data-col-gap="20"] .t-store__stretch-col{padding:0 5px}.mif-tilda [data-col-gap="40"] .t-store__stretch-col{padding:0 10px}.mif-tilda .t-store__grid-cont_mobile-one-row[data-col-gap="0"] .t-store__stretch-col:first-child{margin-left:20px}.mif-tilda .t-store__grid-cont_mobile-one-row[data-col-gap="10"] .t-store__stretch-col:first-child,.mif-tilda .t-store__grid-cont_mobile-one-row[data-col-gap="20"] .t-store__stretch-col:first-child{margin-left:15px}.mif-tilda .t-store__grid-cont_mobile-one-row[data-col-gap="40"] .t-store__stretch-col:first-child{margin-left:10px}.mif-tilda [data-col-gap="0"] .t-store__tail-gap{height:inherit;min-width:20px;width:20px}.mif-tilda [data-col-gap="10"] .t-store__tail-gap,.mif-tilda [data-col-gap="20"] .t-store__tail-gap{height:inherit;min-width:15px;width:15px}.mif-tilda [data-col-gap="40"] .t-store__tail-gap{height:inherit;min-width:10px;width:10px}}.mif-tilda .t-store__grid-separator{margin-bottom:90px}.mif-tilda .t-store__load-more-btn{margin-top:50px}@media screen and (max-width:980px){.mif-tilda .t-store__load-more-btn{margin-top:40px}}@media screen and (max-width:640px){.mif-tilda .t-store__load-more-btn{margin-top:30px}}@media screen and (max-width:480px){.mif-tilda .t-store__load-more-btn{margin-top:20px}.mif-tilda .t-store__prod-popup__btn-wrapper{display:-webkit-flex;display:-ms-flexbox;display:flex}.mif-tilda .t-store__card__btns-wrapper--quantity .t-store__prod__quantity_xs{height:40px}}.mif-tilda .t-store__scroll-icon-wrapper{display:none}.mif-tilda .t-store__grid-cont-preloader_hidden{opacity:0}.mif-tilda .t-store__card-preloader .t-store__card__img-preloader{-webkit-animation:tStorePreloaderFlickerAnimation 1.5s infinite;animation:tStorePreloaderFlickerAnimation 1.5s infinite;-webkit-animation-delay:1.5s;animation-delay:1.5s;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;background-color:hsla(0,0%,48%,.2)}.mif-tilda .t-store__card-preloader:nth-child(2) .t-store__card__img-preloader{-webkit-animation-delay:1.6s;animation-delay:1.6s}.mif-tilda .t-store__card-preloader:nth-child(3) .t-store__card__img-preloader{-webkit-animation-delay:1.7s;animation-delay:1.7s}.mif-tilda .t-store__card-preloader:nth-child(4) .t-store__card__img-preloader{-webkit-animation-delay:1.8s;animation-delay:1.8s}.mif-tilda .t-store__card-preloader:nth-child(5) .t-store__card__img-preloader{-webkit-animation-delay:1.9s;animation-delay:1.9s}.mif-tilda .t-store__card-preloader:nth-child(6) .t-store__card__img-preloader{-webkit-animation-delay:2s;animation-delay:2s}.mif-tilda .t-store__card-preloader:nth-child(7) .t-store__card__img-preloader{-webkit-animation-delay:2.1s;animation-delay:2.1s}.mif-tilda .t-store__card-preloader:nth-child(8) .t-store__card__img-preloader{-webkit-animation-delay:2.2s;animation-delay:2.2s}.mif-tilda .t-store__card-preloader:nth-child(9) .t-store__card__img-preloader{-webkit-animation-delay:2.3s;animation-delay:2.3s}@-webkit-keyframes tStorePreloaderFlickerAnimation{0%{opacity:1}40%{opacity:.3}80%{opacity:1}to{opacity:1}}@keyframes tStorePreloaderFlickerAnimation{0%{opacity:1}40%{opacity:.3}80%{opacity:1}to{opacity:1}}.mif-tilda .t-store__card{transition:opacity .2s ease-out}.mif-tilda .t-store__card_hidden{opacity:0}.mif-tilda #allrecords .t-store__card a,.mif-tilda #allrecords .t-store__card a:focus-visible{outline:none}.mif-tilda .t-store__card__imgwrapper{padding-bottom:110%;position:relative;width:100%}.mif-tilda .t706__body_cartwinshowed .t-store__card__imgwrapper{z-index:0}.mif-tilda .t-store__card__bgimg,.mif-tilda .t-store__card__bgimg_second{background-position:50%;background-repeat:no-repeat;background-size:cover}.mif-tilda .t-store__card__bgimg,.mif-tilda .t-store__card__bgimg_second,.mif-tilda .t-store__card__img{bottom:0;left:0;position:absolute;right:0;top:0;transition:opacity .1s linear;z-index:2}.mif-tilda .t-store__card__img{margin:auto;max-height:100%;max-width:100%;object-fit:contain}.mif-tilda .t-store__card__bgimg_second,.mif-tilda .t-store__card__img_second{opacity:0;z-index:1}.mif-tilda .t-store__card__mark-wrapper{display:table;position:absolute;right:10px;top:10px;z-index:5}.mif-tilda .t-store__card__mark{background-color:#111;border-radius:50px;box-sizing:border-box;color:#fff;display:table-cell;font-family:Roboto,Arial,sans-serif;font-size:12px;font-weight:400;height:50px;padding:0 10px;text-align:center;vertical-align:middle;width:50px}.mif-tilda .t-store__card__textwrapper{margin-bottom:auto;padding-top:20px}.mif-tilda .t-store__card__descr{margin-top:8px;word-break:break-word}.mif-tilda .t-store__card__sku{color:#777;margin-top:4px}.mif-tilda .t-store__card__price-wrapper{margin-top:12px}.mif-tilda .t-store__card__price-wrapper_above-title{margin-bottom:12px;margin-top:0}.mif-tilda .t-store__card__price-item,.mif-tilda .t-store__prod-popup__price-item{display:inline-block;max-width:100%;vertical-align:middle}.mif-tilda .t-store__card__price-currency,.mif-tilda .t-store__card__price-value,.mif-tilda .t-store__prod-popup__price-currency,.mif-tilda .t-store__prod-popup__price-value,.mif-tilda .t-store__prod__price-portion{display:inline-block;vertical-align:middle;white-space:nowrap}.mif-tilda .t-store__prod__price-portion{font-size:.8em;opacity:.5}.mif-tilda .t-store__prod__price-portion-slash{padding-left:3px;padding-right:3px}.mif-tilda .t-store__card__price-value{max-width:100%;overflow:hidden;text-overflow:ellipsis}.mif-tilda .t-store__card__price-from:after,.mif-tilda .t-store__card__price-value+.t-store__card__price-currency:before,.mif-tilda .t-store__prod-popup__price-value+.t-store__prod-popup__price-currency:before{content:"\a0";font-family:Arial,Helvetica,sans-serif}.mif-tilda .t-store__card__price-from+.t-store__card__price-currency:before{content:""}.mif-tilda .t-store__card__price_old,.mif-tilda .t-store__prod-popup__price_old{color:#bdbdbd;position:relative}.mif-tilda .t-store__card__price_old{margin-left:3px}.mif-tilda .t-store__prod-popup__price_old{margin-left:5px}.mif-tilda .t-store__card__price_old:after,.mif-tilda .t-store__prod-popup__price_old:after{border-top:1px solid;content:"";left:-1px;position:absolute;right:-1px;top:50%;width:100%}.mif-tilda .t-store__card__btns-wrapper{display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.mif-tilda .t-store__card__prod-controls-wrapper{text-align:left}.mif-tilda .t-store .t-store__card__wrap_all{transition:all .2s linear}.mif-tilda .t-store .t-store__card__wrap_all .t-store__card__textwrapper{padding:0}.mif-tilda .t-store .t-store__card__wrap_all .store__card__wrap_txt-and-opts{padding-bottom:27px;padding-top:27px}.mif-tilda .t-store .t-store__card__wrap_all .t-store__card__prod-controls-wrapper,.mif-tilda .t-store .t-store__card__wrap_all .t-store__card__textwrapper{padding-left:30px;padding-right:30px}.mif-tilda .t-store .t-store__card__wrap_all .t-store__card__btns-wrapper{padding-bottom:21px;padding-left:30px;padding-right:30px}.mif-tilda .t-store .t-store__card__wrap_all.t-store__card__wrap_pad-sm .store__card__wrap_txt-and-opts{-webkit-flex:1;-ms-flex:1;flex:1;padding-bottom:18px;padding-top:18px}.mif-tilda .t-store .t-store__card__wrap_all.t-store__card__wrap_pad-sm .t-store__card__prod-controls-wrapper,.mif-tilda .t-store .t-store__card__wrap_all.t-store__card__wrap_pad-sm .t-store__card__textwrapper{padding-left:20px;padding-right:20px}.mif-tilda .t-store .t-store__card__wrap_all.t-store__card__wrap_pad-sm .t-store__card__btns-wrapper{padding-bottom:14px;padding-left:20px;padding-right:20px}.mif-tilda .t-store .t-store__card__wrap_all.t-store__card__wrap_pad-lg .store__card__wrap_txt-and-opts{padding-bottom:36px;padding-top:36px}.mif-tilda .t-store .t-store__card__wrap_all.t-store__card__wrap_pad-lg .t-store__card__prod-controls-wrapper,.mif-tilda .t-store .t-store__card__wrap_all.t-store__card__wrap_pad-lg .t-store__card__textwrapper{padding-left:40px;padding-right:40px}.mif-tilda .t-store .t-store__card__wrap_all.t-store__card__wrap_pad-lg .t-store__card__btns-wrapper{padding-bottom:28px;padding-left:40px;padding-right:40px}.mif-tilda .t-store .t-store__card.t-align_center .t-store__card__btns-wrapper,.mif-tilda .t-store__card__btn{-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.mif-tilda .t-store__card__btn{-ms-flex-align:center;-webkit-align-items:center;align-items:center;display:-ms-inline-flexbox;display:-webkit-inline-flex;display:inline-flex;max-width:100%}.mif-tilda .t-store__card__btn-text{max-width:100%;overflow:hidden;white-space:nowrap}.mif-tilda .t-align_center .t-store__card__btn{margin:0 0 8px}.mif-tilda .t-align_center .t-store__card__btn:not(:only-child){margin:0 2px 8px}.mif-tilda .t-align_left .t-store__card__btn{margin:0 4px 8px 0}.mif-tilda .t-align_left .t-store__card__btn:only-child{margin-right:0}.mif-tilda .t-store__card__sold-out-msg{color:#f95d51;font-size:14px;font-weight:400;margin-top:3px}.mif-tilda .t-store__load-more-btn-wrap{padding:0 20px}.mif-tilda .t-store__load-more-btn{position:relative}.mif-tilda .t-store__load-more-btn-wrap .t-btn.t-btn_sending:before{top:50%}.mif-tilda .t-store__load-more-btn-wrap_hidden{display:none}.mif-tilda .t-store .t-popup{-webkit-overflow-scrolling:touch;padding:0}.mif-tilda .t-store__popup-container_8-cols .t-store__prod-popup__slider:not(.t-col){max-width:100%;width:100%}.mif-tilda .t-store .t-popup__container{left:0;max-width:1240px;right:0}.mif-tilda .t-popup__container.t-store__popup-container_8-cols{max-width:760px}.mif-tilda .t-store__popup-container_8-cols .t-store__prod-popup__container{padding:40px!important}.mif-tilda .t-container_8 .t-store__prod-popup__info,.mif-tilda .t-store__popup-container_8-cols .t-store__prod-popup__info{padding-top:40px}.mif-tilda .t-store__prod-popup__container{padding:40px 20px}.mif-tilda .t-store__prod-popup__container:after,.mif-tilda .t-store__prod-popup__container>div:after,.mif-tilda .t-store__product-popup>div:after,.mif-tilda .t-store__relevants-grid-cont:after{clear:both;content:"";display:block;height:0}.mif-tilda .t-store .t-popup__close{z-index:999}.mif-tilda .t-store__prod-popup__close-txt-wr{left:20px;position:fixed;top:20px;z-index:999}.mif-tilda .t-store__prod-popup__close-txt{-ms-flex-align:center;-webkit-align-items:center;align-items:center;cursor:pointer;display:-webkit-flex;display:-ms-flexbox;display:flex;font-weight:400;margin-bottom:20px;opacity:.8}.mif-tilda .t-store__prod-popup__close-txt div[data-customstyle=yes]{line-height:1!important}.mif-tilda .t-store__prod-popup__close-txt:before{content:"←\a0";font-family:Arial,Helvetica,sans-serif}@media screen and (max-width:1240px){.mif-tilda .t-store .t-popup__container{max-width:1200px}.mif-tilda .t-store__prod-popup__container{padding:30px 10px}.mif-tilda .t-store__prod-popup__col-left{margin-right:10px;max-width:440px}.mif-tilda .t-store__prod-popup__col-right{margin-left:10px;max-width:440px}}@media screen and (max-width:1200px){.mif-tilda .t-store .t-popup__container{max-width:1000px}.mif-tilda .t-store__prod-popup__container{padding:30px 20px}.mif-tilda .t-popup__container.t-store__popup-container_8-cols{max-width:620px}}@media screen and (max-width:1000px){.mif-tilda .t-store .t-popup__container{max-width:980px}.mif-tilda .t-store__prod-popup__container{padding:20px 10px}}@media screen and (max-width:960px){.mif-tilda .t-store__relevants__container .t-store__scroll-icon-wrapper{display:block;font-size:0;padding:0 40px 20px 0;text-align:right}.mif-tilda .t-store .t-popup{padding:0 20px}.mif-tilda .t-store .t-popup__container{max-width:640px}.mif-tilda .t-store__prod-popup__container{padding:30px}.mif-tilda .t-store__prod-popup__col-left,.mif-tilda .t-store__prod-popup__col-right{display:block;max-width:100%}.mif-tilda .t-store__prod-popup__col-left{padding:0}.mif-tilda .t-store__prod-popup__col-right{padding:25px 0 0}}@media screen and (max-width:670px){.mif-tilda .t-store__card__btn{width:100%}.mif-tilda .t-store__card__btn:not(:first-child){margin-top:10px}.mif-tilda .t-store .t-popup__container:not(.t-popup__container-static){left:20px;right:20px}.mif-tilda .t-store__prod-popup__col-left,.mif-tilda .t-store__prod-popup__col-right{margin:0}.mif-tilda .t-store__relevants__container .t-col.t-store__relevants__title-wrapper{padding:0}.mif-tilda .t-store__relevants-grid-cont .t-store__card__btn{margin-left:0!important;margin-right:0!important}.mif-tilda .t-store__relevants-grid-cont .t-store__card__btns-wrapper a:last-child{margin-bottom:0}}@media screen and (max-width:560px){.mif-tilda .t-store .t-popup{height:calc(100% + 130px);padding:0}.mif-tilda .t-store .t-popup_show .t-popup__container{bottom:0;left:0;max-width:100%;right:0;top:50px;-webkit-transform:translateY(0);transform:translateY(0)}.mif-tilda .t-store .t-popup_show .t-popup__container.t-popup__container-static{margin:50px 0 130px;max-width:100%;min-height:100vh;top:0}.mif-tilda .t-store .t-popup__close{background:#000;display:table;height:50px;left:0;position:fixed;right:0;top:0;width:100%;z-index:2}.mif-tilda .t-store .t-popup__close-wrapper{display:table-cell;font-size:0;padding-right:20px;text-align:right;vertical-align:middle;width:100%}.mif-tilda .t-store .t-popup__close-icon{width:16px}.mif-tilda #allrecords[data-product-page=y] .t-store .t-popup__close-icon g{fill:#fff}.mif-tilda .t-store__prod-popup__close-txt-wr{display:none}.mif-tilda .t-store__prod-popup__container{padding:20px}.mif-tilda .t-store__prod-popup__col-right{padding-top:30px}.mif-tilda .t-store__popup-container_8-cols .t-store__prod-popup__container{padding:20px!important}.mif-tilda .t-container_8 .t-store__prod-popup__info,.mif-tilda .t-store__popup-container_8-cols .t-store__prod-popup__info{padding-top:30px}}.mif-tilda .t-store__prod-popup__title-wrapper{margin-bottom:18px}.mif-tilda .t-store__prod-popup__brand,.mif-tilda .t-store__prod-popup__sku{color:#777;margin-top:4px}.mif-tilda .t-store__prod-popup__text{margin-top:20px}.mif-tilda .t-store__prod-popup__price-wrapper{margin-top:0}.mif-tilda .t-store__prod-popup__btn-wrapper{margin-bottom:30px;margin-top:20px}@media screen and (max-width:561px){.mif-tilda .t-popup .t-popup__container .t-store__prod-popup__btn-wrapper-fixed,.mif-tilda .t-store__product-snippet .t-store__prod-popup__btn-wrapper-fixed{background:#fff;border-radius:5px;bottom:0;box-shadow:0 -8px 12px 0 rgba(0,0,0,.07);box-sizing:border-box;display:-webkit-flex;display:-ms-flexbox;display:flex;left:0;margin:0;padding:20px;position:fixed;right:0;z-index:10}.mif-tilda .t-popup .t-store__prod-popup__btn-wrapper-fixed .t-store__prod-popup__btn,.mif-tilda .t-store__product-snippet .t-store__prod-popup__btn-wrapper-fixed .t-store__prod-popup__btn{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}}.mif-tilda .t-store__prod-popup__btn{margin-bottom:0}.mif-tilda .t-store__prod-popup__btn_disabled{opacity:.5;pointer-events:none}.mif-tilda .t-store__prod-popup__btn_disabled td{opacity:.7}.mif-tilda .t-store .t-product__option{margin-bottom:10px;margin-top:10px;position:relative}.mif-tilda .t-store .js-product.t-align_center .js-product-controls-wrapper,.mif-tilda .t-store .js-store-product .t-store__prod-popup__info.t-align_center .js-product-controls-wrapper{-ms-flex-align:center;-webkit-align-items:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.mif-tilda .t-store .js-product.t-align_center .js-product-controls-wrapper .t-product__option,.mif-tilda .t-store .js-store-product .t-store__prod-popup__info.t-align_center .js-product-controls-wrapper .t-product__option{-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.mif-tilda .t-store .t-product__option-title{padding-bottom:3px}.mif-tilda .t-store .t-store__card.t-align_center .t-product__option~.t-product__option{padding-left:0}.mif-tilda .t-store .t-align_center .t-product__option-title,.mif-tilda .t-store .t-store__popup-container_8-cols .t-product__option-title{display:table-cell;line-height:1;padding:0 8px 5px 0;vertical-align:middle}.mif-tilda .t-store .t-product__option-variants{display:table;min-width:150px;position:relative}.mif-tilda .js-product .t-product__option-variants_list{position:relative}.mif-tilda .js-product .t-align_center .t-product__option-variants,.mif-tilda .js-product .t-store__popup-container_8-cols .t-product__option-variants{display:table-cell;vertical-align:middle}.mif-tilda .js-product .t-product__option-variants:after{border-color:#000 transparent transparent;border-style:solid;border-width:6px 5px 0;bottom:0;content:" ";height:0;pointer-events:none;position:absolute;right:10px;top:10px;width:0}.mif-tilda .js-product .t-product__option-select{-webkit-appearance:none;appearance:none;background:#f8f8f8;border:1px solid #ddd;border-radius:5px;box-sizing:border-box;color:#000;cursor:pointer;overflow-x:hidden;padding:2px 30px 2px 10px;width:100%}.mif-tilda .js-product .t-product__option-select::-ms-expand{height:0;opacity:0;width:0}.mif-tilda .js-product .t-product__option-variants.t-product__option-variants_custom:after{display:none}.mif-tilda .js-product .t-product__option .t-product__option-variants_custom{box-sizing:border-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;min-width:auto;position:relative}.mif-tilda .js-product .t-product__option .t-product__option-variants_custom.t-product__option-variants_buttons.t-product__option-variants_color,.mif-tilda .js-product .t-product__option .t-product__option-variants_custom.t-product__option-variants_buttons.t-product__option-variants_image,.mif-tilda .js-product .t-product__option .t-product__option-variants_custom.t-product__option-variants_radio{margin:5px 5px 0}.mif-tilda .js-product .t-product__option-variants_custom.t-product__option-variants_radio{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.mif-tilda .js-product .t-product__option-item{box-sizing:border-box;cursor:pointer;position:relative}.mif-tilda .js-product .t-product__option-variants_custom .t-product__option-item.t-product__option-item_disabled{opacity:.4;pointer-events:none}.mif-tilda .js-product .t-product__option-input{height:0;left:-9999px;opacity:0;position:absolute;visibility:hidden;width:0}.mif-tilda .js-product .t-product__option-checkmark{box-sizing:border-box;display:block;position:relative}.mif-tilda .js-product .t-product__option-variants_buttons .t-product__option-item{margin-bottom:7px;margin-right:7px}.mif-tilda .js-product .t-product__option-variants_buttons .t-product__option-item_simple{-ms-flex-align:center;-ms-flex-pack:center;-webkit-align-items:center;align-items:center;background-color:#fff;border:1px solid #ddd;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;justify-content:center;margin-bottom:7px;min-height:30px;min-width:30px;padding:7px}.mif-tilda .js-product .t-product__option-variants_buttons .t-product__option-item_simple.t-product__option-item_active{border:1px solid rgba(0,0,0,.5)}.mif-tilda .js-product .t-product__option-variants_custom .t-product__option-title{line-height:normal;padding-bottom:0}.mif-tilda .js-product .t-product__option .t-product__option-variants_hidden,.mif-tilda .record .js-product .t-product__option .t-product__option-variants_hidden{display:none}.mif-tilda .js-product .t-product__option-variants_buttons .t-product__option-item_simple:hover{border:1px solid rgba(0,0,0,.5)}.mif-tilda .js-product .t-product__option-variants_buttons .t-product__option-checkmark_color{background-color:#fff;border:1px solid #ddd;border-radius:50%;height:26px;width:26px}.mif-tilda .js-product .t-product__option-variants_buttons .t-product__option-input:checked+.t-product__option-checkmark_color:before{border:1px solid rgba(0,0,0,.5);border-radius:50%;content:"";height:calc(100% + 8px);left:-5px;position:absolute;top:-5px;width:calc(100% + 8px)}.mif-tilda .js-product .t-product__option-variants_buttons .t-product__option-checkmark_image{background-color:#fff;background-repeat:no-repeat;background-size:cover;border:1px solid #ddd;height:50px;width:50px}.mif-tilda .js-product .t-product__option-variants_buttons .t-product__option-input:checked+.t-product__option-checkmark_image:before{border:1px solid rgba(0,0,0,.5);content:"";height:calc(100% + 8px);left:-5px;position:absolute;top:-5px;width:calc(100% + 8px)}.mif-tilda .js-product .t-product__option-variants_buttons .t-product__option-title_buttons{padding-right:0}.mif-tilda .js-product .t-product__option-variants_buttons .t-product__option-title_color,.mif-tilda .js-product .t-product__option-variants_buttons .t-product__option-title_image{display:none}.mif-tilda .js-product .t-product__option-variants_buttons .t-product__option-item_color:hover .t-product__option-title,.mif-tilda .js-product .t-product__option-variants_buttons .t-product__option-item_image:hover .t-product__option-title{background-color:#000;border-radius:4px;color:#fff;display:block;padding:4px 10px;position:absolute}.mif-tilda .js-product .t-product__option-variants_buttons .t-product__option-item_color:hover .t-product__option-title{bottom:36px;-webkit-transform:translateX(calc(-50% + 13px));transform:translateX(calc(-50% + 13px))}.mif-tilda .js-product .t-product__option-variants_buttons .t-product__option-item_color:hover .t-product__option-title:after,.mif-tilda .js-product .t-product__option-variants_buttons .t-product__option-item_image:hover .t-product__option-title:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000;bottom:-4px;content:"";display:block;height:0;left:calc(50% - 5px);position:absolute;width:0}.mif-tilda .js-product .t-product__option-variants_buttons .t-product__option-item_image:hover .t-product__option-title{background-color:#000;border-radius:4px;bottom:60px;color:#fff;display:block;padding:4px 10px;position:absolute;-webkit-transform:translateX(calc(-50% + 25px));transform:translateX(calc(-50% + 25px))}.mif-tilda .js-product .t-product__option-selected_select{background:#f8f8f8;border:1px solid #ddd;border-radius:5px;box-sizing:border-box;color:#000;cursor:pointer;display:table;min-height:28px;min-width:150px;padding:2px 30px 2px 10px;position:relative}.mif-tilda .js-product .t-product__option{position:relative}.mif-tilda .js-product .t-product__option-selected_select.t-product__option-selected_color,.mif-tilda .js-product .t-product__option-selected_select.t-product__option-selected_image{-ms-flex-align:center;-webkit-align-items:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;max-width:100%;width:-webkit-fit-content;width:fit-content}.mif-tilda .js-product .t-product__option-selected_select:after{border-color:#000 transparent transparent;border-style:solid;border-width:6px 5px 0;bottom:0;content:" ";height:0;margin:auto;pointer-events:none;position:absolute;right:10px;top:0;width:0}.mif-tilda .js-product .t-product__option .t-product__option-variants_select{background-color:#fff;border:1px solid rgba(0,0,0,.1);border-radius:5px;box-shadow:0 4px 10px 2px rgba(0,0,0,.1);color:#000;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;max-height:40vh;max-width:250px;min-width:180px;overflow-y:auto;padding:5px 10px;position:absolute;top:25px;width:-webkit-fit-content;width:fit-content;z-index:10}.mif-tilda .js-product .t-product__option-item_select{-ms-flex-align:center;-webkit-align-items:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-left:-10px;margin-right:-10px;padding:8px 10px;width:calc(100% + 20px)}.mif-tilda .js-product .t-product__option-item_select.t-product__option-item_active{background-color:rgba(0,0,0,.05)}.mif-tilda .js-product .t-product__option-item_select:hover{background-color:rgba(0,0,0,.1)}.mif-tilda .js-product .t-product__option-selected_color .t-product__option-selected-checkmark,.mif-tilda .js-product .t-product__option-variants_select .t-product__option-checkmark_color{-ms-flex-negative:0;background-color:#fff;border:1px solid #ddd;border-radius:50%;display:block;-webkit-flex-shrink:0;flex-shrink:0;height:16px;margin-right:5px;width:16px}.mif-tilda .js-product .t-product__option-selected_image .t-product__option-selected-checkmark,.mif-tilda .js-product .t-product__option-variants_select .t-product__option-checkmark_image{-ms-flex-negative:0;background-color:#fff;background-repeat:no-repeat;background-size:cover;border:1px solid #ddd;display:block;-webkit-flex-shrink:0;flex-shrink:0;height:32px;margin-right:5px;width:32px}.mif-tilda .js-product .t-product__option-title_select,.mif-tilda .t-product__option-selected-title{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mif-tilda .js-product .t-product__option-variants_radio .t-product__option-item{margin-bottom:10px;min-height:14px;padding-left:26px;width:100%}.mif-tilda .js-product .t-product__option-variants_radio .t-product__option-item_color,.mif-tilda .js-product .t-product__option-variants_radio .t-product__option-item_image{-ms-flex-align:center;-webkit-align-items:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.mif-tilda .js-product .t-product__option-variants_radio .t-product__option-checkmark_radio.t-product__option-checkmark_color{-ms-flex-negative:0;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-flex-shrink:0;flex-shrink:0;height:24px;margin-right:5px;width:24px}.mif-tilda .js-product .t-product__option-variants_radio .t-product__option-checkmark_radio.t-product__option-checkmark_image{-ms-flex-negative:0;background-color:#fff;background-repeat:no-repeat;background-size:cover;border:1px solid #ddd;border-radius:4px;display:block;-webkit-flex-shrink:0;flex-shrink:0;height:32px;margin-right:5px;width:32px}.mif-tilda .js-product .t-product__option-variants_radio .t-product__option-input+.t-product__option-checkmark:before,.mif-tilda .js-product .t-product__option-variants_radio .t-product__option-input:checked+.t-product__option-checkmark:after{border-radius:50%;content:"";position:absolute}.mif-tilda .js-product .t-product__option-item_radio .t-product__option-input+.t-product__option-checkmark:before{border:1px solid rgba(0,0,0,.2);height:16px;left:-26px;width:16px}.mif-tilda .js-product .t-product__option-item_radio .t-product__option-input:checked+.t-product__option-checkmark:after{background-color:rgba(0,0,0,.2);height:10px;left:-22px;top:4px;width:10px}.mif-tilda .js-product .t-product__option-item_radio .t-product__option-input+.t-product__option-checkmark.t-product__option-checkmark_color:before{top:2px}.mif-tilda .js-product .t-product__option-item_radio .t-product__option-input:checked+.t-product__option-checkmark.t-product__option-checkmark_color:after{top:6px}.mif-tilda .js-product .t-product__option-item_radio .t-product__option-input+.t-product__option-checkmark.t-product__option-checkmark_image:before{left:-26px;top:6px}.mif-tilda .js-product .t-product__option-item_radio .t-product__option-input:checked+.t-product__option-checkmark.t-product__option-checkmark_image:after{left:-22px;top:10px}.mif-tilda .js-product .t-product__option-item_radio.t-product__option-item_active .t-product__option-input+.t-product__option-checkmark:before{border:1px solid rgba(0,0,0,.5)}.mif-tilda .js-product .t-product__option-item_radio.t-product__option-item_active .t-product__option-input:checked+.t-product__option-checkmark:after{background-color:rgba(0,0,0,.5)}.mif-tilda .js-product .t-product__option-title_radio{display:block;line-height:1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mif-tilda .t-product__checkbox-wrap{margin-left:5px;margin-top:5px}.mif-tilda .t-product__checkbox-wrap .t-checkbox__control+.t-checkbox__control{margin-top:10px}@media screen and (max-width:640px){.mif-tilda .t-store .t-product__option-select{font-size:16px}}@media screen and (max-width:1240px){.mif-tilda .t-store__grid-cont_mobile-one-row.t-store__relevants-grid-cont .t-store__card{max-width:225px}.mif-tilda .t-store__prod-popup__container .t-store__grid-cont_mobile-one-row.t-store__relevants-grid-cont .t-store__card{max-width:220px}}@media screen and (min-width:1240px){.mif-tilda .t-store__grid-cont_mobile-one-row.t-store__relevants-grid-cont .t-store__card{max-width:270px}.mif-tilda .t-store__prod-popup__container .t-store__grid-cont_mobile-one-row.t-store__relevants-grid-cont .t-store__card{max-width:260px}}.mif-tilda .t-store .t-slds__wrapper{padding:0!important}.mif-tilda .t-store .t-slds__arrow_wrapper{height:65%!important;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}@media screen and (max-width:960px){.mif-tilda .t-store__grid-cont_mobile-one-row.t-store__relevants-grid-cont .t-store__card__textwrapper{height:auto!important}.mif-tilda .t-store__relevants-grid-cont.t-store__grid-cont_mobile-one-row .t-col{margin-left:20px;margin-right:20px;padding:0}.mif-tilda .t-store__relevants__container .js-product-relevant:first-child:not(:only-child){padding-left:0}.mif-tilda .t-store__relevants__container .js-product-relevant:last-child:not(:only-child){padding-right:0}}@media screen and (min-width:560px){.mif-tilda .t-store .t-popup.t-popup_show{transition:unset}.mif-tilda .t-store .t-popup .t-popup__container{opacity:0;-webkit-transform:translateY(50px);transform:translateY(50px);transition:all .9s cubic-bezier(.19,1,.22,1)}.mif-tilda .t-store .t-popup.t-popup_show .t-popup__container{opacity:1;-webkit-transform:translateY(0);transform:translateY(0);transition:all .9s cubic-bezier(.19,1,.22,1);transition-delay:.3s}}@media screen and (max-width:560px){.mif-tilda .t-store__relevants__container .js-product-relevant:first-child{padding-left:0}.mif-tilda .t-store__relevants__container .js-product-relevant:last-child{padding-right:0}.mif-tilda .t-store__mobile-two-columns .js-product .t-product__option-title_radio{white-space:unset}.mif-tilda .t-store .t-popup__container{-webkit-transform:none;transform:none;-webkit-transform:translateX(100%) scale(1);transform:translateX(100%) scale(1)}.mif-tilda .t-store .t-popup_show .t-popup__container{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform:translateX(-100%);transform:translateX(-100%)}.mif-tilda .t-store .t-popup__container-animated{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out}.mif-tilda .t-store .t-popup_show .t-popup__container-animated{transition:-webkit-transform .3s ease-in;transition:transform .3s ease-in;transition:transform .3s ease-in,-webkit-transform .3s ease-in}.mif-tilda .t-store .t-popup__container.t-popup__container-static{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform:translateX(100%) scale(1);transform:translateX(100%) scale(1)}.mif-tilda .t-store .t-popup_show .t-popup__container.t-popup__container-static{-webkit-transform:translateX(0) scale(1);transform:translateX(0) scale(1)}.mif-tilda .t-store .t-popup .t-popup__close{-webkit-transform:translateX(100%) scale(1);transform:translateX(100%) scale(1);transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out}.mif-tilda .t-store .t-popup.t-popup_show .t-popup__close{-webkit-transform:translateX(0) scale(1);transform:translateX(0) scale(1);transition:-webkit-transform .3s ease-in;transition:transform .3s ease-in;transition:transform .3s ease-in,-webkit-transform .3s ease-in}.mif-tilda .t-store .t-popup .t-popup__close:hover,.mif-tilda .t-store .t-popup__close:hover{opacity:1}.mif-tilda .t-store .t-popup .t-popup__close.t-popup__close-opacity-scroll,.mif-tilda .t-store .t-popup__close.t-popup__close-opacity-scroll{background-color:hsla(0,0%,100%,0)}.mif-tilda .t-store .t-popup__close-wrapper{border-bottom:1px solid rgba(0,0,0,.1);position:relative}.mif-tilda .t-store .t-popup__close-wrapper .t-popup__close-icon_arrow{left:12px;position:absolute;top:12px;width:26px}.mif-tilda .t-store .t-popup__close-wrapper .t-popup__close-icon_cross{display:none}.mif-tilda .t-store .t-popup .t-popup__close{position:fixed}.mif-tilda .t-store .t-store__product-snippet .t-store__prod-popup__col-left,.mif-tilda .t-store__product-snippet .t-store__prod-popup__col-right{padding-left:0;padding-right:0}.mif-tilda .t-store .t-slds__thumbsbullet-wrapper,.mif-tilda .t-store .t-store__prod-popup__info{padding-left:20px;padding-right:20px}.mif-tilda .t-store .t-slds__thumbsbullet-wrapper{width:calc(100% - 40px)}.mif-tilda .t-store .t-store__prod-popup__container .t-store__product-popup .t-slds{margin-left:-20px;margin-right:-20px}.mif-tilda .t-store .t-store__prod-popup__container .t-store__prod-popup__info{padding-left:0;padding-right:0}.mif-tilda .t-store .t-store__prod-popup__container{padding-bottom:60px;padding-top:0}}@media screen and (min-width:560px){.mif-tilda .t-store .t-popup__close-wrapper .t-popup__close-icon_arrow{display:none}.mif-tilda .t-store .t-popup__close{background-color:transparent!important;position:absolute}.mif-tilda .t-store .t-store__prod-popup__close-txt-wr{position:absolute}}@media screen and (min-width:640px) and (max-width:960px){.mif-tilda .t-store__relevants__container .t-slds__item_active .js-product-relevant{padding-left:0;padding-right:10px}.mif-tilda .t-store__relevants__container .t-slds__item_active+div .js-product-relevant{padding-left:10px;padding-right:0}}.mif-tilda .t-store__relevants__title{letter-spacing:inherit;margin:70px 0 40px;padding-left:0}@media screen and (min-width:960px){.mif-tilda .t-store__relevants__container .js-product-relevant:first-child:not(:only-child),.mif-tilda .t-store__relevants__container .t-store__grid-separator+.js-product-relevant{margin-left:0}.mif-tilda .t-store__relevants__container .js-product-relevant+.js-product-relevant+.js-product-relevant+.js-product-relevant,.mif-tilda .t-store__relevants__container .js-product-relevant:last-child:not(:only-child){margin-right:0}}.mif-tilda .t-store__relevants-grid-cont .t-store__card__wrap_all{background-color:transparent!important;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:1;-ms-flex:1;flex:1;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}@media screen and (min-width:960px){.mif-tilda .t-store__card__imgwrapper:hover .t-store__card__bgimg_hover,.mif-tilda .t-store__card__imgwrapper:hover .t-store__card__img_hover{opacity:0}.mif-tilda .t-store__card__imgwrapper:hover .t-store__card__bgimg_second,.mif-tilda .t-store__card__imgwrapper:hover .t-store__card__img_second{opacity:1;z-index:3}}.mif-tilda .t-store__relevants__title-wrapper{margin-left:20px;margin-right:20px}@media screen and (min-width:1200px){.mif-tilda .t-store__prod-popup__container .js-store-relevants-grid-cont{margin-left:20px;margin-right:20px}}@media screen and (min-width:960px) and (max-width:1200px){.mif-tilda .t-store__prod-popup__container .js-store-relevants-grid-cont,.mif-tilda .t-store__relevants__title-wrapper{margin-left:10px;margin-right:10px}}@media screen and (max-width:960px){.mif-tilda .t-store__relevants__title{margin:40px 0 10px}.mif-tilda .t-store__relevants-grid-cont .t-store__grid-separator{display:none}.mif-tilda .t-store__relevants-grid-cont.t-store__grid-cont_mobile-grid{font-size:0}.mif-tilda .t-store__relevants-grid-cont.t-store__grid-cont_mobile-grid .t-col:not(.t-col_8):not(.t-col_12),.mif-tilda .t-store__relevants-grid-cont.t-store__grid-cont_mobile-grid .t-store__stretch-col:not(.t-store__stretch-col_100){display:inline-block;vertical-align:top;width:50%}.mif-tilda .t-store__relevants-grid-cont.t-store__grid-cont .t-col,.mif-tilda .t-store__relevants-grid-cont.t-store__grid-cont .t-store__stretch-col{margin-bottom:60px}.mif-tilda .t-store__relevants-grid-cont.t-store__grid-cont .t-col_8 .t-store__card__imgwrapper_original-ratio{font-size:0;padding-bottom:0!important}.mif-tilda .t-store__relevants-grid-cont.t-store__grid-cont .t-col_8 .t-store__card__imgwrapper_original-ratio .t-store__card__img{position:static}.mif-tilda .t-store__relevants-grid-cont.t-store__grid-cont_mobile-one-row{-webkit-overflow-scrolling:touch;box-sizing:border-box;display:-ms-flexbox;display:-webkit-flex;display:flex;max-width:100%;overflow-x:scroll;padding:0!important}.mif-tilda .t-store__relevants-grid-cont.t-store__grid-cont_mobile-one-row .t-col,.mif-tilda .t-store__relevants-grid-cont.t-store__grid-cont_mobile-one-row .t-store__stretch-col{margin-bottom:0!important;max-width:38%;min-width:38%}.mif-tilda .t-store__relevants-grid-cont.t-store__grid-cont_mobile-one-row .t-col:first-child{margin-left:20px;margin-left:0}.mif-tilda .t-store__relevants-grid-cont.t-store__grid-cont_mobile-one-row .t-store__empty-part-msg-cont,.mif-tilda .t-store__relevants-grid-cont.t-store__grid-cont_mobile-one-row .t-store__error-msg-cont{margin-right:20px;max-width:100%;min-width:auto}.mif-tilda .t-store__relevants__container .t-store__scroll-icon-wrapper{display:block;font-size:0;padding:0 0 20px;text-align:right}.mif-tilda .t-store__scroll-icon{-webkit-animation:store-horizontal-scroll-icon 1.5s infinite;animation:store-horizontal-scroll-icon 1.5s infinite}.mif-tilda .t-store__relevants__container .t-store__card__img_second{display:none}.mif-tilda .t-store__grid-cont_mobile-one-row .t-store__card__price-wrapper{margin-bottom:8px}.mif-tilda .t-store__relevants__container.t-store__grid-cont_mobile-one-row .t-product__option-variants{min-width:100px}.mif-tilda .t-store__relevants__container{margin-left:10px;margin-right:10px}.mif-tilda .t-store__relevants__title-wrapper{margin:0;padding-left:0}.mif-tilda .t-store__grid-separator{display:none}.mif-tilda .t-store__grid-cont_mobile-grid{font-size:0}.mif-tilda .t-store__empty-part-msg{font-size:14px}.mif-tilda .t-store__grid-cont_mobile-grid .t-col:not(.t-col_8):not(.t-col_12),.mif-tilda .t-store__grid-cont_mobile-grid .t-store__stretch-col:not(.t-store__stretch-col_100){display:inline-block;vertical-align:top;width:50%}.mif-tilda .t-store__grid-cont .t-col,.mif-tilda .t-store__grid-cont .t-store__stretch-col{margin-bottom:60px}.mif-tilda .t-store__grid-cont .t-col_8 .t-store__card__imgwrapper_original-ratio{font-size:0;padding-bottom:0!important}.mif-tilda .t-store__grid-cont .t-col_8 .t-store__card__imgwrapper_original-ratio .t-store__card__img{position:static}.mif-tilda .t-store__grid-cont_mobile-one-row{-webkit-overflow-scrolling:touch;box-sizing:border-box;display:-ms-flexbox;display:-webkit-flex;display:flex;max-width:100%;overflow-x:scroll;padding:0!important}.mif-tilda .t-store__grid-cont_mobile-one-row .t-col,.mif-tilda .t-store__grid-cont_mobile-one-row .t-store__stretch-col{margin-bottom:0!important;max-width:32%;min-width:32%}.mif-tilda .t-store__grid-cont_mobile-one-row .t-col:first-child{margin-left:20px}.mif-tilda .t-store__relevants-grid-cont.t-store__grid-cont_mobile-one-row .t-col:first-child{margin-left:0}.mif-tilda .t-store__grid-cont_mobile-one-row .t-store__empty-part-msg-cont,.mif-tilda .t-store__grid-cont_mobile-one-row .t-store__error-msg-cont{margin-right:20px;max-width:100%;min-width:auto}.mif-tilda .t-store__scroll-icon-wrapper{color:#a1a1a1;display:block;font-size:0;mix-blend-mode:multiply;padding:0 40px 20px 0;text-align:right}.mif-tilda .t-store__relevants__container .t-store__scroll-icon-wrapper{padding:0 0 20px}.mif-tilda .t-store__grid-cont_mobile-one-row.t-store__mobile-two-columns .t-item{max-width:48%;min-width:48%}}@media screen and (max-width:960px){@-webkit-keyframes store-horizontal-scroll-icon{0%{opacity:0;-webkit-transform:translate3d(-20px,0,0)}10%{opacity:0;-webkit-transform:translate3d(-20px,0,0)}20%{opacity:1;-webkit-transform:translate3d(-20px,0,0)}70%{opacity:1;-webkit-transform:translateZ(0)}80%{opacity:1;-webkit-transform:translateZ(0)}81%{opacity:0;-webkit-transform:translateZ(0)}to{opacity:0;-webkit-transform:translateZ(0)}}@keyframes store-horizontal-scroll-icon{0%{opacity:0;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}10%{opacity:0;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}70%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}80%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}81%{opacity:0;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translateZ(0);transform:translateZ(0)}}.mif-tilda .t-store__scroll-icon{-webkit-animation:store-horizontal-scroll-icon 1.5s infinite;animation:store-horizontal-scroll-icon 1.5s infinite}.mif-tilda .t-store__card__img_second{display:none}.mif-tilda .t-store__grid-cont_mobile-one-row .t-product__option-variants{min-width:100px}}@media screen and (max-width:640px){.mif-tilda .t-store__relevants__container{margin:0}.mif-tilda .t-store__grid-cont_mobile-grid{box-sizing:border-box;padding:0 10px}.mif-tilda .t-store__grid-cont_mobile-grid .t-col:not(.t-col_8){padding-left:10px;padding-right:10px}.mif-tilda .t-store__grid-cont_mobile-one-row .t-col:first-child{margin-left:0}.mif-tilda .t-store__grid-cont_mobile-one-row .t-col,.mif-tilda .t-store__grid-cont_mobile-one-row .t-store__stretch-col,.mif-tilda .t-store__relevants-grid-cont.t-store__grid-cont_mobile-one-row .t-col,.mif-tilda .t-store__relevants-grid-cont.t-store__grid-cont_mobile-one-row .t-store__stretch-col{max-width:80%;min-width:80%}.mif-tilda .t-store__grid-cont_mobile-one-row .t-store__empty-part-msg-cont,.mif-tilda .t-store__grid-cont_mobile-one-row .t-store__error-msg-cont{margin-right:0;max-width:100%;min-width:auto}.mif-tilda .t-store__grid-cont_col-width_stretch.t-store__grid-cont_mobile-one-row .t-store__empty-part-msg-cont,.mif-tilda .t-store__grid-cont_mobile-one-row .t-store__error-msg-cont{margin-right:15px}.mif-tilda .t-store__scroll-icon-wrapper{padding:0 20px 10px 0}.mif-tilda .t-store__grid-cont_mobile-one-row.t-store__mobile-two-columns .t-item{max-width:50%;min-width:50%;padding-left:10px;padding-right:10px}}@media screen and (max-width:480px){.mif-tilda .t-store__grid-cont:not(.t-store__mobile-two-columns):not(.t951__cont-w-filter) .t-store__card__imgwrapper_original-ratio,.mif-tilda .t951__grid-cont:not(.t-store__mobile-two-columns) .t-store__card__imgwrapper_original-ratio{font-size:0;padding-bottom:0!important}.mif-tilda .t-store__grid-cont:not(.t-store__mobile-two-columns):not(.t951__cont-w-filter) .t-store__card__imgwrapper_original-ratio .t-store__card__img,.mif-tilda .t951__grid-cont:not(.t-store__mobile-two-columns) .t-store__card__imgwrapper_original-ratio .t-store__card__img{position:static}.mif-tilda .t-store__grid-cont_mobile-grid .t-col:not(.t-col_8):not(.t-col_12),.mif-tilda .t-store__grid-cont_mobile-grid .t-store__stretch-col:not(.t-store__stretch-col_100){display:block;width:100%}.mif-tilda .t-store__grid-cont_mobile-grid:not(.t-store__mobile-two-columns) .t-col:not(.t-col_8):not(.t-col_12):last-child,.mif-tilda .t-store__grid-cont_mobile-grid:not(.t-store__mobile-two-columns) .t-store__stretch-col:not(.t-store__stretch-col_100):last-child{margin-bottom:0}.mif-tilda .t-store__grid-cont_mobile-one-row .t-store__empty-part-msg-cont,.mif-tilda .t-store__grid-cont_mobile-one-row .t-store__error-msg-cont{max-width:100%;min-width:auto}.mif-tilda .t-store__grid-cont_mobile-one-row.t-store__mobile-two-columns .t-item{max-width:50%;min-width:50%;padding-left:10px;padding-right:10px}.mif-tilda .t-store__mobile-two-columns.t-store__grid-cont .t-store__card.t-item{display:inline-block;vertical-align:top;width:50%}.mif-tilda .t-store__mobile-two-columns.t-store__grid-cont.t-store__valign-buttons .t-store__card.t-item{display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex}.mif-tilda .t-store__mobile-two-columns .t-product__option-variants{min-width:auto}.mif-tilda .t-store__mobile-two-columns .t-store__card__title.t-name{font-size:14px;word-break:break-word}.mif-tilda .t-store__mobile-two-columns .t-store__card__btn.t-btn,.mif-tilda .t-store__mobile-two-columns .t-store__card__btn.t-store__card__btn_second.t-btn{font-size:12px}.mif-tilda .t-store__mobile-two-columns .t-store__card__btn.t-btn,.mif-tilda .t-store__mobile-two-columns .t-store__card__btn.t-store__card__btn_second.t-btn{padding:0 10px}}@media screen and (max-width:960px){.mif-tilda .t-store__grid-cont_mobile-one-row.t-store__valign-buttons.js-store-grid-cont{-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}}.mif-tilda .t-store__valign-buttons.js-store-grid-cont{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.mif-tilda .t-popup .t-store__valign-buttons .t-item,.mif-tilda .t-store__valign-buttons.js-store-grid-cont .t-item,.mif-tilda .t-store__valign-buttons.js-store-grid-cont .t-item .t-store__card__wrap_all .t-store__card__wrap_txt-and-btns{-ms-flex-pack:justify;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-justify-content:space-between;justify-content:space-between}.mif-tilda .t-store__valign-buttons.js-store-grid-cont .t-item .t-store__card__wrap_all .t-store__card__wrap_txt-and-btns{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:1;-ms-flex:1;flex:1;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.mif-tilda .t-store__relevants__container .t-store__valign-buttons .t-slds .t-item,.mif-tilda .t-store__relevants__container .t-store__valign-buttons .t-slds .t-slds__wrapper{height:100%}.mif-tilda .t-store__valign-buttons.t-container:after,.mif-tilda .t-store__valign-buttons.t-container:before,.mif-tilda .t-store__valign-buttons.t-container_100:after,.mif-tilda .t-store__valign-buttons.t-container_100:before,.mif-tilda .t-store__valign-buttons.t-container_10:after,.mif-tilda .t-store__valign-buttons.t-container_10:before,.mif-tilda .t-store__valign-buttons.t-container_8:after,.mif-tilda .t-store__valign-buttons.t-container_8:before{width:0}.mif-tilda .t-store__valign-buttons .t-store__grid-separator{width:100%}.mif-tilda .t-store__single-prod-preloader__text{-webkit-animation:tFeedPreloaderFlickerAnimation 1.5s infinite;animation:tFeedPreloaderFlickerAnimation 1.5s infinite;-webkit-animation-delay:1.5s;animation-delay:1.5s;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;background-color:hsla(0,0%,48%,.2);border-radius:3px;height:24px;margin-top:15px}.mif-tilda .t-store__single-prod-preloader__text:first-child{height:34px;margin-top:0;max-width:60%}.mif-tilda .t-store__single-prod-preloader__text:last-child{max-width:80%}.mif-tilda .t-store__relevants-grid-cont{position:relative}@media screen and (min-width:961px){.mif-tilda .t-store__relevants-grid-cont.t-store__valign-buttons.t-store__grid-cont_mobile-one-row{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}}@media screen and (max-width:960px){.mif-tilda .t-store__relevants__container .t-slds__arrow-left{left:auto;right:100%}.mif-tilda .t-store__relevants__container .t-slds__arrow-right{left:100%;right:auto}}@media screen and (min-width:1040px){.mif-tilda .t-store__relevants__container .t-slds__arrow-left{left:auto;right:200%}.mif-tilda .t-store__relevants__container .t-slds__arrow-right{left:200%;right:auto}}.mif-tilda .t-store__relevants__container .t-slds__arrow_wrapper{display:block!important;opacity:1!important}@media screen and (max-width:640px){.mif-tilda .t-store__relevants__container .t-slds__arrow-left{left:10px;right:auto}.mif-tilda .t-store__relevants__container .t-slds__arrow-right{left:auto;right:10px}}.mif-tilda .t-store__prod-snippet__container{padding-bottom:120px;padding-top:120px}.mif-tilda .t-store__product-snippet .t-container>div:after{clear:both;content:"";display:block;height:0}@media screen and (max-width:560px){.mif-tilda .t-store__prod-snippet__container{padding-bottom:60px;padding-top:50px}}@media screen and (max-width:980px){.mif-tilda .t-store__product-snippet .t-container{max-width:640px}.mif-tilda .t-store__product-snippet .t-store__prod-popup__col-left,.mif-tilda .t-store__product-snippet .t-store__prod-popup__col-right{padding-left:20px;padding-right:20px}}.mif-tilda .t-store__prod-snippet__container .t-store__relevants__container .t-store__valign-buttons .t-item{-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.mif-tilda .t-store__prod-snippet__container .t-store__relevants__container,.mif-tilda .t-store__prod-snippet__container .t-store__relevants__container .t-store__valign-buttons .t-item{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.mif-tilda .t-store__prod-snippet__container .t-store__relevants__container .t-item .t-store__card__btns-wrapper{margin-top:20px}.mif-tilda .t706 .t-form__errorbox-middle{margin-top:15px}.mif-tilda .t-slds__wrapper{position:relative}.mif-tilda .t-slds__items-wrapper .t-slds__wrapper .t-slds__videowrapper{height:100%;width:100%}.mif-tilda .t-slds__play_icon{cursor:pointer;z-index:2}.mif-tilda .t-slds__thumbsbullet .t-slds__play_icon{height:30px;opacity:.91;width:30px}.mif-tilda .t-slds__frame-wrapper{height:100%;left:0;position:absolute;top:0;width:100%}.mif-tilda .t-slds__frame{background-color:#000}.mif-tilda .t-store__card__btns-wrapper--quantity a{margin-left:0!important;margin-right:0!important}.mif-tilda .t-store__card__btns-wrapper--quantity .t-store__prod__quantity{margin-left:0!important;margin-right:4px!important}.mif-tilda .t-store__prod__quantity+a[href="#order"]{display:-ms-inline-flexbox;display:-webkit-inline-flex;display:inline-flex;width:unset}.mif-tilda .t-store__prod__quantity{-ms-flex-align:center;-webkit-align-items:center;align-items:center;background-color:#fff;border:1px solid #777;box-sizing:border-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;font-size:14px;height:45px;margin:0 4px 8px 0;vertical-align:top}@media screen and (max-width:480px){.mif-tilda .t-store__prod__quantity{height:50px}}.mif-tilda .t-align_center .t-store__prod__quantity{margin:0 2px 8px}.mif-tilda .t-store__prod__quantity_xs{font-size:13px;height:35px}.mif-tilda .t-store__prod__quantity a{display:inline-block}.mif-tilda .t-store__prod__quantity input[type=number]::-webkit-inner-spin-button,.mif-tilda .t-store__prod__quantity input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.mif-tilda .t-store__prod__quantity input[type=number]{-webkit-appearance:textfield;appearance:textfield}.mif-tilda .t-store__prod__quantity-input{background-color:transparent;border:none;color:#000;height:30px;padding:0;text-align:center;vertical-align:top;width:30px}.mif-tilda .t-store__prod__quantity-input:focus{outline:none}.mif-tilda .t-store__prod__quantity__minus-wrapper,.mif-tilda .t-store__prod__quantity__plus-wrapper{cursor:pointer;height:25px;margin:0 5px;min-width:25px;width:25px}.mif-tilda .t-store__prod__quantity__minus{background:linear-gradient(#777,#777),#fff}.mif-tilda .t-store__prod__quantity__plus{background:linear-gradient(#777,#777),linear-gradient(#777,#777),#fff}.mif-tilda .t-store__prod__quantity__minus,.mif-tilda .t-store__prod__quantity__plus{background-position:50%;background-repeat:no-repeat;background-size:50% 1px,1px 50%;border-radius:50px;display:inline-block;height:100%;width:100%}@media screen and (max-width:320px){.mif-tilda .t-store__prod__quantity+a[href="#order"]{margin-left:0!important;margin-right:0!important}.mif-tilda .t-store__prod__quantity{margin-left:0!important;margin-right:4px!important}.mif-tilda .t-store__prod__quantity-input{width:20px}.mif-tilda .t-store__prod__quantity__minus-wrapper,.mif-tilda .t-store__prod__quantity__plus-wrapper{margin:0}}@media screen and (max-width:670px){.mif-tilda .t-store__card .t-store__prod__quantity{margin-right:4px;position:relative}.mif-tilda .t-store__card .t-store__prod__quantity+.t-store__card__btn{margin-left:4px;margin-right:0;margin-top:0}.mif-tilda .t-store__prod__quantity+.t754__btn,.mif-tilda .t-store__prod__quantity+.t776__btn,.mif-tilda .t-store__prod__quantity+.t778__btn,.mif-tilda .t-store__prod__quantity+.t786__btn{margin-top:0}.mif-tilda .t-store__prod__quantity-input{font-size:16px}}@media screen and (min-width:320px){.mif-tilda .t-store__card__btns-wrapper--quantity{display:inline-block;max-width:100%}.mif-tilda .t-store__card__btns-wrapper--quantity a:not([href^="#order"]){display:-ms-flexbox!important;display:-webkit-flex!important;display:flex!important}}@media screen and (min-width:961px) and (max-width:1200px){.mif-tilda .t-col_3 .t-store__prod__quantity,.mif-tilda .t-col_3 .t-store__prod__quantity+a[href="#order"],.mif-tilda .t-col_3 .t-store__prod__quantity-input{width:100%}.mif-tilda .t-col_3 .t-store__prod__quantity{margin-right:0}.mif-tilda .t-col_3 .t-store__prod__quantity-input{width:100%}}@media screen and (min-width:481px) and (max-width:575px){.mif-tilda .t-store__grid-cont_mobile-grid .t-col:not(.t-col_8):not(.t-col_12) .t-store__prod__quantity,.mif-tilda .t-store__grid-cont_mobile-grid .t-col:not(.t-col_8):not(.t-col_12) .t-store__prod__quantity+a[href="#order"],.mif-tilda .t-store__grid-cont_mobile-grid .t-col:not(.t-col_8):not(.t-col_12) .t-store__prod__quantity-input{width:100%}}@media screen and (max-width:481px){.mif-tilda .t-store__mobile-two-columns .t-store__card .t-store__prod__quantity,.mif-tilda .t-store__mobile-two-columns .t-store__card .t-store__prod__quantity+a[href="#order"],.mif-tilda .t-store__mobile-two-columns .t-store__card .t-store__prod__quantity-input{width:100%}}.mif-tilda .t1025 .t-col_100{max-width:calc(100vw - 40px)}.mif-tilda .t1025 .t-store__card{border-bottom:1px solid rgba(0,0,0,.1);display:-webkit-flex;display:-ms-flexbox;display:flex;padding-bottom:15px;padding-top:15px}@media screen and (max-width:400px){.mif-tilda .t1025 .t-store__card{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}}.mif-tilda .t1025 .t-store__card:first-child{border-top:1px solid rgba(0,0,0,.1);padding-top:15px}.mif-tilda .t1025 .t-store__card.t-store__card_no-separator{border-bottom:none}.mif-tilda .t1025 .t-store__card.t-store__card_no-separator:first-child{border-top:none}.mif-tilda .t1025 .t-store__card_verticalAlign_middle{-ms-flex-align:center;-webkit-align-items:center;align-items:center}.mif-tilda .t1025 .t-store__card__imgwrapper_column{-ms-flex-negative:0;-webkit-flex-shrink:0;flex-shrink:0;margin-right:20px}@media screen and (min-width:400px) and (max-width:640px){.mif-tilda .t1025 .t-store__card__imgwrapper_column{margin-right:20px}}.mif-tilda .t1025 .t-store__card__imgwrapper_column{width:200px}@media screen and (min-width:481px){.mif-tilda .t1025 .t-store__card_in-row .t-store__card__imgwrapper_column{width:150px}}@media screen and (min-width:481px) and (max-width:640px){.mif-tilda .t1025 .t-store__card__imgwrapper_column{width:200px!important}}@media screen and (min-width:401px) and (max-width:480px){.mif-tilda .t1025 .t-store__card__imgwrapper_column{width:150px!important}}@media screen and (max-width:400px){.mif-tilda .t1025 .t-store__card__imgwrapper_column{width:calc(100vw - 40px)!important}}.mif-tilda .t1025 .t-store__card__imgwrapper{-ms-flex-positive:0;-ms-flex-negative:0;-webkit-flex-grow:0;flex-grow:0;-webkit-flex-shrink:0;flex-shrink:0;height:unset;margin-bottom:auto;margin-top:auto;position:relative}.mif-tilda .t1025 .t-store__card__imgwrapper_16-9{padding-bottom:56%}.mif-tilda .t1025 .t-store__card__imgwrapper_4-3{padding-bottom:75%}.mif-tilda .t1025 .t-store__card__imgwrapper_3-2{padding-bottom:66%}.mif-tilda .t1025 .t-store__card__imgwrapper_1-1,.mif-tilda .t1025 .t-store__card__imgwrapper_original-ratio.t-store__card__imgwrapper_1-1{padding-bottom:100%}.mif-tilda .t1025 .t-store__card__imgwrapper_2-3{padding-bottom:150%}.mif-tilda .t1025 .t-store__card__imgwrapper_3-4{padding-bottom:133%}.mif-tilda .t1025 .t-store__card__imgwrapper_9-16{padding-bottom:177%}.mif-tilda .t1025 .t-store__card__bgimg{background-position:50%;background-repeat:no-repeat;background-size:cover}.mif-tilda .t1025 .t-store__card__bgimg,.mif-tilda .t1025 .t-store__card__img{bottom:0;left:0;position:absolute;right:0;top:0;transition:opacity .1s linear;z-index:2}.mif-tilda .t1025 .t-store__card__img{margin:auto;max-height:100%;max-width:100%}.mif-tilda .t1025__bgimg_second,.mif-tilda .t1025__img_second{opacity:0;z-index:1}.mif-tilda .t1025 .t-store__card__mark-wrapper{display:table;left:10px;position:absolute;top:10px;z-index:5}.mif-tilda .t1025 .t-store__card__mark{background-color:#111;border-radius:5px;box-sizing:border-box;color:#fff;display:table-cell;font-size:11px;font-weight:600;height:unset;padding:.5em 1em;text-align:center;vertical-align:middle;width:unset}@media screen and (max-width:480px){.mif-tilda .t1025 .t-store__card__imgwrapper{margin-right:20px}.mif-tilda a.t-store__prod-popup__btn[href="#order"]{-ms-flex-positive:1;-webkit-flex-grow:1;flex-grow:1}}@media screen and (max-width:400px){.mif-tilda .t1025 .t-store__card__imgwrapper{margin-bottom:20px;margin-right:0}}.mif-tilda .t1025 .t-store__card__contentwrapper{-ms-flex-positive:1;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-grow:1;flex-grow:1}.mif-tilda .t1025 .t-store__card_under-description .t-store__card__contentwrapper{-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.mif-tilda .t1025 .t-store__card_in-column.t-store__card_verticalAlign_middle .t-store__card__contentwrapper,.mif-tilda .t1025 .t-store__card_in-row.t-store__card_verticalAlign_middle .t-store__card__contentwrapper,.mif-tilda .t1025 .t-store__card_under-description.t-align_center .t-store__card__contentwrapper{-ms-flex-align:center;-webkit-align-items:center;align-items:center}.mif-tilda .t1025 .t-store__card_under-description.t-store__card_verticalAlign_middle .t-store__card__contentwrapper{-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}@media screen and (max-width:980px){.mif-tilda .t1025 .t-store__card__contentwrapper{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}}.mif-tilda .t1025 .t-store__card__textwrapper{-ms-flex-positive:1;-webkit-flex-grow:1;flex-grow:1;margin-right:20px;padding-top:0}.mif-tilda .t1025 .t-store__card_under-description .t-store__card__textwrapper{-ms-flex-positive:0;-webkit-flex-grow:0;flex-grow:0;margin-bottom:20px;margin-right:0}.mif-tilda .t1025 .t-store__card .t-store__card__descr{margin-top:8px;opacity:.6}@media screen and (max-width:980px){.mif-tilda .t1025 .t-store__card__textwrapper{-ms-flex-positive:0;-webkit-flex-grow:0;flex-grow:0;margin-bottom:20px;margin-right:0}}@media screen and (max-width:400px){.mif-tilda .t1025 .t-store__card__textwrapper{margin-bottom:20px}}.mif-tilda .t1025 .t-store__card__price-buttons{-ms-flex-positive:0;-ms-flex-negative:0;-webkit-flex-grow:0;flex-grow:0;-webkit-flex-shrink:0;flex-shrink:0;margin:0;width:unset}@media (max-width:960px){.mif-tilda .t1025 .t-store__card_under-description .t-store__card__price-buttons{gap:0;margin-top:0}}@media (min-width:641px){.mif-tilda .t1025 .t-store__card__price-buttons_in-row{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}}@media (max-width:640px){.mif-tilda .t1025 .t-store__card__price-buttons,.mif-tilda .t1025 .t-store__card__price-buttons_in-row,.mif-tilda .t1025 .t-store__card_under-description .t-store__card__price-buttons{width:unset!important}}@media (max-width:400px){.mif-tilda .t1025 .t-store__card__price-buttons{-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;width:unset}}.mif-tilda .t1025 .t-store__card__price-wrapper{-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;margin-bottom:15px;margin-top:0}.mif-tilda .t1025 .t-store__card_under-description.t-align_center .t-store__card__price-wrapper{-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.mif-tilda .t1025 .t-store__card .t-store__card__price-item{display:-webkit-flex;display:-ms-flexbox;display:flex;vertical-align:middle;white-space:nowrap}.mif-tilda .t-store__card__price-currency,.mif-tilda .t1025 .t-store__card__price-value{display:inline-block;text-align:center;vertical-align:middle}.mif-tilda .t1025 .t-store__card__price-value+.t-store__card__price-currency:before{content:" ";white-space:pre}.mif-tilda .t1025 .t-store__card__price_old{color:#bdbdbd;margin-left:6px;position:relative}.mif-tilda .t1025 .t-store__card__price_old:after{border-top:1px solid;content:"";left:-1px;position:absolute;right:-1px;top:50%;width:100%}.mif-tilda .t1025 .t-store__card__price-buttons_in-row .t-store__card__price-wrapper{margin-bottom:0;margin-right:15px}@media (max-width:640px){.mif-tilda .t1025 .t-store__card__price-buttons_in-row .t-store__card__price-wrapper{margin-bottom:15px;margin-right:0}}.mif-tilda .t1025 .t-store__card__btns-wrapper{display:block}@media screen and (min-width:641px){.mif-tilda .t1025 .t-store__card__price-buttons_in-row .t-store__card__btns-wrapper{-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;margin-top:0;width:unset}}.mif-tilda .t1025 .t-store__card__btn-first_wrapper,.mif-tilda .t1025 .t-store__card__btn-second_wrapper{display:-webkit-flex;display:-ms-flexbox;display:flex}.mif-tilda .t1025 .t-store__prod__quantity{margin-bottom:0;margin-top:0}.mif-tilda .t1025 .t-store__card .t-store__prod__quantity__minus-wrapper{margin:0 0 0 5px}.mif-tilda .t1025 .t-store__card .t-store__prod__quantity-input{width:20px}.mif-tilda .t1025 .t-store__card .t-store__prod__quantity__plus-wrapper{margin:0 5px 0 0}.mif-tilda .t1025 .t-store__card__btn{-ms-flex-pack:center;-ms-flex-align:center;-ms-flex-positive:1;-webkit-align-items:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-grow:1;flex-grow:1;-webkit-justify-content:center;justify-content:center;min-height:35px;padding:8px 15px;white-space:nowrap}.mif-tilda .t1025 .t-store__card__btn.t-btn_xs{height:unset}.mif-tilda .t1025 .t-store__card__btn-row{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;margin-bottom:5px}.mif-tilda .t1025 .t-store__card__btn-row:last-child{margin-bottom:0}@media screen and (min-width:641px){.mif-tilda .t1025 .t-store__card__price-buttons_in-row .t-store__card__btn-row{margin-bottom:0;margin-right:5px}}.mif-tilda .t1025 .t-store__card__price-buttons_in-row .t-store__card__btn-row:last-child{margin-right:0}.mif-tilda .t1025 .t-store__card__btn{margin:0 5px 0 0}.mif-tilda .t1025 .t-store__card__btn:last-child{margin-right:0}.mif-tilda .t1025 .t-align_center .t-store__prod__quantity{margin-left:0;margin-right:4px}@media screen and (max-width:640px){.mif-tilda .t1025 .t-store__card__btns-wrapper,.mif-tilda .t1025 .t-store__card_under-description .t-store__card__btns-wrapper{width:unset}}@media screen and (max-width:480px){.mif-tilda .t1025 .t-store__card__btns-wrapper{margin-top:0}}.mif-tilda .t1025 .t-store__relevants__container .t-store__card{border:none;display:block;padding-top:0}.mif-tilda .t1025 .t-store__relevants__container .t-store__card__textwrapper{padding-top:20px}.mif-tilda .t1025 .t-store__relevants__container .t-store__card__price-wrapper{margin-top:12px}@media screen and (min-width:981px){.mif-tilda .t-container_fluid{max-width:100%}.mif-tilda .t-container_fluid .t-col_1{max-width:calc(8.33333% - 40px)}.mif-tilda .t-container_fluid .t-col_2{max-width:calc(16.66667% - 40px)}.mif-tilda .t-container_fluid .t-col_3{max-width:calc(25% - 40px)}.mif-tilda .t-container_fluid .t-col_4{max-width:calc(33.33333% - 40px)}.mif-tilda .t-container_fluid .t-col_5{max-width:calc(41.66667% - 40px)}.mif-tilda .t-container_fluid .t-col_6{max-width:calc(50% - 40px)}.mif-tilda .t-container_fluid .t-col_7{max-width:calc(58.33333% - 40px)}.mif-tilda .t-container_fluid .t-col_8{max-width:calc(66.66667% - 40px)}.mif-tilda .t-container_fluid .t-col_9{max-width:calc(75% - 40px)}.mif-tilda .t-container_fluid .t-col_10{max-width:calc(83.33333% - 40px)}.mif-tilda .t-container_fluid .t-col_11{max-width:calc(91.66667% - 40px)}.mif-tilda .t-container_fluid .t-col_12{max-width:calc(100% - 40px)}} .mif-tilda [data-tilda-mode=edit] .t-input-title{margin-bottom:0}.mif-tilda .t-submit{-webkit-appearance:none;background-image:none;background:transparent;border:0;box-sizing:border-box;cursor:pointer;font-size:16px;font-weight:700;height:60px;margin:0;outline:none;padding-left:60px;padding-right:60px;text-align:center;white-space:nowrap}.mif-tilda .t-submit_sending{opacity:.5}@media screen and (max-width:640px){.mif-tilda .t-submit{padding-left:30px;padding-right:30px;white-space:normal}}.mif-tilda .t-form__inputsbox.t-form__inputsbox_flex{-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.mif-tilda .t-form__inputsbox.t-form__inputsbox_flex.t-form__inputsbox_inrow{-webkit-column-gap:15px;column-gap:15px}.mif-tilda .t-form__inputsbox.t-form__inputsbox_flex .t-form__screen-wrapper_active{-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;display:-ms-flexbox!important;display:-webkit-flex!important;display:flex!important;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;width:100%}.mif-tilda .t-form__inputsbox_inrow.t-form__inputsbox.t-form__inputsbox_flex .t-form__screen-wrapper_active{-webkit-column-gap:15px;column-gap:15px}.mif-tilda .t-form__inputsbox_flex .t-input-group_tx{-ms-flex-item-align:center;-ms-grid-row-align:center;-webkit-align-self:center;align-self:center}.mif-tilda .t-input{-webkit-appearance:none;border:0;border-radius:0;box-sizing:border-box;font-size:100%;font-size:16px;height:60px;line-height:1.33;margin:0;outline:none;padding:0 20px;width:100%}.mif-tilda .t-input::-moz-focus-inner{border:0;padding:0}.mif-tilda .t-input_bbonly{background-color:transparent!important;border-bottom:1px solid;border-left:0!important;border-radius:0!important;border-right:0!important;border-top:0!important;outline:none;padding-left:0!important;padding-right:0!important}.mif-tilda .t-input_pvis{padding:26px 20px 10px}.mif-tilda .tn-atom__form .t-input_pvis{padding:26px 20px 10px!important}.mif-tilda .t-input__vis-ph{font-size:16px;height:17px;left:20px;line-height:1;opacity:.5;overflow:hidden;pointer-events:none;position:absolute;text-overflow:ellipsis;top:22px;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transform-origin:left;transform-origin:left;transition:-webkit-transform .2s linear;transition:transform .2s linear;transition:transform .2s linear,-webkit-transform .2s linear;white-space:nowrap;width:100%;width:calc(100% - 40px)}.mif-tilda .t-input:focus~.t-input__vis-ph,.mif-tilda .t-input_has-content+.t-input__vis-ph{text-overflow:inherit;-webkit-transform:translateY(-100%) scale(.7);transform:translateY(-100%) scale(.7);width:auto}.mif-tilda .t-input:invalid{box-shadow:none}.mif-tilda fieldset.t-input-group{border:none;margin:0;padding:0}.mif-tilda .t-input-group_cb div[data-customstyle=yes]{display:inline;vertical-align:middle}.mif-tilda .t-form_bbonly .t-input__vis-ph{left:0!important}.mif-tilda .t-form_bbonly .js-error-control-box .t-input__vis-ph{left:10px!important}.mif-tilda .t-input-group_ta textarea.t-input{resize:vertical}.mif-tilda .t-form__inputsbox_flex .t-input-group:not(.t-input-group_inonerow){width:100%}.mif-tilda .t-input-group_inonerow:not(.t-input-group_inrow-last){margin-right:15px}.mif-tilda .t-input-group_inonerow:not(.t-input-group_inrow-last):not(.t-input-group_inrow){margin-right:0}.mif-tilda .t-input-group_inonerow.t-input-group_width100:not(.t-input-group_inrow-withsibling){margin-right:0;width:100%}.mif-tilda .t-form__inputsbox_inrow .t-input-group_width25.t-input-group_inonerow{width:calc(25% - 11.25px)}.mif-tilda .t-form__inputsbox_inrow .t-input-group_width33.t-input-group_inonerow{width:calc(33.33333% - 10px)}.mif-tilda .t-form__inputsbox_inrow .t-input-group_width50.t-input-group_inonerow{width:calc(50% - 7.5px)}.mif-tilda .t-form__inputsbox_inrow .t-input-group_width100.t-input-group_inonerow{width:100%}.mif-tilda .t-form__inputsbox_inrow .t-input-group_inonerow,.mif-tilda .t-form__inputsbox_inrow .t-input-group_inonerow.t-input-group_width100{margin-right:0}.mif-tilda .t-form__inputsbox_inrow .t-input-group_width25:not(.t-input-group_inonerow) .t-input-block,.mif-tilda .t-form__inputsbox_inrow .t-input-group_width25:not(.t-input-group_inonerow) .t-input-title{width:calc(25% - 11.25px)}.mif-tilda .t-form__inputsbox_inrow .t-input-group_width33:not(.t-input-group_inonerow) .t-input-block,.mif-tilda .t-form__inputsbox_inrow .t-input-group_width33:not(.t-input-group_inonerow) .t-input-title{width:calc(33.33333% - 10px)}.mif-tilda .t-form__inputsbox_inrow .t-input-group_width50:not(.t-input-group_inonerow) .t-input-block,.mif-tilda .t-form__inputsbox_inrow .t-input-group_width50:not(.t-input-group_inonerow) .t-input-title{width:calc(50% - 7.5px)}.mif-tilda .t-form__inputsbox_inrow .t-input-group_inonerow:not(.t-input-group_width100):not(.t-input-group_width50):not(.t-input-group_width33):not(.t-input-group_width25),.mif-tilda .t-form__inputsbox_inrow .t-input-group_width100:not(.t-input-group_inonerow) .t-input-block,.mif-tilda .t-form__inputsbox_inrow .t-input-group_width100:not(.t-input-group_inonerow) .t-input-title{width:100%}.mif-tilda .t-form__inputsbox_inrow .t-input-group_widthdef.t-input-group_inonerow .t-datepicker__wrapper,.mif-tilda .t-form__inputsbox_inrow .t-input-group_widthdef.t-input-group_inonerow .t-inputtime{max-width:100%}.mif-tilda .t-form__inputsbox_inrow .t-input-group_width25 .t-datepicker__icon{display:none}.mif-tilda .t-select{-webkit-appearance:none;appearance:none;-moz-appearance:none;background:transparent;border:0;border-radius:0;box-sizing:border-box;color:initial;cursor:pointer;font-size:16px;height:60px;line-height:1.33;outline:none;padding:0 45px 0 20px;width:100%}.mif-tilda .t-select_bbonly{background-color:transparent!important;border-left:0!important;border-radius:0!important;border-right:0!important;border-top:0!important;outline:none;padding-left:0!important;padding-right:0!important}.mif-tilda .t-select_bbonly option{background-color:#fff;color:#000}.mif-tilda #allrecords .t-select.t-focusable{outline-color:#2015ff;outline-offset:4px;outline-style:auto}.mif-tilda .t-select__wrapper{position:relative}.mif-tilda .t-select__wrapper:after{border-color:#000 transparent transparent;border-style:solid;border-width:6px 5px 0;bottom:0;content:" ";height:0;margin:auto;pointer-events:none;position:absolute;right:20px;top:0;width:0}.mif-tilda .t-select::-ms-expand{height:0;opacity:0;width:0}.mif-tilda .t-select__wrapper_bbonly:after{right:0!important}.mif-tilda .t-radio__wrapper{margin-top:5px}.mif-tilda .t-input-block_rd-flex .t-checkboxes__wrapper,.mif-tilda .t-input-block_rd-flex .t-checkboxes__wrapper fieldset,.mif-tilda .t-input-block_rd-flex .t-radio__wrapper,.mif-tilda .t-input-block_rd-flex .t-radio__wrapper fieldset{-ms-flex-pack:start;-webkit-column-gap:15px;column-gap:15px;display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-justify-content:flex-start;justify-content:flex-start}.mif-tilda .t-input-block_rd-flex .t-checkboxes__wrapper fieldset,.mif-tilda .t-input-block_rd-flex .t-radio__wrapper fieldset{width:100%}.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width25 .t-checkboxes__wrapper,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width25 .t-checkboxes__wrapper fieldset,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width25 .t-radio__wrapper,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width25 .t-radio__wrapper fieldset,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width33 .t-checkboxes__wrapper,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width33 .t-checkboxes__wrapper fieldset,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width33 .t-radio__wrapper,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width33 .t-radio__wrapper fieldset,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width50 .t-checkboxes__wrapper,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width50 .t-checkboxes__wrapper fieldset,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width50 .t-radio__wrapper,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width50 .t-radio__wrapper fieldset{-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.mif-tilda .t-input-block.t-input-block_rd-flex:not(.t-input-block_rd-width50):not(.t-input-block_rd-width33):not(.t-input-block_rd-width25) .t-checkboxes__wrapper,.mif-tilda .t-input-block.t-input-block_rd-flex:not(.t-input-block_rd-width50):not(.t-input-block_rd-width33):not(.t-input-block_rd-width25) .t-radio__wrapper{-webkit-column-gap:25px;column-gap:25px}.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width25 .t-checkboxes__item,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width25 .t-radio__control,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width25 .t-radio__ownvariant-wrapper,.mif-tilda .tn-atom__form .t-input-block_rd-flex.t-input-block_rd-width25 .t-checkbox__control{width:calc(25% - 11.25px)}.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width33 .t-checkboxes__item,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width33 .t-radio__control,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width33 .t-radio__ownvariant-wrapper,.mif-tilda .tn-atom__form .t-input-block_rd-flex.t-input-block_rd-width33 .t-checkbox__control{width:calc(33.33333% - 10px)}.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width50 .t-checkboxes__item,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width50 .t-radio__control,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width50 .t-radio__ownvariant-wrapper,.mif-tilda .tn-atom__form .t-input-block_rd-flex.t-input-block_rd-width50 .t-checkbox__control{width:calc(50% - 7.5px)}.mif-tilda .t-checkbox__control{cursor:pointer;display:table;position:relative}.mif-tilda .t-checkbox__control.t-checkbox__control_flex{-ms-flex-align:center;-webkit-align-items:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:10px}.mif-tilda .t-checkbox__control .t-checkbox{opacity:0;position:absolute;z-index:-1}.mif-tilda .t-checkbox__indicator{border:2px solid #000;box-sizing:border-box;display:inline-block;height:20px;opacity:.6;position:relative;transition:all .2s;vertical-align:middle;width:20px}.mif-tilda .t-checkbox__indicator,.mif-tilda .t-radio__indicator{-ms-flex-negative:0;-webkit-flex-shrink:0;flex-shrink:0}.mif-tilda .t-checkbox__indicator:after{border:solid #000;border-width:0 2px 2px 0;content:"";display:none;height:8px;left:6px;position:absolute;top:2px;-webkit-transform:rotate(45deg);transform:rotate(45deg);width:3px}.mif-tilda .t-checkbox__control .t-checkbox:checked~.t-checkbox__indicator{opacity:1}.mif-tilda .t-checkbox__control .t-checkbox:checked~.t-checkbox__indicator:after{display:block}.mif-tilda .t-checkbox__labeltext,.mif-tilda .t-checkbox__labeltext div{display:inline}.mif-tilda #allrecords ul.t-checkboxes__wrapper{list-style:none;margin-bottom:0;padding-left:0}.mif-tilda .t-checkboxes__wrapper .t-checkbox__control,.mif-tilda .t-checkboxes__wrapper .t-ownvariant-wrapper_flex{margin:10px 0}.mif-tilda .t-radio{opacity:0;position:absolute;z-index:-1}.mif-tilda .t-radio__control{cursor:pointer;display:table;margin:0 0 10px;position:relative}.mif-tilda .t-checkbox__control.t-text_xs,.mif-tilda .t-radio__control.t-text_xs{line-height:1}.mif-tilda .t-input-block:not(.t-input-block_rd-flex) .t-radio__control{width:100%}.mif-tilda .t-input-block .t-ownvariant-wrapper_flex .t-radio__control,.mif-tilda .tn-atom .t-input__own-answer-wrapper .t-radio__control{width:auto}.mif-tilda .t-input-block .t-ownvariant-wrapper_flex .t-radio__control{-ms-flex-align:center;-webkit-align-items:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex}.mif-tilda .t-radio__control:first-child{margin:3px 0 10px}.mif-tilda .t-radio__control:last-child{margin:0}.mif-tilda .t-input-block_rd-flex .t-radio__control,.mif-tilda .t-input-block_rd-flex .t-radio__control:first-child,.mif-tilda .t-input-block_rd-flex .t-radio__control:last-child{margin:0 0 10px}.mif-tilda .t-radio__indicator{border:2px solid #000;border-radius:50%;box-sizing:border-box;display:inline-block;height:20px;margin-right:10px;opacity:.6;position:relative;transition:all .2s;vertical-align:middle;width:20px}.mif-tilda .t-radio__indicator:after{background:#000;border-radius:50%;bottom:0;content:"";height:10px;left:0;margin:auto;opacity:0;position:absolute;right:0;top:0;transition:all .2s;width:10px}.mif-tilda .t-radio__control .t-radio:checked~.t-radio__indicator,.mif-tilda .t-radio__control .t-radio:checked~.t-radio__indicator:after{opacity:1}.mif-tilda .t-input-block_rd-flex .t-checkbox__control,.mif-tilda .t-input-block_rd-flex .t-radio__control{box-sizing:border-box}.mif-tilda .t-rate__wrapper_numbers{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.mif-tilda .t-rate__wrapper_icons{display:inline-block}.mif-tilda .t-rate__wrapper .t-rate__control:first-child,.mif-tilda .t-rate__wrapper [type=radio]{margin:0;padding:0}.mif-tilda .t-rate__text-wrapper{-ms-flex-pack:justify;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;justify-content:space-between;margin-top:11px;width:100%}.mif-tilda .t-rate__text{line-height:1.2;width:50%}.mif-tilda .t-rate__wrapper_icons-3 .t-rate__text{width:80px}.mif-tilda .t-rate__text_start{text-align:left}.mif-tilda .t-rate__text_end{text-align:right}.mif-tilda .t-rate__control{cursor:pointer;margin-bottom:0}.mif-tilda .t-rate__wrapper_numbers .t-rate__control{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;height:40px}.mif-tilda .t-rate__wrapper_numbers .t-rate__control .t-rate__indicator{-ms-flex-pack:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;box-sizing:border-box;display:-webkit-flex;display:-ms-flexbox;display:flex;font-weight:500;height:100%;-webkit-justify-content:center;justify-content:center;position:relative;transition:all .2s;width:100%}.mif-tilda .t-rate__wrapper_numbers .t-rate__control .t-rate__indicator:after{background:#000;border-radius:50%;bottom:0;content:"";height:10px;left:0;margin:auto;opacity:0;position:absolute;right:0;top:0;transition:all .2s;width:10px}.mif-tilda .t-rate__wrapper_numbers .t-rate:checked+.t-rate__indicator{background-color:rgba(0,0,0,.1)}.mif-tilda .t-rate__wrapper_numbers .t-rate__indicator{background-color:transparent;border:1px solid #000}.mif-tilda .t-rate__wrapper_numbers .t-rate__control+.t-rate__control .t-rate__indicator{border-left:none!important}.mif-tilda .t-rate__wrapper_numbers .t-rate__control:hover .t-rate__indicator{background-color:rgba(0,0,0,.1)}.mif-tilda .t-rate__wrapper_numbers .t-rate__text-wrapper{-ms-flex-pack:justify;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;justify-content:space-between;margin-top:6px;width:100%}.mif-tilda .t-rate__icons{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;font-size:0}.mif-tilda .t-rate__icons .t-rate:checked~.t-rate__control>.t-rate__indicator svg path,.mif-tilda .t-rate__icons .t-rate__control .t-rate__indicator svg path,.mif-tilda .t-rate__icons:hover>.t-rate__control:hover~.t-rate~.t-rate__control>.t-rate__indicator svg path{opacity:.3}.mif-tilda .t-rate__icons:hover>.t-rate+.t-rate__control>.t-rate__indicator svg path,.mif-tilda .t-rate__icons>.t-rate:checked+.t-rate__control>.t-rate__indicator svg path,.mif-tilda .t-rate__icons>.t-rate~.t-rate__control:hover>.t-rate__indicator svg path,.mif-tilda .t-rate__wrapper_active .t-rate__icons .t-rate__control .t-rate__indicator svg path{opacity:1}.mif-tilda .t-rate__wrapper_icons .t-rate__control{padding-right:18px}.mif-tilda .t-rate__wrapper_icons .t-rate__control:last-of-type{padding-right:0}.mif-tilda .t-rate__wrapper_icons .t-rate__indicator{max-width:40px}.mif-tilda .t-rate__wrapper_icons .t-rate__indicator svg{height:auto;width:100%}.mif-tilda .t-rate{opacity:0;position:absolute;z-index:-1}.mif-tilda .t-step-form__step{display:none}.mif-tilda .t-step-form__step_active{display:block!important}.mif-tilda .t-step-form__step_fadeInUp{-webkit-animation:fade-in .7s,move-up .7s;animation:fade-in .7s,move-up .7s}.mif-tilda .t-step-form__step_fadeOutDown{-webkit-animation:fade-out .4s,move-down .4s;animation:fade-out .4s,move-down .4s;pointer-events:none}.mif-tilda .t-step-form__step_fadeIn{-webkit-animation:fade-in .7s;animation:fade-in .7s}.mif-tilda .t-step-form__step_fadeOut{-webkit-animation:fade-out .4s;animation:fade-out .4s;pointer-events:none}@-webkit-keyframes fade-in{0%{display:block;opacity:0}to{display:block;opacity:1}}@keyframes fade-in{0%{display:block;opacity:0}to{display:block;opacity:1}}@-webkit-keyframes fade-out{0%{display:block;opacity:1}to{opacity:0}}@keyframes fade-out{0%{display:block;opacity:1}to{opacity:0}}@-webkit-keyframes move-up{0%{-webkit-transform:translateY(15px);transform:translateY(15px)}to{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes move-up{0%{-webkit-transform:translateY(15px);transform:translateY(15px)}to{-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes move-down{0%{-webkit-transform:translateY(0);transform:translateY(0)}to{-webkit-transform:translateY(20px);transform:translateY(20px)}}@keyframes move-down{0%{-webkit-transform:translateY(0);transform:translateY(0)}to{-webkit-transform:translateY(20px);transform:translateY(20px)}}@media screen and (min-width:1024px){.mif-tilda .t-radio:focus-visible+.t-radio__indicator{box-shadow:0 0 0 3px #0096ff}.mif-tilda .t-checkbox:focus-visible+.t-checkbox__indicator{box-shadow:0 0 0 3px #0096ff}}@media screen and (max-width:640px){.mif-tilda .t-rate__icons{-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.mif-tilda .t-rate__wrapper_icons .t-rate__control{padding-right:10px}.mif-tilda .t-rate__wrapper_icons-3 .t-rate__text{width:50%}}.mif-tilda .t-inputquantity__wrapper{-ms-flex-align:center;-webkit-align-items:center;align-items:center;display:-ms-flexbox;display:-webkit-flex;display:flex}.mif-tilda .t-inputquantity{margin-left:.5rem;margin-right:.5rem;text-align:center;width:70px}.mif-tilda .t-inputquantity__btn{background-color:transparent;border:none;cursor:pointer;font-size:26px;margin:0;padding:0 .5rem;-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.mif-tilda .t-form__inputsbox_inrow .t-input-group_width100 .t-inputquantity,.mif-tilda .t-form__inputsbox_inrow .t-input-group_width25 .t-inputquantity,.mif-tilda .t-form__inputsbox_inrow .t-input-group_width33 .t-inputquantity,.mif-tilda .t-form__inputsbox_inrow .t-input-group_width50 .t-inputquantity{text-align:left;width:100%!important}.mif-tilda input[type=number]::-webkit-inner-spin-button,.mif-tilda input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.mif-tilda input[type=number]{-moz-appearance:textfield}.mif-tilda .t-range:focus-visible{outline-color:#2015ff;outline-offset:4px;outline-offset:2px;outline-style:auto}.mif-tilda .t-form .uploadcare-widget-button{background:#333;font-size:14px;line-height:1.4}.mif-tilda .t-form .uploadcare-widget-button:hover{background:#444}.mif-tilda .t-form .uploadcare--widget__button{cursor:pointer}.mif-tilda legend.t-input-title{padding-left:0}.mif-tilda .t-input-title{display:block;height:100%;padding-right:10px;vertical-align:middle}.mif-tilda .t-input-group_inonerow .t-input-title{padding-right:0}.mif-tilda .t-input-subtitle{display:block;height:100%;padding-right:10px;vertical-align:middle}.mif-tilda .t-form__bottom-text{margin-top:30px;text-align:center}@media screen and (max-width:479px){.mif-tilda .t-form__inputsbox_flex .t-input-group,.mif-tilda .t-form__inputsbox_flex .t-input-group.t-input-group_inonerow,.mif-tilda .t-form__inputsbox_inrow .t-input-group_width100:not(.t-input-group_inonerow) .t-input-block,.mif-tilda .t-form__inputsbox_inrow .t-input-group_width100:not(.t-input-group_inonerow) .t-input-title,.mif-tilda .t-form__inputsbox_inrow .t-input-group_width25:not(.t-input-group_inonerow) .t-input-block,.mif-tilda .t-form__inputsbox_inrow .t-input-group_width25:not(.t-input-group_inonerow) .t-input-title,.mif-tilda .t-form__inputsbox_inrow .t-input-group_width33:not(.t-input-group_inonerow) .t-input-block,.mif-tilda .t-form__inputsbox_inrow .t-input-group_width33:not(.t-input-group_inonerow) .t-input-title,.mif-tilda .t-form__inputsbox_inrow .t-input-group_width50:not(.t-input-group_inonerow) .t-input-block,.mif-tilda .t-form__inputsbox_inrow .t-input-group_width50:not(.t-input-group_inonerow) .t-input-title{width:100%}.mif-tilda .t-input-group_inonerow:not(.t-input-group_inrow-last){margin-right:0}.mif-tilda .t-input-group_inonerow .t-input-title{padding-right:10px}.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width25 .t-checkboxes__wrapper,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width25 .t-radio__wrapper,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width33 .t-checkboxes__wrapper,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width33 .t-radio__wrapper,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width50 .t-checkboxes__wrapper,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width50 .t-radio__wrapper{-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width25 .t-checkboxes__item,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width25 .t-radio__control,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width25 .t-radio__ownvariant-wrapper,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width33 .t-checkboxes__item,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width33 .t-radio__control,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width33 .t-radio__ownvariant-wrapper,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width50 .t-checkboxes__item,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width50 .t-radio__control,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width50 .t-radio__ownvariant-wrapper,.mif-tilda .tn-atom__form .t-input-block_rd-flex.t-input-block_rd-width25 .t-checkbox__control,.mif-tilda .tn-atom__form .t-input-block_rd-flex.t-input-block_rd-width33 .t-checkbox__control,.mif-tilda .tn-atom__form .t-input-block_rd-flex.t-input-block_rd-width50 .t-checkbox__control{width:100%}.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width25.t-input-block_rd-mobile-half .t-checkboxes__item,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width25.t-input-block_rd-mobile-half .t-radio__control,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width25.t-input-block_rd-mobile-half .t-radio__ownvariant-wrapper,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width33.t-input-block_rd-mobile-half .t-checkboxes__item,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width33.t-input-block_rd-mobile-half .t-radio__control,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width33.t-input-block_rd-mobile-half .t-radio__ownvariant-wrapper,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width50.t-input-block_rd-mobile-half .t-checkboxes__item,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width50.t-input-block_rd-mobile-half .t-radio__control,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width50.t-input-block_rd-mobile-half .t-radio__ownvariant-wrapper,.mif-tilda .tn-atom__form .t-input-block_rd-flex.t-input-block_rd-width25.t-input-block_rd-mobile-half .t-checkbox__control,.mif-tilda .tn-atom__form .t-input-block_rd-flex.t-input-block_rd-width33.t-input-block_rd-mobile-half .t-checkbox__control,.mif-tilda .tn-atom__form .t-input-block_rd-flex.t-input-block_rd-width50.t-input-block_rd-mobile-half .t-checkbox__control{width:calc(50% - 7.5px)}.mif-tilda .t-input-block.t-input-block_rd-flex:not(.t-input-block_rd-width50):not(.t-input-block_rd-width33):not(.t-input-block_rd-width25) .t-checkboxes__item,.mif-tilda .t-input-block.t-input-block_rd-flex:not(.t-input-block_rd-width50):not(.t-input-block_rd-width33):not(.t-input-block_rd-width25) .t-radio__control,.mif-tilda .t-input-block.t-input-block_rd-flex:not(.t-input-block_rd-width50):not(.t-input-block_rd-width33):not(.t-input-block_rd-width25) .t-radio__ownvariant-wrapper,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width25.t-input-block_rd-mobile-half .t-radio__ownvariant-wrapper .t-radio__control,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width33.t-input-block_rd-mobile-half .t-radio__ownvariant-wrapper .t-radio__control,.mif-tilda .t-input-block_rd-flex.t-input-block_rd-width50.t-input-block_rd-mobile-half .t-radio__ownvariant-wrapper .t-radio__control,.mif-tilda .tn-atom__form .t-input-block.t-input-block_rd-flex:not(.t-input-block_rd-width50):not(.t-input-block_rd-width33):not(.t-input-block_rd-width25) .t-checkbox__control{width:100%}.mif-tilda .t-form__inputsbox_inrow .t-input-group_width25 .t-datepicker__icon{display:block}.mif-tilda .t-form__inputsbox_inrow .t-input-group_width100 .t-inputquantity,.mif-tilda .t-form__inputsbox_inrow .t-input-group_width25 .t-inputquantity,.mif-tilda .t-form__inputsbox_inrow .t-input-group_width33 .t-inputquantity,.mif-tilda .t-form__inputsbox_inrow .t-input-group_width50 .t-inputquantity{text-align:center;width:70px!important}.mif-tilda .tn-atom .t-input-block_rd-flex .t-input__own-answer-wrapper .t-checkbox__control,.mif-tilda .tn-atom .t-input-block_rd-flex .t-input__own-answer-wrapper .t-radio__control{width:auto!important}}.mif-tilda .t-checkboxes__ownvariant-wrapper .t-input-block,.mif-tilda .t-radio__ownvariant-wrapper .t-input-block{position:relative}.mif-tilda .t-ownvariant-wrapper_flex{-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:10px;width:100%}.mif-tilda .t-ownvariant-wrapper_flex .t-checkbox__control,.mif-tilda .t-ownvariant-wrapper_flex .t-radio__control{-ms-flex-negative:0;-webkit-flex-shrink:0;flex-shrink:0;margin:0}.mif-tilda .t-ownvariant-wrapper_flex .t-input-ownanswer{border-bottom:1px solid #000;box-sizing:border-box;display:none;height:20px;line-height:1;padding:0;width:100%}.mif-tilda .t-input-ownanswer+.t-input__vis-ph{display:none}.mif-tilda .t-input-ownanswer.t-input-ownanswer_active+.t-input__vis-ph{display:block}.mif-tilda .t-input-error{color:red;display:none;font-size:13px;margin-top:5px}.mif-tilda .t-form .js-error-control-box .t-input-error{display:block}.mif-tilda .t-form .js-error-control-box .t-checkbox__control,.mif-tilda .t-form .js-error-control-box .t-checkboxes__wrapper,.mif-tilda .t-form .js-error-control-box .t-input:not(.t-input-phonemask):not(.t-input-ownanswer):not(.t-input__own-answer),.mif-tilda .t-form .js-error-control-box .t-radio__wrapper,.mif-tilda .t-form .js-error-control-box .t-rate__wrapper,.mif-tilda .t-form .js-error-control-box .t-select,.mif-tilda .t-form .js-error-control-box .uploadcare-widget{border:1px solid red!important}.mif-tilda #allrecords .t-form .js-error-control-box .t-checkboxes__wrapper,.mif-tilda .t-form .js-error-control-box .t-checkbox__control,.mif-tilda .t-form .js-error-control-box .t-checkboxes__wrapper,.mif-tilda .t-form .js-error-control-box .t-radio__wrapper,.mif-tilda .t-form .js-error-control-box .t-rate__wrapper{padding:10px}.mif-tilda :is(#allrecords .t-form .js-error-control-box:has(.t-input-block+.t-input-error)) .t-checkboxes__wrapper,.mif-tilda :is(#allrecords .t-form .js-error-control-box:has(.t-input-block+.t-input-error)) .t-radio__wrapper{padding:unset}.mif-tilda :is(.t-form .js-error-control-box:has(.t-input-block+.t-input-error)) .t-checkboxes__wrapper,.mif-tilda :is(.t-form .js-error-control-box:has(.t-input-block+.t-input-error)) .t-radio__wrapper,.mif-tilda :is(.t-form .js-error-control-box:has(.t-input-block+.t-input-error)) .t-rate__wrapper{border:unset!important}.mif-tilda .t-input-group_cb:is(.t-form .js-error-control-box:has(.t-input-block+.t-input-error)) .t-checkbox__control,.mif-tilda .t-input-group_rd:is(.t-form .js-error-control-box:has(.t-input-block+.t-input-error)) .t-input-block,.mif-tilda .t-input-group_rs:is(.t-form .js-error-control-box:has(.t-input-block+.t-input-error)) .t-input-block,.mif-tilda :is(.t-form .js-error-control-box:has(.t-input-block+.t-input-error)) .t-input:not(.t-input-phonemask):not(.t-input-ownanswer):not(.t-input__own-answer),.mif-tilda :is(.t-form .js-error-control-box:has(.t-input-block+.t-input-error)) .t-select,.mif-tilda :is(.t-form .js-error-control-box:has(.t-input-block+.t-input-error)) .uploadcare-widget{border:1px solid red!important}.mif-tilda .t-input-group_cb:is(.t-form .js-error-control-box:has(.t-input-block+.t-input-error)) .t-checkbox__control,.mif-tilda .t-input-group_rd:is(.t-form .js-error-control-box:has(.t-input-block+.t-input-error)) .t-input-block,.mif-tilda :is(.t-form .js-error-control-box:has(.t-input-block+.t-input-error)) .t-rate__wrapper{padding:10px}.mif-tilda .t-input-group_cb:is(.t-form .js-error-control-box:has(.t-input-block+.t-input-error)) .t-checkbox__control{border-radius:inherit}.mif-tilda .t-checkbox__labeltext{-webkit-margin-start:10px;margin-inline-start:10px}.mif-tilda .t-form .js-error-control-box .t-checkboxes__wrapper .t-checkbox__control{border:none!important;padding:0}.mif-tilda .t-form .js-error-control-box .t-input.t-input_bbonly{padding-left:10px!important}.mif-tilda .t-form__errorbox-bottom{display:none}.mif-tilda .t-form__errorbox-wrapper{background:#f95d51;margin-bottom:20px;padding:10px;text-align:center}.mif-tilda .t-form__errorbox-text{box-sizing:border-box;color:#fff;list-style:none;padding:0 10px 10px}.mif-tilda #allrecords .t-form__errorbox-text .t-form__errorbox-link{color:#fff}.mif-tilda #allrecords ul.t-form__errorbox-text{list-style:none;margin-bottom:0;padding-left:10px}.mif-tilda #allrecords .t-form__errorbox-text a.t-form__errorbox-item{color:#fff}.mif-tilda .t-form__errorbox-item{display:none;margin-top:10px}.mif-tilda .t-form__errorbox-middle{width:100%}.mif-tilda #allrecords .t-form__errorbox-item .t-form__errorbox-link,.mif-tilda #allrecords .t-form__errorbox-item .t-form__errorbox-link:hover{border-bottom:none;box-shadow:none}.mif-tilda .t-form__successbox{background:#62c584;color:#fff;margin-bottom:20px;padding:20px;text-align:center}.mif-tilda .t-form option{color:#000}@-webkit-keyframes t-submit-spinner{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes t-submit-spinner{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.mif-tilda .t-form__inputsbox_flex .t-form__submit,.mif-tilda .t-form__inputsbox_flex .tn-form__submit{width:100%}.mif-tilda .t-form .t-submit{position:relative}.mif-tilda .t-btn.t-btn_sending,.mif-tilda .t-form .t-submit.t-btn_sending:not(.tn-form__submit-gradient){color:transparent!important}.mif-tilda .t-btn.t-btn_sending:not(.tn-form__submit-gradient):before,.mif-tilda .t-form .t-btn_sending:not(.tn-form__submit-gradient):before{-webkit-animation:t-submit-spinner .6s linear infinite;animation:t-submit-spinner .6s linear infinite;border:2px solid #ccc;border-radius:50%;border-top-color:#333;box-sizing:border-box;content:"";height:30px;left:50%;margin-left:-15px;margin-top:-15px;position:absolute;top:50%;width:30px}.mif-tilda .tn-elem .tn-form__submit .t-submit.tn-form__submit-gradient{overflow:hidden;position:relative;z-index:1}.mif-tilda .tn-elem .tn-form__submit .t-submit.tn-form__submit-gradient:after,.mif-tilda .tn-elem .tn-form__submit .t-submit.tn-form__submit-gradient:before{box-sizing:content-box;content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;transition:opacity .2s ease-in-out;width:100%}.mif-tilda .tn-elem .tn-form__submit .t-submit.tn-form__submit-gradient:before{background-color:transparent;opacity:1;z-index:-2}.mif-tilda .tn-elem .tn-form__submit .t-submit.tn-form__submit-gradient:after{background-image:none;opacity:0;z-index:-1}.mif-tilda .tn-elem .tn-form__submit .t-submit.tn-form__submit-gradient:hover:after{opacity:1}.mif-tilda .tn-atom .t-input__own-answer-wrapper{-ms-flex-align:end;-webkit-align-items:flex-end;align-items:flex-end;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:10px;margin-bottom:10px}.mif-tilda .tn-atom .t-input__own-answer-wrapper.t-input__own-answer-wrapper-checkbox{margin-top:10px}.mif-tilda .t-input-block_rd-flex .t-input__own-answer-wrapper{width:100%}.mif-tilda .tn-atom .t-input-block_rd-flex .t-input__own-answer-wrapper{width:auto}.mif-tilda .tn-atom .t-input__own-answer-wrapper .t-checkbox__control,.mif-tilda .tn-atom .t-input__own-answer-wrapper .t-radio__control{-ms-flex-align:center;-ms-flex-negative:0;-webkit-align-items:center;align-items:center;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-shrink:0;flex-shrink:0;margin:0;padding-bottom:4px}.mif-tilda .tn-atom .t-input__own-answer{border-bottom:1px solid #000;box-sizing:content-box;display:none;height:20px;padding-bottom:3px}.mif-tilda .tn-atom .t-input__own-answer--active{display:block}.mif-tilda .t-checkboxes__wrapper_button .t-checkboxes__item,.mif-tilda .t-radio__wrapper_button .t-radio__item{-ms-flex-align:center;-webkit-align-items:center;align-items:center;border:1px solid #000;box-sizing:border-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:60px;padding:0 15px}.mif-tilda .t-input-group_rd .t-checkbox__control,.mif-tilda .t-input-group_rd .t-radio__item{-ms-flex-align:center;-webkit-align-items:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:10px;width:100%}.mif-tilda .t-input-group_rd .t-checkbox__control .t-checkbox__indicator,.mif-tilda .t-input-group_rd .t-radio__item .t-radio__indicator{margin-right:0}.mif-tilda .t-input-group_rd .t-checkbox__control{height:100%;width:100%}.mif-tilda .t-input-group_rd .t-input-block_rd-flex .t-checkbox__control,.mif-tilda .t-input-group_rd .t-input__own-answer-wrapper .t-checkbox__control{height:auto;width:auto}.mif-tilda .t-checkboxes__wrapper_button .t-ownvariant-wrapper_flex .t-t-checkbox__control,.mif-tilda .t-radio__wrapper_button .t-ownvariant-wrapper_flex .t-radio__control{margin:0}.mif-tilda .t-checkboxes__wrapper_button .t-ownvariant-wrapper_flex .t-input-ownanswer,.mif-tilda .t-radio__wrapper_button .t-ownvariant-wrapper_flex .t-input-ownanswer{border:none}.mif-tilda .t-ownvariant-wrapper_flex.t-checkboxes__ownvariant_withlabel,.mif-tilda .t-ownvariant-wrapper_flex.t-radio__ownvariant_withlabel{-webkit-column-gap:unset;column-gap:unset}.mif-tilda .t-ownvariant-wrapper_flex.t-checkboxes__ownvariant_withlabel .t-checkbox__control,.mif-tilda .t-ownvariant-wrapper_flex.t-radio__ownvariant_withlabel .t-radio__control{-ms-flex-align:center;-webkit-align-items:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:10px;width:100%}.mif-tilda .t-checkboxes__ownvariant_withlabel .t-checkbox__ownvariant-input-wrapper,.mif-tilda .t-radio__ownvariant_withlabel .t-radio__ownvariant-input-wrapper{-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-column-gap:10px;column-gap:10px;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.mif-tilda .t-checkboxes__ownvariant_withlabel .t-checkbox__title,.mif-tilda .t-radio__ownvariant_withlabel .t-radio__title{-ms-flex-negative:0;-webkit-flex-shrink:0;flex-shrink:0}.mif-tilda .t-checkboxes__wrapper_button .t-ownvariant-wrapper_flex .t-input-ownanswer,.mif-tilda .t-radio__wrapper_button .t-ownvariant-wrapper_flex .t-input-ownanswer{padding-bottom:0}.mif-tilda .t-input-ownanswer{text-overflow:ellipsis}.mif-tilda .t-checkboxes__wrapper_button .t-checkboxes__item,.mif-tilda .t-radio__wrapper_button .t-radio__item{margin-bottom:15px}.mif-tilda .t-checkboxes__wrapper_button .t-checkboxes__item:last-of-type,.mif-tilda .t-radio__wrapper_button .t-radio__ownvariant-wrapper:last-of-type{margin-bottom:0}.mif-tilda .t-input-block_rd-width25 .t-ownvariant-wrapper_flex.t-checkboxes__ownvariant_withlabel .t-checkbox__ownvariant-input-wrapper,.mif-tilda .t-input-block_rd-width25 .t-ownvariant-wrapper_flex.t-radio__ownvariant_withlabel .t-radio__ownvariant-input-wrapper,.mif-tilda .t-input-block_rd-width33 .t-ownvariant-wrapper_flex.t-checkboxes__ownvariant_withlabel .t-checkbox__ownvariant-input-wrapper,.mif-tilda .t-input-block_rd-width33 .t-ownvariant-wrapper_flex.t-radio__ownvariant_withlabel .t-radio__ownvariant-input-wrapper{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.mif-tilda .t-input-block_rd-width25 .t-ownvariant-wrapper_flex.t-checkboxes__ownvariant_withlabel .t-checkbox__title,.mif-tilda .t-input-block_rd-width25 .t-ownvariant-wrapper_flex.t-radio__ownvariant_withlabel .t-radio__title,.mif-tilda .t-input-block_rd-width33 .t-ownvariant-wrapper_flex.t-checkboxes__ownvariant_withlabel .t-checkbox__title,.mif-tilda .t-input-block_rd-width33 .t-ownvariant-wrapper_flex.t-radio__ownvariant_withlabel .t-radio__title{-ms-flex-negative:1;-webkit-flex-shrink:1;flex-shrink:1}.mif-tilda .t-form__hidden,.mif-tilda [data-hidden-by-condition=true]{display:none!important}@media screen and (max-width:479px){.mif-tilda .t-input-block_rd-width25 .t-ownvariant-wrapper_flex.t-checkboxes__ownvariant_withlabel .t-checkbox__ownvariant-input-wrapper,.mif-tilda .t-input-block_rd-width25 .t-ownvariant-wrapper_flex.t-radio__ownvariant_withlabel .t-radio__ownvariant-input-wrapper,.mif-tilda .t-input-block_rd-width33 .t-ownvariant-wrapper_flex.t-checkboxes__ownvariant_withlabel .t-checkbox__ownvariant-input-wrapper,.mif-tilda .t-input-block_rd-width33 .t-ownvariant-wrapper_flex.t-radio__ownvariant_withlabel .t-radio__ownvariant-input-wrapper{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.mif-tilda .t-input-block_rd-width25 .t-ownvariant-wrapper_flex.t-checkboxes__ownvariant_withlabel .t-checkbox__title,.mif-tilda .t-input-block_rd-width25 .t-ownvariant-wrapper_flex.t-radio__ownvariant_withlabel .t-radio__title,.mif-tilda .t-input-block_rd-width33 .t-ownvariant-wrapper_flex.t-checkboxes__ownvariant_withlabel .t-checkbox__title,.mif-tilda .t-input-block_rd-width33 .t-ownvariant-wrapper_flex.t-radio__ownvariant_withlabel .t-radio__title{-ms-flex-negative:0;-webkit-flex-shrink:0;flex-shrink:0}} @-webkit-keyframes hide{0%{opacity:1}to{opacity:0}}@keyframes hide{0%{opacity:1}to{opacity:0}}.mif-tilda .t-body_scroll-locked{position:fixed;left:0;width:100%}.mif-tilda .t-zoomer__show_fixed{height:100vh;max-height:100vh;max-width:100%;overflow:hidden}.mif-tilda .t-zoomer__wrapper{position:fixed;top:0;left:0;right:0;bottom:0;z-index:-1;opacity:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-user-select:none;-ms-user-select:none;user-select:none;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out}.mif-tilda .t-zoomer__show .zoomer-no-scale .t-carousel__zoomer__inner{cursor:default}.mif-tilda .t-zoomer__show .t-zoomer__wrapper{z-index:9999999;opacity:1}.mif-tilda .t-zoomer__container{text-align:center;top:0}.mif-tilda .t-zoomer__bg,.mif-tilda .t-zoomer__container{position:absolute;right:0;bottom:0;left:0}.mif-tilda .t-zoomer__bg{top:0;background:#fff;cursor:zoom-in}.mif-tilda .t-zoomer__comments{display:block;height:auto;padding:14px;text-align:center;max-width:700px;box-sizing:border-box;margin:0 auto;-webkit-transform:translate3d(0,0,0)}.mif-tilda .t-zoomer__descr{z-index:3}.mif-tilda .t-zoomable,.mif-tilda .t-zoomer__show .t-carousel__zoomer__inner,.mif-tilda .t-zoomer__show .t-zoomable{cursor:zoom-in}.mif-tilda .t-zoomer__container{z-index:99999999}.mif-tilda .t-carousel__zoomed,.mif-tilda .t-carousel__zoomer__slides{position:absolute;top:0;right:0;bottom:0;left:0}.mif-tilda .t-carousel__zoomer__inner{position:absolute;top:15px;right:15px;bottom:15px;left:15px;overflow:hidden}.mif-tilda .t-carousel__zoomer__item,.mif-tilda .t-carousel__zoomer__track{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.mif-tilda .t-carousel__zoomer__track{position:absolute;top:0;bottom:0;transition-property:transform;transition-property:transform,-webkit-transform;transition-duration:.25s;transition-timing-function:cubic-bezier(.29,.39,.2,.96);-webkit-backface-visibility:hidden;-webkit-transform-style:preserve-3d}.mif-tilda .t-carousel__zoomer__item{width:100vw;height:100%;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.mif-tilda .t-carousel__zoomer__img{display:block;max-width:100%;max-height:calc(100vh - 30px);object-fit:contain;margin:auto;overflow:auto;-webkit-transform:none;-webkit-backface-visibility:hidden}.mif-tilda .t-zoomer__close{width:auto;height:auto;right:10px;top:10px;padding:10px;display:-ms-flexbox;display:-webkit-flex;display:flex;position:fixed;cursor:pointer;transition:opacity ease-in-out .3s;z-index:999999999999}.mif-tilda .t-zoomer__close:hover{opacity:.7}.mif-tilda .t-zoomer__close-line{position:absolute;left:15px;height:26px;width:2px;background-color:#222}.mif-tilda .t-zoomer__close-line-first{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.mif-tilda .t-zoomer__close-line-second{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.mif-tilda .t-carousel__zoomer__control{position:absolute;top:50px;bottom:50px;left:0;width:15%;transition:opacity ease-in-out .3s;cursor:pointer;z-index:99}.mif-tilda .t-carousel__zoomer__control_right{left:auto;right:0}.mif-tilda .t-carousel__zoomer__control:hover{opacity:.6}.mif-tilda .t-carousel__zoomer__arrow{width:18px;height:18px;background:0 0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.mif-tilda .t-carousel__zoomer__arrow__wrapper{-webkit-transform:translateY(-50%);transform:translateY(-50%) scale(.8);position:absolute;top:50%}.mif-tilda .t-carousel__zoomer__arrow_right{border-top:2px solid;border-right:2px solid}.mif-tilda .t-carousel__zoomer__arrow_left{border-left:2px solid;border-bottom:2px solid}.mif-tilda img.t-carousel__zoomer__img.ui-draggable.ui-draggable-handle{cursor:grab}.mif-tilda .t-carousel__zoomer__arrow__wrapper:before{content:'';width:26px;height:26px;position:absolute;background:rgba(255,255,255,.3);border-radius:50%;padding:10px;top:calc(50% - 23px)}.mif-tilda .t-carousel__zoomer__arrow__wrapper_dark:before{background:rgba(1,1,1,.3)}.mif-tilda .t-carousel__zoomer__arrow__wrapper.t-carousel__zoomer__arrow__wrapper_left:before{left:calc(50% - 26px)}.mif-tilda .t-carousel__zoomer__arrow__wrapper.t-carousel__zoomer__arrow__wrapper_right:before{right:calc(50% - 26px)}.mif-tilda .scale-active .t-carousel__zoomer__img{max-height:inherit;max-width:inherit;top:unset;right:unset;bottom:unset;left:unset;cursor:zoom-out}.mif-tilda .scale-active .t-carousel__zoomer__inner{top:0;right:0;bottom:0;left:0}.mif-tilda .scale-active .t-carousel__zoomer__control{height:15%;margin:auto}.mif-tilda .t-zoomer__scale.showed{position:fixed;right:65px;top:10px;padding:10px;cursor:pointer;transition:opacity ease-in-out .3s;z-index:999999999;display:none}.mif-tilda .scale-active .t-carousel__zoomer__item.active,.mif-tilda .t-zoomer__scale.showed .icon-increase{display:block}.mif-tilda .scale-active .t-carousel__zoomer__img{position:absolute}.mif-tilda .scale-active .t-carousel__zoomer__item,.mif-tilda .scale-active .t-zoomer__scale.showed .icon-increase,.mif-tilda .t-zoomer__scale.showed .icon-decrease{display:none}.mif-tilda .scale-active .t-zoomer__scale.showed .icon-decrease{display:block}.mif-tilda .t-zoomer__close,.mif-tilda .t-zoomer__scale.showed{background:rgba(255,255,255,.3);border-radius:50%}.mif-tilda .t-carousel__zoomer__arrow__wrapper_right{right:20px}.mif-tilda .t-carousel__zoomer__arrow__wrapper_left{left:20px}.mif-tilda .t-zoomer__scale:hover{opacity:.7}.mif-tilda .t-zoomer__hide-animation{-webkit-animation-name:hide;animation-name:hide;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-delay:3s;animation-delay:3s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.mif-tilda .t-zoomer__title{font-size:16px;font-weight:400}@media screen and (max-width:1200px){.mif-tilda .t-zoomer__title{font-size:14px}}@media screen and (max-width:640px){.mif-tilda .t-zoomer__title{font-size:12px}}@media screen and (max-width:768px){.mif-tilda .t-carousel__zoomer__inner{top:0;right:0;bottom:0;left:0}.mif-tilda .t-carousel__zoomer__control .t-carousel__zoomer__arrow{width:10px;height:10px}.mif-tilda .t-carousel__zoomer-control{width:10%}.mif-tilda .t-carousel__zoomer__arrow__left{left:15px}.mif-tilda .t-carousel__zoomer__arrow__right{right:15px}.mif-tilda .t-carousel__zoomer__arrow__wrapper:before,.mif-tilda .t-carousel__zoomer__arrow__wrapper_dark:before{width:18px;height:18px;top:calc(50% - 19px)}.mif-tilda .t-carousel__zoomer__arrow__wrapper.t-carousel__zoomer__arrow__wrapper_left:before{left:calc(50% - 21px)}.mif-tilda .t-carousel__zoomer__arrow__wrapper.t-carousel__zoomer__arrow__wrapper_right:before{right:calc(50% - 21px)}}.mif-tilda .t-carousel__zoomer__item-innactive .t-carousel__zoomer__wrapper{display:none}@supports (-webkit-overflow-scrolling:touch){.mif-tilda .t-carousel__zoomer__img{object-fit:contain}} .mif-tilda .t-store .t-store__filter__item_custom .t-store__filter__checkmark{box-sizing:border-box;display:block;position:relative}.mif-tilda .t-store .t-store__filter__item_custom .t-store__filter__checkbox{display:-webkit-flex;display:-ms-flexbox;display:flex}.mif-tilda .t-store .t-store__filter__item_custom .t-store__filter__checkbox .t-store__filter__checkmark{-ms-flex-negative:0;-webkit-flex-shrink:0;flex-shrink:0}.mif-tilda .t-store .t-store__filter__item_custom .t-store__filter__checkbox_buttons .t-store__filter__title_color,.mif-tilda .t-store .t-store__filter__item_custom .t-store__filter__custom-sel_buttons .t-store__filter__title_color{display:none}.mif-tilda .t-store .t-store__filter__item-controls-container_buttons .t-store__filter__checkbox_color:hover .t-store__filter__title_color{background-color:#000;border-radius:4px;bottom:36px;color:#fff;display:block;padding:4px 10px;position:absolute;-webkit-transform:translateX(calc(-50% + 17px));transform:translateX(calc(-50% + 17px))}.mif-tilda .t-store .t-store__filter__item-controls-container_buttons .t-store__filter__checkbox_color:hover .t-store__filter__title_color:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000;bottom:-4px;content:"";display:block;height:0;left:calc(50% - 5px);position:absolute;width:0}.mif-tilda .t-store .t-store__filter__item_custom .t-store__filter__custom-sel.t-store__filter__custom-sel_color{background-color:unset}.mif-tilda .t-store .t-store__filter__item_custom .t-store__filter__checkmark_radio,.mif-tilda .t-store .t-store__filter__item_custom .t-store__filter__checkmark_select{background-color:unset!important}.mif-tilda .t-checkbox__control{cursor:pointer;display:block;position:relative}.mif-tilda .t-checkbox__control .t-checkbox{opacity:0;position:absolute;z-index:-1}.mif-tilda .t-store .t-checkbox__indicator{border:2px solid #000;box-sizing:border-box;display:inline-block;height:20px;margin-right:10px;opacity:.6;position:relative;transition:all .2s;vertical-align:middle;width:20px}.mif-tilda .t-store .t-checkbox__indicator:after{border:solid #000;border-width:0 2px 2px 0;content:"";display:none;height:8px;left:6px;position:absolute;top:2px;-webkit-transform:rotate(45deg);transform:rotate(45deg);width:3px}.mif-tilda .t-checkbox__control .t-checkbox:checked~.t-checkbox__indicator{opacity:1}.mif-tilda .t-checkbox__control .t-checkbox:checked~.t-checkbox__indicator:after{display:block}.mif-tilda .t-store .t-store__filter__item_buttons.t-store__filter__item_color .t-store__filter__item-controls-wrap{min-width:160px}.mif-tilda .t-store .t-store__filter__item_custom .t-store__filter__item-controls-container_buttons.t-store__filter__item-controls-container_color{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:8px 8px 0}@media screen and (max-width:960px){.mif-tilda .t-store .t-store__filter__item_custom .t-store__filter__item-controls-container_buttons.t-store__filter__item-controls-container_color{padding:0}}.mif-tilda .t-store .t-store__filter__custom-sel_buttons.t-store__filter__custom-sel_color{margin-bottom:8px;padding-bottom:0;padding-right:5px}.mif-tilda .t-store .t-store__filter__item_custom .t-store__filter__checkbox_buttons .t-store__filter__checkmark_color,.mif-tilda .t-store .t-store__filter__item_custom .t-store__filter__custom-sel_buttons .t-store__filter__checkmark_color{background-color:#fff;border:1px solid #ddd;border-radius:50%;height:26px;width:26px}.mif-tilda .t-store .t-store__filter__item_custom .t-store__filter__checkbox_buttons .t-store__filter__checkmark_color{opacity:1}.mif-tilda .t-store .t-store__filter__item_custom .t-store__filter__checkbox_buttons.active .t-store__filter__checkmark_color:after{display:none}.mif-tilda .t-store .t-store__filter__item_custom .t-store__filter__checkbox_buttons.active .t-store__filter__checkmark_color:before,.mif-tilda .t-store .t-store__filter__item_custom .t-store__filter__custom-sel_buttons.active .t-store__filter__checkmark_color:before{border:1px solid rgba(0,0,0,.5);border-radius:50%;content:"";height:calc(100% + 8px);left:-5px;position:absolute;top:-5px;width:calc(100% + 8px)}.mif-tilda .t-store .t-store__filter__checkbox_buttons.t-store__filter__checkbox_color,.mif-tilda .t-store .t-store__filter__checkbox_buttons.t-store__filter__checkbox_color:last-child{margin-bottom:8px}@media screen and (min-width:960px){.mif-tilda .t-store .t-store__filter__checkbox_buttons.t-store__filter__checkbox_color .t-store__filter__checkmark_buttons.t-store__filter__checkmark_color{margin-left:5px;margin-right:5px}}.mif-tilda .t-store__filter{margin-bottom:40px;margin-left:20px;margin-right:20px}.mif-tilda .t-store__grid-cont_col-width_stretch[data-col-gap="0"] .t-store__filter{margin-left:0;margin-right:0}.mif-tilda .t-store__grid-cont_col-width_stretch[data-col-gap="10"] .t-store__filter{margin-left:5px;margin-right:5px}.mif-tilda .t-store__grid-cont_col-width_stretch[data-col-gap="20"] .t-store__filter{margin-left:10px;margin-right:10px}.mif-tilda .t-store__grid-cont_col-width_stretch[data-col-gap="40"] .t-store__filter{margin-left:20px;margin-right:20px}@media screen and (max-width:1200px){.mif-tilda .t-store__grid-cont_col-width_stretch[data-col-gap="40"] .t-store__filter{margin-left:10px;margin-right:10px}}@media screen and (max-width:960px){.mif-tilda .t-store__grid-cont_col-width_stretch[data-col-gap="20"] .t-store__filter{margin-left:5px;margin-right:5px}.mif-tilda .t-store__grid-cont_col-width_stretch[data-col-gap="0"] .t-store__filter.t-store__filter_horiz-on-mobile{margin-left:20px;margin-right:20px}.mif-tilda .t-store__grid-cont_col-width_stretch[data-col-gap="10"] .t-store__filter.t-store__filter_horiz-on-mobile,.mif-tilda .t-store__grid-cont_col-width_stretch[data-col-gap="20"] .t-store__filter.t-store__filter_horiz-on-mobile{margin-left:15px;margin-right:15px}}.mif-tilda .t-store__filter__controls-wrapper{display:table;width:100%}.mif-tilda .t-store__filter__options{display:table-cell}.mif-tilda .t-store__filter__options_center{text-align:center}.mif-tilda .t-store__filter__opts-mob-btn{cursor:pointer;display:none;line-height:24px}.mif-tilda .t-store__filter__opts-mob-btn-icon{margin-right:10px;margin-top:-1px;vertical-align:middle;width:11px}.mif-tilda .t-store__filter__search-mob-btn{cursor:pointer;display:none}.mif-tilda .t-store__filter__search-mob-btn-icon{width:16px}.mif-tilda .t-store__filter__opts-mob-btn.active,.mif-tilda .t-store__filter__search-mob-btn.active{opacity:.5}.mif-tilda .t-store__filter__search-and-sort{display:table-cell;text-align:right;white-space:nowrap}.mif-tilda .t-store__filter__search,.mif-tilda .t-store__filter__sort{display:inline-block;vertical-align:middle}.mif-tilda .t-store__filter__sort{margin-left:20px}.mif-tilda .t-store__search-wrapper{position:relative}.mif-tilda .t-store__search-icon{border-left:1px solid #ddd;bottom:0;cursor:pointer;height:100%;margin:auto;padding-left:7px;padding-right:8px;position:absolute;right:0;top:0;width:13px}@media screen and (min-width:960px){.mif-tilda .t-store__search-close-icon:hover path,.mif-tilda .t-store__search-icon:hover path{fill:#111}.mif-tilda .t951 .t-store__filter__item-controls-wrap{left:0}.mif-tilda .t-store__filter__range{height:30px;margin:0;outline:none;padding:0;pointer-events:none;position:absolute;top:0;width:100%}.mif-tilda .t-store__filter__range_bg{background-color:#7dc3fe;border-radius:4px;height:2px;position:absolute;width:100%;z-index:-1}.mif-tilda .t-store__filter__price-outer,.mif-tilda .t-store__filter__range_bg{top:14px}.mif-tilda .t-store__filter__range,.mif-tilda .t-store__filter__range::-webkit-slider-runnable-track,.mif-tilda .t-store__filter__range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:none;border:none;margin:0;padding:0}.mif-tilda .t-store__filter__range:nth-child(2)::-webkit-slider-runnable-track{background:none}.mif-tilda .t-store__filter__range::-webkit-slider-thumb{background:#fff;border:2px solid rgba(0,0,0,.2);border-radius:25px;cursor:pointer;height:22px;pointer-events:auto;position:relative;width:22px;z-index:1}.mif-tilda .t-store__filter__range::-moz-range-thumb{background:#fff;border:2px solid rgba(0,0,0,.2);border-radius:25px;box-sizing:border-box;cursor:pointer;height:22px;pointer-events:auto;position:relative;width:22px;z-index:1}.mif-tilda .t-store__filter__range::-ms-thumb{background:#fff;border:2px solid rgba(0,0,0,.2);border-radius:25px;box-sizing:border-box;cursor:pointer;height:22px;pointer-events:auto;position:relative;width:22px;z-index:1}.mif-tilda .t-store__filter__range::-webkit-slider-thumb:active{border:2px solid #000}.mif-tilda .t-store__filter__item-price-slider{display:inline-block;height:34px;position:relative;width:100%}.mif-tilda .t-store__filter__price-outer{background-color:#ddd;border-radius:4px;content:"";height:2px;position:absolute;width:1%;z-index:0}.mif-tilda .t-store__filter__price-outer_start{left:0}.mif-tilda .t-store__filter__price-outer_end{right:0}.mif-tilda .t-store__filter__btn-expand{background:none;border:none;border-bottom:1px dashed;cursor:pointer;outline:none;padding:0}.mif-tilda .t-store__filter__btn-expand[data-expanded=yes]{margin-top:5px}.mif-tilda .t-store .t-store__filter__checkbox.t-checkbox__control_hidden,.mif-tilda .t-store .t-store__filter__checkbox.t-store__filter__custom-sel_hidden{display:none}}.mif-tilda .t-store__search-close-icon{bottom:0;cursor:pointer;display:inline;display:none;margin:auto;opacity:.8;padding-left:2px;padding-right:8px;position:absolute;right:28px;top:0}.mif-tilda .t-store__sort-select-wrapper{display:table;position:relative;width:200px}.mif-tilda .t-store__sort-select-wrapper:after{border-color:#000 transparent transparent;border-style:solid;border-width:6px 5px 0;bottom:0;content:" ";height:0;margin:auto;pointer-events:none;position:absolute;right:10px;top:0;width:0}.mif-tilda .t-store__sort-select{-webkit-appearance:none;appearance:none;background:#f8f8f8;border:1px solid #ddd;border-radius:3px;box-sizing:border-box;color:#000;cursor:pointer;outline:none;padding:2px 30px 2px 10px;width:100%}.mif-tilda .t-store__sort-select::-ms-expand{height:0;opacity:0;width:0}.mif-tilda .t-store__filter__item{display:inline-block;margin-bottom:4px;margin-right:20px;position:relative;vertical-align:middle}.mif-tilda .t-store__filter__item.t-store__filter__item_sort-mobile{display:none}.mif-tilda .t-store__filter__item:last-child{margin-right:0}.mif-tilda .t-store__filter__item-title{cursor:pointer;max-width:260px;overflow:hidden;padding-right:14px;position:relative;text-overflow:ellipsis;transition:opacity .1s ease-in}.mif-tilda .t-store__filter__item.active .t-store__filter__item-title{opacity:.5}@media screen and (min-width:960px){.mif-tilda .t-store__filter__item-title:hover{opacity:.5}}.mif-tilda .t-store__filter__item-title:after{border-color:transparent #000 #000 transparent;border-style:solid;border-width:1px;bottom:0;content:" ";height:5px;margin:auto;pointer-events:none;position:absolute;right:1px;top:-2px;-webkit-transform:rotate(45deg);transform:rotate(45deg);width:5px}.mif-tilda .t-store__filter__item-controls-wrap{background-color:#fff;border-radius:3px;box-shadow:0 2px 6px rgba(0,0,0,.2);display:none;left:-10px;margin-top:8px;min-width:160px;position:absolute}.mif-tilda .t-store__filter__item_price .t-store__filter__item-controls-wrap{text-align:left}.mif-tilda .t-store__filter__item_available .t-store__filter__item-controls-wrap,.mif-tilda .t-store__filter__item_price .t-store__filter__item-controls-wrap{min-width:250px;padding:12px 10px}.mif-tilda .t-store__filter__item_checkbox .t-store__filter__item-controls-wrap,.mif-tilda .t-store__filter__item_select .t-store__filter__item-controls-wrap{min-width:200px}.mif-tilda .t-store__filter__item-controls-container{max-height:210px;overflow:auto}.mif-tilda .t-store__filter__item_checkbox .t-store__filter__item-controls-container,.mif-tilda .t-store__filter__item_checkbox.t-store__filter__item_color .t-store__filter__item-controls-container,.mif-tilda .t-store__filter__item_checkbox.t-store__filter__item_select .t-store__filter__item-controls-container{padding:12px 10px}.mif-tilda .t-store__filter__item_select .t-store__filter__item-controls-container{padding:6px 0}.mif-tilda .t-store__filter__item-controls-wrap_left{left:0;-webkit-transform:none;transform:none}.mif-tilda .t-store__filter__item-controls-wrap_right{left:auto;right:0;-webkit-transform:none;transform:none}.mif-tilda .t-store__filter__item.active .t-store__filter__item-controls-wrap{display:block;z-index:10}.mif-tilda .t-store__filter__item .t-checkbox__control{margin-bottom:8px;text-align:left}.mif-tilda .t-store__filter__item .t-checkbox__control:last-child{margin-bottom:0}.mif-tilda .t-store__filter__btn,.mif-tilda .t-store__filter__input{-webkit-appearance:none;appearance:none;background:#f8f8f8;border:1px solid #ddd;box-sizing:border-box;color:#000;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:1.8;min-height:24px;outline:none;padding:0 6px}.mif-tilda .t-store__filter__btn{color:#111;cursor:pointer;padding-left:10px;padding-right:10px}.mif-tilda .t-store__filter__search .t-store__filter__input{border-radius:3px;margin-bottom:0;margin-top:0;padding-left:10px;padding-right:30px;width:150px}.mif-tilda .t-store__filter__search .t-store__filter__input::-webkit-input-placeholder{color:#aaa}.mif-tilda .t-store__filter__custom-sel{cursor:pointer;line-height:1.2;padding:5px 10px;text-align:left}.mif-tilda .t-store__filter__custom-sel.active{background-color:hsla(0,0%,51%,.2)}@media screen and (min-width:960px){.mif-tilda .t-store__filter__custom-sel:hover{background-color:rgba(0,0,0,.1)}}.mif-tilda .t-store__filter__item_price .t-store__filter__input{width:35%}.mif-tilda .t-store__filter__item_price .t-store__filter__btn{float:right;margin-left:10px;padding-left:0;padding-right:0;width:15%}.mif-tilda .t-store__filter__chosen-wrapper{margin-bottom:20px;margin-top:20px}.mif-tilda .t-store__filter__prods-number{margin-bottom:20px}.mif-tilda .t-store__filter__chosen-val{background-color:hsla(0,0%,51%,.2);border-radius:30px;cursor:pointer;display:inline-block;line-height:1.4;margin-bottom:10px;margin-right:10px;max-width:260px;overflow:hidden;padding:2px 8px 3px 22px;position:relative;text-overflow:ellipsis;transition:opacity .1s ease-in;white-space:nowrap}.mif-tilda .t-store__filter__chosen-val:after{bottom:0;content:"✕";font-size:10px;height:10px;left:8px;line-height:1;margin-bottom:auto;margin-right:4px;margin-top:auto;padding:3px;position:absolute;top:0}.mif-tilda .t-store__filter__reset{border-bottom:1px dashed;cursor:pointer;display:none;line-height:1.2;margin-bottom:10px;margin-left:10px;padding-top:4px;transition:opacity .1s ease-in;vertical-align:top}.mif-tilda .t-store__filter__reset_visible{display:inline-block}.mif-tilda .t-store__filter__delimeter{font-family:sans-serif}@media screen and (min-width:960px){.mif-tilda .t-store__filter__chosen-val:hover,.mif-tilda .t-store__filter__reset:hover{opacity:.6}}@media screen and (max-width:1200px){.mif-tilda .t-store__filter{margin-left:10px;margin-right:10px}}@media screen and (max-width:960px){.mif-tilda .t-store__filter__btn-expand,.mif-tilda .t-store__filter__item.active .t-store__filter__item-controls-wrap.t-store__filter__item-price-slider{display:none}.mif-tilda .t-store__filter{margin-left:20px;margin-right:20px}.mif-tilda .t-store__filter__controls-wrapper{-ms-flex-align:center;-webkit-align-items:center;align-items:center;display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.mif-tilda .t-store__filter__opts-mob-btn{-ms-flex-order:1;display:block;-webkit-order:1;order:1}.mif-tilda .t-store__filter__search-mob-btn{-ms-flex-order:2;display:block;margin-left:auto;-webkit-order:2;order:2}.mif-tilda .t-store__filter__options,.mif-tilda .t-store__filter__search-and-sort{-ms-flex-order:3;-ms-flex:0 0 100%;-webkit-flex:0 0 100%;flex:0 0 100%;margin-top:20px;-webkit-order:3;order:3}.mif-tilda .t-store__filter__options,.mif-tilda .t-store__filter__search-and-sort,.mif-tilda .t-store__filter__sort{display:none}.mif-tilda .t-store__filter__options_center{text-align:left}.mif-tilda .t-store__filter__item,.mif-tilda .t-store__filter__item.t-store__filter__item_sort-mobile{border-bottom:1px solid rgba(0,0,0,.2);display:block;margin:0;padding:10px 0}.mif-tilda .t-store__filter__item:first-child{border-top:1px solid rgba(0,0,0,.2)}.mif-tilda .t-store__filter__item-title{max-width:100%;white-space:normal}.mif-tilda .t-store__filter__item-controls-wrap{background-color:transparent;box-shadow:none;position:static}.mif-tilda .t-store__filter__custom-sel,.mif-tilda .t-store__filter__item_available .t-store__filter__item-controls-wrap,.mif-tilda .t-store__filter__item_checkbox .t-store__filter__item-controls-container,.mif-tilda .t-store__filter__item_price .t-store__filter__item-controls-wrap{padding-left:0;padding-right:0}.mif-tilda .t-store__filter__item_price .t-store__filter__item-controls-wrap{text-align:left}.mif-tilda .t-store__filter__item-title:after{right:3px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.mif-tilda .t-store__filter__item.active .t-store__filter__item-title:after{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.mif-tilda .t-store__filter__search{margin-right:0;width:100%}.mif-tilda .t-store__filter__search .t-store__filter__input{padding-right:72px;width:100%}.mif-tilda .t-store__search-icon{padding-left:12px;padding-right:14px}.mif-tilda .t-store__search-close-icon{padding-left:5px;padding-right:14px;right:40px}.mif-tilda .t-store__filter__btn,.mif-tilda .t-store__filter__input{font-size:16px;padding-bottom:2px;padding-top:2px}.mif-tilda .t-store__filter__item_price .t-store__filter__btn{float:none}.mif-tilda .t-store__filter__chosen-val{font-size:14px;padding:3px 12px 4px 26px}.mif-tilda .t-store__filter__chosen-val:after{font-size:16px;height:15px}.mif-tilda .t-store__filter__reset{font-size:14px}.mif-tilda .t1025 .t-store__filter{margin-left:0;margin-right:0}}.mif-tilda .t-store__parts-switch-wrapper{margin-bottom:40px}.mif-tilda .t-store__parts-switch-btn{cursor:pointer;display:inline-block;margin-bottom:10px;margin-left:15px;margin-right:15px;position:relative}.mif-tilda .t-store__parts-switch-btn.t-active{opacity:.7}@media screen and (max-width:1200px){.mif-tilda .t-store__parts-select-wrapper{margin-left:10px}}@media screen and (max-width:960px){.mif-tilda .t-store__relevants-grid-cont.t-store__grid-cont_col-width_stretch.t-store__grid-cont_mobile-one-row .t-store__parts-select-wrapper{margin-left:20px}.mif-tilda .t-store__relevants-grid-cont.t-store__grid-cont_mobile-one-row .t-store__parts-select-wrapper{margin-left:40px}.mif-tilda .t-store__grid-cont_col-width_stretch.t-store__grid-cont_mobile-one-row .t-store__parts-select-wrapper,.mif-tilda .t-store__parts-select-wrapper{margin-left:20px}.mif-tilda .t-store__grid-cont_mobile-one-row .t-store__parts-select-wrapper{margin-left:40px}}@media screen and (max-width:640px){.mif-tilda .t-store__parts-select-wrapper{margin-left:10px}.mif-tilda .t-store__grid-cont_mobile-one-row .t-store__parts-select-wrapper{margin-left:20px}} .mif-tilda #rec788787379 .t396__artboard {height:140px;background-color:#ffffff;}.mif-tilda #rec788787379 .t396__filter {height:140px;}.mif-tilda #rec788787379 .t396__carrier{height:140px;background-position:center center;background-attachment:scroll;background-size:cover;background-repeat:no-repeat;}@media screen and (max-width:1199px) {.mif-tilda #rec788787379 .t396__artboard,.mif-tilda #rec788787379 .t396__filter,.mif-tilda #rec788787379 .t396__carrier {}.mif-tilda #rec788787379 .t396__filter {}.mif-tilda #rec788787379 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:959px) {.mif-tilda #rec788787379 .t396__artboard,.mif-tilda #rec788787379 .t396__filter,.mif-tilda #rec788787379 .t396__carrier {}.mif-tilda #rec788787379 .t396__filter {}.mif-tilda #rec788787379 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:639px) {.mif-tilda #rec788787379 .t396__artboard,.mif-tilda #rec788787379 .t396__filter,.mif-tilda #rec788787379 .t396__carrier {height:120px;}.mif-tilda #rec788787379 .t396__filter {}.mif-tilda #rec788787379 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:479px) {.mif-tilda #rec788787379 .t396__artboard,.mif-tilda #rec788787379 .t396__filter,.mif-tilda #rec788787379 .t396__carrier {height:80px;}.mif-tilda #rec788787379 .t396__filter {}.mif-tilda #rec788787379 .t396__carrier {background-attachment:scroll;}}.mif-tilda #rec788787379 .tn-elem[data-elem-id="1470209944682"]{color:#000000;text-align:center;z-index:2;top:70px;left:calc(50% - 600px + 87px);width:1026px;height:auto;}.mif-tilda #rec788787379 .tn-elem[data-elem-id="1470209944682"] .tn-atom{color:#000000;font-size:100px;font-family:'Circe',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec788787379 .tn-elem[data-elem-id="1724315286539"]{color:#000000;z-index:3;top:31px;left:calc(50% - 600px + 320px);width:289px;height:auto;}.mif-tilda #rec788787379 .tn-elem[data-elem-id="1724315286539"] .tn-atom{color:#000000;font-size:100px;font-family:'Circe',Arial,sans-serif;line-height:1;font-weight:400;letter-spacing:-2px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788787379 .tn-elem[data-elem-id="1724315286539"] {top:33px;left:calc(50% - 480px + 200px);height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec788787379 .tn-elem[data-elem-id="1724315286539"] {top:35px;left:calc(50% - 320px + 0px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec788787379 .tn-elem[data-elem-id="1724315286539"] {top:34px;left:calc(50% - 240px + 1px);height:auto;}.mif-tilda #rec788787379 .tn-elem[data-elem-id="1724315286539"] .tn-atom {white-space:normal;font-size:80px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec788787379 .tn-elem[data-elem-id="1724315286539"] {top:14px;left:calc(50% - 160px + 4px);height:auto;}.mif-tilda #rec788787379 .tn-elem[data-elem-id="1724315286539"] .tn-atom {white-space:normal;font-size:65px;letter-spacing:-2.5px;background-size:cover;}}.mif-tilda #rec788787379 .tn-elem[data-elem-id="1724315300378"]{color:#818181;text-align:left;z-index:4;top:52px;left:calc(50% - 600px + 598px);width:356px;height:87px;}.mif-tilda #rec788787379 .tn-elem[data-elem-id="1724315300378"] .tn-atom{color:#818181;font-size:48px;font-family:'Circe',Arial,sans-serif;line-height:0.35;font-weight:400;letter-spacing:-2px;border-radius:30px;background-position:center center;border-color:transparent ;border-style:solid;transition:background-color 0.2s ease-in-out,color 0.2s ease-in-out,border-color 0.2s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec788787379 .tn-elem[data-elem-id="1724315300378"] .tn-atom:hover {}.mif-tilda #rec788787379 .tn-elem[data-elem-id="1724315300378"] .tn-atom:hover {color:#454545;}}@media screen and (max-width:1199px) {.mif-tilda #rec788787379 .tn-elem[data-elem-id="1724315300378"] {top:54px;left:calc(50% - 480px + 479px);}}@media screen and (max-width:959px) {.mif-tilda #rec788787379 .tn-elem[data-elem-id="1724315300378"] {top:56px;left:calc(50% - 320px + 275px);}}@media screen and (max-width:639px) {.mif-tilda #rec788787379 .tn-elem[data-elem-id="1724315300378"] {top:43px;left:calc(50% - 240px + 219px);}.mif-tilda #rec788787379 .tn-elem[data-elem-id="1724315300378"] .tn-atom{font-size:33px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec788787379 .tn-elem[data-elem-id="1724315300378"] {top:16px;left:calc(50% - 160px + 180px);}.mif-tilda #rec788787379 .tn-elem[data-elem-id="1724315300378"] .tn-atom{font-size:22px;letter-spacing:-1px;background-size:cover;}} .mif-tilda #rec789343240 .t396__artboard {height:40px;background-color:#ffffff;}.mif-tilda #rec789343240 .t396__filter {height:40px;}.mif-tilda #rec789343240 .t396__carrier{height:40px;background-position:center center;background-attachment:scroll;background-size:cover;background-repeat:no-repeat;}@media screen and (max-width:1199px) {.mif-tilda #rec789343240 .t396__artboard,.mif-tilda #rec789343240 .t396__filter,.mif-tilda #rec789343240 .t396__carrier {height:30px;}.mif-tilda #rec789343240 .t396__filter {}.mif-tilda #rec789343240 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:959px) {.mif-tilda #rec789343240 .t396__artboard,.mif-tilda #rec789343240 .t396__filter,.mif-tilda #rec789343240 .t396__carrier {}.mif-tilda #rec789343240 .t396__filter {}.mif-tilda #rec789343240 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:639px) {.mif-tilda #rec789343240 .t396__artboard,.mif-tilda #rec789343240 .t396__filter,.mif-tilda #rec789343240 .t396__carrier {}.mif-tilda #rec789343240 .t396__filter {}.mif-tilda #rec789343240 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:479px) {.mif-tilda #rec789343240 .t396__artboard,.mif-tilda #rec789343240 .t396__filter,.mif-tilda #rec789343240 .t396__carrier {height:40px;}.mif-tilda #rec789343240 .t396__filter {}.mif-tilda #rec789343240 .t396__carrier {background-attachment:scroll;}}.mif-tilda #rec789343240 .tn-elem[data-elem-id="1470209944682"]{color:#000000;text-align:center;z-index:3;top:70px;left:calc(50% - 600px + 87px);width:1026px;height:auto;}.mif-tilda #rec789343240 .tn-elem[data-elem-id="1470209944682"] .tn-atom {vertical-align:middle;color:#000000;font-size:100px;font-family:'Circe',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec789343240 .tn-elem[data-elem-id="1724413355660"]{color:#000000;z-index:4;top:21px;left:calc(50% - 600px + 22px);width:367px;height:auto;}.mif-tilda #rec789343240 .tn-elem[data-elem-id="1724413355660"] .tn-atom {vertical-align:middle;color:#000000;font-size:11px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:2px;text-transform:uppercase;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789343240 .tn-elem[data-elem-id="1724413355660"] {top:11px;left:calc(50% - 480px + 12px);height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec789343240 .tn-elem[data-elem-id="1724413355660"] {top:11px;left:calc(50% - 320px + 10px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789343240 .tn-elem[data-elem-id="1724413355660"] {top:14px;height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789343240 .tn-elem[data-elem-id="1724413355660"] {top:23px;left:calc(50% - 160px + 11px);height:auto;}.mif-tilda #rec789343240 .tn-elem[data-elem-id="1724413355660"] .tn-atom {white-space:normal;font-size:11px;background-size:cover;}} .mif-tilda #rec789366057 .t107 .t-img{border-radius:26px;} .mif-tilda #rec787911525 .t107 .t-img{border-radius:12px;}@media (max-width:480px){.mif-tilda #rec787911525 .t107 .t-img{border-radius:12px;}} .mif-tilda #rec790164042 .t396__artboard {height:590px;background-color:#ffffff;}.mif-tilda #rec790164042 .t396__filter {height:590px;}.mif-tilda #rec790164042 .t396__carrier{height:590px;background-position:center center;background-attachment:scroll;background-size:cover;background-repeat:no-repeat;}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .t396__artboard,.mif-tilda #rec790164042 .t396__filter,.mif-tilda #rec790164042 .t396__carrier {height:540px;}.mif-tilda #rec790164042 .t396__filter {}.mif-tilda #rec790164042 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .t396__artboard,.mif-tilda #rec790164042 .t396__filter,.mif-tilda #rec790164042 .t396__carrier {height:390px;}.mif-tilda #rec790164042 .t396__filter {}.mif-tilda #rec790164042 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .t396__artboard,.mif-tilda #rec790164042 .t396__filter,.mif-tilda #rec790164042 .t396__carrier {height:360px;}.mif-tilda #rec790164042 .t396__filter {}.mif-tilda #rec790164042 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .t396__artboard,.mif-tilda #rec790164042 .t396__filter,.mif-tilda #rec790164042 .t396__carrier {height:800px;}.mif-tilda #rec790164042 .t396__filter {}.mif-tilda #rec790164042 .t396__carrier {background-attachment:scroll;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1470209944682"]{color:#000000;text-align:center;z-index:2;top:70px;left:calc(50% - 600px + 87px);width:1026px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1470209944682"] .tn-atom{color:#000000;font-size:100px;font-family:'Circe',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331222900"]{color:#ffffff;text-align:center;z-index:3;top:36px;left:calc(50% - 600px + 20px);width:380px;height:250px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331222900"] .tn-atom{color:#ffffff;font-size:14px;font-family:'Circe',Arial,sans-serif;line-height:1.55;font-weight:600;border-radius:26px;background-color:#efefef;background-position:center center;border-color:transparent ;border-style:solid;transition:background-color 0.15s ease-in-out,color 0.15s ease-in-out,border-color 0.15s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331222900"] .tn-atom:hover {background-color:#f3ecfd;background-image:none;}}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331222900"] {top:26px;left:calc(50% - 480px + 10px);width:310px;height:220px;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331222900"] {top:15px;left:calc(50% - 320px + 9px);width:202px;height:167px;border-radius:21px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331222900"] .tn-atom {background-size:cover;border-radius:21px;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331222900"] {top:15px;width:150px;height:158px;border-radius:18px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331222900"] .tn-atom {background-size:cover;border-radius:18px;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331222900"] {top:5px;left:calc(50% - 160px + -11px);width:170px;height:182px;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959483"]{z-index:4;top:148px;left:calc(50% - 600px + 256px);width:188px;height:auto;pointer-events:none;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959483"] .tn-atom{background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959483"] .tn-atom {-webkit-transform:rotate(344deg);-moz-transform:rotate(344deg);transform:rotate(344deg);}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959483"] .tn-atom__img {}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959483"] {top:147px;left:calc(50% - 480px + 199px);width:150px;height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959483"] {top:69px;left:calc(50% - 320px + 136px);width:114px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959483"] .tn-atom {background-size:cover;-webkit-transform:rotate(3deg);-moz-transform:rotate(3deg);transform:rotate(3deg);}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959483"] {top:86px;left:calc(50% - 240px + 100px);width:96px;height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959483"] {top:134px;left:calc(50% - 160px + -1px);width:109px;height:auto;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331283520"]{color:#ffffff;text-align:center;z-index:5;top:35px;left:calc(50% - 600px + 410px);width:380px;height:250px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331283520"] .tn-atom{color:#ffffff;font-size:14px;font-family:'Circe',Arial,sans-serif;line-height:1.55;font-weight:600;border-radius:26px;background-color:#efefef;background-position:center center;border-color:transparent ;border-style:solid;transition:background-color 0.15s ease-in-out,color 0.15s ease-in-out,border-color 0.15s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331283520"] .tn-atom:hover {background-color:#f3ecfd;background-image:none;}}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331283520"] {top:25px;left:calc(50% - 480px + 326px);width:310px;height:220px;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331283520"] {top:15px;left:calc(50% - 320px + 218px);width:202px;height:167px;border-radius:21px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331283520"] .tn-atom {background-size:cover;border-radius:21px;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331283520"] {top:15px;left:calc(50% - 240px + 166px);width:150px;height:158px;border-radius:18px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331283520"] .tn-atom {background-size:cover;border-radius:18px;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331283520"] {top:5px;left:calc(50% - 160px + 161px);width:170px;height:182px;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959487"]{z-index:6;top:153px;left:calc(50% - 600px + 607px);width:230px;height:auto;pointer-events:none;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959487"] .tn-atom{background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959487"] .tn-atom__img {}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959487"] {top:150px;left:calc(50% - 480px + 499px);width:169px;height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959487"] {top:90px;left:calc(50% - 320px + 330px);width:121px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959487"] .tn-atom {background-size:cover;-webkit-transform:rotate(345deg);-moz-transform:rotate(345deg);transform:rotate(345deg);}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959487"] {top:106px;left:calc(50% - 240px + 244px);width:104px;height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959487"] {top:133px;left:calc(50% - 160px + 169px);width:112px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959487"] .tn-atom {background-size:cover;-webkit-transform:rotate(32deg);-moz-transform:rotate(32deg);transform:rotate(32deg);}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331285895"]{color:#ffffff;text-align:center;z-index:7;top:35px;left:calc(50% - 600px + 800px);width:380px;height:250px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331285895"] .tn-atom{color:#ffffff;font-size:14px;font-family:'Circe',Arial,sans-serif;line-height:1.55;font-weight:600;border-radius:26px;background-color:#efefef;background-position:center center;border-color:transparent ;border-style:solid;transition:background-color 0.15s ease-in-out,color 0.15s ease-in-out,border-color 0.15s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331285895"] .tn-atom:hover {background-color:#f3ecfd;background-image:none;}}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331285895"] {top:25px;left:calc(50% - 480px + 642px);width:310px;height:220px;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331285895"] {top:13px;left:calc(50% - 320px + 428px);width:202px;height:167px;border-radius:21px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331285895"] .tn-atom {background-size:cover;border-radius:21px;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331285895"] {top:15px;left:calc(50% - 240px + 322px);width:150px;height:158px;border-radius:18px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331285895"] .tn-atom {background-size:cover;border-radius:18px;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331285895"] {top:195px;left:calc(50% - 160px + -11px);width:170px;height:182px;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959489"]{z-index:8;top:117px;left:calc(50% - 600px + 1036px);width:138px;height:auto;pointer-events:none;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959489"] .tn-atom{background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959489"] .tn-atom__img {}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959489"] {top:121px;left:calc(50% - 480px + 833px);width:97px;height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959489"] {top:71px;left:calc(50% - 320px + 567px);width:73px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959489"] {top:85px;left:calc(50% - 240px + 425px);width:58px;height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959489"] {top:313px;left:calc(50% - 160px + 5px);width:65px;height:auto;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331291437"]{color:#ffffff;text-align:center;z-index:9;top:300px;left:calc(50% - 600px + 20px);width:380px;height:250px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331291437"] .tn-atom{color:#ffffff;font-size:14px;font-family:'Circe',Arial,sans-serif;line-height:1.55;font-weight:600;border-radius:26px;background-color:#efefef;background-position:center center;border-color:transparent ;border-style:solid;transition:background-color 0.15s ease-in-out,color 0.15s ease-in-out,border-color 0.15s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331291437"] .tn-atom:hover {background-color:#f3ecfd;background-image:none;}}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331291437"] {top:255px;left:calc(50% - 480px + 10px);width:310px;height:220px;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331291437"] {top:193px;left:calc(50% - 320px + 9px);width:202px;height:167px;border-radius:21px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331291437"] .tn-atom {background-size:cover;border-radius:21px;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331291437"] {top:179px;left:calc(50% - 240px + 10px);width:150px;height:158px;border-radius:18px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331291437"] .tn-atom {background-size:cover;border-radius:18px;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331291437"] {top:195px;left:calc(50% - 160px + 161px);width:170px;height:182px;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959491"]{z-index:10;top:383px;left:calc(50% - 600px + 245px);width:135px;height:auto;pointer-events:none;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959491"] .tn-atom{background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959491"] .tn-atom__img {}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959491"] {top:337px;left:calc(50% - 480px + 186px);width:113px;height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959491"] {top:246px;left:calc(50% - 320px + 119px);width:80px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959491"] {top:239px;left:calc(50% - 240px + 90px);width:64px;height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959491"] {top:301px;left:calc(50% - 160px + 172px);width:71px;height:auto;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331291439"]{color:#ffffff;text-align:center;z-index:11;top:300px;left:calc(50% - 600px + 410px);width:380px;height:250px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331291439"] .tn-atom{color:#ffffff;font-size:14px;font-family:'Circe',Arial,sans-serif;line-height:1.55;font-weight:600;border-radius:26px;background-color:#efefef;background-position:center center;border-color:transparent ;border-style:solid;transition:background-color 0.15s ease-in-out,color 0.15s ease-in-out,border-color 0.15s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331291439"] .tn-atom:hover {background-color:#f3ecfd;background-image:none;}}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331291439"] {top:255px;left:calc(50% - 480px + 326px);width:310px;height:220px;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331291439"] {top:193px;left:calc(50% - 320px + 218px);width:202px;height:167px;border-radius:21px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331291439"] .tn-atom {background-size:cover;border-radius:21px;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331291439"] {top:179px;left:calc(50% - 240px + 166px);width:150px;height:158px;border-radius:18px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331291439"] .tn-atom {background-size:cover;border-radius:18px;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331291439"] {top:384px;left:calc(50% - 160px + -11px);width:340px;height:102px;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959493"]{z-index:12;top:389px;left:calc(50% - 600px + 642px);width:138px;height:auto;pointer-events:none;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959493"] .tn-atom{background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959493"] .tn-atom {-webkit-transform:rotate(356deg);-moz-transform:rotate(356deg);transform:rotate(356deg);}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959493"] .tn-atom__img {}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959493"] {top:346px;left:calc(50% - 480px + 521px);width:112px;height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959493"] {top:255px;left:calc(50% - 320px + 341px);width:86px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959493"] .tn-atom {background-size:cover;-webkit-transform:rotate(342deg);-moz-transform:rotate(342deg);transform:rotate(342deg);}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959493"] {top:258px;left:calc(50% - 240px + 255px);width:61px;height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724330959493"] {top:410px;left:calc(50% - 160px + 217px);width:70px;height:auto;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321528206"]{z-index:13;top:292px;left:calc(50% - 600px + 800px);width:380px;height:240px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321528206"] .tn-atom {border-radius:26px;background-color:#f4eff8;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321528206"] {top:246px;left:calc(50% - 480px + 646px);width:308px;height:197px;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321528206"] {top:199px;left:calc(50% - 320px + 428px);width:202px;height:154px;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321528206"] {top:182px;left:calc(50% - 240px + 322px);width:150px;height:140px;border-radius:18px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321528206"] .tn-atom {background-size:cover;border-radius:18px;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321528206"] {top:466px;left:calc(50% - 160px + 0px);width:320px;height:241px;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724421489627"]{z-index:14;top:299px;left:calc(50% - 600px + 800px);width:380px;height:250px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724421489627"] .tn-atom{border-width:2px;border-radius:26px;background-position:center center;border-color:#efefef ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724421489627"] {top:255px;left:calc(50% - 480px + 642px);width:310px;height:220px;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724421489627"] {top:193px;left:calc(50% - 320px + 428px);width:202px;height:167px;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724421489627"] {top:179px;left:calc(50% - 240px + 322px);width:150px;height:158px;border-radius:18px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724421489627"] .tn-atom {background-size:cover;border-radius:18px;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724421489627"] {top:509px;left:calc(50% - 160px + -11px);width:341px;height:265px;border-radius:18px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724421489627"] .tn-atom{background-color:#faf9fc;background-size:cover;border-width:0px;border-radius:18px;border-color:#f3f3f3;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724315836050"]{color:#000000;z-index:15;top:58px;left:calc(50% - 600px + 46px);width:239px;height:auto;pointer-events:none;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724315836050"] .tn-atom{color:#000000;font-size:39px;font-family:'Circe',Arial,sans-serif;line-height:0.9;font-weight:400;letter-spacing:-1px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724315836050"] {top:46px;left:calc(50% - 480px + 31px);width:216px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724315836050"] .tn-atom {white-space:normal;font-size:37px;line-height:0.9;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724315836050"] {top:33px;left:calc(50% - 320px + 22px);width:140px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724315836050"] .tn-atom {white-space:normal;font-size:25px;letter-spacing:-1px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724315836050"] {top:30px;left:calc(50% - 240px + 21px);width:107px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724315836050"] .tn-atom {white-space:normal;font-size:20px;letter-spacing:-1px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724315836050"] {top:21px;left:calc(50% - 160px + 3px);width:142px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724315836050"] .tn-atom {white-space:normal;font-size:24px;line-height:0.9;letter-spacing:-1px;background-size:cover;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321314106"]{color:#000000;z-index:16;top:58px;left:calc(50% - 600px + 435px);width:199px;height:auto;pointer-events:none;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321314106"] .tn-atom{color:#000000;font-size:39px;font-family:'Circe',Arial,sans-serif;line-height:0.9;font-weight:400;letter-spacing:-1px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321314106"] {top:46px;left:calc(50% - 480px + 349px);width:167px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321314106"] .tn-atom {white-space:normal;font-size:37px;line-height:0.9;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321314106"] {top:33px;left:calc(50% - 320px + 231px);width:135px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321314106"] .tn-atom {white-space:normal;font-size:25px;letter-spacing:-1px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321314106"] {top:30px;left:calc(50% - 240px + 177px);width:103px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321314106"] .tn-atom {white-space:normal;font-size:20px;letter-spacing:-1px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321314106"] {top:22px;left:calc(50% - 160px + 174px);width:143px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321314106"] .tn-atom {white-space:normal;font-size:24px;line-height:0.9;letter-spacing:-1px;background-size:cover;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321326224"]{color:#000000;z-index:17;top:58px;left:calc(50% - 600px + 825px);width:204px;height:auto;pointer-events:none;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321326224"] .tn-atom{color:#000000;font-size:39px;font-family:'Circe',Arial,sans-serif;line-height:0.9;font-weight:400;letter-spacing:-1px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321326224"] {top:46px;left:calc(50% - 480px + 668px);width:167px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321326224"] .tn-atom {white-space:normal;font-size:37px;line-height:0.9;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321326224"] {top:32px;left:calc(50% - 320px + 441px);width:111px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321326224"] .tn-atom {white-space:normal;font-size:25px;letter-spacing:-1px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321326224"] {top:30px;left:calc(50% - 240px + 333px);width:84px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321326224"] .tn-atom {white-space:normal;font-size:20px;letter-spacing:-1px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321326224"] {top:210px;left:calc(50% - 160px + 3px);width:153px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321326224"] .tn-atom {white-space:normal;font-size:24px;line-height:0.9;letter-spacing:-1px;background-size:cover;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321336722"]{color:#000000;z-index:18;top:325px;left:calc(50% - 600px + 46px);width:281px;height:auto;pointer-events:none;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321336722"] .tn-atom{color:#000000;font-size:39px;font-family:'Circe',Arial,sans-serif;line-height:0.9;font-weight:400;letter-spacing:-1px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321336722"] {top:277px;left:calc(50% - 480px + 31px);width:230px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321336722"] .tn-atom {white-space:normal;font-size:37px;line-height:0.9;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321336722"] {top:211px;left:calc(50% - 320px + 22px);width:140px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321336722"] .tn-atom {white-space:normal;font-size:25px;letter-spacing:-1px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321336722"] {top:198px;left:calc(50% - 240px + 21px);width:104px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321336722"] .tn-atom {white-space:normal;font-size:20px;letter-spacing:-1px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321336722"] {top:211px;left:calc(50% - 160px + 174px);width:118px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321336722"] .tn-atom {white-space:normal;font-size:24px;line-height:0.9;letter-spacing:-1px;background-size:cover;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321342436"]{color:#000000;z-index:19;top:325px;left:calc(50% - 600px + 436px);width:281px;height:auto;pointer-events:none;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321342436"] .tn-atom{color:#000000;font-size:39px;font-family:'Circe',Arial,sans-serif;line-height:0.9;font-weight:400;letter-spacing:-1px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321342436"] {top:277px;left:calc(50% - 480px + 350px);width:230px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321342436"] .tn-atom {white-space:normal;font-size:37px;line-height:0.9;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321342436"] {top:211px;left:calc(50% - 320px + 231px);width:140px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321342436"] .tn-atom {white-space:normal;font-size:25px;letter-spacing:-1px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321342436"] {top:198px;left:calc(50% - 240px + 177px);width:104px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321342436"] .tn-atom {white-space:normal;font-size:20px;letter-spacing:-1px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321342436"] {top:400px;left:calc(50% - 160px + 3px);width:127px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724321342436"] .tn-atom {white-space:normal;font-size:24px;line-height:0.9;letter-spacing:-1px;background-size:cover;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724322643507"]{z-index:20;top:65px;left:calc(50% - 600px + 742px);width:28px;height:auto;pointer-events:none;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724322643507"] .tn-atom{background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724322643507"] .tn-atom__img {}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724322643507"] {top:53px;left:calc(50% - 480px + 600px);width:20px;height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724322643507"] {top:35px;left:calc(50% - 320px + 385px);width:20px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724322643507"] {top:33px;left:calc(50% - 240px + 285px);width:20px;height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724322643507"] {top:156px;left:calc(50% - 160px + 295px);width:20px;height:auto;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324491843"]{z-index:21;top:65px;left:calc(50% - 600px + 351px);width:28px;height:auto;pointer-events:none;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324491843"] .tn-atom{background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324491843"] .tn-atom__img {}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324491843"] {top:53px;left:calc(50% - 480px + 281px);width:20px;height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324491843"] {top:35px;left:calc(50% - 320px + 178px);width:20px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324491843"] {top:33px;left:calc(50% - 240px + 127px);width:20px;height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324491843"] {top:156px;left:calc(50% - 160px + 125px);width:20px;height:auto;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324501103"]{z-index:22;top:335px;left:calc(50% - 600px + 351px);width:28px;height:auto;pointer-events:none;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324501103"] .tn-atom{background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324501103"] .tn-atom__img {}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324501103"] {top:285px;left:calc(50% - 480px + 281px);width:20px;height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324501103"] {top:217px;left:calc(50% - 320px + 178px);width:20px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324501103"] {top:200px;left:calc(50% - 240px + 127px);width:20px;height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324501103"] {top:346px;left:calc(50% - 160px + 295px);width:20px;height:auto;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324513392"]{z-index:23;top:335px;left:calc(50% - 600px + 742px);width:28px;height:auto;pointer-events:none;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324513392"] .tn-atom{background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324513392"] .tn-atom__img {}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324513392"] {top:285px;left:calc(50% - 480px + 600px);width:20px;height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324513392"] {top:217px;left:calc(50% - 320px + 385px);width:20px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324513392"] {top:200px;left:calc(50% - 240px + 288px);width:20px;height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324513392"] {top:449px;left:calc(50% - 160px + 295px);width:20px;height:auto;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324521304"]{z-index:24;top:65px;left:calc(50% - 600px + 1132px);width:28px;height:auto;pointer-events:none;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324521304"] .tn-atom{background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324521304"] .tn-atom__img {}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324521304"] {top:53px;left:calc(50% - 480px + 919px);width:20px;height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324521304"] {top:35px;left:calc(50% - 320px + 596px);width:20px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324521304"] {top:33px;left:calc(50% - 240px + 440px);width:20px;height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324521304"] {top:344px;left:calc(50% - 160px + 125px);width:20px;height:auto;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724326804014"]{z-index:25;top:478px;left:calc(50% - 600px + 1032px);width:55px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724326804014"] .tn-atom{background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724326804014"] .tn-atom__img {}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724326804014"] {top:419px;left:calc(50% - 480px + 875px);width:45px;height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724326804014"] {top:315px;left:calc(50% - 320px + 594px);width:36px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724326804014"] {top:285px;left:calc(50% - 240px + 424px);width:45px;height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724326804014"] {top:693px;left:calc(50% - 160px + 186px);width:59px;height:auto;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324540341"]{color:#000000;z-index:26;top:217px;left:calc(50% - 600px + 47px);width:209px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324540341"] .tn-atom{color:#000000;font-size:17px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;opacity:0.3;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324540341"] {top:169px;left:calc(50% - 480px + 34px);width:159px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324540341"] .tn-atom {white-space:normal;font-size:15px;line-height:1.1;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324540341"] {top:126px;left:calc(50% - 320px + 22px);width:125px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324540341"] .tn-atom {white-space:normal;font-size:13px;line-height:1.1;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324540341"] {top:107px;left:calc(50% - 240px + 21px);width:100px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324540341"] .tn-atom {white-space:normal;font-size:13px;line-height:1.05;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324540341"] {top:72px;left:calc(50% - 160px + 3px);width:147px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324540341"] .tn-atom {white-space:normal;font-size:15px;line-height:1.05;letter-spacing:-0.5px;background-size:cover;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324542464"]{color:#000000;z-index:27;top:362px;left:calc(50% - 600px + 47px);width:42px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324542464"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;opacity:0.5;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324542464"] {top:407px;left:calc(50% - 480px + 33px);width:34px;height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324542464"] {top:318px;left:calc(50% - 320px + 28px);width:21px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324542464"] {top:291px;left:calc(50% - 240px + 21px);width:20px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324542464"] .tn-atom {white-space:normal;font-size:16px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324542464"] {top:318px;left:calc(50% - 160px + 173px);width:21px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324542464"] .tn-atom {white-space:normal;font-size:14px;background-size:cover;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324548058"]{color:#000000;z-index:28;top:359px;left:calc(50% - 600px + 438px);width:42px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324548058"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;opacity:0.4;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324548058"] {top:406px;left:calc(50% - 480px + 352px);width:34px;height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324548058"] {top:321px;left:calc(50% - 320px + 237px);width:21px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324548058"] {top:291px;left:calc(50% - 240px + 177px);width:19px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324548058"] .tn-atom {white-space:normal;font-size:16px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324548058"] {top:422px;left:calc(50% - 160px + 12px);width:20px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324548058"] .tn-atom {white-space:normal;font-size:14px;background-size:cover;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324552327"]{color:#000000;z-index:29;top:139px;left:calc(50% - 600px + 827px);width:42px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324552327"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;opacity:0.4;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324552327"] {top:196px;left:calc(50% - 480px + 670px);width:34px;height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324552327"] {top:150px;left:calc(50% - 320px + 443px);width:21px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324552327"] {top:143px;left:calc(50% - 240px + 334px);width:20px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324552327"] .tn-atom {white-space:normal;font-size:16px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324552327"] {top:318px;left:calc(50% - 160px + 12px);width:21px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324552327"] .tn-atom {white-space:normal;font-size:14px;background-size:cover;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724322665120"]{color:#000000;z-index:30;top:139px;left:calc(50% - 600px + 438px);width:42px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724322665120"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;opacity:0.4;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724322665120"] {top:196px;left:calc(50% - 480px + 352px);width:34px;height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724322665120"] {top:153px;left:calc(50% - 320px + 237px);width:21px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724322665120"] {top:143px;left:calc(50% - 240px + 177px);width:20px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724322665120"] .tn-atom {white-space:normal;font-size:16px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724322665120"] {top:145px;left:calc(50% - 160px + 173px);width:21px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724322665120"] .tn-atom {white-space:normal;font-size:14px;background-size:cover;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324491846"]{z-index:31;top:209px;left:calc(50% - 600px + 49px);width:48px;height:1px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324491846"] .tn-atom{border-width:0px;opacity:0.3;background-color:#000000;background-position:center center;border-color:transparent ;border-style:dotted;}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324491846"] {top:188px;left:calc(50% - 480px + 34px);width:39px;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324491846"] {top:153px;left:calc(50% - 320px + 24px);width:24px;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324491846"] {top:77px;left:calc(50% - 240px + 21px);width:18px;}}@media screen and (max-width:479px) {}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724348547270"]{z-index:32;top:221px;left:calc(50% - 600px + 435px);width:48px;height:1px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724348547270"] .tn-atom{border-width:0px;opacity:0.3;background-color:#000000;background-position:center center;border-color:transparent ;border-style:dotted;}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724348547270"] {top:188px;left:calc(50% - 480px + 349px);width:39px;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724348547270"] {top:153px;left:calc(50% - 320px + 237px);width:24px;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724348547270"] {top:-106px;left:calc(50% - 240px + 239px);width:18px;}}@media screen and (max-width:479px) {}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724348564667"]{z-index:33;top:480px;left:calc(50% - 600px + 49px);width:48px;height:1px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724348564667"] .tn-atom{border-width:0px;opacity:0.3;background-color:#000000;background-position:center center;border-color:transparent ;border-style:dotted;}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724348564667"] {top:400px;left:calc(50% - 480px + 34px);width:39px;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724348564667"] {top:319px;left:calc(50% - 320px + 30px);width:24px;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724348564667"] {top:-27px;left:calc(50% - 240px + 89px);width:18px;}}@media screen and (max-width:479px) {}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724348564663"]{z-index:34;top:480px;left:calc(50% - 600px + 435px);width:48px;height:1px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724348564663"] .tn-atom{border-width:0px;opacity:0.3;background-color:#000000;background-position:center center;border-color:transparent ;border-style:dotted;}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724348564663"] {top:400px;left:calc(50% - 480px + 349px);width:39px;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724348564663"] {top:321px;left:calc(50% - 320px + 234px);width:24px;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724348564663"] {top:-32px;left:calc(50% - 240px + 238px);width:18px;}}@media screen and (max-width:479px) {}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724348579777"]{z-index:35;top:221px;left:calc(50% - 600px + 825px);width:48px;height:1px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724348579777"] .tn-atom{border-width:0px;opacity:0.3;background-color:#000000;background-position:center center;border-color:transparent ;border-style:dotted;}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724348579777"] {top:188px;left:calc(50% - 480px + 668px);width:39px;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724348579777"] {top:153px;left:calc(50% - 320px + 442px);width:24px;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724348579777"] {top:-122px;left:calc(50% - 240px + 413px);width:18px;}}@media screen and (max-width:479px) {}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324521277"]{z-index:36;top:200px;left:calc(50% - 600px + 905px);width:42px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324521277"] .tn-atom {border-radius:8px;background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324521277"] .tn-atom__img {border-radius:8px;}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324521263"]{z-index:37;top:152px;left:calc(50% - 600px + 928px);width:52px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324521263"] .tn-atom {border-radius:8px;background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724324521263"] .tn-atom__img {border-radius:8px;}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724404402201"]{z-index:38;top:185px;left:calc(50% - 600px + 958px);width:52px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724404402201"] .tn-atom {border-radius:8px;background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724404402201"] .tn-atom__img {border-radius:8px;}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724406563982"]{color:#000000;z-index:39;top:138px;left:calc(50% - 600px + 48px);width:42px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724406563982"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;opacity:0.5;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724406563982"] {top:135px;left:calc(50% - 480px + 36px);width:34px;height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724406563982"] {top:153px;left:calc(50% - 320px + 28px);width:21px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724406563982"] {top:143px;left:calc(50% - 240px + 21px);width:19px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724406563982"] .tn-atom {white-space:normal;font-size:16px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724406563982"] {top:37px;left:calc(50% - 160px + 128px);width:20px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724406563982"] .tn-atom {white-space:normal;font-size:14px;background-size:cover;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419887631"]{color:#000000;z-index:40;top:483px;left:calc(50% - 600px + 47px);width:189px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419887631"] .tn-atom{color:#000000;font-size:17px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;opacity:0.3;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419887631"] {top:416px;left:calc(50% - 480px + 34px);width:154px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419887631"] .tn-atom {white-space:normal;font-size:15px;line-height:1.1;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419887631"] {top:316px;left:calc(50% - 320px + 22px);width:110px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419887631"] .tn-atom {white-space:normal;font-size:13px;line-height:1.1;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419887631"] {top:273px;left:calc(50% - 240px + 21px);width:92px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419887631"] .tn-atom {white-space:normal;font-size:13px;line-height:1.05;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419887631"] {top:238px;left:calc(50% - 160px + 175px);width:136px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419887631"] .tn-atom {white-space:normal;font-size:15px;line-height:1.05;letter-spacing:-0.5px;background-size:cover;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419892562"]{color:#000000;z-index:41;top:483px;left:calc(50% - 600px + 445px);width:169px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419892562"] .tn-atom{color:#000000;font-size:17px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;opacity:0.3;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419892562"] {top:416px;left:calc(50% - 480px + 352px);width:166px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419892562"] .tn-atom {white-space:normal;font-size:15px;line-height:1.1;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419892562"] {top:316px;left:calc(50% - 320px + 231px);width:136px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419892562"] .tn-atom {white-space:normal;font-size:13px;line-height:1.1;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419892562"] {top:273px;left:calc(50% - 240px + 177px);width:86px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419892562"] .tn-atom {white-space:normal;font-size:13px;line-height:1.05;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419892562"] {top:427px;left:calc(50% - 160px + 3px);width:205px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419892562"] .tn-atom {white-space:normal;font-size:15px;line-height:1.05;letter-spacing:-0.5px;background-size:cover;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419896403"]{color:#000000;z-index:42;top:217px;left:calc(50% - 600px + 437px);width:162px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419896403"] .tn-atom{color:#000000;font-size:17px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;opacity:0.3;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419896403"] {top:186px;left:calc(50% - 480px + 349px);width:161px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419896403"] .tn-atom {white-space:normal;font-size:15px;line-height:1.1;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419896403"] {top:140px;left:calc(50% - 320px + 231px);width:121px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419896403"] .tn-atom {white-space:normal;font-size:13px;line-height:1.1;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419896403"] {top:107px;left:calc(50% - 240px + 177px);width:19px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419896403"] .tn-atom {white-space:normal;font-size:13px;line-height:1.05;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419896403"] {top:72px;left:calc(50% - 160px + 175px);width:141px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419896403"] .tn-atom {white-space:normal;font-size:15px;line-height:1.05;letter-spacing:-0.5px;background-size:cover;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419900762"]{color:#000000;z-index:43;top:217px;left:calc(50% - 600px + 825px);width:199px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419900762"] .tn-atom{color:#000000;font-size:17px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;opacity:0.3;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419900762"] {top:186px;left:calc(50% - 480px + 668px);width:156px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419900762"] .tn-atom {white-space:normal;font-size:15px;line-height:1.1;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419900762"] {top:140px;left:calc(50% - 320px + 441px);width:126px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419900762"] .tn-atom {white-space:normal;font-size:13px;line-height:1.1;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419900762"] {top:107px;left:calc(50% - 240px + 334px);width:19px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419900762"] .tn-atom {white-space:normal;font-size:13px;line-height:1.05;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419900762"] {top:259px;left:calc(50% - 160px + 3px);width:153px;height:auto;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724419900762"] .tn-atom {white-space:normal;font-size:15px;line-height:1.05;letter-spacing:-0.5px;background-size:cover;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331476067"]{color:#323232;text-align:left;z-index:44;top:317px;left:calc(50% - 600px + 826px);width:247px;height:37px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331476067"] .tn-atom{color:#323232;font-size:23px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-1px;border-radius:30px;background-position:center center;border-color:transparent ;border-style:solid;transition:background-color 0.15s ease-in-out,color 0.15s ease-in-out,border-color 0.15s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331476067"] .tn-atom:hover {}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331476067"] .tn-atom:hover {color:#916bc1;}}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331476067"] {top:271px;left:calc(50% - 480px + 671px);width:234px;height:30px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331476067"] .tn-atom{font-size:22px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331476067"] {top:204px;left:calc(50% - 320px + 446px);width:184px;height:26px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331476067"] .tn-atom{font-size:17px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331476067"] {top:192px;left:calc(50% - 240px + 334px);width:167px;height:22px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331476067"] .tn-atom{font-size:14px;letter-spacing:-1px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331476067"] {top:527px;left:calc(50% - 160px + 9px);width:275px;height:40px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331476067"] .tn-atom{font-size:21px;letter-spacing:-1.5px;background-size:cover;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331518974"]{color:#323232;text-align:left;z-index:45;top:351px;left:calc(50% - 600px + 826px);width:256px;height:37px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331518974"] .tn-atom{color:#323232;font-size:23px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-1px;border-radius:30px;background-position:center center;border-color:transparent ;border-style:solid;transition:background-color 0.15s ease-in-out,color 0.15s ease-in-out,border-color 0.15s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331518974"] .tn-atom:hover {}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331518974"] .tn-atom:hover {color:#916bc1;}}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331518974"] {top:303px;left:calc(50% - 480px + 671px);width:257px;height:30px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331518974"] .tn-atom{font-size:22px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331518974"] {top:228px;left:calc(50% - 320px + 446px);width:155px;height:26px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331518974"] .tn-atom{font-size:17px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331518974"] {top:215px;left:calc(50% - 240px + 334px);width:261px;height:22px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331518974"] .tn-atom{font-size:14px;letter-spacing:-1px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331518974"] {top:562px;left:calc(50% - 160px + 9px);width:275px;height:40px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331518974"] .tn-atom{font-size:21px;letter-spacing:-1.5px;background-size:cover;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331523334"]{color:#323232;text-align:left;z-index:46;top:386px;left:calc(50% - 600px + 826px);width:200px;height:37px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331523334"] .tn-atom{color:#323232;font-size:23px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-1px;border-radius:30px;background-position:center center;border-color:transparent ;border-style:solid;transition:background-color 0.15s ease-in-out,color 0.15s ease-in-out,border-color 0.15s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331523334"] .tn-atom:hover {}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331523334"] .tn-atom:hover {color:#916bc1;}}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331523334"] {top:336px;left:calc(50% - 480px + 671px);width:257px;height:30px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331523334"] .tn-atom{font-size:22px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331523334"] {top:252px;left:calc(50% - 320px + 446px);width:155px;height:26px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331523334"] .tn-atom{font-size:17px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331523334"] {top:238px;left:calc(50% - 240px + 334px);width:261px;height:22px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331523334"] .tn-atom{font-size:14px;letter-spacing:-1px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331523334"] {top:598px;left:calc(50% - 160px + 9px);width:244px;height:40px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331523334"] .tn-atom{font-size:21px;letter-spacing:-1.5px;background-size:cover;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331524578"]{color:#323232;text-align:left;z-index:47;top:421px;left:calc(50% - 600px + 826px);width:216px;height:36px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331524578"] .tn-atom{color:#323232;font-size:23px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-1px;border-radius:30px;background-position:center center;border-color:transparent ;border-style:solid;transition:background-color 0.15s ease-in-out,color 0.15s ease-in-out,border-color 0.15s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331524578"] .tn-atom:hover {}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331524578"] .tn-atom:hover {color:#916bc1;}}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331524578"] {top:367px;left:calc(50% - 480px + 671px);width:234px;height:30px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331524578"] .tn-atom{font-size:22px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331524578"] {top:276px;left:calc(50% - 320px + 446px);width:155px;height:25px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331524578"] .tn-atom{font-size:17px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331524578"] {top:261px;left:calc(50% - 240px + 334px);width:237px;height:22px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331524578"] .tn-atom{font-size:14px;letter-spacing:-1px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331524578"] {top:633px;left:calc(50% - 160px + 9px);width:250px;height:40px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331524578"] .tn-atom{font-size:21px;letter-spacing:-1.5px;background-size:cover;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331525976"]{color:#323232;text-align:left;z-index:48;top:456px;left:calc(50% - 600px + 826px);width:188px;height:36px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331525976"] .tn-atom{color:#323232;font-size:23px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-1px;border-radius:30px;background-position:center center;border-color:transparent ;border-style:solid;transition:background-color 0.15s ease-in-out,color 0.15s ease-in-out,border-color 0.15s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331525976"] .tn-atom:hover {}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331525976"] .tn-atom:hover {color:#916bc1;}}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331525976"] {top:400px;left:calc(50% - 480px + 671px);width:154px;height:29px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331525976"] .tn-atom{font-size:22px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331525976"] {top:300px;left:calc(50% - 320px + 446px);width:100px;height:26px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331525976"] .tn-atom{font-size:17px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331525976"] {top:284px;left:calc(50% - 240px + 334px);width:187px;height:22px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331525976"] .tn-atom{font-size:14px;letter-spacing:-1px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331525976"] {top:669px;left:calc(50% - 160px + 9px);width:197px;height:40px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724331525976"] .tn-atom{font-size:21px;letter-spacing:-1.5px;background-size:cover;}}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724760830164"]{color:#323232;text-align:left;z-index:49;top:490px;left:calc(50% - 600px + 826px);width:254px;height:35px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724760830164"] .tn-atom{color:#323232;font-size:23px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-1px;border-radius:30px;background-position:center center;border-color:transparent ;border-style:solid;transition:background-color 0.15s ease-in-out,color 0.15s ease-in-out,border-color 0.15s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724760830164"] .tn-atom:hover {}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724760830164"] .tn-atom:hover {color:#916bc1;}}@media screen and (max-width:1199px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724760830164"] {top:430px;left:calc(50% - 480px + 671px);width:241px;height:28px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724760830164"] .tn-atom{font-size:22px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724760830164"] {top:324px;left:calc(50% - 320px + 446px);width:177px;height:25px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724760830164"] .tn-atom{font-size:17px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724760830164"] {top:304px;left:calc(50% - 240px + 334px);width:187px;height:22px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724760830164"] .tn-atom{font-size:14px;letter-spacing:-1px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724760830164"] {top:705px;left:calc(50% - 160px + 9px);width:294px;height:40px;}.mif-tilda #rec790164042 .tn-elem[data-elem-id="1724760830164"] .tn-atom{font-size:21px;letter-spacing:-1.5px;background-size:cover;}} .mif-tilda #rec788844612 .t396__artboard {height:470px;background-color:#ffffff;}.mif-tilda #rec788844612 .t396__filter {height:470px;}.mif-tilda #rec788844612 .t396__carrier{height:470px;background-position:center center;background-attachment:scroll;background-size:cover;background-repeat:no-repeat;}@media screen and (max-width:1199px) {.mif-tilda #rec788844612 .t396__artboard,.mif-tilda #rec788844612 .t396__filter,.mif-tilda #rec788844612 .t396__carrier {height:430px;}.mif-tilda #rec788844612 .t396__filter {}.mif-tilda #rec788844612 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:959px) {.mif-tilda #rec788844612 .t396__artboard,.mif-tilda #rec788844612 .t396__filter,.mif-tilda #rec788844612 .t396__carrier {height:400px;}.mif-tilda #rec788844612 .t396__filter {}.mif-tilda #rec788844612 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:639px) {.mif-tilda #rec788844612 .t396__artboard,.mif-tilda #rec788844612 .t396__filter,.mif-tilda #rec788844612 .t396__carrier {height:480px;}.mif-tilda #rec788844612 .t396__filter {}.mif-tilda #rec788844612 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:479px) {.mif-tilda #rec788844612 .t396__artboard,.mif-tilda #rec788844612 .t396__filter,.mif-tilda #rec788844612 .t396__carrier {height:680px;}.mif-tilda #rec788844612 .t396__filter {}.mif-tilda #rec788844612 .t396__carrier {background-attachment:scroll;}}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1470209944682"]{color:#000000;text-align:center;z-index:3;top:70px;left:calc(50% - 600px + 87px);width:1026px;height:auto;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1470209944682"] .tn-atom {vertical-align:middle;color:#000000;font-size:100px;font-family:'Circe',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724315608201"]{z-index:4;top:0px;left:calc(50% - 600px + 0px);width:1200px;height:auto;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724315608201"] .tn-atom {border-radius:0px 0px 0px 0px;background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724315608201"] .tn-atom__img {border-radius:0px 0px 0px 0px;object-position:center center;}@media screen and (max-width:1199px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724315608201"] {height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724315608201"] {height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724315608201"] {height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724315608201"] {height:auto;}}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724315791161"]{z-index:5;top:8px;left:calc(50% - 600px + 20px);width:1144px;height:1px;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724315791161"] .tn-atom {border-radius:0px 0px 0px 0px;background-color:#e6e6e6;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724315791161"] {width:917px;}}@media screen and (max-width:959px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724315791161"] {left:calc(50% - 320px + 9px);width:611px;}}@media screen and (max-width:639px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724315791161"] {width:461px;}}@media screen and (max-width:479px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724315791161"] {width:300px;}}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724315836050"]{color:#000000;z-index:6;top:52px;left:calc(50% - 600px + 20px);width:637px;height:auto;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724315836050"] .tn-atom {vertical-align:middle;color:#000000;font-size:43px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-2.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724315836050"] {top:52px;left:calc(50% - 480px + 20px);width:496px;height:auto;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724315836050"] .tn-atom {white-space:normal;font-size:37px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724315836050"] {top:42px;left:calc(50% - 320px + 9px);width:386px;height:auto;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724315836050"] .tn-atom {white-space:normal;font-size:31px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724315836050"] {width:465px;height:auto;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724315836050"] .tn-atom {white-space:normal;font-size:31px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724315836050"] {top:41px;width:300px;height:auto;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724315836050"] .tn-atom {white-space:normal;font-size:31px;line-height:1.05;letter-spacing:-2px;background-size:cover;}}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316075002"]{color:#000000;z-index:7;top:56px;left:calc(50% - 600px + 780px);width:202px;height:auto;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316075002"] .tn-atom {vertical-align:middle;color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-1px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316075002"] {left:calc(50% - 480px + 570px);height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316075002"] {top:48px;left:calc(50% - 320px + 441px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316075002"] {top:238px;left:calc(50% - 240px + 10px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316075002"] {top:373px;left:calc(50% - 160px + 9px);width:301px;height:auto;}}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316118169"]{color:#000000;z-index:8;top:56px;left:calc(50% - 600px + 1063px);width:107px;height:auto;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316118169"] .tn-atom {vertical-align:middle;color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-1px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316118169"] {left:calc(50% - 480px + 823px);height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316118169"] {top:132px;left:calc(50% - 320px + 441px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316118169"] {top:238px;left:calc(50% - 240px + 265px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316118169"] {top:432px;left:calc(50% - 160px + 134px);height:auto;}}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316139122"]{color:#000000;z-index:9;top:387px;left:calc(50% - 600px + 748px);width:298px;height:auto;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316139122"] .tn-atom {vertical-align:middle;color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-1px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316139122"] {top:347px;left:calc(50% - 480px + 505px);height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316139122"] {top:255px;left:calc(50% - 320px + 441px);width:168px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316139122"] {top:328px;left:calc(50% - 240px + 265px);width:143px;height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316139122"] {top:509px;left:calc(50% - 160px + 10px);width:299px;height:auto;}}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316285874"]{color:#ffffff;text-align:center;z-index:10;top:377px;left:calc(50% - 600px + 1030px);width:151px;height:41px;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316285874"] .tn-atom{color:#ffffff;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.55;font-weight:400;letter-spacing:-0.5px;border-radius:8px 8px 8px 8px;background-color:#000000;background-position:center center;border-color:transparent ;border-style:solid;transition:background-color 0.2s ease-in-out,color 0.2s ease-in-out,border-color 0.2s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316285874"] .tn-atom:hover {background-color:#5c5c5c;background-image:none;}}@media screen and (max-width:1199px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316285874"] {top:337px;left:calc(50% - 480px + 782px);width:153px;}}@media screen and (max-width:959px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316285874"] {top:306px;left:calc(50% - 320px + 441px);width:184px;}}@media screen and (max-width:639px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316285874"] {top:377px;left:calc(50% - 240px + 265px);width:206px;}}@media screen and (max-width:479px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316285874"] {top:539px;left:calc(50% - 160px + 10px);width:300px;height:47px;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316285874"] .tn-atom{font-size:17px;background-size:cover;}}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316433953"]{color:#000000;z-index:11;top:397px;left:calc(50% - 600px + 63px);width:25px;height:auto;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316433953"] .tn-atom{color:#000000;font-size:14px;font-family:'Circe',Arial,sans-serif;line-height:1.4;font-weight:400;background-color:#ff7300;background-position:center center;border-color:transparent ;border-style:solid ;box-shadow:0px 0px 20px 0px rgba(0,0,0,0.3);}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316433953"] .tn-atom__tip{background-color:#ffffff;border-radius:10px;box-shadow:0px 0px 15px 0px rgba(0,0,0,0.3);width:280px;}@media screen and (max-width:1199px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316433953"] {height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316433953"] {height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316433953"] {height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316433953"] {height:auto;}}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316566856"]{color:#7259a4;text-align:center;z-index:12;top:236px;left:calc(50% - 600px + 451px);width:123px;height:55px;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316566856"] .tn-atom{color:#7259a4;font-size:43px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-2.5px;border-radius:30px 30px 30px 30px;background-position:center center;border-color:transparent ;border-style:solid;transition:background-color 0.2s ease-in-out,color 0.2s ease-in-out,border-color 0.2s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316566856"] .tn-atom:hover {}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316566856"] .tn-atom:hover {color:#9680c0;}}@media screen and (max-width:1199px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316566856"] {top:210px;left:calc(50% - 480px + 375px);}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316566856"] .tn-atom{font-size:37px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316566856"] {top:168px;left:calc(50% - 320px + 286px);}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316566856"] .tn-atom{font-size:31px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316566856"] {top:167px;left:calc(50% - 240px + 104px);}}@media screen and (max-width:479px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316566856"] {top:261px;left:calc(50% - 160px + 32px);}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724316566856"] .tn-atom{font-size:31px;line-height:1.05;letter-spacing:-2px;background-size:cover;}}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318804546"]{color:#7259a4;text-align:center;z-index:13;top:284px;left:calc(50% - 600px + 13px);width:123px;height:55px;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318804546"] .tn-atom{color:#7259a4;font-size:43px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-2.5px;border-radius:30px 30px 30px 30px;background-position:center center;border-color:transparent ;border-style:solid;transition:background-color 0.2s ease-in-out,color 0.2s ease-in-out,border-color 0.2s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318804546"] .tn-atom:hover {}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318804546"] .tn-atom:hover {color:#9680c0;}}@media screen and (max-width:1199px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318804546"] {top:250px;left:calc(50% - 480px + 10px);}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318804546"] .tn-atom{font-size:37px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318804546"] {top:200px;left:calc(50% - 320px + -12px);}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318804546"] .tn-atom{font-size:31px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318804546"] {top:167px;left:calc(50% - 240px + 189px);}}@media screen and (max-width:479px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318804546"] {top:261px;left:calc(50% - 160px + 122px);}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318804546"] .tn-atom{font-size:31px;line-height:1.05;letter-spacing:-2px;background-size:cover;}}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318815889"]{color:#7259a4;text-align:center;z-index:14;top:284px;left:calc(50% - 600px + 174px);width:123px;height:55px;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318815889"] .tn-atom{color:#7259a4;font-size:43px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-2.5px;border-radius:30px 30px 30px 30px;background-position:center center;border-color:transparent ;border-style:solid;transition:background-color 0.2s ease-in-out,color 0.2s ease-in-out,border-color 0.2s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318815889"] .tn-atom:hover {}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318815889"] .tn-atom:hover {color:#9680c0;}}@media screen and (max-width:1199px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318815889"] {top:250px;left:calc(50% - 480px + 151px);}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318815889"] .tn-atom{font-size:37px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318815889"] {top:201px;left:calc(50% - 320px + 106px);}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318815889"] .tn-atom{font-size:31px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318815889"] {top:167px;left:calc(50% - 240px + 299px);}}@media screen and (max-width:479px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318815889"] {top:294px;left:calc(50% - 160px + 12px);}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318815889"] .tn-atom{font-size:31px;line-height:1.05;letter-spacing:-2px;background-size:cover;}}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318825788"]{color:#000000;z-index:15;top:287px;left:calc(50% - 600px + 144px);width:42px;height:auto;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318825788"] .tn-atom {vertical-align:middle;color:#000000;font-size:43px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-2.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318825788"] {top:257px;left:calc(50% - 480px + 131px);height:auto;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318825788"] .tn-atom {white-space:normal;font-size:38px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318825788"] {top:211px;left:calc(50% - 320px + 100px);height:auto;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318825788"] .tn-atom {white-space:normal;font-size:31px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318825788"] {top:178px;left:calc(50% - 240px + 299px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318825788"] {top:305px;left:calc(50% - 160px + 9px);height:auto;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724318825788"] .tn-atom {white-space:normal;font-size:31px;line-height:1.05;background-size:cover;}}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724319114002"]{color:#000000;z-index:16;top:387px;left:calc(50% - 600px + 19px);width:328px;height:auto;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724319114002"] .tn-atom {vertical-align:middle;color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724319114002"] {top:347px;height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724319114002"] {top:317px;left:calc(50% - 320px + 9px);height:auto;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724319114002"] .tn-atom {white-space:normal;letter-spacing:-1.5px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724319114002"] {top:387px;left:calc(50% - 240px + 10px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724319114002"] {top:619px;left:calc(50% - 160px + 10px);width:305px;height:auto;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724319114002"] .tn-atom {white-space:normal;letter-spacing:-0.5px;background-size:cover;}}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724319395295"]{z-index:17;top:378px;left:calc(50% - 600px + 613px);width:38px;height:auto;}@media (min-width:1200px) {.mif-tilda #rec788844612 .tn-elem.t396__elem--anim-hidden[data-elem-id="1724319395295"] {opacity:0;}}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724319395295"] .tn-atom {border-radius:0px 0px 0px 0px;background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724319395295"] .tn-atom__img {border-radius:0px 0px 0px 0px;object-position:center center;}@media screen and (max-width:1199px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724319395295"] {top:338px;left:calc(50% - 480px + 350px);height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724319395295"] {top:307px;left:calc(50% - 320px + 298px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724319395295"] {top:333px;left:calc(50% - 240px + 10px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724319395295"] {top:429px;left:calc(50% - 160px + 10px);width:44px;height:auto;}}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724319517474"]{z-index:18;top:378px;left:calc(50% - 600px + 659px);width:39px;height:auto;}@media (min-width:1200px) {.mif-tilda #rec788844612 .tn-elem.t396__elem--anim-hidden[data-elem-id="1724319517474"] {opacity:0;}}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724319517474"] .tn-atom {border-radius:0px 0px 0px 0px;background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724319517474"] .tn-atom__img {border-radius:0px 0px 0px 0px;object-position:center center;}@media screen and (max-width:1199px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724319517474"] {top:338px;left:calc(50% - 480px + 396px);height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724319517474"] {top:307px;left:calc(50% - 320px + 344px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724319517474"] {top:333px;left:calc(50% - 240px + 56px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724319517474"] {top:429px;left:calc(50% - 160px + 69px);width:46px;height:auto;}}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724333060627"]{z-index:19;top:458px;left:calc(50% - 600px + 20px);width:1144px;height:1px;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724333060627"] .tn-atom {border-radius:0px 0px 0px 0px;background-color:#e6e6e6;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724333060627"] {top:412px;width:917px;}}@media screen and (max-width:959px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724333060627"] {top:382px;left:calc(50% - 320px + 9px);width:611px;}}@media screen and (max-width:639px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724333060627"] {top:447px;width:461px;}}@media screen and (max-width:479px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1724333060627"] {top:651px;width:300px;}}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1740991648444"]{z-index:20;top:50px;left:calc(50% - 600px + 1191px);width:232px;height:79px;}.mif-tilda #rec788844612 .tn-elem[data-elem-id="1740991648444"] .tn-atom{background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1740991648444"] {top:91px;left:calc(50% - 480px + 960px);}}@media screen and (max-width:959px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1740991648444"] {top:41px;left:calc(50% - 320px + 643px);}}@media screen and (max-width:639px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1740991648444"] {top:32px;left:calc(50% - 240px + 502px);}}@media screen and (max-width:479px) {.mif-tilda #rec788844612 .tn-elem[data-elem-id="1740991648444"] {top:44px;left:calc(50% - 160px + 320px);}} .mif-tilda .t300__tooltipster-noir_788798836{background-color:#e8dcf8 !important;color:#000000 !important;border-radius:26px !important;border:2px solid #e0d2f1 !important;} .mif-tilda .t300__tooltipster-noir_788970575{background-color:#e8dcf8 !important;color:#000000 !important;border-radius:26px !important;border:2px solid #e0d2f1 !important;} .mif-tilda .t300__tooltipster-noir_788970775{background-color:#e8dcf8 !important;color:#000000 !important;border-radius:26px !important;border:1px solid #e0d2f1 !important;} .mif-tilda #rec788971928 .t396__artboard {height:100px;background-color:#ffffff;}.mif-tilda #rec788971928 .t396__filter {height:100px;}.mif-tilda #rec788971928 .t396__carrier{height:100px;background-position:center center;background-attachment:scroll;background-size:cover;background-repeat:no-repeat;}@media screen and (max-width:1199px) {.mif-tilda #rec788971928 .t396__artboard,.mif-tilda #rec788971928 .t396__filter,.mif-tilda #rec788971928 .t396__carrier {}.mif-tilda #rec788971928 .t396__filter {}.mif-tilda #rec788971928 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:959px) {.mif-tilda #rec788971928 .t396__artboard,.mif-tilda #rec788971928 .t396__filter,.mif-tilda #rec788971928 .t396__carrier {}.mif-tilda #rec788971928 .t396__filter {}.mif-tilda #rec788971928 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:639px) {.mif-tilda #rec788971928 .t396__artboard,.mif-tilda #rec788971928 .t396__filter,.mif-tilda #rec788971928 .t396__carrier {}.mif-tilda #rec788971928 .t396__filter {}.mif-tilda #rec788971928 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:479px) {.mif-tilda #rec788971928 .t396__artboard,.mif-tilda #rec788971928 .t396__filter,.mif-tilda #rec788971928 .t396__carrier {}.mif-tilda #rec788971928 .t396__filter {}.mif-tilda #rec788971928 .t396__carrier {background-attachment:scroll;}}.mif-tilda #rec788971928 .tn-elem[data-elem-id="1470209944682"]{color:#000000;z-index:2;top:22px;left:calc(50% - 600px + 14px);width:1026px;height:auto;}.mif-tilda #rec788971928 .tn-elem[data-elem-id="1470209944682"] .tn-atom{color:#000000;font-size:70px;font-family:'Circe',Arial,sans-serif;line-height:1;font-weight:400;letter-spacing:-2.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788971928 .tn-elem[data-elem-id="1470209944682"] {left:calc(50% - 480px + 4px);height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec788971928 .tn-elem[data-elem-id="1470209944682"] {top:40px;height:auto;}.mif-tilda #rec788971928 .tn-elem[data-elem-id="1470209944682"] .tn-atom {white-space:normal;font-size:60px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec788971928 .tn-elem[data-elem-id="1470209944682"] {top:54px;height:auto;}.mif-tilda #rec788971928 .tn-elem[data-elem-id="1470209944682"] .tn-atom {white-space:normal;font-size:44px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec788971928 .tn-elem[data-elem-id="1470209944682"] {top:50px;height:auto;}.mif-tilda #rec788971928 .tn-elem[data-elem-id="1470209944682"] .tn-atom {white-space:normal;font-size:44px;letter-spacing:-2px;background-size:cover;}} .mif-tilda #rec789076038 .t-slds__bullet_active .t-slds__bullet_body{background-color:#222 !important;}.mif-tilda #rec789076038 .t-slds__bullet:hover .t-slds__bullet_body{background-color:#222 !important;}.mif-tilda #rec789076038 .t-store__parts-switch-btn{}.mif-tilda #rec789076038 .t-store__filter__item-title,.mif-tilda #rec789076038 .t-store__filter__opts-mob-btn{} .mif-tilda #rec789076038 .t-store__card .t-typography__title{font-size:20px;line-height:1.1;font-weight:600;padding-bottom:0px;font-family:'Circe';}.mif-tilda #rec789076038 .t-store__relevants__title{font-size:20px;line-height:1.1;font-weight:600;padding-bottom:0px;font-family:'Circe';}.mif-tilda #rec789076038 .t-store__card .t-typography__descr{padding-top:0px;padding-bottom:0px;}.mif-tilda #rec789076038 .t-store__card .t-store__card__price{font-size:20px;color:#000000;font-weight:400;}.mif-tilda #rec789076038 .t-store__card .t-store__card__price_old{font-size:20px;color:#a3a3a3;font-weight:400;} .mif-tilda #rec789076038 .t-popup .t-typography__title{line-height:1.1;font-weight:600;font-family:'Circe';}.mif-tilda #rec789076038 .t-popup .t-store__prod-popup__price{color:#000000;font-weight:400;}.mif-tilda #rec789076038 .t-popup .t-store__prod-popup__price_old{color:#a3a3a3;font-weight:400;} @media (hover:hover),(min-width:0\0) {.mif-tilda #rec789076038 .t-btn:not(.t-animate_no-hover):hover {color:#000000 !important;border-color:#000000 !important;}.mif-tilda #rec789076038 .t-btn:not(.t-animate_no-hover):focus-visible {color:#000000 !important;border-color:#000000 !important;}.mif-tilda #rec789076038 .t-btn:not(.t-animate_no-hover) {transition-property:background-color,color,border-color,box-shadow;transition-duration:0.15s;transition-timing-function:ease-in-out;}.mif-tilda #rec789076038 .t-btntext:not(.t-animate_no-hover):hover {color:#000000 !important;}.mif-tilda #rec789076038 .t-btntext:not(.t-animate_no-hover):focus-visible {color:#000000 !important;}} .mif-tilda #rec789076038 .t-menu__link-item{}@supports (overflow:-webkit-marquee) and (justify-content:inherit){.mif-tilda #rec789076038 .t-menu__link-item,.mif-tilda #rec789076038 .t-menu__link-item.t-active{opacity:1 !important;}} .mif-tilda #rec789076038 .t786__bgimg,.mif-tilda #rec789076038 .t786__img,.mif-tilda #rec789076038 .t786 .t-store__card__bgimg,.mif-tilda #rec789076038 .t786 .t-store__card__bgimg_second,.mif-tilda #rec789076038 .t786 .t-store__card__img,.mif-tilda #rec789076038 .t786 .t-store__card__img_second{border-radius:12px;} .mif-tilda #rec788593055 .t396__artboard {height:100px;background-color:#ffffff;}.mif-tilda #rec788593055 .t396__filter {height:100px;}.mif-tilda #rec788593055 .t396__carrier{height:100px;background-position:center center;background-attachment:scroll;background-size:cover;background-repeat:no-repeat;}@media screen and (max-width:1199px) {.mif-tilda #rec788593055 .t396__artboard,.mif-tilda #rec788593055 .t396__filter,.mif-tilda #rec788593055 .t396__carrier {}.mif-tilda #rec788593055 .t396__filter {}.mif-tilda #rec788593055 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:959px) {.mif-tilda #rec788593055 .t396__artboard,.mif-tilda #rec788593055 .t396__filter,.mif-tilda #rec788593055 .t396__carrier {}.mif-tilda #rec788593055 .t396__filter {}.mif-tilda #rec788593055 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:639px) {.mif-tilda #rec788593055 .t396__artboard,.mif-tilda #rec788593055 .t396__filter,.mif-tilda #rec788593055 .t396__carrier {}.mif-tilda #rec788593055 .t396__filter {}.mif-tilda #rec788593055 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:479px) {.mif-tilda #rec788593055 .t396__artboard,.mif-tilda #rec788593055 .t396__filter,.mif-tilda #rec788593055 .t396__carrier {height:140px;}.mif-tilda #rec788593055 .t396__filter {}.mif-tilda #rec788593055 .t396__carrier {background-attachment:scroll;}}.mif-tilda #rec788593055 .tn-elem[data-elem-id="1470209944682"]{color:#000000;z-index:2;top:28px;left:calc(50% - 600px + 14px);width:1026px;height:auto;}.mif-tilda #rec788593055 .tn-elem[data-elem-id="1470209944682"] .tn-atom{color:#000000;font-size:70px;font-family:'Circe',Arial,sans-serif;line-height:1;font-weight:400;letter-spacing:-2.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788593055 .tn-elem[data-elem-id="1470209944682"] {left:calc(50% - 480px + 6px);height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec788593055 .tn-elem[data-elem-id="1470209944682"] {top:40px;height:auto;}.mif-tilda #rec788593055 .tn-elem[data-elem-id="1470209944682"] .tn-atom {white-space:normal;font-size:60px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec788593055 .tn-elem[data-elem-id="1470209944682"] {top:56px;height:auto;}.mif-tilda #rec788593055 .tn-elem[data-elem-id="1470209944682"] .tn-atom {white-space:normal;font-size:44px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec788593055 .tn-elem[data-elem-id="1470209944682"] {top:67px;left:calc(50% - 160px + 6px);width:280px;height:auto;}.mif-tilda #rec788593055 .tn-elem[data-elem-id="1470209944682"] .tn-atom {white-space:normal;line-height:0.75;letter-spacing:-2px;background-size:cover;}} .mif-tilda #rec787968137 .t-slds__bullet_active .t-slds__bullet_body{background-color:#222 !important;}.mif-tilda #rec787968137 .t-slds__bullet:hover .t-slds__bullet_body{background-color:#222 !important;}.mif-tilda #rec787968137 .t-store__parts-switch-btn{}.mif-tilda #rec787968137 .t-store__filter__item-title,.mif-tilda #rec787968137 .t-store__filter__opts-mob-btn{} .mif-tilda #rec787968137 .t-store__card .t-typography__title{font-size:20px;line-height:1.1;font-weight:600;padding-bottom:0px;font-family:'Circe';}.mif-tilda #rec787968137 .t-store__relevants__title{font-size:20px;line-height:1.1;font-weight:600;padding-bottom:0px;font-family:'Circe';}.mif-tilda #rec787968137 .t-store__card .t-typography__descr{padding-top:0px;padding-bottom:0px;}.mif-tilda #rec787968137 .t-store__card .t-store__card__price{font-size:20px;color:#000000;font-weight:400;}.mif-tilda #rec787968137 .t-store__card .t-store__card__price_old{font-size:20px;color:#a3a3a3;font-weight:400;} .mif-tilda #rec787968137 .t-popup .t-typography__title{line-height:1.1;font-weight:600;font-family:'Circe';}.mif-tilda #rec787968137 .t-popup .t-store__prod-popup__price{color:#000000;font-weight:400;}.mif-tilda #rec787968137 .t-popup .t-store__prod-popup__price_old{color:#a3a3a3;font-weight:400;} @media (hover:hover),(min-width:0\0) {.mif-tilda #rec787968137 .t-btn:not(.t-animate_no-hover):hover {color:#000000 !important;border-color:#000000 !important;}.mif-tilda #rec787968137 .t-btn:not(.t-animate_no-hover):focus-visible {color:#000000 !important;border-color:#000000 !important;}.mif-tilda #rec787968137 .t-btn:not(.t-animate_no-hover) {transition-property:background-color,color,border-color,box-shadow;transition-duration:0.15s;transition-timing-function:ease-in-out;}.mif-tilda #rec787968137 .t-btntext:not(.t-animate_no-hover):hover {color:#000000 !important;}.mif-tilda #rec787968137 .t-btntext:not(.t-animate_no-hover):focus-visible {color:#000000 !important;}} .mif-tilda #rec787968137 .t-menu__link-item{}@supports (overflow:-webkit-marquee) and (justify-content:inherit){.mif-tilda #rec787968137 .t-menu__link-item,.mif-tilda #rec787968137 .t-menu__link-item.t-active{opacity:1 !important;}} .mif-tilda #rec787968137 .t786__bgimg,.mif-tilda #rec787968137 .t786__img,.mif-tilda #rec787968137 .t786 .t-store__card__bgimg,.mif-tilda #rec787968137 .t786 .t-store__card__bgimg_second,.mif-tilda #rec787968137 .t786 .t-store__card__img,.mif-tilda #rec787968137 .t786 .t-store__card__img_second{border-radius:12px;} .mif-tilda #rec788973605 .t396__artboard {height:100px;background-color:#f8f8f8;}.mif-tilda #rec788973605 .t396__filter {height:100px;}.mif-tilda #rec788973605 .t396__carrier{height:100px;background-position:center center;background-attachment:scroll;background-size:cover;background-repeat:no-repeat;}@media screen and (max-width:1199px) {.mif-tilda #rec788973605 .t396__artboard,.mif-tilda #rec788973605 .t396__filter,.mif-tilda #rec788973605 .t396__carrier {}.mif-tilda #rec788973605 .t396__filter {}.mif-tilda #rec788973605 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:959px) {.mif-tilda #rec788973605 .t396__artboard,.mif-tilda #rec788973605 .t396__filter,.mif-tilda #rec788973605 .t396__carrier {}.mif-tilda #rec788973605 .t396__filter {}.mif-tilda #rec788973605 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:639px) {.mif-tilda #rec788973605 .t396__artboard,.mif-tilda #rec788973605 .t396__filter,.mif-tilda #rec788973605 .t396__carrier {}.mif-tilda #rec788973605 .t396__filter {}.mif-tilda #rec788973605 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:479px) {.mif-tilda #rec788973605 .t396__artboard,.mif-tilda #rec788973605 .t396__filter,.mif-tilda #rec788973605 .t396__carrier {height:110px;}.mif-tilda #rec788973605 .t396__filter {}.mif-tilda #rec788973605 .t396__carrier {background-attachment:scroll;}}.mif-tilda #rec788973605 .tn-elem[data-elem-id="1470209944682"]{color:#000000;z-index:2;top:25px;left:calc(50% - 600px + 15px);width:1026px;height:auto;}.mif-tilda #rec788973605 .tn-elem[data-elem-id="1470209944682"] .tn-atom{color:#000000;font-size:70px;font-family:'Circe',Arial,sans-serif;line-height:1;font-weight:400;letter-spacing:-2.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788973605 .tn-elem[data-elem-id="1470209944682"] {left:calc(50% - 480px + 12px);height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec788973605 .tn-elem[data-elem-id="1470209944682"] {top:41px;left:calc(50% - 320px + 9px);height:auto;}.mif-tilda #rec788973605 .tn-elem[data-elem-id="1470209944682"] .tn-atom {white-space:normal;font-size:60px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec788973605 .tn-elem[data-elem-id="1470209944682"] {top:53px;left:calc(50% - 240px + 7px);height:auto;}.mif-tilda #rec788973605 .tn-elem[data-elem-id="1470209944682"] .tn-atom {white-space:normal;font-size:44px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec788973605 .tn-elem[data-elem-id="1470209944682"] {top:55px;left:calc(50% - 160px + 5px);height:auto;}.mif-tilda #rec788973605 .tn-elem[data-elem-id="1470209944682"] .tn-atom {white-space:normal;letter-spacing:-2.5px;background-size:cover;}}.mif-tilda #rec788973605 .tn-elem[data-elem-id="1724334569676"]{z-index:3;top:48px;left:calc(50% - 600px + 1086px);width:90px;height:auto;}.mif-tilda #rec788973605 .tn-elem[data-elem-id="1724334569676"] .tn-atom{background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec788973605 .tn-elem[data-elem-id="1724334569676"] .tn-atom__vector svg {display:block;}@media screen and (max-width:1199px) {.mif-tilda #rec788973605 .tn-elem[data-elem-id="1724334569676"] {top:44px;left:calc(50% - 480px + 863px);height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec788973605 .tn-elem[data-elem-id="1724334569676"] {top:58px;left:calc(50% - 320px + 542px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec788973605 .tn-elem[data-elem-id="1724334569676"] {top:68px;left:calc(50% - 240px + 397px);width:75px;height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec788973605 .tn-elem[data-elem-id="1724334569676"] {top:63px;left:calc(50% - 160px + 330px);height:auto;}.mif-tilda #rec788973605 .tn-elem[data-elem-id="1724334569676"] .tn-atom {background-size:cover;opacity:0;}} .mif-tilda #rec788973279 .t958__more-wrapper{background-image:linear-gradient(0deg,#ffffff 40px,rgba(255,255,255,0) 110%);} .mif-tilda #rec788973279 .t958__author-name{font-size:24px;line-height:1.1;color:#000000;padding-top:10px;font-family:'Circe';}.mif-tilda #rec788973279 .t958__author-descr{font-size:17px;line-height:1.1;color:#818181;font-weight:400;padding-top:0px;padding-bottom:0px;font-family:'Circe';}.mif-tilda #rec788973279 .t958__review-text{font-size:26px;line-height:1.2;color:#242424;font-weight:400;padding-top:0px;padding-bottom:0px;font-family:'Circe';}@media screen and (max-width:480px),(orientation:landscape) and (max-height:480px){.mif-tilda #rec788973279 .t958__review-text{font-size:20px;}} .mif-tilda #rec788973279 .t958__card-wrapper{border-radius:26px;}@media (max-width:480px){.mif-tilda #rec788973279 .t958__card-wrapper{border-radius:21px;}} .mif-tilda #rec788997090 .t396__artboard {height:470px;background-color:#ffffff;}.mif-tilda #rec788997090 .t396__filter {height:470px;}.mif-tilda #rec788997090 .t396__carrier{height:470px;background-position:center center;background-attachment:scroll;background-size:cover;background-repeat:no-repeat;}@media screen and (max-width:1199px) {.mif-tilda #rec788997090 .t396__artboard,.mif-tilda #rec788997090 .t396__filter,.mif-tilda #rec788997090 .t396__carrier {height:450px;}.mif-tilda #rec788997090 .t396__filter {}.mif-tilda #rec788997090 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:959px) {.mif-tilda #rec788997090 .t396__artboard,.mif-tilda #rec788997090 .t396__filter,.mif-tilda #rec788997090 .t396__carrier {height:540px;}.mif-tilda #rec788997090 .t396__filter {}.mif-tilda #rec788997090 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:639px) {.mif-tilda #rec788997090 .t396__artboard,.mif-tilda #rec788997090 .t396__filter,.mif-tilda #rec788997090 .t396__carrier {height:610px;}.mif-tilda #rec788997090 .t396__filter {}.mif-tilda #rec788997090 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:479px) {.mif-tilda #rec788997090 .t396__artboard,.mif-tilda #rec788997090 .t396__filter,.mif-tilda #rec788997090 .t396__carrier {height:690px;}.mif-tilda #rec788997090 .t396__filter {}.mif-tilda #rec788997090 .t396__carrier {background-attachment:scroll;}}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336132769"]{z-index:2;top:57px;left:calc(50% - 600px + 20px);width:1160px;height:379px;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336132769"] .tn-atom {border-radius:26px;background-color:#302a38;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336132769"] {left:calc(50% - 480px + 10px);width:950px;height:380px;}}@media screen and (max-width:959px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336132769"] {top:57px;left:calc(50% - 320px + 10px);width:620px;height:463px;}}@media screen and (max-width:639px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336132769"] {width:462px;height:531px;}}@media screen and (max-width:479px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336132769"] {top:17px;left:calc(50% - 160px + -10px);width:340px;height:649px;}}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1470209944682"]{color:#000000;text-align:center;z-index:3;top:70px;left:calc(50% - 600px + 87px);width:1026px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1470209944682"] .tn-atom{color:#000000;font-size:100px;font-family:'Circe',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724315608201"]{z-index:4;top:0px;left:calc(50% - 600px + 0px);width:1200px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724315608201"] .tn-atom{background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724315608201"] .tn-atom__img {}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724343154450"]{z-index:5;top:328px;left:calc(50% - 600px + 1056px);width:94px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724343154450"] .tn-atom{background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724343154450"] .tn-atom {-webkit-transform:rotate(344deg);-moz-transform:rotate(344deg);transform:rotate(344deg);}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724343154450"] .tn-atom__img {}@media screen and (max-width:1199px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724343154450"] {top:328px;left:calc(50% - 480px + 846px);height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724343154450"] {top:403px;left:calc(50% - 320px + 517px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724343154450"] {top:491px;left:calc(50% - 240px + 22px);width:82px;height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724343154450"] {top:392px;left:calc(50% - 160px + 240px);width:72px;height:auto;}}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724316075002"]{color:#ffffff;z-index:6;top:178px;left:calc(50% - 600px + 680px);width:280px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724316075002"] .tn-atom{color:#ffffff;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724316075002"] {left:calc(50% - 480px + 570px);width:279px;height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724316075002"] {top:209px;left:calc(50% - 320px + 34px);width:451px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724316075002"] {top:171px;left:calc(50% - 240px + 258px);width:205px;height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724316075002"] {top:189px;left:calc(50% - 160px + 10px);width:277px;height:auto;}}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724316118169"]{color:#000000;z-index:7;top:346px;left:calc(50% - 600px + 1074px);width:65px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724316118169"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.05;font-weight:400;letter-spacing:-1px;background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724316118169"] .tn-atom {-webkit-transform:rotate(348deg);-moz-transform:rotate(348deg);transform:rotate(348deg);}@media screen and (max-width:1199px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724316118169"] {top:346px;left:calc(50% - 480px + 864px);height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724316118169"] {top:420px;left:calc(50% - 320px + 534px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724316118169"] {top:505px;left:calc(50% - 240px + 35px);height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724316118169"] .tn-atom {white-space:normal;font-size:18px;line-height:1;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724316118169"] {top:404px;left:calc(50% - 160px + 253px);height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724316118169"] .tn-atom {white-space:normal;font-size:16px;background-size:cover;}}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724316433953"]{color:#000000;z-index:8;top:397px;left:calc(50% - 600px + 63px);width:25px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724316433953"] .tn-atom{color:#000000;font-size:14px;font-family:'Cormorant',Arial,sans-serif;line-height:1.4;font-weight:400;background-color:#ff7300;background-position:center center;border-color:transparent ;border-style:solid ;box-shadow:0px 0px 20px 0px rgba(0,0,0,0.3);}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724316433953"] .tn-atom__tip{background-color:#ffffff;border-radius:10px;box-shadow:0px 0px 15px 0px rgba(0,0,0,0.3);width:280px;}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336318765"]{color:#ffffff;z-index:9;top:169px;left:calc(50% - 600px + 50px);width:590px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336318765"] .tn-atom{color:#ffffff;font-size:43px;font-family:'Circe',Arial,sans-serif;line-height:0.9;font-weight:400;letter-spacing:-2px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336318765"] {top:175px;left:calc(50% - 480px + 40px);width:473px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336318765"] .tn-atom {white-space:normal;font-size:37px;letter-spacing:-1.5px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336318765"] {top:169px;left:calc(50% - 320px + 33px);width:493px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336318765"] .tn-atom {white-space:normal;font-size:37px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336318765"] {top:170px;left:calc(50% - 240px + 27px);width:235px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336318765"] .tn-atom {white-space:normal;font-size:29px;line-height:0.95;letter-spacing:-1.5px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336318765"] {top:123px;left:calc(50% - 160px + 8px);width:320px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336318765"] .tn-atom {white-space:normal;line-height:1;letter-spacing:-1.5px;background-size:cover;}}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336340969"]{color:#ffffff;z-index:10;top:251px;left:calc(50% - 600px + 51px);width:809px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336340969"] .tn-atom{color:#ffffff;font-size:43px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-2px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336340969"] {left:calc(50% - 480px + 41px);width:444px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336340969"] .tn-atom {white-space:normal;font-size:37px;letter-spacing:-1.5px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336340969"] {top:261px;left:calc(50% - 320px + 33px);width:477px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336340969"] .tn-atom {white-space:normal;font-size:37px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336340969"] {top:270px;left:calc(50% - 240px + 27px);width:188px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336340969"] .tn-atom {white-space:normal;font-size:29px;line-height:0.95;letter-spacing:-1.5px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336340969"] {top:273px;left:calc(50% - 160px + 8px);width:302px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336340969"] .tn-atom {white-space:normal;letter-spacing:-1.5px;background-size:cover;}}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336361775"]{color:#ffffff;z-index:11;top:332px;left:calc(50% - 600px + 51px);width:809px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336361775"] .tn-atom{color:#ffffff;font-size:43px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-2px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336361775"] {left:calc(50% - 480px + 41px);width:475px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336361775"] .tn-atom {white-space:normal;font-size:37px;letter-spacing:-1.5px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336361775"] {top:380px;left:calc(50% - 320px + 33px);width:466px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336361775"] .tn-atom {white-space:normal;font-size:37px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336361775"] {top:392px;left:calc(50% - 240px + 27px);width:216px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336361775"] .tn-atom {white-space:normal;font-size:29px;line-height:0.95;letter-spacing:-1.5px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336361775"] {top:396px;left:calc(50% - 160px + 8px);width:243px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336361775"] .tn-atom {white-space:normal;line-height:1;letter-spacing:-1.5px;background-size:cover;}}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336410354"]{color:#ffffff;z-index:12;top:256px;left:calc(50% - 600px + 680px);width:440px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336410354"] .tn-atom{color:#ffffff;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336410354"] {left:calc(50% - 480px + 570px);width:360px;height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336410354"] {top:306px;left:calc(50% - 320px + 34px);width:408px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336410354"] {top:272px;left:calc(50% - 240px + 258px);width:202px;height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336410354"] {top:309px;left:calc(50% - 160px + 10px);width:313px;height:auto;}}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336411691"]{color:#ffffff;z-index:13;top:339px;left:calc(50% - 600px + 680px);width:355px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336411691"] .tn-atom{color:#ffffff;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336411691"] {left:calc(50% - 480px + 570px);width:323px;height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336411691"] {top:427px;left:calc(50% - 320px + 34px);width:355px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336411691"] {top:395px;left:calc(50% - 240px + 258px);width:215px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336411691"] .tn-atom {white-space:normal;letter-spacing:-1px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336411691"] {top:462px;left:calc(50% - 160px + 10px);width:310px;height:auto;}}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724341178555"]{color:#ffffff;z-index:14;top:89px;left:calc(50% - 600px + 51px);width:367px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724341178555"] .tn-atom{color:#ffffff;font-size:17px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:2px;text-transform:uppercase;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724341178555"] {left:calc(50% - 480px + 41px);height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724341178555"] {top:88px;left:calc(50% - 320px + 34px);width:255px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724341178555"] .tn-atom {white-space:normal;font-size:17px;letter-spacing:1px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724341178555"] {left:calc(50% - 240px + 27px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724341178555"] {top:48px;left:calc(50% - 160px + 10px);height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724341178555"] .tn-atom {white-space:normal;letter-spacing:2px;background-size:cover;}}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724342640659"]{color:#ffffff;text-align:center;z-index:15;top:79px;left:calc(50% - 600px + 938px);width:212px;height:40px;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724342640659"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Circe',Arial,sans-serif;line-height:1.55;font-weight:400;letter-spacing:-0.5px;border-width:1px;border-radius:8px;background-position:center center;border-color:#ffffff ;border-style:solid;transition:background-color 0.2s ease-in-out,color 0.2s ease-in-out,border-color 0.2s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724342640659"] .tn-atom:hover{border-color:#e4d0ff;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724342640659"] .tn-atom:hover {color:#e4d0ff;}}@media screen and (max-width:1199px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724342640659"] {left:calc(50% - 480px + 718px);width:216px;}}@media screen and (max-width:959px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724342640659"] {top:75px;left:calc(50% - 320px + 438px);width:173px;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724342640659"] .tn-atom{font-size:19px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724342640659"] {top:514px;left:calc(50% - 240px + 278px);width:182px;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724342640659"] .tn-atom{font-size:19px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724342640659"] {top:586px;left:calc(50% - 160px + 10px);width:300px;height:47px;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724342640659"] .tn-atom{font-size:19px;background-size:cover;}}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336457622"]{z-index:16;top:316px;left:calc(50% - 600px + 49px);width:1095px;height:1px;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336457622"] .tn-atom{opacity:0.2;background-color:#ffffff;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336457622"] {left:calc(50% - 480px + 44px);width:888px;height:1px;}}@media screen and (max-width:959px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336457622"] {top:365px;left:calc(50% - 320px + 32px);width:580px;height:1px;}}@media screen and (max-width:639px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336457622"] {top:372px;left:calc(50% - 240px + 28px);width:427px;height:1px;}}@media screen and (max-width:479px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724336457622"] {top:377px;left:calc(50% - 160px + 10px);width:301px;height:1px;}}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724315791161"]{z-index:17;top:235px;left:calc(50% - 600px + 49px);width:1095px;height:1px;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724315791161"] .tn-atom{opacity:0.2;background-color:#ffffff;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724315791161"] {left:calc(50% - 480px + 44px);width:888px;height:1px;}}@media screen and (max-width:959px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724315791161"] {top:248px;left:calc(50% - 320px + 32px);width:580px;height:1px;}}@media screen and (max-width:639px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724315791161"] {top:250px;left:calc(50% - 240px + 28px);width:427px;height:1px;}}@media screen and (max-width:479px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724315791161"] {top:256px;left:calc(50% - 160px + 10px);width:301px;height:1px;}}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724342640661"]{color:#ffffff;z-index:18;top:85px;left:calc(50% - 600px + 744px);width:196px;height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724342640661"] .tn-atom{color:#ffffff;font-size:25px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-1px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724342640661"] {left:calc(50% - 480px + 515px);height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724342640661"] {top:84px;left:calc(50% - 320px + 281px);height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724342640661"] .tn-atom {white-space:normal;font-size:21px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724342640661"] {top:523px;left:calc(50% - 240px + 118px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724342640661"] {top:549px;left:calc(50% - 160px + 10px);height:auto;}.mif-tilda #rec788997090 .tn-elem[data-elem-id="1724342640661"] .tn-atom {white-space:normal;font-size:24px;letter-spacing:-0.5px;background-size:cover;opacity:0.7;}} .mif-tilda #rec788986820 .t396__artboard {height:100px;background-color:#ffffff;overflow:visible;}.mif-tilda #rec788986820 .t396__filter {height:100px;}.mif-tilda #rec788986820 .t396__carrier{height:100px;background-position:center center;background-attachment:scroll;background-size:cover;background-repeat:no-repeat;}@media screen and (max-width:1199px) {.mif-tilda #rec788986820 .t396__artboard,.mif-tilda #rec788986820 .t396__filter,.mif-tilda #rec788986820 .t396__carrier {}.mif-tilda #rec788986820 .t396__filter {}.mif-tilda #rec788986820 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:959px) {.mif-tilda #rec788986820 .t396__artboard,.mif-tilda #rec788986820 .t396__filter,.mif-tilda #rec788986820 .t396__carrier {}.mif-tilda #rec788986820 .t396__filter {}.mif-tilda #rec788986820 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:639px) {.mif-tilda #rec788986820 .t396__artboard,.mif-tilda #rec788986820 .t396__filter,.mif-tilda #rec788986820 .t396__carrier {}.mif-tilda #rec788986820 .t396__filter {}.mif-tilda #rec788986820 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:479px) {.mif-tilda #rec788986820 .t396__artboard,.mif-tilda #rec788986820 .t396__filter,.mif-tilda #rec788986820 .t396__carrier {height:160px;}.mif-tilda #rec788986820 .t396__filter {}.mif-tilda #rec788986820 .t396__carrier {background-attachment:scroll;}}.mif-tilda #rec788986820 .tn-elem[data-elem-id="1470209944682"]{color:#000000;z-index:2;top:89px;left:calc(50% - 600px + 16px);width:1026px;height:auto;}.mif-tilda #rec788986820 .tn-elem[data-elem-id="1470209944682"] .tn-atom{color:#000000;font-size:70px;font-family:'Circe',Arial,sans-serif;line-height:1;font-weight:400;letter-spacing:-2.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788986820 .tn-elem[data-elem-id="1470209944682"] {left:calc(50% - 480px + 6px);height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec788986820 .tn-elem[data-elem-id="1470209944682"] {top:39px;height:auto;}.mif-tilda #rec788986820 .tn-elem[data-elem-id="1470209944682"] .tn-atom {white-space:normal;font-size:60px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec788986820 .tn-elem[data-elem-id="1470209944682"] {top:36px;height:auto;}.mif-tilda #rec788986820 .tn-elem[data-elem-id="1470209944682"] .tn-atom {white-space:normal;font-size:44px;letter-spacing:-2px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec788986820 .tn-elem[data-elem-id="1470209944682"] {top:45px;width:296px;height:auto;}.mif-tilda #rec788986820 .tn-elem[data-elem-id="1470209944682"] .tn-atom {white-space:normal;line-height:0.8;background-size:cover;}}.mif-tilda #rec788986820 .tn-elem[data-elem-id="1724352754362"]{color:#000000;z-index:3;top:110px;left:calc(50% - 600px + 894px);width:350px;height:auto;}.mif-tilda #rec788986820 .tn-elem[data-elem-id="1724352754362"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.2;font-weight:400;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec788986820 .tn-elem[data-elem-id="1724352754362"] {top:109px;left:calc(50% - 480px + 665px);height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec788986820 .tn-elem[data-elem-id="1724352754362"] {top:105px;left:calc(50% - 320px + 9px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec788986820 .tn-elem[data-elem-id="1724352754362"] {top:86px;height:auto;}.mif-tilda #rec788986820 .tn-elem[data-elem-id="1724352754362"] .tn-atom {white-space:normal;line-height:1.15;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec788986820 .tn-elem[data-elem-id="1724352754362"] {top:129px;left:calc(50% - 160px + 8px);height:auto;}.mif-tilda #rec788986820 .tn-elem[data-elem-id="1724352754362"] .tn-atom {white-space:normal;line-height:1.25;background-size:cover;}} .mif-tilda .t-section__descr {max-width:560px;}.mif-tilda #rec788975179 .t-section__title {margin-bottom:40px;}.mif-tilda #rec788975179 .t-section__descr {margin-bottom:90px;}@media screen and (max-width:960px) {.mif-tilda #rec788975179 .t-section__title {margin-bottom:20px;}.mif-tilda #rec788975179 .t-section__descr {margin-bottom:45px;}} .mif-tilda #rec788975179 .t849__icon {fill:#f4f4f4;stroke:#000000;}@media (hover:hover) {.mif-tilda #rec788975179 .t849__trigger-button:hover .t849__icon {fill:#000000;stroke:#ffffff;}}.mif-tilda #rec788975179 .t849__trigger-button:focus-visible .t849__icon {fill:#000000;stroke:#ffffff;} .mif-tilda #rec788975179 .t849__title{font-size:24px;color:#171717;font-weight:600;font-family:'Circe';}.mif-tilda #rec788975179 .t849__text{font-size:18px;color:#171717;font-weight:400;font-family:'Circe';max-width:720px;} .mif-tilda #rec789111146 .t397__tab_active{border-bottom-color:#222 !important;}.mif-tilda #rec789111146 .t397 .t-align_left .t397__tab_active:after{content:" ";position:absolute;width:14px;height:1px;bottom:-1px;background:#dcdcdc;right:0;}.mif-tilda #rec789111146 .t397 .t-align_left .t397__tab:last-child:after{display:none !important;}.mif-tilda #rec789111146 .t397__tab_active .t397__title{color:#000000 !important;font-weight:400 !important;}.mif-tilda #rec789111146 .t397__select{border:1px solid #000000;color:#000000;}.mif-tilda #rec789111146 .t397__wrapper_mobile:after{border-color:#000000 transparent transparent transparent;}.mif-tilda #rec789111146 .t397__firefoxfix{top:1px;bottom:1px;right:1px;}.mif-tilda #rec789111146 .t397__tab:not(.t397__tab_active):hover .t397__title{color:#a6a6a6 !important;}.mif-tilda #allrecords [aria-labelledby$="789111146"]:focus-visible{outline-color:#2015FF;outline-offset:2px;outline-style:auto;}@media screen and (max-width:480px){.mif-tilda #rec789111146 .t397__select{font-size:24px;}} .mif-tilda #rec789111146 .t397__title{color:#767676;font-weight:400;font-family:'Circe';}@media screen and (min-width:900px){.mif-tilda #rec789111146 .t397__title{font-size:70px;}}@media screen and (min-width:480px) and (max-width:900px){.mif-tilda #rec789111146 .t397__title{font-size:24px;}}@media screen and (max-width:480px),(orientation:landscape) and (max-height:480px){.mif-tilda #rec789111146 .t397__title{font-size:24px;}} .mif-tilda #rec789123531 .t396__artboard {height:390px;background-color:#f8f8f8;}.mif-tilda #rec789123531 .t396__filter {height:390px;}.mif-tilda #rec789123531 .t396__carrier{height:390px;background-position:center center;background-attachment:scroll;background-size:cover;background-repeat:no-repeat;}@media screen and (max-width:1199px) {.mif-tilda #rec789123531 .t396__artboard,.mif-tilda #rec789123531 .t396__filter,.mif-tilda #rec789123531 .t396__carrier {}.mif-tilda #rec789123531 .t396__filter {}.mif-tilda #rec789123531 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:959px) {.mif-tilda #rec789123531 .t396__artboard,.mif-tilda #rec789123531 .t396__filter,.mif-tilda #rec789123531 .t396__carrier {height:460px;}.mif-tilda #rec789123531 .t396__filter {}.mif-tilda #rec789123531 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:639px) {.mif-tilda #rec789123531 .t396__artboard,.mif-tilda #rec789123531 .t396__filter,.mif-tilda #rec789123531 .t396__carrier {height:540px;}.mif-tilda #rec789123531 .t396__filter {}.mif-tilda #rec789123531 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:479px) {.mif-tilda #rec789123531 .t396__artboard,.mif-tilda #rec789123531 .t396__filter,.mif-tilda #rec789123531 .t396__carrier {height:470px;}.mif-tilda #rec789123531 .t396__filter {}.mif-tilda #rec789123531 .t396__carrier {background-attachment:scroll;}}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724358925451"]{z-index:2;top:3px;left:calc(50% - 600px + 20px);width:1163px;height:366px;}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724358925451"] .tn-atom {border-radius:26px;background-color:#ffffff;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724358925451"] {top:1px;left:calc(50% - 480px + 10px);width:939px;}}@media screen and (max-width:959px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724358925451"] {width:620px;height:431px;}}@media screen and (max-width:639px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724358925451"] {top:1px;left:calc(50% - 240px + 10px);width:460px;height:495px;}}@media screen and (max-width:479px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724358925451"] {top:3px;left:calc(50% - 160px + -10px);width:340px;height:450px;}}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1470209944682"]{color:#000000;text-align:center;z-index:3;top:70px;left:calc(50% - 600px + 87px);width:1026px;height:auto;}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1470209944682"] .tn-atom{color:#000000;font-size:100px;font-family:'Circe',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724315608201"]{z-index:4;top:0px;left:calc(50% - 600px + 0px);width:1200px;height:auto;}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724315608201"] .tn-atom{background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724315608201"] .tn-atom__img {}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724315836050"]{color:#000000;z-index:5;top:30px;left:calc(50% - 600px + 760px);width:403px;height:auto;}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724315836050"] .tn-atom{color:#000000;font-size:43px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-2px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724315836050"] {top:40px;left:calc(50% - 480px + 608px);width:327px;height:auto;}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724315836050"] .tn-atom {white-space:normal;font-size:37px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724315836050"] {top:258px;left:calc(50% - 320px + 43px);width:561px;height:auto;}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724315836050"] .tn-atom {white-space:normal;font-size:37px;letter-spacing:-1.5px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724315836050"] {top:250px;left:calc(50% - 240px + 43px);width:402px;height:auto;}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724315836050"] .tn-atom {white-space:normal;font-size:37px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724315836050"] {top:243px;left:calc(50% - 160px + 19px);width:290px;height:auto;}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724315836050"] .tn-atom {white-space:normal;font-size:29px;background-size:cover;}}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724316433953"]{color:#000000;z-index:6;top:397px;left:calc(50% - 600px + 63px);width:25px;height:auto;}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724316433953"] .tn-atom{color:#000000;font-size:14px;font-family:'Cormorant',Arial,sans-serif;line-height:1.4;font-weight:400;background-color:#ff7300;background-position:center center;border-color:transparent ;border-style:solid ;box-shadow:0px 0px 20px 0px rgba(0,0,0,0.3);}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724316433953"] .tn-atom__tip{background-color:#ffffff;border-radius:10px;box-shadow:0px 0px 15px 0px rgba(0,0,0,0.3);width:280px;}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724342244133"]{color:#000000;z-index:7;top:55px;left:calc(50% - 600px + 52px);width:367px;height:auto;}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724342244133"] .tn-atom{color:#000000;font-size:17px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:2px;text-transform:uppercase;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724342274650"]{color:#000000;text-align:center;z-index:8;top:46px;left:calc(50% - 600px + 1006px);width:177px;height:40px;}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724342274650"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.55;font-weight:400;letter-spacing:-0.5px;border-radius:8px;background-color:#ffffff;background-position:center center;border-color:transparent ;border-style:solid;transition:background-color 0.2s ease-in-out,color 0.2s ease-in-out,border-color 0.2s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724342274650"] .tn-atom:hover {background-color:#5c5c5c;background-image:none;}}@media screen and (max-width:1199px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724342274650"] {left:calc(50% - 480px + 568px);width:381px;}}@media screen and (max-width:959px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724342274650"] {top:55px;left:calc(50% - 320px + 311px);width:319px;}}@media screen and (max-width:639px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724342274650"] {top:111px;left:calc(50% - 240px + 10px);width:378px;}}@media screen and (max-width:479px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724342274650"] {top:105px;left:calc(50% - 160px + 9px);width:300px;height:47px;}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724342274650"] .tn-atom{font-size:17px;background-size:cover;}}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724343601293"]{color:#a3a3a3;text-align:left;z-index:9;top:220px;left:calc(50% - 600px + 760px);width:293px;height:69px;}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724343601293"] .tn-atom{color:#a3a3a3;font-size:43px;font-family:'Circe',Arial,sans-serif;line-height:1.55;font-weight:400;letter-spacing:-0.5px;border-width:0px;border-radius:8px;background-position:center center;border-color:transparent ;border-style:solid;transition:background-color 0.2s ease-in-out,color 0.2s ease-in-out,border-color 0.2s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724343601293"] .tn-atom:hover {}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724343601293"] .tn-atom:hover {color:#8b7393;}}@media screen and (max-width:1199px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724343601293"] {top:200px;left:calc(50% - 480px + 608px);width:292px;height:75px;}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724343601293"] .tn-atom{font-size:37px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724343601293"] {top:330px;left:calc(50% - 320px + 43px);width:239px;}}@media screen and (max-width:639px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724343601293"] {top:364px;left:calc(50% - 240px + 43px);width:238px;}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724343601293"] .tn-atom{font-size:37px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724343601293"] {top:345px;left:calc(50% - 160px + 20px);width:278px;height:47px;}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724343601293"] .tn-atom{font-size:29px;background-size:cover;}}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361308159"]{z-index:10;top:3px;left:calc(50% - 600px + 402px);width:303px;height:366px;}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361308159"] .tn-atom {border-radius:26px;background-color:#dfdfdf;background-position:center center;background-size:cover;background-repeat:no-repeat;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361308159"] {left:calc(50% - 480px + 321px);width:247px;height:365px;}}@media screen and (max-width:959px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361308159"] {left:calc(50% - 320px + 356px);width:274px;height:235px;}}@media screen and (max-width:639px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361308159"] {left:calc(50% - 240px + 267px);width:203px;height:222px;}}@media screen and (max-width:479px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361308159"] {left:calc(50% - 160px + 180px);width:150px;height:212px;}}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361288999"]{z-index:11;top:3px;left:calc(50% - 600px + 281px);width:303px;height:366px;}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361288999"] .tn-atom {border-radius:26px;background-color:#eeeeee;background-position:center center;background-size:cover;background-repeat:no-repeat;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361288999"] {left:calc(50% - 480px + 223px);width:247px;height:365px;}}@media screen and (max-width:959px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361288999"] {left:calc(50% - 320px + 247px);width:274px;height:235px;}}@media screen and (max-width:639px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361288999"] {left:calc(50% - 240px + 186px);width:203px;height:222px;}}@media screen and (max-width:479px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361288999"] {left:calc(50% - 160px + 120px);width:150px;height:212px;}}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361290795"]{z-index:12;top:3px;left:calc(50% - 600px + 152px);width:303px;height:366px;}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361290795"] .tn-atom {border-radius:26px;background-color:#f3f3f3;background-position:center center;background-size:cover;background-repeat:no-repeat;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361290795"] {left:calc(50% - 480px + 117px);width:247px;height:365px;}}@media screen and (max-width:959px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361290795"] {left:calc(50% - 320px + 129px);width:274px;height:235px;}}@media screen and (max-width:639px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361290795"] {left:calc(50% - 240px + 98px);width:203px;height:222px;}}@media screen and (max-width:479px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361290795"] {left:calc(50% - 160px + 55px);width:150px;height:212px;}}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361274409"]{z-index:13;top:3px;left:calc(50% - 600px + 20px);width:303px;height:366px;}.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361274409"] .tn-atom {border-radius:26px;background-color:#eeeeee;background-position:center center;background-size:cover;background-repeat:no-repeat;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361274409"] {left:calc(50% - 480px + 10px);width:247px;height:365px;}}@media screen and (max-width:959px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361274409"] {left:calc(50% - 320px + 10px);width:274px;height:235px;}}@media screen and (max-width:639px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361274409"] {width:203px;height:222px;}}@media screen and (max-width:479px) {.mif-tilda #rec789123531 .tn-elem[data-elem-id="1724361274409"] {left:calc(50% - 160px + -10px);width:150px;height:212px;}} .mif-tilda #rec789114300 .t396__artboard {height:390px;background-color:#f8f8f8;}.mif-tilda #rec789114300 .t396__filter {height:390px;}.mif-tilda #rec789114300 .t396__carrier{height:390px;background-position:center center;background-attachment:scroll;background-size:cover;background-repeat:no-repeat;}@media screen and (max-width:1199px) {.mif-tilda #rec789114300 .t396__artboard,.mif-tilda #rec789114300 .t396__filter,.mif-tilda #rec789114300 .t396__carrier {}.mif-tilda #rec789114300 .t396__filter {}.mif-tilda #rec789114300 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:959px) {.mif-tilda #rec789114300 .t396__artboard,.mif-tilda #rec789114300 .t396__filter,.mif-tilda #rec789114300 .t396__carrier {height:460px;}.mif-tilda #rec789114300 .t396__filter {}.mif-tilda #rec789114300 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:639px) {.mif-tilda #rec789114300 .t396__artboard,.mif-tilda #rec789114300 .t396__filter,.mif-tilda #rec789114300 .t396__carrier {height:540px;}.mif-tilda #rec789114300 .t396__filter {}.mif-tilda #rec789114300 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:479px) {.mif-tilda #rec789114300 .t396__artboard,.mif-tilda #rec789114300 .t396__filter,.mif-tilda #rec789114300 .t396__carrier {height:600px;}.mif-tilda #rec789114300 .t396__filter {}.mif-tilda #rec789114300 .t396__carrier {background-attachment:scroll;}}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724358925451"]{z-index:2;top:3px;left:calc(50% - 600px + 20px);width:1163px;height:366px;}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724358925451"] .tn-atom {border-radius:26px;background-color:#ffffff;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724358925451"] {top:1px;left:calc(50% - 480px + 10px);width:939px;}}@media screen and (max-width:959px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724358925451"] {width:620px;height:431px;}}@media screen and (max-width:639px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724358925451"] {width:460px;height:514px;}}@media screen and (max-width:479px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724358925451"] {top:3px;left:calc(50% - 160px + -10px);width:340px;height:574px;}}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1470209944682"]{color:#000000;text-align:center;z-index:3;top:70px;left:calc(50% - 600px + 87px);width:1026px;height:auto;}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1470209944682"] .tn-atom{color:#000000;font-size:100px;font-family:'Circe',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724315608201"]{z-index:4;top:0px;left:calc(50% - 600px + 0px);width:1200px;height:auto;}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724315608201"] .tn-atom{background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724315608201"] .tn-atom__img {}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724315836050"]{color:#000000;z-index:5;top:66px;left:calc(50% - 600px + 49px);width:554px;height:auto;}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724315836050"] .tn-atom{color:#000000;font-size:43px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-2px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724315836050"] {left:calc(50% - 480px + 39px);width:446px;height:auto;}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724315836050"] .tn-atom {white-space:normal;font-size:37px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724315836050"] {width:343px;height:auto;}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724315836050"] .tn-atom {white-space:normal;font-size:31px;letter-spacing:-1.5px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724315836050"] {width:402px;height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724315836050"] {top:55px;left:calc(50% - 160px + 11px);width:290px;height:auto;}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724315836050"] .tn-atom {white-space:normal;font-size:29px;background-size:cover;}}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724316433953"]{color:#000000;z-index:6;top:397px;left:calc(50% - 600px + 63px);width:25px;height:auto;}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724316433953"] .tn-atom{color:#000000;font-size:14px;font-family:'Cormorant',Arial,sans-serif;line-height:1.4;font-weight:400;background-color:#ff7300;background-position:center center;border-color:transparent ;border-style:solid ;box-shadow:0px 0px 20px 0px rgba(0,0,0,0.3);}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724316433953"] .tn-atom__tip{background-color:#ffffff;border-radius:10px;box-shadow:0px 0px 15px 0px rgba(0,0,0,0.3);width:280px;}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724341541803"]{color:#000000;z-index:7;top:79px;left:calc(50% - 600px + 680px);width:191px;height:auto;}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724341541803"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724341541803"] {top:74px;left:calc(50% - 480px + 530px);height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724341541803"] {top:74px;left:calc(50% - 320px + 413px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724341541803"] {top:265px;left:calc(50% - 240px + 39px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724341541803"] {top:312px;left:calc(50% - 160px + 11px);width:277px;height:auto;}}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724341543631"]{color:#000000;z-index:8;top:79px;left:calc(50% - 600px + 982px);width:165px;height:auto;}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724341543631"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724341543631"] {top:74px;left:calc(50% - 480px + 758px);height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724341543631"] {top:220px;left:calc(50% - 320px + 413px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724341543631"] {top:265px;left:calc(50% - 240px + 270px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724341543631"] {top:406px;left:calc(50% - 160px + 12px);width:282px;height:auto;}}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724342244133"]{color:#000000;z-index:9;top:55px;left:calc(50% - 600px + 52px);width:367px;height:auto;}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724342244133"] .tn-atom{color:#000000;font-size:17px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:2px;text-transform:uppercase;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724342274650"]{color:#000000;text-align:center;z-index:10;top:46px;left:calc(50% - 600px + 1006px);width:177px;height:40px;}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724342274650"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.55;font-weight:400;letter-spacing:-0.5px;border-radius:8px;background-color:#ffffff;background-position:center center;border-color:transparent ;border-style:solid;transition:background-color 0.2s ease-in-out,color 0.2s ease-in-out,border-color 0.2s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724342274650"] .tn-atom:hover {background-color:#5c5c5c;background-image:none;}}@media screen and (max-width:1199px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724342274650"] {left:calc(50% - 480px + 568px);width:381px;}}@media screen and (max-width:959px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724342274650"] {top:55px;left:calc(50% - 320px + 311px);width:319px;}}@media screen and (max-width:639px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724342274650"] {top:111px;left:calc(50% - 240px + 10px);width:378px;}}@media screen and (max-width:479px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724342274650"] {top:105px;left:calc(50% - 160px + 9px);width:300px;height:47px;}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724342274650"] .tn-atom{font-size:17px;background-size:cover;}}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724343601293"]{color:#000000;text-align:center;z-index:11;top:297px;left:calc(50% - 600px + 912px);width:240px;height:40px;}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724343601293"] .tn-atom{color:#000000;font-size:20px;font-family:'Circe',Arial,sans-serif;line-height:1.55;font-weight:400;letter-spacing:-0.5px;border-width:1px;border-radius:8px;background-position:center center;border-color:#000000 ;border-style:solid;transition:background-color 0.2s ease-in-out,color 0.2s ease-in-out,border-color 0.2s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724343601293"] .tn-atom:hover {background-color:#000000;background-image:none;}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724343601293"] .tn-atom:hover {color:#ffffff;}}@media screen and (max-width:1199px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724343601293"] {top:260px;left:calc(50% - 480px + 686px);width:233px;}}@media screen and (max-width:959px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724343601293"] {top:350px;left:calc(50% - 320px + 39px);width:246px;}}@media screen and (max-width:639px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724343601293"] {top:422px;left:calc(50% - 240px + 39px);width:238px;}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724343601293"] .tn-atom{font-size:19px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724343601293"] {top:496px;left:calc(50% - 160px + 11px);width:300px;height:46px;}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724343601293"] .tn-atom{font-size:19px;background-size:cover;}}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724358948128"]{color:#000000;z-index:12;top:34px;left:calc(50% - 600px + 49px);width:367px;height:auto;}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724358948128"] .tn-atom{color:#000000;font-size:17px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:2px;text-transform:uppercase;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724358948128"] {left:calc(50% - 480px + 39px);height:auto;}}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724358948128"] {top:32px;left:calc(50% - 160px + 12px);height:auto;}.mif-tilda #rec789114300 .tn-elem[data-elem-id="1724358948128"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}} .mif-tilda #rec789120486 .t396__artboard {height:420px;background-color:#f8f8f8;}.mif-tilda #rec789120486 .t396__filter {height:420px;}.mif-tilda #rec789120486 .t396__carrier{height:420px;background-position:center center;background-attachment:scroll;background-size:cover;background-repeat:no-repeat;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .t396__artboard,.mif-tilda #rec789120486 .t396__filter,.mif-tilda #rec789120486 .t396__carrier {height:390px;}.mif-tilda #rec789120486 .t396__filter {}.mif-tilda #rec789120486 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .t396__artboard,.mif-tilda #rec789120486 .t396__filter,.mif-tilda #rec789120486 .t396__carrier {height:520px;}.mif-tilda #rec789120486 .t396__filter {}.mif-tilda #rec789120486 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .t396__artboard,.mif-tilda #rec789120486 .t396__filter,.mif-tilda #rec789120486 .t396__carrier {height:650px;}.mif-tilda #rec789120486 .t396__filter {}.mif-tilda #rec789120486 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .t396__artboard,.mif-tilda #rec789120486 .t396__filter,.mif-tilda #rec789120486 .t396__carrier {height:660px;}.mif-tilda #rec789120486 .t396__filter {}.mif-tilda #rec789120486 .t396__carrier {background-attachment:scroll;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724358925451"]{z-index:3;top:3px;left:calc(50% - 600px + 20px);width:1163px;height:394px;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724358925451"] .tn-atom {border-radius:26px;background-color:#ffffff;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724358925451"] {top:1px;left:calc(50% - 480px + 10px);width:939px;height:361px;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724358925451"] {width:620px;height:492px;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724358925451"] {width:460px;height:633px;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724358925451"] {top:3px;left:calc(50% - 160px + -10px);width:340px;height:640px;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1470209944682"]{color:#000000;text-align:center;z-index:4;top:70px;left:calc(50% - 600px + 87px);width:1026px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1470209944682"] .tn-atom{color:#000000;font-size:100px;font-family:'Circe',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724315608201"]{z-index:5;top:0px;left:calc(50% - 600px + 0px);width:1200px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724315608201"] .tn-atom{background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724315608201"] .tn-atom__img {}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724316433953"]{color:#000000;z-index:6;top:397px;left:calc(50% - 600px + 63px);width:25px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724316433953"] .tn-atom{color:#000000;font-size:14px;font-family:'Circe',Arial,sans-serif;line-height:1.4;font-weight:400;background-color:#ff7300;background-position:center center;border-color:transparent ;border-style:solid ;box-shadow:0px 0px 20px 0px rgba(0,0,0,0.3);}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724316433953"] .tn-atom__tip{background-color:#ffffff;border-radius:10px;box-shadow:0px 0px 15px 0px rgba(0,0,0,0.3);width:280px;}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724342244133"]{color:#000000;z-index:7;top:55px;left:calc(50% - 600px + 52px);width:367px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724342244133"] .tn-atom{color:#000000;font-size:17px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:2px;text-transform:uppercase;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724342274650"]{color:#000000;text-align:center;z-index:8;top:46px;left:calc(50% - 600px + 1006px);width:177px;height:40px;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724342274650"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.55;font-weight:400;letter-spacing:-0.5px;border-radius:8px;background-color:#ffffff;background-position:center center;border-color:transparent ;border-style:solid;transition:background-color 0.2s ease-in-out,color 0.2s ease-in-out,border-color 0.2s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724342274650"] .tn-atom:hover {background-color:#5c5c5c;background-image:none;}}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724342274650"] {left:calc(50% - 480px + 568px);width:381px;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724342274650"] {top:55px;left:calc(50% - 320px + 311px);width:319px;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724342274650"] {top:111px;left:calc(50% - 240px + 10px);width:378px;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724342274650"] {top:105px;left:calc(50% - 160px + 9px);width:300px;height:47px;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724342274650"] .tn-atom{font-size:17px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724358948128"]{color:#000000;z-index:9;top:32px;left:calc(50% - 600px + 49px);width:367px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724358948128"] .tn-atom{color:#000000;font-size:17px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:2px;text-transform:uppercase;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724358948128"] {left:calc(50% - 480px + 39px);height:auto;}}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724358948128"] {top:32px;left:calc(50% - 160px + 10px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724358948128"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070608"]{color:#000000;z-index:10;top:143px;left:calc(50% - 600px + 49px);width:202px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070608"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.15;font-weight:400;letter-spacing:-0.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070608"] {top:128px;left:calc(50% - 480px + 38px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070608"] .tn-atom {white-space:normal;font-size:17px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070608"] {top:118px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070608"] {top:152px;left:calc(50% - 240px + 43px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070608"] {top:172px;left:calc(50% - 160px + 10px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070608"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070607"]{color:#000000;z-index:11;top:199px;left:calc(50% - 600px + 49px);width:202px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070607"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.15;font-weight:400;letter-spacing:-0.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070607"] {top:192px;left:calc(50% - 480px + 38px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070607"] .tn-atom {white-space:normal;font-size:17px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070607"] {top:182px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070607"] {top:198px;left:calc(50% - 240px + 43px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070607"] {top:170px;left:calc(50% - 160px + 170px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070607"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070605"]{color:#000000;z-index:12;top:177px;left:calc(50% - 600px + 49px);width:216px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070605"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1;font-weight:400;letter-spacing:-0.5px;opacity:0.5;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070605"] {top:157px;left:calc(50% - 480px + 38px);width:142px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070605"] .tn-atom {white-space:normal;font-size:17px;line-height:0.95;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070605"] {top:147px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070605"] {top:181px;left:calc(50% - 240px + 43px);width:185px;height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070605"] {top:155px;left:calc(50% - 160px + 170px);width:169px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070605"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070604"]{color:#000000;z-index:13;top:341px;left:calc(50% - 600px + 49px);width:226px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070604"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.15;font-weight:400;letter-spacing:-0.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070604"] {top:266px;left:calc(50% - 480px + 226px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070604"] .tn-atom {white-space:normal;font-size:17px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070604"] {top:122px;left:calc(50% - 320px + 231px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070604"] {top:445px;left:calc(50% - 240px + 43px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070604"] {top:234px;left:calc(50% - 160px + 170px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070604"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070602"]{color:#000000;z-index:14;top:318px;left:calc(50% - 600px + 49px);width:202px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070602"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;opacity:0.5;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070602"] {top:226px;left:calc(50% - 480px + 226px);width:170px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070602"] .tn-atom {white-space:normal;font-size:17px;line-height:1;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070602"] {top:102px;left:calc(50% - 320px + 231px);width:182px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070602"] {top:425px;left:calc(50% - 240px + 43px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070602"] {top:200px;left:calc(50% - 160px + 170px);width:130px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070602"] .tn-atom {white-space:normal;font-size:15px;line-height:1;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070601"]{color:#000000;z-index:15;top:257px;left:calc(50% - 600px + 49px);width:202px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070601"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.25;font-weight:400;letter-spacing:-0.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070601"] {top:240px;left:calc(50% - 480px + 38px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070601"] .tn-atom {white-space:normal;font-size:17px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070601"] {top:231px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070601"] {top:251px;left:calc(50% - 240px + 43px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070601"] {top:218px;left:calc(50% - 160px + 10px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070601"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070599"]{color:#000000;z-index:16;top:235px;left:calc(50% - 600px + 49px);width:202px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070599"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;opacity:0.5;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070599"] {top:221px;left:calc(50% - 480px + 38px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070599"] .tn-atom {white-space:normal;font-size:17px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070599"] {top:211px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070599"] {top:232px;left:calc(50% - 240px + 43px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070599"] {top:199px;left:calc(50% - 160px + 10px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070599"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070598"]{color:#000000;z-index:17;top:144px;left:calc(50% - 600px + 531px);width:202px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070598"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.25;font-weight:400;letter-spacing:-0.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070598"] {top:132px;left:calc(50% - 480px + 425px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070598"] .tn-atom {white-space:normal;font-size:17px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070598"] {top:412px;left:calc(50% - 320px + 230px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070598"] {top:564px;left:calc(50% - 240px + 48px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070598"] {top:279px;left:calc(50% - 160px + 170px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070598"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070596"]{color:#000000;z-index:18;top:124px;left:calc(50% - 600px + 531px);width:202px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070596"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;opacity:0.5;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070596"] {top:112px;left:calc(50% - 480px + 425px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070596"] .tn-atom {white-space:normal;font-size:17px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070596"] {top:392px;left:calc(50% - 320px + 230px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070596"] {top:544px;left:calc(50% - 240px + 48px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070596"] {top:262px;left:calc(50% - 160px + 170px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070596"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070595"]{color:#000000;z-index:19;top:241px;left:calc(50% - 600px + 531px);width:202px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070595"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.25;font-weight:400;letter-spacing:-0.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070595"] {top:226px;left:calc(50% - 480px + 425px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070595"] .tn-atom {white-space:normal;font-size:17px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070595"] {top:139px;left:calc(50% - 320px + 433px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070595"] {top:170px;left:calc(50% - 240px + 278px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070595"] {top:405px;left:calc(50% - 160px + 10px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070595"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070593"]{color:#000000;z-index:20;top:202px;left:calc(50% - 600px + 531px);width:202px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070593"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1;font-weight:400;letter-spacing:-0.5px;opacity:0.5;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070593"] {top:187px;left:calc(50% - 480px + 425px);width:177px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070593"] .tn-atom {white-space:normal;font-size:17px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070593"] {top:102px;left:calc(50% - 320px + 433px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070593"] {top:133px;left:calc(50% - 240px + 278px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070593"] {top:372px;left:calc(50% - 160px + 10px);width:140px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070593"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070592"]{color:#000000;z-index:21;top:121px;left:calc(50% - 600px + 294px);width:202px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070592"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;opacity:0.5;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070592"] {top:109px;left:calc(50% - 480px + 226px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070592"] .tn-atom {white-space:normal;font-size:17px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070592"] {top:287px;left:calc(50% - 320px + 36px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070592"] {top:304px;left:calc(50% - 240px + 43px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070592"] {top:267px;left:calc(50% - 160px + 10px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070592"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070590"]{color:#000000;z-index:22;top:145px;left:calc(50% - 600px + 294px);width:202px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070590"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.25;font-weight:400;letter-spacing:-0.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070590"] {top:131px;left:calc(50% - 480px + 226px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070590"] .tn-atom {white-space:normal;font-size:17px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070590"] {top:308px;left:calc(50% - 320px + 36px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070590"] {top:324px;left:calc(50% - 240px + 43px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070590"] {top:287px;left:calc(50% - 160px + 10px);width:148px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070590"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070587"]{color:#000000;z-index:23;top:179px;left:calc(50% - 600px + 750px);width:202px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070587"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;opacity:0.5;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070587"] {top:158px;left:calc(50% - 480px + 601px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070587"] .tn-atom {white-space:normal;font-size:17px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070587"] {top:206px;left:calc(50% - 320px + 231px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070587"] {top:291px;left:calc(50% - 240px + 278px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070587"] {top:516px;left:calc(50% - 160px + 10px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070587"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070585"]{color:#000000;z-index:24;top:202px;left:calc(50% - 600px + 750px);width:202px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070585"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.25;font-weight:400;letter-spacing:-0.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070585"] {top:177px;left:calc(50% - 480px + 601px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070585"] .tn-atom {white-space:normal;font-size:17px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070585"] {top:226px;left:calc(50% - 320px + 231px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070585"] {top:310px;left:calc(50% - 240px + 278px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070585"] {top:535px;left:calc(50% - 160px + 10px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070585"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070583"]{color:#000000;z-index:25;top:144px;left:calc(50% - 600px + 750px);width:202px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070583"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.15;font-weight:400;letter-spacing:-0.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070583"] {top:130px;left:calc(50% - 480px + 601px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070583"] .tn-atom {white-space:normal;font-size:17px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070583"] {top:173px;left:calc(50% - 320px + 231px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070583"] {top:263px;left:calc(50% - 240px + 278px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070583"] {top:491px;left:calc(50% - 160px + 10px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070583"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070581"]{color:#000000;z-index:26;top:122px;left:calc(50% - 600px + 750px);width:202px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070581"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;opacity:0.5;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070581"] {top:110px;left:calc(50% - 480px + 601px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070581"] .tn-atom {white-space:normal;font-size:17px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070581"] {top:153px;left:calc(50% - 320px + 231px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070581"] {top:243px;left:calc(50% - 240px + 278px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070581"] {top:472px;left:calc(50% - 160px + 10px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070581"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070580"]{color:#000000;z-index:27;top:200px;left:calc(50% - 600px + 977px);width:186px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070580"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.25;font-weight:400;letter-spacing:-0.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070580"] {top:179px;left:calc(50% - 480px + 789px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070580"] .tn-atom {white-space:normal;font-size:17px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070580"] {top:296px;left:calc(50% - 320px + 433px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070580"] {top:478px;left:calc(50% - 240px + 278px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070580"] {top:456px;left:calc(50% - 160px + 170px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070580"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070577"]{color:#000000;z-index:28;top:178px;left:calc(50% - 600px + 977px);width:186px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070577"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;opacity:0.5;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070577"] {top:160px;left:calc(50% - 480px + 789px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070577"] .tn-atom {white-space:normal;font-size:17px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070577"] {top:276px;left:calc(50% - 320px + 433px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070577"] {top:459px;left:calc(50% - 240px + 278px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070577"] {top:437px;left:calc(50% - 160px + 170px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070577"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070575"]{color:#000000;z-index:29;top:275px;left:calc(50% - 600px + 294px);width:186px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070575"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.25;font-weight:400;letter-spacing:-0.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070575"] {top:289px;left:calc(50% - 480px + 601px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070575"] .tn-atom {white-space:normal;font-size:17px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070575"] {top:342px;left:calc(50% - 320px + 231px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070575"] {top:492px;left:calc(50% - 240px + 43px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070575"] {top:344px;left:calc(50% - 160px + 170px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070575"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070573"]{color:#000000;z-index:30;top:254px;left:calc(50% - 600px + 294px);width:186px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070573"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;opacity:0.5;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070573"] {top:271px;left:calc(50% - 480px + 601px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070573"] .tn-atom {white-space:normal;font-size:17px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070573"] {top:322px;left:calc(50% - 320px + 231px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070573"] {top:474px;left:calc(50% - 240px + 43px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070573"] {top:326px;left:calc(50% - 160px + 170px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070573"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070570"]{color:#000000;z-index:31;top:121px;left:calc(50% - 600px + 49px);width:202px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070570"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;opacity:0.5;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070570"] {top:109px;left:calc(50% - 480px + 38px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070570"] .tn-atom {white-space:normal;font-size:17px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070570"] {top:99px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070570"] {top:133px;left:calc(50% - 240px + 43px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070570"] {top:153px;left:calc(50% - 160px + 10px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070570"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070565"]{color:#000000;z-index:32;top:52px;left:calc(50% - 600px + 47px);width:778px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070565"] .tn-atom{color:#000000;font-size:43px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-2.5px;opacity:0.3;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070565"] {top:49px;left:calc(50% - 480px + 39px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070565"] .tn-atom {white-space:normal;font-size:37px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070565"] {top:52px;left:calc(50% - 320px + 38px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070565"] .tn-atom {white-space:normal;font-size:31px;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070565"] {top:54px;width:360px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070565"] .tn-atom {white-space:normal;line-height:0.9;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070565"] {top:53px;left:calc(50% - 160px + 9px);width:300px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1724360070565"] .tn-atom {white-space:normal;font-size:29px;line-height:0.85;letter-spacing:-1.5px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1725376160261"]{color:#000000;z-index:33;top:144px;left:calc(50% - 600px + 977px);width:202px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1725376160261"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.15;font-weight:400;letter-spacing:-0.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1725376160261"] {top:130px;left:calc(50% - 480px + 790px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1725376160261"] .tn-atom {white-space:normal;font-size:17px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1725376160261"] {top:240px;left:calc(50% - 320px + 433px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1725376160261"] {top:426px;left:calc(50% - 240px + 278px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1725376160261"] {top:411px;left:calc(50% - 160px + 170px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1725376160261"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1725376160265"]{color:#000000;z-index:34;top:122px;left:calc(50% - 600px + 977px);width:202px;height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1725376160265"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;opacity:0.5;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1725376160265"] {top:110px;left:calc(50% - 480px + 790px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1725376160265"] .tn-atom {white-space:normal;font-size:17px;background-size:cover;}}@media screen and (max-width:959px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1725376160265"] {top:220px;left:calc(50% - 320px + 433px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1725376160265"] {top:406px;left:calc(50% - 240px + 278px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789120486 .tn-elem[data-elem-id="1725376160265"] {top:392px;left:calc(50% - 160px + 170px);height:auto;}.mif-tilda #rec789120486 .tn-elem[data-elem-id="1725376160265"] .tn-atom {white-space:normal;font-size:15px;background-size:cover;}} .mif-tilda #rec789109975 .t396__artboard {height:200px;background-color:#f8f8f8;}.mif-tilda #rec789109975 .t396__filter {height:200px;}.mif-tilda #rec789109975 .t396__carrier{height:200px;background-position:center center;background-attachment:scroll;background-size:cover;background-repeat:no-repeat;}@media screen and (max-width:1199px) {.mif-tilda #rec789109975 .t396__artboard,.mif-tilda #rec789109975 .t396__filter,.mif-tilda #rec789109975 .t396__carrier {}.mif-tilda #rec789109975 .t396__filter {}.mif-tilda #rec789109975 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:959px) {.mif-tilda #rec789109975 .t396__artboard,.mif-tilda #rec789109975 .t396__filter,.mif-tilda #rec789109975 .t396__carrier {height:200px;}.mif-tilda #rec789109975 .t396__filter {}.mif-tilda #rec789109975 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:639px) {.mif-tilda #rec789109975 .t396__artboard,.mif-tilda #rec789109975 .t396__filter,.mif-tilda #rec789109975 .t396__carrier {height:340px;}.mif-tilda #rec789109975 .t396__filter {}.mif-tilda #rec789109975 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:479px) {.mif-tilda #rec789109975 .t396__artboard,.mif-tilda #rec789109975 .t396__filter,.mif-tilda #rec789109975 .t396__carrier {height:440px;}.mif-tilda #rec789109975 .t396__filter {}.mif-tilda #rec789109975 .t396__carrier {background-attachment:scroll;}}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1470209944682"]{color:#000000;text-align:center;z-index:2;top:70px;left:calc(50% - 600px + 87px);width:1026px;height:auto;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1470209944682"] .tn-atom{color:#000000;font-size:100px;font-family:'Circe',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724315608201"]{z-index:3;top:0px;left:calc(50% - 600px + 0px);width:1200px;height:auto;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724315608201"] .tn-atom{background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724315608201"] .tn-atom__img {}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724315791161"]{z-index:4;top:8px;left:calc(50% - 600px + 20px);width:1144px;height:1px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724315791161"] .tn-atom{background-color:#e6e6e6;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724316433953"]{color:#000000;z-index:5;top:397px;left:calc(50% - 600px + 63px);width:25px;height:auto;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724316433953"] .tn-atom{color:#000000;font-size:14px;font-family:'Circe',Arial,sans-serif;line-height:1.4;font-weight:400;background-color:#ff7300;background-position:center center;border-color:transparent ;border-style:solid ;box-shadow:0px 0px 20px 0px rgba(0,0,0,0.3);}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724316433953"] .tn-atom__tip{background-color:#ffffff;border-radius:10px;box-shadow:0px 0px 15px 0px rgba(0,0,0,0.3);width:280px;}@media screen and (max-width:1199px) {}@media screen and (max-width:959px) {}@media screen and (max-width:639px) {}@media screen and (max-width:479px) {}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724319114002"]{color:#000000;z-index:6;top:116px;left:calc(50% - 600px + 19px);width:328px;height:auto;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724319114002"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-0.5px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724319114002"] {left:calc(50% - 480px + 9px);height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724319114002"] {top:109px;width:120px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724319114002"] {top:226px;height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724319114002"] {top:337px;height:auto;}}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724333060627"]{z-index:7;top:85px;left:calc(50% - 600px + 20px);width:1160px;height:1px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724333060627"] .tn-atom{background-color:#e6e6e6;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724333060627"] {left:calc(50% - 480px + 11px);width:939px;}}@media screen and (max-width:959px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724333060627"] {top:88px;left:calc(50% - 320px + 10px);width:620px;}}@media screen and (max-width:639px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724333060627"] {top:156px;left:calc(50% - 240px + 11px);width:457px;}}@media screen and (max-width:479px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724333060627"] {top:198px;left:calc(50% - 160px + 14px);width:293px;}}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362238856"]{color:#000000;text-align:center;z-index:8;top:13px;left:calc(50% - 600px + 19px);width:266px;height:55px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362238856"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.55;font-weight:400;letter-spacing:-0.5px;border-width:1px;border-radius:18px;background-color:#ffffff;background-position:center center;border-color:#d1d1d1 ;border-style:solid;transition:background-color 0.15s ease-in-out,color 0.15s ease-in-out,border-color 0.15s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362238856"] .tn-atom:hover {background-color:#e8e4ec;background-image:none;}}@media screen and (max-width:1199px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362238856"] {left:calc(50% - 480px + 10px);width:229px;height:56px;}}@media screen and (max-width:959px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362238856"] {top:12px;width:109px;height:60px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362238856"] .tn-atom{font-size:16px;line-height:1;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362238856"] {top:15px;width:151px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362238856"] .tn-atom{font-size:19px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362238856"] {top:19px;left:calc(50% - 160px + 10px);width:199px;height:53px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362238856"] .tn-atom{font-size:17px;background-size:cover;}}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362306767"]{color:#000000;text-align:center;z-index:9;top:13px;left:calc(50% - 600px + 499px);width:224px;height:55px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362306767"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.55;font-weight:400;letter-spacing:-0.5px;border-width:1px;border-radius:18px;background-color:#ffffff;background-position:center center;border-color:#d1d1d1 ;border-style:solid;transition:background-color 0.15s ease-in-out,color 0.15s ease-in-out,border-color 0.15s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362306767"] .tn-atom:hover {background-color:#e8e4ec;background-image:none;}}@media screen and (max-width:1199px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362306767"] {left:calc(50% - 480px + 406px);width:181px;height:56px;}}@media screen and (max-width:959px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362306767"] {top:12px;left:calc(50% - 320px + 223px);width:110px;height:60px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362306767"] .tn-atom{font-size:16px;line-height:1;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362306767"] {top:80px;left:calc(50% - 240px + 9px);width:178px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362306767"] .tn-atom{font-size:19px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362306767"] {top:125px;left:calc(50% - 160px + 10px);width:165px;height:53px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362306767"] .tn-atom{font-size:17px;background-size:cover;}}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362302349"]{color:#000000;text-align:center;z-index:10;top:13px;left:calc(50% - 600px + 285px);width:214px;height:55px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362302349"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.55;font-weight:400;letter-spacing:-0.5px;border-width:1px;border-radius:18px;background-color:#ffffff;background-position:center center;border-color:#d1d1d1 ;border-style:solid;transition:background-color 0.15s ease-in-out,color 0.15s ease-in-out,border-color 0.15s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362302349"] .tn-atom:hover {background-color:#e8e4ec;background-image:none;}}@media screen and (max-width:1199px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362302349"] {left:calc(50% - 480px + 239px);width:167px;height:56px;}}@media screen and (max-width:959px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362302349"] {top:12px;left:calc(50% - 320px + 119px);width:104px;height:60px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362302349"] .tn-atom{font-size:16px;line-height:1;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362302349"] {top:15px;left:calc(50% - 240px + 161px);width:180px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362302349"] .tn-atom{font-size:19px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362302349"] {top:72px;left:calc(50% - 160px + 125px);width:146px;height:53px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362302349"] .tn-atom{font-size:17px;background-size:cover;}}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362309473"]{color:#000000;text-align:center;z-index:11;top:13px;left:calc(50% - 600px + 723px);width:157px;height:55px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362309473"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.55;font-weight:400;letter-spacing:-0.5px;border-width:1px;border-radius:18px;background-color:#ffffff;background-position:center center;border-color:#d1d1d1 ;border-style:solid;transition:background-color 0.15s ease-in-out,color 0.15s ease-in-out,border-color 0.15s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362309473"] .tn-atom:hover {background-color:#e8e4ec;background-image:none;}}@media screen and (max-width:1199px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362309473"] {left:calc(50% - 480px + 587px);width:127px;height:56px;}}@media screen and (max-width:959px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362309473"] {top:12px;left:calc(50% - 320px + 331px);width:99px;height:60px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362309473"] .tn-atom{font-size:16px;line-height:1;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362309473"] {top:14px;left:calc(50% - 240px + 341px);width:130px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362309473"] .tn-atom{font-size:19px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362309473"] {top:19px;left:calc(50% - 160px + 209px);width:104px;height:53px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362309473"] .tn-atom{font-size:17px;background-size:cover;}}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362313779"]{color:#000000;text-align:center;z-index:12;top:13px;left:calc(50% - 600px + 880px);width:163px;height:55px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362313779"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.55;font-weight:400;letter-spacing:-0.5px;border-width:1px;border-radius:18px;background-color:#ffffff;background-position:center center;border-color:#d1d1d1 ;border-style:solid;transition:background-color 0.15s ease-in-out,color 0.15s ease-in-out,border-color 0.15s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362313779"] .tn-atom:hover {background-color:#e8e4ec;background-image:none;}}@media screen and (max-width:1199px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362313779"] {left:calc(50% - 480px + 714px);width:124px;height:56px;}}@media screen and (max-width:959px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362313779"] {top:12px;left:calc(50% - 320px + 429px);width:105px;height:60px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362313779"] .tn-atom{font-size:16px;line-height:1;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362313779"] {top:80px;left:calc(50% - 240px + 187px);width:141px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362313779"] .tn-atom{font-size:19px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362313779"] {top:72px;left:calc(50% - 160px + 10px);width:115px;height:53px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724362313779"] .tn-atom{font-size:17px;background-size:cover;}}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229973"]{color:#000000;z-index:13;top:113px;left:calc(50% - 600px + 748px);width:298px;height:auto;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229973"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.1;font-weight:400;letter-spacing:-1px;background-position:center center;border-color:transparent ;border-style:solid;}@media screen and (max-width:1199px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229973"] {top:115px;left:calc(50% - 480px + 522px);height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229973"] {top:108px;left:calc(50% - 320px + 301px);width:168px;height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229973"] {top:179px;left:calc(50% - 240px + 265px);width:143px;height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229973"] {top:222px;left:calc(50% - 160px + 10px);width:299px;height:auto;}}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229972"]{color:#ffffff;text-align:center;z-index:14;top:103px;left:calc(50% - 600px + 1030px);width:151px;height:41px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229972"] .tn-atom{color:#ffffff;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.55;font-weight:400;letter-spacing:-0.5px;border-radius:8px;background-color:#000000;background-position:center center;border-color:transparent ;border-style:solid;transition:background-color 0.2s ease-in-out,color 0.2s ease-in-out,border-color 0.2s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229972"] .tn-atom:hover {background-color:#5c5c5c;background-image:none;}}@media screen and (max-width:1199px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229972"] {top:105px;left:calc(50% - 480px + 799px);width:153px;}}@media screen and (max-width:959px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229972"] {top:111px;left:calc(50% - 320px + 447px);width:184px;}}@media screen and (max-width:639px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229972"] {top:226px;left:calc(50% - 240px + 265px);width:206px;}}@media screen and (max-width:479px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229972"] {top:252px;left:calc(50% - 160px + 10px);width:300px;height:47px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229972"] .tn-atom{font-size:17px;background-size:cover;}}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229970"]{z-index:15;top:104px;left:calc(50% - 600px + 613px);width:38px;height:auto;}@media (min-width:1200px) {.mif-tilda #rec789109975 .tn-elem.t396__elem--anim-hidden[data-elem-id="1724667229970"] {opacity:0;}}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229970"] .tn-atom{background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229970"] .tn-atom__img {}@media screen and (max-width:1199px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229970"] {top:106px;left:calc(50% - 480px + 367px);height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229970"] {top:108px;left:calc(50% - 320px + 174px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229970"] {top:178px;left:calc(50% - 240px + 10px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229970"] {top:335px;left:calc(50% - 160px + 205px);width:44px;height:auto;}}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229965"]{z-index:16;top:104px;left:calc(50% - 600px + 659px);width:39px;height:auto;}@media (min-width:1200px) {.mif-tilda #rec789109975 .tn-elem.t396__elem--anim-hidden[data-elem-id="1724667229965"] {opacity:0;}}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229965"] .tn-atom{background-position:center center;border-color:transparent ;border-style:solid;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229965"] .tn-atom__img {}@media screen and (max-width:1199px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229965"] {top:106px;left:calc(50% - 480px + 413px);height:auto;}}@media screen and (max-width:959px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229965"] {top:108px;left:calc(50% - 320px + 220px);height:auto;}}@media screen and (max-width:639px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229965"] {top:178px;left:calc(50% - 240px + 56px);height:auto;}}@media screen and (max-width:479px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724667229965"] {top:335px;left:calc(50% - 160px + 264px);width:46px;height:auto;}}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724760544151"]{color:#000000;text-align:center;z-index:17;top:12px;left:calc(50% - 600px + 1042px);width:138px;height:56px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724760544151"] .tn-atom{color:#000000;font-size:19px;font-family:'Circe',Arial,sans-serif;line-height:1.55;font-weight:400;letter-spacing:-0.5px;border-width:1px;border-radius:18px;background-color:#ffffff;background-position:center center;border-color:#d1d1d1 ;border-style:solid;transition:background-color 0.15s ease-in-out,color 0.15s ease-in-out,border-color 0.15s ease-in-out;}@media (hover),(min-width:0\0) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724760544151"] .tn-atom:hover {background-color:#e8e4ec;background-image:none;}}@media screen and (max-width:1199px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724760544151"] {top:13px;left:calc(50% - 480px + 838px);width:115px;height:56px;}}@media screen and (max-width:959px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724760544151"] {top:12px;left:calc(50% - 320px + 532px);width:99px;height:60px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724760544151"] .tn-atom{font-size:16px;line-height:1;background-size:cover;}}@media screen and (max-width:639px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724760544151"] {top:80px;left:calc(50% - 240px + 327px);width:141px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724760544151"] .tn-atom{font-size:19px;background-size:cover;}}@media screen and (max-width:479px) {.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724760544151"] {top:125px;left:calc(50% - 160px + 175px);width:119px;height:53px;}.mif-tilda #rec789109975 .tn-elem[data-elem-id="1724760544151"] .tn-atom{font-size:17px;background-size:cover;}} @media screen and (max-width:560px){.mif-tilda #rec789246185 .t-popup__close-icon g{fill:#ffffff !important;}} .mif-tilda #rec789246185 .t-popup__container{border-radius:26px;overflow:hidden;} .mif-tilda #rec789246185 .t-form__successbox,.mif-tilda #rec789246185 .t-form__errorbox-wrapper{border-radius:26px;} .mif-tilda #rec789246185 input::-webkit-input-placeholder {color:#000000;opacity:0.5;}.mif-tilda #rec789246185 input::-moz-placeholder{color:#000000;opacity:0.5;}.mif-tilda #rec789246185 input:-moz-placeholder {color:#000000;opacity:0.5;}.mif-tilda #rec789246185 input:-ms-input-placeholder{color:#000000;opacity:0.5;}.mif-tilda #rec789246185 textarea::-webkit-input-placeholder {color:#000000;opacity:0.5;}.mif-tilda #rec789246185 textarea::-moz-placeholder{color:#000000;opacity:0.5;}.mif-tilda #rec789246185 textarea:-moz-placeholder {color:#000000;opacity:0.5;}.mif-tilda #rec789246185 textarea:-ms-input-placeholder{color:#000000;opacity:0.5;} @media (hover:hover),(min-width:0\0) {.mif-tilda #rec789246185 .t-submit:hover {background-color:#4c4c4c !important;}.mif-tilda #rec789246185 .t-submit:focus-visible {background-color:#4c4c4c !important;}} .mif-tilda #rec789246185 .t702__title{color:#000000;font-weight:600;font-family:'Circe';}@media screen and (min-width:900px){.mif-tilda #rec789246185 .t702__title{font-size:41px;line-height:0.9;}}.mif-tilda #rec789246185 .t702__descr{font-size:20px;line-height:1.25;color:#2f2f2f;font-weight:400;font-family:'Circe';} .mif-tilda .t958__slider { margin: unset; } .mif-tilda .t-store__load-more-btn { margin-top: 10px; } .mif-tilda .t-btn_sm { height: 41px; font-size: 17px; padding-left: 50px; padding-right: 52px; } .mif-tilda .lego-book_animated.hover .lego-book__pay-block:hover, .mif-tilda .lego-book_animated:not(.hover-disabled) .lego-book__cover:hover+.lego-book__description-wrapper .lego-book__pay-block { background: rgb(239 242 243 / 0.9); } .mif-tilda .c-book-list .c-book-buy-panel{ z-index: 200; }.promo-page__title{display: none;}</style> <div class="mif-tilda"> <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css2?family=Cormorant:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700"> <div id="allrecords" class="t-records" data-hook="blocks-collection-content-node" data-tilda-project-id="2619031" data-tilda-page-id="53674351" data-tilda-formskey="bf81bb30dbd8d54142f7efa11b9fcbb2" data-tilda-lazy="yes" data-tilda-root-zone="com" data-tilda-ts="y"> <div id="rec788787379" class="r t-rec t-rec_pb_0 t-rec_pb-res-480_15" style="padding-bottom:0px; " data-animationappear="off" data-record-type="396"> <!-- T396 --> <div class="t396"> <div class="t396__artboard" data-artboard-recid="788787379" data-artboard-screens="320,480,640,960,1200" data-artboard-height="140" data-artboard-valign="center" data-artboard-upscale="grid" data-artboard-height-res-320="80" data-artboard-height-res-480="120"> <div class="t396__carrier" data-artboard-recid="788787379"></div> <div class="t396__filter" data-artboard-recid="788787379"></div> <div class="t396__elem tn-elem tn-elem__7887873791724315286539" data-elem-id="1724315286539" data-elem-type="text" data-field-top-value="31" data-field-left-value="320" data-field-width-value="289" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="14" data-field-left-res-320-value="4" data-field-top-res-480-value="34" data-field-left-res-480-value="1" data-field-top-res-640-value="35" data-field-left-res-640-value="0" data-field-top-res-960-value="33" data-field-left-res-960-value="200"> <div class="tn-atom" field="tn_text_1724315286539">&#x41A;&#x443;&#x440;&#x441;&#x44B;</div> </div> <div class="t396__elem tn-elem tn-elem__7887873791724315300378" data-elem-id="1724315300378" data-elem-type="button" data-field-top-value="52" data-field-left-value="598" data-field-height-value="87" data-field-width-value="356" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="16" data-field-left-res-320-value="180" data-field-top-res-480-value="43" data-field-left-res-480-value="219" data-field-top-res-640-value="56" data-field-left-res-640-value="275" data-field-top-res-960-value="54" data-field-left-res-960-value="479"> <a class="tn-atom" href="https://www.mann-ivanov-ferber.ru/events/" target="_blank">&#x438; &#x43C;&#x435;&#x440;&#x43E;&#x43F;&#x440;&#x438;&#x44F;&#x442;&#x438;&#x44F;</a> </div> </div> </div> <!-- /T396 --> </div> <div id="rec789343240" class="r t-rec t-screenmin-480px" style=" " data-animationappear="off" data-record-type="396" data-screen-min="480px"> <!-- T396 --> <div class="t396"> <div class="t396__artboard" data-artboard-recid="789343240" data-artboard-screens="320,480,640,960,1200" data-artboard-height="40" data-artboard-valign="center" data-artboard-upscale="grid" data-artboard-height-res-320="40" data-artboard-height-res-960="30"> <div class="t396__carrier" data-artboard-recid="789343240"></div> <div class="t396__filter" data-artboard-recid="789343240"></div> <div class="t396__elem tn-elem tn-elem__7893432401724413355660" data-elem-id="1724413355660" data-elem-type="text" data-field-top-value="21" data-field-left-value="22" data-field-height-value="12" data-field-width-value="367" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-textfit-value="autoheight" data-field-top-res-320-value="23" data-field-left-res-320-value="11" data-field-top-res-480-value="14" data-field-top-res-640-value="11" data-field-left-res-640-value="10" data-field-top-res-960-value="11" data-field-left-res-960-value="12"> <div class="tn-atom" field="tn_text_1724413355660">&#x43A;&#x443;&#x440;&#x441; &#x43D;&#x435;&#x434;&#x435;&#x43B;&#x438;</div> </div> </div> </div> <!-- /T396 --> </div> <div id="rec789366057" class="r t-rec t-rec_pt_0 t-rec_pb_0 t-screenmin-480px" style="padding-top:0px;padding-bottom:0px; " data-record-type="3" data-screen-min="480px"> <!-- T107 --> <div class="t107"> <div class="t-align_center" itemscope itemtype="http://schema.org/ImageObject"> <meta itemprop="image" content="https://static.tildacdn.com/tild3134-6532-4162-a661-653337663734/1400x380-3.jpg"> <a class="t107__link" href="https://www.mann-ivanov-ferber.ru/courses/tseh/" target="_blank"> <img class="t-img t-width t107__width t-width_12" src="https://thb.tildacdn.com/tild3134-6532-4162-a661-653337663734/-/empty/1400x380-3.jpg" data-original="https://static.tildacdn.com/tild3134-6532-4162-a661-653337663734/1400x380-3.jpg" imgfield="img" alt> </a> </div> </div> </div> <div id="rec787911525" class="r t-rec t-rec_pt_0 t-rec_pt-res-480_0 t-rec_pb_0 t-rec_pb-res-480_30 t-screenmax-480px" style="padding-top:0px;padding-bottom:0px; " data-record-type="3" data-screen-max="480px"> <!-- T107 --> <div class="t107"> <div class="t-align_center" itemscope itemtype="http://schema.org/ImageObject"> <meta itemprop="image" content="https://static.tildacdn.com/tild3435-6364-4039-a633-303532646131/480x218-2.jpg"> <a class="t107__link" href="https://www.mann-ivanov-ferber.ru/courses/tseh/" target="_blank"> <img class="t-img t-width t107__width t-width_12" src="https://thb.tildacdn.com/tild3435-6364-4039-a633-303532646131/-/empty/480x218-2.jpg" data-original="https://static.tildacdn.com/tild3435-6364-4039-a633-303532646131/480x218-2.jpg" imgfield="img" alt> </a> </div> </div> </div> <div id="rec790164042" class="r t-rec" style=" " data-animationappear="off" data-record-type="396"> <!-- T396 --> <div class="t396"> <div class="t396__artboard" data-artboard-recid="790164042" data-artboard-screens="320,480,640,960,1200" data-artboard-height="590" data-artboard-valign="center" data-artboard-upscale="grid" data-artboard-height-res-320="800" data-artboard-height-res-480="360" data-artboard-height-res-640="390" data-artboard-height-res-960="540"> <div class="t396__carrier" data-artboard-recid="790164042"></div> <div class="t396__filter" data-artboard-recid="790164042"></div> <div class="t396__elem tn-elem tn-elem__7901640421724331222900" data-elem-id="1724331222900" data-elem-type="button" data-field-top-value="36" data-field-left-value="20" data-field-height-value="250" data-field-width-value="380" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="5" data-field-left-res-320-value="-11" data-field-height-res-320-value="182" data-field-width-res-320-value="170" data-field-top-res-480-value="15" data-field-height-res-480-value="158" data-field-width-res-480-value="150" data-field-top-res-640-value="15" data-field-left-res-640-value="9" data-field-height-res-640-value="167" data-field-width-res-640-value="202" data-field-top-res-960-value="26" data-field-left-res-960-value="10" data-field-height-res-960-value="220" data-field-width-res-960-value="310"> <a class="tn-atom" href="https://www.mann-ivanov-ferber.ru/courses/books-and-texts/" target="_blank"></a> </div> <div class="t396__elem tn-elem tn-elem__7901640421724330959483" data-elem-id="1724330959483" data-elem-type="image" data-field-top-value="148" data-field-left-value="256" data-field-width-value="188" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-filewidth-value="195" data-field-fileheight-value="139" data-field-top-res-320-value="134" data-field-left-res-320-value="-1" data-field-width-res-320-value="109" data-field-top-res-480-value="86" data-field-left-res-480-value="100" data-field-width-res-480-value="96" data-field-top-res-640-value="69" data-field-left-res-640-value="136" data-field-width-res-640-value="114" data-field-top-res-960-value="147" data-field-left-res-960-value="199" data-field-width-res-960-value="150"> <div class="tn-atom"> <img class="tn-atom__img t-img" data-original="https://static.tildacdn.com/tild3634-3936-4466-a138-613539353561/1.svg" alt imgfield="tn_img_1724330959483"> </div> </div> <div class="t396__elem tn-elem tn-elem__7901640421724331283520" data-elem-id="1724331283520" data-elem-type="button" data-field-top-value="35" data-field-left-value="410" data-field-height-value="250" data-field-width-value="380" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="5" data-field-left-res-320-value="161" data-field-height-res-320-value="182" data-field-width-res-320-value="170" data-field-top-res-480-value="15" data-field-left-res-480-value="166" data-field-height-res-480-value="158" data-field-width-res-480-value="150" data-field-top-res-640-value="15" data-field-left-res-640-value="218" data-field-height-res-640-value="167" data-field-width-res-640-value="202" data-field-top-res-960-value="25" data-field-left-res-960-value="326" data-field-height-res-960-value="220" data-field-width-res-960-value="310"> <a class="tn-atom" href="https://www.mann-ivanov-ferber.ru/courses/psychology-and-health" target="_blank"></a> </div> <div class="t396__elem tn-elem tn-elem__7901640421724330959487" data-elem-id="1724330959487" data-elem-type="image" data-field-top-value="153" data-field-left-value="607" data-field-width-value="230" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-filewidth-value="186" data-field-fileheight-value="118" data-field-top-res-320-value="133" data-field-left-res-320-value="169" data-field-width-res-320-value="112" data-field-top-res-480-value="106" data-field-left-res-480-value="244" data-field-width-res-480-value="104" data-field-top-res-640-value="90" data-field-left-res-640-value="330" data-field-width-res-640-value="121" data-field-top-res-960-value="150" data-field-left-res-960-value="499" data-field-width-res-960-value="169"> <div class="tn-atom"> <img class="tn-atom__img t-img" data-original="https://static.tildacdn.com/tild3831-6633-4334-b761-363034343937/2.svg" alt imgfield="tn_img_1724330959487"> </div> </div> <div class="t396__elem tn-elem tn-elem__7901640421724331285895" data-elem-id="1724331285895" data-elem-type="button" data-field-top-value="35" data-field-left-value="800" data-field-height-value="250" data-field-width-value="380" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="195" data-field-left-res-320-value="-11" data-field-height-res-320-value="182" data-field-width-res-320-value="170" data-field-top-res-480-value="15" data-field-left-res-480-value="322" data-field-height-res-480-value="158" data-field-width-res-480-value="150" data-field-top-res-640-value="13" data-field-left-res-640-value="428" data-field-height-res-640-value="167" data-field-width-res-640-value="202" data-field-top-res-960-value="25" data-field-left-res-960-value="642" data-field-height-res-960-value="220" data-field-width-res-960-value="310"> <a class="tn-atom" href="https://www.mann-ivanov-ferber.ru/courses/career-and-business" target="_blank"></a> </div> <div class="t396__elem tn-elem tn-elem__7901640421724330959489" data-elem-id="1724330959489" data-elem-type="image" data-field-top-value="117" data-field-left-value="1036" data-field-width-value="138" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-filewidth-value="110" data-field-fileheight-value="146" data-field-top-res-320-value="313" data-field-left-res-320-value="5" data-field-width-res-320-value="65" data-field-top-res-480-value="85" data-field-left-res-480-value="425" data-field-width-res-480-value="58" data-field-top-res-640-value="71" data-field-left-res-640-value="567" data-field-width-res-640-value="73" data-field-top-res-960-value="121" data-field-left-res-960-value="833" data-field-width-res-960-value="97"> <div class="tn-atom"> <img class="tn-atom__img t-img" data-original="https://static.tildacdn.com/tild3666-6633-4337-b632-623733646663/3.svg" alt imgfield="tn_img_1724330959489"> </div> </div> <div class="t396__elem tn-elem tn-elem__7901640421724331291437" data-elem-id="1724331291437" data-elem-type="button" data-field-top-value="300" data-field-left-value="20" data-field-height-value="250" data-field-width-value="380" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="195" data-field-left-res-320-value="161" data-field-height-res-320-value="182" data-field-width-res-320-value="170" data-field-top-res-480-value="179" data-field-left-res-480-value="10" data-field-height-res-480-value="158" data-field-width-res-480-value="150" data-field-top-res-640-value="193" data-field-left-res-640-value="9" data-field-height-res-640-value="167" data-field-width-res-640-value="202" data-field-top-res-960-value="255" data-field-left-res-960-value="10" data-field-height-res-960-value="220" data-field-width-res-960-value="310"> <a class="tn-atom" href="https://www.mann-ivanov-ferber.ru/courses/lectures" target="_blank"></a> </div> <div class="t396__elem tn-elem tn-elem__7901640421724330959491" data-elem-id="1724330959491" data-elem-type="image" data-field-top-value="383" data-field-left-value="245" data-field-width-value="135" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-filewidth-value="133" data-field-fileheight-value="154" data-field-top-res-320-value="301" data-field-left-res-320-value="172" data-field-width-res-320-value="71" data-field-top-res-480-value="239" data-field-left-res-480-value="90" data-field-width-res-480-value="64" data-field-top-res-640-value="246" data-field-left-res-640-value="119" data-field-width-res-640-value="80" data-field-top-res-960-value="337" data-field-left-res-960-value="186" data-field-width-res-960-value="113"> <div class="tn-atom"> <img class="tn-atom__img t-img" data-original="https://static.tildacdn.com/tild3963-3061-4135-b238-333061633165/4.svg" alt imgfield="tn_img_1724330959491"> </div> </div> <div class="t396__elem tn-elem tn-elem__7901640421724331291439" data-elem-id="1724331291439" data-elem-type="button" data-field-top-value="300" data-field-left-value="410" data-field-height-value="250" data-field-width-value="380" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="384" data-field-left-res-320-value="-11" data-field-height-res-320-value="102" data-field-width-res-320-value="340" data-field-top-res-480-value="179" data-field-left-res-480-value="166" data-field-height-res-480-value="158" data-field-width-res-480-value="150" data-field-top-res-640-value="193" data-field-left-res-640-value="218" data-field-height-res-640-value="167" data-field-width-res-640-value="202" data-field-top-res-960-value="255" data-field-left-res-960-value="326" data-field-height-res-960-value="220" data-field-width-res-960-value="310"> <a class="tn-atom" href="https://www.mann-ivanov-ferber.ru/courses/free" target="_blank"></a> </div> <div class="t396__elem tn-elem tn-elem__7901640421724330959493" data-elem-id="1724330959493" data-elem-type="image" data-field-top-value="389" data-field-left-value="642" data-field-width-value="138" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-filewidth-value="123" data-field-fileheight-value="217" data-field-top-res-320-value="410" data-field-left-res-320-value="217" data-field-width-res-320-value="70" data-field-top-res-480-value="258" data-field-left-res-480-value="255" data-field-width-res-480-value="61" data-field-top-res-640-value="255" data-field-left-res-640-value="341" data-field-width-res-640-value="86" data-field-top-res-960-value="346" data-field-left-res-960-value="521" data-field-width-res-960-value="112"> <div class="tn-atom"> <img class="tn-atom__img t-img" data-original="https://static.tildacdn.com/tild6539-3730-4531-a131-653463656265/5.svg" alt imgfield="tn_img_1724330959493"> </div> </div> <div class="t396__elem tn-elem tn-elem__7901640421724421489627" data-elem-id="1724421489627" data-elem-type="shape" data-field-top-value="299" data-field-left-value="800" data-field-height-value="250" data-field-width-value="380" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="509" data-field-left-res-320-value="-11" data-field-height-res-320-value="265" data-field-width-res-320-value="341" data-field-top-res-480-value="179" data-field-left-res-480-value="322" data-field-height-res-480-value="158" data-field-width-res-480-value="150" data-field-top-res-640-value="193" data-field-left-res-640-value="428" data-field-height-res-640-value="167" data-field-width-res-640-value="202" data-field-top-res-960-value="255" data-field-left-res-960-value="642" data-field-height-res-960-value="220" data-field-width-res-960-value="310"> <div class="tn-atom"> </div> </div> <div class="t396__elem tn-elem tn-elem__7901640421724315836050" data-elem-id="1724315836050" data-elem-type="text" data-field-top-value="58" data-field-left-value="46" data-field-width-value="239" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="21" data-field-left-res-320-value="3" data-field-width-res-320-value="142" data-field-top-res-480-value="30" data-field-left-res-480-value="21" data-field-width-res-480-value="107" data-field-top-res-640-value="33" data-field-left-res-640-value="22" data-field-width-res-640-value="140" data-field-top-res-960-value="46" data-field-left-res-960-value="31" data-field-width-res-960-value="216"> <div class="tn-atom" field="tn_text_1724315836050">&#xAB;&#x41A;&#x43D;&#x438;&#x436;&#x43D;&#x44B;&#x435;&#xBB; &#x43F;&#x440;&#x43E;&#x444;&#x435;&#x441;&#x441;&#x438;&#x438;</div> </div> <div class="t396__elem tn-elem tn-elem__7901640421724321314106" data-elem-id="1724321314106" data-elem-type="text" data-field-top-value="58" data-field-left-value="435" data-field-width-value="199" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="22" data-field-left-res-320-value="174" data-field-width-res-320-value="143" data-field-top-res-480-value="30" data-field-left-res-480-value="177" data-field-width-res-480-value="103" data-field-top-res-640-value="33" data-field-left-res-640-value="231" data-field-width-res-640-value="135" data-field-top-res-960-value="46" data-field-left-res-960-value="349" data-field-width-res-960-value="167"> <div class="tn-atom" field="tn_text_1724321314106">&#x414;&#x443;&#x448;&#x430;, &#x443;&#x43C; &#x438;&#xA0;&#x442;&#x435;&#x43B;&#x43E;</div> </div> <div class="t396__elem tn-elem tn-elem__7901640421724321326224" data-elem-id="1724321326224" data-elem-type="text" data-field-top-value="58" data-field-left-value="825" data-field-width-value="204" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="210" data-field-left-res-320-value="3" data-field-width-res-320-value="153" data-field-top-res-480-value="30" data-field-left-res-480-value="333" data-field-width-res-480-value="84" data-field-top-res-640-value="32" data-field-left-res-640-value="441" data-field-width-res-640-value="111" data-field-top-res-960-value="46" data-field-left-res-960-value="668" data-field-width-res-960-value="167"> <div class="tn-atom" field="tn_text_1724321326224">&#x41A;&#x430;&#x440;&#x44C;&#x435;&#x440;&#x430; &#x438;&#xA0;&#x431;&#x438;&#x437;&#x43D;&#x435;&#x441;</div> </div> <div class="t396__elem tn-elem tn-elem__7901640421724321336722" data-elem-id="1724321336722" data-elem-type="text" data-field-top-value="325" data-field-left-value="46" data-field-width-value="281" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="211" data-field-left-res-320-value="174" data-field-width-res-320-value="118" data-field-top-res-480-value="198" data-field-left-res-480-value="21" data-field-width-res-480-value="104" data-field-top-res-640-value="211" data-field-left-res-640-value="22" data-field-width-res-640-value="140" data-field-top-res-960-value="277" data-field-left-res-960-value="31" data-field-width-res-960-value="230"> <div class="tn-atom" field="tn_text_1724321336722">&#x41B;&#x435;&#x43A;&#x442;&#x43E;&#x440;&#x438;&#x438; </div> </div> <div class="t396__elem tn-elem tn-elem__7901640421724321342436" data-elem-id="1724321342436" data-elem-type="text" data-field-top-value="325" data-field-left-value="436" data-field-width-value="281" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="400" data-field-left-res-320-value="3" data-field-width-res-320-value="127" data-field-top-res-480-value="198" data-field-left-res-480-value="177" data-field-width-res-480-value="104" data-field-top-res-640-value="211" data-field-left-res-640-value="231" data-field-width-res-640-value="140" data-field-top-res-960-value="277" data-field-left-res-960-value="350" data-field-width-res-960-value="230"> <div class="tn-atom" field="tn_text_1724321342436">&#x411;&#x435;&#x441;&#x43F;&#x43B;&#x430;&#x442;&#x43D;&#x43E;</div> </div> <div class="t396__elem tn-elem tn-elem__7901640421724322643507" data-elem-id="1724322643507" data-elem-type="image" data-field-top-value="65" data-field-left-value="742" data-field-width-value="28" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-filewidth-value="19" data-field-fileheight-value="16" data-field-top-res-320-value="156" data-field-left-res-320-value="295" data-field-width-res-320-value="20" data-field-top-res-480-value="33" data-field-left-res-480-value="285" data-field-width-res-480-value="20" data-field-top-res-640-value="35" data-field-left-res-640-value="385" data-field-width-res-640-value="20" data-field-top-res-960-value="53" data-field-left-res-960-value="600" data-field-width-res-960-value="20"> <div class="tn-atom"> <img class="tn-atom__img t-img" data-original="https://static.tildacdn.com/tild3465-3265-4635-b362-393634303232/Arrow_1.svg" alt imgfield="tn_img_1724322643507"> </div> </div> <div class="t396__elem tn-elem tn-elem__7901640421724324491843" data-elem-id="1724324491843" data-elem-type="image" data-field-top-value="65" data-field-left-value="351" data-field-width-value="28" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-filewidth-value="19" data-field-fileheight-value="16" data-field-top-res-320-value="156" data-field-left-res-320-value="125" data-field-width-res-320-value="20" data-field-top-res-480-value="33" data-field-left-res-480-value="127" data-field-width-res-480-value="20" data-field-top-res-640-value="35" data-field-left-res-640-value="178" data-field-width-res-640-value="20" data-field-top-res-960-value="53" data-field-left-res-960-value="281" data-field-width-res-960-value="20"> <div class="tn-atom"> <img class="tn-atom__img t-img" data-original="https://static.tildacdn.com/tild3465-3265-4635-b362-393634303232/Arrow_1.svg" alt imgfield="tn_img_1724324491843"> </div> </div> <div class="t396__elem tn-elem tn-elem__7901640421724324501103" data-elem-id="1724324501103" data-elem-type="image" data-field-top-value="335" data-field-left-value="351" data-field-width-value="28" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-filewidth-value="19" data-field-fileheight-value="16" data-field-top-res-320-value="346" data-field-left-res-320-value="295" data-field-width-res-320-value="20" data-field-top-res-480-value="200" data-field-left-res-480-value="127" data-field-width-res-480-value="20" data-field-top-res-640-value="217" data-field-left-res-640-value="178" data-field-width-res-640-value="20" data-field-top-res-960-value="285" data-field-left-res-960-value="281" data-field-width-res-960-value="20"> <div class="tn-atom"> <img class="tn-atom__img t-img" data-original="https://static.tildacdn.com/tild3465-3265-4635-b362-393634303232/Arrow_1.svg" alt imgfield="tn_img_1724324501103"> </div> </div> <div class="t396__elem tn-elem tn-elem__7901640421724324513392" data-elem-id="1724324513392" data-elem-type="image" data-field-top-value="335" data-field-left-value="742" data-field-width-value="28" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-filewidth-value="19" data-field-fileheight-value="16" data-field-top-res-320-value="449" data-field-left-res-320-value="295" data-field-width-res-320-value="20" data-field-top-res-480-value="200" data-field-left-res-480-value="288" data-field-width-res-480-value="20" data-field-top-res-640-value="217" data-field-left-res-640-value="385" data-field-width-res-640-value="20" data-field-top-res-960-value="285" data-field-left-res-960-value="600" data-field-width-res-960-value="20"> <div class="tn-atom"> <img class="tn-atom__img t-img" data-original="https://static.tildacdn.com/tild3465-3265-4635-b362-393634303232/Arrow_1.svg" alt imgfield="tn_img_1724324513392"> </div> </div> <div class="t396__elem tn-elem tn-elem__7901640421724324521304" data-elem-id="1724324521304" data-elem-type="image" data-field-top-value="65" data-field-left-value="1132" data-field-width-value="28" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-filewidth-value="19" data-field-fileheight-value="16" data-field-top-res-320-value="344" data-field-left-res-320-value="125" data-field-width-res-320-value="20" data-field-top-res-480-value="33" data-field-left-res-480-value="440" data-field-width-res-480-value="20" data-field-top-res-640-value="35" data-field-left-res-640-value="596" data-field-width-res-640-value="20" data-field-top-res-960-value="53" data-field-left-res-960-value="919" data-field-width-res-960-value="20"> <div class="tn-atom"> <img class="tn-atom__img t-img" data-original="https://static.tildacdn.com/tild3465-3265-4635-b362-393634303232/Arrow_1.svg" alt imgfield="tn_img_1724324521304"> </div> </div> <div class="t396__elem tn-elem tn-elem__7901640421724326804014" data-elem-id="1724326804014" data-elem-type="image" data-field-top-value="478" data-field-left-value="1032" data-field-width-value="55" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-filewidth-value="41" data-field-fileheight-value="43" data-field-top-res-320-value="693" data-field-left-res-320-value="186" data-field-width-res-320-value="59" data-field-top-res-480-value="285" data-field-left-res-480-value="424" data-field-width-res-480-value="45" data-field-top-res-640-value="315" data-field-left-res-640-value="594" data-field-width-res-640-value="36" data-field-top-res-960-value="419" data-field-left-res-960-value="875" data-field-width-res-960-value="45"> <div class="tn-atom"> <img class="tn-atom__img t-img" data-original="https://static.tildacdn.com/tild3435-6330-4061-b636-656636636332/Group_48095659.svg" alt imgfield="tn_img_1724326804014"> </div> </div> <div class="t396__elem tn-elem tn-elem__7901640421724324540341" data-elem-id="1724324540341" data-elem-type="text" data-field-top-value="217" data-field-left-value="47" data-field-width-value="209" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="72" data-field-left-res-320-value="3" data-field-width-res-320-value="147" data-field-top-res-480-value="107" data-field-left-res-480-value="21" data-field-width-res-480-value="100" data-field-top-res-640-value="126" data-field-left-res-640-value="22" data-field-width-res-640-value="125" data-field-top-res-960-value="169" data-field-left-res-960-value="34" data-field-width-res-960-value="159"> <div class="tn-atom" field="tn_text_1724324540341">&#x41F;&#x438;&#x441;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x43E;, &#x438;&#x437;&#x434;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x43A;&#x43E;&#x435; &#x434;&#x435;&#x43B;&#x43E;, &#x43A;&#x440;&#x435;&#x430;&#x442;&#x438;&#x432;</div> </div> <div class="t396__elem tn-elem tn-elem__7901640421724419887631" data-elem-id="1724419887631" data-elem-type="text" data-field-top-value="483" data-field-left-value="47" data-field-width-value="189" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="238" data-field-left-res-320-value="175" data-field-width-res-320-value="136" data-field-top-res-480-value="273" data-field-left-res-480-value="21" data-field-width-res-480-value="92" data-field-top-res-640-value="316" data-field-left-res-640-value="22" data-field-width-res-640-value="110" data-field-top-res-960-value="416" data-field-left-res-960-value="34" data-field-width-res-960-value="154"> <div class="tn-atom" field="tn_text_1724419887631">&#x41C;&#x438;&#x444;&#x43E;&#x43B;&#x43E;&#x433;&#x438;&#x44F;, &#x43A;&#x443;&#x43B;&#x44C;&#x442;&#x443;&#x440;&#x430;, &#x43F;&#x43E;&#x437;&#x43D;&#x430;&#x43D;&#x438;&#x435;</div> </div> <div class="t396__elem tn-elem tn-elem__7901640421724419892562" data-elem-id="1724419892562" data-elem-type="text" data-field-top-value="483" data-field-left-value="445" data-field-width-value="169" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="427" data-field-left-res-320-value="3" data-field-width-res-320-value="205" data-field-top-res-480-value="273" data-field-left-res-480-value="177" data-field-width-res-480-value="86" data-field-top-res-640-value="316" data-field-left-res-640-value="231" data-field-width-res-640-value="136" data-field-top-res-960-value="416" data-field-left-res-960-value="352" data-field-width-res-960-value="166"> <div class="tn-atom" field="tn_text_1724419892562">&#x41A;&#x443;&#x440;&#x441;&#x44B; &#x432; &#x43F;&#x438;&#x441;&#x44C;&#x43C;&#x430;&#x445;, &#x432;&#x435;&#x431;&#x438;&#x43D;&#x430;&#x440;&#x44B;</div> </div> <div class="t396__elem tn-elem tn-elem__7901640421724419896403" data-elem-id="1724419896403" data-elem-type="text" data-field-top-value="217" data-field-left-value="437" data-field-width-value="162" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="72" data-field-left-res-320-value="175" data-field-width-res-320-value="141" data-field-top-res-480-value="107" data-field-left-res-480-value="177" data-field-width-res-480-value="19" data-field-top-res-640-value="140" data-field-left-res-640-value="231" data-field-width-res-640-value="121" data-field-top-res-960-value="186" data-field-left-res-960-value="349" data-field-width-res-960-value="161"> <div class="tn-atom" field="tn_text_1724419896403">&#x41F;&#x441;&#x438;&#x445;&#x43E;&#x43B;&#x43E;&#x433;&#x438;&#x44F;, &#x437;&#x434;&#x43E;&#x440;&#x43E;&#x432;&#x44C;&#x435;, &#x43E;&#x442;&#x43D;&#x43E;&#x448;&#x435;&#x43D;&#x438;&#x44F;</div> </div> <div class="t396__elem tn-elem tn-elem__7901640421724419900762" data-elem-id="1724419900762" data-elem-type="text" data-field-top-value="217" data-field-left-value="825" data-field-width-value="199" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="259" data-field-left-res-320-value="3" data-field-width-res-320-value="153" data-field-top-res-480-value="107" data-field-left-res-480-value="334" data-field-width-res-480-value="19" data-field-top-res-640-value="140" data-field-left-res-640-value="441" data-field-width-res-640-value="126" data-field-top-res-960-value="186" data-field-left-res-960-value="668" data-field-width-res-960-value="156"> <div class="tn-atom" field="tn_text_1724419900762">&#x41F;&#x440;&#x43E;&#x435;&#x43A;&#x442;&#x44B;, &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435;, &#x43C;&#x430;&#x440;&#x43A;&#x435;&#x442;&#x438;&#x43D;&#x433;</div> </div> <div class="t396__elem tn-elem tn-elem__7901640421724331476067" data-elem-id="1724331476067" data-elem-type="button" data-field-top-value="317" data-field-left-value="826" data-field-height-value="37" data-field-width-value="247" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="527" data-field-left-res-320-value="9" data-field-height-res-320-value="40" data-field-width-res-320-value="275" data-field-top-res-480-value="192" data-field-left-res-480-value="334" data-field-height-res-480-value="22" data-field-width-res-480-value="167" data-field-top-res-640-value="204" data-field-left-res-640-value="446" data-field-height-res-640-value="26" data-field-width-res-640-value="184" data-field-top-res-960-value="271" data-field-left-res-960-value="671" data-field-height-res-960-value="30" data-field-width-res-960-value="234"> <a class="tn-atom" href="https://www.mann-ivanov-ferber.ru/courses/hardskills" target="_blank">&#x41F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x43A;&#x443;&#x43C;&#x44B;: hard skills</a> </div> <div class="t396__elem tn-elem tn-elem__7901640421724331518974" data-elem-id="1724331518974" data-elem-type="button" data-field-top-value="351" data-field-left-value="826" data-field-height-value="37" data-field-width-value="256" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="562" data-field-left-res-320-value="9" data-field-height-res-320-value="40" data-field-width-res-320-value="275" data-field-top-res-480-value="215" data-field-left-res-480-value="334" data-field-height-res-480-value="22" data-field-width-res-480-value="261" data-field-top-res-640-value="228" data-field-left-res-640-value="446" data-field-height-res-640-value="26" data-field-width-res-640-value="155" data-field-top-res-960-value="303" data-field-left-res-960-value="671" data-field-height-res-960-value="30" data-field-width-res-960-value="257"> <a class="tn-atom" href="https://www.mann-ivanov-ferber.ru/courses/professions" target="_blank">&#x41F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x43F;&#x440;&#x43E;&#x444;&#x435;&#x441;&#x441;&#x438;&#x44E;</a> </div> <div class="t396__elem tn-elem tn-elem__7901640421724331523334" data-elem-id="1724331523334" data-elem-type="button" data-field-top-value="386" data-field-left-value="826" data-field-height-value="37" data-field-width-value="200" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="598" data-field-left-res-320-value="9" data-field-height-res-320-value="40" data-field-width-res-320-value="244" data-field-top-res-480-value="238" data-field-left-res-480-value="334" data-field-height-res-480-value="22" data-field-width-res-480-value="261" data-field-top-res-640-value="252" data-field-left-res-640-value="446" data-field-height-res-640-value="26" data-field-width-res-640-value="155" data-field-top-res-960-value="336" data-field-left-res-960-value="671" data-field-height-res-960-value="30" data-field-width-res-960-value="257"> <a class="tn-atom" href="https://www.mann-ivanov-ferber.ru/courses/bestsellers" target="_blank">&#x41A;&#x443;&#x440;&#x441;&#x44B; &#x43C;&#x435;&#x441;&#x44F;&#x446;&#x430;</a> </div> <div class="t396__elem tn-elem tn-elem__7901640421724331524578" data-elem-id="1724331524578" data-elem-type="button" data-field-top-value="421" data-field-left-value="826" data-field-height-value="36" data-field-width-value="216" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="633" data-field-left-res-320-value="9" data-field-height-res-320-value="40" data-field-width-res-320-value="250" data-field-top-res-480-value="261" data-field-left-res-480-value="334" data-field-height-res-480-value="22" data-field-width-res-480-value="237" data-field-top-res-640-value="276" data-field-left-res-640-value="446" data-field-height-res-640-value="25" data-field-width-res-640-value="155" data-field-top-res-960-value="367" data-field-left-res-960-value="671" data-field-height-res-960-value="30" data-field-width-res-960-value="234"> <a class="tn-atom" href="https://www.mann-ivanov-ferber.ru/courses/starts" target="_blank">&#x411;&#x43B;&#x438;&#x436;&#x430;&#x439;&#x448;&#x438;&#x435; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x438;</a> </div> <div class="t396__elem tn-elem tn-elem__7901640421724331525976" data-elem-id="1724331525976" data-elem-type="button" data-field-top-value="456" data-field-left-value="826" data-field-height-value="36" data-field-width-value="188" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="669" data-field-left-res-320-value="9" data-field-height-res-320-value="40" data-field-width-res-320-value="197" data-field-top-res-480-value="284" data-field-left-res-480-value="334" data-field-height-res-480-value="22" data-field-width-res-480-value="187" data-field-top-res-640-value="300" data-field-left-res-640-value="446" data-field-height-res-640-value="26" data-field-width-res-640-value="100" data-field-top-res-960-value="400" data-field-left-res-960-value="671" data-field-height-res-960-value="29" data-field-width-res-960-value="154"> <a class="tn-atom" href="https://www.mann-ivanov-ferber.ru/courses/all" target="_blank">&#x412;&#x441;&#x435; &#x43A;&#x443;&#x440;&#x441;&#x44B;</a> </div> <div class="t396__elem tn-elem tn-elem__7901640421724760830164" data-elem-id="1724760830164" data-elem-type="button" data-field-top-value="490" data-field-left-value="826" data-field-height-value="35" data-field-width-value="254" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="705" data-field-left-res-320-value="9" data-field-height-res-320-value="40" data-field-width-res-320-value="294" data-field-top-res-480-value="304" data-field-left-res-480-value="334" data-field-height-res-480-value="22" data-field-width-res-480-value="187" data-field-top-res-640-value="324" data-field-left-res-640-value="446" data-field-height-res-640-value="25" data-field-width-res-640-value="177" data-field-top-res-960-value="430" data-field-left-res-960-value="671" data-field-height-res-960-value="28" data-field-width-res-960-value="241"> <a class="tn-atom" href="https://www.mann-ivanov-ferber.ru/events/" target="_blank">&#x41E;&#x444;&#x43B;&#x430;&#x439;&#x43D;-&#x43C;&#x435;&#x440;&#x43E;&#x43F;&#x440;&#x438;&#x44F;&#x442;&#x438;&#x44F;</a> </div> </div> </div> <!-- /T396 --> </div> <div id="rec788844612" class="r t-rec t-rec_pt_30 t-rec_pb_45 t-rec_pb-res-480_15" style="padding-top:30px;padding-bottom:45px; " data-animationappear="off" data-record-type="396"> <!-- T396 --> <div class="t396"> <div class="t396__artboard" data-artboard-recid="788844612" data-artboard-screens="320,480,640,960,1200" data-artboard-height="470" data-artboard-valign="center" data-artboard-upscale="grid" data-artboard-height-res-320="680" data-artboard-height-res-480="480" data-artboard-height-res-640="400" data-artboard-height-res-960="430"> <div class="t396__carrier" data-artboard-recid="788844612"></div> <div class="t396__filter" data-artboard-recid="788844612"></div> <div class="t396__elem tn-elem tn-elem__7888446121724315791161" data-elem-id="1724315791161" data-elem-type="shape" data-field-top-value="8" data-field-left-value="20" data-field-height-value="1" data-field-width-value="1144" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-width-res-320-value="300" data-field-width-res-480-value="461" data-field-left-res-640-value="9" data-field-width-res-640-value="611" data-field-width-res-960-value="917"> <div class="tn-atom"> </div> </div> <div class="t396__elem tn-elem tn-elem__7888446121724315836050" data-elem-id="1724315836050" data-elem-type="text" data-field-top-value="52" data-field-left-value="20" data-field-height-value="235" data-field-width-value="637" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-textfit-value="autoheight" data-field-top-res-320-value="41" data-field-width-res-320-value="300" data-field-width-res-480-value="465" data-field-top-res-640-value="42" data-field-left-res-640-value="9" data-field-width-res-640-value="386" data-field-top-res-960-value="52" data-field-left-res-960-value="20" data-field-width-res-960-value="496"> <div class="tn-atom" field="tn_text_1724315836050">&#x41C;&#x44B;&#xA0;&#x432;&#xA0;&#x41C;&#x418;&#x424;&#x435; &#x43B;&#x44E;&#x431;&#x438;&#x43C; &#x443;&#x447;&#x438;&#x442;&#x44C;&#x441;&#x44F;. &#x41F;&#x43E;&#xA0;&#x43A;&#x43D;&#x438;&#x433;&#x430;&#x43C;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x435; &#x441;&#x430;&#x43C;&#x438; &#x438;&#x437;&#x434;&#x430;&#x435;&#x43C;. &#x423;&#xA0;&#x43D;&#x430;&#x448;&#x438;&#x445; &#x430;&#x432;&#x442;&#x43E;&#x440;&#x43E;&#x432; &#x438;&#xA0;&#x43A;&#x43B;&#x430;&#x441;&#x441;&#x43D;&#x44B;&#x445; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442;&#x43E;&#x432;. &#x41C;&#x44B;&#xA0;&#x437;&#x430;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x43B;&#x438; &#x43A;&#x443;&#x440;&#x441;&#x44B;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x433;&#x43E;&#x432;&#x43E;&#x440;&#x438;&#x442;&#x44C; &#x43E;&#xA0;&#x442;&#x43E;&#x43C;, &#x447;&#x442;&#x43E;</div> </div> <div class="t396__elem tn-elem tn-elem__7888446121724316075002" data-elem-id="1724316075002" data-elem-type="text" data-field-top-value="56" data-field-left-value="780" data-field-height-value="63" data-field-width-value="202" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-textfit-value="autoheight" data-field-top-res-320-value="373" data-field-left-res-320-value="9" data-field-width-res-320-value="301" data-field-top-res-480-value="238" data-field-left-res-480-value="10" data-field-top-res-640-value="48" data-field-left-res-640-value="441" data-field-left-res-960-value="570"> <div class="tn-atom" field="tn_text_1724316075002">&#x423;&#xA0;&#x43D;&#x430;&#x441; &#x432;&#x441;&#x435; &#x43E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;: &#x435;&#x441;&#x442;&#x44C; <a href="https://islod.obrnadzor.gov.ru/rlic/details/58703503-b2cb-4c1b-5f07-0fcb6a499b8d/" target="_blank" rel="noreferrer noopener" style="color: rgb(166, 166, 166); font-weight: 400;">&#x43B;&#x438;&#x446;&#x435;&#x43D;&#x437;&#x438;&#x44F;</a><span style="color: rgb(166, 166, 166); font-weight: 400;"> </span>&#x438;&#xA0;&#x43D;&#x430;&#x43B;&#x43E;&#x433;&#x43E;&#x432;&#x44B;&#x439; &#x432;&#x44B;&#x447;&#x435;&#x442; 13%.</div> </div> <div class="t396__elem tn-elem tn-elem__7888446121724316118169" data-elem-id="1724316118169" data-elem-type="text" data-field-top-value="56" data-field-left-value="1063" data-field-height-value="42" data-field-width-value="107" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-textfit-value="autoheight" data-field-top-res-320-value="432" data-field-left-res-320-value="134" data-field-top-res-480-value="238" data-field-left-res-480-value="265" data-field-top-res-640-value="132" data-field-left-res-640-value="441" data-field-left-res-960-value="823"> <div class="tn-atom" field="tn_text_1724316118169">200 000+ &#x432;&#x44B;&#x43F;&#x443;&#x441;&#x43A;&#x43D;&#x438;&#x43A;&#x43E;&#x432;</div> </div> <div class="t396__elem tn-elem tn-elem__7888446121724316139122" data-elem-id="1724316139122" data-elem-type="text" data-field-top-value="387" data-field-left-value="748" data-field-height-value="21" data-field-width-value="298" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-textfit-value="autoheight" data-field-top-res-320-value="509" data-field-left-res-320-value="10" data-field-width-res-320-value="299" data-field-top-res-480-value="328" data-field-left-res-480-value="265" data-field-width-res-480-value="143" data-field-top-res-640-value="255" data-field-left-res-640-value="441" data-field-width-res-640-value="168" data-field-top-res-960-value="347" data-field-left-res-960-value="505"> <div class="tn-atom" field="tn_text_1724316139122">&#x420;&#x430;&#x441;&#x441;&#x44B;&#x43B;&#x43A;&#x430; &#x43E; &#x43D;&#x43E;&#x432;&#x44B;&#x445; &#x43A;&#x443;&#x440;&#x441;&#x430;&#x445; &#x438; &#x441;&#x43A;&#x438;&#x434;&#x43A;&#x430;&#x445;</div> </div> <div class="t396__elem tn-elem tn-elem__7888446121724316285874" data-elem-id="1724316285874" data-elem-type="button" data-field-top-value="377" data-field-left-value="1030" data-field-height-value="41" data-field-width-value="151" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="539" data-field-left-res-320-value="10" data-field-height-res-320-value="47" data-field-width-res-320-value="300" data-field-top-res-480-value="377" data-field-left-res-480-value="265" data-field-width-res-480-value="206" data-field-top-res-640-value="306" data-field-left-res-640-value="441" data-field-width-res-640-value="184" data-field-top-res-960-value="337" data-field-left-res-960-value="782" data-field-width-res-960-value="153"> <a class="tn-atom" href="https://www.mann-ivanov-ferber.ru/courses/books-and-texts/#popup:zapis">&#x41F;&#x43E;&#x434;&#x43F;&#x438;&#x441;&#x430;&#x442;&#x44C;&#x441;&#x44F;</a> </div> <div class="t396__elem tn-elem tn-elem__7888446121724316566856" data-elem-id="1724316566856" data-elem-type="button" data-field-top-value="236" data-field-left-value="451" data-field-height-value="55" data-field-width-value="123" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="261" data-field-left-res-320-value="32" data-field-top-res-480-value="167" data-field-left-res-480-value="104" data-field-top-res-640-value="168" data-field-left-res-640-value="286" data-field-top-res-960-value="210" data-field-left-res-960-value="375"> <a class="tn-atom" href="#znaem">&#x437;&#x43D;&#x430;&#x435;&#x43C;,</a> </div> <div class="t396__elem tn-elem tn-elem__7888446121724318804546" data-elem-id="1724318804546" data-elem-type="button" data-field-top-value="284" data-field-left-value="13" data-field-height-value="55" data-field-width-value="123" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="261" data-field-left-res-320-value="122" data-field-top-res-480-value="167" data-field-left-res-480-value="189" data-field-top-res-640-value="200" data-field-left-res-640-value="-12" data-field-top-res-960-value="250" data-field-left-res-960-value="10"> <a class="tn-atom" href="#lybim">&#x43B;&#x44E;&#x431;&#x438;&#x43C;</a> </div> <div class="t396__elem tn-elem tn-elem__7888446121724318815889" data-elem-id="1724318815889" data-elem-type="button" data-field-top-value="284" data-field-left-value="174" data-field-height-value="55" data-field-width-value="123" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="294" data-field-left-res-320-value="12" data-field-top-res-480-value="167" data-field-left-res-480-value="299" data-field-top-res-640-value="201" data-field-left-res-640-value="106" data-field-top-res-960-value="250" data-field-left-res-960-value="151"> <a class="tn-atom" href="#cenim">&#x446;&#x435;&#x43D;&#x438;&#x43C;.</a> </div> <div class="t396__elem tn-elem tn-elem__7888446121724318825788" data-elem-id="1724318825788" data-elem-type="text" data-field-top-value="287" data-field-left-value="144" data-field-height-value="47" data-field-width-value="42" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-textfit-value="autoheight" data-field-top-res-320-value="305" data-field-left-res-320-value="9" data-field-top-res-480-value="178" data-field-left-res-480-value="299" data-field-top-res-640-value="211" data-field-left-res-640-value="100" data-field-top-res-960-value="257" data-field-left-res-960-value="131"> <div class="tn-atom" field="tn_text_1724318825788">&#x438;</div> </div> <div class="t396__elem tn-elem tn-elem__7888446121724319114002" data-elem-id="1724319114002" data-elem-type="text" data-field-top-value="387" data-field-left-value="19" data-field-height-value="21" data-field-width-value="328" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-textfit-value="autoheight" data-field-top-res-320-value="619" data-field-left-res-320-value="10" data-field-width-res-320-value="305" data-field-top-res-480-value="387" data-field-left-res-480-value="10" data-field-top-res-640-value="317" data-field-left-res-640-value="9" data-field-top-res-960-value="347"> <div class="tn-atom" field="tn_text_1724319114002">&#x41A;&#x43D;&#x438;&#x433;&#x438; <span style="color: rgb(230, 230, 230);">&#x2502; </span>&#x41F;&#x441;&#x438;&#x445;&#x43E;&#x43B;&#x43E;&#x433;&#x438;&#x44F; <span style="color: rgb(230, 230, 230);">&#x2502; </span>&#x416;&#x438;&#x437;&#x43D;&#x44C;</div> </div> <div class="t396__elem tn-elem tn-elem__7888446121724319395295 " data-elem-id="1724319395295" data-elem-type="image" data-field-top-value="378" data-field-left-value="613" data-field-height-value="40" data-field-width-value="38" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-animate-sbs-event="hover" data-animate-sbs-opts="[{&apos;mx&apos;:0,&apos;my&apos;:0,&apos;sx&apos;:1,&apos;sy&apos;:1,&apos;op&apos;:1,&apos;ro&apos;:0,&apos;ti&apos;:0,&apos;ea&apos;:&apos;0&apos;,&apos;dt&apos;:0},{&apos;mx&apos;:0,&apos;my&apos;:0,&apos;sx&apos;:1,&apos;sy&apos;:1,&apos;op&apos;:0.7,&apos;ro&apos;:0,&apos;ti&apos;:150,&apos;ea&apos;:&apos;0&apos;,&apos;dt&apos;:0}]" data-field-heightmode-value="hug" data-field-top-res-320-value="429" data-field-left-res-320-value="10" data-field-height-res-320-value="46" data-field-width-res-320-value="44" data-field-top-res-480-value="333" data-field-left-res-480-value="10" data-field-height-res-480-value="40" data-field-top-res-640-value="307" data-field-left-res-640-value="298" data-field-height-res-640-value="40" data-field-top-res-960-value="338" data-field-left-res-960-value="350" data-field-height-res-960-value="40"> <a class="tn-atom" href="https://vk.com/mifcourses" target="_blank"> <img class="tn-atom__img t-img" data-original="https://static.tildacdn.com/tild3035-3439-4532-b838-393839656131/vk.svg" alt imgfield="tn_img_1724319395295"> </a> </div> <div class="t396__elem tn-elem tn-elem__7888446121724319517474 " data-elem-id="1724319517474" data-elem-type="image" data-field-top-value="378" data-field-left-value="659" data-field-height-value="39" data-field-width-value="39" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-animate-sbs-event="hover" data-animate-sbs-opts="[{&apos;mx&apos;:0,&apos;my&apos;:0,&apos;sx&apos;:1,&apos;sy&apos;:1,&apos;op&apos;:1,&apos;ro&apos;:0,&apos;ti&apos;:0,&apos;ea&apos;:&apos;0&apos;,&apos;dt&apos;:0},{&apos;mx&apos;:0,&apos;my&apos;:0,&apos;sx&apos;:1,&apos;sy&apos;:1,&apos;op&apos;:0.7,&apos;ro&apos;:0,&apos;ti&apos;:150,&apos;ea&apos;:&apos;0&apos;,&apos;dt&apos;:0}]" data-field-heightmode-value="hug" data-field-top-res-320-value="429" data-field-left-res-320-value="69" data-field-height-res-320-value="46" data-field-width-res-320-value="46" data-field-top-res-480-value="333" data-field-left-res-480-value="56" data-field-height-res-480-value="39" data-field-top-res-640-value="307" data-field-left-res-640-value="344" data-field-height-res-640-value="39" data-field-top-res-960-value="338" data-field-left-res-960-value="396" data-field-height-res-960-value="39"> <a class="tn-atom" href="https://t.me/MIFcourses" target="_blank"> <img class="tn-atom__img t-img" data-original="https://static.tildacdn.com/tild3466-3731-4065-a539-633538626437/tg.svg" alt imgfield="tn_img_1724319517474"> </a> </div> <div class="t396__elem tn-elem tn-elem__7888446121724333060627" data-elem-id="1724333060627" data-elem-type="shape" data-field-top-value="458" data-field-left-value="20" data-field-height-value="1" data-field-width-value="1144" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="651" data-field-width-res-320-value="300" data-field-top-res-480-value="447" data-field-width-res-480-value="461" data-field-top-res-640-value="382" data-field-left-res-640-value="9" data-field-width-res-640-value="611" data-field-top-res-960-value="412" data-field-width-res-960-value="917"> <div class="tn-atom"> </div> </div> <div class="t396__elem tn-elem tn-elem__7888446121740991648444" data-elem-id="1740991648444" data-elem-type="html" data-field-top-value="50" data-field-left-value="1191" data-field-height-value="79" data-field-width-value="232" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="44" data-field-left-res-320-value="320" data-field-top-res-480-value="32" data-field-left-res-480-value="502" data-field-top-res-640-value="41" data-field-left-res-640-value="643" data-field-top-res-960-value="91" data-field-left-res-960-value="960"> <div class="tn-atom tn-atom__html"> <a id="subscribe"></a> </div> </div> </div> </div> <!-- /T396 --> </div> <div id="rec787911527" class="r t-rec" style=" " data-animationappear="off" data-record-type="868"> <!-- t868 --> <div class="t868"> <div class="t-popup" data-tooltip-hook="#popup:zapis" role="dialog" aria-modal="true" tabindex="-1"> <div class="t-popup__close t-popup__block-close"> <button type="button" class="t-popup__close-wrapper t-popup__block-close-button" aria-label="&#x417;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44C; &#x434;&#x438;&#x430;&#x43B;&#x43E;&#x433;&#x43E;&#x432;&#x43E;&#x435; &#x43E;&#x43A;&#x43D;&#x43E;"> <svg role="presentation" class="t-popup__close-icon" width="23px" height="23px" viewBox="0 0 23 23" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink"> <g stroke="none" stroke-width="1" fill="#fff" fill-rule="evenodd"> <rect transform="translate(11.313708, 11.313708) rotate(-45.000000) translate(-11.313708, -11.313708) " x="10.3137085" y="-3.6862915" width="2" height="30"/> <rect transform="translate(11.313708, 11.313708) rotate(-315.000000) translate(-11.313708, -11.313708) " x="10.3137085" y="-3.6862915" width="2" height="30"/> </g> </svg> </button> </div> <div class="t-popup__container t-width t-width_10"> <div class="t868__code-wrap"> <!-- nominify begin --> <script data-skip="true"> (function (){ var form = ` <div class="nkk-subscribe-form" style="" ng-cloak="" ng-controller="CDefaultSubscribeForm" > <form class="nkk-subscribe-form__content" method="post" form-ajax="" form-isolate="" novalidate="" name="$form" form-ajax-success="success = true; scrollToSuccessTitle()" form-ajax-error="error = true" action="/app/api/email/subscribe/promo/form/24910" > <figure class="nkk-subscribe-form__figure"> </figure> <section class="nkk-subscribe-form__data no-image"> <div class="nkk-subscribe-form__title js-success-title" ng-show="success">Спасибо. Вы подписаны!</div> <div class="nkk-subscribe-form__title"> Рассылка о курсах МИФа </div> <div class="nkk-subscribe-form__description"> Сейчас мы пишем программы, выжимаем полезности из книг и экспертов. Оставьте свою почту, чтобы узнать, когда выйдут новые курсы. </div> <div class="nkk-subscribe-form__controls"> <div class="nkk-subscribe-form__input"> <div ng-class="{'g-progress-animate m-inverse': $form.$submitting}"> <input name="email" type="email" spellcheck="false" maxlength="255" placeholder="электронная почта" required textlimit="255" ng-model="email" ng-init="email = ''" ng-change="error = false" /> </div> </div> <button type="submit" name="saveForm" class="nkk-subscribe-form__button" ng-disabled="$form.email.$invalid" ng-show="!success" ya-goal="nkk-subscribe" ng-cloak > Подписаться </button> <button type="submit" name="saveForm" class="nkk-subscribe-form__button" ng-show="success" ya-goal="nkk-subscribe" disabled="disabled" ng-cloak > Спасибо. Вы подписаны! </button> </div> <div ng-show="error" class="p-notification"> <div class="p-notification-row"> <span class="p-status-icon m-error"></span> <div class="p-block-text"> <span ng-if="responseData.errors[0].path == 'secretWord'">{{ responseData.errors[0].message }}</span> <span ng-if="responseData.errors[0].path != 'secretWord'">Ошибка отправки.</span> </div> </div> </div> </section> <input type="hidden" ng-init="segment = ''" ng-model="segment" name="segment"> <input type="hidden" ng-init="action = ''" ng-model="action" name="action"> <input type="hidden" ng-init="form = '24910'" ng-model="form" name="form"> </form> </div> `; var id = Math.random().toString().slice(2); document.write(`<div id="${id}"></div>`); function patch() { if (typeof angular === 'undefined') { return setTimeout(patch, 700); } var injector = angular.element(document.body).injector(); if ((typeof injector === 'undefined') || (typeof injector.get === 'undefined')) { return setTimeout(patch, 1000); } $('#' + id).replaceWith(injector.get('$compile')(form)(injector.get('$rootScope'))); } patch(); })(); </script> <!-- nominify end --> </div> </div> </div> </div> </div> <div id="rec788798836" class="r t-rec" style=" " data-animationappear="off" data-record-type="303"> <div class="t300" data-tooltip-hook="#znaem" data-tooltip-id="788798836" data-tooltip-position> <div class="t300__content"> <div class="t300__content-text"><div style="font-size: 20px; line-height: 22px;" data-customstyle="yes"><span style="font-family: Circe;">&#x427;&#x442;&#x435;&#x43D;&#x438;&#x435;, &#x438;&#x437;&#x434;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x43A;&#x43E;&#x435; &#x434;&#x435;&#x43B;&#x43E;, &#x442;&#x435;&#x43A;&#x441;&#x442;&#x44B;, &#x43C;&#x430;&#x440;&#x43A;&#x435;&#x442;&#x438;&#x43D;&#x433;, &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;&#x43A;&#x430;</span></div></div> </div> </div> </div> <div id="rec788970575" class="r t-rec" style=" " data-animationappear="off" data-record-type="303"> <div class="t300" data-tooltip-hook="#lybim" data-tooltip-id="788970575" data-tooltip-position> <div class="t300__content"> <div class="t300__content-text"><div style="font-size: 20px; line-height: 22px;" data-customstyle="yes"><span style="font-family: Circe;">&#x41F;&#x441;&#x438;&#x445;&#x43E;&#x43B;&#x43E;&#x433;&#x438;&#x44F;, &#x441;&#x430;&#x43C;&#x43E;&#x440;&#x430;&#x437;&#x432;&#x438;&#x442;&#x438;&#x435;</span></div></div> </div> </div> </div> <div id="rec788970775" class="r t-rec" style=" " data-animationappear="off" data-record-type="303"> <div class="t300" data-tooltip-hook="#cenim" data-tooltip-id="788970775" data-tooltip-position> <div class="t300__content"> <div class="t300__content-text"><div style="font-size: 20px; line-height: 22px;" data-customstyle="yes"><span style="font-family: Circe;">&#x41E;&#x442;&#x43D;&#x43E;&#x448;&#x435;&#x43D;&#x438;&#x44F;, &#x434;&#x435;&#x442;&#x438;, &#x434;&#x435;&#x43D;&#x44C;&#x433;&#x438;</span></div></div> </div> </div> </div> <div id="rec788971928" class="r t-rec t-rec_pb_15" style="padding-bottom:15px; " data-animationappear="off" data-record-type="396"> <!-- T396 --> <div class="t396"> <div class="t396__artboard" data-artboard-recid="788971928" data-artboard-screens="320,480,640,960,1200" data-artboard-height="100" data-artboard-valign="center" data-artboard-upscale="grid"> <div class="t396__carrier" data-artboard-recid="788971928"></div> <div class="t396__filter" data-artboard-recid="788971928"></div> <div class="t396__elem tn-elem tn-elem__7889719281470209944682" data-elem-id="1470209944682" data-elem-type="text" data-field-top-value="22" data-field-left-value="14" data-field-width-value="1026" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="50" data-field-top-res-480-value="54" data-field-top-res-640-value="40" data-field-left-res-960-value="4"> <div class="tn-atom" field="tn_text_1470209944682">&#x41A;&#x443;&#x440;&#x441;&#x44B; &#x43C;&#x435;&#x441;&#x44F;&#x446;&#x430;</div> </div> </div> </div> <!-- /T396 --> </div> <div id="rec789076038" class="r t-rec t-rec_pt_0 t-rec_pb_75 t-rec_pb-res-480_30" style="padding-top:0px;padding-bottom:75px; " data-animationappear="off" data-record-type="786"> <!-- t786 --> <!-- @classes: t-text t-text_xxs t-name t-name_xs t-name_md t-name_xl t-descr t-descr_xxs t-btn t-btn_xs t-btn_sm data-zoomable="yes" t-align_center --> <div class="t786"> <!-- grid container start --> <div class="t-store js-store"> <div class="js-store-parts-select-container t-store__grid-cont t-store__grid-cont_col-width_stretch t-container" data-col-gap="10"></div> <!-- preloader els --> <div class="js-store-grid-cont-preloader t-store__grid-cont t-store__grid-cont-preloader_hidden t-store__grid-cont_col-width_stretch t-container t-store__grid-cont_mobile-one-row" data-col-gap="10"> <div class="t-store__card-preloader t-store__stretch-col t-store__stretch-col_25"> <div class="t-store__card__img-preloader t-store__card__imgwrapper_3-4" style> </div> </div> <div class="t-store__card-preloader t-store__stretch-col t-store__stretch-col_25"> <div class="t-store__card__img-preloader t-store__card__imgwrapper_3-4" style> </div> </div> <div class="t-store__card-preloader t-store__stretch-col t-store__stretch-col_25"> <div class="t-store__card__img-preloader t-store__card__imgwrapper_3-4" style> </div> </div> <div class="t-store__card-preloader t-store__stretch-col t-store__stretch-col_25"> <div class="t-store__card__img-preloader t-store__card__imgwrapper_3-4" style> </div> </div> <div class="t-clear t-store__grid-separator" style="margin-bottom:30px;"></div> <div class="t-store__card-preloader t-store__stretch-col t-store__stretch-col_25"> <div class="t-store__card__img-preloader t-store__card__imgwrapper_3-4" style> </div> </div> <div class="t-store__card-preloader t-store__stretch-col t-store__stretch-col_25"> <div class="t-store__card__img-preloader t-store__card__imgwrapper_3-4" style> </div> </div> <div class="t-store__card-preloader t-store__stretch-col t-store__stretch-col_25"> <div class="t-store__card__img-preloader t-store__card__imgwrapper_3-4" style> </div> </div> <div class="t-store__card-preloader t-store__stretch-col t-store__stretch-col_25"> <div class="t-store__card__img-preloader t-store__card__imgwrapper_3-4" style> </div> </div> </div> <!-- preloader els end --> <div class="js-store-grid-cont t-store__grid-cont t-store__grid-cont_col-width_stretch t-container t-store__grid-cont_mobile-one-row" data-col-gap="10"></div> </div> <!-- grid container end --></div> <!-- catalog setup start --> <div class="js-store-tpl-slider-arrows" style="display: none;"> <li class="t-slds__arrow_wrapper t-slds__arrow_wrapper-left" data-slide-direction="left"> <button type="button" class="t-slds__arrow t-slds__arrow-left t-slds__arrow-withbg" aria-controls="carousel_789076038" aria-disabled="false" aria-label="&#x41F;&#x440;&#x435;&#x434;&#x44B;&#x434;&#x443;&#x449;&#x438;&#x439; &#x441;&#x43B;&#x430;&#x439;&#x434;" style="width: 30px; height: 30px;background-color: rgba(255,255,255,1);"> <div class="t-slds__arrow_body t-slds__arrow_body-left" style="width: 7px;"> <svg role="presentation" focusable="false" style="display: block" viewBox="0 0 7.3 13" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink"> <polyline fill="none" stroke="#000000" stroke-linejoin="butt" stroke-linecap="butt" stroke-width="1" points="0.5,0.5 6.5,6.5 0.5,12.5"/> </svg> </div> </button> </li> <li class="t-slds__arrow_wrapper t-slds__arrow_wrapper-right" data-slide-direction="right"> <button type="button" class="t-slds__arrow t-slds__arrow-right t-slds__arrow-withbg" aria-controls="carousel_789076038" aria-disabled="false" aria-label="&#x421;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; &#x441;&#x43B;&#x430;&#x439;&#x434;" style="width: 30px; height: 30px;background-color: rgba(255,255,255,1);"> <div class="t-slds__arrow_body t-slds__arrow_body-right" style="width: 7px;"> <svg role="presentation" focusable="false" style="display: block" viewBox="0 0 7.3 13" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink"> <polyline fill="none" stroke="#000000" stroke-linejoin="butt" stroke-linecap="butt" stroke-width="1" points="0.5,0.5 6.5,6.5 0.5,12.5"/> </svg> </div> </button> </li></div> <!-- catalog setup end --> </div> <div id="rec788593055" class="r t-rec t-rec_pb_15" style="padding-bottom:15px; " data-animationappear="off" data-record-type="396"> <!-- T396 --> <div class="t396"> <div class="t396__artboard" data-artboard-recid="788593055" data-artboard-screens="320,480,640,960,1200" data-artboard-height="100" data-artboard-valign="center" data-artboard-upscale="grid" data-artboard-height-res-320="140"> <div class="t396__carrier" data-artboard-recid="788593055"></div> <div class="t396__filter" data-artboard-recid="788593055"></div> <div class="t396__elem tn-elem tn-elem__7885930551470209944682" data-elem-id="1470209944682" data-elem-type="text" data-field-top-value="28" data-field-left-value="14" data-field-width-value="1026" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="67" data-field-left-res-320-value="6" data-field-width-res-320-value="280" data-field-top-res-480-value="56" data-field-top-res-640-value="40" data-field-left-res-960-value="6"> <div class="tn-atom" field="tn_text_1470209944682">&#x411;&#x43B;&#x438;&#x436;&#x430;&#x439;&#x448;&#x438;&#x435; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x438;</div> </div> </div> </div> <!-- /T396 --> </div> <div id="rec787968137" class="r t-rec t-rec_pt_0 t-rec_pb_75" style="padding-top:0px;padding-bottom:75px; " data-animationappear="off" data-record-type="786"> <!-- t786 --> <!-- @classes: t-text t-text_xxs t-name t-name_xs t-name_md t-name_xl t-descr t-descr_xxs t-btn t-btn_xs t-btn_sm data-zoomable="yes" t-align_center --> <div class="t786"> <!-- grid container start --> <div class="t-store js-store"> <div class="js-store-parts-select-container t-store__grid-cont t-store__grid-cont_col-width_stretch t-container" data-col-gap="10"></div> <!-- preloader els --> <div class="js-store-grid-cont-preloader t-store__grid-cont t-store__grid-cont-preloader_hidden t-store__grid-cont_col-width_stretch t-container t-store__grid-cont_mobile-one-row" data-col-gap="10"> <div class="t-store__card-preloader t-store__stretch-col t-store__stretch-col_25"> <div class="t-store__card__img-preloader t-store__card__imgwrapper_3-4" style> </div> </div> <div class="t-store__card-preloader t-store__stretch-col t-store__stretch-col_25"> <div class="t-store__card__img-preloader t-store__card__imgwrapper_3-4" style> </div> </div> <div class="t-store__card-preloader t-store__stretch-col t-store__stretch-col_25"> <div class="t-store__card__img-preloader t-store__card__imgwrapper_3-4" style> </div> </div> <div class="t-store__card-preloader t-store__stretch-col t-store__stretch-col_25"> <div class="t-store__card__img-preloader t-store__card__imgwrapper_3-4" style> </div> </div> <div class="t-clear t-store__grid-separator" style="margin-bottom:30px;"></div> <div class="t-store__card-preloader t-store__stretch-col t-store__stretch-col_25"> <div class="t-store__card__img-preloader t-store__card__imgwrapper_3-4" style> </div> </div> <div class="t-store__card-preloader t-store__stretch-col t-store__stretch-col_25"> <div class="t-store__card__img-preloader t-store__card__imgwrapper_3-4" style> </div> </div> <div class="t-store__card-preloader t-store__stretch-col t-store__stretch-col_25"> <div class="t-store__card__img-preloader t-store__card__imgwrapper_3-4" style> </div> </div> <div class="t-store__card-preloader t-store__stretch-col t-store__stretch-col_25"> <div class="t-store__card__img-preloader t-store__card__imgwrapper_3-4" style> </div> </div> </div> <!-- preloader els end --> <div class="js-store-grid-cont t-store__grid-cont t-store__grid-cont_col-width_stretch t-container t-store__grid-cont_mobile-one-row" data-col-gap="10"></div> </div> <!-- grid container end --></div> <!-- catalog setup start --> <div class="js-store-tpl-slider-arrows" style="display: none;"> <li class="t-slds__arrow_wrapper t-slds__arrow_wrapper-left" data-slide-direction="left"> <button type="button" class="t-slds__arrow t-slds__arrow-left t-slds__arrow-withbg" aria-controls="carousel_787968137" aria-disabled="false" aria-label="&#x41F;&#x440;&#x435;&#x434;&#x44B;&#x434;&#x443;&#x449;&#x438;&#x439; &#x441;&#x43B;&#x430;&#x439;&#x434;" style="width: 30px; height: 30px;background-color: rgba(255,255,255,1);"> <div class="t-slds__arrow_body t-slds__arrow_body-left" style="width: 7px;"> <svg role="presentation" focusable="false" style="display: block" viewBox="0 0 7.3 13" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink"> <polyline fill="none" stroke="#000000" stroke-linejoin="butt" stroke-linecap="butt" stroke-width="1" points="0.5,0.5 6.5,6.5 0.5,12.5"/> </svg> </div> </button> </li> <li class="t-slds__arrow_wrapper t-slds__arrow_wrapper-right" data-slide-direction="right"> <button type="button" class="t-slds__arrow t-slds__arrow-right t-slds__arrow-withbg" aria-controls="carousel_787968137" aria-disabled="false" aria-label="&#x421;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; &#x441;&#x43B;&#x430;&#x439;&#x434;" style="width: 30px; height: 30px;background-color: rgba(255,255,255,1);"> <div class="t-slds__arrow_body t-slds__arrow_body-right" style="width: 7px;"> <svg role="presentation" focusable="false" style="display: block" viewBox="0 0 7.3 13" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink"> <polyline fill="none" stroke="#000000" stroke-linejoin="butt" stroke-linecap="butt" stroke-width="1" points="0.5,0.5 6.5,6.5 0.5,12.5"/> </svg> </div> </button> </li></div> <!-- catalog setup end --> </div> <div id="rec788973605" class="r t-rec t-rec_pt_45 t-rec_pt-res-480_15 t-rec_pb_15" style="padding-top:45px;padding-bottom:15px;background-color:#f8f8f8; " data-animationappear="off" data-record-type="396" data-bg-color="#f8f8f8"> <!-- T396 --> <div class="t396"> <div class="t396__artboard" data-artboard-recid="788973605" data-artboard-screens="320,480,640,960,1200" data-artboard-height="100" data-artboard-valign="center" data-artboard-upscale="grid" data-artboard-height-res-320="110"> <div class="t396__carrier" data-artboard-recid="788973605"></div> <div class="t396__filter" data-artboard-recid="788973605"></div> <div class="t396__elem tn-elem tn-elem__7889736051470209944682" data-elem-id="1470209944682" data-elem-type="text" data-field-top-value="25" data-field-left-value="15" data-field-width-value="1026" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="55" data-field-left-res-320-value="5" data-field-top-res-480-value="53" data-field-left-res-480-value="7" data-field-top-res-640-value="41" data-field-left-res-640-value="9" data-field-left-res-960-value="12"> <div class="tn-atom" field="tn_text_1470209944682">&#x41E;&#x442;&#x437;&#x44B;&#x432;&#x44B; &#x443;&#x447;&#x435;&#x43D;&#x438;&#x43A;&#x43E;&#x432;</div> </div> <div class="t396__elem tn-elem tn-elem__7889736051724334569676" data-elem-id="1724334569676" data-elem-type="vector" data-field-top-value="48" data-field-left-value="1086" data-field-width-value="90" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-filewidth-value="90" data-field-fileheight-value="33" data-field-top-res-320-value="63" data-field-left-res-320-value="330" data-field-top-res-480-value="68" data-field-left-res-480-value="397" data-field-width-res-480-value="75" data-field-top-res-640-value="58" data-field-left-res-640-value="542" data-field-top-res-960-value="44" data-field-left-res-960-value="863"> <div class="tn-atom tn-atom__vector"> <!--?xml version="1.0" encoding="UTF-8"?--> <!--?xml version="1.0" encoding="UTF-8"?--> <!--?xml version="1.0" encoding="UTF-8"?--> <!--?xml version="1.0" encoding="UTF-8"?--> <!--?xml version="1.0" encoding="UTF-8"?--> <svg xmlns="http://www.w3.org/2000/svg" viewBox="6486 4998 90 33"> <line fill="transparent" fill-opacity="1" stroke="#797979" stroke-opacity="1" stroke-width="4" fill-rule="evenodd" display="undefined" stroke-linecap="butt" stroke-linejoin="undefined" stroke-dasharray="undefined" paint-order="undefined" id="tSvg5e2c9efdd2" title="Line 1" x1="6489.996826171875" y1="5013.990875244141" x2="6571.00299877619" y2="5013.990875244141" marker-end="url(#tSvgMarkerend5e2c9efdd2)"/> <defs> <marker data-type="line-arrow" id="tSvgMarkerend5e2c9efdd2" markerWidth="5" markerHeight="8" viewBox="0 0 5 8" refX="3.2" refY="3.68" orient="auto-start-reverse" fill="#797979" fill-opacity="1"> <path d="M4.03557 4.03553C4.23077 3.84027 4.23077 3.52369 4.03557 3.32843L0.853575 0.146446C0.658275 -0.0488154 0.341675 -0.0488154 0.146475 0.146446C-0.048825 0.341708 -0.048825 0.658291 0.146475 0.85355L2.97487 3.68198L0.146475 6.51041C-0.048825 6.70567 -0.048825 7.02225 0.146475 7.21751C0.341675 7.41278 0.658275 7.41278 0.853575 7.21751L4.03557 4.03553Z"/> </marker> </defs> </svg> </div> </div> </div> </div> <!-- /T396 --> </div> <div id="rec788973279" class="r t-rec t-rec_pt_15 t-rec_pb_90 t-rec_pb-res-480_60" style="padding-top:15px;padding-bottom:90px;background-color:#f8f8f8; " data-animationappear="off" data-record-type="958" data-bg-color="#f8f8f8"> <!-- T958 --> <div class="t958 "> <div style="width: 0; height: 0; overflow: hidden;"> <div class="t958__height t-width t-width_6" data-auto-correct-mobile-width="false" style="height:470px;"></div> </div> <div class="t958__gallery"> <div class="t-container_100"> <div class="t958__wrapper t-width t-width_12"> <div class="t958__slider t-slds__container t-width t-width_6"> <div class="t958__slidecontainer" id="carousel_788973279" data-auto-correct-mobile-width="false" data-slide-pos="0" data-slider-with-cycle="false" aria-roledescription="carousel" aria-live="off"> <div class="t958__item t-slds__item t-width_6" data-slide-index="1" role="group" aria-roledescription="slide" aria-hidden="false" aria-label="1 &#x438;&#x437; 13"> <div class="t-slds__wrapper" style="padding-right: 20px!important;"> <div class="t958__card-wrapper" style> <div class="t958__card t958__card_preview t958__card_fade" style="background-color:#ffffff;height:470px;" data-review-block="review4043090304830"> <div class="t958__card-inner"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild6334-3361-4436-b733-363830376135/Frame_9.png" bgimgfield="li_img__4043090304830" style="background-image:url(&apos;https://thb.tildacdn.com/tild6334-3361-4436-b733-363830376135/-/resizeb/20x/Frame_9.png&apos;); border-radius: 50%;" itemscope itemtype="http://schema.org/ImageObject"> <meta itemprop="image" content="https://static.tildacdn.com/tild6334-3361-4436-b733-363830376135/Frame_9.png"> </div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_xs" field="li_title__4043090304830">&#x41E;&#x43B;&#x44F; <br>&#x41A;&#x438;&#x440;&#x435;&#x435;&#x432;&#x430;</div> <div class="t958__author-descr t-descr t-descr_xs" field="li_descr__4043090304830">&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x43C; &#x43F;&#x43E;&#x442;&#x43E;&#x43A;&#x435; &#x43A;&#x443;&#x440;&#x441;&#x430; <a href="https://www.mann-ivanov-ferber.ru/courses/editor/" target="_blank" rel="noreferrer noopener">&#xAB;&#x42F; &#x2014; &#x440;&#x435;&#x434;&#x430;&#x43A;&#x442;&#x43E;&#x440;&#xBB;</a></div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__4043090304830"> &#xAB;&#x41C;&#x430;&#x43B;&#x435;&#x43D;&#x44C;&#x43A;&#x430;&#x44F; &#x43F;&#x440;&#x435;&#x434;&#x44B;&#x441;&#x442;&#x43E;&#x440;&#x438;&#x44F; &#x43C;&#x43E;&#x435;&#x439; &#x43B;&#x44E;&#x431;&#x432;&#x438; &#x43A;&#xA0;&#x43A;&#x43D;&#x438;&#x433;&#x430;&#x43C;.<br><br>&#x423;&#xA0;&#x43C;&#x43E;&#x435;&#x433;&#x43E; &#x434;&#x435;&#x434;&#x443;&#x448;&#x43A;&#x438; &#x431;&#x44B;&#x43B;&#x43E; &#x43E;&#x447;&#x435;&#x43D;&#x44C; &#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x43A;&#x43D;&#x438;&#x433; &#x438;&#xA0;&#x43E;&#x43D;&#xA0;&#x432;&#x441;&#x435; &#x43F;&#x43E;&#x43A;&#x443;&#x43F;&#x430;&#x43B; &#x438;&#xA0;&#x43F;&#x43E;&#x43A;&#x443;&#x43F;&#x430;&#x43B;&#xA0;&#x438;&#x445;. &#x41F;&#x43E;&#x43C;&#x43D;&#x44E;, &#x43A;&#x430;&#x43A; &#x44F;&#xA0;&#x43D;&#x435;&#xA0;&#x43F;&#x43E;&#x43D;&#x438;&#x43C;&#x430;&#x43B;&#x430;, &#x447;&#x442;&#x43E; &#x442;&#x430;&#x43A;&#x43E;&#x433;&#x43E; &#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x432;&#xA0;&#x44D;&#x442;&#x438;&#x445; &#x43A;&#x43D;&#x438;&#x433;&#x430;&#x445;, &#x43D;&#x43E;&#xA0;&#x43F;&#x43E;&#x442;&#x43E;&#x43C; &#x43D;&#x430;&#xA0;&#x433;&#x43B;&#x430;&#x437;&#x430; &#x43F;&#x43E;&#x43F;&#x430;&#x43B;&#x430;&#x441;&#x44C; &#x43A;&#x43D;&#x438;&#x433;&#x430; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x439; &#x443;&#x436;&#x435; &#x43D;&#x435;&#xA0;&#x445;&#x43E;&#x442;&#x435;&#x43B;&#x43E;&#x441;&#x44C; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x430;&#x432;&#x43B;&#x438;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F;.<br><br>&#x421;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x43A;&#x443;&#x440;&#x441;&#x430; &#x201E;&#x42F; &#x2014; &#x440;&#x435;&#x434;&#x430;&#x43A;&#x442;&#x43E;&#x440;&#x201C; &#x43F;&#x43E;&#x43F;&#x430;&#x43B;&#x430;&#x441;&#x44C; &#x43C;&#x43D;&#x435; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x442;&#x43E;&#x433;&#x434;&#x430;, &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x445;&#x43E;&#x442;&#x435;&#x43B;&#x43E;&#x441;&#x44C; &#x43F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x43D; &#x438;&#xA0;&#x44F;&#xA0;&#x43F;&#x43E;&#x434;&#x443;&#x43C;&#x430;&#x43B;&#x430; &#x201E;&#x43F;&#x43E;&#x447;&#x435;&#x43C;&#x443;&#xA0;&#x431;&#x44B; &#x438;&#xA0;&#x43D;&#x435;&#x442;, &#x442;&#x435;&#x43C; &#x431;&#x43E;&#x43B;&#x435;&#x435; &#x431;&#x44B;&#x43B;&#x430;&#xA0;&#x436;&#x435; &#x443;&#xA0;&#x43C;&#x435;&#x43D;&#x44F; &#x43C;&#x435;&#x447;&#x442;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x442;&#x44C; &#x432;&#xA0;&#x438;&#x437;&#x434;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x435;&#x201C;<br>&#x415;&#x441;&#x43B;&#x438; &#x447;&#x435;&#x441;&#x442;&#x43D;&#x43E;, &#x431;&#x44B;&#x43B;&#x43E; &#x43D;&#x435;&#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x441;&#x442;&#x440;&#x430;&#x448;&#x43D;&#x43E;, &#x44D;&#x442;&#x43E; &#x43C;&#x43E;&#x439; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x43A;&#x443;&#x440;&#x441;, &#x43D;&#x43E;&#xA0;&#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; &#x437;&#x430;&#x43D;&#x44F;&#x442;&#x438;&#x44F; &#x441;&#x442;&#x440;&#x430;&#x445; &#x43F;&#x440;&#x43E;&#x448;&#x435;&#x43B; &#x438;&#xA0;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x43E;&#x441;&#x44C; &#x443;&#x432;&#x43B;&#x435;&#x43A;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x43F;&#x43E;&#x433;&#x440;&#x443;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x432;&#xA0;&#x43F;&#x440;&#x43E;&#x444;&#x435;&#x441;&#x441;&#x438;&#x44E; &#x440;&#x435;&#x434;&#x430;&#x43A;&#x442;&#x43E;&#x440;&#x430;.<br><br>&#x42D;&#x442;&#x43E;&#x442; &#x43A;&#x443;&#x440;&#x441; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x43B;&#x441;&#x44F; &#x432;&#x43E;&#x43B;&#x448;&#x435;&#x431;&#x43D;&#x44B;&#x43C; &#x438;&#xA0;&#x43F;&#x43E;&#x437;&#x43D;&#x430;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C;)<br>&#x421;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x432;&#x441;&#x435;&#x43C; &#x43A;&#x442;&#x43E; &#x442;&#x440;&#x443;&#x434;&#x438;&#x43B;&#x441;&#x44F; &#x43D;&#x430;&#x434; &#x43D;&#x438;&#x43C;!&#x2764;&#xFE0F;&#xBB; </div> </div> </div> </div> <div class="t958__more-wrapper"> <div class="t958__more"> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> </div> </div> </div> </div> </div> <div class="t958__item t-slds__item t-width_6" data-slide-index="2" role="group" aria-roledescription="slide" aria-hidden="true" aria-label="2 &#x438;&#x437; 13"> <div class="t-slds__wrapper" style="padding-right: 20px!important;"> <div class="t958__card-wrapper" style> <div class="t958__card t958__card_preview t958__card_fade" style="background-color:#ffffff;height:470px;" data-review-block="review4043090304831"> <div class="t958__card-inner"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild3261-3835-4531-b161-356132636338/photo.png" bgimgfield="li_img__4043090304831" style="background-image:url(&apos;https://thb.tildacdn.com/tild3261-3835-4531-b161-356132636338/-/resizeb/20x/photo.png&apos;); border-radius: 50%;" itemscope itemtype="http://schema.org/ImageObject"> <meta itemprop="image" content="https://static.tildacdn.com/tild3261-3835-4531-b161-356132636338/photo.png"> </div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_xs" field="li_title__4043090304831">&#x41C;&#x430;&#x43A;&#x441;&#x438;&#x43C; <br>&#x420;&#x443;&#x440;&#x435;&#x43D;&#x43A;&#x43E;</div> <div class="t958__author-descr t-descr t-descr_xs" field="li_descr__4043090304831">&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x43C; &#x43F;&#x43E;&#x442;&#x43E;&#x43A;&#x435; &#x43A;&#x443;&#x440;&#x441;&#x430; <a href="https://www.mann-ivanov-ferber.ru/courses/textus/" target="_blank" rel="noreferrer noopener">&#xAB;&#x422;&#x435;&#x43A;&#x441;&#x442; &#x43A;&#x430;&#x43A; &#x438;&#x43D;&#x441;&#x442;&#x440;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#xBB;</a></div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__4043090304831"> &#xAB;&#x41A;&#x443;&#x440;&#x441; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E; &#x43E;&#x43F;&#x440;&#x430;&#x432;&#x434;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x441;&#x432;&#x43E;&#x435; &#x43D;&#x430;&#x437;&#x432;&#x430;&#x43D;&#x438;&#x435;. &#x421;&#xA0;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x43E;&#x43C; &#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x43A;&#x438; &#x44F;&#xA0;&#x432;&#x441;&#x435; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x435; &#x432;&#x43F;&#x435;&#x447;&#x430;&#x442;&#x43B;&#x44F;&#x43B;&#x441;&#x44F; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E; &#x438;&#xA0;&#x43C;&#x43D;&#x43E;&#x433;&#x43E;&#x433;&#x440;&#x430;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E; &#x442;&#x435;&#x43A;&#x441;&#x442;&#x430;, &#x435;&#x433;&#x43E; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E;, &#x433;&#x438;&#x431;&#x43A;&#x43E;&#x441;&#x442;&#x44C;&#x44E; &#x438;&#xA0;&#x432;&#x44B;&#x440;&#x430;&#x437;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E;. &#x423;&#x43C;&#x435;&#x43D;&#x438;&#x435; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x442;&#x44C; &#x441;&#x43B;&#x43E;&#x432;&#x43E;&#x43C; &#x43F;&#x43E;&#x437;&#x432;&#x43E;&#x43B;&#x438;&#x43B;&#x43E; &#x43C;&#x43D;&#x435; &#x432;&#x44B;&#x440;&#x430;&#x437;&#x438;&#x442;&#x44C; &#x432;&#x43D;&#x443;&#x442;&#x440;&#x435;&#x43D;&#x43D;&#x44E;&#x44E; &#x438;&#x441;&#x43A;&#x440;&#x443; &#x438;&#xA0;&#x438;&#x43D;&#x434;&#x438;&#x432;&#x438;&#x434;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x432;&#x437;&#x433;&#x43B;&#x44F;&#x434;, &#x43F;&#x440;&#x43E;&#x44F;&#x432;&#x438;&#x442;&#x44C;&#x441;&#x44F;, &#x441;&#x442;&#x430;&#x442;&#x44C; &#x431;&#x43B;&#x438;&#x436;&#x435; &#x43A;&#xA0;&#x441;&#x432;&#x43E;&#x435;&#x43C;&#x443; &#x43E;&#x43A;&#x440;&#x443;&#x436;&#x435;&#x43D;&#x438;&#x44E; &#x438;&#xA0;&#x43A;&#xA0;&#x441;&#x430;&#x43C;&#x43E;&#x43C;&#x443; &#x441;&#x435;&#x431;&#x435;. &#x42F;&#xA0;&#x442;&#x440;&#x435;&#x43D;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43B; &#x432;&#x43D;&#x438;&#x43C;&#x430;&#x43D;&#x438;&#x435; &#x438;&#xA0;&#x432;&#x43E;&#x43E;&#x431;&#x440;&#x430;&#x436;&#x435;&#x43D;&#x438;&#x435;, &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x43B; &#x437;&#x430;&#xA0;&#x43C;&#x438;&#x440;&#x43E;&#x43C; &#x438;&#xA0;&#x43F;&#x43E;&#x437;&#x432;&#x43E;&#x43B;&#x44F;&#x43B; &#x434;&#x440;&#x443;&#x433;&#x438;&#x43C; &#x43B;&#x44E;&#x434;&#x44F;&#x43C; &#x443;&#x432;&#x438;&#x434;&#x435;&#x442;&#x44C; &#x435;&#x433;&#x43E; &#x43C;&#x43E;&#x438;&#x43C;&#x438; &#x433;&#x43B;&#x430;&#x437;&#x430;&#x43C;&#x438;. &#x41F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x43A;&#x430; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x43B;&#x430; &#x432;&#xA0;&#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x43E;&#x43C; &#x438;&#xA0;&#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x44E;&#x449;&#x435;&#x43C; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x440;&#x430;&#x43D;&#x441;&#x442;&#x432;&#x435;, &#x44D;&#x442;&#x43E; &#x43F;&#x43E;&#x43C;&#x43E;&#x433;&#x43B;&#x43E; &#x440;&#x430;&#x441;&#x43A;&#x440;&#x44B;&#x442;&#x44C;&#x441;&#x44F;&#xBB; </div> </div> </div> </div> <div class="t958__more-wrapper"> <div class="t958__more"> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> </div> </div> </div> </div> </div> <div class="t958__item t-slds__item t-width_6" data-slide-index="3" role="group" aria-roledescription="slide" aria-hidden="true" aria-label="3 &#x438;&#x437; 13"> <div class="t-slds__wrapper" style="padding-right: 20px!important;"> <div class="t958__card-wrapper" style> <div class="t958__card t958__card_preview t958__card_fade" style="background-color:#ffffff;height:470px;" data-review-block="review4043090304832"> <div class="t958__card-inner"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild6433-6262-4631-b166-663031316135/Frame_15.png" bgimgfield="li_img__4043090304832" style="background-image:url(&apos;https://thb.tildacdn.com/tild6433-6262-4631-b166-663031316135/-/resizeb/20x/Frame_15.png&apos;); border-radius: 50%;" itemscope itemtype="http://schema.org/ImageObject"> <meta itemprop="image" content="https://static.tildacdn.com/tild6433-6262-4631-b166-663031316135/Frame_15.png"> </div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_xs" field="li_title__4043090304832">&#x41D;&#x430;&#x442;&#x430;&#x43B;&#x44C;&#x44F; <br>&#x421;&#x435;&#x440;&#x433;&#x435;&#x435;&#x432;&#x430;</div> <div class="t958__author-descr t-descr t-descr_xs" field="li_descr__4043090304832">&#x43E; &#x442;&#x440;&#x435;&#x442;&#x44C;&#x435;&#x43C; &#x43F;&#x43E;&#x442;&#x43E;&#x43A;&#x435; &#x43A;&#x443;&#x440;&#x441;&#x430; <a href="https://www.mann-ivanov-ferber.ru/courses/tseh" target="_blank" rel="noreferrer noopener">&#xAB;&#x426;&#x415;&#x425;&#xBB;</a></div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__4043090304832"> &#xAB;&#x41E;&#x434;&#x43D;&#x430;&#x436;&#x434;&#x44B; &#x43E;&#x441;&#x435;&#x43D;&#x44C;&#x44E; &#x44F;&#xA0;&#x443;&#x432;&#x438;&#x434;&#x435;&#x43B;&#x430; &#x43A;&#x443;&#x440;&#x441; &#x201E;&#x426;&#x415;&#x425;&#xA0;&#x2116;&#x2009;3&#x201C; &#x438;&#xA0;&#x432;&#x441;&#x43F;&#x43E;&#x43C;&#x43D;&#x438;&#x43B;&#x430; &#x43C;&#x430;&#x43B;&#x435;&#x43D;&#x44C;&#x43A;&#x443;&#x44E; &#x434;&#x435;&#x432;&#x43E;&#x447;&#x43A;&#x443;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x430;&#x44F; &#x43C;&#x435;&#x447;&#x442;&#x430;&#x43B;&#x430; &#x441;&#x442;&#x430;&#x442;&#x44C; &#x43F;&#x438;&#x441;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x438;&#x446;&#x435;&#x439;. &#x41C;&#x435;&#x447;&#x442;&#x430;&#x43B;&#x430;, &#x43D;&#x43E;&#xA0;&#x437;&#x430;&#x431;&#x44B;&#x43B;&#x430; &#x43E;&#x431;&#xA0;&#x44D;&#x442;&#x43E;&#x43C;, &#x43F;&#x43E;&#x442;&#x43E;&#x43C;&#x443; &#x447;&#x442;&#x43E; &#x432;&#x441;&#x435;&#x433;&#x434;&#x430; &#x435;&#x441;&#x442;&#x44C; &#x447;&#x442;&#x43E;-&#x442;&#x43E; &#x431;&#x43E;&#x43B;&#x435;&#x435; &#x432;&#x430;&#x436;&#x43D;&#x43E;&#x435; &#x438;&#xA0;&#x431;&#x43E;&#x43B;&#x435;&#x435; &#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;&#x435;, &#x447;&#x435;&#x43C; &#x43C;&#x435;&#x447;&#x442;&#x430;.<br><br>&#x42F;&#xA0;&#x43F;&#x43E;&#x434;&#x430;&#x440;&#x438;&#x43B;&#x430; &#x441;&#x435;&#x431;&#x435; &#x43A;&#x443;&#x440;&#x441; &#x43D;&#x430;&#xA0;&#x434;&#x435;&#x43D;&#x44C; &#x440;&#x43E;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x44F;. &#x41D;&#x435;&#x442;, &#x44F;&#xA0;&#x43F;&#x43E;&#x43A;&#x430; &#x43D;&#x435;&#xA0;&#x43D;&#x430;&#x43F;&#x438;&#x441;&#x430;&#x43B;&#x430; &#x43A;&#x43D;&#x438;&#x433;&#x443;, &#x43D;&#x43E;&#xA0;&#x443;&#x436;&#x435; &#x435;&#x441;&#x442;&#x44C; &#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x430;, &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446; &#x442;&#x435;&#x43A;&#x441;&#x442;&#x430; &#x438;&#xA0;&#x434;&#x43E;&#x440;&#x43E;&#x436;&#x43D;&#x430;&#x44F; &#x43A;&#x430;&#x440;&#x442;&#x430; &#x43A;&#xA0;&#x43C;&#x43E;&#x435;&#x439; &#x43C;&#x435;&#x447;&#x442;&#x435;. &#x41D;&#x430;&#x434;&#x435;&#x44E;&#x441;&#x44C;, &#x44F;&#xA0;&#x434;&#x43E;&#x439;&#x434;&#x443; &#x434;&#x43E;&#xA0;&#x43D;&#x435;&#x435; &#x437;&#x430;&#xA0;&#x440;&#x443;&#x43A;&#x443; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435; &#x441;&#xA0;&#x442;&#x43E;&#x439; &#x434;&#x435;&#x432;&#x43E;&#x447;&#x43A;&#x43E;&#x439;&#xBB;. </div> </div> </div> </div> <div class="t958__more-wrapper"> <div class="t958__more"> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> </div> </div> </div> </div> </div> <div class="t958__item t-slds__item t-width_6" data-slide-index="4" role="group" aria-roledescription="slide" aria-hidden="true" aria-label="4 &#x438;&#x437; 13"> <div class="t-slds__wrapper" style="padding-right: 20px!important;"> <div class="t958__card-wrapper" style> <div class="t958__card t958__card_preview t958__card_fade" style="background-color:#ffffff;height:470px;" data-review-block="review1714144459756"> <div class="t958__card-inner"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild6531-6633-4230-b263-383463383235/photo.png" bgimgfield="li_img__1714144459756" style="background-image:url(&apos;https://thb.tildacdn.com/tild6531-6633-4230-b263-383463383235/-/resizeb/20x/photo.png&apos;); border-radius: 50%;" itemscope itemtype="http://schema.org/ImageObject"> <meta itemprop="image" content="https://static.tildacdn.com/tild6531-6633-4230-b263-383463383235/photo.png"> </div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_xs" field="li_title__1714144459756">&#x414;&#x430;&#x440;&#x44C;&#x44F; <br>&#x417;&#x443;&#x434;&#x438;&#x43B;&#x438;&#x43D;&#x430;</div> <div class="t958__author-descr t-descr t-descr_xs" field="li_descr__1714144459756">&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x43C; &#x43F;&#x43E;&#x442;&#x43E;&#x43A;&#x435; &#x43A;&#x443;&#x440;&#x441;&#x430; <a href="https://www.mann-ivanov-ferber.ru/courses/textus/" target="_blank" rel="noreferrer noopener">&#xAB;&#x422;&#x435;&#x43A;&#x441;&#x442; &#x43A;&#x430;&#x43A; &#x438;&#x43D;&#x441;&#x442;&#x440;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#xBB;</a></div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__1714144459756"> &#xAB;&#x420;&#x435;&#x448;&#x430;&#x43B;&#x430;&#x441;&#x44C; &#x43D;&#x430;&#xA0;&#x43F;&#x43E;&#x43A;&#x443;&#x43F;&#x43A;&#x443; &#x43A;&#x443;&#x440;&#x441;&#x430; &#x442;&#x44F;&#x436;&#x435;&#x43B;&#x43E; &#x438;&#xA0;&#x434;&#x43E;&#x43B;&#x433;&#x43E;. &#x42F;&#xA0;&#x43D;&#x435;&#xA0;&#x432;&#x435;&#x434;&#x443; &#x431;&#x43B;&#x43E;&#x433;&#x43E;&#x432;, &#x43D;&#x435;&#xA0;&#x43F;&#x440;&#x43E;&#x434;&#x430;&#x44E; &#x441;&#x432;&#x43E;&#x438; &#x443;&#x441;&#x43B;&#x443;&#x433;&#x438;, &#x430;&#xA0;&#x434;&#x43B;&#x44F; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x44B; &#x438;&#x43D;&#x43E;&#x433;&#x434;&#x430; &#x43F;&#x438;&#x448;&#x443;, &#x43D;&#x43E;&#xA0;&#x438;&#x441;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43D;&#x430;&#x443;&#x447;&#x43D;&#x44B;&#x435; &#x442;&#x435;&#x43A;&#x441;&#x442;&#x44B;. &#x41A;&#x443;&#x43F;&#x438;&#x43B;&#x430; &#x43A;&#x443;&#x440;&#x441; &#x438;&#x437;-&#x437;&#x430; &#x441;&#x432;&#x43E;&#x435;&#x439; &#x43B;&#x44E;&#x431;&#x432;&#x438; &#x43A;&#xA0;&#x447;&#x442;&#x435;&#x43D;&#x438;&#x44E; &#x438;&#xA0;&#x441;&#x43F;&#x438;&#x441;&#x43A;&#x430; &#x43B;&#x435;&#x43A;&#x442;&#x43E;&#x440;&#x43E;&#x432;. &#x418;&#xA0;&#x43D;&#x438;&#xA0;&#x441;&#x435;&#x43A;&#x443;&#x43D;&#x434;&#x44B; &#x43D;&#x435;&#xA0;&#x43F;&#x43E;&#x436;&#x430;&#x43B;&#x435;&#x43B;&#x430;.<br><br>&#x41A;&#x443;&#x440;&#x441; &#x437;&#x430;&#x43C;&#x435;&#x447;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439;! &#x418;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x44B;&#x435; &#x441;&#x43F;&#x438;&#x43A;&#x435;&#x440;&#x44B; &#x438;&#xA0;&#x43A;&#x43B;&#x430;&#x441;&#x441;&#x43D;&#x44B;&#x435; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F;, &#x432;&#x441;&#x435; &#x44D;&#x442;&#x43E; &#x43F;&#x43E;&#x43C;&#x43E;&#x433;&#x430;&#x435;&#x442; &#x432;&#x437;&#x433;&#x43B;&#x44F;&#x43D;&#x443;&#x442;&#x44C; &#x43D;&#x430;&#xA0;&#x441;&#x435;&#x431;&#x44F; &#x438;&#xA0;&#x43D;&#x430;&#xA0;&#x43C;&#x438;&#x440; &#x43D;&#x435;&#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x43E;-&#x434;&#x440;&#x443;&#x433;&#x43E;&#x43C;&#x443;, &#x43D;&#x430;&#x443;&#x447;&#x438;&#x442;&#x441;&#x44F; &#x446;&#x435;&#x43D;&#x438;&#x442;&#x44C; &#x43F;&#x43E;&#x434;&#x43C;&#x435;&#x447;&#x430;&#x442;&#x44C; &#x43C;&#x435;&#x43B;&#x43E;&#x447;&#x438;, &#x430;&#xA0;&#x442;&#x430;&#x43A;&#x436;&#x435; &#x441;&#x43C;&#x43E;&#x442;&#x440;&#x435;&#x442;&#x44C; &#x441;&#x435;&#x440;&#x44C;&#x435;&#x437;&#x43D;&#x435;&#x435; &#x43D;&#x430;&#xA0;&#x43A;&#x43D;&#x438;&#x433;&#x438;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x435; &#x43C;&#x44B;&#xA0;&#x447;&#x438;&#x442;&#x430;&#x435;&#x43C;. &#x412;&#x435;&#x441;&#x435;&#x43B;&#x43E; &#x438;&#xA0;&#x43C;&#x435;&#x441;&#x442;&#x430;&#x43C;&#x438; &#x441;&#x43B;&#x43E;&#x436;&#x43D;&#x43E; &#x43F;&#x438;&#x441;&#x430;&#x442;&#x44C; 50 &#x434;&#x43D;&#x435;&#x439; &#x43F;&#x43E;&#x434;&#x440;&#x44F;&#x434;, &#x43D;&#x43E;&#xA0;&#x43E;&#x449;&#x443;&#x449;&#x435;&#x43D;&#x438;&#x44F; &#x43E;&#x442;&#xA0;&#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x435;&#x43D;&#x43D;&#x44B;&#x445; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x439; &#x43D;&#x435;&#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x432;&#x430;&#x435;&#x43C;&#x44B;&#x435;. &#x41D;&#x43E;&#x432;&#x44B;&#x435; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x44B;&#x435; &#x43B;&#x44E;&#x434;&#x438; &#x441;&#x440;&#x435;&#x434;&#x438; &#x441;&#x43B;&#x443;&#x448;&#x430;&#x442;&#x435;&#x43B;&#x435;&#x439; &#x43A;&#x443;&#x440;&#x441;&#x430;. &#x41F;&#x43E;&#x436;&#x430;&#x43B;&#x435;&#x43B;&#x430;, &#x447;&#x442;&#x43E; &#x43D;&#x435;&#xA0;&#x432;&#x437;&#x44F;&#x43B;&#x430; &#x43A;&#x443;&#x440;&#x441; &#x441;&#xA0;&#x43E;&#x431;&#x440;&#x430;&#x442;&#x43D;&#x43E;&#x439; &#x441;&#x432;&#x44F;&#x437;&#x44C;&#x44E; &#x434;&#x443;&#x43C;&#x430;&#x44E;, &#x447;&#x442;&#x43E; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442; &#x431;&#x44B;&#x43B;&#xA0;&#x431;&#x44B; &#x435;&#x449;&#x435; &#x431;&#x43E;&#x43B;&#x435;&#x435; &#x432;&#x43F;&#x435;&#x447;&#x430;&#x442;&#x43B;&#x44F;&#x44E;&#x449;&#x438;&#x43C;.<br><br>&#x412;&#x441;&#x435;&#x43C; &#x440;&#x435;&#x43A;&#x43E;&#x43C;&#x435;&#x43D;&#x434;&#x443;&#x44E;, &#x434;&#x430;&#x436;&#x435; &#x435;&#x441;&#x43B;&#x438; &#x432;&#x44B;, &#x43A;&#x430;&#x43A; &#x438; &#x44F;, &#x43F;&#x43E;&#x43A;&#x430; &#x447;&#x442;&#x43E; &#x43D;&#x435;&#xA0;&#x432;&#x435;&#x434;&#x435;&#x442;&#x435; &#x430;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x443;&#x44E; &#x43F;&#x438;&#x441;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x43A;&#x443;&#x44E; &#x436;&#x438;&#x437;&#x43D;&#x44C;. &#x421;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x435; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x435; &#x41C;&#x418;&#x424;&#x430;. &#x421;&#xA0;&#x43D;&#x435;&#x442;&#x435;&#x440;&#x43F;&#x435;&#x43D;&#x438;&#x435;&#x43C; &#x436;&#x434;&#x443; &#x43D;&#x43E;&#x432;&#x44B;&#x445; &#x43A;&#x443;&#x440;&#x441;&#x43E;&#x432; &#x438;&#xA0;&#x43A;&#x43D;&#x438;&#x433;!&#xBB; </div> </div> </div> </div> <div class="t958__more-wrapper"> <div class="t958__more"> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> </div> </div> </div> </div> </div> <div class="t958__item t-slds__item t-width_6" data-slide-index="5" role="group" aria-roledescription="slide" aria-hidden="true" aria-label="5 &#x438;&#x437; 13"> <div class="t-slds__wrapper" style="padding-right: 20px!important;"> <div class="t958__card-wrapper" style> <div class="t958__card t958__card_preview t958__card_fade" style="background-color:#ffffff;height:470px;" data-review-block="review1721119576232"> <div class="t958__card-inner"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild6232-3133-4737-b936-323139323638/Frame_5.png" bgimgfield="li_img__1721119576232" style="background-image:url(&apos;https://thb.tildacdn.com/tild6232-3133-4737-b936-323139323638/-/resizeb/20x/Frame_5.png&apos;); border-radius: 50%;" itemscope itemtype="http://schema.org/ImageObject"> <meta itemprop="image" content="https://static.tildacdn.com/tild6232-3133-4737-b936-323139323638/Frame_5.png"> </div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_xs" field="li_title__1721119576232">&#x412;&#x438;&#x43A;&#x442;&#x43E;&#x440;&#x438;&#x44F; <br>&#x42F;&#x43B;&#x430;&#x43D;&#x434;&#x430;&#x435;&#x432;&#x430;</div> <div class="t958__author-descr t-descr t-descr_xs" field="li_descr__1721119576232">&#x43E; &#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x43A;&#x443;&#x43C;&#x435; <a href="https://www.mann-ivanov-ferber.ru/courses/litred/" target="_blank" rel="noreferrer noopener">&#xAB;&#x41F;&#x440;&#x438;&#x447;&#x435;&#x448;&#x438; &#x43C;&#x435;&#x43D;&#x44F;&#xBB;</a></div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__1721119576232"> &#xAB;&#x41C;&#x43D;&#x435; &#x442;&#x44F;&#x436;&#x435;&#x43B;&#x43E; &#x43F;&#x43E;&#x434;&#x441;&#x442;&#x443;&#x43F;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x43A;&#xA0;&#x440;&#x435;&#x434;&#x430;&#x43A;&#x442;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x44E; &#x442;&#x435;&#x43A;&#x441;&#x442;&#x430;. &#x422;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442;&#x441;&#x44F; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E; &#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x438;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x443;&#x43D;&#x44F;&#x442;&#x44C; &#x442;&#x440;&#x435;&#x432;&#x43E;&#x433;&#x443; &#x43F;&#x435;&#x440;&#x435;&#x434; &#x441;&#x43B;&#x43E;&#x436;&#x43D;&#x44B;&#x43C; &#x44D;&#x442;&#x430;&#x43F;&#x43E;&#x43C; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x44B;. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443;, &#x43A;&#x430;&#x43A; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x44F;&#xA0;&#x443;&#x432;&#x438;&#x434;&#x435;&#x43B;&#x430; &#x438;&#x43D;&#x444;&#x43E;&#x440;&#x43C;&#x430;&#x446;&#x438;&#x44E; &#x43E;&#xA0;&#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x43A;&#x443;&#x43C;&#x435; &#x441;&#xA0;&#x43C;&#x438;&#x43B;&#x44B;&#x43C; &#x43D;&#x430;&#x437;&#x432;&#x430;&#x43D;&#x438;&#x435;&#x43C; &#x201E;&#x41F;&#x440;&#x438;&#x447;&#x435;&#x448;&#x438; &#x43C;&#x435;&#x43D;&#x44F;&#x201C;&#xA0;&#x2014; &#x43D;&#x435;&#xA0;&#x440;&#x430;&#x437;&#x434;&#x443;&#x43C;&#x44B;&#x432;&#x430;&#x44F;, &#x437;&#x430;&#x43F;&#x438;&#x441;&#x430;&#x43B;&#x430;&#x441;&#x44C; &#x43D;&#x430;&#xA0;&#x43D;&#x435;&#x433;&#x43E;.<br><br>&#x411;&#x44B;&#x43B;&#x43E; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x43E;, &#x432;&#x435;&#x441;&#x435;&#x43B;&#x43E; &#x438;&#xA0;&#x43E;&#x447;&#x435;&#x43D;&#x44C; &#x443;&#x44E;&#x442;&#x43D;&#x43E;&#xA0;&#x2014; &#x415;&#x43A;&#x430;&#x442;&#x435;&#x440;&#x438;&#x43D;&#x430; &#x438;&#xA0;&#x414;&#x430;&#x440;&#x438;&#x43D;&#x430; &#x43F;&#x43B;&#x430;&#x432;&#x43D;&#x43E; &#x432;&#x432;&#x435;&#x43B;&#x438; &#x432;&#xA0;&#x43A;&#x443;&#x440;&#x441; &#x434;&#x435;&#x43B;&#x430;, &#x43F;&#x43E;&#x434;&#x435;&#x43B;&#x438;&#x43B;&#x438;&#x441;&#x44C; &#x441;&#x432;&#x43E;&#x438;&#x43C; &#x43E;&#x43F;&#x44B;&#x442;&#x43E;&#x43C;. &#x421;&#xA0;&#x43A;&#x430;&#x436;&#x434;&#x44B;&#x43C; &#x437;&#x430;&#x43D;&#x44F;&#x442;&#x438;&#x435;&#x43C;, &#x441;&#x43E;&#x43F;&#x440;&#x43E;&#x432;&#x43E;&#x436;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x43C; &#x43F;&#x43E;&#x434;&#x441;&#x43A;&#x430;&#x437;&#x43A;&#x430;&#x43C;&#x438; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442;&#x43E;&#x432;, &#x44F;&#xA0;&#x447;&#x443;&#x432;&#x441;&#x442;&#x432;&#x43E;&#x432;&#x430;&#x43B;&#x430; &#x441;&#x435;&#x431;&#x44F; &#x443;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x435;&#x435;. &#x423;&#x436;&#x435; &#x430;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x43E; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x44F;&#x44E; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x435;&#x43D;&#x43D;&#x44B;&#x435; &#x437;&#x43D;&#x430;&#x43D;&#x438;&#x44F; &#x43D;&#x430;&#xA0;&#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x43A;&#x435;. &#x420;&#x430;&#x434;&#x430;, &#x447;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x448;&#x43B;&#x430; &#x44D;&#x442;&#x43E;&#x442; &#x43F;&#x443;&#x442;&#x44C;!&#xBB; </div> </div> </div> </div> <div class="t958__more-wrapper"> <div class="t958__more"> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> </div> </div> </div> </div> </div> <div class="t958__item t-slds__item t-width_6" data-slide-index="6" role="group" aria-roledescription="slide" aria-hidden="true" aria-label="6 &#x438;&#x437; 13"> <div class="t-slds__wrapper" style="padding-right: 20px!important;"> <div class="t958__card-wrapper" style> <div class="t958__card t958__card_preview t958__card_fade" style="background-color:#ffffff;height:470px;" data-review-block="review1721119601475"> <div class="t958__card-inner"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild6161-3233-4239-a531-646330366362/Frame_13.png" bgimgfield="li_img__1721119601475" style="background-image:url(&apos;https://thb.tildacdn.com/tild6161-3233-4239-a531-646330366362/-/resizeb/20x/Frame_13.png&apos;); border-radius: 50%;" itemscope itemtype="http://schema.org/ImageObject"> <meta itemprop="image" content="https://static.tildacdn.com/tild6161-3233-4239-a531-646330366362/Frame_13.png"> </div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_xs" field="li_title__1721119601475">&#x410;&#x43D;&#x43D;&#x430; <br>&#x41B;&#x44E;&#x431;&#x43E;&#x43C;&#x438;&#x440;&#x43E;&#x432;&#x430;</div> <div class="t958__author-descr t-descr t-descr_xs" field="li_descr__1721119601475">&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x439; &#x43E;&#x441;&#x435;&#x43D;&#x43D;&#x435;&#x439; &#x441;&#x43C;&#x435;&#x43D;&#x435; &#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x43A;&#x443;&#x43C;&#x430; <a href="https://www.mann-ivanov-ferber.ru/courses/camp5/" target="_blank" rel="noreferrer noopener">&#xAB;&#x41F;&#x438;&#x448;&#x443;&#x442; &#x432;&#x441;&#x435;!&#xBB;</a></div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__1721119601475"> &#xAB;&#x42F;&#xA0;&#x43F;&#x438;&#x448;&#x443;, &#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;, &#x44F;&#xA0;&#x441;&#x443;&#x449;&#x435;&#x441;&#x442;&#x432;&#x443;&#x44E;. &#x410;&#xA0;&#x43F;&#x438;&#x448;&#x443;&#x442; &#x442;&#x443;&#x442; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x432;&#x441;&#x435;, &#x442;&#x430;&#x43A;&#x43E;&#x432; &#x437;&#x430;&#x43A;&#x43E;&#x43D; &#x43B;&#x430;&#x433;&#x435;&#x440;&#x44F;. &#x42D;&#x442;&#x430; &#x43E;&#x441;&#x435;&#x43D;&#x43D;&#x44F;&#x44F; &#x441;&#x43C;&#x435;&#x43D;&#x430; &#x431;&#x44B;&#x43B;&#x430; &#x442;&#x435;&#x43F;&#x43B;&#x43E;&#x439;, &#x442;&#x432;&#x43E;&#x440;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x439; &#x438;&#xA0;&#x43C;&#x430;&#x43A;&#x441;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x44E;&#x449;&#x435;&#x439;, &#x441;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x432;&#x441;&#x435;&#x43C; &#x443;&#x447;&#x430;&#x441;&#x442;&#x43D;&#x438;&#x43A;&#x430;&#x43C;, &#x43D;&#x430;&#x448;&#x438;&#x43C; &#x432;&#x43E;&#x436;&#x430;&#x442;&#x44B;&#x43C; &#x438;&#xA0;&#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442;&#x430;&#x43C;. &#x424;&#x43E;&#x440;&#x43C;&#x430;&#x442;&#xA0;&#x2014; &#x43E;&#x447;&#x435;&#x43D;&#x44C; &#x43B;&#x435;&#x433;&#x43A;&#x438;&#x439;, &#x43A;&#x43E;&#x43C;&#x43F;&#x430;&#x43A;&#x442;&#x43D;&#x44B;&#x439; &#x438;&#xA0;&#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x438;&#x432;&#x43D;&#x44B;&#x439;: &#x437;&#x430;&#xA0;&#x434;&#x432;&#x435; &#x43D;&#x435;&#x434;&#x435;&#x43B;&#x438; &#x446;&#x435;&#x43B;&#x43E;&#x435; &#x43C;&#x43E;&#x440;&#x435; &#x442;&#x435;&#x43A;&#x441;&#x442;&#x43E;&#x432;, &#x437;&#x430;&#x43C;&#x435;&#x442;&#x43E;&#x43A;, &#x441;&#x44E;&#x436;&#x435;&#x442;&#x43E;&#x432; &#x438;&#xA0;&#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#x432;&#x434;&#x43E;&#x445;&#x43D;&#x43E;&#x432;&#x435;&#x43D;&#x438;&#x44F;. &#x417;&#x430;&#x440;&#x44F;&#x434; &#x442;&#x432;&#x43E;&#x440;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x439; &#x431;&#x43E;&#x434;&#x440;&#x43E;&#x441;&#x442;&#x438; &#x438;&#xA0;&#x44F;&#x441;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x432;&#xA0;&#x447;&#x438;&#x441;&#x442;&#x43E;&#x43C; &#x432;&#x438;&#x434;&#x435;. &#x423;&#x436;&#x435; &#x441;&#x43A;&#x443;&#x447;&#x430;&#x44E;!&#xBB; </div> </div> </div> </div> <div class="t958__more-wrapper"> <div class="t958__more"> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> </div> </div> </div> </div> </div> <div class="t958__item t-slds__item t-width_6" data-slide-index="7" role="group" aria-roledescription="slide" aria-hidden="true" aria-label="7 &#x438;&#x437; 13"> <div class="t-slds__wrapper" style="padding-right: 20px!important;"> <div class="t958__card-wrapper" style> <div class="t958__card t958__card_preview t958__card_fade" style="background-color:#ffffff;height:470px;" data-review-block="review1724758023251"> <div class="t958__card-inner"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild3235-3339-4339-b838-616230343566/Frame_11.png" bgimgfield="li_img__1724758023251" style="background-image:url(&apos;https://thb.tildacdn.com/tild3235-3339-4339-b838-616230343566/-/resizeb/20x/Frame_11.png&apos;); border-radius: 50%;" itemscope itemtype="http://schema.org/ImageObject"> <meta itemprop="image" content="https://static.tildacdn.com/tild3235-3339-4339-b838-616230343566/Frame_11.png"> </div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_xs" field="li_title__1724758023251">&#x42E;&#x43D;&#x430; &#x41B;. </div> <div class="t958__author-descr t-descr t-descr_xs" field="li_descr__1724758023251">&#x43E; &#x43A;&#x443;&#x440;&#x441;&#x435; <a href="https://www.mann-ivanov-ferber.ru/courses/show/" target="_blank" rel="noreferrer noopener">&#xAB;&#x41F;&#x440;&#x43E;&#x44F;&#x432;&#x43B;&#x44F;&#x439;&#x441;&#x44F;&#xBB;</a></div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__1724758023251"> &#xAB;&#x411;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x435; &#x441;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x42E;&#x43B;&#x438;&#x438; &#x437;&#x430;&#xA0;&#x433;&#x43B;&#x443;&#x431;&#x438;&#x43D;&#x443; &#x441;&#x43C;&#x44B;&#x441;&#x43B;&#x43E;&#x432;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x435; &#x43E;&#x43D;&#x430; &#x43D;&#x430;&#x43C; &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x43B;&#x430;. &#x41F;&#x43E;&#x438;&#x441;&#x43A; &#x441;&#x442;&#x440;&#x430;&#x445;&#x430; &#x432;&#xA0;&#x442;&#x435;&#x43B;&#x435;, &#x432;&#x441;&#x442;&#x440;&#x435;&#x447;&#x430; &#x441;&#x43E;&#xA0;&#x441;&#x432;&#x43E;&#x438;&#x43C;&#x438; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x44F;&#x43C;&#x438; &#x438;&#xA0;&#x432;&#x44B;&#x445;&#x43E;&#x434; &#x43A;&#xA0;&#x43D;&#x43E;&#x432;&#x43E;&#x43C;&#x443; &#x43F;&#x43E;&#x43D;&#x438;&#x43C;&#x430;&#x43D;&#x438;&#x44E; &#x441;&#x435;&#x431;&#x44F;&#xA0;&#x2014; &#x432;&#x441;&#x451; &#x44D;&#x442;&#x43E; &#x431;&#x44B;&#x43B;&#x43E; &#x432;&#xA0;&#x444;&#x43E;&#x440;&#x43C;&#x430;&#x442;&#x435; &#x432;&#x435;&#x441;&#x451;&#x43B;&#x43E;&#x439; &#x438;&#xA0;&#x442;&#x451;&#x43F;&#x43B;&#x43E;&#x439; &#x431;&#x435;&#x441;&#x435;&#x434;&#x44B;.<br><br>&#x421;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x437;&#x430;&#xA0;&#x442;&#x43E;&#x442; &#x43F;&#x443;&#x442;&#x44C;, &#x447;&#x442;&#x43E; &#x43C;&#x44B;&#xA0;&#x43F;&#x440;&#x43E;&#x448;&#x43B;&#x438; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435;&#xA0;&#x2014; &#x43E;&#x442;&#xA0;&#x438;&#x441;&#x43A;&#x443;&#x441;&#x441;&#x442;&#x432;&#x430; &#x446;&#x435;&#x43B;&#x435;&#x43F;&#x43E;&#x43B;&#x430;&#x433;&#x430;&#x43D;&#x438;&#x44F; &#x43A;&#xA0;&#x43E;&#x431;&#x440;&#x435;&#x442;&#x435;&#x43D;&#x438;&#x44E; &#x43E;&#x43F;&#x43E;&#x440;&#x44B; &#x432;&#xA0;&#x441;&#x435;&#x431;&#x435;. &#x41C;&#x44B;&#xA0;&#x443;&#x437;&#x43D;&#x430;&#x43B;&#x438;, &#x43A;&#x430;&#x43A; &#x434;&#x432;&#x438;&#x433;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x43A;&#xA0;&#x446;&#x435;&#x43B;&#x438;, &#x43D;&#x435;&#xA0;&#x437;&#x430;&#x441;&#x442;&#x440;&#x435;&#x432;&#x430;&#x44F; &#x432;&#xA0;&#x43C;&#x43E;&#x437;&#x433;&#x43E;&#x432;&#x43E;&#x43C; &#x442;&#x443;&#x43C;&#x430;&#x43D;&#x435;, &#x438;&#xA0;&#x438;&#x441;&#x43A;&#x430;&#x442;&#x44C; &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x437;&#x430;&#xA0;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x430;&#x43C;&#x438; &#x43E;&#x447;&#x435;&#x432;&#x438;&#x434;&#x43D;&#x43E;&#x441;&#x442;&#x438;.<br>&#x421;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x435; &#x437;&#x430;&#xA0;&#x442;&#x430;&#x43A;&#x43E;&#x439; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B;&#x439; &#x438;&#xA0;&#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x440;&#x43E;&#x44F;&#x432;&#x43B;&#x44F;&#x44E;&#x449;&#x438;&#x439; &#x43A;&#x443;&#x440;&#x441;!<br>&#x421;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x437;&#x430;&#xA0;&#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x44B;&#x439; &#x43A;&#x443;&#x440;&#x441;! &#x412;&#x441;&#x435;&#x43C; &#x43E;&#x440;&#x433;&#x430;&#x43D;&#x438;&#x437;&#x430;&#x442;&#x43E;&#x440;&#x430;&#x43C; &#x43E;&#x433;&#x440;&#x43E;&#x43C;&#x43D;&#x44B;&#x439; &#x440;&#x435;&#x441;&#x43F;&#x435;&#x43A;&#x442; &#x1F9E1;&#xBB;<br><br> </div> </div> </div> </div> <div class="t958__more-wrapper"> <div class="t958__more"> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> </div> </div> </div> </div> </div> <div class="t958__item t-slds__item t-width_6" data-slide-index="8" role="group" aria-roledescription="slide" aria-hidden="true" aria-label="8 &#x438;&#x437; 13"> <div class="t-slds__wrapper" style="padding-right: 20px!important;"> <div class="t958__card-wrapper" style> <div class="t958__card t958__card_preview t958__card_fade" style="background-color:#ffffff;height:470px;" data-review-block="review1724758079162"> <div class="t958__card-inner"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild6338-3833-4635-a364-343661613034/Frame_12.png" bgimgfield="li_img__1724758079162" style="background-image:url(&apos;https://thb.tildacdn.com/tild6338-3833-4635-a364-343661613034/-/resizeb/20x/Frame_12.png&apos;); border-radius: 50%;" itemscope itemtype="http://schema.org/ImageObject"> <meta itemprop="image" content="https://static.tildacdn.com/tild6338-3833-4635-a364-343661613034/Frame_12.png"> </div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_xs" field="li_title__1724758079162">&#x410;&#x43D;&#x430;&#x441;&#x442;&#x430;&#x441;&#x438;&#x44F; <br>&#x410;&#x43D;&#x442;&#x43E;&#x43D;&#x43E;&#x432;&#x430;</div> <div class="t958__author-descr t-descr t-descr_xs" field="li_descr__1724758079162">&#x43E; &#x43A;&#x443;&#x440;&#x441;&#x435; <a href="https://www.mann-ivanov-ferber.ru/courses/chinamif/" target="_blank" rel="noreferrer noopener">&#xAB;&#x41A;&#x438;&#x442;&#x430;&#x439;&#x441;&#x43A;&#x438;&#x435; &#x43C;&#x438;&#x444;&#x44B;&#xBB;</a></div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__1724758079162"> &#xAB;&#x415;&#x441;&#x442;&#x44C; &#x442;&#x430;&#x43A;&#x430;&#x44F; &#x43A;&#x438;&#x442;&#x430;&#x439;&#x441;&#x43A;&#x430;&#x44F; &#x43F;&#x43E;&#x441;&#x43B;&#x43E;&#x432;&#x438;&#x446;&#x430;, &#x447;&#x442;&#x43E; &#x437;&#x43D;&#x430;&#x43D;&#x438;&#x435;&#xA0;&#x2014; &#x44D;&#x442;&#x43E; &#x441;&#x43E;&#x43A;&#x440;&#x43E;&#x432;&#x438;&#x449;&#x435;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x435; &#x43F;&#x43E;&#x432;&#x441;&#x44E;&#x434;&#x443; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x435;&#x442; &#x437;&#x430;&#xA0;&#x442;&#x435;&#x43C;, &#x43A;&#x442;&#x43E; &#x438;&#x43C;&#xA0;&#x43E;&#x431;&#x43B;&#x430;&#x434;&#x430;&#x435;&#x442;.<br><br>&#x412;&#x43F;&#x435;&#x440;&#x432;&#x44B;&#x435; &#x43F;&#x43E;&#x43A;&#x443;&#x43F;&#x430;&#x43B;&#x430; &#x43B;&#x435;&#x43A;&#x442;&#x43E;&#x440;&#x438;&#x439; &#x447;&#x435;&#x440;&#x435;&#x437; &#x41C;&#x418;&#x424;. &#x41C;&#x435;&#x43D;&#x44F; &#x434;&#x430;&#x432;&#x43D;&#x43E; &#x443;&#x432;&#x43B;&#x435;&#x43A;&#x430;&#x435;&#x442; &#x442;&#x435;&#x43C;&#x430; &#x412;&#x43E;&#x441;&#x442;&#x43E;&#x43A;&#x430; &#x438;&#xA0;&#x41A;&#x438;&#x442;&#x430;&#x44F;, &#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D;&#x43D;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x443;&#x442;&#x435;&#x448;&#x435;&#x441;&#x442;&#x432;&#x438;&#x439; &#x43F;&#x43E;&#xA0;&#x44D;&#x442;&#x438;&#x43C; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x430;&#x43C; &#x438;&#xA0;&#x437;&#x430;&#x445;&#x43E;&#x442;&#x435;&#x43B;&#x43E;&#x441;&#x44C; &#x433;&#x43B;&#x443;&#x431;&#x436;&#x435; &#x443;&#x437;&#x43D;&#x430;&#x442;&#x44C; &#x43F;&#x440;&#x43E; &#x43A;&#x443;&#x43B;&#x44C;&#x442;&#x443;&#x440;&#x443;, &#x43E;&#x431;&#x44B;&#x447;&#x430;&#x438;, &#x432;&#x435;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x438;&#xA0;&#x43C;&#x438;&#x444;&#x43E;&#x43B;&#x43E;&#x433;&#x438;&#x44E;.<br><br>&#x201E;&#x41A;&#x438;&#x442;&#x430;&#x439;&#x441;&#x43A;&#x438;&#x435; &#x43C;&#x438;&#x444;&#x44B;&#x201C; &#x410;&#x43D;&#x442;&#x43E;&#x43D;&#x430; &#x422;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x432;&#x430;&#xA0;&#x2014; &#x44D;&#x442;&#x43E; &#x43A;&#x430;&#x43A; &#x440;&#x430;&#x437; &#x442;&#x43E;&#xA0;&#x441;&#x43E;&#x43A;&#x440;&#x43E;&#x432;&#x438;&#x449;&#x435;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x435; &#x442;&#x435;&#x43F;&#x435;&#x440;&#x44C; &#x431;&#x443;&#x434;&#x435;&#x442; &#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x437;&#x430;&#xA0;&#x43C;&#x43D;&#x43E;&#x439;. &#x41E;&#x447;&#x435;&#x43D;&#x44C; &#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E;&#x439; &#x438;&#xA0;&#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x43E;&#x439; &#x438;&#x43D;&#x444;&#x43E;&#x440;&#x43C;&#x430;&#x446;&#x438;&#x438;, &#x440;&#x435;&#x43A;&#x43E;&#x43C;&#x435;&#x43D;&#x434;&#x430;&#x446;&#x438;&#x438; &#x444;&#x438;&#x43B;&#x44C;&#x43C;&#x43E;&#x432; &#x438;&#xA0;&#x43A;&#x43D;&#x438;&#x433;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x433;&#x43B;&#x443;&#x431;&#x436;&#x435; &#x443;&#x437;&#x43D;&#x430;&#x442;&#x44C; &#x43F;&#x440;&#x43E; &#x442;&#x43E;, &#x447;&#x442;&#x43E; &#x437;&#x430;&#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43E;&#x432;&#x430;&#x43B;&#x43E;.<br>&#x41C;&#x43D;&#x43E;&#x433;&#x43E; &#x43D;&#x43E;&#x432;&#x44B;&#x445; &#x438;&#xA0;&#x43D;&#x435;&#x43E;&#x436;&#x438;&#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445; &#x438;&#x441;&#x442;&#x43E;&#x440;&#x438;&#x439; &#x438;&#xA0;&#x438;&#x437;&#x43E;&#x431;&#x440;&#x430;&#x436;&#x435;&#x43D;&#x438;&#x44F; &#x438;&#x437;&#xA0;&#x434;&#x440;&#x435;&#x432;&#x43D;&#x438;&#x445; &#x442;&#x440;&#x430;&#x43A;&#x442;&#x430;&#x442;&#x43E;&#x432;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x43C;&#x438; &#x43F;&#x440;&#x43E;&#x438;&#x43B;&#x43B;&#x44E;&#x441;&#x442;&#x440;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x44B; &#x43F;&#x440;&#x435;&#x437;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x438;&#xA0;&#x2014; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x447;&#x443;&#x434;&#x43E;!&#xBB; </div> </div> </div> </div> <div class="t958__more-wrapper"> <div class="t958__more"> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> </div> </div> </div> </div> </div> <div class="t958__item t-slds__item t-width_6" data-slide-index="9" role="group" aria-roledescription="slide" aria-hidden="true" aria-label="9 &#x438;&#x437; 13"> <div class="t-slds__wrapper" style="padding-right: 20px!important;"> <div class="t958__card-wrapper" style> <div class="t958__card t958__card_preview t958__card_fade" style="background-color:#ffffff;height:470px;" data-review-block="review1724758130909"> <div class="t958__card-inner"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild3232-3163-4732-b033-613266643862/Frame_10.png" bgimgfield="li_img__1724758130909" style="background-image:url(&apos;https://thb.tildacdn.com/tild3232-3163-4732-b033-613266643862/-/resizeb/20x/Frame_10.png&apos;); border-radius: 50%;" itemscope itemtype="http://schema.org/ImageObject"> <meta itemprop="image" content="https://static.tildacdn.com/tild3232-3163-4732-b033-613266643862/Frame_10.png"> </div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_xs" field="li_title__1724758130909">&#x41B;&#x438;&#x43D;&#x430; <br>&#x41D;&#x438;&#x43A;&#x438;&#x444;&#x43E;&#x440;&#x43E;&#x432;&#x430;</div> <div class="t958__author-descr t-descr t-descr_xs" field="li_descr__1724758130909">&#x43E; &#x43A;&#x443;&#x440;&#x441;&#x435; <a href="https://www.mann-ivanov-ferber.ru/courses/life-diagram/" target="_blank" rel="noreferrer noopener">&#xAB;&#x414;&#x438;&#x430;&#x433;&#x440;&#x430;&#x43C;&#x43C;&#x430; &#x436;&#x438;&#x437;&#x43D;&#x438;&#xBB;</a></div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__1724758130909"> &#xAB;&#x421;&#xA0;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43A;&#x443;&#x440;&#x441;&#x430; &#x447;&#x443;&#x432;&#x441;&#x442;&#x432;&#x43E;&#x432;&#x430;&#x43B;&#x430; &#x441;&#x435;&#x431;&#x44F;, &#x431;&#x443;&#x434;&#x442;&#x43E; &#x43B;&#x435;&#x447;&#x443; &#x43D;&#x430;&#xA0;&#x432;&#x44B;&#x441;&#x43E;&#x43A;&#x438;&#x445; &#x441;&#x43A;&#x43E;&#x440;&#x43E;&#x441;&#x442;&#x44F;&#x445;, &#x441;&#x435;&#x440;&#x434;&#x446;&#x435; &#x441;&#x442;&#x443;&#x447;&#x438;&#x442;. &#x42F;&#xA0;&#x43F;&#x43E;&#x43F;&#x430;&#x43B;&#x430; &#x43D;&#x430;&#xA0;&#x440;&#x430;&#x437;&#x431;&#x43E;&#x440; &#x43A;&#xA0;&#x418;&#x440;&#x438;&#x43D;&#x435; &#x413;&#x438;&#x431;&#x435;&#x440;&#x43C;&#x430;&#x43D;&#x43D;. &#x411;&#x44B;&#x43B;&#x43E; &#x438;&#xA0;&#x43B;&#x44E;&#x431;&#x43E;&#x43F;&#x44B;&#x442;&#x43D;&#x43E;, &#x438;&#xA0;&#x43E;&#x447;&#x435;&#x43D;&#x44C; &#x432;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43E;&#x442;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F;, &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x442;&#x44C; &#x443;&#x44F;&#x437;&#x432;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C;. &#x418;&#xA0;&#x442;&#x443;&#x442; &#x431;&#x43B;&#x430;&#x433;&#x43E;&#x434;&#x430;&#x440;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x41C;&#x418;&#x424;&#x443; &#x437;&#x430;&#xA0;&#x43E;&#x440;&#x433;&#x430;&#x43D;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44E; &#x431;&#x435;&#x440;&#x435;&#x436;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x440;&#x430;&#x43D;&#x441;&#x442;&#x432;&#x430;.<br><br>&#x41D;&#x435;&#x441;&#x43C;&#x43E;&#x442;&#x440;&#x44F; &#x43D;&#x430;&#xA0;&#x442;&#x43E;, &#x447;&#x442;&#x43E; &#x440;&#x430;&#x437;&#x431;&#x43E;&#x440;&#x43E;&#x432; &#x432;&#x441;&#x435;&#x433;&#x43E; &#x442;&#x440;&#x438;, &#x435;&#x441;&#x442;&#x44C; &#x447;&#x430;&#x442;, &#x433;&#x434;&#x435; &#x43C;&#x44B;&#xA0;&#x432;&#x441;&#x435; &#x434;&#x435;&#x43B;&#x438;&#x43B;&#x438;&#x441;&#x44C; &#x441;&#x432;&#x43E;&#x438;&#x43C;&#x438; &#x43C;&#x44B;&#x441;&#x43B;&#x44F;&#x43C;&#x438;. &#x418;&#xA0;&#x44D;&#x442;&#x43E; &#x43E;&#x441;&#x43E;&#x431;&#x430;&#x44F; &#x434;&#x438;&#x43D;&#x430;&#x43C;&#x438;&#x43A;&#x430; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x43E;&#x432;&#x43E;&#x439; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x44B;. &#x41F;&#x43E;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x443; &#x447;&#x435;&#x440;&#x435;&#x437; &#x438;&#x441;&#x442;&#x43E;&#x440;&#x438;&#x438; &#x433;&#x435;&#x440;&#x43E;&#x435;&#x432; &#x440;&#x430;&#x437;&#x431;&#x43E;&#x440;&#x43E;&#x432; &#x44D;&#x442;&#x438; &#x442;&#x435;&#x43C;&#x44B; &#x43F;&#x43E;&#x442;&#x43E;&#x43C; &#x440;&#x430;&#x437;&#x432;&#x43E;&#x440;&#x430;&#x447;&#x438;&#x432;&#x430;&#x44E;&#x442;&#x441;&#x44F; &#x434;&#x430;&#x43B;&#x44C;&#x448;&#x435;&#xA0;&#x2014; &#x432;&#x441;&#x435;&#x43C;&#x438; &#x443;&#x447;&#x430;&#x441;&#x442;&#x43D;&#x438;&#x43A;&#x430;&#x43C;&#x438;.<br><br>&#x427;&#x435;&#x440;&#x435;&#x437; &#x43A;&#x43E;&#x43C;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x440;&#x438;&#x438;, &#x447;&#x435;&#x440;&#x435;&#x437; &#x442;&#x43E;, &#x441;&#xA0;&#x43A;&#x435;&#x43C; &#x432;&#x441;&#x442;&#x443;&#x43F;&#x430;&#x435;&#x448;&#x44C; &#x432;&#x43E;&#xA0;&#x432;&#x437;&#x430;&#x438;&#x43C;&#x43E;&#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x435; &#x432;&#x43D;&#x443;&#x442;&#x440;&#x438; &#x447;&#x430;&#x442;&#x430;, &#x43F;&#x440;&#x43E;&#x438;&#x441;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x43E;&#x43F;&#x44B;&#x442; &#x43F;&#x440;&#x43E;&#x436;&#x438;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x442;&#x435;&#x43C;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x435; &#x431;&#x44B;&#x43B;&#x438; &#x441;&#x43E;&#x432;&#x441;&#x435;&#x43C; &#x432;&#xA0;&#x442;&#x435;&#x43D;&#x438; &#x438;&#x43B;&#x438; &#x444;&#x43E;&#x43D;&#x438;&#x43B;&#x438; &#x433;&#x43E;&#x434;&#x430;&#x43C;&#x438;, &#x431;&#x443;&#x434;&#x443;&#x447;&#x438; &#x431;&#x435;&#x437; &#x440;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x44F;. &#x410;&#xA0;&#x432;&#xA0;&#x433;&#x440;&#x443;&#x43F;&#x43F;&#x43E;&#x432;&#x43E;&#x439; &#x434;&#x438;&#x43D;&#x430;&#x43C;&#x438;&#x43A;&#x435; &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x43E;&#x442;&#x432;&#x435;&#x442;&#xBB; </div> </div> </div> </div> <div class="t958__more-wrapper"> <div class="t958__more"> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> </div> </div> </div> </div> </div> <div class="t958__item t-slds__item t-width_6" data-slide-index="10" role="group" aria-roledescription="slide" aria-hidden="true" aria-label="10 &#x438;&#x437; 13"> <div class="t-slds__wrapper" style="padding-right: 20px!important;"> <div class="t958__card-wrapper" style> <div class="t958__card t958__card_preview t958__card_fade" style="background-color:#ffffff;height:470px;" data-review-block="review1724758184158"> <div class="t958__card-inner"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild6136-6339-4237-b132-663364323931/Frame_8.png" bgimgfield="li_img__1724758184158" style="background-image:url(&apos;https://thb.tildacdn.com/tild6136-6339-4237-b132-663364323931/-/resizeb/20x/Frame_8.png&apos;); border-radius: 50%;" itemscope itemtype="http://schema.org/ImageObject"> <meta itemprop="image" content="https://static.tildacdn.com/tild6136-6339-4237-b132-663364323931/Frame_8.png"> </div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_xs" field="li_title__1724758184158">&#x412;&#x430;&#x43B;&#x435;&#x43D;&#x442;&#x438;&#x43D;&#x430; <br>&#x411;&#x430;&#x442;&#x443;&#x440;&#x43B;&#x438;&#x43D;&#x441;&#x43A;&#x430;&#x44F;</div> <div class="t958__author-descr t-descr t-descr_xs" field="li_descr__1724758184158">&#x43E; &#x43A;&#x443;&#x440;&#x441;&#x435; <a href="https://www.mann-ivanov-ferber.ru/courses/sleep/" target="_blank" rel="noreferrer noopener">&#xAB;&#x41D;&#x430;&#x443;&#x43A;&#x430; &#x441;&#x43D;&#x430;&#xBB;</a></div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__1724758184158"> &#xAB;&#x41A;&#x443;&#x440;&#x441; &#x43C;&#x43D;&#x435; &#x43E;&#x447;&#x435;&#x43D;&#x44C; &#x43F;&#x43E;&#x43D;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x441;&#x44F;. &#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x44F; &#x432;&#x441;&#x435;&#x440;&#x44C;&#x435;&#x437; &#x437;&#x430;&#x434;&#x443;&#x43C;&#x430;&#x43B;&#x430;&#x441;&#x44C; &#x43E;&#x431;&#xA0;&#x43E;&#x441;&#x432;&#x43E;&#x435;&#x43D;&#x438;&#x438; &#x43F;&#x440;&#x43E;&#x444;&#x435;&#x441;&#x441;&#x438;&#x438; &#x441;&#x43E;&#x43C;&#x43D;&#x43E;&#x43B;&#x43E;&#x433;&#x430;, &#x430;&#xA0;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x44B; &#x44F;&#xA0;&#x434;&#x430;&#x43B;&#x430; &#x441;&#x432;&#x43E;&#x438;&#x43C; &#x43F;&#x430;&#x446;&#x438;&#x435;&#x43D;&#x442;&#x430;&#x43C;! &#x41F;&#x440;&#x435;&#x43A;&#x440;&#x430;&#x441;&#x43D;&#x430;&#x44F; &#x43E;&#x440;&#x433;&#x430;&#x43D;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44F;, &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x441;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x420;&#x43E;&#x43C;&#x430;&#x43D;&#x443; &#x412;&#x44F;&#x447;&#x435;&#x441;&#x43B;&#x430;&#x432;&#x43E;&#x432;&#x438;&#x447;&#x443;, &#x441;&#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E;&#x439; &#x438;&#x43D;&#x444;&#x43E;&#x440;&#x43C;&#x430;&#x446;&#x438;&#x438;, &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x43F;&#x440;&#x43E;&#x43B;&#x435;&#x442;&#x430;&#x43B;&#x43E; &#x43D;&#x435;&#x437;&#x430;&#x43C;&#x435;&#x442;&#x43D;&#x43E;. &#x41E;&#x431;&#x440;&#x430;&#x442;&#x43D;&#x430;&#x44F; &#x441;&#x432;&#x44F;&#x437;&#x44C; &#x43F;&#x43E;&#x442;&#x440;&#x44F;&#x441;&#x430;&#x44E;&#x449;&#x430;&#x44F;!&#xBB; </div> </div> </div> </div> <div class="t958__more-wrapper"> <div class="t958__more"> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> </div> </div> </div> </div> </div> <div class="t958__item t-slds__item t-width_6" data-slide-index="11" role="group" aria-roledescription="slide" aria-hidden="true" aria-label="11 &#x438;&#x437; 13"> <div class="t-slds__wrapper" style="padding-right: 20px!important;"> <div class="t958__card-wrapper" style> <div class="t958__card t958__card_preview t958__card_fade" style="background-color:#ffffff;height:470px;" data-review-block="review1724758226060"> <div class="t958__card-inner"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild3832-6465-4735-a336-383831333831/Frame_14.png" bgimgfield="li_img__1724758226060" style="background-image:url(&apos;https://thb.tildacdn.com/tild3832-6465-4735-a336-383831333831/-/resizeb/20x/Frame_14.png&apos;); border-radius: 50%;" itemscope itemtype="http://schema.org/ImageObject"> <meta itemprop="image" content="https://static.tildacdn.com/tild3832-6465-4735-a336-383831333831/Frame_14.png"> </div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_xs" field="li_title__1724758226060">&#x41A;&#x441;&#x435;&#x43D;&#x438;&#x44F; <br>&#x411;&#x435;&#x43B;&#x43E;&#x437;&#x435;&#x440;&#x43E;&#x432;&#x430;</div> <div class="t958__author-descr t-descr t-descr_xs" field="li_descr__1724758226060">&#x43E; &#x43A;&#x443;&#x440;&#x441;&#x435; <a href="https://www.mann-ivanov-ferber.ru/courses/magicstory/" target="_blank" rel="noreferrer noopener">&#xAB;&#x421;&#x43A;&#x430;&#x437;&#x43A;&#x430; &#x43C;&#x43E;&#x435;&#x439; &#x436;&#x438;&#x437;&#x43D;&#x438;&#xBB;</a></div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__1724758226060"> &#xAB;&#x41A;&#x443;&#x440;&#x441; &#x43F;&#x43E;&#x43C;&#x43E;&#x433; &#x43C;&#x43D;&#x435; &#x43B;&#x443;&#x447;&#x448;&#x435; &#x443;&#x437;&#x43D;&#x430;&#x442;&#x44C; &#x441;&#x435;&#x431;&#x44F;: &#x43F;&#x43E;&#x434; &#x432;&#x43B;&#x438;&#x44F;&#x43D;&#x438;&#x435;&#x43C; &#x43A;&#x430;&#x43A;&#x438;&#x445; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43E;&#x43A; &#x44F;&#xA0;&#x43D;&#x430;&#x445;&#x43E;&#x436;&#x443;&#x441;&#x44C;, &#x43A;&#x430;&#x43A;&#x438;&#x435; &#x438;&#x437;&#xA0;&#x43D;&#x438;&#x445; &#x43F;&#x43E;&#x43C;&#x43E;&#x433;&#x430;&#x44E;&#x442;, &#x430;&#xA0;&#x43A;&#x430;&#x43A;&#x438;&#x435; &#x43E;&#x442;&#x43D;&#x438;&#x43C;&#x430;&#x44E;&#x442; &#x441;&#x438;&#x43B;&#x44B;. &#x41F;&#x43E;&#x43C;&#x438;&#x43C;&#x43E; &#x43B;&#x435;&#x43A;&#x446;&#x438;&#x439; &#x43F;&#x43E;&#xA0;&#x441;&#x445;&#x435;&#x43C;&#x43E;&#x442;&#x435;&#x440;&#x430;&#x43F;&#x438;&#x438;, &#x440;&#x430;&#x437;&#x431;&#x43E;&#x440;&#x43E;&#x432; &#x43D;&#x430;&#xA0;&#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;&#x430;&#x445; &#x43F;&#x435;&#x440;&#x441;&#x43E;&#x43D;&#x430;&#x436;&#x435;&#x439; &#x441;&#x43A;&#x430;&#x437;&#x43E;&#x43A;, &#x431;&#x44B;&#x43B;&#x438; &#x435;&#x449;&#x435; &#x43F;&#x441;&#x438;&#x445;&#x43E;&#x43B;&#x43E;&#x433;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x435; &#x442;&#x435;&#x441;&#x442;&#x44B;, &#x438;&#xA0;&#x43E;&#x434;&#x43D;&#x430; &#x43C;&#x435;&#x434;&#x438;&#x442;&#x430;&#x446;&#x438;&#x44F; &#x43E;&#x442;&#xA0;&#x41C;&#x430;&#x440;&#x438;&#x438; &#x421;&#x43A;&#x440;&#x44F;&#x431;&#x438;&#x43D;&#x43E;&#x439;. &#x414;&#x443;&#x43C;&#x430;&#x44E;, &#x43F;&#x441;&#x438;&#x445;&#x43E;&#x43B;&#x43E;&#x433;&#x430;&#x43C; &#x43A;&#x443;&#x440;&#x441; &#x442;&#x43E;&#x436;&#x435; &#x431;&#x443;&#x434;&#x435;&#x442; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x435;&#x43D;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x43B;&#x443;&#x447;&#x448;&#x435; &#x43F;&#x43E;&#x43D;&#x438;&#x43C;&#x430;&#x442;&#x44C; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x43E;&#x432;. &#x410;&#xA0;&#x435;&#x449;&#x451; &#x43A;&#x443;&#x440;&#x441; &#x43F;&#x440;&#x438;&#x433;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x442;&#x435;&#x43B;&#x44F;&#x43C; &#x43F;&#x435;&#x440;&#x441;&#x43E;&#x43D;&#x430;&#x436;&#x435;&#x439;. &#x411;&#x43B;&#x430;&#x433;&#x43E;&#x434;&#x430;&#x440;&#x44F; &#x43B;&#x435;&#x43A;&#x446;&#x438;&#x44F;&#x43C;, &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x441;&#x44F; &#x43F;&#x440;&#x438;&#x434;&#x443;&#x43C;&#x430;&#x442;&#x44C; &#x433;&#x435;&#x440;&#x43E;&#x435;&#x432; &#x441;&#xA0;&#x43B;&#x43E;&#x433;&#x438;&#x447;&#x43D;&#x44B;&#x43C;&#x438; &#x432;&#x437;&#x430;&#x438;&#x43C;&#x43E;&#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x44F;&#x43C;&#x438; &#x441;&#xA0;&#x43C;&#x438;&#x440;&#x43E;&#x43C; &#x438;&#xA0;&#x43C;&#x43E;&#x442;&#x438;&#x432;&#x430;&#x446;&#x438;&#x435;&#x439;. &#x421;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x41C;&#x430;&#x440;&#x438;&#x438;, &#x41D;&#x430;&#x442;&#x430;&#x43B;&#x44C;&#x435;, &#x413;&#x430;&#x43B;&#x438;&#x43D;&#x435; &#x438;&#xA0;&#x438;&#x437;&#x434;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x443; &#x41C;&#x418;&#x424;&#xBB; </div> </div> </div> </div> <div class="t958__more-wrapper"> <div class="t958__more"> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> </div> </div> </div> </div> </div> <div class="t958__item t-slds__item t-width_6" data-slide-index="12" role="group" aria-roledescription="slide" aria-hidden="true" aria-label="12 &#x438;&#x437; 13"> <div class="t-slds__wrapper" style="padding-right: 20px!important;"> <div class="t958__card-wrapper" style> <div class="t958__card t958__card_preview t958__card_fade" style="background-color:#ffffff;height:470px;" data-review-block="review1724758271341"> <div class="t958__card-inner"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild6333-6361-4436-b531-333663333833/Frame_7.png" bgimgfield="li_img__1724758271341" style="background-image:url(&apos;https://thb.tildacdn.com/tild6333-6361-4436-b531-333663333833/-/resizeb/20x/Frame_7.png&apos;); border-radius: 50%;" itemscope itemtype="http://schema.org/ImageObject"> <meta itemprop="image" content="https://static.tildacdn.com/tild6333-6361-4436-b531-333663333833/Frame_7.png"> </div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_xs" field="li_title__1724758271341">&#x415;&#x43B;&#x438;&#x437;&#x430;&#x432;&#x435;&#x442;&#x430; <br>&#x421;&#x443;&#x440;&#x430;&#x43B;&#x451;&#x432;&#x430;</div> <div class="t958__author-descr t-descr t-descr_xs" field="li_descr__1724758271341">&#x43E; &#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x43A;&#x443;&#x43C;&#x435; <a href="https://www.mann-ivanov-ferber.ru/courses/rusyaz" target="_blank" rel="noreferrer noopener">&#xAB;&#x412;&#x435;&#x43B;&#x438;&#x43A;&#x438;&#x439; &#x438; &#x43C;&#x43E;&#x433;&#x443;&#x447;&#x438;&#x439;&#xBB;</a></div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__1724758271341"> &#xAB;&#x41A;&#x443;&#x440;&#x441; &#x431;&#x44B;&#x43B; &#x43E;&#x447;&#x435;&#x43D;&#x44C; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B;&#x439; &#x438;, &#x447;&#x442;&#x43E; &#x441;&#x430;&#x43C;&#x43E;&#x435; &#x433;&#x43B;&#x430;&#x432;&#x43D;&#x43E;&#x435;, &#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x44B;&#x439;. &#x412;&#x435;&#x431;&#x438;&#x43D;&#x430;&#x440;&#x44B; &#x431;&#x44B;&#x43B;&#x438; &#x43D;&#x435;&#xA0;&#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#x441;&#xA0;&#x441;&#x443;&#x445;&#x43E;&#x439; &#x442;&#x435;&#x43E;&#x440;&#x438;&#x435;&#x439;, &#x430;&#xA0;&#x441;&#xA0;&#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x43C;&#x438; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F;&#x43C;&#x438;: &#x441;&#x430;&#x43C;&#x438; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F; &#x431;&#x44B;&#x43B;&#x438; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x44B;&#x435;, &#x438;&#x43D;&#x43E;&#x433;&#x434;&#x430; &#x43D;&#x435;&#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x44B;&#x435;, &#x438;&#x43D;&#x43E;&#x433;&#x434;&#x430; &#x441;&#x43B;&#x43E;&#x436;&#x43D;&#x44B;&#x435;. &#x41F;&#x440;&#x438;&#x44F;&#x442;&#x43D;&#x43E; &#x431;&#x44B;&#x43B;&#x43E; &#x43F;&#x440;&#x43E;&#x431;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x441;&#x435;&#x431;&#x44F; &#x432;&#xA0;&#x447;&#x435;&#x43C;-&#x442;&#x43E; &#x43D;&#x43E;&#x432;&#x43E;&#x43C;: &#x43D;&#x430;&#x43F;&#x438;&#x441;&#x430;&#x43D;&#x438;&#x438; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x44B;&#x445; &#x437;&#x430;&#x433;&#x43E;&#x43B;&#x43E;&#x432;&#x43A;&#x43E;&#x432;, &#x442;&#x435;&#x43A;&#x441;&#x442;&#x430; &#x441;&#xA0;&#x440;&#x430;&#x437;&#x432;&#x435;&#x440;&#x43D;&#x443;&#x442;&#x43E;&#x439; &#x43C;&#x435;&#x442;&#x430;&#x444;&#x43E;&#x440;&#x43E;&#x439; &#x438;&#xA0;&#x434;&#x440;&#x443;&#x433;&#x438;&#x445; &#x201E;&#x430;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x44F;&#x445;&#x201C; &#x432;&#x43E;&#xA0;&#x432;&#x440;&#x435;&#x43C;&#x44F; &#x43E;&#x431;&#x443;&#x447;&#x435;&#x43D;&#x438;&#x44F;. &#x41E;&#x447;&#x435;&#x43D;&#x44C; &#x43F;&#x43E;&#x43D;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x430;&#x441;&#x44C; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442; &#x410;&#x43D;&#x430;&#x441;&#x442;&#x430;&#x441;&#x438;&#x44F;: &#x434;&#x43E;&#x431;&#x440;&#x430;&#x44F;, &#x432;&#x435;&#x441;&#x435;&#x43B;&#x430;&#x44F;, &#x443;&#x43B;&#x44B;&#x431;&#x447;&#x438;&#x432;&#x430;&#x44F;, &#x432;&#x441;&#x435;&#x433;&#x434;&#x430; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x43B;&#x430; &#x432;&#x43E;&#xA0;&#x432;&#x440;&#x435;&#x43C;&#x44F; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x439;, &#x432;&#x441;&#x451; &#x43A;&#x43E;&#x43C;&#x43C;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43B;&#x430;, &#x43F;&#x43E;&#x43D;&#x44F;&#x442;&#x43D;&#x43E; &#x43E;&#x431;&#x44A;&#x44F;&#x441;&#x43D;&#x44F;&#x43B;&#x430; &#x438;&#xA0;&#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x43B;&#x430; &#x43D;&#x430;&#xA0;&#x432;&#x441;&#x435; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441;&#x44B;. &#x415;&#x441;&#x43B;&#x438; &#x43F;&#x43E;&#x434;&#x44B;&#x442;&#x43E;&#x436;&#x438;&#x442;&#x44C;, &#x442;&#x43E;&#xA0;&#x43A;&#x443;&#x440;&#x441; &#x43D;&#x435;&#xA0;&#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x44F;&#x440;&#x43A;&#x438;&#x439; &#x438;&#xA0;&#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B;&#x439;, &#x43D;&#x43E;&#xA0;&#x435;&#x449;&#x435; &#x438;&#xA0;&#x434;&#x443;&#x448;&#x435;&#x432;&#x43D;&#x44B;&#x439; &#x438;&#xA0;&#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x44B;&#x439;)&#xBB; </div> </div> </div> </div> <div class="t958__more-wrapper"> <div class="t958__more"> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> </div> </div> </div> </div> </div> <div class="t958__item t-slds__item t-width_6" data-slide-index="13" role="group" aria-roledescription="slide" aria-hidden="true" aria-label="13 &#x438;&#x437; 13"> <div class="t-slds__wrapper" style="padding-right: 20px!important;"> <div class="t958__card-wrapper" style> <div class="t958__card t958__card_preview t958__card_fade" style="background-color:#ffffff;height:470px;" data-review-block="review1724758317391"> <div class="t958__card-inner"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild3563-6362-4561-b961-643565366633/Frame_6.png" bgimgfield="li_img__1724758317391" style="background-image:url(&apos;https://thb.tildacdn.com/tild3563-6362-4561-b961-643565366633/-/resizeb/20x/Frame_6.png&apos;); border-radius: 50%;" itemscope itemtype="http://schema.org/ImageObject"> <meta itemprop="image" content="https://static.tildacdn.com/tild3563-6362-4561-b961-643565366633/Frame_6.png"> </div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_xs" field="li_title__1724758317391">&#x418;&#x432;&#x430;&#x43D; <br>&#x41B;&#x430;&#x43E; </div> <div class="t958__author-descr t-descr t-descr_xs" field="li_descr__1724758317391">&#x43E; &#x43A;&#x443;&#x440;&#x441;&#x435; <a href="https://www.mann-ivanov-ferber.ru/courses/business2/" target="_blank" rel="noreferrer noopener">&#xAB;&#x421;&#x432;&#x43E;&#x439; &#x431;&#x438;&#x437;&#x43D;&#x435;&#x441;: &#x43E;&#x442; &#x441;&#x43B;&#x43E;&#x432; &#x43A; &#x434;&#x435;&#x43B;&#x443;&#xBB;</a></div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__1724758317391"> &#xAB;&#x41F;&#x440;&#x438; &#x43F;&#x43E;&#x43A;&#x443;&#x43F;&#x43A;&#x435; &#x43A;&#x443;&#x440;&#x441;&#x430;, &#x431;&#x44B;&#x43B; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x435;&#x43D; &#x434;&#x43E;&#x432;&#x43E;&#x43B;&#x44C;&#x43D;&#x43E; &#x441;&#x43A;&#x435;&#x43F;&#x442;&#x438;&#x447;&#x43D;&#x43E;, &#x434;&#x443;&#x43C;&#x430;&#x43B; &#x431;&#x443;&#x434;&#x435;&#x442; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x43D;&#x43E;&#x439; &#x448;&#x430;&#x431;&#x43B;&#x43E;&#x43D;&#x43D;&#x44B;&#x439; &#x43A;&#x443;&#x440;&#x441; &#x43F;&#x440;&#x43E; &#x43E;&#x441;&#x43D;&#x43E;&#x432;&#x44B; &#x43C;&#x430;&#x440;&#x43A;&#x435;&#x442;&#x438;&#x43D;&#x433;&#x430; &#x438; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x44B;&#x439; &#x443;&#x441;&#x43F;&#x435;&#x445;, &#x43D;&#x430; &#x434;&#x435;&#x43B;&#x435; &#x44F; &#x433;&#x43B;&#x443;&#x431;&#x43E;&#x43A;&#x43E; &#x43E;&#x448;&#x438;&#x431;&#x430;&#x43B;&#x441;&#x44F; &#x438; &#x43A;&#x443;&#x440;&#x441; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#x43F;&#x440;&#x435;&#x432;&#x437;&#x43E;&#x448;&#x435;&#x43B; &#x432;&#x441;&#x435; &#x43C;&#x43E;&#x438; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x43D;&#x438;&#x44F;. &#x412;&#x43E;&#x432;&#x43B;&#x435;&#x447;&#x435;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43A;&#x443;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x43E;&#x432; &#x438; &#x43B;&#x438;&#x447;&#x43D;&#x43E; &#x410;&#x440;&#x442;&#x435;&#x43C;&#x430; &#x412;&#x430;&#x445;&#x440;&#x443;&#x448;&#x435;&#x432;&#x430; &#x441;&#x438;&#x43B;&#x44C;&#x43D;&#x43E; &#x432;&#x43F;&#x435;&#x447;&#x430;&#x442;&#x43B;&#x438;&#x43B;&#x430;.<br><br>&#x41A;&#x443;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x44B; &#x43E;&#x447;&#x435;&#x43D;&#x44C; &#x433;&#x43B;&#x443;&#x431;&#x43E;&#x43A;&#x43E; &#x43F;&#x43E;&#x433;&#x440;&#x443;&#x436;&#x435;&#x43D;&#x44B; &#x432;&#x43E; &#x432;&#x441;&#x435; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x44B; &#x43F;&#x43E;&#x441;&#x442;&#x440;&#x43E;&#x435;&#x43D;&#x438;&#x44F; &#x431;&#x438;&#x437;&#x43D;&#x435;&#x441;&#x430; &#x438; &#x434;&#x435;&#x43B;&#x44F;&#x442;&#x441;&#x44F; &#x432;&#x441;&#x435;&#x439; &#x43D;&#x435;&#x43E;&#x431;&#x445;&#x43E;&#x434;&#x438;&#x43C;&#x43E;&#x439; &#x438;&#x43D;&#x444;&#x43E;&#x440;&#x43C;&#x430;&#x446;&#x438;&#x435;&#x439;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x432;&#x44B; &#x441;&#x43C;&#x43E;&#x433;&#x43B;&#x438; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x442;&#x44C; &#x441;&#x432;&#x43E;&#x44E; &#x431;&#x438;&#x437;&#x43D;&#x435;&#x441;-&#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;, &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x441;&#x442;&#x438; &#x43C;&#x430;&#x440;&#x43A;&#x435;&#x442;&#x438;&#x43D;&#x433;&#x43E;&#x432;&#x44B;&#x435; &#x438;&#x441;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x438; &#x43F;&#x440;&#x43E;&#x441;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x444;&#x438;&#x43D;&#x430;&#x43D;&#x441;&#x43E;&#x432;&#x44B;&#x435; &#x432;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F; &#x438; &#x438;&#x437;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x438; &#x432;&#x430;&#x448;&#x435;&#x433;&#x43E; &#x43F;&#x440;&#x43E;&#x435;&#x43A;&#x442;&#x430;.<br><br>&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x43E;&#x43A;&#x43E;&#x43D;&#x447;&#x430;&#x43D;&#x438;&#x44F; &#x43A;&#x443;&#x440;&#x441;&#x430; &#x443; &#x43C;&#x435;&#x43D;&#x44F; &#x43D;&#x430; &#x440;&#x443;&#x43A;&#x430;&#x445; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x44B;&#x439; &#x43F;&#x440;&#x43E;&#x435;&#x43A;&#x442; &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x442;&#x44C; &#x43D;&#x430; &#x440;&#x44B;&#x43D;&#x43E;&#x43A;. <br>&#x411;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x435; &#x441;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x432;&#x441;&#x435;&#x43C; &#x43E;&#x440;&#x433;&#x430;&#x43D;&#x438;&#x437;&#x430;&#x442;&#x43E;&#x440;&#x430;&#x43C; &#x438; &#x43A;&#x443;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x430;&#x43C; &#x43A;&#x443;&#x440;&#x441;&#x430;, &#x44F; &#x43F;&#x440;&#x43E;&#x43A;&#x430;&#x447;&#x430;&#x43B; &#x441;&#x432;&#x43E;&#x438; &#x43D;&#x430;&#x432;&#x44B;&#x43A;&#x438; &#x43D;&#x430; 200%, &#x438; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x441;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x43C;&#x43E;&#x435;&#x43C;&#x443; &#x43A;&#x443;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x443; &#x410;&#x43B;&#x435;&#x43A;&#x441;&#x430;&#x43D;&#x434;&#x440;&#x443; &#x416;&#x443;&#x440;&#x438;&#x43B;&#x43E;, &#x435;&#x433;&#x43E; &#x43E;&#x431;&#x440;&#x430;&#x442;&#x43D;&#x430;&#x44F; &#x441;&#x432;&#x44F;&#x437;&#x44C; &#x441;&#x438;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x43E;&#x43C;&#x43E;&#x433;&#x43B;&#x430; &#x43C;&#x43D;&#x435; &#x440;&#x430;&#x437;&#x43E;&#x431;&#x440;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x432;&#x43E; &#x432;&#x441;&#x435;&#x445; &#x442;&#x43E;&#x43D;&#x43A;&#x43E;&#x441;&#x442;&#x44F;&#x445; &#x43F;&#x43E;&#x441;&#x442;&#x440;&#x43E;&#x435;&#x43D;&#x438;&#x44F; &#x441;&#x432;&#x43E;&#x435;&#x433;&#x43E; &#x431;&#x438;&#x437;&#x43D;&#x435;&#x441;&#x430;.<br><br>&#x421;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x435;&#x449;&#x435; &#x440;&#x430;&#x437; &#x437;&#x430; &#x43E;&#x440;&#x433;&#x430;&#x43D;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44E; &#x442;&#x430;&#x43A;&#x43E;&#x433;&#x43E; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E;&#x433;&#x43E; &#x43A;&#x443;&#x440;&#x441;&#x430;. <br>&#x42F; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x431;&#x443;&#x434;&#x443; &#x438; &#x434;&#x430;&#x43B;&#x44C;&#x448;&#x435; &#x443;&#x447;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x443; &#x41C;&#x418;&#x424;&#x430;&#xBB; </div> </div> </div> </div> <div class="t958__more-wrapper"> <div class="t958__more"> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> <span class="t958__more-dot"></span> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="t958__next t958__control"></div> <div class="t958__previous t958__control"></div> </div> <div class="t-popup"> <div class="t958__close t-popup__close t-popup__close-icon_cross"> <button type="button" class="t958__close-button t-popup__close-wrapper" aria-label="&#x417;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44C; &#x434;&#x438;&#x430;&#x43B;&#x43E;&#x433;&#x43E;&#x432;&#x43E;&#x435; &#x43E;&#x43A;&#x43D;&#x43E;"> <svg role="presentation" class="t-popup__close-icon" width="23px" height="23px" viewBox="0 0 23 23" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink"> <g stroke="none" stroke-width="1" fill="#d1d1d1" fill-rule="evenodd"> <rect transform="translate(11.313708, 11.313708) rotate(-45.000000) translate(-11.313708, -11.313708) " x="10.3137085" y="-3.6862915" width="2" height="30"/> <rect transform="translate(11.313708, 11.313708) rotate(-315.000000) translate(-11.313708, -11.313708) " x="10.3137085" y="-3.6862915" width="2" height="30"/> </g> </svg> </button> </div> <div class="t-popup__container t-width_6"> <div class="t958__popup-item t-width_6" data-review-index="4043090304830"> <div class="t958__card t958__card_popup" style="background-color:#ffffff;height:470px;"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild6334-3361-4436-b733-363830376135/Frame_9.png" bgimgfield="li_img__4043090304830" style="background-image:url(&apos;https://thb.tildacdn.com/tild6334-3361-4436-b733-363830376135/-/resizeb/20x/Frame_9.png&apos;); border-radius: 50%;"></div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_lg" field="li_title__4043090304830"> &#x41E;&#x43B;&#x44F; <br>&#x41A;&#x438;&#x440;&#x435;&#x435;&#x432;&#x430; </div> <div class="t958__author-descr t-descr t-descr_md" field="li_descr__4043090304830"> &#x43E; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x43C; &#x43F;&#x43E;&#x442;&#x43E;&#x43A;&#x435; &#x43A;&#x443;&#x440;&#x441;&#x430; <a href="https://www.mann-ivanov-ferber.ru/courses/editor/" target="_blank" rel="noreferrer noopener">&#xAB;&#x42F; &#x2014; &#x440;&#x435;&#x434;&#x430;&#x43A;&#x442;&#x43E;&#x440;&#xBB;</a> </div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__4043090304830"> &#xAB;&#x41C;&#x430;&#x43B;&#x435;&#x43D;&#x44C;&#x43A;&#x430;&#x44F; &#x43F;&#x440;&#x435;&#x434;&#x44B;&#x441;&#x442;&#x43E;&#x440;&#x438;&#x44F; &#x43C;&#x43E;&#x435;&#x439; &#x43B;&#x44E;&#x431;&#x432;&#x438; &#x43A;&#xA0;&#x43A;&#x43D;&#x438;&#x433;&#x430;&#x43C;.<br><br>&#x423;&#xA0;&#x43C;&#x43E;&#x435;&#x433;&#x43E; &#x434;&#x435;&#x434;&#x443;&#x448;&#x43A;&#x438; &#x431;&#x44B;&#x43B;&#x43E; &#x43E;&#x447;&#x435;&#x43D;&#x44C; &#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x43A;&#x43D;&#x438;&#x433; &#x438;&#xA0;&#x43E;&#x43D;&#xA0;&#x432;&#x441;&#x435; &#x43F;&#x43E;&#x43A;&#x443;&#x43F;&#x430;&#x43B; &#x438;&#xA0;&#x43F;&#x43E;&#x43A;&#x443;&#x43F;&#x430;&#x43B;&#xA0;&#x438;&#x445;. &#x41F;&#x43E;&#x43C;&#x43D;&#x44E;, &#x43A;&#x430;&#x43A; &#x44F;&#xA0;&#x43D;&#x435;&#xA0;&#x43F;&#x43E;&#x43D;&#x438;&#x43C;&#x430;&#x43B;&#x430;, &#x447;&#x442;&#x43E; &#x442;&#x430;&#x43A;&#x43E;&#x433;&#x43E; &#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x432;&#xA0;&#x44D;&#x442;&#x438;&#x445; &#x43A;&#x43D;&#x438;&#x433;&#x430;&#x445;, &#x43D;&#x43E;&#xA0;&#x43F;&#x43E;&#x442;&#x43E;&#x43C; &#x43D;&#x430;&#xA0;&#x433;&#x43B;&#x430;&#x437;&#x430; &#x43F;&#x43E;&#x43F;&#x430;&#x43B;&#x430;&#x441;&#x44C; &#x43A;&#x43D;&#x438;&#x433;&#x430; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x439; &#x443;&#x436;&#x435; &#x43D;&#x435;&#xA0;&#x445;&#x43E;&#x442;&#x435;&#x43B;&#x43E;&#x441;&#x44C; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x430;&#x432;&#x43B;&#x438;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F;.<br><br>&#x421;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x43A;&#x443;&#x440;&#x441;&#x430; &#x201E;&#x42F; &#x2014; &#x440;&#x435;&#x434;&#x430;&#x43A;&#x442;&#x43E;&#x440;&#x201C; &#x43F;&#x43E;&#x43F;&#x430;&#x43B;&#x430;&#x441;&#x44C; &#x43C;&#x43D;&#x435; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x442;&#x43E;&#x433;&#x434;&#x430;, &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x445;&#x43E;&#x442;&#x435;&#x43B;&#x43E;&#x441;&#x44C; &#x43F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x43D; &#x438;&#xA0;&#x44F;&#xA0;&#x43F;&#x43E;&#x434;&#x443;&#x43C;&#x430;&#x43B;&#x430; &#x201E;&#x43F;&#x43E;&#x447;&#x435;&#x43C;&#x443;&#xA0;&#x431;&#x44B; &#x438;&#xA0;&#x43D;&#x435;&#x442;, &#x442;&#x435;&#x43C; &#x431;&#x43E;&#x43B;&#x435;&#x435; &#x431;&#x44B;&#x43B;&#x430;&#xA0;&#x436;&#x435; &#x443;&#xA0;&#x43C;&#x435;&#x43D;&#x44F; &#x43C;&#x435;&#x447;&#x442;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x442;&#x44C; &#x432;&#xA0;&#x438;&#x437;&#x434;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x435;&#x201C;<br>&#x415;&#x441;&#x43B;&#x438; &#x447;&#x435;&#x441;&#x442;&#x43D;&#x43E;, &#x431;&#x44B;&#x43B;&#x43E; &#x43D;&#x435;&#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x441;&#x442;&#x440;&#x430;&#x448;&#x43D;&#x43E;, &#x44D;&#x442;&#x43E; &#x43C;&#x43E;&#x439; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x43A;&#x443;&#x440;&#x441;, &#x43D;&#x43E;&#xA0;&#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; &#x437;&#x430;&#x43D;&#x44F;&#x442;&#x438;&#x44F; &#x441;&#x442;&#x440;&#x430;&#x445; &#x43F;&#x440;&#x43E;&#x448;&#x435;&#x43B; &#x438;&#xA0;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x43E;&#x441;&#x44C; &#x443;&#x432;&#x43B;&#x435;&#x43A;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x43F;&#x43E;&#x433;&#x440;&#x443;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x432;&#xA0;&#x43F;&#x440;&#x43E;&#x444;&#x435;&#x441;&#x441;&#x438;&#x44E; &#x440;&#x435;&#x434;&#x430;&#x43A;&#x442;&#x43E;&#x440;&#x430;.<br><br>&#x42D;&#x442;&#x43E;&#x442; &#x43A;&#x443;&#x440;&#x441; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x43B;&#x441;&#x44F; &#x432;&#x43E;&#x43B;&#x448;&#x435;&#x431;&#x43D;&#x44B;&#x43C; &#x438;&#xA0;&#x43F;&#x43E;&#x437;&#x43D;&#x430;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C;)<br>&#x421;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x432;&#x441;&#x435;&#x43C; &#x43A;&#x442;&#x43E; &#x442;&#x440;&#x443;&#x434;&#x438;&#x43B;&#x441;&#x44F; &#x43D;&#x430;&#x434; &#x43D;&#x438;&#x43C;!&#x2764;&#xFE0F;&#xBB; </div> </div> </div> </div> <div class="t958__popup-item t-width_6" data-review-index="4043090304831"> <div class="t958__card t958__card_popup" style="background-color:#ffffff;height:470px;"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild3261-3835-4531-b161-356132636338/photo.png" bgimgfield="li_img__4043090304831" style="background-image:url(&apos;https://thb.tildacdn.com/tild3261-3835-4531-b161-356132636338/-/resizeb/20x/photo.png&apos;); border-radius: 50%;"></div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_lg" field="li_title__4043090304831"> &#x41C;&#x430;&#x43A;&#x441;&#x438;&#x43C; <br>&#x420;&#x443;&#x440;&#x435;&#x43D;&#x43A;&#x43E; </div> <div class="t958__author-descr t-descr t-descr_md" field="li_descr__4043090304831"> &#x43E; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x43C; &#x43F;&#x43E;&#x442;&#x43E;&#x43A;&#x435; &#x43A;&#x443;&#x440;&#x441;&#x430; <a href="https://www.mann-ivanov-ferber.ru/courses/textus/" target="_blank" rel="noreferrer noopener">&#xAB;&#x422;&#x435;&#x43A;&#x441;&#x442; &#x43A;&#x430;&#x43A; &#x438;&#x43D;&#x441;&#x442;&#x440;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#xBB;</a> </div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__4043090304831"> &#xAB;&#x41A;&#x443;&#x440;&#x441; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E; &#x43E;&#x43F;&#x440;&#x430;&#x432;&#x434;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x441;&#x432;&#x43E;&#x435; &#x43D;&#x430;&#x437;&#x432;&#x430;&#x43D;&#x438;&#x435;. &#x421;&#xA0;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x43E;&#x43C; &#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x43A;&#x438; &#x44F;&#xA0;&#x432;&#x441;&#x435; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x435; &#x432;&#x43F;&#x435;&#x447;&#x430;&#x442;&#x43B;&#x44F;&#x43B;&#x441;&#x44F; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E; &#x438;&#xA0;&#x43C;&#x43D;&#x43E;&#x433;&#x43E;&#x433;&#x440;&#x430;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E; &#x442;&#x435;&#x43A;&#x441;&#x442;&#x430;, &#x435;&#x433;&#x43E; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E;, &#x433;&#x438;&#x431;&#x43A;&#x43E;&#x441;&#x442;&#x44C;&#x44E; &#x438;&#xA0;&#x432;&#x44B;&#x440;&#x430;&#x437;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E;. &#x423;&#x43C;&#x435;&#x43D;&#x438;&#x435; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x442;&#x44C; &#x441;&#x43B;&#x43E;&#x432;&#x43E;&#x43C; &#x43F;&#x43E;&#x437;&#x432;&#x43E;&#x43B;&#x438;&#x43B;&#x43E; &#x43C;&#x43D;&#x435; &#x432;&#x44B;&#x440;&#x430;&#x437;&#x438;&#x442;&#x44C; &#x432;&#x43D;&#x443;&#x442;&#x440;&#x435;&#x43D;&#x43D;&#x44E;&#x44E; &#x438;&#x441;&#x43A;&#x440;&#x443; &#x438;&#xA0;&#x438;&#x43D;&#x434;&#x438;&#x432;&#x438;&#x434;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x432;&#x437;&#x433;&#x43B;&#x44F;&#x434;, &#x43F;&#x440;&#x43E;&#x44F;&#x432;&#x438;&#x442;&#x44C;&#x441;&#x44F;, &#x441;&#x442;&#x430;&#x442;&#x44C; &#x431;&#x43B;&#x438;&#x436;&#x435; &#x43A;&#xA0;&#x441;&#x432;&#x43E;&#x435;&#x43C;&#x443; &#x43E;&#x43A;&#x440;&#x443;&#x436;&#x435;&#x43D;&#x438;&#x44E; &#x438;&#xA0;&#x43A;&#xA0;&#x441;&#x430;&#x43C;&#x43E;&#x43C;&#x443; &#x441;&#x435;&#x431;&#x435;. &#x42F;&#xA0;&#x442;&#x440;&#x435;&#x43D;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43B; &#x432;&#x43D;&#x438;&#x43C;&#x430;&#x43D;&#x438;&#x435; &#x438;&#xA0;&#x432;&#x43E;&#x43E;&#x431;&#x440;&#x430;&#x436;&#x435;&#x43D;&#x438;&#x435;, &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x43B; &#x437;&#x430;&#xA0;&#x43C;&#x438;&#x440;&#x43E;&#x43C; &#x438;&#xA0;&#x43F;&#x43E;&#x437;&#x432;&#x43E;&#x43B;&#x44F;&#x43B; &#x434;&#x440;&#x443;&#x433;&#x438;&#x43C; &#x43B;&#x44E;&#x434;&#x44F;&#x43C; &#x443;&#x432;&#x438;&#x434;&#x435;&#x442;&#x44C; &#x435;&#x433;&#x43E; &#x43C;&#x43E;&#x438;&#x43C;&#x438; &#x433;&#x43B;&#x430;&#x437;&#x430;&#x43C;&#x438;. &#x41F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x43A;&#x430; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x43B;&#x430; &#x432;&#xA0;&#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x43E;&#x43C; &#x438;&#xA0;&#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x44E;&#x449;&#x435;&#x43C; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x440;&#x430;&#x43D;&#x441;&#x442;&#x432;&#x435;, &#x44D;&#x442;&#x43E; &#x43F;&#x43E;&#x43C;&#x43E;&#x433;&#x43B;&#x43E; &#x440;&#x430;&#x441;&#x43A;&#x440;&#x44B;&#x442;&#x44C;&#x441;&#x44F;&#xBB; </div> </div> </div> </div> <div class="t958__popup-item t-width_6" data-review-index="4043090304832"> <div class="t958__card t958__card_popup" style="background-color:#ffffff;height:470px;"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild6433-6262-4631-b166-663031316135/Frame_15.png" bgimgfield="li_img__4043090304832" style="background-image:url(&apos;https://thb.tildacdn.com/tild6433-6262-4631-b166-663031316135/-/resizeb/20x/Frame_15.png&apos;); border-radius: 50%;"></div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_lg" field="li_title__4043090304832"> &#x41D;&#x430;&#x442;&#x430;&#x43B;&#x44C;&#x44F; <br>&#x421;&#x435;&#x440;&#x433;&#x435;&#x435;&#x432;&#x430; </div> <div class="t958__author-descr t-descr t-descr_md" field="li_descr__4043090304832"> &#x43E; &#x442;&#x440;&#x435;&#x442;&#x44C;&#x435;&#x43C; &#x43F;&#x43E;&#x442;&#x43E;&#x43A;&#x435; &#x43A;&#x443;&#x440;&#x441;&#x430; <a href="https://www.mann-ivanov-ferber.ru/courses/tseh" target="_blank" rel="noreferrer noopener">&#xAB;&#x426;&#x415;&#x425;&#xBB;</a> </div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__4043090304832"> &#xAB;&#x41E;&#x434;&#x43D;&#x430;&#x436;&#x434;&#x44B; &#x43E;&#x441;&#x435;&#x43D;&#x44C;&#x44E; &#x44F;&#xA0;&#x443;&#x432;&#x438;&#x434;&#x435;&#x43B;&#x430; &#x43A;&#x443;&#x440;&#x441; &#x201E;&#x426;&#x415;&#x425;&#xA0;&#x2116;&#x2009;3&#x201C; &#x438;&#xA0;&#x432;&#x441;&#x43F;&#x43E;&#x43C;&#x43D;&#x438;&#x43B;&#x430; &#x43C;&#x430;&#x43B;&#x435;&#x43D;&#x44C;&#x43A;&#x443;&#x44E; &#x434;&#x435;&#x432;&#x43E;&#x447;&#x43A;&#x443;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x430;&#x44F; &#x43C;&#x435;&#x447;&#x442;&#x430;&#x43B;&#x430; &#x441;&#x442;&#x430;&#x442;&#x44C; &#x43F;&#x438;&#x441;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x438;&#x446;&#x435;&#x439;. &#x41C;&#x435;&#x447;&#x442;&#x430;&#x43B;&#x430;, &#x43D;&#x43E;&#xA0;&#x437;&#x430;&#x431;&#x44B;&#x43B;&#x430; &#x43E;&#x431;&#xA0;&#x44D;&#x442;&#x43E;&#x43C;, &#x43F;&#x43E;&#x442;&#x43E;&#x43C;&#x443; &#x447;&#x442;&#x43E; &#x432;&#x441;&#x435;&#x433;&#x434;&#x430; &#x435;&#x441;&#x442;&#x44C; &#x447;&#x442;&#x43E;-&#x442;&#x43E; &#x431;&#x43E;&#x43B;&#x435;&#x435; &#x432;&#x430;&#x436;&#x43D;&#x43E;&#x435; &#x438;&#xA0;&#x431;&#x43E;&#x43B;&#x435;&#x435; &#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;&#x435;, &#x447;&#x435;&#x43C; &#x43C;&#x435;&#x447;&#x442;&#x430;.<br><br>&#x42F;&#xA0;&#x43F;&#x43E;&#x434;&#x430;&#x440;&#x438;&#x43B;&#x430; &#x441;&#x435;&#x431;&#x435; &#x43A;&#x443;&#x440;&#x441; &#x43D;&#x430;&#xA0;&#x434;&#x435;&#x43D;&#x44C; &#x440;&#x43E;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x44F;. &#x41D;&#x435;&#x442;, &#x44F;&#xA0;&#x43F;&#x43E;&#x43A;&#x430; &#x43D;&#x435;&#xA0;&#x43D;&#x430;&#x43F;&#x438;&#x441;&#x430;&#x43B;&#x430; &#x43A;&#x43D;&#x438;&#x433;&#x443;, &#x43D;&#x43E;&#xA0;&#x443;&#x436;&#x435; &#x435;&#x441;&#x442;&#x44C; &#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x430;, &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446; &#x442;&#x435;&#x43A;&#x441;&#x442;&#x430; &#x438;&#xA0;&#x434;&#x43E;&#x440;&#x43E;&#x436;&#x43D;&#x430;&#x44F; &#x43A;&#x430;&#x440;&#x442;&#x430; &#x43A;&#xA0;&#x43C;&#x43E;&#x435;&#x439; &#x43C;&#x435;&#x447;&#x442;&#x435;. &#x41D;&#x430;&#x434;&#x435;&#x44E;&#x441;&#x44C;, &#x44F;&#xA0;&#x434;&#x43E;&#x439;&#x434;&#x443; &#x434;&#x43E;&#xA0;&#x43D;&#x435;&#x435; &#x437;&#x430;&#xA0;&#x440;&#x443;&#x43A;&#x443; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435; &#x441;&#xA0;&#x442;&#x43E;&#x439; &#x434;&#x435;&#x432;&#x43E;&#x447;&#x43A;&#x43E;&#x439;&#xBB;. </div> </div> </div> </div> <div class="t958__popup-item t-width_6" data-review-index="1714144459756"> <div class="t958__card t958__card_popup" style="background-color:#ffffff;height:470px;"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild6531-6633-4230-b263-383463383235/photo.png" bgimgfield="li_img__1714144459756" style="background-image:url(&apos;https://thb.tildacdn.com/tild6531-6633-4230-b263-383463383235/-/resizeb/20x/photo.png&apos;); border-radius: 50%;"></div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_lg" field="li_title__1714144459756"> &#x414;&#x430;&#x440;&#x44C;&#x44F; <br>&#x417;&#x443;&#x434;&#x438;&#x43B;&#x438;&#x43D;&#x430; </div> <div class="t958__author-descr t-descr t-descr_md" field="li_descr__1714144459756"> &#x43E; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x43C; &#x43F;&#x43E;&#x442;&#x43E;&#x43A;&#x435; &#x43A;&#x443;&#x440;&#x441;&#x430; <a href="https://www.mann-ivanov-ferber.ru/courses/textus/" target="_blank" rel="noreferrer noopener">&#xAB;&#x422;&#x435;&#x43A;&#x441;&#x442; &#x43A;&#x430;&#x43A; &#x438;&#x43D;&#x441;&#x442;&#x440;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#xBB;</a> </div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__1714144459756"> &#xAB;&#x420;&#x435;&#x448;&#x430;&#x43B;&#x430;&#x441;&#x44C; &#x43D;&#x430;&#xA0;&#x43F;&#x43E;&#x43A;&#x443;&#x43F;&#x43A;&#x443; &#x43A;&#x443;&#x440;&#x441;&#x430; &#x442;&#x44F;&#x436;&#x435;&#x43B;&#x43E; &#x438;&#xA0;&#x434;&#x43E;&#x43B;&#x433;&#x43E;. &#x42F;&#xA0;&#x43D;&#x435;&#xA0;&#x432;&#x435;&#x434;&#x443; &#x431;&#x43B;&#x43E;&#x433;&#x43E;&#x432;, &#x43D;&#x435;&#xA0;&#x43F;&#x440;&#x43E;&#x434;&#x430;&#x44E; &#x441;&#x432;&#x43E;&#x438; &#x443;&#x441;&#x43B;&#x443;&#x433;&#x438;, &#x430;&#xA0;&#x434;&#x43B;&#x44F; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x44B; &#x438;&#x43D;&#x43E;&#x433;&#x434;&#x430; &#x43F;&#x438;&#x448;&#x443;, &#x43D;&#x43E;&#xA0;&#x438;&#x441;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43D;&#x430;&#x443;&#x447;&#x43D;&#x44B;&#x435; &#x442;&#x435;&#x43A;&#x441;&#x442;&#x44B;. &#x41A;&#x443;&#x43F;&#x438;&#x43B;&#x430; &#x43A;&#x443;&#x440;&#x441; &#x438;&#x437;-&#x437;&#x430; &#x441;&#x432;&#x43E;&#x435;&#x439; &#x43B;&#x44E;&#x431;&#x432;&#x438; &#x43A;&#xA0;&#x447;&#x442;&#x435;&#x43D;&#x438;&#x44E; &#x438;&#xA0;&#x441;&#x43F;&#x438;&#x441;&#x43A;&#x430; &#x43B;&#x435;&#x43A;&#x442;&#x43E;&#x440;&#x43E;&#x432;. &#x418;&#xA0;&#x43D;&#x438;&#xA0;&#x441;&#x435;&#x43A;&#x443;&#x43D;&#x434;&#x44B; &#x43D;&#x435;&#xA0;&#x43F;&#x43E;&#x436;&#x430;&#x43B;&#x435;&#x43B;&#x430;.<br><br>&#x41A;&#x443;&#x440;&#x441; &#x437;&#x430;&#x43C;&#x435;&#x447;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439;! &#x418;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x44B;&#x435; &#x441;&#x43F;&#x438;&#x43A;&#x435;&#x440;&#x44B; &#x438;&#xA0;&#x43A;&#x43B;&#x430;&#x441;&#x441;&#x43D;&#x44B;&#x435; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F;, &#x432;&#x441;&#x435; &#x44D;&#x442;&#x43E; &#x43F;&#x43E;&#x43C;&#x43E;&#x433;&#x430;&#x435;&#x442; &#x432;&#x437;&#x433;&#x43B;&#x44F;&#x43D;&#x443;&#x442;&#x44C; &#x43D;&#x430;&#xA0;&#x441;&#x435;&#x431;&#x44F; &#x438;&#xA0;&#x43D;&#x430;&#xA0;&#x43C;&#x438;&#x440; &#x43D;&#x435;&#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x43E;-&#x434;&#x440;&#x443;&#x433;&#x43E;&#x43C;&#x443;, &#x43D;&#x430;&#x443;&#x447;&#x438;&#x442;&#x441;&#x44F; &#x446;&#x435;&#x43D;&#x438;&#x442;&#x44C; &#x43F;&#x43E;&#x434;&#x43C;&#x435;&#x447;&#x430;&#x442;&#x44C; &#x43C;&#x435;&#x43B;&#x43E;&#x447;&#x438;, &#x430;&#xA0;&#x442;&#x430;&#x43A;&#x436;&#x435; &#x441;&#x43C;&#x43E;&#x442;&#x440;&#x435;&#x442;&#x44C; &#x441;&#x435;&#x440;&#x44C;&#x435;&#x437;&#x43D;&#x435;&#x435; &#x43D;&#x430;&#xA0;&#x43A;&#x43D;&#x438;&#x433;&#x438;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x435; &#x43C;&#x44B;&#xA0;&#x447;&#x438;&#x442;&#x430;&#x435;&#x43C;. &#x412;&#x435;&#x441;&#x435;&#x43B;&#x43E; &#x438;&#xA0;&#x43C;&#x435;&#x441;&#x442;&#x430;&#x43C;&#x438; &#x441;&#x43B;&#x43E;&#x436;&#x43D;&#x43E; &#x43F;&#x438;&#x441;&#x430;&#x442;&#x44C; 50 &#x434;&#x43D;&#x435;&#x439; &#x43F;&#x43E;&#x434;&#x440;&#x44F;&#x434;, &#x43D;&#x43E;&#xA0;&#x43E;&#x449;&#x443;&#x449;&#x435;&#x43D;&#x438;&#x44F; &#x43E;&#x442;&#xA0;&#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x435;&#x43D;&#x43D;&#x44B;&#x445; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x439; &#x43D;&#x435;&#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x432;&#x430;&#x435;&#x43C;&#x44B;&#x435;. &#x41D;&#x43E;&#x432;&#x44B;&#x435; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x44B;&#x435; &#x43B;&#x44E;&#x434;&#x438; &#x441;&#x440;&#x435;&#x434;&#x438; &#x441;&#x43B;&#x443;&#x448;&#x430;&#x442;&#x435;&#x43B;&#x435;&#x439; &#x43A;&#x443;&#x440;&#x441;&#x430;. &#x41F;&#x43E;&#x436;&#x430;&#x43B;&#x435;&#x43B;&#x430;, &#x447;&#x442;&#x43E; &#x43D;&#x435;&#xA0;&#x432;&#x437;&#x44F;&#x43B;&#x430; &#x43A;&#x443;&#x440;&#x441; &#x441;&#xA0;&#x43E;&#x431;&#x440;&#x430;&#x442;&#x43D;&#x43E;&#x439; &#x441;&#x432;&#x44F;&#x437;&#x44C;&#x44E; &#x434;&#x443;&#x43C;&#x430;&#x44E;, &#x447;&#x442;&#x43E; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442; &#x431;&#x44B;&#x43B;&#xA0;&#x431;&#x44B; &#x435;&#x449;&#x435; &#x431;&#x43E;&#x43B;&#x435;&#x435; &#x432;&#x43F;&#x435;&#x447;&#x430;&#x442;&#x43B;&#x44F;&#x44E;&#x449;&#x438;&#x43C;.<br><br>&#x412;&#x441;&#x435;&#x43C; &#x440;&#x435;&#x43A;&#x43E;&#x43C;&#x435;&#x43D;&#x434;&#x443;&#x44E;, &#x434;&#x430;&#x436;&#x435; &#x435;&#x441;&#x43B;&#x438; &#x432;&#x44B;, &#x43A;&#x430;&#x43A; &#x438; &#x44F;, &#x43F;&#x43E;&#x43A;&#x430; &#x447;&#x442;&#x43E; &#x43D;&#x435;&#xA0;&#x432;&#x435;&#x434;&#x435;&#x442;&#x435; &#x430;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x443;&#x44E; &#x43F;&#x438;&#x441;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x43A;&#x443;&#x44E; &#x436;&#x438;&#x437;&#x43D;&#x44C;. &#x421;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x435; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x435; &#x41C;&#x418;&#x424;&#x430;. &#x421;&#xA0;&#x43D;&#x435;&#x442;&#x435;&#x440;&#x43F;&#x435;&#x43D;&#x438;&#x435;&#x43C; &#x436;&#x434;&#x443; &#x43D;&#x43E;&#x432;&#x44B;&#x445; &#x43A;&#x443;&#x440;&#x441;&#x43E;&#x432; &#x438;&#xA0;&#x43A;&#x43D;&#x438;&#x433;!&#xBB; </div> </div> </div> </div> <div class="t958__popup-item t-width_6" data-review-index="1721119576232"> <div class="t958__card t958__card_popup" style="background-color:#ffffff;height:470px;"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild6232-3133-4737-b936-323139323638/Frame_5.png" bgimgfield="li_img__1721119576232" style="background-image:url(&apos;https://thb.tildacdn.com/tild6232-3133-4737-b936-323139323638/-/resizeb/20x/Frame_5.png&apos;); border-radius: 50%;"></div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_lg" field="li_title__1721119576232"> &#x412;&#x438;&#x43A;&#x442;&#x43E;&#x440;&#x438;&#x44F; <br>&#x42F;&#x43B;&#x430;&#x43D;&#x434;&#x430;&#x435;&#x432;&#x430; </div> <div class="t958__author-descr t-descr t-descr_md" field="li_descr__1721119576232"> &#x43E; &#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x43A;&#x443;&#x43C;&#x435; <a href="https://www.mann-ivanov-ferber.ru/courses/litred/" target="_blank" rel="noreferrer noopener">&#xAB;&#x41F;&#x440;&#x438;&#x447;&#x435;&#x448;&#x438; &#x43C;&#x435;&#x43D;&#x44F;&#xBB;</a> </div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__1721119576232"> &#xAB;&#x41C;&#x43D;&#x435; &#x442;&#x44F;&#x436;&#x435;&#x43B;&#x43E; &#x43F;&#x43E;&#x434;&#x441;&#x442;&#x443;&#x43F;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x43A;&#xA0;&#x440;&#x435;&#x434;&#x430;&#x43A;&#x442;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x44E; &#x442;&#x435;&#x43A;&#x441;&#x442;&#x430;. &#x422;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442;&#x441;&#x44F; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E; &#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x438;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x443;&#x43D;&#x44F;&#x442;&#x44C; &#x442;&#x440;&#x435;&#x432;&#x43E;&#x433;&#x443; &#x43F;&#x435;&#x440;&#x435;&#x434; &#x441;&#x43B;&#x43E;&#x436;&#x43D;&#x44B;&#x43C; &#x44D;&#x442;&#x430;&#x43F;&#x43E;&#x43C; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x44B;. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443;, &#x43A;&#x430;&#x43A; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x44F;&#xA0;&#x443;&#x432;&#x438;&#x434;&#x435;&#x43B;&#x430; &#x438;&#x43D;&#x444;&#x43E;&#x440;&#x43C;&#x430;&#x446;&#x438;&#x44E; &#x43E;&#xA0;&#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x43A;&#x443;&#x43C;&#x435; &#x441;&#xA0;&#x43C;&#x438;&#x43B;&#x44B;&#x43C; &#x43D;&#x430;&#x437;&#x432;&#x430;&#x43D;&#x438;&#x435;&#x43C; &#x201E;&#x41F;&#x440;&#x438;&#x447;&#x435;&#x448;&#x438; &#x43C;&#x435;&#x43D;&#x44F;&#x201C;&#xA0;&#x2014; &#x43D;&#x435;&#xA0;&#x440;&#x430;&#x437;&#x434;&#x443;&#x43C;&#x44B;&#x432;&#x430;&#x44F;, &#x437;&#x430;&#x43F;&#x438;&#x441;&#x430;&#x43B;&#x430;&#x441;&#x44C; &#x43D;&#x430;&#xA0;&#x43D;&#x435;&#x433;&#x43E;.<br><br>&#x411;&#x44B;&#x43B;&#x43E; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x43E;, &#x432;&#x435;&#x441;&#x435;&#x43B;&#x43E; &#x438;&#xA0;&#x43E;&#x447;&#x435;&#x43D;&#x44C; &#x443;&#x44E;&#x442;&#x43D;&#x43E;&#xA0;&#x2014; &#x415;&#x43A;&#x430;&#x442;&#x435;&#x440;&#x438;&#x43D;&#x430; &#x438;&#xA0;&#x414;&#x430;&#x440;&#x438;&#x43D;&#x430; &#x43F;&#x43B;&#x430;&#x432;&#x43D;&#x43E; &#x432;&#x432;&#x435;&#x43B;&#x438; &#x432;&#xA0;&#x43A;&#x443;&#x440;&#x441; &#x434;&#x435;&#x43B;&#x430;, &#x43F;&#x43E;&#x434;&#x435;&#x43B;&#x438;&#x43B;&#x438;&#x441;&#x44C; &#x441;&#x432;&#x43E;&#x438;&#x43C; &#x43E;&#x43F;&#x44B;&#x442;&#x43E;&#x43C;. &#x421;&#xA0;&#x43A;&#x430;&#x436;&#x434;&#x44B;&#x43C; &#x437;&#x430;&#x43D;&#x44F;&#x442;&#x438;&#x435;&#x43C;, &#x441;&#x43E;&#x43F;&#x440;&#x43E;&#x432;&#x43E;&#x436;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x43C; &#x43F;&#x43E;&#x434;&#x441;&#x43A;&#x430;&#x437;&#x43A;&#x430;&#x43C;&#x438; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442;&#x43E;&#x432;, &#x44F;&#xA0;&#x447;&#x443;&#x432;&#x441;&#x442;&#x432;&#x43E;&#x432;&#x430;&#x43B;&#x430; &#x441;&#x435;&#x431;&#x44F; &#x443;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x435;&#x435;. &#x423;&#x436;&#x435; &#x430;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x43E; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x44F;&#x44E; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x435;&#x43D;&#x43D;&#x44B;&#x435; &#x437;&#x43D;&#x430;&#x43D;&#x438;&#x44F; &#x43D;&#x430;&#xA0;&#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x43A;&#x435;. &#x420;&#x430;&#x434;&#x430;, &#x447;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x448;&#x43B;&#x430; &#x44D;&#x442;&#x43E;&#x442; &#x43F;&#x443;&#x442;&#x44C;!&#xBB; </div> </div> </div> </div> <div class="t958__popup-item t-width_6" data-review-index="1721119601475"> <div class="t958__card t958__card_popup" style="background-color:#ffffff;height:470px;"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild6161-3233-4239-a531-646330366362/Frame_13.png" bgimgfield="li_img__1721119601475" style="background-image:url(&apos;https://thb.tildacdn.com/tild6161-3233-4239-a531-646330366362/-/resizeb/20x/Frame_13.png&apos;); border-radius: 50%;"></div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_lg" field="li_title__1721119601475"> &#x410;&#x43D;&#x43D;&#x430; <br>&#x41B;&#x44E;&#x431;&#x43E;&#x43C;&#x438;&#x440;&#x43E;&#x432;&#x430; </div> <div class="t958__author-descr t-descr t-descr_md" field="li_descr__1721119601475"> &#x43E; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x439; &#x43E;&#x441;&#x435;&#x43D;&#x43D;&#x435;&#x439; &#x441;&#x43C;&#x435;&#x43D;&#x435; &#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x43A;&#x443;&#x43C;&#x430; <a href="https://www.mann-ivanov-ferber.ru/courses/camp5/" target="_blank" rel="noreferrer noopener">&#xAB;&#x41F;&#x438;&#x448;&#x443;&#x442; &#x432;&#x441;&#x435;!&#xBB;</a> </div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__1721119601475"> &#xAB;&#x42F;&#xA0;&#x43F;&#x438;&#x448;&#x443;, &#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;, &#x44F;&#xA0;&#x441;&#x443;&#x449;&#x435;&#x441;&#x442;&#x432;&#x443;&#x44E;. &#x410;&#xA0;&#x43F;&#x438;&#x448;&#x443;&#x442; &#x442;&#x443;&#x442; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x432;&#x441;&#x435;, &#x442;&#x430;&#x43A;&#x43E;&#x432; &#x437;&#x430;&#x43A;&#x43E;&#x43D; &#x43B;&#x430;&#x433;&#x435;&#x440;&#x44F;. &#x42D;&#x442;&#x430; &#x43E;&#x441;&#x435;&#x43D;&#x43D;&#x44F;&#x44F; &#x441;&#x43C;&#x435;&#x43D;&#x430; &#x431;&#x44B;&#x43B;&#x430; &#x442;&#x435;&#x43F;&#x43B;&#x43E;&#x439;, &#x442;&#x432;&#x43E;&#x440;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x439; &#x438;&#xA0;&#x43C;&#x430;&#x43A;&#x441;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x44E;&#x449;&#x435;&#x439;, &#x441;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x432;&#x441;&#x435;&#x43C; &#x443;&#x447;&#x430;&#x441;&#x442;&#x43D;&#x438;&#x43A;&#x430;&#x43C;, &#x43D;&#x430;&#x448;&#x438;&#x43C; &#x432;&#x43E;&#x436;&#x430;&#x442;&#x44B;&#x43C; &#x438;&#xA0;&#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442;&#x430;&#x43C;. &#x424;&#x43E;&#x440;&#x43C;&#x430;&#x442;&#xA0;&#x2014; &#x43E;&#x447;&#x435;&#x43D;&#x44C; &#x43B;&#x435;&#x433;&#x43A;&#x438;&#x439;, &#x43A;&#x43E;&#x43C;&#x43F;&#x430;&#x43A;&#x442;&#x43D;&#x44B;&#x439; &#x438;&#xA0;&#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x438;&#x432;&#x43D;&#x44B;&#x439;: &#x437;&#x430;&#xA0;&#x434;&#x432;&#x435; &#x43D;&#x435;&#x434;&#x435;&#x43B;&#x438; &#x446;&#x435;&#x43B;&#x43E;&#x435; &#x43C;&#x43E;&#x440;&#x435; &#x442;&#x435;&#x43A;&#x441;&#x442;&#x43E;&#x432;, &#x437;&#x430;&#x43C;&#x435;&#x442;&#x43E;&#x43A;, &#x441;&#x44E;&#x436;&#x435;&#x442;&#x43E;&#x432; &#x438;&#xA0;&#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#x432;&#x434;&#x43E;&#x445;&#x43D;&#x43E;&#x432;&#x435;&#x43D;&#x438;&#x44F;. &#x417;&#x430;&#x440;&#x44F;&#x434; &#x442;&#x432;&#x43E;&#x440;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x439; &#x431;&#x43E;&#x434;&#x440;&#x43E;&#x441;&#x442;&#x438; &#x438;&#xA0;&#x44F;&#x441;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x432;&#xA0;&#x447;&#x438;&#x441;&#x442;&#x43E;&#x43C; &#x432;&#x438;&#x434;&#x435;. &#x423;&#x436;&#x435; &#x441;&#x43A;&#x443;&#x447;&#x430;&#x44E;!&#xBB; </div> </div> </div> </div> <div class="t958__popup-item t-width_6" data-review-index="1724758023251"> <div class="t958__card t958__card_popup" style="background-color:#ffffff;height:470px;"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild3235-3339-4339-b838-616230343566/Frame_11.png" bgimgfield="li_img__1724758023251" style="background-image:url(&apos;https://thb.tildacdn.com/tild3235-3339-4339-b838-616230343566/-/resizeb/20x/Frame_11.png&apos;); border-radius: 50%;"></div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_lg" field="li_title__1724758023251"> &#x42E;&#x43D;&#x430; &#x41B;. </div> <div class="t958__author-descr t-descr t-descr_md" field="li_descr__1724758023251"> &#x43E; &#x43A;&#x443;&#x440;&#x441;&#x435; <a href="https://www.mann-ivanov-ferber.ru/courses/show/" target="_blank" rel="noreferrer noopener">&#xAB;&#x41F;&#x440;&#x43E;&#x44F;&#x432;&#x43B;&#x44F;&#x439;&#x441;&#x44F;&#xBB;</a> </div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__1724758023251"> &#xAB;&#x411;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x435; &#x441;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x42E;&#x43B;&#x438;&#x438; &#x437;&#x430;&#xA0;&#x433;&#x43B;&#x443;&#x431;&#x438;&#x43D;&#x443; &#x441;&#x43C;&#x44B;&#x441;&#x43B;&#x43E;&#x432;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x435; &#x43E;&#x43D;&#x430; &#x43D;&#x430;&#x43C; &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x43B;&#x430;. &#x41F;&#x43E;&#x438;&#x441;&#x43A; &#x441;&#x442;&#x440;&#x430;&#x445;&#x430; &#x432;&#xA0;&#x442;&#x435;&#x43B;&#x435;, &#x432;&#x441;&#x442;&#x440;&#x435;&#x447;&#x430; &#x441;&#x43E;&#xA0;&#x441;&#x432;&#x43E;&#x438;&#x43C;&#x438; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x44F;&#x43C;&#x438; &#x438;&#xA0;&#x432;&#x44B;&#x445;&#x43E;&#x434; &#x43A;&#xA0;&#x43D;&#x43E;&#x432;&#x43E;&#x43C;&#x443; &#x43F;&#x43E;&#x43D;&#x438;&#x43C;&#x430;&#x43D;&#x438;&#x44E; &#x441;&#x435;&#x431;&#x44F;&#xA0;&#x2014; &#x432;&#x441;&#x451; &#x44D;&#x442;&#x43E; &#x431;&#x44B;&#x43B;&#x43E; &#x432;&#xA0;&#x444;&#x43E;&#x440;&#x43C;&#x430;&#x442;&#x435; &#x432;&#x435;&#x441;&#x451;&#x43B;&#x43E;&#x439; &#x438;&#xA0;&#x442;&#x451;&#x43F;&#x43B;&#x43E;&#x439; &#x431;&#x435;&#x441;&#x435;&#x434;&#x44B;.<br><br>&#x421;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x437;&#x430;&#xA0;&#x442;&#x43E;&#x442; &#x43F;&#x443;&#x442;&#x44C;, &#x447;&#x442;&#x43E; &#x43C;&#x44B;&#xA0;&#x43F;&#x440;&#x43E;&#x448;&#x43B;&#x438; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435;&#xA0;&#x2014; &#x43E;&#x442;&#xA0;&#x438;&#x441;&#x43A;&#x443;&#x441;&#x441;&#x442;&#x432;&#x430; &#x446;&#x435;&#x43B;&#x435;&#x43F;&#x43E;&#x43B;&#x430;&#x433;&#x430;&#x43D;&#x438;&#x44F; &#x43A;&#xA0;&#x43E;&#x431;&#x440;&#x435;&#x442;&#x435;&#x43D;&#x438;&#x44E; &#x43E;&#x43F;&#x43E;&#x440;&#x44B; &#x432;&#xA0;&#x441;&#x435;&#x431;&#x435;. &#x41C;&#x44B;&#xA0;&#x443;&#x437;&#x43D;&#x430;&#x43B;&#x438;, &#x43A;&#x430;&#x43A; &#x434;&#x432;&#x438;&#x433;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x43A;&#xA0;&#x446;&#x435;&#x43B;&#x438;, &#x43D;&#x435;&#xA0;&#x437;&#x430;&#x441;&#x442;&#x440;&#x435;&#x432;&#x430;&#x44F; &#x432;&#xA0;&#x43C;&#x43E;&#x437;&#x433;&#x43E;&#x432;&#x43E;&#x43C; &#x442;&#x443;&#x43C;&#x430;&#x43D;&#x435;, &#x438;&#xA0;&#x438;&#x441;&#x43A;&#x430;&#x442;&#x44C; &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x437;&#x430;&#xA0;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x430;&#x43C;&#x438; &#x43E;&#x447;&#x435;&#x432;&#x438;&#x434;&#x43D;&#x43E;&#x441;&#x442;&#x438;.<br>&#x421;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x435; &#x437;&#x430;&#xA0;&#x442;&#x430;&#x43A;&#x43E;&#x439; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B;&#x439; &#x438;&#xA0;&#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x440;&#x43E;&#x44F;&#x432;&#x43B;&#x44F;&#x44E;&#x449;&#x438;&#x439; &#x43A;&#x443;&#x440;&#x441;!<br>&#x421;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x437;&#x430;&#xA0;&#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x44B;&#x439; &#x43A;&#x443;&#x440;&#x441;! &#x412;&#x441;&#x435;&#x43C; &#x43E;&#x440;&#x433;&#x430;&#x43D;&#x438;&#x437;&#x430;&#x442;&#x43E;&#x440;&#x430;&#x43C; &#x43E;&#x433;&#x440;&#x43E;&#x43C;&#x43D;&#x44B;&#x439; &#x440;&#x435;&#x441;&#x43F;&#x435;&#x43A;&#x442; &#x1F9E1;&#xBB;<br><br> </div> </div> </div> </div> <div class="t958__popup-item t-width_6" data-review-index="1724758079162"> <div class="t958__card t958__card_popup" style="background-color:#ffffff;height:470px;"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild6338-3833-4635-a364-343661613034/Frame_12.png" bgimgfield="li_img__1724758079162" style="background-image:url(&apos;https://thb.tildacdn.com/tild6338-3833-4635-a364-343661613034/-/resizeb/20x/Frame_12.png&apos;); border-radius: 50%;"></div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_lg" field="li_title__1724758079162"> &#x410;&#x43D;&#x430;&#x441;&#x442;&#x430;&#x441;&#x438;&#x44F; <br>&#x410;&#x43D;&#x442;&#x43E;&#x43D;&#x43E;&#x432;&#x430; </div> <div class="t958__author-descr t-descr t-descr_md" field="li_descr__1724758079162"> &#x43E; &#x43A;&#x443;&#x440;&#x441;&#x435; <a href="https://www.mann-ivanov-ferber.ru/courses/chinamif/" target="_blank" rel="noreferrer noopener">&#xAB;&#x41A;&#x438;&#x442;&#x430;&#x439;&#x441;&#x43A;&#x438;&#x435; &#x43C;&#x438;&#x444;&#x44B;&#xBB;</a> </div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__1724758079162"> &#xAB;&#x415;&#x441;&#x442;&#x44C; &#x442;&#x430;&#x43A;&#x430;&#x44F; &#x43A;&#x438;&#x442;&#x430;&#x439;&#x441;&#x43A;&#x430;&#x44F; &#x43F;&#x43E;&#x441;&#x43B;&#x43E;&#x432;&#x438;&#x446;&#x430;, &#x447;&#x442;&#x43E; &#x437;&#x43D;&#x430;&#x43D;&#x438;&#x435;&#xA0;&#x2014; &#x44D;&#x442;&#x43E; &#x441;&#x43E;&#x43A;&#x440;&#x43E;&#x432;&#x438;&#x449;&#x435;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x435; &#x43F;&#x43E;&#x432;&#x441;&#x44E;&#x434;&#x443; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x435;&#x442; &#x437;&#x430;&#xA0;&#x442;&#x435;&#x43C;, &#x43A;&#x442;&#x43E; &#x438;&#x43C;&#xA0;&#x43E;&#x431;&#x43B;&#x430;&#x434;&#x430;&#x435;&#x442;.<br><br>&#x412;&#x43F;&#x435;&#x440;&#x432;&#x44B;&#x435; &#x43F;&#x43E;&#x43A;&#x443;&#x43F;&#x430;&#x43B;&#x430; &#x43B;&#x435;&#x43A;&#x442;&#x43E;&#x440;&#x438;&#x439; &#x447;&#x435;&#x440;&#x435;&#x437; &#x41C;&#x418;&#x424;. &#x41C;&#x435;&#x43D;&#x44F; &#x434;&#x430;&#x432;&#x43D;&#x43E; &#x443;&#x432;&#x43B;&#x435;&#x43A;&#x430;&#x435;&#x442; &#x442;&#x435;&#x43C;&#x430; &#x412;&#x43E;&#x441;&#x442;&#x43E;&#x43A;&#x430; &#x438;&#xA0;&#x41A;&#x438;&#x442;&#x430;&#x44F;, &#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D;&#x43D;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x443;&#x442;&#x435;&#x448;&#x435;&#x441;&#x442;&#x432;&#x438;&#x439; &#x43F;&#x43E;&#xA0;&#x44D;&#x442;&#x438;&#x43C; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x430;&#x43C; &#x438;&#xA0;&#x437;&#x430;&#x445;&#x43E;&#x442;&#x435;&#x43B;&#x43E;&#x441;&#x44C; &#x433;&#x43B;&#x443;&#x431;&#x436;&#x435; &#x443;&#x437;&#x43D;&#x430;&#x442;&#x44C; &#x43F;&#x440;&#x43E; &#x43A;&#x443;&#x43B;&#x44C;&#x442;&#x443;&#x440;&#x443;, &#x43E;&#x431;&#x44B;&#x447;&#x430;&#x438;, &#x432;&#x435;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x438;&#xA0;&#x43C;&#x438;&#x444;&#x43E;&#x43B;&#x43E;&#x433;&#x438;&#x44E;.<br><br>&#x201E;&#x41A;&#x438;&#x442;&#x430;&#x439;&#x441;&#x43A;&#x438;&#x435; &#x43C;&#x438;&#x444;&#x44B;&#x201C; &#x410;&#x43D;&#x442;&#x43E;&#x43D;&#x430; &#x422;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x432;&#x430;&#xA0;&#x2014; &#x44D;&#x442;&#x43E; &#x43A;&#x430;&#x43A; &#x440;&#x430;&#x437; &#x442;&#x43E;&#xA0;&#x441;&#x43E;&#x43A;&#x440;&#x43E;&#x432;&#x438;&#x449;&#x435;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x435; &#x442;&#x435;&#x43F;&#x435;&#x440;&#x44C; &#x431;&#x443;&#x434;&#x435;&#x442; &#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x437;&#x430;&#xA0;&#x43C;&#x43D;&#x43E;&#x439;. &#x41E;&#x447;&#x435;&#x43D;&#x44C; &#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E;&#x439; &#x438;&#xA0;&#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x43E;&#x439; &#x438;&#x43D;&#x444;&#x43E;&#x440;&#x43C;&#x430;&#x446;&#x438;&#x438;, &#x440;&#x435;&#x43A;&#x43E;&#x43C;&#x435;&#x43D;&#x434;&#x430;&#x446;&#x438;&#x438; &#x444;&#x438;&#x43B;&#x44C;&#x43C;&#x43E;&#x432; &#x438;&#xA0;&#x43A;&#x43D;&#x438;&#x433;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x433;&#x43B;&#x443;&#x431;&#x436;&#x435; &#x443;&#x437;&#x43D;&#x430;&#x442;&#x44C; &#x43F;&#x440;&#x43E; &#x442;&#x43E;, &#x447;&#x442;&#x43E; &#x437;&#x430;&#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43E;&#x432;&#x430;&#x43B;&#x43E;.<br>&#x41C;&#x43D;&#x43E;&#x433;&#x43E; &#x43D;&#x43E;&#x432;&#x44B;&#x445; &#x438;&#xA0;&#x43D;&#x435;&#x43E;&#x436;&#x438;&#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445; &#x438;&#x441;&#x442;&#x43E;&#x440;&#x438;&#x439; &#x438;&#xA0;&#x438;&#x437;&#x43E;&#x431;&#x440;&#x430;&#x436;&#x435;&#x43D;&#x438;&#x44F; &#x438;&#x437;&#xA0;&#x434;&#x440;&#x435;&#x432;&#x43D;&#x438;&#x445; &#x442;&#x440;&#x430;&#x43A;&#x442;&#x430;&#x442;&#x43E;&#x432;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x43C;&#x438; &#x43F;&#x440;&#x43E;&#x438;&#x43B;&#x43B;&#x44E;&#x441;&#x442;&#x440;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x44B; &#x43F;&#x440;&#x435;&#x437;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x438;&#xA0;&#x2014; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x447;&#x443;&#x434;&#x43E;!&#xBB; </div> </div> </div> </div> <div class="t958__popup-item t-width_6" data-review-index="1724758130909"> <div class="t958__card t958__card_popup" style="background-color:#ffffff;height:470px;"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild3232-3163-4732-b033-613266643862/Frame_10.png" bgimgfield="li_img__1724758130909" style="background-image:url(&apos;https://thb.tildacdn.com/tild3232-3163-4732-b033-613266643862/-/resizeb/20x/Frame_10.png&apos;); border-radius: 50%;"></div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_lg" field="li_title__1724758130909"> &#x41B;&#x438;&#x43D;&#x430; <br>&#x41D;&#x438;&#x43A;&#x438;&#x444;&#x43E;&#x440;&#x43E;&#x432;&#x430; </div> <div class="t958__author-descr t-descr t-descr_md" field="li_descr__1724758130909"> &#x43E; &#x43A;&#x443;&#x440;&#x441;&#x435; <a href="https://www.mann-ivanov-ferber.ru/courses/life-diagram/" target="_blank" rel="noreferrer noopener">&#xAB;&#x414;&#x438;&#x430;&#x433;&#x440;&#x430;&#x43C;&#x43C;&#x430; &#x436;&#x438;&#x437;&#x43D;&#x438;&#xBB;</a> </div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__1724758130909"> &#xAB;&#x421;&#xA0;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43A;&#x443;&#x440;&#x441;&#x430; &#x447;&#x443;&#x432;&#x441;&#x442;&#x432;&#x43E;&#x432;&#x430;&#x43B;&#x430; &#x441;&#x435;&#x431;&#x44F;, &#x431;&#x443;&#x434;&#x442;&#x43E; &#x43B;&#x435;&#x447;&#x443; &#x43D;&#x430;&#xA0;&#x432;&#x44B;&#x441;&#x43E;&#x43A;&#x438;&#x445; &#x441;&#x43A;&#x43E;&#x440;&#x43E;&#x441;&#x442;&#x44F;&#x445;, &#x441;&#x435;&#x440;&#x434;&#x446;&#x435; &#x441;&#x442;&#x443;&#x447;&#x438;&#x442;. &#x42F;&#xA0;&#x43F;&#x43E;&#x43F;&#x430;&#x43B;&#x430; &#x43D;&#x430;&#xA0;&#x440;&#x430;&#x437;&#x431;&#x43E;&#x440; &#x43A;&#xA0;&#x418;&#x440;&#x438;&#x43D;&#x435; &#x413;&#x438;&#x431;&#x435;&#x440;&#x43C;&#x430;&#x43D;&#x43D;. &#x411;&#x44B;&#x43B;&#x43E; &#x438;&#xA0;&#x43B;&#x44E;&#x431;&#x43E;&#x43F;&#x44B;&#x442;&#x43D;&#x43E;, &#x438;&#xA0;&#x43E;&#x447;&#x435;&#x43D;&#x44C; &#x432;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43E;&#x442;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F;, &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x442;&#x44C; &#x443;&#x44F;&#x437;&#x432;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C;. &#x418;&#xA0;&#x442;&#x443;&#x442; &#x431;&#x43B;&#x430;&#x433;&#x43E;&#x434;&#x430;&#x440;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x41C;&#x418;&#x424;&#x443; &#x437;&#x430;&#xA0;&#x43E;&#x440;&#x433;&#x430;&#x43D;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44E; &#x431;&#x435;&#x440;&#x435;&#x436;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x440;&#x430;&#x43D;&#x441;&#x442;&#x432;&#x430;.<br><br>&#x41D;&#x435;&#x441;&#x43C;&#x43E;&#x442;&#x440;&#x44F; &#x43D;&#x430;&#xA0;&#x442;&#x43E;, &#x447;&#x442;&#x43E; &#x440;&#x430;&#x437;&#x431;&#x43E;&#x440;&#x43E;&#x432; &#x432;&#x441;&#x435;&#x433;&#x43E; &#x442;&#x440;&#x438;, &#x435;&#x441;&#x442;&#x44C; &#x447;&#x430;&#x442;, &#x433;&#x434;&#x435; &#x43C;&#x44B;&#xA0;&#x432;&#x441;&#x435; &#x434;&#x435;&#x43B;&#x438;&#x43B;&#x438;&#x441;&#x44C; &#x441;&#x432;&#x43E;&#x438;&#x43C;&#x438; &#x43C;&#x44B;&#x441;&#x43B;&#x44F;&#x43C;&#x438;. &#x418;&#xA0;&#x44D;&#x442;&#x43E; &#x43E;&#x441;&#x43E;&#x431;&#x430;&#x44F; &#x434;&#x438;&#x43D;&#x430;&#x43C;&#x438;&#x43A;&#x430; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x43E;&#x432;&#x43E;&#x439; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x44B;. &#x41F;&#x43E;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x443; &#x447;&#x435;&#x440;&#x435;&#x437; &#x438;&#x441;&#x442;&#x43E;&#x440;&#x438;&#x438; &#x433;&#x435;&#x440;&#x43E;&#x435;&#x432; &#x440;&#x430;&#x437;&#x431;&#x43E;&#x440;&#x43E;&#x432; &#x44D;&#x442;&#x438; &#x442;&#x435;&#x43C;&#x44B; &#x43F;&#x43E;&#x442;&#x43E;&#x43C; &#x440;&#x430;&#x437;&#x432;&#x43E;&#x440;&#x430;&#x447;&#x438;&#x432;&#x430;&#x44E;&#x442;&#x441;&#x44F; &#x434;&#x430;&#x43B;&#x44C;&#x448;&#x435;&#xA0;&#x2014; &#x432;&#x441;&#x435;&#x43C;&#x438; &#x443;&#x447;&#x430;&#x441;&#x442;&#x43D;&#x438;&#x43A;&#x430;&#x43C;&#x438;.<br><br>&#x427;&#x435;&#x440;&#x435;&#x437; &#x43A;&#x43E;&#x43C;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x440;&#x438;&#x438;, &#x447;&#x435;&#x440;&#x435;&#x437; &#x442;&#x43E;, &#x441;&#xA0;&#x43A;&#x435;&#x43C; &#x432;&#x441;&#x442;&#x443;&#x43F;&#x430;&#x435;&#x448;&#x44C; &#x432;&#x43E;&#xA0;&#x432;&#x437;&#x430;&#x438;&#x43C;&#x43E;&#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x435; &#x432;&#x43D;&#x443;&#x442;&#x440;&#x438; &#x447;&#x430;&#x442;&#x430;, &#x43F;&#x440;&#x43E;&#x438;&#x441;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x43E;&#x43F;&#x44B;&#x442; &#x43F;&#x440;&#x43E;&#x436;&#x438;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x442;&#x435;&#x43C;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x435; &#x431;&#x44B;&#x43B;&#x438; &#x441;&#x43E;&#x432;&#x441;&#x435;&#x43C; &#x432;&#xA0;&#x442;&#x435;&#x43D;&#x438; &#x438;&#x43B;&#x438; &#x444;&#x43E;&#x43D;&#x438;&#x43B;&#x438; &#x433;&#x43E;&#x434;&#x430;&#x43C;&#x438;, &#x431;&#x443;&#x434;&#x443;&#x447;&#x438; &#x431;&#x435;&#x437; &#x440;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x44F;. &#x410;&#xA0;&#x432;&#xA0;&#x433;&#x440;&#x443;&#x43F;&#x43F;&#x43E;&#x432;&#x43E;&#x439; &#x434;&#x438;&#x43D;&#x430;&#x43C;&#x438;&#x43A;&#x435; &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x43E;&#x442;&#x432;&#x435;&#x442;&#xBB; </div> </div> </div> </div> <div class="t958__popup-item t-width_6" data-review-index="1724758184158"> <div class="t958__card t958__card_popup" style="background-color:#ffffff;height:470px;"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild6136-6339-4237-b132-663364323931/Frame_8.png" bgimgfield="li_img__1724758184158" style="background-image:url(&apos;https://thb.tildacdn.com/tild6136-6339-4237-b132-663364323931/-/resizeb/20x/Frame_8.png&apos;); border-radius: 50%;"></div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_lg" field="li_title__1724758184158"> &#x412;&#x430;&#x43B;&#x435;&#x43D;&#x442;&#x438;&#x43D;&#x430; <br>&#x411;&#x430;&#x442;&#x443;&#x440;&#x43B;&#x438;&#x43D;&#x441;&#x43A;&#x430;&#x44F; </div> <div class="t958__author-descr t-descr t-descr_md" field="li_descr__1724758184158"> &#x43E; &#x43A;&#x443;&#x440;&#x441;&#x435; <a href="https://www.mann-ivanov-ferber.ru/courses/sleep/" target="_blank" rel="noreferrer noopener">&#xAB;&#x41D;&#x430;&#x443;&#x43A;&#x430; &#x441;&#x43D;&#x430;&#xBB;</a> </div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__1724758184158"> &#xAB;&#x41A;&#x443;&#x440;&#x441; &#x43C;&#x43D;&#x435; &#x43E;&#x447;&#x435;&#x43D;&#x44C; &#x43F;&#x43E;&#x43D;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x441;&#x44F;. &#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x44F; &#x432;&#x441;&#x435;&#x440;&#x44C;&#x435;&#x437; &#x437;&#x430;&#x434;&#x443;&#x43C;&#x430;&#x43B;&#x430;&#x441;&#x44C; &#x43E;&#x431;&#xA0;&#x43E;&#x441;&#x432;&#x43E;&#x435;&#x43D;&#x438;&#x438; &#x43F;&#x440;&#x43E;&#x444;&#x435;&#x441;&#x441;&#x438;&#x438; &#x441;&#x43E;&#x43C;&#x43D;&#x43E;&#x43B;&#x43E;&#x433;&#x430;, &#x430;&#xA0;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x44B; &#x44F;&#xA0;&#x434;&#x430;&#x43B;&#x430; &#x441;&#x432;&#x43E;&#x438;&#x43C; &#x43F;&#x430;&#x446;&#x438;&#x435;&#x43D;&#x442;&#x430;&#x43C;! &#x41F;&#x440;&#x435;&#x43A;&#x440;&#x430;&#x441;&#x43D;&#x430;&#x44F; &#x43E;&#x440;&#x433;&#x430;&#x43D;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44F;, &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x441;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x420;&#x43E;&#x43C;&#x430;&#x43D;&#x443; &#x412;&#x44F;&#x447;&#x435;&#x441;&#x43B;&#x430;&#x432;&#x43E;&#x432;&#x438;&#x447;&#x443;, &#x441;&#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E;&#x439; &#x438;&#x43D;&#x444;&#x43E;&#x440;&#x43C;&#x430;&#x446;&#x438;&#x438;, &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x43F;&#x440;&#x43E;&#x43B;&#x435;&#x442;&#x430;&#x43B;&#x43E; &#x43D;&#x435;&#x437;&#x430;&#x43C;&#x435;&#x442;&#x43D;&#x43E;. &#x41E;&#x431;&#x440;&#x430;&#x442;&#x43D;&#x430;&#x44F; &#x441;&#x432;&#x44F;&#x437;&#x44C; &#x43F;&#x43E;&#x442;&#x440;&#x44F;&#x441;&#x430;&#x44E;&#x449;&#x430;&#x44F;!&#xBB; </div> </div> </div> </div> <div class="t958__popup-item t-width_6" data-review-index="1724758226060"> <div class="t958__card t958__card_popup" style="background-color:#ffffff;height:470px;"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild3832-6465-4735-a336-383831333831/Frame_14.png" bgimgfield="li_img__1724758226060" style="background-image:url(&apos;https://thb.tildacdn.com/tild3832-6465-4735-a336-383831333831/-/resizeb/20x/Frame_14.png&apos;); border-radius: 50%;"></div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_lg" field="li_title__1724758226060"> &#x41A;&#x441;&#x435;&#x43D;&#x438;&#x44F; <br>&#x411;&#x435;&#x43B;&#x43E;&#x437;&#x435;&#x440;&#x43E;&#x432;&#x430; </div> <div class="t958__author-descr t-descr t-descr_md" field="li_descr__1724758226060"> &#x43E; &#x43A;&#x443;&#x440;&#x441;&#x435; <a href="https://www.mann-ivanov-ferber.ru/courses/magicstory/" target="_blank" rel="noreferrer noopener">&#xAB;&#x421;&#x43A;&#x430;&#x437;&#x43A;&#x430; &#x43C;&#x43E;&#x435;&#x439; &#x436;&#x438;&#x437;&#x43D;&#x438;&#xBB;</a> </div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__1724758226060"> &#xAB;&#x41A;&#x443;&#x440;&#x441; &#x43F;&#x43E;&#x43C;&#x43E;&#x433; &#x43C;&#x43D;&#x435; &#x43B;&#x443;&#x447;&#x448;&#x435; &#x443;&#x437;&#x43D;&#x430;&#x442;&#x44C; &#x441;&#x435;&#x431;&#x44F;: &#x43F;&#x43E;&#x434; &#x432;&#x43B;&#x438;&#x44F;&#x43D;&#x438;&#x435;&#x43C; &#x43A;&#x430;&#x43A;&#x438;&#x445; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43E;&#x43A; &#x44F;&#xA0;&#x43D;&#x430;&#x445;&#x43E;&#x436;&#x443;&#x441;&#x44C;, &#x43A;&#x430;&#x43A;&#x438;&#x435; &#x438;&#x437;&#xA0;&#x43D;&#x438;&#x445; &#x43F;&#x43E;&#x43C;&#x43E;&#x433;&#x430;&#x44E;&#x442;, &#x430;&#xA0;&#x43A;&#x430;&#x43A;&#x438;&#x435; &#x43E;&#x442;&#x43D;&#x438;&#x43C;&#x430;&#x44E;&#x442; &#x441;&#x438;&#x43B;&#x44B;. &#x41F;&#x43E;&#x43C;&#x438;&#x43C;&#x43E; &#x43B;&#x435;&#x43A;&#x446;&#x438;&#x439; &#x43F;&#x43E;&#xA0;&#x441;&#x445;&#x435;&#x43C;&#x43E;&#x442;&#x435;&#x440;&#x430;&#x43F;&#x438;&#x438;, &#x440;&#x430;&#x437;&#x431;&#x43E;&#x440;&#x43E;&#x432; &#x43D;&#x430;&#xA0;&#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;&#x430;&#x445; &#x43F;&#x435;&#x440;&#x441;&#x43E;&#x43D;&#x430;&#x436;&#x435;&#x439; &#x441;&#x43A;&#x430;&#x437;&#x43E;&#x43A;, &#x431;&#x44B;&#x43B;&#x438; &#x435;&#x449;&#x435; &#x43F;&#x441;&#x438;&#x445;&#x43E;&#x43B;&#x43E;&#x433;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x435; &#x442;&#x435;&#x441;&#x442;&#x44B;, &#x438;&#xA0;&#x43E;&#x434;&#x43D;&#x430; &#x43C;&#x435;&#x434;&#x438;&#x442;&#x430;&#x446;&#x438;&#x44F; &#x43E;&#x442;&#xA0;&#x41C;&#x430;&#x440;&#x438;&#x438; &#x421;&#x43A;&#x440;&#x44F;&#x431;&#x438;&#x43D;&#x43E;&#x439;. &#x414;&#x443;&#x43C;&#x430;&#x44E;, &#x43F;&#x441;&#x438;&#x445;&#x43E;&#x43B;&#x43E;&#x433;&#x430;&#x43C; &#x43A;&#x443;&#x440;&#x441; &#x442;&#x43E;&#x436;&#x435; &#x431;&#x443;&#x434;&#x435;&#x442; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x435;&#x43D;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x43B;&#x443;&#x447;&#x448;&#x435; &#x43F;&#x43E;&#x43D;&#x438;&#x43C;&#x430;&#x442;&#x44C; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x43E;&#x432;. &#x410;&#xA0;&#x435;&#x449;&#x451; &#x43A;&#x443;&#x440;&#x441; &#x43F;&#x440;&#x438;&#x433;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x442;&#x435;&#x43B;&#x44F;&#x43C; &#x43F;&#x435;&#x440;&#x441;&#x43E;&#x43D;&#x430;&#x436;&#x435;&#x439;. &#x411;&#x43B;&#x430;&#x433;&#x43E;&#x434;&#x430;&#x440;&#x44F; &#x43B;&#x435;&#x43A;&#x446;&#x438;&#x44F;&#x43C;, &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x441;&#x44F; &#x43F;&#x440;&#x438;&#x434;&#x443;&#x43C;&#x430;&#x442;&#x44C; &#x433;&#x435;&#x440;&#x43E;&#x435;&#x432; &#x441;&#xA0;&#x43B;&#x43E;&#x433;&#x438;&#x447;&#x43D;&#x44B;&#x43C;&#x438; &#x432;&#x437;&#x430;&#x438;&#x43C;&#x43E;&#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x44F;&#x43C;&#x438; &#x441;&#xA0;&#x43C;&#x438;&#x440;&#x43E;&#x43C; &#x438;&#xA0;&#x43C;&#x43E;&#x442;&#x438;&#x432;&#x430;&#x446;&#x438;&#x435;&#x439;. &#x421;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x41C;&#x430;&#x440;&#x438;&#x438;, &#x41D;&#x430;&#x442;&#x430;&#x43B;&#x44C;&#x435;, &#x413;&#x430;&#x43B;&#x438;&#x43D;&#x435; &#x438;&#xA0;&#x438;&#x437;&#x434;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x443; &#x41C;&#x418;&#x424;&#xBB; </div> </div> </div> </div> <div class="t958__popup-item t-width_6" data-review-index="1724758271341"> <div class="t958__card t958__card_popup" style="background-color:#ffffff;height:470px;"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild6333-6361-4436-b531-333663333833/Frame_7.png" bgimgfield="li_img__1724758271341" style="background-image:url(&apos;https://thb.tildacdn.com/tild6333-6361-4436-b531-333663333833/-/resizeb/20x/Frame_7.png&apos;); border-radius: 50%;"></div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_lg" field="li_title__1724758271341"> &#x415;&#x43B;&#x438;&#x437;&#x430;&#x432;&#x435;&#x442;&#x430; <br>&#x421;&#x443;&#x440;&#x430;&#x43B;&#x451;&#x432;&#x430; </div> <div class="t958__author-descr t-descr t-descr_md" field="li_descr__1724758271341"> &#x43E; &#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x43A;&#x443;&#x43C;&#x435; <a href="https://www.mann-ivanov-ferber.ru/courses/rusyaz" target="_blank" rel="noreferrer noopener">&#xAB;&#x412;&#x435;&#x43B;&#x438;&#x43A;&#x438;&#x439; &#x438; &#x43C;&#x43E;&#x433;&#x443;&#x447;&#x438;&#x439;&#xBB;</a> </div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__1724758271341"> &#xAB;&#x41A;&#x443;&#x440;&#x441; &#x431;&#x44B;&#x43B; &#x43E;&#x447;&#x435;&#x43D;&#x44C; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B;&#x439; &#x438;, &#x447;&#x442;&#x43E; &#x441;&#x430;&#x43C;&#x43E;&#x435; &#x433;&#x43B;&#x430;&#x432;&#x43D;&#x43E;&#x435;, &#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x44B;&#x439;. &#x412;&#x435;&#x431;&#x438;&#x43D;&#x430;&#x440;&#x44B; &#x431;&#x44B;&#x43B;&#x438; &#x43D;&#x435;&#xA0;&#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#x441;&#xA0;&#x441;&#x443;&#x445;&#x43E;&#x439; &#x442;&#x435;&#x43E;&#x440;&#x438;&#x435;&#x439;, &#x430;&#xA0;&#x441;&#xA0;&#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x43C;&#x438; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F;&#x43C;&#x438;: &#x441;&#x430;&#x43C;&#x438; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F; &#x431;&#x44B;&#x43B;&#x438; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x44B;&#x435;, &#x438;&#x43D;&#x43E;&#x433;&#x434;&#x430; &#x43D;&#x435;&#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x44B;&#x435;, &#x438;&#x43D;&#x43E;&#x433;&#x434;&#x430; &#x441;&#x43B;&#x43E;&#x436;&#x43D;&#x44B;&#x435;. &#x41F;&#x440;&#x438;&#x44F;&#x442;&#x43D;&#x43E; &#x431;&#x44B;&#x43B;&#x43E; &#x43F;&#x440;&#x43E;&#x431;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x441;&#x435;&#x431;&#x44F; &#x432;&#xA0;&#x447;&#x435;&#x43C;-&#x442;&#x43E; &#x43D;&#x43E;&#x432;&#x43E;&#x43C;: &#x43D;&#x430;&#x43F;&#x438;&#x441;&#x430;&#x43D;&#x438;&#x438; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x44B;&#x445; &#x437;&#x430;&#x433;&#x43E;&#x43B;&#x43E;&#x432;&#x43A;&#x43E;&#x432;, &#x442;&#x435;&#x43A;&#x441;&#x442;&#x430; &#x441;&#xA0;&#x440;&#x430;&#x437;&#x432;&#x435;&#x440;&#x43D;&#x443;&#x442;&#x43E;&#x439; &#x43C;&#x435;&#x442;&#x430;&#x444;&#x43E;&#x440;&#x43E;&#x439; &#x438;&#xA0;&#x434;&#x440;&#x443;&#x433;&#x438;&#x445; &#x201E;&#x430;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x44F;&#x445;&#x201C; &#x432;&#x43E;&#xA0;&#x432;&#x440;&#x435;&#x43C;&#x44F; &#x43E;&#x431;&#x443;&#x447;&#x435;&#x43D;&#x438;&#x44F;. &#x41E;&#x447;&#x435;&#x43D;&#x44C; &#x43F;&#x43E;&#x43D;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x430;&#x441;&#x44C; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442; &#x410;&#x43D;&#x430;&#x441;&#x442;&#x430;&#x441;&#x438;&#x44F;: &#x434;&#x43E;&#x431;&#x440;&#x430;&#x44F;, &#x432;&#x435;&#x441;&#x435;&#x43B;&#x430;&#x44F;, &#x443;&#x43B;&#x44B;&#x431;&#x447;&#x438;&#x432;&#x430;&#x44F;, &#x432;&#x441;&#x435;&#x433;&#x434;&#x430; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x43B;&#x430; &#x432;&#x43E;&#xA0;&#x432;&#x440;&#x435;&#x43C;&#x44F; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x439;, &#x432;&#x441;&#x451; &#x43A;&#x43E;&#x43C;&#x43C;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43B;&#x430;, &#x43F;&#x43E;&#x43D;&#x44F;&#x442;&#x43D;&#x43E; &#x43E;&#x431;&#x44A;&#x44F;&#x441;&#x43D;&#x44F;&#x43B;&#x430; &#x438;&#xA0;&#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x43B;&#x430; &#x43D;&#x430;&#xA0;&#x432;&#x441;&#x435; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441;&#x44B;. &#x415;&#x441;&#x43B;&#x438; &#x43F;&#x43E;&#x434;&#x44B;&#x442;&#x43E;&#x436;&#x438;&#x442;&#x44C;, &#x442;&#x43E;&#xA0;&#x43A;&#x443;&#x440;&#x441; &#x43D;&#x435;&#xA0;&#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x44F;&#x440;&#x43A;&#x438;&#x439; &#x438;&#xA0;&#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B;&#x439;, &#x43D;&#x43E;&#xA0;&#x435;&#x449;&#x435; &#x438;&#xA0;&#x434;&#x443;&#x448;&#x435;&#x432;&#x43D;&#x44B;&#x439; &#x438;&#xA0;&#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x44B;&#x439;)&#xBB; </div> </div> </div> </div> <div class="t958__popup-item t-width_6" data-review-index="1724758317391"> <div class="t958__card t958__card_popup" style="background-color:#ffffff;height:470px;"> <div class="t958__author"> <div class="t958__avatar t-bgimg" data-original="https://static.tildacdn.com/tild3563-6362-4561-b961-643565366633/Frame_6.png" bgimgfield="li_img__1724758317391" style="background-image:url(&apos;https://thb.tildacdn.com/tild3563-6362-4561-b961-643565366633/-/resizeb/20x/Frame_6.png&apos;); border-radius: 50%;"></div> <div class="t958__occupation"> <div class="t958__author-name t-heading t-heading_lg" field="li_title__1724758317391"> &#x418;&#x432;&#x430;&#x43D; <br>&#x41B;&#x430;&#x43E; </div> <div class="t958__author-descr t-descr t-descr_md" field="li_descr__1724758317391"> &#x43E; &#x43A;&#x443;&#x440;&#x441;&#x435; <a href="https://www.mann-ivanov-ferber.ru/courses/business2/" target="_blank" rel="noreferrer noopener">&#xAB;&#x421;&#x432;&#x43E;&#x439; &#x431;&#x438;&#x437;&#x43D;&#x435;&#x441;: &#x43E;&#x442; &#x441;&#x43B;&#x43E;&#x432; &#x43A; &#x434;&#x435;&#x43B;&#x443;&#xBB;</a> </div> </div> </div> <div class="t958__review"> <div class="t958__review-text t-text t-text_md" field="li_text__1724758317391"> &#xAB;&#x41F;&#x440;&#x438; &#x43F;&#x43E;&#x43A;&#x443;&#x43F;&#x43A;&#x435; &#x43A;&#x443;&#x440;&#x441;&#x430;, &#x431;&#x44B;&#x43B; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x435;&#x43D; &#x434;&#x43E;&#x432;&#x43E;&#x43B;&#x44C;&#x43D;&#x43E; &#x441;&#x43A;&#x435;&#x43F;&#x442;&#x438;&#x447;&#x43D;&#x43E;, &#x434;&#x443;&#x43C;&#x430;&#x43B; &#x431;&#x443;&#x434;&#x435;&#x442; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x43D;&#x43E;&#x439; &#x448;&#x430;&#x431;&#x43B;&#x43E;&#x43D;&#x43D;&#x44B;&#x439; &#x43A;&#x443;&#x440;&#x441; &#x43F;&#x440;&#x43E; &#x43E;&#x441;&#x43D;&#x43E;&#x432;&#x44B; &#x43C;&#x430;&#x440;&#x43A;&#x435;&#x442;&#x438;&#x43D;&#x433;&#x430; &#x438; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x44B;&#x439; &#x443;&#x441;&#x43F;&#x435;&#x445;, &#x43D;&#x430; &#x434;&#x435;&#x43B;&#x435; &#x44F; &#x433;&#x43B;&#x443;&#x431;&#x43E;&#x43A;&#x43E; &#x43E;&#x448;&#x438;&#x431;&#x430;&#x43B;&#x441;&#x44F; &#x438; &#x43A;&#x443;&#x440;&#x441; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#x43F;&#x440;&#x435;&#x432;&#x437;&#x43E;&#x448;&#x435;&#x43B; &#x432;&#x441;&#x435; &#x43C;&#x43E;&#x438; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x43D;&#x438;&#x44F;. &#x412;&#x43E;&#x432;&#x43B;&#x435;&#x447;&#x435;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43A;&#x443;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x43E;&#x432; &#x438; &#x43B;&#x438;&#x447;&#x43D;&#x43E; &#x410;&#x440;&#x442;&#x435;&#x43C;&#x430; &#x412;&#x430;&#x445;&#x440;&#x443;&#x448;&#x435;&#x432;&#x430; &#x441;&#x438;&#x43B;&#x44C;&#x43D;&#x43E; &#x432;&#x43F;&#x435;&#x447;&#x430;&#x442;&#x43B;&#x438;&#x43B;&#x430;.<br><br>&#x41A;&#x443;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x44B; &#x43E;&#x447;&#x435;&#x43D;&#x44C; &#x433;&#x43B;&#x443;&#x431;&#x43E;&#x43A;&#x43E; &#x43F;&#x43E;&#x433;&#x440;&#x443;&#x436;&#x435;&#x43D;&#x44B; &#x432;&#x43E; &#x432;&#x441;&#x435; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x44B; &#x43F;&#x43E;&#x441;&#x442;&#x440;&#x43E;&#x435;&#x43D;&#x438;&#x44F; &#x431;&#x438;&#x437;&#x43D;&#x435;&#x441;&#x430; &#x438; &#x434;&#x435;&#x43B;&#x44F;&#x442;&#x441;&#x44F; &#x432;&#x441;&#x435;&#x439; &#x43D;&#x435;&#x43E;&#x431;&#x445;&#x43E;&#x434;&#x438;&#x43C;&#x43E;&#x439; &#x438;&#x43D;&#x444;&#x43E;&#x440;&#x43C;&#x430;&#x446;&#x438;&#x435;&#x439;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x432;&#x44B; &#x441;&#x43C;&#x43E;&#x433;&#x43B;&#x438; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x442;&#x44C; &#x441;&#x432;&#x43E;&#x44E; &#x431;&#x438;&#x437;&#x43D;&#x435;&#x441;-&#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;, &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x441;&#x442;&#x438; &#x43C;&#x430;&#x440;&#x43A;&#x435;&#x442;&#x438;&#x43D;&#x433;&#x43E;&#x432;&#x44B;&#x435; &#x438;&#x441;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x438; &#x43F;&#x440;&#x43E;&#x441;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x444;&#x438;&#x43D;&#x430;&#x43D;&#x441;&#x43E;&#x432;&#x44B;&#x435; &#x432;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F; &#x438; &#x438;&#x437;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x438; &#x432;&#x430;&#x448;&#x435;&#x433;&#x43E; &#x43F;&#x440;&#x43E;&#x435;&#x43A;&#x442;&#x430;.<br><br>&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x43E;&#x43A;&#x43E;&#x43D;&#x447;&#x430;&#x43D;&#x438;&#x44F; &#x43A;&#x443;&#x440;&#x441;&#x430; &#x443; &#x43C;&#x435;&#x43D;&#x44F; &#x43D;&#x430; &#x440;&#x443;&#x43A;&#x430;&#x445; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x44B;&#x439; &#x43F;&#x440;&#x43E;&#x435;&#x43A;&#x442; &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x442;&#x44C; &#x43D;&#x430; &#x440;&#x44B;&#x43D;&#x43E;&#x43A;. <br>&#x411;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x435; &#x441;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x432;&#x441;&#x435;&#x43C; &#x43E;&#x440;&#x433;&#x430;&#x43D;&#x438;&#x437;&#x430;&#x442;&#x43E;&#x440;&#x430;&#x43C; &#x438; &#x43A;&#x443;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x430;&#x43C; &#x43A;&#x443;&#x440;&#x441;&#x430;, &#x44F; &#x43F;&#x440;&#x43E;&#x43A;&#x430;&#x447;&#x430;&#x43B; &#x441;&#x432;&#x43E;&#x438; &#x43D;&#x430;&#x432;&#x44B;&#x43A;&#x438; &#x43D;&#x430; 200%, &#x438; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x441;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x43C;&#x43E;&#x435;&#x43C;&#x443; &#x43A;&#x443;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x443; &#x410;&#x43B;&#x435;&#x43A;&#x441;&#x430;&#x43D;&#x434;&#x440;&#x443; &#x416;&#x443;&#x440;&#x438;&#x43B;&#x43E;, &#x435;&#x433;&#x43E; &#x43E;&#x431;&#x440;&#x430;&#x442;&#x43D;&#x430;&#x44F; &#x441;&#x432;&#x44F;&#x437;&#x44C; &#x441;&#x438;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x43E;&#x43C;&#x43E;&#x433;&#x43B;&#x430; &#x43C;&#x43D;&#x435; &#x440;&#x430;&#x437;&#x43E;&#x431;&#x440;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x432;&#x43E; &#x432;&#x441;&#x435;&#x445; &#x442;&#x43E;&#x43D;&#x43A;&#x43E;&#x441;&#x442;&#x44F;&#x445; &#x43F;&#x43E;&#x441;&#x442;&#x440;&#x43E;&#x435;&#x43D;&#x438;&#x44F; &#x441;&#x432;&#x43E;&#x435;&#x433;&#x43E; &#x431;&#x438;&#x437;&#x43D;&#x435;&#x441;&#x430;.<br><br>&#x421;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E; &#x435;&#x449;&#x435; &#x440;&#x430;&#x437; &#x437;&#x430; &#x43E;&#x440;&#x433;&#x430;&#x43D;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44E; &#x442;&#x430;&#x43A;&#x43E;&#x433;&#x43E; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E;&#x433;&#x43E; &#x43A;&#x443;&#x440;&#x441;&#x430;. <br>&#x42F; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x431;&#x443;&#x434;&#x443; &#x438; &#x434;&#x430;&#x43B;&#x44C;&#x448;&#x435; &#x443;&#x447;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x443; &#x41C;&#x418;&#x424;&#x430;&#xBB; </div> </div> </div> </div> </div> </div> </div> </div> <div id="rec788997090" class="r t-rec t-rec_pt_30 t-rec_pb_45" style="padding-top:30px;padding-bottom:45px; " data-animationappear="off" data-record-type="396"> <!-- T396 --> <div class="t396"> <div class="t396__artboard" data-artboard-recid="788997090" data-artboard-screens="320,480,640,960,1200" data-artboard-height="470" data-artboard-valign="center" data-artboard-upscale="grid" data-artboard-height-res-320="690" data-artboard-height-res-480="610" data-artboard-height-res-640="540" data-artboard-height-res-960="450"> <div class="t396__carrier" data-artboard-recid="788997090"></div> <div class="t396__filter" data-artboard-recid="788997090"></div> <div class="t396__elem tn-elem tn-elem__7889970901724336132769" data-elem-id="1724336132769" data-elem-type="shape" data-field-top-value="57" data-field-left-value="20" data-field-height-value="379" data-field-width-value="1160" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="17" data-field-left-res-320-value="-10" data-field-height-res-320-value="649" data-field-width-res-320-value="340" data-field-height-res-480-value="531" data-field-width-res-480-value="462" data-field-top-res-640-value="57" data-field-left-res-640-value="10" data-field-height-res-640-value="463" data-field-width-res-640-value="620" data-field-left-res-960-value="10" data-field-height-res-960-value="380" data-field-width-res-960-value="950"> <div class="tn-atom"> </div> </div> <div class="t396__elem tn-elem tn-elem__7889970901724343154450" data-elem-id="1724343154450" data-elem-type="image" data-field-top-value="328" data-field-left-value="1056" data-field-width-value="94" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-filewidth-value="122" data-field-fileheight-value="101" data-field-top-res-320-value="392" data-field-left-res-320-value="240" data-field-width-res-320-value="72" data-field-top-res-480-value="491" data-field-left-res-480-value="22" data-field-width-res-480-value="82" data-field-top-res-640-value="403" data-field-left-res-640-value="517" data-field-top-res-960-value="328" data-field-left-res-960-value="846"> <div class="tn-atom"> <img class="tn-atom__img t-img" data-original="https://static.tildacdn.com/tild6638-3964-4632-b265-373065373130/Star_8.svg" alt imgfield="tn_img_1724343154450"> </div> </div> <div class="t396__elem tn-elem tn-elem__7889970901724316075002" data-elem-id="1724316075002" data-elem-type="text" data-field-top-value="178" data-field-left-value="680" data-field-width-value="280" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="189" data-field-left-res-320-value="10" data-field-width-res-320-value="277" data-field-top-res-480-value="171" data-field-left-res-480-value="258" data-field-width-res-480-value="205" data-field-top-res-640-value="209" data-field-left-res-640-value="34" data-field-width-res-640-value="451" data-field-left-res-960-value="570" data-field-width-res-960-value="279"> <div class="tn-atom" field="tn_text_1724316075002">&#x41E;&#x431;&#x443;&#x447;&#x430;&#x439;&#x442;&#x435; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x445; &#x441;&#x43E;&#x442;&#x440;&#x443;&#x434;&#x43D;&#x438;&#x43A;&#x43E;&#x432; &#x438; &#x446;&#x435;&#x43B;&#x44B;&#x435; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B;</div> </div> <div class="t396__elem tn-elem tn-elem__7889970901724316118169" data-elem-id="1724316118169" data-elem-type="text" data-field-top-value="346" data-field-left-value="1074" data-field-width-value="65" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="404" data-field-left-res-320-value="253" data-field-top-res-480-value="505" data-field-left-res-480-value="35" data-field-top-res-640-value="420" data-field-left-res-640-value="534" data-field-top-res-960-value="346" data-field-left-res-960-value="864"> <div class="tn-atom" field="tn_text_1724316118169">&#x421;&#x43A;&#x438;&#x434;&#x43A;&#x438; &#x434;&#x43E; 80%</div> </div> <div class="t396__elem tn-elem tn-elem__7889970901724336318765" data-elem-id="1724336318765" data-elem-type="text" data-field-top-value="169" data-field-left-value="50" data-field-width-value="590" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="123" data-field-left-res-320-value="8" data-field-width-res-320-value="320" data-field-top-res-480-value="170" data-field-left-res-480-value="27" data-field-width-res-480-value="235" data-field-top-res-640-value="169" data-field-left-res-640-value="33" data-field-width-res-640-value="493" data-field-top-res-960-value="175" data-field-left-res-960-value="40" data-field-width-res-960-value="473"> <div class="tn-atom" field="tn_text_1724336318765">&#x41F;&#x440;&#x435;&#x434;&#x43B;&#x43E;&#x436;&#x438;&#x43C; &#x432;&#x44B;&#x433;&#x43E;&#x434;&#x43D;&#x44B;&#x435; &#x443;&#x441;&#x43B;&#x43E;&#x432;&#x438;&#x44F;</div> </div> <div class="t396__elem tn-elem tn-elem__7889970901724336340969" data-elem-id="1724336340969" data-elem-type="text" data-field-top-value="251" data-field-left-value="51" data-field-width-value="809" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="273" data-field-left-res-320-value="8" data-field-width-res-320-value="302" data-field-top-res-480-value="270" data-field-left-res-480-value="27" data-field-width-res-480-value="188" data-field-top-res-640-value="261" data-field-left-res-640-value="33" data-field-width-res-640-value="477" data-field-left-res-960-value="41" data-field-width-res-960-value="444"> <div class="tn-atom" field="tn_text_1724336340969">&#x420;&#x430;&#x437;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x435;&#x43C; &#x43A;&#x443;&#x440;&#x441; &#x441; &#x43D;&#x443;&#x43B;&#x44F;</div> </div> <div class="t396__elem tn-elem tn-elem__7889970901724336361775" data-elem-id="1724336361775" data-elem-type="text" data-field-top-value="332" data-field-left-value="51" data-field-width-value="809" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="396" data-field-left-res-320-value="8" data-field-width-res-320-value="243" data-field-top-res-480-value="392" data-field-left-res-480-value="27" data-field-width-res-480-value="216" data-field-top-res-640-value="380" data-field-left-res-640-value="33" data-field-width-res-640-value="466" data-field-left-res-960-value="41" data-field-width-res-960-value="475"> <div class="tn-atom" field="tn_text_1724336361775">&#x411;&#x440;&#x435;&#x43D;&#x434;&#x438;&#x440;&#x443;&#x435;&#x43C; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x44B;&#x439; &#x43A;&#x443;&#x440;&#x441; </div> </div> <div class="t396__elem tn-elem tn-elem__7889970901724336410354" data-elem-id="1724336410354" data-elem-type="text" data-field-top-value="256" data-field-left-value="680" data-field-width-value="440" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="309" data-field-left-res-320-value="10" data-field-width-res-320-value="313" data-field-top-res-480-value="272" data-field-left-res-480-value="258" data-field-width-res-480-value="202" data-field-top-res-640-value="306" data-field-left-res-640-value="34" data-field-width-res-640-value="408" data-field-left-res-960-value="570" data-field-width-res-960-value="360"> <div class="tn-atom" field="tn_text_1724336410354">&#x41F;&#x440;&#x43E;&#x43A;&#x430;&#x447;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x43D;&#x430;&#x432;&#x44B;&#x43A;&#x438; &#x441;&#x43E;&#x442;&#x440;&#x443;&#x434;&#x43D;&#x438;&#x43A;&#x43E;&#x432;, &#xAB;&#x43E;&#x431;&#x43D;&#x438;&#x43C;&#x430;&#x439;&#x442;&#x435;&#xBB; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x43E;&#x432; &#x438;&#xA0;&#x43F;&#x430;&#x440;&#x442;&#x43D;&#x435;&#x440;&#x43E;&#x432;</div> </div> <div class="t396__elem tn-elem tn-elem__7889970901724336411691" data-elem-id="1724336411691" data-elem-type="text" data-field-top-value="339" data-field-left-value="680" data-field-width-value="355" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="462" data-field-left-res-320-value="10" data-field-width-res-320-value="310" data-field-top-res-480-value="395" data-field-left-res-480-value="258" data-field-width-res-480-value="215" data-field-top-res-640-value="427" data-field-left-res-640-value="34" data-field-width-res-640-value="355" data-field-left-res-960-value="570" data-field-width-res-960-value="323"> <div class="tn-atom" field="tn_text_1724336411691">&#x41F;&#x443;&#x441;&#x442;&#x44C; &#x432;&#x430;&#x448;&#x435; &#x438;&#x43C;&#x44F; &#x430;&#x441;&#x441;&#x43E;&#x446;&#x438;&#x438;&#x440;&#x443;&#x435;&#x442;&#x441;&#x44F; &#x441;&#xA0;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x439;, &#x437;&#x430;&#x431;&#x43E;&#x442;&#x43E;&#x439; &#x438;&#xA0;&#x440;&#x430;&#x437;&#x432;&#x438;&#x442;&#x438;&#x435;&#x43C;</div> </div> <div class="t396__elem tn-elem tn-elem__7889970901724341178555" data-elem-id="1724341178555" data-elem-type="text" data-field-top-value="89" data-field-left-value="51" data-field-width-value="367" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="48" data-field-left-res-320-value="10" data-field-left-res-480-value="27" data-field-top-res-640-value="88" data-field-left-res-640-value="34" data-field-width-res-640-value="255" data-field-left-res-960-value="41"> <div class="tn-atom" field="tn_text_1724341178555">&#x43A;&#x443;&#x440;&#x441;&#x44B; &#x414;&#x43B;&#x44F; &#x43A;&#x43E;&#x43C;&#x43F;&#x430;&#x43D;&#x438;&#x439;</div> </div> <div class="t396__elem tn-elem tn-elem__7889970901724342640659" data-elem-id="1724342640659" data-elem-type="button" data-field-top-value="79" data-field-left-value="938" data-field-height-value="40" data-field-width-value="212" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="586" data-field-left-res-320-value="10" data-field-height-res-320-value="47" data-field-width-res-320-value="300" data-field-top-res-480-value="514" data-field-left-res-480-value="278" data-field-width-res-480-value="182" data-field-top-res-640-value="75" data-field-left-res-640-value="438" data-field-width-res-640-value="173" data-field-left-res-960-value="718" data-field-width-res-960-value="216"> <a class="tn-atom" href="https://www.mann-ivanov-ferber.ru/corpcourses/" target="_blank">&#x41F;&#x43E;&#x434;&#x43E;&#x431;&#x440;&#x430;&#x442;&#x44C; &#x43A;&#x443;&#x440;&#x441; &#x2192;</a> </div> <div class="t396__elem tn-elem tn-elem__7889970901724336457622" data-elem-id="1724336457622" data-elem-type="shape" data-field-top-value="316" data-field-left-value="49" data-field-height-value="1" data-field-width-value="1095" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="377" data-field-left-res-320-value="10" data-field-height-res-320-value="1" data-field-width-res-320-value="301" data-field-top-res-480-value="372" data-field-left-res-480-value="28" data-field-height-res-480-value="1" data-field-width-res-480-value="427" data-field-top-res-640-value="365" data-field-left-res-640-value="32" data-field-height-res-640-value="1" data-field-width-res-640-value="580" data-field-left-res-960-value="44" data-field-height-res-960-value="1" data-field-width-res-960-value="888"> <div class="tn-atom"> </div> </div> <div class="t396__elem tn-elem tn-elem__7889970901724315791161" data-elem-id="1724315791161" data-elem-type="shape" data-field-top-value="235" data-field-left-value="49" data-field-height-value="1" data-field-width-value="1095" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="256" data-field-left-res-320-value="10" data-field-height-res-320-value="1" data-field-width-res-320-value="301" data-field-top-res-480-value="250" data-field-left-res-480-value="28" data-field-height-res-480-value="1" data-field-width-res-480-value="427" data-field-top-res-640-value="248" data-field-left-res-640-value="32" data-field-height-res-640-value="1" data-field-width-res-640-value="580" data-field-left-res-960-value="44" data-field-height-res-960-value="1" data-field-width-res-960-value="888"> <div class="tn-atom"> </div> </div> <div class="t396__elem tn-elem tn-elem__7889970901724342640661" data-elem-id="1724342640661" data-elem-type="text" data-field-top-value="85" data-field-left-value="744" data-field-width-value="196" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="549" data-field-left-res-320-value="10" data-field-top-res-480-value="523" data-field-left-res-480-value="118" data-field-top-res-640-value="84" data-field-left-res-640-value="281" data-field-left-res-960-value="515"> <div class="tn-atom" field="tn_text_1724342640661">+7 958 295-64-24</div> </div> </div> </div> <!-- /T396 --> </div> <div id="rec788986820" class="r t-rec t-rec_pb_15" style="padding-bottom:15px; " data-animationappear="off" data-record-type="396"> <!-- T396 --> <div class="t396"> <div class="t396__artboard" data-artboard-recid="788986820" data-artboard-screens="320,480,640,960,1200" data-artboard-height="100" data-artboard-valign="center" data-artboard-upscale="grid" data-artboard-ovrflw="visible" data-artboard-height-res-320="160"> <div class="t396__carrier" data-artboard-recid="788986820"></div> <div class="t396__filter" data-artboard-recid="788986820"></div> <div class="t396__elem tn-elem tn-elem__7889868201470209944682" data-elem-id="1470209944682" data-elem-type="text" data-field-top-value="89" data-field-left-value="16" data-field-width-value="1026" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="45" data-field-width-res-320-value="296" data-field-top-res-480-value="36" data-field-top-res-640-value="39" data-field-left-res-960-value="6"> <div class="tn-atom" field="tn_text_1470209944682">&#x41E;&#x442;&#x432;&#x435;&#x442;&#x44B; &#x43D;&#x430;&#xA0;&#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441;&#x44B;</div> </div> <div class="t396__elem tn-elem tn-elem__7889868201724352754362" data-elem-id="1724352754362" data-elem-type="text" data-field-top-value="110" data-field-left-value="894" data-field-width-value="350" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="129" data-field-left-res-320-value="8" data-field-top-res-480-value="86" data-field-top-res-640-value="105" data-field-left-res-640-value="9" data-field-top-res-960-value="109" data-field-left-res-960-value="665"> <div class="tn-atom" field="tn_text_1724352754362">&#x413;&#x43E;&#x442;&#x43E;&#x432;&#x44B; &#x43E;&#x442;&#x432;&#x435;&#x442;&#x438;&#x442;&#x44C; &#x43D;&#x430; &#x432;&#x430;&#x448;&#x438; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441;&#x44B;. &#x41F;&#x438;&#x448;&#x438;&#x442;&#x435; &#x43D;&#x430; <a href="mailto:mifcourses@m-i-f.ru" style="color: rgb(166, 166, 166);">mifcourses@m-i-f.ru</a></div> </div> </div> </div> <!-- /T396 --> </div> <div id="rec788975179" class="r t-rec t-rec_pt_0 t-rec_pb_75" style="padding-top:0px;padding-bottom:75px;background-color:#ffffff; " data-animationappear="off" data-record-type="849" data-bg-color="#ffffff"> <!-- t849--> <div class="t849"> <div class="t-section__container t-container t-container_flex"> <div class="t-col t-col_12 "> <div class="t-section__title t-title t-title_xs t-align_center t-margin_auto" field="btitle"> <div style="color: rgb(113, 70, 70);" data-customstyle="yes"></div> </div> <div class="t-section__descr t-descr t-descr_xl t-align_center t-margin_auto" field="bdescr"> <div style="color: rgb(113, 70, 70); font-size: 24px; line-height: 14px;" data-customstyle="yes"></div> </div> </div> </div> <div class="t-container"> <div class="t-item t-col t-col_6"> <div class="t849__accordion" data-accordion="false"> <div class="t849__wrapper"> <div class="t849__header " style="border-top: 1px solid #f0f0f0"> <button type="button" class="t849__trigger-button t849__trigger-button_left" aria-controls="accordion1_788975179" aria-expanded="false"> <span class="t849__title t-name t-name_xl" field="li_title__1627582478943">&#x423; &#x432;&#x430;&#x441; &#x432;&#x441;&#x435; &#x43E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;?</span> <svg class="t849__icon" role="presentation" focusable="false" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg"> <circle cx="20" cy="20" r="20" stroke-width="0"/> <g class="t849__lines" stroke-width="2px" fill="none"> <path d="M9 20H31"/> <path d="M20 9V31"/> </g> </svg> </button> </div> <div class="t849__content" id="accordion1_788975179" hidden> <div class="t849__textwrapper"> <div class="t849__text t-descr t-descr_sm" field="li_descr__1627582478943">&#x414;&#x430;, &#x43A;&#x43E;&#x43D;&#x435;&#x447;&#x43D;&#x43E;. &#x415;&#x441;&#x442;&#x44C; <a href="https://www.mann-ivanov-ferber.ru/oferta-na-okazanie-platnyh-uslug/">&#x43E;&#x444;&#x435;&#x440;&#x442;&#x430;</a>, &#x433;&#x434;&#x435; &#x43F;&#x440;&#x43E;&#x43F;&#x438;&#x441;&#x430;&#x43D;&#x44B; &#x43F;&#x440;&#x430;&#x432;&#x430; &#x438; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x441;&#x442;&#x43E;&#x440;&#x43E;&#x43D;, &#x430; &#x442;&#x430;&#x43A;&#x436;&#x435; &#x44E;&#x440;&#x438;&#x434;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x435; &#x430;&#x441;&#x43F;&#x435;&#x43A;&#x442;&#x44B; &#x43F;&#x43E;&#x43A;&#x443;&#x43F;&#x43A;&#x438; &#x43A;&#x443;&#x440;&#x441;&#x430; &#x438; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x430; &#x43E;&#x431;&#x443;&#x447;&#x435;&#x43D;&#x438;&#x44F;. <br><br>&#x41A;&#x440;&#x43E;&#x43C;&#x435; &#x442;&#x43E;&#x433;&#x43E;, &#x435;&#x441;&#x442;&#x44C; <a href="http://isga.obrnadzor.gov.ru/rlic/details/58703503-b2cb-4c1b-5f07-0fcb6a499b8d/">&#x43B;&#x438;&#x446;&#x435;&#x43D;&#x437;&#x438;&#x44F;</a> &#x43D;&#x430; &#x43E;&#x441;&#x443;&#x449;&#x435;&#x441;&#x442;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x43E;&#x431;&#x440;&#x430;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x434;&#x435;&#x44F;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x2014; &#x438; &#x443;&#x447;&#x435;&#x43D;&#x438;&#x43A;&#x438; &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x43D;&#x430;&#x43B;&#x43E;&#x433;&#x43E;&#x432;&#x44B;&#x439; &#x432;&#x44B;&#x447;&#x435;&#x442; &#x432; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x440;&#x435; 13%.</div> </div> </div> </div> </div> </div> <div class="t-item t-col t-col_6"> <div class="t849__accordion" data-accordion="false"> <div class="t849__wrapper"> <div class="t849__header " style="border-top: 1px solid #f0f0f0"> <button type="button" class="t849__trigger-button t849__trigger-button_left" aria-controls="accordion2_788975179" aria-expanded="false"> <span class="t849__title t-name t-name_xl" field="li_title__1721119846277">&#x41C;&#x43E;&#x436;&#x43D;&#x43E; &#x43B;&#x438; &#x441;&#x43C;&#x43E;&#x442;&#x440;&#x435;&#x442;&#x44C; &#x441; &#x442;&#x435;&#x43B;&#x435;&#x444;&#x43E;&#x43D;&#x430;?</span> <svg class="t849__icon" role="presentation" focusable="false" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg"> <circle cx="20" cy="20" r="20" stroke-width="0"/> <g class="t849__lines" stroke-width="2px" fill="none"> <path d="M9 20H31"/> <path d="M20 9V31"/> </g> </svg> </button> </div> <div class="t849__content" id="accordion2_788975179" hidden> <div class="t849__textwrapper"> <div class="t849__text t-descr t-descr_sm" field="li_descr__1721119846277">&#x414;&#x430;, &#x432;&#x44B; &#x43C;&#x43E;&#x436;&#x435;&#x442;&#x435; &#x43F;&#x440;&#x43E;&#x441;&#x43C;&#x430;&#x442;&#x440;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x443;&#x440;&#x43E;&#x43A;&#x438; &#x43A;&#x430;&#x43A; &#x438;&#x437; &#x431;&#x440;&#x430;&#x443;&#x437;&#x435;&#x440;&#x430;, &#x442;&#x430;&#x43A; &#x438; &#x438;&#x437; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F; <a href="https://play.google.com/store/apps/details?id=com.chatium.app&amp;hl=en_US&amp;gl=US">GetCourse</a>.</div> </div> </div> </div> </div> </div> <div class="t849__divider"></div> <div class="t-item t-col t-col_6"> <div class="t849__accordion" data-accordion="false"> <div class="t849__wrapper"> <div class="t849__header " style="border-top: 1px solid #f0f0f0"> <button type="button" class="t849__trigger-button t849__trigger-button_left" aria-controls="accordion3_788975179" aria-expanded="false"> <span class="t849__title t-name t-name_xl" field="li_title__1648042828817">&#x41C;&#x43E;&#x436;&#x43D;&#x43E; &#x43B;&#x438; &#x43E;&#x43F;&#x43B;&#x430;&#x442;&#x438;&#x442;&#x44C; &#x43A;&#x443;&#x440;&#x441;&#x44B; &#x432; &#x440;&#x430;&#x441;&#x441;&#x440;&#x43E;&#x447;&#x43A;&#x443;?</span> <svg class="t849__icon" role="presentation" focusable="false" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg"> <circle cx="20" cy="20" r="20" stroke-width="0"/> <g class="t849__lines" stroke-width="2px" fill="none"> <path d="M9 20H31"/> <path d="M20 9V31"/> </g> </svg> </button> </div> <div class="t849__content" id="accordion3_788975179" hidden> <div class="t849__textwrapper"> <div class="t849__text t-descr t-descr_sm" field="li_descr__1648042828817">&#x414;&#x430;, &#x432;&#x44B; &#x43C;&#x43E;&#x436;&#x435;&#x442;&#x435; &#x43F;&#x440;&#x438;&#x43E;&#x431;&#x440;&#x435;&#x441;&#x442;&#x438; &#x43A;&#x443;&#x440;&#x441;&#x44B; &#x432; &#x440;&#x430;&#x441;&#x441;&#x440;&#x43E;&#x447;&#x43A;&#x443;. &#x412;&#x44B;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; &#x43A;&#x443;&#x440;&#x441;, &#x437;&#x430;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435; &#x444;&#x43E;&#x440;&#x43C;&#x443; &#x438; &#x43D;&#x430;&#x436;&#x43C;&#x438;&#x442;&#x435; &#xAB;&#x417;&#x430;&#x43F;&#x438;&#x441;&#x430;&#x442;&#x44C;&#x441;&#x44F;&#xBB;. &#x412;&#x430;&#x43C; &#x431;&#x443;&#x434;&#x443;&#x442; &#x43F;&#x440;&#x435;&#x434;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x44B; &#x432;&#x430;&#x440;&#x438;&#x430;&#x43D;&#x442;&#x44B; &#x43E;&#x43F;&#x43B;&#x430;&#x442;&#x44B;, &#x432; &#x442;&#x43E;&#x43C; &#x447;&#x438;&#x441;&#x43B;&#x435; &#x440;&#x430;&#x441;&#x441;&#x440;&#x43E;&#x447;&#x43A;&#x430; &#x43D;&#x430; 4, 6, 10 &#x438; 12 &#x43C;&#x435;&#x441;&#x44F;&#x446;&#x435;&#x432; &#x2014; &#x431;&#x435;&#x437; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; &#x432;&#x437;&#x43D;&#x43E;&#x441;&#x430;.<br><br>&#x415;&#x441;&#x43B;&#x438; &#x43D;&#x435; &#x43F;&#x43E;&#x434;&#x445;&#x43E;&#x434;&#x438;&#x442;, &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x43E;&#x43F;&#x43B;&#x430;&#x442;&#x438;&#x442;&#x44C; &#x447;&#x430;&#x441;&#x442;&#x44F;&#x43C;&#x438; &#x447;&#x435;&#x440;&#x435;&#x437; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x44B; &#x414;&#x43E;&#x43B;&#x44F;&#x43C;&#x438;, &#x42F;&#x43D;&#x434;&#x435;&#x43A;&#x441; &#x421;&#x43F;&#x43B;&#x438;&#x442; &#x438; &#x41F;&#x43E;&#x434;&#x435;&#x43B;&#x438;. </div> </div> </div> </div> </div> </div> <div class="t-item t-col t-col_6"> <div class="t849__accordion" data-accordion="false"> <div class="t849__wrapper"> <div class="t849__header " style="border-top: 1px solid #f0f0f0"> <button type="button" class="t849__trigger-button t849__trigger-button_left" aria-controls="accordion4_788975179" aria-expanded="false"> <span class="t849__title t-name t-name_xl" field="li_title__1627582462963">&#x41C;&#x43E;&#x436;&#x43D;&#x43E; &#x43B;&#x438; &#x43F;&#x43E;&#x434;&#x430;&#x440;&#x438;&#x442;&#x44C; &#x43A;&#x443;&#x440;&#x441;&#x44B;?</span> <svg class="t849__icon" role="presentation" focusable="false" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg"> <circle cx="20" cy="20" r="20" stroke-width="0"/> <g class="t849__lines" stroke-width="2px" fill="none"> <path d="M9 20H31"/> <path d="M20 9V31"/> </g> </svg> </button> </div> <div class="t849__content" id="accordion4_788975179" hidden> <div class="t849__textwrapper"> <div class="t849__text t-descr t-descr_sm" field="li_descr__1627582462963">&#x41B;&#x44E;&#x431;&#x43E;&#x439; &#x43A;&#x443;&#x440;&#x441; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x43F;&#x43E;&#x434;&#x430;&#x440;&#x438;&#x442;&#x44C;. &#x414;&#x43B;&#x44F; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x43D;&#x430; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x435; &#x43A;&#x443;&#x440;&#x441;&#x430; &#x43F;&#x43E;&#x434; &#x442;&#x430;&#x440;&#x438;&#x444;&#x430;&#x43C;&#x438; &#x43D;&#x430;&#x436;&#x43C;&#x438;&#x442;&#x435; &#x43D;&#x430; &#x43A;&#x43D;&#x43E;&#x43F;&#x43A;&#x443; &#xAB;&#x41F;&#x43E;&#x434;&#x430;&#x440;&#x438;&#x442;&#x44C; &#x43A;&#x443;&#x440;&#x441;&#xBB;.</div> </div> </div> </div> </div> </div> <div class="t849__divider"></div> <div class="t-item t-col t-col_6"> <div class="t849__accordion" data-accordion="false"> <div class="t849__wrapper"> <div class="t849__header " style="border-top: 1px solid #f0f0f0"> <button type="button" class="t849__trigger-button t849__trigger-button_left" aria-controls="accordion5_788975179" aria-expanded="false"> <span class="t849__title t-name t-name_xl" field="li_title__1721119751991">&#x41D;&#x435; &#x432;&#x438;&#x436;&#x443; &#x43A;&#x43D;&#x43E;&#x43F;&#x43A;&#x443; &#xAB;&#x41E;&#x43F;&#x43B;&#x430;&#x442;&#x438;&#x442;&#x44C;&#xBB;<br></span> <svg class="t849__icon" role="presentation" focusable="false" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg"> <circle cx="20" cy="20" r="20" stroke-width="0"/> <g class="t849__lines" stroke-width="2px" fill="none"> <path d="M9 20H31"/> <path d="M20 9V31"/> </g> </svg> </button> </div> <div class="t849__content" id="accordion5_788975179" hidden> <div class="t849__textwrapper"> <div class="t849__text t-descr t-descr_sm" field="li_descr__1721119751991">&#x415;&#x441;&#x43B;&#x438; &#x432;&#x44B; &#x43E;&#x43F;&#x43B;&#x430;&#x447;&#x438;&#x432;&#x430;&#x435;&#x442;&#x435; &#x43D;&#x435; &#x438;&#x437; &#x420;&#x43E;&#x441;&#x441;&#x438;&#x438;, &#x441;&#x43A;&#x43E;&#x440;&#x435;&#x435; &#x432;&#x441;&#x435;&#x433;&#x43E;, &#x432;&#x430;&#x448; &#x43F;&#x440;&#x43E;&#x432;&#x430;&#x439;&#x434;&#x435;&#x440; &#x431;&#x43B;&#x43E;&#x43A;&#x438;&#x440;&#x443;&#x435;&#x442; &#x440;&#x43E;&#x441;&#x441;&#x438;&#x439;&#x441;&#x43A;&#x438;&#x435; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x44B;. &#x41D;&#x430;&#x43F;&#x438;&#x448;&#x438;&#x442;&#x435; &#x43D;&#x430;&#x43C; &#x43D;&#x430; &#x43F;&#x43E;&#x447;&#x442;&#x443; <a href="mailto:mifcourses@m-i-f.ru">mifcourses@m-i-f.ru</a>, &#x438; &#x43C;&#x44B; &#x43D;&#x430;&#x439;&#x434;&#x451;&#x43C; &#x432;&#x44B;&#x445;&#x43E;&#x434;.</div> </div> </div> </div> </div> </div> <div class="t-item t-col t-col_6"> <div class="t849__accordion" data-accordion="false"> <div class="t849__wrapper"> <div class="t849__header " style="border-top: 1px solid #f0f0f0"> <button type="button" class="t849__trigger-button t849__trigger-button_left" aria-controls="accordion6_788975179" aria-expanded="false"> <span class="t849__title t-name t-name_xl" field="li_title__1664141526999">&#x41C;&#x43E;&#x436;&#x43D;&#x43E; &#x43B;&#x438; &#x43E;&#x43F;&#x43B;&#x430;&#x442;&#x438;&#x442;&#x44C; &#x438;&#x437;-&#x437;&#x430; &#x440;&#x443;&#x431;&#x435;&#x436;&#x430;?<br></span> <svg class="t849__icon" role="presentation" focusable="false" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg"> <circle cx="20" cy="20" r="20" stroke-width="0"/> <g class="t849__lines" stroke-width="2px" fill="none"> <path d="M9 20H31"/> <path d="M20 9V31"/> </g> </svg> </button> </div> <div class="t849__content" id="accordion6_788975179" hidden> <div class="t849__textwrapper"> <div class="t849__text t-descr t-descr_sm" field="li_descr__1664141526999">&#x415;&#x441;&#x442;&#x44C; &#x43E;&#x43F;&#x43B;&#x430;&#x442;&#x430; &#x437;&#x430;&#x440;&#x443;&#x431;&#x435;&#x436;&#x43D;&#x44B;&#x43C;&#x438; &#x43A;&#x430;&#x440;&#x442;&#x430;&#x43C;&#x438;: &#x432;&#x44B;&#x431;&#x438;&#x440;&#x430;&#x439;&#x442;&#x435; &#x43E;&#x43F;&#x446;&#x438;&#x44E; &#xAB;&#x41E;&#x43F;&#x43B;&#x430;&#x442;&#x430; &#x43A;&#x430;&#x440;&#x442;&#x43E;&#x439;, &#x432;&#x44B;&#x43F;&#x443;&#x449;&#x435;&#x43D;&#x43D;&#x43E;&#x439; &#x431;&#x430;&#x43D;&#x43A;&#x43E;&#x43C; &#x432; &#x434;&#x440;&#x443;&#x433;&#x438;&#x445; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x430;&#x445;&#xBB;. &#x415;&#x441;&#x43B;&#x438; &#x432;&#x44B; &#x437;&#x430; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x435;&#x439; &#x441; &#x440;&#x43E;&#x441;&#x441;&#x438;&#x439;&#x441;&#x43A;&#x43E;&#x439; &#x43A;&#x430;&#x440;&#x442;&#x43E;&#x439;, &#x435;&#x44E; &#x442;&#x43E;&#x436;&#x435; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F;.<br></div> </div> </div> </div> </div> </div> <div class="t849__divider"></div> <div class="t-item t-col t-col_6"> <div class="t849__accordion" data-accordion="false"> <div class="t849__wrapper"> <div class="t849__header " style="border-top: 1px solid #f0f0f0"> <button type="button" class="t849__trigger-button t849__trigger-button_left" aria-controls="accordion7_788975179" aria-expanded="false"> <span class="t849__title t-name t-name_xl" field="li_title__1721119830634">&#x41D;&#x435; &#x443;&#x441;&#x43F;&#x435;&#x432;&#x430;&#x44E; &#x432;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x44F; &#x441;&#x434;&#x430;&#x432;&#x430;&#x442;&#x44C; &#x434;&#x43E;&#x43C;&#x430;&#x448;&#x43D;&#x438;&#x435; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F;, &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x443; &#x43B;&#x438; &#x44F; &#x43E;&#x431;&#x440;&#x430;&#x442;&#x43D;&#x443;&#x44E; &#x441;&#x432;&#x44F;&#x437;&#x44C;?</span> <svg class="t849__icon" role="presentation" focusable="false" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg"> <circle cx="20" cy="20" r="20" stroke-width="0"/> <g class="t849__lines" stroke-width="2px" fill="none"> <path d="M9 20H31"/> <path d="M20 9V31"/> </g> </svg> </button> </div> <div class="t849__content" id="accordion7_788975179" hidden> <div class="t849__textwrapper"> <div class="t849__text t-descr t-descr_sm" field="li_descr__1721119830634">&#x41D;&#x435;&#x442;. &#x414;&#x43E;&#x43C;&#x430;&#x448;&#x43D;&#x438;&#x435; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x442;&#x44C; &#x43F;&#x43E; &#x436;&#x435;&#x43B;&#x430;&#x43D;&#x438;&#x44E;, &#x43A;&#x430;&#x43A; &#x438; &#x445;&#x43E;&#x434;&#x438;&#x442;&#x44C; &#x43D;&#x430; &#x432;&#x441;&#x442;&#x440;&#x435;&#x447;&#x438; &#x441; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442;&#x430;&#x43C;&#x438;. &#x42D;&#x442;&#x43E; &#x432;&#x430;&#x448;&#x435; &#x440;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x435;, &#x438; &#x43C;&#x44B; &#x435;&#x433;&#x43E; &#x443;&#x432;&#x430;&#x436;&#x430;&#x435;&#x43C;. &#x415;&#x441;&#x43B;&#x438; &#x436;&#x435; &#x440;&#x435;&#x448;&#x438;&#x442;&#x435; &#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; &#x434;&#x43E;&#x43C;&#x430;&#x448;&#x43A;&#x438;, &#x43F;&#x440;&#x43E;&#x441;&#x438;&#x43C; &#x441;&#x434;&#x430;&#x432;&#x430;&#x442;&#x44C; &#x438;&#x445; &#x43D;&#x435; &#x43F;&#x43E;&#x437;&#x436;&#x435; &#x434;&#x435;&#x434;&#x43B;&#x430;&#x439;&#x43D;&#x430;, &#x438;&#x43D;&#x430;&#x447;&#x435; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442;&#x44B; &#x43D;&#x435; &#x441;&#x43C;&#x43E;&#x433;&#x443;&#x442; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; &#x432;&#x430;&#x448;&#x443; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x443;.</div> </div> </div> </div> </div> </div> <div class="t-item t-col t-col_6"> <div class="t849__accordion" data-accordion="false"> <div class="t849__wrapper"> <div class="t849__header " style="border-top: 1px solid #f0f0f0"> <button type="button" class="t849__trigger-button t849__trigger-button_left" aria-controls="accordion8_788975179" aria-expanded="false"> <span class="t849__title t-name t-name_xl" field="li_title__1724760495795">&#x41A;&#x430;&#x43A; &#x43A;&#x443;&#x43F;&#x438;&#x442;&#x44C; &#x43A;&#x443;&#x440;&#x441; &#x434;&#x43B;&#x44F; &#x441;&#x43E;&#x442;&#x440;&#x443;&#x434;&#x43D;&#x438;&#x43A;&#x43E;&#x432; &#x441;&#x432;&#x43E;&#x435;&#x439; &#x43A;&#x43E;&#x43C;&#x43F;&#x430;&#x43D;&#x438;&#x438;?</span> <svg class="t849__icon" role="presentation" focusable="false" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg"> <circle cx="20" cy="20" r="20" stroke-width="0"/> <g class="t849__lines" stroke-width="2px" fill="none"> <path d="M9 20H31"/> <path d="M20 9V31"/> </g> </svg> </button> </div> <div class="t849__content" id="accordion8_788975179" hidden> <div class="t849__textwrapper"> <div class="t849__text t-descr t-descr_sm" field="li_descr__1724760495795">&#x417;&#x432;&#x43E;&#x43D;&#x438;&#x442;&#x435; &#x438;&#x43B;&#x438; &#x43F;&#x438;&#x448;&#x438;&#x442;&#x435; &#x421;&#x432;&#x435;&#x442;&#x435; &#x41A;&#x43E;&#x436;&#x435;&#x432;&#x43D;&#x438;&#x43A;&#x43E;&#x432;&#x43E;&#x439;, &#x43F;&#x440;&#x43E;&#x434;&#x44E;&#x441;&#x435;&#x440;&#x443; &#x43A;&#x43E;&#x440;&#x43F;&#x43E;&#x440;&#x430;&#x442;&#x438;&#x432;&#x43D;&#x44B;&#x445; &#x43F;&#x440;&#x43E;&#x435;&#x43A;&#x442;&#x43E;&#x432; &#x438;&#x437;&#x434;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x430; &#x41C;&#x418;&#x424; (&#xAB;&#x41C;&#x430;&#x43D;&#x43D;, &#x418;&#x432;&#x430;&#x43D;&#x43E;&#x432; &#x438; &#x424;&#x435;&#x440;&#x431;&#x435;&#x440;&#xBB;)<br>+7 958 295-64-24, <a href="mailto:b2b@mann-ivanov-ferber.ru" target="_blank" rel="noreferrer noopener">b2b@m-i-f.ru</a><br><a href="https://www.mann-ivanov-ferber.ru/corpcourses/" target="_blank" rel="noreferrer noopener">&#x41F;&#x43E;&#x434;&#x440;&#x43E;&#x431;&#x43D;&#x435;&#x435; &#x43E; &#x43A;&#x443;&#x440;&#x441;&#x430;&#x445; &#x434;&#x43B;&#x44F; &#x43A;&#x43E;&#x43C;&#x43F;&#x430;&#x43D;&#x438;&#x439;</a></div> </div> </div> </div> </div> </div> <div class="t849__divider"></div> <div class="t-item t-col t-col_6"> <div class="t849__accordion" data-accordion="false"> <div class="t849__wrapper"> <div class="t849__header " style="border-top: 1px solid #f0f0f0"> <button type="button" class="t849__trigger-button t849__trigger-button_left" aria-controls="accordion9_788975179" aria-expanded="false"> <span class="t849__title t-name t-name_xl" field="li_title__1725292630690">&#x41A;&#x430;&#x43A; &#x441;&#x442;&#x430;&#x442;&#x44C; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442;&#x43E;&#x43C; &#x43A;&#x443;&#x440;&#x441;&#x430;?</span> <svg class="t849__icon" role="presentation" focusable="false" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg"> <circle cx="20" cy="20" r="20" stroke-width="0"/> <g class="t849__lines" stroke-width="2px" fill="none"> <path d="M9 20H31"/> <path d="M20 9V31"/> </g> </svg> </button> </div> <div class="t849__content" id="accordion9_788975179" hidden> <div class="t849__textwrapper"> <div class="t849__text t-descr t-descr_sm" field="li_descr__1725292630690">&#x414;&#x43B;&#x44F; &#x43A;&#x443;&#x440;&#x441;&#x43E;&#x432; &#x438;&#xA0;&#x432;&#x435;&#x431;&#x438;&#x43D;&#x430;&#x440;&#x43E;&#x432; &#x43C;&#x44B;&#xA0;&#x438;&#x449;&#x435;&#x43C; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442;&#x43E;&#x432;&#xA0;&#x2014; &#x443;&#x432;&#x43B;&#x435;&#x447;&#x435;&#x43D;&#x43D;&#x44B;&#x445; &#x43F;&#x440;&#x43E;&#x444;&#x435;&#x441;&#x441;&#x438;&#x43E;&#x43D;&#x430;&#x43B;&#x43E;&#x432; &#x441;&#xA0;&#x433;&#x43E;&#x440;&#x44F;&#x449;&#x438;&#x43C;&#x438; &#x433;&#x43B;&#x430;&#x437;&#x430;&#x43C;&#x438;, &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x44B;&#x445; &#x43F;&#x43E;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x437;&#x43D;&#x430;&#x43D;&#x438;&#x44F;&#x43C;&#x438; &#x438;&#xA0;&#x43E;&#x43F;&#x44B;&#x442;&#x43E;&#x43C;. &#x415;&#x441;&#x43B;&#x438; &#x432;&#x430;&#x43C; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x43E; &#x441;&#x43E;&#x442;&#x440;&#x443;&#x434;&#x43D;&#x438;&#x447;&#x435;&#x441;&#x442;&#x432;&#x43E; &#x441;&#xA0;&#x43A;&#x443;&#x440;&#x441;&#x430;&#x43C;&#x438; &#x41C;&#x418;&#x424;&#x430;, &#x43D;&#x430;&#x43F;&#x438;&#x448;&#x438;&#x442;&#x435; &#x43D;&#x430;&#x43C; &#x43D;&#x430;&#xA0;<a href="mailto:mifcourses@m-i-f.ru">mifcourses@m-i-f.ru</a><br><br></div> </div> </div> </div> </div> <div class="t849__border" style="height: 1px; background-color: #f0f0f0"></div> </div> </div> </div> </div> <div id="rec789111146" class="r t-rec t-rec_pt_75 t-rec_pb_0" style="padding-top:75px;padding-bottom:0px;background-color:#f8f8f8; " data-record-type="397" data-bg-color="#f8f8f8"> <!-- t397 --> <div class="t397"> <div class="t-container"> <div class="t397__col t-width t-width_12 t397__col_mobile-flex"> <ul class="t397__wrapper t-align_left t397__wrapper_mobile-flex" role="tablist" data-tab-current="1"> <li role="presentation" class="t397__tab t397__tab_active t397__width_33" data-tab-rec-ids="789123531" data-tab-number="1" style="border-bottom: 1px solid #dcdcdc;"> <button type="button" class="t397__title t-name t-name_xs" id="tab1_789111146" role="tab" aria-selected="false" aria-controls="rec789123531" tabindex="-1" field="title" data-redactor-notoolbar="yes">&#x411;&#x43B;&#x43E;&#x433;</button> </li> <li role="presentation" class="t397__tab t397__width_33" data-tab-rec-ids="789114300" data-tab-number="2" style="border-bottom: 1px solid #dcdcdc;"> <button type="button" class="t397__title t-name t-name_xs" id="tab2_789111146" role="tab" aria-selected="false" aria-controls="rec789114300" tabindex="-1" field="title2" data-redactor-notoolbar="yes">&#x42D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442;&#x44B;</button> </li> <li role="presentation" class="t397__tab t397__width_33" data-tab-rec-ids="789120486" data-tab-number="3" style="border-bottom: 1px solid #dcdcdc;"> <button type="button" class="t397__title t-name t-name_xs" id="tab3_789111146" role="tab" aria-selected="false" aria-controls="rec789120486" tabindex="-1" field="title3" data-redactor-notoolbar="yes">&#x41A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430;</button> </li> <div class="t397__separator_mobile"></div> </ul> <div class="t397__wrapper_mobile"> <div class="t397__firefoxfix"></div> <select autocomplete="off" class="t397__select t-name" style="font-family:Circe;"> <option value="789123531">&#x411;&#x43B;&#x43E;&#x433;</option> <option value="789114300">&#x42D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442;&#x44B;</option> <option value="789120486">&#x41A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430;</option> </select> </div> </div> </div> </div> </div> <div id="rec789123531" class="r t-rec t-rec_pt_30 t-rec_pt-res-480_15 t-rec_pb_45 t-rec_pb-res-480_0" style="padding-top:30px;padding-bottom:45px;background-color:#f8f8f8; " data-animationappear="off" data-record-type="396" data-bg-color="#f8f8f8"> <!-- T396 --> <div class="t396"> <div class="t396__artboard" data-artboard-recid="789123531" data-artboard-screens="320,480,640,960,1200" data-artboard-height="390" data-artboard-valign="center" data-artboard-upscale="grid" data-artboard-height-res-320="470" data-artboard-height-res-480="540" data-artboard-height-res-640="460"> <div class="t396__carrier" data-artboard-recid="789123531"></div> <div class="t396__filter" data-artboard-recid="789123531"></div> <div class="t396__elem tn-elem tn-elem__7891235311724358925451" data-elem-id="1724358925451" data-elem-type="shape" data-field-top-value="3" data-field-left-value="20" data-field-height-value="366" data-field-width-value="1163" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="3" data-field-left-res-320-value="-10" data-field-height-res-320-value="450" data-field-width-res-320-value="340" data-field-top-res-480-value="1" data-field-left-res-480-value="10" data-field-height-res-480-value="495" data-field-width-res-480-value="460" data-field-height-res-640-value="431" data-field-width-res-640-value="620" data-field-top-res-960-value="1" data-field-left-res-960-value="10" data-field-width-res-960-value="939"> <div class="tn-atom"> </div> </div> <div class="t396__elem tn-elem tn-elem__7891235311724315836050" data-elem-id="1724315836050" data-elem-type="text" data-field-top-value="30" data-field-left-value="760" data-field-width-value="403" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="243" data-field-left-res-320-value="19" data-field-width-res-320-value="290" data-field-top-res-480-value="250" data-field-left-res-480-value="43" data-field-width-res-480-value="402" data-field-top-res-640-value="258" data-field-left-res-640-value="43" data-field-width-res-640-value="561" data-field-top-res-960-value="40" data-field-left-res-960-value="608" data-field-width-res-960-value="327"> <div class="tn-atom" field="tn_text_1724315836050">&#x41F;&#x438;&#x448;&#x435;&#x43C; &#x43E;&#xA0;&#x43A;&#x443;&#x440;&#x441;&#x430;&#x445;, &#x431;&#x435;&#x440;&#x435;&#x43C; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x432;&#x44C;&#x44E; &#x443;&#xA0;&#x430;&#x432;&#x442;&#x43E;&#x440;&#x43E;&#x432;, &#x43F;&#x443;&#x431;&#x43B;&#x438;&#x43A;&#x443;&#x435;&#x43C; &#x432;&#x43F;&#x435;&#x447;&#x430;&#x442;&#x43B;&#x435;&#x43D;&#x438;&#x44F; </div> </div> <div class="t396__elem tn-elem tn-elem__7891235311724343601293" data-elem-id="1724343601293" data-elem-type="button" data-field-top-value="220" data-field-left-value="760" data-field-height-value="69" data-field-width-value="293" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="345" data-field-left-res-320-value="20" data-field-height-res-320-value="47" data-field-width-res-320-value="278" data-field-top-res-480-value="364" data-field-left-res-480-value="43" data-field-width-res-480-value="238" data-field-top-res-640-value="330" data-field-left-res-640-value="43" data-field-width-res-640-value="239" data-field-top-res-960-value="200" data-field-left-res-960-value="608" data-field-height-res-960-value="75" data-field-width-res-960-value="292"> <a class="tn-atom" href="https://blog.mann-ivanov-ferber.ru/tag/kursy-mifa/" target="_blank">&#x427;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x431;&#x43B;&#x43E;&#x433; &#x2192;</a> </div> <div class="t396__elem tn-elem tn-elem__7891235311724361308159" data-elem-id="1724361308159" data-elem-type="shape" data-field-top-value="3" data-field-left-value="402" data-field-height-value="366" data-field-width-value="303" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-left-res-320-value="180" data-field-height-res-320-value="212" data-field-width-res-320-value="150" data-field-left-res-480-value="267" data-field-height-res-480-value="222" data-field-width-res-480-value="203" data-field-left-res-640-value="356" data-field-height-res-640-value="235" data-field-width-res-640-value="274" data-field-left-res-960-value="321" data-field-height-res-960-value="365" data-field-width-res-960-value="247"> <div class="tn-atom t-bgimg" data-original="https://static.tildacdn.com/tild6465-6332-4935-a466-333566623437/image2-50.jpg" aria-label role="img"> </div> </div> <div class="t396__elem tn-elem tn-elem__7891235311724361288999" data-elem-id="1724361288999" data-elem-type="shape" data-field-top-value="3" data-field-left-value="281" data-field-height-value="366" data-field-width-value="303" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-left-res-320-value="120" data-field-height-res-320-value="212" data-field-width-res-320-value="150" data-field-left-res-480-value="186" data-field-height-res-480-value="222" data-field-width-res-480-value="203" data-field-left-res-640-value="247" data-field-height-res-640-value="235" data-field-width-res-640-value="274" data-field-left-res-960-value="223" data-field-height-res-960-value="365" data-field-width-res-960-value="247"> <div class="tn-atom t-bgimg" data-original="https://static.tildacdn.com/tild3937-6233-4665-b238-643238393636/image3-8-312x250.png" aria-label role="img"> </div> </div> <div class="t396__elem tn-elem tn-elem__7891235311724361290795" data-elem-id="1724361290795" data-elem-type="shape" data-field-top-value="3" data-field-left-value="152" data-field-height-value="366" data-field-width-value="303" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-left-res-320-value="55" data-field-height-res-320-value="212" data-field-width-res-320-value="150" data-field-left-res-480-value="98" data-field-height-res-480-value="222" data-field-width-res-480-value="203" data-field-left-res-640-value="129" data-field-height-res-640-value="235" data-field-width-res-640-value="274" data-field-left-res-960-value="117" data-field-height-res-960-value="365" data-field-width-res-960-value="247"> <div class="tn-atom t-bgimg" data-original="https://static.tildacdn.com/tild6630-3663-4065-b463-666134616334/image6-14-312x250.jpg" aria-label role="img"> </div> </div> <div class="t396__elem tn-elem tn-elem__7891235311724361274409" data-elem-id="1724361274409" data-elem-type="shape" data-field-top-value="3" data-field-left-value="20" data-field-height-value="366" data-field-width-value="303" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-left-res-320-value="-10" data-field-height-res-320-value="212" data-field-width-res-320-value="150" data-field-height-res-480-value="222" data-field-width-res-480-value="203" data-field-left-res-640-value="10" data-field-height-res-640-value="235" data-field-width-res-640-value="274" data-field-left-res-960-value="10" data-field-height-res-960-value="365" data-field-width-res-960-value="247"> <a class="tn-atom t-bgimg" href="https://blog.mann-ivanov-ferber.ru/tag/kursy-mifa/" target="_blank" data-original="https://static.tildacdn.com/tild6239-3738-4132-b737-623865333265/image2-38.jpg" aria-label role="img"> </a> </div> </div> </div> <!-- /T396 --> </div> <div id="rec789114300" class="r t-rec t-rec_pt_30 t-rec_pt-res-480_15 t-rec_pb_45 t-rec_pb-res-480_0" style="padding-top:30px;padding-bottom:45px;background-color:#f8f8f8; " data-animationappear="off" data-record-type="396" data-bg-color="#f8f8f8"> <!-- T396 --> <div class="t396"> <div class="t396__artboard" data-artboard-recid="789114300" data-artboard-screens="320,480,640,960,1200" data-artboard-height="390" data-artboard-valign="center" data-artboard-upscale="grid" data-artboard-height-res-320="600" data-artboard-height-res-480="540" data-artboard-height-res-640="460"> <div class="t396__carrier" data-artboard-recid="789114300"></div> <div class="t396__filter" data-artboard-recid="789114300"></div> <div class="t396__elem tn-elem tn-elem__7891143001724358925451" data-elem-id="1724358925451" data-elem-type="shape" data-field-top-value="3" data-field-left-value="20" data-field-height-value="366" data-field-width-value="1163" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="3" data-field-left-res-320-value="-10" data-field-height-res-320-value="574" data-field-width-res-320-value="340" data-field-height-res-480-value="514" data-field-width-res-480-value="460" data-field-height-res-640-value="431" data-field-width-res-640-value="620" data-field-top-res-960-value="1" data-field-left-res-960-value="10" data-field-width-res-960-value="939"> <div class="tn-atom"> </div> </div> <div class="t396__elem tn-elem tn-elem__7891143001724315836050" data-elem-id="1724315836050" data-elem-type="text" data-field-top-value="66" data-field-left-value="49" data-field-width-value="554" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="55" data-field-left-res-320-value="11" data-field-width-res-320-value="290" data-field-width-res-480-value="402" data-field-width-res-640-value="343" data-field-left-res-960-value="39" data-field-width-res-960-value="446"> <div class="tn-atom" field="tn_text_1724315836050">&#x414;&#x43B;&#x44F; &#x43A;&#x443;&#x440;&#x441;&#x43E;&#x432; &#x438;&#xA0;&#x432;&#x435;&#x431;&#x438;&#x43D;&#x430;&#x440;&#x43E;&#x432; &#x43C;&#x44B;&#xA0;&#x438;&#x449;&#x435;&#x43C; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442;&#x43E;&#x432;&#xA0;&#x2014; &#x443;&#x432;&#x43B;&#x435;&#x447;&#x435;&#x43D;&#x43D;&#x44B;&#x445; &#x43F;&#x440;&#x43E;&#x444;&#x435;&#x441;&#x441;&#x438;&#x43E;&#x43D;&#x430;&#x43B;&#x43E;&#x432; &#x441;&#xA0;&#x433;&#x43E;&#x440;&#x44F;&#x449;&#x438;&#x43C;&#x438; &#x433;&#x43B;&#x430;&#x437;&#x430;&#x43C;&#x438;, &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x44B;&#x445; &#x43F;&#x43E;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x437;&#x43D;&#x430;&#x43D;&#x438;&#x44F;&#x43C;&#x438; &#x438;&#xA0;&#x43E;&#x43F;&#x44B;&#x442;&#x43E;&#x43C;.</div> </div> <div class="t396__elem tn-elem tn-elem__7891143001724341541803" data-elem-id="1724341541803" data-elem-type="text" data-field-top-value="79" data-field-left-value="680" data-field-width-value="191" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="312" data-field-left-res-320-value="11" data-field-width-res-320-value="277" data-field-top-res-480-value="265" data-field-left-res-480-value="39" data-field-top-res-640-value="74" data-field-left-res-640-value="413" data-field-top-res-960-value="74" data-field-left-res-960-value="530"> <div class="tn-atom" field="tn_text_1724341541803">&#x41C;&#x44B;&#xA0;&#x441;&#x43E;&#x437;&#x434;&#x430;&#x435;&#x43C; &#x43F;&#x440;&#x43E;&#x434;&#x443;&#x43A;&#x442;&#x44B; &#x442;&#x430;&#x43A;&#x438;&#x43C;&#x438;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x438;&#x43C;&#x438; &#x433;&#x43E;&#x440;&#x434;&#x438;&#x43B;&#x438;&#x441;&#x44C; &#x438;&#xA0;&#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442;&#x44B;, &#x438;&#xA0;&#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x41C;&#x418;&#x424;&#x430;. <a href="https://blog.mann-ivanov-ferber.ru/2023/08/17/mif-kursy-ot-idei-do-zapuska-rasskazyvaet-metodist-mariya-bazhenova/" target="_blank" rel="noreferrer noopener" style="color: rgb(136, 136, 136);">&#x427;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x43E;&#xA0;&#x442;&#x43E;&#x43C;, &#x43A;&#x430;&#x43A; &#x43C;&#x44B;&#xA0;&#x441;&#x43E;&#x437;&#x434;&#x430;&#x435;&#x43C; &#x43A;&#x443;&#x440;&#x441;&#x44B;</a></div> </div> <div class="t396__elem tn-elem tn-elem__7891143001724341543631" data-elem-id="1724341543631" data-elem-type="text" data-field-top-value="79" data-field-left-value="982" data-field-width-value="165" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="406" data-field-left-res-320-value="12" data-field-width-res-320-value="282" data-field-top-res-480-value="265" data-field-left-res-480-value="270" data-field-top-res-640-value="220" data-field-left-res-640-value="413" data-field-top-res-960-value="74" data-field-left-res-960-value="758"> <div class="tn-atom" field="tn_text_1724341543631">&#x415;&#x441;&#x43B;&#x438; &#x432;&#x430;&#x43C; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x43E; &#x441;&#x43E;&#x442;&#x440;&#x443;&#x434;&#x43D;&#x438;&#x447;&#x435;&#x441;&#x442;&#x432;&#x43E; &#x441;&#xA0;&#x43A;&#x443;&#x440;&#x441;&#x430;&#x43C;&#x438; &#x41C;&#x418;&#x424;&#x430;, &#x43D;&#x430;&#x43F;&#x438;&#x448;&#x438;&#x442;&#x435; &#x43D;&#x430;&#x43C;</div> </div> <div class="t396__elem tn-elem tn-elem__7891143001724343601293" data-elem-id="1724343601293" data-elem-type="button" data-field-top-value="297" data-field-left-value="912" data-field-height-value="40" data-field-width-value="240" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="496" data-field-left-res-320-value="11" data-field-height-res-320-value="46" data-field-width-res-320-value="300" data-field-top-res-480-value="422" data-field-left-res-480-value="39" data-field-width-res-480-value="238" data-field-top-res-640-value="350" data-field-left-res-640-value="39" data-field-width-res-640-value="246" data-field-top-res-960-value="260" data-field-left-res-960-value="686" data-field-width-res-960-value="233"> <a class="tn-atom" href="#popup:experts">&#x425;&#x43E;&#x447;&#x443; &#x441;&#x442;&#x430;&#x442;&#x44C; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442;&#x43E;&#x43C;</a> </div> <div class="t396__elem tn-elem tn-elem__7891143001724358948128" data-elem-id="1724358948128" data-elem-type="text" data-field-top-value="34" data-field-left-value="49" data-field-width-value="367" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="32" data-field-left-res-320-value="12" data-field-left-res-960-value="39"> <div class="tn-atom" field="tn_text_1724358948128">&#x42D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442;&#x44B;</div> </div> </div> </div> <!-- /T396 --> </div> <div id="rec789120486" class="r t-rec t-rec_pt_30 t-rec_pt-res-480_15 t-rec_pb_45 t-rec_pb-res-480_0" style="padding-top:30px;padding-bottom:45px;background-color:#f8f8f8; " data-animationappear="off" data-record-type="396" data-bg-color="#f8f8f8"> <!-- T396 --> <div class="t396"> <div class="t396__artboard" data-artboard-recid="789120486" data-artboard-screens="320,480,640,960,1200" data-artboard-height="420" data-artboard-valign="center" data-artboard-upscale="grid" data-artboard-height-res-320="660" data-artboard-height-res-480="650" data-artboard-height-res-640="520" data-artboard-height-res-960="390"> <div class="t396__carrier" data-artboard-recid="789120486"></div> <div class="t396__filter" data-artboard-recid="789120486"></div> <div class="t396__elem tn-elem tn-elem__7891204861724358925451" data-elem-id="1724358925451" data-elem-type="shape" data-field-top-value="3" data-field-left-value="20" data-field-height-value="394" data-field-width-value="1163" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="3" data-field-left-res-320-value="-10" data-field-height-res-320-value="640" data-field-width-res-320-value="340" data-field-height-res-480-value="633" data-field-width-res-480-value="460" data-field-height-res-640-value="492" data-field-width-res-640-value="620" data-field-top-res-960-value="1" data-field-left-res-960-value="10" data-field-height-res-960-value="361" data-field-width-res-960-value="939"> <div class="tn-atom"> </div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724358948128" data-elem-id="1724358948128" data-elem-type="text" data-field-top-value="32" data-field-left-value="49" data-field-width-value="367" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="32" data-field-left-res-320-value="10" data-field-left-res-960-value="39"> <div class="tn-atom" field="tn_text_1724358948128">&#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724360070608" data-elem-id="1724360070608" data-elem-type="text" data-field-top-value="143" data-field-left-value="49" data-field-width-value="202" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="172" data-field-left-res-320-value="10" data-field-top-res-480-value="152" data-field-left-res-480-value="43" data-field-top-res-640-value="118" data-field-top-res-960-value="128" data-field-left-res-960-value="38"> <div class="tn-atom" field="tn_text_1724360070608">&#x42E;&#x43B;&#x438;&#x44F; &#x411;&#x430;&#x44F;&#x43D;&#x434;&#x438;&#x43D;&#x430;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724360070607" data-elem-id="1724360070607" data-elem-type="text" data-field-top-value="199" data-field-left-value="49" data-field-width-value="202" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="170" data-field-left-res-320-value="170" data-field-top-res-480-value="198" data-field-left-res-480-value="43" data-field-top-res-640-value="182" data-field-top-res-960-value="192" data-field-left-res-960-value="38"> <div class="tn-atom" field="tn_text_1724360070607">&#x422;&#x430;&#x442;&#x44C;&#x44F;&#x43D;&#x430; &#x41A;&#x443;&#x440;&#x430;&#x441;&#x43E;&#x432;&#x430;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724360070605" data-elem-id="1724360070605" data-elem-type="text" data-field-top-value="177" data-field-left-value="49" data-field-width-value="216" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="155" data-field-left-res-320-value="170" data-field-width-res-320-value="169" data-field-top-res-480-value="181" data-field-left-res-480-value="43" data-field-width-res-480-value="185" data-field-top-res-640-value="147" data-field-top-res-960-value="157" data-field-left-res-960-value="38" data-field-width-res-960-value="142"> <div class="tn-atom" field="tn_text_1724360070605">&#x420;&#x443;&#x43A;&#x43E;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x435;&#x43B;&#x44C; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724360070604" data-elem-id="1724360070604" data-elem-type="text" data-field-top-value="341" data-field-left-value="49" data-field-width-value="226" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="234" data-field-left-res-320-value="170" data-field-top-res-480-value="445" data-field-left-res-480-value="43" data-field-top-res-640-value="122" data-field-left-res-640-value="231" data-field-top-res-960-value="266" data-field-left-res-960-value="226"> <div class="tn-atom" field="tn_text_1724360070604">&#x420;&#x435;&#x43D;&#x430;&#x442; &#x428;&#x430;&#x433;&#x430;&#x431;&#x443;&#x442;&#x434;&#x438;&#x43D;&#x43E;&#x432;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724360070602" data-elem-id="1724360070602" data-elem-type="text" data-field-top-value="318" data-field-left-value="49" data-field-width-value="202" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="200" data-field-left-res-320-value="170" data-field-width-res-320-value="130" data-field-top-res-480-value="425" data-field-left-res-480-value="43" data-field-top-res-640-value="102" data-field-left-res-640-value="231" data-field-width-res-640-value="182" data-field-top-res-960-value="226" data-field-left-res-960-value="226" data-field-width-res-960-value="170"> <div class="tn-atom" field="tn_text_1724360070602">&#x42D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442; &#x438;&#xA0;&#x432;&#x434;&#x43E;&#x445;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724360070601" data-elem-id="1724360070601" data-elem-type="text" data-field-top-value="257" data-field-left-value="49" data-field-width-value="202" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="218" data-field-left-res-320-value="10" data-field-top-res-480-value="251" data-field-left-res-480-value="43" data-field-top-res-640-value="231" data-field-top-res-960-value="240" data-field-left-res-960-value="38"> <div class="tn-atom" field="tn_text_1724360070601">&#x41C;&#x430;&#x440;&#x438;&#x44F; &#x411;&#x430;&#x436;&#x435;&#x43D;&#x43E;&#x432;&#x430;<br>&#x41C;&#x430;&#x440;&#x438;&#x43D;&#x430; &#x41A;&#x43E;&#x432;&#x430;&#x43B;&#x435;&#x432;&#x430; </div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724360070599" data-elem-id="1724360070599" data-elem-type="text" data-field-top-value="235" data-field-left-value="49" data-field-width-value="202" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="199" data-field-left-res-320-value="10" data-field-top-res-480-value="232" data-field-left-res-480-value="43" data-field-top-res-640-value="211" data-field-top-res-960-value="221" data-field-left-res-960-value="38"> <div class="tn-atom" field="tn_text_1724360070599">&#x41C;&#x435;&#x442;&#x43E;&#x434;&#x438;&#x441;&#x442;&#x44B;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724360070598" data-elem-id="1724360070598" data-elem-type="text" data-field-top-value="144" data-field-left-value="531" data-field-width-value="202" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="279" data-field-left-res-320-value="170" data-field-top-res-480-value="564" data-field-left-res-480-value="48" data-field-top-res-640-value="412" data-field-left-res-640-value="230" data-field-top-res-960-value="132" data-field-left-res-960-value="425"> <div class="tn-atom" field="tn_text_1724360070598">&#x415;&#x43A;&#x430;&#x442;&#x435;&#x440;&#x438;&#x43D;&#x430; &#x424;&#x440;&#x438;&#x434;&#x435;&#x43B;&#x44C;<br>&#x413;&#x430;&#x43B;&#x430; &#x420;&#x44B;&#x436;&#x438;&#x43A;&#x43E;&#x432;&#x430;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724360070596" data-elem-id="1724360070596" data-elem-type="text" data-field-top-value="124" data-field-left-value="531" data-field-width-value="202" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="262" data-field-left-res-320-value="170" data-field-top-res-480-value="544" data-field-left-res-480-value="48" data-field-top-res-640-value="392" data-field-left-res-640-value="230" data-field-top-res-960-value="112" data-field-left-res-960-value="425"> <div class="tn-atom" field="tn_text_1724360070596">&#x41C;&#x435;&#x43D;&#x435;&#x434;&#x436;&#x435;&#x440;&#x44B;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724360070595" data-elem-id="1724360070595" data-elem-type="text" data-field-top-value="241" data-field-left-value="531" data-field-width-value="202" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="405" data-field-left-res-320-value="10" data-field-top-res-480-value="170" data-field-left-res-480-value="278" data-field-top-res-640-value="139" data-field-left-res-640-value="433" data-field-top-res-960-value="226" data-field-left-res-960-value="425"> <div class="tn-atom" field="tn_text_1724360070595">&#x414;&#x430;&#x440;&#x44C;&#x44F; &#x417;&#x443;&#x434;&#x438;&#x43D;&#x430; <br>&#x41D;&#x430;&#x442;&#x430;&#x43B;&#x44C;&#x44F; &#x412;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x441;&#x43A;&#x430;&#x44F; <br>&#x411;&#x43E;&#x433;&#x430;&#x442;&#x44B;&#x440;&#x435;&#x432;&#x430; &#x412;&#x430;&#x43B;&#x435;&#x440;&#x438;&#x44F;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724360070593" data-elem-id="1724360070593" data-elem-type="text" data-field-top-value="202" data-field-left-value="531" data-field-width-value="202" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="372" data-field-left-res-320-value="10" data-field-width-res-320-value="140" data-field-top-res-480-value="133" data-field-left-res-480-value="278" data-field-top-res-640-value="102" data-field-left-res-640-value="433" data-field-top-res-960-value="187" data-field-left-res-960-value="425" data-field-width-res-960-value="177"> <div class="tn-atom" field="tn_text_1724360070593">&#x412;&#x435;&#x434;&#x443;&#x449;&#x438;&#x435; &#x438;&#xA0;&#x43A;&#x43E;&#x43E;&#x440;&#x434;&#x438;&#x43D;&#x430;&#x442;&#x43E;&#x440;&#x44B;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724360070592" data-elem-id="1724360070592" data-elem-type="text" data-field-top-value="121" data-field-left-value="294" data-field-width-value="202" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="267" data-field-left-res-320-value="10" data-field-top-res-480-value="304" data-field-left-res-480-value="43" data-field-top-res-640-value="287" data-field-left-res-640-value="36" data-field-top-res-960-value="109" data-field-left-res-960-value="226"> <div class="tn-atom" field="tn_text_1724360070592">&#x41F;&#x440;&#x43E;&#x434;&#x44E;&#x441;&#x435;&#x440;&#x44B; &#x43A;&#x443;&#x440;&#x441;&#x43E;&#x432;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724360070590" data-elem-id="1724360070590" data-elem-type="text" data-field-top-value="145" data-field-left-value="294" data-field-width-value="202" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="287" data-field-left-res-320-value="10" data-field-width-res-320-value="148" data-field-top-res-480-value="324" data-field-left-res-480-value="43" data-field-top-res-640-value="308" data-field-left-res-640-value="36" data-field-top-res-960-value="131" data-field-left-res-960-value="226"> <div class="tn-atom" field="tn_text_1724360070590">&#x41D;&#x430;&#x434;&#x435;&#x436;&#x434;&#x430; &#x418;&#x432;&#x430;&#x43D;&#x43E;&#x432;&#x430;<br>&#x410;&#x43B;&#x435;&#x43A;&#x441;&#x430;&#x43D;&#x434;&#x440;&#x430; &#x421;&#x43C;&#x438;&#x440;&#x43D;&#x43E;&#x432;&#x430;<br>&#x41A;&#x441;&#x435;&#x43D;&#x438;&#x44F; &#x424;&#x438;&#x43B;&#x438;&#x43C;&#x43E;&#x43D;&#x43E;&#x432;&#x430;<br>&#x41E;&#x43B;&#x44C;&#x433;&#x430; &#x421;&#x430;&#x43A;&#x43E;&#x432;&#x438;&#x447;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724360070587" data-elem-id="1724360070587" data-elem-type="text" data-field-top-value="179" data-field-left-value="750" data-field-width-value="202" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="516" data-field-left-res-320-value="10" data-field-top-res-480-value="291" data-field-left-res-480-value="278" data-field-top-res-640-value="206" data-field-left-res-640-value="231" data-field-top-res-960-value="158" data-field-left-res-960-value="601"> <div class="tn-atom" field="tn_text_1724360070587">&#x414;&#x438;&#x437;&#x430;&#x439;&#x43D;&#x435;&#x440;&#x44B; &#x43A;&#x443;&#x440;&#x441;&#x43E;&#x432;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724360070585" data-elem-id="1724360070585" data-elem-type="text" data-field-top-value="202" data-field-left-value="750" data-field-width-value="202" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="535" data-field-left-res-320-value="10" data-field-top-res-480-value="310" data-field-left-res-480-value="278" data-field-top-res-640-value="226" data-field-left-res-640-value="231" data-field-top-res-960-value="177" data-field-left-res-960-value="601"> <div class="tn-atom" field="tn_text_1724360070585">&#x410;&#x43B;&#x438;&#x43D;&#x430; &#x410;&#x433;&#x430;&#x43F;&#x438;&#x442;&#x43E;&#x432;&#x430;<br>&#x418;&#x440;&#x438;&#x43D;&#x430; &#x41A;&#x438;&#x43C;<br>&#x415;&#x43A;&#x430;&#x442;&#x435;&#x440;&#x438;&#x43D;&#x430; &#x41F;&#x438;&#x441;&#x430;&#x440;&#x435;&#x432;&#x430;<br>&#x414;&#x430;&#x440;&#x44C;&#x44F; &#x41B;&#x438;&#x445;&#x430;&#x447;&#x435;&#x432;&#x430;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724360070583" data-elem-id="1724360070583" data-elem-type="text" data-field-top-value="144" data-field-left-value="750" data-field-width-value="202" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="491" data-field-left-res-320-value="10" data-field-top-res-480-value="263" data-field-left-res-480-value="278" data-field-top-res-640-value="173" data-field-left-res-640-value="231" data-field-top-res-960-value="130" data-field-left-res-960-value="601"> <div class="tn-atom" field="tn_text_1724360070583">&#x415;&#x432;&#x433;&#x435;&#x43D;&#x438;&#x44F; &#x421;&#x430;&#x432;&#x43A;&#x438;&#x43D;&#x430;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724360070581" data-elem-id="1724360070581" data-elem-type="text" data-field-top-value="122" data-field-left-value="750" data-field-width-value="202" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="472" data-field-left-res-320-value="10" data-field-top-res-480-value="243" data-field-left-res-480-value="278" data-field-top-res-640-value="153" data-field-left-res-640-value="231" data-field-top-res-960-value="110" data-field-left-res-960-value="601"> <div class="tn-atom" field="tn_text_1724360070581">&#x41A;&#x440;&#x435;&#x430;&#x442;&#x438;&#x432;&#x43D;&#x44B;&#x439; &#x434;&#x438;&#x440;&#x435;&#x43A;&#x442;&#x43E;&#x440;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724360070580" data-elem-id="1724360070580" data-elem-type="text" data-field-top-value="200" data-field-left-value="977" data-field-width-value="186" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="456" data-field-left-res-320-value="170" data-field-top-res-480-value="478" data-field-left-res-480-value="278" data-field-top-res-640-value="296" data-field-left-res-640-value="433" data-field-top-res-960-value="179" data-field-left-res-960-value="789"> <div class="tn-atom" field="tn_text_1724360070580">&#x410;&#x43D;&#x44F; &#x416;&#x430;&#x43C;&#x44C;&#x44F;&#x43D;&#x43E;&#x432;&#x430;<br>&#x410;&#x43D;&#x442;&#x43E;&#x43D; &#x411;&#x430;&#x445;&#x430;&#x440;&#x435;&#x432;<br>&#x41A;&#x430;&#x442;&#x44F; &#x429;&#x435;&#x442;&#x438;&#x43D;&#x438;&#x43D;&#x430;<br>&#x41A;&#x430;&#x442;&#x44F; &#x423;&#x448;&#x430;&#x445;&#x438;&#x43D;&#x430;<br>&#x41B;&#x435;&#x43D;&#x430; &#x418;&#x441;&#x443;&#x43F;&#x43E;&#x432;&#x430;<br>&#x41C;&#x430;&#x448;&#x430; &#x420;&#x443;&#x441;&#x430;&#x43A;&#x43E;&#x432;&#x430;<br>&#x410;&#x43B;&#x435;&#x43A;&#x441;&#x435;&#x439; &#x417;&#x44B;&#x433;&#x43C;&#x43E;&#x43D;&#x442;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724360070577" data-elem-id="1724360070577" data-elem-type="text" data-field-top-value="178" data-field-left-value="977" data-field-width-value="186" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="437" data-field-left-res-320-value="170" data-field-top-res-480-value="459" data-field-left-res-480-value="278" data-field-top-res-640-value="276" data-field-left-res-640-value="433" data-field-top-res-960-value="160" data-field-left-res-960-value="789"> <div class="tn-atom" field="tn_text_1724360070577">&#x41A;&#x43E;&#x43F;&#x438;&#x440;&#x430;&#x439;&#x442;&#x435;&#x440;&#x44B;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724360070575" data-elem-id="1724360070575" data-elem-type="text" data-field-top-value="275" data-field-left-value="294" data-field-width-value="186" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="344" data-field-left-res-320-value="170" data-field-top-res-480-value="492" data-field-left-res-480-value="43" data-field-top-res-640-value="342" data-field-left-res-640-value="231" data-field-top-res-960-value="289" data-field-left-res-960-value="601"> <div class="tn-atom" field="tn_text_1724360070575">&#x41A;&#x441;&#x435;&#x43D;&#x438;&#x44F; &#x413;&#x430;&#x43B;&#x43A;&#x438;&#x43D;&#x430;<br>&#x410;&#x43D;&#x430;&#x441;&#x442;&#x430;&#x441;&#x438;&#x44F; &#x412;&#x430;&#x44E;&#x43A;&#x438;&#x43D;&#x430;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724360070573" data-elem-id="1724360070573" data-elem-type="text" data-field-top-value="254" data-field-left-value="294" data-field-width-value="186" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="326" data-field-left-res-320-value="170" data-field-top-res-480-value="474" data-field-left-res-480-value="43" data-field-top-res-640-value="322" data-field-left-res-640-value="231" data-field-top-res-960-value="271" data-field-left-res-960-value="601"> <div class="tn-atom" field="tn_text_1724360070573">&#x41F;&#x440;&#x43E;&#x434;&#x432;&#x438;&#x436;&#x435;&#x43D;&#x438;&#x435;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724360070570" data-elem-id="1724360070570" data-elem-type="text" data-field-top-value="121" data-field-left-value="49" data-field-width-value="202" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="153" data-field-left-res-320-value="10" data-field-top-res-480-value="133" data-field-left-res-480-value="43" data-field-top-res-640-value="99" data-field-top-res-960-value="109" data-field-left-res-960-value="38"> <div class="tn-atom" field="tn_text_1724360070570">&#x41F;&#x430;&#x440;&#x442;&#x43D;&#x435;&#x440; &#x438; &#x441;&#x43E;&#x434;&#x438;&#x440;&#x435;&#x43A;&#x442;&#x43E;&#x440;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861724360070565" data-elem-id="1724360070565" data-elem-type="text" data-field-top-value="52" data-field-left-value="47" data-field-width-value="778" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="53" data-field-left-res-320-value="9" data-field-width-res-320-value="300" data-field-top-res-480-value="54" data-field-width-res-480-value="360" data-field-top-res-640-value="52" data-field-left-res-640-value="38" data-field-top-res-960-value="49" data-field-left-res-960-value="39"> <div class="tn-atom" field="tn_text_1724360070565">&#x422;&#x435;, &#x43A;&#x442;&#x43E; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435; &#x441;&#xA0;&#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442;&#x430;&#x43C;&#x438; &#x434;&#x435;&#x43B;&#x430;&#x435;&#x442; &#x43A;&#x443;&#x440;&#x441;&#x44B;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861725376160261" data-elem-id="1725376160261" data-elem-type="text" data-field-top-value="144" data-field-left-value="977" data-field-width-value="202" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="411" data-field-left-res-320-value="170" data-field-top-res-480-value="426" data-field-left-res-480-value="278" data-field-top-res-640-value="240" data-field-left-res-640-value="433" data-field-top-res-960-value="130" data-field-left-res-960-value="790"> <div class="tn-atom" field="tn_text_1725376160261">&#x410;&#x43B;&#x435;&#x43D;&#x430; &#x41B;&#x435;&#x43F;&#x438;&#x43B;&#x438;&#x43D;&#x430;</div> </div> <div class="t396__elem tn-elem tn-elem__7891204861725376160265" data-elem-id="1725376160265" data-elem-type="text" data-field-top-value="122" data-field-left-value="977" data-field-width-value="202" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="392" data-field-left-res-320-value="170" data-field-top-res-480-value="406" data-field-left-res-480-value="278" data-field-top-res-640-value="220" data-field-left-res-640-value="433" data-field-top-res-960-value="110" data-field-left-res-960-value="790"> <div class="tn-atom" field="tn_text_1725376160265">&#x413;&#x43B;&#x430;&#x432;&#x43D;&#x44B;&#x439; &#x440;&#x435;&#x434;&#x430;&#x43A;&#x442;&#x43E;&#x440; </div> </div> </div> </div> <!-- /T396 --> </div> <div id="rec789109975" class="r t-rec t-rec_pt_15 t-rec_pb_60" style="padding-top:15px;padding-bottom:60px;background-color:#f8f8f8; " data-animationappear="off" data-record-type="396" data-bg-color="#f8f8f8"> <!-- T396 --> <div class="t396"> <div class="t396__artboard" data-artboard-recid="789109975" data-artboard-screens="320,480,640,960,1200" data-artboard-height="200" data-artboard-valign="center" data-artboard-upscale="grid" data-artboard-height-res-320="440" data-artboard-height-res-480="340" data-artboard-height-res-640="200"> <div class="t396__carrier" data-artboard-recid="789109975"></div> <div class="t396__filter" data-artboard-recid="789109975"></div> <div class="t396__elem tn-elem tn-elem__7891099751724319114002" data-elem-id="1724319114002" data-elem-type="text" data-field-top-value="116" data-field-left-value="19" data-field-width-value="328" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="337" data-field-top-res-480-value="226" data-field-top-res-640-value="109" data-field-width-res-640-value="120" data-field-left-res-960-value="9"> <div class="tn-atom" field="tn_text_1724319114002">&#x41E;&#x437;&#x43D;&#x430;&#x43A;&#x43E;&#x43C;&#x438;&#x442;&#x44C;&#x441;&#x44F; <a href="https://www.mann-ivanov-ferber.ru/oferta-na-okazanie-platnyh-uslug/" target="_blank" rel="noreferrer noopener" style="color: rgb(166, 166, 166);">&#x441; &#x43E;&#x444;&#x435;&#x440;&#x442;&#x43E;&#x439;</a></div> </div> <div class="t396__elem tn-elem tn-elem__7891099751724333060627" data-elem-id="1724333060627" data-elem-type="shape" data-field-top-value="85" data-field-left-value="20" data-field-height-value="1" data-field-width-value="1160" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="198" data-field-left-res-320-value="14" data-field-width-res-320-value="293" data-field-top-res-480-value="156" data-field-left-res-480-value="11" data-field-width-res-480-value="457" data-field-top-res-640-value="88" data-field-left-res-640-value="10" data-field-width-res-640-value="620" data-field-left-res-960-value="11" data-field-width-res-960-value="939"> <div class="tn-atom"> </div> </div> <div class="t396__elem tn-elem tn-elem__7891099751724362238856" data-elem-id="1724362238856" data-elem-type="button" data-field-top-value="13" data-field-left-value="19" data-field-height-value="55" data-field-width-value="266" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="19" data-field-left-res-320-value="10" data-field-height-res-320-value="53" data-field-width-res-320-value="199" data-field-top-res-480-value="15" data-field-width-res-480-value="151" data-field-top-res-640-value="12" data-field-height-res-640-value="60" data-field-width-res-640-value="109" data-field-left-res-960-value="10" data-field-height-res-960-value="56" data-field-width-res-960-value="229"> <a class="tn-atom" href="https://www.mann-ivanov-ferber.ru/courses/books-and-texts/" target="_blank">&#xAB;&#x41A;&#x43D;&#x438;&#x436;&#x43D;&#x44B;&#x435;&#xBB; &#x43F;&#x440;&#x43E;&#x444;&#x435;&#x441;&#x441;&#x438;&#x438;</a> </div> <div class="t396__elem tn-elem tn-elem__7891099751724362306767" data-elem-id="1724362306767" data-elem-type="button" data-field-top-value="13" data-field-left-value="499" data-field-height-value="55" data-field-width-value="224" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="125" data-field-left-res-320-value="10" data-field-height-res-320-value="53" data-field-width-res-320-value="165" data-field-top-res-480-value="80" data-field-left-res-480-value="9" data-field-width-res-480-value="178" data-field-top-res-640-value="12" data-field-left-res-640-value="223" data-field-height-res-640-value="60" data-field-width-res-640-value="110" data-field-left-res-960-value="406" data-field-height-res-960-value="56" data-field-width-res-960-value="181"> <a class="tn-atom" href="https://www.mann-ivanov-ferber.ru/courses/career-and-business" target="_blank">&#x41A;&#x430;&#x440;&#x44C;&#x435;&#x440;&#x430; &#x438; &#x431;&#x438;&#x437;&#x43D;&#x435;&#x441;</a> </div> <div class="t396__elem tn-elem tn-elem__7891099751724362302349" data-elem-id="1724362302349" data-elem-type="button" data-field-top-value="13" data-field-left-value="285" data-field-height-value="55" data-field-width-value="214" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="72" data-field-left-res-320-value="125" data-field-height-res-320-value="53" data-field-width-res-320-value="146" data-field-top-res-480-value="15" data-field-left-res-480-value="161" data-field-width-res-480-value="180" data-field-top-res-640-value="12" data-field-left-res-640-value="119" data-field-height-res-640-value="60" data-field-width-res-640-value="104" data-field-left-res-960-value="239" data-field-height-res-960-value="56" data-field-width-res-960-value="167"> <a class="tn-atom" href="https://www.mann-ivanov-ferber.ru/courses/psychology-and-health" target="_blank">&#x414;&#x443;&#x448;&#x430;, &#x443;&#x43C; &#x438; &#x442;&#x435;&#x43B;&#x43E;</a> </div> <div class="t396__elem tn-elem tn-elem__7891099751724362309473" data-elem-id="1724362309473" data-elem-type="button" data-field-top-value="13" data-field-left-value="723" data-field-height-value="55" data-field-width-value="157" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="19" data-field-left-res-320-value="209" data-field-height-res-320-value="53" data-field-width-res-320-value="104" data-field-top-res-480-value="14" data-field-left-res-480-value="341" data-field-width-res-480-value="130" data-field-top-res-640-value="12" data-field-left-res-640-value="331" data-field-height-res-640-value="60" data-field-width-res-640-value="99" data-field-left-res-960-value="587" data-field-height-res-960-value="56" data-field-width-res-960-value="127"> <a class="tn-atom" href="https://www.mann-ivanov-ferber.ru/courses/lectures" target="_blank">&#x41B;&#x435;&#x43A;&#x442;&#x43E;&#x440;&#x438;&#x438;</a> </div> <div class="t396__elem tn-elem tn-elem__7891099751724362313779" data-elem-id="1724362313779" data-elem-type="button" data-field-top-value="13" data-field-left-value="880" data-field-height-value="55" data-field-width-value="163" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="72" data-field-left-res-320-value="10" data-field-height-res-320-value="53" data-field-width-res-320-value="115" data-field-top-res-480-value="80" data-field-left-res-480-value="187" data-field-width-res-480-value="141" data-field-top-res-640-value="12" data-field-left-res-640-value="429" data-field-height-res-640-value="60" data-field-width-res-640-value="105" data-field-left-res-960-value="714" data-field-height-res-960-value="56" data-field-width-res-960-value="124"> <a class="tn-atom" href="https://www.mann-ivanov-ferber.ru/courses/free" target="_blank">&#x411;&#x435;&#x441;&#x43F;&#x43B;&#x430;&#x442;&#x43D;&#x43E;</a> </div> <div class="t396__elem tn-elem tn-elem__7891099751724667229973" data-elem-id="1724667229973" data-elem-type="text" data-field-top-value="113" data-field-left-value="748" data-field-width-value="298" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-field-top-res-320-value="222" data-field-left-res-320-value="10" data-field-width-res-320-value="299" data-field-top-res-480-value="179" data-field-left-res-480-value="265" data-field-width-res-480-value="143" data-field-top-res-640-value="108" data-field-left-res-640-value="301" data-field-width-res-640-value="168" data-field-top-res-960-value="115" data-field-left-res-960-value="522"> <div class="tn-atom" field="tn_text_1724667229973">&#x420;&#x430;&#x441;&#x441;&#x44B;&#x43B;&#x43A;&#x430; &#x43E; &#x43D;&#x43E;&#x432;&#x44B;&#x445; &#x43A;&#x443;&#x440;&#x441;&#x430;&#x445; &#x438; &#x441;&#x43A;&#x438;&#x434;&#x43A;&#x430;&#x445;</div> </div> <div class="t396__elem tn-elem tn-elem__7891099751724667229972" data-elem-id="1724667229972" data-elem-type="button" data-field-top-value="103" data-field-left-value="1030" data-field-height-value="41" data-field-width-value="151" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="252" data-field-left-res-320-value="10" data-field-height-res-320-value="47" data-field-width-res-320-value="300" data-field-top-res-480-value="226" data-field-left-res-480-value="265" data-field-width-res-480-value="206" data-field-top-res-640-value="111" data-field-left-res-640-value="447" data-field-width-res-640-value="184" data-field-top-res-960-value="105" data-field-left-res-960-value="799" data-field-width-res-960-value="153"> <a class="tn-atom" href="#popup:zapis">&#x41F;&#x43E;&#x434;&#x43F;&#x438;&#x441;&#x430;&#x442;&#x44C;&#x441;&#x44F;</a> </div> <div class="t396__elem tn-elem tn-elem__7891099751724667229970 " data-elem-id="1724667229970" data-elem-type="image" data-field-top-value="104" data-field-left-value="613" data-field-width-value="38" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-animate-sbs-event="hover" data-animate-sbs-opts="[{&apos;mx&apos;:0,&apos;my&apos;:0,&apos;sx&apos;:1,&apos;sy&apos;:1,&apos;op&apos;:1,&apos;ro&apos;:0,&apos;ti&apos;:0,&apos;ea&apos;:&apos;0&apos;,&apos;dt&apos;:0},{&apos;mx&apos;:0,&apos;my&apos;:0,&apos;sx&apos;:1,&apos;sy&apos;:1,&apos;op&apos;:0.7,&apos;ro&apos;:0,&apos;ti&apos;:150,&apos;ea&apos;:&apos;0&apos;,&apos;dt&apos;:0}]" data-field-top-res-320-value="335" data-field-left-res-320-value="205" data-field-width-res-320-value="44" data-field-top-res-480-value="178" data-field-left-res-480-value="10" data-field-top-res-640-value="108" data-field-left-res-640-value="174" data-field-top-res-960-value="106" data-field-left-res-960-value="367"> <a class="tn-atom" href="https://vk.com/mifcourses" target="_blank"> <img class="tn-atom__img t-img" data-original="https://static.tildacdn.com/tild3035-3439-4532-b838-393839656131/vk.svg" alt imgfield="tn_img_1724667229970"> </a> </div> <div class="t396__elem tn-elem tn-elem__7891099751724667229965 " data-elem-id="1724667229965" data-elem-type="image" data-field-top-value="104" data-field-left-value="659" data-field-width-value="39" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value data-field-widthunits-value="px" data-animate-sbs-event="hover" data-animate-sbs-opts="[{&apos;mx&apos;:0,&apos;my&apos;:0,&apos;sx&apos;:1,&apos;sy&apos;:1,&apos;op&apos;:1,&apos;ro&apos;:0,&apos;ti&apos;:0,&apos;ea&apos;:&apos;0&apos;,&apos;dt&apos;:0},{&apos;mx&apos;:0,&apos;my&apos;:0,&apos;sx&apos;:1,&apos;sy&apos;:1,&apos;op&apos;:0.7,&apos;ro&apos;:0,&apos;ti&apos;:150,&apos;ea&apos;:&apos;0&apos;,&apos;dt&apos;:0}]" data-field-top-res-320-value="335" data-field-left-res-320-value="264" data-field-width-res-320-value="46" data-field-top-res-480-value="178" data-field-left-res-480-value="56" data-field-top-res-640-value="108" data-field-left-res-640-value="220" data-field-top-res-960-value="106" data-field-left-res-960-value="413"> <a class="tn-atom" href="https://t.me/MIFcourses" target="_blank"> <img class="tn-atom__img t-img" data-original="https://static.tildacdn.com/tild3466-3731-4065-a539-633538626437/tg.svg" alt imgfield="tn_img_1724667229965"> </a> </div> <div class="t396__elem tn-elem tn-elem__7891099751724760544151" data-elem-id="1724760544151" data-elem-type="button" data-field-top-value="12" data-field-left-value="1042" data-field-height-value="56" data-field-width-value="138" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="125" data-field-left-res-320-value="175" data-field-height-res-320-value="53" data-field-width-res-320-value="119" data-field-top-res-480-value="80" data-field-left-res-480-value="327" data-field-width-res-480-value="141" data-field-top-res-640-value="12" data-field-left-res-640-value="532" data-field-height-res-640-value="60" data-field-width-res-640-value="99" data-field-top-res-960-value="13" data-field-left-res-960-value="838" data-field-height-res-960-value="56" data-field-width-res-960-value="115"> <a class="tn-atom" href="https://www.mann-ivanov-ferber.ru/courses/all" target="_blank">&#x412;&#x441;&#x435; &#x43A;&#x443;&#x440;&#x441;&#x44B;</a> </div> </div> </div> <!-- /T396 --> </div> <div id="rec789246185" class="r t-rec" style=" " data-animationappear="off" data-record-type="702"> <!-- T702 --> <div class="t702"> <div class="t-popup" data-tooltip-hook="#popup:experts" role="dialog" aria-modal="true" tabindex="-1" aria-label="&#x425;&#x43E;&#x447;&#x443; &#x441;&#x442;&#x430;&#x442;&#x44C; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442;&#x43E;&#x43C; &#x43A;&#x443;&#x440;&#x441;&#x43E;&#x432;"> <div class="t-popup__close t-popup__block-close"> <button type="button" class="t-popup__close-wrapper t-popup__block-close-button" aria-label="&#x417;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44C; &#x434;&#x438;&#x430;&#x43B;&#x43E;&#x433;&#x43E;&#x432;&#x43E;&#x435; &#x43E;&#x43A;&#x43D;&#x43E;"> <svg role="presentation" class="t-popup__close-icon" width="23px" height="23px" viewBox="0 0 23 23" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink"> <g stroke="none" stroke-width="1" fill="#fff" fill-rule="evenodd"> <rect transform="translate(11.313708, 11.313708) rotate(-45.000000) translate(-11.313708, -11.313708) " x="10.3137085" y="-3.6862915" width="2" height="30"/> <rect transform="translate(11.313708, 11.313708) rotate(-315.000000) translate(-11.313708, -11.313708) " x="10.3137085" y="-3.6862915" width="2" height="30"/> </g> </svg> </button> </div> <div class="t-popup__container t-width t-width_7"> <div class="t702__wrapper"> <div class="t702__text-wrapper t-align_left"> <div class="t702__title t-title t-title_xxs" id="popuptitle_789246185">&#x425;&#x43E;&#x447;&#x443; &#x441;&#x442;&#x430;&#x442;&#x44C; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442;&#x43E;&#x43C; &#x43A;&#x443;&#x440;&#x441;&#x43E;&#x432;</div> <div class="t702__descr t-descr t-descr_xs">&#x415;&#x441;&#x43B;&#x438; &#x432;&#x44B; &#x445;&#x43E;&#x442;&#x438;&#x442;&#x435; &#x43F;&#x440;&#x435;&#x434;&#x43B;&#x43E;&#x436;&#x438;&#x442;&#x44C; &#x41C;&#x418;&#x424;&#x443; &#x441;&#x432;&#x43E;&#x439; &#x43A;&#x443;&#x440;&#x441; &#x438;&#x43B;&#x438; &#x441;&#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; &#x43A;&#x443;&#x440;&#x441; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435; &#x441; &#x43D;&#x430;&#x43C;&#x438;, &#x43D;&#x430;&#x43F;&#x438;&#x448;&#x438;&#x442;&#x435; &#x43D;&#x430;&#x43C; &#x43D;&#x430; &#x43F;&#x43E;&#x447;&#x442;&#x443; <a href="mailto:mifcourses@mann-ivanov-ferber.ru" target="_blank" rel="noreferrer noopener">mifcourses@m-i-f.ru</a> &#x438;&#x43B;&#x438; &#x447;&#x435;&#x440;&#x435;&#x437; &#x444;&#x43E;&#x440;&#x43C;&#x443; &#x43D;&#x438;&#x436;&#x435;. &#x41C;&#x44B; &#x43E;&#x442;&#x432;&#x435;&#x442;&#x438;&#x43C;, &#x435;&#x441;&#x43B;&#x438; &#x432;&#x430;&#x448;&#x430; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442;&#x438;&#x437;&#x430; &#x43D;&#x430;&#x441; &#x437;&#x430;&#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x443;&#x435;&#x442;.</div> </div> <form id="form789246185" name="form789246185" role="form" action method="POST" data-formactiontype="2" data-inputbox=".t-input-group" class="t-form js-form-proccess t-form_inputs-total_5 " data-success-callback="t702_onSuccess"> <input type="hidden" name="formservices[]" value="1fd962b7b62af80c993ce0ceebef4bf9" class="js-formaction-services"> <input type="hidden" name="tildaspec-formname" tabindex="-1" value="&#x421;&#x442;&#x430;&#x442;&#x44C; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442;&#x43E;&#x43C; &#x43A;&#x443;&#x440;&#x441;&#x43E;&#x432;"> <div class="js-successbox t-form__successbox t-text t-text_md" aria-live="polite" style="display:none;color:#192b21;" data-success-message="&#x421;&#x43F;&#x430;&#x441;&#x438;&#x431;&#x43E;! &#x417;&#x430;&#x44F;&#x432;&#x43A;&#x430; &#x43E;&#x442;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x430;"></div> <div class="t-form__inputsbox t-form__inputsbox_vertical-form t-form__inputsbox_inrow"> <div class=" t-input-group t-input-group_nm " data-input-lid="0506215262381" data-field-type="nm" data-field-name="Name"> <label for="input_0506215262381" class="t-input-title t-descr t-descr_md" id="field-title_0506215262381" data-redactor-toolbar="no" field="li_title__0506215262381" style="color:;font-weight:400;font-family: &apos;Circe&apos;;">&#x412;&#x430;&#x448;&#x435; &#x438;&#x43C;&#x44F;</label> <div class="t-input-block " style="border-radius:5px;"> <input type="text" autocomplete="name" name="Name" id="input_0506215262381" class="t-input js-tilda-rule" value placeholder="&#x41D;&#x430;&#x43F;&#x438;&#x448;&#x438;&#x442;&#x435; &#x432;&#x430;&#x448;&#x435; &#x438;&#x43C;&#x44F; &#x438; &#x444;&#x430;&#x43C;&#x438;&#x43B;&#x438;&#x44E;" data-tilda-req="1" aria-required="true" data-tilda-rule="name" aria-describedby="error_0506215262381" style="color:#000000;border:1px solid #c9c9c9;border-radius:5px;font-family:&apos;Circe&apos;;font-weight:400;"> </div> <div class="t-input-error" aria-live="polite" id="error_0506215262381"></div> </div> <div class=" t-input-group t-input-group_em " data-input-lid="0506215262380" data-field-type="em" data-field-name="Email"> <label for="input_0506215262380" class="t-input-title t-descr t-descr_md" id="field-title_0506215262380" data-redactor-toolbar="no" field="li_title__0506215262380" style="color:;font-weight:400;font-family: &apos;Circe&apos;;">&#x42D;&#x43B;&#x435;&#x43A;&#x442;&#x440;&#x43E;&#x43D;&#x43D;&#x430;&#x44F; &#x43F;&#x43E;&#x447;&#x442;&#x430;</label> <div class="t-input-block " style="border-radius:5px;"> <input type="email" autocomplete="email" name="Email" id="input_0506215262380" class="t-input js-tilda-rule" value placeholder="&#x412;&#x430;&#x448; email" data-tilda-req="1" aria-required="true" data-tilda-rule="email" aria-describedby="error_0506215262380" style="color:#000000;border:1px solid #c9c9c9;border-radius:5px;font-family:&apos;Circe&apos;;font-weight:400;"> </div> <div class="t-input-error" aria-live="polite" id="error_0506215262380"></div> </div> <div class=" t-input-group t-input-group_ur " data-input-lid="0506215262382" data-field-type="ur" data-field-name="&#x421;&#x441;&#x44B;&#x43B;&#x43A;&#x430; &#x43D;&#x430; &#x441;&#x430;&#x439;&#x442;/&#x441;&#x43E;&#x446;&#x441;&#x435;&#x442;&#x438;"> <label for="input_0506215262382" class="t-input-title t-descr t-descr_md" id="field-title_0506215262382" data-redactor-toolbar="no" field="li_title__0506215262382" style="color:;font-weight:400;font-family: &apos;Circe&apos;;">&#x421;&#x441;&#x44B;&#x43B;&#x43A;&#x430; &#x43D;&#x430; &#x441;&#x430;&#x439;&#x442;/&#x441;&#x43E;&#x446;&#x441;&#x435;&#x442;&#x438;</label> <div class="t-input-block " style="border-radius:5px;"> <input type="url" name="&#x421;&#x441;&#x44B;&#x43B;&#x43A;&#x430; &#x43D;&#x430; &#x441;&#x430;&#x439;&#x442;/&#x441;&#x43E;&#x446;&#x441;&#x435;&#x442;&#x438;" id="input_0506215262382" class="t-input js-tilda-rule" value placeholder="&#x412;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; &#x441;&#x441;&#x44B;&#x43B;&#x43A;&#x443;" data-tilda-rule="url" style="color:#000000;border:1px solid #c9c9c9;border-radius:5px;font-family:&apos;Circe&apos;;font-weight:400;"> </div> <div class="t-input-error" aria-live="polite" id="error_0506215262382"></div> </div> <div class=" t-input-group t-input-group_ta " data-input-lid="1724403330285" data-field-type="ta" data-field-name="&#x41E; &#x447;&#x435;&#x43C; &#x445;&#x43E;&#x442;&#x438;&#x442;&#x435; &#x441;&#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; &#x43A;&#x443;&#x440;&#x441;?"> <label for="input_1724403330285" class="t-input-title t-descr t-descr_md" id="field-title_1724403330285" data-redactor-toolbar="no" field="li_title__1724403330285" style="color:;font-weight:400;font-family: &apos;Circe&apos;;">&#x41E; &#x447;&#x435;&#x43C; &#x445;&#x43E;&#x442;&#x438;&#x442;&#x435; &#x441;&#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; &#x43A;&#x443;&#x440;&#x441;?</label> <div class="t-input-block " style="border-radius:5px;"> <textarea name="&#x41E; &#x447;&#x435;&#x43C; &#x445;&#x43E;&#x442;&#x438;&#x442;&#x435; &#x441;&#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; &#x43A;&#x443;&#x440;&#x441;?" id="input_1724403330285" class="t-input js-tilda-rule" placeholder="&#x41D;&#x430;&#x43F;&#x438;&#x448;&#x438;&#x442;&#x435; &#x442;&#x435;&#x43C;&#x443;" data-tilda-req="1" aria-required="true" aria-describedby="error_1724403330285" style="color:#000000;border:1px solid #c9c9c9;border-radius:5px;font-family:&apos;Circe&apos;;font-weight:400;height:68px;" rows="2"></textarea> </div> <div class="t-input-error" aria-live="polite" id="error_1724403330285"></div> </div> <div class=" t-input-group t-input-group_ta " data-input-lid="1724403373063" data-field-type="ta" data-field-name="&#x412;&#x430;&#x448;&#x430; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442;&#x438;&#x437;&#x430; &#x432; &#x442;&#x435;&#x43C;&#x435;"> <label for="input_1724403373063" class="t-input-title t-descr t-descr_md" id="field-title_1724403373063" data-redactor-toolbar="no" field="li_title__1724403373063" style="color:;font-weight:400;font-family: &apos;Circe&apos;;">&#x412;&#x430;&#x448;&#x430; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442;&#x438;&#x437;&#x430; &#x432; &#x442;&#x435;&#x43C;&#x435;</label> <div class="t-input-block " style="border-radius:5px;"> <textarea name="&#x412;&#x430;&#x448;&#x430; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x442;&#x438;&#x437;&#x430; &#x432; &#x442;&#x435;&#x43C;&#x435;" id="input_1724403373063" class="t-input js-tilda-rule" placeholder="&#x41E;&#x431;&#x440;&#x430;&#x437;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435;, &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;, &#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x44B;&#x435; &#x43F;&#x440;&#x43E;&#x435;&#x43A;&#x442;&#x44B;" data-tilda-req="1" aria-required="true" aria-describedby="error_1724403373063" style="color:#000000;border:1px solid #c9c9c9;border-radius:5px;font-family:&apos;Circe&apos;;font-weight:400;height:102px;" rows="3"></textarea> </div> <div class="t-input-error" aria-live="polite" id="error_1724403373063"></div> </div> <div class="t-form__errorbox-middle"> <!--noindex--> <div class="js-errorbox-all t-form__errorbox-wrapper" style="display:none;" data-nosnippet tabindex="-1" aria-label="&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x438; &#x43F;&#x440;&#x438; &#x437;&#x430;&#x43F;&#x43E;&#x43B;&#x43D;&#x435;&#x43D;&#x438;&#x438; &#x444;&#x43E;&#x440;&#x43C;&#x44B;"> <ul role="list" class="t-form__errorbox-text t-text t-text_md"> <li class="t-form__errorbox-item js-rule-error js-rule-error-all"></li> <li class="t-form__errorbox-item js-rule-error js-rule-error-req"></li> <li class="t-form__errorbox-item js-rule-error js-rule-error-email"></li> <li class="t-form__errorbox-item js-rule-error js-rule-error-name"></li> <li class="t-form__errorbox-item js-rule-error js-rule-error-phone"></li> <li class="t-form__errorbox-item js-rule-error js-rule-error-minlength"></li> <li class="t-form__errorbox-item js-rule-error js-rule-error-string"></li> </ul> </div> <!--/noindex--> </div> <div class="t-form__submit"> <button type="submit" class="t-submit" style="color:#ffffff;background-color:#000000;border-radius:8px; -moz-border-radius:8px; -webkit-border-radius:8px;font-family:Circe;font-weight:400;" data-field="buttontitle" data-buttonfieldset="button"> &#x41E;&#x442;&#x43F;&#x440;&#x430;&#x432;&#x438;&#x442;&#x44C; </button> </div> </div> <div class="t-form__errorbox-bottom"> <!--noindex--> <div class="js-errorbox-all t-form__errorbox-wrapper" style="display:none;" data-nosnippet tabindex="-1" aria-label="&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x438; &#x43F;&#x440;&#x438; &#x437;&#x430;&#x43F;&#x43E;&#x43B;&#x43D;&#x435;&#x43D;&#x438;&#x438; &#x444;&#x43E;&#x440;&#x43C;&#x44B;"> <ul role="list" class="t-form__errorbox-text t-text t-text_md"> <li class="t-form__errorbox-item js-rule-error js-rule-error-all"></li> <li class="t-form__errorbox-item js-rule-error js-rule-error-req"></li> <li class="t-form__errorbox-item js-rule-error js-rule-error-email"></li> <li class="t-form__errorbox-item js-rule-error js-rule-error-name"></li> <li class="t-form__errorbox-item js-rule-error js-rule-error-phone"></li> <li class="t-form__errorbox-item js-rule-error js-rule-error-minlength"></li> <li class="t-form__errorbox-item js-rule-error js-rule-error-string"></li> </ul> </div> <!--/noindex--> </div> </form> <div class="t702__form-bottom-text t-text t-text_xs t-align_left">&#x421;&#x43E;&#x433;&#x43B;&#x430;&#x448;&#x430;&#x44E;&#x441;&#x44C; &#x43D;&#x430; <a href="https://www.mann-ivanov-ferber.ru/help/politika-konfidenczialnosti/" target="_blank" rel="noreferrer noopener">&#x43E;&#x431;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x443; &#x43F;&#x435;&#x440;&#x441;&#x43E;&#x43D;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x445; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;&#x2009;</a>&#x438; <a href="https://www.mann-ivanov-ferber.ru/help/offer/" target="_blank" rel="noreferrer noopener">&#x441;&#xA0;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x43A;&#x438;&#x43C; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x448;&#x435;&#x43D;&#x438;&#x435;&#x43C;</a></div> </div> </div> </div> </div> </div> <div id="rec788981158" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <!-- nominify end --> </div> </div> </div> </div> </div> <!--/allrecords--> <div class="js-mif-body"></div> </div> <script>TildaFonts=["168","169","170"];</script> <script src="data:text/html;base64,IWZ1bmN0aW9uKCl7dmFyIGU9MCx0PTA7ZnVuY3Rpb24gbigpeysrZT45fHwoInVuZGVmaW5lZCIhPXR5cGVvZiBUaWxkYUZvbnRzP2EoKTpzZXRUaW1lb3V0KG4sMjApKX1mdW5jdGlvbiBpKCl7Y2xlYXJUaW1lb3V0KHQpLG8oKSx3aW5kb3cudGlsZGFmb250c19sb2FkZWQ9ITB9ZnVuY3Rpb24gbygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aWxkYWZvbnRzLWxvYWRpbmciKTt2b2lkIDAhPT1lJiZudWxsIT1lJiZlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSl9ZnVuY3Rpb24gYSgpe3dpbmRvdy50aWxkYWZvbnRzX2xvYWRlZD0hMTt2YXIgZT1kb2N1bWVudC5oZWFkfHxkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtuLmlubmVySFRNTD0iYm9keSAqe2NvbG9yOnRyYW5zcGFyZW50IWltcG9ydGFudDt9IixuLnNldEF0dHJpYnV0ZSgiaWQiLCJ0aWxkYWZvbnRzLWxvYWRpbmciKSxlLmluc2VydEJlZm9yZShuLGUuZmlyc3RDaGlsZCksdD1zZXRUaW1lb3V0KChmdW5jdGlvbigpe28oKX0pLCJ5Ij09PXdpbmRvdy50aWxkYWZvbnRzc3dhcD81MDozZTMpO3ZhciBpPShuYXZpZ2F0b3IudXNlckFnZW50fHxuYXZpZ2F0b3IudmVuZG9yfHx3aW5kb3cub3BlcmEpLnRvTG93ZXJDYXNlKCksYT17b3BlcmE6InZlcnNpb24iLGZpcmVmb3g6ImZpcmVmb3giLHNhZmFyaToidmVyc2lvbiIsbXNpZToibXNpZSJ9LHM9WyJsaW51eCIsIndpbmRvd3MiLCJpcGhvbmUiLCJtYWMgb3MiXSxkPSJkZWZhdWx0IixmPTAsbD0tMSxjPSJkZWZhdWx0Iix1PSJ3b2ZmIix3PSJ5Ij09PXdpbmRvdy50aWxkYWZvbnRzc3dhcD8iJmRpc3BsYXk9c3dhcCI6IiIsbT0vXk1vemlsbGFcLzVcLjAgXCguK1teKV0rXCkgQXBwbGVXZWJLaXRcL1tcZC5dKyBcKEtIVE1MLCBsaWtlIEdlY2tvXCkgQ1tocm9tZXxyaU9TXStcLyhcZCspW1xkLl0rWyBNb2JpbGVdKlsvMTVFMTQ4XSpbXHNZYUJyb3dzZXIvW1xkLl0rXT9bXHNZb3dzZXIvW1xkLl0rXT8gU2FmYXJpXC9bXGQuXStbXHNFZGcvW1xkLl0rXT9bXHNPUFIvW1xkLl0rXT8kLy5leGVjKG5hdmlnYXRvci51c2VyQWdlbnQpLHA7aWYobSl7dmFyIGc7cGFyc2VJbnQobVsxXSwxMCk+PTM2JiYodT0id29mZjIiKX1lbHNle2Zvcih2YXIgaCBpbiBhKWlmKGkuaW5kZXhPZihoKT4tMSl7bD1pLmluZGV4T2YoYVtoXSksZD1oLGY9aS5zdWJzdHJpbmcobCthW2hdLmxlbmd0aCsxLGwrYVtoXS5sZW5ndGgrMyk7YnJlYWt9Zm9yKHZhciB2PTA7djxzLmxlbmd0aDt2KyspaWYoaS5pbmRleE9mKHNbdl0pPi0xKXtjPXNbdl07YnJlYWt9c3dpdGNoKCJkZWZhdWx0Ij09PWQmJmkuaW5kZXhPZigiaW5zdGFncmFtIik+LTEmJmkuaW5kZXhPZigiaXBob25lIik+LTEmJihsPWkuaW5kZXhPZigiaXBob25lIG9zIiksZD0ic2FmYXJpIixjPSJpcGhvbmUiLGY9aS5zdWJzdHJpbmcobCsxMCxsKzEyKSksZCl7Y2FzZSJmaXJlZm94IjpmPj0zOSYmKHU9IndvZmYyIik7YnJlYWs7Y2FzZSJzYWZhcmkiOiJpcGhvbmUiPT09Yz9mPj0xMCYmKHU9IndvZmYyIik6Zj49MTImJih1PSJ3b2ZmMiIpO2JyZWFrO2Nhc2Uib3BlcmEiOmY+PTIzJiYodT0id29mZjIiKX19cigiaHR0cHM6Ly9mb250cy50aWxkYWNkbi5jb20vZ2V0LyIsIj9mb250cz0iK1RpbGRhRm9udHMrIiZmb3JtYXQ9Iit1K3csITAsZSl9ZnVuY3Rpb24gcihlLHQsbixvKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7aWYoYS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoZnVuY3Rpb24oKXtpKCl9KSksbil7YS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKGZ1bmN0aW9uKCl7cigiaHR0cHM6Ly9mb250czIudGlsZGFjZG4uY29tL2dldC8iLHQsITEsbyl9KSk7dmFyIHM9d2luZG93LnBlcmZvcm1hbmNlLnRpbWluZztpZighcylyZXR1cm47dmFyIGQ9cy5yZXNwb25zZUVuZC1zLmNvbm5lY3RTdGFydCxmPTJlMztzd2l0Y2goITApe2Nhc2UgZDw9MzAwOmY9MmUzO2JyZWFrO2Nhc2UgZDw9MWUzOmY9N2UzO2JyZWFrO2Nhc2UgZDw9MmUzOmY9MmU0O2JyZWFrO2Nhc2UgZDw9M2UzOmY9M2U0O2JyZWFrO2Nhc2UgZD4zZTM6Zj00NWUzfXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ITE9PT13aW5kb3cudGlsZGFmb250c19sb2FkZWQmJnIoImh0dHBzOi8vZm9udHMyLnRpbGRhY2RuLmNvbS9nZXQvIix0LCExLG8pfSksZil9YS5zZXRBdHRyaWJ1dGUoImhyZWYiLGUrdCksYS5zZXRBdHRyaWJ1dGUoInJlbCIsInN0eWxlc2hlZXQiKSxhLnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQvY3NzIiksYS5zZXRBdHRyaWJ1dGUoIm1lZGlhIiwiYWxsIiksby5pbnNlcnRCZWZvcmUoYSxvLmZpcnN0Q2hpbGQpfW4oKX0oKTsKLyohIGpRdWVyeSB2MS4xMC4yIHwgKGMpIDIwMDUsIDIwMTMgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4gfCBqcXVlcnkub3JnL2xpY2Vuc2UKKi8KKGZ1bmN0aW9uKGUsdCl7dmFyIG4scixpPXR5cGVvZiB0LG89ZS5sb2NhdGlvbixhPWUuZG9jdW1lbnQscz1hLmRvY3VtZW50RWxlbWVudCxsPWUualF1ZXJ5LHU9ZS4kLGM9e30scD1bXSxmPSIxLjEwLjIiLGQ9cC5jb25jYXQsaD1wLnB1c2gsZz1wLnNsaWNlLG09cC5pbmRleE9mLHk9Yy50b1N0cmluZyx2PWMuaGFzT3duUHJvcGVydHksYj1mLnRyaW0seD1mdW5jdGlvbihlLHQpe3JldHVybiBuZXcgeC5mbi5pbml0KGUsdCxyKX0sdz0vWystXT8oPzpcZCpcLnwpXGQrKD86W2VFXVsrLV0/XGQrfCkvLnNvdXJjZSxUPS9cUysvZyxDPS9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZyxOPS9eKD86XHMqKDxbXHdcV10rPilbXj5dKnwjKFtcdy1dKikpJC8saz0vXjwoXHcrKVxzKlwvPz4oPzo8XC9cMT58KSQvLEU9L15bXF0sOnt9XHNdKiQvLFM9Lyg/Ol58OnwsKSg/OlxzKlxbKSsvZyxBPS9cXCg/OlsiXFxcL2JmbnJ0XXx1W1xkYS1mQS1GXXs0fSkvZyxqPS8iW14iXFxcclxuXSoifHRydWV8ZmFsc2V8bnVsbHwtPyg/OlxkK1wufClcZCsoPzpbZUVdWystXT9cZCt8KS9nLEQ9L14tbXMtLyxMPS8tKFtcZGEtel0pL2dpLEg9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC50b1VwcGVyQ2FzZSgpfSxxPWZ1bmN0aW9uKGUpeyhhLmFkZEV2ZW50TGlzdGVuZXJ8fCJsb2FkIj09PWUudHlwZXx8ImNvbXBsZXRlIj09PWEucmVhZHlTdGF0ZSkmJihfKCkseC5yZWFkeSgpKX0sXz1mdW5jdGlvbigpe2EuYWRkRXZlbnRMaXN0ZW5lcj8oYS5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixxLCExKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLHEsITEpKTooYS5kZXRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixxKSxlLmRldGFjaEV2ZW50KCJvbmxvYWQiLHEpKX07eC5mbj14LnByb3RvdHlwZT17anF1ZXJ5OmYsY29uc3RydWN0b3I6eCxpbml0OmZ1bmN0aW9uKGUsbixyKXt2YXIgaSxvO2lmKCFlKXJldHVybiB0aGlzO2lmKCJzdHJpbmciPT10eXBlb2YgZSl7aWYoaT0iPCI9PT1lLmNoYXJBdCgwKSYmIj4iPT09ZS5jaGFyQXQoZS5sZW5ndGgtMSkmJmUubGVuZ3RoPj0zP1tudWxsLGUsbnVsbF06Ti5leGVjKGUpLCFpfHwhaVsxXSYmbilyZXR1cm4hbnx8bi5qcXVlcnk/KG58fHIpLmZpbmQoZSk6dGhpcy5jb25zdHJ1Y3RvcihuKS5maW5kKGUpO2lmKGlbMV0pe2lmKG49biBpbnN0YW5jZW9mIHg/blswXTpuLHgubWVyZ2UodGhpcyx4LnBhcnNlSFRNTChpWzFdLG4mJm4ubm9kZVR5cGU/bi5vd25lckRvY3VtZW50fHxuOmEsITApKSxrLnRlc3QoaVsxXSkmJnguaXNQbGFpbk9iamVjdChuKSlmb3IoaSBpbiBuKXguaXNGdW5jdGlvbih0aGlzW2ldKT90aGlzW2ldKG5baV0pOnRoaXMuYXR0cihpLG5baV0pO3JldHVybiB0aGlzfWlmKG89YS5nZXRFbGVtZW50QnlJZChpWzJdKSxvJiZvLnBhcmVudE5vZGUpe2lmKG8uaWQhPT1pWzJdKXJldHVybiByLmZpbmQoZSk7dGhpcy5sZW5ndGg9MSx0aGlzWzBdPW99cmV0dXJuIHRoaXMuY29udGV4dD1hLHRoaXMuc2VsZWN0b3I9ZSx0aGlzfXJldHVybiBlLm5vZGVUeXBlPyh0aGlzLmNvbnRleHQ9dGhpc1swXT1lLHRoaXMubGVuZ3RoPTEsdGhpcyk6eC5pc0Z1bmN0aW9uKGUpP3IucmVhZHkoZSk6KGUuc2VsZWN0b3IhPT10JiYodGhpcy5zZWxlY3Rvcj1lLnNlbGVjdG9yLHRoaXMuY29udGV4dD1lLmNvbnRleHQpLHgubWFrZUFycmF5KGUsdGhpcykpfSxzZWxlY3RvcjoiIixsZW5ndGg6MCx0b0FycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIGcuY2FsbCh0aGlzKX0sZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP3RoaXMudG9BcnJheSgpOjA+ZT90aGlzW3RoaXMubGVuZ3RoK2VdOnRoaXNbZV19LHB1c2hTdGFjazpmdW5jdGlvbihlKXt2YXIgdD14Lm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxlKTtyZXR1cm4gdC5wcmV2T2JqZWN0PXRoaXMsdC5jb250ZXh0PXRoaXMuY29udGV4dCx0fSxlYWNoOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHguZWFjaCh0aGlzLGUsdCl9LHJlYWR5OmZ1bmN0aW9uKGUpe3JldHVybiB4LnJlYWR5LnByb21pc2UoKS5kb25lKGUpLHRoaXN9LHNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGcuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0sZmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgwKX0sbGFzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKC0xKX0sZXE6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5sZW5ndGgsbj0rZSsoMD5lP3Q6MCk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG4+PTAmJnQ+bj9bdGhpc1tuXV06W10pfSxtYXA6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHgubWFwKHRoaXMsZnVuY3Rpb24odCxuKXtyZXR1cm4gZS5jYWxsKHQsbix0KX0pKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8dGhpcy5jb25zdHJ1Y3RvcihudWxsKX0scHVzaDpoLHNvcnQ6W10uc29ydCxzcGxpY2U6W10uc3BsaWNlfSx4LmZuLmluaXQucHJvdG90eXBlPXguZm4seC5leHRlbmQ9eC5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgZSxuLHIsaSxvLGEscz1hcmd1bWVudHNbMF18fHt9LGw9MSx1PWFyZ3VtZW50cy5sZW5ndGgsYz0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgcyYmKGM9cyxzPWFyZ3VtZW50c1sxXXx8e30sbD0yKSwib2JqZWN0Ij09dHlwZW9mIHN8fHguaXNGdW5jdGlvbihzKXx8KHM9e30pLHU9PT1sJiYocz10aGlzLC0tbCk7dT5sO2wrKylpZihudWxsIT0obz1hcmd1bWVudHNbbF0pKWZvcihpIGluIG8pZT1zW2ldLHI9b1tpXSxzIT09ciYmKGMmJnImJih4LmlzUGxhaW5PYmplY3Qocil8fChuPXguaXNBcnJheShyKSkpPyhuPyhuPSExLGE9ZSYmeC5pc0FycmF5KGUpP2U6W10pOmE9ZSYmeC5pc1BsYWluT2JqZWN0KGUpP2U6e30sc1tpXT14LmV4dGVuZChjLGEscikpOnIhPT10JiYoc1tpXT1yKSk7cmV0dXJuIHN9LHguZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKyhmK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLG5vQ29uZmxpY3Q6ZnVuY3Rpb24odCl7cmV0dXJuIGUuJD09PXgmJihlLiQ9dSksdCYmZS5qUXVlcnk9PT14JiYoZS5qUXVlcnk9bCkseH0saXNSZWFkeTohMSxyZWFkeVdhaXQ6MSxob2xkUmVhZHk6ZnVuY3Rpb24oZSl7ZT94LnJlYWR5V2FpdCsrOngucmVhZHkoITApfSxyZWFkeTpmdW5jdGlvbihlKXtpZihlPT09ITA/IS0teC5yZWFkeVdhaXQ6IXguaXNSZWFkeSl7aWYoIWEuYm9keSlyZXR1cm4gc2V0VGltZW91dCh4LnJlYWR5KTt4LmlzUmVhZHk9ITAsZSE9PSEwJiYtLXgucmVhZHlXYWl0PjB8fChuLnJlc29sdmVXaXRoKGEsW3hdKSx4LmZuLnRyaWdnZXImJngoYSkudHJpZ2dlcigicmVhZHkiKS5vZmYoInJlYWR5IikpfX0saXNGdW5jdGlvbjpmdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT09eC50eXBlKGUpfSxpc0FycmF5OkFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGUpe3JldHVybiJhcnJheSI9PT14LnR5cGUoZSl9LGlzV2luZG93OmZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiZlPT1lLndpbmRvd30saXNOdW1lcmljOmZ1bmN0aW9uKGUpe3JldHVybiFpc05hTihwYXJzZUZsb2F0KGUpKSYmaXNGaW5pdGUoZSl9LHR5cGU6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/ZSsiIjoib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlP2NbeS5jYWxsKGUpXXx8Im9iamVjdCI6dHlwZW9mIGV9LGlzUGxhaW5PYmplY3Q6ZnVuY3Rpb24oZSl7dmFyIG47aWYoIWV8fCJvYmplY3QiIT09eC50eXBlKGUpfHxlLm5vZGVUeXBlfHx4LmlzV2luZG93KGUpKXJldHVybiExO3RyeXtpZihlLmNvbnN0cnVjdG9yJiYhdi5jYWxsKGUsImNvbnN0cnVjdG9yIikmJiF2LmNhbGwoZS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsImlzUHJvdG90eXBlT2YiKSlyZXR1cm4hMX1jYXRjaChyKXtyZXR1cm4hMX1pZih4LnN1cHBvcnQub3duTGFzdClmb3IobiBpbiBlKXJldHVybiB2LmNhbGwoZSxuKTtmb3IobiBpbiBlKTtyZXR1cm4gbj09PXR8fHYuY2FsbChlLG4pfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0O2Zvcih0IGluIGUpcmV0dXJuITE7cmV0dXJuITB9LGVycm9yOmZ1bmN0aW9uKGUpe3Rocm93IEVycm9yKGUpfSxwYXJzZUhUTUw6ZnVuY3Rpb24oZSx0LG4pe2lmKCFlfHwic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuIG51bGw7ImJvb2xlYW4iPT10eXBlb2YgdCYmKG49dCx0PSExKSx0PXR8fGE7dmFyIHI9ay5leGVjKGUpLGk9IW4mJltdO3JldHVybiByP1t0LmNyZWF0ZUVsZW1lbnQoclsxXSldOihyPXguYnVpbGRGcmFnbWVudChbZV0sdCxpKSxpJiZ4KGkpLnJlbW92ZSgpLHgubWVyZ2UoW10sci5jaGlsZE5vZGVzKSl9LHBhcnNlSlNPTjpmdW5jdGlvbihuKXtyZXR1cm4gZS5KU09OJiZlLkpTT04ucGFyc2U/ZS5KU09OLnBhcnNlKG4pOm51bGw9PT1uP246InN0cmluZyI9PXR5cGVvZiBuJiYobj14LnRyaW0obiksbiYmRS50ZXN0KG4ucmVwbGFjZShBLCJAIikucmVwbGFjZShqLCJdIikucmVwbGFjZShTLCIiKSkpP0Z1bmN0aW9uKCJyZXR1cm4gIituKSgpOih4LmVycm9yKCJJbnZhbGlkIEpTT046ICIrbiksdCl9LHBhcnNlWE1MOmZ1bmN0aW9uKG4pe3ZhciByLGk7aWYoIW58fCJzdHJpbmciIT10eXBlb2YgbilyZXR1cm4gbnVsbDt0cnl7ZS5ET01QYXJzZXI/KGk9bmV3IERPTVBhcnNlcixyPWkucGFyc2VGcm9tU3RyaW5nKG4sInRleHQveG1sIikpOihyPW5ldyBBY3RpdmVYT2JqZWN0KCJNaWNyb3NvZnQuWE1MRE9NIiksci5hc3luYz0iZmFsc2UiLHIubG9hZFhNTChuKSl9Y2F0Y2gobyl7cj10fXJldHVybiByJiZyLmRvY3VtZW50RWxlbWVudCYmIXIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInBhcnNlcmVycm9yIikubGVuZ3RofHx4LmVycm9yKCJJbnZhbGlkIFhNTDogIituKSxyfSxub29wOmZ1bmN0aW9uKCl7fSxnbG9iYWxFdmFsOmZ1bmN0aW9uKHQpe3QmJngudHJpbSh0KSYmKGUuZXhlY1NjcmlwdHx8ZnVuY3Rpb24odCl7ZS5ldmFsLmNhbGwoZSx0KX0pKHQpfSxjYW1lbENhc2U6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZShELCJtcy0iKS5yZXBsYWNlKEwsSCl9LG5vZGVOYW1lOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUubm9kZU5hbWUmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXQudG9Mb3dlckNhc2UoKX0sZWFjaDpmdW5jdGlvbihlLHQsbil7dmFyIHIsaT0wLG89ZS5sZW5ndGgsYT1NKGUpO2lmKG4pe2lmKGEpe2Zvcig7bz5pO2krKylpZihyPXQuYXBwbHkoZVtpXSxuKSxyPT09ITEpYnJlYWt9ZWxzZSBmb3IoaSBpbiBlKWlmKHI9dC5hcHBseShlW2ldLG4pLHI9PT0hMSlicmVha31lbHNlIGlmKGEpe2Zvcig7bz5pO2krKylpZihyPXQuY2FsbChlW2ldLGksZVtpXSkscj09PSExKWJyZWFrfWVsc2UgZm9yKGkgaW4gZSlpZihyPXQuY2FsbChlW2ldLGksZVtpXSkscj09PSExKWJyZWFrO3JldHVybiBlfSx0cmltOmImJiFiLmNhbGwoIlx1ZmVmZlx1MDBhMCIpP2Z1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lPyIiOmIuY2FsbChlKX06ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/IiI6KGUrIiIpLnJlcGxhY2UoQywiIil9LG1ha2VBcnJheTpmdW5jdGlvbihlLHQpe3ZhciBuPXR8fFtdO3JldHVybiBudWxsIT1lJiYoTShPYmplY3QoZSkpP3gubWVyZ2Uobiwic3RyaW5nIj09dHlwZW9mIGU/W2VdOmUpOmguY2FsbChuLGUpKSxufSxpbkFycmF5OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtpZih0KXtpZihtKXJldHVybiBtLmNhbGwodCxlLG4pO2ZvcihyPXQubGVuZ3RoLG49bj8wPm4/TWF0aC5tYXgoMCxyK24pOm46MDtyPm47bisrKWlmKG4gaW4gdCYmdFtuXT09PWUpcmV0dXJuIG59cmV0dXJuLTF9LG1lcmdlOmZ1bmN0aW9uKGUsbil7dmFyIHI9bi5sZW5ndGgsaT1lLmxlbmd0aCxvPTA7aWYoIm51bWJlciI9PXR5cGVvZiByKWZvcig7cj5vO28rKyllW2krK109bltvXTtlbHNlIHdoaWxlKG5bb10hPT10KWVbaSsrXT1uW28rK107cmV0dXJuIGUubGVuZ3RoPWksZX0sZ3JlcDpmdW5jdGlvbihlLHQsbil7dmFyIHIsaT1bXSxvPTAsYT1lLmxlbmd0aDtmb3Iobj0hIW47YT5vO28rKylyPSEhdChlW29dLG8pLG4hPT1yJiZpLnB1c2goZVtvXSk7cmV0dXJuIGl9LG1hcDpmdW5jdGlvbihlLHQsbil7dmFyIHIsaT0wLG89ZS5sZW5ndGgsYT1NKGUpLHM9W107aWYoYSlmb3IoO28+aTtpKyspcj10KGVbaV0saSxuKSxudWxsIT1yJiYoc1tzLmxlbmd0aF09cik7ZWxzZSBmb3IoaSBpbiBlKXI9dChlW2ldLGksbiksbnVsbCE9ciYmKHNbcy5sZW5ndGhdPXIpO3JldHVybiBkLmFwcGx5KFtdLHMpfSxndWlkOjEscHJveHk6ZnVuY3Rpb24oZSxuKXt2YXIgcixpLG87cmV0dXJuInN0cmluZyI9PXR5cGVvZiBuJiYobz1lW25dLG49ZSxlPW8pLHguaXNGdW5jdGlvbihlKT8ocj1nLmNhbGwoYXJndW1lbnRzLDIpLGk9ZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseShufHx0aGlzLHIuY29uY2F0KGcuY2FsbChhcmd1bWVudHMpKSl9LGkuZ3VpZD1lLmd1aWQ9ZS5ndWlkfHx4Lmd1aWQrKyxpKTp0fSxhY2Nlc3M6ZnVuY3Rpb24oZSxuLHIsaSxvLGEscyl7dmFyIGw9MCx1PWUubGVuZ3RoLGM9bnVsbD09cjtpZigib2JqZWN0Ij09PXgudHlwZShyKSl7bz0hMDtmb3IobCBpbiByKXguYWNjZXNzKGUsbixsLHJbbF0sITAsYSxzKX1lbHNlIGlmKGkhPT10JiYobz0hMCx4LmlzRnVuY3Rpb24oaSl8fChzPSEwKSxjJiYocz8obi5jYWxsKGUsaSksbj1udWxsKTooYz1uLG49ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBjLmNhbGwoeChlKSxuKX0pKSxuKSlmb3IoO3U+bDtsKyspbihlW2xdLHIscz9pOmkuY2FsbChlW2xdLGwsbihlW2xdLHIpKSk7cmV0dXJuIG8/ZTpjP24uY2FsbChlKTp1P24oZVswXSxyKTphfSxub3c6ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKX0sc3dhcDpmdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGE9e307Zm9yKG8gaW4gdClhW29dPWUuc3R5bGVbb10sZS5zdHlsZVtvXT10W29dO2k9bi5hcHBseShlLHJ8fFtdKTtmb3IobyBpbiB0KWUuc3R5bGVbb109YVtvXTtyZXR1cm4gaX19KSx4LnJlYWR5LnByb21pc2U9ZnVuY3Rpb24odCl7aWYoIW4paWYobj14LkRlZmVycmVkKCksImNvbXBsZXRlIj09PWEucmVhZHlTdGF0ZSlzZXRUaW1lb3V0KHgucmVhZHkpO2Vsc2UgaWYoYS5hZGRFdmVudExpc3RlbmVyKWEuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIscSwhMSksZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixxLCExKTtlbHNle2EuYXR0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIscSksZS5hdHRhY2hFdmVudCgib25sb2FkIixxKTt2YXIgcj0hMTt0cnl7cj1udWxsPT1lLmZyYW1lRWxlbWVudCYmYS5kb2N1bWVudEVsZW1lbnR9Y2F0Y2goaSl7fXImJnIuZG9TY3JvbGwmJmZ1bmN0aW9uIG8oKXtpZigheC5pc1JlYWR5KXt0cnl7ci5kb1Njcm9sbCgibGVmdCIpfWNhdGNoKGUpe3JldHVybiBzZXRUaW1lb3V0KG8sNTApfV8oKSx4LnJlYWR5KCl9fSgpfXJldHVybiBuLnByb21pc2UodCl9LHguZWFjaCgiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCBFcnJvciIuc3BsaXQoIiAiKSxmdW5jdGlvbihlLHQpe2NbIltvYmplY3QgIit0KyJdIl09dC50b0xvd2VyQ2FzZSgpfSk7ZnVuY3Rpb24gTShlKXt2YXIgdD1lLmxlbmd0aCxuPXgudHlwZShlKTtyZXR1cm4geC5pc1dpbmRvdyhlKT8hMToxPT09ZS5ub2RlVHlwZSYmdD8hMDoiYXJyYXkiPT09bnx8ImZ1bmN0aW9uIiE9PW4mJigwPT09dHx8Im51bWJlciI9PXR5cGVvZiB0JiZ0PjAmJnQtMSBpbiBlKX1yPXgoYSksZnVuY3Rpb24oZSx0KXt2YXIgbixyLGksbyxhLHMsbCx1LGMscCxmLGQsaCxnLG0seSx2LGI9InNpenpsZSIrLW5ldyBEYXRlLHc9ZS5kb2N1bWVudCxUPTAsQz0wLE49c3QoKSxrPXN0KCksRT1zdCgpLFM9ITEsQT1mdW5jdGlvbihlLHQpe3JldHVybiBlPT09dD8oUz0hMCwwKTowfSxqPXR5cGVvZiB0LEQ9MTw8MzEsTD17fS5oYXNPd25Qcm9wZXJ0eSxIPVtdLHE9SC5wb3AsXz1ILnB1c2gsTT1ILnB1c2gsTz1ILnNsaWNlLEY9SC5pbmRleE9mfHxmdW5jdGlvbihlKXt2YXIgdD0wLG49dGhpcy5sZW5ndGg7Zm9yKDtuPnQ7dCsrKWlmKHRoaXNbdF09PT1lKXJldHVybiB0O3JldHVybi0xfSxCPSJjaGVja2VkfHNlbGVjdGVkfGFzeW5jfGF1dG9mb2N1c3xhdXRvcGxheXxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58aXNtYXB8bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZCIsUD0iW1xceDIwXFx0XFxyXFxuXFxmXSIsUj0iKD86XFxcXC58W1xcdy1dfFteXFx4MDAtXFx4YTBdKSsiLFc9Ui5yZXBsYWNlKCJ3IiwidyMiKSwkPSJcXFsiK1ArIiooIitSKyIpIitQKyIqKD86KFsqXiR8IX5dPz0pIitQKyIqKD86KFsnXCJdKSgoPzpcXFxcLnxbXlxcXFxdKSo/KVxcM3woIitXKyIpfCl8KSIrUCsiKlxcXSIsST0iOigiK1IrIikoPzpcXCgoKFsnXCJdKSgoPzpcXFxcLnxbXlxcXFxdKSo/KVxcM3woKD86XFxcXC58W15cXFxcKClbXFxdXXwiKyQucmVwbGFjZSgzLDgpKyIpKil8LiopXFwpfCkiLHo9UmVnRXhwKCJeIitQKyIrfCgoPzpefFteXFxcXF0pKD86XFxcXC4pKikiK1ArIiskIiwiZyIpLFg9UmVnRXhwKCJeIitQKyIqLCIrUCsiKiIpLFU9UmVnRXhwKCJeIitQKyIqKFs+K35dfCIrUCsiKSIrUCsiKiIpLFY9UmVnRXhwKFArIipbK35dIiksWT1SZWdFeHAoIj0iK1ArIiooW15cXF0nXCJdKikiK1ArIipcXF0iLCJnIiksSj1SZWdFeHAoSSksRz1SZWdFeHAoIl4iK1crIiQiKSxRPXtJRDpSZWdFeHAoIl4jKCIrUisiKSIpLENMQVNTOlJlZ0V4cCgiXlxcLigiK1IrIikiKSxUQUc6UmVnRXhwKCJeKCIrUi5yZXBsYWNlKCJ3IiwidyoiKSsiKSIpLEFUVFI6UmVnRXhwKCJeIiskKSxQU0VVRE86UmVnRXhwKCJeIitJKSxDSElMRDpSZWdFeHAoIl46KG9ubHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg/OlxcKCIrUCsiKihldmVufG9kZHwoKFsrLV18KShcXGQqKW58KSIrUCsiKig/OihbKy1dfCkiK1ArIiooXFxkKyl8KSkiK1ArIipcXCl8KSIsImkiKSxib29sOlJlZ0V4cCgiXig/OiIrQisiKSQiLCJpIiksbmVlZHNDb250ZXh0OlJlZ0V4cCgiXiIrUCsiKls+K35dfDooZXZlbnxvZGR8ZXF8Z3R8bHR8bnRofGZpcnN0fGxhc3QpKD86XFwoIitQKyIqKCg/Oi1cXGQpP1xcZCopIitQKyIqXFwpfCkoPz1bXi1dfCQpIiwiaSIpfSxLPS9eW157XStce1xzKlxbbmF0aXZlIFx3LyxaPS9eKD86IyhbXHctXSspfChcdyspfFwuKFtcdy1dKykpJC8sZXQ9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSx0dD0vXmhcZCQvaSxudD0vJ3xcXC9nLHJ0PVJlZ0V4cCgiXFxcXChbXFxkYS1mXXsxLDZ9IitQKyI/fCgiK1ArIil8LikiLCJpZyIpLGl0PWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj0iMHgiK3QtNjU1MzY7cmV0dXJuIHIhPT1yfHxuP3Q6MD5yP1N0cmluZy5mcm9tQ2hhckNvZGUocis2NTUzNik6U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NnxyPj4xMCw1NjMyMHwxMDIzJnIpfTt0cnl7TS5hcHBseShIPU8uY2FsbCh3LmNoaWxkTm9kZXMpLHcuY2hpbGROb2RlcyksSFt3LmNoaWxkTm9kZXMubGVuZ3RoXS5ub2RlVHlwZX1jYXRjaChvdCl7TT17YXBwbHk6SC5sZW5ndGg/ZnVuY3Rpb24oZSx0KXtfLmFwcGx5KGUsTy5jYWxsKHQpKX06ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmxlbmd0aCxyPTA7d2hpbGUoZVtuKytdPXRbcisrXSk7ZS5sZW5ndGg9bi0xfX19ZnVuY3Rpb24gYXQoZSx0LG4saSl7dmFyIG8sYSxzLGwsdSxjLGQsbSx5LHg7aWYoKHQ/dC5vd25lckRvY3VtZW50fHx0OncpIT09ZiYmcCh0KSx0PXR8fGYsbj1ufHxbXSwhZXx8InN0cmluZyIhPXR5cGVvZiBlKXJldHVybiBuO2lmKDEhPT0obD10Lm5vZGVUeXBlKSYmOSE9PWwpcmV0dXJuW107aWYoaCYmIWkpe2lmKG89Wi5leGVjKGUpKWlmKHM9b1sxXSl7aWYoOT09PWwpe2lmKGE9dC5nZXRFbGVtZW50QnlJZChzKSwhYXx8IWEucGFyZW50Tm9kZSlyZXR1cm4gbjtpZihhLmlkPT09cylyZXR1cm4gbi5wdXNoKGEpLG59ZWxzZSBpZih0Lm93bmVyRG9jdW1lbnQmJihhPXQub3duZXJEb2N1bWVudC5nZXRFbGVtZW50QnlJZChzKSkmJnYodCxhKSYmYS5pZD09PXMpcmV0dXJuIG4ucHVzaChhKSxufWVsc2V7aWYob1syXSlyZXR1cm4gTS5hcHBseShuLHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZSkpLG47aWYoKHM9b1szXSkmJnIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmdC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXJldHVybiBNLmFwcGx5KG4sdC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKHMpKSxufWlmKHIucXNhJiYoIWd8fCFnLnRlc3QoZSkpKXtpZihtPWQ9Yix5PXQseD05PT09bCYmZSwxPT09bCYmIm9iamVjdCIhPT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpe2M9bXQoZSksKGQ9dC5nZXRBdHRyaWJ1dGUoImlkIikpP209ZC5yZXBsYWNlKG50LCJcXCQmIik6dC5zZXRBdHRyaWJ1dGUoImlkIixtKSxtPSJbaWQ9JyIrbSsiJ10gIix1PWMubGVuZ3RoO3doaWxlKHUtLSljW3VdPW0reXQoY1t1XSk7eT1WLnRlc3QoZSkmJnQucGFyZW50Tm9kZXx8dCx4PWMuam9pbigiLCIpfWlmKHgpdHJ5e3JldHVybiBNLmFwcGx5KG4seS5xdWVyeVNlbGVjdG9yQWxsKHgpKSxufWNhdGNoKFQpe31maW5hbGx5e2R8fHQucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0dXJuIGt0KGUucmVwbGFjZSh6LCIkMSIpLHQsbixpKX1mdW5jdGlvbiBzdCgpe3ZhciBlPVtdO2Z1bmN0aW9uIHQobixyKXtyZXR1cm4gZS5wdXNoKG4rPSIgIik+by5jYWNoZUxlbmd0aCYmZGVsZXRlIHRbZS5zaGlmdCgpXSx0W25dPXJ9cmV0dXJuIHR9ZnVuY3Rpb24gbHQoZSl7cmV0dXJuIGVbYl09ITAsZX1mdW5jdGlvbiB1dChlKXt2YXIgdD1mLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3RyeXtyZXR1cm4hIWUodCl9Y2F0Y2gobil7cmV0dXJuITF9ZmluYWxseXt0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSx0PW51bGx9fWZ1bmN0aW9uIGN0KGUsdCl7dmFyIG49ZS5zcGxpdCgifCIpLHI9ZS5sZW5ndGg7d2hpbGUoci0tKW8uYXR0ckhhbmRsZVtuW3JdXT10fWZ1bmN0aW9uIHB0KGUsdCl7dmFyIG49dCYmZSxyPW4mJjE9PT1lLm5vZGVUeXBlJiYxPT09dC5ub2RlVHlwZSYmKH50LnNvdXJjZUluZGV4fHxEKS0ofmUuc291cmNlSW5kZXh8fEQpO2lmKHIpcmV0dXJuIHI7aWYobil3aGlsZShuPW4ubmV4dFNpYmxpbmcpaWYobj09PXQpcmV0dXJuLTE7cmV0dXJuIGU/MTotMX1mdW5jdGlvbiBmdChlKXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIG49dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiJpbnB1dCI9PT1uJiZ0LnR5cGU9PT1lfX1mdW5jdGlvbiBkdChlKXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIG49dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybigiaW5wdXQiPT09bnx8ImJ1dHRvbiI9PT1uKSYmdC50eXBlPT09ZX19ZnVuY3Rpb24gaHQoZSl7cmV0dXJuIGx0KGZ1bmN0aW9uKHQpe3JldHVybiB0PSt0LGx0KGZ1bmN0aW9uKG4scil7dmFyIGksbz1lKFtdLG4ubGVuZ3RoLHQpLGE9by5sZW5ndGg7d2hpbGUoYS0tKW5baT1vW2FdXSYmKG5baV09IShyW2ldPW5baV0pKX0pfSl9cz1hdC5pc1hNTD1mdW5jdGlvbihlKXt2YXIgdD1lJiYoZS5vd25lckRvY3VtZW50fHxlKS5kb2N1bWVudEVsZW1lbnQ7cmV0dXJuIHQ/IkhUTUwiIT09dC5ub2RlTmFtZTohMX0scj1hdC5zdXBwb3J0PXt9LHA9YXQuc2V0RG9jdW1lbnQ9ZnVuY3Rpb24oZSl7dmFyIG49ZT9lLm93bmVyRG9jdW1lbnR8fGU6dyxpPW4uZGVmYXVsdFZpZXc7cmV0dXJuIG4hPT1mJiY5PT09bi5ub2RlVHlwZSYmbi5kb2N1bWVudEVsZW1lbnQ/KGY9bixkPW4uZG9jdW1lbnRFbGVtZW50LGg9IXMobiksaSYmaS5hdHRhY2hFdmVudCYmaSE9PWkudG9wJiZpLmF0dGFjaEV2ZW50KCJvbmJlZm9yZXVubG9hZCIsZnVuY3Rpb24oKXtwKCl9KSxyLmF0dHJpYnV0ZXM9dXQoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2xhc3NOYW1lPSJpIiwhZS5nZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIpfSksci5nZXRFbGVtZW50c0J5VGFnTmFtZT11dChmdW5jdGlvbihlKXtyZXR1cm4gZS5hcHBlbmRDaGlsZChuLmNyZWF0ZUNvbW1lbnQoIiIpKSwhZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aH0pLHIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZT11dChmdW5jdGlvbihlKXtyZXR1cm4gZS5pbm5lckhUTUw9IjxkaXYgY2xhc3M9J2EnPjwvZGl2PjxkaXYgY2xhc3M9J2EgaSc+PC9kaXY+IixlLmZpcnN0Q2hpbGQuY2xhc3NOYW1lPSJpIiwyPT09ZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJpIikubGVuZ3RofSksci5nZXRCeUlkPXV0KGZ1bmN0aW9uKGUpe3JldHVybiBkLmFwcGVuZENoaWxkKGUpLmlkPWIsIW4uZ2V0RWxlbWVudHNCeU5hbWV8fCFuLmdldEVsZW1lbnRzQnlOYW1lKGIpLmxlbmd0aH0pLHIuZ2V0QnlJZD8oby5maW5kLklEPWZ1bmN0aW9uKGUsdCl7aWYodHlwZW9mIHQuZ2V0RWxlbWVudEJ5SWQhPT1qJiZoKXt2YXIgbj10LmdldEVsZW1lbnRCeUlkKGUpO3JldHVybiBuJiZuLnBhcmVudE5vZGU/W25dOltdfX0sby5maWx0ZXIuSUQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZXBsYWNlKHJ0LGl0KTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0QXR0cmlidXRlKCJpZCIpPT09dH19KTooZGVsZXRlIG8uZmluZC5JRCxvLmZpbHRlci5JRD1mdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UocnQsaXQpO3JldHVybiBmdW5jdGlvbihlKXt2YXIgbj10eXBlb2YgZS5nZXRBdHRyaWJ1dGVOb2RlIT09aiYmZS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpO3JldHVybiBuJiZuLnZhbHVlPT09dH19KSxvLmZpbmQuVEFHPXIuZ2V0RWxlbWVudHNCeVRhZ05hbWU/ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdHlwZW9mIG4uZ2V0RWxlbWVudHNCeVRhZ05hbWUhPT1qP24uZ2V0RWxlbWVudHNCeVRhZ05hbWUoZSk6dH06ZnVuY3Rpb24oZSx0KXt2YXIgbixyPVtdLGk9MCxvPXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZSk7aWYoIioiPT09ZSl7d2hpbGUobj1vW2krK10pMT09PW4ubm9kZVR5cGUmJnIucHVzaChuKTtyZXR1cm4gcn1yZXR1cm4gb30sby5maW5kLkNMQVNTPXIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmZnVuY3Rpb24oZSxuKXtyZXR1cm4gdHlwZW9mIG4uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSE9PWomJmg/bi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGUpOnR9LG09W10sZz1bXSwoci5xc2E9Sy50ZXN0KG4ucXVlcnlTZWxlY3RvckFsbCkpJiYodXQoZnVuY3Rpb24oZSl7ZS5pbm5lckhUTUw9IjxzZWxlY3Q+PG9wdGlvbiBzZWxlY3RlZD0nJz48L29wdGlvbj48L3NlbGVjdD4iLGUucXVlcnlTZWxlY3RvckFsbCgiW3NlbGVjdGVkXSIpLmxlbmd0aHx8Zy5wdXNoKCJcXFsiK1ArIiooPzp2YWx1ZXwiK0IrIikiKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIjpjaGVja2VkIikubGVuZ3RofHxnLnB1c2goIjpjaGVja2VkIil9KSx1dChmdW5jdGlvbihlKXt2YXIgdD1uLmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCJoaWRkZW4iKSxlLmFwcGVuZENoaWxkKHQpLnNldEF0dHJpYnV0ZSgidCIsIiIpLGUucXVlcnlTZWxlY3RvckFsbCgiW3RePScnXSIpLmxlbmd0aCYmZy5wdXNoKCJbKl4kXT0iK1ArIiooPzonJ3xcIlwiKSIpLGUucXVlcnlTZWxlY3RvckFsbCgiOmVuYWJsZWQiKS5sZW5ndGh8fGcucHVzaCgiOmVuYWJsZWQiLCI6ZGlzYWJsZWQiKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIiosOngiKSxnLnB1c2goIiwuKjoiKX0pKSwoci5tYXRjaGVzU2VsZWN0b3I9Sy50ZXN0KHk9ZC53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fGQubW96TWF0Y2hlc1NlbGVjdG9yfHxkLm9NYXRjaGVzU2VsZWN0b3J8fGQubXNNYXRjaGVzU2VsZWN0b3IpKSYmdXQoZnVuY3Rpb24oZSl7ci5kaXNjb25uZWN0ZWRNYXRjaD15LmNhbGwoZSwiZGl2IikseS5jYWxsKGUsIltzIT0nJ106eCIpLG0ucHVzaCgiIT0iLEkpfSksZz1nLmxlbmd0aCYmUmVnRXhwKGcuam9pbigifCIpKSxtPW0ubGVuZ3RoJiZSZWdFeHAobS5qb2luKCJ8IikpLHY9Sy50ZXN0KGQuY29udGFpbnMpfHxkLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uP2Z1bmN0aW9uKGUsdCl7dmFyIG49OT09PWUubm9kZVR5cGU/ZS5kb2N1bWVudEVsZW1lbnQ6ZSxyPXQmJnQucGFyZW50Tm9kZTtyZXR1cm4gZT09PXJ8fCEoIXJ8fDEhPT1yLm5vZGVUeXBlfHwhKG4uY29udGFpbnM/bi5jb250YWlucyhyKTplLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYxNiZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHIpKSl9OmZ1bmN0aW9uKGUsdCl7aWYodCl3aGlsZSh0PXQucGFyZW50Tm9kZSlpZih0PT09ZSlyZXR1cm4hMDtyZXR1cm4hMX0sQT1kLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uP2Z1bmN0aW9uKGUsdCl7aWYoZT09PXQpcmV0dXJuIFM9ITAsMDt2YXIgaT10LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHQpO3JldHVybiBpPzEmaXx8IXIuc29ydERldGFjaGVkJiZ0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGUpPT09aT9lPT09bnx8dih3LGUpPy0xOnQ9PT1ufHx2KHcsdCk/MTpjP0YuY2FsbChjLGUpLUYuY2FsbChjLHQpOjA6NCZpPy0xOjE6ZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj8tMToxfTpmdW5jdGlvbihlLHQpe3ZhciByLGk9MCxvPWUucGFyZW50Tm9kZSxhPXQucGFyZW50Tm9kZSxzPVtlXSxsPVt0XTtpZihlPT09dClyZXR1cm4gUz0hMCwwO2lmKCFvfHwhYSlyZXR1cm4gZT09PW4/LTE6dD09PW4/MTpvPy0xOmE/MTpjP0YuY2FsbChjLGUpLUYuY2FsbChjLHQpOjA7aWYobz09PWEpcmV0dXJuIHB0KGUsdCk7cj1lO3doaWxlKHI9ci5wYXJlbnROb2RlKXMudW5zaGlmdChyKTtyPXQ7d2hpbGUocj1yLnBhcmVudE5vZGUpbC51bnNoaWZ0KHIpO3doaWxlKHNbaV09PT1sW2ldKWkrKztyZXR1cm4gaT9wdChzW2ldLGxbaV0pOnNbaV09PT13Py0xOmxbaV09PT13PzE6MH0sbik6Zn0sYXQubWF0Y2hlcz1mdW5jdGlvbihlLHQpe3JldHVybiBhdChlLG51bGwsbnVsbCx0KX0sYXQubWF0Y2hlc1NlbGVjdG9yPWZ1bmN0aW9uKGUsdCl7aWYoKGUub3duZXJEb2N1bWVudHx8ZSkhPT1mJiZwKGUpLHQ9dC5yZXBsYWNlKFksIj0nJDEnXSIpLCEoIXIubWF0Y2hlc1NlbGVjdG9yfHwhaHx8bSYmbS50ZXN0KHQpfHxnJiZnLnRlc3QodCkpKXRyeXt2YXIgbj15LmNhbGwoZSx0KTtpZihufHxyLmRpc2Nvbm5lY3RlZE1hdGNofHxlLmRvY3VtZW50JiYxMSE9PWUuZG9jdW1lbnQubm9kZVR5cGUpcmV0dXJuIG59Y2F0Y2goaSl7fXJldHVybiBhdCh0LGYsbnVsbCxbZV0pLmxlbmd0aD4wfSxhdC5jb250YWlucz1mdW5jdGlvbihlLHQpe3JldHVybihlLm93bmVyRG9jdW1lbnR8fGUpIT09ZiYmcChlKSx2KGUsdCl9LGF0LmF0dHI9ZnVuY3Rpb24oZSxuKXsoZS5vd25lckRvY3VtZW50fHxlKSE9PWYmJnAoZSk7dmFyIGk9by5hdHRySGFuZGxlW24udG9Mb3dlckNhc2UoKV0sYT1pJiZMLmNhbGwoby5hdHRySGFuZGxlLG4udG9Mb3dlckNhc2UoKSk/aShlLG4sIWgpOnQ7cmV0dXJuIGE9PT10P3IuYXR0cmlidXRlc3x8IWg/ZS5nZXRBdHRyaWJ1dGUobik6KGE9ZS5nZXRBdHRyaWJ1dGVOb2RlKG4pKSYmYS5zcGVjaWZpZWQ/YS52YWx1ZTpudWxsOmF9LGF0LmVycm9yPWZ1bmN0aW9uKGUpe3Rocm93IEVycm9yKCJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiAiK2UpfSxhdC51bmlxdWVTb3J0PWZ1bmN0aW9uKGUpe3ZhciB0LG49W10saT0wLG89MDtpZihTPSFyLmRldGVjdER1cGxpY2F0ZXMsYz0hci5zb3J0U3RhYmxlJiZlLnNsaWNlKDApLGUuc29ydChBKSxTKXt3aGlsZSh0PWVbbysrXSl0PT09ZVtvXSYmKGk9bi5wdXNoKG8pKTt3aGlsZShpLS0pZS5zcGxpY2UobltpXSwxKX1yZXR1cm4gZX0sYT1hdC5nZXRUZXh0PWZ1bmN0aW9uKGUpe3ZhciB0LG49IiIscj0wLGk9ZS5ub2RlVHlwZTtpZihpKXtpZigxPT09aXx8OT09PWl8fDExPT09aSl7aWYoInN0cmluZyI9PXR5cGVvZiBlLnRleHRDb250ZW50KXJldHVybiBlLnRleHRDb250ZW50O2ZvcihlPWUuZmlyc3RDaGlsZDtlO2U9ZS5uZXh0U2libGluZyluKz1hKGUpfWVsc2UgaWYoMz09PWl8fDQ9PT1pKXJldHVybiBlLm5vZGVWYWx1ZX1lbHNlIGZvcig7dD1lW3JdO3IrKyluKz1hKHQpO3JldHVybiBufSxvPWF0LnNlbGVjdG9ycz17Y2FjaGVMZW5ndGg6NTAsY3JlYXRlUHNldWRvOmx0LG1hdGNoOlEsYXR0ckhhbmRsZTp7fSxmaW5kOnt9LHJlbGF0aXZlOnsiPiI6e2RpcjoicGFyZW50Tm9kZSIsZmlyc3Q6ITB9LCIgIjp7ZGlyOiJwYXJlbnROb2RlIn0sIisiOntkaXI6InByZXZpb3VzU2libGluZyIsZmlyc3Q6ITB9LCJ+Ijp7ZGlyOiJwcmV2aW91c1NpYmxpbmcifX0scHJlRmlsdGVyOntBVFRSOmZ1bmN0aW9uKGUpe3JldHVybiBlWzFdPWVbMV0ucmVwbGFjZShydCxpdCksZVszXT0oZVs0XXx8ZVs1XXx8IiIpLnJlcGxhY2UocnQsaXQpLCJ+PSI9PT1lWzJdJiYoZVszXT0iICIrZVszXSsiICIpLGUuc2xpY2UoMCw0KX0sQ0hJTEQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGVbMV09ZVsxXS50b0xvd2VyQ2FzZSgpLCJudGgiPT09ZVsxXS5zbGljZSgwLDMpPyhlWzNdfHxhdC5lcnJvcihlWzBdKSxlWzRdPSsoZVs0XT9lWzVdKyhlWzZdfHwxKToyKigiZXZlbiI9PT1lWzNdfHwib2RkIj09PWVbM10pKSxlWzVdPSsoZVs3XStlWzhdfHwib2RkIj09PWVbM10pKTplWzNdJiZhdC5lcnJvcihlWzBdKSxlfSxQU0VVRE86ZnVuY3Rpb24oZSl7dmFyIG4scj0hZVs1XSYmZVsyXTtyZXR1cm4gUS5DSElMRC50ZXN0KGVbMF0pP251bGw6KGVbM10mJmVbNF0hPT10P2VbMl09ZVs0XTpyJiZKLnRlc3QocikmJihuPW10KHIsITApKSYmKG49ci5pbmRleE9mKCIpIixyLmxlbmd0aC1uKS1yLmxlbmd0aCkmJihlWzBdPWVbMF0uc2xpY2UoMCxuKSxlWzJdPXIuc2xpY2UoMCxuKSksZS5zbGljZSgwLDMpKX19LGZpbHRlcjp7VEFHOmZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZShydCxpdCkudG9Mb3dlckNhc2UoKTtyZXR1cm4iKiI9PT1lP2Z1bmN0aW9uKCl7cmV0dXJuITB9OmZ1bmN0aW9uKGUpe3JldHVybiBlLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT10fX0sQ0xBU1M6ZnVuY3Rpb24oZSl7dmFyIHQ9TltlKyIgIl07cmV0dXJuIHR8fCh0PVJlZ0V4cCgiKF58IitQKyIpIitlKyIoIitQKyJ8JCkiKSkmJk4oZSxmdW5jdGlvbihlKXtyZXR1cm4gdC50ZXN0KCJzdHJpbmciPT10eXBlb2YgZS5jbGFzc05hbWUmJmUuY2xhc3NOYW1lfHx0eXBlb2YgZS5nZXRBdHRyaWJ1dGUhPT1qJiZlLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpfSl9LEFUVFI6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBmdW5jdGlvbihyKXt2YXIgaT1hdC5hdHRyKHIsZSk7cmV0dXJuIG51bGw9PWk/IiE9Ij09PXQ6dD8oaSs9IiIsIj0iPT09dD9pPT09bjoiIT0iPT09dD9pIT09bjoiXj0iPT09dD9uJiYwPT09aS5pbmRleE9mKG4pOiIqPSI9PT10P24mJmkuaW5kZXhPZihuKT4tMToiJD0iPT09dD9uJiZpLnNsaWNlKC1uLmxlbmd0aCk9PT1uOiJ+PSI9PT10PygiICIraSsiICIpLmluZGV4T2Yobik+LTE6Inw9Ij09PXQ/aT09PW58fGkuc2xpY2UoMCxuLmxlbmd0aCsxKT09PW4rIi0iOiExKTohMH19LENISUxEOmZ1bmN0aW9uKGUsdCxuLHIsaSl7dmFyIG89Im50aCIhPT1lLnNsaWNlKDAsMyksYT0ibGFzdCIhPT1lLnNsaWNlKC00KSxzPSJvZi10eXBlIj09PXQ7cmV0dXJuIDE9PT1yJiYwPT09aT9mdW5jdGlvbihlKXtyZXR1cm4hIWUucGFyZW50Tm9kZX06ZnVuY3Rpb24odCxuLGwpe3ZhciB1LGMscCxmLGQsaCxnPW8hPT1hPyJuZXh0U2libGluZyI6InByZXZpb3VzU2libGluZyIsbT10LnBhcmVudE5vZGUseT1zJiZ0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksdj0hbCYmIXM7aWYobSl7aWYobyl7d2hpbGUoZyl7cD10O3doaWxlKHA9cFtnXSlpZihzP3Aubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXk6MT09PXAubm9kZVR5cGUpcmV0dXJuITE7aD1nPSJvbmx5Ij09PWUmJiFoJiYibmV4dFNpYmxpbmcifXJldHVybiEwfWlmKGg9W2E/bS5maXJzdENoaWxkOm0ubGFzdENoaWxkXSxhJiZ2KXtjPW1bYl18fChtW2JdPXt9KSx1PWNbZV18fFtdLGQ9dVswXT09PVQmJnVbMV0sZj11WzBdPT09VCYmdVsyXSxwPWQmJm0uY2hpbGROb2Rlc1tkXTt3aGlsZShwPSsrZCYmcCYmcFtnXXx8KGY9ZD0wKXx8aC5wb3AoKSlpZigxPT09cC5ub2RlVHlwZSYmKytmJiZwPT09dCl7Y1tlXT1bVCxkLGZdO2JyZWFrfX1lbHNlIGlmKHYmJih1PSh0W2JdfHwodFtiXT17fSkpW2VdKSYmdVswXT09PVQpZj11WzFdO2Vsc2Ugd2hpbGUocD0rK2QmJnAmJnBbZ118fChmPWQ9MCl8fGgucG9wKCkpaWYoKHM/cC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09eToxPT09cC5ub2RlVHlwZSkmJisrZiYmKHYmJigocFtiXXx8KHBbYl09e30pKVtlXT1bVCxmXSkscD09PXQpKWJyZWFrO3JldHVybiBmLT1pLGY9PT1yfHwwPT09ZiVyJiZmL3I+PTB9fX0sUFNFVURPOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj1vLnBzZXVkb3NbZV18fG8uc2V0RmlsdGVyc1tlLnRvTG93ZXJDYXNlKCldfHxhdC5lcnJvcigidW5zdXBwb3J0ZWQgcHNldWRvOiAiK2UpO3JldHVybiByW2JdP3IodCk6ci5sZW5ndGg+MT8obj1bZSxlLCIiLHRdLG8uc2V0RmlsdGVycy5oYXNPd25Qcm9wZXJ0eShlLnRvTG93ZXJDYXNlKCkpP2x0KGZ1bmN0aW9uKGUsbil7dmFyIGksbz1yKGUsdCksYT1vLmxlbmd0aDt3aGlsZShhLS0paT1GLmNhbGwoZSxvW2FdKSxlW2ldPSEobltpXT1vW2FdKX0pOmZ1bmN0aW9uKGUpe3JldHVybiByKGUsMCxuKX0pOnJ9fSxwc2V1ZG9zOntub3Q6bHQoZnVuY3Rpb24oZSl7dmFyIHQ9W10sbj1bXSxyPWwoZS5yZXBsYWNlKHosIiQxIikpO3JldHVybiByW2JdP2x0KGZ1bmN0aW9uKGUsdCxuLGkpe3ZhciBvLGE9cihlLG51bGwsaSxbXSkscz1lLmxlbmd0aDt3aGlsZShzLS0pKG89YVtzXSkmJihlW3NdPSEodFtzXT1vKSl9KTpmdW5jdGlvbihlLGksbyl7cmV0dXJuIHRbMF09ZSxyKHQsbnVsbCxvLG4pLCFuLnBvcCgpfX0pLGhhczpsdChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGF0KGUsdCkubGVuZ3RoPjB9fSksY29udGFpbnM6bHQoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybih0LnRleHRDb250ZW50fHx0LmlubmVyVGV4dHx8YSh0KSkuaW5kZXhPZihlKT4tMX19KSxsYW5nOmx0KGZ1bmN0aW9uKGUpe3JldHVybiBHLnRlc3QoZXx8IiIpfHxhdC5lcnJvcigidW5zdXBwb3J0ZWQgbGFuZzogIitlKSxlPWUucmVwbGFjZShydCxpdCkudG9Mb3dlckNhc2UoKSxmdW5jdGlvbih0KXt2YXIgbjtkbyBpZihuPWg/dC5sYW5nOnQuZ2V0QXR0cmlidXRlKCJ4bWw6bGFuZyIpfHx0LmdldEF0dHJpYnV0ZSgibGFuZyIpKXJldHVybiBuPW4udG9Mb3dlckNhc2UoKSxuPT09ZXx8MD09PW4uaW5kZXhPZihlKyItIik7d2hpbGUoKHQ9dC5wYXJlbnROb2RlKSYmMT09PXQubm9kZVR5cGUpO3JldHVybiExfX0pLHRhcmdldDpmdW5jdGlvbih0KXt2YXIgbj1lLmxvY2F0aW9uJiZlLmxvY2F0aW9uLmhhc2g7cmV0dXJuIG4mJm4uc2xpY2UoMSk9PT10LmlkfSxyb290OmZ1bmN0aW9uKGUpe3JldHVybiBlPT09ZH0sZm9jdXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1mLmFjdGl2ZUVsZW1lbnQmJighZi5oYXNGb2N1c3x8Zi5oYXNGb2N1cygpKSYmISEoZS50eXBlfHxlLmhyZWZ8fH5lLnRhYkluZGV4KX0sZW5hYmxlZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5kaXNhYmxlZD09PSExfSxkaXNhYmxlZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5kaXNhYmxlZD09PSEwfSxjaGVja2VkOmZ1bmN0aW9uKGUpe3ZhciB0PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09dCYmISFlLmNoZWNrZWR8fCJvcHRpb24iPT09dCYmISFlLnNlbGVjdGVkfSxzZWxlY3RlZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5wYXJlbnROb2RlJiZlLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCxlLnNlbGVjdGVkPT09ITB9LGVtcHR5OmZ1bmN0aW9uKGUpe2ZvcihlPWUuZmlyc3RDaGlsZDtlO2U9ZS5uZXh0U2libGluZylpZihlLm5vZGVOYW1lPiJAInx8Mz09PWUubm9kZVR5cGV8fDQ9PT1lLm5vZGVUeXBlKXJldHVybiExO3JldHVybiEwfSxwYXJlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIW8ucHNldWRvcy5lbXB0eShlKX0saGVhZGVyOmZ1bmN0aW9uKGUpe3JldHVybiB0dC50ZXN0KGUubm9kZU5hbWUpfSxpbnB1dDpmdW5jdGlvbihlKXtyZXR1cm4gZXQudGVzdChlLm5vZGVOYW1lKX0sYnV0dG9uOmZ1bmN0aW9uKGUpe3ZhciB0PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09dCYmImJ1dHRvbiI9PT1lLnR5cGV8fCJidXR0b24iPT09dH0sdGV4dDpmdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4iaW5wdXQiPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiYidGV4dCI9PT1lLnR5cGUmJihudWxsPT0odD1lLmdldEF0dHJpYnV0ZSgidHlwZSIpKXx8dC50b0xvd2VyQ2FzZSgpPT09ZS50eXBlKX0sZmlyc3Q6aHQoZnVuY3Rpb24oKXtyZXR1cm5bMF19KSxsYXN0Omh0KGZ1bmN0aW9uKGUsdCl7cmV0dXJuW3QtMV19KSxlcTpodChmdW5jdGlvbihlLHQsbil7cmV0dXJuWzA+bj9uK3Q6bl19KSxldmVuOmh0KGZ1bmN0aW9uKGUsdCl7dmFyIG49MDtmb3IoO3Q+bjtuKz0yKWUucHVzaChuKTtyZXR1cm4gZX0pLG9kZDpodChmdW5jdGlvbihlLHQpe3ZhciBuPTE7Zm9yKDt0Pm47bis9MillLnB1c2gobik7cmV0dXJuIGV9KSxsdDpodChmdW5jdGlvbihlLHQsbil7dmFyIHI9MD5uP24rdDpuO2Zvcig7LS1yPj0wOyllLnB1c2gocik7cmV0dXJuIGV9KSxndDpodChmdW5jdGlvbihlLHQsbil7dmFyIHI9MD5uP24rdDpuO2Zvcig7dD4rK3I7KWUucHVzaChyKTtyZXR1cm4gZX0pfX0sby5wc2V1ZG9zLm50aD1vLnBzZXVkb3MuZXE7Zm9yKG4gaW57cmFkaW86ITAsY2hlY2tib3g6ITAsZmlsZTohMCxwYXNzd29yZDohMCxpbWFnZTohMH0pby5wc2V1ZG9zW25dPWZ0KG4pO2ZvcihuIGlue3N1Ym1pdDohMCxyZXNldDohMH0pby5wc2V1ZG9zW25dPWR0KG4pO2Z1bmN0aW9uIGd0KCl7fWd0LnByb3RvdHlwZT1vLmZpbHRlcnM9by5wc2V1ZG9zLG8uc2V0RmlsdGVycz1uZXcgZ3Q7ZnVuY3Rpb24gbXQoZSx0KXt2YXIgbixyLGksYSxzLGwsdSxjPWtbZSsiICJdO2lmKGMpcmV0dXJuIHQ/MDpjLnNsaWNlKDApO3M9ZSxsPVtdLHU9by5wcmVGaWx0ZXI7d2hpbGUocyl7KCFufHwocj1YLmV4ZWMocykpKSYmKHImJihzPXMuc2xpY2UoclswXS5sZW5ndGgpfHxzKSxsLnB1c2goaT1bXSkpLG49ITEsKHI9VS5leGVjKHMpKSYmKG49ci5zaGlmdCgpLGkucHVzaCh7dmFsdWU6bix0eXBlOnJbMF0ucmVwbGFjZSh6LCIgIil9KSxzPXMuc2xpY2Uobi5sZW5ndGgpKTtmb3IoYSBpbiBvLmZpbHRlcikhKHI9UVthXS5leGVjKHMpKXx8dVthXSYmIShyPXVbYV0ocikpfHwobj1yLnNoaWZ0KCksaS5wdXNoKHt2YWx1ZTpuLHR5cGU6YSxtYXRjaGVzOnJ9KSxzPXMuc2xpY2Uobi5sZW5ndGgpKTtpZighbilicmVha31yZXR1cm4gdD9zLmxlbmd0aDpzP2F0LmVycm9yKGUpOmsoZSxsKS5zbGljZSgwKX1mdW5jdGlvbiB5dChlKXt2YXIgdD0wLG49ZS5sZW5ndGgscj0iIjtmb3IoO24+dDt0Kyspcis9ZVt0XS52YWx1ZTtyZXR1cm4gcn1mdW5jdGlvbiB2dChlLHQsbil7dmFyIHI9dC5kaXIsbz1uJiYicGFyZW50Tm9kZSI9PT1yLGE9QysrO3JldHVybiB0LmZpcnN0P2Z1bmN0aW9uKHQsbixpKXt3aGlsZSh0PXRbcl0paWYoMT09PXQubm9kZVR5cGV8fG8pcmV0dXJuIGUodCxuLGkpfTpmdW5jdGlvbih0LG4scyl7dmFyIGwsdSxjLHA9VCsiICIrYTtpZihzKXt3aGlsZSh0PXRbcl0paWYoKDE9PT10Lm5vZGVUeXBlfHxvKSYmZSh0LG4scykpcmV0dXJuITB9ZWxzZSB3aGlsZSh0PXRbcl0paWYoMT09PXQubm9kZVR5cGV8fG8paWYoYz10W2JdfHwodFtiXT17fSksKHU9Y1tyXSkmJnVbMF09PT1wKXtpZigobD11WzFdKT09PSEwfHxsPT09aSlyZXR1cm4gbD09PSEwfWVsc2UgaWYodT1jW3JdPVtwXSx1WzFdPWUodCxuLHMpfHxpLHVbMV09PT0hMClyZXR1cm4hMH19ZnVuY3Rpb24gYnQoZSl7cmV0dXJuIGUubGVuZ3RoPjE/ZnVuY3Rpb24odCxuLHIpe3ZhciBpPWUubGVuZ3RoO3doaWxlKGktLSlpZighZVtpXSh0LG4scikpcmV0dXJuITE7cmV0dXJuITB9OmVbMF19ZnVuY3Rpb24geHQoZSx0LG4scixpKXt2YXIgbyxhPVtdLHM9MCxsPWUubGVuZ3RoLHU9bnVsbCE9dDtmb3IoO2w+cztzKyspKG89ZVtzXSkmJighbnx8bihvLHIsaSkpJiYoYS5wdXNoKG8pLHUmJnQucHVzaChzKSk7cmV0dXJuIGF9ZnVuY3Rpb24gd3QoZSx0LG4scixpLG8pe3JldHVybiByJiYhcltiXSYmKHI9d3QocikpLGkmJiFpW2JdJiYoaT13dChpLG8pKSxsdChmdW5jdGlvbihvLGEscyxsKXt2YXIgdSxjLHAsZj1bXSxkPVtdLGg9YS5sZW5ndGgsZz1vfHxOdCh0fHwiKiIscy5ub2RlVHlwZT9bc106cyxbXSksbT0hZXx8IW8mJnQ/Zzp4dChnLGYsZSxzLGwpLHk9bj9pfHwobz9lOmh8fHIpP1tdOmE6bTtpZihuJiZuKG0seSxzLGwpLHIpe3U9eHQoeSxkKSxyKHUsW10scyxsKSxjPXUubGVuZ3RoO3doaWxlKGMtLSkocD11W2NdKSYmKHlbZFtjXV09IShtW2RbY11dPXApKX1pZihvKXtpZihpfHxlKXtpZihpKXt1PVtdLGM9eS5sZW5ndGg7d2hpbGUoYy0tKShwPXlbY10pJiZ1LnB1c2gobVtjXT1wKTtpKG51bGwseT1bXSx1LGwpfWM9eS5sZW5ndGg7d2hpbGUoYy0tKShwPXlbY10pJiYodT1pP0YuY2FsbChvLHApOmZbY10pPi0xJiYob1t1XT0hKGFbdV09cCkpfX1lbHNlIHk9eHQoeT09PWE/eS5zcGxpY2UoaCx5Lmxlbmd0aCk6eSksaT9pKG51bGwsYSx5LGwpOk0uYXBwbHkoYSx5KX0pfWZ1bmN0aW9uIFR0KGUpe3ZhciB0LG4scixpPWUubGVuZ3RoLGE9by5yZWxhdGl2ZVtlWzBdLnR5cGVdLHM9YXx8by5yZWxhdGl2ZVsiICJdLGw9YT8xOjAsYz12dChmdW5jdGlvbihlKXtyZXR1cm4gZT09PXR9LHMsITApLHA9dnQoZnVuY3Rpb24oZSl7cmV0dXJuIEYuY2FsbCh0LGUpPi0xfSxzLCEwKSxmPVtmdW5jdGlvbihlLG4scil7cmV0dXJuIWEmJihyfHxuIT09dSl8fCgodD1uKS5ub2RlVHlwZT9jKGUsbixyKTpwKGUsbixyKSl9XTtmb3IoO2k+bDtsKyspaWYobj1vLnJlbGF0aXZlW2VbbF0udHlwZV0pZj1bdnQoYnQoZiksbildO2Vsc2V7aWYobj1vLmZpbHRlcltlW2xdLnR5cGVdLmFwcGx5KG51bGwsZVtsXS5tYXRjaGVzKSxuW2JdKXtmb3Iocj0rK2w7aT5yO3IrKylpZihvLnJlbGF0aXZlW2Vbcl0udHlwZV0pYnJlYWs7cmV0dXJuIHd0KGw+MSYmYnQoZiksbD4xJiZ5dChlLnNsaWNlKDAsbC0xKS5jb25jYXQoe3ZhbHVlOiIgIj09PWVbbC0yXS50eXBlPyIqIjoiIn0pKS5yZXBsYWNlKHosIiQxIiksbixyPmwmJlR0KGUuc2xpY2UobCxyKSksaT5yJiZUdChlPWUuc2xpY2UocikpLGk+ciYmeXQoZSkpfWYucHVzaChuKX1yZXR1cm4gYnQoZil9ZnVuY3Rpb24gQ3QoZSx0KXt2YXIgbj0wLHI9dC5sZW5ndGg+MCxhPWUubGVuZ3RoPjAscz1mdW5jdGlvbihzLGwsYyxwLGQpe3ZhciBoLGcsbSx5PVtdLHY9MCxiPSIwIix4PXMmJltdLHc9bnVsbCE9ZCxDPXUsTj1zfHxhJiZvLmZpbmQuVEFHKCIqIixkJiZsLnBhcmVudE5vZGV8fGwpLGs9VCs9bnVsbD09Qz8xOk1hdGgucmFuZG9tKCl8fC4xO2Zvcih3JiYodT1sIT09ZiYmbCxpPW4pO251bGwhPShoPU5bYl0pO2IrKyl7aWYoYSYmaCl7Zz0wO3doaWxlKG09ZVtnKytdKWlmKG0oaCxsLGMpKXtwLnB1c2goaCk7YnJlYWt9dyYmKFQ9ayxpPSsrbil9ciYmKChoPSFtJiZoKSYmdi0tLHMmJngucHVzaChoKSl9aWYodis9YixyJiZiIT09dil7Zz0wO3doaWxlKG09dFtnKytdKW0oeCx5LGwsYyk7aWYocyl7aWYodj4wKXdoaWxlKGItLSl4W2JdfHx5W2JdfHwoeVtiXT1xLmNhbGwocCkpO3k9eHQoeSl9TS5hcHBseShwLHkpLHcmJiFzJiZ5Lmxlbmd0aD4wJiZ2K3QubGVuZ3RoPjEmJmF0LnVuaXF1ZVNvcnQocCl9cmV0dXJuIHcmJihUPWssdT1DKSx4fTtyZXR1cm4gcj9sdChzKTpzfWw9YXQuY29tcGlsZT1mdW5jdGlvbihlLHQpe3ZhciBuLHI9W10saT1bXSxvPUVbZSsiICJdO2lmKCFvKXt0fHwodD1tdChlKSksbj10Lmxlbmd0aDt3aGlsZShuLS0pbz1UdCh0W25dKSxvW2JdP3IucHVzaChvKTppLnB1c2gobyk7bz1FKGUsQ3QoaSxyKSl9cmV0dXJuIG99O2Z1bmN0aW9uIE50KGUsdCxuKXt2YXIgcj0wLGk9dC5sZW5ndGg7Zm9yKDtpPnI7cisrKWF0KGUsdFtyXSxuKTtyZXR1cm4gbn1mdW5jdGlvbiBrdChlLHQsbixpKXt2YXIgYSxzLHUsYyxwLGY9bXQoZSk7aWYoIWkmJjE9PT1mLmxlbmd0aCl7aWYocz1mWzBdPWZbMF0uc2xpY2UoMCkscy5sZW5ndGg+MiYmIklEIj09PSh1PXNbMF0pLnR5cGUmJnIuZ2V0QnlJZCYmOT09PXQubm9kZVR5cGUmJmgmJm8ucmVsYXRpdmVbc1sxXS50eXBlXSl7aWYodD0oby5maW5kLklEKHUubWF0Y2hlc1swXS5yZXBsYWNlKHJ0LGl0KSx0KXx8W10pWzBdLCF0KXJldHVybiBuO2U9ZS5zbGljZShzLnNoaWZ0KCkudmFsdWUubGVuZ3RoKX1hPVEubmVlZHNDb250ZXh0LnRlc3QoZSk/MDpzLmxlbmd0aDt3aGlsZShhLS0pe2lmKHU9c1thXSxvLnJlbGF0aXZlW2M9dS50eXBlXSlicmVhaztpZigocD1vLmZpbmRbY10pJiYoaT1wKHUubWF0Y2hlc1swXS5yZXBsYWNlKHJ0LGl0KSxWLnRlc3Qoc1swXS50eXBlKSYmdC5wYXJlbnROb2RlfHx0KSkpe2lmKHMuc3BsaWNlKGEsMSksZT1pLmxlbmd0aCYmeXQocyksIWUpcmV0dXJuIE0uYXBwbHkobixpKSxuO2JyZWFrfX19cmV0dXJuIGwoZSxmKShpLHQsIWgsbixWLnRlc3QoZSkpLG59ci5zb3J0U3RhYmxlPWIuc3BsaXQoIiIpLnNvcnQoQSkuam9pbigiIik9PT1iLHIuZGV0ZWN0RHVwbGljYXRlcz1TLHAoKSxyLnNvcnREZXRhY2hlZD11dChmdW5jdGlvbihlKXtyZXR1cm4gMSZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGYuY3JlYXRlRWxlbWVudCgiZGl2IikpfSksdXQoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaW5uZXJIVE1MPSI8YSBocmVmPScjJz48L2E+IiwiIyI9PT1lLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJocmVmIil9KXx8Y3QoInR5cGV8aHJlZnxoZWlnaHR8d2lkdGgiLGZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gcj90OmUuZ2V0QXR0cmlidXRlKG4sInR5cGUiPT09bi50b0xvd2VyQ2FzZSgpPzE6Mil9KSxyLmF0dHJpYnV0ZXMmJnV0KGZ1bmN0aW9uKGUpe3JldHVybiBlLmlubmVySFRNTD0iPGlucHV0Lz4iLGUuZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwiIiksIiI9PT1lLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpfSl8fGN0KCJ2YWx1ZSIsZnVuY3Rpb24oZSxuLHIpe3JldHVybiByfHwiaW5wdXQiIT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpP3Q6ZS5kZWZhdWx0VmFsdWV9KSx1dChmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZS5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIil9KXx8Y3QoQixmdW5jdGlvbihlLG4scil7dmFyIGk7cmV0dXJuIHI/dDooaT1lLmdldEF0dHJpYnV0ZU5vZGUobikpJiZpLnNwZWNpZmllZD9pLnZhbHVlOmVbbl09PT0hMD9uLnRvTG93ZXJDYXNlKCk6bnVsbH0pLHguZmluZD1hdCx4LmV4cHI9YXQuc2VsZWN0b3JzLHguZXhwclsiOiJdPXguZXhwci5wc2V1ZG9zLHgudW5pcXVlPWF0LnVuaXF1ZVNvcnQseC50ZXh0PWF0LmdldFRleHQseC5pc1hNTERvYz1hdC5pc1hNTCx4LmNvbnRhaW5zPWF0LmNvbnRhaW5zfShlKTt2YXIgTz17fTtmdW5jdGlvbiBGKGUpe3ZhciB0PU9bZV09e307cmV0dXJuIHguZWFjaChlLm1hdGNoKFQpfHxbXSxmdW5jdGlvbihlLG4pe3Rbbl09ITB9KSx0fXguQ2FsbGJhY2tzPWZ1bmN0aW9uKGUpe2U9InN0cmluZyI9PXR5cGVvZiBlP09bZV18fEYoZSk6eC5leHRlbmQoe30sZSk7dmFyIG4scixpLG8sYSxzLGw9W10sdT0hZS5vbmNlJiZbXSxjPWZ1bmN0aW9uKHQpe2ZvcihyPWUubWVtb3J5JiZ0LGk9ITAsYT1zfHwwLHM9MCxvPWwubGVuZ3RoLG49ITA7bCYmbz5hO2ErKylpZihsW2FdLmFwcGx5KHRbMF0sdFsxXSk9PT0hMSYmZS5zdG9wT25GYWxzZSl7cj0hMTticmVha31uPSExLGwmJih1P3UubGVuZ3RoJiZjKHUuc2hpZnQoKSk6cj9sPVtdOnAuZGlzYWJsZSgpKX0scD17YWRkOmZ1bmN0aW9uKCl7aWYobCl7dmFyIHQ9bC5sZW5ndGg7KGZ1bmN0aW9uIGkodCl7eC5lYWNoKHQsZnVuY3Rpb24odCxuKXt2YXIgcj14LnR5cGUobik7ImZ1bmN0aW9uIj09PXI/ZS51bmlxdWUmJnAuaGFzKG4pfHxsLnB1c2gobik6biYmbi5sZW5ndGgmJiJzdHJpbmciIT09ciYmaShuKX0pfSkoYXJndW1lbnRzKSxuP289bC5sZW5ndGg6ciYmKHM9dCxjKHIpKX1yZXR1cm4gdGhpc30scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIGwmJnguZWFjaChhcmd1bWVudHMsZnVuY3Rpb24oZSx0KXt2YXIgcjt3aGlsZSgocj14LmluQXJyYXkodCxsLHIpKT4tMSlsLnNwbGljZShyLDEpLG4mJihvPj1yJiZvLS0sYT49ciYmYS0tKX0pLHRoaXN9LGhhczpmdW5jdGlvbihlKXtyZXR1cm4gZT94LmluQXJyYXkoZSxsKT4tMTohKCFsfHwhbC5sZW5ndGgpfSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiBsPVtdLG89MCx0aGlzfSxkaXNhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGw9dT1yPXQsdGhpc30sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hbH0sbG9jazpmdW5jdGlvbigpe3JldHVybiB1PXQscnx8cC5kaXNhYmxlKCksdGhpc30sbG9ja2VkOmZ1bmN0aW9uKCl7cmV0dXJuIXV9LGZpcmVXaXRoOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIWx8fGkmJiF1fHwodD10fHxbXSx0PVtlLHQuc2xpY2U/dC5zbGljZSgpOnRdLG4/dS5wdXNoKHQpOmModCkpLHRoaXN9LGZpcmU6ZnVuY3Rpb24oKXtyZXR1cm4gcC5maXJlV2l0aCh0aGlzLGFyZ3VtZW50cyksdGhpc30sZmlyZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIWl9fTtyZXR1cm4gcH0seC5leHRlbmQoe0RlZmVycmVkOmZ1bmN0aW9uKGUpe3ZhciB0PVtbInJlc29sdmUiLCJkb25lIix4LkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwicmVzb2x2ZWQiXSxbInJlamVjdCIsImZhaWwiLHguQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCJyZWplY3RlZCJdLFsibm90aWZ5IiwicHJvZ3Jlc3MiLHguQ2FsbGJhY2tzKCJtZW1vcnkiKV1dLG49InBlbmRpbmciLHI9e3N0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIG59LGFsd2F5czpmdW5jdGlvbigpe3JldHVybiBpLmRvbmUoYXJndW1lbnRzKS5mYWlsKGFyZ3VtZW50cyksdGhpc30sdGhlbjpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cztyZXR1cm4geC5EZWZlcnJlZChmdW5jdGlvbihuKXt4LmVhY2godCxmdW5jdGlvbih0LG8pe3ZhciBhPW9bMF0scz14LmlzRnVuY3Rpb24oZVt0XSkmJmVbdF07aVtvWzFdXShmdW5jdGlvbigpe3ZhciBlPXMmJnMuYXBwbHkodGhpcyxhcmd1bWVudHMpO2UmJnguaXNGdW5jdGlvbihlLnByb21pc2UpP2UucHJvbWlzZSgpLmRvbmUobi5yZXNvbHZlKS5mYWlsKG4ucmVqZWN0KS5wcm9ncmVzcyhuLm5vdGlmeSk6blthKyJXaXRoIl0odGhpcz09PXI/bi5wcm9taXNlKCk6dGhpcyxzP1tlXTphcmd1bWVudHMpfSl9KSxlPW51bGx9KS5wcm9taXNlKCl9LHByb21pc2U6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWU/eC5leHRlbmQoZSxyKTpyfX0saT17fTtyZXR1cm4gci5waXBlPXIudGhlbix4LmVhY2godCxmdW5jdGlvbihlLG8pe3ZhciBhPW9bMl0scz1vWzNdO3Jbb1sxXV09YS5hZGQscyYmYS5hZGQoZnVuY3Rpb24oKXtuPXN9LHRbMV5lXVsyXS5kaXNhYmxlLHRbMl1bMl0ubG9jayksaVtvWzBdXT1mdW5jdGlvbigpe3JldHVybiBpW29bMF0rIldpdGgiXSh0aGlzPT09aT9yOnRoaXMsYXJndW1lbnRzKSx0aGlzfSxpW29bMF0rIldpdGgiXT1hLmZpcmVXaXRofSksci5wcm9taXNlKGkpLGUmJmUuY2FsbChpLGkpLGl9LHdoZW46ZnVuY3Rpb24oZSl7dmFyIHQ9MCxuPWcuY2FsbChhcmd1bWVudHMpLHI9bi5sZW5ndGgsaT0xIT09cnx8ZSYmeC5pc0Z1bmN0aW9uKGUucHJvbWlzZSk/cjowLG89MT09PWk/ZTp4LkRlZmVycmVkKCksYT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGZ1bmN0aW9uKHIpe3RbZV09dGhpcyxuW2VdPWFyZ3VtZW50cy5sZW5ndGg+MT9nLmNhbGwoYXJndW1lbnRzKTpyLG49PT1zP28ubm90aWZ5V2l0aCh0LG4pOi0taXx8by5yZXNvbHZlV2l0aCh0LG4pfX0scyxsLHU7aWYocj4xKWZvcihzPUFycmF5KHIpLGw9QXJyYXkociksdT1BcnJheShyKTtyPnQ7dCsrKW5bdF0mJnguaXNGdW5jdGlvbihuW3RdLnByb21pc2UpP25bdF0ucHJvbWlzZSgpLmRvbmUoYSh0LHUsbikpLmZhaWwoby5yZWplY3QpLnByb2dyZXNzKGEodCxsLHMpKTotLWk7cmV0dXJuIGl8fG8ucmVzb2x2ZVdpdGgodSxuKSxvLnByb21pc2UoKX19KSx4LnN1cHBvcnQ9ZnVuY3Rpb24odCl7dmFyIG4scixvLHMsbCx1LGMscCxmLGQ9YS5jcmVhdGVFbGVtZW50KCJkaXYiKTtpZihkLnNldEF0dHJpYnV0ZSgiY2xhc3NOYW1lIiwidCIpLGQuaW5uZXJIVE1MPSIgIDxsaW5rLz48dGFibGU+PC90YWJsZT48YSBocmVmPScvYSc+YTwvYT48aW5wdXQgdHlwZT0nY2hlY2tib3gnLz4iLG49ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpfHxbXSxyPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXSwhcnx8IXIuc3R5bGV8fCFuLmxlbmd0aClyZXR1cm4gdDtzPWEuY3JlYXRlRWxlbWVudCgic2VsZWN0IiksdT1zLmFwcGVuZENoaWxkKGEuY3JlYXRlRWxlbWVudCgib3B0aW9uIikpLG89ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXSxyLnN0eWxlLmNzc1RleHQ9InRvcDoxcHg7ZmxvYXQ6bGVmdDtvcGFjaXR5Oi41Iix0LmdldFNldEF0dHJpYnV0ZT0idCIhPT1kLmNsYXNzTmFtZSx0LmxlYWRpbmdXaGl0ZXNwYWNlPTM9PT1kLmZpcnN0Q2hpbGQubm9kZVR5cGUsdC50Ym9keT0hZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKS5sZW5ndGgsdC5odG1sU2VyaWFsaXplPSEhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCx0LnN0eWxlPS90b3AvLnRlc3Qoci5nZXRBdHRyaWJ1dGUoInN0eWxlIikpLHQuaHJlZk5vcm1hbGl6ZWQ9Ii9hIj09PXIuZ2V0QXR0cmlidXRlKCJocmVmIiksdC5vcGFjaXR5PS9eMC41Ly50ZXN0KHIuc3R5bGUub3BhY2l0eSksdC5jc3NGbG9hdD0hIXIuc3R5bGUuY3NzRmxvYXQsdC5jaGVja09uPSEhby52YWx1ZSx0Lm9wdFNlbGVjdGVkPXUuc2VsZWN0ZWQsdC5lbmN0eXBlPSEhYS5jcmVhdGVFbGVtZW50KCJmb3JtIikuZW5jdHlwZSx0Lmh0bWw1Q2xvbmU9Ijw6bmF2PjwvOm5hdj4iIT09YS5jcmVhdGVFbGVtZW50KCJuYXYiKS5jbG9uZU5vZGUoITApLm91dGVySFRNTCx0LmlubGluZUJsb2NrTmVlZHNMYXlvdXQ9ITEsdC5zaHJpbmtXcmFwQmxvY2tzPSExLHQucGl4ZWxQb3NpdGlvbj0hMSx0LmRlbGV0ZUV4cGFuZG89ITAsdC5ub0Nsb25lRXZlbnQ9ITAsdC5yZWxpYWJsZU1hcmdpblJpZ2h0PSEwLHQuYm94U2l6aW5nUmVsaWFibGU9ITAsby5jaGVja2VkPSEwLHQubm9DbG9uZUNoZWNrZWQ9by5jbG9uZU5vZGUoITApLmNoZWNrZWQscy5kaXNhYmxlZD0hMCx0Lm9wdERpc2FibGVkPSF1LmRpc2FibGVkO3RyeXtkZWxldGUgZC50ZXN0fWNhdGNoKGgpe3QuZGVsZXRlRXhwYW5kbz0hMX1vPWEuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxvLnNldEF0dHJpYnV0ZSgidmFsdWUiLCIiKSx0LmlucHV0PSIiPT09by5nZXRBdHRyaWJ1dGUoInZhbHVlIiksby52YWx1ZT0idCIsby5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpLHQucmFkaW9WYWx1ZT0idCI9PT1vLnZhbHVlLG8uc2V0QXR0cmlidXRlKCJjaGVja2VkIiwidCIpLG8uc2V0QXR0cmlidXRlKCJuYW1lIiwidCIpLGw9YS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksbC5hcHBlbmRDaGlsZChvKSx0LmFwcGVuZENoZWNrZWQ9by5jaGVja2VkLHQuY2hlY2tDbG9uZT1sLmNsb25lTm9kZSghMCkuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuY2hlY2tlZCxkLmF0dGFjaEV2ZW50JiYoZC5hdHRhY2hFdmVudCgib25jbGljayIsZnVuY3Rpb24oKXt0Lm5vQ2xvbmVFdmVudD0hMX0pLGQuY2xvbmVOb2RlKCEwKS5jbGljaygpKTtmb3IoZiBpbntzdWJtaXQ6ITAsY2hhbmdlOiEwLGZvY3VzaW46ITB9KWQuc2V0QXR0cmlidXRlKGM9Im9uIitmLCJ0IiksdFtmKyJCdWJibGVzIl09YyBpbiBlfHxkLmF0dHJpYnV0ZXNbY10uZXhwYW5kbz09PSExO2Quc3R5bGUuYmFja2dyb3VuZENsaXA9ImNvbnRlbnQtYm94IixkLmNsb25lTm9kZSghMCkuc3R5bGUuYmFja2dyb3VuZENsaXA9IiIsdC5jbGVhckNsb25lU3R5bGU9ImNvbnRlbnQtYm94Ij09PWQuc3R5bGUuYmFja2dyb3VuZENsaXA7Zm9yKGYgaW4geCh0KSlicmVhaztyZXR1cm4gdC5vd25MYXN0PSIwIiE9PWYseChmdW5jdGlvbigpe3ZhciBuLHIsbyxzPSJwYWRkaW5nOjA7bWFyZ2luOjA7Ym9yZGVyOjA7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy1tb3otYm94LXNpemluZzpjb250ZW50LWJveDstd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3g7IixsPWEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXTtsJiYobj1hLmNyZWF0ZUVsZW1lbnQoImRpdiIpLG4uc3R5bGUuY3NzVGV4dD0iYm9yZGVyOjA7d2lkdGg6MDtoZWlnaHQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0Oi05OTk5cHg7bWFyZ2luLXRvcDoxcHgiLGwuYXBwZW5kQ2hpbGQobikuYXBwZW5kQ2hpbGQoZCksZC5pbm5lckhUTUw9Ijx0YWJsZT48dHI+PHRkPjwvdGQ+PHRkPnQ8L3RkPjwvdHI+PC90YWJsZT4iLG89ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGQiKSxvWzBdLnN0eWxlLmNzc1RleHQ9InBhZGRpbmc6MDttYXJnaW46MDtib3JkZXI6MDtkaXNwbGF5Om5vbmUiLHA9MD09PW9bMF0ub2Zmc2V0SGVpZ2h0LG9bMF0uc3R5bGUuZGlzcGxheT0iIixvWzFdLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHQucmVsaWFibGVIaWRkZW5PZmZzZXRzPXAmJjA9PT1vWzBdLm9mZnNldEhlaWdodCxkLmlubmVySFRNTD0iIixkLnN0eWxlLmNzc1RleHQ9ImJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjFweDtib3JkZXI6MXB4O2Rpc3BsYXk6YmxvY2s7d2lkdGg6NHB4O21hcmdpbi10b3A6MSU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjElOyIseC5zd2FwKGwsbnVsbCE9bC5zdHlsZS56b29tP3t6b29tOjF9Ont9LGZ1bmN0aW9uKCl7dC5ib3hTaXppbmc9ND09PWQub2Zmc2V0V2lkdGh9KSxlLmdldENvbXB1dGVkU3R5bGUmJih0LnBpeGVsUG9zaXRpb249IjElIiE9PShlLmdldENvbXB1dGVkU3R5bGUoZCxudWxsKXx8e30pLnRvcCx0LmJveFNpemluZ1JlbGlhYmxlPSI0cHgiPT09KGUuZ2V0Q29tcHV0ZWRTdHlsZShkLG51bGwpfHx7d2lkdGg6IjRweCJ9KS53aWR0aCxyPWQuYXBwZW5kQ2hpbGQoYS5jcmVhdGVFbGVtZW50KCJkaXYiKSksci5zdHlsZS5jc3NUZXh0PWQuc3R5bGUuY3NzVGV4dD1zLHIuc3R5bGUubWFyZ2luUmlnaHQ9ci5zdHlsZS53aWR0aD0iMCIsZC5zdHlsZS53aWR0aD0iMXB4Iix0LnJlbGlhYmxlTWFyZ2luUmlnaHQ9IXBhcnNlRmxvYXQoKGUuZ2V0Q29tcHV0ZWRTdHlsZShyLG51bGwpfHx7fSkubWFyZ2luUmlnaHQpKSx0eXBlb2YgZC5zdHlsZS56b29tIT09aSYmKGQuaW5uZXJIVE1MPSIiLGQuc3R5bGUuY3NzVGV4dD1zKyJ3aWR0aDoxcHg7cGFkZGluZzoxcHg7ZGlzcGxheTppbmxpbmU7em9vbToxIix0LmlubGluZUJsb2NrTmVlZHNMYXlvdXQ9Mz09PWQub2Zmc2V0V2lkdGgsZC5zdHlsZS5kaXNwbGF5PSJibG9jayIsZC5pbm5lckhUTUw9IjxkaXY+PC9kaXY+IixkLmZpcnN0Q2hpbGQuc3R5bGUud2lkdGg9IjVweCIsdC5zaHJpbmtXcmFwQmxvY2tzPTMhPT1kLm9mZnNldFdpZHRoLHQuaW5saW5lQmxvY2tOZWVkc0xheW91dCYmKGwuc3R5bGUuem9vbT0xKSksbC5yZW1vdmVDaGlsZChuKSxuPWQ9bz1yPW51bGwpfSksbj1zPWw9dT1yPW89bnVsbCx0Cn0oe30pO3ZhciBCPS8oPzpce1tcc1xTXSpcfXxcW1tcc1xTXSpcXSkkLyxQPS8oW0EtWl0pL2c7ZnVuY3Rpb24gUihlLG4scixpKXtpZih4LmFjY2VwdERhdGEoZSkpe3ZhciBvLGEscz14LmV4cGFuZG8sbD1lLm5vZGVUeXBlLHU9bD94LmNhY2hlOmUsYz1sP2Vbc106ZVtzXSYmcztpZihjJiZ1W2NdJiYoaXx8dVtjXS5kYXRhKXx8ciE9PXR8fCJzdHJpbmciIT10eXBlb2YgbilyZXR1cm4gY3x8KGM9bD9lW3NdPXAucG9wKCl8fHguZ3VpZCsrOnMpLHVbY118fCh1W2NdPWw/e306e3RvSlNPTjp4Lm5vb3B9KSwoIm9iamVjdCI9PXR5cGVvZiBufHwiZnVuY3Rpb24iPT10eXBlb2YgbikmJihpP3VbY109eC5leHRlbmQodVtjXSxuKTp1W2NdLmRhdGE9eC5leHRlbmQodVtjXS5kYXRhLG4pKSxhPXVbY10saXx8KGEuZGF0YXx8KGEuZGF0YT17fSksYT1hLmRhdGEpLHIhPT10JiYoYVt4LmNhbWVsQ2FzZShuKV09ciksInN0cmluZyI9PXR5cGVvZiBuPyhvPWFbbl0sbnVsbD09byYmKG89YVt4LmNhbWVsQ2FzZShuKV0pKTpvPWEsb319ZnVuY3Rpb24gVyhlLHQsbil7aWYoeC5hY2NlcHREYXRhKGUpKXt2YXIgcixpLG89ZS5ub2RlVHlwZSxhPW8/eC5jYWNoZTplLHM9bz9lW3guZXhwYW5kb106eC5leHBhbmRvO2lmKGFbc10pe2lmKHQmJihyPW4/YVtzXTphW3NdLmRhdGEpKXt4LmlzQXJyYXkodCk/dD10LmNvbmNhdCh4Lm1hcCh0LHguY2FtZWxDYXNlKSk6dCBpbiByP3Q9W3RdOih0PXguY2FtZWxDYXNlKHQpLHQ9dCBpbiByP1t0XTp0LnNwbGl0KCIgIikpLGk9dC5sZW5ndGg7d2hpbGUoaS0tKWRlbGV0ZSByW3RbaV1dO2lmKG4/IUkocik6IXguaXNFbXB0eU9iamVjdChyKSlyZXR1cm59KG58fChkZWxldGUgYVtzXS5kYXRhLEkoYVtzXSkpKSYmKG8/eC5jbGVhbkRhdGEoW2VdLCEwKTp4LnN1cHBvcnQuZGVsZXRlRXhwYW5kb3x8YSE9YS53aW5kb3c/ZGVsZXRlIGFbc106YVtzXT1udWxsKX19fXguZXh0ZW5kKHtjYWNoZTp7fSxub0RhdGE6e2FwcGxldDohMCxlbWJlZDohMCxvYmplY3Q6ImNsc2lkOkQyN0NEQjZFLUFFNkQtMTFjZi05NkI4LTQ0NDU1MzU0MDAwMCJ9LGhhc0RhdGE6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZS5ub2RlVHlwZT94LmNhY2hlW2VbeC5leHBhbmRvXV06ZVt4LmV4cGFuZG9dLCEhZSYmIUkoZSl9LGRhdGE6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBSKGUsdCxuKX0scmVtb3ZlRGF0YTpmdW5jdGlvbihlLHQpe3JldHVybiBXKGUsdCl9LF9kYXRhOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gUihlLHQsbiwhMCl9LF9yZW1vdmVEYXRhOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIFcoZSx0LCEwKX0sYWNjZXB0RGF0YTpmdW5jdGlvbihlKXtpZihlLm5vZGVUeXBlJiYxIT09ZS5ub2RlVHlwZSYmOSE9PWUubm9kZVR5cGUpcmV0dXJuITE7dmFyIHQ9ZS5ub2RlTmFtZSYmeC5ub0RhdGFbZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXTtyZXR1cm4hdHx8dCE9PSEwJiZlLmdldEF0dHJpYnV0ZSgiY2xhc3NpZCIpPT09dH19KSx4LmZuLmV4dGVuZCh7ZGF0YTpmdW5jdGlvbihlLG4pe3ZhciByLGksbz1udWxsLGE9MCxzPXRoaXNbMF07aWYoZT09PXQpe2lmKHRoaXMubGVuZ3RoJiYobz14LmRhdGEocyksMT09PXMubm9kZVR5cGUmJiF4Ll9kYXRhKHMsInBhcnNlZEF0dHJzIikpKXtmb3Iocj1zLmF0dHJpYnV0ZXM7ci5sZW5ndGg+YTthKyspaT1yW2FdLm5hbWUsMD09PWkuaW5kZXhPZigiZGF0YS0iKSYmKGk9eC5jYW1lbENhc2UoaS5zbGljZSg1KSksJChzLGksb1tpXSkpO3guX2RhdGEocywicGFyc2VkQXR0cnMiLCEwKX1yZXR1cm4gb31yZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGU/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7eC5kYXRhKHRoaXMsZSl9KTphcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7eC5kYXRhKHRoaXMsZSxuKX0pOnM/JChzLGUseC5kYXRhKHMsZSkpOm51bGx9LHJlbW92ZURhdGE6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3gucmVtb3ZlRGF0YSh0aGlzLGUpfSl9fSk7ZnVuY3Rpb24gJChlLG4scil7aWYocj09PXQmJjE9PT1lLm5vZGVUeXBlKXt2YXIgaT0iZGF0YS0iK24ucmVwbGFjZShQLCItJDEiKS50b0xvd2VyQ2FzZSgpO2lmKHI9ZS5nZXRBdHRyaWJ1dGUoaSksInN0cmluZyI9PXR5cGVvZiByKXt0cnl7cj0idHJ1ZSI9PT1yPyEwOiJmYWxzZSI9PT1yPyExOiJudWxsIj09PXI/bnVsbDorcisiIj09PXI/K3I6Qi50ZXN0KHIpP3gucGFyc2VKU09OKHIpOnJ9Y2F0Y2gobyl7fXguZGF0YShlLG4scil9ZWxzZSByPXR9cmV0dXJuIHJ9ZnVuY3Rpb24gSShlKXt2YXIgdDtmb3IodCBpbiBlKWlmKCgiZGF0YSIhPT10fHwheC5pc0VtcHR5T2JqZWN0KGVbdF0pKSYmInRvSlNPTiIhPT10KXJldHVybiExO3JldHVybiEwfXguZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihlLG4scil7dmFyIGk7cmV0dXJuIGU/KG49KG58fCJmeCIpKyJxdWV1ZSIsaT14Ll9kYXRhKGUsbiksciYmKCFpfHx4LmlzQXJyYXkocik/aT14Ll9kYXRhKGUsbix4Lm1ha2VBcnJheShyKSk6aS5wdXNoKHIpKSxpfHxbXSk6dH0sZGVxdWV1ZTpmdW5jdGlvbihlLHQpe3Q9dHx8ImZ4Ijt2YXIgbj14LnF1ZXVlKGUsdCkscj1uLmxlbmd0aCxpPW4uc2hpZnQoKSxvPXguX3F1ZXVlSG9va3MoZSx0KSxhPWZ1bmN0aW9uKCl7eC5kZXF1ZXVlKGUsdCl9OyJpbnByb2dyZXNzIj09PWkmJihpPW4uc2hpZnQoKSxyLS0pLGkmJigiZngiPT09dCYmbi51bnNoaWZ0KCJpbnByb2dyZXNzIiksZGVsZXRlIG8uc3RvcCxpLmNhbGwoZSxhLG8pKSwhciYmbyYmby5lbXB0eS5maXJlKCl9LF9xdWV1ZUhvb2tzOmZ1bmN0aW9uKGUsdCl7dmFyIG49dCsicXVldWVIb29rcyI7cmV0dXJuIHguX2RhdGEoZSxuKXx8eC5fZGF0YShlLG4se2VtcHR5OnguQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLmFkZChmdW5jdGlvbigpe3guX3JlbW92ZURhdGEoZSx0KyJxdWV1ZSIpLHguX3JlbW92ZURhdGEoZSxuKX0pfSl9fSkseC5mbi5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGUsbil7dmFyIHI9MjtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGUmJihuPWUsZT0iZngiLHItLSkscj5hcmd1bWVudHMubGVuZ3RoP3gucXVldWUodGhpc1swXSxlKTpuPT09dD90aGlzOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PXgucXVldWUodGhpcyxlLG4pO3guX3F1ZXVlSG9va3ModGhpcyxlKSwiZngiPT09ZSYmImlucHJvZ3Jlc3MiIT09dFswXSYmeC5kZXF1ZXVlKHRoaXMsZSl9KX0sZGVxdWV1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7eC5kZXF1ZXVlKHRoaXMsZSl9KX0sZGVsYXk6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT14LmZ4P3guZnguc3BlZWRzW2VdfHxlOmUsdD10fHwiZngiLHRoaXMucXVldWUodCxmdW5jdGlvbih0LG4pe3ZhciByPXNldFRpbWVvdXQodCxlKTtuLnN0b3A9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQocil9fSl9LGNsZWFyUXVldWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucXVldWUoZXx8ImZ4IixbXSl9LHByb21pc2U6ZnVuY3Rpb24oZSxuKXt2YXIgcixpPTEsbz14LkRlZmVycmVkKCksYT10aGlzLHM9dGhpcy5sZW5ndGgsbD1mdW5jdGlvbigpey0taXx8by5yZXNvbHZlV2l0aChhLFthXSl9OyJzdHJpbmciIT10eXBlb2YgZSYmKG49ZSxlPXQpLGU9ZXx8ImZ4Ijt3aGlsZShzLS0pcj14Ll9kYXRhKGFbc10sZSsicXVldWVIb29rcyIpLHImJnIuZW1wdHkmJihpKyssci5lbXB0eS5hZGQobCkpO3JldHVybiBsKCksby5wcm9taXNlKG4pfX0pO3ZhciB6LFgsVT0vW1x0XHJcblxmXS9nLFY9L1xyL2csWT0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b258b2JqZWN0KSQvaSxKPS9eKD86YXxhcmVhKSQvaSxHPS9eKD86Y2hlY2tlZHxzZWxlY3RlZCkkL2ksUT14LnN1cHBvcnQuZ2V0U2V0QXR0cmlidXRlLEs9eC5zdXBwb3J0LmlucHV0O3guZm4uZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHguYWNjZXNzKHRoaXMseC5hdHRyLGUsdCxhcmd1bWVudHMubGVuZ3RoPjEpfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt4LnJlbW92ZUF0dHIodGhpcyxlKX0pfSxwcm9wOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHguYWNjZXNzKHRoaXMseC5wcm9wLGUsdCxhcmd1bWVudHMubGVuZ3RoPjEpfSxyZW1vdmVQcm9wOmZ1bmN0aW9uKGUpe3JldHVybiBlPXgucHJvcEZpeFtlXXx8ZSx0aGlzLmVhY2goZnVuY3Rpb24oKXt0cnl7dGhpc1tlXT10LGRlbGV0ZSB0aGlzW2VdfWNhdGNoKG4pe319KX0sYWRkQ2xhc3M6ZnVuY3Rpb24oZSl7dmFyIHQsbixyLGksbyxhPTAscz10aGlzLmxlbmd0aCxsPSJzdHJpbmciPT10eXBlb2YgZSYmZTtpZih4LmlzRnVuY3Rpb24oZSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbih0KXt4KHRoaXMpLmFkZENsYXNzKGUuY2FsbCh0aGlzLHQsdGhpcy5jbGFzc05hbWUpKX0pO2lmKGwpZm9yKHQ9KGV8fCIiKS5tYXRjaChUKXx8W107cz5hO2ErKylpZihuPXRoaXNbYV0scj0xPT09bi5ub2RlVHlwZSYmKG4uY2xhc3NOYW1lPygiICIrbi5jbGFzc05hbWUrIiAiKS5yZXBsYWNlKFUsIiAiKToiICIpKXtvPTA7d2hpbGUoaT10W28rK10pMD5yLmluZGV4T2YoIiAiK2krIiAiKSYmKHIrPWkrIiAiKTtuLmNsYXNzTmFtZT14LnRyaW0ocil9cmV0dXJuIHRoaXN9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKGUpe3ZhciB0LG4scixpLG8sYT0wLHM9dGhpcy5sZW5ndGgsbD0wPT09YXJndW1lbnRzLmxlbmd0aHx8InN0cmluZyI9PXR5cGVvZiBlJiZlO2lmKHguaXNGdW5jdGlvbihlKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHQpe3godGhpcykucmVtb3ZlQ2xhc3MoZS5jYWxsKHRoaXMsdCx0aGlzLmNsYXNzTmFtZSkpfSk7aWYobClmb3IodD0oZXx8IiIpLm1hdGNoKFQpfHxbXTtzPmE7YSsrKWlmKG49dGhpc1thXSxyPTE9PT1uLm5vZGVUeXBlJiYobi5jbGFzc05hbWU/KCIgIituLmNsYXNzTmFtZSsiICIpLnJlcGxhY2UoVSwiICIpOiIiKSl7bz0wO3doaWxlKGk9dFtvKytdKXdoaWxlKHIuaW5kZXhPZigiICIraSsiICIpPj0wKXI9ci5yZXBsYWNlKCIgIitpKyIgIiwiICIpO24uY2xhc3NOYW1lPWU/eC50cmltKHIpOiIifXJldHVybiB0aGlzfSx0b2dnbGVDbGFzczpmdW5jdGlvbihlLHQpe3ZhciBuPXR5cGVvZiBlO3JldHVybiJib29sZWFuIj09dHlwZW9mIHQmJiJzdHJpbmciPT09bj90P3RoaXMuYWRkQ2xhc3MoZSk6dGhpcy5yZW1vdmVDbGFzcyhlKTp4LmlzRnVuY3Rpb24oZSk/dGhpcy5lYWNoKGZ1bmN0aW9uKG4pe3godGhpcykudG9nZ2xlQ2xhc3MoZS5jYWxsKHRoaXMsbix0aGlzLmNsYXNzTmFtZSx0KSx0KX0pOnRoaXMuZWFjaChmdW5jdGlvbigpe2lmKCJzdHJpbmciPT09bil7dmFyIHQscj0wLG89eCh0aGlzKSxhPWUubWF0Y2goVCl8fFtdO3doaWxlKHQ9YVtyKytdKW8uaGFzQ2xhc3ModCk/by5yZW1vdmVDbGFzcyh0KTpvLmFkZENsYXNzKHQpfWVsc2Uobj09PWl8fCJib29sZWFuIj09PW4pJiYodGhpcy5jbGFzc05hbWUmJnguX2RhdGEodGhpcywiX19jbGFzc05hbWVfXyIsdGhpcy5jbGFzc05hbWUpLHRoaXMuY2xhc3NOYW1lPXRoaXMuY2xhc3NOYW1lfHxlPT09ITE/IiI6eC5fZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIil8fCIiKX0pfSxoYXNDbGFzczpmdW5jdGlvbihlKXt2YXIgdD0iICIrZSsiICIsbj0wLHI9dGhpcy5sZW5ndGg7Zm9yKDtyPm47bisrKWlmKDE9PT10aGlzW25dLm5vZGVUeXBlJiYoIiAiK3RoaXNbbl0uY2xhc3NOYW1lKyIgIikucmVwbGFjZShVLCIgIikuaW5kZXhPZih0KT49MClyZXR1cm4hMDtyZXR1cm4hMX0sdmFsOmZ1bmN0aW9uKGUpe3ZhciBuLHIsaSxvPXRoaXNbMF07e2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGk9eC5pc0Z1bmN0aW9uKGUpLHRoaXMuZWFjaChmdW5jdGlvbihuKXt2YXIgbzsxPT09dGhpcy5ub2RlVHlwZSYmKG89aT9lLmNhbGwodGhpcyxuLHgodGhpcykudmFsKCkpOmUsbnVsbD09bz9vPSIiOiJudW1iZXIiPT10eXBlb2Ygbz9vKz0iIjp4LmlzQXJyYXkobykmJihvPXgubWFwKG8sZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/IiI6ZSsiIn0pKSxyPXgudmFsSG9va3NbdGhpcy50eXBlXXx8eC52YWxIb29rc1t0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldLHImJiJzZXQiaW4gciYmci5zZXQodGhpcyxvLCJ2YWx1ZSIpIT09dHx8KHRoaXMudmFsdWU9bykpfSk7aWYobylyZXR1cm4gcj14LnZhbEhvb2tzW28udHlwZV18fHgudmFsSG9va3Nbby5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSxyJiYiZ2V0ImluIHImJihuPXIuZ2V0KG8sInZhbHVlIikpIT09dD9uOihuPW8udmFsdWUsInN0cmluZyI9PXR5cGVvZiBuP24ucmVwbGFjZShWLCIiKTpudWxsPT1uPyIiOm4pfX19KSx4LmV4dGVuZCh7dmFsSG9va3M6e29wdGlvbjp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PXguZmluZC5hdHRyKGUsInZhbHVlIik7cmV0dXJuIG51bGwhPXQ/dDplLnRleHR9fSxzZWxlY3Q6e2dldDpmdW5jdGlvbihlKXt2YXIgdCxuLHI9ZS5vcHRpb25zLGk9ZS5zZWxlY3RlZEluZGV4LG89InNlbGVjdC1vbmUiPT09ZS50eXBlfHwwPmksYT1vP251bGw6W10scz1vP2krMTpyLmxlbmd0aCxsPTA+aT9zOm8/aTowO2Zvcig7cz5sO2wrKylpZihuPXJbbF0sISghbi5zZWxlY3RlZCYmbCE9PWl8fCh4LnN1cHBvcnQub3B0RGlzYWJsZWQ/bi5kaXNhYmxlZDpudWxsIT09bi5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIikpfHxuLnBhcmVudE5vZGUuZGlzYWJsZWQmJngubm9kZU5hbWUobi5wYXJlbnROb2RlLCJvcHRncm91cCIpKSl7aWYodD14KG4pLnZhbCgpLG8pcmV0dXJuIHQ7YS5wdXNoKHQpfXJldHVybiBhfSxzZXQ6ZnVuY3Rpb24oZSx0KXt2YXIgbixyLGk9ZS5vcHRpb25zLG89eC5tYWtlQXJyYXkodCksYT1pLmxlbmd0aDt3aGlsZShhLS0pcj1pW2FdLChyLnNlbGVjdGVkPXguaW5BcnJheSh4KHIpLnZhbCgpLG8pPj0wKSYmKG49ITApO3JldHVybiBufHwoZS5zZWxlY3RlZEluZGV4PS0xKSxvfX19LGF0dHI6ZnVuY3Rpb24oZSxuLHIpe3ZhciBvLGEscz1lLm5vZGVUeXBlO2lmKGUmJjMhPT1zJiY4IT09cyYmMiE9PXMpcmV0dXJuIHR5cGVvZiBlLmdldEF0dHJpYnV0ZT09PWk/eC5wcm9wKGUsbixyKTooMT09PXMmJnguaXNYTUxEb2MoZSl8fChuPW4udG9Mb3dlckNhc2UoKSxvPXguYXR0ckhvb2tzW25dfHwoeC5leHByLm1hdGNoLmJvb2wudGVzdChuKT9YOnopKSxyPT09dD9vJiYiZ2V0ImluIG8mJm51bGwhPT0oYT1vLmdldChlLG4pKT9hOihhPXguZmluZC5hdHRyKGUsbiksbnVsbD09YT90OmEpOm51bGwhPT1yP28mJiJzZXQiaW4gbyYmKGE9by5zZXQoZSxyLG4pKSE9PXQ/YTooZS5zZXRBdHRyaWJ1dGUobixyKyIiKSxyKTooeC5yZW1vdmVBdHRyKGUsbiksdCkpfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGUsdCl7dmFyIG4scixpPTAsbz10JiZ0Lm1hdGNoKFQpO2lmKG8mJjE9PT1lLm5vZGVUeXBlKXdoaWxlKG49b1tpKytdKXI9eC5wcm9wRml4W25dfHxuLHguZXhwci5tYXRjaC5ib29sLnRlc3Qobik/SyYmUXx8IUcudGVzdChuKT9lW3JdPSExOmVbeC5jYW1lbENhc2UoImRlZmF1bHQtIituKV09ZVtyXT0hMTp4LmF0dHIoZSxuLCIiKSxlLnJlbW92ZUF0dHJpYnV0ZShRP246cil9LGF0dHJIb29rczp7dHlwZTp7c2V0OmZ1bmN0aW9uKGUsdCl7aWYoIXguc3VwcG9ydC5yYWRpb1ZhbHVlJiYicmFkaW8iPT09dCYmeC5ub2RlTmFtZShlLCJpbnB1dCIpKXt2YXIgbj1lLnZhbHVlO3JldHVybiBlLnNldEF0dHJpYnV0ZSgidHlwZSIsdCksbiYmKGUudmFsdWU9biksdH19fX0scHJvcEZpeDp7ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSJ9LHByb3A6ZnVuY3Rpb24oZSxuLHIpe3ZhciBpLG8sYSxzPWUubm9kZVR5cGU7aWYoZSYmMyE9PXMmJjghPT1zJiYyIT09cylyZXR1cm4gYT0xIT09c3x8IXguaXNYTUxEb2MoZSksYSYmKG49eC5wcm9wRml4W25dfHxuLG89eC5wcm9wSG9va3Nbbl0pLHIhPT10P28mJiJzZXQiaW4gbyYmKGk9by5zZXQoZSxyLG4pKSE9PXQ/aTplW25dPXI6byYmImdldCJpbiBvJiZudWxsIT09KGk9by5nZXQoZSxuKSk/aTplW25dfSxwcm9wSG9va3M6e3RhYkluZGV4OntnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9eC5maW5kLmF0dHIoZSwidGFiaW5kZXgiKTtyZXR1cm4gdD9wYXJzZUludCh0LDEwKTpZLnRlc3QoZS5ub2RlTmFtZSl8fEoudGVzdChlLm5vZGVOYW1lKSYmZS5ocmVmPzA6LTF9fX19KSxYPXtzZXQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0PT09ITE/eC5yZW1vdmVBdHRyKGUsbik6SyYmUXx8IUcudGVzdChuKT9lLnNldEF0dHJpYnV0ZSghUSYmeC5wcm9wRml4W25dfHxuLG4pOmVbeC5jYW1lbENhc2UoImRlZmF1bHQtIituKV09ZVtuXT0hMCxufX0seC5lYWNoKHguZXhwci5tYXRjaC5ib29sLnNvdXJjZS5tYXRjaCgvXHcrL2cpLGZ1bmN0aW9uKGUsbil7dmFyIHI9eC5leHByLmF0dHJIYW5kbGVbbl18fHguZmluZC5hdHRyO3guZXhwci5hdHRySGFuZGxlW25dPUsmJlF8fCFHLnRlc3Qobik/ZnVuY3Rpb24oZSxuLGkpe3ZhciBvPXguZXhwci5hdHRySGFuZGxlW25dLGE9aT90Oih4LmV4cHIuYXR0ckhhbmRsZVtuXT10KSE9cihlLG4saSk/bi50b0xvd2VyQ2FzZSgpOm51bGw7cmV0dXJuIHguZXhwci5hdHRySGFuZGxlW25dPW8sYX06ZnVuY3Rpb24oZSxuLHIpe3JldHVybiByP3Q6ZVt4LmNhbWVsQ2FzZSgiZGVmYXVsdC0iK24pXT9uLnRvTG93ZXJDYXNlKCk6bnVsbH19KSxLJiZRfHwoeC5hdHRySG9va3MudmFsdWU9e3NldDpmdW5jdGlvbihlLG4scil7cmV0dXJuIHgubm9kZU5hbWUoZSwiaW5wdXQiKT8oZS5kZWZhdWx0VmFsdWU9bix0KTp6JiZ6LnNldChlLG4scil9fSksUXx8KHo9e3NldDpmdW5jdGlvbihlLG4scil7dmFyIGk9ZS5nZXRBdHRyaWJ1dGVOb2RlKHIpO3JldHVybiBpfHxlLnNldEF0dHJpYnV0ZU5vZGUoaT1lLm93bmVyRG9jdW1lbnQuY3JlYXRlQXR0cmlidXRlKHIpKSxpLnZhbHVlPW4rPSIiLCJ2YWx1ZSI9PT1yfHxuPT09ZS5nZXRBdHRyaWJ1dGUocik/bjp0fX0seC5leHByLmF0dHJIYW5kbGUuaWQ9eC5leHByLmF0dHJIYW5kbGUubmFtZT14LmV4cHIuYXR0ckhhbmRsZS5jb29yZHM9ZnVuY3Rpb24oZSxuLHIpe3ZhciBpO3JldHVybiByP3Q6KGk9ZS5nZXRBdHRyaWJ1dGVOb2RlKG4pKSYmIiIhPT1pLnZhbHVlP2kudmFsdWU6bnVsbH0seC52YWxIb29rcy5idXR0b249e2dldDpmdW5jdGlvbihlLG4pe3ZhciByPWUuZ2V0QXR0cmlidXRlTm9kZShuKTtyZXR1cm4gciYmci5zcGVjaWZpZWQ/ci52YWx1ZTp0fSxzZXQ6ei5zZXR9LHguYXR0ckhvb2tzLmNvbnRlbnRlZGl0YWJsZT17c2V0OmZ1bmN0aW9uKGUsdCxuKXt6LnNldChlLCIiPT09dD8hMTp0LG4pfX0seC5lYWNoKFsid2lkdGgiLCJoZWlnaHQiXSxmdW5jdGlvbihlLG4pe3guYXR0ckhvb2tzW25dPXtzZXQ6ZnVuY3Rpb24oZSxyKXtyZXR1cm4iIj09PXI/KGUuc2V0QXR0cmlidXRlKG4sImF1dG8iKSxyKTp0fX19KSkseC5zdXBwb3J0LmhyZWZOb3JtYWxpemVkfHx4LmVhY2goWyJocmVmIiwic3JjIl0sZnVuY3Rpb24oZSx0KXt4LnByb3BIb29rc1t0XT17Z2V0OmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldEF0dHJpYnV0ZSh0LDQpfX19KSx4LnN1cHBvcnQuc3R5bGV8fCh4LmF0dHJIb29rcy5zdHlsZT17Z2V0OmZ1bmN0aW9uKGUpe3JldHVybiBlLnN0eWxlLmNzc1RleHR8fHR9LHNldDpmdW5jdGlvbihlLHQpe3JldHVybiBlLnN0eWxlLmNzc1RleHQ9dCsiIn19KSx4LnN1cHBvcnQub3B0U2VsZWN0ZWR8fCh4LnByb3BIb29rcy5zZWxlY3RlZD17Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PWUucGFyZW50Tm9kZTtyZXR1cm4gdCYmKHQuc2VsZWN0ZWRJbmRleCx0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4KSxudWxsfX0pLHguZWFjaChbInRhYkluZGV4IiwicmVhZE9ubHkiLCJtYXhMZW5ndGgiLCJjZWxsU3BhY2luZyIsImNlbGxQYWRkaW5nIiwicm93U3BhbiIsImNvbFNwYW4iLCJ1c2VNYXAiLCJmcmFtZUJvcmRlciIsImNvbnRlbnRFZGl0YWJsZSJdLGZ1bmN0aW9uKCl7eC5wcm9wRml4W3RoaXMudG9Mb3dlckNhc2UoKV09dGhpc30pLHguc3VwcG9ydC5lbmN0eXBlfHwoeC5wcm9wRml4LmVuY3R5cGU9ImVuY29kaW5nIikseC5lYWNoKFsicmFkaW8iLCJjaGVja2JveCJdLGZ1bmN0aW9uKCl7eC52YWxIb29rc1t0aGlzXT17c2V0OmZ1bmN0aW9uKGUsbil7cmV0dXJuIHguaXNBcnJheShuKT9lLmNoZWNrZWQ9eC5pbkFycmF5KHgoZSkudmFsKCksbik+PTA6dH19LHguc3VwcG9ydC5jaGVja09ufHwoeC52YWxIb29rc1t0aGlzXS5nZXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PT1lLmdldEF0dHJpYnV0ZSgidmFsdWUiKT8ib24iOmUudmFsdWV9KX0pO3ZhciBaPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhKSQvaSxldD0vXmtleS8sdHQ9L14oPzptb3VzZXxjb250ZXh0bWVudSl8Y2xpY2svLG50PS9eKD86Zm9jdXNpbmZvY3VzfGZvY3Vzb3V0Ymx1cikkLyxydD0vXihbXi5dKikoPzpcLiguKyl8KSQvO2Z1bmN0aW9uIGl0KCl7cmV0dXJuITB9ZnVuY3Rpb24gb3QoKXtyZXR1cm4hMX1mdW5jdGlvbiBhdCgpe3RyeXtyZXR1cm4gYS5hY3RpdmVFbGVtZW50fWNhdGNoKGUpe319eC5ldmVudD17Z2xvYmFsOnt9LGFkZDpmdW5jdGlvbihlLG4scixvLGEpe3ZhciBzLGwsdSxjLHAsZixkLGgsZyxtLHksdj14Ll9kYXRhKGUpO2lmKHYpe3IuaGFuZGxlciYmKGM9cixyPWMuaGFuZGxlcixhPWMuc2VsZWN0b3IpLHIuZ3VpZHx8KHIuZ3VpZD14Lmd1aWQrKyksKGw9di5ldmVudHMpfHwobD12LmV2ZW50cz17fSksKGY9di5oYW5kbGUpfHwoZj12LmhhbmRsZT1mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIHg9PT1pfHxlJiZ4LmV2ZW50LnRyaWdnZXJlZD09PWUudHlwZT90OnguZXZlbnQuZGlzcGF0Y2guYXBwbHkoZi5lbGVtLGFyZ3VtZW50cyl9LGYuZWxlbT1lKSxuPShufHwiIikubWF0Y2goVCl8fFsiIl0sdT1uLmxlbmd0aDt3aGlsZSh1LS0pcz1ydC5leGVjKG5bdV0pfHxbXSxnPXk9c1sxXSxtPShzWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksZyYmKHA9eC5ldmVudC5zcGVjaWFsW2ddfHx7fSxnPShhP3AuZGVsZWdhdGVUeXBlOnAuYmluZFR5cGUpfHxnLHA9eC5ldmVudC5zcGVjaWFsW2ddfHx7fSxkPXguZXh0ZW5kKHt0eXBlOmcsb3JpZ1R5cGU6eSxkYXRhOm8saGFuZGxlcjpyLGd1aWQ6ci5ndWlkLHNlbGVjdG9yOmEsbmVlZHNDb250ZXh0OmEmJnguZXhwci5tYXRjaC5uZWVkc0NvbnRleHQudGVzdChhKSxuYW1lc3BhY2U6bS5qb2luKCIuIil9LGMpLChoPWxbZ10pfHwoaD1sW2ddPVtdLGguZGVsZWdhdGVDb3VudD0wLHAuc2V0dXAmJnAuc2V0dXAuY2FsbChlLG8sbSxmKSE9PSExfHwoZS5hZGRFdmVudExpc3RlbmVyP2UuYWRkRXZlbnRMaXN0ZW5lcihnLGYsITEpOmUuYXR0YWNoRXZlbnQmJmUuYXR0YWNoRXZlbnQoIm9uIitnLGYpKSkscC5hZGQmJihwLmFkZC5jYWxsKGUsZCksZC5oYW5kbGVyLmd1aWR8fChkLmhhbmRsZXIuZ3VpZD1yLmd1aWQpKSxhP2guc3BsaWNlKGguZGVsZWdhdGVDb3VudCsrLDAsZCk6aC5wdXNoKGQpLHguZXZlbnQuZ2xvYmFsW2ddPSEwKTtlPW51bGx9fSxyZW1vdmU6ZnVuY3Rpb24oZSx0LG4scixpKXt2YXIgbyxhLHMsbCx1LGMscCxmLGQsaCxnLG09eC5oYXNEYXRhKGUpJiZ4Ll9kYXRhKGUpO2lmKG0mJihjPW0uZXZlbnRzKSl7dD0odHx8IiIpLm1hdGNoKFQpfHxbIiJdLHU9dC5sZW5ndGg7d2hpbGUodS0tKWlmKHM9cnQuZXhlYyh0W3VdKXx8W10sZD1nPXNbMV0saD0oc1syXXx8IiIpLnNwbGl0KCIuIikuc29ydCgpLGQpe3A9eC5ldmVudC5zcGVjaWFsW2RdfHx7fSxkPShyP3AuZGVsZWdhdGVUeXBlOnAuYmluZFR5cGUpfHxkLGY9Y1tkXXx8W10scz1zWzJdJiZSZWdFeHAoIihefFxcLikiK2guam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIiksbD1vPWYubGVuZ3RoO3doaWxlKG8tLSlhPWZbb10sIWkmJmchPT1hLm9yaWdUeXBlfHxuJiZuLmd1aWQhPT1hLmd1aWR8fHMmJiFzLnRlc3QoYS5uYW1lc3BhY2UpfHxyJiZyIT09YS5zZWxlY3RvciYmKCIqKiIhPT1yfHwhYS5zZWxlY3Rvcil8fChmLnNwbGljZShvLDEpLGEuc2VsZWN0b3ImJmYuZGVsZWdhdGVDb3VudC0tLHAucmVtb3ZlJiZwLnJlbW92ZS5jYWxsKGUsYSkpO2wmJiFmLmxlbmd0aCYmKHAudGVhcmRvd24mJnAudGVhcmRvd24uY2FsbChlLGgsbS5oYW5kbGUpIT09ITF8fHgucmVtb3ZlRXZlbnQoZSxkLG0uaGFuZGxlKSxkZWxldGUgY1tkXSl9ZWxzZSBmb3IoZCBpbiBjKXguZXZlbnQucmVtb3ZlKGUsZCt0W3VdLG4sciwhMCk7eC5pc0VtcHR5T2JqZWN0KGMpJiYoZGVsZXRlIG0uaGFuZGxlLHguX3JlbW92ZURhdGEoZSwiZXZlbnRzIikpfX0sdHJpZ2dlcjpmdW5jdGlvbihuLHIsaSxvKXt2YXIgcyxsLHUsYyxwLGYsZCxoPVtpfHxhXSxnPXYuY2FsbChuLCJ0eXBlIik/bi50eXBlOm4sbT12LmNhbGwobiwibmFtZXNwYWNlIik/bi5uYW1lc3BhY2Uuc3BsaXQoIi4iKTpbXTtpZih1PWY9aT1pfHxhLDMhPT1pLm5vZGVUeXBlJiY4IT09aS5ub2RlVHlwZSYmIW50LnRlc3QoZyt4LmV2ZW50LnRyaWdnZXJlZCkmJihnLmluZGV4T2YoIi4iKT49MCYmKG09Zy5zcGxpdCgiLiIpLGc9bS5zaGlmdCgpLG0uc29ydCgpKSxsPTA+Zy5pbmRleE9mKCI6IikmJiJvbiIrZyxuPW5beC5leHBhbmRvXT9uOm5ldyB4LkV2ZW50KGcsIm9iamVjdCI9PXR5cGVvZiBuJiZuKSxuLmlzVHJpZ2dlcj1vPzI6MyxuLm5hbWVzcGFjZT1tLmpvaW4oIi4iKSxuLm5hbWVzcGFjZV9yZT1uLm5hbWVzcGFjZT9SZWdFeHAoIihefFxcLikiK20uam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCxuLnJlc3VsdD10LG4udGFyZ2V0fHwobi50YXJnZXQ9aSkscj1udWxsPT1yP1tuXTp4Lm1ha2VBcnJheShyLFtuXSkscD14LmV2ZW50LnNwZWNpYWxbZ118fHt9LG98fCFwLnRyaWdnZXJ8fHAudHJpZ2dlci5hcHBseShpLHIpIT09ITEpKXtpZighbyYmIXAubm9CdWJibGUmJiF4LmlzV2luZG93KGkpKXtmb3IoYz1wLmRlbGVnYXRlVHlwZXx8ZyxudC50ZXN0KGMrZyl8fCh1PXUucGFyZW50Tm9kZSk7dTt1PXUucGFyZW50Tm9kZSloLnB1c2godSksZj11O2Y9PT0oaS5vd25lckRvY3VtZW50fHxhKSYmaC5wdXNoKGYuZGVmYXVsdFZpZXd8fGYucGFyZW50V2luZG93fHxlKX1kPTA7d2hpbGUoKHU9aFtkKytdKSYmIW4uaXNQcm9wYWdhdGlvblN0b3BwZWQoKSluLnR5cGU9ZD4xP2M6cC5iaW5kVHlwZXx8ZyxzPSh4Ll9kYXRhKHUsImV2ZW50cyIpfHx7fSlbbi50eXBlXSYmeC5fZGF0YSh1LCJoYW5kbGUiKSxzJiZzLmFwcGx5KHUscikscz1sJiZ1W2xdLHMmJnguYWNjZXB0RGF0YSh1KSYmcy5hcHBseSYmcy5hcHBseSh1LHIpPT09ITEmJm4ucHJldmVudERlZmF1bHQoKTtpZihuLnR5cGU9ZywhbyYmIW4uaXNEZWZhdWx0UHJldmVudGVkKCkmJighcC5fZGVmYXVsdHx8cC5fZGVmYXVsdC5hcHBseShoLnBvcCgpLHIpPT09ITEpJiZ4LmFjY2VwdERhdGEoaSkmJmwmJmlbZ10mJiF4LmlzV2luZG93KGkpKXtmPWlbbF0sZiYmKGlbbF09bnVsbCkseC5ldmVudC50cmlnZ2VyZWQ9Zzt0cnl7aVtnXSgpfWNhdGNoKHkpe314LmV2ZW50LnRyaWdnZXJlZD10LGYmJihpW2xdPWYpfXJldHVybiBuLnJlc3VsdH19LGRpc3BhdGNoOmZ1bmN0aW9uKGUpe2U9eC5ldmVudC5maXgoZSk7dmFyIG4scixpLG8sYSxzPVtdLGw9Zy5jYWxsKGFyZ3VtZW50cyksdT0oeC5fZGF0YSh0aGlzLCJldmVudHMiKXx8e30pW2UudHlwZV18fFtdLGM9eC5ldmVudC5zcGVjaWFsW2UudHlwZV18fHt9O2lmKGxbMF09ZSxlLmRlbGVnYXRlVGFyZ2V0PXRoaXMsIWMucHJlRGlzcGF0Y2h8fGMucHJlRGlzcGF0Y2guY2FsbCh0aGlzLGUpIT09ITEpe3M9eC5ldmVudC5oYW5kbGVycy5jYWxsKHRoaXMsZSx1KSxuPTA7d2hpbGUoKG89c1tuKytdKSYmIWUuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSl7ZS5jdXJyZW50VGFyZ2V0PW8uZWxlbSxhPTA7d2hpbGUoKGk9by5oYW5kbGVyc1thKytdKSYmIWUuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSkoIWUubmFtZXNwYWNlX3JlfHxlLm5hbWVzcGFjZV9yZS50ZXN0KGkubmFtZXNwYWNlKSkmJihlLmhhbmRsZU9iaj1pLGUuZGF0YT1pLmRhdGEscj0oKHguZXZlbnQuc3BlY2lhbFtpLm9yaWdUeXBlXXx8e30pLmhhbmRsZXx8aS5oYW5kbGVyKS5hcHBseShvLmVsZW0sbCksciE9PXQmJihlLnJlc3VsdD1yKT09PSExJiYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCkpKX1yZXR1cm4gYy5wb3N0RGlzcGF0Y2gmJmMucG9zdERpc3BhdGNoLmNhbGwodGhpcyxlKSxlLnJlc3VsdH19LGhhbmRsZXJzOmZ1bmN0aW9uKGUsbil7dmFyIHIsaSxvLGEscz1bXSxsPW4uZGVsZWdhdGVDb3VudCx1PWUudGFyZ2V0O2lmKGwmJnUubm9kZVR5cGUmJighZS5idXR0b258fCJjbGljayIhPT1lLnR5cGUpKWZvcig7dSE9dGhpczt1PXUucGFyZW50Tm9kZXx8dGhpcylpZigxPT09dS5ub2RlVHlwZSYmKHUuZGlzYWJsZWQhPT0hMHx8ImNsaWNrIiE9PWUudHlwZSkpe2ZvcihvPVtdLGE9MDtsPmE7YSsrKWk9blthXSxyPWkuc2VsZWN0b3IrIiAiLG9bcl09PT10JiYob1tyXT1pLm5lZWRzQ29udGV4dD94KHIsdGhpcykuaW5kZXgodSk+PTA6eC5maW5kKHIsdGhpcyxudWxsLFt1XSkubGVuZ3RoKSxvW3JdJiZvLnB1c2goaSk7by5sZW5ndGgmJnMucHVzaCh7ZWxlbTp1LGhhbmRsZXJzOm99KX1yZXR1cm4gbi5sZW5ndGg+bCYmcy5wdXNoKHtlbGVtOnRoaXMsaGFuZGxlcnM6bi5zbGljZShsKX0pLHN9LGZpeDpmdW5jdGlvbihlKXtpZihlW3guZXhwYW5kb10pcmV0dXJuIGU7dmFyIHQsbixyLGk9ZS50eXBlLG89ZSxzPXRoaXMuZml4SG9va3NbaV07c3x8KHRoaXMuZml4SG9va3NbaV09cz10dC50ZXN0KGkpP3RoaXMubW91c2VIb29rczpldC50ZXN0KGkpP3RoaXMua2V5SG9va3M6e30pLHI9cy5wcm9wcz90aGlzLnByb3BzLmNvbmNhdChzLnByb3BzKTp0aGlzLnByb3BzLGU9bmV3IHguRXZlbnQobyksdD1yLmxlbmd0aDt3aGlsZSh0LS0pbj1yW3RdLGVbbl09b1tuXTtyZXR1cm4gZS50YXJnZXR8fChlLnRhcmdldD1vLnNyY0VsZW1lbnR8fGEpLDM9PT1lLnRhcmdldC5ub2RlVHlwZSYmKGUudGFyZ2V0PWUudGFyZ2V0LnBhcmVudE5vZGUpLGUubWV0YUtleT0hIWUubWV0YUtleSxzLmZpbHRlcj9zLmZpbHRlcihlLG8pOmV9LHByb3BzOiJhbHRLZXkgYnViYmxlcyBjYW5jZWxhYmxlIGN0cmxLZXkgY3VycmVudFRhcmdldCBldmVudFBoYXNlIG1ldGFLZXkgcmVsYXRlZFRhcmdldCBzaGlmdEtleSB0YXJnZXQgdGltZVN0YW1wIHZpZXcgd2hpY2giLnNwbGl0KCIgIiksZml4SG9va3M6e30sa2V5SG9va3M6e3Byb3BzOiJjaGFyIGNoYXJDb2RlIGtleSBrZXlDb2RlIi5zcGxpdCgiICIpLGZpbHRlcjpmdW5jdGlvbihlLHQpe3JldHVybiBudWxsPT1lLndoaWNoJiYoZS53aGljaD1udWxsIT10LmNoYXJDb2RlP3QuY2hhckNvZGU6dC5rZXlDb2RlKSxlfX0sbW91c2VIb29rczp7cHJvcHM6ImJ1dHRvbiBidXR0b25zIGNsaWVudFggY2xpZW50WSBmcm9tRWxlbWVudCBvZmZzZXRYIG9mZnNldFkgcGFnZVggcGFnZVkgc2NyZWVuWCBzY3JlZW5ZIHRvRWxlbWVudCIuc3BsaXQoIiAiKSxmaWx0ZXI6ZnVuY3Rpb24oZSxuKXt2YXIgcixpLG8scz1uLmJ1dHRvbixsPW4uZnJvbUVsZW1lbnQ7cmV0dXJuIG51bGw9PWUucGFnZVgmJm51bGwhPW4uY2xpZW50WCYmKGk9ZS50YXJnZXQub3duZXJEb2N1bWVudHx8YSxvPWkuZG9jdW1lbnRFbGVtZW50LHI9aS5ib2R5LGUucGFnZVg9bi5jbGllbnRYKyhvJiZvLnNjcm9sbExlZnR8fHImJnIuc2Nyb2xsTGVmdHx8MCktKG8mJm8uY2xpZW50TGVmdHx8ciYmci5jbGllbnRMZWZ0fHwwKSxlLnBhZ2VZPW4uY2xpZW50WSsobyYmby5zY3JvbGxUb3B8fHImJnIuc2Nyb2xsVG9wfHwwKS0obyYmby5jbGllbnRUb3B8fHImJnIuY2xpZW50VG9wfHwwKSksIWUucmVsYXRlZFRhcmdldCYmbCYmKGUucmVsYXRlZFRhcmdldD1sPT09ZS50YXJnZXQ/bi50b0VsZW1lbnQ6bCksZS53aGljaHx8cz09PXR8fChlLndoaWNoPTEmcz8xOjImcz8zOjQmcz8yOjApLGV9fSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sZm9jdXM6e3RyaWdnZXI6ZnVuY3Rpb24oKXtpZih0aGlzIT09YXQoKSYmdGhpcy5mb2N1cyl0cnl7cmV0dXJuIHRoaXMuZm9jdXMoKSwhMX1jYXRjaChlKXt9fSxkZWxlZ2F0ZVR5cGU6ImZvY3VzaW4ifSxibHVyOnt0cmlnZ2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXM9PT1hdCgpJiZ0aGlzLmJsdXI/KHRoaXMuYmx1cigpLCExKTp0fSxkZWxlZ2F0ZVR5cGU6ImZvY3Vzb3V0In0sY2xpY2s6e3RyaWdnZXI6ZnVuY3Rpb24oKXtyZXR1cm4geC5ub2RlTmFtZSh0aGlzLCJpbnB1dCIpJiYiY2hlY2tib3giPT09dGhpcy50eXBlJiZ0aGlzLmNsaWNrPyh0aGlzLmNsaWNrKCksITEpOnR9LF9kZWZhdWx0OmZ1bmN0aW9uKGUpe3JldHVybiB4Lm5vZGVOYW1lKGUudGFyZ2V0LCJhIil9fSxiZWZvcmV1bmxvYWQ6e3Bvc3REaXNwYXRjaDpmdW5jdGlvbihlKXtlLnJlc3VsdCE9PXQmJihlLm9yaWdpbmFsRXZlbnQucmV0dXJuVmFsdWU9ZS5yZXN1bHQpfX19LHNpbXVsYXRlOmZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpPXguZXh0ZW5kKG5ldyB4LkV2ZW50LG4se3R5cGU6ZSxpc1NpbXVsYXRlZDohMCxvcmlnaW5hbEV2ZW50Ont9fSk7cj94LmV2ZW50LnRyaWdnZXIoaSxudWxsLHQpOnguZXZlbnQuZGlzcGF0Y2guY2FsbCh0LGkpLGkuaXNEZWZhdWx0UHJldmVudGVkKCkmJm4ucHJldmVudERlZmF1bHQoKX19LHgucmVtb3ZlRXZlbnQ9YS5yZW1vdmVFdmVudExpc3RlbmVyP2Z1bmN0aW9uKGUsdCxuKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXImJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LG4sITEpfTpmdW5jdGlvbihlLHQsbil7dmFyIHI9Im9uIit0O2UuZGV0YWNoRXZlbnQmJih0eXBlb2YgZVtyXT09PWkmJihlW3JdPW51bGwpLGUuZGV0YWNoRXZlbnQocixuKSl9LHguRXZlbnQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIHguRXZlbnQ/KGUmJmUudHlwZT8odGhpcy5vcmlnaW5hbEV2ZW50PWUsdGhpcy50eXBlPWUudHlwZSx0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1lLmRlZmF1bHRQcmV2ZW50ZWR8fGUucmV0dXJuVmFsdWU9PT0hMXx8ZS5nZXRQcmV2ZW50RGVmYXVsdCYmZS5nZXRQcmV2ZW50RGVmYXVsdCgpP2l0Om90KTp0aGlzLnR5cGU9ZSxuJiZ4LmV4dGVuZCh0aGlzLG4pLHRoaXMudGltZVN0YW1wPWUmJmUudGltZVN0YW1wfHx4Lm5vdygpLHRoaXNbeC5leHBhbmRvXT0hMCx0KTpuZXcgeC5FdmVudChlLG4pfSx4LkV2ZW50LnByb3RvdHlwZT17aXNEZWZhdWx0UHJldmVudGVkOm90LGlzUHJvcGFnYXRpb25TdG9wcGVkOm90LGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOm90LHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPWl0LGUmJihlLnByZXZlbnREZWZhdWx0P2UucHJldmVudERlZmF1bHQoKTplLnJldHVyblZhbHVlPSExKX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9aXQsZSYmKGUuc3RvcFByb3BhZ2F0aW9uJiZlLnN0b3BQcm9wYWdhdGlvbigpLGUuY2FuY2VsQnViYmxlPSEwKX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD1pdCx0aGlzLnN0b3BQcm9wYWdhdGlvbigpfX0seC5lYWNoKHttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0In0sZnVuY3Rpb24oZSx0KXt4LmV2ZW50LnNwZWNpYWxbZV09e2RlbGVnYXRlVHlwZTp0LGJpbmRUeXBlOnQsaGFuZGxlOmZ1bmN0aW9uKGUpe3ZhciBuLHI9dGhpcyxpPWUucmVsYXRlZFRhcmdldCxvPWUuaGFuZGxlT2JqO3JldHVybighaXx8aSE9PXImJiF4LmNvbnRhaW5zKHIsaSkpJiYoZS50eXBlPW8ub3JpZ1R5cGUsbj1vLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGUudHlwZT10KSxufX19KSx4LnN1cHBvcnQuc3VibWl0QnViYmxlc3x8KHguZXZlbnQuc3BlY2lhbC5zdWJtaXQ9e3NldHVwOmZ1bmN0aW9uKCl7cmV0dXJuIHgubm9kZU5hbWUodGhpcywiZm9ybSIpPyExOih4LmV2ZW50LmFkZCh0aGlzLCJjbGljay5fc3VibWl0IGtleXByZXNzLl9zdWJtaXQiLGZ1bmN0aW9uKGUpe3ZhciBuPWUudGFyZ2V0LHI9eC5ub2RlTmFtZShuLCJpbnB1dCIpfHx4Lm5vZGVOYW1lKG4sImJ1dHRvbiIpP24uZm9ybTp0O3ImJiF4Ll9kYXRhKHIsInN1Ym1pdEJ1YmJsZXMiKSYmKHguZXZlbnQuYWRkKHIsInN1Ym1pdC5fc3VibWl0IixmdW5jdGlvbihlKXtlLl9zdWJtaXRfYnViYmxlPSEwfSkseC5fZGF0YShyLCJzdWJtaXRCdWJibGVzIiwhMCkpfSksdCl9LHBvc3REaXNwYXRjaDpmdW5jdGlvbihlKXtlLl9zdWJtaXRfYnViYmxlJiYoZGVsZXRlIGUuX3N1Ym1pdF9idWJibGUsdGhpcy5wYXJlbnROb2RlJiYhZS5pc1RyaWdnZXImJnguZXZlbnQuc2ltdWxhdGUoInN1Ym1pdCIsdGhpcy5wYXJlbnROb2RlLGUsITApKX0sdGVhcmRvd246ZnVuY3Rpb24oKXtyZXR1cm4geC5ub2RlTmFtZSh0aGlzLCJmb3JtIik/ITE6KHguZXZlbnQucmVtb3ZlKHRoaXMsIi5fc3VibWl0IiksdCl9fSkseC5zdXBwb3J0LmNoYW5nZUJ1YmJsZXN8fCh4LmV2ZW50LnNwZWNpYWwuY2hhbmdlPXtzZXR1cDpmdW5jdGlvbigpe3JldHVybiBaLnRlc3QodGhpcy5ub2RlTmFtZSk/KCgiY2hlY2tib3giPT09dGhpcy50eXBlfHwicmFkaW8iPT09dGhpcy50eXBlKSYmKHguZXZlbnQuYWRkKHRoaXMsInByb3BlcnR5Y2hhbmdlLl9jaGFuZ2UiLGZ1bmN0aW9uKGUpeyJjaGVja2VkIj09PWUub3JpZ2luYWxFdmVudC5wcm9wZXJ0eU5hbWUmJih0aGlzLl9qdXN0X2NoYW5nZWQ9ITApfSkseC5ldmVudC5hZGQodGhpcywiY2xpY2suX2NoYW5nZSIsZnVuY3Rpb24oZSl7dGhpcy5fanVzdF9jaGFuZ2VkJiYhZS5pc1RyaWdnZXImJih0aGlzLl9qdXN0X2NoYW5nZWQ9ITEpLHguZXZlbnQuc2ltdWxhdGUoImNoYW5nZSIsdGhpcyxlLCEwKX0pKSwhMSk6KHguZXZlbnQuYWRkKHRoaXMsImJlZm9yZWFjdGl2YXRlLl9jaGFuZ2UiLGZ1bmN0aW9uKGUpe3ZhciB0PWUudGFyZ2V0O1oudGVzdCh0Lm5vZGVOYW1lKSYmIXguX2RhdGEodCwiY2hhbmdlQnViYmxlcyIpJiYoeC5ldmVudC5hZGQodCwiY2hhbmdlLl9jaGFuZ2UiLGZ1bmN0aW9uKGUpeyF0aGlzLnBhcmVudE5vZGV8fGUuaXNTaW11bGF0ZWR8fGUuaXNUcmlnZ2VyfHx4LmV2ZW50LnNpbXVsYXRlKCJjaGFuZ2UiLHRoaXMucGFyZW50Tm9kZSxlLCEwKX0pLHguX2RhdGEodCwiY2hhbmdlQnViYmxlcyIsITApKX0pLHQpfSxoYW5kbGU6ZnVuY3Rpb24oZSl7dmFyIG49ZS50YXJnZXQ7cmV0dXJuIHRoaXMhPT1ufHxlLmlzU2ltdWxhdGVkfHxlLmlzVHJpZ2dlcnx8InJhZGlvIiE9PW4udHlwZSYmImNoZWNrYm94IiE9PW4udHlwZT9lLmhhbmRsZU9iai5oYW5kbGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0fSx0ZWFyZG93bjpmdW5jdGlvbigpe3JldHVybiB4LmV2ZW50LnJlbW92ZSh0aGlzLCIuX2NoYW5nZSIpLCFaLnRlc3QodGhpcy5ub2RlTmFtZSl9fSkseC5zdXBwb3J0LmZvY3VzaW5CdWJibGVzfHx4LmVhY2goe2ZvY3VzOiJmb2N1c2luIixibHVyOiJmb2N1c291dCJ9LGZ1bmN0aW9uKGUsdCl7dmFyIG49MCxyPWZ1bmN0aW9uKGUpe3guZXZlbnQuc2ltdWxhdGUodCxlLnRhcmdldCx4LmV2ZW50LmZpeChlKSwhMCl9O3guZXZlbnQuc3BlY2lhbFt0XT17c2V0dXA6ZnVuY3Rpb24oKXswPT09bisrJiZhLmFkZEV2ZW50TGlzdGVuZXIoZSxyLCEwKX0sdGVhcmRvd246ZnVuY3Rpb24oKXswPT09LS1uJiZhLnJlbW92ZUV2ZW50TGlzdGVuZXIoZSxyLCEwKX19fSkseC5mbi5leHRlbmQoe29uOmZ1bmN0aW9uKGUsbixyLGksbyl7dmFyIGEscztpZigib2JqZWN0Ij09dHlwZW9mIGUpeyJzdHJpbmciIT10eXBlb2YgbiYmKHI9cnx8bixuPXQpO2ZvcihhIGluIGUpdGhpcy5vbihhLG4scixlW2FdLG8pO3JldHVybiB0aGlzfWlmKG51bGw9PXImJm51bGw9PWk/KGk9bixyPW49dCk6bnVsbD09aSYmKCJzdHJpbmciPT10eXBlb2Ygbj8oaT1yLHI9dCk6KGk9cixyPW4sbj10KSksaT09PSExKWk9b3Q7ZWxzZSBpZighaSlyZXR1cm4gdGhpcztyZXR1cm4gMT09PW8mJihzPWksaT1mdW5jdGlvbihlKXtyZXR1cm4geCgpLm9mZihlKSxzLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0saS5ndWlkPXMuZ3VpZHx8KHMuZ3VpZD14Lmd1aWQrKykpLHRoaXMuZWFjaChmdW5jdGlvbigpe3guZXZlbnQuYWRkKHRoaXMsZSxpLHIsbil9KX0sb25lOmZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiB0aGlzLm9uKGUsdCxuLHIsMSl9LG9mZjpmdW5jdGlvbihlLG4scil7dmFyIGksbztpZihlJiZlLnByZXZlbnREZWZhdWx0JiZlLmhhbmRsZU9iailyZXR1cm4gaT1lLmhhbmRsZU9iaix4KGUuZGVsZWdhdGVUYXJnZXQpLm9mZihpLm5hbWVzcGFjZT9pLm9yaWdUeXBlKyIuIitpLm5hbWVzcGFjZTppLm9yaWdUeXBlLGkuc2VsZWN0b3IsaS5oYW5kbGVyKSx0aGlzO2lmKCJvYmplY3QiPT10eXBlb2YgZSl7Zm9yKG8gaW4gZSl0aGlzLm9mZihvLG4sZVtvXSk7cmV0dXJuIHRoaXN9cmV0dXJuKG49PT0hMXx8ImZ1bmN0aW9uIj09dHlwZW9mIG4pJiYocj1uLG49dCkscj09PSExJiYocj1vdCksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7eC5ldmVudC5yZW1vdmUodGhpcyxlLHIsbil9KX0sdHJpZ2dlcjpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt4LmV2ZW50LnRyaWdnZXIoZSx0LHRoaXMpfSl9LHRyaWdnZXJIYW5kbGVyOmZ1bmN0aW9uKGUsbil7dmFyIHI9dGhpc1swXTtyZXR1cm4gcj94LmV2ZW50LnRyaWdnZXIoZSxuLHIsITApOnR9fSk7dmFyIHN0PS9eLlteOiNcW1wuLF0qJC8sbHQ9L14oPzpwYXJlbnRzfHByZXYoPzpVbnRpbHxBbGwpKS8sdXQ9eC5leHByLm1hdGNoLm5lZWRzQ29udGV4dCxjdD17Y2hpbGRyZW46ITAsY29udGVudHM6ITAsbmV4dDohMCxwcmV2OiEwfTt4LmZuLmV4dGVuZCh7ZmluZDpmdW5jdGlvbihlKXt2YXIgdCxuPVtdLHI9dGhpcyxpPXIubGVuZ3RoO2lmKCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm4gdGhpcy5wdXNoU3RhY2soeChlKS5maWx0ZXIoZnVuY3Rpb24oKXtmb3IodD0wO2k+dDt0KyspaWYoeC5jb250YWlucyhyW3RdLHRoaXMpKXJldHVybiEwfSkpO2Zvcih0PTA7aT50O3QrKyl4LmZpbmQoZSxyW3RdLG4pO3JldHVybiBuPXRoaXMucHVzaFN0YWNrKGk+MT94LnVuaXF1ZShuKTpuKSxuLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3I/dGhpcy5zZWxlY3RvcisiICIrZTplLG59LGhhczpmdW5jdGlvbihlKXt2YXIgdCxuPXgoZSx0aGlzKSxyPW4ubGVuZ3RoO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbigpe2Zvcih0PTA7cj50O3QrKylpZih4LmNvbnRhaW5zKHRoaXMsblt0XSkpcmV0dXJuITB9KX0sbm90OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnB1c2hTdGFjayhmdCh0aGlzLGV8fFtdLCEwKSl9LGZpbHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZnQodGhpcyxlfHxbXSwhMSkpfSxpczpmdW5jdGlvbihlKXtyZXR1cm4hIWZ0KHRoaXMsInN0cmluZyI9PXR5cGVvZiBlJiZ1dC50ZXN0KGUpP3goZSk6ZXx8W10sITEpLmxlbmd0aH0sY2xvc2VzdDpmdW5jdGlvbihlLHQpe3ZhciBuLHI9MCxpPXRoaXMubGVuZ3RoLG89W10sYT11dC50ZXN0KGUpfHwic3RyaW5nIiE9dHlwZW9mIGU/eChlLHR8fHRoaXMuY29udGV4dCk6MDtmb3IoO2k+cjtyKyspZm9yKG49dGhpc1tyXTtuJiZuIT09dDtuPW4ucGFyZW50Tm9kZSlpZigxMT5uLm5vZGVUeXBlJiYoYT9hLmluZGV4KG4pPi0xOjE9PT1uLm5vZGVUeXBlJiZ4LmZpbmQubWF0Y2hlc1NlbGVjdG9yKG4sZSkpKXtuPW8ucHVzaChuKTticmVha31yZXR1cm4gdGhpcy5wdXNoU3RhY2soby5sZW5ndGg+MT94LnVuaXF1ZShvKTpvKX0saW5kZXg6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/InN0cmluZyI9PXR5cGVvZiBlP3guaW5BcnJheSh0aGlzWzBdLHgoZSkpOnguaW5BcnJheShlLmpxdWVyeT9lWzBdOmUsdGhpcyk6dGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlP3RoaXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoOi0xfSxhZGQ6ZnVuY3Rpb24oZSx0KXt2YXIgbj0ic3RyaW5nIj09dHlwZW9mIGU/eChlLHQpOngubWFrZUFycmF5KGUmJmUubm9kZVR5cGU/W2VdOmUpLHI9eC5tZXJnZSh0aGlzLmdldCgpLG4pO3JldHVybiB0aGlzLnB1c2hTdGFjayh4LnVuaXF1ZShyKSl9LGFkZEJhY2s6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuYWRkKG51bGw9PWU/dGhpcy5wcmV2T2JqZWN0OnRoaXMucHJldk9iamVjdC5maWx0ZXIoZSkpfX0pO2Z1bmN0aW9uIHB0KGUsdCl7ZG8gZT1lW3RdO3doaWxlKGUmJjEhPT1lLm5vZGVUeXBlKTtyZXR1cm4gZX14LmVhY2goe3BhcmVudDpmdW5jdGlvbihlKXt2YXIgdD1lLnBhcmVudE5vZGU7cmV0dXJuIHQmJjExIT09dC5ub2RlVHlwZT90Om51bGx9LHBhcmVudHM6ZnVuY3Rpb24oZSl7cmV0dXJuIHguZGlyKGUsInBhcmVudE5vZGUiKX0scGFyZW50c1VudGlsOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4geC5kaXIoZSwicGFyZW50Tm9kZSIsbil9LG5leHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHB0KGUsIm5leHRTaWJsaW5nIil9LHByZXY6ZnVuY3Rpb24oZSl7cmV0dXJuIHB0KGUsInByZXZpb3VzU2libGluZyIpfSxuZXh0QWxsOmZ1bmN0aW9uKGUpe3JldHVybiB4LmRpcihlLCJuZXh0U2libGluZyIpfSxwcmV2QWxsOmZ1bmN0aW9uKGUpe3JldHVybiB4LmRpcihlLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dFVudGlsOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4geC5kaXIoZSwibmV4dFNpYmxpbmciLG4pfSxwcmV2VW50aWw6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB4LmRpcihlLCJwcmV2aW91c1NpYmxpbmciLG4pfSxzaWJsaW5nczpmdW5jdGlvbihlKXtyZXR1cm4geC5zaWJsaW5nKChlLnBhcmVudE5vZGV8fHt9KS5maXJzdENoaWxkLGUpfSxjaGlsZHJlbjpmdW5jdGlvbihlKXtyZXR1cm4geC5zaWJsaW5nKGUuZmlyc3RDaGlsZCl9LGNvbnRlbnRzOmZ1bmN0aW9uKGUpe3JldHVybiB4Lm5vZGVOYW1lKGUsImlmcmFtZSIpP2UuY29udGVudERvY3VtZW50fHxlLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ6eC5tZXJnZShbXSxlLmNoaWxkTm9kZXMpfX0sZnVuY3Rpb24oZSx0KXt4LmZuW2VdPWZ1bmN0aW9uKG4scil7dmFyIGk9eC5tYXAodGhpcyx0LG4pO3JldHVybiJVbnRpbCIhPT1lLnNsaWNlKC01KSYmKHI9biksciYmInN0cmluZyI9PXR5cGVvZiByJiYoaT14LmZpbHRlcihyLGkpKSx0aGlzLmxlbmd0aD4xJiYoY3RbZV18fChpPXgudW5pcXVlKGkpKSxsdC50ZXN0KGUpJiYoaT1pLnJldmVyc2UoKSkpLHRoaXMucHVzaFN0YWNrKGkpfX0pLHguZXh0ZW5kKHtmaWx0ZXI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRbMF07cmV0dXJuIG4mJihlPSI6bm90KCIrZSsiKSIpLDE9PT10Lmxlbmd0aCYmMT09PXIubm9kZVR5cGU/eC5maW5kLm1hdGNoZXNTZWxlY3RvcihyLGUpP1tyXTpbXTp4LmZpbmQubWF0Y2hlcyhlLHguZ3JlcCh0LGZ1bmN0aW9uKGUpe3JldHVybiAxPT09ZS5ub2RlVHlwZX0pKX0sZGlyOmZ1bmN0aW9uKGUsbixyKXt2YXIgaT1bXSxvPWVbbl07d2hpbGUobyYmOSE9PW8ubm9kZVR5cGUmJihyPT09dHx8MSE9PW8ubm9kZVR5cGV8fCF4KG8pLmlzKHIpKSkxPT09by5ub2RlVHlwZSYmaS5wdXNoKG8pLG89b1tuXTtyZXR1cm4gaX0sc2libGluZzpmdW5jdGlvbihlLHQpe3ZhciBuPVtdO2Zvcig7ZTtlPWUubmV4dFNpYmxpbmcpMT09PWUubm9kZVR5cGUmJmUhPT10JiZuLnB1c2goZSk7cmV0dXJuIG59fSk7ZnVuY3Rpb24gZnQoZSx0LG4pe2lmKHguaXNGdW5jdGlvbih0KSlyZXR1cm4geC5ncmVwKGUsZnVuY3Rpb24oZSxyKXtyZXR1cm4hIXQuY2FsbChlLHIsZSkhPT1ufSk7aWYodC5ub2RlVHlwZSlyZXR1cm4geC5ncmVwKGUsZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT10IT09bn0pO2lmKCJzdHJpbmciPT10eXBlb2YgdCl7aWYoc3QudGVzdCh0KSlyZXR1cm4geC5maWx0ZXIodCxlLG4pO3Q9eC5maWx0ZXIodCxlKX1yZXR1cm4geC5ncmVwKGUsZnVuY3Rpb24oZSl7cmV0dXJuIHguaW5BcnJheShlLHQpPj0wIT09bn0pfWZ1bmN0aW9uIGR0KGUpe3ZhciB0PWh0LnNwbGl0KCJ8Iiksbj1lLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtpZihuLmNyZWF0ZUVsZW1lbnQpd2hpbGUodC5sZW5ndGgpbi5jcmVhdGVFbGVtZW50KHQucG9wKCkpO3JldHVybiBufXZhciBodD0iYWJicnxhcnRpY2xlfGFzaWRlfGF1ZGlvfGJkaXxjYW52YXN8ZGF0YXxkYXRhbGlzdHxkZXRhaWxzfGZpZ2NhcHRpb258ZmlndXJlfGZvb3RlcnxoZWFkZXJ8aGdyb3VwfG1hcmt8bWV0ZXJ8bmF2fG91dHB1dHxwcm9ncmVzc3xzZWN0aW9ufHN1bW1hcnl8dGltZXx2aWRlbyIsZ3Q9LyBqUXVlcnlcZCs9Iig/Om51bGx8XGQrKSIvZyxtdD1SZWdFeHAoIjwoPzoiK2h0KyIpW1xccy8+XSIsImkiKSx5dD0vXlxzKy8sdnQ9LzwoPyFhcmVhfGJyfGNvbHxlbWJlZHxocnxpbWd8aW5wdXR8bGlua3xtZXRhfHBhcmFtKSgoW1x3Ol0rKVtePl0qKVwvPi9naSxidD0vPChbXHc6XSspLyx4dD0vPHRib2R5L2ksd3Q9Lzx8JiM/XHcrOy8sVHQ9LzwoPzpzY3JpcHR8c3R5bGV8bGluaykvaSxDdD0vXig/OmNoZWNrYm94fHJhZGlvKSQvaSxOdD0vY2hlY2tlZFxzKig/OltePV18PVxzKi5jaGVja2VkLikvaSxrdD0vXiR8XC8oPzpqYXZhfGVjbWEpc2NyaXB0L2ksRXQ9L150cnVlXC8oLiopLyxTdD0vXlxzKjwhKD86XFtDREFUQVxbfC0tKXwoPzpcXVxdfC0tKT5ccyokL2csQXQ9e29wdGlvbjpbMSwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPiIsIjwvc2VsZWN0PiJdLGxlZ2VuZDpbMSwiPGZpZWxkc2V0PiIsIjwvZmllbGRzZXQ+Il0sYXJlYTpbMSwiPG1hcD4iLCI8L21hcD4iXSxwYXJhbTpbMSwiPG9iamVjdD4iLCI8L29iamVjdD4iXSx0aGVhZDpbMSwiPHRhYmxlPiIsIjwvdGFibGU+Il0sdHI6WzIsIjx0YWJsZT48dGJvZHk+IiwiPC90Ym9keT48L3RhYmxlPiJdLGNvbDpbMiwiPHRhYmxlPjx0Ym9keT48L3Rib2R5Pjxjb2xncm91cD4iLCI8L2NvbGdyb3VwPjwvdGFibGU+Il0sdGQ6WzMsIjx0YWJsZT48dGJvZHk+PHRyPiIsIjwvdHI+PC90Ym9keT48L3RhYmxlPiJdLF9kZWZhdWx0Onguc3VwcG9ydC5odG1sU2VyaWFsaXplP1swLCIiLCIiXTpbMSwiWDxkaXY+IiwiPC9kaXY+Il19LGp0PWR0KGEpLER0PWp0LmFwcGVuZENoaWxkKGEuY3JlYXRlRWxlbWVudCgiZGl2IikpO0F0Lm9wdGdyb3VwPUF0Lm9wdGlvbixBdC50Ym9keT1BdC50Zm9vdD1BdC5jb2xncm91cD1BdC5jYXB0aW9uPUF0LnRoZWFkLEF0LnRoPUF0LnRkLHguZm4uZXh0ZW5kKHt0ZXh0OmZ1bmN0aW9uKGUpe3JldHVybiB4LmFjY2Vzcyh0aGlzLGZ1bmN0aW9uKGUpe3JldHVybiBlPT09dD94LnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmFwcGVuZCgodGhpc1swXSYmdGhpc1swXS5vd25lckRvY3VtZW50fHxhKS5jcmVhdGVUZXh0Tm9kZShlKSl9LG51bGwsZSxhcmd1bWVudHMubGVuZ3RoKX0sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLGZ1bmN0aW9uKGUpe2lmKDE9PT10aGlzLm5vZGVUeXBlfHwxMT09PXRoaXMubm9kZVR5cGV8fDk9PT10aGlzLm5vZGVUeXBlKXt2YXIgdD1MdCh0aGlzLGUpO3QuYXBwZW5kQ2hpbGQoZSl9fSl9LHByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oZSl7aWYoMT09PXRoaXMubm9kZVR5cGV8fDExPT09dGhpcy5ub2RlVHlwZXx8OT09PXRoaXMubm9kZVR5cGUpe3ZhciB0PUx0KHRoaXMsZSk7dC5pbnNlcnRCZWZvcmUoZSx0LmZpcnN0Q2hpbGQpfX0pfSxiZWZvcmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oZSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsdGhpcyl9KX0sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oZSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsdGhpcy5uZXh0U2libGluZyl9KX0scmVtb3ZlOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj1lP3guZmlsdGVyKGUsdGhpcyk6dGhpcyxpPTA7Zm9yKDtudWxsIT0obj1yW2ldKTtpKyspdHx8MSE9PW4ubm9kZVR5cGV8fHguY2xlYW5EYXRhKEZ0KG4pKSxuLnBhcmVudE5vZGUmJih0JiZ4LmNvbnRhaW5zKG4ub3duZXJEb2N1bWVudCxuKSYmX3QoRnQobiwic2NyaXB0IikpLG4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKSk7cmV0dXJuIHRoaXN9LGVtcHR5OmZ1bmN0aW9uKCl7dmFyIGUsdD0wO2Zvcig7bnVsbCE9KGU9dGhpc1t0XSk7dCsrKXsxPT09ZS5ub2RlVHlwZSYmeC5jbGVhbkRhdGEoRnQoZSwhMSkpO3doaWxlKGUuZmlyc3RDaGlsZCllLnJlbW92ZUNoaWxkKGUuZmlyc3RDaGlsZCk7ZS5vcHRpb25zJiZ4Lm5vZGVOYW1lKGUsInNlbGVjdCIpJiYoZS5vcHRpb25zLmxlbmd0aD0wKX1yZXR1cm4gdGhpc30sY2xvbmU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT1udWxsPT1lPyExOmUsdD1udWxsPT10P2U6dCx0aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiB4LmNsb25lKHRoaXMsZSx0KX0pfSxodG1sOmZ1bmN0aW9uKGUpe3JldHVybiB4LmFjY2Vzcyh0aGlzLGZ1bmN0aW9uKGUpe3ZhciBuPXRoaXNbMF18fHt9LHI9MCxpPXRoaXMubGVuZ3RoO2lmKGU9PT10KXJldHVybiAxPT09bi5ub2RlVHlwZT9uLmlubmVySFRNTC5yZXBsYWNlKGd0LCIiKTp0O2lmKCEoInN0cmluZyIhPXR5cGVvZiBlfHxUdC50ZXN0KGUpfHwheC5zdXBwb3J0Lmh0bWxTZXJpYWxpemUmJm10LnRlc3QoZSl8fCF4LnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2UmJnl0LnRlc3QoZSl8fEF0WyhidC5leGVjKGUpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpXSkpe2U9ZS5yZXBsYWNlKHZ0LCI8JDE+PC8kMj4iKTt0cnl7Zm9yKDtpPnI7cisrKW49dGhpc1tyXXx8e30sMT09PW4ubm9kZVR5cGUmJih4LmNsZWFuRGF0YShGdChuLCExKSksbi5pbm5lckhUTUw9ZSk7bj0wfWNhdGNoKG8pe319biYmdGhpcy5lbXB0eSgpLmFwcGVuZChlKX0sbnVsbCxlLGFyZ3VtZW50cy5sZW5ndGgpfSxyZXBsYWNlV2l0aDpmdW5jdGlvbigpe3ZhciBlPXgubWFwKHRoaXMsZnVuY3Rpb24oZSl7cmV0dXJuW2UubmV4dFNpYmxpbmcsZS5wYXJlbnROb2RlXX0pLHQ9MDtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24obil7dmFyIHI9ZVt0KytdLGk9ZVt0KytdO2kmJihyJiZyLnBhcmVudE5vZGUhPT1pJiYocj10aGlzLm5leHRTaWJsaW5nKSx4KHRoaXMpLnJlbW92ZSgpLGkuaW5zZXJ0QmVmb3JlKG4scikpfSwhMCksdD90aGlzOnRoaXMucmVtb3ZlKCl9LGRldGFjaDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5yZW1vdmUoZSwhMCl9LGRvbU1hbmlwOmZ1bmN0aW9uKGUsdCxuKXtlPWQuYXBwbHkoW10sZSk7dmFyIHIsaSxvLGEscyxsLHU9MCxjPXRoaXMubGVuZ3RoLHA9dGhpcyxmPWMtMSxoPWVbMF0sZz14LmlzRnVuY3Rpb24oaCk7aWYoZ3x8ISgxPj1jfHwic3RyaW5nIiE9dHlwZW9mIGh8fHguc3VwcG9ydC5jaGVja0Nsb25lKSYmTnQudGVzdChoKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHIpe3ZhciBpPXAuZXEocik7ZyYmKGVbMF09aC5jYWxsKHRoaXMscixpLmh0bWwoKSkpLGkuZG9tTWFuaXAoZSx0LG4pfSk7aWYoYyYmKGw9eC5idWlsZEZyYWdtZW50KGUsdGhpc1swXS5vd25lckRvY3VtZW50LCExLCFuJiZ0aGlzKSxyPWwuZmlyc3RDaGlsZCwxPT09bC5jaGlsZE5vZGVzLmxlbmd0aCYmKGw9cikscikpe2ZvcihhPXgubWFwKEZ0KGwsInNjcmlwdCIpLEh0KSxvPWEubGVuZ3RoO2M+dTt1KyspaT1sLHUhPT1mJiYoaT14LmNsb25lKGksITAsITApLG8mJngubWVyZ2UoYSxGdChpLCJzY3JpcHQiKSkpLHQuY2FsbCh0aGlzW3VdLGksdSk7aWYobylmb3Iocz1hW2EubGVuZ3RoLTFdLm93bmVyRG9jdW1lbnQseC5tYXAoYSxxdCksdT0wO28+dTt1KyspaT1hW3VdLGt0LnRlc3QoaS50eXBlfHwiIikmJiF4Ll9kYXRhKGksImdsb2JhbEV2YWwiKSYmeC5jb250YWlucyhzLGkpJiYoaS5zcmM/eC5fZXZhbFVybChpLnNyYyk6eC5nbG9iYWxFdmFsKChpLnRleHR8fGkudGV4dENvbnRlbnR8fGkuaW5uZXJIVE1MfHwiIikucmVwbGFjZShTdCwiIikpKTtsPXI9bnVsbH1yZXR1cm4gdGhpc319KTtmdW5jdGlvbiBMdChlLHQpe3JldHVybiB4Lm5vZGVOYW1lKGUsInRhYmxlIikmJngubm9kZU5hbWUoMT09PXQubm9kZVR5cGU/dDp0LmZpcnN0Q2hpbGQsInRyIik/ZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKVswXXx8ZS5hcHBlbmRDaGlsZChlLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKSk6ZX1mdW5jdGlvbiBIdChlKXtyZXR1cm4gZS50eXBlPShudWxsIT09eC5maW5kLmF0dHIoZSwidHlwZSIpKSsiLyIrZS50eXBlLGV9ZnVuY3Rpb24gcXQoZSl7dmFyIHQ9RXQuZXhlYyhlLnR5cGUpO3JldHVybiB0P2UudHlwZT10WzFdOmUucmVtb3ZlQXR0cmlidXRlKCJ0eXBlIiksZX1mdW5jdGlvbiBfdChlLHQpe3ZhciBuLHI9MDtmb3IoO251bGwhPShuPWVbcl0pO3IrKyl4Ll9kYXRhKG4sImdsb2JhbEV2YWwiLCF0fHx4Ll9kYXRhKHRbcl0sImdsb2JhbEV2YWwiKSl9ZnVuY3Rpb24gTXQoZSx0KXtpZigxPT09dC5ub2RlVHlwZSYmeC5oYXNEYXRhKGUpKXt2YXIgbixyLGksbz14Ll9kYXRhKGUpLGE9eC5fZGF0YSh0LG8pLHM9by5ldmVudHM7aWYocyl7ZGVsZXRlIGEuaGFuZGxlLGEuZXZlbnRzPXt9O2ZvcihuIGluIHMpZm9yKHI9MCxpPXNbbl0ubGVuZ3RoO2k+cjtyKyspeC5ldmVudC5hZGQodCxuLHNbbl1bcl0pfWEuZGF0YSYmKGEuZGF0YT14LmV4dGVuZCh7fSxhLmRhdGEpKX19ZnVuY3Rpb24gT3QoZSx0KXt2YXIgbixyLGk7aWYoMT09PXQubm9kZVR5cGUpe2lmKG49dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLCF4LnN1cHBvcnQubm9DbG9uZUV2ZW50JiZ0W3guZXhwYW5kb10pe2k9eC5fZGF0YSh0KTtmb3IociBpbiBpLmV2ZW50cyl4LnJlbW92ZUV2ZW50KHQscixpLmhhbmRsZSk7dC5yZW1vdmVBdHRyaWJ1dGUoeC5leHBhbmRvKX0ic2NyaXB0Ij09PW4mJnQudGV4dCE9PWUudGV4dD8oSHQodCkudGV4dD1lLnRleHQscXQodCkpOiJvYmplY3QiPT09bj8odC5wYXJlbnROb2RlJiYodC5vdXRlckhUTUw9ZS5vdXRlckhUTUwpLHguc3VwcG9ydC5odG1sNUNsb25lJiZlLmlubmVySFRNTCYmIXgudHJpbSh0LmlubmVySFRNTCkmJih0LmlubmVySFRNTD1lLmlubmVySFRNTCkpOiJpbnB1dCI9PT1uJiZDdC50ZXN0KGUudHlwZSk/KHQuZGVmYXVsdENoZWNrZWQ9dC5jaGVja2VkPWUuY2hlY2tlZCx0LnZhbHVlIT09ZS52YWx1ZSYmKHQudmFsdWU9ZS52YWx1ZSkpOiJvcHRpb24iPT09bj90LmRlZmF1bHRTZWxlY3RlZD10LnNlbGVjdGVkPWUuZGVmYXVsdFNlbGVjdGVkOigiaW5wdXQiPT09bnx8InRleHRhcmVhIj09PW4pJiYodC5kZWZhdWx0VmFsdWU9ZS5kZWZhdWx0VmFsdWUpfX14LmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihlLHQpe3guZm5bZV09ZnVuY3Rpb24oZSl7dmFyIG4scj0wLGk9W10sbz14KGUpLGE9by5sZW5ndGgtMTtmb3IoO2E+PXI7cisrKW49cj09PWE/dGhpczp0aGlzLmNsb25lKCEwKSx4KG9bcl0pW3RdKG4pLGguYXBwbHkoaSxuLmdldCgpKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soaSl9fSk7ZnVuY3Rpb24gRnQoZSxuKXt2YXIgcixvLGE9MCxzPXR5cGVvZiBlLmdldEVsZW1lbnRzQnlUYWdOYW1lIT09aT9lLmdldEVsZW1lbnRzQnlUYWdOYW1lKG58fCIqIik6dHlwZW9mIGUucXVlcnlTZWxlY3RvckFsbCE9PWk/ZS5xdWVyeVNlbGVjdG9yQWxsKG58fCIqIik6dDtpZighcylmb3Iocz1bXSxyPWUuY2hpbGROb2Rlc3x8ZTtudWxsIT0obz1yW2FdKTthKyspIW58fHgubm9kZU5hbWUobyxuKT9zLnB1c2gobyk6eC5tZXJnZShzLEZ0KG8sbikpO3JldHVybiBuPT09dHx8biYmeC5ub2RlTmFtZShlLG4pP3gubWVyZ2UoW2VdLHMpOnN9ZnVuY3Rpb24gQnQoZSl7Q3QudGVzdChlLnR5cGUpJiYoZS5kZWZhdWx0Q2hlY2tlZD1lLmNoZWNrZWQpfXguZXh0ZW5kKHtjbG9uZTpmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGEscyxsPXguY29udGFpbnMoZS5vd25lckRvY3VtZW50LGUpO2lmKHguc3VwcG9ydC5odG1sNUNsb25lfHx4LmlzWE1MRG9jKGUpfHwhbXQudGVzdCgiPCIrZS5ub2RlTmFtZSsiPiIpP289ZS5jbG9uZU5vZGUoITApOihEdC5pbm5lckhUTUw9ZS5vdXRlckhUTUwsRHQucmVtb3ZlQ2hpbGQobz1EdC5maXJzdENoaWxkKSksISh4LnN1cHBvcnQubm9DbG9uZUV2ZW50JiZ4LnN1cHBvcnQubm9DbG9uZUNoZWNrZWR8fDEhPT1lLm5vZGVUeXBlJiYxMSE9PWUubm9kZVR5cGV8fHguaXNYTUxEb2MoZSkpKWZvcihyPUZ0KG8pLHM9RnQoZSksYT0wO251bGwhPShpPXNbYV0pOysrYSlyW2FdJiZPdChpLHJbYV0pO2lmKHQpaWYobilmb3Iocz1zfHxGdChlKSxyPXJ8fEZ0KG8pLGE9MDtudWxsIT0oaT1zW2FdKTthKyspTXQoaSxyW2FdKTtlbHNlIE10KGUsbyk7cmV0dXJuIHI9RnQobywic2NyaXB0Iiksci5sZW5ndGg+MCYmX3QociwhbCYmRnQoZSwic2NyaXB0IikpLHI9cz1pPW51bGwsb30sYnVpbGRGcmFnbWVudDpmdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGEscyxsLHUsYyxwPWUubGVuZ3RoLGY9ZHQodCksZD1bXSxoPTA7Zm9yKDtwPmg7aCsrKWlmKG89ZVtoXSxvfHwwPT09bylpZigib2JqZWN0Ij09PXgudHlwZShvKSl4Lm1lcmdlKGQsby5ub2RlVHlwZT9bb106byk7ZWxzZSBpZih3dC50ZXN0KG8pKXtzPXN8fGYuYXBwZW5kQ2hpbGQodC5jcmVhdGVFbGVtZW50KCJkaXYiKSksbD0oYnQuZXhlYyhvKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKSxjPUF0W2xdfHxBdC5fZGVmYXVsdCxzLmlubmVySFRNTD1jWzFdK28ucmVwbGFjZSh2dCwiPCQxPjwvJDI+IikrY1syXSxpPWNbMF07d2hpbGUoaS0tKXM9cy5sYXN0Q2hpbGQ7aWYoIXguc3VwcG9ydC5sZWFkaW5nV2hpdGVzcGFjZSYmeXQudGVzdChvKSYmZC5wdXNoKHQuY3JlYXRlVGV4dE5vZGUoeXQuZXhlYyhvKVswXSkpLCF4LnN1cHBvcnQudGJvZHkpe289InRhYmxlIiE9PWx8fHh0LnRlc3Qobyk/Ijx0YWJsZT4iIT09Y1sxXXx8eHQudGVzdChvKT8wOnM6cy5maXJzdENoaWxkLGk9byYmby5jaGlsZE5vZGVzLmxlbmd0aDt3aGlsZShpLS0peC5ub2RlTmFtZSh1PW8uY2hpbGROb2Rlc1tpXSwidGJvZHkiKSYmIXUuY2hpbGROb2Rlcy5sZW5ndGgmJm8ucmVtb3ZlQ2hpbGQodSl9eC5tZXJnZShkLHMuY2hpbGROb2Rlcykscy50ZXh0Q29udGVudD0iIjt3aGlsZShzLmZpcnN0Q2hpbGQpcy5yZW1vdmVDaGlsZChzLmZpcnN0Q2hpbGQpO3M9Zi5sYXN0Q2hpbGR9ZWxzZSBkLnB1c2godC5jcmVhdGVUZXh0Tm9kZShvKSk7cyYmZi5yZW1vdmVDaGlsZChzKSx4LnN1cHBvcnQuYXBwZW5kQ2hlY2tlZHx8eC5ncmVwKEZ0KGQsImlucHV0IiksQnQpLGg9MDt3aGlsZShvPWRbaCsrXSlpZigoIXJ8fC0xPT09eC5pbkFycmF5KG8scikpJiYoYT14LmNvbnRhaW5zKG8ub3duZXJEb2N1bWVudCxvKSxzPUZ0KGYuYXBwZW5kQ2hpbGQobyksInNjcmlwdCIpLGEmJl90KHMpLG4pKXtpPTA7d2hpbGUobz1zW2krK10pa3QudGVzdChvLnR5cGV8fCIiKSYmbi5wdXNoKG8pfXJldHVybiBzPW51bGwsZn0sY2xlYW5EYXRhOmZ1bmN0aW9uKGUsdCl7dmFyIG4scixvLGEscz0wLGw9eC5leHBhbmRvLHU9eC5jYWNoZSxjPXguc3VwcG9ydC5kZWxldGVFeHBhbmRvLGY9eC5ldmVudC5zcGVjaWFsO2Zvcig7bnVsbCE9KG49ZVtzXSk7cysrKWlmKCh0fHx4LmFjY2VwdERhdGEobikpJiYobz1uW2xdLGE9byYmdVtvXSkpe2lmKGEuZXZlbnRzKWZvcihyIGluIGEuZXZlbnRzKWZbcl0/eC5ldmVudC5yZW1vdmUobixyKTp4LnJlbW92ZUV2ZW50KG4scixhLmhhbmRsZSk7CnVbb10mJihkZWxldGUgdVtvXSxjP2RlbGV0ZSBuW2xdOnR5cGVvZiBuLnJlbW92ZUF0dHJpYnV0ZSE9PWk/bi5yZW1vdmVBdHRyaWJ1dGUobCk6bltsXT1udWxsLHAucHVzaChvKSl9fSxfZXZhbFVybDpmdW5jdGlvbihlKXtyZXR1cm4geC5hamF4KHt1cmw6ZSx0eXBlOiJHRVQiLGRhdGFUeXBlOiJzY3JpcHQiLGFzeW5jOiExLGdsb2JhbDohMSwidGhyb3dzIjohMH0pfX0pLHguZm4uZXh0ZW5kKHt3cmFwQWxsOmZ1bmN0aW9uKGUpe2lmKHguaXNGdW5jdGlvbihlKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHQpe3godGhpcykud3JhcEFsbChlLmNhbGwodGhpcyx0KSl9KTtpZih0aGlzWzBdKXt2YXIgdD14KGUsdGhpc1swXS5vd25lckRvY3VtZW50KS5lcSgwKS5jbG9uZSghMCk7dGhpc1swXS5wYXJlbnROb2RlJiZ0Lmluc2VydEJlZm9yZSh0aGlzWzBdKSx0Lm1hcChmdW5jdGlvbigpe3ZhciBlPXRoaXM7d2hpbGUoZS5maXJzdENoaWxkJiYxPT09ZS5maXJzdENoaWxkLm5vZGVUeXBlKWU9ZS5maXJzdENoaWxkO3JldHVybiBlfSkuYXBwZW5kKHRoaXMpfXJldHVybiB0aGlzfSx3cmFwSW5uZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHguaXNGdW5jdGlvbihlKT90aGlzLmVhY2goZnVuY3Rpb24odCl7eCh0aGlzKS53cmFwSW5uZXIoZS5jYWxsKHRoaXMsdCkpfSk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9eCh0aGlzKSxuPXQuY29udGVudHMoKTtuLmxlbmd0aD9uLndyYXBBbGwoZSk6dC5hcHBlbmQoZSl9KX0sd3JhcDpmdW5jdGlvbihlKXt2YXIgdD14LmlzRnVuY3Rpb24oZSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihuKXt4KHRoaXMpLndyYXBBbGwodD9lLmNhbGwodGhpcyxuKTplKX0pfSx1bndyYXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnQoKS5lYWNoKGZ1bmN0aW9uKCl7eC5ub2RlTmFtZSh0aGlzLCJib2R5Iil8fHgodGhpcykucmVwbGFjZVdpdGgodGhpcy5jaGlsZE5vZGVzKX0pLmVuZCgpfX0pO3ZhciBQdCxSdCxXdCwkdD0vYWxwaGFcKFteKV0qXCkvaSxJdD0vb3BhY2l0eVxzKj1ccyooW14pXSopLyx6dD0vXih0b3B8cmlnaHR8Ym90dG9tfGxlZnQpJC8sWHQ9L14obm9uZXx0YWJsZSg/IS1jW2VhXSkuKykvLFV0PS9ebWFyZ2luLyxWdD1SZWdFeHAoIl4oIit3KyIpKC4qKSQiLCJpIiksWXQ9UmVnRXhwKCJeKCIrdysiKSg/IXB4KVthLXolXSskIiwiaSIpLEp0PVJlZ0V4cCgiXihbKy1dKT0oIit3KyIpIiwiaSIpLEd0PXtCT0RZOiJibG9jayJ9LFF0PXtwb3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToiYmxvY2sifSxLdD17bGV0dGVyU3BhY2luZzowLGZvbnRXZWlnaHQ6NDAwfSxadD1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLGVuPVsiV2Via2l0IiwiTyIsIk1veiIsIm1zIl07ZnVuY3Rpb24gdG4oZSx0KXtpZih0IGluIGUpcmV0dXJuIHQ7dmFyIG49dC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSt0LnNsaWNlKDEpLHI9dCxpPWVuLmxlbmd0aDt3aGlsZShpLS0paWYodD1lbltpXStuLHQgaW4gZSlyZXR1cm4gdDtyZXR1cm4gcn1mdW5jdGlvbiBubihlLHQpe3JldHVybiBlPXR8fGUsIm5vbmUiPT09eC5jc3MoZSwiZGlzcGxheSIpfHwheC5jb250YWlucyhlLm93bmVyRG9jdW1lbnQsZSl9ZnVuY3Rpb24gcm4oZSx0KXt2YXIgbixyLGksbz1bXSxhPTAscz1lLmxlbmd0aDtmb3IoO3M+YTthKyspcj1lW2FdLHIuc3R5bGUmJihvW2FdPXguX2RhdGEociwib2xkZGlzcGxheSIpLG49ci5zdHlsZS5kaXNwbGF5LHQ/KG9bYV18fCJub25lIiE9PW58fChyLnN0eWxlLmRpc3BsYXk9IiIpLCIiPT09ci5zdHlsZS5kaXNwbGF5JiZubihyKSYmKG9bYV09eC5fZGF0YShyLCJvbGRkaXNwbGF5IixsbihyLm5vZGVOYW1lKSkpKTpvW2FdfHwoaT1ubihyKSwobiYmIm5vbmUiIT09bnx8IWkpJiZ4Ll9kYXRhKHIsIm9sZGRpc3BsYXkiLGk/bjp4LmNzcyhyLCJkaXNwbGF5IikpKSk7Zm9yKGE9MDtzPmE7YSsrKXI9ZVthXSxyLnN0eWxlJiYodCYmIm5vbmUiIT09ci5zdHlsZS5kaXNwbGF5JiYiIiE9PXIuc3R5bGUuZGlzcGxheXx8KHIuc3R5bGUuZGlzcGxheT10P29bYV18fCIiOiJub25lIikpO3JldHVybiBlfXguZm4uZXh0ZW5kKHtjc3M6ZnVuY3Rpb24oZSxuKXtyZXR1cm4geC5hY2Nlc3ModGhpcyxmdW5jdGlvbihlLG4scil7dmFyIGksbyxhPXt9LHM9MDtpZih4LmlzQXJyYXkobikpe2ZvcihvPVJ0KGUpLGk9bi5sZW5ndGg7aT5zO3MrKylhW25bc11dPXguY3NzKGUsbltzXSwhMSxvKTtyZXR1cm4gYX1yZXR1cm4gciE9PXQ/eC5zdHlsZShlLG4scik6eC5jc3MoZSxuKX0sZSxuLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHNob3c6ZnVuY3Rpb24oKXtyZXR1cm4gcm4odGhpcywhMCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gcm4odGhpcyl9LHRvZ2dsZTpmdW5jdGlvbihlKXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBlP2U/dGhpcy5zaG93KCk6dGhpcy5oaWRlKCk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7bm4odGhpcyk/eCh0aGlzKS5zaG93KCk6eCh0aGlzKS5oaWRlKCl9KX19KSx4LmV4dGVuZCh7Y3NzSG9va3M6e29wYWNpdHk6e2dldDpmdW5jdGlvbihlLHQpe2lmKHQpe3ZhciBuPVd0KGUsIm9wYWNpdHkiKTtyZXR1cm4iIj09PW4/IjEiOm59fX19LGNzc051bWJlcjp7Y29sdW1uQ291bnQ6ITAsZmlsbE9wYWNpdHk6ITAsZm9udFdlaWdodDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITB9LGNzc1Byb3BzOnsiZmxvYXQiOnguc3VwcG9ydC5jc3NGbG9hdD8iY3NzRmxvYXQiOiJzdHlsZUZsb2F0In0sc3R5bGU6ZnVuY3Rpb24oZSxuLHIsaSl7aWYoZSYmMyE9PWUubm9kZVR5cGUmJjghPT1lLm5vZGVUeXBlJiZlLnN0eWxlKXt2YXIgbyxhLHMsbD14LmNhbWVsQ2FzZShuKSx1PWUuc3R5bGU7aWYobj14LmNzc1Byb3BzW2xdfHwoeC5jc3NQcm9wc1tsXT10bih1LGwpKSxzPXguY3NzSG9va3Nbbl18fHguY3NzSG9va3NbbF0scj09PXQpcmV0dXJuIHMmJiJnZXQiaW4gcyYmKG89cy5nZXQoZSwhMSxpKSkhPT10P286dVtuXTtpZihhPXR5cGVvZiByLCJzdHJpbmciPT09YSYmKG89SnQuZXhlYyhyKSkmJihyPShvWzFdKzEpKm9bMl0rcGFyc2VGbG9hdCh4LmNzcyhlLG4pKSxhPSJudW1iZXIiKSwhKG51bGw9PXJ8fCJudW1iZXIiPT09YSYmaXNOYU4ocil8fCgibnVtYmVyIiE9PWF8fHguY3NzTnVtYmVyW2xdfHwocis9InB4IikseC5zdXBwb3J0LmNsZWFyQ2xvbmVTdHlsZXx8IiIhPT1yfHwwIT09bi5pbmRleE9mKCJiYWNrZ3JvdW5kIil8fCh1W25dPSJpbmhlcml0IikscyYmInNldCJpbiBzJiYocj1zLnNldChlLHIsaSkpPT09dCkpKXRyeXt1W25dPXJ9Y2F0Y2goYyl7fX19LGNzczpmdW5jdGlvbihlLG4scixpKXt2YXIgbyxhLHMsbD14LmNhbWVsQ2FzZShuKTtyZXR1cm4gbj14LmNzc1Byb3BzW2xdfHwoeC5jc3NQcm9wc1tsXT10bihlLnN0eWxlLGwpKSxzPXguY3NzSG9va3Nbbl18fHguY3NzSG9va3NbbF0scyYmImdldCJpbiBzJiYoYT1zLmdldChlLCEwLHIpKSxhPT09dCYmKGE9V3QoZSxuLGkpKSwibm9ybWFsIj09PWEmJm4gaW4gS3QmJihhPUt0W25dKSwiIj09PXJ8fHI/KG89cGFyc2VGbG9hdChhKSxyPT09ITB8fHguaXNOdW1lcmljKG8pP298fDA6YSk6YX19KSxlLmdldENvbXB1dGVkU3R5bGU/KFJ0PWZ1bmN0aW9uKHQpe3JldHVybiBlLmdldENvbXB1dGVkU3R5bGUodCxudWxsKX0sV3Q9ZnVuY3Rpb24oZSxuLHIpe3ZhciBpLG8sYSxzPXJ8fFJ0KGUpLGw9cz9zLmdldFByb3BlcnR5VmFsdWUobil8fHNbbl06dCx1PWUuc3R5bGU7cmV0dXJuIHMmJigiIiE9PWx8fHguY29udGFpbnMoZS5vd25lckRvY3VtZW50LGUpfHwobD14LnN0eWxlKGUsbikpLFl0LnRlc3QobCkmJlV0LnRlc3QobikmJihpPXUud2lkdGgsbz11Lm1pbldpZHRoLGE9dS5tYXhXaWR0aCx1Lm1pbldpZHRoPXUubWF4V2lkdGg9dS53aWR0aD1sLGw9cy53aWR0aCx1LndpZHRoPWksdS5taW5XaWR0aD1vLHUubWF4V2lkdGg9YSkpLGx9KTphLmRvY3VtZW50RWxlbWVudC5jdXJyZW50U3R5bGUmJihSdD1mdW5jdGlvbihlKXtyZXR1cm4gZS5jdXJyZW50U3R5bGV9LFd0PWZ1bmN0aW9uKGUsbixyKXt2YXIgaSxvLGEscz1yfHxSdChlKSxsPXM/c1tuXTp0LHU9ZS5zdHlsZTtyZXR1cm4gbnVsbD09bCYmdSYmdVtuXSYmKGw9dVtuXSksWXQudGVzdChsKSYmIXp0LnRlc3QobikmJihpPXUubGVmdCxvPWUucnVudGltZVN0eWxlLGE9byYmby5sZWZ0LGEmJihvLmxlZnQ9ZS5jdXJyZW50U3R5bGUubGVmdCksdS5sZWZ0PSJmb250U2l6ZSI9PT1uPyIxZW0iOmwsbD11LnBpeGVsTGVmdCsicHgiLHUubGVmdD1pLGEmJihvLmxlZnQ9YSkpLCIiPT09bD8iYXV0byI6bH0pO2Z1bmN0aW9uIG9uKGUsdCxuKXt2YXIgcj1WdC5leGVjKHQpO3JldHVybiByP01hdGgubWF4KDAsclsxXS0obnx8MCkpKyhyWzJdfHwicHgiKTp0fWZ1bmN0aW9uIGFuKGUsdCxuLHIsaSl7dmFyIG89bj09PShyPyJib3JkZXIiOiJjb250ZW50Iik/NDoid2lkdGgiPT09dD8xOjAsYT0wO2Zvcig7ND5vO28rPTIpIm1hcmdpbiI9PT1uJiYoYSs9eC5jc3MoZSxuK1p0W29dLCEwLGkpKSxyPygiY29udGVudCI9PT1uJiYoYS09eC5jc3MoZSwicGFkZGluZyIrWnRbb10sITAsaSkpLCJtYXJnaW4iIT09biYmKGEtPXguY3NzKGUsImJvcmRlciIrWnRbb10rIldpZHRoIiwhMCxpKSkpOihhKz14LmNzcyhlLCJwYWRkaW5nIitadFtvXSwhMCxpKSwicGFkZGluZyIhPT1uJiYoYSs9eC5jc3MoZSwiYm9yZGVyIitadFtvXSsiV2lkdGgiLCEwLGkpKSk7cmV0dXJuIGF9ZnVuY3Rpb24gc24oZSx0LG4pe3ZhciByPSEwLGk9IndpZHRoIj09PXQ/ZS5vZmZzZXRXaWR0aDplLm9mZnNldEhlaWdodCxvPVJ0KGUpLGE9eC5zdXBwb3J0LmJveFNpemluZyYmImJvcmRlci1ib3giPT09eC5jc3MoZSwiYm94U2l6aW5nIiwhMSxvKTtpZigwPj1pfHxudWxsPT1pKXtpZihpPVd0KGUsdCxvKSwoMD5pfHxudWxsPT1pKSYmKGk9ZS5zdHlsZVt0XSksWXQudGVzdChpKSlyZXR1cm4gaTtyPWEmJih4LnN1cHBvcnQuYm94U2l6aW5nUmVsaWFibGV8fGk9PT1lLnN0eWxlW3RdKSxpPXBhcnNlRmxvYXQoaSl8fDB9cmV0dXJuIGkrYW4oZSx0LG58fChhPyJib3JkZXIiOiJjb250ZW50IikscixvKSsicHgifWZ1bmN0aW9uIGxuKGUpe3ZhciB0PWEsbj1HdFtlXTtyZXR1cm4gbnx8KG49dW4oZSx0KSwibm9uZSIhPT1uJiZufHwoUHQ9KFB0fHx4KCI8aWZyYW1lIGZyYW1lYm9yZGVyPScwJyB3aWR0aD0nMCcgaGVpZ2h0PScwJy8+IikuY3NzKCJjc3NUZXh0IiwiZGlzcGxheTpibG9jayAhaW1wb3J0YW50IikpLmFwcGVuZFRvKHQuZG9jdW1lbnRFbGVtZW50KSx0PShQdFswXS5jb250ZW50V2luZG93fHxQdFswXS5jb250ZW50RG9jdW1lbnQpLmRvY3VtZW50LHQud3JpdGUoIjwhZG9jdHlwZSBodG1sPjxodG1sPjxib2R5PiIpLHQuY2xvc2UoKSxuPXVuKGUsdCksUHQuZGV0YWNoKCkpLEd0W2VdPW4pLG59ZnVuY3Rpb24gdW4oZSx0KXt2YXIgbj14KHQuY3JlYXRlRWxlbWVudChlKSkuYXBwZW5kVG8odC5ib2R5KSxyPXguY3NzKG5bMF0sImRpc3BsYXkiKTtyZXR1cm4gbi5yZW1vdmUoKSxyfXguZWFjaChbImhlaWdodCIsIndpZHRoIl0sZnVuY3Rpb24oZSxuKXt4LmNzc0hvb2tzW25dPXtnZXQ6ZnVuY3Rpb24oZSxyLGkpe3JldHVybiByPzA9PT1lLm9mZnNldFdpZHRoJiZYdC50ZXN0KHguY3NzKGUsImRpc3BsYXkiKSk/eC5zd2FwKGUsUXQsZnVuY3Rpb24oKXtyZXR1cm4gc24oZSxuLGkpfSk6c24oZSxuLGkpOnR9LHNldDpmdW5jdGlvbihlLHQscil7dmFyIGk9ciYmUnQoZSk7cmV0dXJuIG9uKGUsdCxyP2FuKGUsbixyLHguc3VwcG9ydC5ib3hTaXppbmcmJiJib3JkZXItYm94Ij09PXguY3NzKGUsImJveFNpemluZyIsITEsaSksaSk6MCl9fX0pLHguc3VwcG9ydC5vcGFjaXR5fHwoeC5jc3NIb29rcy5vcGFjaXR5PXtnZXQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gSXQudGVzdCgodCYmZS5jdXJyZW50U3R5bGU/ZS5jdXJyZW50U3R5bGUuZmlsdGVyOmUuc3R5bGUuZmlsdGVyKXx8IiIpPy4wMSpwYXJzZUZsb2F0KFJlZ0V4cC4kMSkrIiI6dD8iMSI6IiJ9LHNldDpmdW5jdGlvbihlLHQpe3ZhciBuPWUuc3R5bGUscj1lLmN1cnJlbnRTdHlsZSxpPXguaXNOdW1lcmljKHQpPyJhbHBoYShvcGFjaXR5PSIrMTAwKnQrIikiOiIiLG89ciYmci5maWx0ZXJ8fG4uZmlsdGVyfHwiIjtuLnpvb209MSwodD49MXx8IiI9PT10KSYmIiI9PT14LnRyaW0oby5yZXBsYWNlKCR0LCIiKSkmJm4ucmVtb3ZlQXR0cmlidXRlJiYobi5yZW1vdmVBdHRyaWJ1dGUoImZpbHRlciIpLCIiPT09dHx8ciYmIXIuZmlsdGVyKXx8KG4uZmlsdGVyPSR0LnRlc3Qobyk/by5yZXBsYWNlKCR0LGkpOm8rIiAiK2kpfX0pLHgoZnVuY3Rpb24oKXt4LnN1cHBvcnQucmVsaWFibGVNYXJnaW5SaWdodHx8KHguY3NzSG9va3MubWFyZ2luUmlnaHQ9e2dldDpmdW5jdGlvbihlLG4pe3JldHVybiBuP3guc3dhcChlLHtkaXNwbGF5OiJpbmxpbmUtYmxvY2sifSxXdCxbZSwibWFyZ2luUmlnaHQiXSk6dH19KSwheC5zdXBwb3J0LnBpeGVsUG9zaXRpb24mJnguZm4ucG9zaXRpb24mJnguZWFjaChbInRvcCIsImxlZnQiXSxmdW5jdGlvbihlLG4pe3guY3NzSG9va3Nbbl09e2dldDpmdW5jdGlvbihlLHIpe3JldHVybiByPyhyPVd0KGUsbiksWXQudGVzdChyKT94KGUpLnBvc2l0aW9uKClbbl0rInB4IjpyKTp0fX19KX0pLHguZXhwciYmeC5leHByLmZpbHRlcnMmJih4LmV4cHIuZmlsdGVycy5oaWRkZW49ZnVuY3Rpb24oZSl7cmV0dXJuIDA+PWUub2Zmc2V0V2lkdGgmJjA+PWUub2Zmc2V0SGVpZ2h0fHwheC5zdXBwb3J0LnJlbGlhYmxlSGlkZGVuT2Zmc2V0cyYmIm5vbmUiPT09KGUuc3R5bGUmJmUuc3R5bGUuZGlzcGxheXx8eC5jc3MoZSwiZGlzcGxheSIpKX0seC5leHByLmZpbHRlcnMudmlzaWJsZT1mdW5jdGlvbihlKXtyZXR1cm4heC5leHByLmZpbHRlcnMuaGlkZGVuKGUpfSkseC5lYWNoKHttYXJnaW46IiIscGFkZGluZzoiIixib3JkZXI6IldpZHRoIn0sZnVuY3Rpb24oZSx0KXt4LmNzc0hvb2tzW2UrdF09e2V4cGFuZDpmdW5jdGlvbihuKXt2YXIgcj0wLGk9e30sbz0ic3RyaW5nIj09dHlwZW9mIG4/bi5zcGxpdCgiICIpOltuXTtmb3IoOzQ+cjtyKyspaVtlK1p0W3JdK3RdPW9bcl18fG9bci0yXXx8b1swXTtyZXR1cm4gaX19LFV0LnRlc3QoZSl8fCh4LmNzc0hvb2tzW2UrdF0uc2V0PW9uKX0pO3ZhciBjbj0vJTIwL2cscG49L1xbXF0kLyxmbj0vXHI/XG4vZyxkbj0vXig/OnN1Ym1pdHxidXR0b258aW1hZ2V8cmVzZXR8ZmlsZSkkL2ksaG49L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8a2V5Z2VuKS9pO3guZm4uZXh0ZW5kKHtzZXJpYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4geC5wYXJhbSh0aGlzLnNlcmlhbGl6ZUFycmF5KCkpfSxzZXJpYWxpemVBcnJheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3ZhciBlPXgucHJvcCh0aGlzLCJlbGVtZW50cyIpO3JldHVybiBlP3gubWFrZUFycmF5KGUpOnRoaXN9KS5maWx0ZXIoZnVuY3Rpb24oKXt2YXIgZT10aGlzLnR5cGU7cmV0dXJuIHRoaXMubmFtZSYmIXgodGhpcykuaXMoIjpkaXNhYmxlZCIpJiZobi50ZXN0KHRoaXMubm9kZU5hbWUpJiYhZG4udGVzdChlKSYmKHRoaXMuY2hlY2tlZHx8IUN0LnRlc3QoZSkpfSkubWFwKGZ1bmN0aW9uKGUsdCl7dmFyIG49eCh0aGlzKS52YWwoKTtyZXR1cm4gbnVsbD09bj9udWxsOnguaXNBcnJheShuKT94Lm1hcChuLGZ1bmN0aW9uKGUpe3JldHVybntuYW1lOnQubmFtZSx2YWx1ZTplLnJlcGxhY2UoZm4sIlxyXG4iKX19KTp7bmFtZTp0Lm5hbWUsdmFsdWU6bi5yZXBsYWNlKGZuLCJcclxuIil9fSkuZ2V0KCl9fSkseC5wYXJhbT1mdW5jdGlvbihlLG4pe3ZhciByLGk9W10sbz1mdW5jdGlvbihlLHQpe3Q9eC5pc0Z1bmN0aW9uKHQpP3QoKTpudWxsPT10PyIiOnQsaVtpLmxlbmd0aF09ZW5jb2RlVVJJQ29tcG9uZW50KGUpKyI9IitlbmNvZGVVUklDb21wb25lbnQodCl9O2lmKG49PT10JiYobj14LmFqYXhTZXR0aW5ncyYmeC5hamF4U2V0dGluZ3MudHJhZGl0aW9uYWwpLHguaXNBcnJheShlKXx8ZS5qcXVlcnkmJiF4LmlzUGxhaW5PYmplY3QoZSkpeC5lYWNoKGUsZnVuY3Rpb24oKXtvKHRoaXMubmFtZSx0aGlzLnZhbHVlKX0pO2Vsc2UgZm9yKHIgaW4gZSlnbihyLGVbcl0sbixvKTtyZXR1cm4gaS5qb2luKCImIikucmVwbGFjZShjbiwiKyIpfTtmdW5jdGlvbiBnbihlLHQsbixyKXt2YXIgaTtpZih4LmlzQXJyYXkodCkpeC5lYWNoKHQsZnVuY3Rpb24odCxpKXtufHxwbi50ZXN0KGUpP3IoZSxpKTpnbihlKyJbIisoIm9iamVjdCI9PXR5cGVvZiBpP3Q6IiIpKyJdIixpLG4scil9KTtlbHNlIGlmKG58fCJvYmplY3QiIT09eC50eXBlKHQpKXIoZSx0KTtlbHNlIGZvcihpIGluIHQpZ24oZSsiWyIraSsiXSIsdFtpXSxuLHIpfXguZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IGxvYWQgcmVzaXplIHNjcm9sbCB1bmxvYWQgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBlcnJvciBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSxmdW5jdGlvbihlLHQpe3guZm5bdF09ZnVuY3Rpb24oZSxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4wP3RoaXMub24odCxudWxsLGUsbik6dGhpcy50cmlnZ2VyKHQpfX0pLHguZm4uZXh0ZW5kKHtob3ZlcjpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLm1vdXNlZW50ZXIoZSkubW91c2VsZWF2ZSh0fHxlKX0sYmluZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMub24oZSxudWxsLHQsbil9LHVuYmluZDpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLm9mZihlLG51bGwsdCl9LGRlbGVnYXRlOmZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiB0aGlzLm9uKHQsZSxuLHIpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5vZmYoZSwiKioiKTp0aGlzLm9mZih0LGV8fCIqKiIsbil9fSk7dmFyIG1uLHluLHZuPXgubm93KCksYm49L1w/Lyx4bj0vIy4qJC8sd249LyhbPyZdKV89W14mXSovLFRuPS9eKC4qPyk6WyBcdF0qKFteXHJcbl0qKVxyPyQvZ20sQ249L14oPzphYm91dHxhcHB8YXBwLXN0b3JhZ2V8ListZXh0ZW5zaW9ufGZpbGV8cmVzfHdpZGdldCk6JC8sTm49L14oPzpHRVR8SEVBRCkkLyxrbj0vXlwvXC8vLEVuPS9eKFtcdy4rLV0rOikoPzpcL1wvKFteXC8/IzpdKikoPzo6KFxkKyl8KXwpLyxTbj14LmZuLmxvYWQsQW49e30sam49e30sRG49IiovIi5jb25jYXQoIioiKTt0cnl7eW49by5ocmVmfWNhdGNoKExuKXt5bj1hLmNyZWF0ZUVsZW1lbnQoImEiKSx5bi5ocmVmPSIiLHluPXluLmhyZWZ9bW49RW4uZXhlYyh5bi50b0xvd2VyQ2FzZSgpKXx8W107ZnVuY3Rpb24gSG4oZSl7cmV0dXJuIGZ1bmN0aW9uKHQsbil7InN0cmluZyIhPXR5cGVvZiB0JiYobj10LHQ9IioiKTt2YXIgcixpPTAsbz10LnRvTG93ZXJDYXNlKCkubWF0Y2goVCl8fFtdO2lmKHguaXNGdW5jdGlvbihuKSl3aGlsZShyPW9baSsrXSkiKyI9PT1yWzBdPyhyPXIuc2xpY2UoMSl8fCIqIiwoZVtyXT1lW3JdfHxbXSkudW5zaGlmdChuKSk6KGVbcl09ZVtyXXx8W10pLnB1c2gobil9fWZ1bmN0aW9uIHFuKGUsbixyLGkpe3ZhciBvPXt9LGE9ZT09PWpuO2Z1bmN0aW9uIHMobCl7dmFyIHU7cmV0dXJuIG9bbF09ITAseC5lYWNoKGVbbF18fFtdLGZ1bmN0aW9uKGUsbCl7dmFyIGM9bChuLHIsaSk7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBjfHxhfHxvW2NdP2E/ISh1PWMpOnQ6KG4uZGF0YVR5cGVzLnVuc2hpZnQoYykscyhjKSwhMSl9KSx1fXJldHVybiBzKG4uZGF0YVR5cGVzWzBdKXx8IW9bIioiXSYmcygiKiIpfWZ1bmN0aW9uIF9uKGUsbil7dmFyIHIsaSxvPXguYWpheFNldHRpbmdzLmZsYXRPcHRpb25zfHx7fTtmb3IoaSBpbiBuKW5baV0hPT10JiYoKG9baV0/ZTpyfHwocj17fSkpW2ldPW5baV0pO3JldHVybiByJiZ4LmV4dGVuZCghMCxlLHIpLGV9eC5mbi5sb2FkPWZ1bmN0aW9uKGUsbixyKXtpZigic3RyaW5nIiE9dHlwZW9mIGUmJlNuKXJldHVybiBTbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGksbyxhLHM9dGhpcyxsPWUuaW5kZXhPZigiICIpO3JldHVybiBsPj0wJiYoaT1lLnNsaWNlKGwsZS5sZW5ndGgpLGU9ZS5zbGljZSgwLGwpKSx4LmlzRnVuY3Rpb24obik/KHI9bixuPXQpOm4mJiJvYmplY3QiPT10eXBlb2YgbiYmKGE9IlBPU1QiKSxzLmxlbmd0aD4wJiZ4LmFqYXgoe3VybDplLHR5cGU6YSxkYXRhVHlwZToiaHRtbCIsZGF0YTpufSkuZG9uZShmdW5jdGlvbihlKXtvPWFyZ3VtZW50cyxzLmh0bWwoaT94KCI8ZGl2PiIpLmFwcGVuZCh4LnBhcnNlSFRNTChlKSkuZmluZChpKTplKX0pLmNvbXBsZXRlKHImJmZ1bmN0aW9uKGUsdCl7cy5lYWNoKHIsb3x8W2UucmVzcG9uc2VUZXh0LHQsZV0pfSksdGhpc30seC5lYWNoKFsiYWpheFN0YXJ0IiwiYWpheFN0b3AiLCJhamF4Q29tcGxldGUiLCJhamF4RXJyb3IiLCJhamF4U3VjY2VzcyIsImFqYXhTZW5kIl0sZnVuY3Rpb24oZSx0KXt4LmZuW3RdPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLm9uKHQsZSl9fSkseC5leHRlbmQoe2FjdGl2ZTowLGxhc3RNb2RpZmllZDp7fSxldGFnOnt9LGFqYXhTZXR0aW5nczp7dXJsOnluLHR5cGU6IkdFVCIsaXNMb2NhbDpDbi50ZXN0KG1uWzFdKSxnbG9iYWw6ITAscHJvY2Vzc0RhdGE6ITAsYXN5bmM6ITAsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsgY2hhcnNldD1VVEYtOCIsYWNjZXB0czp7IioiOkRuLHRleHQ6InRleHQvcGxhaW4iLGh0bWw6InRleHQvaHRtbCIseG1sOiJhcHBsaWNhdGlvbi94bWwsIHRleHQveG1sIixqc29uOiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L2phdmFzY3JpcHQifSxjb250ZW50czp7eG1sOi94bWwvLGh0bWw6L2h0bWwvLGpzb246L2pzb24vfSxyZXNwb25zZUZpZWxkczp7eG1sOiJyZXNwb25zZVhNTCIsdGV4dDoicmVzcG9uc2VUZXh0Iixqc29uOiJyZXNwb25zZUpTT04ifSxjb252ZXJ0ZXJzOnsiKiB0ZXh0IjpTdHJpbmcsInRleHQgaHRtbCI6ITAsInRleHQganNvbiI6eC5wYXJzZUpTT04sInRleHQgeG1sIjp4LnBhcnNlWE1MfSxmbGF0T3B0aW9uczp7dXJsOiEwLGNvbnRleHQ6ITB9fSxhamF4U2V0dXA6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD9fbihfbihlLHguYWpheFNldHRpbmdzKSx0KTpfbih4LmFqYXhTZXR0aW5ncyxlKX0sYWpheFByZWZpbHRlcjpIbihBbiksYWpheFRyYW5zcG9ydDpIbihqbiksYWpheDpmdW5jdGlvbihlLG4peyJvYmplY3QiPT10eXBlb2YgZSYmKG49ZSxlPXQpLG49bnx8e307dmFyIHIsaSxvLGEscyxsLHUsYyxwPXguYWpheFNldHVwKHt9LG4pLGY9cC5jb250ZXh0fHxwLGQ9cC5jb250ZXh0JiYoZi5ub2RlVHlwZXx8Zi5qcXVlcnkpP3goZik6eC5ldmVudCxoPXguRGVmZXJyZWQoKSxnPXguQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLG09cC5zdGF0dXNDb2RlfHx7fSx5PXt9LHY9e30sYj0wLHc9ImNhbmNlbGVkIixDPXtyZWFkeVN0YXRlOjAsZ2V0UmVzcG9uc2VIZWFkZXI6ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoMj09PWIpe2lmKCFjKXtjPXt9O3doaWxlKHQ9VG4uZXhlYyhhKSljW3RbMV0udG9Mb3dlckNhc2UoKV09dFsyXX10PWNbZS50b0xvd2VyQ2FzZSgpXX1yZXR1cm4gbnVsbD09dD9udWxsOnR9LGdldEFsbFJlc3BvbnNlSGVhZGVyczpmdW5jdGlvbigpe3JldHVybiAyPT09Yj9hOm51bGx9LHNldFJlcXVlc3RIZWFkZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGJ8fChlPXZbbl09dltuXXx8ZSx5W2VdPXQpLHRoaXN9LG92ZXJyaWRlTWltZVR5cGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGJ8fChwLm1pbWVUeXBlPWUpLHRoaXN9LHN0YXR1c0NvZGU6ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoZSlpZigyPmIpZm9yKHQgaW4gZSltW3RdPVttW3RdLGVbdF1dO2Vsc2UgQy5hbHdheXMoZVtDLnN0YXR1c10pO3JldHVybiB0aGlzfSxhYm9ydDpmdW5jdGlvbihlKXt2YXIgdD1lfHx3O3JldHVybiB1JiZ1LmFib3J0KHQpLGsoMCx0KSx0aGlzfX07aWYoaC5wcm9taXNlKEMpLmNvbXBsZXRlPWcuYWRkLEMuc3VjY2Vzcz1DLmRvbmUsQy5lcnJvcj1DLmZhaWwscC51cmw9KChlfHxwLnVybHx8eW4pKyIiKS5yZXBsYWNlKHhuLCIiKS5yZXBsYWNlKGtuLG1uWzFdKyIvLyIpLHAudHlwZT1uLm1ldGhvZHx8bi50eXBlfHxwLm1ldGhvZHx8cC50eXBlLHAuZGF0YVR5cGVzPXgudHJpbShwLmRhdGFUeXBlfHwiKiIpLnRvTG93ZXJDYXNlKCkubWF0Y2goVCl8fFsiIl0sbnVsbD09cC5jcm9zc0RvbWFpbiYmKHI9RW4uZXhlYyhwLnVybC50b0xvd2VyQ2FzZSgpKSxwLmNyb3NzRG9tYWluPSEoIXJ8fHJbMV09PT1tblsxXSYmclsyXT09PW1uWzJdJiYoclszXXx8KCJodHRwOiI9PT1yWzFdPyI4MCI6IjQ0MyIpKT09PShtblszXXx8KCJodHRwOiI9PT1tblsxXT8iODAiOiI0NDMiKSkpKSxwLmRhdGEmJnAucHJvY2Vzc0RhdGEmJiJzdHJpbmciIT10eXBlb2YgcC5kYXRhJiYocC5kYXRhPXgucGFyYW0ocC5kYXRhLHAudHJhZGl0aW9uYWwpKSxxbihBbixwLG4sQyksMj09PWIpcmV0dXJuIEM7bD1wLmdsb2JhbCxsJiYwPT09eC5hY3RpdmUrKyYmeC5ldmVudC50cmlnZ2VyKCJhamF4U3RhcnQiKSxwLnR5cGU9cC50eXBlLnRvVXBwZXJDYXNlKCkscC5oYXNDb250ZW50PSFObi50ZXN0KHAudHlwZSksbz1wLnVybCxwLmhhc0NvbnRlbnR8fChwLmRhdGEmJihvPXAudXJsKz0oYm4udGVzdChvKT8iJiI6Ij8iKStwLmRhdGEsZGVsZXRlIHAuZGF0YSkscC5jYWNoZT09PSExJiYocC51cmw9d24udGVzdChvKT9vLnJlcGxhY2Uod24sIiQxXz0iK3ZuKyspOm8rKGJuLnRlc3Qobyk/IiYiOiI/IikrIl89Iit2bisrKSkscC5pZk1vZGlmaWVkJiYoeC5sYXN0TW9kaWZpZWRbb10mJkMuc2V0UmVxdWVzdEhlYWRlcigiSWYtTW9kaWZpZWQtU2luY2UiLHgubGFzdE1vZGlmaWVkW29dKSx4LmV0YWdbb10mJkMuc2V0UmVxdWVzdEhlYWRlcigiSWYtTm9uZS1NYXRjaCIseC5ldGFnW29dKSksKHAuZGF0YSYmcC5oYXNDb250ZW50JiZwLmNvbnRlbnRUeXBlIT09ITF8fG4uY29udGVudFR5cGUpJiZDLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIscC5jb250ZW50VHlwZSksQy5zZXRSZXF1ZXN0SGVhZGVyKCJBY2NlcHQiLHAuZGF0YVR5cGVzWzBdJiZwLmFjY2VwdHNbcC5kYXRhVHlwZXNbMF1dP3AuYWNjZXB0c1twLmRhdGFUeXBlc1swXV0rKCIqIiE9PXAuZGF0YVR5cGVzWzBdPyIsICIrRG4rIjsgcT0wLjAxIjoiIik6cC5hY2NlcHRzWyIqIl0pO2ZvcihpIGluIHAuaGVhZGVycylDLnNldFJlcXVlc3RIZWFkZXIoaSxwLmhlYWRlcnNbaV0pO2lmKHAuYmVmb3JlU2VuZCYmKHAuYmVmb3JlU2VuZC5jYWxsKGYsQyxwKT09PSExfHwyPT09YikpcmV0dXJuIEMuYWJvcnQoKTt3PSJhYm9ydCI7Zm9yKGkgaW57c3VjY2VzczoxLGVycm9yOjEsY29tcGxldGU6MX0pQ1tpXShwW2ldKTtpZih1PXFuKGpuLHAsbixDKSl7Qy5yZWFkeVN0YXRlPTEsbCYmZC50cmlnZ2VyKCJhamF4U2VuZCIsW0MscF0pLHAuYXN5bmMmJnAudGltZW91dD4wJiYocz1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Qy5hYm9ydCgidGltZW91dCIpfSxwLnRpbWVvdXQpKTt0cnl7Yj0xLHUuc2VuZCh5LGspfWNhdGNoKE4pe2lmKCEoMj5iKSl0aHJvdyBOO2soLTEsTil9fWVsc2UgaygtMSwiTm8gVHJhbnNwb3J0Iik7ZnVuY3Rpb24gayhlLG4scixpKXt2YXIgYyx5LHYsdyxULE49bjsyIT09YiYmKGI9MixzJiZjbGVhclRpbWVvdXQocyksdT10LGE9aXx8IiIsQy5yZWFkeVN0YXRlPWU+MD80OjAsYz1lPj0yMDAmJjMwMD5lfHwzMDQ9PT1lLHImJih3PU1uKHAsQyxyKSksdz1PbihwLHcsQyxjKSxjPyhwLmlmTW9kaWZpZWQmJihUPUMuZ2V0UmVzcG9uc2VIZWFkZXIoIkxhc3QtTW9kaWZpZWQiKSxUJiYoeC5sYXN0TW9kaWZpZWRbb109VCksVD1DLmdldFJlc3BvbnNlSGVhZGVyKCJldGFnIiksVCYmKHguZXRhZ1tvXT1UKSksMjA0PT09ZXx8IkhFQUQiPT09cC50eXBlP049Im5vY29udGVudCI6MzA0PT09ZT9OPSJub3Rtb2RpZmllZCI6KE49dy5zdGF0ZSx5PXcuZGF0YSx2PXcuZXJyb3IsYz0hdikpOih2PU4sKGV8fCFOKSYmKE49ImVycm9yIiwwPmUmJihlPTApKSksQy5zdGF0dXM9ZSxDLnN0YXR1c1RleHQ9KG58fE4pKyIiLGM/aC5yZXNvbHZlV2l0aChmLFt5LE4sQ10pOmgucmVqZWN0V2l0aChmLFtDLE4sdl0pLEMuc3RhdHVzQ29kZShtKSxtPXQsbCYmZC50cmlnZ2VyKGM/ImFqYXhTdWNjZXNzIjoiYWpheEVycm9yIixbQyxwLGM/eTp2XSksZy5maXJlV2l0aChmLFtDLE5dKSxsJiYoZC50cmlnZ2VyKCJhamF4Q29tcGxldGUiLFtDLHBdKSwtLXguYWN0aXZlfHx4LmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIikpKX1yZXR1cm4gQ30sZ2V0SlNPTjpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHguZ2V0KGUsdCxuLCJqc29uIil9LGdldFNjcmlwdDpmdW5jdGlvbihlLG4pe3JldHVybiB4LmdldChlLHQsbiwic2NyaXB0Iil9fSkseC5lYWNoKFsiZ2V0IiwicG9zdCJdLGZ1bmN0aW9uKGUsbil7eFtuXT1mdW5jdGlvbihlLHIsaSxvKXtyZXR1cm4geC5pc0Z1bmN0aW9uKHIpJiYobz1vfHxpLGk9cixyPXQpLHguYWpheCh7dXJsOmUsdHlwZTpuLGRhdGFUeXBlOm8sZGF0YTpyLHN1Y2Nlc3M6aX0pfX0pO2Z1bmN0aW9uIE1uKGUsbixyKXt2YXIgaSxvLGEscyxsPWUuY29udGVudHMsdT1lLmRhdGFUeXBlczt3aGlsZSgiKiI9PT11WzBdKXUuc2hpZnQoKSxvPT09dCYmKG89ZS5taW1lVHlwZXx8bi5nZXRSZXNwb25zZUhlYWRlcigiQ29udGVudC1UeXBlIikpO2lmKG8pZm9yKHMgaW4gbClpZihsW3NdJiZsW3NdLnRlc3Qobykpe3UudW5zaGlmdChzKTticmVha31pZih1WzBdaW4gcilhPXVbMF07ZWxzZXtmb3IocyBpbiByKXtpZighdVswXXx8ZS5jb252ZXJ0ZXJzW3MrIiAiK3VbMF1dKXthPXM7YnJlYWt9aXx8KGk9cyl9YT1hfHxpfXJldHVybiBhPyhhIT09dVswXSYmdS51bnNoaWZ0KGEpLHJbYV0pOnR9ZnVuY3Rpb24gT24oZSx0LG4scil7dmFyIGksbyxhLHMsbCx1PXt9LGM9ZS5kYXRhVHlwZXMuc2xpY2UoKTtpZihjWzFdKWZvcihhIGluIGUuY29udmVydGVycyl1W2EudG9Mb3dlckNhc2UoKV09ZS5jb252ZXJ0ZXJzW2FdO289Yy5zaGlmdCgpO3doaWxlKG8paWYoZS5yZXNwb25zZUZpZWxkc1tvXSYmKG5bZS5yZXNwb25zZUZpZWxkc1tvXV09dCksIWwmJnImJmUuZGF0YUZpbHRlciYmKHQ9ZS5kYXRhRmlsdGVyKHQsZS5kYXRhVHlwZSkpLGw9byxvPWMuc2hpZnQoKSlpZigiKiI9PT1vKW89bDtlbHNlIGlmKCIqIiE9PWwmJmwhPT1vKXtpZihhPXVbbCsiICIrb118fHVbIiogIitvXSwhYSlmb3IoaSBpbiB1KWlmKHM9aS5zcGxpdCgiICIpLHNbMV09PT1vJiYoYT11W2wrIiAiK3NbMF1dfHx1WyIqICIrc1swXV0pKXthPT09ITA/YT11W2ldOnVbaV0hPT0hMCYmKG89c1swXSxjLnVuc2hpZnQoc1sxXSkpO2JyZWFrfWlmKGEhPT0hMClpZihhJiZlWyJ0aHJvd3MiXSl0PWEodCk7ZWxzZSB0cnl7dD1hKHQpfWNhdGNoKHApe3JldHVybntzdGF0ZToicGFyc2VyZXJyb3IiLGVycm9yOmE/cDoiTm8gY29udmVyc2lvbiBmcm9tICIrbCsiIHRvICIrb319fXJldHVybntzdGF0ZToic3VjY2VzcyIsZGF0YTp0fX14LmFqYXhTZXR1cCh7YWNjZXB0czp7c2NyaXB0OiJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCJ9LGNvbnRlbnRzOntzY3JpcHQ6Lyg/OmphdmF8ZWNtYSlzY3JpcHQvfSxjb252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKGUpe3JldHVybiB4Lmdsb2JhbEV2YWwoZSksZX19fSkseC5hamF4UHJlZmlsdGVyKCJzY3JpcHQiLGZ1bmN0aW9uKGUpe2UuY2FjaGU9PT10JiYoZS5jYWNoZT0hMSksZS5jcm9zc0RvbWFpbiYmKGUudHlwZT0iR0VUIixlLmdsb2JhbD0hMSl9KSx4LmFqYXhUcmFuc3BvcnQoInNjcmlwdCIsZnVuY3Rpb24oZSl7aWYoZS5jcm9zc0RvbWFpbil7dmFyIG4scj1hLmhlYWR8fHgoImhlYWQiKVswXXx8YS5kb2N1bWVudEVsZW1lbnQ7cmV0dXJue3NlbmQ6ZnVuY3Rpb24odCxpKXtuPWEuY3JlYXRlRWxlbWVudCgic2NyaXB0Iiksbi5hc3luYz0hMCxlLnNjcmlwdENoYXJzZXQmJihuLmNoYXJzZXQ9ZS5zY3JpcHRDaGFyc2V0KSxuLnNyYz1lLnVybCxuLm9ubG9hZD1uLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbihlLHQpeyh0fHwhbi5yZWFkeVN0YXRlfHwvbG9hZGVkfGNvbXBsZXRlLy50ZXN0KG4ucmVhZHlTdGF0ZSkpJiYobi5vbmxvYWQ9bi5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCxuLnBhcmVudE5vZGUmJm4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKSxuPW51bGwsdHx8aSgyMDAsInN1Y2Nlc3MiKSl9LHIuaW5zZXJ0QmVmb3JlKG4sci5maXJzdENoaWxkKX0sYWJvcnQ6ZnVuY3Rpb24oKXtuJiZuLm9ubG9hZCh0LCEwKX19fX0pO3ZhciBGbj1bXSxCbj0vKD0pXD8oPz0mfCQpfFw/XD8vO3guYWpheFNldHVwKHtqc29ucDoiY2FsbGJhY2siLGpzb25wQ2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgZT1Gbi5wb3AoKXx8eC5leHBhbmRvKyJfIit2bisrO3JldHVybiB0aGlzW2VdPSEwLGV9fSkseC5hamF4UHJlZmlsdGVyKCJqc29uIGpzb25wIixmdW5jdGlvbihuLHIsaSl7dmFyIG8sYSxzLGw9bi5qc29ucCE9PSExJiYoQm4udGVzdChuLnVybCk/InVybCI6InN0cmluZyI9PXR5cGVvZiBuLmRhdGEmJiEobi5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiZCbi50ZXN0KG4uZGF0YSkmJiJkYXRhIik7cmV0dXJuIGx8fCJqc29ucCI9PT1uLmRhdGFUeXBlc1swXT8obz1uLmpzb25wQ2FsbGJhY2s9eC5pc0Z1bmN0aW9uKG4uanNvbnBDYWxsYmFjayk/bi5qc29ucENhbGxiYWNrKCk6bi5qc29ucENhbGxiYWNrLGw/bltsXT1uW2xdLnJlcGxhY2UoQm4sIiQxIitvKTpuLmpzb25wIT09ITEmJihuLnVybCs9KGJuLnRlc3Qobi51cmwpPyImIjoiPyIpK24uanNvbnArIj0iK28pLG4uY29udmVydGVyc1sic2NyaXB0IGpzb24iXT1mdW5jdGlvbigpe3JldHVybiBzfHx4LmVycm9yKG8rIiB3YXMgbm90IGNhbGxlZCIpLHNbMF19LG4uZGF0YVR5cGVzWzBdPSJqc29uIixhPWVbb10sZVtvXT1mdW5jdGlvbigpe3M9YXJndW1lbnRzfSxpLmFsd2F5cyhmdW5jdGlvbigpe2Vbb109YSxuW29dJiYobi5qc29ucENhbGxiYWNrPXIuanNvbnBDYWxsYmFjayxGbi5wdXNoKG8pKSxzJiZ4LmlzRnVuY3Rpb24oYSkmJmEoc1swXSkscz1hPXR9KSwic2NyaXB0Iik6dH0pO3ZhciBQbixSbixXbj0wLCRuPWUuQWN0aXZlWE9iamVjdCYmZnVuY3Rpb24oKXt2YXIgZTtmb3IoZSBpbiBQbilQbltlXSh0LCEwKX07ZnVuY3Rpb24gSW4oKXt0cnl7cmV0dXJuIG5ldyBlLlhNTEh0dHBSZXF1ZXN0fWNhdGNoKHQpe319ZnVuY3Rpb24gem4oKXt0cnl7cmV0dXJuIG5ldyBlLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9Y2F0Y2godCl7fX14LmFqYXhTZXR0aW5ncy54aHI9ZS5BY3RpdmVYT2JqZWN0P2Z1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaXNMb2NhbCYmSW4oKXx8em4oKX06SW4sUm49eC5hamF4U2V0dGluZ3MueGhyKCkseC5zdXBwb3J0LmNvcnM9ISFSbiYmIndpdGhDcmVkZW50aWFscyJpbiBSbixSbj14LnN1cHBvcnQuYWpheD0hIVJuLFJuJiZ4LmFqYXhUcmFuc3BvcnQoZnVuY3Rpb24obil7aWYoIW4uY3Jvc3NEb21haW58fHguc3VwcG9ydC5jb3JzKXt2YXIgcjtyZXR1cm57c2VuZDpmdW5jdGlvbihpLG8pe3ZhciBhLHMsbD1uLnhocigpO2lmKG4udXNlcm5hbWU/bC5vcGVuKG4udHlwZSxuLnVybCxuLmFzeW5jLG4udXNlcm5hbWUsbi5wYXNzd29yZCk6bC5vcGVuKG4udHlwZSxuLnVybCxuLmFzeW5jKSxuLnhockZpZWxkcylmb3IocyBpbiBuLnhockZpZWxkcylsW3NdPW4ueGhyRmllbGRzW3NdO24ubWltZVR5cGUmJmwub3ZlcnJpZGVNaW1lVHlwZSYmbC5vdmVycmlkZU1pbWVUeXBlKG4ubWltZVR5cGUpLG4uY3Jvc3NEb21haW58fGlbIlgtUmVxdWVzdGVkLVdpdGgiXXx8KGlbIlgtUmVxdWVzdGVkLVdpdGgiXT0iWE1MSHR0cFJlcXVlc3QiKTt0cnl7Zm9yKHMgaW4gaSlsLnNldFJlcXVlc3RIZWFkZXIocyxpW3NdKX1jYXRjaCh1KXt9bC5zZW5kKG4uaGFzQ29udGVudCYmbi5kYXRhfHxudWxsKSxyPWZ1bmN0aW9uKGUsaSl7dmFyIHMsdSxjLHA7dHJ5e2lmKHImJihpfHw0PT09bC5yZWFkeVN0YXRlKSlpZihyPXQsYSYmKGwub25yZWFkeXN0YXRlY2hhbmdlPXgubm9vcCwkbiYmZGVsZXRlIFBuW2FdKSxpKTQhPT1sLnJlYWR5U3RhdGUmJmwuYWJvcnQoKTtlbHNle3A9e30scz1sLnN0YXR1cyx1PWwuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCksInN0cmluZyI9PXR5cGVvZiBsLnJlc3BvbnNlVGV4dCYmKHAudGV4dD1sLnJlc3BvbnNlVGV4dCk7dHJ5e2M9bC5zdGF0dXNUZXh0fWNhdGNoKGYpe2M9IiJ9c3x8IW4uaXNMb2NhbHx8bi5jcm9zc0RvbWFpbj8xMjIzPT09cyYmKHM9MjA0KTpzPXAudGV4dD8yMDA6NDA0fX1jYXRjaChkKXtpfHxvKC0xLGQpfXAmJm8ocyxjLHAsdSl9LG4uYXN5bmM/ND09PWwucmVhZHlTdGF0ZT9zZXRUaW1lb3V0KHIpOihhPSsrV24sJG4mJihQbnx8KFBuPXt9LHgoZSkudW5sb2FkKCRuKSksUG5bYV09ciksbC5vbnJlYWR5c3RhdGVjaGFuZ2U9cik6cigpfSxhYm9ydDpmdW5jdGlvbigpe3ImJnIodCwhMCl9fX19KTt2YXIgWG4sVW4sVm49L14oPzp0b2dnbGV8c2hvd3xoaWRlKSQvLFluPVJlZ0V4cCgiXig/OihbKy1dKT18KSgiK3crIikoW2EteiVdKikkIiwiaSIpLEpuPS9xdWV1ZUhvb2tzJC8sR249W25yXSxRbj17IioiOltmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuY3JlYXRlVHdlZW4oZSx0KSxyPW4uY3VyKCksaT1Zbi5leGVjKHQpLG89aSYmaVszXXx8KHguY3NzTnVtYmVyW2VdPyIiOiJweCIpLGE9KHguY3NzTnVtYmVyW2VdfHwicHgiIT09byYmK3IpJiZZbi5leGVjKHguY3NzKG4uZWxlbSxlKSkscz0xLGw9MjA7aWYoYSYmYVszXSE9PW8pe289b3x8YVszXSxpPWl8fFtdLGE9K3J8fDE7ZG8gcz1zfHwiLjUiLGEvPXMseC5zdHlsZShuLmVsZW0sZSxhK28pO3doaWxlKHMhPT0ocz1uLmN1cigpL3IpJiYxIT09cyYmLS1sKX1yZXR1cm4gaSYmKGE9bi5zdGFydD0rYXx8K3J8fDAsbi51bml0PW8sbi5lbmQ9aVsxXT9hKyhpWzFdKzEpKmlbMl06K2lbMl0pLG59XX07ZnVuY3Rpb24gS24oKXtyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe1huPXR9KSxYbj14Lm5vdygpfWZ1bmN0aW9uIFpuKGUsdCxuKXt2YXIgcixpPShRblt0XXx8W10pLmNvbmNhdChRblsiKiJdKSxvPTAsYT1pLmxlbmd0aDtmb3IoO2E+bztvKyspaWYocj1pW29dLmNhbGwobix0LGUpKXJldHVybiByfWZ1bmN0aW9uIGVyKGUsdCxuKXt2YXIgcixpLG89MCxhPUduLmxlbmd0aCxzPXguRGVmZXJyZWQoKS5hbHdheXMoZnVuY3Rpb24oKXtkZWxldGUgbC5lbGVtfSksbD1mdW5jdGlvbigpe2lmKGkpcmV0dXJuITE7dmFyIHQ9WG58fEtuKCksbj1NYXRoLm1heCgwLHUuc3RhcnRUaW1lK3UuZHVyYXRpb24tdCkscj1uL3UuZHVyYXRpb258fDAsbz0xLXIsYT0wLGw9dS50d2VlbnMubGVuZ3RoO2Zvcig7bD5hO2ErKyl1LnR3ZWVuc1thXS5ydW4obyk7cmV0dXJuIHMubm90aWZ5V2l0aChlLFt1LG8sbl0pLDE+byYmbD9uOihzLnJlc29sdmVXaXRoKGUsW3VdKSwhMSl9LHU9cy5wcm9taXNlKHtlbGVtOmUscHJvcHM6eC5leHRlbmQoe30sdCksb3B0czp4LmV4dGVuZCghMCx7c3BlY2lhbEVhc2luZzp7fX0sbiksb3JpZ2luYWxQcm9wZXJ0aWVzOnQsb3JpZ2luYWxPcHRpb25zOm4sc3RhcnRUaW1lOlhufHxLbigpLGR1cmF0aW9uOm4uZHVyYXRpb24sdHdlZW5zOltdLGNyZWF0ZVR3ZWVuOmZ1bmN0aW9uKHQsbil7dmFyIHI9eC5Ud2VlbihlLHUub3B0cyx0LG4sdS5vcHRzLnNwZWNpYWxFYXNpbmdbdF18fHUub3B0cy5lYXNpbmcpO3JldHVybiB1LnR3ZWVucy5wdXNoKHIpLHJ9LHN0b3A6ZnVuY3Rpb24odCl7dmFyIG49MCxyPXQ/dS50d2VlbnMubGVuZ3RoOjA7aWYoaSlyZXR1cm4gdGhpcztmb3IoaT0hMDtyPm47bisrKXUudHdlZW5zW25dLnJ1bigxKTtyZXR1cm4gdD9zLnJlc29sdmVXaXRoKGUsW3UsdF0pOnMucmVqZWN0V2l0aChlLFt1LHRdKSx0aGlzfX0pLGM9dS5wcm9wcztmb3IodHIoYyx1Lm9wdHMuc3BlY2lhbEVhc2luZyk7YT5vO28rKylpZihyPUduW29dLmNhbGwodSxlLGMsdS5vcHRzKSlyZXR1cm4gcjtyZXR1cm4geC5tYXAoYyxabix1KSx4LmlzRnVuY3Rpb24odS5vcHRzLnN0YXJ0KSYmdS5vcHRzLnN0YXJ0LmNhbGwoZSx1KSx4LmZ4LnRpbWVyKHguZXh0ZW5kKGwse2VsZW06ZSxhbmltOnUscXVldWU6dS5vcHRzLnF1ZXVlfSkpLHUucHJvZ3Jlc3ModS5vcHRzLnByb2dyZXNzKS5kb25lKHUub3B0cy5kb25lLHUub3B0cy5jb21wbGV0ZSkuZmFpbCh1Lm9wdHMuZmFpbCkuYWx3YXlzKHUub3B0cy5hbHdheXMpfWZ1bmN0aW9uIHRyKGUsdCl7dmFyIG4scixpLG8sYTtmb3IobiBpbiBlKWlmKHI9eC5jYW1lbENhc2UobiksaT10W3JdLG89ZVtuXSx4LmlzQXJyYXkobykmJihpPW9bMV0sbz1lW25dPW9bMF0pLG4hPT1yJiYoZVtyXT1vLGRlbGV0ZSBlW25dKSxhPXguY3NzSG9va3Nbcl0sYSYmImV4cGFuZCJpbiBhKXtvPWEuZXhwYW5kKG8pLGRlbGV0ZSBlW3JdO2ZvcihuIGluIG8pbiBpbiBlfHwoZVtuXT1vW25dLHRbbl09aSl9ZWxzZSB0W3JdPWl9eC5BbmltYXRpb249eC5leHRlbmQoZXIse3R3ZWVuZXI6ZnVuY3Rpb24oZSx0KXt4LmlzRnVuY3Rpb24oZSk/KHQ9ZSxlPVsiKiJdKTplPWUuc3BsaXQoIiAiKTt2YXIgbixyPTAsaT1lLmxlbmd0aDtmb3IoO2k+cjtyKyspbj1lW3JdLFFuW25dPVFuW25dfHxbXSxRbltuXS51bnNoaWZ0KHQpfSxwcmVmaWx0ZXI6ZnVuY3Rpb24oZSx0KXt0P0duLnVuc2hpZnQoZSk6R24ucHVzaChlKX19KTtmdW5jdGlvbiBucihlLHQsbil7dmFyIHIsaSxvLGEscyxsLHU9dGhpcyxjPXt9LHA9ZS5zdHlsZSxmPWUubm9kZVR5cGUmJm5uKGUpLGQ9eC5fZGF0YShlLCJmeHNob3ciKTtuLnF1ZXVlfHwocz14Ll9xdWV1ZUhvb2tzKGUsImZ4IiksbnVsbD09cy51bnF1ZXVlZCYmKHMudW5xdWV1ZWQ9MCxsPXMuZW1wdHkuZmlyZSxzLmVtcHR5LmZpcmU9ZnVuY3Rpb24oKXtzLnVucXVldWVkfHxsKCl9KSxzLnVucXVldWVkKyssdS5hbHdheXMoZnVuY3Rpb24oKXt1LmFsd2F5cyhmdW5jdGlvbigpe3MudW5xdWV1ZWQtLSx4LnF1ZXVlKGUsImZ4IikubGVuZ3RofHxzLmVtcHR5LmZpcmUoKX0pfSkpLDE9PT1lLm5vZGVUeXBlJiYoImhlaWdodCJpbiB0fHwid2lkdGgiaW4gdCkmJihuLm92ZXJmbG93PVtwLm92ZXJmbG93LHAub3ZlcmZsb3dYLHAub3ZlcmZsb3dZXSwiaW5saW5lIj09PXguY3NzKGUsImRpc3BsYXkiKSYmIm5vbmUiPT09eC5jc3MoZSwiZmxvYXQiKSYmKHguc3VwcG9ydC5pbmxpbmVCbG9ja05lZWRzTGF5b3V0JiYiaW5saW5lIiE9PWxuKGUubm9kZU5hbWUpP3Auem9vbT0xOnAuZGlzcGxheT0iaW5saW5lLWJsb2NrIikpLG4ub3ZlcmZsb3cmJihwLm92ZXJmbG93PSJoaWRkZW4iLHguc3VwcG9ydC5zaHJpbmtXcmFwQmxvY2tzfHx1LmFsd2F5cyhmdW5jdGlvbigpe3Aub3ZlcmZsb3c9bi5vdmVyZmxvd1swXSxwLm92ZXJmbG93WD1uLm92ZXJmbG93WzFdLHAub3ZlcmZsb3dZPW4ub3ZlcmZsb3dbMl19KSk7Zm9yKHIgaW4gdClpZihpPXRbcl0sVm4uZXhlYyhpKSl7aWYoZGVsZXRlIHRbcl0sbz1vfHwidG9nZ2xlIj09PWksaT09PShmPyJoaWRlIjoic2hvdyIpKWNvbnRpbnVlO2Nbcl09ZCYmZFtyXXx8eC5zdHlsZShlLHIpfWlmKCF4LmlzRW1wdHlPYmplY3QoYykpe2Q/ImhpZGRlbiJpbiBkJiYoZj1kLmhpZGRlbik6ZD14Ll9kYXRhKGUsImZ4c2hvdyIse30pLG8mJihkLmhpZGRlbj0hZiksZj94KGUpLnNob3coKTp1LmRvbmUoZnVuY3Rpb24oKXt4KGUpLmhpZGUoKX0pLHUuZG9uZShmdW5jdGlvbigpe3ZhciB0O3guX3JlbW92ZURhdGEoZSwiZnhzaG93Iik7Zm9yKHQgaW4gYyl4LnN0eWxlKGUsdCxjW3RdKX0pO2ZvcihyIGluIGMpYT1abihmP2Rbcl06MCxyLHUpLHIgaW4gZHx8KGRbcl09YS5zdGFydCxmJiYoYS5lbmQ9YS5zdGFydCxhLnN0YXJ0PSJ3aWR0aCI9PT1yfHwiaGVpZ2h0Ij09PXI/MTowKSl9fWZ1bmN0aW9uIHJyKGUsdCxuLHIsaSl7cmV0dXJuIG5ldyByci5wcm90b3R5cGUuaW5pdChlLHQsbixyLGkpfXguVHdlZW49cnIscnIucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjpycixpbml0OmZ1bmN0aW9uKGUsdCxuLHIsaSxvKXt0aGlzLmVsZW09ZSx0aGlzLnByb3A9bix0aGlzLmVhc2luZz1pfHwic3dpbmciLHRoaXMub3B0aW9ucz10LHRoaXMuc3RhcnQ9dGhpcy5ub3c9dGhpcy5jdXIoKSx0aGlzLmVuZD1yLHRoaXMudW5pdD1vfHwoeC5jc3NOdW1iZXJbbl0/IiI6InB4Iil9LGN1cjpmdW5jdGlvbigpe3ZhciBlPXJyLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiBlJiZlLmdldD9lLmdldCh0aGlzKTpyci5wcm9wSG9va3MuX2RlZmF1bHQuZ2V0KHRoaXMpfSxydW46ZnVuY3Rpb24oZSl7dmFyIHQsbj1yci5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gdGhpcy5wb3M9dD10aGlzLm9wdGlvbnMuZHVyYXRpb24/eC5lYXNpbmdbdGhpcy5lYXNpbmddKGUsdGhpcy5vcHRpb25zLmR1cmF0aW9uKmUsMCwxLHRoaXMub3B0aW9ucy5kdXJhdGlvbik6ZSx0aGlzLm5vdz0odGhpcy5lbmQtdGhpcy5zdGFydCkqdCt0aGlzLnN0YXJ0LHRoaXMub3B0aW9ucy5zdGVwJiZ0aGlzLm9wdGlvbnMuc3RlcC5jYWxsKHRoaXMuZWxlbSx0aGlzLm5vdyx0aGlzKSxuJiZuLnNldD9uLnNldCh0aGlzKTpyci5wcm9wSG9va3MuX2RlZmF1bHQuc2V0KHRoaXMpLHRoaXN9fSxyci5wcm90b3R5cGUuaW5pdC5wcm90b3R5cGU9cnIucHJvdG90eXBlLHJyLnByb3BIb29rcz17X2RlZmF1bHQ6e2dldDpmdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gbnVsbD09ZS5lbGVtW2UucHJvcF18fGUuZWxlbS5zdHlsZSYmbnVsbCE9ZS5lbGVtLnN0eWxlW2UucHJvcF0/KHQ9eC5jc3MoZS5lbGVtLGUucHJvcCwiIiksdCYmImF1dG8iIT09dD90OjApOmUuZWxlbVtlLnByb3BdfSxzZXQ6ZnVuY3Rpb24oZSl7eC5meC5zdGVwW2UucHJvcF0/eC5meC5zdGVwW2UucHJvcF0oZSk6ZS5lbGVtLnN0eWxlJiYobnVsbCE9ZS5lbGVtLnN0eWxlW3guY3NzUHJvcHNbZS5wcm9wXV18fHguY3NzSG9va3NbZS5wcm9wXSk/eC5zdHlsZShlLmVsZW0sZS5wcm9wLGUubm93K2UudW5pdCk6ZS5lbGVtW2UucHJvcF09ZS5ub3d9fX0scnIucHJvcEhvb2tzLnNjcm9sbFRvcD1yci5wcm9wSG9va3Muc2Nyb2xsTGVmdD17c2V0OmZ1bmN0aW9uKGUpe2UuZWxlbS5ub2RlVHlwZSYmZS5lbGVtLnBhcmVudE5vZGUmJihlLmVsZW1bZS5wcm9wXT1lLm5vdyl9fSx4LmVhY2goWyJ0b2dnbGUiLCJzaG93IiwiaGlkZSJdLGZ1bmN0aW9uKGUsdCl7dmFyIG49eC5mblt0XTt4LmZuW3RdPWZ1bmN0aW9uKGUscixpKXtyZXR1cm4gbnVsbD09ZXx8ImJvb2xlYW4iPT10eXBlb2YgZT9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUoaXIodCwhMCksZSxyLGkpfX0pLHguZm4uZXh0ZW5kKHtmYWRlVG86ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIHRoaXMuZmlsdGVyKG5uKS5jc3MoIm9wYWNpdHkiLDApLnNob3coKS5lbmQoKS5hbmltYXRlKHtvcGFjaXR5OnR9LGUsbixyKX0sYW5pbWF0ZTpmdW5jdGlvbihlLHQsbixyKXt2YXIgaT14LmlzRW1wdHlPYmplY3QoZSksbz14LnNwZWVkKHQsbixyKSxhPWZ1bmN0aW9uKCl7dmFyIHQ9ZXIodGhpcyx4LmV4dGVuZCh7fSxlKSxvKTsoaXx8eC5fZGF0YSh0aGlzLCJmaW5pc2giKSkmJnQuc3RvcCghMCl9O3JldHVybiBhLmZpbmlzaD1hLGl8fG8ucXVldWU9PT0hMT90aGlzLmVhY2goYSk6dGhpcy5xdWV1ZShvLnF1ZXVlLGEpfSxzdG9wOmZ1bmN0aW9uKGUsbixyKXt2YXIgaT1mdW5jdGlvbihlKXt2YXIgdD1lLnN0b3A7ZGVsZXRlIGUuc3RvcCx0KHIpfTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGUmJihyPW4sbj1lLGU9dCksbiYmZSE9PSExJiZ0aGlzLnF1ZXVlKGV8fCJmeCIsW10pLHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PSEwLG49bnVsbCE9ZSYmZSsicXVldWVIb29rcyIsbz14LnRpbWVycyxhPXguX2RhdGEodGhpcyk7aWYobilhW25dJiZhW25dLnN0b3AmJmkoYVtuXSk7ZWxzZSBmb3IobiBpbiBhKWFbbl0mJmFbbl0uc3RvcCYmSm4udGVzdChuKSYmaShhW25dKTtmb3Iobj1vLmxlbmd0aDtuLS07KW9bbl0uZWxlbSE9PXRoaXN8fG51bGwhPWUmJm9bbl0ucXVldWUhPT1lfHwob1tuXS5hbmltLnN0b3AociksdD0hMSxvLnNwbGljZShuLDEpKTsodHx8IXIpJiZ4LmRlcXVldWUodGhpcyxlKX0pfSxmaW5pc2g6ZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT0hMSYmKGU9ZXx8ImZ4IiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQsbj14Ll9kYXRhKHRoaXMpLHI9bltlKyJxdWV1ZSJdLGk9bltlKyJxdWV1ZUhvb2tzIl0sbz14LnRpbWVycyxhPXI/ci5sZW5ndGg6MDtmb3Iobi5maW5pc2g9ITAseC5xdWV1ZSh0aGlzLGUsW10pLGkmJmkuc3RvcCYmaS5zdG9wLmNhbGwodGhpcywhMCksdD1vLmxlbmd0aDt0LS07KW9bdF0uZWxlbT09PXRoaXMmJm9bdF0ucXVldWU9PT1lJiYob1t0XS5hbmltLnN0b3AoITApLG8uc3BsaWNlKHQsMSkpO2Zvcih0PTA7YT50O3QrKylyW3RdJiZyW3RdLmZpbmlzaCYmclt0XS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgbi5maW5pc2h9KX19KTtmdW5jdGlvbiBpcihlLHQpe3ZhciBuLHI9e2hlaWdodDplfSxpPTA7Zm9yKHQ9dD8xOjA7ND5pO2krPTItdCluPVp0W2ldLHJbIm1hcmdpbiIrbl09clsicGFkZGluZyIrbl09ZTtyZXR1cm4gdCYmKHIub3BhY2l0eT1yLndpZHRoPWUpLHJ9eC5lYWNoKHtzbGlkZURvd246aXIoInNob3ciKSxzbGlkZVVwOmlyKCJoaWRlIiksc2xpZGVUb2dnbGU6aXIoInRvZ2dsZSIpLGZhZGVJbjp7b3BhY2l0eToic2hvdyJ9LGZhZGVPdXQ6e29wYWNpdHk6ImhpZGUifSxmYWRlVG9nZ2xlOntvcGFjaXR5OiJ0b2dnbGUifX0sZnVuY3Rpb24oZSx0KXt4LmZuW2VdPWZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdGhpcy5hbmltYXRlKHQsZSxuLHIpfX0pLHguc3BlZWQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUmJiJvYmplY3QiPT10eXBlb2YgZT94LmV4dGVuZCh7fSxlKTp7Y29tcGxldGU6bnx8IW4mJnR8fHguaXNGdW5jdGlvbihlKSYmZSxkdXJhdGlvbjplLGVhc2luZzpuJiZ0fHx0JiYheC5pc0Z1bmN0aW9uKHQpJiZ0fTtyZXR1cm4gci5kdXJhdGlvbj14LmZ4Lm9mZj8wOiJudW1iZXIiPT10eXBlb2Ygci5kdXJhdGlvbj9yLmR1cmF0aW9uOnIuZHVyYXRpb24gaW4geC5meC5zcGVlZHM/eC5meC5zcGVlZHNbci5kdXJhdGlvbl06eC5meC5zcGVlZHMuX2RlZmF1bHQsKG51bGw9PXIucXVldWV8fHIucXVldWU9PT0hMCkmJihyLnF1ZXVlPSJmeCIpLHIub2xkPXIuY29tcGxldGUsci5jb21wbGV0ZT1mdW5jdGlvbigpe3guaXNGdW5jdGlvbihyLm9sZCkmJnIub2xkLmNhbGwodGhpcyksci5xdWV1ZSYmeC5kZXF1ZXVlKHRoaXMsci5xdWV1ZSl9LHJ9LHguZWFzaW5nPXtsaW5lYXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LHN3aW5nOmZ1bmN0aW9uKGUpe3JldHVybi41LU1hdGguY29zKGUqTWF0aC5QSSkvMn19LHgudGltZXJzPVtdLHguZng9cnIucHJvdG90eXBlLmluaXQseC5meC50aWNrPWZ1bmN0aW9uKCl7dmFyIGUsbj14LnRpbWVycyxyPTA7Zm9yKFhuPXgubm93KCk7bi5sZW5ndGg+cjtyKyspZT1uW3JdLGUoKXx8bltyXSE9PWV8fG4uc3BsaWNlKHItLSwxKTtuLmxlbmd0aHx8eC5meC5zdG9wKCksWG49dH0seC5meC50aW1lcj1mdW5jdGlvbihlKXtlKCkmJngudGltZXJzLnB1c2goZSkmJnguZnguc3RhcnQoKX0seC5meC5pbnRlcnZhbD0xMyx4LmZ4LnN0YXJ0PWZ1bmN0aW9uKCl7VW58fChVbj1zZXRJbnRlcnZhbCh4LmZ4LnRpY2sseC5meC5pbnRlcnZhbCkpfSx4LmZ4LnN0b3A9ZnVuY3Rpb24oKXtjbGVhckludGVydmFsKFVuKSxVbj1udWxsfSx4LmZ4LnNwZWVkcz17c2xvdzo2MDAsZmFzdDoyMDAsX2RlZmF1bHQ6NDAwfSx4LmZ4LnN0ZXA9e30seC5leHByJiZ4LmV4cHIuZmlsdGVycyYmKHguZXhwci5maWx0ZXJzLmFuaW1hdGVkPWZ1bmN0aW9uKGUpe3JldHVybiB4LmdyZXAoeC50aW1lcnMsZnVuY3Rpb24odCl7cmV0dXJuIGU9PT10LmVsZW19KS5sZW5ndGh9KSx4LmZuLm9mZnNldD1mdW5jdGlvbihlKXtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiBlPT09dD90aGlzOnRoaXMuZWFjaChmdW5jdGlvbih0KXt4Lm9mZnNldC5zZXRPZmZzZXQodGhpcyxlLHQpfSk7dmFyIG4scixvPXt0b3A6MCxsZWZ0OjB9LGE9dGhpc1swXSxzPWEmJmEub3duZXJEb2N1bWVudDtpZihzKXJldHVybiBuPXMuZG9jdW1lbnRFbGVtZW50LHguY29udGFpbnMobixhKT8odHlwZW9mIGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0IT09aSYmKG89YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSkscj1vcihzKSx7dG9wOm8udG9wKyhyLnBhZ2VZT2Zmc2V0fHxuLnNjcm9sbFRvcCktKG4uY2xpZW50VG9wfHwwKSxsZWZ0Om8ubGVmdCsoci5wYWdlWE9mZnNldHx8bi5zY3JvbGxMZWZ0KS0obi5jbGllbnRMZWZ0fHwwKX0pOm99LHgub2Zmc2V0PXtzZXRPZmZzZXQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXguY3NzKGUsInBvc2l0aW9uIik7InN0YXRpYyI9PT1yJiYoZS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKTt2YXIgaT14KGUpLG89aS5vZmZzZXQoKSxhPXguY3NzKGUsInRvcCIpLHM9eC5jc3MoZSwibGVmdCIpLGw9KCJhYnNvbHV0ZSI9PT1yfHwiZml4ZWQiPT09cikmJnguaW5BcnJheSgiYXV0byIsW2Esc10pPi0xLHU9e30sYz17fSxwLGY7bD8oYz1pLnBvc2l0aW9uKCkscD1jLnRvcCxmPWMubGVmdCk6KHA9cGFyc2VGbG9hdChhKXx8MCxmPXBhcnNlRmxvYXQocyl8fDApLHguaXNGdW5jdGlvbih0KSYmKHQ9dC5jYWxsKGUsbixvKSksbnVsbCE9dC50b3AmJih1LnRvcD10LnRvcC1vLnRvcCtwKSxudWxsIT10LmxlZnQmJih1LmxlZnQ9dC5sZWZ0LW8ubGVmdCtmKSwidXNpbmciaW4gdD90LnVzaW5nLmNhbGwoZSx1KTppLmNzcyh1KX19LHguZm4uZXh0ZW5kKHtwb3NpdGlvbjpmdW5jdGlvbigpe2lmKHRoaXNbMF0pe3ZhciBlLHQsbj17dG9wOjAsbGVmdDowfSxyPXRoaXNbMF07cmV0dXJuImZpeGVkIj09PXguY3NzKHIsInBvc2l0aW9uIik/dD1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOihlPXRoaXMub2Zmc2V0UGFyZW50KCksdD10aGlzLm9mZnNldCgpLHgubm9kZU5hbWUoZVswXSwiaHRtbCIpfHwobj1lLm9mZnNldCgpKSxuLnRvcCs9eC5jc3MoZVswXSwiYm9yZGVyVG9wV2lkdGgiLCEwKSxuLmxlZnQrPXguY3NzKGVbMF0sImJvcmRlckxlZnRXaWR0aCIsITApKSx7dG9wOnQudG9wLW4udG9wLXguY3NzKHIsIm1hcmdpblRvcCIsITApLGxlZnQ6dC5sZWZ0LW4ubGVmdC14LmNzcyhyLCJtYXJnaW5MZWZ0IiwhMCl9fX0sb2Zmc2V0UGFyZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vZmZzZXRQYXJlbnR8fHM7d2hpbGUoZSYmIXgubm9kZU5hbWUoZSwiaHRtbCIpJiYic3RhdGljIj09PXguY3NzKGUsInBvc2l0aW9uIikpZT1lLm9mZnNldFBhcmVudDtyZXR1cm4gZXx8c30pfX0pLHguZWFjaCh7c2Nyb2xsTGVmdDoicGFnZVhPZmZzZXQiLHNjcm9sbFRvcDoicGFnZVlPZmZzZXQifSxmdW5jdGlvbihlLG4pe3ZhciByPS9ZLy50ZXN0KG4pO3guZm5bZV09ZnVuY3Rpb24oaSl7cmV0dXJuIHguYWNjZXNzKHRoaXMsZnVuY3Rpb24oZSxpLG8pe3ZhciBhPW9yKGUpO3JldHVybiBvPT09dD9hP24gaW4gYT9hW25dOmEuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50W2ldOmVbaV06KGE/YS5zY3JvbGxUbyhyP3goYSkuc2Nyb2xsTGVmdCgpOm8scj9vOngoYSkuc2Nyb2xsVG9wKCkpOmVbaV09byx0KX0sZSxpLGFyZ3VtZW50cy5sZW5ndGgsbnVsbCl9fSk7ZnVuY3Rpb24gb3IoZSl7cmV0dXJuIHguaXNXaW5kb3coZSk/ZTo5PT09ZS5ub2RlVHlwZT9lLmRlZmF1bHRWaWV3fHxlLnBhcmVudFdpbmRvdzohMX14LmVhY2goe0hlaWdodDoiaGVpZ2h0IixXaWR0aDoid2lkdGgifSxmdW5jdGlvbihlLG4pe3guZWFjaCh7cGFkZGluZzoiaW5uZXIiK2UsY29udGVudDpuLCIiOiJvdXRlciIrZX0sZnVuY3Rpb24ocixpKXt4LmZuW2ldPWZ1bmN0aW9uKGksbyl7dmFyIGE9YXJndW1lbnRzLmxlbmd0aCYmKHJ8fCJib29sZWFuIiE9dHlwZW9mIGkpLHM9cnx8KGk9PT0hMHx8bz09PSEwPyJtYXJnaW4iOiJib3JkZXIiKTtyZXR1cm4geC5hY2Nlc3ModGhpcyxmdW5jdGlvbihuLHIsaSl7dmFyIG87cmV0dXJuIHguaXNXaW5kb3cobik/bi5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrZV06OT09PW4ubm9kZVR5cGU/KG89bi5kb2N1bWVudEVsZW1lbnQsTWF0aC5tYXgobi5ib2R5WyJzY3JvbGwiK2VdLG9bInNjcm9sbCIrZV0sbi5ib2R5WyJvZmZzZXQiK2VdLG9bIm9mZnNldCIrZV0sb1siY2xpZW50IitlXSkpOmk9PT10P3guY3NzKG4scixzKTp4LnN0eWxlKG4scixpLHMpfSxuLGE/aTp0LGEsbnVsbCl9fSl9KSx4LmZuLnNpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGh9LHguZm4uYW5kU2VsZj14LmZuLmFkZEJhY2ssIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJm1vZHVsZSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz14OihlLmpRdWVyeT1lLiQ9eCwiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kJiZkZWZpbmUoImpxdWVyeSIsW10sZnVuY3Rpb24oKXtyZXR1cm4geH0pKX0pKHdpbmRvdyk7CgpmdW5jdGlvbiB0X29uUmVhZHkodCl7ImxvYWRpbmciIT1kb2N1bWVudC5yZWFkeVN0YXRlP3QoKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIix0KX1mdW5jdGlvbiB0X2FkZENsYXNzKHQsZSl7ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3Q/dC5jbGFzc0xpc3QuYWRkKGUpOnQuY2xhc3NOYW1lKz0odC5jbGFzc05hbWU/IiAiOiIiKStlfWZ1bmN0aW9uIHRfcmVtb3ZlQ2xhc3ModCxlKXtkb2N1bWVudC5ib2R5LmNsYXNzTGlzdD90LmNsYXNzTGlzdC5yZW1vdmUoZSk6dC5jbGFzc05hbWU9dC5jbGFzc05hbWUucmVwbGFjZShuZXcgUmVnRXhwKCIoXnxcXHMrKSIrZSsiKFxccyt8JCkiKSwiICIpLnJlcGxhY2UoL15ccysvLCIiKS5yZXBsYWNlKC9ccyskLywiIil9ZnVuY3Rpb24gdF9yZW1vdmVFbCh0KXt0JiZ0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KX1mdW5jdGlvbiB0X291dGVyV2lkdGgodCl7dmFyIGU9Z2V0Q29tcHV0ZWRTdHlsZSh0KSxuPWUud2lkdGgsaT1lLm1hcmdpbkxlZnQsbz1lLm1hcmdpblJpZ2h0O3JldHVybiJhdXRvIj09PW4mJihuPTApLCJhdXRvIj09PWkmJihpPTApLCJhdXRvIj09PW8mJihvPTApLG49cGFyc2VJbnQobikrcGFyc2VJbnQoaSkrcGFyc2VJbnQobyl9dmFyIHZlcnNpb24sdmVyc2lvbjsod2luZG93LmlzU2VhcmNoQm90PSExLC9Cb3QvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYod2luZG93LmlzU2VhcmNoQm90PSEwKSx3aW5kb3cuaXNNb2JpbGU9ITEsd2luZG93LiRpc01vYmlsZT0hMSwvQW5kcm9pZHx3ZWJPU3xpUGhvbmV8aVBhZHxpUG9kfEJsYWNrQmVycnl8SUVNb2JpbGV8T3BlcmEgTWluaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJih3aW5kb3cuaXNNb2JpbGU9ITAsd2luZG93LiRpc01vYmlsZT0hMCksd2luZG93LmlzVGFibGV0PS8oaXBhZHx0YWJsZXR8KGFuZHJvaWQoPyEuKm1vYmlsZSkpfCh3aW5kb3dzKD8hLipwaG9uZSkoLip0b3VjaCkpfGtpbmRsZXxwbGF5Ym9va3xzaWxrfChwdWZmaW4oPyEuKihJUHxBUHxXUCkpKSkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLHdpbmRvdy5pc2lPUz0hMSwvaVBob25lfGlQYWR8aVBvZC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJih3aW5kb3cuaXNpT1M9ITApLHdpbmRvdy5pc2lPU0Nocm9tZT0hIW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goIkNyaU9TIiksd2luZG93LmlzRmlyZWZveD0vZmlyZWZveC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksd2luZG93LmlzT3BlcmE9ISF3aW5kb3cub3ByJiYhIXdpbmRvdy5vcHIuYWRkb25zfHwhIXdpbmRvdy5vcGVyYXx8bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCIgT1BSLyIpPj0wLHdpbmRvdy5pc2lPU1ZlcnNpb249IiIsd2luZG93LmlzaU9TKSYmKG51bGwhPT0odmVyc2lvbj1uYXZpZ2F0b3IuYXBwVmVyc2lvbi5tYXRjaCgvT1MgKFxkKylfKFxkKylfPyhcZCspPy8pKSYmKHdpbmRvdy5pc2lPU1ZlcnNpb249W3BhcnNlSW50KHZlcnNpb25bMV0sMTApLHBhcnNlSW50KHZlcnNpb25bMl0sMTApLHBhcnNlSW50KHZlcnNpb25bM118fDAsMTApXSkpOyh3aW5kb3cuaXNTYWZhcmk9ITEsL14oKD8hY2hyb21lfGFuZHJvaWQpLikqc2FmYXJpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmKHdpbmRvdy5pc1NhZmFyaT0hMCksd2luZG93LmlzSUU9ISFkb2N1bWVudC5kb2N1bWVudE1vZGUsd2luZG93LmlzU2FmYXJpVmVyc2lvbj0iIix3aW5kb3cuaXNTYWZhcmkpJiYobnVsbCE9PSh2ZXJzaW9uPW5hdmlnYXRvci5hcHBWZXJzaW9uLm1hdGNoKC9WZXJzaW9uXC8oXGQrKVwuKFxkKylcLj8oXGQrKT8gU2FmYXJpLykpJiYod2luZG93LmlzU2FmYXJpVmVyc2lvbj1bcGFyc2VJbnQodmVyc2lvblsxXSwxMCkscGFyc2VJbnQodmVyc2lvblsyXSwxMCkscGFyc2VJbnQodmVyc2lvblszXXx8MCwxMCldKSk7ZnVuY3Rpb24gdF90aHJvdHRsZSh0LGUsbil7dmFyIGksbztyZXR1cm4gZXx8KGU9MjUwKSxmdW5jdGlvbigpe3ZhciByPW58fHRoaXMsYT0rbmV3IERhdGUsbD1hcmd1bWVudHM7aSYmYTxpK2U/KGNsZWFyVGltZW91dChvKSxvPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7aT1hLHQuYXBwbHkocixsKX0pLGUpKTooaT1hLHQuYXBwbHkocixsKSl9fWZ1bmN0aW9uIHRfb25GdW5jTG9hZCh0LGUsbil7dmFyIGk9MTVlMyxvPXRfY2hlY2tJc0VkaXRNb2RlKCkscj1mdW5jdGlvbiB0KCl7cmV0dXJuIW98fG8mJnRfY2hlY2tFZGl0b3JJc1JlYWR5KCl9LGE9ZnVuY3Rpb24gdChlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygd2luZG93W2VdfHwib2JqZWN0Ij09dHlwZW9mIHdpbmRvd1tlXX07aWYoYSh0KSYmcigpKWUoKTtlbHNle3ZhciBsPURhdGUubm93KCksZD1uZXcgRXJyb3IodCsiIGlzIHVuZGVmaW5lZCIpLHM9ZnVuY3Rpb24gdCgpe3Rocm93IGR9O3NldFRpbWVvdXQoKGZ1bmN0aW9uIG8oKXt2YXIgZD1EYXRlLm5vdygpO2EodCkmJnIoKT9lKCk6KCJjb21wbGV0ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlJiZkLWw+aSYmIWEodCkmJnMoKSxzZXRUaW1lb3V0KG8sbnx8MTAwKSl9KSl9fWZ1bmN0aW9uIHRfY2hlY2tJc0VkaXRNb2RlKCl7dmFyIHQ9ITEsZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpO2lmKCFlKXJldHVybiExO3ZhciBuPWUuZ2V0QXR0cmlidXRlKCJkYXRhLXRpbGRhLW1vZGUiKTtyZXR1cm4hISh0PW4mJiJlZGl0Ij09PW4pfWZ1bmN0aW9uIHRfY2hlY2tFZGl0b3JJc1JlYWR5KCl7dmFyIHQ9ITE7aWYoIXRfY2hlY2tJc0VkaXRNb2RlKCkpcmV0dXJuITE7dmFyIGU9ZG9jdW1lbnQuYm9keS5nZXRBdHRyaWJ1dGUoImRhdGEtcmVhZHktc3RhdHVzIik7cmV0dXJuISEodD1lJiYicmVhZHkiPT09ZSl9ZnVuY3Rpb24gdF9zY3JvbGxCYXJXaWR0aENvbXBlbnNhdG9yX19zZXRPYmplY3QoKXt3aW5kb3cuc2Nyb2xsQmFyV2lkdGhDb21wZW5zYXRvcj17fTt2YXIgdD13aW5kb3cuc2Nyb2xsQmFyV2lkdGhDb21wZW5zYXRvcjt0LmlzSW5pdGVkPSExLHQuc2Nyb2xsQmFyV2lkdGg9TWF0aC5hYnMod2luZG93LmlubmVyV2lkdGgtZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKSx0LmRlbGF5PTAsdC5jYW5jZWxUaW1lb3V0PW51bGw7dmFyIGU9WyJ0NDUwIiwidDI4Ml9fY29udGFpbmVyIiwidDI4Ml9fY29udGFpbmVyX19iZ19vcGVuZWQiLCJ0MjgyX19tZW51X19jb250YWluZXIiLCJ0ODMwbSIsInQ4MzBfX3BhbmVsIiwidDQ1MW0iLCJ0MjA0X19tZW51Il0sbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIqIik7bj1BcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwobiwoZnVuY3Rpb24odCl7cmV0dXJuIXQuY2xvc2VzdCgiLnQxMDkzIikmJiFlLnNvbWUoKGZ1bmN0aW9uKGUpe3JldHVybiB0LmNsYXNzTGlzdC5jb250YWlucyhlKX0pKX0pKSx0LmZpeGVkRWxlbWVudHM9W10sQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChuLChmdW5jdGlvbihlKXtpZighZS5jbGFzc0xpc3QuY29udGFpbnMoInQ5NzUiKSl7dmFyIG49d2luZG93LmdldENvbXB1dGVkU3R5bGUoZSksaT1uLmdldFByb3BlcnR5VmFsdWUoInBvc2l0aW9uIiksbz1uLmdldFByb3BlcnR5VmFsdWUoIndpZHRoIikscj1uLmdldFByb3BlcnR5VmFsdWUoImhlaWdodCIpLGE9IjEwMCUiPT09b3x8bz09PXdpbmRvdy5pbm5lcldpZHRoKyJweCJ8fG89PT13aW5kb3cuaW5uZXJXaWR0aC10LnNjcm9sbEJhcldpZHRoKyJweCJ8fCIxMDB2dyI9PT1vLGw9IjEwMCUiPT09cnx8cj09PXdpbmRvdy5pbm5lckhlaWdodCsicHgifHxyPT09d2luZG93LmlubmVySGVpZ2h0LXQuc2Nyb2xsQmFyV2lkdGgrInB4Inx8ImF1dG8iPT09cnx8IjEwMHZoIj09PXI7KCJmaXhlZCI9PT1pfHwiYWJzb2x1dGUiPT09aSYmYSYmIWwpJiZ0LmZpeGVkRWxlbWVudHMucHVzaCh7ZWw6ZSxjb21wdXRlZFN0eWxlOm59KX19KSl9ZnVuY3Rpb24gdF9zY3JvbGxCYXJXaWR0aENvbXBlbnNhdG9yX19pbml0KCl7aWYoIXdpbmRvdy5pc01vYmlsZSl7d2luZG93LnNjcm9sbEJhcldpZHRoQ29tcGVuc2F0b3J8fHRfc2Nyb2xsQmFyV2lkdGhDb21wZW5zYXRvcl9fc2V0T2JqZWN0KCk7dmFyIHQ9d2luZG93LnNjcm9sbEJhcldpZHRoQ29tcGVuc2F0b3I7aWYodC5zY3JvbGxCYXJXaWR0aD1NYXRoLmFicyh3aW5kb3cuaW5uZXJXaWR0aC1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpLHQuY2FuY2VsVGltZW91dCYmKHdpbmRvdy5jbGVhclRpbWVvdXQodC5jYW5jZWxUaW1lb3V0KSx0LmNhbmNlbFRpbWVvdXQ9bnVsbCksIXQuaXNJbml0ZWQmJnQuc2Nyb2xsQmFyV2lkdGgpe3QuaXNJbml0ZWQ9ITA7dmFyIGU9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuZ2V0UHJvcGVydHlWYWx1ZSgicGFkZGluZy1yaWdodCIpO2U9cGFyc2VJbnQoZS5yZXBsYWNlKCJweCIsIiIpLDEwKTt2YXIgbj1kb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodDtuJiZkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1pbml0aWFsLXBhZGRpbmctcmlnaHQiLG4pLGRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0PXQuc2Nyb2xsQmFyV2lkdGgrZSsicHgiLGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0PSIxMDB2aCIsZG9jdW1lbnQuYm9keS5zdHlsZS5taW5IZWlnaHQ9IjEwMHZoIixkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iO3ZhciBpPVtdO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodC5maXhlZEVsZW1lbnRzLChmdW5jdGlvbihlKXt2YXIgbj1lLmVsO2lmKGRvY3VtZW50LmJvZHkuY29udGFpbnMobikmJiFuLmNsYXNzTGlzdC5jb250YWlucygidDk3NSIpJiYhbi5jbGFzc0xpc3QuY29udGFpbnMoInQ5NzUiKSl7dmFyIG89ZS5jb21wdXRlZFN0eWxlLHI9by5nZXRQcm9wZXJ0eVZhbHVlKCJwb3NpdGlvbiIpO2lmKCJmaXhlZCI9PT1yfHwiYWJzb2x1dGUiPT09cil7dmFyIGE9by5nZXRQcm9wZXJ0eVZhbHVlKCJ0cmFuc2l0aW9uLWR1cmF0aW9uIik7YS5pbmRleE9mKCJtcyIpKzE/KGE9cGFyc2VJbnQoYS5yZXBsYWNlKCJtcyIsIiIpLDEwKSxpLnB1c2goYSkpOmEuaW5kZXhPZigicyIpKzEmJihhPTFlMypwYXJzZUZsb2F0KGEucmVwbGFjZSgicyIsIiIpKSxpLnB1c2goYSkpO3ZhciBsPW8uZ2V0UHJvcGVydHlWYWx1ZSgicmlnaHQiKTtsPXBhcnNlSW50KGwucmVwbGFjZSgicHgiLCIiKSwxMCk7dmFyIGQ9by5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpLHM9by5nZXRQcm9wZXJ0eVZhbHVlKCJoZWlnaHQiKSxjPW4uc3R5bGUucmlnaHQ7YyYmbi5zZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtaW5pdGlhbC1yaWdodCIsYyk7dmFyIHU9bi5zdHlsZS53aWR0aDt1JiZuLnNldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1pbml0aWFsLXdpZHRoIix1KTt2YXIgbT0iMTAwJSI9PT1kfHxkPT09d2luZG93LmlubmVyV2lkdGgrInB4Inx8ZD09PXdpbmRvdy5pbm5lcldpZHRoLXQuc2Nyb2xsQmFyV2lkdGgrInB4Inx8IjEwMHZ3Ij09PWQsaD0iMTAwJSI9PT1zfHxzPT09d2luZG93LmlubmVySGVpZ2h0KyJweCJ8fHM9PT13aW5kb3cuaW5uZXJIZWlnaHQtdC5zY3JvbGxCYXJXaWR0aCsicHgifHwiYXV0byI9PT1zfHwiMTAwdmgiPT09czshbCYmMCE9PWx8fCJhdXRvIj09PW4uc3R5bGUucmlnaHR8fCJhYnNvbHV0ZSI9PT1yfHxtP20mJiFoJiYobi5zdHlsZS53aWR0aD0iY2FsYygxMDB2dyAtICIrdC5zY3JvbGxCYXJXaWR0aCsicHgpIik6bi5zdHlsZS5yaWdodD10LnNjcm9sbEJhcldpZHRoK2wrInB4In19fSkpLGkubGVuZ3RoJiYodC5kZWxheT1NYXRoLm1heC5hcHBseShudWxsLGkpKX19fWZ1bmN0aW9uIHRfc2Nyb2xsQmFyV2lkdGhDb21wZW5zYXRvcl9fY2FuY2VsKCl7dmFyIHQ9d2luZG93LnNjcm9sbEJhcldpZHRoQ29tcGVuc2F0b3I7dCYmdC5pc0luaXRlZCYmKHQuaXNJbml0ZWQ9ITEsdC5kZWxheT0wLGRvY3VtZW50LmJvZHkuaGFzQXR0cmlidXRlKCJkYXRhLXRpbGRhLWluaXRpYWwtcGFkZGluZy1yaWdodCIpPyhkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodD1kb2N1bWVudC5ib2R5LmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1pbml0aWFsLXBhZGRpbmctcmlnaHQiKSxkb2N1bWVudC5ib2R5LnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS10aWxkYS1pbml0aWFsLXBhZGRpbmctcmlnaHQiKSk6ZG9jdW1lbnQuYm9keS5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgicGFkZGluZy1yaWdodCIpLGRvY3VtZW50LmJvZHkuc3R5bGUucmVtb3ZlUHJvcGVydHkoImhlaWdodCIpLGRvY3VtZW50LmJvZHkuc3R5bGUucmVtb3ZlUHJvcGVydHkoIm1pbi1oZWlnaHQiKSxkb2N1bWVudC5ib2R5LnN0eWxlLnJlbW92ZVByb3BlcnR5KCJvdmVyZmxvdyIpLEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodC5maXhlZEVsZW1lbnRzLChmdW5jdGlvbih0KXt2YXIgZT10LmVsLG49ZS5jbGFzc0xpc3QuY29udGFpbnMoInRuLWF0b21fX3N0aWNreS13cmFwcGVyIil8fGUuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0bi1hdG9tX19zYnMtYW5pbS13cmFwcGVyIik7ZS5oYXNBdHRyaWJ1dGUoImRhdGEtdGlsZGEtaW5pdGlhbC1yaWdodCIpPyhlLnN0eWxlLnJpZ2h0PWUuZ2V0QXR0cmlidXRlKCJkYXRhLXRpbGRhLWluaXRpYWwtcmlnaHQiKSxlLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS10aWxkYS1pbml0aWFsLXJpZ2h0IikpOmUuc3R5bGUucmVtb3ZlUHJvcGVydHkoInJpZ2h0IiksZS5oYXNBdHRyaWJ1dGUoImRhdGEtdGlsZGEtaW5pdGlhbC13aWR0aCIpPyhlLnN0eWxlLndpZHRoPWUuZ2V0QXR0cmlidXRlKCJkYXRhLXRpbGRhLWluaXRpYWwtd2lkdGgiKSxlLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS10aWxkYS1pbml0aWFsLXdpZHRoIikpOihlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ3aWR0aCIpLG4mJihlLnN0eWxlLndpZHRoPSJpbmhlcml0IikpfSkpKX1mdW5jdGlvbiB0X3RyaWdnZXJFdmVudCh0LGUpe3ZhciBuO2RvY3VtZW50LmNyZWF0ZUV2ZW50PyhuPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJIVE1MRXZlbnRzIikpLmluaXRFdmVudChlLCEwLCExKTpkb2N1bWVudC5jcmVhdGVFdmVudE9iamVjdCYmKChuPWRvY3VtZW50LmNyZWF0ZUV2ZW50T2JqZWN0KCkpLmV2ZW50VHlwZT1lKSxuLmV2ZW50TmFtZT1lLHQuZGlzcGF0Y2hFdmVudD90LmRpc3BhdGNoRXZlbnQobik6dC5maXJlRXZlbnQ/dC5maXJlRXZlbnQoIm9uIituLmV2ZW50VHlwZSxuKTp0W2VdP3RbZV0oKTp0WyJvbiIrZV0mJnRbIm9uIitlXSgpfWZ1bmN0aW9uIHRfbG9hZEpzRmlsZSh0LGUpe2lmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmNePSInK3QrJyJdJykpZSYmZSgpO2Vsc2V7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7bi50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiLG4uc3JjPXQsZSYmbi5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixlKSxuLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoZnVuY3Rpb24oZSl7dmFyIG49ZS5tZXNzYWdlfHwiZW1wdHkgbWVzc2FnZSI7dGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gbG9hZCAiK3QrIiBzY3JpcHQ6ICIrbix7Y2F1c2U6ZX0pfSkpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobil9fWZ1bmN0aW9uIHRfbG9hZENTU0ZpbGUodCxlKXtpZihkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdsaW5rW2hyZWZePSInK3QrJyJdJykpZSYmZSgpO2Vsc2V7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpO24ucmVsPSJzdHlsZXNoZWV0IixuLnR5cGU9InRleHQvY3NzIixuLm1lZGlhPSJhbGwiLG4uaHJlZj10LG4uY3Jvc3NPcmlnaW49ImFub255bW91cyIsZSYmbi5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixlKSxuLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoZnVuY3Rpb24oZSl7dmFyIG49ZS5tZXNzYWdlfHwiZW1wdHkgbWVzc2FnZSI7dGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gbG9hZCAiK3QrIiBzdHlsZTogIituLHtjYXVzZTplfSl9KSksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChuKX19ZnVuY3Rpb24gdF9zY3JvbGxUbyh0LGUpe2lmKHQpe3ZhciBuPWV8fHt9LGk9bi51c2VOYXRpdmVTY3JvbGxUbyxvPW4uZHVyYXRpb24scj1uLmJlaGF2aW9yLGE9dm9pZCAwPT09cj8iaW5zdGFudCI6cixsPW4ub2Zmc2V0LGQ9dm9pZCAwPT09bD8wOmwscz1NYXRoLm1heChwYXJzZUludCh0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCt3aW5kb3cuc2Nyb2xsWS1kLDEwKSwwKTtpfHwiaW5zdGFudCI9PT1hP3dpbmRvdy5zY3JvbGxUbyh7bGVmdDowLHRvcDpzLGJlaGF2aW9yOmF9KTp0X3Ntb290aFNjcm9sbFRvKHMsbyl9fWZ1bmN0aW9uIHRfc21vb3RoU2Nyb2xsVG8odCxlKXt2b2lkIDA9PT1lJiYoZT01MDApO3ZhciBuPWRvY3VtZW50LmJvZHksaT13aW5kb3cuc2Nyb2xsWXx8d2luZG93LnBhZ2VZT2Zmc2V0LG89dC1pLHI9cGVyZm9ybWFuY2Uubm93KCk7ZnVuY3Rpb24gYSh0KXtyZXR1cm4gTWF0aC5wb3codCwyKX1mdW5jdGlvbiBsKCl7dmFyIGQ9cGVyZm9ybWFuY2Uubm93KCkscz1NYXRoLm1pbigoZC1yKS9lLDEpLGM9YShzKTt3aW5kb3cuc2Nyb2xsVG8oMCxpK28qYyksczwxP3JlcXVlc3RBbmltYXRpb25GcmFtZShsKToobi5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtc2Nyb2xsIiksbi5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtc2Nyb2xsYWJsZSIpLHdpbmRvdy5zY3JvbGxUbygwLHQpKX1uLnNldEF0dHJpYnV0ZSgiZGF0YS1zY3JvbGwiLCJ0cnVlIiksbi5zZXRBdHRyaWJ1dGUoImRhdGEtc2Nyb2xsYWJsZSIsInRydWUiKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUobCl9d2luZG93LmJyb3dzZXJMYW5nPSh3aW5kb3cubmF2aWdhdG9yLnVzZXJMYW5ndWFnZXx8d2luZG93Lm5hdmlnYXRvci5sYW5ndWFnZSkudG9VcHBlckNhc2UoKS5zbGljZSgwLDIpLHdpbmRvdy50aWxkYUJyb3dzZXJMYW5nPXdpbmRvdy5icm93c2VyTGFuZyx0X29uUmVhZHkoKGZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKTtpZih0KXZhciBlPXQuZ2V0QXR0cmlidXRlKCJkYXRhLXRpbGRhLXByb2plY3QtbGFuZyIpO2UmJih3aW5kb3cuYnJvd3Nlckxhbmc9ZSl9KSksdF9vblJlYWR5KChmdW5jdGlvbigpe3ZhciB0PXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LGU9LTEhPT10LmluZGV4T2YoIkluc3RhZ3JhbSIpLG49LTEhPT10LmluZGV4T2YoIkZCQVYiKSxpPS0xIT09dC5pbmRleE9mKCJZYVNlYXJjaEJyb3dzZXIiKSxvPS0xIT09dC5pbmRleE9mKCJTYW1zdW5nQnJvd3NlciIpLHI9LTEhPT10LmluZGV4T2YoIkR1Y2tEdWNrR28iKSxhO2lmKC0xIT09dC5pbmRleE9mKCJBbmRyb2lkIikmJihufHxlfHxpfHxvfHxyKSl7dmFyIGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpO2wuc3R5bGUubGluZUhlaWdodD0iMTAwcHgiLGwuc3R5bGUucGFkZGluZz0iMCIsbC5zdHlsZS5tYXJnaW49IjAiLGwuc3R5bGUuaGVpZ2h0PSJhdXRvIixsLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsbC5zdHlsZS5vcGFjaXR5PSIwLjAwMSIsbC5pbm5lclRleHQ9ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobCk7dmFyIGQ9MTAwL2wuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O2wucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChsKSxkPC45OCYmZG9jdW1lbnQuYm9keS5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWVuZCIsJzxzdHlsZT4udDM5NiBbZGF0YS1lbGVtLXR5cGU9InRleHQiXSAudG4tYXRvbSB7em9vbTogJysxMDAqZCsiJTt9PC9zdHlsZT4iKX13aW5kb3cuaXNpT1MmJiF3aW5kb3cuTVNTdHJlYW0mJihkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCItd2Via2l0LXRleHQtc2l6ZS1hZGp1c3QiLCIxMDAlIiksZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eSgidGV4dC1zaXplLWFkanVzdCIsIjEwMCUiKSl9KSksdF9vblJlYWR5KChmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpLGU7cmV0dXJuIHQmJnQuZ2V0QXR0cmlidXRlKCJkYXRhLXRpbGRhLXJvb3Qtem9uZSIpfHwiY29tIn1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImh0bWwiKSxuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LXRpbGRhbGFiZWwiKSxpPWUub2Zmc2V0SGVpZ2h0O2lmKGRvY3VtZW50LmJvZHkmJihpPU1hdGgubWF4KGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0LGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0LGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0LGUub2Zmc2V0SGVpZ2h0KSksKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aWxkYWNvcHkiKXx8bikmJm4ucXVlcnlTZWxlY3RvckFsbCgiZGl2IikpaSs3MD53aW5kb3cuaW5uZXJIZWlnaHQmJm4mJm4uc2V0QXR0cmlidXRlKCJzdHlsZSIsImRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDsgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7IHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IHBvaW50ZXItZXZlbnRzOiBhbGwgIWltcG9ydGFudDsgb3BhY2l0eTogMSAhaW1wb3J0YW50OyBtYXJnaW46IDAgIWltcG9ydGFudDsgei1pbmRleDogMSAhaW1wb3J0YW50Iik7ZWxzZXtmb3IodmFyIG89ZG9jdW1lbnQuYm9keS5jaGlsZE5vZGVzLHI9W10sYT0wO2E8by5sZW5ndGg7YSsrKXt2YXIgbD1vW2FdOzg9PT1sLm5vZGVUeXBlJiZyLnB1c2gobCl9Zm9yKHZhciBhPTA7YTxyLmxlbmd0aDthKyspLTEhPT1yW2FdLm5vZGVWYWx1ZS5pbmRleE9mKCIndCByZW1vdmUgdGhpcyBsIikmJmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbGxyZWNvcmRzIikuaW5zZXJ0QWRqYWNlbnRIVE1MKCJhZnRlcmVuZCIsJzxkaXYgY2xhc3M9InQtdGlsZGFsYWJlbCB0LXRpbGRhbGFiZWwtZnJlZSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDsgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7IHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IHBvaW50ZXItZXZlbnRzOiBhbGwgIWltcG9ydGFudDsgb3BhY2l0eTogMSAhaW1wb3J0YW50OyBtYXJnaW46IDAgIWltcG9ydGFudDsgei1pbmRleDogOTk5MDAgIWltcG9ydGFudCI+PGRpdiBjbGFzcz0idC10aWxkYWxhYmVsLWZyZWVfX21haW4iPjxhIGhyZWY9Imh0dHBzOi8vdGlsZGEuY2MiIHRhcmdldD0iX2JsYW5rIiBzdHlsZT0icGFkZGluZy1ib3R0b206MTJweDsgZGlzcGxheTogYmxvY2s7Ij48aW1nIHN0eWxlPSJ3aWR0aDo0MHB4OyIgc3JjPSJodHRwczovL3N0YXRpYy50aWxkYWNkbi4nK3QoKSsnL2ltZy90aWxkYWNvcHkucG5nIj48L2E+PGRpdiBzdHlsZT0icGFkZGluZy1ib3R0b206IDE1cHg7Ij5UaGlzIHNpdGUgd2FzIG1hZGUgb24gPGEgaHJlZj0iaHR0cHM6Ly90aWxkYS5jYyIgdGFyZ2V0PSJfYmxhbmsiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOmluaGVyaXQ7Ij5UaWxkYSDigJQgYSB3ZWJzaXRlIGJ1aWxkZXI8L2E+IHRoYXQgaGVscHMgdG8mbmJzcDtjcmVhdGUgYSZuYnNwO3dlYnNpdGUgd2l0aG91dCBhbnkgY29kZTwvZGl2PjxhIGhyZWY9Imh0dHBzOi8vdGlsZGEuY2MvcmVnaXN0cmF0aW9uLyIgdGFyZ2V0PSJfYmxhbmsiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmc6IDEwcHggMjBweDsgZm9udC1zaXplOiAxM3B4OyBib3JkZXItcmFkaXVzOiA1MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmE4NjY5OyBjb2xvcjogI2ZmZjsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyI+Q3JlYXRlIGEgd2Vic2l0ZTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0LXRpbGRhbGFiZWwtZnJlZV9fbGlua3Mtd3IiPjxhIGNsYXNzPSJ0LXRpbGRhbGFiZWwtZnJlZV9fdHh0LWxpbmsiIGhyZWY9Imh0dHBzOi8vaGVscCcrKCJSVSI9PT13aW5kb3cuYnJvd3Nlckxhbmc/Ii1ydSI6IiIpKycudGlsZGEuY2Mvd2hpdGUtbGFiZWwiIHRhcmdldD0iX2JsYW5rIj4nKygiUlUiPT09d2luZG93LmJyb3dzZXJMYW5nPyLQmtCw0Log0YPQtNCw0LvQuNGC0Ywg0Y3RgtC+0YIg0LvQtdC50LHQuyI6IkhvdyB0byByZW1vdmUgdGhpcyBibG9jayIpKyI/PC9hPjwvZGl2PjwvZGl2PiIpfX0pLDUwMCl9KSksdF9vblJlYWR5KChmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbGxyZWNvcmRzIik7aWYoIXdpbmRvdy5pc01vYmlsZSYmdCYmInllcyIhPT10LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9ja3MtYW5pbWF0aW9ub2ZmIikmJiExPT09d2luZG93LmlzU2VhcmNoQm90KXtmb3IodmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnIiKSxuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpLG89KGk9ZVtuXSkuZ2V0QXR0cmlidXRlKCJzdHlsZSIpO28mJi0xIT09by5pbmRleE9mKCJiYWNrZ3JvdW5kLWNvbG9yIikmJmkuc2V0QXR0cmlidXRlKCJkYXRhLWFuaW1hdGlvbmFwcGVhciIsIm9mZiIpfWZvcih2YXIgcj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiF0LmdldEF0dHJpYnV0ZSgiZGF0YS1hbmltYXRpb25hcHBlYXIiKSYmIXQuZ2V0QXR0cmlidXRlKCJkYXRhLXNjcmVlbi1taW4iKSYmIXQuZ2V0QXR0cmlidXRlKCJkYXRhLXNjcmVlbi1tYXgiKX0pKSxuPTA7bjxyLmxlbmd0aDtuKyspe3ZhciBpLGE9KGk9cltuXSkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wK3dpbmRvdy5wYWdlWU9mZnNldCxsPXdpbmRvdy5wYWdlWU9mZnNldCt3aW5kb3cuaW5uZXJIZWlnaHQrMzAwO3RfYWRkQ2xhc3MoaSxhPjFlMyYmYT5sPyJyX2hpZGRlbiI6InJfc2hvd2VkIiksdF9hZGRDbGFzcyhpLCJyX2FuaW0iKX1pZihyLmxlbmd0aCl7ZnVuY3Rpb24gZCgpe2Zvcih2YXIgdD1yLmxlbmd0aC0xO3Q+PTA7dC0tKXt2YXIgZT1yW3RdLG4saT0wO2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wK3dpbmRvdy5wYWdlWU9mZnNldDwoaT1lLm9mZnNldEhlaWdodDw9MTAwP3dpbmRvdy5wYWdlWU9mZnNldCt3aW5kb3cuaW5uZXJIZWlnaHQ6d2luZG93LnBhZ2VZT2Zmc2V0K3dpbmRvdy5pbm5lckhlaWdodC0xMDApJiYodF9yZW1vdmVDbGFzcyhlLCJyX2hpZGRlbiIpLHRfYWRkQ2xhc3MoZSwicl9zaG93ZWQiKSwocj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChyKSkuc3BsaWNlKHQsMSkpfX12YXIgcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1yZWNvcmQtdHlwZT0iNDAwIl0nKTtpZihzLmxlbmd0aD4wKXZhciBjPTAsdT0wLG09c2V0SW50ZXJ2YWwoKGZ1bmN0aW9uKCl7MzAwPT09KHUrPTEpJiZjbGVhckludGVydmFsKG0pO2Zvcih2YXIgdD0wO3Q8cy5sZW5ndGg7dCsrKXt2YXIgZTsieWVzIj09PXNbdF0uZ2V0QXR0cmlidXRlKCJkYXRhLWhpZGluZy1jb21wbGV0ZWQiKSYmKGMrPTEpfWM9PT1zLmxlbmd0aCYmKGQoKSxjbGVhckludGVydmFsKG0pKX0pLDEwMCk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdF90aHJvdHRsZSgoZnVuY3Rpb24oKXtkKCl9KSwyMDApKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2QoKX0pKX19dmFyIGg9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaHRtbCIpLHA9ZG9jdW1lbnQuYm9keTsibm9uZSI9PT1oLnN0eWxlLmRpc3BsYXkmJihoLnN0eWxlLmRpc3BsYXk9ImJsb2NrIik7dmFyIHc9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtdGlsZGFsYWJlbCIpLGY7KGY9cD9NYXRoLm1heChwLnNjcm9sbEhlaWdodCxwLm9mZnNldEhlaWdodCxwLmNsaWVudEhlaWdodCxoLm9mZnNldEhlaWdodCk6aC5vZmZzZXRIZWlnaHQpKzcwPHdpbmRvdy5pbm5lckhlaWdodD93JiYody5zdHlsZS5kaXNwbGF5PSJub25lIik6dyYmdy5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTogYmxvY2sgIWltcG9ydGFudCIpfSkpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3dpbmRvdy53aW5XaWR0aD13aW5kb3cuaW5uZXJXaWR0aCx3aW5kb3cud2luSGVpZ2h0PXdpbmRvdy5pbm5lckhlaWdodH1mdW5jdGlvbiBlKCl7dmFyIHQ9d2luZG93LmlzTW9iaWxlP2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDp3aW5kb3cuaW5uZXJXaWR0aCxlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5yW2RhdGEtc2NyZWVuLW1heF0sIC5yW2RhdGEtc2NyZWVuLW1pbl0iKSxuLGksbzstMSE9PW5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiSW5zdGFncmFtIikmJih0PXNjcmVlbi53aWR0aCk7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBhPWVbcl0sbD1hLmlkLnJlcGxhY2UoInJlYyIsIiIpO2lmKCJ5ZXMiPT09YS5nZXRBdHRyaWJ1dGUoImRhdGEtY29ubmVjdC13aXRoLXRhYiIpfHxkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1wb3B1cC1yZWMtaWRzPSInK2wrJyJdJykpcmV0dXJuO289Z2V0Q29tcHV0ZWRTdHlsZShhKS5kaXNwbGF5LChuPWEuZ2V0QXR0cmlidXRlKCJkYXRhLXNjcmVlbi1tYXgiKSl8fChuPTFlNCksKGk9YS5nZXRBdHRyaWJ1dGUoImRhdGEtc2NyZWVuLW1pbiIpKXx8KGk9MCksbj1wYXJzZUludChuKSwoaT1wYXJzZUludChpKSk8PW4mJih0PD1uJiZ0Pmk/ImJsb2NrIiE9PW8mJihhLnN0eWxlLmRpc3BsYXk9ImJsb2NrIik6Im5vbmUiIT09byYmKGEuc3R5bGUuZGlzcGxheT0ibm9uZSIpKX19dF9vblJlYWR5KChmdW5jdGlvbigpe3QoKSxlKCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdF90aHJvdHRsZSgoZnVuY3Rpb24oKXt0KCl9KSwyMDApKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0X3Rocm90dGxlKChmdW5jdGlvbigpe2UoKX0pLDIwMCkpfSkpfSgpLGZ1bmN0aW9uKCl7dmFyIHQ9LTEhPT1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkluc3RhZ3JhbSIpO2Z1bmN0aW9uIGUoKXtmb3IodmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnQtY292ZXJfX2NhcnJpZXIiKSxlPTAsbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaSxvO2lmKChvPShpPXRbbl0pLnN0eWxlKS5oZWlnaHQuaW5kZXhPZigidmgiKT4tMSl7ZT1wYXJzZUludChvLmhlaWdodCwxMCkvMTAwO3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3IuaWQ9InRlbXBEaXYiLHIuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMHZoO3Zpc2liaWxpdHk6aGlkZGVuOyIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyKTt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVtcERpdiIpLGw9cGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZShhKS5oZWlnaHQucmVwbGFjZSgicHgiLCIiKSk7dF9yZW1vdmVFbChhKTt2YXIgZD1NYXRoLnJvdW5kKGwqZSkrInB4IixzPWkuY2xvc2VzdCgiLnQtY292ZXIiKTtpZihzKXt2YXIgYz1zLnF1ZXJ5U2VsZWN0b3IoIi50LWNvdmVyX19maWx0ZXIiKSx1PXMucXVlcnlTZWxlY3RvcigiLnQtY292ZXJfX3dyYXBwZXIiKTtzLnN0eWxlLmhlaWdodD1kLGMmJihjLnN0eWxlLmhlaWdodD1kKSx1JiYodS5zdHlsZS5oZWlnaHQ9ZCl9by5oZWlnaHQ9ZH19dmFyIG09ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtaGVpZ2h0LWNvcnJlY3QtdmhdIiksaD13aW5kb3cuaW5uZXJIZWlnaHQ7ZT0wO2Zvcih2YXIgbj0wO248bS5sZW5ndGg7bisrKXt2YXIgaSxvOyhvPShpPW1bbl0pLnN0eWxlKS5oZWlnaHQuaW5kZXhPZigidmgiKT4tMSYmKGU9cGFyc2VJbnQoby5oZWlnaHQpLzEwMCxkPWgrInB4IixvLmhlaWdodD1kKX19ZnVuY3Rpb24gbigpe3ZhciBlPXQ/c2NyZWVuLndpZHRoOndpbmRvdy5pbm5lcldpZHRoO3dpbmRvdy5pc01vYmlsZSYmIXQmJihlPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCk7Zm9yKHZhciBuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5yOm5vdChbZGF0YS1yZWNvcmQtdHlwZT0iMzk2Il0pOm5vdChbZGF0YS1yZWNvcmQtdHlwZT0iMTAwMyJdKScpLGk9W10sbz0wO288bi5sZW5ndGg7bysrKXt2YXIgcj1uW29dLGE9Z2V0Q29tcHV0ZWRTdHlsZShyKTsibm9uZSIhPT1hLmRpc3BsYXkmJiJoaWRkZW4iIT09YS52aXNpYmlsaXR5JiYiMCIhPT1hLm9wYWNpdHkmJmkucHVzaChyKX1mb3IodmFyIGw9MDtsPGkubGVuZ3RoO2wrKylmb3IodmFyIGQ9aVtsXSxzPWQucXVlcnlTZWxlY3RvckFsbCgnZGl2Om5vdChbZGF0YS1hdXRvLWNvcnJlY3QtbW9iaWxlLXdpZHRoPSJmYWxzZSJdKTpub3QoLnRuLWVsZW0pOm5vdCgudG4tYXRvbSk6bm90KC50bi1hdG9tX19zYnMtYW5pbS13cmFwcGVyKTpub3QoLnRuLWF0b21fX3ByeC13cmFwcGVyKTpub3QoLnRuLWF0b21fX3ZpZGVvaWZyYW1lKTpub3QoLnRuLWF0b21fX3N0aWNreS13cmFwcGVyKTpub3QoLnQtc3RvcmVfX3JlbGV2YW50c19fY29udGFpbmVyKTpub3QoLnQtc2xkc19faXRlbXMtd3JhcHBlcik6bm90KC5qcy1wcm9kdWN0LWNvbnRyb2xzLXdyYXBwZXIpOm5vdCguanMtcHJvZHVjdC1lZGl0aW9uLW9wdGlvbik6bm90KC50LXByb2R1Y3RfX29wdGlvbi12YXJpYW50cyknKSxjPTA7YzxzLmxlbmd0aDtjKyspe3ZhciB1PXNbY107ZC5zdHlsZS53b3JkQnJlYWs9IiI7dmFyIG09dF9vdXRlcldpZHRoKHUpO2lmKG0+ZSl7aWYoInllcyI9PT11LmdldEF0dHJpYnV0ZSgiW2RhdGEtY3VzdG9tc3R5bGVdIikmJiJmYWxzZSI9PT11LnBhcmVudE5vZGUuZ2V0QXR0cmlidXRlKCJbZGF0YS1hdXRvLWNvcnJlY3QtbW9iaWxlLXdpZHRoXSIpKXJldHVybjtjb25zb2xlLmxvZygiQmxvY2sgbm90IG9wdGltaXplZCBmb3IgbW9iaWxlIHdpZHRoLiBCbG9jayB3aWR0aDoiK20rIiBCbG9jayBpZDoiK2QuZ2V0QXR0cmlidXRlKCJpZCIpKSxjb25zb2xlLmxvZyh1KSxkLnN0eWxlLm92ZXJmbG93PSJhdXRvIixkLnN0eWxlLndvcmRCcmVhaz1tLTM+ZT8iYnJlYWstd29yZCI6IiJ9fX1mdW5jdGlvbiBpKHQpe2Zvcih2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudC10ZXh0Om5vdCgudG4tZWxlbSk6bm90KC50bi1hdG9tKTpub3QoW2RhdGEtYXV0by1jb3JyZWN0LWxpbmUtaGVpZ2h0PSJmYWxzZSJdKSwgLnQtbmFtZTpub3QoLnRuLWVsZW0pOm5vdCgudG4tYXRvbSk6bm90KFtkYXRhLWF1dG8tY29ycmVjdC1saW5lLWhlaWdodD0iZmFsc2UiXSksIC50LXRpdGxlOm5vdCgudG4tZWxlbSk6bm90KC50bi1hdG9tKTpub3QoW2RhdGEtYXV0by1jb3JyZWN0LWxpbmUtaGVpZ2h0PSJmYWxzZSJdKSwgLnQtZGVzY3I6bm90KC50bi1lbGVtKTpub3QoLnRuLWF0b20pOm5vdChbZGF0YS1hdXRvLWNvcnJlY3QtbGluZS1oZWlnaHQ9ImZhbHNlIl0pLCAudC1oZWFkaW5nOm5vdCgudG4tZWxlbSk6bm90KC50bi1hdG9tKTpub3QoW2RhdGEtYXV0by1jb3JyZWN0LWxpbmUtaGVpZ2h0PSJmYWxzZSJdKSwgLnQtdGV4dC1pbXBhY3Q6bm90KC50bi1lbGVtKTpub3QoLnRuLWF0b20pOm5vdChbZGF0YS1hdXRvLWNvcnJlY3QtbGluZS1oZWlnaHQ9ImZhbHNlIl0pLCAudC1zdWJ0aXRsZTpub3QoLnRuLWVsZW0pOm5vdCgudG4tYXRvbSk6bm90KFtkYXRhLWF1dG8tY29ycmVjdC1saW5lLWhlaWdodD0iZmFsc2UiXSksIC50LXVwdGl0bGU6bm90KC50bi1lbGVtKTpub3QoLnRuLWF0b20pOm5vdChbZGF0YS1hdXRvLWNvcnJlY3QtbGluZS1oZWlnaHQ9ImZhbHNlIl0pJyksbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dLG89aS5nZXRBdHRyaWJ1dGUoInN0eWxlIik7aWYobyl7dmFyIHI9InJlbSI9PT1pLmdldEF0dHJpYnV0ZSgiZGF0YS1hdXRvLWNvcnJlY3QtZm9udC1zaXplIiksYTtpZihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg+dClhPShhPW8ucmVwbGFjZSgibGluZWhlaWdodCIsImxpbmUtaGVpZ2h0IikpLnJlcGxhY2UoImZvbnRzaXplIiwiZm9udC1zaXplIiksaS5zZXRBdHRyaWJ1dGUoInN0eWxlIixhKTtlbHNle2lmKC0xPT09by5pbmRleE9mKCJmb250LXNpemUiKSljb250aW51ZTtpZihwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKGkpLmZvbnRTaXplLnJlcGxhY2UoInB4IiwiIikpPDI2KWNvbnRpbnVlO2E9by5yZXBsYWNlKCJsaW5lLWhlaWdodCIsImxpbmVoZWlnaHQiKSxhPXI/YS5yZXBsYWNlKC9mb250LXNpemUuKnB4Oy9naSwiZm9udC1zaXplOiAxLjZyZW07Iik6YS5yZXBsYWNlKCJmb250LXNpemUiLCJmb250c2l6ZSIpLGkuc2V0QXR0cmlidXRlKCJzdHlsZSIsYSl9fX19KHdpbmRvdy5pc01vYmlsZXx8d2luZG93LnBhcmVudC5pc1BhZ2VQcmV2aWV3KSYmKHRfb25SZWFkeSgoZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGUsNDAwKX0pKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsKGZ1bmN0aW9uKCl7c2V0VGltZW91dChlLDQwMCl9KSksd2luZG93LmlubmVyV2lkdGg8NDgwfHx3aW5kb3cuaXNNb2JpbGUmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDw0ODB8fHQmJnNjcmVlbi53aWR0aDw0ODA/KHRfb25SZWFkeSgoZnVuY3Rpb24oKXtmb3IodmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtY3VzdG9tc3R5bGU9InllcyJdJyksZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZmllbGRdIHNwYW4sIFtmaWVsZF0gc3Ryb25nLCBbZmllbGRdIGVtLCBbZmllbGRdIGEiKSxuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBvPXRbbl07cGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZShvKS5mb250U2l6ZS5yZXBsYWNlKCJweCIsIiIpKT4yNiYmKG8uc3R5bGUuZm9udFNpemU9bnVsbCxvLnN0eWxlLmxpbmVIZWlnaHQ9bnVsbCl9Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBvPWVbbl07cGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZShvKS5mb250U2l6ZS5yZXBsYWNlKCJweCIsIiIpKT4yNiYmKG8uc3R5bGUuZm9udFNpemU9bnVsbCl9aSg0ODApLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsKGZ1bmN0aW9uKCl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXtpKDQ4MCl9KSw1MDApfSkpfSkpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixuKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigib3JpZW50YXRpb25jaGFuZ2UiLChmdW5jdGlvbigpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7bigpfSksNTAwKX0pKSk6KHdpbmRvdy5pbm5lcldpZHRoPDkwMHx8d2luZG93LmlzTW9iaWxlJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg8OTAwfHx0JiZzY3JlZW4ud2lkdGg8OTAwKSYmdF9vblJlYWR5KChmdW5jdGlvbigpe2Zvcih2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1jdXN0b21zdHlsZT0ieWVzIl0nKSxlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltmaWVsZF0gc3BhbiwgW2ZpZWxkXSBzdHJvbmcsIFtmaWVsZF0gZW0sIFtmaWVsZF0gYSIpLG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXTtwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKGkpLmZvbnRTaXplLnJlcGxhY2UoInB4IiwiIikpPjMwJiYoaS5zdHlsZS5mb250U2l6ZT1udWxsLGkuc3R5bGUubGluZUhlaWdodD1udWxsKX1mb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9ZVtuXTtwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKGkpLmZvbnRTaXplLnJlcGxhY2UoInB4IiwiIikpPjMwJiYoaS5zdHlsZS5mb250U2l6ZT1udWxsKX1mb3IodmFyIG89ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnQtdGV4dDpub3QoLnRuLWVsZW0pOm5vdCgudG4tYXRvbSk6bm90KFtkYXRhLWF1dG8tY29ycmVjdC1saW5lLWhlaWdodD0iZmFsc2UiXSksIC50LW5hbWU6bm90KC50bi1lbGVtKTpub3QoLnRuLWF0b20pOm5vdChbZGF0YS1hdXRvLWNvcnJlY3QtbGluZS1oZWlnaHQ9ImZhbHNlIl0pLCAudC10aXRsZTpub3QoLnRuLWVsZW0pOm5vdCgudG4tYXRvbSk6bm90KFtkYXRhLWF1dG8tY29ycmVjdC1saW5lLWhlaWdodD0iZmFsc2UiXSksIC50LWRlc2NyOm5vdCgudG4tZWxlbSk6bm90KC50bi1hdG9tKTpub3QoW2RhdGEtYXV0by1jb3JyZWN0LWxpbmUtaGVpZ2h0PSJmYWxzZSJdKSwgLnQtaGVhZGluZzpub3QoLnRuLWVsZW0pOm5vdCgudG4tYXRvbSk6bm90KFtkYXRhLWF1dG8tY29ycmVjdC1saW5lLWhlaWdodD0iZmFsc2UiXSksIC50LXRleHQtaW1wYWN0Om5vdCgudG4tZWxlbSk6bm90KC50bi1hdG9tKTpub3QoW2RhdGEtYXV0by1jb3JyZWN0LWxpbmUtaGVpZ2h0PSJmYWxzZSJdKSwgLnQtc3VidGl0bGU6bm90KC50bi1lbGVtKTpub3QoLnRuLWF0b20pOm5vdChbZGF0YS1hdXRvLWNvcnJlY3QtbGluZS1oZWlnaHQ9ImZhbHNlIl0pLCAudC11cHRpdGxlOm5vdCgudG4tZWxlbSk6bm90KC50bi1hdG9tKTpub3QoW2RhdGEtYXV0by1jb3JyZWN0LWxpbmUtaGVpZ2h0PSJmYWxzZSJdKScpLG49MDtuPG8ubGVuZ3RoO24rKyl7dmFyIGkscj0oaT1vW25dKS5nZXRBdHRyaWJ1dGUoInN0eWxlIik7aWYociYmci5pbmRleE9mKCJmb250LXNpemUiKT4tMSYmcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZShpKS5mb250U2l6ZS5yZXBsYWNlKCJweCIsIiIpKT4zMClpZigicmVtIj09PWkuZ2V0QXR0cmlidXRlKCJkYXRhLWF1dG8tY29ycmVjdC1mb250LXNpemUiKSl7dmFyIGE9ci5yZXBsYWNlKC9mb250LXNpemUuKnB4Oy9naSwiZm9udC1zaXplOiAxLjZyZW07IikucmVwbGFjZSgibGluZS1oZWlnaHQiLCJsaW5laGVpZ2h0Iik7aS5zZXRBdHRyaWJ1dGUoInN0eWxlIixhKX1lbHNle3ZhciBhPXIucmVwbGFjZSgiZm9udC1zaXplIiwiZm9udHNpemUiKS5yZXBsYWNlKCJsaW5lLWhlaWdodCIsImxpbmVoZWlnaHQiKTtpLnNldEF0dHJpYnV0ZSgic3R5bGUiLGEpfX19KSkpfSgpLHRfb25SZWFkeSgoZnVuY3Rpb24oKXtzZXRUaW1lb3V0KChmdW5jdGlvbigpe2Zvcih2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhW2hyZWZePSJodHRwIl1bdGFyZ2V0PSJfYmxhbmsiXScpLGU9MDtlPHQubGVuZ3RoO2UrKyl7dmFyIG49dFtlXSxpPW4uZ2V0QXR0cmlidXRlKCJyZWwiKXx8IiI7IiI9PT1pP24uc2V0QXR0cmlidXRlKCJyZWwiLCJub29wZW5lciIpOi0xPT09aS5pbmRleE9mKCJub29wZW5lciIpJiZuLnNldEF0dHJpYnV0ZSgicmVsIixpKyIgbm9vcGVuZXIiKX19KSwyNTAwKX0pKSxmdW5jdGlvbih0LGUpe3Qub25lcnJvcj1mdW5jdGlvbihlLG4saSxvLHIpeyJvYmplY3QiIT10eXBlb2YgdC50X2pzZXJyb3JzJiYodC50X2pzZXJyb3JzPVtdKSx0LnRfanNlcnJvcnMucHVzaCh7bWVzc2FnZTplLGZpbGVuYW1lOm4sbGluZW5vOmksY29sbm86byxlcnJvcjpyfSl9fSh3aW5kb3csTWF0aCksdF9vblJlYWR5KChmdW5jdGlvbigpe2RvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigicG9wdXBTaG93ZWQiLHRfc2Nyb2xsQmFyV2lkdGhDb21wZW5zYXRvcl9faW5pdCksZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJwb3B1cEhpZGRlbiIsKGZ1bmN0aW9uKCl7dmFyIHQ9d2luZG93LnNjcm9sbEJhcldpZHRoQ29tcGVuc2F0b3I7dCYmKHQuY2FuY2VsVGltZW91dCYmKHdpbmRvdy5jbGVhclRpbWVvdXQodC5jYW5jZWxUaW1lb3V0KSx0LmNhbmNlbFRpbWVvdXQ9bnVsbCksdC5jYW5jZWxUaW1lb3V0PXdpbmRvdy5zZXRUaW1lb3V0KChmdW5jdGlvbigpe3QuY2FuY2VsVGltZW91dD1udWxsLHRfc2Nyb2xsQmFyV2lkdGhDb21wZW5zYXRvcl9fY2FuY2VsKCl9KSxNYXRoLm1pbigzMDAsdC5kZWxheSkpKX0pKX0pKSx3aW5kb3cuc2Nyb2xsQmFyV2lkdGhDb21wZW5zYXRvcjsKCndpbmRvdy5pc01vYmlsZT0hMTtpZigvQW5kcm9pZHx3ZWJPU3xpUGhvbmV8aVBhZHxpUG9kfEJsYWNrQmVycnl8SUVNb2JpbGV8T3BlcmEgTWluaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpe3dpbmRvdy5pc01vYmlsZT0hMH0Kd2luZG93LmlzaU9TPSExO2lmKC9pUGhvbmV8aVBhZHxpUG9kL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSl7d2luZG93LmlzaU9TPSEwfQp3aW5kb3cuaXNpT1NWZXJzaW9uPScnO2lmKHdpbmRvdy5pc2lPUyl7dmFyIHZlcnNpb249KG5hdmlnYXRvci5hcHBWZXJzaW9uKS5tYXRjaCgvT1MgKFxkKylfKFxkKylfPyhcZCspPy8pO2lmKHZlcnNpb24hPT1udWxsKXt3aW5kb3cuaXNpT1NWZXJzaW9uPVtwYXJzZUludCh2ZXJzaW9uWzFdLDEwKSxwYXJzZUludCh2ZXJzaW9uWzJdLDEwKSxwYXJzZUludCh2ZXJzaW9uWzNdfHwwLDEwKV19fQp3aW5kb3cuYnJvd3Nlckxhbmc9KHdpbmRvdy5uYXZpZ2F0b3IudXNlckxhbmd1YWdlfHx3aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlKS50b1VwcGVyQ2FzZSgpLnNsaWNlKDAsMik7d2luZG93LnRpbGRhQnJvd3Nlckxhbmc9d2luZG93LmJyb3dzZXJMYW5nO2Z1bmN0aW9uIHRfdGhyb3R0bGUoZm4sdGhyZXNoaG9sZCxzY29wZSl7dmFyIGxhc3Q7dmFyIGRlZmVyVGltZXI7dGhyZXNoaG9sZHx8KHRocmVzaGhvbGQ9MjUwKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgY29udGV4dD1zY29wZXx8dGhpczt2YXIgbm93PStuZXcgRGF0ZSgpO3ZhciBhcmdzPWFyZ3VtZW50cztpZihsYXN0JiZub3c8bGFzdCt0aHJlc2hob2xkKXtjbGVhclRpbWVvdXQoZGVmZXJUaW1lcik7ZGVmZXJUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bGFzdD1ub3c7Zm4uYXBwbHkoY29udGV4dCxhcmdzKX0sdGhyZXNoaG9sZCl9ZWxzZXtsYXN0PW5vdztmbi5hcHBseShjb250ZXh0LGFyZ3MpfX19CmZ1bmN0aW9uIHQ4NjhfaW5pdFBvcHVwKHJlY2lkKXt2YXIgcmVjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWMnK3JlY2lkKTtpZighcmVjKXJldHVybjtyZWMuc2V0QXR0cmlidXRlKCdkYXRhLWFuaW1hdGlvbmFwcGVhcicsJ29mZicpO3JlYy5zdHlsZS5vcGFjaXR5PScxJzt2YXIgcG9wdXA9cmVjLnF1ZXJ5U2VsZWN0b3IoJy50LXBvcHVwJyk7aWYoIXBvcHVwKXJldHVybjt2YXIgaG9vaz1wb3B1cC5nZXRBdHRyaWJ1dGUoJ2RhdGEtdG9vbHRpcC1ob29rJyk7aWYoIWhvb2spcmV0dXJuO3ZhciBhbmFsaXRpY3M9cG9wdXAuZ2V0QXR0cmlidXRlKCdkYXRhLXRyYWNrLXBvcHVwJyk7dmFyIGN1c3RvbUNvZGVIVE1MPXQ4NjhfX3JlYWRDdXN0b21Db2RlKHJlYyk7dmFyIHJlY0Jsb2Nrcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcucicpO2Zvcih2YXIgaT0wO2k8cmVjQmxvY2tzLmxlbmd0aDtpKyspe3JlY0Jsb2Nrc1tpXS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oZXZlbnQpe3ZhciB0YXJnZXQ9ZXZlbnQudGFyZ2V0O3ZhciBocmVmPXRhcmdldC5jbG9zZXN0KCdhW2hyZWYkPSInK2hvb2srJyJdJyk/dGFyZ2V0OiExO2lmKCFocmVmKXJldHVybjtldmVudC5wcmV2ZW50RGVmYXVsdCgpO3Q4Njhfc2hvd1BvcHVwKHJlYyxjdXN0b21Db2RlSFRNTCk7dF9vbkZ1bmNMb2FkKCd0X3BvcHVwX19yZXNpemVQb3B1cCcsZnVuY3Rpb24oKXt0X3BvcHVwX19yZXNpemVQb3B1cChyZWNpZCl9KTtpZihob29rLnN1YnN0cmluZygwLDcpPT09JyNwb3B1cDonJiZhbmFsaXRpY3MmJndpbmRvdy5UaWxkYSl7dmFyIHZpcnRUaXRsZT1ob29rO3ZpcnRUaXRsZT12aXJ0VGl0bGUuc3Vic3RyaW5nKDcpO1RpbGRhLnNlbmRFdmVudFRvU3RhdGlzdGljcyhhbmFsaXRpY3MsdmlydFRpdGxlKX19KX0KaWYoIXBvcHVwLmdldEF0dHJpYnV0ZSgnZGF0YS1wb3B1cC1pbml0ZWQnKSYmJ011dGF0aW9uT2JzZXJ2ZXInIGluIHdpbmRvdyl7cG9wdXAuc2V0QXR0cmlidXRlKCdkYXRhLXBvcHVwLWluaXRlZCcsJ3llcycpO3ZhciBzdG9yZXM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYm9keSAudC1zdG9yZScpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoc3RvcmVzLGZ1bmN0aW9uKHN0b3JlKXtuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnNMaXN0KXtmb3IodmFyIG11dGF0aW9uIGluIG11dGF0aW9uc0xpc3Qpe3ZhciBldmVudD1tdXRhdGlvbnNMaXN0W211dGF0aW9uXTtpZihldmVudC50eXBlPT09J2F0dHJpYnV0ZXMnKXtpZihldmVudC50YXJnZXQuY2xhc3NOYW1lLmluZGV4T2YoJ3QtcG9wdXBfc2hvdycpIT09LTEpe3BvcHVwLnN0eWxlLnpJbmRleD0nOTk5OTk5OTknO3Q4NjhfaW5pdFBvcHVwKHJlY2lkKTt9fX19KS5vYnNlcnZlKHN0b3JlLHthdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbJ2NsYXNzJ10sc3VidHJlZTohMCx9KX0pfX0KZnVuY3Rpb24gdDg2OF9fcmVhZEN1c3RvbUNvZGUocmVjKXt2YXIgY29kZVdyYXA9cmVjLnF1ZXJ5U2VsZWN0b3IoJy50ODY4IC50ODY4X19jb2RlLXdyYXAnKTtpZighY29kZVdyYXApcmV0dXJuO3ZhciBjdXN0b21Db2RlPWNvZGVXcmFwLmlubmVySFRNTDtyZXR1cm4gY3VzdG9tQ29kZX0KZnVuY3Rpb24gdDg2OF9zaG93UG9wdXAocmVjKXt2YXIgcG9wdXA9cmVjLnF1ZXJ5U2VsZWN0b3IoJy50LXBvcHVwJyk7aWYoIXBvcHVwKXJldHVybjt2YXIgcG9wdXBDb250YWluZXI9cG9wdXAucXVlcnlTZWxlY3RvcignLnQtcG9wdXBfX2NvbnRhaW5lcicpO2lmKCFwb3B1cENvbnRhaW5lcilyZXR1cm47dmFyIGNvZGVXcmFwPXBvcHVwLnF1ZXJ5U2VsZWN0b3IoJy50ODY4X19jb2RlLXdyYXAnKTtpZighY29kZVdyYXApcmV0dXJuO3ZhciB3aW5kb3dXaWR0aD13aW5kb3cuaW5uZXJXaWR0aDt2YXIgc2NyZWVuTWluPXJlYy5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2NyZWVuLW1pbicpO3ZhciBzY3JlZW5NYXg9cmVjLmdldEF0dHJpYnV0ZSgnZGF0YS1zY3JlZW4tbWF4Jyk7aWYoc2NyZWVuTWluJiZ3aW5kb3dXaWR0aDxwYXJzZUludChzY3JlZW5NaW4sMTApKXJldHVybjtpZihzY3JlZW5NYXgmJndpbmRvd1dpZHRoPnBhcnNlSW50KHNjcmVlbk1heCwxMCkpcmV0dXJuO3BvcHVwLnN0eWxlLmRpc3BsYXk9J2Jsb2NrJztjb2RlV3JhcC5zdHlsZS5kaXNwbGF5PSdibG9jayc7dDg2OF9zZXRIZWlnaHQocmVjKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cG9wdXBDb250YWluZXIuY2xhc3NMaXN0LmFkZCgndC1wb3B1cF9fY29udGFpbmVyLWFuaW1hdGVkJyk7cG9wdXAuY2xhc3NMaXN0LmFkZCgndC1wb3B1cF9zaG93Jyl9LDEwMCk7aWYodHlwZW9mIHRfdHJpZ2dlckV2ZW50PT09J2Z1bmN0aW9uJyl0X3RyaWdnZXJFdmVudChkb2N1bWVudC5ib2R5LCdwb3B1cFNob3dlZCcpO2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgndC1ib2R5X3BvcHVwc2hvd2VkJyk7cG9wdXAuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKGV2ZW50KXt2YXIgY29udGFpbmVyPWV2ZW50LnRhcmdldC5jbG9zZXN0KCcudC1wb3B1cF9fY29udGFpbmVyJyk7aWYoIWNvbnRhaW5lcil0ODY4X2Nsb3NlUG9wdXAocmVjKX0pO3ZhciBjbG9zZUJ1dHRvbj1yZWMucXVlcnlTZWxlY3RvcignLnQtcG9wdXBfX2Nsb3NlJyk7aWYoY2xvc2VCdXR0b24pe2Nsb3NlQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpe3Q4NjhfY2xvc2VQb3B1cChyZWMpfSl9CnZhciBidXR0b25zPXJlYy5xdWVyeVNlbGVjdG9yQWxsKCdhW2hyZWYqPSIjIl0nKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGJ1dHRvbnMsZnVuY3Rpb24oYnV0dG9uKXtidXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7dmFyIHVybD1idXR0b24uZ2V0QXR0cmlidXRlKCdocmVmJyk7aWYodXJsLmluZGV4T2YoJyNvcmRlcicpIT09LTEpe3ZhciBwb3B1cENvbnRhaW5lcj1yZWMucXVlcnlTZWxlY3RvcignLnQtcG9wdXBfX2NvbnRhaW5lcicpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt3aGlsZShwb3B1cENvbnRhaW5lci5maXJzdENoaWxkKXtwb3B1cENvbnRhaW5lci5yZW1vdmVDaGlsZChwb3B1cENvbnRhaW5lci5maXJzdENoaWxkKX19LDYwMCl9CmlmKCF1cmx8fHVybC5zdWJzdHJpbmcoMCw3KSE9PScjcHJpY2U6Jyl7dDg2OF9jbG9zZVBvcHVwKHJlYyk7aWYoIXVybHx8dXJsLnN1YnN0cmluZygwLDcpPT09JyNwb3B1cDonKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYodHlwZW9mIHRfdHJpZ2dlckV2ZW50PT09J2Z1bmN0aW9uJyl0X3RyaWdnZXJFdmVudChkb2N1bWVudC5ib2R5LCdwb3B1cFNob3dlZCcpO2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgndC1ib2R5X3BvcHVwc2hvd2VkJyl9LDMwMCl9fX0pfSk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsZnVuY3Rpb24oZXZlbnQpe2lmKGV2ZW50LmtleUNvZGU9PT0yNyl7dDg2OF9jbG9zZVBvcHVwKHJlYyl9fSl9CmZ1bmN0aW9uIHQ4NjhfY2xvc2VQb3B1cChyZWMpe3ZhciBwb3B1cD1yZWMucXVlcnlTZWxlY3RvcignLnQtcG9wdXAnKTt2YXIgY29kZVdyYXA9cmVjLnF1ZXJ5U2VsZWN0b3IoJy50ODY4IC50ODY4X19jb2RlLXdyYXAnKTtpZih0eXBlb2YgdF90cmlnZ2VyRXZlbnQ9PT0nZnVuY3Rpb24nKXRfdHJpZ2dlckV2ZW50KGRvY3VtZW50LmJvZHksJ3BvcHVwSGlkZGVuJyk7ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCd0LWJvZHlfcG9wdXBzaG93ZWQnKTtwb3B1cC5jbGFzc0xpc3QucmVtb3ZlKCd0LXBvcHVwX3Nob3cnKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYoIXBvcHVwLmNsYXNzTGlzdC5jb250YWlucygnLnQtcG9wdXBfc2hvdycpKXtwb3B1cC5zdHlsZS5kaXNwbGF5PSdub25lJztpZihjb2RlV3JhcCl7Y29kZVdyYXAuc3R5bGUuZGlzcGxheT0nbm9uZSd9fX0sMzAwKX0KZnVuY3Rpb24gdDg2OF9zZXRIZWlnaHQocmVjKXt2YXIgdmlkZW9DYXJpZXI9cmVjLnF1ZXJ5U2VsZWN0b3IoJy50ODY4X192aWRlby1jYXJpZXInKTtpZighdmlkZW9DYXJpZXIpcmV0dXJuO3ZhciBwYWRkaW5nTGVmdD1wYXJzZUludCh2aWRlb0Nhcmllci5zdHlsZS5wYWRkaW5nTGVmdCwxMCl8fDA7dmFyIHBhZGRpbmdSaWdodD1wYXJzZUludCh2aWRlb0Nhcmllci5zdHlsZS5wYWRkaW5nUmlnaHQsMTApfHwwO3ZhciBoZWlnaHQ9KHZpZGVvQ2FyaWVyLmNsaWVudFdpZHRoLShwYWRkaW5nTGVmdCtwYWRkaW5nUmlnaHQpKS8oMTYvOSk7dmlkZW9DYXJpZXIuc3R5bGUuaGVpZ2h0PWhlaWdodDtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHZpZGVvQ2FyaWVyLmNsb3Nlc3QsZnVuY3Rpb24ocGFyZW50KXtwYXJlbnQuc3R5bGUuaGVpZ2h0PWhlaWdodH0pfQppZighRWxlbWVudC5wcm90b3R5cGUubWF0Y2hlcyl7RWxlbWVudC5wcm90b3R5cGUubWF0Y2hlcz1FbGVtZW50LnByb3RvdHlwZS5tYXRjaGVzU2VsZWN0b3J8fEVsZW1lbnQucHJvdG90eXBlLm1zTWF0Y2hlc1NlbGVjdG9yfHxFbGVtZW50LnByb3RvdHlwZS5tb3pNYXRjaGVzU2VsZWN0b3J8fEVsZW1lbnQucHJvdG90eXBlLndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8RWxlbWVudC5wcm90b3R5cGUub01hdGNoZXNTZWxlY3Rvcn0KaWYoIUVsZW1lbnQucHJvdG90eXBlLmNsb3Nlc3Qpe0VsZW1lbnQucHJvdG90eXBlLmNsb3Nlc3Q9ZnVuY3Rpb24ocyl7dmFyIGVsPXRoaXM7d2hpbGUoZWwmJmVsLm5vZGVUeXBlPT09MSl7aWYoRWxlbWVudC5wcm90b3R5cGUubWF0Y2hlcy5jYWxsKGVsLHMpKXtyZXR1cm4gZWx9CmVsPWVsLnBhcmVudEVsZW1lbnR8fGVsLnBhcmVudE5vZGV9CnJldHVybiBudWxsfX0KZnVuY3Rpb24gdDMwMF9pbml0KCl7dmFyIHRvb2x0aXBCbG9ja3M9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnQzMDAnKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHRvb2x0aXBCbG9ja3MsZnVuY3Rpb24odG9vbHRpcCl7dmFyIGhvb2s9dG9vbHRpcC5nZXRBdHRyaWJ1dGUoJ2RhdGEtdG9vbHRpcC1ob29rJyk7dmFyIHRvb2x0aXBJZD10b29sdGlwLmdldEF0dHJpYnV0ZSgnZGF0YS10b29sdGlwLWlkJyk7aWYoaG9vayE9PScnKXtpZih0eXBlb2Ygd2luZG93LnRvb2x0aXBzdGVyIT09J3VuZGVmaW5lZCcpe3ZhciBsaW5rcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhW2hyZWY9IicraG9vaysnIl06bm90KC50b29sdGlwc3RlcmVkKScpfWVsc2V7aWYodHlwZW9mIGpRdWVyeSE9PSd1bmRlZmluZWQnKXt2YXIgbGlua3M9JCgnYVtocmVmPSInK2hvb2srJyJdOm5vdCgudG9vbHRpcHN0ZXJlZCknKX19CmlmKCFsaW5rc3x8bGlua3MubGVuZ3RoPT09MClyZXR1cm47dmFyIGNvbnRlbnQ9dG9vbHRpcC5xdWVyeVNlbGVjdG9yKCcudDMwMF9fY29udGVudCcpLmlubmVySFRNTDt2YXIgdG91Y2hEZXZpY2VzPSExO2lmKGhvb2suY2hhckF0KDApPT0nIycpe3RvdWNoRGV2aWNlcz0hMH0KdmFyIHBvc2l0aW9uPXRvb2x0aXAuZ2V0QXR0cmlidXRlKCdkYXRhLXRvb2x0aXAtcG9zaXRpb24nKTtpZihwb3NpdGlvbj09PScnKXtwb3NpdGlvbj0ndG9wJ30KdF9vbkZ1bmNMb2FkKCd0b29sdGlwc3RlcicsZnVuY3Rpb24oKXt3aW5kb3cudG9vbHRpcHN0ZXIobGlua3Mse3RoZW1lOid0MzAwX190b29sdGlwc3Rlci1ub2lyIHQzMDBfX3Rvb2x0aXBzdGVyLW5vaXJfJyt0b29sdGlwSWQrJycsY29udGVudEFzSFRNTDohMCxjb250ZW50OmNvbnRlbnQsaW50ZXJhY3RpdmU6ITAsdG91Y2hEZXZpY2VzOnRvdWNoRGV2aWNlcyxwb3NpdGlvbjpwb3NpdGlvbn0pfSk7dDMwMF9fZ2V0TGlua3NBcnJheShsaW5rcykuZm9yRWFjaChmdW5jdGlvbihsaW5rKXt0MzAwX19jcmVhdGVMaW5rRXZlbnRzKGxpbmspfSl9fSl9CmZ1bmN0aW9uIHQzMDBfX2dldExpbmtzQXJyYXkobGlua3Mpe3ZhciBsaW5rc0FycmF5PVtdO2Zvcih2YXIgaT0wO2k8bGlua3MubGVuZ3RoO2krKyl7bGlua3NBcnJheS5wdXNoKGxpbmtzW2ldKX0KcmV0dXJuIGxpbmtzQXJyYXl9CmZ1bmN0aW9uIHQzMDBfX2NyZWF0ZUxpbmtFdmVudHMobGluayl7bGluay5hZGRFdmVudExpc3RlbmVyKCd0aWxkYXRvb2x0aXA6c2hvdycsZnVuY3Rpb24oKXt2YXIgcG9wdXA9bGluay5jbG9zZXN0KCcudC1wb3B1cCcpO2lmKCFwb3B1cClyZXR1cm47dmFyIHN0eWxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7c3R5bGUuaWQ9J3QzMDBUb29sdGlwU3R5bGUnO3N0eWxlLmlubmVySFRNTD0nLnRvb2x0aXBzdGVyLWJhc2Uge3otaW5kZXg6IDk5OTk5OTk7fSc7ZG9jdW1lbnQuaGVhZC5hcHBlbmQoc3R5bGUpfSk7bGluay5hZGRFdmVudExpc3RlbmVyKCd0aWxkYXRvb2x0aXA6aGlkZScsZnVuY3Rpb24oKXt2YXIgc3R5bGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3QzMDBUb29sdGlwU3R5bGUnKTtpZihzdHlsZSlzdHlsZS5yZW1vdmUoKX0pO2lmKGxpbmsuY2xvc2VzdCgnLnQ3MDZfX2NhcnRwYWdlJykpe2xpbmsuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKGV2ZW50KXtldmVudC5wcmV2ZW50RGVmYXVsdCgpfSl9fQp0X29uUmVhZHkoZnVuY3Rpb24oKXt0MzAwX2luaXQoKTtpZignTXV0YXRpb25PYnNlcnZlcicgaW4gd2luZG93KXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHN0b3Jlcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdib2R5IC50LXN0b3JlJyk7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChzdG9yZXMsZnVuY3Rpb24oc3RvcmUpe25ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9uc0xpc3Qpe2Zvcih2YXIgbXV0YXRpb24gaW4gbXV0YXRpb25zTGlzdCl7dmFyIGV2ZW50PW11dGF0aW9uc0xpc3RbbXV0YXRpb25dO2lmKGV2ZW50LnR5cGU9PT0nYXR0cmlidXRlcycpe2lmKGV2ZW50LnRhcmdldC5jbGFzc05hbWUuaW5kZXhPZigndC1wb3B1cF9zaG93JykhPS0xKXt0MzAwX2luaXQoKX19fX0pLm9ic2VydmUoc3RvcmUse2F0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOlsnY2xhc3MnXSxzdWJ0cmVlOiEwfSl9KTt0MzAwX2luaXQoKX0sNTAwKX19KTt2YXIgdDc4Nl9QT1BVUF9TSE9XRURfRVZFTlRfTkFNRT0nY2F0YWxvZzpwb3B1cFNob3dlZCc7dmFyIHQ3ODZfUE9QVVBfQ0xPU0VEX0VWRU5UX05BTUU9J2NhdGFsb2c6cG9wdXBDbG9zZWQnO2Z1bmN0aW9uIHQ3ODZfX2luaXQocmVjaWQpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0X29uRnVuY0xvYWQoJ3RfcHJvZF9faW5pdCcsZnVuY3Rpb24oKXt0X3Byb2RfX2luaXQocmVjaWQpfSk7dDc4Nl9pbml0UG9wdXAocmVjaWQpO3Q3ODZfX2hvdmVyWm9vbV9pbml0KHJlY2lkKTt0Nzg2X191cGRhdGVMYXp5TG9hZChyZWNpZCk7dDc4Nl9fYWxpZ25CdXR0b25zX2luaXQocmVjaWQpO3Rfb25GdW5jTG9hZCgndF9zdG9yZV9hZGRQcm9kdWN0UXVhbnRpdHlFdmVudHMnLGZ1bmN0aW9uKCl7dDc4Nl9pbml0UHJvZHVjdFF1YW50aXR5KHJlY2lkKX0pO3ZhciBldmVudD1kb2N1bWVudC5jcmVhdGVFdmVudCgnSFRNTEV2ZW50cycpO2V2ZW50LmluaXRFdmVudCgndHdpc2hsaXN0X2FkZGJ0bicsITAsITEpO2RvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudChldmVudCl9LDUwMCl9CmZ1bmN0aW9uIHQ3ODZfaW5pdFByb2R1Y3RRdWFudGl0eShyZWNpZCl7dmFyIHJlYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVjJytyZWNpZCk7aWYoIXJlYylyZXR1cm47dmFyIHByb2R1Y3RMaXN0PXJlYy5xdWVyeVNlbGVjdG9yQWxsKCcudDc4Nl9fY29sLCAudDc4Nl9fcHJvZHVjdC1mdWxsJyk7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChwcm9kdWN0TGlzdCxmdW5jdGlvbihwcm9kdWN0KXt0X3N0b3JlX2FkZFByb2R1Y3RRdWFudGl0eUV2ZW50cyhwcm9kdWN0KX0pfQpmdW5jdGlvbiB0Nzg2X19hbGlnbkJ1dHRvbnNfaW5pdChyZWNpZCl7dmFyIHJlYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVjJytyZWNpZCk7aWYoIXJlYylyZXR1cm47aWYoIXJlYy5xdWVyeVNlbGVjdG9yKCdbZGF0YS1idXR0b25zLXYtYWxpZ25dJykpe3JldHVybn0KdHJ5e3Q3ODZfX2FsaWduQnV0dG9ucyhyZWNpZCk7aWYoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnQtcmVjb3JkcycpLmdldEF0dHJpYnV0ZSgnZGF0YS10aWxkYS1tb2RlJyk9PT0nZWRpdCcpe3NldEludGVydmFsKGZ1bmN0aW9uKCl7dDc4Nl9fYWxpZ25CdXR0b25zKHJlY2lkKX0sMjAwKX0Kd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsdF90aHJvdHRsZShmdW5jdGlvbigpe2lmKHR5cGVvZiB3aW5kb3cubm9BZGFwdGl2ZSE9PSd1bmRlZmluZWQnJiZ3aW5kb3cubm9BZGFwdGl2ZSYmd2luZG93LmlzTW9iaWxlKXtyZXR1cm59CnQ3ODZfX2FsaWduQnV0dG9ucyhyZWNpZCl9KSk7dmFyIHdyYXBwZXJCbG9jaz1yZWMucXVlcnlTZWxlY3RvcignLnQ3ODYnKTtpZih3cmFwcGVyQmxvY2spe3dyYXBwZXJCbG9jay5hZGRFdmVudExpc3RlbmVyKCdkaXNwbGF5Q2hhbmdlZCcsZnVuY3Rpb24oKXt0Nzg2X19hbGlnbkJ1dHRvbnMocmVjaWQpfSl9CmlmKHdpbmRvdy5pc01vYmlsZSl7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ29yaWVudGF0aW9uY2hhbmdlJyxmdW5jdGlvbigpe3Q3ODZfX2FsaWduQnV0dG9ucyhyZWNpZCl9KX19Y2F0Y2goZXJyb3Ipe2NvbnNvbGUubG9nKCdidXR0b25zLXYtYWxpZ24gZXJyb3I6ICcrZXJyb3IubWVzc2FnZSl9fQpmdW5jdGlvbiB0Nzg2X19zaG93TW9yZShyZWNpZCl7dmFyIHJlYz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVjJytyZWNpZCsnIC50Nzg2Jyk7aWYoIXJlYylyZXR1cm47dmFyIGNhcmRzU2hvd0xpbWl0PXBhcnNlSW50KHJlYy5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2hvdy1jb3VudCcpLDEwKTtpZihpc05hTihjYXJkc1Nob3dMaW1pdCl8fGNhcmRzU2hvd0xpbWl0PD0wKXJldHVybjt2YXIgc2hvd01vcmVCdXR0b249cmVjLnF1ZXJ5U2VsZWN0b3IoJy50Nzg2X19zaG93bW9yZScpO2lmKCFzaG93TW9yZUJ1dHRvbilyZXR1cm47aWYoIXNob3dNb3JlQnV0dG9uLnF1ZXJ5U2VsZWN0b3IoJ3RkJykudGV4dENvbnRlbnQpe3Nob3dNb3JlQnV0dG9uLnF1ZXJ5U2VsZWN0b3IoJ3RkJykudGV4dENvbnRlbnQ9dDc4Nl9fZGljdCgpfQpzaG93TW9yZUJ1dHRvbi5zdHlsZS5kaXNwbGF5PSdpbmxpbmUtYmxvY2snO3ZhciBhbGxQcm9kdWN0Q2FyZHM9cmVjLnF1ZXJ5U2VsZWN0b3JBbGwoJy50Nzg2X19jb2wnKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGFsbFByb2R1Y3RDYXJkcyxmdW5jdGlvbihwcm9kdWN0Q2FyZCl7cHJvZHVjdENhcmQuc3R5bGUuZGlzcGxheT0nbm9uZSd9KTt2YXIgY2FyZHNOdW1iZXI9YWxsUHJvZHVjdENhcmRzLmxlbmd0aDt0Nzg2X19zaG93U2VwYXJhdG9yKHJlYyxjYXJkc1Nob3dMaW1pdCk7Zm9yKHZhciBpPTA7aTxjYXJkc1Nob3dMaW1pdDtpKyspe2lmKGFsbFByb2R1Y3RDYXJkc1tpXSl7YWxsUHJvZHVjdENhcmRzW2ldLnN0eWxlLmRpc3BsYXk9J2lubGluZS1ibG9jayd9fQpzaG93TW9yZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXt2YXIgYWxsQ3VycmVudFByb2R1Y3RzPXJlYy5xdWVyeVNlbGVjdG9yQWxsKCcudDc4Nl9fY29sJyk7dmFyIGN1cnJlbnRwcm9kdWN0c1Nob3dlZD0wO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoYWxsQ3VycmVudFByb2R1Y3RzLGZ1bmN0aW9uKHByb2R1Y3Qpe2lmKHByb2R1Y3Quc3R5bGUuZGlzcGxheT09PSdpbmxpbmUtYmxvY2snKXsrK2N1cnJlbnRwcm9kdWN0c1Nob3dlZH19KTtmb3IodmFyIGk9MDtpPGNhcmRzU2hvd0xpbWl0K2N1cnJlbnRwcm9kdWN0c1Nob3dlZDtpKyspe2lmKGFsbFByb2R1Y3RDYXJkc1tpXSl7YWxsUHJvZHVjdENhcmRzW2ldLnN0eWxlLmRpc3BsYXk9J2lubGluZS1ibG9jayd9fQppZihyZWMucXVlcnlTZWxlY3RvcignW2RhdGEtYnV0dG9ucy12LWFsaWduXScpKXt0Nzg2X19hbGlnbkJ1dHRvbnMocmVjaWQpfQp2YXIgZGlzcGxheUNoYW5nZWRFdmVudD1kb2N1bWVudC5jcmVhdGVFdmVudCgnSFRNTEV2ZW50cycpO2Rpc3BsYXlDaGFuZ2VkRXZlbnQuaW5pdEV2ZW50KCdkaXNwbGF5Q2hhbmdlZCcsITAsITEpO3JlYy5kaXNwYXRjaEV2ZW50KGRpc3BsYXlDaGFuZ2VkRXZlbnQpO3ZhciBhZGRCdG5FdmVudD1kb2N1bWVudC5jcmVhdGVFdmVudCgnSFRNTEV2ZW50cycpO2FkZEJ0bkV2ZW50LmluaXRFdmVudCgndHdpc2hsaXN0X2FkZGJ0bicsITAsITEpO2RvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudChhZGRCdG5FdmVudCk7aWYoY2FyZHNTaG93TGltaXQrY3VycmVudHByb2R1Y3RzU2hvd2VkPj1jYXJkc051bWJlcil7c2hvd01vcmVCdXR0b24uc3R5bGUuZGlzcGxheT0nbm9uZSd9CnQ3ODZfX3Nob3dTZXBhcmF0b3IocmVjLGNhcmRzU2hvd0xpbWl0K2N1cnJlbnRwcm9kdWN0c1Nob3dlZCk7aWYocmVjLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWJ1dHRvbnMtdi1hbGlnbl0nKSl7dDc4Nl9fYWxpZ25CdXR0b25zKHJlY2lkKX0KaWYod2luZG93Lmxhenk9PT0neSd8fGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbGxyZWNvcmRzJykuZ2V0QXR0cmlidXRlKCdkYXRhLXRpbGRhLWxhenknKT09PSd5ZXMnKXt0X29uRnVuY0xvYWQoJ3RfbGF6eWxvYWRfdXBkYXRlJyxmdW5jdGlvbigpe3RfbGF6eWxvYWRfdXBkYXRlKCl9KX19KX0KZnVuY3Rpb24gdDc4Nl9fZGljdCgpe3ZhciBkaWN0aW9uYXJ5PXtFTjonTG9hZCBtb3JlJyxSVTon0JfQsNCz0YDRg9C30LjRgtGMINC10YnRkScsRlI6J0NoYXJnZXIgcGx1cycsREU6J01laHIgbGFkZW4nLEVTOidDYXJnYSBtw6FzJyxQVDonQ2FycmVndWUgbWFpcycsVUs6J9CX0LDQstCw0L3RgtCw0LbQuNGC0Lgg0YnQtScsSkE6J+OCguOBo+OBqOiqreOBv+i+vOOCgCcsWkg6J+ijnei8ieabtOWkmicsfTt2YXIgbGFuZ3VhZ2U9d2luZG93LmJyb3dzZXJMYW5nO3JldHVybiBkaWN0aW9uYXJ5W2xhbmd1YWdlXT9kaWN0aW9uYXJ5W2xhbmd1YWdlXTpkaWN0aW9uYXJ5LkVOfQpmdW5jdGlvbiB0Nzg2X19zaG93U2VwYXJhdG9yKHJlYyxjYXJkc1Nob3dMaW1pdCl7aWYod2luZG93LmpRdWVyeSYmcmVjIGluc3RhbmNlb2YgalF1ZXJ5KXtyZWM9cmVjLmdldCgwKX0KdmFyIGFsbFNlcGFyYXRvcnM9cmVjLnF1ZXJ5U2VsZWN0b3JBbGwoJy50Nzg2X19zZXBhcmF0b3JfbnVtYmVyJyk7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChhbGxTZXBhcmF0b3JzLGZ1bmN0aW9uKHNlcGFyYXRvcil7c2VwYXJhdG9yLmNsYXNzTGlzdC5hZGQoJ3Q3ODZfX3NlcGFyYXRvcl9oaWRlJyk7aWYoc2VwYXJhdG9yLmdldEF0dHJpYnV0ZSgnZGF0YS1wcm9kdWN0LXNlcGFyYXRvci1udW1iZXInKTw9Y2FyZHNTaG93TGltaXQpe3NlcGFyYXRvci5jbGFzc0xpc3QucmVtb3ZlKCd0Nzg2X19zZXBhcmF0b3JfaGlkZScpfX0pfQpmdW5jdGlvbiB0Nzg2X19hbGlnbkJ1dHRvbnMocmVjaWQpe3ZhciByZWM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlYycrcmVjaWQpO2lmKCFyZWMpcmV0dXJuO3ZhciB3cmFwcGVycz1yZWMucXVlcnlTZWxlY3RvckFsbCgnLnQ3ODZfX3RleHR3cmFwcGVyJyk7dmFyIG1heEhlaWdodD0wO3ZhciBjb250YWluZXI9cmVjLnF1ZXJ5U2VsZWN0b3IoJy50Nzg2X19jb250YWluZXInKTtpZihjb250YWluZXIpe3ZhciBpdGVtc0luUm93PXBhcnNlSW50KGNvbnRhaW5lci5nZXRBdHRyaWJ1dGUoJ2RhdGEtYmxvY2tzLXBlci1yb3cnKSwxMCl9ZWxzZXtpdGVtc0luUm93PTF9CnZhciBtb2JpbGVWaWV3PXdpbmRvdy5pbm5lcldpZHRoPD00ODA7dmFyIHRhYmxlVmlldz13aW5kb3cuaW5uZXJXaWR0aDw9OTYwJiZ3aW5kb3cuaW5uZXJXaWR0aD40ODA7dmFyIG1vYmlsZU9uZVJvdz13aW5kb3cuaW5uZXJXaWR0aDw9OTYwJiZyZWMucXVlcnlTZWxlY3RvcignLnQ3ODZfX2NvbnRhaW5lcl9tb2JpbGUtZmxleCcpO3ZhciBtb2JpbGVUd29JdGVtc0luUm93PXdpbmRvdy5pbm5lcldpZHRoPD00ODAmJnJlYy5xdWVyeVNlbGVjdG9yKCcudDc4NiAubW9iaWxlLXR3by1jb2x1bW5zJyk7aWYobW9iaWxlVmlldyl7aXRlbXNJblJvdz0xfQppZih0YWJsZVZpZXcpe2l0ZW1zSW5Sb3c9Mn0KaWYobW9iaWxlVHdvSXRlbXNJblJvdyl7aXRlbXNJblJvdz0yfQppZihtb2JpbGVPbmVSb3cpe2l0ZW1zSW5Sb3c9OTk5OTk5fQp2YXIgY291bnQ9MTt2YXIgd3JhcHBlcnNJblJvdz1bXTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHdyYXBwZXJzLGZ1bmN0aW9uKHdyYXBwZXIpe3dyYXBwZXIuc3R5bGUuaGVpZ2h0PSdhdXRvJztpZihpdGVtc0luUm93PT09MSl7d3JhcHBlci5zdHlsZS5oZWlnaHQ9J2F1dG8nfWVsc2V7d3JhcHBlcnNJblJvdy5wdXNoKHdyYXBwZXIpO2lmKHdyYXBwZXIub2Zmc2V0SGVpZ2h0Pm1heEhlaWdodCl7bWF4SGVpZ2h0PXdyYXBwZXIub2Zmc2V0SGVpZ2h0fQpBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHdyYXBwZXJzSW5Sb3csZnVuY3Rpb24oY2FyZCl7Y2FyZC5zdHlsZS5oZWlnaHQ9bWF4SGVpZ2h0KydweCd9KTtpZihjb3VudD09PWl0ZW1zSW5Sb3cpe2NvdW50PTA7bWF4SGVpZ2h0PTA7d3JhcHBlcnNJblJvdz1bXX0KY291bnQrK319KX0KZnVuY3Rpb24gdDc4Nl9faG92ZXJab29tX2luaXQocmVjaWQpe2lmKHdpbmRvdy5pc01vYmlsZSlyZXR1cm47dmFyIHJlYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVjJytyZWNpZCk7aWYoIXJlYylyZXR1cm47dHJ5e2lmKCFyZWMucXVlcnlTZWxlY3RvcignW2RhdGEtaG92ZXItem9vbV0nKSl7cmV0dXJufQp2YXIgaG92ZXJTY3JpcHQ9J2h0dHBzOi8vc3RhdGljLnRpbGRhY2RuLmNvbS9qcy90aWxkYS1ob3Zlci16b29tLTEuMC5taW4uanMnO2lmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInNjcmlwdFtzcmNePSciK2hvdmVyU2NyaXB0KyInXSIpKXt0X29uRnVuY0xvYWQoJ3RfaG92ZXJab29tX2luaXQnLGZ1bmN0aW9uKCl7dF9ob3Zlclpvb21faW5pdChyZWNpZCl9KX1lbHNle3ZhciBzY3JpcHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7c2NyaXB0LnR5cGU9J3RleHQvamF2YXNjcmlwdCc7c2NyaXB0LnNyYz1ob3ZlclNjcmlwdDtzY3JpcHQub25sb2FkPWZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe3RfaG92ZXJab29tX2luaXQocmVjaWQpfSw1MDApfTtzY3JpcHQub25lcnJvcj1mdW5jdGlvbihlcnJvcil7Y29uc29sZS5sb2coJ1VwbG9hZCBzY3JpcHQgZXJyb3I6ICcsZXJyb3IpfTtkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCl9fWNhdGNoKGVycm9yKXtjb25zb2xlLmxvZygnWm9vbSBpbWFnZSBpbml0IGVycm9yOiAnK2Vycm9yLm1lc3NhZ2UpfX0KZnVuY3Rpb24gdDc4Nl9fdXBkYXRlTGF6eUxvYWQocmVjaWQpe3ZhciByZWM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlYycrcmVjaWQpO2lmKCFyZWMpcmV0dXJuO3ZhciBzY3JvbGxDb250YWluZXI9cmVjLnF1ZXJ5U2VsZWN0b3IoJyAudDc4Nl9fY29udGFpbmVyX21vYmlsZS1mbGV4Jyk7dmFyIGN1cnJlbnRNb2RlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy50LXJlY29yZHMnKS5nZXRBdHRyaWJ1dGUoJ2RhdGEtdGlsZGEtbW9kZScpO2lmKHNjcm9sbENvbnRhaW5lciYmY3VycmVudE1vZGUhPT0nZWRpdCcmJmN1cnJlbnRNb2RlIT09J3ByZXZpZXcnKXtzY3JvbGxDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJyx0X3Rocm90dGxlKGZ1bmN0aW9uKCl7aWYod2luZG93Lmxhenk9PT0neSd8fGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbGxyZWNvcmRzJykuZ2V0QXR0cmlidXRlKCdkYXRhLXRpbGRhLWxhenknKT09PSd5ZXMnKXt0X29uRnVuY0xvYWQoJ3RfbGF6eWxvYWRfdXBkYXRlJyxmdW5jdGlvbigpe3RfbGF6eWxvYWRfdXBkYXRlKCl9KX19KSl9fQpmdW5jdGlvbiB0Nzg2X2luaXRQb3B1cChyZWNpZCl7dmFyIHJlYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVjJytyZWNpZCk7aWYoIXJlYylyZXR1cm47dmFyIG9wZW5lckxpbms9cmVjLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tocmVmXj0iI3Byb2Rwb3B1cCJdJyk7dmFyIHBvcHVwPXJlYy5xdWVyeVNlbGVjdG9yKCcudC1wb3B1cCcpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwob3BlbmVyTGluayxmdW5jdGlvbihsaW5rKXtsaW5rLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxjbGlja09uY2VIYW5kbGVyLCExKTtmdW5jdGlvbiBjbGlja09uY2VIYW5kbGVyKGV2ZW50KXtldmVudC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBwcm9kdWN0PWxpbmsuY2xvc2VzdCgnLmpzLXByb2R1Y3QnKTt2YXIgcHJvZHVjdExpZD1wcm9kdWN0LmdldEF0dHJpYnV0ZSgnZGF0YS1wcm9kdWN0LWxpZCcpO3Rfb25GdW5jTG9hZCgndF9zbGRzSW5pdCcsZnVuY3Rpb24oKXt0X3NsZHNJbml0KHJlY2lkKycgI3Q3ODZfX3Byb2R1Y3QtJytwcm9kdWN0TGlkKycnKX0pO2xpbmsucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLGNsaWNrT25jZUhhbmRsZXIsITEpfQpsaW5rLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxzaG93UG9wdXBIYW5kbGVyLCExKTtmdW5jdGlvbiBzaG93UG9wdXBIYW5kbGVyKGV2ZW50KXtldmVudC5wcmV2ZW50RGVmYXVsdCgpO2lmKGV2ZW50LnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ3QxMDAyX19hZGRCdG4nKXx8ZXZlbnQudGFyZ2V0LnBhcmVudE5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKCd0MTAwMl9fYWRkQnRuJykpe3JldHVybn0KdDc4Nl9zaG93UG9wdXAocmVjaWQpO3ZhciBwcm9kdWN0PWxpbmsuY2xvc2VzdCgnLmpzLXByb2R1Y3QnKTt2YXIgcHJvZHVjdExpZD1wcm9kdWN0LmdldEF0dHJpYnV0ZSgnZGF0YS1wcm9kdWN0LWxpZCcpO3ZhciBhbGxQcm9kdWN0cz1wb3B1cC5xdWVyeVNlbGVjdG9yQWxsKCcuanMtcHJvZHVjdCcpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoYWxsUHJvZHVjdHMsZnVuY3Rpb24ocHJvZHVjdCl7cHJvZHVjdC5zdHlsZS5kaXNwbGF5PSdub25lJ30pO3ZhciBwcm9kdWN0RnVsbD1wb3B1cC5xdWVyeVNlbGVjdG9yKCcuanMtcHJvZHVjdFtkYXRhLXByb2R1Y3QtbGlkPSInK3Byb2R1Y3RMaWQrJyJdJyk7cHJvZHVjdEZ1bGwuc3R5bGUuZGlzcGxheT0nYmxvY2snO3ZhciBhbmFsaXRpY3M9cG9wdXAuZ2V0QXR0cmlidXRlKCdkYXRhLXRyYWNrLXBvcHVwJyk7aWYoYW5hbGl0aWNzJiZwcm9kdWN0RnVsbCYmd2luZG93LlRpbGRhKXt2YXIgcHJvZHVjdE5hbWU9cHJvZHVjdEZ1bGwucXVlcnlTZWxlY3RvcignLmpzLXByb2R1Y3QtbmFtZScpO2lmKHByb2R1Y3ROYW1lKXt2YXIgdmlydHVhbFRpdGxlPXByb2R1Y3ROYW1lLnRleHRDb250ZW50O2lmKCF2aXJ0dWFsVGl0bGUpe3ZpcnR1YWxUaXRsZT0ncHJvZCcrcHJvZHVjdExpZH0KVGlsZGEuc2VuZEV2ZW50VG9TdGF0aXN0aWNzKGFuYWxpdGljcyx2aXJ0dWFsVGl0bGUpfX0KdmFyIGN1cnJlbnRVcmw9d2luZG93LmxvY2F0aW9uLmhyZWY7aWYoY3VycmVudFVybC5pbmRleE9mKCcjIS90cHJvZHVjdC8nKT09PS0xJiZjdXJyZW50VXJsLmluZGV4T2YoJyUyMyEvdHByb2R1Y3QvJyk9PT0tMSl7aWYodHlwZW9mIGhpc3RvcnkucmVwbGFjZVN0YXRlIT09J3VuZGVmaW5lZCcpe3dpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSgnJywnJyx3aW5kb3cubG9jYXRpb24uaHJlZisnIyEvdHByb2R1Y3QvJytyZWNpZCsnLScrcHJvZHVjdExpZCl9fQp0Nzg2X3VwZGF0ZVNsaWRlcihyZWNpZCsnICN0Nzg2X19wcm9kdWN0LScrcHJvZHVjdExpZCk7aWYod2luZG93Lmxhenk9PT0neSd8fGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbGxyZWNvcmRzJykuZ2V0QXR0cmlidXRlKCdkYXRhLXRpbGRhLWxhenknKT09PSd5ZXMnKXt0X29uRnVuY0xvYWQoJ3RfbGF6eWxvYWRfdXBkYXRlJyxmdW5jdGlvbigpe3RfbGF6eWxvYWRfdXBkYXRlKCl9KX19fSk7aWYoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3JlY29yZCcrcmVjaWQpLmxlbmd0aD09PTApe3Q3ODZfY2hlY2tVcmwocmVjaWQpfQppZihwb3B1cCYmcG9wdXAuaGFzQXR0cmlidXRlKCdkYXRhLWZpeGVkLWJ1dHRvbicpKXt0Nzg2X2ZpeGVkUG9wdXBCdXR0b24ocmVjaWQpfX0KZnVuY3Rpb24gdDc4Nl9jaGVja1VybChyZWNpZCl7dmFyIGN1cnJlbnRVcmw9d2luZG93LmxvY2F0aW9uLmhyZWY7dmFyIHRwcm9kSW5kZXg9KGN1cnJlbnRVcmwuaW5kZXhPZignIyEvdHByb2R1Y3QvJykrMXx8Y3VycmVudFVybC5pbmRleE9mKCclMjMhL3Rwcm9kdWN0LycpKzF8fGN1cnJlbnRVcmwuaW5kZXhPZignIyUyMSUyRnRwcm9kdWN0JTJGJykrMXx8Y3VycmVudFVybC5pbmRleE9mKCcjISUyRnRwcm9kdWN0JTJGJykrMXx8Y3VycmVudFVybC5pbmRleE9mKCclMjMlMjElMkZ0cHJvZHVjdCUyRicpKzEpLTE7aWYodHByb2RJbmRleCE9PS0xKXt2YXIgY3VycmVudFVybD1jdXJyZW50VXJsLnN1YnN0cmluZyh0cHJvZEluZGV4LGN1cnJlbnRVcmwubGVuZ3RoKTt2YXIgY3VyUHJvZExpZD1jdXJyZW50VXJsLnN1YnN0cmluZyhjdXJyZW50VXJsLmluZGV4T2YoJy0nKSsxLGN1cnJlbnRVcmwubGVuZ3RoKTtpZihjdXJQcm9kTGlkKXt2YXIgY3VyUHJvZExpZE1hdGNoPWN1clByb2RMaWQubWF0Y2goLyhbMC05XSspL2cpO2lmKGN1clByb2RMaWRNYXRjaCl7Y3VyUHJvZExpZD1jdXJQcm9kTGlkTWF0Y2hbMF19fQppZihjdXJyZW50VXJsLmluZGV4T2YocmVjaWQpPT09LTEpcmV0dXJuO3ZhciByZWM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlYycrcmVjaWQpO2lmKCFyZWMpcmV0dXJuO2lmKGN1cnJlbnRVcmwuaW5kZXhPZihyZWNpZCkhPT0wJiZyZWMucXVlcnlTZWxlY3RvcignW2RhdGEtcHJvZHVjdC1saWQ9IicrY3VyUHJvZExpZCsnIl0nKSl7dmFyIGN1cnJlbnRMaW5rPXJlYy5xdWVyeVNlbGVjdG9yKCdbZGF0YS1wcm9kdWN0LWxpZD0iJytjdXJQcm9kTGlkKyciXSBbaHJlZl49IiNwcm9kcG9wdXAiXScpO3ZhciBldmVudD1kb2N1bWVudC5jcmVhdGVFdmVudCgnSFRNTEV2ZW50cycpO2V2ZW50LmluaXRFdmVudCgnY2xpY2snLCEwLCExKTtpZihjdXJyZW50TGluayl7Y3VycmVudExpbmsuZGlzcGF0Y2hFdmVudChldmVudCl9fX19CmZ1bmN0aW9uIHQ3ODZfdXBkYXRlU2xpZGVyKHJlY2lkKXt2YXIgcmVjPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZWMnK3JlY2lkKTtpZighcmVjKXJldHVybjt0X29uRnVuY0xvYWQoJ3Rfc2xkc19TbGlkZXJXaWR0aCcsZnVuY3Rpb24oKXt0X3NsZHNfU2xpZGVyV2lkdGgocmVjaWQpfSk7dmFyIHNsaWRlcj1yZWMucXVlcnlTZWxlY3RvcignLnQtc2xkc19fY29udGFpbmVyJyk7dmFyIHBhZGRpbmdMZWZ0PXBhcnNlSW50KHNsaWRlci5zdHlsZS5wYWRkaW5nTGVmdCl8fDA7dmFyIHBhZGRpbmdSaWdodD1wYXJzZUludChzbGlkZXIuc3R5bGUucGFkZGluZ1JpZ2h0KXx8MDt2YXIgc2xpZGVyV3JhcHBlcj1yZWMucXVlcnlTZWxlY3RvcignLnQtc2xkc19faXRlbXMtd3JhcHBlcicpO3ZhciBzbGlkZXJXaWR0aD1zbGlkZXIuY2xpZW50V2lkdGgtKHBhZGRpbmdMZWZ0K3BhZGRpbmdSaWdodCk7dmFyIHBvc2l0aW9uPXBhcnNlRmxvYXQoc2xpZGVyV3JhcHBlci5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2xpZGVyLXBvcycpKTtzbGlkZXJXcmFwcGVyLnN0eWxlLnRyYW5zZm9ybT0ndHJhbnNsYXRlM2QoLScrc2xpZGVyV2lkdGgqcG9zaXRpb24rJ3B4LCAwLCAwKSc7dF9vbkZ1bmNMb2FkKCd0X3NsZHNfVXBkYXRlU2xpZGVySGVpZ2h0JyxmdW5jdGlvbigpe3Rfc2xkc19VcGRhdGVTbGlkZXJIZWlnaHQocmVjaWQpfSk7dF9vbkZ1bmNMb2FkKCd0X3NsZHNfVXBkYXRlU2xpZGVyQXJyb3dzSGVpZ2h0JyxmdW5jdGlvbigpe3Rfc2xkc19VcGRhdGVTbGlkZXJBcnJvd3NIZWlnaHQocmVjaWQpfSl9CmZ1bmN0aW9uIHQ3ODZfc2hvd1BvcHVwKHJlY2lkKXt2YXIgcmVjPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZWMnK3JlY2lkKTtpZighcmVjKXJldHVybjt2YXIgcG9wdXA9cmVjLnF1ZXJ5U2VsZWN0b3IoJy50LXBvcHVwJyk7cG9wdXAuc3R5bGUuZGlzcGxheT0nYmxvY2snO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtwb3B1cC5xdWVyeVNlbGVjdG9yKCcudC1wb3B1cF9fY29udGFpbmVyJykuY2xhc3NMaXN0LmFkZCgndC1wb3B1cF9fY29udGFpbmVyLWFuaW1hdGVkJyk7cG9wdXAuY2xhc3NMaXN0LmFkZCgndC1wb3B1cF9zaG93Jyk7dF90cmlnZ2VyRXZlbnQocG9wdXAsdDc4Nl9QT1BVUF9TSE9XRURfRVZFTlRfTkFNRSl9LDUwKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYod2luZG93Lmxhenk9PT0neSd8fGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbGxyZWNvcmRzJykuZ2V0QXR0cmlidXRlKCdkYXRhLXRpbGRhLWxhenknKT09PSd5ZXMnKXt0X29uRnVuY0xvYWQoJ3RfbGF6eWxvYWRfdXBkYXRlJyxmdW5jdGlvbigpe3RfbGF6eWxvYWRfdXBkYXRlKCl9KX19LDMwMCk7dmFyIGJvZHk9ZG9jdW1lbnQuYm9keTtpZih0eXBlb2YgdF90cmlnZ2VyRXZlbnQ9PT0nZnVuY3Rpb24nKXRfdHJpZ2dlckV2ZW50KGRvY3VtZW50LmJvZHksJ3BvcHVwU2hvd2VkJyk7Ym9keS5jbGFzc0xpc3QuYWRkKCd0LWJvZHlfcG9wdXBzaG93ZWQnKTt2YXIgZXZlbnQ9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0hUTUxFdmVudHMnKTtldmVudC5pbml0RXZlbnQoJ3R3aXNobGlzdF9hZGRidG4nLCEwLCExKTtib2R5LmRpc3BhdGNoRXZlbnQoZXZlbnQpO3BvcHVwLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsZnVuY3Rpb24oZXZlbnQpe3ZhciB3aW5kb3dXaWR0aD13aW5kb3cuaW5uZXJXaWR0aDt2YXIgbWF4U2Nyb2xsQmFyV2lkdGg9MTc7dmFyIHdpbmRvd1dpdGhvdXRTY3JvbGxCYXI9d2luZG93V2lkdGgtbWF4U2Nyb2xsQmFyV2lkdGg7aWYoZXZlbnQuY2xpZW50WD53aW5kb3dXaXRob3V0U2Nyb2xsQmFyKXtyZXR1cm59CmlmKGV2ZW50LnRhcmdldD09PXRoaXMpe3Q3ODZfY2xvc2VQb3B1cChib2R5LHBvcHVwKX19KTt2YXIgY2xvc2VCdXR0b25zPXJlYy5xdWVyeVNlbGVjdG9yQWxsKCcudC1wb3B1cF9fY2xvc2UsIC50Nzg2X19jbG9zZS10ZXh0Jyk7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChjbG9zZUJ1dHRvbnMsZnVuY3Rpb24oYnV0dG9uKXtidXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7dDc4Nl9jbG9zZVBvcHVwKGJvZHkscG9wdXApfSl9KTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJyxmdW5jdGlvbihldmVudCl7dmFyIGlzR2FsbGVyeVNob3dlZE9sZExpYj1kb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygndC16b29tZXJfX3Nob3cnKTtpZihpc0dhbGxlcnlTaG93ZWRPbGRMaWIpcmV0dXJuO3ZhciBpc0dhbGxlcnlTaG93ZWROZXdMaWI9ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoJ3Qtem9vbWVyX19hY3RpdmUnKTtpZihpc0dhbGxlcnlTaG93ZWROZXdMaWIpcmV0dXJuO3ZhciBpc1BvcHVwU2hvd2VkPWRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCd0LWJvZHlfcG9wdXBzaG93ZWQnKTtpZighaXNQb3B1cFNob3dlZClyZXR1cm47aWYocG9wdXAmJnBvcHVwLmNsYXNzTGlzdC5jb250YWlucygndC1wb3B1cF9zaG93Jykpe2lmKGV2ZW50LmtleUNvZGU9PT0yNyl7dDc4Nl9jbG9zZVBvcHVwKGJvZHkscG9wdXApfX19KX0KZnVuY3Rpb24gdDc4Nl9jbG9zZVBvcHVwKGJvZHkscG9wdXApe2lmKHR5cGVvZiB0X3RyaWdnZXJFdmVudD09PSdmdW5jdGlvbicpdF90cmlnZ2VyRXZlbnQoZG9jdW1lbnQuYm9keSwncG9wdXBIaWRkZW4nKTtib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ3QtYm9keV9wb3B1cHNob3dlZCcpO3BvcHVwLmNsYXNzTGlzdC5yZW1vdmUoJ3QtcG9wdXBfc2hvdycpO3ZhciBldmVudD1kb2N1bWVudC5jcmVhdGVFdmVudCgnSFRNTEV2ZW50cycpO2V2ZW50LmluaXRFdmVudCgndHdpc2hsaXN0X2FkZGJ0bicsITAsITEpO2JvZHkuZGlzcGF0Y2hFdmVudChldmVudCk7dmFyIGN1cnJlbnRVcmw9d2luZG93LmxvY2F0aW9uLmhyZWY7dmFyIGluZGV4VG9SZW1vdmU9Y3VycmVudFVybC5pbmRleE9mKCcjIS90cHJvZHVjdC8nKTtpZigvaVBob25lfGlQYWR8aVBvZC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJmluZGV4VG9SZW1vdmU8MCl7aW5kZXhUb1JlbW92ZT1jdXJyZW50VXJsLmluZGV4T2YoJyUyMyEvdHByb2R1Y3QvJyl9CmN1cnJlbnRVcmw9Y3VycmVudFVybC5zdWJzdHJpbmcoMCxpbmRleFRvUmVtb3ZlKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cG9wdXAuc2Nyb2xsVG9wPTA7cG9wdXAuc3R5bGUuZGlzcGxheT0nbm9uZSc7aWYodHlwZW9mIGhpc3RvcnkucmVwbGFjZVN0YXRlIT09J3VuZGVmaW5lZCcpe3dpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSgnJywnJyxjdXJyZW50VXJsKX19LDMwMCk7dF90cmlnZ2VyRXZlbnQocG9wdXAsdDc4Nl9QT1BVUF9DTE9TRURfRVZFTlRfTkFNRSl9CmZ1bmN0aW9uIHQ3ODZfZml4ZWRQb3B1cEJ1dHRvbihyZWNJZCl7dmFyIHJlYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVjJytyZWNJZCk7aWYoIXJlYylyZXR1cm47dmFyIE1PQklMRV9NQVhfV0lEVEg9NTYwO3ZhciBwb3B1cD1yZWMucXVlcnlTZWxlY3RvcignLnQtcG9wdXAnKTt2YXIgcG9wdXBDb250YWluZXI9cG9wdXAucXVlcnlTZWxlY3RvcignLnQtcG9wdXBfX2NvbnRhaW5lcicpO3ZhciBidG5XcmFwcGVycz1yZWMucXVlcnlTZWxlY3RvckFsbCgnLnQ3ODZfX2J0bi13cmFwcGVyJyk7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChidG5XcmFwcGVycyxmdW5jdGlvbihlbCl7ZWwuY2xhc3NMaXN0LmFkZCgndDc4Nl9fYnRuLXdyYXBwZXItZml4ZWQnKX0pO2Z1bmN0aW9uIGFkZFN0eWxlKCl7cG9wdXBDb250YWluZXIuc3R5bGUucGFkZGluZ0JvdHRvbT0nOTBweCc7cG9wdXBDb250YWluZXIuc3R5bGUuY3NzVGV4dCs9Jzt0cmFuc2Zvcm06bm9uZSAhaW1wb3J0YW50Oyd9CmZ1bmN0aW9uIHJlc2V0U3R5bGUoKXtwb3B1cENvbnRhaW5lci5zdHlsZS5wYWRkaW5nQm90dG9tPScnO3BvcHVwQ29udGFpbmVyLnN0eWxlLnRyYW5zZm9ybT0nJ30KZnVuY3Rpb24gaGFuZGxlUmVzaXplKCl7aWYod2luZG93LmlubmVyV2lkdGg+TU9CSUxFX01BWF9XSURUSCl7cmVzZXRTdHlsZSgpO3JldHVybn0KYWRkU3R5bGUoKX0KaWYod2luZG93LmlzTW9iaWxlKXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignb3JpZW50YXRpb25jaGFuZ2UnLGhhbmRsZVJlc2l6ZSl9CnBvcHVwLmFkZEV2ZW50TGlzdGVuZXIodDc4Nl9QT1BVUF9TSE9XRURfRVZFTlRfTkFNRSxmdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtoYW5kbGVSZXNpemUoKX0pfSk7cG9wdXAuYWRkRXZlbnRMaXN0ZW5lcih0Nzg2X1BPUFVQX0NMT1NFRF9FVkVOVF9OQU1FLGZ1bmN0aW9uKCl7cmVzZXRTdHlsZSgpfSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsaGFuZGxlUmVzaXplKX0KZnVuY3Rpb24gdDk1OF9pbml0KHJlY0lkKXt2YXIgcmVjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWMnK3JlY0lkKTtpZighcmVjKXJldHVybjt2YXIgY29udGFpbmVyPXJlYy5xdWVyeVNlbGVjdG9yKCcudDk1OCcpO2lmKCFjb250YWluZXIpcmV0dXJuO3ZhciBzbGlkZXJDb250YWluZXI9cmVjLnF1ZXJ5U2VsZWN0b3IoJy50OTU4X19zbGlkZWNvbnRhaW5lcicpO3ZhciBpdGVtcz1yZWMucXVlcnlTZWxlY3RvckFsbCgnLnQ5NThfX2l0ZW0nKTt2YXIgY2FyZHM9cmVjLnF1ZXJ5U2VsZWN0b3JBbGwoJy50OTU4X19jYXJkJyk7dmFyIHRvdGFsU2xpZGVzPWl0ZW1zLmxlbmd0aDtpZighdG90YWxTbGlkZXMpe3JldHVybn0KdmFyIHNsaWRlcldpZHRoPXBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShpdGVtc1swXSxudWxsKS53aWR0aC5yZXBsYWNlKCdweCcsJycpKTt0OTU4X2NoZWNrU2l6ZShyZWMpO3NsaWRlckNvbnRhaW5lci5zdHlsZS53aWR0aD0oc2xpZGVyV2lkdGgqdG90YWxTbGlkZXMpKydweCc7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsdF90aHJvdHRsZShmdW5jdGlvbigpe3Q5NThfZmluZFZpc2libGVDYXJkcyhyZWMpO3Q5NThfaW5pdFBvcHVwKHJlYyk7dDk1OF9jaGVja1NpemUocmVjKTtzbGlkZXJXaWR0aD1wYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUoaXRlbXNbMF0sbnVsbCkud2lkdGgucmVwbGFjZSgncHgnLCcnKSk7c2xpZGVyQ29udGFpbmVyLnN0eWxlLndpZHRoPShzbGlkZXJXaWR0aCp0b3RhbFNsaWRlcykrJ3B4Jzt2YXIgbWF0cml4PShnZXRDb21wdXRlZFN0eWxlKHNsaWRlckNvbnRhaW5lcixudWxsKS50cmFuc2Zvcm18fCcnKS5yZXBsYWNlKC9bXjAtOVwtLixdL2csJycpLnNwbGl0KCcsJyk7dmFyIHg9bWF0cml4WzEyXXx8bWF0cml4WzRdO2lmKC0oKHRvdGFsU2xpZGVzLTEpKnNsaWRlcldpZHRoKT54KXtzbGlkZXJDb250YWluZXIuc3R5bGUudHJhbnNmb3JtPSd0cmFuc2xhdGUoLScrKHRvdGFsU2xpZGVzLTEpKnNsaWRlcldpZHRoKydweCwgMCknfX0pKTtpZih0eXBlb2YgalF1ZXJ5IT09J3VuZGVmaW5lZCcpeyQoY29udGFpbmVyKS5iaW5kKCdkaXNwbGF5Q2hhbmdlZCcsZnVuY3Rpb24oKXtzbGlkZXJDb250YWluZXIuc3R5bGUud2lkdGg9JzEwMCUnO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtzbGlkZXJXaWR0aD1wYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUoaXRlbXNbMF0sbnVsbCkud2lkdGgucmVwbGFjZSgncHgnLCcnKSk7c2xpZGVyQ29udGFpbmVyLnN0eWxlLndpZHRoPShzbGlkZXJXaWR0aCp0b3RhbFNsaWRlcykrJ3B4Jzt0OTU4X2NoZWNrU2l6ZShyZWMpO3Q5NThfZmluZFZpc2libGVDYXJkcyhyZWMpO3Q5NThfaW5pdFBvcHVwKHJlYyl9LDMwMCl9KX1lbHNle2NvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdkaXNwbGF5Q2hhbmdlZCcsZnVuY3Rpb24oKXtzbGlkZXJDb250YWluZXIuc3R5bGUud2lkdGg9JzEwMCUnO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtzbGlkZXJXaWR0aD1wYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUoaXRlbXNbMF0sbnVsbCkud2lkdGgucmVwbGFjZSgncHgnLCcnKSk7c2xpZGVyQ29udGFpbmVyLnN0eWxlLndpZHRoPShzbGlkZXJXaWR0aCp0b3RhbFNsaWRlcykrJ3B4Jzt0OTU4X2NoZWNrU2l6ZShyZWMpO3Q5NThfZmluZFZpc2libGVDYXJkcyhyZWMpO3Q5NThfaW5pdFBvcHVwKHJlYyl9LDMwMCl9KX0KcmVjLnF1ZXJ5U2VsZWN0b3IoJy50OTU4X19uZXh0JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7dDk1OF9zbGlkZShyZWMsJ3JpZ2h0Jyl9KTtyZWMucXVlcnlTZWxlY3RvcignLnQ5NThfX3ByZXZpb3VzJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7dDk1OF9zbGlkZShyZWMsJ2xlZnQnKX0pO2lmKHdpbmRvdy5pbm5lcldpZHRoPjY0MCl7dDk1OF9maW5kVmlzaWJsZUNhcmRzKHJlYyl9ZWxzZXt0X29uRnVuY0xvYWQoJ0hhbW1lcicsZnVuY3Rpb24oKXt0OTU4X2luaXRTbGlkZXJTd2lwZShyZWMpfSk7Zm9yKHZhciBpPTA7aTxjYXJkcy5sZW5ndGg7aSsrKXtjYXJkc1tpXS5jbGFzc0xpc3QuYWRkKCd0OTU4X19jYXJkLXZpc2libGUnKX19CnQ5NThfaW5pdFBvcHVwKHJlYyk7dmFyIGlzaU9TPS9pUGhvbmV8aVBhZHxpUG9kL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KXx8KG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignTWFjaW50b3NoJykmJidvbnRvdWNoZW5kJyBpbiBkb2N1bWVudCk7aWYoaXNpT1Mpe3ZhciBhY3RpdmVJbmRleDt2YXIgYWN0aXZlU2xpZGU7aWYoZG9jdW1lbnQucmVhZHlTdGF0ZT09PSdjb21wbGV0ZScpe2FjdGl2ZUluZGV4PWNvbnRhaW5lci5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2xpZGUtcG9zJyk7aWYoYWN0aXZlSW5kZXgpYWN0aXZlSW5kZXg9cGFyc2VJbnQoYWN0aXZlSW5kZXgsMTApO2FjdGl2ZVNsaWRlPXR5cGVvZiBhY3RpdmVJbmRleD09PSdudW1iZXInP2l0ZW1zW2FjdGl2ZUluZGV4XTpudWxsO2lmKGFjdGl2ZVNsaWRlKXQ5NThfX2hpZGVNb2JpbGVTbGlkZXMoYWN0aXZlU2xpZGUpfWVsc2V7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLGZ1bmN0aW9uKCl7YWN0aXZlSW5kZXg9Y29udGFpbmVyLmdldEF0dHJpYnV0ZSgnZGF0YS1zbGlkZS1wb3MnKTtpZihhY3RpdmVJbmRleClhY3RpdmVJbmRleD1wYXJzZUludChhY3RpdmVJbmRleCwxMCk7YWN0aXZlU2xpZGU9dHlwZW9mIGFjdGl2ZUluZGV4PT09J251bWJlcic/aXRlbXNbYWN0aXZlSW5kZXhdOm51bGw7YWN0aXZlU2xpZGU9aXRlbXNbYWN0aXZlSW5kZXhdO2lmKGFjdGl2ZVNsaWRlKXQ5NThfX2hpZGVNb2JpbGVTbGlkZXMoYWN0aXZlU2xpZGUpfSl9fX0KZnVuY3Rpb24gdDk1OF9jaGVja1NpemUocmVjKXt2YXIgY2FyZHM9cmVjLnF1ZXJ5U2VsZWN0b3JBbGwoJy50OTU4X19jYXJkX3ByZXZpZXcnKTt2YXIgbW9yZXM9cmVjLnF1ZXJ5U2VsZWN0b3JBbGwoJy50OTU4X19tb3JlLXdyYXBwZXInKTt2YXIgYmxvY2tIZWlnaHQ9cmVjLnF1ZXJ5U2VsZWN0b3IoJy50OTU4X19oZWlnaHQnKTt2YXIgbWF4V2lkdGg9cGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKGJsb2NrSGVpZ2h0LG51bGwpLndpZHRoLnJlcGxhY2UoJ3B4JywnJykpO3ZhciB3aW5kb3dNYXJnaW49ODA7dmFyIHdpbmRvd1dpZHRoPXdpbmRvdy5pbm5lcldpZHRoO3ZhciBjYXJkTWF4V2lkdGg9d2luZG93V2lkdGgtd2luZG93TWFyZ2luO2lmKG1heFdpZHRoPndpbmRvd1dpZHRoKXtmb3IodmFyIGk9MDtpPGNhcmRzLmxlbmd0aDtpKyspe2NhcmRzW2ldLnN0eWxlLm1heFdpZHRoPWNhcmRNYXhXaWR0aCsncHgnfQpmb3IodmFyIGk9MDtpPG1vcmVzLmxlbmd0aDtpKyspe21vcmVzW2ldLnN0eWxlLm1heFdpZHRoPWNhcmRNYXhXaWR0aCsncHgnfX1lbHNle2Zvcih2YXIgaT0wO2k8Y2FyZHMubGVuZ3RoO2krKyl7Y2FyZHNbaV0uc3R5bGUubWF4V2lkdGg9Jyd9CmZvcih2YXIgaT0wO2k8bW9yZXMubGVuZ3RoO2krKyl7bW9yZXNbaV0uc3R5bGUubWF4V2lkdGg9Jyd9fQpmb3IodmFyIGk9MDtpPGNhcmRzLmxlbmd0aDtpKyspe3ZhciBjYXJkPWNhcmRzW2ldO3ZhciBjYXJkU3R5bGU9Z2V0Q29tcHV0ZWRTdHlsZShjYXJkLG51bGwpO3ZhciBjYXJkUGFkZGluZ1RvcD1wYXJzZUludChjYXJkU3R5bGUucGFkZGluZ1RvcCl8fDA7dmFyIGNhcmRQYWRkaW5nQm90dG9tPXBhcnNlSW50KGNhcmRTdHlsZS5wYWRkaW5nQm90dG9tKXx8MDt2YXIgY2FyZEhlaWdodD1jYXJkLmNsaWVudEhlaWdodC0oY2FyZFBhZGRpbmdUb3ArY2FyZFBhZGRpbmdCb3R0b20pO3ZhciBjYXJkSW5uZXI9Y2FyZC5xdWVyeVNlbGVjdG9yKCcudDk1OF9fY2FyZC1pbm5lcicpO3ZhciBjYXJkSW5uZXJIZWlnaHQ9Y2FyZElubmVyLm9mZnNldEhlaWdodDtpZihjYXJkSGVpZ2h0PD1jYXJkSW5uZXJIZWlnaHQpe2NhcmQuY2xhc3NMaXN0LmFkZCgndDk1OF9fY2FyZF9mYWRlJyl9ZWxzZXtjYXJkLmNsYXNzTGlzdC5yZW1vdmUoJ3Q5NThfX2NhcmRfZmFkZScpfX19CmZ1bmN0aW9uIHQ5NThfaW5pdFNsaWRlclN3aXBlKHJlYyl7dmFyIHNsaWRlcldyYXBwZXI9cmVjLnF1ZXJ5U2VsZWN0b3IoJy50OTU4X19nYWxsZXJ5Jyk7dmFyIHRvdGFsU2xpZGVzPXJlYy5xdWVyeVNlbGVjdG9yQWxsKCcudDk1OF9faXRlbScpLmxlbmd0aDt2YXIgdGltZW91dDt2YXIgaXNTY3JvbGxpbmc9ITE7aWYodHlwZW9mIEhhbW1lciE9PSd1bmRlZmluZWQnKXtkZWxldGUgSGFtbWVyLmRlZmF1bHRzLmNzc1Byb3BzLnVzZXJTZWxlY3Q7dmFyIGhhbW1lcj1uZXcgSGFtbWVyKHNsaWRlcldyYXBwZXIse2RvbUV2ZW50czohMCxpbnB1dENsYXNzOkhhbW1lci5Ub3VjaElucHV0LHJlY29nbml6ZXJzOltbSGFtbWVyLlN3aXBlLHtkaXJlY3Rpb246SGFtbWVyLkRJUkVDVElPTl9IT1JJWk9OVEFMfV1dfSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsZnVuY3Rpb24oKXtpc1Njcm9sbGluZz0hMDtjbGVhclRpbWVvdXQodGltZW91dCk7dGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aXNTY3JvbGxpbmc9ITF9LDI1MCl9KTtpZih0b3RhbFNsaWRlcz09MSlyZXR1cm4hMTtoYW1tZXIub24oJ3N3aXBlbGVmdCcsZnVuY3Rpb24oZXZlbnQpe2lmKGlzU2Nyb2xsaW5nKXJldHVybiExO3NsaWRlcldyYXBwZXIuc2V0QXR0cmlidXRlKCdkYXRhLXNsaWRlci10b3VjaCcsJ3llcycpO2lmKGV2ZW50LmlzRmluYWwpe3Q5NThfc2xpZGUocmVjLCdyaWdodCcpO3NsaWRlcldyYXBwZXIuc2V0QXR0cmlidXRlKCdkYXRhLXNsaWRlci10b3VjaCcsJycpfX0pO2hhbW1lci5vbignc3dpcGVyaWdodCcsZnVuY3Rpb24oZXZlbnQpe2lmKGlzU2Nyb2xsaW5nKXJldHVybiExO3NsaWRlcldyYXBwZXIuc2V0QXR0cmlidXRlKCdkYXRhLXNsaWRlci10b3VjaCcsJ3llcycpO2lmKGV2ZW50LmlzRmluYWwpe3Q5NThfc2xpZGUocmVjLCdsZWZ0Jyk7c2xpZGVyV3JhcHBlci5zZXRBdHRyaWJ1dGUoJ2RhdGEtc2xpZGVyLXRvdWNoJywnJyl9fSl9fQpmdW5jdGlvbiB0OTU4X3NsaWRlKHJlYyxkaXJlY3Rpb24pe3ZhciBhbGxyZWNvcmRzPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbGxyZWNvcmRzJyk7dmFyIGNvbnRhaW5lcj1yZWMucXVlcnlTZWxlY3RvcignLnQ5NThfX3NsaWRlY29udGFpbmVyJyk7dmFyIGl0ZW1zPXJlYy5xdWVyeVNlbGVjdG9yQWxsKCcudDk1OF9faXRlbScpO3ZhciB0b3RhbFNsaWRlcz1pdGVtcy5sZW5ndGg7dmFyIHNsaWRlcldpZHRoPXBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShpdGVtc1swXSxudWxsKS53aWR0aC5yZXBsYWNlKCdweCcsJycpKTt2YXIgcG9zaXRpb249cGFyc2VJbnQoY29udGFpbmVyLmdldEF0dHJpYnV0ZSgnZGF0YS1zbGlkZS1wb3MnKSwxMCk7dmFyIGlzaU9TPS9pUGhvbmV8aVBhZHxpUG9kL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KXx8KG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignTWFjaW50b3NoJykmJidvbnRvdWNoZW5kJyBpbiBkb2N1bWVudCk7aWYoZGlyZWN0aW9uPT09J3JpZ2h0Jyl7Y29udGFpbmVyLnNldEF0dHJpYnV0ZSgnZGF0YS1zbGlkZS1wb3MnLCsrcG9zaXRpb24pO2lmKHBvc2l0aW9uPj10b3RhbFNsaWRlcyl7cG9zaXRpb249MDtjb250YWluZXIuc2V0QXR0cmlidXRlKCdkYXRhLXNsaWRlLXBvcycscG9zaXRpb24pfX1lbHNle2NvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2RhdGEtc2xpZGUtcG9zJywtLXBvc2l0aW9uKTtpZihwb3NpdGlvbjw9LTEpe3Bvc2l0aW9uPXRvdGFsU2xpZGVzLTE7Y29udGFpbmVyLnNldEF0dHJpYnV0ZSgnZGF0YS1zbGlkZS1wb3MnLHBvc2l0aW9uKX19CmNvbnRhaW5lci5zdHlsZS50cmFuc2Zvcm09J3RyYW5zbGF0ZSgtJytzbGlkZXJXaWR0aCpwb3NpdGlvbisncHgsIDApJztjb250YWluZXIuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uPScuM3MnO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0OTU4X2ZpbmRWaXNpYmxlQ2FyZHMocmVjKTtpZihpc2lPUyl7dmFyIGFjdGl2ZUluZGV4PWNvbnRhaW5lci5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2xpZGUtcG9zJyk7aWYoYWN0aXZlSW5kZXgpYWN0aXZlSW5kZXg9cGFyc2VJbnQoYWN0aXZlSW5kZXgsMTApO3ZhciBhY3RpdmVTbGlkZT10eXBlb2YgYWN0aXZlSW5kZXg9PT0nbnVtYmVyJz9pdGVtc1thY3RpdmVJbmRleF06bnVsbDtpZihhY3RpdmVTbGlkZSl0OTU4X19oaWRlTW9iaWxlU2xpZGVzKGFjdGl2ZVNsaWRlKX19LDM1MCk7aWYod2luZG93Lmxhenk9PT0neSd8fGFsbHJlY29yZHMuZ2V0QXR0cmlidXRlKCdkYXRhLXRpbGRhLWxhenknKT09PSd5ZXMnKXt0X29uRnVuY0xvYWQoJ3RfbGF6eWxvYWRfdXBkYXRlJyxmdW5jdGlvbigpe3RfbGF6eWxvYWRfdXBkYXRlKCl9KX19CmZ1bmN0aW9uIHQ5NThfZmluZFZpc2libGVDYXJkcyhyZWMpe3ZhciBjYXJkcz1yZWMucXVlcnlTZWxlY3RvckFsbCgnLnQ5NThfX2NhcmQnKTt2YXIgcHJldkNvbnRyb2w9cmVjLnF1ZXJ5U2VsZWN0b3IoJy50OTU4X19wcmV2aW91cycpO3ZhciBuZXh0Q29udHJvbD1yZWMucXVlcnlTZWxlY3RvcignLnQ5NThfX25leHQnKTtmb3IodmFyIGk9MDtpPGNhcmRzLmxlbmd0aDtpKyspe3ZhciBjYXJkPWNhcmRzW2ldO2NhcmQuY2xhc3NMaXN0LnJlbW92ZSgndDk1OF9fY2FyZC1sZWZ0Jyk7Y2FyZC5jbGFzc0xpc3QucmVtb3ZlKCd0OTU4X19jYXJkLXJpZ2h0Jyk7Y2FyZC5jbGFzc0xpc3QucmVtb3ZlKCd0OTU4X19jYXJkLXZpc2libGUnKTt2YXIgd2luZG93V2lkdGg9d2luZG93LmlubmVyV2lkdGg7dmFyIGNhcmRMZWZ0UG9zPWNhcmQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdDt2YXIgY2FyZFJpZ2h0UG9zPWNhcmRMZWZ0UG9zK3BhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShjYXJkLG51bGwpLndpZHRoLnJlcGxhY2UoJ3B4JywnJykpO2lmKGNhcmRMZWZ0UG9zPD0wJiZjYXJkUmlnaHRQb3M+PTApe2NhcmQuY2xhc3NMaXN0LmFkZCgndDk1OF9fY2FyZC1sZWZ0Jyl9ZWxzZSBpZihjYXJkTGVmdFBvczw9d2luZG93V2lkdGgmJmNhcmRSaWdodFBvcz49d2luZG93V2lkdGgpe2NhcmQuY2xhc3NMaXN0LmFkZCgndDk1OF9fY2FyZC1yaWdodCcpfWVsc2UgaWYoY2FyZExlZnRQb3M+PTAmJmNhcmRSaWdodFBvczw9d2luZG93V2lkdGgpe2NhcmQuY2xhc3NMaXN0LmFkZCgndDk1OF9fY2FyZC12aXNpYmxlJyl9fQp2YXIgbGVmdENhcmQ9cmVjLnF1ZXJ5U2VsZWN0b3IoJy50OTU4X19jYXJkLWxlZnQnKTt2YXIgcmlnaHRDYXJkPXJlYy5xdWVyeVNlbGVjdG9yKCcudDk1OF9fY2FyZC1yaWdodCcpO2lmKGxlZnRDYXJkKXt2YXIgbGVmdENhcmRSZWN0PWxlZnRDYXJkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7dmFyIGxlZnRDYXJkV2lkdGg9cGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKGxlZnRDYXJkLG51bGwpLndpZHRoLnJlcGxhY2UoJ3B4JywnJykpO3ZhciBsZWZ0Q2FyZE9mZnNldD1sZWZ0Q2FyZFdpZHRoLU1hdGguYWJzKGxlZnRDYXJkUmVjdCk7aWYobGVmdENhcmRPZmZzZXQ+PTMwKXtwcmV2Q29udHJvbC5zdHlsZS53aWR0aD1sZWZ0Q2FyZE9mZnNldCsncHgnfWVsc2V7cHJldkNvbnRyb2wuc3R5bGUud2lkdGg9MTAwKydweCd9fQppZihyaWdodENhcmQpe3ZhciByaWdodENhcmRSZWN0PXJpZ2h0Q2FyZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0O3ZhciByaWdodENhcmRTdHlsZT1nZXRDb21wdXRlZFN0eWxlKHJpZ2h0Q2FyZCxudWxsKTt2YXIgcGFkZGluZ0xlZnQ9cGFyc2VJbnQocmlnaHRDYXJkU3R5bGUucGFkZGluZ0xlZnQpfHwwO3ZhciBwYWRkaW5nUmlnaHQ9cGFyc2VJbnQocmlnaHRDYXJkU3R5bGUucGFkZGluZ1JpZ2h0KXx8MDt2YXIgcmlnaHRDYXJkV2lkdGg9cmlnaHRDYXJkLmNsaWVudFdpZHRoLShwYWRkaW5nTGVmdCtwYWRkaW5nUmlnaHQpO3ZhciByaWdodENhcmRPZmZzZXQ9cmlnaHRDYXJkV2lkdGgtKHJpZ2h0Q2FyZFJlY3QrcmlnaHRDYXJkV2lkdGgtd2luZG93LmlubmVyV2lkdGgpO2lmKHJpZ2h0Q2FyZE9mZnNldD49MzApe25leHRDb250cm9sLnN0eWxlLndpZHRoPXJpZ2h0Q2FyZE9mZnNldCsncHgnfWVsc2V7bmV4dENvbnRyb2wuc3R5bGUud2lkdGg9MTAwKydweCd9fX0KZnVuY3Rpb24gdDk1OF9pbml0UG9wdXAocmVjKXtpZihyZWMucXVlcnlTZWxlY3RvcignLnQ5NTgnKS5jbGFzc0xpc3QuY29udGFpbnMoJ3Q5NThfcHJldmlldycpKXJldHVybjt2YXIgZmFkZUNhcmRzPXJlYy5xdWVyeVNlbGVjdG9yQWxsKCcudDk1OF9fY2FyZF9mYWRlW2RhdGEtcmV2aWV3LWJsb2NrXj0icmV2aWV3Il0nKTtmb3IodmFyIGk9MDtpPGZhZGVDYXJkcy5sZW5ndGg7aSsrKXtmYWRlQ2FyZHNbaV0uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7dmFyIGNhcmQ9dGhpcztpZihjYXJkLmNsYXNzTGlzdC5jb250YWlucygndDk1OF9fY2FyZC12aXNpYmxlJykpe3Q5NThfc2hvd1BvcHVwKHJlYyk7dmFyIHBvcHVwPXJlYy5xdWVyeVNlbGVjdG9yKCcudC1wb3B1cCcpO3ZhciByZXZpZXdJZD1jYXJkLmdldEF0dHJpYnV0ZSgnZGF0YS1yZXZpZXctYmxvY2snKS5yZXBsYWNlKCdyZXZpZXcnLCcnKTt2YXIgcmV2aWV3UG9wdXA9cG9wdXAucXVlcnlTZWxlY3RvcignLnQ5NThfX3BvcHVwLWl0ZW1bZGF0YS1yZXZpZXctaW5kZXg9IicrcmV2aWV3SWQrJyJdJyk7dmFyIHBvcHVwSXRlbXM9cG9wdXAucXVlcnlTZWxlY3RvckFsbCgnLnQ5NThfX3BvcHVwLWl0ZW0nKTtmb3IodmFyIGk9MDtpPHBvcHVwSXRlbXMubGVuZ3RoO2krKyl7cG9wdXBJdGVtc1tpXS5zdHlsZS5kaXNwbGF5PSdub25lJ30KcmV2aWV3UG9wdXAuc3R5bGUuZGlzcGxheT0nYmxvY2snfX0pfX0KZnVuY3Rpb24gdDk1OF9jaGVja1BvcHVwU2l6ZShyZWMpe3ZhciBwb3B1cENvbnRhaW5lcj1yZWMucXVlcnlTZWxlY3RvcignLnQtcG9wdXBfX2NvbnRhaW5lcicpO3ZhciBwb3B1cEhlaWdodD1wYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUocG9wdXBDb250YWluZXIsbnVsbCkuaGVpZ2h0LnJlcGxhY2UoJ3B4JywnJykpO3ZhciB3aW5kb3dNYXJnaW49MTIwO3ZhciB3aW5kb3dIZWlnaHQ9d2luZG93LmlubmVySGVpZ2h0LXdpbmRvd01hcmdpbjtpZihwb3B1cEhlaWdodD53aW5kb3dIZWlnaHQpe3BvcHVwQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ3QtcG9wdXBfX2NvbnRhaW5lci1zdGF0aWMnKX1lbHNle3BvcHVwQ29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoJ3QtcG9wdXBfX2NvbnRhaW5lci1zdGF0aWMnKX19CmZ1bmN0aW9uIHQ5NThfc2hvd1BvcHVwKHJlYyl7dmFyIGFsbHJlY29yZHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FsbHJlY29yZHMnKTt2YXIgcG9wdXA9cmVjLnF1ZXJ5U2VsZWN0b3IoJy50LXBvcHVwJyk7dmFyIHBvcHVwQ29udGFpbmVyPXJlYy5xdWVyeVNlbGVjdG9yKCcudC1wb3B1cF9fY29udGFpbmVyJyk7dmFyIHBvcHVwQ2xvc2U9cmVjLnF1ZXJ5U2VsZWN0b3IoJy50LXBvcHVwX19jbG9zZScpO3BvcHVwLnN0eWxlLmRpc3BsYXk9J2Jsb2NrJztzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cG9wdXBDb250YWluZXIuY2xhc3NMaXN0LmFkZCgndC1wb3B1cF9fY29udGFpbmVyLWFuaW1hdGVkJyk7cG9wdXAuY2xhc3NMaXN0LmFkZCgndC1wb3B1cF9zaG93Jyk7dDk1OF9jaGVja1BvcHVwU2l6ZShyZWMpO2lmKHdpbmRvdy5sYXp5PT09J3knfHxhbGxyZWNvcmRzLmdldEF0dHJpYnV0ZSgnZGF0YS10aWxkYS1sYXp5Jyk9PT0neWVzJyl7dF9vbkZ1bmNMb2FkKCd0X2xhenlsb2FkX3VwZGF0ZScsZnVuY3Rpb24oKXt0X2xhenlsb2FkX3VwZGF0ZSgpfSl9fSw1MCk7aWYodHlwZW9mIHRfdHJpZ2dlckV2ZW50PT09J2Z1bmN0aW9uJyl0X3RyaWdnZXJFdmVudChkb2N1bWVudC5ib2R5LCdwb3B1cFNob3dlZCcpO2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgndC1ib2R5X3BvcHVwc2hvd2VkJyk7cG9wdXAucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJyx0OTU4X21vdXNlZG93bkV2ZW50KTtwb3B1cC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLHQ5NThfbW91c2Vkb3duRXZlbnQpO3BvcHVwQ2xvc2UucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLHQ5NThfY2xvc2VQb3B1cCk7cG9wdXBDbG9zZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsdDk1OF9jbG9zZVBvcHVwKTtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJyx0OTU4X2tleWRvd25FdmVudCk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsdDk1OF9rZXlkb3duRXZlbnQpfQpmdW5jdGlvbiB0OTU4X21vdXNlZG93bkV2ZW50KGV2ZW50KXt2YXIgd2luZG93V2lkdGg9d2luZG93LmlubmVyV2lkdGg7dmFyIG1heFNjcm9sbEJhcldpZHRoPTE3O3ZhciB3aW5kb3dXaXRob3V0U2Nyb2xsQmFyPXdpbmRvd1dpZHRoLW1heFNjcm9sbEJhcldpZHRoO2lmKGV2ZW50LmNsaWVudFg+d2luZG93V2l0aG91dFNjcm9sbEJhcilyZXR1cm47aWYoZXZlbnQudGFyZ2V0PT10aGlzKXQ5NThfY2xvc2VQb3B1cCgpfQpmdW5jdGlvbiB0OTU4X2tleWRvd25FdmVudChldmVudCl7aWYoZXZlbnQua2V5Q29kZT09MjcpdDk1OF9jbG9zZVBvcHVwKCl9CmZ1bmN0aW9uIHQ5NThfY2xvc2VQb3B1cCgpe3ZhciBwb3B1cFNob3c9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnQtcG9wdXAudC1wb3B1cF9zaG93Jyk7aWYocG9wdXBTaG93KXtpZih0eXBlb2YgdF90cmlnZ2VyRXZlbnQ9PT0nZnVuY3Rpb24nKXRfdHJpZ2dlckV2ZW50KGRvY3VtZW50LmJvZHksJ3BvcHVwSGlkZGVuJyk7ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCd0LWJvZHlfcG9wdXBzaG93ZWQnKTtwb3B1cFNob3cuY2xhc3NMaXN0LnJlbW92ZSgndC1wb3B1cF9zaG93Jyk7c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBwb3B1cHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnQtcG9wdXA6bm90KC50LXBvcHVwX3Nob3cpJyk7ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A9MDtmb3IodmFyIGk9MDtpPHBvcHVwcy5sZW5ndGg7aSsrKXtwb3B1cHNbaV0uc3R5bGUuZGlzcGxheT0nbm9uZSd9fSwzMDApfX0KZnVuY3Rpb24gdDk1OF9faGlkZU1vYmlsZVNsaWRlcyhhY3RpdmVTbGlkZSl7aWYoIWFjdGl2ZVNsaWRlKXJldHVybjt2YXIgc2xpZGVXcmFwcGVyPWFjdGl2ZVNsaWRlLmNsb3Nlc3QoJy50OTU4X19zbGlkZWNvbnRhaW5lcicpO3ZhciBzbGlkZXM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoc2xpZGVXcmFwcGVyLnF1ZXJ5U2VsZWN0b3JBbGwoJy50LXNsZHNfX2l0ZW06bm90KC50LXNsZHNfX2l0ZW1fZHVtbXkpOm5vdChbYXJpYS1oaWRkZW49InRydWUiXSknKSk7dmFyIHNsaWRlV2lkdGg9Z2V0Q29tcHV0ZWRTdHlsZShhY3RpdmVTbGlkZSkud2lkdGg7dmFyIG1heFNsaWRlc1ZpZXdlZD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg+OTYwPzU6MztpZihzbGlkZXMubGVuZ3RoPD1tYXhTbGlkZXNWaWV3ZWQqMilyZXR1cm47dmFyIGFjdGl2ZVNsaWRlSW5kZXg9YWN0aXZlU2xpZGUuZ2V0QXR0cmlidXRlKCdkYXRhLXNsaWRlLWluZGV4Jyk7YWN0aXZlU2xpZGVJbmRleD1wYXJzZUludChhY3RpdmVTbGlkZUluZGV4LDEwKTt2YXIgYWN0aXZlSW5kZXhMaXN0PVthY3RpdmVTbGlkZUluZGV4XTtmb3IodmFyIGk9MTtpPG1heFNsaWRlc1ZpZXdlZDtpKyspe2lmKGFjdGl2ZVNsaWRlSW5kZXgraTw9c2xpZGVzLmxlbmd0aCl7YWN0aXZlSW5kZXhMaXN0LnB1c2goYWN0aXZlU2xpZGVJbmRleCtpKX1lbHNle2FjdGl2ZUluZGV4TGlzdC5wdXNoKGkpfQppZihhY3RpdmVTbGlkZUluZGV4LWk+MCl7YWN0aXZlSW5kZXhMaXN0LnB1c2goYWN0aXZlU2xpZGVJbmRleC1pKX1lbHNle2FjdGl2ZUluZGV4TGlzdC5wdXNoKHNsaWRlcy5sZW5ndGgrMS1pKX19CnZhciBpbm5hY3RpdmVDbGFzcz0ndC1zbGRzX19pdGVtLWlubmFjdGl2ZSc7c2xpZGVzLmZvckVhY2goZnVuY3Rpb24oc2xpZGUpe3ZhciBpc0FjdGl2ZUluZGV4U2xpZGU9YWN0aXZlSW5kZXhMaXN0LnNvbWUoZnVuY3Rpb24oaW5kZXgpe3JldHVybiBwYXJzZUludChzbGlkZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2xpZGUtaW5kZXgnKSwxMCk9PT1pbmRleH0pO2lzQWN0aXZlSW5kZXhTbGlkZT9zbGlkZS5jbGFzc0xpc3QucmVtb3ZlKGlubmFjdGl2ZUNsYXNzKTpzbGlkZS5jbGFzc0xpc3QuYWRkKGlubmFjdGl2ZUNsYXNzKTtzbGlkZS5zdHlsZS53aWR0aD1zbGlkZVdpZHRoJiYhaXNBY3RpdmVJbmRleFNsaWRlP3NsaWRlV2lkdGg6Jyd9KX0KZnVuY3Rpb24gdDg0OV9pbml0KHJlY0lkKXt2YXIgcmVjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWMnK3JlY0lkKTtpZighcmVjKXJldHVybjt2YXIgdG9nZ2xlcnM9cmVjLnF1ZXJ5U2VsZWN0b3JBbGwoJy50ODQ5X19oZWFkZXInKTt2YXIgaXNMYXp5PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbGxyZWNvcmRzJykuZ2V0QXR0cmlidXRlKCdkYXRhLXRpbGRhLWxhenknKTt2YXIgYWNjb3JkaW9uPXJlYy5xdWVyeVNlbGVjdG9yKCcudDg0OV9fYWNjb3JkaW9uJyk7aWYoYWNjb3JkaW9uKXthY2NvcmRpb249YWNjb3JkaW9uLmdldEF0dHJpYnV0ZSgnZGF0YS1hY2NvcmRpb24nKX1lbHNle2FjY29yZGlvbj0nZmFsc2UnfQp2YXIgY2FjaGVkSGVpZ2h0PTA7dmFyIGNhY2hlZFRvcD0wO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodG9nZ2xlcnMsZnVuY3Rpb24odG9nZ2xlcil7dG9nZ2xlci5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXt2YXIgdGFyZ2V0PXRvZ2dsZXI7dmFyIGNvbnRlbnQ9dGFyZ2V0Lm5leHRFbGVtZW50U2libGluZzt2YXIgdHJpZ2dlckJ1dHRvbj10YXJnZXQucXVlcnlTZWxlY3RvcignLnQ4NDlfX3RyaWdnZXItYnV0dG9uJyk7aWYoYWNjb3JkaW9uPT09J3RydWUnKXtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHRvZ2dsZXJzLGZ1bmN0aW9uKGhlYWRlcil7aWYodGFyZ2V0IT09aGVhZGVyKXtoZWFkZXIuY2xhc3NMaXN0LnJlbW92ZSgndDg0OV9fb3BlbmVkJyk7dDg0OV9zbGlkZVVwKGhlYWRlci5uZXh0RWxlbWVudFNpYmxpbmcsdGFyZ2V0KX19KX0KaWYodHJpZ2dlckJ1dHRvbil7dmFyIGlzRXhwYW5kZWQ9dHJpZ2dlckJ1dHRvbi5nZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnKT09PSd0cnVlJzt0cmlnZ2VyQnV0dG9uLnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsIWlzRXhwYW5kZWQpO2NvbnRlbnQuaGlkZGVuPWlzRXhwYW5kZWR9CnRhcmdldC5jbGFzc0xpc3QudG9nZ2xlKCd0ODQ5X19vcGVuZWQnKTt0YXJnZXQuc3R5bGUucG9pbnRlckV2ZW50cz0nbm9uZSc7dDg0OV9zbGlkZVRvZ2dsZSh0YXJnZXQubmV4dEVsZW1lbnRTaWJsaW5nLHRhcmdldCk7aWYod2luZG93Lmxhenk9PT0neSd8fGlzTGF6eT09PSd5ZXMnKXt0X29uRnVuY0xvYWQoJ3RfbGF6eWxvYWRfdXBkYXRlJyxmdW5jdGlvbigpe3RfbGF6eWxvYWRfdXBkYXRlKCl9KX19KX0pO2Z1bmN0aW9uIHQ4NDlfc2xpZGVUb2dnbGUodGFyZ2V0LHRyaWdnZXJFbGVtZW50LGR1cmF0aW9uKXtpZighdGFyZ2V0KXJldHVybjtpZighZHVyYXRpb24mJmR1cmF0aW9uIT09MClkdXJhdGlvbj0zMDA7aWYod2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5kaXNwbGF5PT09J25vbmUnKXtyZXR1cm4gdDg0OV9zbGlkZURvd24odGFyZ2V0LHRyaWdnZXJFbGVtZW50LGR1cmF0aW9uKX1lbHNle2NhY2hlZEhlaWdodD0wO3JldHVybiB0ODQ5X3NsaWRlVXAodGFyZ2V0LHRyaWdnZXJFbGVtZW50LGR1cmF0aW9uKX19CmZ1bmN0aW9uIHQ4NDlfc2xpZGVVcCh0YXJnZXQsdHJpZ2dlckVsZW1lbnQsZHVyYXRpb24pe2lmKCF0YXJnZXQpcmV0dXJuO2lmKCFkdXJhdGlvbiYmZHVyYXRpb24hPT0wKWR1cmF0aW9uPTMwMDt0YXJnZXQuc3R5bGUudHJhbnNpdGlvblByb3BlcnR5PSdoZWlnaHQsIG1hcmdpbiwgcGFkZGluZyc7dGFyZ2V0LnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbj1kdXJhdGlvbisnbXMnO3RhcmdldC5zdHlsZS5ib3hTaXppbmc9J2JvcmRlci1ib3gnO3RhcmdldC5zdHlsZS5oZWlnaHQ9dGFyZ2V0Lm9mZnNldEhlaWdodCsncHgnO3RhcmdldC5vZmZzZXRIZWlnaHQ7dGFyZ2V0LnN0eWxlLm92ZXJmbG93PSdoaWRkZW4nO3RhcmdldC5zdHlsZS5oZWlnaHQ9JzAnO3RhcmdldC5zdHlsZS5wYWRkaW5nVG9wPScwJzt0YXJnZXQuc3R5bGUucGFkZGluZ0JvdHRvbT0nMCc7dGFyZ2V0LnN0eWxlLm1hcmdpblRvcD0nMCc7dGFyZ2V0LnN0eWxlLm1hcmdpbkJvdHRvbT0nMCc7c2V0VGltZW91dChmdW5jdGlvbigpe3RyaWdnZXJFbGVtZW50LnN0eWxlLnBvaW50ZXJFdmVudHM9J2F1dG8nO3RhcmdldC5zdHlsZS5kaXNwbGF5PSdub25lJzt0YXJnZXQuc3R5bGUuaGVpZ2h0PScnO3RhcmdldC5zdHlsZS5wYWRkaW5nVG9wPScnO3RhcmdldC5zdHlsZS5wYWRkaW5nQm90dG9tPScnO3RhcmdldC5zdHlsZS5tYXJnaW5Ub3A9Jyc7dGFyZ2V0LnN0eWxlLm1hcmdpbkJvdHRvbT0nJzt0YXJnZXQuc3R5bGUub3ZlcmZsb3c9Jyc7dGFyZ2V0LnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbj0nJzt0YXJnZXQuc3R5bGUudHJhbnNpdGlvblByb3BlcnR5PScnfSxkdXJhdGlvbil9CmZ1bmN0aW9uIHQ4NDlfc2xpZGVEb3duKHRhcmdldCx0cmlnZ2VyRWxlbWVudCxkdXJhdGlvbil7aWYoIXRhcmdldClyZXR1cm47aWYoIWR1cmF0aW9uJiZkdXJhdGlvbiE9PTApZHVyYXRpb249MzAwO3RhcmdldC5zdHlsZS5kaXNwbGF5PScnO3ZhciBjYXNoZWREaXNwbGF5PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuZGlzcGxheTtpZihjYXNoZWREaXNwbGF5PT09J25vbmUnKWNhc2hlZERpc3BsYXk9J2Jsb2NrJzt0YXJnZXQuc3R5bGUuZGlzcGxheT1jYXNoZWREaXNwbGF5O3ZhciB0YXJnZXRIZWlnaHQ9dGFyZ2V0Lm9mZnNldEhlaWdodDt2YXIgdGFyZ2V0VG9wPXRhcmdldC5vZmZzZXRUb3A7aWYod2luZG93LnZpc3VhbFZpZXdwb3J0KXt2YXIgdmlzaWJsZVRvcD10YXJnZXRUb3Atd2luZG93LnZpc3VhbFZpZXdwb3J0LnBhZ2VUb3A7aWYoY2FjaGVkVG9wJiZhY2NvcmRpb249PT0ndHJ1ZScmJnRhcmdldFRvcD5jYWNoZWRUb3AmJndpbmRvdy5zY3JvbGxZPmNhY2hlZFRvcCl7d2luZG93LnNjcm9sbFRvKHdpbmRvdy5zY3JvbGxYLHRhcmdldFRvcC1jYWNoZWRIZWlnaHQtdmlzaWJsZVRvcCl9fQp0YXJnZXQuc3R5bGUub3ZlcmZsb3c9J2hpZGRlbic7dGFyZ2V0LnN0eWxlLmhlaWdodD0nMCc7dGFyZ2V0LnN0eWxlLnBhZGRpbmdUb3A9JzAnO3RhcmdldC5zdHlsZS5wYWRkaW5nQm90dG9tPScwJzt0YXJnZXQuc3R5bGUubWFyZ2luVG9wPScwJzt0YXJnZXQuc3R5bGUubWFyZ2luQm90dG9tPScwJzt0YXJnZXQub2Zmc2V0SGVpZ2h0O3RhcmdldC5zdHlsZS5ib3hTaXppbmc9J2JvcmRlci1ib3gnO3RhcmdldC5zdHlsZS50cmFuc2l0aW9uUHJvcGVydHk9J2hlaWdodCwgbWFyZ2luLCBwYWRkaW5nJzt0YXJnZXQuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uPWR1cmF0aW9uKydtcyc7dGFyZ2V0LnN0eWxlLmhlaWdodD10YXJnZXRIZWlnaHQrJ3B4Jzt0YXJnZXQuc3R5bGUucGFkZGluZ1RvcD0nJzt0YXJnZXQuc3R5bGUucGFkZGluZ0JvdHRvbT0nJzt0YXJnZXQuc3R5bGUubWFyZ2luVG9wPScnO3RhcmdldC5zdHlsZS5tYXJnaW5Cb3R0b209Jyc7c2V0VGltZW91dChmdW5jdGlvbigpe3RyaWdnZXJFbGVtZW50LnN0eWxlLnBvaW50ZXJFdmVudHM9J2F1dG8nO3RhcmdldC5zdHlsZS5oZWlnaHQ9Jyc7dGFyZ2V0LnN0eWxlLm92ZXJmbG93PScnO3RhcmdldC5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb249Jyc7dGFyZ2V0LnN0eWxlLnRyYW5zaXRpb25Qcm9wZXJ0eT0nJztjYWNoZWRIZWlnaHQ9dGFyZ2V0SGVpZ2h0O2NhY2hlZFRvcD10YXJnZXRUb3B9LGR1cmF0aW9uKX19CmZ1bmN0aW9uIHQzOTdfaW5pdChyZWNpZCl7dmFyIHJlYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVjJytyZWNpZCk7aWYoIXJlYylyZXR1cm47dmFyIGFsbFJlY29yZHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FsbHJlY29yZHMnKTt2YXIgdGlsZGFNb2RlPWFsbFJlY29yZHM/YWxsUmVjb3Jkcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtdGlsZGEtbW9kZScpOicnO3ZhciB0aWxkYUxhenlNb2RlPWFsbFJlY29yZHM/YWxsUmVjb3Jkcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtdGlsZGEtbGF6eScpOicnO3ZhciB0YWJzPXJlYz9yZWMucXVlcnlTZWxlY3RvckFsbCgnLnQzOTdfX3RhYicpOltdO2lmKHRpbGRhTW9kZSE9PSdlZGl0JyYmdGlsZGFNb2RlIT09J3ByZXZpZXcnKXt0Mzk3X3Njcm9sbFRvVGFicyhyZWNpZCk7dmFyIGFjdGl2ZVRhYj1yZWMucXVlcnlTZWxlY3RvcignLnQzOTdfX3RhYl9hY3RpdmUnKTtpZihhY3RpdmVUYWIpe3ZhciBjdXJyZW50QnV0dG9uPWFjdGl2ZVRhYi5xdWVyeVNlbGVjdG9yKCcudDM5N19fdGl0bGUnKTtpZihjdXJyZW50QnV0dG9uKXtjdXJyZW50QnV0dG9uLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLDApO2N1cnJlbnRCdXR0b24uc2V0QXR0cmlidXRlKCdhcmlhLXNlbGVjdGVkJywhMCl9CnZhciBjdXJyZW50VGFiSW5kZXg9YWN0aXZlVGFiLmdldEF0dHJpYnV0ZSgnZGF0YS10YWItbnVtYmVyJyk7dmFyIHdyYXBwZXI9cmVjLnF1ZXJ5U2VsZWN0b3IoJy50Mzk3X193cmFwcGVyJyk7d3JhcHBlci5zZXRBdHRyaWJ1dGUoJ2RhdGEtdGFiLWN1cnJlbnQnLGN1cnJlbnRUYWJJbmRleCl9fQp0Mzk3X2FkZEF0dHJpYnV0ZXNUb0Jsb2Nrc0luc2lkZVRhYnMocmVjaWQsdGFicyk7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0YWJzLGZ1bmN0aW9uKHRhYixpKXt0YWIuc2V0QXR0cmlidXRlKCdkYXRhLXRhYi1pbmRleCcsaSk7dGFiLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbihldmVudCl7dmFyIHRhYk51bWJlcj1pKzE7dmFyIHRhcmdldFRhYj1ldmVudC50YXJnZXQuY2xvc2VzdCgnLnQzOTdfX3RhYicpO2lmKHRhcmdldFRhYiYmdGFyZ2V0VGFiLmNsYXNzTGlzdC5jb250YWlucygndDM5N19fdGFiX2FjdGl2ZScpJiYhZXZlbnQuaXNUcnVzdGVkKXJldHVybjt0Mzk3X3N3aXRjaEJldHdlZW5UYWJzKHJlY2lkLHRhYk51bWJlcix0YXJnZXRUYWIsdGlsZGFNb2RlLHRpbGRhTGF6eU1vZGUpfSk7dGFiLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLGZ1bmN0aW9uKGV2ZW50KXt2YXIgY3VycmVudEluZGV4PU51bWJlcihyZWMucXVlcnlTZWxlY3RvcignLnQzOTdfX3dyYXBwZXInKS5nZXRBdHRyaWJ1dGUoJ2RhdGEtdGFiLWN1cnJlbnQnKSk7dmFyIHRhcmdldFRhYj1ldmVudC50YXJnZXQuY2xvc2VzdCgnLnQzOTdfX3RhYicpO2lmKHRhcmdldFRhYiYmdGFyZ2V0VGFiLmNsYXNzTGlzdC5jb250YWlucygndDM5N19fdGFiX2FjdGl2ZScpJiYhZXZlbnQuaXNUcnVzdGVkKXJldHVybjt2YXIgcHJldmVudD0hMTtzd2l0Y2goZXZlbnQua2V5KXtjYXNlICdMZWZ0JzpjYXNlICdBcnJvd0xlZnQnOmN1cnJlbnRJbmRleD1jdXJyZW50SW5kZXg9PT0xP3RhYnMubGVuZ3RoOmN1cnJlbnRJbmRleC0xO3RhcmdldFRhYj1yZWMucXVlcnlTZWxlY3RvcignW2RhdGEtdGFiLW51bWJlcj0iJytjdXJyZW50SW5kZXgrJyJdJyk7dDM5N19zd2l0Y2hCZXR3ZWVuVGFicyhyZWNpZCxjdXJyZW50SW5kZXgsdGFyZ2V0VGFiLHRpbGRhTW9kZSx0aWxkYUxhenlNb2RlKTt0Mzk3X3Nob3dBY3RpdmVUYWJGcm9tS2V5Ym9hcmQocmVjaWQsY3VycmVudEluZGV4LHRhYnMpO3ByZXZlbnQ9ITA7YnJlYWs7Y2FzZSAnUmlnaHQnOmNhc2UgJ0Fycm93UmlnaHQnOmN1cnJlbnRJbmRleD1jdXJyZW50SW5kZXg9PT10YWJzLmxlbmd0aD8xOmN1cnJlbnRJbmRleCsxO3RhcmdldFRhYj1yZWMucXVlcnlTZWxlY3RvcignW2RhdGEtdGFiLW51bWJlcj0iJytjdXJyZW50SW5kZXgrJyJdJyk7dDM5N19zd2l0Y2hCZXR3ZWVuVGFicyhyZWNpZCxjdXJyZW50SW5kZXgsdGFyZ2V0VGFiLHRpbGRhTW9kZSx0aWxkYUxhenlNb2RlKTt0Mzk3X3Nob3dBY3RpdmVUYWJGcm9tS2V5Ym9hcmQocmVjaWQsY3VycmVudEluZGV4LHRhYnMpO3ByZXZlbnQ9ITA7YnJlYWs7ZGVmYXVsdDpicmVha30KaWYocHJldmVudCl7ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7ZXZlbnQucHJldmVudERlZmF1bHQoKX19KX0pO2lmKHRhYnMubGVuZ3RoKXt0Mzk3X2FsbHRhYnNfdXBkYXRlQ29udGVudChyZWNpZCk7dDM5N191cGRhdGVDb250ZW50QnlTZWxlY3QocmVjaWQpO3ZhciBiZ0NvbG9yPXJlYz9yZWMuc3R5bGUuYmFja2dyb3VuZENvbG9yOicjZmZmZmZmJzt2YXIgYmdDb2xvclRhcmdldHM9cmVjLnF1ZXJ5U2VsZWN0b3JBbGwoJy50Mzk3X19zZWxlY3QsIC50Mzk3X19maXJlZm94Zml4Jyk7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChiZ0NvbG9yVGFyZ2V0cyxmdW5jdGlvbih0YXJnZXQpe3RhcmdldC5zdHlsZS5iYWNrZ3JvdW5kPWJnQ29sb3J9KX0KZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKGUpe2lmKGUudGFyZ2V0LmNsb3Nlc3QoJ1tocmVmKj0iIyEvdGFiLycrcmVjaWQrJyJdJykpe3ZhciBjdXJyZW50TGluaz1lLnRhcmdldC5jbG9zZXN0KCdbaHJlZio9IiMhL3RhYi8nK3JlY2lkKyciXScpO3ZhciBoYXNoPWN1cnJlbnRMaW5rLmhhc2g7dDM5N19zY3JvbGxUb1RhYnMocmVjaWQsaGFzaCl9fSl9CmZ1bmN0aW9uIHQzOTdfYWRkQXR0cmlidXRlc1RvQmxvY2tzSW5zaWRlVGFicyhyZWNpZCx0YWJzKXtpZih0YWJzLmxlbmd0aD4wKXtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHRhYnMsZnVuY3Rpb24odGFiLGkpe3ZhciBmaXJzdEJsb2NrSW5zaWRlVGFiSWQ9dGFiLmdldEF0dHJpYnV0ZSgnZGF0YS10YWItcmVjLWlkcycpLnNwbGl0KCcsJylbMF07dmFyIGZpcnN0QmxvY2tJbnNpZGVUYWI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlYycrZmlyc3RCbG9ja0luc2lkZVRhYklkKTtpZihmaXJzdEJsb2NrSW5zaWRlVGFiJiYhZmlyc3RCbG9ja0luc2lkZVRhYi5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWxsZWRieScpKXtmaXJzdEJsb2NrSW5zaWRlVGFiLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbGxlZGJ5JywndGFiJysoaSsxKSsnXycrcmVjaWQpfQppZihmaXJzdEJsb2NrSW5zaWRlVGFiJiYhZmlyc3RCbG9ja0luc2lkZVRhYi5nZXRBdHRyaWJ1dGUoJ3JvbGUnKSl7Zmlyc3RCbG9ja0luc2lkZVRhYi5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCd0YWJwYW5lbCcpfQppZihmaXJzdEJsb2NrSW5zaWRlVGFiJiYhZmlyc3RCbG9ja0luc2lkZVRhYi5nZXRBdHRyaWJ1dGUoJ3RhYmluZGV4Jykpe2ZpcnN0QmxvY2tJbnNpZGVUYWIuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsJzAnKX19KX19CmZ1bmN0aW9uIHQzOTdfc3dpdGNoQmV0d2VlblRhYnMocmVjaWQsdGFiTnVtYmVyLHRhcmdldFRhYix0aWxkYU1vZGUsdGlsZGFMYXp5TW9kZSl7dmFyIHJlYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVjJytyZWNpZCk7aWYoIXJlYylyZXR1cm47dmFyIGFjdGl2ZVRhYj1yZWMucXVlcnlTZWxlY3RvcignLnQzOTdfX3RhYl9hY3RpdmUnKTtpZihhY3RpdmVUYWIpe2FjdGl2ZVRhYi5jbGFzc0xpc3QucmVtb3ZlKCd0Mzk3X190YWJfYWN0aXZlJyk7dmFyIGFjdGl2ZUJ1dHRvbj1hY3RpdmVUYWIucXVlcnlTZWxlY3RvcignLnQzOTdfX3RpdGxlJyk7aWYoYWN0aXZlQnV0dG9uKXthY3RpdmVCdXR0b24uc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsLTEpO2FjdGl2ZUJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnLCExKX19CnRhcmdldFRhYi5jbGFzc0xpc3QuYWRkKCd0Mzk3X190YWJfYWN0aXZlJyk7dmFyIHRhcmdldEJ1dHRvbj10YXJnZXRUYWIucXVlcnlTZWxlY3RvcignLnQzOTdfX3RpdGxlJyk7aWYodGFyZ2V0QnV0dG9uKXt0YXJnZXRCdXR0b24uc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsMCk7dGFyZ2V0QnV0dG9uLnNldEF0dHJpYnV0ZSgnYXJpYS1zZWxlY3RlZCcsITApfQp0Mzk3X3JlbW92ZVVybCgpO2lmKHRpbGRhTW9kZSE9PSdlZGl0JyYmdGlsZGFNb2RlIT09J3ByZXZpZXcnJiZ0YWJOdW1iZXImJnR5cGVvZiBoaXN0b3J5LnJlcGxhY2VTdGF0ZSE9PSd1bmRlZmluZWQnKXt0cnl7d2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKCcnLCcnLHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4rd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKycjIS90YWIvJytyZWNpZCsnLScrdGFiTnVtYmVyKX1jYXRjaChlcnIpe319CnJlYy5xdWVyeVNlbGVjdG9yKCcudDM5N19fd3JhcHBlcicpLnNldEF0dHJpYnV0ZSgnZGF0YS10YWItY3VycmVudCcsdGFiTnVtYmVyKTt0Mzk3X2FsbHRhYnNfdXBkYXRlQ29udGVudChyZWNpZCk7dDM5N191cGRhdGVTZWxlY3QocmVjaWQpO3ZhciBob29rQmxvY2tzPXRhcmdldFRhYi5nZXRBdHRyaWJ1dGUoJ2RhdGEtdGFiLXJlYy1pZHMnKS5zcGxpdCgnLCcpO3ZhciBldmVudD1kb2N1bWVudC5jcmVhdGVFdmVudCgnRXZlbnQnKTtldmVudC5pbml0RXZlbnQoJ2Rpc3BsYXlDaGFuZ2VkJywhMCwhMCk7dmFyIGhvb2tzQ29weT1ob29rQmxvY2tzLnNsaWNlKCk7aG9va3NDb3B5LmZvckVhY2goZnVuY3Rpb24ocmVjaWQpe3ZhciBjdXJyZW50UmVjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWMnK3JlY2lkKTtpZighY3VycmVudFJlYylyZXR1cm47dmFyIHJlY29yZFR5cGU9Y3VycmVudFJlYy5nZXRBdHRyaWJ1dGUoJ2RhdGEtcmVjb3JkLXR5cGUnKTtpZihyZWNvcmRUeXBlPT09JzM5NSd8fHJlY29yZFR5cGU9PT0nMzk3Jyl7dmFyIHNlbGVjdG9yPScudCcrcmVjb3JkVHlwZSsnX190YWJfYWN0aXZlJzt2YXIgYWN0aXZlSURzPWN1cnJlbnRSZWMucXVlcnlTZWxlY3RvcihzZWxlY3RvcikuZ2V0QXR0cmlidXRlKCdkYXRhLXRhYi1yZWMtaWRzJyk7YWN0aXZlSURzPWFjdGl2ZUlEcy5zcGxpdCgnLCcpO2hvb2tCbG9ja3M9aG9va0Jsb2Nrcy5jb25jYXQoYWN0aXZlSURzKX19KTtob29rQmxvY2tzLmZvckVhY2goZnVuY3Rpb24oY3VyUmVjaWQpe3ZhciBjdXJyZW50UmVjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWMnK2N1clJlY2lkKTtpZighY3VycmVudFJlYylyZXR1cm47dmFyIGN1cnJlbnRSZWNDaGlsZHJlbj1jdXJyZW50UmVjLnF1ZXJ5U2VsZWN0b3JBbGwoJy50LWZlZWQsIC50LXN0b3JlLCAudC1zdG9yZV9fcHJvZHVjdC1zbmlwcGV0LCAudDExNywgLnQxMjEsIC50MTMyLCAudDIyMywgLnQyMjYsIC50MjI4LCAudDIyOSwgLnQyMzAsIC50MjY4LCAudDI3OSwgLnQzNDEsIC50MzQ2LCAudDM0NywgLnQzNDksIC50MzUxLCAudDM1MywgLnQzODQsIC50Mzg1LCAudDM4NiwgLnQzOTYsIC50NDAwLCAudDQwNCwgLnQ0MDksIC50NDEwLCAudDQxMiwgLnQ0MTgsIC50NDIyLCAudDQyNSwgLnQ0MjgsIC50NDMzLCAudDQ0OCwgLnQ0NTYsIC50NDc3LCAudDQ3OCwgLnQ0ODAsIC50NDg2LCAudDQ5OCwgLnQ1MDQsIC50NTA2LCAudDUwOSwgLnQ1MTEsIC50NTE3LCAudDUxOCwgLnQ1MTksIC50NTIwLCAudDUzMiwgLnQ1MzMsIC50NTM4LCAudDUzOSwgLnQ1NDQsIC50NTQ1LCAudDU1MiwgLnQ1NTQsIC50NTY5LCAudDU3MCwgLnQ1NzcsIC50NTkyLCAudDU5OCwgLnQ1OTksIC50NjAxLCAudDYwNCwgLnQ2MDUsIC50NjA5LCAudDYxNSwgLnQ2MTYsIC50NjUwLCAudDY1OSwgLnQ2NzAsIC50Njc1LCAudDY4NiwgLnQ2ODgsIC50Njk0LCAudDY5OCwgLnQ3MDAsIC50NzI2LCAudDcyOCwgLnQ3MzAsIC50NzM0LCAudDczOCwgLnQ3NDAsIC50NzQ0LCAudDc1NCwgLnQ3NjAsIC50NzYyLCAudDc2NCwgLnQ3NzQsIC50Nzc2LCAudDc3OCwgLnQ3ODAsIC50Nzg2LCAudDc5OCwgLnQ3OTksIC50ODAxLCAudDgxMywgLnQ4MTQsIC50ODIyLCAudDgyNiwgLnQ4MjcsIC50ODI5LCAudDg0MiwgLnQ4NDMsIC50ODQ5LCAudDg1MCwgLnQ4NTEsIC50ODU2LCAudDg1OCwgLnQ4NTksIC50ODYwLCAudDg4MSwgLnQ4ODksIC50OTAyLCAudDkxMiwgLnQ5MjMsIC50OTM3LCAudDk1OCwgLnQ5NTksIC50OTc5LCAudDk4MiwgLnQ5ODMsIC50OTg5LCAudDk5NCwgLnQxMDY3LCAudDEwNjgsIC50MTA2OSwgLnQxMDcwLCAudDEwNzEsIC50MTA3MiwgLnQxMDUzJyk7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChjdXJyZW50UmVjQ2hpbGRyZW4sZnVuY3Rpb24oY2hpbGQpe2NoaWxkLmRpc3BhdGNoRXZlbnQoZXZlbnQpfSk7dmFyIGRpc3BsYXlDaGFuZ2VkQmxvY2s9Y3VycmVudFJlYy5xdWVyeVNlbGVjdG9yKCdbZGF0YS1kaXNwbGF5LWNoYW5nZWQ9InRydWUiXScpO2lmKGRpc3BsYXlDaGFuZ2VkQmxvY2spZGlzcGxheUNoYW5nZWRCbG9jay5kaXNwYXRjaEV2ZW50KGV2ZW50KX0pO3ZhciBnYWxheHlFZmZlY3RCbG9ja3M9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnQ4MjYnKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGdhbGF4eUVmZmVjdEJsb2NrcyxmdW5jdGlvbihnYWxheHlFZmZlY3RCbG9jayl7Z2FsYXh5RWZmZWN0QmxvY2suZGlzcGF0Y2hFdmVudChldmVudCl9KTtpZih3aW5kb3cubGF6eT09PSd5J3x8dGlsZGFMYXp5TW9kZT09PSd5ZXMnKXt0X29uRnVuY0xvYWQoJ3RfbGF6eWxvYWRfdXBkYXRlJyxmdW5jdGlvbigpe3RfbGF6eWxvYWRfdXBkYXRlKCl9KX19CmZ1bmN0aW9uIHQzOTdfc2hvd0FjdGl2ZVRhYkZyb21LZXlib2FyZChyZWNpZCxjdXJyZW50SW5kZXgsdGFicyl7dmFyIHJlYz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVjJytyZWNpZCk7dmFyIGN1cnJlbnRUYWI9cmVjLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRhYi1udW1iZXI9IicrY3VycmVudEluZGV4KyciXScpO2lmKCFjdXJyZW50VGFiKXJldHVybjt2YXIgY3VycmVudEJ1dHRvbj1jdXJyZW50VGFiLnF1ZXJ5U2VsZWN0b3IoJy50Mzk3X190aXRsZScpO2lmKGN1cnJlbnRCdXR0b24pe2N1cnJlbnRCdXR0b24uZm9jdXMoKX0KdmFyIHRhYkxpc3Q9cmVjLnF1ZXJ5U2VsZWN0b3IoJy50Mzk3X193cmFwcGVyJyk7aWYodGFiTGlzdCl0YWJMaXN0LnNldEF0dHJpYnV0ZSgnZGF0YS10YWItY3VycmVudCcsY3VycmVudEluZGV4KX0KZnVuY3Rpb24gdDM5N19hbGx0YWJzX3VwZGF0ZUNvbnRlbnQocmVjaWQpe3ZhciByZWM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlYycrcmVjaWQpO2lmKCFyZWMpcmV0dXJuO3ZhciB0YWJzPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHJlYy5xdWVyeVNlbGVjdG9yQWxsKCcudDM5N19fdGFiOm5vdCgudDM5N19fdGFiX2FjdGl2ZSknKSk7dmFyIGFjdGl2ZVRhYj1yZWMucXVlcnlTZWxlY3RvcignLnQzOTdfX3RhYl9hY3RpdmUnKTt2YXIgc2VsZWN0PXJlYy5xdWVyeVNlbGVjdG9yKCcudDM5N19fc2VsZWN0Jyk7aWYoIWFjdGl2ZVRhYilyZXR1cm47dmFyIGhvb2tCbG9ja3M9YWN0aXZlVGFiLmdldEF0dHJpYnV0ZSgnZGF0YS10YWItcmVjLWlkcycpLnNwbGl0KCcsJyk7dmFyIG5vQWN0aXZlPVtdO3ZhciBwb3B1cEJsb2Nrcz1bMTkwLDIxNywzMTIsMzMxLDM1OCwzNjQsMzY1LDM5MCw3MDIsNzA2LDc0Niw3NTAsNzU2LDc2OCw4NjIsODY4LDg5MCw5NDUsMTAxMywxMDE0XTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHRhYnMsZnVuY3Rpb24odGFiKXtpZih0YWIhPT1hY3RpdmVUYWIpe3ZhciBub0FjdGl2ZUhvb2tzPXRhYi5nZXRBdHRyaWJ1dGUoJ2RhdGEtdGFiLXJlYy1pZHMnKS5zcGxpdCgnLCcpO25vQWN0aXZlSG9va3MuZm9yRWFjaChmdW5jdGlvbihob29rKXtpZihub0FjdGl2ZS5pbmRleE9mKGhvb2spPT09LTEmJmhvb2tCbG9ja3MuaW5kZXhPZihob29rKT09PS0xKW5vQWN0aXZlLnB1c2goaG9vayk7dmFyIHRhYkJsb2NrPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWMnK2hvb2spO2lmKHRhYkJsb2NrJiYodGFiQmxvY2suZ2V0QXR0cmlidXRlKCdkYXRhLXJlY29yZC10eXBlJyk9PTM5N3x8dGFiQmxvY2suZ2V0QXR0cmlidXRlKCdkYXRhLXJlY29yZC10eXBlJyk9PTM5NSkpe3ZhciBhY3RpdmVUYWI9dGFiQmxvY2sucXVlcnlTZWxlY3RvcignLnQzOTdfX3RhYl9hY3RpdmUsIC50Mzk1X190YWJfYWN0aXZlJyk7aWYoYWN0aXZlVGFiKXt2YXIgbm9BY3RpdmVTdWJIb29rcz1hY3RpdmVUYWIuZ2V0QXR0cmlidXRlKCdkYXRhLXRhYi1yZWMtaWRzJykuc3BsaXQoJywnKTtub0FjdGl2ZVN1Ykhvb2tzLmZvckVhY2goZnVuY3Rpb24oc3ViaG9vayl7aWYobm9BY3RpdmUuaW5kZXhPZihzdWJob29rKT09PS0xJiZob29rQmxvY2tzLmluZGV4T2Yoc3ViaG9vayk9PT0tMSlub0FjdGl2ZS5wdXNoKHN1Ymhvb2spfSl9fX0pfX0pO2lmKHQzOTdfY2hlY2tWaXNpYmlsbGl0eUVsKGFjdGl2ZVRhYil8fHQzOTdfY2hlY2tWaXNpYmlsbGl0eUVsKHNlbGVjdCkpe2hvb2tCbG9ja3MuZm9yRWFjaChmdW5jdGlvbihob29rKXtpZighaG9vaylyZXR1cm47dmFyIGhvb2tFbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVjJytob29rKTt2YXIgaG9va0VsUmVjb3JkVHlwZT1ob29rRWw/aG9va0VsLmdldEF0dHJpYnV0ZSgnZGF0YS1yZWNvcmQtdHlwZScpOicnO2lmKGhvb2tFbCl7aG9va0VsLmNsYXNzTGlzdC5yZW1vdmUoJ3QzOTdfX29mZicpO2hvb2tFbC5jbGFzc0xpc3QucmVtb3ZlKCd0Mzk1X19vZmYnKTtob29rRWwuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsITEpO2hvb2tFbC5zdHlsZS5vcGFjaXR5PScnfQp0Mzk3X3VwZGF0ZVRhYnNCeUhvb2soaG9va0VsUmVjb3JkVHlwZSxob29rRWwsaG9vayxyZWNpZCl9KX1lbHNle2hvb2tCbG9ja3MuZm9yRWFjaChmdW5jdGlvbihob29rKXt2YXIgaG9va0VsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWMnK2hvb2spO3ZhciBob29rRWxSZWNvcmRUeXBlPWhvb2tFbD9ob29rRWwuZ2V0QXR0cmlidXRlKCdkYXRhLXJlY29yZC10eXBlJyk6Jyc7dmFyIGlzUG9wdXBCbG9jaz1wb3B1cEJsb2Nrcy5zb21lKGZ1bmN0aW9uKGlkKXtyZXR1cm4gaG9va0VsUmVjb3JkVHlwZT09aWR9KTtpZihob29rRWwmJiFpc1BvcHVwQmxvY2spe2hvb2tFbC5zZXRBdHRyaWJ1dGUoJ2RhdGEtYW5pbWF0aW9uYXBwZWFyJywnb2ZmJyk7aG9va0VsLmNsYXNzTGlzdC5hZGQoJ3QzOTdfX29mZicpO2hvb2tFbC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywhMCl9CnQzOTdfdXBkYXRlVGFic0J5SG9vayhob29rRWxSZWNvcmRUeXBlLGhvb2tFbCxob29rLHJlY2lkKX0pfQpub0FjdGl2ZS5mb3JFYWNoKGZ1bmN0aW9uKG5vQWN0aXZlSUQpe2lmKCFub0FjdGl2ZUlEKXJldHVybjt2YXIgaG9va0VsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWMnK25vQWN0aXZlSUQpO3ZhciBob29rRWxSZWNvcmRUeXBlPWhvb2tFbD9ob29rRWwuZ2V0QXR0cmlidXRlKCdkYXRhLXJlY29yZC10eXBlJyk6Jyc7dmFyIGlzUG9wdXBCbG9jaz1wb3B1cEJsb2Nrcy5zb21lKGZ1bmN0aW9uKGlkKXtyZXR1cm4gaG9va0VsUmVjb3JkVHlwZT09aWR9KTtpZihob29rRWwmJiFpc1BvcHVwQmxvY2spe2hvb2tFbC5zZXRBdHRyaWJ1dGUoJ2RhdGEtY29ubmVjdC13aXRoLXRhYicsJ3llcycpO2hvb2tFbC5zZXRBdHRyaWJ1dGUoJ2RhdGEtYW5pbWF0aW9uYXBwZWFyJywnb2ZmJyk7aG9va0VsLmNsYXNzTGlzdC5hZGQoJ3QzOTdfX29mZicpO2hvb2tFbC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywhMCl9CnQzOTdfdXBkYXRlVGFic0J5SG9vayhob29rRWxSZWNvcmRUeXBlLGhvb2tFbCxub0FjdGl2ZUlELHJlY2lkKX0pO3ZhciBzY3JvbGxIZWlnaHQ9TWF0aC5tYXgoZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodCxkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodCxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0SGVpZ2h0LGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0LGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpO2lmKHNjcm9sbEhlaWdodC13aW5kb3cuaW5uZXJIZWlnaHQ8d2luZG93LnBhZ2VZT2Zmc2V0KXt3aW5kb3cuc2Nyb2xsVG8oMCxzY3JvbGxIZWlnaHQtd2luZG93LmlubmVySGVpZ2h0KX19CmZ1bmN0aW9uIHQzOTdfdXBkYXRlVGFic0J5SG9vayhob29rRWxSZWNvcmRUeXBlLGhvb2tFbCxjdXJyZW50SUQscmVjaWQpe3ZhciBob29rRWxUYWI7c3dpdGNoKGhvb2tFbFJlY29yZFR5cGUpe2Nhc2UgJzM5NSc6aWYod2luZG93LnQzOTVfYWxsdGFic191cGRhdGVDb250ZW50JiZ3aW5kb3cudDM5NV91cGRhdGVTZWxlY3QmJnJlY2lkIT09Y3VycmVudElEKXt3aW5kb3cudDM5NV9hbGx0YWJzX3VwZGF0ZUNvbnRlbnQoY3VycmVudElEKTt3aW5kb3cudDM5NV91cGRhdGVTZWxlY3QoY3VycmVudElEKTtob29rRWxUYWI9aG9va0VsP2hvb2tFbC5xdWVyeVNlbGVjdG9yKCcudDM5NV9fdGFiJyk6bnVsbDtpZihob29rRWxUYWIpaG9va0VsVGFiLmNsaWNrKCl9CmJyZWFrO2Nhc2UgJzM5Nyc6aWYocmVjaWQhPT1jdXJyZW50SUQpe3QzOTdfYWxsdGFic191cGRhdGVDb250ZW50KGN1cnJlbnRJRCk7dDM5N191cGRhdGVTZWxlY3QoY3VycmVudElEKTtob29rRWxUYWI9aG9va0VsP2hvb2tFbC5xdWVyeVNlbGVjdG9yKCcudDM5N19fdGFiJyk6bnVsbDtpZihob29rRWxUYWIpaG9va0VsVGFiLmNsaWNrKCl9CmJyZWFrfX0KZnVuY3Rpb24gdDM5N19jaGVja1Zpc2liaWxsaXR5RWwoZWwpe3JldHVybiEhKGVsJiYoZWwub2Zmc2V0V2lkdGh8fGVsLm9mZnNldEhlaWdodHx8ZWwuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpKX0KZnVuY3Rpb24gdDM5N191cGRhdGVDb250ZW50QnlTZWxlY3QocmVjaWQpe3ZhciByZWM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlYycrcmVjaWQpO2lmKCFyZWMpcmV0dXJuITE7dmFyIHNlbGVjdD1yZWMucXVlcnlTZWxlY3RvcignLnQzOTdfX3NlbGVjdCcpO2lmKHNlbGVjdCl7c2VsZWN0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsZnVuY3Rpb24oKXt2YXIgdGFiSW5kZXg9cmVjLnF1ZXJ5U2VsZWN0b3IoJy50Mzk3X190YWJbZGF0YS10YWItcmVjLWlkcz1cJycrc2VsZWN0LnZhbHVlKydcJ11bZGF0YS10YWItaW5kZXg9Iicrc2VsZWN0LnNlbGVjdGVkSW5kZXgrJyJdJyk7aWYodGFiSW5kZXgpdGFiSW5kZXguY2xpY2soKX0pfX0KZnVuY3Rpb24gdDM5N191cGRhdGVTZWxlY3QocmVjaWQpe3ZhciByZWM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlYycrcmVjaWQpO2lmKCFyZWMpcmV0dXJuITE7dmFyIGFjdGl2ZVRhYj1yZWMucXVlcnlTZWxlY3RvcignLnQzOTdfX3RhYl9hY3RpdmUnKTt2YXIgY3VycmVudFRhYkhvb2tzPWFjdGl2ZVRhYj9hY3RpdmVUYWIuZ2V0QXR0cmlidXRlKCdkYXRhLXRhYi1pbmRleCcpOicnO3ZhciBzZWxlY3Q9cmVjLnF1ZXJ5U2VsZWN0b3IoJy50Mzk3X19zZWxlY3QnKTtpZihzZWxlY3Qpc2VsZWN0LnNlbGVjdGVkSW5kZXg9Y3VycmVudFRhYkhvb2tzfQpmdW5jdGlvbiB0Mzk3X3Njcm9sbFRvVGFicyhyZWNpZCxoYXNoKXt2YXIgcmVjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWMnK3JlY2lkKTt2YXIgY3VyVXJsPWhhc2h8fGRlY29kZVVSSSh3aW5kb3cubG9jYXRpb24uaHJlZik7dmFyIHRhYkluZGV4TnVtYmVyPWN1clVybC5pbmRleE9mKCcjIS90YWIvJyk7aWYodGFiSW5kZXhOdW1iZXI9PT0tMSlyZXR1cm4hMTt2YXIgdGFiSW5kZXhOdW1iZXJTdGFydD1jdXJVcmwuaW5kZXhPZigndGFiLycpO3ZhciBmaXJzdE9wdGlvblNlbGVjdD1yZWM/cmVjLnF1ZXJ5U2VsZWN0b3IoJy50Mzk3X193cmFwcGVyX21vYmlsZSAudDM5N19fc2VsZWN0IG9wdGlvbicpOm51bGw7aWYoZmlyc3RPcHRpb25TZWxlY3QpZmlyc3RPcHRpb25TZWxlY3Quc2VsZWN0ZWQ9ITE7dmFyIHRhYlJlYz1jdXJVcmwuc3Vic3RyaW5nKHRhYkluZGV4TnVtYmVyU3RhcnQrNCx0YWJJbmRleE51bWJlclN0YXJ0KzQrcmVjaWQubGVuZ3RoKTtpZih0YWJSZWMhPT1yZWNpZClyZXR1cm4hMTt2YXIgdGFiQmxvY2s9cmVjP3JlYy5xdWVyeVNlbGVjdG9yKCcudDM5NycpOm51bGw7dmFyIHRhYk51bWJlcj1wYXJzZUludChjdXJVcmwuc2xpY2UodGFiSW5kZXhOdW1iZXJTdGFydCs0K3JlY2lkLmxlbmd0aCsxKSwxMCk7dmFyIHRhYnM9cmVjLnF1ZXJ5U2VsZWN0b3JBbGwoJy50Mzk3X190YWInKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHRhYnMsZnVuY3Rpb24odGFiLGkpe2lmKGk9PT10YWJOdW1iZXItMSl7dGFiLmNsaWNrKCk7dGFiLmNsYXNzTGlzdC5hZGQoJ3QzOTdfX3RhYl9hY3RpdmUnKX1lbHNle3RhYi5jbGFzc0xpc3QucmVtb3ZlKCd0Mzk3X190YWJfYWN0aXZlJyl9fSk7dmFyIHRhYnNNb2I9cmVjLnF1ZXJ5U2VsZWN0b3JBbGwoJy50Mzk3X193cmFwcGVyX21vYmlsZSAudDM5N19fc2VsZWN0IG9wdGlvbicpO3ZhciBhY3RpdmVUYWJNb2I9dGFic01vYi5sZW5ndGg/dGFic01vYlt0YWJOdW1iZXItMV06bnVsbDtpZihhY3RpdmVUYWJNb2IpYWN0aXZlVGFiTW9iLnNlbGVjdGVkPSEwO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0Mzk3X3Njcm9sbFRvRWwodGFiQmxvY2spfSw1MCl9CmZ1bmN0aW9uIHQzOTdfc2Nyb2xsVG9FbChlbCl7ZnVuY3Rpb24gZ2V0RWxUb3BQb3MoKXt2YXIgZWxUb3BQb3M9ZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wK3dpbmRvdy5wYWdlWU9mZnNldDtlbFRvcFBvcz13aW5kb3cuaW5uZXJXaWR0aD45NjA/ZWxUb3BQb3MtMjAwOmVsVG9wUG9zLTEwMDtpZihlbFRvcFBvczwwKWVsVG9wUG9zPTA7dmFyIGRvY3VtZW50SGVpZ2h0PU1hdGgubWF4KGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0LGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQsZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldEhlaWdodCxkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodCxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KTt2YXIgYm90dG9tVmlld3BvcnRQb2ludD1kb2N1bWVudEhlaWdodC1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O2lmKGVsVG9wUG9zPmJvdHRvbVZpZXdwb3J0UG9pbnQpZWxUb3BQb3M9Ym90dG9tVmlld3BvcnRQb2ludDtyZXR1cm4gZWxUb3BQb3N9CnZhciBzdGFydFBvc2l0aW9uPXdpbmRvdy5wYWdlWU9mZnNldDt2YXIgc3RhcnRUaW1lPW51bGw7dmFyIGR1cmF0aW9uPTMwMDtmdW5jdGlvbiBzY3JvbGxBbmltYXRpb24oY3VycmVudFRpbWUpe2lmKHN0YXJ0VGltZT09PW51bGwpc3RhcnRUaW1lPWN1cnJlbnRUaW1lO3ZhciB0aW1lRWxhcHNlZD1jdXJyZW50VGltZS1zdGFydFRpbWU7dmFyIGVsVG9wUG9zPWdldEVsVG9wUG9zKCk7dmFyIGRpc3RhbmNlPWVsVG9wUG9zLXN0YXJ0UG9zaXRpb247dmFyIHJ1bj1lYXNlSW5RdWFkKHRpbWVFbGFwc2VkLHN0YXJ0UG9zaXRpb24sZGlzdGFuY2UsZHVyYXRpb24pO3dpbmRvdy5zY3JvbGxUbygwLHJ1bik7ZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoJ2RhdGEtc2Nyb2xsYWJsZScsJ3RydWUnKTtpZih0aW1lRWxhcHNlZDxkdXJhdGlvbil7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHNjcm9sbEFuaW1hdGlvbil9ZWxzZXt3aW5kb3cuc2Nyb2xsVG8oMCxlbFRvcFBvcyk7ZG9jdW1lbnQuYm9keS5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtc2Nyb2xsYWJsZScpfX0KZnVuY3Rpb24gZWFzZUluUXVhZCh0aW1lRWxhcHNlZCxzdGFydFBvc2l0aW9uLGRpc3RhbmNlLGR1cmF0aW9uKXt0aW1lRWxhcHNlZC89ZHVyYXRpb247cmV0dXJuIGRpc3RhbmNlKnRpbWVFbGFwc2VkKnRpbWVFbGFwc2VkK3N0YXJ0UG9zaXRpb259CnJlcXVlc3RBbmltYXRpb25GcmFtZShzY3JvbGxBbmltYXRpb24pfQpmdW5jdGlvbiB0Mzk3X3JlbW92ZVVybCgpe3ZhciBjdXJVcmw9d2luZG93LmxvY2F0aW9uLmhyZWY7dmFyIGluZGV4VG9SZW1vdmU9Y3VyVXJsLmluZGV4T2YoJyMhL3RhYi8nKTtpZihpbmRleFRvUmVtb3ZlPT09LTEpe2luZGV4VG9SZW1vdmU9Y3VyVXJsLmluZGV4T2YoJyUyMyEvdGFiLycpfQpjdXJVcmw9Y3VyVXJsLnN1YnN0cmluZygwLGluZGV4VG9SZW1vdmUpO2lmKGluZGV4VG9SZW1vdmUhPT0tMSl7aWYodHlwZW9mIGhpc3RvcnkucmVwbGFjZVN0YXRlIT0ndW5kZWZpbmVkJyl7dHJ5e3dpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSgnJywnJyxjdXJVcmwpfWNhdGNoKGVycil7fX19fQpmdW5jdGlvbiB0NzAyX2luaXRQb3B1cChyZWNJZCl7dmFyIHJlYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVjJytyZWNJZCk7aWYoIXJlYylyZXR1cm47dmFyIGNvbnRhaW5lcj1yZWMucXVlcnlTZWxlY3RvcignLnQ3MDInKTtpZighY29udGFpbmVyKXJldHVybjtyZWMuc2V0QXR0cmlidXRlKCdkYXRhLWFuaW1hdGlvbmFwcGVhcicsJ29mZicpO3JlYy5zZXRBdHRyaWJ1dGUoJ2RhdGEtcG9wdXAtc3Vic2NyaWJlLWluaXRlZCcsJ3knKTtyZWMuc3R5bGUub3BhY2l0eT0xO3ZhciBkb2N1bWVudEJvZHk9ZG9jdW1lbnQuYm9keTt2YXIgcG9wdXA9cmVjLnF1ZXJ5U2VsZWN0b3IoJy50LXBvcHVwJyk7dmFyIHBvcHVwVG9vbHRpcEhvb2s9cG9wdXAuZ2V0QXR0cmlidXRlKCdkYXRhLXRvb2x0aXAtaG9vaycpO3ZhciBhbmFsaXRpY3M9cG9wdXAuZ2V0QXR0cmlidXRlKCdkYXRhLXRyYWNrLXBvcHVwJyk7dmFyIHBvcHVwQ2xvc2VCdG49cG9wdXAucXVlcnlTZWxlY3RvcignLnQtcG9wdXBfX2Nsb3NlJyk7dmFyIGhyZWZzPXJlYy5xdWVyeVNlbGVjdG9yQWxsKCdhW2hyZWYqPSIjIl0nKTt2YXIgc3VibWl0SHJlZj1yZWMucXVlcnlTZWxlY3RvcignLnQtc3VibWl0W2hyZWYqPSIjIl0nKTtpZihwb3B1cFRvb2x0aXBIb29rKXt0X29uRnVuY0xvYWQoJ3RfcG9wdXBfX2FkZEF0dHJpYnV0ZXNGb3JBY2Nlc3NpYmlsaXR5JyxmdW5jdGlvbigpe3RfcG9wdXBfX2FkZEF0dHJpYnV0ZXNGb3JBY2Nlc3NpYmlsaXR5KHBvcHVwVG9vbHRpcEhvb2spfSk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKGV2ZW50KXt2YXIgdGFyZ2V0PWV2ZW50LnRhcmdldDt2YXIgaHJlZj10YXJnZXQuY2xvc2VzdCgnYVtocmVmJD0iJytwb3B1cFRvb2x0aXBIb29rKyciXScpP3RhcmdldDohMTtpZighaHJlZilyZXR1cm47ZXZlbnQucHJldmVudERlZmF1bHQoKTt0NzAyX3Nob3dQb3B1cChyZWNJZCk7dF9vbkZ1bmNMb2FkKCd0X3BvcHVwX19yZXNpemVQb3B1cCcsZnVuY3Rpb24oKXt0X3BvcHVwX19yZXNpemVQb3B1cChyZWNJZCl9KTt0NzAyX19sYXp5TG9hZCgpO2lmKGFuYWxpdGljcyYmd2luZG93LlRpbGRhKXtUaWxkYS5zZW5kRXZlbnRUb1N0YXRpc3RpY3MoYW5hbGl0aWNzLHBvcHVwVG9vbHRpcEhvb2spfX0pO3Rfb25GdW5jTG9hZCgndF9wb3B1cF9fYWRkQ2xhc3NPblRyaWdnZXJCdXR0b24nLGZ1bmN0aW9uKCl7dF9wb3B1cF9fYWRkQ2xhc3NPblRyaWdnZXJCdXR0b24oZG9jdW1lbnQscG9wdXBUb29sdGlwSG9vayl9KX0KcG9wdXAuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJyx0X3Rocm90dGxlKGZ1bmN0aW9uKCl7dDcwMl9fbGF6eUxvYWQoKX0pKTtwb3B1cC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oZXZlbnQpe3ZhciB3aW5kb3dXaXRob3V0U2Nyb2xsQmFyPXdpbmRvdy5pbm5lcldpZHRoLTE3O2lmKGV2ZW50LmNsaWVudFg+d2luZG93V2l0aG91dFNjcm9sbEJhcilyZXR1cm47aWYoZXZlbnQudGFyZ2V0PT09dGhpcyl0NzAyX2Nsb3NlUG9wdXAocmVjSWQpfSk7cG9wdXBDbG9zZUJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXt0NzAyX2Nsb3NlUG9wdXAocmVjSWQpfSk7aWYoc3VibWl0SHJlZil7c3VibWl0SHJlZi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXtpZihkb2N1bWVudEJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCd0LWJvZHlfc2Nyb2xsLWxvY2tlZCcpKXtkb2N1bWVudEJvZHkuY2xhc3NMaXN0LnJlbW92ZSgndC1ib2R5X3Njcm9sbC1sb2NrZWQnKX19KX0KZm9yKHZhciBpPTA7aTxocmVmcy5sZW5ndGg7aSsrKXtocmVmc1tpXS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXt2YXIgdXJsPXRoaXMuZ2V0QXR0cmlidXRlKCdocmVmJyk7aWYoIXVybHx8dXJsLnN1YnN0cmluZygwLDcpIT0nI3ByaWNlOicpe3Q3MDJfY2xvc2VQb3B1cChyZWNJZCk7aWYoIXVybHx8dXJsLnN1YnN0cmluZygwLDcpPT0nI3BvcHVwOicpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpZih0eXBlb2YgdF90cmlnZ2VyRXZlbnQ9PT0nZnVuY3Rpb24nKXRfdHJpZ2dlckV2ZW50KGRvY3VtZW50LmJvZHksJ3BvcHVwU2hvd2VkJyk7ZG9jdW1lbnRCb2R5LmNsYXNzTGlzdC5hZGQoJ3QtYm9keV9wb3B1cHNob3dlZCcpfSwzMDApfX19KX0KZnVuY3Rpb24gdDcwMl9lc2NDbG9zZVBvcHVwKGV2ZW50KXtpZihldmVudC5rZXk9PT0nRXNjYXBlJyl0NzAyX2Nsb3NlUG9wdXAocmVjSWQpfQpwb3B1cC5hZGRFdmVudExpc3RlbmVyKCd0aWxkYW1vZGFsOnNob3cnK3BvcHVwVG9vbHRpcEhvb2ssZnVuY3Rpb24oKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJyx0NzAyX2VzY0Nsb3NlUG9wdXApfSk7cG9wdXAuYWRkRXZlbnRMaXN0ZW5lcigndGlsZGFtb2RhbDpjbG9zZScrcG9wdXBUb29sdGlwSG9vayxmdW5jdGlvbigpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLHQ3MDJfZXNjQ2xvc2VQb3B1cCl9KTtyZWMuYWRkRXZlbnRMaXN0ZW5lcignY29uZGl0aW9uYWwtZm9ybS1pbml0JyxmdW5jdGlvbigpe3Rfb25GdW5jTG9hZCgndF9mb3JtX19jb25kaXRpb25hbHNfYWRkRmllbGRzTGlzdGVuZXJzJyxmdW5jdGlvbigpe3RfZm9ybV9fY29uZGl0aW9uYWxzX2FkZEZpZWxkc0xpc3RlbmVycyhyZWNJZCxmdW5jdGlvbigpe3RfcG9wdXBfX3Jlc2l6ZVBvcHVwKHJlY0lkKX0pfSl9LHtvbmNlOiEwfSl9CmZ1bmN0aW9uIHQ3MDJfbG9ja1Njcm9sbCgpe3ZhciBkb2N1bWVudEJvZHk9ZG9jdW1lbnQuYm9keTtpZighZG9jdW1lbnRCb2R5LmNsYXNzTGlzdC5jb250YWlucygndC1ib2R5X3Njcm9sbC1sb2NrZWQnKSl7dmFyIGJvZHlTY3JvbGxUb3A9dHlwZW9mIHdpbmRvdy5wYWdlWU9mZnNldCE9PSd1bmRlZmluZWQnP3dpbmRvdy5wYWdlWU9mZnNldDooZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHxkb2N1bWVudEJvZHkucGFyZW50Tm9kZXx8ZG9jdW1lbnRCb2R5KS5zY3JvbGxUb3A7ZG9jdW1lbnRCb2R5LmNsYXNzTGlzdC5hZGQoJ3QtYm9keV9zY3JvbGwtbG9ja2VkJyk7ZG9jdW1lbnRCb2R5LnN0eWxlLnRvcD0nLScrYm9keVNjcm9sbFRvcCsncHgnO2RvY3VtZW50Qm9keS5zZXRBdHRyaWJ1dGUoJ2RhdGEtcG9wdXAtc2Nyb2xsdG9wJyxib2R5U2Nyb2xsVG9wKX19CmZ1bmN0aW9uIHQ3MDJfdW5sb2NrU2Nyb2xsKCl7dmFyIGRvY3VtZW50Qm9keT1kb2N1bWVudC5ib2R5O2lmKGRvY3VtZW50Qm9keS5jbGFzc0xpc3QuY29udGFpbnMoJ3QtYm9keV9zY3JvbGwtbG9ja2VkJykpe3ZhciBib2R5U2Nyb2xsVG9wPWRvY3VtZW50Qm9keS5nZXRBdHRyaWJ1dGUoJ2RhdGEtcG9wdXAtc2Nyb2xsdG9wJyk7ZG9jdW1lbnRCb2R5LmNsYXNzTGlzdC5yZW1vdmUoJ3QtYm9keV9zY3JvbGwtbG9ja2VkJyk7ZG9jdW1lbnRCb2R5LnN0eWxlLnRvcD1udWxsO2RvY3VtZW50Qm9keS5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtcG9wdXAtc2Nyb2xsdG9wJyk7ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcD1wYXJzZUludChib2R5U2Nyb2xsVG9wKX19CmZ1bmN0aW9uIHQ3MDJfc2hvd1BvcHVwKHJlY0lkKXt2YXIgcmVjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWMnK3JlY0lkKTtpZighcmVjKXJldHVybjt2YXIgY29udGFpbmVyPXJlYy5xdWVyeVNlbGVjdG9yKCcudDcwMicpO2lmKCFjb250YWluZXIpcmV0dXJuO3ZhciB3aW5kb3dXaWR0aD13aW5kb3cuaW5uZXJXaWR0aDt2YXIgc2NyZWVuTWluPXJlYy5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2NyZWVuLW1pbicpO3ZhciBzY3JlZW5NYXg9cmVjLmdldEF0dHJpYnV0ZSgnZGF0YS1zY3JlZW4tbWF4Jyk7aWYoc2NyZWVuTWluJiZ3aW5kb3dXaWR0aDxwYXJzZUludChzY3JlZW5NaW4sMTApKXJldHVybjtpZihzY3JlZW5NYXgmJndpbmRvd1dpZHRoPnBhcnNlSW50KHNjcmVlbk1heCwxMCkpcmV0dXJuO3ZhciBwb3B1cD1yZWMucXVlcnlTZWxlY3RvcignLnQtcG9wdXAnKTt2YXIgcG9wdXBUb29sdGlwSG9vaz1wb3B1cC5nZXRBdHRyaWJ1dGUoJ2RhdGEtdG9vbHRpcC1ob29rJyk7dmFyIHJhbmdlcz1yZWMucXVlcnlTZWxlY3RvckFsbCgnLnQtcmFuZ2UnKTt2YXIgZG9jdW1lbnRCb2R5PWRvY3VtZW50LmJvZHk7aWYocmFuZ2VzLmxlbmd0aCl7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChyYW5nZXMsZnVuY3Rpb24ocmFuZ2Upe3Q3MDJfX3RyaWdnZXJFdmVudChyYW5nZSwncG9wdXBPcGVuZWQnKX0pfQp0X29uRnVuY0xvYWQoJ3RfcG9wdXBfX3Nob3dQb3B1cCcsZnVuY3Rpb24oKXt0X3BvcHVwX19zaG93UG9wdXAocG9wdXApfSk7aWYodHlwZW9mIHRfdHJpZ2dlckV2ZW50PT09J2Z1bmN0aW9uJyl0X3RyaWdnZXJFdmVudChkb2N1bWVudC5ib2R5LCdwb3B1cFNob3dlZCcpO2RvY3VtZW50Qm9keS5jbGFzc0xpc3QuYWRkKCd0LWJvZHlfcG9wdXBzaG93ZWQnKTtkb2N1bWVudEJvZHkuY2xhc3NMaXN0LmFkZCgndDcwMl9fYm9keV9wb3B1cHNob3dlZCcpO2lmKC9pUGhvbmV8aVBhZHxpUG9kL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmIXdpbmRvdy5NU1N0cmVhbSYmd2luZG93LmlzaU9TVmVyc2lvbiYmd2luZG93LmlzaU9TVmVyc2lvblswXT09PTExKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dDcwMl9sb2NrU2Nyb2xsKCl9LDUwMCl9CnQ3MDJfX2xhenlMb2FkKCk7dDcwMl9fdHJpZ2dlckV2ZW50KHBvcHVwLCd0aWxkYW1vZGFsOnNob3cnK3BvcHVwVG9vbHRpcEhvb2spO3Rfb25GdW5jTG9hZCgndF9mb3Jtc19fY2FsY3VsYXRlSW5wdXRzV2lkdGgnLGZ1bmN0aW9uKCl7dF9mb3Jtc19fY2FsY3VsYXRlSW5wdXRzV2lkdGgocmVjSWQpfSl9CmZ1bmN0aW9uIHQ3MDJfY2xvc2VQb3B1cChyZWNJZCl7dmFyIHJlYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVjJytyZWNJZCk7dmFyIHBvcHVwPXJlYy5xdWVyeVNlbGVjdG9yKCcudC1wb3B1cCcpO3ZhciBwb3B1cFRvb2x0aXBIb29rPXBvcHVwLmdldEF0dHJpYnV0ZSgnZGF0YS10b29sdGlwLWhvb2snKTt2YXIgcG9wdXBBbGw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnQtcG9wdXBfc2hvdzpub3QoLnQtZmVlZF9fcG9zdC1wb3B1cCk6bm90KC50OTQ1X19wb3B1cCknKTtpZihwb3B1cEFsbC5sZW5ndGg9PTEpe2lmKHR5cGVvZiB0X3RyaWdnZXJFdmVudD09PSdmdW5jdGlvbicpdF90cmlnZ2VyRXZlbnQoZG9jdW1lbnQuYm9keSwncG9wdXBIaWRkZW4nKTtkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ3QtYm9keV9wb3B1cHNob3dlZCcpfWVsc2V7dmFyIG5ld1BvcHVwPVtdO2Zvcih2YXIgaT0wO2k8cG9wdXBBbGwubGVuZ3RoO2krKyl7aWYocG9wdXBBbGxbaV0uZ2V0QXR0cmlidXRlKCdkYXRhLXRvb2x0aXAtaG9vaycpPT09cG9wdXBUb29sdGlwSG9vayl7cG9wdXBBbGxbaV0uY2xhc3NMaXN0LnJlbW92ZSgndC1wb3B1cF9zaG93Jyk7bmV3UG9wdXAucHVzaChwb3B1cEFsbFtpXSl9fQppZihuZXdQb3B1cC5sZW5ndGg9PT1wb3B1cEFsbC5sZW5ndGgpe2lmKHR5cGVvZiB0X3RyaWdnZXJFdmVudD09PSdmdW5jdGlvbicpdF90cmlnZ2VyRXZlbnQoZG9jdW1lbnQuYm9keSwncG9wdXBIaWRkZW4nKTtkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ3QtYm9keV9wb3B1cHNob3dlZCcpfX0KaWYodHlwZW9mIHRfdHJpZ2dlckV2ZW50PT09J2Z1bmN0aW9uJyl0X3RyaWdnZXJFdmVudChkb2N1bWVudC5ib2R5LCdwb3B1cEhpZGRlbicpO3BvcHVwLmNsYXNzTGlzdC5yZW1vdmUoJ3QtcG9wdXBfc2hvdycpO2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgndDcwMl9fYm9keV9wb3B1cHNob3dlZCcpO2lmKC9pUGhvbmV8aVBhZHxpUG9kL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmIXdpbmRvdy5NU1N0cmVhbSYmd2luZG93LmlzaU9TVmVyc2lvbiYmd2luZG93LmlzaU9TVmVyc2lvblswXT09PTExKXt0NzAyX3VubG9ja1Njcm9sbCgpfQp0X29uRnVuY0xvYWQoJ3RfcG9wdXBfX2FkZEZvY3VzT25UcmlnZ2VyQnV0dG9uJyxmdW5jdGlvbigpe3RfcG9wdXBfX2FkZEZvY3VzT25UcmlnZ2VyQnV0dG9uKCl9KTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHBvcHVwSGlkZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudC1wb3B1cDpub3QoLnQtcG9wdXBfc2hvdyknKTtmb3IodmFyIGk9MDtpPHBvcHVwSGlkZS5sZW5ndGg7aSsrKXtwb3B1cEhpZGVbaV0uc3R5bGUuZGlzcGxheT0nbm9uZSd9fSwzMDApO3Q3MDJfX3RyaWdnZXJFdmVudChwb3B1cCwndGlsZGFtb2RhbDpjbG9zZScrcG9wdXBUb29sdGlwSG9vayl9CmZ1bmN0aW9uIHQ3MDJfc2VuZFBvcHVwRXZlbnRUb1N0YXRpc3RpY3MocG9wdXBOYW1lKXt2YXIgdmlydFBhZ2U9Jy90aWxkYS9wb3B1cC8nO3ZhciB2aXJ0VGl0bGU9J1BvcHVwOiAnO2lmKHBvcHVwTmFtZS5zdWJzdHJpbmcoMCw3KT09JyNwb3B1cDonKXtwb3B1cE5hbWU9cG9wdXBOYW1lLnN1YnN0cmluZyg3KX0KdmlydFBhZ2UrPXBvcHVwTmFtZTt2aXJ0VGl0bGUrPXBvcHVwTmFtZTtpZih3aW5kb3cuVGlsZGEmJnR5cGVvZiBUaWxkYS5zZW5kRXZlbnRUb1N0YXRpc3RpY3M9PSdmdW5jdGlvbicpe1RpbGRhLnNlbmRFdmVudFRvU3RhdGlzdGljcyh2aXJ0UGFnZSx2aXJ0VGl0bGUsJycsMCl9ZWxzZXtpZihnYSl7aWYod2luZG93Lm1haW5UcmFja2VyIT0ndGlsZGEnKXtnYSgnc2VuZCcse2hpdFR5cGU6J3BhZ2V2aWV3JyxwYWdlOnZpcnRQYWdlLHRpdGxlOnZpcnRUaXRsZX0pfX0KaWYod2luZG93Lm1haW5NZXRyaWthJiZ3aW5kb3dbd2luZG93Lm1haW5NZXRyaWthXSl7d2luZG93W3dpbmRvdy5tYWluTWV0cmlrYV0uaGl0KHZpcnRQYWdlLHt0aXRsZTp2aXJ0VGl0bGUscmVmZXJlcjp3aW5kb3cubG9jYXRpb24uaHJlZn0pfX19CmZ1bmN0aW9uIHQ3MDJfb25TdWNjZXNzKGZvcm0pe3Rfb25GdW5jTG9hZCgndF9mb3Jtc19fb25TdWNjZXNzJyxmdW5jdGlvbigpe3RfZm9ybXNfX29uU3VjY2Vzcyhmb3JtKX0pfQpmdW5jdGlvbiB0NzAyX19sYXp5TG9hZCgpe2lmKHdpbmRvdy5sYXp5PT09J3knfHxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWxscmVjb3JkcycpLmdldEF0dHJpYnV0ZSgnZGF0YS10aWxkYS1sYXp5Jyk9PT0neWVzJyl7dF9vbkZ1bmNMb2FkKCd0X2xhenlsb2FkX3VwZGF0ZScsZnVuY3Rpb24oKXt0X2xhenlsb2FkX3VwZGF0ZSgpfSl9fQpmdW5jdGlvbiB0NzAyX190cmlnZ2VyRXZlbnQoZWwsZXZlbnROYW1lKXt2YXIgZXZlbnQ7aWYodHlwZW9mIHdpbmRvdy5DdXN0b21FdmVudD09PSdmdW5jdGlvbicpe2V2ZW50PW5ldyBDdXN0b21FdmVudChldmVudE5hbWUpfWVsc2UgaWYoZG9jdW1lbnQuY3JlYXRlRXZlbnQpe2V2ZW50PWRvY3VtZW50LmNyZWF0ZUV2ZW50KCdIVE1MRXZlbnRzJyk7ZXZlbnQuaW5pdEV2ZW50KGV2ZW50TmFtZSwhMCwhMSl9ZWxzZSBpZihkb2N1bWVudC5jcmVhdGVFdmVudE9iamVjdCl7ZXZlbnQ9ZG9jdW1lbnQuY3JlYXRlRXZlbnRPYmplY3QoKTtldmVudC5ldmVudFR5cGU9ZXZlbnROYW1lfQpldmVudC5ldmVudE5hbWU9ZXZlbnROYW1lO2lmKGVsLmRpc3BhdGNoRXZlbnQpe2VsLmRpc3BhdGNoRXZlbnQoZXZlbnQpfWVsc2UgaWYoZWwuZmlyZUV2ZW50KXtlbC5maXJlRXZlbnQoJ29uJytldmVudC5ldmVudFR5cGUsZXZlbnQpfWVsc2UgaWYoZWxbZXZlbnROYW1lXSl7ZWxbZXZlbnROYW1lXSgpfWVsc2UgaWYoZWxbJ29uJytldmVudE5hbWVdKXtlbFsnb24nK2V2ZW50TmFtZV0oKX19CmZ1bmN0aW9uIHRfbGF6eWxvYWRfdXBkYXRlKCl7InVuZGVmaW5lZCIhPXR5cGVvZiBsYXp5bG9hZF9jb3ZlciYmbGF6eWxvYWRfY292ZXIudXBkYXRlKCksInVuZGVmaW5lZCIhPXR5cGVvZiBsYXp5bG9hZF9pbWcmJmxhenlsb2FkX2ltZy51cGRhdGUoKSwidW5kZWZpbmVkIiE9dHlwZW9mIGxhenlsb2FkX2JnaW1nJiZsYXp5bG9hZF9iZ2ltZy51cGRhdGUoKSwidW5kZWZpbmVkIiE9dHlwZW9mIGxhenlsb2FkX2lmcmFtZSYmbGF6eWxvYWRfaWZyYW1lLnVwZGF0ZSgpfWZ1bmN0aW9uIHRfbGF6eWxvYWRfdXBkYXRlUmVzaXplX2VsZW0oZSl7aWYod2luZG93LmpRdWVyeSYmZSBpbnN0YW5jZW9mIGpRdWVyeSl7aWYoMD09ZS5sZW5ndGgpcmV0dXJuO2U9ZS5nZXQoMCl9dmFyIHQsbyxuLGksbCxhLHM7bnVsbCE9ZSYmKHM9IklNRyI9PSh0PWUudGFnTmFtZSk/KG89ZS5nZXRBdHRyaWJ1dGUoInNyYyIpLCItL3Jlc2l6ZS8iKToidW5kZWZpbmVkIiE9dHlwZW9mIGdldENvbXB1dGVkU3R5bGU/KG89Z2V0Q29tcHV0ZWRTdHlsZShlKVsiYmFja2dyb3VuZC1pbWFnZSJdLnJlcGxhY2UoInVybCgiLCIiKS5yZXBsYWNlKCIpIiwiIikucmVwbGFjZSgvIi9naSwiIiksImNvbnRhaW4iPT1nZXRDb21wdXRlZFN0eWxlKGUpWyJiYWNrZ3JvdW5kLXNpemUiXT8iLS9jb250YWluLyI6Ii0vY292ZXIvIik6Ii0vY292ZXIvIixudWxsPT1vfHwtMT09PW8uaW5kZXhPZihzKXx8MDxvLmluZGV4T2YoIi5zdmciKXx8MDxvLmluZGV4T2YoIi5naWYiKXx8MDxvLmluZGV4T2YoIi5pY28iKXx8LTE9PT1vLmluZGV4T2YoInRodW1iLnRpbGRhY2RuLmNvbSIpfHwwPG8uaW5kZXhPZigiLS9lbXB0eS8iKSYmMDxvLmluZGV4T2YoIi0vcmVzaXplYi8iKXx8KHM9by5pbmRleE9mKHMpK3MubGVuZ3RoLG49by5pbmRleE9mKCIvIixzKSwwPHMmJjA8biYmKGk9by5zbGljZShzLG4pLnNwbGl0KCJ4IiksbD1lLmNsaWVudFdpZHRoLGE9ZS5jbGllbnRIZWlnaHQsMDxsJiYwPGEmJigwPGlbMF18fDA8aVsxXSkmJigwPGlbMF0mJmw+aVswXXx8MDxpWzFdJiZhPmlbMV0pJiYoMDxpWzBdJiYxMDA8bC1pWzBdfHwwPGlbMV0mJjEwMDxhLWlbMV0pJiYocz1vLnNsaWNlKDAscykrKDA8aVswXT9sOiIiKSsieCIrKDA8aVsxXT9hOiIiKStvLnN1YnN0cmluZyhuKSwiSU1HIj09dD9lLnNldEF0dHJpYnV0ZSgic3JjIixzKTplLnN0eWxlLmJhY2tncm91bmRJbWFnZT0idXJsKCciK3MrIicpIikpKSl9IWZ1bmN0aW9uKGUsdCl7ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10sdCk6Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPXQoKTplLkxhenlMb2FkPXQoKX0odGhpcyxmdW5jdGlvbigpe2Z1bmN0aW9uIGkoZSx0LG8pe3ZhciBuO2g/ZS5hZGRFdmVudExpc3RlbmVyKHQsbyk6XyYmZS5hdHRhY2hFdmVudCgib24iK3QsKG49ZSxmdW5jdGlvbigpe28uY2FsbChuLHdpbmRvdy5ldmVudCl9KSl9ZnVuY3Rpb24gbChlLHQsbyl7aD9lLnJlbW92ZUV2ZW50TGlzdGVuZXIodCxvKTpfJiZlLmRldGFjaEV2ZW50KCJvbiIrdCxvKX1mdW5jdGlvbiBhKGUsdCxvKXt2YXIgbixpLGw7ZnVuY3Rpb24gYSgpe3JldHVybiB3aW5kb3cuaW5uZXJXaWR0aHx8bi5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGh8fGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGh9ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AraS1uLmRvY3VtZW50RWxlbWVudC5jbGllbnRUb3B9ZnVuY3Rpb24gcihlKXtyZXR1cm4gZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0K2wtbi5kb2N1bWVudEVsZW1lbnQuY2xpZW50TGVmdH1yZXR1cm4gbj1lLm93bmVyRG9jdW1lbnQsaT13aW5kb3cucGFnZVlPZmZzZXR8fG4uYm9keS5zY3JvbGxUb3AsbD13aW5kb3cucGFnZVhPZmZzZXR8fG4uYm9keS5zY3JvbGxMZWZ0LCJmaXhlZCI9PT1lLmdldEF0dHJpYnV0ZSgiZGF0YS1jb250ZW50LWNvdmVyLXBhcmFsbGF4IikmJmUuY2xvc2VzdCYmZS5jbG9zZXN0KCIudC1jb3Zlcl9fY29udGFpbmVyIikmJihlPWUuY2xvc2VzdCgiLnQtY292ZXJfX2NvbnRhaW5lciIpKSwhKCh0PT09d2luZG93Pyh3aW5kb3cuaW5uZXJIZWlnaHR8fG4uZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodHx8ZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQpK2k6cyh0KSt0Lm9mZnNldEhlaWdodCk8PXMoZSktb3x8KHQ9PT13aW5kb3c/aTpzKHQpKT49cyhlKSsxMjAwK2Uub2Zmc2V0SGVpZ2h0fHwodD09PXdpbmRvdz9hKCkrd2luZG93LnBhZ2VYT2Zmc2V0OnIodCkrYSgpKTw9cihlKS1vfHwodD09PXdpbmRvdz9sOnIodCkpPj1yKGUpK28rZS5vZmZzZXRXaWR0aCl9ZnVuY3Rpb24gbigpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpfWZ1bmN0aW9uIHMoZSx0KXtmb3IodmFyIG89W107KGU9ZS5wYXJlbnROb2RlKSYmZSE9PWRvY3VtZW50Oyl0JiYhZS5tYXRjaGVzKHQpfHxvLnVuc2hpZnQoZSk7cmV0dXJuIG99ZnVuY3Rpb24gcihlLHQpe28/ZS5jbGFzc0xpc3QuYWRkKHQpOmUuY2xhc3NOYW1lKz0oZS5jbGFzc05hbWU/IiAiOiIiKSt0fWZ1bmN0aW9uIGMoZSx0KXtvP2UuY2xhc3NMaXN0LnJlbW92ZSh0KTplLmNsYXNzTmFtZT1lLmNsYXNzTmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoIihefFxccyspIit0KyIoXFxzK3wkKSIpLCIgIikucmVwbGFjZSgvXlxzKy8sIiIpLnJlcGxhY2UoL1xzKyQvLCIiKX1mdW5jdGlvbiBkKGUsdCxvLG4pe249dC5nZXRBdHRyaWJ1dGUoImRhdGEtIituKSx0PXQuZ2V0QXR0cmlidXRlKCJkYXRhLSIrbyksbz1lLnRhZ05hbWU7IklNRyI9PT1vPyh0JiZlLnNldEF0dHJpYnV0ZSgic3Jjc2V0Iix0KSxuJiZlLnNldEF0dHJpYnV0ZSgic3JjIixuKSk6IklGUkFNRSI9PT1vP24mJmUuc2V0QXR0cmlidXRlKCJzcmMiLG4pOmUuc3R5bGUuYmFja2dyb3VuZEltYWdlPSJ1cmwoIituKyIpIn1mdW5jdGlvbiB1KGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkodCxhcmd1bWVudHMpfX1mdW5jdGlvbiBlKGUpe3B8fCh0PXtlbGVtZW50c19zZWxlY3RvcjoiaW1nIixjb250YWluZXI6d2luZG93LHRocmVzaG9sZDozMDAsdGhyb3R0bGU6NTAsZGF0YV9zcmM6Im9yaWdpbmFsIixkYXRhX3NyY3NldDoib3JpZ2luYWwtc2V0IixjbGFzc19sb2FkaW5nOiJsb2FkaW5nIixjbGFzc19sb2FkZWQ6ImxvYWRlZCIsc2tpcF9pbnZpc2libGU6ITAsc2hvd193aGlsZV9sb2FkaW5nOiEwLGNhbGxiYWNrX2xvYWQ6bnVsbCxjYWxsYmFja19lcnJvcjpudWxsLGNhbGxiYWNrX3NldDpudWxsLGNhbGxiYWNrX3Byb2Nlc3NlZDpudWxsLHBsYWNlaG9sZGVyOiJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBQUFBUC8vL3lINUJBRUFBQUFBTEFBQUFBQUJBQUVBQUFJQlJBQTcifSxoPSEhd2luZG93LmFkZEV2ZW50TGlzdGVuZXIsXz0hIXdpbmRvdy5hdHRhY2hFdmVudCxvPSEhZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QscD0hMCksdGhpcy5fc2V0dGluZ3M9ZnVuY3Rpb24oZSx0KXt2YXIgbyxuPXt9O2ZvcihvIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShvKSYmKG5bb109ZVtvXSk7Zm9yKG8gaW4gdCl0Lmhhc093blByb3BlcnR5KG8pJiYobltvXT10W29dKTtyZXR1cm4gbn0odCxlKSx0aGlzLl9xdWVyeU9yaWdpbk5vZGU9dGhpcy5fc2V0dGluZ3MuY29udGFpbmVyPT09d2luZG93P2RvY3VtZW50OnRoaXMuX3NldHRpbmdzLmNvbnRhaW5lcix0aGlzLl9wcmV2aW91c0xvb3BUaW1lPTAsdGhpcy5fbG9vcFRpbWVvdXQ9bnVsbCx0aGlzLl9oYW5kbGVTY3JvbGxGbj11KHRoaXMuaGFuZGxlU2Nyb2xsLHRoaXMpLGkod2luZG93LCJyZXNpemUiLHRoaXMuX2hhbmRsZVNjcm9sbEZuKSx0aGlzLnVwZGF0ZSgpfXZhciB0LGgsXyxvLHA9ITE7cmV0dXJuIGUucHJvdG90eXBlLl9zaG93T25Mb2FkPWZ1bmN0aW9uKHQpe3ZhciBvLG49dGhpcy5fc2V0dGluZ3M7dC5nZXRBdHRyaWJ1dGUoInNyYyIpfHx0LnNldEF0dHJpYnV0ZSgic3JjIixuLnBsYWNlaG9sZGVyKSxpKG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIiksImxvYWQiLGZ1bmN0aW9uIGUoKXtudWxsIT09biYmKG4uY2FsbGJhY2tfbG9hZCYmbi5jYWxsYmFja19sb2FkKHQpLGQodCx0LG4uZGF0YV9zcmNzZXQsbi5kYXRhX3NyYyksbi5jYWxsYmFja19zZXQmJm4uY2FsbGJhY2tfc2V0KHQpLGModCxuLmNsYXNzX2xvYWRpbmcpLHIodCxuLmNsYXNzX2xvYWRlZCksbChvLCJsb2FkIixlKSl9KSxpKG8sImVycm9yIixmdW5jdGlvbigpe2ModCxuLmNsYXNzX2xvYWRpbmcpLG4uY2FsbGJhY2tfZXJyb3ImJm4uY2FsbGJhY2tfZXJyb3IodCl9KSxyKHQsbi5jbGFzc19sb2FkaW5nKSxkKG8sdCxuLmRhdGFfc3Jjc2V0LG4uZGF0YV9zcmMpfSxlLnByb3RvdHlwZS5fc2hvd09uQXBwZWFyPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoKXtudWxsIT09byYmKG8uY2FsbGJhY2tfbG9hZCYmby5jYWxsYmFja19sb2FkKGUpLGMoZSxvLmNsYXNzX2xvYWRpbmcpLHIoZSxvLmNsYXNzX2xvYWRlZCksbChlLCJsb2FkIix0KSl9dmFyIG89dGhpcy5fc2V0dGluZ3M7IklNRyIhPT1lLnRhZ05hbWUmJiJJRlJBTUUiIT09ZS50YWdOYW1lfHwoaShlLCJsb2FkIix0KSxpKGUsImVycm9yIixmdW5jdGlvbigpe2woZSwibG9hZCIsdCksYyhlLG8uY2xhc3NfbG9hZGluZyksby5jYWxsYmFja19lcnJvciYmby5jYWxsYmFja19lcnJvcihlKX0pLHIoZSxvLmNsYXNzX2xvYWRpbmcpKSxkKGUsZSxvLmRhdGFfc3Jjc2V0LG8uZGF0YV9zcmMpLG8uY2FsbGJhY2tfc2V0JiZvLmNhbGxiYWNrX3NldChlKX0sZS5wcm90b3R5cGUuX2xvb3BUaHJvdWdoRWxlbWVudHM9ZnVuY3Rpb24oKXtmb3IodmFyIGUsdD10aGlzLl9zZXR0aW5ncyxvPXRoaXMuX2VsZW1lbnRzLG49bz9vLmxlbmd0aDowLGk9W10sbD0wO2w8bjtsKyspZT1vW2xdLHQuc2tpcF9pbnZpc2libGUmJmUuaXNTa2lwQnlQb3NpdGlvbnx8YShlLHQuY29udGFpbmVyLHQudGhyZXNob2xkKSYmKHQuc2hvd193aGlsZV9sb2FkaW5nP3RoaXMuX3Nob3dPbkFwcGVhcihlKTp0aGlzLl9zaG93T25Mb2FkKGUpLGkucHVzaChsKSxlLndhc1Byb2Nlc3NlZD0hMCk7Zm9yKDswPGkubGVuZ3RoOylvLnNwbGljZShpLnBvcCgpLDEpLHQuY2FsbGJhY2tfcHJvY2Vzc2VkJiZ0LmNhbGxiYWNrX3Byb2Nlc3NlZChvLmxlbmd0aCk7MD09PW4mJnRoaXMuX3N0b3BTY3JvbGxIYW5kbGVyKCl9LGUucHJvdG90eXBlLl9wdXJnZUVsZW1lbnRzPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMuX2VsZW1lbnRzLHQ9ZS5sZW5ndGgsbz1bXSxuPTA7bjx0O24rKyllW25dLndhc1Byb2Nlc3NlZCYmby5wdXNoKG4pO2Zvcig7MDxvLmxlbmd0aDspZS5zcGxpY2Uoby5wb3AoKSwxKX0sZS5wcm90b3R5cGUuX3N0YXJ0U2Nyb2xsSGFuZGxlcj1mdW5jdGlvbigpe3RoaXMuX2lzSGFuZGxpbmdTY3JvbGx8fCh0aGlzLl9pc0hhbmRsaW5nU2Nyb2xsPSEwLGkodGhpcy5fc2V0dGluZ3MuY29udGFpbmVyLCJzY3JvbGwiLHRoaXMuX2hhbmRsZVNjcm9sbEZuKSl9LGUucHJvdG90eXBlLl9zdG9wU2Nyb2xsSGFuZGxlcj1mdW5jdGlvbigpe3RoaXMuX2lzSGFuZGxpbmdTY3JvbGwmJih0aGlzLl9pc0hhbmRsaW5nU2Nyb2xsPSExLGwodGhpcy5fc2V0dGluZ3MuY29udGFpbmVyLCJzY3JvbGwiLHRoaXMuX2hhbmRsZVNjcm9sbEZuKSl9LGUucHJvdG90eXBlLmhhbmRsZVNjcm9sbD1mdW5jdGlvbigpe3ZhciBlLHQsbzt0aGlzLl9zZXR0aW5ncyYmKHQ9bigpLDAhPT0obz10aGlzLl9zZXR0aW5ncy50aHJvdHRsZSk/KGU9by0odC10aGlzLl9wcmV2aW91c0xvb3BUaW1lKSk8PTB8fG88ZT8odGhpcy5fbG9vcFRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5fbG9vcFRpbWVvdXQpLHRoaXMuX2xvb3BUaW1lb3V0PW51bGwpLHRoaXMuX3ByZXZpb3VzTG9vcFRpbWU9dCx0aGlzLl9sb29wVGhyb3VnaEVsZW1lbnRzKCkpOnRoaXMuX2xvb3BUaW1lb3V0fHwodGhpcy5fbG9vcFRpbWVvdXQ9c2V0VGltZW91dCh1KGZ1bmN0aW9uKCl7dGhpcy5fcHJldmlvdXNMb29wVGltZT1uKCksdGhpcy5fbG9vcFRpbWVvdXQ9bnVsbCx0aGlzLl9sb29wVGhyb3VnaEVsZW1lbnRzKCl9LHRoaXMpLGUpKTp0aGlzLl9sb29wVGhyb3VnaEVsZW1lbnRzKCkpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXt0aGlzLl9lbGVtZW50cz1mdW5jdGlvbih0KXt2YXIgbzt0cnl7bz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KX1jYXRjaChlKXtmb3IodmFyIG49W10saT10Lmxlbmd0aCxsPTA7bDxpO2wrKyluLnB1c2godFtsXSk7bz1ufXJldHVybiBvLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5pc1NraXBCeVBvc2l0aW9uPW51bGw9PT1lLm9mZnNldFBhcmVudCYmMD09PXMoZSwiLnQzOTZfX2NhcnJpZXItd3JhcHBlciIpLmxlbmd0aCYmImZpeGVkIiE9PWUuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbnRlbnQtY292ZXItcGFyYWxsYXgiKSxlLmlzTm90VW5kZXJTY3JlZW5SYW5nZT0wPT09cyhlLCIudC1yZWNbZGF0YS1zY3JlZW4tbWF4XSIpLmxlbmd0aCYmMD09PXMoZSwiLnQtcmVjW2RhdGEtc2NyZWVuLW1pbl0iKS5sZW5ndGh9KSxvfSh0aGlzLl9xdWVyeU9yaWdpbk5vZGUucXVlcnlTZWxlY3RvckFsbCh0aGlzLl9zZXR0aW5ncy5lbGVtZW50c19zZWxlY3RvcikpLHRoaXMuX3B1cmdlRWxlbWVudHMoKSx0aGlzLl9sb29wVGhyb3VnaEVsZW1lbnRzKCksdGhpcy5fc3RhcnRTY3JvbGxIYW5kbGVyKCl9LGUucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXtsKHdpbmRvdywicmVzaXplIix0aGlzLl9oYW5kbGVTY3JvbGxGbiksdGhpcy5fbG9vcFRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5fbG9vcFRpbWVvdXQpLHRoaXMuX2xvb3BUaW1lb3V0PW51bGwpLHRoaXMuX3N0b3BTY3JvbGxIYW5kbGVyKCksdGhpcy5fZWxlbWVudHM9bnVsbCx0aGlzLl9xdWVyeU9yaWdpbk5vZGU9bnVsbCx0aGlzLl9zZXR0aW5ncz1udWxsfSxlfSksd2luZG93Lmxhenk9InkiLHRfb25SZWFkeShmdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtsYXp5bG9hZF9jb3Zlcj1uZXcgTGF6eUxvYWQoe2VsZW1lbnRzX3NlbGVjdG9yOiIudC1jb3Zlcl9fY2FycmllciIsc2hvd193aGlsZV9sb2FkaW5nOiExLGRhdGFfc3JjOiJjb250ZW50LWNvdmVyLWJnIixwbGFjZWhvbGRlcjoiIix0aHJlc2hvbGQ6NzAwfSl9LDEwMCksc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlLHQ7bGF6eWxvYWRfaW1nPW5ldyBMYXp5TG9hZCh7ZWxlbWVudHNfc2VsZWN0b3I6Ii50LWltZyIsdGhyZXNob2xkOjgwMH0pLGxhenlsb2FkX2JnaW1nPW5ldyBMYXp5TG9hZCh7ZWxlbWVudHNfc2VsZWN0b3I6Ii50LWJnaW1nIixzaG93X3doaWxlX2xvYWRpbmc6ITEscGxhY2Vob2xkZXI6IiIsdGhyZXNob2xkOjgwMH0pLGxhenlsb2FkX2lmcmFtZT1uZXcgTGF6eUxvYWQoe2VsZW1lbnRzX3NlbGVjdG9yOiIudC1pZnJhbWUifSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2xpZGUuYnMuY2Fyb3VzZWwiLGZ1bmN0aW9uKGUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtsYXp5bG9hZF9jb3Zlci51cGRhdGUoKSxsYXp5bG9hZF9pbWcudXBkYXRlKCksbGF6eWxvYWRfYmdpbWcudXBkYXRlKCl9LDUwMCl9KSwvQW5kcm9pZHx3ZWJPU3xpUGhvbmV8aVBhZHxpUG9kfEJsYWNrQmVycnl8SUVNb2JpbGV8T3BlcmEgTWluaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJiFkb2N1bWVudC5ib2R5LmNsYXNzTGlzdCYmKChlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5jbGFzc0xpc3QuYWRkKCJ0LW1iZml4IiksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LW1iZml4Iiksc2V0VGltZW91dChmdW5jdGlvbigpe3QuY2xhc3NMaXN0LmFkZCgidC1tYmZpeF9oaWRlIil9LDUwKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bnVsbCE9PXQucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpfSwxZTMpKX0sNTAwKX0pOwpmdW5jdGlvbiB0X2FuaW1hdGVfX2luaXQoKXt0X2FuaW1hdGVfX2NoZWNrQW5pbWF0aW9uQXZhaWxhYmlsaXR5KCkmJih0X2FuaW1hdGVfX2dlbmVyYXRlU3R5bGVzKCksdF9hbmltYXRlX193cmFwVGV4dFdpdGhPcGFjaXR5KCksdF9hbmltYXRlX19hZGROb0hvdmVyQ2xhc3NUb0J0bnMoKSx0X2FuaW1hdGVfX3ByZXZlbnRIb3Jpem9udGFsU2Nyb2xsKCksMTIwMDw9d2luZG93LmlubmVyV2lkdGgmJnRfYW5pbWF0ZV9fcGFyc2VOdW1iZXJUZXh0KCksc2V0VGltZW91dChmdW5jdGlvbigpe3RfYW5pbWF0ZV9fc3RhcnRBbmltYXRpb24oKX0sMTUwMCkpfWZ1bmN0aW9uIHRfYW5pbWF0ZV9fY2hlY2tNb2JpbGUodCl7cmV0dXJuIHQuZmlsdGVyKGZ1bmN0aW9uKHQpe3ZhciBlPXQuY2xvc2VzdCgiLnQzOTZfX2VsZW0sIC50Mzk2X19ncm91cCIpO3JldHVybiEoIWV8fCJ5IiE9PWUuZ2V0QXR0cmlidXRlKCJkYXRhLWFuaW1hdGUtbW9iaWxlIikpfHwodC5jbGFzc0xpc3QuY29udGFpbnMoInIiKT9BcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHQucXVlcnlTZWxlY3RvckFsbCgiLnQtYW5pbWF0ZSIpLGZ1bmN0aW9uKHQpe3RfYW5pbWF0ZV9fcmVtb3ZlQW5pbWF0aW9uQ2xhc3ModCwiIil9KTp0X2FuaW1hdGVfX3JlbW92ZUFuaW1hdGlvbkNsYXNzKHQsIiIpLCExKX0pfWZ1bmN0aW9uIHRfYW5pbWF0ZV9fcmVtb3ZlQW5pbWF0aW9uQ2xhc3MoZSx0KXt2YXIgYTtlJiYoZS5jbGFzc0xpc3QucmVtb3ZlKGE9InQtYW5pbWF0ZSIpLHQmJih0PSJzdHJpbmciPT10eXBlb2YgdD9bdF06dCkuZm9yRWFjaChmdW5jdGlvbih0KXtlLmNsYXNzTGlzdC5yZW1vdmUoYSsiXyIrdCl9KSl9ZnVuY3Rpb24gdF9hbmltYXRlX19wcmV2ZW50SG9yaXpvbnRhbFNjcm9sbCgpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWFuaW1hdGUtc3R5bGU9ZmFkZWlubGVmdF0iKTshQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKHQsZnVuY3Rpb24odCl7cmV0dXJuIXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0Mzk2X19lbGVtIikmJiF0LmNsb3Nlc3QoIi50LWNvdmVyIil9KS5sZW5ndGh8fHdpbmRvdy5pbm5lcldpZHRoPDk4MHx8KHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtcmVjb3JkcyIpKSYmKHQuc3R5bGUub3ZlcmZsb3dYPSJoaWRkZW4iKX1mdW5jdGlvbiB0X2FuaW1hdGVfX2NoZWNrQW5pbWF0aW9uQXZhaWxhYmlsaXR5KCl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtcmVjb3JkcyIpLGU9dD90LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9ja3MtYW5pbWF0aW9ub2ZmIik6bnVsbCx0PXQ/dC5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtbW9kZSIpOm51bGw7cmV0dXJuIS9Cb3QvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYieWVzIiE9PWUmJiF0X2FuaW1hdGVfX2NoZWNrSUUoKSYmImVkaXQiIT09dHx8KGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnQtYW5pbWF0ZSIpLEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZSxmdW5jdGlvbih0KXt0X2FuaW1hdGVfX3JlbW92ZUFuaW1hdGlvbkNsYXNzKHQsIiIpfSksITEpfWZ1bmN0aW9uIHRfYW5pbWF0ZV9fZ2VuZXJhdGVTdHlsZXMoKXtpZighIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50Mzk2Iikpe2Zvcih2YXIgdD10X2FuaW1hdGVfX2dldEJyZWFrcG9pbnRzQXJyKCksZT0nLnQzOTYgLnQtYW5pbWF0ZVtkYXRhLWFuaW1hdGUtc3R5bGU9ImZhZGVpbiJdLC50Mzk2IC50LWFuaW1hdGVbZGF0YS1hbmltYXRlLXN0eWxlPSJmYWRlaW51cCJdLC50Mzk2IC50LWFuaW1hdGVbZGF0YS1hbmltYXRlLXN0eWxlPSJmYWRlaW5kb3duIl0sLnQzOTYgLnQtYW5pbWF0ZVtkYXRhLWFuaW1hdGUtc3R5bGU9ImZhZGVpbmxlZnQiXSwudDM5NiAudC1hbmltYXRlW2RhdGEtYW5pbWF0ZS1zdHlsZT0iZmFkZWlucmlnaHQiXSwudDM5NiAudC1hbmltYXRlW2RhdGEtYW5pbWF0ZS1zdHlsZT0iem9vbWluIl0sLnQzOTYgLnQtYW5pbWF0ZVtkYXRhLWFuaW1hdGUtc3R5bGU9Inpvb21vdXQiXSB7b3BhY2l0eTogMDstd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIHRyYW5zZm9ybTt0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCB0cmFuc2Zvcm07LXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAxczt0cmFuc2l0aW9uLWR1cmF0aW9uOiAxczstd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xOSwgMSwgMC4yMiwgMSk7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE5LCAxLCAwLjIyLCAxKTstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47fScsYT0wO2E8dC5sZW5ndGg7YSsrKShuPXRfYW5pbWF0ZV9fZ2V0TWVkaWFRdWVyeSh0LGEpKS5pc0NvbnRpbnVlfHwoZSs9bi50ZXh0KyIudDM5NiAudC1hbmltYXRlW2RhdGEtYW5pbWF0ZS1zdHlsZS1yZXMtIituLm1pblJlcysnPSJmYWRlaW4iXSwudDM5NiAudC1hbmltYXRlW2RhdGEtYW5pbWF0ZS1zdHlsZS1yZXMtJytuLm1pblJlcysnPSJmYWRlaW51cCJdLC50Mzk2IC50LWFuaW1hdGVbZGF0YS1hbmltYXRlLXN0eWxlLXJlcy0nK24ubWluUmVzKyc9ImZhZGVpbmRvd24iXSwudDM5NiAudC1hbmltYXRlW2RhdGEtYW5pbWF0ZS1zdHlsZS1yZXMtJytuLm1pblJlcysnPSJmYWRlaW5sZWZ0Il0sLnQzOTYgLnQtYW5pbWF0ZVtkYXRhLWFuaW1hdGUtc3R5bGUtcmVzLScrbi5taW5SZXMrJz0iZmFkZWlucmlnaHQiXSwudDM5NiAudC1hbmltYXRlW2RhdGEtYW5pbWF0ZS1zdHlsZS1yZXMtJytuLm1pblJlcysnPSJ6b29taW4iXSwudDM5NiAudC1hbmltYXRlW2RhdGEtYW5pbWF0ZS1zdHlsZS1yZXMtJytuLm1pblJlcysnPSJ6b29tb3V0Il0ge29wYWNpdHk6IDA7LXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCB0cmFuc2Zvcm07dHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgdHJhbnNmb3JtOy13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMXM7dHJhbnNpdGlvbi1kdXJhdGlvbjogMXM7LXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTksIDEsIDAuMjIsIDEpO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xOSwgMSwgMC4yMiwgMSk7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO319Jyk7ZSs9Jy50Mzk2IC50LXRpdGxlLnQtYW5pbWF0ZSB7LXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAxLjJzO3RyYW5zaXRpb24tZHVyYXRpb246IDEuMnM7fS50Mzk2IC50LWRlc2NyLnQtYW5pbWF0ZSwudDM5NiAudC11cHRpdGxlLnQtYW5pbWF0ZSwudDM5NiAudC1zdWJ0aXRsZS50LWFuaW1hdGUsLnQzOTYgLnQtdGV4dC50LWFuaW1hdGUgey13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMC43czt0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjdzO30udDM5NiAudC1pdGVtLnQtYW5pbWF0ZSB7LXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzO3RyYW5zaXRpb24tZHVyYXRpb246IDAuNXM7fS50Mzk2IC50LWFuaW1hdGVbZGF0YS1hbmltYXRlLXN0eWxlPSJmYWRlaW4iXSB7b3BhY2l0eTogMDt0cmFuc2Zvcm06IG5vbmU7fSc7Zm9yKGE9MDthPHQubGVuZ3RoO2ErKykobj10X2FuaW1hdGVfX2dldE1lZGlhUXVlcnkodCxhKSkuaXNDb250aW51ZXx8KGUrPW4udGV4dCsiI2FsbHJlY29yZHMgLnQzOTYgLnQtYW5pbWF0ZVtkYXRhLWFuaW1hdGUtc3R5bGUtcmVzLSIrbi5taW5SZXMrJz0iZmFkZWluIl0ge29wYWNpdHk6IDA7dHJhbnNmb3JtOiBub25lO319Jyk7ZSs9Jy50Mzk2IC50LWFuaW1hdGVfc3RhcnRlZFtkYXRhLWFuaW1hdGUtc3R5bGU9ImZhZGVpbiJdIHtvcGFjaXR5OiAxO30nO2ZvcihhPTA7YTx0Lmxlbmd0aDthKyspKG49dF9hbmltYXRlX19nZXRNZWRpYVF1ZXJ5KHQsYSkpLmlzQ29udGludWV8fChlKz1uLnRleHQrIiNhbGxyZWNvcmRzIC50Mzk2IC50LWFuaW1hdGVfc3RhcnRlZFtkYXRhLWFuaW1hdGUtc3R5bGUtcmVzLSIrbi5taW5SZXMrJz0iZmFkZWluIl0ge29wYWNpdHk6IDE7fX0nKTtlKz0nLnQzOTYgLnQtYW5pbWF0ZVtkYXRhLWFuaW1hdGUtc3R5bGU9ImZhZGVpbnVwIl0gey13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwcHgpO3RyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDEwMHB4KTt9Jztmb3IoYT0wO2E8dC5sZW5ndGg7YSsrKShuPXRfYW5pbWF0ZV9fZ2V0TWVkaWFRdWVyeSh0LGEpKS5pc0NvbnRpbnVlfHwoZSs9bi50ZXh0KyIjYWxscmVjb3JkcyAudDM5NiAudC1hbmltYXRlW2RhdGEtYW5pbWF0ZS1zdHlsZS1yZXMtIituLm1pblJlcysnPSJmYWRlaW51cCJdIHstd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDEwMHB4KTt0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxMDBweCk7fX0nKTtlKz0nLnQzOTYgLnQtYW5pbWF0ZV9zdGFydGVkW2RhdGEtYW5pbWF0ZS1zdHlsZT0iZmFkZWludXAiXSB7b3BhY2l0eTogMTstd2Via2l0LXRyYW5zZm9ybTogbm9uZTt0cmFuc2Zvcm06IG5vbmU7fSc7Zm9yKGE9MDthPHQubGVuZ3RoO2ErKykobj10X2FuaW1hdGVfX2dldE1lZGlhUXVlcnkodCxhKSkuaXNDb250aW51ZXx8KGUrPW4udGV4dCsiI2FsbHJlY29yZHMgLnQzOTYgLnQtYW5pbWF0ZV9zdGFydGVkW2RhdGEtYW5pbWF0ZS1zdHlsZS1yZXMtIituLm1pblJlcysnPSJmYWRlaW51cCJdIHtvcGFjaXR5OiAxOy13ZWJraXQtdHJhbnNmb3JtOiBub25lO3RyYW5zZm9ybTogbm9uZTt9fScpO2UrPScudDM5NiAudC1hbmltYXRlW2RhdGEtYW5pbWF0ZS1zdHlsZT0iZmFkZWluZG93biJdIHstd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xMDBweCk7dHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTEwMHB4KTt9Jztmb3IoYT0wO2E8dC5sZW5ndGg7YSsrKShuPXRfYW5pbWF0ZV9fZ2V0TWVkaWFRdWVyeSh0LGEpKS5pc0NvbnRpbnVlfHwoZSs9bi50ZXh0KyIjYWxscmVjb3JkcyAudDM5NiAudC1hbmltYXRlW2RhdGEtYW5pbWF0ZS1zdHlsZS1yZXMtIituLm1pblJlcysnPSJmYWRlaW5kb3duIl0gey13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTEwMHB4KTt0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTAwcHgpO319Jyk7ZSs9Jy50Mzk2IC50LWFuaW1hdGVfc3RhcnRlZFtkYXRhLWFuaW1hdGUtc3R5bGU9ImZhZGVpbmRvd24iXSB7b3BhY2l0eTogMTstd2Via2l0LXRyYW5zZm9ybTogbm9uZTt0cmFuc2Zvcm06IG5vbmU7fSc7Zm9yKGE9MDthPHQubGVuZ3RoO2ErKykobj10X2FuaW1hdGVfX2dldE1lZGlhUXVlcnkodCxhKSkuaXNDb250aW51ZXx8KGUrPW4udGV4dCsiI2FsbHJlY29yZHMgLnQzOTYgLnQtYW5pbWF0ZV9zdGFydGVkW2RhdGEtYW5pbWF0ZS1zdHlsZS1yZXMtIituLm1pblJlcysnPSJmYWRlaW5kb3duIl0ge29wYWNpdHk6IDE7LXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7dHJhbnNmb3JtOiBub25lO319Jyk7ZSs9Jy50Mzk2IC50LWFuaW1hdGVbZGF0YS1hbmltYXRlLXN0eWxlPSJmYWRlaW5sZWZ0Il0gey13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTAwcHgsIDApO3RyYW5zZm9ybTogdHJhbnNsYXRlKDEwMHB4LCAwKTt9Jztmb3IoYT0wO2E8dC5sZW5ndGg7YSsrKShuPXRfYW5pbWF0ZV9fZ2V0TWVkaWFRdWVyeSh0LGEpKS5pc0NvbnRpbnVlfHwoZSs9bi50ZXh0KyIjYWxscmVjb3JkcyAudDM5NiAudC1hbmltYXRlW2RhdGEtYW5pbWF0ZS1zdHlsZS1yZXMtIituLm1pblJlcysnPSJmYWRlaW5sZWZ0Il0gey13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTAwcHgsIDApO3RyYW5zZm9ybTogdHJhbnNsYXRlKDEwMHB4LCAwKTt9fScpO2UrPScudDM5NiAudC1hbmltYXRlX3N0YXJ0ZWRbZGF0YS1hbmltYXRlLXN0eWxlPSJmYWRlaW5sZWZ0Il0ge29wYWNpdHk6IDE7LXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7dHJhbnNmb3JtOiBub25lO30nO2ZvcihhPTA7YTx0Lmxlbmd0aDthKyspKG49dF9hbmltYXRlX19nZXRNZWRpYVF1ZXJ5KHQsYSkpLmlzQ29udGludWV8fChlKz1uLnRleHQrIiNhbGxyZWNvcmRzIC50Mzk2IC50LWFuaW1hdGVfc3RhcnRlZFtkYXRhLWFuaW1hdGUtc3R5bGUtcmVzLSIrbi5taW5SZXMrJz0iZmFkZWlubGVmdCJdIHtvcGFjaXR5OiAxOy13ZWJraXQtdHJhbnNmb3JtOiBub25lO3RyYW5zZm9ybTogbm9uZTt9fScpO2UrPScudDM5NiAudC1hbmltYXRlW2RhdGEtYW5pbWF0ZS1zdHlsZT0iZmFkZWlucmlnaHQiXSB7LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTAwcHgsIDApO3RyYW5zZm9ybTogdHJhbnNsYXRlKC0xMDBweCwgMCk7fSc7Zm9yKGE9MDthPHQubGVuZ3RoO2ErKykobj10X2FuaW1hdGVfX2dldE1lZGlhUXVlcnkodCxhKSkuaXNDb250aW51ZXx8KGUrPW4udGV4dCsiI2FsbHJlY29yZHMgLnQzOTYgLnQtYW5pbWF0ZVtkYXRhLWFuaW1hdGUtc3R5bGUtcmVzLSIrbi5taW5SZXMrJz0iZmFkZWlucmlnaHQiXSB7LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTAwcHgsIDApO3RyYW5zZm9ybTogdHJhbnNsYXRlKC0xMDBweCwgMCk7fX0nKTtlKz0nLnQzOTYgLnQtYW5pbWF0ZV9zdGFydGVkW2RhdGEtYW5pbWF0ZS1zdHlsZT0iZmFkZWlucmlnaHQiXSB7b3BhY2l0eTogMTstd2Via2l0LXRyYW5zZm9ybTogbm9uZTt0cmFuc2Zvcm06IG5vbmU7fSc7Zm9yKGE9MDthPHQubGVuZ3RoO2ErKykobj10X2FuaW1hdGVfX2dldE1lZGlhUXVlcnkodCxhKSkuaXNDb250aW51ZXx8KGUrPW4udGV4dCsiI2FsbHJlY29yZHMgLnQzOTYgLnQtYW5pbWF0ZV9zdGFydGVkW2RhdGEtYW5pbWF0ZS1zdHlsZS1yZXMtIituLm1pblJlcysnPSJmYWRlaW5yaWdodCJdIHtvcGFjaXR5OiAxOy13ZWJraXQtdHJhbnNmb3JtOiBub25lO3RyYW5zZm9ybTogbm9uZTt9fScpO2UrPScudDM5NiAudC1hbmltYXRlW2RhdGEtYW5pbWF0ZS1zdHlsZT0iem9vbWluIl0gey13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjkpO3RyYW5zZm9ybTogc2NhbGUoMC45KTt9Jztmb3IoYT0wO2E8dC5sZW5ndGg7YSsrKShuPXRfYW5pbWF0ZV9fZ2V0TWVkaWFRdWVyeSh0LGEpKS5pc0NvbnRpbnVlfHwoZSs9bi50ZXh0KyIjYWxscmVjb3JkcyAudDM5NiAudC1hbmltYXRlW2RhdGEtYW5pbWF0ZS1zdHlsZS1yZXMtIituLm1pblJlcysnPSJ6b29taW4iXSB7LXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuOSk7dHJhbnNmb3JtOiBzY2FsZSgwLjkpO319Jyk7ZSs9Jy50Mzk2IC50LWFuaW1hdGVfc3RhcnRlZFtkYXRhLWFuaW1hdGUtc3R5bGU9Inpvb21pbiJdIHtvcGFjaXR5OiAxOy13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTt0cmFuc2Zvcm06IHNjYWxlKDEpO30nO2ZvcihhPTA7YTx0Lmxlbmd0aDthKyspKG49dF9hbmltYXRlX19nZXRNZWRpYVF1ZXJ5KHQsYSkpLmlzQ29udGludWV8fChlKz1uLnRleHQrIiNhbGxyZWNvcmRzIC50Mzk2IC50LWFuaW1hdGVfc3RhcnRlZFtkYXRhLWFuaW1hdGUtc3R5bGUtcmVzLSIrbi5taW5SZXMrJz0iem9vbWluIl0ge29wYWNpdHk6IDE7LXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO3RyYW5zZm9ybTogc2NhbGUoMSk7fX0nKTtlKz0nLnQzOTYgLnQtYW5pbWF0ZVtkYXRhLWFuaW1hdGUtc3R5bGU9Inpvb21vdXQiXSB7LXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMik7dHJhbnNmb3JtOiBzY2FsZSgxLjIpO30nO2ZvcihhPTA7YTx0Lmxlbmd0aDthKyspKG49dF9hbmltYXRlX19nZXRNZWRpYVF1ZXJ5KHQsYSkpLmlzQ29udGludWV8fChlKz1uLnRleHQrIiNhbGxyZWNvcmRzIC50Mzk2IC50LWFuaW1hdGVbZGF0YS1hbmltYXRlLXN0eWxlLXJlcy0iK24ubWluUmVzKyc9Inpvb21vdXQiXSB7LXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMik7dHJhbnNmb3JtOiBzY2FsZSgxLjIpO319Jyk7ZSs9Jy50Mzk2IC50LWFuaW1hdGVfc3RhcnRlZFtkYXRhLWFuaW1hdGUtc3R5bGU9Inpvb21vdXQiXSB7b3BhY2l0eTogMTstd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7dHJhbnNmb3JtOiBzY2FsZSgxKTt9Jztmb3IoYT0wO2E8dC5sZW5ndGg7YSsrKShuPXRfYW5pbWF0ZV9fZ2V0TWVkaWFRdWVyeSh0LGEpKS5pc0NvbnRpbnVlfHwoZSs9bi50ZXh0KyIjYWxscmVjb3JkcyAudDM5NiAudC1hbmltYXRlX3N0YXJ0ZWRbZGF0YS1hbmltYXRlLXN0eWxlLXJlcy0iK24ubWluUmVzKyc9Inpvb21vdXQiXSB7b3BhY2l0eTogMTstd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7dHJhbnNmb3JtOiBzY2FsZSgxKTt9fScpO2UrPSIudDM5NiAudC1hbmltYXRlX3N0YXJ0ZWRbZGF0YS1hbmltYXRlLWRpc3RhbmNlXSwudDM5NiAudC1hbmltYXRlX3N0YXJ0ZWRbZGF0YS1hbmltYXRlLXNjYWxlXXstd2Via2l0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O3RyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O30iO2Zvcih2YXIgbixhPTA7YTx0Lmxlbmd0aDthKyspKG49dF9hbmltYXRlX19nZXRNZWRpYVF1ZXJ5KHQsYSkpLmlzQ29udGludWV8fChlKz1uLnRleHQrIiNhbGxyZWNvcmRzIC50Mzk2IC50LWFuaW1hdGVfc3RhcnRlZFtkYXRhLWFuaW1hdGUtZGlzdGFuY2UtcmVzLSIrbi5taW5SZXMrIl0sI2FsbHJlY29yZHMgLnQzOTYgLnQtYW5pbWF0ZV9zdGFydGVkW2RhdGEtYW5pbWF0ZS1zdHlsZS1yZXMtIituLm1pblJlcysnPSJ6b29tb3V0Il0gey13ZWJraXQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7dHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7fX0nKTt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpLHI9ZG9jdW1lbnQuaGVhZHx8ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaGVhZCIpO2kudGV4dENvbnRlbnQ9ZSxyLmFwcGVuZENoaWxkKGkpfX1mdW5jdGlvbiB0X2FuaW1hdGVfX2dldEJyZWFrcG9pbnRzQXJyKCl7dmFyIGU9W10sdD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcucltkYXRhLXJlY29yZC10eXBlPSIzOTYiXTpub3QoLnQzOTdfX29mZik6bm90KC50Mzk1X19vZmYpOm5vdCgudDQwMF9fb2ZmKSAudDM5Nl9fYXJ0Ym9hcmQnKSk7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodCxmdW5jdGlvbih0KXt0LmNsYXNzTGlzdC5jb250YWlucygidDM5Nl9fYXJ0Ym9hcmQiKSYmKHQ9KHQ9KHQ9KHQ9dC5nZXRBdHRyaWJ1dGUoImRhdGEtYXJ0Ym9hcmQtc2NyZWVucyIpKT90LnNwbGl0KCIsIik6WzEyMDAsOTYwLDY0MCw0ODAsMzIwXSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBwYXJzZUludCh0LDEwKX0pKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuLTE9PT1lLmluZGV4T2YodCl9KSxlPWUuY29uY2F0KHQpKX0pLGU9dF9hbmltYXRlX19zb3J0QXJyKGUpfWZ1bmN0aW9uIHRfYW5pbWF0ZV9fZ2V0TWVkaWFRdWVyeSh0LGUpe3ZhciBhPSIiLG49ITEsaT10W2UrMV0scj10W2VdLTEsbz1lPT09dC5sZW5ndGgtMSxlPWU9PT10Lmxlbmd0aC0yO3JldHVybiBvP249ITA6YSs9ZT8iQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogIityKyJweCkgeyI6IkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICIraSsicHgpIGFuZCAobWF4LXdpZHRoOiAiK3IrInB4KSB7Iix7dGV4dDphLGlzQ29udGludWU6bixtaW5SZXM6aX19ZnVuY3Rpb24gdF9hbmltYXRlX19zb3J0QXJyKHQpe3JldHVybiB0LnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS10fSl9ZnVuY3Rpb24gdF9hbmltYXRlX19zdGFydEFuaW1hdGlvbigpe3ZhciB0LGEsZSxuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5yIiksaT1BcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwobixmdW5jdGlvbih0KXtyZXR1cm4gdC5xdWVyeVNlbGVjdG9yKCIudC1hbmltYXRlW2RhdGEtYW5pbWF0ZS1ncm91cD15ZXNdIil9KSxyPUFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChuLGZ1bmN0aW9uKHQpe3JldHVybiB0LnF1ZXJ5U2VsZWN0b3IoJy50LWFuaW1hdGVbZGF0YS1hbmltYXRlLWNoYWluPSJ5ZXMiXScpfSksbz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudC1hbmltYXRlIik7bz1BcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwobyxmdW5jdGlvbih0KXtyZXR1cm4hKCJ5ZXMiPT09dC5nZXRBdHRyaWJ1dGUoImRhdGEtYW5pbWF0ZS1ncm91cCIpfHwieWVzIj09PXQuZ2V0QXR0cmlidXRlKCJkYXRhLWFuaW1hdGUtY2hhaW4iKXx8dC5nZXRBdHRyaWJ1dGUoIm9ic2VydmVyLXJlYWR5IikpfSksd2luZG93LmlubmVyV2lkdGg8MTIwMCYmKGk9dF9hbmltYXRlX19jaGVja01vYmlsZShpKSxyPXRfYW5pbWF0ZV9fY2hlY2tNb2JpbGUociksbz10X2FuaW1hdGVfX2NoZWNrTW9iaWxlKG8pKSwoaS5sZW5ndGh8fG8ubGVuZ3RofHxyLmxlbmd0aCkmJih0X2FuaW1hdGVfX3NldEFuaW1hdGlvblN0YXRlKGkscixvKSxpPXRfYW5pbWF0ZV9faGFzV2FpdEFuaW1hdGlvbihpKSxvPXRfYW5pbWF0ZV9faGFzV2FpdEFuaW1hdGlvbihvKSxyPXRfYW5pbWF0ZV9faGFzV2FpdEFuaW1hdGlvbihyKSx0PSJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yJiYvXigoPyFjaHJvbWV8YW5kcm9pZCkuKSooc2FmYXJpfG1vYmlsZSkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYvKG9zIHx2ZXJzaW9uXC8pMTUoLnxfKVs0LTldL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSwiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiaW4gd2luZG93JiYhdD8oaS5sZW5ndGgmJihhPVtdLGkuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT10LnF1ZXJ5U2VsZWN0b3IoIi50LWFuaW1hdGUiKTsiZmFkZWluZG93biI9PT1lLmdldEF0dHJpYnV0ZSgiZGF0YS1hbmltYXRlLXN0eWxlIikmJmUuY2xvc2VzdCgiLnQtY292ZXIiKSYmKHQ9dC5xdWVyeVNlbGVjdG9yKCIudC1hbmltYXRlOm5vdCg6Zmlyc3QtY2hpbGQpIikpJiYoZT10KSxhLnB1c2goZSl9KSxhLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9e3Jvb3RNYXJnaW46dC5vZmZzZXRIZWlnaHQvNSotMSsicHggMHB4In07bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKHQsYSl7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlO3QuaXNJbnRlcnNlY3RpbmcmJih0PXQudGFyZ2V0LGEudW5vYnNlcnZlKHQpLGU9dC5jbG9zZXN0KCIuciIpLnF1ZXJ5U2VsZWN0b3JBbGwoIi50LWFuaW1hdGUiKSxlPUFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChlLGZ1bmN0aW9uKHQpe3JldHVybiEodC5jbGFzc0xpc3QuY29udGFpbnMoInQtYW5pbWF0ZV9fYnRuLXdhaXQtY2hhaW4iKXx8InllcyI9PT10LmdldEF0dHJpYnV0ZSgiZGF0YS1hbmltYXRlLWNoYWluIikpfSksdF9hbmltYXRlX19tYWtlU2VjdGlvbkJ1dHRvbldhaXQodCksdF9hbmltYXRlX19zYXZlU2VjdGlvbkhlYWRlclN0YXJ0VGltZSh0KSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGUsZnVuY3Rpb24odCl7dC5jbGFzc0xpc3QucmVtb3ZlKCJ0LWFuaW1hdGVfd2FpdCIpLHRfYW5pbWF0ZV9fcmVtb3ZlTm9Ib3ZlckNsYXNzRnJvbUJ0bnModCksdF9hbmltYXRlX19zZXRTdGFydEFuaW1hdGlvbkNsYXNzKHQsITEpfSkpfSl9LGUpLm9ic2VydmUodCl9KSksby5sZW5ndGgmJm8uZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT17fSxhPXRfYW5pbWF0ZV9fZ2V0QXR0ckJ5UmVzQmFzZSh0LCJ0cmlnZ2VyLW9mZnNldCIpLGE9KGEmJihlLnJvb3RNYXJnaW49IjBweCAwcHggIistMSphLnJlcGxhY2UoInB4IiwiIikrInB4IDBweCIpLG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihmdW5jdGlvbih0LG4pe3QuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZSxhPXQudGFyZ2V0OyFhLmRlbWFuZFRyYW5zZm9ybSYmYS5zdHlsZS50cmFuc2Zvcm0/KGEuZGVtYW5kVHJhbnNmb3JtPWEuc3R5bGUudHJhbnNmb3JtLGEuc3R5bGUudHJhbnNmb3JtPSJ1bnNldCIpOihlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGEpLnRyYW5zZm9ybSxhLnN0eWxlLnRyYW5zZm9ybXx8Im5vbmUiPT09ZXx8KGEuZGVtYW5kVHJhbnNmb3JtPWUsYS5zdHlsZS50cmFuc2Zvcm09InVuc2V0IikpLHQuaXNJbnRlcnNlY3RpbmcmJihhLmNsb3Nlc3QoIi50MTA5MyIpfHxuLnVub2JzZXJ2ZShhKSxlPS0xIT09KGU9YS5zdHlsZS50cmFuc2l0aW9uRGVsYXl8fCIwbXMiKS5pbmRleE9mKCJtcyIpP3BhcnNlSW50KGUpKzI1MDoxZTMqcGFyc2VGbG9hdChlKSsyNTAsYS5kZW1hbmRUcmFuc2Zvcm0mJi0xIT09YS5kZW1hbmRUcmFuc2Zvcm0uaW5kZXhPZigibWF0cml4IikmJihhLnN0eWxlLnRyYW5zZm9ybT0iIiksYS5kZW1hbmRUcmFuc2Zvcm0mJiJ1bnNldCI9PT1hLnN0eWxlLnRyYW5zZm9ybSYmKGEuc3R5bGUudHJhbnNmb3JtPWEuZGVtYW5kVHJhbnNmb3JtLGRlbGV0ZSBhLmRlbWFuZFRyYW5zZm9ybSksc2V0VGltZW91dChmdW5jdGlvbigpe2EuY2xhc3NMaXN0LnJlbW92ZSgidC1hbmltYXRlX3dhaXQiKSx0X2FuaW1hdGVfX3JlbW92ZU5vSG92ZXJDbGFzc0Zyb21CdG5zKGEpLHRfYW5pbWF0ZV9fc2V0U3RhcnRBbmltYXRpb25DbGFzcyhhLCEwKSwiYW5pbWF0ZWRudW1iZXIiPT09dF9hbmltYXRlX19nZXRBdHRyQnlSZXNCYXNlKGEsInN0eWxlIikmJnRfYW5pbWF0ZV9fYW5pbWF0ZU51bWJlcnMoYSl9LGUpKX0pfSxlKSk7dC5kYXRhc2V0Lm9ic2VydmVyUmVhZHk9ITAsYS5vYnNlcnZlKHQpfSksci5sZW5ndGgmJigoZT1mdW5jdGlvbigpe3RfYW5pbWF0ZV9fZ2V0Q2hhaW5PZmZzZXRzKHIpfSkoKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0X3Rocm90dGxlKGZ1bmN0aW9uKCl7ZSgpfSkpLHNldEludGVydmFsKGUsNWUzKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0X3Rocm90dGxlKGZ1bmN0aW9uKCl7dmFyIHQ9d2luZG93LnBhZ2VZT2Zmc2V0K3dpbmRvdy5pbm5lckhlaWdodDt0X2FuaW1hdGVfX2FuaW1hdGVDaGFpbnNCbG9ja3Mocix0KX0pKSkpOigoZT1mdW5jdGlvbigpe3RfYW5pbWF0ZV9fZ2V0R3JvdXBzT2Zmc2V0cyhpKSx0X2FuaW1hdGVfX2dldENoYWluT2Zmc2V0cyhyKSx0X2FuaW1hdGVfX2dldEVsZW1zT2Zmc2V0cyhvKX0pKCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdF90aHJvdHRsZShlKSksc2V0SW50ZXJ2YWwoZSw1ZTMpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRfdGhyb3R0bGUoZnVuY3Rpb24oKXt2YXIgdD10X2FuaW1hdGVfX2RlbGV0ZUFuaW1hdGVkRWxzKGksbyksdD0obz10WzBdLHRfYW5pbWF0ZV9fYW5pbWF0ZU9uU2Nyb2xsKGk9dFsxXSxyLG8pKTt0JiZ0Lmxlbmd0aCYmKGk9dFswXSxyPXRbMV0sbz10WzJdKX0pKSksQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChuLGZ1bmN0aW9uKHQpe3ZhciBhPXQucXVlcnlTZWxlY3RvcigiLnQtcG9wdXAiKTthJiZhLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdF90aHJvdHRsZShmdW5jdGlvbigpe3ZhciB0LGU9d2luZG93LnBhZ2VZT2Zmc2V0K3dpbmRvdy5pbm5lckhlaWdodDsoYS5jbGFzc0xpc3QuY29udGFpbnMoInQtYW5pbWF0ZSIpJiYieWVzIj09PWEuZ2V0QXR0cmlidXRlKCJkYXRhLWFuaW1hdGUtY2hhaW4iKXx8YS5xdWVyeVNlbGVjdG9yKCIudC1hbmltYXRlW2RhdGEtYW5pbWF0ZS1jaGFpbj15ZXNdIikpJiYodF9hbmltYXRlX19zZXRBbmltYXRpb25TdGF0ZUNoYWlucyh0PVthXSksdF9hbmltYXRlX19nZXRDaGFpbk9mZnNldHModD1BcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwodCxmdW5jdGlvbih0KXtyZXR1cm4gdC5xdWVyeVNlbGVjdG9yKCIudC1hbmltYXRlX3dhaXQiKX0pKSx0X2FuaW1hdGVfX2FuaW1hdGVDaGFpbnNCbG9ja3ModCxlKSl9KSl9KSl9ZnVuY3Rpb24gdF9hbmltYXRlX19hbmltYXRlT25TY3JvbGwodCxlLGEpe3ZhciBuLGk7aWYodC5sZW5ndGh8fGUubGVuZ3RofHxhLmxlbmd0aClyZXR1cm4gbj13aW5kb3cucGFnZVlPZmZzZXQsaT1uK3dpbmRvdy5pbm5lckhlaWdodCxbdF9hbmltYXRlX19hbmltYXRlR3JvdXBzKHQsaSxuKSx0X2FuaW1hdGVfX2FuaW1hdGVDaGFpbnNCbG9ja3MoZSxpLG4pLHRfYW5pbWF0ZV9fYW5pbWF0ZUVsZW1zKGEsaSxuKV19ZnVuY3Rpb24gdF9hbmltYXRlX19hbmltYXRlR3JvdXBzKHQsYSl7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZTt0LmN1clRvcE9mZnNldDxhJiYoZT10LnF1ZXJ5U2VsZWN0b3JBbGwoIi50LWFuaW1hdGUiKSxlPUFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChlLGZ1bmN0aW9uKHQpe3JldHVybiEodC5jbGFzc0xpc3QuY29udGFpbnMoInQtYW5pbWF0ZV9fYnRuLXdhaXQtY2hhaW4iKXx8InllcyI9PT10LmdldEF0dHJpYnV0ZSgiZGF0YS1hbmltYXRlLWNoYWluIikpfSksdF9hbmltYXRlX19tYWtlU2VjdGlvbkJ1dHRvbldhaXQodCksdF9hbmltYXRlX19zYXZlU2VjdGlvbkhlYWRlclN0YXJ0VGltZSh0KSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGUsZnVuY3Rpb24odCl7dC5jbGFzc0xpc3QucmVtb3ZlKCJ0LWFuaW1hdGVfd2FpdCIpLHRfYW5pbWF0ZV9fcmVtb3ZlTm9Ib3ZlckNsYXNzRnJvbUJ0bnModCksdF9hbmltYXRlX19zZXRTdGFydEFuaW1hdGlvbkNsYXNzKHQsITEpfSkpfSksdH1mdW5jdGlvbiB0X2FuaW1hdGVfX2FuaW1hdGVDaGFpbnNCbG9ja3ModCxlKXtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuaXRlbXNPZmZzZXRzWzBdPGUmJnQucXVlcnlTZWxlY3RvckFsbCgiLnQtYW5pbWF0ZV93YWl0IikubGVuZ3RoJiYodF9hbmltYXRlX19hbmltYXRlQ2hhaW5JdGVtc09uU2Nyb2xsKHQsZSksdC5pdGVtc09mZnNldHMubGVuZ3RoJiZ0X2FuaW1hdGVfX2NoZWNrU2VjdGlvbkJ1dHRvbkFuaW1hdGlvbl9fb3V0T2ZUdXJuKHQpKX0pLHR9ZnVuY3Rpb24gdF9hbmltYXRlX19hbmltYXRlRWxlbXModCxhLG4pe3JldHVybiBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwodCxmdW5jdGlvbih0KXt2YXIgZT10X2FuaW1hdGVfX2RldGVjdEVsZW1UcmlnZ2VyT2Zmc2V0KHQsYSk7cmV0dXJuIHQuY3VyVG9wT2Zmc2V0PGU/KHQuY2xhc3NMaXN0LnJlbW92ZSgidC1hbmltYXRlX3dhaXQiKSx0X2FuaW1hdGVfX3JlbW92ZU5vSG92ZXJDbGFzc0Zyb21CdG5zKHQpLHRfYW5pbWF0ZV9fc2V0U3RhcnRBbmltYXRpb25DbGFzcyh0LCExKSwiYW5pbWF0ZWRudW1iZXIiPT09dF9hbmltYXRlX19nZXRBdHRyQnlSZXNCYXNlKHQsInN0eWxlIikmJnRfYW5pbWF0ZV9fYW5pbWF0ZU51bWJlcnModCksITApOiEodC5jdXJUb3BPZmZzZXQ8bikmJnZvaWQgMH0pLHR9ZnVuY3Rpb24gdF9hbmltYXRlX19kZWxldGVBbmltYXRlZEVscyh0LGUpe3ZhciBhPXdpbmRvdy5wYWdlWU9mZnNldCxuPVtdLGk9W107cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZTt0LmN1clRvcE9mZnNldDw9YT8oZT10LnF1ZXJ5U2VsZWN0b3JBbGwoIi50LWFuaW1hdGUiKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGUsZnVuY3Rpb24odCl7dF9hbmltYXRlX19yZW1vdmVBbmltYXRpb25DbGFzcyh0LFsid2FpdCIsIm5vLWhvdmVyIl0pfSkpOm4ucHVzaCh0KX0pLGUuZm9yRWFjaChmdW5jdGlvbih0KXt0LmN1clRvcE9mZnNldDw9YT8odF9hbmltYXRlX19yZW1vdmVBbmltYXRpb25DbGFzcyh0LFsid2FpdCIsIm5vLWhvdmVyIl0pLHRfYW5pbWF0ZV9fc2V0U3RhcnRBbmltYXRpb25DbGFzcyh0LCExKSk6aS5wdXNoKHQpfSksW2ksbl19ZnVuY3Rpb24gdF9hbmltYXRlX19hbmltYXRlQ2hhaW5JdGVtc09uU2Nyb2xsKHQsZSl7dmFyIGE9dC5xdWVyeVNlbGVjdG9yQWxsKCIudC1hbmltYXRlX3dhaXRbZGF0YS1hbmltYXRlLWNoYWluPXllc10iKSxhPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGEpLG49MCxpPTAscj10Lml0ZW1zT2Zmc2V0c1swXSxvPXRfYW5pbWF0ZV9fZ2V0RGVsYXlGcm9tUHJldmlvdXNTY3JvbGxFdmVudCh0LC4xNikscz10X2FuaW1hdGVfX2dldFNlY3Rpb25IZWFkRGVhbHkodCk7YS5sZW5ndGgmJmFbMF0uY2xhc3NMaXN0LmFkZCgidC1hbmltYXRlX19jaGFpbl9maXJzdC1pbi1yb3ciKTtmb3IodmFyIGw9MDtsPGEubGVuZ3RoO2wrKyl7dmFyIG09YVtsXSxjPXQuaXRlbXNPZmZzZXRzW2xdO2lmKCEoYzxlKSlicmVhaztjIT09ciYmKG0uY2xhc3NMaXN0LmFkZCgidC1hbmltYXRlX19jaGFpbl9maXJzdC1pbi1yb3ciKSxuPSsraSxyPWMpO3ZhciBfPS4xNipuK28rczttLnN0eWxlLnRyYW5zaXRpb25EZWxheT1fKyJzIixtLmNsYXNzTGlzdC5yZW1vdmUoInQtYW5pbWF0ZV93YWl0IiksdF9hbmltYXRlX19zZXRTdGFydEFuaW1hdGlvbkNsYXNzKG0sITEpLG0uc2V0QXR0cmlidXRlKCJkYXRhLWFuaW1hdGUtc3RhcnQtdGltZSIsRGF0ZS5ub3coKSsxZTMqXyksbVswXT09PWFbYS5sZW5ndGgtMV0mJnRfYW5pbWF0ZV9fY2hlY2tTZWN0aW9uQnV0dG9uQW5pbWF0aW9uKHQsXyksK2M9PStyJiZuKyssYS5zcGxpY2UobCwxKSx0Lml0ZW1zT2Zmc2V0cy5zcGxpY2UobCwxKSxsLS19dF9hbmltYXRlX19jYXRjaFRyYW5zaXRpb25FbmRFdmVudCh0KX1mdW5jdGlvbiB0X2FuaW1hdGVfX2dldFNlY3Rpb25IZWFkRGVhbHkodCl7dmFyIGU9dC5xdWVyeVNlbGVjdG9yKCIudC1zZWN0aW9uX190aXRsZS50LWFuaW1hdGUiKSx0PXQucXVlcnlTZWxlY3RvcigiLnQtc2VjdGlvbl9fZGVzY3IudC1hbmltYXRlIiksYT0wO2lmKGUpe2U9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtYW5pbWF0ZS1zdGFydC10aW1lIil8fDA7aWYoRGF0ZS5ub3coKS1lPD0xNjApcmV0dXJuIGE9LjE2fWlmKHQpe2U9dC5nZXRBdHRyaWJ1dGUoImRhdGEtYW5pbWF0ZS1zdGFydC10aW1lIil8fDA7aWYoRGF0ZS5ub3coKS1lPD0xNjApcmV0dXJuIGE9LjE2fXJldHVybiBhfWZ1bmN0aW9uIHRfYW5pbWF0ZV9fZ2V0RGVsYXlGcm9tUHJldmlvdXNTY3JvbGxFdmVudCh0LGUpe3ZhciBhPSF0LnF1ZXJ5U2VsZWN0b3JBbGwoIi50LWFuaW1hdGVfc3RhcnRlZCIpLmxlbmd0aCx0PXQucXVlcnlTZWxlY3RvckFsbCgiLnQtYW5pbWF0ZV9fY2hhaW5fZmlyc3QtaW4tcm93LnQtYW5pbWF0ZV9zdGFydGVkIiksdD1BcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwodCxmdW5jdGlvbih0KXtyZXR1cm4hdC5jbGFzc0xpc3QuY29udGFpbnMoInQtYW5pbWF0ZV9fY2hhaW5fc2hvd2VkIil9KTtyZXR1cm4gYXx8IXQubGVuZ3RoPzA6dC5sZW5ndGg/KGE9KHRbdC5sZW5ndGgtMV0uZ2V0QXR0cmlidXRlKCJkYXRhLWFuaW1hdGUtc3RhcnQtdGltZSIpfHwwKS1EYXRlLm5vdygpKTw9MD9lOmEvMWUzK2U6dm9pZCAwfWZ1bmN0aW9uIHRfYW5pbWF0ZV9fc2V0U3RhcnRBbmltYXRpb25DbGFzcyh0LGUpe3ZhciBhO3QmJihlJiYoYT10LmNsb3Nlc3QoIi4iKyhlPSJ0LWFuaW1hdGUtZm9yLXdyYXBwZXIiKSkpJiZhLmNsYXNzTGlzdC5yZW1vdmUoZSksdC5jbGFzc0xpc3QuYWRkKCJ0LWFuaW1hdGVfc3RhcnRlZCIpKX1mdW5jdGlvbiB0X2FuaW1hdGVfX2NhdGNoVHJhbnNpdGlvbkVuZEV2ZW50KHQpe3Q9dC5xdWVyeVNlbGVjdG9yQWxsKCIudC1hbmltYXRlX19jaGFpbl9maXJzdC1pbi1yb3cudC1hbmltYXRlX3N0YXJ0ZWQiKSx0PUFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbCh0LGZ1bmN0aW9uKHQpe3JldHVybiF0LmNsYXNzTGlzdC5jb250YWlucygidC1hbmltYXRlX19jaGFpbl9zaG93ZWQiKX0pO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodCxmdW5jdGlvbihlKXtbInRyYW5zaXRpb25lbmQiLCJ3ZWJraXRUcmFuc2l0aW9uRW5kIiwib1RyYW5zaXRpb25FbmQiLCJvdHJhbnNpdGlvbmVuZCIsIk1TVHJhbnNpdGlvbkVuZCJdLmZvckVhY2goZnVuY3Rpb24odCl7ZS5hZGRFdmVudExpc3RlbmVyKHQsZnVuY3Rpb24oKXt0X2FuaW1hdGVfX2FkZEV2ZW50T25BbmltYXRlQ2hhaW4oZSl9KSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIodCxmdW5jdGlvbigpe3RfYW5pbWF0ZV9fYWRkRXZlbnRPbkFuaW1hdGVDaGFpbihlKX0pfSl9KX1mdW5jdGlvbiB0X2FuaW1hdGVfX3BhcnNlTnVtYmVyVGV4dCgpe3ZhciByPXdpbmRvdy5wYWdlWU9mZnNldCx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50LWFuaW1hdGVbZGF0YS1hbmltYXRlLXN0eWxlPSdhbmltYXRlZG51bWJlciddIik7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0LGZ1bmN0aW9uKHQpe3ZhciBlLGEsbj0iIixpPXQucXVlcnlTZWxlY3RvckFsbCgic3BhbiIpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoaSxmdW5jdGlvbih0KXtuKz10LmdldEF0dHJpYnV0ZSgic3R5bGUiKXx8IiIsdC5yZW1vdmVBdHRyaWJ1dGUoInN0eWxlIiksdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcmVkYWN0b3Itc3R5bGUiKX0pLHQucXVlcnlTZWxlY3RvckFsbCgnZGl2W2RhdGEtY3VzdG9tc3R5bGU9InllcyJdJykubGVuZ3RoPyhlPShpPXQucXVlcnlTZWxlY3RvcignZGl2W2RhdGEtY3VzdG9tc3R5bGU9InllcyJdJykpP2kuaW5uZXJIVE1MOiIiLGk9dC5nZXRBdHRyaWJ1dGUoInN0eWxlIil8fCIiLChhPShhPXQucXVlcnlTZWxlY3RvcigiZGl2W2RhdGEtY3VzdG9tc3R5bGVdIikpP2EuZ2V0QXR0cmlidXRlKCJzdHlsZSIpOiIiKSYmKGkrPWEpLHQuc2V0QXR0cmlidXRlKCJzdHlsZSIsaSkpOmU9dC5pbm5lckhUTUwsbj1uLnNwbGl0KCI7IikuZmlsdGVyKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4uc3BsaXQoIjsiKS5pbmRleE9mKHQpPT09ZX0pLmpvaW4oIjsiKSx0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCt3aW5kb3cucGFnZVlPZmZzZXQ8ci01MDB8fGUubGVuZ3RoJiYoaT1hPWUucmVwbGFjZSgvPGJyPi9nLCIgIikucmVwbGFjZSgvW15cZC4sIF0rL2csIiIpLnJlcGxhY2UoLyAoXC58LCkvZywiIikucmVwbGFjZSgvKFxkKSg/PVxkKSAvZywiJDEiKS50cmltKCksLTE9PT1lLmluZGV4T2YoYSkmJihpPWE9YS5zcGxpdCgiICIpWzBdKSwiIiE9PWEmJih0LnNldEF0dHJpYnV0ZSgiZGF0YS1hbmltYXRlLW51bWJlci1jb3VudCIsZSksdF9hbmltYXRlX19jaGFuZ2VOdW1iZXJPblplcm8odCxlLnJlcGxhY2UoaSwibnVtIikpLGE9dC5xdWVyeVNlbGVjdG9yQWxsKCJzcGFuIiksYT1BcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoYSxmdW5jdGlvbih0KXtyZXR1cm4hdC5jbGFzc0xpc3QuY29udGFpbnMoIi50LWFuaW1hdGVfX251bWJlciIpfSksQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChhLGZ1bmN0aW9uKHQpe3Quc2V0QXR0cmlidXRlKCJzdHlsZSIsbil9KSkpfSl9ZnVuY3Rpb24gdF9hbmltYXRlX19jaGFuZ2VOdW1iZXJPblplcm8odCxlKXt0LmlubmVySFRNTD1lLnJlcGxhY2UoL251bS9nLCc8c3BhbiBjbGFzcz0idC1hbmltYXRlX19udW1iZXIiPjA8L3NwYW4+Jyl9ZnVuY3Rpb24gdF9hbmltYXRlX19hbmltYXRlTnVtYmVycyhlKXtpZighZSlyZXR1cm4hMTt2YXIgYSxuLGkscixvLHMsbD1lLmdldEF0dHJpYnV0ZSgiZGF0YS1hbmltYXRlLW51bWJlci1jb3VudCIpLG09W10sdD1lLnF1ZXJ5U2VsZWN0b3JBbGwoInNwYW4iKSxjPSgodD1BcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwodCxmdW5jdGlvbih0KXtyZXR1cm4hdC5jbGFzc0xpc3QuY29udGFpbnMoIi50LWFuaW1hdGVfX251bWJlciIpfSkpLmxlbmd0aCYmKG09dFswXS5nZXRBdHRyaWJ1dGUoInN0eWxlIil8fCIiKSxbXSksXz1udWxsLGY9KGwmJihfPWwubWF0Y2goL1xkK1wuXGQrfFxkKyxcZCsvZyksYT1sLm1hdGNoKC9cZCsvZyksbC5yZXBsYWNlKC8oXGQpKD89IFxkKSAvZywiJDEiKS5zcGxpdCgiICIpLmZvckVhY2goZnVuY3Rpb24odCl7aXNOYU4ocGFyc2VJbnQodC5yZXBsYWNlKC9bXlxkLiwgXSsvZywiIiksMTApKXx8Yy5wdXNoKHQucmVwbGFjZSgvW15cZC4sIF0rL2csIiIpKX0pKSwwKSx1PSExLGQ9ITEseT0oZS5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtYW5pbWF0ZS1udW1iZXItY291bnQiKSxudWxsIT09XyYmKGQ9LTEhPT1fWzBdLmluZGV4T2YoIiwiKSksYy5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIGE7bnVsbCE9PV8mJigtMSE9PXQuaW5kZXhPZigiLCIpJiYoYT10LnNwbGl0KCIsIikpLC0xIT09dC5pbmRleE9mKCIuIikmJihhPXQuc3BsaXQoIi4iKSksLTE9PT10LmluZGV4T2YoIiwiKSYmLTE9PT10LmluZGV4T2YoIi4iKXx8KGY9YVsxXS5sZW5ndGgsY1tlXT0rYS5qb2luKCIuIiksdT0hMCkpfSksZS5xdWVyeVNlbGVjdG9yKCIudC1hbmltYXRlX19udW1iZXIiKSk7Y1swXSYmKG49TnVtYmVyKGNbMF0pfHwwLGk9MCxyPU1hdGgucG93KDEwLGYpLHUmJihuKj1yLGkqPXIpLG89MCxzPXNldEludGVydmFsKGZ1bmN0aW9uKCl7dmFyIHQ7aSs9bi8xMDgsbz11PyhNYXRoLnJvdW5kKGkpL3IpLnRvRml4ZWQoZikrIiI6TWF0aC5mbG9vcihpKSsiIiwxPGEubGVuZ3RoJiYobz1vLnJlcGxhY2UoLyhcZCkoPz0oXGR7M30pKyhbXlxkXXwkKSkvZywiJDEgIikpLGQmJihvPW8ucmVwbGFjZSgvXC4vZywiLCIpKSx5JiYoeS50ZXh0Q29udGVudD1vKSxuPD1pJiYoY2xlYXJJbnRlcnZhbChzKSxlLmlubmVySFRNTD1sLHQ9ZS5xdWVyeVNlbGVjdG9yQWxsKCJzcGFuIiksQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0LGZ1bmN0aW9uKHQpe3Quc2V0QXR0cmlidXRlKCJzdHlsZSIsbSl9KSl9LDEyKSl9ZnVuY3Rpb24gdF9hbmltYXRlX19zZXRBbmltYXRpb25TdGF0ZSh0LGUsYSl7dmFyIG49d2luZG93LnBhZ2VZT2Zmc2V0LGk9bit3aW5kb3cuaW5uZXJIZWlnaHQ7dF9hbmltYXRlX19zZXRHcm91cHNCbG9ja3NTdGF0ZSh0LG4saSksZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3RfYW5pbWF0ZV9fYXNzaWduQ2hhaW5EZWxheSh0LGksbiksdF9hbmltYXRlX19jaGVja1NlY3Rpb25CdXR0b25BbmltYXRpb25fX291dE9mVHVybih0KX0pLHRfYW5pbWF0ZV9fc2V0QW5pbUVMZW1zU3RhdGUoYSxuLGkpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRfdGhyb3R0bGUodF9hbmltYXRlX19yZW1vdmVJbmxpbmVBbmltU3R5bGVzKSl9ZnVuY3Rpb24gdF9hbmltYXRlX19zZXRBbmltRUxlbXNTdGF0ZSh0LG4saSl7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wK3dpbmRvdy5wYWdlWU9mZnNldDtpZihlPG4tNTAwKXJldHVybiB0X2FuaW1hdGVfX3JlbW92ZUFuaW1hdGlvbkNsYXNzKHQsIm5vLWhvdmVyIiksImFuaW1hdGVkbnVtYmVyIj09PXRfYW5pbWF0ZV9fZ2V0QXR0ckJ5UmVzQmFzZSh0LCJzdHlsZSIpJiZ0X2FuaW1hdGVfX2FuaW1hdGVOdW1iZXJzKHQpLCEwO3ZhciBhPXRfYW5pbWF0ZV9fZGV0ZWN0RWxlbVRyaWdnZXJPZmZzZXQodCxpKTt0X2FuaW1hdGVfX3NldEN1c3RvbUFuaW1TZXR0aW5ncyh0LGUsaSksZTxhJiYhdC5jbG9zZXN0KCIudDEwOTMiKSYmKHRfYW5pbWF0ZV9fcmVtb3ZlTm9Ib3ZlckNsYXNzRnJvbUJ0bnModCksdF9hbmltYXRlX19zZXRTdGFydEFuaW1hdGlvbkNsYXNzKHQsITApLCJhbmltYXRlZG51bWJlciI9PT10X2FuaW1hdGVfX2dldEF0dHJCeVJlc0Jhc2UodCwic3R5bGUiKSYmdF9hbmltYXRlX19hbmltYXRlTnVtYmVycyh0KSksKGE8PWV8fHQuY2xvc2VzdCgiLnQxMDkzIikpJiZ0LmNsYXNzTGlzdC5hZGQoInQtYW5pbWF0ZV93YWl0Iil9KX1mdW5jdGlvbiB0X2FuaW1hdGVfX3NldEdyb3Vwc0Jsb2Nrc1N0YXRlKHQsaSxyKXt0LmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIHQ9YS5xdWVyeVNlbGVjdG9yQWxsKCIudC1hbmltYXRlIiksdD1BcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwodCxmdW5jdGlvbih0KXtyZXR1cm4hKCJ5ZXMiPT09dC5nZXRBdHRyaWJ1dGUoImRhdGEtYW5pbWF0ZS1jaGFpbiIpKX0pLG49YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3Ard2luZG93LnBhZ2VZT2Zmc2V0LGU9KHRfYW5pbWF0ZV9fcmVtb3ZlQW5pbUZyb21IaWRkZW5TbGlkZXMoYSksdF9hbmltYXRlX19hc3NpZ25TZWN0aW9uRGVsYXkoYSkpO3RfYW5pbWF0ZV9fYXNzaWduR3JvdXBEZWxheShhLGUpLEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodCxmdW5jdGlvbih0KXt2YXIgZT10LmNsb3Nlc3QoIi50Mzk3X19vZmYiKXx8dC5jbG9zZXN0KCIudDM5NV9fb2ZmIil8fHQuY2xvc2VzdCgiLnQ0MDBfX29mZiIpO2lmKHQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LWFuaW1hdGVfbm8taG92ZXIiKSYmZSYmdC5jbGFzc0xpc3QucmVtb3ZlKCJ0LWFuaW1hdGVfbm8taG92ZXIiKSxuPD1pLTEwMClyZXR1cm4gdF9hbmltYXRlX19zYXZlU2VjdGlvbkhlYWRlclN0YXJ0VGltZShhKSx0X2FuaW1hdGVfX3JlbW92ZUFuaW1hdGlvbkNsYXNzKHQsIm5vLWhvdmVyIiksISh0LnN0eWxlLnRyYW5zaXRpb25EZWxheT0iIik7bjxyJiZpLTEwMDxuJiYodF9hbmltYXRlX19tYWtlU2VjdGlvbkJ1dHRvbldhaXQoYSksdC5jbGFzc0xpc3QuY29udGFpbnMoIi50LWFuaW1hdGVfX2J0bi13YWl0LWNoYWluIil8fCh0X2FuaW1hdGVfX3JlbW92ZU5vSG92ZXJDbGFzc0Zyb21CdG5zKHQpLGU/dC5jbGFzc0xpc3QuYWRkKCJ0LWFuaW1hdGVfd2FpdCIpOnRfYW5pbWF0ZV9fc2V0U3RhcnRBbmltYXRpb25DbGFzcyh0LCExKSkpLHI8PW4mJnQuY2xhc3NMaXN0LmFkZCgidC1hbmltYXRlX3dhaXQiKX0pfSl9ZnVuY3Rpb24gdF9hbmltYXRlX19zZXRBbmltYXRpb25TdGF0ZUNoYWlucyh0KXtpZighdHx8IXQubGVuZ3RoKXJldHVybiExO3ZhciBlPXdpbmRvdy5wYWdlWU9mZnNldCxhPWUrd2luZG93LmlubmVySGVpZ2h0O0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodCxmdW5jdGlvbih0KXt0X2FuaW1hdGVfX2Fzc2lnbkNoYWluRGVsYXkodCxhLGUpLHRfYW5pbWF0ZV9fY2hlY2tTZWN0aW9uQnV0dG9uQW5pbWF0aW9uX19vdXRPZlR1cm4odCl9KX1mdW5jdGlvbiB0X2FuaW1hdGVfX2Fzc2lnblNlY3Rpb25EZWxheSh0KXt2YXIgZT0wLGE9dC5xdWVyeVNlbGVjdG9yQWxsKCIudC1zZWN0aW9uX190aXRsZS50LWFuaW1hdGUiKSx0PXQucXVlcnlTZWxlY3RvckFsbCgiLnQtc2VjdGlvbl9fZGVzY3IudC1hbmltYXRlIik7cmV0dXJuIGEubGVuZ3RoJiYoZT0uMTYpLHQubGVuZ3RoJiYoQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0LGZ1bmN0aW9uKHQpe3Quc3R5bGUudHJhbnNpdGlvbkRlbGF5PWUrInMifSksZSs9LjE2KSxlfWZ1bmN0aW9uIHRfYW5pbWF0ZV9fYXNzaWduR3JvdXBEZWxheSh0LGUpe3ZhciBhLG4saSxyLG8scz0wO3QucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtYW5pbWF0ZS1vcmRlcl0iKS5sZW5ndGg/dF9hbmltYXRlX19hc3NpZ25PcmRlcmVkRWxlbXNEZWxheSh0LGUpOihlPXQucXVlcnlTZWxlY3RvckFsbCgiLnQtaW1nLnQtYW5pbWF0ZSIpLGE9dC5xdWVyeVNlbGVjdG9yQWxsKCIudC11cHRpdGxlLnQtYW5pbWF0ZSIpLG49dC5xdWVyeVNlbGVjdG9yQWxsKCIudC10aXRsZS50LWFuaW1hdGUiKSxuPUFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChuLGZ1bmN0aW9uKHQpe3JldHVybiF0LmNsYXNzTGlzdC5jb250YWlucygidC1zZWN0aW9uX190aXRsZSIpfSksaT10LnF1ZXJ5U2VsZWN0b3JBbGwoIi50LWRlc2NyLnQtYW5pbWF0ZSIpLGk9QXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKGksZnVuY3Rpb24odCl7cmV0dXJuIXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LXNlY3Rpb25fX2Rlc2NyIil9KSxyPXQucXVlcnlTZWxlY3RvckFsbCgiLnQtYnRuLnQtYW5pbWF0ZSwgLnQtYnRud3JhcHBlci50LWFuaW1hdGUiKSxyPUFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChyLGZ1bmN0aW9uKHQpe3JldHVybiF0LmNsb3Nlc3QoIi50LXNlY3Rpb25fX2JvdHRvbXdyYXBwZXIiKX0pLG89dC5xdWVyeVNlbGVjdG9yQWxsKCIudC10aW1lci50LWFuaW1hdGUiKSx0PXQucXVlcnlTZWxlY3RvckFsbCgiZm9ybS50LWFuaW1hdGUiKSxlLmxlbmd0aCYmKHM9LjUpLG4ubGVuZ3RoJiZBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG4sZnVuY3Rpb24odCl7dC5zdHlsZS50cmFuc2l0aW9uRGVsYXk9cysicyJ9KSxuLmxlbmd0aCYmKHMrPS4zKSxpLmxlbmd0aCYmQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChpLGZ1bmN0aW9uKHQpe3Quc3R5bGUudHJhbnNpdGlvbkRlbGF5PXMrInMifSksaS5sZW5ndGgmJihzKz0uMyksYS5sZW5ndGgmJkFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoYSxmdW5jdGlvbih0KXt0LnN0eWxlLnRyYW5zaXRpb25EZWxheT1zKyJzIn0pLGEubGVuZ3RoJiYocys9LjMpLChhLmxlbmd0aHx8bi5sZW5ndGh8fGkubGVuZ3RoKSYmKHMrPS4yKSxvLmxlbmd0aCYmQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChvLGZ1bmN0aW9uKHQpe3Quc3R5bGUudHJhbnNpdGlvbkRlbGF5PXMrInMifSksby5sZW5ndGgmJihzKz0uNSksci5sZW5ndGgmJihyWzBdLnN0eWxlLnRyYW5zaXRpb25EZWxheT1zKyJzIiksMj09PXIubGVuZ3RoJiYocys9LjQpLDI9PT1yLmxlbmd0aCYmKHJbMV0uc3R5bGUudHJhbnNpdGlvbkRlbGF5PXMrInMiKSwwIT09dC5sZW5ndGgmJkFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodCxmdW5jdGlvbih0KXt0LnN0eWxlLnRyYW5zaXRpb25EZWxheT1zKyJzIn0pKX1mdW5jdGlvbiB0X2FuaW1hdGVfX2Fzc2lnbk9yZGVyZWRFbGVtc0RlbGF5KHQsZSl7dmFyIGE9MCxlPShlJiYoYT1lKSx0LnF1ZXJ5U2VsZWN0b3JBbGwoJy50LWFuaW1hdGVbZGF0YS1hbmltYXRlLW9yZGVyPSIxIl0nKSksbj10LnF1ZXJ5U2VsZWN0b3JBbGwoJy50LWFuaW1hdGVbZGF0YS1hbmltYXRlLW9yZGVyPSIyIl0nKSxpPXQucXVlcnlTZWxlY3RvckFsbCgnLnQtYW5pbWF0ZVtkYXRhLWFuaW1hdGUtb3JkZXI9IjMiXScpLHI9dC5xdWVyeVNlbGVjdG9yQWxsKCcudC1hbmltYXRlW2RhdGEtYW5pbWF0ZS1vcmRlcj0iNCJdJyksbz10LnF1ZXJ5U2VsZWN0b3JBbGwoJy50LWFuaW1hdGVbZGF0YS1hbmltYXRlLW9yZGVyPSI1Il0nKSxzPXQucXVlcnlTZWxlY3RvckFsbCgnLnQtYW5pbWF0ZVtkYXRhLWFuaW1hdGUtb3JkZXI9IjYiXScpLGw9dC5xdWVyeVNlbGVjdG9yQWxsKCcudC1hbmltYXRlW2RhdGEtYW5pbWF0ZS1vcmRlcj0iNyJdJyksbT10LnF1ZXJ5U2VsZWN0b3JBbGwoJy50LWFuaW1hdGVbZGF0YS1hbmltYXRlLW9yZGVyPSI4Il0nKSx0PXQucXVlcnlTZWxlY3RvckFsbCgnLnQtYW5pbWF0ZVtkYXRhLWFuaW1hdGUtb3JkZXI9IjkiXScpO2UubGVuZ3RoJiZBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGUsZnVuY3Rpb24odCl7dC5zdHlsZS50cmFuc2l0aW9uRGVsYXk9YSsicyJ9KSxlLmxlbmd0aCYmbi5sZW5ndGgmJihhKz0rdF9hbmltYXRlX19nZXRBdHRyQnlSZXNCYXNlKG5bMF0sImRlbGF5IiksQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChuLGZ1bmN0aW9uKHQpe3Quc3R5bGUudHJhbnNpdGlvbkRlbGF5PWErInMifSkpLChlLmxlbmd0aHx8bi5sZW5ndGgpJiZpLmxlbmd0aCYmKGErPSt0X2FuaW1hdGVfX2dldEF0dHJCeVJlc0Jhc2UoaVswXSwiZGVsYXkiKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGksZnVuY3Rpb24odCl7dC5zdHlsZS50cmFuc2l0aW9uRGVsYXk9YSsicyJ9KSksKGUubGVuZ3RofHxuLmxlbmd0aHx8aS5sZW5ndGgpJiZyLmxlbmd0aCYmKGErPSt0X2FuaW1hdGVfX2dldEF0dHJCeVJlc0Jhc2UoclswXSwiZGVsYXkiKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHIsZnVuY3Rpb24odCl7dC5zdHlsZS50cmFuc2l0aW9uRGVsYXk9YSsicyJ9KSksKGUubGVuZ3RofHxuLmxlbmd0aHx8aS5sZW5ndGh8fHIubGVuZ3RoKSYmby5sZW5ndGgmJihhKz0rdF9hbmltYXRlX19nZXRBdHRyQnlSZXNCYXNlKG9bMF0sImRlbGF5IiksQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChvLGZ1bmN0aW9uKHQpe3Quc3R5bGUudHJhbnNpdGlvbkRlbGF5PWErInMifSkpLChlLmxlbmd0aHx8bi5sZW5ndGh8fGkubGVuZ3RofHxyLmxlbmd0aHx8by5sZW5ndGgpJiZzLmxlbmd0aCYmKGErPSt0X2FuaW1hdGVfX2dldEF0dHJCeVJlc0Jhc2Uoc1swXSwiZGVsYXkiKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHMsZnVuY3Rpb24odCl7dC5zdHlsZS50cmFuc2l0aW9uRGVsYXk9YSsicyJ9KSksKGUubGVuZ3RofHxuLmxlbmd0aHx8aS5sZW5ndGh8fHIubGVuZ3RofHxvLmxlbmd0aHx8cy5sZW5ndGgpJiZsLmxlbmd0aCYmKGErPSt0X2FuaW1hdGVfX2dldEF0dHJCeVJlc0Jhc2UobFswXSwiZGVsYXkiKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGwsZnVuY3Rpb24odCl7dC5zdHlsZS50cmFuc2l0aW9uRGVsYXk9YSsicyJ9KSksKGUubGVuZ3RofHxuLmxlbmd0aHx8aS5sZW5ndGh8fHIubGVuZ3RofHxvLmxlbmd0aHx8cy5sZW5ndGh8fGwubGVuZ3RoKSYmbS5sZW5ndGgmJihhKz0rdF9hbmltYXRlX19nZXRBdHRyQnlSZXNCYXNlKG1bMF0sImRlbGF5IiksQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChtLGZ1bmN0aW9uKHQpe3Quc3R5bGUudHJhbnNpdGlvbkRlbGF5PWErInMifSkpLChlLmxlbmd0aHx8bi5sZW5ndGh8fGkubGVuZ3RofHxyLmxlbmd0aHx8by5sZW5ndGh8fHMubGVuZ3RofHxsLmxlbmd0aHx8bS5sZW5ndGgpJiZ0Lmxlbmd0aCYmKGErPSt0X2FuaW1hdGVfX2dldEF0dHJCeVJlc0Jhc2UodFswXSwiZGVsYXkiKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHQsZnVuY3Rpb24odCl7dC5zdHlsZS50cmFuc2l0aW9uRGVsYXk9YSsicyJ9KSl9ZnVuY3Rpb24gdF9hbmltYXRlX19hc3NpZ25DaGFpbkRlbGF5KGEsbixpKXt2YXIgcixvLHMsbD1hLnF1ZXJ5U2VsZWN0b3JBbGwoIi50LWFuaW1hdGVbZGF0YS1hbmltYXRlLWNoYWluPXllc10iKSxtPTA7bC5sZW5ndGgmJihyPWxbMF0sbz1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCt3aW5kb3cucGFnZVlPZmZzZXQsci5jbGFzc0xpc3QuYWRkKCJ0LWFuaW1hdGVfX2NoYWluX2ZpcnN0LWluLXJvdyIpLHM9dF9hbmltYXRlX19nZXRDdXJCbG9ja1NlY3Rpb25IZWFkRGVsYXkoYSksQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChsLGZ1bmN0aW9uKGUpe3ZhciB0PWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wK3dpbmRvdy5wYWdlWU9mZnNldDtpZih0PGkpcmV0dXJuIHRfYW5pbWF0ZV9fcmVtb3ZlQW5pbWF0aW9uQ2xhc3MoZSwiIiksITA7dDxuPyh0IT09byYmKGUuY2xhc3NMaXN0LmFkZCgidC1hbmltYXRlX19jaGFpbl9maXJzdC1pbi1yb3ciKSxvPXQpLHQ9LjE2Km0rcyxlLnN0eWxlLnRyYW5zaXRpb25EZWxheT10KyJzIix0X2FuaW1hdGVfX3NldFN0YXJ0QW5pbWF0aW9uQ2xhc3MoZSwhMSksZS5zZXRBdHRyaWJ1dGUoImRhdGEtYW5pbWF0ZS1zdGFydC10aW1lIixEYXRlLm5vdygpKzFlMyp0KSxyPT09bFtsLmxlbmd0aC0xXSYmdF9hbmltYXRlX19jaGVja1NlY3Rpb25CdXR0b25BbmltYXRpb24oYSx0KSxtKyssWyJ0cmFuc2l0aW9uZW5kIiwid2Via2l0VHJhbnNpdGlvbkVuZCIsIm9UcmFuc2l0aW9uRW5kIiwib3RyYW5zaXRpb25lbmQiLCJNU1RyYW5zaXRpb25FbmQiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2UuYWRkRXZlbnRMaXN0ZW5lcih0LGZ1bmN0aW9uKCl7dF9hbmltYXRlX19hZGRFdmVudE9uQW5pbWF0ZUNoYWluKGUpfSksZS5yZW1vdmVFdmVudExpc3RlbmVyKHQsZnVuY3Rpb24oKXt0X2FuaW1hdGVfX2FkZEV2ZW50T25BbmltYXRlQ2hhaW4oZSl9KX0pKTplLmNsYXNzTGlzdC5hZGQoInQtYW5pbWF0ZV93YWl0Iil9KSl9ZnVuY3Rpb24gdF9hbmltYXRlX19nZXRBdHRyQnlSZXNCYXNlKHQsZSl7dmFyIGEsbj10LmNsb3Nlc3QoIi50Mzk2X19hcnRib2FyZCIpO2lmKCFuKXJldHVybiB0LmdldEF0dHJpYnV0ZSgiZGF0YS1hbmltYXRlLSIrZSk7dmFyIGkscixuPSJhYiIrbi5nZXRBdHRyaWJ1dGUoImRhdGEtYXJ0Ym9hcmQtcmVjaWQiKSxvPXZvaWQgMCE9PXdpbmRvdy50bltuXT8oaT13aW5kb3cudG5bbl0uY3VyUmVzb2x1dGlvbixyPXdpbmRvdy50bltuXS5jdXJSZXNvbHV0aW9uX21heCx3aW5kb3cudG5bbl0uc2NyZWVucy5zbGljZSgpKTooaT13aW5kb3cudG4uY3VyUmVzb2x1dGlvbixbMzIwLDQ4MCw2NDAsOTYwLHI9MTIwMF0pLG49dC5jbG9zZXN0KCIudDM5Nl9fZWxlbSwgLnQzOTZfX2dyb3VwIiksbj1uJiZuLmdldEF0dHJpYnV0ZSgiZGF0YS1hbmltYXRlLW1vYmlsZSIpO2lmKGk9PT1yKWE9dC5nZXRBdHRyaWJ1dGUoImRhdGEtYW5pbWF0ZS0iK2UpO2Vsc2V7aWYoInkiIT09biYmaTwxMjAwKXJldHVybiB0LnN0eWxlLnRyYW5zaXRpb249Im5vbmUiLG51bGw7YT10LmdldEF0dHJpYnV0ZSgiZGF0YS1hbmltYXRlLSIrZSsiLXJlcy0iK2kpfWlmKCFhJiYiIiE9PWEpZm9yKHZhciBzPTA7czxvLmxlbmd0aDtzKyspe3ZhciBsPW9bc107aWYoIShsPD1pKSYmKGE9bD09PXI/dC5nZXRBdHRyaWJ1dGUoImRhdGEtYW5pbWF0ZS0iK2UpOnQuZ2V0QXR0cmlidXRlKCJkYXRhLWFuaW1hdGUtIitlKyItcmVzLSIrbCkpKWJyZWFrfXJldHVybiBhfWZ1bmN0aW9uIHRfYW5pbWF0ZV9faGFzV2FpdEFuaW1hdGlvbih0KXtyZXR1cm4gdC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LWFuaW1hdGVfd2FpdCIpfHx0LnF1ZXJ5U2VsZWN0b3IoIi50LWFuaW1hdGVfd2FpdCIpfSl9ZnVuY3Rpb24gdF9hbmltYXRlX19hZGRFdmVudE9uQW5pbWF0ZUNoYWluKHQpe3QuY2xhc3NMaXN0LmFkZCgidC1hbmltYXRlX19jaGFpbl9zaG93ZWQiKX1mdW5jdGlvbiB0X2FuaW1hdGVfX3NldEN1c3RvbUFuaW1TZXR0aW5ncyh0LGUsYSl7dmFyIG49dF9hbmltYXRlX19nZXRBdHRyQnlSZXNCYXNlKHQsInN0eWxlIiksaT10X2FuaW1hdGVfX2dldEF0dHJCeVJlc0Jhc2UodCwiZGlzdGFuY2UiKTtpZihpJiYiIiE9PWkpe3N3aXRjaChpPWkucmVwbGFjZSgicHgiLCIiKSx0LnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbj0iMHMiLHQuc3R5bGUudHJhbnNpdGlvbkRlbGF5PSIwcyIsbil7Y2FzZSJmYWRlaW51cCI6dC5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZTNkKDAsIitpKyJweCwwKSI7YnJlYWs7Y2FzZSJmYWRlaW5kb3duIjp0LnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlM2QoMCwtIitpKyJweCwwKSI7YnJlYWs7Y2FzZSJmYWRlaW5sZWZ0Ijp0LnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlM2QoIitpKyJweCwwLDApIjticmVhaztjYXNlImZhZGVpbnJpZ2h0Ijp0LnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlM2QoLSIraSsicHgsMCwwKSJ9dF9hbmltYXRlX19mb3JjZUVsZW1JblZpZXdQb3J0UmVwYWludCh0LGUsYSksdC5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb249IiIsdC5zdHlsZS50cmFuc2l0aW9uRGVsYXk9IiJ9bj10X2FuaW1hdGVfX2dldEF0dHJCeVJlc0Jhc2UodCwic2NhbGUiKSxuJiYodC5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb249IjBzIix0LnN0eWxlLnRyYW5zaXRpb25EZWxheT0iMHMiLHQuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgiK24rIikiLHRfYW5pbWF0ZV9fZm9yY2VFbGVtSW5WaWV3UG9ydFJlcGFpbnQodCxlLGEpLHQuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uPSIiLHQuc3R5bGUudHJhbnNpdGlvbkRlbGF5PSIiKSxuPXRfYW5pbWF0ZV9fZ2V0QXR0ckJ5UmVzQmFzZSh0LCJkZWxheSIpLG4mJih0LnN0eWxlLnRyYW5zaXRpb25EZWxheT1uKyJzIiksZT10X2FuaW1hdGVfX2dldEF0dHJCeVJlc0Jhc2UodCwiZHVyYXRpb24iKTtlJiYodC5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb249ZSsicyIpfWZ1bmN0aW9uIHRfYW5pbWF0ZV9fcmVtb3ZlSW5saW5lQW5pbVN0eWxlcygpe3ZhciB0O3dpbmRvdy5pbm5lcldpZHRoPDk4MCYmKHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnQzOTZfX2VsZW0udC1hbmltYXRlOm5vdCgudC1hbmltYXRlX3dhaXQpIiksQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0LGZ1bmN0aW9uKHQpe3Quc3R5bGUudHJhbnNmb3JtPSIiLHQuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uPSIiLHQuc3R5bGUudHJhbnNpdGlvbkRlbGF5PSIifSkpfWZ1bmN0aW9uIHRfYW5pbWF0ZV9fZm9yY2VFbGVtSW5WaWV3UG9ydFJlcGFpbnQodCxlLGEpe3QmJmU8YSs1MDAmJnQub2Zmc2V0SGVpZ2h0fWZ1bmN0aW9uIHRfYW5pbWF0ZV9fZGV0ZWN0RWxlbVRyaWdnZXJPZmZzZXQodCxlKXt2YXIgdD10X2FuaW1hdGVfX2dldEF0dHJCeVJlc0Jhc2UodCwidHJpZ2dlci1vZmZzZXQiKSxhPWU7cmV0dXJuIGE9dD9lLSsodD10LnJlcGxhY2UoInB4IiwiIikpOmF9ZnVuY3Rpb24gdF9hbmltYXRlX19zYXZlU2VjdGlvbkhlYWRlclN0YXJ0VGltZSh0KXt2YXIgZT10LnF1ZXJ5U2VsZWN0b3JBbGwoIi50LXNlY3Rpb25fX3RpdGxlLnQtYW5pbWF0ZSIpLHQ9dC5xdWVyeVNlbGVjdG9yQWxsKCIudC1zZWN0aW9uX19kZXNjci50LWFuaW1hdGUiKTtlLmxlbmd0aCYmQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLGZ1bmN0aW9uKHQpe3Quc2V0QXR0cmlidXRlKCJkYXRhLWFuaW1hdGUtc3RhcnQtdGltZSIsRGF0ZS5ub3coKSl9KSx0Lmxlbmd0aCYmQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0LGZ1bmN0aW9uKHQpe3Quc2V0QXR0cmlidXRlKCJkYXRhLWFuaW1hdGUtc3RhcnQtdGltZSIsRGF0ZS5ub3coKSsxNjApfSl9ZnVuY3Rpb24gdF9hbmltYXRlX19nZXRDdXJCbG9ja1NlY3Rpb25IZWFkRGVsYXkodCl7dmFyIGU9MDtyZXR1cm4gdC5xdWVyeVNlbGVjdG9yQWxsKCIudC1zZWN0aW9uX190aXRsZS50LWFuaW1hdGUiKS5sZW5ndGgmJihlKz0uMTYpLHQucXVlcnlTZWxlY3RvckFsbCgiLnQtc2VjdGlvbl9fZGVzY3IudC1hbmltYXRlIikubGVuZ3RoJiYoZSs9LjE2KSxlfWZ1bmN0aW9uIHRfYW5pbWF0ZV9fbWFrZVNlY3Rpb25CdXR0b25XYWl0KHQpe3ZhciBlPXQucXVlcnlTZWxlY3RvckFsbCgiLnQtYW5pbWF0ZVtkYXRhLWFuaW1hdGUtY2hhaW49eWVzXSIpLmxlbmd0aCx0PXQucXVlcnlTZWxlY3RvckFsbCgiLnQtc2VjdGlvbl9fYm90dG9td3JhcHBlciAudC1idG4udC1hbmltYXRlIik7ZS5sZW5ndGgmJnQubGVuZ3RoJiZBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHQsZnVuY3Rpb24odCl7dC5jbGFzc0xpc3QuYWRkKCJ0LWFuaW1hdGVfX2J0bi13YWl0LWNoYWluIil9KX1mdW5jdGlvbiB0X2FuaW1hdGVfX2NoZWNrU2VjdGlvbkJ1dHRvbkFuaW1hdGlvbih0LGUpe3Q9dC5xdWVyeVNlbGVjdG9yQWxsKCIudC1hbmltYXRlX19idG4td2FpdC1jaGFpbiIpO3QubGVuZ3RoJiZBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHQsZnVuY3Rpb24odCl7dC5zdHlsZS50cmFuc2l0aW9uRGVsYXk9ZSsuMTYrInMiLHRfYW5pbWF0ZV9fcmVtb3ZlTm9Ib3ZlckNsYXNzRnJvbUJ0bnModCksdC5jbGFzc0xpc3QucmVtb3ZlKCJ0LWFuaW1hdGVfX2J0bi13YWl0LWNoYWluIiksdF9hbmltYXRlX19zZXRTdGFydEFuaW1hdGlvbkNsYXNzKHQsITEpfSl9ZnVuY3Rpb24gdF9hbmltYXRlX19jaGVja1NlY3Rpb25CdXR0b25BbmltYXRpb25fX291dE9mVHVybih0KXt2YXIgZT10LnF1ZXJ5U2VsZWN0b3JBbGwoIi50LWFuaW1hdGVbZGF0YS1hbmltYXRlLWNoYWluPXllc10iKTtBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoZSxmdW5jdGlvbih0KXtyZXR1cm4hdC5jbGFzc0xpc3QuY29udGFpbnMoInQtYW5pbWF0ZV9zdGFydGVkIil9KS5sZW5ndGh8fHRfYW5pbWF0ZV9fY2hlY2tTZWN0aW9uQnV0dG9uQW5pbWF0aW9uKHQsLjE2KX1mdW5jdGlvbiB0X2FuaW1hdGVfX2FkZE5vSG92ZXJDbGFzc1RvQnRucygpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50LWJ0bi50LWFuaW1hdGUiKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHQsZnVuY3Rpb24odCl7dC5jbGFzc0xpc3QuYWRkKCJ0LWFuaW1hdGVfbm8taG92ZXIiKX0pfWZ1bmN0aW9uIHRfYW5pbWF0ZV9fcmVtb3ZlTm9Ib3ZlckNsYXNzRnJvbUJ0bnModCl7aWYoIXQpcmV0dXJuITE7dmFyIGU9dC5jbGFzc0xpc3QuY29udGFpbnMoInQtYnRuIik/dDpudWxsO2UmJihlLm9udHJhbnNpdGlvbmVuZD1mdW5jdGlvbih0KXsib3BhY2l0eSIhPT10LnByb3BlcnR5TmFtZSYmInRyYW5zZm9ybSIhPT10LnByb3BlcnR5TmFtZXx8KGUuY2xhc3NMaXN0LnJlbW92ZSgidC1hbmltYXRlX25vLWhvdmVyIiksZS5zdHlsZS50cmFuc2l0aW9uRGVsYXk9IiIsZS5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb249IiIsdGhpcy5vbnRyYW5zaXRpb25lbmQ9bnVsbCl9KX1mdW5jdGlvbiB0X2FuaW1hdGVfX2dldEdyb3Vwc09mZnNldHModCl7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXQucXVlcnlTZWxlY3RvcigiLnQtYW5pbWF0ZSIpO2UmJih0LmN1clRvcE9mZnNldD1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCt3aW5kb3cucGFnZVlPZmZzZXQsZT10X2FuaW1hdGlvbl9fZ2V0Wm9vbSh0KSx3aW5kb3cuaXNPbmx5U2NhbGFibGV8fCh0LmN1clRvcE9mZnNldCo9ZSkpfSl9ZnVuY3Rpb24gdF9hbmltYXRpb25fX2dldFpvb20odCl7aWYodm9pZCAwIT09dC5zY2FsZUZhY3RvcilyZXR1cm4gdC5zY2FsZUZhY3Rvcjt0PXQuY2xvc2VzdCgiLnQzOTZfX2FydGJvYXJkIik7aWYoIXQpcmV0dXJuIDE7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyYyo9InRpbGRhLWJsb2Nrcy0yLjciXScpO3JldHVybiB0LmNsYXNzTGlzdC5jb250YWlucygidDM5Nl9fYXJ0Ym9hcmRfc2NhbGUiKXx8IWUmJiJ1bmRlZmluZWQiIT10eXBlb2YgdDM5Nl9hYl9fZ2V0RmllbGRWYWx1ZSYmIndpbmRvdyI9PT10Mzk2X2FiX19nZXRGaWVsZFZhbHVlKHQsInVwc2NhbGUiKT93aW5kb3cudG5fc2NhbGVfZmFjdG9yOjF9ZnVuY3Rpb24gdF9hbmltYXRlX19nZXRDaGFpbk9mZnNldHModCl7dC5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciB0PWEucXVlcnlTZWxlY3RvckFsbCgiLnQtYW5pbWF0ZV93YWl0W2RhdGEtYW5pbWF0ZS1jaGFpbj15ZXNdIik7YS5pdGVtc09mZnNldHM9W10sQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0LGZ1bmN0aW9uKHQsZSl7YS5pdGVtc09mZnNldHNbZV09dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3Ard2luZG93LnBhZ2VZT2Zmc2V0fSl9KX1mdW5jdGlvbiB0X2FuaW1hdGVfX2dldEVsZW1zT2Zmc2V0cyh0KXt0LmZvckVhY2goZnVuY3Rpb24odCl7dC5jdXJUb3BPZmZzZXQ9d2luZG93LnBhZ2VZT2Zmc2V0K3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO3ZhciBlPXRfYW5pbWF0aW9uX19nZXRab29tKHQpO3dpbmRvdy5pc09ubHlTY2FsYWJsZXx8KHQuY3VyVG9wT2Zmc2V0Kj1lKX0pfWZ1bmN0aW9uIHRfYW5pbWF0ZV9fcmVtb3ZlQW5pbUZyb21IaWRkZW5TbGlkZXModCl7dmFyIGU7dC5xdWVyeVNlbGVjdG9yQWxsKCIudC1zbGlkZXMiKS5sZW5ndGgmJih0PXQucXVlcnlTZWxlY3RvckFsbCgiLnQtc2xpZGVzX19pdGVtIiksdD1BcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwodCxmdW5jdGlvbih0KXtyZXR1cm4hdC5jbGFzc0xpc3QuY29udGFpbnMoInQtc2xpZGVzX19pdGVtX2FjdGl2ZSIpfSksZT1bXSx0LmZvckVhY2goZnVuY3Rpb24odCl7dD10LnF1ZXJ5U2VsZWN0b3IoIi50LWFuaW1hdGUiKTt0JiZlLnB1c2godCl9KSxlLmZvckVhY2goZnVuY3Rpb24odCl7dF9hbmltYXRlX19yZW1vdmVBbmltYXRpb25DbGFzcyh0LCJuby1ob3ZlciIpfSkpfWZ1bmN0aW9uIHRfYW5pbWF0ZV9fd3JhcFRleHRXaXRoT3BhY2l0eSgpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50LXRpdGxlLnQtYW5pbWF0ZSwgLnQtZGVzY3IudC1hbmltYXRlLCAudC11cHRpdGxlLnQtYW5pbWF0ZSwgLnQtdGV4dC50LWFuaW1hdGUiKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHQsZnVuY3Rpb24odCl7dmFyIGUsYT10LmdldEF0dHJpYnV0ZSgic3R5bGUiKTthJiYtMSE9PWEuaW5kZXhPZigib3BhY2l0eSIpJiYoYT10LnN0eWxlLm9wYWNpdHkpJiYwPGEmJih0LnN0eWxlLm9wYWNpdHk9IiIsKGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLnN0eWxlLm9wYWNpdHk9YSxhPXQuY2hpbGROb2RlcyxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGEsZnVuY3Rpb24odCl7dD10LmNsb25lTm9kZSghMCk7ZS5hcHBlbmRDaGlsZCh0KX0pLHQuaW5uZXJIVE1MPSIiLHQuYXBwZW5kQ2hpbGQoZSkpfSl9ZnVuY3Rpb24gdF9hbmltYXRlX19jaGVja0lFKCl7dmFyIHQ9d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQsZT10LmluZGV4T2YoIk1TSUUiKSxhPSExO3JldHVybiAwPGUmJig4IT09KHQ9cGFyc2VJbnQodC5zdWJzdHJpbmcoZSs1LHQuaW5kZXhPZigiLiIsZSkpKSkmJjkhPT10fHwoYT0hMCkpLGF9ImxvYWRpbmciIT09ZG9jdW1lbnQucmVhZHlTdGF0ZT90X2FuaW1hdGVfX2luaXQoKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIix0X2FuaW1hdGVfX2luaXQpOwpmdW5jdGlvbiB0Mzk2X2luaXQodCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlYyIrdCksaT1lP2UucXVlcnlTZWxlY3RvcigiLnQzOTYiKTpudWxsLG89ZT9lLnF1ZXJ5U2VsZWN0b3IoIi50Mzk2X19hcnRib2FyZCIpOm51bGw7aWYobyl7dDM5Nl9pbml0VE5vYmoodCxvKSx0Mzk2X19pbml0T25seVNjYWxhYmxlKCk7dmFyIG49IiIscj10Mzk2X2RldGVjdFJlc29sdXRpb24odCksYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpLGw9YSYmImVkaXQiPT09YS5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtbW9kZSIpO3ZvaWQgMD09PXdpbmRvdy50bi5pc0VkaXRNb2RlJiYod2luZG93LnRuLmlzRWRpdE1vZGU9bCksdDM5Nl9zd2l0Y2hSZXNvbHV0aW9uKHQscik7dmFyIGQ9IndpbmRvdyI9PT10Mzk2X2FiX19nZXRGaWVsZFZhbHVlKG8sInVwc2NhbGUiKTtpZih0Mzk2X19zZXRHbG9iYWxTY2FsZVZhcmlhYmxlcyh0LHIsZCksdDM5Nl91cGRhdGVUTm9iaih0KSx0Mzk2X2FydGJvYXJkX2J1aWxkKG4sdCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLChmdW5jdGlvbigpe3QzOTZfYWxsZWxlbXNfX3JlbmRlclZpZXcobyksdDM5Nl9hbGxncm91cHNfX3JlbmRlclZpZXcobyk7dmFyIHQ9bz93aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShvKS5nZXRQcm9wZXJ0eVZhbHVlKCJvdmVyZmxvdyIpOiIiOyJmdW5jdGlvbiI9PXR5cGVvZiB0X2xhenlsb2FkX3VwZGF0ZSYmImF1dG8iPT09dCYmbyYmby5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRfdGhyb3R0bGUoKGZ1bmN0aW9uKCl7dmFyIHQ9YT9hLmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1sYXp5Iik6bnVsbDsieSIhPT13aW5kb3cubGF6eSYmInllcyIhPT10fHx0X29uRnVuY0xvYWQoInRfbGF6eWxvYWRfdXBkYXRlIiwoZnVuY3Rpb24oKXt0X2xhenlsb2FkX3VwZGF0ZSgpfSkpfSksNTAwKSksIiIhPT13aW5kb3cubG9jYXRpb24uaGFzaCYmInZpc2libGUiPT09dCYmKG8mJihvLnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe28mJihvLnN0eWxlLm92ZXJmbG93PSJ2aXNpYmxlIil9KSwxKSl9KSksd2luZG93LnRpbGRhTWVtYmVycyYmIk11dGF0aW9uT2JzZXJ2ZXIiaW4gd2luZG93KXt2YXIgXz1uZXcgTXV0YXRpb25PYnNlcnZlcigoZnVuY3Rpb24oZSl7ZS5mb3JFYWNoKChmdW5jdGlvbihlKXsiYXR0cmlidXRlcyI9PT1lLnR5cGUmJiJjbGFzcyI9PT1lLmF0dHJpYnV0ZU5hbWUmJmUudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygidGxrLWNvdXJzZXNfcGFnZSIpJiYodDM5Nl9kb1Jlc2l6ZSh0LCEwKSxfLmRpc2Nvbm5lY3QoKSl9KSl9KSk7Xy5vYnNlcnZlKGRvY3VtZW50LmJvZHkse2F0dHJpYnV0ZXM6ITB9KX1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudDgzMCIpJiZ0X29uUmVhZHkoKGZ1bmN0aW9uKCl7dmFyIGUsaTtbInQ4MzBfX2FsbHJlY29yZHNfcGFkZCIsInQ4MzBfX2FsbHJlY29yZHNfcGFkZC1zbWFsbCJdLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiBhLmNsYXNzTGlzdC5jb250YWlucyh0KX0pKT90Mzk2X2RvUmVzaXplKHQsITApOmEuYWRkRXZlbnRMaXN0ZW5lcigiYWxsUmVjUGFkZGluZ0luaXQiLChmdW5jdGlvbigpe3QzOTZfZG9SZXNpemUodCwhMCl9KSl9KSksZSYmaSYmbyYmInllcyI9PT1lLmdldEF0dHJpYnV0ZSgiZGF0YS1jb25uZWN0LXdpdGgtdGFiIikmJmkuYWRkRXZlbnRMaXN0ZW5lcigiZGlzcGxheUNoYW5nZWQiLChmdW5jdGlvbigpe3QzOTZfYWxsZWxlbXNfX3JlbmRlclZpZXcobyksdDM5Nl9hbGxncm91cHNfX3JlbmRlclZpZXcobyksdDM5Nl9kb1Jlc2l6ZSh0LCEwKX0pKTt2YXIgcz0iaHVnIj09PW8uZ2V0QXR0cmlidXRlKCJkYXRhLWFydGJvYXJkLWhlaWdodG1vZGUiKTtpZihzKXt0Mzk2X191cGRhdGVBdXRvSGVpZ2h0KG8pLHNldEludGVydmFsKChmdW5jdGlvbigpe3QzOTZfX3VwZGF0ZUF1dG9IZWlnaHQobyl9KSwzZTMpO3ZhciB1PW8uZ2V0RWxlbWVudHNCeVRhZ05hbWUoImltZyIpO0FycmF5LmZyb20odSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5vbmxvYWQ9ZnVuY3Rpb24oKXt0Mzk2X191cGRhdGVBdXRvSGVpZ2h0KG8pfX0pKTt2YXIgYz17c3VidHJlZTohMCxjaGFyYWN0ZXJEYXRhOiEwLGNoYXJhY3RlckRhdGFPbGRWYWx1ZTohMH0sdyxnO25ldyBNdXRhdGlvbk9ic2VydmVyKChmdW5jdGlvbiB0KCl7dDM5Nl9fdXBkYXRlQXV0b0hlaWdodChvKX0pKS5vYnNlcnZlKG8sYyl9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtlJiZlLmNsb3Nlc3QoIiNhbGxyZWNvcmRzdGFibGUiKSYmaSYmbyYmaS5hZGRFdmVudExpc3RlbmVyKCJkaXNwbGF5Q2hhbmdlZCIsKGZ1bmN0aW9uKCl7dDM5Nl9hbGxlbGVtc19fcmVuZGVyVmlldyhvKSx0Mzk2X2FsbGdyb3Vwc19fcmVuZGVyVmlldyhvKSx0Mzk2X2RvUmVzaXplKHQsITApfSkpfSksMWUzKTt2YXIgZj0hIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50NjM1X190ZXh0aG9sZGVyIik7ZSYmZiYmaSYmbyYmaS5hZGRFdmVudExpc3RlbmVyKCJhbmltYXRpb25Jbml0ZWQiLChmdW5jdGlvbigpe3QzOTZfYWxsZWxlbXNfX3JlbmRlclZpZXcobyksdDM5Nl9hbGxncm91cHNfX3JlbmRlclZpZXcobyksdDM5Nl9kb1Jlc2l6ZSh0LCEwKX0pKSwvXigoPyFjaHJvbWV8YW5kcm9pZCkuKSpzYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiZpJiZpLmNsYXNzTGlzdC5hZGQoInQzOTZfc2FmYXJpIiksZCYmIWwmJnRfb25GdW5jTG9hZCgidDM5Nl9zY2FsZUJsb2NrIiwoZnVuY3Rpb24oKXt0Mzk2X3NjYWxlQmxvY2sodCl9KSksbHx8InkiIT09dDM5Nl9hYl9fZ2V0RmllbGRWYWx1ZShvLCJmaXhlZC1uZWVkLWpzIil8fHRfb25GdW5jTG9hZCgidDM5Nl9fcHJvY2Vzc0ZpeGVkQXJ0Qm9hcmQiLChmdW5jdGlvbigpe3QzOTZfX3Byb2Nlc3NGaXhlZEFydEJvYXJkKG8pfSkpLHQzOTZfX3Byb2Nlc3NBYnNvbHV0ZUFydEJvYXJkKG8pLHQzOTZfX3Byb2Nlc3NUb3BTaGlmdChvLHQsITEpLHdpbmRvdy50Mzk2X19pc01vYmlsZXx8c3x8dDM5Nl9fcmVtb3ZlSW5saW5lSGVpZ2h0KFtvLG8ucXVlcnlTZWxlY3RvcigiLnQzOTZfX2NhcnJpZXIiKSxvLnF1ZXJ5U2VsZWN0b3IoIi50Mzk2X19maWx0ZXIiKV0pfX1mdW5jdGlvbiB0Mzk2X19yZW1vdmVJbmxpbmVIZWlnaHQodCl7dC5maWx0ZXIoQm9vbGVhbikuZm9yRWFjaCgoZnVuY3Rpb24odCl7dCYmKHQuc3R5bGUuaGVpZ2h0PSIiKX0pKX1mdW5jdGlvbiB0Mzk2X19nbG9iYWxJbml0KCl7dDM5Nl9faXNBbGxaZXJvQmxvY2tzUmVuZGVyZWQoKGZ1bmN0aW9uKCl7dDM5Nl9fYXBwbHlGaXhlc0ZvckFsbEVsZW1lbnRzKCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdDM5Nl9fb25SZXNpemUpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsdDM5Nl9fb25PcmllbnRhdGlvbkNoYW5nZSl9KSl9ZnVuY3Rpb24gdDM5Nl9fb25SZXNpemUoKXt0Mzk2X3dhaXRGb3JGaW5hbEV2ZW50KChmdW5jdGlvbigpe3ZhciB0PXQzOTZfX2dldEF4aXNYUGFkZGluZygpLGU9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIT09d2luZG93LnRuLndpbmRvd193aWR0aCxpPXQzOTZfX2dldEJsb2NrRWRpdG9yV2lkdGgoKTt3aW5kb3cudG4ud2luZG93X3dpZHRoPWl8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCx0JiYod2luZG93LnRuLndpbmRvd193aWR0aC09dCksd2luZG93LnRuLndpbmRvd19oZWlnaHQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCx0Mzk2X19nZXRaZXJvQmxvY2tzKCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGk9dC5hcnRib2FyZCxvPXQucmVjb3JkO2lmKGkuY2xhc3NMaXN0LmFkZCgidDM5Nl9yZXNpemVjaGFuZ2UiKSx3aW5kb3cudDM5Nl9faXNNb2JpbGV8fHdpbmRvdy50Mzk2X19pc1RvdWNoRGV2aWNlKXtpZihlKXtpZighbylyZXR1cm47aWYoIXQzOTZfaXNCbG9ja1Zpc2libGUobykpcmV0dXJuO3QzOTZfZG9SZXNpemUoby5pZC5yZXBsYWNlKCJyZWMiLCIiKSksaS5jbGFzc0xpc3QucmVtb3ZlKCJ0Mzk2X3Jlc2l6ZWNoYW5nZSIpfX1lbHNle2lmKCFvKXJldHVybjtpZighdDM5Nl9pc0Jsb2NrVmlzaWJsZShvKSlyZXR1cm47dDM5Nl9kb1Jlc2l6ZShvLmlkLnJlcGxhY2UoInJlYyIsIiIpKSxpLmNsYXNzTGlzdC5yZW1vdmUoInQzOTZfcmVzaXplY2hhbmdlIil9fSkpfSksNTAwLCJnbG9iYWxfcmVzaXplX3plcm9fdW5pcXVlX2lkIil9ZnVuY3Rpb24gdDM5Nl9fb25PcmllbnRhdGlvbkNoYW5nZSgpe3QzOTZfd2FpdEZvckZpbmFsRXZlbnQoKGZ1bmN0aW9uKCl7dmFyIHQ9dDM5Nl9fZ2V0QmxvY2tFZGl0b3JXaWR0aCgpO3dpbmRvdy50bi53aW5kb3dfd2lkdGg9dHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLHdpbmRvdy50bi53aW5kb3dfaGVpZ2h0PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQsdDM5Nl9fZ2V0WmVyb0Jsb2NrcygpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXQucmVjb3JkO2UmJnQzOTZfaXNCbG9ja1Zpc2libGUoZSkmJnQzOTZfZG9SZXNpemUoZS5pZC5yZXBsYWNlKCJyZWMiLCIiKSl9KSl9KSw2MDAsImdsb2JhbF9vcmllbnRhdGlvbmNoYW5nZV96ZXJvX3VuaXF1ZV9pZCIpfWZ1bmN0aW9uIHQzOTZfaXNPbmx5U2NhbGFibGVCcm93c2VyKCl7cmV0dXJuIHdpbmRvdy5pc09ubHlTY2FsYWJsZX1mdW5jdGlvbiB0Mzk2X19pbml0T25seVNjYWxhYmxlKCl7aWYodm9pZCAwPT09d2luZG93LmlzT25seVNjYWxhYmxlKXt2YXIgdD13aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvRmlyZWZveFwvKFswLTldKylcLi8pLGU9dD9wYXJzZUludCh0WzFdLDEwKToxMjYsaT13aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvQ2hyb21lXC8oWzAtOV0rKVwuLyksbz1pJiZwYXJzZUludChpWzFdLDEwKXx8MDt3aW5kb3cuaXNPbmx5U2NhbGFibGU9ZTwxMjYsd2luZG93LnNob3VsZFVzZVNjYWxlRmFjdG9yPSF3aW5kb3cuaXNPbmx5U2NhbGFibGUmJiF0JiZvPD0xMjd9fWZ1bmN0aW9uIHQzOTZfX3NldEdsb2JhbFNjYWxlVmFyaWFibGVzKHQsZSxpKXtpZighd2luZG93LnRuLndpbmRvd193aWR0aCl7dmFyIG89dDM5Nl9fZ2V0QmxvY2tFZGl0b3JXaWR0aCgpO3dpbmRvdy50bi53aW5kb3dfd2lkdGg9b3x8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRofXZhciBuPSJhYiIrdCxyPWk/cGFyc2VGbG9hdCgod2luZG93LnRuLndpbmRvd193aWR0aC9lKS50b0ZpeGVkKDMpKToxO3dpbmRvdy50bltuXS5zY2FsZUZhY3Rvcj1yLHdpbmRvdy50bl9zY2FsZV9mYWN0b3I9cjt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjIit0KTthJiYhd2luZG93LnRuLmlzRWRpdE1vZGUmJmEuc3R5bGUuc2V0UHJvcGVydHkoIi0tem9vbSIsci50b1N0cmluZygpKX1mdW5jdGlvbiB0Mzk2X19wcm9jZXNzVG9wU2hpZnQodCxlLGkpeyJmdW5jdGlvbiIhPXR5cGVvZiB3aW5kb3cudDM5Nl9fdXBkYXRlVG9wU2hpZnR8fCJ5IiE9PXQzOTZfYWJfX2dldEZpZWxkVmFsdWUodCwic2hpZnQtcHJvY2Vzc2VkIikmJiJ5IiE9PXQzOTZfYWJfX2dldEZpZWxkVmFsdWUodCwiZml4ZWQtc2hpZnQiKXx8dDM5Nl9fdXBkYXRlVG9wU2hpZnQoZSxpKX1mdW5jdGlvbiB0Mzk2X2RvUmVzaXplKHQsZSl7aWYoZSl7dmFyIGk9dDM5Nl9fZ2V0QXhpc1hQYWRkaW5nKCksbz10Mzk2X19nZXRCbG9ja0VkaXRvcldpZHRoKCk7d2luZG93LnRuLndpbmRvd193aWR0aD1vfHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsaSYmKHdpbmRvdy50bi53aW5kb3dfd2lkdGgtPWkpfXZhciBuPXQzOTZfaXNPbmx5U2NhbGFibGVCcm93c2VyKCkscj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjIit0KSxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbGxyZWNvcmRzIiksbD10Mzk2X2RldGVjdFJlc29sdXRpb24odCksZD1yP3IucXVlcnlTZWxlY3RvcigiLnQzOTZfX3NjYWxlLXN0eWxlIik6bnVsbDtpZih0Mzk2X19zZXRTY2FsZUZhY3RvckZvckVsZW1lbnRzKHQpLHQzOTZfcmVtb3ZlRWxlbWVudEZyb21ET00oZCksbil7dmFyIF89cj9yLnF1ZXJ5U2VsZWN0b3JBbGwoIi50bi1tb2xlY3VsZSwgLnRuLWF0b20iKTpbXTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKF8sKGZ1bmN0aW9uKHQpe2lmKCF0LmNsYXNzTGlzdC5jb250YWlucygidG4tYXRvbSIpfHwhdC5jbG9zZXN0KCIudG4tbW9sZWN1bGUiKSl7dmFyIGU9dC5jbG9zZXN0KCIudG4tYXRvbV9fc2NhbGUtd3JhcHBlciIpLGk9ZT9lLnBhcmVudE5vZGU6bnVsbDtpJiZpLnJlbW92ZUNoaWxkKGUpLGkmJmkuYXBwZW5kQ2hpbGQodCl9fSkpfWVsc2V7dmFyIHM9cj9yLnF1ZXJ5U2VsZWN0b3JBbGwoIi50Mzk2X19lbGVtLCAudDM5Nl9fZ3JvdXAiKTpbXTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHMsKGZ1bmN0aW9uKHQpe3Quc3R5bGUuem9vbT0iIjt2YXIgZT10LnF1ZXJ5U2VsZWN0b3IoIi50bi1hdG9tIik7ZSYmKGUuc3R5bGUudHJhbnNmb3JtT3JpZ2luPSIiLGUuc3R5bGUuZm9udFNpemU9IiIsZS5zdHlsZS53ZWJraXRUZXh0U2l6ZUFkanVzdD0iIil9KSl9dDM5Nl9zd2l0Y2hSZXNvbHV0aW9uKHQsbCk7dmFyIHU9cj9yLnF1ZXJ5U2VsZWN0b3IoIi50Mzk2X19hcnRib2FyZCIpOm51bGwsYz0id2luZG93Ij09PXQzOTZfYWJfX2dldEZpZWxkVmFsdWUodSwidXBzY2FsZSIpO3QzOTZfX3NldEdsb2JhbFNjYWxlVmFyaWFibGVzKHQsbCxjKSx0Mzk2X3VwZGF0ZVROb2JqKHQpLHQzOTZfYWJfX3JlbmRlclZpZXcodSk7dmFyIHc9YT9hLmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1tb2RlIik6IiI7YyYmImVkaXQiIT09dyYmdF9vbkZ1bmNMb2FkKCJ0Mzk2X3NjYWxlQmxvY2siLChmdW5jdGlvbigpe3QzOTZfc2NhbGVCbG9jayh0KX0pKSwiZWRpdCIhPT13JiYieSI9PT10Mzk2X2FiX19nZXRGaWVsZFZhbHVlKHUsImZpeGVkLW5lZWQtanMiKSYmdF9vbkZ1bmNMb2FkKCJ0Mzk2X19wcm9jZXNzRml4ZWRBcnRCb2FyZCIsKGZ1bmN0aW9uKCl7dDM5Nl9fcHJvY2Vzc0ZpeGVkQXJ0Qm9hcmQodSl9KSksdDM5Nl9fcHJvY2Vzc0Fic29sdXRlQXJ0Qm9hcmQodSksdDM5Nl9fcHJvY2Vzc1RvcFNoaWZ0KHUsdCwhMCksdDM5Nl9hbGxlbGVtc19fcmVuZGVyVmlldyh1KSx0Mzk2X2FsbGdyb3Vwc19fcmVuZGVyVmlldyh1KSx0Mzk2X19hcHBseUZpeGVzRm9yQWxsRWxlbWVudHMoKSx0Mzk2X191cGRhdGVBdXRvSGVpZ2h0KHUpLHUmJnUuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFydEJvYXJkUmVzaXplZCIpKTt2YXIgZz0iaHVnIj09PXUuZ2V0QXR0cmlidXRlKCJkYXRhLWFydGJvYXJkLWhlaWdodG1vZGUiKTt1JiYhZyYmKHdpbmRvdy50Mzk2X19pc01vYmlsZXx8dDM5Nl9fcmVtb3ZlSW5saW5lSGVpZ2h0KFt1LHUucXVlcnlTZWxlY3RvcigiLnQzOTZfX2NhcnJpZXIiKSx1LnF1ZXJ5U2VsZWN0b3IoIi50Mzk2X19maWx0ZXIiKV0pKX1mdW5jdGlvbiB0Mzk2X191cGRhdGVBdXRvSGVpZ2h0KHQpe3ZhciBlO2lmKCJodWciPT09dC5nZXRBdHRyaWJ1dGUoImRhdGEtYXJ0Ym9hcmQtaGVpZ2h0bW9kZSIpKXt2YXIgaT10Mzk2X19nZXRBdXRvSGVpZ2h0KHQpLG87aWYoaSE9PXQub2Zmc2V0SGVpZ2h0KXt2YXIgbixyPSJhYiIrdC5nZXRBdHRyaWJ1dGUoImRhdGEtYXJ0Ym9hcmQtcmVjaWQiKSxhPXdpbmRvdy50bltyXS5jdXJSZXNvbHV0aW9uLGw7YT09PXdpbmRvdy50bltyXS5jdXJSZXNvbHV0aW9uX21heD90LnNldEF0dHJpYnV0ZSgiZGF0YS1hcnRib2FyZC1oZWlnaHQiLGkpOnQuc2V0QXR0cmlidXRlKCJkYXRhLWFydGJvYXJkLWhlaWdodC1yZXMtIithLGkpLHQzOTZfYWJfX3JlbmRlclZpZXcodCl9fX1mdW5jdGlvbiB0Mzk2X19nZXRBdXRvSGVpZ2h0KHQpe3ZhciBlPTAsaTtpZih0LmNsYXNzTGlzdC5jb250YWlucygidDM5Nl9fYXJ0Ym9hcmQtZmxleCIpKXt2YXIgbz10LnN0eWxlLmhlaWdodDt0LnN0eWxlLmhlaWdodD0iYXV0byIsZT10Lm9mZnNldEhlaWdodCx0LnN0eWxlLmhlaWdodD1vfWVsc2UgdmFyIG49dC5xdWVyeVNlbGVjdG9yQWxsKCIudG4tZ3JvdXAsIC50bi1lbGVtIiksZT1BcnJheS5mcm9tKG4pLnJlZHVjZSgoZnVuY3Rpb24oZSxpKXt2YXIgbz10Mzk2X2NvcmVfX2dldEZpZWxkVmFsdWUoaSwiYXhpc3kiKSxuPXQzOTZfY29yZV9fZ2V0RmllbGRWYWx1ZShpLCJ0b3B1bml0cyIpLHI9dDM5Nl9jb3JlX19nZXRGaWVsZFZhbHVlKGksImhlaWdodHVuaXRzIik7aWYoIiUiPT09bnx8IiUiPT09cnx8ImJvdHRvbSI9PT1vfHwiY2VudGVyIj09PW8pcmV0dXJuIGU7dmFyIGE9aS5vZmZzZXRUb3AraS5vZmZzZXRIZWlnaHQsbCxkLF87IndpbmRvdyI9PT10Mzk2X2FiX19nZXRGaWVsZFZhbHVlKHQsInVwc2NhbGUiKSYmKGEqPXQzOTZfX2dldEN1cnJlbnRTY2FsZUZhY3Rvcih0LmdldEF0dHJpYnV0ZSgiZGF0YS1hcnRib2FyZC1yZWNpZCIpKSk7cmV0dXJuIGE+ZSYmKGU9YSksZX0pLC0xLzApO3JldHVybiBlPT09LTEvMD8wOmV9ZnVuY3Rpb24gdDM5Nl9fcHJvY2Vzc0Fic29sdXRlQXJ0Qm9hcmQodCl7aWYodCl7dmFyIGU9dDM5Nl9hYl9fZ2V0RmllbGRWYWx1ZSh0LCJwb3MiKTtpZigiZml4ZWQiIT09ZSl7dmFyIGk9InQzOTZfX2FydGJvYXJkLWZpeGVkLW5vLWJnIjtpZigiYWJzb2x1dGUiPT09ZSl7dmFyIG89Z2V0Q29tcHV0ZWRTdHlsZSh0KSxuPXQucXVlcnlTZWxlY3RvcigiLnQzOTZfX2ZpbHRlciIpLHI9IW58fCJub25lIj09PWdldENvbXB1dGVkU3R5bGUobikuYmFja2dyb3VuZEltYWdlLGEsbD0icmdiYSgwLCAwLCAwLCAwKSI9PT1vLmJhY2tncm91bmRDb2xvciYmIm5vbmUiPT09by5iYWNrZ3JvdW5kSW1hZ2UmJnI/ImFkZCI6InJlbW92ZSI7dC5jbGFzc0xpc3RbbF0oaSl9ZWxzZSB0LmNsYXNzTGlzdC5yZW1vdmUoaSl9fX1mdW5jdGlvbiB0Mzk2X2RldGVjdFJlc29sdXRpb24odCl7aWYodCl7dmFyIGU9ImFiIit0LGk9d2luZG93LmlubmVyV2lkdGgsbztpZih3aW5kb3cudDM5Nl9faXNNb2JpbGV8fHdpbmRvdy50Mzk2X19pc0lQYWR8fHdpbmRvdy50Mzk2X19pc1NhZmFyaSl7dmFyIG49dDM5Nl9fZ2V0QmxvY2tFZGl0b3JXaWR0aCgpO24/d2luZG93LnRuLndpbmRvd193aWR0aD1uOndpbmRvdy50bi53aW5kb3dfd2lkdGh8fCh3aW5kb3cudG4ud2luZG93X3dpZHRoPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCksaT13aW5kb3cudG4ud2luZG93X3dpZHRofXJldHVybiB3aW5kb3cudG5bZV0uc2NyZWVucy5mb3JFYWNoKChmdW5jdGlvbih0KXtpPj10JiYobz10KX0pKSx2b2lkIDA9PT1vJiYobz13aW5kb3cudG5bZV0uc2NyZWVuc1swXSksb319ZnVuY3Rpb24gdDM5Nl9pbml0VE5vYmoodCxlKXtlJiYodm9pZCAwPT09d2luZG93LnRuPyh3aW5kb3cudG49e30sd2luZG93LnRuLmFiX2ZpZWxkcz1bImhlaWdodCIsIndpZHRoIiwiYmdjb2xvciIsImJnaW1nIiwiYmdhdHRhY2htZW50IiwiYmdwb3NpdGlvbiIsImZpbHRlcm9wYWNpdHkiLCJmaWx0ZXJjb2xvciIsImZpbHRlcm9wYWNpdHkyIiwiZmlsdGVyY29sb3IyIiwiaGVpZ2h0X3ZoIiwidmFsaWduIl0sdDM5Nl9zZXRTY3JlZW5zVE5vYmoodCxlKSk6dDM5Nl9zZXRTY3JlZW5zVE5vYmoodCxlKSl9ZnVuY3Rpb24gdDM5Nl9zZXRTY3JlZW5zVE5vYmoodCxlKXt2YXIgaT0iYWIiK3Q7d2luZG93LnRuW2ldPXt9LHdpbmRvdy50bltpXS5zY3JlZW5zPVtdO3ZhciBvPWUuZ2V0QXR0cmlidXRlKCJkYXRhLWFydGJvYXJkLXNjcmVlbnMiKTtvPyhvPW8uc3BsaXQoIiwiKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dD1wYXJzZUludCh0LDEwKSx3aW5kb3cudG5baV0uc2NyZWVucy5wdXNoKHQpfSkpOndpbmRvdy50bltpXS5zY3JlZW5zPVszMjAsNDgwLDY0MCw5NjAsMTIwMF19ZnVuY3Rpb24gdDM5Nl9fZ2V0QXhpc1hQYWRkaW5nKCl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKSxlPUJvb2xlYW4od2luZG93LnRpbGRhTWVtYmVycyl8fCJhbGxyZWNvcmRzIj09PXdpbmRvdy56ZXJvX3dpbmRvd193aWR0aF9ob29rLGksbztyZXR1cm4gdCYmZSYmW2RvY3VtZW50LmJvZHksdF0ucmVkdWNlKChmdW5jdGlvbih0LGUpe3ZhciBpPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUpLnBhZGRpbmdMZWZ0LG89d2luZG93LmdldENvbXB1dGVkU3R5bGUoZSkucGFkZGluZ1JpZ2h0O3JldHVybiB0K3BhcnNlSW50KGksMTApK3BhcnNlSW50KG8sMTApfSksMCl8fDB9ZnVuY3Rpb24gdDM5Nl91cGRhdGVUTm9iaih0KXt2YXIgZT10Mzk2X19nZXRBeGlzWFBhZGRpbmcoKTtpZighd2luZG93LnRuLndpbmRvd193aWR0aCl7dmFyIGk9dDM5Nl9fZ2V0QmxvY2tFZGl0b3JXaWR0aCgpO3dpbmRvdy50bi53aW5kb3dfd2lkdGg9aXx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLGUmJih3aW5kb3cudG4ud2luZG93X3dpZHRoLT1lKX13aW5kb3cudG4ud2luZG93X2hlaWdodHx8KHdpbmRvdy50bi53aW5kb3dfaGVpZ2h0PXdpbmRvdy50Mzk2X19pc01vYmlsZT9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0OndpbmRvdy5pbm5lckhlaWdodCk7Zm9yKHZhciBvPSJhYiIrdCxuPXdpbmRvdy50bltvXS5zY3JlZW5zLnNsaWNlKCkucmV2ZXJzZSgpLHI9MDtyPG4ubGVuZ3RoO3IrKyl3aW5kb3cudG5bb10uY3VyUmVzb2x1dGlvbj09PW5bcl0mJih3aW5kb3cudG5bb10uY2FudmFzX21pbl93aWR0aD1uW3JdLHdpbmRvdy50bltvXS5jYW52YXNfbWF4X3dpZHRoPTA9PT1yP3dpbmRvdy50bi53aW5kb3dfd2lkdGg6bltyLTFdKTt3aW5kb3cudG5bb10uZ3JpZF93aWR0aD13aW5kb3cudG5bb10uY2FudmFzX21pbl93aWR0aCx3aW5kb3cudG5bb10uZ3JpZF9vZmZzZXRfbGVmdD0od2luZG93LnRuLndpbmRvd193aWR0aC13aW5kb3cudG5bb10uZ3JpZF93aWR0aCkvMn13aW5kb3cudDM5Nl9faXNNb2JpbGU9L0FuZHJvaWR8d2ViT1N8aVBob25lfGlQYWR8aVBvZHxCbGFja0JlcnJ5fElFTW9iaWxlfE9wZXJhIE1pbmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfHxuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkluc3RhZ3JhbSIpPi0xLHdpbmRvdy50Mzk2X19pc0lQYWQ9Im9udG91Y2hlbmQiaW4gZG9jdW1lbnQmJi0xIT09bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJBcHBsZVdlYktpdCIpLHdpbmRvdy50Mzk2X19pc1NhZmFyaT0vXigoPyFjaHJvbWV8YW5kcm9pZCkuKSpzYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLHdpbmRvdy50Mzk2X19pc1RvdWNoRGV2aWNlPSJvbnRvdWNoZW5kImluIGRvY3VtZW50LHdpbmRvdy50Mzk2X19pc0luQXBwQnJvd3Nlcj0vV2ViVmlld3woaVBob25lfGlQb2R8aVBhZCkoPyEuKlNhZmFyaSkvZ2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSx3aW5kb3cudDM5Nl9faXNGYWNlYm9va01lc3NlbmdlckluQXBwPS9GQkFOfEZCQVYvZ2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmd2luZG93LnQzOTZfX2lzSW5BcHBCcm93c2VyLHdpbmRvdy50Mzk2X19pc0luc3RhZ3JhbUluQXBwPS9cYkluc3RhZ3JhbS9naS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiZ3aW5kb3cudDM5Nl9faXNJbkFwcEJyb3dzZXIsdF9vblJlYWR5KHQzOTZfX2dsb2JhbEluaXQpO3ZhciB0Mzk2X3dhaXRGb3JGaW5hbEV2ZW50PWZ1bmN0aW9uKCl7dmFyIHQ9e307cmV0dXJuIGZ1bmN0aW9uKGUsaSxvKXtvfHwobz0iRG9uJ3QgY2FsbCB0aGlzIHR3aWNlIHdpdGhvdXQgYSB1bmlxdWVJZCIpLHRbb10mJmNsZWFyVGltZW91dCh0W29dKSx0W29dPXNldFRpbWVvdXQoZSxpKX19KCk7ZnVuY3Rpb24gdDM5Nl9zd2l0Y2hSZXNvbHV0aW9uKHQsZSl7dmFyIGk9ImFiIit0LG89d2luZG93LnRuW2ldLnNjcmVlbnNbd2luZG93LnRuW2ldLnNjcmVlbnMubGVuZ3RoLTFdO3dpbmRvdy50bltpXS5jdXJSZXNvbHV0aW9uPWUsd2luZG93LnRuW2ldLmN1clJlc29sdXRpb25fbWF4PW8sd2luZG93LnRuLmN1clJlc29sdXRpb249ZSx3aW5kb3cudG4uY3VyUmVzb2x1dGlvbl9tYXg9b31mdW5jdGlvbiB0Mzk2X2FydGJvYXJkX2J1aWxkKHQsZSl7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlYyIrZSksbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpLG49aT9pLnF1ZXJ5U2VsZWN0b3IoIi50Mzk2X19hcnRib2FyZCIpOm51bGw7aWYoIW4pcmV0dXJuITE7dDM5Nl9hYl9fcmVuZGVyVmlldyhuKSx0Mzk2X2FsbGdyb3Vwc19fcmVuZGVyVmlldyhuKSx0Mzk2X19zZXRTY2FsZUZhY3RvckZvckVsZW1lbnRzKGUpO3ZhciByPW4ucXVlcnlTZWxlY3RvckFsbCgiLnRuLWVsZW0iKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHIsKGZ1bmN0aW9uKHQpe3ZhciBpO3N3aXRjaCh0LmdldEF0dHJpYnV0ZSgiZGF0YS1lbGVtLXR5cGUiKSl7Y2FzZSJ0ZXh0Ijp0Mzk2X2FkZFRleHQobix0KTticmVhaztjYXNlImltYWdlIjp0Mzk2X2FkZEltYWdlKG4sdCk7YnJlYWs7Y2FzZSJzaGFwZSI6dDM5Nl9hZGRTaGFwZShuLHQpO2JyZWFrO2Nhc2UiYnV0dG9uIjp0Mzk2X2FkZEJ1dHRvbihuLHQpO2JyZWFrO2Nhc2UidmlkZW8iOnQzOTZfYWRkVmlkZW8obix0KTticmVhaztjYXNlImh0bWwiOnQzOTZfYWRkSHRtbChuLHQpO2JyZWFrO2Nhc2UidG9vbHRpcCI6dDM5Nl9hZGRUb29sdGlwKG4sdCk7YnJlYWs7Y2FzZSJmb3JtIjp0Mzk2X2FkZEZvcm0obix0LGUpO2JyZWFrO2Nhc2UiZ2FsbGVyeSI6dDM5Nl9hZGRHYWxsZXJ5KG4sdCxlKTticmVhaztjYXNlInZlY3RvciI6dDM5Nl9hZGRWZWN0b3Iobix0KX19KSksbi5jbGFzc0xpc3QucmVtb3ZlKCJyZW5kZXJpbmciKSxuLmNsYXNzTGlzdC5hZGQoInJlbmRlcmVkIiksbi5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiYXJ0Qm9hcmRSZW5kZXJlZCIse2J1YmJsZXM6ITAsY2FuY2VsYWJsZTohMH0pKTt2YXIgYT1uLmdldEF0dHJpYnV0ZSgiZGF0YS1hcnRib2FyZC1vdnJmbHciKSxsOyJ2aXNpYmxlIiE9PWEmJiJ2aXNpYmxlWCIhPT1hfHwhb3x8KG8uc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQ5NTFfX3NpZGViYXJfc3RpY2t5LC50LXN0b3JlX19wcm9kLXBvcHVwX19jb2xfZml4ZWQiKSYmKG8uc3R5bGUuY3NzVGV4dCs9Im92ZXJmbG93OmNsaXA7IikpO2lmKCJhdXRvIj09PWEpe3ZhciBkPU1hdGguYWJzKG4ub2Zmc2V0SGVpZ2h0LW4uY2xpZW50SGVpZ2h0KTswIT09ZCYmKG4uc3R5bGUucGFkZGluZ0JvdHRvbT1kKyJweCIpfWlmKHdpbmRvdy50Mzk2X19pc01vYmlsZXx8d2luZG93LnQzOTZfX2lzSVBhZCl7dmFyIF89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtfLnRleHRDb250ZW50PSJAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTM2NnB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSkgYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86Mikgey50Mzk2X19jYXJyaWVyIHtiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6c2Nyb2xsIWltcG9ydGFudDt9fSIsaS5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZWVuZCIsXyl9fWZ1bmN0aW9uIHQzOTZfYWJfX3JlbmRlclZpZXcodCl7aWYoIXQpcmV0dXJuITE7Zm9yKHZhciBlPXdpbmRvdy50bi5hYl9maWVsZHMsaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpLG8sbj0wO248ZS5sZW5ndGg7bisrKXQzOTZfYWJfX3JlbmRlclZpZXdPbmVGaWVsZCh0LGVbbl0pO3ZhciByPXQzOTZfYWJfX2dldEZpZWxkVmFsdWUodCwiaGVpZ2h0IiksYT10Mzk2X2FiX19nZXRIZWlnaHQodCksbCxkPXQzOTZfX2dldEN1cnJlbnRTY2FsZUZhY3Rvcih0LmdldEF0dHJpYnV0ZSgiZGF0YS1hcnRib2FyZC1yZWNpZCIpKSxfPSEhaSYmImVkaXQiPT09aS5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtbW9kZSIpLHM9IndpbmRvdyI9PT10Mzk2X2FiX19nZXRGaWVsZFZhbHVlKHQsInVwc2NhbGUiKSx1LGM7aWYobz10Mzk2X2FiX19nZXRGaWVsZFZhbHVlKHQsImhlaWdodF92aCIpLHMmJiFfJiZvKXZhciB3PXBhcnNlSW50KHIsMTApKmQ7aWYocj09PWF8fHcmJnc+PWEpdT0wO2Vsc2Ugc3dpdGNoKHQzOTZfYWJfX2dldEZpZWxkVmFsdWUodCwidmFsaWduIikpe2Nhc2UidG9wIjpkZWZhdWx0OnU9MDticmVhaztjYXNlImNlbnRlciI6dT13P3BhcnNlRmxvYXQoKChhLXcpLzIpLnRvRml4ZWQoMSkpOnBhcnNlRmxvYXQoKChhLXIpLzIpLnRvRml4ZWQoMSkpO2JyZWFrO2Nhc2UiYm90dG9tIjp1PXc/cGFyc2VGbG9hdCgoYS13KS50b0ZpeGVkKDEpKTpwYXJzZUZsb2F0KChhLXIpLnRvRml4ZWQoMSkpO2JyZWFrO2Nhc2Uic3RyZXRjaCI6dT0wLHI9YX10LnNldEF0dHJpYnV0ZSgiZGF0YS1hcnRib2FyZC1wcm94eS1taW4tb2Zmc2V0LXRvcCIsdSksdC5zZXRBdHRyaWJ1dGUoImRhdGEtYXJ0Ym9hcmQtcHJveHktbWluLWhlaWdodCIsciksdC5zZXRBdHRyaWJ1dGUoImRhdGEtYXJ0Ym9hcmQtcHJveHktbWF4LWhlaWdodCIsYSk7dmFyIGc9dC5xdWVyeVNlbGVjdG9yKCIudDM5Nl9fZmlsdGVyIiksZj10LnF1ZXJ5U2VsZWN0b3IoIi50Mzk2X19jYXJyaWVyIiksaDtpZihvPXQzOTZfYWJfX2dldEZpZWxkVmFsdWUodCwiaGVpZ2h0X3ZoIiksbz1wYXJzZUZsb2F0KG8pLCh3aW5kb3cudDM5Nl9faXNNb2JpbGV8fHdpbmRvdy50Mzk2X19pc0lQYWQpJiZvKXt2YXIgbT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0Km8vMTAwO3Quc3R5bGUuaGVpZ2h0PW0rInB4IixnJiYoZy5zdHlsZS5oZWlnaHQ9bSsicHgiKSxmJiYoZi5zdHlsZS5oZWlnaHQ9bSsicHgiKX0iaHVnIj09PXQuZ2V0QXR0cmlidXRlKCJkYXRhLWFydGJvYXJkLWhlaWdodG1vZGUiKSYmIW8mJih0LnN0eWxlLmhlaWdodD1yKyJweCIsZyYmKGcuc3R5bGUuaGVpZ2h0PXIrInB4IiksZiYmKGYuc3R5bGUuaGVpZ2h0PXIrInB4IikpfWZ1bmN0aW9uIHQzOTZfX2dldEN1cnJlbnRTY2FsZUZhY3Rvcih0KXt2YXIgZT0iYWIiK3QsaTtyZXR1cm4gd2luZG93LnRuJiZ3aW5kb3cudG5bZV0mJndpbmRvdy50bltlXS5zY2FsZUZhY3Rvcnx8d2luZG93LnRuX3NjYWxlX2ZhY3Rvcn1mdW5jdGlvbiB0Mzk2X19zZXRTY2FsZUZhY3RvckZvckVsZW1lbnRzKHQpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWMiK3QpLGk9ZT9lLnF1ZXJ5U2VsZWN0b3IoIi50Mzk2X19hcnRib2FyZCIpOm51bGw7aWYoaSl7dmFyIG89dDM5Nl9fZ2V0Q3VycmVudFNjYWxlRmFjdG9yKHQpLG49aS5xdWVyeVNlbGVjdG9yQWxsKCIudDM5Nl9fZWxlbSwgLnRuLWdyb3VwIik7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChuLChmdW5jdGlvbih0KXt0LnNjYWxlRmFjdG9yPW99KSl9fWZ1bmN0aW9uIHQzOTZfYWRkVGV4dCh0LGUpe2lmKGU9dDM5Nl9nZXRFbChlKSl7dmFyIGk9InRvcCxsZWZ0LHdpZHRoLGhlaWdodCxjb250YWluZXIsYXhpc3gsYXhpc3ksd2lkdGh1bml0cyxsZWZ0dW5pdHMsdG9wdW5pdHMiO2Uuc2V0QXR0cmlidXRlKCJkYXRhLWZpZWxkcyIsaSksdDM5Nl9lbGVtX19yZW5kZXJWaWV3KGUpfX1mdW5jdGlvbiB0Mzk2X2FkZEltYWdlKHQsZSl7aWYoZT10Mzk2X2dldEVsKGUpKXt2YXIgaT0iaW1nLHdpZHRoLGZpbGV3aWR0aCxmaWxlaGVpZ2h0LHRvcCxsZWZ0LGNvbnRhaW5lcixheGlzeCxheGlzeSx3aWR0aHVuaXRzLGxlZnR1bml0cyx0b3B1bml0cyI7ZS5zZXRBdHRyaWJ1dGUoImRhdGEtZmllbGRzIixpKSx0Mzk2X2VsZW1fX3JlbmRlclZpZXcoZSk7dmFyIG89ZS5xdWVyeVNlbGVjdG9yKCJpbWciKTtvJiYoby5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoZnVuY3Rpb24oKXt0Mzk2X2VsZW1fX3JlbmRlclZpZXdPbmVGaWVsZChlLCJ0b3AiKSxvLnNyYyYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXt0Mzk2X2VsZW1fX3JlbmRlclZpZXdPbmVGaWVsZChlLCJ0b3AiKSx0Mzk2X191cGRhdGVBdXRvSGVpZ2h0KHQpfSksMmUzKX0pKSxvLmNvbXBsZXRlJiYodDM5Nl9lbGVtX19yZW5kZXJWaWV3T25lRmllbGQoZSwidG9wIiksby5zcmMmJnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dDM5Nl9lbGVtX19yZW5kZXJWaWV3T25lRmllbGQoZSwidG9wIiksdDM5Nl9fdXBkYXRlQXV0b0hlaWdodCh0KX0pLDJlMykpLG8uYWRkRXZlbnRMaXN0ZW5lcigidHV3aWRnZXRfZG9uZSIsKGZ1bmN0aW9uKCl7dDM5Nl9lbGVtX19yZW5kZXJWaWV3T25lRmllbGQoZSwidG9wIil9KSksc2V0VGltZW91dCgoZnVuY3Rpb24oKXt0Mzk2X2NoYW5nZUZpbHRlck9uU2FmYXJpKGUpfSkpKX19ZnVuY3Rpb24gdDM5Nl9hZGRTaGFwZSh0LGUpe2lmKGU9dDM5Nl9nZXRFbChlKSl7dmFyIGk9IndpZHRoLGhlaWdodCx0b3AsbGVmdCwiO2krPSJjb250YWluZXIsYXhpc3gsYXhpc3ksd2lkdGh1bml0cyxoZWlnaHR1bml0cyxsZWZ0dW5pdHMsdG9wdW5pdHMiLGUuc2V0QXR0cmlidXRlKCJkYXRhLWZpZWxkcyIsaSksdDM5Nl9lbGVtX19yZW5kZXJWaWV3KGUpfX1mdW5jdGlvbiB0Mzk2X2NoYW5nZUZpbHRlck9uU2FmYXJpKHQpe3ZhciBlO2lmKC9eKCg/IWNocm9tZXxhbmRyb2lkKS4pKnNhZmFyaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJih0Mzk2X19jaGVja0NvbnRhaW5CYWNrZHJvcEZpbHRlcih0KSYmIkludGVyc2VjdGlvbk9ic2VydmVyImluIHdpbmRvdykpe3ZhciBpPXQucXVlcnlTZWxlY3RvcigiLnRuLWF0b20iKSxvO25ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZnVuY3Rpb24oZSxpKXtlLmZvckVhY2goKGZ1bmN0aW9uKGUpe2lmKGUuaXNJbnRlcnNlY3Rpbmcpe3ZhciBvPWUudGFyZ2V0O2kudW5vYnNlcnZlKG8pLHQzOTZfX3Byb2Nlc3NCYWNrZHJvcEZpbHRlck9uSW1hZ2UodCl9fSkpfSkpLm9ic2VydmUoaSl9fWZ1bmN0aW9uIHQzOTZfX2NoZWNrQ29udGFpbkJhY2tkcm9wRmlsdGVyKHQpe2lmKCF0KXJldHVybiExO3ZhciBlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLndlYmtpdEJhY2tkcm9wRmlsdGVyO2lmKGUmJiJub25lIiE9PWUpcmV0dXJuITA7dmFyIGk9dC5xdWVyeVNlbGVjdG9yKCIudG4tYXRvbV9fc2JzLWFuaW0td3JhcHBlciwgLnRuLWF0b21fX3ByeC13cmFwcGVyLCAudG4tYXRvbV9fc3RpY2t5LXdyYXBwZXIiKTtpZighaSlyZXR1cm4hMTt2YXIgbz13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShpKS53ZWJraXRCYWNrZHJvcEZpbHRlcjtyZXR1cm4gbyYmIm5vbmUiIT09b31mdW5jdGlvbiB0Mzk2X19wcm9jZXNzQmFja2Ryb3BGaWx0ZXJPbkltYWdlKHQpe2lmKHQpe3ZhciBlPXQuZ2V0QXR0cmlidXRlKCJkYXRhLWFuaW1hdGUtc2JzLW9wdHMiKSxpPXQuZ2V0QXR0cmlidXRlKCJkYXRhLWFuaW1hdGUtcHJ4Iil8fHQuZ2V0QXR0cmlidXRlKCJkYXRhLWFuaW1hdGUtZml4Iiksbz1lfHxpLG49dC5jbGFzc0xpc3QuY29udGFpbnMoInQzOTZfX2VsZW0tLWJhY2tkcm9wLWZpbHRlci1pbWctd3JhcHBlcmVkIik7byYmbnx8IW8/dDM5Nl9fdXBkYXRlQmFja2Ryb3BGaWx0ZXJPbkltYWdlKHQpOnQuYWRkRXZlbnRMaXN0ZW5lcigiYmFja2Ryb3BGaWx0ZXJJbWdXcmFwcGVyZWQiLChmdW5jdGlvbigpe3QzOTZfX3VwZGF0ZUJhY2tkcm9wRmlsdGVyT25JbWFnZSh0KX0pKX19ZnVuY3Rpb24gdDM5Nl9fdXBkYXRlQmFja2Ryb3BGaWx0ZXJPbkltYWdlKHQpe2lmKHQpe3ZhciBlPXQucXVlcnlTZWxlY3RvcigiaW1nIiksaT10LnF1ZXJ5U2VsZWN0b3IoIi50bi1hdG9tX19zYnMtYW5pbS13cmFwcGVyLCAudG4tYXRvbV9fcHJ4LXdyYXBwZXIsIC50bi1hdG9tX19zdGlja3ktd3JhcHBlciIpLG89IiI7aSYmKHQ9aSxvPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLndlYmtpdEJhY2tkcm9wRmlsdGVyfHwiIiksdC5zdHlsZS53ZWJraXRCYWNrZHJvcEZpbHRlcj0ibm9uZSIsdDM5Nl93YWl0Rm9yVXBsb2FkSW1nKGUsKGZ1bmN0aW9uKCl7dC5zdHlsZS53ZWJraXRCYWNrZHJvcEZpbHRlcj1vfSkpfX1mdW5jdGlvbiB0Mzk2X3dhaXRGb3JVcGxvYWRJbWcodCxlKXtpZigieSI9PT13aW5kb3cubGF6eSl2YXIgaT1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3QuY2xhc3NMaXN0LmNvbnRhaW5zKCJsb2FkZWQiKSYmdC5jbGllbnRXaWR0aCYmdC5zcmM/KGUoKSxjbGVhclRpbWVvdXQoaSkpOnQzOTZfd2FpdEZvclVwbG9hZEltZyh0LGUpfSksMzAwKTtlbHNlIGUoKX1mdW5jdGlvbiB0Mzk2X2FkZEJ1dHRvbih0LGUpe2lmKGU9dDM5Nl9nZXRFbChlKSl7dmFyIGk9InRvcCxsZWZ0LHdpZHRoLGhlaWdodCxjb250YWluZXIsYXhpc3gsYXhpc3ksY2FwdGlvbixsZWZ0dW5pdHMsdG9wdW5pdHMiO3JldHVybiBlLnNldEF0dHJpYnV0ZSgiZGF0YS1maWVsZHMiLGkpLHQzOTZfZWxlbV9fcmVuZGVyVmlldyhlKSxlfX1mdW5jdGlvbiB0Mzk2X2FkZFZpZGVvKHQsZSl7aWYoZT10Mzk2X2dldEVsKGUpKXt2YXIgaT0id2lkdGgsaGVpZ2h0LHRvcCxsZWZ0LCI7aSs9ImNvbnRhaW5lcixheGlzeCxheGlzeSx3aWR0aHVuaXRzLGhlaWdodHVuaXRzLGxlZnR1bml0cyx0b3B1bml0cyIsZS5zZXRBdHRyaWJ1dGUoImRhdGEtZmllbGRzIixpKSx0Mzk2X2VsZW1fX3JlbmRlclZpZXcoZSksdF9vbkZ1bmNMb2FkKCJ0Mzk2X2luaXRWaWRlbyIsKGZ1bmN0aW9uKCl7dDM5Nl9pbml0VmlkZW8oZSl9KSl9fWZ1bmN0aW9uIHQzOTZfYWRkSHRtbCh0LGUpe2lmKGU9dDM5Nl9nZXRFbChlKSl7dmFyIGk9IndpZHRoLGhlaWdodCx0b3AsbGVmdCwiO2krPSJjb250YWluZXIsYXhpc3gsYXhpc3ksd2lkdGh1bml0cyxoZWlnaHR1bml0cyxsZWZ0dW5pdHMsdG9wdW5pdHMiLGUuc2V0QXR0cmlidXRlKCJkYXRhLWZpZWxkcyIsaSksdDM5Nl9lbGVtX19yZW5kZXJWaWV3KGUpfX1mdW5jdGlvbiB0Mzk2X2FkZFRvb2x0aXAodCxlKXtpZihlPXQzOTZfZ2V0RWwoZSkpe3ZhciBpPSJ3aWR0aCxoZWlnaHQsdG9wLGxlZnQsIjtpKz0iY29udGFpbmVyLGF4aXN4LGF4aXN5LHdpZHRodW5pdHMsaGVpZ2h0dW5pdHMsbGVmdHVuaXRzLHRvcHVuaXRzLHRpcHBvc2l0aW9uIixlLnNldEF0dHJpYnV0ZSgiZGF0YS1maWVsZHMiLGkpLHQzOTZfZWxlbV9fcmVuZGVyVmlldyhlKSx0X29uRnVuY0xvYWQoInQzOTZfaW5pdFRvb2x0aXAiLChmdW5jdGlvbigpe3QzOTZfaW5pdFRvb2x0aXAoZSl9KSl9fWZ1bmN0aW9uIHQzOTZfYWRkRm9ybSh0LGUsaSl7aWYoZT10Mzk2X2dldEVsKGUpKXt2YXIgbz0id2lkdGgsdG9wLGxlZnQsIixuO28rPSJpbnB1dHMsY29udGFpbmVyLGF4aXN4LGF4aXN5LHdpZHRodW5pdHMsbGVmdHVuaXRzLHRvcHVuaXRzIixlLnNldEF0dHJpYnV0ZSgiZGF0YS1maWVsZHMiLG8pO3ZhciByPWUuZ2V0QXR0cmlidXRlKCJkYXRhLWVsZW0taWQiKSxhPWUucXVlcnlTZWxlY3RvcigiLnRuLWF0b21fX2lucHV0cy10ZXh0YXJlYSIpO2EmJihuPWEudmFsdWUpLHRfb25GdW5jTG9hZCgidF96ZXJvRm9ybXNfX2luaXQiLChmdW5jdGlvbigpe3QzOTZfZWxlbV9fcmVuZGVyVmlldyhlKSx0X3plcm9Gb3Jtc19faW5pdChpLHIsbiksdDM5Nl9lbGVtX19yZW5kZXJWaWV3KGUpfSkpfX1mdW5jdGlvbiB0Mzk2X2FkZEdhbGxlcnkodCxlLGkpe2lmKGU9dDM5Nl9nZXRFbChlKSl7dmFyIG89IndpZHRoLGhlaWdodCx0b3AsbGVmdCwiO28rPSJpbWdzLGNvbnRhaW5lcixheGlzeCxheGlzeSx3aWR0aHVuaXRzLGhlaWdodHVuaXRzLGxlZnR1bml0cyx0b3B1bml0cyIsZS5zZXRBdHRyaWJ1dGUoImRhdGEtZmllbGRzIixvKSx0Mzk2X2VsZW1fX3JlbmRlclZpZXcoZSk7dmFyIG49ZS5nZXRBdHRyaWJ1dGUoImRhdGEtZWxlbS1pZCIpO3Rfb25GdW5jTG9hZCgidF96ZXJvR2FsbGVyeV9faW5pdCIsKGZ1bmN0aW9uKCl7dF96ZXJvR2FsbGVyeV9faW5pdChpLG4pfSkpfX1mdW5jdGlvbiB0Mzk2X2FkZFZlY3Rvcih0LGUpe2lmKGU9dDM5Nl9nZXRFbChlKSl7dmFyIGk9IndpZHRoLGZpbGV3aWR0aCxmaWxlaGVpZ2h0LHRvcCxsZWZ0LGNvbnRhaW5lcixheGlzeCxheGlzeSx3aWR0aHVuaXRzLGxlZnR1bml0cyx0b3B1bml0cyI7ZS5zZXRBdHRyaWJ1dGUoImRhdGEtZmllbGRzIixpKSx0Mzk2X2VsZW1fX3JlbmRlclZpZXcoZSl9fWZ1bmN0aW9uIHQzOTZfZWxlbV9fZ2V0RmllbGRWYWx1ZSh0LGUpe2lmKHQ9dDM5Nl9nZXRFbCh0KSl7aWYodC5jbGFzc0xpc3QuY29udGFpbnMoInRuLWdyb3VwIikpcmV0dXJuIHQzOTZfZ3JvdXBfX2dldEZpZWxkVmFsdWUodCxlKTt2YXIgaT10LmNsb3Nlc3QoIi50Mzk2X19hcnRib2FyZCIpLG89aS5nZXRBdHRyaWJ1dGUoImRhdGEtYXJ0Ym9hcmQtcmVjaWQiKSxuPSJhYiIrbyxyO2lmKHZvaWQgMD09PXdpbmRvdy50bltuXSl0Mzk2X2luaXRUTm9iaihvLGkpLHQzOTZfc3dpdGNoUmVzb2x1dGlvbihvLHQzOTZfZGV0ZWN0UmVzb2x1dGlvbihvKSk7dmFyIGE9d2luZG93LnRuW25dLmN1clJlc29sdXRpb24sbD13aW5kb3cudG5bbl0uY3VyUmVzb2x1dGlvbl9tYXgsZD13aW5kb3cudG5bbl0uc2NyZWVucyxfO2lmKCEoXz1hPT09bD90LmdldEF0dHJpYnV0ZSgiZGF0YS1maWVsZC0iK2UrIi12YWx1ZSIpOnQuZ2V0QXR0cmlidXRlKCJkYXRhLWZpZWxkLSIrZSsiLXJlcy0iK2ErIi12YWx1ZSIpKSYmIiIhPT1fKWZvcih2YXIgcz0wO3M8ZC5sZW5ndGg7cysrKXt2YXIgdT1kW3NdO2lmKCEodTw9YSkmJihfPXU9PT1sP3QuZ2V0QXR0cmlidXRlKCJkYXRhLWZpZWxkLSIrZSsiLXZhbHVlIik6dC5nZXRBdHRyaWJ1dGUoImRhdGEtZmllbGQtIitlKyItcmVzLSIrdSsiLXZhbHVlIikpKWJyZWFrfXJldHVybiBffX1mdW5jdGlvbiB0Mzk2X2VsZW1fX3JlbmRlclZpZXcodCl7dmFyIGU9KHQ9dDM5Nl9nZXRFbCh0KSk/dC5nZXRBdHRyaWJ1dGUoImRhdGEtZmllbGRzIik6IiI7aWYoIWUpcmV0dXJuITE7KGU9ZS5zcGxpdCgiLCIpKS5mb3JFYWNoKChmdW5jdGlvbihlKXt0Mzk2X2VsZW1fX3JlbmRlclZpZXdPbmVGaWVsZCh0LGUpfSkpfWZ1bmN0aW9uIHQzOTZfZ3JvdXBfX3JlbmRlclZpZXcodCl7dmFyIGU9dD90LmdldEF0dHJpYnV0ZSgiZGF0YS1maWVsZHMiKToiIjtpZighZSlyZXR1cm4hMTsoZT1lLnNwbGl0KCIsIikpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBpPXQzOTZfZ3JvdXBfX2dldEZpZWxkVmFsdWUodCxlKTtzd2l0Y2goZSl7Y2FzZSJsZWZ0IjppPXQzOTZfZWxlbV9fY29udmVydFBvc2l0aW9uX19Mb2NhbF9fdG9BYnNvbHV0ZSh0LGUsaSksdC5zdHlsZS5sZWZ0PXBhcnNlRmxvYXQoaSkudG9GaXhlZCgxKSsicHgiO2JyZWFrO2Nhc2UidG9wIjppPXQzOTZfZWxlbV9fY29udmVydFBvc2l0aW9uX19Mb2NhbF9fdG9BYnNvbHV0ZSh0LGUsaSksdC5zdHlsZS50b3A9cGFyc2VGbG9hdChpKS50b0ZpeGVkKDEpKyJweCJ9fSkpfWZ1bmN0aW9uIHQzOTZfZWxlbV9fcmVuZGVyVmlld09uZUZpZWxkKHQsZSl7aWYodD10Mzk2X2dldEVsKHQpKXt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpLG89aT9pLmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1tb2RlIik6IiIsbixyPSJ3aW5kb3ciPT09dDM5Nl9hYl9fZ2V0RmllbGRWYWx1ZSh0LmNsb3Nlc3QoIi50Mzk2X19hcnRib2FyZCIpLCJ1cHNjYWxlIik7aWYoInllcyIhPT10LmdldEF0dHJpYnV0ZSgiZGF0YS1zY2FsZS1vZmYiKXx8IXJ8fCJlZGl0Ij09PW8pe3ZhciBhPXQzOTZfZWxlbV9fZ2V0RmllbGRWYWx1ZSh0LGUpLGwsZD1bImZpbGwiLCJodWciXTtzd2l0Y2goZSl7Y2FzZSJsZWZ0IjphPXQzOTZfZWxlbV9fY29udmVydFBvc2l0aW9uX19Mb2NhbF9fdG9BYnNvbHV0ZSh0LGUsYSksdC5zdHlsZS5sZWZ0PXBhcnNlRmxvYXQoYSkudG9GaXhlZCgxKSsicHgiO2JyZWFrO2Nhc2UidG9wIjphPXQzOTZfZWxlbV9fY29udmVydFBvc2l0aW9uX19Mb2NhbF9fdG9BYnNvbHV0ZSh0LGUsYSksdC5zdHlsZS50b3A9cGFyc2VGbG9hdChhKS50b0ZpeGVkKDEpKyJweCI7YnJlYWs7Y2FzZSJ3aWR0aCI6bD10LmdldEF0dHJpYnV0ZSgiZGF0YS1lbGVtLXR5cGUiKTt2YXIgXz10Mzk2X2VsZW1fX2dldEZpZWxkVmFsdWUodCwid2lkdGhtb2RlIik7aWYoInRleHQiPT09bCYmImF1dG93aWR0aCI9PT10Mzk2X2VsZW1fX2dldEZpZWxkVmFsdWUodCwidGV4dGZpdCIpKXJldHVybiB2b2lkKHQuc3R5bGUud2lkdGg9ImF1dG8iKTtpZihkLmluY2x1ZGVzKF8pKXJldHVybiB2b2lkKHQuc3R5bGUud2lkdGg9IiIpO3N3aXRjaChhPXQzOTZfZWxlbV9fZ2V0V2lkdGgodCxhKSx0LnN0eWxlLndpZHRoPXBhcnNlRmxvYXQoYSkudG9GaXhlZCgxKSsicHgiLGwpe2Nhc2UidG9vbHRpcCI6dmFyIHM9dC5xdWVyeVNlbGVjdG9yQWxsKCIudG4tYXRvbV9fcGluLWljb24iKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHMsKGZ1bmN0aW9uKHQpe3ZhciBlPXBhcnNlRmxvYXQoYSkudG9GaXhlZCgxKSsicHgiO3Quc3R5bGUud2lkdGg9ZSx0LnN0eWxlLmhlaWdodD1lfSkpLHQuc3R5bGUuaGVpZ2h0PXBhcnNlSW50KGEpLnRvRml4ZWQoMSkrInB4IjticmVhaztjYXNlImdhbGxlcnkiOnQzOTZfZWxlbV9fc2V0R2FsbGVyeVNpemUodCwid2lkdGgiLGEpfWJyZWFrO2Nhc2UiaGVpZ2h0IjpsPXQuZ2V0QXR0cmlidXRlKCJkYXRhLWVsZW0tdHlwZSIpO3ZhciB1PXQzOTZfZWxlbV9fZ2V0RmllbGRWYWx1ZSh0LCJoZWlnaHRtb2RlIiksYz10Mzk2X2VsZW1fX2dldEZpZWxkVmFsdWUodCwidGV4dGZpdCIpO2lmKCJ0ZXh0Ij09PWwmJihbImF1dG93aWR0aCIsImF1dG9oZWlnaHQiXS5pbmNsdWRlcyhjKXx8IWMpKXJldHVybiB2b2lkKHQuc3R5bGUuaGVpZ2h0PSJhdXRvIik7aWYoZC5pbmNsdWRlcyh1KSYmInRvb2x0aXAiIT09bClyZXR1cm4gdm9pZCh0LnN0eWxlLmhlaWdodD0iIik7aWYoInRvb2x0aXAiPT09bClyZXR1cm47YT10Mzk2X2VsZW1fX2dldEhlaWdodCh0LGEpLHQuc3R5bGUuaGVpZ2h0PXBhcnNlRmxvYXQoYSkudG9GaXhlZCgxKSsicHgiLCJnYWxsZXJ5Ij09PWwmJnQzOTZfZWxlbV9fc2V0R2FsbGVyeVNpemUodCwiaGVpZ2h0IixhKTticmVhaztjYXNlImNvbnRhaW5lciI6dDM5Nl9lbGVtX19yZW5kZXJWaWV3T25lRmllbGQodCwibGVmdCIpLHQzOTZfZWxlbV9fcmVuZGVyVmlld09uZUZpZWxkKHQsInRvcCIpO2JyZWFrO2Nhc2UiaW5wdXRzIjp2YXIgdz10LnF1ZXJ5U2VsZWN0b3IoIi50bi1hdG9tX19pbnB1dHMtdGV4dGFyZWEiKTthPXc/dy52YWx1ZToiIjt0cnl7dF96ZXJvRm9ybXNfX3JlbmRlckZvcm0odCxhKX1jYXRjaChnKXt9fSJ3aWR0aCIhPT1lJiYiaGVpZ2h0IiE9PWUmJiJmb250c2l6ZSIhPT1lJiYiZm9udGZhbWlseSIhPT1lJiYibGV0dGVyc3BhY2luZyIhPT1lJiYiZm9udHdlaWdodCIhPT1lJiYiaW1nIiE9PWV8fCh0Mzk2X2VsZW1fX3JlbmRlclZpZXdPbmVGaWVsZCh0LCJsZWZ0IiksdDM5Nl9lbGVtX19yZW5kZXJWaWV3T25lRmllbGQodCwidG9wIikpfX19ZnVuY3Rpb24gdDM5Nl9lbGVtX19zZXRHYWxsZXJ5U2l6ZSh0LGUsaSl7dmFyIG89dDM5Nl9lbGVtX19nZXRGaWVsZFZhbHVlKHQsImJvcmRlcndpZHRoIiksbj10Mzk2X2VsZW1fX2dldEZpZWxkVmFsdWUodCwiYm9yZGVyc3R5bGUiKTtuJiZvJiYibm9uZSIhPT1ufHwobz0wKSxpLT0yKm8sY3VycmVudFZhbHVlPU1hdGgucm91bmQocGFyc2VGbG9hdChpKSkrInB4Ijt2YXIgcj10LnF1ZXJ5U2VsZWN0b3IoIi50LXNsZHNfX21haW4iKSxhPXQucXVlcnlTZWxlY3RvckFsbCgiLnRuLWF0b21fX3NsZHMtaW1nIik7dC5zdHlsZVtlXT1jdXJyZW50VmFsdWUsciYmKHIuc3R5bGVbZV09Y3VycmVudFZhbHVlKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGEsKGZ1bmN0aW9uKHQpe3Quc3R5bGVbZV09Y3VycmVudFZhbHVlfSkpfWZ1bmN0aW9uIHQzOTZfZWxlbV9fY29udmVydFBvc2l0aW9uX19Mb2NhbF9fdG9BYnNvbHV0ZSh0LGUsaSl7aWYodD10Mzk2X2dldEVsKHQpKXt2YXIgbz10LmNsb3Nlc3QoIi50Mzk2X19hcnRib2FyZCIpLG49by5nZXRBdHRyaWJ1dGUoImRhdGEtYXJ0Ym9hcmQtcmVjaWQiKSxyPSJhYiIrbixhPXQzOTZfYWJfX2dldEZpZWxkVmFsdWUobywidmFsaWduIiksbD0id2luZG93Ij09PXQzOTZfYWJfX2dldEZpZWxkVmFsdWUobywidXBzY2FsZSIpLGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKSxfLHM9ImVkaXQiPT09KGQ/ZC5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtbW9kZSIpOiIiKSx1PXQzOTZfaXNPbmx5U2NhbGFibGVCcm93c2VyKCksYz0hcyYmbCYmdSx3PSFzJiZsJiYhdSxnPXQzOTZfZWxlbV9fZ2V0RmllbGRWYWx1ZSh0LCJheGlzeSIpLGY9dDM5Nl9lbGVtX19nZXRGaWVsZFZhbHVlKHQsImF4aXN4IiksaD10Mzk2X2VsZW1fX2dldEZpZWxkVmFsdWUodCwiY29udGFpbmVyIiksbT10LmNsYXNzTGlzdC5jb250YWlucygidG4tZ3JvdXAiKSYmInBoeXNpY2FsIj09PXQzOTZfZ3JvdXBfX2dldEZpZWxkVmFsdWUodCwidHlwZSIpLHA9dC5wYXJlbnROb2RlLmNsb3Nlc3QoIi50bi1ncm91cCIpLGI9InBoeXNpY2FsIj09PXQzOTZfZ3JvdXBfX2dldEZpZWxkVmFsdWUocCwidHlwZSIpLHYseSxGLEEseCxWLEU7bSYmKGg9ImdyaWQiKSxpPXBhcnNlSW50KGkpO3ZhciBTPXQzOTZfX2dldEN1cnJlbnRTY2FsZUZhY3RvcihuKTtzd2l0Y2goZSl7Y2FzZSJsZWZ0Ijp2YXIgaztpZih2PSJncmlkIj09PWg/ImdyaWQiOiJ3aW5kb3ciLHk9ImdyaWQiPT09aD93aW5kb3cudG5bcl0uZ3JpZF9vZmZzZXRfbGVmdDowLHg9ImdyaWQiPT09aD93aW5kb3cudG5bcl0uZ3JpZF93aWR0aDp3aW5kb3cudG4ud2luZG93X3dpZHRoLCIlIj09PXQzOTZfZWxlbV9fZ2V0RmllbGRWYWx1ZSh0LCJsZWZ0dW5pdHMiKSYmKGk9dDM5Nl9yb3VuZEZsb2F0KHgqaS8xMDApKSxiKXt2YXIgQj1wYXJzZUludCh0Mzk2X2dyb3VwX19nZXRGaWVsZFZhbHVlKHAsImxlZnQiKSwxMCksSTsiJSI9PT10Mzk2X2dyb3VwX19nZXRGaWVsZFZhbHVlKHAsImxlZnR1bml0cyIpJiYoQj10Mzk2X3JvdW5kRmxvYXQoeCpCLzEwMCkpLGktPUI7YnJlYWt9IXMmJmw/ImdyaWQiPT09aCYmdSYmKGkqPVMpOmk9eStpLCJjZW50ZXIiPT09ZiYmKEE9dDM5Nl9lbGVtX19nZXRXaWR0aCh0KSxjJiYid2luZG93IiE9PXYmJih4Kj1TLEEqPVMpLGk9eC8yLUEvMitpKSwicmlnaHQiPT09ZiYmKEE9dDM5Nl9lbGVtX19nZXRXaWR0aCh0KSxjJiYid2luZG93IiE9PXYmJih4Kj1TLEEqPVMpLGk9eC1BK2kpLGMmJiJ3aW5kb3ciIT09diYmKGkrPSgoQT10Mzk2X2VsZW1fX2dldFdpZHRoKHQpKSpTLUEpLzIpO2JyZWFrO2Nhc2UidG9wIjp2YXIgej10LmNsb3Nlc3QoIi50Mzk2X19hcnRib2FyZCIpLEw9ej96LmdldEF0dHJpYnV0ZSgiZGF0YS1hcnRib2FyZC1wcm94eS1taW4tb2Zmc2V0LXRvcCIpOiIwIixPPXo/ei5nZXRBdHRyaWJ1dGUoImRhdGEtYXJ0Ym9hcmQtcHJveHktbWluLWhlaWdodCIpOiIwIixUPXo/ei5nZXRBdHRyaWJ1dGUoImRhdGEtYXJ0Ym9hcmQtcHJveHktbWF4LWhlaWdodCIpOiIwIixSPWZ1bmN0aW9uIHQoZSl7dmFyIGk9dDM5Nl9lbGVtX19nZXRIZWlnaHQoZSk7aWYoZSYmImltYWdlIj09PWUuZ2V0QXR0cmlidXRlKCJkYXRhLWVsZW0tdHlwZSIpKXt2YXIgbz10Mzk2X2VsZW1fX2dldFdpZHRoKGUpLG49dDM5Nl9lbGVtX19nZXRGaWVsZFZhbHVlKGUsImZpbGV3aWR0aCIpLHI9dDM5Nl9lbGVtX19nZXRGaWVsZFZhbHVlKGUsImZpbGVoZWlnaHQiKSxhO2lmKG4mJnIpaT1vLyhwYXJzZUludChuKS9wYXJzZUludChyKSl9cmV0dXJuIGl9LEg7aWYodj0iZ3JpZCI9PT1oPyJncmlkIjoid2luZG93IixGPSJncmlkIj09PWg/cGFyc2VGbG9hdChMKTowLEU9ImdyaWQiPT09aD9wYXJzZUZsb2F0KE8pOnBhcnNlRmxvYXQoVCksIiUiPT09dDM5Nl9lbGVtX19nZXRGaWVsZFZhbHVlKHQsInRvcHVuaXRzIikmJihpPUUqKGkvMTAwKSksYil7dmFyIHE9cGFyc2VJbnQodDM5Nl9ncm91cF9fZ2V0RmllbGRWYWx1ZShwLCJ0b3AiKSwxMCksTTsiJSI9PT10Mzk2X2dyb3VwX19nZXRGaWVsZFZhbHVlKHAsInRvcHVuaXRzIikmJihxPXQzOTZfcm91bmRGbG9hdChFKnEvMTAwKSksaS09cTticmVha31jJiYid2luZG93IiE9PXYmJihpKj1TKSx3JiYid2luZG93IiE9PXYmJihGPSJzdHJldGNoIj09PWE/MDpGL1MpLGk9RitpO3ZhciBDPXQzOTZfYWJfX2dldEZpZWxkVmFsdWUoeiwiaGVpZ2h0X3ZoIiksUD10Mzk2X2FiX19nZXRGaWVsZFZhbHVlKHosImhlaWdodCIpLFc9dDM5Nl9hYl9fZ2V0SGVpZ2h0KHopO2lmKGwmJiFzJiZDKXZhciBqPXBhcnNlSW50KFAsMTApKlM7aWYoImNlbnRlciI9PT1nJiYoVj1SKHQpLGMmJiJ3aW5kb3ciIT09diYmKCJzdHJldGNoIiE9PWE/RSo9UzpFPWo/aj5XP2o6Vzp6LmNsaWVudEhlaWdodCxWKj1TKSxzfHwhbHx8dXx8IndpbmRvdyI9PT12fHwic3RyZXRjaCIhPT1hfHwoRT1qP2o+Vz9qOlc6ei5jbGllbnRIZWlnaHQsRS89UyksaT1FLzItVi8yK2kpLCJib3R0b20iPT09ZyYmKFY9Uih0KSxjJiYid2luZG93IiE9PXYmJigic3RyZXRjaCIhPT1hP0UqPVM6RT1qP2o+Vz9qOlc6ei5jbGllbnRIZWlnaHQsVio9Uyksc3x8IWx8fHV8fCJ3aW5kb3ciPT09dnx8InN0cmV0Y2giIT09YXx8KEU9aj9qPlc/ajpXOnouY2xpZW50SGVpZ2h0LEUvPVMpLGk9RS1WK2kpLGMmJiJ3aW5kb3ciIT09dil7dmFyIE49KChWPVIodCkpKlMtVikvMjtpKz1OPU1hdGgucm91bmQoTil9fXJldHVybiBpfX1mdW5jdGlvbiB0Mzk2X2VsZW1fZmluZEZpcnN0TGV2ZWxQYXJlbnRHcm91cCh0KXtmb3IodmFyIGU9dC5jbG9zZXN0KCIudDM5Nl9fZ3JvdXAiKTtlOyl7dmFyIGk9ZS5wYXJlbnRFbGVtZW50LmNsb3Nlc3QoIi50Mzk2X19ncm91cCIpO2lmKCFpKWJyZWFrO2U9aX1yZXR1cm4gZX1mdW5jdGlvbiB0Mzk2X2FiX19nZXRGaWVsZFZhbHVlKHQsZSl7aWYodCl7dmFyIGksbz10LmdldEF0dHJpYnV0ZSgiZGF0YS1hcnRib2FyZC1yZWNpZCIpLG49ImFiIitvLHI7aWYodm9pZCAwPT09d2luZG93LnRuW25dKXQzOTZfaW5pdFROb2JqKG8sdCksdDM5Nl9zd2l0Y2hSZXNvbHV0aW9uKG8sdDM5Nl9kZXRlY3RSZXNvbHV0aW9uKG8pKTt2YXIgYT13aW5kb3cudG5bbl0uY3VyUmVzb2x1dGlvbixsPXdpbmRvdy50bltuXS5jdXJSZXNvbHV0aW9uX21heCxkPXdpbmRvdy50bltuXS5zY3JlZW5zO2lmKG51bGw9PT0oaT1hPT09bD90LmdldEF0dHJpYnV0ZSgiZGF0YS1hcnRib2FyZC0iK2UpOnQuZ2V0QXR0cmlidXRlKCJkYXRhLWFydGJvYXJkLSIrZSsiLXJlcy0iK2EpKSlmb3IodmFyIF89MDtfPGQubGVuZ3RoO18rKyl7dmFyIHM9ZFtfXTtpZighKHM8PWEpJiZudWxsIT09KGk9cz09PWw/dC5nZXRBdHRyaWJ1dGUoImRhdGEtYXJ0Ym9hcmQtIitlKTp0LmdldEF0dHJpYnV0ZSgiZGF0YS1hcnRib2FyZC0iK2UrIi1yZXMtIitzKSkpYnJlYWt9cmV0dXJuIGl9fWZ1bmN0aW9uIHQzOTZfYWJfX3JlbmRlclZpZXdPbmVGaWVsZCh0LGUpe3QzOTZfYWJfX2dldEZpZWxkVmFsdWUodCxlKX1mdW5jdGlvbiB0Mzk2X2NvcmVfX2dldEZpZWxkVmFsdWUodCxlKXtyZXR1cm4gdC5jbGFzc0xpc3QuY29udGFpbnMoInQzOTZfX2VsZW0iKT90Mzk2X2VsZW1fX2dldEZpZWxkVmFsdWUodCxlKTp0Mzk2X2dyb3VwX19nZXRGaWVsZFZhbHVlKHQsZSl9ZnVuY3Rpb24gdDM5Nl9ncm91cF9fZ2V0RmllbGRWYWx1ZSh0LGUpe2lmKHQpe3ZhciBpLG8sbj0iYWIiK3QuY2xvc2VzdCgiLnQzOTZfX2FydGJvYXJkIikuZ2V0QXR0cmlidXRlKCJkYXRhLWFydGJvYXJkLXJlY2lkIikscj13aW5kb3cudG5bbl0uY3VyUmVzb2x1dGlvbixhPXdpbmRvdy50bltuXS5jdXJSZXNvbHV0aW9uX21heCxsPXdpbmRvdy50bltuXS5zY3JlZW5zLGQ9WyJ3aWR0aG1vZGUiLCJoZWlnaHRtb2RlIiwiZmxleCJdLmluY2x1ZGVzKGUpPyIiOiItdmFsdWUiO2lmKG51bGw9PT0oaT1yPT09YT90LmdldEF0dHJpYnV0ZSgiZGF0YS1ncm91cC0iK2UrZCk6dC5nZXRBdHRyaWJ1dGUoImRhdGEtZ3JvdXAtIitlKyItcmVzLSIrcitkKSkpZm9yKHZhciBfPTA7XzxsLmxlbmd0aDtfKyspe3ZhciBzPWxbX107aWYoIShzPD1yKSYmbnVsbCE9PShpPXM9PT1hP3QuZ2V0QXR0cmlidXRlKCJkYXRhLWdyb3VwLSIrZStkKTp0LmdldEF0dHJpYnV0ZSgiZGF0YS1ncm91cC0iK2UrIi1yZXMtIitzK2QpKSlicmVha31yZXR1cm4gaX19ZnVuY3Rpb24gdDM5Nl9hbGxncm91cHNfX3JlbmRlclZpZXcodCl7aWYodCl7dmFyIGU9dC5xdWVyeVNlbGVjdG9yQWxsKCIudG4tZ3JvdXAiKSxpPUFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChlLChmdW5jdGlvbih0KXtyZXR1cm4icGh5c2ljYWwiPT09dDM5Nl9ncm91cF9fZ2V0RmllbGRWYWx1ZSh0LCJ0eXBlIil9KSk7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChpLChmdW5jdGlvbih0KXt0Mzk2X2dyb3VwX19yZW5kZXJWaWV3KHQpLHQzOTZfYWxsZ3JvdXBzX19yZW5kZXJWaWV3QXV0b2xheW91dCh0KX0pKX19ZnVuY3Rpb24gdDM5Nl9hbGxncm91cHNfX3JlbmRlclZpZXdBdXRvbGF5b3V0KHQpe2lmKHQmJnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0Mzk2X19ncm91cC1mbGV4Iikpe3ZhciBlPXQzOTZfZ3JvdXBfX2dldEZpZWxkVmFsdWUodCwid2lkdGhtb2RlIiksaT10Mzk2X2dyb3VwX19nZXRGaWVsZFZhbHVlKHQsImhlaWdodG1vZGUiKTsiZmlsbCI9PT1lPyh0LnN0eWxlLndpZHRoPSIxMDAlIix0LnN0eWxlLmZsZXhTaHJpbms9IjEiKToodC5zdHlsZS53aWR0aD0iaHVnIj09PWU/Im1pbi1jb250ZW50IjoiIix0LnN0eWxlLmhlaWdodD0iaHVnIj09PWk/ImluaXRpYWwiOiIiLHQuc3R5bGUuZmxleFNocmluaz0iIil9fWZ1bmN0aW9uIHQzOTZfYWxsZWxlbXNfX3JlbmRlclZpZXcodCl7aWYoIXQpcmV0dXJuITE7dmFyIGU9dC5xdWVyeVNlbGVjdG9yQWxsKCIudG4tZWxlbSIpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZSwoZnVuY3Rpb24odCl7dDM5Nl9lbGVtX19yZW5kZXJWaWV3KHQpfSkpfWZ1bmN0aW9uIHQzOTZfYWJfX2dldEhlaWdodCh0LGUpe2V8fChlPXQzOTZfYWJfX2dldEZpZWxkVmFsdWUodCwiaGVpZ2h0IikpLGU9cGFyc2VGbG9hdChlKTt2YXIgaT10Mzk2X2FiX19nZXRGaWVsZFZhbHVlKHQsImhlaWdodF92aCIpO2lmKGkmJihpPXBhcnNlRmxvYXQoaSksIWlzTmFOKGkpKSl7dmFyIG89d2luZG93LnRuLndpbmRvd19oZWlnaHQqaS8xMDA7ZTxvJiYoZT1vKX1yZXR1cm4gZX1mdW5jdGlvbiB0Mzk2X2VsZW1fX2dldFdpZHRoKHQsZSl7dmFyIGksbyxuPSJhYiIrKHQ9dDM5Nl9nZXRFbCh0KSkuY2xvc2VzdCgiLnQzOTZfX2FydGJvYXJkIikuZ2V0QXR0cmlidXRlKCJkYXRhLWFydGJvYXJkLXJlY2lkIikscixhOyhlfHwoZT10Mzk2X2VsZW1fX2dldEZpZWxkVmFsdWUodCwid2lkdGgiKSksZT1wYXJzZUZsb2F0KGUpLCIlIj09PXQzOTZfZWxlbV9fZ2V0RmllbGRWYWx1ZSh0LCJ3aWR0aHVuaXRzIikpJiYoZT0id2luZG93Ij09PXQzOTZfZWxlbV9fZ2V0RmllbGRWYWx1ZSh0LCJjb250YWluZXIiKT93aW5kb3cudG4ud2luZG93X3dpZHRoKmUvMTAwOndpbmRvdy50bltuXS5ncmlkX3dpZHRoKmUvMTAwKTtyZXR1cm4gZX1mdW5jdGlvbiB0Mzk2X2VsZW1fX2dldEhlaWdodCh0LGUpe3Q9dDM5Nl9nZXRFbCh0KSxlfHwoZT10Mzk2X2VsZW1fX2dldEZpZWxkVmFsdWUodCwiaGVpZ2h0IikpLGU9cGFyc2VGbG9hdChlKTt2YXIgaT10LmdldEF0dHJpYnV0ZSgiZGF0YS1lbGVtLXR5cGUiKSxvPXQzOTZfZWxlbV9fZ2V0RmllbGRWYWx1ZSh0LCJ0ZXh0Zml0IiksbjtpZigic2hhcGUiPT09aXx8InZpZGVvIj09PWl8fCJodG1sIj09PWl8fCJnYWxsZXJ5Ij09PWl8fCJidXR0b24iPT09aXx8InRleHQiPT09aSYmImZpeGVkc2l6ZSI9PT1vKXt2YXIgcjtpZigiJSI9PT10Mzk2X2VsZW1fX2dldEZpZWxkVmFsdWUodCwiaGVpZ2h0dW5pdHMiKSl7dmFyIGE9dC5jbG9zZXN0KCIudDM5Nl9fYXJ0Ym9hcmQiKSxsPWE/YS5nZXRBdHRyaWJ1dGUoImRhdGEtYXJ0Ym9hcmQtcHJveHktbWluLWhlaWdodCIpOiIwIixkPWE/YS5nZXRBdHRyaWJ1dGUoImRhdGEtYXJ0Ym9hcmQtcHJveHktbWF4LWhlaWdodCIpOiIwIixfPXBhcnNlRmxvYXQobCkscz1wYXJzZUZsb2F0KGQpLHU7ZT0id2luZG93Ij09PXQzOTZfZWxlbV9fZ2V0RmllbGRWYWx1ZSh0LCJjb250YWluZXIiKT9zKihlLzEwMCk6XyooZS8xMDApfX1lbHNle2lmKCJ0ZXh0Ij09PWkpe3ZhciBjPXQucXVlcnlTZWxlY3RvcigiLnRuLWF0b20iKTtjJiYoYy5zdHlsZS5saW5lSGVpZ2h0PSIiKX1lPXQuY2xpZW50SGVpZ2h0fXJldHVybiBlfWZ1bmN0aW9uIHQzOTZfcm91bmRGbG9hdCh0KXtyZXR1cm4gdD1NYXRoLnJvdW5kKDEwMCp0KS8xMDB9ZnVuY3Rpb24gdDM5Nl9yZW1vdmVFbGVtZW50RnJvbURPTSh0KXsodD10Mzk2X2dldEVsKHQpKSYmdC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCl9ZnVuY3Rpb24gdDM5Nl9nZXRFbCh0KXtyZXR1cm4gd2luZG93LmpRdWVyeSYmdCBpbnN0YW5jZW9mIGpRdWVyeT90Lmxlbmd0aD90LmdldCgwKTpudWxsOnR9ZnVuY3Rpb24gdDM5Nl9pc0Jsb2NrVmlzaWJsZSh0KXt2YXIgZT13aW5kb3cuaW5uZXJXaWR0aCxpPXQuZ2V0QXR0cmlidXRlKCJkYXRhLXNjcmVlbi1taW4iKSxvPXQuZ2V0QXR0cmlidXRlKCJkYXRhLXNjcmVlbi1tYXgiKTtyZXR1cm4hKGkmJmU8cGFyc2VJbnQoaSwxMCkpJiYhKG8mJmU+cGFyc2VJbnQobywxMCkpfWZ1bmN0aW9uIHQzOTZfX2dldEFydGJvYXJkcyh0KXt2YXIgZSxpPSJlZGl0Ij09PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbGxyZWNvcmRzIikuZ2V0QXR0cmlidXRlKCJkYXRhLXRpbGRhLW1vZGUiKT8nLnJlY29yZFtkYXRhLXJlY29yZC10eXBlPSInK3QrJyJdIC5yOm5vdCgudDM5N19fb2ZmKTpub3QoLnQzOTVfX29mZik6bm90KC50NDAwX19vZmYpIC50Mzk2X19hcnRib2FyZCc6Jy5yW2RhdGEtcmVjb3JkLXR5cGU9IicrdCsnIl06bm90KC50Mzk3X19vZmYpOm5vdCgudDM5NV9fb2ZmKTpub3QoLnQ0MDBfX29mZikgLnQzOTZfX2FydGJvYXJkJztyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChpKSl9ZnVuY3Rpb24gdDM5Nl9fZ2V0WmVyb0Jsb2Nrcygpe3ZhciB0PVtdLmNvbmNhdCh0Mzk2X19nZXRBcnRib2FyZHMoIjM5NiIpLHQzOTZfX2dldEFydGJvYXJkcygiMTIxIikpLGU7cmV0dXJuIHQubGVuZ3RoP3QubWFwKChmdW5jdGlvbih0KXtyZXR1cm57cmVjb3JkOnQuY2xvc2VzdCgiLnI6bm90KC50Mzk3X19vZmYpOm5vdCgudDM5NV9fb2ZmKTpub3QoLnQ0MDBfX29mZikiKSxhcnRib2FyZDp0fX0pKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlY29yZH0pKTpbXX1mdW5jdGlvbiB0Mzk2X19nZXRCbG9ja0VkaXRvcldpZHRoKCl7aWYoIXdpbmRvdy50bi5pc0VkaXRNb2RlKXJldHVybiAwO3ZhciB0LGU9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuZ2V0UHJvcGVydHlWYWx1ZSgiLS1wYWdlLXZpZXctd2lkdGgiKTtyZXR1cm4gZSYmIjEwMCUiIT09ZT9wYXJzZUludChlLDEwKTp2b2lkIDB9ZnVuY3Rpb24gdDM5Nl9faXNBbGxaZXJvQmxvY2tzUmVuZGVyZWQodCl7dmFyIGU9dDM5Nl9fZ2V0WmVyb0Jsb2NrcygpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKSxvPWkmJiJlZGl0Ij09PWkuZ2V0QXR0cmlidXRlKCJkYXRhLXRpbGRhLW1vZGUiKSxuPSExO2lmKGUubGVuZ3RoKXtvJiZjbGVhclRpbWVvdXQod2luZG93LnRuX3dhaXRpbmdGb3JBcHBlbmRaZXJvKTt2YXIgcj1lLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuYXJ0Ym9hcmR9KSksYTtpZihyLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5jbGFzc0xpc3QuY29udGFpbnMoInJlbmRlcmVkIil9KSkpdCgpO2Vsc2V7dmFyIGw9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNsYXNzTGlzdC5jb250YWlucygicmVuZGVyZWQiKX0pKTtyLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UuY2xhc3NMaXN0LmNvbnRhaW5zKCJyZW5kZXJlZCIpfHxlLmFkZEV2ZW50TGlzdGVuZXIoImFydEJvYXJkUmVuZGVyZWQiLChmdW5jdGlvbigpe2wucHVzaChlKSxsLmxlbmd0aCE9PXIubGVuZ3RofHxufHx0KCl9KSl9KSksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtuPSEwLGwubGVuZ3RoIT09ci5sZW5ndGgmJnQoKX0pLDNlMyl9fWVsc2UgbyYmKHdpbmRvdy50bl93YWl0aW5nRm9yQXBwZW5kWmVybz1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3QzOTZfX2lzQWxsWmVyb0Jsb2Nrc1JlbmRlcmVkKHQpfSksM2UzKSl9ZnVuY3Rpb24gdDM5Nl9fcHJvY2Vzc0VsZW1lbnRzVHJhbnNmb3JtKHQpe3ZhciBlPXQzOTZfX2luaXRGYXN0RE9NKCksaT1bXTtlLnJlYWQoKGZ1bmN0aW9uKCl7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0LChmdW5jdGlvbih0KXt2YXIgZT10LmdldEF0dHJpYnV0ZSgiZGF0YS1lbGVtLXR5cGUiKTtpZigidGV4dCI9PT1lfHwiaW1hZ2UiPT09ZXx8InNoYXBlIj09PWV8fCJidXR0b24iPT09ZXx8InZlY3RvciI9PT1lKXt2YXIgbz1nZXRDb21wdXRlZFN0eWxlKHQpLG47aWYoby5iYWNrZHJvcEZpbHRlciYmIm5vbmUiIT09by5iYWNrZHJvcEZpbHRlcnx8by53ZWJraXRCYWNrZHJvcEZpbHRlciYmIm5vbmUiIT09by53ZWJraXRCYWNrZHJvcEZpbHRlcil7dmFyIHI9dC5xdWVyeVNlbGVjdG9yKCIudG4tYXRvbSIpLGE9cj93aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShyKS50cmFuc2Zvcm06Im5vbmUiOyJtYXRyaXgoMSwgMCwgMCwgMSwgMCwgMCkiPT09YSYmKGE9Im5vbmUiKSwibm9uZSIhPT1hJiZpLnB1c2goe2VsZW1lbnQ6dCxhdG9tOnIsYXRvbVRyYW5zZm9ybTphfSl9fX0pKX0pKSxlLndyaXRlKChmdW5jdGlvbigpe2kuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5hdG9tLnN0eWxlLnRyYW5zZm9ybT0ibm9uZSIsdC5lbGVtZW50LnN0eWxlLnRyYW5zZm9ybT10LmF0b21UcmFuc2Zvcm19KSl9KSl9ZnVuY3Rpb24gdDM5Nl9fZml4RWxlbWVudHNMaW5lSGVpZ2h0cyh0KXt2YXIgZT10Mzk2X19pbml0RmFzdERPTSgpLGk9W107ZS5yZWFkKChmdW5jdGlvbigpe0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodCwoZnVuY3Rpb24odCl7dmFyIGU7aWYoInRleHQiPT09dC5nZXRBdHRyaWJ1dGUoImRhdGEtZWxlbS10eXBlIikpe3ZhciBvPXQucXVlcnlTZWxlY3RvcigiLnRuLWF0b20iKTtpZihvKXt2YXIgbj10LmNsb3Nlc3QoIi50Mzk2X19ncm91cCIpO2lmKCFufHwhbi5zdHlsZS56b29tKXt2YXIgcj10LnN0eWxlLnpvb20sYT1vLnN0eWxlLndlYmtpdFRleHRTaXplQWRqdXN0LGw9by5zdHlsZS5mb250U2l6ZTtpLnB1c2goe2VsZW1lbnQ6dCxhdG9tOm8sem9vbTpyLHRleHRTaXplQWRqdXN0OmEsZm9udFNpemU6bH0pfX19fSkpfSkpLGUud3JpdGUoKGZ1bmN0aW9uKCl7aS5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmF0b20uc3R5bGUucmVtb3ZlUHJvcGVydHkoImxpbmUtaGVpZ2h0Iiksd2luZG93LnQzOTZfX2lzU2FmYXJpJiZ0Lnpvb20mJih0LmF0b20uc3R5bGUud2Via2l0VGV4dFNpemVBZGp1c3Q9Im5vbmUiLHQuYXRvbS5zdHlsZS5mb250U2l6ZT0iIix0LmVsZW1lbnQuc3R5bGUuem9vbT0iIil9KSl9KSksZS5yZWFkKChmdW5jdGlvbigpe2kuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5jb21wdXRlZExpbmVIZWlnaHQ9cGFyc2VGbG9hdCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0LmF0b20pLmxpbmVIZWlnaHQpfSkpfSkpLGUud3JpdGUoKGZ1bmN0aW9uKCl7aS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10LmNvbXB1dGVkTGluZUhlaWdodDt3aW5kb3cudDM5Nl9faXNTYWZhcmkmJnQuem9vbSYmKHQuYXRvbS5zdHlsZS53ZWJraXRUZXh0U2l6ZUFkanVzdD10LnRleHRTaXplQWRqdXN0LHQuYXRvbS5zdHlsZS5mb250U2l6ZT10LmZvbnRTaXplLHQuem9vbSYmKHQuZWxlbWVudC5zdHlsZS56b29tPXQuem9vbSkpLGUmJiFpc05hTihlKSYmKHQuYXRvbS5zdHlsZS5saW5lSGVpZ2h0PU1hdGgucm91bmQoZSkrInB4Iil9KSl9KSl9ZnVuY3Rpb24gdDM5Nl9fZml4RWxlbWVudHNGb250U2l6ZXModCl7dmFyIGU7aWYoIXdpbmRvdy50Mzk2X19pc01vYmlsZSYmd2luZG93LnQzOTZfX2lzSVBhZHx8d2luZG93LnQzOTZfX2lzRmFjZWJvb2tNZXNzZW5nZXJJbkFwcHx8d2luZG93LnQzOTZfX2lzSW5zdGFncmFtSW5BcHApe3ZhciBpPXQzOTZfX2luaXRGYXN0RE9NKCksbz1bXTtpLnJlYWQoKGZ1bmN0aW9uKCl7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0LChmdW5jdGlvbih0KXt2YXIgZT10LmdldEF0dHJpYnV0ZSgiZGF0YS1lbGVtLXR5cGUiKTtpZigidGV4dCI9PT1lfHwiYnV0dG9uIj09PWUpe3ZhciBpPXQucXVlcnlTZWxlY3RvcigiLnRuLWF0b20iKTtpZihpKXt2YXIgbj10Mzk2X2VsZW1fZmluZEZpcnN0TGV2ZWxQYXJlbnRHcm91cCh0KSxyPXtlbGVtZW50OnQsYXRvbTppLHpvb206MX07biYmbi5zdHlsZS56b29tJiYoci56b29tPXBhcnNlRmxvYXQobi5zdHlsZS56b29tKSksMSE9PXIuem9vbSYmby5wdXNoKHIpfX19KSl9KSksaS53cml0ZSgoZnVuY3Rpb24oKXtvLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuYXRvbS5zdHlsZS5mb250U2l6ZT0iIn0pKX0pKSxpLnJlYWQoKGZ1bmN0aW9uKCl7by5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT1wYXJzZUZsb2F0KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQuYXRvbSkuZm9udFNpemUpO3QuY29ycmVjdEZvbnRTaXplPWUqTWF0aC5wb3codC56b29tLDIpfSkpfSkpLGkud3JpdGUoKGZ1bmN0aW9uKCl7by5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmF0b20uc3R5bGUuZm9udFNpemU9TWF0aC5mbG9vcih0LmNvcnJlY3RGb250U2l6ZSkrInB4In0pKX0pKX19ZnVuY3Rpb24gdDM5Nl9faW5pdEZhc3RET00oKXtyZXR1cm57cmVhZDpmdW5jdGlvbiB0KGUpe2UoKX0sd3JpdGU6ZnVuY3Rpb24gdChlKXtlKCl9fX1mdW5jdGlvbiB0Mzk2X19hcHBseUZpeGVzRm9yQWxsRWxlbWVudHMoKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudDM5Nl9fZWxlbSIpLGU9d2luZG93LnQzOTZfX2lzU2FmYXJpfHx3aW5kb3cudDM5Nl9faXNGYWNlYm9va01lc3NlbmdlckluQXBwfHx3aW5kb3cudDM5Nl9faXNJbnN0YWdyYW1JbkFwcDtkb2N1bWVudC5mb250cyYmZT9kb2N1bWVudC5mb250cy5yZWFkeS50aGVuKChmdW5jdGlvbigpe3QzOTZfX2ZpeEVsZW1lbnRzRm9udFNpemVzKHQpLHQzOTZfX2ZpeEVsZW1lbnRzTGluZUhlaWdodHModCl9KSk6dDM5Nl9fZml4RWxlbWVudHNMaW5lSGVpZ2h0cyh0KSx0Mzk2X19wcm9jZXNzRWxlbWVudHNUcmFuc2Zvcm0odCl9CgovKiEgSGFtbWVyLkpTIC0gdjIuMC44IC0gMjAxNi0wNC0yMwogKiBodHRwOi8vaGFtbWVyanMuZ2l0aHViLmlvLwogKgogKiBDb3B5cmlnaHQgKGMpIDIwMTYgSm9yaWsgVGFuZ2VsZGVyOwogKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgKi8KIWZ1bmN0aW9uKGEsYixjLGQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKGEsYixjKXtyZXR1cm4gc2V0VGltZW91dChqKGEsYyksYil9ZnVuY3Rpb24gZihhLGIsYyl7cmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/KGcoYSxjW2JdLGMpLCEwKTohMX1mdW5jdGlvbiBnKGEsYixjKXt2YXIgZTtpZihhKWlmKGEuZm9yRWFjaClhLmZvckVhY2goYixjKTtlbHNlIGlmKGEubGVuZ3RoIT09ZClmb3IoZT0wO2U8YS5sZW5ndGg7KWIuY2FsbChjLGFbZV0sZSxhKSxlKys7ZWxzZSBmb3IoZSBpbiBhKWEuaGFzT3duUHJvcGVydHkoZSkmJmIuY2FsbChjLGFbZV0sZSxhKX1mdW5jdGlvbiBoKGIsYyxkKXt2YXIgZT0iREVQUkVDQVRFRCBNRVRIT0Q6ICIrYysiXG4iK2QrIiBBVCBcbiI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGM9bmV3IEVycm9yKCJnZXQtc3RhY2stdHJhY2UiKSxkPWMmJmMuc3RhY2s/Yy5zdGFjay5yZXBsYWNlKC9eW15cKF0rP1tcbiRdL2dtLCIiKS5yZXBsYWNlKC9eXHMrYXRccysvZ20sIiIpLnJlcGxhY2UoL15PYmplY3QuPGFub255bW91cz5ccypcKC9nbSwie2Fub255bW91c30oKUAiKToiVW5rbm93biBTdGFjayBUcmFjZSIsZj1hLmNvbnNvbGUmJihhLmNvbnNvbGUud2Fybnx8YS5jb25zb2xlLmxvZyk7cmV0dXJuIGYmJmYuY2FsbChhLmNvbnNvbGUsZSxkKSxiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gaShhLGIsYyl7dmFyIGQsZT1iLnByb3RvdHlwZTtkPWEucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSksZC5jb25zdHJ1Y3Rvcj1hLGQuX3N1cGVyPWUsYyYmbGEoZCxjKX1mdW5jdGlvbiBqKGEsYil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYixhcmd1bWVudHMpfX1mdW5jdGlvbiBrKGEsYil7cmV0dXJuIHR5cGVvZiBhPT1vYT9hLmFwcGx5KGI/YlswXXx8ZDpkLGIpOmF9ZnVuY3Rpb24gbChhLGIpe3JldHVybiBhPT09ZD9iOmF9ZnVuY3Rpb24gbShhLGIsYyl7ZyhxKGIpLGZ1bmN0aW9uKGIpe2EuYWRkRXZlbnRMaXN0ZW5lcihiLGMsITEpfSl9ZnVuY3Rpb24gbihhLGIsYyl7ZyhxKGIpLGZ1bmN0aW9uKGIpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGMsITEpfSl9ZnVuY3Rpb24gbyhhLGIpe2Zvcig7YTspe2lmKGE9PWIpcmV0dXJuITA7YT1hLnBhcmVudE5vZGV9cmV0dXJuITF9ZnVuY3Rpb24gcChhLGIpe3JldHVybiBhLmluZGV4T2YoYik+LTF9ZnVuY3Rpb24gcShhKXtyZXR1cm4gYS50cmltKCkuc3BsaXQoL1xzKy9nKX1mdW5jdGlvbiByKGEsYixjKXtpZihhLmluZGV4T2YmJiFjKXJldHVybiBhLmluZGV4T2YoYik7Zm9yKHZhciBkPTA7ZDxhLmxlbmd0aDspe2lmKGMmJmFbZF1bY109PWJ8fCFjJiZhW2RdPT09YilyZXR1cm4gZDtkKyt9cmV0dXJuLTF9ZnVuY3Rpb24gcyhhKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYSwwKX1mdW5jdGlvbiB0KGEsYixjKXtmb3IodmFyIGQ9W10sZT1bXSxmPTA7ZjxhLmxlbmd0aDspe3ZhciBnPWI/YVtmXVtiXTphW2ZdO3IoZSxnKTwwJiZkLnB1c2goYVtmXSksZVtmXT1nLGYrK31yZXR1cm4gYyYmKGQ9Yj9kLnNvcnQoZnVuY3Rpb24oYSxjKXtyZXR1cm4gYVtiXT5jW2JdfSk6ZC5zb3J0KCkpLGR9ZnVuY3Rpb24gdShhLGIpe2Zvcih2YXIgYyxlLGY9YlswXS50b1VwcGVyQ2FzZSgpK2Iuc2xpY2UoMSksZz0wO2c8bWEubGVuZ3RoOyl7aWYoYz1tYVtnXSxlPWM/YytmOmIsZSBpbiBhKXJldHVybiBlO2crK31yZXR1cm4gZH1mdW5jdGlvbiB2KCl7cmV0dXJuIHVhKyt9ZnVuY3Rpb24gdyhiKXt2YXIgYz1iLm93bmVyRG9jdW1lbnR8fGI7cmV0dXJuIGMuZGVmYXVsdFZpZXd8fGMucGFyZW50V2luZG93fHxhfWZ1bmN0aW9uIHgoYSxiKXt2YXIgYz10aGlzO3RoaXMubWFuYWdlcj1hLHRoaXMuY2FsbGJhY2s9Yix0aGlzLmVsZW1lbnQ9YS5lbGVtZW50LHRoaXMudGFyZ2V0PWEub3B0aW9ucy5pbnB1dFRhcmdldCx0aGlzLmRvbUhhbmRsZXI9ZnVuY3Rpb24oYil7ayhhLm9wdGlvbnMuZW5hYmxlLFthXSkmJmMuaGFuZGxlcihiKX0sdGhpcy5pbml0KCl9ZnVuY3Rpb24geShhKXt2YXIgYixjPWEub3B0aW9ucy5pbnB1dENsYXNzO3JldHVybiBuZXcoYj1jP2M6eGE/TTp5YT9QOndhP1I6TCkoYSx6KX1mdW5jdGlvbiB6KGEsYixjKXt2YXIgZD1jLnBvaW50ZXJzLmxlbmd0aCxlPWMuY2hhbmdlZFBvaW50ZXJzLmxlbmd0aCxmPWImRWEmJmQtZT09PTAsZz1iJihHYXxIYSkmJmQtZT09PTA7Yy5pc0ZpcnN0PSEhZixjLmlzRmluYWw9ISFnLGYmJihhLnNlc3Npb249e30pLGMuZXZlbnRUeXBlPWIsQShhLGMpLGEuZW1pdCgiaGFtbWVyLmlucHV0IixjKSxhLnJlY29nbml6ZShjKSxhLnNlc3Npb24ucHJldklucHV0PWN9ZnVuY3Rpb24gQShhLGIpe3ZhciBjPWEuc2Vzc2lvbixkPWIucG9pbnRlcnMsZT1kLmxlbmd0aDtjLmZpcnN0SW5wdXR8fChjLmZpcnN0SW5wdXQ9RChiKSksZT4xJiYhYy5maXJzdE11bHRpcGxlP2MuZmlyc3RNdWx0aXBsZT1EKGIpOjE9PT1lJiYoYy5maXJzdE11bHRpcGxlPSExKTt2YXIgZj1jLmZpcnN0SW5wdXQsZz1jLmZpcnN0TXVsdGlwbGUsaD1nP2cuY2VudGVyOmYuY2VudGVyLGk9Yi5jZW50ZXI9RShkKTtiLnRpbWVTdGFtcD1yYSgpLGIuZGVsdGFUaW1lPWIudGltZVN0YW1wLWYudGltZVN0YW1wLGIuYW5nbGU9SShoLGkpLGIuZGlzdGFuY2U9SChoLGkpLEIoYyxiKSxiLm9mZnNldERpcmVjdGlvbj1HKGIuZGVsdGFYLGIuZGVsdGFZKTt2YXIgaj1GKGIuZGVsdGFUaW1lLGIuZGVsdGFYLGIuZGVsdGFZKTtiLm92ZXJhbGxWZWxvY2l0eVg9ai54LGIub3ZlcmFsbFZlbG9jaXR5WT1qLnksYi5vdmVyYWxsVmVsb2NpdHk9cWEoai54KT5xYShqLnkpP2oueDpqLnksYi5zY2FsZT1nP0soZy5wb2ludGVycyxkKToxLGIucm90YXRpb249Zz9KKGcucG9pbnRlcnMsZCk6MCxiLm1heFBvaW50ZXJzPWMucHJldklucHV0P2IucG9pbnRlcnMubGVuZ3RoPmMucHJldklucHV0Lm1heFBvaW50ZXJzP2IucG9pbnRlcnMubGVuZ3RoOmMucHJldklucHV0Lm1heFBvaW50ZXJzOmIucG9pbnRlcnMubGVuZ3RoLEMoYyxiKTt2YXIgaz1hLmVsZW1lbnQ7byhiLnNyY0V2ZW50LnRhcmdldCxrKSYmKGs9Yi5zcmNFdmVudC50YXJnZXQpLGIudGFyZ2V0PWt9ZnVuY3Rpb24gQihhLGIpe3ZhciBjPWIuY2VudGVyLGQ9YS5vZmZzZXREZWx0YXx8e30sZT1hLnByZXZEZWx0YXx8e30sZj1hLnByZXZJbnB1dHx8e307Yi5ldmVudFR5cGUhPT1FYSYmZi5ldmVudFR5cGUhPT1HYXx8KGU9YS5wcmV2RGVsdGE9e3g6Zi5kZWx0YVh8fDAseTpmLmRlbHRhWXx8MH0sZD1hLm9mZnNldERlbHRhPXt4OmMueCx5OmMueX0pLGIuZGVsdGFYPWUueCsoYy54LWQueCksYi5kZWx0YVk9ZS55KyhjLnktZC55KX1mdW5jdGlvbiBDKGEsYil7dmFyIGMsZSxmLGcsaD1hLmxhc3RJbnRlcnZhbHx8YixpPWIudGltZVN0YW1wLWgudGltZVN0YW1wO2lmKGIuZXZlbnRUeXBlIT1IYSYmKGk+RGF8fGgudmVsb2NpdHk9PT1kKSl7dmFyIGo9Yi5kZWx0YVgtaC5kZWx0YVgsaz1iLmRlbHRhWS1oLmRlbHRhWSxsPUYoaSxqLGspO2U9bC54LGY9bC55LGM9cWEobC54KT5xYShsLnkpP2wueDpsLnksZz1HKGosayksYS5sYXN0SW50ZXJ2YWw9Yn1lbHNlIGM9aC52ZWxvY2l0eSxlPWgudmVsb2NpdHlYLGY9aC52ZWxvY2l0eVksZz1oLmRpcmVjdGlvbjtiLnZlbG9jaXR5PWMsYi52ZWxvY2l0eVg9ZSxiLnZlbG9jaXR5WT1mLGIuZGlyZWN0aW9uPWd9ZnVuY3Rpb24gRChhKXtmb3IodmFyIGI9W10sYz0wO2M8YS5wb2ludGVycy5sZW5ndGg7KWJbY109e2NsaWVudFg6cGEoYS5wb2ludGVyc1tjXS5jbGllbnRYKSxjbGllbnRZOnBhKGEucG9pbnRlcnNbY10uY2xpZW50WSl9LGMrKztyZXR1cm57dGltZVN0YW1wOnJhKCkscG9pbnRlcnM6YixjZW50ZXI6RShiKSxkZWx0YVg6YS5kZWx0YVgsZGVsdGFZOmEuZGVsdGFZfX1mdW5jdGlvbiBFKGEpe3ZhciBiPWEubGVuZ3RoO2lmKDE9PT1iKXJldHVybnt4OnBhKGFbMF0uY2xpZW50WCkseTpwYShhWzBdLmNsaWVudFkpfTtmb3IodmFyIGM9MCxkPTAsZT0wO2I+ZTspYys9YVtlXS5jbGllbnRYLGQrPWFbZV0uY2xpZW50WSxlKys7cmV0dXJue3g6cGEoYy9iKSx5OnBhKGQvYil9fWZ1bmN0aW9uIEYoYSxiLGMpe3JldHVybnt4OmIvYXx8MCx5OmMvYXx8MH19ZnVuY3Rpb24gRyhhLGIpe3JldHVybiBhPT09Yj9JYTpxYShhKT49cWEoYik/MD5hP0phOkthOjA+Yj9MYTpNYX1mdW5jdGlvbiBIKGEsYixjKXtjfHwoYz1RYSk7dmFyIGQ9YltjWzBdXS1hW2NbMF1dLGU9YltjWzFdXS1hW2NbMV1dO3JldHVybiBNYXRoLnNxcnQoZCpkK2UqZSl9ZnVuY3Rpb24gSShhLGIsYyl7Y3x8KGM9UWEpO3ZhciBkPWJbY1swXV0tYVtjWzBdXSxlPWJbY1sxXV0tYVtjWzFdXTtyZXR1cm4gMTgwKk1hdGguYXRhbjIoZSxkKS9NYXRoLlBJfWZ1bmN0aW9uIEooYSxiKXtyZXR1cm4gSShiWzFdLGJbMF0sUmEpK0koYVsxXSxhWzBdLFJhKX1mdW5jdGlvbiBLKGEsYil7cmV0dXJuIEgoYlswXSxiWzFdLFJhKS9IKGFbMF0sYVsxXSxSYSl9ZnVuY3Rpb24gTCgpe3RoaXMuZXZFbD1UYSx0aGlzLmV2V2luPVVhLHRoaXMucHJlc3NlZD0hMSx4LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBNKCl7dGhpcy5ldkVsPVhhLHRoaXMuZXZXaW49WWEseC5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5zdG9yZT10aGlzLm1hbmFnZXIuc2Vzc2lvbi5wb2ludGVyRXZlbnRzPVtdfWZ1bmN0aW9uIE4oKXt0aGlzLmV2VGFyZ2V0PSRhLHRoaXMuZXZXaW49X2EsdGhpcy5zdGFydGVkPSExLHguYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIE8oYSxiKXt2YXIgYz1zKGEudG91Y2hlcyksZD1zKGEuY2hhbmdlZFRvdWNoZXMpO3JldHVybiBiJihHYXxIYSkmJihjPXQoYy5jb25jYXQoZCksImlkZW50aWZpZXIiLCEwKSksW2MsZF19ZnVuY3Rpb24gUCgpe3RoaXMuZXZUYXJnZXQ9YmIsdGhpcy50YXJnZXRJZHM9e30seC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gUShhLGIpe3ZhciBjPXMoYS50b3VjaGVzKSxkPXRoaXMudGFyZ2V0SWRzO2lmKGImKEVhfEZhKSYmMT09PWMubGVuZ3RoKXJldHVybiBkW2NbMF0uaWRlbnRpZmllcl09ITAsW2MsY107dmFyIGUsZixnPXMoYS5jaGFuZ2VkVG91Y2hlcyksaD1bXSxpPXRoaXMudGFyZ2V0O2lmKGY9Yy5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIG8oYS50YXJnZXQsaSl9KSxiPT09RWEpZm9yKGU9MDtlPGYubGVuZ3RoOylkW2ZbZV0uaWRlbnRpZmllcl09ITAsZSsrO2ZvcihlPTA7ZTxnLmxlbmd0aDspZFtnW2VdLmlkZW50aWZpZXJdJiZoLnB1c2goZ1tlXSksYiYoR2F8SGEpJiZkZWxldGUgZFtnW2VdLmlkZW50aWZpZXJdLGUrKztyZXR1cm4gaC5sZW5ndGg/W3QoZi5jb25jYXQoaCksImlkZW50aWZpZXIiLCEwKSxoXTp2b2lkIDB9ZnVuY3Rpb24gUigpe3guYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBhPWoodGhpcy5oYW5kbGVyLHRoaXMpO3RoaXMudG91Y2g9bmV3IFAodGhpcy5tYW5hZ2VyLGEpLHRoaXMubW91c2U9bmV3IEwodGhpcy5tYW5hZ2VyLGEpLHRoaXMucHJpbWFyeVRvdWNoPW51bGwsdGhpcy5sYXN0VG91Y2hlcz1bXX1mdW5jdGlvbiBTKGEsYil7YSZFYT8odGhpcy5wcmltYXJ5VG91Y2g9Yi5jaGFuZ2VkUG9pbnRlcnNbMF0uaWRlbnRpZmllcixULmNhbGwodGhpcyxiKSk6YSYoR2F8SGEpJiZULmNhbGwodGhpcyxiKX1mdW5jdGlvbiBUKGEpe3ZhciBiPWEuY2hhbmdlZFBvaW50ZXJzWzBdO2lmKGIuaWRlbnRpZmllcj09PXRoaXMucHJpbWFyeVRvdWNoKXt2YXIgYz17eDpiLmNsaWVudFgseTpiLmNsaWVudFl9O3RoaXMubGFzdFRvdWNoZXMucHVzaChjKTt2YXIgZD10aGlzLmxhc3RUb3VjaGVzLGU9ZnVuY3Rpb24oKXt2YXIgYT1kLmluZGV4T2YoYyk7YT4tMSYmZC5zcGxpY2UoYSwxKX07c2V0VGltZW91dChlLGNiKX19ZnVuY3Rpb24gVShhKXtmb3IodmFyIGI9YS5zcmNFdmVudC5jbGllbnRYLGM9YS5zcmNFdmVudC5jbGllbnRZLGQ9MDtkPHRoaXMubGFzdFRvdWNoZXMubGVuZ3RoO2QrKyl7dmFyIGU9dGhpcy5sYXN0VG91Y2hlc1tkXSxmPU1hdGguYWJzKGItZS54KSxnPU1hdGguYWJzKGMtZS55KTtpZihkYj49ZiYmZGI+PWcpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gVihhLGIpe3RoaXMubWFuYWdlcj1hLHRoaXMuc2V0KGIpfWZ1bmN0aW9uIFcoYSl7aWYocChhLGpiKSlyZXR1cm4gamI7dmFyIGI9cChhLGtiKSxjPXAoYSxsYik7cmV0dXJuIGImJmM/amI6Ynx8Yz9iP2tiOmxiOnAoYSxpYik/aWI6aGJ9ZnVuY3Rpb24gWCgpe2lmKCFmYilyZXR1cm4hMTt2YXIgYj17fSxjPWEuQ1NTJiZhLkNTUy5zdXBwb3J0cztyZXR1cm5bImF1dG8iLCJtYW5pcHVsYXRpb24iLCJwYW4teSIsInBhbi14IiwicGFuLXggcGFuLXkiLCJub25lIl0uZm9yRWFjaChmdW5jdGlvbihkKXtiW2RdPWM/YS5DU1Muc3VwcG9ydHMoInRvdWNoLWFjdGlvbiIsZCk6ITB9KSxifWZ1bmN0aW9uIFkoYSl7dGhpcy5vcHRpb25zPWxhKHt9LHRoaXMuZGVmYXVsdHMsYXx8e30pLHRoaXMuaWQ9digpLHRoaXMubWFuYWdlcj1udWxsLHRoaXMub3B0aW9ucy5lbmFibGU9bCh0aGlzLm9wdGlvbnMuZW5hYmxlLCEwKSx0aGlzLnN0YXRlPW5iLHRoaXMuc2ltdWx0YW5lb3VzPXt9LHRoaXMucmVxdWlyZUZhaWw9W119ZnVuY3Rpb24gWihhKXtyZXR1cm4gYSZzYj8iY2FuY2VsIjphJnFiPyJlbmQiOmEmcGI/Im1vdmUiOmEmb2I/InN0YXJ0IjoiIn1mdW5jdGlvbiAkKGEpe3JldHVybiBhPT1NYT8iZG93biI6YT09TGE/InVwIjphPT1KYT8ibGVmdCI6YT09S2E/InJpZ2h0IjoiIn1mdW5jdGlvbiBfKGEsYil7dmFyIGM9Yi5tYW5hZ2VyO3JldHVybiBjP2MuZ2V0KGEpOmF9ZnVuY3Rpb24gYWEoKXtZLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBiYSgpe2FhLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnBYPW51bGwsdGhpcy5wWT1udWxsfWZ1bmN0aW9uIGNhKCl7YWEuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGRhKCl7WS5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fdGltZXI9bnVsbCx0aGlzLl9pbnB1dD1udWxsfWZ1bmN0aW9uIGVhKCl7YWEuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGZhKCl7YWEuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGdhKCl7WS5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5wVGltZT0hMSx0aGlzLnBDZW50ZXI9ITEsdGhpcy5fdGltZXI9bnVsbCx0aGlzLl9pbnB1dD1udWxsLHRoaXMuY291bnQ9MH1mdW5jdGlvbiBoYShhLGIpe3JldHVybiBiPWJ8fHt9LGIucmVjb2duaXplcnM9bChiLnJlY29nbml6ZXJzLGhhLmRlZmF1bHRzLnByZXNldCksbmV3IGlhKGEsYil9ZnVuY3Rpb24gaWEoYSxiKXt0aGlzLm9wdGlvbnM9bGEoe30saGEuZGVmYXVsdHMsYnx8e30pLHRoaXMub3B0aW9ucy5pbnB1dFRhcmdldD10aGlzLm9wdGlvbnMuaW5wdXRUYXJnZXR8fGEsdGhpcy5oYW5kbGVycz17fSx0aGlzLnNlc3Npb249e30sdGhpcy5yZWNvZ25pemVycz1bXSx0aGlzLm9sZENzc1Byb3BzPXt9LHRoaXMuZWxlbWVudD1hLHRoaXMuaW5wdXQ9eSh0aGlzKSx0aGlzLnRvdWNoQWN0aW9uPW5ldyBWKHRoaXMsdGhpcy5vcHRpb25zLnRvdWNoQWN0aW9uKSxqYSh0aGlzLCEwKSxnKHRoaXMub3B0aW9ucy5yZWNvZ25pemVycyxmdW5jdGlvbihhKXt2YXIgYj10aGlzLmFkZChuZXcgYVswXShhWzFdKSk7YVsyXSYmYi5yZWNvZ25pemVXaXRoKGFbMl0pLGFbM10mJmIucmVxdWlyZUZhaWx1cmUoYVszXSl9LHRoaXMpfWZ1bmN0aW9uIGphKGEsYil7dmFyIGM9YS5lbGVtZW50O2lmKGMuc3R5bGUpe3ZhciBkO2coYS5vcHRpb25zLmNzc1Byb3BzLGZ1bmN0aW9uKGUsZil7ZD11KGMuc3R5bGUsZiksYj8oYS5vbGRDc3NQcm9wc1tkXT1jLnN0eWxlW2RdLGMuc3R5bGVbZF09ZSk6Yy5zdHlsZVtkXT1hLm9sZENzc1Byb3BzW2RdfHwiIn0pLGJ8fChhLm9sZENzc1Byb3BzPXt9KX19ZnVuY3Rpb24ga2EoYSxjKXt2YXIgZD1iLmNyZWF0ZUV2ZW50KCJFdmVudCIpO2QuaW5pdEV2ZW50KGEsITAsITApLGQuZ2VzdHVyZT1jLGMudGFyZ2V0LmRpc3BhdGNoRXZlbnQoZCl9dmFyIGxhLG1hPVsiIiwid2Via2l0IiwiTW96IiwiTVMiLCJtcyIsIm8iXSxuYT1iLmNyZWF0ZUVsZW1lbnQoImRpdiIpLG9hPSJmdW5jdGlvbiIscGE9TWF0aC5yb3VuZCxxYT1NYXRoLmFicyxyYT1EYXRlLm5vdztsYT0iZnVuY3Rpb24iIT10eXBlb2YgT2JqZWN0LmFzc2lnbj9mdW5jdGlvbihhKXtpZihhPT09ZHx8bnVsbD09PWEpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNvbnZlcnQgdW5kZWZpbmVkIG9yIG51bGwgdG8gb2JqZWN0Iik7Zm9yKHZhciBiPU9iamVjdChhKSxjPTE7Yzxhcmd1bWVudHMubGVuZ3RoO2MrKyl7dmFyIGU9YXJndW1lbnRzW2NdO2lmKGUhPT1kJiZudWxsIT09ZSlmb3IodmFyIGYgaW4gZSllLmhhc093blByb3BlcnR5KGYpJiYoYltmXT1lW2ZdKX1yZXR1cm4gYn06T2JqZWN0LmFzc2lnbjt2YXIgc2E9aChmdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBlPU9iamVjdC5rZXlzKGIpLGY9MDtmPGUubGVuZ3RoOykoIWN8fGMmJmFbZVtmXV09PT1kKSYmKGFbZVtmXV09YltlW2ZdXSksZisrO3JldHVybiBhfSwiZXh0ZW5kIiwiVXNlIGBhc3NpZ25gLiIpLHRhPWgoZnVuY3Rpb24oYSxiKXtyZXR1cm4gc2EoYSxiLCEwKX0sIm1lcmdlIiwiVXNlIGBhc3NpZ25gLiIpLHVhPTEsdmE9L21vYmlsZXx0YWJsZXR8aXAoYWR8aG9uZXxvZCl8YW5kcm9pZC9pLHdhPSJvbnRvdWNoc3RhcnQiaW4gYSx4YT11KGEsIlBvaW50ZXJFdmVudCIpIT09ZCx5YT13YSYmdmEudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSx6YT0idG91Y2giLEFhPSJwZW4iLEJhPSJtb3VzZSIsQ2E9ImtpbmVjdCIsRGE9MjUsRWE9MSxGYT0yLEdhPTQsSGE9OCxJYT0xLEphPTIsS2E9NCxMYT04LE1hPTE2LE5hPUphfEthLE9hPUxhfE1hLFBhPU5hfE9hLFFhPVsieCIsInkiXSxSYT1bImNsaWVudFgiLCJjbGllbnRZIl07eC5wcm90b3R5cGU9e2hhbmRsZXI6ZnVuY3Rpb24oKXt9LGluaXQ6ZnVuY3Rpb24oKXt0aGlzLmV2RWwmJm0odGhpcy5lbGVtZW50LHRoaXMuZXZFbCx0aGlzLmRvbUhhbmRsZXIpLHRoaXMuZXZUYXJnZXQmJm0odGhpcy50YXJnZXQsdGhpcy5ldlRhcmdldCx0aGlzLmRvbUhhbmRsZXIpLHRoaXMuZXZXaW4mJm0odyh0aGlzLmVsZW1lbnQpLHRoaXMuZXZXaW4sdGhpcy5kb21IYW5kbGVyKX0sZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuZXZFbCYmbih0aGlzLmVsZW1lbnQsdGhpcy5ldkVsLHRoaXMuZG9tSGFuZGxlciksdGhpcy5ldlRhcmdldCYmbih0aGlzLnRhcmdldCx0aGlzLmV2VGFyZ2V0LHRoaXMuZG9tSGFuZGxlciksdGhpcy5ldldpbiYmbih3KHRoaXMuZWxlbWVudCksdGhpcy5ldldpbix0aGlzLmRvbUhhbmRsZXIpfX07dmFyIFNhPXttb3VzZWRvd246RWEsbW91c2Vtb3ZlOkZhLG1vdXNldXA6R2F9LFRhPSJtb3VzZWRvd24iLFVhPSJtb3VzZW1vdmUgbW91c2V1cCI7aShMLHgse2hhbmRsZXI6ZnVuY3Rpb24oYSl7dmFyIGI9U2FbYS50eXBlXTtiJkVhJiYwPT09YS5idXR0b24mJih0aGlzLnByZXNzZWQ9ITApLGImRmEmJjEhPT1hLndoaWNoJiYoYj1HYSksdGhpcy5wcmVzc2VkJiYoYiZHYSYmKHRoaXMucHJlc3NlZD0hMSksdGhpcy5jYWxsYmFjayh0aGlzLm1hbmFnZXIsYix7cG9pbnRlcnM6W2FdLGNoYW5nZWRQb2ludGVyczpbYV0scG9pbnRlclR5cGU6QmEsc3JjRXZlbnQ6YX0pKX19KTt2YXIgVmE9e3BvaW50ZXJkb3duOkVhLHBvaW50ZXJtb3ZlOkZhLHBvaW50ZXJ1cDpHYSxwb2ludGVyY2FuY2VsOkhhLHBvaW50ZXJvdXQ6SGF9LFdhPXsyOnphLDM6QWEsNDpCYSw1OkNhfSxYYT0icG9pbnRlcmRvd24iLFlhPSJwb2ludGVybW92ZSBwb2ludGVydXAgcG9pbnRlcmNhbmNlbCI7YS5NU1BvaW50ZXJFdmVudCYmIWEuUG9pbnRlckV2ZW50JiYoWGE9Ik1TUG9pbnRlckRvd24iLFlhPSJNU1BvaW50ZXJNb3ZlIE1TUG9pbnRlclVwIE1TUG9pbnRlckNhbmNlbCIpLGkoTSx4LHtoYW5kbGVyOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuc3RvcmUsYz0hMSxkPWEudHlwZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoIm1zIiwiIiksZT1WYVtkXSxmPVdhW2EucG9pbnRlclR5cGVdfHxhLnBvaW50ZXJUeXBlLGc9Zj09emEsaD1yKGIsYS5wb2ludGVySWQsInBvaW50ZXJJZCIpO2UmRWEmJigwPT09YS5idXR0b258fGcpPzA+aCYmKGIucHVzaChhKSxoPWIubGVuZ3RoLTEpOmUmKEdhfEhhKSYmKGM9ITApLDA+aHx8KGJbaF09YSx0aGlzLmNhbGxiYWNrKHRoaXMubWFuYWdlcixlLHtwb2ludGVyczpiLGNoYW5nZWRQb2ludGVyczpbYV0scG9pbnRlclR5cGU6ZixzcmNFdmVudDphfSksYyYmYi5zcGxpY2UoaCwxKSl9fSk7dmFyIFphPXt0b3VjaHN0YXJ0OkVhLHRvdWNobW92ZTpGYSx0b3VjaGVuZDpHYSx0b3VjaGNhbmNlbDpIYX0sJGE9InRvdWNoc3RhcnQiLF9hPSJ0b3VjaHN0YXJ0IHRvdWNobW92ZSB0b3VjaGVuZCB0b3VjaGNhbmNlbCI7aShOLHgse2hhbmRsZXI6ZnVuY3Rpb24oYSl7dmFyIGI9WmFbYS50eXBlXTtpZihiPT09RWEmJih0aGlzLnN0YXJ0ZWQ9ITApLHRoaXMuc3RhcnRlZCl7dmFyIGM9Ty5jYWxsKHRoaXMsYSxiKTtiJihHYXxIYSkmJmNbMF0ubGVuZ3RoLWNbMV0ubGVuZ3RoPT09MCYmKHRoaXMuc3RhcnRlZD0hMSksdGhpcy5jYWxsYmFjayh0aGlzLm1hbmFnZXIsYix7cG9pbnRlcnM6Y1swXSxjaGFuZ2VkUG9pbnRlcnM6Y1sxXSxwb2ludGVyVHlwZTp6YSxzcmNFdmVudDphfSl9fX0pO3ZhciBhYj17dG91Y2hzdGFydDpFYSx0b3VjaG1vdmU6RmEsdG91Y2hlbmQ6R2EsdG91Y2hjYW5jZWw6SGF9LGJiPSJ0b3VjaHN0YXJ0IHRvdWNobW92ZSB0b3VjaGVuZCB0b3VjaGNhbmNlbCI7aShQLHgse2hhbmRsZXI6ZnVuY3Rpb24oYSl7dmFyIGI9YWJbYS50eXBlXSxjPVEuY2FsbCh0aGlzLGEsYik7YyYmdGhpcy5jYWxsYmFjayh0aGlzLm1hbmFnZXIsYix7cG9pbnRlcnM6Y1swXSxjaGFuZ2VkUG9pbnRlcnM6Y1sxXSxwb2ludGVyVHlwZTp6YSxzcmNFdmVudDphfSl9fSk7dmFyIGNiPTI1MDAsZGI9MjU7aShSLHgse2hhbmRsZXI6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWMucG9pbnRlclR5cGU9PXphLGU9Yy5wb2ludGVyVHlwZT09QmE7aWYoIShlJiZjLnNvdXJjZUNhcGFiaWxpdGllcyYmYy5zb3VyY2VDYXBhYmlsaXRpZXMuZmlyZXNUb3VjaEV2ZW50cykpe2lmKGQpUy5jYWxsKHRoaXMsYixjKTtlbHNlIGlmKGUmJlUuY2FsbCh0aGlzLGMpKXJldHVybjt0aGlzLmNhbGxiYWNrKGEsYixjKX19LGRlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLnRvdWNoLmRlc3Ryb3koKSx0aGlzLm1vdXNlLmRlc3Ryb3koKX19KTt2YXIgZWI9dShuYS5zdHlsZSwidG91Y2hBY3Rpb24iKSxmYj1lYiE9PWQsZ2I9ImNvbXB1dGUiLGhiPSJhdXRvIixpYj0ibWFuaXB1bGF0aW9uIixqYj0ibm9uZSIsa2I9InBhbi14IixsYj0icGFuLXkiLG1iPVgoKTtWLnByb3RvdHlwZT17c2V0OmZ1bmN0aW9uKGEpe2E9PWdiJiYoYT10aGlzLmNvbXB1dGUoKSksZmImJnRoaXMubWFuYWdlci5lbGVtZW50LnN0eWxlJiZtYlthXSYmKHRoaXMubWFuYWdlci5lbGVtZW50LnN0eWxlW2ViXT1hKSx0aGlzLmFjdGlvbnM9YS50b0xvd2VyQ2FzZSgpLnRyaW0oKX0sdXBkYXRlOmZ1bmN0aW9uKCl7dGhpcy5zZXQodGhpcy5tYW5hZ2VyLm9wdGlvbnMudG91Y2hBY3Rpb24pfSxjb21wdXRlOmZ1bmN0aW9uKCl7dmFyIGE9W107cmV0dXJuIGcodGhpcy5tYW5hZ2VyLnJlY29nbml6ZXJzLGZ1bmN0aW9uKGIpe2soYi5vcHRpb25zLmVuYWJsZSxbYl0pJiYoYT1hLmNvbmNhdChiLmdldFRvdWNoQWN0aW9uKCkpKX0pLFcoYS5qb2luKCIgIikpfSxwcmV2ZW50RGVmYXVsdHM6ZnVuY3Rpb24oYSl7dmFyIGI9YS5zcmNFdmVudCxjPWEub2Zmc2V0RGlyZWN0aW9uO2lmKHRoaXMubWFuYWdlci5zZXNzaW9uLnByZXZlbnRlZClyZXR1cm4gdm9pZCBiLnByZXZlbnREZWZhdWx0KCk7dmFyIGQ9dGhpcy5hY3Rpb25zLGU9cChkLGpiKSYmIW1iW2piXSxmPXAoZCxsYikmJiFtYltsYl0sZz1wKGQsa2IpJiYhbWJba2JdO2lmKGUpe3ZhciBoPTE9PT1hLnBvaW50ZXJzLmxlbmd0aCxpPWEuZGlzdGFuY2U8MixqPWEuZGVsdGFUaW1lPDI1MDtpZihoJiZpJiZqKXJldHVybn1yZXR1cm4gZyYmZj92b2lkIDA6ZXx8ZiYmYyZOYXx8ZyYmYyZPYT90aGlzLnByZXZlbnRTcmMoYik6dm9pZCAwfSxwcmV2ZW50U3JjOmZ1bmN0aW9uKGEpe3RoaXMubWFuYWdlci5zZXNzaW9uLnByZXZlbnRlZD0hMCxhLnByZXZlbnREZWZhdWx0KCl9fTt2YXIgbmI9MSxvYj0yLHBiPTQscWI9OCxyYj1xYixzYj0xNix0Yj0zMjtZLnByb3RvdHlwZT17ZGVmYXVsdHM6e30sc2V0OmZ1bmN0aW9uKGEpe3JldHVybiBsYSh0aGlzLm9wdGlvbnMsYSksdGhpcy5tYW5hZ2VyJiZ0aGlzLm1hbmFnZXIudG91Y2hBY3Rpb24udXBkYXRlKCksdGhpc30scmVjb2duaXplV2l0aDpmdW5jdGlvbihhKXtpZihmKGEsInJlY29nbml6ZVdpdGgiLHRoaXMpKXJldHVybiB0aGlzO3ZhciBiPXRoaXMuc2ltdWx0YW5lb3VzO3JldHVybiBhPV8oYSx0aGlzKSxiW2EuaWRdfHwoYlthLmlkXT1hLGEucmVjb2duaXplV2l0aCh0aGlzKSksdGhpc30sZHJvcFJlY29nbml6ZVdpdGg6ZnVuY3Rpb24oYSl7cmV0dXJuIGYoYSwiZHJvcFJlY29nbml6ZVdpdGgiLHRoaXMpP3RoaXM6KGE9XyhhLHRoaXMpLGRlbGV0ZSB0aGlzLnNpbXVsdGFuZW91c1thLmlkXSx0aGlzKX0scmVxdWlyZUZhaWx1cmU6ZnVuY3Rpb24oYSl7aWYoZihhLCJyZXF1aXJlRmFpbHVyZSIsdGhpcykpcmV0dXJuIHRoaXM7dmFyIGI9dGhpcy5yZXF1aXJlRmFpbDtyZXR1cm4gYT1fKGEsdGhpcyksLTE9PT1yKGIsYSkmJihiLnB1c2goYSksYS5yZXF1aXJlRmFpbHVyZSh0aGlzKSksdGhpc30sZHJvcFJlcXVpcmVGYWlsdXJlOmZ1bmN0aW9uKGEpe2lmKGYoYSwiZHJvcFJlcXVpcmVGYWlsdXJlIix0aGlzKSlyZXR1cm4gdGhpczthPV8oYSx0aGlzKTt2YXIgYj1yKHRoaXMucmVxdWlyZUZhaWwsYSk7cmV0dXJuIGI+LTEmJnRoaXMucmVxdWlyZUZhaWwuc3BsaWNlKGIsMSksdGhpc30saGFzUmVxdWlyZUZhaWx1cmVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVxdWlyZUZhaWwubGVuZ3RoPjB9LGNhblJlY29nbml6ZVdpdGg6ZnVuY3Rpb24oYSl7cmV0dXJuISF0aGlzLnNpbXVsdGFuZW91c1thLmlkXX0sZW1pdDpmdW5jdGlvbihhKXtmdW5jdGlvbiBiKGIpe2MubWFuYWdlci5lbWl0KGIsYSl9dmFyIGM9dGhpcyxkPXRoaXMuc3RhdGU7cWI+ZCYmYihjLm9wdGlvbnMuZXZlbnQrWihkKSksYihjLm9wdGlvbnMuZXZlbnQpLGEuYWRkaXRpb25hbEV2ZW50JiZiKGEuYWRkaXRpb25hbEV2ZW50KSxkPj1xYiYmYihjLm9wdGlvbnMuZXZlbnQrWihkKSl9LHRyeUVtaXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuY2FuRW1pdCgpP3RoaXMuZW1pdChhKTp2b2lkKHRoaXMuc3RhdGU9dGIpfSxjYW5FbWl0OmZ1bmN0aW9uKCl7Zm9yKHZhciBhPTA7YTx0aGlzLnJlcXVpcmVGYWlsLmxlbmd0aDspe2lmKCEodGhpcy5yZXF1aXJlRmFpbFthXS5zdGF0ZSYodGJ8bmIpKSlyZXR1cm4hMTthKyt9cmV0dXJuITB9LHJlY29nbml6ZTpmdW5jdGlvbihhKXt2YXIgYj1sYSh7fSxhKTtyZXR1cm4gayh0aGlzLm9wdGlvbnMuZW5hYmxlLFt0aGlzLGJdKT8odGhpcy5zdGF0ZSYocmJ8c2J8dGIpJiYodGhpcy5zdGF0ZT1uYiksdGhpcy5zdGF0ZT10aGlzLnByb2Nlc3MoYiksdm9pZCh0aGlzLnN0YXRlJihvYnxwYnxxYnxzYikmJnRoaXMudHJ5RW1pdChiKSkpOih0aGlzLnJlc2V0KCksdm9pZCh0aGlzLnN0YXRlPXRiKSl9LHByb2Nlc3M6ZnVuY3Rpb24oYSl7fSxnZXRUb3VjaEFjdGlvbjpmdW5jdGlvbigpe30scmVzZXQ6ZnVuY3Rpb24oKXt9fSxpKGFhLFkse2RlZmF1bHRzOntwb2ludGVyczoxfSxhdHRyVGVzdDpmdW5jdGlvbihhKXt2YXIgYj10aGlzLm9wdGlvbnMucG9pbnRlcnM7cmV0dXJuIDA9PT1ifHxhLnBvaW50ZXJzLmxlbmd0aD09PWJ9LHByb2Nlc3M6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5zdGF0ZSxjPWEuZXZlbnRUeXBlLGQ9YiYob2J8cGIpLGU9dGhpcy5hdHRyVGVzdChhKTtyZXR1cm4gZCYmKGMmSGF8fCFlKT9ifHNiOmR8fGU/YyZHYT9ifHFiOmImb2I/YnxwYjpvYjp0Yn19KSxpKGJhLGFhLHtkZWZhdWx0czp7ZXZlbnQ6InBhbiIsdGhyZXNob2xkOjEwLHBvaW50ZXJzOjEsZGlyZWN0aW9uOlBhfSxnZXRUb3VjaEFjdGlvbjpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3B0aW9ucy5kaXJlY3Rpb24sYj1bXTtyZXR1cm4gYSZOYSYmYi5wdXNoKGxiKSxhJk9hJiZiLnB1c2goa2IpLGJ9LGRpcmVjdGlvblRlc3Q6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5vcHRpb25zLGM9ITAsZD1hLmRpc3RhbmNlLGU9YS5kaXJlY3Rpb24sZj1hLmRlbHRhWCxnPWEuZGVsdGFZO3JldHVybiBlJmIuZGlyZWN0aW9ufHwoYi5kaXJlY3Rpb24mTmE/KGU9MD09PWY/SWE6MD5mP0phOkthLGM9ZiE9dGhpcy5wWCxkPU1hdGguYWJzKGEuZGVsdGFYKSk6KGU9MD09PWc/SWE6MD5nP0xhOk1hLGM9ZyE9dGhpcy5wWSxkPU1hdGguYWJzKGEuZGVsdGFZKSkpLGEuZGlyZWN0aW9uPWUsYyYmZD5iLnRocmVzaG9sZCYmZSZiLmRpcmVjdGlvbn0sYXR0clRlc3Q6ZnVuY3Rpb24oYSl7cmV0dXJuIGFhLnByb3RvdHlwZS5hdHRyVGVzdC5jYWxsKHRoaXMsYSkmJih0aGlzLnN0YXRlJm9ifHwhKHRoaXMuc3RhdGUmb2IpJiZ0aGlzLmRpcmVjdGlvblRlc3QoYSkpfSxlbWl0OmZ1bmN0aW9uKGEpe3RoaXMucFg9YS5kZWx0YVgsdGhpcy5wWT1hLmRlbHRhWTt2YXIgYj0kKGEuZGlyZWN0aW9uKTtiJiYoYS5hZGRpdGlvbmFsRXZlbnQ9dGhpcy5vcHRpb25zLmV2ZW50K2IpLHRoaXMuX3N1cGVyLmVtaXQuY2FsbCh0aGlzLGEpfX0pLGkoY2EsYWEse2RlZmF1bHRzOntldmVudDoicGluY2giLHRocmVzaG9sZDowLHBvaW50ZXJzOjJ9LGdldFRvdWNoQWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuW2piXX0sYXR0clRlc3Q6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuX3N1cGVyLmF0dHJUZXN0LmNhbGwodGhpcyxhKSYmKE1hdGguYWJzKGEuc2NhbGUtMSk+dGhpcy5vcHRpb25zLnRocmVzaG9sZHx8dGhpcy5zdGF0ZSZvYil9LGVtaXQ6ZnVuY3Rpb24oYSl7aWYoMSE9PWEuc2NhbGUpe3ZhciBiPWEuc2NhbGU8MT8iaW4iOiJvdXQiO2EuYWRkaXRpb25hbEV2ZW50PXRoaXMub3B0aW9ucy5ldmVudCtifXRoaXMuX3N1cGVyLmVtaXQuY2FsbCh0aGlzLGEpfX0pLGkoZGEsWSx7ZGVmYXVsdHM6e2V2ZW50OiJwcmVzcyIscG9pbnRlcnM6MSx0aW1lOjI1MSx0aHJlc2hvbGQ6OX0sZ2V0VG91Y2hBY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm5baGJdfSxwcm9jZXNzOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMub3B0aW9ucyxjPWEucG9pbnRlcnMubGVuZ3RoPT09Yi5wb2ludGVycyxkPWEuZGlzdGFuY2U8Yi50aHJlc2hvbGQsZj1hLmRlbHRhVGltZT5iLnRpbWU7aWYodGhpcy5faW5wdXQ9YSwhZHx8IWN8fGEuZXZlbnRUeXBlJihHYXxIYSkmJiFmKXRoaXMucmVzZXQoKTtlbHNlIGlmKGEuZXZlbnRUeXBlJkVhKXRoaXMucmVzZXQoKSx0aGlzLl90aW1lcj1lKGZ1bmN0aW9uKCl7dGhpcy5zdGF0ZT1yYix0aGlzLnRyeUVtaXQoKX0sYi50aW1lLHRoaXMpO2Vsc2UgaWYoYS5ldmVudFR5cGUmR2EpcmV0dXJuIHJiO3JldHVybiB0Yn0scmVzZXQ6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy5fdGltZXIpfSxlbWl0OmZ1bmN0aW9uKGEpe3RoaXMuc3RhdGU9PT1yYiYmKGEmJmEuZXZlbnRUeXBlJkdhP3RoaXMubWFuYWdlci5lbWl0KHRoaXMub3B0aW9ucy5ldmVudCsidXAiLGEpOih0aGlzLl9pbnB1dC50aW1lU3RhbXA9cmEoKSx0aGlzLm1hbmFnZXIuZW1pdCh0aGlzLm9wdGlvbnMuZXZlbnQsdGhpcy5faW5wdXQpKSl9fSksaShlYSxhYSx7ZGVmYXVsdHM6e2V2ZW50OiJyb3RhdGUiLHRocmVzaG9sZDowLHBvaW50ZXJzOjJ9LGdldFRvdWNoQWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuW2piXX0sYXR0clRlc3Q6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuX3N1cGVyLmF0dHJUZXN0LmNhbGwodGhpcyxhKSYmKE1hdGguYWJzKGEucm90YXRpb24pPnRoaXMub3B0aW9ucy50aHJlc2hvbGR8fHRoaXMuc3RhdGUmb2IpfX0pLGkoZmEsYWEse2RlZmF1bHRzOntldmVudDoic3dpcGUiLHRocmVzaG9sZDoxMCx2ZWxvY2l0eTouMyxkaXJlY3Rpb246TmF8T2EscG9pbnRlcnM6MX0sZ2V0VG91Y2hBY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm4gYmEucHJvdG90eXBlLmdldFRvdWNoQWN0aW9uLmNhbGwodGhpcyl9LGF0dHJUZXN0OmZ1bmN0aW9uKGEpe3ZhciBiLGM9dGhpcy5vcHRpb25zLmRpcmVjdGlvbjtyZXR1cm4gYyYoTmF8T2EpP2I9YS5vdmVyYWxsVmVsb2NpdHk6YyZOYT9iPWEub3ZlcmFsbFZlbG9jaXR5WDpjJk9hJiYoYj1hLm92ZXJhbGxWZWxvY2l0eVkpLHRoaXMuX3N1cGVyLmF0dHJUZXN0LmNhbGwodGhpcyxhKSYmYyZhLm9mZnNldERpcmVjdGlvbiYmYS5kaXN0YW5jZT50aGlzLm9wdGlvbnMudGhyZXNob2xkJiZhLm1heFBvaW50ZXJzPT10aGlzLm9wdGlvbnMucG9pbnRlcnMmJnFhKGIpPnRoaXMub3B0aW9ucy52ZWxvY2l0eSYmYS5ldmVudFR5cGUmR2F9LGVtaXQ6ZnVuY3Rpb24oYSl7dmFyIGI9JChhLm9mZnNldERpcmVjdGlvbik7YiYmdGhpcy5tYW5hZ2VyLmVtaXQodGhpcy5vcHRpb25zLmV2ZW50K2IsYSksdGhpcy5tYW5hZ2VyLmVtaXQodGhpcy5vcHRpb25zLmV2ZW50LGEpfX0pLGkoZ2EsWSx7ZGVmYXVsdHM6e2V2ZW50OiJ0YXAiLHBvaW50ZXJzOjEsdGFwczoxLGludGVydmFsOjMwMCx0aW1lOjI1MCx0aHJlc2hvbGQ6OSxwb3NUaHJlc2hvbGQ6MTB9LGdldFRvdWNoQWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuW2liXX0scHJvY2VzczpmdW5jdGlvbihhKXt2YXIgYj10aGlzLm9wdGlvbnMsYz1hLnBvaW50ZXJzLmxlbmd0aD09PWIucG9pbnRlcnMsZD1hLmRpc3RhbmNlPGIudGhyZXNob2xkLGY9YS5kZWx0YVRpbWU8Yi50aW1lO2lmKHRoaXMucmVzZXQoKSxhLmV2ZW50VHlwZSZFYSYmMD09PXRoaXMuY291bnQpcmV0dXJuIHRoaXMuZmFpbFRpbWVvdXQoKTtpZihkJiZmJiZjKXtpZihhLmV2ZW50VHlwZSE9R2EpcmV0dXJuIHRoaXMuZmFpbFRpbWVvdXQoKTt2YXIgZz10aGlzLnBUaW1lP2EudGltZVN0YW1wLXRoaXMucFRpbWU8Yi5pbnRlcnZhbDohMCxoPSF0aGlzLnBDZW50ZXJ8fEgodGhpcy5wQ2VudGVyLGEuY2VudGVyKTxiLnBvc1RocmVzaG9sZDt0aGlzLnBUaW1lPWEudGltZVN0YW1wLHRoaXMucENlbnRlcj1hLmNlbnRlcixoJiZnP3RoaXMuY291bnQrPTE6dGhpcy5jb3VudD0xLHRoaXMuX2lucHV0PWE7dmFyIGk9dGhpcy5jb3VudCViLnRhcHM7aWYoMD09PWkpcmV0dXJuIHRoaXMuaGFzUmVxdWlyZUZhaWx1cmVzKCk/KHRoaXMuX3RpbWVyPWUoZnVuY3Rpb24oKXt0aGlzLnN0YXRlPXJiLHRoaXMudHJ5RW1pdCgpfSxiLmludGVydmFsLHRoaXMpLG9iKTpyYn1yZXR1cm4gdGJ9LGZhaWxUaW1lb3V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3RpbWVyPWUoZnVuY3Rpb24oKXt0aGlzLnN0YXRlPXRifSx0aGlzLm9wdGlvbnMuaW50ZXJ2YWwsdGhpcyksdGJ9LHJlc2V0OmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVyKX0sZW1pdDpmdW5jdGlvbigpe3RoaXMuc3RhdGU9PXJiJiYodGhpcy5faW5wdXQudGFwQ291bnQ9dGhpcy5jb3VudCx0aGlzLm1hbmFnZXIuZW1pdCh0aGlzLm9wdGlvbnMuZXZlbnQsdGhpcy5faW5wdXQpKX19KSxoYS5WRVJTSU9OPSIyLjAuOCIsaGEuZGVmYXVsdHM9e2RvbUV2ZW50czohMSx0b3VjaEFjdGlvbjpnYixlbmFibGU6ITAsaW5wdXRUYXJnZXQ6bnVsbCxpbnB1dENsYXNzOm51bGwscHJlc2V0OltbZWEse2VuYWJsZTohMX1dLFtjYSx7ZW5hYmxlOiExfSxbInJvdGF0ZSJdXSxbZmEse2RpcmVjdGlvbjpOYX1dLFtiYSx7ZGlyZWN0aW9uOk5hfSxbInN3aXBlIl1dLFtnYV0sW2dhLHtldmVudDoiZG91YmxldGFwIix0YXBzOjJ9LFsidGFwIl1dLFtkYV1dLGNzc1Byb3BzOnt1c2VyU2VsZWN0OiJub25lIix0b3VjaFNlbGVjdDoibm9uZSIsdG91Y2hDYWxsb3V0OiJub25lIixjb250ZW50Wm9vbWluZzoibm9uZSIsdXNlckRyYWc6Im5vbmUiLHRhcEhpZ2hsaWdodENvbG9yOiJyZ2JhKDAsMCwwLDApIn19O3ZhciB1Yj0xLHZiPTI7aWEucHJvdG90eXBlPXtzZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGxhKHRoaXMub3B0aW9ucyxhKSxhLnRvdWNoQWN0aW9uJiZ0aGlzLnRvdWNoQWN0aW9uLnVwZGF0ZSgpLGEuaW5wdXRUYXJnZXQmJih0aGlzLmlucHV0LmRlc3Ryb3koKSx0aGlzLmlucHV0LnRhcmdldD1hLmlucHV0VGFyZ2V0LHRoaXMuaW5wdXQuaW5pdCgpKSx0aGlzfSxzdG9wOmZ1bmN0aW9uKGEpe3RoaXMuc2Vzc2lvbi5zdG9wcGVkPWE/dmI6dWJ9LHJlY29nbml6ZTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLnNlc3Npb247aWYoIWIuc3RvcHBlZCl7dGhpcy50b3VjaEFjdGlvbi5wcmV2ZW50RGVmYXVsdHMoYSk7dmFyIGMsZD10aGlzLnJlY29nbml6ZXJzLGU9Yi5jdXJSZWNvZ25pemVyOyghZXx8ZSYmZS5zdGF0ZSZyYikmJihlPWIuY3VyUmVjb2duaXplcj1udWxsKTtmb3IodmFyIGY9MDtmPGQubGVuZ3RoOyljPWRbZl0sYi5zdG9wcGVkPT09dmJ8fGUmJmMhPWUmJiFjLmNhblJlY29nbml6ZVdpdGgoZSk/Yy5yZXNldCgpOmMucmVjb2duaXplKGEpLCFlJiZjLnN0YXRlJihvYnxwYnxxYikmJihlPWIuY3VyUmVjb2duaXplcj1jKSxmKyt9fSxnZXQ6ZnVuY3Rpb24oYSl7aWYoYSBpbnN0YW5jZW9mIFkpcmV0dXJuIGE7Zm9yKHZhciBiPXRoaXMucmVjb2duaXplcnMsYz0wO2M8Yi5sZW5ndGg7YysrKWlmKGJbY10ub3B0aW9ucy5ldmVudD09YSlyZXR1cm4gYltjXTtyZXR1cm4gbnVsbH0sYWRkOmZ1bmN0aW9uKGEpe2lmKGYoYSwiYWRkIix0aGlzKSlyZXR1cm4gdGhpczt2YXIgYj10aGlzLmdldChhLm9wdGlvbnMuZXZlbnQpO3JldHVybiBiJiZ0aGlzLnJlbW92ZShiKSx0aGlzLnJlY29nbml6ZXJzLnB1c2goYSksYS5tYW5hZ2VyPXRoaXMsdGhpcy50b3VjaEFjdGlvbi51cGRhdGUoKSxhfSxyZW1vdmU6ZnVuY3Rpb24oYSl7aWYoZihhLCJyZW1vdmUiLHRoaXMpKXJldHVybiB0aGlzO2lmKGE9dGhpcy5nZXQoYSkpe3ZhciBiPXRoaXMucmVjb2duaXplcnMsYz1yKGIsYSk7LTEhPT1jJiYoYi5zcGxpY2UoYywxKSx0aGlzLnRvdWNoQWN0aW9uLnVwZGF0ZSgpKX1yZXR1cm4gdGhpc30sb246ZnVuY3Rpb24oYSxiKXtpZihhIT09ZCYmYiE9PWQpe3ZhciBjPXRoaXMuaGFuZGxlcnM7cmV0dXJuIGcocShhKSxmdW5jdGlvbihhKXtjW2FdPWNbYV18fFtdLGNbYV0ucHVzaChiKX0pLHRoaXN9fSxvZmY6ZnVuY3Rpb24oYSxiKXtpZihhIT09ZCl7dmFyIGM9dGhpcy5oYW5kbGVycztyZXR1cm4gZyhxKGEpLGZ1bmN0aW9uKGEpe2I/Y1thXSYmY1thXS5zcGxpY2UocihjW2FdLGIpLDEpOmRlbGV0ZSBjW2FdfSksdGhpc319LGVtaXQ6ZnVuY3Rpb24oYSxiKXt0aGlzLm9wdGlvbnMuZG9tRXZlbnRzJiZrYShhLGIpO3ZhciBjPXRoaXMuaGFuZGxlcnNbYV0mJnRoaXMuaGFuZGxlcnNbYV0uc2xpY2UoKTtpZihjJiZjLmxlbmd0aCl7Yi50eXBlPWEsYi5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe2Iuc3JjRXZlbnQucHJldmVudERlZmF1bHQoKX07Zm9yKHZhciBkPTA7ZDxjLmxlbmd0aDspY1tkXShiKSxkKyt9fSxkZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50JiZqYSh0aGlzLCExKSx0aGlzLmhhbmRsZXJzPXt9LHRoaXMuc2Vzc2lvbj17fSx0aGlzLmlucHV0LmRlc3Ryb3koKSx0aGlzLmVsZW1lbnQ9bnVsbH19LGxhKGhhLHtJTlBVVF9TVEFSVDpFYSxJTlBVVF9NT1ZFOkZhLElOUFVUX0VORDpHYSxJTlBVVF9DQU5DRUw6SGEsU1RBVEVfUE9TU0lCTEU6bmIsU1RBVEVfQkVHQU46b2IsU1RBVEVfQ0hBTkdFRDpwYixTVEFURV9FTkRFRDpxYixTVEFURV9SRUNPR05JWkVEOnJiLFNUQVRFX0NBTkNFTExFRDpzYixTVEFURV9GQUlMRUQ6dGIsRElSRUNUSU9OX05PTkU6SWEsRElSRUNUSU9OX0xFRlQ6SmEsRElSRUNUSU9OX1JJR0hUOkthLERJUkVDVElPTl9VUDpMYSxESVJFQ1RJT05fRE9XTjpNYSxESVJFQ1RJT05fSE9SSVpPTlRBTDpOYSxESVJFQ1RJT05fVkVSVElDQUw6T2EsRElSRUNUSU9OX0FMTDpQYSxNYW5hZ2VyOmlhLElucHV0OngsVG91Y2hBY3Rpb246VixUb3VjaElucHV0OlAsTW91c2VJbnB1dDpMLFBvaW50ZXJFdmVudElucHV0Ok0sVG91Y2hNb3VzZUlucHV0OlIsU2luZ2xlVG91Y2hJbnB1dDpOLFJlY29nbml6ZXI6WSxBdHRyUmVjb2duaXplcjphYSxUYXA6Z2EsUGFuOmJhLFN3aXBlOmZhLFBpbmNoOmNhLFJvdGF0ZTplYSxQcmVzczpkYSxvbjptLG9mZjpuLGVhY2g6ZyxtZXJnZTp0YSxleHRlbmQ6c2EsYXNzaWduOmxhLGluaGVyaXQ6aSxiaW5kRm46aixwcmVmaXhlZDp1fSk7dmFyIHdiPSJ1bmRlZmluZWQiIT10eXBlb2YgYT9hOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnt9O3diLkhhbW1lcj1oYSwiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShmdW5jdGlvbigpe3JldHVybiBoYX0pOiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1oYTphW2NdPWhhfSh3aW5kb3csZG9jdW1lbnQsIkhhbW1lciIpOwpmdW5jdGlvbiB0X3BvcHVwX190cmFwRm9jdXModCl7dmFyIHQ9dC5xdWVyeVNlbGVjdG9yQWxsKCdhLCBidXR0b24sIGlucHV0Om5vdChbdHlwZT0iaGlkZGVuIl0pOm5vdCguanMtZm9ybS1zcGVjLWNvbW1lbnRzKSwgc2VsZWN0LCB0ZXh0YXJlYSwgZW1iZWQsIHZpZGVvLCBpZnJhbWUsIFt0YWJpbmRleD0iMCJdJyksZT10WzBdLG89dFt0Lmxlbmd0aC0xXTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbih0KXshZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoInQtYm9keV9wb3B1cHNob3dlZCIpfHwiVGFiIiE9PXQua2V5JiY5IT09dC5rZXlDb2RlfHwodC5zaGlmdEtleSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoInQtcG9wdXBfc2hvdyIpJiZvLmZvY3VzKCksIlRhYiIhPT10LmtleXx8dC5zaGlmdEtleXx8ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PW98fCh0LnByZXZlbnREZWZhdWx0KCksZS5mb2N1cygpKSwiVGFiIj09PXQua2V5JiZ0LnNoaWZ0S2V5JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09ZSYmKHQucHJldmVudERlZmF1bHQoKSxvLmZvY3VzKCkpKX0pfWZ1bmN0aW9uIHRfcG9wdXBfX2FkZEF0dHJpYnV0ZXNGb3JBY2Nlc3NpYmlsaXR5KHQpe3Q9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYVtocmVmPSInK3QrJyJdJyk7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0LGZ1bmN0aW9uKHQpe3QmJih0LnNldEF0dHJpYnV0ZSgicm9sZSIsImJ1dHRvbiIpLHQuc2V0QXR0cmlidXRlKCJhcmlhLWhhc3BvcHVwIiwiZGlhbG9nIikpfSl9ZnVuY3Rpb24gdF9wb3B1cF9fcmVzaXplUG9wdXAodCl7dmFyIGUsbyxwLG4sdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjIit0KTshdHx8KGU9dC5xdWVyeVNlbGVjdG9yKCIudC1wb3B1cF9fY29udGFpbmVyIikpJiYocD1nZXRDb21wdXRlZFN0eWxlKGUsbnVsbCksbz1wYXJzZUludChwLnBhZGRpbmdUb3ApfHwwLHA9cGFyc2VJbnQocC5wYWRkaW5nQm90dG9tKXx8MCxvPWUuY2xpZW50SGVpZ2h0LShvK3ApLHA9MTIwLHQ9MTA5Mz09PShuPU51bWJlcih0LmdldEF0dHJpYnV0ZSgiZGF0YS1yZWNvcmQtdHlwZSIpKSl8fDEyMT09PW4mJnQucXVlcnlTZWxlY3RvcigiLnQxMDkzIiksMzY0IT09biYmMzY1IT09bnx8KHA9MzApLDg2OCE9PW4mJjMzMSE9PW4mJjM1OCE9PW4mJjEwMTMhPT1uJiY3NDYhPT1uJiYhdHx8KHA9MCksbz53aW5kb3cuaW5uZXJIZWlnaHQtcD9lLmNsYXNzTGlzdC5hZGQoInQtcG9wdXBfX2NvbnRhaW5lci1zdGF0aWMiKTplLmNsYXNzTGlzdC5yZW1vdmUoInQtcG9wdXBfX2NvbnRhaW5lci1zdGF0aWMiKSl9ZnVuY3Rpb24gdF9wb3B1cF9fc2hvd1BvcHVwKGUpe2UmJihlLnN0eWxlLmRpc3BsYXk9ImJsb2NrIiksc2V0VGltZW91dChmdW5jdGlvbigpe2UuZm9jdXMoKTt2YXIgdD1lP2UucXVlcnlTZWxlY3RvcigiLnQtcG9wdXBfX2NvbnRhaW5lciIpOm51bGw7dCYmdC5jbGFzc0xpc3QuYWRkKCJ0LXBvcHVwX19jb250YWluZXItYW5pbWF0ZWQiKSxlJiZlLmNsYXNzTGlzdC5hZGQoInQtcG9wdXBfc2hvdyIpLHRfb25GdW5jTG9hZCgidF9wb3B1cF9fdHJhcEZvY3VzIixmdW5jdGlvbigpe3RfcG9wdXBfX3RyYXBGb2N1cyhlKX0pfSw1MCl9ZnVuY3Rpb24gdF9wb3B1cF9fYWRkQ2xhc3NPblRyaWdnZXJCdXR0b24odCxlKXt2YXIgbz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudC1wb3B1cF9fdHJpZ2dlcmVkLWJ0biIpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwobyxmdW5jdGlvbih0KXt0LmNsYXNzTGlzdC5yZW1vdmUoInQtcG9wdXBfX3RyaWdnZXJlZC1idG4iKX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24odCl7MTM9PT10LmtleUNvZGUmJih0PSEhKHQ9dC50YXJnZXQpLmNsb3Nlc3QoJ2FbaHJlZj0iJytlKyciXScpJiZ0KSYmIXdpbmRvdy5pc01vYmlsZSYmdC5jbGFzc0xpc3QuYWRkKCJ0LXBvcHVwX190cmlnZ2VyZWQtYnRuIil9KX1mdW5jdGlvbiB0X3BvcHVwX19hZGRGb2N1c09uVHJpZ2dlckJ1dHRvbigpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LXBvcHVwX190cmlnZ2VyZWQtYnRuIik7dCYmKHQuZm9jdXMoKSx0LmNsYXNzTGlzdC5yZW1vdmUoInQtcG9wdXBfX3RyaWdnZXJlZC1idG4iKSl9RWxlbWVudC5wcm90b3R5cGUubWF0Y2hlc3x8KEVsZW1lbnQucHJvdG90eXBlLm1hdGNoZXM9RWxlbWVudC5wcm90b3R5cGUubWF0Y2hlc1NlbGVjdG9yfHxFbGVtZW50LnByb3RvdHlwZS5tc01hdGNoZXNTZWxlY3Rvcnx8RWxlbWVudC5wcm90b3R5cGUubW96TWF0Y2hlc1NlbGVjdG9yfHxFbGVtZW50LnByb3RvdHlwZS53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fEVsZW1lbnQucHJvdG90eXBlLm9NYXRjaGVzU2VsZWN0b3IpLEVsZW1lbnQucHJvdG90eXBlLmNsb3Nlc3R8fChFbGVtZW50LnByb3RvdHlwZS5jbG9zZXN0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzO2UmJjE9PT1lLm5vZGVUeXBlOyl7aWYoRWxlbWVudC5wcm90b3R5cGUubWF0Y2hlcy5jYWxsKGUsdCkpcmV0dXJuIGU7ZT1lLnBhcmVudEVsZW1lbnR8fGUucGFyZW50Tm9kZX1yZXR1cm4gbnVsbH0pOwohZnVuY3Rpb24oKXt2YXIgdD0idG9vbHRpcHN0ZXIiLG09e2FuaW1hdGlvbjoiZmFkZSIsYXJyb3c6ITAsYXJyb3dDb2xvcjoiIixhdXRvQ2xvc2U6ITAsY29udGVudDpudWxsLGNvbnRlbnRBc0hUTUw6ITEsY29udGVudENsb25pbmc6ITAsZGVidWc6ITAsZGVsYXk6MjAwLG1pbldpZHRoOjAsbWF4V2lkdGg6bnVsbCxmdW5jdGlvbkluaXQ6ZnVuY3Rpb24odCxlKXt9LGZ1bmN0aW9uQmVmb3JlOmZ1bmN0aW9uKHQsZSl7ZSgpfSxmdW5jdGlvblJlYWR5OmZ1bmN0aW9uKHQsZSl7fSxmdW5jdGlvbkFmdGVyOmZ1bmN0aW9uKHQpe30saGlkZU9uQ2xpY2s6ITEsaWNvbjoiKD8pIixpY29uQ2xvbmluZzohMCxpY29uRGVza3RvcDohMSxpY29uVG91Y2g6ITEsaWNvblRoZW1lOiJ0b29sdGlwc3Rlci1pY29uIixpbnRlcmFjdGl2ZTohMSxpbnRlcmFjdGl2ZVRvbGVyYW5jZTozNTAsbXVsdGlwbGU6ITEsb2Zmc2V0WDowLG9mZnNldFk6MCxvbmx5T25lOiExLHBvc2l0aW9uOiJ0b3AiLHBvc2l0aW9uVHJhY2tlcjohMSxwb3NpdGlvblRyYWNrZXJDYWxsYmFjazpmdW5jdGlvbih0KXsiaG92ZXIiPT09dGhpcy5vcHRpb24oInRyaWdnZXIiKSYmdGhpcy5vcHRpb24oImF1dG9DbG9zZSIpJiZ0aGlzLmhpZGUoKX0scmVzdG9yYXRpb246ImN1cnJlbnQiLHNwZWVkOjM1MCx0aW1lcjowLHRoZW1lOiJ0b29sdGlwc3Rlci1kZWZhdWx0Iix0b3VjaERldmljZXM6ITAsdHJpZ2dlcjoiaG92ZXIiLHVwZGF0ZUFuaW1hdGlvbjohMH07ZnVuY3Rpb24gZih0LGUpe3RoaXMuYm9keU92ZXJmbG93WCx0aGlzLmNhbGxiYWNrcz17aGlkZTpbXSxzaG93OltdfSx0aGlzLmNoZWNrSW50ZXJ2YWw9bnVsbCx0aGlzLkNvbnRlbnQsdGhpcy5lbGVtZW50PXQsdGhpcy5lbGVtZW50UHJveHksdGhpcy5lbGVtZW50UHJveHlQb3NpdGlvbix0aGlzLmVuYWJsZWQ9ITAsdGhpcy5vcHRpb25zPWZ1bmN0aW9uKHQpe3Q9dHx8e307Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKylpZihhcmd1bWVudHNbZV0pZm9yKHZhciBvIGluIGFyZ3VtZW50c1tlXSlhcmd1bWVudHNbZV0uaGFzT3duUHJvcGVydHkobykmJih0W29dPWFyZ3VtZW50c1tlXVtvXSk7cmV0dXJuIHR9KHt9LG0sZSksdGhpcy5tb3VzZUlzT3ZlclByb3h5PSExLHRoaXMubmFtZXNwYWNlPSJ0b29sdGlwc3Rlci0iK01hdGgucm91bmQoMWU1Kk1hdGgucmFuZG9tKCkpLHRoaXMuU3RhdHVzPSJoaWRkZW4iLHRoaXMudGltZXJIaWRlPW51bGwsdGhpcy50aW1lclNob3c9bnVsbCx0aGlzLnRvb2x0aXAsdGhpcy5vcHRpb25zLmljb25UaGVtZT10aGlzLm9wdGlvbnMuaWNvblRoZW1lLnJlcGxhY2UoIi4iLCIiKSx0aGlzLm9wdGlvbnMudGhlbWU9dGhpcy5vcHRpb25zLnRoZW1lLnJlcGxhY2UoIi4iLCIiKSx0aGlzLndpbmRvd0V2ZW50cz17fSx0aGlzLmRvY3VtZW50RXZlbnRzPXt9LHRoaXMuZWxlbWVudFByb3h5RXZlbnRzPXt9LHRoaXMuX2luaXQoKX1mdW5jdGlvbiBuKHQsZSl7aWYoMDx0Lmxlbmd0aClpZigic3RyaW5nIj09dHlwZW9mIGVbMF0pZm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspe3ZhciBuPShwPShhPXRbb10pWyJ0b29sdGlwc3Rlci1ucyJdKSYmcFswXT9hW3BbMF1dOm51bGw7aWYoIW4pdGhyb3cgbmV3IEVycm9yKCJZb3UgY2FsbGVkIFRvb2x0aXBzdGVyJ3MgXCIiK2VbMF0rJyIgbWV0aG9kIG9uIGFuIHVuaW5pdGlhbGl6ZWQgZWxlbWVudCcpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBuW2VbMF1dKXRocm93IG5ldyBFcnJvcignVW5rbm93biBtZXRob2QgLnRvb2x0aXBzdGVyKCInK2VbMF0rJyIpJyk7dmFyIGk9bltlWzBdXShlWzFdLGVbMl0pO2lmKGkhPT1uKXJldHVybiB2b2lkIDB9ZWxzZSBmb3IodmFyIHM9W10scj1lWzBdJiZ2b2lkIDAhPT1lWzBdLm11bHRpcGxlLGw9ciYmZVswXS5tdWx0aXBsZXx8IXImJm0ubXVsdGlwbGUscj1lWzBdJiZ2b2lkIDAhPT1lWzBdLmRlYnVnLG89KHImJmVbMF0uZGVidWcsMCk7bzx0Lmxlbmd0aDtvKyspe3ZhciBhLHAsYz0hMSxkPW51bGw7KGM9IShwPShhPXRbb10pWyJ0b29sdGlwc3Rlci1ucyJdKXx8bD8hMDpjKSYmKGQ9bmV3IGYoYSxlWzBdKSwocD1wfHxbXSkucHVzaChkLm5hbWVzcGFjZSksYVsidG9vbHRpcHN0ZXItbnMiXT1wLGFbZC5uYW1lc3BhY2VdPWQpLHMucHVzaChkKX19ZnVuY3Rpb24gaSh0LGUpe2Zvcih2YXIgbz0hMCxuPTA7bjx0Lmxlbmd0aDtuKyspaWYodm9pZCAwPT09ZVtuXXx8dFtuXSE9PWVbbl0pcmV0dXJuIHZvaWQobz0hMSk7cmV0dXJuIG99Zi5wcm90b3R5cGU9e19pbml0OmZ1bmN0aW9uKCl7dmFyIHQsZSxvPXRoaXM7ZG9jdW1lbnQucXVlcnlTZWxlY3RvciYmKHQ9bnVsbCxvLmVsZW1lbnRbInRvb2x0aXBzdGVyLWluaXRpYWxUaXRsZSJdfHwodD1vLmVsZW1lbnQuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpLG8uZWxlbWVudFsidG9vbHRpcHN0ZXItaW5pdGlhbFRpdGxlIl09dD10fHxudWxsKSxudWxsIT09by5vcHRpb25zLmNvbnRlbnQ/by5fY29udGVudF9zZXQoby5vcHRpb25zLmNvbnRlbnQpOm8uX2NvbnRlbnRfc2V0KHQpLHZvaWQgMCE9PSh0PW8ub3B0aW9ucy5mdW5jdGlvbkluaXQuY2FsbChvLmVsZW1lbnQsby5lbGVtZW50LG8uQ29udGVudCkpJiZvLl9jb250ZW50X3NldCh0KSxvLmVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCJ0aXRsZSIpLEwoby5lbGVtZW50LCJ0b29sdGlwc3RlcmVkIiksdD0iIixvLkNvbnRlbnQmJih0PW8uQ29udGVudC5yZXBsYWNlKC8oXDwoXC8/W14+XSspPikvZywiIikpLG8uZWxlbWVudC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHQpLCF4JiZvLm9wdGlvbnMuaWNvbkRlc2t0b3B8fHgmJm8ub3B0aW9ucy5pY29uVG91Y2g/KCJzdHJpbmciPT10eXBlb2Ygby5vcHRpb25zLmljb24/KG8uZWxlbWVudFByb3h5PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSxMKG8uZWxlbWVudFByb3h5LG8ub3B0aW9ucy5pY29uVGhlbWUpLG8uZWxlbWVudFByb3h5LnRleHRDb250ZW50PW8ub3B0aW9ucy5pY29uKTpvLm9wdGlvbnMuaWNvbkNsb25pbmc/by5lbGVtZW50UHJveHk9by5vcHRpb25zLmljb24uY2xvbmVOb2RlKCEwKTpvLmVsZW1lbnRQcm94eT1vLm9wdGlvbnMuaWNvbixvLmVsZW1lbnRQcm94eS5hcHBlbmRDaGlsZChvLmVsZW1lbnQpKTpvLmVsZW1lbnRQcm94eT1vLmVsZW1lbnQsImhvdmVyIj09PW8ub3B0aW9ucy50cmlnZ2VyPyh0PWZ1bmN0aW9uKCl7cigpJiYhby5vcHRpb25zLnRvdWNoRGV2aWNlc3x8KG8ubW91c2VJc092ZXJQcm94eT0hMCxvLl9zaG93KCkpfS5iaW5kKG8pLGU9ZnVuY3Rpb24oKXtyKCkmJiFvLm9wdGlvbnMudG91Y2hEZXZpY2VzfHwoby5tb3VzZUlzT3ZlclByb3h5PSExKX0uYmluZChvKSxvLmVsZW1lbnRQcm94eUV2ZW50cy5tb3VzZWVudGVyPXQsby5lbGVtZW50UHJveHlFdmVudHMubW91c2VsZWF2ZT1lLG8uZWxlbWVudFByb3h5LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLHQpLG8uZWxlbWVudFByb3h5LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLGUpLG8uZWxlbWVudFByb3h5RXZlbnRzLmZvY3VzPXQsby5lbGVtZW50UHJveHkuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHQpLG8uZWxlbWVudFByb3h5RXZlbnRzLmJsdXI9ZSxvLmVsZW1lbnRQcm94eS5hZGRFdmVudExpc3RlbmVyKCJibHVyIixlKSx4JiZvLm9wdGlvbnMudG91Y2hEZXZpY2VzJiYodD1vLl9zaG93Tm93LmJpbmQobywiIiksby5lbGVtZW50UHJveHlFdmVudHMudG91Y2hzdGFydD10LG8uZWxlbWVudFByb3h5LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHQpKSk6ImNsaWNrIj09PW8ub3B0aW9ucy50cmlnZ2VyJiYoZT1mdW5jdGlvbigpe3IoKSYmIW8ub3B0aW9ucy50b3VjaERldmljZXN8fG8uX3Nob3coKX0uYmluZChvLCIiKSxvLmVsZW1lbnRQcm94eUV2ZW50cy5jbGljaz1lLG8uZWxlbWVudFByb3h5LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGUpKSl9LF9zaG93OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczsic2hvd24iIT09dC5TdGF0dXMmJiJhcHBlYXJpbmciIT09dC5TdGF0dXMmJih0Lm9wdGlvbnMuZGVsYXk/dC50aW1lclNob3c9c2V0VGltZW91dChmdW5jdGlvbigpeygiY2xpY2siPT09dC5vcHRpb25zLnRyaWdnZXJ8fCJob3ZlciI9PT10Lm9wdGlvbnMudHJpZ2dlciYmdC5tb3VzZUlzT3ZlclByb3h5KSYmdC5fc2hvd05vdygpfSx0Lm9wdGlvbnMuZGVsYXkpOnQuX3Nob3dOb3coKSl9LF9zaG93Tm93OmZ1bmN0aW9uKGIpe3ZhciBFPXRoaXMsUD1kb2N1bWVudC5ib2R5fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7RS50cmlnZ2VyRXZlbnQoInRpbGRhdG9vbHRpcDpzaG93IiksRS5vcHRpb25zLmZ1bmN0aW9uQmVmb3JlLmNhbGwoRS5lbGVtZW50LEUuZWxlbWVudCxmdW5jdGlvbigpe2lmKEUuZW5hYmxlZCYmbnVsbCE9PUUuQ29udGVudCl7aWYoYiYmRS5jYWxsYmFja3Muc2hvdy5wdXNoKGIpLEUuY2FsbGJhY2tzLmhpZGU9W10sY2xlYXJUaW1lb3V0KEUudGltZXJTaG93KSxFLnRpbWVyU2hvdz1udWxsLGNsZWFyVGltZW91dChFLnRpbWVySGlkZSksRS50aW1lckhpZGU9bnVsbCxFLm9wdGlvbnMub25seU9uZSlmb3IodmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRvb2x0aXBzdGVyZWQiKSxlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciBvPXRbZV07aWYobyE9PUUuZWxlbWVudClmb3IodmFyIG49b1sidG9vbHRpcHN0ZXItbnMiXSxpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciBzPW9bbltpXV0scj1zLnN0YXR1cygpLGw9cy5vcHRpb24oImF1dG9DbG9zZSIpOyJoaWRkZW4iIT09ciYmImRpc2FwcGVhcmluZyIhPT1yJiZsJiZzLmhpZGUoKX19ZnVuY3Rpb24gYSgpe0UuU3RhdHVzPSJzaG93biI7Zm9yKHZhciB0PTA7dDxFLmNhbGxiYWNrcy5zaG93Lmxlbmd0aDt0KyspRS5jYWxsYmFja3Muc2hvd1t0XS5jYWxsKEUuZWxlbWVudCk7RS5jYWxsYmFja3Muc2hvdz1bXX1mdW5jdGlvbiBwKHQpeyh0PXR8fHdpbmRvdy5ldmVudCkuc3RvcFByb3BhZ2F0aW9uKCl9dmFyIGMsZCxtLGYsdSxoLHYsdyxnLHk7ImhpZGRlbiIhPT1FLlN0YXR1cz8oYz0wLCJkaXNhcHBlYXJpbmciPT09RS5TdGF0dXM/KEUuU3RhdHVzPSJhcHBlYXJpbmciLEMoKT8oayhFLnRvb2x0aXAsInRvb2x0aXBzdGVyLWR5aW5nIiksTChFLnRvb2x0aXAsInRvb2x0aXBzdGVyLSIrRS5vcHRpb25zLmFuaW1hdGlvbisiLXNob3ciKSxFLnRvb2x0aXAuYWRkRXZlbnRMaXN0ZW5lcigiYW5pbWF0aW9uZW5kIixmdW5jdGlvbigpe2EoKX0pKTpfKEUudG9vbHRpcCxFLm9wdGlvbnMuc3BlZWQsYSkpOiJzaG93biI9PT1FLlN0YXR1cyYmYSgpKTooRS5TdGF0dXM9ImFwcGVhcmluZyIsYz1FLm9wdGlvbnMuc3BlZWQsRS5ib2R5T3ZlcmZsb3dYPWdldENvbXB1dGVkU3R5bGUoUCxudWxsKS5vdmVyZmxvd1gsUC5zdHlsZS5vdmVyZmxvd1g9ImhpZGRlbiIsZD0idG9vbHRpcHN0ZXItIitFLm9wdGlvbnMuYW5pbWF0aW9uLG09Ii13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogIitFLm9wdGlvbnMuc3BlZWQrIm1zOy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAiK0Uub3B0aW9ucy5zcGVlZCsibXM7LW1vei10cmFuc2l0aW9uLWR1cmF0aW9uOiAiK0Uub3B0aW9ucy5zcGVlZCsibXM7LW1vei1hbmltYXRpb24tZHVyYXRpb246ICIrRS5vcHRpb25zLnNwZWVkKyJtczstby10cmFuc2l0aW9uLWR1cmF0aW9uOiAiK0Uub3B0aW9ucy5zcGVlZCsibXM7LW8tYW5pbWF0aW9uLWR1cmF0aW9uOiAiK0Uub3B0aW9ucy5zcGVlZCsibXM7LW1zLXRyYW5zaXRpb24tZHVyYXRpb246ICIrRS5vcHRpb25zLnNwZWVkKyJtczstbXMtYW5pbWF0aW9uLWR1cmF0aW9uOiAiK0Uub3B0aW9ucy5zcGVlZCsibXM7dHJhbnNpdGlvbi1kdXJhdGlvbjogIitFLm9wdGlvbnMuc3BlZWQrIm1zO2FuaW1hdGlvbi1kdXJhdGlvbjogIitFLm9wdGlvbnMuc3BlZWQrIm1zOyIsdT1FLm9wdGlvbnMubWluV2lkdGg/Im1pbi13aWR0aDoiK01hdGgucm91bmQoRS5vcHRpb25zLm1pbldpZHRoKSsicHg7IjoiIix3PUUub3B0aW9ucy5tYXhXaWR0aD8ibWF4LXdpZHRoOiIrTWF0aC5yb3VuZChFLm9wdGlvbnMubWF4V2lkdGgpKyJweDsiOiIiLHk9RS5vcHRpb25zLmludGVyYWN0aXZlPyJwb2ludGVyLWV2ZW50czogYXV0bzsiOiIiLChmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5yb2xlPSJ0b29sdGlwIixMKGYsInRvb2x0aXBzdGVyLWJhc2UgIitFLm9wdGlvbnMudGhlbWUpLGYuc3R5bGU9dSsiICIrdysiICIreSsiICIrbSxmLmlubmVySFRNTD0nPGRpdiBjbGFzcz0idG9vbHRpcHN0ZXItY29udGVudCI+PC9kaXY+JyxFLnRvb2x0aXA9ZixDKCkmJkwoRS50b29sdGlwLGQpLEUuX2NvbnRlbnRfaW5zZXJ0KCksUC5hcHBlbmRDaGlsZChFLnRvb2x0aXApLEUucmVwb3NpdGlvbigpLEUub3B0aW9ucy5mdW5jdGlvblJlYWR5LmNhbGwoRS5lbGVtZW50LEUuZWxlbWVudCxFLnRvb2x0aXApLEMoKT8oTChFLnRvb2x0aXAsZCsiLXNob3ciKSxFLnRvb2x0aXAuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsZnVuY3Rpb24gdCgpe2EoKSxFLnRvb2x0aXAucmVtb3ZlRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsdCl9KSk6KEUudG9vbHRpcC5zdHlsZS5kaXNwbGF5PSJub25lIixfKEUudG9vbHRpcCxFLm9wdGlvbnMuc3BlZWQsYSkpLEUuX2ludGVydmFsX3NldCgpLHU9RS5yZXBvc2l0aW9uLmJpbmQoRSksRS53aW5kb3dFdmVudHMuc2Nyb2xsUmVzaXplPXUsd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdSksRS5vcHRpb25zLmF1dG9DbG9zZSYmKChoPUUuZG9jdW1lbnRFdmVudHMudG91Y2hDbGljaykmJihQLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixoKSxQLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGgpLEUuZG9jdW1lbnRFdmVudHMudG91Y2hDbGljaz0iIiksaD1FLmhpZGUuYmluZChFLCIiKSxFLmRvY3VtZW50RXZlbnRzLnRvdWNoQ2xpY2s9aCwiaG92ZXIiPT09RS5vcHRpb25zLnRyaWdnZXI/KHgmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtQLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGgpfSwwKSxFLm9wdGlvbnMuaW50ZXJhY3RpdmU/KHgmJkUudG9vbHRpcC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbih0KXsodD10fHx3aW5kb3cuZXZlbnQpLnN0b3BQcm9wYWdhdGlvbigpfSksdj1udWxsLGc9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodiksdj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7RS5oaWRlKCl9LEUub3B0aW9ucy5pbnRlcmFjdGl2ZVRvbGVyYW5jZSl9LmJpbmQoRSksdz1mdW5jdGlvbigpe2NsZWFyVGltZW91dCh2KX0uYmluZChFKSxFLmVsZW1lbnRQcm94eUV2ZW50cy5tb3VzZWxlYXZlYWM9ZyxFLmVsZW1lbnRQcm94eUV2ZW50cy5tb3VzZWVudGVyYWM9dyxFLmVsZW1lbnRQcm94eS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIixnKSxFLnRvb2x0aXAuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsZyksRS5lbGVtZW50UHJveHkuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsdyksRS50b29sdGlwLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLHcpLEUuZWxlbWVudFByb3h5LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLGcpLEUudG9vbHRpcC5hZGRFdmVudExpc3RlbmVyKCJibHVyIixnKSxFLmVsZW1lbnRQcm94eS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsdyksRS50b29sdGlwLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix3KSk6KGc9RS5oaWRlLmJpbmQoRSwiIiksRS5lbGVtZW50UHJveHlFdmVudHMubW91c2VsZWF2ZWFjPWcsRS5lbGVtZW50UHJveHkuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsZyksRS5lbGVtZW50UHJveHkuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsZykpLEUub3B0aW9ucy5oaWRlT25DbGljayYmKHk9RS5oaWRlLmJpbmQoRSwiIiksRS5lbGVtZW50UHJveHlFdmVudHMuY2xpY2thYz15LEUuZWxlbWVudFByb3h5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix5KSkpOiJjbGljayI9PT1FLm9wdGlvbnMudHJpZ2dlciYmKHNldFRpbWVvdXQoZnVuY3Rpb24oKXtQLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixoKSxQLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGgpfSwwKSxFLm9wdGlvbnMuaW50ZXJhY3RpdmUmJihFLnRvb2x0aXAuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHApLEUudG9vbHRpcC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixwKSkpKSksMDxFLm9wdGlvbnMudGltZXImJihFLnRpbWVySGlkZT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7RS50aW1lckhpZGU9bnVsbCxFLmhpZGUoKX0sRS5vcHRpb25zLnRpbWVyK2MpKX19KX0sX2ludGVydmFsX3NldDpmdW5jdGlvbigpe3ZhciBvPXRoaXMsbj1kb2N1bWVudC5ib2R5fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7by5jaGVja0ludGVydmFsPXNldEludGVydmFsKGZ1bmN0aW9uKCl7dmFyIHQsZTtuLmNvbnRhaW5zKG8uZWxlbWVudCkmJm4uY29udGFpbnMoby5lbGVtZW50UHJveHkpJiYiaGlkZGVuIiE9by5TdGF0dXMmJm4uY29udGFpbnMoby50b29sdGlwKT9vLm9wdGlvbnMucG9zaXRpb25UcmFja2VyJiYoZT0hMSxpKCh0PW8uX3JlcG9zaXRpb25JbmZvKG8uZWxlbWVudFByb3h5KSkuZGltZW5zaW9uLG8uZWxlbWVudFByb3h5UG9zaXRpb24uZGltZW5zaW9uKSYmKCJmaXhlZCI9PT1nZXRDb21wdXRlZFN0eWxlKG8uZWxlbWVudFByb3h5LG51bGwpLnBvc2l0aW9uP2kodC5wb3NpdGlvbixvLmVsZW1lbnRQcm94eVBvc2l0aW9uLnBvc2l0aW9uKSYmKGU9ITApOmkodC5vZmZzZXQsby5lbGVtZW50UHJveHlQb3NpdGlvbi5vZmZzZXQpJiYoZT0hMCkpLGV8fChvLnJlcG9zaXRpb24oKSxvLm9wdGlvbnMucG9zaXRpb25UcmFja2VyQ2FsbGJhY2suY2FsbChvLG8uZWxlbWVudCkpKTooInNob3duIiE9PW8uU3RhdHVzJiYiYXBwZWFyaW5nIiE9PW8uU3RhdHVzfHxvLmhpZGUoKSxvLl9pbnRlcnZhbF9jYW5jZWwoKSl9LDIwMCl9LF9pbnRlcnZhbF9jYW5jZWw6ZnVuY3Rpb24oKXtjbGVhckludGVydmFsKHRoaXMuY2hlY2tJbnRlcnZhbCksdGhpcy5jaGVja0ludGVydmFsPW51bGx9LF9jb250ZW50X3NldDpmdW5jdGlvbih0KXsib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10JiZ0aGlzLm9wdGlvbnMuY29udGVudENsb25pbmcmJih0PXQuY2xvbmVOb2RlKCEwKSksdGhpcy5Db250ZW50PXR9LF9jb250ZW50X2luc2VydDpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10LnRvb2x0aXAucXVlcnlTZWxlY3RvcigiLnRvb2x0aXBzdGVyLWNvbnRlbnQiKTsic3RyaW5nIiE9dHlwZW9mIHQuQ29udGVudHx8dC5vcHRpb25zLmNvbnRlbnRBc0hUTUw/ZS5pbm5lckhUTUw9dC5Db250ZW50OmUudGV4dENvbnRlbnQ9dC5Db250ZW50fSxfdXBkYXRlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7ZS5fY29udGVudF9zZXQodCksbnVsbCE9PWUuQ29udGVudD8iaGlkZGVuIiE9PWUuU3RhdHVzJiYoZS5fY29udGVudF9pbnNlcnQoKSxlLnJlcG9zaXRpb24oKSxlLm9wdGlvbnMudXBkYXRlQW5pbWF0aW9uJiYoQygpPyh0PSJ3aWR0aDotd2Via2l0LXRyYW5zaXRpb246IGFsbCAiK2Uub3B0aW9ucy5zcGVlZCsibXMsIHdpZHRoIDBtcywgaGVpZ2h0IDBtcywgbGVmdCAwbXMsIHRvcCAwbXMtbW96LXRyYW5zaXRpb246IGFsbCAiK2Uub3B0aW9ucy5zcGVlZCsibXMsIHdpZHRoIDBtcywgaGVpZ2h0IDBtcywgbGVmdCAwbXMsIHRvcCAwbXMtby10cmFuc2l0aW9uOiBhbGwgIitlLm9wdGlvbnMuc3BlZWQrIm1zLCB3aWR0aCAwbXMsIGhlaWdodCAwbXMsIGxlZnQgMG1zLCB0b3AgMG1zLW1zLXRyYW5zaXRpb246IGFsbCAiK2Uub3B0aW9ucy5zcGVlZCsibXMsIHdpZHRoIDBtcywgaGVpZ2h0IDBtcywgbGVmdCAwbXMsIHRvcCAwbXN0cmFuc2l0aW9uOiBhbGwgIitlLm9wdGlvbnMuc3BlZWQrIm1zLCB3aWR0aCAwbXMsIGhlaWdodCAwbXMsIGxlZnQgMG1zLCB0b3AgMG1zIixlLnRvb2x0aXAuc2V0QXR0cmlidXRlKCJzdHlsZSIsdCksTChlLnRvb2x0aXAsInRvb2x0aXBzdGVyLWNvbnRlbnQtY2hhbmdpbmciKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHQ7ImhpZGRlbiIhPT1lLlN0YXR1cyYmKGsoZS50b29sdGlwLCJ0b29sdGlwc3Rlci1jb250ZW50LWNoYW5naW5nIiksdD0iLXdlYmtpdC10cmFuc2l0aW9uOiAiK2Uub3B0aW9ucy5zcGVlZCsibXMtbW96LXRyYW5zaXRpb246ICIrZS5vcHRpb25zLnNwZWVkKyJtcy1vLXRyYW5zaXRpb246ICIrZS5vcHRpb25zLnNwZWVkKyJtcy1tcy10cmFuc2l0aW9uOiAiK2Uub3B0aW9ucy5zcGVlZCsibXN0cmFuc2l0aW9uOiAiK2Uub3B0aW9ucy5zcGVlZCsibXMiLHNldFRpbWVvdXQoZnVuY3Rpb24oKXsiaGlkZGVuIiE9PWUuU3RhdHVzJiZlLnRvb2x0aXAuc2V0QXR0cmlidXRlKCJzdHlsZSIsdCl9LGUub3B0aW9ucy5zcGVlZCkpfSxlLm9wdGlvbnMuc3BlZWQpKTplLnRvb2x0aXAuZmFkZVRvKGUub3B0aW9ucy5zcGVlZCwuNSxmdW5jdGlvbigpeyJoaWRkZW4iIT09ZS5TdGF0dXMmJmUudG9vbHRpcC5mYWRlVG8oZS5vcHRpb25zLnNwZWVkLDEpfSkpKTplLmhpZGUoKX0sX3JlcG9zaXRpb25JbmZvOmZ1bmN0aW9uKHQpe3ZhciBlPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1nZXRDb21wdXRlZFN0eWxlKHQsbnVsbCksbj10LmNsb3Nlc3QoIi50Mzk2X19hcnRib2FyZF9zY2FsZSIpLGk9KG4mJnZvaWQgMD09PXdpbmRvdy5zaG91bGRVc2VTY2FsZUZhY3RvciYmKHM9d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0ZpcmVmb3hcLyhbMC05XSspXC4vKSxpPXM/cGFyc2VJbnQoc1sxXSwxMCk6MTI2LHI9KHI9d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0Nocm9tZVwvKFswLTldKylcLi8pKSYmcGFyc2VJbnQoclsxXSwxMCl8fDAsd2luZG93LmlzT25seVNjYWxhYmxlPWk8MTI2LHdpbmRvdy5zaG91bGRVc2VTY2FsZUZhY3Rvcj0hd2luZG93LmlzT25seVNjYWxhYmxlJiYhcyYmcjw9MTI3KSx0LmNsb3Nlc3QoIi50Mzk2X19lbGVtLCAudG4tZ3JvdXAiKSkscz1uP3dpbmRvdy50bl9zY2FsZV9mYWN0b3I6MSxyPWkmJmkuc2NhbGVGYWN0b3J8fHMsbj13aW5kb3cuaXNPbmx5U2NhbGFibGUsbD0vXigoPyFjaHJvbWV8YW5kcm9pZCkuKSpzYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLGE9ZS50b3AsZT1lLmxlZnQscD0oKG58fCFuJiZsKSYmKGErPXdpbmRvdy5wYWdlWU9mZnNldCxlKz13aW5kb3cucGFnZVhPZmZzZXQpLHQuY2xvc2VzdCgiLnQzOTZfX2VsZW0iKSkscD0hIXAmJiIiIT09cC5zdHlsZS56b29tO3JldHVybiB3aW5kb3cuc2hvdWxkVXNlU2NhbGVGYWN0b3ImJihhKj1yLGUqPXIpLG58fGx8fChhKz13aW5kb3cucGFnZVlPZmZzZXQsZSs9d2luZG93LnBhZ2VYT2Zmc2V0KSx7ZGltZW5zaW9uOntoZWlnaHQ6cHx8bj90Lm9mZnNldEhlaWdodCpyOnQub2Zmc2V0SGVpZ2h0LHdpZHRoOnB8fG4/dC5vZmZzZXRXaWR0aCpyOnQub2Zmc2V0V2lkdGh9LG9mZnNldDp7dG9wOmEsbGVmdDplfSxwb3NpdGlvbjp7bGVmdDpwfHxuP3BhcnNlSW50KG8ubGVmdCwxMCkvcjpwYXJzZUludChvLmxlZnQsMTApLHRvcDpwfHxuP3BhcnNlSW50KG8udG9wLDEwKS9yOnBhcnNlSW50KG8udG9wLDEwKX19fSxoaWRlOmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMsaT1kb2N1bWVudC5ib2R5fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7ZnVuY3Rpb24gcygpe2Zvcih2YXIgdD0wO3Q8bi5jYWxsYmFja3MuaGlkZS5sZW5ndGg7dCsrKW4uY2FsbGJhY2tzLmhpZGVbdF0uY2FsbChuLmVsZW1lbnQpO24uY2FsbGJhY2tzLmhpZGU9W119ZnVuY3Rpb24gZSgpe24uU3RhdHVzPSJoaWRkZW4iLCJvYmplY3QiPT10eXBlb2Ygbi5Db250ZW50JiZudWxsIT09bi5Db250ZW50JiZuLkNvbnRlbnQmJm4uQ29udGVudC5wYXJlbnRFbGVtZW50JiYobi5Db250ZW50PW4uQ29udGVudC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKG4uQ29udGVudCkpLEgobi50b29sdGlwKSxuLnRvb2x0aXA9bnVsbDtuLndpbmRvd0V2ZW50cy5zY3JvbGxSZXNpemUmJih3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixuLndpbmRvd0V2ZW50cy5zY3JvbGxSZXNpemUpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLG4ud2luZG93RXZlbnRzLnNjcm9sbFJlc2l6ZSksbi53aW5kb3dFdmVudHMuc2Nyb2xsUmVzaXplPSIiKTt2YXIgdD1uLmRvY3VtZW50RXZlbnRzLnRvdWNoQ2xpY2ssdD0odCYmKGkucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHQpLGkucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdCksbi5kb2N1bWVudEV2ZW50cy50b3VjaENsaWNrPSIiKSxpLnN0eWxlLm92ZXJmbG93WD1uLmJvZHlPdmVyZmxvd1gsbi5lbGVtZW50UHJveHlFdmVudHMubW91c2VsZWF2ZWFjKSxlPW4uZWxlbWVudFByb3h5RXZlbnRzLm1vdXNlZW50ZXJhYyxvPW4uZWxlbWVudFByb3h5RXZlbnRzLmNsaWNrYWM7dCYmKG4uZWxlbWVudFByb3h5LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHQpLG4uZWxlbWVudFByb3h5LnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLHQpLG4uZWxlbWVudFByb3h5RXZlbnRzLm1vdXNlbGVhdmVhYz0iIiksZSYmKG4uZWxlbWVudFByb3h5LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGUpLG4uZWxlbWVudFByb3h5LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIixlKSxuLmVsZW1lbnRQcm94eUV2ZW50cy5tb3VzZWVudGVyYWM9IiIpLG8mJihuLmVsZW1lbnRQcm94eS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsbyksbi5lbGVtZW50UHJveHlFdmVudHMuY2xpY2thYz0iIiksbi5vcHRpb25zLmZ1bmN0aW9uQWZ0ZXIuY2FsbChuLmVsZW1lbnQsbi5lbGVtZW50KSxzKCl9cmV0dXJuIG4udHJpZ2dlckV2ZW50KCJ0aWxkYXRvb2x0aXA6aGlkZSIpLHQmJm4uY2FsbGJhY2tzLmhpZGUucHVzaCh0KSxuLmNhbGxiYWNrcy5zaG93PVtdLGNsZWFyVGltZW91dChuLnRpbWVyU2hvdyksbi50aW1lclNob3c9bnVsbCxjbGVhclRpbWVvdXQobi50aW1lckhpZGUpLG4udGltZXJIaWRlPW51bGwsInNob3duIj09PW4uU3RhdHVzfHwiYXBwZWFyaW5nIj09PW4uU3RhdHVzPyhuLlN0YXR1cz0iZGlzYXBwZWFyaW5nIixDKCkmJihrKG4udG9vbHRpcCwidG9vbHRpcHN0ZXItIituLm9wdGlvbnMuYW5pbWF0aW9uKyItc2hvdyIpLEwobi50b29sdGlwLCJ0b29sdGlwc3Rlci1keWluZyIpKSxlKCkpOiJoaWRkZW4iPT09bi5TdGF0dXMmJnMoKSxufSxzaG93OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9zaG93Tm93KHQpLHRoaXN9LHVwZGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jb250ZW50KHQpfSxjb250ZW50OmZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10P3RoaXMuQ29udGVudDoodGhpcy5fdXBkYXRlKHQpLHRoaXMpfSxyZXBvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIF8sVCxTLEksdCxlLE89dGhpcyxBPWRvY3VtZW50LmJvZHl8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtmdW5jdGlvbiBvKCl7aWYoTy50b29sdGlwKXt2YXIgbj1PLnRvb2x0aXAub2Zmc2V0SGVpZ2h0O2lmKCJBUkVBIj09PU8uZWxlbWVudFByb3h5LnRhZ05hbWUpe3ZhciB0PU8uZWxlbWVudFByb3h5LmdldEF0dHJpYnV0ZSgic2hhcGUiKSxlPU8uZWxlbWVudFByb3h5LnBhcmVudE5vZGUuZ2V0QXR0cmlidXRlKCJuYW1lIiksbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSxlPShvLnNldEF0dHJpYnV0ZSgidXNlbWFwIiwiIyIrZSksby5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSksaT1lLmxlZnQrd2luZG93LnBhZ2VYT2Zmc2V0LGU9ZS50b3Ard2luZG93LnBhZ2VZT2Zmc2V0LHM9Ty5lbGVtZW50UHJveHkuZ2V0QXR0cmlidXRlKCJjb29yZHMiKSxyPXM/cy5zcGxpdCgiLCIpOnZvaWQgMDtpZigiY2lyY2xlIj09PXQpe3ZhciBsPXBhcnNlSW50KHJbMF0pLGE9cGFyc2VJbnQoclsxXSkscz1wYXJzZUludChyWzJdKTtTLmRpbWVuc2lvbi5oZWlnaHQ9MipzLFMuZGltZW5zaW9uLndpZHRoPTIqcyxTLm9mZnNldC50b3A9ZSthLXMsUy5vZmZzZXQubGVmdD1pK2wtc31lbHNlIGlmKCJyZWN0Ij09PXQpe3ZhciBsPXBhcnNlSW50KHJbMF0pLGE9cGFyc2VJbnQoclsxXSkscz1wYXJzZUludChyWzJdKSxwPXBhcnNlSW50KHJbM10pO1MuZGltZW5zaW9uLmhlaWdodD1wLWEsUy5kaW1lbnNpb24ud2lkdGg9cy1sLFMub2Zmc2V0LnRvcD1lK2EsUy5vZmZzZXQubGVmdD1pK2x9ZWxzZSBpZigicG9seSI9PT10KXtmb3IodmFyIGM9MCxkPTAsbT0wLGY9MCx1PSJldmVuIixoPTA7aDxyLmxlbmd0aDtoKyspdmFyIHY9cGFyc2VJbnQocltoXSksdT0iZXZlbiI9PT11PyhtPHYmJihtPXYsMD09PWgmJihjPW0pKSx2PGMmJihjPXYpLCJvZGQiKTooZjx2JiYoZj12LDE9PT1oJiYoZD1mKSksdjxkJiYoZD12KSwiZXZlbiIpO1MuZGltZW5zaW9uLmhlaWdodD1mLWQsUy5kaW1lbnNpb24ud2lkdGg9bS1jLFMub2Zmc2V0LnRvcD1lK2QsUy5vZmZzZXQubGVmdD1pK2N9ZWxzZSBTLmRpbWVuc2lvbi5oZWlnaHQ9by5vZmZzZXRIZWlnaHQsUy5kaW1lbnNpb24ud2lkdGg9by5vZmZzZXRXaWR0aCxTLm9mZnNldC50b3A9ZSxTLm9mZnNldC5sZWZ0PWl9dmFyIHcsZyx5LGIsRSxQPTAscD0wLHg9MCxDPXBhcnNlSW50KE8ub3B0aW9ucy5vZmZzZXRZKSxzPXBhcnNlSW50KE8ub3B0aW9ucy5vZmZzZXRYKSxhPSgidG9wIj09PShwcmFjdGljYWxQb3NpdGlvbj1PLm9wdGlvbnMucG9zaXRpb24pJiYoRT1TLm9mZnNldC5sZWZ0K0ktKFMub2Zmc2V0LmxlZnQrUy5kaW1lbnNpb24ud2lkdGgpLFA9Uy5vZmZzZXQubGVmdCtzLUUvMix4PVMub2Zmc2V0LnRvcC1uLUMtMTIsTCgpLGsoImJvdHRvbSIsInRvcCIpKSwidG9wLWxlZnQiPT09cHJhY3RpY2FsUG9zaXRpb24mJihQPVMub2Zmc2V0LmxlZnQrcyx4PVMub2Zmc2V0LnRvcC1uLUMtMTIsTCgpLGsoImJvdHRvbS1sZWZ0IiwidG9wLWxlZnQiKSksInRvcC1yaWdodCI9PT1wcmFjdGljYWxQb3NpdGlvbiYmKFA9Uy5vZmZzZXQubGVmdCtTLmRpbWVuc2lvbi53aWR0aCtzLUkseD1TLm9mZnNldC50b3Atbi1DLTEyLEwoKSxrKCJib3R0b20tcmlnaHQiLCJ0b3AtcmlnaHQiKSksImJvdHRvbSI9PT1wcmFjdGljYWxQb3NpdGlvbiYmKEU9Uy5vZmZzZXQubGVmdCtJLShTLm9mZnNldC5sZWZ0K1MuZGltZW5zaW9uLndpZHRoKSxQPVMub2Zmc2V0LmxlZnQtRS8yK3MseD1TLm9mZnNldC50b3ArUy5kaW1lbnNpb24uaGVpZ2h0K0MrMTIsTCgpLGsoInRvcCIsImJvdHRvbSIpKSwiYm90dG9tLWxlZnQiPT09cHJhY3RpY2FsUG9zaXRpb24mJihQPVMub2Zmc2V0LmxlZnQrcyx4PVMub2Zmc2V0LnRvcCtTLmRpbWVuc2lvbi5oZWlnaHQrQysxMixMKCksaygidG9wLWxlZnQiLCJib3R0b20tbGVmdCIpKSwiYm90dG9tLXJpZ2h0Ij09PXByYWN0aWNhbFBvc2l0aW9uJiYoUD1TLm9mZnNldC5sZWZ0K1MuZGltZW5zaW9uLndpZHRoK3MtSSx4PVMub2Zmc2V0LnRvcCtTLmRpbWVuc2lvbi5oZWlnaHQrQysxMixMKCksaygidG9wLXJpZ2h0IiwiYm90dG9tLXJpZ2h0IikpLGdldENvbXB1dGVkU3R5bGUoTy50b29sdGlwLG51bGwpKTsibGVmdCI9PT1wcmFjdGljYWxQb3NpdGlvbiYmKFA9Uy5vZmZzZXQubGVmdC1zLUktMTIscD1TLm9mZnNldC5sZWZ0K3MrUy5kaW1lbnNpb24ud2lkdGgrMTIsdz1TLm9mZnNldC50b3Arbi0oUy5vZmZzZXQudG9wK1MuZGltZW5zaW9uLmhlaWdodCkseD1TLm9mZnNldC50b3Atdy8yLUMsUDwwJiZUPHArST8oZz0yKnBhcnNlRmxvYXQoYS5ib3JkZXJXaWR0aCkseT1JK1AtZyxPLnRvb2x0aXAuc3R5bGUud2lkdGg9eSsicHgiLG49Ty50b29sdGlwLm9mZnNldEhlaWdodCxQPVMub2Zmc2V0LmxlZnQtcy15LTEyLWcsdz1TLm9mZnNldC50b3Arbi0oUy5vZmZzZXQudG9wK1MuZGltZW5zaW9uLmhlaWdodCkseD1TLm9mZnNldC50b3Atdy8yLUMpOlA8MCYmKFA9Uy5vZmZzZXQubGVmdCtzK1MuZGltZW5zaW9uLndpZHRoKzEyLF89ImxlZnQiKSksInJpZ2h0Ij09cHJhY3RpY2FsUG9zaXRpb24mJihQPVMub2Zmc2V0LmxlZnQrcytTLmRpbWVuc2lvbi53aWR0aCsxMixwPVMub2Zmc2V0LmxlZnQtcy1JLTEyLHc9Uy5vZmZzZXQudG9wK24tKFMub2Zmc2V0LnRvcCtTLmRpbWVuc2lvbi5oZWlnaHQpLHg9Uy5vZmZzZXQudG9wLXcvMi1DLFQ8UCtJJiZwPDA/KGc9MipwYXJzZUZsb2F0KGEuYm9yZGVyV2lkdGgpLHk9VC1QLWcsTy50b29sdGlwLnN0eWxlLndpZHRoPXkrInB4IixuPU8udG9vbHRpcC5vdXRlckhlaWdodCghMSksdz1TLm9mZnNldC50b3Arbi0oUy5vZmZzZXQudG9wK1MuZGltZW5zaW9uLmhlaWdodCkseD1TLm9mZnNldC50b3Atdy8yLUMpOlQ8UCtJJiYoUD1TLm9mZnNldC5sZWZ0LXMtSS0xMixfPSJyaWdodCIpKSxPLm9wdGlvbnMuYXJyb3cmJihsPSJ0b29sdGlwc3Rlci1hcnJvdy0iK3ByYWN0aWNhbFBvc2l0aW9uLHQ9Ty5vcHRpb25zLmFycm93Q29sb3IubGVuZ3RoPDE/YS5iYWNrZ3JvdW5kQ29sb3I6Ty5vcHRpb25zLmFycm93Q29sb3IsXz1fPyJsZWZ0Ij09PV8/KGw9InRvb2x0aXBzdGVyLWFycm93LXJpZ2h0IiwiIik6InJpZ2h0Ij09Xz8obD0idG9vbHRpcHN0ZXItYXJyb3ctbGVmdCIsIiIpOiJsZWZ0OiIrTWF0aC5yb3VuZChfKSsicHg7IjoiIixvPSJ0b3AiPT09cHJhY3RpY2FsUG9zaXRpb258fCJ0b3AtbGVmdCI9PT1wcmFjdGljYWxQb3NpdGlvbnx8InRvcC1yaWdodCI9PT1wcmFjdGljYWxQb3NpdGlvbj8oYj1wYXJzZUZsb2F0KGEuYm9yZGVyQm90dG9tV2lkdGgpLGEuYm9yZGVyQm90dG9tQ29sb3IpOiJib3R0b20iPT09cHJhY3RpY2FsUG9zaXRpb258fCJib3R0b20tbGVmdCI9PT1wcmFjdGljYWxQb3NpdGlvbnx8ImJvdHRvbS1yaWdodCI9PT1wcmFjdGljYWxQb3NpdGlvbj8oYj1wYXJzZUZsb2F0KGEuYm9yZGVyVG9wV2lkdGgpLGEuYm9yZGVyVG9wQ29sb3IpOiJsZWZ0Ij09PXByYWN0aWNhbFBvc2l0aW9uPyhiPXBhcnNlRmxvYXQoYS5ib3JkZXJSaWdodFdpZHRoKSxhLmJvcmRlclJpZ2h0Q29sb3IpOiJyaWdodCI9PT1wcmFjdGljYWxQb3NpdGlvbj8oYj1wYXJzZUZsb2F0KGEuYm9yZGVyTGVmdFdpZHRoKSxhLmJvcmRlckxlZnRDb2xvcik6KGI9cGFyc2VGbG9hdChhLmJvcmRlclRvcFdpZHRoKSxhLmJvcmRlclRvcENvbG9yKSwxPGImJmIrKyxlPSIiLDAhPT1iJiYoaT0iIixFPSJib3JkZXItY29sb3I6ICIrbysiOyIsLTEhPT1sLmluZGV4T2YoImJvdHRvbSIpP2k9Im1hcmdpbi10b3A6IC0iK01hdGgucm91bmQoYikrInB4OyI6LTEhPT1sLmluZGV4T2YoInRvcCIpP2k9Im1hcmdpbi1ib3R0b206IC0iK01hdGgucm91bmQoYikrInB4OyI6LTEhPT1sLmluZGV4T2YoImxlZnQiKT9pPSJtYXJnaW4tcmlnaHQ6IC0iK01hdGgucm91bmQoYikrInB4OyI6LTEhPT1sLmluZGV4T2YoInJpZ2h0IikmJihpPSJtYXJnaW4tbGVmdDogLSIrTWF0aC5yb3VuZChiKSsicHg7IiksZT0nPHNwYW4gY2xhc3M9InRvb2x0aXBzdGVyLWFycm93LWJvcmRlciIgc3R5bGU9IicraSsiICIrRSsnOyI+PC9zcGFuPicpLEgoTy50b29sdGlwLnF1ZXJ5U2VsZWN0b3IoIi50b29sdGlwc3Rlci1hcnJvdyIpKSxwPSc8ZGl2IGNsYXNzPSInK2wrJyB0b29sdGlwc3Rlci1hcnJvdyIgc3R5bGU9IicrXysnIj4nK2UrJzxzcGFuIHN0eWxlPSJib3JkZXItY29sb3I6Jyt0Kyc7Ij48L3NwYW4+PC9kaXY+JyxPLnRvb2x0aXAuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLHApKSxPLnRvb2x0aXAuc3R5bGUudG9wPU1hdGgucm91bmQoeCkrInB4IixPLnRvb2x0aXAuc3R5bGUubGVmdD1NYXRoLnJvdW5kKFApKyJweCJ9ZnVuY3Rpb24gTCgpe3ZhciB0PSh3aW5kb3cucGFnZVhPZmZzZXR8fEEuc2Nyb2xsTGVmdCktKEEuY2xpZW50TGVmdHx8MCk7UC10PDAmJihfPVAtdCxQPXQpLFQ8UCtJLXQmJihfPVAtKFQrdC1JKSxQPVQrdC1JKX1mdW5jdGlvbiBrKHQsZSl7dmFyIG89d2luZG93LnBhZ2VZT2Zmc2V0O1Mub2Zmc2V0LnRvcC1vLW4tQy0xMjwwJiYtMTxlLmluZGV4T2YoInRvcCIpJiYocHJhY3RpY2FsUG9zaXRpb249dCksUy5vZmZzZXQudG9wK1MuZGltZW5zaW9uLmhlaWdodCtuKzEyK0M+byt3aW5kb3cuaW5uZXJIZWlnaHQmJi0xPGUuaW5kZXhPZigiYm90dG9tIikmJjA8Uy5vZmZzZXQudG9wLW4tQy0xMiYmKHByYWN0aWNhbFBvc2l0aW9uPXQseD1TLm9mZnNldC50b3Atbi1DLTEyKX19cmV0dXJuIEEuY29udGFpbnMoTy50b29sdGlwKSYmKE8udG9vbHRpcC5zdHlsZS53aWR0aD0iIixPLmVsZW1lbnRQcm94eVBvc2l0aW9uPU8uX3JlcG9zaXRpb25JbmZvKE8uZWxlbWVudFByb3h5KSxfPW51bGwsVD13aW5kb3cuaW5uZXJXaWR0aCxTPU8uZWxlbWVudFByb3h5UG9zaXRpb24sST1PLnRvb2x0aXAub2Zmc2V0V2lkdGgsKHQ9Ty50b29sdGlwLnF1ZXJ5U2VsZWN0b3IoImltZyIpKT8oKGU9bmV3IEltYWdlKS5vbmxvYWQ9ZnVuY3Rpb24oKXtvKCl9LGUuY29tcGxldGU9ZnVuY3Rpb24oKXtvKCl9LGUuc3JjPXQuc3JjKTpvKCkpLE99LGVuYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVuYWJsZWQ9ITAsdGhpc30sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhpZGUoKSx0aGlzLmVuYWJsZWQ9ITEsdGhpc30sZGVzdHJveTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT0odC5oaWRlKCksdC5lbGVtZW50IT09dC5lbGVtZW50UHJveHkmJkgodC5lbGVtZW50UHJveHkpLHQuZWxlbWVudFByb3h5RXZlbnRzLm1vdXNlZW50ZXIpLG89dC5lbGVtZW50UHJveHlFdmVudHMubW91c2VsZWF2ZSxuPXQuZWxlbWVudFByb3h5RXZlbnRzLnRvdWNoc3RhcnQsaT10LmVsZW1lbnRQcm94eUV2ZW50cy5jbGljayxzPShlJiYodC5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGUpLHQuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsZSkpLG8mJih0LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsbyksdC5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLG8pKSxuJiZ0LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsbiksaSYmdC5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixpKSx0LmVsZW1lbnRbdC5uYW1lc3BhY2VdPSIiLHQuZWxlbWVudFsidG9vbHRpcHN0ZXItbnMiXSk7aWYoMT09PXMubGVuZ3RoKXtlPW51bGw7InByZXZpb3VzIj09PXQub3B0aW9ucy5yZXN0b3JhdGlvbj9lPXQuZWxlbWVudFsidG9vbHRpcHN0ZXItaW5pdGlhbFRpdGxlIl06ImN1cnJlbnQiPT09dC5vcHRpb25zLnJlc3RvcmF0aW9uJiYoZT0ic3RyaW5nIj09dHlwZW9mIHQuQ29udGVudD90LkNvbnRlbnQ6IjxkaXY+PC9kaXY+IiksZSYmdC5lbGVtZW50LnNldEF0dHJpYnV0ZSgidGl0bGUiLGUpLGsodC5lbGVtZW50LCJ0b29sdGlwc3RlcmVkIiksdC5lbGVtZW50WyJ0b29sdGlwc3Rlci1ucyJdPSIiLHQuZWxlbWVudFsidG9vbHRpcHN0ZXItaW5pdGlhbFRpdGxlIl09IiJ9ZWxzZXtmb3IodmFyIHI9W10sbD0wO2w8cy5sZW5ndGg7bCsrKXt2YXIgYT1zW2xdO2EhPT10Lm5hbWVzcGFjZSYmci5wdXNoKGEpfXQuZWxlbWVudFsidG9vbHRpcHN0ZXItbnMiXT1yfXJldHVybiB0fSx0cmlnZ2VyRXZlbnQ6ZnVuY3Rpb24odCl7dmFyIGUsbz10aGlzLmVsZW1lbnRQcm94eTtkb2N1bWVudC5jcmVhdGVFdmVudD8oZT1kb2N1bWVudC5jcmVhdGVFdmVudCgiSFRNTEV2ZW50cyIpKS5pbml0RXZlbnQodCwhMCwhMSk6ZG9jdW1lbnQuY3JlYXRlRXZlbnRPYmplY3QmJigoZT1kb2N1bWVudC5jcmVhdGVFdmVudE9iamVjdCgpKS5ldmVudFR5cGU9dCksZS5ldmVudE5hbWU9dCxvLmRpc3BhdGNoRXZlbnQ/by5kaXNwYXRjaEV2ZW50KGUpOm8uZmlyZUV2ZW50P28uZmlyZUV2ZW50KCJvbiIrZS5ldmVudFR5cGUsZSk6b1t0XT9vW3RdKCk6b1sib24iK3RdJiZvWyJvbiIrdF0oKX0sZWxlbWVudEljb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50IT09dGhpcy5lbGVtZW50UHJveHk/dGhpcy5lbGVtZW50UHJveHk6dm9pZCAwfSxlbGVtZW50VG9vbHRpcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRvb2x0aXB8fHZvaWQgMH0sb3B0aW9uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWU/dGhpcy5vcHRpb25zW3RdOih0aGlzLm9wdGlvbnNbdF09ZSx0aGlzKX0sc3RhdHVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuU3RhdHVzfX0sd2luZG93W3RdPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxvPTE7bzxhcmd1bWVudHMubGVuZ3RoO28rKyllLnB1c2goYXJndW1lbnRzW29dKTtuKHQsZSl9LCJ1bmRlZmluZWQiIT10eXBlb2YgalF1ZXJ5JiYoJC5mblt0XT1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTx0aGlzLmxlbmd0aDtlKyspdC5wdXNoKHRoaXNbZV0pO24odCxhcmd1bWVudHMpfSk7dmFyIHM9ZG9jdW1lbnQuYm9keXx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHg9ISEoIm9udG91Y2hzdGFydCJpbiB3aW5kb3cpLGU9ITE7ZnVuY3Rpb24gcigpe3JldHVybiFlJiZ4fWZ1bmN0aW9uIEMoKXt2YXIgdD1zLnN0eWxlLGU9WyJNb3oiLCJXZWJraXQiLCJLaHRtbCIsIk8iLCJtcyJdO2lmKCJzdHJpbmciPT10eXBlb2YgdFtvPSJ0cmFuc2l0aW9uIl0pcmV0dXJuIDE7Zm9yKHZhciBvPW8uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrby5zdWJzdHIoMSksbj0wO248ZS5sZW5ndGg7bisrKWlmKCJzdHJpbmciPT10eXBlb2YgdFtlW25dK29dKXJldHVybiAxfWZ1bmN0aW9uIEwodCxlKXtmb3IodmFyIG89ZS5zcGxpdCgiICIpLG49MDtuPG8ubGVuZ3RoO24rKyl7dmFyIGk9b1tuXTtkb2N1bWVudC5ib2R5LmNsYXNzTGlzdD90LmNsYXNzTGlzdC5hZGQoaSk6dC5jbGFzc05hbWUrPSh0LmNsYXNzTmFtZT8iICI6IiIpK2l9fWZ1bmN0aW9uIGsodCxlKXtkb2N1bWVudC5ib2R5LmNsYXNzTGlzdD90LmNsYXNzTGlzdC5yZW1vdmUoZSk6dC5jbGFzc05hbWU9dC5jbGFzc05hbWUucmVwbGFjZShuZXcgUmVnRXhwKCIoXnxcXHMrKSIrZSsiKFxccyt8JCkiKSwiICIpLnJlcGxhY2UoL15ccysvLCIiKS5yZXBsYWNlKC9ccyskLywiIil9ZnVuY3Rpb24gSCh0KXt0JiZ0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KX1mdW5jdGlvbiBfKHQsZSxvKXt2YXIgbixpLHM9Z2V0Q29tcHV0ZWRTdHlsZSh0LG51bGwpOyJibG9jayI9PT1zLmRpc3BsYXkmJiIxIiE9PXMub3BhY2l0eSYmIiIhPT1zLm9wYWNpdHkmJihlPXBhcnNlSW50KGUpLHM9KG49MCk8ZT9lLzEwOjQwLHQuc3R5bGUub3BhY2l0eT1uLHQuc3R5bGUuZGlzcGxheT0iYmxvY2siLGk9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt0LnN0eWxlLm9wYWNpdHk9biwxPD0obis9LjEpJiYoY2xlYXJJbnRlcnZhbChpKSwiZnVuY3Rpb24iPT10eXBlb2YgbyYmbygpKX0scykpfXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixmdW5jdGlvbiB0KCl7ZT0hMDtzLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdCl9KX0oKTsKZnVuY3Rpb24gdF9zbGRzSW5pdCh0LGUpe3ZhciBzPXRfc2xkc19fZ2V0UmVjKHQpO2lmKHMpe3ZhciBpPXMucXVlcnlTZWxlY3RvcigiLnQtc2xkc19faXRlbXMtd3JhcHBlciIpLHI7aWYoaSlpZighaS5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWluaXRpYWxpemVkIikpe3ZhciBhPWkuY2xhc3NMaXN0LmNvbnRhaW5zKCJqcy1mZWVkLWNvbnRhaW5lciIpLGQ9cy5xdWVyeVNlbGVjdG9yQWxsKCIudC1zbGRzX19pdGVtOm5vdCgudC1zbGRzX19pdGVtX2R1bW15KSIpO2lmKGQpe2UmJmUucmFuZG9tU29ydCYmKGQ9dF9zbGRzX3JhbmRvbVNvcnRFbGVtZW50cyhkKSk7dmFyIGw9ZC5sZW5ndGgsbz1kWzBdLG49ZFtkLmxlbmd0aC0xXSxfPXdpbmRvdy5pbm5lcldpZHRoLGM9cGFyc2VJbnQoaS5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWl0ZW1zLWluLXJvdyIpLDEwKXx8MCx1PWkuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci13aXRoLWN5Y2xlIikscD1wYXJzZUZsb2F0KGkuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci10cmFuc2l0aW9uIikpLGY7aWYoQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChkLChmdW5jdGlvbih0LGUpe3Quc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlLWluZGV4IixlKzEpLHdpbmRvdy50X3NsZHNfX2lzaU9TJiYodC5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVooMCkiKX0pKSwidHJ1ZSIhPT1pLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItc3RvcCIpKXtwfHwwPT09cHx8KHA9MzAwKSxpc05hTihwKSYmaS5zZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXRyYW5zaXRpb24iLCIzMDAiKSxpLmNsYXNzTGlzdC5jb250YWlucygidC1zbGRzX2FuaW1hdGVkLWZhc3QiKXx8aS5jbGFzc0xpc3QuY29udGFpbnMoInQtc2xkc19hbmltYXRlZC1zbG93Iil8fGkuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LXNsZHNfYW5pbWF0ZWQtbm9uZSIpfHxpLmNsYXNzTGlzdC5hZGQoInQtc2xkc19hbmltYXRlZC1mYXN0Iik7dmFyIG09Yzt0X3NsZHNfc2V0SXRlbXNJblJvdyh0KSx0X3NsZHNfY2hhbmdlSW1hZ2VVcmwodCk7dmFyIHk9OD09PWRvY3VtZW50LmRvY3VtZW50TW9kZXx8OT09PWRvY3VtZW50LmRvY3VtZW50TW9kZTt5JiYoaS5jbGFzc0xpc3QucmVtb3ZlKCJ0LXNsZHNfYW5pbWF0ZWQtZmFzdCIpLGkuY2xhc3NMaXN0LnJlbW92ZSgidC1zbGRzX2FuaW1hdGVkLXNsb3ciKSxpLmNsYXNzTGlzdC5hZGQoInQtc2xkc19hbmltYXRlZC1ub25lIiksaS5jbGFzc0xpc3QuYWRkKCJ0LXNsZHNfaWUiKSxpLnNldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItY29ycmVjdC1oZWlnaHQiLCJ0cnVlIiksaS5zZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWl0ZW1zLWluLXJvdyIsMSkpLGkuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pbml0aWFsaXplZCIsInRydWUiKSxpLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItdG90YWxzbGlkZXMiKXx8aS5zZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXRvdGFsc2xpZGVzIixsKTt2YXIgdj0xLGc9aS5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXBvcyIpO2c/dj1wYXJzZUludChnLDEwKTppLnNldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItcG9zIiwxKSxpLnNldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItY3ljbGUiLCIiKSxpLnNldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItYW5pbWF0ZWQiLCIiKSxhfHx0X3NsZHNfX2NyZWF0ZUR1bW1pZXMobyxuLGkpLGM9cGFyc2VJbnQoaS5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWl0ZW1zLWluLXJvdyIpLDEwKXx8MDt2YXIgQT1zLnF1ZXJ5U2VsZWN0b3JBbGwoIi50LXNsZHNfX2Fycm93X3dyYXBwZXItcmlnaHQiKTtBLmxlbmd0aCYmQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChBLChmdW5jdGlvbih0KXt0LnN0eWxlLmRpc3BsYXk9ImZhbHNlIj09PXUmJmwtYzw9MD8ibm9uZSI6IiJ9KSksYXx8dF9zbGRzX1NsaWRlcldpZHRoKHQpLCJ0cnVlIj09aS5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWNvcnJlY3QtaGVpZ2h0IikmJnRfc2xkc19TbGlkZXJIZWlnaHQodCksdF9zbGRzX1NsaWRlckFycm93c0hlaWdodCh0KSx0X3NsZHNfQWN0aXZlU2xpZGUodCx2LGwpLHRfc2xkc19BY3RpdmVDYXB0aW9uKHQsdixsKSxhP18+OTYwJiYoInRydWUiPT09aS5nZXRBdHRyaWJ1dGUoImRhdGEtZmVlZHMtcG9zdHMtbG9hZGVkIik/KHRfc2xkc19faW5pdEZlZWRzU2xpZGVyKHQscyxlKSx0X3NsZHNfaW5pdFNsaWRlckNvbnRyb2xzKHQsZSkpOmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZlZWRzTG9hZFBvc3RzIiwoZnVuY3Rpb24oKXt0X3NsZHNfX2luaXRGZWVkc1NsaWRlcih0LHMsZSksdF9zbGRzX2luaXRTbGlkZXJDb250cm9scyh0LGUpfSkpKTooeXx8dF9zbGRzX29uSGFtbWVyTG9hZCgiSGFtbWVyIiwoZnVuY3Rpb24oKXt0X3NsZHNfaW5pdFNsaWRlclN3aXBlKHQsbCxfKX0pKSx0X3NsZHNfaW5pdFNsaWRlckNvbnRyb2xzKHQsZSksdF9zbGRzX3VwZGF0ZVNsaWRlcih0KSksaS5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXRpbWVvdXQiKT4wP3Rfc2xkc19pbml0QXV0b1BsYXkodCx2LGwsZSk6aS5hZGRFdmVudExpc3RlbmVyKCJzbGlkZUF1dG9wbGF5VGltZXJSZWFkeSIsKGZ1bmN0aW9uKCl7aS5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXRpbWVvdXQiKT4wJiZ0X3NsZHNfaW5pdEF1dG9QbGF5KHQsdixsLGUpfSkpLHMucXVlcnlTZWxlY3RvckFsbCgiLnQtc2xkc19faXRlbS1sb2FkZWQiKS5sZW5ndGg8bCsyJiZ0X3NsZHNfVXBkYXRlSW1hZ2VzKHQsdiksInllcyI9PWkuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1hcnJvd3MtbmVhcnBpYyIpJiZ0X3NsZHNfcG9zaXRpb25BcnJvd3ModCk7dmFyIGI9cy5xdWVyeVNlbGVjdG9yQWxsKCIudC1zbGRzIik7Yi5sZW5ndGgmJkFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoYiwoZnVuY3Rpb24odCl7dC5zdHlsZS52aXNpYmlsaXR5PSIifSkpLHRfc2xkc19fc2V0VGFiaW5kZXhGb3JGb2N1c2FibGVFbGVtZW50cyh0KSxzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3BsYXlDaGFuZ2VkIix0X3NsZHNfdXBkYXRlT25EaXNwbGF5Q2hhbmdlKSxzLmFkZEV2ZW50TGlzdGVuZXIoImRpc3BsYXlDaGFuZ2VkIix0X3NsZHNfdXBkYXRlT25EaXNwbGF5Q2hhbmdlKHQsbSkpLGEmJihzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3BsYXlDaGFuZ2VkIix0X3NsZHNfdXBkYXRlRmVlZHNTbGlkZXJPblJlc2l6ZSkscy5hZGRFdmVudExpc3RlbmVyKCJkaXNwbGF5Q2hhbmdlZCIsKGZ1bmN0aW9uKCl7dF9zbGRzX3VwZGF0ZUZlZWRzU2xpZGVyT25SZXNpemUodCxzLGUpfSkpKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0X3Rocm90dGxlKChmdW5jdGlvbigpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dF9zbGRzX3NldEl0ZW1zSW5Sb3codCxtKSx0X3NsZHNfdXBkYXRlU2xpZGVyKHQpLHRfc2xkc19wb3NpdGlvbkFycm93cyh0KSxhJiZ0X3NsZHNfdXBkYXRlRmVlZHNTbGlkZXJPblJlc2l6ZSh0LHMsZSl9KSwxMDApfSkpKSx3aW5kb3cudF9zbGRzX19pc2lPUyYmKCJjb21wbGV0ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlP3Rfc2xkc19faGlkZU1vYmlsZVNsaWRlcyhzLnF1ZXJ5U2VsZWN0b3IoIi50LXNsZHNfX2l0ZW1fYWN0aXZlIikpOndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoZnVuY3Rpb24oKXt0X3NsZHNfX2hpZGVNb2JpbGVTbGlkZXMocy5xdWVyeVNlbGVjdG9yKCIudC1zbGRzX19pdGVtX2FjdGl2ZSIpKX0pKSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLChmdW5jdGlvbigpeyJ0cnVlIj09aS5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWNvcnJlY3QtaGVpZ2h0IikmJnRfc2xkc19VcGRhdGVTbGlkZXJIZWlnaHQodCksdF9zbGRzX1VwZGF0ZVNsaWRlckFycm93c0hlaWdodCh0KX0pKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3Rfc2xkc19VcGRhdGVTbGlkZXJBcnJvd3NIZWlnaHQodCl9KSw1MDApO3ZhciBoPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhbGxyZWNvcmRzIik7aCYmaC5hZGRFdmVudExpc3RlbmVyKCJhbGxSZWNQYWRkaW5nSW5pdCIsKGZ1bmN0aW9uKCl7dF9zbGRzX3VwZGF0ZVNsaWRlcih0KX0pKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdF9zbGRzX19yZW1vdmVBdXRvcGxheUJ5VmlkZW8pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0X3NsZHNfX3JlbW92ZUF1dG9wbGF5QnlWaWRlbyl9fX19fWZ1bmN0aW9uIHRfc2xkc19fcmVtb3ZlQXV0b3BsYXlCeVZpZGVvKHQpe3ZhciBlPXQudGFyZ2V0LmNsb3Nlc3QoIltkYXRhLXNsaWRlci12aWRlby10eXBlXSwgW2RhdGEtdmlkZW9sYXp5LXR5cGVdIik7aWYoZSl7dmFyIHM9ZS5jbG9zZXN0KCIudC1zbGRzX19pdGVtcy13cmFwcGVyIiksaTtpZihzKXMuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pbnRlcnZhbC1pZCIpJiYocy5zZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXN0b3BwZWQiLCJ5ZXMiKSxzLnNldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItc3RvcHBlZC1ieS12aWRlbyIsInkiKSl9fWZ1bmN0aW9uIHRfc2xkc19faW5pdEZlZWRzU2xpZGVyKHQsZSl7dmFyIHM9ZS5xdWVyeVNlbGVjdG9yKCIudC1zbGRzX19pdGVtcy13cmFwcGVyIik7aWYocyl7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yQWxsKCIudC1zbGRzX19pdGVtOm5vdCgudC1zbGRzX19pdGVtX2R1bW15KSIpLHI9cGFyc2VJbnQocy5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXRvdGFsc2xpZGVzIiksMTApfHwwLGE9aVswXSxkPWlbaS5sZW5ndGgtMV0sbD1zLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItd2l0aC1jeWNsZSIpO3Rfc2xkc19fY3JlYXRlRHVtbWllcyhhLGQscyksdF9zbGRzX3VwZGF0ZVNsaWRlcih0KTt2YXIgbz1wYXJzZUludChzLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItaXRlbXMtaW4tcm93IiksMTApfHwwLG49ZS5xdWVyeVNlbGVjdG9yQWxsKCIudC1zbGRzX19hcnJvd193cmFwcGVyLXJpZ2h0Iik7bi5sZW5ndGgmJkFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwobiwoZnVuY3Rpb24odCl7dC5zdHlsZS5kaXNwbGF5PSJmYWxzZSI9PT1sJiZyLW88PTA/Im5vbmUiOiIifSkpLCJ0cnVlIj09cy5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWNvcnJlY3QtaGVpZ2h0IikmJnRfc2xkc19TbGlkZXJIZWlnaHQodCl9fWZ1bmN0aW9uIHRfc2xkc19fY3JlYXRlRHVtbWllcyh0LGUscyl7dmFyIGkscj1zLnF1ZXJ5U2VsZWN0b3JBbGwoIi50LXNsZHNfX2l0ZW06bm90KC50LXNsZHNfX2l0ZW1fZHVtbXkpIikubGVuZ3RoLGE9cGFyc2VJbnQocy5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWl0ZW1zLWluLXJvdyIpLDEwKXx8MCxkPXMuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci13aXRoLWN5Y2xlIiksbD1zLmNsYXNzTGlzdC5jb250YWlucygianMtZmVlZC1jb250YWluZXIiKSxvPSExLG49ITE7aWYodCl7dmFyIF89dC5xdWVyeVNlbGVjdG9yKCdbZGF0YS16b29tYWJsZT0ieWVzIl0nKTtfJiYobz0hMCxfLmNsYXNzTGlzdC5jb250YWlucygidC16b29tYWJsZSIpJiZfLmNsYXNzTGlzdC5yZW1vdmUoInQtem9vbWFibGUiKSxfLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS16b29tYWJsZSIpKX1pZihlKXt2YXIgYz1lLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXpvb21hYmxlPSJ5ZXMiXScpO2MmJihuPSEwLGMuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LXpvb21hYmxlIikmJmMuY2xhc3NMaXN0LnJlbW92ZSgidC16b29tYWJsZSIpLGMucmVtb3ZlQXR0cmlidXRlKCJkYXRhLXpvb21hYmxlIikpfWlmKGUmJjA9PXMucXVlcnlTZWxlY3RvckFsbCgnLnQtc2xkc19faXRlbVtkYXRhLXNsaWRlLWluZGV4PSIwIl0nKS5sZW5ndGgpe3ZhciB1PWUuY2xvbmVOb2RlKCEwKTt1LnNldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZS1pbmRleCIsIjAiKSx1LnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIik7dmFyIHA9dC5wYXJlbnROb2RlO3AuaW5zZXJ0QmVmb3JlKHUsdCk7dmFyIGY9cC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1zbGlkZS1pbmRleD0iMCJdIFtmaWVsZF0nKTtmLmxlbmd0aCYmQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChmLChmdW5jdGlvbih0KXt0LnJlbW92ZUF0dHJpYnV0ZSgiZmllbGQiKX0pKX1pZighbCYmdCYmIXMucXVlcnlTZWxlY3RvcignLnQtc2xkc19faXRlbVtkYXRhLXNsaWRlLWluZGV4PSInKyhyKzEpKyciXScpKXt2YXIgbT10LmNsb25lTm9kZSghMCk7aWYobS5zZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGUtaW5kZXgiLHIrMSksbS5jbGFzc0xpc3QucmVtb3ZlKCJ0LXNsZHNfX2l0ZW1fYWN0aXZlIiksbS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwidHJ1ZSIpLGUuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJhZnRlcmVuZCIsbSksZS5jbGFzc0xpc3QuYWRkKCJ0LXNsZHNfX2l0ZW0tbG9hZGVkIiksYT4wJiYidHJ1ZSI9PT1kKWZvcih2YXIgeT10LHY9ZSxnPTA7ZzxhLTE7ZysrKXt2YXIgQT15Lm5leHRFbGVtZW50U2libGluZy5jbG9uZU5vZGUoITApO0Euc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlLWluZGV4IixyK2crMSksdi5uZXh0RWxlbWVudFNpYmxpbmcuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJhZnRlcmVuZCIsQSksdj12Lm5leHRFbGVtZW50U2libGluZyx5PXkubmV4dEVsZW1lbnRTaWJsaW5nfX1vJiYoXy5jbGFzc0xpc3QuYWRkKCJ0LXpvb21hYmxlIiksXy5zZXRBdHRyaWJ1dGUoImRhdGEtem9vbWFibGUiLCJ5ZXMiKSksbiYmKGMuY2xhc3NMaXN0LmFkZCgidC16b29tYWJsZSIpLGMuc2V0QXR0cmlidXRlKCJkYXRhLXpvb21hYmxlIiwieWVzIikpfWZ1bmN0aW9uIHRfc2xkc19faGlkZU1vYmlsZVNsaWRlcyh0KXtpZih0KXt2YXIgZT10LmNsb3Nlc3QoIi50LXNsZHNfX2l0ZW1zLXdyYXBwZXIiKSxzPWUmJmdldENvbXB1dGVkU3R5bGUoZSk7aWYoIXN8fCJzY3JvbGwiIT09cy5vdmVyZmxvd1h8fCJmbGV4IiE9PXMuZGlzcGxheSl7dmFyIGk9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZS5xdWVyeVNlbGVjdG9yQWxsKCIudC1zbGRzX19pdGVtOm5vdCgudC1zbGRzX19pdGVtX2R1bW15KSIpKSxyPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aD45NjA/NTozO2lmKCEoaS5sZW5ndGg8PTIqcikpe2Zvcih2YXIgYT10LmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZS1pbmRleCIpLGQ9W2E9cGFyc2VJbnQoYSwxMCldLGw9MTtsPHI7bCsrKWErbDw9aS5sZW5ndGg/ZC5wdXNoKGErbCk6ZC5wdXNoKGwpLGEtbD4wP2QucHVzaChhLWwpOmQucHVzaChpLmxlbmd0aCsxLWwpO3ZhciBvPSJ0LXNsZHNfX2l0ZW0taW5uYWN0aXZlIjtpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlO2Quc29tZSgoZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlSW50KHQuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlLWluZGV4IiksMTApPT09ZX0pKT90LmNsYXNzTGlzdC5yZW1vdmUobyk6dC5jbGFzc0xpc3QuYWRkKG8pfSkpfX19fWZ1bmN0aW9uIHRfc2xkc191cGRhdGVPbkRpc3BsYXlDaGFuZ2UodCxlKXt0X3Rocm90dGxlKChmdW5jdGlvbigpe3Rfc2xkc19zZXRJdGVtc0luUm93KHQsZSksdF9zbGRzX3VwZGF0ZVNsaWRlcih0KSx0X3NsZHNfcG9zaXRpb25BcnJvd3ModCl9KSl9ZnVuY3Rpb24gdF9zbGRzX3VwZGF0ZUZlZWRzU2xpZGVyT25SZXNpemUodCxlLHMpe3ZhciBpPWUucXVlcnlTZWxlY3RvcigiLnQtc2xkc19faXRlbXMtd3JhcHBlciIpLHI7aSYmKGkuY2xhc3NMaXN0LmNvbnRhaW5zKCJqcy1mZWVkLWNvbnRhaW5lciIpJiYod2luZG93LmlubmVyV2lkdGg+OTYwPyJ0cnVlIj09PWkuZ2V0QXR0cmlidXRlKCJkYXRhLWZlZWRzLXBvc3RzLWxvYWRlZCIpPyh0X3NsZHNfX2luaXRGZWVkc1NsaWRlcih0LGUscyksdF9zbGRzX2luaXRTbGlkZXJDb250cm9scyh0LHMpKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJmZWVkc0xvYWRQb3N0cyIsKGZ1bmN0aW9uKCl7dF9zbGRzX19pbml0RmVlZHNTbGlkZXIodCxlLHMpLHRfc2xkc19pbml0U2xpZGVyQ29udHJvbHModCxzKX0pKTppLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWCgwKSIpKX1mdW5jdGlvbiB0X3NsZHNfc2V0SXRlbXNJblJvdyh0LGUpe3ZhciBzPXRfc2xkc19fZ2V0UmVjKHQpO2lmKHMpe3ZhciBpPXMucXVlcnlTZWxlY3RvcigiLnQtc2xkc19faXRlbXMtd3JhcHBlciIpLHIsYTtpZihpKShpLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItaXRlbXMtaW4tcm93Iil8fDApJiYod2luZG93LmlubmVyV2lkdGg8PTk2MCYmKGE9Miksd2luZG93LmlubmVyV2lkdGg8PTY0MCYmKGE9MSksd2luZG93LmlubmVyV2lkdGg+OTYwJiYoYT1lKSksYSYmaS5zZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWl0ZW1zLWluLXJvdyIsYSl9fWZ1bmN0aW9uIHRfc2xkc19pbml0U2xpZGVyQ29udHJvbHModCxlKXt2YXIgcz10X3NsZHNfX2dldFJlYyh0KTtpZihzKXt2YXIgaT1zLnF1ZXJ5U2VsZWN0b3IoIi50LXNsZHNfX2l0ZW1zLXdyYXBwZXIiKTtpZihpKXt2YXIgcj1pLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItaXRlbXMtaW4tcm93Iil8fDAsYT1zLnF1ZXJ5U2VsZWN0b3IoIi50LXNsZHNfX2NvbnRhaW5lciAudC1zbGRzX19pdGVtIiksZD1zLnF1ZXJ5U2VsZWN0b3IoIi50LXNsZHNfX2NvbnRhaW5lciIpLGw9cj4wJiZhJiZkP2Eub2Zmc2V0V2lkdGg6ZC5vZmZzZXRXaWR0aCxvO2lmKCJ0cnVlIiE9PWkuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1zdG9wIikpe2kuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVYKC0iK2wrInB4KSI7dmFyIG49cy5xdWVyeVNlbGVjdG9yQWxsKCIudC1zbGRzX19hcnJvd193cmFwcGVyIik7bi5sZW5ndGgmJkFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwobiwoZnVuY3Rpb24ocil7ci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKGZ1bmN0aW9uKCl7dmFyIHI9dF9zbGRzX2dldEN1cnJlbnRUcmFuc2xhdGUocyksYT1pLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItYW5pbWF0ZWQiKSxkPXBhcnNlRmxvYXQoaS5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXBvcyIpKSxsPXBhcnNlRmxvYXQoaS5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXRvdGFsc2xpZGVzIikpLG89aS5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXdpdGgtY3ljbGUiKSxuPSIiLF87IiI9PWEmJihpLnNldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItYW5pbWF0ZWQiLCJ5ZXMiKSwibGVmdCI9PT10aGlzLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZS1kaXJlY3Rpb24iKT8iZmFsc2UiPT1vJiYxPT1kP2Q9MTpkLS06ImZhbHNlIj09byYmZD09bD9kPWw6ZCsrLGkuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1wb3MiLGQpLGQhPWwrMSYmMCE9ZHx8KG49InllcyIpLGkuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1jeWNsZSIsbiksdF9zbGlkZU1vdmVXaXRob3V0QW5pbWF0aW9uKHQsITEsZSxyKSk7dF9zbGRzX3VwZGF0ZVNsaWRlcih0KX0pKX0pKTt2YXIgXz1zLnF1ZXJ5U2VsZWN0b3JBbGwoIi50LXNsZHNfX2J1bGxldCIpO18ubGVuZ3RoJiZBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKF8sKGZ1bmN0aW9uKHIpe3IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLChmdW5jdGlvbigpe3ZhciBhPXBhcnNlSW50KHIuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlLWJ1bGxldC1mb3IiKSwxMCksZDtpZihwYXJzZUludChpLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItcG9zIiksMTApIT09YSl7dmFyIGw9dF9zbGRzX2dldEN1cnJlbnRUcmFuc2xhdGUocyk7aS5zZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXBvcyIsYSksdF9zbGlkZU1vdmVXaXRob3V0QW5pbWF0aW9uKHQsITEsZSxsKSx0X3NsZHNfdXBkYXRlU2xpZGVyKHQpfX0pKX0pKX19fX1mdW5jdGlvbiB0X3NsZHNfYW5pbWF0ZSh0LGUscyl7dmFyIGk9cGVyZm9ybWFuY2Uubm93KCk7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbiByKGEpe3ZhciBkPShhLWkpL3M7ZD4xJiYoZD0xKTt2YXIgbD10KGQpO2UobCksZDwxP3JlcXVlc3RBbmltYXRpb25GcmFtZShyKToieSIhPT13aW5kb3cubGF6eSYmInllcyIhPT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWxscmVjb3JkcyIpLmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1sYXp5Iil8fHRfc2xkc19vbkhhbW1lckxvYWQoInRfbGF6eWxvYWRfdXBkYXRlIiwoZnVuY3Rpb24oKXt0X2xhenlsb2FkX3VwZGF0ZSgpfSkpfSkpfWZ1bmN0aW9uIHRfc2xpZGVfTW92ZUFuaW1hdGlvbih0LGUscyxpKXtpZih0KXt0LnN0eWxlLnRyYW5zaXRpb249ImhlaWdodCBlYXNlLWluLW91dCAuNXMsIHRyYW5zZm9ybSBlYXNlLWluLW91dCAwcyI7dmFyIHI9LU1hdGguYWJzKGUqcyksYT0tcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0KS50cmFuc2Zvcm0ubWF0Y2goL1xkKy8pWzBdKSxkPWEtcjswIT09ZCYmdF9zbGRzX2FuaW1hdGUoKGZ1bmN0aW9uKHQpe3JldHVybiB0fSksKGZ1bmN0aW9uKGUpe3Quc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVYKCIrKGEtZCplKSsicHgpIn0pLGkpfX1mdW5jdGlvbiB0X3NsaWRlTW92ZVdpdGhvdXRBbmltYXRpb24odCxlLHMpe3ZhciBpPXRfc2xkc19fZ2V0UmVjKHQpO2lmKGkpe3ZhciByPWkucXVlcnlTZWxlY3RvcigiLnQtc2xkc19faXRlbXMtd3JhcHBlciIpO2lmKHIpe3ZhciBhPXBhcnNlRmxvYXQoci5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXBvcyIpKSxkLGw9KHIuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtcy1pbi1yb3ciKXx8MCk+MD9pLnF1ZXJ5U2VsZWN0b3IoIi50LXNsZHNfX2NvbnRhaW5lciAudC1zbGRzX19pdGVtIikub2Zmc2V0V2lkdGg6aS5xdWVyeVNlbGVjdG9yKCIudC1zbGRzX19jb250YWluZXIiKS5vZmZzZXRXaWR0aCxvPXBhcnNlRmxvYXQoci5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXRvdGFsc2xpZGVzIikpLG49ci5jbGFzc0xpc3QuY29udGFpbnMoInQtc2xkc19hbmltYXRlZC1ub25lIik7YT5vKzEmJihhPTEpO3ZhciBfPWkuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0Mzk2X19lbGVtIik7aWYoXyl7dmFyIGMsdTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygd2luZG93LkN1c3RvbUV2ZW50KXZhciBjPW5ldyBDdXN0b21FdmVudCgidGlsZGFTbGRzTW92ZVNsaWRlU3RhcnQiKSx1PW5ldyBDdXN0b21FdmVudCgidGlsZGFTbGRzTW92ZVNsaWRlRW5kIik7ZWxzZShjPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJDdXN0b21FdmVudCIpKS5pbml0Q3VzdG9tRXZlbnQoInRpbGRhU2xkc01vdmVTbGlkZVN0YXJ0IiwhMCwhMCksKHU9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkN1c3RvbUV2ZW50IikpLmluaXRDdXN0b21FdmVudCgidGlsZGFTbGRzTW92ZVNsaWRlRW5kIiwhMCwhMCk7aS5kaXNwYXRjaEV2ZW50KGMpfWlmKG4pe3ZhciBwPWkucXVlcnlTZWxlY3RvcigiLnQtc2xkc19faXRlbV9hY3RpdmUiKSxmPWkucXVlcnlTZWxlY3RvckFsbCgiLnQtc2xkc19faXRlbSIpO2lmKHAmJjA9PT1pLnF1ZXJ5U2VsZWN0b3JBbGwoIi50LXNsZHNfX2l0ZW1fZHVtbXkiKS5sZW5ndGgpe3ZhciBtPXAuY2xvbmVOb2RlKCEwKTtpZihtLmNsYXNzTGlzdC5hZGQoInQtc2xkc19faXRlbV9kdW1teSIpLG0uc3R5bGUucG9zaXRpb249ImFic29sdXRlIixtLnN0eWxlLmxlZnQ9bCphKyJweCIsci5hcHBlbmRDaGlsZChtKSxpLmNsYXNzTGlzdC5jb250YWlucygianMtcHJvZHVjdCIpKXk9aTtlbHNlIHZhciB5PWkucXVlcnlTZWxlY3RvcigiLnQtc3RvcmUiKXx8aS5xdWVyeVNlbGVjdG9yKCIuanMtcHJvZHVjdCIpO3k/KHRfc2xkc19mYWRlT3V0KG0sMTUwLChmdW5jdGlvbigpe251bGwhPT1tLnBhcmVudE5vZGUmJm0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChtKX0pKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGYsKGZ1bmN0aW9uKHQpe3Rfc2xkc19mYWRlSW4odCwxNTApfSkpKTooQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChmLChmdW5jdGlvbih0KXt0LnN0eWxlLm9wYWNpdHk9MH0pKSx0X3NsZHNfZmFkZU91dChtLDQwMCwoZnVuY3Rpb24oKXtudWxsIT09bS5wYXJlbnROb2RlJiZtLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobSl9KSksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGYsKGZ1bmN0aW9uKHQpe3Rfc2xkc19mYWRlSW4odCl9KSksXyYmaS5kaXNwYXRjaEV2ZW50KHUpfSksNTApKX1yLmNsYXNzTGlzdC5hZGQoInQtc2xkc19hbmltYXRlZC1jYW5jZWwiKX10X3NsaWRlTW92ZSh0LGUscyksbiYmci5jbGFzc0xpc3QucmVtb3ZlKCJ0LXNsZHNfYW5pbWF0ZWQtY2FuY2VsIiksXyYmaS5kaXNwYXRjaEV2ZW50KHUpfX19ZnVuY3Rpb24gdF9zbGlkZU1vdmVJbnN0YW50bHkodCxlLHMpe3ZhciBpPXRfc2xkc19fZ2V0UmVjKHQpO2lmKGkpe3ZhciByPWkucXVlcnlTZWxlY3RvcigiLnQtc2xkc19faXRlbXMtd3JhcHBlciIpO2lmKHIpe3ZhciBhPXBhcnNlRmxvYXQoci5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXBvcyIpKSxkLGw9KHIuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtcy1pbi1yb3ciKXx8MCk+MD9pLnF1ZXJ5U2VsZWN0b3IoIi50LXNsZHNfX2NvbnRhaW5lciAudC1zbGRzX19pdGVtIikub2Zmc2V0V2lkdGg6aS5xdWVyeVNlbGVjdG9yKCIudC1zbGRzX19jb250YWluZXIiKS5vZmZzZXRXaWR0aCxvPXBhcnNlRmxvYXQoci5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXRvdGFsc2xpZGVzIikpLG49ci5jbGFzc0xpc3QuY29udGFpbnMoInQtc2xkc19hbmltYXRlZC1ub25lIik7aWYoYT5vKzEmJihhPTEpLG4pe3ZhciBfPWkucXVlcnlTZWxlY3RvcigiLnQtc2xkc19faXRlbV9hY3RpdmUiKTtpZihfJiYwPT09aS5xdWVyeVNlbGVjdG9yQWxsKCIudC1zbGRzX19pdGVtX2R1bW15IikubGVuZ3RoKXt2YXIgYz1fLmNsb25lTm9kZSghMCk7Yy5jbGFzc0xpc3QuYWRkKCJ0LXNsZHNfX2l0ZW1fZHVtbXkiKSxjLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsYy5zdHlsZS5sZWZ0PWwqYSsicHgiLHIuYXBwZW5kQ2hpbGQoYyksdF9zbGRzX2ZhZGVPdXQoYyw0MDAsKGZ1bmN0aW9uKCl7bnVsbCE9PWMucGFyZW50Tm9kZSYmYy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGMpfSkpfXIuY2xhc3NMaXN0LmFkZCgidC1zbGRzX2FuaW1hdGVkIiksci5jbGFzc0xpc3QuYWRkKCJ0LXNsZHNfYW5pbWF0ZWQtY2FuY2VsIil9ZWxzZSByLmNsYXNzTGlzdC5hZGQoInQtc2xkc19hbmltYXRlZCIpLHIuY2xhc3NMaXN0LmFkZCgidC1zbGRzX2FuaW1hdGVkLWNhbmNlbCIpO3Rfc2xpZGVNb3ZlKHQsZSxzKSxyLmNsYXNzTGlzdC5yZW1vdmUoInQtc2xkc19hbmltYXRlZCIpLHIuY2xhc3NMaXN0LnJlbW92ZSgidC1zbGRzX2FuaW1hdGVkLWNhbmNlbCIpfX19ZnVuY3Rpb24gdF9zbGlkZU1vdmUodCxlLHMpe3ZhciBpPXRfc2xkc19fZ2V0UmVjKHQpO2lmKGkpe3ZhciByPWkucXVlcnlTZWxlY3RvcigiLnQtc2xkc19faXRlbXMtd3JhcHBlciIpO2lmKHIpe3ZhciBhPWkucXVlcnlTZWxlY3RvckFsbCgiLnQtc2xkc19faXRlbTpub3QoLnQtc2xkc19faXRlbV9kdW1teSkiKSxkPXIuY2xhc3NMaXN0LmNvbnRhaW5zKCJqcy1mZWVkLWNvbnRhaW5lciIpLGw9cGFyc2VJbnQoci5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWl0ZW1zLWluLXJvdyIpfHwwKSxvPXBhcnNlSW50KHIuZ2V0QXR0cmlidXRlKCJkYXRhLWZlZWQtc2hvdy1jb3VudCIpfHwwKSxuPWw+MD9pLnF1ZXJ5U2VsZWN0b3IoIi50LXNsZHNfX2NvbnRhaW5lciAudC1zbGRzX19pdGVtIikub2Zmc2V0V2lkdGg6aS5xdWVyeVNlbGVjdG9yKCIudC1zbGRzX19jb250YWluZXIiKS5vZmZzZXRXaWR0aCxfPXBhcnNlRmxvYXQoci5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXRyYW5zaXRpb24iKSksYz1wYXJzZUZsb2F0KHIuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1wb3MiKSksdT1wYXJzZUZsb2F0KHIuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci10b3RhbHNsaWRlcyIpKSxwPXIuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1jeWNsZSIpLGY9ci5jbGFzc0xpc3QuY29udGFpbnMoInQtc2xkc19hbmltYXRlZC1ub25lIiksbT1yLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItdGltZW91dCIpPjAseT1pLnF1ZXJ5U2VsZWN0b3IoIi50LXNsZHNfX2Fycm93X3dyYXBwZXItcmlnaHQiKSx2PWkucXVlcnlTZWxlY3RvcigiLnQtc2xkc19fYXJyb3dfd3JhcHBlci1sZWZ0IiksZzsib2ZmIj09PXIuZ2V0QXR0cmlidXRlKCJhcmlhLWxpdmUiKSYmci5zZXRBdHRyaWJ1dGUoImFyaWEtbGl2ZSIsInBvbGl0ZSIpO3ZhciBBPTA7aWYoL14oKD8hY2hyb21lfGFuZHJvaWQpLikqc2FmYXJpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSl7dmFyIGI9bmF2aWdhdG9yLmFwcFZlcnNpb24ubWF0Y2goL1ZlcnNpb25cLyhcZCspXC4oXGQrKVwuPyhcZCspPyBTYWZhcmkvKTtudWxsIT09YiYmKEE9cGFyc2VJbnQoYlsxXSwxMCkpfXZhciBoPSEhbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgiQ3JpT1MiKSxTO2lmKF98fDA9PT1ffHwoXz0zMDApLGM+dSsxJiYoYz0xLHIuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1wb3MiLDEpKSwidHJ1ZSIhPT1yLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItc3RvcCIpKXtpZih5KWlmKGQpe3ZhciB3PWFbYS5sZW5ndGgtMV0scT1wYXJzZUludCh3LmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZS1pbmRleCIpLDEwKTtpZihsPHUmJnRfc2xkc19mYWRlSW4oeSwzMDApLHE8dSYmbD4wJiYoYz09cS1vKzF8fHE9PT1vKSl7dmFyIEU9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iik7RS5pbml0RXZlbnQoImZlZWRzTGFzdFNsaWRlIiwhMCwhMCksci5kaXNwYXRjaEV2ZW50KEUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZlZWRzTG9hZFNsaWRlIiwoZnVuY3Rpb24oKXt0X3NsZHNfdXBkYXRlU2xpZGVyKHQpLCJmdW5jdGlvbiI9PXR5cGVvZiB0X2FuaW1hdGVfX3N0YXJ0QW5pbWF0aW9uJiZ0X2FuaW1hdGVfX3N0YXJ0QW5pbWF0aW9uKCl9KSksdF9zbGRzX2ZhZGVJbih5LDMwMCl9ZWxzZSBxPT09dSYmYz09PXUtbCsxJiZ0X3NsZHNfZmFkZU91dCh5LDMwMCl9ZWxzZSJmYWxzZSI9PXIuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci13aXRoLWN5Y2xlIikmJihjPT11fHxsPjEmJmM9PXUtbCsxKT90X3NsZHNfZmFkZU91dCh5LDMwMCk6dF9zbGRzX2ZhZGVJbih5LDMwMCk7diYmKCJmYWxzZSI9PXIuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci13aXRoLWN5Y2xlIikmJjE9PWM/dF9zbGRzX2ZhZGVPdXQodiwzMDApOnRfc2xkc19mYWRlSW4odiwzMDApKSxyLmNsYXNzTGlzdC5hZGQoInQtc2xkc19hbmltYXRlZCIpLEE+PTEzJiZoJiYhZj90X3NsaWRlX01vdmVBbmltYXRpb24ocixjLG4sXyk6ci5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVgoLSIrbipjKyJweCkiLHRfdHJpZ2dlckV2ZW50KHIsInNsaWRlQ2hhbmdlU3RhcnQiKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3IuY2xhc3NMaXN0LnJlbW92ZSgidC1zbGRzX2FuaW1hdGVkIiksci5zZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWFuaW1hdGVkIiwiIiksInllcyI9PShwPXIuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1jeWNsZSIpKSYmKGM9PXUrMSYmKGM9MSksMD09YyYmKGM9dSksQT49MTMmJmgmJiFmP3Rfc2xpZGVfTW92ZUFuaW1hdGlvbihyLGMsbiwwKTpyLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWCgtIituKmMrInB4KSIsITAhPT1mJiZ0X3NsZHNfQWN0aXZlU2xpZGUodCxjLHUscyksci5zZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXBvcyIsYykpLCgieSI9PT13aW5kb3cubGF6eXx8ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FsbHJlY29yZHMiKSYmInllcyI9PT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWxscmVjb3JkcyIpLmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1sYXp5IikpJiZ0X3NsZHNfb25IYW1tZXJMb2FkKCJ0X2xhenlsb2FkX3VwZGF0ZSIsKGZ1bmN0aW9uKCl7dF9sYXp5bG9hZF91cGRhdGUoKX0pKSwhZSYmbSYmdF9zbGRzX2luaXRBdXRvUGxheSh0LGMsdSxzKX0pLF8pLHRfc2xkc19BY3RpdmVCdWxsZXQodCxjLHUscyksdF9zbGRzX0FjdGl2ZVNsaWRlKHQsYyx1KSwidHJ1ZSI9PXIuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1jb3JyZWN0LWhlaWdodCIpJiZ0X3NsZHNfU2xpZGVySGVpZ2h0KHQpLHRfc2xkc19TbGlkZXJBcnJvd3NIZWlnaHQodCksdF9zbGRzX0FjdGl2ZUNhcHRpb24odCxjLHUpLGkucXVlcnlTZWxlY3RvckFsbCgiLnQtc2xkc19faXRlbS1sb2FkZWQiKS5sZW5ndGg8dSsyJiZ0X3NsZHNfVXBkYXRlSW1hZ2VzKHQsYyl9fX19ZnVuY3Rpb24gdF9zbGRzX3VwZGF0ZVNsaWRlcih0KXt2YXIgZT10X3NsZHNfX2dldFJlYyh0KTtpZihlKXt0X3NsZHNfU2xpZGVyV2lkdGgodCk7dmFyIHM9ZS5xdWVyeVNlbGVjdG9yKCIudC1zbGRzX19pdGVtcy13cmFwcGVyIik7aWYocyl7dmFyIGk9cy5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWl0ZW1zLWluLXJvdyIpfHwwLHI9ZS5xdWVyeVNlbGVjdG9yKCIudC1zbGRzX19jb250YWluZXIgLnQtc2xkc19faXRlbSIpLGE9ZS5xdWVyeVNlbGVjdG9yKCIudC1zbGRzX19jb250YWluZXIiKSxkPWk+MCYmYSYmcj9yLm9mZnNldFdpZHRoOmEub2Zmc2V0V2lkdGgsbD1wYXJzZUludChzLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItcG9zIiksMTApLG89cGFyc2VJbnQocy5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXRvdGFsc2xpZGVzIiksMTApLG49cy5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXdpdGgtY3ljbGUiKSxfPWUucXVlcnlTZWxlY3RvcigiLnQtc2xkc19fYXJyb3dfd3JhcHBlci1yaWdodCIpO2w+bysxJiYobD0xLHMuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1wb3MiLDEpKSxfJiYoXy5zdHlsZS5kaXNwbGF5PSJmYWxzZSI9PT1uJiYoby1pPD0wfHxsPT09byk/Im5vbmUiOiIiKSxzLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWCgtIitkKmwrInB4KSIsInRydWUiPT1zLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItY29ycmVjdC1oZWlnaHQiKSYmdF9zbGRzX1VwZGF0ZVNsaWRlckhlaWdodCh0KSx0X3NsZHNfVXBkYXRlU2xpZGVyQXJyb3dzSGVpZ2h0KHQpfX19ZnVuY3Rpb24gdF9zbGRzX1VwZGF0ZUltYWdlcyh0LGUpe3ZhciBzPXRfc2xkc19fZ2V0UmVjKHQpO2lmKHMpe3ZhciBpPXMucXVlcnlTZWxlY3RvcignLnQtc2xkc19faXRlbVtkYXRhLXNsaWRlLWluZGV4PSInK2UrJyJdJyk7aSYmKGkuY2xhc3NMaXN0LmFkZCgidC1zbGRzX19pdGVtLWxvYWRlZCIpLGkubmV4dEVsZW1lbnRTaWJsaW5nJiZpLm5leHRFbGVtZW50U2libGluZy5jbGFzc0xpc3QuYWRkKCJ0LXNsZHNfX2l0ZW0tbG9hZGVkIiksaS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nJiZpLnByZXZpb3VzRWxlbWVudFNpYmxpbmcuY2xhc3NMaXN0LmFkZCgidC1zbGRzX19pdGVtLWxvYWRlZCIpKX19ZnVuY3Rpb24gdF9zbGRzX0FjdGl2ZUNhcHRpb24odCxlLHMpe3ZhciBpPXRfc2xkc19fZ2V0UmVjKHQpO2lmKGkpe3ZhciByPWkucXVlcnlTZWxlY3RvckFsbCgiLnQtc2xkc19fY2FwdGlvbiIpLGE9aS5xdWVyeVNlbGVjdG9yKCcudC1zbGRzX19jYXB0aW9uW2RhdGEtc2xpZGUtY2FwdGlvbj0iJytlKyciXScpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwociwoZnVuY3Rpb24odCl7dC5jbGFzc0xpc3QucmVtb3ZlKCJ0LXNsZHNfX2NhcHRpb24tYWN0aXZlIil9KSksMD09ZT9hPWkucXVlcnlTZWxlY3RvcignLnQtc2xkc19fY2FwdGlvbltkYXRhLXNsaWRlLWNhcHRpb249IicrcysnIl0nKTplPT1zKzEmJihhPWkucXVlcnlTZWxlY3RvcignLnQtc2xkc19fY2FwdGlvbltkYXRhLXNsaWRlLWNhcHRpb249IjEiXScpKSxhJiZhLmNsYXNzTGlzdC5hZGQoInQtc2xkc19fY2FwdGlvbi1hY3RpdmUiKX19ZnVuY3Rpb24gdF9zbGRzX3Njcm9sbEltYWdlcyh0LGUpe3ZhciBzPXRfc2xkc19fZ2V0UmVjKHQpO2lmKHMpe3ZhciBpPShlPDA/IiI6Ii0iKStNYXRoLmFicyhlKS50b1N0cmluZygpO3MucXVlcnlTZWxlY3RvcigiLnQtc2xkc19faXRlbXMtd3JhcHBlciIpLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWCgiK2krInB4KSJ9fWZ1bmN0aW9uIHRfc2xkc19BY3RpdmVCdWxsZXQodCxlLHMsaSl7dmFyIHI7aWYoaSYmaS50aHVtYnNidWxsZXRHYWxsZXJ5KXt2YXIgYT1wYXJzZUludChpLnN0b3JlT3B0aW9ucy5wb3B1cF9vcHRzLmNvbHVtbnMpLGQ9K2kuc3RvcmVPcHRpb25zLnNsaWRlcl9zbGlkZXNPcHRzLnJhdGlvO3I9dF9zdG9yZV9wcm9kUG9wdXBfZ2FsbGVyeV9jYWxjTWF4VGh1bWJzQ291bnQoYSxkLDYwLDEwKX12YXIgbD10X3NsZHNfX2dldFJlYyh0KTtpZihsKXt2YXIgbz1sLnF1ZXJ5U2VsZWN0b3JBbGwoIi50LXNsZHNfX2J1bGxldCIpLG49bC5xdWVyeVNlbGVjdG9yKCcudC1zbGRzX19idWxsZXRbZGF0YS1zbGlkZS1idWxsZXQtZm9yPSInK2UrJyJdJyk7aWYoQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChvLChmdW5jdGlvbih0KXt0LmNsYXNzTGlzdC5yZW1vdmUoInQtc2xkc19fYnVsbGV0X2FjdGl2ZSIpO3ZhciBlPXQucXVlcnlTZWxlY3RvcigiLnQtc2xkc19fYnVsbGV0X2JvZHkiKTtlJiZlLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1jdXJyZW50Iil9KSksaSYmaS50aHVtYnNidWxsZXRHYWxsZXJ5JiZlPj1yJiZlIT1zKzF8fHM+PXImJjA9PWU/bj1sLnF1ZXJ5U2VsZWN0b3IoJy50LXNsZHNfX2J1bGxldFtkYXRhLXNsaWRlLWJ1bGxldC1mb3I9IicrcisnIl0nKTowPT1lP249bC5xdWVyeVNlbGVjdG9yKCcudC1zbGRzX19idWxsZXRbZGF0YS1zbGlkZS1idWxsZXQtZm9yPSInK3MrJyJdJyk6ZT09cysxJiYobj1sLnF1ZXJ5U2VsZWN0b3IoJy50LXNsZHNfX2J1bGxldFtkYXRhLXNsaWRlLWJ1bGxldC1mb3I9IjEiXScpKSxuKXtuLmNsYXNzTGlzdC5hZGQoInQtc2xkc19fYnVsbGV0X2FjdGl2ZSIpO3ZhciBfPW4ucXVlcnlTZWxlY3RvcigiLnQtc2xkc19fYnVsbGV0X2JvZHkiKTtfJiZfLnNldEF0dHJpYnV0ZSgiYXJpYS1jdXJyZW50IiwhMCl9fX1mdW5jdGlvbiB0X3NsZHNfQWN0aXZlU2xpZGUodCxlLHMpe3ZhciBpPXRfc2xkc19fZ2V0UmVjKHQpO2lmKGkpe3ZhciByPWkucXVlcnlTZWxlY3RvcigiLnQtc2xkc19faXRlbXMtd3JhcHBlciIpLGE9aS5xdWVyeVNlbGVjdG9yQWxsKCIudC1zbGRzX19pdGVtIiksZD1pLnF1ZXJ5U2VsZWN0b3IoJy50LXNsZHNfX2l0ZW1bZGF0YS1zbGlkZS1pbmRleD0iJytlKyciXScpLGw9ISFyJiZyLmNsYXNzTGlzdC5jb250YWlucygidC1zbGRzX2FuaW1hdGVkLW5vbmUiKSxvPWkucXVlcnlTZWxlY3RvckFsbCgiLnQtdmlkZW8tbGF6eWxvYWQiKTtpZihvLmxlbmd0aCl0X29uRnVuY0xvYWQoInRfdmlkZW9fX2dldFBsYXllciIsKGZ1bmN0aW9uKCl7by5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZTtpZigiZmFsc2UiIT09dC5nZXRBdHRyaWJ1dGUoImRhdGEtdmlkZW9sYXp5LWxvYWQiKSl7dmFyIHM9dC5jbG9zZXN0KCIudC1zbGRzX19pdGVtOm5vdCgudC1zbGRzX19pdGVtX2R1bW15KSIpO2lmKHMpe3ZhciBpPXRfdmlkZW9fX2dldFBsYXllcihzKTtpP2kucGF1c2UoKTp0X3NsZHNfX3Byb2NjZXNzVmlkZW8ocykudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQucGF1c2UoKX0pKS5jYXRjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHR9KSl9fX0pKX0pKTtlbHNle3ZhciBuPWkucXVlcnlTZWxlY3RvckFsbCgiaWZyYW1lIiksXz1pLnF1ZXJ5U2VsZWN0b3JBbGwoInZpZGVvIik7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChuLChmdW5jdGlvbih0KXt0LnNyYyYmKC0xIT09dC5zcmMuaW5kZXhPZigiJmVuYWJsZWpzYXBpPTEiKSYmdC5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKCd7ImV2ZW50IjoiY29tbWFuZCIsImZ1bmMiOiJwYXVzZVZpZGVvIiwiYXJncyI6IiJ9JywiKiIpLC0xPT09dC5zcmMuaW5kZXhPZigidmltZW8iKXx8LTE9PT10LnNyYy5pbmRleE9mKCImYW1wO2FwaT0xIikmJi0xPT09dC5zcmMuaW5kZXhPZigiJmFwaT0xIil8fHQuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZSgneyJtZXRob2QiOiJwYXVzZSIsInZhbHVlIjoidHJ1ZSJ9JywiKiIpKX0pKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKF8sKGZ1bmN0aW9uKHQpe3QucGF1c2UoKX0pKX1pZihBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGEsKGZ1bmN0aW9uKHQpe3QuY2xhc3NMaXN0LnJlbW92ZSgidC1zbGRzX19pdGVtX2FjdGl2ZSIpLHQuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKX0pKSwwPT1lJiYhMT09PWwpaS5xdWVyeVNlbGVjdG9yKCcudC1zbGRzX19pdGVtW2RhdGEtc2xpZGUtaW5kZXg9IicrcysnIl0nKS5jbGFzc0xpc3QuYWRkKCJ0LXNsZHNfX2l0ZW1fYWN0aXZlIiksaS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwiZmFsc2UiKTtlbHNlIGlmKDA9PWUmJiEwPT09bClkPWkucXVlcnlTZWxlY3RvcignLnQtc2xkc19faXRlbVtkYXRhLXNsaWRlLWluZGV4PSInK3MrJyJdJyk7ZWxzZSBpZihlPT1zKzEmJiExPT09bCl7dmFyIGM9aS5xdWVyeVNlbGVjdG9yKCcudC1zbGRzX19pdGVtW2RhdGEtc2xpZGUtaW5kZXg9IjEiXScpO2MmJihjLmNsYXNzTGlzdC5hZGQoInQtc2xkc19faXRlbV9hY3RpdmUiKSxjLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJmYWxzZSIpKX1lbHNlIGU9PXMrMSYmITA9PT1sJiYoZD1pLnF1ZXJ5U2VsZWN0b3IoJy50LXNsZHNfX2l0ZW1bZGF0YS1zbGlkZS1pbmRleD0iMSJdJykpO2QmJihkLmNsYXNzTGlzdC5hZGQoInQtc2xkc19faXRlbV9hY3RpdmUiKSxkLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJmYWxzZSIpKSx3aW5kb3cudF9zbGRzX19pc2lPUyYmdF9zbGRzX19oaWRlTW9iaWxlU2xpZGVzKGQpLHRfc2xkc19fc2V0VGFiaW5kZXhGb3JGb2N1c2FibGVFbGVtZW50cyh0KX19ZnVuY3Rpb24gdF9zbGRzX19zZXRUYWJpbmRleEZvckZvY3VzYWJsZUVsZW1lbnRzKHQpe3ZhciBlPXRfc2xkc19fZ2V0UmVjKHQpO2lmKGUpe3ZhciBzPWUucXVlcnlTZWxlY3RvcigiLnQtc2xkc19faXRlbXMtd3JhcHBlciIpLGk9ZS5xdWVyeVNlbGVjdG9yKCIudC1zbGRzX19pdGVtX2FjdGl2ZSIpO2lmKGkpe3ZhciByPSdhLCBidXR0b24sIGlucHV0Om5vdChbdHlwZT0iaGlkZGVuIl0pLCBzZWxlY3QsIHRleHRhcmVhLCB2aWRlbywgaWZyYW1lJyxhPXMucXVlcnlTZWxlY3RvckFsbChyKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGEsKGZ1bmN0aW9uKHQpe3Quc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIil9KSk7dmFyIGQ9aS5xdWVyeVNlbGVjdG9yQWxsKHIpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZCwoZnVuY3Rpb24odCl7dC5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpfSkpfX19ZnVuY3Rpb24gdF9zbGRzX1NsaWRlcldpZHRoKHQpe3ZhciBlPXRfc2xkc19fZ2V0UmVjKHQpO2lmKGUpe3ZhciBzPWUucXVlcnlTZWxlY3RvcigiLnQtc2xkc19fY29udGFpbmVyIik7aWYocyl7dmFyIGk9Z2V0Q29tcHV0ZWRTdHlsZShzKSxyPXBhcnNlSW50KGkucGFkZGluZ0xlZnQpfHwwLGE9cGFyc2VJbnQoaS5wYWRkaW5nUmlnaHQpfHwwLGQ9cy5jbGllbnRXaWR0aC0ocithKSxsPWUucXVlcnlTZWxlY3RvckFsbCgiLnQtc2xkc19faXRlbTpub3QoLnQtc2xkc19faXRlbV9kdW1teSkiKS5sZW5ndGgsbz1lLnF1ZXJ5U2VsZWN0b3IoIi50LXNsZHNfX2l0ZW1zLXdyYXBwZXIiKSxuO2lmKCJ0cnVlIiE9by5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXN0b3AiKSl7dmFyIF89MDtvJiYoXz1vLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItaXRlbXMtaW4tcm93Iiksby5zdHlsZS53aWR0aD1kKmwrInB4Iiksd2luZG93LmlubmVyV2lkdGg8PTY0MD9fPTE6d2luZG93LmlubmVyV2lkdGg8PTk2MCYmXz4xJiYoXz0yKTt2YXIgYz1fPjE/ZC9fOmQ7aWYoYz4wKXt2YXIgdT1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi50LXNsZHNfX2l0ZW0iKTtvJiYodT1vLnF1ZXJ5U2VsZWN0b3JBbGwoIi50LXNsZHNfX2l0ZW0iKSksQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh1LChmdW5jdGlvbih0KXt0LnN0eWxlLndpZHRoPWMrInB4In0pKX19fX19ZnVuY3Rpb24gdF9zbGRzX1NsaWRlckhlaWdodCh0KXt2YXIgZT10X3NsZHNfX2dldFJlYyh0KTtpZihlKXt2YXIgcz1lLnF1ZXJ5U2VsZWN0b3IoJy50LXNsZHNfX2l0ZW1zLXdyYXBwZXI6bm90KFtkYXRhLXNsaWRlci1jb3JyZWN0LWhlaWdodD0iZmFsc2UiXSknKTtpZihzKXt2YXIgaT1zLmNsYXNzTGlzdC5jb250YWlucygianMtZmVlZC1jb250YWluZXIiKSxyPWUucXVlcnlTZWxlY3RvcigiLnQtc2xkc19faXRlbV9hY3RpdmUiKTtpZihyKXZhciBhPXBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUocikucGFkZGluZ1RvcCl8fDAsZD1wYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHIpLnBhZGRpbmdCb3R0b20pfHwwLGw9ci5jbGllbnRIZWlnaHQtKGErZCk7bCYmcyYmKHMuc3R5bGUuaGVpZ2h0PWk/IiI6bCsicHgiKX19fWZ1bmN0aW9uIHRfc2xkc19VcGRhdGVTbGlkZXJIZWlnaHQodCl7dmFyIGU9dF9zbGRzX19nZXRSZWModCk7aWYoZSl7dmFyIHM9ZS5xdWVyeVNlbGVjdG9yKCcudC1zbGRzX19pdGVtcy13cmFwcGVyOm5vdChbZGF0YS1zbGlkZXItY29ycmVjdC1oZWlnaHQ9ImZhbHNlIl0pJyk7aWYocyl7dmFyIGk9cy5jbGFzc0xpc3QuY29udGFpbnMoImpzLWZlZWQtY29udGFpbmVyIikscj1lLnF1ZXJ5U2VsZWN0b3IoIi50LXNsZHNfX2l0ZW1fYWN0aXZlIik7aWYocil2YXIgYT1wYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHIpLnBhZGRpbmdUb3ApfHwwLGQ9cGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZShyKS5wYWRkaW5nQm90dG9tKXx8MCxsPXIuY2xpZW50SGVpZ2h0LShhK2QpOzAhPT1sJiZzJiYocy5zdHlsZS5oZWlnaHQ9aT8iIjpsKyJweCIpfX19ZnVuY3Rpb24gdF9zbGRzX1NsaWRlckFycm93c0hlaWdodCh0KXt2YXIgZT10X3NsZHNfX2dldFJlYyh0KTtpZihlKXt2YXIgcz1lLnF1ZXJ5U2VsZWN0b3IoIi50LXNsZHNfX2l0ZW1fYWN0aXZlIiksaT0vQW5kcm9pZHx3ZWJPU3xpUGhvbmV8aVBhZHxpUG9kfEJsYWNrQmVycnl8SUVNb2JpbGV8T3BlcmEgTWluaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7aWYocyl7dmFyIHI9MCxhO3MucXVlcnlTZWxlY3RvcigiW2RhdGEtc2xpZGVyLXZpZGVvLXR5cGVdIikmJmkmJihyPTQwKTt2YXIgZD1wYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHMpLnBhZGRpbmdUb3ApfHwwLGw9cGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZShzKS5wYWRkaW5nQm90dG9tKXx8MCxvPXMuY2xpZW50SGVpZ2h0LShkK2wpLXJ9dmFyIG49ZS5xdWVyeVNlbGVjdG9yQWxsKCIudC1zbGRzX19hcnJvd193cmFwcGVyIik7byYmbi5sZW5ndGgmJkFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwobiwoZnVuY3Rpb24odCl7dC5zdHlsZS5oZWlnaHQ9bysicHgiO3ZhciBlPXQucXVlcnlTZWxlY3RvcigiLnQtc2xkc19fYXJyb3ciKTtlJiYoZS5zdHlsZS5tYXJnaW5Ub3A9ci8yKyJweCIpfSkpLHRfc2xkc19maXhBcnJvd3NJbkNhdGFsb2coZSxzLG4saSl9fWZ1bmN0aW9uIHRfc2xkc19VcGRhdGVTbGlkZXJBcnJvd3NIZWlnaHQodCl7dmFyIGU9dF9zbGRzX19nZXRSZWModCk7aWYoZSl7dmFyIHM9ZS5xdWVyeVNlbGVjdG9yKCIudC1zbGRzX19pdGVtX2FjdGl2ZSIpLGk9L0FuZHJvaWR8d2ViT1N8aVBob25lfGlQYWR8aVBvZHxCbGFja0JlcnJ5fElFTW9iaWxlfE9wZXJhIE1pbmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO2lmKHMpe3ZhciByPTAsYTtzLnF1ZXJ5U2VsZWN0b3IoIltkYXRhLXNsaWRlci12aWRlby10eXBlXSIpJiZpJiYocj00MCk7dmFyIGQ9cGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZShzKS5wYWRkaW5nVG9wKXx8MCxsPXBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUocykucGFkZGluZ0JvdHRvbSl8fDAsbz1zLmNsaWVudEhlaWdodC0oZCtsKS1yfXZhciBuPWUucXVlcnlTZWxlY3RvckFsbCgiLnQtc2xkc19fYXJyb3dfd3JhcHBlciIpO28mJm4ubGVuZ3RoJiZBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG4sKGZ1bmN0aW9uKHQpe3Quc3R5bGUuaGVpZ2h0PW8rInB4Ijt2YXIgZT10LnF1ZXJ5U2VsZWN0b3IoIi50LXNsZHNfX2Fycm93Iik7ZSYmKGUuc3R5bGUubWFyZ2luVG9wPXIvMisicHgiKX0pKSx0X3NsZHNfZml4QXJyb3dzSW5DYXRhbG9nKGUscyxuLGkpfX1mdW5jdGlvbiB0X3NsZHNfZml4QXJyb3dzSW5DYXRhbG9nKHQsZSxzLGkpe2lmKGUmJmkmJnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LXN0b3JlX19yZWxldmFudHMtZ3JpZC1jb250Iikpe3ZhciByPWUucXVlcnlTZWxlY3RvcigiLmpzLXByb2R1Y3QtaW1nIik7aWYocil7dmFyIGE9ci5vZmZzZXRIZWlnaHQ7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChzLChmdW5jdGlvbih0KXt2YXIgZT10Lm9mZnNldEhlaWdodCxzPShhLWUpLzI7dC5zdHlsZS50b3A9cysicHgiLHQuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKDApIn0pKX19fWZ1bmN0aW9uIHRfc2xkc19pbml0QXV0b1BsYXkodCxlLHMsaSl7dmFyIHI9Im9iamVjdCI9PXR5cGVvZiB0LGE9cj90WzBdOmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNyZWMiK3QpO2lmKGEpe3ZhciBkPWEucXVlcnlTZWxlY3RvcigiLnQtc2xkcyIpLGw9YS5xdWVyeVNlbGVjdG9yKCIudC1zbGRzX19pdGVtcy13cmFwcGVyIik7aWYobCl7dmFyIG89cGFyc2VGbG9hdChsLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItdGltZW91dCIpKSxuPSIiLF89bC5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWludGVydmFsLWlkIiksYztpZihfJiZjbGVhckludGVydmFsKF8pLCJ0cnVlIiE9PWwuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1zdG9wIikpe3ZhciB1OyEvQW5kcm9pZHx3ZWJPU3xpUGhvbmV8aVBhZHxpUG9kfEJsYWNrQmVycnl8SUVNb2JpbGV8T3BlcmEgTWluaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJmQmJihkLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsKGZ1bmN0aW9uKCl7bC5zZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXN0b3BwZWQiLCJ5ZXMiKX0pKSxkLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0IiwoZnVuY3Rpb24oKXsieSIhPT1sLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItc3RvcHBlZC1ieS12aWRlbyIpJiZsLnNldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItc3RvcHBlZCIsIiIpfSkpKTt2YXIgcD1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCt3aW5kb3cucGFnZVlPZmZzZXQsZj1wK2Eub2Zmc2V0SGVpZ2h0LG0seTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0X3Rocm90dGxlKChmdW5jdGlvbigpe3A9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3Ard2luZG93LnBhZ2VZT2Zmc2V0LGY9cCthLm9mZnNldEhlaWdodH0pKSksdm9pZCAwIT09ZG9jdW1lbnQuaGlkZGVuPyhtPSJoaWRkZW4iLHk9InZpc2liaWxpdHljaGFuZ2UiKTp2b2lkIDAhPT1kb2N1bWVudC5tc0hpZGRlbj8obT0ibXNIaWRkZW4iLHk9Im1zdmlzaWJpbGl0eWNoYW5nZSIpOnZvaWQgMCE9PWRvY3VtZW50LndlYmtpdEhpZGRlbiYmKG09IndlYmtpdEhpZGRlbiIseT0id2Via2l0dmlzaWJpbGl0eWNoYW5nZSIpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoeSwoZnVuY3Rpb24oKXtpZihkb2N1bWVudFttXSlsLnNldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItc3RvcHBlZCIsInllcyIpO2Vsc2V7dmFyIHQ9Z2V0Q29tcHV0ZWRTdHlsZShhKS5kaXNwbGF5LGU9d2luZG93LnBhZ2VZT2Zmc2V0LHM9ZSt3aW5kb3cuaW5uZXJIZWlnaHQ7cD1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCt3aW5kb3cucGFnZVlPZmZzZXQsKGY9cCthLm9mZnNldEhlaWdodCk+ZSYmcDxzJiYibm9uZSIhPT10JiYieSIhPT1sLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItc3RvcHBlZC1ieS12aWRlbyIpJiZsLnNldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItc3RvcHBlZCIsIiIpfX0pLCExKSwxPT09YS5sZW5ndGgmJndpbmRvdy5iaW5kKCJzY3JvbGwiLHRfdGhyb3R0bGUoKGZ1bmN0aW9uKCl7dmFyIHQ9Z2V0Q29tcHV0ZWRTdHlsZShhKS5kaXNwbGF5LGU9d2luZG93LnBhZ2VZT2Zmc2V0LHM9ZSt3aW5kb3cuaW5uZXJIZWlnaHQ7Im5vbmUiIT09dD8ocD1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCt3aW5kb3cucGFnZVlPZmZzZXQsKGY9cCthLm9mZnNldEhlaWdodCk+ZSYmcDxzJiYieSIhPT1sLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItc3RvcHBlZC1ieS12aWRlbyIpP2wuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1zdG9wcGVkIiwiIik6IiI9PT1sLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItc3RvcHBlZCIpJiZsLnNldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItc3RvcHBlZCIsInllcyIpKTpyfHxsLnNldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItc3RvcHBlZCIsInllcyIpfSkpKTt2YXIgdj1zZXRJbnRlcnZhbCgoZnVuY3Rpb24oKXt2YXIgcj1sLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItc3RvcHBlZCIpLGQ9bC5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWF1dG9wbGF5LWlnbm9yZS1ob3ZlciIpLG89bC5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXRvdWNoIiksXz10X3NsZHNfZ2V0Q3VycmVudFRyYW5zbGF0ZShhKTsieWVzIiE9ciYmInllcyIhPWQmJiJ5ZXMiIT1vJiYoImZhbHNlIj09bC5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXdpdGgtY3ljbGUiKSYmZT09cz9lPXM6ZSsrLGwuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1wb3MiLGUpLGUhPXMrMSYmMCE9ZXx8KG49InllcyIpLHRfc2xpZGVNb3ZlV2l0aG91dEFuaW1hdGlvbih0LCEwLGksXyksdF9zbGRzX3VwZGF0ZVNsaWRlcih0KSwieWVzIj09biYmKGU9PXMrMSYmKGU9MSksMD09ZSYmKGU9cyksbC5zZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXBvcyIsZSkpLGwuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1jeWNsZSIsbikpfSksbyk7bC5zZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWludGVydmFsLWlkIix2KX19fX1mdW5jdGlvbiB0X3NsZHNfcG9zaXRpb25BcnJvd3ModCl7dmFyIGU9dF9zbGRzX19nZXRSZWModCk7aWYoZSl7dmFyIHM9ZS5xdWVyeVNlbGVjdG9yKCIudC1zbGRzX19hcnJvd19jb250YWluZXItb3V0c2lkZSIpLGk9ZS5xdWVyeVNlbGVjdG9yKCIudC1zbGRzX19pdGVtIik7aWYoaSl7dmFyIHI9aS5vZmZzZXRXaWR0aCxhPWUucXVlcnlTZWxlY3RvcigiLnQtc2xkc19fYXJyb3ctbGVmdCIpP2UucXVlcnlTZWxlY3RvcigiLnQtc2xkc19fYXJyb3ctbGVmdCIpLm9mZnNldFdpZHRoOjAsZD1lLnF1ZXJ5U2VsZWN0b3IoIi50LXNsZHNfX2Fycm93LXJpZ2h0Iik/ZS5xdWVyeVNlbGVjdG9yKCIudC1zbGRzX19hcnJvdy1yaWdodCIpLm9mZnNldFdpZHRoOjA7cyYmKHMuc3R5bGUubWF4V2lkdGg9YStkK3IrMTIwKyJweCIpfX19ZnVuY3Rpb24gdF9zbGRzX2luaXRTbGlkZXJTd2lwZSh0LGUscyxpKXt2YXIgcj10X3NsZHNfX2dldFJlYyh0KTtpZihyKXt2YXIgYT1yLnF1ZXJ5U2VsZWN0b3IoIi50LXNsZHNfX21haW4iKTtpZihhKXt2YXIgZD1yLnF1ZXJ5U2VsZWN0b3IoIi50LXNsZHNfX2l0ZW1zLXdyYXBwZXIiKTtpZihkKXt2YXIgbCxvPSExLG49ITEsXyxjO2lmKCJ0cnVlIiE9PWQuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1zdG9wIikpaWYoInRydWUiIT09ZC5nZXRBdHRyaWJ1dGUoImRhdGEtc3dpcGVyLWluaXRpYWxpemVkIikpe2RlbGV0ZSBIYW1tZXIuZGVmYXVsdHMuY3NzUHJvcHMudXNlclNlbGVjdCxoYW1tZXI9bmV3IEhhbW1lcihhLHtkb21FdmVudHM6ITAsaW5wdXRDbGFzczpIYW1tZXIuVG91Y2hJbnB1dCxyZWNvZ25pemVyczpbW0hhbW1lci5QYW4se2RpcmVjdGlvbjpIYW1tZXIuRElSRUNUSU9OX0hPUklaT05UQUx9XV19KSxkLnNldEF0dHJpYnV0ZSgiZGF0YS1zd2lwZXItaW5pdGlhbGl6ZWQiLCJ0cnVlIik7dmFyIHU9ZnVuY3Rpb24gdChlKXt3aW5kb3cucGFnZVlPZmZzZXQ+ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b20rd2luZG93LnBhZ2VZT2Zmc2V0fHx3aW5kb3cucGFnZVlPZmZzZXQrZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDxyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCt3aW5kb3cucGFnZVlPZmZzZXQ/ZC5zZXRBdHRyaWJ1dGUoZSwieWVzIik6InkiIT09ZC5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXN0b3BwZWQtYnktdmlkZW8iKSYmZC5zZXRBdHRyaWJ1dGUoZSwiIil9LHA9Im9udG91Y2hlbmQiaW4gZG9jdW1lbnQ/ImRhdGEtc2xpZGVyLXRvdWNoIjoiZGF0YS1zbGlkZXItc3RvcHBlZCIsZjtpZigiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiaW4gd2luZG93KW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZnVuY3Rpb24odCl7dmFyIGU9dFswXTtkLnNldEF0dHJpYnV0ZShwLGUuaXNJbnRlcnNlY3Rpbmc/IiI6InllcyIpfSkpLm9ic2VydmUocik7ZWxzZSB1KHApLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLChmdW5jdGlvbigpe289ITAsY2xlYXJUaW1lb3V0KGwpLGw9c2V0VGltZW91dCgoZnVuY3Rpb24oKXt1KHApLG89ITF9KSwyNTApfSkpO2lmKDEhPWUpe3ZhciBtPWZ1bmN0aW9uIHQoZSl7aWYobilyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLCExfTt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixtLHtwYXNzaXZlOiExfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsbSx7cGFzc2l2ZTohMX0pLGhhbW1lci5vbigicGFuIiwoZnVuY3Rpb24oZSl7aWYobylyZXR1cm4hMTtuPSEwO3ZhciBzPXIucXVlcnlTZWxlY3RvcigiLnQtc2xkc19faXRlbXMtd3JhcHBlciIpLGE9cy5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWl0ZW1zLWluLXJvdyIpfHwwLGQ9YT4xLGw9ZD9yLnF1ZXJ5U2VsZWN0b3IoIi50LXNsZHNfX2NvbnRhaW5lciAudC1zbGRzX19pdGVtIikub2Zmc2V0V2lkdGg6ci5xdWVyeVNlbGVjdG9yKCIudC1zbGRzX19jb250YWluZXIiKS5vZmZzZXRXaWR0aCxfPXBhcnNlRmxvYXQocy5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXBvcyIpKSxjPXBhcnNlRmxvYXQocy5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXRvdGFsc2xpZGVzIikpLHU9IiIscD1lLmRlbHRhWCxmPTEwMC9jKmUuZGVsdGFYL3dpbmRvdy5pbm5lcldpZHRoLG09MzAseTtpZigidHJ1ZSIhPT1zLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItc3RvcCIpJiYocy5zZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXRvdWNoIiwieWVzIiksdF9zbGRzX3Njcm9sbEltYWdlcyh0LGwqXy1wKSxlLmlzRmluYWwpKXtpZihlLnZlbG9jaXR5WD4uNCkiZmFsc2UiPT1zLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItd2l0aC1jeWNsZSIpJiYxPT1fP189MTpfLS0scy5zZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXBvcyIsXyksMD09XyYmKHU9InllcyIpLHMuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1jeWNsZSIsdSksdF9zbGlkZU1vdmUodCwhMSxpKTtlbHNlIGlmKGUudmVsb2NpdHlYPC0uNCl7aWYoImZhbHNlIj09cy5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXdpdGgtY3ljbGUiKSYmKF89PWN8fGQmJl89PWMtYSsxKSlfPWQ/Yy1hOmM7ZWxzZXt2YXIgdj1yLnF1ZXJ5U2VsZWN0b3JBbGwoIi50LXNsZHNfX2l0ZW06bm90KC50LXNsZHNfX2l0ZW1fZHVtbXkpIiksZz12W3YubGVuZ3RoLTFdLEE9cGFyc2VGbG9hdChnLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZS1pbmRleCIpLDEwKTtpZihBPGMmJl89PUEpe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpO2IuaW5pdEV2ZW50KCJmZWVkc0xhc3RTbGlkZSIsITAsITApLHMuZGlzcGF0Y2hFdmVudChiKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJmZWVkc0xvYWRTbGlkZSIsKGZ1bmN0aW9uKCl7dF9zbGRzX3VwZGF0ZVNsaWRlcih0KX0pKX1fKyt9cy5zZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXBvcyIsXyksXz09YysxJiYodT0ieWVzIikscy5zZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWN5Y2xlIix1KSx0X3NsaWRlTW92ZSh0LCExLGkpfWVsc2UgZjw9LTMwL2M/KCJmYWxzZSI9PXMuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci13aXRoLWN5Y2xlIikmJihfPT1jfHxkJiZfPT1jLWErMSk/Xz1kP2MtYTpjOl8rKyxzLnNldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItcG9zIixfKSxfPT1jKzEmJih1PSJ5ZXMiKSxzLnNldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItY3ljbGUiLHUpLHRfc2xpZGVNb3ZlKHQsITEsaSkpOmY+PW0vYz8oImZhbHNlIj09cy5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXdpdGgtY3ljbGUiKSYmMT09Xz9fPTE6Xy0tLHMuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1wb3MiLF8pLDA9PV8mJih1PSJ5ZXMiKSxzLnNldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItY3ljbGUiLHUpLHRfc2xpZGVNb3ZlKHQsITEsaSkpOnRfc2xpZGVNb3ZlKHQsITEsaSk7cy5zZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXRvdWNoIiwiIiksbj0hMX19KSksaGFtbWVyLm9uKCJwYW5lbmQiLChmdW5jdGlvbigpe3Rfc2xpZGVNb3ZlKHQsITEsaSksbj0hMX0pKX19fX19fWZ1bmN0aW9uIHRfc2xkc19nZXRDdXJyZW50VHJhbnNsYXRlKHQpe3ZhciBlPXQucXVlcnlTZWxlY3RvcigiLnQtc2xkc19faXRlbXMtd3JhcHBlciIpO2lmKGUpe3ZhciBzPWdldENvbXB1dGVkU3R5bGUoZSkudHJhbnNmb3JtO2lmKHZvaWQgMCE9PXMmJiIiIT09cyl7dmFyIGk9cy5tYXRjaCgvXGQrL2cpO2lmKG51bGwhPT1pKXJldHVybiBwYXJzZUludChpWzBdLDEwKX19fWZ1bmN0aW9uIHRfc2xkc19jaGFuZ2VJbWFnZVVybCh0KXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpLHM9ZSYmInllcyI9PT1lLmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1sYXp5IiksaT10X3NsZHNfX2dldFJlYyh0KSxyO2kmJihyPXM/aS5xdWVyeVNlbGVjdG9yQWxsKCIudC1zbGRzX19pbWc6bm90KFtkYXRhLW9yaWdpbmFsXSkiKTppLnF1ZXJ5U2VsZWN0b3JBbGwoIi50LXNsZHNfX2ltZyIpLEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwociwoZnVuY3Rpb24odCl7dmFyIGU9dC5nZXRBdHRyaWJ1dGUoImRhdGEtc3JjIik7ZSYmKHQuc2V0QXR0cmlidXRlKCJzcmMiLGUpLHQucmVtb3ZlQXR0cmlidXRlKCJkYXRhLXNyYyIpKX0pKSl9ZnVuY3Rpb24gdF9zbGRzX29uSGFtbWVyTG9hZCh0LGUscyl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHdpbmRvd1t0XSllKCk7ZWxzZSB2YXIgaT1EYXRlLm5vdygpLHI9c2V0VGltZW91dCgoZnVuY3Rpb24gYSgpe3ZhciBkPURhdGUubm93KCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHdpbmRvd1t0XSl7aWYoZC1pPjdlMyl0aHJvdyBuZXcgRXJyb3IodCsiIGlzIHVuZGVmaW5lZCIpO3I9c2V0VGltZW91dChhLHN8fDEwMCl9ZWxzZSBlKCl9KSl9ZnVuY3Rpb24gdF9zbGRzX2ZhZGVPdXQodCxlLHMpe2lmKCJub25lIiE9PXQuc3R5bGUuZGlzcGxheSYmIXQuZ2V0QXR0cmlidXRlKCJkYXRhLWZhZGVvdXQtdGltZW91dCIpKXt2YXIgaT0xO2U9cGFyc2VJbnQoZSk7dmFyIHIsYT1zZXRJbnRlcnZhbCgoZnVuY3Rpb24oKXt0LnN0eWxlLm9wYWNpdHk9aSwoaS09LjEpPD0uMSYmKGNsZWFySW50ZXJ2YWwoYSksdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtZmFkZW91dC10aW1lb3V0IiksdC5zdHlsZS5kaXNwbGF5PSJub25lIiwiZnVuY3Rpb24iPT10eXBlb2YgcyYmcygpKX0pLGU+MD9lLzEwOjQwKTt0LnNldEF0dHJpYnV0ZSgiZGF0YS1mYWRlb3V0LXRpbWVvdXQiLGEpfX1mdW5jdGlvbiB0X3NsZHNfZmFkZUluKHQsZSxzKXtpZigoIjEiIT09Z2V0Q29tcHV0ZWRTdHlsZSh0KS5vcGFjaXR5JiYiIiE9PWdldENvbXB1dGVkU3R5bGUodCkub3BhY2l0eXx8Im5vbmUiPT09Z2V0Q29tcHV0ZWRTdHlsZSh0KS5kaXNwbGF5KSYmIXQuZ2V0QXR0cmlidXRlKCJkYXRhLWZhZGVpbi10aW1lb3V0Iikpe3ZhciBpPTAscj0oZT1wYXJzZUludChlKSk+MD9lLzEwOjQwO3Quc3R5bGUub3BhY2l0eT1pLHQuc3R5bGUuZGlzcGxheT0iYmxvY2siO3ZhciBhPXNldEludGVydmFsKChmdW5jdGlvbigpe3Quc3R5bGUub3BhY2l0eT1pLChpKz0uMSk+PTEmJihjbGVhckludGVydmFsKGEpLHQucmVtb3ZlQXR0cmlidXRlKCJkYXRhLWZhZGVpbi10aW1lb3V0IiksImZ1bmN0aW9uIj09dHlwZW9mIHMmJnMoKSl9KSxyKTt0LnNldEF0dHJpYnV0ZSgiZGF0YS1mYWRlaW4tdGltZW91dCIsYSl9fWZ1bmN0aW9uIHRfc2xkc19yYW5kb21Tb3J0RWxlbWVudHModCl7dmFyIGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCk7aWYoZS5sZW5ndGgpe2Uuc29ydCgoZnVuY3Rpb24oKXtyZXR1cm4uNS1NYXRoLnJhbmRvbSgpfSkpO3ZhciBzPXRbMF0ucGFyZW50Tm9kZTtyZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbih0KXtzLmFwcGVuZENoaWxkKHQpfSkpLGV9fWZ1bmN0aW9uIHRfc2xkc19fcHJvY2Nlc3NWaWRlbyh0KXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKGUscyl7dF9vbkZ1bmNMb2FkKCJ0X3ZpZGVvX19jcmVhdGVQbGF5ZXIiLChmdW5jdGlvbigpe3RfdmlkZW9fX2NyZWF0ZVBsYXllcih0KS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gZSh0KX0pKS5jYXRjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHModCl9KSl9KSl9KSl9ZnVuY3Rpb24gdF9zbGRzX19nZXRSZWModCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNyZWMiK3QpOnQgaW5zdGFuY2VvZiBFbGVtZW50P3Q6dFswXX1mdW5jdGlvbiB0X3RyaWdnZXJFdmVudCh0LGUpe3ZhciBzO2RvY3VtZW50LmNyZWF0ZUV2ZW50PyhzPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJIVE1MRXZlbnRzIikpLmluaXRFdmVudChlLCEwLCExKTpkb2N1bWVudC5jcmVhdGVFdmVudE9iamVjdCYmKChzPWRvY3VtZW50LmNyZWF0ZUV2ZW50T2JqZWN0KCkpLmV2ZW50VHlwZT1lKSxzLmV2ZW50TmFtZT1lLHQuZGlzcGF0Y2hFdmVudD90LmRpc3BhdGNoRXZlbnQocyk6dC5maXJlRXZlbnQ/dC5maXJlRXZlbnQoIm9uIitzLmV2ZW50VHlwZSxzKTp0W2VdP3RbZV0oKTp0WyJvbiIrZV0mJnRbIm9uIitlXSgpfXdpbmRvdy50X3NsZHNfX2lzaU9TPS9pUGhvbmV8aVBhZHxpUG9kL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KXx8bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNYWNpbnRvc2giKSYmIm9udG91Y2hlbmQiaW4gZG9jdW1lbnQ7CgpmdW5jdGlvbiB0X3Byb2RfX2luaXQodCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3JlYyIrdCk7aWYoZSl7dmFyIHI9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuanMtcHJvZHVjdCIpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwociwoZnVuY3Rpb24odCl7dC5xdWVyeVNlbGVjdG9yKCIuanMtcHJvZHVjdC1vcHRpb24sIC5qcy1wcm9kdWN0LW11bHRpb3B0aW9uIikmJnRfcHJvZF9faW5pdFByb2R1Y3QodCl9KSl9fWZ1bmN0aW9uIHRfcHJvZF9faW5pdFByb2R1Y3QodCxlKXsic3RyaW5nIj09dHlwZW9mIHQmJih0PWUpLHRfcHJvZF9faW5pdFByaWNlKHQpLHRfcHJvZF9fYWRkRXZlbnRzX19vcHRpb25zKHQpLHRfcHJvZF9fdXBkYXRlUHJpY2UodCxlKX1mdW5jdGlvbiB0X3Byb2RfX2luaXRQcmljZSh0KXtpZih0IGluc3RhbmNlb2YgRWxlbWVudHx8KHQ9dFswXSksdCl7dmFyIGU9dC5xdWVyeVNlbGVjdG9yKCIuanMtcHJvZHVjdC1wcmljZSIpO2V8fCh0Lmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlZW5kIiwnPGRpdiBzdHlsZT0iZGlzcGxheTpub25lOyIgY2xhc3M9ImpzLXByb2R1Y3QtcHJpY2UiPjwvZGl2PicpLGU9dC5xdWVyeVNlbGVjdG9yKCIuanMtcHJvZHVjdC1wcmljZSIpKTt2YXIgcj1lLnRleHRDb250ZW50LGM9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtcHJvZHVjdC1wcmljZS1kZWYiKSxuPWUuZ2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtcHJpY2UtZGVmLXN0ciIpO2lmKHIpe2lmKCFjJiYhbil7dmFyIGk9dF9wcm9kX19jbGVhblByaWNlKHIpO2Uuc2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtcHJpY2UtZGVmIixpKSxlLnNldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LXByaWNlLWRlZi1zdHIiLHIucmVwbGFjZSgvIi9nLCIiKSl9fWVsc2UgZS5zZXRBdHRyaWJ1dGUoImRhdGEtcHJvZHVjdC1wcmljZS1kZWYiLDApfX1mdW5jdGlvbiB0X3Byb2RfX3VwZGF0ZVByaWNlKHQsZSl7aWYodCBpbnN0YW5jZW9mIEVsZW1lbnR8fCh0PXRbMF0pLHQpe3ZhciByPXQucXVlcnlTZWxlY3RvcigiLmpzLXByb2R1Y3QtcHJpY2UiKSxjPXQucXVlcnlTZWxlY3RvckFsbCgiLmpzLXByb2R1Y3Qtb3B0aW9uLXZhcmlhbnRzIiksbj0wLGk9MDtpZihyKXt2YXIgbz1yLmdldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LXByaWNlLWRlZiIpO28qPTE7dmFyIGE9MCxkPWZ1bmN0aW9uIHQoZSl7aWYoZSl7dmFyIHI9dF9wcm9kX19jbGVhblByaWNlKGUpOy0xIT09ZS5pbmRleE9mKCIrIik/aSs9cjowIT09cGFyc2VGbG9hdChyKSYmKG89cil9ZWxzZSBhKz0xfTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGMsKGZ1bmN0aW9uKHQpe3ZhciBlPXQucXVlcnlTZWxlY3Rvcigib3B0aW9uOmNoZWNrZWQiKS5nZXRBdHRyaWJ1dGUoImRhdGEtcHJvZHVjdC12YXJpYW50LXByaWNlIik7ZChlKX0pKTt2YXIgcD10LnF1ZXJ5U2VsZWN0b3JBbGwoJy5qcy1wcm9kdWN0LW11bHRpb3B0aW9uIGlucHV0W3R5cGU9ImNoZWNrYm94Il06Y2hlY2tlZCcpLHU7aWYoQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChwLChmdW5jdGlvbih0KXt2YXIgZT10LmdldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LXZhcmlhbnQtcHJpY2UiKTtkKGUpfSkpLG49bytpLHIuY2xhc3NMaXN0LmNvbnRhaW5zKCJqcy1zdG9yZS1wcm9kLXByaWNlLXJhbmdlLXZhbCIpKXIuc2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtcHJpY2UtcmFuZ2UtdmFsIix0X3Byb2RfX3JvdW5kUHJpY2UobikpO2Vsc2UgaWYobj4wKXt2YXIgcz10X3Byb2RfX3Nob3dQcmljZSh0X3Byb2RfX3JvdW5kUHJpY2UobiksZSksbD1yLmdldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LXByaWNlLWRlZi1zdHIiKSxfPWE9PT1jLmxlbmd0aCxmPXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJqcy1zdG9yZS1wcm9kdWN0Iik7aWYoXyYmIWYpe3ZhciB2PXRfcHJvZF9fc2F2ZVVzZXJJbnB1dEluUHJpY2UobixzLGwpO3IuaW5uZXJIVE1MPXZ9ZWxzZSByLmlubmVySFRNTD1zfWVsc2Ugci5pbm5lckhUTUw9ci5nZXRBdHRyaWJ1dGUoImRhdGEtcHJvZHVjdC1wcmljZS1kZWYtc3RyIil9fX1mdW5jdGlvbiB0X3Byb2RfX3NhdmVVc2VySW5wdXRJblByaWNlKHQsZSxyKXtpZighcilyZXR1cm4gZTtpZigtMSE9PXIuaW5kZXhPZihlKSlyZXR1cm4gcjtpZih0PXQudG9TdHJpbmcoKSxlIT09cilpZih3aW5kb3cudGNhcnQmJiIwMCI9PT13aW5kb3cudGNhcnQuY3VycmVuY3lfZGVjKXt2YXIgYz13aW5kb3cudGNhcnQuY3VycmVuY3lfc2VwLG49ZS5yZXBsYWNlKGMrIjAwIiwiIik7aWYoLTEhPT1yLmluZGV4T2YobikpcmV0dXJuIHIucmVwbGFjZShuLGUpO2lmKC0xIT09ci5pbmRleE9mKHQpKXJldHVybiByLnJlcGxhY2UodCxlKX1lbHNlIGlmKC0xIT09ci5pbmRleE9mKHQpKXJldHVybiByLnJlcGxhY2UodCxlKTtyZXR1cm4gZX1mdW5jdGlvbiB0X3Byb2RfX2FkZEV2ZW50c19fb3B0aW9ucyh0KXtpZih0IGluc3RhbmNlb2YgRWxlbWVudHx8KHQ9dFswXSksdCl7dmFyIGU9dC5xdWVyeVNlbGVjdG9yQWxsKCIuanMtcHJvZHVjdC1vcHRpb24tdmFyaWFudHMiKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGUsKGZ1bmN0aW9uKHQpe3ZhciBlPXQuY2xvc2VzdCgiLmpzLXByb2R1Y3QiKTt0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKGZ1bmN0aW9uKCl7dF9wcm9kX191cGRhdGVQcmljZShlKSx0X3RyaWdnZXJFdmVudChkb2N1bWVudC5ib2R5LCJ0d2lzaGxpc3RfYWRkYnRuIil9KSl9KSk7dmFyIHI9dC5xdWVyeVNlbGVjdG9yQWxsKCcuanMtcHJvZHVjdC1tdWx0aW9wdGlvbiBpbnB1dFt0eXBlPSJjaGVja2JveCJdJyk7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChyLChmdW5jdGlvbih0KXt2YXIgZT10LmNsb3Nlc3QoIi5qcy1wcm9kdWN0Iik7dC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChmdW5jdGlvbigpe3RfcHJvZF9fdXBkYXRlUHJpY2UoZSksdF90cmlnZ2VyRXZlbnQoZG9jdW1lbnQuYm9keSwidHdpc2hsaXN0X2FkZGJ0biIpfSkpfSkpfX1mdW5jdGlvbiB0X3Byb2RfX2NsZWFuUHJpY2UodCl7cmV0dXJuIHQ/KHQ9KHQ9dC50b1N0cmluZygpKS5yZXBsYWNlKCIsIiwiLiIpLnJlcGxhY2UoL1teMC05Ll0vZywiIiksdD1wYXJzZUZsb2F0KHQpLnRvRml4ZWQoMiksaXNOYU4odCkmJih0PTApLHQ9cGFyc2VGbG9hdCh0KSwodCo9MSk8MCYmKHQ9MCkpOnQ9MCx0fWZ1bmN0aW9uIHRfcHJvZF9fcm91bmRQcmljZSh0KXtyZXR1cm4gdD8odD1wYXJzZUZsb2F0KHQpLnRvRml4ZWQoMiksdD1wYXJzZUZsb2F0KHQpLCh0Kj0xKTwwJiYodD0wKSk6dD0wLHR9ZnVuY3Rpb24gdF9wcm9kX19zaG93UHJpY2UodCxlKXtpZih0KXt2YXIgcjtpZih0PXQudG9TdHJpbmcoKSx3aW5kb3cudGNhcnQmJndpbmRvdy50Y2FydC5jdXJyZW5jeV9kZWMmJiIwMCI9PT13aW5kb3cudGNhcnQuY3VycmVuY3lfZGVjfHxlJiZlLmN1cnJlbmN5RGVjaW1hbCYmIjAwIj09PWUuY3VycmVuY3lEZWNpbWFsKWlmKC0xPT09dC5pbmRleE9mKCIuIikmJi0xPT09dC5pbmRleE9mKCIsIikpdCs9Ii4wMCI7ZWxzZSAxPT09dC5zdWJzdHIodC5pbmRleE9mKCIuIikrMSkubGVuZ3RoJiYodCs9IjAiKTt0PXQucmVwbGFjZSgvXEIoPz0oXGR7M30pKyg/IVxkKSkvZywiICIpLHQ9d2luZG93LnRjYXJ0JiZ3aW5kb3cudGNhcnQuY3VycmVuY3lfc2VwJiYiLiI9PT13aW5kb3cudGNhcnQuY3VycmVuY3lfc2VwfHxlJiZlLmN1cnJlbmN5U2VwYXJhdG9yJiYiLiI9PT1lLmN1cnJlbmN5U2VwYXJhdG9yP3QucmVwbGFjZSgiLCIsIi4iKTp0LnJlcGxhY2UoIi4iLCIsIil9ZWxzZSB0PSIiO3JldHVybiB0fWZ1bmN0aW9uIHRfdHJpZ2dlckV2ZW50KHQsZSl7dmFyIHI7ZG9jdW1lbnQuY3JlYXRlRXZlbnQ/KHI9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkhUTUxFdmVudHMiKSkuaW5pdEV2ZW50KGUsITAsITEpOmRvY3VtZW50LmNyZWF0ZUV2ZW50T2JqZWN0JiYoKHI9ZG9jdW1lbnQuY3JlYXRlRXZlbnRPYmplY3QoKSkuZXZlbnRUeXBlPWUpLHIuZXZlbnROYW1lPWUsdC5kaXNwYXRjaEV2ZW50P3QuZGlzcGF0Y2hFdmVudChyKTp0LmZpcmVFdmVudD90LmZpcmVFdmVudCgib24iK3IuZXZlbnRUeXBlLHIpOnRbZV0/dFtlXSgpOnRbIm9uIitlXSYmdFsib24iK2VdKCl9Cgp3aW5kb3cudFN0b3JlSXNTZWFyY2hCb3Q9L0JvdC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksd2luZG93LnRTdG9yZUlzTW9iaWxlPS9BbmRyb2lkfHdlYk9TfGlQaG9uZXxpUGFkfGlQb2R8QmxhY2tCZXJyeXxJRU1vYmlsZXxPcGVyYSBNaW5pL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSx3aW5kb3cudFN0b3JlQnJvd3Nlckxhbmc9KHdpbmRvdy5uYXZpZ2F0b3IudXNlckxhbmd1YWdlfHx3aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlKS50b1VwcGVyQ2FzZSgpLnNsaWNlKDAsMiksd2luZG93LnRfc3RvcmVfZW5kcG9pbnQ9InN0b3JlLnRpbGRhY2RuLmNvbSI7dmFyIHRfc3RvcmVfUE9QVVBfU0hPV0VEX0VWRU5UX05BTUU9ImNhdGFsb2c6cG9wdXBTaG93ZWQiLHRfc3RvcmVfUE9QVVBfQ0xPU0VEX0VWRU5UX05BTUU9ImNhdGFsb2c6cG9wdXBDbG9zZWQiO2Z1bmN0aW9uIHRfc3RvcmVfZml4SW1ncygpe3ZhciB0LGU7L1ZlcnNpb25cLzE2XC4zLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYvU2FmYXJpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiZbIjc1NCIsIjc3NiIsIjc3OCIsIjc4NiIsIjEwMjUiXS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1yZWNvcmQtdHlwZT0iJyt0KyciXSAudC1pbWcnKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGUsKGZ1bmN0aW9uKHQpe3Quc3R5bGUub2JqZWN0Rml0PSJjb250YWluIn0pKX0pKX1mdW5jdGlvbiB0X3N0b3JlX2luaXQodCxlKXt2YXIgcj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjIit0KSxvO3ImJih3aW5kb3cudFN0b3JlSW5pdHx8KHdpbmRvdy50U3RvcmVJbml0PXt9KSx3aW5kb3cudFN0b3JlSW5pdFt0XT0hMCwiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiaW4gd2luZG93JiZPYmplY3Qua2V5cyh3aW5kb3cudFN0b3JlSW5pdCkubGVuZ3RoPjc/KHdpbmRvdy50U3RvcmVJbml0W3RdPSJsYXp5IixuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGZ1bmN0aW9uKHIsbyl7ci5mb3JFYWNoKChmdW5jdGlvbihyKXtpZihyLmlzSW50ZXJzZWN0aW5nKXt2YXIgaT1yLnRhcmdldDtvLnVub2JzZXJ2ZShpKSwibGF6eSI9PT13aW5kb3cudFN0b3JlSW5pdFt0XSYmKHRfc3RvcmVfbGF6eUluaXQodCxlKSx3aW5kb3cudFN0b3JlSW5pdFt0XT0hMCl9fSkpfSkse3Jvb3RNYXJnaW46IjE1MHB4IDBweCJ9KS5vYnNlcnZlKHIpKTp0X3N0b3JlX2xhenlJbml0KHQsZSkpfWZ1bmN0aW9uIHRfc3RvcmVfbGF6eUluaXQodCxlKXt2YXIgcj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjIit0KSxvO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbGxyZWNvcmRzIikhPT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fcHJvZHVjdC1zbmlwcGV0IikmJmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbGxyZWNvcmRzIikuY29udGFpbnMoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtc3RvcmVfX3Byb2R1Y3Qtc25pcHBldCIpKXx8dF9zdG9yZV9pbml0Um91dGluZygpLHdpbmRvdy50U3RvcmVEaWN0fHx0X3N0b3JlX2dldERpY3RPYmooKTt2YXIgaT1yLnF1ZXJ5U2VsZWN0b3IoIi5qcy1zdG9yZSIpLHM9dF9zdG9yZV9nZXRfcHJvZHVjdFBvcHVwX2h0bWwodCxlKTtpJiZpLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlZW5kIixzKTt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpLmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1tb2RlIik7ZS5pc1B1Ymxpc2hlZFBhZ2U9ImVkaXQiIT09YSYmInByZXZpZXciIT09YSxlLmlzUHVibGlzaGVkUGFnZSYmdF9zdG9yZV9jaGVja1VybChlLHQpO3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWNvcmQiK3QpLGQ7aWYobiYmIWUuaXNQdWJsaXNoZWRQYWdlJiYieSI9PW4uZ2V0QXR0cmlidXRlKCJvZmYiKSlyZXR1cm47dmFyIGM9ci5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtZ3JpZC1jb250LXByZWxvYWRlciIpO2lmKCIiIT09ZS5zdG9yZXBhcnQpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7YyYmYy5jbGFzc0xpc3QucmVtb3ZlKCJ0LXN0b3JlX19ncmlkLWNvbnQtcHJlbG9hZGVyX2hpZGRlbiIpfSksMWUzKTt2YXIgbD0xLHA9dF9zdG9yZV9wYXJhbXNUb09iaih0LGUpO2lmKHBbdF0pe3ZhciBfPXRfc3RvcmVfdXBkYXRlT3B0aW9uc0Jhc2VkT25VcmwoZSxwLHQpO18mJihlPV8pfWlmKGUuc2lkZWJhcil7dmFyIHU9ci5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtcGFydHMtc2VsZWN0LWNvbnRhaW5lciIpLGc7aWYodSl1LnF1ZXJ5U2VsZWN0b3IoIi50OTUxX19zaWRlYmFyIil8fHUuaW5zZXJ0QWRqYWNlbnRIVE1MKCJhZnRlcmJlZ2luIiwnPGRpdiBjbGFzcz0idDk1MV9fc2lkZWJhci13cmFwcGVyIj48L2Rpdj4nKX12YXIgdj1mdW5jdGlvbiByKCl7cFt0XSYmcFt0XS5wYWdlJiYobD1BcnJheS5pc0FycmF5KHBbdF0ucGFnZSk/cFt0XS5wYWdlLmpvaW4oIiIpOnBbdF0ucGFnZSksdF9zdG9yZV9sb2FkUHJvZHVjdHMoIiIsdCxlLGwpLHRfc3RvcmVfbW9iaWxlSG9yaXpfY2hlY2tCdG5WaXNpYmlsaXR5KHQsZSl9LHk9ZnVuY3Rpb24gbygpe3BbdF0mJl8mJnIuYWRkRXZlbnRMaXN0ZW5lcigiY29udHJvbHNEcmF3biIsKGZ1bmN0aW9uKCl7dF9zdG9yZV9maWx0ZXJzX3JlbmRlcl9zZWxlY3RlZChlLHQpfSkpLGUuc2lkZWJhciYmci5hZGRFdmVudExpc3RlbmVyKCJjb250cm9sc0RyYXduIiwoZnVuY3Rpb24oKXt0X3N0b3JlX2ZpbHRlcnNfb3B0c19zb3J0KGUsdCl9KSksbD0xLHYoKX0sbT1mdW5jdGlvbiBlKHIpe2lmKHdpbmRvdy50U3RvcmVGaWx0ZXJzfHwod2luZG93LnRTdG9yZUZpbHRlcnM9e30pLHImJihyLmZpbHRlcnMmJnIuZmlsdGVycy5sZW5ndGg+MHx8ci5zZWFyY2h8fHIuc29ydCkpe3dpbmRvdy50U3RvcmVGaWx0ZXJzW3RdPXI7dmFyIG89InRpbGRhLWNhdGFsb2ctZmlsdGVycy0xLjAiO2lmKGRvY3VtZW50LmhlYWQucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyYyo9IicrbysnIl0nKSl0X3N0b3JlX29uRnVuY0xvYWQoInRfc3RvcmVfZmlsdGVyc19pbml0IiwoZnVuY3Rpb24oKXt5KCl9KSk7ZWxzZXt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtpLnR5cGU9InRleHQvamF2YXNjcmlwdCIsaS5zcmM9Imh0dHBzOi8vc3RhdGljLnRpbGRhY2RuLiIrdF9zdG9yZV9fZ2V0Um9vdFpvbmUoKSsiL2pzLyIrbysiLm1pbi5qcyIsaS5vbmxvYWQ9eSxpLm9uZXJyb3I9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gbG9hZCB0aWxkYS1jYXRhbG9nLWZpbHRlcnM6ICIsdGhpcy5zcmMpLHYoKX0sZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChpKX1pZighZG9jdW1lbnQuaGVhZC5xdWVyeVNlbGVjdG9yKCdsaW5rW2hyZWYqPSInK28rJyJdJykpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtzLnJlbD0ic3R5bGVzaGVldCIscy50eXBlPSJ0ZXh0L2NzcyIscy5ocmVmPSJodHRwczovL3N0YXRpYy50aWxkYWNkbi4iK3Rfc3RvcmVfX2dldFJvb3Rab25lKCkrIi9jc3MvIitvKyIubWluLmNzcyIscy5tZWRpYT0iYWxsIixkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHMpfX1lbHNlIHYoKX07aWYodF9zdG9yZV9sb2FkRmlsdGVycyhlLG0sKGZ1bmN0aW9uKHQpe3Rfc3RvcmVfY2hhbmdlRW5kcG9pbnQodCwoZnVuY3Rpb24oKXt0X3N0b3JlX2xvYWRGaWx0ZXJzKGUsbSl9KSl9KSksZS5pc0hvcml6T25Nb2Ipe3ZhciBmPXRfc3RvcmVfZ2V0X2hhbmRJY29uX2h0bWwodCxlLmhvcml6b250YWxTY3JvbGxIaW50KTtjJiZjLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlYmVnaW4iLGYpfWlmKGUudGFicyl7dmFyIGg9InRpbGRhLWNhdGFsb2ctdGFicy0xLjAiLHcsYjtpZighZG9jdW1lbnQuaGVhZC5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbc3JjKj0iJytoKyciXScpKSh3PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpKS50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiLHcuc3JjPSJodHRwczovL3N0YXRpYy50aWxkYWNkbi4iK3Rfc3RvcmVfX2dldFJvb3Rab25lKCkrIi9qcy8iK2grIi5taW4uanMiLHcub25lcnJvcj1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBsb2FkIHRpbGRhLWNhdGFsb2ctdGFiczogIix0aGlzLnNyYyl9LGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodyk7aWYoIWRvY3VtZW50LmhlYWQucXVlcnlTZWxlY3RvcignbGlua1tocmVmKj0iJytoKyciXScpKShiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKSkucmVsPSJzdHlsZXNoZWV0IixiLnR5cGU9InRleHQvY3NzIixiLmhyZWY9Imh0dHBzOi8vc3RhdGljLnRpbGRhY2RuLiIrdF9zdG9yZV9fZ2V0Um9vdFpvbmUoKSsiL2Nzcy8iK2grIi5taW4uY3NzIixiLm1lZGlhPSJhbGwiLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoYil9aWYoZS5zaG93UGFnaW5hdGlvbiYmIm9uIj09PWUuc2hvd1BhZ2luYXRpb24pe3ZhciBoPSJ0aWxkYS1jYXRhbG9nLXBhZ2luYXRpb24tMS4wIix3LGI7aWYoIWRvY3VtZW50LmhlYWQucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyYyo9IicraCsnIl0nKSkodz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSkudHlwZT0idGV4dC9qYXZhc2NyaXB0Iix3LnNyYz0iaHR0cHM6Ly9zdGF0aWMudGlsZGFjZG4uIit0X3N0b3JlX19nZXRSb290Wm9uZSgpKyIvanMvIitoKyIubWluLmpzIix3Lm9uZXJyb3I9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gbG9hZCB0aWxkYS1jYXRhbG9nLXBhZ2luYXRpb246ICIsdGhpcy5zcmMpfSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHcpO2lmKCFkb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3IoJ2xpbmtbaHJlZio9IicraCsnIl0nKSkoYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIikpLnJlbD0ic3R5bGVzaGVldCIsYi50eXBlPSJ0ZXh0L2NzcyIsYi5ocmVmPSJodHRwczovL3N0YXRpYy50aWxkYWNkbi4iK3Rfc3RvcmVfX2dldFJvb3Rab25lKCkrIi9jc3MvIitoKyIubWluLmNzcyIsYi5tZWRpYT0iYWxsIixkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGIpfXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRfdGhyb3R0bGUoKGZ1bmN0aW9uKCl7ciYmKGUucHJvZENhcmQmJiIxMDI1Ij09ZS5wcm9kQ2FyZC5ibG9ja0lkP3Rfc3RvcmVfdW5pZnlDYXJkc1dpZHRoKHQpOnRfc3RvcmVfdW5pZnlDYXJkc0hlaWdodHModCxlKSx0X3N0b3JlX2xvYWRNb3JlQnRuX2Rpc3BsYXkodCksKGUuc2lkZWJhcnx8T2JqZWN0LmtleXMoZS5maWx0ZXJzfHx7fSkubGVuZ3RoPjEpJiZ0X3N0b3JlX21vdmVTZWFyaFNvcnQodCxlKSxlLnNob3dQYWdpbmF0aW9uJiYib24iPT09ZS5zaG93UGFnaW5hdGlvbiYmdF9zdG9yZV9vbkZ1bmNMb2FkKCJ0X3N0b3JlX3BhZ2luYXRpb25fZGlzcGxheSIsKGZ1bmN0aW9uKCl7dF9zdG9yZV9wYWdpbmF0aW9uX2Rpc3BsYXkodCl9KSkpfSkpKTt2YXIgUz1yLnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlIik7UyYmUy5hZGRFdmVudExpc3RlbmVyKCJkaXNwbGF5Q2hhbmdlZCIsKGZ1bmN0aW9uKCl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0X3N0b3JlX3VuaWZ5Q2FyZHNIZWlnaHRzKHQsZSl9KSl9KSksUyYmUy5hZGRFdmVudExpc3RlbmVyKCJkaXNwbGF5Q2hhbmdlZCIsKGZ1bmN0aW9uKCl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0X3N0b3JlX3VuaWZ5Q2FyZHNXaWR0aCh0KX0pKX0pKTt0cnl7ZS52ZXJ0aWNhbEFsaWduQnV0dG9ucyYmKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRfdGhyb3R0bGUoKGZ1bmN0aW9uKCl7dF9zdG9yZV92ZXJ0aWNhbEFsaWduQnV0dG9ucyh0LGUpfSksNTAwKSksUyYmUy5hZGRFdmVudExpc3RlbmVyKCJkaXNwbGF5Q2hhbmdlZCIsKGZ1bmN0aW9uKCl7dF9zdG9yZV92ZXJ0aWNhbEFsaWduQnV0dG9ucyh0LGUpfSkpKX1jYXRjaChBKXtjb25zb2xlLmxvZygidmVydGljYWxBbGlnbkJ1dHRvbnMgZXJyb3I6ICIrQSl9ZS5wb3B1cF9vcHRzLmZpeGVkQnV0dG9uJiZ0X3N0b3JlX2ZpeGVkUG9wdXBCdXR0b24odCl9ZWxzZSBpZihjLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGUuc2lkZWJhcil7dmFyIEU9ci5xdWVyeVNlbGVjdG9yKCIudDk1MV9fZ3JpZC1jb250Iik7RSYmRS5jbGFzc0xpc3QucmVtb3ZlKCJ0OTUxX19ncmlkLWNvbnRfaGlkZGVuIil9fWZ1bmN0aW9uIHRfc3RvcmVfaGlzdG9yeV9wdXNoU3RhdGUodCxlLHIpe3RyeXt2b2lkIDAhPT1oaXN0b3J5LnB1c2hTdGF0ZSYmd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKHQsZSxyKX1jYXRjaChvKXtjb25zb2xlLmxvZyhvKX19ZnVuY3Rpb24gdF9zdG9yZV9wcm9kdWN0SW5pdCh0LGUscil7dF9zdG9yZV9zbmlwcGV0X2luaXRQcm9kdWN0KHQsZSxyKX1mdW5jdGlvbiB0X3N0b3JlX3NuaXBwZXRfaW5pdFByb2R1Y3QodCxlLHIpe3ZhciBvPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNyZWMiK3QpLGk9by5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fcHJvZHVjdC1zbmlwcGV0LmpzLXN0b3JlLXByb2R1Y3QiKTtpLnNldEF0dHJpYnV0ZSgiZGF0YS1jYXJkLXNpemUiLCJsYXJnZSIpO3ZhciBzPXRfc3RvcmVfc25pcHBldF9nZXRKc29uRnJvbVVybCgpO2lmKCIxMDAiPT09ZS5wb3B1cF9vcHRzLnBvcHVwQ29udGFpbmVyKXt2YXIgYT1pLnF1ZXJ5U2VsZWN0b3IoIi50LWNvbnRhaW5lciIpO2EuY2xhc3NMaXN0LmFkZCgidC1jb250YWluZXJfZmx1aWQiKSxhLnN0eWxlLm1heFdpZHRoPSIxMDAlIixhLmZpcnN0RWxlbWVudENoaWxkJiZhLmZpcnN0RWxlbWVudENoaWxkLmNsYXNzTGlzdC5hZGQoInQtY29udGFpbmVyX2ZsdWlkIil9dF9zdG9yZV9zbmlwcGV0X2NvcHlUeXBvZ3JhcGh5VG9TbmlwcGV0KHQsZSksdF9zdG9yZV9kcmF3UHJvZFBvcHVwX2RyYXdHYWxsZXJ5KHQsaSxyLGUpO3ZhciBuPWZ1bmN0aW9uIG8oKXt0X3N0b3JlX2FkZFByb2R1Y3RPcHRpb25zKHQscixpLGUsImxhcmdlY2FyZCIpLHRfc3RvcmVfc25pcHBldF9jaG9vc2VFZGl0aW9uRnJvbVVybCh0LHIsaSxlKSx0X3N0b3JlX29uRnVuY0xvYWQoInRfcHJvZF9faW5pdCIsKGZ1bmN0aW9uKCl7dF9wcm9kX19pbml0KHQpfSkpfSxkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbGxyZWNvcmRzIik7aWYoZCl7dmFyIGM9ZC5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtcHJvamVjdC1sYW5nIik7YyYmKHdpbmRvdy50U3RvcmVCcm93c2VyTGFuZz1jKX13aW5kb3cudFN0b3JlRGljdHx8dF9zdG9yZV9nZXREaWN0T2JqKCk7dmFyIGw9aS5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtcHJvZC1za3UiKTtpZihsJiYibm9uZSIhPT1sLnN0eWxlLmRpc3BsYXkmJmwuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmViZWdpbiIsd2luZG93LnRTdG9yZURpY3Quc2t1KyI6ICIpLGkuc2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtZ2VuLXVpZCIsci51aWQpLGkuc2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtcGFydC11aWQiLHIucGFydHVpZHM/ci5wYXJ0dWlkcy5qb2luKCIsIik6IiIpLGUudGFicyl7dmFyIHA9InRpbGRhLWNhdGFsb2ctdGFicy0xLjAiO2lmKGRvY3VtZW50LmhlYWQucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyYyo9IicrcCsnIl0nKSl0X29uRnVuY0xvYWQoInRfc3RvcmVfdGFic19pbml0U25pcHBldCIsKGZ1bmN0aW9uKCl7dF9zdG9yZV90YWJzX2luaXRTbmlwcGV0KHQsZSxpLHIpLG4oKX0pKTtlbHNle3ZhciBfPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO18udHlwZT0idGV4dC9qYXZhc2NyaXB0IixfLnNyYz0iaHR0cHM6Ly9zdGF0aWMudGlsZGFjZG4uIit0X3N0b3JlX19nZXRSb290Wm9uZSgpKyIvanMvIitwKyIubWluLmpzIixfLm9ubG9hZD1mdW5jdGlvbigpe3Rfb25GdW5jTG9hZCgidF9zdG9yZV90YWJzX2luaXRTbmlwcGV0IiwoZnVuY3Rpb24oKXt0X3N0b3JlX3RhYnNfaW5pdFNuaXBwZXQodCxlLGksciksbigpfSkpfSxfLm9uZXJyb3I9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gbG9hZCB0aWxkYS1jYXRhbG9nLXRhYnM6ICIsdGhpcy5zcmMpfSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKF8pfWlmKCFkb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3IoJ2xpbmtbaHJlZio9IicrcCsnIl0nKSl7dmFyIHU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpO3UucmVsPSJzdHlsZXNoZWV0Iix1LnR5cGU9InRleHQvY3NzIix1LmhyZWY9Imh0dHBzOi8vc3RhdGljLnRpbGRhY2RuLiIrdF9zdG9yZV9fZ2V0Um9vdFpvbmUoKSsiL2Nzcy8iK3ArIi5taW4uY3NzIix1Lm1lZGlhPSJhbGwiLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodSl9fWVsc2UgdF9zdG9yZV9pbml0VGV4dEFuZENoYXJhY3RlcmlzdGljcyhpLHIpLG4oKTtpZih0X3N0b3JlX3RyaWdnZXJFdmVudChkb2N1bWVudC5ib2R5LCJ0d2lzaGxpc3RfYWRkYnRuIiksIWUucmVsZXZhbnRzX3NsaWRlcil7dmFyIGc9by5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fcmVsZXZhbnRzLWdyaWQtY29udC50LXN0b3JlX19ncmlkLWNvbnRfbW9iaWxlLW9uZS1yb3ciKTtpZihnKXt2YXIgdj10X3N0b3JlX2dldF9oYW5kSWNvbl9odG1sKHQsZS5ob3Jpem9udGFsU2Nyb2xsSGludCk7Zy5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWJlZ2luIix2KX19ZS5wb3B1cF9vcHRzLmZpeGVkQnV0dG9uJiZ0X3N0b3JlX2ZpeGVkUG9wdXBCdXR0b24odCksdF9zdG9yZV9ob3Zlclpvb21faW5pdCh0KSx0X3N0b3JlX2dldF9wcm9kdWN0UG9wdXBfY2xvc2VJY29uX2NvbG9yKHQsZSksc2V0VGltZW91dCgoZnVuY3Rpb24oKXshd2luZG93LnRTdG9yZUlzU2VhcmNoQm90JiZ3aW5kb3cuVGlsZGEmJiJmdW5jdGlvbiI9PXR5cGVvZiBUaWxkYS5zZW5kRWNvbW1lcmNlRXZlbnQmJihzLmVkaXRpb251aWQ/ci5lZGl0aW9ucy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnVpZD09PXMuZWRpdGlvbnVpZCYmVGlsZGEuc2VuZEVjb21tZXJjZUV2ZW50KCJkZXRhaWwiLFt7aWQ6IiIrdC51aWQsdWlkOiIiK3QudWlkLHByaWNlOiIiK3QucHJpY2Usc2t1OnQuc2t1P3Quc2t1OiIiLG5hbWU6ci50aXRsZX1dKX0pKTpUaWxkYS5zZW5kRWNvbW1lcmNlRXZlbnQoImRldGFpbCIsW3tpZDoiIisoci5pZD9yLmlkOnIudWlkKSx1aWQ6IiIrci51aWQscHJpY2U6IiIrKHIucHJpY2VfbWluP3IucHJpY2VfbWluOnIucHJpY2UpLHNrdTpyLnNrdT9yLnNrdToiIixuYW1lOnIudGl0bGV9XSkpfSksM2UzKX1mdW5jdGlvbiB0X3N0b3JlX2luaXRSb3V0aW5nKCl7d2luZG93Lm9ucG9wc3RhdGU9ZnVuY3Rpb24oKXtpZih3aW5kb3cuaGlzdG9yeS5zdGF0ZSYmd2luZG93Lmhpc3Rvcnkuc3RhdGUucHJvZHVjdERhdGEpe3ZhciB0PXdpbmRvdy5oaXN0b3J5LnN0YXRlLnByb2R1Y3REYXRhLGUscixvLGk7dF9zdG9yZV9vcGVuUHJvZHVjdFBvcHVwKHQucmVjaWQsdC5vcHRzLHQucHJvZHVjdE9iaix0LmlzUmVsZXZhbnRzU2hvdyl9fX1mdW5jdGlvbiB0X3N0b3JlX3ZlcnRpY2FsQWxpZ25CdXR0b25zKHQsZSl7dmFyIHI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlYyIrdCk7aWYocil7dmFyIG89ci5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtZ3JpZC1jb250Iik7byYmby5jbGFzc0xpc3QuYWRkKCJ0LXN0b3JlX192YWxpZ24tYnV0dG9ucyIpO3ZhciBpPXIucXVlcnlTZWxlY3RvckFsbCgiLmpzLXN0b3JlLWdyaWQtY29udCAudC1zdG9yZV9fY2FyZF9fdGV4dHdyYXBwZXIiKSxzPTAsYT1wYXJzZUludChlLmJsb2Nrc0luUm93LDEwKSxuPXdpbmRvdy5pbm5lcldpZHRoPD00ODAsZD13aW5kb3cuaW5uZXJXaWR0aDw9OTYwJiZ3aW5kb3cuaW5uZXJXaWR0aD40ODAsYz0hISh3aW5kb3cuaW5uZXJXaWR0aDw9OTYwJiZyLnF1ZXJ5U2VsZWN0b3IoIi5qcy1zdG9yZS1ncmlkLWNvbnQudC1zdG9yZV9fZ3JpZC1jb250X21vYmlsZS1vbmUtcm93IikpLGw9ISEod2luZG93LmlubmVyV2lkdGg8PTQ4MCYmci5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fbW9iaWxlLXR3by1jb2x1bW5zIikpO24mJihhPTEpLGQmJihhPTIpLGwmJihhPTIpLGMmJihhPTk5OTk5OSk7dmFyIHA9MSxfPVtdO2lmKGkmJkFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoaSwoZnVuY3Rpb24odCl7dC5zdHlsZS5oZWlnaHQ9InVuc2V0IiwxPT09YT90LnN0eWxlLmhlaWdodD0iYXV0byI6KF8ucHVzaCh0KSx0Lm9mZnNldEhlaWdodD5zJiYocz10Lm9mZnNldEhlaWdodCksQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChfLChmdW5jdGlvbih0KXt0LnN0eWxlLmhlaWdodD1zKyJweCJ9KSkscD09PWEmJihwPTAscz0wLF89W10pLHArKyl9KSksZS5zaG93UmVsZXZhbnRzKXt2YXIgdT1yLnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1wcm9kdWN0LXJlbGV2YW50IC50LXN0b3JlX19jYXJkX190ZXh0d3JhcHBlciIpLGc9MCx2PVtdO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodSwoZnVuY3Rpb24odCl7dC5zdHlsZS5oZWlnaHQ9InVuc2V0In0pKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHUsKGZ1bmN0aW9uKHQpe3YucHVzaCh0KSx0Lm9mZnNldEhlaWdodD5nJiYoZz10Lm9mZnNldEhlaWdodCksQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh2LChmdW5jdGlvbih0KXt0LnN0eWxlLmhlaWdodD1nKyJweCJ9KSl9KSl9fX1mdW5jdGlvbiB0X3N0b3JlX2hvdmVyWm9vbV9pbml0KHQpe3ZhciBlPSJodHRwczovL3N0YXRpYy50aWxkYWNkbi4iK3Rfc3RvcmVfX2dldFJvb3Rab25lKCkrIi9qcy90aWxkYS1ob3Zlci16b29tLTEuMC5taW4uanMiLHI7d2luZG93LnRTdG9yZUlzTW9iaWxlfHxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjIit0KS5xdWVyeVNlbGVjdG9yKCJbZGF0YS1ob3Zlci16b29tXSIpJiZ0X3N0b3JlX19sb2FkSlNGaWxlKGUsKGZ1bmN0aW9uKCl7dF9ob3Zlclpvb21faW5pdCh0KX0pKX1mdW5jdGlvbiB0X3N0b3JlX2xvYWRQcm9kdWN0cyh0LGUscixvLGkpe3dpbmRvdy50U3RvcmVQcm9kdWN0c1JlcXVlc3RlZD0hMDt2YXIgcz0icmVsZXZhbnRzIj09PXQsYT1EYXRlLm5vdygpLG49ci5zdG9yZXBhcnQsZD0hb3x8MT09PXBhcnNlSW50KG8sMTApLGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlYyIrZSk7aWYoYyl7dmFyIGw9cz9jLnF1ZXJ5U2VsZWN0b3IoIi5qcy1zdG9yZS1yZWxldmFudHMtZ3JpZC1jb250Iik6Yy5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtZ3JpZC1jb250IikscD0iOTczIj09PWMuZ2V0QXR0cmlidXRlKCJkYXRhLXJlY29yZC10eXBlIiksXyxsO2lmKHMpXz17c3RvcmVwYXJ0dWlkOm4scHJvZHVjdHVpZDppLmN1cnJlbnRQcm9kdWN0VWlkLHF1YW50aXR5OmkucmVsZXZhbnRzUXVhbnRpdHksbWV0aG9kOmkucmVsZXZhbnRzTWV0aG9kLHNvcnQ6aS5yZWxldmFudHNTb3J0fSwobD1jLnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19yZWxldmFudHMtZ3JpZC1jb250IikpJiYobC5zdHlsZS5vcGFjaXR5PTApO2Vsc2UgXz17c3RvcmVwYXJ0dWlkOm4scmVjaWQ6ZSxjOmF9O2lmKGQmJihfLmdldHBhcnRzPSEwLF8uZ2V0b3B0aW9ucz0hMCksbyYmKF8uc2xpY2U9byksci5maWx0ZXJzJiYoXy5maWx0ZXJzPXIuZmlsdGVycyxfLmdldHBhcnRzPSEwKSxyLnNvcnQmJiFzJiYoXy5zb3J0PXIuc29ydCksci5zaXplJiZyLnNpemU+MCYmKF8uc2l6ZT1yLnNpemUpLHImJnIuZGVmYXVsdFNvcnQmJnIuZGVmYXVsdFNvcnQuaW5fc3RvY2smJnMmJihfLmZpbHRlcnN8fChfLmZpbHRlcnM9e30pLF8uZmlsdGVycy5xdWFudGl0eT0ieSIpLCF3aW5kb3cudF9zdG9yZV9lbmRwb2ludCl7d2luZG93LnRfc3RvcmVfZW5kcG9pbnQ9InN0b3JlLnRpbGRhY2RuLmNvbSI7dHJ5e3ZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbGxyZWNvcmRzIikuZ2V0QXR0cmlidXRlKCJkYXRhLXRpbGRhLXJvb3Qtem9uZSIpO3UmJih3aW5kb3cudF9zdG9yZV9lbmRwb2ludD0ic3RvcmUudGlsZGFhcGkuIit1KX1jYXRjaChoKXtjb25zb2xlLmxvZyhoKX19dmFyIGc9Imh0dHBzOi8vIit3aW5kb3cudF9zdG9yZV9lbmRwb2ludCsiL2FwaSIrKHM/Ii9nZXRyZWxldmFudHByb2R1Y3RzLyI6Ii9nZXRwcm9kdWN0c2xpc3QvIik7aWYoIXIuaXNQdWJsaXNoZWRQYWdlKXt2YXIgdj13aW5kb3cubG9jYXRpb24uaG9zdG5hbWUuc3BsaXQoIi4iKSx5PSJ0aWxkYS4iK3Zbdi5sZW5ndGgtMV07Xy5wcm9qZWN0aWQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKS5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtcHJvamVjdC1pZCIpLGc9Imh0dHBzOi8vIit5KyIvcHJvamVjdHMvc3RvcmUiKyhzPyIvZ2V0cmVsZXZhbnRwcm9kdWN0cy8iOiIvZ2V0cHJvZHVjdHNsaXN0LyIpfXZhciBtPURhdGUubm93KCk7d2luZG93LnRTdG9yZVhIUnx8KHdpbmRvdy50U3RvcmVYSFI9e30pLHdpbmRvdy50U3RvcmVYSFJbZV0mJih3aW5kb3cudFN0b3JlWEhSW2VdLmFib3J0KCksZGVsZXRlIHdpbmRvdy50U3RvcmVYSFJbZV0pO3ZhciBmPW5ldyBYTUxIdHRwUmVxdWVzdDt3aW5kb3cudFN0b3JlWEhSW2VdPWYsZi5vbmxvYWQ9ZnVuY3Rpb24oKXtpZihmLnJlYWR5U3RhdGU9PT1mLkRPTkUmJjIwMD09PWYuc3RhdHVzKXt2YXIgdD1mLnJlc3BvbnNlVGV4dDtjbGVhclRpbWVvdXQoYy5nZXRBdHRyaWJ1dGUoImRhdGEtcHJlbG9hZGVyLXRpbWVvdXQiKSk7dmFyIGk9Yy5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtZ3JpZC1jb250LXByZWxvYWRlciIpO2lmKGkmJihpLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSxyLnNpZGViYXIpe3ZhciBhPWMucXVlcnlTZWxlY3RvcigiLnQ5NTFfX2dyaWQtY29udCIpO2EmJmEuY2xhc3NMaXN0LnJlbW92ZSgidDk1MV9fZ3JpZC1jb250X2hpZGRlbiIpfWlmKGQmJmwmJihsLmlubmVySFRNTD0iIiksInN0cmluZyI9PXR5cGVvZiB0JiYieyIhPT10LnN1YnN0cmluZygwLDEpJiYoLTEhPT10LmluZGV4T2YoIkVSUk9SOiIpfHwtMSE9PXQuaW5kZXhPZigiV3JvbmciKSkpe3ZhciBuPXRfc3RvcmVfZ2V0X2Vycm9yQm94KHIsdCk7cmV0dXJuIGwuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLG4pLHZvaWQgdF9zdG9yZV9fZmFkZUluKGMucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLWVycm9yLW1zZyIpKX1pZigiIj09PXQpcmV0dXJuO3ZhciBfPXt9O3RyeXsoXz1KU09OLnBhcnNlKHQpKS5wYXJ0bGlua3MmJihyLmxpbmtzU2l6ZUNoYXJ0PV8ucGFydGxpbmtzKX1jYXRjaChoKXtjb25zb2xlLmxvZyhoKX1pZigib2JqZWN0IiE9dHlwZW9mIF8pcmV0dXJuO3ZhciB1PXM/Xy5yZWxldmFudHM6Xy5wcm9kdWN0cztpZihfLm9wdGlvbnMmJl8ub3B0aW9ucy5sZW5ndGg+PTEmJih3aW5kb3cudFN0b3JlT3B0aW9uc0xpc3Q9Xy5vcHRpb25zKSx0X3N0b3JlX3Byb2Nlc3ModSxlLHIsISFvLHMsXyksXy5wYXJ0cyYmXy5wYXJ0cy5sZW5ndGg+MSYmIWMucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLXBhcnRzLXN3aXRjaGVyIikmJiFyLmhpZGVTdG9yZVBhcnRzKXt2YXIgZz1mdW5jdGlvbiB0KCl7dF9zdG9yZV9vbkZ1bmNMb2FkKCJ0X3N0b3JlX2FkZFN0b3JlUGFydHMiLChmdW5jdGlvbigpe3Rfc3RvcmVfYWRkU3RvcmVQYXJ0cyhlLHIsXy5wYXJ0cyksdF9zdG9yZV9zZXRBY3RpdmVTdG9yZVBhcnQoZSl9KSl9LHY9InRpbGRhLWNhdGFsb2ctZmlsdGVycy0xLjAiO2lmKGRvY3VtZW50LmhlYWQucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyYyo9IicrdisnIl0nKSlnKCk7ZWxzZXt2YXIgeT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTt5LnR5cGU9InRleHQvamF2YXNjcmlwdCIseS5zcmM9Imh0dHBzOi8vc3RhdGljLnRpbGRhY2RuLiIrdF9zdG9yZV9fZ2V0Um9vdFpvbmUoKSsiL2pzLyIrdisiLm1pbi5qcyIseS5vbmxvYWQ9Zyx5Lm9uZXJyb3I9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gbG9hZCB0aWxkYS1jYXRhbG9nLWZpbHRlcnM6ICIsdGhpcy5zcmMpfSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHkpfWlmKCFkb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3IoJ2xpbmtbaHJlZio9IicrdisnIl0nKSl7dmFyIG09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpO20ucmVsPSJzdHlsZXNoZWV0IixtLnR5cGU9InRleHQvY3NzIixtLmhyZWY9Imh0dHBzOi8vc3RhdGljLnRpbGRhY2RuLiIrdF9zdG9yZV9fZ2V0Um9vdFpvbmUoKSsiL2Nzcy8iK3YrIi5taW4uY3NzIixtLm1lZGlhPSJhbGwiLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobSl9fXdpbmRvdy50U3RvcmVGaWx0ZXJzfHwod2luZG93LnRTdG9yZUZpbHRlcnM9e30pO3ZhciB0PXdpbmRvdy50U3RvcmVGaWx0ZXJzW2VdO2lmKCJ5Ij09PV8uZmlsdGVyJiYhci5oaWRlRmlsdGVycyYmdCl0JiYodC5maWx0ZXJzJiZ0LmZpbHRlcnMubGVuZ3RoPjB8fHQuc2VhcmNofHx0LnNvcnQpJiZ0X3N0b3JlX29uRnVuY0xvYWQoInRfc3RvcmVfZmlsdGVyc19pbml0IiwoZnVuY3Rpb24oKXt0X3N0b3JlX2ZpbHRlcnNfaW5pdChlLHIsdCksc3x8dF9zdG9yZV9maWx0ZXJzX3Byb2RzTnVtYmVyX3VwZGF0ZShjLHIsXyl9KSk7ZWxzZSBpZihyLnNpZGViYXImJiFzJiZfLnBhcnRzJiYwPT09Xy5wYXJ0cy5sZW5ndGgpe3ZhciB3PWMucXVlcnlTZWxlY3RvcigiLnQ5NTFfX3NpZGViYXIiKTtpZih3KXt3LmNsYXNzTGlzdC5hZGQoInQ5NTFfX3NpZGViYXJfZW1wdHkiKTt2YXIgYj0iUlUiPT09d2luZG93LnRTdG9yZUJyb3dzZXJMYW5nPyfQn9C+0LbQsNC70YPQudGB0YLQsCwg0LTQvtCx0LDQstGM0YLQtSDRhdC+0YLRjyDQsdGLINC+0LTQuNC9INGE0LjQu9GM0YLRgCDQutCw0YLQsNC70L7Qs9CwINC00LvRjyDQvtGC0L7QsdGA0LDQttC10L3QuNGPINCx0L7QutC+0LLQvtC5INC/0LDQvdC10LvQuCDQvNCw0LPQsNC30LjQvdCwLiA8YSBocmVmPSJodHRwczovL2hlbHAtcnUudGlsZGEuY2Mvb25saW5lLXN0b3JlLXBheW1lbnRzL2ZpbHRlcnMiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93IG5vb3BlbmVyIj7QodC/0YDQsNCy0LrQsDwvYT4nOidQbGVhc2UgPGEgaHJlZj0iaHR0cHM6Ly9oZWxwLnRpbGRhLmNjL29ubGluZS1zdG9yZS1wYXltZW50cy9maWx0ZXJzIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyBub29wZW5lciI+YWRkIGF0IGxlYXN0IG9uZSBjYXRhbG9nIGZpbHRlcjwvYT4gdG8gZGlzcGxheSB0aGUgc3RvcmUgc2lkZWJhcic7dy5pbm5lckhUTUw9JzxzcGFuIGNsYXNzPSJ0LXRleHQgdC10ZXh0X3h4cyI+JytiKyI8L3NwYW4+In19aWYodF9zdG9yZV9pc1F1ZXJ5SW5BZGRyZXNzQmFyKCJ0c3RvcmUiKSYmd2luZG93LnRfc3RvcmVfX3Njcm9sbFRvQmxvY2spe3ZhciBTPWRlY29kZVVSSSh3aW5kb3cubG9jYXRpb24uaGFzaCkuc3BsaXQoIi8iKSxFPVMuaW5kZXhPZigiciIpKzEsQTtTW0VdPT09ZSYmKCJzY3JvbGxCZWhhdmlvciJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGU/d2luZG93LnNjcm9sbFRvKHtsZWZ0OjAsdG9wOmMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wK3dpbmRvdy5wYWdlWU9mZnNldC01MCxiZWhhdmlvcjoic21vb3RoIn0pOndpbmRvdy5zY3JvbGxUbygwLGMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wK3dpbmRvdy5wYWdlWU9mZnNldC01MCksd2luZG93LnRfc3RvcmVfX3Njcm9sbFRvQmxvY2s9bnVsbCl9dmFyIHg9Yy5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtbG9hZC1tb3JlLWJ0biIpO3gmJnguY2xhc3NMaXN0LnJlbW92ZSgidC1idG5fc2VuZGluZyIpO3ZhciBDPXRfdGhyb3R0bGUoKGZ1bmN0aW9uKCl7aWYoIXdpbmRvdy50U3RvcmVQcm9kdWN0c1JlcXVlc3RlZCYmd2luZG93LmlubmVyV2lkdGg8OTYwKXt2YXIgdD1sLnNjcm9sbFdpZHRoLGU9bC5zY3JvbGxMZWZ0LHI7bC5vZmZzZXRXaWR0aCtlKzIwPnQmJiJub25lIiE9PXguc3R5bGUuZGlzcGxheSYmKHguY2xpY2soKSxsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsQykpfX0pKSxxPWwmJmwuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LXN0b3JlX19ncmlkLWNvbnRfbW9iaWxlLW9uZS1yb3ciKTtpZihfLm5leHRzbGljZSl7aWYoIXgpe3ZhciBqO2lmKHg9dF9zdG9yZV9nZXRfbG9hZE1vcmVCdG5faHRtbChjLHIpLHIuc2lkZWJhciljLnF1ZXJ5U2VsZWN0b3IoIi50OTUxX19jb250LXctZmlsdGVyIC50OTUxX19jb250LXdyYXBwZXIgKyAudC1zdG9yZV9fcGFnaW5hdGlvbiIpfHxjLnF1ZXJ5U2VsZWN0b3IoIi50OTUxX19jb250LXctZmlsdGVyIikuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLHgpO2Vsc2UgaWYoIXMpe3ZhciBrPWMucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLWdyaWQtY29udCIpO2smJmsuaW5zZXJ0QWRqYWNlbnRIVE1MKCJhZnRlcmVuZCIseCl9eD1jLnF1ZXJ5U2VsZWN0b3IoIi5qcy1zdG9yZS1sb2FkLW1vcmUtYnRuIil9aWYoeCl7eC5zdHlsZS5kaXNwbGF5PSIiO3ZhciBQPWZ1bmN0aW9uIHQoKXt3aW5kb3cudFN0b3JlUHJvZHVjdHNSZXF1ZXN0ZWR8fCh4LmNsYXNzTGlzdC5hZGQoInQtYnRuX3NlbmRpbmciKSx0X3N0b3JlX2xvYWRQcm9kdWN0cygiIixlLHIsXy5uZXh0c2xpY2UpKX07eC5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZCh4LmNsb25lTm9kZSghMCkseCksKHg9Yy5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtbG9hZC1tb3JlLWJ0biIpKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsUCl9cSYmbC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLEMpfWVsc2Ugc3x8KHgmJih4LnN0eWxlLmRpc3BsYXk9Im5vbmUiKSxsJiZsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsQykpO2lmKHIuc2hvd1BhZ2luYXRpb24mJiJvbiI9PT1yLnNob3dQYWdpbmF0aW9uJiYhcyYmdF9zdG9yZV9vbkZ1bmNMb2FkKCJ0X3N0b3JlX3BhZ2luYXRpb25fZHJhdyIsKGZ1bmN0aW9uKCl7dF9zdG9yZV9wYWdpbmF0aW9uX2RyYXcoZSxyLG8sXy50b3RhbCl9KSkscSl7dmFyIEw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKS5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtbW9kZSIpO2wmJiJlZGl0IiE9PUwmJiJwcmV2aWV3IiE9PUwmJigieSIhPT13aW5kb3cubGF6eSYmInllcyIhPT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpLmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1sYXp5Iil8fHRfc3RvcmVfb25GdW5jTG9hZCgidF9sYXp5bG9hZF91cGRhdGUiLChmdW5jdGlvbigpe2wuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0X3Rocm90dGxlKChmdW5jdGlvbigpe3RfbGF6eWxvYWRfdXBkYXRlKCl9KSkpfSkpKX1pZihzKXtjLnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19yZWxldmFudHMtZ3JpZC1jb250Iikuc3R5bGUub3BhY2l0eT0xO3ZhciBPPTQ7ci5yZWxldmFudHNfc2xpZGVyJiYodS5sZW5ndGg+NHx8d2luZG93LmlubmVyV2lkdGg8PTk2MCkmJnRfc3RvcmVfb25GdW5jTG9hZCgidF9zbGRzSW5pdCIsKGZ1bmN0aW9uKCl7dF9zbGRzSW5pdChlKyIgLmpzLXN0b3JlLXJlbGV2YW50cy1ncmlkLWNvbnQiKX0pKX1wJiYhcyYmdF9zdG9yZV9vbkZ1bmNMb2FkKCJ0X3NsZHNJbml0IiwoZnVuY3Rpb24oKXt0X3NsZHNJbml0KGUrIiAuanMtc3RvcmUtZ3JpZC1jb250Iil9KSksci52ZXJ0aWNhbEFsaWduQnV0dG9ucyYmdF9zdG9yZV92ZXJ0aWNhbEFsaWduQnV0dG9ucyhlLHIpLHIudmVydGljYWxBbGlnbkJ1dHRvbnMmJigiY29tcGxldGUiPT09ZG9jdW1lbnQucmVhZHlTdGF0ZT90X3N0b3JlX3ZlcnRpY2FsQWxpZ25CdXR0b25zKGUscik6d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLChmdW5jdGlvbigpe3Rfc3RvcmVfdmVydGljYWxBbGlnbkJ1dHRvbnMoZSxyKX0pKSksci5pdGVtc0FuaW0mJnIucHJldmlld21vZGUmJnRfc3RvcmVfb25GdW5jTG9hZCgidF9hbmltYXRlX19zdGFydEFuaW1hdGlvbiIsKGZ1bmN0aW9uKCl7dF9hbmltYXRlX19zdGFydEFuaW1hdGlvbigpfSkpLGwuc3R5bGUuaGVpZ2h0PSIiLHRfc3RvcmVfdHJpZ2dlckV2ZW50KGRvY3VtZW50LmJvZHksInR3aXNobGlzdF9hZGRidG4iKSx0X3N0b3JlX3RyaWdnZXJFdmVudChsLCJ0U3RvcmVSZW5kZXJlZCIpLHdpbmRvdy50U3RvcmVQcm9kdWN0c1JlcXVlc3RlZD0hMX19LGYub250aW1lb3V0PWYub25lcnJvcj1mdW5jdGlvbihzKXtpZigtMSE9PXdpbmRvdy50X3N0b3JlX2VuZHBvaW50LmluZGV4T2YoInN0b3JlLnRpbGRhIikpdF9zdG9yZV9jaGFuZ2VFbmRwb2ludChzLChmdW5jdGlvbigpe3Rfc3RvcmVfbG9hZFByb2R1Y3RzKHQsZSxyLG8saSl9KSk7ZWxzZXt2YXIgYT1jLnF1ZXJ5U2VsZWN0b3IoIi5qcy1zdG9yZS1sb2FkLW1vcmUtYnRuIik7YSYmYS5jbGFzc0xpc3QucmVtb3ZlKCJ0LWJ0bl9zZW5kaW5nIik7dmFyIG49RGF0ZS5ub3coKS1tOzA9PT1mLnN0YXR1cyYmbjwxMDAmJmNvbnNvbGUubG9nKCJSZXF1ZXN0IGVycm9yIChnZXQgc3RvcmUgcHJvZHVjdHMpLiBQbGVhc2UgY2hlY2sgaW50ZXJuZXQgY29ubmVjdGlvbi4uLiIpLHdpbmRvdy50U3RvcmVQcm9kdWN0c1JlcXVlc3RlZD0hMTt2YXIgZD1jLnF1ZXJ5U2VsZWN0b3IoIi5qcy1zdG9yZS1ncmlkLWNvbnQtcHJlbG9hZGVyIik7ZCYmKGQuc3R5bGUuZGlzcGxheT0ibm9uZSIpO3ZhciBwPXRfc3RvcmVfZ2V0X2Vycm9yQm94KHIsJ1JlcXVlc3QgdGltZW91dCAoNDBzKS4gUGxlYXNlIGNoZWNrIGludGVybmV0IGNvbm5lY3Rpb24gYW5kIDxhIGhyZWY9ImphdmFzY3JpcHQ6d2luZG93LmxvY2F0aW9uLnJlbG9hZCgpOyIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUiPnJlbG9hZCB0aGUgcGFnZTwvYT4uIElmIHRoZSBzaXR1YXRpb24gaGFzIG5vdCBjaGFuZ2VkLCBwbGVhc2UgY29udGFjdCBzdXBwb3J0IDxhIGhyZWY9Im1haWx0bzp0ZWFtQHRpbGRhLmNjP3N1YmplY3Q9VW5hYmxlIHRvIGdldCBhIGNhdGFsb2ciIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIj50ZWFtQHRpbGRhLmNjPC9hPi4nKTtsLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlZW5kIixwKSx0X3N0b3JlX19mYWRlSW4oYy5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtZXJyb3ItbXNnIikpfX0sZi5vcGVuKCJHRVQiLGcrIj8iK3Rfc3RvcmVfX3NlcmlhbGl6ZURhdGEoXykpLGYudGltZW91dD0yZTQsZi5zZW5kKCl9fWZ1bmN0aW9uIHRfc3RvcmVfbG9hZE9uZVByb2R1Y3QodCxlLHIsbyxpKXt2YXIgcz1EYXRlLm5vdygpLGEsbj17c3RvcmVwYXJ0dWlkOmUuc3RvcmVwYXJ0LHJlY2lkOnQscHJvZHVjdHVpZDpyLGM6c30sZD1uZXcgWE1MSHR0cFJlcXVlc3Q7aWYoZC5vbmxvYWQ9ZnVuY3Rpb24oKXtkLnJlYWR5U3RhdGU9PT1kLkRPTkUmJjIwMD09PWQuc3RhdHVzJiZvKCl9LGQub250aW1lb3V0PWQub25lcnJvcj1mdW5jdGlvbih0KXtjb25zb2xlLmxvZygiQ2FuJ3QgZ2V0IHByb2R1Y3Qgd2l0aCB1aWQgPSAiK3IrIiBpbiBzdG9yZXBhcnQgPSAiK2Uuc3RvcmVwYXJ0KSwiZnVuY3Rpb24iPT10eXBlb2YgaSYmaSh0KX0sIXdpbmRvdy50X3N0b3JlX2VuZHBvaW50KXt3aW5kb3cudF9zdG9yZV9lbmRwb2ludD0ic3RvcmUudGlsZGFjZG4uY29tIjt0cnl7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKS5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtcm9vdC16b25lIik7YyYmKHdpbmRvdy50X3N0b3JlX2VuZHBvaW50PSJzdG9yZS50aWxkYWFwaS4iK2MpfWNhdGNoKGwpe2NvbnNvbGUubG9nKGwpfX1kLm9wZW4oIkdFVCIsImh0dHBzOi8vIit3aW5kb3cudF9zdG9yZV9lbmRwb2ludCsiL2FwaS9nZXRwcm9kdWN0Lz8iK3Rfc3RvcmVfX3NlcmlhbGl6ZURhdGEobikpLGQudGltZW91dD0yZTQsZC5zZW5kKCl9ZnVuY3Rpb24gdF9zdG9yZV9sb2FkUHJvZHVjdHNfYnlJZCh0LGUscixvKXt2YXIgaT1EYXRlLm5vdygpLHM9e3Byb2R1Y3RzdWlkOnQsYzppfTtpZighd2luZG93LnRfc3RvcmVfZW5kcG9pbnQpe3dpbmRvdy50X3N0b3JlX2VuZHBvaW50PSJzdG9yZS50aWxkYWNkbi5jb20iO3RyeXt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpLmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1yb290LXpvbmUiKTthJiYod2luZG93LnRfc3RvcmVfZW5kcG9pbnQ9InN0b3JlLnRpbGRhYXBpLiIrYSl9Y2F0Y2gocCl7Y29uc29sZS5sb2cocCl9fXZhciBuPSJodHRwczovLyIrd2luZG93LnRfc3RvcmVfZW5kcG9pbnQrIi9hcGkvZ2V0cHJvZHVjdHNieXVpZC8iO2lmKGUmJiFlLmlzUHVibGlzaGVkUGFnZSl7cy5wcm9qZWN0aWQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKS5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtcHJvamVjdC1pZCIpO3ZhciBkPXdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZS5zcGxpdCgiLiIpLGM7bj0iaHR0cHM6Ly8iKygidGlsZGEuIitkW2QubGVuZ3RoLTFdKSsiL3Byb2plY3RzL3N0b3JlL2dldHByb2R1Y3RzYnl1aWQvIn1zPUpTT04uc3RyaW5naWZ5KHMpO3ZhciBsPW5ldyBYTUxIdHRwUmVxdWVzdDtsLm9ubG9hZD1mdW5jdGlvbigpe2wucmVhZHlTdGF0ZT09PWwuRE9ORSYmMjAwPT09bC5zdGF0dXMmJigic3RyaW5nIj09dHlwZW9mIGwucmVzcG9uc2VUZXh0JiYieyI9PT1sLnJlc3BvbnNlVGV4dC5zdWJzdHJpbmcoMCwxKXx8Y29uc29sZS5sb2coIkNhbid0IGdldCBwcm9kdWN0cyBhcnJheSBieSB1aWQgbGlzdCIpLHIoSlNPTi5wYXJzZShsLnJlc3BvbnNlVGV4dCkpKX0sbC5vbnRpbWVvdXQ9bC5vbmVycm9yPWZ1bmN0aW9uKGUpe2NvbnNvbGUubG9nKCJDYW4ndCBnZXQgZ2V0cHJvZHVjdHNieXVpZC4gUmVxdWVzdGluZyBpZEFycjogIit0KSwiZnVuY3Rpb24iPT10eXBlb2YgbyYmbyhlKX0sbC5vcGVuKCJQT1NUIixuKSxsLnRpbWVvdXQ9MmU0LGwuc2VuZChzKX1mdW5jdGlvbiB0X3N0b3JlX2xvYWRGaWx0ZXJzKHQsZSxyKXt2YXIgbz1EYXRlLm5vdygpLGkscz17c3RvcmVwYXJ0dWlkOnQuc3RvcmVwYXJ0LGM6b30sYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpO2lmKHQmJnQuZGVmYXVsdFNvcnQmJnQuZGVmYXVsdFNvcnQuaW5fc3RvY2smJihzLmZpbHRlcnN8fChzLmZpbHRlcnM9e30pLHMuZmlsdGVycy5xdWFudGl0eT0ieSIpLCF3aW5kb3cudF9zdG9yZV9lbmRwb2ludCl7d2luZG93LnRfc3RvcmVfZW5kcG9pbnQ9InN0b3JlLnRpbGRhY2RuLmNvbSI7dHJ5e2lmKGEpe3ZhciBuPWEuZ2V0QXR0cmlidXRlKCJkYXRhLXRpbGRhLXJvb3Qtem9uZSIpO24mJih3aW5kb3cudF9zdG9yZV9lbmRwb2ludD0ic3RvcmUudGlsZGFhcGkuIituKX19Y2F0Y2goXyl7Y29uc29sZS5sb2coXyl9fXZhciBkPSJodHRwczovLyIrd2luZG93LnRfc3RvcmVfZW5kcG9pbnQrIi9hcGkvZ2V0ZmlsdGVycy8iO2lmKCF0LmlzUHVibGlzaGVkUGFnZSl7YSYmKHMucHJvamVjdGlkPWEuZ2V0QXR0cmlidXRlKCJkYXRhLXRpbGRhLXByb2plY3QtaWQiKSk7dmFyIGM9d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLnNwbGl0KCIuIiksbDtkPSJodHRwczovLyIrKCJ0aWxkYS4iK2NbYy5sZW5ndGgtMV0pKyIvcHJvamVjdHMvc3RvcmUvZ2V0ZmlsdGVycy8ifXZhciBwPW5ldyBYTUxIdHRwUmVxdWVzdDtwLm9ubG9hZD1mdW5jdGlvbigpe2lmKHAucmVhZHlTdGF0ZT09PXAuRE9ORSYmMjAwPT09cC5zdGF0dXMpdHJ5e2UoSlNPTi5wYXJzZShwLnJlc3BvbnNlVGV4dCkpfWNhdGNoKF8pe2NvbnNvbGUubG9nKF8pLGUoKX19LHAub250aW1lb3V0PXAub25lcnJvcj1mdW5jdGlvbihlKXtjb25zb2xlLmxvZygiQ2FuJ3QgZ2V0IGZpbHRlcnMgaW4gc3RvcmVwYXJ0ID0gIit0LnN0b3JlcGFydCksImZ1bmN0aW9uIj09dHlwZW9mIHImJnIoZSl9LHAub3BlbigiR0VUIixkKyI/Iit0X3N0b3JlX19zZXJpYWxpemVEYXRhKHMpKSxwLnRpbWVvdXQ9MmU0LHAuc2VuZCgpfWZ1bmN0aW9uIHRfc3RvcmVfcHJvY2Vzcyh0LGUscixvLGkscyl7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlYyIrZSk7aWYoYSl7dmFyIG49YS5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtZ3JpZC1jb250Iik7aWYobil7dmFyIGQ9Ijk3MyI9PT1hLmdldEF0dHJpYnV0ZSgiZGF0YS1yZWNvcmQtdHlwZSIpLGM9ci5wcm9kQ2FyZCYmIjEwMjUiPT09ci5wcm9kQ2FyZC5ibG9ja0lkLGw9ci5wcm9kQ2FyZCYmISFyLnByb2RDYXJkLmhhc1dyYXAscD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpIT09ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtc3RvcmVfX3Byb2R1Y3Qtc25pcHBldCIpJiZkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpLmNvbnRhaW5zKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19wcm9kdWN0LXNuaXBwZXQiKSk7aSYmKG49YS5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtcmVsZXZhbnRzLWdyaWQtY29udCIpKTt2YXIgXz10X3N0b3JlX2dldF9ob3JpelNlcGFyYXRvcl9odG1sKHIpLHU9e30sZz1uLnF1ZXJ5U2VsZWN0b3JBbGwoIi50LXN0b3JlX19jYXJkIikubGVuZ3RoO2lmKDA9PT10Lmxlbmd0aCl7dmFyIHY9dF9zdG9yZV9nZXRfZW1wdHlNc2dfaHRtbChyKTtyZXR1cm4gbi5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWVuZCIsdiksdm9pZCB0X3N0b3JlX19mYWRlSW4oYS5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtZW1wdHktcGFydC1tc2ciKSl9aWYoaSYmci5yZWxldmFudHNfc2xpZGVyJiZyLnByb2RDYXJkKXt2YXIgeT1yLnByb2RDYXJkLnNoYWRvd1NpemUsbT1yLnByb2RDYXJkLnNoYWRvdyxmPXIucHJvZENhcmQuc2hhZG93SG92ZXIsaD1yLnByb2RDYXJkLnNoYWRvd1NpemVIb3Zlcix3PXIucHJvZENhcmQuc2hhZG93T3BhY2l0eUhvdmVyLGI9ci5wcm9kQ2FyZC5zaGFkb3dTaGlmdHlIb3ZlcixTPXBhcnNlSW50KHksMTApfHwwO1M9TWF0aC5taW4oUywxMCk7dmFyIEU9aD9wYXJzZUludChoLDEwKToyMDtFPU1hdGgubWluKEUsNDApO3ZhciBBPXc/cGFyc2VJbnQodywxMCkvMTAwOi4zLHg9bXx8Zj8yMDpNYXRoLm1heChFLFMpLEM9IiI7aWYoZilDPSJib3gtc2hhZG93OiAiK2YrIiAhaW1wb3J0YW50OyI7ZWxzZSBpZihofHx3KXt2YXIgcSxqO0M9ImJveC1zaGFkb3c6IDBweCAiKyh7c206MTAsbWQ6MjB9W2JdfHwwKSsicHggIitFKyJweCByZ2JhKDAsMCwwLCIrQSsiKSAhaW1wb3J0YW50OyJ9dmFyIGs9IiIsUDtpZihDJiZsJiYoays9IiNyZWMiK2UrIiAudC1zdG9yZSAudC1zdG9yZV9fcmVsZXZhbnRzX19jb250YWluZXIgLnQtc3RvcmVfX3JlbGV2YW50cy1ncmlkLWNvbnQgLnQtc3RvcmVfX2NhcmRfX3dyYXBfYWxsOmhvdmVyIHsiLGsrPUMsays9In1cbiIpLChTfHxofHxtfHxmKSYmKGsrPSJAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjk2MHB4KSB7XG4iLGsrPSIjcmVjIitlKyIgLnQtc3RvcmUgLnQtc3RvcmVfX3JlbGV2YW50c19fY29udGFpbmVyIC50LXN0b3JlX19yZWxldmFudHMtZ3JpZC1jb250IC50LXN0b3JlX19jYXJkX193cmFwX2FsbCB7XG4iLGsrPSJtYXJnaW46ICIreCsicHg7XG4iLGsrPSJ9XG4iLGsrPSJ9XG4iLGsrPSJAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjk2MXB4KSB7XG4iLGsrPSIjcmVjIitlKyIgLnQtc3RvcmUgLnQtc3RvcmVfX3JlbGV2YW50c19fY29udGFpbmVyIC50LXN0b3JlX19yZWxldmFudHMtZ3JpZC1jb250IC50LXNsZHNfX2l0ZW1zLXdyYXBwZXIgLnQtc2xkc19faXRlbSB7XG4iLGsrPSJwYWRkaW5nLXRvcDogIit4KyJweDtcbiIsays9InBhZGRpbmctYm90dG9tOiAiK3grInB4O1xuIixrKz0ifVxuIixrKz0iI3JlYyIrZSsiIC50LXN0b3JlIC50LXN0b3JlX19yZWxldmFudHNfX2NvbnRhaW5lciAudC1zdG9yZV9fcmVsZXZhbnRzX190aXRsZS13cmFwcGVyIC50LXN0b3JlX19yZWxldmFudHNfX3RpdGxlIHtcbiIsays9Im1hcmdpbi1ib3R0b206ICIrKDQwLXgpKyJweDtcbiIsays9In1cbiIsays9In1cbiIpLGspe2s9IjxzdHlsZT4iK2srIjwvc3R5bGU+Ijt2YXIgTD1hLnF1ZXJ5U2VsZWN0b3IoIi50LXBvcHVwIC50LXN0b3JlX19yZWxldmFudHNfX2NvbnRhaW5lciIpLFA7aWYoTCYmTC5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWJlZ2luIixrKSxwKShQPWEucXVlcnlTZWxlY3RvcigiLnQtc3RvcmVfX3Byb2R1Y3Qtc25pcHBldCArIC50LXN0b3JlX19yZWxldmFudHNfX2NvbnRhaW5lciIpKSYmUC5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWJlZ2luIixrKX1pZihwKShQPWEucXVlcnlTZWxlY3RvcigiLnQtc3RvcmVfX3Byb2R1Y3Qtc25pcHBldCArIC50LXN0b3JlX19yZWxldmFudHNfX2NvbnRhaW5lciIpKSYmci5pc0ZsZXhDb2xzJiZQLmNsYXNzTGlzdC5hZGQoInQtc3RvcmVfX2dyaWQtY29udF9jb2wtd2lkdGhfc3RyZXRjaCIpfXZhciBPPSIiLEk9NCxUPWk/NDpyLmJsb2Nrc0luUm93LEI7aWYoaSYmci5yZWxldmFudHNfc2xpZGVyJiYodC5sZW5ndGg+NHx8d2luZG93LmlubmVyV2lkdGg8PTk2MCl8fCFpJiZkKXt2YXIgej0iIixSPSIzMDAiOyJmYXN0Ij09PXIuc2xpZGVyX29wdHMuYW5pbV9zcGVlZCYmKHo9InQtc2xkc19hbmltYXRlZC1mYXN0IiksInNsb3ciPT09ci5zbGlkZXJfb3B0cy5hbmltX3NwZWVkJiYoej0idC1zbGRzX2FuaW1hdGVkLXNsb3ciLFI9IjUwMCIpLE8rPSc8ZGl2IGNsYXNzPSJ0LXNsZHMiIHN0eWxlPSJ2aXNpYmlsaXR5OiBoaWRkZW47Ij4nLE8rPSc8ZGl2IGNsYXNzPSJ0LXNsZHNfX21haW4gdC1jb250YWluZXIiPicsTys9JzxkaXYgY2xhc3M9InQtc2xkc19fY29udGFpbmVyIj4nLE89KE8rPSc8ZGl2IGNsYXNzPSJ0LXNsZHNfX2l0ZW1zLXdyYXBwZXIgJyt6KyciIGRhdGEtc2xpZGVyLWl0ZW1zLWluLXJvdz0iJysoIWkmJmQ/VDo0KSsnIiBkYXRhLXNsaWRlci10cmFuc2l0aW9uPSInK1IrJyIgZGF0YS1zbGlkZXItd2l0aC1jeWNsZT0idHJ1ZSIgZGF0YS1zbGlkZXItY3ljbGU9InllcyIgZGF0YS1zbGlkZXItY29ycmVjdC1oZWlnaHQ9IicrKCFpJiZkPyJ0cnVlIjoiZmFsc2UiKSsnIiBkYXRhLWF1dG8tY29ycmVjdC1tb2JpbGUtd2lkdGg9ImZhbHNlIj4nKS5yZXBsYWNlKCJbW25vQ3ljbGVDbGFzc11dIixyLnNsaWRlcl9vcHRzLmN5Y2xlPyIiOiJ0LXNsZHNfX25vY3ljbGUiKS5yZXBsYWNlKCJbW2lzQ3ljbGVkXV0iLHIuc2xpZGVyX29wdHMuY3ljbGU/InRydWUiOiJmYWxzZSIpfWlmKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodCwoZnVuY3Rpb24odCl7dmFyIGU9bnVsbCxyPW51bGw7dF9zdG9yZV9vbkZ1bmNMb2FkKCJ0X3N0b3JlX19jbGVhblByaWNlIiwoZnVuY3Rpb24oKXt0LmVkaXRpb25zLmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKHQucHJpY2UmJiIiIT09dC5wcmljZSl7dmFyIG89dF9zdG9yZV9fY2xlYW5QcmljZSh0LnByaWNlKTtlPW51bGw9PT1lP286TWF0aC5taW4oZSxvKSxyPW51bGw9PT1yP286TWF0aC5tYXgocixvKX19KSl9KSksdC5taW5QcmljZT1lLHQubWF4UHJpY2U9cn0pKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHQsKGZ1bmN0aW9uKGUsbyl7KCFpJiYhZCYmIWN8fGkmJiFyLnJlbGV2YW50c19zbGlkZXIpJiZnPjAmJmclVD09MCYmKE8rPV8pLE8rPXRfc3RvcmVfZ2V0X3Byb2R1Y3RDYXJkX2h0bWwoYSxlLHIsaSxvLHQpLHVbZS51aWRdPWUsZysrfSkpLGkmJnIucmVsZXZhbnRzX3NsaWRlciYmKHQubGVuZ3RoPjR8fHdpbmRvdy5pbm5lcldpZHRoPD05NjApfHwhaSYmZCl7dmFyIE0sVT1hLnF1ZXJ5U2VsZWN0b3IoIi5qcy1zdG9yZS10cGwtc2xpZGVyLWFycm93cyIpLmlubmVySFRNTDtpZihPKz0iPC9kaXY+IixPKz0iPC9kaXY+IixVJiYhaSYmZCYmKE8rPVUsbi5jbGFzc0xpc3QucmVtb3ZlKCJ0LWNvbnRhaW5lciIpLG4uY2xhc3NMaXN0LnJlbW92ZSgidC1zdG9yZV9fZ3JpZC1jb250X21vYmlsZS1ncmlkIikpLCFpJiZkKXt2YXIgRD0nPGRpdiBjbGFzcz0idC1zbGRzX19idWxsZXRfd3JhcHBlciI+JztBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHQsKGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZSsxO0QrPSc8ZGl2IGNsYXNzPSJ0LXNsZHNfX2J1bGxldCcrKDE9PT1yPyIgdC1zbGRzX19idWxsZXRfYWN0aXZlIjoiIikrJyIgZGF0YS1zbGlkZS1idWxsZXQtZm9yPSInK3IrJyI+PGRpdiBjbGFzcz0idC1zbGRzX19idWxsZXRfYm9keSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyI+PC9kaXY+PC9kaXY+J30pKSxPKz1EKz0iPC9kaXY+In1PKz0iPC9kaXY+IixPKz0iPC9kaXY+IixVJiZpJiYoTys9VSl9aWYodF9zdG9yZV9wcm9jZXNzX2FwcGVuZEFuZFNob3dQcm9kdWN0cyhhLG4sTyksLTE9PT1PLmluZGV4T2YoJ2RhdGEtYW5pbWF0ZS1zdHlsZT0iZmFkZWlubGVmdCInKXx8bi5jbGFzc0xpc3QuY29udGFpbnMoInQtc3RvcmVfX2dyaWQtY29udF9tb2JpbGUtb25lLXJvdyIpfHwobi5zdHlsZS5vdmVyZmxvd1g9ImhpZGRlbiIpLEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodCwoZnVuY3Rpb24odCl7dmFyIG89aT9hLnF1ZXJ5U2VsZWN0b3IoJy50LXN0b3JlX19yZWxldmFudHNfX2NvbnRhaW5lciAuanMtcHJvZHVjdC50LWl0ZW1bZGF0YS1wcm9kdWN0LWdlbi11aWQ9IicrdC51aWQrJyJdJyk6YS5xdWVyeVNlbGVjdG9yKCcudC1zdG9yZV9fZ3JpZC1jb250IC5qcy1wcm9kdWN0LnQtaXRlbVtkYXRhLXByb2R1Y3QtZ2VuLXVpZD0iJyt0LnVpZCsnIl0nKSxzO28uc2V0QXR0cmlidXRlKCJkYXRhLWNhcmQtc2l6ZSIsInNtYWxsIiksdD11W3QudWlkXSxwYXJzZUludCh0LnF1YW50aXR5LDEwKTw9MHx8ImJvdGgiIT09ci5zaG93U3RvcmVCdG5RdWFudGl0eSYmImxpc3QiIT09ci5zaG93U3RvcmVCdG5RdWFudGl0eXx8dF9zdG9yZV9hZGRQcm9kdWN0UXVhbnRpdHkobyx0LHIpLHRfc3RvcmVfYWRkUHJvZHVjdE9wdGlvbnMoZSx0LG8sciksdF9zdG9yZV9vcHRpb25faGFuZGxlT25DaGFuZ2UobyksdF9zdG9yZV9vcHRpb25faGFuZGxlT25DaGFuZ2VfY3VzdG9tKGUsbyxyKSx0X3N0b3JlX29uRnVuY0xvYWQoInRfcHJvZF9faW5pdFByb2R1Y3QiLChmdW5jdGlvbigpe3RfcHJvZF9faW5pdFByb2R1Y3QobyxyKX0pKX0pKSwhaSYmd2luZG93LnRTdG9yZUZpbHRlcnMmJiJvYmplY3QiPT10eXBlb2Ygd2luZG93LnRTdG9yZUZpbHRlcnMmJndpbmRvdy50U3RvcmVGaWx0ZXJzW2VdJiYib2JqZWN0Ij09dHlwZW9mIHdpbmRvdy50U3RvcmVGaWx0ZXJzW2VdJiZ3aW5kb3cudFN0b3JlQ3VzdG9tVXJsUGFyYW1zJiYib2JqZWN0Ij09dHlwZW9mIHdpbmRvdy50U3RvcmVDdXN0b21VcmxQYXJhbXMmJndpbmRvdy50U3RvcmVDdXN0b21VcmxQYXJhbXNbZV0mJiJvYmplY3QiPT10eXBlb2Ygd2luZG93LnRTdG9yZUN1c3RvbVVybFBhcmFtc1tlXSYmQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0LChmdW5jdGlvbih0KXt2YXIgcj1hLnF1ZXJ5U2VsZWN0b3IoJy50LXN0b3JlX19ncmlkLWNvbnQgLmpzLXByb2R1Y3QudC1pdGVtW2RhdGEtcHJvZHVjdC1nZW4tdWlkPSInK3QudWlkKyciXScpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoci5xdWVyeVNlbGVjdG9yQWxsKCIuanMtcHJvZHVjdC1lZGl0aW9uLW9wdGlvbiIpLChmdW5jdGlvbih0KXt2YXIgcj0hMSxvPXQucXVlcnlTZWxlY3Rvcigic2VsZWN0Iik7byYmT2JqZWN0LmtleXMod2luZG93LnRTdG9yZUN1c3RvbVVybFBhcmFtc1tlXSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwod2luZG93LnRTdG9yZUZpbHRlcnNbZV0uZmlsdGVycykuZm9yRWFjaCgoZnVuY3Rpb24oaSl7aWYoaS5uYW1lPT09dCYmaS5uYW1lLmluZGV4T2YoImNoYXJhY3QiKTwwKXt2YXIgcz13aW5kb3cudFN0b3JlQ3VzdG9tVXJsUGFyYW1zW2VdW3RdOyJvYmplY3QiPT10eXBlb2YgcyYmcy5zbGljZSgpLnJldmVyc2UoKS5mb3JFYWNoKChmdW5jdGlvbih0KXtpZighcilpZih0IT09by52YWx1ZSl7dmFyIGU9by5xdWVyeVNlbGVjdG9yKCdbdmFsdWU9IicrdF9zdG9yZV9lc2NhcGVRdW90ZSh0KSsnIl0nKTtlJiYhZS5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIikmJihvLnZhbHVlPXQsdF9zdG9yZV90cmlnZ2VyRXZlbnQobywiY2hhbmdlIikscj0hMCl9ZWxzZSB0X3N0b3JlX3RyaWdnZXJFdmVudChvLCJjaGFuZ2UiKSxyPSEwfSkpfX0pKX0pKX0pKX0pKSwhbyYmci5pc0ZsZXhDb2xzJiZyLmlzSG9yaXpPbk1vYil0X3N0b3JlX19yZW1vdmVFbGVtZW50KG4ucXVlcnlTZWxlY3RvcigiLnQtc3RvcmVfX3RhaWwtZ2FwIikpLG4uaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLCc8ZGl2IGNsYXNzPSJ0LXN0b3JlX190YWlsLWdhcCI+PC9kaXY+Jyk7aWYoInkiIT09d2luZG93LmxhenkmJiJ5ZXMiIT09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKS5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtbGF6eSIpfHwoci5yZWxldmFudHNfc2xpZGVyP3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dF9zdG9yZV9vbkZ1bmNMb2FkKCJ0X2xhenlsb2FkX3VwZGF0ZSIsKGZ1bmN0aW9uKCl7dF9sYXp5bG9hZF91cGRhdGUoKX0pKX0pLDEwMCk6dF9zdG9yZV9vbkZ1bmNMb2FkKCJ0X2xhenlsb2FkX3VwZGF0ZSIsKGZ1bmN0aW9uKCl7dF9sYXp5bG9hZF91cGRhdGUoKX0pKSksZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQ3MDZfX2NhcnR3aW4iKXx8ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQ3MDZfX3NpZGViYXIiKT8iZnVuY3Rpb24iPT10eXBlb2YgdGNhcnRfX2FkZEV2ZW50X19saW5rcyYmdGNhcnRfX2FkZEV2ZW50X19saW5rcyhlKTpjb25zb2xlLmxvZygiV2FybmluZzogY2FydCBibG9jayBpcyBub3QgYWRkZWQgdG8gdGhpcyBwYWdlIiksdF9zdG9yZV9pbml0UG9wdXAoZSx1LHIsaSxzKSwiMTAyNSI9PXIucHJvZENhcmQuYmxvY2tJZD9zZXRUaW1lb3V0KChmdW5jdGlvbigpe3Rfc3RvcmVfdW5pZnlDYXJkc1dpZHRoKGUpfSksMWUzKTooc2V0VGltZW91dCgoZnVuY3Rpb24oKXt0X3N0b3JlX3VuaWZ5Q2FyZHNIZWlnaHRzKGUsciksci52ZXJ0aWNhbEFsaWduQnV0dG9ucyYmdF9zdG9yZV92ZXJ0aWNhbEFsaWduQnV0dG9ucyhlLHIpfSksMSksZG9jdW1lbnQuZm9udHMmJmRvY3VtZW50LmZvbnRzLnJlYWR5P2RvY3VtZW50LmZvbnRzLnJlYWR5LnRoZW4oKGZ1bmN0aW9uKCl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0X3N0b3JlX3VuaWZ5Q2FyZHNIZWlnaHRzKGUscil9KSwxZTMpfSkpOnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dF9zdG9yZV91bmlmeUNhcmRzSGVpZ2h0cyhlLHIpfSksMWUzKSxyLnZlcnRpY2FsQWxpZ25CdXR0b25zJiYoImNvbXBsZXRlIj09PWRvY3VtZW50LnJlYWR5U3RhdGU/dF9zdG9yZV92ZXJ0aWNhbEFsaWduQnV0dG9ucyhlLHIpOndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoZnVuY3Rpb24oKXt0X3N0b3JlX3ZlcnRpY2FsQWxpZ25CdXR0b25zKGUscil9KSkpKSwhci5wcmV2aWV3bW9kZSl0cnl7dHBfX3JlY29yZF9fYWRkRWRpdEZpZWxkRXZlbnRzKGUpfWNhdGNoKEYpe2NvbnNvbGUubG9nKEYubWVzc2FnZSl9fX19ZnVuY3Rpb24gdF9zdG9yZV9wcm9jZXNzX2FwcGVuZEFuZFNob3dQcm9kdWN0cyh0LGUscil7ZS5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWVuZCIsciksITA9PT10LmdldEF0dHJpYnV0ZSgiZGF0YS1hbHJlYWR5LWxvYWRlZC1maXJzdC1wcm9kdWN0cyIpP3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0LnF1ZXJ5U2VsZWN0b3JBbGwoIi50LXN0b3JlX19jYXJkIiksKGZ1bmN0aW9uKHQpe3QuY2xhc3NMaXN0LnJlbW92ZSgidC1zdG9yZV9fY2FyZF9oaWRkZW4iKX0pKX0pLDEwKTooQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0LnF1ZXJ5U2VsZWN0b3JBbGwoIi50LXN0b3JlX19jYXJkIiksKGZ1bmN0aW9uKHQpe3QuY2xhc3NMaXN0LnJlbW92ZSgidC1zdG9yZV9fY2FyZF9oaWRkZW4iKX0pKSx0LnNldEF0dHJpYnV0ZSgiZGF0YS1hbHJlYWR5LWxvYWRlZC1maXJzdC1wcm9kdWN0cyIsITApKX1mdW5jdGlvbiB0X3N0b3JlX21vYmlsZUhvcml6X2NoZWNrQnRuVmlzaWJpbGl0eSh0LGUpe3ZhciByPWZ1bmN0aW9uIHQoZSxyKXt2YXIgbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjIitlKSxpO3dpbmRvdy5pbm5lcldpZHRoPDk2MCYmci5oYXNNb2JpbGVIb3JpelNjcm9sbCYmdF9zdG9yZV9fcmVtb3ZlRWxlbWVudChvLnF1ZXJ5U2VsZWN0b3IoIi5qcy1zdG9yZS1sb2FkLW1vcmUtYnRuIikpfTtyKHQsZSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdF90aHJvdHRsZSgoZnVuY3Rpb24oKXtyKHQsZSl9KSw1MDApKX1mdW5jdGlvbiB0X3N0b3JlX2dldF9wcm9kdWN0UG9wdXBfaHRtbCh0LGUpe3ZhciByPSIiLG89ZS5wb3B1cF9vcHRzLnBvcHVwU3RhdD8nZGF0YS10cmFjay1wb3B1cD0iJytlLnBvcHVwX29wdHMucG9wdXBTdGF0KyciJzoiIixpPWUucG9wdXBfb3B0cy5vdmVybGF5QmdDb2xvclJnYmE/J3N0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOicrZS5wb3B1cF9vcHRzLm92ZXJsYXlCZ0NvbG9yUmdiYSsnIic6IiIscz0idC1wb3B1cF9fY29udGFpbmVyIHQtcG9wdXBfX2NvbnRhaW5lci1zdGF0aWMgIixhPWUudmVydGljYWxBbGlnbkJ1dHRvbnM/InQtc3RvcmVfX3ZhbGlnbi1idXR0b25zIjoiIixuPWUuc2hvd1JlbGV2YW50cyxkPWUudGl0bGVSZWxldmFudHM/ZS50aXRsZVJlbGV2YW50czp3aW5kb3cudFN0b3JlRGljdC5zZWVBbHNvLGM9ZS5yZWxldmFudHNfc2xpZGVyPyIiOiJ0LXN0b3JlX19ncmlkLWNvbnRfbW9iaWxlLW9uZS1yb3ciO2UucG9wdXBfb3B0cy5pc1ZlcnRpY2FsJiYocys9InQtc3RvcmVfX3BvcHVwLWNvbnRhaW5lcl84LWNvbHMgIik7dmFyIGw9IiIscD1lLnBvcHVwX29wdHMuaXNWZXJ0aWNhbD8iIjoidC1zdG9yZV9fcHJvZC1wb3B1cF9fY29sLWxlZnQgdC1jb2wgdC1jb2xfIitlLnBvcHVwX29wdHMuY29sdW1ucyxfLHU9InQtYWxpZ25fIisoImNlbnRlciI9PT1lLnBvcHVwX29wdHMuYWxpZ24/ImNlbnRlciI6ImxlZnQiKSsiICIrKGUucG9wdXBfb3B0cy5pc1ZlcnRpY2FsPyIiOiJ0LXN0b3JlX19wcm9kLXBvcHVwX19jb2wtcmlnaHQgdC1jb2wgdC1jb2xfIitlLnBvcHVwX29wdHMuY29sdW1uczIpLGc9ImpzLXN0b3JlLXByb2R1Y3QganMtcHJvZHVjdCB0LXN0b3JlX19wcm9kdWN0LXBvcHVwICI7ZS5wb3B1cF9vcHRzLmNvbnRhaW5lckJnQ29sb3ImJihsKz0iYmFja2dyb3VuZC1jb2xvcjoiK2UucG9wdXBfb3B0cy5jb250YWluZXJCZ0NvbG9yKyI7IiksIjEwMCI9PT1lLnBvcHVwX29wdHMucG9wdXBDb250YWluZXImJihsKz0ibWF4LXdpZHRoOjEwMCU7IixnKz0idC1jb250YWluZXJfZmx1aWQgIikscis9JzxkaXYgY2xhc3M9InQtcG9wdXAiICcrbysiICIraSsiPiIscis9dF9zdG9yZV9nZXRfcHJvZHVjdFBvcHVwX2Nsb3NlSWNvbl9odG1sKGUpLHIrPXRfc3RvcmVfZ2V0X3Byb2R1Y3RQb3B1cF9jbG9zZVRleHRfaHRtbChlKSxyKz0nPGRpdiBjbGFzcz0iJytzKyciIHN0eWxlPSInK2wrJyIgPicscis9IjxkaXY+IixyKz0nPGRpdiBjbGFzcz0idC1zdG9yZV9fcHJvZC1wb3B1cF9fY29udGFpbmVyIj4nLHIrPSc8ZGl2IGNsYXNzPSInK2crJyI+Jzt2YXIgdj1bXTtyZXR1cm4iMTAwIj09PWUucG9wdXBfb3B0cy5wb3B1cENvbnRhaW5lciYmdi5wdXNoKCJ0LWNvbnRhaW5lcl9mbHVpZCIpLHIrPXYubGVuZ3RoPyc8ZGl2IGNsYXNzPSInK3Yuam9pbigiICIpKyciPic6IjxkaXY+IixyKz0nPGRpdiBjbGFzcz0idC1zdG9yZV9fcHJvZC1wb3B1cF9fc2xpZGVyIGpzLXN0b3JlLXByb2Qtc2xpZGVyICcrcCsnIj48L2Rpdj4nLHIrPSc8ZGl2IGNsYXNzPSJ0LXN0b3JlX19wcm9kLXBvcHVwX19pbmZvICcrdSsnIj4nLHIrPXRfc3RvcmVfZ2V0X3Byb2R1Y3RQb3B1cF90aXRsZVRleHRfaHRtbCgpLHIrPSc8ZGl2IGNsYXNzPSJqcy1zdG9yZS1wcmljZS13cmFwcGVyIHQtc3RvcmVfX3Byb2QtcG9wdXBfX3ByaWNlLXdyYXBwZXIiPicscis9dF9zdG9yZV9nZXRfcHJvZHVjdFBvcHVwX29uZVByaWNlX2h0bWwoZSwiY3VycmVudCIpLHIrPXRfc3RvcmVfZ2V0X3Byb2R1Y3RQb3B1cF9vbmVQcmljZV9odG1sKGUsIm9sZCIpLHIrPSI8L2Rpdj4iLHIrPSc8ZGl2IGNsYXNzPSJqcy1wcm9kdWN0LWNvbnRyb2xzLXdyYXBwZXIiPjwvZGl2Picscis9dF9zdG9yZV9nZXRfcHJvZHVjdFBvcHVwX2xpbmtzU2l6ZUNoYXJ0X2h0bWwoKSxyKz10X3N0b3JlX2dldF9wcm9kdWN0UG9wdXBfYnV5QnRuX2h0bWwoZSkscis9dF9zdG9yZV9nZXRfcHJvZHVjdFBvcHVwX3RleHRfaHRtbCgpLHIrPSI8L2Rpdj4iLHIrPSI8L2Rpdj4iLHIrPSI8L2Rpdj4iLG4mJihyKz0nICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InQtc3RvcmVfX3JlbGV2YW50c19fY29udGFpbmVyIj4nLHIrPScgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InQtc3RvcmVfX3JlbGV2YW50c19fdGl0bGUtd3JhcHBlciI+JyxyKz0nICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idC1zdG9yZV9fcmVsZXZhbnRzX190aXRsZSB0LXVwdGl0bGUgdC11cHRpdGxlX3h4bCInKyhPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS50eXBvLCJ0aXRsZSIpPydzdHlsZSA9ICInK2UudHlwby50aXRsZSsnIic6IiIpKyI+IitkKyI8L2Rpdj4iLHIrPSIgICAgICAgICAgICAgICAgICAgIDwvZGl2PiIsZS5yZWxldmFudHNfc2xpZGVyfHwocis9dF9zdG9yZV9nZXRfaGFuZEljb25faHRtbCh0LGUuaG9yaXpvbnRhbFNjcm9sbEhpbnQpKSxyKz0nICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0LXN0b3JlX19yZWxldmFudHMtZ3JpZC1jb250IGpzLXN0b3JlLXJlbGV2YW50cy1ncmlkLWNvbnQgJythKyIgIitjKyciPjwvZGl2Picscis9IiAgICAgICAgICAgICAgICA8L2Rpdj4iKSxyKz0iICAgICAgICAgICAgPC9kaXY+IixyKz0iICAgICAgICA8L2Rpdj4iLHIrPSIgICAgPC9kaXY+IixyKz0iPC9kaXY+In1mdW5jdGlvbiB0X3N0b3JlX2dldF9wcm9kdWN0UG9wdXBfdGV4dF9odG1sKCl7dmFyIHQ9IiI7cmV0dXJuIHQrPSc8ZGl2IGNsYXNzPSJqcy1zdG9yZS1wcm9kLXRleHQgdC1zdG9yZV9fcHJvZC1wb3B1cF9fdGV4dCB0LXR5cG9ncmFwaHlfX2Rlc2NyIHQtZGVzY3IgdC1kZXNjcl94eHMiPjwvZGl2Pid9ZnVuY3Rpb24gdF9zdG9yZV9nZXRfcHJvZHVjdFBvcHVwX2xpbmtzU2l6ZUNoYXJ0X2h0bWwoKXt2YXIgdD0iIjtyZXR1cm4gdCs9JzxkaXYgY2xhc3M9InQtc3RvcmVfX3Byb2QtcG9wdXBfX2xpbmtzLXdyYXBwZXIiPjwvZGl2Pid9ZnVuY3Rpb24gdF9zdG9yZV9nZXRfcHJvZHVjdFBvcHVwX2J1eUJ0bl9odG1sKHQpe3ZhciBlPSIiLHI9dC5idG4xX3N0eWxlLG89dC5wb3B1cF9vcHRzLmJ0blRpdGxlO3JldHVybiIiIT09byYmKGUrPSc8ZGl2IGNsYXNzPSJ0LXN0b3JlX19wcm9kLXBvcHVwX19idG4td3JhcHBlciBqcy1zdG9yZS1idXR0b25zLXdyYXBwZXIiPicsZSs9JzxhIGhyZWY9IiNvcmRlciIgY2xhc3M9InQtc3RvcmVfX3Byb2QtcG9wdXBfX2J0biB0LWJ0biB0LWJ0bl9zbSIgc3R5bGU9IicrcisnIj4nLGUrPSc8dGFibGUgc3R5bGU9IndpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyI+PHRyPjx0ZCBjbGFzcz0ianMtc3RvcmUtcHJvZC1wb3B1cC1idXktYnRuLXR4dCI+JyxlKz1vLGUrPSI8L3RkPjwvdHI+PC90YWJsZT4iLGUrPSI8L2E+IixlKz0iPC9kaXY+IiksZX1mdW5jdGlvbiB0X3N0b3JlX2dldF9wcm9kdWN0UG9wdXBfb25lUHJpY2VfaHRtbCh0LGUpe3ZhciByPSIiLG89ImN1cnJlbnQiPT09ZT8ianMtc3RvcmUtcHJvZC1wcmljZSB0LXN0b3JlX19wcm9kLXBvcHVwX19wcmljZSI6ImpzLXN0b3JlLXByb2QtcHJpY2Utb2xkIHQtc3RvcmVfX3Byb2QtcG9wdXBfX3ByaWNlX29sZCIsaT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodC5wcmljZSwiZm9udFdlaWdodCIpJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodC5wcmljZSwiZm9udFNpemUiKSxzLGE9IiIsbj0iY3VycmVudCI9PT1lP3QucHJpY2UuY29sb3I6dC5wcmljZS5jb2xvck9sZCxkPXQucG9wdXBfb3B0cy5jb250YWluZXJCZ0NvbG9yOzA9PT1NYXRoLmFicyh0X3N0b3JlX2dldExpZ2h0bmVzc0NvbG9yKG4pLXRfc3RvcmVfZ2V0TGlnaHRuZXNzQ29sb3IoZCkpJiYobj10X3N0b3JlX2x1bWFfcmdiKGQpLGl8fChhKz1uPyJjb2xvcjoiK24rIjsiOiIiKSksaSYmKGErPW4/ImNvbG9yOiIrbisiOyI6IiIsYSs9dC5wcmljZS5mb250V2VpZ2h0PyJmb250LXdlaWdodDoiK3QucHJpY2UuZm9udFdlaWdodCsiOyI6IiIpLHM9IiIhPT1hPydzdHlsZSA9ICInK2ErJyInOiIiO3ZhciBjPXQuY3VycmVuY3lUeHQ/JzxkaXYgY2xhc3M9InQtc3RvcmVfX3Byb2QtcG9wdXBfX3ByaWNlLWN1cnJlbmN5IiB0cmFuc2xhdGU9Im5vIj4nK3QuY3VycmVuY3lUeHQrIjwvZGl2PiI6IiIsbD0iY3VycmVudCI9PT1lPyJqcy1wcm9kdWN0LXByaWNlIGpzLXN0b3JlLXByb2QtcHJpY2UtdmFsIjoianMtc3RvcmUtcHJvZC1wcmljZS1vbGQtdmFsIjtyZXR1cm4gcis9JzxkaXYgY2xhc3M9IicrbysnIHQtc3RvcmVfX3Byb2QtcG9wdXBfX3ByaWNlLWl0ZW0gdC1uYW1lIHQtbmFtZV9tZCIgJytzKyI+IixyKz0iciIhPT10LmN1cnJlbmN5U2lkZSYmYz9jOiIiLHIrPSc8ZGl2IGNsYXNzPSInK2wrJyB0LXN0b3JlX19wcm9kLXBvcHVwX19wcmljZS12YWx1ZSIgdHJhbnNsYXRlPSJubyI+PC9kaXY+JyxyKz0iciI9PT10LmN1cnJlbmN5U2lkZSYmYz9jOiIiLHIrPSI8L2Rpdj4ifWZ1bmN0aW9uIHRfc3RvcmVfZ2V0X3Byb2R1Y3RQb3B1cF90aXRsZVRleHRfaHRtbCgpe3ZhciB0PSIiO3JldHVybiB0Kz0nPGRpdiBjbGFzcz0idC1zdG9yZV9fcHJvZC1wb3B1cF9fdGl0bGUtd3JhcHBlciI+Jyx0Kz0nICAgIDxkaXYgY2xhc3M9ImpzLXN0b3JlLXByb2QtbmFtZSBqcy1wcm9kdWN0LW5hbWUgdC1zdG9yZV9fcHJvZC1wb3B1cF9fbmFtZSB0LXR5cG9ncmFwaHlfX3RpdGxlIHQtbmFtZSB0LW5hbWVfeGwiPjwvZGl2PicsdCs9JyAgICA8ZGl2IGNsYXNzPSJ0LXN0b3JlX19wcm9kLXBvcHVwX19icmFuZCB0LXR5cG9ncmFwaHlfX3NrdSB0LWRlc2NyIHQtZGVzY3JfeHhzIj48L2Rpdj4nLHQrPScgICAgPGRpdiBjbGFzcz0idC1zdG9yZV9fcHJvZC1wb3B1cF9fc2t1IHQtdHlwb2dyYXBoeV9fc2t1IHQtZGVzY3IgdC1kZXNjcl94eHMiPicsdCs9d2luZG93LnRTdG9yZURpY3Quc2t1KyI6ICIsdCs9JzxzcGFuIGNsYXNzPSJqcy1zdG9yZS1wcm9kLXNrdSBqcy1wcm9kdWN0LXNrdSI+Jyx0Kz0iPC9zcGFuPiIsdCs9IiAgICA8L2Rpdj4iLHQrPSI8L2Rpdj4ifWZ1bmN0aW9uIHRfc3RvcmVfZ2V0X3Byb2R1Y3RQb3B1cF9jbG9zZUljb25faHRtbCh0KXt2YXIgZT0iIixyPXQucG9wdXBfb3B0cy5pY29uQ29sb3I/dC5wb3B1cF9vcHRzLmljb25Db2xvcjoiIzAwMDAwMCIsbz10LnBvcHVwX29wdHMub3ZlcmxheUJnQ29sb3JSZ2JhP3Rfc3RvcmVfcmVtb3ZlUmdiT3BhY2l0eSh0LnBvcHVwX29wdHMub3ZlcmxheUJnQ29sb3JSZ2JhKTp0LnBvcHVwX29wdHMuY29udGFpbmVyQmdDb2xvcixpPW8mJm8ubGVuZ3RoP286IiNmZmZmZmYiLHM7dC5wb3B1cF9vcHRzLm92ZXJsYXlCZ0NvbG9yUmdiYSYmIXQucG9wdXBfb3B0cy5pY29uQ29sb3ImJihyPXRfc3RvcmVfbHVtYV9yZ2IodF9zdG9yZV9yZW1vdmVSZ2JPcGFjaXR5KHQucG9wdXBfb3B0cy5vdmVybGF5QmdDb2xvclJnYmEpKSk7cmV0dXJuIGUrPSc8ZGl2IGNsYXNzPSJ0LXBvcHVwX19jbG9zZSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICcraSsnIj4nLGUrPScgICAgPGRpdiBjbGFzcz0idC1wb3B1cF9fY2xvc2Utd3JhcHBlciI+JyxlKz0nPHN2ZyBjbGFzcz0idC1wb3B1cF9fY2xvc2UtaWNvbiB0LXBvcHVwX19jbG9zZS1pY29uX2Fycm93IiB3aWR0aD0iMjZweCIgaGVpZ2h0PSIyNnB4IiB2aWV3Qm94PSIwIDAgMjYgMjYiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+JyxlKz0nPHBhdGggZD0iTTEwLjQxNDIxMzYsNSBMMTEuODI4NDI3MSw2LjQxNDIxMzU2IEw1LjgyOSwxMi40MTQgTDIzLjQxNDIxMzYsMTIuNDE0MjEzNiBMMjMuNDE0MjEzNiwxNC40MTQyMTM2IEw1LjgyOSwxNC40MTQgTDExLjgyODQyNzEsMjAuNDE0MjEzNiBMMTAuNDE0MjEzNiwyMS44Mjg0MjcxIEwyLDEzLjQxNDIxMzYgTDEwLjQxNDIxMzYsNSBaIiBmaWxsPSInK3IrJyI+PC9wYXRoPicsZSs9Ijwvc3ZnPiIsZSs9JyAgICAgICAgPHN2ZyBjbGFzcz0idC1wb3B1cF9fY2xvc2UtaWNvbiB0LXBvcHVwX19jbG9zZS1pY29uX2Nyb3NzIiB3aWR0aD0iMjNweCIgaGVpZ2h0PSIyM3B4IiB2aWV3Qm94PSIwIDAgMjMgMjMiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+JyxlKz0nICAgICAgICAgICAgPGcgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9IicrcisnIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPicsZSs9JyAgICAgICAgICAgICAgICA8cmVjdCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMS4zMTM3MDgsIDExLjMxMzcwOCkgcm90YXRlKC00NS4wMDAwMDApIHRyYW5zbGF0ZSgtMTEuMzEzNzA4LCAtMTEuMzEzNzA4KSAiIHg9IjEwLjMxMzcwODUiIHk9Ii0zLjY4NjI5MTUiIHdpZHRoPSIyIiBoZWlnaHQ9IjMwIj48L3JlY3Q+JyxlKz0nICAgICAgICAgICAgICAgIDxyZWN0IHRyYW5zZm9ybT0idHJhbnNsYXRlKDExLjMxMzcwOCwgMTEuMzEzNzA4KSByb3RhdGUoLTMxNS4wMDAwMDApIHRyYW5zbGF0ZSgtMTEuMzEzNzA4LCAtMTEuMzEzNzA4KSAiIHg9IjEwLjMxMzcwODUiIHk9Ii0zLjY4NjI5MTUiIHdpZHRoPSIyIiBoZWlnaHQ9IjMwIj48L3JlY3Q+JyxlKz0iICAgICAgICAgICAgPC9nPiIsZSs9IiAgICAgICAgPC9zdmc+IixlKz0iICAgIDwvZGl2PiIsZSs9IjwvZGl2PiJ9ZnVuY3Rpb24gdF9zdG9yZV9nZXRfcHJvZHVjdFBvcHVwX2Nsb3NlSWNvbl9jb2xvcih0LGUpe3ZhciByPWUucG9wdXBfb3B0cy5pY29uQ29sb3I/ZS5wb3B1cF9vcHRzLmljb25Db2xvcjoiIzAwMDAwMCIsbz1lLnBvcHVwX29wdHMub3ZlcmxheUJnQ29sb3JSZ2JhP3Rfc3RvcmVfcmVtb3ZlUmdiT3BhY2l0eShlLnBvcHVwX29wdHMub3ZlcmxheUJnQ29sb3JSZ2JhKTplLnBvcHVwX29wdHMuY29udGFpbmVyQmdDb2xvcixpPW8mJm8ubGVuZ3RoP286IiNmZmZmZmYiLHM7ZS5wb3B1cF9vcHRzLm92ZXJsYXlCZ0NvbG9yUmdiYSYmIWUucG9wdXBfb3B0cy5pY29uQ29sb3ImJihyPXRfc3RvcmVfbHVtYV9yZ2Iocz10X3N0b3JlX3JlbW92ZVJnYk9wYWNpdHkoZS5wb3B1cF9vcHRzLm92ZXJsYXlCZ0NvbG9yUmdiYSkpKTt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjIit0KSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbGxyZWNvcmRzIikhPT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fcHJvZHVjdC1zbmlwcGV0IikmJmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbGxyZWNvcmRzIikuY29udGFpbnMoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtc3RvcmVfX3Byb2R1Y3Qtc25pcHBldCIpKSxkPW4/YS5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fcHJvZC1zbmlwcGV0X19jb250YWluZXIiKTphLnF1ZXJ5U2VsZWN0b3IoIi50LXBvcHVwIiksYztkLnF1ZXJ5U2VsZWN0b3IoIi50LXBvcHVwX19jbG9zZSIpLnN0eWxlLmJhY2tncm91bmRDb2xvcj1pO3ZhciBsPWQucXVlcnlTZWxlY3RvcigiLnQtcG9wdXBfX2Nsb3NlLWljb25fY3Jvc3MiKSxwO2lmKG4mJiFlLnBvcHVwX29wdHMuaWNvbkNvbG9yJiZNYXRoLmFicyh0X3N0b3JlX2dldExpZ2h0bmVzc0NvbG9yKHIpLXRfc3RvcmVfZ2V0TGlnaHRuZXNzQ29sb3IodF9zdG9yZV9yZW1vdmVSZ2JPcGFjaXR5KGkpKSk+LjEpe3ZhciBzPXRfc3RvcmVfcmVtb3ZlUmdiT3BhY2l0eShlLnBvcHVwX29wdHMuY29udGFpbmVyQmdDb2xvcil8fCJyZ2IoMjU1LDI1NSwyNTUpIjtsLnF1ZXJ5U2VsZWN0b3IoImciKS5zZXRBdHRyaWJ1dGUoImZpbGwiLHRfc3RvcmVfbHVtYV9yZ2IocykpfWVsc2UgbC5xdWVyeVNlbGVjdG9yKCJnIikuc2V0QXR0cmlidXRlKCJmaWxsIixyKTtkLnF1ZXJ5U2VsZWN0b3IoIi50LXBvcHVwX19jbG9zZS1pY29uX2Fycm93IikucXVlcnlTZWxlY3RvcigicGF0aCIpLnNldEF0dHJpYnV0ZSgiZmlsbCIscil9ZnVuY3Rpb24gdF9zdG9yZV9nZXRfcHJvZHVjdFBvcHVwX2Nsb3NlVGV4dF9odG1sKHQpe2lmKCF0LnBvcHVwX29wdHMuY2xvc2VUZXh0KXJldHVybiIiO3ZhciBlPXRfc3RvcmVfdW5lc2NhcGVIdG1sKHQucG9wdXBfb3B0cy5jbG9zZVRleHQpLHI9dC5wb3B1cF9vcHRzLmljb25Db2xvcj90LnBvcHVwX29wdHMuaWNvbkNvbG9yOiIjMDAwMDAwIixvPXQucG9wdXBfb3B0cy5jb250YWluZXJCZ0NvbG9yJiZ0LnBvcHVwX29wdHMuY29udGFpbmVyQmdDb2xvci5sZW5ndGg/dC5wb3B1cF9vcHRzLmNvbnRhaW5lckJnQ29sb3I6IiNmZmZmZmYiLGk7dC5wb3B1cF9vcHRzLmNvbnRhaW5lckJnQ29sb3ImJiF0LnBvcHVwX29wdHMuaWNvbkNvbG9yJiYocj10X3N0b3JlX2x1bWFfcmdiKHRfc3RvcmVfaGV4VG9SZ2IobykpKTt2YXIgcyxhPSIiO3JldHVybiBhKz0nPGRpdiBjbGFzcz0idC1zdG9yZV9fcHJvZC1wb3B1cF9fY2xvc2UtdHh0LXdyIj4nLGErPScgICAgPGRpdiBjbGFzcz0ianMtc3RvcmUtY2xvc2UtdGV4dCB0LXN0b3JlX19wcm9kLXBvcHVwX19jbG9zZS10eHQgdC1kZXNjciB0LWRlc2NyX3h4cyIgJysoJ3N0eWxlPSJjb2xvcjonK3IrJyInKSsiPiIsYSs9ZSxhKz0iICAgIDwvZGl2PiIsYSs9IjwvZGl2PiJ9ZnVuY3Rpb24gdF9zdG9yZV9nZXRfbG9hZE1vcmVCdG5faHRtbCh0LGUpe3ZhciByPSIiLG8saSxzO3JldHVybiByKz0nPGRpdiBjbGFzcz0idC1zdG9yZV9fbG9hZC1tb3JlLWJ0bi13cmFwIHQtYWxpZ25fY2VudGVyJysoISEod2luZG93LmlubmVyV2lkdGg8OTYwJiZ0LnF1ZXJ5U2VsZWN0b3IoIi5qcy1zdG9yZS1ncmlkLWNvbnQudC1zdG9yZV9fZ3JpZC1jb250X21vYmlsZS1vbmUtcm93IikpPyIgdC1zdG9yZV9fbG9hZC1tb3JlLWJ0bi13cmFwX2hpZGRlbiAiOiIiKSsnIj4nLHIrPScgICAgPGRpdiBjbGFzcz0ianMtc3RvcmUtbG9hZC1tb3JlLWJ0biB0LXN0b3JlX19sb2FkLW1vcmUtYnRuIHQtYnRuICcrKCJzbSI9PT1lLmJ0blNpemU/InQtYnRuX3hzIjoidC1idG5fc20iKSsnIiBzdHlsZT0iJytlLmJ0bjFfc3R5bGUrJ2Rpc3BsYXk6bm9uZTsiPicscis9JyAgICAgICAgPHRhYmxlIHN0eWxlPSJ3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsiPjx0cj48dGQ+Jyt3aW5kb3cudFN0b3JlRGljdC5sb2FkbW9yZSsiPC90ZD48L3RyPjwvdGFibGU+IixyKz0iICAgIDwvZGl2PiIscis9IjwvZGl2PiJ9ZnVuY3Rpb24gdF9zdG9yZV9nZXRfaGFuZEljb25faHRtbCh0LGUpe3ZhciByPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWMiK3QpLG89InJnYmEoMTkwLDE5MCwxOTAsMC4zKSIsaT0icmdiYSgxOTAsMTkwLDE5MCwxKSIscz0icmdiYSgxOTAsMTkwLDE5MCwwLjMpIixhPSJtaXgtYmxlbmQtbW9kZTogbXVsdGlwbHk7IixuLGQ9ci5nZXRBdHRyaWJ1dGUoImRhdGEtYmctY29sb3IiKSxjLGwscCxfOyhkJiYobj0tMSE9PWQuaW5kZXhPZigiLWdyYWRpZW50KCIpP3Rfc3RvcmVfZ2V0Rmlyc3RDb2xvckZyb21HcmFkaWVudChkKTp0X3N0b3JlX2hleFRvUmdiKGQpKSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpIT09ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtc3RvcmVfX3Byb2R1Y3Qtc25pcHBldCIpJiZkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpLmNvbnRhaW5zKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19wcm9kdWN0LXNuaXBwZXQiKSkmJihuPXIuc3R5bGUuYmFja2dyb3VuZENvbG9yKSxuKSYmKCJ3aGl0ZSI9PT10X3N0b3JlX2x1bWFfcmdiKG4pJiYoYT0ibWl4LWJsZW5kLW1vZGU6IGxpZ2h0ZW47IixvPSJyZ2JhKDI1NSwyNTUsMjU1LDAuMikiLGk9InJnYmEoMjU1LDI1NSwyNTUsMSkiLHM9InJnYmEoMjU1LDI1NSwyNTUsMC4yKSIpKTtyZXR1cm4iaGFuZCIhPT1lJiZlPyJjaXJjbGUiPT09ZT8nPGRpdiBjbGFzcz0idC1zdG9yZV9fc2Nyb2xsLWljb24td3JhcHBlciIgc3R5bGU9IicrYSsnIj48c3ZnIHJvbGU9InByZXNlbnRhdGlvbiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMzggMTYiIGhlaWdodD0iMTYiIHdpZHRoPSIzOCI+PHJlY3QgY2xhc3M9InRvb2x0aXAtaG9yaXpvbnRhbC1zY3JvbGwtaWNvbl9jaXJjbGUiIHg9IjIyIiB5PSIwIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHJ4PSI4IiBmaWxsPSInK3MrJyI+PC9yZWN0PjxzdHlsZT4udG9vbHRpcC1ob3Jpem9udGFsLXNjcm9sbC1pY29uX2NpcmNsZSB7YW5pbWF0aW9uOiB0b29sdGlwLWhvcml6b250YWwtc2Nyb2xsLWljb25fYW5pbS1zY3JvbGwtY2lyY2xlIDIuOXMgaW5maW5pdGUgbGluZWFyO31Aa2V5ZnJhbWVzIHRvb2x0aXAtaG9yaXpvbnRhbC1zY3JvbGwtaWNvbl9hbmltLXNjcm9sbC1jaXJjbGUgezAlIHsgb3BhY2l0eTogMTt0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7d2lkdGg6IDE2cHg7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IH0yNyUgeyBvcGFjaXR5OiAxO3RyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7d2lkdGg6IDIxcHg7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7IH0zNyUgeyBvcGFjaXR5OiAxO3RyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjJweCk7d2lkdGg6IDE2cHg7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IH01NCUgeyBvcGFjaXR5OiAwO3RyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjJweCk7d2lkdGg6IDE2cHg7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IH0xMDAlIHsgb3BhY2l0eTogMDt0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIycHgpO3dpZHRoOiAxNnB4OyB9fTwvc3R5bGU+PC9zdmc+PC9kaXY+JzoiIjonPGRpdiBjbGFzcz0idC1zdG9yZV9fc2Nyb2xsLWljb24td3JhcHBlciIgc3R5bGU9IicrYSsnIj48c3ZnIHJvbGU9InByZXNlbnRhdGlvbiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMzIwIDMwMCIgaGVpZ2h0PSI0MiIgd2lkdGg9IjQyIj48cmVjdCBjbGFzcz0idG9vbHRpcC1ob3Jpem9udGFsLXNjcm9sbC1pY29uX2NhcmQiIHg9IjQ4MCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIHJ4PSI1IiBmaWxsPSInK28rJyI+PC9yZWN0PjxyZWN0IGNsYXNzPSJ0b29sdGlwLWhvcml6b250YWwtc2Nyb2xsLWljb25fY2FyZCIgeT0iMCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIHJ4PSI1IiBmaWxsPSInK28rJyI+PC9yZWN0PjxyZWN0IGNsYXNzPSJ0b29sdGlwLWhvcml6b250YWwtc2Nyb2xsLWljb25fY2FyZCIgeD0iMjQwIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgcng9IjUiIGZpbGw9IicrbysnIj48L3JlY3Q+PHBhdGggY2xhc3M9InRvb2x0aXAtaG9yaXpvbnRhbC1zY3JvbGwtaWNvbl9oYW5kIiBkPSJNNzguOTU3OSAyODUuN0M3OC45NTc5IDI4NS43IDM3Ljg1NzkgMjEyLjUgMjAuNTU3OSAxODAuOEMtMi40NDIwOSAxMzguNiAtNi4yNDIyIDEyMC44IDkuNjU3OSAxMTJDMTkuNTU3OSAxMDYuNSAzMy4yNTc5IDEwOC44IDQxLjY1NzkgMTIzLjRMNjEuMjU3OSAxNTQuNlYzMi4zQzYxLjI1NzkgMzIuMyA2MC4wNTc5IDAgODMuMDU3OSAwQzEwNy41NTggMCAxMDUuNDU4IDMyLjMgMTA1LjQ1OCAzMi4zVjkxLjdDMTA1LjQ1OCA5MS43IDExOC4zNTggODIuNCAxMzMuNDU4IDg2LjZDMTQxLjE1OCA4OC43IDE1MC4xNTggOTIuNCAxNTQuOTU4IDEwNC42QzE1NC45NTggMTA0LjYgMTg1LjY1OCA4OS43IDIwMC45NTggMTIxLjRDMjAwLjk1OCAxMjEuNCAyMzYuMzU4IDExNC40IDIzNi4zNTggMTUxLjFDMjM2LjM1OCAxODcuOCAxOTIuMTU4IDI4NS43IDE5Mi4xNTggMjg1LjdINzguOTU3OVoiIGZpbGw9IicraSsnIj48L3BhdGg+PHN0eWxlPi50b29sdGlwLWhvcml6b250YWwtc2Nyb2xsLWljb25faGFuZCB7YW5pbWF0aW9uOiB0b29sdGlwLWhvcml6b250YWwtc2Nyb2xsLWljb25fYW5pbS1zY3JvbGwtaGFuZCAycyBpbmZpbml0ZX0udG9vbHRpcC1ob3Jpem9udGFsLXNjcm9sbC1pY29uX2NhcmQge2FuaW1hdGlvbjogdG9vbHRpcC1ob3Jpem9udGFsLXNjcm9sbC1pY29uX2FuaW0tc2Nyb2xsLWNhcmQgMnMgaW5maW5pdGV9QGtleWZyYW1lcyB0b29sdGlwLWhvcml6b250YWwtc2Nyb2xsLWljb25fYW5pbS1zY3JvbGwtaGFuZCB7MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoODBweCkgc2NhbGUoMSk7IG9wYWNpdHk6IDAgfTEwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCg4MHB4KSBzY2FsZSgxKTsgb3BhY2l0eTogMSB9MjAlLDYwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxNzVweCkgc2NhbGUoLjYpOyBvcGFjaXR5OiAxIH04MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNXB4KSBzY2FsZSguNik7IG9wYWNpdHk6IDEgfSB0byB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpIHNjYWxlKC42KTsgb3BhY2l0eTogMCB9fUBrZXlmcmFtZXMgdG9vbHRpcC1ob3Jpem9udGFsLXNjcm9sbC1pY29uX2FuaW0tc2Nyb2xsLWNhcmQgezAlLDYwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSB9ODAlLHRvIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yNDBweCkgfX08L3N0eWxlPjwvc3ZnPjwvZGl2Pid9ZnVuY3Rpb24gdF9zdG9yZV9nZXRfZW1wdHlNc2dfaHRtbCh0KXt2YXIgZT0iIixyPXQudHlwby50aXRsZUNvbG9yPyJjb2xvcjoiK3QudHlwby50aXRsZUNvbG9yKyI7Ym9yZGVyLWNvbG9yOiIrdC50eXBvLnRpdGxlQ29sb3IrIjsiOiIiLG89ImpzLXN0b3JlLWVtcHR5LXBhcnQtbXNnIHQtc3RvcmVfX2VtcHR5LXBhcnQtbXNnLWNvbnQiO3JldHVybiBlKz0nPGRpdiBjbGFzcz0iJysobys9dC5jb2xDbGFzc0Z1bGxXaWR0aD8iICIrdC5jb2xDbGFzc0Z1bGxXaWR0aDoiIikrJyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPicsZSs9JyAgICA8ZGl2IGNsYXNzPSIgdC1zdG9yZV9fZW1wdHktcGFydC1tc2ctd3JhcHBlciB0LWRlc2NyIHQtZGVzY3Jfc20iIHN0eWxlPSInK3IrJyI+JyxlKz0nICAgICAgICA8ZGl2IGNsYXNzPSJ0LXN0b3JlX19lbXB0eS1wYXJ0LW1zZyI+JyxlKz0iICAgICAgICAiK3dpbmRvdy50U3RvcmVEaWN0LmVtcHR5cGFydG1zZyxlKz0iICAgICAgICA8L2Rpdj4iLGUrPSIgICAgPC9kaXY+IixlKz0iPC9kaXY+In1mdW5jdGlvbiB0X3N0b3JlX2dldF9lcnJvckJveCh0LGUpe3ZhciByPSIiLG89dC50eXBvLnRpdGxlQ29sb3I/ImNvbG9yOiIrdC50eXBvLnRpdGxlQ29sb3IrIjtib3JkZXItY29sb3I6Iit0LnR5cG8udGl0bGVDb2xvcisiOyI6IiIsaT0ianMtc3RvcmUtZXJyb3ItbXNnIHQtc3RvcmVfX2Vycm9yLW1zZy1jb250IjtyZXR1cm4gcis9Ilx4M2MhLS1nb29nbGVvZmY6IGFsbC0tXHgzZSIscis9Ilx4M2MhLS1ub2luZGV4LS1ceDNlIixyKz0nPGRpdiBjbGFzcz0iJysoaSs9dC5jb2xDbGFzc0Z1bGxXaWR0aD8iICIrdC5jb2xDbGFzc0Z1bGxXaWR0aDoiIikrJyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPicscis9JyAgICA8ZGl2IGNsYXNzPSJ0LXN0b3JlX19lcnJvci1tc2ctd3JhcHBlciB0LWRlc2NyIHQtZGVzY3Jfc20iIHN0eWxlPSInK28rJyI+JyxyKz0nICAgICAgICA8ZGl2IGNsYXNzPSJ0LXN0b3JlX19lcnJvci1tc2ciPicscis9IiAgICAgICAgIitlLHIrPSIgICAgICAgIDwvZGl2PiIscis9IiAgICA8L2Rpdj4iLHIrPSI8L2Rpdj4iLHIrPSJceDNjIS0tL25vaW5kZXgtLVx4M2UiLHIrPSJceDNjIS0tZ29vZ2xlb246IGFsbC0tXHgzZSJ9ZnVuY3Rpb24gdF9zdG9yZV9nZXRfcHJvZHVjdENhcmRfaHRtbCh0LGUscixvLGkscyl7dmFyIGE9bz8idC1jb2wgdC1jb2xfMyI6ci5jb2xDbGFzcyxuPXRfc3RvcmVfcHJvZHVjdF9nZXRGaXJzdEF2YWlsYWJsZUVkaXRpb25EYXRhKGUuZWRpdGlvbnMpLGQ9IiIsYz0ibGVmdCI9PT1yLmFsaWduPyJ0LWFsaWduX2xlZnQiOiJ0LWFsaWduX2NlbnRlciIsbD1yLml0ZW1zQW5pbSYmci5wcmV2aWV3bW9kZT8idC1hbmltYXRlIjoiIjtpZih3aW5kb3cudFN0b3JlSXNNb2JpbGUpe3ZhciBwPW5hdmlnYXRvci5jb25uZWN0aW9ufHxuYXZpZ2F0b3IubW96Q29ubmVjdGlvbnx8bmF2aWdhdG9yLndlYmtpdENvbm5lY3Rpb247cCYmKCJzbG93LTJnIiE9PXAuZWZmZWN0aXZlVHlwZSYmIjJnIiE9PXAuZWZmZWN0aXZlVHlwZSYmIjNnIiE9PXAuZWZmZWN0aXZlVHlwZXx8KGw9IiIpKX12YXIgXz1yLml0ZW1zQW5pbT8nZGF0YS1hbmltYXRlLXN0eWxlPSInK3IuaXRlbXNBbmltKyciIGRhdGEtYW5pbWF0ZS1jaGFpbj0ieWVzIiAnOiIiLHU9bi5xdWFudGl0eSYmcGFyc2VJbnQobi5xdWFudGl0eSwxMCk8PTAsZz0nZGF0YS1wcm9kdWN0LWludj0iJysobi5xdWFudGl0eXx8IiIpKyciICcsdj0iMTAyNSI9PT1yLnByb2RDYXJkLmJsb2NrSWQseT1yLnByb2RDYXJkLmJ0bkxpbmsxLG09dF9zdG9yZV9nZXRfcHJvZHVjdENhcmRfbGluayh5LGUsbyx0KSxmPXRfc3RvcmVfZ2V0X3Byb2R1Y3RDYXJkX3RhcmdldEF0dHIoeSxlKSxoPXtvcGVuOnIucHJldmlld21vZGU/JzxhIGhyZWY9IicrbSsnIiAnK2YrIj4iOiIiLGNsb3NlOnIucHJldmlld21vZGU/IjwvYT4iOiIifTsodSYmIiNvcmRlciI9PT1tfHwhZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQ3MDZfX2NhcnR3aW4iKSYmIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50NzA2X19zaWRlYmFyIikmJiIjb3JkZXIiPT09bSkmJihoLm9wZW49IiIsaC5jbG9zZT0iIik7dmFyIHc9IiI7byYmKHc9ImpzLXByb2R1Y3QtcmVsZXZhbnQiKTt2YXIgYj00LFM9ZS5wYWNrX2xhYmVsLEU9ZS5wYWNrX20sQT1lLnBhY2tfeCx4PWUucGFja195LEM9ZS5wYWNrX3o7aT1wYXJzZUludChpLDEwKSsxO3ZhciBxPSI5NzMiPT09dC5nZXRBdHRyaWJ1dGUoImRhdGEtcmVjb3JkLXR5cGUiKSYmIW8saj1vJiZyLnJlbGV2YW50c19zbGlkZXImJihzLmxlbmd0aD40fHx3aW5kb3cuaW5uZXJXaWR0aDw9OTYwKTsoanx8cSkmJihkKz0nPGRpdiBjbGFzcz0idC1zbGRzX19pdGVtIHQtYW5pbWF0ZSIgZGF0YS1zbGlkZS1pbmRleD0iJytpKyciPicsZCs9JzxkaXYgY2xhc3M9InRfX3NsZHMtd3JhcHBlciB0LXNsZHNfX3dyYXBwZXIgdC1zbGRzX193cmFwcGVyXzEwMCI+Jyk7dmFyIGs9ZS51cmx8fCIiLFA9IiI7diYmKCIyIj09PXIucHJvZENhcmQuc3R5bGU/UCs9IiB0LXN0b3JlX19jYXJkX2luLXJvdyI6IjMiPT09ci5wcm9kQ2FyZC5zdHlsZT9QKz0iIHQtc3RvcmVfX2NhcmRfdW5kZXItZGVzY3JpcHRpb24iOlArPSIgdC1zdG9yZV9fY2FyZF9pbi1jb2x1bW4iLFArPXIucHJvZENhcmQuaGFzU2VwYXJhdG9yPyIiOiIgdC1zdG9yZV9fY2FyZF9uby1zZXBhcmF0b3IiLFArPXBhcnNlSW50KHIucmlnaHRDb2x1bW5XaWR0aCwxMCk/IiB0LXN0b3JlX19jYXJkX2ZpeGVkLXdpZHRoIjoiIixQKz1yLnZlcnRpY2FsQWxpZ24/IiB0LXN0b3JlX19jYXJkX3ZlcnRpY2FsQWxpZ25fIityLnZlcnRpY2FsQWxpZ246IiIpO3ZhciBMPVtdO3RyeXtMPUpTT04ucGFyc2UoZS5wYXJ0dWlkcyl9Y2F0Y2goTyl7Y29uc29sZS5sb2coTyl9cmV0dXJuIGQrPSc8ZGl2IGNsYXNzPSJqcy1wcm9kdWN0IHQtc3RvcmVfX2NhcmQgdC1zdG9yZV9fY2FyZF9oaWRkZW4gJytQKyIgIithKyIgIitjKyIgIit3KyIgdC1pdGVtICIrbCsnIiAnK18rZysnZGF0YS1wcm9kdWN0LWxpZD0iJytlLnVpZCsnIiBkYXRhLXByb2R1Y3QtdWlkPSInK2UudWlkKyciIGRhdGEtcHJvZHVjdC1nZW4tdWlkPSInK2UudWlkKyciIGRhdGEtcHJvZHVjdC1wYWNrLWxhYmVsPSInK1MrJyIgZGF0YS1wcm9kdWN0LXBhY2stbT0iJytFKyciIGRhdGEtcHJvZHVjdC1wYWNrLXg9IicrQSsnIiBkYXRhLXByb2R1Y3QtcGFjay15PSInK3grJyIgZGF0YS1wcm9kdWN0LXBhY2stej0iJytDKyciIGRhdGEtcHJvZHVjdC11cmw9IicraysnIiBkYXRhLXByb2R1Y3QtcGFydC11aWQ9IicrTC5qb2luKCIsIikrJyIgPicsci5wcm9kQ2FyZC5oYXNXcmFwP2QrPXRfc3RvcmVfZ2V0X3Byb2R1Y3RDYXJkX3dyYXBwZXJTdHJ1Y3R1cmUoZSxuLHIsaCxvLHQpOmQrPXYmJiFvP3Rfc3RvcmVfZ2V0X3Byb2R1Y3RDYXJkX2hvcml6b250YWxTdHJ1Y3R1cmUoZSxuLHIsaCxvLHQpOnRfc3RvcmVfZ2V0X3Byb2R1Y3RDYXJkX3NpbXBsZVN0cnVjdHVyZShlLG4scixoLG8sdCksZCs9IjwvZGl2PiIsKGp8fHEpJiYoZCs9IjwvZGl2PiIsZCs9IjwvZGl2PiIpLGR9ZnVuY3Rpb24gdF9zdG9yZV9nZXRfcHJvZHVjdENhcmRfc2ltcGxlU3RydWN0dXJlKHQsZSxyLG8saSxzKXt2YXIgYT1yLnByb2RDYXJkJiZyLnByb2RDYXJkLnNob3dPcHRzPyIiOidzdHlsZT0iZGlzcGxheTpub25lOyInLG49dF9zdG9yZV9nZXRfcHJvZHVjdENhcmRfaW1nX2h0bWwodCxyKSxkPSIiO3JldHVybiBkKz1vLm9wZW4sZCs9IiAgICAiK24sZCs9IiAgICAiK3Rfc3RvcmVfZ2V0X3Byb2R1Y3RDYXJkX3R4dEFuZFByaWNlX2h0bWwodCxlLHIsbiksZCs9by5jbG9zZSxkKz0nPGRpdiBjbGFzcz0ianMtcHJvZHVjdC1jb250cm9scy13cmFwcGVyIHQtc3RvcmVfX2NhcmRfX3Byb2QtY29udHJvbHMtd3JhcHBlciIgJythKyI+PC9kaXY+IixkKz10X3N0b3JlX2dldF9wcm9kdWN0Q2FyZF9idG5faHRtbCh0LHIsaSxzKX1mdW5jdGlvbiB0X3N0b3JlX2dldF9wcm9kdWN0Q2FyZF93cmFwcGVyU3RydWN0dXJlKHQsZSxyLG8saSxzKXt2YXIgYT0iIixuPXRfc3RvcmVfZ2V0X3Byb2R1Y3RDYXJkX2dldFdyYXBwZXJTdHlsZXNTdHIociksZD1yLnByb2RDYXJkJiZyLnByb2RDYXJkLnNob3dPcHRzPyIiOidzdHlsZT0iZGlzcGxheTpub25lOyInLGM7cmV0dXJuIGErPSc8ZGl2IGNsYXNzPSJ0LXN0b3JlX19jYXJkX193cmFwX2FsbCAnKyhyLnByb2RDYXJkJiZyLnByb2RDYXJkLnR4dFBhZD8idC1zdG9yZV9fY2FyZF9fd3JhcF9wYWQtIityLnByb2RDYXJkLnR4dFBhZDoiIikrJyIgc3R5bGU9IicrbisnIj4nLGErPSIgICAgIitvLm9wZW4sYSs9IiAgICAgICAgIit0X3N0b3JlX2dldF9wcm9kdWN0Q2FyZF9pbWdfaHRtbCh0LHIpLGErPSIgICAgIitvLmNsb3NlLGErPScgICAgPGRpdiBjbGFzcz0idC1zdG9yZV9fY2FyZF9fd3JhcF90eHQtYW5kLWJ0bnMiPicsYSs9JyAgICAgICAgPGRpdiBjbGFzcz0ic3RvcmVfX2NhcmRfX3dyYXBfdHh0LWFuZC1vcHRzIj4nLGErPSIgICAgICAgICAgICAiK28ub3BlbixhKz0iICAgICAgICAgICAgICAgICIrdF9zdG9yZV9nZXRfcHJvZHVjdENhcmRfdHh0QW5kUHJpY2VfaHRtbCh0LGUsciksYSs9IiAgICAgICAgICAgICIrby5jbG9zZSxhKz0nICAgICAgICAgICAgPGRpdiBjbGFzcz0ianMtcHJvZHVjdC1jb250cm9scy13cmFwcGVyIHQtc3RvcmVfX2NhcmRfX3Byb2QtY29udHJvbHMtd3JhcHBlciIgJytkKyI+PC9kaXY+IixhKz0iICAgICAgICA8L2Rpdj4iLGErPSIgICAgICAgICIrdF9zdG9yZV9nZXRfcHJvZHVjdENhcmRfYnRuX2h0bWwodCxyLGkscyksYSs9IiAgICA8L2Rpdj4iLGErPSI8L2Rpdj4ifWZ1bmN0aW9uIHRfc3RvcmVfZ2V0X3Byb2R1Y3RDYXJkX2dldFdyYXBwZXJTdHlsZXNTdHIodCl7dmFyIGU9IiI7ZSs9dC5wcm9kQ2FyZC5iZ0NvbG9yPyJiYWNrZ3JvdW5kLWNvbG9yOiIrdC5wcm9kQ2FyZC5iZ0NvbG9yKyI7IjoiIixlKz10LnByb2RDYXJkLmJvcmRlclJhZGl1cz8iYm9yZGVyLXJhZGl1czoiK3BhcnNlSW50KHQucHJvZENhcmQuYm9yZGVyUmFkaXVzLDEwKSsicHg7IjoiIjt2YXIgcj10LnByb2RDYXJkLnNoYWRvd09wYWNpdHksbz10LnByb2RDYXJkLnNoYWRvd1NpemUsaT10LnByb2RDYXJkLnNoYWRvdyxzPSIiO3JldHVybiBpP3M9ImJveC1zaGFkb3c6IitpKyI7Ijoocnx8bykmJihyPXI/cGFyc2VJbnQociwxMCkvMTAwOi4zLHM9ImJveC1zaGFkb3c6IDBweCAwcHggIisobz1vP3BhcnNlSW50KG8sMTApOjEwKSsicHggcmdiYSgwLDAsMCwiK3IrIik7IiksZSs9c31mdW5jdGlvbiB0X3N0b3JlX2dldF9wcm9kdWN0Q2FyZF9pbWdfaHRtbCh0LGUscil7dmFyIG89IjEwMjUiPT09ZS5wcm9kQ2FyZC5ibG9ja0lkO2lmKG8mJiFlLnByb2RDYXJkLmhhc0ltZylyZXR1cm4iIjt2YXIgaT0iIixzPWUuaGFzT3JpZ2luYWxBc3BlY3RSYXRpbyYmIWUuaXNIb3Jpek9uTW9iPyJ0LXN0b3JlX19jYXJkX19pbWd3cmFwcGVyX29yaWdpbmFsLXJhdGlvIjoiIixhPSJ0LXN0b3JlX19jYXJkX19pbWd3cmFwcGVyICIsbjtpZihhKz1vP2UuaW1hZ2VSYXRpb0NsYXNzOnMrKGUuaXNGbGV4Q29scz8iICIrZS5pbWFnZVJhdGlvQ2xhc3M6IiIpLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbGxyZWNvcmRzIikhPT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fcHJvZHVjdC1zbmlwcGV0IikmJmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbGxyZWNvcmRzIikuY29udGFpbnMoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtc3RvcmVfX3Byb2R1Y3Qtc25pcHBldCIpKSYmIWUuY29sV2lkdGgpe3ZhciBkPXsxOjc2MCwyOjU2MCwzOjM2MCw0OjI2MH07ZS5jb2xXaWR0aD1kW2UuYmxvY2tzSW5Sb3ddfXZhciBjPSFlLmltYWdlSGVpZ2h0fHxlLmlzRmxleENvbHN8fG8/IiI6InBhZGRpbmctYm90dG9tOiIrMTAwKnBhcnNlSW50KGUuaW1hZ2VIZWlnaHQsMTApLyhlLmNvbFdpZHRofHwzNjApKyIlOyI7aWYoZS5oYXNPcmlnaW5hbEFzcGVjdFJhdGlvJiZlLnByb2RDYXJkLmJvcmRlclJhZGl1cyl7dmFyIGw9cGFyc2VJbnQoZS5wcm9kQ2FyZC5ib3JkZXJSYWRpdXMsMTApO2MrPSJib3JkZXItcmFkaXVzOiIrbCsicHggIitsKyJweCAwcHggMHB4OyBvdmVyZmxvdzogaGlkZGVuOyJ9dmFyIHA9dF9zdG9yZV9nZXRfcHJvZHVjdENhcmRfaW1nRWxIb3Zlcl9odG1sKHQsZSxyKSxfPWUuaW1hZ2VIb3ZlciYmcCx1LGc9cnx8dF9zdG9yZV9nZXRQcm9kdWN0Rmlyc3RJbWcodCk7aWYoIiIhPT0oZz1nLnJlcGxhY2UoLyZhbXA7YW1wOy8sIiZhbXA7IikpKXt2YXIgdjtpZihlLmhhc09yaWdpbmFsQXNwZWN0UmF0aW8pKHU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIikpLmNsYXNzTGlzdC5hZGQoImpzLXByb2R1Y3QtaW1nIiksdS5jbGFzc0xpc3QuYWRkKCJ0LXN0b3JlX19jYXJkX19pbWciKSxfJiZ1LmNsYXNzTGlzdC5hZGQoInQtc3RvcmVfX2NhcmRfX2ltZ19ob3ZlciIpLC9WZXJzaW9uXC8xNlwuMyBTYWZhcmkvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJih1LnN0eWxlLm9iamVjdEZpdD0iY29udGFpbiIpLHUuY2xhc3NMaXN0LmFkZCgidC1pbWciKSx1LnNldEF0dHJpYnV0ZSgiZGF0YS1vcmlnaW5hbCIsZyksdS5zcmM9dF9zdG9yZV9nZXRMYXp5U3JjKGUsZyk7ZWxzZSh1PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5jbGFzc0xpc3QuYWRkKCJqcy1wcm9kdWN0LWltZyIpLHUuY2xhc3NMaXN0LmFkZCgidC1zdG9yZV9fY2FyZF9fYmdpbWciKSxfJiZ1LmNsYXNzTGlzdC5hZGQoInQtc3RvcmVfX2NhcmRfX2JnaW1nX2hvdmVyIiksdS5jbGFzc0xpc3QuYWRkKCJ0LWJnaW1nIiksdS5zZXRBdHRyaWJ1dGUoImRhdGEtb3JpZ2luYWwiLGcpLHUuc3R5bGUuYmFja2dyb3VuZEltYWdlPSd1cmwoIicrdF9zdG9yZV9nZXRMYXp5VXJsKGUsZykrJyIpJyx0X3N0b3JlX2dldF9wcm9kdWN0Q2FyZF9nZXRJbWdTdHlsZXModSxlKTtpZigxPT09dC5lZGl0aW9ucy5sZW5ndGgpe3ZhciB5PXRfc3RvcmVfcHJvZHVjdF9nZXRGaXJzdEF2YWlsYWJsZUVkaXRpb25EYXRhKHQuZWRpdGlvbnMpO3kudWlkJiZ1LnNldEF0dHJpYnV0ZShlLmhhc09yaWdpbmFsQXNwZWN0UmF0aW8/ImltZ2ZpZWxkIjoiYmdpbWdmaWVsZCIsInN0X2dhbGxlcnlfXyIreS51aWQrIjo6OjAiKX1yZXR1cm4gaSs9JzxkaXYgY2xhc3M9IicrYSsnIiBzdHlsZT0iJytjKyciPicsaSs9IiAgICAiK3Rfc3RvcmVfZ2V0X3Byb2R1Y3RDYXJkX21hcmtfaHRtbCh0LGUpLGkrPSIgICAgIit1Lm91dGVySFRNTCxpKz0iICAgICIrKGUuaW1hZ2VIb3Zlcj9wOiIiKSxpKz0iPC9kaXY+In1yZXR1cm4iIn1mdW5jdGlvbiB0X3N0b3JlX2dldF9wcm9kdWN0Q2FyZF9pbWdfcmVwbGFjZVdpdGgodCxlLHIsbyl7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fY2FyZF9faW1nd3JhcHBlciIpLHM9dF9zdG9yZV9nZXRfcHJvZHVjdENhcmRfaW1nX2h0bWwodCxyLG8pO2kmJihpLm91dGVySFRNTD1zKSwieSIhPT13aW5kb3cubGF6eSYmInllcyIhPT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpLmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1sYXp5Iil8fHRfc3RvcmVfb25GdW5jTG9hZCgidF9sYXp5bG9hZF91cGRhdGUiLChmdW5jdGlvbigpe3RfbGF6eWxvYWRfdXBkYXRlKCl9KSksdF9zdG9yZV90cmlnZ2VyRXZlbnQoZG9jdW1lbnQuYm9keSwidHdpc2hsaXN0X2FkZGJ0biIpfWZ1bmN0aW9uIHRfc3RvcmVfZ2V0X3Byb2R1Y3RDYXJkX2ltZ0VsSG92ZXJfaHRtbCh0LGUscil7aWYodC5nYWxsZXJ5JiYiWyI9PT10LmdhbGxlcnlbMF0pe3ZhciBvPUpTT04ucGFyc2UodC5nYWxsZXJ5KTtpZih2b2lkIDAhPT1vWzFdKXt2YXIgaT1vWzFdLmltZyxzLGE7aWYociYmci5sZW5ndGgpZm9yKHZhciBuPTA7bjxvLmxlbmd0aDtuKyspe3ZhciBkPW9bbl0uaW1nO2lmKGQhPT1yKXtpPWQ7YnJlYWt9fWlmKGUuaGFzT3JpZ2luYWxBc3BlY3RSYXRpbykocz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSkuY2xhc3NMaXN0LmFkZCgidC1zdG9yZV9fY2FyZF9faW1nIikscy5jbGFzc0xpc3QuYWRkKCJ0LXN0b3JlX19jYXJkX19pbWdfc2Vjb25kIikscy5jbGFzc0xpc3QuYWRkKCJ0LWltZyIpLHMuc2V0QXR0cmlidXRlKCJkYXRhLW9yaWdpbmFsIixpKSxzLnNyYz10X3N0b3JlX2dldExhenlTcmMoZSxpKSwvVmVyc2lvblwvMTZcLjMgU2FmYXJpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYocy5zdHlsZS5vYmplY3RGaXQ9ImNvbnRhaW4iKTtlbHNlKHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmNsYXNzTGlzdC5hZGQoInQtc3RvcmVfX2NhcmRfX2JnaW1nX3NlY29uZCIpLHMuY2xhc3NMaXN0LmFkZCgidC1iZ2ltZyIpLHMuc2V0QXR0cmlidXRlKCJkYXRhLW9yaWdpbmFsIixpKSxzLnN0eWxlLmJhY2tncm91bmRJbWFnZT0ndXJsKCInK3Rfc3RvcmVfZ2V0TGF6eVVybChlLGkpKyciKScsdF9zdG9yZV9nZXRfcHJvZHVjdENhcmRfZ2V0SW1nU3R5bGVzKHMsZSk7cmV0dXJuIHMub3V0ZXJIVE1MfX1yZXR1cm4iIn1mdW5jdGlvbiB0X3N0b3JlX2dldF9wcm9kdWN0Q2FyZF9nZXRJbWdTdHlsZXModCxlKXtpZihlJiZlLnByb2RDYXJkJiZlLnByb2RDYXJkLmJvcmRlclJhZGl1cyl7dmFyIHI9cGFyc2VJbnQoZS5wcm9kQ2FyZC5ib3JkZXJSYWRpdXMsMTApO3Quc3R5bGUuYm9yZGVyUmFkaXVzPXIrInB4ICIrcisicHggMHB4IDBweCIscj4wJiYhd2luZG93LnRTdG9yZUlzTW9iaWxlJiYodC5zdHlsZS50b3A9Ii0ycHgiKX19ZnVuY3Rpb24gdF9zdG9yZV9nZXRfcHJvZHVjdENhcmRfbWFya19odG1sKHQsZSl7aWYoIXQubWFyaylyZXR1cm4iIjt2YXIgcj0iIjtyKz1lLm1hcmtDb2xvcj8iY29sb3I6IitlLm1hcmtDb2xvcisiOyI6IiI7dmFyIG8saT0iIjtyZXR1cm4gaSs9JzxkaXYgY2xhc3M9InQtc3RvcmVfX2NhcmRfX21hcmstd3JhcHBlciI+JyxpKz0nPGRpdiBjbGFzcz0idC1zdG9yZV9fY2FyZF9fbWFyayIgJysoKHIrPWUubWFya0JnQ29sb3I/ImJhY2tncm91bmQtY29sb3I6IitlLm1hcmtCZ0NvbG9yKyI7IjoiIik/J3N0eWxlPSInK3IrJyInOiIiKSsiPiIsaSs9dC5tYXJrLGkrPSI8L2Rpdj4iLGkrPSI8L2Rpdj4ifWZ1bmN0aW9uIHRfc3RvcmVfZ2V0X3Byb2R1Y3RDYXJkX3R4dEFuZFByaWNlX2h0bWwodCxlLHIsbyl7dmFyIGk9IiIscztyZXR1cm4gaSs9JzxkaXYgY2xhc3M9InQtc3RvcmVfX2NhcmRfX3RleHR3cmFwcGVyIiAnKygiIj09PW8/J3N0eWxlPSJwYWRkaW5nLXRvcDowcHg7Iic6IiIpKyI+IixpKz10X3N0b3JlX2dldF9wcm9kdWN0Q2FyZF90eHRfaHRtbCh0LGUsciksT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIucHJpY2UsInBvc2l0aW9uIikmJiIiIT09ci5wcmljZS5wb3NpdGlvbnx8KGkrPXRfc3RvcmVfZ2V0X3Byb2R1Y3RDYXJkX1ByaWNlX2h0bWwodCxlLHIpKSxpKz0iPC9kaXY+In1mdW5jdGlvbiB0X3N0b3JlX2dldF9wcm9kdWN0Q2FyZF90eHRfaHRtbCh0LGUscil7dmFyIG89IiIsaT0iIjtpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoci5wcmljZSwicG9zaXRpb24iKSYmImF0Ij09PXIucHJpY2UucG9zaXRpb24mJihvKz10X3N0b3JlX2dldF9wcm9kdWN0Q2FyZF9QcmljZV9odG1sKHQsZSxyKSksdC50aXRsZSl7aT00PT09cGFyc2VJbnQoci5ibG9ja3NJblJvdywxMCk/InQtbmFtZV94cyI6Mj09PXBhcnNlSW50KHIuYmxvY2tzSW5Sb3csMTApPyJ0LW5hbWVfeGwiOiJ0LW5hbWVfbWQiO3ZhciBzPTE9PT10LmVkaXRpb25zLmxlbmd0aCYmZS51aWQ/J2ZpZWxkPSJzdF90aXRsZV9fJytlLnVpZCsnIiBkYXRhLXJlZGFjdG9yLXRvb2xiYXI9Im5vIic6IiI7bys9JzxkaXYgY2xhc3M9ImpzLXN0b3JlLXByb2QtbmFtZSBqcy1wcm9kdWN0LW5hbWUgdC1zdG9yZV9fY2FyZF9fdGl0bGUgdC10eXBvZ3JhcGh5X190aXRsZSB0LW5hbWUgJytpKyciJysoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIudHlwbywidGl0bGUiKT8nc3R5bGU9Iicrci50eXBvLnRpdGxlKyciJzoiIikrcysiPiIsbys9dC50aXRsZSxvKz0iPC9kaXY+In1pZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoci5wcmljZSwicG9zaXRpb24iKSYmImJ0Ij09PXIucHJpY2UucG9zaXRpb24mJihvKz10X3N0b3JlX2dldF9wcm9kdWN0Q2FyZF9QcmljZV9odG1sKHQsZSxyKSksZS5za3Upe3ZhciBhLG4sZD0nc3R5bGU9IicrKHIucHJvZENhcmQuc2hvd09wdHM/IiI6ImRpc3BsYXk6bm9uZTsiKSsoci50eXBvLmRlc2NyQ29sb3I/ImNvbG9yOiIrci50eXBvLmRlc2NyQ29sb3IrIjsiOiIiKSsnIicsYz0xPT09dC5lZGl0aW9ucy5sZW5ndGgmJmUudWlkPydmaWVsZD0ic3Rfc2t1X18nK2UudWlkKyciIGRhdGEtcmVkYWN0b3ItdG9vbGJhcj0ibm8iJzoiIjtvKz0nPGRpdiBjbGFzcz0idC1zdG9yZV9fY2FyZF9fc2t1IHQtZGVzY3IgdC1kZXNjcl94eHMiICcrZCsiPiIsbys9d2luZG93LnRTdG9yZURpY3Quc2t1KyI6ICIsbys9JzxzcGFuIGNsYXNzPSJqcy1zdG9yZS1wcm9kLXNrdSBqcy1wcm9kdWN0LXNrdSIgdHJhbnNsYXRlPSJubyIgJytjKyI+IixvKz1lLnNrdSxvKz0iPC9zcGFuPiIsbys9IjwvZGl2PiJ9aWYodC5kZXNjcil7dmFyIGw9MT09PXQuZWRpdGlvbnMubGVuZ3RoJiZlLnVpZD8nZmllbGQ9InN0X2Rlc2NyX18nK2UudWlkKyciIGRhdGEtcmVkYWN0b3ItdG9vbGJhcj0ibm8iJzoiIjtvKz0nPGRpdiBjbGFzcz0ianMtc3RvcmUtcHJvZC1kZXNjciB0LXN0b3JlX19jYXJkX19kZXNjciB0LXR5cG9ncmFwaHlfX2Rlc2NyIHQtZGVzY3IgdC1kZXNjcl94eHMiICcrKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLnR5cG8sImRlc2NyIik/J3N0eWxlPSInK3IudHlwby5kZXNjcisnIic6IiIpK2wrIj4iLG8rPXQuZGVzY3Isbys9IjwvZGl2PiJ9cmV0dXJuIG99ZnVuY3Rpb24gdF9zdG9yZV9nZXRfcHJvZHVjdENhcmRfUHJpY2VfaHRtbCh0LGUscil7dmFyIG89IiIsaT0iIixzPXRfc3RvcmVfX2dldEZvcm1hdHRlZFByaWNlUmFuZ2Uocix0KTtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIucHJpY2UsInBvc2l0aW9uIikmJigiYXQiPT09ci5wcmljZS5wb3NpdGlvbj9pPSIgdC1zdG9yZV9fY2FyZF9fcHJpY2Utd3JhcHBlcl9hYm92ZS10aXRsZSI6ImJ0Ij09PXIucHJpY2UucG9zaXRpb24mJihpPSIgdC1zdG9yZV9fY2FyZF9fcHJpY2Utd3JhcHBlcl9iZWxvdy10aXRsZSIpKSxvKz0nPGRpdiBjbGFzcz0ianMtc3RvcmUtcHJpY2Utd3JhcHBlciB0LXN0b3JlX19jYXJkX19wcmljZS13cmFwcGVyJytpKyciPicsbys9dF9zdG9yZV9nZXRfcHJvZHVjdENhcmRfb25lUHJpY2VfaHRtbCh0LGUsciwiY3VycmVudCIpLHN8fChvKz10X3N0b3JlX2dldF9wcm9kdWN0Q2FyZF9vbmVQcmljZV9odG1sKHQsZSxyLCJvbGQiKSksbys9IjwvZGl2PiJ9ZnVuY3Rpb24gdF9zdG9yZV9nZXRfcHJvZHVjdENhcmRfb25lUHJpY2VfaHRtbCh0LGUscixvKXt2YXIgaT0iY3VycmVudCI9PT1vP2UucHJpY2U6ZS5wcmljZW9sZCxzPXRfc3RvcmVfX2dldEZvcm1hdHRlZFByaWNlKHIsaSksYT1yLnByaWNlLnByaWNlUmFuZ2Usbj10X3N0b3JlX19nZXRGb3JtYXR0ZWRQcmljZVJhbmdlKHIsdCk7biYmInJhbmdlIj09PWEmJihzPW4pO3ZhciBkPSJjdXJyZW50Ij09PW8/InByaWNlIjoicHJpY2VvbGQiLGM9IiIsbD0iY3VycmVudCI9PT1vPyJ0LXN0b3JlX19jYXJkX19wcmljZSI6InQtc3RvcmVfX2NhcmRfX3ByaWNlX29sZCIscCxfPSIiLHU7aWYoXys9aSYmIjAiIT09aSYmIjAuMDAwMCIhPT1pPyIiOiJkaXNwbGF5OiBub25lOyIsT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIucHJpY2UsImZvbnRXZWlnaHQiKSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIucHJpY2UsImZvbnRTaXplIikpe3ZhciBnPSJjdXJyZW50Ij09PW8/ci5wcmljZS5jb2xvcjpyLnByaWNlLmNvbG9yT2xkO18rPWc/ImNvbG9yOiIrZysiOyI6IiIsXys9ci5wcmljZS5mb250U2l6ZT8iZm9udC1zaXplOiIrci5wcmljZS5mb250U2l6ZSsiOyI6IiIsXys9ci5wcmljZS5mb250V2VpZ2h0PyJmb250LXdlaWdodDoiK3IucHJpY2UuZm9udFdlaWdodCsiOyI6IiJ9cD0iIiE9PV8/J3N0eWxlID0gIicrXysnIic6IiI7dmFyIHY9MT09PXQuZWRpdGlvbnMubGVuZ3RoJiZlLnVpZD8nZmllbGQ9InN0XycrZCsiX18iK2UudWlkKyciIGRhdGEtcmVkYWN0b3ItdG9vbGJhcj0ibm8iJzoiIix5PXIuY3VycmVuY3lUeHQ/JzxkaXYgY2xhc3M9InQtc3RvcmVfX2NhcmRfX3ByaWNlLWN1cnJlbmN5IiB0cmFuc2xhdGU9Im5vIj4nK3IuY3VycmVuY3lUeHQrIjwvZGl2PiI6IiIsbT0iY3VycmVudCI9PT1vPyJqcy1wcm9kdWN0LXByaWNlIGpzLXN0b3JlLXByb2QtcHJpY2UtdmFsIjoianMtc3RvcmUtcHJvZC1wcmljZS1vbGQtdmFsIixmO2lmKG4mJihtKz0iIGpzLXN0b3JlLXByb2QtcHJpY2UtcmFuZ2UtdmFsIiksYys9JzxkaXYgY2xhc3M9IicrbCsiIHQtc3RvcmVfX2NhcmRfX3ByaWNlLWl0ZW0gdC1uYW1lIHQtbmFtZV8iKygiMTAyNSI9PT1yLnByb2RDYXJkLmJsb2NrSWQ/Im1kIjoieHMiKSsnIiAnK3ArIj4iLG4mJiJmcm9tIj09PWEpe2MrPSc8ZGl2IGNsYXNzPSJ0LXN0b3JlX19jYXJkX19wcmljZS1mcm9tIHQtc3RvcmVfX2NhcmRfX3ByaWNlLXZhbHVlIiB0cmFuc2xhdGU9Im5vIiAnK3YrIj4iK3dpbmRvdy50U3RvcmVEaWN0LmZyb20rIjwvZGl2PiI7dmFyIGg9dF9zdG9yZV9fZ2V0Rm9ybWF0dGVkTWluUHJpY2Uocix0KTtudWxsIT09aCYmKHM9aCl9cmV0dXJuIGMrPSJyIiE9PXIuY3VycmVuY3lTaWRlJiZ5P3k6IiIsYys9JzxkaXYgY2xhc3M9IicrbSsnIHQtc3RvcmVfX2NhcmRfX3ByaWNlLXZhbHVlIiB0cmFuc2xhdGU9Im5vIiAnK3YrIj4iK3MrIjwvZGl2PiIsYys9InIiPT09ci5jdXJyZW5jeVNpZGUmJnk/eToiIix0LnVuaXQmJnQucG9ydGlvbj4wJiYoYys9JzxkaXYgY2xhc3M9InQtc3RvcmVfX3Byb2RfX3ByaWNlLXBvcnRpb24iPjxzcGFuIGNsYXNzPSJ0LXN0b3JlX19wcm9kX19wcmljZS1wb3J0aW9uLXNsYXNoIj4vPC9zcGFuPicsIjEiIT09dC5wb3J0aW9uJiYoYys9K3QucG9ydGlvbisiICIpLGMrPXdpbmRvdy50U3RvcmVEaWN0W3QudW5pdF0rIjwvZGl2PiIpLGMrPSI8L2Rpdj4ifWZ1bmN0aW9uIHRfc3RvcmVfZ2V0X3Byb2R1Y3RDYXJkX2J0bl9odG1sKHQsZSxyLG8pe2lmKCFlLnByb2RDYXJkLmJ0blRpdGxlMSYmIWUucHJvZENhcmQuYnRuVGl0bGUyKXJldHVybiIiO3ZhciBpPSIxMDI1Ij09PWUucHJvZENhcmQuYmxvY2tJZCxzPSIiLGEsbixkPSJzbSI9PT1lLmJ0blNpemU/InQtYnRuX3hzIjoidC1idG5fc20iO3JldHVybiBzKz0nPGRpdiBjbGFzcz0idC1zdG9yZV9fY2FyZF9fYnRucy13cmFwcGVyIGpzLXN0b3JlLWJ1dHRvbnMtd3JhcHBlciI+JyxlLnByb2RDYXJkLmJ0blRpdGxlMSYmKGkmJihzKz0nPGRpdiBjbGFzcz0idC1zdG9yZV9fY2FyZF9fYnRuLXJvdyB0LXN0b3JlX19jYXJkX19idG4tZmlyc3Rfd3JhcHBlciI+Jykscys9JzxhIGhyZWY9IicrKGE9dF9zdG9yZV9nZXRfcHJvZHVjdENhcmRfbGluayhlLnByb2RDYXJkLmJ0bkxpbmsxLHQscixvKSkrJyIgJysobj10X3N0b3JlX2dldF9wcm9kdWN0Q2FyZF90YXJnZXRBdHRyKGUucHJvZENhcmQuYnRuTGluazEsdCkpKycgY2xhc3M9ImpzLXN0b3JlLXByb2QtYnRuIHQtc3RvcmVfX2NhcmRfX2J0biB0LWJ0biAnK2QrJyIgc3R5bGU9IicrZS5idG4xX3N0eWxlKyciPjxzcGFuIGNsYXNzPSJ0LXN0b3JlX19jYXJkX19idG4tdGV4dCI+JytlLnByb2RDYXJkLmJ0blRpdGxlMSsiPC9zcGFuPjwvYT4iLGkmJihzKz0iPC9kaXY+IikpLGUucHJvZENhcmQuYnRuVGl0bGUyJiYoaSYmKHMrPSc8ZGl2IGNsYXNzPSJ0LXN0b3JlX19jYXJkX19idG4tcm93IHQtc3RvcmVfX2NhcmRfX2J0bi1zZWNvbmRfd3JhcHBlciI+Jykscys9JzxhIGhyZWY9IicrKGE9dF9zdG9yZV9nZXRfcHJvZHVjdENhcmRfbGluayhlLnByb2RDYXJkLmJ0bkxpbmsyLHQscixvKSkrJyIgJysobj10X3N0b3JlX2dldF9wcm9kdWN0Q2FyZF90YXJnZXRBdHRyKGUucHJvZENhcmQuYnRuTGluazIsdCkpKycgY2xhc3M9ImpzLXN0b3JlLXByb2QtYnRuMiB0LXN0b3JlX19jYXJkX19idG4gdC1zdG9yZV9fY2FyZF9fYnRuX3NlY29uZCB0LWJ0biAnK2QrJyIgc3R5bGU9IicrZS5idG4yX3N0eWxlKyciPjxzcGFuIGNsYXNzPSJ0LXN0b3JlX19jYXJkX19idG4tdGV4dCI+JytlLnByb2RDYXJkLmJ0blRpdGxlMisiPC9zcGFuPjwvYT4iLGkmJihzKz0iPC9kaXY+IikpLHMrPSI8L2Rpdj4ifWZ1bmN0aW9uIHRfc3RvcmVfZ2V0X3Byb2R1Y3RDYXJkX2xpbmsodCxlLHIsbyl7dmFyIGk7aWYob1swXSYmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbGxyZWNvcmRzIikhPT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fcHJvZHVjdC1zbmlwcGV0IikmJmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbGxyZWNvcmRzIikuY29udGFpbnMoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtc3RvcmVfX3Byb2R1Y3Qtc25pcHBldCIpKSYmInBvcHVwIj09PXQpKXJldHVybiB0X3N0b3JlX2dlbmVyYXRlVXJsKGUpO2lmKCJvcmRlciI9PT10KXJldHVybiIjb3JkZXIiO2lmKHIpcmV0dXJuIGUuYnV0dG9ubGluaz9lLmJ1dHRvbmxpbms6IiNwcm9kcG9wdXAiO2lmKCJwb3B1cCI9PT10KXtpZihlLmJ1dHRvbmxpbmspe3ZhciBzPWUuYnV0dG9ubGluaztyZXR1cm4tMT09PXMuaW5kZXhPZigiLy8iKSYmIi8iIT09cy5zbGljZSgwLDEpJiYiIyIhPT1zLnNsaWNlKDAsMSkmJihzPSJodHRwOi8vIitzKSxzfXJldHVybiIjcHJvZHBvcHVwIn1yZXR1cm4iI3Byb2Rwb3B1cCJ9ZnVuY3Rpb24gdF9zdG9yZV9nZXRfcHJvZHVjdENhcmRfdGFyZ2V0QXR0cih0LGUpe3JldHVybiJwb3B1cCI9PT10JiZlLmJ1dHRvbmxpbmsmJiJfYmxhbmsiPT09ZS5idXR0b250YXJnZXQ/J3RhcmdldD0iX2JsYW5rIic6IiJ9ZnVuY3Rpb24gdF9zdG9yZV9nZXRfaG9yaXpTZXBhcmF0b3JfaHRtbCh0KXt2YXIgZT0nPGRpdiBjbGFzcz0idC1jbGVhciB0LXN0b3JlX19ncmlkLXNlcGFyYXRvciIgW1tzdHlsZV1dPjwvZGl2Pic7cmV0dXJuIGU9ZS5yZXBsYWNlKCJbW3N0eWxlXV0iLHQudmluZGVudD8nc3R5bGU9Im1hcmdpbi1ib3R0b206Jyt0LnZpbmRlbnQrJzsiJzoiIil9ZnVuY3Rpb24gdF9zdG9yZV91bmlmeUNhcmRzSGVpZ2h0cyh0LGUpe2lmKGUucHJvZENhcmQmJmUucHJvZENhcmQuaGFzV3JhcCl7dmFyIHI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlYyIrdCk7ciYmWyIudC1zdG9yZV9fZ3JpZC1jb250IC50LXN0b3JlX19jYXJkIiwiLnQtcG9wdXBfX2NvbnRhaW5lciAudC1zdG9yZV9fY2FyZCJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBvPXIucXVlcnlTZWxlY3RvckFsbCh0KTtpZihvKXt2YXIgaT10X3N0b3JlX3VuaWZ5Q2FyZHNIZWlnaHRzX2dldEJsb2Nrc0luUm93KGUsbykscz1yLnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19jYXJkX193cmFwX3R4dC1hbmQtYnRucyIpO2lmKHdpbmRvdy5pbm5lcldpZHRoPD00ODAmJiFlLmlzSG9yaXpPbk1vYiYmcylyZXR1cm4gdm9pZChzLnN0eWxlLmhlaWdodD0iYXV0byIpO2Zvcih2YXIgYT0wO2E8by5sZW5ndGg7YSs9aSl7Zm9yKHZhciBuPTAsZD0wO2Q8aTtkKyspaWYob1thK2RdKXt2YXIgYyxsPShjPW9bYStkXS5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fY2FyZF9fd3JhcF90eHQtYW5kLWJ0bnMiKSkucXVlcnlTZWxlY3RvcigiLnN0b3JlX19jYXJkX193cmFwX3R4dC1hbmQtb3B0cyIpLHA9Yy5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fY2FyZF9fYnRucy13cmFwcGVyIiksXz0wO2wmJihfKz1sLm9mZnNldEhlaWdodCkscCYmKF8rPXAub2Zmc2V0SGVpZ2h0KSxfPm4mJihuPV8pfWZvcih2YXIgZD0wO2Q8aTtkKyspe3ZhciBjO2lmKG9bYStkXSkoYz1vW2ErZF0ucXVlcnlTZWxlY3RvcigiLnQtc3RvcmVfX2NhcmRfX3dyYXBfdHh0LWFuZC1idG5zIikpLnN0eWxlLmhlaWdodD1uKyJweCJ9fX19KSl9fWZ1bmN0aW9uIHRfc3RvcmVfdW5pZnlDYXJkc0hlaWdodHNfZ2V0QmxvY2tzSW5Sb3codCxlKXtyZXR1cm4gd2luZG93LmlubmVyV2lkdGg8PTk2MCYmdC5pc0hvcml6T25Nb2I/ZS5sZW5ndGg6d2luZG93LmlubmVyV2lkdGg8PTk2MD8yOnBhcnNlSW50KHQuYmxvY2tzSW5Sb3csMTApfWZ1bmN0aW9uIHRfc3RvcmVfdW5pZnlDYXJkc1dpZHRoKHQpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWMiK3QpO2lmKGUpe3ZhciByPWUucXVlcnlTZWxlY3RvcigiLnQtc3RvcmVfX2dyaWQtY29udF9pdGVtd3JhcHBlciIpO2lmKHIpe3ZhciBvPXIucXVlcnlTZWxlY3RvckFsbCgiLmpzLXByb2R1Y3QiKTtpZighb3x8IW8ubGVuZ3RofHwhb1swXS5jbGFzc0xpc3QuY29udGFpbnMoInQtc3RvcmVfX2NhcmRfZml4ZWQtd2lkdGgiKSYmIW9bMF0uY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LXN0b3JlX19jYXJkX3VuZGVyLWRlc2NyaXB0aW9uIikpe3ZhciBpPTAscz0wLGE9MDtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG8sKGZ1bmN0aW9uKHQpe3ZhciBlPXQucXVlcnlTZWxlY3RvcigiLnQtc3RvcmVfX2NhcmRfX3ByaWNlLWJ1dHRvbnMiKTtpZihlKWlmKGUuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LXN0b3JlX19jYXJkX19wcmljZS1idXR0b25zX2luLXJvdyIpKXt2YXIgcj1lLnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19jYXJkX19wcmljZS13cmFwcGVyIiksbz1lLnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19jYXJkX19idG5zLXdyYXBwZXIiKTtyJiYoci5zdHlsZS53aWR0aD1udWxsKSxvJiYoby5zdHlsZS53aWR0aD1udWxsKSxlLnN0eWxlLndpZHRoPW51bGx9ZWxzZSBlLnN0eWxlLndpZHRoPW51bGx9KSksQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChvLChmdW5jdGlvbih0KXt2YXIgZT10LnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19jYXJkX19wcmljZS1idXR0b25zIik7aWYoZSlpZihlLmNsYXNzTGlzdC5jb250YWlucygidC1zdG9yZV9fY2FyZF9fcHJpY2UtYnV0dG9uc19pbi1yb3ciKSl7dmFyIHI9ZS5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fY2FyZF9fcHJpY2Utd3JhcHBlciIpLG89ZS5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fY2FyZF9fYnRucy13cmFwcGVyIik7aWYocil7dmFyIG49d2luZG93LmdldENvbXB1dGVkU3R5bGUociksZD1NYXRoLmNlaWwocGFyc2VGbG9hdChuLndpZHRoKSkrTWF0aC5jZWlsKHBhcnNlRmxvYXQobi5tYXJnaW5SaWdodCkpO2Q+cyYmKHM9ZCl9aWYobyl7dmFyIGM9TWF0aC5jZWlsKHBhcnNlRmxvYXQod2luZG93LmdldENvbXB1dGVkU3R5bGUobykud2lkdGgpKTtjPmEmJihhPWMpfX1lbHNle3ZhciBsPU1hdGguY2VpbChwYXJzZUZsb2F0KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUpLndpZHRoKSk7bD5pJiYoaT1sKX19KSksQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChvLChmdW5jdGlvbih0KXt2YXIgZT10LnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19jYXJkX19wcmljZS1idXR0b25zIik7aWYoZSlpZihlLmNsYXNzTGlzdC5jb250YWlucygidC1zdG9yZV9fY2FyZF9fcHJpY2UtYnV0dG9uc19pbi1yb3ciKSl7dmFyIHI9ZS5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fY2FyZF9fcHJpY2Utd3JhcHBlciIpLG89ZS5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fY2FyZF9fYnRucy13cmFwcGVyIik7ciYmKHIuc3R5bGUud2lkdGg9cysicHgiKSxvJiYoby5zdHlsZS53aWR0aD1hKyJweCIpLGUuc3R5bGUud2lkdGg9cythKyJweCJ9ZWxzZSBlLnN0eWxlLndpZHRoPWkrInB4In0pKX19fX1mdW5jdGlvbiB0X3N0b3JlX2luaXRQb3B1cCh0LGUscixvLGkpe298fCh3aW5kb3cudXJsQmVmb3JlUG9wdXBPcGVuPXdpbmRvdy5sb2NhdGlvbi5ocmVmLHdpbmRvdy50aXRsZUJlZm9yZVBvcHVwT3Blbj1kb2N1bWVudC50aXRsZSk7dmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKSE9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19wcm9kdWN0LXNuaXBwZXQiKSYmZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKS5jb250YWlucyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fcHJvZHVjdC1zbmlwcGV0IikpLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlYyIrdCk7Zm9yKHZhciBuIGluIGUpe3ZhciBkPW8/YS5xdWVyeVNlbGVjdG9yKCcuanMtcHJvZHVjdC1yZWxldmFudFtkYXRhLXByb2R1Y3QtZ2VuLXVpZD0iJytuKyciXScpOmEucXVlcnlTZWxlY3RvcignW2RhdGEtcHJvZHVjdC1nZW4tdWlkPSInK24rJyJdJyksYz1kLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tocmVmXj0iI3Byb2Rwb3B1cCJdJyk7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChjLChmdW5jdGlvbihhKXt2YXIgbj1kLmNsb3Nlc3QoIi5qcy1wcm9kdWN0IiksYz1uLmdldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LWdlbi11aWQiKSxsPWVbY107bCYmYS5zZXRBdHRyaWJ1dGUoImhyZWYiLGwudXJsKTt2YXIgcD1mdW5jdGlvbiBzKGEpe2lmKGEucHJldmVudERlZmF1bHQoKSwhYS50YXJnZXQuY2xvc2VzdCgiLnQxMDAyX19hZGRCdG4iKSl7bj10aGlzLmNsb3Nlc3QoIi5qcy1wcm9kdWN0IiksYz1uLmdldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LWdlbi11aWQiKSxsPWVbY107dmFyIGQ9YS5jdHJsS2V5LHA9YS5tZXRhS2V5JiYtMSE9PW5hdmlnYXRvci5wbGF0Zm9ybS5pbmRleE9mKCJNYWMiKTtkfHxwP3dpbmRvdy5vcGVuKGwudXJsKTooaS5oZWFkZXJ8fGkuZm9vdGVyKSYmaS5kaXNhYmxlcG9wdXA/bG9jYXRpb24uaHJlZj1sLnVybDp0X3N0b3JlX29wZW5Qcm9kdWN0UG9wdXAodCxyLGwsbywhMSwhIW8pfX07c3x8YS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIscCl9KSl9ci5pc1B1Ymxpc2hlZFBhZ2UmJnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dF9zdG9yZV9jaGVja1VybChyLHQpfSksMzAwKSx0X3N0b3JlX2NvcHlUeXBvZ3JhcGh5RnJvbUxlYWRUb1BvcHVwKHQscil9ZnVuY3Rpb24gdF9zdG9yZV9vcGVuUHJvZHVjdFBvcHVwKHQsZSxyLG8saSxzKXt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpIT09ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtc3RvcmVfX3Byb2R1Y3Qtc25pcHBldCIpJiZkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpLmNvbnRhaW5zKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19wcm9kdWN0LXNuaXBwZXQiKSk7YXx8dF9zdG9yZV9vcGVuX3BvcHVwX3JvdXRpbmdfaW5pdCh0LGUpO3ZhciBuPWUuc2hvd1JlbGV2YW50cyxkLGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlYyIrdCkucXVlcnlTZWxlY3RvcigiLnQtcG9wdXAiKSxsLHA7aWYoYyYmdF9zdG9yZV9kcmF3UHJvZFBvcHVwKHQsYyxyLGUscyksdF9zdG9yZV9zaG93UG9wdXAodCxpLHMpLHdpbmRvdy5UaWxkYSYmKFRpbGRhLnNlbmRFY29tbWVyY2VFdmVudCYmKHdpbmRvdy50U3RvcmVEZXRhaWxFdmVudHx8KHdpbmRvdy50U3RvcmVEZXRhaWxFdmVudD17fSksd2luZG93LnRTdG9yZURldGFpbEV2ZW50W3IuaWQ/ci5pZDpyLnVpZF18fChUaWxkYS5zZW5kRWNvbW1lcmNlRXZlbnQoImRldGFpbCIsW3tpZDoiIisoci5pZD9yLmlkOnIudWlkKSx1aWQ6IiIrci51aWQscHJpY2U6IiIrKHIucHJpY2VfbWluP3IucHJpY2VfbWluOnIucHJpY2UpLHNrdTpyLnNrdT9yLnNrdToiIixuYW1lOnIudGl0bGV9XSksd2luZG93LnRTdG9yZURldGFpbEV2ZW50W3IuaWQ/ci5pZDpyLnVpZF09ITApKSxUaWxkYS5zZW5kRXZlbnRUb1N0YXRpc3RpY3MpKXt2YXIgXz1jLmdldEF0dHJpYnV0ZSgiZGF0YS10cmFjay1wb3B1cCIpO2lmKF8pe3ZhciB1PSJQb3B1cDogIityLnRpdGxlO1RpbGRhLnNlbmRFdmVudFRvU3RhdGlzdGljcyhfLHUsIiIsMCl9fWlmKGUuaXNQdWJsaXNoZWRQYWdlJiYhaSYmdF9zdG9yZV9jaGFuZ2VVcmwodCxyLG8sZSksbiYmIWEpe3ZhciBnLHY9e2NjOiJjdXJyZW50X2NhdGVnb3J5IixhbGw6ImFsbF9jYXRlZ29yaWVzIn1bbl18fCJjYXRlZ29yeV8iK24seT0icmFuZG9tIixtPWUucmVsZXZhbnRzX3F1YW50aXR5fHw0O3Rfc3RvcmVfbG9hZFByb2R1Y3RzKCJyZWxldmFudHMiLHQsZSwhMSx7Y3VycmVudFByb2R1Y3RVaWQ6ci51aWQscmVsZXZhbnRzUXVhbnRpdHk6bSxyZWxldmFudHNNZXRob2Q6dixyZWxldmFudHNTb3J0Onl9KX0oInkiIT09d2luZG93LmxhenkmJiJ5ZXMiIT09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKS5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtbGF6eSIpfHx0X3N0b3JlX3BvcHVwX3VwZExhenlPblNjcm9sbCh0KSxwYXJzZUludChyLnF1YW50aXR5LDEwKTw9MHx8ImJvdGgiIT09ZS5zaG93U3RvcmVCdG5RdWFudGl0eSYmInBvcHVwIiE9PWUuc2hvd1N0b3JlQnRuUXVhbnRpdHkpfHx0X3N0b3JlX2FkZFByb2R1Y3RRdWFudGl0eShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcmVjIit0KyIgLnQtcG9wdXAgLmpzLXN0b3JlLXByb2R1Y3QiKSxyLGUpO3Rfc3RvcmVfaG92ZXJab29tX2luaXQodCksZS5pdGVtc0FuaW0mJmUucHJldmlld21vZGUmJnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dF9zdG9yZV9vbkZ1bmNMb2FkKCJ0X2FuaW1hdGVfX3NldEFuaW1hdGlvblN0YXRlQ2hhaW5zIiwoZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuciIpLGU9W107QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0LChmdW5jdGlvbih0KXt0LnF1ZXJ5U2VsZWN0b3IoIi50LWFuaW1hdGVbZGF0YS1hbmltYXRlLWNoYWluPXllc10iKSYmZS5wdXNoKHQpfSkpLGUubGVuZ3RoJiZ0X2FuaW1hdGVfX3NldEFuaW1hdGlvblN0YXRlQ2hhaW5zKGUpfSkpfSksMzAwKX1mdW5jdGlvbiB0X3N0b3JlX2FkZFByb2R1Y3RRdWFudGl0eSh0LGUscil7aWYod2luZG93LmpRdWVyeSYmdCBpbnN0YW5jZW9mIGpRdWVyeSl7aWYoMD09PXQubGVuZ3RoKXJldHVybjt0PSQodCkuZ2V0KDApfXZhciBvPXQucXVlcnlTZWxlY3RvcignLnQtc3RvcmVfX3Byb2QtcG9wdXBfX2J0bi13cmFwcGVyIGFbaHJlZj0iI29yZGVyIl06bm90KC50LXN0b3JlX19wcm9kLXBvcHVwX19idG5fZGlzYWJsZWQpJyksaT10LnF1ZXJ5U2VsZWN0b3IoJy50LXN0b3JlX19jYXJkX19idG5zLXdyYXBwZXIgYVtocmVmPSIjb3JkZXIiXTpub3QoW3N0eWxlKj0iZGlzcGxheTogbm9uZSJdKScpLHM9cGFyc2VJbnQoZS5xdWFudGl0eSwxMCksYTtpZihpc05hTihzKSYmZS5lZGl0aW9ucyl7dmFyIG49dF9zdG9yZV9wcm9kdWN0X2dldEZpcnN0QXZhaWxhYmxlRWRpdGlvbkRhdGEoZS5lZGl0aW9ucyk7cz1wYXJzZUludChuLnF1YW50aXR5LDEwKX1pZigoaXx8bykmJjAhPT1zJiYxIT09cyYmIiIhPT1yLnNob3dTdG9yZUJ0blF1YW50aXR5JiZyLnNob3dTdG9yZUJ0blF1YW50aXR5KXtpZigibGlzdCI9PT1yLnNob3dTdG9yZUJ0blF1YW50aXR5JiZ0LmNsYXNzTGlzdC5jb250YWlucygidC1zdG9yZV9fY2FyZCIpfHwicG9wdXAiPT09ci5zaG93U3RvcmVCdG5RdWFudGl0eSYmdC5jbGFzc0xpc3QuY29udGFpbnMoInQtc3RvcmVfX3Byb2R1Y3Qtc25pcHBldCIpfHwicG9wdXAiPT09ci5zaG93U3RvcmVCdG5RdWFudGl0eSYmdC5jbGFzc0xpc3QuY29udGFpbnMoInQtc3RvcmVfX3Byb2R1Y3QtcG9wdXAiKXx8ImJvdGgiPT09ci5zaG93U3RvcmVCdG5RdWFudGl0eSl7dmFyIGE7aWYocnx8KHI9e30pLGE9dC5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fcHJvZF9fcXVhbnRpdHkiKSl2YXIgZD1hLnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19wcm9kX19xdWFudGl0eS1pbnB1dCIpO2lmKGEpe3ZhciBjPWQubWlufHwxO2QudmFsdWU9Yyx0X3N0b3JlX3RyaWdnZXJFdmVudChkLCJjaGFuZ2UiKTt2YXIgbD1kLnZhbHVlO2lzTmFOKHMpP2EuY2xhc3NMaXN0LnJlbW92ZSgidC1zdG9yZV9fcHJvZC1wb3B1cF9fYnRuX2Rpc2FibGVkIik6cz4xPyhhLmNsYXNzTGlzdC5yZW1vdmUoInQtc3RvcmVfX3Byb2QtcG9wdXBfX2J0bl9kaXNhYmxlZCIpLDA9PT1wYXJzZUludChsLDEwKSYmKGQudmFsdWU9YykpOmEuY2xhc3NMaXN0LmFkZCgidC1zdG9yZV9fcHJvZC1wb3B1cF9fYnRuX2Rpc2FibGVkIil9ZWxzZXt2YXIgcD0iIixfPXIuYnRuMV9zdHlsZSx1PSIiLGc9IiI7aWYodC5jbGFzc0xpc3QuY29udGFpbnMoInQtc3RvcmVfX2NhcmQiKSYmKGc9IiIsInNtIj09PXIuYnRuU2l6ZSYmKGc9InQtc3RvcmVfX3Byb2RfX3F1YW50aXR5X3hzIikpLCIiIT09XyYmXyl7dmFyIHY9Xy5pbmRleE9mKCJib3JkZXItcmFkaXVzIik7aWYoLTEhPT12KXt2YXIgeT1fLnNsaWNlKHYpLmluZGV4T2YoIjsiKTt1PV8uc2xpY2UodisxNCx2K3kpfX12YXIgbT0iIjtpZigiIiE9PXUmJihtPSJib3JkZXItcmFkaXVzOiIrdSsiOyIpLHArPSc8ZGl2IGNsYXNzPSJ0LXN0b3JlX19wcm9kX19xdWFudGl0eSAnK2crJyIgc3R5bGU9IicrbSsnIj4nLHArPSc8ZGl2IGNsYXNzPSJ0LXN0b3JlX19wcm9kX19xdWFudGl0eV9fbWludXMtd3JhcHBlciI+JyxwKz0nPHNwYW4gY2xhc3M9InQtc3RvcmVfX3Byb2RfX3F1YW50aXR5X19taW51cyI+PC9zcGFuPicscCs9IjwvZGl2PiIscCs9JzxpbnB1dCBjbGFzcz0idC1zdG9yZV9fcHJvZF9fcXVhbnRpdHktaW5wdXQgdC1kZXNjciB0LWRlc2NyX3h4cyIgdHlwZT0ibnVtYmVyIiBtaW49IjEiIG1heD0iOTk5OSIgc3RlcD0iMSIgdmFsdWU9IjEiIHNpemU9IjQiIG1heGxlbmd0aD0iNCIgLz4nLHArPSc8ZGl2IGNsYXNzPSJ0LXN0b3JlX19wcm9kX19xdWFudGl0eV9fcGx1cy13cmFwcGVyIj4nLHArPSc8c3BhbiBjbGFzcz0idC1zdG9yZV9fcHJvZF9fcXVhbnRpdHlfX3BsdXMiPjwvc3Bhbj4nLHArPSI8L2Rpdj4iLHArPSI8L2Rpdj4iLG8/by5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWJlZ2luIixwKTppJiZpLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlYmVnaW4iLHApLHRfc3RvcmVfYWRkUHJvZHVjdFF1YW50aXR5RXZlbnRzKHQpLGQ9KGE9dC5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fcHJvZF9fcXVhbnRpdHkiKSkucXVlcnlTZWxlY3RvcigiLnQtc3RvcmVfX3Byb2RfX3F1YW50aXR5LWlucHV0IiksaSl7dmFyIGY9aS5wYXJlbnROb2RlO2lmKGYuY2xhc3NMaXN0LmFkZCgidC1zdG9yZV9fY2FyZF9fYnRucy13cmFwcGVyLS1xdWFudGl0eSIpLGYucXVlcnlTZWxlY3RvckFsbCgnYTpub3QoW2hyZWZePSIjb3JkZXIiXSknKS5sZW5ndGg+MCYmRWxlbWVudC5wcm90b3R5cGUubWF0Y2hlcy5jYWxsKGYucGFyZW50Tm9kZSwiZGl2W2NsYXNzXSIpKXt2YXIgaD1mLnBhcmVudE5vZGUsdz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt3LmFwcGVuZENoaWxkKGYpLGgmJmguYXBwZW5kQ2hpbGQodyl9fX1kJiYoaXNOYU4ocyk/ZC5tYXg9OTk5OTk6cz4wJiYoZC5tYXg9cykpfX1lbHNlKGE9dC5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fcHJvZF9fcXVhbnRpdHkiKSkmJihhLnBhcmVudE5vZGUuY2xhc3NMaXN0LnJlbW92ZSgidC1zdG9yZV9fY2FyZF9fYnRucy13cmFwcGVyLS1xdWFudGl0eSIpLHRfc3RvcmVfX3JlbW92ZUVsZW1lbnQoYSkpfWZ1bmN0aW9uIHRfc3RvcmVfYWRkUHJvZHVjdFF1YW50aXR5RXZlbnRzKHQpe2lmKHdpbmRvdy5qUXVlcnkmJnQgaW5zdGFuY2VvZiBqUXVlcnkpe2lmKDA9PT10Lmxlbmd0aClyZXR1cm47dD10WzBdfXZhciBlPXQucXVlcnlTZWxlY3RvcigiLnQtc3RvcmVfX3Byb2RfX3F1YW50aXR5Iik7aWYoZSl7dmFyIHI9ZS5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fcHJvZF9fcXVhbnRpdHktaW5wdXQiKSxvPWZ1bmN0aW9uIHQoKXtyLnN0ZXBEb3duKCl9LGk9dC5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fcHJvZF9fcXVhbnRpdHlfX21pbnVzLXdyYXBwZXIiKTtpJiYoaS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsbyksaS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbykpO3ZhciBzPWZ1bmN0aW9uIHQoKXtyLnN0ZXBVcCgpfSxhPXQucXVlcnlTZWxlY3RvcigiLnQtc3RvcmVfX3Byb2RfX3F1YW50aXR5X19wbHVzLXdyYXBwZXIiKTthJiYoYS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIscyksYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIscykpO3ZhciBuPWZ1bmN0aW9uIHQoKXt2YXIgZT1yLm1pbnx8MSxvPXIubWF4fHw5OTk5LGk9cGFyc2VJbnQoci52YWx1ZXx8MSwxMCk7aTwxfHxpc05hTihpKT9yLnZhbHVlPWU6ci52YWx1ZT1pPm8/bzppfSxkPXQucXVlcnlTZWxlY3RvcigiLnQtc3RvcmVfX3Byb2RfX3F1YW50aXR5LWlucHV0Iik7ZCYmKGQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixuKSxkLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsbikpfX1mdW5jdGlvbiB0X3N0b3JlX3JlbW92ZVByb2R1Y3RRdWFudGl0eSh0KXt2YXIgZT10LnF1ZXJ5U2VsZWN0b3IoJy50LXN0b3JlX19wcm9kLXBvcHVwX19idG4td3JhcHBlciBhW2hyZWY9IiNvcmRlciJdOm5vdCgudC1zdG9yZV9fcHJvZC1wb3B1cF9fYnRuX2Rpc2FibGVkKScpLHI7aWYodC5xdWVyeVNlbGVjdG9yKCcudC1zdG9yZV9fY2FyZF9fYnRucy13cmFwcGVyIGFbaHJlZj0iI29yZGVyIl06bm90KFtzdHlsZSo9ImRpc3BsYXk6IG5vbmUiXSknKXx8ZSl7dmFyIG89dC5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fcHJvZF9fcXVhbnRpdHkiKTtvJiYoby5wYXJlbnROb2RlLmNsYXNzTGlzdC5yZW1vdmUoInQtc3RvcmVfX2NhcmRfX2J0bnMtd3JhcHBlci0tcXVhbnRpdHkiKSx0X3N0b3JlX19yZW1vdmVFbGVtZW50KG8pKX19ZnVuY3Rpb24gdF9zdG9yZV9vcGVuX3BvcHVwX3JvdXRpbmdfaW5pdCh0LGUpe3dpbmRvdy5vbnBvcHN0YXRlPWZ1bmN0aW9uKCl7aWYod2luZG93Lmhpc3Rvcnkuc3RhdGUpaWYod2luZG93Lmhpc3Rvcnkuc3RhdGUucHJvZHVjdERhdGEpe3ZhciByPXdpbmRvdy5oaXN0b3J5LnN0YXRlLnByb2R1Y3REYXRhLG8saSxzLGE7dF9zdG9yZV9vcGVuUHJvZHVjdFBvcHVwKHIucmVjaWQsci5vcHRzLHIucHJvZHVjdE9iaixyLmlzUmVsZXZhbnRzU2hvdywhMCl9ZWxzZSB0X3N0b3JlX2Nsb3NlUG9wdXAoITAsdCxlKTtlbHNlIHRfc3RvcmVfY2xvc2VQb3B1cCghMCx0LGUpfX1mdW5jdGlvbiB0X3N0b3JlX3BvcHVwX3VwZExhenlPblNjcm9sbCh0KXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcmVjIit0KyIgLnQtcG9wdXAiKSxyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbGxyZWNvcmRzIikuZ2V0QXR0cmlidXRlKCJkYXRhLXRpbGRhLW1vZGUiKTtlJiYiZWRpdCIhPT1yJiYicHJldmlldyIhPT1yJiZlLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdF90aHJvdHRsZSgoZnVuY3Rpb24oKXt0X3N0b3JlX29uRnVuY0xvYWQoInRfbGF6eWxvYWRfdXBkYXRlIiwoZnVuY3Rpb24oKXt0X2xhenlsb2FkX3VwZGF0ZSgpfSkpfSkpKX1mdW5jdGlvbiB0X3N0b3JlX2NoYW5nZVVybCh0LGUscixvKXt2YXIgaT0vaVBob25lfGlQYWR8aVBvZC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkscz0vXigoPyFjaHJvbWV8YW5kcm9pZCkuKSpzYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLGE9d2luZG93LmxvY2F0aW9uLmhyZWYsbj17cHJvZHVjdE9iajplLG9wdHM6byxpc1JlbGV2YW50c1Nob3c6cixyZWNpZDp0fSxkLGM9ZG9jdW1lbnQudGl0bGUrIiDigJMgIitlLnRpdGxlO2EuaW5kZXhPZigiL3Rwcm9kdWN0LyIpPDAmJmEuaW5kZXhPZigiJTJGdHByb2R1Y3QlMkYiKTwwPyh0X3N0b3JlX2hpc3RvcnlfcHVzaFN0YXRlKHtwcm9kdWN0RGF0YTpufSxjLGQ9dF9zdG9yZV9nZW5lcmF0ZVVybChlKSksaSYmcyYmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2hlYWQgbGlua1tyZWw9ImNhbm9uaWNhbCJdJykuc2V0QXR0cmlidXRlKCJocmVmIixkKSxkb2N1bWVudC50aXRsZT1jKSk6ciYmdF9zdG9yZV9oaXN0b3J5X3B1c2hTdGF0ZSh7cHJvZHVjdERhdGE6bn0sYyxkPXRfc3RvcmVfZ2VuZXJhdGVVcmwoZSkpfWZ1bmN0aW9uIHRfc3RvcmVfZ2VuZXJhdGVVcmwodCl7dmFyIGU9d2luZG93LmxvY2F0aW9uLnByb3RvY29sLHI9d2luZG93LmxvY2F0aW9uLmhvc3QsbztyZXR1cm4obz0obz10LnVybC5zcGxpdCgiOi8vIilbMV0pLnNwbGl0KCIvIikpLnNoaWZ0KCksZSsiLy8iK3IrIi8iKyhvPW8uam9pbigiLyIpKX1mdW5jdGlvbiB0X3N0b3JlX2RyYXdQcm9kUG9wdXAodCxlLHIsbyxpKXtlLnNjcm9sbFRvcD0wO3ZhciBzPWUucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLXByb2R1Y3QuanMtcHJvZHVjdCIpO3Muc2V0QXR0cmlidXRlKCJkYXRhLWNhcmQtc2l6ZSIsImxhcmdlIiksdF9zdG9yZV9kcmF3UHJvZFBvcHVwX2RyYXdHYWxsZXJ5KHQsZSxyLG8pLHdpbmRvdy50U3RvcmVEZWZQYWNrT2JqfHwod2luZG93LnRTdG9yZURlZlBhY2tPYmo9e30pO3ZhciBhPWUucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLXByb2R1Y3QiKTthLnNldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LWxpZCIsci51aWQpLGEuc2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtdWlkIixyLnVpZCksYS5zZXRBdHRyaWJ1dGUoImRhdGEtcHJvZHVjdC1nZW4tdWlkIixyLnVpZCk7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtcHJvZC1uYW1lIik7ci50aXRsZT8obi5pbm5lckhUTUw9ci50aXRsZSxuLnN0eWxlLmRpc3BsYXk9IiIpOihuLmlubmVySFRNTD0iIixuLnN0eWxlLmRpc3BsYXk9Im5vbmUiKTt2YXIgZD1bXTt0cnl7ZD1KU09OLnBhcnNlKHIucGFydHVpZHMpfWNhdGNoKGcpe2NvbnNvbGUubG9nKGcpfWlmKGEuc2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtcGFydC11aWQiLGQuam9pbigiLCIpKSxvLmxpbmtzU2l6ZUNoYXJ0JiZkLmxlbmd0aD4wKXtmb3IodmFyIGM9IiIsbD1bXSxwPTA7cDxkLmxlbmd0aDtwKyspe3ZhciBfPWRbcF07by5saW5rc1NpemVDaGFydFtfXSYmby5saW5rc1NpemVDaGFydFtfXS5pbmZvdGV4dCYmby5saW5rc1NpemVDaGFydFtfXS5pbmZvdXJsJiYtMT09PWwuaW5kZXhPZihvLmxpbmtzU2l6ZUNoYXJ0W19dLmluZm91cmwpJiYoYys9JzxkaXYgY2xhc3M9InQtc3RvcmVfX3Byb2QtcG9wdXBfX2xpbmsgdC1kZXNjciB0LWRlc2NyX3h4cyI+JyxjKz0nPGEgaHJlZj0iJytvLmxpbmtzU2l6ZUNoYXJ0W19dLmluZm91cmwucmVwbGFjZSgvIi9nLCImcXVvdDsiKSsnIiB0YXJnZXQ9Il9ibGFuayI+JyxjKz1vLmxpbmtzU2l6ZUNoYXJ0W19dLmluZm90ZXh0LGMrPSI8L2E+IixjKz0iPC9kaXY+IixsLnB1c2goby5saW5rc1NpemVDaGFydFtfXS5pbmZvdXJsKSl9ZS5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fcHJvZC1wb3B1cF9fbGlua3Mtd3JhcHBlciIpLmlubmVySFRNTD1jfWVsc2UgZS5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fcHJvZC1wb3B1cF9fbGlua3Mtd3JhcHBlciIpLmlubmVySFRNTD0iIjt0X3N0b3JlX2luaXRUZXh0QW5kQ2hhcmFjdGVyaXN0aWNzKGUscik7dmFyIHU9ZnVuY3Rpb24gYSgpe3Rfc3RvcmVfYWRkUHJvZHVjdE9wdGlvbnModCxyLHMsbyksdF9zdG9yZV9vcHRpb25faGFuZGxlT25DaGFuZ2UocyksdF9zdG9yZV9vcHRpb25faGFuZGxlT25DaGFuZ2VfY3VzdG9tKHQscyxvKSx0X3N0b3JlX29uRnVuY0xvYWQoInRfcHJvZF9faW5pdFByb2R1Y3QiLChmdW5jdGlvbigpe3RfcHJvZF9faW5pdFByb2R1Y3QocyxvKX0pKSx3aW5kb3cudF9zdG9yZV9wcm9kUG9wdXBfdXBkYXRlR2FsbGVyeVRodW1ic0V2ZW50PWZ1bmN0aW9uKCl7dF9zdG9yZV9wcm9kUG9wdXBfdXBkYXRlR2FsbGVyeVRodW1icyh0LGUscixvKX0saSYmd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsd2luZG93LnRfc3RvcmVfcHJvZFBvcHVwX3VwZGF0ZUdhbGxlcnlUaHVtYnNFdmVudCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsd2luZG93LnRfc3RvcmVfcHJvZFBvcHVwX3VwZGF0ZUdhbGxlcnlUaHVtYnNFdmVudCl9O3UoKSxvLnRhYnMmJnRfc3RvcmVfb25GdW5jTG9hZCgidF9zdG9yZV90YWJzX2luaXQiLChmdW5jdGlvbigpe3Rfc3RvcmVfdGFic19pbml0KHQsbyxyLHMsZSx1KX0pKX1mdW5jdGlvbiB0X3N0b3JlX2luaXRUZXh0QW5kQ2hhcmFjdGVyaXN0aWNzKHQsZSl7dmFyIHI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKSE9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19wcm9kdWN0LXNuaXBwZXQiKSYmZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKS5jb250YWlucyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fcHJvZHVjdC1zbmlwcGV0IikpLG89dC5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtcHJvZC10ZXh0Iik7aWYobyl7Zm9yKDtvLmZpcnN0Q2hpbGQ7KW8ucmVtb3ZlQ2hpbGQoby5maXJzdENoaWxkKTtvLnN0eWxlLmRpc3BsYXk9Im5vbmUifXZhciBpPWUucGFja19sYWJlbHx8IiIscz1wYXJzZUludChlLnBhY2tfbSwxMCl8fDAsYT1wYXJzZUludChlLnBhY2tfeCwxMCl8fDAsbj1wYXJzZUludChlLnBhY2tfeSwxMCl8fDAsZD1wYXJzZUludChlLnBhY2tfeiwxMCl8fDAsYz1lLnVybHx8IiIsbD1pJiZhJiZuJiZkLHA9cyxfPWUuY2hhcmFjdGVyaXN0aWNzJiZlLmNoYXJhY3RlcmlzdGljcy5sZW5ndGg+MHx8bHx8cCx1PSEwLGc9Xyx2O3QucXVlcnlTZWxlY3RvckFsbCgnLnQtc3RvcmVfX3RhYnMgLnQtc3RvcmVfX3RhYnNfX2l0ZW1bZGF0YS10YWItdHlwZT0idGV4dCJdJykubGVuZ3RoJiYodT0hMSk7dmFyIHk9dC5xdWVyeVNlbGVjdG9yQWxsKCcudC1zdG9yZV9fdGFicyAudC1zdG9yZV9fdGFic19faXRlbVtkYXRhLXRhYi10eXBlPSJjaGFycyJdJyk7eS5sZW5ndGgmJihnPSExKTt2YXIgbT0nPGRpdiBjbGFzcz0ianMtc3RvcmUtcHJvZC1hbGwtdGV4dCInKyh1PyIiOicgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IicpKyI+IjttKz1lLnRleHQ/ZS50ZXh0OmUuZGVzY3I/ZS5kZXNjcjoiIixtKz0iPC9kaXY+Ijt2YXIgZj11PyJtYXJnaW4tdG9wOiAyMHB4OyI6IiIsaD0nPGRpdiBjbGFzcz0ianMtc3RvcmUtcHJvZC1hbGwtY2hhcmNzIicrKChmKz1nPyIiOiJkaXNwbGF5OiBub25lOyIpLmxlbmd0aD8nIHN0eWxlPSInK2YrJyInOiIiKSsiPiIsdz0iIjtpZihfJiZlLmNoYXJhY3RlcmlzdGljcy5mb3JFYWNoKChmdW5jdGlvbih0KXt3Kz0nPHAgY2xhc3M9InQtdHlwb2dyYXBoeV9fY2hhcmFjdGVyaXN0aWNzIGpzLXN0b3JlLXByb2QtY2hhcmNzIj4nK3QudGl0bGUrIjogIit0LnZhbHVlKyI8L3A+In0pKSx3Kz0nPHAgY2xhc3M9ImpzLXN0b3JlLXByb2QtZGltZW5zaW9ucyB0LXR5cG9ncmFwaHlfX2NoYXJhY3RlcmlzdGljcyI+PC9wPicsaCs9dys9JzxwIGNsYXNzPSJqcy1zdG9yZS1wcm9kLXdlaWdodCB0LXR5cG9ncmFwaHlfX2NoYXJhY3RlcmlzdGljcyI+PC9wPicsaCs9IjwvZGl2PiIsbyYmKG8uaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLG0pLG8uaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLGgpLG8uc3R5bGUuZGlzcGxheT0iIiksciYmeS5sZW5ndGgmJkFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoeSwoZnVuY3Rpb24odCxlKXt2YXIgcj10LnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX190YWJzX19jb250ZW50Iik7aWYocil7Zm9yKDtyLmZpcnN0Q2hpbGQ7KXIucmVtb3ZlQ2hpbGQoci5maXJzdENoaWxkKTtyLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlZW5kIix3KSwwIT09ZSYmKHIucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLXByb2QtZGltZW5zaW9ucyIpLnBhcmVudE5vZGUuc3R5bGUuZGlzcGxheT0iIil9fSkpLGwpe3ZhciBiPWErIngiK24rIngiK2QsUz13aW5kb3cudFN0b3JlRGljdFsicHJvZHVjdC0iK2ldKyI6ICIrYisiJm5ic3A7Iit3aW5kb3cudFN0b3JlRGljdC5tbSxFPXQucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLXByb2QtZGltZW5zaW9ucyIpO0UmJihFLmlubmVySFRNTD1TKSxyJiYoQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh5LChmdW5jdGlvbih0KXt2YXIgZT10LnF1ZXJ5U2VsZWN0b3IoIi5qcy1zdG9yZS1wcm9kLWRpbWVuc2lvbnMiKTtlJiYoZS5pbm5lckhUTUw9Uyl9KSksdC5zZXRBdHRyaWJ1dGUoImRhdGEtcHJvZHVjdC1wYWNrLWxhYmVsIixpKSx0LnNldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LXBhY2steCIsYSksdC5zZXRBdHRyaWJ1dGUoImRhdGEtcHJvZHVjdC1wYWNrLXkiLG4pLHQuc2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtcGFjay16IixkKSl9aWYocCl7dmFyIEE9d2luZG93LnRTdG9yZURpY3RbInByb2R1Y3Qtd2VpZ2h0Il0rIjogIitzKyImbmJzcDsiK3dpbmRvdy50U3RvcmVEaWN0Lmc7dC5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtcHJvZC13ZWlnaHQiKS5pbm5lckhUTUw9QSxyJiYoeS5sZW5ndGgmJkFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoeSwoZnVuY3Rpb24odCl7dmFyIGU9dC5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtcHJvZC13ZWlnaHQiKTtlJiYoZS5pbm5lckhUTUw9QSl9KSksdC5zZXRBdHRyaWJ1dGUoImRhdGEtcHJvZHVjdC1wYWNrLW0iLHMpKX12YXIgeD10LnF1ZXJ5U2VsZWN0b3IoIi5qcy1zdG9yZS1wcm9kdWN0Iik7ciYmdC5jbGFzc0xpc3QuY29udGFpbnMoImpzLXN0b3JlLXByb2R1Y3QiKSYmKHg9dCkseCYmKHguc2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtcGFjay1sYWJlbCIsaSkseC5zZXRBdHRyaWJ1dGUoImRhdGEtcHJvZHVjdC1wYWNrLW0iLHMpLHguc2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtcGFjay14IixhKSx4LnNldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LXBhY2steSIsbikseC5zZXRBdHRyaWJ1dGUoImRhdGEtcHJvZHVjdC1wYWNrLXoiLGQpLHguc2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtdXJsIixjKSl9ZnVuY3Rpb24gdF9zdG9yZV9hZGRQcm9kdWN0T3B0aW9ucyh0LGUscixvKXtpZih3aW5kb3cualF1ZXJ5JiZyIGluc3RhbmNlb2YgalF1ZXJ5KXtpZigwPT09ci5sZW5ndGgpcmV0dXJuO3I9clswXX12YXIgaT1yLnF1ZXJ5U2VsZWN0b3IoIi5qcy1wcm9kdWN0LWNvbnRyb2xzLXdyYXBwZXIiKTtpZihpKXtpLmlubmVySFRNTD0iIjt2YXIgcz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpIT09ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtc3RvcmVfX3Byb2R1Y3Qtc25pcHBldCIpJiZkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpLmNvbnRhaW5zKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19wcm9kdWN0LXNuaXBwZXQiKSksYT10X3N0b3JlX3Byb2R1Y3RfZ2V0Rmlyc3RBdmFpbGFibGVFZGl0aW9uRGF0YShlLmVkaXRpb25zKSxuLGQ7aWYodF9zdG9yZV9wcm9kdWN0X2luaXRFZGl0aW9ucyh0LGUscixvKSxlLnByb2Rfb3B0aW9ufHxlLnByb2Rfb3B0aW9uMnx8ZS5wcm9kX29wdGlvbjN8fGUucHJvZF9vcHRpb240fHxlLnByb2Rfb3B0aW9uNSlbIiIsMiwzLDQsNV0ubWFwKChmdW5jdGlvbih0KXtyZXR1cm57bmFtZTplWyJwcm9kX29wdGlvbiIrdF0sdmFsdWVzOmVbInByb2RfdmFyaWFudHMiK3RdfX0pKS5mb3JFYWNoKChmdW5jdGlvbihlKXt0X3N0b3JlX3Byb2R1Y3RfYWRkT25lT3B0aW9uc0NvbnRyb2woIm1vZGlmaWNhdG9yIixlLGksbyxhLHQpfSkpO2Vsc2UgZS5wcm9wZXJ0aWVzJiZlLnByb3BlcnRpZXMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7aWYoInNpbmdsZSI9PT1lLnBhcmFtcy50eXBlKXt2YXIgcjt0X3N0b3JlX3Byb2R1Y3RfYWRkT25lT3B0aW9uc0NvbnRyb2woIm1vZGlmaWNhdG9yIix7bmFtZTplLnRpdGxlLHZhbHVlczplLnZhbHVlc30saSxvLGEsdCl9ZWxzZXt2YXIgcz10X3N0b3JlX3Byb2R1Y3RfZ2V0TXVsdGlvcHRpb25DaGVja2JveGVzRWwodCxlKTtpLmFwcGVuZChzKX19KSk7aWYocyl7dF9zdG9yZV9vcHRpb25faGFuZGxlT25DaGFuZ2Uocik7dmFyIGM9ci5jbG9zZXN0KCIudC1yZWNvcmRzIiksbD1jJiZjLmdldEF0dHJpYnV0ZSgiaWQiKSxwPSFyLmNsb3Nlc3QoIi50LXN0b3JlX19yZWxldmFudHNfX2NvbnRhaW5lciIpLF87YyYmcCYmKCJ0LWhlYWRlciIhPT1sJiYidC1mb290ZXIiIT09bCkmJnRfc3RvcmVfb3B0aW9uX2hhbmRsZU9uQ2hhbmdlX2N1c3RvbSh0LHIsbyl9fX1mdW5jdGlvbiB0X3N0b3JlX3Byb2R1Y3RfZ2V0TXVsdGlvcHRpb25DaGVja2JveGVzRWwodCxlKXt2YXIgcj1mdW5jdGlvbiB0KGUscil7dmFyIG87cmV0dXJuJzxsYWJlbCBjbGFzcz0idC1jaGVja2JveF9fY29udHJvbCB0LWNoZWNrYm94X19jb250cm9sX2ZsZXggdC1kZXNjciB0LWRlc2NyX3h4cyI+ICAgIDxpbnB1dCBjbGFzcz0idC1jaGVja2JveCIgdHlwZT0iY2hlY2tib3giIG5hbWU9IicrZSsnIiBkYXRhLXByb2R1Y3QtdmFyaWFudC1wcmljZT0iJytyKyciPiAgICA8ZGl2IGNsYXNzPSJ0LWNoZWNrYm94X19pbmRpY2F0b3IiPjwvZGl2PiAgICA8c3BhbiBjbGFzcz0iIj4nK2UrIjwvc3Bhbj48L2xhYmVsPiJ9LG8saT1lLnZhbHVlcy5zcGxpdCgiXG4iKS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7dmFyIG89ZS5zcGxpdCgiPSIpLGk9b1swXSxzPW9bMV07cmV0dXJuIHQrPXIoaSxzKX0pLCIiKSxzPSc8ZGl2IGNsYXNzPSJ0LXByb2R1Y3RfX29wdGlvbiBqcy1wcm9kdWN0LW11bHRpb3B0aW9uIj4gICAgPGRpdiBjbGFzcz0ianMtcHJvZHVjdC1vcHRpb24tbmFtZSB0LXByb2R1Y3RfX29wdGlvbi10aXRsZSB0LXR5cG9ncmFwaHlfX29wdGlvbnMgdC1kZXNjciB0LWRlc2NyX3h4cyI+JytlLnRpdGxlKyc8L2Rpdj4gICAgPGRpdiBjbGFzcz0idC1wcm9kdWN0X19jaGVja2JveC13cmFwIj4gICAgICAgICcraSsiICAgIDwvZGl2PjwvZGl2PiIsYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gYS5pbm5lckhUTUw9cyxhfWZ1bmN0aW9uIHRfc3RvcmVfZ2V0X2NvbnRyb2xfb3B0aW9uX2h0bWwodCl7dmFyIGU9IiIscixvPSIiLGk9dC50eXBvJiZ0LnR5cG8uZGVzY3JDb2xvcj90LnR5cG8uZGVzY3JDb2xvcjoiIjtyZXR1cm4gZSs9JzxkaXYgY2xhc3M9ImpzLXByb2R1Y3Qtb3B0aW9uIHQtcHJvZHVjdF9fb3B0aW9uIj4nLGUrPSc8ZGl2IGNsYXNzPSJqcy1wcm9kdWN0LW9wdGlvbi1uYW1lIHQtcHJvZHVjdF9fb3B0aW9uLXRpdGxlIHQtdHlwb2dyYXBoeV9fb3B0aW9ucyB0LWRlc2NyIHQtZGVzY3JfeHhzIiAnKyhyPSIiIT09KG8rPSIiIT09aT8iY29sb3I6IitpKyI7IjoiIik/J3N0eWxlID0gIicrbysnIic6IiIpKyI+W1tuYW1lXV08L2Rpdj4iLGUrPSc8ZGl2IGNsYXNzPSJ0LXByb2R1Y3RfX29wdGlvbi12YXJpYW50cyB0LXByb2R1Y3RfX29wdGlvbi12YXJpYW50c19yZWd1bGFyIj4gPHNlbGVjdCBjbGFzcz0ianMtcHJvZHVjdC1vcHRpb24tdmFyaWFudHMgdC1wcm9kdWN0X19vcHRpb24tc2VsZWN0IHQtdHlwb2dyYXBoeV9fb3B0aW9ucyB0LWRlc2NyIHQtZGVzY3JfeHhzIj4gW1tvcHRpb250YWdzXV0gPC9zZWxlY3Q+IDwvZGl2PicsZSs9IjwvZGl2PiJ9ZnVuY3Rpb24gdF9zdG9yZV9nZXRfY29udHJvbF9lZGl0aW9uT3B0aW9uX2h0bWwodCxlKXt2YXIgcj0iIixvLGk9IiIscz0iIixhPXQudHlwbyYmdC50eXBvLmRlc2NyQ29sb3I/dC50eXBvLmRlc2NyQ29sb3I6IiI7bz0iIiE9PShpKz0iIiE9PWE/ImNvbG9yOiIrYSsiOyI6IiIpPydzdHlsZSA9ICInK2krJyInOiIiO3ZhciBuLGQ9dF9zdG9yZV9vcHRpb25fY2hlY2tJZkN1c3RvbShlKT8nIHN0eWxlPSJkaXNwbGF5OiBub25lOyInOiIiO3JldHVybiBlLnBhcmFtcyYmKGUucGFyYW1zLnZpZXcmJihzKz0nIGRhdGEtdmlldy10eXBlPSInK2UucGFyYW1zLnZpZXcrJyInKSxlLnBhcmFtcy5oYXNDb2xvcj9zKz0nIGRhdGEtb3B0aW9uLXR5cGU9ImNvbG9yIic6cys9JyBkYXRhLW9wdGlvbi10eXBlPSJyZWd1bGFyIicpLHIrPSc8ZGl2IGNsYXNzPSJqcy1wcm9kdWN0LWVkaXRpb24tb3B0aW9uIHQtcHJvZHVjdF9fb3B0aW9uIiBkYXRhLWVkaXRpb24tb3B0aW9uLWlkPSJbW2lkXV0iJytzKyI+IixyKz0nPGRpdiBjbGFzcz0ianMtcHJvZHVjdC1lZGl0aW9uLW9wdGlvbi1uYW1lIHQtcHJvZHVjdF9fb3B0aW9uLXRpdGxlIHQtdHlwb2dyYXBoeV9fb3B0aW9ucyB0LWRlc2NyIHQtZGVzY3JfeHhzIiAnK28rIj5bW25hbWVdXTwvZGl2PiIscis9JzxkaXYgY2xhc3M9InQtcHJvZHVjdF9fb3B0aW9uLXZhcmlhbnRzIHQtcHJvZHVjdF9fb3B0aW9uLXZhcmlhbnRzX3JlZ3VsYXIiJytkKyc+IDxzZWxlY3QgY2xhc3M9ImpzLXByb2R1Y3QtZWRpdGlvbi1vcHRpb24tdmFyaWFudHMgdC1wcm9kdWN0X19vcHRpb24tc2VsZWN0IHQtdHlwb2dyYXBoeV9fb3B0aW9ucyB0LWRlc2NyIHQtZGVzY3JfeHhzIj4gW1tvcHRpb250YWdzXV0gPC9zZWxlY3Q+IDwvZGl2Picscis9IjwvZGl2PiJ9ZnVuY3Rpb24gdF9zdG9yZV9vcHRpb25fc3R5bGVDdXN0b21Db250cm9sKHQsZSxyLG8saSl7dmFyIHM9IiIsYT1vLnF1ZXJ5U2VsZWN0b3IoJy5qcy1wcm9kdWN0LWVkaXRpb24tb3B0aW9uW2RhdGEtZWRpdGlvbi1vcHRpb24taWQ9Iicrci5pZCsnIl0nKTtpZihhKXt2YXIgbj1yLnBhcmFtcyYmInNlbGVjdCI9PT1yLnBhcmFtcy52aWV3LGQ9ci5wYXJhbXMmJnIucGFyYW1zLmhhc0NvbG9yJiYhci5wYXJhbXMubGlua0ltYWdlLGM9ci5wYXJhbXMmJnIucGFyYW1zLmxpbmtJbWFnZSxsPXIudmFsdWVzWzBdLHA9dF9zdG9yZV9vcHRpb25fZ2V0Q2xhc3NNb2RpZmljYXRvcihyLCJzZWxlY3QiLCJ0LXByb2R1Y3RfX29wdGlvbi12YXJpYW50cyIpLF89dF9zdG9yZV9vcHRpb25fZ2V0Q2xhc3NNb2RpZmljYXRvcihyLCJzZWxlY3QiLCJ0LXByb2R1Y3RfX29wdGlvbi1pdGVtIiksdT10X3N0b3JlX29wdGlvbl9nZXRDbGFzc01vZGlmaWNhdG9yKHIsInNlbGVjdCIsInQtcHJvZHVjdF9fb3B0aW9uLWlucHV0IiksZz10X3N0b3JlX29wdGlvbl9nZXRDbGFzc01vZGlmaWNhdG9yKHIsInNlbGVjdCIsInQtcHJvZHVjdF9fb3B0aW9uLWNoZWNrbWFyayIpLHY9dF9zdG9yZV9vcHRpb25fZ2V0Q2xhc3NNb2RpZmljYXRvcihyLCJzZWxlY3QiLCJ0LXByb2R1Y3RfX29wdGlvbi10aXRsZSIpO2lmKG4pe3ZhciB5LG07aWYocys9JzxkaXYgY2xhc3M9InQtcHJvZHVjdF9fb3B0aW9uLXNlbGVjdGVkICcrdF9zdG9yZV9vcHRpb25fZ2V0Q2xhc3NNb2RpZmljYXRvcihyLCJzZWxlY3QiLCJ0LXByb2R1Y3RfX29wdGlvbi1zZWxlY3RlZCIpKycgdC1kZXNjciB0LWRlc2NyX3h4cyI+JyxkKXMrPSc8c3BhbiBjbGFzcz0idC1wcm9kdWN0X19vcHRpb24tc2VsZWN0ZWQtY2hlY2ttYXJrIicrKCcgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICcrdF9zdG9yZV9vcHRpb25fZ2V0Q29sb3JWYWx1ZShyLnZhbHVlc09iaixsKSsnOyInKSsiPjwvc3Bhbj4iO2Vsc2UgaWYoYyl7dmFyIGY9ci52YWx1ZXNbMF0saCx3LGI7cys9JzxkaXYgY2xhc3M9InQtcHJvZHVjdF9fb3B0aW9uLXNlbGVjdGVkLWNoZWNrbWFyayB0LWJnaW1nIiBkYXRhLW9yaWdpbmFsPSInKyhoPXIuaW1hZ2VzT2JqW2ZdKSsnIicrKCh3PXRfc3RvcmVfZ2V0TGF6eVVybChlLGgpKT8iIHN0eWxlPVwiYmFja2dyb3VuZC1pbWFnZTogdXJsKCciK3crIicpO1wiIjoiIikrIj48L2Rpdj4ifXMrPSc8c3BhbiBjbGFzcz0idC1wcm9kdWN0X19vcHRpb24tc2VsZWN0ZWQtdGl0bGUiPicrbCsiPC9zcGFuPiIscys9IjwvZGl2PiIscCs9IiB0LXByb2R1Y3RfX29wdGlvbi12YXJpYW50c19oaWRkZW4ifXMrPSc8Zm9ybSBjbGFzcz0idC1wcm9kdWN0X19vcHRpb24tdmFyaWFudHMgdC1wcm9kdWN0X19vcHRpb24tdmFyaWFudHNfY3VzdG9tICcrcCsnIj4nO2Zvcih2YXIgUz0wO1M8ci52YWx1ZXMubGVuZ3RoO1MrKyl7dmFyIGY7aWYoIiIhPT0oZj1yLnZhbHVlc1tTXSkpe3ZhciBFPWlbci5uYW1lXT09PWYsQT1FPyIgY2hlY2tlZCI6IiIseD1FPyIgdC1wcm9kdWN0X19vcHRpb24taXRlbV9hY3RpdmUgIjoiIixDPWQ/JyBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogJyt0X3N0b3JlX29wdGlvbl9nZXRDb2xvclZhbHVlKHIudmFsdWVzT2JqLGYpKyc7Iic6IiIsaCx3O2lmKHMrPSc8bGFiZWwgY2xhc3M9InQtcHJvZHVjdF9fb3B0aW9uLWl0ZW0gJyt4K18rJyI+JyxzKz0nPGlucHV0IGNsYXNzPSJ0LXByb2R1Y3RfX29wdGlvbi1pbnB1dCAnK3UrJyIgdHlwZT0icmFkaW8iIG5hbWU9Iicrci5uYW1lKyciIHZhbHVlPSInK3Rfc3RvcmVfZXNjYXBlUXVvdGUoZikrJyInK0ErIj4iLGMmJnIuaW1hZ2VzT2JqKXMrPSc8ZGl2IGNsYXNzPSJ0LXByb2R1Y3RfX29wdGlvbi1jaGVja21hcmsgdC1iZ2ltZyAnK2crJyInKyhDPSh3PXRfc3RvcmVfZ2V0TGF6eVVybChlLGg9ci5pbWFnZXNPYmpbZl0pKT8iIHN0eWxlPVwiYmFja2dyb3VuZC1pbWFnZTogdXJsKCciK3crIicpO1wiIjoiIikrJyBkYXRhLW9yaWdpbmFsPSInK2grJyI+PC9kaXY+JztlbHNlIHMrPSc8ZGl2IGNsYXNzPSJ0LXByb2R1Y3RfX29wdGlvbi1jaGVja21hcmsgJytnKyciJytDKyI+PC9kaXY+IjtzKz0nPHNwYW4gY2xhc3M9InQtcHJvZHVjdF9fb3B0aW9uLXRpdGxlICcrdisnIHQtdHlwb2dyYXBoeV9fb3B0aW9ucyB0LWRlc2NyIHQtZGVzY3JfeHhzIj4nK2YrIjwvc3Bhbj4iLHMrPSI8L2xhYmVsPiJ9fXMrPSI8L2Zvcm0+IixhLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlZW5kIixzKX19ZnVuY3Rpb24gdF9zdG9yZV9vcHRpb25fZ2V0Q29sb3JWYWx1ZSh0LGUpe3ZhciByPSIjZmZmZmZmIjtmb3IodmFyIG8gaW4gZT1lLnRvU3RyaW5nKCksdCl7dmFyIGk9dFtvXTtpZihpLnZhbHVlPT09ZSl7cj1pLmNvbG9yO2JyZWFrfX1yZXR1cm4gcn1mdW5jdGlvbiB0X3N0b3JlX29wdGlvbl9nZXRDbGFzc01vZGlmaWNhdG9yKHQsZSxyKXtpZighdClyZXR1cm4iIjt2YXIgbz10LnBhcmFtcyxpPXIrIl8iK28udmlldztyZXR1cm4gby5oYXNDb2xvciYmby5saW5rSW1hZ2U/ImZpbHRlciI9PT1lPyhpPXIrIl9idXR0b25zIixpKz0iICIrcisiX2NvbG9yIik6aSs9IiAiK3IrIl9pbWFnZSI6by5oYXNDb2xvcj9pKz0iICIrcisiX2NvbG9yIjpvLmxpbmtJbWFnZT9pKz0iICIrcisiX2ltYWdlIjppKz0iICIrcisiX3NpbXBsZSIsaX1mdW5jdGlvbiB0X3N0b3JlX2NoZWNrVXJsKHQsZSl7dmFyIHI9d2luZG93LmxvY2F0aW9uLmhyZWYsbz1yLmluZGV4T2YoIi90cHJvZHVjdC8iKTtpZigvaVBob25lfGlQYWR8aVBvZC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJm88MCYmKG89ci5pbmRleE9mKCIvdHByb2R1Y3QvIikpPDAmJihvPXIuaW5kZXhPZigiJTJGdHByb2R1Y3QlMkYiKSksbz49MCl7dmFyIGk9KHI9ci5zdWJzdHJpbmcobyxyLmxlbmd0aCkpLnNwbGl0KCItIik7aWYodm9pZCAwPT09aVsxXSlyZXR1cm47dmFyIHM9aVsxXSxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWMiK2UpLG49YS5xdWVyeVNlbGVjdG9yKCcuanMtc3RvcmUtZ3JpZC1jb250IFtkYXRhLXByb2R1Y3QtZ2VuLXVpZD0iJytzKyciXScpLGQ9YS5xdWVyeVNlbGVjdG9yKCIudC1wb3B1cCIpO2lmKHIuaW5kZXhPZihlKT49MCYmbil7aWYoIWQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LXBvcHVwX3Nob3ciKSl7dmFyIGM9bi5xdWVyeVNlbGVjdG9yKCdbaHJlZl49IiNwcm9kcG9wdXAiXScpO2MmJmMuY2xpY2soKX19ZWxzZSBpZihyLmluZGV4T2YoZSk+PTAmJmQpe2lmKGQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LXBvcHVwX3Nob3ciKSlyZXR1cm47dmFyIGw7aWYoIShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpIT09ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtc3RvcmVfX3Byb2R1Y3Qtc25pcHBldCIpJiZkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpLmNvbnRhaW5zKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19wcm9kdWN0LXNuaXBwZXQiKSkpKXt2YXIgcD1mdW5jdGlvbiByKG8pe2lmKCJzdHJpbmciPT10eXBlb2YgbyYmInsiPT09by5zdWJzdHJpbmcoMCwxKSl7dmFyIGk7dHJ5e3ZhciBhO2k9SlNPTi5wYXJzZShvKS5wcm9kdWN0fWNhdGNoKG4pe2NvbnNvbGUubG9nKG4pfWlmKCFpKXJldHVybiB2b2lkIGNvbnNvbGUubG9nKCJDYW4ndCBnZXQgcHJvZHVjdCB3aXRoIHVpZCA9ICIrcysiIGluIHN0b3JlcGFydCA9ICIrdC5zdG9yZXBhcnQpO3Rfc3RvcmVfb3BlblByb2R1Y3RQb3B1cChlLHQsaSl9ZWxzZSBjb25zb2xlLmxvZygiQ2FuJ3QgZ2V0IHByb2R1Y3Qgd2l0aCB1aWQgPSAiK3MrIiBpbiBzdG9yZXBhcnQgPSAiK3Quc3RvcmVwYXJ0KX07dF9zdG9yZV9sb2FkT25lUHJvZHVjdChlLHQscyxwLChmdW5jdGlvbihyKXt0X3N0b3JlX2NoYW5nZUVuZHBvaW50KHIsKGZ1bmN0aW9uKCl7dF9zdG9yZV9sb2FkT25lUHJvZHVjdChlLHQscyxwKX0pKX0pKX19fX1mdW5jdGlvbiB0X3N0b3JlX3Nob3dQb3B1cCh0LGUscil7dmFyIG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlYyIrdCksaT1vLnF1ZXJ5U2VsZWN0b3IoIi50LXBvcHVwIik7dF9zdG9yZV9yZXNldE5hdlN0eWxlcyh0KSx0X3N0b3JlX3RyaWdnZXJFdmVudChkb2N1bWVudC5ib2R5LCJwb3B1cFNob3dlZCIpLGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgidC1ib2R5X3BvcHVwc2hvd2VkIiksaS5zdHlsZS5kaXNwbGF5PSJibG9jayI7dmFyIHM9aS5zY3JvbGxIZWlnaHQ+ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtzfHwoaS5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIiksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtpLnF1ZXJ5U2VsZWN0b3IoIi50LXBvcHVwX19jb250YWluZXIiKS5jbGFzc0xpc3QuYWRkKCJ0LXBvcHVwX19jb250YWluZXItYW5pbWF0ZWQiKSxpLmNsYXNzTGlzdC5hZGQoInQtcG9wdXBfc2hvdyIpLHRfc3RvcmVfdHJpZ2dlckV2ZW50KGRvY3VtZW50LmJvZHksInR3aXNobGlzdF9hZGRidG4iKSwieSIhPT13aW5kb3cubGF6eSYmInllcyIhPT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpLmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1sYXp5Iil8fHRfc3RvcmVfb25GdW5jTG9hZCgidF9sYXp5bG9hZF91cGRhdGUiLChmdW5jdGlvbigpe3RfbGF6eWxvYWRfdXBkYXRlKCl9KSkscz8oaS5zY3JvbGxUb3A9MCx0X3N0b3JlX3RyaWdnZXJFdmVudChpLHRfc3RvcmVfUE9QVVBfU0hPV0VEX0VWRU5UX05BTUUpKTpzZXRUaW1lb3V0KChmdW5jdGlvbigpe2kuc3R5bGUub3ZlcmZsb3c9ImF1dG8iLHRfc3RvcmVfdHJpZ2dlckV2ZW50KGksdF9zdG9yZV9QT1BVUF9TSE9XRURfRVZFTlRfTkFNRSl9KSwzMDApfSksNTApLHJ8fGFkZFBvcHVwRXZlbnRzKG8sdCl9ZnVuY3Rpb24gdF9zdG9yZV9jbG9zZVBvcHVwS2V5RG93bih0KXt2YXIgZSxyO2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LXpvb21lcl9fc2hvdyIpfHwoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoInQtem9vbWVyX19hY3RpdmUiKXx8Mjc9PT10LmtleUNvZGUmJnRfc3RvcmVfY2xvc2VQb3B1cCghMSkpfWZ1bmN0aW9uIGFkZFBvcHVwRXZlbnRzKHQpe3ZhciBlPWZ1bmN0aW9uIHQoZSl7ZS50YXJnZXQ9PT10aGlzJiZ0X3N0b3JlX2Nsb3NlUG9wdXAoITEpfTt0LnF1ZXJ5U2VsZWN0b3IoIi50LXBvcHVwIikucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLGUpLHQucXVlcnlTZWxlY3RvcigiLnQtcG9wdXAiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZSk7dmFyIHI9ZnVuY3Rpb24gdCgpe3Rfc3RvcmVfY2xvc2VQb3B1cCghMSl9O0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodC5xdWVyeVNlbGVjdG9yQWxsKCIudC1wb3B1cF9fY2xvc2UsIC5qcy1zdG9yZS1jbG9zZS10ZXh0IiksKGZ1bmN0aW9uKHQpe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHIpLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHIpfSkpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRfc3RvcmVfY2xvc2VQb3B1cEtleURvd24pO3ZhciBvPTMwLGk9MjAwLHM9dC5xdWVyeVNlbGVjdG9yQWxsKCIudC1wb3B1cF9fY2xvc2Utb3BhY2l0eS1zY3JvbGwiKTtpZihzLmxlbmd0aCl7dmFyIGE9ZnVuY3Rpb24gdChlKXt2YXIgcj1lLnNjcm9sbFRvcCgpLGE7YT1yPj1pPzE6cjw9bz8wOnIvaSxzLnN0eWxlLmJhY2tncm91bmRDbG9yPSJyZ2JhKDI1NSwyNTUsMjU1LCIrYSsiKSJ9O3QucXVlcnlTZWxlY3RvcigiLnQtcG9wdXAiKS5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLGEpLHQucXVlcnlTZWxlY3RvcigiLnQtcG9wdXAiKS5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLGEpfX1mdW5jdGlvbiB0X3N0b3JlX3Jlc2V0TmF2U3R5bGVzKHQpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWMiK3QpLnF1ZXJ5U2VsZWN0b3IoIi50LXBvcHVwX19jbG9zZSIpO2UuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LXBvcHVwX19jbG9zZS1zb2xpZCIpP2Uuc3R5bGUuYmFja2dyb3VuZENvbG9yPSJyZ2JhKDI1NSwyNTUsMjU1LDEpIjplLmNsYXNzTGlzdC5jb250YWlucygidC1wb3B1cF9fY2xvc2Utb3BhY2l0eS1zY3JvbGwiKSYmKGUuc3R5bGUuYmFja2dyb3VuZENvbG9yPSJyZ2JhKDI1NSwyNTUsMjU1LDApIil9ZnVuY3Rpb24gdF9zdG9yZV9jbG9zZVBvcHVwKHQsZSxyKXt2YXIgbz0vaVBob25lfGlQYWR8aVBvZC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksaT0vXigoPyFjaHJvbWV8YW5kcm9pZCkuKSpzYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLHMsYSxuLGQ7aWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKSE9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19wcm9kdWN0LXNuaXBwZXQiKSYmZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKS5jb250YWlucyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fcHJvZHVjdC1zbmlwcGV0IikpfHx0X3N0b3JlX2Nsb3NlUG9wdXBfcm91dGluZygpLEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnQtcG9wdXAiKSwoZnVuY3Rpb24odCl7dmFyIGU9dC5xdWVyeVNlbGVjdG9yKCIudC1zbGRzX19pdGVtX2FjdGl2ZSAudC1zbGRzX19mcmFtZSIpO2UmJmUuc3JjJiYtMSE9PWUuc3JjLmluZGV4T2YoIiZlbmFibGVqc2FwaT0xIikmJmUuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZSgneyJldmVudCI6ImNvbW1hbmQiLCJmdW5jIjoicGF1c2VWaWRlbyIsImFyZ3MiOiIifScsIioiKSx0LmNsYXNzTGlzdC5yZW1vdmUoInQtcG9wdXBfc2hvdyIpfSkpLHRfc3RvcmVfdHJpZ2dlckV2ZW50KGRvY3VtZW50LmJvZHksInBvcHVwSGlkZGVuIiksZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCJ0LWJvZHlfcG9wdXBzaG93ZWQiKSx0KWlmKHRfc3RvcmVfaXNRdWVyeUluQWRkcmVzc0JhcigidHN0b3JlIikpe3ZhciBjPWRlY29kZVVSSSh3aW5kb3cubG9jYXRpb24uaGFzaCkuc3BsaXQoIi8iKSxsPWMuaW5kZXhPZigiYyIpKzEscD1jLmluZGV4T2YoInIiKSsxLGEsXz1jW3BdO2E9LTEhPT1jW2xdLmluZGV4T2YoIi0iKT9jW2xdLnNsaWNlKDAsY1tsXS5pbmRleE9mKCItIikpOmNbbF0sd2luZG93Lmhpc3Rvcnkuc3RhdGUmJigobj13aW5kb3cuaGlzdG9yeS5zdGF0ZS5vcHRzKS5zdG9yZXBhcnQ9YSksdF9zdG9yZV9pc1N0b3JlcGFydEZyb21IaXN0b3J5QWN0aXZlKGEsZSxyKXx8dF9zdG9yZV9sb2FkUHJvZHVjdHMoIiIsXyxuKX1lbHNlIHRfc3RvcmVfaXNTdG9yZXBhcnRGcm9tSGlzdG9yeUFjdGl2ZShyLnN0b3JlcGFydCxlLHIpfHx0X3N0b3JlX2xvYWRQcm9kdWN0cygiIixlLHIpO2Vsc2UgaWYod2luZG93Lmhpc3Rvcnkuc3RhdGUmJndpbmRvdy5oaXN0b3J5LnN0YXRlLnByb2R1Y3REYXRhKXRyeXt2YXIgdT13aW5kb3cudXJsQmVmb3JlUG9wdXBPcGVuLGc9d2luZG93LnRpdGxlQmVmb3JlUG9wdXBPcGVuO3Rfc3RvcmVfaGlzdG9yeV9wdXNoU3RhdGUoe3N0b3JlcGFydHVpZDphPShkPXdpbmRvdy5oaXN0b3J5LnN0YXRlLnByb2R1Y3REYXRhKS5vcHRzLnN0b3JlcGFydCxvcHRzOnI9ZC5vcHRzLHJlY2lkOmU9ZC5yZWNpZH0sbnVsbCx1KSxvJiZpJiYoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZCBsaW5rW3JlbD0iY2Fub25pY2FsIl0nKS5zZXRBdHRyaWJ1dGUoImhyZWYiLHUpLGRvY3VtZW50LnRpdGxlPWcpfWNhdGNoKHkpe2NvbnNvbGUubG9nKHkpfWUmJihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjIitlKS5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtcGFydHMtc3dpdGNoZXIiKSYmIXIuaGlkZVN0b3JlUGFydHMmJnRfc3RvcmVfc2V0QWN0aXZlU3RvcmVQYXJ0KGUpLHIudGFicyYmdF9zdG9yZV9vbkZ1bmNMb2FkKCJ0X3N0b3JlX3RhYnNfdmlkZW9DbGVhckZyYW1lIiwoZnVuY3Rpb24oKXt0X3N0b3JlX3RhYnNfdmlkZW9DbGVhckZyYW1lKGUpfSkpKTt2YXIgdj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC1wb3B1cCIpO3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7di5zY3JvbGxUb3A9MCxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50LXBvcHVwOm5vdCgudC1wb3B1cF9zaG93KSIpLChmdW5jdGlvbih0KXt0LnN0eWxlLmRpc3BsYXk9Im5vbmUifSkpfSksMzAwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0X3N0b3JlX2Nsb3NlUG9wdXBLZXlEb3duKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix3aW5kb3cudF9zdG9yZV9wcm9kUG9wdXBfdXBkYXRlR2FsbGVyeVRodW1ic0V2ZW50KSx0X3N0b3JlX3RyaWdnZXJFdmVudChkb2N1bWVudC5ib2R5LCJ0d2lzaGxpc3RfYWRkYnRuIiksdF9zdG9yZV90cmlnZ2VyRXZlbnQodix0X3N0b3JlX1BPUFVQX0NMT1NFRF9FVkVOVF9OQU1FKX1mdW5jdGlvbiB0X3N0b3JlX2lzU3RvcmVwYXJ0RnJvbUhpc3RvcnlBY3RpdmUodCxlLHIpe3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWMiK2UpLGk7cmV0dXJuISghcnx8ci5zdG9yZVBhcnRzQXJyKXx8ISF0JiYodD1wYXJzZUludCh0LDEwKSxvLnF1ZXJ5U2VsZWN0b3IoIi5qcy1zdG9yZS1wYXJ0cy1zd2l0Y2hlci50LWFjdGl2ZSIpLmdldEF0dHJpYnV0ZSgiZGF0YS1zdG9yZXBhcnRVaWQiKT09PXQpfWZ1bmN0aW9uIHRfc3RvcmVfY2xvc2VQb3B1cF9yb3V0aW5nKCl7d2luZG93Lm9ucG9wc3RhdGU9ZnVuY3Rpb24oKXtpZih3aW5kb3cuaGlzdG9yeS5zdGF0ZSl7aWYod2luZG93Lmhpc3Rvcnkuc3RhdGUucHJvZHVjdERhdGEpe3ZhciB0PXdpbmRvdy5oaXN0b3J5LnN0YXRlLnByb2R1Y3REYXRhLGU9dC5yZWNpZCxyPXQub3B0cyxvLGk7dF9zdG9yZV9vcGVuUHJvZHVjdFBvcHVwKGUscix0LnByb2R1Y3RPYmosdC5pc1JlbGV2YW50c1Nob3csITApfWlmKHdpbmRvdy5oaXN0b3J5LnN0YXRlLnN0b3JlcGFydHVpZCl7dmFyIHM9d2luZG93Lmhpc3Rvcnkuc3RhdGUub3B0cyxhPXdpbmRvdy5oaXN0b3J5LnN0YXRlLnJlY2lkO3IuaXNQdWJsaXNoZWRQYWdlPSEwLHRfc3RvcmVfbG9hZFByb2R1Y3RzKCIiLGEscyl9fX19ZnVuY3Rpb24gdF9zdG9yZV9hcHBseUNvbnRyYXN0Q29sb3JJZk5lY2Vzc2FyeSh0LGUscil7dmFyIG87MD09PU1hdGguYWJzKHRfc3RvcmVfZ2V0TGlnaHRuZXNzQ29sb3IoZSktdF9zdG9yZV9nZXRMaWdodG5lc3NDb2xvcihyKSkmJih0LnN0eWxlLmNvbG9yPXRfc3RvcmVfbHVtYV9yZ2IocikpfWZ1bmN0aW9uIHRfc3RvcmVfY29weVR5cG9ncmFwaHlGcm9tTGVhZFRvUG9wdXAodCxlKXt2YXIgcj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjIit0KSxvPXIucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLWdyaWQtY29udCAuanMtc3RvcmUtcHJvZC1uYW1lIiksaT1yLnF1ZXJ5U2VsZWN0b3IoIi5qcy1zdG9yZS1ncmlkLWNvbnQgLmpzLXN0b3JlLXByb2QtZGVzY3IiKSxzPXIucXVlcnlTZWxlY3RvcigiLnQtcG9wdXAgLnQtcG9wdXBfX2NvbnRhaW5lciIpLGEsbjtpZihzJiYoYT1zLnN0eWxlLmJhY2tncm91bmRDb2xvciksbyl7dmFyIGQ9by5nZXRBdHRyaWJ1dGUoInN0eWxlIiksYz1yLnF1ZXJ5U2VsZWN0b3IoIi50LXBvcHVwIC5qcy1zdG9yZS1wcm9kLW5hbWUiKSxsO2lmKGMpaWYoYy5zZXRBdHRyaWJ1dGUoInN0eWxlIix0X3N0b3JlX3JlbW92ZVNpemVzRnJvbVN0eWxlc0xpbmUoZCkpLGEpdF9zdG9yZV9hcHBseUNvbnRyYXN0Q29sb3JJZk5lY2Vzc2FyeShjLGUudHlwby50aXRsZUNvbG9yLGEpfWkmJihuPWkuZ2V0QXR0cmlidXRlKCJzdHlsZSIpKSwhbiYmZSYmZS50eXBvJiZlLnR5cG8uZGVzY3ImJihuPShuPWUudHlwby5kZXNjcikucmVwbGFjZSgibGluZS1oZWlnaHQ6MDsiLCIiKSk7dmFyIHA9ci5xdWVyeVNlbGVjdG9yKCIudC1wb3B1cCAuanMtc3RvcmUtcHJvZC10ZXh0IiksXztwJiYocC5zZXRBdHRyaWJ1dGUoInN0eWxlIix0X3N0b3JlX3JlbW92ZVNpemVzRnJvbVN0eWxlc0xpbmUobikpLGEmJnRfc3RvcmVfYXBwbHlDb250cmFzdENvbG9ySWZOZWNlc3NhcnkocCxlLnR5cG8uZGVzY3JDb2xvcixhKSl9ZnVuY3Rpb24gdF9zdG9yZV9zbmlwcGV0X2NvcHlUeXBvZ3JhcGh5VG9TbmlwcGV0KHQsZSl7dmFyIHIsbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjIit0KS5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fcHJvZHVjdC1zbmlwcGV0IiksaT1lLnBvcHVwX29wdHMuY29udGFpbmVyQmdDb2xvcixzPW8ucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLXByb2QtbmFtZSIpO2lmKHMpe3ZhciBhPXMuZ2V0QXR0cmlidXRlKCJzdHlsZSIpLG47aWYocy5zZXRBdHRyaWJ1dGUoInN0eWxlIix0X3N0b3JlX3JlbW92ZVNpemVzRnJvbVN0eWxlc0xpbmUoYSkpLGkpdF9zdG9yZV9hcHBseUNvbnRyYXN0Q29sb3JJZk5lY2Vzc2FyeShzLGUudHlwby50aXRsZUNvbG9yLGkpfXZhciBkPW8ucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLXByb2QtdGV4dCIpO2lmKGQpe3ZhciBjPWQuZ2V0QXR0cmlidXRlKCJzdHlsZSIpLGw7aWYoZC5zZXRBdHRyaWJ1dGUoInN0eWxlIix0X3N0b3JlX3JlbW92ZVNpemVzRnJvbVN0eWxlc0xpbmUoYykpLGkpdF9zdG9yZV9hcHBseUNvbnRyYXN0Q29sb3JJZk5lY2Vzc2FyeShkLGUudHlwby5kZXNjckNvbG9yLGkpfXZhciBwPW8ucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLXByb2QtcHJpY2UiKSxfO3AmJmkmJnRfc3RvcmVfYXBwbHlDb250cmFzdENvbG9ySWZOZWNlc3NhcnkocCxlLnByaWNlLmNvbG9yLGkpO3ZhciB1PW8ucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLXByb2QtcHJpY2Utb2xkIiksZzt1JiZpJiZ0X3N0b3JlX2FwcGx5Q29udHJhc3RDb2xvcklmTmVjZXNzYXJ5KHUsZS5wcmljZS5jb2xvck9sZCxpKX1mdW5jdGlvbiB0X3N0b3JlX3JlbW92ZVNpemVzRnJvbVN0eWxlc0xpbmUodCl7dmFyIGUscjtyZXR1cm4gdD90LnNwbGl0KCI7IikuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4hdC5tYXRjaCgvKGZvbnQtc2l6ZXxwYWRkaW5nLSh0b3B8Ym90dG9tKSkvKX0pKS5qb2luKCI7Iik6IiJ9ZnVuY3Rpb24gdF9zdG9yZV9kcmF3UHJvZFBvcHVwX2RyYXdHYWxsZXJ5KHQsZSxyLG8pe3ZhciBpPTk4MCxzPSJodHRwczovL3N0YXRpYy50aWxkYWNkbi4iK3Rfc3RvcmVfX2dldFJvb3Rab25lKCkrIi9qcy90aWxkYS1jYXRhbG9nLXNsZHMtMS4wLm1pbi5qcyI7aWYod2luZG93LmpRdWVyeSYmZSBpbnN0YW5jZW9mIGpRdWVyeSl7aWYoMD09PWUubGVuZ3RoKXJldHVybjtlPWVbMF19aWYoZSl7dmFyIGE9ZS5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtcHJvZC1zbGlkZXIiKSxuO2lmKHIuZ2FsbGVyeSlpZigwIT09KG49InN0cmluZyI9PXR5cGVvZiByLmdhbGxlcnk/SlNPTi5wYXJzZShyLmdhbGxlcnkpOnIuZ2FsbGVyeSkubGVuZ3RoKXt2YXIgZD1mdW5jdGlvbiBhKCl7dmFyIGQ9e3JlY2lkOnQsZWxfcG9wdXA6ZSxwcm9kdWN0OnIsb3B0aW9uczpvLGdhbGxlcnlBcnI6bn0sYyxsPXdpbmRvdy5pc01vYmlsZXx8Im9udG91Y2hlbmQiaW4gZG9jdW1lbnQmJi0xIT09bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJBcHBsZVdlYktpdCIpP2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDp3aW5kb3cuaW5uZXJXaWR0aDtpZihvLmdhbGxlcnlTdHlsZSYmbD5pfHxvLnBvcHVwX29wdHMubW9iaWxlR2FsbGVyeVN0eWxlJiZsPD1pKXRfc3RvcmVfX2xvYWRKU0ZpbGUocywoZnVuY3Rpb24oKXt0X29uRnVuY0xvYWQoInRfc3RvcmVfX2luaXRDdXN0b21HYWxsZXJ5IiwoZnVuY3Rpb24oKXt0X3N0b3JlX19pbml0Q3VzdG9tR2FsbGVyeShkKX0pKX0pKTtlbHNle2lmKG8uZ2FsbGVyeVN0eWxlKXt2YXIgcD1lLnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19wcm9kLXBvcHVwX19pbmZvIik7cCYmcC5jbGFzc0xpc3QucmVtb3ZlKCJ0LXN0b3JlX19wcm9kLXBvcHVwX19jb2xfZml4ZWQiKX10X3N0b3JlX19pbml0RGVmYXVsdEdhbGxlcnkoZCl9fTtkKCksd2luZG93LnRfc3RvcmVfZHJhd1Byb2RQb3B1cF9yZXNpemVHYWxsZXJ5RXZlbnQmJndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHdpbmRvdy50X3N0b3JlX2RyYXdQcm9kUG9wdXBfcmVzaXplR2FsbGVyeUV2ZW50KSx3aW5kb3cudF9zdG9yZV9kcmF3UHJvZFBvcHVwX3Jlc2l6ZUdhbGxlcnlFdmVudD1mdW5jdGlvbigpe3ZhciB0LGU9d2luZG93LmlzTW9iaWxlfHwib250b3VjaGVuZCJpbiBkb2N1bWVudCYmLTEhPT1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkFwcGxlV2ViS2l0Iik/ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoOndpbmRvdy5pbm5lcldpZHRoLHI9Ii5qcy1zdG9yZS1kZXNrdG9wLWN1c3RvbS1nYWxsZXJ5IixzPSIuanMtc3RvcmUtbW9iaWxlLWN1c3RvbS1nYWxsZXJ5IixuPW8uZ2FsbGVyeVN0eWxlfHwiIixjLGwscD1uJiYtMSE9PVsiY29sMV9maXhlZCIsImNvbDJfZml4ZWQiXS5pbmRleE9mKG4pJiZlPmksXyx1PShvLnBvcHVwX29wdHMubW9iaWxlR2FsbGVyeVN0eWxlfHwiIikmJmU8PWk7aWYoby5nYWxsZXJ5U3R5bGUmJmU+PWl8fG8ucG9wdXBfb3B0cy5tb2JpbGVHYWxsZXJ5U3R5bGUmJmU8aSl7aWYoYS5xdWVyeVNlbGVjdG9yKHIpJiZwfHxhLnF1ZXJ5U2VsZWN0b3IocykmJnUpcmV0dXJufWVsc2UgaWYoYS5xdWVyeVNlbGVjdG9yKCIudC1zbGRzIikpcmV0dXJuO2QoKX0sd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdF90aHJvdHRsZSh3aW5kb3cudF9zdG9yZV9kcmF3UHJvZFBvcHVwX3Jlc2l6ZUdhbGxlcnlFdmVudCkpfWVsc2UgYSYmKGEuaW5uZXJIVE1MPSIiKTtlbHNlIGEmJihhLmlubmVySFRNTD0iIil9fWZ1bmN0aW9uIHRfc3RvcmVfX2luaXREZWZhdWx0R2FsbGVyeSh0KXt2YXIgZT10LmVsX3BvcHVwO2lmKGUpe3ZhciByPXQub3B0aW9ucztpZihyKXt2YXIgbz10LmdhbGxlcnlBcnI7aWYobyl7dmFyIGk9dC5wcm9kdWN0O2lmKGkpe3ZhciBzPXQucmVjaWR8fCIiLGEsbj10X3N0b3JlX2dldF9wcm9kdWN0Y2FyZF9zbGlkZXJfaHRtbChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjIitzKSxyKSxkPSIiLGM9IiIsbD0idGh1bWJzIj09PXIuc2xpZGVyX29wdHMuY29udHJvbHN8fCJhcnJvd3N0aHVtYnMiPT09ci5zbGlkZXJfb3B0cy5jb250cm9sc3x8ImRvdHMiPT09ci5zbGlkZXJfb3B0cy5jb250cm9sc3x8IiI9PT1yLnNsaWRlcl9vcHRzLmNvbnRyb2xzLHA9InRodW1icyI9PT1yLnNsaWRlcl9vcHRzLmNvbnRyb2xzfHwiYXJyb3dzdGh1bWJzIj09PXIuc2xpZGVyX29wdHMuY29udHJvbHMsXz1wYXJzZUludChyLnBvcHVwX29wdHMuY29sdW1ucywxMCksdT0rci5zbGlkZXJfc2xpZGVzT3B0cy5yYXRpbyxnPTYwLHY9MTAseSxtO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwobywoZnVuY3Rpb24odCxlKXt2YXIgaT10X3N0b3JlX2dldF9wcm9kdWN0Y2FyZF9vbmVTbGlkZV9odG1sKHIsdCk7aWYoZCs9aS5yZXBsYWNlKCJbW2FjdGl2ZUNsYXNzXV0iLDA9PT1lPyJ0LXNsZHNfX2l0ZW1fYWN0aXZlIjoiIikucmVwbGFjZSgiW1twcm9kdWN0Q2xhc3NdXSIsMD09PWU/ImpzLXByb2R1Y3QtaW1nIjoiIikucmVwbGFjZSgvXFtcW2luZGV4XF1cXS9nLGUrMSkucmVwbGFjZSgvXFtcW2ltZ3NvdXJjZV9sYXp5XF1cXS9nLHRfc3RvcmVfZ2V0TGF6eVVybChyLHQuaW1nKSkucmVwbGFjZSgvXFtcW2ltZ3NvdXJjZVxdXF0vZyx0LmltZykucmVwbGFjZSgvXFtcW2ltZ2FsdHRleHRcXVxdL2csdF9zdG9yZV9lc2NhcGVRdW90ZSh0LmFsdCkpLGwpaWYocCYmImwiPT09ci5zbGlkZXJ0aHVtYnNzaWRlKXt2YXIgcz10X3N0b3JlX3Byb2RQb3B1cF9nYWxsZXJ5X2NhbGNNYXhUaHVtYnNDb3VudChfLHUsZyx2KTtlPD1zLTEmJihlPD1zLTJ8fGU9PT1vLmxlbmd0aC0xPyh5PXRfc3RvcmVfZ2V0X3Byb2R1Y3RjYXJkX29uZVNsaWRlckJ1bGxldF9odG1sKHIpLG09eS5yZXBsYWNlKCJbW3ZpZGVvUGxheUljb25dXSIsIiIpLnJlcGxhY2UoIltbYWN0aXZlQ2xhc3NdXSIsMD09PWU/InQtc2xkc19fYnVsbGV0X2FjdGl2ZSI6IiIpLnJlcGxhY2UoL1xbXFtpbmRleFxdXF0vZyxlKzEpLnJlcGxhY2UoL1xbXFtpbWdzb3VyY2VfbGF6eVxdXF0vZyx0X3N0b3JlX2dldExhenlVcmwocix0LmltZykpLnJlcGxhY2UoL1xbXFtpbWdzb3VyY2VcXVxdL2csdC5pbWcpLnJlcGxhY2UoL1xbXFtpbWdhbHR0ZXh0XF1cXS9nLHRfc3RvcmVfZXNjYXBlUXVvdGUodC5hbHQpKSk6KHk9dF9zdG9yZV9nZXRfcHJvZHVjdGNhcmRfdGh1bWJzR2FsbGVyeV9odG1sKHIsby5sZW5ndGgscyksbT15LnJlcGxhY2UoIltbYWN0aXZlQ2xhc3NdXSIsMD09PWU/InQtc2xkc19fYnVsbGV0X2FjdGl2ZSI6IiIpLnJlcGxhY2UoL1xbXFtpbmRleFxdXF0vZyxlKzEpLnJlcGxhY2UoL1xbXFtpbWdzb3VyY2VfbGF6eVxdXF0vZyx0X3N0b3JlX2dldExhenlVcmwocix0LmltZykpLnJlcGxhY2UoL1xbXFtpbWdzb3VyY2VcXVxdL2csdC5pbWcpLnJlcGxhY2UoL1xbXFtpbWdhbHR0ZXh0XF1cXS9nLHRfc3RvcmVfZXNjYXBlUXVvdGUodC5hbHQpKSksYys9bSl9ZWxzZSB5PXRfc3RvcmVfZ2V0X3Byb2R1Y3RjYXJkX29uZVNsaWRlckJ1bGxldF9odG1sKHIpLG09eS5yZXBsYWNlKCJbW3ZpZGVvUGxheUljb25dXSIsdC52aWRlbz8nPGRpdiBjbGFzcz0idC1zbGRzX19wbGF5X2ljb24iPicrdF9zdG9yZV9zdmdWaWRlb0ljb24ocikrIjwvZGl2PiI6IiIpLnJlcGxhY2UoIltbYWN0aXZlQ2xhc3NdXSIsMD09PWU/InQtc2xkc19fYnVsbGV0X2FjdGl2ZSI6IiIpLnJlcGxhY2UoL1xbXFtpbmRleFxdXF0vZyxlKzEpLnJlcGxhY2UoL1xbXFtpbWdzb3VyY2VfbGF6eVxdXF0vZyx0X3N0b3JlX2dldExhenlVcmwocix0LmltZykpLnJlcGxhY2UoL1xbXFtpbWdzb3VyY2VcXVxdL2csdC5pbWcpLnJlcGxhY2UoL1xbXFtpbWdhbHR0ZXh0XF1cXS9nLHRfc3RvcmVfZXNjYXBlUXVvdGUodC5hbHQpKSxjKz1tfSkpLG49bi5yZXBsYWNlKCJbW3NsaWRlc11dIixkKSxsJiYobj1uLnJlcGxhY2UoIltbYnVsbGV0c11dIixjKSk7dmFyIGY9ZS5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtcHJvZC1zbGlkZXIiKTtmJiYoZi5pbm5lckhUTUw9biksdF9zdG9yZV9nYWxsZXJ5VmlkZW9IYW5kbGUocyk7dmFyIGg9Ii50LXNsZHNfX2Fycm93X2NvbnRhaW5lciwgLnQtc2xkc19fYnVsbGV0X3dyYXBwZXIsIC50LXNsZHNfX3RodW1ic2J1bGxldC13cmFwcGVyIix3PWUucXVlcnlTZWxlY3RvckFsbChoKSxiO3cmJigxPT09by5sZW5ndGg/QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh3LChmdW5jdGlvbih0KXt0LnN0eWxlLmRpc3BsYXk9Im5vbmUifSkpOkFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodywoZnVuY3Rpb24odCl7dC5zdHlsZS5kaXNwbGF5PSIifSkpKSwibCI9PT1yLnNsaWRlcnRodW1ic3NpZGUmJihiPXt0aHVtYnNidWxsZXRHYWxsZXJ5OiEwLHN0b3JlT3B0aW9uczpyfSksc2V0VGltZW91dCgoZnVuY3Rpb24oKXt0X3N0b3JlX29uRnVuY0xvYWQoInRfc2xkc0luaXQiLChmdW5jdGlvbigpe3Rfc2xkc0luaXQocysiIC5qcy1zdG9yZS1wcm9kdWN0IixiKTt2YXIgdD10X3N0b3JlX3Byb2R1Y3RfZGV0ZWN0RWRpdGlvbkJ5Q29udHJvbHMoZSxpKTt0JiZ0X3N0b3JlX3Byb2R1Y3RfdXBkYXRlRWRpdGlvbl9tb3ZlU2xpZGVyKHMsZSx0KX0pKX0pLDIwMCl9fX19fWZ1bmN0aW9uIHRfc3RvcmVfZ2FsbGVyeVZpZGVvSGFuZGxlKHQpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWMiK3QpO2lmKGUpe3ZhciByPWUucXVlcnlTZWxlY3RvckFsbCgiLnQtc2xkc19fcGxheV9pY29uIik7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChyLChmdW5jdGlvbih0KXt0JiZ0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBhcmVudE5vZGUscj10LnF1ZXJ5U2VsZWN0b3IoIi50LXNsZHNfX2ZyYW1lLXdyYXBwZXIiKTtyfHwoKHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmNsYXNzTGlzdC5hZGQoInQtc2xkc19fZnJhbWUtd3JhcHBlciIpLHRoaXMuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJhZnRlcmVuZCIscikpLHIuc3R5bGUuekluZGV4PTM7dmFyIG89dGhpcy5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXZpZGVvLXR5cGUiKSxpPXRoaXMuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci12aWRlby11cmwiKSxzPXRoaXMuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci12aWRlby1oYXNoIiksYT10aGlzLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItdmlkZW8tdGltZSIpLG49dGhpcy5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXZpZGVvLXBhcmFtcyIpLGQsYz10X3N0b3JlX19nZXRWaWRlb0VsZW1lbnQobyx7dmlkZW9JZDppLHZpZGVvSGFzaDpzLHZpZGVvVGltZTphLHZrT0lEOnRoaXMuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci12aWRlby1vaWQiKSx2aWRlb1BhcmFtczpufSk7aWYoYyl7ci5pbm5yZUh0bWw9IiIsci5hcHBlbmRDaGlsZChjKTt2YXIgbD1mdW5jdGlvbiB0KCl7Yy5yZW1vdmUoKSxyLnN0eWxlLnpJbmRleD0iIn07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9wdXBIaWRkZW4iLGwse29uY2U6ITB9KTt2YXIgcD1lLnF1ZXJ5U2VsZWN0b3IoIi50LXNsZHNfX2l0ZW1zLXdyYXBwZXIiKTtwJiZwLmFkZEV2ZW50TGlzdGVuZXIoInNsaWRlQ2hhbmdlU3RhcnQiLGwse29uY2U6ITB9KTt2YXIgXz10LmNsb3Nlc3QoIi5qcy1wcm9kdWN0Iik7XyYmXy5hZGRFdmVudExpc3RlbmVyKCJ0U3RvcmVWYXJpYW50Q2hhbmdlIixsLHtvbmNlOiEwfSl9fSkpfSkpfX1mdW5jdGlvbiB0X3N0b3JlX19nZXRWaWRlb0VsZW1lbnQodCxlKXtpZih0KXt2YXIgcj1lLnZpZGVvSWQsbz1lLnZpZGVvSGFzaCxpPWUudmlkZW9UaW1lLHM9ZS52a09JRCxhPWUudmlkZW9QYXJhbXMsbixkLGM9e3lvdXR1YmU6e2Jhc2VVcmw6Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyIrcixwYXJhbXM6WyJyZWw9MCIsImZtdD0xOCIsImh0bWw1PTEiLCJzaG93aW5mbz0wIiwiYXV0b3BsYXk9MSIsIm11dGVkPTEiLCJlbmFibGUiLGkmJiJzdGFydD0iK2ldfSx2aW1lbzp7YmFzZVVybDoiaHR0cHM6Ly9wbGF5ZXIudmltZW8uY29tL3ZpZGVvLyIrcixwYXJhbXM6WyJ0aXRsZT0wIiwiYnlsaW5lPTAiLCJwb3J0cmFpdD0wIiwiYmFkZ2U9MCIsImNvbG9yPWZmZmZmZiIsImF1dG9wbGF5PTEiLCJtdXRlZD0xIixvJiYiaD0iK29dLGhhc2h0YWc6aT8iI3Q9IitpOiIifSxraW5lc2NvcGU6e2Jhc2VVcmw6Imh0dHBzOi8va2luZXNjb3BlLmlvL2VtYmVkLyIrcixwYXJhbXM6WyJhdXRvcGxheT0xIiwibXV0ZWQ9MSIsaSYmInQ9IitpXX0scnV0dWJlOntiYXNlVXJsOiJodHRwczovL3J1dHViZS5ydS9lbWJlZC8iK3IscGFyYW1zOlsiYXV0b3BsYXk9MSIsIm11dGVkPTEiLGkmJiJ0PSIraSxvJiYicD0iK29dfSx2azp7YmFzZVVybDoiaHR0cHM6Ly92ay5jb20vdmlkZW9fZXh0LnBocCIscGFyYW1zOlsianNfYXBpPTEiLCJoZD0yIiwiYXV0b3BsYXk9MSIsIm11dGVkPTEiLCJpZD0iK3IsIm9pZD0iK3MsbyYmImhhc2g9IitvLGkmJiJ0PSIraV19fVt0LnJlcGxhY2UoL1wuY29tLywiIildO2lmKGMpe3ZhciBsPWMuYmFzZVVybCxwPWMucGFyYW1zLF89Yy5oYXNodGFnLHU9dm9pZCAwPT09Xz8iIjpfLGcsdjtyZXR1cm4gYSYmcC5wdXNoKGEpLHkobCsiPyIrcC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkpLmpvaW4oIiYiKSt1KX19ZnVuY3Rpb24geSh0LGUpe3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpO2Zvcih2YXIgbyBpbiByLnNyYz10LHIuY2xhc3NMaXN0LmFkZCgidC1zbGRzX19mcmFtZSIpLHIud2lkdGg9IjEwMCUiLHIuaGVpZ2h0PSIxMDAlIixyLmZyYW1lQm9yZGVyPSIwIixyLmFsbG93RnVsbHNjcmVlbj0hMCxyLnNldEF0dHJpYnV0ZSgibW96YWxsb3dmdWxsc2NyZWVuIiwidHJ1ZSIpLHIuc2V0QXR0cmlidXRlKCJtc2FsbG93ZnVsbHNjcmVlbiIsInRydWUiKSxyLnNldEF0dHJpYnV0ZSgib2FsbG93ZnVsbHNjcmVlbiIsInRydWUiKSxyLnNldEF0dHJpYnV0ZSgid2Via2l0YWxsb3dmdWxsc2NyZWVuIiwidHJ1ZSIpLHIuc2Nyb2xsaW5nPSJubyIsci5hbGxvdz0iY2xpcGJvYXJkLXdyaXRlOyBhdXRvcGxheTsgZnVsbHNjcmVlbjsgcGljdHVyZS1pbi1waWN0dXJlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgYWNjZWxlcm9tZXRlcjsiLGUpZS5oYXNPd25Qcm9wZXJ0eShvKSYmci5zZXRBdHRyaWJ1dGUobyxlW29dKTtyZXR1cm4gcn19ZnVuY3Rpb24gdF9zdG9yZV9hZGRWaWRlb0ljb25Gb3JHYWxsZXJ5KHQsZSl7dmFyIHI9IiIsbz1lLnZpZGVvO2lmKG8pe3ZhciBpPWUudmlkZW9pZCxzPXZvaWQgMD09PWk/IiI6aSxhPWUudnR5cGUsbj12b2lkIDA9PT1hPyIiOmEsZD1lLnZoYXNoLGM9dm9pZCAwPT09ZD8iIjpkLGw9ZS52dGltZSxwPXZvaWQgMD09PWw/IiI6bCxfPWUudm9pZHx8IiIsdT0iIjsieW91dHViZS5jb20iPT09ZS52dHlwZSYmLTEhPT1vLmluZGV4T2YoIj92PSIrZS52aWRlb2lkKSYmLTEhPT0odT0odT1vLnNwbGl0KCI/dj0iK2UudmlkZW9pZClbMV0pLnJlcGxhY2UoLyZhbXA7L2csIiYiKSkuaW5kZXhPZigibG9vcD0xIikmJi0xPT09dS5pbmRleE9mKCImcGxheWxpc3Q9IikmJih1Kz0iJnBsYXlsaXN0PSIrZS52aWRlb2lkKSxyKz0nXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0LXNsZHNfX3ZpZGVvd3JhcHBlciI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idC1zbGRzX19wbGF5X2ljb24iXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtc2xpZGVyLXZpZGVvLXVybD0iJytzKyciXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtc2xpZGVyLXZpZGVvLXR5cGU9IicrbisnIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLXNsaWRlci12aWRlby1oYXNoPSInK2MrJyJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1zbGlkZXItdmlkZW8tb2lkPSInK18rJyJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1zbGlkZXItdmlkZW8tdGltZT0iJytwKyciXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtc2xpZGVyLXZpZGVvLXBhcmFtcz0iJyt1KyciXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgJyt0X3N0b3JlX3N2Z1ZpZGVvSWNvbih0KSsnXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idC1zbGRzX19mcmFtZS13cmFwcGVyIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2Pid9cmV0dXJuIHJ9ZnVuY3Rpb24gdF9zdG9yZV9zdmdWaWRlb0ljb24odCl7dmFyIGU9IiIscjtyZXR1cm4gZSs9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNzBweCIgaGVpZ2h0PSI3MHB4IiB2aWV3Qm94PSIwIDAgNjAgNjAiIHN0eWxlPSJ3aWR0aDoxMDAlO2hlaWdodDoxMDAlOyI+JyxlKz0nPGcgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9IiIgZmlsbC1ydWxlPSJldmVub2RkIj4nLGUrPSc8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjkxLjAwMDAwMCwgLTM1MTQuMDAwMDAwKSIgZmlsbD0iJysodC5zbGlkZXJfb3B0cy52aWRlb1BsYXllckljb25Db2xvcnx8IiNmZmYiKSsnIj4nLGUrPSc8cGF0aCBkPSJNNzIxLDM1NzQgQzczNy41Njg1NDIsMzU3NCA3NTEsMzU2MC41Njg1NCA3NTEsMzU0NCBDNzUxLDM1MjcuNDMxNDYgNzM3LjU2ODU0MiwzNTE0IDcyMSwzNTE0IEM3MDQuNDMxNDU4LDM1MTQgNjkxLDM1MjcuNDMxNDYgNjkxLDM1NDQgQzY5MSwzNTYwLjU2ODU0IDcwNC40MzE0NTgsMzU3NCA3MjEsMzU3NCBaIE03MTUsMzUzNCBMNzMyLDM1NDQuNSBMNzE1LDM1NTUgTDcxNSwzNTM0IFoiPjwvcGF0aD4nLGUrPSI8L2c+IixlKz0iPC9nPiIsZSs9Ijwvc3ZnPiJ9ZnVuY3Rpb24gdF9zdG9yZV9wcm9kUG9wdXBfdXBkYXRlR2FsbGVyeVRodW1icyh0LGUscixvKXt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjIit0KSxzLGE7aWYoISgidGh1bWJzIj09PW8uc2xpZGVyX29wdHMuY29udHJvbHN8fCJhcnJvd3N0aHVtYnMiPT09by5zbGlkZXJfb3B0cy5jb250cm9scykmJiJsIj09PW8uc2xpZGVydGh1bWJzc2lkZSYmci5nYWxsZXJ5KXtzPSJzdHJpbmciPT10eXBlb2Ygci5nYWxsZXJ5P0pTT04ucGFyc2Uoci5nYWxsZXJ5KTpyLmdhbGxlcnk7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtcHJvZC1zbGlkZXIiKTtpZigwIT09cy5sZW5ndGgpe3ZhciBkPXBhcnNlSW50KG8ucG9wdXBfb3B0cy5jb2x1bW5zLDEwKSxjPStvLnNsaWRlcl9zbGlkZXNPcHRzLnJhdGlvLGw9NjAscD0xMCxfPWkucXVlcnlTZWxlY3RvckFsbCgiLnQtc2xkc19fdGh1bWJzYnVsbGV0IikubGVuZ3RoLHU9dF9zdG9yZV9wcm9kUG9wdXBfZ2FsbGVyeV9jYWxjTWF4VGh1bWJzQ291bnQoZCxjLGwscCksZyx2LHksbSxmO2lmKF8hPT11JiZzLmxlbmd0aD49dXx8Xzx1JiZfIT09cy5sZW5ndGgpQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChzLChmdW5jdGlvbih0LGUpe2U8PXUtMSYmKGU8PXUtMnx8ZT09PXMubGVuZ3RoLTE/KHY9dF9zdG9yZV9nZXRfcHJvZHVjdGNhcmRfb25lU2xpZGVyQnVsbGV0X2h0bWwobykseT12LnJlcGxhY2UoIltbdmlkZW9QbGF5SWNvbl1dIiwiIikucmVwbGFjZSgiW1thY3RpdmVDbGFzc11dIiwwPT09ZT8idC1zbGRzX19idWxsZXRfYWN0aXZlIjoiIikucmVwbGFjZSgvXFtcW2luZGV4XF1cXS9nLGUrMSkucmVwbGFjZSgvXFtcW2ltZ3NvdXJjZV9sYXp5XF1cXS9nLHRfc3RvcmVfZ2V0TGF6eVVybChvLHQuaW1nKSkucmVwbGFjZSgvXFtcW2ltZ3NvdXJjZVxdXF0vZyx0LmltZykucmVwbGFjZSgvXFtcW2ltZ2FsdHRleHRcXVxdL2csdF9zdG9yZV9lc2NhcGVRdW90ZSh0LmFsdCkpKToodj10X3N0b3JlX2dldF9wcm9kdWN0Y2FyZF90aHVtYnNHYWxsZXJ5X2h0bWwobyxzLmxlbmd0aCx1KSx5PXYucmVwbGFjZSgiW1thY3RpdmVDbGFzc11dIiwwPT09ZT8idC1zbGRzX19idWxsZXRfYWN0aXZlIjoiIikucmVwbGFjZSgvXFtcW2luZGV4XF1cXS9nLGUrMSkucmVwbGFjZSgvXFtcW2ltZ3NvdXJjZV9sYXp5XF1cXS9nLHRfc3RvcmVfZ2V0TGF6eVVybChvLHQuaW1nKSkucmVwbGFjZSgvXFtcW2ltZ3NvdXJjZVxdXF0vZyx0LmltZykucmVwbGFjZSgvXFtcW2ltZ2FsdHRleHRcXVxdL2csdF9zdG9yZV9lc2NhcGVRdW90ZSh0LmFsdCkpKSxnKz15KX0pKSxpLnF1ZXJ5U2VsZWN0b3IoIi50LXNsZHNfX3RodW1ic2J1bGxldC13cmFwcGVyIikuaW5uZXJIVE1MPWcsImwiPT09by5zbGlkZXJ0aHVtYnNzaWRlJiYoZj17dGh1bWJzYnVsbGV0R2FsbGVyeTohMCxzdG9yZU9wdGlvbnM6b30pLHRfc2xkc0luaXQodCsiIC5qcy1zdG9yZS1wcm9kdWN0IixmKSwieSIhPT13aW5kb3cubGF6eSYmInllcyIhPT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpLmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1sYXp5Iil8fHRfc3RvcmVfb25GdW5jTG9hZCgidF9sYXp5bG9hZF91cGRhdGUiLChmdW5jdGlvbigpe3RfbGF6eWxvYWRfdXBkYXRlKCl9KSl9ZWxzZSBuJiYobi5pbm5lckhUTUw9IiIpfX1mdW5jdGlvbiB0X3N0b3JlX3Byb2RQb3B1cF9nYWxsZXJ5X2NhbGNNYXhUaHVtYnNDb3VudCh0LGUscixvKXt2YXIgaT10X3N0b3JlX2dldENvbHVtbldpZHRoKHQpLHM9d2luZG93LmlubmVyV2lkdGh8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aHx8ZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDtzPj05NjAmJnM8PTEyNDAmJihpPTQ0MCk7dmFyIGE9TWF0aC5mbG9vcigxMDAqZSksbj1NYXRoLmZsb29yKGEqKGktKHIrbykpLzEwMCksZD1NYXRoLmZsb29yKG4vKHIrbykpO3JldHVybihyK28pKihkKzEpLW88PW4mJihkKz0xKSxkfWZ1bmN0aW9uIHRfc3RvcmVfZ2V0X3Byb2R1Y3RjYXJkX3NsaWRlcl9odG1sKHQsZSl7dmFyIHI9IiIsbz0idC1zbGRzX2FuaW1hdGVkLW5vbmUiLGk9IjMwMCI7ImZhc3QiPT09ZS5zbGlkZXJfb3B0cy5hbmltX3NwZWVkJiYobz0idC1zbGRzX2FuaW1hdGVkLWZhc3QiKSwic2xvdyI9PT1lLnNsaWRlcl9vcHRzLmFuaW1fc3BlZWQmJihvPSJ0LXNsZHNfYW5pbWF0ZWQtc2xvdyIsaT0iNTAwIik7dmFyIHM9IiIsYTtpZigoInRodW1icyI9PT1lLnNsaWRlcl9vcHRzLmNvbnRyb2xzfHwiYXJyb3dzdGh1bWJzIj09PWUuc2xpZGVyX29wdHMuY29udHJvbHMpJiYibCI9PT1lLnNsaWRlcnRodW1ic3NpZGUmJihzPSJ0LXNsZHNfX3RodW1ic2J1bGxldHMtd2l0aC1nYWxsZXJ5Iikscis9JzxkaXYgY2xhc3M9InQtc2xkcyAnK3MrJyIgc3R5bGU9InZpc2liaWxpdHk6IGhpZGRlbjsiPicscis9JyAgICA8ZGl2IGNsYXNzPSJ0LXNsZHNfX21haW4iPicscis9JyAgICAgICAgPGRpdiBjbGFzcz0idC1zbGRzX19jb250YWluZXIiIFtbY29udGFpbmVyU3R5bGVzXV0+JyxyKz0nICAgICAgICAgICAgPGRpdiBjbGFzcz0idC1zbGRzX19pdGVtcy13cmFwcGVyICcrbysnIFtbbm9DeWNsZUNsYXNzXV0iIGRhdGEtc2xpZGVyLXRyYW5zaXRpb249IicraSsnIiBkYXRhLXNsaWRlci13aXRoLWN5Y2xlPSJbW2lzQ3ljbGVkXV0iIGRhdGEtc2xpZGVyLWNvcnJlY3QtaGVpZ2h0PSJ0cnVlIiBkYXRhLWF1dG8tY29ycmVjdC1tb2JpbGUtd2lkdGg9ImZhbHNlIj4nLHIrPSIgICAgICAgICAgICAgICAgW1tzbGlkZXNdXSIscis9IiAgICAgICAgICAgIDwvZGl2PiIscis9IiAgICAgICAgICAgIFtbYXJyb3dzXV0iLHIrPSIgICAgICAgIDwvZGl2PiIscis9IiAgICA8L2Rpdj4iLHIrPSIgICAgW1tidWxsZXRzXV0iLHIrPSI8L2Rpdj4iLCJhcnJvd3MiPT09ZS5zbGlkZXJfb3B0cy5jb250cm9sc3x8ImFycm93c3RodW1icyI9PT1lLnNsaWRlcl9vcHRzLmNvbnRyb2xzfHwiIj09PWUuc2xpZGVyX29wdHMuY29udHJvbHMpe3ZhciBuLGQ9dC5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtdHBsLXNsaWRlci1hcnJvd3MiKS5pbm5lckhUTUwsYztkPSc8ZGl2IGNsYXNzPSInKygidC1zbGRzX19hcnJvd19jb250YWluZXIgIisoIiI9PT1lLnNsaWRlcl9vcHRzLmN5Y2xlPyJ0LXNsZHNfX25vY3ljbGUiOiIiKSkrJyI+JytkKyI8L2Rpdj4iLHI9ci5yZXBsYWNlKCJbW2Fycm93c11dIixkKX1lbHNlIHI9ci5yZXBsYWNlKCJbW2Fycm93c11dIiwiIik7aWYoInRodW1icyI9PT1lLnNsaWRlcl9vcHRzLmNvbnRyb2xzfHwiYXJyb3dzdGh1bWJzIj09PWUuc2xpZGVyX29wdHMuY29udHJvbHMpe3ZhciBsPSc8ZGl2IGNsYXNzPSJ0LXNsZHNfX3RodW1ic2J1bGxldC13cmFwcGVyICcrKCJjb250YWluIj09PWUuc2xpZGVyX3NsaWRlc09wdHMuYmdzaXplPyJ0LWFsaWduX2NlbnRlciI6IiIpKyciPltbYnVsbGV0c11dPC9kaXY+JztyPXIucmVwbGFjZSgiW1tidWxsZXRzXV0iLGwpfWVsc2Ugcj0iZG90cyI9PT1lLnNsaWRlcl9vcHRzLmNvbnRyb2xzfHwiIj09PWUuc2xpZGVyX29wdHMuY29udHJvbHM/ci5yZXBsYWNlKCJbW2J1bGxldHNdXSIsJzxkaXYgY2xhc3M9InQtc2xkc19fYnVsbGV0X3dyYXBwZXIiPltbYnVsbGV0c11dPC9kaXY+Jyk6ci5yZXBsYWNlKCJbW2J1bGxldHNdXSIsIiIpO3JldHVybiByPXIucmVwbGFjZSgiW1tjb250YWluZXJTdHlsZXNdXSIsZS5zbGlkZXJfb3B0cy5iZ2NvbG9yPydzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjonK2Uuc2xpZGVyX29wdHMuYmdjb2xvcisnOyInOiIiKS5yZXBsYWNlKCJbW25vQ3ljbGVDbGFzc11dIixlLnNsaWRlcl9vcHRzLmN5Y2xlPyIiOiJ0LXNsZHNfX25vY3ljbGUiKS5yZXBsYWNlKCJbW2lzQ3ljbGVkXV0iLGUuc2xpZGVyX29wdHMuY3ljbGU/InRydWUiOiJmYWxzZSIpfWZ1bmN0aW9uIHRfc3RvcmVfZ2V0X3Byb2R1Y3RjYXJkX29uZVNsaWRlX2h0bWwodCxlKXt2YXIgcj0iIjtyZXR1cm4gcis9JzxkaXYgY2xhc3M9InQtc2xkc19faXRlbSBbW2FjdGl2ZUNsYXNzXV0iIGRhdGEtc2xpZGUtaW5kZXg9IltbaW5kZXhdXSI+JyxyKz0nICAgIDxkaXYgY2xhc3M9InQtc2xkc19fd3JhcHBlciIgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwczovL3NjaGVtYS5vcmcvSW1hZ2VPYmplY3QiPicscis9JyAgICAgICAgPG1ldGEgaXRlbXByb3A9ImltYWdlIiBjb250ZW50PSJbW2ltZ3NvdXJjZV1dIj4nLHIrPScgICAgICAgIDxtZXRhIGl0ZW1wcm9wPSJjYXB0aW9uIiBjb250ZW50PSJbW2ltZ2FsdHRleHRdXSI+JyxyKz0nICAgICAgICA8ZGl2IGNsYXNzPSJ0LXNsZHNfX2ltZ3dyYXBwZXIgW1t6b29tQ2xhc3NdXSIgW1t6b29tQXR0cnNdXT4nLHIrPScgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0LXNsZHNfX2JnaW1nIFtbY29udGFpbkNsYXNzXV0gdC1iZ2ltZyBbW3Byb2R1Y3RDbGFzc11dIiBkYXRhLW9yaWdpbmFsPSJbW2ltZ3NvdXJjZV1dIiBzdHlsZT0icGFkZGluZy1ib3R0b206W1twYWRkaW5nQm90dG9tVmFsXV07IGJhY2tncm91bmQtaW1hZ2U6IHVybChcJ1tbaW1nc291cmNlX2xhenldXVwnKTsiPicscis9IiAgICAgICAgICAgIDwvZGl2PiIscis9IiAgICAgICAgPC9kaXY+IixyKz10X3N0b3JlX2FkZFZpZGVvSWNvbkZvckdhbGxlcnkodCxlKSxyKz0iICAgIDwvZGl2PiIscj0ocis9IjwvZGl2PiIpLnJlcGxhY2UoIltbem9vbUF0dHJzXV0iLHQuc2xpZGVyX3NsaWRlc09wdHMuem9vbWFibGU/J2RhdGEtem9vbS10YXJnZXQ9IltbaW5kZXhdXSIgZGF0YS16b29tYWJsZT0ieWVzIiBkYXRhLWltZy16b29tLXVybD0iW1tpbWdzb3VyY2VdXSInOiIiKS5yZXBsYWNlKCJbW3pvb21DbGFzc11dIix0LnNsaWRlcl9zbGlkZXNPcHRzLnpvb21hYmxlPyJ0LXpvb21hYmxlIjoiIikucmVwbGFjZSgiW1tjb250YWluQ2xhc3NdXSIsImNvbnRhaW4iPT09dC5zbGlkZXJfc2xpZGVzT3B0cy5iZ3NpemU/InQtc2xkc19fYmdpbWctY29udGFpbiI6IiIpLnJlcGxhY2UoIltbcGFkZGluZ0JvdHRvbVZhbF1dIiwxMDAqdC5zbGlkZXJfc2xpZGVzT3B0cy5yYXRpbysiJSIpfWZ1bmN0aW9uIHRfc3RvcmVfZ2V0X3Byb2R1Y3RjYXJkX29uZVNsaWRlckJ1bGxldF9odG1sKHQpe3ZhciBlPSIiO2lmKCJ0aHVtYnMiIT09dC5zbGlkZXJfb3B0cy5jb250cm9scyYmImFycm93c3RodW1icyIhPT10LnNsaWRlcl9vcHRzLmNvbnRyb2xzfHwoZSs9JzxkaXYgY2xhc3M9InQtc2xkc19fdGh1bWJzYnVsbGV0IHQtc2xkc19fYnVsbGV0IFtbYWN0aXZlQ2xhc3NdXSIgZGF0YS1zbGlkZS1idWxsZXQtZm9yPSJbW2luZGV4XV0iPicsZSs9IiAgICBbW3ZpZGVvUGxheUljb25dXSIsZSs9JyAgICA8ZGl2IGNsYXNzPSJ0LXNsZHNfX2JnaW1nIHQtYmdpbWciIGRhdGEtb3JpZ2luYWw9IltbaW1nc291cmNlXV0iIHN0eWxlPSJwYWRkaW5nLWJvdHRvbTogMTAwJTsgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwnW1tpbWdzb3VyY2VfbGF6eV1dXCcpOyI+PC9kaXY+JyxlKz0nICAgIDxkaXYgY2xhc3M9InQtc2xkc19fdGh1bWJzYnVsbGV0LWJvcmRlciI+PC9kaXY+JyxlKz0iPC9kaXY+IiksImRvdHMiPT09dC5zbGlkZXJfb3B0cy5jb250cm9sc3x8IiI9PT10LnNsaWRlcl9vcHRzLmNvbnRyb2xzKXtlKz0nPGRpdiBjbGFzcz0idC1zbGRzX19idWxsZXQgW1thY3RpdmVDbGFzc11dIiBkYXRhLXNsaWRlLWJ1bGxldC1mb3I9IltbaW5kZXhdXSI+JyxlKz0nICAgIDxkaXYgY2xhc3M9InQtc2xkc19fYnVsbGV0X2JvZHkiIFtbc3R5bGVzXV0+PC9kaXY+JyxlKz0iPC9kaXY+Ijt2YXIgcj0iIjtpZih0LnNsaWRlcl9kb3RzT3B0cy5zaXplKXt2YXIgbz1wYXJzZUludCh0LnNsaWRlcl9kb3RzT3B0cy5zaXplLDEwKTtyKz0id2lkdGg6Iisobz1vPjIwPzIwOm8pKyJweDtoZWlnaHQ6IitvKyJweDsifWlmKHQuc2xpZGVyX2RvdHNPcHRzLmJnY29sb3ImJihyKz0iYmFja2dyb3VuZC1jb2xvcjoiK3Quc2xpZGVyX2RvdHNPcHRzLmJnY29sb3IrIjsiKSx0LnNsaWRlcl9kb3RzT3B0cy5ib3JkZXJzaXplKXt2YXIgaT10LnNsaWRlcl9kb3RzT3B0cy5iZ2NvbG9yYWN0aXZlP3Quc2xpZGVyX2RvdHNPcHRzLmJnY29sb3JhY3RpdmU6IiMyMjIiO3IrPSJib3JkZXI6ICIrdC5zbGlkZXJfZG90c09wdHMuYm9yZGVyc2l6ZSsiIHNvbGlkICIraSsiOyJ9ZT1lLnJlcGxhY2UoIltbc3R5bGVzXV0iLCIiIT09cj8nc3R5bGU9IicrcisnIic6IiIpfXJldHVybiBlfWZ1bmN0aW9uIHRfc3RvcmVfZ2V0X3Byb2R1Y3RjYXJkX3RodW1ic0dhbGxlcnlfaHRtbCh0LGUscil7dmFyIG89IiIsaT1lLXI7aWYoInRodW1icyI9PT10LnNsaWRlcl9vcHRzLmNvbnRyb2xzfHwiYXJyb3dzdGh1bWJzIj09PXQuc2xpZGVyX29wdHMuY29udHJvbHMpe3ZhciBzPSJ0LXNsZHNfX3RodW1ic2J1bGxldCB0LXNsZHNfX2J1bGxldCB0LXNsZHNfX3RodW1ic19nYWxsZXJ5IFtbYWN0aXZlQ2xhc3NdXSI7dC5zbGlkZXJfc2xpZGVzT3B0cy56b29tYWJsZSYmKHMrPSIgdC1zbGRzX190aHVtYnNfZ2FsbGVyeS16b29tYWJsZSIpLG8rPSc8ZGl2IGNsYXNzPSInK3MrJyIgW1t6b29tQXR0cnNdXSBkYXRhLWdhbGxlcnktbGVuZ3RoPSInK2krJyIgZGF0YS1zbGlkZS1idWxsZXQtZm9yPSInK3IrJyI+JyxvKz0nICAgIDxkaXYgY2xhc3M9InQtc2xkc19fYmdpbWcgdC1iZ2ltZyIgZGF0YS1vcmlnaW5hbD0iW1tpbWdzb3VyY2VdXSIgc3R5bGU9InBhZGRpbmctYm90dG9tOiAxMDAlOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCdbW2ltZ3NvdXJjZV9sYXp5XV1cJyk7Ij48L2Rpdj4nLG8rPScgICAgPGRpdiBjbGFzcz0idC1zbGRzX190aHVtYnNidWxsZXQtYm9yZGVyIj48L2Rpdj4nLG89KG8rPSI8L2Rpdj4iKS5yZXBsYWNlKCJbW3pvb21BdHRyc11dIix0LnNsaWRlcl9zbGlkZXNPcHRzLnpvb21hYmxlPydkYXRhLXpvb20tdGFyZ2V0PSJbW2luZGV4XV0iIGRhdGEtem9vbWFibGU9InllcyIgZGF0YS1pbWctem9vbS11cmw9IltbaW1nc291cmNlXV0iJzoiIil9cmV0dXJuIG99ZnVuY3Rpb24gdF9zdG9yZV9nZXRMYXp5VXJsKHQsZSl7aWYoIXQuaXNQdWJsaXNoZWRQYWdlfHwieSIhPT13aW5kb3cubGF6eSlyZXR1cm4gZTtpZigtMT09PWUuaW5kZXhPZigic3RhdGljLnRpbGRhY2RuLiIrdF9zdG9yZV9fZ2V0Um9vdFpvbmUoKSkpcmV0dXJuIGU7dmFyIHI9ZS5zcGxpdCgiLyIpO3JldHVybiByLnNwbGljZShlLnNwbGl0KCIvIikubGVuZ3RoLTEsMCwiLS9yZXNpemViL3gyMCIpLHIuam9pbigiLyIpfWZ1bmN0aW9uIHRfc3RvcmVfZ2V0TGF6eVNyYyh0LGUpe2lmKCF0LmlzUHVibGlzaGVkUGFnZXx8InkiIT09d2luZG93LmxhenkpcmV0dXJuIGU7aWYoLTE9PT1lLmluZGV4T2YoIi50aWxkYWNkbi5jb20iKXx8LTEhPT1lLmluZGV4T2YoIi0vZW1wdHkvIil8fC0xIT09ZS5pbmRleE9mKCItL3Jlc2l6ZS8iKSlyZXR1cm4gZTt2YXIgcj1lLnNwbGl0KCIvIik7cmV0dXJuIHIuc3BsaWNlKGUuc3BsaXQoIi8iKS5sZW5ndGgtMSwwLCItL2VtcHR5Iiksci5qb2luKCIvIil9ZnVuY3Rpb24gdF9zdG9yZV9kaWN0KHQpe3JldHVybiB3aW5kb3cudFN0b3JlRGljdHx8dF9zdG9yZV9nZXREaWN0T2JqKCksd2luZG93LnRTdG9yZURpY3RbdF18fCdUZXh0IG5vdCBmb3VuZCBmb3IgIicrdCsnIid9ZnVuY3Rpb24gdF9zdG9yZV9lc2NhcGVRdW90ZSh0KXtpZighdClyZXR1cm4iIjt2YXIgZT17JyInOiImcXVvdDsiLCInIjoiJiMwMzk7In07cmV0dXJuIHQucmVwbGFjZSgvWyInXS9nLChmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0pKX1mdW5jdGlvbiB0X3N0b3JlX3Byb2R1Y3RfaW5pdEVkaXRpb25zKHQsZSxyLG8pe3ZhciBpPXIucXVlcnlTZWxlY3RvcigiLmpzLXByb2R1Y3QtY29udHJvbHMtd3JhcHBlciIpLHM7aWYodF9zdG9yZV9wcm9kdWN0X2FkZEVkaXRpb25Db250cm9scyhlLGksbyx0KSx0X3N0b3JlX3Byb2R1Y3Rfc2VsZWN0QXZhaWxhYmxlRWRpdGlvbih0LGUscixvKSl7dF9zdG9yZV9wcm9kdWN0X3RyaWdnZXJTb2xkT3V0TXNnKHIsITEsbyk7dmFyIGE9dF9zdG9yZV9wcm9kdWN0X2dldEZpcnN0QXZhaWxhYmxlRWRpdGlvbkRhdGEoZS5lZGl0aW9ucyk7YSYmdF9zdG9yZV9hZGRQcm9kdWN0UXVhbnRpdHkocixhLG8pLHRfc3RvcmVfcHJvZHVjdF9fdmVyaWZ5T3B0aW9uQ29uc2lzZW5jeShyLGUpLHRfc3RvcmVfcHJvZHVjdF9kaXNhYmxlVW5hdmFpbGVPcHRpb25zKHIsZSl9ZWxzZSB0X3N0b3JlX3Byb2R1Y3RfdHJpZ2dlclNvbGRPdXRNc2cociwhMCxvKSx0X3N0b3JlX3JlbW92ZVByb2R1Y3RRdWFudGl0eShyKSx0X3N0b3JlX3Byb2R1Y3RfZGlzYWJsZVVuYXZhaWxlT3B0aW9ucyhyLGUpO3ZhciBuLGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlYyIrdCkucXVlcnlTZWxlY3RvcigiLnQtc3RvcmUiKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHIucXVlcnlTZWxlY3RvckFsbCgiLmpzLXByb2R1Y3QtZWRpdGlvbi1vcHRpb24iKSwoZnVuY3Rpb24oaSl7aS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChmdW5jdGlvbigpe3ZhciBpPXRfc3RvcmVfcHJvZHVjdF9kZXRlY3RFZGl0aW9uQnlDb250cm9scyhyLGUpLHM9ITA7aWYoaSl7dF9zdG9yZV9wcm9kdWN0X3VwZGF0ZUVkaXRpb24odCxyLGksZSxvLHMpLHRfcHJvZF9fdXBkYXRlUHJpY2UocixvKTt2YXIgYT1wYXJzZUludChpLnF1YW50aXR5LDEwKTw9MDt0X3N0b3JlX3Byb2R1Y3RfdHJpZ2dlclNvbGRPdXRNc2cocixhLG8pLGE/dF9zdG9yZV9yZW1vdmVQcm9kdWN0UXVhbnRpdHkocik6dF9zdG9yZV9hZGRQcm9kdWN0UXVhbnRpdHkocixpLG8pLHdpbmRvdy5UaWxkYSYmVGlsZGEuc2VuZEVjb21tZXJjZUV2ZW50JiYod2luZG93LnRTdG9yZURldGFpbEV2ZW50fHwod2luZG93LnRTdG9yZURldGFpbEV2ZW50PXt9KSx3aW5kb3cudFN0b3JlRGV0YWlsRXZlbnRbaS5pZD9pLmlkOmkudWlkXXx8KFRpbGRhLnNlbmRFY29tbWVyY2VFdmVudCgiZGV0YWlsIixbe2lkOiIiKyhpLmlkP2kuaWQ6aS51aWQpLHVpZDoiIitpLnVpZCxwcmljZToiIisoaS5wcmljZV9taW4/aS5wcmljZV9taW46aS5wcmljZSksc2t1Omkuc2t1P2kuc2t1OiIiLG5hbWU6ZS50aXRsZX1dKSx3aW5kb3cudFN0b3JlRGV0YWlsRXZlbnRbaS5pZD9pLmlkOmkudWlkXT0hMCkpfWVsc2V7Zm9yKHZhciBuPXRoaXMuZ2V0QXR0cmlidXRlKCJkYXRhLWVkaXRpb24tb3B0aW9uLWlkIiksYz1bXSxsPTA7bDxlLmVkaXRpb25PcHRpb25zLmxlbmd0aDtsKyspe3ZhciBwPWUuZWRpdGlvbk9wdGlvbnNbbF07aWYoYy5wdXNoKHApLHAubmFtZT09PW4pYnJlYWt9dmFyIF89dF9zdG9yZV9wcm9kdWN0X3NlbGVjdEF2YWlsYWJsZUVkaXRpb24odCxlLHIsbyxjLHMpO3RfcHJvZF9fdXBkYXRlUHJpY2UocixvKSx0X3N0b3JlX3Byb2R1Y3RfdHJpZ2dlclNvbGRPdXRNc2cociwhXyxvKSx0X3N0b3JlX2FkZFByb2R1Y3RRdWFudGl0eShyLGUsbyl9ZCYmdF9zdG9yZV90cmlnZ2VyRXZlbnQoZCwiZGlzcGxheUNoYW5nZWQiKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHIucXVlcnlTZWxlY3RvckFsbCgiLmpzLXByb2R1Y3QtZWRpdGlvbi1vcHRpb24tdmFyaWFudHMgb3B0aW9uIiksKGZ1bmN0aW9uKHQpe3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpfSkpLHRfc3RvcmVfcHJvZHVjdF9fdmVyaWZ5T3B0aW9uQ29uc2lzZW5jeShyLGUpLHRfc3RvcmVfcHJvZHVjdF9kaXNhYmxlVW5hdmFpbGVPcHRpb25zKHIsZSl9KSl9KSl9ZnVuY3Rpb24gdF9zdG9yZV9wcm9kdWN0X2RldGVjdEVkaXRpb25CeUNvbnRyb2xzKHQsZSl7Zm9yKHZhciByPXRfc3RvcmVfb3B0aW9uX2dldE9wdGlvbnNEYXRhKCksbz0wO288ZS5lZGl0aW9ucy5sZW5ndGg7bysrKXt2YXIgaT1lLmVkaXRpb25zW29dLHM9ITA7ZS5lZGl0aW9uT3B0aW9uc3x8KGUuZWRpdGlvbk9wdGlvbnM9dF9zdG9yZV9wcm9kdWN0X2dldEVkaXRpb25PcHRpb25zQXJyKGUscikpO2Zvcih2YXIgYT0wO2E8ZS5lZGl0aW9uT3B0aW9ucy5sZW5ndGg7YSsrKXt2YXIgbj1lLmVkaXRpb25PcHRpb25zW2FdLGQ9dF9zdG9yZV9wcm9kdWN0X2dldEVkaXRpb25TZWxlY3RFbCh0LG4pLGMsbDtpZihkKWQucXVlcnlTZWxlY3RvcigiLmpzLXByb2R1Y3QtZWRpdGlvbi1vcHRpb24tdmFyaWFudHMiKS52YWx1ZSE9PWlbbi5uYW1lXSYmKHM9ITEpfWlmKHMpcmV0dXJuIGl9cmV0dXJuIG51bGx9ZnVuY3Rpb24gdF9zdG9yZV9wcm9kdWN0X2FkZEVkaXRpb25Db250cm9scyh0LGUscixvKXt2YXIgaT10X3N0b3JlX29wdGlvbl9nZXRPcHRpb25zRGF0YSgpLHM9dF9zdG9yZV9wcm9kdWN0X2dldEZpcnN0QXZhaWxhYmxlRWRpdGlvbkRhdGEodC5lZGl0aW9ucyk7dC5lZGl0aW9uT3B0aW9uc3x8KHQuZWRpdGlvbk9wdGlvbnM9dF9zdG9yZV9wcm9kdWN0X2dldEVkaXRpb25PcHRpb25zQXJyKHQsaSkpLHQuZWRpdGlvbk9wdGlvbnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dF9zdG9yZV9wcm9kdWN0X2FkZE9uZU9wdGlvbnNDb250cm9sKCJlZGl0aW9ub3B0Iix0LGUscixzLG8pfSkpfWZ1bmN0aW9uIHRfc3RvcmVfcHJvZHVjdF9zZWxlY3RBdmFpbGFibGVFZGl0aW9uKHQsZSxyLG8saSxzKXt2YXIgYT1pJiZpLmxlbmd0aD4wP3Rfc3RvcmVfcHJvZHVjdF9nZXRGaXJzdEF2YWlsYWJsZUVkaXRpb25EYXRhX2ZvckNlcnRhaW5WYWxzKGUuZWRpdGlvbnMsaSxyKTp0X3N0b3JlX3Byb2R1Y3RfZ2V0Rmlyc3RBdmFpbGFibGVFZGl0aW9uRGF0YShlLmVkaXRpb25zKTtpZighYSlyZXR1cm4gY29uc29sZS5sb2coIk5vIGF2YWlsYWJsZSBlZGl0aW9uIGZvciB1aWQgPSAiK2UudWlkKyIgd2l0aCBzZWxlY3RlZCBvcHRpb25zIHZhbHVlcyIpLCExO3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbGxyZWNvcmRzIiksZD1uJiYiZWRpdCI9PT1uLmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1tb2RlIiksYz1wYXJzZUludChhLnF1YW50aXR5LDEwKT4wfHwiIj09PWEucXVhbnRpdHk7aWYoQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLmVkaXRpb25PcHRpb25zLChmdW5jdGlvbih0KXt2YXIgZT1hW3QubmFtZV0saT10X3N0b3JlX3Byb2R1Y3RfZ2V0RWRpdGlvblNlbGVjdEVsKHIsdCk7aWYoaSl7dmFyIG49aS5xdWVyeVNlbGVjdG9yKCIuanMtcHJvZHVjdC1lZGl0aW9uLW9wdGlvbi12YXJpYW50cyIpO24mJihuLnZhbHVlPShlfHwiIikucmVwbGFjZSgvJmd0Oy9nLCI+IikucmVwbGFjZSgvJmx0Oy9nLCI8IikucmVwbGFjZSgvJiM5MjsvZywiXFwiKSxvLnByb2RDYXJkJiZvLnByb2RDYXJkLnNob3dPcHRzJiYocz0hMCkpO3ZhciBjPWkucXVlcnlTZWxlY3RvckFsbCgiLnQtcHJvZHVjdF9fb3B0aW9uLXZhcmlhbnRzX2N1c3RvbSIpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoYywoZnVuY3Rpb24odCl7dmFyIHI9dC5xdWVyeVNlbGVjdG9yQWxsKCIudC1wcm9kdWN0X19vcHRpb24taXRlbSIpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwociwoZnVuY3Rpb24odCl7dmFyIHI9dC5xdWVyeVNlbGVjdG9yKCIudC1wcm9kdWN0X19vcHRpb24taW5wdXQiKTtyLnZhbHVlPT09KGV8fCIiKS5yZXBsYWNlKC8mYW1wOy9nLCImIik/KHQuY2xhc3NMaXN0LmFkZCgidC1wcm9kdWN0X19vcHRpb24taXRlbV9hY3RpdmUiKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3IuY2hlY2tlZD0hMCxkfHxyLmNsaWNrKCl9KSksby5wcm9kQ2FyZCYmby5wcm9kQ2FyZC5zaG93T3B0cyYmKHM9ITApKTooci5jaGVja2VkPSExLHQuY2xhc3NMaXN0LnJlbW92ZSgidC1wcm9kdWN0X19vcHRpb24taXRlbV9hY3RpdmUiKSl9KSl9KSl9fSkpLHIuY2xhc3NMaXN0LmNvbnRhaW5zKCJqcy1wcm9kdWN0LXJlbGV2YW50IikpdF9zdG9yZV9wcm9kdWN0X3VwZGF0ZUVkaXRpb24odCxyLGEsZSxvLHMpO2Vsc2V7dmFyIGwscD10X3N0b3JlX3NuaXBwZXRfZ2V0SnNvbkZyb21VcmwoKS5lZGl0aW9udWlkLF87cCYmZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3JlYyIrdCsiIC5qcy1wcm9kdWN0IikuZ2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtdWlkIikhPT1wJiZlLmVkaXRpb25zLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QudWlkPT09cCYmKF89dCl9KSksdF9zdG9yZV9wcm9kdWN0X3VwZGF0ZUVkaXRpb24odCxyLF98fGEsZSxvLHMpfXJldHVybiBjfWZ1bmN0aW9uIHRfc3RvcmVfcHJvZHVjdF9fdmVyaWZ5T3B0aW9uQ29uc2lzZW5jeSh0LGUpe3ZhciByPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbGxyZWNvcmRzIiksbz1yJiYiZWRpdCI9PT1yLmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1tb2RlIiksaT1bXTtlLmVkaXRpb25PcHRpb25zLmxlbmd0aD4wJiZpLnB1c2goZS5lZGl0aW9uT3B0aW9uc1swXSk7Zm9yKHZhciBzPTE7czxlLmVkaXRpb25PcHRpb25zLmxlbmd0aDtzKyspe3ZhciBhPWUuZWRpdGlvbk9wdGlvbnNbc10sbj10X3N0b3JlX3Byb2R1Y3RfZ2V0RWRpdGlvblNlbGVjdEVsKHQsYSk7aWYoIW4pcmV0dXJuO2kucHVzaChhKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGEudmFsdWVzLChmdW5jdGlvbihyKXt2YXIgcz10X3N0b3JlX3Byb2R1Y3RfZ2V0Rmlyc3RBdmFpbGFibGVFZGl0aW9uRGF0YV9mb3JDZXJ0YWluVmFscyhlLmVkaXRpb25zLGksdCxyKSxhPShyfHwiIikucmVwbGFjZSgvXFwvZywiXFxcXCIpLnJlcGxhY2UoLyZhbXA7L2csIiYiKS5yZXBsYWNlKC8iL2csJ1xcIicpLGQ9bi5xdWVyeVNlbGVjdG9yKCdvcHRpb25bdmFsdWU9IicrYSsnIl0nKSxjPW4ucXVlcnlTZWxlY3RvcignLnQtcHJvZHVjdF9fb3B0aW9uLWlucHV0W3ZhbHVlPSInK2ErJyJdJyk7aWYocyl7dmFyIGw7aWYoZCYmZC5yZW1vdmVBdHRyaWJ1dGUoImRpc2FibGVkIiksYykobD1jLmNsb3Nlc3QoIi50LXByb2R1Y3RfX29wdGlvbi1pdGVtIikpLmNsYXNzTGlzdC5yZW1vdmUoInQtcHJvZHVjdF9fb3B0aW9uLWl0ZW1fZGlzYWJsZWQiKSxkJiZkLnBhcmVudE5vZGUudmFsdWU9PT1hJiYob3x8Yy5jbGljaygpKX1lbHNle2lmKGQmJihkLnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCJkaXNhYmxlZCIpLGQuc2VsZWN0ZWQpKXtkLnNlbGVjdGVkPSExO3ZhciBwPWQuY2xvc2VzdCgiLmpzLXByb2R1Y3QtZWRpdGlvbi1vcHRpb24tdmFyaWFudHMiKTtwJiZ0X3N0b3JlX3RyaWdnZXJFdmVudChwLCJjaGFuZ2UiKX12YXIgbDtpZihjKShsPWMuY2xvc2VzdCgiLnQtcHJvZHVjdF9fb3B0aW9uLWl0ZW0iKSkuY2xhc3NMaXN0LmFkZCgidC1wcm9kdWN0X19vcHRpb24taXRlbV9kaXNhYmxlZCIpLGwuY2xhc3NMaXN0LnJlbW92ZSgidC1wcm9kdWN0X19vcHRpb24taXRlbV9hY3RpdmUiKSxjLmNoZWNrZWQ9ITF9fSkpfX1mdW5jdGlvbiB0X3N0b3JlX3Byb2R1Y3RfZGlzYWJsZVVuYXZhaWxlT3B0aW9ucyh0LGUpe3ZhciByO2lmKCFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudDExMjIiKSYmMCE9PWUuZWRpdGlvbk9wdGlvbnMubGVuZ3RoKXt2YXIgbz10LmdldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LWdlbi11aWQiKTsoIXdpbmRvdy50U3RvcmVEaXNhYmxlZE9wdGlvbnNMaXN0fHx3aW5kb3cudFN0b3JlRGlzYWJsZWRPcHRpb25zTGlzdCYmIXdpbmRvdy50U3RvcmVEaXNhYmxlZE9wdGlvbnNMaXN0W29dKSYmdF9zdG9yZV9wcm9kdWN0X2dlbmVyYXRlT3B0aW9uc0xpc3RGb3JEaXNhYmxlKHQsZSk7dmFyIGk9d2luZG93LnRTdG9yZURpc2FibGVkT3B0aW9uc0xpc3Rbb107aSYmMCE9PWkubGVuZ3RoJiZBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGksKGZ1bmN0aW9uKGUpe09iamVjdC5rZXlzKGUpLmZvckVhY2goKGZ1bmN0aW9uKHIpe3ZhciBvPXQucXVlcnlTZWxlY3RvcignLmpzLXByb2R1Y3QtZWRpdGlvbi1vcHRpb25bZGF0YS1lZGl0aW9uLW9wdGlvbi1pZD0iJysocnx8IiIpLnJlcGxhY2UoLyIvZywnXFwiJykrJyJdJyk7aWYobyl7dmFyIGk9by5xdWVyeVNlbGVjdG9yKCIuanMtcHJvZHVjdC1lZGl0aW9uLW9wdGlvbi12YXJpYW50cyIpO2lmKGkpe3ZhciBzPShlW3JdfHwiIikucmVwbGFjZSgvIi9nLCdcXCInKSxhPWkucXVlcnlTZWxlY3Rvcignb3B0aW9uW3ZhbHVlPSInK3MrJyJdJyk7YSYmYS5zZXRBdHRyaWJ1dGUoImRpc2FibGVkIiwiZGlzYWJsZWQiKX12YXIgbj1vLnF1ZXJ5U2VsZWN0b3IoJy50LXByb2R1Y3RfX29wdGlvbi1pbnB1dFt2YWx1ZT0iJytzKyciXScpO2lmKG4pe3ZhciBkPW4uY2xvc2VzdCgiLnQtcHJvZHVjdF9fb3B0aW9uLWl0ZW0iKTtkLmNsYXNzTGlzdC5hZGQoInQtcHJvZHVjdF9fb3B0aW9uLWl0ZW1fZGlzYWJsZWQiKSxkLmNsYXNzTGlzdC5yZW1vdmUoInQtcHJvZHVjdF9fb3B0aW9uLWl0ZW1fYWN0aXZlIil9fX0pKX0pKX19ZnVuY3Rpb24gdF9zdG9yZV9wcm9kdWN0X2dlbmVyYXRlT3B0aW9uc0xpc3RGb3JEaXNhYmxlKHQsZSl7dmFyIHI9dC5nZXRBdHRyaWJ1dGUoImRhdGEtcHJvZHVjdC1nZW4tdWlkIik7d2luZG93LnRTdG9yZURpc2FibGVkT3B0aW9uc0xpc3Q9d2luZG93LnRTdG9yZURpc2FibGVkT3B0aW9uc0xpc3R8fHt9LHdpbmRvdy50U3RvcmVEaXNhYmxlZE9wdGlvbnNMaXN0W3JdPVtdLGUuZWRpdGlvbk9wdGlvbnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC52YWx1ZXMuZm9yRWFjaCgoZnVuY3Rpb24obyl7dmFyIG89KG98fCIiKS5yZXBsYWNlKC8mZ3Q7L2csIj4iKS5yZXBsYWNlKC8mbHQ7L2csIjwiKSxpO2lmKCFlLmVkaXRpb25zLnNvbWUoKGZ1bmN0aW9uKGUpe3ZhciByO3JldHVybihlW3QubmFtZV18fCIiKS5yZXBsYWNlKC8mZ3Q7L2csIj4iKS5yZXBsYWNlKC8mbHQ7L2csIjwiKT09PW8mJiIwIiE9PWUucXVhbnRpdHl9KSkpe3ZhciBzPXt9O3NbdC5uYW1lXT1vLHdpbmRvdy50U3RvcmVEaXNhYmxlZE9wdGlvbnNMaXN0W3JdLnB1c2gocyl9fSkpfSkpLDA9PT13aW5kb3cudFN0b3JlRGlzYWJsZWRPcHRpb25zTGlzdFtyXS5sZW5ndGgmJmRlbGV0ZSB3aW5kb3cudFN0b3JlRGlzYWJsZWRPcHRpb25zTGlzdFtyXX1mdW5jdGlvbiB0X3N0b3JlX3Byb2R1Y3RfdXBkYXRlRWRpdGlvbih0LGUscixvLGkscyl7dmFyIGE9dF9zdG9yZV9zbmlwcGV0X2dldEpzb25Gcm9tVXJsKCk7aWYoYS5lZGl0aW9udWlkPXBhcnNlSW50KGEuZWRpdGlvbnVpZCwxMCksd2luZG93LmpRdWVyeSYmZSBpbnN0YW5jZW9mIGpRdWVyeSYmKGU9ZVswXSkscnx8by5lZGl0aW9ucy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnVpZD09PWEuZWRpdGlvbnVpZCYmKHI9dCl9KSksYS5lZGl0aW9udWlkPT09ci51aWQmJihBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1zdG9yZS1wcm9kdWN0IiksKGZ1bmN0aW9uKHQpe3Quc2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtbGlkIixyLnVpZCksdC5zZXRBdHRyaWJ1dGUoImRhdGEtcHJvZHVjdC11aWQiLHIudWlkKSx0LnNldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LXVybCIsd2luZG93LmxvY2F0aW9uKSx0LnNldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LWltZyIsci5pbWcpfSkpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dF9zdG9yZV9wcm9kdWN0X3VwZGF0ZUVkaXRpb25fbW92ZVNsaWRlcih0LGUscil9KSwyMDApLEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoby5lZGl0aW9uT3B0aW9ucywoZnVuY3Rpb24odCl7dmFyIG89clt0Lm5hbWVdLGk9dF9zdG9yZV9wcm9kdWN0X2dldEVkaXRpb25TZWxlY3RFbChlLHQpO2lmKGkpe3ZhciBzPWkucXVlcnlTZWxlY3RvcigiLmpzLXByb2R1Y3QtZWRpdGlvbi1vcHRpb24tdmFyaWFudHMiKTtzJiZzLnZhbHVlIT09byYmKHMudmFsdWU9KG98fCIiKS5yZXBsYWNlKC8mZ3Q7L2csIj4iKS5yZXBsYWNlKC8mbHQ7L2csIjwiKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3Rfc3RvcmVfdHJpZ2dlckV2ZW50KHMsImNoYW5nZSIpfSkpKX19KSkpLHIucHJpY2UmJjAhPT1wYXJzZUZsb2F0KHIucHJpY2UpKXt2YXIgbj10X3N0b3JlX19nZXRGb3JtYXR0ZWRQcmljZShpLHIucHJpY2UpLGQ9dF9zdG9yZV9fZ2V0Rm9ybWF0dGVkUHJpY2VSYW5nZShpLG8pLGM7aWYoaS5wcmljZSl7dmFyIGw9aS5wcmljZS5wcmljZVJhbmdlO2lmKGQmJiJyYW5nZSI9PT1sJiYobj1kKSxkJiYiZnJvbSI9PT1sKXt2YXIgcD10X3N0b3JlX19nZXRGb3JtYXR0ZWRNaW5QcmljZShpLG8pO251bGwhPT1wJiYobj1wKX19ZS5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtcHJvZC1wcmljZS12YWwiKS50ZXh0Q29udGVudD1uLChjPWUucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLXByb2QtcHJpY2UiKSkmJihjLnN0eWxlLmRpc3BsYXk9IiIpO3ZhciBfPXRfc3RvcmVfX2NsZWFuUHJpY2Uoci5wcmljZSksdT1lLnF1ZXJ5U2VsZWN0b3IoIi5qcy1wcm9kdWN0LXByaWNlIik7aWYodSYmKHUuc2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtcHJpY2UtZGVmIixfKSx1LnNldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LXByaWNlLWRlZi1zdHIiLF8pKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGUucXVlcnlTZWxlY3RvckFsbCgiLnQtc3RvcmVfX3Byb2RfX3ByaWNlLXBvcnRpb24iKSwoZnVuY3Rpb24odCl7dF9zdG9yZV9fcmVtb3ZlRWxlbWVudCh0KX0pKSxvLnVuaXQmJm8ucG9ydGlvbj4wKXt2YXIgZz0nPGRpdiBjbGFzcz0idC1zdG9yZV9fcHJvZF9fcHJpY2UtcG9ydGlvbiI+PHNwYW4gY2xhc3M9InQtc3RvcmVfX3Byb2RfX3ByaWNlLXBvcnRpb24tc2xhc2giPi88L3NwYW4+JzsiMSIhPT1vLnBvcnRpb24mJihnKz0rby5wb3J0aW9uKyIgIiksZys9d2luZG93LnRTdG9yZURpY3Rbby51bml0XSsiPC9kaXY+Ijt2YXIgdj1bIi50LXN0b3JlX19jYXJkX19wcmljZS1jdXJyZW5jeSArIC5qcy1wcm9kdWN0LXByaWNlIiwiLnQtc3RvcmVfX2NhcmRfX3ByaWNlLWN1cnJlbmN5ICsgLmpzLXN0b3JlLXByb2QtcHJpY2Utb2xkLXZhbCIsIi5qcy1wcm9kdWN0LXByaWNlICsgLnQtc3RvcmVfX2NhcmRfX3ByaWNlLWN1cnJlbmN5IiwiLmpzLXN0b3JlLXByb2QtcHJpY2Utb2xkLXZhbCArIC50LXN0b3JlX19jYXJkX19wcmljZS1jdXJyZW5jeSIsIi50LXN0b3JlX19wcm9kLXBvcHVwX19wcmljZS1jdXJyZW5jeSArIC5qcy1wcm9kdWN0LXByaWNlIiwiLmpzLXByb2R1Y3QtcHJpY2UgKyAudC1zdG9yZV9fcHJvZC1wb3B1cF9fcHJpY2UtY3VycmVuY3kiLCIudC1zdG9yZV9fcHJvZC1wb3B1cF9fcHJpY2UtY3VycmVuY3kgKyAuanMtc3RvcmUtcHJvZC1wcmljZS1vbGQtdmFsIiwiLmpzLXN0b3JlLXByb2QtcHJpY2Utb2xkLXZhbCArIC50LXN0b3JlX19wcm9kLXBvcHVwX19wcmljZS1jdXJyZW5jeSIsIi5qcy1wcm9kdWN0LXByaWNlLWN1cnJlbmN5ICsgLmpzLXByb2R1Y3QtcHJpY2UiLCIuanMtcHJvZHVjdC1wcmljZSArIC5qcy1wcm9kdWN0LXByaWNlLWN1cnJlbmN5IiwiLmpzLXByb2R1Y3QtcHJpY2UtY3VycmVuY3kgKyAuanMtc3RvcmUtcHJvZC1wcmljZS1vbGQtdmFsIiwiLmpzLXN0b3JlLXByb2QtcHJpY2Utb2xkLXZhbCArIC5qcy1wcm9kdWN0LXByaWNlLWN1cnJlbmN5Il07QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLnF1ZXJ5U2VsZWN0b3JBbGwodi5qb2luKCIsIikpLChmdW5jdGlvbih0KXt0Lmluc2VydEFkamFjZW50SFRNTCgiYWZ0ZXJlbmQiLGcpfSkpfX1lbHNle3ZhciBjOyhjPWUucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLXByb2QtcHJpY2UiKSkmJihjLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSxlLnF1ZXJ5U2VsZWN0b3IoIi5qcy1zdG9yZS1wcm9kLXByaWNlLXZhbCIpLnRleHRDb250ZW50PSIiLGUucXVlcnlTZWxlY3RvcigiLmpzLXByb2R1Y3QtcHJpY2UiKS5zZXRBdHRyaWJ1dGUoImRhdGEtcHJvZHVjdC1wcmljZS1kZWYiLCIiKSxlLnF1ZXJ5U2VsZWN0b3IoIi5qcy1wcm9kdWN0LXByaWNlIikuc2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtcHJpY2UtZGVmLXN0ciIsIiIpLHRfc3RvcmVfX3JlbW92ZUVsZW1lbnQoZS5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fcHJvZF9fcHJpY2UtcG9ydGlvbiIpKX1pZihyLnByaWNlb2xkJiYiMCIhPT1yLnByaWNlb2xkKXt2YXIgeT10X3N0b3JlX19nZXRGb3JtYXR0ZWRQcmljZShpLHIucHJpY2VvbGQpLG0sZixoOyhtPWUucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLXByb2QtcHJpY2Utb2xkIikpJiYobS5zdHlsZS5kaXNwbGF5PSIiKSwoZj1lLnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19jYXJkX19wcmljZV9vbGQiKSkmJihmLnN0eWxlLmRpc3BsYXk9IiIpLChoPWUucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLXByb2QtcHJpY2Utb2xkLXZhbCIpKSYmKGguaW5uZXJIVE1MPXkpfWVsc2V7dmFyIG0sZixoOyhtPWUucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLXByb2QtcHJpY2Utb2xkIikpJiYobS5zdHlsZS5kaXNwbGF5PSJub25lIiksKGY9ZS5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fY2FyZF9fcHJpY2Vfb2xkIikpJiYoZi5zdHlsZS5kaXNwbGF5PSJub25lIiksKGg9ZS5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtcHJvZC1wcmljZS1vbGQtdmFsIikpJiYoaC5pbm5lckhUTUw9IiIpfXZhciB3PWUucXVlcnlTZWxlY3RvcigiLnQtc3RvcmVfX3Byb2QtcG9wdXBfX2JyYW5kIik7by5icmFuZCYmby5icmFuZD4iIiYmdyYmKDE9PT13LnF1ZXJ5U2VsZWN0b3JBbGwoInNwYW5baXRlbXByb3A9YnJhbmRdIikubGVuZ3RoP3cucXVlcnlTZWxlY3Rvcigic3BhbltpdGVtcHJvcD1icmFuZF0iKS5pbm5lckhUTUw9by5icmFuZDp3LmlubmVySFRNTD0nPHNwYW4gaXRlbXByb3A9ImJyYW5kIiBjbGFzcz0ianMtcHJvZHVjdC1icmFuZCI+JytvLmJyYW5kKyI8L3NwYW4+IiksIW8uYnJhbmQmJncmJih3LnN0eWxlLmRpc3BsYXk9Im5vbmUiKTt2YXIgYj1lLnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19wcm9kLXBvcHVwX19za3UiKSxTPWUucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLXByb2Qtc2t1IiksRTtyLnNrdT8oUy5pbm5lckhUTUw9ci5za3UsImxhcmdlIj09PWUuZ2V0QXR0cmlidXRlKCJkYXRhLWNhcmQtc2l6ZSIpJiYoUy5zdHlsZS5kaXNwbGF5PSIiLGImJihiLnN0eWxlLmRpc3BsYXk9IiIpKSk6KFMmJihTLmlubmVySFRNTD0iIixTLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSxiJiYoYi5zdHlsZS5kaXNwbGF5PSJub25lIikpLGUuc2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtaW52IixyLnF1YW50aXR5KSxlLnNldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LWxpZCIsci51aWQpLGUuc2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtdWlkIixyLnVpZCksd2luZG93LnRTdG9yZURlZlBhY2tPYmp8fCh3aW5kb3cudFN0b3JlRGVmUGFja09iaj17fSk7dHJ5e3ZhciBBPXdpbmRvdy50U3RvcmVEZWZQYWNrT2JqW28udWlkXSx4PWUucXVlcnlTZWxlY3RvckFsbCgnLnQtc3RvcmVfX3RhYnMgLnQtc3RvcmVfX3RhYnNfX2l0ZW1bZGF0YS10YWItdHlwZT0iY2hhcnMiXScpLEM9IiI7aWYoci5wYWNrX3gmJnIucGFja195JiZyLnBhY2tfeil7QXx8KEE9e3BhY2tfeDplLmdldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LXBhY2steCIpfHwwLHBhY2tfeTplLmdldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LXBhY2steSIpfHwwLHBhY2tfejplLmdldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LXBhY2steiIpfHwwLHBhY2tfbGFiZWw6ZS5nZXRBdHRyaWJ1dGUoImRhdGEtcHJvZHVjdC1wYWNrLWxhYmVsIil8fG8ucGFja19sYWJlbHx8Imx3aCIscGFja19tOmUuZ2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtcGFjay1tIil8fDB9LHdpbmRvdy50U3RvcmVEZWZQYWNrT2JqW28udWlkXT1BKSxlLnNldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LXBhY2steCIsci5wYWNrX3gpLGUuc2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtcGFjay15IixyLnBhY2tfeSksZS5zZXRBdHRyaWJ1dGUoImRhdGEtcHJvZHVjdC1wYWNrLXoiLHIucGFja196KSxlLnNldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LXBhY2stbGFiZWwiLEEucGFja19sYWJlbCk7dmFyIHE9ci5wYWNrX3grIngiK3IucGFja195KyJ4IityLnBhY2tfeixqPWUucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLXByb2QtZGltZW5zaW9ucyIpO0M9d2luZG93LnRTdG9yZURpY3RbInByb2R1Y3QtIitBLnBhY2tfbGFiZWxdKyI6ICIrcSsiJm5ic3A7Iit3aW5kb3cudFN0b3JlRGljdC5tbSxqJiYoZS5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtcHJvZC1kaW1lbnNpb25zIikuaW5uZXJIVE1MPUMpfWVsc2UgaWYoQSYmQS5wYWNrX3gpe2Uuc2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtcGFjay14IixBLnBhY2tfeCksZS5zZXRBdHRyaWJ1dGUoImRhdGEtcHJvZHVjdC1wYWNrLXkiLEEucGFja195KSxlLnNldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LXBhY2steiIsQS5wYWNrX3opLGUuc2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtcGFjay1sYWJlbCIsQS5wYWNrX2xhYmVsKTt2YXIgcT1BLnBhY2tfeCsieCIrQS5wYWNrX3krIngiK0EucGFja196LGo7Qz13aW5kb3cudFN0b3JlRGljdFsicHJvZHVjdC0iK0EucGFja19sYWJlbF0rIjogIitxKyImbmJzcDsiK3dpbmRvdy50U3RvcmVEaWN0Lm1tLChqPWUucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLXByb2QtZGltZW5zaW9ucyIpKSYmKGouaW5uZXJIVE1MPUMpfUMmJkFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoeCwoZnVuY3Rpb24odCl7dmFyIGU9dC5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtcHJvZC1kaW1lbnNpb25zIik7ZSYmKGUuaW5uZXJIVE1MPUMpfSkpO3ZhciBrPSIiLFA7aWYoci5wYWNrX20pZS5zZXRBdHRyaWJ1dGUoImRhdGEtcHJvZHVjdC1wYWNrLW0iLHIucGFja19tKSxrPXdpbmRvdy50U3RvcmVEaWN0WyJwcm9kdWN0LXdlaWdodCJdKyI6ICIrci5wYWNrX20rIiZuYnNwOyIrd2luZG93LnRTdG9yZURpY3QuZywoUD1lLnF1ZXJ5U2VsZWN0b3IoIi5qcy1zdG9yZS1wcm9kLXdlaWdodCIpKSYmKFAuaW5uZXJIVE1MPWspO2Vsc2UgaWYoQSYmcGFyc2VGbG9hdChBLnBhY2tfbSk+MCl7dmFyIFA7ZS5zZXRBdHRyaWJ1dGUoImRhdGEtcHJvZHVjdC1wYWNrLW0iLEEucGFja19tKSxrPXdpbmRvdy50U3RvcmVEaWN0WyJwcm9kdWN0LXdlaWdodCJdKyI6ICIrQS5wYWNrX20rIiZuYnNwOyIrd2luZG93LnRTdG9yZURpY3QuZywoUD1lLnF1ZXJ5U2VsZWN0b3IoIi5qcy1zdG9yZS1wcm9kLXdlaWdodCIpKSYmKFAuaW5uZXJIVE1MPWspfWsmJkFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoeCwoZnVuY3Rpb24odCl7dmFyIGU9dC5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtcHJvZC13ZWlnaHQiKTtlJiYoZS5pbm5lckhUTUw9ayl9KSl9Y2F0Y2goTCl7Y29uc29sZS5sb2coTCl9ci5pbWc/KGUuc2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtaW1nIixyLmltZyksImxhcmdlIj09PWUuZ2V0QXR0cmlidXRlKCJkYXRhLWNhcmQtc2l6ZSIpP3Rfc3RvcmVfcHJvZHVjdF91cGRhdGVFZGl0aW9uX21vdmVTbGlkZXIodCxlLHIpOnMmJnRfc3RvcmVfZ2V0X3Byb2R1Y3RDYXJkX2ltZ19yZXBsYWNlV2l0aChvLGUsaSxyLmltZykpOmUuZ2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtaW1nIikmJiJsYXJnZSI9PT1lLmdldEF0dHJpYnV0ZSgiZGF0YS1jYXJkLXNpemUiKSYmKHRfc3RvcmVfcHJvZHVjdF91cGRhdGVFZGl0aW9uX21vdmVTbGlkZXIodCxlLHIpLGUuc2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtaW1nIiwiIikpO28udW5pdCYmby5wb3J0aW9uPjA/KGUuc2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtdW5pdCIsby51bml0KSxlLnNldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LXBvcnRpb24iLG8ucG9ydGlvbiksZS5zZXRBdHRyaWJ1dGUoImRhdGEtcHJvZHVjdC1zaW5nbGUiLG8uc2luZ2xlKSk6KGUucmVtb3ZlQXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtdW5pdCIpLGUucmVtb3ZlQXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtcG9ydGlvbiIpLGUucmVtb3ZlQXR0cmlidXRlKCJkYXRhLXByb2R1Y3Qtc2luZ2xlIikpfWZ1bmN0aW9uIHRfc3RvcmVfcHJvZHVjdF91cGRhdGVFZGl0aW9uX21vdmVTbGlkZXIodCxlLHIpe2lmKGUmJnImJnIuaW1nKXt2YXIgbz1lLnF1ZXJ5U2VsZWN0b3IoIi50LXNsZHNfX2l0ZW1zLXdyYXBwZXIiKTtpZihvKXt2YXIgaT0xLHM9cGFyc2VJbnQoby5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXRvdGFsc2xpZGVzIiksMTApLGE9ci5pbWcucmVwbGFjZSgvJmFtcDsvZywiJiIpLG4sZD1BcnJheS5mcm9tKGUucXVlcnlTZWxlY3RvckFsbCgiLnQtc2xkc19faXRlbSIpKS5maW5kKChmdW5jdGlvbih0KXt2YXIgZT1wYXJzZUludCh0LmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZS1pbmRleCIpfHwiIiwxMCk7aWYoMCE9PWUmJmUhPT1zKzEpcmV0dXJuIHQucXVlcnlTZWxlY3RvcignLnQtc2xkc19fYmdpbWdbZGF0YS1vcmlnaW5hbD0iJythKyciXScpfSkpO2lmKCFkJiZhLmluY2x1ZGVzKCIuY29tIikpe3ZhciBjLGw9bnVsbD09KGM9VVJMLnBhcnNlKGEpKT92b2lkIDA6Yy5wYXRobmFtZTtpZihsJiYiLyIhPT1sKXt2YXIgcD1lLnF1ZXJ5U2VsZWN0b3IoJy50LXNsZHNfX2l0ZW0gLnQtc2xkc19fYmdpbWdbZGF0YS1vcmlnaW5hbCQ9IicrbCsnIl0nKTtwJiYoZD1wLmNsb3Nlc3QoIi50LXNsZHNfX2l0ZW0iKSl9fWlmKC0xIT09YS5pbmRleE9mKCJodHRwOi8vIil8fC0xIT09YS5pbmRleE9mKCJodHRwczovLyIpKXRyeXt2YXIgXyx1PW5ldyBVUkwoYSkucGF0aG5hbWU7Ii8iPT09dVswXSYmKHU9dS5zbGljZSgxKS5yZXBsYWNlKC9cLy8sIl9fIikpO3ZhciBnPWUucXVlcnlTZWxlY3RvcignLnQtc2xkc19faXRlbSAudC1zbGRzX19iZ2ltZ1tkYXRhLW9yaWdpbmFsJD0iJyt1KyciXScpOyFkJiZnJiYoZD1nLmNsb3Nlc3QoIi50LXNsZHNfX2l0ZW0iKSl9Y2F0Y2godil7Y29uc29sZS5sb2codil9ZCYmMD09PShpPXBhcnNlSW50KGQuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlLWluZGV4IiksMTApKSYmKGk9cyksby5zZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLXBvcyIsaS50b1N0cmluZygpKSxlLmNsYXNzTGlzdC5jb250YWlucygidDkyMiIpfHx0X3N0b3JlX29uRnVuY0xvYWQoInRfc2xpZGVNb3ZlSW5zdGFudGx5IiwoZnVuY3Rpb24oKXt0X3NsaWRlTW92ZUluc3RhbnRseSh0KyIgLmpzLXN0b3JlLXByb2R1Y3QiKX0pKX19fWZ1bmN0aW9uIHRfc3RvcmVfcHJvZHVjdF90cmlnZ2VyU29sZE91dE1zZyh0LGUscil7dF9zdG9yZV9fcmVtb3ZlRWxlbWVudCh0LnF1ZXJ5U2VsZWN0b3IoIi5qcy1zdG9yZS1wcm9kLXNvbGQtb3V0IikpO3ZhciBvPXQucXVlcnlTZWxlY3RvckFsbCgnLnQtc3RvcmVfX2NhcmRfX2J0bnMtd3JhcHBlciBbaHJlZj0iI29yZGVyIl0sIC50LXN0b3JlX19wcm9kLXBvcHVwX19idG4td3JhcHBlciBbaHJlZj0iI29yZGVyIl0nKTswPT09by5sZW5ndGgmJihvPXQucXVlcnlTZWxlY3RvckFsbCgnW2hyZWY9IiNvcmRlciJdJykpLHdpbmRvdy5qUXVlcnkmJnQgaW5zdGFuY2VvZiBqUXVlcnkmJih0PSQodCkuZ2V0KDApKTt2YXIgaT1yLnByb2RDYXJkJiYib3JkZXIiPT09ci5wcm9kQ2FyZC5idG5MaW5rMSxzPXIucHJvZENhcmQmJiJvcmRlciI9PT1yLnByb2RDYXJkLmJ0bkxpbmsyO2lmKG9bMF0pe3ZhciBhPW9bMF0ucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLXByb2QtcG9wdXAtYnV5LWJ0bi10eHQiKTsic21hbGwiPT09dC5nZXRBdHRyaWJ1dGUoImRhdGEtY2FyZC1zaXplIikmJihhPW9bMF0ucXVlcnlTZWxlY3RvcigiLnQtc3RvcmVfX2NhcmRfX2J0bi10ZXh0IikpLGF8fChhPW9bMF0ucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLXByb2QtYnV5LWJ0bi10eHQiKSl9aWYoZSl7dmFyIG49ZnVuY3Rpb24gZSgpe3ZhciByPXQucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLXByaWNlLXdyYXBwZXIiKTtpZihyKXt2YXIgbz0nPGRpdiBjbGFzcz0ianMtc3RvcmUtcHJvZC1zb2xkLW91dCB0LXN0b3JlX19jYXJkX19zb2xkLW91dC1tc2cgdC1uYW1lIHQtbmFtZV94cyI+Jyt3aW5kb3cudFN0b3JlRGljdC5zb2xkT3V0KyI8L2Rpdj4iO3IuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLG8pfX07by5sZW5ndGh8fG4oKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG8sKGZ1bmN0aW9uKHQpe3QuY2xhc3NMaXN0LmFkZCgidC1zdG9yZV9fcHJvZC1wb3B1cF9fYnRuX2Rpc2FibGVkIil9KSksYSYmKGEudGV4dENvbnRlbnQ9d2luZG93LnRTdG9yZURpY3Quc29sZE91dCksdF9zdG9yZV90cmlnZ2VyRXZlbnQodCwidFN0b3JlU29sZE91dCIse3Byb2R1Y3Q6dF9zdG9yZV9fY29sbGVjdFByb2R1Y3REYXRhQnlFbGVtZW50KHQpLGJ1dHRvbkJ1eUVsZW1lbnQ6b1swXSxyZW5kZXJTb2xkT3V0TWVzc2FnZTpufSl9ZWxzZXtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG8sKGZ1bmN0aW9uKHQpe3QuY2xhc3NMaXN0LnJlbW92ZSgidC1zdG9yZV9fcHJvZC1wb3B1cF9fYnRuX2Rpc2FibGVkIil9KSk7dmFyIGQ9ci5idXlCdG5UaXRsZXx8ci5wb3B1cF9vcHRzJiZyLnBvcHVwX29wdHMuYnRuVGl0bGV8fHdpbmRvdy50U3RvcmVEaWN0LmFkZHRvY2FydDsic21hbGwiPT09dC5nZXRBdHRyaWJ1dGUoImRhdGEtY2FyZC1zaXplIikmJihpJiZyLnByb2RDYXJkLmJ0blRpdGxlMSYmKGQ9ci5wcm9kQ2FyZC5idG5UaXRsZTEpLHMmJnIucHJvZENhcmQuYnRuVGl0bGUyJiYoZD1yLnByb2RDYXJkLmJ0blRpdGxlMikpLGEmJihhLnRleHRDb250ZW50PWQpLHRfc3RvcmVfdHJpZ2dlckV2ZW50KHQsInRTdG9yZUF2YWlsYWJsZSIse3Byb2R1Y3Q6dF9zdG9yZV9fY29sbGVjdFByb2R1Y3REYXRhQnlFbGVtZW50KHQpLGJ1dHRvbkJ1eUVsZW1lbnQ6b1swXX0pfX1mdW5jdGlvbiB0X3N0b3JlX3Byb2R1Y3RfYWRkT25lT3B0aW9uc0NvbnRyb2wodCxlLHIsbyxpLHMpe2lmKGUubmFtZSl7dmFyIGEsbixkLGM9IiIsbDtpZigibW9kaWZpY2F0b3IiPT09dCl7aWYodm9pZCAwPT09ZS52YWx1ZXMpcmV0dXJuO249JzxvcHRpb24gdmFsdWU9IltbdmFsdWVdXSIgZGF0YS1wcm9kdWN0LXZhcmlhbnQtcHJpY2U9IltbcHJpY2VdXSI+W1t0ZXh0XV08L29wdGlvbj4nO3ZhciBwPWUudmFsdWVzLnNwbGl0KCJcbiIpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwocCwoZnVuY3Rpb24odCl7dmFyIGU9dC5zcGxpdCgiPSIpWzBdLHI9dC5zcGxpdCgiPSIpWzFdO2MrPW4ucmVwbGFjZSgvXFtcW3ZhbHVlXF1cXS9nLHRfc3RvcmVfZXNjYXBlUXVvdGUoZSkucmVwbGFjZSgvJmFtcDsvZywiJmFtcDthbXA7IikpLnJlcGxhY2UoL1xbXFt0ZXh0XF1cXS9nLHRfc3RvcmVfZXNjYXBlUXVvdGUoZSkpLnJlcGxhY2UoL1xbXFtwcmljZVxdXF0vZyxyfHwiIil9KSksYT0oZD10X3N0b3JlX2dldF9jb250cm9sX29wdGlvbl9odG1sKG8pKS5yZXBsYWNlKC9cW1xbbmFtZVxdXF0vZyxlLm5hbWUpLnJlcGxhY2UoL1xbXFtvcHRpb250YWdzXF1cXS9nLGMpfWVsc2Ugbj0nPG9wdGlvbiB2YWx1ZT0iW1t2YWx1ZV1dIj5bW3RleHRdXTwvb3B0aW9uPicsQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLnZhbHVlcywoZnVuY3Rpb24odCl7IiIhPT10JiYoYys9bi5yZXBsYWNlKC9cW1xbdmFsdWVcXVxdL2csdF9zdG9yZV9lc2NhcGVRdW90ZSh0KS5yZXBsYWNlKC8mYW1wOy9nLCImYW1wO2FtcDsiKSkucmVwbGFjZSgvXFtcW3RleHRcXVxdL2csdF9zdG9yZV9lc2NhcGVRdW90ZSh0KSkpfSkpLCIiIT09YyYmKGE9KGQ9dF9zdG9yZV9nZXRfY29udHJvbF9lZGl0aW9uT3B0aW9uX2h0bWwobyxlKSkucmVwbGFjZSgvXFtcW2lkXF1cXS9nLGUuaWQucmVwbGFjZSgvJmFtcDsvZywiJmFtcDthbXA7IikucmVwbGFjZSgvJiM5MjsvZywiJmFtcDsjOTI7IikpLnJlcGxhY2UoL1xbXFtuYW1lXF1cXS9nLGUubmFtZSkucmVwbGFjZSgvXFtcW29wdGlvbnRhZ3NcXVxdL2csYykpO2lmKGEmJnIuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLGEpLHRfc3RvcmVfb3B0aW9uX2NoZWNrSWZDdXN0b20oZSkmJnRfc3RvcmVfb3B0aW9uX3N0eWxlQ3VzdG9tQ29udHJvbChzLG8sZSxyLGkpLCJlZGl0aW9ub3B0Ij09PXQpe3ZhciBfPXIucXVlcnlTZWxlY3RvckFsbCgiLmpzLXByb2R1Y3QtZWRpdGlvbi1vcHRpb24iKSx1LGc9X1tfLmxlbmd0aC0xXTtpZihnKXJldHVybiBnfX19ZnVuY3Rpb24gdF9zdG9yZV9wcm9kdWN0X2dldEVkaXRpb25PcHRpb25zQXJyKHQsZSl7dmFyIHI9dC5lZGl0aW9ucyxvPVsicXVhbnRpdHkiLCJwcmljZSIsInByaWNlb2xkIiwiZ2FsbGVyeSIsInNrdSIsInVpZCIsImltZyIsImV4dGVybmFsaWQiLCJleHRlcm5hbGlkcyIsInBhY2tfeCIsInBhY2tfeSIsInBhY2tfeiIsInBhY2tfbSJdLGk9e30scz1bXTtyZXR1cm4gci5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbih0KXstMSE9PW8uaW5kZXhPZih0KXx8aVt0XXx8KGlbdF09ITApfSkpLE9iamVjdC5rZXlzKGkpLmxlbmd0aH0pKSxPYmplY3Qua2V5cyhpKS5mb3JFYWNoKChmdW5jdGlvbihvKXt2YXIgaT17bmFtZTpvLGlkOnRfc3RvcmVfY29tYmluZU9wdGlvbklkQnlOYW1lKG8pLHBhcmFtczp0X3N0b3JlX3Byb2R1Y3RfZ2V0RWRpdGlvbk9wdGlvbnNBcnJfZ2V0UGFyYW1zKG8sdCxlKSx2YWx1ZXM6dF9zdG9yZV9wcm9kdWN0X2dldEVkaXRpb25PcHRpb25zQXJyX2dldFZhbHVlcyhvLHIpLGltYWdlc09iajp0X3N0b3JlX3Byb2R1Y3RfZ2V0RWRpdGlvbk9wdGlvbnNBcnJfZ2V0SW1nVmFsdWVzKG8sciksdmFsdWVzT2JqOmUmJmVbb10/ZVtvXS52YWx1ZXM6e319O3MucHVzaChpKX0pKSxzfWZ1bmN0aW9uIHRfc3RvcmVfcHJvZHVjdF9nZXRGaXJzdEF2YWlsYWJsZUVkaXRpb25EYXRhKHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXt2YXIgcj10W2VdO2lmKDAhPT1wYXJzZUludChyLnF1YW50aXR5LDEwKSlyZXR1cm4gcn1yZXR1cm4gdFswXX1mdW5jdGlvbiB0X3N0b3JlX3Byb2R1Y3RfZ2V0Rmlyc3RBdmFpbGFibGVFZGl0aW9uRGF0YV9mb3JDZXJ0YWluVmFscyh0LGUscixvKXtmb3IodmFyIGk9IiIscz0wO3M8dC5sZW5ndGg7cysrKXtmb3IodmFyIGE9dFtzXSxuPSEwLGQ9MDtkPGUubGVuZ3RoO2QrKyl7dmFyIGM9ZVtkXS5uYW1lLGwscD10X3N0b3JlX3Byb2R1Y3RfZ2V0Q3VyRWRpdGlvbk9wdFZhbEJ5SWQocixlW2RdLmlkKTtpZihhW2NdPShhW2NdfHwiIikucmVwbGFjZSgvJiM5MjsvZywiXFwiKS5yZXBsYWNlKC8mZ3Q7L2csIj4iKS5yZXBsYWNlKC8mbHQ7L2csIjwiKSxvJiZkPT09ZS5sZW5ndGgtMSYmKHA9byksYVtjXSE9PXApe249ITE7YnJlYWt9fWlmKG4pe2lmKDAhPT1wYXJzZUludChhLnF1YW50aXR5LDEwKSlyZXR1cm4gYTtpfHwoaT1hKX19aWYoaSl7dmFyIF87aWYoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQxMTIyIikpcmV0dXJuIGk7MD09PXBhcnNlSW50KGkucXVhbnRpdHksMTApJiYoaT0iIil9cmV0dXJuIGl9ZnVuY3Rpb24gdF9zdG9yZV9wcm9kdWN0X2dldEN1ckVkaXRpb25PcHRWYWxCeUlkKHQsZSl7dmFyIHI9dC5xdWVyeVNlbGVjdG9yKCcuanMtcHJvZHVjdC1lZGl0aW9uLW9wdGlvbltkYXRhLWVkaXRpb24tb3B0aW9uLWlkPSInK2UrJyJdJyk7cmV0dXJuIHI/ci5xdWVyeVNlbGVjdG9yKCIuanMtcHJvZHVjdC1lZGl0aW9uLW9wdGlvbi12YXJpYW50cyIpLnZhbHVlOiIifWZ1bmN0aW9uIHRfc3RvcmVfcHJvZHVjdF9nZXRFZGl0aW9uT3B0aW9uc0Fycl9nZXRWYWx1ZXModCxlKXt2YXIgcj1bXTtyZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgbz1lW3RdO3ZvaWQgMCE9PW8mJi0xPT09ci5pbmRleE9mKG8pJiZyLnB1c2gobyl9KSkscj10X3N0b3JlX3Byb2R1Y3Rfc29ydFZhbHVlcyhyKX1mdW5jdGlvbiB0X3N0b3JlX3Byb2R1Y3Rfc29ydFZhbHVlc0J5T3JkZXIodCxlLHIpe3JldHVybiB0LnNvcnQoKGZ1bmN0aW9uKHQsbyl7dmFyIGk9ImZpbHRlciI9PT1lP3QudmFsdWU6dCxzPSJmaWx0ZXIiPT09ZT9vLnZhbHVlOm87cmV0dXJuIGk9aS50b1N0cmluZygpLnRvVXBwZXJDYXNlKCkscz1zLnRvU3RyaW5nKCkudG9VcHBlckNhc2UoKSxyLmluZGV4T2YoaSktci5pbmRleE9mKHMpfSkpfWZ1bmN0aW9uIHRfc3RvcmVfcHJvZHVjdF9pc1NpbXBsZU9yZGVyVmFsaWQodCxlKXtyZXR1cm4gdC5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiYic3RyaW5nIj09dHlwZW9mIHQudmFsdWUmJih0PXQudmFsdWUpLCJzdHJpbmciPT10eXBlb2YgdCYmKHQ9dC50cmltKCkudG9VcHBlckNhc2UoKSxlLmluZGV4T2YodCk+PTApfSkpfWZ1bmN0aW9uIHRfc3RvcmVfcHJvZHVjdF9pc0RhdGVPcmRlclZhbGlkKHQpe3ZhciBlPS8oXGR7Mn0pXC4oXGR7Mn0pXC4oXGR7NH0pLztyZXR1cm4gdC5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiYic3RyaW5nIj09dHlwZW9mIHQudmFsdWUmJih0PXQudmFsdWUpLCJzdHJpbmciPT10eXBlb2YgdCYmKHQ9dC50cmltKCkudG9VcHBlckNhc2UoKSkubWF0Y2goZSl9KSl9ZnVuY3Rpb24gdF9zdG9yZV9wcm9kdWN0X3NvcnRWYWx1ZXModCxlLHIpe3ZhciBvPXR8fFtdO2lmKHQubGVuZ3RoPDIpcmV0dXJuIG87dmFyIGk9ImZpbHRlciI9PT1lP3RbMF0udmFsdWUudG9TdHJpbmcoKTp0WzBdLnRvU3RyaW5nKCkscz0iZmlsdGVyIj09PWU/dFsxXS52YWx1ZS50b1N0cmluZygpOnRbMV0udG9TdHJpbmcoKSxhPVsiWFhYUyIsIjNYUyIsIlhYUyIsIjJYUyIsIlhTIiwiWFMtUyIsIlMiLCJTLU0iLCJNIiwiTS1MIiwiTCIsIkwtWEwiLCJYTCIsIlhYTCIsIjJYTCIsIlhYWEwiLCIzWEwiLCJYWFhYTCIsIkJYTCIsIjRYTCIsIkJYWEwiLCI1WEwiLCJCWFhYTCIsIjZYTCIsIk9ORSBTSVpFIiwi0J7QlNCY0J0g0KDQkNCX0JzQldCgIiwi0KPQndCY0JLQldCg0KHQkNCb0KzQndCr0JkiXSxuPVsi0J/QntCd0JXQlNCV0JvQrNCd0JjQmiIsIk1PTkRBWSIsItCS0KLQntCg0J3QmNCaIiwiVFVFU0RBWSIsItCh0KDQldCU0JAiLCJXRURORVNEQVkiLCLQp9CV0KLQktCV0KDQkyIsIlRIVVJTREFZIiwi0J/Qr9Ci0J3QmNCm0JAiLCJGUklEQVkiLCLQodCj0JHQkdCe0KLQkCIsIlNBVFVSREFZIiwi0JLQntCh0JrQoNCV0KHQldCd0KzQlSIsIlNVTkRBWSJdLGQ9WyLQr9Cd0JLQkNCg0KwiLCLQpNCV0JLQoNCQ0JvQrCIsItCc0JDQoNCiIiwi0JDQn9Cg0JXQm9CsIiwi0JzQkNCZIiwi0JjQrtCd0KwiLCLQmNCu0JvQrCIsItCQ0JLQk9Cj0KHQoiIsItCh0JXQndCi0K/QkdCg0KwiLCLQntCa0KLQr9CR0KDQrCIsItCd0J7Qr9CR0KDQrCIsItCU0JXQmtCQ0JHQoNCsIiwiSkFOVUFSWSIsIkZFQlJVQVJZIiwiTUFSQ0giLCJBUFJJTCIsIk1BWSIsIkpVTkUiLCJKVUxZIiwiQVVHVVNUIiwiU0VQVEVNQkVSIiwiT0NUT0JFUiIsIk5PVkVNQkVSIiwiREVDRU1CRVIiXSxjLGwscCxfLHUsZyx2PXt3YXR0Olsi0JLRgiIsIlciLCLQtNCw0JLRgiIsImRhVyIsItCz0JLRgiIsImhXIiwi0LrQktGCIiwia1ciLCLQvNCS0YIiLCJtVyIsItCT0JLRgiIsIkdXIiwi0KLQktGCIiwiVFciLCLQn9CS0YIiLCJQVyJdLGJ5dGVzOlsi0JrQsSIsItCa0LHQsNC50YIiLCJLaUIiLCJLQiIsItCc0LHQsNC50YIiLCLQnNCxIiwiTWlCIiwiTUIiLCJNYiIsItCT0LHQsNC50YIiLCLQk9CxIiwiR2lCIiwiR0IiLCJHYiIsItCi0LHQsNC50YIiLCLQotCxIiwiVGlCIiwiVEIiXSx3ZWlnaHQ6WyLQvNC60LMiLCJtY2ciLCLQvNCzIiwibWciLCLQsyIsImciLCLQutCzIiwia2ciLCLRgiIsInQiLCLRhiJdLGxlbmd0aDpbItC80LrQvCIsItC80LwiLCJtbSIsItC00LwiLCJkbSIsItGB0LwiLCJjbSIsItC8IiwibSIsItC60LwiLCJrbSJdLGxpdHJlOlsi0LzQuyIsItC7Il0sbGFyZ2VOdW1zOlsi0YLRi9GBIiwi0LzQu9C9Iiwi0LzQu9GA0LQiXX0seT1yfHx0LG09LyhcZHsyfSlcLihcZHsyfSlcLihcZHs0fSkvO2lmKHRfc3RvcmVfcHJvZHVjdF9pc1NpbXBsZU9yZGVyVmFsaWQoeSxhKSlvPXRfc3RvcmVfcHJvZHVjdF9zb3J0VmFsdWVzQnlPcmRlcihvLGUsYSk7ZWxzZSBpZih0X3N0b3JlX3Byb2R1Y3RfaXNTaW1wbGVPcmRlclZhbGlkKHksbikpbz10X3N0b3JlX3Byb2R1Y3Rfc29ydFZhbHVlc0J5T3JkZXIobyxlLG4pO2Vsc2UgaWYodF9zdG9yZV9wcm9kdWN0X2lzU2ltcGxlT3JkZXJWYWxpZCh5LGQpKW89dF9zdG9yZV9wcm9kdWN0X3NvcnRWYWx1ZXNCeU9yZGVyKG8sZSxkKTtlbHNlIGlmKHRfc3RvcmVfcHJvZHVjdF9pc0RhdGVPcmRlclZhbGlkKHkpKW89dC5zb3J0KChmdW5jdGlvbih0LHIpe3ZhciBvPSJmaWx0ZXIiPT09ZT90LnZhbHVlOnQsaT0iZmlsdGVyIj09PWU/ci52YWx1ZTpyO3JldHVybiBvPW5ldyBEYXRlKG8udG9TdHJpbmcoKS5yZXBsYWNlKG0sIiQyLyQxLyQzIikudHJpbSgpKSxpPW5ldyBEYXRlKGkudG9TdHJpbmcoKS5yZXBsYWNlKG0sIiQyLyQxLyQzIikudHJpbSgpKSxpc05hTihvKXx8aXNOYU4oaSk/MDpvLWl9KSk7ZWxzZXt0cnl7bz10LnNvcnQoKGZ1bmN0aW9uKHQscil7dmFyIG89ImZpbHRlciI9PT1lP3QudmFsdWU6dCxpPSJmaWx0ZXIiPT09ZT9yLnZhbHVlOnI7aWYobz1vLnRvU3RyaW5nKCkucmVwbGFjZSgvXijQvtGCfGZyb20pXHMrL2ksIiIpLGk9aS50b1N0cmluZygpLnJlcGxhY2UoL14o0L7Rgnxmcm9tKVxzKy9pLCIiKSxvPXBhcnNlRmxvYXQoby50b1N0cmluZygpLnJlcGxhY2UoIiwiLCIuIikudHJpbSgpKSxpPXBhcnNlRmxvYXQoaS50b1N0cmluZygpLnJlcGxhY2UoIiwiLCIuIikudHJpbSgpKSxpc05hTihvKXx8aXNOYU4oaSkpcmV0dXJuIDA7aWYobz09PWkpe3ZhciBzPSJmaWx0ZXIiPT09ZT90LnZhbHVlOnQsYT0iZmlsdGVyIj09PWU/ci52YWx1ZTpyO3M9cy50b1N0cmluZygpLnJlcGxhY2UoL14o0L7Rgnxmcm9tKVxzKy9pLCIiKS5yZXBsYWNlKCIsIiwiLiIpLnRyaW0oKSxhPWEudG9TdHJpbmcoKS5yZXBsYWNlKC9eKNC+0YJ8ZnJvbSlccysvaSwiIikucmVwbGFjZSgiLCIsIi4iKS50cmltKCk7dmFyIG49LyhcZCspXHM/KHh80YV8w5cpXHM/KFxkKykvZ2ksZD1zLm1hdGNoKG4pLGM9YS5tYXRjaChuKTtyZXR1cm4gZCYmYyYmKHM9ZFsyXSxhPWNbMl0pLHM+YT8xOmE+cz8tMTowfXJldHVybiBvLWl9KSl9Y2F0Y2goYil7Y29uc29sZS5sb2coYil9dHJ5e2Zvcih2YXIgZiBpbiB2KXt2YXIgdCxoPXRfc3RvcmVfcHJvZHVjdF9oYXNNZWFzdXJlVW5pdCh0PXZbZl0saSkmJnRfc3RvcmVfcHJvZHVjdF9oYXNNZWFzdXJlVW5pdCh0LHMpLHc9bmV3IFJlZ0V4cCgvXlxkKiw/XC4/XGQrXHMqLywiZ2kiKTtpZihoKXJldHVybiBvPW8uc29ydCgoZnVuY3Rpb24ocixvKXt2YXIgaT0iZmlsdGVyIj09PWU/ci52YWx1ZTpyLHM9ImZpbHRlciI9PT1lP28udmFsdWU6bztyZXR1cm4gaT1pLnRvU3RyaW5nKCkucmVwbGFjZSh3LCIiKS50cmltKCkscz1zLnRvU3RyaW5nKCkucmVwbGFjZSh3LCIiKS50cmltKCksdC5pbmRleE9mKGkpLXQuaW5kZXhPZihzKX0pKX19Y2F0Y2goYil7Y29uc29sZS5sb2coYil9fXJldHVybiBvfWZ1bmN0aW9uIHRfc3RvcmVfcHJvZHVjdF9oYXNNZWFzdXJlVW5pdCh0LGUpe3JldHVybiBlPWUucmVwbGFjZSgvXHMvZywiIiksdC5zb21lKChmdW5jdGlvbih0KXt2YXIgcixvO3JldHVybiBuZXcgUmVnRXhwKCJeW1xcZC4sXSsoIit0KyIpezF9JCIsImkiKS50ZXN0KGUpfSkpfWZ1bmN0aW9uIHRfc3RvcmVfcHJvZHVjdF9nZXRFZGl0aW9uT3B0aW9uc0Fycl9nZXRQYXJhbXModCxlLHIpe3ZhciBvPXt9O2lmKHIpbz1yW3RdP3JbdF0ucGFyYW1zOnt9O2Vsc2UgdHJ5e3ZhciBpPUpTT04ucGFyc2UoZS5qc29uX29wdGlvbnMpO2kmJmkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZS5wYXJhbXMmJmUudGl0bGUmJmUudGl0bGU9PT10JiYobz1lLnBhcmFtcyl9KSl9Y2F0Y2gocyl7Y29uc29sZS5sb2cocyl9cmV0dXJuIG99ZnVuY3Rpb24gdF9zdG9yZV9wcm9kdWN0X2dldEVkaXRpb25PcHRpb25zQXJyX2dldEltZ1ZhbHVlcyh0LGUpe3ZhciByPXt9O3JldHVybiBlLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBvPWVbdF07cltvXXx8KHJbb109ZS5pbWcpfSkpLHJ9ZnVuY3Rpb24gdF9zdG9yZV9wcm9kdWN0X2dldEVkaXRpb25TZWxlY3RFbCh0LGUpe3JldHVybiB0LnF1ZXJ5U2VsZWN0b3IoJy5qcy1wcm9kdWN0LWVkaXRpb24tb3B0aW9uW2RhdGEtZWRpdGlvbi1vcHRpb24taWQ9IicrZS5pZCsnIl0nKX1mdW5jdGlvbiB0X3N0b3JlX2NvbWJpbmVPcHRpb25JZEJ5TmFtZSh0KXtyZXR1cm4gdC5yZXBsYWNlKC9bXFwnIjw+e31dL2csIiIpfWZ1bmN0aW9uIHRfc3RvcmVfZ2V0UHJvZHVjdEZpcnN0SW1nKHQpe2lmKHQuZ2FsbGVyeSYmIlsiPT09dC5nYWxsZXJ5WzBdKXt2YXIgZT1KU09OLnBhcnNlKHQuZ2FsbGVyeSk7aWYoZVswXSYmZVswXS5pbWcpcmV0dXJuIGVbMF0uaW1nfXJldHVybiIifWZ1bmN0aW9uIHRfc3RvcmVfX2dldEZvcm1hdHRlZFByaWNlKHQsZSl7aWYobnVsbD09ZXx8MD09PWV8fCIiPT09ZSlyZXR1cm4iIjtlPShlPXRfc3RvcmVfX2NsZWFuUHJpY2UoZSkpLnRvU3RyaW5nKCk7dmFyIHI9ITEsbz0hMSxpOyh0LmN1cnJlbmN5RGVjaW1hbD9yPSIwMCI9PT10LmN1cnJlbmN5RGVjaW1hbDp2b2lkIDAhPT13aW5kb3cudGNhcnQmJnZvaWQgMCE9PXdpbmRvdy50Y2FydC5jdXJyZW5jeV9kZWMmJihyPSIwMCI9PT13aW5kb3cudGNhcnQuY3VycmVuY3lfZGVjKSx0LmN1cnJlbmN5U2VwYXJhdG9yP289Ii4iPT09dC5jdXJyZW5jeVNlcGFyYXRvcjp2b2lkIDAhPT13aW5kb3cudGNhcnQmJnZvaWQgMCE9PXdpbmRvdy50Y2FydC5jdXJyZW5jeV9zZXAmJihvPSIuIj09PXdpbmRvdy50Y2FydC5jdXJyZW5jeV9zZXApLHIpJiYoLTE9PT1lLmluZGV4T2YoIi4iKSYmLTE9PT1lLmluZGV4T2YoIiwiKT9lKz0iLjAwIjoxPT09ZS5zdWJzdHJpbmcoZS5pbmRleE9mKCIuIikrMSkubGVuZ3RoJiYoZSs9IjAiKSk7cmV0dXJuIGU9KGU9bz9lLnJlcGxhY2UoIiwiLCIuIik6ZS5yZXBsYWNlKCIuIiwiLCIpKS50b1N0cmluZygpLnJlcGxhY2UoL1xCKD89KFxkezN9KSsoPyFcZCkpL2csIiAiKX1mdW5jdGlvbiB0X3N0b3JlX19nZXRGb3JtYXR0ZWRNaW5QcmljZSh0LGUpe3ZhciByPWUubWluUHJpY2U7cmV0dXJuIG51bGwhPXImJihyPXRfc3RvcmVfX2dldEZvcm1hdHRlZFByaWNlKHQscikpLHJ9ZnVuY3Rpb24gdF9zdG9yZV9fZ2V0Rm9ybWF0dGVkUHJpY2VSYW5nZSh0LGUpe2lmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCwicHJvZENhcmQiKXx8dC5wcm9kQ2FyZC5zaG93T3B0c3x8IXQucHJpY2UucHJpY2VSYW5nZXx8IiI9PT10LnByaWNlLnByaWNlUmFuZ2V8fCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSwibWluUHJpY2UiKXx8IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLCJtYXhQcmljZSIpKXJldHVybiBudWxsO3ZhciByPWUubWluUHJpY2Usbz1lLm1heFByaWNlO2lmKG51bGw9PT1yfHxudWxsPT09b3x8cj09PW8pcmV0dXJuIG51bGw7cj10X3N0b3JlX19nZXRGb3JtYXR0ZWRQcmljZSh0LHIpLG89dF9zdG9yZV9fZ2V0Rm9ybWF0dGVkUHJpY2UodCxvKTt2YXIgaT10LnByaWNlLnByaWNlUmFuZ2U7cmV0dXJuInJhbmdlIj09PWk/cisi4oCUIitvOiJmcm9tIj09PWk/d2luZG93LnRTdG9yZURpY3QuZnJvbSsiICIrcjp2b2lkIDB9ZnVuY3Rpb24gdF9zdG9yZV9sb2FkTW9yZUJ0bl9kaXNwbGF5KHQpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWMiK3QpO2lmKGUpe3ZhciByPWUucXVlcnlTZWxlY3RvcigiLnQtc3RvcmVfX2xvYWQtbW9yZS1idG4td3JhcCIpLG89ZS5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtZ3JpZC1jb250LnQtc3RvcmVfX2dyaWQtY29udF9tb2JpbGUtb25lLXJvdyIpLGk9ISEod2luZG93LmlubmVyV2lkdGg8OTYwJiZvKTtyJiZyLmNsYXNzTGlzdC50b2dnbGUoInQtc3RvcmVfX2xvYWQtbW9yZS1idG4td3JhcF9oaWRkZW4iLGkpfX1mdW5jdGlvbiB0X3N0b3JlX29uZVByb2R1Y3RfaW5pdCh0LGUpe3ZhciByPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNyZWMiK3QrIiAuanMtc3RvcmUtcHJvZHVjdF9zaW5nbGUiKTtpZihyKXt2YXIgbz1yLmdldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LWdlbi11aWQiKTtvPXRfc3RvcmVfb25lUHJvZHVjdF9jbGVhclVpZChvKSxyLnNldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LWdlbi11aWQiLG8pLHdpbmRvdy50U3RvcmVJc1NlYXJjaEJvdHx8dF9zdG9yZV9vbmVQcm9kdWN0X3ByZWxvYWRlcl9hZGQodCk7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKS5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtbW9kZSIpO2UuaXNQdWJsaXNoZWRQYWdlPSJlZGl0IiE9PWkmJiJwcmV2aWV3IiE9PWk7dmFyIHM9d2luZG93LnRTdG9yZVNpbmdsZVByb2RzT2JqJiYhZS5wcmV2aWV3bW9kZTshd2luZG93LnRTdG9yZVNpbmdsZVByb2R1Y3RzSXNSZXF1ZXN0ZWR8fHM/KHRfc3RvcmVfb25lUHJvZHVjdF9yZXF1ZXN0QWxsU2luZ2xlKGUpLHdpbmRvdy50U3RvcmVTaW5nbGVQcm9kdWN0c0lzUmVxdWVzdGVkPSEwLHIuYWRkRXZlbnRMaXN0ZW5lcigidFN0b3JlU2luZ2xlUHJvZHVjdHNMb2FkZWQiLChmdW5jdGlvbigpe3Rfc3RvcmVfb25lUHJvZHVjdF9maWxsKHQsd2luZG93LnRTdG9yZVNpbmdsZVByb2RzT2JqW29dLGUpfSkpKTp3aW5kb3cudFN0b3JlU2luZ2xlUHJvZHNPYmo/dF9zdG9yZV9vbmVQcm9kdWN0X2ZpbGwodCx3aW5kb3cudFN0b3JlU2luZ2xlUHJvZHNPYmpbb10sZSk6ci5hZGRFdmVudExpc3RlbmVyKCJ0U3RvcmVTaW5nbGVQcm9kdWN0c0xvYWRlZCIsKGZ1bmN0aW9uKCl7dF9zdG9yZV9vbmVQcm9kdWN0X2ZpbGwodCx3aW5kb3cudFN0b3JlU2luZ2xlUHJvZHNPYmpbb10sZSl9KSl9fWZ1bmN0aW9uIHRfc3RvcmVfb25lUHJvZHVjdF9jbGVhclVpZCh0KXtyZXR1cm4gdC5yZXBsYWNlKCJwcm9kdWN0IGlkOiAiLCIiKX1mdW5jdGlvbiB0X3N0b3JlX29uZVByb2R1Y3RfcHJlbG9hZGVyX2FkZCh0KXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjIit0KSxyPWUucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLXByb2R1Y3Rfc2luZ2xlIik7aWYocil7dmFyIG89ci5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtc2luZ2xlLXByb2R1Y3QtaW5mbyIpO28uc3R5bGUuZGlzcGxheT0ibm9uZSIsY2xlYXJUaW1lb3V0KGUuZ2V0QXR0cmlidXRlKCJkYXRhLXByZWxvYWRlci10aW1lb3V0IikpO3ZhciBpPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dmFyIHQ9IiI7dCs9JzxkaXYgY2xhc3M9InQtc3RvcmVfX3NpbmdsZS1wcm9kLXByZWxvYWRlciIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPic7Zm9yKHZhciBlPSc8ZGl2IGNsYXNzPSJ0LXN0b3JlX19zaW5nbGUtcHJvZC1wcmVsb2FkZXJfX3RleHQiPjwvZGl2PicsaT0wO2k8NjtpKyspdCs9ZTt0Kz0iPC9kaXY+IixvLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlYmVnaW4iLHQpLHRfc3RvcmVfX2ZhZGVJbihyLnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19zaW5nbGUtcHJvZC1wcmVsb2FkZXIiKSl9KSwxZTMpO2Uuc2V0QXR0cmlidXRlKCJkYXRhLXByZWxvYWRlci10aW1lb3V0IixpKX19ZnVuY3Rpb24gdF9zdG9yZV9vbmVQcm9kdWN0X3ByZWxvYWRlcl9oaWRlKHQpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWMiK3QpLHI9ZS5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtcHJvZHVjdF9zaW5nbGUiKTtpZihyKXtjbGVhclRpbWVvdXQoZS5nZXRBdHRyaWJ1dGUoImRhdGEtcHJlbG9hZGVyLXRpbWVvdXQiKSk7dmFyIG89ci5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtc2luZ2xlLXByb2R1Y3QtaW5mbyIpO28mJihvLnN0eWxlLmRpc3BsYXk9IiIpO3ZhciBpPXIucXVlcnlTZWxlY3RvcignYS50LWJ0bltocmVmPSIjb3JkZXIiXScpLHM9aT9pLnBhcmVudEVsZW1lbnR8fGkucGFyZW50Tm9kZToiIjtzJiYocy5zdHlsZS5wb2ludGVyRXZlbnRzPSJpbmhlcml0IiksdF9zdG9yZV9fcmVtb3ZlRWxlbWVudChyLnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19zaW5nbGUtcHJvZC1wcmVsb2FkZXIiKSl9fWZ1bmN0aW9uIHRfc3RvcmVfb25lUHJvZHVjdF9yZXF1ZXN0QWxsU2luZ2xlKHQpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1zdG9yZS1wcm9kdWN0X3NpbmdsZSIpLHI9W107QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLChmdW5jdGlvbih0KXt2YXIgZT10LmdldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LWdlbi11aWQiKTtlPXRfc3RvcmVfb25lUHJvZHVjdF9jbGVhclVpZChlKSxyLnB1c2goZSl9KSk7dmFyIG89ZnVuY3Rpb24gdChyKXt2YXIgbz1yLnByb2R1Y3RzOyIiIT09bz8oci5vcHRpb25zJiZyLm9wdGlvbnMubGVuZ3RoJiYhd2luZG93LnRTdG9yZU9wdGlvbnNMaXN0JiYod2luZG93LnRTdG9yZU9wdGlvbnNMaXN0PXIub3B0aW9ucyksd2luZG93LnRTdG9yZVNpbmdsZVByb2RzT2JqPXRfc3RvcmVfb25lUHJvZHVjdF9wcm9kc0FyclRvQXNzb2NpYXRpdmUobyksQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLChmdW5jdGlvbih0KXt0X3N0b3JlX3RyaWdnZXJFdmVudCh0LCJ0U3RvcmVTaW5nbGVQcm9kdWN0c0xvYWRlZCIpfSkpKTpjb25zb2xlLmxvZygiU29tZXRoaW5nIHdlbnQgd3JvbmcuIENhbid0IGdldCBwcm9kdWN0cyBhcnJheSBieSB1aWQgbGlzdC4gUGxlYXNlIGNoZWNrIHByb2R1Y3RzIFVJRC4iKX07dF9zdG9yZV9sb2FkUHJvZHVjdHNfYnlJZChyLHQsbywoZnVuY3Rpb24oZSl7dF9zdG9yZV9jaGFuZ2VFbmRwb2ludChlLChmdW5jdGlvbigpe3Rfc3RvcmVfbG9hZFByb2R1Y3RzX2J5SWQocix0LG8pfSkpfSkpfWZ1bmN0aW9uIHRfc3RvcmVfb25lUHJvZHVjdF9wcm9kc0FyclRvQXNzb2NpYXRpdmUodCl7dmFyIGU9e307aWYoIXQpcmV0dXJuIGU7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBvPXRbcl07ZVtvLnVpZF09b31yZXR1cm4gZX1mdW5jdGlvbiB0X3N0b3JlX29uZVByb2R1Y3RfZmlsbCh0LGUscil7dmFyIG8saT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjIit0KS5xdWVyeVNlbGVjdG9yKCIuanMtcHJvZHVjdCIpO2lmKGkpe2lmKHRfc3RvcmVfb25lUHJvZHVjdF9wcmVsb2FkZXJfaGlkZSh0KSxpLnNldEF0dHJpYnV0ZSgiZGF0YS1jYXJkLXNpemUiLCJsYXJnZSIpLCFlKXJldHVybiB0X3N0b3JlX29uZVByb2R1Y3RfZXJyb3Jfc2hvdyh0LHIpLHRfc3RvcmVfcHJvZHVjdF90cmlnZ2VyU29sZE91dE1zZyhpLCEwLHIpLHZvaWQoIiI9PT1pLnF1ZXJ5U2VsZWN0b3IoIi5qcy1zdG9yZS1wcm9kLXByaWNlLW9sZC12YWwiKS50ZXh0Q29udGVudCYmKGkucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLXByb2QtcHJpY2Utb2xkIikuc3R5bGUuZGlzcGxheT0ibm9uZSIpKTt0X3N0b3JlX29uZVByb2R1Y3Rfc3VjY2Vzc01zZ19zaG93KHQsZSxyKSxpLnNldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LXBhY2stbGFiZWwiLGUucGFja19sYWJlbCksaS5zZXRBdHRyaWJ1dGUoImRhdGEtcHJvZHVjdC1wYWNrLW0iLGUucGFja19tKSxpLnNldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LXBhY2steCIsZS5wYWNrX3gpLGkuc2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtcGFjay15IixlLnBhY2tfeSksaS5zZXRBdHRyaWJ1dGUoImRhdGEtcHJvZHVjdC1wYWNrLXoiLGUucGFja196KSxpLnNldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LXVybCIsZS51cmx8fCIiKTt2YXIgcz1lLnBhcnR1aWRzJiZKU09OLnBhcnNlKGUucGFydHVpZHMpO2kuc2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtcGFydC11aWQiLHN8fCIiKSx0X3N0b3JlX2FkZFByb2R1Y3RPcHRpb25zKHQsZSxpLHIsImxhcmdlY2FyZCIpLHRfc3RvcmVfc25pcHBldF9jaG9vc2VFZGl0aW9uRnJvbVVybCh0LGUsaSxyKSx0X3N0b3JlX29uRnVuY0xvYWQoInRfcHJvZF9faW5pdCIsKGZ1bmN0aW9uKCl7dF9wcm9kX19pbml0KHQpfSkpO3ZhciBhPWkucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLXByb2Qtc2t1Iik7aWYoYSYmIm5vbmUiIT09YS5zdHlsZS5kaXNwbGF5KXt2YXIgbj1hLnBhcmVudE5vZGU7biYmbi5jbGFzc0xpc3QuY29udGFpbnMoInQtZGVzY3IiKSYmYS5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWJlZ2luIix3aW5kb3cudFN0b3JlRGljdC5za3UrIjogIil9dF9zdG9yZV9vcHRpb25faGFuZGxlT25DaGFuZ2UoaSksdF9zdG9yZV9vcHRpb25faGFuZGxlT25DaGFuZ2VfY3VzdG9tKHQsaSxyKX19ZnVuY3Rpb24gdF9zdG9yZV9vbmVQcm9kdWN0X3N1Y2Nlc3NNc2dfc2hvdyh0LGUscil7aWYoIXIucHJldmlld21vZGUpe3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWMiK3QpLGk9IlJVIj09PXdpbmRvdy50U3RvcmVCcm93c2VyTGFuZz8i0KLQvtCy0LDRgCDRg9GB0L/QtdGI0L3QviDRgdCy0Y/Qt9Cw0L0g0YEg0LrQsNGC0LDQu9C+0LPQvtC8LiDQndCw0LfQstCw0L3QuNC1INGC0L7QstCw0YDQsCDQsiDQutCw0YLQsNC70L7Qs9C1OiAiOiJQcm9kdWN0IGlzIGNvbm5lY3RlZCB0byBjYXRhbG9nLiBQcm9kdWN0IG5hbWUgaW4gY2F0YWxvZyBpcyAiO3Rfc3RvcmVfc2hvd01zZ0luUmVkYWN0b3IobyxpKz0iPGI+IitlLnRpdGxlKyI8L2I+Iiwic3VjY2VzcyIpfX1mdW5jdGlvbiB0X3N0b3JlX29uZVByb2R1Y3RfZXJyb3Jfc2hvdyh0LGUpe3ZhciByLG87ZS5wcmV2aWV3bW9kZXx8dF9zdG9yZV9zaG93TXNnSW5SZWRhY3Rvcihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjIit0KSwiUlUiPT09d2luZG93LnRTdG9yZUJyb3dzZXJMYW5nPyLQndC1INGD0LTQsNC10YLRgdGPINC/0L7Qu9GD0YfQuNGC0Ywg0YLQvtCy0LDRgCDQuNC3INC60LDRgtCw0LvQvtCz0LAuINCS0L7Qt9C80L7QttC90L4g0L7QvSDQsdGL0Lsg0YPQtNCw0LvQtdC9INC40LvQuCDQvtGC0LrQu9GO0YfQtdC9LiDQn9C+0LbQsNC70YPQudGB0YLQsCwg0L/RgNC+0LLQtdGA0YzRgtC1LCDRh9GC0L4g0YLQvtCy0LDRgCDRgSDRgtCw0LrQuNC8IElEINGB0YPRidC10YHRgtCy0YPQtdGCLiI6IkNhbid0IGZpbmQgYSBwcm9kdWN0IGluIHRoZSBjYXRhbG9nLiBJdCBtYXkgaGF2ZSBiZWVuIGRlbGV0ZWQgb3IgZGlzYWJsZWQuIFBsZWFzZSBjaGVjayB0aGF0IHRoZSBwcm9kdWN0IHdpdGggdGhpcyBJRCBleGlzdHMuIiwiZXJyb3IiKX1mdW5jdGlvbiB0X3N0b3JlX3Nob3dNc2dJblJlZGFjdG9yKHQsZSxyKXt2YXIgbzt0X3N0b3JlX19yZW1vdmVFbGVtZW50KHQucXVlcnlTZWxlY3RvcigiLmpzLXN0b3JlLW1zZyIpKTt2YXIgaSxzPSJzdWNjZXNzIj09PXI/IiM2MkM1ODQiOiJ5ZWxsb3ciLGE9IiI7YSs9JzxkaXYgY2xhc3M9ImpzLXN0b3JlLW1zZyIgc3R5bGU9Im1hcmdpbjogMDt0ZXh0LWFsaWduOiBsZWZ0OyBmb250LWZhbWlseTogdGZ1dHVyYSxBcmlhbCxzYW5zLXNlcmlmOyBjb2xvcjogJysoInN1Y2Nlc3MiPT09cj8iI2ZmZiI6IiMwMDAiKSsnOyI+JyxhKz0nICAgPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogJytzKyc7IHBhZGRpbmc6IDE2cHggMjBweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgbWFyZ2luLWJvdHRvbTogMzBweDsgcG9zaXRpb246IHJlbGF0aXZlOyIgY2xhc3M9InQtY29udGFpbmVyIj4nLGErPScgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAyMHB4OyBib3R0b206IC00MHB4OyI+JyxhKz0nICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIGhlaWdodD0iNDBweCIgd2lkdGg9IjQwcHgiPjxwb2x5Z29uIGZpbGw9IicrcysnIiBzdHJva2U9IicrcysnIiBzdHJva2Utd2lkdGg9IjAiIHBvaW50cz0iMCwwIDQwLDAgMCwyMCAwLDAiPjwvcG9seWdvbj48L3N2Zz4nLGErPSIgICAgICAgPC9kaXY+IixhKz1lLGErPSIgICA8L2Rpdj4iLGErPSI8L2Rpdj4iLHQuaW5zZXJ0QWRqYWNlbnRIVE1MKCJhZnRlcmJlZ2luIixhKX1mdW5jdGlvbiB0X3N0b3JlX2lzUXVlcnlJbkFkZHJlc3NCYXIodCl7dmFyIGU7dHJ5e2U9ZGVjb2RlVVJJKHdpbmRvdy5sb2NhdGlvbi5ocmVmKX1jYXRjaChyKXtjb25zb2xlLmxvZyhyKSxlPXdpbmRvdy5sb2NhdGlvbi5ocmVmfXJldHVybiEhZSYmLTEhPT1lLmluZGV4T2YodCl9ZnVuY3Rpb24gdF9zdG9yZV9nZXRDb2x1bW5XaWR0aCh0KXt2YXIgZSxyLG87cmV0dXJue21pbldpZHRoMTIwMDp7Y29sXzE6NjAsY29sXzI6MTYwLGNvbF8zOjI2MCxjb2xfNDozNjAsY29sXzU6NDYwLGNvbF82OjU2MCxjb2xfNzo2NjAsY29sXzg6NzYwLGNvbF85Ojg2MCxjb2xfMTA6OTYwLGNvbF8xMToxMDYwLGNvbF8xMjoxMTYwfSxtYXhXaWR0aDEyMDA6e2NvbF8xOjYwLGNvbF8yOjE0MCxjb2xfMzoyMjAsY29sXzQ6MzAwLGNvbF81OjM4MCxjb2xfNjo0NjAsY29sXzc6NTQwLGNvbF84OjYyMCxjb2xfOTo3MDAsY29sXzEwOjc4MCxjb2xfMTE6ODYwLGNvbF8xMjo5NDB9fVsod2luZG93LmlubmVyV2lkdGh8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aHx8ZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCk+MTIwMD8ibWluV2lkdGgxMjAwIjoibWF4V2lkdGgxMjAwIl1bImNvbF8iK3RdfWZ1bmN0aW9uIHRfc3RvcmVfb3B0aW9uX2dldE9wdGlvbnNEYXRhKCl7dmFyIHQ9d2luZG93LnRTdG9yZU9wdGlvbnNMaXN0O2lmKCF0KXJldHVybiBudWxsO2Zvcih2YXIgZT17fSxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBvPXRbcl0saT1vLnRpdGxlO28ucGFyYW1zJiYic3RyaW5nIj09dHlwZW9mIG8ucGFyYW1zJiYoby5wYXJhbXM9SlNPTi5wYXJzZShvLnBhcmFtcykpLG8udmFsdWVzJiYic3RyaW5nIj09dHlwZW9mIG8udmFsdWVzJiYoby52YWx1ZXM9SlNPTi5wYXJzZShvLnZhbHVlcykpLGVbaV09b31yZXR1cm4gZX1mdW5jdGlvbiB0X3N0b3JlX29wdGlvbl9jaGVja0lmQ3VzdG9tKHQpe3ZhciBlPXQucGFyYW1zO3JldHVybiEoIWV8fEFycmF5LmlzQXJyYXkoZSkpJiYoISghZS52aWV3fHwic2VsZWN0Ij09PWUudmlldyl8fCEoIWUuaGFzQ29sb3ImJiFlLmxpbmtJbWFnZSkpfWZ1bmN0aW9uIHRfc3RvcmVfb3B0aW9uX2hhbmRsZU9uQ2hhbmdlX2N1c3RvbSh0LGUscil7dmFyIG89ZnVuY3Rpb24gZSgpe3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbGxyZWNvcmRzIiksaT1vJiYiZWRpdCI9PT1vLmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1tb2RlIikscz10aGlzLmNsb3Nlc3QoIi5qcy1wcm9kdWN0LWVkaXRpb24tb3B0aW9uIiksYT1zLnF1ZXJ5U2VsZWN0b3IoIi50LXByb2R1Y3RfX29wdGlvbi12YXJpYW50c19jdXN0b20iKTtpZihzJiZhKXt2YXIgbj10aGlzLnZhbHVlLGQ9YS5xdWVyeVNlbGVjdG9yKCIudC1wcm9kdWN0X19vcHRpb24taXRlbV9hY3RpdmUiKTtpZihkKXt2YXIgYz1kLnF1ZXJ5U2VsZWN0b3IoIi50LXByb2R1Y3RfX29wdGlvbi1pbnB1dCIpO2lmKGMudmFsdWUhPT1uKXtjLmNoZWNrZWQ9ITEsbj0obnx8IiIpLnJlcGxhY2UoLyIvZywnXFwiJyk7dmFyIGw9YS5xdWVyeVNlbGVjdG9yKCcudC1wcm9kdWN0X19vcHRpb24taW5wdXRbdmFsdWU9IicrbisnIl0nKTtzZXRUaW1lb3V0KChmdW5jdGlvbigpe2kmJmwuY2xpY2soKSxsLmNoZWNrZWQ9ITB9KSksZC5jbGFzc0xpc3QucmVtb3ZlKCJ0LXByb2R1Y3RfX29wdGlvbi1pdGVtX2FjdGl2ZSIpLGwucGFyZW50Tm9kZS5jbGFzc0xpc3QuYWRkKCJ0LXByb2R1Y3RfX29wdGlvbi1pdGVtX2FjdGl2ZSIpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dF9zdG9yZV91bmlmeUNhcmRzSGVpZ2h0cyh0LHIpLHIudmVydGljYWxBbGlnbkJ1dHRvbnMmJnRfc3RvcmVfdmVydGljYWxBbGlnbkJ1dHRvbnModCxyKSx0X3N0b3JlX3RyaWdnZXJFdmVudChkb2N1bWVudC5ib2R5LCJ0d2lzaGxpc3RfYWRkYnRuIil9KSw1MCl9fX1lbHNlIHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dF9zdG9yZV90cmlnZ2VyRXZlbnQoZG9jdW1lbnQuYm9keSwidHdpc2hsaXN0X2FkZGJ0biIpfSksNTApfTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGUucXVlcnlTZWxlY3RvckFsbCgiLmpzLXByb2R1Y3QtZWRpdGlvbi1vcHRpb24tdmFyaWFudHMiKSwoZnVuY3Rpb24odCl7dmFyIGUscjt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNoYW5nZSIsbyksdC5jbG9zZXN0KCIuanMtcHJvZHVjdC1lZGl0aW9uLW9wdGlvbiIpLnF1ZXJ5U2VsZWN0b3IoIi50LXByb2R1Y3RfX29wdGlvbi12YXJpYW50c19jdXN0b20iKSYmdC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLG8pfSkpLEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZS5xdWVyeVNlbGVjdG9yQWxsKCIudC1wcm9kdWN0X19vcHRpb24tdmFyaWFudHNfY3VzdG9tIiksKGZ1bmN0aW9uKGUpe3ZhciBvPWUucXVlcnlTZWxlY3RvckFsbCgiLnQtcHJvZHVjdF9fb3B0aW9uLWlucHV0IiksaT1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi50LXByb2R1Y3RfX29wdGlvbi1pdGVtIikscz1lLnBhcmVudE5vZGUucXVlcnlTZWxlY3RvcigiLnQtcHJvZHVjdF9fb3B0aW9uLXZhcmlhbnRzX3JlZ3VsYXIgLmpzLXByb2R1Y3QtZWRpdGlvbi1vcHRpb24tdmFyaWFudHMiKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG8sKGZ1bmN0aW9uKGUpe2UuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwoZnVuY3Rpb24oKXt2YXIgZT10aGlzLnZhbHVlO2U9ZS5yZXBsYWNlKC8mL2csIiZhbXA7Iikscy52YWx1ZT1lLHRfdHJpZ2dlckV2ZW50KHMsImNoYW5nZSIpLEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoaSwoZnVuY3Rpb24odCl7dC5jbGFzc0xpc3QucmVtb3ZlKCJ0LXByb2R1Y3RfX29wdGlvbi1pdGVtX2FjdGl2ZSIpfSkpLHRoaXMucGFyZW50Tm9kZS5jbGFzc0xpc3QuYWRkKCJ0LXByb2R1Y3RfX29wdGlvbi1pdGVtX2FjdGl2ZSIpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dF9zdG9yZV91bmlmeUNhcmRzSGVpZ2h0cyh0LHIpLHIudmVydGljYWxBbGlnbkJ1dHRvbnMmJnRfc3RvcmVfdmVydGljYWxBbGlnbkJ1dHRvbnModCxyKX0pLDUwKX0pKX0pKX0pKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGUucXVlcnlTZWxlY3RvckFsbCgiLnQtcHJvZHVjdF9fb3B0aW9uLXNlbGVjdGVkX3NlbGVjdCIpLChmdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbiB0KCl7dGhpcy5uZXh0RWxlbWVudFNpYmxpbmcuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LXByb2R1Y3RfX29wdGlvbi12YXJpYW50c19jdXN0b20iKSYmdGhpcy5uZXh0RWxlbWVudFNpYmxpbmcuY2xhc3NMaXN0LnRvZ2dsZSgidC1wcm9kdWN0X19vcHRpb24tdmFyaWFudHNfaGlkZGVuIiksInkiPT09d2luZG93LmxhenkmJnRfbGF6eWxvYWRfdXBkYXRlKCl9O3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLGUpLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGUpO3ZhciByPXQucGFyZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIudC1wcm9kdWN0X19vcHRpb24tdmFyaWFudHNfY3VzdG9tIiksbz1yLnF1ZXJ5U2VsZWN0b3JBbGwoIi50LXByb2R1Y3RfX29wdGlvbi1pdGVtIiksaT1mdW5jdGlvbiB0KCl7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChvLChmdW5jdGlvbih0KXt0LmNsYXNzTGlzdC5yZW1vdmUoInQtcHJvZHVjdF9fb3B0aW9uLWl0ZW1fYWN0aXZlIil9KSksdGhpcy5jbGFzc0xpc3QuYWRkKCJ0LXByb2R1Y3RfX29wdGlvbi1pdGVtX2FjdGl2ZSIpLHRoaXMuY2xvc2VzdCgiLnQtcHJvZHVjdF9fb3B0aW9uLXZhcmlhbnRzX2N1c3RvbSIpLmNsYXNzTGlzdC5hZGQoInQtcHJvZHVjdF9fb3B0aW9uLXZhcmlhbnRzX2hpZGRlbiIpO3ZhciBlPXRoaXMucXVlcnlTZWxlY3RvcigiLnQtcHJvZHVjdF9fb3B0aW9uLXRpdGxlIikudGV4dENvbnRlbnQscjt0aGlzLmNsb3Nlc3QoIi50LXByb2R1Y3RfX29wdGlvbiIpLnF1ZXJ5U2VsZWN0b3IoIi50LXByb2R1Y3RfX29wdGlvbi1zZWxlY3RlZC10aXRsZSIpLnRleHRDb250ZW50PWU7dmFyIGk9dGhpcy5jbG9zZXN0KCIudC1wcm9kdWN0X19vcHRpb24iKS5xdWVyeVNlbGVjdG9yKCIudC1wcm9kdWN0X19vcHRpb24tc2VsZWN0ZWQudC1wcm9kdWN0X19vcHRpb24tc2VsZWN0ZWRfY29sb3IiKTtpZihpKXt2YXIgcz10aGlzLnF1ZXJ5U2VsZWN0b3IoIi50LXByb2R1Y3RfX29wdGlvbi1jaGVja21hcmtfY29sb3IiKS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IsYTsoYT1pLnF1ZXJ5U2VsZWN0b3IoIi50LXByb2R1Y3RfX29wdGlvbi1zZWxlY3RlZC1jaGVja21hcmsiKSkuc3R5bGUuYmFja2dyb3VuZENvbG9yPXN9dmFyIG49dGhpcy5jbG9zZXN0KCIudC1wcm9kdWN0X19vcHRpb24iKS5xdWVyeVNlbGVjdG9yKCIudC1wcm9kdWN0X19vcHRpb24tc2VsZWN0ZWQudC1wcm9kdWN0X19vcHRpb24tc2VsZWN0ZWRfaW1hZ2UiKTtpZihuKXt2YXIgZD10aGlzLnF1ZXJ5U2VsZWN0b3IoIi50LXByb2R1Y3RfX29wdGlvbi1jaGVja21hcmtfaW1hZ2UiKS5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UsYz10aGlzLnF1ZXJ5U2VsZWN0b3IoIi50LXByb2R1Y3RfX29wdGlvbi1jaGVja21hcmtfaW1hZ2UiKS5nZXRBdHRyaWJ1dGUoImRhdGEtb3JpZ2luYWwiKSxhOyhhPW4ucXVlcnlTZWxlY3RvcigiLnQtcHJvZHVjdF9fb3B0aW9uLXNlbGVjdGVkLWNoZWNrbWFyayIpKS5zZXRBdHRyaWJ1dGUoImRhdGEtb3JpZ2luYWwiLGMpLGEuc3R5bGUuYmFja2dyb3VuZEltYWdlPSJub25lIixhLnN0eWxlLmJhY2tncm91bmRJbWFnZT1kfX07QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChvLChmdW5jdGlvbih0KXt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixpKSx0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixpKX0pKTt2YXIgcz1mdW5jdGlvbiB0KGUpe3ZhciBvPWUudGFyZ2V0LGk7ci5jbG9zZXN0KCIuanMtcHJvZHVjdC1lZGl0aW9uLW9wdGlvbiIpLmNvbnRhaW5zKG8pfHxyLmNsYXNzTGlzdC5hZGQoInQtcHJvZHVjdF9fb3B0aW9uLXZhcmlhbnRzX2hpZGRlbiIpfTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKFsiY2xpY2siLCJvdXRzaWRlQ3VzdG9tRHJvcGRvd24iXSwoZnVuY3Rpb24odCl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LHMpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIodCxzKX0pKX0pKX1mdW5jdGlvbiB0X3N0b3JlX29wdGlvbl9oYW5kbGVPbkNoYW5nZSh0KXt2YXIgZT1mdW5jdGlvbiBlKCl7dmFyIHI9dGhpcy5jbG9zZXN0KCIuanMtcHJvZHVjdC1lZGl0aW9uLW9wdGlvbiIpO3ImJnRfc3RvcmVfdHJpZ2dlckV2ZW50KHIsImNoYW5nZSIpLHRfc3RvcmVfdHJpZ2dlckV2ZW50KHQsInRTdG9yZVZhcmlhbnRDaGFuZ2UiKX07QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1wcm9kdWN0LWVkaXRpb24tb3B0aW9uLXZhcmlhbnRzIiksKGZ1bmN0aW9uKHQpe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixlKSx0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZSl9KSl9ZnVuY3Rpb24gdF9zdG9yZV91bmVzY2FwZUh0bWwodCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTtyZXR1cm4gZS5pbm5lckhUTUw9dCxlLnZhbHVlfWZ1bmN0aW9uIHRfc3RvcmVfb25GdW5jTG9hZCh0LGUscil7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHdpbmRvd1t0XSllKCk7ZWxzZXt2YXIgbz1EYXRlLm5vdygpLGk9bmV3IEVycm9yKHQrIiBpcyB1bmRlZmluZWQiKSxzPWZ1bmN0aW9uIHQoKXt0aHJvdyBpfTtzZXRUaW1lb3V0KChmdW5jdGlvbiBpKCl7dmFyIGE9RGF0ZS5ub3coKTsiZnVuY3Rpb24iIT10eXBlb2Ygd2luZG93W3RdPygiY29tcGxldGUiPT09ZG9jdW1lbnQucmVhZHlTdGF0ZSYmYS1vPjdlMyYmImZ1bmN0aW9uIiE9dHlwZW9mIHdpbmRvd1t0XSYmcygpLHNldFRpbWVvdXQoaSxyfHwxMDApKTplKCl9KSl9fWZ1bmN0aW9uIHRfc3RvcmVfaGV4VG9SZ2IodCl7dmFyIGU9L14jPyhbYS1mXGRdKShbYS1mXGRdKShbYS1mXGRdKSQvaTt0PXQucmVwbGFjZShlLChmdW5jdGlvbih0LGUscixvKXtyZXR1cm4gZStlK3IrcitvK299KSk7dmFyIHI9L14jPyhbYS1mXGRdezJ9KShbYS1mXGRdezJ9KShbYS1mXGRdezJ9KSQvaS5leGVjKHQpLG89cj97cjpwYXJzZUludChyWzFdLDE2KSxnOnBhcnNlSW50KHJbMl0sMTYpLGI6cGFyc2VJbnQoclszXSwxNil9Om51bGw7cmV0dXJuIHI/W28ucixvLmcsby5iXTpudWxsfWZ1bmN0aW9uIHRfc3RvcmVfZ2V0Rmlyc3RDb2xvckZyb21HcmFkaWVudCh0KXt2YXIgZT0vcmdiYVwoXGQrLFxkKyxcZCssXGQrXCkvZ2kscj0vKFxkKyksKFxkKyksKFxkKykvaSxvPXQubWF0Y2goZSksaT1vP29bMF06bnVsbCxzPXIuZXhlYyhpKSxhPXM/e3I6c1sxXSxnOnNbMl0sYjpzWzNdfTpudWxsO3JldHVybiBzP1thLnIsYS5nLGEuYl06bnVsbH1mdW5jdGlvbiB0X3N0b3JlX2x1bWFfcmdiKHQpe3ZhciBlPUFycmF5LmlzQXJyYXkodCk7aWYodm9pZCAwPT09dClyZXR1cm4iYmxhY2siO2lmKDAhPT10LmluZGV4T2YoInJnYiIpJiYhZSlyZXR1cm4iYmxhY2siO3ZhciByPWU/dDp0LnNwbGl0KCIoIilbMV0uc3BsaXQoIikiKVswXS5zcGxpdCgiLCIpO3JldHVybiByLmxlbmd0aDwzfHwuMjEyNipyWzBdKy43MTUyKnJbMV0rLjA3MjIqclsyXT4xMjg/ImJsYWNrIjoid2hpdGUifWZ1bmN0aW9uIHRfc3RvcmVfZ2V0TGlnaHRuZXNzQ29sb3IodCl7dmFyIGUscixvO2lmKC0xPT09dC5pbmRleE9mKCJyZ2IiKSl7dmFyIGk9cGFyc2VJbnQodC5pbmRleE9mKCIjIik+LTE/dC5zdWJzdHJpbmcoMSk6dCwxNik7ZT17cjppPj4xNixnOig2NTI4MCZpKT4+OCxiOjI1NSZpfX1lbHNle3ZhciBzLGE9dC5yZXBsYWNlKC9bXlxkLC5dL2csIiIpLnNwbGl0KCIsIik7ZT17cjphWzBdLGc6YVsxXSxiOmFbMl19fXJldHVybiBlLnIvPTI1NSxlLmcvPTI1NSxlLmIvPTI1NSwoTWF0aC5tYXgoZS5yLGUuZyxlLmIpK01hdGgubWluKGUucixlLmcsZS5iKSkvMn1mdW5jdGlvbiB0X3N0b3JlX3JlbW92ZVJnYk9wYWNpdHkodCl7aWYoIXR8fCF0Lmxlbmd0aClyZXR1cm4gbnVsbDt2YXIgZT10LnNwbGl0KCIsIik7cmV0dXJuIGVbM10mJihlWzNdPSIxKSIpLGUuam9pbigpfWZ1bmN0aW9uIHRfc3RvcmVfc25pcHBldF9nZXRKc29uRnJvbVVybCgpe3ZhciB0LGU9d2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSkscj17fTtyZXR1cm4gZS5zcGxpdCgiJiIpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXQuc3BsaXQoIj0iKTt0cnl7cltlWzBdXT1kZWNvZGVVUklDb21wb25lbnQoZVsxXSl9Y2F0Y2gobyl7Y29uc29sZS5sb2cobykscltlWzBdXT1lWzFdfX0pKSxyfWZ1bmN0aW9uIHRfc3RvcmVfX2NsZWFuUHJpY2UodCl7cmV0dXJuIHQ/KHQ9KHQ9dC50b1N0cmluZygpKS5yZXBsYWNlKCIsIiwiLiIpLnJlcGxhY2UoL1teMC05Ll0vZywiIiksdD1wYXJzZUZsb2F0KHQpLnRvRml4ZWQoMiksaXNOYU4odCkmJih0PTApLHQ9cGFyc2VGbG9hdCh0KSwodCo9MSk8MCYmKHQ9MCkpOnQ9MCx0fWZ1bmN0aW9uIHRfc3RvcmVfX3JlbW92ZUVsZW1lbnQodCl7dCYmdC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCl9ZnVuY3Rpb24gdF9zdG9yZV9fZmFkZUluKHQsZSl7aWYoKCIxIj09PWdldENvbXB1dGVkU3R5bGUodCkub3BhY2l0eXx8IiI9PT1nZXRDb21wdXRlZFN0eWxlKHQpLm9wYWNpdHkpJiYibm9uZSIhPT1nZXRDb21wdXRlZFN0eWxlKHQpLmRpc3BsYXkpcmV0dXJuITE7dmFyIHI9MDtlfHwoZT0yMDApO3ZhciBvPShlPXBhcnNlSW50KGUpKT4wP2UvMTA6NDA7dC5zdHlsZS5vcGFjaXR5PXIsdC5zdHlsZS5kaXNwbGF5PSJibG9jayI7dmFyIGk9c2V0SW50ZXJ2YWwoKGZ1bmN0aW9uKCl7dC5zdHlsZS5vcGFjaXR5PXIsKHIrPS4xKT49MSYmY2xlYXJJbnRlcnZhbChpKX0pLG8pfWZ1bmN0aW9uIHRfc3RvcmVfX3NlcmlhbGl6ZURhdGEodCxlKXt2YXIgcj1bXTtmb3IodmFyIG8gaW4gdClpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxvKSl7dmFyIGk9ZT9lKyJbIitvKyJdIjpvLHM9dFtvXSxhOyJ7fSIhPT1KU09OLnN0cmluZ2lmeShzKSYmbnVsbCE9PXMmJnIucHVzaChudWxsIT09cyYmIm9iamVjdCI9PXR5cGVvZiBzP3Rfc3RvcmVfX3NlcmlhbGl6ZURhdGEocyxpKTplbmNvZGVVUklDb21wb25lbnQoaSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChzKSl9cmV0dXJuIHIuam9pbigiJiIpfWZ1bmN0aW9uIHRfc3RvcmVfY2hhbmdlRW5kcG9pbnQodCxlKXt2YXIgcj0iIjt0JiYodC5zdGF0dXM+PTUwMHx8NDA4PT10LnN0YXR1c3x8NDEwPT10LnN0YXR1c3x8NDI5PT10LnN0YXR1c3x8InRpbWVvdXQiPT09dC50eXBlKSYmLTEhPT13aW5kb3cudF9zdG9yZV9lbmRwb2ludC5pbmRleE9mKCJzdG9yZS50aWxkYSIpPyh3aW5kb3cudF9zdG9yZV9lbmRwb2ludD0ic3RvcmUyLnRpbGRhY2RuLmNvbSIsImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUoKSk6KHI9dCYmdC5yZXNwb25zZVRleHQ+IiI/IlsiK3Quc3RhdHVzKyJdICIrdC5yZXNwb25zZVRleHQ6dCYmdC5zdGF0dXNUZXh0PyJFcnJvciBbIit0LnN0YXR1cysiLCAiK3Quc3RhdHVzVGV4dCsiXSI6IkVycm9yIHR5cGUgWyIrdC50eXBlKyJdIixjb25zb2xlLmxvZyhyKyIuIFBsZWFzZSwgdHJ5IGFnYWluIGxhdGVyLiIpKX1mdW5jdGlvbiB0X3N0b3JlX3BhcmFtc1RvT2JqKHQsZSl7dmFyIHI9d2luZG93LmxvY2F0aW9uLnNlYXJjaDt0cnl7cj1yLnJlcGxhY2UoLyUyNS9nLCIlIikscj1kZWNvZGVVUkkocil9Y2F0Y2gobCl7Y29uc29sZS5sb2cobCl9dmFyIG89e290aGVyUGFyYW1zOltdfTtvW3RdPXt9O3RyeXtyPXIucmVwbGFjZSgvJmFtcDsvZywiJTI2YW1wIil9Y2F0Y2gocCl7Y29uc29sZS5sb2cocCl9dmFyIGk9ci5zbGljZSgxKS5zcGxpdCgiJiIpLHM7KGk9aS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoLyUyNmFtcC9nLCImYW1wOyIpfSkpLG8ub3RoZXJQYXJhbXM9aS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiEoL150ZmNfL2kudGVzdCh0KXx8L15zXy9pLnRlc3QodCkpJiZ0fSkpLC0xIT09d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigic19yZWNpZD0iKSk/d2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoInNfcmVjaWQ9IilbMV0uc3BsaXQoIiYiKVswXT09PXQmJmkuc3BsaWNlKDEpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3RyeXt2YXIgcj0vXnNfL2kudGVzdChlKSxpO2lmKCFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcmVjIit0KSlyZXR1cm47aWYob1t0XXx8KG9bdF09e30pLHIpe3ZhciBzPShlPShlPWUucmVwbGFjZSgvXnNfL2ksInRmY18iKSkucmVwbGFjZSgvJTNBL2dpLCI6IikpLnNwbGl0KCI9IiksYT1zWzBdLG49c1sxXS5yZXBsYWNlKC9cKy9nLCIgIikuc3BsaXQoIjo6OiIpLGQ9YS5yZXBsYWNlKC9edGZjXy9pLCIiKTtvW3RdW2RdPW9bdF1bZF0/b1t0XVtkXS5jb25jYXQobik6bn19Y2F0Y2gocCl7Y29uc29sZS5sb2cocCl9fSkpOi0xIT09d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigidGZjXyIpJiZpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXQuc3BsaXQoIj0iKTt0cnl7dmFyIHI7aWYoL150ZmNfL2kudGVzdCh0KSYmInRmY19kaXYiIT09ZVswXSl7dmFyIGk9ZVswXSxzO3M9LTEhPT13aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCJ0ZmNfZGl2Iik/ZVsxXS5yZXBsYWNlKC9cKy9nLCIgIikucmVwbGFjZSgvJTJCL2csIisiKS5zcGxpdCgiOjo6Iik6ZVsxXS5yZXBsYWNlKC9cKy9nLCIgIikuc3BsaXQoIiUyQiIpO3ZhciBhPW5ldyBSZWdFeHAoL1xbXGQuKlxdJC8sImdpIiksbj1pLm1hdGNoKGEpLGQ9bj9OdW1iZXIoSlNPTi5wYXJzZShuWzBdKSk6bnVsbCxjO2lmKCFkKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIkNhbid0IGZpbmQgcmVjaWQgaW4gVVJMIHBhcmFtIik7aWYoIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNyZWMiK2QpKXJldHVybjt2YXIgbD1pLnJlcGxhY2UoYSwiIikucmVwbGFjZSgidGZjXyIsIiIpO29bZF18fChvW2RdPXt9KSxvW2RdW2xdPW9bZF1bbF0/b1tkXVtsXS5jb25jYXQocyk6c319Y2F0Y2gocCl7Y29uc29sZS5sb2cocCl9fSkpO3dpbmRvdy50U3RvcmVDdXN0b21VcmxQYXJhbXM9byx0X3N0b3JlX3BhcmFtc1RvT2JqX3VwZGF0ZVVybChvKTt2YXIgYT10X3N0b3JlX3BhcmFtc1RvT2JqX2dldERlZmF1bHRTb3J0KHQsZS5kZWZhdWx0U29ydCk7Zm9yKHZhciBuIGluIGEpe3ZhciBkPWFbbl0uc29ydCxjPWFbbl0ucXVhbnRpdHk7KGR8fGMpJiYob1tuXSYmb1tuXS5zb3J0JiZlLnByZXZpZXdtb2RlfHxkJiYob1tuXXx8KG9bbl09e30pLG9bbl0uc29ydD1kKSxvW25dJiZvW25dLnF1YW50aXR5JiYib2JqZWN0Ij09dHlwZW9mIG9bbl0ucXVhbnRpdHkmJiJ5Ij09PW9bbl0ucXVhbnRpdHlbMF0mJmUucHJldmlld21vZGV8fGMmJihvW25dfHwob1tuXT17fSksb1t0XS5xdWFudGl0eXx8KG9bbl0ucXVhbnRpdHk9WyJ5Il0pKSl9cmV0dXJuIHdpbmRvdy50U3RvcmVDdXN0b21VcmxQYXJhbXM9byxvfWZ1bmN0aW9uIHRfc3RvcmVfcGFyYW1zVG9PYmpfdXBkYXRlVXJsKHQpe3ZhciBlPXRfc3RvcmVfY3VzdG9tVVJMUGFyYW1zVG9TdHJpbmcodCk7d2luZG93LmxvY2F0aW9uLmhhc2gmJihlKz13aW5kb3cubG9jYXRpb24uaGFzaCk7dHJ5e3dpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLG51bGwsZSl9Y2F0Y2gocil7Y29uc29sZS5sb2cocil9fWZ1bmN0aW9uIHRfc3RvcmVfcGFyYW1zVG9PYmpfZ2V0RGVmYXVsdFNvcnQodCxlKXt2YXIgcj13aW5kb3cudFN0b3JlRGVmYXVsdFNvcnQ/d2luZG93LnRTdG9yZURlZmF1bHRTb3J0Ont9O2lmKCFlKXJldHVybiByO2lmKGUuZGVmYXVsdCl7dmFyIG89eyJzb3J0LXByaWNlLWFzYyI6InByaWNlOmFzYyIsInNvcnQtcHJpY2UtZGVzYyI6InByaWNlOmRlc2MiLCJzb3J0LW5hbWUtYXNjIjoidGl0bGU6YXNjIiwic29ydC1uYW1lLWRlc2MiOiJ0aXRsZTpkZXNjIiwic29ydC1jcmVhdGVkLWFzYyI6ImNyZWF0ZWQ6YXNjIiwic29ydC1jcmVhdGVkLWRlc2MiOiJjcmVhdGVkOmRlc2MifTtyW3RdfHwoclt0XT17fSksclt0XS5zb3J0PW5ldyBBcnJheShvW2UuZGVmYXVsdF0pfXJldHVybiBlLmluX3N0b2NrJiYoclt0XXx8KHJbdF09e30pLHJbdF0ucXVhbnRpdHl8fChyW3RdLnF1YW50aXR5PVsieSJdKSksd2luZG93LnRTdG9yZURlZmF1bHRTb3J0PXIscn1mdW5jdGlvbiB0X3N0b3JlX2N1c3RvbVVSTFBhcmFtc1RvU3RyaW5nKHQpe3ZhciBlPSIiLHI9IiI7Zm9yKHZhciBvIGluIHQpe3ZhciBpPXRbb107aWYoIm90aGVyUGFyYW1zIiE9PW8pZm9yKHZhciBzIGluIGkpdHJ5e3ZhciBhPUFycmF5LmlzQXJyYXkoaVtzXSk/aVtzXS5qb2luKCJbW1BMVVNdXSIpOmlbc10udG9TdHJpbmcoKTthPShhPShhPShhPShhPShhPWEucmVwbGFjZSgvJS9nLCIlMjUiKSkucmVwbGFjZSgvIy9nLCIlMjMiKSkucmVwbGFjZSgvXCsvZywiJTJCIikpLnJlcGxhY2UoL1xbXFtQTFVTXF1cXS9nLCI6OjoiKSkucmVwbGFjZSgvJTI2YW1wL2csIiZhbXA7IikpLnJlcGxhY2UoL1xzL2dpLCIrIiksZSs9ZS5sZW5ndGg/IiYiOiI/IixlKz0idGZjXyIrcysiWyIrbysiXT0iK2F9Y2F0Y2gobil7Y29uc29sZS5sb2cobil9fXJldHVybiBlJiYoZSs9IiZ0ZmNfZGl2PTo6OiIpLHQub3RoZXJQYXJhbXMmJnQub3RoZXJQYXJhbXMubGVuZ3RoJiYodC5vdGhlclBhcmFtcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0Lmxlbmd0aCYmKHIrPSImIit0KX0pKSxlPWUubGVuZ3RoP2UrcjoiPyIrci5zbGljZSgxKSksZS5sZW5ndGg/ZTp3aW5kb3cubG9jYXRpb24ub3JpZ2luK3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX1mdW5jdGlvbiB0X3N0b3JlX3VwZGF0ZU9wdGlvbnNCYXNlZE9uVXJsKHQsZSxyKXt0cnl7dmFyIG89ZVtyXTtmb3IodmFyIGkgaW4gdC5maWx0ZXJzPXt9LG8paWYoInNvcnQiIT09aSl7dmFyIHM9LTEhPT1pLmluZGV4T2YoInByaWNlOm0iKXx8LTEhPT1pLmluZGV4T2YoInF1YW50aXR5Iik7dC5maWx0ZXJzW2ldPXM/b1tpXS50b1N0cmluZygpOm9baV19ZWxzZXt0LnNvcnQ9e307dmFyIGE9b1tpXS5qb2luKCkuc3BsaXQoIjoiKSxpPWFbMF0sbj1hWzFdO3Quc29ydFtpXT1ufXJldHVybiB0fWNhdGNoKGQpe2NvbnNvbGUubG9nKCJzb21ldGhpbmcgd3JvbmcgaW4gdF9zdG9yZV91cGRhdGVPcHRpb25zQmFzZWRPblVybCIsZCl9fWZ1bmN0aW9uIHRfc3RvcmVfc25pcHBldF9jaG9vc2VFZGl0aW9uRnJvbVVybCh0LGUscixvKXt0cnl7dmFyIGkscz10X3N0b3JlX3NuaXBwZXRfZ2V0SnNvbkZyb21VcmwoKS5lZGl0aW9udWlkO2lmKHMmJnIuZ2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtdWlkIikhPT1zKXtjb25zb2xlLmxvZygic2hvdyBwcm9kdWN0IGJ5IHVpZCBmcm9tIHVybCA9ICIrcyk7dmFyIGE9IiIsbjtpZihlLmVkaXRpb25zLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QudWlkPT09cGFyc2VJbnQocywxMCkmJihhPXQpfSkpLCFhKXJldHVybjt0X3N0b3JlX3Byb2R1Y3RfdXBkYXRlRWRpdGlvbih0LHIsYSxlLG8pLHRfc3RvcmVfcHJvZHVjdF90cmlnZ2VyU29sZE91dE1zZyhyLDA9PT1wYXJzZUludChhLnF1YW50aXR5KSxvKX19Y2F0Y2goZCl7Y29uc29sZS5sb2coIkVycm9yIGRlY29kZSB1cmw6IitkKX19ZnVuY3Rpb24gdF9zdG9yZV9tb3ZlU2VhcmhTb3J0KHQsZSl7dmFyIHI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlYyIrdCk7aWYocil7dmFyIG89ci5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fZmlsdGVyX19zZWFyY2gtYW5kLXNvcnQiKTtpZih3aW5kb3cuaW5uZXJXaWR0aD45NjAmJm8mJiJub25lIj09PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG8pLmRpc3BsYXkmJihvLnN0eWxlLmRpc3BsYXk9IiIpLGUuc2lkZWJhcil7dmFyIGk9ci5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fZmlsdGVyX19jb250cm9scy13cmFwcGVyIikscz1yLnF1ZXJ5U2VsZWN0b3IoIi5qcy1zdG9yZS1jb250LXctZmlsdGVyIik7aWYobyl7dmFyIGE9by5wYXJlbnROb2RlLmNsYXNzTGlzdC5jb250YWlucygianMtc3RvcmUtY29udC13LWZpbHRlciIpO3dpbmRvdy5pbm5lcldpZHRoPDk2MD9hJiYodF9zdG9yZV9fcmVtb3ZlRWxlbWVudChvKSxpLmluc2VydEFkamFjZW50RWxlbWVudCgiYmVmb3JlZW5kIixvKSk6YXx8KHRfc3RvcmVfX3JlbW92ZUVsZW1lbnQobykscy5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyYmVnaW4iLG8pKX19fX1mdW5jdGlvbiB0X3N0b3JlX2dldF9wcm9kdWN0Q2FyZF9ob3Jpem9udGFsU3RydWN0dXJlKHQsZSxyLG8saSxzKXt2YXIgYT0iIjtyZXR1cm4odC5nYWxsZXJ5WzBdJiYiIiE9PXQuZ2FsbGVyeVswXXx8dC5nYWxsZXJ5WzBdJiYiIiE9PXQuZ2FsbGVyeVswXSkmJnIucHJvZENhcmQmJnIucHJvZENhcmQuaGFzSW1nJiYoYSs9JzxkaXYgY2xhc3M9InQtc3RvcmVfX2NhcmRfX2ltZ3dyYXBwZXJfY29sdW1uIicrKHIuaW1hZ2VXaWR0aCYmIjAiIT09ci5pbWFnZVdpZHRoPycgc3R5bGU9IndpZHRoOiAnK3IuaW1hZ2VXaWR0aCsncHg7Iic6IiIpKyI+IitvLm9wZW4rdF9zdG9yZV9nZXRfcHJvZHVjdENhcmRfaW1nX2h0bWwodCxyKStvLmNsb3NlKyI8L2Rpdj4iKSxhKz0nPGRpdiBjbGFzcz0idC1zdG9yZV9fY2FyZF9fY29udGVudHdyYXBwZXIiPicrdF9zdG9yZV9nZXRfaG9yaXpvbnRhbFByb2R1Y3RDYXJkX3R4dF9odG1sKHQscixvLGUsaSxzKSt0X3N0b3JlX2dldF9ob3Jpem9udGFsUHJvZHVjdENhcmRfcHJpY2VBbmRCdXR0b25zKHQscixlLGkscykrIjwvZGl2PiJ9ZnVuY3Rpb24gdF9zdG9yZV9nZXRfaG9yaXpvbnRhbFByb2R1Y3RDYXJkX3R4dF9odG1sKHQsZSxyLG8pe3ZhciBpPXQudGl0bGU7aWYoZS5pc1RpdGxlQ2xpcCl2YXIgaT10LnRpdGxlLmxlbmd0aD41MD90LnRpdGxlLnNsaWNlKDAsNTApKyIuLi4iOnQudGl0bGU7aWYodC50aXRsZSl2YXIgcz0nPGRpdiBjbGFzcz0idC1zdG9yZV9fY2FyZF9fdGl0bGUgdC10eXBvZ3JhcGh5X190aXRsZSB0LW5hbWUgdC1uYW1lX21kIGpzLXN0b3JlLXByb2QtbmFtZSBqcy1wcm9kdWN0LW5hbWUiJysoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUudHlwbywidGl0bGUiKT8nIGRhdGEtYXV0by1jb3JyZWN0LWZvbnQtc2l6ZT0icmVtIiBzdHlsZT0iJytlLnR5cG8udGl0bGUrJyInOiIiKSsiPiIraSsiPC9kaXY+Ijt2YXIgYT0iIjt0LmRlc2NyJiZlLnByb2RDYXJkJiZlLnByb2RDYXJkLmhhc0Rlc2NyJiYoYT0nPGRpdiBjbGFzcz0idC1zdG9yZV9fY2FyZF9fZGVzY3IgdC10eXBvZ3JhcGh5X19kZXNjciB0LWRlc2NyIHQtZGVzY3JfeHhzIGpzLXN0b3JlLXByb2QtZGVzY3IiJysoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUudHlwbywiZGVzY3IiKT8nIHN0eWxlPSInK2UudHlwby5kZXNjcisnIic6IiIpKyI+Iit0LmRlc2NyKyI8L2Rpdj4iKTt2YXIgbj0iIixkO3JldHVybiBvLnNrdSYmKG49JzxkaXYgY2xhc3M9ImpzLXN0b3JlLXByb2Qtc2t1IGpzLXByb2R1Y3Qtc2t1IiB0cmFuc2xhdGU9Im5vIiBzdHlsZT0iZGlzcGxheTpub25lOyI+Jyt0LnNrdSsiPC9kaXY+IiksJzxkaXYgY2xhc3M9InQtc3RvcmVfX2NhcmRfX3RleHR3cmFwcGVyIj4nK3Iub3BlbitzK3IuY2xvc2UrYStuKyc8ZGl2IGNsYXNzPSJqcy1wcm9kdWN0LWNvbnRyb2xzLXdyYXBwZXIgdC1zdG9yZV9fY2FyZF9fcHJvZC1jb250cm9scy13cmFwcGVyIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PC9kaXY+PC9kaXY+J31mdW5jdGlvbiB0X3N0b3JlX2dldF9ob3Jpem9udGFsUHJvZHVjdENhcmRfcHJpY2VBbmRCdXR0b25zKHQsZSxyLG8saSl7dmFyIHM9cGFyc2VJbnQoZS5yaWdodENvbHVtbldpZHRoLDEwKSxhPXM/J3N0eWxlPSJ3aWR0aDogJytzKydweDsiJzoiIixuO3JldHVybic8ZGl2IGNsYXNzPSJ0LXN0b3JlX19jYXJkX19wcmljZS1idXR0b25zJysoZS5wcm9kQ2FyZCYmIjIiPT09ZS5wcm9kQ2FyZC5zdHlsZT8iIHQtc3RvcmVfX2NhcmRfX3ByaWNlLWJ1dHRvbnNfaW4tcm93IjoiIikrJyInK2ErIj4iK3Rfc3RvcmVfZ2V0X3Byb2R1Y3RDYXJkX1ByaWNlX2h0bWwodCxyLGUpK3Rfc3RvcmVfZ2V0X3Byb2R1Y3RDYXJkX2J0bl9odG1sKHQsZSxvLGkpKyI8L2Rpdj4ifWZ1bmN0aW9uIHRfc3RvcmVfZ2V0RGljdE9iaigpe3ZhciB0PXtza3U6e0VOOiJTS1UiLFJVOiLQkNGA0YLQuNC60YPQuyIsRlI6IlVHUyIsREU6IlNLVSIsRVM6IlNLVSIsUFQ6IlNLVSIsVUs6ItCa0L7QtCDRgtC+0LLQsNGA0YMiLEpBOiJTS1UiLFpIOiJTS1UiLFBMOiJTS1UiLEtLOiJTS1UiLElUOiJTS1UiLExWOiJTS1UifSxzb2xkT3V0OntFTjoiT3V0IG9mIHN0b2NrIixSVToi0J3QtdGCINCyINC90LDQu9C40YfQuNC4IixGUjoiRW4gcnVwdHVyZSBkZSBzdG9jayIsREU6IkF1c3ZlcmthdWZ0IixFUzoiQWdvdGFkbyIsUFQ6IkZvcmEgZGUgZXN0b3F1ZSIsVUs6ItCd0LXQvNCw0ZQg0LIg0L3QsNGP0LLQvdC+0YHRgtGWIixKQToi5Zyo5bqr5YiH44KMIixaSDoi57y66LSnIixQTDoiTmllIG1hIG5hIHN0YW5pZSIsS0s6ItKa0L7RgNC00LAg0LbQvtKbIixJVDoiRXNhdXJpdG8iLExWOiJOYXYgbm9saWt0YXbEgSJ9LGFsbDp7RU46IkFsbCIsUlU6ItCS0YHQtSIsRlI6IlRvdXQiLERFOiJBbGxlcyIsRVM6IlRvZG9zIixQVDoiVG9kb3MiLFVLOiLQktGB0ZYiLEpBOiLjgZnjgbnjgaYiLFpIOiLmiYDmnIkiLFBMOiJXc3p5c3RraWUiLEtLOiLQkdCw0YDQu9GL0psiLElUOiJUdXR0aSIsTFY6IlZpc2kifSxmcm9tOntFTjoiZnJvbSIsUlU6ItC+0YIiLEZSOiJkZSIsREU6InZvbiIsRVM6ImRlIixQVDoiZGUiLEpBOiLjgYvjgokiLFpIOiLku44iLFVLOiLQstGW0LQiLFBMOiJvZCIsS0s6ItCx0LDRgdGC0LDQvyIsSVQ6ImRhIixMVjoibm8ifSxlbXB0eXBhcnRtc2c6e0VOOiJOb3RoaW5nIGZvdW5kIixSVToi0J3QuNGH0LXQs9C+INC90LUg0L3QsNC50LTQtdC90L4iLEZSOiJSaWVuIHRyb3V2w6kiLERFOiJOaWNodHMgZ2VmdW5kZW4iLEVTOiJOYWRhIGVuY29udHJhZG8iLFBUOiJOYWRhIGVuY29udHJhZG8iLFVLOiLQndGW0YfQvtCz0L4g0L3QtSDQt9C90LDQudC00LXQvdC+IixKQToi5L2V44KC6KaL44Gk44GL44KK44G+44Gb44KT44Gn44GX44GfIixaSDoi5LuA5LmI6YO95rKh5om+5YiwIixQTDoiTmljIG5pZSB6bmFsZXppb25vIixLSzoi0JXRiNGC0LXSo9C1INGC0LDQsdGL0LvQvNCw0LTRiyIsSVQ6Ik5vbiBhYmJpYW1vIHRyb3ZhdG8gbnVsbGEiLExWOiJOZWthcyBuYXYgYXRyYXN0cyJ9LHNlZW90aGVycHJvZHVjdHM6e0VOOiJTZWUgb3RoZXIiLFJVOiLQlNGA0YPQs9C40LUg0YLQvtCy0LDRgNGLIixGUjoiQXV0cmVzIHByb2R1aXRzIixERToiQW5kZXJlIHByb2R1a3RlIixFUzoiT3Ryb3MgcHJvZHVjdG9zIixQVDoiT3V0cm9zIHByb2R1dG9zIixVSzoi0IbQvdGI0ZYg0YLQvtCy0LDRgNC4IixKQToi44Gd44Gu5LuW44Gu5ZWG5ZOBIixaSDoi5YW25LuW5Lqn5ZOBIixQTDoiSW5uZSBwcm9kdWt0eSIsS0s6ItCR0LDRgdKb0LAg0pvQsNGA0LDSo9GL0LciLElUOiJWZWRpIGFsdHJpIixMVjoiU2thdGlldCBjaXRhcyJ9LHNlZUFsc286e0VOOiJTZWUgYWxzbyIsUlU6ItCh0LzQvtGC0YDQuNGC0LUg0YLQsNC60LbQtSIsRlI6IlZvaXIgw6lnYWxlbWVudCIsREU6IlNpZWhlIGF1Y2giLEVTOiJWZXIgdGFtYmnDqW4iLFBUOiJWZWphIHRhbWLDqW0iLFVLOiLQlNC40LLQuNGB0Ywg0YLQsNC60L7QtiIsSkE6IuOBvuOBn+imi+OBquOBleOBhCIsWkg6IuS5n+WPr+S7peeci+eciyIsUEw6IlBhdHJ6IHLDs3duaWXFvCIsS0s6ItCh0L7QvdC00LDQuS3QsNKbLCDSm9Cw0YDQsNKj0YvQtyIsSVQ6Ikd1YXJkYSBhbmNoZSIsTFY6IlNrYXTEq3QgYXLEqyJ9LGFkZHRvY2FydDp7RU46IkJ1eSBub3ciLFJVOiLQmtGD0L/QuNGC0YwiLEZSOiJBY2hldGVyIixERToiWnUga2F1ZmVuIixFUzoiUGFyYSBjb21wcmFyIixQVDoiQ29tcHJhciIsVUs6ItCa0YPQv9C40YLQuCIsSkE6IuizvOWFpeOBmeOCiyIsWkg6IuimgeS5sCIsUEw6Ikt1cCIsS0s6ItKa0LDQt9GW0YAg0YHQsNGC0YvQvyDQkNC7IixJVDoiQWNxdWlzdGEgb3JhIixMVjoiUMSTcmMgdGFnYWQifSxsb2FkbW9yZTp7RU46IkxvYWQgbW9yZSIsUlU6ItCX0LDQs9GA0YPQt9C40YLRjCDQtdGJ0LUiLEZSOiJDaGFyZ2VyIHBsdXMiLERFOiJNZWhyIGxhZGVuIixFUzoiQ2FyZ2EgbcOhcyIsUFQ6IkNhcnJlZ3VlIG1haXMiLFVLOiLQl9Cw0LLQsNC90YLQsNC20LjRgtC4INGJ0LUiLEpBOiLjgoLjgaPjgajoqq3jgb/ovrzjgoAiLFpIOiLoo53ovInmm7TlpJoiLFBMOiJQb2thxbwgd2nEmWNlaiIsS0s6ItCi0LDSk9GLINC20q/QutGC0LXRgyIsSVQ6IkNhcmljYSBhbmNvcmEiLExWOiJJZWzEgWTEk3QgdmFpcsSBayJ9LFBDRTp7RU46InBjIixSVToi0YjRgiIsVUs6ItGI0YIiLEtLOiLRiNGCIn0sTk1QOntFTjoicGFjayIsUlU6ItGD0L8iLFVLOiLRg9C/IixLSzoi0YPQvyJ9LE1HTTp7RU46Im1nIixSVToi0LzQsyIsVUs6ItC80LMiLEtLOiLQvNCzIn19O3QuZz10LkdSTT17RU46ImciLFJVOiLQsyIsVUs6ItCzIixLSzoi0LMifSx0LktHTT17RU46ImtnIixSVToi0LrQsyIsVUs6ItC60LMiLEtLOiLQutCzIn0sdC5UTkU9e0VOOiJ0IixSVToi0YIiLFVLOiLRgiIsS0s6ItGCIn0sdC5NTFQ9e0VOOiJtbCIsUlU6ItC80LsiLFVLOiLQvNC7IixLSzoi0LzQuyJ9LHQuTFRSPXtFTjoibCIsUlU6ItC7IixVSzoi0LsiLEtLOiLQuyJ9LHQubW09dC5NTVQ9e0VOOiJtbSIsUlU6ItC80LwiLFVLOiLQvNC8IixLSzoi0LzQvCJ9LHQuQ01UPXtFTjoiY20iLFJVOiLRgdC8IixVSzoi0YHQvCIsS0s6ItGB0LwifSx0LkRNVD17RU46ImRtIixSVToi0LTQvCIsVUs6ItC00LwiLEtLOiLQtNC8In0sdC5NVFI9e0VOOiJtIixSVToi0LwiLFVLOiLQvCIsS0s6ItC8In0sdC5NVEs9e0VOOiJtwrIiLFJVOiLQvMKyIixVSzoi0LzCsiIsS0s6ItC8wrIifSx0Lk1UUT17RU46Im3CsyIsUlU6ItC8wrMiLFVLOiLQvMKzIixLSzoi0LzCsyJ9LHQuTE1UPXtFTjoibG0iLFJVOiLQv9C+0LMuINC8IixVSzoi0L/QvtCzLiDQvCIsS0s6ItC/0L7Qsy4g0LwifSx0LkhBUj17RU46ImhhIixSVToi0LPQsCIsVUs6ItCz0LAiLEtLOiLQs9CwIn0sdC5BQ1I9e0VOOiJhY3JlIn0sdC5ZUkQ9e0VOOiJ5ZCJ9LHQuTEJSPXtFTjoibGIifSx0Lk9OWj17RU46Im96In0sdC5JTkg9e0VOOiJpbiJ9LHQuRk9UPXtFTjoiZnQifSx0WyJwcm9kdWN0LWx3aCJdPXtFTjoiTHhXeEgiLFJVOiLQlHjQqHjQkiIsREU6Ikx4QnhIIixFUzoiUHhMeEsiLFVLOiLQlHjQqHjQkiJ9LHRbInByb2R1Y3Qtd2h0Il09e0VOOiJXeEh4VCIsUlU6ItCoeNCSeNCiIixGUjoiTHhIeMOJIixERToiQnhIeEQiLEVTOiJMeEt4UCIsUFQ6Ikx4QXhFIixVSzoi0Kh40JJ40KIifSx0WyJwcm9kdWN0LXdoZCJdPXtFTjoiV3hIeEQiLFJVOiLQqHjQknjQkyIsRlI6Ikx4SHhQIixERToiQnhIeFQiLEVTOiJMeEt4UyIsUFQ6Ikx4QXhQIixVSzoi0Kh40JJ40JMifSx0WyJwcm9kdWN0LXdlaWdodCJdPXtFTjoiV2VpZ2h0IixSVToi0JLQtdGBIixGUjoiUG9pZHMiLERFOiJHZXdpY2h0IixFUzoiS2FhbCIsUFQ6IlBlc28iLFVLOiLQktCw0LPQsCIsSkE6IumHjeOBlSIsWkg6Iuapn+mHjSIsUEw6IldhZ2EiLEtLOiLQodCw0LvQvNCw0psiLElUOiJQZXNvIixMVjoiU3ZhcnMifTt2YXIgZT13aW5kb3cudFN0b3JlQnJvd3Nlckxhbmc7d2luZG93LnRTdG9yZURpY3R8fCh3aW5kb3cudFN0b3JlRGljdD17fSksT2JqZWN0LmtleXModCkuZm9yRWFjaCgoZnVuY3Rpb24ocil7d2luZG93LnRTdG9yZURpY3Rbcl09dFtyXVtlXT90W3JdW2VdOnRbcl0uRU59KSl9ZnVuY3Rpb24gdF9zdG9yZV90cmlnZ2VyRXZlbnQodCxlLHIpe3ZhciBvO3ImJndpbmRvdy5DdXN0b21FdmVudD8obz1uZXcgQ3VzdG9tRXZlbnQoZSx7ZGV0YWlsOnIsYnViYmxlczohMCxjYW5jZWxhYmxlOiExfSksdC5kaXNwYXRjaEV2ZW50KG8pKTpkb2N1bWVudC5jcmVhdGVFdmVudD8oKG89ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkhUTUxFdmVudHMiKSkuaW5pdEV2ZW50KGUsITAsITEpLG8uZXZlbnROYW1lPWUsdC5kaXNwYXRjaEV2ZW50KG8pKTpkb2N1bWVudC5jcmVhdGVFdmVudE9iamVjdD8oKG89ZG9jdW1lbnQuY3JlYXRlRXZlbnRPYmplY3QoKSkuZXZlbnRUeXBlPWUsby5ldmVudE5hbWU9ZSx0LmZpcmVFdmVudCgib24iK28uZXZlbnRUeXBlLG8pKTp0W2VdP3RbZV0oKTp0WyJvbiIrZV0mJnRbIm9uIitlXSgpfWZ1bmN0aW9uIHRfc3RvcmVfX2NvbGxlY3RQcm9kdWN0RGF0YUJ5RWxlbWVudCh0KXt2YXIgZT10LnF1ZXJ5U2VsZWN0b3IoIi5qcy1wcm9kdWN0LW5hbWUiKSxyPWU/ZS50ZXh0Q29udGVudC50cmltKCk6IiIsbztyPXRfc3RvcmVfZXNjYXBlUXVvdGUocik7dmFyIGk9dC5xdWVyeVNlbGVjdG9yKCIuanMtcHJvZHVjdC1wcmljZSIpLHM7aSYmKG89aS5nZXRBdHRyaWJ1dGUoImRhdGEtcHJvZHVjdC1wcmljZS1kZWYiKSksbz10X3N0b3JlX19jbGVhblByaWNlKG8pO3ZhciBhPXQuZ2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtaW1nIik7aWYoYSlzPWE7ZWxzZXt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi5qcy1wcm9kdWN0LWltZyIpO2lmKG4pe3ZhciBkPW4uZ2V0QXR0cmlidXRlKCJkYXRhLW9yaWdpbmFsIik7ZCYmKHM9ZCl9fXZhciBjPXQuZ2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtdWlkIiksbD10LmdldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0LWludiIpLHA7bD1wYXJzZUludChsLDEwKXx8IiI7dmFyIF89dC5xdWVyeVNlbGVjdG9yKCIuanMtc3RvcmUtcHJvZC1za3UiKTtfJiYocD10X3N0b3JlX2VzY2FwZVF1b3RlKHA9Xy50ZXh0Q29udGVudC50cmltKCkpKTt2YXIgdT10X3N0b3JlX19jb2xsZWN0T3B0aW9uc0J5RWxlbWVudCh0KSxnPXtuYW1lOnIscHJpY2U6byx1aWQ6YyxpbnY6bH07cmV0dXJuIHMmJihnLmltZz1zKSxwJiYoZy5za3U9cCksdSYmdS5sZW5ndGg+MCYmKGcub3B0aW9ucz11KSxnfWZ1bmN0aW9uIHRfc3RvcmVfX2NvbGxlY3RPcHRpb25zQnlFbGVtZW50KHQpe3ZhciBlPVtdLHI9dC5xdWVyeVNlbGVjdG9yQWxsKCIuanMtcHJvZHVjdC1lZGl0aW9uLW9wdGlvbiIpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwociwoZnVuY3Rpb24odCl7dmFyIHI9dC5xdWVyeVNlbGVjdG9yKCIuanMtcHJvZHVjdC1lZGl0aW9uLW9wdGlvbi1uYW1lIikudGV4dENvbnRlbnQsbz10LnF1ZXJ5U2VsZWN0b3IoIm9wdGlvbjpjaGVja2VkIik7aWYobyl7dmFyIGk9by52YWx1ZSxzPW8uZ2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtZWRpdGlvbi12YXJpYW50LXByaWNlIik7aWYocz1wYXJzZUZsb2F0KHMpLHImJmkpe3ZhciBhPXt9OyIiIT1yJiYocj10X3N0b3JlX2VzY2FwZVF1b3RlKHIpKSwiIiE9aSYmKGk9KGk9dF9zdG9yZV9lc2NhcGVRdW90ZShpKSkucmVwbGFjZSgvKD86XHJcbnxccnxcbikvZywiIikpLHIubGVuZ3RoPjEmJiI6Ij09ci5jaGFyQXQoci5sZW5ndGgtMSkmJihyPXIuc3Vic3RyaW5nKDAsci5sZW5ndGgtMSkpLGEub3B0aW9uPXIsYS52YXJpYW50PWksYS5wcmljZT1zLGUucHVzaChhKX19fSkpO3ZhciBvPXQucXVlcnlTZWxlY3RvckFsbCgiLmpzLXByb2R1Y3Qtb3B0aW9uIik7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChvLChmdW5jdGlvbih0KXt2YXIgcj10LnF1ZXJ5U2VsZWN0b3IoIi5qcy1wcm9kdWN0LW9wdGlvbi1uYW1lIikudGV4dENvbnRlbnQsbz10LnF1ZXJ5U2VsZWN0b3IoIm9wdGlvbjpjaGVja2VkIik7aWYobyl7dmFyIGk9by52YWx1ZSxzPW8uZ2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtdmFyaWFudC1wcmljZSIpO2lmKHM9cGFyc2VGbG9hdChzKSx2b2lkIDAhPT1yJiZ2b2lkIDAhPT1pKXt2YXIgYT17fTsiIiE9ciYmKHI9dF9zdG9yZV9lc2NhcGVRdW90ZShyKSksIiIhPWkmJihpPShpPXRfc3RvcmVfZXNjYXBlUXVvdGUoaSkpLnJlcGxhY2UoLyg/OlxyXG58XHJ8XG4pL2csIiIpKSxyLmxlbmd0aD4xJiYiOiI9PXIuY2hhckF0KHIubGVuZ3RoLTEpJiYocj1yLnN1YnN0cmluZygwLHIubGVuZ3RoLTEpKSxhLm9wdGlvbj1yLGEudmFyaWFudD1pLGEucHJpY2U9cyxlLnB1c2goYSl9fX0pKTt2YXIgaT10LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1wcm9kdWN0LW11bHRpb3B0aW9uIik7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoaSwoZnVuY3Rpb24odCl7dmFyIHI9dC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQnKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHIsKGZ1bmN0aW9uKHIpe3ZhciBvPXQucXVlcnlTZWxlY3RvcigiLmpzLXByb2R1Y3Qtb3B0aW9uLW5hbWUiKS50ZXh0Q29udGVudDtvJiYobz10X3N0b3JlX2VzY2FwZVF1b3RlKG8pKSxvLmxlbmd0aD4xJiYiOiI9PW8uY2hhckF0KG8ubGVuZ3RoLTEpJiYobz1vLnN1YnN0cmluZygwLG8ubGVuZ3RoLTEpKTt2YXIgaT1yLm5hbWU7aSYmKGk9KGk9dF9zdG9yZV9lc2NhcGVRdW90ZShpKSkucmVwbGFjZSgvKD86XHJcbnxccnxcbikvZywiIikpO3ZhciBzPXIuZ2V0QXR0cmlidXRlKCJkYXRhLXByb2R1Y3QtdmFyaWFudC1wcmljZSIpO3MmJihzPXBhcnNlRmxvYXQocykpO3ZhciBhPXtvcHRpb246byx2YXJpYW50OmkscHJpY2U6c307ZS5wdXNoKGEpfSkpfSkpLGV9ZnVuY3Rpb24gdF9zdG9yZV9maXhlZFBvcHVwQnV0dG9uKHQpe3ZhciBlPTEzMCxyPTkwLG89NTYwLGk9InQtc3RvcmVfX3Byb2QtcG9wdXBfX2J0bi13cmFwcGVyLWZpeGVkIixzPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWMiK3QpO2lmKHMpe3ZhciBhPXMucXVlcnlTZWxlY3RvckFsbCgiLnQtc3RvcmVfX3Byb2QtcG9wdXBfX2J0bi13cmFwcGVyIiksbjtpZihBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGEsKGZ1bmN0aW9uKHQpe3QuY2xhc3NMaXN0LmFkZChpKX0pKSwhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbGxyZWNvcmRzIikhPT1zLnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19wcm9kdWN0LXNuaXBwZXQiKSYmZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKS5jb250YWlucyhzLnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19wcm9kdWN0LXNuaXBwZXQiKSkpKXt2YXIgZD1zLnF1ZXJ5U2VsZWN0b3IoIi50LXBvcHVwIiksYz1kLnF1ZXJ5U2VsZWN0b3IoIi50LXBvcHVwX19jb250YWluZXIiKSxsPWZ1bmN0aW9uIHQoKXtjLnN0eWxlLnBhZGRpbmdCb3R0b209IjIyMHB4IixjLnN0eWxlLmNzc1RleHQrPSI7dHJhbnNmb3JtOm5vbmUgIWltcG9ydGFudDsifSxwPWZ1bmN0aW9uIHQoKXtjLnN0eWxlLnBhZGRpbmdCb3R0b209IiIsYy5zdHlsZS50cmFuc2Zvcm09IiJ9LF89ZnVuY3Rpb24gdCgpe3dpbmRvdy5pbm5lcldpZHRoPm8/cCgpOmwoKX07d2luZG93LmlzTW9iaWxlJiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigib3JpZW50YXRpb25jaGFuZ2UiLF8pLGQuYWRkRXZlbnRMaXN0ZW5lcih0X3N0b3JlX1BPUFVQX1NIT1dFRF9FVkVOVF9OQU1FLChmdW5jdGlvbigpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7XygpfSksMCl9KSksZC5hZGRFdmVudExpc3RlbmVyKHRfc3RvcmVfUE9QVVBfQ0xPU0VEX0VWRU5UX05BTUUsKGZ1bmN0aW9uKCl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXtwKCl9KSwwKX0pKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixfKX19fWZ1bmN0aW9uIHRfc3RvcmVfX2xvYWRKU0ZpbGUodCxlKXtpZihkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbc3JjXj0iJyt0KyciXScpKWUmJmUoKTtlbHNle3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3IudHlwZT0idGV4dC9qYXZhc2NyaXB0IixyLnNyYz10LGUmJihyLm9ubG9hZD1lKSxyLm9uZXJyb3I9ZnVuY3Rpb24odCl7Y29uc29sZS5sb2coIlVwbG9hZCBzY3JpcHQgZXJyb3I6ICIrdCl9LGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQocil9fWZ1bmN0aW9uIHRfc3RvcmVfX2xvYWRDU1NGaWxlKHQsZSl7aWYoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbGlua1tocmVmXj0iJyt0KyciXScpKWUmJmUoKTtlbHNle3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtyLnJlbD0ic3R5bGVzaGVldCIsci50eXBlPSJ0ZXh0L2NzcyIsci5tZWRpYT0iYWxsIixyLmhyZWY9dCxlJiYoci5vbmxvYWQ9ZSksci5vbmVycm9yPWZ1bmN0aW9uKHQpe2NvbnNvbGUubG9nKCJVcGxvYWQgc3R5bGUgZXJyb3I6ICIrdCl9LGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQocil9fWZ1bmN0aW9uIHRfc3RvcmVfX2dldFJvb3Rab25lKCl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKSxlO3JldHVybiB0JiZ0LmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1yb290LXpvbmUiKXx8ImNvbSJ9dF9vblJlYWR5KChmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbGxyZWNvcmRzIiksZTtpZih0KXt2YXIgcj10LmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1wcm9qZWN0LWxhbmciKTtyJiYod2luZG93LnRTdG9yZUJyb3dzZXJMYW5nPXIpLChlPXQuZ2V0QXR0cmlidXRlKCJkYXRhLXRpbGRhLXJvb3Qtem9uZSIpKSYmKHdpbmRvdy50X3N0b3JlX2VuZHBvaW50PSJzdG9yZS50aWxkYWFwaS4iK2UpfXRfc3RvcmVfZ2V0RGljdE9iaigpLHRfc3RvcmVfZml4SW1ncygpfSkpLEFycmF5LnByb3RvdHlwZS5zb21lfHwoQXJyYXkucHJvdG90eXBlLnNvbWU9ZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO2lmKG51bGw9PT10aGlzKXRocm93IG5ldyBUeXBlRXJyb3IoIkFycmF5LnByb3RvdHlwZS5zb21lIGNhbGxlZCBvbiBudWxsIG9yIHVuZGVmaW5lZCIpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3I7Zm9yKHZhciBlPU9iamVjdCh0aGlzKSxyPWUubGVuZ3RoPj4+MCxvPWFyZ3VtZW50cy5sZW5ndGg+PTI/YXJndW1lbnRzWzFdOnZvaWQgMCxpPTA7aTxyO2krKylpZihpIGluIGUmJnQuY2FsbChvLGVbaV0saSxlKSlyZXR1cm4hMDtyZXR1cm4hMX0pLGZ1bmN0aW9uKHQpe3ZhciBlPXQubWF0Y2hlc3x8dC5tYXRjaGVzU2VsZWN0b3J8fHQud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHx0Lm1vek1hdGNoZXNTZWxlY3Rvcnx8dC5tc01hdGNoZXNTZWxlY3Rvcnx8dC5vTWF0Y2hlc1NlbGVjdG9yO3QubWF0Y2hlcz10Lm1hdGNoZXNTZWxlY3Rvcj1lfHxmdW5jdGlvbiB0KGUpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoZSkscj10aGlzO3JldHVybiBBcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKHQsKGZ1bmN0aW9uKHQpe3JldHVybiB0PT09cn0pKX19KEVsZW1lbnQucHJvdG90eXBlKSxFbGVtZW50LnByb3RvdHlwZS5jbG9zZXN0fHwoRWxlbWVudC5wcm90b3R5cGUuY2xvc2VzdD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcztlJiYxPT09ZS5ub2RlVHlwZTspe2lmKEVsZW1lbnQucHJvdG90eXBlLm1hdGNoZXMuY2FsbChlLHQpKXJldHVybiBlO2U9ZS5wYXJlbnRFbGVtZW50fHxlLnBhcmVudE5vZGV9cmV0dXJuIG51bGx9KSxTdHJpbmcucHJvdG90eXBlLnRyaW18fChTdHJpbmcucHJvdG90eXBlLnRyaW09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXBsYWNlKC9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZywiIil9KTsKCmZ1bmN0aW9uIF9hd2FpdCQxKHQsZSxyKXtyZXR1cm4gcj9lP2UodCk6dDoodCYmdC50aGVufHwodD1Qcm9taXNlLnJlc29sdmUodCkpLGU/dC50aGVuKGUpOnQpfXZhciBGT1JNU19BUElfRklFTEQ9e0VNQUlMOiJlbSIsUEhPTkU6InBoIixOQU1FOiJubSIsQ09OVEFDVF9NRVRIT0Q6ImNvbnRhY3RfbWV0aG9kIixJTlBVVDoiaW4iLFRFWFRBUkVBOiJ0YSIsREFURToiZGEiLFRFWFQ6InR4IixVUkw6InVyIixISURERU46ImhkIixTRUxFQ1Q6InNiIixUSU1FOiJ0bSIsVkFSSUFOVFM6InJkIixJTUFHRV9WQVJJQU5UUzoicmkiLFJBVElORzoicnMiLENIRUNLQk9YOiJjYiIsRklMRToidXciLFVQTE9BRENBUkVfRklMRToidWMiLERFTElWRVJZOiJkbCIsU0FWRV9DT05UQUNUOiJzZiIsUFJPTU9DT0RFOiJwYyIsUVVBTlRJVFk6InFuIixSQU5HRToicmciLENBTEM6ImZyIixXSElURVNQQUNFOiJ3cyJ9O2Z1bmN0aW9uIF9jYXRjaCQxKHQsZSl7dHJ5e3ZhciByPXQoKX1jYXRjaChvKXtyZXR1cm4gZShvKX1yZXR1cm4gciYmci50aGVuP3IudGhlbih2b2lkIDAsZSk6cn12YXIgdF9mb3Jtc0FwaV9fc2FmZVZhbHVlPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIGU/ZS52YWx1ZToiIn07ZnVuY3Rpb24gX2FzeW5jJDEodCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLHI9MDtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKWVbcl09YXJndW1lbnRzW3JdO3RyeXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHQuYXBwbHkodGhpcyxlKSl9Y2F0Y2gobyl7cmV0dXJuIFByb21pc2UucmVqZWN0KG8pfX19dmFyIHRfZm9ybXNBcGlfX3NhZmVGb2N1cz1mdW5jdGlvbiB0KGUpe3JldHVybiBlJiZlLmZvY3VzKCl9LHRfZm9ybXNBcGlfX3NlbmRDaGFuZ2U9ZnVuY3Rpb24gdChlKXtyZXR1cm4gZSYmZS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiY2hhbmdlIikpfSx0X2Zvcm1zQXBpX19zZW5kUmVzZXQ9ZnVuY3Rpb24gdChlKXtyZXR1cm4gZSYmZS5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicmVzZXQiKSl9LHRfZm9ybXNBcGlfX3NhZmVTZXRWYWx1ZT1mdW5jdGlvbiB0KGUscixvKXt2YXIgbixhPShvfHx7fSkuc2lsZW50LGk9dm9pZCAwIT09YSYmYTtyZXR1cm4gZSYmZS52YWx1ZSE9PXImJihlLnZhbHVlPXIsaXx8dF9mb3Jtc0FwaV9fc2VuZENoYW5nZShlKSkscn0sdF9mb3Jtc0FwaV9fZ3Vlc3NGaWVsZE5hbWU9ZnVuY3Rpb24gdChlKXt2YXIgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5qcy10aWxkYS1ydWxlW25hbWVdIik7cmV0dXJuIHI/ci5uYW1lOiIifSx0X2Zvcm1zQXBpX19nZXRGaWVsZERhdGE9ZnVuY3Rpb24gdChlKXt2YXIgcj1lLmRhdGFzZXQsbz1yLmlucHV0TGlkLG49ci5maWVsZFR5cGUsYT1yLmZpZWxkTmFtZSxpPXIuZmllbGRBc3luYyxzPXIuZGVmYXVsdFZhbHVlLGw7cmV0dXJue2xpZDpvLGZpZWxkVHlwZTpuLGZpZWxkTmFtZTphfHx0X2Zvcm1zQXBpX19ndWVzc0ZpZWxkTmFtZShlKSxpc0FzeW5jOiJ0cnVlIj09PWksZGVmYXVsdFZhbHVlOnN9fSx0X2Zvcm1zQXBpX193YWl0Rm9yRmllbGRSZWFkeVN0YXRlPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbih0KXt2YXIgcj1mdW5jdGlvbiByKCl7ZS5lbGVtZW50LnNldEF0dHJpYnV0ZSgiZGF0YS1pbnB1dC1yZWFkeSIsInRydWUiKSx0KGUpfSxvPSJ0cnVlIj09PWUuZWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtaW5wdXQtcmVhZHkiKTtlLmRhdGEuaXNBc3luYyYmIW8/ZS5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImlucHV0UmVhZHkiLHIse29uY2U6ITB9KTpyKCl9KSl9LHRfZm9ybXNBcGlfX3NvcnRGaWVsZHNCZWZvcmVDbGVhcj1mdW5jdGlvbiB0KGUpe3JldHVybiBlLmRhdGEuZmllbGRUeXBlPT09Rk9STVNfQVBJX0ZJRUxELkNBTEM/MTotMX0sdF9mb3Jtc0FwaV9faXNDb25kaXRpb25hbEZvcm09ZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5jbGFzc0xpc3QuY29udGFpbnMoInQtY29uZGl0aW9uYWwtZm9ybSIpfHxlLnF1ZXJ5U2VsZWN0b3IoIi50LWNvbmRpdGlvbmFsIil9LHRfZm9ybXNBcGlfX2dldFRpbGRhRmllbGQ9ZnVuY3Rpb24gdChlKXtpZighZSl0aHJvdyBuZXcgRXJyb3IoImlucHV0R3JvdXAgZWxlbWVudCBpcyBtaXNzaW5nIik7dmFyIHI9dF9mb3Jtc0FwaV9fZ2V0RmllbGREYXRhKGUpLG89ci5saWQsbj1yLmZpZWxkVHlwZSxhPXIuZmllbGROYW1lO2lmKCFvfHwhbnx8IWEpdGhyb3cgbmV3IEVycm9yKCJQbGVhc2UsIHNldCBhbGwgdGhlIHJlcXVpcmVkIGRhdGEtYXR0cnMgdG8gaW5pdGlhbGl6ZSBGb3JtSW5wdXQuIik7dmFyIGk9ZnVuY3Rpb24gdCgpe3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPSInK2ErJyJdJyl9LHM9ZnVuY3Rpb24gdCgpe3ZhciBlPWkoKTtyZXR1cm57dmFsdWU6dF9mb3Jtc0FwaV9fc2FmZVZhbHVlKGUpfX0sbD1bXSxkPW5ldyBNYXAsdT1mdW5jdGlvbiB0KGUscil7dmFyIG8sbj0ocnx8e30pLnVuaXF1ZUtleTtpZihuKXt2YXIgYTtpZihkLmhhcyhuKSlyZXR1cm47ZC5zZXQobixlKX1lbHNlIGwucHVzaChlKX0sYz1mdW5jdGlvbiB0KGUpe2wuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQoe2V2ZW50OmUsZmllbGQ6X30pfSkpLGQuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQoe2V2ZW50OmUsZmllbGQ6X30pfSkpfTtlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsYyk7dmFyIG0sZixfPXtlbGVtZW50OmUsZGF0YTpyLGdldFZhbHVlOnMsb25DaGFuZ2U6dSxmb2N1czpmdW5jdGlvbiB0KCl7dmFyIGU9aSgpO3RfZm9ybXNBcGlfX3NhZmVGb2N1cyhlKX0scmVzZXQ6ZnVuY3Rpb24gdCgpe3ZhciBlPWkoKSxvPXIuZGVmYXVsdFZhbHVlfHwiIjt0X2Zvcm1zQXBpX19zYWZlU2V0VmFsdWUoZSxvLHtzaWxlbnQ6ITB9KX0sb25GaWVsZFJlYWR5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gdF9mb3Jtc0FwaV9fd2FpdEZvckZpZWxkUmVhZHlTdGF0ZShfKX0sX29uQ2hhbmdlQ2FsbGJhY2tzOmwsX3VuaXF1ZU9uQ2hhbmdlQ2FsbGJhY2tzOmR9O3JldHVybiBlLnRfZmllbGQ9XyxffSx0X2Zvcm1zQXBpX19yYWRpb0ZpZWxkTWl4aW49ZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5kYXRhLmlucHV0cz1BcnJheS5mcm9tKGUuZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbdHlwZT0icmFkaW8iXScpKSxlLmdldFZhbHVlPWZ1bmN0aW9uKCl7dmFyIHQ9ZS5kYXRhLmlucHV0cy5maW5kKChmdW5jdGlvbih0KXtyZXR1cm4gdC5jaGVja2VkfSkpO3JldHVybnt2YWx1ZTp0X2Zvcm1zQXBpX19zYWZlVmFsdWUodCl9fSxlLnJlc2V0PWZ1bmN0aW9uKCl7dmFyIHQ9TnVtYmVyKGUuZGF0YS5kZWZhdWx0VmFsdWUpLHI9bnVsbCE9dCYmdD4wO2UuZGF0YS5pbnB1dHMuZm9yRWFjaCgoZnVuY3Rpb24oZSxvKXtlLmNoZWNrZWQ9ISghcnx8dCE9PW8rMSl9KSksZS5kYXRhLm93blZhcmlhbnRJbnB1dCYmdF9mb3Jtc0FwaV9fc2VuZFJlc2V0KGUuZGF0YS5vd25WYXJpYW50SW5wdXQpfSxlfSx0X2Zvcm1zQXBpX19vd25WYXJpYW50TWl4aW49ZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5vbkZpZWxkUmVhZHk9ZnVuY3Rpb24oKXtyZXR1cm4gdF9mb3Jtc0FwaV9fd2FpdEZvckZpZWxkUmVhZHlTdGF0ZShlKS50aGVuKChmdW5jdGlvbigpe3ZhciB0PWUuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCIudC1yYWRpby1vd25hbnN3ZXIsIC50LWNoZWNrYm94LW93bmFuc3dlciIpLHI9dD90LmdldEF0dHJpYnV0ZSgiZGF0YS1vd24tdmFyaWFudC10aXRsZSIpOiIiO3JldHVybiBlLmRhdGEub3duVmFyaWFudElucHV0PXQsZS5kYXRhLm93blZhcmlhbnRUaXRsZT1yLGV9KSl9LGV9LHRfZm9ybXNBcGlfX2NoZWNrYm94ZXNNaXhpbj1mdW5jdGlvbiB0KGUpe3JldHVybiBlLmRhdGEuaW5wdXRzPUFycmF5LmZyb20oZS5lbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1t0eXBlPSJjaGVja2JveCJdJykpLGUuZm9jdXM9ZnVuY3Rpb24oKXt2YXIgdD1lLmVsZW1lbnQucXVlcnlTZWxlY3RvcignW3R5cGU9ImNoZWNrYm94Il0nKTt0X2Zvcm1zQXBpX19zYWZlRm9jdXModCl9LGUucmVzZXQ9ZnVuY3Rpb24oKXt2YXIgdD1lLmVsZW1lbnQucXVlcnlTZWxlY3RvcignW25hbWU9IicrZS5kYXRhLmZpZWxkTmFtZSsnIl0nKSxyPU51bWJlcihlLmRhdGEuZGVmYXVsdFZhbHVlKSxvPW51bGwhPXImJnI+MDt0X2Zvcm1zQXBpX19zYWZlU2V0VmFsdWUodCwiIix7c2lsZW50OiEwfSksZS5kYXRhLm93blZhcmlhbnRJbnB1dCYmdF9mb3Jtc0FwaV9fc2VuZFJlc2V0KGUuZGF0YS5vd25WYXJpYW50SW5wdXQpLGUuZGF0YS5pbnB1dHMuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuY2hlY2tlZD0hMX0pKSxlLmRhdGEuaW5wdXRzLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7dmFyIG47byYmcj09PWUrMSYmdC5jbGljaygpfSkpfSxlfSx0X2Zvcm1zQXBpX19nZXRVcGxvYWRXaWRnZXRGaWVsZD1mdW5jdGlvbiB0KGUpe3ZhciByPXRfZm9ybXNBcGlfX2dldFRpbGRhRmllbGQoZSk7cmV0dXJuIHIub25GaWVsZFJlYWR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRfZm9ybXNBcGlfX3dhaXRGb3JGaWVsZFJlYWR5U3RhdGUocikudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gci5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInV3RmlsZVVwbG9hZGVkIiwoZnVuY3Rpb24oKXtyZXR1cm4gdF9mb3Jtc0FwaV9fc2VuZENoYW5nZShyLmVsZW1lbnQpfSkpLHIuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ1d0ZpbGVSZW1vdmVkIiwoZnVuY3Rpb24oKXtyZXR1cm4gdF9mb3Jtc0FwaV9fc2VuZENoYW5nZShyLmVsZW1lbnQpfSkpLHJ9KSl9LHIuZ2V0VmFsdWU9ZnVuY3Rpb24oKXt2YXIgdCxvO3JldHVybnt2YWx1ZTpBcnJheS5mcm9tKGUucXVlcnlTZWxlY3RvckFsbCgnW25hbWVePSInK3IuZGF0YS5maWVsZE5hbWUrJyJdJykpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHRfZm9ybXNBcGlfX3NhZmVWYWx1ZSh0KX0pKS5maWx0ZXIoQm9vbGVhbikuam9pbigiOyAiKX19LHIuZm9jdXM9ZnVuY3Rpb24oKXtyLmVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoe2Jsb2NrOiJjZW50ZXIifSl9LHIucmVzZXQ9ZnVuY3Rpb24oKXt0X2Zvcm1zQXBpX19zZW5kUmVzZXQoci5lbGVtZW50KX0scn0sdF9mb3Jtc0FwaV9fZ2V0VXBsb2FkQ2FyZUZpZWxkPWZ1bmN0aW9uIHQoZSl7dHJ5e3ZhciByPXRfZm9ybXNBcGlfX2dldFRpbGRhRmllbGQoZSk7cmV0dXJuIHIub25GaWVsZFJlYWR5PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbih0KXt0X29uRnVuY0xvYWQoInVwbG9hZGNhcmUiLChmdW5jdGlvbigpe3IuZGF0YS53aWRnZXQ9d2luZG93LnVwbG9hZGNhcmUuV2lkZ2V0KCdbZGF0YS1pbnB1dC1saWQ9Iicrci5kYXRhLmxpZCsnIl0gW3JvbGU9InVwbG9hZGNhcmUtdXBsb2FkZXIiXScpLHIuZGF0YS53aWRnZXQub25VcGxvYWRDb21wbGV0ZS5hZGQoKGZ1bmN0aW9uKCl7cmV0dXJuIHRfZm9ybXNBcGlfX3NlbmRDaGFuZ2Uoci5lbGVtZW50KX0pKSx0KHIpfSkpfSkpfSxyLmZvY3VzPWZ1bmN0aW9uKCl7ci5lbGVtZW50LnNjcm9sbEludG9WaWV3KHtibG9jazoiY2VudGVyIn0pfSxyLnJlc2V0PWZ1bmN0aW9uKCl7dmFyIHQ9ci5kYXRhLndpZGdldDt0X2Zvcm1zQXBpX19zYWZlU2V0VmFsdWUodC5pbnB1dEVsZW1lbnQsIiIse3NpbGVudDohMH0pLHQucmVsb2FkSW5mbygpfSxyfWNhdGNoKG8pe2NvbnNvbGUubG9nKG8pfX0sdF9mb3Jtc0FwaV9fZ2V0Q29udGFjdE1ldGhvZEZpZWxkPWZ1bmN0aW9uIHQoZSl7dmFyIHI9dF9mb3Jtc0FwaV9fZ2V0VGlsZGFGaWVsZChlKSxvPShyLmRhdGEuZmllbGROYW1lfHwiIikuc3BsaXQoIjsiKSxuPW9bMF0sYT1vWzFdO3IuZGF0YS5pc0NvbnRhY3RNZXRob2Q9ITAsci5kYXRhLnR5cGVJbnB1dE5hbWU9bixyLmRhdGEuaWRJbnB1dE5hbWU9YTt2YXIgaSxzPUFycmF5LmZyb20oZS5xdWVyeVNlbGVjdG9yQWxsKCIudC1jb250YWN0LW1ldGhvZF9fdHlwZSIpKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlPXQucXVlcnlTZWxlY3RvcigiW25hbWU9IityLmRhdGEudHlwZUlucHV0TmFtZSsiXSIpO3JldHVybnt3cmFwcGVyOnQsaW5wdXQ6ZSxkaXNwbGF5VGV4dDp0LnRleHRDb250ZW50LnRyaW0oKX19KSk7cmV0dXJuIHIuZ2V0VmFsdWU9ZnVuY3Rpb24oKXt2YXIgdCxvPXRfZm9ybXNBcGlfX3NhZmVWYWx1ZShlLnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPSInK3IuZGF0YS5pZElucHV0TmFtZSsnIl06bm90KFtkaXNhYmxlZF0pJykpLG49cy5maW5kKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pbnB1dC5jaGVja2VkfSkpLGE9dF9mb3Jtc0FwaV9fc2FmZVZhbHVlKG4uaW5wdXQpLGk9bj9uLmRpc3BsYXlUZXh0OiIiO3JldHVybnt2YWx1ZToodD17fSx0W3IuZGF0YS5pZElucHV0TmFtZV09e3ZhbHVlOm99LHRbci5kYXRhLnR5cGVJbnB1dE5hbWVdPXt2YWx1ZTphLHR5cGVJbnB1dERpc3BsYXlUZXh0Oml9LHQpfX0sci5mb2N1cz1mdW5jdGlvbigpe3ZhciB0LGU9ci5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LWNvbnRhY3QtbWV0aG9kX192YWx1ZS1jb250YWluZXIgPiA6bm90KC50LWNvbnRhY3QtbWV0aG9kX19oaWRkZW4pIikucXVlcnlTZWxlY3RvcigiLnQtaW5wdXQtYmxvY2s6bm90KC50LWNvbnRhY3QtbWV0aG9kX19oaWRkZW4pIiksbz1lLnF1ZXJ5U2VsZWN0b3IoIi5qcy11c2VybmFtZS1pbnB1dCIpO2lmKG8pdF9mb3Jtc0FwaV9fc2FmZUZvY3VzKG8pO2Vsc2V7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCcudC1pbnB1dFt0eXBlPSJ0ZWwiXScpO3RfZm9ybXNBcGlfX3NhZmVGb2N1cyhuKX19LHIucmVzZXQ9ZnVuY3Rpb24oKXt0X2Zvcm1zQXBpX19zZW5kUmVzZXQoci5lbGVtZW50KX0scn0sdF9mb3Jtc0FwaV9fZ2V0Q2hlY2tib3hGaWVsZD1mdW5jdGlvbiB0KGUpe3ZhciByPXRfZm9ybXNBcGlfX2dldFRpbGRhRmllbGQoZSk7cmV0dXJuIHIuZ2V0VmFsdWU9ZnVuY3Rpb24oKXt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPSInK3IuZGF0YS5maWVsZE5hbWUrJyJdJyk7cmV0dXJue3ZhbHVlOnQmJnQuY2hlY2tlZD8ieWVzIjoibm8ifX0sci5yZXNldD1mdW5jdGlvbigpe3ZhciB0PWUucXVlcnlTZWxlY3RvcignW25hbWU9Iicrci5kYXRhLmZpZWxkTmFtZSsnIl0nKSxvPXIuZGF0YS5kZWZhdWx0VmFsdWU7dC5jaGVja2VkPSJ5Ij09PW99LHJ9LHRfZm9ybXNBcGlfX2dldFJhZGlvQnV0dG9uc0ZpZWxkPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIHRfZm9ybXNBcGlfX293blZhcmlhbnRNaXhpbih0X2Zvcm1zQXBpX19yYWRpb0ZpZWxkTWl4aW4odF9mb3Jtc0FwaV9fZ2V0VGlsZGFGaWVsZChlKSkpfSx0X2Zvcm1zQXBpX19nZXRDaGVja2JveGVzRmllbGQ9ZnVuY3Rpb24gdChlKXtyZXR1cm4gdF9mb3Jtc0FwaV9fb3duVmFyaWFudE1peGluKHRfZm9ybXNBcGlfX2NoZWNrYm94ZXNNaXhpbih0X2Zvcm1zQXBpX19nZXRUaWxkYUZpZWxkKGUpKSl9LHRfZm9ybXNBcGlfX2dldFJhZGlvSW1hZ2VzRmllbGQ9ZnVuY3Rpb24gdChlKXtyZXR1cm4gdF9mb3Jtc0FwaV9fcmFkaW9GaWVsZE1peGluKHRfZm9ybXNBcGlfX2dldFRpbGRhRmllbGQoZSkpfSx0X2Zvcm1zQXBpX19nZXRDaGVja2JveEltYWdlc0ZpZWxkPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIHRfZm9ybXNBcGlfX2NoZWNrYm94ZXNNaXhpbih0X2Zvcm1zQXBpX19nZXRUaWxkYUZpZWxkKGUpKX0sdF9mb3Jtc0FwaV9fZ2V0UmF0aW5nRmllbGQ9ZnVuY3Rpb24gdChlKXtyZXR1cm4gdF9mb3Jtc0FwaV9fcmFkaW9GaWVsZE1peGluKHRfZm9ybXNBcGlfX2dldFRpbGRhRmllbGQoZSkpfSx0X2Zvcm1zQXBpX19nZXRCYXNpY0RlbGl2ZXJ5RmllbGQ9ZnVuY3Rpb24gdChlKXt2YXIgcj10X2Zvcm1zQXBpX19yYWRpb0ZpZWxkTWl4aW4odF9mb3Jtc0FwaV9fZ2V0VGlsZGFGaWVsZChlKSk7cmV0dXJuIHIuZ2V0VmFsdWU9ZnVuY3Rpb24oKXt2YXIgdD1yLmRhdGEuaW5wdXRzLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNoZWNrZWR9KSksZT10P3QuZ2V0QXR0cmlidXRlKCJkYXRhLWRlbGl2ZXJ5LXByaWNlIik6bnVsbCxvPXRfZm9ybXNBcGlfX3NhZmVWYWx1ZSh0KTtyZXR1cm4gZSYmKG89by5zcGxpdCgiPSIpWzBdKSx7dmFsdWU6byxkZWxpdmVyeVByaWNlOmV9fSxyfSx0X2Zvcm1zQXBpX19nZXRQaG9uZUZpZWxkPWZ1bmN0aW9uIHQoZSl7dmFyIHI9dF9mb3Jtc0FwaV9fZ2V0VGlsZGFGaWVsZChlKTtyZXR1cm4gci5mb2N1cz1mdW5jdGlvbigpe3ZhciB0PXIuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcudC1pbnB1dFt0eXBlPSJ0ZWwiXScpO3RfZm9ybXNBcGlfX3NhZmVGb2N1cyh0KX0sci5yZXNldD1mdW5jdGlvbigpe3RfZm9ybXNBcGlfX3NlbmRSZXNldChyLmVsZW1lbnQpO3ZhciB0PXIuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcudC1pbnB1dFt0eXBlPSJ0ZWwiXScpO3RfZm9ybXNBcGlfX3NhZmVTZXRWYWx1ZSh0LCIiLHtzaWxlbnQ6ITB9KX0scn0sdF9mb3Jtc0FwaV9fZ2V0U2VsZWN0Ym94RmllbGQ9ZnVuY3Rpb24gdChlKXt0cnl7dmFyIHI9dF9mb3Jtc0FwaV9fZ2V0VGlsZGFGaWVsZChlKSxvPU51bWJlcihyLmRhdGEuZGVmYXVsdFZhbHVlKXx8MCxuPXIuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCdbbmFtZT0iJytyLmRhdGEuZmllbGROYW1lKyciXScpO3JldHVybiByLnJlc2V0PWZ1bmN0aW9uKCl7dmFyIHQ7biYmKG4ub3B0aW9uc1tvXS5zZWxlY3RlZD0hMCl9LHJ9Y2F0Y2goYSl7Y29uc29sZS5lcnJvcihhKX19LHRfZm9ybXNBcGlfX2dldENhbGN1bGF0b3JGaWVsZD1mdW5jdGlvbiB0KGUpe3RyeXt2YXIgcj10X2Zvcm1zQXBpX19nZXRUaWxkYUZpZWxkKGUpO3JldHVybiByLnJlc2V0PWZ1bmN0aW9uKCl7ci5lbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZWNhbGN1bGF0ZSIpKX0scn1jYXRjaChvKXtjb25zb2xlLmVycm9yKG8pfX0sdF9mb3Jtc0FwaV9fZ2V0RmllbGRDb25zdHJ1Y3Rvcj1mdW5jdGlvbiB0KGUpe3ZhciByPWUuZ2V0QXR0cmlidXRlKCJkYXRhLWZpZWxkLXR5cGUiKSxvPSJjYiI9PT1lLmdldEF0dHJpYnV0ZSgiZGF0YS1maWVsZC1yYWRjYiIpO3N3aXRjaChyKXtjYXNlIEZPUk1TX0FQSV9GSUVMRC5WQVJJQU5UUzpyZXR1cm4gbz90X2Zvcm1zQXBpX19nZXRDaGVja2JveGVzRmllbGQoZSk6dF9mb3Jtc0FwaV9fZ2V0UmFkaW9CdXR0b25zRmllbGQoZSk7Y2FzZSBGT1JNU19BUElfRklFTEQuSU1BR0VfVkFSSUFOVFM6cmV0dXJuIG8/dF9mb3Jtc0FwaV9fZ2V0Q2hlY2tib3hJbWFnZXNGaWVsZChlKTp0X2Zvcm1zQXBpX19nZXRSYWRpb0ltYWdlc0ZpZWxkKGUpO2Nhc2UgRk9STVNfQVBJX0ZJRUxELkZJTEU6cmV0dXJuIHRfZm9ybXNBcGlfX2dldFVwbG9hZFdpZGdldEZpZWxkKGUpO2Nhc2UgRk9STVNfQVBJX0ZJRUxELkNPTlRBQ1RfTUVUSE9EOnJldHVybiB0X2Zvcm1zQXBpX19nZXRDb250YWN0TWV0aG9kRmllbGQoZSk7Y2FzZSBGT1JNU19BUElfRklFTEQuQ0hFQ0tCT1g6cmV0dXJuIHRfZm9ybXNBcGlfX2dldENoZWNrYm94RmllbGQoZSk7Y2FzZSBGT1JNU19BUElfRklFTEQuVVBMT0FEQ0FSRV9GSUxFOnJldHVybiB0X2Zvcm1zQXBpX19nZXRVcGxvYWRDYXJlRmllbGQoZSk7Y2FzZSBGT1JNU19BUElfRklFTEQuUkFUSU5HOnJldHVybiB0X2Zvcm1zQXBpX19nZXRSYXRpbmdGaWVsZChlKTtjYXNlIEZPUk1TX0FQSV9GSUVMRC5ERUxJVkVSWTpyZXR1cm4gdF9mb3Jtc0FwaV9fZ2V0QmFzaWNEZWxpdmVyeUZpZWxkKGUpO2Nhc2UgRk9STVNfQVBJX0ZJRUxELlBIT05FOnJldHVybiB0X2Zvcm1zQXBpX19nZXRQaG9uZUZpZWxkKGUpO2Nhc2UgRk9STVNfQVBJX0ZJRUxELlNFTEVDVDpyZXR1cm4gdF9mb3Jtc0FwaV9fZ2V0U2VsZWN0Ym94RmllbGQoZSk7Y2FzZSBGT1JNU19BUElfRklFTEQuQ0FMQzpyZXR1cm4gdF9mb3Jtc0FwaV9fZ2V0Q2FsY3VsYXRvckZpZWxkKGUpO2RlZmF1bHQ6cmV0dXJuIHRfZm9ybXNBcGlfX2dldFRpbGRhRmllbGQoZSl9fSx0X2Zvcm1zQXBpX19pbml0VGlsZGFGaWVsZD1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCxyKXt2YXIgbz1lLnRfZmllbGQ7aWYobylyZXR1cm4gdChvKTt2YXIgbj10X2Zvcm1zQXBpX19nZXRGaWVsZENvbnN0cnVjdG9yKGUpO3JldHVybiBufHxyKG5ldyBFcnJvcigiRXJyb3Igd2hpbGUgdHJ5aW5nIHRvIGluaXRpYWxpemUgVGlsZGFGaWVsZCBBcGkuIikpLG4ub25GaWVsZFJlYWR5KCkudGhlbih0KX0pKX0sdF9mb3Jtc0FwaV9fY2xlYXJGb3JtPV9hc3luYyQxKChmdW5jdGlvbih0KXtyZXR1cm4gX2NhdGNoJDEoKGZ1bmN0aW9uKCl7aWYoISh0IGluc3RhbmNlb2YgSFRNTEZvcm1FbGVtZW50KSl0aHJvdyBuZXcgRXJyb3IoIk11c3QgYmUgY2FsbGVkIG9uIGEgZm9ybSBlbGVtZW50Iik7dmFyIGU9dC5jbG9zZXN0KCIudC1yZWMiKSxyLG89QXJyYXkuZnJvbSh0LnF1ZXJ5U2VsZWN0b3JBbGwoIi50LWlucHV0LWdyb3VwIikpLm1hcCh0X2Zvcm1zQXBpX19pbml0VGlsZGFGaWVsZCk7cmV0dXJuIF9hd2FpdCQxKFByb21pc2UuYWxsU2V0dGxlZChvKSwoZnVuY3Rpb24ocil7dmFyIG8sbjtyLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuImZ1bGZpbGxlZCI9PT10LnN0YXR1c30pKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnZhbHVlfSkpLnNvcnQodF9mb3Jtc0FwaV9fc29ydEZpZWxkc0JlZm9yZUNsZWFyKS5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZXNldCYmdC5yZXNldCgpfSkpLHRfZm9ybXNBcGlfX2lzQ29uZGl0aW9uYWxGb3JtKHQpJiZlLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzeW5jLWNvbmRpdGlvbmFscyIse2RldGFpbDp7c2hvdWxkUHJldmVudFN1Ym1pdDohMX19KSl9KSl9KSwoZnVuY3Rpb24odCl7Y29uc29sZS5lcnJvcigiRXJyb3IgdHJ5aW5nIHRvIGNsZWFyIGZvcm06Iix0KX0pKX0pKTtmdW5jdGlvbiBfYXdhaXQodCxlLHIpe3JldHVybiByP2U/ZSh0KTp0Oih0JiZ0LnRoZW58fCh0PVByb21pc2UucmVzb2x2ZSh0KSksZT90LnRoZW4oZSk6dCl9dmFyIHRfZm9ybXNfX3VwZGF0ZUFsbFZhcmlhYmxlcz1fYXN5bmMoKGZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLmxvZygiUkVTVEFSVCIpLF9jb250aW51ZUlnbm9yZWQoX2NhdGNoKChmdW5jdGlvbigpe3ZhciBlPXQuY2xvc2VzdCgiLnQtcmVjIikscj10X2Zvcm1zX19nZXRVc2VkVmFyaWFibGVzKFtlXSx7dW5pcXVlOiEwfSksbztyLmZpbHRlcih0X2Zvcm1zX19pc1N5c3RlbVZhcmlhYmxlKS5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdF9mb3Jtc19fdXBkYXRlU3lzdGVtVmFyaWFibGUoZSxlLHQpfSkpO3ZhciBuLGE9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiF0X2Zvcm1zX19pc1N5c3RlbVZhcmlhYmxlKHQpfSkpLm1hcChfYXN5bmMoKGZ1bmN0aW9uKHQpe3ZhciByPXRfZm9ybXNfX2ZpbmRGb3JtRmllbGQoZSx0Lm5hbWUpO3JldHVybiByP19hd2FpdCh0X2Zvcm1zQXBpX19pbml0VGlsZGFGaWVsZChyKSwoZnVuY3Rpb24ocil7aWYoIXIpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3RfZm9ybXNfX3VwZGF0ZUlucHV0VmFyaWFibGUoZSx0LHIpfSkpOlByb21pc2UucmVzb2x2ZSgpfSkpKTtyZXR1cm4gX2F3YWl0SWdub3JlZChQcm9taXNlLmFsbChhKSl9KSwoZnVuY3Rpb24odCl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHVwZGF0ZSB2YXJpYWJscyBpbiByZWM6Iix0KX0pKSl9KSk7ZnVuY3Rpb24gX2NhdGNoKHQsZSl7dHJ5e3ZhciByPXQoKX1jYXRjaChvKXtyZXR1cm4gZShvKX1yZXR1cm4gciYmci50aGVuP3IudGhlbih2b2lkIDAsZSk6cn12YXIgdF9mb3Jtc19fZm9jdXNJbnB1dD1fYXN5bmMoKGZ1bmN0aW9uKHQpe2lmKHQpe3ZhciBlPXQuY2xvc2VzdCgiLnQtaW5wdXQtZ3JvdXAiKTtpZihlKXJldHVybiBfY29udGludWVJZ25vcmVkKF9jYXRjaCgoZnVuY3Rpb24oKXtyZXR1cm4gX2F3YWl0KHRfZm9ybXNBcGlfX2luaXRUaWxkYUZpZWxkKGUpLChmdW5jdGlvbih0KXt0LmZvY3VzKCl9KSl9KSwoZnVuY3Rpb24oKXt0LmZvY3VzKCl9KSkpfX0pKTtmdW5jdGlvbiBfZW1wdHkoKXt9ZnVuY3Rpb24gX2NvbnRpbnVlSWdub3JlZCh0KXtpZih0JiZ0LnRoZW4pcmV0dXJuIHQudGhlbihfZW1wdHkpfWZ1bmN0aW9uIF9hc3luYyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIGU9W10scj0wO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspZVtyXT1hcmd1bWVudHNbcl07dHJ5e3JldHVybiBQcm9taXNlLnJlc29sdmUodC5hcHBseSh0aGlzLGUpKX1jYXRjaChvKXtyZXR1cm4gUHJvbWlzZS5yZWplY3Qobyl9fX1mdW5jdGlvbiBfYXdhaXRJZ25vcmVkKHQsZSl7aWYoIWUpcmV0dXJuIHQmJnQudGhlbj90LnRoZW4oX2VtcHR5KTpQcm9taXNlLnJlc29sdmUoKX1mdW5jdGlvbiB0X2Zvcm1zX19pbml0Rm9ybXMoKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcucjpub3QoW2RhdGEtcmVjb3JkLXR5cGU9IjEwOTMiXSknKTt3aW5kb3cudF9mb3Jtc19faW5wdXREYXRhPXt9LHRfZm9ybXNfX2FkZFJlY2FwdGNoYSgpLEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodCwoZnVuY3Rpb24odCl7dmFyIGU9dC5pZDt3aW5kb3cuaW5pdEZvcm1zW2VdfHwodF9mb3Jtc19faW5pdEZvcm1GaWVsZHModCksdF9mb3Jtc19faW5pdEV2ZW50UGxhY2Vob2xkZXIodCksdF9mb3Jtc19fYWRkSW5wdXRJdHNHb29kKHQpLHRfZm9ybXNfX2FkZEF0dHJBY3Rpb24odCksdF9mb3Jtc19fb25TdWJtaXQodCksdF9mb3Jtc19fb25DbGljayh0KSx0X2Zvcm1zX19vblJlbmRlcih0KSx0X2Zvcm1zX19hZGRGb2N1c09uVGFiKHQpLHRfb25GdW5jTG9hZCgidF90aHJvdHRsZSIsKGZ1bmN0aW9uKCl7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdF90aHJvdHRsZSgoZnVuY3Rpb24oKXt0X2Zvcm1zX19jYWxjdWxhdGVJbnB1dHNXaWR0aChlKX0pKSl9KSksd2luZG93LmluaXRGb3Jtc1tlXT0hMCl9KSl9ZnVuY3Rpb24gdF9mb3Jtc19fYWRkRm9jdXNPblRhYih0KXtpZighd2luZG93LmlzTW9iaWxlKXt2YXIgZT10LnF1ZXJ5U2VsZWN0b3JBbGwoIi50LWlucHV0LCAudC1zZWxlY3QiKTtpZihlKXt2YXIgcj1udWxsO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLChmdW5jdGlvbigpe3I9ImtleWJvYXJkIn0pKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLChmdW5jdGlvbigpe3I9Im1vdXNlIn0pKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIiwoZnVuY3Rpb24oKXtyPSJtb3VzZSJ9KSksQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLChmdW5jdGlvbih0KXt0LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoZnVuY3Rpb24oKXsia2V5Ym9hcmQiPT09ciYmKCh0LmNsYXNzTGlzdC5jb250YWlucygidC1pbnB1dF9wdmlzIil8fHQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LWlucHV0LXBob25lbWFzayIpKSYmKHQ9dC5wYXJlbnRFbGVtZW50KSx0LmNsYXNzTGlzdC5hZGQoInQtZm9jdXNhYmxlIikscj1udWxsKX0pKSx0LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLChmdW5jdGlvbigpe3QuY2xhc3NMaXN0LnJlbW92ZSgidC1mb2N1c2FibGUiKX0pKX0pKX19fWZ1bmN0aW9uIHRfZm9ybXNfX2luaXRFdmVudFBsYWNlaG9sZGVyKHQpe3ZhciBlPSJmb2N1cyIscj0iYmx1ciI7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcnx8KGU9ImZvY3VzaW4iLHI9ImZvY3Vzb3V0IiksdF9yZW1vdmVFdmVudExpc3RlbmVyKHQsZSx0X2Zvcm1zX19yZW1vdmVQbGFjZWhvbGRlciksdF9hZGRFdmVudExpc3RlbmVyKHQsZSx0X2Zvcm1zX19yZW1vdmVQbGFjZWhvbGRlciwhMCksdF9yZW1vdmVFdmVudExpc3RlbmVyKHQscix0X2Zvcm1zX19hZGRQbGFjZWhvbGRlciksdF9hZGRFdmVudExpc3RlbmVyKHQscix0X2Zvcm1zX19hZGRQbGFjZWhvbGRlciwhMCl9ZnVuY3Rpb24gdF9mb3Jtc19fcmVtb3ZlUGxhY2Vob2xkZXIodCl7dmFyIGU9KHQ9dHx8d2luZG93LmV2ZW50KS50YXJnZXR8fHQuc3JjRWxlbWVudDtpZigiSU5QVVQiPT09ZS50YWdOYW1lKXt2YXIgcj1lLmNsb3Nlc3QoIltkYXRhLWlucHV0LWxpZF0iKSxvPWUuZ2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIpLG49IiI7aWYociluPXIuZ2V0QXR0cmlidXRlKCJkYXRhLWlucHV0LWxpZCIpO2Vsc2V7dmFyIGE9ZS5jbG9zZXN0KCJmb3JtIik7YSYmKG49YS5nZXRBdHRyaWJ1dGUoImRhdGEtaW5wdXQtbGlkIikpfW8mJm4mJih3aW5kb3cudF9mb3Jtc19faW5wdXREYXRhW25dPW8sZS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwiIikpfX1mdW5jdGlvbiB0X2Zvcm1zX19hZGRNb3ZlVG9JbnB1dFdpdGhFcnJvckNsaWNrSGFuZGxlcih0LGUpe2UmJnQmJihlLlRFbGVtZW50VG9Gb2N1cz10LGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRfZm9ybXNfX2hhbmRsZUNsaWNrT25FcnJvciksZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdF9mb3Jtc19faGFuZGxlQ2xpY2tPbkVycm9yKSl9ZnVuY3Rpb24gdF9mb3Jtc19faGFuZGxlQ2xpY2tPbkVycm9yKHQpe3QucHJldmVudERlZmF1bHQoKTt2YXIgZT10LnRhcmdldC5jbG9zZXN0KCIudC1mb3JtX19lcnJvcmJveC1pdGVtIik7aWYoZSl7dmFyIHI9ZS5URWxlbWVudFRvRm9jdXM7dF9mb3Jtc19fZm9jdXNJbnB1dChyKX19ZnVuY3Rpb24gdF9mb3Jtc19fYWRkUGxhY2Vob2xkZXIodCl7dmFyIGU9KHQ9dHx8d2luZG93LmV2ZW50KS50YXJnZXR8fHQuc3JjRWxlbWVudCxyPWUuY2xvc2VzdCgiW2RhdGEtaW5wdXQtbGlkXSIpLG89IiI7aWYocilvPXIuZ2V0QXR0cmlidXRlKCJkYXRhLWlucHV0LWxpZCIpO2Vsc2V7dmFyIG49ZS5jbG9zZXN0KCJmb3JtIik7biYmKG89bi5nZXRBdHRyaWJ1dGUoImRhdGEtaW5wdXQtbGlkIikpfXZhciBhPXdpbmRvdy50X2Zvcm1zX19pbnB1dERhdGFbb118fCIiO2EmJm8mJihlLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLGEpLHdpbmRvdy50X2Zvcm1zX19pbnB1dERhdGFbb109IiIpfWZ1bmN0aW9uIHRfZm9ybXNfX2FkZElucHV0SXRzR29vZCh0KXt2YXIgZT10LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1mb3JtLXByb2NjZXNzW2RhdGEtZm9ybWFjdGlvbnR5cGVdIik7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLChmdW5jdGlvbih0KXt2YXIgZT10LmdldEF0dHJpYnV0ZSgiZGF0YS1mb3JtYWN0aW9udHlwZSIpLHI9dC5xdWVyeVNlbGVjdG9yKCdpbnB1dFtuYW1lPSJmb3JtLXNwZWMtY29tbWVudHMiXScpOyIxIj09PWV8fHJ8fHQuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLCc8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IC01MDAwcHg7IGJvdHRvbTogMDsgZGlzcGxheTogbm9uZTsiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJmb3JtLXNwZWMtY29tbWVudHMiIHZhbHVlPSJJdHMgZ29vZCIgY2xhc3M9ImpzLWZvcm0tc3BlYy1jb21tZW50cyIgdGFiaW5kZXg9Ii0xIiAvPjwvZGl2PicpfSkpfWZ1bmN0aW9uIHRfZm9ybXNfX2FkZEF0dHJBY3Rpb24odCl7dmFyIGU9dC5xdWVyeVNlbGVjdG9yQWxsKCIuanMtZm9ybS1wcm9jY2VzcyIpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZSwoZnVuY3Rpb24odCl7dmFyIGU7IjIiPT09dC5nZXRBdHRyaWJ1dGUoImRhdGEtZm9ybWFjdGlvbnR5cGUiKSYmdC5zZXRBdHRyaWJ1dGUoImFjdGlvbiIsIiMiKX0pKX1mdW5jdGlvbiB0X2Zvcm1zX19jYWxjdWxhdGVJbnB1dHNXaWR0aCh0KXt0JiYodD10LnJlcGxhY2UoInJlYyIsIiIpKTt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcmVjIit0KTtpZih0fHwhZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoInQ3MDZfX2JvZHlfY2FydHdpbnNob3dlZCIpJiYhZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoInQ3MDZfX2JvZHlfY2FydHBhZ2VzaG93ZWQiKXx8KGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQ3MDYiKSksZSl7dmFyIHI9ZS5xdWVyeVNlbGVjdG9yKCIudC1mb3JtX19pbnB1dHNib3giKTtpZihyKXtyLmNsb3Nlc3QoIi50NzA2IikmJnIuY2xhc3NMaXN0LmFkZCgidC1mb3JtX19pbnB1dHNib3hfaW5yb3ciKTt2YXIgbz1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi50LWlucHV0LWdyb3VwX3dpZHRoZGVmLCAudC1pbnB1dC1ncm91cF9pbnJvdyIpO2lmKHIuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LWZvcm1fX2lucHV0c2JveF9pbnJvdyIpfHwobz1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi50LWlucHV0LWJsb2NrX3dpZHRoIikpLDAhPT1vLmxlbmd0aCl7KHIuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LWZvcm1fX2lucHV0c2JveF92ZXJ0aWNhbC1mb3JtIil8fHIuY2xvc2VzdCgiLnQ3MDYiKSkmJnIuY2xhc3NMaXN0LmFkZCgidC1mb3JtX19pbnB1dHNib3hfZmxleCIpO3ZhciBuPXIub2Zmc2V0V2lkdGgsYT1bInJkIiwicmkiLCJ1YyIsIndzIiwiaGQiLCJmciIsInN0Il07QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChvLChmdW5jdGlvbih0KXtpZihyLmNsYXNzTGlzdC5jb250YWlucygidC1mb3JtX19pbnB1dHNib3hfaW5yb3ciKXx8KHQ9dC5jbG9zZXN0KCIudC1pbnB1dC1ncm91cCIpKSx0JiZ0LmNsYXNzTGlzdC5jb250YWlucygidC1pbnB1dC1ncm91cF9pbnJvdy13aXRoc2libGluZyIpKXt2YXIgZT10Lm5leHRFbGVtZW50U2libGluZyxvPWEuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gZS5jbGFzc0xpc3QuY29udGFpbnMoInQtaW5wdXQtZ3JvdXBfIit0KX0pKTtpZighZXx8MCE9PW8ubGVuZ3RofHwhKGUuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LWlucHV0LWdyb3VwX2lucm93IikmJiF0LmNsYXNzTGlzdC5jb250YWlucygidC1pbnB1dC1ncm91cF93aWR0aGRlZiIpfHx0LmNsYXNzTGlzdC5jb250YWlucygidC1pbnB1dC1ncm91cF93aWR0aGRlZiIpJiZlLmNsYXNzTGlzdC5jb250YWlucygidC1pbnB1dC1ncm91cCIpJiYhZS5jbGFzc0xpc3QuY29udGFpbnMoInQtaW5wdXQtZ3JvdXBfaW5yb3ciKSkpcmV0dXJuIHQuY2xhc3NMaXN0LnJlbW92ZSgidC1pbnB1dC1ncm91cF9pbnJvdy13aXRoc2libGluZyIpLHZvaWQgdC5jbGFzc0xpc3QuYWRkKCJ0LWlucHV0LWdyb3VwX2lucm93LWxhc3QiKTtlLmNsYXNzTGlzdC5hZGQoInQtaW5wdXQtZ3JvdXBfaW5vbmVyb3ciKX1lbHNlIHQuY2xhc3NMaXN0LmFkZCgidC1pbnB1dC1ncm91cF9pbnJvdy1sYXN0Iik7ZSYmdC5jbGFzc0xpc3QuY29udGFpbnMoInQtaW5wdXQtZ3JvdXBfd2lkdGhkZWYiKSYmdC5jbGFzc0xpc3QuY29udGFpbnMoInQtaW5wdXQtZ3JvdXBfaW5yb3ctd2l0aHNpYmxpbmciKSYmZS5jbGFzc0xpc3QuY29udGFpbnMoInQtaW5wdXQtZ3JvdXBfaW5vbmVyb3ciKSYmIWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LWlucHV0LWdyb3VwX2lucm93IikmJihlLmNsYXNzTGlzdC5hZGQoInQtaW5wdXQtZ3JvdXBfd2lkdGhkZWYiKSxlLmNsYXNzTGlzdC5jb250YWlucygidC1pbnB1dC1ncm91cF9pbnJvdy13aXRoc2libGluZyIpfHxlLmNsYXNzTGlzdC5hZGQoInQtaW5wdXQtZ3JvdXBfaW5yb3ctbGFzdCIpLGUuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LWlucHV0LWdyb3VwX2lucm93IikmJnQuY2xhc3NMaXN0LmFkZCgidC1pbnB1dC1ncm91cF9pbnJvdy1sYXN0IikpLHIuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LWZvcm1fX2lucHV0c2JveF9pbnJvdyIpfHx0X2Zvcm1zX19jYWxjdWxhdGVGaWVsZHNXaWR0aEluSlModCxuKX0pKTt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi50LWlucHV0LWdyb3VwX2lucm93LnQtaW5wdXQtZ3JvdXBfaW5vbmVyb3cudC1pbnB1dC1ncm91cF9pbnJvdy1sYXN0Iik7aS5sZW5ndGg+MCYmdF9mb3Jtc19fbW92ZUZpZWxkVG9OZXh0Um93KGkpO3ZhciBzPWUucXVlcnlTZWxlY3RvckFsbCgiLnQtaW5wdXQtZ3JvdXBfd2lkdGhkZWYudC1pbnB1dC1ncm91cF9pbnJvdy1sYXN0Iik7ci5jbGFzc0xpc3QuY29udGFpbnMoInQtZm9ybV9faW5wdXRzYm94X2lucm93IikmJnMubGVuZ3RoPjAmJnRfZm9ybXNfX2NvbWJpbmVGaWVsZHNXaXRoRGVmV2lkdGgocyx0KX19fX1mdW5jdGlvbiB0X2Zvcm1zX19tb3ZlRmllbGRUb05leHRSb3codCl7dmFyIGU7dF9mb3Jtc19fY3JlYXRlQXJyV2l0aEFsbFJvd3ModCwidC1pbnB1dC1ncm91cF9pbnJvdyIpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPSExO2lmKHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5jbGFzc0xpc3QuY29udGFpbnMoInQtaW5wdXQtZ3JvdXBfaW5yb3ctbGFzdCIpJiZ0Lm5leHRFbGVtZW50U2libGluZyYmIXQubmV4dEVsZW1lbnRTaWJsaW5nLmNsYXNzTGlzdC5jb250YWlucygidC1pbnB1dC1ncm91cF9pbm9uZXJvdyIpJiYoZT0hMCl9KSksIWUpe3ZhciByPXQucmVkdWNlKChmdW5jdGlvbih0LGUpe3ZhciByLG89ZS5jbGFzc0xpc3QudmFsdWUuc3BsaXQoIiAiKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybi0xIT09dC5pbmRleE9mKCJ0LWlucHV0LWdyb3VwX3dpZHRoIil9KSksbj0yLGE7cmV0dXJuLTEhPT0obz1vWzBdKS5pbmRleE9mKCIxMDAiKSYmKG49MyksdCtOdW1iZXIoby5zdWJzdHIoby5sZW5ndGgtMixuKSl9KSwwKTtyPD0xMDB8fHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5jbGFzc0xpc3QuY29udGFpbnMoInQtaW5wdXQtZ3JvdXBfaW5yb3ctbGFzdCIpJiYodC5zdHlsZS5tYXJnaW5SaWdodD0iY2FsYygxMDAlIC0gKCIrKHItMTAwKSsiJSkiLHQuc3R5bGUuZmxleD0iMCAwIGF1dG8iKX0pKX19KSl9ZnVuY3Rpb24gdF9mb3Jtc19fY29tYmluZUZpZWxkc1dpdGhEZWZXaWR0aCh0LGUpe3ZhciByPVtdLG87dF9mb3Jtc19fY3JlYXRlQXJyV2l0aEFsbFJvd3ModCwidC1pbnB1dC1ncm91cF93aWR0aGRlZiIpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPTQ7aWYodC5sZW5ndGg+NClmb3IodmFyIG89MDtvPHQubGVuZ3RoO28rPTQpe3ZhciBuPXQuc2xpY2UobyxvKzQpO3IucHVzaChuKX1lbHNlIHIucHVzaCh0KX0pKSxyLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciByLG89InQtaW5wdXQtZ3JvdXBfd2lkdGgiKyh7NDoiMjUiLDM6IjMzIiwyOiI1MCJ9W3QubGVuZ3RoXXx8IjEwMCIpO3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7aWYodC5jbGFzc0xpc3QuYWRkKG8pLHQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LWlucHV0LWdyb3VwX3JnIikpe3ZhciByPXQuZ2V0QXR0cmlidXRlKCJkYXRhLWlucHV0LWxpZCIpO3RfaW5wdXRfcmFuZ2VfaW5pdChlLHIpfX0pKX0pKX1mdW5jdGlvbiB0X2Zvcm1zX19jcmVhdGVBcnJXaXRoQWxsUm93cyh0LGUpe3ZhciByPVtdLG89W107cmV0dXJuIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodCwoZnVuY3Rpb24odCl7Zm9yKG8ucHVzaCh0KTt0LnByZXZpb3VzRWxlbWVudFNpYmxpbmcmJnQucHJldmlvdXNFbGVtZW50U2libGluZy5jbGFzc0xpc3QuY29udGFpbnMoZSkmJiF0LnByZXZpb3VzRWxlbWVudFNpYmxpbmcuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LWlucHV0LWdyb3VwX2lucm93LWxhc3QiKTspdD10LnByZXZpb3VzRWxlbWVudFNpYmxpbmcsby5wdXNoKHQpO3IucHVzaChvLnJldmVyc2UoKSksbz1bXX0pKSxyfWZ1bmN0aW9uIHRfZm9ybXNfX2NhbGN1bGF0ZUZpZWxkc1dpZHRoSW5KUyh0LGUpe3ZhciByPTE1LG89ezE6InQtaW5wdXQtYmxvY2tfd2lkdGgxMDAiLDI6InQtaW5wdXQtYmxvY2tfd2lkdGg1MCIsMzoidC1pbnB1dC1ibG9ja193aWR0aDMzIiw0OiJ0LWlucHV0LWJsb2NrX3dpZHRoMjUifTtmb3IodmFyIG4gaW4gbylpZih0LmNsYXNzTGlzdC5jb250YWlucyhvW25dKSl7dC5zdHlsZS53aWR0aD0oZS1yKihuLTEpKS9uKyJweCI7dmFyIGE9dC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO2EmJmEuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LWlucHV0LXRpdGxlIikmJihhLnN0eWxlLndpZHRoPShlLXIqKG4tMSkpL24rInB4Iiksd2luZG93LmlubmVyV2lkdGg8NDgwJiYodCYmKHQuc3R5bGUud2lkdGg9IjEwMCUiKSxhJiYoYS5zdHlsZS53aWR0aD0iMTAwJSIpKX19ZnVuY3Rpb24gdF9mb3Jtc19fb25TdWJtaXQodCl7dmFyIGU9dC5xdWVyeVNlbGVjdG9yQWxsKCIuanMtZm9ybS1wcm9jY2VzcyIpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZSwoZnVuY3Rpb24odCl7dF9yZW1vdmVFdmVudExpc3RlbmVyKHQsInN1Ym1pdCIsdF9mb3Jtc19fc3VibWl0RXZlbnQpLHRfYWRkRXZlbnRMaXN0ZW5lcih0LCJzdWJtaXQiLHRfZm9ybXNfX3N1Ym1pdEV2ZW50KX0pKX1mdW5jdGlvbiB0X2Zvcm1zX19vbkNsaWNrKHQpe3RfYWRkRXZlbnRMaXN0ZW5lcih0LCJkYmxjbGljayIsdF9mb3Jtc19faW5pdEJ0bkRibENsaWNrKSx0X3JlbW92ZUV2ZW50TGlzdGVuZXIodCwiY2xpY2siLHRfZm9ybXNfX2luaXRCdG5DbGljayksdF9hZGRFdmVudExpc3RlbmVyKHQsImNsaWNrIix0X2Zvcm1zX19pbml0QnRuQ2xpY2spfWZ1bmN0aW9uIHRfZm9ybXNfX2luaXRCdG5EYmxDbGljayh0KXt2YXIgZTtpZigoKHQ9dHx8d2luZG93LmV2ZW50KS50YXJnZXR8fHQuc3JjRWxlbWVudCkuY2xvc2VzdCgnW3R5cGU9InN1Ym1pdCJdJykpcmV0dXJuIHQucHJldmVudERlZmF1bHQ/dC5wcmV2ZW50RGVmYXVsdCgpOnQucmV0dXJuVmFsdWU9ITEsITF9ZnVuY3Rpb24gdF9mb3Jtc19faW5pdEJ0bkNsaWNrKHQpe3ZhciBlPSh0PXR8fHdpbmRvdy5ldmVudCkudGFyZ2V0fHx0LnNyY0VsZW1lbnQscj0hIWUuY2xvc2VzdCgnW3R5cGU9InN1Ym1pdCJdJykmJmU7aWYocil7dmFyIG89ci5jbG9zZXN0KCIuanMtZm9ybS1wcm9jY2VzcyIpO2lmKG8pe3QucHJldmVudERlZmF1bHQ/dC5wcmV2ZW50RGVmYXVsdCgpOnQucmV0dXJuVmFsdWU9ITE7dmFyIG49by5nZXRBdHRyaWJ1dGUoImlkIiksYT1bXSxpPSIiO2lmKHIudGlsZGFTZW5kaW5nU3RhdHVzJiYoaT1yLnRpbGRhU2VuZGluZ1N0YXR1cyksIShpJiZpPj0xfHx0X2hhc0NsYXNzKHIsInQ3MDZfX3N1Ym1pdF9kaXNhYmxlIikpKXtpZih0X2FkZENsYXNzKHIsInQtYnRuX3NlbmRpbmciKSxyLnRpbGRhU2VuZGluZ1N0YXR1cz0iMSIsd2luZG93LnRpbGRhRm9ybS5oaWRlRXJyb3JzKG8pLGE9d2luZG93LnRpbGRhRm9ybS52YWxpZGF0ZShvKSx3aW5kb3cudGlsZGFGb3JtLnNob3dFcnJvcnMobyxhKSlyZXR1cm4gdF9yZW1vdmVDbGFzcyhyLCJ0LWJ0bl9zZW5kaW5nIiksdm9pZChyLnRpbGRhU2VuZGluZ1N0YXR1cz0iMCIpO3ZhciBzLGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKS5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtZm9ybXNrZXkiKSxkPXBhcnNlSW50KG8uZ2V0QXR0cmlidXRlKCJkYXRhLWZvcm1hY3Rpb250eXBlIikpLHU7aWYoIW8ucXVlcnlTZWxlY3RvckFsbCgiLmpzLWZvcm1hY3Rpb24tc2VydmljZXMiKS5sZW5ndGgmJjEhPT1kJiYhbCl7dmFyIGM9dF9mb3Jtc19fZ2V0RXJyb3JDb250YWluZXJzKG8sIiIpLG09Yy5lcnJvckJveGVzLGY9Yy5hbGxFcnJvcjtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChmLChmdW5jdGlvbih0KXt0LmlubmVySFRNTD0iUGxlYXNlIHNldCByZWNlaXZlciBpbiBibG9jayB3aXRoIGZvcm1zIix0LnN0eWxlLmRpc3BsYXk9ImJsb2NrIn0pKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG0sKGZ1bmN0aW9uKHQpe3Quc3R5bGUuZGlzcGxheT0iYmxvY2sifSkpLHRfYWRkQ2xhc3MobywianMtc2VuZC1mb3JtLWVycm9yIiksdF9yZW1vdmVDbGFzcyhyLCJ0LWJ0bl9zZW5kaW5nIiksci50aWxkYVNlbmRpbmdTdGF0dXM9IjAiLHZvaWQgdF90cmlnZ2VyRXZlbnQobywidGlsZGFmb3JtOmFmdGVyZXJyb3IiKX1pZihvLnF1ZXJ5U2VsZWN0b3IoIi5nLXJlY2FwdGNoYSIpJiZncmVjYXB0Y2hhKXt3aW5kb3cudGlsZGFGb3JtLmN1cnJlbnRGb3JtUHJvY2Nlc3Npbmc9e2Zvcm06byxidG46cixmb3JtdHlwZTpkLGZvcm1za2V5Omx9O3ZhciBfPW8udGlsZGFDYXB0Y2hhQ2xpZW50SWQ7aWYoXylncmVjYXB0Y2hhLnJlc2V0KF8pO2Vsc2V7dmFyIHA9e3NpemU6ImludmlzaWJsZSIsc2l0ZWtleTpvLmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1jYXB0Y2hha2V5IiksY2FsbGJhY2s6d2luZG93LnRpbGRhRm9ybS5jYXB0Y2hhQ2FsbGJhY2t9O189Z3JlY2FwdGNoYS5yZW5kZXIobisicmVjYXB0Y2hhIixwKSxvLnRpbGRhQ2FwdGNoYUNsaWVudElkPV99Z3JlY2FwdGNoYS5leGVjdXRlKF8pfWVsc2Ugd2luZG93LnRpbGRhRm9ybS5zZW5kKG8scixkLGwpfX19fWZ1bmN0aW9uIHRfZm9ybXNfX29uUmVuZGVyKHQpe3ZhciBlOyEhdC5xdWVyeVNlbGVjdG9yKCIudDM5NiIpJiYodF9yZW1vdmVFdmVudExpc3RlbmVyKHQsInJlbmRlciIsdF9mb3Jtc19fcmVuZGVyRXZlbnQpLHRfYWRkRXZlbnRMaXN0ZW5lcih0LCJyZW5kZXIiLHRfZm9ybXNfX3JlbmRlckV2ZW50KSl9ZnVuY3Rpb24gdF9mb3Jtc19fcmVuZGVyRXZlbnQoKXt0X2Zvcm1zX19vblN1Ym1pdCh0aGlzKX1mdW5jdGlvbiB0X2Zvcm1zX19zdWJtaXRFdmVudCh0KXt2YXIgZT10O2lmKHQudGFyZ2V0JiYoZT10LnRhcmdldCksZSl7dmFyIHI9ZS5xdWVyeVNlbGVjdG9yKCdbdHlwZT0ic3VibWl0Il0nKSxvPSIiO3ImJnIudGlsZGFTZW5kaW5nU3RhdHVzJiYobz1yLnRpbGRhU2VuZGluZ1N0YXR1cyksbyYmIjMiPT09bz9yLnRpbGRhU2VuZGluZ1N0YXR1cz0iIjoociYmIXRfaGFzQ2xhc3MociwidDcwNl9fc3VibWl0X2Rpc2FibGUiKSYmci5jbGljaygpLHQucHJldmVudERlZmF1bHQ/dC5wcmV2ZW50RGVmYXVsdCgpOnQucmV0dXJuVmFsdWU9ITEpfX1mdW5jdGlvbiB0X2FzeW5jTG9hZCh0KXt2YXIgZT10LmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1tYXNrIikscj10LmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1tYXNrLWhvbGRlciIpLG89dC5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtbWFzay1pbml0Iik7ZSYmIW8mJihyP3Rfb25GdW5jTG9hZCgidF9jdXN0b21NYXNrX19tYXNrIiwoZnVuY3Rpb24oKXt0X2N1c3RvbU1hc2tfX21hc2sodCxlLHtwbGFjZWhvbGRlcjpyfSl9KSk6dF9vbkZ1bmNMb2FkKCJ0X2N1c3RvbU1hc2tfX21hc2siLChmdW5jdGlvbigpe3RfY3VzdG9tTWFza19fbWFzayh0LGUpfSkpLHQuc2V0QXR0cmlidXRlKCJkYXRhLXRpbGRhLW1hc2staW5pdCIsIjEiKSl9ZnVuY3Rpb24gdF9mb3Jtc19fZ2V0RXJyb3JDb250YWluZXJzKHQsZSl7dmFyIHI9dC5xdWVyeVNlbGVjdG9yQWxsKCIuanMtZXJyb3Jib3gtYWxsIiksbz10LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1lcnJvcmJveC1hbGwgLmpzLXJ1bGUtZXJyb3ItYWxsIik7cmV0dXJuIHIubGVuZ3RofHwodC5pbnNlcnRBZGphY2VudEhUTUwoImFmdGVyYmVnaW4iLCc8ZGl2IGNsYXNzPSJqcy1lcnJvcmJveC1hbGwiPjwvZGl2PicpLHI9dC5xdWVyeVNlbGVjdG9yQWxsKCIuanMtZXJyb3Jib3gtYWxsIikpLG8ubGVuZ3RofHwoQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChyLChmdW5jdGlvbih0KXt0Lmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlZW5kIiwnPHAgY2xhc3M9ImpzLXJ1bGUtZXJyb3ItYWxsIj4nK2UrIjwvcD4iKX0pKSxvPXQucXVlcnlTZWxlY3RvckFsbCgiLmpzLWVycm9yYm94LWFsbCAuanMtcnVsZS1lcnJvci1hbGwiKSkse2Vycm9yQm94ZXM6cixhbGxFcnJvcjpvfX1mdW5jdGlvbiB0X2Zvcm1zX19hZGRSZWNhcHRjaGEoKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuanMtdGlsZGEtY2FwdGNoYSIpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodCwoZnVuY3Rpb24odCl7dmFyIGU9dC5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtY2FwdGNoYWtleSIpO2lmKGUpe3ZhciByPXQuZ2V0QXR0cmlidXRlKCJpZCIpO2lmKCF3aW5kb3cudGlsZGFGb3JtLmlzUmVjYXB0Y2hhU2NyaXB0SW5pdCl7dmFyIG89ZG9jdW1lbnQuaGVhZCxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3dpbmRvdy50aWxkYUZvcm0uaXNSZWNhcHRjaGFTY3JpcHRJbml0PSEwLG4udHlwZT0idGV4dC9qYXZhc2NyaXB0IixuLnNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9yZWNhcHRjaGEvYXBpLmpzP3JlbmRlcj1leHBsaWNpdCIsbi5hc3luYz0hMCxvLmFwcGVuZENoaWxkKG4pLG8uaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLCc8c3R5bGUgdHlwZT0idGV4dC9jc3MiPi5qcy1zZW5kLWZvcm0tc3VjY2VzcyAuZ3JlY2FwdGNoYS1iYWRnZSB7ZGlzcGxheTogbm9uZTt9PC9zdHlsZT4nKX1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChyKyJyZWNhcHRjaGEiKXx8dC5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWVuZCIsJzxkaXYgaWQ9IicrcisncmVjYXB0Y2hhIiBjbGFzcz0iZy1yZWNhcHRjaGEiIGRhdGEtc2l0ZWtleT0iJytlKyciIGRhdGEtY2FsbGJhY2s9IndpbmRvdy50aWxkYUZvcm0uY2FwdGNoYUNhbGxiYWNrIiBkYXRhLXNpemU9ImludmlzaWJsZSI+PC9kaXY+Jyl9ZWxzZSB0X3JlbW92ZUNsYXNzKHQsImpzLXRpbGRhLWNhcHRjaGEiKX0pKX1mdW5jdGlvbiB0X2Zvcm1zX19zaG93RW1wdHlGb3JtRXJyb3IodCl7dmFyIGU9dC5xdWVyeVNlbGVjdG9yQWxsKCIuanMtcnVsZS1lcnJvci1hbGwiKSxyPXRfZm9ybXNfX2dldE1zZygiZW1wdHlmaWxsIiksbztlLmZvckVhY2goKGZ1bmN0aW9uKHQpe3RfZm9ybXNfX3NldEZvcm1FcnJvck1zZyh0LHIpfSkpLHRfZm9ybXNfX2FkZE1vdmVUb0lucHV0V2l0aEVycm9yQ2xpY2tIYW5kbGVyKHQucXVlcnlTZWxlY3RvcigiLnQtaW5wdXQtZ3JvdXAiKSxlWzBdKX1mdW5jdGlvbiB0X2Zvcm1zX19zaG93SW5wdXRFcnJvcnModCxlLHIpe2lmKGUmJiJub25lIiE9PXIub2JqKXtlLmNsYXNzTGlzdC5hZGQoImpzLWVycm9yLWNvbnRyb2wtYm94Iik7dmFyIG89ZS5xdWVyeVNlbGVjdG9yQWxsKCIudC1pbnB1dC1lcnJvciIpO3IudHlwZS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgcixuPXRfZm9ybXNfX2dldEN1c3RvbU1lc3NhZ2UodCxlKXx8dF9mb3Jtc19fZ2V0RmllbGRFcnJvclRleHQoZSk7biYmby5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmlubmVySFRNTD1ufSkpfSkpfX1mdW5jdGlvbiB0X2Zvcm1zX19zaG93Rm9ybUVycm9ycyh0LGUscil7ZS50eXBlLmZvckVhY2goKGZ1bmN0aW9uKG8pe3ZhciBuPXQucXVlcnlTZWxlY3RvckFsbCgiLmpzLXJ1bGUtZXJyb3ItIitvKSxhLGk9dF9mb3Jtc19fZ2V0Q3VzdG9tTWVzc2FnZSh0LG8pfHx0X2Zvcm1zX19nZXRNc2cobyksczsobi5sZW5ndGg/bjp0LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1ydWxlLWVycm9yLWFsbCIpKS5mb3JFYWNoKChmdW5jdGlvbih0KXt0X2Zvcm1zX19zZXRGb3JtRXJyb3JNc2codCxpLG8pLHIuYWRkKG8sZS5vYmosdCl9KSl9KSl9d2luZG93LnRfZm9ybXNfX2xhbmc9KHdpbmRvdy5uYXZpZ2F0b3IudXNlckxhbmd1YWdlfHx3aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlKS50b1VwcGVyQ2FzZSgpLnNsaWNlKDAsMiksd2luZG93LnNjcmlwdFN5c1BheW1lbnQ9e30sd2luZG93LmhhbmRsZXJTeXNQYXltZW50PXt9LHdpbmRvdy5pc0luaXRFdmVudHNaQj17fSx3aW5kb3cuaXNJbml0RXZlbnRzQ3VzdG9tTWFzaz17fSx3aW5kb3cuaW5pdEZvcm1zPXt9LHdpbmRvdy50aWxkYUZvcm09e3ZlcnNpb25MaWI6IjAyLjAwMSIsZW5kcG9pbnQ6ImZvcm1zLnRpbGRhY2RuLmNvbSIsaXNSZWNhcHRjaGFTY3JpcHRJbml0OiExLGN1cnJlbnRGb3JtUHJvY2Nlc3Npbmc6ITF9LHdpbmRvdy50X2Zvcm1zX19jbGVhckZvcm09dF9mb3Jtc0FwaV9fY2xlYXJGb3JtLHdpbmRvdy50X2Zvcm1zX191cGRhdGVBbGxWYXJpYWJsZXM9dF9mb3Jtc19fdXBkYXRlQWxsVmFyaWFibGVzLHRfb25SZWFkeSgoZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpO2lmKHQpe3ZhciBlPXQuZ2V0QXR0cmlidXRlKCJkYXRhLXRpbGRhLXByb2plY3QtbGFuZyIpO2UmJih3aW5kb3cudF9mb3Jtc19fbGFuZz1lKTt2YXIgcj10LmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1yb290LXpvbmUiKTtyJiYod2luZG93LnRpbGRhRm9ybS5lbmRwb2ludD0iZm9ybXMudGlsZGFhcGkuIityKX10X2Zvcm1zX19pbml0Rm9ybXMoKTt2YXIgbz0hIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50NzA2Iiksbj0hIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5qcy1wYXltZW50LXN5c3RlbWJveCIpLGE9ISFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dFtuYW1lPXRsZF9wcm9kdWN0XSIpO2lmKG98fG58fGEpe3ZhciBpPSJ0aWxkYS1mb3Jtcy1wYXltZW50cy0xLjAiLHM7aWYoIWRvY3VtZW50LmhlYWQucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyYyo9IicraSsnIl0nKSkocz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSkudHlwZT0idGV4dC9qYXZhc2NyaXB0IixzLnNyYz0iaHR0cHM6Ly9zdGF0aWMudGlsZGFjZG4uIit0X2Zvcm1zX19nZXRSb290Wm9uZSgpKyIvanMvIitpKyIubWluLmpzIixzLm9uZXJyb3I9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gbG9hZCB0aWxkYS1mb3Jtcy1wYXltZW50czogIix0aGlzLnNyYyl9LGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQocyl9dmFyIGw9d2luZG93LnRfZm9ybXNfX2xhbmc7aWYoIlJVIiE9PWwmJiJFTiIhPT1sKXt2YXIgaT0idGlsZGEtZm9ybXMtZGljdC0xLjAiLHM7aWYoIWRvY3VtZW50LmhlYWQucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyYyo9IicraSsnIl0nKSkocz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSkudHlwZT0idGV4dC9qYXZhc2NyaXB0IixzLnNyYz0iaHR0cHM6Ly9zdGF0aWMudGlsZGFjZG4uIit0X2Zvcm1zX19nZXRSb290Wm9uZSgpKyIvanMvIitpKyIubWluLmpzIixzLm9uZXJyb3I9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gbG9hZCB0aWxkYS1mb3Jtcy1kaWN0aW9uYXJ5OiAiLHRoaXMuc3JjKX0sZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzKX19KSksd2luZG93LnRpbGRhRm9ybS5jYXB0Y2hhQ2FsbGJhY2s9ZnVuY3Rpb24oKXtpZighd2luZG93LnRpbGRhRm9ybS5jdXJyZW50Rm9ybVByb2NjZXNzaW5nfHwhd2luZG93LnRpbGRhRm9ybS5jdXJyZW50Rm9ybVByb2NjZXNzaW5nLmZvcm0pcmV0dXJuITE7d2luZG93LnRpbGRhRm9ybS5zZW5kKHdpbmRvdy50aWxkYUZvcm0uY3VycmVudEZvcm1Qcm9jY2Vzc2luZy5mb3JtLHdpbmRvdy50aWxkYUZvcm0uY3VycmVudEZvcm1Qcm9jY2Vzc2luZy5idG4sd2luZG93LnRpbGRhRm9ybS5jdXJyZW50Rm9ybVByb2NjZXNzaW5nLmZvcm10eXBlLHdpbmRvdy50aWxkYUZvcm0uY3VycmVudEZvcm1Qcm9jY2Vzc2luZy5mb3Jtc2tleSksd2luZG93LnRpbGRhRm9ybS5jdXJyZW50Rm9ybVByb2NjZXNzaW5nPSExfSx3aW5kb3cudGlsZGFGb3JtX2N1c3RvbU1hc2tzTG9hZD1mdW5jdGlvbigpe2lmKCEwIT09d2luZG93LmlzSW5pdEV2ZW50c0N1c3RvbU1hc2spe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3QudHlwZT0idGV4dC9qYXZhc2NyaXB0Iix0LnNyYz0iaHR0cHM6Ly9zdGF0aWMudGlsZGFjZG4uIit0X2Zvcm1zX19nZXRSb290Wm9uZSgpKyIvanMvdGlsZGEtZm9ybXMtY3VzdG9tbWFzay0xLjAubWluLmpzIixkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHQpLHQub25sb2FkPWZ1bmN0aW9uKCl7d2luZG93LmlzSW5pdEV2ZW50c0N1c3RvbU1hc2s9ITB9fX0sd2luZG93LnRpbGRhRm9ybV9pbml0TWFza3M9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuanMtdGlsZGEtbWFzayIpO2lmKHQubGVuZ3RoJiYhMCE9PXdpbmRvdy5pc0luaXRFdmVudHNDdXN0b21NYXNrKXJldHVybiB3aW5kb3cudGlsZGFGb3JtX2N1c3RvbU1hc2tzTG9hZCgpLHZvaWQgd2luZG93LnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7d2luZG93LnRpbGRhRm9ybV9pbml0TWFza3MoKX0pLDEwMCk7ITA9PT13aW5kb3cuaXNJbml0RXZlbnRzQ3VzdG9tTWFzayYmQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0LChmdW5jdGlvbih0KXt0X2FzeW5jTG9hZCh0KX0pKX0sdF9vblJlYWR5KChmdW5jdGlvbigpe3dpbmRvdy50aWxkYUZvcm1faW5pdE1hc2tzKCl9KSksd2luZG93LnRpbGRhRm9ybS52YWxpZGF0ZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9dF9mb3Jtc19fZ2V0RWxlbWVudCh0KSxyPWUucXVlcnlTZWxlY3RvckFsbCgiLmpzLXRpbGRhLXJ1bGUiKSxvPVtdLG49ITAsYSxpPXRfZm9ybXNfX2dldENvbmRpdGlvbkNoZWNrSGFuZGxlcihlKS5pc0hpZGRlbkJ5Q29uZGl0aW9uLHM9MDtzPHIubGVuZ3RoO3MrKyl7dmFyIGw9cltzXTtpZighaShsKSl7dmFyIGQ9ISFwYXJzZUludChsLmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1yZXEiKXx8MCwxMCksdT1sLmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1ydWxlIil8fCJub25lIixjPSIiLG09IiIsZj1sLmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1ydWxlLW1pbmxlbmd0aCIpfHwwLF89bC5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtcnVsZS1tYXhsZW5ndGgiKXx8MCxwPXt9LHc9bC52YWx1ZSxoPSIiLHk9bC5nZXRBdHRyaWJ1dGUoInR5cGUiKSxnPWwuZ2V0QXR0cmlidXRlKCJuYW1lIiksdj1lLmdldEF0dHJpYnV0ZSgiZGF0YS1mb3JtY2FydCIpO3Aub2JqPWwscC50eXBlPVtdLHcmJncubGVuZ3RoJiYoaD13LnJlcGxhY2UoL1tcc1x1MDAwMOKAlFx1MDAxRlx1MjAwMC1cdTIwMEZcdUZFRkZcdTIwMjgtXHUyMDJGXHUyMDVGLVx1MjA2Rl0vZ2ksIiIpLHc9dy50cmltKCkpLGYmJihmPXBhcnNlSW50KGYsMTApKSxfJiYoXz1wYXJzZUludChfLDEwKSk7dmFyIGI9IXcubGVuZ3RoJiYhaC5sZW5ndGgsQT0iY2hlY2tib3giPT09eXx8InJhZGlvIj09PXksRT1lLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tuYW1lPSInK2crJyJdOmNoZWNrZWQnKS5sZW5ndGg7aWYoKHcubGVuZ3RoJiYhQXx8QSYmRSkmJihuPSExKSxkJiYoYnx8QSYmIUUpKXAudHlwZS5wdXNoKCJyZXEiKTtlbHNle3N3aXRjaCh1KXtjYXNlImVtYWlsIjpjPS9eKD8hXC4pKD8hLipcLlwuKVthLXpBLVrRkdCwLdGP0IHQkC3QrzAtOVx1MkU4MC1cdTJGRDVcdTMxOTAtXHUzMTlmXHUzNDAwLVx1NERCRlx1NEUwMC1cdTlGQ0NcdUY5MDAtXHVGQUFEX1wuXC1cK117MCw2M31bYS16QS1a0ZHQsC3Rj9CB0JAt0K8wLTlcdTJFODAtXHUyRkQ1XHUzMTkwLVx1MzE5Zlx1MzQwMC1cdTREQkZcdTRFMDAtXHU5RkNDXHVGOTAwLVx1RkFBRF9cLVwrXUBbYS16QS1a0ZHQsC3Rj9CB0JAt0K/QgdGRw6TDtsO8w4TDlsOcw5/DqMOpw7swLTldW2EtekEtWtGR0LAt0Y/QgdCQLdCv0IHRkcOkw7bDvMOEw5bDnMOfw6jDqcO7MC05XC5cLV17MCwyNTN9XC5bYS16QS1a0ZHQsC3Rj9CB0JAt0K9dezIsMTF9JC9naSx3Lmxlbmd0aCYmIXcubWF0Y2goYykmJnAudHlwZS5wdXNoKCJlbWFpbCIpO2JyZWFrO2Nhc2UidXJsIjpjPS9eKChodHRwcz98ZnRwKTpcL1wvKT9bYS16QS1a0ZHQsC3Rj9CB0JAt0K/QgdGRw6TDtsO8w4TDlsOcw5/DqMOpw7vFn8OnMC05XVthLXpBLVrRkdCwLdGP0IHQkC3Qr9CB0ZHDpMO2w7zDhMOWw5zDn8Oow6nDu8Wfw6cwLTlfXC5cLV17MCwyNTN9XC5bYS16QS1a0ZHQsC3Rj9CB0JAt0K9dezIsMTB9XC8/JC9naSx3Lmxlbmd0aCYmKChtPShtPShtPXcuc3BsaXQoIi8vIikpJiZtLmxlbmd0aD4xP21bMV06bVswXSkuc3BsaXQoIi8iKSkmJm0ubGVuZ3RoJiZtWzBdPyhtPW1bMF0pLm1hdGNoKGMpfHxwLnR5cGUucHVzaCgidXJsIik6KG0mJiFtWzBdfHxwLnR5cGUucHVzaCgidXJsIiksbT0iIikpO2JyZWFrO2Nhc2UicGhvbmUiOnZhciBGPWwuZ2V0QXR0cmlidXRlKCJkYXRhLXRpbGRhLW1hc2siKSx4PSJeWzAtOSgpKy0iO0YmJigtMSE9PUYuaW5kZXhPZigiKiIpP3grPSJhLXrRkdCwLdGPIjooLTEhPT1GLmluZGV4T2YoImEiKSYmKHgrPSJhLXoiKSwtMSE9PUYuaW5kZXhPZigi0LAiKSYmKHgrPSLQsC3Rj9GRIikpKSx4Kz0iXSskIixjPW5ldyBSZWdFeHAoeCwiZ2kiKSwoaC5sZW5ndGgmJiFoLm1hdGNoKGMpfHwxPT0obT1oLnJlcGxhY2UoL1teMC05XSsvZywiIikpLmluZGV4T2YoIjAwMCIpfHwxPT1tLmluZGV4T2YoIjExMSIpJiYiOSIhPW0uc3Vic3RyaW5nKDAsMSl8fDE9PW0uaW5kZXhPZigiMjIyIikmJiI1IiE9bS5zdWJzdHJpbmcoMCwxKXx8MT09bS5pbmRleE9mKCIzMzMiKXx8MT09bS5pbmRleE9mKCI0NDQiKXx8MT09bS5pbmRleE9mKCI1NTUiKSYmIjAiIT1tLnN1YnN0cmluZygwLDEpfHwxPT1tLmluZGV4T2YoIjY2NiIpJiYiMCIhPW0uc3Vic3RyaW5nKDAsMSl8fDE9PW0uaW5kZXhPZigiODg4OCIpJiYiNCIhPW0uc3Vic3RyaW5nKDAsMSkpJiZwLnR5cGUucHVzaCgicGhvbmUiKTticmVhaztjYXNlIm51bWJlciI6Yz0vXlswLTldKyQvZ2ksaC5sZW5ndGg+MCYmIWgubWF0Y2goYykmJnAudHlwZS5wdXNoKCJudW1iZXIiKTticmVhaztjYXNlImRhdGUiOnRfb25GdW5jTG9hZCgidF9kYXRlcGlja2VyX19yZWFkRGF0ZUZyb21JbnB1dCIsKGZ1bmN0aW9uKCl7dmFyIHQ9dF9kYXRlcGlja2VyX19yZWFkRGF0ZUZyb21JbnB1dChsKTtoLmxlbmd0aD4wJiYhdF9kYXRlcGlja2VyX19pc0RhdGVWYWxpZCh0KSYmcC50eXBlLnB1c2goImRhdGUiKX0pKTticmVhaztjYXNlInRpbWUiOmM9L15bMC05XXsyfVs6XC5dWzAtOV17Mn0kL2dpLC8vISBUT0RPOiAwMDowMCAtIDIzOjU5LiDQl9Cw0LzQtdC90LjRgtGMINC90LAgL14oWzAtMV1bMC05XXwyWzAtM10pWzpcLl1bMC01XVswLTldJC9naQpoLmxlbmd0aD4wJiYhaC5tYXRjaChjKSYmcC50eXBlLnB1c2goInRpbWUiKTticmVhaztjYXNlIm5hbWUiOmM9L14oW9CB0ZHDpMO2w7zDhMOWw5zDn8Oow6nDu9KQ0pHQhNGU0IbRltCH0ZfTkNOR0JnQudCazIbQusyG04PMhtOEzIbUmsyG1JvMhtCTzIbQs8yG0pTMhtKVzIbTltOX0aLMhtGjzIbTgdOC6pqEzIbqmoXMhtKK0ovQnsyG0L7MhtOozIbTqcyG6pqMzIbqmo3MhtCO0Z7QpcyG0YXMhtCPzIbRn8yG6pqOzIbqmo/MhuqahsyG6pqHzIbSvMyG0r3MhtCozIbRiMyG6pqWzIbqmpfMhtCpzIbRicyG0KvMhtGLzIbQrcyG0Y3MhtCuzIbRjsyG0K/MhtGPzIbQkMyB0LDMgdCD0ZPQlMyB0LTMgdCVzIHQtcyB0IHMgdGR05jMgdOZzIHQl8yB0LfMgdCYzIHQuMyB0IbMgdGWzIHQh8yB0ZfMgdCM0ZzQm8yB0LvMgdCdzIHQvcyB0J7MgdC+zIHQoMyB0YDMgdChzIHRgcyB0KLMgdGCzIHQo8yB0YPMgdOwzIHTscyB0q7MgdKvzIHQpcyB0YXMgdCmzIHRhsyB0KvMgdGLzIHQrcyB0Y3MgdOszIHTrcyB0K7MgdGOzIHQrsyIzIHRjsyIzIHQr8yB0Y/MgdGizIHRo8yB0pLSk9O607vSksyM0pPMjNCIzLXRmMy10p7Sn9Kc0p3UntSf06jTqdKO0o/SsNKx077Tv9K40rnSjNKN0qLSo9Ka0pvSktKT05jTmdK60rvQhtGW0rDSsdKu0q/TqNOpyLrisaXqnLrqnLvGgsaDyYPGgMi7yLzqnpLqnpPGi8aMxJDEkcmGyYfHpMel6p6g6p6hxKbEp8aXyajGl8yByajMgcaXzIDJqMyAxpfMgsmozILGl8yMyajMjMaXzIPJqMyDxpfMhMmozITGl8yIyajMiMaXzIvJqMyLxpfMj8mozI/Gl8ynyajMp8aXzKfMgMmozKfMgMaXzKfMgsmozKfMgsaXzKfMjMmozKfMjOG1vMmIyYnJn8mfzJ/KhMqEzIrKhMylS8y1a8y16p2A6p2B6p2C6p2D6p2E6p2F6p6i6p6jxYHFgsWCzJPFgcyjxYLMo+G0jMi9xprisaDisaHqnYjqnYnGm8abzJPqnqTqnqXqnYrqnYvDmMO4x77Hv8OYzIDDuMyAw5jMgsO4w5jMjMO4zIzDmMyEw7jMhMOYzIPDuMyDw5jMqMO4zKjDmOG3jsO44beO4bST4rGj4bW96p2Q6p2R6p2W6p2X6p2Y6p2ZyYzJjeqepuqep+qeqOqeqeG6nOG6ncWmxafIvuKxpuG1uuqdpOqdpeqdpuqdp8mEyonJhMyByonMgcmEzIDKicyAyYTMgsqJzILJhMyMyonMjMmEzITKicyEyYTMg8qJzIPJhMyDzIHKicyDzIHJhMyIyonMiMqJzJ7htb5VzLh1zLjhtb/qnZ7qnZ93zLjJjsmPxrXGtkEtWmEtelx1MDBDMFx1MDBDMC1cdTAwQzNcdTAwQzgtXHUwMENBXHUwMENDXHUwMENEXHUwMEQyLVx1MDBEOVx1MDBEQVx1MDBERFx1MDBFMC1cdTAwRTNcdTAwRThcdTAwRTlcdTAwRUFcdTAwRUNcdTAwRURcdTAwRjItXHUwMEY1XHUwMEY5XHUwMEZBXHUwMEZEXHUwMTAyXHUwMTAzXHUwMTEwXHUwMTExXHUwMTI4XHUwMTI5XHUwMTY4XHUwMTY5XHUwMUEwXHUwMUExXHUwMUFGXHUwMUIwXHUxRUEwXHUxRUExLVx1MUVGOVx1MDAyN1x1MjAxOVx1MDMwMC1cdTAzRkZcdTA0MDAtXHUwNEZGXHUwNTAwLVx1MDVGRlx1MDYwMC1cdTA2RkZcdTMwNDAtXHUzMEZGXHUwMDQxLVx1MDA3QVx1MDBDMC1cdTAyQjhcdUZCMUQtXHVGQjFGXHVGQjJBLVx1RkI0RVx1MEUwMC1cdTBFN0ZcdTEwQTAtXHUxMEZGXHUzMDQwLVx1MzA5Rlx1MzBBMC1cdTMwRkZcdTJFODAtXHUyRkQ1XHUzMTkwLVx1MzE5Zlx1MzQwMC1cdTREQkZcdTRFMDAtXHU5RkNDXHVGOTAwLVx1RkFBRF17MSx9KShb0IHRkcOkw7bDvMOEw5bDnMOfw6jDqcO70pDSkdCE0ZTQhtGW0IfRl9OQ05HQmdC50JrMhtC6zIbTg8yG04TMhtSazIbUm8yG0JPMhtCzzIbSlMyG0pXMhtOW05fRosyG0aPMhtOB04LqmoTMhuqahcyG0orSi9CezIbQvsyG06jMhtOpzIbqmozMhuqajcyG0I7RntClzIbRhcyG0I/MhtGfzIbqmo7Mhuqaj8yG6pqGzIbqmofMhtK8zIbSvcyG0KjMhtGIzIbqmpbMhuqal8yG0KnMhtGJzIbQq8yG0YvMhtCtzIbRjcyG0K7MhtGOzIbQr8yG0Y/MhtCQzIHQsMyB0IPRk9CUzIHQtMyB0JXMgdC1zIHQgcyB0ZHTmMyB05nMgdCXzIHQt8yB0JjMgdC4zIHQhsyB0ZbMgdCHzIHRl8yB0IzRnNCbzIHQu8yB0J3MgdC9zIHQnsyB0L7MgdCgzIHRgMyB0KHMgdGBzIHQosyB0YLMgdCjzIHRg8yB07DMgdOxzIHSrsyB0q/MgdClzIHRhcyB0KbMgdGGzIHQq8yB0YvMgdCtzIHRjcyB06zMgdOtzIHQrsyB0Y7MgdCuzIjMgdGOzIjMgdCvzIHRj8yB0aLMgdGjzIHSktKT07rTu9KSzIzSk8yM0IjMtdGYzLXSntKf0pzSndSe1J/TqNOp0o7Sj9Kw0rHTvtO/0rjSudKM0o3SotKj0prSm9KS0pPTmNOZ0rrSu9CG0ZbSsNKx0q7Sr9Oo06nIuuKxpeqcuuqcu8aCxoPJg8aAyLvIvOqekuqek8aLxozEkMSRyYbJh8ekx6XqnqDqnqHEpsSnxpfJqMaXzIHJqMyBxpfMgMmozIDGl8yCyajMgsaXzIzJqMyMxpfMg8mozIPGl8yEyajMhMaXzIjJqMyIxpfMi8mozIvGl8yPyajMj8aXzKfJqMynxpfMp8yAyajMp8yAxpfMp8yCyajMp8yCxpfMp8yMyajMp8yM4bW8yYjJicmfyZ/Mn8qEyoTMisqEzKVLzLVrzLXqnYDqnYHqnYLqnYPqnYTqnYXqnqLqnqPFgcWCxYLMk8WBzKPFgsyj4bSMyL3GmuKxoOKxoeqdiOqdicabxpvMk+qepOqepeqdiuqdi8OYw7jHvse/w5jMgMO4zIDDmMyCw7jDmMyMw7jMjMOYzITDuMyEw5jMg8O4zIPDmMyow7jMqMOY4beOw7jht47htJPisaPhtb3qnZDqnZHqnZbqnZfqnZjqnZnJjMmN6p6m6p6n6p6o6p6p4bqc4bqdxabFp8i+4rGm4bW66p2k6p2l6p2m6p2nyYTKicmEzIHKicyByYTMgMqJzIDJhMyCyonMgsmEzIzKicyMyYTMhMqJzITJhMyDyonMg8mEzIPMgcqJzIPMgcmEzIjKicyIyonMnuG1vlXMuHXMuOG1v+qdnuqdn3fMuMmOyY/Gtca2QS1aYS16XHUwMEMwXHUwMEMwLVx1MDBDM1x1MDBDOC1cdTAwQ0FcdTAwQ0NcdTAwQ0RcdTAwRDItXHUwMEQ5XHUwMERBXHUwMEREXHUwMEUwLVx1MDBFM1x1MDBFOFx1MDBFOVx1MDBFQVx1MDBFQ1x1MDBFRFx1MDBGMi1cdTAwRjVcdTAwRjlcdTAwRkFcdTAwRkRcdTAxMDJcdTAxMDNcdTAxMTBcdTAxMTFcdTAxMjhcdTAxMjlcdTAxNjhcdTAxNjlcdTAxQTBcdTAxQTFcdTAxQUZcdTAxQjBcdTFFQTBcdTFFQTEtXHUxRUY5XHUwMDQxLVx1MDA3QVx1MDBDMC1cdTAyQjhcdTAzMDAtXHUwM0ZGXHUwNDAwLVx1MDRGRlx1MDUwMC1cdTA1RkZcdTA2MDAtXHUwNkZGXHUzMDQwLVx1MzBGRlx1RkIxRC1cdUZCMUZcdUZCMkEtXHVGQjRFXHUwRTAwLVx1MEU3Rlx1MTBBMC1cdTEwRkZcdTMwNDAtXHUzMDlGXHUzMEEwLVx1MzBGRlx1MkU4MC1cdTJGRDVcdTMxOTAtXHUzMTlmXHUzNDAwLVx1NERCRlx1NEUwMC1cdTlGQ0NcdUY5MDAtXHVGQUFEXC1cJ+KAmMq8XHNcLl17MCx9KSQvZ2ksdy5sZW5ndGgmJiF3Lm1hdGNoKGMpJiZwLnR5cGUucHVzaCgibmFtZSIpO2JyZWFrO2Nhc2UibmFtZWVuZyI6Yz0vXihbQS1aYS16XHNdezEsfSgoXC0pP1tBLVphLXpcLlxzXShcJyk/KXswLH0pKiQvaSx3Lmxlbmd0aCYmIXcubWF0Y2goYykmJnAudHlwZS5wdXNoKCJuYW1lZW5nIik7YnJlYWs7Y2FzZSJuYW1lcnVzIjpjPS9eKFvQkC3Qr9CwLdGP0IHRkVxzXXsxLH0oKFwtKT9b0JAt0K/QsC3Rj9CB0ZFcLlxzXShcJyk/KXswLH0pKiQvaSx3Lmxlbmd0aCYmIXcubWF0Y2goYykmJnAudHlwZS5wdXNoKCJuYW1lcnVzIik7YnJlYWs7Y2FzZSJzdHJpbmciOmM9L15bQS1aYS160JAt0K/QsC3RjzAtOdCB0ZHQgdGRw6TDtsO8w4TDlsOcw5/DqMOpw7vTkNOR0JnQudCazIbQusyG04PMhtOEzIbUmsyG1JvMhtCTzIbQs8yG0pTMhtKVzIbTltOX0aLMhtGjzIbTgdOC6pqEzIbqmoXMhtKK0ovQnsyG0L7MhtOozIbTqcyG6pqMzIbqmo3MhtCO0Z7QpcyG0YXMhtCPzIbRn8yG6pqOzIbqmo/MhuqahsyG6pqHzIbSvMyG0r3MhtCozIbRiMyG6pqWzIbqmpfMhtCpzIbRicyG0KvMhtGLzIbQrcyG0Y3MhtCuzIbRjsyG0K/MhtGPzIbQkMyB0LDMgdCD0ZPQlMyB0LTMgdCVzIHQtcyB0IHMgdGR05jMgdOZzIHQl8yB0LfMgdCYzIHQuMyB0IbMgdGWzIHQh8yB0ZfMgdCM0ZzQm8yB0LvMgdCdzIHQvcyB0J7MgdC+zIHQoMyB0YDMgdChzIHRgcyB0KLMgdGCzIHQo8yB0YPMgdOwzIHTscyB0q7MgdKvzIHQpcyB0YXMgdCmzIHRhsyB0KvMgdGLzIHQrcyB0Y3MgdOszIHTrcyB0K7MgdGOzIHQrsyIzIHRjsyIzIHQr8yB0Y/MgdGizIHRo8yB0pLSk9O607vSksyM0pPMjNCIzLXRmMy10p7Sn9Kc0p3UntSf06jTqdKO0o/SsNKx077Tv9K40rnSjNKN0qLSo9Ka0pvSktKT05jTmdK60rvQhtGW0rDSsdKu0q/TqNOpyLrisaXqnLrqnLvGgsaDyYPGgMi7yLzqnpLqnpPGi8aMxJDEkcmGyYfHpMel6p6g6p6hxKbEp8aXyajGl8yByajMgcaXzIDJqMyAxpfMgsmozILGl8yMyajMjMaXzIPJqMyDxpfMhMmozITGl8yIyajMiMaXzIvJqMyLxpfMj8mozI/Gl8ynyajMp8aXzKfMgMmozKfMgMaXzKfMgsmozKfMgsaXzKfMjMmozKfMjOG1vMmIyYnJn8mfzJ/KhMqEzIrKhMylS8y1a8y16p2A6p2B6p2C6p2D6p2E6p2F6p6i6p6jxYHFgsWCzJPFgcyjxYLMo+G0jMi9xprisaDisaHqnYjqnYnGm8abzJPqnqTqnqXqnYrqnYvDmMO4x77Hv8OYzIDDuMyAw5jMgsO4w5jMjMO4zIzDmMyEw7jMhMOYzIPDuMyDw5jMqMO4zKjDmOG3jsO44beO4bST4rGj4bW96p2Q6p2R6p2W6p2X6p2Y6p2ZyYzJjeqepuqep+qeqOqeqeG6nOG6ncWmxafIvuKxpuG1uuqdpOqdpeqdpuqdp8mEyonJhMyByonMgcmEzIDKicyAyYTMgsqJzILJhMyMyonMjMmEzITKicyEyYTMg8qJzIPJhMyDzIHKicyDzIHJhMyIyonMiMqJzJ7htb5VzLh1zLjhtb/qnZ7qnZ93zLjJjsmPxrXGtlx1MDA0MS1cdTAwN0FcdTAwQzAtXHUwMkI4XHUwMzAwLVx1MDNGRlx1MDQwMC1cdTA0RkZcdTA1MDAtXHUwNUZGXHUwNjAwLVx1MDZGRlx1MzA0MC1cdTMwRkZcdUZCMUQtXHVGQjFGXHVGQjJBLVx1RkI0RVx1MEUwMC1cdTBFN0ZcdTEwQTAtXHUxMEZGXHUzMDQwLVx1MzA5Rlx1MzBBMC1cdTMwRkZcdTJFODAtXHUyRkQ1XHUzMTkwLVx1MzE5Zlx1MzQwMC1cdTREQkZcdTRFMDAtXHU5RkNDXHVGOTAwLVx1RkFBRCxcLjo7XCJcJ1xgXC1cX1wrXD9cIVwlXCRcQFwqXCZcXlxzXSQvaSx3Lmxlbmd0aCYmIXcubWF0Y2goYykmJnAudHlwZS5wdXNoKCJzdHJpbmciKTticmVhaztjYXNlImNob3NldmFsdWUiOnZhciBTOyJ0cnVlIj09PWwuZ2V0QXR0cmlidXRlKCJkYXRhLW9wdGlvbi1zZWxlY3RlZCIpfHxwLnR5cGUucHVzaCgiY2hvc2V2YWx1ZSIpO2JyZWFrO2Nhc2UicHJvbW9jb2RlIjoieSIhPT12fHwhaC5sZW5ndGh8fCF3aW5kb3cudGNhcnR8fHdpbmRvdy50Y2FydC5wcm9tb2NvZGUmJndpbmRvdy50Y2FydC5wcm9kYW1vdW50X2Rpc2NvdW50c3VtfHxwLnR5cGUucHVzaCgicHJvbW9jb2RlIik7YnJlYWs7Y2FzZSJkZWxpdmVyeXJlcSI6cC50eXBlLnB1c2goImRlbGl2ZXJ5cmVxIik7YnJlYWs7Y2FzZSJ1bmF1dGhvcml6ZWRfb3JkZXIiOnAudHlwZS5wdXNoKCJ1bmF1dGhvcml6ZWRfb3JkZXIiKX1mPjAmJncubGVuZ3RoJiZ3Lmxlbmd0aDxmJiZwLnR5cGUucHVzaCgibWlubGVuZ3RoIiksXz4wJiZ3Lmxlbmd0aCYmdy5sZW5ndGg+XyYmcC50eXBlLnB1c2goIm1heGxlbmd0aCIpfXAudHlwZSYmcC50eXBlLmxlbmd0aCYmKG9bby5sZW5ndGhdPXApfX1pZigieSI9PT12KXt2YXIgQz13aW5kb3cudGNhcnRfbWlub3JkZXI+MCxJPXdpbmRvdy50Y2FydF9taW5jbnRvcmRlcj4wLFQscCxwO2lmKEMpaWYoKHdpbmRvdy50Y2FydC5wcm9kYW1vdW50X3dpdGhkaXNjb3VudD4wP3dpbmRvdy50Y2FydC5wcm9kYW1vdW50X3dpdGhkaXNjb3VudDp2b2lkIDAhPT13aW5kb3cudGNhcnQucHJvZGFtb3VudF93aXRoZHluZGlzY291bnQmJndpbmRvdy50X2NhcnRfX2Rpc2NvdW50cyYmd2luZG93LnRfY2FydF9fZGlzY291bnRzLmxlbmd0aD4wP3dpbmRvdy50Y2FydC5wcm9kYW1vdW50X3dpdGhkeW5kaXNjb3VudDp3aW5kb3cudGNhcnQucHJvZGFtb3VudCk8d2luZG93LnRjYXJ0X21pbm9yZGVyKShwPXtvYmo6e30sdHlwZTpbXX0pLnR5cGUucHVzaCgibWlub3JkZXIiKSxvLnB1c2gocCk7aWYoSSYmd2luZG93LnRjYXJ0LnRvdGFsPHdpbmRvdy50Y2FydF9taW5jbnRvcmRlcikocD17b2JqOnt9LHR5cGU6W119KS50eXBlLnB1c2goIm1pbnF1YW50aXR5Iiksby5wdXNoKHApfXJldHVybiBuJiYhby5sZW5ndGgmJnIubGVuZ3RoJiYobz1be29iajoibm9uZSIsdHlwZTpbImVtcHR5ZmlsbCJdfV0pLG99LHdpbmRvdy50aWxkYUZvcm0uaGlkZUVycm9ycz1mdW5jdGlvbih0KXtpZigib2JqZWN0IiE9dHlwZW9mIHR8fHQubGVuZ3RoKXt2YXIgZT10X2Zvcm1zX19nZXRFbGVtZW50KHQpLHI9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuanMtZXJyb3Jib3gtYWxsIiksbz1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1ydWxlLWVycm9yIiksbj1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1lcnJvci1ydWxlLWFsbCIpLGE9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuanMtc3VjY2Vzc2JveCIpLGk9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuanMtZXJyb3ItY29udHJvbC1ib3giKSxzPWUucXVlcnlTZWxlY3RvckFsbCgiLmpzLWVycm9yLWNvbnRyb2wtYm94IC50LWlucHV0LWVycm9yIiksbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGlsZGEtcG9wdXAtZm9yLWVycm9yIik7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChyLChmdW5jdGlvbih0KXt0LnN0eWxlLmRpc3BsYXk9Im5vbmUifSkpLEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwobywoZnVuY3Rpb24odCl7dC5zdHlsZS5kaXNwbGF5PSJub25lIn0pKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG4sKGZ1bmN0aW9uKHQpe3QuaW5uZXJIVE1MPSIifSkpLEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoYSwoZnVuY3Rpb24odCl7dC5zdHlsZS5kaXNwbGF5PSJub25lIn0pKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHMsKGZ1bmN0aW9uKHQpe3QuaW5uZXJIVE1MPSIifSkpLEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoaSwoZnVuY3Rpb24odCl7dF9yZW1vdmVDbGFzcyh0LCJqcy1lcnJvci1jb250cm9sLWJveCIpfSkpLHRfcmVtb3ZlQ2xhc3MoZSwianMtc2VuZC1mb3JtLWVycm9yIiksdF9yZW1vdmVDbGFzcyhlLCJqcy1zZW5kLWZvcm0tc3VjY2VzcyIpLGwmJnRfZmFkZU91dChsKX19LHdpbmRvdy50aWxkYUZvcm0uc2hvd0Vycm9ySW5Qb3B1cD1mdW5jdGlvbih0LGUpe3ZhciByPXRfZm9ybXNfX2dldEVsZW1lbnQodCk7aWYoIWV8fCFlLmxlbmd0aClyZXR1cm4hMTt2YXIgbz1yLmdldEF0dHJpYnV0ZSgiaWQiKSxuPXIuZ2V0QXR0cmlidXRlKCJkYXRhLWlucHV0Ym94Iik7bnx8KG49Ii5ibG9ja2lucHV0Iik7dmFyIGE9IiIsaT0hMSxzPSEwLGw9IiIsZD0iIix1PSIiLGM9IiIsbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGlsZGEtcG9wdXAtZm9yLWVycm9yIik7bXx8KGRvY3VtZW50LmJvZHkuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLCc8ZGl2IGlkPSJ0aWxkYS1wb3B1cC1mb3ItZXJyb3IiIGNsYXNzPSJqcy1mb3JtLXBvcHVwLWVycm9yYm94IHRuLWZvcm1fX2Vycm9yYm94LXBvcHVwIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPiA8ZGl2IGNsYXNzPSJ0LWZvcm1fX2Vycm9yYm94LXRleHQgdC10ZXh0IHQtdGV4dF94cyI+IGVycm9yIDwvZGl2PiA8ZGl2IGNsYXNzPSJ0bi1mb3JtX19lcnJvcmJveC1jbG9zZSBqcy1lcnJvcmJveC1jbG9zZSI+IDxkaXYgY2xhc3M9InRuLWZvcm1fX2Vycm9yYm94LWNsb3NlLWxpbmUgdG4tZm9ybV9fZXJyb3Jib3gtY2xvc2UtbGluZS1sZWZ0Ij48L2Rpdj4gPGRpdiBjbGFzcz0idG4tZm9ybV9fZXJyb3Jib3gtY2xvc2UtbGluZSB0bi1mb3JtX19lcnJvcmJveC1jbG9zZS1saW5lLXJpZ2h0Ij48L2Rpdj4gPC9kaXY+IDwvZGl2PicpLHRfYWRkRXZlbnRMaXN0ZW5lcihtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aWxkYS1wb3B1cC1mb3ItZXJyb3IiKSwiY2xpY2siLChmdW5jdGlvbih0KXt2YXIgZSxyO2lmKCgodD10fHx3aW5kb3cuZXZlbnQpLnRhcmdldHx8dC5zcmNFbGVtZW50KS5jbG9zZXN0KCIuanMtZXJyb3Jib3gtY2xvc2UiKSlyZXR1cm4gdC5wcmV2ZW50RGVmYXVsdD90LnByZXZlbnREZWZhdWx0KCk6dC5yZXR1cm5WYWx1ZT0hMSx0X2ZhZGVPdXQobSksITF9KSkpO2Zvcih2YXIgZj0wO2Y8ZS5sZW5ndGg7ZisrKWlmKGVbZl0mJmVbZl0ub2JqKXtpZigwPT09ZiYmIm5vbmUiPT09ZVtmXS5vYmope2M9JzxwIGNsYXNzPSJ0LWZvcm1fX2Vycm9yYm94LWl0ZW0iPicrdF9mb3Jtc19fZ2V0TXNnKCJlbXB0eWZpbGwiKSsiPC9wPiI7YnJlYWt9dmFyIF89dF9mb3Jtc19fZ2V0RWxlbWVudChlW2ZdLm9iaik7XyYmKGE9Xy5jbG9zZXN0KG4pKSxhJiYoZD1hLnF1ZXJ5U2VsZWN0b3JBbGwoIi50LWlucHV0LWVycm9yIiksdF9hZGRDbGFzcyhhLCJqcy1lcnJvci1jb250cm9sLWJveCIpLGQubGVuZ3RoJiYoaT0hMCkpO2Zvcih2YXIgcD0wO3A8ZVtmXS50eXBlLmxlbmd0aDtwKyspe3ZhciB3PWVbZl0udHlwZVtwXSxoPXRfZm9ybXNfX2dldE1zZyh3KTt1PSIiLChsPXIucXVlcnlTZWxlY3RvcigiLmpzLXJ1bGUtZXJyb3ItIit3KSk/bC50ZXh0Q29udGVudCYmbC5pbm5lclRleHR8fCFofHwtMSE9PWMuaW5kZXhPZihoKT8odT1sLnRleHRDb250ZW50fHxsLmlubmVyVGV4dCwtMT09PWMuaW5kZXhPZih1KSYmKGM9YysnPHAgY2xhc3M9InQtZm9ybV9fZXJyb3Jib3gtaXRlbSI+Jyt1KyI8L3A+IikpOmM9YysnPHAgY2xhc3M9InQtZm9ybV9fZXJyb3Jib3gtaXRlbSI+JytoKyI8L3A+IjpoJiYtMT09PWMuaW5kZXhPZihoKSYmKGM9YysnPHAgY2xhc3M9InQtZm9ybV9fZXJyb3Jib3gtaXRlbSI+JytoKyI8L3A+IiksaSYmKCF1JiZ0X2Zvcm1zX19nZXRNc2codysiZmllbGQiKT91PXRfZm9ybXNfX2dldE1zZyh3KyJmaWVsZCIpOmgmJih1PWgpLHUmJmEmJihkPWEucXVlcnlTZWxlY3RvckFsbCgiLnQtaW5wdXQtZXJyb3IiKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGQsKGZ1bmN0aW9uKHQpe3QuaW5uZXJIVE1MPXUsdF9mYWRlSW4odCl9KSkpKX19aWYoYyl7bS5xdWVyeVNlbGVjdG9yKCIudC1mb3JtX19lcnJvcmJveC10ZXh0IikuaW5uZXJIVE1MPWM7dmFyIHk9bS5xdWVyeVNlbGVjdG9yQWxsKCIudC1mb3JtX19lcnJvcmJveC1pdGVtIik7aWYoQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh5LChmdW5jdGlvbih0KXt0LnN0eWxlLmRpc3BsYXk9ImJsb2NrIn0pKSxkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcudDEwOTMgW2RhdGEtZWxlbS10eXBlPSJmb3JtIl0nKSl7dmFyIGc9d2luZG93LnRQb3B1cE9iaiYmd2luZG93LnRQb3B1cE9iai5vcGVuUG9wVXBMaXN0O2lmKGcmJmcubGVuZ3RoKXt2YXIgdixiPScudDEwOTMgLnQtcG9wdXBbZGF0YS10b29sdGlwLWhvb2s9IicrZ1tnLmxlbmd0aC0xXSsnIl0nLEE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihiKSxFPUE/Z2V0Q29tcHV0ZWRTdHlsZShBKS56SW5kZXg6MCxGO0U+MWU0JiYobS5zdHlsZS56SW5kZXg9RSsxKX1lbHNlIG0uc3R5bGUuekluZGV4PSIifXRfZmFkZUluKG0pfWZ1bmN0aW9uIHgodCl7dmFyIGU7aWYoIklOUFVUIj09PSgodD10fHx3aW5kb3cuZXZlbnQpLnRhcmdldHx8dC5zcmNFbGVtZW50KS50YWdOYW1lKXt2YXIgcj1TLnF1ZXJ5U2VsZWN0b3JBbGwoImZvcm0gLnQtaW5wdXQtZXJyb3IiKTt0X2ZhZGVPdXQobSksQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChyLChmdW5jdGlvbih0KXt0LmlubmVySFRNTD0iIix0X2ZhZGVPdXQodCl9KSksd2luZG93LnRfZm9ybXNfX2Vycm9yVGltZXJJRCYmKHdpbmRvdy5jbGVhclRpbWVvdXQod2luZG93LnRfZm9ybXNfX2Vycm9yVGltZXJJRCksd2luZG93LnRfZm9ybXNfX2Vycm9yVGltZXJJRD0wKSx3aW5kb3cuaXNJbml0RXZlbnRzWkJbb109ITB9fWlmKHdpbmRvdy50X2Zvcm1zX19lcnJvclRpbWVySUQmJndpbmRvdy5jbGVhclRpbWVvdXQod2luZG93LnRfZm9ybXNfX2Vycm9yVGltZXJJRCksd2luZG93LnRfZm9ybXNfX2Vycm9yVGltZXJJRD13aW5kb3cuc2V0VGltZW91dCgoZnVuY3Rpb24oKXt0X2ZhZGVPdXQobSksZD1yLnF1ZXJ5U2VsZWN0b3JBbGwoIi50LWlucHV0LWVycm9yIiksQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChkLChmdW5jdGlvbih0KXt0LmlubmVySFRNTD0iIix0X2ZhZGVPdXQodCl9KSksd2luZG93LnRfZm9ybXNfX2Vycm9yVGltZXJJRD0wfSksMWU0KSwhd2luZG93LmlzSW5pdEV2ZW50c1pCW29dKXt2YXIgUz1yLmNsb3Nlc3QoIi5yIiksQz0iZm9jdXMiO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXJ8fChDPSJmb2N1c2luIiksdF9yZW1vdmVFdmVudExpc3RlbmVyKFMsQyx4KSx0X2FkZEV2ZW50TGlzdGVuZXIoUyxDLHgsITApLHRfcmVtb3ZlRXZlbnRMaXN0ZW5lcihTLCJjaGFuZ2UiLHgpLHRfYWRkRXZlbnRMaXN0ZW5lcihTLCJjaGFuZ2UiLHgsITApfXJldHVybiB0X3RyaWdnZXJFdmVudChyLCJ0aWxkYWZvcm06YWZ0ZXJlcnJvciIpLCEwfSx3aW5kb3cudGlsZGFGb3JtLnNob3dFcnJvcnM9ZnVuY3Rpb24odCxlLHIpe3ZhciBvPXRfZm9ybXNfX2dldEVsZW1lbnQodCk7aWYoIWV8fCFlLmxlbmd0aClyZXR1cm4hMTtpZigieSI9PT1vLmdldEF0dHJpYnV0ZSgiZGF0YS1lcnJvci1wb3B1cCIpKXJldHVybiB3aW5kb3cudGlsZGFGb3JtLnNob3dFcnJvckluUG9wdXAobyxlKTtmb3IodmFyIG4sYT0ocnx8e30pLmlucHV0Qm94U2VsZWN0b3IsaSxzPXZvaWQgMD09PWE/by5nZXRBdHRyaWJ1dGUoImRhdGEtaW5wdXRib3giKXx8Ii5ibG9ja2lucHV0IjphLGw9dF9mb3Jtc19fY3JlYXRlRXJyb3JGb2N1c0hhc2goKSxkPTA7ZDxlLmxlbmd0aDtkKyspe3ZhciB1PTA9PT1kLGM9ZVtkXTtpZihjJiZjLm9iail7dmFyIG09Yy5vYmo7aWYoIm5vbmUiPT09bSYmdSl7dF9mb3Jtc19fc2hvd0VtcHR5Rm9ybUVycm9yKG8pO2JyZWFrfXZhciBmPXRfZm9ybXNfX2dldEVsZW1lbnQobSksXztpZihmJiZmIGluc3RhbmNlb2YgRWxlbWVudCl0X2Zvcm1zX19zaG93SW5wdXRFcnJvcnMobyxmLmNsb3Nlc3QocyksYyk7dF9mb3Jtc19fc2hvd0Zvcm1FcnJvcnMobyxjLGwpfX1yZXR1cm4gdF9mb3Jtc19fc2Nyb2xsVG9JbnB1dFdpdGhFcnJvcihlWzBdKSx0X2Zvcm1zX19zaG93Rm9ybUVycm9yc0NvbnRhaW5lcnMobyksdF90cmlnZ2VyRXZlbnQobywidGlsZGFmb3JtOmFmdGVyZXJyb3IiKSwhMH0sd2luZG93LnRpbGRhRm9ybS5hZGRUaWxkYUNhcHRjaGE9ZnVuY3Rpb24odCxlKXt2YXIgcj10X2Zvcm1zX19nZXRFbGVtZW50KHQpLG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRpbGRhZm9ybWNhcHRjaGFib3giKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJqcy10aWxkYXNwZWMtY2FwdGNoYSIpLGE7byYmdF9yZW1vdmVFbChvKSxuJiZ0X3JlbW92ZUVsKG4pLHIuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLCc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0aWxkYXNwZWMtdGlsZGFjYXB0Y2hhIiBpZD0ianMtdGlsZGFzcGVjLWNhcHRjaGEiPicpO3RyeXthPShuZXcgRGF0ZSkuZ2V0VGltZSgpKyI9IitwYXJzZUludCg4Kk1hdGgucmFuZG9tKCksMTApfWNhdGNoKHMpe2E9InJuZD0iK3BhcnNlSW50KDgqTWF0aC5yYW5kb20oKSwxMCl9dmFyIGk9JzxkaXYgaWQ9InRpbGRhZm9ybWNhcHRjaGFib3giIHRhYmluZGV4PSItMSIgc3R5bGU9InotaW5kZXg6IDk5OTk5OTk5OTk5OyBwb3NpdGlvbjpmaXhlZDsgdGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB0b3A6IDBweDsgbGVmdDowcHg7IGJvdHRvbTogMHB4OyByaWdodDogMHB4OyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuOTcpOyI+PGlmcmFtZSBpZD0iY2FwdGNoYUlmcmFtZUJveCIgc3JjPSIvLycrd2luZG93LnRpbGRhRm9ybS5lbmRwb2ludCsiL3Byb2NjZXMvY2FwdGNoYS8/dGlsZGFzcGVjLWZvcm1pZD0iK3IuZ2V0QXR0cmlidXRlKCJpZCIpKyImdGlsZGFzcGVjLWZvcm1za2V5PSIrZSsiJiIrYSsnIiBmcmFtZWJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSI+PC9pZnJhbWU+PC9kaXY+Jztkb2N1bWVudC5ib2R5Lmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlZW5kIixpKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsY2hlY2tWZXJpZnlUaWxkYUNhcHRjaGEpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixjaGVja1ZlcmlmeVRpbGRhQ2FwdGNoYSksZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRpbGRhZm9ybWNhcHRjaGFib3giKS5mb2N1cygpfSx3aW5kb3cudGlsZGFGb3JtLmFkZE1lbWJlcnNJbmZvVG9Gb3JtPWZ1bmN0aW9uKHQpe3ZhciBlPXRfZm9ybXNfX2dldEVsZW1lbnQodCk7aWYoZSl0cnl7dmFyIHI9ZS5xdWVyeVNlbGVjdG9yKCIuanMtdGlsZGEtbWF1c2VyaW5mbyIpO2lmKHImJnRfcmVtb3ZlRWwociksIXdpbmRvdy5tYXVzZXIpcmV0dXJuO3dpbmRvdy50aWxkYUZvcm0udGlsZGFtZW1iZXI9e30sd2luZG93Lm1hdXNlci5uYW1lJiYod2luZG93LnRpbGRhRm9ybS50aWxkYW1lbWJlci5uYW1lPXdpbmRvdy5tYXVzZXIubmFtZSksd2luZG93Lm1hdXNlci5jb2RlJiZ3aW5kb3cubWF1c2VyLmVtYWlsJiYod2luZG93LnRpbGRhRm9ybS50aWxkYW1lbWJlci5lbWFpbD13aW5kb3cubWF1c2VyLmVtYWlsLHdpbmRvdy50aWxkYUZvcm0udGlsZGFtZW1iZXIuY29kZT13aW5kb3cubWF1c2VyLmNvZGUpLHdpbmRvdy5tYXVzZXIudG9rZW4mJih3aW5kb3cudGlsZGFGb3JtLnRpbGRhbWVtYmVyLnRva2VuPXdpbmRvdy5tYXVzZXIudG9rZW4pfWNhdGNoKG8pe3JldHVybiB2b2lkIGNvbnNvbGUubG9nKCJhZGRNZW1iZXJzSW5mb1RvRm9ybSBleGNlcHRpb246ICIsbyl9fSx3aW5kb3cudGlsZGFGb3JtLmNsb3NlU3VjY2Vzc1BvcHVwPWZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRpbGRhZm9ybXN1Y2Nlc3Nwb3B1cCIpO3QmJih0X3JlbW92ZUNsYXNzKGRvY3VtZW50LmJvZHksInQtYm9keV9zdWNjZXNzLXBvcHVwLXNob3dlZCIpLC9pUGhvbmV8aVBhZHxpUG9kL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmIXdpbmRvdy5NU1N0cmVhbSYmd2luZG93LnRpbGRhRm9ybS51bmxvY2tCb2R5U2Nyb2xsKCksdF9mYWRlT3V0KHQpKX0sd2luZG93LnRpbGRhRm9ybS5sb2NrQm9keVNjcm9sbD1mdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmJvZHk7aWYoIXRfaGFzQ2xhc3ModCwidC1ib2R5X3Njcm9sbC1sb2NrZWQiKSl7dmFyIGU9dm9pZCAwIT09d2luZG93LnBhZ2VZT2Zmc2V0P3dpbmRvdy5wYWdlWU9mZnNldDooZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHxkb2N1bWVudC5ib2R5LnBhcmVudE5vZGV8fGRvY3VtZW50LmJvZHkpLnNjcm9sbFRvcDt0X2FkZENsYXNzKHQsInQtYm9keV9zY3JvbGwtbG9ja2VkIiksdC5zdHlsZS50b3A9Ii0iK2UrInB4Iix0LnNldEF0dHJpYnV0ZSgiZGF0YS1wb3B1cC1zY3JvbGx0b3AiLGUpfX0sd2luZG93LnRpbGRhRm9ybS51bmxvY2tCb2R5U2Nyb2xsPWZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuYm9keTtpZih0X2hhc0NsYXNzKHQsInQtYm9keV9zY3JvbGwtbG9ja2VkIikpe3ZhciBlPXQuZ2V0QXR0cmlidXRlKCJkYXRhLXBvcHVwLXNjcm9sbHRvcCIpO3RfcmVtb3ZlQ2xhc3ModCwidC1ib2R5X3Njcm9sbC1sb2NrZWQiKSx0LnN0eWxlLnRvcD1udWxsLHQucmVtb3ZlQXR0cmlidXRlKCJkYXRhLXBvcHVwLXNjcm9sbHRvcCIpLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A9cGFyc2VJbnQoZSl9fSx3aW5kb3cudGlsZGFGb3JtLnNob3dTdWNjZXNzUG9wdXA9ZnVuY3Rpb24odCl7dmFyIGU9IiIscj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGlsZGFmb3Jtc3VjY2Vzc3BvcHVwIiksbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGlsZGFmb3Jtc3VjY2Vzc3BvcHVwdGV4dCIpLG49ZG9jdW1lbnQuYm9keTtpZighcil7ZSs9JzxzdHlsZSBtZWRpYT0ic2NyZWVuIj4gLnQtZm9ybS1zdWNjZXNzLXBvcHVwIHsgZGlzcGxheTogbm9uZTsgcG9zaXRpb246IGZpeGVkOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLC44KTsgdG9wOiAwcHg7IGxlZnQ6IDBweDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgei1pbmRleDogMTAwMDA7IG92ZXJmbG93LXk6IGF1dG87IGN1cnNvcjogcG9pbnRlcjsgfSAudC1ib2R5X3N1Y2Nlc3MtcG9wdXAtc2hvd2VkIHsgaGVpZ2h0OiAxMDB2aDsgbWluLWhlaWdodDogMTAwdmg7IG92ZXJmbG93OiBoaWRkZW47IH0gLnQtZm9ybS1zdWNjZXNzLXBvcHVwX193aW5kb3cgeyB3aWR0aDogMTAwJTsgbWF4LXdpZHRoOiA0MDBweDsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDUwJTsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgbGVmdDogMHB4OyByaWdodDogMHB4OyBtYXJnaW46IDAgYXV0bzsgcGFkZGluZzogMjBweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfSAudC1mb3JtLXN1Y2Nlc3MtcG9wdXBfX3dyYXBwZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBwYWRkaW5nOiA0MHB4IDQwcHggNTBweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgYm9yZGVyLXJhZGl1czogNXB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBvc2l0aW9uOiByZWxhdGl2ZTsgY3Vyc29yOiBkZWZhdWx0OyB9IC50LWZvcm0tc3VjY2Vzcy1wb3B1cF9fdGV4dCB7IHBhZGRpbmctdG9wOiAyMHB4OyB9IC50LWZvcm0tc3VjY2Vzcy1wb3B1cF9fY2xvc2UtaWNvbiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxNHB4OyByaWdodDogMTRweDsgY3Vyc29yOiBwb2ludGVyOyB9IEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7IC50LWZvcm0tc3VjY2Vzcy1wb3B1cF9fdGV4dCB7IHBhZGRpbmctdG9wOiAxMHB4OyB9IC50LWZvcm0tc3VjY2Vzcy1wb3B1cF9fd3JhcHBlciB7IHBhZGRpbmctbGVmdDogMjBweDsgcGFkZGluZy1yaWdodDogMjBweDsgfSB9IDwvc3R5bGU+JyxlKz0nPGRpdiBjbGFzcz0idC1mb3JtLXN1Y2Nlc3MtcG9wdXAiIHN0eWxlPSJkaXNwbGF5Om5vbmU7IiBpZD0idGlsZGFmb3Jtc3VjY2Vzc3BvcHVwIj4gPGRpdiBjbGFzcz0idC1mb3JtLXN1Y2Nlc3MtcG9wdXBfX3dpbmRvdyI+IDxkaXYgY2xhc3M9InQtZm9ybS1zdWNjZXNzLXBvcHVwX193cmFwcGVyIj4gPHN2ZyBjbGFzcz0idC1mb3JtLXN1Y2Nlc3MtcG9wdXBfX2Nsb3NlLWljb24iIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBjbGFzcz0idDY1N19faWNvbi1jbG9zZSIgdmlld0JveD0iMCAwIDIzIDIzIj4gPGcgZmlsbC1ydWxlPSJldmVub2RkIj4gPHBhdGggZD0iTTAgMS40MUwxLjQgMGwyMS4yMiAyMS4yMS0xLjQxIDEuNDJ6Ii8+IDxwYXRoIGQ9Ik0yMS4yMSAwbDEuNDIgMS40TDEuNCAyMi42MyAwIDIxLjIxeiIvPiA8L2c+IDwvc3ZnPiA8c3ZnIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgZmlsbD0iIzYyQzU4NCI+IDxwYXRoIGQ9Ik0yNS4xIDQ5LjI4QTI0LjY0IDI0LjY0IDAgMCAxIC41IDI0LjY4IDI0LjY0IDI0LjY0IDAgMCAxIDI1LjEuMDdhMjQuNjQgMjQuNjQgMCAwIDEgMjQuNiAyNC42IDI0LjY0IDI0LjY0IDAgMCAxLTI0LjYgMjQuNjF6bTAtNDcuNDVBMjIuODcgMjIuODcgMCAwIDAgMi4yNiAyNC42OCAyMi44NyAyMi44NyAwIDAgMCAyNS4xIDQ3LjUyYTIyLjg3IDIyLjg3IDAgMCAwIDIyLjg0LTIyLjg0QTIyLjg3IDIyLjg3IDAgMCAwIDI1LjEgMS44M3oiLz4gPHBhdGggZD0iTTIyLjg0IDMwLjUzbC00LjQ0LTQuNDVhLjg4Ljg4IDAgMSAxIDEuMjQtMS4yNGwzLjIgMy4yIDguODktOC45YS44OC44OCAwIDEgMSAxLjI1IDEuMjZMMjIuODQgMzAuNTN6Ii8+IDwvc3ZnPiA8ZGl2IGNsYXNzPSJ0LWZvcm0tc3VjY2Vzcy1wb3B1cF9fdGV4dCB0LWRlc2NyIHQtZGVzY3Jfc20iIGlkPSJ0aWxkYWZvcm1zdWNjZXNzcG9wdXB0ZXh0Ij4gVGhhbmsgWW91ISA8L2Rpdj4gPC9kaXY+IDwvZGl2PiA8L2Rpdj4nLG4uaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLGUpLHI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRpbGRhZm9ybXN1Y2Nlc3Nwb3B1cCIpLG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRpbGRhZm9ybXN1Y2Nlc3Nwb3B1cHRleHQiKTt2YXIgYT1yLnF1ZXJ5U2VsZWN0b3IoIi50LWZvcm0tc3VjY2Vzcy1wb3B1cF9fY2xvc2UtaWNvbiIpO3RfYWRkRXZlbnRMaXN0ZW5lcihyLCJjbGljayIsKGZ1bmN0aW9uKHQpe3ZhciBlOygodD10fHx3aW5kb3cuZXZlbnQpLnRhcmdldHx8dC5zcmNFbGVtZW50KT09PXRoaXMmJndpbmRvdy50aWxkYUZvcm0uY2xvc2VTdWNjZXNzUG9wdXAoKX0pKSx0X2FkZEV2ZW50TGlzdGVuZXIoYSwiY2xpY2siLChmdW5jdGlvbigpe3dpbmRvdy50aWxkYUZvcm0uY2xvc2VTdWNjZXNzUG9wdXAoKX0pKSx0X2FkZEV2ZW50TGlzdGVuZXIobiwia2V5ZG93biIsKGZ1bmN0aW9uKHQpe3ZhciBlOzI3PT0oKHQ9dHx8d2luZG93LmV2ZW50KS5rZXlDb2RlfHx0LndoaWNoKSYmd2luZG93LnRpbGRhRm9ybS5jbG9zZVN1Y2Nlc3NQb3B1cCgpfSkpfW8uaW5uZXJIVE1MPXQsdF9mYWRlSW4ociksdF9hZGRDbGFzcyhuLCJ0LWJvZHlfc3VjY2Vzcy1wb3B1cC1zaG93ZWQiKSwvaVBob25lfGlQYWR8aVBvZC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJiF3aW5kb3cuTVNTdHJlYW0mJnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7d2luZG93LnRpbGRhRm9ybS5sb2NrQm9keVNjcm9sbCgpfSksNTAwKX0sd2luZG93LnRpbGRhRm9ybS5zdWNjZXNzRW5kPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbz10X2Zvcm1zX19nZXRFbGVtZW50KHQpO3RfYWRkQ2xhc3MobywianMtc2VuZC1mb3JtLXN1Y2Nlc3MiKSx0X2Zvcm1zX191cGRhdGVBbGxTeXN0ZW1WYXJpYWJsZXMobyksdF9mb3Jtc19fc2hvd1N1Y2Nlc3Nib3gobykuZmluYWxseSgoZnVuY3Rpb24oKXt0X2Zvcm1zX19oYW5kbGVTdWNjZXNzKG8se3N1Y2Nlc3NDYWxsYmFjazpyLHN1Y2Nlc3NVcmw6ZX0pLHdpbmRvdy50aWxkYUZvcm0uY2xlYXJUQ2FydChvKSx0X2Zvcm1zX19jbGVhckZvcm1JbnB1dHMobyksdF9mb3Jtc19fY2xlYXJGb3JtRGF0YShvKX0pKX0sd2luZG93LnRpbGRhRm9ybS5jbGVhclRDYXJ0PWZ1bmN0aW9uKHQpe3ZhciBlO2lmKCJ5Ij09PXRfZm9ybXNfX2dldEVsZW1lbnQodCkuZ2V0QXR0cmlidXRlKCJkYXRhLWZvcm1jYXJ0Iikpe2lmKHdpbmRvdy5jbGVhclRDYXJ0PSEwLHdpbmRvdy50Y2FydD17YW1vdW50OjAsY3VycmVuY3k6IiIsc3lzdGVtOiIiLHByb2R1Y3RzOltdfSx3aW5kb3cudGNhcnQuc3lzdGVtPSJub25lIiwib2JqZWN0Ij09dHlwZW9mIGxvY2FsU3RvcmFnZSl0cnl7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oInRjYXJ0Iil9Y2F0Y2gocil7Y29uc29sZS5lcnJvcigiWW91ciB3ZWIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IGxvY2FsU3RvcmFnZS4gQ29kZSBzdGF0dXM6ICIscil9dHJ5e2RlbGV0ZSB3aW5kb3cudGNhcnQsdGNhcnRfX2xvYWRMb2NhbE9iaigpfWNhdGNoKHIpe313aW5kb3cudGNhcnRfc3VjY2Vzcz0ieWVzIn19LHdpbmRvdy50aWxkYUZvcm0uc2VuZD1mdW5jdGlvbihmb3JtTm9kZSxidG5TdWJtaXROb2RlLGZvcm1UeXBlLGZvcm1LZXkpe3ZhciBmb3JtPXRfZm9ybXNfX2dldEVsZW1lbnQoZm9ybU5vZGUpLGJ0blN1Ym1pdD10X2Zvcm1zX19nZXRFbGVtZW50KGJ0blN1Ym1pdE5vZGUpLGFsbFJlY29yZHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKSxwYWdlSWQ9YWxsUmVjb3Jkcy5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtcGFnZS1pZCIpLHByb2plY3RJZD1hbGxSZWNvcmRzLmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1wcm9qZWN0LWlkIiksZm9ybUlkPWZvcm0uZ2V0QXR0cmlidXRlKCJpZCIpLGRhdGFGb3JtQ2FydD1mb3JtLmdldEF0dHJpYnV0ZSgiZGF0YS1mb3JtY2FydCIpO3dpbmRvdy50aWxkYUZvcm0udGlsZGFwYXltZW50PSExLCgieSI9PT1kYXRhRm9ybUNhcnR8fGZvcm0uY2xvc2VzdCgiLnQ3MDZfX29yZGVyZm9ybSIpKSYmd2luZG93LnRpbGRhRm9ybS5hZGRQYXltZW50SW5mb1RvRm9ybShmb3JtKTt0cnl7d2luZG93Lm1hdXNlciYmd2luZG93LnRpbGRhRm9ybS5hZGRNZW1iZXJzSW5mb1RvRm9ybShmb3JtKX1jYXRjaChlcnJvcil7fXZhciBpbnB1dEl0c0dvb2Q9Zm9ybS5xdWVyeVNlbGVjdG9yKCdpbnB1dFtuYW1lPSJmb3JtLXNwZWMtY29tbWVudHMiXScpO2lmKGlucHV0SXRzR29vZHx8Zm9ybS5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWVuZCIsJzxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogLTUwMDBweDsgYm90dG9tOiAwOyBkaXNwbGF5OiBub25lOyI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImZvcm0tc3BlYy1jb21tZW50cyIgdmFsdWU9Ikl0cyBnb29kIiBjbGFzcz0ianMtZm9ybS1zcGVjLWNvbW1lbnRzIiB0YWJpbmRleD0iLTEiIC8+PC9kaXY+JyksMj09PWZvcm1UeXBlfHwhZm9ybVR5cGUmJmZvcm1LZXkpe3ZhciB0aWxkYVNwZWNzPXsidGlsZGFzcGVjLWNvb2tpZSI6ZG9jdW1lbnQuY29va2llLCJ0aWxkYXNwZWMtcmVmZXJlciI6d2luZG93LmxvY2F0aW9uLmhyZWYsInRpbGRhc3BlYy1mb3JtaWQiOmZvcm1JZCwidGlsZGFzcGVjLWZvcm1za2V5Ijpmb3JtS2V5LCJ0aWxkYXNwZWMtdmVyc2lvbi1saWIiOndpbmRvdy50aWxkYUZvcm0udmVyc2lvbkxpYiwidGlsZGFzcGVjLXBhZ2VpZCI6cGFnZUlkLCJ0aWxkYXNwZWMtcHJvamVjdGlkIjpwcm9qZWN0SWQsInRpbGRhc3BlYy1sYW5nIjp3aW5kb3cudF9mb3Jtc19fbGFuZ307Zm9yKHNwZWMgaW4gdGlsZGFTcGVjcyl7dmFyIGhpZGRlbklucHV0PWZvcm0ucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT0iJytzcGVjKyciXScpO2hpZGRlbklucHV0fHwoZm9ybS5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWVuZCIsJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Iicrc3BlYysnIiB2YWx1ZT0iIj4nKSxoaWRkZW5JbnB1dD1mb3JtLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9Iicrc3BlYysnIl0nKSxoaWRkZW5JbnB1dC52YWx1ZT10aWxkYVNwZWNzW3NwZWNdKX10cnl7aGlkZGVuSW5wdXQ9Zm9ybS5xdWVyeVNlbGVjdG9yKCJpbnB1dFtuYW1lPXRpbGRhc3BlYy1mcF0iKSxoaWRkZW5JbnB1dHx8KGZvcm0uaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLCc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0aWxkYXNwZWMtZnAiIHZhbHVlPSIiPicpLGhpZGRlbklucHV0PWZvcm0ucXVlcnlTZWxlY3RvcigiaW5wdXRbbmFtZT10aWxkYXNwZWMtZnBdIikpLHdpbmRvdy50aWxkYXN0YXQ/aGlkZGVuSW5wdXQudmFsdWU9d2luZG93LnRpbGRhc3RhdCgiZmluZ2VycHJpbnQiKTpoaWRkZW5JbnB1dC52YWx1ZT0ic3QiK3dpbmRvdy5wYWdlWU9mZnNldCsidyIrd2luZG93LmlubmVyV2lkdGgrImgiK3dpbmRvdy5pbm5lckhlaWdodCsiZnQiK2Zvcm0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wK3dpbmRvdy5wYWdlWU9mZnNldH1jYXRjaChlcnJvcil7fWlucHV0SXRzR29vZD1mb3JtLnF1ZXJ5U2VsZWN0b3IoIi5qcy1mb3JtLXNwZWMtY29tbWVudHMiKSxpbnB1dEl0c0dvb2QmJihpbnB1dEl0c0dvb2QudmFsdWU9IiIpO3ZhciBmb3JtVXJsPSJodHRwczovLyIrd2luZG93LnRpbGRhRm9ybS5lbmRwb2ludCsiL3Byb2NjZXMvIixkYXRhRm9ybT1bXSxhcnJGaWx0ZXI9W107aWYoZGF0YUZvcm09dF9zZXJpYWxpemVBcnJheShmb3JtKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGRhdGFGb3JtLChmdW5jdGlvbih0KXstMT09PXQubmFtZS5pbmRleE9mKCJ0aWxkYWRlbGl2ZXJ5LSIpJiZhcnJGaWx0ZXIucHVzaCh0KX0pKSxkYXRhRm9ybT1hcnJGaWx0ZXIsd2luZG93LnRpbGRhRm9ybS50aWxkYXBheW1lbnQmJndpbmRvdy50aWxkYUZvcm0udGlsZGFwYXltZW50LnByb2R1Y3RzKWRhdGFGb3JtLnB1c2goe25hbWU6InRpbGRhcGF5bWVudCIsdmFsdWU6SlNPTi5zdHJpbmdpZnkod2luZG93LnRpbGRhRm9ybS50aWxkYXBheW1lbnQpfSk7ZWxzZSBpZihmb3JtLmNsb3Nlc3QoIi50NzA2X19vcmRlcmZvcm0iKSlyZXR1cm4hMTt3aW5kb3cudGlsZGFGb3JtLnRpbGRhbWVtYmVyJiZPYmplY3Qua2V5cyh3aW5kb3cudGlsZGFGb3JtLnRpbGRhbWVtYmVyKS5sZW5ndGg+MCYmZGF0YUZvcm0ucHVzaCh7bmFtZToidGlsZGFtZW1iZXIiLHZhbHVlOkpTT04uc3RyaW5naWZ5KHdpbmRvdy50aWxkYUZvcm0udGlsZGFtZW1iZXIpfSksZGF0YUZvcm09dF9mb3Jtc19fZm9ybURhdGEoZGF0YUZvcm0pO3ZhciBzdGFydFJlcXVlc3Q9RGF0ZS5ub3coKTt0X3RyaWdnZXJFdmVudChmb3JtLCJ0aWxkYWZvcm06YmVmb3Jlc2VuZCIpO3ZhciB4aHI9bmV3IFhNTEh0dHBSZXF1ZXN0O3JldHVybiB4aHIub3BlbigiUE9TVCIsZm9ybVVybCwhMCkseGhyLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsgY2hhcnNldD1VVEYtOCIpLHhoci5zZXRSZXF1ZXN0SGVhZGVyKCJBY2NlcHQiLCJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L2phdmFzY3JpcHQsICovKjsgcT0wLjAxIikseGhyLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKDQ9PT14aHIucmVhZHlTdGF0ZSlpZih4aHIuc3RhdHVzPj0yMDAmJnhoci5zdGF0dXM8NDAwKXt2YXIgZGF0YT14aHIucmVzcG9uc2VUZXh0O2lmKGRhdGEpe3ZhciBvYmpEYXRhPUpTT04ucGFyc2UoZGF0YSk7aWYoIm9iamVjdCI9PXR5cGVvZiBvYmpEYXRhKXt2YXIgZGF0YVN1Y2Nlc3NVcmw9Zm9ybS5nZXRBdHRyaWJ1dGUoImRhdGEtc3VjY2Vzcy11cmwiKSxkYXRhU3VjY2Vzc0NhbGxiYWNrPWZvcm0uZ2V0QXR0cmlidXRlKCJkYXRhLXN1Y2Nlc3MtY2FsbGJhY2siKSxkYXRhRm9ybVNlbmRlZENhbGxiYWNrPWZvcm0uZ2V0QXR0cmlidXRlKCJkYXRhLWZvcm1zZW5kZWQtY2FsbGJhY2siKTt0X3JlbW92ZUNsYXNzKGJ0blN1Ym1pdCwidC1idG5fc2VuZGluZyIpLGJ0blN1Ym1pdC50aWxkYVNlbmRpbmdTdGF0dXM9IjAiO3RyeXtpZihvYmpEYXRhJiZvYmpEYXRhLnJlZGlyZWN0dG8mJjM9PW9iakRhdGEucmVkaXJlY3R0by5sZW5ndGgmJndpbmRvdy50aWxkYUZvcm0uZW5kcG9pbnQuc3Vic3RyaW5nKHdpbmRvdy50aWxkYUZvcm0uZW5kcG9pbnQubGVuZ3RoLTMpIT1vYmpEYXRhLnJlZGlyZWN0dG8pcmV0dXJuIHdpbmRvdy50aWxkYUZvcm0uZW5kcG9pbnQ9ImZvcm1zLnRpbGRhYXBpLiIrb2JqRGF0YS5yZWRpcmVjdHRvLHdpbmRvdy50aWxkYUZvcm0uc2VuZChmb3JtLGJ0blN1Ym1pdCxmb3JtVHlwZSxmb3JtS2V5KSwhMX1jYXRjaChlKXtjb25zb2xlLmxvZygiZXJyb3IgaW4gZGMgYWN0aW9uLiIpfWlmKG9iakRhdGEmJm9iakRhdGEuZXJyb3Ipe2RhdGFTdWNjZXNzVXJsPSIiLGRhdGFTdWNjZXNzQ2FsbGJhY2s9IiI7dmFyIG1zZ0NvbnRhaW5lcnM9dF9mb3Jtc19fZ2V0RXJyb3JDb250YWluZXJzKGZvcm0sIiIpLGVycm9yQm94ZXM9bXNnQ29udGFpbmVycy5lcnJvckJveGVzLGFsbEVycm9yPW1zZ0NvbnRhaW5lcnMuYWxsRXJyb3I7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChhbGxFcnJvciwoZnVuY3Rpb24odCl7dC5zdHlsZS5kaXNwbGF5PSJibG9jayJ9KSksQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlcnJvckJveGVzLChmdW5jdGlvbih0KXt2YXIgZT10LnF1ZXJ5U2VsZWN0b3IoIi50LWZvcm1fX2Vycm9yYm94LXRleHQiKTtlP2UuaW5uZXJIVE1MPW9iakRhdGEuZXJyb3I6dC5pbm5lckhUTUw9b2JqRGF0YS5lcnJvcix0LnN0eWxlLmRpc3BsYXk9ImJsb2NrIn0pKSx0X2FkZENsYXNzKGZvcm0sImpzLXNlbmQtZm9ybS1lcnJvciIpLHRfdHJpZ2dlckV2ZW50KGZvcm0sInRpbGRhZm9ybTphZnRlcmVycm9yIiksd2luZG93LnRfY2FydF9fZGlzY291bnRzJiZ3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oInRjYXJ0X2Rpc2NvdW50cyIpfWVsc2V7dmFyIF9vYmpEYXRhJG1lbWJlcjtpZihvYmpEYXRhJiZvYmpEYXRhLm5lZWRjYXB0Y2hhKXJldHVybiBmb3JtS2V5P3ZvaWQgd2luZG93LnRpbGRhRm9ybS5hZGRUaWxkYUNhcHRjaGEoZm9ybSxmb3JtS2V5KTp2b2lkIGFsZXJ0KCJTZXJ2ZXIgYnVzeS4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4iKTt2YXIgZm9ybVJlc3VsdD17fTtpZihvYmpEYXRhJiZvYmpEYXRhLnJlc3VsdHMmJm9iakRhdGEucmVzdWx0c1swXSl7dmFyIHN0clZhbHVlPW9iakRhdGEucmVzdWx0c1swXTtzdHJWYWx1ZT1zdHJWYWx1ZS5zcGxpdCgiOiIpLGZvcm1SZXN1bHQudHJhbklkPXN0clZhbHVlWzBdKyI6IitzdHJWYWx1ZVsxXSxmb3JtUmVzdWx0Lm9yZGVySWQ9c3RyVmFsdWVbMl0/c3RyVmFsdWVbMl06IjAiLGZvcm1SZXN1bHQub3JkZXJJZCYmIjAiIT09Zm9ybVJlc3VsdC5vcmRlcklkJiYod2luZG93LnRpbGRhRm9ybS5vcmRlcklkRm9yU3RhdD1mb3JtUmVzdWx0Lm9yZGVySWQpfWVsc2UgZm9ybVJlc3VsdC50cmFuSWQ9IjAiLGZvcm1SZXN1bHQub3JkZXJJZD0iMCI7InVuZGVmaW5lZCIhPXR5cGVvZiBqUXVlcnkmJmpRdWVyeShmb3JtKS5kYXRhKCJ0aWxkYWZvcm1yZXN1bHQiLGZvcm1SZXN1bHQpLGZvcm0udGlsZGFUcmFuSWQ9Zm9ybVJlc3VsdC50cmFuSWQsZm9ybS50aWxkYU9yZGVySWQ9Zm9ybVJlc3VsdC5vcmRlcklkO3ZhciBkYXRhRXZlbnROYW1lPWZvcm0uZ2V0QXR0cmlidXRlKCJkYXRhLXRpbGRhLWV2ZW50LW5hbWUiKXx8IiI7ZGF0YUV2ZW50TmFtZXx8KGRhdGFFdmVudE5hbWU9InkiPT09ZGF0YUZvcm1DYXJ0JiZvYmpEYXRhJiYob2JqRGF0YS5uZXh0JiZvYmpEYXRhLm5leHQudHlwZSYmKCJmdW5jdGlvbiIhPT1vYmpEYXRhLm5leHQudHlwZXx8b2JqRGF0YS5uZXh0LnZhbHVlJiYoInN0cmlwZXYzIj09PW9iakRhdGEubmV4dC52YWx1ZS5zeXNuYW1lfHwib3V0ZXJzaXRlIj09PW9iakRhdGEubmV4dC52YWx1ZS5pbnN0YWxsYXRpb24pKXx8IW9iakRhdGEubmV4dCk/Ii90aWxkYS8iK2Zvcm1JZCsiL3BheW1lbnQvIjoiL3RpbGRhLyIrZm9ybUlkKyIvc3VibWl0dGVkLyIpO3ZhciB0aXRsZT0iU2VuZCBkYXRhIGZyb20gZm9ybSAiK2Zvcm1JZCxwcmljZT0wLHByb2R1Y3Q9IiIscHJpY2VFbD1mb3JtLnF1ZXJ5U2VsZWN0b3IoIi5qcy10aWxkYS1wcmljZSIpO2lmKHdpbmRvdy5UaWxkYSYmImZ1bmN0aW9uIj09dHlwZW9mIHdpbmRvdy5UaWxkYS5zZW5kRXZlbnRUb1N0YXRpc3RpY3Mpe3dpbmRvdy50aWxkYUZvcm0udGlsZGFwYXltZW50JiZ3aW5kb3cudGlsZGFGb3JtLnRpbGRhcGF5bWVudC5hbW91bnQ/KHByaWNlPXdpbmRvdy50aWxkYUZvcm0udGlsZGFwYXltZW50LmFtb3VudCxwYXJzZUZsb2F0KHByaWNlKT4wJiYodGl0bGU9Ik9yZGVyICIrZm9ybVJlc3VsdC5vcmRlcklkKSk6cHJpY2VFbCYmKHByaWNlPXByaWNlRWwudmFsdWUscGFyc2VGbG9hdChwcmljZSk+MCYmKHRpdGxlPSJPcmRlciAiK2Zvcm1SZXN1bHQub3JkZXJJZCkpO3RyeXt3aW5kb3cuVGlsZGEuc2VuZEV2ZW50VG9TdGF0aXN0aWNzKGRhdGFFdmVudE5hbWUsdGl0bGUscHJvZHVjdCxwcmljZSl9Y2F0Y2goZXJyb3Ipe2NvbnNvbGUuZXJyb3IoIkVycm9yIHdoaWxlIHNlbmRpbmcgc3RhdGlzdGljcy4gQ29kZSBzdGF0dXM6ICIsZXJyb3IpfXdpbmRvdy5kYXRhTGF5ZXImJndpbmRvdy5kYXRhTGF5ZXIucHVzaCh7ZXZlbnQ6InN1Ym1pdF8iK2Zvcm1JZH0pfWVsc2V7dHJ5eyJ1bmRlZmluZWQiIT10eXBlb2YgZ2EmJiJ0aWxkYSIhPT13aW5kb3cubWFpblRyYWNrZXImJmdhKCJzZW5kIix7aGl0VHlwZToicGFnZXZpZXciLHBhZ2U6ZGF0YUV2ZW50TmFtZSx0aXRsZTp0aXRsZX0pLHdpbmRvdy5tYWluTWV0cmlrYSYmd2luZG93W3dpbmRvdy5tYWluTWV0cmlrYV0mJndpbmRvd1t3aW5kb3cubWFpbk1ldHJpa2FdLmhpdChkYXRhRXZlbnROYW1lLHt0aXRsZTp0aXRsZSxyZWZlcmVyOndpbmRvdy5sb2NhdGlvbi5ocmVmfSl9Y2F0Y2goZXJyb3Ipe2NvbnNvbGUuZXJyb3IoIkVycm9yIHdoaWxlIHNlbmRpbmcgbWFpbiBtZXRyaWNhLiBDb2RlIHN0YXR1czogIixlcnJvcil9d2luZG93LmRhdGFMYXllciYmd2luZG93LmRhdGFMYXllci5wdXNoKHtldmVudDoic3VibWl0XyIrZm9ybUlkfSl9aWYoInkiPT09ZGF0YUZvcm1DYXJ0JiZudWxsIT0oX29iakRhdGEkbWVtYmVyPW9iakRhdGEubWVtYmVyKSYmX29iakRhdGEkbWVtYmVyLnRva2VuKXt2YXIgX29iakRhdGEkbWVtYmVyMixwcm9maWxlTmFtZT0idGlsZGFfbWVtYmVyc19wcm9maWxlIitwcm9qZWN0SWQsbWVtYmVySW5mbz17dG9rZW46bnVsbD09KF9vYmpEYXRhJG1lbWJlcjI9b2JqRGF0YS5tZW1iZXIpP3ZvaWQgMDpfb2JqRGF0YSRtZW1iZXIyLnRva2VuLHByb2plY3RpZDpwcm9qZWN0SWR9O2xvY2FsU3RvcmFnZS5zZXRJdGVtKHByb2ZpbGVOYW1lLEpTT04uc3RyaW5naWZ5KG1lbWJlckluZm8pKSxsb2NhbFN0b3JhZ2Uuc2V0SXRlbShwcm9maWxlTmFtZSsiX3RpbWVzdGFtcCIsTWF0aC5mbG9vcihEYXRlLm5vdygpLzFlMykudG9TdHJpbmcoKSksdF9vbkZ1bmNMb2FkKCJ0X2JkX19pbml0IiwoZnVuY3Rpb24oKXt0X2JkX19pbml0KCksdGNhcnRfX2luaXRBdXRoQW5kRGVsaXZlcnkoITApfSkpfXRyeXt0X3RyaWdnZXJFdmVudChmb3JtLCJ0aWxkYWZvcm06YWZ0ZXJzdWNjZXNzIiksZGF0YUZvcm1TZW5kZWRDYWxsYmFjayYmImZ1bmN0aW9uIj09dHlwZW9mIGpRdWVyeT9ldmFsKGRhdGFGb3JtU2VuZGVkQ2FsbGJhY2srIihqUXVlcnkoZm9ybSkpOyIpOmRhdGFGb3JtU2VuZGVkQ2FsbGJhY2smJmV2YWwoZGF0YUZvcm1TZW5kZWRDYWxsYmFjaysiKGZvcm0pOyIpfWNhdGNoKGVycm9yKXtjb25zb2xlLmVycm9yKCJFcnJvciB3aGlsZSBjYWxsIHN1Y2Nlc3MgY2FsbGJhY2suIENvZGUgc3RhdHVzOiAiLGVycm9yKX1pZihvYmpEYXRhJiZvYmpEYXRhLm5leHQmJm9iakRhdGEubmV4dC50eXBlKXJldHVybiB3aW5kb3cudGlsZGFGb3JtLnBheW1lbnQoZm9ybSxvYmpEYXRhLm5leHQpLGRhdGFTdWNjZXNzVXJsPSIiLCExO3dpbmRvdy50aWxkYUZvcm0uc3VjY2Vzc0VuZChmb3JtLGRhdGFTdWNjZXNzVXJsLGRhdGFTdWNjZXNzQ2FsbGJhY2spfX19fWVsc2V7dmFyIHRzRGVsdGE9RGF0ZS5ub3coKS1zdGFydFJlcXVlc3Q7dF9yZW1vdmVDbGFzcyhidG5TdWJtaXQsInQtYnRuX3NlbmRpbmciKSxidG5TdWJtaXQudGlsZGFTZW5kaW5nU3RhdHVzPSIwIjt2YXIgbXNnQ29udGFpbmVycz10X2Zvcm1zX19nZXRFcnJvckNvbnRhaW5lcnMoZm9ybSwiIiksZXJyb3JCb3hlcz1tc2dDb250YWluZXJzLmVycm9yQm94ZXMsYWxsRXJyb3I9bXNnQ29udGFpbmVycy5hbGxFcnJvcjtpZigheGhyfHwwPT14aHIuc3RhdHVzJiZ0c0RlbHRhPDEwMClBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGFsbEVycm9yLChmdW5jdGlvbih0KXt0LmlubmVySFRNTD0iUmVxdWVzdCBlcnJvciAoc2VuZGluZyBmb3JtIGRhdGEpLiBQbGVhc2UgY2hlY2sgaW50ZXJuZXQgY29ubmVjdGlvbi4uLiJ9KSk7ZWxzZXtpZih4aHImJih4aHIuc3RhdHVzPj01MDB8fDQwOD09eGhyLnN0YXR1c3x8NDEwPT14aHIuc3RhdHVzfHw0Mjk9PXhoci5zdGF0dXN8fCJ0aW1lb3V0Ij09eGhyLnN0YXR1c1RleHQpJiYtMSE9PXdpbmRvdy50aWxkYUZvcm0uZW5kcG9pbnQuaW5kZXhPZigiZm9ybXMudGlsZGEiKSlyZXR1cm4gd2luZG93LnRpbGRhRm9ybS5lbmRwb2ludD0iZm9ybXMyLnRpbGRhY2RuLmNvbSIsd2luZG93LnRpbGRhRm9ybS5zZW5kKGZvcm0sYnRuU3VibWl0LGZvcm1UeXBlLGZvcm1LZXkpLCExO3hociYmeGhyLnJlc3BvbnNlVGV4dD9BcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGFsbEVycm9yLChmdW5jdGlvbih0KXt0LmlubmVySFRNTD0iWyIreGhyLnN0YXR1cysiXSAiK3hoci5yZXNwb25zZVRleHQrIi4gUGxlYXNlLCB0cnkgYWdhaW4gbGF0ZXIuIn0pKTp4aHImJnhoci5zdGF0dXNUZXh0P0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoYWxsRXJyb3IsKGZ1bmN0aW9uKHQpe3QuaW5uZXJIVE1MPSJFcnJvciBbIit4aHIuc3RhdHVzKyIsICIreGhyLnN0YXR1c1RleHQrIl0uIFBsZWFzZSwgdHJ5IGFnYWluIGxhdGVyLiJ9KSk6QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChhbGxFcnJvciwoZnVuY3Rpb24odCl7dC5pbm5lckhUTUw9IlsiK3hoci5zdGF0dXMrIl0gVW5rbm93biBlcnJvci4gUGxlYXNlLCB0cnkgYWdhaW4gbGF0ZXIuIn0pKX1BcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGFsbEVycm9yLChmdW5jdGlvbih0KXt0LnN0eWxlLmRpc3BsYXk9ImJsb2NrIn0pKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGVycm9yQm94ZXMsKGZ1bmN0aW9uKHQpe3Quc3R5bGUuZGlzcGxheT0iYmxvY2sifSkpLHRfYWRkQ2xhc3MoZm9ybSwianMtc2VuZC1mb3JtLWVycm9yIiksdF90cmlnZ2VyRXZlbnQoZm9ybSwidGlsZGFmb3JtOmFmdGVyZXJyb3IiKX19LHhoci5zZW5kKGRhdGFGb3JtKSwhMX1pZigieSI9PT1mb3JtLmdldEF0dHJpYnV0ZSgiZGF0YS1pcy1mb3JtYWpheCIpKXt2YXIgZGF0YUZvcm09e307ZGF0YUZvcm09dF9zZXJpYWxpemVBcnJheShmb3JtKSx3aW5kb3cudGlsZGFGb3JtLnRpbGRhcGF5bWVudCYmd2luZG93LnRpbGRhRm9ybS50aWxkYXBheW1lbnQuYW1vdW50JiZkYXRhRm9ybS5wdXNoKHtuYW1lOiJ0aWxkYXBheW1lbnQiLHZhbHVlOkpTT04uc3RyaW5naWZ5KHdpbmRvdy50aWxkYUZvcm0udGlsZGFwYXltZW50KX0pLGRhdGFGb3JtPXRfZm9ybXNfX2Zvcm1EYXRhKGRhdGFGb3JtKTt2YXIgeGhyPW5ldyBYTUxIdHRwUmVxdWVzdDtyZXR1cm4geGhyLm9wZW4oIlBPU1QiLGZvcm0uZ2V0QXR0cmlidXRlKCJhY3Rpb24iKSwhMCkseGhyLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsgY2hhcnNldD1VVEYtOCIpLHhoci5zZXRSZXF1ZXN0SGVhZGVyKCJBY2NlcHQiLCJ0ZXh0L3BsYWluLCAqLyo7IHE9MC4wMSIpLHhoci5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtpZig0PT09eGhyLnJlYWR5U3RhdGUpaWYoeGhyLnN0YXR1cz49MjAwJiZ4aHIuc3RhdHVzPDQwMCl7dmFyIHQ9Zm9ybS5xdWVyeVNlbGVjdG9yKCIuanMtc3VjY2Vzc2JveCIpLGU9Zm9ybS5nZXRBdHRyaWJ1dGUoImRhdGEtc3VjY2Vzcy11cmwiKSxyPWZvcm0uZ2V0QXR0cmlidXRlKCJkYXRhLXN1Y2Nlc3MtY2FsbGJhY2siKSxvO2lmKHRfcmVtb3ZlQ2xhc3MoYnRuU3VibWl0LCJ0LWJ0bl9zZW5kaW5nIiksYnRuU3VibWl0LnRpbGRhU2VuZGluZ1N0YXR1cz0iMCIsbz14aHIucmVzcG9uc2VUZXh0KWlmKCJ7Ij09by5zdWJzdHJpbmcoMCwxKSl7dmFyIG49SlNPTi5wYXJzZShvKTtpZigib2JqZWN0Ij09dHlwZW9mIG4paWYobiYmbi5tZXNzYWdlJiYiT0siIT09bi5tZXNzYWdlKXQuaW5uZXJIVE1MPW4ubWVzc2FnZTtlbHNlIGlmKG4mJm4uZXJyb3Ipe3ZhciBhLGk9KGE9dF9mb3Jtc19fZ2V0RXJyb3JDb250YWluZXJzKGZvcm0sIlVua25vd24gZXJyb3IuIFBsZWFzZSwgdHJ5IGFnYWluIGxhdGVyLiIpKS5lcnJvckJveGVzLHM9YS5hbGxFcnJvcjtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChzLChmdW5jdGlvbih0KXt0LnN0eWxlLmRpc3BsYXk9ImJsb2NrIix0LmlubmVySFRNTD1uLmVycm9yfSkpLEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoaSwoZnVuY3Rpb24odCl7dC5zdHlsZS5kaXNwbGF5PSJibG9jayJ9KSksdF9hZGRDbGFzcyhmb3JtLCJqcy1zZW5kLWZvcm0tZXJyb3IiKSx0X3RyaWdnZXJFdmVudChmb3JtLCJ0aWxkYWZvcm06YWZ0ZXJlcnJvciIpLCExfX1lbHNlIHQuaW5uZXJIVE1MPW8sdF9wYXJzZVNjcmlwdHModCwiIik7dmFyIGw9Ii90aWxkYS8iK2Zvcm1JZCsiL3N1Ym1pdHRlZC8iLGQ9IlNlbmQgZGF0YSBmcm9tIGZvcm0gIitmb3JtSWQ7d2luZG93LlRpbGRhJiYiZnVuY3Rpb24iPT10eXBlb2Ygd2luZG93LlRpbGRhLnNlbmRFdmVudFRvU3RhdGlzdGljcz93aW5kb3cuVGlsZGEuc2VuZEV2ZW50VG9TdGF0aXN0aWNzKGwsZCwiIiwwKToidW5kZWZpbmVkIiE9dHlwZW9mIGdhJiYidGlsZGEiIT09d2luZG93Lm1haW5UcmFja2VyP2dhKCJzZW5kIix7aGl0VHlwZToicGFnZXZpZXciLHBhZ2U6bCx0aXRsZTpkfSk6d2luZG93Lm1haW5NZXRyaWthPiIiJiZ3aW5kb3dbd2luZG93Lm1haW5NZXRyaWthXSYmd2luZG93W3dpbmRvdy5tYWluTWV0cmlrYV0uaGl0KGwse3RpdGxlOmQscmVmZXJlcjp3aW5kb3cubG9jYXRpb24uaHJlZn0pLHRfdHJpZ2dlckV2ZW50KGZvcm0sInRpbGRhZm9ybTphZnRlcnN1Y2Nlc3MiKSx3aW5kb3cudGlsZGFGb3JtLnN1Y2Nlc3NFbmQoZm9ybSxlLHIpfWVsc2V7dF9yZW1vdmVDbGFzcyhidG5TdWJtaXQsInQtYnRuX3NlbmRpbmciKSxidG5TdWJtaXQudGlsZGFTZW5kaW5nU3RhdHVzPSIwIjt2YXIgYSxpPShhPXRfZm9ybXNfX2dldEVycm9yQ29udGFpbmVycyhmb3JtLCIiKSkuZXJyb3JCb3hlcyxzPWEuYWxsRXJyb3Isbz14aHIucmVzcG9uc2VUZXh0O0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwocywoZnVuY3Rpb24odCl7bz90LmlubmVySFRNTD1vKyIuIFBsZWFzZSwgdHJ5IGFnYWluIGxhdGVyLiBbIit4aHIuc3RhdHVzKyJdIjp4aHIuc3RhdHVzVGV4dD90LmlubmVySFRNTD0iRXJyb3IgWyIreGhyLnN0YXR1c1RleHQrIl0uIFBsZWFzZSwgdHJ5IGFnYWluIGxhdGVyLiBbIit4aHIuc3RhdHVzKyJdIjp0LmlubmVySFRNTD0iVW5rbm93biBlcnJvci4gUGxlYXNlLCB0cnkgYWdhaW4gbGF0ZXIuIFsiK3hoci5zdGF0dXMrIl0iLHQuc3R5bGUuZGlzcGxheT0iYmxvY2sifSkpLEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoaSwoZnVuY3Rpb24odCl7dC5zdHlsZS5kaXNwbGF5PSJibG9jayJ9KSksdF9hZGRDbGFzcyhmb3JtLCJqcy1zZW5kLWZvcm0tZXJyb3IiKSx0X3RyaWdnZXJFdmVudChmb3JtLCJ0aWxkYWZvcm06YWZ0ZXJlcnJvciIpfX0seGhyLnNlbmQoZGF0YUZvcm0pLCExfXJldHVybi0xPT1mb3JtLmdldEF0dHJpYnV0ZSgiYWN0aW9uIikuaW5kZXhPZih3aW5kb3cudGlsZGFGb3JtLmVuZHBvaW50KSYmKHRfcmVtb3ZlQ2xhc3MoYnRuU3VibWl0LCJ0LWJ0bl9zZW5kaW5nIiksYnRuU3VibWl0LnRpbGRhU2VuZGluZ1N0YXR1cz0iMyIsZm9ybS5zdWJtaXQoKSwhMCl9LHdpbmRvdy52YWxpZGF0ZUZvcm09ZnVuY3Rpb24odCl7cmV0dXJuIHdpbmRvdy50aWxkYUZvcm0udmFsaWRhdGUodCl9LGZ1bmN0aW9uKCl7dHJ5e3ZhciB0PXdpbmRvdy5sb2NhdGlvbi5ocmVmLGU9IiIscj0iIjtpZigtMSE9PXQudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ1dG1fIikmJiJzdHJpbmciPT10eXBlb2YoZT0oZT0odD10LnRvTG93ZXJDYXNlKCkpLnNwbGl0KCI/IikpWzFdKSl7dmFyIG8sbixhPWUuc3BsaXQoIiYiKTtmb3IobiBpbiBhKSJmdW5jdGlvbiIhPXR5cGVvZiBhW25dJiYidXRtXyI9PShvPWFbbl0uc3BsaXQoIj0iKSlbMF0uc3Vic3RyaW5nKDAsNCkmJihyPXIrYVtuXSsifHx8Iik7aWYoci5sZW5ndGg+MCYmKCF3aW5kb3cudGlsZGFzdGF0Y29va2llfHwibm8iIT13aW5kb3cudGlsZGFzdGF0Y29va2llKSl7dmFyIGk9bmV3IERhdGU7aS5zZXREYXRlKGkuZ2V0RGF0ZSgpKzMwKSxkb2N1bWVudC5jb29raWU9IlRJTERBVVRNPSIrZW5jb2RlVVJJQ29tcG9uZW50KHIpKyI7IHBhdGg9LzsgZXhwaXJlcz0iK2kudG9VVENTdHJpbmcoKX19fWNhdGNoKHMpe319KCk7dmFyIHRfZm9ybXNfX3NldEZvcm1FcnJvck1zZz1mdW5jdGlvbiB0KGUscil7ZS5nZXRBdHRyaWJ1dGUoImRhdGEtcnVsZS1maWxsZWQiKT9lLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjpyJiYoZS5pbm5lckhUTUw9JzxhIGhyZWY9IiMiIGNsYXNzPSJ0LWZvcm1fX2Vycm9yYm94LWxpbmsiPicrcisiPC9hPiIsZS5zdHlsZS5kaXNwbGF5PSJibG9jayIpfTtmdW5jdGlvbiB0X2Zvcm1zX19nZXRGaWVsZEVycm9yVGV4dCh0KXt2YXIgZT10X2Zvcm1zX19nZXRNc2codCsiZmllbGQiKSxyO3JldHVybiBlfHx0X2Zvcm1zX19nZXRNc2codCl9ZnVuY3Rpb24gdF9mb3Jtc19fZ2V0Q3VzdG9tTWVzc2FnZSh0LGUpe3ZhciByPXQucXVlcnlTZWxlY3RvcigiLmpzLXJ1bGUtZXJyb3ItIitlKTtpZighcilyZXR1cm4iIjt2YXIgbz1yLmdldEF0dHJpYnV0ZSgiZGF0YS1vcmlnaW5hbC1tc2ciKTtpZihudWxsIT1vKXJldHVybiBvO3ZhciBuPXI/ci50ZXh0Q29udGVudDoiIjtyZXR1cm4gci5zZXRBdHRyaWJ1dGUoImRhdGEtb3JpZ2luYWwtbXNnIixuKSxufWZ1bmN0aW9uIHRfZm9ybXNfX2NyZWF0ZUVycm9yRm9jdXNIYXNoKCl7dmFyIHQ9e307cmV0dXJue2FkZDpmdW5jdGlvbiBlKHIsbyxuKXt2YXIgYT1vIGluc3RhbmNlb2YgRWxlbWVudDshdFtyXSYmbyYmYSYmKHRfZm9ybXNfX2FkZE1vdmVUb0lucHV0V2l0aEVycm9yQ2xpY2tIYW5kbGVyKG8sbiksdFtyXT1vKX19fWZ1bmN0aW9uIHRfZm9ybXNfX3Njcm9sbFRvSW5wdXRXaXRoRXJyb3IodCl7aWYodCl7dmFyIGU9dC5vYmoscj1lIGluc3RhbmNlb2YgRWxlbWVudDsibm9uZSIhPT1lJiZyJiZ0X2Zvcm1zX19mb2N1c0lucHV0KGUpfX1mdW5jdGlvbiB0X2Zvcm1zX19zaG93Rm9ybUVycm9yc0NvbnRhaW5lcnModCl7dmFyIGU7dC5xdWVyeVNlbGVjdG9yQWxsKCIuanMtZXJyb3Jib3gtYWxsIikuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5zdHlsZS5kaXNwbGF5PSJibG9jayJ9KSl9ZnVuY3Rpb24gdF9mb3Jtc19fZ2V0RWxlbWVudCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIEVsZW1lbnQ/dDp0WzBdfWZ1bmN0aW9uIHRfZm9ybXNfX2dldE1zZyh0KXt2YXIgZT1bXSxyPXdpbmRvdy50X2Zvcm1zX19sYW5nO3JldHVybiBlLkVOPXtzdWNjZXNzOiJUaGFuayB5b3UhIFlvdXIgZGF0YSBoYXMgYmVlbiBzdWJtaXR0ZWQuIixzdWNjZXNzb3JkZXI6IlRoYW5rIHlvdSEgT3JkZXIgY3JlYXRlZC4gUGxlYXNlIHdhaXQgd2hpbGUgeW91IGFyZSByZWRpcmVjdGVkIHRvIHRoZSBwYXltZW50IHBhZ2UuLi4iLGVtYWlsOiJQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzIix1cmw6IlBsZWFzZSBwdXQgYSBjb3JyZWN0IFVSTCIscGhvbmU6IlBsZWFzZSBwdXQgYSBjb3JyZWN0IHBob25lIG51bWJlciIsbnVtYmVyOiJQbGVhc2UgcHV0IGEgY29ycmVjdCBudW1iZXIiLGRhdGU6IlBsZWFzZSBwdXQgYSBjb3JyZWN0IGRhdGUiLHRpbWU6IlBsZWFzZSBwdXQgYSBjb3JyZWN0IHRpbWUgKEhIOm1tKSIsbmFtZToiUGxlYXNlIHB1dCBhIG5hbWUiLG5hbWVydXM6IlBsZWFzZSBwdXQgYSBjb3JyZWN0IG5hbWUgKG9ubHkgY3lyaWxsaWMgbGV0dGVycykiLG5hbWVlbmc6IlBsZWFzZSBwdXQgYSBjb3JyZWN0IG5hbWUgKG9ubHkgbGF0aW4gbGV0dGVycykiLHN0cmluZzoiWW91IHB1dCBpbmNvcnJlY3Qgc3ltYm9scy4gT25seSBsZXR0ZXJzLCBudW1iZXJzIGFuZCBwdW5jdHVhdGlvbiBzeW1ib2xzIGFyZSBhbGxvd2VkIixyZXE6IlBsZWFzZSBmaWxsIG91dCBhbGwgcmVxdWlyZWQgZmllbGRzIixyZXFmaWVsZDoiUmVxdWlyZWQgZmllbGQiLG1pbmxlbmd0aDoiVmFsdWUgaXMgdG9vIHNob3J0IixtYXhsZW5ndGg6IlZhbHVlIHRvbyBiaWciLGVtcHR5ZmlsbDoiTm9uZSBvZiB0aGUgZmllbGRzIGFyZSBmaWxsZWQgaW4iLGNob3NldmFsdWU6IlBsZWFzZSBzZWxlY3QgYW4gYWRkcmVzcyBmcm9tIHRoZSBvcHRpb25zIixkZWxpdmVyeXJlcToiSXQgaXMgbm90IHBvc3NpYmxlIHRvIHBsYWNlIGFuIG9yZGVyIHdpdGhvdXQgZGVsaXZlcnkuIFBsZWFzZSByZWZyZXNoIHRoZSBwYWdlIGFuZCB0cnkgYWdhaW4iLHVuYXV0aG9yaXplZF9vcmRlcjoiUGxlYXNlIGxvZyBpbiB0byBwcm9jZWVkIHdpdGggeW91ciBvcmRlciIscHJvbW9jb2RlOiJQbGVhc2UgYWN0aXZhdGUgcHJvbW8gY29kZSBvciBjbGVhciBpbnB1dCBmaWVsZCJ9LGUuUlU9e3N1Y2Nlc3M6ItCh0L/QsNGB0LjQsdC+ISDQlNCw0L3QvdGL0LUg0YPRgdC/0LXRiNC90L4g0L7RgtC/0YDQsNCy0LvQtdC90YsuIixzdWNjZXNzb3JkZXI6ItCh0L/QsNGB0LjQsdC+ISDQl9Cw0LrQsNC3INC+0YTQvtGA0LzQu9C10L0uINCf0L7QttCw0LvRg9C50YHRgtCwLCDQv9C+0LTQvtC20LTQuNGC0LUuINCY0LTQtdGCINC/0LXRgNC10YXQvtC0INC6INC+0L/Qu9Cw0YLQtS4uLiIsZW1haWw6ItCj0LrQsNC20LjRgtC1LCDQv9C+0LbQsNC70YPQudGB0YLQsCwg0LrQvtGA0YDQtdC60YLQvdGL0LkgZW1haWwiLHVybDoi0KPQutCw0LbQuNGC0LUsINC/0L7QttCw0LvRg9C50YHRgtCwLCDQutC+0YDRgNC10LrRgtC90YvQuSBVUkwiLHBob25lOiLQo9C60LDQttC40YLQtSwg0L/QvtC20LDQu9GD0LnRgdGC0LAsINC60L7RgNGA0LXQutGC0L3Ri9C5INC90L7QvNC10YAg0YLQtdC70LXRhNC+0L3QsCIsbnVtYmVyOiLQo9C60LDQttC40YLQtSwg0L/QvtC20LDQu9GD0LnRgdGC0LAsINC60L7RgNGA0LXQutGC0L3Ri9C5INC90L7QvNC10YAiLGRhdGU6ItCj0LrQsNC20LjRgtC1LCDQv9C+0LbQsNC70YPQudGB0YLQsCwg0LrQvtGA0YDQtdC60YLQvdGD0Y4g0LTQsNGC0YMiLHRpbWU6ItCj0LrQsNC20LjRgtC1LCDQv9C+0LbQsNC70YPQudGB0YLQsCwg0LrQvtGA0YDQtdC60YLQvdC+0LUg0LLRgNC10LzRjyAo0KfQpzrQnNCcKSIsbmFtZToi0KPQutCw0LbQuNGC0LUsINC/0L7QttCw0LvRg9C50YHRgtCwLCDQuNC80Y8iLG5hbWVydXM6ItCj0LrQsNC20LjRgtC1LCDQv9C+0LbQsNC70YPQudGB0YLQsCwg0LjQvNGPICjRgtC+0LvRjNC60L4g0LrQuNGA0LjQu9C70LjRhtCwKSIsbmFtZWVuZzoi0KPQutCw0LbQuNGC0LUsINC/0L7QttCw0LvRg9C50YHRgtCwLCDQuNC80Y8gKNGC0L7Qu9GM0LrQviDQu9Cw0YLQuNC90LjRhtCwKSIsc3RyaW5nOiLQktGLINC90LDQv9C40YHQsNC70Lgg0L3QtdC60L7RgNGA0LXQutGC0L3Ri9C1INGB0LjQvNCy0L7Qu9GLLiDQoNCw0LfRgNC10YjQtdC90Ysg0YLQvtC70YzQutC+INCx0YPQutCy0YssINGH0LjRgdC70LAg0Lgg0LfQvdCw0LrQuCDQv9GD0L3QutGC0YPQsNGG0LjQuCIscmVxOiLQn9C+0LbQsNC70YPQudGB0YLQsCwg0LfQsNC/0L7Qu9C90LjRgtC1INCy0YHQtSDQvtCx0Y/Qt9Cw0YLQtdC70YzQvdGL0LUg0L/QvtC70Y8iLHJlcWZpZWxkOiLQntCx0Y/Qt9Cw0YLQtdC70YzQvdC+0LUg0L/QvtC70LUiLG1pbmxlbmd0aDoi0KHQu9C40YjQutC+0Lwg0LrQvtGA0L7RgtC60L7QtSDQt9C90LDRh9C10L3QuNC1IixtYXhsZW5ndGg6ItCh0LvQuNGI0LrQvtC8INC00LvQuNC90L3QvtC1IixlbXB0eWZpbGw6ItCd0Lgg0L7QtNC90L4g0L/QvtC70LUg0L3QtSDQt9Cw0L/QvtC70L3QtdC90L4iLGNob3NldmFsdWU6ItCf0L7QttCw0LvRg9C50YHRgtCwLCDQstGL0LHQtdGA0LjRgtC1INCw0LTRgNC10YEg0LjQtyDQv9GA0LXQtNC70L7QttC10L3QvdGL0YUg0LLQsNGA0LjQsNC90YLQvtCyIixkZWxpdmVyeXJlcToi0J3QtdCy0L7Qt9C80L7QttC90L4g0L7RhNC+0YDQvNC40YLRjCDQt9Cw0LrQsNC3INCx0LXQtyDQtNC+0YHRgtCw0LLQutC4LiDQn9C+0LbQsNC70YPQudGB0YLQsCwg0L/QtdGA0LXQt9Cw0LPRgNGD0LfQuNGC0LUg0YHRgtGA0LDQvdC40YbRgyDQuCDQv9C+0L/RgNC+0LHRg9C50YLQtSDQtdGJ0LUg0YDQsNC3LiIsdW5hdXRob3JpemVkX29yZGVyOiLQn9C+0LbQsNC70YPQudGB0YLQsCwg0LDQstGC0L7RgNC40LfRg9C50YLQtdGB0Ywg0LTQu9GPINC+0YTQvtGA0LzQu9C10L3QuNGPINC30LDQutCw0LfQsCIscHJvbW9jb2RlOiLQkNC60YLQuNCy0LjRgNGD0LnRgtC1LCDQv9C+0LbQsNC70YPQudGB0YLQsCwg0L/RgNC+0LzQvtC60L7QtCDQuNC70Lgg0L7Rh9C40YHRgtC40YLQtSDQv9C+0LvQtSJ9LCJmdW5jdGlvbiI9PXR5cGVvZiB0X2Zvcm1zX19nZXREaWN0JiYiUlUiIT09ciYmIkVOIiE9PXImJihlPXRfZm9ybXNfX2dldERpY3QoKSksZVtyXT9lW3JdW3RdOmUuRU5bdF19ZnVuY3Rpb24gY2hlY2tWZXJpZnlUaWxkYUNhcHRjaGEodCl7aWYoLTEhPT0odD10fHx3aW5kb3cuZXZlbnQpLm9yaWdpbi5pbmRleE9mKHdpbmRvdy50aWxkYUZvcm0uZW5kcG9pbnQpKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgianMtdGlsZGFzcGVjLWNhcHRjaGEiKSxyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aWxkYWZvcm1jYXB0Y2hhYm94Iik7aWYoImNsb3NlaWZyYW1lIj09dC5kYXRhKXJldHVybiByJiZ0X3JlbW92ZUVsKHIpLHZvaWQoZSYmdF9yZW1vdmVFbChlKSk7dmFyIG89dC5kYXRhO2lmKCJvYmplY3QiPT10eXBlb2YgbyYmKG89SlNPTi5zdHJpbmdpZnkobyksQXJyYXkuaXNBcnJheSh3aW5kb3cudF9qc2Vycm9ycyl8fCh3aW5kb3cudF9qc2Vycm9ycz1bXSksd2luZG93LnRfanNlcnJvcnMucHVzaCh7bWVzc2FnZToiUmVjYXB0Y2hhIHJldHVybmVkIG9iamVjdCwgaW5zdGVhZCBvZiBzdHJpbmc6ICIrbyxmaWxlbmFtZToidGlsZGEtZm9ybS0xLjAiLGxpbmVubzowLGNvbG5vOjB9KSksZSl7ZS52YWx1ZT1vLHImJnRfcmVtb3ZlRWwocik7dmFyIG49ZS5jbG9zZXN0KCJmb3JtIik7biYmdF9mb3Jtc19fc3VibWl0RXZlbnQobil9fX1mdW5jdGlvbiB0X3BhcnNlU2NyaXB0cyh0LGUpe3ZhciByPXQucXVlcnlTZWxlY3RvckFsbChlKyJzY3JpcHQiKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHIsKGZ1bmN0aW9uKGUpe2Zvcih2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxvPTA7bzxlLmF0dHJpYnV0ZXMubGVuZ3RoO28rKyl7dmFyIG49ZS5hdHRyaWJ1dGVzW29dO3Iuc2V0QXR0cmlidXRlKG4ubmFtZSxuLnZhbHVlKX1pZihlLmlubmVySFRNTC5sZW5ndGgpci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShlLmlubmVySFRNTCkpLGUucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQocixlKTtlbHNle3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2Euc3JjPWUuYXR0cmlidXRlcy5zcmMudmFsdWUsdC5hcHBlbmRDaGlsZChhKSx0X3JlbW92ZUVsKGUpfX0pKX1mdW5jdGlvbiB0X2Zvcm1zX19vblN1Y2Nlc3ModCl7dmFyIGU9dF9mb3Jtc19fZ2V0RWxlbWVudCh0KSxyPWUuY2xvc2VzdCgiLnIiKSxvPXIuZ2V0QXR0cmlidXRlKCJkYXRhLXJlY29yZC10eXBlIiksbj1lLnF1ZXJ5U2VsZWN0b3IoIi50LWZvcm1fX2lucHV0c2JveCIpLGE9Z2V0Q29tcHV0ZWRTdHlsZShuLG51bGwpLGk9cGFyc2VJbnQoYS5wYWRkaW5nVG9wKXx8MCxzPXBhcnNlSW50KGEucGFkZGluZ0JvdHRvbSl8fDAsbCxkLHU9bi5jbGllbnRIZWlnaHQtKGkrcykrKG4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wK3dpbmRvdy5wYWdlWU9mZnNldCksYz1lLnF1ZXJ5U2VsZWN0b3IoIi50LWZvcm1fX3N1Y2Nlc3Nib3giKSxtPWM/Yy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3Ard2luZG93LnBhZ2VZT2Zmc2V0OjAsZj0wLF89d2luZG93LmlubmVySGVpZ2h0LHA9ZG9jdW1lbnQuYm9keSx3PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxoPU1hdGgubWF4KHAuc2Nyb2xsSGVpZ2h0LHAub2Zmc2V0SGVpZ2h0LHcuY2xpZW50SGVpZ2h0LHcuc2Nyb2xsSGVpZ2h0LHcub2Zmc2V0SGVpZ2h0KTtpZigxMjE9PW8pe3ZhciB5PWUuZ2V0QXR0cmlidXRlKCJkYXRhLXN1Y2Nlc3MtY2FsbGJhY2siKTt5JiYobz15LnNwbGl0KCJfb25TdWNjZXNzIilbMF0ucmVwbGFjZSgidCIsIiIpKX12YXIgZz0idCIrbysiX19pbnB1dHNib3hfaGlkZGVuIix2PVs3MDIsNzA4LDg2Miw5NDUsMTAxNCwxMTE0XSxiPSEwO2Y9d2luZG93LmlubmVyV2lkdGg+OTYwP20tMjAwOm0tMTAwO3ZhciBBPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LXRpbGRhbGFiZWwiKTtpZihtPndpbmRvdy5zY3JvbGxZfHxoLXU8Xy0xMDApbi5jbGFzc0xpc3QuYWRkKGcpLF8+aCYmQSYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXt0X2ZhZGVPdXQoQSl9KSwzMDApO2Vsc2V7Zm9yKHZhciBFPTA7RTx2Lmxlbmd0aDtFKyspaWYodltFXT09byl7Yj0hMTticmVha31iJiZ0X2Zvcm1zX19zY3JvbGxCZWdpbkZvcm0oZiksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtuLmNsYXNzTGlzdC5hZGQoZyl9KSw0MDApfXZhciBGPWUuZ2V0QXR0cmlidXRlKCJkYXRhLXN1Y2Nlc3MtdXJsIik7aWYoRiYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXt3aW5kb3cubG9jYXRpb24uaHJlZj1GfSksNTAwKSw4MzU9PW98fDg2Mj09byl7dmFyIHg9ci5xdWVyeVNlbGVjdG9yKCIudCIrbysiX19idG5fcHJldiIpLFM9ci5xdWVyeVNlbGVjdG9yKCIudCIrbysiX193cmFwcGVyIiksQz1yLnF1ZXJ5U2VsZWN0b3IoIi50IitvKyJfX3F1aXotZm9ybS13cmFwcGVyIik7eCYmKHguc3R5bGUuZGlzcGxheT0ibm9uZSIpLFMmJihTLnN0eWxlLm1pbkhlaWdodD0iIiksQyYmKEMuc3R5bGUubWluSGVpZ2h0PSIiKX19ZnVuY3Rpb24gdF9mb3Jtc19fc2Nyb2xsQmVnaW5Gb3JtKHQpe3ZhciBlPTQwMCxyPSh3aW5kb3cucGFnZVlPZmZzZXR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3ApLShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50VG9wfHwwKSxvPXQtcixuPTAsYT0xNjtmdW5jdGlvbiBpKHQpe3JldHVybih0Lz0yMDApPDE/by8yKnQqdCp0K3I6by8yKigodC09MikqdCp0KzIpK3J9ZnVuY3Rpb24gcygpe24rPWEsd2luZG93LnNjcm9sbFRvKDAsaShuKSksbjxlP3NldFRpbWVvdXQocyxhKTpkb2N1bWVudC5ib2R5LnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1zY3JvbGxhYmxlIil9ZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoImRhdGEtc2Nyb2xsYWJsZSIsInRydWUiKSxzKCl9ZnVuY3Rpb24gdF9mb3Jtc19fZ2V0Q29uZGl0aW9uQ2hlY2tIYW5kbGVyKHQpe3ZhciBlPUFycmF5LmZyb20odC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1oaWRkZW4tYnktY29uZGl0aW9uPSJ0cnVlIl0nKSkscjtyZXR1cm57aXNIaWRkZW5CeUNvbmRpdGlvbjpmdW5jdGlvbiB0KHIpe3JldHVybiBlLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiB0PT09cnx8dC5jb250YWlucyhyKX0pKX19fWZ1bmN0aW9uIHRfZm9ybXNfX2luaXRGb3JtRmllbGRzKHQpe3ZhciBlO3QucXVlcnlTZWxlY3RvcigiLnQtZm9ybSIpJiZ0X2Zvcm1zX19wYXJzZVZhcmlhYmxlcyh0KX1mdW5jdGlvbiB0X2Zvcm1zX19nZXRWYXJpYWJsZVJlZ2V4cCgpe3JldHVybi97eyhmb3JtfHRpbGRhKS4oW0EtetCQLdGPMC05Xy1dKykoPzo9KFtee31dKykpP319L2d9ZnVuY3Rpb24gdF9mb3Jtc19fZWxlbWVudEhhc1ZhcmlhYmxlcyh0KXt2YXIgZTtyZXR1cm4gdF9mb3Jtc19fZ2V0VmFyaWFibGVSZWdleHAoKS50ZXN0KHQudGV4dENvbnRlbnQpfWZ1bmN0aW9uIHRfZm9ybXNfX3JlcGxhY2VWYXJpYWJsZXNXaXRoUGxhY2Vob2xkZXJzKHQpe3ZhciBlPXRfZm9ybXNfX2ZpbmRNYXRjaGluZ1RleHROb2Rlcyh0LHRfZm9ybXNfX2VsZW1lbnRIYXNWYXJpYWJsZXMpO3JldHVybiBlLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuaW5uZXJIVE1MPXQuaW5uZXJIVE1MLnJlcGxhY2UodF9mb3Jtc19fZ2V0VmFyaWFibGVSZWdleHAoKSwoZnVuY3Rpb24odCxlLHIsbyl7cmV0dXJuIHRfZm9ybXNfX2J1aWxkVmFyaWFibGVQbGFjZWhvbGRlckhUTUwodCxlLHIsbyl9KSl9KSksZX1mdW5jdGlvbiB0X2Zvcm1zX19idWlsZFZhcmlhYmxlUGxhY2Vob2xkZXJIVE1MKHQsZSxyLG8pe3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtyZXR1cm4gbi5jbGFzc0xpc3QuYWRkKCJ0LXZhcmlhYmxlLXBsYWNlaG9sZGVyIiksbi5zZXRBdHRyaWJ1dGUoImRhdGEtdmFyaWFibGUiLHIpLG4uc2V0QXR0cmlidXRlKCJkYXRhLXZhcmlhYmxlLWRvbWFpbiIsZSksbi5zZXRBdHRyaWJ1dGUoImRhdGEtb3JpZ2luYWwiLHQpLG8mJm4uc2V0QXR0cmlidXRlKCJkYXRhLWRlZmF1bHQtdmFsdWUiLG8pLG4udGV4dENvbnRlbnQ9b3x8cixuLm91dGVySFRNTH1mdW5jdGlvbiB0X2Zvcm1zX19maW5kTWF0Y2hpbmdUZXh0Tm9kZXModCxlKXtmb3IodmFyIHI9W10sbz1kb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHQsTm9kZUZpbHRlci5TSE9XX1RFWFQse2FjY2VwdE5vZGU6ZnVuY3Rpb24gdChyKXtyZXR1cm4gZShyKT9Ob2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQ6Tm9kZUZpbHRlci5GSUxURVJfUkVKRUNUfX0pO28ubmV4dE5vZGUoKTspe3ZhciBuPW8uY3VycmVudE5vZGU7WyJTQ1JJUFQiLCJTVFlMRSJdLmluY2x1ZGVzKG4ucGFyZW50RWxlbWVudC50YWdOYW1lKXx8ci5wdXNoKG4ucGFyZW50RWxlbWVudCl9cmV0dXJuIEFycmF5LmZyb20obmV3IFNldChyKSl9ZnVuY3Rpb24gdF9mb3Jtc19fYmluZEZvcm1WYXJpYWJsZXNUb1BsYWNlaG9sZGVycyh0LGUpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocil7dmFyIG8sbj10X2Zvcm1zX19nZXRVc2VkVmFyaWFibGVzKGUse3VuaXF1ZTohMH0pLm1hcCgoZnVuY3Rpb24ocil7aWYodF9mb3Jtc19faXNTeXN0ZW1WYXJpYWJsZShyKSlyZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gdF9mb3Jtc19fdXBkYXRlU3lzdGVtVmFyaWFibGUodCxlLHIpfSkpLFByb21pc2UucmVzb2x2ZSgpO3ZhciBvPXRfZm9ybXNfX2ZpbmRGb3JtRmllbGQodCxyLm5hbWUpO3JldHVybiBvP3RfZm9ybXNBcGlfX2luaXRUaWxkYUZpZWxkKG8pLnRoZW4oKGZ1bmN0aW9uKG8pe3ZhciBuPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIHRfZm9ybXNfX3VwZGF0ZUlucHV0VmFyaWFibGUoZSxyLG8pfTtvLm9uQ2hhbmdlKChmdW5jdGlvbigpe3JldHVybiBuKHQpfSkse3VuaXF1ZUtleTpyLm5hbWV9KSxlLmZvckVhY2gobil9KSk6UHJvbWlzZS5yZXNvbHZlKCl9KSk7UHJvbWlzZS5hbGwobikudGhlbihyKX0pKX1mdW5jdGlvbiB0X2Zvcm1zX19nZXRTeXN0ZW1WYXJpYWJsZXMoKXtyZXR1cm57TEVBRF9JRDoibGVhZF9pZCJ9fWZ1bmN0aW9uIHRfZm9ybXNfX2lzU3lzdGVtVmFyaWFibGUodCl7cmV0dXJuInRpbGRhIj09PXQuZG9tYWluJiZPYmplY3QudmFsdWVzKHRfZm9ybXNfX2dldFN5c3RlbVZhcmlhYmxlcygpKS5pbmNsdWRlcyh0Lm5hbWUpfWZ1bmN0aW9uIHRfZm9ybXNfX3VwZGF0ZVZhcmlhYmxlcyh0LGUscil7dmFyIG89dC5xdWVyeVNlbGVjdG9yQWxsKCcudC12YXJpYWJsZS1wbGFjZWhvbGRlcltkYXRhLXZhcmlhYmxlPSInK2UubmFtZSsnIl1bZGF0YS12YXJpYWJsZS1kb21haW49IicrZS5kb21haW4rJyJdJyk7by5sZW5ndGgmJm8uZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9dC5kYXRhc2V0LG89ZS52YXJpYWJsZSxuPWUuZGVmYXVsdFZhbHVlO3QudGV4dENvbnRlbnQ9cnx8bnx8b30pKX1mdW5jdGlvbiB0X2Zvcm1zX191cGRhdGVJbnB1dFZhcmlhYmxlKHQsZSxyKXt2YXIgbz1yLmdldFZhbHVlLG49ci5kYXRhLGEsaT1vKCkudmFsdWU7aWYobi5vd25WYXJpYW50VGl0bGUmJmkmJihpPWkucmVwbGFjZShuLm93blZhcmlhbnRUaXRsZSsiOiAiLCIiKSksbi5pc0NvbnRhY3RNZXRob2Qpe3ZhciBzPWlbZS5uYW1lXTtpPXMudHlwZUlucHV0RGlzcGxheVRleHQ/cy50eXBlSW5wdXREaXNwbGF5VGV4dDppW2UubmFtZV0udmFsdWV9dF9mb3Jtc19fdXBkYXRlVmFyaWFibGVzKHQsZSxpKX1mdW5jdGlvbiB0X2Zvcm1zX191cGRhdGVTeXN0ZW1WYXJpYWJsZSh0LGUscil7dmFyIG89dF9mb3Jtc19fZ2V0U3lzdGVtVmFyaWFibGVzKCksbj10LnF1ZXJ5U2VsZWN0b3IoIi50LWZvcm0iKTtpZihuKXt2YXIgYT1yLm5hbWUsaSxzLGw7aWYoci5uYW1lPT09by5MRUFEX0lEKWE9KG4udGlsZGFUcmFuSWR8fCIiKS5zcGxpdCgiOiIpWzFdfHwiMCI7dF9mb3Jtc19fdXBkYXRlVmFyaWFibGVzKGUscixhKX19ZnVuY3Rpb24gdF9mb3Jtc19fdXBkYXRlQWxsU3lzdGVtVmFyaWFibGVzKHQpe3ZhciBlPXQuY2xvc2VzdCgiLnQtcmVjIikscixvO3RfZm9ybXNfX2dldFVzZWRWYXJpYWJsZXMoW2VdLHt1bmlxdWU6ITB9KS5maWx0ZXIodF9mb3Jtc19faXNTeXN0ZW1WYXJpYWJsZSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dF9mb3Jtc19fdXBkYXRlU3lzdGVtVmFyaWFibGUoZSxlLHQpfSkpfWZ1bmN0aW9uIHRfZm9ybXNfX2dldFVzZWRWYXJpYWJsZXModCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIHIsbz1lLnVuaXF1ZSxuPUFycmF5LmZyb20odCkuZmxhdE1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIEFycmF5LmZyb20odC5xdWVyeVNlbGVjdG9yQWxsKCIudC12YXJpYWJsZS1wbGFjZWhvbGRlciIpKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybntuYW1lOnQuZ2V0QXR0cmlidXRlKCJkYXRhLXZhcmlhYmxlIiksZG9tYWluOnQuZ2V0QXR0cmlidXRlKCJkYXRhLXZhcmlhYmxlLWRvbWFpbiIpfX0pKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5hbWUmJnQuZG9tYWlufSkpfSkpO2lmKG8pe3ZhciBhPW5ldyBTZXQ7cmV0dXJuIG4uZmlsdGVyKChmdW5jdGlvbih0KXt2YXIgZT10Lm5hbWUrInwiK3QuZG9tYWluO3JldHVybiFhLmhhcyhlKSYmYS5hZGQoZSl9KSl9cmV0dXJuIG59ZnVuY3Rpb24gdF9mb3Jtc19fcGFyc2VWYXJpYWJsZXModCl7dmFyIGU9dF9mb3Jtc19fcmVwbGFjZVZhcmlhYmxlc1dpdGhQbGFjZWhvbGRlcnModCkscjtyZXR1cm4gZS5sZW5ndGg/dF9mb3Jtc19fYmluZEZvcm1WYXJpYWJsZXNUb1BsYWNlaG9sZGVycyh0LmNsb3Nlc3QoIi50LXJlYyIpLGUpOlByb21pc2UucmVzb2x2ZSgpfWZ1bmN0aW9uIHRfZm9ybXNfX2ZpbmRGb3JtRmllbGQodCxlKXt2YXIgcj10LnF1ZXJ5U2VsZWN0b3IoJy50LWlucHV0LWdyb3VwW2RhdGEtZmllbGQtbmFtZT0iJytlKyciXScpLG87cmV0dXJuIHJ8fEFycmF5LmZyb20odC5xdWVyeVNlbGVjdG9yQWxsKCcudC1pbnB1dC1ncm91cFtkYXRhLWZpZWxkLW5hbWUqPSInK2UrJyJdJykpLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEF0dHJpYnV0ZSgiZGF0YS1maWVsZC1uYW1lIikuc3BsaXQoIjsiKS5pbmNsdWRlcyhlKX0pKX1mdW5jdGlvbiB0X2Zvcm1zX19jbGVhckZvcm1JbnB1dHModCl7dmFyIGU9dC5xdWVyeVNlbGVjdG9yQWxsKCIudC11cHdpZGdldC1jb250YWluZXJfX2RhdGFfdGFibGVfYWN0aW9uc19yZW1vdmUgc3ZnIikscj10LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W3R5cGU9InRleHQiXScpLG89dC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFt0eXBlPSJudW1iZXIiXScpLG49dC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFt0eXBlPSJlbWFpbCJdJyksYT10LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W3R5cGU9InRlbCJdLCBpbnB1dFt0eXBlPSJoaWRkZW4iXVtkYXRhLXRpbGRhLXJ1bGU9InBob25lIl0nKSxpPXQucXVlcnlTZWxlY3RvckFsbCgidGV4dGFyZWEiKTtlLmZvckVhY2goKGZ1bmN0aW9uKHQpe3RfdHJpZ2dlckV2ZW50KHQsImNsaWNrIil9KSksci5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnZhbHVlPSIifSkpLG8uZm9yRWFjaCgoZnVuY3Rpb24odCl7dC52YWx1ZT0iIn0pKSxuLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QudmFsdWU9IiJ9KSksYS5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnZhbHVlPSIifSkpLGkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5pbm5lckhUTUw9IiIsdC52YWx1ZT0iIn0pKX1mdW5jdGlvbiB0X2Zvcm1zX19jbGVhckZvcm1EYXRhKHQpeyJ1bmRlZmluZWQiIT10eXBlb2YgalF1ZXJ5JiZqUXVlcnkodCkuZGF0YSgidGlsZGFmb3JtcmVzdWx0Iix7dHJhbklkOiIwIixvcmRlcklkOiIwIn0pLHQudGlsZGFUcmFuSWQ9IjAiLHQudGlsZGFPcmRlcklkPSIwIn1mdW5jdGlvbiB0X2Zvcm1zX19zaG93U3VjY2Vzc2JveCh0KXt2YXIgZT10LnF1ZXJ5U2VsZWN0b3IoIi5qcy1zdWNjZXNzYm94Iikscj10X2Zvcm1zX19nZXRNc2coInN1Y2Nlc3MiKTtpZighZSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7dmFyIG89ZS5nZXRBdHRyaWJ1dGUoImRhdGEtc3VjY2Vzcy1tZXNzYWdlIik7cmV0dXJuIG8/ZS5pbm5lckhUTUw9bzplLnRleHRDb250ZW50JiZlLmlubmVyVGV4dHx8b3x8IXJ8fChlLmlubmVySFRNTD1yKSx0X2Zvcm1zX19wYXJzZVZhcmlhYmxlcyhlKS5maW5hbGx5KChmdW5jdGlvbigpeyJ5IiE9PXQuZ2V0QXR0cmlidXRlKCJkYXRhLXN1Y2Nlc3MtcG9wdXAiKT9lLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjp3aW5kb3cudGlsZGFGb3JtLnNob3dTdWNjZXNzUG9wdXAoZS5pbm5lckhUTUwpfSkpfWZ1bmN0aW9uIHRfZm9ybXNfX2hhbmRsZVN1Y2Nlc3MoZm9ybSxvcHRpb25zKXt2YXIgX3JlZjI9b3B0aW9uc3x8e30sc3VjY2Vzc1VybD1fcmVmMi5zdWNjZXNzVXJsLF9yZWYyJHN1Y2Nlc3NDYWxsYmFjaz1fcmVmMi5zdWNjZXNzQ2FsbGJhY2ssc3VjY2Vzc0NhbGxiYWNrPXZvaWQgMD09PV9yZWYyJHN1Y2Nlc3NDYWxsYmFjaz8iIjpfcmVmMiRzdWNjZXNzQ2FsbGJhY2ssY2FsbGJhY2s9KHN1Y2Nlc3NDYWxsYmFja3x8IiIpLnJlcGxhY2UoIndpbmRvdy4iLCIiKTtjYWxsYmFjayYmImZ1bmN0aW9uIj09dHlwZW9mIHdpbmRvd1tjYWxsYmFja10/InVuZGVmaW5lZCIhPXR5cGVvZiBqUXVlcnk/ZXZhbChjYWxsYmFjaysiKGpRdWVyeShmb3JtKSkiKTpldmFsKGNhbGxiYWNrKyIoZm9ybSkiKTpzdWNjZXNzVXJsJiZzZXRUaW1lb3V0KChmdW5jdGlvbigpe3dpbmRvdy5sb2NhdGlvbi5ocmVmPXN1Y2Nlc3NVcmx9KSw1MDApfWZ1bmN0aW9uIHRfZm9ybXNfX2dldFJvb3Rab25lKCl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKSxlO3JldHVybiB0JiZ0LmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1yb290LXpvbmUiKXx8ImNvbSJ9ZnVuY3Rpb24gdF9mb3Jtc19faXNUZXN0ZXJQYWdlKCl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKSxlO3JldHVybiB0JiYieSI9PT10LmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS10cyIpfWZ1bmN0aW9uIHRfcmVtb3ZlRWwodCl7dCYmdC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCl9dmFyIHRfZm9ybXNfX2h0bWxFdmVudHM9e29uYmx1cjoxLG9uY2hhbmdlOjEsb25mb2N1czoxLG9uc3VibWl0OjEsb25jbGljazoxLG9uZGJsY2xpY2s6MSxvbmtleWRvd246MSxvbmtleXByZXNzOjEsb25wYXN0ZToxLG9uaW5wdXQ6MX07ZnVuY3Rpb24gdF9yZW1vdmVFdmVudExpc3RlbmVyKHQsZSxyKXt0LnJlbW92ZUV2ZW50TGlzdGVuZXI/dC5yZW1vdmVFdmVudExpc3RlbmVyKGUsciwhMSk6dC5kZXRhY2hFdmVudCYmdF9mb3Jtc19faHRtbEV2ZW50c1sib24iK2VdP3QuZGV0YWNoRXZlbnQoIm9uIitlLHIpOnRbIm9uIitlXT1udWxsfWZ1bmN0aW9uIHRfYWRkRXZlbnRMaXN0ZW5lcih0LGUscixvKXt0LmFkZEV2ZW50TGlzdGVuZXI/dC5hZGRFdmVudExpc3RlbmVyKGUscixvKTp0LmF0dGFjaEV2ZW50JiZ0X2Zvcm1zX19odG1sRXZlbnRzWyJvbiIrZV0/dC5hdHRhY2hFdmVudCgib24iK2Uscik6dFsib24iK2VdPXJ9ZnVuY3Rpb24gdF9zZXJpYWxpemVBcnJheSh0KXtmb3IodmFyIGU9W10scj10LnF1ZXJ5U2VsZWN0b3JBbGwoImlucHV0LCB0ZXh0YXJlYSwgYnV0dG9uLCBzZWxlY3QiKSxvLG49dF9mb3Jtc19fZ2V0Q29uZGl0aW9uQ2hlY2tIYW5kbGVyKHQpLmlzSGlkZGVuQnlDb25kaXRpb24sYT0wO2E8ci5sZW5ndGg7YSsrKWlmKCEoIXJbYV0ubmFtZXx8clthXS5kaXNhYmxlZHx8WyJmaWxlIiwicmVzZXQiLCJzdWJtaXQiLCJidXR0b24iXS5pbmRleE9mKHJbYV0udHlwZSk+LTF8fG4oclthXSkpKWlmKCJzZWxlY3QtbXVsdGlwbGUiIT09clthXS50eXBlKXtpZighKFsiY2hlY2tib3giLCJyYWRpbyJdLmluZGV4T2YoclthXS50eXBlKT4tMSl8fHJbYV0uY2hlY2tlZCl7dmFyIGk9clthXS5uYW1lLHM9clthXS52YWx1ZTtlLnB1c2goe25hbWU6aSx2YWx1ZTpzfSl9fWVsc2UgZm9yKHZhciBsPXJbYV0ub3B0aW9ucyxkPTA7ZDxsLmxlbmd0aDtkKyspbFtkXS5zZWxlY3RlZCYmZS5wdXNoKHtuYW1lOmxbZF0ubmFtZSx2YWx1ZTpsW2RdLnZhbHVlfSk7cmV0dXJuIGV9ZnVuY3Rpb24gdF9hZGRDbGFzcyh0LGUpe2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0P3QuY2xhc3NMaXN0LmFkZChlKTp0LmNsYXNzTmFtZSs9KHQuY2xhc3NOYW1lPyIgIjoiIikrZX1mdW5jdGlvbiB0X3JlbW92ZUNsYXNzKHQsZSl7ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3Q/dC5jbGFzc0xpc3QucmVtb3ZlKGUpOnQuY2xhc3NOYW1lPXQuY2xhc3NOYW1lLnJlcGxhY2UobmV3IFJlZ0V4cCgiKF58XFxzKykiK2UrIihcXHMrfCQpIiksIiAiKS5yZXBsYWNlKC9eXHMrLywiIikucmVwbGFjZSgvXHMrJC8sIiIpfWZ1bmN0aW9uIHRfaGFzQ2xhc3ModCxlKXtyZXR1cm4gZG9jdW1lbnQuYm9keS5jbGFzc0xpc3Q/dC5jbGFzc0xpc3QuY29udGFpbnMoZSk6bmV3IFJlZ0V4cCgiKFxcc3xeKSIrZSsiKFxcc3wkKSIpLnRlc3QodC5jbGFzc05hbWUpfWZ1bmN0aW9uIHRfZm9ybXNfX2Zvcm1EYXRhKHQpe2Zvcih2YXIgZT0iIixyPTA7cjx0Lmxlbmd0aDtyKyspIiIhPT1lJiYoZSs9IiYiKSxlKz1lbmNvZGVVUklDb21wb25lbnQodFtyXS5uYW1lKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHRbcl0udmFsdWUpO3JldHVybiBlLnJlcGxhY2UoLyUyMC9nLCIrIil9ZnVuY3Rpb24gdF9mYWRlT3V0KHQpe2lmKCJub25lIiE9PXQuc3R5bGUuZGlzcGxheSl2YXIgZT0xLHI9c2V0SW50ZXJ2YWwoKGZ1bmN0aW9uKCl7dC5zdHlsZS5vcGFjaXR5PWUsKGUtPS4xKTw9LjEmJihjbGVhckludGVydmFsKHIpLHQuc3R5bGUuZGlzcGxheT0ibm9uZSIsdC5zdHlsZS5vcGFjaXR5PW51bGwpfSksMzApfWZ1bmN0aW9uIHRfZmFkZUluKHQpe2lmKCJibG9jayIhPT10LnN0eWxlLmRpc3BsYXkpe3ZhciBlPTA7dC5zdHlsZS5vcGFjaXR5PWUsdC5zdHlsZS5kaXNwbGF5PSJibG9jayI7dmFyIHI9c2V0SW50ZXJ2YWwoKGZ1bmN0aW9uKCl7dC5zdHlsZS5vcGFjaXR5PWUsKGUrPS4xKT49MSYmY2xlYXJJbnRlcnZhbChyKX0pLDMwKX19ZnVuY3Rpb24gdF90cmlnZ2VyRXZlbnQodCxlKXt2YXIgcjtkb2N1bWVudC5jcmVhdGVFdmVudD8ocj1kb2N1bWVudC5jcmVhdGVFdmVudCgiSFRNTEV2ZW50cyIpKS5pbml0RXZlbnQoZSwhMCwhMSk6ZG9jdW1lbnQuY3JlYXRlRXZlbnRPYmplY3QmJigocj1kb2N1bWVudC5jcmVhdGVFdmVudE9iamVjdCgpKS5ldmVudFR5cGU9ZSksci5ldmVudE5hbWU9ZSx0LmRpc3BhdGNoRXZlbnQ/dC5kaXNwYXRjaEV2ZW50KHIpOnQuZmlyZUV2ZW50P3QuZmlyZUV2ZW50KCJvbiIrci5ldmVudFR5cGUscik6dFtlXT90W2VdKCk6dFsib24iK2VdJiZ0WyJvbiIrZV0oKX0KCmZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX19jaGVja1Zpc2liaWxpdHlQYWdlKCl7InZpc2libGUiPT09ZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlJiYodF9hbmltYXRpb25TQlNfX29uUmVhZHkodF9hbmltYXRpb25TQlNfX2luaXQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHRfYW5pbWF0aW9uU0JTX19jaGVja1Zpc2liaWxpdHlQYWdlKSl9ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX29uUmVhZHkodCl7ImxvYWRpbmciIT09ZG9jdW1lbnQucmVhZHlTdGF0ZT90KCk6ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsdCl9ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX2luaXQoKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpLGU9dD8iZWRpdCI9PT10LmdldEF0dHJpYnV0ZSgiZGF0YS10aWxkYS1tb2RlIik6bnVsbDtlfHwoZT1Cb29sZWFuKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb3JfcmVkYWN0b3JfdG9vbGJhciIpKSksL0JvdC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCl8fGRvY3VtZW50LmRvY3VtZW50TW9kZTwxMXx8ZXx8KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWFuaW1hdGUtc2JzLWV2ZW50PSJzY3JvbGwiXScpJiYodC5zdHlsZS5vdmVyZmxvd1g9ImhpZGRlbiIpLHRfYW5pbWF0aW9uU0JTX19pc1plcm9CbG9ja3NSZW5kZXJlZCgoZnVuY3Rpb24oKXt0X2FuaW1hdGlvblNCU19pc0luc3RhZ3JhbVJlbmRlcmVkKChmdW5jdGlvbigpe3ZhciB0O3RfYW5pbWF0aW9uU0JTX19zZXRBdXRvU2NhbGVJbmZvKCksdF9hbmltYXRpb25TQlNfX3dyYXBBbmRVcGRhdGVFbHMoQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtYW5pbWF0ZS1zYnMtZXZlbnRdIikpKSx0X2FuaW1hdGlvblNCU19faW5pdEFsbFJlcyhlKX0pKX0pKSl9ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX3NldEF1dG9TY2FsZUluZm8oKXtpZih2b2lkIDA9PT13aW5kb3cuc2hvdWxkVXNlU2NhbGVGYWN0b3Ipe3ZhciB0PXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9GaXJlZm94XC8oWzAtOV0rKVwuLyksZT10P3BhcnNlSW50KHRbMV0sMTApOjEyNixuPXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9DaHJvbWVcLyhbMC05XSspXC4vKSxpPW4mJnBhcnNlSW50KG5bMV0sMTApfHwwO3dpbmRvdy5pc09ubHlTY2FsYWJsZT1lPDEyNix3aW5kb3cuc2hvdWxkVXNlU2NhbGVGYWN0b3I9IXdpbmRvdy5pc09ubHlTY2FsYWJsZSYmIXQmJmk8PTEyN319ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX2lzWmVyb0Jsb2Nrc1JlbmRlcmVkKHQpe3ZhciBlPXRfYW5pbWF0aW9uU0JTX19nZXRBcnRib2FyZHMoIjM5NiIpO2lmKGUubGVuZ3RofHwoZT10X2FuaW1hdGlvblNCU19fZ2V0QXJ0Ym9hcmRzKCIxMjEiKSksZS5sZW5ndGgpe3ZhciBuPSExO2lmKGUuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNsYXNzTGlzdC5jb250YWlucygicmVuZGVyZWQiKX0pKSl0KCk7ZWxzZSBpZihkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdzY3JpcHRbc3JjKj0idGlsZGEtYmxvY2tzLTIiXSwgc2NyaXB0W3NyYyo9InRpbGRhLWJsb2Nrcy0xIl0nKS5sZW5ndGgpdF9hbmltYXRpb25TQlNfX2JhY2t3YXJkQ29tcGF0aWJpbGl0eVdhaXQoZSxEYXRlLm5vdygpLHQpO2Vsc2V7dmFyIGk9ZS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNsYXNzTGlzdC5jb250YWlucygicmVuZGVyZWQiKX0pKTtlLmZvckVhY2goKGZ1bmN0aW9uKGEpe2EuY2xhc3NMaXN0LmNvbnRhaW5zKCJyZW5kZXJlZCIpfHxhLmFkZEV2ZW50TGlzdGVuZXIoImFydEJvYXJkUmVuZGVyZWQiLChmdW5jdGlvbigpe2kucHVzaChhKSxpLmxlbmd0aCE9PWUubGVuZ3RofHxufHx0KCl9KSl9KSksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtuPSEwLGkubGVuZ3RoIT09ZS5sZW5ndGgmJnQoKX0pLDNlMyl9fX1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19fZ2V0QXJ0Ym9hcmRzKHQpe3ZhciBlPScucltkYXRhLXJlY29yZC10eXBlPSInK3QrJyJdOm5vdCgudDM5N19fb2ZmKTpub3QoLnQzOTVfX29mZik6bm90KC50NDAwX19vZmYpIC50Mzk2X19hcnRib2FyZCc7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoZSkpfWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX19iYWNrd2FyZENvbXBhdGliaWxpdHlXYWl0KHQsZSxuKXtpZih0LmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5jbGFzc0xpc3QuY29udGFpbnMoInJlbmRlcmVkIil9KSkpbigpO2Vsc2V7aWYoRGF0ZS5ub3coKS1lPjFlNClyZXR1cm4gdm9pZCBjb25zb2xlLndhcm4oImFsbCB6ZXJvLWJsb2NrcyBjYW4ndCBiZSByZW5kZXJlZCIpO3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dF9hbmltYXRpb25TQlNfX2JhY2t3YXJkQ29tcGF0aWJpbGl0eVdhaXQodCxlLG4pfSksNTAwKX19ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfaXNJbnN0YWdyYW1SZW5kZXJlZCh0KXtpZih3aW5kb3cuYW5pbWF0aW9uU0JTX19pc0lPUyYmLTEhPT1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkluc3RhZ3JhbSIpKXZhciBlPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7d2luZG93LmlubmVyV2lkdGghPT1zY3JlZW4ud2lkdGgmJndpbmRvdy5pbm5lckhlaWdodD53aW5kb3cuaW5uZXJXaWR0aD90X2FuaW1hdGlvblNCU19pc0luc3RhZ3JhbVJlbmRlcmVkKHQpOihjbGVhclRpbWVvdXQoZSksdCgpKX0pLDEwMCk7ZWxzZSB0KCl9ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX3dyYXBBbmRVcGRhdGVFbHModCl7dmFyIGU9LTEhPT1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkNocm9tZSIpO3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIG49dC5xdWVyeVNlbGVjdG9yKCIudG4tbW9sZWN1bGUsIC50bi1hdG9tIik7aWYobil7LTE9PT1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkNocm9tZSIpJiYobi5zdHlsZS5XZWJraXRCYWNrZmFjZVZpc2liaWxpdHk9ImhpZGRlbiIsbi5zdHlsZS5iYWNrZmFjZVZpc2liaWxpdHk9ImhpZGRlbiIpO3ZhciBpPXQucXVlcnlTZWxlY3RvcigiLnRuLWF0b21fX3Nicy1hbmltLXdyYXBwZXIiKSxhPXRfYW5pbWF0aW9uU0JTX19nZXRBbmltT3B0aW9ucyh0LCJwdWJsaXNoZWQiLG51bGwpO2lmKCFpJiZhKXt2YXIgcj1nZXRDb21wdXRlZFN0eWxlKG4pLmRpc3BsYXksbztuLmNsYXNzTGlzdC5jb250YWlucygidG4tbW9sZWN1bGUiKSYmImZsZXgiIT09ciYmKG4uc3R5bGUuZGlzcGxheT0iaW5oZXJpdCIpO3ZhciBzPXRfYW5pbWF0aW9uU0JTX19nZXRTY2FsZVdyYXBwZXIobiksbD10LnN0eWxlLnRyYW5zZm9ybSxfO2wmJi0xIT09bC5pbmRleE9mKCJtYXRyaXgoIikmJih0X2FuaW1hdGlvblNCU19fd3JhcEVsKHN8fG4sInRuLWF0b21fX3Nicy10cmFuc2Zvcm0td3JhcHBlciIpLChfPXQucXVlcnlTZWxlY3RvcigiLnRuLWF0b21fX3Nicy10cmFuc2Zvcm0td3JhcHBlciIpKS5zdHlsZS50cmFuc2Zvcm09bCx0LnN0eWxlLnRyYW5zZm9ybT0iIiksdF9hbmltYXRpb25TQlNfX3dyYXBFbCgoXz10LnF1ZXJ5U2VsZWN0b3IoIi50bi1hdG9tX19zYnMtdHJhbnNmb3JtLXdyYXBwZXIiKSl8fHN8fG4sInRuLWF0b21fX3Nicy1hbmltLXdyYXBwZXIiKSxpPXQucXVlcnlTZWxlY3RvcigiLnRuLWF0b21fX3Nicy1hbmltLXdyYXBwZXIiKSx0X2FuaW1hdGlvblNCU19fdXBkYXRlU3R5bGVzQWZ0ZXJXcmFwcGluZyh0LF98fGksZSl9fX0pKX1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19fZ2V0U2NhbGVXcmFwcGVyKHQpe2lmKCF0KXJldHVybiBudWxsO3ZhciBlPXQuY2xvc2VzdCgiLnQzOTZfX2dyb3VwIiksbj10LmNsYXNzTGlzdC5jb250YWlucygidG4tYXRvbSIpO3JldHVybiBlJiZuP251bGw6dC5jbG9zZXN0KCIudG4tYXRvbV9fc2NhbGUtd3JhcHBlciIpfWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX193cmFwQW5kVXBkYXRlRWxPblJlc2l6ZSh0KXtpZih0Lmxlbmd0aCl7dmFyIGU9dC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiF0LnF1ZXJ5U2VsZWN0b3IoIi50bi1hdG9tX19zYnMtYW5pbS13cmFwcGVyIil9KSk7ZS5sZW5ndGgmJnRfYW5pbWF0aW9uU0JTX193cmFwQW5kVXBkYXRlRWxzKGUpfX1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19fdXBkYXRlU3R5bGVzQWZ0ZXJXcmFwcGluZyh0LGUsbil7dmFyIGk9dC5nZXRBdHRyaWJ1dGUoImRhdGEtZWxlbS10eXBlIiksYT1nZXRDb21wdXRlZFN0eWxlKHQpLHI9YS5nZXRQcm9wZXJ0eVZhbHVlKCJib3JkZXItcmFkaXVzIik7InNoYXBlIiE9PWkmJiJidXR0b24iIT09aSYmImltYWdlIiE9PWl8fCFwYXJzZUludChyLDEwKXx8KGUuc3R5bGUuYm9yZGVyUmFkaXVzPXIpO3ZhciBvPVsiZmlsdGVyIiwiYmFja2Ryb3AtZmlsdGVyIl07bz0obz1vLm1hcCgoZnVuY3Rpb24odCl7dmFyIGU9Ii13ZWJraXQtIit0LG49YS5nZXRQcm9wZXJ0eVZhbHVlKHQpO2lmKCJub25lIiE9PW4mJiIiIT09bnx8KG49YS5nZXRQcm9wZXJ0eVZhbHVlKGUpKSwibm9uZSIhPT1uJiYiIiE9PW4pcmV0dXJue2ZpbHRlcjp0LHdlYmtpdEZpbHRlcjplLHZhbHVlOm59fSkpKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkpO3ZhciBzPXQucXVlcnlTZWxlY3RvcigiLnRuLW1vbGVjdWxlLCAudG4tYXRvbSIpLGw9Z2V0Q29tcHV0ZWRTdHlsZShzKS50cmFuc2Zvcm0sXz1kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKTtfLmluaXRFdmVudCgiYmFja2Ryb3BGaWx0ZXJJbWdXcmFwcGVyZWQiLCEwLCEwKSxvLmZvckVhY2goKGZ1bmN0aW9uKGEpe3dpbmRvdy50X2FuaW1hdGlvblNCU19faXNGaXJlZm94JiYoZS5zdHlsZS5iYWNrZmFjZVZpc2liaWxpdHk9InZpc2libGUiKSxlLnN0eWxlW2Eud2Via2l0RmlsdGVyXT1hLnZhbHVlLGUuc3R5bGVbYS5maWx0ZXJdPWEudmFsdWUsdC5zdHlsZVthLndlYmtpdEZpbHRlcl09Im5vbmUiLHQuc3R5bGVbYS5maWx0ZXJdPSJub25lIiwiaW1hZ2UiPT09aSYmd2luZG93LnRfYW5pbWF0aW9uU0JTX19pc1NhZmFyaSYmKHQuZGlzcGF0Y2hFdmVudChfKSx0LmNsYXNzTGlzdC5hZGQoInQzOTZfX2VsZW0tLWJhY2tkcm9wLWZpbHRlci1pbWctd3JhcHBlcmVkIikpLG4mJiJiYWNrZHJvcC1maWx0ZXIiPT09YS5maWx0ZXImJihzLnN0eWxlW2Eud2Via2l0RmlsdGVyXT0iaW5oZXJpdCIscy5zdHlsZVthLmZpbHRlcl09ImluaGVyaXQiKSwibm9uZSI9PT1sJiYocy5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVooMCkiKX0pKTt2YXIgYz1vLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiJiYWNrZHJvcC1maWx0ZXIiPT09dC5maWx0ZXJ9KSk7biYmYyYmdF9hbmltYXRpb25TQlNfX2Nocm9tZUZpeEJhY2tkcm9wRmlsdGVyKHMsZSl9ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX2Nocm9tZUZpeEJhY2tkcm9wRmlsdGVyKHQsZSl7dmFyIG49Z2V0Q29tcHV0ZWRTdHlsZSh0KSxpPW4uZ2V0UHJvcGVydHlWYWx1ZSgiYmFja2dyb3VuZC1jb2xvciIpLGE9bi5nZXRQcm9wZXJ0eVZhbHVlKCJvcGFjaXR5Iikscj1uLmdldFByb3BlcnR5VmFsdWUoImJveC1zaGFkb3ciKTtpZigicmdiYSgwLCAwLCAwLCAwKSIhPT1pJiYiMSIhPT1hKXt2YXIgbz1pLnN1YnN0cmluZyhpLmluZGV4T2YoIigiKSsxLGkuaW5kZXhPZigiKSIpKSxzPXRfYW5pbWF0aW9uU0JTX19wcm9jZXNzQm94U2hhZG93UkdCKHIsYSk7cyYmKGUuc3R5bGUuYm94U2hhZG93PXMsdC5zdHlsZS5ib3hTaGFkb3c9Im5vbmUiKSxlLnN0eWxlLmJhY2tncm91bmRDb2xvcj0icmdiYSgiK28rIiwiK2ErIikiLHQuc3R5bGUub3BhY2l0eT0iMSIsdC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9InRyYW5zcGFyZW50Iix0LnN0eWxlLmJhY2tkcm9wRmlsdGVyPSJpbml0aWFsIix0LnN0eWxlLldlYmtpdEJhY2tkcm9wRmlsdGVyPSJpbml0aWFsIn19ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX3Byb2Nlc3NCb3hTaGFkb3dSR0IodCxlKXtpZighdClyZXR1cm4hMTtpZigtMT09PXQuaW5kZXhPZigicmdiYSIpJiYtMT09PXQuaW5kZXhPZigicmdiIil8fCIxIj09PWUpcmV0dXJuITE7dmFyIG49dC5zdWJzdHJpbmcodC5pbmRleE9mKCIoIikrMSx0LmluZGV4T2YoIikiKSksaT1uLnNwbGl0KCIsICIpOzM9PT1pLmxlbmd0aD9pLnB1c2goZSk6aVszXSo9ZTt2YXIgYT10LnJlcGxhY2UobixpLmpvaW4oIiwgIikpO3JldHVybi0xIT09YS5pbmRleE9mKCJyZ2IoIikmJihhPWEucmVwbGFjZSgicmdiKCIsInJnYmEoIikpLGF9ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX2luaXRBbGxSZXModCl7dmFyIGU9e2VsZW1lbnRzOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWFuaW1hdGUtc2JzLWV2ZW50XSIpKSxzY3JvbGxUb3A6d2luZG93LnBhZ2VZT2Zmc2V0LGlzRWRpdE1vZGU6dCxjbGlja2VkVHJpZ2dlckVsczpbXSxob3ZlclRyaWdnZXJFbHM6W119O2lmKGUuZWxlbWVudHMubGVuZ3RoKXt0X2FuaW1hdGlvblNCU19fY2FjaGVBbmRTZXREYXRhKGUpLHRfYW5pbWF0aW9uU0JTX19nZW5lcmF0ZUtleWZyYW1lcyhlKTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpLGk9ISFuJiYieWVzIj09PW4uZ2V0QXR0cmlidXRlKCJkYXRhLXRpbGRhLWxhenkiKTsoInkiPT09d2luZG93Lmxhenl8fGkpJiZ0X29uRnVuY0xvYWQoInRfbGF6eWxvYWRfdXBkYXRlIiwoZnVuY3Rpb24oKXt0X2xhenlsb2FkX3VwZGF0ZSgpfSkpO3ZhciBhPXRfYW5pbWF0aW9uU0JTX19nZXRBbmltRWxzT25WaWV3KGUuZWxlbWVudHMpLHIsbz0vQW5kcm9pZHx3ZWJPU3xpUGhvbmV8aVBhZHxpUG9kfEJsYWNrQmVycnl8SUVNb2JpbGV8T3BlcmEgTWluaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7aWYoIlJlc2l6ZU9ic2VydmVyImluIHdpbmRvdyl7dmFyIHM9dF9hbmltYXRpb25TQlNfX2dldEFsbEJyZWFrcG9pbnRzKCksbDt0X2FuaW1hdGlvblNCU19fY3JlYXRlUmVzaXplT2JzZXJ2ZXIoe2JyZWFrcG9pbnRzOnMsY3VycmVudFJlczp0X2FuaW1hdGlvblNCU19fZ2V0Q3VycmVudFJlcyhzLG8pLGlzTW9iaWxlOm99LGQpfWVsc2Ugbz93aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigib3JpZW50YXRpb25jaGFuZ2UiLChmdW5jdGlvbigpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZCgpfSksMzAwKX0pKTp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixkKTt2YXIgXz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudDM5NiIpLGM7aWYoQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChfLChmdW5jdGlvbih0KXt0LmFkZEV2ZW50TGlzdGVuZXIoImRpc3BsYXlDaGFuZ2VkIixkKX0pKSx3aW5kb3cudF9hbmltYXRpb25TQlNfX2lzU2FmYXJpKXtmdW5jdGlvbiBtKCl7MCE9PXdpbmRvdy5wYWdlWU9mZnNldCYmZCgpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLG0pfXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLG0pfXRfYW5pbWF0aW9uU0JTX190cmlnZ2VyTm9TY3JvbGxBbmltYXRpb24oZSxhKSxkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1hbmltYXRlLXNicy1ldmVudD0ic2Nyb2xsIl0nKS5sZW5ndGgmJih0X2FuaW1hdGlvblNCU19fdHJpZ2dlclNjcm9sbEFuaW0oZSksdF9hbmltYXRpb25TQlNfX2NoZWNrRnJhbWUoZSkpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoZnVuY3Rpb24oKXt0X2FuaW1hdGlvblNCU19fY2hhbmdlRWxWYWx1ZXMoZSl9KSksc2V0VGltZW91dCgoZnVuY3Rpb24oKXsiY29tcGxldGUiIT09ZG9jdW1lbnQucmVhZHlTdGF0ZSYmdF9hbmltYXRpb25TQlNfX2NoYW5nZUVsVmFsdWVzKGUpfSksM2UzKX1mdW5jdGlvbiBkKCl7Y2xlYXJUaW1lb3V0KHIpLHI9c2V0VGltZW91dCgoZnVuY3Rpb24oKXt2YXIgdD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1hbmltYXRlLXNicy1ldmVudF0iKSk7dF9hbmltYXRpb25TQlNfX3VwZGF0ZUFuaW1hdGVkT2JqZWN0U3RhdGUoZSwiZWxlbWVudHMiLHQpLHRfYW5pbWF0aW9uU0JTX193cmFwQW5kVXBkYXRlRWxPblJlc2l6ZShlLmVsZW1lbnRzKSx0X2FuaW1hdGlvblNCU19fY2FjaGVBbmRTZXREYXRhKGUpLHRfYW5pbWF0aW9uU0JTX190cmlnZ2VyU2Nyb2xsQW5pbShlKSxhPXRfYW5pbWF0aW9uU0JTX19nZXRBbmltRWxzT25WaWV3KGUuZWxlbWVudHMpLHRfYW5pbWF0aW9uU0JTX190cmlnZ2VyTm9TY3JvbGxBbmltYXRpb24oZSxhKSx0X2FuaW1hdGlvblNCU19fZ2VuZXJhdGVLZXlmcmFtZXMoZSl9KSw1MDApfX1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19fZ2V0QW5pbUVsc09uVmlldyh0KXtyZXR1cm4gdC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3ZhciBlPSJkYXRhLWFuaW1hdGUtc2JzLWV2ZW50IjtyZXR1cm4iaW50b3ZpZXciPT09dC5nZXRBdHRyaWJ1dGUoZSl8fCJibG9ja2ludG92aWV3Ij09PXQuZ2V0QXR0cmlidXRlKGUpfSkpfWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX19nZXRBbGxCcmVha3BvaW50cygpe3ZhciB0PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5yIC50Mzk2X19hcnRib2FyZCIpKSxlPVtdO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBuPXRfYW5pbWF0aW9uU0JTX19nZXRSZXNPcHRzKHQpLGk9bi5icmVha3BvaW50cy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybi0xPT09ZS5pbmRleE9mKHQpfSkpOy0xPT09KGU9ZS5jb25jYXQoaSkpLmluZGV4T2Yobi5yZXNNYXgpJiZlLnB1c2gobi5yZXNNYXgpfSkpLGUuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS10fSkpfWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX19nZXRDdXJyZW50UmVzKHQsZSl7dmFyIG4saT1lfHwib250b3VjaGVuZCJpbiBkb2N1bWVudCYmLTEhPT1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkFwcGxlV2ViS2l0Iik/ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoOndpbmRvdy5pbm5lcldpZHRoO3JldHVybiB0LmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVybiBpPnR9KSl9ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX3VwZGF0ZUFuaW1hdGVkT2JqZWN0U3RhdGUodCxlLG4pe3RbZV09bn1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19fc2V0S2V5Rm9yQW5pbWF0ZWRPYmplY3QodCxlLG4pe3RbZV18fHRfYW5pbWF0aW9uU0JTX191cGRhdGVBbmltYXRlZE9iamVjdFN0YXRlKHQsZSxuKX1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19fY3JlYXRlUmVzaXplT2JzZXJ2ZXIodCxlKXt2YXIgbj1kb2N1bWVudC5ib2R5LmdldENsaWVudFJlY3RzKCksaT1uWzBdLmhlaWdodCxhO25ldyBSZXNpemVPYnNlcnZlcigoZnVuY3Rpb24oYSl7YS5mb3JFYWNoKChmdW5jdGlvbihhKXtpZighZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoInQtYm9keV9zY3JvbGwtbG9ja2VkIikmJiFkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygidC1ib2R5X3BvcHVwc2hvd2VkIikpe3ZhciByPXRfYW5pbWF0aW9uU0JTX19nZXRDdXJyZW50UmVzKHQuYnJlYWtwb2ludHMsdC5pc01vYmlsZSk7YS5jb250ZW50UmVjdC5oZWlnaHQ9PT1pJiZ0LmN1cnJlbnRSZXM9PT1yfHwodC5jdXJyZW50UmVzPXIsaT1uWzBdLmhlaWdodCxlKCkpfX0pKX0pKS5vYnNlcnZlKGRvY3VtZW50LmJvZHkpfWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX19jaGFuZ2VFbFZhbHVlcyh0KXt0LmVsZW1lbnRzLmZvckVhY2goKGZ1bmN0aW9uKGUpe3RfYW5pbWF0aW9uU0JTX19zZXRBbmRDYWNoZUVsVG9wUG9zKGUsdCksInNjcm9sbCI9PT1lLmFuaW1UeXBlJiZ0X2FuaW1hdGlvblNCU19fdXBkYXRlU3RlcHNWYWx1ZXMoZSl9KSl9ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX2NoZWNrRnJhbWUodCl7dmFyIGU7ImZ1bmN0aW9uIj09dHlwZW9mIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUmJih0X2FuaW1hdGlvblNCU19fY2hlY2tQb3NDaGFuZ2VzKHQpJiZ0X2FuaW1hdGlvblNCU19fdHJpZ2dlclNjcm9sbEFuaW0odCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbigpe3RfYW5pbWF0aW9uU0JTX19jaGVja0ZyYW1lKHQpfSkpKX1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19fY2hlY2tQb3NDaGFuZ2VzKHQpe3ZhciBlPXQuc2Nyb2xsVG9wLG49d2luZG93LnBhZ2VZT2Zmc2V0O3JldHVybiBuPDAmJndpbmRvdy50X2FuaW1hdGlvblNCU19faXNTYWZhcmkmJihuPTApLHRfYW5pbWF0aW9uU0JTX191cGRhdGVBbmltYXRlZE9iamVjdFN0YXRlKHQsInNjcm9sbFRvcCIsbiksZSE9PW59ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX3RyaWdnZXJTY3JvbGxBbmltKHQpe3QuZWxlbWVudHMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7aWYoInNjcm9sbCI9PT1lLmFuaW1UeXBlKXt2YXIgbj17b3BhY2l0eToxLGJsdXI6MCxmaXg6ITEsZml4ZWRTaGlmdFk6MCx0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowLHNjYWxlWDoxLHNjYWxlWToxLHJvdGF0ZTowfTt0X2FuaW1hdGlvblNCU19fc2Nyb2xsQW5pbWF0aW9uQ2hlY2tTdGVwcyh0LGUsbiksdF9hbmltYXRpb25TQlNfX3Njcm9sbEFuaW1hdGlvblVwZGF0ZVRyYW5zZm9ybShlLG4pfX0pKX1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19fc2Nyb2xsQW5pbWF0aW9uQ2hlY2tTdGVwcyh0LGUsbil7ZS5zdGVwcy5mb3JFYWNoKChmdW5jdGlvbihpLGEpe3ZhciByPXQuc2Nyb2xsVG9wK2UudHJpZ2dlck9mZnNldCxvPXRfYW5pbWF0aW9uU0JTX19nZXRab29tKGUpO2Uuc2NhbGVkRGlmZmVyZW5jZSYmKHIrPWUuc2NhbGVkRGlmZmVyZW5jZSk7dmFyIHM9cj49aS5zdGFydCxsPXI8aS5zdGFydCxfPWkuZW5kPD1yLGM9aS5lbmQ+cjtpZihzJiZjKXtpLnN0YXRlPSJzdGFydGVkIixlLndyYXBwZXJFbCYmKGUud3JhcHBlckVsLnN0eWxlLndpbGxDaGFuZ2U9InRyYW5zZm9ybSIpO3ZhciBtPXItaS5zdGFydCxkPTA9PT1pLmRpc3Q/MTptL2kuZGlzdDtuLnByZXZVbmZpeGVkRGlzdD1pLnByZXZVbmZpeGVkRGlzdCx0X2FuaW1hdGlvblNCU19fc2Nyb2xsQW5pbWF0aW9uQ2FsY1N0ZXBTdHlsZXMobixpLGQsYSxvKX1fJiYoaS5zdGF0ZT0iZmluaXNoZWQiLGUud3JhcHBlckVsJiYoZS53cmFwcGVyRWwuc3R5bGUud2lsbENoYW5nZT0iIiksdF9hbmltYXRpb25TQlNfX3Njcm9sbEFuaW1hdGlvbkNhbGNTdGVwU3R5bGVzKG4saSwxLGEsbykpLCFsfHwic3RhcnRlZCIhPT1pLnN0YXRlJiYiZmluaXNoZWQiIT09aS5zdGF0ZXx8KGkuc3RhdGU9InVuYWN0aXZlIixlLndyYXBwZXJFbCYmKGUud3JhcHBlckVsLnN0eWxlLndpbGxDaGFuZ2U9IiIpLHRfYW5pbWF0aW9uU0JTX19zY3JvbGxBbmltYXRpb25DYWxjU3RlcFN0eWxlcyhuLGksMCxhLG8pKX0pKSxlLmNsYXNzTGlzdC5yZW1vdmUoInQzOTZfX2VsZW0tLWFuaW0taGlkZGVuIiksZS5zdGVwc1sxXSYmMD09PWUuc3RlcHNbMV0uZGlzdCYmMD09PWUuc3RlcHNbMV0uc3R5bGVzLm9wYWNpdHkmJiJ1bmFjdGl2ZSI9PT1lLnN0ZXBzWzFdLnN0YXRlJiYobi5vcGFjaXR5PTApfWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX19zY3JvbGxBbmltYXRpb25DYWxjU3RlcFN0eWxlcyh0LGUsbixpLGEpe2lmKCEwPT09ZS5zdHlsZXMuZml4JiYic3RhcnRlZCI9PT1lLnN0YXRlJiYodC5maXg9ITAsdC5maXhlZFNoaWZ0WT0wKSwhMD09PWUuc3R5bGVzLmZpeCYmImZpbmlzaGVkIj09PWUuc3RhdGUmJih0LmZpeD0hMSx0LmZpeGVkU2hpZnRZKz1lLmRpc3QvYSksITA9PT1lLnN0eWxlcy5maXgmJiJ1bmFjdGl2ZSI9PT1lLnN0YXRlKXtpZihpPjAmJiEwPT09dC5maXgpcmV0dXJuO3QuZml4PSExfXQub3BhY2l0eSs9biooZS5zdHlsZXMub3BhY2l0eS10Lm9wYWNpdHkpLHQuYmx1cis9biooZS5zdHlsZXMuYmx1ci10LmJsdXIpLHQudHJhbnNsYXRlWCs9biplLnN0eWxlcy5tb3ZlWCx0LnRyYW5zbGF0ZVkrPW4qZS5zdHlsZXMubW92ZVksdC5zY2FsZVgrPW4qKGUuc3R5bGVzLnNjYWxlWC10LnNjYWxlWCksdC5zY2FsZVkrPW4qKGUuc3R5bGVzLnNjYWxlWS10LnNjYWxlWSksdC5yb3RhdGUrPW4qZS5zdHlsZXMucm90YXRlfWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX19zY3JvbGxBbmltYXRpb25VcGRhdGVUcmFuc2Zvcm0odCxlKXtpZih0LndyYXBwZXJFbCl7dmFyIG49dF9hbmltYXRpb25TQlNfX2dldFpvb20odCksaT1nZXRDb21wdXRlZFN0eWxlKHQpLndpbGxDaGFuZ2UsYT13aW5kb3cuaXNPbmx5U2NhbGFibGU7aWYoITA9PT1lLmZpeCYmImZpeGVkIiE9PXQud3JhcHBlckVsLnN0eWxlLnBvc2l0aW9uKXt2YXIgcj10LnRyaWdnZXJPZmZzZXQtZS5wcmV2VW5maXhlZERpc3Q7YXx8KHIvPW4pLHQuc2NhbGVkRGlmZmVyZW5jZSYmKHIrPXQuc2NhbGVkRGlmZmVyZW5jZSksdC53cmFwcGVyRWwuc3R5bGUudG9wPXIrInB4Iix0LndyYXBwZXJFbC5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLGkmJiJhdXRvIiE9PWkmJih0LnN0eWxlLndpbGxDaGFuZ2U9InVuc2V0IiksdC56SW5kZXgmJih0LndyYXBwZXJFbC5zdHlsZS56SW5kZXg9dC56SW5kZXgpfSExPT09ZS5maXgmJiJmaXhlZCI9PT10LndyYXBwZXJFbC5zdHlsZS5wb3NpdGlvbiYmKHQud3JhcHBlckVsLnN0eWxlLnBvc2l0aW9uPSIiLHQud3JhcHBlckVsLnN0eWxlLnRvcD0iIix0LndyYXBwZXJFbC5zdHlsZS56SW5kZXg9IiIsdC56SW5kZXgmJih0LnN0eWxlLnpJbmRleD10LnpJbmRleCksdC5zdHlsZS53aWxsQ2hhbmdlPSIiKSx0LndyYXBwZXJFbC5zdHlsZS5vcGFjaXR5PWUub3BhY2l0eS50b1N0cmluZygpO3ZhciBvPSIiO2lmKGUudHJhbnNsYXRlWCl7dmFyIHM9ZS50cmFuc2xhdGVYO2EmJihzKj1uKSxvKz0idHJhbnNsYXRlWCgiK3MudG9GaXhlZCgyKSsicHgpIn1pZigwIT09ZS50cmFuc2xhdGVZfHwwIT09ZS5maXhlZFNoaWZ0WSl7dmFyIGw9ZS50cmFuc2xhdGVZK2UuZml4ZWRTaGlmdFk7YSYmKGwqPW4pLG8rPSJ0cmFuc2xhdGVZKCIrbC50b0ZpeGVkKDIpKyJweCkifTE9PT1lLnNjYWxlWCYmMT09PWUuc2NhbGVZfHwobys9InNjYWxlKCIrZS5zY2FsZVgrIiwiK2Uuc2NhbGVZKyIpIiksMCE9PWUucm90YXRlJiYobys9InJvdGF0ZSgiK2Uucm90YXRlKyJkZWcpIiksdC53cmFwcGVyRWwuc3R5bGUudHJhbnNmb3JtPW98fCJzY2FsZSgxKSJ9fWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX19nZW5lcmF0ZUtleWZyYW1lcyh0KXt2YXIgZT0iIjtpZih0LmVsZW1lbnRzLmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKCJzY3JvbGwiIT09dC5hbmltVHlwZSl7dmFyIG49e3RpbWVEdXJhdGlvbjowfSxpPVtdLGE9dF9hbmltYXRpb25TQlNfX2NyZWF0ZUVtcHR5U3R5bGVPcHRpb25zRm9yS2V5ZnJhbWVzKHQuc3RlcHMpO3RfYW5pbWF0aW9uU0JTX19nZW5lcmF0ZUtleWZyYW1lc19fY29tYmluZU9iamVjdHModC5zdGVwcyxpLG4sYSksdF9hbmltYXRpb25TQlNfX2dlbmVyYXRlS2V5ZnJhbWVzX19jb3JyZWN0RnJhbWVzKGkpLHRfYW5pbWF0aW9uU0JTX19nZW5lcmF0ZUtleWZyYW1lc19fY291bnRQZXJjZW50KGksbiksdF9hbmltYXRpb25TQlNfX2dlbmVyYXRlS2V5ZnJhbWVzX19jb3JyZWN0T3BhY2l0eU9uRmlyc3RTdGVwKHQsaSk7dmFyIHI9dF9hbmltYXRpb25TQlNfX2dlbmVyYXRlS2V5ZnJhbWVzX19nZXRUeHRTdHlsZXModCxpKSxvO2lmKG4udGltZUR1cmF0aW9uLz0xZTMscilpZihlKz10X2FuaW1hdGlvblNCU19fZ2VuZXJhdGVLZXlmcmFtZXNfX2dldEZpbmFsQ3NzKHQsbixyKSwiaG92ZXIiPT09dC5hbmltVHlwZXx8ImNsaWNrIj09PXQuYW5pbVR5cGUpKCF0Lmxvb3B8fCJsb29wd2l0aHJldmVyc2UiPT09dC5sb29wKSYmKGUrPXRfYW5pbWF0aW9uU0JTX19nZW5lcmF0ZUtleWZyYW1lc19fZ2V0UmV2ZXJzZUFuaW0odCkpfX0pKSxlKXtpZih0LmlzRWRpdE1vZGUpcmV0dXJuIGU7dmFyIG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnNicy1hbmltLWtleWZyYW1lcyIpO24/bi50ZXh0Q29udGVudCE9PWUmJihuLnRleHRDb250ZW50PWUpOigobj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpKS5jbGFzc0xpc3QuYWRkKCJzYnMtYW5pbS1rZXlmcmFtZXMiKSxuLnRleHRDb250ZW50PWUsZG9jdW1lbnQuaGVhZC5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZWVuZCIsbikpfX1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19fY3JlYXRlRW1wdHlTdHlsZU9wdGlvbnNGb3JLZXlmcmFtZXModCl7cmV0dXJue21vdmVYOnQuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiAwPT09dC5zdHlsZXMubW92ZVh9KSksbW92ZVk6dC5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10LnN0eWxlcy5tb3ZlWX0pKSxzY2FsZVg6dC5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIDE9PT10LnN0eWxlcy5zY2FsZVh9KSksc2NhbGVZOnQuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiAxPT09dC5zdHlsZXMuc2NhbGVZfSkpLHJvdGF0ZTp0LmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gMD09PXQuc3R5bGVzLnJvdGF0ZX0pKSxibHVyOnQuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiAwPT09dC5zdHlsZXMuYmx1cn0pKSxvcGFjaXR5OnQuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiAxPT09dC5zdHlsZXMub3BhY2l0eX0pKSxmaXg6dC5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuITE9PT10LnN0eWxlcy5maXh9KSl9fWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX19nZW5lcmF0ZUtleWZyYW1lc19fY29tYmluZU9iamVjdHModCxlLG4saSl7dC5mb3JFYWNoKChmdW5jdGlvbihhLHIpe3ZhciBvPXt9O2Zvcih2YXIgcyBpbiBvLnN0eWxlcz1hLnN0eWxlcyxpKWlbc10mJmRlbGV0ZSBvLnN0eWxlc1tzXTsie30iIT09SlNPTi5zdHJpbmdpZnkoby5zdHlsZXMpJiYoby50aW1lPTEqYS50aW1lfHwwLHIhPT10Lmxlbmd0aC0xJiYoby5lYXNlPXRbcisxXS5lYXNlKSxlLnB1c2gobyksbi50aW1lRHVyYXRpb24rPW8udGltZSl9KSl9ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX2dlbmVyYXRlS2V5ZnJhbWVzX19jb3JyZWN0RnJhbWVzKHQpe3QuZm9yRWFjaCgoZnVuY3Rpb24oZSxuKXt2YXIgaT1uPT09dC5sZW5ndGgtMSxhPTA9PT1uLHI9aT9udWxsOnRbbisxXSxvPWE/bnVsbDp0W24tMV07Zm9yKHZhciBzIGluIGUuc3R5bGVzKWF8fHMgaW4gby5zdHlsZXN8fHRfYW5pbWF0aW9uU0JTX19nZW5lcmF0ZUtleWZyYW1lc19fYWRkU3R5bGVUb0tleWZyYW1lKGUsbyxzLDApLGl8fChzIGluIHIuc3R5bGVzPyJtb3ZlWCIhPT1zJiYibW92ZVkiIT09cyYmInJvdGF0ZSIhPT1zfHx0X2FuaW1hdGlvblNCU19fZ2VuZXJhdGVLZXlmcmFtZXNfX3JlY2FsY3VsYXRlVmFsdWUoZSxyLHMpOnRfYW5pbWF0aW9uU0JTX19nZW5lcmF0ZUtleWZyYW1lc19fYWRkU3R5bGVUb0tleWZyYW1lKGUscixzLDEpKX0pKX1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19fZ2VuZXJhdGVLZXlmcmFtZXNfX2FkZFN0eWxlVG9LZXlmcmFtZSh0LGUsbixpKXsiYmx1ciIhPT1uJiYicm90YXRlIiE9PW4mJiJtb3ZlWCIhPT1uJiYibW92ZVkiIT09bnx8KGUuc3R5bGVzW25dPTA9PT1pPzA6dC5zdHlsZXNbbl0pLCJvcGFjaXR5IiE9PW4mJiJzY2FsZVgiIT09biYmInNjYWxlWSIhPT1ufHwoZS5zdHlsZXNbbl09MD09PWk/MTp0LnN0eWxlc1tuXSl9ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX2dlbmVyYXRlS2V5ZnJhbWVzX19yZWNhbGN1bGF0ZVZhbHVlKHQsZSxuKXtzd2l0Y2gobil7Y2FzZSJyb3RhdGUiOmUuc3R5bGVzLnJvdGF0ZSs9dC5zdHlsZXMucm90YXRlO2JyZWFrO2Nhc2UibW92ZVgiOmUuc3R5bGVzLm1vdmVYKz10LnN0eWxlcy5tb3ZlWDticmVhaztjYXNlIm1vdmVZIjplLnN0eWxlcy5tb3ZlWSs9dC5zdHlsZXMubW92ZVl9fWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX19nZW5lcmF0ZUtleWZyYW1lc19fY291bnRQZXJjZW50KHQsZSl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl0sYTtpZigwPT09bikwPT09ZS50aW1lRHVyYXRpb24/aS5wZXJjZW50PTA6KGE9KDEwMCppLnRpbWUvZS50aW1lRHVyYXRpb24pLnRvRml4ZWQoMiksaS5wZXJjZW50PXBhcnNlSW50KGEsMTApKTtlbHNlIGlmKG49PT10Lmxlbmd0aC0xKWkucGVyY2VudD0xMDA7ZWxzZXt2YXIgcj10W24tMV0ucGVyY2VudDtpZigwPT09ZS50aW1lRHVyYXRpb24paS5wZXJjZW50PTA7ZWxzZXtpZihhPSgxMDAqaS50aW1lL2UudGltZUR1cmF0aW9uK3IpLnRvRml4ZWQoMiksMTAwPT09cGFyc2VJbnQoYSwxMCkmJm49PT10Lmxlbmd0aC0yJiYwIT09biljb250aW51ZTtpLnBlcmNlbnQ9cGFyc2VJbnQoYSwxMCl9aS5wZXJjZW50PT09ciYmKGkucGVyY2VudCs9MSksaS5wZXJjZW50PjEwMCYmKGkucGVyY2VudD05OSl9fX1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19fZ2VuZXJhdGVLZXlmcmFtZXNfX2NvcnJlY3RPcGFjaXR5T25GaXJzdFN0ZXAodCxlKXt2YXIgbj1lWzFdO2lmKHQmJnQuY2xhc3NMaXN0LnJlbW92ZSgidDM5Nl9fZWxlbS0tYW5pbS1oaWRkZW4iKSxuJiYwPT09bi50aW1lJiYwPT09bi5zdHlsZXMub3BhY2l0eSl7dmFyIGk9dD90LnF1ZXJ5U2VsZWN0b3IoIi50bi1hdG9tX19zYnMtYW5pbS13cmFwcGVyIik6bnVsbDtpJiYoaS5zdHlsZS5vcGFjaXR5PSIwIiksZVswXS5zdHlsZXMub3BhY2l0eT0wfX1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19fZ2VuZXJhdGVLZXlmcmFtZXNfX2dldFR4dFN0eWxlcyh0LGUpe3ZhciBuPSIiO3JldHVybiBlLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UuY2hhbmdlc3x8KGUuY2hhbmdlcz10X2FuaW1hdGlvblNCU19fZ2VuZXJhdGVLZXlmcmFtZXNfX2dldEZyYW1lQ2hhbmdlcyh0LGUpKSxuKz0ibnVtYmVyIj09dHlwZW9mIGUucGVyY2VudD9lLnBlcmNlbnQrIiUgeyIrZS5jaGFuZ2VzKyJ9XG4iOiIifSkpLG59ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX2dlbmVyYXRlS2V5ZnJhbWVzX19nZXRGcmFtZUNoYW5nZXModCxlKXt2YXIgbj0iIixpPSIiLGE9e3g6MSx5OjEsY2hhbmdlZDohMX0scj0xO3dpbmRvdy5pc09ubHlTY2FsYWJsZSYmKHI9dF9hbmltYXRpb25TQlNfX2dldFpvb20odCkpO3ZhciBvLHM9dF9hbmltYXRpb25TQlNfX2dldFNjYWxlV3JhcHBlcih0LnF1ZXJ5U2VsZWN0b3IoIi50bi1tb2xlY3VsZSwgLnRuLWF0b20iKSk7Zm9yKHZhciBsIGluIDE9PT1yfHxzfHwocj0xKSxlLnN0eWxlcylzd2l0Y2gobCl7Y2FzZSJvcGFjaXR5IjpuKz0ib3BhY2l0eToiK2Uuc3R5bGVzLm9wYWNpdHkrIjsiO2JyZWFrO2Nhc2Uic2NhbGVYIjphLng9ZS5zdHlsZXMuc2NhbGVYLGEuY2hhbmdlZD0hMDticmVhaztjYXNlInNjYWxlWSI6YS55PWUuc3R5bGVzLnNjYWxlWSxhLmNoYW5nZWQ9ITA7YnJlYWs7Y2FzZSJtb3ZlWCI6aSs9InRyYW5zbGF0ZVgoIitNYXRoLnJvdW5kKGUuc3R5bGVzLm1vdmVYKnIpKyJweCkiO2JyZWFrO2Nhc2UibW92ZVkiOmkrPSJ0cmFuc2xhdGVZKCIrTWF0aC5yb3VuZChlLnN0eWxlcy5tb3ZlWSpyKSsicHgpIjticmVhaztjYXNlInJvdGF0ZSI6aSs9InJvdGF0ZSgiK2Uuc3R5bGVzLnJvdGF0ZSsiZGVnKSJ9aWYoITA9PT1hLmNoYW5nZWQmJihpKz0ic2NhbGUoIithLngrIiwiK2EueSsiKSIpLCIiIT09aSYmKG4rPSJ0cmFuc2Zvcm06IitpKyI7Iiksdm9pZCAwIT09ZS5lYXNlKXN3aXRjaChuKz0iYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjoiLGUuZWFzZSl7Y2FzZSJlYXNlSW4iOm4rPSJlYXNlLWluOyI7YnJlYWs7Y2FzZSJlYXNlT3V0IjpuKz0iZWFzZS1vdXQ7IjticmVhaztjYXNlImVhc2VJbk91dCI6bis9ImVhc2UtaW4tb3V0OyI7YnJlYWs7Y2FzZSJib3VuY2VGaW4iOm4rPSJjdWJpYy1iZXppZXIoMC4zNCwxLjYxLDAuNywxKTsiO2JyZWFrO2RlZmF1bHQ6bis9IiI9PT1lLmVhc2UudHJpbSgpPyJsaW5lYXI7IjplLmVhc2UrIjsifXJldHVybiBufWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX19nZW5lcmF0ZUtleWZyYW1lc19fZ2V0RmluYWxDc3ModCxlLG4pe3ZhciBpPSIiLGE9dC51bmlxdWVJRCxyPSIudC1zYnMtYW5pbV9zdGFydGVkICMiK3QudW5pcXVlSUQsbzsicHVibGlzaGVkIiE9PXdpbmRvdy50aWxkYW1vZGUmJih0LnRpbWVEdXJhdGlvbj1lLnRpbWVEdXJhdGlvbiksaSs9cisiIHtcbmFuaW1hdGlvbjogIithKyIgIisoMD09PWUudGltZUR1cmF0aW9uPzFlLTU6ZS50aW1lRHVyYXRpb24pKyJzIjt2YXIgcz10Lmxvb3AmJi0xIT09dC5sb29wLmluZGV4T2YoImxvb3AiKTtyZXR1cm4gcyYmKGkrPSIgaW5maW5pdGUiKSxpKz0iIGxpbmVhciIscz8ibG9vcHdpdGhyZXZlcnNlIj09PXQubG9vcCYmKGkrPSIgYWx0ZXJuYXRlIik6aSs9IiBmb3J3YXJkcyIsaSs9IjtcbmJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuQGtleWZyYW1lcyAiK2ErIiB7XG4iK24rIn1cblxuIn1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19fZ2VuZXJhdGVLZXlmcmFtZXNfX2dldFJldmVyc2VBbmltKHQpe3ZhciBlPXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0bi1ncm91cCIpLG49ZT8iZGF0YS1ncm91cC1pZCI6ImRhdGEtZWxlbS1pZCIsaT10LmdldEF0dHJpYnV0ZShuKXx8dC5pZCxhPWU/J1tkYXRhLWdyb3VwLWlkPSInK2krJyJdJzonW2RhdGEtZWxlbS1pZD0iJytpKyciXScscixvPSIiO3JldHVybiBvKz0iIyIrKHQuY2xvc2VzdCgiLnQtcmVjIik/dC5jbG9zZXN0KCIudC1yZWMiKS5nZXRBdHRyaWJ1dGUoImlkIik6IiIpKyIgIixvKz1hKyIudC1zYnMtYW5pbV9zdGFydGVkLnQtc2JzLWFuaW1fcmV2ZXJzZWQgLnRuLWF0b21fX3Nicy1hbmltLXdyYXBwZXIgIixvKz0ie1xuLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlO1xuYW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTtcbn1cblxuIn1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19fZ2V0QW5pbU9wdGlvbnModCxlLG4pe2lmKCF0KXJldHVybiIiO3ZhciBpPVsic2JzIiwib3B0cyJdO258fChuPSJlZGl0Ij09PWU/aS5qb2luKCIiKTppLmpvaW4oIi0iKSk7dmFyIGE9ImVkaXQiPT09ZT8iZmllbGQiOiJhbmltYXRlIixyPSJlZGl0Ij09PWU/Ii12YWx1ZSI6IiIsbz0iZWRpdCI9PT1lPyJkYXRhLWZpZWxkLWFuaW1tb2JpbGUtdmFsdWUiOiJkYXRhLWFuaW1hdGUtbW9iaWxlIixzPSJ5Ij09PXQuZ2V0QXR0cmlidXRlKG8pLGwsXz10X2FuaW1hdGlvblNCU19fZ2V0UmVzT3B0cyh0LmNsb3Nlc3QoIi50Mzk2X19hcnRib2FyZCIpKSxjPXRfYW5pbWF0aW9uU0JTX19nZW5lcmF0ZUF0dHIoYSxuLHIsITEpO2lmKF8ucmVzPT09Xy5yZXNNYXgpcmV0dXJuIHQuZ2V0QXR0cmlidXRlKGMpO2lmKCFzJiYiZWRpdCIhPT1lJiZfLnJlczwxMjAwKXJldHVybiB0LnN0eWxlLnRyYW5zaXRpb249Im5vbmUiLHQuY2xhc3NMaXN0LnJlbW92ZSgidDM5Nl9fZWxlbS0tYW5pbS1oaWRkZW4iKSwiIjt2YXIgbT10X2FuaW1hdGlvblNCU19fZ2VuZXJhdGVBdHRyKGEsbixyLF8ucmVzKSxkPXQuZ2V0QXR0cmlidXRlKG0pO3JldHVybiBkfHwoXy5icmVha3BvaW50cy5mb3JFYWNoKChmdW5jdGlvbihlKXtpZighKGU8PV8ucmVzfHxkKSl7dmFyIGk9dF9hbmltYXRpb25TQlNfX2dlbmVyYXRlQXR0cihhLG4scixlKTtkPXQuZ2V0QXR0cmlidXRlKGkpfX0pKSxkfHx0LmdldEF0dHJpYnV0ZShjKXx8IiIpfWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX19nZW5lcmF0ZUF0dHIodCxlLG4saSl7dmFyIGE9ImRhdGEtIit0KyItIitlO3JldHVybiBpJiYoYSs9Ii1yZXMtIitpKSxhKz1ufWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX19nZXRSZXNPcHRzKHQpe2lmKCF3aW5kb3cudG4pe3ZhciBlPVsxMjAwLDk2MCw2NDAsNDgwLDMyMF0sbixpPXdpbmRvdy5pbm5lcldpZHRoO3JldHVybiBlLmZvckVhY2goKGZ1bmN0aW9uKHQpe258fGk+PXQmJihuPXQpfSkpLHtyZXM6bnx8MzIwLHJlc01heDoxMjAwLGJyZWFrcG9pbnRzOlszMjAsNDgwLDY0MCw5NjBdfX12YXIgYT10P3QuZ2V0QXR0cmlidXRlKCJkYXRhLWFydGJvYXJkLXJlY2lkIik6IiI7cmV0dXJuIGEmJndpbmRvdy50blsiYWIiK2FdP3tyZXM6d2luZG93LnQzOTZfZGV0ZWN0UmVzb2x1dGlvbj90Mzk2X2RldGVjdFJlc29sdXRpb24oYSk6d2luZG93LnRuWyJhYiIrYV0uY3VyUmVzb2x1dGlvbixyZXNNYXg6d2luZG93LnRuWyJhYiIrYV0uY3VyUmVzb2x1dGlvbl9tYXgsYnJlYWtwb2ludHM6d2luZG93LnRuWyJhYiIrYV0uc2NyZWVucy5zbGljZSgwLC0xKX06d2luZG93LnRuLnNjcmVlbnM/e3Jlczp3aW5kb3cudG4uY3VyUmVzb2x1dGlvbixyZXNNYXg6d2luZG93LnRuLnRvcFJlc29sdXRpb24sYnJlYWtwb2ludHM6d2luZG93LnRuLnNjcmVlbnMuc2xpY2UoMCwtMSl9OntyZXM6d2luZG93LnRuLmN1clJlc29sdXRpb24scmVzTWF4OjEyMDAsYnJlYWtwb2ludHM6WzMyMCw0ODAsNjQwLDk2MF19fWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX19jYWNoZUFuZFNldERhdGEodCl7dC5lbGVtZW50cy5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgbj1lLmNsb3Nlc3QoIi50Mzk2X19hcnRib2FyZCIpO2lmKCJzY3JvbGwiIT09ZS5hbmltVHlwZXx8IW58fCJmaXhlZCIhPT10Mzk2X2FiX19nZXRGaWVsZFZhbHVlKG4sInBvcyIpKXt2YXIgaT10LmlzRWRpdE1vZGU/ImRhdGEtZmllbGQtc2JzZXZlbnQtdmFsdWUiOiJkYXRhLWFuaW1hdGUtc2JzLWV2ZW50IjtlLmFuaW1UeXBlPWUuZ2V0QXR0cmlidXRlKGkpO3ZhciBhPXQuaXNFZGl0TW9kZT8iZGF0YS1maWVsZC1zYnN0cmctdmFsdWUiOiJkYXRhLWFuaW1hdGUtc2JzLXRyZyI7ZS50cmlnZ2VyPXBhcnNlRmxvYXQoZS5nZXRBdHRyaWJ1dGUoYSkpLGlzTmFOKGUudHJpZ2dlcikmJihlLnRyaWdnZXI9MSksZS50cmlnZ2VyRWxlbXM9dF9hbmltYXRpb25TQlNfX2dldEFuaW1PcHRpb25zKGUsInB1Ymxpc2hlZCIsInNicy10cmdlbHMiKSxlLndyYXBwZXJFbD1lLnF1ZXJ5U2VsZWN0b3IoIi50bi1hdG9tX19zYnMtYW5pbS13cmFwcGVyIik7dmFyIHI9dF9hbmltYXRpb25TQlNfX2dldEFuaW1PcHRpb25zKGUsdC5pc0VkaXRNb2RlPyJlZGl0IjoicHVibGlzaGVkIixudWxsKTtpZihlLnN0YXR1cz1yPyJhY3RpdmUiOiJpbm5hY3RpdmUiLCJpbm5hY3RpdmUiIT09ZS5zdGF0dXMpey0xIT09ci5pbmRleE9mKCJmaXhlZCIpJiYoZS56SW5kZXg9Z2V0Q29tcHV0ZWRTdHlsZShlKS5nZXRQcm9wZXJ0eVZhbHVlKCJ6LWluZGV4IikpLHI9ci5yZXBsYWNlKC8nL2csJyInKSx0X2FuaW1hdGlvblNCU19fYWRkRGVsYXlUb1N0ZXBzKHI9SlNPTi5wYXJzZShyKSk7dmFyIG89dC5pc0VkaXRNb2RlPyJkYXRhLWZpZWxkLXNic2xvb3AtdmFsdWUiOiJkYXRhLWFuaW1hdGUtc2JzLWxvb3AiO2UubG9vcD1lLmdldEF0dHJpYnV0ZShvKXx8IiIsdF9hbmltYXRpb25TQlNfX3NldEFuZENhY2hlRWxUb3BQb3MoZSx0KTt2YXIgcz10X2FuaW1hdGlvblNCU19fZ2V0Wm9vbShlKTtlLnN0ZXBzPVtdO3ZhciBsPTA7ci5mb3JFYWNoKChmdW5jdGlvbih0LG4pe3ZhciBpPXtzdGF0ZToidW5hY3RpdmUifTtpLnN0eWxlcz10X2FuaW1hdGlvblNCU19fY3JlYXRlU3RlcFN0eWxlcyh0KSwic2Nyb2xsIj09PWUuYW5pbVR5cGU/KGkucHJldlVuZml4ZWREaXN0PWwsaS5kaXN0PXQuZGkqcywhMT09PWkuc3R5bGVzLmZpeCYmKGwrPWkuZGlzdCksaS5zdGFydD0wPT09bj9lLnRvcE9mZnNldDplLnN0ZXBzW24tMV0uZW5kLGkuZW5kPWkuc3RhcnQraS5kaXN0KTooaS50aW1lPXQudGksaS5lYXNlPXQuZWEpLGUuc3RlcHMucHVzaChpKX0pKSxlLndyYXBwZXJFbCYmIWUud3JhcHBlckVsLmlkJiZ0X2FuaW1hdGlvblNCU19fZ2VuZXJhdGVVbmlxdWVJREZvckVsKGUpLHRfYW5pbWF0aW9uU0JTX191cGRhdGVJbmZvT25JbWdMb2FkKGUsdCksdF9hbmltYXRpb25TQlNfX3VwZGF0ZU1vdmVBbmRSb3RhdGVTdGVwc1N0eWxlcyhlLnN0ZXBzKX19fSkpO3ZhciBlPXQuZWxlbWVudHMuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4iaW5uYWN0aXZlIj09PXQuc3RhdHVzJiYodC53cmFwcGVyRWwmJnQud3JhcHBlckVsLnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKSx0LndyYXBwZXJFbCYmKHQud3JhcHBlckVsLnN0eWxlLmRpc3BsYXk9InRhYmxlIiksdC53cmFwcGVyRWwmJih0LndyYXBwZXJFbC5zdHlsZS53aWR0aD0iaW5oZXJpdCIpLHQud3JhcHBlckVsJiYodC53cmFwcGVyRWwuc3R5bGUuaGVpZ2h0PSJpbmhlcml0IikpLCJpbm5hY3RpdmUiIT09dC5zdGF0dXN9KSk7dF9hbmltYXRpb25TQlNfX3VwZGF0ZUFuaW1hdGVkT2JqZWN0U3RhdGUodCwiZWxlbWVudHMiLGUpfWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX19nZW5lcmF0ZVVuaXF1ZUlERm9yRWwodCl7dmFyIGU9dC5jbG9zZXN0KCIudDM5Nl9fYXJ0Ym9hcmQsIC50bi1hcnRib2FyZCIpLG49IiI7ZSYmKG49ZS5nZXRBdHRyaWJ1dGUoImRhdGEtcmVjb3JkLWlkIil8fGUuZ2V0QXR0cmlidXRlKCJkYXRhLWFydGJvYXJkLXJlY2lkIikpO3ZhciBpPXQuZ2V0QXR0cmlidXRlKCJkYXRhLWVsZW0taWQiKXx8dC5nZXRBdHRyaWJ1dGUoImRhdGEtZ3JvdXAtaWQiKXx8dC5pZDt0LnVuaXF1ZUlEPSJzYnMtIituKyItIitpLHQud3JhcHBlckVsLmlkPXQudW5pcXVlSUR9ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX3VwZGF0ZUluZm9PbkltZ0xvYWQodCxlKXt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoImltZyIpO24mJihuLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLChmdW5jdGlvbigpe3RfYW5pbWF0aW9uU0JTX191cGRhdGVWYWx1ZXNBdGVySU1HTG9hZGluZyh0LGUpfSkpLG4uY29tcGxldGUmJnRfYW5pbWF0aW9uU0JTX191cGRhdGVWYWx1ZXNBdGVySU1HTG9hZGluZyh0LGUpKX1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19fdXBkYXRlVmFsdWVzQXRlcklNR0xvYWRpbmcodCxlKXt0X2FuaW1hdGlvblNCU19fc2V0QW5kQ2FjaGVFbFRvcFBvcyh0LGUpLCJzY3JvbGwiPT09dC5hbmltVHlwZSYmdF9hbmltYXRpb25TQlNfX3VwZGF0ZVN0ZXBzVmFsdWVzKHQpfWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX191cGRhdGVTdGVwc1ZhbHVlcyh0KXt0LnN0ZXBzLmZvckVhY2goKGZ1bmN0aW9uKGUsbil7ZS5zdGFydD0wPT09bj90LnRvcE9mZnNldDp0LnN0ZXBzW24tMV0uZW5kLGUuZW5kPWUuc3RhcnQrZS5kaXN0fSkpfWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX19zZXRBbmRDYWNoZUVsVG9wUG9zKHQsZSl7dmFyIG49dF9hbmltYXRpb25TQlNfX2dldFpvb20odCksaSxhPVsic2Nyb2xsIiwiaW50b3ZpZXciLCJibG9ja2ludG92aWV3Il0uZXZlcnkoKGZ1bmN0aW9uKGUpe3JldHVybiB0LmFuaW1UeXBlIT09ZX0pKTtpZighZS5pc0VkaXRNb2RlJiYhYSl7dmFyIHI9cGFyc2VJbnQodC5zdHlsZS50b3AsMTApO051bWJlci5pc05hTihyKSYmKHI9dC5vZmZzZXRUb3ApO3ZhciBvPXQuY2xvc2VzdCgiLnQzOTZfX2dyb3VwIik7byYmbyE9PXQmJihyKz1wYXJzZUludChvLnN0eWxlLnRvcCwxMCl8fDApLCJzY3JvbGwiIT09dC5hbmltVHlwZSYmImludG92aWV3IiE9PXQuYW5pbVR5cGV8fHdpbmRvdy5pc09ubHlTY2FsYWJsZXx8KHIqPW4pO3ZhciBzPXQuY2xvc2VzdCgiLnIiKSxsPXM/cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3Ard2luZG93LnBhZ2VZT2Zmc2V0OjAsXz1zJiZwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHMpLnBhZGRpbmdUb3AsMTApfHwwO3QucGFyZW50UmVjVG9wUG9zPWwsdC50b3BPZmZzZXQ9bCtyK18sdF9hbmltYXRpb25TQlNfX3NldFNjYWxlZERpZmZlcmVuY2UodCxuKSx0X2FuaW1hdGlvblNCU19fc2V0VHJpZ2dlck9mZnNldCh0KX19ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX3NldFNjYWxlZERpZmZlcmVuY2UodCxlKXtpZighdC5zY2FsZWREaWZmZXJlbmNlJiZ3aW5kb3cuaXNPbmx5U2NhbGFibGUmJiJmaXhlZCIhPT10LndyYXBwZXJFbC5zdHlsZS5wb3NpdGlvbil7dmFyIG49dC53cmFwcGVyRWw/dC53cmFwcGVyRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0OjAsaT1NYXRoLmFicygobiplLW4pLzIpO2k9TWF0aC5yb3VuZChpKSx0LnNjYWxlZERpZmZlcmVuY2U9aX19ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX2FkZERlbGF5VG9TdGVwcyh0KXtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKyl7dmFyIG49dFtlXTtpZigwIT09ZSYmKHBhcnNlSW50KG4uZGQsMTApfHxwYXJzZUludChuLmR0LDEwKSkpe3ZhciBpPU9iamVjdC5jcmVhdGUodFtlLTFdKTt2b2lkIDAhPT1uLmR0P2kudGk9bi5kdDppLmRpPW4uZGQsdC5zcGxpY2UoZSwwLGkpLGUrK319fWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX191cGRhdGVNb3ZlQW5kUm90YXRlU3RlcHNTdHlsZXModCl7dmFyIGU9dFswXS5zdHlsZXMubW92ZVgsbj10WzBdLnN0eWxlcy5tb3ZlWSxpPXRbMF0uc3R5bGVzLnJvdGF0ZTt0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBhPXQuc3R5bGVzO2EubW92ZVgtPWUsZSs9YS5tb3ZlWCxhLm1vdmVZLT1uLG4rPWEubW92ZVksYS5yb3RhdGUtPWksaSs9YS5yb3RhdGV9KSl9ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX2NyZWF0ZVN0ZXBTdHlsZXModCl7cmV0dXJue21vdmVYOnBhcnNlSW50KHQubXgsMTApfHwwLG1vdmVZOnBhcnNlSW50KHQubXksMTApfHwwLHNjYWxlWDppc05hTihwYXJzZUZsb2F0KHQuc3gpKT8xOnBhcnNlRmxvYXQodC5zeCksc2NhbGVZOmlzTmFOKHBhcnNlRmxvYXQodC5zeSkpPzE6cGFyc2VGbG9hdCh0LnN5KSxvcGFjaXR5OmlzTmFOKHBhcnNlRmxvYXQodC5vcCkpPzE6cGFyc2VGbG9hdCh0Lm9wKSxyb3RhdGU6cGFyc2VJbnQodC5ybywxMCl8fDAsYmx1cjpwYXJzZUludCh0LmJsLDEwKXx8MCxmaXg6ImZpeGVkIj09PXQuZml9fWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX19zZXRUcmlnZ2VyT2Zmc2V0KHQpe3ZhciBlPXdpbmRvdy5pbm5lckhlaWdodCxuPXRfYW5pbWF0aW9uU0JTX19nZXRab29tKHQpO3QudHJpZ2dlck9mZnNldD1wYXJzZUludCh0X2FuaW1hdGlvblNCU19fZ2V0QW5pbU9wdGlvbnModCwicHVibGlzaGVkIiwic2JzLXRyZ29mc3QiKSwxMCksKHdpbmRvdy5pc09ubHlTY2FsYWJsZXx8InNjcm9sbCI9PT10LmFuaW1UeXBlKSYmKHQudHJpZ2dlck9mZnNldCo9biksdC50cmlnZ2VyT2Zmc2V0fHwodC50cmlnZ2VyT2Zmc2V0PTApLC41IT09dC50cmlnZ2VyJiYxIT09dC50cmlnZ2VyfHwodC50cmlnZ2VyT2Zmc2V0Kz1lKnQudHJpZ2dlciwoImludG92aWV3Ij09PXQuYW5pbVR5cGV8fCJzY3JvbGwiPT09dC5hbmltVHlwZSkmJnQudHJpZ2dlck9mZnNldD50LnRvcE9mZnNldCYmdC50cmlnZ2VyT2Zmc2V0PD1lKnQudHJpZ2dlciYmKHQudHJpZ2dlck9mZnNldD10LnRvcE9mZnNldCx0LnNjYWxlZERpZmZlcmVuY2UmJih0LnRyaWdnZXJPZmZzZXQ8MHx8dC50cmlnZ2VyT2Zmc2V0PT09dC5zY2FsZWREaWZmZXJlbmNlKSYmKHQuc2NhbGVkRGlmZmVyZW5jZT0wKSksImJsb2NraW50b3ZpZXciPT09dC5hbmltVHlwZSYmdC50cmlnZ2VyT2Zmc2V0PnQucGFyZW50UmVjVG9wUG9zJiZ0LnRyaWdnZXJPZmZzZXQ8PWUqdC50cmlnZ2VyJiYodC50cmlnZ2VyT2Zmc2V0PXQucGFyZW50UmVjVG9wUG9zKSl9ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX3RyaWdnZXJOb1Njcm9sbEFuaW1hdGlvbih0LGUpe3RfYW5pbWF0aW9uU0JTX19wcm9jZXNzRWxzSW50b1ZpZXcodCxlKSx0X2FuaW1hdGlvblNCU19fcmVtb3ZlSG92ZXJDbGlja1RyaWdnZXJzKHQpLHRfYW5pbWF0aW9uU0JTX19pbml0Q2xpY2tUcmlnZ2Vycyh0KSx0X2FuaW1hdGlvblNCU19faW5pdEhvdmVyVHJpZ2dlcnModCl9ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX3Byb2Nlc3NFbHNJbnRvVmlldyh0LGUpe3RfYW5pbWF0aW9uU0JTX191cGRhdGVJbnRvVmlld0Vsc1N0YXRlKGUpO3ZhciBuPTA7dF9hbmltYXRpb25TQlNfX3NldEtleUZvckFuaW1hdGVkT2JqZWN0KHQsIm9uU2Nyb2xsVXBkYXRlRWxzSW50b1ZpZXciLChmdW5jdGlvbigpe258fChuPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dF9hbmltYXRpb25TQlNfX3VwZGF0ZUludG9WaWV3RWxzU3RhdGUoZSksbj0wfSksMjAwKSl9KSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdC5vblNjcm9sbFVwZGF0ZUVsc0ludG9WaWV3KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0Lm9uU2Nyb2xsVXBkYXRlRWxzSW50b1ZpZXcpfWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX19yZW1vdmVIb3ZlckNsaWNrVHJpZ2dlcnModCl7dmFyIGU9WyJqcy1zYnMtYW5pbS10cmlnZ2VyX2NsaWNrIiwianMtc2JzLWFuaW0tdHJpZ2dlcl9ob3ZlciJdLG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLiIrZS5qb2luKCIsIC4iKSk7bi5sZW5ndGgmJigobj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChuKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZS5mb3JFYWNoKChmdW5jdGlvbihlKXt0LmNsYXNzTGlzdC5yZW1vdmUoZSl9KSl9KSksdC5jbGlja2VkVHJpZ2dlckVscy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0X2FuaW1hdGlvblNCU19faW5pdENsaWNrQ2FsbGJhY2spLHRfYW5pbWF0aW9uU0JTX19yZW1vdmVUcmlnZ2VyTGlzdCh0LCJjbGljayIpfSkpLHQuaG92ZXJUcmlnZ2VyRWxzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRfYW5pbWF0aW9uU0JTX19pbml0SG92ZXJUcmlnZ2VyKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLHRfYW5pbWF0aW9uU0JTX19pbml0SG92ZXJUcmlnZ2VyKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRfYW5pbWF0aW9uU0JTX19pbml0SG92ZXJUcmlnZ2VyKSx0X2FuaW1hdGlvblNCU19fcmVtb3ZlVHJpZ2dlckxpc3QodCwiaG92ZXIiKX0pKSx0X2FuaW1hdGlvblNCU19fdXBkYXRlQW5pbWF0ZWRPYmplY3RTdGF0ZSh0LCJjbGlja2VkVHJpZ2dlckVscyIsW10pLHRfYW5pbWF0aW9uU0JTX191cGRhdGVBbmltYXRlZE9iamVjdFN0YXRlKHQsImhvdmVyVHJpZ2dlckVscyIsW10pKX1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19fcmVtb3ZlVHJpZ2dlckxpc3QodCxlKXt0WyJ0cmlnZ2VyTGlzdC1vbi0iK2VdJiYodFsidHJpZ2dlckxpc3Qtb24tIitlXT1bXSksdFsidHJpZ2dlck9uY2VMaXN0LW9uLSIrZV0mJih0WyJ0cmlnZ2VyT25jZUxpc3Qtb24tIitlXT1bXSl9ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX2luaXRDbGlja1RyaWdnZXJzKHQpe3ZhciBlPXQuZWxlbWVudHMuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4iY2xpY2siPT09dC5nZXRBdHRyaWJ1dGUoImRhdGEtYW5pbWF0ZS1zYnMtZXZlbnQiKX0pKTtpZihlLmxlbmd0aCl7dF9hbmltYXRpb25TQlNfX2Nvbm5lY3RUcmlnZ2Vyc1dpdGhBbmltRWxzKGUpO3ZhciBuPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1zYnMtYW5pbS10cmlnZ2VyX2NsaWNrIikpO2lmKG4ubGVuZ3RoKXtpZighZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImpzLXNicy1hbmltLXRyaWdnZXItc3R5bGVzIikpe3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7aS5pZD0ianMtc2JzLWFuaW0tdHJpZ2dlci1zdHlsZXMiLGkudGV4dENvbnRlbnQ9Ii5qcy1zYnMtYW5pbS10cmlnZ2VyX2NsaWNrIHsgY3Vyc29yOiBwb2ludGVyOyB9Iixkb2N1bWVudC5oZWFkLmluc2VydEFkamFjZW50RWxlbWVudCgiYmVmb3JlZW5kIixpKX10LmNsaWNrZWRUcmlnZ2VyRWxzPW4sbi5mb3JFYWNoKChmdW5jdGlvbih0KXt0X2FuaW1hdGlvblNCU19fcHJldmVudEFuaW1hdGVkUGFyZW50VHJpZ2dlcih0KSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0X2FuaW1hdGlvblNCU19faW5pdENsaWNrQ2FsbGJhY2spLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRfYW5pbWF0aW9uU0JTX19pbml0Q2xpY2tDYWxsYmFjayl9KSl9fX1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19faW5pdENsaWNrQ2FsbGJhY2soKXt2YXIgdD10aGlzWyJ0cmlnZ2VyTGlzdC1vbi1jbGljayJdfHxbXSxlPXRoaXNbInRyaWdnZXJPbmNlTGlzdC1vbi1jbGljayJdfHxbXTsodC5sZW5ndGh8fGUubGVuZ3RoKSYmKHRfYW5pbWF0aW9uU0JTX19wbGF5T25jZUFuaW1hdGlvbih0aGlzLGUsImNsaWNrIiksdC5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmNsYXNzTGlzdC5jb250YWlucygidC1zYnMtYW5pbV9zdGFydGVkIikmJiF0LmNsYXNzTGlzdC5jb250YWlucygidC1zYnMtYW5pbV9yZXZlcnNlZCIpP3RfYW5pbWF0aW9uU0JTX19zZXRBY3Rpb25PbkVuZCh0KTp0X2FuaW1hdGlvblNCU19fc2V0QWN0aW9uT25TdGFydCh0KX0pKSl9ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX3BsYXlPbmNlQW5pbWF0aW9uKHQsZSxuKXtpZihlJiZlLmxlbmd0aCl7dF9hbmltYXRpb25TQlNfX2FjdGlvbk9uU3RhcnQoZSk7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iik7aS5pbml0RXZlbnQoInVwZGF0ZUFuaW1PbmNlIiwhMCwhMCksZS5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmRpc3BhdGNoRXZlbnQoaSl9KSksdFsidHJpZ2dlck9uY2VMaXN0LW9uLSIrbl09W119fWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX19pbml0SG92ZXJUcmlnZ2Vycyh0KXt2YXIgZT10LmVsZW1lbnRzLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuImhvdmVyIj09PXQuZ2V0QXR0cmlidXRlKCJkYXRhLWFuaW1hdGUtc2JzLWV2ZW50Iil9KSk7aWYoZS5sZW5ndGgpe3RfYW5pbWF0aW9uU0JTX19jb25uZWN0VHJpZ2dlcnNXaXRoQW5pbUVscyhlKTt2YXIgbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuanMtc2JzLWFuaW0tdHJpZ2dlcl9ob3ZlciIpO249QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobiksdC5ob3ZlclRyaWdnZXJFbHM9bixuLmZvckVhY2goKGZ1bmN0aW9uKHQpe3RfYW5pbWF0aW9uU0JTX19wcmV2ZW50QW5pbWF0ZWRQYXJlbnRUcmlnZ2VyKHQpLHdpbmRvdy5hbmltYXRpb25TQlNfX2lzSU9TPyh0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0X2FuaW1hdGlvblNCU19faW5pdEhvdmVyVHJpZ2dlciksdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdF9hbmltYXRpb25TQlNfX2luaXRIb3ZlclRyaWdnZXIpKToodC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIix0X2FuaW1hdGlvblNCU19faW5pdEhvdmVyVHJpZ2dlciksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0X2FuaW1hdGlvblNCU19faW5pdEhvdmVyVHJpZ2dlciksdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIix0X2FuaW1hdGlvblNCU19faW5pdEhvdmVyVHJpZ2dlciksdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0X2FuaW1hdGlvblNCU19faW5pdEhvdmVyVHJpZ2dlcikpfSkpfX1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19fcHJldmVudEFuaW1hdGVkUGFyZW50VHJpZ2dlcih0KXtpZigibm9uZSIhPT1nZXRDb21wdXRlZFN0eWxlKHQpLnBvaW50ZXJFdmVudHMpe3ZhciBlPXQucXVlcnlTZWxlY3RvcigiLnRuLW1vbGVjdWxlLCAudG4tYXRvbSIpO2UmJih0LnN0eWxlLnBvaW50ZXJFdmVudHM9Im5vbmUiLGUuc3R5bGUucG9pbnRlckV2ZW50cz0iYXV0byIpfX1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19faW5pdEhvdmVyVHJpZ2dlcih0KXt2YXIgZT10LmN1cnJlbnRUYXJnZXQsbj10LmN1cnJlbnRUYXJnZXRbInRyaWdnZXJMaXN0LW9uLWhvdmVyIl0saT10LmN1cnJlbnRUYXJnZXRbInRyaWdnZXJPbmNlTGlzdC1vbi1ob3ZlciJdO2Z1bmN0aW9uIGEodCl7ZS5jbG9zZXN0KCIudDM5Nl9fZWxlbSIpIT09dC50YXJnZXQuY2xvc2VzdCgiLnQzOTZfX2VsZW0iKSYmKHRfYW5pbWF0aW9uU0JTX19hY3Rpb25PbkVuZChuKSxlLmNsYXNzTGlzdC5yZW1vdmUoInQtaG92ZXItbW9iLWFjdGl2ZSIpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixhKSl9KG4mJm4ubGVuZ3RofHxpJiZpLmxlbmd0aCkmJih0X2FuaW1hdGlvblNCU19fcGxheU9uY2VBbmltYXRpb24oZSxpLCJob3ZlciIpLG4mJm4ubGVuZ3RoJiYoIm1vdXNlZW50ZXIiPT09dC50eXBlJiZ0X2FuaW1hdGlvblNCU19fYWN0aW9uT25TdGFydChuKSwibW91c2VsZWF2ZSI9PT10LnR5cGUmJnRfYW5pbWF0aW9uU0JTX19hY3Rpb25PbkVuZChuKSwiY2xpY2siPT09dC50eXBlJiYoZS5jbGFzc0xpc3QuY29udGFpbnMoInQtaG92ZXItbW9iLWFjdGl2ZSIpfHwoc2V0VGltZW91dCgoZnVuY3Rpb24oKXt0X2FuaW1hdGlvblNCU19fYWN0aW9uT25TdGFydChuKSxlLmNsYXNzTGlzdC5hZGQoInQtaG92ZXItbW9iLWFjdGl2ZSIpfSkpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGEpfSkpKSkpKX1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19fY29ubmVjdFRyaWdnZXJzV2l0aEFuaW1FbHModCl7dmFyIGU9dFswXS5nZXRBdHRyaWJ1dGUoImRhdGEtYW5pbWF0ZS1zYnMtZXZlbnQiKTt0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBuPXQudHJpZ2dlckVsZW1zO2lmKG4pe3ZhciBpPW4/bi5zcGxpdCgiLCIpOltdLGE9dC5jbG9zZXN0KCIudDM5Nl9fYXJ0Ym9hcmQiKSxyPWE/YS5nZXRBdHRyaWJ1dGUoImRhdGEtYXJ0Ym9hcmQtcmVjaWQiKToiIjtpLmZvckVhY2goKGZ1bmN0aW9uKG4pe3ZhciBpPXIrbixhO3RfYW5pbWF0aW9uU0JTX19wcm9jZXNzVHJpZ2dlcnNFbGVtTGlzdChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudG4tZWxlbV9fIitpKyIsIC50bi1ncm91cF9fIitpKSx0LGUpfSkpfWVsc2V7dmFyIG87dF9hbmltYXRpb25TQlNfX3Byb2Nlc3NUcmlnZ2Vyc0VsZW1MaXN0KHQucXVlcnlTZWxlY3RvcigiLnRuLWF0b21fX3Nicy1hbmltLXdyYXBwZXIiKSx0LGUpfX0pKX1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19fcHJvY2Vzc1RyaWdnZXJzRWxlbUxpc3QodCxlLG4pe3ZhciBpO3QmJigib25jZSI9PT1lLmxvb3A/ZS5jbGFzc0xpc3QuY29udGFpbnMoInQtc2JzLWFuaW1fc3RhcnRlZCIpfHx0X2FuaW1hdGlvblNCU19faW5pdFRyaWdnZXJzTGlzdCh0LCJ0cmlnZ2VyT25jZUxpc3QiLG4sZSk6dF9hbmltYXRpb25TQlNfX2luaXRUcmlnZ2Vyc0xpc3QodCwidHJpZ2dlckxpc3QiLG4sZSkpfWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX19pbml0VHJpZ2dlcnNMaXN0KHQsZSxuLGkpe3RbZSsiLW9uLSIrbl0/LTE9PT10W2UrIi1vbi0iK25dLmluZGV4T2YoaSkmJnRbZSsiLW9uLSIrbl0ucHVzaChpKTp0W2UrIi1vbi0iK25dPVtpXSx0W2UrIi1vbi0iK25dLmxlbmd0aCYmIXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJqcy1zYnMtYW5pbS10cmlnZ2VyXyIrbikmJnQuY2xhc3NMaXN0LmFkZCgianMtc2JzLWFuaW0tdHJpZ2dlcl8iK24pLGkuYWRkRXZlbnRMaXN0ZW5lcigidXBkYXRlQW5pbU9uY2UiLChmdW5jdGlvbigpe3RbZSsiLW9uLSIrbl09dFtlKyItb24tIituXS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0IT09aX0pKSx0WyJ0cmlnZ2VyTGlzdC1vbi0iK25dJiZ0WyJ0cmlnZ2VyTGlzdC1vbi0iK25dLmxlbmd0aHx8dC5jbGFzc0xpc3QucmVtb3ZlKCJqcy1zYnMtYW5pbS10cmlnZ2VyXyIrbil9KSl9ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX2FjdGlvbk9uU3RhcnQodCl7dC5mb3JFYWNoKHRfYW5pbWF0aW9uU0JTX19zZXRBY3Rpb25PblN0YXJ0KX1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19fc2V0QWN0aW9uT25TdGFydCh0KXt0LmNsYXNzTGlzdC5jb250YWlucygidC1zYnMtYW5pbV9wbGF5aW5nIik/dC5zZXRBdHRyaWJ1dGUoImRhdGEtcGxhbm5lZC1kaXIiLCJwbGF5Iik6dF9hbmltYXRpb25TQlNfX3BsYXlBbmltYXRpb24odCwhMSl9ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX2FjdGlvbk9uRW5kKHQpe3QuZm9yRWFjaCh0X2FuaW1hdGlvblNCU19fc2V0QWN0aW9uT25FbmQpfWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX19zZXRBY3Rpb25PbkVuZCh0KXt2YXIgZT10Lmxvb3Asbj0ibm9yZXZlcnNlIj09PWUmJiJob3ZlciI9PT10LmdldEF0dHJpYnV0ZSgiZGF0YS1hbmltYXRlLXNicy1ldmVudCIpO2UmJi0xIT09ZS5pbmRleE9mKCJsb29wIik/dC5hZGRFdmVudExpc3RlbmVyKCJhbmltYXRpb25pdGVyYXRpb24iLHRfYW5pbWF0aW9uU0JTX19zZXRJdGVyYXRpb25BbmltYXRpb24pOnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LXNicy1hbmltX3BsYXlpbmciKSYmIW4/dC5zZXRBdHRyaWJ1dGUoImRhdGEtcGxhbm5lZC1kaXIiLCJyZXZlcnNlIik6bnx8dF9hbmltYXRpb25TQlNfX3BsYXlBbmltYXRpb24odCwhMCl9ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX3NldEl0ZXJhdGlvbkFuaW1hdGlvbih0KXt2YXIgZT10LnRhcmdldC5jbG9zZXN0KCIudDM5Nl9fZWxlbSIpO2lmKGUpe2lmKCJsb29wd2l0aHJldmVyc2UiPT09ZS5sb29wKXt2YXIgbj10X2FuaW1hdGlvblNCU19fZ2V0QW5pbWF0aW9uRnVsbFRpbWUoZSwhMCksaSxhO2lmKDFlMyp0LmVsYXBzZWRUaW1lL24lMiE9MClyZXR1cm59ZS5jbGFzc0xpc3QucmVtb3ZlKCJ0LXNicy1hbmltX3N0YXJ0ZWQiKSxlLmNsYXNzTGlzdC5yZW1vdmUoInQtc2JzLWFuaW1fcmV2ZXJzZWQiKSxlLmNsYXNzTGlzdC5yZW1vdmUoInQtc2JzLWFuaW1fcGxheWluZyIpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYW5pbWF0aW9uaXRlcmF0aW9uIix0X2FuaW1hdGlvblNCU19fc2V0SXRlcmF0aW9uQW5pbWF0aW9uKX19ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX2FuaW1hdGlvbkVuZCh0KXt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImFuaW1hdGlvbmVuZCIsdF9hbmltYXRpb25TQlNfX2FuaW1hdGlvbkVuZGluZ0V2ZW50KSx0LmFkZEV2ZW50TGlzdGVuZXIoImFuaW1hdGlvbmVuZCIsdF9hbmltYXRpb25TQlNfX2FuaW1hdGlvbkVuZGluZ0V2ZW50KX1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19fYW5pbWF0aW9uRW5kaW5nRXZlbnQoKXt0aGlzLmNsYXNzTGlzdC5yZW1vdmUoInQtc2JzLWFuaW1fcGxheWluZyIpO3ZhciB0PXRoaXMuZ2V0QXR0cmlidXRlKCJkYXRhLXBsYW5uZWQtZGlyIik7InBsYXkiPT09dCYmdGhpcy5jbGFzc0xpc3QuY29udGFpbnMoInQtc2JzLWFuaW1fcmV2ZXJzZWQiKT90X2FuaW1hdGlvblNCU19fcGxheUFuaW1hdGlvbih0aGlzLCExKToicmV2ZXJzZSIhPT10fHx0aGlzLmNsYXNzTGlzdC5jb250YWlucygidC1zYnMtYW5pbV9yZXZlcnNlZCIpfHx0X2FuaW1hdGlvblNCU19fcGxheUFuaW1hdGlvbih0aGlzLCEwKSx0aGlzLnNldEF0dHJpYnV0ZSgiZGF0YS1wbGFubmVkLWRpciIsIiIpfWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX19nZXRBbmltYXRpb25GdWxsVGltZSh0LGUpe3ZhciBuLGk7cmV0dXJuIHQuZ2V0QXR0cmlidXRlKCJkYXRhLWFuaW1hdGUtc2JzLW9wdHMiKT9KU09OLnBhcnNlKHQuZ2V0QXR0cmlidXRlKCJkYXRhLWFuaW1hdGUtc2JzLW9wdHMiKS5zcGxpdCgiJyIpLmpvaW4oJyInKSkucmVkdWNlKChmdW5jdGlvbih0LG4pe3JldHVybiBlJiYodCs9cGFyc2VJbnQobi5kdCwxMCl8fDApLHQrKHBhcnNlSW50KG4udGksMTApfHwwKX0pLDApOjB9ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX3BsYXlBbmltYXRpb24odCxlKXt0LmNsYXNzTGlzdC5yZW1vdmUoInQtc2JzLWFuaW1fc3RhcnRlZCIpLGV8fHQuY2xhc3NMaXN0LnJlbW92ZSgidC1zYnMtYW5pbV9yZXZlcnNlZCIpLHRfYW5pbWF0aW9uU0JTX19mb3JjZVJlcGFpbnQodCk7dmFyIG49dF9hbmltYXRpb25TQlNfX2dldEFuaW1hdGlvbkZ1bGxUaW1lKHQsITEpLGk9WyJ0LXNicy1hbmltX3N0YXJ0ZWQiXTtlJiZpLnB1c2goInQtc2JzLWFuaW1fcmV2ZXJzZWQiKSxuPjAmJmkucHVzaCgidC1zYnMtYW5pbV9wbGF5aW5nIiksaS5mb3JFYWNoKChmdW5jdGlvbihlKXt0LmNsYXNzTGlzdC5hZGQoZSl9KSksdF9hbmltYXRpb25TQlNfX2FuaW1hdGlvbkVuZCh0KX1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19fZm9yY2VSZXBhaW50KHQpe3Qub2Zmc2V0V2lkdGh9ZnVuY3Rpb24gdF9hbmltYXRpb25TQlNfX3VwZGF0ZUludG9WaWV3RWxzU3RhdGUodCl7dCYmdC5sZW5ndGgmJnQuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9d2luZG93LnBhZ2VZT2Zmc2V0K3QudHJpZ2dlck9mZnNldCxuPSJibG9ja2ludG92aWV3Ij09PXQuYW5pbVR5cGU/ZT49dC5wYXJlbnRSZWNUb3BQb3M6ZT49dC50b3BPZmZzZXQsaT10LmNsb3Nlc3QoIi50Mzk2IikucGFyZW50RWxlbWVudCxhLHI9WyJ0Mzk3X19vZmYiLCJ0Mzk1X19vZmYiLCJ0NDAwX19vZmYiXS5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gaS5jbGFzc0xpc3QuY29udGFpbnModCl9KSk7biYmIXImJih0LmNsYXNzTGlzdC5jb250YWlucygidC1zYnMtYW5pbV9zdGFydGVkIil8fHQuY2xhc3NMaXN0LmFkZCgidC1zYnMtYW5pbV9zdGFydGVkIikpfSkpfWZ1bmN0aW9uIHRfYW5pbWF0aW9uU0JTX19nZXRab29tKHQpe2lmKHZvaWQgMCE9PXQuc2NhbGVGYWN0b3IpcmV0dXJuIHQuc2NhbGVGYWN0b3I7dmFyIGU9dC5jbG9zZXN0KCIudDM5Nl9fYXJ0Ym9hcmQiKTtpZighZSlyZXR1cm4gMTt2YXIgbj1lLmdldEF0dHJpYnV0ZSgiZGF0YS1hcnRib2FyZC1yZWNpZCIpO3JldHVybiBlLmNsYXNzTGlzdC5jb250YWlucygidDM5Nl9fYXJ0Ym9hcmRfc2NhbGUiKXx8IXdpbmRvdy5hbmltYXRpb25TQlNfX2lzT2xkUGFnZSYmInVuZGVmaW5lZCIhPXR5cGVvZiB0Mzk2X2FiX19nZXRGaWVsZFZhbHVlJiYid2luZG93Ij09PXQzOTZfYWJfX2dldEZpZWxkVmFsdWUoZSwidXBzY2FsZSIpP24mJndpbmRvdy50blsiYWIiK25dJiZ3aW5kb3cudG5bImFiIituXS5zY2FsZUZhY3Rvcnx8d2luZG93LnRuX3NjYWxlX2ZhY3RvcjoxfWZ1bmN0aW9uIHRfYW5pbWF0ZVNic19fd3JhcEF0b21FbHMoKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1hbmltYXRlLXNicy1ldmVudF0iKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHQsKGZ1bmN0aW9uKHQpe3ZhciBlPXQucXVlcnlTZWxlY3RvcigiLnRuLWF0b20iKTtpZihlJiYhZS5jbG9zZXN0KCIudG4tYXRvbV9fc2JzLWFuaW0td3JhcHBlciIpKXt0X2FuaW1hdGlvblNCU19fd3JhcEVsKGUsInRuLWF0b21fX3Nicy1hbmltLXdyYXBwZXIiKTt2YXIgbj10LmdldEF0dHJpYnV0ZSgiZGF0YS1lbGVtLXR5cGUiKSxpPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLmdldFByb3BlcnR5VmFsdWUoImJvcmRlci1yYWRpdXMiKTtpZigic2hhcGUiPT09biYmaSYmcGFyc2VJbnQoaSkpe3ZhciBhPXQucXVlcnlTZWxlY3RvcigiLnRuLWF0b21fX3Nicy1hbmltLXdyYXBwZXIiKTthJiYoYS5zdHlsZS5ib3JkZXJSYWRpdXM9aSl9fX0pKX1mdW5jdGlvbiB0X2FuaW1hdGVTYnNfX2Nhc2hFbHNJbmZvKHQpe3ZhciBlPXQuZWxzO3QudHJpZ2dlckVsZW1zQXR0ck5hbWU9ImVkaXQiPT09dC5tb2RlPyJkYXRhLWZpZWxkLXNic3RyZ2Vscy12YWx1ZSI6ImRhdGEtYW5pbWF0ZS1zYnMtdHJnZWxzIixBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGUsKGZ1bmN0aW9uKGUpe2Uuc3RhdGU9InVuYWN0aXZlIixlLmFuaW1UeXBlPSJlZGl0Ij09PXQubW9kZT9lLmdldEF0dHJpYnV0ZSgiZGF0YS1maWVsZC1zYnNldmVudC12YWx1ZSIpOmUuZ2V0QXR0cmlidXRlKCJkYXRhLWFuaW1hdGUtc2JzLWV2ZW50IiksZS5jaGFuZ2VUeXBlPSJzY3JvbGwiPT09ZS5hbmltVHlwZT8ic2Nyb2xsIjoidGltZSIsZS50cmlnZ2VyPSJlZGl0Ij09PXQubW9kZT9lLmdldEF0dHJpYnV0ZSgiZGF0YS1maWVsZC1zYnN0cmctdmFsdWUiKTplLmdldEF0dHJpYnV0ZSgiZGF0YS1hbmltYXRlLXNicy10cmciKSxlLnRyaWdnZXI9ZS50cmlnZ2VyP2UudHJpZ2dlcjoxLGUudHJpZ2dlckVsZW1zPWUuZ2V0QXR0cmlidXRlKHQudHJpZ2dlckVsZW1zQXR0ck5hbWUpLGUud3JhcHBlckVsPWUucXVlcnlTZWxlY3RvcigiLnRuLWF0b21fX3Nicy1hbmltLXdyYXBwZXIiKSxlLnN0ZXBzPVtdO3ZhciBuPSJlZGl0Ij09PXQubW9kZT9lLmdldEF0dHJpYnV0ZSgiZGF0YS1maWVsZC1zYnNvcHRzLXZhbHVlIik6ZS5nZXRBdHRyaWJ1dGUoImRhdGEtYW5pbWF0ZS1zYnMtb3B0cyIpO2lmKG4pey0xIT09bi5pbmRleE9mKCJmaXhlZCIpJiYoZS56SW5kZXg9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZSkuZ2V0UHJvcGVydHlWYWx1ZSgiei1pbmRleCIpKSxuPW4ucmVwbGFjZSgvJy9nLCciJyk7dmFyIGk9SlNPTi5wYXJzZShuKTt0X2FuaW1hdGlvblNCU19fYWRkRGVsYXlUb1N0ZXBzKGkpLGUubG9vcD0iZWRpdCI9PT10Lm1vZGU/ZS5nZXRBdHRyaWJ1dGUoImRhdGEtZmllbGQtc2JzbG9vcC12YWx1ZSIpOmUuZ2V0QXR0cmlidXRlKCJkYXRhLWFuaW1hdGUtc2JzLWxvb3AiKSx0X2FuaW1hdGlvblNCU19fc2V0QW5kQ2FjaGVFbFRvcFBvcyhlLHQpO2Zvcih2YXIgYT0wLHI9MDtyPGkubGVuZ3RoO3IrKyl7dmFyIG89e3N0YXRlOiJ1bmFjdGl2ZSJ9O28uc3R5bGVzPXRfYW5pbWF0aW9uU0JTX19jcmVhdGVTdGVwU3R5bGVzKGlbcl0pLCJzY3JvbGwiPT09ZS5jaGFuZ2VUeXBlPyhvLnByZXZVbmZpeGVkRGlzdD1hLG8uZGlzdD1pW3JdLmRpLCExPT09by5zdHlsZXMuZml4JiYoYSs9TnVtYmVyKG8uZGlzdCkpLG8uc3RhcnQ9MD09PXI/ZS50b3BPZmZzZXQ6ZS5zdGVwc1tyLTFdLmVuZCxvLmVuZD1vLnN0YXJ0KzEqby5kaXN0KTooby50aW1lPWlbcl0udGksby5lYXNlPWlbcl0uZWEpLGUuc3RlcHMucHVzaChvKX10X2FuaW1hdGlvblNCU19fdXBkYXRlSW5mb09uSW1nTG9hZChlLHQpLHRfYW5pbWF0aW9uU0JTX191cGRhdGVNb3ZlQW5kUm90YXRlU3RlcHNTdHlsZXMoZS5zdGVwcyl9fSkpfWZ1bmN0aW9uIHRfYW5pbWF0ZVNic19fcmVzZXQodCl7Zm9yKHZhciBlPXQuZWxzLG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9ZVtuXS5hbmltVHlwZTtpZigiaW50b3ZpZXciPT09aXx8ImJsb2NraW50b3ZpZXciPT09aXx8ImNsaWNrIj09PWl8fCJob3ZlciI9PT1pKXtlW25dLmNsYXNzTGlzdC5yZW1vdmUoInQtc2JzLWFuaW1fc3RhcnRlZCIpO3ZhciBhPWVbbl0ucXVlcnlTZWxlY3RvcigiLnRuLWF0b21fX3Nicy1hbmltLXdyYXBwZXIiKTthJiYoYS5zdHlsZS5vcGFjaXR5PSIiKX1lbHNle2Vbbl0uc3RhdGU9InJlc2V0ZWQiO3ZhciByPWVbbl0ud3JhcHBlckVsO3ImJihyLnN0eWxlLnRyYW5zZm9ybT0iIixyLnN0eWxlLnBvc2l0aW9uPSIiLHIuc3R5bGUudG9wPSIiLHIuc3R5bGUub3BhY2l0eT0iIil9fX1mdW5jdGlvbiB0X2FuaW1hdGlvblNCU19fd3JhcEVsKHQsZSl7aWYoIXQpcmV0dXJuITE7dmFyIG49dC5wYXJlbnROb2RlLGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7InN0cmluZyI9PXR5cGVvZiBlP2kuY2xhc3NMaXN0LmFkZChlKTplLmZvckVhY2goKGZ1bmN0aW9uKHQpe2kuY2xhc3NMaXN0LmFkZCh0KX0pKSxpLnN0eWxlLmRpc3BsYXk9InRhYmxlIixpLnN0eWxlLndpZHRoPSJpbmhlcml0IixpLnN0eWxlLmhlaWdodD0iaW5oZXJpdCIsaS5hcHBlbmRDaGlsZCh0KSxuJiZuLmFwcGVuZENoaWxkKGkpfXdpbmRvdy50X2FuaW1hdGlvblNCU19faXNGaXJlZm94PS0xIT09bmF2aWdhdG9yLnVzZXJBZ2VudC5zZWFyY2goIkZpcmVmb3giKSx3aW5kb3cudF9hbmltYXRpb25TQlNfX2lzU2FmYXJpPS9eKCg/IWNocm9tZXxhbmRyb2lkKS4pKnNhZmFyaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksd2luZG93LmFuaW1hdGlvblNCU19faXNJT1M9L2lQaG9uZXxpUGFkfGlQb2QvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfHwib250b3VjaGVuZCJpbiBkb2N1bWVudCYmL01hY2ludG9zaC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSx3aW5kb3cuYW5pbWF0aW9uU0JTX19pc09sZFBhZ2U9Qm9vbGVhbihkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbc3JjKj0idGlsZGEtYmxvY2tzLTIuNyJdJykpLCJ2aXNpYmxlIj09PWRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZT8ibG9hZGluZyIhPT1kb2N1bWVudC5yZWFkeVN0YXRlP3RfYW5pbWF0aW9uU0JTX19pbml0KCk6ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsdF9hbmltYXRpb25TQlNfX2luaXQpOmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHRfYW5pbWF0aW9uU0JTX19jaGVja1Zpc2liaWxpdHlQYWdlKTsKCmlmKHdpbmRvdy50X3pvb21fX2lzTW9iaWxlPS9BbmRyb2lkfHdlYk9TfGlQaG9uZXxpUGFkfGlQb2R8QmxhY2tCZXJyeXxJRU1vYmlsZXxPcGVyYSBNaW5pL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSx3aW5kb3cudF96b29tX19pc01vYmlsZXx8KHdpbmRvdy50X3pvb21fX2lzTW9iaWxlPW5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTWFjaW50b3NoIikmJiJvbnRvdWNoZW5kImluIGRvY3VtZW50KSx3aW5kb3cudF96b29tX19pc2lPUz0vaVBob25lfGlQYWR8aVBvZC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksd2luZG93LnRfem9vbV9faU9TTWFqb3JWZXJzaW9uPTAsd2luZG93LnRfem9vbV9faXNpT1Mpe3ZhciB2ZXJzaW9uPW5hdmlnYXRvci5hcHBWZXJzaW9uLm1hdGNoKC9PUyAoXGQrKV8oXGQrKV8/KFxkKyk/Lyk7bnVsbCE9PXZlcnNpb24mJih3aW5kb3cudF96b29tX19pT1NNYWpvclZlcnNpb249cGFyc2VJbnQodmVyc2lvblsxXSwxMCkpfWZ1bmN0aW9uIHRfaW5pdFpvb20oKXt2YXIgdDtpZighZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtem9vbWVyX193cmFwcGVyIikpe3dpbmRvdy50em9vbWluaXRlZD0hMCx3aW5kb3cudHpvb21vcGVub25jZT0hMSx3aW5kb3cuaXNEb3VibGV0YXBTY2FsZUFkZGVkPSExO3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLXpvb21hYmxlXSIpLG89QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4ieWVzIj09PXQuZ2V0QXR0cmlidXRlKCJkYXRhLXpvb21hYmxlIikmJiF0LmNsYXNzTGlzdC5jb250YWlucygidC1zbGRzX190aHVtYnNfZ2FsbGVyeSIpJiYiIiE9PXQuZ2V0QXR0cmlidXRlKCJkYXRhLWltZy16b29tLXVybCIpfSkpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwobywoZnVuY3Rpb24odCl7dC5jbGFzc0xpc3QuYWRkKCJ0LXpvb21hYmxlIil9KSk7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ci5jbGFzc0xpc3QuYWRkKCJ0LXpvb21lcl9fd3JhcHBlciIpO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uY2xhc3NMaXN0LmFkZCgidC16b29tZXJfX2NvbnRhaW5lciIpO3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2EuY2xhc3NMaXN0LmFkZCgidC16b29tZXJfX2JnIik7dmFyIGk9dF96b29tX19jcmVhdGVDbG9zZUJ0bigpLGw9dF96b29tX19jcmVhdGVTY2FsZUJ0bigpO3IuYXBwZW5kQ2hpbGQobiksci5hcHBlbmRDaGlsZChhKSxyLmFwcGVuZENoaWxkKGkpLHIuYXBwZW5kQ2hpbGQobCksZG9jdW1lbnQuYm9keSYmZG9jdW1lbnQuYm9keS5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZWVuZCIsciksdF96b29tX19pbml0RnVsbFNjcmVlbkltZ09uQ2xpY2soKSx0X3pvb21fX2Nsb3NlQW5kU2xpZGVDYXJvdXNlbCgpfX1mdW5jdGlvbiB0X3pvb21fX2NyZWF0ZUNsb3NlQnRuKCl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dC5jbGFzc0xpc3QuYWRkKCJ0LXpvb21lcl9fY2xvc2UiKSx0LnN0eWxlLmRpc3BsYXk9Im5vbmUiO3ZhciBlPSIiO3JldHVybiBlKz0nPHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMyAyMyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4nLGUrPSc8cGF0aCBkPSJNMS40MTQyMSAtMC4wMDAxNTEwMzhMMCAxLjQxNDA2TDIxLjIxMzIgMjIuNjI3M0wyMi42Mjc0IDIxLjIxMzFMMS40MTQyMSAtMC4wMDAxNTEwMzhaIiBmaWxsPSJibGFjayIvPicsZSs9JzxwYXRoIGQ9Ik0yMi42MjkxIDEuNDE0MjFMMjEuMjE0OCAwTDAuMDAxNjQwNjggMjEuMjEzMkwxLjQxNTg1IDIyLjYyNzRMMjIuNjI5MSAxLjQxNDIxWiIgZmlsbD0iYmxhY2siLz4nLGUrPSI8L3N2Zz4iLHQuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLGUpLHR9ZnVuY3Rpb24gdF96b29tX19jcmVhdGVTY2FsZUJ0bigpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NMaXN0LmFkZCgidC16b29tZXJfX3NjYWxlIiksdC5jbGFzc0xpc3QuYWRkKCJzaG93ZWQiKTt2YXIgZT0iIjtyZXR1cm4gZSs9JzxzdmcgY2xhc3M9Imljb24taW5jcmVhc2UiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI1IDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPicsZSs9JzxwYXRoIGQ9Ik0yMi44MzIgMjJMMTcuODU5MiAxNy4wMjczIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiLz4nLGUrPSc8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQuNTg1OTEgMy43NTExQzAuOTE3NzY4IDcuNDE5MjQgMC45MTc3NjggMTMuMzY3IDQuNTg1OTEgMTcuMDM1MkM4LjI1NDA1IDIwLjcwMzMgMTQuMjAxOSAyMC43MDMzIDE3Ljg3IDE3LjAzNTJDMjEuNTM4MSAxMy4zNjcgMjEuNTM4MSA3LjQxOTI0IDE3Ljg3IDMuNzUxMUMxNC4yMDE5IDAuMDgyOTY1MyA4LjI1NDA1IDAuMDgyOTY1MyA0LjU4NTkxIDMuNzUxMVoiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMiIvPicsZSs9JzxwYXRoIGQ9Ik02LjI1NzgxIDEwLjM5MzFIMTYuMjAzNSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIi8+JyxlKz0nPHBhdGggZD0iTTExLjIzMDUgMTUuMzY2MlY1LjQyMDUzIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiLz4nLGUrPSI8L3N2Zz4iLGUrPSc8c3ZnIGNsYXNzPSJpY29uLWRlY3JlYXNlIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4nLGUrPSc8cGF0aCBkPSJNMjEuOTk2MSAyMkwxNy4wMjMzIDE3LjAyNzMiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIvPicsZSs9JzxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMy43NDk5NyAzLjc1MTFDMC4wODE4MzA4IDcuNDE5MjQgMC4wODE4MzA4IDEzLjM2NyAzLjc0OTk3IDE3LjAzNTJDNy40MTgxMSAyMC43MDMzIDEzLjM2NTkgMjAuNzAzMyAxNy4wMzQxIDE3LjAzNTJDMjAuNzAyMiAxMy4zNjcgMjAuNzAyMiA3LjQxOTI0IDE3LjAzNDEgMy43NTExQzEzLjM2NTkgMC4wODI5NjUzIDcuNDE4MTEgMC4wODI5NjUzIDMuNzQ5OTcgMy43NTExWiIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIi8+JyxlKz0nPHBhdGggZD0iTTUuNDE3OTcgMTAuMzkzMUgxNS4zNjM3IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiLz4nLGUrPSI8L3N2Zz4iLHQuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLGUpLHR9ZnVuY3Rpb24gdF96b29tX19pbml0RnVsbFNjcmVlbkltZ09uQ2xpY2soKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKGZ1bmN0aW9uKHQpe3ZhciBlPXQudGFyZ2V0LmNsb3Nlc3QoJy50LXpvb21hYmxlOm5vdChbZGF0YS1pbWctem9vbS11cmw9IiJdKSwgLnQtc2xkc19fdGh1bWJzX2dhbGxlcnktem9vbWFibGUnKTtlJiZ0X3pvb21IYW5kbGVyKGUpfSkpO3ZhciB0PXdpbmRvdy50X3pvb21fX2lzTW9iaWxlPyJvcmllbnRhdGlvbmNoYW5nZSI6InJlc2l6ZSI7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIodCwoZnVuY3Rpb24oKXtkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygidC16b29tZXJfX3Nob3ciKSYmdF96b29tX2NoZWNrRm9yU2NhbGUoKX0pKX1mdW5jdGlvbiB0X3pvb21fX2Nsb3NlQW5kU2xpZGVDYXJvdXNlbCgpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LXpvb21lcl9fY2xvc2UiKTt0JiYodC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKGZ1bmN0aW9uKCl7dF96b29tX2Nsb3NlKCl9KSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsKGZ1bmN0aW9uKHQpe2lmKGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LXpvb21lcl9fc2hvdyIpKXN3aXRjaCh0LmtleUNvZGUpe2Nhc2UgMjc6dC5wcmV2ZW50RGVmYXVsdCgpLHRfem9vbV9jbG9zZSgpO2JyZWFrO2Nhc2UgMzc6dF96b29tX19zZXRFdmVudE9uQnRuKCJwcmV2Iik7YnJlYWs7Y2FzZSAzOTp0X3pvb21fX3NldEV2ZW50T25CdG4oIm5leHQiKX19KSkpfWZ1bmN0aW9uIHRfem9vbUhhbmRsZXIodCl7dmFyIGU7ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCJ0LXpvb21lcl9fc2hvdyIpLGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LXBvcHVwX3Nob3ciKSYmZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCJ0LXpvb21lcl9fYWN0aXZlIik7dmFyIG89ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtem9vbWVyX19jb250YWluZXIiKSxyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3IuY2xhc3NMaXN0LmFkZCgidC1jYXJvdXNlbF9fem9vbWVkIik7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bi5jbGFzc0xpc3QuYWRkKCJ0LWNhcm91c2VsX196b29tZXJfX3NsaWRlcyIpO3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2EuY2xhc3NMaXN0LmFkZCgidC1jYXJvdXNlbF9fem9vbWVyX19pbm5lciIpO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuY2xhc3NMaXN0LmFkZCgidC1jYXJvdXNlbF9fem9vbWVyX190cmFjayIpLGEuYXBwZW5kQ2hpbGQoaSk7dmFyIGw9dF96b29tX2NyZWF0ZVNsaWRlckFycm93KCJsZWZ0IiksYz10X3pvb21fY3JlYXRlU2xpZGVyQXJyb3coInJpZ2h0Iik7bi5hcHBlbmRDaGlsZChsKSxuLmFwcGVuZENoaWxkKGMpLG4uYXBwZW5kQ2hpbGQoYSksci5hcHBlbmRDaGlsZChuKSxvJiYoby5pbm5lckhUTUw9IiIpLG8mJm8uYXBwZW5kQ2hpbGQocik7dmFyIHM9dC5jbG9zZXN0KCIuciIpLF87aWYoIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LWNhcm91c2VsX196b29tZXJfX3RyYWNrIil8fCFzKXJldHVybiExO3Rfem9vbV9fYWRkaW5nSW1nc0ludG9DYXJvdXNlbCh0KTt2YXIgZD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC16b29tZXJfX2Nsb3NlIik7ZCYmKGQuc3R5bGUuZGlzcGxheT0iZmxleCIpLHRfem9vbV9zZXRNb2RhbENvbG9yKHMpLHRfem9vbV9fY3JlYXRlQW5kTG9vcFNsaWRlcih0KSx0X3pvb21fX2dldEV2ZW50T25CdG4oKSxkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoInQtem9vbWVyX19zaG93X2ZpeGVkIiksdF96b29tX19pbml0U2luZ2xlWm9vbSgpLHRfem9vbV9jaGVja0ZvclNjYWxlKCksdF96b29tX2xvY2tTY3JvbGwoKSx3aW5kb3cudF96b29tX19pc01vYmlsZT8odF96b29tX2luaXRTd2lwZSgpLHRfem9vbV9pbml0Q2xvc2VTd2lwZSgpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsdF96b29tX191cGRhdGVBY3RpdmVTbGlkZVBvcykpOndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRfem9vbV9fdXBkYXRlQWN0aXZlU2xpZGVQb3MpLHdpbmRvdy50em9vbW9wZW5vbmNlPSEwLHRfem9vbV9faW5pdEV2ZW50c29uTW9iaWxlKCl9ZnVuY3Rpb24gdF96b29tX191cGRhdGVBY3RpdmVTbGlkZVBvcygpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtY2Fyb3VzZWxfX3pvb21lcl9fdHJhY2siKTtpZih0KXt2YXIgZT10LnF1ZXJ5U2VsZWN0b3IoIi50LWNhcm91c2VsX196b29tZXJfX2l0ZW0uYWN0aXZlIikub2Zmc2V0TGVmdDt0LnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWCgiKy1lKyJweCkifX0pLDMwMCl9ZnVuY3Rpb24gdF96b29tX2NyZWF0ZVNsaWRlckFycm93KHQpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuY2xhc3NMaXN0LmFkZCgidC1jYXJvdXNlbF9fem9vbWVyX19jb250cm9sIiksZS5jbGFzc0xpc3QuYWRkKCJ0LWNhcm91c2VsX196b29tZXJfX2NvbnRyb2xfIit0KSxlLnNldEF0dHJpYnV0ZSgiZGF0YS16b29tZXItc2xpZGUiLCJsZWZ0Ij09PXQ/InByZXYiOiJuZXh0Iik7dmFyIG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7by5jbGFzc0xpc3QuYWRkKCJ0LWNhcm91c2VsX196b29tZXJfX2Fycm93X193cmFwcGVyIiksby5jbGFzc0xpc3QuYWRkKCJ0LWNhcm91c2VsX196b29tZXJfX2Fycm93X193cmFwcGVyXyIrdCk7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHIuY2xhc3NMaXN0LmFkZCgidC1jYXJvdXNlbF9fem9vbWVyX19hcnJvdyIpLHIuY2xhc3NMaXN0LmFkZCgidC1jYXJvdXNlbF9fem9vbWVyX19hcnJvd18iK3QpLHIuY2xhc3NMaXN0LmFkZCgidC1jYXJvdXNlbF9fem9vbWVyX19hcnJvd19zbWFsbCIpLG8uYXBwZW5kQ2hpbGQociksZS5hcHBlbmRDaGlsZChvKSxlfWZ1bmN0aW9uIHRfem9vbV9pbml0U3dpcGUoKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudC1jYXJvdXNlbF9fem9vbWVyX19pdGVtIiksZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC16b29tZXJfX3dyYXBwZXIiKTtpZih0Lmxlbmd0aD4xKXt2YXIgbz1uZXcgSGFtbWVyKGUse2RvbUV2ZW50czohMCxpbnB1dENsYXNzOkhhbW1lci5Ub3VjaElucHV0LGNzc1Byb3BzOnt0b3VjaENvbGxvdXQ6ImRlZmF1bHQifSxyZWNvZ25pemVyczpbW0hhbW1lci5QYW4se2RpcmVjdGlvbjpIYW1tZXIuRElSRUNUSU9OX0hPUklaT05UQUx9XV19KSxyPW51bGwsbj0hMTt3aW5kb3cudHpvb21vcGVub25jZXx8KG8ub24oInBhbnN0YXJ0IiwoZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC1jYXJvdXNlbF9fem9vbWVyX190cmFjayIpLG87InkiIT09dC5nZXRBdHRyaWJ1dGUoImRhdGEtb24tdHJhbnNpdGlvbiIpP3QmJihyPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCx0LnN0eWxlLnRyYW5zaXRpb249Im5vbmUiKTpyPW51bGwsbj10X3pvb21fX2lzU2NhbGVkKGUpfSkpLG8ub24oInBhbm1vdmUiLChmdW5jdGlvbih0KXt2YXIgbz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC1jYXJvdXNlbF9fem9vbWVyX190cmFjayIpLGE9by5nZXRBdHRyaWJ1dGUoImRhdGEtb24tdHJhbnNpdGlvbiIpLGk9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtb24tZHJhZyIpLGw7aWYoInkiIT09YSYmInkiIT09aSYmMT09PXQubWF4UG9pbnRlcnMmJiFuJiYoTWF0aC5hYnModC5kZWx0YVgpPjQwJiZvLnNldEF0dHJpYnV0ZSgiZGF0YS1vbi1kcmFnIiwieSIpLHIpKXt2YXIgYz1yK3QuZGVsdGFYO28uc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVYKCIrYysicHgpIn19KSksby5vbigicGFuZW5kIiwoZnVuY3Rpb24obyl7dmFyIHI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtY2Fyb3VzZWxfX3pvb21lcl9fdHJhY2siKTtyLnNldEF0dHJpYnV0ZSgiZGF0YS1vbi1kcmFnIiwiIik7dmFyIGE9ci5nZXRBdHRyaWJ1dGUoImRhdGEtb24tdHJhbnNpdGlvbiIpLGk9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtb24tZHJhZyIpO2lmKCJ5IiE9PWEmJiJ5IiE9PWkmJjE9PT1vLm1heFBvaW50ZXJzJiYhbil7ci5zdHlsZS50cmFuc2l0aW9uPSIiO3ZhciBsPU1hdGguYWJzKG8udmVsb2NpdHlYKSxjPXIub2Zmc2V0TGVmdCxzPXRbMF0ub2Zmc2V0V2lkdGgsXz1yLnF1ZXJ5U2VsZWN0b3IoIi50LWNhcm91c2VsX196b29tZXJfX2l0ZW0uYWN0aXZlIikub2Zmc2V0TGVmdCxkLG09KHMtTWF0aC5hYnMoYytfKSkvbC8xZTM7bT4uNj9tPS42Om08LjImJihtPS4yKSxyLnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbj1tKyJzIixvLnZlbG9jaXR5WDwtLjV8fG8uZGVsdGFYPC04MD8odF96b29tX3Vuc2NhbGUoKSx0X3pvb21fc2hvd1NsaWRlKCJuZXh0IiksdF96b29tX2NoZWNrRm9yU2NhbGUoKSk6by52ZWxvY2l0eVg+LjV8fG8uZGVsdGFYPjgwPyh0X3pvb21fdW5zY2FsZSgpLHRfem9vbV9zaG93U2xpZGUoInByZXYiKSx0X3pvb21fY2hlY2tGb3JTY2FsZSgpKTp0X3pvb21fc2hvd1NsaWRlKCl9fSkpKX19ZnVuY3Rpb24gdF96b29tX19pbml0RXZlbnRzb25Nb2JpbGUoKXtpZih3aW5kb3cudF96b29tX19pc01vYmlsZSl7dF96b29tX3NldEhpZGVDb250cm9sc1RpbWVyKCk7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtem9vbWVyX193cmFwcGVyIiksZTtbInRvdWNoc3RhcnQiLCJ0b3VjaG1vdmUiLCJ0b3VjaGVuZCIsIm1vdXNlbW92ZSJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3QuYWRkRXZlbnRMaXN0ZW5lcihlLHRfem9vbV9zZXRIaWRlQ29udHJvbHNUaW1lcil9KSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9yaWVudGF0aW9uY2hhbmdlIix0X3pvb21fX3VwZGF0ZVNsaWRlc0hlaWdodCl9fWZ1bmN0aW9uIHRfem9vbV9fdXBkYXRlU2xpZGVzSGVpZ2h0KCl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnQtY2Fyb3VzZWxfX3pvb21lcl9faXRlbSAudC1jYXJvdXNlbF9fem9vbWVyX19pbWciKSxlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LXpvb21lcl9fd3JhcHBlciIpO2lmKGUmJnQubGVuZ3RoKXt2YXIgbz1lLmdldEF0dHJpYnV0ZSgiZGF0YS1tYXgtY29tbWVudC1oZWlnaHQiKTtvPXBhcnNlSW50KG8sMTApLGlzTmFOKG8pfHxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3ZhciByPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LWNhcm91c2VsX196b29tZXJfX2l0ZW0uYWN0aXZlIik7aWYocil7dmFyIG4sYT1lLm9mZnNldEhlaWdodC1yLm9mZnNldEhlaWdodCtvLGk9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodC1hO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodCwoZnVuY3Rpb24odCl7dC5zdHlsZS5tYXhIZWlnaHQ9aSsicHgifSkpfX0pLDMwMCl9fWZ1bmN0aW9uIHRfem9vbV9faW5pdFNpbmdsZVpvb20oKXt2YXIgdDtpZigxPT09ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnQtY2Fyb3VzZWxfX3pvb21lcl9faXRlbSIpLmxlbmd0aCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnQtY2Fyb3VzZWxfX3pvb21lcl9fY29udHJvbCIpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZSwoZnVuY3Rpb24odCl7dC5zdHlsZS5kaXNwbGF5PSJub25lIn0pKX19ZnVuY3Rpb24gdF96b29tX19nZXRFdmVudE9uQnRuKCl7dmFyIHQ7W3tuYW1lOiJyaWdodCIsZGlyZWN0aW9uOiJuZXh0In0se25hbWU6ImxlZnQiLGRpcmVjdGlvbjoicHJldiJ9XS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC1jYXJvdXNlbF9fem9vbWVyX19jb250cm9sXyIrdC5uYW1lKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKGZ1bmN0aW9uKCl7dF96b29tX19zZXRFdmVudE9uQnRuKHQuZGlyZWN0aW9uKX0pKX0pKX1mdW5jdGlvbiB0X3pvb21fX3NldEV2ZW50T25CdG4odCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtY2Fyb3VzZWxfX3pvb21lcl9fdHJhY2siKSxvPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LXpvb21lcl9fd3JhcHBlciIpLHI9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtb24tdHJhbnNpdGlvbiIpLG49by5nZXRBdHRyaWJ1dGUoImRhdGEtb24tZHJhZyIpOyJ5IiE9PXImJiJ5IiE9PW4mJih0X3pvb21fdW5zY2FsZSgpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dF96b29tX3Nob3dTbGlkZSh0KSx0X3pvb21fY2hlY2tGb3JTY2FsZSgpfSkpKX1mdW5jdGlvbiB0X3pvb21fX2FkZGluZ0ltZ3NJbnRvQ2Fyb3VzZWwodCl7dmFyIGU9dC5jbG9zZXN0KCIuciIpLG89ZT9lLnF1ZXJ5U2VsZWN0b3JBbGwoIi50LXpvb21hYmxlOm5vdCgudC1zbGRzX190aHVtYnNfZ2FsbGVyeSk6bm90KC50bi1hdG9tX19zbGRzLWltZykiKTpbXSxyO2lmKGU/ZS5xdWVyeVNlbGVjdG9yKCIudC1zbGRzIik6bnVsbCl7dmFyIG49dC5jbG9zZXN0KCIudC1zbGRzIik7biYmKG89bi5xdWVyeVNlbGVjdG9yQWxsKCIudC16b29tYWJsZTpub3QoLnQtc2xkc19fdGh1bWJzX2dhbGxlcnkpIikpLG4mJm4ucXVlcnlTZWxlY3RvcigiLnRuLWVsZW1fX2dhbGxlcnlfX3ZpZGVvLXdyYXBwZXIiKSYmKG89QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobykpLnNwbGljZSgtMSwxKX12YXIgYT10X3pvb21fX2dldFpvb21EZXNjcmlwdGlvbkZvbnRGYW1pbHkoZSksaT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC1jYXJvdXNlbF9fem9vbWVyX190cmFjayIpLGw9InkiPT09d2luZG93Lmxhenk7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChvLChmdW5jdGlvbih0LGUpe3ZhciByPXQuZ2V0QXR0cmlidXRlKCJkYXRhLWltZy16b29tLXVybCIpLG49IiIsYz0iIixzPXI/ci5zcGxpdCgiLCIpOiIiO2lmKCJJTUciIT09dC5ub2RlTmFtZSYmIkRJViIhPT10Lm5vZGVOYW1lfHwobj10LmdldEF0dHJpYnV0ZSgidGl0bGUiKXx8IiIsYz10LmdldEF0dHJpYnV0ZSgiZGF0YS1pbWctem9vbS1kZXNjciIpfHwiIiksbil7dmFyIF89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Xy5jbGFzc0xpc3QuYWRkKCJ0LXpvb21lcl9fdGl0bGUiKSxfLmNsYXNzTGlzdC5hZGQoInQtZGVzY3IiKSxfLmNsYXNzTGlzdC5hZGQoInQtZGVzY3JfeHhzIiksXy50ZXh0Q29udGVudD1uLGEmJmEudGl0bGVGb250RmFtaWx5JiYoXy5zdHlsZS5mb250RmFtaWx5PWEudGl0bGVGb250RmFtaWx5KX1pZihjKXt2YXIgZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtkLmNsYXNzTGlzdC5hZGQoInQtem9vbWVyX19kZXNjciIpLGQuY2xhc3NMaXN0LmFkZCgidC1kZXNjciIpLGQuY2xhc3NMaXN0LmFkZCgidC1kZXNjcl94eHMiKSxkLnRleHRDb250ZW50PWMsYSYmYS5kZXNjckZvbnRGYW1pbHkmJihkLnN0eWxlLmZvbnRGYW1pbHk9YS5kZXNjckZvbnRGYW1pbHkpfXZhciBtPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO20uY2xhc3NMaXN0LmFkZCgidC1jYXJvdXNlbF9fem9vbWVyX19pdGVtIik7dmFyIHU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dS5jbGFzc0xpc3QuYWRkKCJ0LWNhcm91c2VsX196b29tZXJfX3dyYXBwZXIiKTt2YXIgeT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTtpZih5LmNsYXNzTGlzdC5hZGQoInQtY2Fyb3VzZWxfX3pvb21lcl9faW1nIiksbD8oeS5jbGFzc0xpc3QuYWRkKCJ0LWltZyIpLHkuc2V0QXR0cmlidXRlKCJkYXRhLW9yaWdpbmFsIixzKSwwIT09ZSYmZSE9PW8ubGVuZ3RoLTF8fHkuc2V0QXR0cmlidXRlKCJkYXRhLWxhenktcnVsZSIsInNraXAiKSk6eS5zcmM9cyxtLmFwcGVuZENoaWxkKHUpLHUuYXBwZW5kQ2hpbGQoeSksbnx8Y3x8d2luZG93LnRfem9vbV9faXNNb2JpbGUpe3ZhciBwPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3AuY2xhc3NMaXN0LmFkZCgidC16b29tZXJfX2NvbW1lbnRzIiksbiYmcC5hcHBlbmRDaGlsZChfKSxjJiZwLmFwcGVuZENoaWxkKGQpLG0uYXBwZW5kQ2hpbGQocCl9aS5hcHBlbmRDaGlsZChtKX0pKX1mdW5jdGlvbiB0X3pvb21fX2dldFpvb21EZXNjcmlwdGlvbkZvbnRGYW1pbHkodCl7dmFyIGU9dC5xdWVyeVNlbGVjdG9yKCcudDgyN19fb3ZlcmxheS10aXRsZSwgLnQ5NzlfX292ZXJsYXktdGl0bGUsIC50LXNsZHNfX3RpdGxlLCAudDYwM19fdGl0bGUsIFtpdGVtcHJvcD0ibmFtZSJdJyksbz10LnF1ZXJ5U2VsZWN0b3IoJy50ODI3X19vdmVybGF5LWRlc2NyLCAudDk3OV9fb3ZlcmxheS1kZXNjciwgLnQtc2xkc19fZGVzY3IsIC50NjAzX19kZXNjciwgW2l0ZW1wcm9wPSJkZXNjcmlwdGlvbiJdJykscixuO3JldHVybnt0aXRsZUZvbnRGYW1pbHk6ZSYmZ2V0Q29tcHV0ZWRTdHlsZShlKS5mb250RmFtaWx5fHwiIixkZXNjckZvbnRGYW1pbHk6byYmZ2V0Q29tcHV0ZWRTdHlsZShvKS5mb250RmFtaWx5fHwiIn19ZnVuY3Rpb24gdF96b29tX19jcmVhdGVBbmRMb29wU2xpZGVyKHQpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LWNhcm91c2VsX196b29tZXJfX3RyYWNrIiksbz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC16b29tZXJfX3dyYXBwZXIiKSxyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50LWNhcm91c2VsX196b29tZXJfX2l0ZW0iKTtpZihvJiZyLmxlbmd0aCl7dmFyIG49by5vZmZzZXRIZWlnaHQtclswXS5vZmZzZXRIZWlnaHQ7aWYod2luZG93LnRfem9vbV9faXNNb2JpbGUpe3ZhciBhPUFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChyLChmdW5jdGlvbih0LGUpe3ZhciBvPWUucXVlcnlTZWxlY3RvcigiLnQtem9vbWVyX19jb21tZW50cyIpLHI9bz9vLm9mZnNldEhlaWdodDowO3JldHVybiByPnQmJih0PXIpLHR9KSwwKTtvLnNldEF0dHJpYnV0ZSgiZGF0YS1tYXgtY29tbWVudC1oZWlnaHQiLGEpfXZhciBpPSJ5Ij09PXdpbmRvdy5sYXp5O0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwociwoZnVuY3Rpb24odCl7dmFyIGU9dC5xdWVyeVNlbGVjdG9yKCIudC1jYXJvdXNlbF9fem9vbWVyX19pbWciKSxvPWk/ImRhdGEtb3JpZ2luYWwiOiJzcmMiLHI9ZS5nZXRBdHRyaWJ1dGUobyksbD10LnF1ZXJ5U2VsZWN0b3IoIi50LXpvb21lcl9fY29tbWVudHMiKSxjPWw/bC5vZmZzZXRIZWlnaHQ6MDt3aW5kb3cudF96b29tX19pc01vYmlsZSYmKGM9YSk7dmFyIHM9bitjO2wmJihsLnN0eWxlLmhlaWdodD1jKyJweCIpLGUuc3R5bGUubWF4SGVpZ2h0PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQtcysicHgiO3ZhciBfPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50LWNhcm91c2VsX196b29tZXJfX2Fycm93X193cmFwcGVyIik7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChfLChmdW5jdGlvbih0KXt0LnN0eWxlLnRvcD1jPyJjYWxjKDUwJSAtICIrYy8yKyJweCkiOiI1MCUifSkpfSkpLEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwociwoZnVuY3Rpb24odCxlKXt0LnNldEF0dHJpYnV0ZSgiZGF0YS16b29tZXItc2xpZGUtbnVtYmVyIixlKX0pKSxyLmxlbmd0aD4xJiZ0X3pvb21fbG9vcFNsaWRlcigpO3ZhciBsPXQuZ2V0QXR0cmlidXRlKCJkYXRhLWltZy16b29tLXVybCIpLGMscz0iLnQtY2Fyb3VzZWxfX3pvb21lcl9faW1nWyIrKGk/ImRhdGEtb3JpZ2luYWwiOiJzcmMiKSsnPSInK2wrJyJdJyxfPWw/ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzKTpudWxsLGQ9Xz9fLmNsb3Nlc3QoIi50LWNhcm91c2VsX196b29tZXJfX2l0ZW0iKTpudWxsO2lmKGQpe3ZhciBtPSEhZCYmZC5vZmZzZXRMZWZ0O2QuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIiksdF96b29tX19oaWRlSW5uYWN0aXZlU2xpZGVzKGQsZSksZS5zdHlsZS50cmFuc2l0aW9uPSJub25lIixlLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWCgiKy1tKyJweCkiLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZS5zdHlsZS50cmFuc2l0aW9uPSIifSksMjAwKX1pJiZ0X29uRnVuY0xvYWQoInRfbGF6eWxvYWRfdXBkYXRlIix0X2xhenlsb2FkX3VwZGF0ZSl9fWZ1bmN0aW9uIHRfem9vbV9faGlkZUlubmFjdGl2ZVNsaWRlcyh0LGUpe2lmKHQpe3ZhciBvPSIudC1jYXJvdXNlbF9fem9vbWVyX19pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkiLHI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZS5xdWVyeVNlbGVjdG9yQWxsKG8pKTtpZighKHIubGVuZ3RoPD02KSl7dmFyIG49dF96b29tX19nZXRDdXJyZW50U2xpZGVJbmRleCh0KSxhPVtuXTthLnB1c2goMD09PW4/ci5sZW5ndGg6bi0xKSxhLnB1c2gobj09PXIubGVuZ3RoPzA6bisxKTt2YXIgaT0idC1jYXJvdXNlbF9fem9vbWVyX19pdGVtLWlubmFjdGl2ZSI7ci5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10X3pvb21fX2dldEN1cnJlbnRTbGlkZUluZGV4KHQpLG89LTEhPT1hLmluZGV4T2YoZSk/InJlbW92ZSI6ImFkZCI7dC5jbGFzc0xpc3Rbb10oaSl9KSl9fX1mdW5jdGlvbiB0X3pvb21fX2dldEN1cnJlbnRTbGlkZUluZGV4KHQpe3JldHVybiB0JiZwYXJzZUludCh0LmdldEF0dHJpYnV0ZSgiZGF0YS16b29tZXItc2xpZGUtbnVtYmVyIiksMTApfHwwfWZ1bmN0aW9uIHRfem9vbV9zaG93U2xpZGUodCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtY2Fyb3VzZWxfX3pvb21lcl9fdHJhY2siKSxvPWUucXVlcnlTZWxlY3RvckFsbCgiLnQtY2Fyb3VzZWxfX3pvb21lcl9faXRlbSIpLHI9ZS5xdWVyeVNlbGVjdG9yKCIudC1jYXJvdXNlbF9fem9vbWVyX19pdGVtLmFjdGl2ZSIpLG49MCxhPSJ5Ij09PWUuZ2V0QXR0cmlidXRlKCJkYXRhLWNhY2hlZC16b29tIik7aWYoQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChvLChmdW5jdGlvbih0LGUpe3Q9PT1yJiYobj1lKX0pKSwibmV4dCI9PT10fHwicHJldiI9PT10KXt2YXIgaT0ibmV4dCI9PT10P24rMTpvLmxlbmd0aCsobi0xKTtuPWklby5sZW5ndGgsZS5zZXRBdHRyaWJ1dGUoImRhdGEtb24tdHJhbnNpdGlvbiIsInkiKSx3aW5kb3cudF96b29tX19pc01vYmlsZSYmIjBzIj09PWdldENvbXB1dGVkU3R5bGUoZSkudHJhbnNpdGlvbkR1cmF0aW9uJiYhYSYmKGUuc3R5bGUudHJhbnNpdGlvbj0iIil9dmFyIGw9b1tuXS5vZmZzZXRMZWZ0O2lmKHIuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIiksb1tuXS5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSxlLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWCgiKy1sKyJweCkiLHRfem9vbV9faGlkZUlubmFjdGl2ZVNsaWRlcyhvW25dLGUpLGEpe2UucmVtb3ZlQXR0cmlidXRlKCJkYXRhLWNhY2hlZC16b29tIik7dmFyIGM9bmV3IEV2ZW50KCJ0cmFuc2l0aW9uZW5kIik7ZS5kaXNwYXRjaEV2ZW50KGMpfWlmKCJ5Ij09PXdpbmRvdy5sYXp5KXt0X29uRnVuY0xvYWQoInRfbGF6eWxvYWRfdXBkYXRlIix0X2xhenlsb2FkX3VwZGF0ZSk7dmFyIHM9b1tuXS5xdWVyeVNlbGVjdG9yKCJpbWciKTtzJiYhcy5zcmMmJnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dF9vbkZ1bmNMb2FkKCJ0X2xhenlsb2FkX3VwZGF0ZSIsdF9sYXp5bG9hZF91cGRhdGUpfSksMjAwKX19ZnVuY3Rpb24gdF96b29tX3RyYW5zaXRGb3JMb29wKHQpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LWNhcm91c2VsX196b29tZXJfX3RyYWNrIiksbz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudC1jYXJvdXNlbF9fem9vbWVyX19pdGVtIikscixuO2lmKCF0KXJldHVybiAxOyJzdGFydCI9PT10JiYocj1vLmxlbmd0aC0yKSwiZW5kIj09PXQmJihyPTEpLG49b1tyXS5vZmZzZXRMZWZ0LEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwobywoZnVuY3Rpb24odCxlKXtlPT09cj90LmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpOnQuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIil9KSksZS5zdHlsZS50cmFuc2l0aW9uPSJub25lIixlLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWCgiKy1uKyJweCkiLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZS5zdHlsZS50cmFuc2l0aW9uPSIiLCJ5Ij09PXdpbmRvdy5sYXp5JiZ0X29uRnVuY0xvYWQoInRfbGF6eWxvYWRfdXBkYXRlIix0X2xhenlsb2FkX3VwZGF0ZSl9KSl9ZnVuY3Rpb24gdF96b29tX2xvb3BTbGlkZXIoKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC1jYXJvdXNlbF9fem9vbWVyX190cmFjayIpLGU9dC5xdWVyeVNlbGVjdG9yQWxsKCIudC1jYXJvdXNlbF9fem9vbWVyX19pdGVtIiksbz1lWzBdLmNsb25lTm9kZSghMCkscj1lW2UubGVuZ3RoLTFdLmNsb25lTm9kZSghMCk7by5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSxyLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpLHRfem9vbV9fdXBkYXRlQ2xvbmVkSW1nU3JjKGVbMF0sZVtlLmxlbmd0aC0xXSxvLHIpLHQuaW5zZXJ0QmVmb3JlKHIsdC5maXJzdENoaWxkKSx0LmFwcGVuZENoaWxkKG8pO3ZhciBuPShlPXQucXVlcnlTZWxlY3RvckFsbCgiLnQtY2Fyb3VzZWxfX3pvb21lcl9faXRlbSIpKS5sZW5ndGgsYTtbInRyYW5zaXRpb25lbmQiLCJ3ZWJraXRUcmFuc2l0aW9uRW5kIiwib1RyYW5zaXRpb25FbmQiXS5mb3JFYWNoKChmdW5jdGlvbihvKXt0LmFkZEV2ZW50TGlzdGVuZXIobywoZnVuY3Rpb24oKXt2YXIgbz0wO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZSwoZnVuY3Rpb24odCxlKXt0LmNsYXNzTGlzdC5jb250YWlucygiYWN0aXZlIikmJihvPWUpfSkpLDA9PT1vJiZ0X3pvb21fdHJhbnNpdEZvckxvb3AoInN0YXJ0Iiksbz09PW4tMSYmdF96b29tX3RyYW5zaXRGb3JMb29wKCJlbmQiKSx0LnNldEF0dHJpYnV0ZSgiZGF0YS1vbi10cmFuc2l0aW9uIiwiIil9KSl9KSl9ZnVuY3Rpb24gdF96b29tX191cGRhdGVDbG9uZWRJbWdTcmModCxlLG8scil7aWYoInkiPT09d2luZG93Lmxhenkpe3ZhciBuPXQucXVlcnlTZWxlY3RvcigiaW1nIiksYT1lLnF1ZXJ5U2VsZWN0b3IoImltZyIpLGk9by5xdWVyeVNlbGVjdG9yKCJpbWciKSxsPXIucXVlcnlTZWxlY3RvcigiaW1nIiksYz1bbixhLGksbF07aWYoIWMuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIXR9KSkmJiJNdXRhdGlvbk9ic2VydmVyImluIHdpbmRvdyl7dmFyIHM9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKGZ1bmN0aW9uKHQpe3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU7ImF0dHJpYnV0ZXMiPT09dC50eXBlJiYic3JjIj09PXQuYXR0cmlidXRlTmFtZSYmKHQudGFyZ2V0PT09biYmKGU9aSksdC50YXJnZXQ9PT1hJiYoZT1sKSx0LnRhcmdldD09PWkmJihlPW4pLHQudGFyZ2V0PT09bCYmKGU9YSksdC50YXJnZXQuc3JjJiYhZS5zcmMmJihlLnNyYz10LnRhcmdldC5zcmMpKX0pKX0pKTtjLmZvckVhY2goKGZ1bmN0aW9uKHQpe3Mub2JzZXJ2ZSh0LHthdHRyaWJ1dGVzOiEwfSl9KSl9fX1mdW5jdGlvbiB0X3pvb21faW5pdENsb3NlU3dpcGUoKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC16b29tZXJfX3dyYXBwZXIiKSxlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LWNhcm91c2VsX196b29tZXJfX3RyYWNrIiksbz0hMSxyLG49bmV3IEhhbW1lcih0LHtkb21FdmVudHM6ITAsaW5wdXRDbGFzczpIYW1tZXIuVG91Y2hJbnB1dCxjc3NQcm9wczp7dG91Y2hDb2xsb3V0OiJkZWZhdWx0In0scmVjb2duaXplcnM6W1tIYW1tZXIuUGFuLHtkaXJlY3Rpb246SGFtbWVyLkRJUkVDVElPTl9WRVJUSUNBTH1dXX0pO24ub24oInBhbnN0YXJ0IiwoZnVuY3Rpb24oKXtyPXQub2Zmc2V0VG9wLHQuc3R5bGUucG9zaXRpb249Im5vbmUiLG89dF96b29tX19pc1NjYWxlZCh0KX0pKSxuLm9uKCJwYW5tb3ZlIiwoZnVuY3Rpb24obil7dmFyIGE9TWF0aC5hYnMobi5kZWx0YVkpO2lmKCgieSIhPT1lLmdldEF0dHJpYnV0ZSgiZGF0YS1vbi1kcmFnIil8fCJ5Ij09PXQuZ2V0QXR0cmlidXRlKCJkYXRhLW9uLWRyYWciKSkmJihuLmFuZ2xlPi0xMjAmJm4uYW5nbGU8LTYwfHxuLmFuZ2xlPDEyMCYmbi5hbmdsZT42MCkmJjE9PT1uLm1heFBvaW50ZXJzJiYhbyl7YT40MCYmdC5zZXRBdHRyaWJ1dGUoImRhdGEtb24tZHJhZyIsInkiKTt2YXIgaT1yK24uZGVsdGFZO3Quc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKCIraSsicHgpIn19KSksbi5vbigicGFuZW5kIix0X3pvb21fY2xvc2VTd2lwZUhhbmRsZXIpfWZ1bmN0aW9uIHRfem9vbV9jbG9zZVN3aXBlSGFuZGxlcih0KXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC16b29tZXJfX3dyYXBwZXIiKSxvPTMwMCxyPXRfem9vbV9faXNTY2FsZWQoZSk7ZS5zdHlsZS50cmFuc2l0aW9uPSJ0cmFuc2Zvcm0gMzAwbXMgZWFzZS1vdXQiLE1hdGguYWJzKHQuZGVsdGFZKTw0MCYmKGUuc3R5bGUudHJhbnNmb3JtPSIiKSwieSIhPT1lLmdldEF0dHJpYnV0ZSgiZGF0YS1vbi1kcmFnIil8fDEhPT10Lm1heFBvaW50ZXJzfHxyfHwodC5kZWx0YVk8LTIwMHx8dC52ZWxvY2l0eVk8LS4zPyhlLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgtMTAwdmgpIixzZXRUaW1lb3V0KChmdW5jdGlvbigpe3Rfem9vbV9jbG9zZSgpLGUuc3R5bGUudHJhbnNmb3JtPSIifSksbykpOnQuZGVsdGFZPjIwMHx8dC52ZWxvY2l0eVk+LjM/KGUuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKDEwMHZoKSIsc2V0VGltZW91dCgoZnVuY3Rpb24oKXt0X3pvb21fY2xvc2UoKSxlLnN0eWxlLnRyYW5zZm9ybT0iIn0pLG8pKTplLnN0eWxlLnRyYW5zZm9ybT0iIiksZS5zZXRBdHRyaWJ1dGUoImRhdGEtb24tZHJhZyIsIiIpfWZ1bmN0aW9uIHRfem9vbV9jaGVja0ZvclNjYWxlKCl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtY2Fyb3VzZWxfX3pvb21lcl9faXRlbS5hY3RpdmUgLnQtY2Fyb3VzZWxfX3pvb21lcl9faW1nOm5vdCgubG9hZGVkKSIpO2lmKHQpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbGxyZWNvcmRzIiksbz0hIWUmJiJ5ZXMiPT09ZS5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtbGF6eSIpO2lmKCJ5Ij09PXdpbmRvdy5sYXp5fHxvKXt2YXIgcj1EYXRlLm5vdygpO3Rfem9vbV9fd2FpdEltZ0ZvclNjYWxlKHQsciwoZnVuY3Rpb24oKXt0X3pvb21fY2hlY2tUb1NjYWxlSW5pdCh0KX0pKX1lbHNlIHQuY29tcGxldGU/dF96b29tX2NoZWNrVG9TY2FsZUluaXQodCk6dC5vbmxvYWQ9ZnVuY3Rpb24oKXt0X3pvb21fY2hlY2tUb1NjYWxlSW5pdCh0KX19fWZ1bmN0aW9uIHRfem9vbV9fd2FpdEltZ0ZvclNjYWxlKHQsZSxvKXt0LnNyYyYmdC5uYXR1cmFsV2lkdGgmJnQubmF0dXJhbEhlaWdodD9vKCk6RGF0ZS5ub3coKS1lPDNlMz9zZXRUaW1lb3V0KChmdW5jdGlvbigpe3Rfem9vbV9fd2FpdEltZ0ZvclNjYWxlKHQsZSxvKX0pLDUwMCk6KGNvbnNvbGUud2Fybigiem9vbWVkIGltYWdlIGlzbid0IGNvbXBsZXRlLCBuYXR1cmFsIHdpZHRoOiAiK3QubmF0dXJhbFdpZHRoKyIsIG5hdHVyYWwgaGVpZ2h0OiAiK3QubmF0dXJhbEhlaWdodCksbygpKX1mdW5jdGlvbiB0X3pvb21fY2hlY2tUb1NjYWxlSW5pdCh0KXt2YXIgZT13aW5kb3cuaW5uZXJXaWR0aCxvPXdpbmRvdy5pbm5lckhlaWdodCxyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LXpvb21lcl9fd3JhcHBlciIpO3IuY2xhc3NMaXN0LnJlbW92ZSgiem9vbWVyLW5vLXNjYWxlIik7dmFyIG49dC5oYXNBdHRyaWJ1dGUoImRhdGEtb3JpZ2luYWwtc3ZnLWhlaWdodCIpfHx0Lmhhc0F0dHJpYnV0ZSgiZGF0YS1vcmlnaW5hbC1zdmctd2lkdGgiKSxhPXBhcnNlSW50KHQuZ2V0QXR0cmlidXRlKCJkYXRhLW9yaWdpbmFsLXN2Zy1oZWlnaHQiKSwxMCl8fHQubmF0dXJhbEhlaWdodCxpPXBhcnNlSW50KHQuZ2V0QXR0cmlidXRlKCJkYXRhLW9yaWdpbmFsLXN2Zy13aWR0aCIpLDEwKXx8dC5uYXR1cmFsV2lkdGg7LTE9PT10LnNyYy5pbmRleE9mKCIuc3ZnIil8fHdpbmRvdy5pc0lFfHxuP288YXx8ZTxpPyghd2luZG93LmlzRG91YmxldGFwU2NhbGVBZGRlZCYmd2luZG93LnRfem9vbV9faXNNb2JpbGUmJnRfem9vbV9kb3VibGV0YXBTY2FsZUluaXQoKSx0X3pvb21fc2NhbGVfaW5pdCgpKTooZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtem9vbWVyX19zY2FsZSIpLnN0eWxlLmRpc3BsYXk9IiIsci5jbGFzc0xpc3QuYWRkKCJ6b29tZXItbm8tc2NhbGUiKSk6dF96b29tX2ZldGNoU1ZHKHQsbyxlKX1mdW5jdGlvbiB0X3pvb21fZmV0Y2hTVkcodCxlLG8pe3ZhciByPXQuc3JjO2ZldGNoKHIpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRleHQoKX0pKS50aGVuKChmdW5jdGlvbihyKXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtkb2N1bWVudC5ib2R5Lmluc2VydEFkamFjZW50RWxlbWVudCgiYmVmb3JlZW5kIixuKSxuLmlubmVySFRNTD1yO3ZhciBhPW4ucXVlcnlTZWxlY3Rvcigic3ZnIiksaT1NYXRoLnJvdW5kKGEuZ2V0QkJveCgpLndpZHRoKSxsPU1hdGgucm91bmQoYS5nZXRCQm94KCkuaGVpZ2h0KSxjPWkvbDtpPjVlMyYmKGk9NWUzLGw9TWF0aC5yb3VuZChpL2MpKSx0LnNldEF0dHJpYnV0ZSgiZGF0YS1vcmlnaW5hbC1zdmctd2lkdGgiLGkpLHQuc2V0QXR0cmlidXRlKCJkYXRhLW9yaWdpbmFsLXN2Zy1oZWlnaHQiLGwpLHQuc3R5bGUud2lkdGg9aSsicHgiLHQuc3R5bGUuaGVpZ2h0PWwrInB4IixlPGx8fG88aT8oIXdpbmRvdy5pc0RvdWJsZXRhcFNjYWxlQWRkZWQmJndpbmRvdy50X3pvb21fX2lzTW9iaWxlJiZ0X3pvb21fZG91YmxldGFwU2NhbGVJbml0KCksdF96b29tX3NjYWxlX2luaXQoKSk6ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtem9vbWVyX19zY2FsZSIpLnN0eWxlLmRpc3BsYXk9IiIsZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChuKX0pKX1mdW5jdGlvbiB0X3pvb21fc2NhbGVfaW5pdCgpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LXpvb21lcl9fd3JhcHBlciIpLGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtem9vbWVyX19zY2FsZSIpO2Uuc3R5bGUuZGlzcGxheT0iYmxvY2siLCJ5IiE9PWUuZ2V0QXR0cmlidXRlKCJkYXRhLXpvb20tc2NhbGUtaW5pdCIpJiYoZS5zZXRBdHRyaWJ1dGUoImRhdGEtem9vbS1zY2FsZS1pbml0IiwieSIpLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLChmdW5jdGlvbihlKXt2YXIgbz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC1jYXJvdXNlbF9fem9vbWVyX19pdGVtLmFjdGl2ZSAudC1jYXJvdXNlbF9fem9vbWVyX19pbWciKSxyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LWNhcm91c2VsX196b29tZXJfX3RyYWNrIiksbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC1jYXJvdXNlbF9fem9vbWVyX19pbm5lciIpLGE9IXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ6b29tZXItbm8tc2NhbGUiKTsod2luZG93LnRfem9vbV9faXNNb2JpbGUmJmUudGFyZ2V0LmNsb3Nlc3QoIi50LXpvb21lcl9fc2NhbGUiKSYmYXx8IXdpbmRvdy50X3pvb21fX2lzTW9iaWxlJiZhJiYhZS50YXJnZXQuY2xvc2VzdCgiLnQtem9vbWVyX19jbG9zZSwgLnQtY2Fyb3VzZWxfX3pvb21lcl9fY29udHJvbCIpKSYmKHIuc2V0QXR0cmlidXRlKCJkYXRhLW9uLXRyYW5zaXRpb24iLCIiKSxyLnN0eWxlLnRyYW5zaXRpb249Im5vbmUiLHIuc3R5bGUudHJhbnNmb3JtPSJub25lIixvLnN0eWxlLm1heEhlaWdodD0iIix0LmNsYXNzTGlzdC5jb250YWlucygic2NhbGUtYWN0aXZlIik/dF96b29tX3Vuc2NhbGUoKToodC5jbGFzc0xpc3QuYWRkKCJzY2FsZS1hY3RpdmUiKSxuLmNsYXNzTGlzdC5hZGQoInNjYWxlLWFjdGl2ZSIpLHdpbmRvdy50X3pvb21fX2lzTW9iaWxlP3Rfem9vbV9tb2JpbGVab29tUG9zaXRpb25pbmdJbml0KG8pOnRfem9vbV9kZXNrdG9wWm9vbVBvc2l0aW9uaW5nSW5pdChvLGUpKSl9KSwhMSkpfWZ1bmN0aW9uIHRfem9vbV9kb3VibGV0YXBTY2FsZUluaXQoKXt3aW5kb3cuaXNEb3VibGV0YXBTY2FsZUFkZGVkPSEwO3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LXpvb21lcl9fd3JhcHBlciIpLGU7bmV3IEhhbW1lcih0LHtkb21FdmVudHM6ITAsaW5wdXRDbGFzczpIYW1tZXIuVG91Y2hJbnB1dCxjc3NQcm9wczp7dG91Y2hDb2xsb3V0OiJkZWZhdWx0In0scmVjb2duaXplcnM6W1tIYW1tZXIuVGFwXV19KS5vbigidGFwIiwoZnVuY3Rpb24oZSl7aWYoMj09PWUudGFwQ291bnQmJmRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LXpvb21lcl9fc2hvdyIpJiYhZS50YXJnZXQuY2xvc2VzdCgiLnQtY2Fyb3VzZWxfX3pvb21lcl9fY29udHJvbCIpKXt2YXIgbz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC1jYXJvdXNlbF9fem9vbWVyX19pdGVtLmFjdGl2ZSAudC1jYXJvdXNlbF9fem9vbWVyX19pbWciKSxyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LWNhcm91c2VsX196b29tZXJfX2lubmVyIiksbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC1jYXJvdXNlbF9fem9vbWVyX190cmFjayIpO28uc3R5bGUubWF4SGVpZ2h0PSIiLG4uc3R5bGUudHJhbnNpdGlvbj0ibm9uZSIsbi5zdHlsZS50cmFuc2Zvcm09Im5vbmUiLHQuY2xhc3NMaXN0LmNvbnRhaW5zKCJzY2FsZS1hY3RpdmUiKT90X3pvb21fdW5zY2FsZSgpOih0LmNsYXNzTGlzdC5hZGQoInNjYWxlLWFjdGl2ZSIpLHIuY2xhc3NMaXN0LmFkZCgic2NhbGUtYWN0aXZlIiksdF96b29tX21vYmlsZVpvb21Qb3NpdGlvbmluZ0luaXQobykpfX0pKX1mdW5jdGlvbiB0X3pvb21fZGVza3RvcFpvb21Qb3NpdGlvbmluZ0luaXQodCxlKXt2YXIgbz0od2luZG93LmlubmVyV2lkdGgtdC5vZmZzZXRXaWR0aCkvMixyPSh3aW5kb3cuaW5uZXJIZWlnaHQtdC5vZmZzZXRIZWlnaHQpLzIsbixhLGksbCxjPXQuZ2V0QXR0cmlidXRlKCJkYXRhLW9yaWdpbmFsLXN2Zy13aWR0aCIpfHx0Lm5hdHVyYWxXaWR0aCxzPXQuZ2V0QXR0cmlidXRlKCJkYXRhLW9yaWdpbmFsLXN2Zy1oZWlnaHQiKXx8dC5uYXR1cmFsSGVpZ2h0O2Z1bmN0aW9uIF8odCxlKXtpPTEwMCoodm9pZCAwIT09dC50b3VjaGVzP3QudG91Y2hlc1swXS5jbGllbnRYOnQuY2xpZW50WCkvd2luZG93LmlubmVyV2lkdGgsbD0taSooZS5vZmZzZXRXaWR0aC13aW5kb3cuaW5uZXJXaWR0aCkvMTAwLGUuc3R5bGUubGVmdD1sKyJweCJ9ZnVuY3Rpb24gZCh0LGUpe249MTAwKih2b2lkIDAhPT10LnRvdWNoZXM/dC50b3VjaGVzWzBdLmNsaWVudFk6dC5jbGllbnRZKS93aW5kb3cuaW5uZXJIZWlnaHQsYT0tbiooZS5vZmZzZXRIZWlnaHQtd2luZG93LmlubmVySGVpZ2h0KS8xMDAsZS5zdHlsZS50b3A9YSsicHgifXQuc3R5bGUubGVmdD1vKyJweCIsdC5zdHlsZS50b3A9cisicHgiLHdpbmRvdy5pbm5lcldpZHRoPGMmJndpbmRvdy5pbm5lckhlaWdodDxzPyhpPTEwMCplLmNsaWVudFgvd2luZG93LmlubmVyV2lkdGgsbD0taSooYy13aW5kb3cuaW5uZXJXaWR0aCkvMTAwLG49MTAwKmUuY2xpZW50WS93aW5kb3cuaW5uZXJIZWlnaHQsYT0tbioocy13aW5kb3cuaW5uZXJIZWlnaHQpLzEwMCx0LnN0eWxlLmxlZnQ9bCsicHgiLHQuc3R5bGUudG9wPWErInB4Iix3aW5kb3cudF96b29tX19pc01vYmlsZT90Lm9udG91Y2htb3ZlPWZ1bmN0aW9uKGUpe18oZSx0KSxkKGUsdCl9OnQub25tb3VzZW1vdmU9ZnVuY3Rpb24oZSl7XyhlLHQpLGQoZSx0KX0pOndpbmRvdy5pbm5lcldpZHRoPGM/KGk9MTAwKmUuY2xpZW50WC93aW5kb3cuaW5uZXJXaWR0aCxsPS1pKihjLXdpbmRvdy5pbm5lcldpZHRoKS8xMDAsdC5zdHlsZS5sZWZ0PWwrInB4Iix3aW5kb3cudF96b29tX19pc01vYmlsZT90Lm9udG91Y2htb3ZlPWZ1bmN0aW9uKGUpe18oZSx0KX06dC5vbm1vdXNlbW92ZT1mdW5jdGlvbihlKXtfKGUsdCl9KTp3aW5kb3cuaW5uZXJIZWlnaHQ8cyYmKG49MTAwKmUuY2xpZW50WS93aW5kb3cuaW5uZXJIZWlnaHQsYT0tbioocy13aW5kb3cuaW5uZXJIZWlnaHQpLzEwMCx0LnN0eWxlLnRvcD1hKyJweCIsd2luZG93LnRfem9vbV9faXNNb2JpbGU/dC5vbnRvdWNobW92ZT1mdW5jdGlvbihlKXtkKGUsdCl9OnQub25tb3VzZW1vdmU9ZnVuY3Rpb24oZSl7ZChlLHQpfSl9ZnVuY3Rpb24gdF96b29tX21vYmlsZVpvb21Qb3NpdGlvbmluZ0luaXQodCl7dmFyIGU9KHdpbmRvdy5pbm5lcldpZHRoLXQub2Zmc2V0V2lkdGgpLzIsbz0od2luZG93LmlubmVySGVpZ2h0LXQub2Zmc2V0SGVpZ2h0KS8yO3Quc3R5bGUubGVmdD1lKyJweCIsdC5zdHlsZS50b3A9bysicHgiO3ZhciByPXt4OjAseTowfSxuPXt9LGE9e307dC5vbnRvdWNoc3RhcnQ9ZnVuY3Rpb24odCl7bj10X3pvb21fZ2V0VG91Y2hFdmVudFhZKHQpfSx0Lm9udG91Y2htb3ZlPWZ1bmN0aW9uKGkpe3ZhciBsPXRfem9vbV9nZXRUb3VjaEV2ZW50WFkoaSksYz0xLjUscz0obC54LW4ueCkqYyxfPShsLnktbi55KSpjO2EueD1yLngrcyxhLnk9ci55K18sYS54Pi1lJiYoYS54PS1lKSxhLng8ZSYmKGEueD1lKSxhLnk+LW8mJihhLnk9LW8pLGEueTxvJiYoYS55PW8pLHQub2Zmc2V0SGVpZ2h0PHdpbmRvdy5pbm5lckhlaWdodCYmKGEueT0wKSx0LnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlKCIrYS54KyJweCwgIithLnkrInB4KSJ9LHQub250b3VjaGVuZD1mdW5jdGlvbigpe3IueD1hLngsci55PWEueX0sdC5vbnRvdWNoY2FuY2VsPWZ1bmN0aW9uKCl7ci54PWEueCxyLnk9YS55fX1mdW5jdGlvbiB0X3pvb21fZ2V0VG91Y2hFdmVudFhZKHQpe3ZhciBlPXt4OjAseTowfTtpZigidG91Y2hzdGFydCI9PT10LnR5cGV8fCJ0b3VjaG1vdmUiPT09dC50eXBlfHwidG91Y2hlbmQiPT09dC50eXBlfHwidG91Y2hjYW5jZWwiPT09dC50eXBlKXt2YXIgbz10LnRvdWNoZXNbMF18fHQuY2hhbmdlZFRvdWNoZXNbMF07ZS54PW8ucGFnZVgsZS55PW8ucGFnZVl9cmV0dXJuIGV9ZnVuY3Rpb24gdF96b29tX2Nsb3NlKCl7dF96b29tX3Vuc2NhbGUoKSxkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoInQtem9vbWVyX19zaG93IiksZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCJ0LXpvb21lcl9fc2hvd19maXhlZCIpO3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LXpvb21lcl9fY29udGFpbmVyIik7dCYmKHQuaW5uZXJIVE1MPSIiKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgidC16b29tZXJfX2FjdGl2ZSIpfSksMjAwKSx0X3pvb21fdW5sb2NrU2Nyb2xsKCksd2luZG93LnRfem9vbV9faXNNb2JpbGU/KHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsdF96b29tX191cGRhdGVTbGlkZXNIZWlnaHQpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsdF96b29tX191cGRhdGVBY3RpdmVTbGlkZVBvcykpOndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHRfem9vbV9fdXBkYXRlQWN0aXZlU2xpZGVQb3MpfWZ1bmN0aW9uIHRfem9vbV91bnNjYWxlKCl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnQtem9vbWVyX193cmFwcGVyLnNjYWxlLWFjdGl2ZSwgLnQtY2Fyb3VzZWxfX3pvb21lcl9faW5uZXIuc2NhbGUtYWN0aXZlIik7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0LChmdW5jdGlvbih0KXt0LmNsYXNzTGlzdC5yZW1vdmUoInNjYWxlLWFjdGl2ZSIpfSkpO3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LWNhcm91c2VsX196b29tZXJfX2l0ZW0uYWN0aXZlIiksbz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC1jYXJvdXNlbF9fem9vbWVyX190cmFjayIpLHI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtem9vbWVyX193cmFwcGVyIik7aWYoZSl7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIudC1jYXJvdXNlbF9fem9vbWVyX19pbWciKSxhPWUucXVlcnlTZWxlY3RvcigiLnQtem9vbWVyX19jb21tZW50cyIpO2lmKHIpe3ZhciBpPXIub2Zmc2V0SGVpZ2h0LWUub2Zmc2V0SGVpZ2h0LGw9YT9hLm9mZnNldEhlaWdodDowO3dpbmRvdy50X3pvb21fX2lzTW9iaWxlJiYobD1yLmdldEF0dHJpYnV0ZSgiZGF0YS1tYXgtY29tbWVudC1oZWlnaHQiKXx8bCk7dmFyIGM9aStsO24ub25tb3VzZW1vdmU9bnVsbCxuLm9udG91Y2htb3ZlPW51bGwsbi5zdHlsZS50cmFuc2Zvcm09IiIsbi5zdHlsZS5sZWZ0PSIiLG4uc3R5bGUudG9wPSIiLG4uc3R5bGUubWF4SGVpZ2h0PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQtYysicHgifX1pZih2b2lkIDAhPT1lLm9mZnNldExlZnQmJnZvaWQgMCE9PWUub2Zmc2V0VG9wKXt2YXIgcz1lLm9mZnNldExlZnQ7by5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVgoIistcysicHgpIn10Lmxlbmd0aCYmby5zZXRBdHRyaWJ1dGUoImRhdGEtY2FjaGVkLXpvb20iLCJ5Iiksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtvLnN0eWxlLnRyYW5zaXRpb249IiJ9KSwxMDApfWZ1bmN0aW9uIHRfem9vbV9sb2NrU2Nyb2xsKCl7dmFyIHQ9LyhhbmRyb2lkKS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksZTtpZigod2luZG93LnRfem9vbV9faXNpT1MmJjExPT09d2luZG93LnRfem9vbV9faU9TTWFqb3JWZXJzaW9uJiYhd2luZG93Lk1TU3RyZWFtfHx0KSYmIWRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0LWJvZHlfc2Nyb2xsLWxvY2tlZCIpKXt2YXIgbz13aW5kb3cucGFnZVlPZmZzZXQ7ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCJ0LWJvZHlfc2Nyb2xsLWxvY2tlZCIpLGRvY3VtZW50LmJvZHkuc3R5bGUudG9wPSItIitvKyJweCIsZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoImRhdGEtcG9wdXAtc2Nyb2xsdG9wIixvLnRvU3RyaW5nKCkpfX1mdW5jdGlvbiB0X3pvb21fdW5sb2NrU2Nyb2xsKCl7dmFyIHQ9LyhhbmRyb2lkKS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksZTtpZigod2luZG93LnRfem9vbV9faXNpT1MmJjExPT09d2luZG93LnRfem9vbV9faU9TTWFqb3JWZXJzaW9uJiYhd2luZG93Lk1TU3RyZWFtfHx0KSYmZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoInQtYm9keV9zY3JvbGwtbG9ja2VkIikpe3ZhciBvPWRvY3VtZW50LmJvZHkuZ2V0QXR0cmlidXRlKCJkYXRhLXBvcHVwLXNjcm9sbHRvcCIpO2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgidC1ib2R5X3Njcm9sbC1sb2NrZWQiKSxkb2N1bWVudC5ib2R5LnN0eWxlLnRvcD0iIixkb2N1bWVudC5ib2R5LnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1wb3B1cC1zY3JvbGx0b3AiKSx3aW5kb3cuc2Nyb2xsVG8oMCxOdW1iZXIobykpfX1mdW5jdGlvbiB0X3pvb21fc2V0TW9kYWxDb2xvcih0KXt2YXIgZT0iI2ZmZmZmZiIsbz0iIzAwMDAwMCIscj10LmdldEF0dHJpYnV0ZSgiZGF0YS1iZy1jb2xvciIpLG49cnx8ZSxhO249LTEhPT1uLmluZGV4T2YoIi1ncmFkaWVudCgiKT90X3pvb21fZ2V0Rmlyc3RDb2xvckZyb21HcmFkaWVudChuKTp0X3pvb21faGV4VG9SZ2IobiksZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKSE9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50LXN0b3JlX19wcm9kdWN0LXNuaXBwZXQiKSYmZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKS5jb250YWlucyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudC1zdG9yZV9fcHJvZHVjdC1zbmlwcGV0IikpJiZ0JiYobj10LnN0eWxlLmJhY2tncm91bmRDb2xvcik7dmFyIGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQtem9vbWVyX19jb250YWluZXIiKSxsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50LXpvb21lcl9fd3JhcHBlciBzdmciKSxjPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50LXpvb21lcl9fY2xvc2UsIC50LXpvb21lcl9fc2NhbGUiKSxzPWkucXVlcnlTZWxlY3RvckFsbCgiLnQtY2Fyb3VzZWxfX3pvb21lcl9fYXJyb3dfX3dyYXBwZXIiKSxfLGQsbT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudC16b29tZXJfX3RpdGxlLCAudC16b29tZXJfX2Rlc2NyIiksdT0iYmxhY2siPT09dF96b29tX2x1bWFfcmdiKG4pP286ZTt1PT09bz8oXz1lLGQ9InJnYmEoMSwgMSwgMSwgMC4zKSIsQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChzLChmdW5jdGlvbih0KXt0LmNsYXNzTGlzdC5hZGQoInQtY2Fyb3VzZWxfX3pvb21lcl9fYXJyb3dfX3dyYXBwZXJfZGFyayIpfSkpKTooXz1vLGQ9InJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKSIsQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChzLChmdW5jdGlvbih0KXt0LmNsYXNzTGlzdC5yZW1vdmUoInQtY2Fyb3VzZWxfX3pvb21lcl9fYXJyb3dfX3dyYXBwZXJfZGFyayIpfSkpKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGMsKGZ1bmN0aW9uKHQpe3Quc3R5bGUuYmFja2dyb3VuZD1kfSkpLGkuc3R5bGUuYmFja2dyb3VuZENvbG9yPXUsaS5zdHlsZS5jb2xvcj1fLEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwobCwoZnVuY3Rpb24odCl7Im5vbmUiPT09dC5nZXRBdHRyaWJ1dGUoImZpbGwiKT90LnNldEF0dHJpYnV0ZSgiZmlsbCIsIm5vbmUiKTp0LnNldEF0dHJpYnV0ZSgiZmlsbCIsXyk7dmFyIGU9dC5xdWVyeVNlbGVjdG9yQWxsKCJwYXRoIik7ZS5sZW5ndGg+MCYmQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLChmdW5jdGlvbih0KXt0LmdldEF0dHJpYnV0ZSgic3Ryb2tlIikmJnQuc2V0QXR0cmlidXRlKCJzdHJva2UiLF8pLHQuZ2V0QXR0cmlidXRlKCJmaWxsIikmJnQuc2V0QXR0cmlidXRlKCJmaWxsIixfKX0pKX0pKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG0sKGZ1bmN0aW9uKHQpe3Quc3R5bGUuY29sb3I9X30pKX1mdW5jdGlvbiB0X3pvb21fbHVtYV9yZ2IodCl7aWYodCl7dmFyIGU9QXJyYXkuaXNBcnJheSh0KTtpZih2b2lkIDA9PT10KXJldHVybiJibGFjayI7aWYoMCE9PXQuaW5kZXhPZigicmdiIikmJiFlKXJldHVybiJibGFjayI7dmFyIG89ZT90OnQuc3BsaXQoIigiKVsxXS5zcGxpdCgiKSIpWzBdLnNwbGl0KCIsIik7cmV0dXJuIG8ubGVuZ3RoPDN8fC4yMTI2Km9bMF0rLjcxNTIqb1sxXSsuMDcyMipvWzJdPDEyOD8iYmxhY2siOiJ3aGl0ZSJ9fWZ1bmN0aW9uIHRfem9vbV9oZXhUb1JnYih0KXt2YXIgZT0vXiM/KFthLWZcZF0pKFthLWZcZF0pKFthLWZcZF0pJC9pO3Q9dC5yZXBsYWNlKGUsKGZ1bmN0aW9uKHQsZSxvLHIpe3JldHVybiBlK2UrbytvK3Ircn0pKTt2YXIgbz0vXiM/KFthLWZcZF17Mn0pKFthLWZcZF17Mn0pKFthLWZcZF17Mn0pJC9pLmV4ZWModCkscj1vP3tyOnBhcnNlSW50KG9bMV0sMTYpLGc6cGFyc2VJbnQob1syXSwxNiksYjpwYXJzZUludChvWzNdLDE2KX06bnVsbDtyZXR1cm4gbz9bci5yLHIuZyxyLmJdOm51bGx9ZnVuY3Rpb24gdF96b29tX2dldEZpcnN0Q29sb3JGcm9tR3JhZGllbnQodCl7dmFyIGU9L3JnYmFcKFxkKyxcZCssXGQrLFxkK1wpL2dpLG89LyhcZCspLChcZCspLChcZCspL2kscj10Lm1hdGNoKGUpLG49cj9yWzBdOm51bGwsYT1vLmV4ZWMobiksaT1hP3tyOmFbMV0sZzphWzJdLGI6YVszXX06bnVsbDtyZXR1cm4gYT9baS5yLGkuZyxpLmJdOm51bGx9ZnVuY3Rpb24gdF96b29tX3NldEhpZGVDb250cm9sc1RpbWVyKCl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnQtY2Fyb3VzZWxfX3pvb21lcl9fYXJyb3dfX3dyYXBwZXIsIC50LXpvb21lcl9fc2NhbGUiKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHQsKGZ1bmN0aW9uKHQpe3QuY2xhc3NMaXN0LnJlbW92ZSgidC16b29tZXJfX2hpZGUtYW5pbWF0aW9uIil9KSksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHQsKGZ1bmN0aW9uKHQpe3QuY2xhc3NMaXN0LmFkZCgidC16b29tZXJfX2hpZGUtYW5pbWF0aW9uIil9KSl9KSl9ZnVuY3Rpb24gdF96b29tX19pc1NjYWxlZCh0KXtyZXR1cm4gd2luZG93LnZpc3VhbFZpZXdwb3J0JiYxIT09d2luZG93LnZpc3VhbFZpZXdwb3J0LnNjYWxlfHx0LmNsYXNzTGlzdC5jb250YWlucygic2NhbGUtYWN0aXZlIil9dF9vblJlYWR5KChmdW5jdGlvbigpe3dpbmRvdy50em9vbWluaXRlZHx8dF9pbml0Wm9vbSgpfSkpOwoKZnVuY3Rpb24gdDM5Nl9zY2FsZUJsb2NrKGUpe3ZhciB0PXQzOTZfZGV0ZWN0UmVzb2x1dGlvbihlKSxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWMiK2UpO2lmKGEpe3ZhciBsOyJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3cudDM5Nl9fZ2V0Q3VycmVudFNjYWxlRmFjdG9yP2w9dDM5Nl9fZ2V0Q3VycmVudFNjYWxlRmFjdG9yKGUpOihsPXdpbmRvdy50biYmd2luZG93LnRuWyJhYiIrZV0mJndpbmRvdy50blsiYWIiK2VdLnNjYWxlRmFjdG9yKXx8KGw9d2luZG93LnRuX3NjYWxlX2ZhY3Rvcik7dmFyIG49YS5xdWVyeVNlbGVjdG9yKCIudDM5Nl9fYXJ0Ym9hcmQiKSxvPXQzOTZfc2NhbGVfX2NvbGxlY3RTY2FsZURhdGEobixsKTtpZihuJiYwIT09by5sZW5ndGgpe3ZhciByPXQzOTZfYWJfX2dldEZpZWxkVmFsdWUobiwiaGVpZ2h0IiksYz1NYXRoLmZsb29yKHIqbCksaSxfO2lmKHQzOTZfYWJfX2dldEZpZWxkVmFsdWUobiwiaGVpZ2h0X3ZoIikpe3ZhciBzPXQzOTZfYWJfX2dldEZpZWxkVmFsdWUobiwiaGVpZ2h0IiksZD10Mzk2X2FiX19nZXRIZWlnaHQobiksdT1zKmw7Yz11Pj1kP3U6ZH1pZih0Mzk2X3NjYWxlX191cGRhdGVBcnRib2FyZFN0YXRlKG4sYyksdDM5Nl9pc09ubHlTY2FsYWJsZUJyb3dzZXIoKSl0Mzk2X3NjYWxlX19zY2FsZUlzT25seVNjYWxhYmxlQmxvY2sobyk7ZWxzZXt2YXIgbT1vLmZpbHRlcigoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5lbGVtVHlwZTtyZXR1cm4idGV4dCI9PT10fHwiYnV0dG9uIj09PXR9KSksaD1vLmZpbHRlcigoZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuInNoYXBlIj09PWUuZWxlbVR5cGV9KSkscD0vXigoPyFjaHJvbWV8YW5kcm9pZCkuKSpzYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO3AmJnQzOTZfc2NhbGVfX3NjaGVkdWxlX19zY2FsZVRleHRFbGVtZW50cyhtKSx0Mzk2X3NjYWxlX19zY2hlZHVsZV9fc2NhbGVTaGFwZUVsZW1lbnRzKGgpLG8uZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIGE9ZS5lbGVtZW50LG49ZS5lbGVtZW50Q29yZSxvPWUuZWxlbVR5cGU7InllcyIhPT1hLmdldEF0dHJpYnV0ZSgiZGF0YS1zY2FsZS1vZmYiKSYmKGEuc3R5bGUuem9vbT1sKSwidGV4dCI9PT1vJiZ0PDEyMDAmJm4mJiFwJiYobi5zdHlsZS53ZWJraXRUZXh0U2l6ZUFkanVzdD0iYXV0byIpLG4mJihuLnN0eWxlLnRyYW5zZm9ybU9yaWdpbj0iY2VudGVyIil9KSl9fX19ZnVuY3Rpb24gdDM5Nl9zY2FsZV9fc2NoZWR1bGVfX3NjYWxlVGV4dEVsZW1lbnRzKGUpe3dpbmRvdy50bnx8KHdpbmRvdy50bj17fSksd2luZG93LnRuLnNjaGVkdWxlZFRleHRFbGVtZW50c0ZvclNjYWxlfHwod2luZG93LnRuLnNjaGVkdWxlZFRleHRFbGVtZW50c0ZvclNjYWxlPVtdKSx3aW5kb3cudG4uc2NoZWR1bGVkVGV4dEVsZW1lbnRzRm9yU2NhbGU9d2luZG93LnRuLnNjaGVkdWxlZFRleHRFbGVtZW50c0ZvclNjYWxlLmNvbmNhdChlKSxjbGVhclRpbWVvdXQod2luZG93LnRuLnRleHRFbGVtZW50c1NjYWxlVGltZXIpLHdpbmRvdy50bi50ZXh0RWxlbWVudHNTY2FsZVRpbWVyPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dDM5Nl9zY2FsZV9fc2NhbGVUZXh0RWxlbWVudHMod2luZG93LnRuLnNjaGVkdWxlZFRleHRFbGVtZW50c0ZvclNjYWxlKSx3aW5kb3cudG4uc2NoZWR1bGVkVGV4dEVsZW1lbnRzRm9yU2NhbGU9W119KSwxKX1mdW5jdGlvbiB0Mzk2X3NjYWxlX19zY2FsZVRleHRFbGVtZW50cyhlKXt2YXIgdD10Mzk2X19pbml0RmFzdERPTSgpO3Qud3JpdGUoKGZ1bmN0aW9uKCl7ZS5mb3JFYWNoKChmdW5jdGlvbihlKXtlLmVsZW1lbnQuc3R5bGUuem9vbT0iIn0pKX0pKSx0LnJlYWQoKGZ1bmN0aW9uKCl7ZS5mb3JFYWNoKChmdW5jdGlvbihlKXtlLmNhY2hlZEZvbnRTaXplPXBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShlLmVsZW1lbnRDb3JlKS5mb250U2l6ZSksZS5jYWNoZWRUZXh0U2l6ZUFkanVzdD1lLmVsZW1lbnRDb3JlLnN0eWxlLndlYmtpdFRleHRTaXplQWRqdXN0fSkpfSkpLHQud3JpdGUoKGZ1bmN0aW9uKCl7ZS5mb3JFYWNoKChmdW5jdGlvbihlKXtlLmVsZW1lbnRDb3JlLnN0eWxlLndlYmtpdFRleHRTaXplQWRqdXN0PSJub25lIixlLmVsZW1lbnQuc3R5bGUuem9vbT1lLnNjYWxlRmFjdG9yfSkpfSkpLHQucmVhZCgoZnVuY3Rpb24oKXtlLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UuY3VycmVudEZvbnRTaXplPXBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShlLmVsZW1lbnRDb3JlKS5mb250U2l6ZSl9KSl9KSksdC53cml0ZSgoZnVuY3Rpb24oKXtlLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0PU1hdGguYWJzKGUuY2FjaGVkRm9udFNpemUtZS5jdXJyZW50Rm9udFNpemUpO2UuZWxlbWVudENvcmUuc3R5bGUud2Via2l0VGV4dFNpemVBZGp1c3Q9dD49MT8ibm9uZSI6ZS5jYWNoZWRUZXh0U2l6ZUFkanVzdCx0Pj0xJiYoZS5lbGVtZW50Q29yZS5zdHlsZS5mb250U2l6ZT1NYXRoLnJvdW5kKGUuY2FjaGVkRm9udFNpemUqZS5zY2FsZUZhY3RvcikrInB4Iil9KSl9KSl9ZnVuY3Rpb24gdDM5Nl9zY2FsZV9fc2NoZWR1bGVfX3NjYWxlU2hhcGVFbGVtZW50cyhlKXt3aW5kb3cudG58fCh3aW5kb3cudG49e30pLHdpbmRvdy50bi5zY2hlZHVsZWRTaGFwZUVsZW1lbnRzRm9yU2NhbGV8fCh3aW5kb3cudG4uc2NoZWR1bGVkU2hhcGVFbGVtZW50c0ZvclNjYWxlPVtdKSx3aW5kb3cudG4uc2NoZWR1bGVkU2hhcGVFbGVtZW50c0ZvclNjYWxlPXdpbmRvdy50bi5zY2hlZHVsZWRTaGFwZUVsZW1lbnRzRm9yU2NhbGUuY29uY2F0KGUpLGNsZWFyVGltZW91dCh3aW5kb3cudG4uc2hhcGVFbGVtZW50c1NjYWxlVGltZXIpLHdpbmRvdy50bi5zaGFwZUVsZW1lbnRzU2NhbGVUaW1lcj1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3QzOTZfc2NhbGVfX3NjYWxlU2hhcGVFbGVtZW50cyh3aW5kb3cudG4uc2NoZWR1bGVkU2hhcGVFbGVtZW50c0ZvclNjYWxlKSx3aW5kb3cudG4uc2NoZWR1bGVkU2hhcGVFbGVtZW50c0ZvclNjYWxlPVtdfSksMSl9ZnVuY3Rpb24gdDM5Nl9zY2FsZV9fc2NhbGVTaGFwZUVsZW1lbnRzKGUpe3ZhciB0PXQzOTZfX2luaXRGYXN0RE9NKCk7dC5yZWFkKChmdW5jdGlvbigpe2UuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQ9dDM5Nl9lbGVtX19nZXRGaWVsZFZhbHVlKGUuZWxlbWVudCwiaGVpZ2h0Iik7dD10Mzk2X2VsZW1fX2dldEhlaWdodChlLmVsZW1lbnQsdCksdD10Mzk2X2VsZW1fX2NvbnZlcnRQb3NpdGlvbl9fTG9jYWxfX3RvQWJzb2x1dGUoZS5lbGVtZW50LCJoZWlnaHQiLHQpO3ZhciBhPXQzOTZfZWxlbV9fZ2V0RmllbGRWYWx1ZShlLmVsZW1lbnQsIndpZHRoIik7YT10Mzk2X2VsZW1fX2dldFdpZHRoKGUuZWxlbWVudCxhKSxhPXQzOTZfZWxlbV9fY29udmVydFBvc2l0aW9uX19Mb2NhbF9fdG9BYnNvbHV0ZShlLmVsZW1lbnQsIndpZHRoIixhKTt2YXIgbD1wYXJzZUZsb2F0KHQzOTZfZWxlbV9fZ2V0RmllbGRWYWx1ZShlLmVsZW1lbnQsInRvcCIpKTtsPXQzOTZfZWxlbV9fY29udmVydFBvc2l0aW9uX19Mb2NhbF9fdG9BYnNvbHV0ZShlLmVsZW1lbnQsInRvcCIsbCk7dmFyIG49cGFyc2VGbG9hdCh0Mzk2X2VsZW1fX2dldEZpZWxkVmFsdWUoZS5lbGVtZW50LCJsZWZ0IikpO249dDM5Nl9lbGVtX19jb252ZXJ0UG9zaXRpb25fX0xvY2FsX190b0Fic29sdXRlKGUuZWxlbWVudCwibGVmdCIsbiksZS5zaGFwZVNpemU9e3RvcDpsLGxlZnQ6bix3aWR0aDphLGhlaWdodDp0fX0pKX0pKTt2YXIgYT1lLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2hhcGVTaXplLndpZHRoPD0yfHxlLnNoYXBlU2l6ZS5oZWlnaHQ8PTJ9KSk7dC5yZWFkKChmdW5jdGlvbigpe2EuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQ9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZS5lbGVtZW50Q29yZSk7ZS5ib3JkZXJXaWR0aD10LmJvcmRlcldpZHRoLGUuaXNJbWFnZT0ibm9uZSIhPT10LmJhY2tncm91bmRJbWFnZSxlLmlzQW5pbWF0ZWQ9ZS5lbGVtZW50LmdldEF0dHJpYnV0ZSgiZGF0YS1hbmltYXRlLXNicy1ldmVudCIpfSkpfSkpLHQud3JpdGUoKGZ1bmN0aW9uKCl7YS5mb3JFYWNoKChmdW5jdGlvbihlKXtpZigiMHB4Ij09PWUuYm9yZGVyV2lkdGgmJiFlLmlzSW1hZ2UmJiFlLmlzQW5pbWF0ZWQpe2UuZWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiem9vbSIpO3ZhciB0PWUuc2hhcGVTaXplLndpZHRoKmUuc2NhbGVGYWN0b3IsYT1lLnNoYXBlU2l6ZS5oZWlnaHQqZS5zY2FsZUZhY3RvcixsPWUuc2hhcGVTaXplLnRvcCplLnNjYWxlRmFjdG9yLG49ZS5zaGFwZVNpemUubGVmdCplLnNjYWxlRmFjdG9yO2UuZWxlbWVudC5zdHlsZS53aWR0aD1wYXJzZUZsb2F0KHQpKyJweCIsZS5lbGVtZW50LnN0eWxlLmhlaWdodD1wYXJzZUZsb2F0KGEpKyJweCIsZS5lbGVtZW50LnN0eWxlLnRvcD1NYXRoLnJvdW5kKGwpKyJweCIsZS5lbGVtZW50LnN0eWxlLmxlZnQ9TWF0aC5yb3VuZChuKSsicHgiLGUuZWxlbWVudC5zZXRBdHRyaWJ1dGUoImRhdGEtc2NhbGUtb2ZmIiwieWVzIil9fSkpfSkpfWZ1bmN0aW9uIHQzOTZfc2NhbGVfX2NvbGxlY3RTY2FsZURhdGEoZSx0KXt2YXIgYTtyZXR1cm4gdDM5Nl9zY2FsZV9fZ2V0RWxlbWVudHNUb1NjYWxlKGUpLm1hcCgoZnVuY3Rpb24oZSl7dmFyIGE9ZS5xdWVyeVNlbGVjdG9yKCIudG4tbW9sZWN1bGUsIC50bi1hdG9tIiksbD10Mzk2X3NjYWxlX19nZXRFbGVtZW50VHlwZShlKSxuPXQzOTZfZWxlbV9fZ2V0RmllbGRWYWx1ZShlLCJjb250YWluZXIiKTtpZihufHwiZ3JvdXAiIT09bHx8KG49ImdyaWQiKSxhJiYiZ3JpZCI9PT1uKXJldHVybntlbGVtZW50OmUsZWxlbWVudENvcmU6YSxlbGVtVHlwZTpsLHNjYWxlRmFjdG9yOnR9fSkpLmZpbHRlcihCb29sZWFuKX1mdW5jdGlvbiB0Mzk2X3NjYWxlX19zY2FsZUlzT25seVNjYWxhYmxlQmxvY2soZSl7ZS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgdD1lLmVsZW1lbnQsYT1lLmVsZW1lbnRDb3JlLGw9ZS5lbGVtVHlwZSxuPWEuY2xvc2VzdCgiLnRuLWF0b21fX3NjYWxlLXdyYXBwZXIiKTtufHwodDM5Nl9zY2FsZV9fd3JhcEVsZW1lbnQoYSxjdXJyZW50U2NhbGVGYWN0b3IsInRuLWF0b21fX3NjYWxlLXdyYXBwZXIiKSxuPWEuY2xvc2VzdCgiLnRuLWF0b21fX3NjYWxlLXdyYXBwZXIiKSksdC5zdHlsZS56b29tPSIiLHQzOTZfc2NhbGVfX3Byb2Nlc3NCYWNrZHJvcEZpbHRlcih0LGEsbiksdDM5Nl9zY2FsZV9fcHJvY2Vzc0JhY2tncm91bmRGb3JTaGFwZSh0LGEsbCxjdXJyZW50U2NhbGVGYWN0b3IpfSkpfWZ1bmN0aW9uIHQzOTZfc2NhbGVfX2dldEVsZW1lbnRzVG9TY2FsZShlKXtyZXR1cm4gZT9BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLmNoaWxkcmVuKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlJiYoZS5jbGFzc0xpc3QuY29udGFpbnMoInQzOTZfX2VsZW0iKXx8ZS5jbGFzc0xpc3QuY29udGFpbnMoInQzOTZfX2dyb3VwIikpfSkpOltdfWZ1bmN0aW9uIHQzOTZfc2NhbGVfX3VwZGF0ZUFydGJvYXJkU3RhdGUoZSx0KXtlLmNsYXNzTGlzdC5hZGQoInQzOTZfX2FydGJvYXJkX3NjYWxlIik7dmFyIGE9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtYXJ0Ym9hcmQtcmVjaWQiKSxsO2lmKCEoImh1ZyI9PT1lLmdldEF0dHJpYnV0ZSgiZGF0YS1hcnRib2FyZC1oZWlnaHRtb2RlIikpKXt2YXIgbj0nPHN0eWxlIGNsYXNzPSJ0Mzk2X19zY2FsZS1zdHlsZSI+LnQtcmVjI3JlYycrYSsiIHsgb3ZlcmZsb3c6IHZpc2libGU7IH0jcmVjIithKyIgLnQzOTZfX2FydGJvYXJkOm5vdCgudDM5Nl9fYXJ0Ym9hcmQtZmxleCksI3JlYyIrYSsiIC50Mzk2X19hcnRib2FyZDpub3QoLnQzOTZfX2FydGJvYXJkLWZsZXgpIC50Mzk2X19jYXJyaWVyLCNyZWMiK2ErIiAudDM5Nl9fYXJ0Ym9hcmQ6bm90KC50Mzk2X19hcnRib2FyZC1mbGV4KSAudDM5Nl9fZmlsdGVyIHsgd2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7IG1heC13aWR0aDogMTAwJTt9I3JlYyIrYSsiIC50Mzk2X19jYXJyaWVyLCNyZWMiK2ErIiAudDM5Nl9fZmlsdGVyLCNyZWMiK2ErIiAudDM5Nl9fYXJ0Ym9hcmQge2hlaWdodDogIit0KyJweCAhaW1wb3J0YW50O308L3N0eWxlPiI7ZS5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWVuZCIsbil9fWZ1bmN0aW9uIHQzOTZfc2NhbGVfX3dyYXBFbGVtZW50KGUsdCxhKXtpZihlKXt2YXIgbD1lLnBhcmVudE5vZGU7aWYobCl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bi5jbGFzc0xpc3QuYWRkKGEpLG4uc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgiK3QrIikiLG4uYXBwZW5kQ2hpbGQoZSksbC5hcHBlbmRDaGlsZChuKX19fWZ1bmN0aW9uIHQzOTZfc2NhbGVfX3Byb2Nlc3NCYWNrZHJvcEZpbHRlcihlLHQsYSl7Im5vbmUiPT09ZS5zdHlsZS5iYWNrZHJvcEZpbHRlciYmKGUuc3R5bGUuYmFja2Ryb3BGaWx0ZXI9IiIpO3ZhciBsPWdldENvbXB1dGVkU3R5bGUoZSkuYmFja2Ryb3BGaWx0ZXI7aWYobCl7ZS5zdHlsZS5iYWNrZHJvcEZpbHRlcj0ibm9uZSIsYS5zdHlsZS5iYWNrZHJvcEZpbHRlcj1sO3ZhciBuPWdldENvbXB1dGVkU3R5bGUodCkuYm9yZGVyUmFkaXVzOyIwcHgiIT09biYmKGEuc3R5bGUuYm9yZGVyUmFkaXVzPW4pfX1mdW5jdGlvbiB0Mzk2X3NjYWxlX19wcm9jZXNzQmFja2dyb3VuZEZvclNoYXBlKGUsdCxhLGwpe2lmKCJzaGFwZSI9PT1hKXt2YXIgbj10JiZnZXRDb21wdXRlZFN0eWxlKHQpLG87aWYobilpZigobiYmbi5iYWNrZ3JvdW5kSW1hZ2V8fHQuZ2V0QXR0cmlidXRlKCJkYXRhLW9yaWdpbmFsIikpJiYiZml4ZWQiPT09bi5iYWNrZ3JvdW5kQXR0YWNobWVudCl7ZS5yZW1vdmVDaGlsZCh0LnBhcmVudE5vZGUpLGUuYXBwZW5kQ2hpbGQodCk7dmFyIHI9dDM5Nl9lbGVtX19nZXRGaWVsZFZhbHVlKGUsImhlaWdodCIpO3I9dDM5Nl9lbGVtX19nZXRIZWlnaHQoZSxyKSxyPXQzOTZfZWxlbV9fY29udmVydFBvc2l0aW9uX19Mb2NhbF9fdG9BYnNvbHV0ZShlLCJoZWlnaHQiLHIpO3ZhciBjPXQzOTZfZWxlbV9fZ2V0RmllbGRWYWx1ZShlLCJ3aWR0aCIpO2M9dDM5Nl9lbGVtX19nZXRXaWR0aChlLGMpLGM9dDM5Nl9lbGVtX19jb252ZXJ0UG9zaXRpb25fX0xvY2FsX190b0Fic29sdXRlKGUsIndpZHRoIixjKTt2YXIgaT1wYXJzZUZsb2F0KHQzOTZfZWxlbV9fZ2V0RmllbGRWYWx1ZShlLCJ0b3AiKSksXz1wYXJzZUZsb2F0KHQzOTZfZWxlbV9fZ2V0RmllbGRWYWx1ZShlLCJsZWZ0IikpO2Uuc3R5bGUudG9wPWkqbCsicHgiLGUuc3R5bGUubGVmdD1fKmwrInB4IixlLnN0eWxlLmhlaWdodD1yKmwrInB4IixlLnN0eWxlLndpZHRoPWMqbCsicHgiLGUuc2V0QXR0cmlidXRlKCJkYXRhLXNjYWxlLW9mZiIsInllcyIpfX19ZnVuY3Rpb24gdDM5Nl9zY2FsZV9fZ2V0RWxlbWVudFR5cGUoZSl7dmFyIHQ9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtZWxlbS10eXBlIik7cmV0dXJuIXQmJmUuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0bi1ncm91cCIpJiYodD0iZ3JvdXAiKSx0fXdpbmRvdy50Mzk2X2luaXRpYWxTY2FsZXx8KHdpbmRvdy50Mzk2X2luaXRpYWxTY2FsZT1mdW5jdGlvbigpe30pOwoKd2luZG93LlRpbGRhPXdpbmRvdy5UaWxkYXx8e30sZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dmFyIGU9bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLHQ9LTEhPT1lLmluZGV4T2YoIm1zaWUiKSYmcGFyc2VJbnQoZS5zcGxpdCgibXNpZSIpWzFdKTtpZig4PT09dHx8OT09PXQpe3ZhciByPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50LWJ0biIpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwociwoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5nZXRBdHRyaWJ1dGUoImhyZWYiKTtlLnF1ZXJ5U2VsZWN0b3IoInRhYmxlIikmJnQmJi0xPT09dC5pbmRleE9mKCIjcG9wdXA6IikmJi0xPT09dC5pbmRleE9mKCIjcHJpY2U6IikmJmUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLChmdW5jdGlvbihlKXt2YXIgdD1lLnRhcmdldC5nZXRBdHRyaWJ1dGUoImhyZWYiKTtlLnByZXZlbnREZWZhdWx0KCksd2luZG93LmxvY2F0aW9uLmhyZWY9dH0pKX0pKX10cnl7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKSxpPWE/YS5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtY29va2llIik6bnVsbDthJiYibm8iPT09aXx8VGlsZGEuc2F2ZVVUTSgpfWNhdGNoKG4pe312YXIgbz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuciIpO2Z1bmN0aW9uIGMoZSl7dmFyIHQ9ZS50YXJnZXQuY2xvc2VzdCgiYS5qcy1jbGljay1zdGF0Iil8fGUudGFyZ2V0LmNsb3Nlc3QoIi5qcy1jbGljay16ZXJvLXN0YXQiKTtpZihlLnRhcmdldCYmdCl7dmFyIHI9dC5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtZXZlbnQtbmFtZSIpLGE9dC50ZXh0Q29udGVudCxpPXQuZ2V0QXR0cmlidXRlKCJocmVmIil8fCIiLG89dC5nZXRBdHRyaWJ1dGUoInRhcmdldCIpO2lmKCFyKXt2YXIgYz10LmNsb3Nlc3QoIi5yIiksZDtyPSIvdGlsZGEvY2xpY2svIisoYz9jLmdldEF0dHJpYnV0ZSgiaWQiKToiIikrIi8/dXJsPSIraX1pZihUaWxkYS5zZW5kRXZlbnRUb1N0YXRpc3RpY3MocixhKSwiaHR0cCI9PT1pLnN1YnN0cmluZygwLDQpJiYtMT09PWkuaW5kZXhPZigiLnR5cGVmb3JtLmNvbS8iKSlyZXR1cm4gd2luZG93LnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7d2luZG93Lm9wZW4oaSwiX2JsYW5rIj09PW8/Il9ibGFuayI6Il9zZWxmIil9KSwiX2JsYW5rIj09PW8/MDozMDApLGUucHJldmVudERlZmF1bHQoKSwhMX19QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChvLChmdW5jdGlvbihlKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixjKSxlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixjKX0pKTt2YXIgZD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJpbnB1dC5qcy1hbW91bnQiKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGQsKGZ1bmN0aW9uKGUpe3ZhciB0PWUudmFsdWU7dD10LnJlcGxhY2UoLywvZywiLiIpLHQ9cGFyc2VGbG9hdCh0LnJlcGxhY2UoL1teMC05XC5dL2csIiIpKSxlLnZhbHVlPXR9KSl9VGlsZGEuc2VuZEVjb21tZXJjZUV2ZW50PWZ1bmN0aW9uKGUsdCl7aWYodm9pZCAwPT09dHx8MD09PXQubGVuZ3RoKXJldHVybiExO2lmKHZvaWQgMD09PWV8fCJhZGQiIT09ZSYmInJlbW92ZSIhPT1lJiYicHVyY2hhc2UiIT09ZSYmImRldGFpbCIhPT1lKXJldHVybiExO2Zvcih2YXIgcixhPSIiLGk9MCxvPVtdLGMsZCxuPSIiLG09IiIsbD0iIix1PTA7dTx0Lmxlbmd0aDt1Kyspe2E+IiImJihhKz0iLCAiKSxhKz0oZD10W3VdKS5uYW1lLGkrPWQucHJpY2UsYz0iIix2b2lkIDAhPT1kLm9wdGlvbnMmJmQub3B0aW9ucy5sZW5ndGg+MCYmQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChkLm9wdGlvbnMsKGZ1bmN0aW9uKGUpe2MrPWUub3B0aW9uKyI6ICIrZS52YXJpYW50KyI7ICJ9KSk7dmFyIHA9e25hbWU6ZC5uYW1lLHByaWNlOmQucHJpY2UsdmFyaWFudDpjLHF1YW50aXR5OjF9O2QuaWQmJmQuaWQ+MCYmKGlkPWQuaWQscC5pZD1kLmlkKSxkLnVpZCYmZC51aWQ+MCYmKG09ZC51aWQscC51aWQ9ZC51aWQpLGQucmVjaWQmJmQucmVjaWQ+MCYmKG49ZC5yZWNpZCxwLnJlY2lkPWQucmVjaWQpLGQubGlkJiZkLmxpZD4wJiYobD1kLmxpZCxwLmxpZD1kLmxpZCksZC5za3UmJmQuc2t1PjAmJihwLnNrdT1kLnNrdSksb1tvLmxlbmd0aF09cH12YXIgcDsiYWRkIiE9PWUmJiJyZW1vdmUiIT09ZXx8KHI9Ii90aWxkYS9jYXJ0LyIrZSsiLyIsbj4wJiYocis9IiIrbiksbT4wP3IrPSItdSIrbTpsPjAmJihyKz0iLSIrbCkpLCJkZXRhaWwiPT09ZSYmKHI9Ii90aWxkYS9wcm9kdWN0L2RldGFpbC8iLG0+MD9yKz1tKyIvIjoobj4wJiYocis9InIiK24pLGw+MCYmKHIrPSItbCIrbCkpKSwicHVyY2hhc2UiPT09ZSYmKHI9Ii90aWxkYS9yZWMiK24rIi9wYXltZW50LyIpLChwPXtlY29tbWVyY2U6e319KS5lY29tbWVyY2VbZV09e3Byb2R1Y3RzOm99LFRpbGRhLnNlbmRFdmVudFRvU3RhdGlzdGljcyhyLGEscCxpKX0sVGlsZGEuc2VuZEV2ZW50VG9TdGF0aXN0aWNzPWZ1bmN0aW9uKGUsdCxyLGEpe3ZhciBpPSIvIj09PWUuc3Vic3RyaW5nKDAsMSksbz1bXSxjLGQ7KGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKSkmJihkPW51bGwhPT1jLmdldEF0dHJpYnV0ZSgiZGF0YS1mYi1ldmVudCIpP2MuZ2V0QXR0cmlidXRlKCJkYXRhLWZiLWV2ZW50Iik6d2luZG93LmpRdWVyeSYmdm9pZCAwIT09alF1ZXJ5KCIjYWxscmVjb3JkcyIpLmRhdGEoImZiLWV2ZW50Iik/alF1ZXJ5KCIjYWxscmVjb3JkcyIpLmRhdGEoImZiLWV2ZW50Iik6bnVsbCk7dmFyIG49ISghZHx8Im5vc2VuZCIhPT1kKSxtPWM/Yy5nZXRBdHRyaWJ1dGUoImRhdGEtdmstZXZlbnQiKTpudWxsO2MmJihtPW51bGwhPT1jLmdldEF0dHJpYnV0ZSgiZGF0YS12ay1ldmVudCIpP2MuZ2V0QXR0cmlidXRlKCJkYXRhLXZrLWV2ZW50Iik6d2luZG93LmpRdWVyeSYmdm9pZCAwIT09alF1ZXJ5KCIjYWxscmVjb3JkcyIpLmRhdGEoInZrLWV2ZW50Iik/alF1ZXJ5KCIjYWxscmVjb3JkcyIpLmRhdGEoInZrLWV2ZW50Iik6bnVsbCk7dmFyIGw9ISghbXx8Im5vc2VuZCIhPT1tKSx1PSIiLHA9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnQ3MDYiKTtpZih1PWMuZ2V0QXR0cmlidXRlKCJkYXRhLXRpbGRhLWN1cnJlbmN5Iik/Yy5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtY3VycmVuY3kiKTpwJiZwLmdldEF0dHJpYnV0ZSgiZGF0YS1wcm9qZWN0LWN1cnJlbmN5LWNvZGUiKT9wLmdldEF0dHJpYnV0ZSgiZGF0YS1wcm9qZWN0LWN1cnJlbmN5LWNvZGUiKToiUlVCIixyfHwocj13aW5kb3cubG9jYXRpb24uaHJlZiksKGE9YT9wYXJzZUZsb2F0KGEpOjApPjApaWYod2luZG93LmRhdGFMYXllcnx8KHdpbmRvdy5kYXRhTGF5ZXI9W10pLC0xIT09ZS5pbmRleE9mKCIvdGlsZGEvIikmJi0xIT09ZS5pbmRleE9mKCIvcGF5bWVudC8iKSYmd2luZG93LnRpbGRhRm9ybSYmd2luZG93LnRpbGRhRm9ybS5vcmRlcklkRm9yU3RhdD4iIilyPXtlY29tbWVyY2U6e3B1cmNoYXNlOnthY3Rpb25GaWVsZDp7aWQ6d2luZG93LnRpbGRhRm9ybS5vcmRlcklkRm9yU3RhdCxyZXZlbnVlOndpbmRvdy50aWxkYUZvcm0uYW1vdW50Rm9yU3RhdH0scHJvZHVjdHM6d2luZG93LnRpbGRhRm9ybS5hclByb2R1Y3RzRm9yU3RhdH19fSx3aW5kb3cudGlsZGFGb3JtLnRpbGRhcGF5bWVudCYmd2luZG93LnRpbGRhRm9ybS50aWxkYXBheW1lbnQucHJvbW9jb2RlJiYoci5lY29tbWVyY2UucHVyY2hhc2UuYWN0aW9uRmllbGQuY291cG9uPXdpbmRvdy50aWxkYUZvcm0udGlsZGFwYXltZW50LnByb21vY29kZSksci5ldmVudD0icHVyY2hhc2UiO2Vsc2UgaWYociYmci5lY29tbWVyY2UmJihyLmVjb21tZXJjZS5hZGQmJnIuZWNvbW1lcmNlLmFkZC5wcm9kdWN0cz9vPXIuZWNvbW1lcmNlLmFkZC5wcm9kdWN0czpyLmVjb21tZXJjZS5yZW1vdmUmJnIuZWNvbW1lcmNlLnJlbW92ZS5wcm9kdWN0cz9vPXIuZWNvbW1lcmNlLnJlbW92ZS5wcm9kdWN0czpyLmVjb21tZXJjZS5kZXRhaWwmJnIuZWNvbW1lcmNlLmRldGFpbC5wcm9kdWN0cyYmKG89ci5lY29tbWVyY2UuZGV0YWlsLnByb2R1Y3RzKSxvJiZvLmxlbmd0aD4wKSl7Zm9yKHZhciBzPTA7czxvLmxlbmd0aDtzKyspb1tzXS5pZHx8KG9bc10udWlkP29bc10uaWQ9b1tzXS51aWQ6b1tzXS5za3U/b1tzXS5pZD1vW3NdLnNrdTpvW3NdLnJlY2lkJiZvW3NdLmxpZCYmKG9bc10uaWQ9b1tzXS5yZWNpZCsiXyIrb1tzXS5saWQpKTtyLmVjb21tZXJjZS5hZGQmJnIuZWNvbW1lcmNlLmFkZC5wcm9kdWN0cz8oci5lY29tbWVyY2UuYWRkLnByb2R1Y3RzPW8sci5ldmVudD0iYWRkVG9DYXJ0Iik6ci5lY29tbWVyY2UucmVtb3ZlJiZyLmVjb21tZXJjZS5yZW1vdmUucHJvZHVjdHM/KHIuZWNvbW1lcmNlLnJlbW92ZS5wcm9kdWN0cz1vLHIuZXZlbnQ9InJlbW92ZUZyb21DYXJ0Iik6ci5lY29tbWVyY2UuZGV0YWlsJiZyLmVjb21tZXJjZS5kZXRhaWwucHJvZHVjdHM/KHIuZWNvbW1lcmNlLmRldGFpbC5wcm9kdWN0cz1vLHIuZXZlbnQ9InZpZXdQcm9kdWN0Iik6KGk/KHIuZXZlbnQ9InBhZ2VWaWV3IixyLmV2ZW50QWN0aW9uPWUpOnIuZXZlbnQ9ZSxyLnRpdGxlPXQsci52YWx1ZT1hKX12b2lkIDAhPT13aW5kb3cuZGF0YUxheWVyJiYoaT9hPjA/ciYmci5lY29tbWVyY2U/d2luZG93LmRhdGFMYXllci5wdXNoKHIpOndpbmRvdy5kYXRhTGF5ZXIucHVzaCh7ZXZlbnQ6InBhZ2VWaWV3IixldmVudEFjdGlvbjplLHRpdGxlOnQsdmFsdWU6YSxwcm9kdWN0OnJ9KTp3aW5kb3cuZGF0YUxheWVyLnB1c2goe2V2ZW50OiJwYWdlVmlldyIsZXZlbnRBY3Rpb246ZSx0aXRsZTp0LHJlZmVyZXI6cn0pOnImJnIuZWNvbW1lcmNlP3dpbmRvdy5kYXRhTGF5ZXIucHVzaChyKTp3aW5kb3cuZGF0YUxheWVyLnB1c2goe2V2ZW50OmUsZXZlbnRBY3Rpb246dCx2YWx1ZTphLHJlZmVyZXI6cn0pKTt0cnl7dmFyIHY7aWYod2luZG93Lmd0YWdUcmFja2VySUQmJiJndGFnIj09PXdpbmRvdy5tYWluVHJhY2tlcilpZihpKWlmKHImJnIuZXZlbnQpaWYoInB1cmNoYXNlIj09PXIuZXZlbnQpe2Zvcih2YXIgbz1yLmVjb21tZXJjZS5wdXJjaGFzZS5wcm9kdWN0cyx3PTAsZz0wO2c8by5sZW5ndGg7ZysrKWlmKCJkZWxpdmVyeSI9PT1vW2ddLmlkKXt3PW9bZ107YnJlYWt9Z3RhZygiZXZlbnQiLCJwdXJjaGFzZSIse3RyYW5zYWN0aW9uX2lkOnIuZWNvbW1lcmNlLnB1cmNoYXNlLmFjdGlvbkZpZWxkLmlkLHZhbHVlOnBhcnNlRmxvYXQoYSkudG9GaXhlZCgyKSxjdXJyZW5jeTp1LHNoaXBwaW5nOncsaXRlbXM6ci5lY29tbWVyY2UucHVyY2hhc2UucHJvZHVjdHN9KX1lbHNlImFkZFRvQ2FydCI9PT1yLmV2ZW50JiZyLmVjb21tZXJjZS5hZGQ/Z3RhZygiZXZlbnQiLCJhZGRfdG9fY2FydCIse2l0ZW1zOnIuZWNvbW1lcmNlLmFkZC5wcm9kdWN0c30pOiJyZW1vdmVGcm9tQ2FydCI9PT1yLmV2ZW50JiZyLmVjb21tZXJjZS5yZW1vdmU/Z3RhZygiZXZlbnQiLCJyZW1vdmVfZnJvbV9jYXJ0Iix7aXRlbXM6ci5lY29tbWVyY2UucmVtb3ZlLnByb2R1Y3RzfSk6InZpZXdQcm9kdWN0Ij09PXIuZXZlbnQmJnIuZWNvbW1lcmNlLmRldGFpbCYmZ3RhZygiZXZlbnQiLCJ2aWV3X2l0ZW0iLHtpdGVtczpyLmVjb21tZXJjZS5kZXRhaWwucHJvZHVjdHN9KTtlbHNlISF3aW5kb3cuZ3RhZ1RyYWNrZXJJRCYmLTEhPT13aW5kb3cuZ3RhZ1RyYWNrZXJJRC5pbmRleE9mKCJVQS0iKT9ndGFnKCJjb25maWciLHdpbmRvdy5ndGFnVHJhY2tlcklELHtwYWdlX3RpdGxlOnQscGFnZV9wYXRoOmV9KTpndGFnKCJldmVudCIsd2luZG93Lmd0YWdUcmFja2VySUQse3BhZ2VfdGl0bGU6dCxwYWdlX3BhdGg6ZSxzZW5kX3RvOndpbmRvdy5ndGFnVHJhY2tlcklEfSk7ZWxzZSBndGFnKCJldmVudCIsZSx7ZXZlbnRfY2F0ZWdvcnk6InRpbGRhIixldmVudF9sYWJlbDp0LHZhbHVlOmF9KX1jYXRjaCh4KXt9aWYod2luZG93LmdhJiYidGlsZGEiIT09d2luZG93Lm1haW5UcmFja2VyJiYiZ3RhZyIhPT13aW5kb3cubWFpblRyYWNrZXIpaWYoaSlpZihyJiZyLmV2ZW50KXt0cnl7aWYod2luZG93LlRpbGRhLmlzTG9hZEdBRWNvbW1lcmNlfHwod2luZG93LlRpbGRhLmlzTG9hZEdBRWNvbW1lcmNlPSEwLGdhKCJyZXF1aXJlIiwiZWMiKSksZ2EoInNldCIsImN1cnJlbmN5Q29kZSIsdSksInB1cmNoYXNlIj09PXIuZXZlbnQpe2Zvcih2YXIgZix5PXIuZWNvbW1lcmNlLnB1cmNoYXNlLnByb2R1Y3RzLmxlbmd0aCxnPTA7Zzx5O2crKylmPXIuZWNvbW1lcmNlLnB1cmNoYXNlLnByb2R1Y3RzW2ddLGdhKCJlYzphZGRQcm9kdWN0Iix7aWQ6Zi5pZHx8ZyxuYW1lOmYubmFtZSxwcmljZTpwYXJzZUZsb2F0KGYucHJpY2UpLnRvRml4ZWQoMikscXVhbnRpdHk6Zi5xdWFudGl0eX0pO2dhKCJlYzpzZXRBY3Rpb24iLCJwdXJjaGFzZSIse2lkOnIuZWNvbW1lcmNlLnB1cmNoYXNlLmFjdGlvbkZpZWxkLmlkLHJldmVudWU6cGFyc2VGbG9hdChhKS50b0ZpeGVkKDIpfSl9ZWxzZSBpZigiYWRkVG9DYXJ0Ij09PXIuZXZlbnQmJnIuZWNvbW1lcmNlLmFkZCl7Zm9yKHZhciBmLHk9ci5lY29tbWVyY2UuYWRkLnByb2R1Y3RzLmxlbmd0aCxnPTA7Zzx5O2crKylmPXIuZWNvbW1lcmNlLmFkZC5wcm9kdWN0c1tnXSxnYSgiZWM6YWRkUHJvZHVjdCIse2lkOmYuaWR8fGcsbmFtZTpmLm5hbWUscHJpY2U6cGFyc2VGbG9hdChmLnByaWNlKS50b0ZpeGVkKDIpLHF1YW50aXR5OmYucXVhbnRpdHl9KTtnYSgiZWM6c2V0QWN0aW9uIiwiYWRkIil9ZWxzZSBpZigicmVtb3ZlRnJvbUNhcnQiPT09ci5ldmVudCYmci5lY29tbWVyY2UucmVtb3ZlKXtmb3IodmFyIGYseT1yLmVjb21tZXJjZS5yZW1vdmUucHJvZHVjdHMubGVuZ3RoLGc9MDtnPHk7ZysrKWY9ci5lY29tbWVyY2UucmVtb3ZlLnByb2R1Y3RzW2ddLGdhKCJlYzphZGRQcm9kdWN0Iix7aWQ6Zi5pZHx8ZyxuYW1lOmYubmFtZSxwcmljZTpwYXJzZUZsb2F0KGYucHJpY2UpLnRvRml4ZWQoMikscXVhbnRpdHk6Zi5xdWFudGl0eX0pO2dhKCJlYzpzZXRBY3Rpb24iLCJyZW1vdmUiKX1lbHNlIGlmKCJ2aWV3UHJvZHVjdCI9PT1yLmV2ZW50JiZyLmVjb21tZXJjZS5kZXRhaWwpe2Zvcih2YXIgZix5PXIuZWNvbW1lcmNlLmRldGFpbC5wcm9kdWN0cy5sZW5ndGgsZz0wO2c8eTtnKyspZj1yLmVjb21tZXJjZS5kZXRhaWwucHJvZHVjdHNbZ10sZ2EoImVjOmFkZFByb2R1Y3QiLHtpZDpmLmlkfHxnLG5hbWU6Zi5uYW1lLHByaWNlOnBhcnNlRmxvYXQoZi5wcmljZSkudG9GaXhlZCgyKSxxdWFudGl0eTpmLnF1YW50aXR5fSk7Z2EoImVjOnNldEFjdGlvbiIsImRldGFpbCIpfX1jYXRjaCh4KXt9Z2EoInNlbmQiLHtoaXRUeXBlOiJwYWdldmlldyIscGFnZTplLHRpdGxlOnQscGFyYW1zOnJ9KX1lbHNlIGdhKCJzZW5kIix7aGl0VHlwZToicGFnZXZpZXciLHBhZ2U6ZSx0aXRsZTp0fSk7ZWxzZSBnYSgic2VuZCIse2hpdFR5cGU6ImV2ZW50IixldmVudENhdGVnb3J5OiJ0aWxkYSIsZXZlbnRBY3Rpb246ZSxldmVudExhYmVsOnQsZXZlbnRWYWx1ZTphfSk7aWYod2luZG93Lm1haW5NZXRyaWthSWQmJndpbmRvdy5tYWluTWV0cmlrYUlkPjAmJiJmdW5jdGlvbiI9PXR5cGVvZiB5bSlpZihpKXt2YXIgaD17dGl0bGU6dH07YT4wPyhoLnBhcmFtcz17b3JkZXJfcHJpY2U6YX0sdSYmKGgucGFyYW1zLmN1cnJlbmN5PXUpLHltKHdpbmRvdy5tYWluTWV0cmlrYUlkLCJoaXQiLGUsaCkpOnltKHdpbmRvdy5tYWluTWV0cmlrYUlkLCJoaXQiLGUsaCl9ZWxzZSBhPjA/KGg9e29yZGVyX3ByaWNlOmF9LHUmJihoLmN1cnJlbmN5PXUpLHltKHdpbmRvdy5tYWluTWV0cmlrYUlkLCJyZWFjaEdvYWwiLGUsaCkpOnltKHdpbmRvdy5tYWluTWV0cmlrYUlkLCJyZWFjaEdvYWwiLGUpO2lmKHdpbmRvdy5tYWluTWV0cmlrYT4iIiYmd2luZG93W3dpbmRvdy5tYWluTWV0cmlrYV0mJihpP2E+MD93aW5kb3dbd2luZG93Lm1haW5NZXRyaWthXS5oaXQoZSx7dGl0bGU6dCxvcmRlcl9wcmljZTphLHBhcmFtczpyfSk6d2luZG93W3dpbmRvdy5tYWluTWV0cmlrYV0uaGl0KGUse3RpdGxlOnR9KTphPjA/d2luZG93W3dpbmRvdy5tYWluTWV0cmlrYV0ucmVhY2hHb2FsKGUse3RpdGxlOnQscGFyYW1zOnIsb3JkZXJfcHJpY2U6YX0pOndpbmRvd1t3aW5kb3cubWFpbk1ldHJpa2FdLnJlYWNoR29hbChlLHt0aXRsZTp0LHJlZmVyZXI6cn0pKSx2b2lkIDAhPT13aW5kb3cuZmJxJiYhMT09PW4pdHJ5e2lmKGkpaWYoLTE9PT1lLmluZGV4T2YoInRpbGRhLyIpfHwtMT09PWUuaW5kZXhPZigiL3BheW1lbnQvIikmJi0xPT09ZS5pbmRleE9mKCIvc3VibWl0dGVkLyIpKWlmKHImJnIuZXZlbnQmJmE+MClpZigiYWRkVG9DYXJ0Ij09PXIuZXZlbnQmJnIuZWNvbW1lcmNlLmFkZCl7Zm9yKHZhciBmLHk9ci5lY29tbWVyY2UuYWRkLnByb2R1Y3RzLmxlbmd0aCxrPVtdLGc9MDtnPHk7ZysrKWY9ci5lY29tbWVyY2UuYWRkLnByb2R1Y3RzW2ddLGsucHVzaChmLmlkfHxmLnVpZHx8Zi5uYW1lKTt3aW5kb3cuZmJxKCJ0cmFjayIsIkFkZFRvQ2FydCIse2NvbnRlbnRfaWRzOmssY29udGVudF90eXBlOiJwcm9kdWN0Iix2YWx1ZTphLGN1cnJlbmN5OnV9KX1lbHNlIGlmKCJ2aWV3UHJvZHVjdCI9PT1yLmV2ZW50JiZyLmVjb21tZXJjZS5kZXRhaWwpe2Zvcih2YXIgZix5PXIuZWNvbW1lcmNlLmRldGFpbC5wcm9kdWN0cy5sZW5ndGgsaz1bXSxnPTA7Zzx5O2crKylmPXIuZWNvbW1lcmNlLmRldGFpbC5wcm9kdWN0c1tnXSxrLnB1c2goZi5pZHx8Zi51aWR8fGYubmFtZSk7d2luZG93LmZicSgidHJhY2siLCJWaWV3Q29udGVudCIse2NvbnRlbnRfaWRzOmssY29udGVudF90eXBlOiJwcm9kdWN0Iix2YWx1ZTphLGN1cnJlbmN5OnV9KX1lbHNlIGUuaW5kZXhPZigidGlsZGEvcG9wdXAiKSx3aW5kb3cuZmJxKCJ0cmFjayIsIlZpZXdDb250ZW50Iix7Y29udGVudF9uYW1lOnQsY29udGVudF9jYXRlZ29yeTplfSk7ZWxzZSBlLmluZGV4T2YoInRpbGRhL3BvcHVwIiksd2luZG93LmZicSgidHJhY2siLCJWaWV3Q29udGVudCIse2NvbnRlbnRfbmFtZTp0LGNvbnRlbnRfY2F0ZWdvcnk6ZX0pO2Vsc2UgYT4wJiZ1P3dpbmRvdy5mYnEoInRyYWNrIiwiSW5pdGlhdGVDaGVja291dCIse2NvbnRlbnRfbmFtZTp0LGNvbnRlbnRfY2F0ZWdvcnk6ZSx2YWx1ZTphLGN1cnJlbmN5OnV9KTp3aW5kb3cuZmJxKCJ0cmFjayIsIkxlYWQiLHtjb250ZW50X25hbWU6dCxjb250ZW50X2NhdGVnb3J5OmV9KTtlbHNlIHdpbmRvdy5mYnEoInRyYWNrIixlLHtjb250ZW50X25hbWU6dCx2YWx1ZTphfSl9Y2F0Y2goeCl7fWlmKHZvaWQgMCE9PXdpbmRvdy5WSyYmdm9pZCAwIT09d2luZG93LlZLLlJldGFyZ2V0aW5nJiYhMT09PWwpdHJ5e2lmKGkpe3ZhciBjLF89KGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFsbHJlY29yZHMiKSk/Yy5nZXRBdHRyaWJ1dGUoImRhdGEtdmstcHJpY2UtbGlzdC1pZCIpOm51bGwsYj1fJiZwYXJzZUludChfKXx8MCxUPSIiLEE9ITEsRixGLEYsRixGO2lmKHImJnIuZXZlbnQpaWYoQT17cHJvZHVjdHM6W10sY3VycmVuY3lfY29kZToiIix0b3RhbF9wcmljZTowfSwicHVyY2hhc2UiPT09ci5ldmVudCYmci5lY29tbWVyY2UucHVyY2hhc2UpaWYoYT4wJiZiPjApe3ZhciBmO0EuY3VycmVuY3lfY29kZT11O2Zvcih2YXIgeT1yLmVjb21tZXJjZS5wdXJjaGFzZS5wcm9kdWN0cy5sZW5ndGgsaz1bXSxnPTA7Zzx5O2crKylmPXIuZWNvbW1lcmNlLnB1cmNoYXNlLnByb2R1Y3RzW2ddLEEucHJvZHVjdHMucHVzaCh7aWQ6Zi5pZHx8Zi51aWR8fGYubmFtZSxwcmljZTpmLnByaWNlP2YucHJpY2U6MH0pLEEudG90YWxfcHJpY2U9YTtUPSJpbml0X2NoZWNrb3V0In1lbHNlIFQ9InQtcHVyY2hhc2UiO2Vsc2UgaWYoImFkZFRvQ2FydCI9PT1yLmV2ZW50JiZyLmVjb21tZXJjZS5hZGQpaWYoYT4wJiZiPjApe3ZhciBmO0EuY3VycmVuY3lfY29kZT11O2Zvcih2YXIgeT1yLmVjb21tZXJjZS5hZGQucHJvZHVjdHMubGVuZ3RoLGs9W10sZz0wO2c8eTtnKyspZj1yLmVjb21tZXJjZS5hZGQucHJvZHVjdHNbZ10sQS5wcm9kdWN0cy5wdXNoKHtpZDpmLmlkfHxmLnVpZHx8Zi5uYW1lLHByaWNlOmYucHJpY2U/Zi5wcmljZTowfSksQS50b3RhbF9wcmljZT1hO1Q9ImFkZF90b19jYXJ0In1lbHNlIFQ9InQtYWRkLXRvLWNhcnQiLHIuZWNvbW1lcmNlLmFkZFswXSYmci5lY29tbWVyY2UuYWRkWzBdLnVpZCYmKFQrPSItIityLmVjb21tZXJjZS5hZGRbMF0udWlkKTtlbHNlIGlmKCJ2aWV3UHJvZHVjdCI9PT1yLmV2ZW50JiZyLmVjb21tZXJjZS5kZXRhaWwpaWYoYT4wJiZiPjApe3ZhciBmO0EuY3VycmVuY3lfY29kZT11O2Zvcih2YXIgeT1yLmVjb21tZXJjZS5kZXRhaWwucHJvZHVjdHMubGVuZ3RoLGs9W10sZz0wO2c8eTtnKyspZj1yLmVjb21tZXJjZS5kZXRhaWwucHJvZHVjdHNbZ10sQS5wcm9kdWN0cy5wdXNoKHtpZDpmLmlkfHxmLnVpZHx8Zi5uYW1lLHByaWNlOmYucHJpY2U/Zi5wcmljZTowfSksQS50b3RhbF9wcmljZT1hO1Q9InZpZXdfcHJvZHVjdCJ9ZWxzZSBUPSJ0LXZpZXctcHJvZHVjdCIsci5lY29tbWVyY2UuZGV0YWlsWzBdJiZyLmVjb21tZXJjZS5kZXRhaWxbMF0udWlkJiYoVCs9Ii0iK3IuZWNvbW1lcmNlLmRldGFpbFswXS51aWQpO2Vsc2UgaWYoInJlbW92ZUZyb21DYXJ0Ij09PXIuZXZlbnQmJnIuZWNvbW1lcmNlLnJlbW1vdmUpaWYoYT4wJiZiPjApe3ZhciBmO0EuY3VycmVuY3lfY29kZT11O2Zvcih2YXIgeT1yLmVjb21tZXJjZS5yZW1vdmUucHJvZHVjdHMubGVuZ3RoLGs9W10sZz0wO2c8eTtnKyspZj1yLmVjb21tZXJjZS5yZW1vdmUucHJvZHVjdHNbZ10sQS5wcm9kdWN0cy5wdXNoKHtpZDpmLmlkfHxmLnVpZHx8Zi5uYW1lLHByaWNlOmYucHJpY2U/Zi5wcmljZTowfSksQS50b3RhbF9wcmljZT1hO1Q9InJlbW92ZV9mcm9tX2NhcnQifWVsc2UgVD0idC1yZW1vdmUtcHJvZHVjdCIsci5lY29tbWVyY2UucmVtb3ZlWzBdJiZyLmVjb21tZXJjZS5yZW1vdmVbMF0udWlkJiYoVCs9Ii0iK3IuZWNvbW1lcmNlLnJlbW92ZVswXS51aWQpO2Vsc2UgVD1yLmV2ZW50O2Vsc2UgaWYoLTEhPT1lLmluZGV4T2YoInRpbGRhLyIpJiYtMSE9PWUuaW5kZXhPZigiL3BheW1lbnQvIikpVD0idC1wdXJjaGFzZS0iKyhGPShGPShGPWUucmVwbGFjZSgiL3RpbGRhLyIsIiIpKS5yZXBsYWNlKCJ0aWxkYS8iLCIiKSkucmVwbGFjZSgiL3BheW1lbnQvIiwiIikpO2Vsc2UgaWYoLTEhPT1lLmluZGV4T2YoInRpbGRhLyIpJiYtMSE9PWUuaW5kZXhPZigiL3N1Ym1pdHRlZC8iKSlUPSJ0LWxlYWQtIisoRj0oRj0oRj1lLnJlcGxhY2UoIi90aWxkYS8iLCIiKSkucmVwbGFjZSgidGlsZGEvIiwiIikpLnJlcGxhY2UoIi9zdWJtaXR0ZWQvIiwiIikpO2Vsc2UgaWYoLTEhPT1lLmluZGV4T2YoInRpbGRhL3BvcHVwIikpVD0idC0iKyhGPShGPWUucmVwbGFjZSgiL3RpbGRhLyIsIiIpKS5yZXBsYWNlKCIvIiwiLSIpKTtlbHNlIGlmKC0xIT09ZS5pbmRleE9mKCJ0aWxkYS9jbGljayIpKVQ9InQtIisoRj0oRj1lLnJlcGxhY2UoIi90aWxkYS8iLCIiKSkucmVwbGFjZSgiLyIsIi0iKSk7ZWxzZSBUPSJ0LSIrKEY9ZS5yZXBsYWNlKCIvIiwiLSIpKTtiPjAmJkEmJkEuY3VycmVuY3lfY29kZT8oVksuUmV0YXJnZXRpbmcuRXZlbnQoInB1cmNoYXNlIiksVksuUmV0YXJnZXRpbmcuUHJvZHVjdEV2ZW50KGIsVCxBKSk6KFZLLlJldGFyZ2V0aW5nLkV2ZW50KFQpLCJ0LXB1cmNoYXNlIj09PVQuc3Vic3RyaW5nKDAsMTApP1ZLLkdvYWwoInB1cmNoYXNlIik6InQtbGVhZCI9PT1ULnN1YnN0cmluZygwLDYpJiZWSy5Hb2FsKCJsZWFkIikpfWVsc2UgVksuUmV0YXJnZXRpbmcuRXZlbnQoZSl9Y2F0Y2goeCl7fWlmKHdpbmRvdy5tYWluTWFpbHJ1SWQ+IjAiKXt2YXIgRT13aW5kb3cuX3Rtcnx8KHdpbmRvdy5fdG1yPVtdKTtpP2E+MD9FLnB1c2goe2lkOiIiK3dpbmRvdy5tYWluTWFpbHJ1SWQsdHlwZToicGFnZVZpZXciLHVybDplLHZhbHVlOmEsc3RhcnQ6KG5ldyBEYXRlKS5nZXRUaW1lKCl9KTpFLnB1c2goe2lkOiIiK3dpbmRvdy5tYWluTWFpbHJ1SWQsdHlwZToicGFnZVZpZXciLHVybDplLHN0YXJ0OihuZXcgRGF0ZSkuZ2V0VGltZSgpfSk6YT4wP0UucHVzaCh7aWQ6IiIrd2luZG93Lm1haW5NYWlscnVJZCx0eXBlOiJyZWFjaEdvYWwiLGdvYWw6ZSx2YWx1ZTphfSk6RS5wdXNoKHtpZDoiIit3aW5kb3cubWFpbk1haWxydUlkLHR5cGU6InJlYWNoR29hbCIsZ29hbDplfSl9ImZ1bmN0aW9uIj09dHlwZW9mIHdpbmRvdy50aWxkYXN0YXQmJihpPyhlLmluZGV4T2YoInBheW1lbnQiKT4wJiZlLmluZGV4T2YoInRpbGRhL2Zvcm0iKT4tMSYmKGU9ZS5yZXBsYWNlKCJ0aWxkYS9mb3JtIiwidGlsZGEvcmVjIikpLHdpbmRvdy50aWxkYXN0YXQoInBhZ2V2aWV3Iix7cGFnZTplfSkpOndpbmRvdy50aWxkYXN0YXQoInBhZ2V2aWV3Iix7cGFnZToiL3RpbGRhL2V2ZW50LyIrZX0pKX0sVGlsZGEuc2F2ZVVUTT1mdW5jdGlvbigpe3RyeXt2YXIgZT13aW5kb3cubG9jYXRpb24uaHJlZix0PSIiLHI9IiI7aWYoLTEhPT1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigidXRtXyIpJiYic3RyaW5nIj09dHlwZW9mKHQ9KHQ9KGU9ZS50b0xvd2VyQ2FzZSgpKS5zcGxpdCgiPyIpKVsxXSkpe3ZhciBhLGk9dC5zcGxpdCgiJiIpO2Zvcih2YXIgbyBpbiBpKSJhbXA7Ij09PShhPWlbb10uc3BsaXQoIj0iKSlbMF0uc3Vic3RyaW5nKDAsNCkmJihhWzBdPWFbMF0uc3Vic3RyaW5nKDQpKSwidXRtXyI9PT1hWzBdLnN1YnN0cmluZygwLDQpJiYocj1yK2lbb10rInx8fCIpO2lmKHIubGVuZ3RoPjApe3ZhciBjPW5ldyBEYXRlO2Muc2V0RGF0ZShjLmdldERhdGUoKSszMCksZG9jdW1lbnQuY29va2llPSJUSUxEQVVUTT0iK2VuY29kZVVSSUNvbXBvbmVudChyKSsiOyBwYXRoPS87IGV4cGlyZXM9IitjLnRvVVRDU3RyaW5nKCl9fX1jYXRjaChkKXt9fSwibG9hZGluZyIhPT1kb2N1bWVudC5yZWFkeVN0YXRlP2UoKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixlKX0oKSxFbGVtZW50LnByb3RvdHlwZS5tYXRjaGVzfHwoRWxlbWVudC5wcm90b3R5cGUubWF0Y2hlcz1FbGVtZW50LnByb3RvdHlwZS5tYXRjaGVzU2VsZWN0b3J8fEVsZW1lbnQucHJvdG90eXBlLm1zTWF0Y2hlc1NlbGVjdG9yfHxFbGVtZW50LnByb3RvdHlwZS5tb3pNYXRjaGVzU2VsZWN0b3J8fEVsZW1lbnQucHJvdG90eXBlLndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8RWxlbWVudC5wcm90b3R5cGUub01hdGNoZXNTZWxlY3RvciksRWxlbWVudC5wcm90b3R5cGUuY2xvc2VzdHx8KEVsZW1lbnQucHJvdG90eXBlLmNsb3Nlc3Q9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXM7dCYmMT09PXQubm9kZVR5cGU7KXtpZihFbGVtZW50LnByb3RvdHlwZS5tYXRjaGVzLmNhbGwodCxlKSlyZXR1cm4gdDt0PXQucGFyZW50RWxlbWVudHx8dC5wYXJlbnROb2RlfXJldHVybiBudWxsfSk7CgohZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpO2Z1bmN0aW9uIHQoKXt2YXIgZT1NYXRoLmZsb29yKDg5OTk5OSpNYXRoLnJhbmRvbSgpKSsxZTU7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCkrIi4iK2V9ZnVuY3Rpb24gbihlKXt2YXIgdD1lLnJlcGxhY2UoLyhbXC4kPyp8e31cKFwpXFtcXVxcXC9cK15dKS9nLCJcXCQxIiksbj1uZXcgUmVnRXhwKCIoPzpefDsgKSIrdCsiPShbXjtdKikiKSxvPWRvY3VtZW50LmNvb2tpZS5tYXRjaChuKTtpZihvKXJldHVybiBkZWNvZGVVUklDb21wb25lbnQob1sxXSl9ZnVuY3Rpb24gbyhlLHQsbil7dmFyIG89bi5leHBpcmVzO2lmKCFvKXJldHVybiExO2lmKCJudW1iZXIiPT10eXBlb2Ygbyl7dmFyIGk9KG5ldyBEYXRlKS5nZXRUaW1lKCkrMWUzKm87KG89bmV3IERhdGUoaSkpLnRvVVRDU3RyaW5nJiYobi5leHBpcmVzPW8udG9VVENTdHJpbmcoKSl9dmFyIGE9ZSsiPSIrKHQ9ZW5jb2RlVVJJQ29tcG9uZW50KHQpKTtmb3IodmFyIHIgaW4gbilhKz0iOyAiK3IsITAhPT1uW3JdJiYoYSs9Ij0iK25bcl0pO2RvY3VtZW50LmNvb2tpZT1hfWZ1bmN0aW9uIGkoZSx0KXtmb3IodmFyIG4gaW4gdCllW25dPXRbbl07cmV0dXJuIGV9ZnVuY3Rpb24gYShlKXt2YXIgdD0hMDtpZighZSl0aHJvdyBuZXcgRXJyb3IoIm5vIGNhbGxiYWNrIGdpdmVuIik7ZnVuY3Rpb24gbigpe3R8fGUodD0hMCl9ZnVuY3Rpb24gbygpe3QmJmUodD0hMSl9ImhpZGRlbiJpbiBkb2N1bWVudCYmZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsKGZ1bmN0aW9uKCl7KGRvY3VtZW50LmhpZGRlbj9vOm4pKCl9KSksIm1vekhpZGRlbiJpbiBkb2N1bWVudCYmZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW96dmlzaWJpbGl0eWNoYW5nZSIsKGZ1bmN0aW9uKCl7KGRvY3VtZW50Lm1vekhpZGRlbj9vOm4pKCl9KSksIndlYmtpdEhpZGRlbiJpbiBkb2N1bWVudCYmZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0dmlzaWJpbGl0eWNoYW5nZSIsKGZ1bmN0aW9uKCl7KGRvY3VtZW50LndlYmtpdEhpZGRlbj9vOm4pKCl9KSksIm1zSGlkZGVuImluIGRvY3VtZW50JiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtc3Zpc2liaWxpdHljaGFuZ2UiLChmdW5jdGlvbigpeyhkb2N1bWVudC5tc0hpZGRlbj9vOm4pKCl9KSksIm9uZm9jdXNpbiJpbiBkb2N1bWVudCYmKGRvY3VtZW50Lm9uZm9jdXNpbj1uLGRvY3VtZW50Lm9uZm9jdXNvdXQ9byksd2luZG93Lm9ucGFnZXNob3c9d2luZG93Lm9uZm9jdXM9bix3aW5kb3cub25wYWdlaGlkZT13aW5kb3cub25ibHVyPW99ZnVuY3Rpb24gcigpe3ZhciBlPXdpbmRvdy5wYWdlWU9mZnNldCx0PXdpbmRvdy5pbm5lckhlaWdodCxuPU1hdGgubWF4KGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0LGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQsZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldEhlaWdodCxkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodCxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSxvPTAsaT0wO3Y9ITA7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInQtaGVhZGVyIikscj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidC1mb290ZXIiKSxkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aWxkYWNvcHkiKTthJiYobz1hLm9mZnNldEhlaWdodCksciYmKGk9ci5vZmZzZXRIZWlnaHQpLGQmJihpKz1kLm9mZnNldEhlaWdodCk7dmFyIGM9TWF0aC5mbG9vcigxMDAqKGUtbyt0KS8obi1vLWkpKTtpZighKGM8MTApKWZvcih2YXIgcz1bMTAsMjUsNTAsNzUsOTBdLGw9MDtsPHMubGVuZ3RoO2wrKyl7dmFyIHU9c1tsXSxnPXMubGVuZ3RoLTE7aWYoMD09PWwmJmM+PXUmJiF3WyJwIit1XSltLnBhZ2U9Ii90aWxkYS9zY3JvbGwvIit1KyIvIix3aW5kb3cudGlsZGFzdGF0KCJwYWdldmlldyIpLHdbInAiK3VdPSEwO2Vsc2UgaWYoYz49dS0xKXtpZigwPT09d1sicCIrdV0pe20ucGFnZT0iL3RpbGRhL3Njcm9sbC8iK3UrIi8iLHdpbmRvdy50aWxkYXN0YXQoInBhZ2V2aWV3Iiksd1sicCIrdV09c2V0VGltZW91dCgoZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQod1sicCIrdV0pLHdbInAiK3VdPS0xfSksNWUzKTticmVha31pZigobCE9PWcmJmM8c1tsKzFdfHxsPT09ZykmJi0xPT09d1sicCIrdV0pe3dbInAiK3VdPTA7YnJlYWt9fX19ZnVuY3Rpb24gZCgpe3ZhciBlPTA9PT13aW5kb3cubG9jYXRpb24uaG9zdG5hbWUuaW5kZXhPZigid3d3LiIpP3dpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZS5zbGljZSg0KTp3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7cmV0dXJuIGUubGFzdEluZGV4T2YoIi4iKT09PWUubGVuZ3RoLTEmJihlPWUuc2xpY2UoMCwtMSkpLGUrd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lfWZ1bmN0aW9uIGMoZSl7Zm9yKHZhciB0PUFycmF5KGUubGVuZ3RoKSxuPTA7bjxlLmxlbmd0aDtuKyspdFtuXT1uO3JldHVybiBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwodCwoZnVuY3Rpb24odCl7cmV0dXJuIGUuY2hhckNvZGVBdCh0KS50b1N0cmluZygxNil9KSkuam9pbigiIil9ZnVuY3Rpb24gcygpe3ZhciBlPShuYXZpZ2F0b3IuY29va2llRW5hYmxlZD8iY1QiOiJjRiIpKyJ8IisobmF2aWdhdG9yLmRldmljZU1lbW9yeT8iZG0iK25hdmlnYXRvci5kZXZpY2VNZW1vcnk6ImRtIikrInwiKyhuYXZpZ2F0b3IuaGFyZHdhcmVDb25jdXJyZW5jeT8iaGMiK25hdmlnYXRvci5oYXJkd2FyZUNvbmN1cnJlbmN5OiJoYyIpKyJ8IisobmF2aWdhdG9yLmxhbmd1YWdlcz8ibCIrbmF2aWdhdG9yLmxhbmd1YWdlcy5qb2luKCIsIik6ImwiKSsifCI7aWYobmF2aWdhdG9yLnBsYXRmb3JtfHxuYXZpZ2F0b3IuYXBwTmFtZT9lKz0obmF2aWdhdG9yLnBsYXRmb3JtPyJwIituYXZpZ2F0b3IucGxhdGZvcm06InAiKSsifCIrKG5hdmlnYXRvci52ZW5kb3I/InYiK25hdmlnYXRvci52ZW5kb3I6InYiKSsifCIrKG5hdmlnYXRvci5hcHBDb2RlTmFtZT8iYSIrbmF2aWdhdG9yLmFwcENvZGVOYW1lOiJhIikrInwiKyhuYXZpZ2F0b3IuYXBwTmFtZT8ibiIrbmF2aWdhdG9yLmFwcE5hbWU6Im4iKSsifCI6ZSs9KG5hdmlnYXRvci51c2VyQWdlbnQ/InVhIituYXZpZ2F0b3IudXNlckFnZW50OiJ1YSIpKyJ8IixuYXZpZ2F0b3IucGx1Z2lucyl7dmFyIHQsbixvPSIiO2ZvcihuPW5hdmlnYXRvci5wbHVnaW5zLmxlbmd0aD4yMD8yMDpuYXZpZ2F0b3IucGx1Z2lucy5sZW5ndGgsdD0wO3Q8bjt0KyspbmF2aWdhdG9yLnBsdWdpbnNbdF0mJm5hdmlnYXRvci5wbHVnaW5zW3RdLmZpbGVuYW1lP28rPW5hdmlnYXRvci5wbHVnaW5zW3RdLmZpbGVuYW1lOm5hdmlnYXRvci5wbHVnaW5zW3RdJiZuYXZpZ2F0b3IucGx1Z2luc1t0XS5uYW1lJiYobys9bmF2aWdhdG9yLnBsdWdpbnNbdF0ubmFtZSk7ZSs9InBsIitvKyJ8In1yZXR1cm4gZSs9InByIit3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbysifCIsZSs9InciKyhzY3JlZW4mJnNjcmVlbi53aWR0aD9zY3JlZW4ud2lkdGg6d2luZG93LmlubmVyV2lkdGgpKyJoIisoc2NyZWVuJiZzY3JlZW4uaGVpZ2h0P3NjcmVlbi5oZWlnaHQ6d2luZG93LmlubmVySGVpZ2h0KSsifCIsZSs9ImNEIisoc2NyZWVuLmNvbG9yRGVwdGg/c2NyZWVuLmNvbG9yRGVwdGg6IiIpKyJ8IixlKz0idE8iKyhuZXcgRGF0ZSkuZ2V0VGltZXpvbmVPZmZzZXQoKSsifCIsZT1jKGUrPSJtVCIrKHZvaWQgMCE9PW5hdmlnYXRvci5tYXhUb3VjaFBvaW50cz9uYXZpZ2F0b3IubWF4VG91Y2hQb2ludHM6dm9pZCAwIT09bmF2aWdhdG9yLm1zTWF4VG91Y2hQb2ludHM/bmF2aWdhdG9yLm1zTWF4VG91Y2hQb2ludHM6IiIpKyJ8Iil9ZnVuY3Rpb24gbCgpe3g9bigidGlsZGF1aWQiKSxFPW4oInRpbGRhc2lkIiksaD8oeHx8KHg9InNpbXBsZSIpLEV8fChFPSJzaW1wbGUiKSk6KHh8fCh4PXQoKSksRXx8KEU9dCgpKSl9ZnVuY3Rpb24gdSgpe3ZhciBlO2h8fChvKCJ0aWxkYXVpZCIseCx7ZXhwaXJlczo3Nzc2ZTMscGF0aDoiLyJ9KSxvKCJ0aWxkYXNpZCIsRSx7ZXhwaXJlczoxODAwLHBhdGg6Ii8ifSkpfWZ1bmN0aW9uIGcodCl7aWYobS51c2VyX2FnZW50PiIiJiYtMSE9bS51c2VyX2FnZW50LmluZGV4T2YoImJvdCIpKXJldHVybiExO2lmKCJodHRwOiIhPXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCYmImh0dHBzOiIhPXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbClyZXR1cm4gY29uc29sZS5sb2coIlRpbGRhU3RhdDogY2Fubm90IHdvcmsgb24gbG9jYWwgcGFnZSIpLCExO3ZhciBuO2woKSx1KCksbS5wYWdlPWQoKSxtLnJlZmVycmVyPWRvY3VtZW50LnJlZmVycmVyfHwiIixtLnVzZXJpZD14LG0uc2Vzc2lvbmlkPUUsbS51c2VyX2FnZW50PXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LG0udXNlcl9sYW5ndWFnZT13aW5kb3cubmF2aWdhdG9yLnVzZXJMYW5ndWFnZXx8d2luZG93Lm5hdmlnYXRvci5sYW5ndWFnZSxlJiYobS5wcm9qZWN0aWQ9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtcHJvamVjdC1pZCIpfHwiMCIsbS5wYWdlaWQ9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtcGFnZS1pZCIpfHwiMCIsbS5wYWdlYWxpYXM9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtdGlsZGEtcGFnZS1hbGlhcyIpfHwiIixtLmZvcm1za2V5PWUuZ2V0QXR0cmlidXRlKCJkYXRhLXRpbGRhLWZvcm1za2V5Iil8fCIiKSxtLnBhcmFtcz17fTt0cnl7bj1kZWNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnNlYXJjaCl9Y2F0Y2goYyl7bj13aW5kb3cubG9jYXRpb24uc2VhcmNofWlmKG4+Ij8iJiYobS5wYWdlcXVlcnk9bi5zdWJzdHJpbmcoMSkudG9Mb3dlckNhc2UoKSx+bS5wYWdlcXVlcnkuaW5kZXhPZigidXRtXyIpKSl7dmFyIG8saT1tLnBhZ2VxdWVyeS5zcGxpdCgiJiIpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoaSwoZnVuY3Rpb24oZSl7KG89ZS5zcGxpdCgiPSIpKS5sZW5ndGg+MT8idXRtX3JlZmVycmVyIiE9PW9bMF18fG0ucmVmZXJyZXImJiF+bS5yZWZlcnJlci5pbmRleE9mKCJvaGlvOC52Iik/bS5wYXJhbXNbb1swXV09b1sxXTptLnJlZmVycmVyPW9bMV06bS5wYXJhbXNbb1swXV09IiJ9KSl9dmFyIHI9ITE7aWYoL0FuZHJvaWR8d2ViT1N8aVBob25lfGlQYWR8aVBvZHxCbGFja0JlcnJ5fElFTW9iaWxlfE9wZXJhIE1pbmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYocj0hMCksbS5pc21vYmlsZT1yLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aWxkYXN0YXRzY3JpcHQiKSYmKG0udGlsZGFzdGF0Y29kZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGlsZGFzdGF0c2NyaXB0Iikua2V5KSxrKXRyeXthKChmdW5jdGlvbihlKXt2PSEhZX0pKSxkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNld2hlZWwiLHRfdGhyb3R0bGUoKGZ1bmN0aW9uKCl7dj0hMH0pLDFlMykpLGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0X3Rocm90dGxlKChmdW5jdGlvbigpe3Y9ITB9KSwxZTMpKSxkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoImtleXByZXNzIix0X3Rocm90dGxlKChmdW5jdGlvbigpe3Y9ITB9KSwxZTMpKSxkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0X3Rocm90dGxlKChmdW5jdGlvbigpe3Y9ITB9KSwxZTMpKX1jYXRjaChjKXt9bS5maW5nZXJwcmludD1zKCksVD0hMH1mdW5jdGlvbiBwKGUpe3ZhciB0PSJodHRwczovL3N0YXQudGlsZGFjZG4uY29tL2V2ZW50LyIsaTtofHwobigidGlsZGFzaWQiKXx8IiIpIT1tLnNlc3Npb25pZCYmbygidGlsZGFzaWQiLG0uc2Vzc2lvbmlkLHtleHBpcmVzOjE4MDAscGF0aDoiLyJ9KTsiIj09PW0ucmVmZXJyZXImJihtLnJlZmVycmVyPW4oInByZXZpb3VzVXJsIil8fCIiKSxtLnRpbGRhdXRtPW4oIlRJTERBVVRNIil8fCIiLG0ucGFnZXx8KGNvbnNvbGUubG9nKCJUaWxkYVN0YXQ6IHBhZ2UgZW1wdHkiKSxtLnBhZ2U9ZCgpLHdpbmRvdy5sb2NhdGlvbi5oYXNoJiYwPT09d2luZG93LmxvY2F0aW9uLmhhc2guaW5kZXhPZigiIyEiKSYmKG0ucGFnZSs9d2luZG93LmxvY2F0aW9uLmhhc2gpKSwiLyI9PT1tLnBhZ2Uuc3Vic3RyaW5nKDAsMSkmJihtLnBhZ2U9d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lK20ucGFnZSk7dmFyIGE9ZihtKSxyPW5ldyBYTUxIdHRwUmVxdWVzdDtyLm9wZW4oIlBPU1QiLHQsITApLHIud2l0aENyZWRlbnRpYWxzPSExLHIuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04Iiksci5vbmVycm9yPWZ1bmN0aW9uKGUpe2NvbnNvbGUuZXJyb3IoIlRpbGRhU3RhdDogZmFpbCBwYWdldmlldyAiKSxjb25zb2xlLmVycm9yKGUpfSxyLnRpbWVvdXQ9M2UzLHIuc2VuZChhKSxtLnBhZ2UmJi0xPT09bS5wYWdlLmluZGV4T2YoInRpbGRhL3Njcm9sbCIpJiYtMT09PW0ucGFnZS5pbmRleE9mKCJ0aWxkYS9yZWFkdGltZSIpJiYtMT09PW0ucGFnZS5pbmRleE9mKCJ0aWxkYS9jbGljayIpJiYtMT09PW0ucGFnZS5pbmRleE9mKCJ0aWxkYS9jb29raWVlbmFibGVkIikmJihtLnJlZmVycmVyPW0ucGFnZSxofHxvKCJwcmV2aW91c1VybCIsbS5wYWdlLHtwYXRoOiIvIixleHBpcmVzOjE4MDB9KSksbS5wYWdlPSIiLHdpbmRvdy50aWxkYXN0YXRsb2FkPSEwfWZ1bmN0aW9uIGYoZSl7dmFyIHQ9IiI7Zm9yKHZhciBuIGluIGUpaWYoIiIhPXQmJiJvYmplY3QiIT10eXBlb2YgZVtuXSYmKHQrPSImIiksIm9iamVjdCI9PXR5cGVvZiBlW25dKXtpZihPYmplY3Qua2V5cyhlW25dKS5sZW5ndGgpZm9yKHZhciBvIGluIGVbbl0pdCs9IiYiK24rIlsiK28rIl09IitlbmNvZGVVUklDb21wb25lbnQoZVtuXVtvXSl9ZWxzZSB0Kz1uKyI9IitlbmNvZGVVUklDb21wb25lbnQoZVtuXSk7cmV0dXJuIHR9d2luZG93LnRpbGRhc3RhdD1mdW5jdGlvbihlLHQpe2lmKCFlKXJldHVybiExO2lmKCJjcmVhdGUiIT09ZSYmIVQpcmV0dXJuIHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7d2luZG93LnRpbGRhc3RhdChlLHQpfSksMWUzKSwhMTtzd2l0Y2godCYmaShtLHQpLGUpe2Nhc2UiY3JlYXRlIjpnKHQpO2JyZWFrO2Nhc2UicGFnZXZpZXciOnAodCk7YnJlYWs7Y2FzZSJyZWFkdGltZSI6ayYmKHYmJihtLnBhZ2U9Ii90aWxkYS9yZWFkdGltZS8iLHY9ITEscCh0KSksc2V0VGltZW91dCgoZnVuY3Rpb24oKXt3aW5kb3cudGlsZGFzdGF0KCJyZWFkdGltZSIpfSksMTVlMykpO2JyZWFrO2Nhc2Uic2Nyb2xsIjprJiYiZnVuY3Rpb24iPT10eXBlb2YgdF90aHJvdHRsZSYmd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdF90aHJvdHRsZSgoZnVuY3Rpb24oKXtyKCl9KSwxZTMpKTticmVhaztjYXNlImNvb2tpZWVuYWJsZWQiOmg9ITEsbCgpLHUoKSxtLnVzZXJpZD14LG0uc2Vzc2lvbmlkPUUsbS5wYWdlPSIvdGlsZGEvY29va2llZW5hYmxlZC8iLHAodCk7YnJlYWs7Y2FzZSJmaW5nZXJwcmludCI6cmV0dXJuIHMoKX19O3ZhciBtPXt9LHc9e3AxMDowLHAyNTowLHA1MDowLHA3NTowLHA5MDowfSx2PSEwLGg9Im5vIj09PXdpbmRvdy50aWxkYXN0YXRjb29raWUseTtpZigod2luZG93LnRpbGRhc3RhdGNvb2tpZXx8ZSYmKGg9Im5vIj09PWUuZ2V0QXR0cmlidXRlKCJkYXRhLXRpbGRhLWNvb2tpZSIpKSwieWVzIj09PXdpbmRvdy50aWxkYXN0YXRjb29raWVnZHByJiYhMT09PWgpJiYoaD0hMCwhMD09PW4oInRfY29va2llc0NvbnNlbnRHaXZlbiIpKSl7dmFyIGI9bigidF9jb29raWVzQ2F0ZWdvcmllcyIpOyJzdHJpbmciPT10eXBlb2YgYiYmYi5pbmRleE9mKCJhbmFseXRpY3MiKT4tMSYmKGg9ITEpfXZhciBrPSJ5ZXMiPT09d2luZG93LnRpbGRhc3RhdHNjcm9sbDt2b2lkIDA9PT13aW5kb3cudGlsZGFzdGF0c2Nyb2xsJiZlJiYoaz0ieWVzIj09PWUuZ2V0QXR0cmlidXRlKCJkYXRhLXRpbGRhLXN0YXQtc2Nyb2xsIikpO3ZhciB4PSIiLEU9IiIsVD0hMTt3aW5kb3cudGlsZGFzdGF0KCJjcmVhdGUiKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3dpbmRvdy50aWxkYXN0YXQoInBhZ2V2aWV3Iiksd2luZG93LnRpbGRhc3RhdCgicmVhZHRpbWUiKSx3aW5kb3cudGlsZGFzdGF0KCJzY3JvbGwiKX0pLDUwMCk7dmFyIGo9c2V0SW50ZXJ2YWwoKGZ1bmN0aW9uKCl7aWYoKCJvYmplY3QiPT10eXBlb2Ygd2luZG93LnRfanNlcnJvcnMmJndpbmRvdy50X2pzZXJyb3JzLmxlbmd0aD4wfHwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdy50X2NkbmVycm9ycyYmd2luZG93LnRfY2RuZXJyb3JzLmxlbmd0aD4wfHwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdy50X2FqYXhlcnJvcnMmJndpbmRvdy50X2FqYXhlcnJvcnMubGVuZ3RoPjApJiYiZnVuY3Rpb24iIT10eXBlb2YgdF9lcnJvcnNfX3NlbmRKU0Vycm9ycyl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7ZS5zcmM9Imh0dHBzOi8vc3RhdGljLnRpbGRhY2RuLiIrTCgpKyIvanMvdGlsZGEtZXJyb3JzLTEuMC5taW4uanMiLGUuYXN5bmM9ITAsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKSxjbGVhckludGVydmFsKGopfX0pLDJlMyksTz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJsaW5rW3JlbCo9J3Nob3J0Y3V0IGljb24nXSIpLF89ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgibGlua1tocmVmKj0ndGlsZGEud3MvcHJvamVjdCddIikubGVuZ3RoO198fChfPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImxpbmtbaHJlZio9J3dzLnRpbGRhY2RuLmNvbS9wcm9qZWN0J10iKS5sZW5ndGgpO3ZhciBBPU8/Ty5nZXRBdHRyaWJ1dGUoImhyZWYiKToiIixIPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInNjcmlwdFtzcmMqPSdqcy90aWxkYS1zY3JpcHRzJ10iKSxDPSEhSCYmLTE9PT1ILnNyYy5pbmRleE9mKCJ0aWxkYWNkbiIpLEk7KEN8fChDPU8mJi0xIT09QS5pbmRleE9mKCJzdGF0aWMudGlsZGFjZG4uIitMKCkpJiYtMSE9PUEuaW5kZXhPZigidGlsZGEuIikmJi0xIT09QS5pbmRleE9mKCIvdGlsZGFmYXZpY29uLmljbyIpJiYhZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidGFibGUjYWxscmVjb3JkcyIpJiYhKC0xIT09d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLmluZGV4T2YoIi50aWxkYS53cyIpKSYmIV8pLHZvaWQgMD09PW5hdmlnYXRvci5zZW5kQmVhY29ufHwvQm90L2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KXx8Qyl8fDE9PT1NYXRoLmZsb29yKDUqTWF0aC5yYW5kb20oKSkmJlMoKGZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7ZS5hc3luYz0hMCxlLnR5cGU9InRleHQvamF2YXNjcmlwdCIsZS5zcmM9Imh0dHBzOi8vc3RhdGljLnRpbGRhY2RuLiIrTCgpKyIvanMvdGlsZGEtcGVyZm9ybWFuY2UtMS4wLm1pbi5qcyIsZG9jdW1lbnQuYm9keS5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZWVuZCIsZSl9KSk7ZnVuY3Rpb24gUyhlKXsiY29tcGxldGUiPT09ZG9jdW1lbnQucmVhZHlTdGF0ZT9lKCk6d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGUpfWZ1bmN0aW9uIEwoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxscmVjb3JkcyIpLHQ7cmV0dXJuIGUmJmUuZ2V0QXR0cmlidXRlKCJkYXRhLXRpbGRhLXJvb3Qtem9uZSIpfHwiY29tIn19KCk7Cgp0X29uUmVhZHkoZnVuY3Rpb24oKSB7dF9vbkZ1bmNMb2FkKCd0Mzk2X2luaXQnLGZ1bmN0aW9uKCkge3QzOTZfaW5pdCgnNzg4Nzg3Mzc5Jyk7fSk7fSk7CnRfb25SZWFkeShmdW5jdGlvbigpIHt0X29uRnVuY0xvYWQoJ3QzOTZfaW5pdCcsZnVuY3Rpb24oKSB7dDM5Nl9pbml0KCc3ODkzNDMyNDAnKTt9KTt9KTsKdF9vblJlYWR5KGZ1bmN0aW9uKCkge3Rfb25GdW5jTG9hZCgndDM5Nl9pbml0JyxmdW5jdGlvbigpIHt0Mzk2X2luaXQoJzc5MDE2NDA0MicpO30pO30pOwp0X29uUmVhZHkoZnVuY3Rpb24oKSB7dF9vbkZ1bmNMb2FkKCd0Mzk2X2luaXQnLGZ1bmN0aW9uKCkge3QzOTZfaW5pdCgnNzg4ODQ0NjEyJyk7fSk7fSk7CnRfb25SZWFkeShmdW5jdGlvbigpIHtzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge3Rfb25GdW5jTG9hZCgndDg2OF9pbml0UG9wdXAnLGZ1bmN0aW9uKCkge3Q4NjhfaW5pdFBvcHVwKCc3ODc5MTE1MjcnKTt9KTt9LDUwMCk7fSk7CnRfb25SZWFkeShmdW5jdGlvbigpIHt0X29uRnVuY0xvYWQoJ3QzOTZfaW5pdCcsZnVuY3Rpb24oKSB7dDM5Nl9pbml0KCc3ODg5NzE5MjgnKTt9KTt9KTsKdF9vblJlYWR5KGZ1bmN0aW9uKCl7dmFyIHByb2RjYXJkX29wdHNPYmo9e2Jsb2NrSWQ6JycsaGFzV3JhcDonJyx0eHRQYWQ6JycsYmdDb2xvcjonJyxib3JkZXJSYWRpdXM6Jycsc2hhZG93OicnLHNoYWRvd1NpemU6Jycsc2hhZG93T3BhY2l0eTonJyxzaGFkb3dIb3ZlcjonJyxzaGFkb3dTaXplSG92ZXI6Jycsc2hhZG93T3BhY2l0eUhvdmVyOicnLHNoYWRvd1NoaWZ0eUhvdmVyOicnLGJ0blRpdGxlMTonJyxidG5MaW5rMToncG9wdXAnLGJ0blRpdGxlMjonJyxidG5MaW5rMjoncG9wdXAnLHNob3dPcHRzOmZhbHNlLHN0eWxlOicnLGhhc0ltZzp0cnVlLGhhc0Rlc2NyOnRydWUsaGFzU2VwYXJhdG9yOnRydWV9O3ZhciBwcmljZV9vcHRzT2JqPXtjb2xvcjonIzAwMDAwMCcsY29sb3JPbGQ6JyNhM2EzYTMnLHBvc2l0aW9uOididCcscHJpY2VSYW5nZTonJ307dmFyIHBvcHVwX29wdHNPYmo9e3BvcHVwQ29udGFpbmVyOicnLGNvbHVtbnM6JzYnLGNvbHVtbnMyOic2Jyxpc1ZlcnRpY2FsOicnLGFsaWduOidsZWZ0JyxidG5UaXRsZTonQlVZIE5PVycsY2xvc2VUZXh0OidNb3JlIHByb2R1Y3RzJyxpY29uQ29sb3I6JyMwMDAwMDAnLGNvbnRhaW5lckJnQ29sb3I6JyNmZmZmZmYnLG92ZXJsYXlCZ0NvbG9yOicjZmZmZmZmJyxvdmVybGF5QmdDb2xvclJnYmE6J3JnYmEoMjU1LDI1NSwyNTUsMSknLHBvcHVwU3RhdDonJyx0YWJzUG9zaXRpb246JycsZml4ZWRCdXR0b246ZmFsc2UsbW9iaWxlR2FsbGVyeVN0eWxlOicnfTt2YXIgc2xpZGVyX29wdHNPYmo9e2FuaW1fc3BlZWQ6JycsdmlkZW9QbGF5ZXJJY29uQ29sb3I6JycsY3ljbGU6JycsY29udHJvbHM6J2Fycm93c3RodW1icycsYmdjb2xvcjonI2ViZWJlYid9O3ZhciBzbGlkZXJfZG90c09wdHNPYmo9e3NpemU6JycsYmdjb2xvcjonJyxib3JkZXJzaXplOicnLGJnY29sb3JhY3RpdmU6Jyd9O3ZhciBzbGlkZXJfc2xpZGVzT3B0c09iaj17em9vbWFibGU6dHJ1ZSxiZ3NpemU6J2NvdmVyJyxyYXRpbzonMSd9O3ZhciB0eXBvZ3JhcGh5X29wdHNPYmo9e2Rlc2NyQ29sb3I6JycsdGl0bGVDb2xvcjonJ307dmFyIGRlZmF1bHRfc29ydD17ZGVmYXVsdDpudWxsLGluX3N0b2NrOmZhbHNlfTt2YXIgb3B0aW9ucz17c3RvcmVwYXJ0OicxODgxOTY3NzExOTInLHByZXZpZXdtb2RlOid5ZXMnLHByb2RDYXJkOnByb2RjYXJkX29wdHNPYmoscG9wdXBfb3B0czpwb3B1cF9vcHRzT2JqLGRlZmF1bHRTb3J0OmRlZmF1bHRfc29ydCxnYWxsZXJ5U3R5bGU6Jycsc2xpZGVyX29wdHM6c2xpZGVyX29wdHNPYmosc2xpZGVyX2RvdHNPcHRzOnNsaWRlcl9kb3RzT3B0c09iaixzbGlkZXJfc2xpZGVzT3B0czpzbGlkZXJfc2xpZGVzT3B0c09iaix0eXBvOnR5cG9ncmFwaHlfb3B0c09iaixwcmljZTpwcmljZV9vcHRzT2JqLGJsb2Nrc0luUm93Oic0Jyxjb2xDbGFzczondC1zdG9yZV9fc3RyZXRjaC1jb2wgdC1zdG9yZV9fc3RyZXRjaC1jb2xfMjUnLHNpZGViYXI6ZmFsc2UsY29sV2lkdGg6JycsY29sQ2xhc3NGdWxsV2lkdGg6J3Qtc3RvcmVfX3N0cmV0Y2gtY29sIHQtc3RvcmVfX3N0cmV0Y2gtY29sXzEwMCcsaW1hZ2VIb3ZlcjpmYWxzZSxpbWFnZUhlaWdodDonJyxpbWFnZVdpZHRoOicnLGltYWdlUmF0aW86JzEnLGltYWdlUmF0aW9DbGFzczondC1zdG9yZV9fY2FyZF9faW1nd3JhcHBlcl8zLTQnLGFsaWduOidsZWZ0Jyx2aW5kZW50OiczMHB4Jyxpc0hvcml6T25Nb2I6dHJ1ZSxpdGVtc0FuaW06JycsaGFzT3JpZ2luYWxBc3BlY3RSYXRpbzpmYWxzZSxzaXplOjQsbWFya0NvbG9yOicjZmZmZmZmJyxtYXJrQmdDb2xvcjonI2ZmNGE0YScsY3VycmVuY3lTaWRlOidyJyxjdXJyZW5jeVR4dDon4oK9JyxjdXJyZW5jeVNlcGFyYXRvcjonLicsY3VycmVuY3lEZWNpbWFsOicnLGJ0blNpemU6JycsYnRuMV9zdHlsZTonY29sb3I6IzgxODE4MTtib3JkZXI6MXB4IHNvbGlkICNhM2EzYTM7Ym9yZGVyLXJhZGl1czo4cHg7IC1tb3otYm9yZGVyLXJhZGl1czo4cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo4cHg7Zm9udC1mYW1pbHk6Q2lyY2U7Zm9udC13ZWlnaHQ6NDAwOycsYnRuMl9zdHlsZTonY29sb3I6IzAwMDAwMDtib3JkZXI6MXB4IHNvbGlkICMwMDAwMDA7Ym9yZGVyLXJhZGl1czo4cHg7IC1tb3otYm9yZGVyLXJhZGl1czo4cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo4cHg7Zm9udC1mYW1pbHk6Q2lyY2U7Zm9udC13ZWlnaHQ6NDAwOycsaXNGbGV4Q29sczondHJ1ZScsaGlkZVN0b3JlUGFydHM6ZmFsc2UsdmVydGljYWxBbGlnbkJ1dHRvbnM6ZmFsc2UsaGlkZUZpbHRlcnM6dHJ1ZSx0aXRsZVJlbGV2YW50czonJyxzaG93UmVsZXZhbnRzOicnLHNob3dQYWdpbmF0aW9uOicnLHRhYnM6JycscmVsZXZhbnRzX3NsaWRlcjpmYWxzZSxyZWxldmFudHNfcXVhbnRpdHk6JzQnLHNsaWRlcnRodW1ic3NpZGU6Jycsc2hvd1N0b3JlQnRuUXVhbnRpdHk6JycsdmVydGljYWxBbGlnbjonJyxyaWdodENvbHVtbldpZHRoOicnLGlzVGl0bGVDbGlwOmZhbHNlLGhvcml6b250YWxTY3JvbGxIaW50OidjaXJjbGUnfTt0X29uRnVuY0xvYWQoJ3Rfc3RvcmVfaW5pdCcsZnVuY3Rpb24oKSB7dF9zdG9yZV9pbml0KCc3ODkwNzYwMzgnLG9wdGlvbnMpO30pO30pOwp0X29uUmVhZHkoZnVuY3Rpb24oKSB7dF9vbkZ1bmNMb2FkKCd0Mzk2X2luaXQnLGZ1bmN0aW9uKCkge3QzOTZfaW5pdCgnNzg4NTkzMDU1Jyk7fSk7fSk7CnRfb25SZWFkeShmdW5jdGlvbigpe3ZhciBwcm9kY2FyZF9vcHRzT2JqPXtibG9ja0lkOicnLGhhc1dyYXA6JycsdHh0UGFkOicnLGJnQ29sb3I6JycsYm9yZGVyUmFkaXVzOicnLHNoYWRvdzonJyxzaGFkb3dTaXplOicnLHNoYWRvd09wYWNpdHk6Jycsc2hhZG93SG92ZXI6Jycsc2hhZG93U2l6ZUhvdmVyOicnLHNoYWRvd09wYWNpdHlIb3ZlcjonJyxzaGFkb3dTaGlmdHlIb3ZlcjonJyxidG5UaXRsZTE6JycsYnRuTGluazE6J3BvcHVwJyxidG5UaXRsZTI6JycsYnRuTGluazI6J3BvcHVwJyxzaG93T3B0czpmYWxzZSxzdHlsZTonJyxoYXNJbWc6dHJ1ZSxoYXNEZXNjcjp0cnVlLGhhc1NlcGFyYXRvcjp0cnVlfTt2YXIgcHJpY2Vfb3B0c09iaj17Y29sb3I6JyMwMDAwMDAnLGNvbG9yT2xkOicjYTNhM2EzJyxwb3NpdGlvbjonYnQnLHByaWNlUmFuZ2U6Jyd9O3ZhciBwb3B1cF9vcHRzT2JqPXtwb3B1cENvbnRhaW5lcjonJyxjb2x1bW5zOic2Jyxjb2x1bW5zMjonNicsaXNWZXJ0aWNhbDonJyxhbGlnbjonbGVmdCcsYnRuVGl0bGU6J0JVWSBOT1cnLGNsb3NlVGV4dDonTW9yZSBwcm9kdWN0cycsaWNvbkNvbG9yOicjMDAwMDAwJyxjb250YWluZXJCZ0NvbG9yOicjZmZmZmZmJyxvdmVybGF5QmdDb2xvcjonI2ZmZmZmZicsb3ZlcmxheUJnQ29sb3JSZ2JhOidyZ2JhKDI1NSwyNTUsMjU1LDEpJyxwb3B1cFN0YXQ6JycsdGFic1Bvc2l0aW9uOicnLGZpeGVkQnV0dG9uOmZhbHNlLG1vYmlsZUdhbGxlcnlTdHlsZTonJ307dmFyIHNsaWRlcl9vcHRzT2JqPXthbmltX3NwZWVkOicnLHZpZGVvUGxheWVySWNvbkNvbG9yOicnLGN5Y2xlOicnLGNvbnRyb2xzOidhcnJvd3N0aHVtYnMnLGJnY29sb3I6JyNlYmViZWInfTt2YXIgc2xpZGVyX2RvdHNPcHRzT2JqPXtzaXplOicnLGJnY29sb3I6JycsYm9yZGVyc2l6ZTonJyxiZ2NvbG9yYWN0aXZlOicnfTt2YXIgc2xpZGVyX3NsaWRlc09wdHNPYmo9e3pvb21hYmxlOnRydWUsYmdzaXplOidjb3ZlcicscmF0aW86JzEnfTt2YXIgdHlwb2dyYXBoeV9vcHRzT2JqPXtkZXNjckNvbG9yOicnLHRpdGxlQ29sb3I6Jyd9O3ZhciBkZWZhdWx0X3NvcnQ9e2RlZmF1bHQ6bnVsbCxpbl9zdG9jazpmYWxzZX07dmFyIG9wdGlvbnM9e3N0b3JlcGFydDonMjAzNzE3NjI3NzQyJyxwcmV2aWV3bW9kZToneWVzJyxwcm9kQ2FyZDpwcm9kY2FyZF9vcHRzT2JqLHBvcHVwX29wdHM6cG9wdXBfb3B0c09iaixkZWZhdWx0U29ydDpkZWZhdWx0X3NvcnQsZ2FsbGVyeVN0eWxlOicnLHNsaWRlcl9vcHRzOnNsaWRlcl9vcHRzT2JqLHNsaWRlcl9kb3RzT3B0czpzbGlkZXJfZG90c09wdHNPYmosc2xpZGVyX3NsaWRlc09wdHM6c2xpZGVyX3NsaWRlc09wdHNPYmosdHlwbzp0eXBvZ3JhcGh5X29wdHNPYmoscHJpY2U6cHJpY2Vfb3B0c09iaixibG9ja3NJblJvdzonNCcsY29sQ2xhc3M6J3Qtc3RvcmVfX3N0cmV0Y2gtY29sIHQtc3RvcmVfX3N0cmV0Y2gtY29sXzI1JyxzaWRlYmFyOmZhbHNlLGNvbFdpZHRoOicnLGNvbENsYXNzRnVsbFdpZHRoOid0LXN0b3JlX19zdHJldGNoLWNvbCB0LXN0b3JlX19zdHJldGNoLWNvbF8xMDAnLGltYWdlSG92ZXI6ZmFsc2UsaW1hZ2VIZWlnaHQ6JycsaW1hZ2VXaWR0aDonJyxpbWFnZVJhdGlvOicxJyxpbWFnZVJhdGlvQ2xhc3M6J3Qtc3RvcmVfX2NhcmRfX2ltZ3dyYXBwZXJfMy00JyxhbGlnbjonbGVmdCcsdmluZGVudDonMzBweCcsaXNIb3Jpek9uTW9iOnRydWUsaXRlbXNBbmltOicnLGhhc09yaWdpbmFsQXNwZWN0UmF0aW86ZmFsc2Usc2l6ZTo0LG1hcmtDb2xvcjonI2ZmZmZmZicsbWFya0JnQ29sb3I6JyNmZjRhNGEnLGN1cnJlbmN5U2lkZToncicsY3VycmVuY3lUeHQ6J+KCvScsY3VycmVuY3lTZXBhcmF0b3I6Jy4nLGN1cnJlbmN5RGVjaW1hbDonJyxidG5TaXplOicnLGJ0bjFfc3R5bGU6J2NvbG9yOiM4MTgxODE7Ym9yZGVyOjFweCBzb2xpZCAjYTNhM2EzO2JvcmRlci1yYWRpdXM6OHB4OyAtbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4O2ZvbnQtZmFtaWx5OkNpcmNlO2ZvbnQtd2VpZ2h0OjQwMDsnLGJ0bjJfc3R5bGU6J2NvbG9yOiMwMDAwMDA7Ym9yZGVyOjFweCBzb2xpZCAjMDAwMDAwO2JvcmRlci1yYWRpdXM6OHB4OyAtbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4O2ZvbnQtZmFtaWx5OkNpcmNlO2ZvbnQtd2VpZ2h0OjQwMDsnLGlzRmxleENvbHM6J3RydWUnLGhpZGVTdG9yZVBhcnRzOmZhbHNlLHZlcnRpY2FsQWxpZ25CdXR0b25zOmZhbHNlLGhpZGVGaWx0ZXJzOnRydWUsdGl0bGVSZWxldmFudHM6Jycsc2hvd1JlbGV2YW50czonJyxzaG93UGFnaW5hdGlvbjonJyx0YWJzOicnLHJlbGV2YW50c19zbGlkZXI6ZmFsc2UscmVsZXZhbnRzX3F1YW50aXR5Oic0JyxzbGlkZXJ0aHVtYnNzaWRlOicnLHNob3dTdG9yZUJ0blF1YW50aXR5OicnLHZlcnRpY2FsQWxpZ246JycscmlnaHRDb2x1bW5XaWR0aDonJyxpc1RpdGxlQ2xpcDpmYWxzZSxob3Jpem9udGFsU2Nyb2xsSGludDonbm9uZSd9O3Rfb25GdW5jTG9hZCgndF9zdG9yZV9pbml0JyxmdW5jdGlvbigpIHt0X3N0b3JlX2luaXQoJzc4Nzk2ODEzNycsb3B0aW9ucyk7fSk7fSk7CnRfb25SZWFkeShmdW5jdGlvbigpIHt0X29uRnVuY0xvYWQoJ3QzOTZfaW5pdCcsZnVuY3Rpb24oKSB7dDM5Nl9pbml0KCc3ODg5NzM2MDUnKTt9KTt9KTsKdF9vblJlYWR5KGZ1bmN0aW9uKCkge3Rfb25GdW5jTG9hZCgndDk1OF9pbml0JyxmdW5jdGlvbigpIHt0OTU4X2luaXQoJzc4ODk3MzI3OScpO30pO30pOwp0X29uUmVhZHkoZnVuY3Rpb24oKSB7dF9vbkZ1bmNMb2FkKCd0Mzk2X2luaXQnLGZ1bmN0aW9uKCkge3QzOTZfaW5pdCgnNzg4OTk3MDkwJyk7fSk7fSk7CnRfb25SZWFkeShmdW5jdGlvbigpIHt0X29uRnVuY0xvYWQoJ3QzOTZfaW5pdCcsZnVuY3Rpb24oKSB7dDM5Nl9pbml0KCc3ODg5ODY4MjAnKTt9KTt9KTsKdF9vblJlYWR5KGZ1bmN0aW9uKCkge3Rfb25GdW5jTG9hZCgndDg0OV9pbml0JyxmdW5jdGlvbigpIHt0ODQ5X2luaXQoJzc4ODk3NTE3OScpO30pO30pOwp0X29uUmVhZHkoZnVuY3Rpb24oKSB7dF9vbkZ1bmNMb2FkKCd0Mzk3X2luaXQnLGZ1bmN0aW9uKCkge3QzOTdfaW5pdCgnNzg5MTExMTQ2Jyk7fSk7fSk7CnRfb25SZWFkeShmdW5jdGlvbigpIHt0X29uRnVuY0xvYWQoJ3QzOTZfaW5pdCcsZnVuY3Rpb24oKSB7dDM5Nl9pbml0KCc3ODkxMjM1MzEnKTt9KTt9KTsKdF9vblJlYWR5KGZ1bmN0aW9uKCkge3Rfb25GdW5jTG9hZCgndDM5Nl9pbml0JyxmdW5jdGlvbigpIHt0Mzk2X2luaXQoJzc4OTExNDMwMCcpO30pO30pOwp0X29uUmVhZHkoZnVuY3Rpb24oKSB7dF9vbkZ1bmNMb2FkKCd0Mzk2X2luaXQnLGZ1bmN0aW9uKCkge3QzOTZfaW5pdCgnNzg5MTIwNDg2Jyk7fSk7fSk7CnRfb25SZWFkeShmdW5jdGlvbigpIHt0X29uRnVuY0xvYWQoJ3QzOTZfaW5pdCcsZnVuY3Rpb24oKSB7dDM5Nl9pbml0KCc3ODkxMDk5NzUnKTt9KTt9KTsKdF9vblJlYWR5KGZ1bmN0aW9uKCkge3Rfb25GdW5jTG9hZCgndDcwMl9pbml0UG9wdXAnLGZ1bmN0aW9uKCkge3Q3MDJfaW5pdFBvcHVwKCc3ODkyNDYxODUnKTt9KTt9KTs="></script> <div class="c-social simple" ng-cloak="" name="social"> <div class=" " social-likes data-url="https://www.mann-ivanov-ferber.ru/courses/" data-title="Курсы МИФа" > <div class="vkontakte" title="Поделиться ссылкой во Вконтакте">Поделиться</div> <div class="twitter" title="Поделиться ссылкой в Твиттере">Твитнуть</div> <div class="telegram" title="Поделиться ссылкой в Телеграме">Поделиться</div> </div> </div> </div> </div> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Главная", "item": "/" } , { "@type": "ListItem", "position": 2, "name": "Курсы МИФа", "item": "/courses/" } ] } </script> <div id="react-footer" data-breadcrumbs='[{"slug":"\/","title":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f"},{"slug":"\/courses\/","title":"\u041a\u0443\u0440\u0441\u044b \u041c\u0418\u0424\u0430"}]'> <script src="/_next/static/widgets/footer.js"></script> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Organization", "address": { "@type": "PostalAddress", "postalCode": "123104", "addressRegion": "Московская область", "addressLocality": "Москва", "streetAddress": "Б. Козихинский пер., д.7, стр.2, оф. 24" }, "email": "support@m-i-f.ru", "telephone": "8 800 775-67-41", "name": "ООО «Манн, Иванов и Фербер»", "url": "https://www.mann-ivanov-ferber.ru/" } </script> <div style="display: none !important;"> <div class="col-xxl-6 col-xl-5 col-lg-4 col-md-7 col-sm-5 col-6"> <div class="row"> <div class="col-xl-6 col-lg-12 col-md-6 col-12"> <div class=""> <div class="List-sc-f91e761e-0 kVeMst"> <div class="List-sc-f91e761e-2 eNoqvt">О нас</div> <div> <div class="List-sc-f91e761e-1 cYvWVp"><a class="MaybeLink-sc-a96108c9-0 List-sc-f91e761e-3 fPKCLF" href="/about/faq/" rel="nofollow noopener noreferrer" target="_blank">Вопросы и ответы</a></div> <div class="List-sc-f91e761e-1 cYvWVp"><a class="MaybeLink-sc-a96108c9-0 List-sc-f91e761e-3 fPKCLF" href="/promo/derevo-znanij/" rel="nofollow noopener noreferrer" target="_blank">Дерево знаний</a></div> <div class="List-sc-f91e761e-1 cYvWVp"><a class="MaybeLink-sc-a96108c9-0 List-sc-f91e761e-3 fPKCLF" href="/usloviya-dostavki/" rel="nofollow noopener noreferrer" target="_blank">Условия доставки</a></div> </div> </div> </div> </div> <div class="col-xl-6 col-lg-12 col-md-6 col-12"> <div class=""> <div class="List-sc-f91e761e-0 kVeMst"> <div class="List-sc-f91e761e-2 eNoqvt">Партнёрам</div> <div> <div class="List-sc-f91e761e-1 cYvWVp"><a class="MaybeLink-sc-a96108c9-0 List-sc-f91e761e-3 fPKCLF" href="/about/dlja-avtorov/" rel="nofollow noopener noreferrer" target="_blank">Стать автором</a></div> <div class="List-sc-f91e761e-1 cYvWVp"><a class="MaybeLink-sc-a96108c9-0 List-sc-f91e761e-3 fPKCLF" href="/partnerskaya-programma/" rel="nofollow noopener noreferrer" target="_blank">Партнерская программа</a> </div> <div class="List-sc-f91e761e-1 cYvWVp"><a class="MaybeLink-sc-a96108c9-0 List-sc-f91e761e-3 fPKCLF" href="/resell/" rel="nofollow noopener noreferrer" target="_blank">Дистрибуция</a></div> <div class="List-sc-f91e761e-1 cYvWVp"><a class="MaybeLink-sc-a96108c9-0 List-sc-f91e761e-3 fPKCLF" href="/business/" rel="nofollow noopener noreferrer" target="_blank">Для бизнеса</a></div> </div> </div> </div> </div> </div> </div> <div class="col-xxl-3 col-xl-4 col-lg-4 col-md-5 col-sm-7 col-6"> <div class=""> <div class="List-sc-f91e761e-0 kVeMst"> <div class="List-sc-f91e761e-2 eNoqvt">Правовая информация</div> <div> <div class="List-sc-f91e761e-1 cYvWVp"><a class="MaybeLink-sc-a96108c9-0 List-sc-f91e761e-3 fPKCLF" href="/about/svedeniia-ob-organizacii-osushhestvliaiushhei-obucenie/" rel="nofollow noopener noreferrer" target="_blank">Сведения об организации, осуществляющей обучение</a></div> <div class="List-sc-f91e761e-1 cYvWVp"><a class="MaybeLink-sc-a96108c9-0 List-sc-f91e761e-3 fPKCLF" href="/help/offer/" rel="nofollow noopener noreferrer" target="_blank">Пользовательское соглашение</a></div> <div class="List-sc-f91e761e-1 cYvWVp"><a class="MaybeLink-sc-a96108c9-0 List-sc-f91e761e-3 fPKCLF" href="/help/politika-konfidenczialnosti/" rel="nofollow noopener noreferrer" target="_blank">Политика конфиденциальности</a> </div> </div> </div> </div> </div> </div> </div> </div> <script></script><script>window.__dataSource = {"context":{"from_uri":"\/courses\/","resourceid":"25557"},"contextReloadUrl":"https:\/\/www.mann-ivanov-ferber.ru\/datasource\/ajax?from_uri=\/courses\/&resourceid=25557","profileData":{"city_default":{"id":111,"name":"Москва","region":"Московская область","estimates":4,"estimatesMin":4,"estimatesMax":null,"active":true,"freeDelivery":{"courier":{"min":2000,"max":9999},"pickpoint":{"min":1500,"max":9999}}},"city":null,"id":999999999,"isAnonymous":true,"loyalty":{"points":100,"percent":0,"sum":0},"personalDiscount":{"name":"Cletcus","imageMain":"\/assets\/new\/img\/loyalty\/evolution\/cletcus.svg","imageGray":"\/assets\/new\/img\/loyalty\/evolution\/cletcus-gray.svg","imageFlag":"\/assets\/new\/img\/loyalty\/complete\/cletcus-flags.svg","discount":5,"sum":0}},"methods":{"Payonline":{"first":true},"YandexKassaWidget":{"first":true},"LoyaltyPoints":{"first":true},"Tinkoff":{"first":true},"lastPayData":null},"gtmEvent":false,"action":{"cart":{"presents":[{"id":"33356","image":"\/assets\/media\/podarki\/2024\/elektronnye-podarki-ot-mifa.png","title":"Электронные подарки от МИФа","url":null,"active":true,"style":null,"text":null,"button":null,"book":null}]}},"kumonSaleUntil":"infinite","kumonSaleDays":"infinite","gifts":{"actions":{"feb14":false,"newyear":false}},"cartMin":1,"cartMinSum":1,"cartMinSumB2b":10000,"b2bPaymentDays":7,"cardDiscount":2,"b2bPhone":"8 800 775-67-41","urls":{"token":"https:\/\/www.mann-ivanov-ferber.ru\/auth\/token\/form_token.ajax","site":{"main":"https:\/\/www.mann-ivanov-ferber.ru","blog":"http:\/\/blog.mann-ivanov-ferber.ru"}},"abtest":{"cart":"","fbauth":"","addebook":"","ocart":""},"referralSettings":{"inviteDiscount":30,"balanceCouponForPaperbook":500,"balanceCouponForEbook":200,"minSumCouponForPaperbook":1500,"minSumCouponForEbook":0,"bookTypeCouponForPaperbook":["paperbook"],"bookTypeCouponForEbook":["ebook","audiobook"],"minSumInviteForPaperbook":1500},"ebookFormats":[{"name":"epub","caption":"ePub","description":"Для смартфона или планшета"},{"name":"pdf","caption":"PDF","description":"Для компьютера"},{"name":"mobi","caption":"mobi","description":"Для ридера Amazon Kindle"},{"name":"fb2","caption":"fb2","description":"Для читалки"},{"name":"pdf2","caption":"PDF разворотами","description":"Для больших экранов"},{"name":"epub2","caption":"ePub для планшетов","description":"Для планшетов"},{"name":"zip-epub","caption":"ePub","description":"Для смартфона или планшета"},{"name":"zip-mobi","caption":"mobi","description":"Для ридера Amazon Kindle"},{"name":"zip-pdf","caption":"PDF","description":"Для компьютера"}],"audiobookFormats":[{"name":"zip","caption":"mp3","description":"Zip-архив книги"},{"name":"m4b","caption":"m4b","description":"Для айфона и айпада"},{"name":"pdf-buklet","caption":"PDF-приложение","description":"Ссылки и таблицы"},{"name":"pdf-konspekt","caption":"PDF-шпаргалка","description":"Комплимент от шеф-редактора"},{"name":"m4b2","caption":"m4b часть 2","description":"Для айфона и айпада"}],"lkFactoid":{"type":"discount","data":null},"notification":{"global":null,"cart":null},"personalDiscounts":[{"name":"Cletcus","imageMain":"\/assets\/new\/img\/loyalty\/evolution\/cletcus.svg","imageGray":"\/assets\/new\/img\/loyalty\/evolution\/cletcus-gray.svg","imageFlag":"\/assets\/new\/img\/loyalty\/complete\/cletcus-flags.svg","discount":5,"sum":0},{"name":"Ribcus","imageMain":"\/assets\/new\/img\/loyalty\/evolution\/ribcus.svg","imageGray":"\/assets\/new\/img\/loyalty\/evolution\/ribcus-gray.svg","imageFlag":"\/assets\/new\/img\/loyalty\/complete\/ribcus-flags.svg","discount":6,"sum":1500},{"name":"Cherepahus","imageMain":"\/assets\/new\/img\/loyalty\/evolution\/cherepahus.svg","imageGray":"\/assets\/new\/img\/loyalty\/evolution\/cherepahus-gray.svg","imageFlag":"\/assets\/new\/img\/loyalty\/complete\/cherepahus-flags.svg","discount":7,"sum":3000},{"name":"Dinozaurus","imageMain":"\/assets\/new\/img\/loyalty\/evolution\/dinozaurus.svg","imageGray":"\/assets\/new\/img\/loyalty\/evolution\/dinozaurus-gray.svg","imageFlag":"\/assets\/new\/img\/loyalty\/complete\/dinozaurus-flags.svg","discount":8,"sum":4500},{"name":"Ptichcus","imageMain":"\/assets\/new\/img\/loyalty\/evolution\/ptichcus.svg","imageGray":"\/assets\/new\/img\/loyalty\/evolution\/ptichcus-gray.svg","imageFlag":"\/assets\/new\/img\/loyalty\/complete\/ptichcus-flags.svg","discount":9,"sum":6000},{"name":"Belcus","imageMain":"\/assets\/new\/img\/loyalty\/evolution\/belcus.svg","imageGray":"\/assets\/new\/img\/loyalty\/evolution\/belcus-gray.svg","imageFlag":"\/assets\/new\/img\/loyalty\/complete\/belcus-flags.svg","discount":10,"sum":7500},{"name":"Sobacus","imageMain":"\/assets\/new\/img\/loyalty\/evolution\/sobacus.svg","imageGray":"\/assets\/new\/img\/loyalty\/evolution\/sobacus-gray.svg","imageFlag":"\/assets\/new\/img\/loyalty\/complete\/sobacus-flags.svg","discount":11,"sum":9000},{"name":"Slonus","imageMain":"\/assets\/new\/img\/loyalty\/evolution\/slonus.svg","imageGray":"\/assets\/new\/img\/loyalty\/evolution\/slonus-gray.svg","imageFlag":"\/assets\/new\/img\/loyalty\/complete\/slonus-flags.svg","discount":12,"sum":10500},{"name":"Obezyanus","imageMain":"\/assets\/new\/img\/loyalty\/evolution\/obezyanus.svg","imageGray":"\/assets\/new\/img\/loyalty\/evolution\/obezyanus-gray.svg","imageFlag":"\/assets\/new\/img\/loyalty\/complete\/obezyanus-flags.svg","discount":13,"sum":12000},{"name":"Chelovecus","imageMain":"\/assets\/new\/img\/loyalty\/evolution\/chelovecus.svg","imageGray":"\/assets\/new\/img\/loyalty\/evolution\/chelovecus-gray.svg","imageFlag":"\/assets\/new\/img\/loyalty\/complete\/chelovecus-flags.svg","discount":14,"sum":13500},{"name":"Razumus","imageMain":"\/assets\/new\/img\/loyalty\/evolution\/razumus.svg","imageGray":"\/assets\/new\/img\/loyalty\/evolution\/razumus-gray.svg","imageFlag":"\/assets\/new\/img\/loyalty\/complete\/razumus-flags.svg","discount":15,"sum":15000}]};</script> <script src="/assets/new/build/main-page.js?31381d5b6ea6" ></script> <script>window.dataLayer = window.dataLayer || [];</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10